From 31573d6180d15ef65ed0df9c2732495f40b12663 Mon Sep 17 00:00:00 2001
From: mitao <2763622819@qq.com>
Date: 星期五, 21 二月 2025 18:50:16 +0800
Subject: [PATCH] 提交花城代码

---
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBpActivityDAO.java                                                       |  111 
 flower_city/src/main/java/com/dg/core/api/TransactionEventAppletsController.java                                                                                                     |  128 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/AutomessageSysUser.java                                                  |  263 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerOrderGoodsDO.java                                        |  115 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActIntegralRuleService.java                                          |   55 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComPropertyWorkerApi.java                                               |   98 
 springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/EventGridDataApi.java                                                                         |  155 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComEldersAuthStatisticsDTO.java                                              |   74 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsMerchantMapper.xml                                                                               |  167 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComAreaTownCommunityService.java                                        |   24 
 springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/model/dos/LoginBody.java                                                                                  |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/api/UnionStoreApi.class                                                        |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngVolunteerOrgTeam.java                                           |   53 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComPropertyApi.java                                                     |   87 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/DoubleRegistrationData.java                                                  |   40 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiReseauServiceImpl.java                         |   70 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/sanshuo/ComSanShuoIndustryCenterDTO.java                                         |   83 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/impl/ComPropertyAlarmServiceImpl.java                                     |   91 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/LcCompareMemberCodeMapper.xml                                                                            |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionOpenDoorMapper.xml                                                                             |   18 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/area/StreetAndBuildVO.java                                                                  |   37 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiComConvenientServiceCategoriesVO.java                                          |   50 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientMerchantServiceImpl.java                                 |  513 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationDisabilityExcelListen.java                                                     |  514 
 flower_city/src/main/java/com/dg/core/db/gen/entity/SysUser.java                                                                                                                     |  291 
 flower_city/src/main/java/com/dg/core/service/impl/IRoleMenuImpl.java                                                                                                                |   33 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/ComActWarehouseApplyExcelVO.java                                        |  123 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/PageMcsMerchantDTO.java                                    |   54 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleFabulousWestService.java                            |   13 
 springcloud_k8s_panzhihuazhihuishequ/auth/.gitignore                                                                                                                                 |   33 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/VolunteerOrgRelationVO.java                                             |   28 
 flower_city/src/main/resources/mapper/GuideEvolveMapper.xml                                                                                                                          |  181 
 springcloud_demo_on_k8s-master/service-tp/.mvn/wrapper/maven-wrapper.properties                                                                                                      |    1 
 flower_city/src/main/java/com/dg/core/db/gen/entity/AutomessageSysUserRecord.java                                                                                                    |   58 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/DisablePersonApi.java                                                       |   50 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/GridBuildRelationService.java                                           |   26 
 flower_city/src/main/java/com/dg/core/service/IOrganizationChartService.java                                                                                                         |   91 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialProjectMemberServiceImpl.java                          |  181 
 springcloud_demo_on_k8s-master/service-zuul/src/main/java/com/springcloudme/servicezuul/api/apiController.java                                                                       |   14 
 flower_city/src/main/java/com/dg/core/util/presence/Year2014.java                                                                                                                    |   31 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/helper/encrypt/ResultInterceptor.java                                     |   78 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComOrderRefundDTO.java                                                            |   35 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/ComActEasyPhotoService.java                                                       |  135 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActPictureServiceImpl.java                                   |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightShoppingDao.java                                                 |   55 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiComActWorkGuideClassifyServiceImpl.java        |  137 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComEventTransferRecord.java                                              |  110 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerOrderPayDO.java                                          |  133 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiComActWorkGuide.java                                 |  101 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventGridMemberGpsLogApi.java                                                         |   91 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsEvaluateMapper.xml                                                                               |   66 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActWorkGuideDO.java                                                |   58 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComOpsAccRuleDO.java                                                  |   50 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerCommunityDiscountServiceImpl.java                         |   39 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiMicroVolunteeringVO.java                                                       |   67 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageQuestnaireSubDetailsDTO.java                                                 |   20 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/query/visit/EventVisitListQuery.java                                                            |   43 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoMemberMapper.xml                                                                     |   30 
 flower_city/src/main/java/com/dg/core/db/gen/mapper/OrganizationChartMapper.java                                                                                                     |   71 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/WXMessageUtil.java                                                         |   57 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwRotaExcelVO.java                                                             |   46 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComPbOrgMapper.xml                                                                              |  165 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/PublicityEventApi.java                                                            |  147 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngProvinceVO.java                                                             |   17 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComChangeCarBrandMapper.java                                                |   58 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComActProjectMapper.xml                                                                         |   44 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsServiceVO.java                                                          |  104 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/api/UnionOutdoorSiteApi.class                                                  |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiCharityApi.java                                         |   89 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComOpsAdvPosDAO.java                                                        |   26 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEldersAuthHistoryRecordMapper.xml                                                                |  155 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/EventGridMemberCascadeAddDTO.java                                               |   25 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventLcGridAdminVO.java                                                                |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleCommentReplyDO.java                               |   86 
 flower_city/src/main/java/com/dg/core/resolvers/CurrentUserMethodArgumentResolver.java                                                                                               |   78 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComAreaCounty.java                                                           |   18 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/StringUtils.java                                                                                |  428 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberWarnLogEditDTO.java                                                    |   65 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/UnionpayCarWashDao.java                                                     |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActRaffle.java                                                        |  134 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/54.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/IndexUserStreetVo.java                                                            |   29 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerIntegralMerchantServiceImpl.java                          |   49 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityOrderCollageTeamPeopleMapper.xml                                                 |  105 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComOpsAdvDAO.java                                                           |   55 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionReportDto.java                                                              |  113 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveListAdminVO.java                                             |   64 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiComActWorkGuideClassifyDao.java                         |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightIntegratingTaskDao.java                                          |   62 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/45.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderOperateVO.java                                                             |   31 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiExperienceActivity.java                              |   96 
 flower_city/src/main/java/com/dg/core/util/PermissionUtil.java                                                                                                                       |  102 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryTradeOrderService.java                                        |  108 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActSignMapper.xml                                                                             |  214 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/encrypt/EncryptDecryptField.java                                                         |   14 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/easyPhoto/ComActEasyPhotoActivityVO.java                                          |   55 
 springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionIntegralRecordApi.java                                 |   70 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActWarehouseBaseDao.java                                                 |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/aop/OperLogAspect.java                                                                       |  189 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientProductSpecificationMapper.xml                                                            |   46 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsTeamMemberImportMistakeExcelVO.java                                     |   37 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/cluster/admin/PageClusterMemberAdminVo.java                                       |   52 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActActivityInviteService.java                                        |   39 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/ComPbCheckUserDTO.java                                                       |   13 
 springcloud_k8s_panzhihuazhihuishequ/zuul/mvnw                                                                                                                                       |  310 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionIntegralRecordMapper.xml                                                                       |  131 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/AddNeighborCircleAdminVO.java                                                      |   35 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/RentingHoursePayingOrderMapper.xml                                                                  |   14 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiShopping.java                                        |   67 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsEvaluateService.java                                                 |   44 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/ComPbCheckUnitController.java                                            |  207 
 flower_city/src/main/java/com/dg/core/controller/BaseController.java                                                                                                                 |  127 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComPbCheckUnitDto.java                                                           |  120 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/laydate.js                                                                           |    2 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/IComEventTransferRecordService.java                                     |   60 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComBatteryCommodityOrderApi.java                                            |   86 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/api/EventInfo.java                                                                         |   84 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveRecordMapper.xml                                                                       |  338 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/AppletesBackstageConfigVO.java                                                              |   23 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComChangeCarModelController.java                                            |  117 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEldersAuthElderlyServiceImpl.java                               |  178 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/api/PartiesBody.java                                                                       |   20 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EldersAuthFeedbackDeleteDTO.java                                                 |   21 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiCharityServiceImpl.java                        |   68 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/SysConfMapper.xml                                                                                   |  135 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComMngVillageBuildingHouseVO.java                                                      |   33 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageQuestnaireAnswerDTO.java                                                     |   16 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionShippingAddressDto.java                                                     |   72 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidUpdateRecordVO.java                                                |   59 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialOrgHatchAuditMapper.xml                                                                 |   89 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDiscussOptionVO.java                                                        |   55 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/RentingHourseReturnOrderService.java                                    |   22 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/java/com/springcloudme/serviceinfluxdbapp/controller/ApiController.java                                                 |   14 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActEnterpriseApi.java                                                    |   86 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysUserAgreementDO.java                                                         |   61 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopStoreDO.java                                                   |  149 
 springcloud_demo_on_k8s-master/config-server/pom.xml                                                                                                                                 |  108 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/ComPbActivityDTO.java                                                        |   89 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/ReturnMsgConstants.java                                                                     |   37 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComExServicemanDTO.java                                                          |  111 
 springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/resources/bootstrap.yml                                                                                                       |   35 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleCommentReplyWestDAO.java                                |   40 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActMicroWishOperationRecordDO.java                                 |   90 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientServiceCategoryServiceImpl.java                          |  126 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/IndexDataKanbanVO.java                                                                      |   37 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/PageFeedBackDTO.java                                                                  |   44 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryStoreServiceImpl.java                                    |  180 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/EditFmsClassroomAdminDTO.java                                                |   44 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/5.gif                                                                                |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiComActWorkGuideMaterialDao.java                         |   11 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/UserManagementApi.java                                                      |   59 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidRecordExcelVO.java                                                 |  140 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComSwRotaDO.java                                                      |   89 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/config/MybatisPlusConfig.java                                                |   36 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComChangeCarModelSpecsChildrenService.java                              |   78 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/SpecialEventEditDTO.java                                                              |  114 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/resources/bootstrap.yml                                                                                            |   41 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/RentingHousesContractConfigApi.java                                         |   50 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngStructAreaServiceImpl.java                                   |  254 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComCvtBusinessDTO.java                                                       |   28 
 springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/AuthApplication.java                                                                                      |   21 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActReserveDangerArea.java                                             |   82 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComPropertyPublicityDTO.java                                                     |   61 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/validated/PutGroup.java                                                                               |    9 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComEldersAuthStatisticsDO.java                                        |   59 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialWorkerServiceService.java                                   |   31 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionStoreApi.java                                                          |   76 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComChangeCarModelMapper.xml                                                                         |  123 
 springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/config/SwaggerConfig.java                                       |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSanShuoEventTransferRecordController.java                                |  149 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComMngVolunteerSkillDto.java                                                     |   44 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActAnnouncementVO.java                                                         |   65 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComFmsClassroomService.java                                             |   89 
 springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/UserJobHandler.java                                                                      |   82 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/resources/bootstrap.yml                                                                                                 |   35 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/RentingHoursePreOrderApi.java                                                                   |   95 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStaticsReserve.java                                            |   38 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/JWTTokenUtil.java                                                                               |  173 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageMemberForInviteDTO.java                                                      |   35 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BigScreenStatisticsApi.java                                             |  815 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopUserAddressDO.java                                             |  116 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngRealCompanyTotalVO.java                                                     |   20 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventLeftStatisticsVO.java                                           |   17 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderPreviewDTO.java                                                           |   62 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComRehabilitationPopulationServiceImpl.java                        |   23 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/config/ParamOutAspect.java                                                                |  128 
 springcloud_demo_on_k8s-master/service-api/pom.xml                                                                                                                                   |  102 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/CapitalPageVO.java                                                                     |   31 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiQuestnaireUserAnswerServiceImpl.java           |   83 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActQuestnaireSubSelectionVO.java                                               |   24 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActDiscussUserDTO.java                                                        |   39 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/dpc/EditDpcDTO.java                                                              |   60 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/UnionpayCarWashService.java                                             |   12 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiInterspaceServiceImpl.java                     |   63 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/UserRateAnalysisVO.java                                                                |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/ComActIntegralUserChange.java                                         |  193 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/StatisticsApi.java                                                                    |   81 
 flower_city/src/main/java/com/dg/core/controller/HomeStatisticsController.java                                                                                                       |  680 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/test/java/com/panzhihua/service_grid/service/impl/EventServiceImplTest.java                                                    |   38 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiComConvenientServiceCategoriesDao.java                  |   54 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NewFightResourceSharingApi.java                                          |   55 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngVolunteerMngDOMapper.xml                                                                      |  232 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/aop/OperLogAspect.java                                                      |  308 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsLabelServiceImpl.java                                           |   29 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PartyBuildingMemberExcelVO.java                                               |   34 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/logback-spring.xml                                                                                         |   51 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActSocialProjectScheduleApi.java                                                             |   91 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialOrgHatchAuditDAO.java                                           |   65 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/AddBuildingUnitDto.java                                           |   25 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/BigScreenStatisticAgeGenderDTO.java                                    |   22 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/PartyBuildingActivityVO.java                                             |  109 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerUserAddressDO.java                                       |  117 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComActEasyPhotoTypeEditDTO.java                                                       |   34 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActAcidCheckRecordServiceImpl.java                              |   36 
 springcloud_demo_on_k8s-master/service-zuul/.gitignore                                                                                                                               |   25 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/civil/CivilPopulationStatisticsVO.java                                     |   17 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/GridBuildRelationDO.java                                              |   44 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EventType.java                                                                                  |   20 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/social/PageProjectDTO.java                                                       |   30 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/MostBeautifulVolunteerVO.java                                                     |   60 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/IndexReserve.java                                                       |   17 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComFmsServiceRecord.java                                                 |   58 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleCommentReplyWestService.java                        |   13 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/PageTeamMemberDTO.java                                                       |   42 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComActIntegralUserTradeMapper.xml                                                               |   22 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UnionReportApi.java                                                                             |   61 
 flower_city/src/main/java/com/dg/core/service/IAutomessageCommonProblemService.java                                                                                                  |   59 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridMemberRelationVO.java                                                         |   47 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerMerchantEvaluateService.java                                   |   44 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsTeamMemberVO.java                                                       |   50 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComFlowerOrderListDTO.java                                                        |   39 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngStructHouseUserDO.java                                          |   51 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSanshuoIndustryCenterDao.xml                                                                     |   49 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/BaseException.java                                                                         |   84 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/KeyPersonInfoServiceImpl.java                                      |  121 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPensionAuthHistoryRecordService.java                                 |   38 
 flower_city/src/main/java/com/dg/core/service/impl/GuideRepairOrderServiceImpl.java                                                                                                  |  502 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/RentingHourseContractConfig.java                                         |   90 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/DetailNeighborAllCommentByAdminDTO.java                                           |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActMessageDO.java                                                  |   89 
 flower_city/src/main/java/com/dg/core/api/AgreementAppletsController.java                                                                                                            |   36 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/GridsGovernanceStatisticsVO.java                                        |  110 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussCommentDOMapper.xml                                                                    |   61 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComLowSecurityPopulationService.java                                    |   13 
 springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/config/SwaggerConfig.java                                                                         |   33 
 springcloud_k8s_panzhihuazhihuishequ/eureka_server/.mvn/wrapper/maven-wrapper.jar                                                                                                    |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/PageFmsEventAdminDTO.java                                                    |   43 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComSanShuoApi.java                                                      |  182 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_grid/config/MybatisPlusConfig.class                                                      |    0 
 flower_city/src/main/java/com/dg/core/service/impl/RoleManagementImpl.java                                                                                                           |   38 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComBpActivityServiceImpl.java                                   |  597 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/PageComMngVillagePopulationHouseDTO.java                                        |   28 
 springcloud_k8s_panzhihuazhihuishequ/timejob/mvnw.cmd                                                                                                                                |  182 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsClassroomVO.java                                                        |   45 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComStreetServiceImpl.java                                          |  434 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiReseauDao.java                                          |   56 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/QRCodeUtil.java                                                            |  205 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerActivityService.java                                           |   51 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/ServiceGridApplication.java                                                               |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventApplicationAppReleaseMapper.java                                                 |   36 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventApplicationUserNoticeDTO.java                                                |   73 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComChangeCarModelSpecsChildrenMapper.xml                                                            |   67 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerGoodsAttrDAO.java                                              |   21 
 flower_city/src/main/java/com/dg/core/api/AreaCodeAppletsController.java                                                                                                             |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerCreditsExchangeMapper.xml                                                                  |  280 
 springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/ZuulApplication.java                                                                                      |   26 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventApplicationUserNoticeServiceImpl.java                                   |  118 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysUserInputDAO.xml                                                                                      |  166 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngVaccinesEnrollRecordDO.java                                     |  103 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbServiceTeamDAO.java                                                 |   51 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationMajorExcelListen.java                                                          |  560 
 flower_city/src/main/java/com/dg/core/util/DateUtils.java                                                                                                                            |  222 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActMicroWishHandleVO.java                                                      |   21 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberGpsLogEditDTO.java                                                     |   65 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/discuss/ComActDiscussPublishResultDTO.java                                       |   36 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiMerchantTypeVO.java                                                            |   35 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActEnterpriseTypeApi.java                                                |   95 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActAcidRecordServiceImpl.java                                   |  694 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/social/PageSocialOrgHatchAuditDTO.java                                           |   35 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/63.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysUserNoticeDAO.java                                                                 |   20 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCommentReplyAppVO.java                                               |   57 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/UserDao.java                                                                          |  469 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticPartyDyn.java                                         |   23 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderCreateGoodsDTO.java                                                       |   29 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/config/RabbitmqConfig.java                                                        |  100 
 flower_city/pom.xml                                                                                                                                                                  |  189 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngRealAssetsService.java                                            |   61 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/EditComActReserveStatusDTO.java                                          |   27 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventTransferRecordDO.java                                                      |   82 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightProjectJoinDAO.java                                              |   32 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActReserveOperationRecordDO.java                                   |  123 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/BigScreenStatisticPartyActivityDTO.java                                |   40 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopSysConfDO.java                                                 |   61 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/ComActEasyPhotoMapper.java                                                            |   72 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCommentByAdminVO.java                                                |   41 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComMngVolunteerOrgTeamDto.java                                                   |   67 
 flower_city/src/main/resources/mapper/AutomessageCommonProblemMapper.xml                                                                                                             |   54 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOrderServiceImpl.java                                       |  920 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/SysTemplateConfigServiceImpl.java                                            |   26 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActReserveDO.java                                                  |  180 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/PageShopFlowerGoodsVO.java                                                             |   98 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BasicScreenApi.java                                                     |  166 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/raffle/ComActRaffleVO.java                                                        |  162 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialProjectService.java                                         |   77 
 flower_city/src/main/java/com/dg/core/db/gen/entity/PieChartAll.java                                                                                                                 |   27 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComLowIncomePeopleCopyDO.java                                         |  138 
 springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/LoginService.java                                                                                 |  160 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysUserNoticeDAO.xml                                                                                     |   39 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ComEldersAuthHistoryExcelVO.java                                         |   31 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngStructHouseServiceImpl.java                                  |  546 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngStructAreaCityVO.java                                                       |   39 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/integral/admin/AddComActIntegralUserDTO.java                                     |   63 
 springcloud_k8s_panzhihuazhihuishequ/eureka_server/.gitignore                                                                                                                        |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/ComPropertyAlarmSettingService.java                                       |   35 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventResourceServiceImpl.java                                   |   80 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngPopulationDOMapper.xml                                                                        | 1294 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiMicroVolunteeringTypeDao.java                           |   41 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/.gitignore                                                                                                                         |   33 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UserApi.java                                                                                    |  564 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryUserAddressDto.java                                                    |  116 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiSnapshotService.java                                |   43 
 springcloud_demo_on_k8s-master/service-api/src/main/java/com/springcloud/serviceapi/ServiceApiApplication.java                                                                       |   15 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/36.gif                                                                               |    0 
 flower_city/src/main/java/com/dg/core/service/ISysUserRecordService.java                                                                                                             |   34 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientServiceCategoryDAO.java                                           |   78 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActEasyPhotoActivityDO.java                                        |  112 
 springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/config/KaptchaConfig.java                                                             |   45 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngPopulationRelationHouseDTO.java                                           |   27 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComMngVolunteerSkillVo.java                                                          |   74 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionShippingAddressApi.java                                                |   70 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComChangeCarInquiryServiceImpl.java                                |  122 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoUserDAO.java                                                 |   15 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/ComPbCheckUnitTypeEnum.java                                                                     |   41 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActQuestnaireAnswerContentDOMapper.xml                                                           |   48 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/resources/logback-spring.xml                                                                                          |   51 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComChangeCarModelRelationFeign.java                                                 |   98 
 springcloud_k8s_panzhihuazhihuishequ/service_user/.mvn/wrapper/maven-wrapper.properties                                                                                              |    2 
 springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/api/LogApi.java                                                                       |   59 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/impl/ComPropertyEquipmentServiceImpl.java                                 |   46 
 springcloud_demo_on_k8s-master/service-api/mvnw.cmd                                                                                                                                  |  161 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopStoreDTO.java                                                              |   34 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridDataServiceImpl.java                                                |  346 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEldersAuthDOMapper.xml                                                                           |  113 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/mobile.js                                                                            |    2 
 springcloud_k8s_panzhihuazhihuishequ/auth/mvnw                                                                                                                                       |  310 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/work/ScreenDiscussListDTO.java                                         |   39 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialProjectScheduleService.java                                 |   22 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/PartyActivityStatics.java                                                         |   23 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/BcRegionServiceImpl.java                                           |  106 
 flower_city/src/main/java/com/dg/core/util/workday/Data.java                                                                                                                         |   19 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngDistrictVO.java                                                             |   17 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/EditReserveAdminDTO.java                                                 |   50 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionStoreService.java                                                  |   26 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopSysConfServiceImpl.java                                     |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActAcidDangerMemberMapper.xml                                                                    |  112 
 springcloud_demo_on_k8s-master/eureka-server/src/main/java/com/springcloudme/eurekaserver/EurekaServerApplication.java                                                               |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiCoinGeneralTableDao.java                                |   39 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LcVisitRecordKeyPersonLabelEnum.java                                                              |   56 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/NewFightConfigVO.java                                                    |   58 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiReseauPeopleVO.java                                                            |   45 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiArticleManagementServiceImpl.java              |   63 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComActEasyPhotoEditAdminDTO.java                                                      |   30 
 springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/config/JacksonConfig.java                                       |   31 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComBpActivityDAO.java                                                    |  112 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/elders/ComEldersAuthHistoryVO.java                                                          |   41 
 flower_city/src/main/java/com/dg/core/exception/GlobalException.java                                                                                                                 |   58 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/vaccines/ComMngVaccinesInoculationExcelVo.java                                              |   47 
 springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/config/XxlJobConfig.java                                                                            |   71 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventMainMemberVO.java                                                                 |  116 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngRealCompanyBelongsVO.java                                                   |   47 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationSentenceExcelListen.java                                                       |  519 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleTopicWestDO.java                                  |   86 
 springcloud_demo_on_k8s-master/config-server-bak/src/test/java/com/springcloudme/configserver/ConfigServerApplicationTests.java                                                      |   17 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbMemberWestDO.java                                             |  149 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysUserFeedbackDAO.xml                                                                                   |   76 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveSubSelectionService.java                                   |   13 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/GridBuildRelationServiceImpl.java                                  |   61 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderOperateVO.java                                                       |   30 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiShoppingServiceImpl.java                       |   68 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/1.gif                                                                                |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComMngVolunteerServiceTypeApi.java                                          |   91 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NeedProblemUnitTaskServiceImpl.java                             |  128 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/SpecialEventAddDTO.java                                                               |  111 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/UnionDoorUtil.java                                                         |   24 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActEasyPhotoUserDO.java                                            |   42 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwPatrolRecordEditDTO.java                                                    |  124 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/resources/templates/forestFire.html                                                                                |   68 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVolunteerServiceTypeServiceImpl.java                         |  122 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/integral/admin/PageComActIntegralRuleDTO.java                                    |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/config/RabbitmqConfig.java                                                      |  263 
 springcloud_k8s_panzhihuazhihuishequ/service_property/pom.xml                                                                                                                        |  169 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventGridMemberGpsLogMapper.java                                                      |   42 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridMemberGpsLogServiceImpl.java                                        |  146 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComBatteryStoreApi.java                                                     |  137 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/18.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPropertyPublicityService.java                                        |   75 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComAreaTownCommunityApi.java                                                |  149 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActRafflePrizeServiceImpl.java                                  |   28 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngRealCompanyVO.java                                                          |   64 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiSnapshotApi.java                                        |  151 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/layui.mobile.css                                                                             |    2 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientMerchantVO.java                                              |  135 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComFmsTeamMemberImportExcelListen.java                                                         |  188 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageEldersAuthFeedbackDTO.java                                                   |   72 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/config/SFTPConfig.java                                                      |   31 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/.gitignore                                                                                                                  |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleCommentReplyServiceImpl.java                   |   23 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActFourMemberVO.java                                                           |  103 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/jinhuiCoinTableApi.java                                       |   73 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridTodoDataDTO.java                                                             |   28 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActPrizeServiceImpl.java                                     |   18 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenAlarmStatisticsInfo.java                                       |   57 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEasyPhotoMemberService.java                                       |   24 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActivityCodeMapper.xml                                                                        |   13 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbMemberWestDAO.java                                                  |  184 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveSubSelectionServiceImpl.java                          |   19 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/BuildingVO.java                                                                   |    9 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/unionpay/Close.java                                                                                 |  147 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/UnionpayCarWash.java                                                     |   26 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSanShuoExpertApi.java                                                    |  200 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionIntegralSummarizeServiceImpl.java                             |   69 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/NewFightShoppingOrderVO.java                                             |  104 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/AutomessageSysUserDao.java                                                  |   29 
 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/ComActIntegralUserChangeMapper.java                                         |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerCreditsExchangeServiceImpl.java                           |  327 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionExchangeRecordMapper.xml                                                                           |  241 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComPropertyHelpApi.java                                                                         |   98 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/CommunityBackstageApplication.java                                          |   28 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ShopOperLogVO.java                                                                     |   85 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEventTransferRecordMapper.java                                           |   45 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/ComBpActivityService.java                                            |  168 
 springcloud_demo_on_k8s-master/mvnw.cmd                                                                                                                                              |  161 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHourseFileServiceImpl.java                                  |   26 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UsersMapper.java                                                            |   11 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/entity/ComPropertyAlarm.java                                                      |  122 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/JinhuiLargeScreenAppi.java                                              |   75 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEldersAuthHistoryRecordMapper.java                                       |   47 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventMainMemberDO.java                                                          |  147 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/elders/ComEldersAuthStatisticHeaderVO.java                                                  |   23 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PagePublicityEventCommunityDTO.java                                                   |   57 
 .gitignore                                                                                                                                                                           |    6 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommoditySpecsDto.java                                                |   92 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngVillageService.java                                               |  126 
 springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/api/LoginApi.java                                                                     |  117 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/excel/CustomSheetWriteHandler.java                                          |   49 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComChangeCarModelDto.java                                                        |   99 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComElderAuthElderliesMapper.xml                                                                     |   82 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComPbServiceTeamServiceImpl.java                                |  167 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/cluster/PageClusterMemberDto.java                                                |   29 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopSysConfDAO.java                                                      |   16 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenServiceData.java                                               |   41 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryCommodityOrderBargainRecordMapper.java                            |   65 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventTransferRecordVO.java                                                       |   94 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngUserTagDAO.java                                                       |   16 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/listen/DisablePersonExcelListen.java                                        |   83 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventApplicationAppReleaseDTO.java                                                |   76 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoActivityMapper.java                                          |   57 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiInterspaceVO.java                                                              |   71 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComChangeCarModelSpecsChildrenController.java                               |  106 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActAnnouncement.java                                                  |   74 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEldersAuthElderlyMapper.xml                                                                      |  110 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComOpsHouseDTO.java                                                          |   70 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/StreetVO.java                                                                          |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysUserRoleDAO.java                                                                   |   17 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActSocialProjectMemberApi.java                                                               |   91 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/ApplyFmsServiceDTO.java                                                      |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialWorker.java                                                  |  166 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborCircleAppDTO.java                                                   |   72 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwPatrolRecordReportMapper.xml                                                                   |   21 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/IndexBackReserve.java                                                   |   19 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryTradeOrderDto.java                                                    |  128 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEnterpriseTypeService.java                                        |   59 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComDrugPopulationVO.java                                                          |  169 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComMngVolunteerOrgTeamDto.java                                                  |   71 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/49.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/GridEventStatisticsDTO.java                                                           |   19 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActProceedings.java                                                                          |   26 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerCreditsExchangeVO.java                                                   |  110 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/RentingHourseReturnOrderApi.java                                            |   86 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/ConvenientGoodsCategoryDTO.java                                       |   46 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEnterpriseDAO.java                                                    |   79 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActNeighborCircleScreenVO.java                                                    |   41 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerEvaluateDO.java                                          |   74 
 flower_city/src/main/java/com/dg/core/service/impl/SlideshowServiceImpl.java                                                                                                         |   82 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/BcRegionApi.java                                                                                |   36 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/BcDictionaryDO.java                                                   |   88 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxMessagePushApi.java                                                                           |  156 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventResourceDeleteDTO.java                                                           |   27 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveDangerAreaMapper.xml                                                                   |   38 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleCommentWestDO.java                                |   83 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActPictureLibraryService.java                                        |   21 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/IPUtil.java                                                                                     |  170 
 flower_city/src/main/java/com/dg/core/service/IHuaChengSysUserService.java                                                                                                           |   14 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiComActWorkGuideMaterialMapper.xml                                                      |   12 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightProjectPlanService.java                                      |   29 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/DictionaryVO.java                                                                           |   29 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthHistoryRecordServiceImpl.java                        |   71 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryStoreMapper.xml                                                                           |  122 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/social/SocialOrgHatchAuditDTO.java                                               |   64 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaiteSubSelectionVO.java                                          |   32 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditOrderAddressDto.java                                                            |   40 
 flower_city/src/main/java/com/dg/core/util/presence/Year2003.java                                                                                                                    |   31 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenFmsStatisticsInfo.java                                         |   72 
 flower_city/src/main/java/com/dg/core/exception/UtilException.java                                                                                                                   |   26 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/TypeDict.java                                                                                   |   64 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireSubSelectionDO.java                                   |   61 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/32.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationHouseTotalVO.java                                                 |   35 
 flower_city/src/main/java/com/dg/core/AliyunConfig.java                                                                                                                              |   91 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewFightProjectPlanMapper.xml                                                                   |  152 
 springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/resources/logback.xml                                                                                                          |   29 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbMemberDAO.java                                                      |  229 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/admin/IntegralUserVO.java                                                |   56 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryTradeOrderMapper.java                                             |   58 
 flower_city/src/main/java/com/dg/core/service/ITransactionEventService.java                                                                                                          |  156 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ExcelSelectObject.java                                                                          |   32 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryStoreClass.java                                                |   56 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiCoinGeneralTableServiceImpl.java               |   85 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoActivityRecordDOMapper.xml                                                           |   23 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActWarehouseDonatesService.java                                      |   89 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridDataEditAdminDTO.java                                                        |   71 
 springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/HuachengUnionAppletsApplication.java                            |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDpcMapper.xml                                                                                 |  155 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightCommunityConstructionServiceImpl.java                   |  158 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActUserWalletTradeMapper.java                                            |   67 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActAcidRecordMapper.xml                                                                          |  447 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleCommentReplyService.java                            |   13 
 flower_city/src/main/java/com/dg/core/service/impl/AreaCodeServiceImpl.java                                                                                                          |   83 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPensionAuthStatisticsDO.java                                       |   78 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActPictureLibraryServiceImpl.java                               |   38 
 flower_city/src/main/java/com/dg/core/util/presence/Year2007.java                                                                                                                    |   31 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerActivityVO.java                                                          |  140 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryCommoditySpecsFeign.java                                                  |   87 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPbMemberDAO.java                                                         |   89 
 springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/config/CorsConfig.java                                                                                    |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiReseauPeopleDao.java                                    |   57 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/wallet/ComActWalletAdminVO.java                                                   |   36 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/DynamicWorkVO.java                                                                   |   30 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/AppletUserInfoVO.java                                                                       |  133 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCommentReplyByAdminVO.java                                           |   46 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleWestServiceImpl.java                           |  930 
 springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/config/MyAESUtil.java                                                                 |   52 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/SysAppConfigVO.java                                                                    |   50 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/sensitive/SensitiveStrategy.java                                                         |   51 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActWorkScreenVO.java                                                              |   38 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/EventGridMemberBuildingRelationDO.java                                          |   60 
 flower_city/src/main/java/com/dg/core/db/gen/mapper/TransactionEventMapper.java                                                                                                      |  209 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/FileNameLengthLimitExceededException.java                                                  |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialMemberService.java                                          |   49 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbDynUserDO.java                                                |   43 
 flower_city/src/main/java/com/dg/core/service/impl/SysUserServiceImpl.java                                                                                                           |  326 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/UnionStoreService.class                                                |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionAccessMapper.class                                                    |    0 
 flower_city/src/main/java/com/dg/core/db/gen/entity/AutomessageTransactionEventInterview.java                                                                                        |   58 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ProvinceCityReturnVO.java                                                         |   15 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiMicroVolunteering.java                               |   66 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComFmsTeamMemberMapper.xml                                                                          |  122 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/InvalidExtensionException.java                                                             |   82 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/HttpConstant.java                                                                           |   44 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComFmsTeamMemberServiceImpl.java                                   |  378 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysRoleMenuDAO.xml                                                                                       |   19 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngVaccinesInoculationRecordDO.java                                |  112 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComAreaTownCommunity.java                                                |   56 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVaccinesEnrollRecordServiceImpl.java                         |  197 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialOrg.java                                                     |  293 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/RentingHousesApi.java                                                                           |  210 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireSubSelectionDAO.java                                        |   13 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxPayUtils.java                                                                                 |  161 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommodityOrderService.java                                    |  141 
 springcloud_k8s_panzhihuazhihuishequ/timejob/mvnw                                                                                                                                    |  310 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveSubSelectionMapper.java                                        |   15 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/Snowflake.java                                                                                  |   15 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActActPrizeService.java                                              |   14 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/BigScreenEventDTO.java                                                 |   29 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridDataAreaVO.java                                                               |   87 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionShippingAddressMapper.java                                             |   42 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActWorkGuideMaterialDO.java                                        |   29 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/StreetBigApi.java                                                       |  139 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionIntegralRuleRecordMapper.xml                                                                   |    5 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationLowSecurityExcelListen.java                                                    |  614 
 springcloud_k8s_panzhihuazhihuishequ/deploy-file/config-server.yaml                                                                                                                  |   63 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComDataStatisticsOrgVo.java                                                   |  122 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityOrderCollageTeamServiceImpl.java                |  382 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComElderAuthRecordsServiceImpl.java                                |  660 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActSocialWorkerApi.java                                              |  162 
 springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/api/OrderApi.java                                                                     |  206 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewFightProjectEvaluateMapper.xml                                                               |  137 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/VolunteerIntegralRecordApi.java                                             |   83 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationElderExcelListen.java                                                          |  470 
 flower_city/README.md                                                                                                                                                                |    3 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiConvenientMerchant.java                              |  100 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleAdminVO.java                                                   |   87 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/McsOrderApi.java                                                            |  111 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComCvtCategoryDO.java                                                 |   50 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dtos/DataKanbanDTO.java                                                             |   17 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/EquipmentPointMapDataVO.java                                            |   32 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComKeyPopulationService.java                                            |   13 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActWorkGuideDAO.java                                                     |   41 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationExcelVo.java                                                      |   61 
 springcloud_k8s_panzhihuazhihuishequ/eureka_server/src/main/resources/logback-spring.xml                                                                                             |   51 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialOrgHatchAuditSchedule.java                                   |   48 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityOrderBargainServiceImpl.java                    |  433 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/LoginApi.java                                                           |  232 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridMemberGpsLogVO.java                                                           |   53 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiApplyExperienceVO.java                                                         |   60 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryStoreClassServiceImpl.java                               |  167 
 flower_city/src/main/java/com/dg/core/file/SFTPUtil.java                                                                                                                             |  374 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/PartyBuildingMemberException.java                                                          |   57 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComAreaTownCommunityDao.java                                                |   31 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/EditDangerBatchDTO.java                                                  |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/RentingHourseFileDao.java                                                   |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComFmsTeamTypeServiceImpl.java                                     |  127 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/OnShelfOrOffShelfProductDTO.java                                      |   32 
 flower_city/src/main/java/com/dg/core/db/gen/entity/AutomessageSysSettings.java                                                                                                      |   90 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ClusterApi.java                                                         |  291 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/PageComDataStatisticsMemberDto.java                                          |   32 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireDO.java                                               |  141 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventResourceDO.java                                                            |   67 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActAcidCheckRecordDao.java                                               |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerOrderService.java                                          |  186 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/DateVO.java                                                                                 |   19 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NeedProblemClaimApi.java                                                 |   91 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/SpringUtils.java                                                                                |  137 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/IdDTO.java                                                                                 |   24 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActUserWalletChangeService.java                                      |   43 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventGridDataMapper.xml                                                                                  |  320 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/modules/layer/default/layer.css                                                              |    2 
 springcloud_k8s_panzhihuazhihuishequ/applets/.mvn/wrapper/maven-wrapper.properties                                                                                                   |    2 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComMngVolunteerSkillDto.java                                                    |   44 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/rentHouse/PreOrderStatics.java                                                    |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiApplyExperienceServiceImpl.java                |  209 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventArchiveVO.java                                                              |   38 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationDisabilityMistakeExcelVO.java                                     |   85 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwPatrolRecordPageDTO.java                                                    |   79 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComActEasyPhotoHandlerDto.java                                                   |   56 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/IndexReserveSub.java                                                    |   23 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialProjectServiceImpl.java                                |  241 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/advertisement/PageComOpsAdvDTO.java                                                        |   45 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActivityInviteDAO.java                                                |   51 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/SetShelfForInfoDTO.java                                    |   30 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerCommunityConfigService.java                                    |   29 
 springcloud_demo_on_k8s-master/service-influxdb-app/.mvn/wrapper/MavenWrapperDownloader.java                                                                                         |  114 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/acid/BatchCheckAcidRecordDTO.java                                                |   28 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/ConvenientProductCategoryDTO.java                                     |   46 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiShoppingOrderVO.java                                                           |   93 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiArticleManagementService.java                       |   28 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityOrderCollageTeamPeopleServiceImpl.java          |  119 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComChangeCarInquiryVo.java                                                           |   70 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPensionAuthPensionerService.java                                     |   15 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventSpecialPopulationVO.java                                                          |   47 
 springcloud_k8s_panzhihuazhihuishequ/applets/mvnw.cmd                                                                                                                                |  182 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPensionAuthPensionerDO.java                                        |  144 
 flower_city/src/main/java/com/dg/core/controller/ElseAccessoryController.java                                                                                                        |  138 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComActEasyPhotoHandlerDto.java                                                  |   67 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerCommunityConfigMapper.xml                                                                  |  153 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NeedProblemUnitTaskService.java                                      |   26 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActQuestnaireDTO.java                                                         |    8 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinghuiMerchantEvaluateApi.java                               |   83 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientConsultationStatisticsMapper.xml                                                          |   44 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/bootstrap.yml                                                                                       |   43 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/api/ComPropertyHelpApi.java                                                       |   98 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/SysUserVo.java                                                                       |  217 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/ServiceCommunityApplication.java                                                |   23 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsLabel.java                                                            |   55 
 springcloud_k8s_panzhihuazhihuishequ/zuul/.mvn/wrapper/MavenWrapperDownloader.java                                                                                                   |  118 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventMainMemberMapper.xml                                                                                |  160 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveDangerAreaDao.java                                             |   37 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/IndexUserCommunityVo.java                                                         |   24 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/entity/ComPropertyEquipment.java                                                  |  104 
 springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/config/WxH5Properties.java                                                            |   58 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventMapGridVO.java                                                                    |   23 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActReserveSubSelectionDO.java                                      |  109 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComOpsAdvServiceImpl.java                                          |  267 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopOrderGoodsService.java                                           |   13 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityOrderMapper.xml                                                                  |  289 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/sanshuo/IndexDateDTO.java                                                        |   18 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulPersonTypeEnum.java                                                                        |   41 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/laypage.js                                                                           |    2 
 springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/config/RealNamedConfig.java                                                                               |   17 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderDeliverDTO.java                                                           |   23 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/civil/CivilStatisticsVO.java                                               |   44 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireStatisticsSummaryAdminVO.java                                |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/AdvertisementApi.java                                                       |  143 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActWarehouseApplyApi.java                                                |  126 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysUserFeedbackDO.java                                                          |   80 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventVisitingTasksApi.java                                                        |  188 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoActivityRecordMapper.java                                    |   16 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/NeedProblemClaimDTO.java                                                     |   54 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/HomeQuarantineRegisterStatisticsVO.java                                   |   46 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodityOrderBargain.java                                     |   69 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngCarExcelVO.java                                                             |   61 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionReportMapper.xml                                                                                   |    5 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/DeleteConvenientProductDTO.java                                       |   27 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActQuestnaireSubVO.java                                                        |   23 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiComConvenientServiceCategories.java                  |   52 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/util/HtmlToPdfUtil.java                                                     |   32 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientServiceCategoryVO.java                                       |   43 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/ComActWarehouseApplyVO.java                                             |  179 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActActivityCodeApi.java                                                  |  128 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/Middlelist.java                                                       |   18 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActMessageServiceImpl.java                                      |  300 
 flower_city/src/main/java/com/dg/core/db/manual/pojo/LargeScreen.java                                                                                                                |   56 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/ServiceEquipmentApplication.class                                              |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/AddTeamMemberDTO.java                                                        |   50 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/netty/NettyServer.java                                                            |   45 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/BcRegionDao.java                                                            |   49 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightShoppingServiceImpl.java                                |   63 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopOrderOperateDO.java                                            |   76 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/BcRegion.java                                                            |  113 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialOrgHatchAuditService.java                                   |   73 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventApplicationUserNoticeDeleteDTO.java                                              |   25 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/elders/ComEldersAuthStatisticVO.java                                                        |   93 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionUser.java                                                        |  182 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerRefundOrderService.java                                    |   60 
 springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/JWTAuthenticationTokenFilter.java                                                                 |  381 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/message/PreOrderMessage.java                                                    |   40 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoDOMapper.xml                                                                         |  698 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngCarDO.java                                                      |   67 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/ComActIntegralUserTradeDaoService.java                               |   42 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComDrugPopulationServiceImpl.java                                  |   22 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventLeftDownStatisticsVO.java                                       |   53 
 springcloud_k8s_panzhihuazhihuishequ/config_server/src/main/resources/application.yml                                                                                                |   52 
 flower_city/src/main/java/com/dg/core/controller/AgreementController.java                                                                                                            |   62 
 springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/RoomckWebApi.java                                           |   31 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/model/dos/ComActDO.java                                           |  122 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionOpenDoor.java                                                    |   59 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/dao/ComPropertyEquipmentDao.java                                                  |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComChangeCarModelRelation.java                                           |   35 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/resources/mapper/ComPropertyAlarmMapper.xml                                                                           |   71 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HomeQuarantineUtil.java                                                                         |  220 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSwPatrolRecordService.java                                           |   62 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngVolunteerMngDAO.java                                                  |   97 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventTransferRecordEditDTO.java                                                       |   70 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/BcRegionService.java                                                    |   37 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerOrderPayServiceImpl.java                              |   30 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComActIntegralUserChangeDAOServiceImpl.java                     |  127 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/mvnw                                                                                                                        |  310 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerOrderDeliveryServiceImpl.java                         |  180 
 springcloud_k8s_panzhihuazhihuishequ/deploy-file/service-auth.yaml                                                                                                                   |   47 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UnionUserApi.java                                                                               |   70 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/unionpay/QueryEntiy.java                                                                            |   80 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActAcidMemberApi.java                                                |  106 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoHandlerServiceImpl.java                             |  156 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerOrderPayDAO.xml                                                                        |   42 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/MyActivityEvaluateVO.java                                                         |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussDO.java                                                  |  200 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/RentingHourseFileService.java                                           |   22 
 flower_city/src/main/java/com/dg/core/service/impl/SysSettingsServiceImpl.java                                                                                                       |   45 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSanShuoIndustryCenterService.java                                    |   27 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleFabulousServiceImpl.java                       |   23 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/BigScreenServiceImpl.java                                          |  176 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/StreetBigScreenMapper.xml                                                                       |  478 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiMicroVolunteeringServiceImpl.java              |   68 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiCharity.java                                         |   54 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleFabulousDAO.java                                        |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialProjectPublicityApi.java                                        |  118 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerMerchantWithdrawDao.java                                           |   60 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/RoleServiceImpl.java                                                         |  342 
 flower_city/src/main/java/com/dg/core/util/presence/Year2011.java                                                                                                                    |   31 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/property/ComPropertyAlarmSettingVO.java                                                     |   31 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/resolvers/CurrentUserMethodArgumentResolver.java                                |   56 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventApplicationUserNoticeDO.java                                               |   54 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/switchs/StreetAllAppletsVO.java                                                   |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/IntegratingTask.java                                                  |   40 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/message/OrderMessage.java                                                       |   42 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenServiceUser.java                                               |   17 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialOrgService.java                                             |   50 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiLargeScreenService.java                             |  137 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngStructHouseVO.java                                                          |   79 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/union/StructuredVO.java                                                                     |   89 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/RoleService.java                                                                  |  104 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/BcDictionaryDAO.java                                                        |   17 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionExchangeRecordMapper.xml                                                                       |  269 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerUserAddressServiceImpl.java                           |  132 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ReservePdfExportVO.java                                                   |   13 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryUserAddressDto.java                                                   |  108 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/model/vos/PutmessageDataInfo.java                                           |   93 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexBasicsStatisticsVO.java                                         |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/JsoupUtil.java                                                             |   95 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenActivityTop.java                                               |   21 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/rentingHouses/RentingHousesConfigVO.java                                          |   40 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/RentingHousesContractConfigApi.java                                         |   61 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComEldersAuthUserDO.java                                              |   89 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/IndexDataDTO.java                                                                     |   21 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/enterprise/PageEnterpriseTypeDTO.java                                            |   36 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/SysUserNoticeVO.java                                                                   |   69 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryCommodityOrderCollageTeamMapper.java                              |   67 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionOpenDoorMapper.java                                                    |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityCodeServiceImpl.java                                 |   26 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidRecordTimeVO.java                                                  |  182 
 springcloud_k8s_panzhihuazhihuishequ/service_user/.mvn/wrapper/maven-wrapper.jar                                                                                                     |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/ComMngUserTagDO.java                                                            |   49 
 flower_city/src/main/java/com/dg/core/db/gen/entity/KeywordEntity.java                                                                                                               |   38 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngStructOtherBuildServiceImpl.java                             |  233 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/23.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/puda/PartyDataVO.java                                                                       |   22 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventGridMemberRelationDTO.java                                                   |   70 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/VolunteerIntegralMerchantApi.java                                           |  317 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComFmsTeamServiceImpl.java                                         |  225 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/ServicePropertyApplication.java                                                   |   29 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BigScreenApi.java                                                       |  159 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/SysUserService.java                                                     |   78 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/modules/layer/default/loading-1.gif                                                          |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComEldersAuthUserService.java                                           |   23 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/switchs/CommunitySwitchAllAppletsVO.java                                          |   27 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/LoginStoreUserInfoVO.java                                                              |  169 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActAcidMemberServiceImpl.java                                   |   57 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngStructOtherBuildDO.java                                         |   66 
 springcloud_k8s_panzhihuazhihuishequ/config_server/src/main/resources/bootstrap.properties                                                                                           |   10 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/ComActEasyPhotoMapper.xml                                                                                |  202 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiGoldCoinRecord.java                                  |   56 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActDiscussOptionUserDTO.java                                                  |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommodityOrderBargainController.java                              |  106 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComActEasyPhotoHandlerFeign.java                                                    |   77 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiInterspaceType.java                                  |   50 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveOperationRecordMapper.xml                                                              |   48 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/resources/mapper/ComPropertyRepairMapper.xml                                                                          |  109 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/PageBuildingListDto.java                                          |   30 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/vaccines/VaccinesEnrollUserByAppDTO.java                                                   |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActIntegralUserChangeService.java                                    |   83 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComActEasyPhotoHandlerDto.java                                                  |   83 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/api/UnionReportApi.class                                                       |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/jinhuiApi.java                                                              |   60 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActMicroWishFeedbackDO.java                                        |   62 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/ComActIntegralUserChangeDAOService.java                              |   83 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComCvtServeVO.java                                                                |   56 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ExcelShopOrderDTO.java                                                                |   58 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/api/UserApi.java                                                                          | 1525 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/civil/ComActSocialWorkerEditDTO.java                                                       |  114 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationDrugExcelVO.java                                                  |  138 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/sensitive/Sensitive.java                                                                 |   12 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsInformationVO.java                                       |   57 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeStatisticsAdminVO.java                                   |   18 
 flower_city/src/main/java/com/dg/core/db/gen/mapper/GuideRepairOrderMapper.java                                                                                                      |  143 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComMngVolunteerSkillDto.java                                                    |   76 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/acid/ComActAcidRecordDTO.java                                                    |   70 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiCoinGeneralTableMapper.xml                                                             |  100 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/VerifiedReturnVO.java                                       |   46 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationVO.java                                                           |  267 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiInterspaceTypeServiceImpl.java                 |   64 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiMicroVolunteeringTypeMapper.xml                                                        |   89 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/UserService.java                                                                  |  977 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/validated/AddGroup.java                                                                               |    9 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/BigScreenApi.java                                                           |  108 
 springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/impl/ISysMenuServiceImpl.java                                                                     |   21 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LcRequestEnum.java                                                                                |   30 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPensionAuthRecordMapper.xml                                                                      |  348 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ConvenientConsultationStatisticsDO.java                               |   42 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventManageDTO.java                                                               |   75 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/GridMemberVO.java                                                                      |   44 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComBatteryCommodityOrderApi.java                                        |  109 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActUserWalletService.java                                            |   70 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsConfigVO.java                                            |   29 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/.mvn/wrapper/MavenWrapperDownloader.java                                                                                      |  118 
 springcloud_demo_on_k8s-master/eureka-server/src/main/resources/application.yml                                                                                                      |   14 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/puda/SpecialPeopleVO.java                                                                   |   25 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComPropertyAlarmApi.java                                                |  114 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/LcCompareCodeDO.java                                                            |   37 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComChangeCarBrand.java                                                   |   66 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiShoppingMapper.xml                                                                     |  147 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenHmkProjectTypeInfo.java                                        |   19 
 springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/PopulationApi.java                                                                            |   51 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryStoreFeign.java                                                           |   96 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPopulationActVO.java                                                           |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopUserAddressService.java                                          |   52 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/AppletsBackstageApplication.java                                                |   26 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopFlowerOrderDeliveryDTO.java                                                    |   62 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEldersAuthUserServiceImpl.java                                  |   35 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComExServicemanService.java                                             |   24 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiComActWorkGuideClassifyMapper.xml                                                      |   60 
 springcloud_demo_on_k8s-master/service-api/src/main/resources/bootstrap.properties                                                                                                   |   17 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/IndexDynamic.java                                                       |   31 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/UnAuthorizationException.java                                                              |   57 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActMicroWishUserDO.java                                            |   42 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/StreetBigScreenServiceImpl.java                                 |  800 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/RentingHourseRegisterService.java                                       |   79 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActSocialOrgHatchAuditApi.java                                                               |   72 
 springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/handel/UserAuthenticationProvider.java                                                                    |  168 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActNeighborCircleCommentReplyWestDOMapper.xml                                                    |   78 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/VillageApi.java                                                         |  150 
 springcloud_demo_on_k8s-master/eureka-server/.mvn/wrapper/maven-wrapper.jar                                                                                                          |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPropertyPublicityDAO.java                                                |   59 
 flower_city/src/main/java/com/dg/core/service/impl/MenuImpl.java                                                                                                                     |   38 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/IdCard.java                                                                                     |   64 
 flower_city/src/main/java/com/dg/core/db/gen/entity/RoleManagementEntity.java                                                                                                        |   76 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderVO.java                                                              |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerCommunityDiscountService.java                                  |   31 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/HanyuPinyinHelper.java                                                                        |  128 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/WalletApi.java                                                              |   63 
 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/VolunteerMerchantWithdrawServiceImpl.java                          |  108 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComActEasyPhotoTypeVO.java                                                             |   32 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActivityCodeDao.java                                                  |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_api/pom.xml                                                                                                                             |  123 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventPopulationStreetVO.java                                         |   25 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/puda/DynamicVO.java                                                                         |   26 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/layedit.js                                                                           |    2 
 springcloud_k8s_panzhihuazhihuishequ/auth/.mvn/wrapper/maven-wrapper.properties                                                                                                      |    2 
 flower_city/src/main/java/com/dg/core/db/manual/pojo/MsgLocal.java                                                                                                                   |   32 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/14.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComFmsTeamMemberService.java                                            |   79 
 flower_city/src/main/resources/mapper/GuideRepairOrderImageMapper.xml                                                                                                                |    5 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/partybuilding/NewStriveForFeign.java                                                          |  651 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialProjectPublicityMapper.xml                                                              |   35 
 springcloud_k8s_panzhihuazhihuishequ/auth/pom.xml                                                                                                                                    |  161 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActWorkGuideClassifyServiceImpl.java                            |  143 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventGridMemberRelationService.java                                               |   92 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/civil/CivilConvenienceStatisticsVO.java                                    |   34 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageActivityInviteDTO.java                                                       |   29 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/vaccines/VaccinesEnrollByAppDTO.java                                                       |   25 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityPartyBuildingWestApi.java                                      | 1136 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActCommitteeApi.java                                                 |   75 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/ComDataStatisticsOrgDto.java                                                 |   38 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/MessageUtils.java                                                                               |   25 
 springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/config/SwaggerConfig.java                                                             |   33 
 flower_city/src/main/java/com/dg/core/db/gen/entity/ReplyTemplateEntity.java                                                                                                         |  158 
 springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/model/vos/SelfUserEntity.java                                                                             |  150 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/ComActEasyPhotoTypeRelationDO.java                                              |   43 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthElderlyVO.java                                                       |   72 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborReplyAppDTO.java                                                    |   41 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/EldersAuthRecordsApi.java                                               |  142 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthRecordImportMistakeExcelVO.java                                     |   42 
 springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/resources/bootstrap.yml                                                                                                        |   33 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/42.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerCreditsExchangeService.java                                    |   81 
 springcloud_k8s_panzhihuazhihuishequ/shop_backstage/mvnw.cmd                                                                                                                         |  182 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/bootstrap.yml                                                                                                   |   31 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActWarehouseBaseMapper.xml                                                                       |   15 
 flower_city/src/main/resources/mapper/ElseAccessoryMapper.xml                                                                                                                        |  126 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiComConvenientServiceCategoriesMapper.xml                                               |  170 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventVisitingTasksMapper.xml                                                                             |  221 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActReserveSubDO.java                                               |   92 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/NewFightProjectJoinDTO.java                                                  |   38 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/acid/ComActAcidDangerMemberDTO.java                                              |   67 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/cluster/admin/AddClusterMemberAdminDto.java                                      |   44 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborCircleTopicAdminDTO.java                                            |   40 
 flower_city/src/main/java/com/dg/core/api/GuideDoAppletsController.java                                                                                                              |   56 
 springcloud_demo_on_k8s-master/service-api/src/test/java/com/springcloud/serviceapi/ServiceApiApplicationTests.java                                                                  |   17 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenQuestionnaireStatisticsInfo.java                               |   37 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventCommunityAddDTO.java                                                       |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightProjectPlanServiceImpl.java                             |  114 
 flower_city/src/main/java/com/dg/core/api/ElseAccessoryAppletsController.java                                                                                                        |  116 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComChangeCarModelRelationDto.java                                               |   64 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveRegisterDetailedVO.java                                      |   36 
 flower_city/src/main/java/com/dg/core/annotation/Authorization.java                                                                                                                  |   14 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialWorkerApi.java                                                  |  106 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/PageMcsProductDTO.java                                     |   42 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryTradeOrderDto.java                                                    |  119 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngVolunteerServiceTypeService.java                                  |   61 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerMerchantEvaluateMapper.xml                                                                 |  174 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComFmsTeamTypeMapper.xml                                                                            |   38 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/StreetApi.java                                                              |   98 
 springcloud_k8s_panzhihuazhihuishequ/config_server/pom.xml                                                                                                                           |  111 
 flower_city/src/main/java/com/dg/core/db/gen/mapper/AutomessagePolicyDocumentsMapper.java                                                                                            |   53 
 springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/biz/LcApiService.java                                                                        |  240 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiInterspaceApplyForMapper.xml                                                           |  206 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiSnapshotClassifyDao.java                                |   51 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/event/ScreenDrawEventListDTO.java                                      |   44 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommodityOrderBargainService.java                             |   99 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopCartStoreVO.java                                                                |   42 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/RentingHourseLabelMapper.xml                                                                        |   19 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionIntegralRecordDto.java                                                      |   76 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/McsMerchantDTO.java                                        |   91 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/EexcelUserDTO.java                                                                    |  146 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/9.gif                                                                                |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/LocalEventToLangChaoEventTypeEnum.java                                                          |   42 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexPopulationSexStatisticsVO.java                                  |   20 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActSocialMemberApi.java                                              |  103 
 springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/service/BraceletUserDataService.java                                              |   70 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/DelComMngHousePopulationDTO.java                                                      |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiReseauPeopleServiceImpl.java                   |   72 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleWestDAO.java                                            |  145 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsConfigMapper.xml                                                                                 |   39 
 flower_city/src/main/java/com/dg/core/db/manual/mapper/util/PageUtils.java                                                                                                           |   28 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComFmsServiceRecordService.java                                         |   14 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/IComEventService.java                                                   |  109 
 flower_city/src/main/resources/mapper/SlideshowMapper.xml                                                                                                                            |   14 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleDetailAppVO.java                                               |  143 
 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/utlis/FeignHystrixConcurrencyStrategy.java                                                            |  128 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/redis/RedisUtils.java                                                                                 |  247 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/DisabledPersonsServiceImpl.java                                    |   93 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/StrFormatter.java                                                                               |   76 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActIntegralUserTradeServiceImpl.java                            |  443 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActPasswordVo.java                                                             |   20 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/EventDetailWorkVO.java                                                               |   68 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiConvenientMerchantDao.java                              |   62 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialOrgHatchAudit.java                                           |   81 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialOrgApi.java                                                     |   97 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiSnapshotServiceImpl.java                       |   63 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComChangeCarInquiryDto.java                                                     |   78 
 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/dtos/common/OrderDeliverAdminDto.java                                                           |   37 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActIntegralUserChangeDOMapper.xml                                                                |   44 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwRotaMapper.xml                                                                                 |   60 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiCharityMapper.xml                                                                      |  166 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/PageConvenientGoodsCategoryDTO.java                                   |   28 
 springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/resources/bootstrap.yml                                                                                                    |   23 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberEditAdminDTO.java                                                      |   83 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/EldersAuthElderlyApi.java                                                   |   90 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/IdentityAuthMethodEnum.java                                                                     |   32 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/civil/ComActSocialWorkerVO.java                                                             |  119 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenCommunityStatisticsVO.java                                     |   32 
 flower_city/src/main/java/com/dg/core/db/gen/entity/CountList.java                                                                                                                   |   20 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopUserAddressVO.java                                                              |   88 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActWarehouseBaseApi.java                                                                     |   43 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionInspection.java                                                  |  121 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionStoreDto.java                                                               |  108 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwRotaPersonVO.java                                                            |   45 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActWarehouseApply.java                                                |  144 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridCascadeListDTO.java                                                          |   27 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridMemberWarnLogAdminVO.java                                                     |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleDAO.java                                                |  247 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventStatisticsMemberAdminVO.java                                                      |   65 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryUserAddressDto.java                                                   |  118 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComVeteransPopulationVO.java                                                      |  356 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveService.java                                               |  137 
 springcloud_demo_on_k8s-master/service-tp/src/main/resources/application.yml                                                                                                         |   29 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/EvaluationFmsServiceDTO.java                                                 |   36 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenResidentActStatisticsInfo.java                                 |   36 
 flower_city/src/main/java/com/dg/core/api/ReplyTemplateAppletsController.java                                                                                                        |  164 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngDistrictDAO.java                                                      |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/LcFlowPersonVisitRecordDTO.java                                                    |  121 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleTopicNewMapper.java                                     |   15 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ConvenientGoodsCategoryDO.java                                        |   68 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysOperLogDAO.java                                                                    |   22 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/ConvenientMerchantDTO.java                                            |  140 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/Threads.java                                                                                    |   69 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleCommentService.java                                 |   13 
 springcloud_k8s_panzhihuazhihuishequ/deploy-file/eurekaserver.yaml                                                                                                                   |   64 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerGoodsService.java                                          |   97 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiOldManVO.java                                                                  |   52 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActRafflePrize.java                                                   |   66 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiExperienceActivityMapper.xml                                                           |  270 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleCommentWestDAO.java                                     |   44 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComClusterOrganizationService.java                                      |   59 
 flower_city/src/main/java/com/dg/core/service/impl/ElseAccessoryImpl.java                                                                                                            |   47 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComChangeCarModelRelationVo.java                                                     |   63 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPensionAuthPensionerMapper.xml                                                                   |   82 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationCorrectExcelVO.java                                               |  195 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/51.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActRafflePrizeService.java                                           |   24 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/EditUserInfoPassAppDTO.java                                                                 |   30 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActWarehouseDonatesServiceImpl.java                             |  354 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialProjectScheduleServiceImpl.java                        |   31 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/bracelet/CommunityBraceletService.java                                                        |  133 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComSanShuoApi.java                                                                              |   73 
 flower_city/src/main/java/com/dg/core/controller/GuideDoController.java                                                                                                              |  312 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActWarehouseOperationApi.java                                            |   86 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleBrowseService.java                                  |   23 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveOperationRecordServiceImpl.java                       |   90 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticPartyActivityTopUser.java                             |   23 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActUserWalletTradeDO.java                                          |  103 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/27.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerIntegralRecord.java                                             |   47 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerEvaluateService.java                                       |   44 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/LogUtils.java                                                                                   |   15 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageVolunteerDTO.java                                                            |   37 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventPopulationBasicsStatisticsVO.java                               |   33 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/ChangePasswordVO.java                                                                  |   32 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActUserWalletTradeDOMapper.xml                                                                   |  273 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventApplicationAppReleaseVO.java                                                      |   47 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/elders/ComPensionAuthStatisticVO.java                                                       |   90 
 flower_city/src/main/java/com/dg/core/ResultData.java                                                                                                                                |   85 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommodityOrderDto.java                                                |  191 
 flower_city/src/main/java/com/dg/core/service/IMenuService.java                                                                                                                      |   42 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerActivitiesPeople.java                                           |   86 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveAnswerContentService.java                                  |   56 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/VolunteerMerchantApi.java                                                   |  337 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/PbWorkVO.java                                                                        |   30 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/GridMemberAdminVO.java                                                                 |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngVolunteerSkillDao.xml                                                                         |  122 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/ComActFourMemberMapper.xml                                                                               |   14 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysUserRoleDAO.xml                                                                                       |   14 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActAcidDangerMemberServiceImpl.java                             |   49 
 flower_city/src/main/java/com/dg/core/db/gen/entity/PieChart.java                                                                                                                    |   19 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComKeyPopulationDAO.java                                                    |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActRegistMapper.xml                                                                           |  205 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/mvnw.cmd                                                                                                                  |  182 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComMapGridEventVO.java                                                                 |   32 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComSanRequestVO.java                                                                |   47 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiComActWorkGuideMaterial.java                         |   28 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/SetShelfForProductDTO.java                                 |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventVisitingTasksService.java                                                    |  194 
 springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/model/request/LoginRequest.java                                                       |   36 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/RentingHourseFileApi.java                                                   |   86 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/ComActWarehouseOperationVO.java                                         |   90 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/BigScreenStatisticsServiceImpl.java                                | 1365 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/rentingHouses/RentingHouseRegisterDTO.java                                       |  175 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/PartyActivityTypeChart.java                                                       |   19 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/rentHouse/WxPayNotifyOrderVO.java                                                 |   42 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/MostBeautifulVolunteerDao.java                                              |   37 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/66.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/message/RaffleMessage.java                                                      |   97 
 flower_city/src/main/java/com/dg/core/service/IClassifyAdministrationService.java                                                                                                    |   85 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActEvaluateDAO.java                                                   |   54 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientElevatingPointServiceImpl.java                           |  193 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionAccessMapper.xml                                                                                   |    5 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActWarehouseBaseService.java                                         |   15 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/DiscussApi.java                                                                                 |  312 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/DetailNeighborCommentReplyByAdminDTO.java                                         |   25 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/FtpConfig.java                                                                             |   20 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngStructBuildTypeVO.java                                                      |   27 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/SysUserServiceImpl.java                                            |  119 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/PieElementVO.java                                                                    |   22 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActWorkGuideClassifyVO.java                                                    |   49 
 springcloud_demo_on_k8s-master/service-influxdb-app/mvnw                                                                                                                             |  286 
 springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/model/vos/LoginBody.java                                                                          |   25 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopGoodsAttrVO.java                                                                |   77 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/BaseDO.java                                                                     |   25 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/NoticeReadDTO.java                                                               |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsInformation.java                                                      |   88 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthRecordServiceImpl.java                               |  585 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngPopulationHouseUserDOMapper.xml                                                               |   35 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/ComActIntegralUser.java                                               |  135 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysUserDOMapper.xml                                                                                      |  124 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActFourMember.java                                                    |   75 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActWarehouseBaseServiceImpl.java                                |   22 
 flower_city/src/main/java/com/dg/core/db/gen/entity/OrganizationChartEntity.java                                                                                                     |  142 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComKeyPopulationVO.java                                                           |  101 
 springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/SafeboxRequestWrapper.java                                                                        |   76 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientProductShelfVO.java                                          |   23 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComAreaTownCommunityMapper.xml                                                                      |   29 
 flower_city/src/main/resources/mapper/KeywordMapper.xml                                                                                                                              |  104 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborCircleDetailAppDTO.java                                             |   31 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopHiddenConfVO.java                                                               |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoHandlerMapper.java                                           |   66 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/resources/logback-spring.xml                                                                                         |   51 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ConvenientProductCategoryDO.java                                      |   65 
 flower_city/src/main/resources/mapper/MenuMapper.xml                                                                                                                                 |   90 
 flower_city/src/main/java/com/dg/core/util/SmsUtil.java                                                                                                                              |  441 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/PopulationStatisticsVO.java                                                      |   26 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngVillageTotalVO.java                                                         |   30 
 springcloud_k8s_panzhihuazhihuishequ/auth/src/main/resources/bootstrap.yml                                                                                                           |   38 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/test/java/com/panzhihua/service_grid/service/impl/LcCompareCodeServiceImplTest.java                                            |   27 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSanShuoIndustryCenterApi.java                                            |   89 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComBatteryCommodityActivityApi.java                                         |  106 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/event/ScreenDrawLngLatDTO.java                                         |   17 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityActivityServiceImpl.java                        |  177 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngBuildingDAO.java                                                      |  102 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialProjectMemberDao.java                                           |   28 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsVerifiedRecordService.java                                           |   22 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/sanshuo/ComMediateTypeDTO.java                                                   |   98 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngPopulationExportDTO.java                                                  |   55 
 springcloud_demo_on_k8s-master/service-api/src/main/java/com/springcloud/serviceapi/controller/ApiController.java                                                                    |   29 
 flower_city/src/main/java/com/dg/core/task/SwaggerConfig.java                                                                                                                        |   51 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/StreetBigScreenDAO.java                                                  |  380 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/modules/laydate/default/laydate.css                                                          |    2 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthElderlyDetailsVO.java                                                |   76 
 flower_city/src/main/java/com/dg/core/controller/WeixinApiController.java                                                                                                            |   41 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AES.java                                                                                        |  174 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComVeteransPopulationMapper.xml                                                                     |   68 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/PageConvenientProductCategoryDTO.java                                 |   29 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActQuestnaireAppVO.java                                                        |   40 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeDetailedExcelAdminVO.java                                |   37 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/GlobalExceptionCapture.java                                                                |  145 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComLowSecurityPopulationApi.java                                            |   15 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/config/KaptchaConfig.java                                                       |   45 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ExportUserDTO.java                                                               |   25 
 springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/api/ConvenientApi.java                                                                |  392 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActAcidCheckRecordApi.java                                           |   91 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/EventResourceMapper.java                                                    |   19 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/EventWorkVO.java                                                                     |   42 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialProjectSignDAO.java                                             |   39 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/IntegratingTaskVO.java                                                   |   44 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxUtil.java                                                                                     |  839 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/easyexcel/UploadEexcelUserDTOListener.java                                  |  180 
 springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/config/SwaggerConfig.java                                                                                 |   60 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/10.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/config/MyMetaObjectHandler.java                                              |   41 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/Constant.java                                                                                   |   82 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComPbDynMapper.xml                                                                              |  120 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDynTypeMapper.java                                                    |   46 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerOrderPayService.java                                       |   22 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/social/ComActSocialProjectScheduleVO.java                                         |   50 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/config/MybatisPlusConfig.java                                                             |   38 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationHouseInsertAdminDTO.java                                         |  132 
 springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/BatteryJobHandler.java                                                                   |   30 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/dao/ComPropertyAlarmSettingDao.java                                               |   16 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/IndexApi.java                                                                                   |  613 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NeedProblemApi.java                                                      |   93 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/CancelReserveRecordDTO.java                                              |   21 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/StatisticsPhotoVO.java                                                            |   29 
 flower_city/src/main/java/com/dg/core/db/gen/mapper/AutomessageSysSettingsMapper.java                                                                                                |   16 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/rentHouse/RentingHoursePreOrderVO.java                                            |  102 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommodityOrderBargainRecordController.java                        |  106 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventApplicationUserNoticeMapper.xml                                                                     |   59 
 springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/api/FundsApi.java                                                                     |  159 
 springcloud_k8s_panzhihuazhihuishequ/zuul/.mvn/wrapper/maven-wrapper.properties                                                                                                      |    2 
 flower_city/src/main/java/com/dg/core/service/IGuideEvolveService.java                                                                                                               |   51 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/LcCompareCodeMemberDO.java                                                      |   39 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComPbMemberVO.java                                                            |  103 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/KeyPersonLabelEnum.java                                                                         |   40 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ConvenientServiceCategoryService.java                                   |   65 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComFmsTeamMemberRelationMapper.xml                                                                  |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComChangeCarModel.java                                                   |   75 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/property/CommonPage.java                                                                   |   82 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwPatrolRecordAddDTO.java                                                     |  224 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionReportServiceImpl.java                                        |   86 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/IndexUserStatisticsVo.java                                                        |   19 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComChangeCarModelSpecsChildrenFeign.java                                            |   87 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionShippingAddressServiceImpl.java                               |   96 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/EventDO.java                                                          |  230 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventResourceServiceImpl.java                                                |  120 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/QRCodeVO.java                                                           |   17 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComDisabilityPopulationService.java                                     |   13 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActWarehouseDonatesApi.java                                                                  |  126 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPbServiceTeamMapper.xml                                                                          |   19 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/advertisement/ComOpsAdvJumpVO.java                                                          |   29 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/KeyPersonInfoService.java                                               |   27 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/ComPbServiceTeamDTO.java                                                     |   67 
 flower_city/.gitkeep                                                                                                                                                                 |    0 
 flower_city/src/main/java/com/dg/core/db/gen/mapper/ReplyTemplateMapper.java                                                                                                         |   60 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/RentingHourseOrder.java                                                  |  287 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventApplicationUserNoticeApi.java                                                    |   91 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/LoginUserInfoVO.java                                                                        |  282 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/BigScreenApi.java                                                                     |  123 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComChangeCarInquiry.java                                                 |   59 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ScreenDrawEventVO.java                                                               |   29 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopOperLogDAO.java                                                      |   16 
 flower_city/src/main/java/com/dg/core/util/presence/YearMap.java                                                                                                                     |   84 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/GridBuildRelationDAO.java                                                   |   14 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDiscussVO.java                                                              |  153 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/api/UnionOutdoorLaborDynamicApi.class                                          |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/logback-spring.xml                                                                                  |   78 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationHouseUserDO.java                                      |  101 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsEvaluateServiceImpl.java                                        |   96 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComSwSafetyWorkRecordDO.java                                          |   60 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/model/dto/ExcelExportDto.java                                               |   75 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridStatisticsDataDTO.java                                                       |   28 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/InputUserTagsDTO.java                                                                 |   24 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActCommitteeService.java                                             |   45 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/rentingHouses/RentingHouseRegisterVO.java                                         |  157 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComActIntegralUsersMapper.xml                                                                   |  141 
 springcloud_k8s_panzhihuazhihuishequ/service_community/.mvn/wrapper/MavenWrapperDownloader.java                                                                                      |  118 
 flower_city/.gitignore                                                                                                                                                               |   35 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientElevatingPointVO.java                                        |  115 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComReserveApi.java                                                                              |   87 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/NewFightConvenientMerchantVO.java                                        |   86 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/.gitignore                                                                                                                    |   33 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActColumnVO.java                                                               |   75 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/GridEventStatisticsDetailVO.java                                                       |   71 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/helper/encrypt/ParammeterInterceptor.java                                 |  118 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComPbCheckUnitDto.java                                                          |  115 
 flower_city/src/main/java/com/dg/core/util/IdUtils.java                                                                                                                              |   49 
 springcloud_k8s_panzhihuazhihuishequ/service_dlz/src/main/resources/bootstrap.yml                                                                                                    |   38 
 flower_city/src/main/java/com/dg/core/db/gen/entity/MenuEntity.java                                                                                                                  |   59 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/large/SumAreaStreetResp.java                                                     |   28 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActIntegralRuleMapper.java                                               |   50 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/mvnw                                                                                                                          |  310 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/SignactivityVO.java                                                               |   37 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiGoldCoinRecordMapper.xml                                                               |  142 
 flower_city/src/main/java/com/dg/core/db/gen/entity/AutomessageSmartConsulting.java                                                                                                  |   57 
 flower_city/src/main/java/com/dg/core/WMApplication.java                                                                                                                             |   19 
 springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/config/ParamOutAspect.java                                                        |  125 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComChangeCarModelRelationController.java                                    |  119 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationTempFilledExcelListen.java                                                     |  238 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventVisitingTasksDetailsVO.java                                                       |  135 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/AddComMngHousePopulationDTO.java                                                      |   38 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventMainMemberAddDTO.java                                                            |  127 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngVillageDO.java                                                  |   94 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/RSAUtils.java                                                                                   |  153 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/integral/ComOpsAccUserVO.java                                                               |   38 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComOpsHouseDTO.java                                                              |  128 
 springcloud_demo_on_k8s-master/config-server/.mvn/wrapper/maven-wrapper.jar                                                                                                          |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActProceedings.java                                                   |   81 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventMainMemberDTO.java                                                           |  148 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/QuestnaireAnswersDTO.java                                                        |   28 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/rentHouse/RentingHourseOrderVO.java                                               |  252 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/VolunteerCommunityConfigMapper.xml                                                           |  131 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/DateUtils.java                                                                                  | 1222 
 flower_city/src/main/java/com/dg/core/db/gen/entity/TimeWorkOrder.java                                                                                                               |   35 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwRotaPageDTO.java                                                            |   47 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActMicroWishServiceImpl.java                                    |  642 
 springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/resources/bootstrap.yml                                                                                                           |  103 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/IndexDataAnalysisVO.java                                                               |   70 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerIntegralRecordService.java                                     |   40 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbDynUserDAO.java                                                     |   15 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActMicroWishFeedbackVO.java                                                    |   37 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialOrgHatchService.java                                        |   45 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComChangeCarModelSpecsChildrenDto.java                                           |   44 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComRehabilitationPopulationDAO.java                                         |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopOrderPayDAO.java                                                     |   16 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/api/EventFile.java                                                                         |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComOpsAdvDO.java                                                      |   72 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/AddTeamTypeDTO.java                                                          |   34 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitingTasksVO.java                                                             |  197 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysAppConfigMapper.xml                                                                                   |   12 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleBrowseWestService.java                              |   23 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/DisableOrEnableMcsMerchantDTO.java                         |   30 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulCultureLevelEnum.java                                                                      |   41 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/acid/ComActAcidCheckRecordDTO.java                                               |   59 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/wallet/PageComActWalletTradeAdminDTO.java                                        |   57 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialOrgHatchAuditServiceImpl.java                          |  231 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComChangeCarModelSpecsDto.java                                                  |   71 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopCartDAO.java                                                         |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleTopicService.java                                   |   67 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionIntegralSummarizeMapper.xml                                                                    |  134 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/SecurityConstants.java                                                                      |   21 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventGridMemberWarnLogDO.java                                                   |   74 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComChangeCarInquiryMapper.java                                              |   58 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComSwPatrolRecordDO.java                                              |  139 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveSubMapper.xml                                                                          |   32 
 flower_city/src/main/resources/mapper/HuaChengSysUserMapper.xml                                                                                                                      |  123 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComChangeCarModelSpecsChildrenServiceImpl.java                     |  136 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComEldersAuthHistoryExcelVO.java                                              |   32 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/CommunityUserInfoVO.java                                                               |  110 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/PartyMemberListExcelVO.java                                                                 |   48 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/integral/ComActIntegralCountDTO.java                                             |   29 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/QuestnaireState.java                                                                            |   20 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ComPbServiceTeamWishVO.java                                              |   23 
 flower_city/src/main/java/com/dg/core/db/manual/pojo/AppletUserCount.java                                                                                                            |   22 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/AddShopGoodsAttrVO.java                                                                |   32 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/JinhuiPageConvenientMerchantDTO.java                                  |   49 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/AddIdentityAuthDTO.java                                                          |   77 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActEasyPhotoRewardVO.java                                                      |   45 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComElderAuthRecordsDAO.java                                                 |   64 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionOutdoorSiteDto.java                                                         |  184 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEasyPhotoEvaluateService.java                                     |   94 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/PageUserAppletsBackstageDTO.java                                                      |   71 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComLowSecurityPopulationVO.java                                                   |  285 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/config/WebSocketClient.java                                                       |  166 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialProjectDao.java                                                 |  120 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopStoreService.java                                                |  101 
 flower_city/src/main/java/com/dg/core/controller/AutomessageCommonProblemController.java                                                                                             |  107 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleTopicAdminVO.java                                              |   40 
 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/RentingHoursePreOrderMapper.xml                                                                     |   48 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComFmsServiceMapper.xml                                                                             |  365 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/EditUserInfoAppDTO.java                                                                     |   17 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationSentenceMistakeExcelVO.java                                       |   91 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/39.gif                                                                               |    0 
 flower_city/src/main/resources/mapper/AutomessageTransactionEventInterviewMapper.xml                                                                                                 |    5 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/R.java                                                                                      |  110 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComPbMemberRoleDOMapper.xml                                                                     |  109 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComFmsTeamTypeService.java                                              |   45 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActIntegralUserDO.java                                             |  136 
 flower_city/src/main/resources/mapper/AutomessageSmartConsultingMapper.xml                                                                                                           |    5 
 springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/LcKeyPersonVisitRecordDTO.java                                                     |   85 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPensionAuthHistoryRecordDOMapper.xml                                                             |  120 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionOutdoorServiceRangeMapper.class                                       |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComChangeCarBrandDto.java                                                        |   86 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodityOrderCollageTeamPeople.java                           |   48 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiMicroVolunteeringService.java                       |   30 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussUserDAO.java                                                   |   26 
 flower_city/src/main/resources/application.properties                                                                                                                                |   56 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/UnionReportService.class                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComChangeCarModelSpecsService.java                                      |   78 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComVeteransPopulationDAO.java                                               |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComFmsTeam.java                                                          |   62 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageEldersAuthDTO.java                                                           |  114 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/DiscussVoteOptionDTO.java                                                        |   27 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/controller/BaseController.java                                                                        |  204 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComCultPopulationApi.java                                                   |   15 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopGoodsDTO.java                                                                  |   36 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActColumnService.java                                                |   52 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVaccinesInoculationRecordServiceImpl.java                    |   70 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ResetComActMessageVO.java                                                         |   17 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActActRegistDO.java                                                |   90 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/ServiceJinHuiCommunityApplication.java                            |   26 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/font/iconfont.svg                                                                                |  473 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/cluster/admin/PageClusterAdminVo.java                                             |   36 
 springcloud_k8s_panzhihuazhihuishequ/zuul/mvnw.cmd                                                                                                                                   |  182 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActPictureVO.java                                                           |   50 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/FileType.java                                                                                   |   91 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/CommediateTypeService.java                                              |   26 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSwPatrolRecordDAO.java                                                   |   40 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/DateScreenVO.java                                                                    |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/PartyBuildIngWestApi.java                                                |  779 
 flower_city/src/main/java/com/dg/core/db/manual/pojo/Search.java                                                                                                                     |   38 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiConvenientMerchantServiceImpl.java             |   68 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComChangeCarBrandFeign.java                                                         |   87 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/MostBeautifulVolunteerService.java                                      |   54 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComActEasyPhotoAdminVO.java                                                            |   80 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComCorrectPopulationDO.java                                           |  258 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/ComMngFamilyInfoDAO.java                                                              |   15 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NeedProblemClaimServiceImpl.java                                |  272 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComPbMemberMapper.xml                                                                           |  794 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSanShuoEventApi.java                                                     |  104 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationMajorExcelVO.java                                                 |  140 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerIntegralRecordServiceImpl.java                            |   63 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryCommodityActivityDto.java                                             |  142 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/social/HatchAuditProcessDTO.java                                                 |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NewFightShoppingOrderApi.java                                            |  107 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryCommodityActivityFeign.java                                               |  136 
 springcloud_k8s_panzhihuazhihuishequ/config_server/mvnw                                                                                                                              |  310 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerOrderDeliveryDAO.java                                          |   31 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComMngPopulationAgeVO.java                                                           |   24 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventGridMemberRelationMapper.xml                                                                        |  651 
 springcloud_demo_on_k8s-master/config-server-bak/src/main/java/com/springcloudme/configserver/ConfigServerApplication.java                                                           |   16 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComPropertyEquipmentApi.java                                            |   86 
 springcloud_demo_on_k8s-master/service-zuul/mvnw.cmd                                                                                                                                 |  161 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ListUtils.java                                                                                  |   14 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/config/MybatisHmkInterceptor.java                                               |   24 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComDataStatisticsMemberVo.java                                                |  108 
 flower_city/src/main/java/com/dg/core/service/ISysUserService.java                                                                                                                   |   94 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComPbMemberExcelVO.java                                                       |   32 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerType.java                                                       |   58 
 flower_city/src/main/java/com/dg/core/MvcConfig.java                                                                                                                                 |   33 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngRealAssetsExcelVO.java                                                      |   39 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActAcidDangerMember.java                                              |  115 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/ScreenStatics.java                                                      |   64 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerGoodsAttrService.java                                      |   13 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/SanShuoMessageVO.java                                                                       |   17 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventServiceImpl.java                                                        | 2847 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiLargeScreenDao.java                                     |  140 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryStoreMapper.java                                                  |   78 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationCommunityTagsServiceImpl.java                      |   23 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/ExportDonatesVO.java                                                    |   79 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/JinHuiCommnuityApi.java                                                                         |  955 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityActivityVo.java                                                   |  166 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientProductCategoryVO.java                                       |   37 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComRehabilitationPopulationApi.java                                         |   15 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComEldersAuthElderlyDO.java                                           |   99 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDynTypeVO.java                                                              |   48 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PagePartyOrganizationVO.java                                                  |   84 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiComActQuestnaireSubDao.java                             |   12 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderDeliveryNoListVO.java                                                |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/SysConfApi.java                                                             |  126 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/ConvenientResetPasswordDTO.java                                                       |   31 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/64.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwPatrolRecordStatisticsVO.java                                                |  105 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngCarExcelListen.java                                                                      |   57 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDynUserDO.java                                                  |   42 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightConfigServiceImpl.java                                  |   68 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EasyPhotoApi.java                                                                 |   85 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/enterprise/AddEnterpriseDTO.java                                                 |   65 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngProvinceServiceImpl.java                                     |  176 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventApplicationUserNoticeService.java                                            |   65 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/44.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsVerifiedRecordDAO.java                                                   |   49 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/resources/mapper/ComPropertyAlarmSettingMapper.xml                                                                    |   17 
 springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/biz/impl/LcApiServiceImpl.java                                                               |  496 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/FmsServiceTopStatisticsVO.java                                                |   32 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSanShuoExpertService.java                                            |   63 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngStructOtherBuildDAO.java                                              |   48 
 flower_city/src/main/java/com/dg/core/controller/CommonController.java                                                                                                               |  178 
 flower_city/src/main/java/com/dg/core/db/gen/entity/AutomessageSysSettingsRecord.java                                                                                                |   50 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/vaccines/VaccinesByAdminDTO.java                                                           |   27 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFundsVO.java                                                                    |   27 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEasyAppDTO.java                                                                   |   56 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/UnionOutdoorSiteService.class                                          |    0 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/.gitignore                                                                                                                       |   33 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/model/vos/LoginBody.java                                                        |   25 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComActDTO.java                                                               |   41 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSentencePopulationDAO.java                                               |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActMicroWishDO.java                                                |  167 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireAnswerContentServiceImpl.java                      |   17 
 springcloud_demo_on_k8s-master/.mvn/wrapper/maven-wrapper.jar                                                                                                                        |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/MathUtils.java                                                                                  |   24 
 flower_city/src/main/java/com/dg/core/db/gen/entity/AutomessageCommonProblem.java                                                                                                    |   84 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventPublicDTO.java                                                             |   32 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PhotoMicroWishData.java                                                       |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventApplicationAppReleaseServiceImpl.java                                   |  128 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsMerchantServiceImpl.java                                        |  464 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngBuildingExcelListen.java                                                                 |  202 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitListVO.java                                                                 |   82 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerActivity.java                                                   |  157 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleTopicWestService.java                               |   60 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/EventWorkScreenVO.java                                                               |   44 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComFmsServiceEvaluations.java                                            |   49 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSentencePopulationServiceImpl.java                              |   22 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActSignExcelNewVO.java                                                      |   44 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleCommentWestService.java                             |   13 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PagePopulationListDTO.java                                                            |   47 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialProjectSchedule.java                                         |   60 
 flower_city/src/main/java/com/dg/core/service/impl/ReplyTemplateImpl.java                                                                                                            |   97 
 springcloud_k8s_panzhihuazhihuishequ/eureka_server/mvnw.cmd                                                                                                                          |  182 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComCorrectPopulationApi.java                                                |   15 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComCvtBusinessAreaDO.java                                             |   30 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderDeliveryVO.java                                                      |  121 
 springcloud_demo_on_k8s-master/pom.xml                                                                                                                                               |   52 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComFmsTeamType.java                                                      |   49 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFundsOrderVO.java                                                               |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsProductMapper.xml                                                                                |   71 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/elders/ComEldersAuthGetResultDTO.java                                                      |   26 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerTypeService.java                                               |   28 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/java/com/springcloudme/serviceinfluxdbapp/controller/InfluxdbController.java                                            |   37 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodityOrderCollageTeam.java                                 |   55 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageEldersAuthRecordDTO.java                                                     |   58 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticPartyBuild.java                                       |   30 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/IpUtils.java                                                                                    |  165 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/LcCompareCodeApi.java                                                                 |   55 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/message/AlarmMessage.java                                                         |   43 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/8.gif                                                                                |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsMerchantService.java                                                 |  119 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/RentingHourseLabelDao.java                                                  |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveOperationRecordService.java                                |   41 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComClusterOrganizationMemberDOMapper.xml                                                            |  139 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComDynamicWorkScreenVO.java                                                          |   32 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/ConvenientProductDTO.java                                             |   66 
 springcloud_k8s_panzhihuazhihuishequ/zuul/.gitignore                                                                                                                                 |   33 
 springcloud_demo_on_k8s-master/config-server-bak/.gitignore                                                                                                                          |   25 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/work/DiscussListVO.java                                                    |   54 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActEasyPhotoEvaluateController.java                                      |  111 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/EldersAuthFeedbackDAO.java                                                  |   18 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopFlowerGoodsDTO.java                                                        |   35 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActQuestnaireDOMapper.xml                                                                        |  259 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActEnterpriseApi.java                                                |   93 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoFeedbackServiceImpl.java                            |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ConvenientApi.java                                                          |  877 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/ComActIntegralUsersService.java                                      |   11 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/57.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/impl/ISysRoleServiceImpl.java                                                                     |   21 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopUserAddressDAO.java                                                  |   27 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridCommunityAdminVO.java                                                         |   26 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/ServiceUserApplication.java                                                               |   20 
 flower_city/src/main/java/com/dg/core/db/gen/mapper/KeywordMapper.java                                                                                                               |   61 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/ComActDAO.java                                                |  177 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPensionAuthRecordService.java                                        |  141 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerActivityServiceImpl.java                                  |  157 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/LoginWithPhoneDTO.java                                     |   29 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/ComActProject.java                                                    |   27 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActivityBigScreenVO.java                                                    |   59 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/DictionaryApi.java                                                      |   93 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActUserWalletDOMapper.xml                                                                        |   92 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveSubMapper.java                                                 |   29 
 flower_city/src/main/java/com/dg/core/api/SlideshowAppletsController.java                                                                                                            |   45 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/SysTemplateConfigMapper.xml                                                                         |   12 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiConfigService.java                                  |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActUserWalletDO.java                                               |   77 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiConfigServiceImpl.java                         |   55 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/PartyMemberDetailExcelVO.java                                                     |   43 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsGameVO.java                                              |   92 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommoditySpecsService.java                                    |   78 
 springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/config/SecurityConfig.java                                                                                |  103 
 flower_city/src/main/resources/mapper/RoleManagementMapper.xml                                                                                                                       |  101 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngUserTagDO.java                                                  |   46 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexGridEventStatisticsVO.java                                      |   40 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/NeighborWestApi.java                                                        |  367 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionUserServiceImpl.java                                          |  311 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/UnionIntegralSummarizeService.class                                    |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/SysUserFeedbackDTO.java                                                               |   69 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActService.java                                                      |  137 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommodityDto.java                                                     |  112 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/NeighborApi.java                                                        |  229 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngVillageServeExcelListen.java                                                             |   83 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDynUserDAO.java                                                       |   19 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActEnterpriseApi.java                                                                        |   65 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActPopulationScreenVO.java                                                        |   58 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/PageComActMessageVO.java                                                          |   73 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsCouponVO.java                                            |   64 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderGoodsVO.java                                                               |   75 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/VaccinesApi.java                                                        |  213 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActWorkGuideClassifyDAO.java                                             |   33 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidRecordVO.java                                                      |  206 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActUserWalletMapper.java                                                 |   52 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComChangeCarModelRelationServiceImpl.java                          |  158 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngPopulationListDTO.java                                                    |   62 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComActProjectMapper.java                                                 |   15 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommunityRepublishEventDTO.java                                                       |   32 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsConfig.java                                                           |   53 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeHandleExcelAdminVO.java                                  |   49 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/helper/sensitive/SensitiveInterceptor.java                                          |   73 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComSanShuoEventController.java                                          |  256 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/easyPhoto/ExportEasyPhotoDTO.java                                                |   31 
 springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/dao/BraceletUserDataDao.java                                                      |   81 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActWarehouseOperationMapper.xml                                                                  |   46 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActWorkGuideService.java                                             |   70 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/OpsHouseStatus.java                                                                             |   22 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/cluster/admin/EditClusterMemberAdminDto.java                                     |   47 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightConfigService.java                                           |   22 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticPartyMemeber.java                                     |   23 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/ExcelListener.java                                                         |   54 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EasyPhotoApi.java                                                                     |  151 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComEquipmentUnionUserFeign.java                                                     |   46 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComCvtServeDO.java                                                    |   75 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoCommentDAO.java                                              |   44 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/EasyExcel.java                                                                                  |   84 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/AdvertisingManagementApi.java                                               |  178 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ConvenientProductCategoryService.java                                   |   60 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/StreetApi.java                                                          |   38 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComChangeCarModelSpecsController.java                                       |  106 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationService.java                                            |  559 
 springcloud_k8s_panzhihuazhihuishequ/service_user/mvnw.cmd                                                                                                                           |  182 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/MediateTypeVO.java                                                                  |   18 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/resources/template/53461_.key.p8                                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/rentingHouses/RentingHousesConfigDTO.java                                        |   32 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerActivitiesPeopleDao.java                                           |   60 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationCommunityTagsService.java                               |   13 
 flower_city/src/main/java/com/dg/core/exception/file/SpringUtils.java                                                                                                                |  136 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/VaccinesApi.java                                                            |  176 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiReseauPeopleApi.java                                    |  182 
 flower_city/src/main/java/com/dg/core/file/FileTypeUploadUtils.java                                                                                                                  |   94 
 springcloud_demo_on_k8s-master/eureka-server/.gitignore                                                                                                                              |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComChangeCarBrandMapper.xml                                                                         |  114 
 springcloud_demo_on_k8s-master/service-zuul/src/main/java/com/springcloudme/servicezuul/ServiceZuulApplication.java                                                                  |   39 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHourseContractConfigServiceImpl.java                        |  104 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/EldersAuthRecordExcelVO.java                                                      |   36 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleAnalysisVO.java                                                |   43 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ActivitySignInRecordVO.java                                                       |   42 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/SystemmanagementConfigVO.java                                                               |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionUserMapper.xml                                                                                 |    5 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/config/MinioUtil.java                                                                 |  125 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/civil/ComActSocialWorkerDetailsVO.java                                                      |  115 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/BigScreenDAO.java                                                           |  163 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleCommentReplyWestDO.java                           |   86 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActEasyPhotoCommentDTO.java                                                   |   26 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveAnswerContentMapper.java                                       |   79 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ServiceStaticBackstageDTO.java                                                    |   22 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActEvaluateExcelVO.java                                                     |   41 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/CommunityApi.java                                                           |  159 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/SysUserEditTipsDTO.java                                                               |   22 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveRecordListVO.java                                            |   98 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComChangeCarModelSpecsVo.java                                                        |   77 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComCvtBusinessServiceImpl.java                                     |  243 
 springcloud_k8s_panzhihuazhihuishequ/common/.gitignore                                                                                                                               |   33 
 springcloud_k8s_panzhihuazhihuishequ/applets/.gitignore                                                                                                                              |   33 
 springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/EasyPhotoActivityJobHandler.java                                                         |   28 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/ComPropertyRepairService.java                                             |   44 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHourseOrderServiceImpl.java                                 |  182 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngStructAreaDistrictDO.java                                       |   58 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/EastPhotoVO.java                                                                     |   28 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationRehabilitationMistakeExcelVO.java                                 |  139 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEnterpriseServiceImpl.java                                   |  106 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/PayCpmstant.java                                                                            |   54 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComMngVillageDTO.java                                                        |   36 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActFeedBackApi.java                                                  |   68 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BuildingApi.java                                                        |  343 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComMngVillageBuildingHouseDetailVO.java                                                |   56 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngStructBuildTypeDO.java                                          |   36 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityVo.java                                                           |  123 
 springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/LoginApi.java                                                                                 |   80 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommodityOrderCollageTeamPeopleService.java                   |   78 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/35.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActColumnApi.java                                                        |   96 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/RentingHourseOrderDao.java                                                  |   35 
 flower_city/src/main/java/com/dg/core/db/gen/entity/Agreement.java                                                                                                                   |   91 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/area/AreaInfoVo.java                                                                        |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialProjectApi.java                                                 |  150 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/modules/layer/default/loading-0.gif                                                          |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/civil/CivilGovernmentStatisticsVO.java                                     |   34 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommodityActivityDto.java                                             |  129 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSanshuoIndustryCenterDao.java                                            |   43 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/SysUserInputService.java                                                          |  124 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EldersAuthAddByFamilyDTO.java                                                    |   40 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageSysConfDTO.java                                                              |   79 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventReportDTO.java                                                             |   49 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridDataEditDTO.java                                                             |   87 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPropertyWorkerDAO.java                                                   |   50 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStaticsReserveMonth.java                                       |   27 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationHouseAdminVO.java                                                 |   63 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComDisabilityPopulationServiceImpl.java                            |   22 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ProjectVO.java                                                                |   51 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxOfficialApi.java                                                                              |  228 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActBuildingServiceImpl.java                                     |  654 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEnterpriseTypeDAO.java                                                |   64 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireDetailAdminVO.java                                           |   58 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UsersAnswerVO.java                                                     |   21 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopGoodsAttrDAO.java                                                    |   24 
 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/exceptions/TokenException.java                                                                        |   57 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberGpsLogAddDTO.java                                                      |   61 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ExcelElderAuthDTO.java                                                           |   48 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationDrugMistakeExcelVO.java                                           |  106 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHourseRegisterServiceImpl.java                              |  459 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleCommentWestServiceImpl.java                    |   23 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleCommentReplyDAO.java                                    |   40 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventMapper.xml                                                                                          | 1525 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventGridIncidentStatisticsVO.java                                   |   47 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/NeighborApi.java                                                            |  485 
 flower_city/src/main/java/com/dg/core/exception/ServiceException.java                                                                                                                |   73 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireUserAnswerServiceImpl.java                         |   23 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComOpsAccRuleServiceImpl.java                                      |   14 
 flower_city/src/main/java/com/dg/core/task/SendWsListener.java                                                                                                                       |  116 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticAgeGender.java                                        |   40 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDaoMapper.xml                                                                                 |  417 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActAcidCheckRecordMapper.xml                                                                     |   25 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/PartyMemberDetailVO.java                                                          |   46 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActUserWalletTradeService.java                                       |   75 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/admin/ComActIntegralUserRuleAdminVO.java                                 |   43 
 springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/mvnw.cmd                                                                                                                 |  205 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSentencePopulationService.java                                       |   13 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComChangeCarModelSpecsChildrenApi.java                                                          |   51 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventRepublishDTO.java                                                          |   32 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActSocialMemberApi.java                                                                      |   92 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/unionpay/Refund.java                                                                                |  217 
 flower_city/src/main/java/com/dg/core/controller/AutomessagePolicyDocumentsController.java                                                                                           |  152 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationCultExcelListen.java                                                           |  552 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsProductLabelDAO.java                                                     |   39 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/cluster/PageClusterMemberVo.java                                                  |   41 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActRaffleRecordApi.java                                                                      |  105 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/impl/UnionReportServiceImpl.class                                      |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunitySanShuoService.java                                                        |  191 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActIntegralUserApi.java                                              |   61 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/17.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialProject.java                                                 |  151 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/0.gif                                                                                |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/IdentityAuthTypeEnum.java                                                                       |   28 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComChangeCarBrandApi.java                                                   |  129 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/vaccines/VaccinesEnrollUserByAppVO.java                                                     |   55 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionAccessMapper.java                                                      |   19 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationCorrectExcelListen.java                                                        |  672 
 springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/api/LcEventApi.java                                                                          |  237 
 springcloud_k8s_panzhihuazhihuishequ/config_server/src/main/resources/logback-spring.xml                                                                                             |   51 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComActEasyPhotoEvaluateVo.java                                                       |   68 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopSysConfVO.java                                                                  |   22 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthRecordForCommunityVO.java                                            |   79 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialMemberServiceImpl.java                                 |  119 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/rentHouse/WxPayOrderVO.java                                                       |   17 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPropertyVO.java                                                                |  100 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/TopStatisticsVO.java                                        |   37 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/wallet/ComActWalletDetailDTO.java                                                |   17 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightConvenientMerchantDao.java                                       |   80 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderPayVO.java                                                           |  101 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/ComActEasyPhotoDO.java                                                          |  126 
 flower_city/src/main/java/com/dg/core/controller/ReplyTemplateController.java                                                                                                        |  180 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommonApi.java                                                                                  |  356 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/CommunityConvenientApi.java                                                 |  464 
 springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/resources/logback-spring.xml                                                                                            |   51 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ActivityAnalysisVO.java                                                            |   44 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightShoppingOrderService.java                                    |   33 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/layer.js                                                                             |    2 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationHouseService.java                                       |  140 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComExServicemanServiceImpl.java                                    |   45 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/wallet/PageComActWalletAdminDTO.java                                             |   25 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/wx/TemplateData.java                                                                       |   17 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/BcRegionApi.java                                                            |   64 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComScreenMapper.xml                                                                                 |  104 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventMainMemberDeleteDTO.java                                                         |   25 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActSocialOrgVO.java                                                            |  314 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiShoppingApi.java                                        |  177 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/IndexApi.java                                                           |   91 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialOrgDao.java                                                     |   86 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/AutomessageSysUserServiceImpl.java                                 |   27 
 springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/LBJobHandler.java                                                                        |   32 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PublicityEventEditDTO.java                                                            |  114 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationKeyMistakeExcelVO.java                                            |   76 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/ComPbMemberService.java                                              |  270 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveSubServiceImpl.java                                   |   55 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/PayUtil.java                                                                                    |  202 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialWorkerServiceServiceImpl.java                          |   39 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionInspectionMapper.xml                                                                           |    5 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComEquipmentUnionOutdoorLaborDynamicFeign.java                                      |   33 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/60.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/warehouse/PageDonatesDTO.java                                                    |   60 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventResourceDTO.java                                                             |   76 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/StartSeckillOrderDto.java                                                           |   35 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMicroWishDAO.java                                                     |  303 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiQuestnaireUserAnswerVO.java                                                    |   68 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventGridDataDO.java                                                            |  105 
 springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionReportApi.java                                         |   49 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOperLogServiceImpl.java                                     |  120 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActAcidCheckRecordApi.java                                                                   |   82 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComChangeCarModelSpecsDto.java                                                   |   74 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/ComActIntegralUserTrade.java                                          |  109 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/NewStriveApi.java                                                       |  665 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/BigScreenStatisticsService.java                                         |  349 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiAllOldManVO.java                                                               |   52 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NeedProblemUnitTaskApi.java                                              |   53 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActivityVO.java                                                             |  345 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEventResourceMapper.java                                                 |   42 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/config/SwaggerConfig.java                                                   |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActWarehouseDonatesDao.java                                              |   97 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ShopApi.java                                                                                    |  258 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ServletUtils.java                                                                               |  118 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_grid/model/helper/sensitive/SensitiveInterceptor.class                                   |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComElderAuthRecordImportExcelListen.java                                                       |  229 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/work/ScreenActActivityListDTO.java                                     |   39 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/PartyBuildingMemberVO.java                                              |   45 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngPopulationHouseDOMapper.xml                                                                   |   57 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/MemberStatisticsAdminDTO.java                                                         |   28 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/GridMemberLcListVO.java                                                          |   24 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngVaccinesInoculationRecordService.java                             |   42 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireListAdminVO.java                                             |   77 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulHousePurposeEnum.java                                                                      |   40 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComMediateType.java                                                      |  189 
 springcloud_k8s_panzhihuazhihuishequ/service_dlz/src/main/java/com/panzhihua/service_dlz/ServiceDlzApplication.java                                                                  |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMediaTypeMapper.xml                                                                              |   16 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WalletApi.java                                                                                  |   74 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/PageConvenientProductDTO.java                                         |   42 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSanShuoEventController.java                                              |  389 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopSysConfDTO.java                                                                |   21 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthRecordVO.java                                                        |   38 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComChangeCarModelApi.java                                                   |  141 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerActivityDao.java                                                   |   53 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenCourtyardStatisticsInfo.java                                   |   36 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActColumnServiceImpl.java                                       |  161 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComPropertyPublicityApi.java                                                                    |   71 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComVeteransPopulationServiceImpl.java                              |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopGoodsAttrService.java                                            |   13 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiApplyExperienceDao.java                                 |   63 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/NewStriveAppApi.java                                                                            |  857 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveSubService.java                                            |   31 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/4.gif                                                                                |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComElderAuthElderliesService.java                                       |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialProjectSignMapper.xml                                                                   |   32 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventConciliationVO.java                                                         |   45 
 flower_city/src/main/java/com/dg/core/exception/file/FileNameLengthLimitExceededException.java                                                                                       |   16 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/config/KaptchaConfig.java                                                   |   45 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AssemblyUtils.java                                                                              |  417 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/EventMapper.java                                                            |  195 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComDisabilityPopulationDO.java                                        |  112 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionIntegralRuleRecordMapper.java                                          |   17 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/entity/ComPropertyRepair.java                                                     |  141 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/PartyBuildIngApi.java                                                    |  830 
 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/model/dtos/common/EditComChangeCarModelDto.java                                                       |   92 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/RoleDAO.java                                                                          |   34 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/ExcelUtils.java                                                            |   85 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/48.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActEasyPhotoActivityRecordDO.java                                  |   77 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborAddBrowseAppDTO.java                                                |   21 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ChangeCommentStatusByAdminVO.java                                                  |   24 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/impl/ComPropertyAlarmSettingServiceImpl.java                              |   50 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActIntegralUserChangeServiceImpl.java                           |  129 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComPropertyWorkerApi.java                                                                       |   53 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventSpecialCrowdRecordDO.java                                                  |   50 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComLowSecurityPeopleDO.java                                           |  149 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireVO.java                                                      |   54 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActMessageBackVO.java                                                          |   65 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComOpsHouseVO.java                                                                |  162 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryCommodityOrderCollageTeamPeopleFeign.java                                 |   87 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialWorkerServiceDao.java                                           |   36 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComMngVolunteerOrgTeamVo.java                                                        |   76 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/carousel.js                                                                          |    2 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComChangeCarBrandService.java                                           |   78 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/SafeWordDangerLevelEnum.java                                                                    |   40 
 springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionStoreApi.java                                          |  116 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiCoinGeneralTableVO.java                                                        |   44 
 springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/pom.xml                                                                                                                  |  134 
 flower_city/src/main/java/com/dg/core/util/presence/Year2010.java                                                                                                                    |   31 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionOutdoorLaborDynamic.class                                       |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/impl/UnionOutdoorLaborDynamicServiceImpl.class                         |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/api/RoomckWebApi.class                                                         |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveDetailVO.java                                                |  134 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDynDAO.java                                                           |  142 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommoditySpecsMapper.xml                                                                  |  105 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationHouseUserServiceImpl.java                          |  143 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionUser.class                                                      |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/api/RoleApi.java                                                                          |  145 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/encrypt/EncryptQueryClass.java                                                           |   14 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiSnapshotClassifyVO.java                                                        |   39 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngRealAssetsExcelListen.java                                                               |   57 
 springcloud_demo_on_k8s-master/service-tp/src/main/java/com/springcloudme/servicetp/UserClient.java                                                                                  |   13 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborCommentReplyAppDTO.java                                             |   27 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewStriveForMapper.xml                                                                          |  108 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/EasyPhotoClassifyApi.java                                                   |   56 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActCommittee.java                                                     |   78 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/ComActIntegralCommunityTradeVO.java                                      |   43 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveDetailAdminVO.java                                           |   67 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComPropertyRepairApi.java                                               |  119 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/GetIdentityEidTokenDTO.java                                                      |   43 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComChangeCarModelVo.java                                                             |   97 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/ConvenientElevatingPointDTO.java                                      |   75 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/Structured.class                                                     |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/wallet/ComActWalletTradeStatisticsAdminVO.java                                    |   21 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleFabulousService.java                                |   13 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActMicroWishDOMapper.xml                                                                         |  317 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/cluster/PageClusterVo.java                                                        |   21 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventDetailVO.java                                                               |  140 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComChangeCarModelSpecsDto.java                                                  |   80 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EventTasksVisitorTypeEnum.java                                                                  |   29 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/AddReserveAdminDTO.java                                                  |   49 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVolunteerMngServiceImpl.java                                 |  367 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPropertyWorkerServiceImpl.java                                  |   96 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngRealAssetsDO.java                                               |   63 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComFmsServiceRecordMapper.xml                                                                       |   83 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/31.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionOutdoorServiceRangeMapper.xml                                                                      |    5 
 flower_city/src/main/java/com/dg/core/db/gen/mapper/AreaCode2022Mapper.java                                                                                                          |   24 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/PageComMngVillageVO.java                                                               |   50 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComSanshuoIndustryCenter.java                                            |  144 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionIntegralRecord.class                                            |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionExchangeRecordService.java                                         |   25 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComMngVillageListAppDTO.java                                                          |   66 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EventTasksStatusEnum.java                                                                       |   37 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/RentingHourseRegister.java                                               |  355 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComMapGridDetailVO.java                                                                |   42 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbDynDO.java                                                    |   94 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialProjectPublicityService.java                                |   29 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialWorkerMapper.xml                                                                        |  149 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComFmsClassroomMapper.xml                                                                           |  126 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiComActQuestnaireUserAnswerMapper.xml                                                   |  196 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NeedProblemInventoryService.java                                     |   55 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActRaffleApi.java                                                    |   97 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleTopicWestServiceImpl.java                      |  144 
 springcloud_k8s_panzhihuazhihuishequ/auth/.mvn/wrapper/MavenWrapperDownloader.java                                                                                                   |  118 
 springcloud_k8s_panzhihuazhihuishequ/zuul/.mvn/wrapper/maven-wrapper.jar                                                                                                             |    0 
 springcloud_demo_on_k8s-master/deploy-file/service-api.yaml                                                                                                                          |   44 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaiteSubVO.java                                                   |   46 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/AreaVO.java                                                                            |   26 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommodityOrderCollageTeamDto.java                                     |   64 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/event/ScreenEventListDTO.java                                          |   61 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActActivityDO.java                                                 |  290 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussDOMapper.xml                                                                           |  377 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/IComEventResourceService.java                                           |   70 
 springcloud_k8s_panzhihuazhihuishequ/service_user/pom.xml                                                                                                                            |  134 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/logback-spring.xml                                                                                         |   78 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComPbMemberServiceImpl.java                                     | 1291 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/warehouse/ComActWarehouseDonatesDTO.java                                         |   72 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComDisabilityPopulationVO.java                                                    |  119 
 flower_city/src/main/java/com/dg/core/exception/file/InvalidExtensionException.java                                                                                                  |   84 
 flower_city/src/main/java/com/dg/core/service/impl/HuaChengSysUserImpl.java                                                                                                          |   29 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsOrderService.java                                                    |   58 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionOutdoorServiceRange.class                                       |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeRightExcelAdminVO.java                                   |   25 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/laytpl.js                                                                            |    2 
 flower_city/src/main/resources/mapper/ClassifyAdministrationMapper.xml                                                                                                               |  127 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiInterspaceTypeVO.java                                                          |   49 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/DisablePersonApi.java                                                   |   89 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventGridMemberWarnLogDTO.java                                                    |   89 
 flower_city/src/main/java/com/dg/core/util/presence/Year2002.java                                                                                                                    |   31 
 flower_city/src/main/resources/mapper/AutomessageSysSettingsRecordMapper.xml                                                                                                         |    5 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComChangeCarModelSpecsMapper.java                                           |   58 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/message/AcidMessage.java                                                        |  132 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDynDO.java                                                      |  110 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewStriveIntegratingTaskMapper.xml                                                              |  219 
 springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/config/SFTPConfig.java                                                                            |   31 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/WxH5Properties.java                                                                          |   58 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActWarehouseApplyDao.java                                                |   51 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightProjectEvaluateServiceImpl.java                         |   74 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngStructAreaDAO.java                                                    |   47 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComPbCheckUnitMapper.xml                                                                        |  519 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/SFTPUtil.java                                                                                   |  376 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/rentingHouses/NearbyDTO.java                                                     |   23 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommodityActivityController.java                                  |  175 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialProjectPublicityServiceImpl.java                       |   48 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComActDiscussDTO.java                                                        |   68 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComPropertyWorker.java                                                   |   56 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngVaccinesEnrollRecordService.java                                  |   51 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityOrderBargainVo.java                                               |  107 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthRecordImportExcelVO.java                                            |   63 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/DonatesStatisticsVO.java                                                |   44 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/pom.xml                                                                                                                       |  145 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiLargeScreenApi.java                                     |  165 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireSubServiceImpl.java                                |   16 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerActivitiesPeopleVO.java                                                  |   74 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ActWorkCountVO.java                                                                  |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/ComMngPopulationDTO.java                                                           |  160 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerUserAddressDAO.java                                            |   28 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientViewStatisticsVO.java                                        |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/SysConfService.java                                                     |   69 
 flower_city/src/main/java/com/dg/core/db/gen/mapper/RoleManagementMapper.java                                                                                                        |   56 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComDrugPopulationDO.java                                              |  155 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/.mvn/wrapper/maven-wrapper.properties                                                                                       |    2 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/RentingHourseFileMapper.xml                                                                         |   19 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationHouseUserAdminVO.java                                             |   34 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPropertyService.java                                                 |   64 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/AddFmsServiceAdminDTO.java                                                   |   61 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthStatisticsVO.java                                                    |   44 
 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/dao/ComActQuestnaireDAO.java                                                    |  153 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/UserCreateOrderDto.java                                                             |   35 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/ApplicationAppReleaseMapper.xml                                                                          |   25 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/NoticeUnReadVO.java                                                                    |   34 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOrderOperateServiceImpl.java                                |   22 
 flower_city/src/main/java/com/dg/core/api/GuideRepairOrderAppletsController.java                                                                                                     |  367 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/modules/layer/default/icon-ext.png                                                           |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/UuLoginVO.java                                                                         |   24 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActQuestnaireUserAnswerDOMapper.xml                                                              |   19 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/MenuRoleVO.java                                                                        |   32 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationMajorMistakeExcelVO.java                                          |  109 
 flower_city/src/main/java/com/dg/core/controller/AreaCodeController.java                                                                                                             |   42 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopOrderOperateService.java                                         |   13 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventDealDTO.java                                                               |   67 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngStructAreaVO.java                                                           |   65 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/civil/ComActSocialExportVO.java                                                            |   70 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopCartListVO.java                                                                 |   29 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerMerchantMapper.xml                                                                         |  374 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/layui.js                                                                                         |    2 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComStreetDAO.java                                                           |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleTopicDO.java                                      |   99 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireStatisticsSummaryExcelAdminVO.java                           |   26 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionIntegralRecord.java                                              |   95 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComActEasyPhotoEvaluateDto.java                                                 |   78 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventGridDataApi.java                                                             |  160 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventResourceMapper.java                                                              |   38 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiComActWorkGuideClassifyService.java                 |   53 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/FmsEventVO.java                                                               |   55 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/ComSanShuoEventController.java                                                    |  251 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComBatteryCommodityOrderApi.java                                                                |   81 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/FileException.java                                                                         |   18 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/advertisement/ComOpsAdvPosVO.java                                                           |   24 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiShoppingOrderService.java                           |   31 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/22.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventMainMemberServiceImpl.java                                              |  115 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ShopStoreVO.java                                                                       |   80 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/HouseApi.java                                                           |  162 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComSanShuoEventVO.java                                                              |   56 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiConvenientMerchantService.java                      |   48 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ScreenWorkService.java                                                  |  103 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VillageVO.java                                                                    |   12 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryCommodityOrderCollageTeamFeign.java                                       |   87 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComCorrectPopulationVO.java                                                       |  286 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/easyPhoto/ComActEasyPhotoCountVO.java                                             |    9 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComChangeCarBrandDto.java                                                       |   81 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComCultPopulationService.java                                           |   13 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComCorrectPopulationServiceImpl.java                               |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/ComActEasyPhotoTypeRelationServiceImpl.java                                  |   28 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NeedProblemInventoryMapper.xml                                                                  |  482 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/java/com/springcloudme/serviceinfluxdbapp/utils/InfluxDBUtils.java                                                      |  135 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/BcDictionaryVO.java                                                                         |   27 
 springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/model/dos/SysLogininforDO.java                                                                            |   46 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComClusterOrganizationMapper.java                                           |   37 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommodityActivityDto.java                                              |  141 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActActEvaluateService.java                                           |   46 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/rentingHouses/PageRentingHouseRegisterDTO.java                                   |   91 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSentencePopulationApi.java                                               |   15 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPensionAuthRecordDAO.java                                                |   58 
 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/ConvenientGoodsCategoryService.java                                     |   65 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/ComMngJobSetVO.java                                                                    |   24 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/EldersAuthElderlyExcelVO.java                                                     |   36 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActAcidRecordDao.java                                                    |  146 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/RentingHourseRefundOrderService.java                                    |   22 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActSocialOrgApi.java                                                 |  107 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveMapper.java                                                    |  133 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActDynTypeService.java                                               |   64 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventSpecialPopulationDetailsVO.java                                                   |   52 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ConvenientProductSpecificationDO.java                                 |   66 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComChangeCarBrandServiceImpl.java                                  |  136 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/admin/ComActIntegralUserTradeAdminVO.java                                |   55 
 springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/model/dos/SysOperLogDO.java                                                                               |   70 
 springcloud_k8s_panzhihuazhihuishequ/auth/.mvn/wrapper/maven-wrapper.jar                                                                                                             |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComFmsTeamMemberRelation.java                                            |   29 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenHmkProjectInfo.java                                            |   25 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComOperationDetailVO.java                                                 |   15 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopFlowerStoreDTO.java                                                        |   34 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiConfig.java                                          |   58 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActReserveDangerAreaApi.java                                             |  101 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinghuiMerchantEvaluateService.java                       |   28 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngProvinceDAO.java                                                      |   16 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngVolunteerMngAppletsVO.java                                                  |   41 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/FourMemberOrgRelationVO.java                                            |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerIntegralMerchantDao.java                                           |   50 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionExchangeRecord.java                                              |  107 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerOrderDAO.java                                                  |  125 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComChangeCarModelSpecsChildrenDto.java                                          |   45 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageEldersAuthHistoryDTO.java                                                    |   32 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberWarnLogDeleteDTO.java                                                  |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionExchangeRecordServiceImpl.java                                |  158 
 flower_city/src/main/java/com/dg/core/controller/SysSettingsController.java                                                                                                          |   57 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComElderAuthRecordsMapper.xml                                                                       |  483 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComVeteransPopulationApi.java                                               |   15 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryStore.java                                                     |   98 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngProvinceService.java                                              |   54 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionIntegralSummarize.java                                           |   63 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopGoodsServiceImpl.java                                       |  274 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComChangeCarBrandApi.java                                                                       |   81 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/VaccinesApi.java                                                                                |   77 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ExportMerchantVO.java                                                  |   85 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/ComActEasyPhotoTypeRelationMapper.java                                                |   38 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/PopulationApi.java                                                                |  155 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/WeiXinException.java                                                                       |   65 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventDTO.java                                                                     |  206 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/ExcelDO.java                                                                               |   39 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthUserVO.java                                                          |   42 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/partybuilding/ComDataStatisticsFeign.java                                                     |   38 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventDetailsVO.java                                                                    |  206 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerMerchantWithdrawVO.java                                                  |   54 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialProjectMemberApi.java                                           |   96 
 flower_city/src/main/resources/mapper/RoleMenuMapper.xml                                                                                                                             |   76 
 flower_city/src/main/java/com/dg/core/db/gen/entity/OrganizationEntity.java                                                                                                          |   27 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PagePublicityEventDTO.java                                                            |  197 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialMemberMapper.xml                                                                        |   54 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/api/UnionInspectionApi.class                                                   |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerGoodsViewStatisticsMapper.xml                                                          |   44 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/ComActIntegralUserVO.java                                                |   43 
 springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/TimejobApplication.java                                                                             |   21 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialMember.java                                                  |  109 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComOpsHouseServiceImpl.java                                        |  201 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngRealCompanyBelongsDTO.java                                                 |   19 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActAcidRecordService.java                                            |  127 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/13.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/SetShelfForGameDTO.java                                    |   30 
 springcloud_k8s_panzhihuazhihuishequ/deploy-file/service-zuul.yaml                                                                                                                   |   50 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiComActQuestnaireSubSelectionDao.java                    |   12 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiLargeScreenMapper.xml                                                                  |  240 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/puda/YardVO.java                                                                            |   19 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComPbServiceTeam.java                                                    |   80 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireServiceImpl.java                                   |  847 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbMemberDO.java                                                 |  169 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/PageComPbServiceTeamDTO.java                                                 |   45 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/EldersAuthElderlyApi.java                                               |  115 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActRegistServiceImpl.java                                    |   69 
 flower_city/src/main/resources/mapper/AgreementMapper.xml                                                                                                                            |   29 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/excel/ComMngPopulationExportExcelVO.java                                         |   84 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopOrderDO.java                                                   |  207 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwDangerReportServiceImpl.java                                  |  426 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/UserIntegral.java                                                     |   75 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionExchangeRecordApi.java                                                 |   68 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ExcelUtil.java                                                                                  |  177 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopOrderPayDO.java                                                |   90 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/TencentUtils.java                                                                               |   88 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/ComMngUserTagDAO.xml                                                                                     |   33 
 flower_city/src/main/java/com/dg/core/service/IElseAccessoryService.java                                                                                                             |   58 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComFmsServiceImportExcelListen.java                                                            |  176 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoClassifyMapper.java                                          |   40 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComCultPopulationDO.java                                              |  112 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActEasyPhotoFeedbackDO.java                                        |   65 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsProductLabelService.java                                             |   14 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthRecordExcleVO.java                                                  |   58 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventResourceEditDTO.java                                                             |   50 
 flower_city/src/main/java/com/dg/core/exception/DemoModeException.java                                                                                                               |   15 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/CommunityPublicityVO.java                                                         |   45 
 flower_city/src/main/java/com/dg/core/util/workday/WorkdayGen.java                                                                                                                   |   74 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/property/ComPropertyHelpVO.java                                                             |   53 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComPropertyApi.java                                                         |   91 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridMemberAdminVO.java                                                            |   15 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopCartDO.java                                                    |   93 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActPictureDAO.java                                                    |   18 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventGridDataApi.java                                                                 |  197 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiComConvenientMerchantsMapper.xml                                                       |  282 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ActDynTypeApi.java                                                      |   86 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/RentingHourseContractConfigMapper.xml                                                               |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActIntegralUserTradeMapper.java                                          |   63 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/GridEventStatisticsVO.java                                                             |   47 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/unionpay/RefundQuery.java                                                                           |  164 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/41.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/UploadFilesVO.java                                                                          |   20 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/excel/CustemSecondhandler.java                                              |   73 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionReportApi.java                                                         |   71 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionOutdoorServiceRangeMapper.xml                                                                  |    5 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UnionDoorApi.java                                                                               |   34 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ExportSpecialUserDTO.java                                                        |   24 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommodityDto.java                                                      |  123 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventGridDataMapper.java                                                              |   75 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/BcRegionMapper.xml                                                                                  |   70 
 springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/resources/logback-spring.xml                                                                                    |   51 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/HouseApi.java                                                               |   77 
 springcloud_k8s_panzhihuazhihuishequ/service_community/.gitignore                                                                                                                    |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActPictureLibrary.xml                                                                            |   10 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComFmsTeamMember.java                                                    |   66 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/SensitiveUtil.java                                                                              |   56 
 springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/config/SpringSecurityConfig.java                                                                          |   58 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActUserWalletApi.java                                                    |   92 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionIntegralRecordService.java                                         |   25 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/AdministratorsUserVO.java                                                              |  116 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexPopulationStatisticsVO.java                                     |   22 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/umf/MyAESUtil.java                                                                                  |   61 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsTeamVO.java                                                             |   45 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerIntegralMerchantService.java                                   |   42 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ActivitySignVO.java                                                               |   79 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/volunteer/ComMngVolunteerErrorExcelVO.java                                        |   39 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerGoodsServiceImpl.java                                 |  366 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/bootstrap.yml                                                                                                   |   38 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/query/visit/EventTasksQuery.java                                                                |   46 
 springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/VisitingTasksApi.java                                                                         |   68 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/util/MyTools.java                                                                 |   72 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActWarehouseDonatesApi.java                                          |  198 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/impl/ComPropertyHelpServiceImpl.java                                      |   30 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/PartyBuildingComPbDynVO.java                                             |  107 
 springcloud_k8s_panzhihuazhihuishequ/common/pom.xml                                                                                                                                  |  209 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActAnnouncementService.java                                          |   22 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/EventTypeWorkVO.java                                                                 |   38 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/DiscussApi.java                                                             |  434 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityOrderBargainRecordServiceImpl.java              |  119 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/util.js                                                                              |    2 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwRotaVO.java                                                                  |   85 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleBrowseDAO.java                                          |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionInspectionMapper.class                                                |    0 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/58.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/test/java/com/panzhihua/service_community/ServiceCommunityApplicationTests.java                                           |   27 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActAcidMemberMapper.xml                                                                          |   36 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinghuiMerchantEvaluateDao.java                               |   38 
 springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/manager/RoleAccessDecisionManager.java                                                                    |   57 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/test/java/com/springcloudme/serviceinfluxdbapp/ServiceInfluxdbAppApplicationTests.java                                       |   17 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationElderExcelVO.java                                                 |  132 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/dao/ComPropertyAlarmDao.java                                                      |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoMemberDao.java                                               |   30 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/DictionaryApi.java                                                          |   92 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComMngVolunteerOrgTeamApi.java                                              |  101 
 springcloud_k8s_panzhihuazhihuishequ/service_user/.gitignore                                                                                                                         |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerEvaluateDAO.xml                                                                        |   51 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/InputUserInfoVO.java                                                                   |  146 
 springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/resources/mapper/BraceletUserDataMapper.xml                                                                           |  641 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommodityOrderCollageTeamPeopleDto.java                                |   66 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialMemberApi.java                                                  |   87 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopGoodsAttrServiceImpl.java                                   |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/RentingHourseRefundOrderMapper.xml                                                                  |   14 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventComprehensiveGovernanceStatisticsVO.java                        |   43 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComExServicemanDO.java                                                |  143 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/helper/sensitive/SensitiveInterceptor.java                                |   73 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/MerchantBusinessPeriod.java                                                                     |   15 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsGameMapper.xml                                                                                   |  183 
 flower_city/src/main/java/com/dg/core/db/gen/mapper/AutomessageSmartConsultingMapper.java                                                                                            |   16 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComEquipmentUnionOutdoorSiteFeign.java                                              |   34 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/netty/ServerChannelInitializer.java                                               |   18 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsOrderServiceImpl.java                                           |  158 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSwRotaDAO.java                                                           |   43 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/PageBigScreenStatisticPartyOrg.java                                    |   37 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComAreaTownCommunityVO.java                                                       |   24 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComClusterOrganizationMemberService.java                                |   92 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsVerifiedRecordServiceImpl.java                                  |   38 
 flower_city/src/main/java/com/dg/core/api/OrganizationAppletsController.java                                                                                                         |   54 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/UnitActivityAnalysisVO.java                                                        |   43 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActColumnApi.java                                                                            |  103 
 springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/resources/bootstrap.yml                                                                                               |   38 
 springcloud_demo_on_k8s-master/deploy-file/config-server.yaml                                                                                                                        |   42 
 flower_city/src/main/java/com/dg/core/service/impl/AutomessagePolicyDocumentsServiceImpl.java                                                                                        |   79 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiIndexInfoVO.java                                                               |   50 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/ComActReserveRegisterStatisticsDTO.java                                  |   25 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityManagerApi.java                                                |  791 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/Convert.java                                                                                    |  918 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComSwPatrolRecordApi.java                                                                       |  207 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopFundsExportDTO.java                                                            |   34 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/ComSanShuoApi.java                                                                |  174 
 springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/handles/FileUploadExceptionAdvice.java                                                                    |   37 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityOrderCollageTeamPeopleVo.java                                     |   68 
 springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/model/dos/SysUser.java                                                            |  274 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/GrantIntegral.java                                                                |   35 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/resources/templates/simsun.ttc                                                                                     |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/EasyPhotoDataVO.java                                                                 |   27 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/RealNameUtil.java                                                                               |   65 
 flower_city/src/main/java/com/dg/core/db/gen/entity/RangeStatistics.java                                                                                                             |   19 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComEldersAuthUserDTO.java                                                    |   77 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/26.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiQuestnaireUserAnswerDao.java                            |   56 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActDiscussOptionService.java                                         |   12 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComOpsAccUserDO.java                                                  |   47 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComFmsServiceEvaluationsService.java                                    |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/RentingHourseFile.java                                                   |  117 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussCommentUserDAO.java                                            |   26 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/admin/BuildingListHeaderStatisticsAdminVo.java                           |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/RoomckWebApi.java                                                           |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsInformationService.java                                              |   82 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthRecordStatisticExcleVO.java                                           |   68 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/50.gif                                                                               |    0 
 flower_city/src/main/java/com/dg/core/manager/TokenConstant.java                                                                                                                     |   25 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopFlowerEvaluateDTO.java                                                     |   32 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/EldersAuthDAO.java                                                          |  169 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComElderAuthElderliesDAO.java                                               |   35 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientGoodsCategoryServiceImpl.java                            |  127 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActProceedingsDao.xml                                                                            |  168 
 springcloud_k8s_panzhihuazhihuishequ/service_api/src/test/java/com/panzhihua/serviceapi/biz/impl/DictionValueData.java                                                               |   15 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/MostBeautifulVolunteerApi.java                                              |  122 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/VolunteerActivityApi.java                                                   |  117 
 flower_city/src/main/java/com/dg/core/db/gen/mapper/SlideshowMapper.java                                                                                                             |   16 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActEasyPhotoMemberApi.java                                           |   97 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEasyPhotoHandlerService.java                                      |   99 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/StreetApi.java                                                              |  134 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BcRegionApi.java                                                        |   39 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/ApplicationAppReleaseMapper.java                                                      |   16 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/TeamMemberTopStatisticsVO.java                                                |   23 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/social/SocialProjectVO.java                                                       |  172 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/PageMcsEvaluateDTO.java                                    |   42 
 springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/resources/logback-spring.xml                                                                                          |   51 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/BigScreenStatisticsApi.java                                                 |  595 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/ComActEasyPhotoTypeMapper.xml                                                                            |   47 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommunityConvenientApi.java                                                                     |  136 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/social/SocialOrgHatchVO.java                                                      |   64 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/sanshuo/ComSanshuoEventDTO.java                                                  |   33 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComAcidStaticVO.java                                                         |   15 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/integral/ComOpsAccRuleVO.java                                                               |   37 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventService.java                                                                 |  378 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightIntegratingTaskServiceImpl.java                         |  149 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopCartVO.java                                                                     |   71 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/PudaScreenApi.java                                                          |   56 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialWorkerServiceMapper.xml                                                                 |   38 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/CommonApi.java                                                                    |  135 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventSpecialCrowdRecordMapper.java                                                    |   29 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationCultExcelVO.java                                                  |  126 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMicroWishOperationRecordMapper.java                                   |   31 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComSanShuoEventController.java                                                                  |  183 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComCorrectPopulationDAO.java                                                |   16 
 flower_city/src/main/java/com/dg/core/service/impl/AutomessageCommonProblemServiceImpl.java                                                                                          |   87 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventBatchRevokeDTO.java                                                              |   45 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActDiscussVoteOptionDTO.java                                                  |   27 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngRealCompanyServiceImpl.java                                  |  161 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComChangeCarModelApi.java                                                                       |   91 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/BcDictionaryConstants.java                                                                  |   55 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionStore.java                                                       |  109 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationVeteransExcelVO.java                                              |  240 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComSentencePopulationDO.java                                          |  117 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngBuildingMapper.xml                                                                            |  218 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiApplyExperienceMapper.xml                                                              |  177 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/test/java/com/panzhihua/service_user/dao/UserDaoTest.java                                                                      |   47 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientProductSpecificationVO.java                                  |   38 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComChangeCarModelMapper.java                                                |   58 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngCityDO.java                                                     |   27 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PageActivityMembersVO.java                                                    |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveMapper.xml                                                                             |  234 
 flower_city/src/main/java/com/dg/core/util/TestDate.java                                                                                                                             |  179 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/PageReserveAdminDTO.java                                                 |   43 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActProceedingsServiceImpl.java                                  |   70 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulIsOksEnum.java                                                                             |   40 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/vaccines/VaccinesInoculationByAdminVO.java                                                  |   56 
 flower_city/src/main/java/com/dg/core/service/IAreaCodeService.java                                                                                                                  |   21 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryCommodityOrderBargainRecordFeign.java                                     |   87 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComCvtBusinessIntroduceDAO.java                                             |    9 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerEvaluateServiceImpl.java                              |   74 
 flower_city/src/main/java/com/dg/core/util/presence/Year20xx.java                                                                                                                    |    7 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NewFightConfigApi.java                                                   |   49 
 flower_city/src/main/java/com/dg/core/util/presence/Year2008.java                                                                                                                    |   31 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationLowSecurityExcelVO.java                                           |  193 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/WeatherVO.java                                                                              |   22 
 flower_city/src/main/java/com/dg/core/file/MimeTypeUtils.java                                                                                                                        |   59 
 springcloud_demo_on_k8s-master/service-tp/src/main/java/com/springcloudme/servicetp/UserClientFallback.java                                                                          |   12 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngVaccinesService.java                                              |   65 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionOutdoorSiteMapper.java                                                 |   18 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/netty/NettyServerHandler.java                                                     |  134 
 springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionShippingAddressApi.java                                |   74 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityOrderBargainRecordVo.java                                         |   69 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActDiscussCommentDTO.java                                                     |   41 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventVisitingTasksVO.java                                                              |  135 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/SysUserAgreementVO.java                                                                |   43 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComAreaTownCommunityServiceImpl.java                               |   35 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveRegisterStatisticsAdminVO.java                               |   25 
 flower_city/src/main/java/com/dg/core/controller/MenuController.java                                                                                                                 |   73 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActAnnouncementApi.java                                                                      |   96 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsVerifiedRecordMapper.xml                                                                         |   60 
 springcloud_k8s_panzhihuazhihuishequ/zuul/pom.xml                                                                                                                                    |  109 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/WxMaProperties.java                                                        |   58 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewFightCommunityConstructionMapper.xml                                                         |  241 
 flower_city/src/main/java/com/dg/core/db/gen/entity/HuaChengSysUser.java                                                                                                             |  285 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoDAO.java                                                     |  477 
 springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/api/McsOrderApi.java                                                                  |  191 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerCommunityConfigVO.java                                                   |   63 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialOrgMapper.xml                                                                           |  202 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/auth/TokenService.java                                                                        |  186 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/easyPhoto/AddEasyPhotoActivityDTO.java                                           |   42 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiArticleManagementMapper.xml                                                            |  133 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidRecordExcelReturn.java                                             |  149 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/JinhuiBraceletApi.java                                                  |  287 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/LatLngVO.java                                                                          |   13 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActRaffleRecord.java                                                  |   74 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventGridMemberGpsLogMapper.xml                                                                          |   98 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/PagePartyOrganizationVO.java                                             |   69 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ChangeCommentReplyStatusByAdminVO.java                                             |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsLabelDAO.java                                                            |   46 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionOutdoorLaborDynamicMapper.java                                         |   18 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/RentingHousesApi.java                                                   |  110 
 springcloud_k8s_panzhihuazhihuishequ/deploy-file/applets.yaml                                                                                                                        |   47 
 flower_city/src/main/java/com/dg/core/db/gen/mapper/MenuMapper.java                                                                                                                  |   47 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/SetPopularForGameDTO.java                                  |   30 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/PagePartyOrganizationMemberVO.java                                      |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionIntegralSummarizeApi.java                                              |   67 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulMarriageEnum.java                                                                          |   42 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthHistoryRecordDetailsVO.java                                          |   50 
 flower_city/src/main/java/com/dg/core/service/impl/TransactionEventImpl.java                                                                                                         |  435 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UserSubAnswerSelectionStatVO.java                                      |   25 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/AppVisitTasksVO.java                                                                  |   87 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/table.js                                                                             |    2 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComOpsHouseDO.java                                                    |  156 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComSwDangerReportDO.java                                              |  166 
 flower_city/src/main/java/com/dg/core/util/Snowflake.java                                                                                                                            |   17 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryTradeOrderDto.java                                                     |  131 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/entity/ComPropertyHelp.java                                                       |   73 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopGoodsVO.java                                                                    |  121 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiCoinGeneralTable.java                                |   49 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ExpertShowVO.java                                                                   |   29 
 springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/api/LoginApi.java                                                                                         |  321 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComMngVolunteerServiceTypeDto.java                                               |   45 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/MicroCommercialStreetApi.java                                               |  171 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsInformationDAO.java                                                      |   66 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComEldersAuthElderlyService.java                                        |   61 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderStoreIdCountVO.java                                                        |   29 
 flower_city/src/main/resources/mapper/AutomessagePolicyDocumentsMapper.xml                                                                                                           |   89 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysRoleDO.java                                                                  |   98 
 springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionOutdoorSiteApi.java                                    |   48 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientProductMapper.xml                                                                         |   84 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActDiscussDTO.java                                                            |  108 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/RentingHoursePreOrderApi.java                                               |   99 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerRefundOrderVO.java                                                        |  166 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryCommodityOrderCollageTeamPeopleDto.java                               |   73 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityActivityApi.java                                               | 1410 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActRaffleApi.java                                                                            |   97 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsOrderVO.java                                             |  110 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationConfirmServeExcelListen.java                                                   |  582 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActWarehouseBase.java                                                 |   82 
 flower_city/src/main/java/com/dg/core/db/gen/mapper/SysUserMapper.java                                                                                                               |   96 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionReportService.java                                                 |   26 
 springcloud_demo_on_k8s-master/service-tp/src/test/java/com/springcloudme/servicetp/ServiceTpApplicationTests.java                                                                   |   17 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopOrderOperateDAO.java                                                 |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/EldersAuthFeedbackDO.java                                             |   54 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComClusterMemberExcelListen.java                                                               |  215 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/.mvn/wrapper/MavenWrapperDownloader.java                                                                                    |  118 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventVisitingTasksMapper.java                                                         |  123 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/PartyCommitteeVO.java                                                    |  112 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/FileUtil.java                                                                                   |  115 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/McsInfoDTO.java                                            |   57 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComEldersAuthRecordExcelListen.java                                                            |   85 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComLowSecurityPopulationServiceImpl.java                           |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleWestDO.java                                       |  207 
 springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/handel/UserLoginSuccessHandler.java                                                                       |   47 
 flower_city/src/main/java/com/dg/core/service/IKeywordService.java                                                                                                                   |   48 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/EldersAuthFeedbackServiceImpl.java                                 |  103 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComCultPopulationMapper.xml                                                                         |   29 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerMerchantEvaluateVO.java                                                  |   95 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleBrowseWestDAO.java                                      |   16 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActActivityCodeApi.java                                              |   56 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComActIntegralUserChangeDAO.java                                         |   15 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionStoreMapper.xml                                                                                |  235 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/work/ActActivityPeopleListVO.java                                          |   31 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/VolunteerIntegralMerchantApi.java                                       |  214 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiInterspaceTypeService.java                          |   28 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/GameStatisticsVO.java                                       |   37 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMicroWishUserDAO.java                                                 |   18 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/KaphtchaApi.java                                                                  |   80 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopOrderSearchDTO.java                                                        |   55 
 springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/resources/logback-spring.xml                                                                                               |   51 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiExperienceActivityService.java                      |   34 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/.mvn/wrapper/maven-wrapper.properties                                                                                         |    2 
 springcloud_k8s_panzhihuazhihuishequ/eureka_server/src/main/java/com/panzhihua/eureka_server/EurekaServerApplication.java                                                            |   17 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenVolunteerStatisticsInfo.java                                   |   45 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/67.gif                                                                               |    0 
 springcloud_demo_on_k8s-master/config-server/mvnw                                                                                                                                    |  286 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/resources/bootstrap.yml                                                                                              |   47 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/property/PagePropertyWorkerDTO.java                                                        |   36 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbMemberRoleDAO.java                                                  |   79 
 springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/StatisticsApi.java                                                                            |   48 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHourseLabelServiceImpl.java                                 |   26 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActIntegralUserDOMapper.xml                                                                      |  140 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComMngVolunteerOrgTeamDto.java                                                  |   62 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityOrderVo.java                                                      |  231 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/admin/ComActActivityPeopleVO.java                                        |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NewFightCommunityConstructionApi.java                                    |  206 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysMenuDAO.xml                                                                                           |   31 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/PbCheckUnitStatisticsVo.java                                                         |   41 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngProvinceDO.java                                                 |   21 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_grid/config/MyMetaObjectHandler.class                                                    |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryCommodityOrderFeign.java                                                  |  152 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiInterspaceTypeMapper.xml                                                               |   89 
 flower_city/src/main/java/com/dg/core/db/manual/pojo/WordUser.java                                                                                                                   |   27 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderExportDTO.java                                                            |   47 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/RentingHourseRefundOrderDao.java                                            |   16 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngPopulationListVO.java                                                      |   72 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ClusterApi.java                                                             |  184 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/layui.all.js                                                                                     |    5 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/LcCompareCodeService.java                                                         |   42 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodity.java                                                 |   91 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopFlowerEvaluateDTO.java                                                         |   65 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommodityOrderBargainRecordService.java                       |   78 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationHouseDetailAdminVO.java                                           |   59 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/resources/lib/UMF_SDK_V01.jar                                                                                                  |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventAddDTO.java                                                                |  123 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthHistoryRecordVO.java                                                 |   50 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActIntegralUserTradeService.java                                     |   88 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopStoreServiceImpl.java                                       |  325 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSwDangerReportService.java                                           |   84 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/JacksonConfig.java                                                                           |   31 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiShoppingService.java                                |   30 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComPropertyApi.java                                                         |   72 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerGoodsDAO.java                                                  |   55 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryStoreClassController.java                                         |  127 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventServiceImpl.java                                           | 1305 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussOptionUserDAO.java                                             |   77 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActRafflePrizeDao.java                                                   |   36 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComCultPopulationServiceImpl.java                                  |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionUserService.java                                                   |   54 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/KeyPersonInfoDTO.java                                                            |  156 
 flower_city/src/main/resources/mapper/OrganizationChartMapper.xml                                                                                                                    |  185 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActWorkGuideClassifyMapper.xml                                                                   |   50 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopFundsSearchDTO.java                                                        |   35 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/IndexInfo.java                                                          |   32 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMajorPopulationServiceImpl.java                                 |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/entity/SysAppConfig.java                                                                  |   54 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/ComMngUserTagDAO.java                                                                 |   38 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/model/dtos/ComPbMemberCertificationDTO.java                                                         |   40 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActFourMemberApi.java                                                |  103 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/BatchhouseVO.java                                                                 |   47 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/LcCompareCodeMapper.java                                                              |   28 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/VolunteerTypeApi.java                                                       |   67 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopOrderGoodsDO.java                                              |   92 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActDynService.java                                                   |   69 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborCommentAppDTO.java                                                  |   29 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryCommodityOrderBargainFeign.java                                           |   87 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/logback-spring.xml                                                                                     |   51 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/RoleVO.java                                                                            |   66 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialProjectMemberMapper.xml                                                                 |   26 
 springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/resources/logback-spring.xml                                                                                                      |   78 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialProjectScheduleDao.java                                         |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/SysUserMapper.xml                                                                                   |  315 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationCommunityTagsVo.java                                              |   38 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/application.yml                                                                                               |   33 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventApplicationAppReleaseDeleteDTO.java                                              |   25 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/ActivitySignUpDTO.java                                                       |   32 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsMerchantVO.java                                          |   76 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComBatteryCommodityApi.java                                             |  140 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialOrgHatchAuditScheduleMapper.xml                                                         |   34 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/ComPbServiceTeamService.java                                         |   65 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComActIntegralUserChangeMapper.xml                                                              |   44 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/CascadeHouseDTO.java                                                             |   27 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionIntegralRecordApi.java                                                 |   63 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/NewFightNeedProblemInventory.java                                        |   57 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialProjectPublicity.java                                        |   79 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityWestService.java                                                           | 9858 +
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComChangeCarInquiryController.java                                          |  106 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireUserAnswerDO.java                                     |   55 
 flower_city/src/main/java/com/dg/core/util/workday/WorkUtils.java                                                                                                                    |  699 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMessageBackDAO.java                                                   |   14 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/jinhuiRecordApi.java                                          |   73 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActFourMemberServiceImpl.java                                   |  274 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActWarehouseOperationServiceImpl.java                           |   34 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEasyPhotoActivityService.java                                     |   77 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/LoginApi.java                                                                                   |  376 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/UserTrade.java                                                        |   53 
 flower_city/src/main/java/com/dg/core/util/presence/Year2015.java                                                                                                                    |   31 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/encrypt/DoEncrytDecrypt.java                                                             |   81 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActFourMemberApi.java                                                                        |  164 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/js/jquery.min.js                                                                                       |    5 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngRealAssetsDAO.java                                                    |   54 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityUnionService.java                                                          |  297 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/easyPhoto/EditEasyPhotoActivityDTO.java                                          |   39 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbActivityMemberDO.java                                         |   57 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActRaffleRecordApi.java                                                  |  126 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComBatteryCommodityActivityApi.java                                                             |  177 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/EventGridMemberBuildingRelationMapper.xml                                                                |   18 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EventStatusEnum.java                                                                            |   40 
 springcloud_demo_on_k8s-master/config-server-bak/mvnw                                                                                                                                |  286 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiApplyExperience.java                                 |   64 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/helper/encrypt/ParammeterInterceptor.java                                           |  118 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComCvtBusinessAreaDAO.java                                                  |   11 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsInformationMapper.xml                                                                            |  100 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/CommonDataApi.java                                                          |  118 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComSanshuoExpert.java                                                    |  137 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ComPbServiceTeamVO.java                                                  |   54 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/config/JacksonConfig.java                                                             |   31 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiSnapshot.java                                        |   71 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComConvenientElevatingPointMapper.xml                                                               |   85 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/BcDictionaryItemVO.java                                                                     |   30 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/70.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActPictureLibraryVO.java                                                       |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsConfigService.java                                                   |   30 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/config/MybatisPlusConfig.java                                                   |   37 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/FileSizeLimitExceededException.java                                                        |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialProjectPublicityDao.java                                        |   34 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEnterpriseService.java                                            |   52 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/excel/ComPbMemberRoleExcelVo.java                                             |   42 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventPageRequestVO.java                                                          |   64 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/elder/SignElderAuthStatisticDTO.java                                             |   24 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/BcDictionaryItemDO.java                                               |   93 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/38.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActEasyPhotoScreenVO.java                                                         |   42 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionShippingAddressService.java                                        |   27 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActWarehouseApplyApi.java                                                                    |  135 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/RentingHourseLabelApi.java                                                  |   86 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderStoreIdNumVO.java                                                          |   31 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityOrderBargainRecordMapper.xml                                                     |  105 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActEasyPhotoCommentUserDTO.java                                               |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewStriveForDAO.java                                                     |   35 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodityOrder.java                                            |  244 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComDrugPopulationMapper.xml                                                                         |   37 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/config/KaptchaConfig.java                                                             |   45 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/LoginMerchantUserInfoVO.java                                                           |   22 
 springcloud_k8s_panzhihuazhihuishequ/eureka_server/.mvn/wrapper/MavenWrapperDownloader.java                                                                                          |  118 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysUserNoticeDO.java                                                            |   92 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/McsGameDTO.java                                            |   85 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActDiscussScreenVO.java                                                           |   38 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/api/SysAppConfigApi.java                                                                  |  112 
 springcloud_k8s_panzhihuazhihuishequ/eureka_server/pom.xml                                                                                                                           |   97 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/PageBuildingUnitHouseListDto.java                                 |   34 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysRoleMenuDO.java                                                              |   30 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/DisabledPersonsDO.java                                                |  115 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysOperLogDAO.xml                                                                                        |   41 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PartyBuildingComPbDynVO.java                                                  |  106 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulHouseStatusEnum.java                                                                       |   40 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommodityActivityService.java                                 |   89 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysUserDO.java                                                                  |  220 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/ComActIntegralCommunityRankVO.java                                       |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventTransferRecordApi.java                                                           |   90 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridDataDetailsVO.java                                                            |   75 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngVillagePopulationListVO.java                                               |   31 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionOutdoorSiteServiceImpl.java                                   |   64 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPensionAuthPensionerDAO.java                                             |   36 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSwSafetyWorkRecordService.java                                       |   54 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSentencePopulationMapper.xml                                                                     |   30 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenActivityLine.java                                              |   21 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/MyAESUtil.java                                                             |   61 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComCvtServeDTO.java                                                          |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComDrugPopulationApi.java                                                   |   15 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionOutdoorLaborDynamicMapper.xml                                                                  |    5 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysTemplateConfigDao.java                                                             |   16 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/model/vos/LoginRequest.java                                                                         |   38 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationKeyExcelListen.java                                                            |  487 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigscreenGridsGovernanceStatisticsVO.java                               |   55 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NewFightIntegratingTaskApi.java                                          |   87 
 flower_city/src/main/resources/mapper/AutomessageSysUserRecordMapper.xml                                                                                                             |  174 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiQuestnaireUserAnswer.java                            |   72 
 flower_city/src/main/java/com/dg/core/db/gen/entity/Guidance.java                                                                                                                    |   19 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AddressUtils.java                                                                               |   45 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleService.java                                        |  292 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventDO.java                                                                    |  226 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewFightCommunityConfigMapper.xml                                                               |  130 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/cluster/admin/PageClusterMemberAdminDto.java                                     |   32 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/large/AreaStreetDetailResp.java                                                  |   31 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerGoodsViewStatisticsDAO.java                                    |   65 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComCvtCategoryServiceImpl.java                                     |  124 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityMapper.xml                                                                       |  232 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/EldersAuthVO.java                                                                 |   85 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerIntegralMerchantVO.java                                                  |  105 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventTransferRecordService.java                                                   |   65 
 flower_city/src/main/resources/application-sms.properties                                                                                                                            |   25 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderShipDTO.java                                                              |   27 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NewStriveForApi.java                                                     |   46 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/cluster/admin/EditClusterAdminDto.java                                           |   41 
 flower_city/src/main/java/com/dg/core/db/gen/mapper/AutomessageCommonProblemMapper.java                                                                                              |   40 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/civil/ComActSocialWorkerExcelVO.java                                                       |   84 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventEditDTO.java                                                               |  125 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiInterspaceApplyForDao.java                              |   47 
 springcloud_demo_on_k8s-master/config-server-bak/mvnw.cmd                                                                                                                            |  161 
 springcloud_k8s_panzhihuazhihuishequ/service_community/mvnw.cmd                                                                                                                      |  182 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/McsOrderApi.java                                                            |  112 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussOptionDOMapper.xml                                                                     |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/ComMngStructHouseDAO.java                                                             |   15 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryTradeOrderVo.java                                                          |  118 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/61.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageElderAuthRecordsDTO.java                                                     |   57 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActQuestnaireVO.java                                                           |   30 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOrderGoodsServiceImpl.java                                  |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleFabulousWestServiceImpl.java                   |   23 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngCarVO.java                                                                  |   75 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerRefundOrderDO.java                                       |  161 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/SysTemplateConfigDao.java                                                   |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/message/ShopOrderMessage.java                                                   |   48 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngVolunteerMngDO.java                                             |  126 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActQuestnaireAnswerContentVO.java                                              |   44 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsCouponService.java                                                   |   45 
 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/shop/ComShopOrderSearchVO.java                                                              |  103 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityQuestnaireApi.java                                             |  312 
 flower_city/src/main/java/com/dg/core/db/gen/entity/Slideshow.java                                                                                                                   |   72 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/ApplyStatistics.java                                                    |   42 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/ComPropertyAlarmService.java                                              |   31 
 flower_city/src/main/java/com/dg/core/controller/ClassifyAdministrationController.java                                                                                               |  194 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComChangeCarInquiryMapper.xml                                                                       |  109 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDiscussOptionServiceImpl.java                                |   18 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerTypeDao.java                                                       |   40 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/easyPhoto/PageEasyPhotoActivityDTO.java                                          |   28 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/ComActEasyPhotoTypeRelationMapper.xml                                                                    |   39 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageComActEasyPhotoDTO.java                                                           |  127 
 springcloud_k8s_panzhihuazhihuishequ/deploy-file/service-timejob.yaml                                                                                                                |   47 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPensionAuthRecordDO.java                                           |  133 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComChangeCarModelServiceImpl.java                                  |  153 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/config/MybatisPlusConfig.java                                                             |   35 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActCommitteeServiceImpl.java                                    |  105 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiComActWorkGuideClassify.java                         |   54 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActVillageDAO.java                                                       |  111 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/StreetBigScreenApi.java                                                  |   84 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventTransferRecordAddDTO.java                                                        |   66 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/.mvn/wrapper/maven-wrapper.jar                                                                                              |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryUserAddressFeign.java                                                     |   95 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/api/LcGridMember.java                                                                      |   45 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleCommentDAO.java                                         |   41 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/area/AreaAddressVO.java                                                                     |   25 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ServiceStaticsVO.java                                                              |   29 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/grid/GridService.java                                                                         | 1381 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngStructBuildTypeDAO.java                                               |   17 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActQuestnaireAnswerContentDTO.java                                            |    8 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPropertyPublicityVO.java                                                       |   68 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NewFightConvenientMerchantApi.java                                       |  105 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventTransferRecordServiceImpl.java                             |   79 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngBuildingExcelVO.java                                                        |   65 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/excel/ComMngVillageExportExcelVO.java                                            |   40 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageActWorkGuideDTO.java                                                         |   31 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/SysConfServiceImpl.java                                            |  111 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/raffle/ComActRafflePrizeCount.java                                                |   21 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/api/UnionUserApi.class                                                         |    0 
 springcloud_demo_on_k8s-master/config-server-bak/pom.xml                                                                                                                             |   74 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionOutdoorLaborDynamicMapper.xml                                                                      |    5 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/config/MyMetaObjectHandler.java                                                           |   41 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/SysConfDO.java                                                        |   59 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsProductLabelServiceImpl.java                                    |   19 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActSocialOrgApi.java                                                                         |  105 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/DictionItemConstants.java                                                                         |   19 
 flower_city/src/main/java/com/dg/core/db/gen/mapper/ElseAccessoryMapper.java                                                                                                         |   70 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/PopulationDetailVO.java                                                                |  103 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthStatisticsServiceImpl.java                           |   21 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NeedProblemClaimService.java                                         |   39 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComCvtCategoryVO.java                                                             |   43 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsEvaluateDAO.java                                                         |   57 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/resources/mapper/ComPropertyHelpMapper.xml                                                                            |   30 
 flower_city/src/main/java/com/dg/core/db/gen/mapper/HomeStatisticsMapper.java                                                                                                        |  118 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/IdentityAuthStatusEnum.java                                                                     |   28 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComActEasyPhotoEvaluateDto.java                                                  |   72 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/social/ComActSocialProjectPublicityVO.java                                        |   80 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/IdCardUtil.java                                                                                 |  168 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerCommunityDiscount.java                                          |   57 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/7.gif                                                                                |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiExperienceActivityApi.java                              |  169 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActUserWalletChangeDOMapper.xml                                                                  |   26 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComMediaTypeVO.java                                                                 |   97 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComPbServiceTeamWishVO.java                                                   |   23 
 flower_city/src/main/java/com/dg/core/db/gen/mapper/AutomessageSysSettingsRecordMapper.java                                                                                          |   16 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/MenuVO.java                                                                                 |   21 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/RSAUtils.java                                                              |  164 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EldersAuthElderlyDTO.java                                                        |   32 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/ServiceDangjianApplication.java                                              |   21 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActWorkGuideVO.java                                                            |   69 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComStreetDTO.java                                                            |   26 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenEasyPhotoStatisticsInfo.java                                   |   51 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComMajorPopulationApi.java                                                  |   15 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightProjectPlanDAO.java                                              |   31 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/config/WebSocketConfig.java                                                       |  136 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/dpc/PageDpcDTO.java                                                              |   33 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventCalculateVO.java                                                            |   24 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewStriveForServiceImpl.java                                    |   60 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventVisitingTasksApi.java                                                            |  259 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthStatisticsDetailsVO.java                                             |   44 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/IndexUserStreetExcelExportVo.java                                                 |   30 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ComPbDynUserVO.java                                                      |   33 
 springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/aop/CheckMcsMerchantExpiration.java                                                   |   21 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/56.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/dpc/AddDpcDTO.java                                                               |   58 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiMicroVolunteeringTypeVO.java                                                   |   45 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ComDataStatisticsHeaderOrgVo.java                                        |   28 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/helper/sensitive/SensitiveInterceptor.java                                |   73 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ConvenientViewStatisticsDO.java                                       |   42 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngVolunteerOrgTeamMapper.java                                           |   71 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionOutdoorServiceRangeMapper.java                                         |   18 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/api/VideoManageApi.class                                                       |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewFightShoppingMapper.xml                                                                      |  166 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/sanshuo/ComSanshuoExpertDTO.java                                                 |  142 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/CopyUtil.java                                                                                   |  299 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionExchangeRecord.class                                            |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/social/ComActSocialWorkerServiceVO.java                                           |   84 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/WorkGuideApi.java                                                           |  123 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleCommentReplyWestServiceImpl.java               |   23 
 flower_city/src/main/java/com/dg/core/service/impl/OrganizationChartImpl.java                                                                                                        |  245 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/CascadeCommVO.java                                                            |   31 
 springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/api/TokenApi.java                                                                            |   50 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/PartyActivityLine.java                                                            |   17 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/helper/encrypt/ParammeterInterceptor.class                               |    0 
 springcloud_demo_on_k8s-master/service-influxdb-app/.gitignore                                                                                                                       |   25 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/CancelRecordDTO.java                                                             |   28 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/vaccines/VaccinesInoculationByAdminDTO.java                                                |   42 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/config/MinioConfig.java                                                         |   28 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/NewFightNeedProblemClaim.java                                            |   28 
 springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/VillageApi.java                                                                               |   71 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerMerchantVO.java                                                          |  154 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngRealCompanyDAO.java                                                   |   74 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/NewFightConfig.java                                                   |   58 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/EldersAuthFeedbackVO.java                                                         |   44 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditOrderLogisticsDto.java                                                          |   31 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationMistakeExcelVO.java                                               |  144 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopSysConfService.java                                              |   13 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionInspectionMapper.xml                                                                               |    5 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexEventListStatisticsVO.java                                      |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActIntegralUserServiceImpl.java                                 |  225 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/DangerAreaStatics.java                                                    |   17 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthElderliesVO.java                                                      |   86 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/ConvenientServiceCategoryDTO.java                                     |   50 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComFlowerOrderDeliveryDTO.java                                                    |   30 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/IPageVO.java                                                                                |  225 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/vaccines/ComMngVaccinesEnrollExcelVo.java                                                   |   35 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComEventResource.java                                                    |   60 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComStreetDO.java                                                      |   78 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/BcDictionaryService.java                                                |   76 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/config/AccessConfig.java                                                        |   20 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActPopulationCultureVO.java                                                       |   23 
 flower_city/src/main/java/com/dg/core/annotation/CurrentUser.java                                                                                                                    |   14 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/MostBeautifulVolunteerMapper.xml                                                                    |  155 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActSocialProjectMemberApi.java                                       |  104 
 springcloud_demo_on_k8s-master/service-tp/.mvn/wrapper/maven-wrapper.jar                                                                                                             |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngCarService.java                                                   |   70 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/elders/ComElderAuthUserDetailVO.java                                                        |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiGoldCoinRecordServiceImpl.java                 |   63 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/KeyPersonInfoDAO.java                                                       |   14 
 springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/config/WxMaConfiguration.java                                                         |   69 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/OperationDetailDTO.java                                                          |   23 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryStoreClassService.java                                        |   93 
 springcloud_k8s_panzhihuazhihuishequ/auth/mvnw.cmd                                                                                                                                   |  182 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComFmsClassroomServiceImpl.java                                    |  232 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActNeighborCircleTopicDOMapper.xml                                                               |   59 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComMngRealAssetsDTO.java                                                     |   28 
 springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/config/SwaggerConfig.java                                                                    |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActWarehouseDonatesApi.java                                              |  182 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/EldersAuthApi.java                                                                              |  235 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComClusterOrganizationMemberMapper.java                                     |   64 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleCommentDO.java                                    |   83 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComEquipmentUnionRePortFeign.java                                                   |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPbDynDAO.java                                                            |   33 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwDangerReportVO.java                                                          |  329 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComChangeCarModelSpecs.java                                              |   58 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/29.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenHatchStatisticsInfo.java                                       |   39 
 springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/aop/OperLogAspect.java                                                                            |  235 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionOutdoorSiteApi.java                                                    |   45 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/QuestnaireSubType.java                                                                          |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/NearbyUtil.java                                                            |   18 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NeedProblemUnitTaskMapper.xml                                                                   |  182 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/43.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActWarehouseApplyApi.java                                            |  224 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/FtpConstants.java                                                                           |   38 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPbMemberMapper.xml                                                                               |   83 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActColumnApi.java                                                    |  134 
 springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/config/ResourcesConfig.java                                     |   64 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/PageConvenientMerchantDTO.java                                        |   47 
 springcloud_k8s_panzhihuazhihuishequ/config_server/.gitignore                                                                                                                        |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/helper/encrypt/ResultInterceptor.java                                               |   78 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionShippingAddressMapper.xml                                                                      |  198 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngVillageListExportAdminDTO.java                                            |   68 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComSanshuoEvent.java                                                     |  114 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/DataKanBansDto.java                                                                        |   32 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/api/ComPropertyRepairApi.java                                                     |  129 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationDAO.java                                                    |  713 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActAcidDangerMemberService.java                                      |   33 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/cluster/admin/ClusterDetailAdminVo.java                                           |   39 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSwPatrolRecordReportDAO.java                                             |   16 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryStoreDto.java                                                          |  134 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/RentingHourseLabelService.java                                          |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/api/ComPropertyAlarmSettingApi.java                                               |   59 
 springcloud_k8s_panzhihuazhihuishequ/deploy-file/service-partybuilding.yaml                                                                                                          |   47 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComSwRotaExcelListen.java                                                                      |   63 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComGridActVO.java                                                                      |   92 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/LcCompareCodeServiceImpl.java                                                |   62 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/ComMngUserTagVO.java                                                                   |   30 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/EldersAuthApi.java                                                          |  550 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActColumnDao.java                                                        |   37 
 springcloud_k8s_panzhihuazhihuishequ/shop_backstage/.gitignore                                                                                                                       |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComChangeCarModelRelationService.java                                   |   87 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/Structured.java                                                       |   89 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/PageBaseDTO.java                                                                           |   40 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComPbMemberRoleExcelListen.java                                                                |  198 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComFmsServiceEvaluationsDAO.java                                            |   39 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/SysUserDao.java                                                             |   20 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageQuestnaireDTO.java                                                           |   42 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDpcVO.java                                                                  |   47 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ActivityManagerVO.java                                                        |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSanShuoIndustryCenterServiceImpl.java                           |  101 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ScreenWorkApi.java                                                      |  293 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerTypeMapper.xml                                                                             |   87 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/discuss/ComActDiscussDetailDTO.java                                              |   24 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/property/ComPropertyAlarmVO.java                                                            |  111 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwPatrolRecordMapper.xml                                                                         |  100 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerMerchantWithdrawService.java                                   |   46 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActNeighborCircleCommentWestDOMapper.xml                                                         |   75 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/FourMemberDetailVO.java                                                           |   19 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActEasyPhotoCommentUserDO.java                                     |   43 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiComActWorkGuideMapper.xml                                                              |  105 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComSwPatrolRecordApi.java                                               | 1263 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationHouseServiceImpl.java                              |  624 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/AddFmsClassroomAdminDTO.java                                                 |   45 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerCommunityConfigServiceImpl.java                           |   54 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngStructHouseDO.java                                              |   66 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComChangeCarModelSpecsFeign.java                                                    |   87 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/EditComMngPopulationVO.java                                                       |  153 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActEasyPhotoEvaluate.java                                             |   64 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngVolunteerServiceTypeDao.xml                                                                   |  103 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/upload.js                                                                            |    2 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActivityStatisticsVO.java                                                   |   91 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialProjectSign.java                                             |   42 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerIntegralRecordDao.java                                             |   49 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireUserAnswerMapper.java                                       |   16 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/cluster/admin/ComClusterMemberExcelExportAdminVO.java                             |   26 
 springcloud_demo_on_k8s-master/service-zuul/src/main/java/com/springcloudme/servicezuul/util/Utils.java                                                                              |   16 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleAppVO.java                                                     |  150 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/UserStatus.java                                                                                 |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActRaffleServiceImpl.java                                       |  141 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/excel/ComPbCheckUnitExcelVO.java                                              |   29 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwDangerReportRectifyDTO.java                                                 |   50 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActAcidMemberDao.java                                                    |   39 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComChangeCarModelSpecsChildrenVo.java                                                |   44 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsTeamTypeVO.java                                                         |   23 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComChangeCarBrandDto.java                                                       |   92 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityConvenientApi.java                                             |  362 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/GisPointUtil.java                                                                               |  123 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionStoreMapper.class                                                     |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/entity/ComPropertyAlarmSetting.java                                               |   54 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopCartServiceImpl.java                                        |  247 
 springcloud_demo_on_k8s-master/deploy-file/service-tp.yaml                                                                                                                           |   42 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngCarAppletDTO.java                                                          |   63 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/model/vos/PutmessageBody.java                                               |   55 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/EastPhotoTypeVO.java                                                                 |   23 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/FmsClassroomTopStatisticsVO.java                                              |   23 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionReport.class                                                    |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightResourceSharingService.java                                  |   27 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActRaffleRecordApi.java                                              |  133 
 flower_city/src/main/java/com/dg/core/util/presence/Year2016.java                                                                                                                    |   31 
 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/dtos/common/PageComChangeCarModelSpecsChildrenDto.java                                          |   54 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/AddShopFlowerGoodsVO.java                                                              |   65 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsProduct.java                                                          |   77 
 springcloud_k8s_panzhihuazhihuishequ/timejob/.mvn/wrapper/maven-wrapper.properties                                                                                                   |    2 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsEvaluateVO.java                                          |   48 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActPictureLibraryApi.java                                                |   37 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerGoodsAttrMapper.xml                                                                    |   30 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActivityMapper.xml                                                                            |  546 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiComActWorkGuideService.java                         |   70 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/PageReserveMakeHandleAdminDTO.java                                       |   39 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridMemberGpsLogDetailsVO.java                                                    |   53 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PartyBuildingMemberVO.java                                                    |  142 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityServiceImpl.java                                |  166 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommodityController.java                                          |  126 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionUserApi.java                                                           |   96 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/PopulationListVO.java                                                                  |   80 
 springcloud_demo_on_k8s-master/config-server/mvnw.cmd                                                                                                                                |  161 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryStoreService.java                                             |   86 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopUserAddressServiceImpl.java                                 |  131 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysUserAgreementDAO.xml                                                                                  |   19 
 springcloud_demo_on_k8s-master/service-tp/.gitignore                                                                                                                                 |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVolunteerSkillServiceImpl.java                               |  122 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightProjectJoinServiceImpl.java                             |   71 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventMapGridCascadeVO.java                                                             |   28 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComCvtBusinessIntroduceDO.java                                        |   30 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComKeyPopulationMapper.xml                                                                          |   26 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/NewFightIntegral.java                                                        |   53 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoServiceImpl.java                                    | 1227 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulRegiterNatureEnum.java                                                                     |   46 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComCvtBusinessDTO.java                                                           |   77 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerCreditsExchange.java                                            |  152 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPbActivityDO.java                                                  |  104 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/MostBeautifulVolunteer.java                                              |   69 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComCvtBusinessService.java                                              |   72 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/annotation/CurrentUser.java                                                     |   14 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventApplicationUserNoticeVO.java                                                      |   44 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridMemberWarnLogVO.java                                                          |   53 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActReserveAnswerContentDO.java                                     |  101 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulSexEnum.java                                                                               |   40 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/mvnw.cmd                                                                                                                      |  182 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dtos/UsersStatisticsDTO.java                                                        |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussOptionUserDOMapper.xml                                                                 |   60 
 springcloud_k8s_panzhihuazhihuishequ/service_api/src/test/java/com/panzhihua/serviceapi/biz/impl/LcApiServiceImplTest.java                                                           |  268 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleTopicAppVO.java                                                |   32 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveDangerAreaService.java                                     |   38 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ActDynTypeApi.java                                                          |   87 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/until/MonitorUtil.java                                                          |   48 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActAcidRecordApi.java                                                    |  212 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageIdentityAuthRecordDTO.java                                                   |   37 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpClientFactory.java                                                                          |  116 
 springcloud_demo_on_k8s-master/config-server-bak/.mvn/wrapper/maven-wrapper.properties                                                                                               |    1 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComCvtBusinessIntroduceServiceImpl.java                            |   53 
 flower_city/src/main/java/com/dg/core/controller/RoleManagementController.java                                                                                                       |  101 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActColumnMapper.xml                                                                              |   77 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventGridMemberWarnLogApi.java                                                        |  100 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventTransferRecordServiceImpl.java                                          |  115 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwSafetyWorkRecordVO.java                                                      |  170 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/wallet/ComActWalletRankingVO.java                                                 |   31 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActActivityCodeApi.java                                                                      |   57 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActRegistExcelNewVO.java                                                    |   42 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/.mvn/wrapper/maven-wrapper.jar                                                                                                |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/advertisement/ComOpsAdvVO.java                                                              |   63 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/RentingHoursePreOrderApi.java                                           |  104 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/NewFightCommunityConstructionDTO.java                                        |   75 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventGridMemberWarnLogMapper.java                                                     |   47 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/integral/admin/PageComActIntegralTradeDTO.java                                   |   32 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ExcelShopFundsDTO.java                                                                |   34 
 springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/MapApi.java                                                                                   |   84 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerMerchantWithdraw.java                                           |   57 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActSocialProjectPublicityApi.java                                    |  107 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPropertyMapper.xml                                                                               |  249 
 springcloud_k8s_panzhihuazhihuishequ/applets/.mvn/wrapper/maven-wrapper.jar                                                                                                          |    0 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/flow.js                                                                              |    2 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActWarehouseDonates.java                                              |  135 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryUserAddressMapper.xml                                                                     |  107 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngCarSaveDTO.java                                                            |   69 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComActEasyPhotoTypeDeleteDTO.java                                                     |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngDistrictDO.java                                                 |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActEnterprise.java                                                    |   89 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwPatrolRecordServiceImpl.java                                  |  325 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComDataStatisticsHeaderOrgVo.java                                             |   29 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientGoodsCategoryMapper.xml                                                                   |   55 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveDangerAreaVO.java                                            |   76 
 springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/resources/mapper/BraceletEarlyWarning.xml                                                                             |  250 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryTradeOrderMapper.xml                                                                      |  156 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/MostBeautifulApi.java                                                   |  160 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/impl/UnionIntegralSummarizeServiceImpl.class                           |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/PartyBuildingMemberVO.java                                               |   94 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComBatteryCommodityActivityApi.java                                     |  144 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/UnionpayCarWashApi.java                                                     |   39 
 springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/config/MinioConfig.java                                                                           |   28 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiComActQuestnaireSubSelection.java                    |   73 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/PageSearchDTO.java                                                    |   40 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComCvtServeExcelVO.java                                                           |   47 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsLabelService.java                                                    |   21 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberWarnLogAddDTO.java                                                     |   61 
 springcloud_k8s_panzhihuazhihuishequ/pom.xml                                                                                                                                         |  252 
 flower_city/src/main/java/com/dg/core/annotation/RoleAdmin.java                                                                                                                      |   11 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopCartDTO.java                                                                   |   39 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenHmkSocialOrgInfo.java                                          |   21 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryUserAddressVo.java                                                         |  107 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/java/com/springcloudme/serviceinfluxdbapp/ServiceInfluxdbAppApplication.java                                            |   18 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/excel/CustomSheetWriteHandler.java                                                                    |   59 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionIntegralSummarizeMapper.xml                                                                        |  109 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionOutdoorLaborDynamicMapper.class                                       |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComActIntegralUserTradeDaoServiceImpl.java                      |   70 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ExcelQuestnaireAnswersDTO.java                                                   |   27 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsProductServiceImpl.java                                         |  209 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/admin/BuildingUnitHouseListAdminVo.java                                  |   35 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/logback-spring.xml                                                                                              |   78 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComBatteryStoreClassApi.java                                                                    |   82 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientProductVO.java                                               |   57 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/34.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/Base64File.java                                                                   |   11 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ParamRegularUtil.java                                                                           |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveOperationRecordMapper.java                                     |   26 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwRotaSaveDTO.java                                                            |   77 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActMessageBackDO.java                                              |   86 
 springcloud_k8s_panzhihuazhihuishequ/eureka_server/src/main/resources/application.yml                                                                                                |   29 
 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/dtos/wx/UnionpayCarWash.java                                                                    |   23 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventGridDataDTO.java                                                             |  113 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActAcidUpdateRecordMapper.xml                                                                    |   17 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UnionInspectionApi.java                                                                         |   65 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEldersAuthUserMapper.java                                                |   39 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/ConvenientProductSpecificationDTO.java                                |   48 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/social/PageProjectSignListDTO.java                                               |   31 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEventMapper.xml                                                                                  |  628 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActVO.java                                                                     |  101 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeLeftStatisticsAdminVO.java                               |   17 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/EasyPhotoActivityApi.java                                                   |   84 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionIntegralSummarizeDto.java                                                   |   52 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenHmkBaseInfo.java                                               |   31 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComVeteransPopulationService.java                                       |   13 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/mvnw.cmd                                                                                                                    |  182 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerGoodsViewStatisticsDO.java                               |   41 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientMerchantMapper.xml                                                                        |  338 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/PageInputUserDTO.java                                                                 |   41 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActIntegralRuleDO.java                                             |  123 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiShoppingOrderServiceImpl.java                  |  179 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysDeptDO.java                                                                  |   58 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComEldersAuthElderlyDTO.java                                                 |  101 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoClassifyServiceImpl.java                            |  135 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiShoppingDao.java                                        |   54 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/OrderPayDTO.java                                                                      |   21 
 springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/aop/OperLogAspect.java                                                                |  329 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ShopFlowerApi.java                                                          |  580 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiInterspaceService.java                              |   28 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsInformationServiceImpl.java                                     |  252 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PartyBuildingActivityVO.java                                                  |  113 
 springcloud_k8s_panzhihuazhihuishequ/service_dlz/pom.xml                                                                                                                             |   90 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/excel/Custemhandler.java                                                    |   75 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/redis/TokenManager.java                                                                               |   36 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/BindUserPhoneDTO.java                                      |   33 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComChangeCarModelDto.java                                                       |  101 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/VillageApi.java                                                                   |  181 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/EldersAuthHistoryApi.java                                               |  134 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionOutdoorSiteService.java                                            |   26 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/3.gif                                                                                |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComClusterOrganizationMemberServiceImpl.java                       |  285 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComOpsAdvJumpDO.java                                                  |   34 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialOrgHatchAuditScheduleService.java                           |   14 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EditComActDynTypeDTO.java                                                        |   26 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/RentingHourseRegisterApi.java                                               |  118 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsGame.java                                                             |  130 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComCunDao.java                                                              |   18 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopGoodsAttrDO.java                                               |   93 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComBatteryUserAddressApi.java                                                                   |  135 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/AppletesBackstageConfigDTO.java                                                            |   23 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEasyPhotoRewardService.java                                       |   13 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComActEasyPhotoTypeDetailsVO.java                                                      |   32 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialOrgHatch.java                                                |   81 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/Users.java                                                            |  222 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActUserWalletTradeServiceImpl.java                              |  135 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiCharityDao.java                                         |   59 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngStructHouseDAO.java                                                   |   41 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryCommodityDto.java                                                     |  121 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ActivityInviteDTO.java                                                           |   39 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/form.js                                                                              |    2 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/elders/ComElderAuthUserAppVO.java                                                           |   46 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/EasyPhotoActivityApi.java                                               |   67 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActUserWalletApi.java                                                |  183 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleBrowseDO.java                                     |   49 
 flower_city/src/main/java/com/dg/core/db/gen/mapper/HuaChengSysUserMapper.java                                                                                                       |   24 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComLowSecurityPopulationDAO.java                                            |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiGoldCoinRecordService.java                          |   30 
 flower_city/src/main/java/com/dg/core/db/gen/mapper/GuideRepairOrderImageMapper.java                                                                                                 |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngStructHouseUserDAO.java                                               |   27 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionReportMapper.java                                                      |   17 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/work/ScreenActActivityPeopleListDTO.java                               |   32 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridMemberWarnLogServiceImpl.java                                       |  217 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActQuestnaireSubDTO.java                                                      |    8 
 springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/mvnw                                                                                                                     |  308 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngStructAreaDistrictDAO.java                                            |   17 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/WxMaConfiguration.java                                                     |   70 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiShoppingOrderMapper.xml                                                                |  197 
 springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/LangChaoEventUploadJobHandler.java                                                       |   66 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngCityDAO.java                                                          |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionUserMapper.xml                                                                                     |    5 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/MapApi.java                                                                           |  109 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryCommodityOrderBargainRecordDto.java                                   |   74 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexPopulationAgeStatisticsVO.java                                  |   22 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/PhotoMicroWish.java                                                          |   32 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightCommunityConstructionService.java                            |   33 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/IdentityAuthRecordDetailVO.java                                                   |   60 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComActEasyPhotoHandleDTO.java                                                         |   46 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/IdentityAuthApi.java                                                        |  206 
 flower_city/src/main/java/com/dg/core/api/AutomessageCommonProblemAppletsController.java                                                                                             |   52 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/bootstrap.yml                                                                                              |   43 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/EventGridMemberBuildingRelationService.java                                       |   13 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActUserWalletTradeExcelVO.java                                                 |   49 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActUserWalletChangeDO.java                                         |   94 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngCarServiceImpl.java                                          |  229 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/easyPhoto/ExportEasyPhotoVO.java                                                  |   25 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireStatisticsSummaryHeaderAdminVO.java                          |   33 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwDangerReportHandleDTO.java                                                  |   69 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActEvaluateMapper.xml                                                                         |  131 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinghuiMerchantEvaluateServiceImpl.java              |   63 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventVerifyDTO.java                                                             |   38 
 springcloud_k8s_panzhihuazhihuishequ/deploy-file/busybox.yaml                                                                                                                        |   14 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveSubListVO.java                                               |   27 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiComActQuestnaireSubSelectionServiceImpl.java   |   16 
 springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/manager/AsyncFactoryNew.java                                                                              |   95 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/raffle/ComActRaffleRecordVO.java                                                  |   99 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ShopFlowerApi.java                                                      |  197 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/EldersAuthFeedbackService.java                                          |   64 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActRaffleDao.java                                                        |   37 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/47.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComRehabilitationPopulationDO.java                                    |  203 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionOutdoorLaborDynamicService.java                                    |   26 
 springcloud_demo_on_k8s-master/config-server/src/main/resources/bootstrap.properties                                                                                                 |   10 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/unionpay/UnifiedOrder.java                                                                          |  334 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/DeleteBuildingHousePopulationDto.java                             |   36 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsLabelMapper.xml                                                                                  |   47 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngStructAreaService.java                                            |  109 
 springcloud_k8s_panzhihuazhihuishequ/eureka_server/.mvn/wrapper/maven-wrapper.properties                                                                                             |    2 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/UnAuthenticationException.java                                                             |   65 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/ResidentAutonomyStatisticsVO.java                                       |  147 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientGoodsCategoryVO.java                                         |   40 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiGoldCoinRecordVO.java                                                          |   53 
 springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/config/ResourcesConfig.java                                                                               |   50 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDynTypeDO.java                                                  |   92 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationDisabilityExcelVO.java                                            |  115 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialWorkerService.java                                          |   77 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActWarehouseOperationApi.java                                                                |   46 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthRecordImportExcelVO.java                                              |   62 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventGridMemberVO.java                                               |   24 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionStoreServiceImpl.java                                         |   63 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightShoppingService.java                                         |   29 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwSafetyWorkEditDTO.java                                                      |  122 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommoditySpecsServiceImpl.java                           |  122 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientConsultationStatisticsDAO.java                                    |   65 
 springcloud_k8s_panzhihuazhihuishequ/deploy-file/community-backstage.yaml                                                                                                            |   47 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryUserAddressService.java                                       |   85 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActNeighborCircleTopicNewMapper.xml                                                              |   14 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsServiceImportExcelVO.java                                               |   34 
 flower_city/src/main/java/com/dg/core/HttpStatus.java                                                                                                                                |   89 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngVaccinesInoculationRecordDAO.java                                     |   80 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionInspectionServiceImpl.java                                    |   84 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/SysTemplateConfigVO.java                                                               |   48 
 springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/PublicityEventApi.java                                                                        |  105 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/excel/ComPbCheckUnitErrorExcelVO.java                                         |   29 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/SysUserFeedbackVO.java                                                                 |   70 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BraceletApi.java                                                        |  377 
 springcloud_demo_on_k8s-master/service-zuul/src/main/java/com/springcloudme/servicezuul/filter/MyFilter.java                                                                         |   55 
 springcloud_k8s_panzhihuazhihuishequ/deploy-file/applets-backstage.yaml                                                                                                              |   47 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/resources/logback-spring.xml                                                                                                   |   51 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/EasyPhotoPointVO.java                                                                |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSanshuoExpertDao.java                                                    |   78 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/umf/UmfPayUtil.java                                                                                 |   98 
 flower_city/src/main/java/com/dg/core/db/manual/mapper/util/ExcelHandlerAdapter.java                                                                                                 |   19 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopAddressDTO.java                                                                |   52 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommodityOrderDto.java                                                 |  217 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenPartyBuildIngStatisticsInfo.java                               |  114 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryCommoditySpecsDto.java                                                |  103 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientGoodsCategoryDAO.java                                             |   73 
 springcloud_k8s_panzhihuazhihuishequ/deploy-file/service-user.yaml                                                                                                                   |   47 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/MimeTypeUtils.java                                                                              |   59 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActAnnouncementApi.java                                                  |   87 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoFeedbackDOMapper.xml                                                                 |   60 
 flower_city/src/main/java/com/dg/core/db/gen/entity/TransactionEvent.java                                                                                                            |  284 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/volunteer/ComMngVolunteerExcelVO.java                                             |   40 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/PageDTO.java                                                                               |   37 
 flower_city/src/main/java/com/dg/core/util/WxSubscribeDTO.java                                                                                                                       |   61 
 springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/SercuritFilter.java                                                                               |  118 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/civil/CivilPartyStatisticsVO.java                                          |   34 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSanShuoEventService.java                                             |   25 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComBasicDataVo.java                                                               |   30 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/util/ExcelUtils.java                                                        |   84 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComEvent.java                                                            |  230 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussDAO.java                                                       |  245 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsProductVO.java                                           |   53 
 flower_city/src/main/java/com/dg/core/db/manual/pojo/QueryResults.java                                                                                                               |   42 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireListVo.java                                                  |   50 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/impl/UnionUserServiceImpl.class                                        |    0 
 springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/handel/UserLogoutSuccessHandler.java                                                                      |   31 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/SpecialPopulationDTO.java                                                             |   26 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveDangerAreaServiceImpl.java                            |   46 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/PageShopGoodsVO.java                                                                   |   84 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComFmsApi.java                                                              |  518 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComActDiscussCommentDTO.java                                                 |   40 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ComDataStatisticsOrgVo.java                                              |  122 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComFmsApi.java                                                          |  667 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbCheckUnitMapper.java                                                |  122 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/StartBargainOrderDto.java                                                           |   35 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitingTasksDetailsVO.java                                                      |  144 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/impl/ComPropertyRepairServiceImpl.java                                    |   88 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/RentingHoursePayingOrderDao.java                                            |   16 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeDetailAdminVO.java                                       |   47 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/resources/logback-spring.xml                                                                                       |   51 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComAreaTownCommunityApi.java                                            |   43 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/PageVO.java                                                                                 |   27 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComClusterOrganizationMemberDO.java                                   |  121 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientProductCategoryDAO.java                                           |   38 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/RealAssetsFloorType.java                                                                        |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/config/MybatisHmkInterceptor.java                                                         |   24 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ComPbMemberExcelVO.java                                                  |   39 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngStructOtherBuildVO.java                                                     |   58 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComMngVillageApi.java                                                       |  281 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngVillagePopulationHouseListVO.java                                          |   36 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/config/MybatisHmkInterceptor.java                                            |   24 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsCoupon.java                                                           |   58 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopGoodsDTO.java                                                              |   31 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventGridMemberRelationMapper.java                                                    |   97 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/font/iconfont.ttf                                                                                |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventApplicationAppReleaseAddDTO.java                                                 |   46 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/QRActivityCodeVO.java                                                             |   23 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/FmsEventTopStatisticsVO.java                                                  |   23 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryStoreController.java                                              |  116 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventApplicationAppReleaseDetailsVO.java                                               |   47 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiInterspaceApplyForService.java                      |   30 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewFightResourceSharingMapper.xml                                                               |  162 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PublicityEventAddDTO.java                                                             |  112 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/rentingHouses/ReleaseOrCancelHouseDTO.java                                       |   31 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDiscussOptionUserVO.java                                                    |   60 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysMenuDAO.java                                                                       |   15 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/LngLatUtils.java                                                                                |   74 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActColumn.java                                                        |   91 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageUserReserveDTO.java                                                          |   12 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComPropertyAlarmSettingApi.java                                         |   48 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventMainMemberEditDTO.java                                                           |  131 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComCultPopulationDAO.java                                                   |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/api/UnionIntegralSummarizeApi.class                                            |    0 
 flower_city/src/main/java/com/dg/core/db/manual/mapper/util/ConstantPropertiesUtil.java                                                                                              |   34 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionReport.java                                                      |  117 
 flower_city/src/main/java/com/dg/core/db/gen/entity/GuideRepairOrderImage.java                                                                                                       |   72 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/RentingHourseLabel.java                                                  |  100 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/util/PdfBase64ImgReplacedElementFactory.java                                |  108 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComPbCheckUnitExcelListen.java                                                                 |  181 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommonDataApi.java                                                      |  995 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/interfaces/OperLog.java                                                                               |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventGridMemberGpsLogDO.java                                                    |   79 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysUserFeedbackDAO.java                                                               |   28 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/IndexApi.java                                                               |  244 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommodityOrderCollageTeamController.java                          |  106 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiInterspace.java                                      |   70 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActWarehouseOperationDao.java                                            |   44 
 flower_city/src/main/java/com/dg/core/util/UUID.java                                                                                                                                 |  486 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageSysUserDto.java                                                                 |  227 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/OrderStatisticsVO.java                                                                 |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/config/MyMetaObjectHandler.java                                                 |   41 
 springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/config/SFTPConfig.java                                                                |   31 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialProjectScheduleMapper.xml                                                               |   14 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/BuildingApi.java                                                            |  133 
 springcloud_k8s_panzhihuazhihuishequ/timejob/pom.xml                                                                                                                                 |  111 
 flower_city/src/main/java/com/dg/core/service/IRoleManagementService.java                                                                                                            |   45 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryStoreClassDto.java                                                    |   85 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/wx/WXPayUtil.java                                                                               |  297 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComFmsTeamMemberRelationDAO.java                                            |   39 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ExportRealAssetsExcelDTO.java                                                    |   22 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationLowSecurityMistakeExcelVO.java                                    |  160 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEasyPhotoService.java                                             |  252 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/RentingHoursePreOrderService.java                                       |   37 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActRaffleMapper.xml                                                                              |   59 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngVolunteerSkillMapper.java                                             |   64 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComSwPatrolRecordReportDO.java                                        |   66 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActivityInviteMapper.xml                                                                      |   22 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryStoreDto.java                                                         |  125 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEasyPhotoClassifyService.java                                     |   67 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiComConvenientServiceCategoriesServiceImpl.java |   63 
 springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/service/impl/BraceletUserDataImpl.java                                            |   65 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsTeamMemberImportExcelVO.java                                            |   34 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActRafflePrizeApi.java                                                   |   88 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventTransferRecordMapper.xml                                                                            |   78 
 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/api/ComActAcidDangerMemberApi.java                                          |   51 
 flower_city/src/main/java/com/dg/core/util/presence/Year2009.java                                                                                                                    |   31 
 springcloud_k8s_panzhihuazhihuishequ/shop_backstage/pom.xml                                                                                                                          |  126 
 flower_city/src/main/resources/mapper/HomeStatisticsMapper.xml                                                                                                                       |  336 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngRealCompanyDO.java                                              |   64 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/RentingHourseRegisterDao.java                                               |   51 
 springcloud_k8s_panzhihuazhihuishequ/timejob/.mvn/wrapper/MavenWrapperDownloader.java                                                                                                |  118 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComDisabilityPopulationMapper.xml                                                                   |   29 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActWorkGuideMaterialVO.java                                                    |   18 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoRewardDOMapper.xml                                                                   |   25 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/UserApi.java                                                                      |   67 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ConvenientElevatingPointDO.java                                       |  106 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSwRotaService.java                                                   |   84 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysRoleMenuDAO.java                                                                   |   26 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryCommodityMapper.java                                              |   72 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComCultPopulationVO.java                                                          |  121 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/40.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ComPbMemberVO.java                                                       |   97 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComFmsServiceRecordServiceImpl.java                                |   19 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborCircleAdminDTO.java                                                 |   58 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngBuildingDO.java                                                 |  124 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LcApiConstants.java                                                                               |  106 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/ComPbCheckUnitService.java                                           |  141 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/SysUserVO.java                                                                         |   87 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/util/JPushUtil.java                                                               |  158 
 springcloud_demo_on_k8s-master/service-api/src/main/resources/application.yml                                                                                                        |   19 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/netty/MyDecoder.java                                                              |   25 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/NeighborApi.java                                                                                |  323 
 flower_city/src/main/java/com/dg/core/db/gen/entity/AutomessagePolicyDocuments.java                                                                                                  |  124 
 springcloud_k8s_panzhihuazhihuishequ/eureka_server/mvnw                                                                                                                              |  310 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/AddTeamDTO.java                                                              |   46 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpClientUtil.java                                                                             |  580 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LcReturnObject.java                                                                               |   29 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/BcDictionaryServiceImpl.java                                       |  114 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsServiceImportMistakeExcelVO.java                                        |   37 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSanShuoExpertServiceImpl.java                                   |  508 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/LcCompareMemberCodeMapper.java                                                        |   16 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/AddShopFlowerGoodsAttrVO.java                                                          |   47 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/pom.xml                                                                                                                          |  129 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComDrugPopulationDAO.java                                                   |   16 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngVolunteerMngVO.java                                                         |  137 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridMemberRelationDetailsVO.java                                                  |   47 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/resources/logback-spring.xml                                                                                            |   51 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/pom.xml                                                                                                                |  169 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComChangeCarModelSpecsChildrenMapper.java                                   |   65 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryCommodityOrderCollageTeamDto.java                                     |   73 
 springcloud_k8s_panzhihuazhihuishequ/config_server/.mvn/wrapper/MavenWrapperDownloader.java                                                                                          |  118 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/NewFightProjectPlanDTO.java                                                  |   46 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PartyOrganizationVO.java                                                      |   78 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireAnswerStatVO.java                                            |   21 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationServeExcelVO.java                                                 |  206 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComCvtBusinessCategoryServeVO.java                                                |   26 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiCoinGeneralTableService.java                        |   28 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionIntegralSummarize.class                                         |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPensionAuthStatisticsDAO.java                                            |   17 
 springcloud_k8s_panzhihuazhihuishequ/timejob/.mvn/wrapper/maven-wrapper.jar                                                                                                          |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventGridMemberRelationApi.java                                                       |   43 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiShoppingOrderDao.java                                   |   61 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/StreetVOStr.java                                                                       |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/resources/bootstrap.yml                                                                                               |   48 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/AddBuildingHouseDto.java                                          |   31 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/21.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionIntegralSummarizeMapper.class                                         |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/PageClassifyMerchantDTO.java                                          |   43 
 springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/api/BraceletUserDataApi.java                                                      |  450 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActRaffleApi.java                                                        |   89 
 flower_city/src/main/java/com/dg/core/db/gen/entity/GuideRepairOrder.java                                                                                                            |  262 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/helper/encrypt/ResultInterceptor.java                                     |   78 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/advertisement/ComOpsAdvJumpDTO.java                                                        |   26 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/vaccines/EnrollUserByAppDTO.java                                                           |   25 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComChangeCarModelSpecsApi.java                                              |  129 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComActEasyPhotoTypeAddDTO.java                                                        |   28 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsGameDAO.java                                                             |  107 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActQuestnaireService.java                                            |  188 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/element.js                                                                           |    2 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActDpc.java                                                           |   85 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/PageMcsGameDTO.java                                        |   54 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveRecordServiceImpl.java                                |  345 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventApplicationAppReleaseDO.java                                               |   58 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiReseauMapper.xml                                                                       |  192 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/59.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/aop/OperLogAspect.java                                                          |  237 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationTagDTO.java                                                      |   27 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridDataAddDTO.java                                                              |   83 
 springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/CommonApi.java                                                                                |  206 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/GridBackstageApplication.java                                                         |   24 
 springcloud_demo_on_k8s-master/config-server-bak/.mvn/wrapper/maven-wrapper.jar                                                                                                      |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSanshuoExpertDao.xml                                                                             |  186 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComSanshuoExpertVO.java                                                             |  149 
 springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/CommonEventApi.java                                                                           |  191 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java                                                               | 11951 +
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/16.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/PartyBuildingApi.java                                                                           |  353 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComActEasyPhotoDetailsVO.java                                                          |   88 
 springcloud_k8s_panzhihuazhihuishequ/service_api/src/test/java/com/panzhihua/serviceapi/biz/impl/DictionData.java                                                                    |   21 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActActPictureDO.java                                               |   66 
 flower_city/src/main/java/com/dg/core/util/presence/Year2019.java                                                                                                                    |   39 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java                                     | 1653 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewFightShoppingOrderMapper.xml                                                                 |  255 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/partybuilding/ComPbCheckUnitFeign.java                                                        |  161 
 flower_city/src/main/java/com/dg/core/util/presence/Year2001.java                                                                                                                    |   31 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerOrderDO.java                                             |  277 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiLargeScreenImpl.java                           |  136 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/IdentityApprovalStatusEnum.java                                                                 |   32 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightShoppingOrderDao.java                                            |   62 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComDisabilityPopulationDAO.java                                             |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActWorkGuideDOMapper.xml                                                                         |   35 
 springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/manager/ShutdownManager.java                                                                              |   34 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActNeighborCircleTopicWestDOMapper.xml                                                           |   68 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPropertyPublicityDO.java                                           |   90 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationHouseUserVO.java                                                 |   41 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidCheckRecordVO.java                                                 |   68 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/HttpStatus.java                                                                             |  104 
 springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/api/GoodsApi.java                                                                     |  158 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/ComMngHouseVo.java                                                                     |   48 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActEasyPhotoActivityVO.java                                                    |   57 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActMicroWishOperationRecordApi.java                                      |   34 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationDetailVO.java                                                     |  187 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/UserRateVO.java                                                                        |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/RentingHourseOrderService.java                                          |   53 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightResourceSharingServiceImpl.java                         |   71 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/puda/BasicDataVO.java                                                                       |   22 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/RealUser.java                                                                          |   27 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiConfigApi.java                                          |   55 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/McsProductDTO.java                                         |   48 
 springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionIntegralSummarizeApi.java                              |   73 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/bootstrap.yml                                                                                              |   43 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/RealUserAnalysisVO.java                                                                |   17 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComKeyPopulationDO.java                                               |   88 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngVillageDOMapper.xml                                                                           |   68 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComCvtServeService.java                                                 |   73 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/PutUserInfoDTO.java                                        |   26 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationCommunityTagsDAO.java                                       |   28 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ExpertRangeVO.java                                                                  |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussOptionDO.java                                            |   52 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/raffle/ComActRafflePrizeVO.java                                                   |   59 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/VaccinesApi.java                                                            |   52 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoMemberServiceImpl.java                              |   29 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialWorkerDao.java                                                  |   73 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComClusterOrganizationDOMapper.xml                                                                  |   58 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActSocialProjectApi.java                                                                     |  135 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActMicroWishVO.java                                                            |  180 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/aop/OperLogAspect.java                                                                |  235 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActAcidMember.java                                                    |   71 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationHouseEditDTO.java                                                |   33 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidColorChartsVO.java                                                 |   23 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionIntegralRecordServiceImpl.java                                |   64 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/BigScreenEventDetailDTO.java                                           |   19 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryCommodityOrderCollageTeamPeopleMapper.java                        |   65 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AgeUtils.java                                                                                   |  159 
 flower_city/src/main/java/com/dg/core/db/gen/entity/ClassifyAdministration.java                                                                                                      |   85 
 springcloud_demo_on_k8s-master/eureka-server/.mvn/wrapper/maven-wrapper.properties                                                                                                   |    1 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/SmsUtil.java                                                                                    |   44 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActUserWalletChangeServiceImpl.java                             |   69 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ComDataStatisticsMemberVo.java                                           |  108 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/config/MybatisPlusConfig.java                                                     |   34 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComEquipmentUnionStoreLDD.java                                                      |   39 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/RentingHourseContractConfigDao.java                                         |   29 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeRightStatisticsAdminVO.java                              |   28 
 springcloud_demo_on_k8s-master/service-zuul/.mvn/wrapper/maven-wrapper.properties                                                                                                    |    1 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialOrgHatchMapper.xml                                                                      |  193 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActCommitteeMapper.xml                                                                           |   48 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventApplicationAppReleaseEditDTO.java                                                |   50 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComExServicemanVO.java                                                            |   34 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMajorPopulationVO.java                                                         |  173 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/RentingHourseOrderApi.java                                                  |  116 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/util/MyAESUtil.java                                                         |   61 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActEnterpriseTypeVO.java                                                       |   47 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenGridStaticsReturn.java                                         |   18 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationNoSecretVO.java                                                   |  253 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryTradeOrder.java                                                |  120 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/aop/RenheAssemblyUtils.java                                                 |  275 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientViewStatisticsDAO.java                                            |   65 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComPbCheckUnit.java                                                      |  174 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/IndexDateVO.java                                                                    |   41 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridAdminVO.java                                                                  |   51 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PartyCommitteeVO.java                                                         |  114 
 flower_city/src/main/java/com/dg/core/service/impl/IAutomessageSmartConsultingServiceImpl.java                                                                                       |   23 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationDrugExcelListen.java                                                           |  530 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussCommentDAO.java                                                |   73 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/config/MinioConfig.java                                                     |   29 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComLowSecurityPopulationMapper.xml                                                                  |   56 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/partybuilding/PartyBuildingWestService.java                                                   |  605 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/SysUserMapper.java                                                          |   67 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComPbDynUserVO.java                                                           |   33 
 flower_city/src/main/java/com/dg/core/db/gen/entity/EfficiencyEntity.java                                                                                                            |   45 
 springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/GridMemberPageListDTO.java                                                         |   48 
 springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/model/vos/LoginBody.java                                                              |   30 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/EditComActReserveInfoDTO.java                                            |   49 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ExportRealCompanyExcelDTO.java                                                   |   24 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/BuildingVO.java                                                          |    9 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopOrderGoodsDAO.java                                                   |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDynTypeDOMapper.xml                                                                           |  167 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/UserActivityAnalysisVO.java                                                            |   23 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryCommodityOrderMapper.java                                         |   63 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/ComActFourMemberDao.java                                                              |   21 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/helper/encrypt/ParammeterInterceptor.java                                 |  118 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActReserveApi.java                                                       |  396 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/WxDataUtil.java                                                            |   62 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryCommodityOrderDto.java                                                |  212 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventGridMemberGpsLogDTO.java                                                     |   89 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/pom.xml                                                                                                                     |  145 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/UnionDoorUtil.java                                                                           |   25 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/FeedbackFmsServiceDTO.java                                                   |   41 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActEasyPhotoFeedbackVO.java                                                    |   42 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerOrderDAO.xml                                                                           |  326 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/listen/PartyBuildingMemberExcelListen.java                                  |   59 
 springcloud_k8s_panzhihuazhihuishequ/config_server/src/main/java/com/panzhihua/config_server/ConfigServerApplication.java                                                            |   19 
 springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/PartyBuildingJobHandler.java                                                             |  140 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberPassResetDTO.java                                                      |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ConvenientServiceCategoryDO.java                                      |   70 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/UserDao.xml                                                                                              |  863 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComCvtServeServiceImpl.java                                        |  280 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActMicroWishOperationRecordMapper.xml                                                            |   36 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngVaccinesDAO.java                                                      |   32 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventApplicationAppReleaseMapper.xml                                                                     |   70 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiMicroVolunteeringTypeServiceImpl.java          |   64 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationCarVO.java                                                        |   34 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComPropertyHelpApi.java                                                 |   98 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthHistoryVO.java                                                       |   36 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMajorPopulationDO.java                                             |  161 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComAcidAreaVO.java                                                           |   12 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngVillageDAO.java                                                       |   16 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/slider.js                                                                            |    2 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/MostBeautifulVolunteerServiceImpl.java                             |   45 
 flower_city/src/main/java/com/dg/core/db/manual/pojo/RecommendResult.java                                                                                                            |   31 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopEditNubCartDTO.java                                                            |   21 
 flower_city/src/main/java/com/dg/core/db/gen/AjaxResult.java                                                                                                                         |  163 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerOrderPayDAO.java                                               |   31 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/StatisticsCommVO.java                                                             |   35 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActAnnouncementApi.java                                              |  133 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/PageFmsClassroomAdminDTO.java                                                |   45 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiArticleManagementVO.java                                                       |   49 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMajorPopulationDAO.java                                                  |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerCommunityDiscountMapper.xml                                                                |   87 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComMngCarDTO.java                                                            |   34 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoCommentUserDAO.java                                          |   27 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/JinhuiAppi.java                                                         | 1540 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComActEasyPhotoEvaluateDto.java                                                 |   69 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComAreaTownCommunityApi.java                                                                    |   36 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/PagePopularMerchantDTO.java                                           |   38 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/ComActDTO.java                                                               |  143 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/RentingHoursePayingOrderService.java                                    |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/NewFightConvenientMerchant.java                                       |  100 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbDynDAO.java                                                         |   53 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/EldersAuthDetailsVO.java                                                          |   86 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ServiceStaticDTO.java                                                             |   21 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/unionpay_car_wash.xml                                                                               |   40 
 springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/resources/logback-spring.xml                                                                                                  |   51 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/PartyBuildingWestApi.java                                                                       |  284 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/WxPayNotifyOrderDTO.java                                                              |   31 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerCommunityDiscountDao.java                                          |   39 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActAcidDangerMemberDao.java                                              |   39 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialWorkerServiceImpl.java                                 |  220 
 springcloud_k8s_panzhihuazhihuishequ/service_community/mvnw                                                                                                                          |  310 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationRehabilitationExcelListen.java                                                 |  658 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsServiceEvaluateVO.java                                                  |   43 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ScreenPopulationApi.java                                                    |   36 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionInspectionDto.java                                                          |  109 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActNeighborCircleTopicNew.java                                        |   90 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/ComActFourMember.java                                                           |   74 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinghuiMerchantEvaluateMapper.xml                                                            |  116 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionIntegralSummarizeMapper.java                                           |   43 
 flower_city/src/main/resources/mapper/SysUserMapper.xml                                                                                                                              |  362 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EldersAuthFeedbackAddDTO.java                                                    |   37 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenVolunteerActStatisticsInfo.java                                |   36 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActBuildingService.java                                              |   83 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsVerifyRecordVO.java                                      |   43 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PagePartyBuildingMemberVO.java                                                |   35 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiArticleManagement.java                               |   51 
 springcloud_demo_on_k8s-master/service-zuul/pom.xml                                                                                                                                  |   91 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/listen/KeyPersonInfoExcelListen.java                                        |  102 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/config/MinioUtil.java                                                       |  135 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventRequestImageVO.java                                                         |   30 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActActivityCode.java                                                  |   70 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysUserRoleDO.java                                                              |   27 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSwSafetyWorkRecordDAO.java                                               |   39 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPbMemberDO.java                                                    |   93 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/until/MvcConfig.java                                                            |   34 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActSocialProjectScheduleApi.java                                     |   93 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActRaffleRecordServiceImpl.java                                 |   67 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/VolunteerActivitiesPeopleApi.java                                       |  164 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiArticleManagementDao.java                               |   53 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/WxRequestEntity.java                                                       |   13 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiReseau.java                                          |   61 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventStatisticsVO.java                                               |   34 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleCommentServiceImpl.java                        |   23 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/vaccines/VaccinesByAppVO.java                                                               |   32 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActWarehouseOperationService.java                                    |   16 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/code.js                                                                              |    2 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/elders/ComEldersAuthPageDTO.java                                                           |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActActSignDO.java                                                  |   72 
 springcloud_k8s_panzhihuazhihuishequ/grid_app/.gitignore                                                                                                                             |   33 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngVillageServeExcelVO.java                                                    |   57 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/encrypt/EncryptDecryptClass.java                                                         |   12 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventGridStatisticsVO.java                                           |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/EldersAuthService.java                                                  |  219 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/MinioUtil.java                                                                               |  255 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/EventMapper.xml                                                                                     | 1509 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/PopulationApi.java                                                          |  174 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/CommediateTypeServiceImpl.java                                     |   82 
 springcloud_k8s_panzhihuazhihuishequ/service_user/mvnw                                                                                                                               |  310 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/visit/EventVisitCompleteDTO.java                                                           |   60 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComFmsTeamDAO.java                                                          |   57 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/EventGridMemberBuildingRelationDOMapper.xml                                                              |   37 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngRealCompanyExcelVO.java                                                     |   38 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/12.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionUserDto.java                                                                |  170 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/Highlist.java                                                         |   18 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventTransferRecordMapper.java                                                        |   33 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActRegistVO.java                                                            |  104 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/user/UserService.java                                                                         | 1339 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVillageServiceImpl.java                                      |  393 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/config/MinioUtil.java                                                           |  125 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngCascadeHouseVO.java                                                         |   56 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeOperationAdminVO.java                                    |   50 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/modules/code.css                                                                             |    2 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommodityOrderBargainRecordDto.java                                   |   65 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventApplicationUserNoticeEditDTO.java                                                |   46 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EvaluateEasyDto.java                                                                |   26 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActAnnouncementServiceImpl.java                                 |   30 
 springcloud_k8s_panzhihuazhihuishequ/service_property/.gitignore                                                                                                                     |   33 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/NeedProblemUnitTaskDTO.java                                                  |  103 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/dao/ComPropertyRepairDao.java                                                     |   26 
 springcloud_demo_on_k8s-master/eureka-server/pom.xml                                                                                                                                 |   82 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/civil/CivilVillageStatisticsVO.java                                        |   75 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionIntegralRecordMapper.java                                              |   40 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ExcelHouseDTO.java                                                               |   39 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/DetailNeighborCircleAdminVO.java                                                   |   85 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionOutdoorLaborDynamic.java                                         |   94 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComOpsAccRuleFuncDAO.java                                                   |   15 
 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/utlis/CharsetKit.java                                                                                 |   84 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleBrowseServiceImpl.java                         |   38 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ShopFlowerApi.java                                                                              |  575 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComFmsClassroomDAO.java                                                     |   86 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComBatteryCommodityApi.java                                                 |  105 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMessageDAO.java                                                       |   77 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/AddNeighborCircleTopicAdminDTO.java                                               |   48 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwDangerReportExcelVO.java                                                     |   88 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysMenuDO.java                                                                  |  118 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/work/MicroListVO.java                                                      |   72 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerRefundOrderDAO.xml                                                                     |   80 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActEnterpriseType.java                                                |   61 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/ComActIntegralUserListVO.java                                            |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/ComPbMemberWestService.java                                          |  249 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventGridDataAdminDTO.java                                                        |   40 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/easyPhoto/ComActEasyPhotoActivityUserVO.java                                      |   43 
 springcloud_demo_on_k8s-master/service-zuul/mvnw                                                                                                                                     |  286 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/unionpay/SecureComplete.java                                                                        |  150 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionIntegralRuleMapper.xml                                                                         |    5 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiInterspaceApi.java                                      |  232 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionStore.class                                                     |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationCommunityTagsDO.java                                  |   78 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComCvtServeDAO.java                                                         |   29 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialOrgHatchAuditScheduleServiceImpl.java                  |   20 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/ComActSocialMemberVO.java                                                                   |   98 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/WxMaRHProperties.java                                                                        |   57 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActEnterpriseVO.java                                                           |   61 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerIntegralRecordVO.java                                                    |   48 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerOrderServiceImpl.java                                 | 1221 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComPropertyRepairApi.java                                                                       |  159 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComMngVolunteerServiceTypeDto.java                                              |   76 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComPbMemberWestMapper.xml                                                                       |  645 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActWarehouseBaseApi.java                                                 |   82 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageComMngVillageBuildHouseAppDTO.java                                                |   37 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenMicroWishStatisticsInfo.java                                   |   40 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventGridMemberGpsLogService.java                                                 |   85 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/SysTemplateConfigService.java                                                     |   22 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventTransferRecordDeleteDTO.java                                                     |   25 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidMemberVO.java                                                      |   66 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthRecordVO.java                                                       |  122 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/config/JacksonConfig.java                                         |   31 
 springcloud_demo_on_k8s-master/service-tp/mvnw                                                                                                                                       |  286 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulOutOrLocalEnum.java                                                                        |   40 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerOrderDeliveryMapper.xml                                                                |   41 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopGoodsDAO.java                                                        |   79 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionInspection.class                                                |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/puda/PropertyVO.java                                                                        |   18 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngPopulationSubordinateDTO.java                                             |   28 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComStreetMapper.xml                                                                                 |   26 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientConsultationStatisticsVO.java                                |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerIntegralRecordMapper.xml                                                                   |  136 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventPopulationStatisticsVO.java                                     |   35 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderQueryDTO.java                                                             |   27 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationTotalVO.java                                                      |  123 
 springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionInspectionApi.java                                     |   52 
 flower_city/src/main/java/com/dg/core/service/impl/SysUserRecordServiceImpl.java                                                                                                     |   66 
 springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/config/MyAESUtil.java                                                                                     |   52 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/LoginReturnVO.java                                                                          |   31 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/CarouselInfoVO.java                                                                  |   26 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiConfigDao.java                                          |   43 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDO.java                                                         |  123 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActQuestnaireUserAnswerService.java                                  |   13 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/CommunityVO.java                                                                       |   18 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComOpsAdvService.java                                                   |   95 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngVillageStatisticsVO.java                                                   |   34 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiReseauService.java                                  |   32 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActWorkGuideDetailAppletsVO.java                                               |   58 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComFmsTeamMemberDAO.java                                                    |   89 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEasyPhotoActivityRecordService.java                               |   13 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwDangerReportMapper.xml                                                                         |  182 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComBatteryStoreApi.java                                                                         |   49 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngSubordinateVO.java                                                         |   44 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComCorrectPopulationMapper.xml                                                                      |   56 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/interfaces/ShopOperLog.java                                                                           |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/BcDictionaryItemDAO.java                                                    |   26 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventApplicationUserNoticeMapper.java                                                 |   33 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/UserEventGridDataVO.java                                                               |   23 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventTransferRecordVO.java                                                             |   80 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialOrgHatchAuditApi.java                                           |  114 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulHouseControlStatusEnum.java                                                                |   40 
 flower_city/src/main/java/com/dg/core/exception/file/FileException.java                                                                                                              |   19 
 flower_city/src/main/java/com/dg/core/service/impl/GuideEvolveImpl.java                                                                                                              |   75 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/LcEventVisitingTasksListDTO.java                                                      |  198 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/NeedProblemInventoryDTO.java                                                 |  116 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/FeignConfig.java                                                                                |   47 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventMainMemberApi.java                                                               |   90 
 springcloud_demo_on_k8s-master/eureka-server/mvnw                                                                                                                                    |  286 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventApi.java                                                                         |  380 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/RentingHourseRegisterMapper.xml                                                                     |  196 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/logback-spring.xml                                                                                              |   51 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerIntegralMerchantMapper.xml                                                                 |  205 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/api/ComPropertyAlarmApi.java                                                      |   88 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/ComPropertyEquipmentService.java                                          |   17 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberRelationDeleteDTO.java                                                 |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/ComActEasyPhotoTypeServiceImpl.java                                          |  130 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EldersAuthEditDTO.java                                                           |   65 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerCommunityDiscountVO.java                                                 |   47 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiCharityVO.java                                                                 |   53 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/UserProportion.java                                                                    |   30 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/PartyMemberAnalysisVO.java                                                         |   43 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/UserArchivesVO.java                                                                    |   45 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/RentingHoursePayingOrder.java                                            |   65 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/large/AreaStreetDetail.java                                                      |   16 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexStatisticsVO.java                                               |   35 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComActEasyPhotoAddDTO.java                                                            |  112 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHoursePayingOrderServiceImpl.java                           |   26 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/UserConstants.java                                                                          |   21 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionExchangeRecordDto.java                                                      |   86 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionOutdoorSiteMapper.xml                                                                              |    5 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbServiceTeamDO.java                                            |   78 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComChangeCarModelRelationApi.java                                           |  121 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/PageFmsServiceAppletsDTO.java                                                |   46 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/ComActIntegralUserRuleVO.java                                            |   40 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComChangeCarModelSpecsMapper.xml                                                                    |   65 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/ComActEasyPhotoTypeRelationService.java                                           |   16 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationCultMistakeExcelVO.java                                           |   94 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryStoreClassFeign.java                                                      |  104 
 flower_city/src/main/java/com/dg/core/CorsConfig.java                                                                                                                                |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/ServiceApiApplication.java                                                                   |   29 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/NewFightNeedProblemClaimMapper.java                                         |    9 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/PageFmsServiceAdminDTO.java                                                  |   36 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActCommitteeDao.java                                                     |   37 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/model/dtos/IDTO.java                                                                                |    8 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/53.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActEasyPhotoHandler.java                                              |   83 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridMemberWarnLogDetailsVO.java                                                   |   53 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightConfigDao.java                                                   |   43 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComPbMemberWestServiceImpl.java                                 | 1086 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ValidateUtils.java                                                                              |   19 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsGameServiceImpl.java                                            |  562 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/KaphtchaApi.java                                                        |   81 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/ComHouseMemberVo.java                                                                  |   48 
 springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/service/impl/BraceletEarlyWarningImpl.java                                        |   54 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityPartyBuildingApi.java                                          | 1183 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComChangeCarModelRelationMapper.java                                        |   77 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/AutomessageSysUserService.java                                          |   21 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/SysConfVO.java                                                                    |   47 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/config/SwaggerConfig.java                                                             |   33 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComCvtBusinessDetailVO.java                                                       |   46 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActActivityService.java                                              |  371 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewFightComConvenientMerchantsMapper.xml                                                        |  342 
 springcloud_k8s_panzhihuazhihuishequ/applets/.mvn/wrapper/MavenWrapperDownloader.java                                                                                                |  118 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/LoginReturnsVO.java                                                                         |   24 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/validated/PageGroup.java                                                                              |    9 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ScreenPudaApi.java                                                      |   83 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NeedProblemInventoryDAO.java                                             |   60 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsProductService.java                                                  |   60 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComActDynTypeDTO.java                                                        |   29 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/.mvn/wrapper/maven-wrapper.properties                                                                                     |    2 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActWorkGuideDTO.java                                                          |   67 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/social/PageSocialOrgHatchDTO.java                                                |   35 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComChangeCarInquiryDto.java                                                      |   72 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderCountVO.java                                                               |   31 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryUserAddress.java                                               |   90 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UserAnswerContentVO.java                                               |   29 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/SysTemplateConfig.java                                                   |   52 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/ResultEntity.java                                                          |   12 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventVO.java                                                                           |  187 
 flower_city/src/main/java/com/dg/core/exception/file/FileSizeLimitExceededException.java                                                                                             |   16 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulRelationEnum.java                                                                          |   66 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommoditySpecsVo.java                                                      |   96 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActEasyPhotoCommentDO.java                                         |   48 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/25.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ProjectRelationVO.java                                                   |   23 
 flower_city/src/main/java/com/dg/core/db/manual/pojo/MUser.java                                                                                                                      |   40 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/68.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditSysUserDto.java                                                                 |  218 
 springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/LcGridData.java                                                                    |   27 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComScreenDao.java                                                           |   63 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerMerchantWithdrawMapper.xml                                                                 |  145 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/font/iconfont.woff                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComActIntegralUserTradeDAO.java                                          |   62 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationDO.java                                               |  334 
 springcloud_demo_on_k8s-master/service-influxdb-app/.mvn/wrapper/maven-wrapper.jar                                                                                                   |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeListAdminVO.java                                         |   46 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComCun.java                                                              |   45 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityOrderCollageTeamMapper.xml                                                       |  127 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UsersAnswerQuestnaireVO.java                                           |   26 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsOrder.java                                                            |  109 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComSanshuoExpertTwoDO.java                                            |   16 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/WxSubscribeConstants.java                                                                   |   80 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/api/GridMemberPageListDTO.java                                                             |   48 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/excel/ComPbMemberRoleErrorExcelVo.java                                        |   43 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActEvaluateVO.java                                                          |   89 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEasyPhotoFeedbackService.java                                     |   13 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/VolunteerActivityApi.java                                               |  100 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/ComActWarehouseBaseVO.java                                              |   66 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/WxMaConfiguration.java                                                                       |   90 
 springcloud_k8s_panzhihuazhihuishequ/service_community/pom.xml                                                                                                                       |  169 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/mvnw                                                                                                                      |  310 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActCommiteeVO.java                                                             |   73 
 springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/ServiceBraceletApplication.java                                                   |   21 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/SwaggerConfig.java                                                                           |   34 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ForEachUtils.java                                                                               |   52 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActProceedingsDao.java                                                   |   35 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxCallbackApi.java                                                                              |  501 
 springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/resources/bootstrap.yml                                                                                         |   40 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEventResourceMapper.xml                                                                          |   33 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngStructAreaDistrictVO.java                                                   |   39 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComFmsServiceServiceImpl.java                                      |  423 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/message/McsOrderMessage.java                                                    |   26 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialProjectMember.java                                           |   80 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/46.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityOrderCollageTeamVo.java                                           |   81 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridDataDeleteDTO.java                                                           |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActWarehouseApplyService.java                                        |   54 
 flower_city/src/main/java/com/dg/core/db/manual/mapper/util/MapperGenerator.java                                                                                                     |   52 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveRegisterDetailedAnswerVO.java                                |   26 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionIntegralRecordMapper.class                                            |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiExperienceActivityVO.java                                                      |   89 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/civil/CivilGridStatisticsVO.java                                           |   34 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventApi.java                                                                     |  118 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerGoodsAttrServiceImpl.java                             |   23 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationVeteransExcelListen.java                                                       |  716 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngVolunteerSkillService.java                                        |   61 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventSpecialCrowdRecordServiceImpl.java                                      |   22 
 springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionOutdoorLaborDynamicApi.java                            |   55 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/BigScreenService.java                                                   |   88 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/pom.xml                                                                                                                   |  129 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientProductDAO.java                                                   |   79 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngVolunteerMngService.java                                          |  136 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/PopulationApi.java                                                      | 3707 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDynVO.java                                                                  |  139 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightConvenientMerchantServiceImpl.java                      |   93 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/CodDataService.java                                                     |   18 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/acid/PageDangerMemberDTO.java                                                    |   39 
 springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/config/AppletWebSecurityConfigurationAdapter.java                                                         |   27 
 flower_city/src/main/java/com/dg/core/controller/SlideshowController.java                                                                                                            |   82 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSanshuoEventDao.xml                                                                              |   24 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/ComMngFamilyInfoDO.java                                                         |   92 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/62.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsTeamMemberExportExcelVO.java                                            |   39 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/property/ComPropertyAlarmDetailVO.java                                                      |   10 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionAccessMapper.xml                                                                               |    5 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/advertisement/ComOpsAdvDTO.java                                                            |   64 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/MakeHandleAdminDTO.java                                                  |   37 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoEvaluateMapper.java                                          |   58 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialProjectScheduleApi.java                                         |   95 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryStoreClassDto.java                                                    |   76 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberGpsLogDeleteDTO.java                                                   |   25 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ClazzUtils.java                                                                                 |   53 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/social/SocialOrgHatchAuditVO.java                                                 |   70 
 springcloud_k8s_panzhihuazhihuishequ/config_server/mvnw.cmd                                                                                                                          |  182 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActEasyPhotoMemberApi.java                                               |   94 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialProjectMemberService.java                                   |   37 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/RoleDAO.xml                                                                                              |   47 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/EditTeamMemberDTO.java                                                       |   52 
 springcloud_demo_on_k8s-master/.mvn/wrapper/maven-wrapper.properties                                                                                                                 |    1 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComChangeCarBrandController.java                                            |  106 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActWorkGuideMaterialDAO.java                                             |   12 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/social/ComActSocialProjectMemberVO.java                                           |   82 
 springcloud_k8s_panzhihuazhihuishequ/applets/mvnw                                                                                                                                    |  310 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommunityQuestnaireApi.java                                                                     |   87 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComCvtCategoryDTO.java                                                           |   40 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionOutdoorSite.class                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryCommodityFeign.java                                                       |  104 
 springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/CommunityJobHandler.java                                                                 |  327 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/EventRateVO.java                                                                    |   20 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComBatteryCommoditySpecsApi.java                                        |  130 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoRewardMapper.java                                            |   21 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActSocialWorkerApi.java                                                                      |  147 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVolunteerOrgTeamServiceImpl.java                             |  158 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHoursePreOrderServiceImpl.java                              |   69 
 springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionUserApi.java                                           |   65 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSanShuoEventResourceController.java                                      |  166 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventRevokeDTO.java                                                                   |   45 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComDrugPopulationService.java                                           |   13 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/unionpay/SecureCancel.java                                                                          |  146 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventTransferRecordDetailsVO.java                                                      |   57 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerTypeServiceImpl.java                                      |   58 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexSpecialStatisticsVO.java                                        |   22 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngPopulationVillageVO.java                                                   |   21 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/6.gif                                                                                |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/AddComActNeighborCircleAppDTO.java                                                |   64 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiInterspaceMapper.xml                                                                   |  192 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/easyPhoto/ComActEasyPhotoClassifyVO.java                                          |   26 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/IndexTopStatisticsVO.java                                   |   32 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerIntegralMerchant.java                                           |  104 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerMerchantEvaluateDao.java                                           |   50 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/resources/bootstrap.yml                                                                                                        |   45 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventDirectReportDTO.java                                                       |  135 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/RentingHourseOrderApi.java                                              |  123 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenNeighborStatisticsInfo.java                                    |   36 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/config/MyMetaObjectHandler.java                                                 |   44 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityActivityMapper.xml                                                               |  199 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActAcidCheckRecord.java                                               |   69 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventResourceMapper.xml                                                                                  |   72 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiSnapshotMapper.xml                                                                     |  188 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/MainMemberApi.java                                                          |   50 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/biz/KeyPersonBizServiceImpl.java                                            |  104 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActAnnouncementDao.java                                                  |   27 
 flower_city/src/main/java/com/dg/core/db/gen/entity/WorkOrder.java                                                                                                                   |   78 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/VolunteerApi.java                                                       |  306 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionUserMapper.class                                                      |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopSysConfDTO.java                                                            |   19 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPropertyServiceImpl.java                                        |  154 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/55.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsOrderDao.java                                                            |   41 
 flower_city/src/main/java/com/dg/core/service/IAgreementService.java                                                                                                                 |   23 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/SystemManagementApi.java                                                    |  245 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/acid/ComActAcidMemberDTO.java                                                    |   31 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActEnterpriseTypeApi.java                                            |   97 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActMicroWishOperationRecordServiceImpl.java                     |   53 
 flower_city/src/main/java/com/dg/core/db/gen/entity/AreaCode2022.java                                                                                                                |   63 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActAcidUpdateRecordDao.java                                              |   27 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/bootstrap.yml                                                                                          |   31 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryStoreClassDto.java                                                     |   80 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngRealCompanyExcelListen.java                                                              |   69 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiExperienceActivityServiceImpl.java             |  167 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveAnswerContentMapper.xml                                                                |  235 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiMerchantApi.java                                        |  147 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysUserInputDAO.java                                                                  |   55 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComChangeCarModelSpecsServiceImpl.java                             |  158 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/UserPhoneVO.java                                                                       |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwSafetyWorkRecordMapper.xml                                                                     |   83 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationHouseAdminDTO.java                                               |  134 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/vaccines/VaccinesEnrollByAdminVO.java                                                       |   47 
 flower_city/src/main/java/com/dg/core/service/IReplyTemplateService.java                                                                                                             |   51 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/OrderNoUtils.java                                                                               |   76 
 flower_city/src/main/resources/mapper/GuideRepairOrderMapper.xml                                                                                                                     |  313 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionIntegralRecordMapper.xml                                                                           |  120 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/McsEvaluateDTO.java                                        |   41 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireSubDO.java                                            |   62 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComCvtBusinessDO.java                                                 |   80 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/ServiceEquipmentApplication.java                                                |   22 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComPbCheckUnitVo.java                                                                |  134 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/UnionpayCarWashServiceImpl.java                                    |   42 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/impl/UnionInspectionServiceImpl.class                                  |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerActivitiesPeopleInvolvedMapper.xml                                                         |  160 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerEvaluateVO.java                                                           |   82 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActRaffleService.java                                                |   54 
 springcloud_demo_on_k8s-master/config-server/.mvn/wrapper/maven-wrapper.properties                                                                                                   |    1 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActFourMemberApi.java                                                    |  103 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UnionOutdoorSiteApi.java                                                                        |   52 
 springcloud_demo_on_k8s-master/service-tp/pom.xml                                                                                                                                    |  109 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/PageConvenientElevatingPointDTO.java                                  |   41 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopFlowerRefundOrderDTO.java                                                      |   86 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComCvtBusinessAreaServiceImpl.java                                 |   47 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/ResultData.java                                                                             |   95 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ActDynTypeApi.java                                                          |  135 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialOrgHatchDAO.java                                                |   96 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EldersAuthFeedbackEditDTO.java                                                   |   36 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussUserDOMapper.xml                                                                       |   18 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiShoppingOrder.java                                   |   92 
 springcloud_demo_on_k8s-master/service-api/mvnw                                                                                                                                      |  286 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComFmsTeamMemberRelationServiceImpl.java                           |   19 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventMapTrajectoryVO.java                                                              |   20 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/excel/GridMemberWorkExportExcelVO.java                                           |   70 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHourseRefundOrderServiceImpl.java                           |   26 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/AddComActDynTypeDTO.java                                                         |   37 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHourseReturnOrderServiceImpl.java                           |   26 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/wx/WXPayConstants.java                                                                          |   59 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/EventGridMemberBuildingRelationServiceImpl.java                              |   23 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/integral/ComOpsAccRuleFuncVO.java                                                           |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientMerchantDAO.java                                                  |  179 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveAppletsVO.java                                               |  147 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerOrderGoodsDAO.java                                             |   23 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPensionAuthHistoryRecordDO.java                                    |  176 
 springcloud_demo_on_k8s-master/service-zuul/.mvn/wrapper/maven-wrapper.jar                                                                                                           |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActProceedingsApi.java                                                   |   50 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventListVO.java                                                     |   84 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/property/ComPropertyWorkerVO.java                                                           |   39 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/integral/admin/EditComActIntegralRuleDTO.java                                    |   28 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionOutdoorLaborDynamicDto.java                                                 |   92 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ValidableList.java                                                                              |  132 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/LcCompareMemberCodeMapper.java                                                        |   16 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/28.gif                                                                               |    0 
 flower_city/src/main/java/com/dg/core/db/gen/mapper/AutomessageSysUserRecordMapper.java                                                                                              |   49 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/entity/SysTemplateConfig.java                                                             |   51 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/colorpicker.js                                                                       |    2 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionOutdoorSiteMapper.class                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/SysConfMapper.java                                                          |   43 
 flower_city/src/main/java/com/dg/core/util/TableDataInfo.java                                                                                                                        |   87 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/FileTypeUploadUtils.java                                                                        |   94 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiReseauPeopleMapper.xml                                                                 |  144 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerEvaluateDAO.java                                               |   52 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/RentingHourseReturnOrderMapper.xml                                                                  |   32 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/PageFmsTeamDTO.java                                                          |   32 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveRecordMapper.java                                              |  125 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ScreenDrawEventPopulationTotalVO.java                                                |   98 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/unionpay/Query.java                                                                                 |  162 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleFabulousWestDO.java                               |   88 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/PartyOrganizationVO.java                                                 |   78 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/SystemManagementApi.java                                                |  229 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComEquipmentUnionInspectionFeign.java                                               |   34 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsProductLabelMapper.xml                                                                           |   32 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiInterspaceApplyForServiceImpl.java             |   69 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityInviteServiceImpl.java                               |   95 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventGridMemberRelationDO.java                                                  |   70 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiOldManUserDateVO.java                                                          |   38 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticPartyActivity.java                                    |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngCarDAO.java                                                           |   64 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/modules/layer/default/icon.png                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComOperationListVO.java                                                   |   68 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActEvaluateServiceImpl.java                                  |  191 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationSpecialExcelVo.java                                               |   21 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleTopicWestMapper.java                                    |   55 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActDiscussOptionDTO.java                                                      |   26 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngVolunteerExcelListen.java                                                                |  196 
 springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/dao/BraceletEarlyWarningDao.java                                                  |   77 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/DisabledPersonsDTO.java                                                          |  122 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDpcServiceImpl.java                                          |  152 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActIntegralRuleDOMapper.xml                                                                      |   37 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiMicroVolunteeringMapper.xml                                                            |  184 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngVaccinesDO.java                                                 |   65 
 springcloud_demo_on_k8s-master/service-influxdb-app/pom.xml                                                                                                                          |  101 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComFmsTeamService.java                                                  |   66 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActColumnLevelVO.java                                                          |   69 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComFmsServiceRecordDAO.java                                                 |   41 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageEldersAuthElderlyDTO.java                                                    |   55 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngVillageRegionVO.java                                                        |   28 
 springcloud_demo_on_k8s-master/service-influxdb-app/.mvn/wrapper/maven-wrapper.properties                                                                                            |    1 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComEldersAuthHistoryRecordDTO.java                                           |   82 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/NewFightShopping.java                                                 |   71 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/civil/PageComActSocialWorkerDTO.java                                                       |  145 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodityOrderBargainRecord.java                               |   49 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/wallet/PageComActWalletTradeDTO.java                                             |   23 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/impl/UnionStoreServiceImpl.class                                       |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleCommentAppVO.java                                              |   66 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveRecordService.java                                         |   91 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/RentingHourseContractConfigService.java                                 |   45 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/ReserveRecordStatusEnum.java                                                                    |   41 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/AddShopGoodsVO.java                                                                    |   59 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActWorkGuideClassifyService.java                                     |   57 
 flower_city/src/main/java/com/dg/core/service/IAutomessagePolicyDocumentsService.java                                                                                                |   58 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopFlowerOrderPayDTO.java                                                     |   26 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexGridStatisticsVO.java                                           |   17 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiSnapshotClassifyServiceImpl.java               |   63 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsMerchantDAO.java                                                         |  100 
 flower_city/src/main/java/com/dg/core/controller/UserController.java                                                                                                                 |  440 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PagePbCheckUnitCommonDto.java                                                       |   46 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerRefundOrderServiceImpl.java                           |  343 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopFlowerGoodsDTO.java                                                            |   39 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPbCheckUnitDao.java                                                      |   10 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderCreateDTO.java                                                            |   59 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysAppConfigDao.java                                                                  |   16 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/EditTeamTypeDTO.java                                                         |   36 
 flower_city/src/main/java/com/dg/core/service/IGuideRepairOrderService.java                                                                                                          |  150 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopOrderService.java                                                |  186 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/StreetBigScreenService.java                                          |   26 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/resolvers/AuthorizationInterceptor.java                                         |   83 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiMicroVolunteeringApi.java                               |  154 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/partybuilding/PartyBuildingService.java                                                       |  650 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/71.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionAccess.java                                                      |   86 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/test/java/com/panzhihua/service_grid/service/impl/EventVisitingTasksServiceImplTest.java                                       |   32 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComActEasyPhotoDeleteDTO.java                                                         |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/WorkGuideApi.java                                                           |  163 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiSnapshotClassify.java                                |   39 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComFmsClassroom.java                                                     |   66 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionIntegralSummarizeService.java                                      |   27 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/weixin/CheckService.java                                                                            |  131 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComBatteryCommodityApi.java                                                                     |   89 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleFabulousDO.java                                   |   88 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java                                                         | 4438 
 flower_city/src/main/java/com/dg/core/db/gen/entity/RoleMenuEntity.java                                                                                                              |   60 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/37.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsMerchant.java                                                         |  104 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/UnionIntegralRecordService.class                                       |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiInterspaceApplyForVO.java                                                      |   76 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventGridMemberWarnLogService.java                                                |   78 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/sensitive/Desensitizer.java                                                              |    7 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopOrderDAO.java                                                        |  167 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComFmsApi.java                                                                                  |  216 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/wallet/ComActWalletTradeAdminVO.java                                              |   53 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComChangeCarInquiryFeign.java                                                       |   87 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysUserAgreementDAO.java                                                              |   15 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/civil/ComActSocialWorkerAddDTO.java                                                        |  124 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/BaseDO.java                                                           |   25 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/NewFightShoppingVO.java                                                  |   70 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComLowSecurityPopulationDO.java                                       |  240 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/GridMemberBuildingVO.java                                                        |   30 
 springcloud_k8s_panzhihuazhihuishequ/service_user/.mvn/wrapper/MavenWrapperDownloader.java                                                                                           |  118 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionStoreMapper.java                                                       |   40 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComClusterOrganizationServiceImpl.java                             |  145 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActEasyPhotoVO.java                                                            |  250 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/helper/encrypt/ResultInterceptor.class                                   |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComOpsAdvJumpDAO.java                                                       |   26 
 springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/GridMemberJobHandler.java                                                                |   39 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventMainMemberMapper.java                                                            |   33 
 flower_city/src/main/java/com/dg/core/util/presence/Year2006.java                                                                                                                    |   31 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthPensionerVO.java                                                    |   84 
 flower_city/src/main/java/com/dg/core/db/gen/entity/CountListNum.java                                                                                                                |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightProjectEvaluateService.java                                  |   26 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActDpcService.java                                                   |   52 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComChangeCarModelRelationMapper.xml                                                                 |  169 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/TokenConstant.java                                                                          |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActPrizeDAO.java                                                      |   15 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComEldersRecordsDTO.java                                                     |   50 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/pom.xml                                                                                                                       |  130 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberWainDTO.java                                                           |   34 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActWorkGuideServiceImpl.java                                    |  214 
 springcloud_demo_on_k8s-master/config-server-bak/src/main/resources/application.yml                                                                                                  |   16 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddSysUserDto.java                                                                  |  255 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridDataAddAdminDTO.java                                                         |   69 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerOrderGoodsDAO.xml                                                                      |   33 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/ComMngFamilyInfoVO.java                                                                |   76 
 flower_city/src/main/java/com/dg/core/db/manual/mapper/util/HttpClientUtils.java                                                                                                     |  294 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMicroWishFeedbackMapper.java                                          |   23 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActAcidRecordApi.java                                                |  428 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/RentingHourseRefundOrder.java                                            |   65 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerActivitiesPeopleServiceImpl.java                          |  123 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/ServiceException.java                                                                      |   67 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngStructHouseService.java                                           |  117 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/SysMenuVO.java                                                                         |   76 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/DifferentLongListUtil.java                                                                      |   50 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventResourceVO.java                                                                   |   53 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleTopicMapper.java                                        |   53 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/switchs/SearchCommunityDTO.java                                                  |   23 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewFightProjectJoinMapper.xml                                                                   |  116 
 flower_city/src/main/java/com/dg/core/Constant.java                                                                                                                                  |   76 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/UserRankDTO.java                                                             |   38 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComMngVolunteerStatisticsVo.java                                                     |   27 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSwDangerReportDAO.java                                                   |   51 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussOptionUserDO.java                                        |   58 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionUserMapper.java                                                        |   17 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/util/BaseUtils.java                                                         |   24 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveRegisterExcelAdminVO.java                                    |   23 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComPropertyApi.java                                                                             |   77 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActDiscussCommentUserDTO.java                                                 |   29 
 flower_city/src/main/java/com/dg/core/util/WxUtil.java                                                                                                                               |  297 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/rentingHouses/PageRentingHousesConfigDTO.java                                    |   27 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/config/ParamOutAspect.java                                                      |  143 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/QRCodeUtils.java                                                                                |  264 
 springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/config/AuthConfig.java                                                                                    |   26 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/easyPhoto/AddEasyPhotoClassifyDTO.java                                           |   33 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/IdentityAuthApi.java                                                                            |   87 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommodityOrderBargainRecordDto.java                                    |   67 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/rate.js                                                                              |    2 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/Constants.java                                                                              |  275 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerCreditsExchangeDao.java                                            |   69 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActEasyPhotoDO.java                                                |  222 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerOrderOperateDO.java                                      |   71 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NeedProblemClaimDAO.java                                                 |   80 
 springcloud_demo_on_k8s-master/service-tp/mvnw.cmd                                                                                                                                   |  161 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryCommodityActivityMapper.java                                      |   58 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActivityTypeVO.java                                                         |   40 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActAnnouncementMapper.xml                                                                        |   34 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/model/dto/KeyPersonExcelExportDto.java                                      |  123 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/UserElectronicFileVO.java                                                              |   34 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/AESUtil.java                                                                             |  169 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActMicroWishOperationRecordVO.java                                             |   44 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/config/JacksonConfig.java                                                   |   31 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenDynStatisticsInfo.java                                         |   33 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActReserveApi.java                                                   | 1076 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/wallet/ComActWalletTradeVO.java                                                   |   37 
 springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/handel/AjaxAuthenticationEntryPoint.java                                                                  |   34 
 springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/GridAppApplication.java                                                                           |   24 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEnterpriseTypeMapper.xml                                                                      |   75 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussCommentDO.java                                           |   80 
 springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/aop/CheckExpirationInterceptor.java                                                   |   76 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ResultUtil.java                                                                                 |   29 
 springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UpDataApi.java                                              |    4 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiReseauPeople.java                                    |   45 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/ComMngFamilyInfoDAO.xml                                                                                  |   26 
 springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/LcKeyPersonVisitRecordQueryDTO.java                                                |   30 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComFmsService.java                                                       |   97 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsProductLabel.java                                                     |   35 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActActPictureService.java                                            |   16 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberEditDTO.java                                                           |   74 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/RentingHoursePayingOrderApi.java                                            |   86 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoClassifyDOMapper.xml                                                                 |   46 
 springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/config/MybatisPlusConfig.java                                                     |   34 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionAccess.class                                                    |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActUserWalletTradeRewardExcelVO.java                                           |   55 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/PageShopStoreVO.java                                                                   |   73 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEventMapper.java                                                         |  126 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComEldersAuthHistoryRecordDO.java                                     |  143 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventApplicationAppReleaseService.java                                            |   72 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEnterpriseTypeServiceImpl.java                               |  142 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComPropertyPublicityDTO.java                                                 |   48 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ShopApi.java                                                                |  383 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/CommonDTO.java                                                                             |   14 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/vaccines/VaccinesUserInoculationByAppVO.java                                                |   41 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActServiceImpl.java                                             |  354 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/wallet/ComActWalletSettlementAdminDTO.java                                       |   24 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionOutdoorSiteMapper.xml                                                                          |    5 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommodityOrderBargainDto.java                                          |   97 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventSpecialCrowdRecordService.java                                               |   13 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/wx/WXPayXmlUtil.java                                                                            |   30 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/VillageApi.java                                                                                 |   52 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoEvaluateMapper.xml                                                                   |   93 
 flower_city/src/main/java/com/dg/core/api/AutomessagePolicyDocumentsAppletsController.java                                                                                           |   63 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActEasyPhotoMember.java                                               |   65 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/encrypt/IEncryptDecrypt.java                                                             |   29 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightCommunityConstructionDAO.java                                    |   41 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActIntegralUserApi.java                                                                      |   98 
 flower_city/src/main/java/com/dg/core/util/presence/Year2004.java                                                                                                                    |   31 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationVeteransMistakeExcelVO.java                                       |  208 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComBatteryStoreApi.java                                                 |   61 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActPorceedingsApi.java                                               |   41 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientProductLevelInfoVO.java                                      |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/RentingHourseReturnOrder.java                                            |  173 
 springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionExchangeRecordApi.java                                 |  105 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/PartyOrganizationServiceImpl.java                               |  345 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiCharityService.java                                 |   30 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/WeatherVO.java                                                                    |   37 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/IntegralUserRankVO.java                                                  |   16 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComPbWorkScreenVO.java                                                               |   32 
 springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/EventApi.java                                                                                 |  152 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventResourceVO.java                                                             |   55 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/JinhuiCoinGeneralTable.java                                              |   49 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientProductServiceImpl.java                                  |  302 
 springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/manager/AsyncManagerNew.java                                                                              |   53 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleFabulousWestDAO.java                                    |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventVisitingTasksDO.java                                                       |  233 
 flower_city/src/main/java/com/dg/core/controller/TransactionEventController.java                                                                                                     |  364 
 springcloud_demo_on_k8s-master/LICENSE                                                                                                                                               |   21 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticPartyOrg.java                                         |   23 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/EditNeighborCircleAdminVO.java                                                     |   82 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/until/AccessUtil.java                                                           |  110 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/config/QRCodeUtil.java                                                          |  108 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ClusterApi.java                                                                                 |   47 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngAreaVO.java                                                                 |   41 
 springcloud_demo_on_k8s-master/config-server/src/test/java/com/springcloudme/configserver/ConfigServerApplicationTests.java                                                          |   17 
 flower_city/src/test/java/com/dg/core/WMApplicationTests.java                                                                                                                        |   13 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComOpsHouseService.java                                                 |   78 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleServiceImpl.java                               | 1922 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiOldManBrokenLineVO.java                                                        |   30 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPensionAuthStatisticsMapper.xml                                                                  |   22 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulPoliticalOutlookEnum.java                                                                  |   44 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleDO.java                                           |  219 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComFmsTeamMemberRelationService.java                                    |   14 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComCvtBusinessAppletsDTO.java                                                |   25 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActWarehouseBaseApi.java                                             |   58 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEldersAuthStatisticsMapper.java                                          |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ConvenientProductService.java                                           |   90 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActEasyPhotoCommentVO.java                                                     |   53 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/civil/ComActSocialWorkerDeleteDTO.java                                                     |   30 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/cluster/admin/ComClusterMemberExcelVO.java                                        |   35 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexEventGridStatisticsVO.java                                      |   22 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/GridMemberPositionDTO.java                                                             |   26 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPropertyWorkerMapper.xml                                                                         |   50 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ShopApi.java                                                                |  690 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/PartyBuildingMemberExcelVO.java                                          |   46 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwPatrolRecordVO.java                                                          |  246 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/dto/DeviceDto.java                                                                |   35 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationKeyExcelVO.java                                                   |  106 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/CapitalDetailVO.java                                                                   |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/config/MybatisPlusConfig.java                                                   |   38 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/ComMngStructHouseDAO.xml                                                                                 |   14 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/LcCompareCodeMemberDO.java                                                      |   39 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/excel/ComDataStatisticsMemberExcelVo.java                                     |   77 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionExchangeRecordMapper.java                                              |   40 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventNewStatisticsVO.java                                            |   84 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientElevatingPointDAO.java                                            |   54 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/model/vos/LoginBody.java                                                              |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActActivityCodeService.java                                          |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActCommitteeApi.java                                                     |   87 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComPbServiceTeamMapper.xml                                                                      |   74 
 flower_city/src/main/java/com/dg/core/controller/GuideRepairOrderController.java                                                                                                     |  489 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventMapper.java                                                                      |  188 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/enterprise/AddEnterpriseTypeDTO.java                                             |   40 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxXCXTempSend.java                                                                              |  328 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventBatchRepublishDTO.java                                                     |   32 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryTradeOrderServiceImpl.java                               |  187 
 springcloud_k8s_panzhihuazhihuishequ/config_server/.mvn/wrapper/maven-wrapper.properties                                                                                             |    2 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiWorkGuideApi.java                                       |  233 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NeedProblemInventoryServiceImpl.java                            |  224 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/EldersAuthServiceImpl.java                                         |  719 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberAddDTO.java                                                            |   88 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComChangeCarInquiryService.java                                         |   78 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerActivityMapper.xml                                                                         |  360 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientProductCategoryServiceImpl.java                          |  115 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/ApplicationAppRelease.java                                                      |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussCommentUserDOMapper.xml                                                                |   18 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActRafflePrizeMapper.xml                                                                         |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightResourceSharingDAO.java                                          |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActMicroWishService.java                                             |  123 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerRefundOrderDAO.java                                            |   40 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEldersAuthStatisticsMapper.xml                                                                   |   43 
 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/vos/community/ComActActRegistExcelVO.java                                                       |   45 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActAcidRecord.java                                                    |  200 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenHmkSocialWorkerInfo.java                                       |   19 
 flower_city/src/main/java/com/dg/core/db/gen/mapper/AgreementMapper.java                                                                                                             |   25 
 springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/filter/StoreValidFilter.java                                                          |  103 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventVisitingTasksServiceImpl.java                                           |  684 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventApplicationAppReleaseApi.java                                                    |  101 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewStriveForService.java                                             |   30 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/property/ComPropertyRepairVO.java                                                           |  134 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationHouseUserService.java                                   |   45 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngStructOtherBuildService.java                                      |   83 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionIntegralRule.java                                                |   73 
 springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/DiscussJobHandler.java                                                                   |   30 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/DataCount.java                                                                    |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionInspectionMapper.java                                                  |   18 
 flower_city/src/main/java/com/dg/core/util/presence/Year2017.java                                                                                                                    |   31 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComSanShuoIndustryCenterVO.java                                                     |   80 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComOpsAccRuleFuncDO.java                                              |   30 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexDynamicStatisticsVO.java                                        |   35 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationHouseEditAdminDTO.java                                           |   51 
 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/ComActDiscussUserDO.java                                              |   42 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiMicroVolunteeringDao.java                               |   43 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionOutdoorLaborDynamicServiceImpl.java                           |   65 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/config/MyMetaObjectHandler.java                                                           |   41 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComCvtCategoryDTO.java                                                       |   25 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/wx/WxSubscribeDTO.java                                                                     |   61 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerUserAddressService.java                                    |   53 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/PartyExcelDO.java                                                                          |   41 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEnterpriseMapper.xml                                                                          |  125 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActActPrizeDO.java                                                 |   52 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActQuestnaireSubSelectionDTO.java                                             |   10 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsGameService.java                                                     |  113 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/admin/BuildingDetailAdminVo.java                                         |   49 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveSubSelectionMapper.xml                                                                 |   27 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/KaphtchaApi.java                                                            |   80 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComProperty.java                                                         |  101 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerGoodsVO.java                                                              |  163 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java                                   | 8890 +
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActPictureMapper.xml                                                                          |   20 
 flower_city/src/main/java/com/dg/core/exception/file/MessageUtils.java                                                                                                               |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/SysUser.java                                                             |  284 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionIntegralRuleRecord.java                                          |   59 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsOrderMapper.xml                                                                                  |   54 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientProductSpecificationDAO.java                                      |   41 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActAcidCheckRecordService.java                                       |   30 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodityActivity.java                                         |  123 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpUtils.java                                                                                  |  160 
 springcloud_k8s_panzhihuazhihuishequ/service_api/.gitignore                                                                                                                          |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEventTransferRecordMapper.xml                                                                    |  223 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/UserApi.java                                                            |   84 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/LoginApi.java                                                                     |   78 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/EventResourceDO.java                                                  |   66 
 flower_city/src/main/resources/mapper/TransactionEventMapper.xml                                                                                                                     |  502 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationHouseDO.java                                          |  149 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/33.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActPictureLibraryDAO.java                                                |   25 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventResourceDetailsVO.java                                                            |   47 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleTopicServiceImpl.java                          |  157 
 flower_city/src/main/java/com/dg/core/util/presence/Year2013.java                                                                                                                    |   31 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerGoodsAttrVO.java                                                          |   89 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightConvenientMerchantService.java                               |   67 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborFabulousAppDTO.java                                                 |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/ComPropertyHelpService.java                                               |   21 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/query.html                                                                                             |   69 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActProceedingsService.java                                           |   24 
 springcloud_demo_on_k8s-master/README.md                                                                                                                                             |   75 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageCommunityQuestnaireDTO.java                                                  |   20 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/MyCouponVO.java                                             |   34 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventLeftTopStatisticsVO.java                                        |   31 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PresetPictureType.java                                                                          |   19 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/ComActEasyPhotoTypeDO.java                                                      |   38 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/easyPhoto/ComActEasyPhotoStatisticsVO.java                                        |   57 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComActIntegralUsersMapper.java                                           |   72 
 flower_city/src/main/java/com/dg/core/util/presence/Year2020.java                                                                                                                    |   42 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/encrypt/EncryptQuery.java                                                                |   14 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussCommentUserDO.java                                       |   43 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommonDataApi.java                                                          |  988 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/EventResourceService.java                                               |   16 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/VolunteerTypeApi.java                                                   |  147 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/WestScreenStatics.java                                                  |   37 
 springcloud_k8s_panzhihuazhihuishequ/timejob/.gitignore                                                                                                                              |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/.gitignore                                                                                                                |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/RentingHourseRefundOrderApi.java                                            |   86 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/property/ComPropertyEquipmentVO.java                                                        |   79 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryStoreVo.java                                                               |  122 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngStructAreaDistrictService.java                                    |   21 
 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/grid/PageEventGridNearbyDTO.java                                                           |   53 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngStructAreaProvinceVO.java                                                   |   34 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComKeyPopulationServiceImpl.java                                   |   22 
 flower_city/src/main/java/com/dg/core/exception/file/BaseException.java                                                                                                              |   83 
 springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/handles/UserAuthAccessDeniedHandler.java                                                                  |   30 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ExcelSelectListUtil.java                                                                        |   64 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/UnionOutdoorLaborDynamicService.class                                  |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/SysOperLogVO.java                                                                      |   93 
 springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/ShopBackstageApplication.java                                                         |   24 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComChangeCarInquiryApi.java                                                                     |   55 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationHouseDAO.java                                               |  207 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinghuiMerchantEvaluateVO.java                                                       |   57 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActPrizeVO.java                                                             |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActRaffleRecordMapper.xml                                                                        |   90 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthRecordVO.java                                                         |  131 
 flower_city/src/main/java/com/dg/core/db/gen/entity/GuidePlate.java                                                                                                                  |   24 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoHandlerMapper.xml                                                                    |   83 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngVolunteerServiceType.java                                       |   57 
 springcloud_k8s_panzhihuazhihuishequ/service_dlz/target/classes/com/panzhihua/service_dlz/ServiceDlzApplication.class                                                                |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerMerchantService.java                                           |   49 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventSpecialPopulationDTO.java                                                    |   31 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiSnapshotDao.java                                        |   51 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/layui.css                                                                                    |    2 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActEasyPhotoClassifyDO.java                                        |   80 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwRotaServiceImpl.java                                          |  350 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/GrantRewardDTO.java                                                              |   34 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/EditComActQuestnaireVo.java                                            |   29 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpHelper.java                                                                                 |   45 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopStoreDAO.java                                                        |   67 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComActEasyPhotoVO.java                                                                 |   94 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/ComMngStructHouseDO.java                                                        |   62 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/2.gif                                                                                |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/EasyPhotoClassifyApi.java                                                   |   90 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/TestApi.java                                                                                    |   34 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComVeteransPopulationDO.java                                          |  323 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberEditStatusDTO.java                                                     |   27 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoFeedbackMapper.java                                          |   29 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerMerchantDao.java                                                   |   68 
 springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/api/MicroCommercialStreetApi.java                                                     |  569 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActEasyPhotoRewardDO.java                                          |   74 
 flower_city/src/main/java/com/dg/core/service/impl/KeywordImpl.java                                                                                                                  |   48 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComCvtBusinessVO.java                                                             |   64 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActDpcApi.java                                                           |   85 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientProductCategoryMapper.xml                                                                 |   38 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/StreetVOS.java                                                                         |   20 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsServiceRecordVO.java                                                    |   43 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/MapDistance.java                                                           |  127 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActNeighborCircleWestDOMapper.xml                                                                |  208 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/enterprise/PageEnterpriseDTO.java                                                |   42 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionExchangeRecordMapper.class                                            |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiShoppingVO.java                                                                |   67 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysTemplateConfigMapper.xml                                                                              |   12 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventTransferRecordDetailVO.java                                     |   18 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActIntegralUserMapper.java                                               |   73 
 springcloud_k8s_panzhihuazhihuishequ/service_bracelet/pom.xml                                                                                                                        |  169 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UnionOutdoorLaborDynamicApi.java                                                                |   58 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/StatisticsApi.java                                                                |  152 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActWarehouseDonatesMapper.xml                                                                    |  132 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopAddressDTO.java                                                            |   24 
 springcloud_demo_on_k8s-master/config-server/src/main/resources/application.yml                                                                                                      |   23 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsProductDAO.java                                                          |   50 
 springcloud_demo_on_k8s-master/service-api/.mvn/wrapper/maven-wrapper.properties                                                                                                     |    1 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HTMLFilter.java                                                                                 |  499 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActActivityInvite.java                                                |   56 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/19.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComChangeCarInquiryDto.java                                                     |   69 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/CommunityGovernanceTrendsVO.java                                                  |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComOpsAccRuleService.java                                               |    9 
 springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/handel/UserLoginFailureHandler.java                                                                       |   48 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerGoodsDO.java                                             |  163 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/excel/PEXCustomSheetWriteHandler.java                                                                 |   49 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/SystemApi.java                                                                    |   36 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/ThreeNumData.java                                                            |   47 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComMngVillageBuildingVO.java                                                           |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_community/.mvn/wrapper/maven-wrapper.properties                                                                                         |    2 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComChangeCarModelService.java                                           |   86 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ConvenientMerchantService.java                                          |  163 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerOrderDeliveryDO.java                                     |  125 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationServeExcelListen.java                                                          |  753 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerOrderDeliveryService.java                                  |   50 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleWestService.java                                    |  222 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/config/SwaggerConfig.java                                         |   34 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventResourceService.java                                                         |   65 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwSafetyWorkRecordServiceImpl.java                              |  228 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventVO.java                                                                     |  592 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidCharts.java                                                        |   22 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActReserveDangerAreaApi.java                                         |  105 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/UnionUserService.class                                                 |    0 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComPbCheckUnitApi.java                                                                          |   91 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/NeighborWestApi.java                                                                            |  283 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/social/SocialOrgHatchAuditScheduleVO.java                                         |   37 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngVolunteerOrgTeamService.java                                      |   68 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/PartyOrganizationService.java                                        |   79 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/impl/UnionOutdoorSiteServiceImpl.class                                 |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDAO.java                                                              |  212 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActIntegralRuleServiceImpl.java                                 |  203 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/annotation/Authorization.java                                                   |   14 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbActivityMemberDAO.java                                              |   59 
 flower_city/src/main/java/com/dg/core/service/ISysSettingsService.java                                                                                                               |   22 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/WxMaProperties.java                                                                          |   58 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationEditDTO.java                                                     |  115 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/69.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDynServiceImpl.java                                          |  235 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/IndexDataVO.java                                                                            |   38 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysOperLogDO.java                                                               |  116 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComCvtBusinessDAO.java                                                      |   37 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComDisabilityPopulationApi.java                                             |   15 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComPbCheckUnitApi.java                                                  |  378 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/work/ActActivityListVO.java                                                |   80 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiInterspaceApplyFor.java                              |   79 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/EldersAuthApi.java                                                      |  987 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComOpsHouseDAO.java                                                         |   70 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionInspectionService.java                                             |   27 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventGridMemberWarnLogMapper.xml                                                                         |   91 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/DeleteProductDTO.java                                      |   28 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/model/vos/LCArguments.java                                                      |   59 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsEvaluate.java                                                         |   51 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleCommentReplyAppVO.java                                         |   57 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/easyPhoto/PageEasyPhotoActivityUserDTO.java                                      |   19 
 flower_city/src/main/java/com/dg/core/db/gen/mapper/AutomessageTransactionEventInterviewMapper.java                                                                                  |   16 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActAcidDangerMemberApi.java                                                                  |   51 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysUserInputDO.java                                                             |  168 
 springcloud_k8s_panzhihuazhihuishequ/service_dlz/src/main/java/com/panzhihua/service_dlz/controller/CommonController.java                                                            |   15 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActReserveIndexVo.java                                                         |   28 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/ResetPasswordConvenientMerchantDTO.java                               |   36 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventManageApi.java                                                               |  208 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenFourMemberStatisticsInfo.java                                  |   70 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventDeleteDTO.java                                                             |   25 
 flower_city/src/main/resources/mapper/ReplyTemplateMapper.xml                                                                                                                        |  177 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/CodDataServiceImpl.java                                            |  325 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngRealAssetsServiceImpl.java                                   |  147 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/LoginApi.java                                                               |   65 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/PageReserveRegisterDetailedAdminDTO.java                                 |   46 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ConvenientMerchantDO.java                                             |  150 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/30.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComMngVolunteerServiceTypeDto.java                                              |   73 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/GridMemberCascadeVO.java                                                         |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ConvenientProductDO.java                                              |   77 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerOrderOperateDAO.xml                                                                    |   19 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/work/ScreenMicroListDTO.java                                           |   32 
 springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/JinhuiJobHandler.java                                                                    |   33 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComMngVolunteerServiceTypeVo.java                                                    |   74 
 springcloud_demo_on_k8s-master/adminConfig/custom-config-dev.yml                                                                                                                     |   13 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerMerchant.java                                                   |  165 
 flower_city/src/main/java/com/dg/core/controller/KeywordController.java                                                                                                              |  108 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/ComActEasyPhotoServiceImpl.java                                              |  363 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryUserAddressServiceImpl.java                              |  158 
 springcloud_demo_on_k8s-master/deploy-file/deploy-eurekaserver.yaml                                                                                                                  |   60 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/cluster/admin/ComClusterMemberExcelErrorVO.java                                   |   38 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComEldersAuthElderlyExcelListen.java                                                           |  116 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSwPatrolRecordApi.java                                                   |  316 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommunitySwitchApi.java                                                                         |   45 
 flower_city/src/main/java/com/dg/core/manager/JWTTokenUtil.java                                                                                                                      |  170 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSanshuoEventDao.java                                                     |   34 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ServiceDetailStaticsVO.java                                                        |   35 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngVaccinesEnrollRecordDAO.java                                          |   79 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/config/AccessConfig.class                                                      |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommodityOrderController.java                                     |  187 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiComActWorkGuideServiceImpl.java                |  334 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComFmsTeamMapper.xml                                                                                |   61 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/modules/layer/default/loading-2.gif                                                          |    0 
 springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/EasyPhotoApi.java                                                                             |   75 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/warehouse/ExportDonatesDTO.java                                                  |   44 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/bracelet/BraceletUserDataDO.java                                                           |  223 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommodityOrderCollageTeamPeopleDto.java                               |   64 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsConfigServiceImpl.java                                          |   68 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderGoodsVO.java                                                         |   75 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComPropertyPublicityApi.java                                                |  113 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenMerchantStatisticsInfo.java                                    |   45 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/model/dto/PartyBuildingMemberDTO.java                                       |   26 
 flower_city/src/main/java/com/dg/core/db/gen/mapper/ClassifyAdministrationMapper.java                                                                                                |   85 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActRegistDAO.java                                                     |   84 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerCommunityConfig.java                                            |   63 
 flower_city/src/main/resources/mapper/AutomessageSysSettingsMapper.xml                                                                                                               |    5 
 flower_city/src/main/java/com/dg/core/db/gen/entity/ElseAccessoryEntity.java                                                                                                         |   91 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidChartsVO.java                                                      |   23 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComBatteryStoreClassApi.java                                            |  141 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActFourMemberMapper.xml                                                                          |  171 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/ComActWarehouseDonatesVO.java                                           |   85 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderPreviewVO.java                                                       |   44 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/AllData.java                                                                 |   38 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/pom.xml                                                                                                                            |  135 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerMerchantEvaluateImpl.java                                 |   87 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/RichTextUtil.java                                                                               |   55 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComChangeCarBrandVo.java                                                             |   82 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComOpsAdvPosDO.java                                                   |   27 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/EditBuildingHouseDto.java                                         |   28 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialProjectMapper.xml                                                                       |  202 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiSnapshotVO.java                                                                |   67 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPropertyDao.java                                                         |  110 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiReseauVO.java                                                                  |   60 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComElderAuthRecordsService.java                                         |  133 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/PageConvenientServiceCategoryDTO.java                                 |   28 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/RentingHourseReturnOrderDao.java                                            |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoActivityRecordServiceImpl.java                      |   23 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActAcidMemberApi.java                                                    |   93 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComStreetService.java                                                   |  107 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/FiveCount.java                                                            |   17 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/ComListPartyDTO.java                                                         |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsCouponMapper.xml                                                                                 |   87 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ReturnData.java                                                       |   17 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDiscussCommentVO.java                                                       |   91 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ScreenWorkServiceImpl.java                                         |  435 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/resources/mapper/ComPropertyEquipmentMapper.xml                                                                       |   41 
 springcloud_demo_on_k8s-master/service-api/.gitignore                                                                                                                                |   25 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventMainMemberDetailsVO.java                                                          |  116 
 springcloud_k8s_panzhihuazhihuishequ/config_server/.mvn/wrapper/maven-wrapper.jar                                                                                                    |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulIsRentEnum.java                                                                            |   40 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/PagePartyBuildingMemberVO.java                                           |   32 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommodityOrderCollageTeamService.java                         |   85 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActDiscussService.java                                               |  316 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActWorkGuideClassifyDO.java                                        |   52 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/enterprise/EditEnterpriseDTO.java                                                |   67 
 flower_city/src/main/java/com/dg/core/controller/OrganizationController.java                                                                                                         |  280 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/TodoEventsVO.java                                                                 |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActFourMemberService.java                                            |   53 
 flower_city/src/main/java/com/dg/core/util/presence/Year2018.java                                                                                                                    |   41 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActProceedingsDTO.java                                                        |   76 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenFiveAssociationsStatisticsInfo.java                            |   48 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/RentingHourseOrderApi.java                                                                      |  114 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionInspectionApi.java                                                     |   72 
 flower_city/src/main/java/com/dg/core/manager/TokenManager.java                                                                                                                      |   33 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventVisitingTasksDTO.java                                                        |  168 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComChangeCarModelSpecsChildren.java                                      |   41 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommodityOrderCollageTeamDto.java                                      |   66 
 springcloud_demo_on_k8s-master/deploy-file/service-zuul.yaml                                                                                                                         |   43 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/StartUserBargainOrderDto.java                                                       |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleBrowseWestDO.java                                 |   49 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/LiveVO.java                                                                                 |   24 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderPageVO.java                                                                |   93 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComRehabilitationPopulationMapper.xml                                                               |   46 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NewFightShoppingApi.java                                                 |   68 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/PageVerifyRecordDTO.java                                   |   50 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialOrgHatchServiceImpl.java                               |   95 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventApplicationUserNoticeDetailsVO.java                                               |   44 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMajorPopulationMapper.xml                                                                        |   38 
 springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/config/MyMetaObjectHandler.java                                                   |   39 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComActEasyPhotoHandlerVo.java                                                        |   83 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActUserWalletServiceImpl.java                                   |  325 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiComConvenientServiceCategoriesService.java          |   50 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/AreaVOS.java                                                                           |   21 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiReseauPeopleService.java                            |   30 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/QryReportResp.java                                                           |   17 
 springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/NewFightHandler.java                                                                     |   66 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOrderPayServiceImpl.java                                    |   22 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActSocialOrgHatchApi.java                                            |   74 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventDeleteSingleDTO.java                                                             |   28 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityOrderBargainMapper.xml                                                           |  144 
 springcloud_k8s_panzhihuazhihuishequ/deploy-file/service-community.yaml                                                                                                              |   47 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeHandleListAdminVO.java                                   |   52 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngVolunteerSkill.java                                             |   55 
 flower_city/src/main/java/com/dg/core/util/TemplateParam.java                                                                                                                        |   19 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridDataVO.java                                                                   |   78 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UsersSubAnswerVO.java                                                  |   27 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerGoodsMapper.xml                                                                        |  101 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/ExportMerchantDTO.java                                                |   37 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryCommoditySpecsMapper.java                                         |   65 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/rentHouse/PayOrderVO.java                                                         |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_community/.mvn/wrapper/maven-wrapper.jar                                                                                                |    0 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/UserApi.java                                                                |  170 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialOrgServiceImpl.java                                    |  135 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiSnapshotClassifyService.java                        |   28 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngRealAssetsVO.java                                                           |   68 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiExperienceActivityDao.java                              |   60 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/bracelet/SetSOS.java                                                                       |   14 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryStoreClassMapper.java                                             |   58 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/jquery.js                                                                            |    5 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/PageMcsInformationDTO.java                                 |   51 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbMemberRoleDO.java                                             |  137 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsConfigDAO.java                                                           |   39 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageComActEasyPhotoTypeDTO.java                                                       |   61 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussOptionDAO.java                                                 |   32 
 springcloud_demo_on_k8s-master/.gitignore                                                                                                                                            |   25 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/LabelUtils.java                                                                                 |   35 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEasyAdminDTO.java                                                                 |   46 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActActRegistService.java                                             |   19 
 springcloud_k8s_panzhihuazhihuishequ/shop_backstage/mvnw                                                                                                                             |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActEasyPhotoHandlerController.java                                       |  106 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopOperLogDO.java                                                 |  118 
 flower_city/src/main/java/com/dg/core/db/gen/entity/GuideEvolveEntity.java                                                                                                           |  160 
 flower_city/src/main/java/com/dg/core/db/gen/mapper/GuideEvolveMapper.java                                                                                                           |   60 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDynDOMapper.xml                                                                               |  335 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulIsOkEnum.java                                                                              |   40 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/IntegralTradeVO.java                                                     |   55 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationRehabilitationExcelVO.java                                        |  171 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthRecordImportMistakeExcelVO.java                                       |   45 
 flower_city/src/main/java/com/dg/core/db/manual/mapper/MUserMapper.java                                                                                                              |    9 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActProceedingsVO.java                                                          |   81 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/TestApi.java                                                            |  160 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialMemberDao.java                                                  |   41 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoEvaluateServiceImpl.java                            |  178 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/config/AccessUtil.class                                                        |    0 
 flower_city/src/main/java/com/dg/core/service/IAutomessageSmartConsultingService.java                                                                                                |   18 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/WarehouseDonatesExcelVO.java                                            |   71 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPropertyPublicityServiceImpl.java                               |  185 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComStreetVO.java                                                                  |   66 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComChangeCarModelSpecsChildrenApi.java                                      |  121 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ActivityManagerVO.java                                                   |   22 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComPensionAuthRecordImportExcelListen.java                                                     |  241 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComPbServiceTeamVO.java                                                       |   55 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/config/MybatisHmkInterceptor.java                                               |   30 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventApplicationUserNoticeAddDTO.java                                                 |   42 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/NewFightResourceSharingDTO.java                                              |   53 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActReserveCommitVO.java                                                        |   34 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActAcidCheckRecordApi.java                                               |  108 
 flower_city/src/main/java/com/dg/core/db/gen/mapper/RoleMenuEntityMapper.java                                                                                                        |   41 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventTransferRecordDTO.java                                                       |   88 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_grid/config/MybatisHmkInterceptor.class                                                  |    0 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActAcidRecordApi.java                                                                        |  146 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/dao/ComPropertyHelpDao.java                                                       |   26 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/ComActReserveMakeStatisticsDTO.java                                      |   19 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/elder/ElderAuthStatisticHeaderDTO.java                                           |   20 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionShippingAddress.java                                             |   77 
 flower_city/src/main/java/com/dg/core/service/impl/ClassifyAdministrationImpl.java                                                                                                   |  102 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMajorPopulationService.java                                          |   13 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberWorkTrajectoryDTO.java                                                 |   31 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComFmsServiceService.java                                               |  123 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionIntegralRuleMapper.java                                                |   18 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireWriteListAdminVO.java                                        |   42 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/MainMemberApi.java                                                      |   89 
 springcloud_k8s_panzhihuazhihuishequ/auth/src/main/resources/logback-spring.xml                                                                                                      |   51 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryCommodityOrderBargainMapper.java                                  |   58 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComOpsAccRuleDAO.java                                                       |   27 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/KeyPersonInfoDO.java                                                  |  149 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageComMngPopulationDTO.java                                                          |   33 
 springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/resources/bootstrap.yml                                                                                                 |   35 
 flower_city/src/main/java/com/dg/core/service/IRoleMenuService.java                                                                                                                  |   37 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/HomeQuarantineRegisterExportVO.java                                       |   27 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/property/PropertyWorkerDTO.java                                                            |   46 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventVisitingTasksDeleteDTO.java                                                      |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryUserAddressMapper.java                                            |   65 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerMerchantEvaluate.java                                           |  101 
 flower_city/src/main/java/com/dg/core/service/impl/AgreementServiceImpl.java                                                                                                         |   37 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/ComPbCheckUnit.java                                                   |  107 
 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/impl/ComActEasyPhotoRewardServiceImpl.java                              |   22 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComPbCheckUnitDto.java                                                          |  108 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommodityOrderCollageTeamPeopleController.java                    |  106 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActFourMemberDao.java                                                    |   78 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/20.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/.mvn/wrapper/MavenWrapperDownloader.java                                                                                  |  118 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EldersAuthTypeQueryDTO.java                                                      |   43 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngVolunteerServiceTypeMapper.java                                       |   64 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunityApi.java                                                           | 2970 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireSubSelectionServiceImpl.java                       |   17 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ScreenWorkApi.java                                                          |  150 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActAcidMemberService.java                                            |   40 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderStoreListVO.java                                                     |   73 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComMngRealCompanyDTO.java                                                    |   31 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ConvenientElevatingPointService.java                                    |   68 
 springcloud_demo_on_k8s-master/compile.lihan.md                                                                                                                                      |    1 
 springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/AppletAuthenticationFilter.java                                                                   |  147 
 flower_city/src/main/java/com/dg/core/service/HomeStatisticsService.java                                                                                                             |  113 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryActivityTeamVo.java                                                        |   24 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/PageActivityMembersVO.java                                               |   32 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/15.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDynTypeServiceImpl.java                                      |  152 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/NeighborApi.java                                                            |   68 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionReportMapper.class                                                    |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/api/ComPropertyEquipmentApi.java                                                  |   91 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionOutdoorSite.java                                                 |  191 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/EventGridMemberBuildingRelationMapper.java                                            |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbOrgDAO.java                                                         |   47 
 flower_city/src/main/java/com/dg/core/file/FtpConstants.java                                                                                                                         |   38 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActSignDAO.java                                                       |  109 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/NewFightProjectEvaluateDTO.java                                              |   45 
 springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/ISysMenuService.java                                                                              |   13 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/.mvn/wrapper/maven-wrapper.jar                                                                                            |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/GridMemberTrajectoryVo.java                                                          |   28 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialWorkerServiceApi.java                                           |   92 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveAnswerContentServiceImpl.java                         |  403 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerUserAddressDAO.xml                                                                     |   28 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEldersAuthElderlyMapper.java                                             |   42 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActWarehouseOperation.java                                            |   73 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComPbMemberTypeVO.java                                                        |   27 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsCouponServiceImpl.java                                          |  154 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireAnswerContentDAO.java                                       |   85 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationTagCardNoDTO.java                                                |   29 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ExcelUtils.java                                                                                 |   79 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComOpsHouseUndercarriageVO.java                                                   |   35 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComCunMapper.xml                                                                                    |   14 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ActivityInviteVO.java                                                             |   49 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/property/PropertyService.java                                                                 |  225 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulHouseUseEnum.java                                                                          |   46 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommoditySpecsDto.java                                                 |   99 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/AppletsApplication.java                                                                             |   24 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/VolunteerActivitiesPeopleApi.java                                                               |  333 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/HouseApi.java                                                               |  133 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActDpcApi.java                                                       |   83 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/raffle/ComActRaffleRecordExcelVO.java                                             |   63 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/11.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/SanShuoEventStatusEnum.java                                                                     |   40 
 springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/api/KaphtchaApi.java                                                                  |   80 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/EditTeamDTO.java                                                             |   47 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComClusterOrganizationDO.java                                         |  107 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryStoreDto.java                                                         |  116 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/test/java/com/panzhihua/service_user/ServiceUserApplicationTests.java                                                          |   12 
 springcloud_demo_on_k8s-master/service-tp/src/main/java/com/springcloudme/servicetp/controller/ApiController.java                                                                    |   26 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightProjectEvaluateDAO.java                                          |   30 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/SerializerBigDecimal.java                                                                |   72 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/TreeListVO.java                                                                             |   14 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderPreviewVO.java                                                             |   48 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/schedule/AcidSchedule.java                                                      |   51 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveServiceImpl.java                                      | 1037 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbOrgDO.java                                                    |  129 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngPopulationCommunityTagsMapper.xml                                                             |   46 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationCorrectMistakeExcelVO.java                                        |  163 
 flower_city/src/main/java/com/dg/core/service/ISlideshowService.java                                                                                                                 |   55 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightShoppingOrderServiceImpl.java                           |  236 
 flower_city/src/main/java/com/dg/core/manager/RedisTokenManager.java                                                                                                                 |  123 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/cluster/admin/AddClusterAdminDto.java                                            |   38 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/config/SFTPConfig.java                                                          |   30 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventVisitingTasksEditDTO.java                                                        |  154 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/PageReserveMakeAdminDTO.java                                             |   30 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerGoodsAttrDO.java                                         |  114 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMediateTypeDao.java                                                      |   36 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVaccinesServiceImpl.java                                     |  142 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/VideoManageApi.java                                                         |    4 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/UnionInspectionService.class                                           |    0 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActDpcApi.java                                                                               |  126 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/DisableOrEnableConvenientMerchantDTO.java                             |   36 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/resources/templates/gasSafety.html                                                                                 |   67 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageVoteSituationDTO.java                                                        |   29 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/wx/TemplateParam.java                                                                      |   20 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/65.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/ComMngUserTagDTO.java                                                                 |   28 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActMessageVO.java                                                              |   74 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActIntegralUserService.java                                          |   90 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActMessageService.java                                               |   85 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComPbCheckUnitServiceImpl.java                                  |  410 
 flower_city/src/main/java/com/dg/core/interceptor/AuthorizationInterceptor.java                                                                                                      |  143 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/vaccines/VaccinesEnrollByAdminDTO.java                                                     |   42 
 springcloud_k8s_panzhihuazhihuishequ/service_dlz/target/classes/com/panzhihua/service_dlz/controller/CommonController.class                                                          |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryCommodityOrderBargainDto.java                                         |   99 
 flower_city/src/main/java/com/dg/core/api/ClassifyAdministrationAppletsController.java                                                                                               |   62 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationImportErrorVO.java                                                |   60 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActActivityScreenVO.java                                                          |   44 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/RentingHourseOrderMapper.xml                                                                        |   73 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionOutdoorServiceRange.java                                         |   72 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventSpecialCrowdRecordDOMapper.xml                                                                      |   36 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderVO.java                                                                    |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/MicroCommercialStreetApi.java                                               |  617 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComExServicemanDAO.java                                                     |   36 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopGoodsService.java                                                |   77 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/ApprovalFmsServiceAdminDTO.java                                              |   36 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComActIntegralUsersServiceImpl.java                             |  312 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopOperLogService.java                                              |   31 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderPageVO.java                                                          |  138 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiApplyExperienceService.java                         |   39 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbActivityDO.java                                               |  105 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngVolunteerOrgTeamDao.xml                                                                       |  135 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngVillageVO.java                                                              |   70 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/redis/RedisTokenManager.java                                                                          |  170 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialOrgHatchAuditScheduleDAO.java                                   |   39 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngCityVO.java                                                                 |   18 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComKeyPopulationApi.java                                                    |   15 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EldersAuthLevelEnum.java                                                                        |   34 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoActivityServiceImpl.java                            |  227 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/easyPhoto/BannerVO.java                                                           |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/RentingHoursePreOrderDao.java                                               |   35 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/StreetCoreData.java                                                          |   27 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActActEvaluateDO.java                                              |   71 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActAcidUpdateRecord.java                                              |   56 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/AddNeighborCircleTopicAppDTO.java                                                 |   36 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunitySwitchApi.java                                                     |   54 
 springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/SpecialPopulationEventApi.java                                                                |  158 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventVisitingTasksAddDTO.java                                                         |  150 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopOrderPayService.java                                             |   13 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngStructAreaDO.java                                               |   71 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommodityOrderBargainDto.java                                         |   90 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComOpsAccUserDAO.java                                                       |   15 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActSocialWorkerServiceApi.java                                                               |   70 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActAcidDangerMemberApi.java                                              |  100 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/DisabledPersonsService.java                                             |   28 
 springcloud_demo_on_k8s-master/service-zuul/src/main/resources/application.yml                                                                                                       |   23 
 springcloud_demo_on_k8s-master/service-zuul/src/test/java/com/springcloudme/servicezuul/ServiceZuulApplicationTests.java                                                             |   17 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComFmsServiceEvaluationsMapper.xml                                                                  |   38 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiArticleManagementApi.java                               |   82 
 springcloud_demo_on_k8s-master/eureka-server/mvnw.cmd                                                                                                                                |  161 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComChangeCarModelRelationDto.java                                                |   44 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComFmsTeamTypeDAO.java                                                      |   39 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireAnswerContentDO.java                                  |   50 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridMemberRelationServiceImpl.java                                      |  213 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/EventResourceServiceImpl.java                                      |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommodityService.java                                         |   93 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationDTO.java                                                         |  234 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NeedProblemClaimMapper.xml                                                                      |  546 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventStatisticsAllAdminVO.java                                                         |   32 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/NeighborWestApi.java                                                    |  218 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommunityApi.java                                                                               |  494 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComCvtServeDTO.java                                                              |   56 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ScreenPopulationApi.java                                                |   42 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComChangeCarInquiryApi.java                                                 |   80 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActNeighborCircleDOMapper.xml                                                                    |  980 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientServiceCategoryMapper.xml                                                                 |   58 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NeedProblemUnitTaskDAO.java                                              |   41 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActUserWalletChangeMapper.java                                           |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommoditySpecsController.java                                     |  106 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopGoodsDO.java                                                   |  163 
 springcloud_demo_on_k8s-master/config-server/src/main/java/com/springcloudme/configserver/ConfigServerApplication.java                                                               |   18 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComOrderListDTO.java                                                              |   26 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/DiscussApi.java                                                         |  226 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerActivitiesPeopleService.java                                   |   56 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiQuestnaireUserAnswerService.java                    |   29 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/WarehouseDonatesExcelListen.java                                                               |   83 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/SysUserInputServiceImpl.java                                                 |  424 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComActSocialWorkerExcelListen.java                                                             |   61 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/SysAppConfigService.java                                                          |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/EldersAuthElderlyDAO.java                                                   |   15 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/IndexHomeQuarantine.java                                                |   19 
 flower_city/src/main/java/META-INF/MANIFEST.MF                                                                                                                                       |    3 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/easyPhoto/ComActEasyPhotoMemberVO.java                                            |   60 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/LcGridMemberDTO.java                                                            |   28 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ActDynTypeApi.java                                                                              |   42 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/warehouse/ComActWarehouseApplyDTO.java                                           |   54 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/VolunteerActivitiesPeopleApi.java                                           |  122 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityOrderServiceImpl.java                           |  792 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActMicroWishFeedbackMapper.xml                                                                   |   24 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActReserveRecordDO.java                                            |  157 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventMainMemberService.java                                                       |   65 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WorkGuideApi.java                                                                               |   66 
 springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/ISysRoleService.java                                                                              |   14 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComCorrectPopulationService.java                                        |   13 
 flower_city/src/main/java/com/dg/core/util/MyUtil.java                                                                                                                               |    8 
 springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/impl/LoginServiceImpl.java                                                                        |  383 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiMicroVolunteeringType.java                           |   45 
 flower_city/src/main/java/com/dg/core/util/presence/Year2012.java                                                                                                                    |   31 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerOrderOperateDAO.java                                           |   15 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/StartFightOrderDto.java                                                             |   49 
 flower_city/src/main/java/com/dg/core/service/impl/HomeStatisticsImpl.java                                                                                                           |  103 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/cluster/admin/ClusterMemberNationVo.java                                          |   21 
 flower_city/src/main/java/com/dg/core/util/MyBatisPlusConfig.java                                                                                                                    |   22 
 springcloud_k8s_panzhihuazhihuishequ/grid_app/pom.xml                                                                                                                                |  124 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComChangeCarModelRelationDto.java                                               |   45 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/impl/UnionIntegralRecordServiceImpl.class                              |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/DeleteTeamMemberDTO.java                                                     |   30 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiComActQuestnaireSub.java                             |   72 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDpcDAO.java                                                           |   70 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ExportComMngCarExcelDTO.java                                                     |   28 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActSignExcelVO.java                                                         |   59 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/NewFightShoppingOrder.java                                            |  102 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventGridMemberRelationApi.java                                                   |  123 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComFmsServiceEvaluationsServiceImpl.java                           |   54 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoActivityDOMapper.xml                                                                 |   94 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComActEasyPhotoEditDTO.java                                                           |  116 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleBrowseWestServiceImpl.java                     |   38 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EldersAuthDeleteDTO.java                                                         |   21 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiConfigVO.java                                                                  |   58 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/wallet/ComActWalletVO.java                                                        |   44 
 springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/UserApi.java                                                                                  |  133 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopCartService.java                                                 |   63 
 springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/config/SFTPConfig.java                                                                |   31 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPropertyPublicityMapper.xml                                                                      |   69 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/elders/ComEldersAuthUserAddAppDTO.java                                                     |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiMicroVolunteeringTypeService.java                   |   28 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinghuiMerchantEvaluate.java                               |   60 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/52.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/test/java/com/panzhihua/service_community/service/impl/ComEventServiceImplTest.java                                       |  114 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActivityDAO.java                                                      |  373 
 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/service/impl/ComActWarehouseApplyServiceImpl.java                               |   92 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UsersSubAnswerStatVO.java                                              |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/SysAppConfigServiceImpl.java                                                 |   26 
 springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/config/SwaggerConfig.java                                                       |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEldersAuthUserMapper.xml                                                                         |   53 
 springcloud_demo_on_k8s-master/deploy-file/busybox.yaml                                                                                                                              |   14 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPropertyWorkerService.java                                           |   51 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventTransferRecordVO.java                                           |   48 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActSocialProjectPublicityApi.java                                                            |  114 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActIntegralUserTradeDO.java                                        |  110 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComCvtCategoryService.java                                              |   59 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/unionpay/UnionpayContent.java                                                                       |   17 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/font/iconfont.eot                                                                                |    0 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialWorkerService.java                                           |   92 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventGridDataService.java                                                         |  133 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSanShuoEventServiceImpl.java                                    |   61 
 springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/service/BraceletEarlyWarningService.java                                          |   58 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionOutdoorLaborDynamicApi.java                                            |   44 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/BuildingDto.java                                                        |   14 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComPropertyWorkerApi.java                                                   |   83 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComCvtCategoryDAO.java                                                      |   24 
 springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionReportMapper.xml                                                                               |    5 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerTypeVO.java                                                              |   48 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComChangeCarModelFeign.java                                                         |   96 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/StreetVO.java                                                                               |   11 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/XmostBeautifulApi.java                                                                          |  557 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/RealAssetsCategoryType.java                                                                     |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/api/SysTemplateConfigApi.java                                                             |   99 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/ComMngTagVO.java                                                                       |   41 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngStructAreaDistrictServiceImpl.java                           |   71 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActIntegralUserTradeDOMapper.xml                                                                 |  123 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/EventResourceDTO.java                                                                      |   22 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/UpdateUserArchivesVO.java                                                              |   28 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActWarehouseApplyMapper.xml                                                                      |   70 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/24.gif                                                                               |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComRehabilitationPopulationVO.java                                                |  229 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/redis/CacheConfig.java                                                                                |   79 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventPopulationSpecialStatisticsVO.java                              |   63 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventResourceApi.java                                                                 |   90 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/enterprise/EditEnterpriseTypeDTO.java                                            |   41 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/ComActEasyPhotoTypeMapper.java                                                        |   41 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsLabelVO.java                                             |   26 
 springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/config/AuthConfig.java                                                                |   25 
 springcloud_demo_on_k8s-master/service-tp/src/main/java/com/springcloudme/servicetp/ServiceTpApplication.java                                                                        |   20 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/questnaire/StatisticsSummaryDTO.java                                             |   20 
 springcloud_demo_on_k8s-master/service-influxdb-app/mvnw.cmd                                                                                                                         |  161 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActRaffleRecordDao.java                                                  |   64 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiSnapshotClassifyMapper.xml                                                             |   80 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryStoreClassVo.java                                                          |   78 
 springcloud_demo_on_k8s-master/config-server/.gitignore                                                                                                                              |   25 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerMerchantServiceImpl.java                                  |  193 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientViewStatisticsMapper.xml                                                                  |   44 
 springcloud_demo_on_k8s-master/eureka-server/src/test/java/com/springcloudme/eurekaserver/EurekaServerApplicationTests.java                                                          |   17 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/rentHouse/OrderStatics.java                                                       |   28 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationSentenceExcelVO.java                                              |  122 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComCvtServeExcelListen.java                                                                    |   77 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsCouponDAO.java                                                           |   74 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommoditySpecs.java                                            |   75 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/PageJoinGameListDTO.java                                   |   36 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventResourceAddDTO.java                                                              |   42 
 flower_city/src/main/resources/mapper/AreaCode2022Mapper.xml                                                                                                                         |   24 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngRealCompanyService.java                                           |   79 
 springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/tree.js                                                                              |    2 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiCommunityServicesVO.java                                                       |   70 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/VolunteerMerchantApi.java                                               |  354 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/RentingHoursePreOrder.java                                               |  136 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/EscapeUtil.java                                                                                 |  133 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComActEasyPhotoCommentDTO.java                                               |   28 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComActEasyPhotoEvaluateFeign.java                                                   |   85 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidDangerMemberVO.java                                                |  118 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsVerifiedRecord.java                                                   |   51 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationHouseUserDAO.java                                           |   83 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActMicroWishScreenVO.java                                                         |   29 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActIntegralUserApi.java                                                  |  195 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActIntegralUserChangeDO.java                                       |  194 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightProjectJoinService.java                                      |   26 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/DisablePersonDAO.java                                                       |   14 
 springcloud_demo_on_k8s-master/service-api/.mvn/wrapper/maven-wrapper.jar                                                                                                            |    0 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/SafeWordStatusEnum.java                                                                         |   40 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiGoldCoinRecordDao.java                                  |   41 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/MinioConfig.java                                                                             |   28 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/PageComMngVillagePopulationDTO.java                                             |   34 
 springcloud_k8s_panzhihuazhihuishequ/applets/pom.xml                                                                                                                                 |  146 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDiscussServiceImpl.java                                      | 1776 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/EldersAuthDO.java                                                     |   94 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/JinhuiConvenientMerchantVO.java                                        |   89 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsLoginUserInfoVO.java                                     |   24 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryUserAddressController.java                                        |  116 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerCommunityConfigDao.java                                            |   33 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborForwardAppDTO.java                                                  |   21 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiComActWorkGuideDAO.java                                 |   39 
 springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/HouseApi.java                                                                                   |  100 
 springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/ComActEasyPhotoTypeService.java                                                   |   72 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/bracelet/BraceletEarlyWarningDO.java                                                       |   73 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActSocialProjectApi.java                                             |  135 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComCvtBusinessIntroduceService.java                                     |   30 
 springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/NeighborCircleJobHandler.java                                                            |   41 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/puda/CitizenInfoVO.java                                                                     |   39 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenDpcStatisticsInfo.java                                         |   30 
 springcloud_demo_on_k8s-master/mvnw                                                                                                                                                  |  286 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/CommunityActivitiesVO.java                                                        |   33 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiInterspaceTypeDao.java                                  |   39 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/ComPbMemberRoleTypeEnum.java                                                                    |   39 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/NewFightNeedProblemInventoryMapper.java                                     |   15 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActRaffleRecordService.java                                          |   54 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/jinhui/JinhuiCommunityService.java                                                            | 1156 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComCvtBusinessAreaService.java                                          |   30 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BaseInfo.java                                                           |   32 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComPropertyPublicityApi.java                                            |  104 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComRehabilitationPopulationService.java                                 |   13 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/EldersAuthFeedbackDetailsVO.java                                                  |   44 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventDeleteDTO.java                                                                   |   30 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientElevatingPointOrderVO.java                                   |   21 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/RealUserVO.java                                                                        |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialOrgHatchApi.java                                                |   74 
 springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiInterspaceDao.java                                      |   41 
 flower_city/src/main/java/com/dg/core/util/presence/Year2005.java                                                                                                                    |   31 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EldersAuthAddDTO.java                                                            |   61 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComMngVolunteerSkillApi.java                                                |   91 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitCountVO.java                                                                |   26 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryStoreClassMapper.xml                                                                      |   72 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPbServiceTeamDao.java                                                    |   16 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireSubDAO.java                                                 |   13 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/AreaVOStr.java                                                                         |   22 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/LargeScreenApi.java                                                         |  118 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/EditBuildingUnitDto.java                                          |   28 
 springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightIntegratingTaskService.java                                  |   66 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComFmsServiceDAO.java                                                       |  172 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/admin/PageBuildingListAdminVo.java                                       |   49 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActSocialOrgHatchAuditApi.java                                       |   85 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/cluster/admin/PageClusterAdminDto.java                                           |   29 
 springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComElderAuthElderliesDO.java                                          |  141 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationPensionExcelListen.java                                                        |  468 
 springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/model/vos/LoginBody.java                                                    |   25 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/integral/ComActIntegralCommunityRankDTO.java                                     |   51 
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/api/ApiServiceFeign.java                                                                      |   92 
 5,037 files changed, 514,644 insertions(+), 0 deletions(-)

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..e5e634c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,6 @@
+/springcloud_k8s_panzhihuazhihuishequ/common/LOG_HOME_IS_UNDEFINED/
+
+
+.idea
+*.iml
+*.log
\ No newline at end of file
diff --git a/flower_city/.gitignore b/flower_city/.gitignore
new file mode 100644
index 0000000..513e7e2
--- /dev/null
+++ b/flower_city/.gitignore
@@ -0,0 +1,35 @@
+.DS_Store
+
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
diff --git a/flower_city/.gitkeep b/flower_city/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/flower_city/.gitkeep
diff --git a/flower_city/README.md b/flower_city/README.md
new file mode 100644
index 0000000..53d57d8
--- /dev/null
+++ b/flower_city/README.md
@@ -0,0 +1,3 @@
+# 花城e+自公告系统 后端
+# 不参与花城后台   完全独立
+# 只是用户表只做查询花城数据
\ No newline at end of file
diff --git a/flower_city/pom.xml b/flower_city/pom.xml
new file mode 100644
index 0000000..5ed6e6a
--- /dev/null
+++ b/flower_city/pom.xml
@@ -0,0 +1,189 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>2.3.6.RELEASE</version>
+
+        <relativePath/> <!-- lookup parent from repository -->
+    </parent>
+    <groupId>com.dg</groupId>
+    <artifactId>flower_city_automessage</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>flower_city_automessage</name>
+    <description>flower_city_automessage-backend</description>
+    <properties>
+        <java.version>8</java.version>
+    </properties>
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-devtools</artifactId>
+            <scope>runtime</scope>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-configuration-processor</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <version>8.0.13</version>
+        </dependency>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+            <version>3.5.2</version>
+        </dependency>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-generator</artifactId>
+            <version>3.5.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.velocity</groupId>
+            <artifactId>velocity-engine-core</artifactId>
+            <version>2.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-redis</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.freemarker</groupId>
+            <artifactId>freemarker</artifactId>
+            <version>2.3.30</version>
+        </dependency>
+
+        <!-- 阿里短信 -->
+        <dependency>
+            <groupId>com.aliyun</groupId>
+            <artifactId>aliyun-java-sdk-core</artifactId>
+            <version>4.5.3</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+            <version>1.2.74</version>
+        </dependency>
+
+        <!-- okhttp -->
+        <dependency>
+            <groupId>com.squareup.okhttp</groupId>
+            <artifactId>okhttp</artifactId>
+            <version>2.7.1</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi-ooxml</artifactId>
+            <version>4.1.1</version>
+            <scope>compile</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.poi</groupId>
+            <artifactId>poi</artifactId>
+            <version>4.1.1</version>
+        </dependency>
+
+
+        <dependency>
+            <groupId>com.icexxx</groupId>
+            <artifactId>iceworkday</artifactId>
+            <version>2.0.2.0</version>
+        </dependency>
+
+
+        <dependency>
+            <groupId>cn.afterturn</groupId>
+            <artifactId>easypoi-annotation</artifactId>
+            <version>4.1.0</version>
+        </dependency>
+
+        <!-- hutool工具类 -->
+        <dependency>
+            <groupId>cn.hutool</groupId>
+            <artifactId>hutool-core</artifactId>
+            <version>5.6.7</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.python</groupId>
+            <artifactId>jython-standalone</artifactId>
+            <version>2.7.0</version>
+        </dependency>
+
+
+        <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger2</artifactId>
+            <version>2.9.2</version>
+        </dependency>
+        <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger-ui</artifactId>
+            <version>2.9.2</version>
+        </dependency>
+
+
+        <!-- io常用工具类 -->
+        <dependency>
+            <groupId>commons-io</groupId>
+            <artifactId>commons-io</artifactId>
+            <version>2.11.0</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpclient</artifactId>
+        </dependency>
+
+
+        <dependency>
+            <groupId>com.jcraft</groupId>
+            <artifactId>jsch</artifactId>
+            <version>0.1.53</version>
+        </dependency>
+
+
+        <dependency>
+            <groupId>io.jsonwebtoken</groupId>
+            <artifactId>jjwt</artifactId>
+            <version>0.9.1</version>
+        </dependency>
+
+
+    </dependencies>
+
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/flower_city/src/main/java/META-INF/MANIFEST.MF b/flower_city/src/main/java/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..7d4ddab
--- /dev/null
+++ b/flower_city/src/main/java/META-INF/MANIFEST.MF
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Main-Class: com.dg.core
+
diff --git a/flower_city/src/main/java/com/dg/core/AliyunConfig.java b/flower_city/src/main/java/com/dg/core/AliyunConfig.java
new file mode 100644
index 0000000..68e3a1f
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/AliyunConfig.java
@@ -0,0 +1,91 @@
+package com.dg.core;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.PropertySource;
+import org.springframework.stereotype.Component;
+
+/**
+ * 阿里云短信配置
+ */
+@Component
+@PropertySource(value = "classpath:application-sms.properties",encoding = "UTF-8")
+public class AliyunConfig {
+
+    @Value("${aliyun.key}")
+    private String key;
+
+    @Value("${aliyun.screct}")
+
+    private String screct;
+    @Value("${aliyun.SignName}")
+    private String SignName;
+
+    @Value("${aliyun.TemplateCode}")
+    private String TemplateCode;
+
+    @Value("${aliyun.TemplateCodeOvertime}")
+    private  String TemplateCodeOvertime;
+
+    @Value("${aliyun.TemplateCodeComplete}")
+    private  String  TemplateCodeComplete;
+
+
+    @Value("${aliyun.TemplateCodeSubmit}")
+    private  String  TemplateCodeSubmit;
+
+    public String getTemplateCodeSubmit() {
+        return TemplateCodeSubmit;
+    }
+
+    public void setTemplateCodeSubmit(String templateCodeSubmit) {
+        TemplateCodeSubmit = templateCodeSubmit;
+    }
+
+    public String getKey() {
+        return key;
+    }
+
+    public String getTemplateCodeComplete() {
+        return TemplateCodeComplete;
+    }
+
+    public void setTemplateCodeComplete(String templateCodeComplete) {
+        TemplateCodeComplete = templateCodeComplete;
+    }
+
+    public void setKey(String key) {
+        this.key = key;
+    }
+
+    public String getTemplateCodeOvertime() {
+        return TemplateCodeOvertime;
+    }
+
+    public void setTemplateCodeOvertime(String templateCodeOvertime) {
+        TemplateCodeOvertime = templateCodeOvertime;
+    }
+
+    public String getScrect() {
+        return screct;
+    }
+
+    public void setScrect(String screct) {
+        this.screct = screct;
+    }
+
+    public String getSignName() {
+        return SignName;
+    }
+
+    public void setSignName(String signName) {
+        SignName = signName;
+    }
+
+    public String getTemplateCode() {
+        return TemplateCode;
+    }
+
+    public void setTemplateCode(String templateCode) {
+        TemplateCode = templateCode;
+    }
+}
\ No newline at end of file
diff --git a/flower_city/src/main/java/com/dg/core/Constant.java b/flower_city/src/main/java/com/dg/core/Constant.java
new file mode 100644
index 0000000..9bd365d
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/Constant.java
@@ -0,0 +1,76 @@
+package com.dg.core;
+
+public class Constant {
+
+    /**
+     * 存储当前登录用户id的字段名
+     */
+    public static final String CURRENT_USER_ID = "CURRENT_USER_ID";
+
+    /**
+     * 存储当前登录用户id的字段名
+     */
+    public static final String CURRENT_USER_NAME = "CURRENT_USER_NAME";
+
+    /**
+     * 存储当前登录用户的角色
+     */
+    public static final String CURRENT_USER_ROLE = "CURRENT_USER_ROLE";
+
+    /**
+     * 存储当前登录用户的deptId
+     */
+    public static final String CURRENT_USER_DEPT_ID = "CURRENT_USER_DEPT_Id";
+    public static final String CURRENT_USER_ORG_ID = "CURRENT_USER_ORG_Id";
+    public static final String CURRENT_USER_PHONE = "CURRENT_USER_PHONE";
+    /**
+     * 存放OpLogContent的header字段
+     */
+    public static final String OP_LOG_CONTENT = "OP_LOG_CONTENT";
+
+    /**
+     * token有效期(小时)
+     */
+    public static final int TOKEN_EXPIRES_HOUR = 168;
+
+    /**
+     * redis存储手机验证码过期时间(10分钟)
+     */
+    public static final long AUTH_CODE_EXPIRED_SECONDS =  60 * 10;
+
+    /**
+     * 验证码长度
+     */
+    public static final int AUTH_CODE_LENGTH = 6;
+
+
+    /**
+     * 登录用户 redis key
+     */
+    public static final String LOGIN_TOKEN_KEY = "login_tokens:";
+    /**
+     * 令牌
+     */
+    public static final String TOKEN = "token";
+
+    /**
+     * 令牌前缀
+     */
+    public static final String TOKEN_PREFIX = "admin:";
+
+    /**
+     * 令牌前缀
+     */
+    public static final String LOGIN_USER_KEY = "login_user_key";
+
+    /**
+     * 存放Authorization的header字段
+     */
+    public static final String AUTHORIZATION = "Authorization";
+
+    /**
+     * 小程序  花城e+token
+     */
+    public static final String HCAUTHORIZATION = "HCAuthorization";
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/CorsConfig.java b/flower_city/src/main/java/com/dg/core/CorsConfig.java
new file mode 100644
index 0000000..6593760
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/CorsConfig.java
@@ -0,0 +1,25 @@
+package com.dg.core;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.CorsRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+import javax.servlet.http.HttpServletRequest;
+
+@Configuration
+public class CorsConfig implements WebMvcConfigurer {
+    @Override
+    public void addCorsMappings(CorsRegistry registry) {
+        registry.addMapping("/**")
+                // 设置允许跨域请求的域名
+//                .allowedOriginPatterns("*")
+                .allowedOrigins("*")
+                // 是否允许证书(cookies)
+                .allowCredentials(true)
+                // 设置允许的方法
+                .allowedMethods("*")
+                // 跨域允许时间
+                .maxAge(3600);
+    }
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/HttpStatus.java b/flower_city/src/main/java/com/dg/core/HttpStatus.java
new file mode 100644
index 0000000..223674a
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/HttpStatus.java
@@ -0,0 +1,89 @@
+package com.dg.core;
+
+/**
+ * 返回状态码
+ * 
+ * @author ruoyi
+ */
+public class HttpStatus
+{
+    /**
+     * 操作成功
+     */
+    public static final int SUCCESS = 200;
+
+    /**
+     * 对象创建成功
+     */
+    public static final int CREATED = 201;
+
+    /**
+     * 请求已经被接受
+     */
+    public static final int ACCEPTED = 202;
+
+    /**
+     * 操作已经执行成功,但是没有返回数据
+     */
+    public static final int NO_CONTENT = 204;
+
+    /**
+     * 资源已被移除
+     */
+    public static final int MOVED_PERM = 301;
+
+    /**
+     * 重定向
+     */
+    public static final int SEE_OTHER = 303;
+
+    /**
+     * 资源没有被修改
+     */
+    public static final int NOT_MODIFIED = 304;
+
+    /**
+     * 参数列表错误(缺少,格式不匹配)
+     */
+    public static final int BAD_REQUEST = 400;
+
+    /**
+     * 未授权
+     */
+    public static final int UNAUTHORIZED = 401;
+
+    /**
+     * 访问受限,授权过期
+     */
+    public static final int FORBIDDEN = 403;
+
+    /**
+     * 资源,服务未找到
+     */
+    public static final int NOT_FOUND = 404;
+
+    /**
+     * 不允许的http方法
+     */
+    public static final int BAD_METHOD = 405;
+
+    /**
+     * 资源冲突,或者资源被锁
+     */
+    public static final int CONFLICT = 409;
+
+    /**
+     * 不支持的数据,媒体类型
+     */
+    public static final int UNSUPPORTED_TYPE = 415;
+
+    /**
+     * 系统内部错误
+     */
+    public static final int ERROR = 500;
+
+    /**
+     * 接口未实现
+     */
+    public static final int NOT_IMPLEMENTED = 501;
+}
diff --git a/flower_city/src/main/java/com/dg/core/MvcConfig.java b/flower_city/src/main/java/com/dg/core/MvcConfig.java
new file mode 100644
index 0000000..a7c2bcc
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/MvcConfig.java
@@ -0,0 +1,33 @@
+package com.dg.core;
+
+import com.dg.core.interceptor.AuthorizationInterceptor;
+import com.dg.core.resolvers.CurrentUserMethodArgumentResolver;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.method.support.HandlerMethodArgumentResolver;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+import java.util.List;
+
+/**
+ * 配置类,增加自定义拦截器和解析器
+ */
+@Configuration
+public class MvcConfig implements WebMvcConfigurer {
+
+    @Autowired
+    private AuthorizationInterceptor authorizationInterceptor;
+    @Autowired
+    private CurrentUserMethodArgumentResolver currentUserMethodArgumentResolver;
+
+    @Override
+    public void addInterceptors(InterceptorRegistry registry) {
+        registry.addInterceptor(authorizationInterceptor);
+    }
+
+    @Override
+    public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
+        argumentResolvers.add(currentUserMethodArgumentResolver);
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/ResultData.java b/flower_city/src/main/java/com/dg/core/ResultData.java
new file mode 100644
index 0000000..1c35bb1
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/ResultData.java
@@ -0,0 +1,85 @@
+package com.dg.core;
+
+public class ResultData<T> {
+    //返回状态码
+    private Integer result;
+    //返回消息
+    private String message;
+    //返回数据
+    private T data;
+
+    public Integer getResult() {
+        return result;
+    }
+
+    public void setResult(Integer result) {
+        this.result = result;
+    }
+
+    public String getMessage() {
+        return message;
+    }
+
+    public void setMessage(String message) {
+        this.message = message;
+    }
+
+    public T getData() {
+        return data;
+    }
+
+    public void setData(T data) {
+        this.data = data;
+    }
+
+    //Success结果
+    public static <T> ResultData<T> success(T data) {
+        ResultData<T> resultData = new ResultData<>();
+        resultData.setResult(HttpStatus.SUCCESS);
+        resultData.setMessage("操作成功");
+        resultData.setData(data);
+        return resultData;
+    }
+
+    //Success结果
+    public static <T> ResultData<T> success(T data,String msg) {
+        ResultData<T> resultData = new ResultData<>();
+        resultData.setResult(HttpStatus.SUCCESS);
+        resultData.setMessage(msg);
+        resultData.setData(data);
+        return resultData;
+    }
+
+    //Success结果
+    public static <T> ResultData<T> success() {
+        ResultData<T> resultData = new ResultData<>();
+        resultData.setResult(HttpStatus.SUCCESS);
+        resultData.setMessage("操作成功");
+        return resultData;
+    }
+
+
+    //Fail结果
+    public static <T> ResultData<T> fail(int code, String message) {
+        ResultData<T> resultData = new ResultData<>();
+        resultData.setResult(code);
+        resultData.setMessage(message);
+        return resultData;
+    }
+
+    //Fail结果
+    public static <T> ResultData<T> error(String message) {
+        ResultData<T> resultData = new ResultData<>();
+        resultData.setResult(HttpStatus.ERROR);
+        resultData.setMessage(message);
+        return resultData;
+    }
+
+    //Fail结果
+    public static <T> ResultData<T> error() {
+        ResultData<T> resultData = new ResultData<>();
+        resultData.setResult(HttpStatus.ERROR);
+        resultData.setMessage("操作失败");
+        return resultData;
+    }
+}
\ No newline at end of file
diff --git a/flower_city/src/main/java/com/dg/core/WMApplication.java b/flower_city/src/main/java/com/dg/core/WMApplication.java
new file mode 100644
index 0000000..8cb9a82
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/WMApplication.java
@@ -0,0 +1,19 @@
+package com.dg.core;
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.web.servlet.ServletComponentScan;
+
+@ServletComponentScan("com.dg.core.task")  //定时任务启动开关
+@SpringBootApplication
+@MapperScan("com.dg.core.db")
+public class WMApplication {
+
+	public static void main(String[] args) {
+		SpringApplication.run(WMApplication.class, args);
+		System.out.println(" swagger地址= http://localhost:8181/swagger-ui.html");
+		System.out.println(" 启动完成");
+	}
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/annotation/Authorization.java b/flower_city/src/main/java/com/dg/core/annotation/Authorization.java
new file mode 100644
index 0000000..cde129b
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/annotation/Authorization.java
@@ -0,0 +1,14 @@
+package com.dg.core.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * 在Controller的方法上使用此注解,该方法在映射时会检查用户是否登录,未登录返回401错误
+ */
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Authorization {
+}
diff --git a/flower_city/src/main/java/com/dg/core/annotation/CurrentUser.java b/flower_city/src/main/java/com/dg/core/annotation/CurrentUser.java
new file mode 100644
index 0000000..7935fa8
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/annotation/CurrentUser.java
@@ -0,0 +1,14 @@
+package com.dg.core.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * 在Controller的方法参数中使用此注解,该方法在映射时会注入当前登录的User对象
+ */
+@Target(ElementType.PARAMETER)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface CurrentUser {
+}
diff --git a/flower_city/src/main/java/com/dg/core/annotation/RoleAdmin.java b/flower_city/src/main/java/com/dg/core/annotation/RoleAdmin.java
new file mode 100644
index 0000000..33ec0be
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/annotation/RoleAdmin.java
@@ -0,0 +1,11 @@
+package com.dg.core.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface RoleAdmin {
+}
diff --git a/flower_city/src/main/java/com/dg/core/api/AgreementAppletsController.java b/flower_city/src/main/java/com/dg/core/api/AgreementAppletsController.java
new file mode 100644
index 0000000..61c30f3
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/api/AgreementAppletsController.java
@@ -0,0 +1,36 @@
+package com.dg.core.api;
+
+
+import com.dg.core.ResultData;
+import com.dg.core.annotation.Authorization;
+import com.dg.core.annotation.CurrentUser;
+import com.dg.core.db.gen.entity.Agreement;
+import com.dg.core.db.gen.entity.SysUser;
+import com.dg.core.service.IAgreementService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Api(tags = {"相关协议小程序接口"})
+@RestController
+@RequestMapping("/applets/agreement")
+public class AgreementAppletsController {
+
+    @Resource
+    private IAgreementService agreementService;
+
+    /**
+     * 通过协议名获取相关协议
+     * @return
+     */
+    @ApiOperation(value = "通过协议名获取相关协议",response = Agreement.class)
+    @GetMapping(value = "/queryByAgreement")
+    public ResultData queryByAgreement(@RequestParam("agreement") String agreement) {
+        return ResultData.success(agreementService.queryByAgreement(agreement));
+    }
+
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/api/AreaCodeAppletsController.java b/flower_city/src/main/java/com/dg/core/api/AreaCodeAppletsController.java
new file mode 100644
index 0000000..fc49866
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/api/AreaCodeAppletsController.java
@@ -0,0 +1,33 @@
+package com.dg.core.api;
+
+import com.dg.core.controller.BaseController;
+import com.dg.core.db.gen.entity.AreaCode2022;
+import com.dg.core.service.IAreaCodeService;
+import com.dg.core.util.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+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;
+
+@Api(tags = {"所属地区小程序接口"})
+@RestController
+@RequestMapping("/applet/areaCode")
+public class AreaCodeAppletsController extends BaseController {
+
+    @Resource
+    private IAreaCodeService iAreaCodeService;
+
+    /**
+     * 根据指南id获取所属地区
+     * @return
+     */
+    @ApiOperation(value = "根据指南id获取所属地区",response = AreaCode2022.class)
+    @GetMapping("/getAreaCodeByTransactionId")
+    public TableDataInfo getAreaCodeByTransactionId(@RequestParam("transactionId") Integer transactionId){
+        return getDataTable(iAreaCodeService.getAreaCodeByTransactionId(transactionId));
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/api/AutomessageCommonProblemAppletsController.java b/flower_city/src/main/java/com/dg/core/api/AutomessageCommonProblemAppletsController.java
new file mode 100644
index 0000000..81dd5c2
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/api/AutomessageCommonProblemAppletsController.java
@@ -0,0 +1,52 @@
+package com.dg.core.api;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dg.core.ResultData;
+import com.dg.core.annotation.Authorization;
+import com.dg.core.annotation.CurrentUser;
+import com.dg.core.controller.BaseController;
+import com.dg.core.db.gen.entity.AutomessageCommonProblem;
+import com.dg.core.db.gen.entity.SysUser;
+import com.dg.core.service.IAutomessageCommonProblemService;
+import com.dg.core.util.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Api(tags = {"常见问题小程序接口"})
+@RestController
+@RequestMapping("/applets/automessageCommonProblem")
+public class AutomessageCommonProblemAppletsController extends BaseController {
+
+    @Resource
+    private IAutomessageCommonProblemService iAutomessageCommonProblemService;
+
+
+    /**
+     * 获取常见问题列表(不分页)
+     * @return
+     */
+    @ApiOperation(value = "获取常见问题列表(不分页)",response = AutomessageCommonProblem.class)
+    @GetMapping("/selectList")
+    public ResultData selectList(){
+      return  ResultData.success(iAutomessageCommonProblemService.selectList());
+    }
+
+
+    /**
+     * 获取常见问题列表(不分页查找)
+     * @return
+     */
+    @ApiOperation(value = "获取常见问题列表(不分页查找)",response = AutomessageCommonProblem.class)
+    @GetMapping("/queryList")
+    public ResultData queryList(@RequestParam(value = "title",required = false) String title){
+        return  ResultData.success(iAutomessageCommonProblemService.selectConfigList(title,null));
+    }
+
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/api/AutomessagePolicyDocumentsAppletsController.java b/flower_city/src/main/java/com/dg/core/api/AutomessagePolicyDocumentsAppletsController.java
new file mode 100644
index 0000000..f97f9c4
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/api/AutomessagePolicyDocumentsAppletsController.java
@@ -0,0 +1,63 @@
+package com.dg.core.api;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dg.core.ResultData;
+import com.dg.core.annotation.Authorization;
+import com.dg.core.annotation.CurrentUser;
+import com.dg.core.controller.BaseController;
+import com.dg.core.db.gen.entity.AutomessagePolicyDocuments;
+import com.dg.core.db.gen.entity.SysUser;
+import com.dg.core.service.IAutomessagePolicyDocumentsService;
+import com.dg.core.util.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Api(tags = {"获取法律法规政策文件小程序接口"})
+@RestController
+@RequestMapping("/applets/AutomessagePolicyDocumentsController")
+public class AutomessagePolicyDocumentsAppletsController extends BaseController {
+
+    @Resource
+    private IAutomessagePolicyDocumentsService iAutomessagePolicyDocumentsService;
+
+
+    /**
+     * 获取法律法规政策文件列表(不分页)
+     * @param name
+     * @param type
+     * @return
+     */
+    @ApiOperation(value = "获取法律法规政策文件列表(不分页)",response = AutomessagePolicyDocuments.class)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "type", value = "类型(1.法律法规2.政策文件)", required = true, dataType = "String", paramType = "query")
+    })
+    @GetMapping("/selectList")
+    public ResultData selectConfigList(@RequestParam(value = "name",required = false) String name,
+                                          @RequestParam(value = "type",required = false) String type,
+                                       @RequestParam(value = "departmentId",required = false) Integer departmentId){
+        List<AutomessagePolicyDocuments> list = iAutomessagePolicyDocumentsService.selectConfigList(name,type,departmentId,null);
+        return  ResultData.success(list);
+    }
+
+
+    /**
+     * 根据id获取法律法规政策文件数据
+     * @return
+     */
+    @ApiOperation(value = " 根据id获取法律法规政策文件数据 ",response = AutomessagePolicyDocuments.class)
+    @GetMapping("/selectAutomessagePolicyDocumentById")
+    public ResultData selectAutomessagePolicyDocumentById(@RequestParam(value = "id") Integer id){
+        AutomessagePolicyDocuments automessagePolicyDocuments = iAutomessagePolicyDocumentsService.selectAutomessagePolicyDocumentById(id);
+        if (automessagePolicyDocuments!=null){
+            return  ResultData.success(automessagePolicyDocuments);
+        }else {
+            return  ResultData.error("查找失败");
+        }
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/api/ClassifyAdministrationAppletsController.java b/flower_city/src/main/java/com/dg/core/api/ClassifyAdministrationAppletsController.java
new file mode 100644
index 0000000..2abeba9
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/api/ClassifyAdministrationAppletsController.java
@@ -0,0 +1,62 @@
+package com.dg.core.api;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dg.core.ResultData;
+import com.dg.core.annotation.Authorization;
+import com.dg.core.controller.BaseController;
+import com.dg.core.db.gen.entity.ClassifyAdministration;
+import com.dg.core.service.IClassifyAdministrationService;
+import com.dg.core.util.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.Assert;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+
+/**
+ * 分类管理
+ */
+@Api(tags = {"分类管理小程序接口"})
+@RestController
+@RequestMapping("/applets/classify")
+public class ClassifyAdministrationAppletsController extends BaseController
+{
+
+    @Autowired(required = true)
+    IClassifyAdministrationService iClassifyAdministrationService;
+
+
+    /**
+     * 获取管理菜单列表(无分页已分级)
+     * @return
+     */
+    @ApiOperation(value = "  获取管理菜单列表(无分页已分级))",response = ClassifyAdministration.class)
+    @GetMapping("/selectListByParentId")
+    public TableDataInfo  selectListByParentId(@RequestParam(value = "parentId",required = false) String parentId,
+                                               @RequestParam(value = "departmentId",required = false) Integer departmentId){
+        int num=iClassifyAdministrationService.countNum("",null);
+        if (parentId==null)
+            parentId="0";
+        return getDataTable(iClassifyAdministrationService.selectConfigListByParentId(parentId, departmentId),num);
+    }
+
+
+
+
+    /**
+     * 获取分类根据id 如果是二级id则获取的是办事指南
+     * @return
+     */
+    @ApiOperation("获取分类根据id 如果是二级id则获取的是办事指南,不传参默认是0")
+    @GetMapping("/queryListById")
+    ResultData queryListById(@RequestParam(value = "id",required = false) Integer id){
+        if(id==null)
+            id=0;
+        return  iClassifyAdministrationService.queryListById(id);
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/api/ElseAccessoryAppletsController.java b/flower_city/src/main/java/com/dg/core/api/ElseAccessoryAppletsController.java
new file mode 100644
index 0000000..d6541bd
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/api/ElseAccessoryAppletsController.java
@@ -0,0 +1,116 @@
+package com.dg.core.api;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dg.core.ResultData;
+import com.dg.core.annotation.Authorization;
+import com.dg.core.annotation.CurrentUser;
+import com.dg.core.controller.BaseController;
+import com.dg.core.db.gen.entity.ElseAccessoryEntity;
+import com.dg.core.db.gen.entity.GuideRepairOrder;
+import com.dg.core.db.gen.entity.SysUser;
+import com.dg.core.service.IElseAccessoryService;
+import com.dg.core.service.IOrganizationChartService;
+import com.dg.core.util.PermissionUtil;
+import com.dg.core.util.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@Api(tags = {"其他附件小程序接口"})
+@RestController
+@RequestMapping("/applets/else")
+public class ElseAccessoryAppletsController extends BaseController
+{
+
+    @Autowired
+    IElseAccessoryService iElseAccessoryService;
+
+    @Autowired
+    IOrganizationChartService iOrganizationChartService;
+
+    /**
+     * 获取附件列表
+     * @param Name
+     * @return
+     */
+    @ApiOperation(value = "获取附件列表接口(全部)",response = ElseAccessoryEntity.class)
+    @GetMapping(path = "/getAllList")
+    @Authorization
+    public TableDataInfo selectConfigListAll(@RequestParam(value = "Name",required = false) String Name,
+                                             @CurrentUser SysUser sysUser)
+    {
+        List<String> ids= PermissionUtil.getPermission(sysUser,iOrganizationChartService);
+        if(ids==null || ids.size()<1)
+        {
+            return getDataTable("您没有权限查看该数据");
+        }
+        List<ElseAccessoryEntity> list = iElseAccessoryService.selectConfigList(Name,ids,sysUser.getUserId());
+        int num=iElseAccessoryService.countNum(Name,ids);
+        return getDataTable(list,num);
+    }
+
+
+    /**
+     * 新增列表
+     * @param entity
+     * @return
+     */
+    @ApiOperation(value = "新增附件",response = ElseAccessoryEntity.class)
+    @PostMapping(path = "/add")
+    @Authorization
+    public ResultData insertConfig(@RequestBody ElseAccessoryEntity entity)
+    {
+        if(entity==null)
+        {
+            return ResultData.error("参数不能为空");
+        }
+
+        if(StringUtils.isEmpty(entity.getName()))
+        {
+            return ResultData.error("事项名称不能为空");
+        }
+
+        if(StringUtils.isEmpty(entity.getUrl()))
+        {
+            return ResultData.error("文件url不能为空");
+        }
+
+        if(StringUtils.isEmpty(entity.getDepartmentId()))
+        {
+            return ResultData.error("部门不能为空");
+        }
+
+        return toAjax(iElseAccessoryService.insertConfig(entity));
+    }
+
+    /**
+     * 更新附件
+     * @param entity
+     * @return
+     */
+    @ApiOperation(value = "更新附件",response = ElseAccessoryEntity.class)
+    @PostMapping(path = "/update")
+    @Authorization
+    public ResultData updateConfig(@RequestBody ElseAccessoryEntity entity)
+    {
+        return toAjax(iElseAccessoryService.updateConfig(entity));
+    }
+
+    /**
+     * 删除
+     * @param Id
+     * @return
+     */
+    @ApiOperation(value = "删除附件",response = ElseAccessoryEntity.class)
+    @DeleteMapping(path = "/delete")
+    @Authorization
+    public ResultData deleteConfigById(@RequestParam(value = "Id",required = false) String Id)
+    {
+        return toAjax(iElseAccessoryService.deleteConfigById(Id));
+    }
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/api/GuideDoAppletsController.java b/flower_city/src/main/java/com/dg/core/api/GuideDoAppletsController.java
new file mode 100644
index 0000000..958b338
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/api/GuideDoAppletsController.java
@@ -0,0 +1,56 @@
+package com.dg.core.api;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dg.core.ResultData;
+import com.dg.core.annotation.Authorization;
+import com.dg.core.controller.BaseController;
+import com.dg.core.db.gen.entity.SysUser;
+import com.dg.core.service.ISysUserService;
+import com.dg.core.util.Snowflake;
+import com.dg.core.util.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.Assert;
+import org.springframework.web.bind.annotation.*;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+
+@Api(tags = {"导办用户小程序接口"})
+@RestController
+@RequestMapping("/applets/guidedo")
+public class GuideDoAppletsController extends BaseController
+{
+
+    @Autowired
+    ISysUserService IUserService;
+
+
+
+    /**
+     * 根据部门id及分类id获取导办用户
+     *
+     * @return 结果
+     */
+    @ApiOperation(value = "根据部门id及分类id获取导办用户",response = SysUser.class)
+    @GetMapping("/selectListByDepartmentId")
+    @Authorization
+    public ResultData selectListByDepartmentId(@RequestParam("departmentId") String departmentId,
+                                               @RequestParam(value = "classifyId",required = false) String classifyId){
+        return  ResultData.success(IUserService.selectListByDepartmentId(departmentId,classifyId));
+    }
+
+    /**
+     * 查询导办用户列表(不分页)
+     * @return 结果
+     */
+    @ApiOperation(value = " 查询导办用户列表(不分页)",response = SysUser.class)
+    @GetMapping("/queryList")
+    public  ResultData  queryList(@RequestParam(value = "keyWord",required = false) String keyWord){
+        return  ResultData.success(IUserService.queryList(2,keyWord));
+    }
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/api/GuideRepairOrderAppletsController.java b/flower_city/src/main/java/com/dg/core/api/GuideRepairOrderAppletsController.java
new file mode 100644
index 0000000..33eb40a
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/api/GuideRepairOrderAppletsController.java
@@ -0,0 +1,367 @@
+package com.dg.core.api;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dg.core.ResultData;
+import com.dg.core.annotation.Authorization;
+import com.dg.core.annotation.CurrentUser;
+import com.dg.core.controller.BaseController;
+import com.dg.core.db.gen.entity.GuideEvolveEntity;
+import com.dg.core.db.gen.entity.GuideRepairOrder;
+import com.dg.core.db.gen.entity.SysUser;
+import com.dg.core.db.manual.mapper.util.ConstantPropertiesUtil;
+import com.dg.core.service.IGuideEvolveService;
+import com.dg.core.service.IGuideRepairOrderService;
+import com.dg.core.service.IOrganizationChartService;
+import com.dg.core.util.PermissionUtil;
+import com.dg.core.util.SmsUtil;
+import com.dg.core.util.TableDataInfo;
+import com.dg.core.util.WxUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.util.Assert;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+
+
+/**
+ * 工单管理
+ */
+@Api(tags = {"工单管理小程序接口"})
+@RestController
+@RequestMapping("/applets/guideRepairOrder")
+public class GuideRepairOrderAppletsController extends BaseController {
+
+    @Resource
+    private IGuideRepairOrderService iGuideRepairOrderService;
+
+    @Autowired
+    private IGuideEvolveService iGuideEvolveService;
+
+    @Resource
+    IOrganizationChartService iOrganizationChartService;
+
+    @Resource(name = "stringRedisTemplate")
+    private StringRedisTemplate stringRedisTemplate;
+
+    private static String guideRepairOrderCompleteTemplateId = "7ZCHHii87rWPwVkdhZnvNiYbYi_Buq0NXO10cmUhAFk";
+
+    @Resource
+    SmsUtil smsUtil;
+
+    /**
+     * 提交导办订单
+     * @return
+     */
+    @ApiOperation(value = "提交导办订单",response = GuideRepairOrder.class)
+    @PostMapping("/addOrder")
+    @Authorization
+    public ResultData addOrder(@RequestBody GuideRepairOrder guideRepairOrder,@CurrentUser SysUser sysUser) {
+          guideRepairOrder.setSubmitUserId(sysUser.getUserId().toString());
+          guideRepairOrder.setSubmitUserPhone(sysUser.getPhonenumber());
+          guideRepairOrder.setSubmitType(1);
+          int i = iGuideRepairOrderService.addOrder(guideRepairOrder);
+          if (i>0){
+              iGuideEvolveService.updateGuid();
+             return ResultData.success();
+          }
+          else
+              return  ResultData.error("提交失败,请检查你是否有相同的咨询内容在处理中");
+    }
+
+
+    /**
+     * 获取详情
+     * @param Id
+     * @param orderNum
+     * @return
+     */
+    @ApiOperation(value = "获取订单详情",response = GuideRepairOrder.class)
+    @GetMapping("/orderdata")
+    @Authorization
+    public ResultData selectConfigData(@RequestParam(value = "Id",required = false) String Id,
+                                       @RequestParam(value = "orderNum",required = false)  String orderNum,
+                                       @CurrentUser SysUser sysUser)
+    {
+        if(StringUtils.isEmpty(Id) && StringUtils.isEmpty(orderNum))
+        {
+            return ResultData.error("id或者订单号不能都为空");
+        }
+
+        GuideRepairOrder order=iGuideRepairOrderService.selectConfigData(Id,orderNum);
+        order.setGuideEvolveEntities(iGuideEvolveService.selectConfigList(Id,sysUser));
+
+        return ResultData.success(order);
+    }
+
+
+
+
+
+    /**
+     * 转派人员
+     * @param order
+     * @return
+     */
+    @ApiOperation(value = "转派人员",response = GuideRepairOrder.class)
+    @PostMapping("/redeploy")
+    @Authorization
+    public ResultData redeploy(@RequestBody GuideRepairOrder order, @CurrentUser SysUser sysUser)
+    {
+        if(order==null)
+        {
+            return ResultData.error("参数不能为空");
+        }
+
+        if(StringUtils.isEmpty(order.getGuideDepartmentId()))
+        {
+            return ResultData.error("导办部门id不能为空");
+        }
+
+        if(StringUtils.isEmpty(order.getGuideUserId()))
+        {
+            return ResultData.error("导办人员id不能为空");
+        }
+
+
+        //已分配
+        order.setState("2");
+
+        //新增转派记录
+        GuideEvolveEntity entity=new GuideEvolveEntity();
+        entity.setCreateTime(LocalDateTime.now());
+        entity.setUpdateTime(LocalDateTime.now());
+        entity.setState("10");
+        entity.setDepartmentalId(order.getGuideDepartmentId());
+        entity.setToUserId(order.getGuideUserId());
+        entity.setFromUserId(sysUser.getUserId()+"");
+        entity.setFromDepartmentalId(sysUser.getDepartmentId());
+        entity.setGuideId(order.getId().toString());
+        iGuideEvolveService.insertConfig(entity);
+        iGuideRepairOrderService.updateSysUserOrderNum(entity);
+        return toAjax(iGuideRepairOrderService.updateConfig(order));
+    }
+
+
+
+    /**
+     * 去处理
+     * @param entity
+     * @return
+     */
+    @ApiOperation(value = "去处理",response = GuideRepairOrder.class)
+    @PostMapping("/dispose")
+    @Authorization
+    public ResultData dispose(@RequestBody GuideEvolveEntity entity, @CurrentUser SysUser sysUser)
+    {
+        if(entity==null)
+        {
+            return ResultData.error("参数不能为空");
+        }
+
+        if(StringUtils.isEmpty(entity.getGuideId()))
+        {
+            return ResultData.error("工单id不能为空");
+        }
+
+        GuideRepairOrder order=iGuideRepairOrderService.selectConfigData(entity.getGuideId(),"");
+        if(order==null)
+        {
+            return ResultData.error("该工单不存在!");
+        }
+
+        if(StringUtils.equals(order.getState(),"3"))
+        {
+            return ResultData.error("该工单已办结!");
+        }
+        if(StringUtils.equals(entity.getState(),"2")){//如果用户选择未解决则状态改为待办
+            order.setState("2");
+            entity.setState("9");
+        }
+        else if(StringUtils.equals(entity.getState(),"4")){
+            if (order.getSubmitType().equals(1))//小程序提交
+            {
+            WxUtil wxUtil=new WxUtil();
+            String accessToken="0";
+            try {
+                accessToken= stringRedisTemplate.boundValueOps("access_token:access_token:" + ConstantPropertiesUtil.WX_OPEN_APP_ID).get();
+            } catch (Exception e) {
+                throw new RuntimeException(e);
+            }
+            SysUser submitUser = iGuideRepairOrderService.getSubmitUser(order);
+            wxUtil.sendGuideRepairOrderComplete(submitUser.getOpenid(),accessToken,guideRepairOrderCompleteTemplateId,entity);
+            }
+            else if (order.getSubmitType().equals(2)){
+                smsUtil.sendSmsCompleteNew(order.getConsultUserPhone(),order.getMatterName());
+            }
+            //待评价
+            order.setState("4");
+            entity.setState("7");
+        }
+        //新增已办结记录
+        entity.setCreateTime(LocalDateTime.now());
+        entity.setUpdateTime(LocalDateTime.now());
+        entity.setFromDepartmentalId(sysUser.getDepartmentId());
+        entity.setFromUserId(sysUser.getUserId()+"");
+        entity.setGuideId(order.getId().toString());
+        iGuideEvolveService.insertConfig(entity);
+        iGuideRepairOrderService.updateSysUserOrderNum(entity);
+        return toAjax(iGuideRepairOrderService.updateConfig(order));
+    }
+
+
+    /**
+     * 取消导办工单
+     * @param entity
+     * @return
+     */
+    @ApiOperation(value = "取消导办工单",response = GuideRepairOrder.class)
+    @PostMapping("/cancel")
+    @Authorization
+    public ResultData cancel(@RequestBody GuideEvolveEntity entity, @CurrentUser SysUser sysUser)
+    {
+        if(entity==null)
+        {
+            return ResultData.error("参数不能为空");
+        }
+
+        if(StringUtils.isEmpty(entity.getGuideId()))
+        {
+            return ResultData.error("工单id不能为空");
+        }
+
+        GuideRepairOrder order=iGuideRepairOrderService.selectConfigData(entity.getGuideId(),"");
+        if(order==null)
+        {
+            return ResultData.error("该工单不存在!");
+        }
+
+        if(!StringUtils.equals(order.getState(),"1"))
+        {
+            return ResultData.error("该工单不能取消!");
+        }
+        //取消状态
+        order.setState("5");
+
+        //新增已取消记录
+        entity.setCreateTime(LocalDateTime.now());
+        entity.setUpdateTime(LocalDateTime.now());
+        entity.setState("5");
+        entity.setFromDepartmentalId(sysUser.getDepartmentId());
+        entity.setFromUserId(sysUser.getUserId()+"");
+        entity.setGuideId(order.getId().toString());
+        iGuideEvolveService.insertConfig(entity);
+        return toAjax(iGuideRepairOrderService.updateConfig(order));
+    }
+
+
+
+    /**
+     * 工单评价
+     * @param entity
+     * @return
+     */
+    @ApiOperation(value = "工单评价",response = GuideRepairOrder.class)
+    @PostMapping("/evaluate")
+    @Authorization
+    public ResultData evaluate(@RequestBody GuideRepairOrder entity, @CurrentUser SysUser sysUser)
+    {
+        if(entity==null)
+        {
+            return ResultData.error("参数不能为空");
+        }
+
+        if(entity.getId()<=0)
+        {
+            return ResultData.error("工单id不能为空");
+        }
+        if(StringUtils.isEmpty(entity.getEvaluateState()))
+        {
+            return ResultData.error("满意程度不能为空!");
+        }
+
+        //已办结
+        entity.setState("3");
+        //新增已办结记录
+        GuideEvolveEntity guideEvolveEntity=new GuideEvolveEntity();
+        guideEvolveEntity.setCreateTime(LocalDateTime.now());
+        guideEvolveEntity.setUpdateTime(LocalDateTime.now());
+        guideEvolveEntity.setState("13");
+        guideEvolveEntity.setFromDepartmentalId(sysUser.getDepartmentId());
+        guideEvolveEntity.setFromUserId(sysUser.getUserId()+"");
+        guideEvolveEntity.setGuideId(entity.getId().toString());
+        int i = iGuideRepairOrderService.updateConfig(entity);
+        if (i>0)
+            return toAjax( iGuideEvolveService.insertConfig(guideEvolveEntity));
+        else
+            return ResultData.error();
+    }
+
+    /**
+     * 获取个人中心工单数据
+     * @param sysUser 当前登录人员信息
+     * @return
+     */
+    @ApiOperation(value = "获取个人中心工单数据",response = GuideRepairOrder.class)
+    @GetMapping("/personalCenter")
+    @Authorization
+    public ResultData selectBySubmitId(@CurrentUser SysUser sysUser){
+        return ResultData.success(iGuideRepairOrderService.selectBySubmitId(sysUser.getUserId().toString()));
+    }
+
+
+    /**
+     * 小程序获取导办工单管理列表
+     * @return
+     */
+    @ApiOperation(value = "小程序获取导办工单管理列表",response = GuideRepairOrder.class)
+    @GetMapping("/getList")
+    @Authorization
+    public TableDataInfo selectConfigList(@RequestParam(value = "state",required = false) String status,
+                                          @CurrentUser SysUser sysUser)
+    {
+        List<String> ids=null;
+        String userId=null;
+        if( StringUtils.equals("2",sysUser.getRoleIds()))
+        {
+            if(StringUtils.equals("1",sysUser.getIsDivisionHead()))
+            {
+                ids=PermissionUtil.getPermission(sysUser,iOrganizationChartService);
+            }
+            else
+            {
+                userId=sysUser.getUserId()+"";
+                ids=new ArrayList<>();
+                ids.add(sysUser.getDepartmentId());
+            }
+        }
+        else
+        {
+            ids=PermissionUtil.getPermission(sysUser,iOrganizationChartService);
+        }
+        List<GuideRepairOrder> list = iGuideRepairOrderService.selectConfigList(null,ids,status,userId,null,null,null);
+        int num=iGuideRepairOrderService.countConfigList(null,ids,status,userId);
+        return getDataTable(list,num);
+    }
+
+
+    /**
+     * 删除评论
+     * @return
+     */
+    @ApiOperation(value = "删除评论",response = GuideRepairOrder.class)
+    @GetMapping("/deleteComment")
+    @Authorization
+    public  ResultData deleteComment(@RequestParam(value = "id",required = false) Integer id,@CurrentUser  SysUser sysUser){
+        return  iGuideRepairOrderService.deleteComment(id,sysUser);
+    }
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/api/OrganizationAppletsController.java b/flower_city/src/main/java/com/dg/core/api/OrganizationAppletsController.java
new file mode 100644
index 0000000..0b1388c
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/api/OrganizationAppletsController.java
@@ -0,0 +1,54 @@
+package com.dg.core.api;
+
+import com.dg.core.ResultData;
+import com.dg.core.annotation.Authorization;
+import com.dg.core.controller.BaseController;
+import com.dg.core.db.gen.entity.OrganizationChartEntity;
+import com.dg.core.service.IOrganizationChartService;
+import com.dg.core.util.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+
+@Api(tags = {"组织架构小程序接口"})
+@RestController
+@RequestMapping("/applets/organization")
+public class OrganizationAppletsController extends BaseController
+{
+
+    @Autowired(required = true)
+    IOrganizationChartService iOrganizationChartService;
+
+    /**
+     * 查询机构列表
+     */
+    @ApiOperation("查询机构列表")
+    @GetMapping("/getList")
+    public TableDataInfo selectConfigList()
+    {
+        return getDataTable(iOrganizationChartService.selectConfigList("","" ,null));
+    }
+
+
+
+    /**
+     * 查询机构列表(不分级不分页按等级排序)
+     */
+    @ApiOperation(value = "查询机构列表(不分级不分页按等级排序)",response = OrganizationChartEntity.class)
+    @GetMapping("/selectList")
+    public TableDataInfo selectList(){
+        return getDataTable(iOrganizationChartService.selectList());
+    }
+
+    /**
+     * 根据id查组织机构
+     */
+    @ApiOperation(value = "根据id查取消组织机构",response = OrganizationChartEntity.class)
+    @GetMapping("/selectById")
+    ResultData selectConfigById(@RequestParam("id") String id){
+        return ResultData.success(iOrganizationChartService.selectConfigById(id));
+    }
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/api/ReplyTemplateAppletsController.java b/flower_city/src/main/java/com/dg/core/api/ReplyTemplateAppletsController.java
new file mode 100644
index 0000000..3eb24a8
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/api/ReplyTemplateAppletsController.java
@@ -0,0 +1,164 @@
+package com.dg.core.api;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dg.core.ResultData;
+import com.dg.core.annotation.Authorization;
+import com.dg.core.annotation.CurrentUser;
+import com.dg.core.controller.BaseController;
+import com.dg.core.db.gen.entity.ReplyTemplateEntity;
+import com.dg.core.db.gen.entity.SysUser;
+import com.dg.core.service.IOrganizationChartService;
+import com.dg.core.service.IReplyTemplateService;
+import com.dg.core.util.PermissionUtil;
+import com.dg.core.util.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@Api(tags = {"回复模板小程序接口"})
+@RestController
+@RequestMapping("/applets/reply")
+public class ReplyTemplateAppletsController extends BaseController
+{
+
+    @Autowired
+    IReplyTemplateService iReplyTemplateService;
+
+    @Autowired
+    IOrganizationChartService iOrganizationChartService;
+
+
+    /**
+     * 获取模板列表
+     * @return
+     */
+    @ApiOperation(value = "获取模板列表",response = ReplyTemplateEntity.class)
+    @GetMapping("/getlist")
+    @Authorization
+    public TableDataInfo selectConfigList(@RequestParam(value = "pageNum",required = false) Integer pageNum,
+                                          @RequestParam(value = "pageSize",required = false) Integer pageSize,
+                                          @RequestParam(value = "Name",required = false) String Name,
+                                          @CurrentUser SysUser sysUser)
+    {
+        Page<ReplyTemplateEntity> pageParam = new Page<>(pageNum,pageSize);
+        List<String> ids= PermissionUtil.getStairDepartment(sysUser,iOrganizationChartService);
+        if(ids==null || ids.size()<1)
+        {
+            return getDataTable("您没有权限查看该数据");
+        }
+        List<ReplyTemplateEntity> list = iReplyTemplateService.selectConfigList(pageParam,pageSize,Name,ids,null);
+        int num=iReplyTemplateService.countNum(Name,ids);
+        return getDataTable(list,num);
+    }
+
+    /**
+     * 获取详情
+     * @param Id
+     * @return
+     */
+    @ApiOperation(value = "获取详情",response = ReplyTemplateEntity.class)
+    @GetMapping("/getdata")
+    @Authorization
+    public ResultData selectConfigData(@RequestParam(value = "Id",required = false) String Id)
+    {
+        if(StringUtils.isEmpty(Id))
+        {
+            return ResultData.error("Id不能为空");
+        }
+        return ResultData.success(iReplyTemplateService.selectConfigData(Id));
+    }
+
+    /**
+     * 新增模板
+     * @param entity
+     * @return
+     */
+    @ApiOperation(value = "新增模板",response = ReplyTemplateEntity.class)
+    @PostMapping("/add")
+    @Authorization
+    public ResultData insertConfig(@RequestBody ReplyTemplateEntity entity,@CurrentUser SysUser sysUser)
+    {
+        if(entity==null)
+        {
+            return ResultData.error("参数不能为空");
+        }
+
+        if(StringUtils.isEmpty(entity.getName()))
+        {
+            return ResultData.error("模板名称不能为空");
+        }
+
+        entity.setId(null);
+        entity.setDepartmentId(sysUser.getDepartmentId());
+        entity.setCreateUserId(sysUser.getUserId()+"");
+
+        return toAjax(iReplyTemplateService.insertConfig(entity));
+    }
+
+    /**
+     * 更新模板
+     * @param entity
+     * @return
+     */
+    @ApiOperation(value = "更新模板",response = ReplyTemplateEntity.class)
+    @PostMapping("/update")
+    @Authorization
+    public ResultData updateConfig(@RequestBody ReplyTemplateEntity entity)
+    {
+        if(entity==null)
+        {
+            return ResultData.error("参数不能为空");
+        }
+
+        if(StringUtils.isEmpty(entity.getName()))
+        {
+            return ResultData.error("模板名称不能为空");
+        }
+        return toAjax(iReplyTemplateService.updateConfig(entity));
+    }
+
+    /**
+     * 删除模板
+     * @param Id
+     * @return
+     */
+    @ApiOperation(value = "删除模板",response = ReplyTemplateEntity.class)
+    @DeleteMapping("/delete")
+    @Authorization
+    public ResultData deleteConfigById(@RequestParam(value = "Id",required = false) String Id)
+    {
+        return toAjax(iReplyTemplateService.deleteConfigById(Id));
+    }
+
+
+    /**
+     * 复制模板
+     * @param Id
+     * @return
+     */
+    @ApiOperation(value = "复制模板",response = ReplyTemplateEntity.class)
+    @PostMapping("/copy")
+    @Authorization
+    public ResultData copy(@RequestParam(value = "Id",required = false) String Id)
+    {
+        if(StringUtils.isEmpty(Id))
+        {
+            return ResultData.error("Id不能为空");
+        }
+
+        ReplyTemplateEntity entity=iReplyTemplateService.selectConfigData(Id);
+
+        if(entity==null)
+        {
+            return ResultData.error("模板不存在!");
+        }
+        entity.setId(null);
+        return toAjax(iReplyTemplateService.insertConfig(entity));
+    }
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/api/SlideshowAppletsController.java b/flower_city/src/main/java/com/dg/core/api/SlideshowAppletsController.java
new file mode 100644
index 0000000..52f38d2
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/api/SlideshowAppletsController.java
@@ -0,0 +1,45 @@
+package com.dg.core.api;
+
+import com.dg.core.ResultData;
+import com.dg.core.controller.BaseController;
+import com.dg.core.db.gen.entity.Slideshow;
+import com.dg.core.service.ISlideshowService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@Api(tags = {"轮播图小程序接口"})
+@RestController
+@RequestMapping("/applets/slideshow")
+public class SlideshowAppletsController extends BaseController {
+
+    @Autowired(required = true)
+    ISlideshowService iSlideshowService;
+
+    /**
+     * 查询轮播图列表(不分页)
+     * @return
+     */
+    @ApiOperation(value = "查询轮播图列表(不分页)",response = Slideshow.class)
+    @GetMapping("/selectList")
+    public ResultData selectList(){
+        return ResultData.success(iSlideshowService.selectList());
+
+    }
+
+    /**
+     * 根据id 查询轮播图数据
+     *
+     * @return 参数配置信息
+     */
+    @ApiOperation(value = "根据id 查询轮播图数据",response = Slideshow.class)
+    @GetMapping("/selectById")
+    public ResultData queryById(Integer id){
+        return ResultData.success(iSlideshowService.queryById(id));
+    }
+
+
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/api/TransactionEventAppletsController.java b/flower_city/src/main/java/com/dg/core/api/TransactionEventAppletsController.java
new file mode 100644
index 0000000..e8da662
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/api/TransactionEventAppletsController.java
@@ -0,0 +1,128 @@
+package com.dg.core.api;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dg.core.ResultData;
+import com.dg.core.annotation.Authorization;
+import com.dg.core.annotation.CurrentUser;
+import com.dg.core.controller.BaseController;
+import com.dg.core.db.gen.entity.AutomessageSmartConsulting;
+import com.dg.core.db.gen.entity.SysUser;
+import com.dg.core.db.gen.entity.TransactionEvent;
+import com.dg.core.db.manual.pojo.QueryResults;
+import com.dg.core.db.manual.pojo.RecommendResult;
+import com.dg.core.db.manual.pojo.Search;
+import com.dg.core.service.IAutomessageSmartConsultingService;
+import com.dg.core.service.ITransactionEventService;
+import com.dg.core.util.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.Assert;
+import org.springframework.web.bind.annotation.*;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Api(tags = {"导办事项管理(及办事指南)小程序接口"})
+@RestController
+@RequestMapping("/applets/transaction")
+public class TransactionEventAppletsController extends BaseController {
+
+    @Autowired(required = true)
+    ITransactionEventService iTransactionEventService;
+
+    @Autowired(required = true)
+    IAutomessageSmartConsultingService iAutomessageSmartConsultingService;
+
+    /**
+     * 查询导办事务详情
+     *
+     * @param Id
+     * @return
+     */
+    @ApiOperation("查询导办事务详情")
+    @GetMapping("/getData")
+    public ResultData selectConfigData(@RequestParam("Id") String Id, @CurrentUser SysUser sysUser) {
+        Assert.notNull(Id, "Id 不能为空");
+        return ResultData.success(iTransactionEventService.selectConfigData(Id, sysUser));
+    }
+
+
+    /**
+     * 导办事物列表(不分页)
+     *
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "导办事物列表(不分页)", response = TransactionEvent.class)
+    @GetMapping("/selectList")
+    public TableDataInfo selectList(@RequestParam(value = "keyWord", required = false) String keyWord) {
+        return getDataTable(iTransactionEventService.selectList(keyWord));
+    }
+
+
+    /**
+     * 导办事务搜索(无分页用于小程序)
+     *
+     * @param keyWord
+     * @return
+     */
+    @ApiOperation(value = "导办事务搜索(无分页用于小程序)", response = QueryResults.class)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "isSmartConsulting", value = "是否是智能咨询(1.是 2.否)", required = true, dataType = "String", paramType = "query")
+    })
+    @GetMapping("/queryKeyWord")
+    public QueryResults queryKeyWord(@RequestParam(value = "keyWord", required = false) String keyWord, @RequestParam(value = "isSmartConsulting", required = false) String isSmartConsulting, @CurrentUser SysUser sysUser) {
+        QueryResults queryResults = iTransactionEventService.queryMatterNameList(keyWord);
+        if (isSmartConsulting != null && isSmartConsulting.equals("1")) {
+            AutomessageSmartConsulting automessageSmartConsulting = new AutomessageSmartConsulting();
+            if (sysUser != null) {
+                automessageSmartConsulting.setCreateUserId(sysUser.getUserId());
+            }
+            automessageSmartConsulting.setType(1);
+            automessageSmartConsulting.setCreateTime(LocalDateTime.now());
+            iAutomessageSmartConsultingService.add(automessageSmartConsulting);
+        }
+        return queryResults;
+    }
+
+
+    /**
+     * 根据分类查询导办事务
+     *
+     * @param classifyId
+     * @return
+     */
+    @ApiOperation(value = "根据分类查询导办事务", response = TransactionEvent.class)
+    @GetMapping("/queryByClassifyIdList")
+    public TableDataInfo queryByClassifyIdList(@RequestParam("classifyId") String classifyId, @RequestParam(required = false, name = "departmentId") Integer departmentId) {
+        return getDataTable(iTransactionEventService.queryByClassifyIdList(classifyId, departmentId), iTransactionEventService.countNumByClassifyIdList(classifyId, departmentId));
+    }
+
+
+    /**
+     * 查询导办事务求和
+     *
+     * @return
+     */
+    @ApiOperation(value = "查询导办事务求和", response = TransactionEvent.class)
+    @GetMapping("/sumTransactionNum")
+    public ResultData sumTransactionNum() {
+        return ResultData.success(iTransactionEventService.sumTransactionNum());
+    }
+
+    /**
+     * 智能咨询
+     *
+     * @return
+     */
+    @ApiOperation(value = "智能咨询", response = RecommendResult.class)
+    @GetMapping("/smartConsulting")
+    public RecommendResult smartConsulting(@RequestParam("keyWord") String keyWord) {
+        return iTransactionEventService.smartConsulting(keyWord);
+
+    }
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/controller/AgreementController.java b/flower_city/src/main/java/com/dg/core/controller/AgreementController.java
new file mode 100644
index 0000000..9999a16
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/controller/AgreementController.java
@@ -0,0 +1,62 @@
+package com.dg.core.controller;
+
+
+import com.dg.core.ResultData;
+import com.dg.core.annotation.Authorization;
+import com.dg.core.annotation.CurrentUser;
+import com.dg.core.db.gen.entity.Agreement;
+import com.dg.core.db.gen.entity.SysUser;
+import com.dg.core.service.IAgreementService;
+import com.dg.core.service.IAreaCodeService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Api(tags = {"相关协议接口"})
+@RestController
+@RequestMapping("/agreement")
+public class AgreementController {
+
+    @Resource
+    private IAgreementService agreementService;
+
+    /**
+     * 通过协议名获取相关协议
+     * @return
+     */
+    @ApiOperation(value = "通过协议名获取相关协议",response = Agreement.class)
+    @GetMapping(value = "/queryByAgreement")
+    public ResultData queryByAgreement(@RequestParam("agreement") String agreement) {
+        return ResultData.success(agreementService.queryByAgreement(agreement));
+    }
+
+    /**
+     * 获取相关附件列表(不分页)
+     * @return
+     */
+    @ApiOperation(value = "获取相关附件列表(不分页)",response = Agreement.class)
+    @GetMapping(value = "/getList")
+    @Authorization
+    public ResultData selectConfigList(){
+        return ResultData.success(agreementService.selectConfigList());
+    }
+
+    /**
+     * 修改相关附件
+     * @return
+     */
+    @ApiOperation(value = "修改相关附件",response = Agreement.class)
+    @PostMapping(value = "/update")
+    @Authorization
+    public ResultData update(@RequestBody Agreement agreement,@CurrentUser SysUser sysUse)
+    {
+        agreement.setUpdateTime(LocalDateTime.now());
+        agreement.setUpdateUserId(sysUse.getUserId().toString());
+        return agreementService.update(agreement);
+    }
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/controller/AreaCodeController.java b/flower_city/src/main/java/com/dg/core/controller/AreaCodeController.java
new file mode 100644
index 0000000..6c522bc
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/controller/AreaCodeController.java
@@ -0,0 +1,42 @@
+package com.dg.core.controller;
+
+import com.dg.core.ResultData;
+import com.dg.core.db.gen.entity.AreaCode2022;
+import com.dg.core.db.gen.entity.OrganizationChartEntity;
+import com.dg.core.service.IAreaCodeService;
+import com.dg.core.util.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Api(tags = {"所属地区接口"})
+@RestController
+@RequestMapping("/areaCode")
+public class AreaCodeController extends BaseController{
+
+    @Resource
+    private IAreaCodeService iAreaCodeService;
+
+    /**
+     * 根据指南id获取所属地区
+     * @return
+     */
+    @ApiOperation(value = "根据指南id获取所属地区",response = AreaCode2022.class)
+    @GetMapping("/getAreaCodeByTransactionId")
+    public TableDataInfo getAreaCodeByTransactionId(@RequestParam("transactionId") Integer transactionId){
+        return getDataTable(iAreaCodeService.getAreaCodeByTransactionId(transactionId));
+    }
+
+    /**
+     * 获取攀枝花所有所属地区
+     * @return
+     */
+    @ApiOperation(value = "获取攀枝花所有所属地区",response = AreaCode2022.class)
+    @GetMapping("/getListByPCode")
+    public TableDataInfo getListByPCode(){
+        return getDataTable(iAreaCodeService.getListByPCode("510400000000"));
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/controller/AutomessageCommonProblemController.java b/flower_city/src/main/java/com/dg/core/controller/AutomessageCommonProblemController.java
new file mode 100644
index 0000000..fbc1609
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/controller/AutomessageCommonProblemController.java
@@ -0,0 +1,107 @@
+package com.dg.core.controller;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dg.core.ResultData;
+import com.dg.core.annotation.Authorization;
+import com.dg.core.annotation.CurrentUser;
+import com.dg.core.db.gen.entity.AreaCode2022;
+import com.dg.core.db.gen.entity.AutomessageCommonProblem;
+import com.dg.core.db.gen.entity.ElseAccessoryEntity;
+import com.dg.core.db.gen.entity.SysUser;
+import com.dg.core.service.IAutomessageCommonProblemService;
+import com.dg.core.util.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Api(tags = {"常见问题接口"})
+@RestController
+@RequestMapping("/automessageCommonProblem")
+public class AutomessageCommonProblemController extends BaseController{
+
+    @Resource
+    private IAutomessageCommonProblemService iAutomessageCommonProblemService;
+
+
+
+    /**
+     * 获取常见问题列表(分页)
+     * @param title
+     * @param content
+     * @return
+     */
+    @ApiOperation(value = "获取常见问题列表(分页)",response = AutomessageCommonProblem.class)
+    @GetMapping("/selectConfigList")
+    @Authorization
+    public TableDataInfo selectConfigList(@RequestParam(value = "pageNum",required = false) Integer pageNum,
+                                          @RequestParam(value = "pageSize",required = false) Integer pageSize,
+                                          @RequestParam(value = "title",required = false) String title,
+                                          @RequestParam(value = "content",required = false) String content){
+        Page<AutomessageCommonProblem> pageParam = new Page<>(pageNum,pageSize);
+        List<AutomessageCommonProblem> list = iAutomessageCommonProblemService.selectConfigList(pageParam,pageSize,title,content);
+        int num=iAutomessageCommonProblemService.countAutomessageCommonProblem(title,content);
+        return getDataTable(list,num);
+    }
+
+    /**
+     * 添加常见问题数据
+     * @return
+     */
+    @ApiOperation(value = "添加常见问题数据)",response = AutomessageCommonProblem.class)
+    @PostMapping("/add")
+    @Authorization
+    ResultData add(@RequestBody AutomessageCommonProblem automessageCommonProblem,@CurrentUser SysUser sysUser){
+        automessageCommonProblem.setCreateUserId(sysUser.getUserId().toString());
+        automessageCommonProblem.setUpdateUserId(sysUser.getUserId().toString());
+        return iAutomessageCommonProblemService.add(automessageCommonProblem);
+    }
+
+    /**
+     * 修改常见问题数据
+     * @return
+     */
+    @ApiOperation(value = "修改常见问题数据)",response = AutomessageCommonProblem.class)
+    @PostMapping("/update")
+    @Authorization
+    ResultData update(@RequestBody AutomessageCommonProblem automessageCommonProblem,@CurrentUser SysUser sysUser){
+        automessageCommonProblem.setUpdateUserId(sysUser.getUserId().toString());
+        return iAutomessageCommonProblemService.update(automessageCommonProblem);
+    }
+
+    /**
+     * 删除常见问题数据
+     * @return
+     */
+    @ApiOperation(value = "删除常见问题数据)",response = AutomessageCommonProblem.class)
+    @GetMapping("/delete")
+    @Authorization
+    ResultData delete( @RequestParam(value = "id") Integer id){
+        return  iAutomessageCommonProblemService.delete(id);
+    }
+
+
+
+    /**
+     * 获取常见问题列表(分页)
+     * @param title
+     * @param content
+     * @return
+     */
+    @ApiOperation(value = "获取常见问题列表(分页)(不加token)",response = AutomessageCommonProblem.class)
+    @GetMapping("/selectConfigListNoToken")
+    public TableDataInfo selectConfigListNoToken(@RequestParam(value = "pageNum",required = false) Integer pageNum,
+                                          @RequestParam(value = "pageSize",required = false) Integer pageSize,
+                                          @RequestParam(value = "title",required = false) String title,
+                                          @RequestParam(value = "content",required = false) String content){
+        Page<AutomessageCommonProblem> pageParam = new Page<>(pageNum,pageSize);
+        List<AutomessageCommonProblem> list = iAutomessageCommonProblemService.selectConfigList(pageParam,pageSize,title,content);
+        int num=iAutomessageCommonProblemService.countAutomessageCommonProblem(title,content);
+        return getDataTable(list,num);
+    }
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/controller/AutomessagePolicyDocumentsController.java b/flower_city/src/main/java/com/dg/core/controller/AutomessagePolicyDocumentsController.java
new file mode 100644
index 0000000..ffb6bd2
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/controller/AutomessagePolicyDocumentsController.java
@@ -0,0 +1,152 @@
+package com.dg.core.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dg.core.ResultData;
+import com.dg.core.annotation.Authorization;
+import com.dg.core.annotation.CurrentUser;
+import com.dg.core.db.gen.entity.AutomessagePolicyDocuments;
+import com.dg.core.db.gen.entity.SysUser;
+import com.dg.core.service.IAutomessagePolicyDocumentsService;
+import com.dg.core.service.IOrganizationChartService;
+import com.dg.core.util.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import lombok.Data;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Api(tags = {"获取法律法规政策文件接口"})
+@RestController
+@RequestMapping("/AutomessagePolicyDocumentsController")
+public class AutomessagePolicyDocumentsController extends BaseController {
+
+    @Resource
+    private IAutomessagePolicyDocumentsService iAutomessagePolicyDocumentsService;
+
+    @Resource
+    private IOrganizationChartService iOrganizationChartService;
+
+    /**
+     * 获取法律法规政策文件列表(分页)
+     * @param name
+     * @param type
+     * @return
+     */
+    @ApiOperation(value = "获取法律法规政策文件列表(分页)",response = AutomessagePolicyDocuments.class)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "type", value = "类型(1.法律法规2.政策文件)", required = true, dataType = "String", paramType = "query"),
+            @ApiImplicitParam(name = "isPortal", value = "是否门户网(1.是 2.否) 不传则是门户网", required = true, dataType = "String", paramType = "query")
+
+    })
+    @GetMapping("/selectConfigList")
+    public TableDataInfo selectConfigList(@RequestParam(value = "pageNum",required = false) Integer pageNum,
+                                          @RequestParam(value = "pageSize",required = false) Integer pageSize,
+                                          @RequestParam(value = "name",required = false) String name,
+                                          @RequestParam(value = "type",required = false) String type,
+                                          @RequestParam(value = "departmentId",required = false) Integer departmentId,
+                                          @RequestParam(value = "isPortal",required = false) String isPortal,
+                                          @CurrentUser SysUser sysUser){
+        Page<AutomessagePolicyDocuments> pageParam = new Page<>(pageNum,pageSize);
+        List<String> ids=null;
+        if ( (isPortal != null && isPortal.equals("2"))&&sysUser!=null&&(sysUser.getUserType().equals("2")||sysUser.getIsDivisionHead().equals("1"))){
+            if (sysUser.getDepartmentId()!=null)
+                ids=iOrganizationChartService.getDepartmentId(sysUser.getDepartmentId());
+        }
+        List<AutomessagePolicyDocuments> list = iAutomessagePolicyDocumentsService.selectConfigList(pageParam,pageSize,name,type,sysUser,departmentId,ids);
+        return getDataTable(list,iAutomessagePolicyDocumentsService.selectCountList(name,type,departmentId,ids));
+    }
+
+    /**
+     * 获取法律法规政策文件列表(不分页)
+     * @param name
+     * @param type
+     * @return
+     */
+    @ApiOperation(value = "获取法律法规政策文件列表(不分页)",response = AutomessagePolicyDocuments.class)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "type", value = "类型(1.法律法规2.政策文件)", required = true, dataType = "String", paramType = "query")
+    })
+    @GetMapping("/selectList")
+    public ResultData selectConfigList(@RequestParam(value = "name",required = false) String name,
+                                          @RequestParam(value = "type",required = false) String type,
+                                       @RequestParam(value = "departmentId",required = false) Integer departmentId){
+        List<AutomessagePolicyDocuments> list = iAutomessagePolicyDocumentsService.selectConfigList(name,type,departmentId,null);
+        return  ResultData.success(list);
+    }
+
+
+    /**
+     * 新增法律法规政策文件
+     * @return
+     */
+    @ApiOperation(value = " 新增法律法规政策文件 ",response = AutomessagePolicyDocuments.class)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "type", value = "类型(1.法律法规2.政策文件)传参中的type 传入1则是新增的法律规范2则是政策文件", required = true, dataType = "String", paramType = "query")
+    })
+    @PostMapping("/add")
+    @Authorization
+    public ResultData add(@RequestBody AutomessagePolicyDocuments automessagePolicyDocuments,@CurrentUser SysUser sysUser){
+        automessagePolicyDocuments.setCreateUserId(sysUser.getUserId());
+        automessagePolicyDocuments.setUpdateUserId(sysUser.getUserId());
+        int add = iAutomessagePolicyDocumentsService.add(automessagePolicyDocuments);
+        if (add>0){
+          return  ResultData.success("新增成功");
+        }else {
+          return  ResultData.error("新增失败");
+        }
+    }
+
+
+    /**
+     * 修改法律法规政策文件
+     * @return
+     */
+    @ApiOperation(value = " 新增法律法规政策文件 ",response = AutomessagePolicyDocuments.class)
+    @PostMapping("/update")
+    @Authorization
+    public ResultData update(@RequestBody AutomessagePolicyDocuments automessagePolicyDocuments,@CurrentUser SysUser sysUser){
+        automessagePolicyDocuments.setUpdateUserId(sysUser.getUserId());
+        int update = iAutomessagePolicyDocumentsService.update(automessagePolicyDocuments);
+        if (update>0){
+            return  ResultData.success("修改成功");
+        }else {
+            return  ResultData.error("修改失败");
+        }
+    }
+
+    /**
+     * 删除法律法规政策文件
+     * @return
+     */
+    @ApiOperation(value = " 删除法律法规政策文件 ",response = AutomessagePolicyDocuments.class)
+    @DeleteMapping("/delete")
+    @Authorization
+    public ResultData delete(@RequestParam(value = "id") Integer id){
+        int delete = iAutomessagePolicyDocumentsService.delete(id);
+        if (delete>0){
+            return  ResultData.success("删除成功");
+        }else {
+            return  ResultData.error("删除失败");
+        }
+    }
+
+    /**
+     * 根据id获取法律法规政策文件数据
+     * @return
+     */
+    @ApiOperation(value = " 根据id获取法律法规政策文件数据 ",response = AutomessagePolicyDocuments.class)
+    @GetMapping("/selectAutomessagePolicyDocumentById")
+    public ResultData selectAutomessagePolicyDocumentById(@RequestParam(value = "id") Integer id){
+        AutomessagePolicyDocuments automessagePolicyDocuments = iAutomessagePolicyDocumentsService.selectAutomessagePolicyDocumentById(id);
+        if (automessagePolicyDocuments!=null){
+            return  ResultData.success(automessagePolicyDocuments);
+        }else {
+            return  ResultData.error("查找失败");
+        }
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/controller/BaseController.java b/flower_city/src/main/java/com/dg/core/controller/BaseController.java
new file mode 100644
index 0000000..db5f8dd
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/controller/BaseController.java
@@ -0,0 +1,127 @@
+package com.dg.core.controller;
+
+import com.dg.core.HttpStatus;
+import com.dg.core.ResultData;
+import com.dg.core.util.TableDataInfo;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * web层通用数据处理
+ *
+ * @author ruoyi
+ */
+public class BaseController
+{
+    protected final Logger logger = LoggerFactory.getLogger(this.getClass());
+    /**
+     * 响应请求分页数据
+     */
+    @SuppressWarnings({ "rawtypes", "unchecked" })
+    protected TableDataInfo getDataTable(List<?> list)
+    {
+        TableDataInfo rspData = new TableDataInfo();
+        rspData.setResult(HttpStatus.SUCCESS);
+        rspData.setMsg("查询成功");
+        if(list!=null)
+        {
+            rspData.setRows(list);
+//            rspData.setTotal(new PageInfo(list).getTotal());
+        }
+        else
+        {
+            rspData.setRows(new ArrayList<>());
+            rspData.setTotal(0);
+        }
+        return rspData;
+    }
+
+    /**
+     * 响应请求分页数据
+     */
+    @SuppressWarnings({ "rawtypes", "unchecked" })
+    protected TableDataInfo getDataTable(List<?> list,long num)
+    {
+        TableDataInfo rspData = new TableDataInfo();
+        rspData.setResult(HttpStatus.SUCCESS);
+        rspData.setMsg("查询成功");
+        rspData.setRows(list);
+        rspData.setTotal(num);
+        return rspData;
+    }
+
+
+    /**
+     * 响应请求分页数据  报错内容
+     */
+    @SuppressWarnings({ "rawtypes", "unchecked" })
+    protected TableDataInfo getDataTable(String msg)
+    {
+        TableDataInfo rspData = new TableDataInfo();
+        rspData.setResult(HttpStatus.ERROR);
+        rspData.setMsg(msg);
+        rspData.setRows(new ArrayList<>());
+        rspData.setTotal(0);
+        return rspData;
+    }
+
+    /**
+     * 返回成功
+     * <T> ResultData<T> success(T data) {
+     */
+    public ResultData success()
+    {
+        return ResultData.success();
+    }
+
+
+    /**
+     * 返回失败消息
+     */
+    public ResultData error()
+    {
+        return ResultData.error();
+    }
+
+    /**
+     * 返回成功消息
+     */
+    public ResultData success(String message)
+    {
+        return ResultData.success(message);
+    }
+
+    /**
+     * 返回失败消息
+     */
+    public ResultData error(String message)
+    {
+        return ResultData.error(message);
+    }
+
+    /**
+     * 响应返回结果
+     *
+     * @param rows 影响行数
+     * @return 操作结果
+     */
+    protected ResultData toAjax(int rows)
+    {
+        return rows > 0 ? ResultData.success() : ResultData.error();
+    }
+
+    /**
+     * 响应返回结果
+     *
+     * @param result 结果
+     * @return 操作结果
+     */
+    protected ResultData toAjax(boolean result)
+    {
+        return result ? success() : error();
+    }
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/controller/ClassifyAdministrationController.java b/flower_city/src/main/java/com/dg/core/controller/ClassifyAdministrationController.java
new file mode 100644
index 0000000..470680f
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/controller/ClassifyAdministrationController.java
@@ -0,0 +1,194 @@
+package com.dg.core.controller;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dg.core.ResultData;
+import com.dg.core.annotation.Authorization;
+import com.dg.core.db.gen.entity.ClassifyAdministration;
+import com.dg.core.db.gen.entity.OrganizationChartEntity;
+import com.dg.core.db.gen.entity.TransactionEvent;
+import com.dg.core.service.IClassifyAdministrationService;
+import com.dg.core.service.ITransactionEventService;
+import com.dg.core.util.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.Assert;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+/**
+ * 分类管理
+ */
+@Api(tags = {"分类管理接口"})
+@RestController
+@RequestMapping("/classify")
+public class ClassifyAdministrationController extends BaseController
+{
+
+    @Autowired(required = true)
+    IClassifyAdministrationService iClassifyAdministrationService;
+
+    @Autowired(required = true)
+    ITransactionEventService iTransactionEventService;
+
+    /**
+     * 获取管理菜单列表
+     * @return
+     */
+    @ApiOperation(value = "获取管理菜单列表(无分页)",response = ClassifyAdministration.class)
+    @GetMapping("/getList")
+    @Authorization
+    public TableDataInfo selectConfigList(@RequestParam(value = "classifyGrade",required = false) String classifyGrade)
+    {
+        int num=iClassifyAdministrationService.countNum("",classifyGrade);
+        return getDataTable(iClassifyAdministrationService.selectConfigList("",classifyGrade),num);
+    }
+
+    /**
+     * 获取管理菜单列表(已分级)
+     * @return
+     */
+    @ApiOperation(value = " 获取管理菜单列表(已分级)",response = ClassifyAdministration.class)
+    @GetMapping("/getListByParentId")
+    public TableDataInfo  selectConfigListByParentId(@RequestParam(value = "pageNum",required = false) Integer pageNum,
+                                                     @RequestParam(value = "pageSize",required = false) Integer pageSize,
+                                                     @RequestParam(value = "parentId",required = false) String parentId,
+                                                     @RequestParam(value = "departmentId",required = false) Integer departmentId){
+        Assert.notNull(pageNum, "pageNum can not be empty");
+        Assert.notNull(pageSize, "pageSize can not be empty");
+        int num=iClassifyAdministrationService.countNum("",null);
+        Page<ClassifyAdministration> pageParam = new Page<>(pageNum,pageSize);
+        return getDataTable(iClassifyAdministrationService.selectRootList(pageParam,pageSize,parentId,departmentId),num);
+    }
+
+
+
+    /**
+     * 获取管理菜单列表
+     * @return
+     */
+    @ApiOperation(value = "获取管理菜单列表",response = ClassifyAdministration.class)
+    @GetMapping("/getListPage")
+    @Authorization
+    public TableDataInfo selectConfigList(@RequestParam(value = "pageNum",required = false) Integer pageNum,
+                                          @RequestParam(value = "pageSize",required = false) Integer pageSize,
+                                          @RequestParam(value = "name",required = false) String name,
+                                          @RequestParam(value = "classifyGrade",required = false) String classifyGrade)
+    {
+        Assert.notNull(pageNum, "pageNum can not be empty");
+        Assert.notNull(pageSize, "pageSize can not be empty");
+        Page<ClassifyAdministration> pageParam = new Page<>(pageNum,pageSize);
+        List<ClassifyAdministration> list = iClassifyAdministrationService.selectConfigList(pageParam,pageSize,name,classifyGrade);
+        int num=iClassifyAdministrationService.countNum(name,classifyGrade);
+        return getDataTable(list,num);
+    }
+
+
+    /**
+     * 新增分类
+     * @param entity
+     * @return
+     */
+    @ApiOperation(value = "新增分类",response = ClassifyAdministration.class)
+    @PostMapping("/add")
+    @Authorization
+    public ResultData insertConfig(@RequestBody ClassifyAdministration entity) {
+        Assert.notNull(entity, "参数不能为空");
+        Assert.notNull(entity.getClassifyName(), "分类名称不能为空");
+        Assert.notNull(entity.getClassifyGrade(), "分类等级不能为空");
+        if(StringUtils.equals(entity.getClassifyGrade(),"2"))
+        {
+            Assert.notNull(entity.getParentId(), "上级分类不能为空");
+        }
+        return toAjax(iClassifyAdministrationService.insertConfig(entity));
+    }
+
+    /**
+     * 更新分类
+     * @param entity
+     * @return
+     */
+    @ApiOperation("编辑分类")
+    @PostMapping("/update")
+    @Authorization
+    public ResultData updateConfig(@RequestBody ClassifyAdministration entity)
+    {
+        return toAjax(iClassifyAdministrationService.updateConfig(entity));
+    }
+
+    /**
+     * 删除分类
+     * @param Id
+     * @return
+     */
+    @ApiOperation("删除分类")
+    @DeleteMapping("/delete/{Id}")
+    @Authorization
+    public ResultData deleteConfigById(@PathVariable("Id") String Id)
+    {
+        if(StringUtils.isEmpty(Id))
+        {
+            return ResultData.error("id 不能为空");
+        }
+
+        /**
+         * 根据上级id查询子分类
+         * @param parentId
+         * @return
+         */
+        List<String> list=iClassifyAdministrationService.selectParent(Id);
+        if(list!=null && list.size()>0)
+        {
+            return ResultData.error("请先删除其下的二级分类");
+        }
+
+        List<String> listIds=iTransactionEventService.selectclassifyId(Id);
+        if(listIds!=null && listIds.size()>0)
+        {
+            return ResultData.error("分类下有办事指南!不能删除");
+        }
+
+        return toAjax(iClassifyAdministrationService.deleteConfigById(Id));
+    }
+
+    /**
+     * 获取分类根据id 如果是二级id则获取的是办事指南
+     * @return
+     */
+    @ApiOperation("获取分类根据id 如果是二级id则获取的是办事指南,不传参默认是0")
+    @GetMapping("/queryListById")
+    ResultData queryListById(@RequestParam(value = "id",required = false) Integer id){
+        if(id==null)
+            id=0;
+        return  iClassifyAdministrationService.queryListById(id);
+    }
+
+
+
+    /**
+     * 树状分类选择列表
+     * @return
+     */
+    @ApiOperation("树状分类选择列表")
+    @GetMapping("/getClassifyList")
+    public TableDataInfo getClassifyList()
+    {
+        List<ClassifyAdministration> list=iClassifyAdministrationService.selectConfigList("","1");
+
+        for(ClassifyAdministration entity:list)
+        {
+            entity.setClassifyAdministrationEntityList(iClassifyAdministrationService.selectParentData(entity.getId()+""));
+        }
+        return getDataTable(list);
+    }
+
+
+
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/controller/CommonController.java b/flower_city/src/main/java/com/dg/core/controller/CommonController.java
new file mode 100644
index 0000000..df34391
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/controller/CommonController.java
@@ -0,0 +1,178 @@
+package com.dg.core.controller;
+
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.TypeReference;
+import com.dg.core.CorsConfig;
+import com.dg.core.ResultData;
+import com.dg.core.db.gen.AjaxResult;
+import com.dg.core.file.FtpConstants;
+import com.dg.core.file.MimeTypeUtils;
+import com.dg.core.file.SFTPUtil;
+import com.dg.core.util.TestDate;
+import com.iceyyy.workday.WorkUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+import org.apache.commons.io.FilenameUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import java.io.InputStream;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+import static com.dg.core.file.FileTypeUploadUtils.assertAllowed;
+
+
+@Api(tags = {"通用接口"})
+@RestController
+@RequestMapping("/common")
+public class CommonController extends BaseController {
+
+    private static final String FILE_DELIMETER = ",";
+
+    @Autowired
+    private CorsConfig corsConfig;
+
+
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+    @Value("${ftp.url}")
+    private String url;
+
+    @Resource
+    RedisTemplate<String, Object> redisTemplate;
+
+
+    @RequestMapping("/hello")
+//  @Authorization
+    public ResponseEntity<String> hello() {
+        return ResponseEntity.ok("hello world");
+    }
+
+
+    /**
+     * 通用上传请求(多个)
+     */
+    @ApiOperation("文件上传接口(通用)")
+    @PostMapping("/uploads")
+    public ResultData uploadFiles(List<MultipartFile> files) throws Exception {
+        List<String> urls = new ArrayList<String>();
+        List<String> fileNames = new ArrayList<String>();
+        List<String> originalFilenames = new ArrayList<String>();
+        for (MultipartFile file : files) {
+            String extension = FilenameUtils.getExtension(file.getOriginalFilename());
+            String name = UUID.randomUUID().toString().replaceAll("-", "") + "." + extension;
+            try {
+                assertAllowed(file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION);
+                SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+                sftp.login();
+                InputStream is = file.getInputStream();
+                sftp.uploadMore(FtpConstants.FTPFILEPATH_IDCARD, name, is);
+                sftp.logout();
+
+                urls.add(url + "/idcard/" + name);
+                fileNames.add(name);
+                originalFilenames.add(file.getOriginalFilename());
+
+            } catch (Exception e) {
+                return ResultData.error("上传文件失败 " + e.getMessage());
+            }
+        }
+        AjaxResult ajax = new AjaxResult();
+        ajax.put("urls", StringUtils.join(urls, FILE_DELIMETER));
+        ajax.put("fileNames", StringUtils.join(fileNames, FILE_DELIMETER));
+        ajax.put("originalFilenames", StringUtils.join(originalFilenames, FILE_DELIMETER));
+        return ResultData.success(ajax);
+
+    }
+
+
+
+    /**
+     * 通用上传请求(单个)
+     */
+    @ApiOperation("文件上传接口(通用)")
+    @PostMapping("/upload")
+    public ResultData uploadFile(MultipartFile file) throws Exception {
+        List<String> urls = new ArrayList<String>();
+        List<String> fileNames = new ArrayList<String>();
+        List<String> originalFilenames = new ArrayList<String>();
+
+        String extension = FilenameUtils.getExtension(file.getOriginalFilename());
+        String name = UUID.randomUUID().toString().replaceAll("-", "") + "." + extension;
+        try {
+            assertAllowed(file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION);
+            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+            sftp.login();
+            InputStream is = file.getInputStream();
+            sftp.uploadMore(FtpConstants.FTPFILEPATH_IDCARD, name, is);
+            sftp.logout();
+
+//      urls.add(url + "/idcard/" + name);
+//      fileNames.add(name);
+//      originalFilenames.add(file.getOriginalFilename());
+            return ResultData.success(url + "/idcard/" + name);
+        } catch (Exception e) {
+            return ResultData.error("上传文件失败 " + e.getMessage());
+        }
+
+//    AjaxResult ajax = new AjaxResult();
+//    ajax.put("urls", StringUtils.join(urls, FILE_DELIMETER));
+//    ajax.put("fileNames", StringUtils.join(fileNames, FILE_DELIMETER));
+//    ajax.put("originalFilenames", StringUtils.join(originalFilenames, FILE_DELIMETER));
+    }
+
+    /**
+     * 判断当前时间是否是工作日,格式为“2022-10-16”,不传默认为今天
+     */
+    @ApiOperation("判断当前时间是否是工作日,格式为“20221016”,不传默认为今天")
+    @GetMapping("/isWeekday")
+    public ResultData isWeekday(@RequestParam(value = "dateTime", required = false) String dateTime) {
+        if (dateTime == null) {
+            Date date = new Date();
+            SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMdd");
+            dateTime = fmt.format(date);
+        }
+        if (WorkUtils.isWorkendDay(dateTime))
+            return success("休息日或者周末");
+        else
+            return success("工作日");
+    }
+
+    /**
+     * 获取天气默认为攀枝花
+     */
+    @ApiOperation("获取天气默认为攀枝花")
+    @GetMapping("/getWeather")
+    public ResultData getWeather(@RequestParam(value = "code", required = false) String code) {
+        TestDate td = new TestDate();
+        Map weather;
+        if (code == null) {//默认为攀枝花 则从redis上获取redis上定时任务15分钟获取一次天气
+            HashMap weather1 = (HashMap) redisTemplate.opsForValue().get("weather");
+            return ResultData.success(weather1.get("lives"));
+        } else {
+            return ResultData.success(td.getWeather(code));
+        }
+    }
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/controller/ElseAccessoryController.java b/flower_city/src/main/java/com/dg/core/controller/ElseAccessoryController.java
new file mode 100644
index 0000000..7a38d744
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/controller/ElseAccessoryController.java
@@ -0,0 +1,138 @@
+package com.dg.core.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dg.core.ResultData;
+import com.dg.core.annotation.Authorization;
+import com.dg.core.annotation.CurrentUser;
+import com.dg.core.db.gen.entity.ElseAccessoryEntity;
+import com.dg.core.db.gen.entity.SysUser;
+import com.dg.core.service.IElseAccessoryService;
+import com.dg.core.service.IOrganizationChartService;
+import com.dg.core.util.PermissionUtil;
+import com.dg.core.util.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@Api(tags = {"其他附件接口"})
+@RestController
+@RequestMapping("/else")
+public class ElseAccessoryController extends BaseController
+{
+
+    @Autowired
+    IElseAccessoryService iElseAccessoryService;
+
+    @Autowired
+    IOrganizationChartService iOrganizationChartService;
+
+    /**
+     * 获取附件列表
+     * @param pageNum
+     * @param pageSize
+     * @param name
+     * @return
+     */
+    @ApiOperation("获取附件列表接口")
+    @GetMapping(path = "/getList")
+    @Authorization
+    public TableDataInfo selectConfigList(@RequestParam(value = "pageNum",required = false) Integer pageNum,
+                                          @RequestParam(value = "pageSize",required = false) Integer pageSize,
+                                          @RequestParam(value = "name",required = false) String name,
+                                          @CurrentUser SysUser sysUser)
+    {
+        Page<ElseAccessoryEntity> pageParam = new Page<>(pageNum,pageSize);
+        List<String> ids= PermissionUtil.getStairDepartment(sysUser,iOrganizationChartService);
+        List<ElseAccessoryEntity> list;
+        if (sysUser.getUserType().equals("1")||sysUser.getIsDivisionHead().equals("1")){
+            list = iElseAccessoryService.selectConfigList(pageParam,pageSize,name,ids,null);
+        }
+        else {
+            list = iElseAccessoryService.selectConfigList(pageParam,pageSize,name,ids,sysUser.getUserId());
+        }
+        int num=iElseAccessoryService.countNum(name,ids);
+        return getDataTable(list,num);
+    }
+
+    /**
+     * 获取附件列表
+     * @param Name
+     * @return
+     */
+    @ApiOperation("获取附件列表接口(全部)")
+    @GetMapping(path = "/getAllList")
+    @Authorization
+    public TableDataInfo selectConfigListAll(@RequestParam(value = "Name",required = false) String Name,
+                                             @CurrentUser SysUser sysUser)
+    {
+        List<String> ids= PermissionUtil.getStairDepartment(sysUser,iOrganizationChartService);
+        List<ElseAccessoryEntity> list = iElseAccessoryService.selectConfigList(Name,ids,sysUser.getUserId());
+        int num=iElseAccessoryService.countNum(Name,ids);
+        return getDataTable(list,num);
+    }
+
+
+    /**
+     * 新增列表
+     * @param entity
+     * @return
+     */
+    @ApiOperation("新增附件")
+    @PostMapping(path = "/add")
+    @Authorization
+    public ResultData insertConfig(@RequestBody ElseAccessoryEntity entity,@CurrentUser SysUser sysUser)
+    {
+        if(entity==null)
+        {
+            return ResultData.error("参数不能为空");
+        }
+
+        if(StringUtils.isEmpty(entity.getName()))
+        {
+            return ResultData.error("事项名称不能为空");
+        }
+
+        if(StringUtils.isEmpty(entity.getUrl()))
+        {
+            return ResultData.error("文件url不能为空");
+        }
+
+        if(StringUtils.isEmpty(entity.getDepartmentId()))
+        {
+            return ResultData.error("部门不能为空");
+        }
+        entity.setCreateUserId(sysUser.getUserId());
+        return toAjax(iElseAccessoryService.insertConfig(entity));
+    }
+
+    /**
+     * 更新附件
+     * @param entity
+     * @return
+     */
+    @ApiOperation("更新附件")
+    @PostMapping(path = "/update")
+    @Authorization
+    public ResultData updateConfig(@RequestBody ElseAccessoryEntity entity)
+    {
+        return toAjax(iElseAccessoryService.updateConfig(entity));
+    }
+
+    /**
+     * 删除
+     * @param Id
+     * @return
+     */
+    @ApiOperation("删除附件")
+    @DeleteMapping(path = "/delete")
+    @Authorization
+    public ResultData deleteConfigById(@RequestParam(value = "Id",required = false) String Id)
+    {
+        return toAjax(iElseAccessoryService.deleteConfigById(Id));
+    }
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/controller/GuideDoController.java b/flower_city/src/main/java/com/dg/core/controller/GuideDoController.java
new file mode 100644
index 0000000..293b1c6
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/controller/GuideDoController.java
@@ -0,0 +1,312 @@
+package com.dg.core.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dg.core.ResultData;
+import com.dg.core.annotation.Authorization;
+import com.dg.core.annotation.CurrentUser;
+import com.dg.core.db.gen.entity.SysUser;
+import com.dg.core.service.IGuideRepairOrderService;
+import com.dg.core.service.IOrganizationChartService;
+import com.dg.core.service.ISysUserService;
+import com.dg.core.util.PermissionUtil;
+import com.dg.core.util.Snowflake;
+import com.dg.core.util.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.repository.query.Param;
+import org.springframework.util.Assert;
+import org.springframework.web.bind.annotation.*;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+
+@Api(tags = {"导办用户接口"})
+@RestController
+@RequestMapping("/guidedo")
+public class GuideDoController extends BaseController
+{
+
+    @Autowired
+    ISysUserService IUserService;
+
+
+    @Autowired
+    IGuideRepairOrderService iGuideRepairOrderService;
+
+    @Autowired
+    IOrganizationChartService iOrganizationChartService;
+
+    /**
+     * 查询列表
+     *
+     * @return 参数配置信息
+     */
+    @ApiOperation("用户列表接口")
+    @GetMapping("/getlist")
+    @Authorization
+    public TableDataInfo selectConfigList(@RequestParam(value = "pageNum",required = false) Integer pageNum,
+                                          @RequestParam(value = "pageSize",required = false) Integer pageSize,
+                                          @RequestParam(value = "keyword",required = false) String keyword,
+                                          @RequestParam(value = "isDivisionHead",required = false) String isDivisionHead,
+                                          @CurrentUser SysUser sysUser)
+    {
+        Assert.notNull(pageNum, "pageNum can not be empty");
+        Assert.notNull(pageSize, "pageSize can not be empty");
+        Page<SysUser> pageParam = new Page<>(pageNum,pageSize);
+        List<String> ids= PermissionUtil.getPermission(sysUser,iOrganizationChartService);
+        List<SysUser> list ;
+        int num;
+        if (isDivisionHead!=null&&!isDivisionHead.equals("")){
+            list = IUserService.selectConfigList(pageParam,pageSize,"2",keyword,ids,isDivisionHead);
+            num=IUserService.selectNum("2",keyword,ids,isDivisionHead);
+        }
+        else{
+            list = IUserService.selectConfigList(pageParam,pageSize,"2",keyword,ids,null);
+            num=IUserService.selectNum("2",keyword,ids,null);
+        }
+        return getDataTable(list,num);
+    }
+
+
+    /**
+     * 新增用户
+     *
+     * @param config 参数配置信息-
+     * @return 结果
+     */
+    @ApiOperation("新增导办用户接口")
+    @PostMapping("/add")
+    @Authorization
+    public ResultData insertConfig(@RequestBody SysUser config,@CurrentUser SysUser sysUser)
+    {
+        Assert.notNull(config, "parameter can not be empty");
+
+        if(StringUtils.isEmpty(config.getLoginName()))
+        {
+            return error("账户不能为空");
+        }
+
+        if(StringUtils.isEmpty(config.getPassword()))
+        {
+            return error("密码不能为空");
+        }
+
+        if(StringUtils.isEmpty(config.getPhonenumber()))
+        {
+            return error("手机号不能为空");
+        }
+
+        if(StringUtils.isEmpty(config.getUserName()))
+        {
+            return error("昵称不能为空");
+        }
+
+        if(StringUtils.isEmpty(config.getDepartmentId()))
+        {
+            return error("部门不能为空");
+        }
+
+        config.setUserType("2");
+
+        SysUser user=IUserService.selectData(null,config.getPhonenumber(),null);
+        if (user != null)
+        {
+            user.setPassword(config.getPassword());
+            user.setDepartmentId(config.getDepartmentId());
+            user.setUserName(config.getUserName());
+            user.setPhonenumber(config.getPhonenumber());
+            user.setLoginName(config.getLoginName());
+            user.setMasterIds(config.getMasterIds());
+            //是否是部门领导(1是  2不是)
+            if(StringUtils.equals("1",config.getIsDivisionHead()))
+            {
+                user.setRoleIds("13");
+                if(StringUtils.isEmpty(config.getDataPermission())) {
+                    user.setDataPermission(config.getMoreDepartmentIds());
+                }
+            }
+            else
+            {
+                if(StringUtils.isEmpty(config.getDataPermission())) {
+                    user.setDataPermission(config.getDepartmentId());
+                }
+                user.setRoleIds("2");
+            }
+            user.setUserType("2");
+            user.setIsDivisionHead(config.getIsDivisionHead());
+            user.setStatus(config.getStatus());
+            user.setUpdateTime(LocalDateTime.now());
+            user.setDepartmentIds(config.getDepartmentIds());
+            user.setDepartmentIdStr(config.getDepartmentIdStr());
+            user.setMoreDepartmentIds(config.getMoreDepartmentIds());
+            user.setMattersIds(config.getMattersIds());
+            user.setMasterNames(config.getMasterNames());
+            user.setMattersNames(config.getMattersNames());
+            if (config.getMoreDepartmentIds()!=null&&config.getMoreDepartmentIds().indexOf(",")>0)
+                user.setDataPermission(config.getMoreDepartmentIds().substring(config.getMoreDepartmentIds().indexOf(",")+1));
+            //提示用户名或密码错误
+            return toAjax(IUserService.updateConfig(user));
+        }
+        //是否是部门领导(1是  2不是)
+        if(StringUtils.equals("1",config.getIsDivisionHead()))
+        {
+            config.setRoleIds("13");
+            if(StringUtils.isEmpty(config.getDataPermission())) {
+                config.setDataPermission(config.getMoreDepartmentIds());
+            }
+        }
+        else
+        {
+            if(StringUtils.isEmpty(config.getDataPermission())) {
+                config.setDataPermission(config.getDepartmentId());
+            }
+            config.setRoleIds("2");
+        }
+        config.setCreateBy(sysUser.getUserId());
+        config.setCreateTime(LocalDateTime.now());
+        config.setUpdateTime(LocalDateTime.now());
+        config.setUserId(Snowflake.getId()+"");
+        if (config.getMoreDepartmentIds()!=null&&config.getMoreDepartmentIds().indexOf(",")>0)
+            config.setDataPermission(config.getMoreDepartmentIds().substring(config.getMoreDepartmentIds().indexOf(",")+1));
+        config.setIsDivisionHead(config.getIsDivisionHead());
+        return toAjax(IUserService.insertConfig(config));
+    }
+
+    /**
+     * 更新导办用户
+     *
+     * @param config 参数配置信息
+     * @return 结果
+     */
+    @ApiOperation("修改导办用户接口")
+    @PostMapping("/update")
+    @Authorization
+    public ResultData updateConfig(@RequestBody SysUser config)
+    {
+        if(config.getUserId()==null)
+        {
+            return error("userId不能为空");
+        }
+
+        if(StringUtils.isEmpty(config.getPhonenumber()))
+        {
+            return error("手机号不能为空");
+        }
+
+
+        if(StringUtils.isEmpty(config.getLoginName()))
+        {
+            return error("账户不能为空");
+        }
+
+        config.setUserType("2");
+
+        //是否是部门领导(1是  2不是)
+        if(StringUtils.equals("1",config.getIsDivisionHead()))
+        {
+            if (config.getMoreDepartmentIds()!=null&&config.getMoreDepartmentIds().indexOf(",")>0)
+                config.setDataPermission(config.getMoreDepartmentIds().substring(config.getMoreDepartmentIds().indexOf(",")+1));
+            else
+            {
+                config.setDataPermission("0");
+            }
+
+             config.setRoleIds("13");
+        }
+        else
+        {
+            if(StringUtils.isEmpty(config.getDataPermission())) {
+                config.setDataPermission(config.getDepartmentId());
+            }
+            config.setRoleIds("2");
+        }
+
+        SysUser user=IUserService.selectData(null,config.getPhonenumber(),null);
+        if (user != null && !(user.getUserId().equals(config.getUserId())))
+        {
+            //提示用户名或密码错误
+            return ResultData.error("该手机账户已存在!请更换手机号");
+        }
+        return toAjax(IUserService.updateConfig(config));
+    }
+
+    /**
+     * 删除导办用户接口
+     *
+     * @return 结果
+     */
+    @ApiOperation("删除导办用户接口")
+    @DeleteMapping("/delete/{userId}")
+    @Authorization
+    public ResultData deleteConfigById(@PathVariable("userId")  String userId)
+    {
+        if(StringUtils.isEmpty(userId))
+        {
+            return error("userId不能为空");
+        }
+
+        int a=iGuideRepairOrderService.countUser(userId,"2");
+        if(a>0)
+        {
+            return error("该人员有工单未处理完不能删除");
+        }
+        SysUser user=IUserService.selectData(userId,null,null);
+        user.setUserType("4");
+        user.setRoleIds("4");
+        user.setIsDivisionHead("2");
+        return toAjax(IUserService.updateConfig(user));
+    }
+
+    /**
+     * 修改导办用户空闲状态接口
+     *
+     * @param config 参数配置信息
+     * @return 结果
+     */
+    @ApiOperation("修改导办用户空闲状态接口")
+    @PostMapping("/idlestate")
+    @Authorization
+    public ResultData idleState(@RequestBody SysUser config)
+    {
+        if(config.getUserId()==null)
+        {
+            return error("userId不能为空");
+        }
+
+        if(StringUtils.isEmpty(config.getLeisureState()))
+        {
+            return error("空闲状态不能为空");
+        }
+
+        return toAjax(IUserService.updateConfig(config));
+    }
+
+    /**
+     * 根据部门id及分类id获取导办用户
+     *
+     * @return 结果
+     */
+    @ApiOperation("根据部门id及分类id获取导办用户")
+    @GetMapping("/selectListByDepartmentId")
+    @Authorization
+    public ResultData selectListByDepartmentId(@RequestParam("departmentId") String departmentId,
+                                               @RequestParam(value = "classifyId",required = false) String classifyId)
+    {
+        return  ResultData.success(IUserService.selectListByDepartmentId(departmentId,classifyId));
+    }
+
+    /**
+     * 查询导办用户列表(不分页)
+     * @return 结果
+     */
+    @ApiOperation(" 查询导办用户列表(不分页)")
+    @GetMapping("/queryList")
+    @Authorization
+    public  ResultData  queryList(@RequestParam(value = "keyWord",required = false) String keyWord){
+        return  ResultData.success(IUserService.queryList(2,keyWord));
+    }
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/controller/GuideRepairOrderController.java b/flower_city/src/main/java/com/dg/core/controller/GuideRepairOrderController.java
new file mode 100644
index 0000000..8270408
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/controller/GuideRepairOrderController.java
@@ -0,0 +1,489 @@
+package com.dg.core.controller;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dg.core.ResultData;
+import com.dg.core.annotation.Authorization;
+import com.dg.core.annotation.CurrentUser;
+import com.dg.core.db.gen.entity.*;
+import com.dg.core.db.manual.mapper.util.ConstantPropertiesUtil;
+import com.dg.core.service.IGuideEvolveService;
+import com.dg.core.service.IGuideRepairOrderService;
+import com.dg.core.service.IOrganizationChartService;
+import com.dg.core.util.PermissionUtil;
+import com.dg.core.util.SmsUtil;
+import com.dg.core.util.TableDataInfo;
+import com.dg.core.util.WxUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.util.Assert;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 工单管理
+ */
+@Api(tags = {"工单管理接口"})
+@RestController
+@RequestMapping("/guideRepairOrder")
+public class GuideRepairOrderController extends BaseController {
+
+    @Resource
+    private IGuideRepairOrderService iGuideRepairOrderService;
+
+    @Autowired
+    private IGuideEvolveService iGuideEvolveService;
+
+    @Autowired
+    IOrganizationChartService iOrganizationChartService;
+
+    @Resource(name = "stringRedisTemplate")
+    private StringRedisTemplate stringRedisTemplate;
+
+    private static String guideRepairOrderCompleteTemplateId = "7ZCHHii87rWPwVkdhZnvNiYbYi_Buq0NXO10cmUhAFk";
+
+
+    @Resource
+    SmsUtil smsUtil;
+
+
+    /**
+     * 提交导办订单
+     * @return
+     */
+    @ApiOperation(value = "提交导办订单",response = GuideRepairOrder.class)
+    @PostMapping("/addOrder")
+    @Authorization
+    public ResultData addOrder(@RequestBody GuideRepairOrder guideRepairOrder,@CurrentUser SysUser sysUser) {
+          guideRepairOrder.setSubmitUserId(sysUser.getUserId().toString());
+          guideRepairOrder.setSubmitUserPhone(sysUser.getPhonenumber());
+          guideRepairOrder.setSubmitUserPhone(sysUser.getPhonenumber());
+          guideRepairOrder.setSubmitType(2);
+          int i = iGuideRepairOrderService.addOrder(guideRepairOrder);
+          if (i>0){
+              iGuideEvolveService.updateGuid();
+            return ResultData.success();
+          }
+          else
+              return  ResultData.error("提交失败,请检查你是否有相同的咨询内容在处理中");
+    }
+
+
+    /**
+     * 获取详情
+     * @param Id
+     * @param orderNum
+     * @return
+     */
+    @ApiOperation("获取订单详情")
+    @GetMapping("/orderdata")
+    @Authorization
+    public ResultData selectConfigData(@RequestParam(value = "Id",required = false) String Id,
+                                       @RequestParam(value = "orderNum",required = false)  String orderNum,
+                                       @CurrentUser SysUser sysUser)
+    {
+        if(StringUtils.isEmpty(Id) && StringUtils.isEmpty(orderNum))
+        {
+            return ResultData.error("id或者订单号不能都为空");
+        }
+
+        GuideRepairOrder order=iGuideRepairOrderService.selectConfigData(Id,orderNum);
+        order.setGuideEvolveEntities(iGuideEvolveService.selectConfigList(Id,sysUser));
+
+        return ResultData.success(order);
+    }
+
+
+    /**
+     * 分配人员
+     * @param order
+     * @return
+     */
+    @ApiOperation("分配人员")
+    @PostMapping("/allocation")
+    @Authorization
+    public ResultData allocation(@RequestBody GuideRepairOrder order, @CurrentUser SysUser sysUser)
+    {
+        if(order==null)
+        {
+            return ResultData.error("参数不能为空");
+        }
+
+        if(StringUtils.isEmpty(order.getGuideDepartmentId()))
+        {
+            return ResultData.error("导办部门id不能为空");
+        }
+
+        if(StringUtils.isEmpty(order.getGuideUserId()))
+        {
+            return ResultData.error("导办人员id不能为空");
+        }
+
+
+
+        //已分配
+        order.setState("2");
+
+        //新增分配记录
+        GuideEvolveEntity entity=new GuideEvolveEntity();
+        entity.setCreateTime(LocalDateTime.now());
+        entity.setUpdateTime(LocalDateTime.now());
+        entity.setState("11");
+        entity.setDepartmentalId(order.getGuideDepartmentId());
+        entity.setToUserId(order.getGuideUserId());
+        entity.setFromUserId(sysUser.getUserId().toString());
+        entity.setFromDepartmentalId(sysUser.getDepartmentId());
+        entity.setGuideId(order.getId().toString());
+        iGuideRepairOrderService.updateSysUserOrderNum(entity);
+        iGuideEvolveService.insertConfig(entity);
+        order=iGuideRepairOrderService.setTimeoutTim(order);
+        return toAjax(iGuideRepairOrderService.updateConfig(order));
+    }
+
+
+    /**
+     * 转派人员
+     * @param order
+     * @return
+     */
+    @ApiOperation("转派人员")
+    @PostMapping("/redeploy")
+    @Authorization
+    public ResultData redeploy(@RequestBody GuideRepairOrder order, @CurrentUser SysUser sysUser)
+    {
+        if(order==null)
+        {
+            return ResultData.error("参数不能为空");
+        }
+
+        if(StringUtils.isEmpty(order.getGuideDepartmentId()))
+        {
+            return ResultData.error("导办部门id不能为空");
+        }
+
+        if(StringUtils.isEmpty(order.getGuideUserId()))
+        {
+            return ResultData.error("导办人员id不能为空");
+        }
+
+        //已分配
+        order.setState("2");
+
+        //新增转派记录
+        GuideEvolveEntity entity=new GuideEvolveEntity();
+        entity.setCreateTime(LocalDateTime.now());
+        entity.setUpdateTime(LocalDateTime.now());
+        entity.setState("10");
+        entity.setDepartmentalId(order.getGuideDepartmentId());
+        entity.setToUserId(order.getGuideUserId());
+        entity.setFromUserId(sysUser.getUserId()+"");
+        entity.setFromDepartmentalId(sysUser.getDepartmentId());
+        entity.setGuideId(order.getId().toString());
+
+        iGuideEvolveService.insertConfig(entity);
+        iGuideRepairOrderService.updateSysUserOrderNum(entity);
+
+        return toAjax(iGuideRepairOrderService.updateConfig(order));
+    }
+
+
+
+    /**
+     * 去处理
+     * @param entity
+     * @return
+     */
+    @ApiOperation("去处理")
+    @PostMapping("/dispose")
+    @Authorization
+    public ResultData dispose(@RequestBody GuideEvolveEntity entity, @CurrentUser SysUser sysUser)
+    {
+        if(entity==null)
+        {
+            return ResultData.error("参数不能为空");
+        }
+
+        if(StringUtils.isEmpty(entity.getGuideId()))
+        {
+            return ResultData.error("工单id不能为空");
+        }
+
+        GuideRepairOrder order=iGuideRepairOrderService.selectConfigData(entity.getGuideId(),"");
+        if(order==null)
+        {
+            return ResultData.error("该工单不存在!");
+        }
+
+        if(StringUtils.equals(order.getState(),"3"))
+        {
+            return ResultData.error("该工单已办结!");
+        }
+        if(StringUtils.equals(entity.getState(),"2")){//如果用户选择未解决则状态改为待办
+            order.setState("2");
+            entity.setState("9");
+        }
+        else if(StringUtils.equals(entity.getState(),"4")){
+            //待评价
+            if (order.getSubmitType().equals(1))//小程序提交
+            {
+                WxUtil wxUtil=new WxUtil();
+                String accessToken="0";
+                try {
+                    accessToken= stringRedisTemplate.boundValueOps("access_token:access_token:" + ConstantPropertiesUtil.WX_OPEN_APP_ID).get();
+                } catch (Exception e) {
+                    throw new RuntimeException(e);
+                }
+                SysUser submitUser = iGuideRepairOrderService.getSubmitUser(order);
+                wxUtil.sendGuideRepairOrderComplete(submitUser.getOpenid(),accessToken,guideRepairOrderCompleteTemplateId,entity);
+                smsUtil.sendSmsCompleteNew(order.getConsultUserPhone(),order.getMatterName());
+            }
+            else if (order.getSubmitType().equals(2)){
+                smsUtil.sendSmsCompleteNew(order.getConsultUserPhone(),order.getMatterName());
+            }
+            order.setState("4");
+            entity.setState("7");
+        }
+        //新增已办结记录
+        entity.setCreateTime(LocalDateTime.now());
+        entity.setUpdateTime(LocalDateTime.now());
+        entity.setFromDepartmentalId(sysUser.getDepartmentId());
+        entity.setFromUserId(sysUser.getUserId()+"");
+        entity.setGuideId(order.getId().toString());
+        iGuideEvolveService.insertConfig(entity);
+        iGuideRepairOrderService.updateSysUserOrderNum(entity);
+        return toAjax(iGuideRepairOrderService.updateConfig(order));
+    }
+
+
+    /**
+     * 取消导办工单
+     * @param entity
+     * @return
+     */
+    @ApiOperation("取消导办工单")
+    @PostMapping("/cancel")
+    @Authorization
+    public ResultData cancel(@RequestBody GuideEvolveEntity entity, @CurrentUser SysUser sysUser)
+    {
+        if(entity==null)
+        {
+            return ResultData.error("参数不能为空");
+        }
+
+        if(StringUtils.isEmpty(entity.getGuideId()))
+        {
+            return ResultData.error("工单id不能为空");
+        }
+
+        GuideRepairOrder order=iGuideRepairOrderService.selectConfigData(entity.getGuideId(),"");
+        if(order==null)
+        {
+            return ResultData.error("该工单不存在!");
+        }
+
+        if(!StringUtils.equals(order.getState(),"1"))
+        {
+            return ResultData.error("该工单不能取消!");
+        }
+        //取消状态
+        order.setState("5");
+
+        //新增已取消记录
+        entity.setCreateTime(LocalDateTime.now());
+        entity.setUpdateTime(LocalDateTime.now());
+        entity.setState("5");
+        entity.setFromDepartmentalId(sysUser.getDepartmentId());
+        entity.setFromUserId(sysUser.getUserId()+"");
+        entity.setGuideId(order.getId().toString());
+        iGuideEvolveService.insertConfig(entity);
+        return toAjax(iGuideRepairOrderService.updateConfig(order));
+    }
+
+
+
+    /**
+     * 工单评价
+     * @param entity
+     * @return
+     */
+    @ApiOperation("工单评价")
+    @PostMapping("/evaluate")
+    @Authorization
+    public ResultData evaluate(@RequestBody GuideRepairOrder entity, @CurrentUser SysUser sysUser)
+    {
+        if(entity==null)
+        {
+            return ResultData.error("参数不能为空");
+        }
+
+        if(entity.getId()<=0)
+        {
+            return ResultData.error("工单id不能为空");
+        }
+
+        if(StringUtils.isEmpty(entity.getEvaluateState()))
+        {
+            return ResultData.error("满意程度不能为空!");
+        }
+        //已办结
+        entity.setState("3");
+        //新增已办结记录
+        GuideEvolveEntity guideEvolveEntity=new GuideEvolveEntity();
+        guideEvolveEntity.setCreateTime(LocalDateTime.now());
+        guideEvolveEntity.setUpdateTime(LocalDateTime.now());
+        guideEvolveEntity.setState("13");
+        guideEvolveEntity.setFromDepartmentalId(sysUser.getDepartmentId());
+        guideEvolveEntity.setFromUserId(sysUser.getUserId()+"");
+        guideEvolveEntity.setGuideId(entity.getId().toString());
+        int i = iGuideRepairOrderService.updateConfig(entity);
+        if (i>0)
+            return toAjax( iGuideEvolveService.insertConfig(guideEvolveEntity));
+        else
+            return ResultData.error();
+    }
+
+    /**
+     * 获取个人中心工单数据
+     * @param sysUser 当前登录人员信息
+     * @return
+     */
+    @ApiOperation(value = "获取个人中心工单数据",response = GuideRepairOrder.class)
+    @GetMapping("/personalCenter")
+    @Authorization
+    public ResultData selectBySubmitId(@CurrentUser SysUser sysUser){
+        return ResultData.success(iGuideRepairOrderService.selectBySubmitId(sysUser.getUserId().toString()));
+    }
+
+
+    /**
+     * 获取工单列表(分页)
+     * @param matterName
+     * @return
+     */
+    @ApiOperation(value = "获取工单列表(分页)",response = GuideRepairOrder.class)
+    @GetMapping("/getList")
+    @Authorization
+    public TableDataInfo selectConfigList(@RequestParam(value = "pageNum",required = false) Integer pageNum,
+                                          @RequestParam(value = "pageSize",required = false) Integer pageSize,
+                                          @RequestParam(value = "matterName",required = false) String matterName,
+                                          @RequestParam(value = "status",required = false) String status,
+                                          @RequestParam(value = "createTimeStartTime",required = false) String createTimeStartTime,
+                                          @RequestParam(value = "createTimeTimeEndTime",required = false) String createTimeTimeEndTime,
+                                          @RequestParam(value = "classifyId",required = false)String  classifyId,
+                                          @CurrentUser SysUser sysUser)
+    {
+        Assert.notNull(pageNum, "pageNum 不能为空");
+        Assert.notNull(pageSize, "pageSize 不能为空");
+        Page<GuideRepairOrder> pageParam = new Page<>(pageNum,pageSize);
+
+        List<String> ids=null;
+        String userId=null;
+        if( StringUtils.equals("2",sysUser.getRoleIds()))
+        {
+            if(StringUtils.equals("1",sysUser.getIsDivisionHead()))
+            {
+                ids=PermissionUtil.getPermission(sysUser,iOrganizationChartService);
+            }
+            else
+            {
+                userId=sysUser.getUserId()+"";
+                ids=new ArrayList<>();
+                ids.add(sysUser.getDepartmentId());
+            }
+        }
+        else
+        {
+            ids=PermissionUtil.getPermission(sysUser,iOrganizationChartService);
+        }
+
+        List<GuideRepairOrder> list = iGuideRepairOrderService.selectConfigList(pageParam,pageSize,
+                matterName,ids,status,userId,createTimeStartTime,createTimeTimeEndTime,classifyId);
+        int num=iGuideRepairOrderService.countConfigList(matterName,ids,status,userId);
+        return getDataTable(list,num);
+    }
+
+
+    @ApiOperation("导办工单统计不同状态工单数")
+    @GetMapping("/getWorkOrder")
+    @Authorization
+    public ResultData getWorkOrder(@CurrentUser SysUser sysUser)
+    {
+        WorkOrder workOrder=new WorkOrder();
+        List<String> ids=null;
+        String userId=null;
+        if( StringUtils.equals("2",sysUser.getRoleIds()))
+        {
+            if(StringUtils.equals("1",sysUser.getIsDivisionHead()))
+            {
+                ids=PermissionUtil.getPermission(sysUser,iOrganizationChartService);
+            }
+            else
+            {
+                userId=sysUser.getUserId()+"";
+                ids=new ArrayList<>();
+                ids.add(sysUser.getDepartmentId());
+            }
+        }
+        else
+        {
+            ids=PermissionUtil.getPermission(sysUser,iOrganizationChartService);
+        }
+
+        //状态(1待分配  2 待办结 3 已办结 4 待评价 5 已取消  )
+        workOrder.setAllNum(iGuideRepairOrderService.countStatisticsNum("",ids,null,null,null,null,null,userId));
+        workOrder.setWaitDistribution(iGuideRepairOrderService.countStatisticsNum("1",ids,null,null,null,null,null,userId));
+        workOrder.setWaitDealWith(iGuideRepairOrderService.countStatisticsNum("2",ids,null,null,null,null,null,userId));
+        workOrder.setHaveDealWith(iGuideRepairOrderService.countStatisticsNum("3",ids,null,null,null,null,null,userId));
+        workOrder.setRemainEvaluated(iGuideRepairOrderService.countStatisticsNum("4",ids,null,null,null,null,null,userId));
+        workOrder.setCanceled(iGuideRepairOrderService.countStatisticsNum("5",ids,null,null,null,null,null,userId));
+
+        //服务状态(1.已解决 2.未解决)
+        workOrder.setUnsolved(iGuideRepairOrderService.countStatisticsNum(null,ids,null,null,null,null,"2",userId));
+        workOrder.setResolved(iGuideRepairOrderService.countStatisticsNum(null,ids,null,null,null,null,"1",userId));
+
+        //是否超时 (1 未超时   2已超时) 超时未办结
+        workOrder.setOvertime(iGuideRepairOrderService.countStatisticsNum(null,ids,null,"2",null,null,null,userId));
+        workOrder.setOvertimeWaitDealWith(iGuideRepairOrderService.countStatisticsNum("2",ids,null,"2",null,null,null,userId));
+        return ResultData.success(workOrder);
+    }
+
+
+    /**
+     * 删除工单
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "删除工单",response = GuideRepairOrder.class)
+    @DeleteMapping("/delete/{id}")
+    @Authorization
+    public ResultData deleteConfigById(@PathVariable("id") String id,@CurrentUser SysUser sysUser)
+    {
+        if(StringUtils.equals("1",sysUser.getUserType()) || StringUtils.equals("1",sysUser.getIsDivisionHead()) )
+        {
+            return toAjax(iGuideRepairOrderService.deleteConfigById(id));
+        }
+        return error("只有超管或者部门领导才能删除");
+    }
+
+
+    /**
+     * 删除评论
+     * @return
+     */
+    @ApiOperation(value = "删除评论",response = GuideRepairOrder.class)
+    @GetMapping("/deleteComment")
+    @Authorization
+    public  ResultData deleteComment(@RequestParam(value = "id",required = false) Integer id,@CurrentUser  SysUser sysUser){
+        return  iGuideRepairOrderService.deleteComment(id,sysUser);
+    }
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/controller/HomeStatisticsController.java b/flower_city/src/main/java/com/dg/core/controller/HomeStatisticsController.java
new file mode 100644
index 0000000..a1a61b8
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/controller/HomeStatisticsController.java
@@ -0,0 +1,680 @@
+package com.dg.core.controller;
+
+import com.dg.core.ResultData;
+import com.dg.core.db.gen.entity.*;
+import com.dg.core.db.manual.pojo.AppletUserCount;
+import com.dg.core.service.*;
+import com.dg.core.util.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+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 java.util.*;
+
+@Api(tags = {"首页统计接口"})
+@RestController
+@RequestMapping("/Home")
+public class HomeStatisticsController extends BaseController
+{
+    //导办工单接口
+    @Autowired
+    IGuideRepairOrderService iGuideRepairOrderService;
+
+    //导办进展
+    @Autowired
+    IGuideEvolveService iGuideEvolveService;
+
+
+    @Autowired
+    HomeStatisticsService homeStatisticsService;
+
+
+    @Autowired
+    com.dg.core.service.ISysUserService IUserService;
+
+
+    @Autowired
+    IOrganizationChartService iOrganizationChartService;
+
+
+    @Autowired
+    IAreaCodeService iAreaCodeService;
+
+    @Autowired
+    private ISysUserRecordService iSysUserRecordService;
+
+    @Autowired(required = true)
+    IAutomessageSmartConsultingService iAutomessageSmartConsultingService;
+
+
+    @ApiOperation("首页统计不同状态工单数")
+    @GetMapping("/getWorkOrder")
+    public ResultData<WorkOrder> getWorkOrder()
+    {
+        WorkOrder workOrder=new WorkOrder();
+        //状态(1待分配  2 待办结 3 已办结 4 待评价 5 已取消)
+        workOrder.setAllNum(iGuideRepairOrderService.countStatisticsNum("",null,null,null,null,null,null,null));
+        workOrder.setWaitDistribution(iGuideRepairOrderService.countStatisticsNum("1",null,null,null,null,null,null,null));
+        workOrder.setWaitDealWith(iGuideRepairOrderService.countStatisticsNum("2",null,null,null,null,null,null,null));
+        workOrder.setHaveDealWith(iGuideRepairOrderService.countStatisticsNum("3",null,null,null,null,null,null,null));
+        workOrder.setRemainEvaluated(iGuideRepairOrderService.countStatisticsNum("4",null,null,null,null,null,null,null));
+        workOrder.setCanceled(iGuideRepairOrderService.countStatisticsNum("5",null,null,null,null,null,null,null));
+        // //服务状态(1.已解决 2.未解决)
+        workOrder.setUnsolved(iGuideRepairOrderService.countStatisticsNum(null,null,null,null,null,null,"2",null));
+        workOrder.setResolved(iGuideRepairOrderService.countStatisticsNum(null,null,null,null,null,null,"1",null));
+
+        //是否超时 (1 未超时   2已超时) 超时未办结
+        workOrder.setOvertime(iGuideRepairOrderService.countStatisticsNum(null,null,null,"2",null,null,null,null));
+//        超时未办结
+        workOrder.setOvertimeWaitDealWith(iGuideRepairOrderService.countStatisticsNum("2",null,null,"2",null,null,null,null));
+        return ResultData.success(workOrder);
+    }
+
+
+    @ApiOperation("首页统计不同时间段的工单数量")
+    @GetMapping("/getTimeWorkOrder")
+    public ResultData<TimeWorkOrder> getTimeWorkOrder()
+    {
+        //1 今天   2昨天   3本月   4本年度
+        //累计全部 本年 本月 今日 昨日
+        TimeWorkOrder timeWorkOrder=new TimeWorkOrder();
+        timeWorkOrder.setAllNum(iGuideRepairOrderService.countStatisticsNum(null,null,null,null,null,null,null,null));
+        timeWorkOrder.setYearNum(iGuideRepairOrderService.countStatisticsNum(null,null,"4",null,null,null,null,null));
+        timeWorkOrder.setMonthNum(iGuideRepairOrderService.countStatisticsNum(null,null,"3",null,null,null,null,null));
+        timeWorkOrder.setTodayNum(iGuideRepairOrderService.countStatisticsNum(null,null,"1",null,null,null,null,null));
+        timeWorkOrder.setYesterdayNum(iGuideRepairOrderService.countStatisticsNum(null,null,"2",null,null,null,null,null));
+        return ResultData.success(timeWorkOrder);
+    }
+
+
+    @ApiOperation("根据选择的时间段 筛选导办工单数 timeType:1 本年度 15 近15天的   30 近30天的")
+    @GetMapping("/getSelectionTimeOrder")
+    public ResultData<CountList> getSelectionTimeOrder(@RequestParam("timeType") Integer timeType)
+    {
+        if(timeType<1)
+        {
+            return ResultData.error("请输入时间");
+        }
+
+        if(timeType==1)
+        {
+            Calendar calendar=Calendar.getInstance();
+            timeType=calendar.get(Calendar.DAY_OF_YEAR);
+        }
+//        System.out.println(timeType);
+        //1 本年度 15 近15天的   30 近30天的
+        List<CountListNum> listOne=iGuideRepairOrderService.countListNum("2",null,timeType);
+        List<CountListNum> listTwo=iGuideRepairOrderService.countListNum("3",null,timeType);
+        CountList countList=new CountList();
+        countList.setWaitDealWithList(listOne);
+        countList.setHaveDealWith(listTwo);
+        return ResultData.success(countList);
+    }
+
+
+
+    @ApiOperation("获取效率比值")
+    @GetMapping("/getEfficiency")
+    public ResultData<EfficiencyEntity> getEfficiency()
+    {
+        EfficiencyEntity entity=new EfficiencyEntity();
+        //总工单数
+        int allNum=iGuideRepairOrderService.countStatisticsNum("",null,null,null,null,null,null,null);
+
+        java.text.DecimalFormat weekDf=new java.text.DecimalFormat("##.##%");//传入格式模板
+
+        int bj=iGuideRepairOrderService.countStatisticsNum("3",null,null,null,null,null,null,null);
+        if(bj!=0)
+        {
+            //        好评率=评价为满意的导办工单数量/已办结状态工单数量
+            String goodReputationEfficiency=weekDf.format((float)(iGuideRepairOrderService.countStatisticsNum(null,null,null,null,"1",null,null,null)
+                    /(float)bj));
+            entity.setGoodReputationEfficiency(goodReputationEfficiency);
+
+            //      解决率=已解决状态的导办工单数量/已办结状态工单数量
+            String resolveEfficiency=weekDf.format((float)(iGuideRepairOrderService.countStatisticsNum(null,null,null,null,null,null,"1",null)
+                    /(float)bj));
+            entity.setResolveEfficiency(resolveEfficiency);
+
+            if(allNum!=0)
+            {
+//              办结率=待评价+已办结状态的导办工单数量/总工单数量
+                String workEfficiency=weekDf.format((float)((iGuideRepairOrderService.countStatisticsNum("4",null,null,null,null,null,null,null)
+                        +bj)/(float)allNum));
+                entity.setWorkEfficiency(workEfficiency);
+            }
+        }
+
+        int cs=iGuideRepairOrderService.countStatisticsNum(null,null,null,"2",null,null,null,null);
+        if(cs!=0)
+        {
+            //        超时办结率=超时状态下的待评价+已办结状态的导办工单数量/超时状态的导办工单数量
+            String timeoutEfficiency=weekDf.format((float)((iGuideRepairOrderService.countStatisticsNum("4",null,null,"2",null,null,null,null)
+                    +iGuideRepairOrderService.countStatisticsNum("3",null,null,"2",null,null,null,null))
+                    /(float)cs));
+            entity.setTimeoutEfficiency(timeoutEfficiency);
+
+        }
+
+        if(allNum!=0)
+        {
+            //        回复率=最新进展里大于0条回复的导办工单数量/总工单数量
+            //状态(1待分配  2 待办结 3 已办结 4 待评价 5 已取消 6未解决  7已解决  8 系统自动分配 9 回复   10转派    11手动分配)
+
+            String num=(homeStatisticsService.reversionRate("9",null));
+            if(!StringUtils.isEmpty(num))
+            {
+                String reversionRate=weekDf.format(Float.valueOf(num)/(float)allNum);
+                entity.setReversionRate(reversionRate);
+            }
+
+
+        }
+
+        return ResultData.success(entity);
+    }
+
+    @ApiOperation("工单  办事指南饼状图数据")
+    @GetMapping("/getPieChart")
+    public ResultData<PieChartAll> getPieChart()
+    {
+        PieChartAll pieChartAll=new PieChartAll();
+        pieChartAll.setWorkOrderNum(iGuideRepairOrderService.countStatisticsNum("",null,null,null,null,null,null,null)+"");
+        pieChartAll.setFingerpostNum(homeStatisticsService.countStatisticsNum(null,null)+"");
+        List<PieChart> workOrderList=new ArrayList<>();
+        List<PieChart> fingerpostList=new ArrayList<>();
+        List<ClassifyAdministration> oneIds=homeStatisticsService.getClassify(null,"1");
+        for (ClassifyAdministration oneClassify:oneIds)
+        {
+            PieChart workOrder=new PieChart();
+            PieChart fingerpost=new PieChart();
+            workOrder.setName(oneClassify.getClassifyName());
+            fingerpost.setName(oneClassify.getClassifyName());
+            List<ClassifyAdministration> twoIds = homeStatisticsService.getClassify(oneClassify.getId()+"",null);
+
+            List clasIds=new ArrayList();
+
+            clasIds.add(oneClassify.getId());
+            for (ClassifyAdministration classify:twoIds)
+            {
+                clasIds.add(classify.getId());
+            }
+            int workOrderNum=0;
+            int fingerpostNum=0;
+            if(clasIds.size()>0)
+            {
+                workOrderNum=iGuideRepairOrderService.countStatisticsNum(null,null,null,null,null,clasIds,null,null);
+                fingerpostNum=homeStatisticsService.countStatisticsNum(clasIds,null);
+            }
+            workOrder.setNum(workOrderNum+"");
+            fingerpost.setNum(fingerpostNum+"");
+            workOrderList.add(workOrder);
+            fingerpostList.add(fingerpost);
+        }
+
+        pieChartAll.setWorkOrderList(workOrderList);
+        pieChartAll.setFingerpostList(fingerpostList);
+
+        return ResultData.success(pieChartAll);
+    }
+
+
+
+
+
+    @ApiOperation("组织排行榜  type 1 安评价   2 按办结量")
+    @GetMapping("/getOrganization")
+    public TableDataInfo<OrganizationEntity> getOrganization(@RequestParam("type") String type)
+    {
+        List<OrganizationEntity> guidePlates=homeStatisticsService.getDepartment();
+
+        if(StringUtils.equals("1",type))
+        {
+            for (OrganizationEntity bean:guidePlates)
+            {
+                bean.setNum(0+"");
+                List<String> ids=iOrganizationChartService.getIds(bean.getId()+"");
+
+                //总评分
+                String scoreNum=homeStatisticsService.organizationScore(ids)+"";
+                int score=0;
+                if(!StringUtils.isEmpty(scoreNum) &&  !StringUtils.equals("null",scoreNum))
+                {
+                    score=Integer.valueOf(scoreNum);
+                }
+
+                //总数量
+                int allNum=homeStatisticsService.organizationNum(ids);
+
+                if(allNum>0 && score>0)
+                {
+                    java.text.DecimalFormat weekDf=new java.text.DecimalFormat("##.#");//传入格式模板
+                    String workEfficiency=weekDf.format((float)score/(float)allNum);
+                    bean.setNum(workEfficiency);
+                }
+            }
+        }
+        else
+        {
+            for (OrganizationEntity bean:guidePlates)
+            {
+                bean.setNum(0+"");
+                List<String> ids=iOrganizationChartService.getIds(bean.getId()+"");
+                //总数量
+                int allNum=homeStatisticsService.organizationNum(ids);
+                if(allNum>0)
+                {
+                    bean.setNum(allNum+"");
+                }
+            }
+        }
+
+        OrganizationEntity entity=null;
+        for(int i = 0 ;i< guidePlates.size() -1; i++) {
+            for (int j = 0; j < guidePlates.size() - 1 - i; j++) {
+
+                if(Float.valueOf(guidePlates.get(j).getNum())>Float.valueOf(guidePlates.get(j+1).getNum()))
+                {
+                    entity=guidePlates.get(j);
+                    guidePlates.set(j,guidePlates.get(j+1));
+                    guidePlates.set(j+1,entity);
+                }
+            }
+        }
+
+        Collections.reverse(guidePlates);
+
+        return getDataTable(guidePlates,guidePlates.size());
+    }
+
+
+
+    @ApiOperation("导办人员排行榜 type 1 安评价   2 按办结量 3 按超时")
+    @GetMapping("/getGuidePlate")
+    public TableDataInfo<GuidePlate> getGuidePlate(@RequestParam("type") String type)
+    {
+        int allNum=homeStatisticsService.staffNum(null);
+
+        if(StringUtils.equals("1",type))
+        {
+            //安评价
+            return getDataTable(homeStatisticsService.score(null),allNum);
+        }
+        else if(StringUtils.equals("2",type))
+        {
+            //2 按办结量
+            return getDataTable(homeStatisticsService.guidePlatePeople(null),allNum);
+        }
+        else
+        {
+            //3 按超时
+            return getDataTable(homeStatisticsService.timeout(null),allNum);
+        }
+    }
+
+
+    @ApiOperation("办事指南排行榜 type 1 按浏览量   2 按办结量")
+    @GetMapping("/getGuidance")
+    public TableDataInfo<Guidance> getGuidance(@RequestParam("type") String type)
+    {
+        int allNum=homeStatisticsService.countWork(null);
+        if(StringUtils.equals("1",type))
+        {
+            return getDataTable(homeStatisticsService.guidanceBrowse(null),allNum);
+        }
+        else
+        {
+            return getDataTable(homeStatisticsService.guidanceTransaction(null),allNum);
+        }
+
+    }
+
+
+
+    @ApiOperation("导办工单按区域统计")
+    @GetMapping("/getRangeStatistics")
+    public TableDataInfo<RangeStatistics> getRangeStatistics()
+    {
+        List<AreaCode2022> code2022s=iAreaCodeService.getListByPCode("510400000000");
+
+        List<RangeStatistics> rangeStatistics=new ArrayList<>();
+
+        for (AreaCode2022 bean:code2022s)
+        {
+            RangeStatistics range=new RangeStatistics();
+            range.setName(bean.getName());
+
+            List<String> ids;
+
+            if(bean.getCode()==510401000000L)
+            {
+                ids=homeStatisticsService.countId("");
+            }
+            else
+            {
+                ids=homeStatisticsService.countId(bean.getCode()+"");
+            }
+            int num=0;
+            if(ids!=null&&ids.size()>0)
+            {
+                num=homeStatisticsService.rangeStatistics(ids);
+            }
+            range.setNum(num+"");
+            rangeStatistics.add(range);
+        }
+
+
+        return getDataTable(rangeStatistics);
+    }
+
+
+    /**
+     * 小程序用户访问量统计1.累计访问量2.本年访问量 3.本月访问量 4.今日访问量 5.昨日访问
+     * @return
+     */
+    @ApiOperation(value = "小程序用户访问量统计1.累计访问量2.本年访问量 3.本月访问量 4.今日访问量 5.昨日访问",response = AppletUserCount.class)
+    @GetMapping("/selectUserRecordCount")
+    public ResultData selectUserRecordCount(){
+        return  iSysUserRecordService.selectUserRecordCount();
+    }
+
+    /**
+     * 小程序用户访问量统计1.近15天 2.近30天 3.近一年
+     * @return
+     */
+    @ApiOperation(value = "小程序用户访问量统计1.近15天 2.近30天 3.近一年",response = AppletUserCount.class)
+    @GetMapping("/selectByDateType")
+    public ResultData selectByDateType(@RequestParam("dateType") Integer dateType){
+        return  iSysUserRecordService.selectByDateType(dateType);
+    }
+
+
+
+
+    /***************************************************    部门数据统计  start   **********************************************************/
+
+
+    @ApiOperation("部门数据根据选择的时间段 筛选导办工单数 timeType:1 本年度 15 近15天的   30 近30天的")
+    @GetMapping("/department/getSelectionTimeOrder")
+    public ResultData<CountList> getDepartmentOrder(@RequestParam("timeType") Integer timeType,@RequestParam("ids") List<String> ids)
+    {
+        if(ids==null || ids.size()<1)
+        {
+            return  ResultData.success();
+        }
+
+        if(timeType<1)
+        {
+            return ResultData.error("请输入时间");
+        }
+
+        if(timeType==1)
+        {
+            Calendar calendar=Calendar.getInstance();
+            timeType=calendar.get(Calendar.DAY_OF_YEAR);
+        }
+//        System.out.println(timeType);
+        //1 本年度 15 近15天的   30 近30天的
+        List<CountListNum> listOne=iGuideRepairOrderService.countListNum("2",ids,timeType);
+        List<CountListNum> listTwo=iGuideRepairOrderService.countListNum("3",ids,timeType);
+        CountList countList=new CountList();
+        countList.setWaitDealWithList(listOne);
+        countList.setHaveDealWith(listTwo);
+        return ResultData.success(countList);
+    }
+
+    @ApiOperation("部门数据首页统计不同时间段的工单数量")
+    @GetMapping("/department/getTimeWorkOrder")
+    public ResultData<TimeWorkOrder> getDepartmentTimeWorkOrder(@RequestParam("ids") List<String> ids)
+    {
+        if(ids==null || ids.size()<1)
+        {
+            return  ResultData.success();
+        }
+
+
+        //1 今天   2昨天   3本月   4本年度
+        //累计全部 本年 本月 今日 昨日
+        TimeWorkOrder timeWorkOrder=new TimeWorkOrder();
+        timeWorkOrder.setAllNum(iGuideRepairOrderService.countStatisticsNum(null,ids,null,null,null,null,null,null));
+        timeWorkOrder.setYearNum(iGuideRepairOrderService.countStatisticsNum(null,ids,"4",null,null,null,null,null));
+        timeWorkOrder.setMonthNum(iGuideRepairOrderService.countStatisticsNum(null,ids,"3",null,null,null,null,null));
+        timeWorkOrder.setTodayNum(iGuideRepairOrderService.countStatisticsNum(null,ids,"1",null,null,null,null,null));
+        timeWorkOrder.setYesterdayNum(iGuideRepairOrderService.countStatisticsNum(null,ids,"2",null,null,null,null,null));
+        return ResultData.success(timeWorkOrder);
+    }
+
+
+    @ApiOperation("部门数据首页统计不同状态工单数")
+    @GetMapping("/department/getWorkOrder")
+    public ResultData<WorkOrder> getDepartmentWorkOrder(@RequestParam("ids") List<String> ids)
+    {
+        if(ids==null || ids.size()<1)
+        {
+            return  ResultData.success();
+        }
+        WorkOrder workOrder=new WorkOrder();
+        //状态(1待分配  2 待办结 3 已办结 4 待评价 5 已取消)
+        workOrder.setAllNum(iGuideRepairOrderService.countStatisticsNum("",ids,null,null,null,null,null,null));
+        workOrder.setWaitDistribution(iGuideRepairOrderService.countStatisticsNum("1",ids,null,null,null,null,null,null));
+        workOrder.setWaitDealWith(iGuideRepairOrderService.countStatisticsNum("2",ids,null,null,null,null,null,null));
+        workOrder.setHaveDealWith(iGuideRepairOrderService.countStatisticsNum("3",ids,null,null,null,null,null,null));
+        workOrder.setRemainEvaluated(iGuideRepairOrderService.countStatisticsNum("4",ids,null,null,null,null,null,null));
+        workOrder.setCanceled(iGuideRepairOrderService.countStatisticsNum("5",ids,null,null,null,null,null,null));
+        // //服务状态(1.已解决 2.未解决)
+        workOrder.setUnsolved(iGuideRepairOrderService.countStatisticsNum(null,ids,null,null,null,null,"2",null));
+        workOrder.setResolved(iGuideRepairOrderService.countStatisticsNum(null,ids,null,null,null,null,"1",null));
+
+        //是否超时 (1 未超时   2已超时) 超时未办结
+        workOrder.setOvertime(iGuideRepairOrderService.countStatisticsNum(null,ids,null,"2",null,null,null,null));
+//        超时未办结
+        workOrder.setOvertimeWaitDealWith(iGuideRepairOrderService.countStatisticsNum("2",ids,null,"2",null,null,null,null));
+        return ResultData.success(workOrder);
+    }
+
+    @ApiOperation("部门数据获取效率比值")
+    @GetMapping("/department/getEfficiency")
+    public ResultData<EfficiencyEntity> getDepartmentEfficiency(@RequestParam("ids") List<String> ids)
+    {
+
+        if(ids==null || ids.size()<1)
+        {
+            return  ResultData.success();
+        }
+
+        EfficiencyEntity entity=new EfficiencyEntity();
+        //总工单数
+        int allNum=iGuideRepairOrderService.countStatisticsNum("",ids,null,null,null,null,null,null);
+
+        java.text.DecimalFormat weekDf=new java.text.DecimalFormat("##.##%");//传入格式模板
+
+        int bj=iGuideRepairOrderService.countStatisticsNum("3",ids,null,null,null,null,null,null);
+        if(bj!=0)
+        {
+            //        好评率=评价为满意的导办工单数量/已办结状态工单数量
+            String goodReputationEfficiency=weekDf.format((float)(iGuideRepairOrderService.countStatisticsNum(null,ids,null,null,"1",null,null,null)
+                    /(float)bj));
+            entity.setGoodReputationEfficiency(goodReputationEfficiency);
+
+            //      解决率=已解决状态的导办工单数量/已办结状态工单数量
+            String resolveEfficiency=weekDf.format((float)(iGuideRepairOrderService.countStatisticsNum(null,ids,null,null,null,null,"1",null)
+                    /(float)bj));
+            entity.setResolveEfficiency(resolveEfficiency);
+
+            if(allNum!=0)
+            {
+//              办结率=待评价+已办结状态的导办工单数量/总工单数量
+                String workEfficiency=weekDf.format((float)((iGuideRepairOrderService.countStatisticsNum("4",ids,null,null,null,null,null,null)
+                        +bj)/(float)allNum));
+                entity.setWorkEfficiency(workEfficiency);
+            }
+        }
+
+        int cs=iGuideRepairOrderService.countStatisticsNum(null,ids,null,"2",null,null,null,null);
+        if(cs!=0)
+        {
+            //        超时办结率=超时状态下的待评价+已办结状态的导办工单数量/超时状态的导办工单数量
+            String timeoutEfficiency=weekDf.format((float)((iGuideRepairOrderService.countStatisticsNum("4",ids,null,"2",null,null,null,null)
+                    +iGuideRepairOrderService.countStatisticsNum("3",ids,null,"2",null,null,null,null))
+                    /(float)cs));
+            entity.setTimeoutEfficiency(timeoutEfficiency);
+
+        }
+
+        if(allNum!=0)
+        {
+            //        回复率=最新进展里大于0条回复的导办工单数量/总工单数量
+            //状态(1待分配  2 待办结 3 已办结 4 待评价 5 已取消 6未解决  7已解决  8 系统自动分配 9 回复   10转派    11手动分配)
+
+            String num=(homeStatisticsService.reversionRate("9",null));
+            if(!StringUtils.isEmpty(num))
+            {
+                String reversionRate=weekDf.format(Float.valueOf(num)/(float)allNum);
+                entity.setReversionRate(reversionRate);
+            }
+
+
+        }
+
+        return ResultData.success(entity);
+    }
+
+
+    @ApiOperation("部门数据 工单  办事指南饼状图数据")
+    @GetMapping("/department/getPieChart")
+    public ResultData<PieChartAll> getDepartmentPieChart(@RequestParam("ids") List<String> ids)
+    {
+        if(ids==null || ids.size()<1)
+        {
+            return  ResultData.success();
+        }
+
+        PieChartAll pieChartAll=new PieChartAll();
+        pieChartAll.setWorkOrderNum(iGuideRepairOrderService.countStatisticsNum("",ids,null,null,null,null,null,null)+"");
+        pieChartAll.setFingerpostNum(homeStatisticsService.countStatisticsNum(null,ids)+"");
+        List<PieChart> workOrderList=new ArrayList<>();
+        List<PieChart> fingerpostList=new ArrayList<>();
+        List<ClassifyAdministration> oneIds=homeStatisticsService.getClassify(null,"1");
+        for (ClassifyAdministration oneClassify:oneIds)
+        {
+            PieChart workOrder=new PieChart();
+            PieChart fingerpost=new PieChart();
+            workOrder.setName(oneClassify.getClassifyName());
+            fingerpost.setName(oneClassify.getClassifyName());
+            List<ClassifyAdministration> twoIds = homeStatisticsService.getClassify(oneClassify.getId()+"",null);
+
+            List clasIds=new ArrayList();
+
+            clasIds.add(oneClassify.getId());
+            for (ClassifyAdministration classify:twoIds)
+            {
+                clasIds.add(classify.getId());
+            }
+            int workOrderNum=0;
+            int fingerpostNum=0;
+            if(clasIds.size()>0)
+            {
+                workOrderNum=iGuideRepairOrderService.countStatisticsNum(null,ids,null,null,null,clasIds,null,null);
+                fingerpostNum=homeStatisticsService.countStatisticsNum(clasIds,ids);
+            }
+            workOrder.setNum(workOrderNum+"");
+            fingerpost.setNum(fingerpostNum+"");
+            workOrderList.add(workOrder);
+            fingerpostList.add(fingerpost);
+        }
+
+        pieChartAll.setWorkOrderList(workOrderList);
+        pieChartAll.setFingerpostList(fingerpostList);
+
+        return ResultData.success(pieChartAll);
+    }
+
+
+    @ApiOperation("部门数据导办人员排行榜 type 1 安评价   2按工单量  3按办结量  4 按未办结量 5 按超时")
+    @GetMapping("/department/getGuidePlate")
+    public TableDataInfo<GuidePlate> getDepartmentGuidePlate(@RequestParam("type") String type,@RequestParam("ids") List<String> ids)
+    {
+        if(ids==null || ids.size()<1)
+        {
+            return  getDataTable(new ArrayList<>());
+        }
+
+        int allNum=homeStatisticsService.staffNum(ids);
+
+        if(StringUtils.equals("1",type))
+        {
+            //安评价
+            return getDataTable(homeStatisticsService.score(ids),allNum);
+        }
+        else if(StringUtils.equals("2",type))
+        {
+            //2按工单量
+            return getDataTable(homeStatisticsService.workunit(ids),allNum);
+        }
+        else if(StringUtils.equals("3",type))
+        {
+            //3 按办结量
+            return getDataTable(homeStatisticsService.guidePlatePeople(ids),allNum);
+        }
+        else if(StringUtils.equals("4",type))
+        {
+            //4按未办结量
+            return getDataTable(homeStatisticsService.tosettled(ids),allNum);
+        }
+        else
+        {
+            //5 按超时
+            return getDataTable(homeStatisticsService.timeout(ids),allNum);
+        }
+
+    }
+
+
+    @ApiOperation("部门数据办事指南排行榜 type 1 按浏览量   2 按办结量")
+    @GetMapping("/department/getGuidance")
+    public TableDataInfo<Guidance> getDepartmentGuidance(@RequestParam("type") String type,@RequestParam("ids") List<String> ids)
+    {
+        if(ids==null || ids.size()<1)
+        {
+            return  getDataTable(new ArrayList<>());
+        }
+
+        int allNum=homeStatisticsService.countWork(ids);
+        if(StringUtils.equals("1",type))
+        {
+            return getDataTable(homeStatisticsService.guidanceBrowse(ids),allNum);
+        }
+        else
+        {
+            return getDataTable(homeStatisticsService.guidanceTransaction(ids),allNum);
+        }
+
+    }
+
+
+
+    /***************************************************    部门数据统计 end   **********************************************************/
+
+
+    /**
+     * 统计访问量
+     * @return
+     */
+    @ApiOperation("统计访问量")
+    @GetMapping("/countSmartConsulting")
+    public ResultData countSmartConsulting(){
+       return  ResultData.success(iAutomessageSmartConsultingService.countSmartConsulting()) ;
+    }
+
+
+
+
+
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/controller/KeywordController.java b/flower_city/src/main/java/com/dg/core/controller/KeywordController.java
new file mode 100644
index 0000000..85d365a
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/controller/KeywordController.java
@@ -0,0 +1,108 @@
+package com.dg.core.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dg.core.ResultData;
+import com.dg.core.annotation.Authorization;
+import com.dg.core.db.gen.entity.KeywordEntity;
+import com.dg.core.service.IKeywordService;
+import com.dg.core.util.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.Assert;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@Api(tags = {"关键词接口"})
+@RestController
+@RequestMapping("/keyword")
+public class KeywordController extends BaseController
+{
+    @Autowired(required = true)
+    IKeywordService iKeywordService;
+
+    /**
+     * 查询关键词列表
+     * @return
+     */
+    @ApiOperation("关键词列表接口")
+    @GetMapping("/getlist")
+    @Authorization
+    public TableDataInfo selectConfigList(@RequestParam(value = "pageNum",required = false) Integer pageNum,
+                                          @RequestParam(value = "pageSize",required = false) Integer pageSize)
+    {
+        Assert.notNull(pageNum, "pageNum can not be empty");
+        Assert.notNull(pageSize, "pageSize can not be empty");
+        Page<KeywordEntity> pageParam = new Page<>(pageNum,pageSize);
+        List<KeywordEntity> list = iKeywordService.selectConfigList(pageParam,pageSize);
+
+        int num=iKeywordService.countNum();
+        return getDataTable(list,num);
+    }
+
+    /**
+     * 查询详情
+     * @return
+     */
+    @ApiOperation("关键词详情接口")
+    @GetMapping("/getData")
+    @Authorization
+    public ResultData selectConfigData(@RequestParam(value = "id",required = false) String id,
+                                       @RequestParam(value = "name",required = false) String name)
+    {
+        return ResultData.success(iKeywordService.selectConfigData(id,name));
+    }
+
+
+    /**
+     * 添加关键词
+     * @return
+     */
+    @ApiOperation("关键词添加接口")
+    @PostMapping("/add")
+    @Authorization
+    public ResultData insertConfig(@RequestBody KeywordEntity entity)
+    {
+        KeywordEntity enti=iKeywordService.selectConfigData("",entity.getName());
+        if(enti==null)
+        {
+            if(iKeywordService.insertConfig(entity)>0)
+            {
+                enti=iKeywordService.selectConfigData("",entity.getName());
+                return ResultData.success(enti);
+            }
+        }
+        else
+        {
+            return ResultData.success(enti);
+        }
+        return ResultData.error("创建数据失败");
+    }
+
+    /**
+     * 编辑关键词
+     * @return
+     */
+    @ApiOperation("关键词编辑接口")
+    @PostMapping("/update")
+    @Authorization
+    public ResultData updateConfig(@RequestBody KeywordEntity entity)
+    {
+        return toAjax(iKeywordService.updateConfig(entity));
+    }
+
+    /**
+     * 删除关键词
+     * @param Id
+     * @return
+     */
+    @ApiOperation("关键词删除接口")
+    @DeleteMapping("/delete")
+    @Authorization
+    public ResultData deleteConfigById(String Id)
+    {
+        return toAjax(iKeywordService.deleteConfigById(Id));
+    }
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/controller/MenuController.java b/flower_city/src/main/java/com/dg/core/controller/MenuController.java
new file mode 100644
index 0000000..f1a3736
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/controller/MenuController.java
@@ -0,0 +1,73 @@
+package com.dg.core.controller;
+
+
+import com.dg.core.ResultData;
+import com.dg.core.db.gen.entity.MenuEntity;
+import com.dg.core.service.IMenuService;
+import com.dg.core.util.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * 菜单接口
+ */
+@Api(tags = {"菜单接口"})
+@RestController
+@RequestMapping("/menu")
+public class MenuController extends BaseController
+{
+
+    @Autowired(required = true)
+    IMenuService iMenuService;
+
+
+    /**
+     * 获取菜单列表
+     * @return
+     */
+    @ApiOperation("获取菜单列表")
+    @GetMapping("/getMenuList")
+    public TableDataInfo selectConfigList()
+    {
+        int num=iMenuService.countNum();
+        return getDataTable(iMenuService.selectConfigList(),num);
+    }
+
+
+    /**
+     * 添加新菜单
+     * @return
+     */
+    @ApiOperation("添加新菜单")
+    @PostMapping("/addMenu")
+    public ResultData insertConfig(@RequestBody MenuEntity entity)
+    {
+        return toAjax(iMenuService.insertConfig(entity));
+    }
+
+    /**
+     * 更新菜单
+     * @param entity
+     * @return
+     */
+    @ApiOperation("更新菜单")
+    @PostMapping("/updateMenu")
+    public ResultData updateConfig(@RequestBody MenuEntity entity)
+    {
+        return toAjax(iMenuService.updateConfig(entity));
+    }
+
+    /**
+     * 删除菜单
+     * @param id
+     * @return
+     */
+    @ApiOperation("删除菜单")
+    @DeleteMapping("/deleteMenu")
+    public ResultData deleteConfigById(@RequestParam("id") Long id)
+    {
+        return toAjax(iMenuService.deleteConfigById(id));
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/controller/OrganizationController.java b/flower_city/src/main/java/com/dg/core/controller/OrganizationController.java
new file mode 100644
index 0000000..44cdb75
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/controller/OrganizationController.java
@@ -0,0 +1,280 @@
+package com.dg.core.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dg.core.ResultData;
+import com.dg.core.annotation.Authorization;
+import com.dg.core.annotation.CurrentUser;
+import com.dg.core.db.gen.entity.OrganizationChartEntity;
+import com.dg.core.db.gen.entity.SysUser;
+import com.dg.core.db.gen.entity.TransactionEvent;
+import com.dg.core.service.IOrganizationChartService;
+import com.dg.core.service.ITransactionEventService;
+import com.dg.core.util.PermissionUtil;
+import com.dg.core.util.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.Assert;
+import org.springframework.web.bind.annotation.*;
+
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+
+
+@Api(tags = {"组织架构接口"})
+@RestController
+@RequestMapping("/organization")
+public class OrganizationController extends BaseController
+{
+
+    @Autowired(required = true)
+    IOrganizationChartService iOrganizationChartService;
+
+    @Autowired(required = true)
+    ITransactionEventService iTransactionEventService;
+
+    /**
+     * 查询机构列表
+     */
+    @ApiOperation(value = "查询机构列表",response = OrganizationChartEntity.class)
+    @GetMapping("/getList")
+    public TableDataInfo selectConfigList()
+    {
+        return getDataTable(iOrganizationChartService.selectConfigList("","",null));
+    }
+
+
+    /**
+     * 查询机构列表(权限)
+     */
+    @ApiOperation(value = "查询机构列表(权限 选择用 ) ",response = OrganizationChartEntity.class)
+    @GetMapping("/selectJurisdiction")
+    @Authorization
+    public TableDataInfo selectJurisdiction(@CurrentUser SysUser sysUser)
+    {
+        return getDataTable(iOrganizationChartService.selectConfigList(sysUser.getDepartmentId(),"",null));
+    }
+
+    /**
+     * 新增机构
+     */
+    @ApiOperation(value = "新增机构",response = OrganizationChartEntity.class)
+    @PostMapping("/add")
+    @Authorization
+    public ResultData insertConfig(@RequestBody OrganizationChartEntity entity)
+    {
+        Assert.notNull(entity.getGrade(), "等级 grade 不能为空");
+
+        if (StringUtils.equals("1",entity.getGrade()))
+        {
+            if(!StringUtils.isEmpty(entity.getParentId()))
+            {
+                return ResultData.error("一级部门不能有父级部门");
+            }
+        }
+        else
+        {
+            if(StringUtils.isEmpty(entity.getParentId()))
+            {
+                return ResultData.error("非一级部门父级部门不能为空");
+            }
+        }
+        return toAjax(iOrganizationChartService.insertConfig(entity));
+    }
+
+    /**
+     * 更新机构
+     */
+    @ApiOperation(value = "更新机构",response = OrganizationChartEntity.class)
+    @PostMapping("/update")
+    @Authorization
+    public ResultData updateConfig(@RequestBody OrganizationChartEntity entity,@CurrentUser SysUser sysUser)
+    {
+        entity.setUpdateTime(LocalDateTime.now());
+        entity.setUpdateUserId(sysUser.getUserId());
+        return toAjax(iOrganizationChartService.updateConfig(entity));
+    }
+
+    /**
+     * 删除机构
+     */
+    @ApiOperation("删除机构")
+    @DeleteMapping("/delete")
+    @Authorization
+    public ResultData deleteConfigById(@RequestParam(value = "Id",required = false)  String Id)
+    {
+        Assert.notNull(Id, "Id 不能为空");
+        List<OrganizationChartEntity> list=iOrganizationChartService.selectParentList(Id,"");
+
+        if(list!=null && list.size()>0)
+        {
+            return ResultData.error("该机构下存在其他部门!请先删除子部门");
+        }
+
+        List<String> ids=new ArrayList<>();
+        ids.add(Id);
+        List<TransactionEvent> transactionEvents=iTransactionEventService.selectConfigList(null,null,ids);
+
+        if(transactionEvents!=null && transactionEvents.size()>0)
+        {
+            return ResultData.error("该机构下已绑定办事指南!请解绑办事指南");
+        }
+        return toAjax(iOrganizationChartService.deleteConfigById(Id));
+    }
+
+    /**
+     * 查询机构列表(不分级不分页按等级排序)
+     */
+    @ApiOperation(value = "查询机构列表(不分级不分页按等级排序)",response = OrganizationChartEntity.class)
+    @GetMapping("/selectList")
+    public TableDataInfo selectList(){
+        return getDataTable(iOrganizationChartService.selectList());
+    }
+
+    /**
+     * 根据id查取消组织机构
+     */
+    @ApiOperation(value = "根据id查取消组织机构",response = OrganizationChartEntity.class)
+    @GetMapping("/selectById")
+    ResultData selectConfigById(@RequestParam("id") String id){
+          return ResultData.success(iOrganizationChartService.selectConfigById(id));
+    }
+
+
+    /**
+     * 查询机构列表(分页)
+     */
+    @ApiOperation(value = "查询机构列表(分页)(部门应用)",response = OrganizationChartEntity.class)
+    @GetMapping("/queryList")
+    @Authorization
+    public TableDataInfo queryList(@RequestParam(value = "pageNum",required = false) Integer pageNum,
+                                            @RequestParam(value = "pageSize",required = false) Integer pageSize,
+                                            @RequestParam(value = "organizationName",required = false)String organizationName,
+                                   @CurrentUser SysUser sysUser){
+        Assert.notNull(pageNum, "pageNum can not be empty");
+        Assert.notNull(pageSize, "pageSize can not be empty");
+        Page<OrganizationChartEntity> pageParam = new Page<>(pageNum,pageSize);
+        List<String> ids= PermissionUtil.getPermission(sysUser,iOrganizationChartService);
+        return getDataTable(iOrganizationChartService.queryList(pageParam,pageSize,organizationName,ids),
+                            iOrganizationChartService.countList(organizationName,ids));
+    }
+
+
+
+
+    /**
+     * 通过父级id查询对应机构下的全部部门id
+     * @param departmentId
+     * @return
+     */
+    @ApiOperation(value = "通过父级id查询对应机构下的全部部门")
+    @GetMapping("/getdepartment/id")
+    public TableDataInfo getOrganizationIds(@RequestParam(value = "department",required = false) String departmentId)
+    {
+        if(StringUtils.isEmpty(departmentId))
+        {
+            return getDataTable("departmentId 不能为空");
+        }
+
+        List<String> ids=new ArrayList<>();
+        List<String> getId=iOrganizationChartService.getIds(departmentId);
+        ids.addAll(getId);
+        return getDataTable(ids);
+    }
+
+
+
+
+
+    /**
+     * 通过父级id查询对应机构下的全部部门
+     * @param departmentId
+     * @return
+     */
+    @ApiOperation(value = "通过父级id查询对应机构下的全部部门",response = OrganizationChartEntity.class)
+    @GetMapping("/getdepartment")
+    public TableDataInfo getOrganizations(@RequestParam(value = "department",required = false) String departmentId)
+    {
+        List<OrganizationChartEntity> ids=new ArrayList<>();
+        List<OrganizationChartEntity> lists=null;
+        if(StringUtils.isEmpty(departmentId))
+        {
+            lists= iOrganizationChartService.selectParentList(null,"1");
+
+        }
+        else
+        {
+            lists= iOrganizationChartService.selectParentList(departmentId,null);
+        }
+
+        if(lists.size()<1)
+        {
+            lists.add(iOrganizationChartService.selectConfigById(departmentId));
+        }
+        ids=disposestreet(lists);
+        if(ids.size()<1)
+        {
+            return null;
+        }
+
+        if(!StringUtils.isEmpty(departmentId))
+        {
+            ids.add(iOrganizationChartService.selectConfigById(departmentId));
+        }
+
+        return getDataTable(ids);
+    }
+
+    //递归取id
+    private List<OrganizationChartEntity> disposestreet(List<OrganizationChartEntity> lists)
+    {
+        List<OrganizationChartEntity> ids=new ArrayList<>();
+        for (OrganizationChartEntity sysStreet:lists)
+        {
+            if(sysStreet.getChild()!=null && sysStreet.getChild().size()>0)
+            {
+                ids.addAll(disposestreet(sysStreet.getChild()));
+            }
+            else
+            {
+                ids.add(sysStreet);
+            }
+        }
+        return ids;
+    }
+
+
+    /**
+     * 查询机构列表
+     */
+    @ApiOperation(value = "查询可切换机构列表",response = OrganizationChartEntity.class)
+    @GetMapping("switch/getList")
+    @Authorization
+    public TableDataInfo switchGetList(@CurrentUser SysUser sysUser)
+    {
+        List<String> ids=new ArrayList<>();
+        if(!StringUtils.isEmpty(sysUser.getMoreDepartmentIds()))
+        {
+            if(sysUser.getMoreDepartmentIds().indexOf(",")==-1)
+            {
+                ids.add(sysUser.getDepartmentId());
+            }
+            else
+            {
+                String[] list=sysUser.getMoreDepartmentIds().split(",");
+                for (String id:list)
+                {
+                    ids.add(id);
+                }
+            }
+        }
+        else
+        {
+            ids.add(sysUser.getDepartmentId());
+        }
+
+        return getDataTable(iOrganizationChartService.selectConfigList(ids));
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/controller/ReplyTemplateController.java b/flower_city/src/main/java/com/dg/core/controller/ReplyTemplateController.java
new file mode 100644
index 0000000..e8e2838
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/controller/ReplyTemplateController.java
@@ -0,0 +1,180 @@
+package com.dg.core.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dg.core.ResultData;
+import com.dg.core.annotation.Authorization;
+import com.dg.core.annotation.CurrentUser;
+import com.dg.core.db.gen.entity.ReplyTemplateEntity;
+import com.dg.core.db.gen.entity.SysUser;
+import com.dg.core.service.IOrganizationChartService;
+import com.dg.core.service.IReplyTemplateService;
+import com.dg.core.util.PermissionUtil;
+import com.dg.core.util.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@Api(tags = {"回复模板接口"})
+@RestController
+@RequestMapping("/reply")
+public class ReplyTemplateController extends BaseController
+{
+
+    @Autowired
+    IReplyTemplateService iReplyTemplateService;
+
+    @Autowired
+    IOrganizationChartService iOrganizationChartService;
+
+
+    /**
+     * 获取模板列表
+     * @return
+     */
+    @ApiOperation("获取模板列表")
+    @GetMapping("/getlist")
+    @Authorization
+    public TableDataInfo selectConfigList(@RequestParam(value = "pageNum",required = false) Integer pageNum,
+                                          @RequestParam(value = "pageSize",required = false) Integer pageSize,
+                                          @RequestParam(value = "name",required = false) String Name,
+                                          @CurrentUser SysUser sysUser)
+    {
+        Page<ReplyTemplateEntity> pageParam = new Page<>(pageNum,pageSize);
+        List<String> ids=PermissionUtil.getStairDepartment(sysUser,iOrganizationChartService);
+        List<ReplyTemplateEntity> list;
+        if (sysUser.getUserType().equals("1")||sysUser.getIsDivisionHead().equals("1")){
+            list = iReplyTemplateService.selectConfigList(pageParam,pageSize,Name,ids,null);
+        }
+        else {
+            list = iReplyTemplateService.selectConfigList(pageParam,pageSize,Name,ids,sysUser.getUserId());
+        }
+        int num=iReplyTemplateService.countNum(Name,ids);
+        return getDataTable(list,num);
+    }
+
+    /**
+     * 获取详情
+     * @param Id
+     * @return
+     */
+    @ApiOperation("获取详情")
+    @GetMapping("/getdata")
+    @Authorization
+    public ResultData selectConfigData(@RequestParam(value = "Id",required = false) String Id)
+    {
+        if(StringUtils.isEmpty(Id))
+        {
+            return ResultData.error("Id不能为空");
+        }
+        return ResultData.success(iReplyTemplateService.selectConfigData(Id));
+    }
+
+    /**
+     * 新增模板
+     * @param entity
+     * @return
+     */
+    @ApiOperation("新增模板")
+    @PostMapping("/add")
+    @Authorization
+    public ResultData insertConfig(@RequestBody ReplyTemplateEntity entity,@CurrentUser SysUser sysUser)
+    {
+        if(entity==null)
+        {
+            return ResultData.error("参数不能为空");
+        }
+
+        if(StringUtils.isEmpty(entity.getName()))
+        {
+            return ResultData.error("模板名称不能为空");
+        }
+
+        if(StringUtils.isEmpty(entity.getDepartmentId()))
+        {
+            return ResultData.error("部门id不能为空  请分配部门id");
+        }
+
+        List<String> ids=iOrganizationChartService.getIds(entity.getDepartmentId());
+        int num=iReplyTemplateService.countNum(entity.getName(),ids);
+
+        if(num>0)
+        {
+            return ResultData.error("部门里办事名称重复!");
+        }
+
+        entity.setId(null);
+        entity.setDepartmentId(entity.getDepartmentId());
+        entity.setCreateUserId(sysUser.getUserId()+"");
+
+        return toAjax(iReplyTemplateService.insertConfig(entity));
+    }
+
+    /**
+     * 更新模板
+     * @param entity
+     * @return
+     */
+    @ApiOperation("更新模板")
+    @PostMapping("/update")
+    @Authorization
+    public ResultData updateConfig(@RequestBody ReplyTemplateEntity entity)
+    {
+        if(entity==null)
+        {
+            return ResultData.error("参数不能为空");
+        }
+
+        if(StringUtils.isEmpty(entity.getName()))
+        {
+            return ResultData.error("模板名称不能为空");
+        }
+        return toAjax(iReplyTemplateService.updateConfig(entity));
+    }
+
+    /**
+     * 删除模板
+     * @param Id
+     * @return
+     */
+    @ApiOperation("删除模板")
+    @DeleteMapping("/delete")
+    @Authorization
+    public ResultData deleteConfigById(@RequestParam(value = "Id",required = false) String Id)
+    {
+        return toAjax(iReplyTemplateService.deleteConfigById(Id));
+    }
+
+
+    /**
+     * 复制模板
+     * @param Id
+     * @return
+     */
+    @ApiOperation("复制模板")
+    @PostMapping("/copy")
+    @Authorization
+    public ResultData copy(@RequestParam(value = "Id",required = false) String Id,@CurrentUser SysUser sysUser)
+    {
+        if(StringUtils.isEmpty(Id))
+        {
+            return ResultData.error("Id不能为空");
+        }
+
+        ReplyTemplateEntity entity=iReplyTemplateService.selectConfigData(Id);
+
+        if(entity==null)
+        {
+            return ResultData.error("模板不存在!");
+        }
+        entity.setCreateUserId(sysUser.getUserId());
+        entity.setName(entity.getName()+"(副本)");
+        entity.setId(null);
+        return toAjax(iReplyTemplateService.insertConfig(entity));
+    }
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/controller/RoleManagementController.java b/flower_city/src/main/java/com/dg/core/controller/RoleManagementController.java
new file mode 100644
index 0000000..bcc1744
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/controller/RoleManagementController.java
@@ -0,0 +1,101 @@
+package com.dg.core.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dg.core.ResultData;
+import com.dg.core.annotation.Authorization;
+import com.dg.core.annotation.CurrentUser;
+import com.dg.core.db.gen.entity.RoleManagementEntity;
+import com.dg.core.db.gen.entity.SysUser;
+import com.dg.core.service.IRoleManagementService;
+import com.dg.core.util.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@Api(tags = {"角色管理接口"})
+@RestController
+@RequestMapping("/role")
+public class RoleManagementController extends BaseController
+{
+
+    @Autowired
+    IRoleManagementService iRoleManagementService;
+
+    /**
+     * 查询角色列表
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    @ApiOperation("查询角色列表")
+    @GetMapping("/getList")
+    @Authorization
+    public TableDataInfo selectConfigList(@RequestParam(value = "pageNum",required = false) Integer pageNum,
+                                          @RequestParam(value = "pageSize",required = false) Integer pageSize,
+                                          @RequestParam(value = "name",required = false) String name)
+    {
+        if(pageNum==null)
+        {
+            return getDataTable("分页不能为空");
+        }
+        if(pageSize==null)
+        {
+            return getDataTable("分页条数不能为空");
+        }
+
+        Page<RoleManagementEntity> pageParam = new Page<>(pageNum,pageSize);
+        List<RoleManagementEntity> list = iRoleManagementService.selectConfigList(pageParam,pageSize,name);
+
+        int num=iRoleManagementService.countNum(name);
+        return getDataTable(list,num);
+    }
+
+    /**
+     * 新增角色
+     * @param entity
+     * @return
+     */
+    @ApiOperation("新增角色")
+    @PostMapping("/add")
+    @Authorization
+    public ResultData insertConfig(@RequestBody RoleManagementEntity entity, @CurrentUser SysUser sysUser)
+    {
+        entity.setCreateUserId(sysUser.getUserId()+"");
+        return toAjax(iRoleManagementService.insertConfig(entity));
+    }
+
+    /**
+     * 编辑角色
+     * @param entity
+     * @return
+     */
+    @ApiOperation("编辑角色")
+    @PostMapping("/update")
+    @Authorization
+    public ResultData updateConfig(@RequestBody RoleManagementEntity entity,@CurrentUser SysUser sysUser)
+    {
+        entity.setUpdateUserId(sysUser.getUserId()+"");
+        return toAjax(iRoleManagementService.updateConfig(entity));
+    }
+
+    /**
+     * 删除角色
+     * @param Id
+     * @return
+     */
+    @DeleteMapping("/delete")
+    @Authorization
+    public ResultData deleteConfigById(@RequestParam(value = "Id",required = false) String Id)
+    {
+        if(StringUtils.isEmpty(Id))
+        {
+            return ResultData.error("Id 不能为空");
+        }
+        return toAjax(iRoleManagementService.deleteConfigById(Id));
+    }
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/controller/SlideshowController.java b/flower_city/src/main/java/com/dg/core/controller/SlideshowController.java
new file mode 100644
index 0000000..ced81f0
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/controller/SlideshowController.java
@@ -0,0 +1,82 @@
+package com.dg.core.controller;
+
+import com.dg.core.ResultData;
+import com.dg.core.annotation.Authorization;
+import com.dg.core.db.gen.entity.Agreement;
+import com.dg.core.db.gen.entity.OrganizationChartEntity;
+import com.dg.core.db.gen.entity.Slideshow;
+import com.dg.core.service.ISlideshowService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@Api(tags = {"轮播图接口"})
+@RestController
+@RequestMapping("/slideshow")
+public class SlideshowController extends BaseController{
+
+    @Autowired(required = true)
+    ISlideshowService iSlideshowService;
+
+    /**
+     * 查询轮播图列表(不分页)
+     * @return
+     */
+    @ApiOperation(value = "查询轮播图列表(不分页)",response = Slideshow.class)
+    @GetMapping("/selectList")
+    public ResultData selectList(){
+        return ResultData.success(iSlideshowService.selectList());
+
+    }
+
+    /**
+     * 根据id 查询轮播图数据
+     *
+     * @return 参数配置信息
+     */
+    @ApiOperation(value = "根据id 查询轮播图数据",response = Slideshow.class)
+    @GetMapping("/selectById")
+    public ResultData queryById(Integer id){
+        return ResultData.success(iSlideshowService.queryById(id));
+    }
+
+
+    /**
+     * 根据id 新增轮播图数据
+     *
+     * @return 参数配置信息
+     */
+    @ApiOperation(value = "新增轮播图数据",response = Slideshow.class)
+    @PostMapping("/add")
+    public  ResultData add(@RequestBody Slideshow slideshow){
+        return  iSlideshowService.add(slideshow);
+    }
+
+    /**
+     * 修改轮播图数据
+     *
+     * @return 参数配置信息
+     */
+    @ApiOperation(value = "修改轮播图数据",response = Slideshow.class)
+    @PostMapping("/update")
+    @Authorization
+    public ResultData update(@RequestBody Slideshow slideshow){
+        return  iSlideshowService.update(slideshow);
+    }
+
+    /**
+     * 删除轮播图数据
+     *
+     * @return 参数配置信息
+     */
+    @ApiOperation(value = "删除轮播图数据",response = Slideshow.class)
+    @GetMapping("/delete")
+    @Authorization
+    public ResultData delete(@RequestParam("id") Integer id){
+        return iSlideshowService.delete(id);
+    }
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/controller/SysSettingsController.java b/flower_city/src/main/java/com/dg/core/controller/SysSettingsController.java
new file mode 100644
index 0000000..e5caf6b
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/controller/SysSettingsController.java
@@ -0,0 +1,57 @@
+package com.dg.core.controller;
+
+import com.dg.core.ResultData;
+import com.dg.core.annotation.Authorization;
+import com.dg.core.annotation.CurrentUser;
+import com.dg.core.db.gen.entity.AutomessageSysSettings;
+import com.dg.core.db.gen.entity.SysUser;
+import com.dg.core.service.ISysSettingsService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.time.LocalDateTime;
+
+@Api(tags = {"系统设置接口"})
+@RestController
+@RequestMapping("/sysSettings")
+public class SysSettingsController {
+
+    @Resource
+    private ISysSettingsService sysSettingsService;
+
+    /**
+     * 按设置名称查找设置信息
+     *
+     * @return 参数配置信息
+     */
+    @ApiOperation(value = "按设置名称查找设置信息",response = AutomessageSysSettings.class)
+    @GetMapping("/selectByName")
+    @Authorization
+    public ResultData selectByName(@RequestParam(value = "settingName",required = false) String settingName){
+       if (settingName==null)
+           settingName="系统超时基础设置";
+       return sysSettingsService.selectByName(settingName);
+    }
+
+
+    /**
+     * 修改设置信息
+     *
+     * @return 参数配置信息
+     */
+    @ApiOperation(value = "修改设置信息",response = AutomessageSysSettings.class)
+    @PostMapping("/update")
+    @Authorization
+    public  ResultData update(@RequestBody AutomessageSysSettings automessageSysSettings,@CurrentUser SysUser sysUser){
+        automessageSysSettings.setUpdateUserId(sysUser.getUserId());
+        automessageSysSettings.setUpdateTime(LocalDateTime.now());
+        if (automessageSysSettings.getTimeoutRemindNum()>(automessageSysSettings.getTimeoutNotificationNum()*60)){
+               return  ResultData.error("系统提醒时间不能大于系统通知时间*60");
+        }
+        return  sysSettingsService.update(automessageSysSettings);
+    }
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/controller/TransactionEventController.java b/flower_city/src/main/java/com/dg/core/controller/TransactionEventController.java
new file mode 100644
index 0000000..f58bfe8
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/controller/TransactionEventController.java
@@ -0,0 +1,364 @@
+package com.dg.core.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dg.core.ResultData;
+import com.dg.core.annotation.Authorization;
+import com.dg.core.annotation.CurrentUser;
+import com.dg.core.db.gen.AjaxResult;
+import com.dg.core.db.gen.entity.AutomessageSmartConsulting;
+import com.dg.core.db.gen.entity.Slideshow;
+import com.dg.core.db.gen.entity.SysUser;
+import com.dg.core.db.gen.entity.TransactionEvent;
+import com.dg.core.db.manual.pojo.QueryResults;
+import com.dg.core.db.manual.pojo.RecommendResult;
+import com.dg.core.db.manual.pojo.Search;
+import com.dg.core.file.FtpConstants;
+import com.dg.core.file.MimeTypeUtils;
+import com.dg.core.file.SFTPUtil;
+import com.dg.core.service.IAutomessageSmartConsultingService;
+import com.dg.core.service.IOrganizationChartService;
+import com.dg.core.service.ITransactionEventService;
+import com.dg.core.util.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.io.FilenameUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.Assert;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.InputStream;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
+import static com.dg.core.file.FileTypeUploadUtils.assertAllowed;
+
+@Api(tags = {"导办事项管理接口"})
+@RestController
+@RequestMapping("/transaction")
+public class TransactionEventController extends BaseController
+{
+
+    @Autowired(required = true)
+    ITransactionEventService iTransactionEventService;
+
+
+    @Autowired(required = true)
+    IOrganizationChartService iOrganizationChartService;
+
+    @Autowired(required = true)
+    IAutomessageSmartConsultingService iAutomessageSmartConsultingService;
+
+    /**
+     * 查询导办事务详情
+     * @param Id
+     * @return
+     */
+    @ApiOperation("查询导办事务详情")
+    @GetMapping("/getData")
+
+    public ResultData selectConfigData(@RequestParam("Id") String Id,@CurrentUser SysUser sysUser)
+    {
+        Assert.notNull(Id, "Id 不能为空");
+        return ResultData.success(iTransactionEventService.selectConfigData(Id,sysUser));
+    }
+
+    /**
+     * 导办事物列表
+     * @param
+     * @return
+     */
+    @ApiOperation("导办事物列表")
+    @GetMapping("/getList")
+    @Authorization
+    public TableDataInfo selectConfigList(@RequestParam(value = "pageNum",required = false) Integer pageNum,
+                                          @RequestParam(value = "pageSize",required = false) Integer pageSize,
+                                          @RequestParam(value = "keyword",required = false) String keyword,
+                                          @RequestParam(value = "classifyGrade",required = false) String classifyGrade,
+                                          @RequestParam(value = "departmentId",required = false) String departmentId,
+                                          @CurrentUser SysUser sysUser)
+    {
+        Assert.notNull(pageNum, "pageNum 不能为空");
+        Assert.notNull(pageSize, "pageSize 不能为空");
+        Page<TransactionEvent> pageParam = new Page<>(pageNum,pageSize);
+        List<TransactionEvent> list;
+        int num;
+        if (departmentId!=null&&departmentId.length()>0){
+            List<String> ids=iOrganizationChartService.getDepartmentId(departmentId);
+            list = iTransactionEventService.selectConfigList(pageParam,pageSize,keyword,
+                    classifyGrade,ids);
+              num=iTransactionEventService.countNum(keyword,classifyGrade,ids);
+
+        }else {
+               list = iTransactionEventService.selectConfigList(pageParam,pageSize,keyword,
+                classifyGrade,null);
+              num=iTransactionEventService.countNum(keyword,classifyGrade,null);
+        }
+        return getDataTable(list,num);
+    }
+
+    /**
+     * 导办事物列表
+     * @param
+     * @return
+     */
+    @ApiOperation("根据部门id获取导办事物列表")
+    @PostMapping("/department/getList")
+    @Authorization
+    public TableDataInfo<TransactionEvent> selectConfigList(@RequestBody List<String> DepartmentId,
+                                          @CurrentUser SysUser sysUser)
+    {
+        if(DepartmentId==null||DepartmentId.size()<1)
+        {
+            DepartmentId=null;
+        }
+        List<TransactionEvent> list = iTransactionEventService.selectConfigList(null,null,DepartmentId);
+        int num=iTransactionEventService.countNum(null,null,DepartmentId);
+        return getDataTable(list,num);
+    }
+
+    /**
+     * 导办事物列表(不分页)
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "导办事物列表(不分页)",response = TransactionEvent.class)
+    @GetMapping("/selectList")
+    public TableDataInfo selectList(@RequestParam(value = "keyWord",required = false) String keyWord)
+    {
+        return getDataTable(iTransactionEventService.selectList(keyWord));
+    }
+
+    /**
+     * 新增导办事务
+     * @param entity
+     * @return
+     */
+    @ApiOperation("新增导办事务")
+    @PostMapping("/add")
+    @Authorization
+    public ResultData insertConfig(@RequestBody TransactionEvent entity)
+    {
+        if(StringUtils.isEmpty(entity.getDepartmentId()))
+        {
+            return ResultData.error("部门id不能为空");
+        }
+
+        if(StringUtils.isEmpty(entity.getMatterName()))
+        {
+            return ResultData.error("事件名称不能为空");
+        }
+
+        String id=iTransactionEventService.selectDataIfExist(entity.getDepartmentId(),entity.getMatterName());
+        if(!StringUtils.isEmpty(id))
+        {
+            return ResultData.error("事件名称已存在");
+        }
+
+        return toAjax(iTransactionEventService.insertConfig(entity));
+    }
+
+    /**
+     * 修改导办事务
+     * @param entity
+     * @return
+     */
+    @ApiOperation("修改导办事务")
+    @PostMapping("/update")
+    @Authorization
+    public ResultData updateConfig(@RequestBody TransactionEvent entity)
+    {
+        if(StringUtils.isEmpty(entity.getDepartmentId()))
+        {
+            return ResultData.error("部门id不能为空");
+        }
+
+        if(StringUtils.isEmpty(entity.getMatterName()))
+        {
+            return ResultData.error("事件名称不能为空");
+        }
+
+
+
+        return toAjax(iTransactionEventService.updateConfig(entity));
+    }
+
+    /**
+     * 删除接口
+     * @param Id
+     * @return
+     */
+    @ApiOperation("删除导办事务")
+    @DeleteMapping("/delete")
+    @Authorization
+    public ResultData deleteConfigById(@RequestParam(value = "Id",required = false) String Id)
+    {
+
+        Assert.notNull(Id, "Id 不能为空");
+        int i = iTransactionEventService.deleteConfigById(Id);
+        if (i>0)
+           return  ResultData.success("删除成功");
+        else
+          return  ResultData.error("删除失败可能该工单有单据");
+    }
+
+    /**
+     * 导办事务搜索
+     * @param keyWord
+     * @return
+     */
+    @ApiOperation(value = "导办事务搜索",response = QueryResults.class)
+    @GetMapping("/queryKeyWordList")
+    public QueryResults queryMatterNameList(@RequestParam(value = "pageNum",required = false) Integer pageNum,
+                                            @RequestParam(value = "pageSize",required = false) Integer pageSize,
+                                            @RequestParam(value = "recommendSize",required = false) Integer recommendSize,
+                                            @RequestParam(value = "keyWord",required = false) String keyWord)
+    {
+        Assert.notNull(pageNum, "pageNum 不能为空");
+        Assert.notNull(pageSize, "pageSize 不能为空");
+        Assert.notNull(keyWord, "keyWord 不能为空");
+        Assert.notNull(keyWord, "recommendSize 不能为空");
+        Page<Search> pageParam = new Page<>(pageNum,pageSize);
+        QueryResults queryResults = iTransactionEventService.queryMatterNameList(pageParam, pageSize,recommendSize, keyWord);
+        return queryResults;
+    }
+
+
+
+
+    /**
+     *  根据分类id查询导办事务(分页)
+     * @param classifyId
+     * @return
+     */
+    @ApiOperation(value = "根据分类id查询导办事务(分页)",response = TransactionEvent.class)
+    @GetMapping("/queryByClassifyIdConfigList")
+    public TableDataInfo queryByClassifyIdConfigList(@RequestParam(value = "pageNum",required = false) Integer pageNum,
+                                                     @RequestParam(value = "pageSize",required = false) Integer pageSize,
+                                                     @RequestParam(value = "classifyId",required = false) String classifyId,
+                                                     @RequestParam(required = false,name="departmentId") Integer departmentId){
+        Assert.notNull(pageNum, "pageNum 不能为空");
+        Assert.notNull(pageSize, "pageSize 不能为空");
+        Page<TransactionEvent> pageParam = new Page<>(pageNum,pageSize);
+        return getDataTable(iTransactionEventService.queryByClassifyIdList(pageParam,pageSize,classifyId,departmentId),iTransactionEventService.countNumByClassifyIdList(classifyId,departmentId));
+    }
+
+    /**
+     *  根据查询时间查询导办事务
+     * @return
+     */
+    @ApiOperation(value = "根据查询时间查询导办事务",response = TransactionEvent.class)
+    @GetMapping("/queryByQueryTime")
+    public TableDataInfo queryByQueryTime() {
+        List<TransactionEvent> transactionEvents = iTransactionEventService.queryByQueryTime( );
+        return getDataTable(transactionEvents);
+    }
+
+    /**
+     *  根据浏览次数查询导办事务
+     * @return
+     */
+    @ApiOperation(value = "根据浏览次数查询导办事务",response = TransactionEvent.class)
+    @GetMapping("/queryByBrowseNum")
+    public TableDataInfo queryByBrowseNum() {
+        List<TransactionEvent> transactionEvents = iTransactionEventService.queryByBrowseNum( );
+        return getDataTable(transactionEvents);
+    }
+
+    /**
+     *  查询导办事务求和
+     * @return
+     */
+    @ApiOperation(value = "查询导办事务求和",response = TransactionEvent.class)
+    @GetMapping("/sumTransactionNum")
+    public ResultData  sumTransactionNum(){
+        return ResultData.success(iTransactionEventService.sumTransactionNum());
+    }
+
+    /**
+     * 智能咨询
+     * @return
+     */
+    @ApiOperation(value = "智能咨询",response = RecommendResult.class)
+    @GetMapping("/smartConsulting")
+    public RecommendResult smartConsulting(@RequestParam("keyWord") String keyWord,@CurrentUser SysUser sysUser){
+        AutomessageSmartConsulting automessageSmartConsulting = new AutomessageSmartConsulting();
+        if (sysUser!=null){
+            automessageSmartConsulting.setCreateUserId(sysUser.getUserId());
+        }
+        automessageSmartConsulting.setType(2);
+        automessageSmartConsulting.setCreateTime(LocalDateTime.now());
+        iAutomessageSmartConsultingService.add(automessageSmartConsulting);
+        return  iTransactionEventService.smartConsulting(keyWord);
+    }
+
+
+    /**
+     * 办事指南复制
+     * @return
+     */
+    @ApiOperation(value = "办事指南复制",response = ResultData.class)
+    @GetMapping("/copy")
+    @Authorization
+    public ResultData copy(@RequestParam("Id") String Id,@CurrentUser SysUser sysUser)
+    {
+        if(StringUtils.isEmpty(Id))
+        {
+            return ResultData.error("Id不能为空");
+        }
+
+        TransactionEvent transactionEvent=iTransactionEventService.selectConfigData(Id,null);
+        if(transactionEvent==null)
+        {
+            return ResultData.error("复制项不存在");
+        }
+
+        transactionEvent.setDepartmentId(sysUser.getDepartmentId());
+        transactionEvent.setMatterName(transactionEvent.getMatterName()+"(副本)");
+
+        transactionEvent.setId(null);
+        return toAjax(iTransactionEventService.insertConfig(transactionEvent));
+    }
+
+
+    /**
+     * 办事指南根据分类id筛选
+     * @return
+     */
+    @ApiOperation(value = "办事指南根据分类id筛选",response = ResultData.class)
+    @GetMapping("/selectClassifyList")
+    @Authorization
+    public TableDataInfo<TransactionEvent> selectClassifyList(@RequestParam("ids") List<String> ids)
+    {
+        if(ids==null || ids.size()<1)
+        {
+            ids=null;
+        }
+        return getDataTable(iTransactionEventService.selectClassifyList(ids));
+    }
+
+    @ApiOperation("文件导入")
+    @PostMapping("/import")
+    public ResultData uploadFiles(MultipartFile file) throws Exception
+    {
+        boolean a = false;
+        String fileName = file.getOriginalFilename();
+        Integer b = iTransactionEventService.batchImport(fileName, file);
+        if (b == 3) {//
+            return ResultData.success("全部导入成功");//全部导入成功
+        } else if (b == 2) {
+            return ResultData.success("部分导入成功");//部分导入成功
+        } else if (b == 0) {
+            return ResultData.error("部分失败");//导入失败
+        }
+        return ResultData.error("部分失败");//导入失败
+    }
+
+
+
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/controller/UserController.java b/flower_city/src/main/java/com/dg/core/controller/UserController.java
new file mode 100644
index 0000000..b831eec
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/controller/UserController.java
@@ -0,0 +1,440 @@
+package com.dg.core.controller;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dg.core.HttpStatus;
+import com.dg.core.ResultData;
+import com.dg.core.annotation.Authorization;
+import com.dg.core.annotation.CurrentUser;
+import com.dg.core.db.gen.entity.HuaChengSysUser;
+import com.dg.core.db.gen.entity.SysUser;
+import com.dg.core.manager.TokenManager;
+import com.dg.core.service.IHuaChengSysUserService;
+import com.dg.core.util.SmsUtil;
+import com.dg.core.util.Snowflake;
+import com.dg.core.util.TableDataInfo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.Assert;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.time.LocalDateTime;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Api(tags = {"用户接口"})
+@RestController
+@RequestMapping("/user")
+public class UserController extends BaseController {
+    @Autowired
+    com.dg.core.service.ISysUserService IUserService;
+
+    @Autowired
+    SmsUtil smsUtil;
+
+    @Autowired
+    TokenManager tokenManager;
+
+    /**
+     * 花城e+用户接口
+     */
+    @Autowired
+    IHuaChengSysUserService iHuaChengSysUserService;
+
+    @ApiOperation("登录接口")
+    @PostMapping(path = "/login")
+    public ResultData login(@RequestParam String account, @RequestParam String password, HttpServletRequest request) {
+        Assert.notNull(account, "username can not be empty");
+        Assert.notNull(password, "password can not be empty");
+
+        SysUser user=null;
+        //管理员登录
+        user= IUserService.getUserByAccount(account);
+
+        if(user==null)
+        {
+            List<HuaChengSysUser> list=iHuaChengSysUserService.selectData("",account,"");
+            HuaChengSysUser huaChengSysUser=null;
+
+            if(list!=null && list.size()>0 )
+            {
+                huaChengSysUser=list.get(0);
+            }
+
+            if(huaChengSysUser==null || !password.equals(huaChengSysUser.getPassword()))
+            {
+                //提示用户名或密码错误
+                return ResultData.fail(HttpStatus.UNAUTHORIZED, "用户名或密码错误");
+            }
+
+            //本地表查询用户
+            user = IUserService.selectData(huaChengSysUser.getUserId()+"",null,null);
+            if (user == null) {
+                //本地没有此用户  新用户
+                SysUser newSysUser=new SysUser();
+                //默认  1系统后台用户
+                newSysUser.setUserType("3");
+                newSysUser.setPhonenumber(huaChengSysUser.getPhone());
+                newSysUser.setUserId(huaChengSysUser.getUserId());
+                newSysUser.setUserName(huaChengSysUser.getNickName());
+                newSysUser.setSex(huaChengSysUser.getSex());
+                newSysUser.setAvatar(huaChengSysUser.getImageUrl());
+                newSysUser.setCreateTime(LocalDateTime.now());
+                newSysUser.setUpdateTime(LocalDateTime.now());
+                newSysUser.setOpenid(huaChengSysUser.getOpenid());
+                IUserService.insertConfig(newSysUser);
+            }
+
+            user = IUserService.selectData(huaChengSysUser.getUserId()+"",null,null);
+
+            if (user == null) {
+                return ResultData.error("用户不存在!请联系管理员");
+            }
+
+            String token = tokenManager.getTokenByUserId(user.getUserId());
+            System.out.println("token "+token);
+            if (token == null) {
+                //生成一个token,保存用户登录状态
+                token = tokenManager.createToken(user.getUserId(), user.getUserId());
+            }
+
+            user.setLoginDate(LocalDateTime.now());
+            //更新登录时间
+            IUserService.updateConfig(user);
+
+            Map<String, Object> map = new HashMap<>();
+            map.put("token", token);
+            map.put("userId", user.getUserId());
+            map.put("userName", user.getUserName());
+            map.put("permission", user.getPermission());
+            map.put("userType", user.getUserType());
+            map.put("departmentId", user.getDepartmentId());
+            map.put("departmentName", user.getDepartmentName());
+            map.put("moreDepartmentIds", user.getMoreDepartmentIds());
+
+            return ResultData.success(map);
+        }
+        else
+        {
+            if(StringUtils.equals("4",user.getUserType()))
+            {
+                //提示用户名或密码错误
+                return ResultData.fail(HttpStatus.UNAUTHORIZED, "账户不存在");
+            }
+
+            if(!password.equals(user.getPassword()))
+            {
+                //提示用户名或密码错误
+                return ResultData.fail(HttpStatus.UNAUTHORIZED, "用户名或密码错误");
+            }
+            String token = tokenManager.getTokenByUserId(user.getUserId());
+            System.out.println("token "+token);
+            if (token == null) {
+                //生成一个token,保存用户登录状态
+                token = tokenManager.createToken(user.getUserId(), user.getUserId());
+            }
+
+            user.setLoginDate(LocalDateTime.now());
+            //更新登录时间
+            IUserService.updateConfig(user);
+
+            Map<String, Object> map = new HashMap<>();
+            map.put("token", token);
+            map.put("userId", user.getUserId());
+            map.put("userName", user.getUserName());
+            map.put("permission", user.getPermission());
+            map.put("userType", user.getUserType());
+            map.put("departmentId", user.getDepartmentId());
+            map.put("departmentName", user.getDepartmentName());
+            map.put("moreDepartmentIds", user.getMoreDepartmentIds());
+
+            return ResultData.success(map);
+        }
+
+    }
+
+
+    @ApiOperation("发送登录短信验证码")
+    @PostMapping(value = "/sendSms", consumes = "application/json")
+    public ResultData smsSend(@RequestBody SysUser user) {
+            return IUserService.smsSend(user);
+    }
+
+
+    @ApiOperation("账号密码验证登录")
+    @GetMapping(value = "/loginByAccount")
+    public ResultData loginByAccount(@RequestParam String phonenumber,@RequestParam String code) {
+        return IUserService.loginByAccount(phonenumber,code);
+    }
+
+
+    @ApiOperation("通过手机号获取用户信息 登录")
+    @PostMapping(value = "/loginPhionne")
+    public ResultData loginPhionne(@RequestParam String phonenumber)
+    {
+        if(StringUtils.isEmpty(phonenumber))
+        {
+            return ResultData.error("请输入手机号");
+        }
+        return IUserService.loginByPhonenumber(phonenumber);
+    }
+
+    /**
+     * 查询列表
+     *
+     * @return 参数配置信息
+     */
+    @ApiOperation("用户列表接口")
+    @GetMapping("/getlist")
+    @Authorization
+    public TableDataInfo selectConfigList(@RequestParam(value = "pageNum",required = false) Integer pageNum,
+                                          @RequestParam(value = "pageSize",required = false) Integer pageSize,
+                                          @RequestParam(value = "keyword",required = false) String keyword)
+    {
+        Assert.notNull(pageNum, "pageNum can not be empty");
+        Assert.notNull(pageSize, "pageSize can not be empty");
+        Page<SysUser> pageParam = new Page<>(pageNum,pageSize);
+        List<SysUser> list = IUserService.selectConfigList(pageParam,pageSize,null,keyword,null,"1");
+
+        int num=IUserService.selectNum(null,keyword,null,"1");
+        return getDataTable(list,num);
+    }
+
+
+    /**
+     * 新增用户
+     *
+     * @param config 参数配置信息
+     * @return 结果
+     */
+    @ApiOperation("新增用户接口")
+    @PostMapping("/add")
+    @Authorization
+    public ResultData insertConfig(@RequestBody SysUser config, @CurrentUser SysUser sysUser)
+    {
+        Assert.notNull(config, "parameter can not be empty");
+
+        if(StringUtils.isEmpty(config.getLoginName()))
+        {
+            return error("账户不能为空");
+        }
+
+        if(StringUtils.isEmpty(config.getPassword()))
+        {
+            return error("密码不能为空");
+        }
+
+        if(StringUtils.isEmpty(config.getUserName()))
+        {
+            return error("昵称不能为空");
+        }
+
+        if(StringUtils.isEmpty(config.getPhonenumber()))
+        {
+            return error("手机号不能为空");
+        }
+
+
+
+
+        SysUser user = IUserService.selectData("",config.getPhonenumber(),"");
+        SysUser user2 = IUserService.selectData("","",config.getLoginName());
+        if (user != null) {
+            if(StringUtils.equals("4",user.getUserType()))
+            {
+                config.setUserId(user.getUserId());
+                config.setCreateBy(user.getUserId()+"");
+                config.setUserType("3");
+                config.setIsDivisionHead("1");
+                config.setUpdateTime(LocalDateTime.now());
+                config.setMasterIds(user2.getMasterIds());
+                config.setDepartmentIds(config.getDepartmentIds());
+                config.setDepartmentIdStr(config.getDepartmentIdStr());
+                config.setMattersIds(config.getMattersIds());
+                config.setMasterNames(config.getMasterNames());
+                config.setMattersNames(config.getMattersNames());
+                return toAjax(IUserService.updateConfig(config));
+            }
+            else
+            {
+                //提示用户名或密码错误
+                return error("该用户已存在!");
+            }
+        }
+
+        if(user2 != null)
+        {
+            if(StringUtils.equals("4",user2.getUserType()))
+            {
+                config.setUserId(user2.getUserId());
+                config.setCreateBy(user2.getUserId()+"");
+                config.setUserType("3");
+                config.setIsDivisionHead("1");
+                config.setUpdateTime(LocalDateTime.now());
+                config.setMasterIds(user2.getMasterIds());
+                config.setDepartmentIds(config.getDepartmentIds());
+                config.setDepartmentIdStr(config.getDepartmentIdStr());
+                config.setMattersIds(config.getMattersIds());
+                config.setMasterNames(config.getMasterNames());
+                config.setMattersNames(config.getMattersNames());
+                return toAjax(IUserService.updateConfig(config));
+            }
+            else
+            {
+                //提示用户名或密码错误
+                return error("该用户已存在!");
+            }
+        }
+
+        config.setCreateBy(sysUser.getUserId()+"");
+        config.setUserId(Snowflake.getId()+"");
+        config.setUserType("3");
+        config.setIsDivisionHead("1");
+        config.setMoreDepartmentIds(config.getDepartmentId());
+        config.setCreateTime(LocalDateTime.now());
+        config.setUpdateTime(LocalDateTime.now());
+
+        return toAjax(IUserService.insertConfig(config));
+    }
+
+    /**
+     * 更新聊天记录
+     *
+     * @param config 参数配置信息
+     * @return 结果
+     */
+    @ApiOperation("修改用户接口")
+    @PostMapping("/update")
+    @Authorization
+    public ResultData updateConfig(@RequestBody SysUser config,@CurrentUser SysUser sys)
+    {
+        if(config.getId()==null)
+        {
+            return error("Id不能为空");
+        }
+
+        if(StringUtils.isEmpty(config.getLoginName()))
+        {
+            return error("账户不能为空");
+        }
+
+        if(StringUtils.isEmpty(config.getDepartmentId()))
+        {
+           return error("请选择部门");
+        }
+
+        config.setMoreDepartmentIds(config.getDepartmentId());
+        config.setPassword(null);
+        config.setUpdateBy(sys.getUserId()+"");
+
+        return toAjax(IUserService.updateConfig(config));
+    }
+
+    /**
+     * 删除用户记录
+     *
+     * @return 结果
+     */
+    @ApiOperation("删除用户接口(真删除)")
+    @DeleteMapping("/delete/{userId}")
+    @Authorization
+    public ResultData deleteConfigById(@PathVariable("userId")  String userId)
+    {
+        if(StringUtils.isEmpty(userId))
+        {
+            return error("userId不能为空");
+        }
+        return toAjax(IUserService.deleteConfigById(userId));
+    }
+
+
+
+    /**
+     * 删除用户记录
+     *
+     * @return 结果
+     */
+    @ApiOperation("删除用户接口(修改状态  设置成已删除)")
+    @DeleteMapping("/deleteflag/{userId}")
+    @Authorization
+    public ResultData delete(@PathVariable("userId")  String userId)
+    {
+        if(StringUtils.isEmpty(userId))
+        {
+            return error("userId不能为空");
+        }
+
+        SysUser sysUser=IUserService.selectData(userId,null,null);
+        //删除标志(0代表存在 2代表删除)
+        sysUser.setDelFlag("2");
+        return toAjax(IUserService.updateConfig(sysUser));
+    }
+
+
+    /**
+     * 修改用户密码接口
+     *
+     * @param config 参数配置信息
+     * @return 结果
+     */
+    @ApiOperation("修改用户密码接口")
+    @PostMapping("/updatepws")
+    @Authorization
+    public ResultData updatePws(@RequestBody SysUser config)
+    {
+        if(config.getUserId()==null)
+        {
+            return error("userId不能为空");
+        }
+
+        if(StringUtils.isEmpty(config.getPassword()))
+        {
+            return error("密码不能为空");
+        }
+
+        SysUser sysUser=IUserService.selectData(config.getUserId()+"",null,null);
+        if(sysUser==null)
+        {
+            return error("用户不存在");
+        }
+
+        if(StringUtils.equals(sysUser.getPassword(),config.getPassword()))
+        {
+            return error("输入密码与原密码不能相同!");
+        }
+
+        return toAjax(IUserService.updateConfig(config));
+    }
+
+
+    /**
+     * 获取登录人员信息
+     *
+     * @return 结果
+     */
+    @ApiOperation(value = "获取登录人员信息,userType=1 为超级管理员  isDivisionHead=1 为部门领导",response = SysUser.class)
+    @PostMapping("/getLoginInformation")
+    @Authorization
+    public ResultData getLoginInformation(@CurrentUser SysUser sysUse)
+    {
+      return  ResultData.success(sysUse);
+    }
+
+
+
+
+    @ApiOperation("切换部门接口")
+    @GetMapping(value = "/switch/department")
+    public ResultData switchDepartment(@RequestParam(value = "departmentId",required = false) String departmentId,
+                                       @CurrentUser SysUser sysUse)
+    {
+        sysUse.setDepartmentId(departmentId);
+        return toAjax(IUserService.updateConfig(sysUse));
+    }
+
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/controller/WeixinApiController.java b/flower_city/src/main/java/com/dg/core/controller/WeixinApiController.java
new file mode 100644
index 0000000..69cf49c
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/controller/WeixinApiController.java
@@ -0,0 +1,41 @@
+package com.dg.core.controller;
+
+import com.dg.core.ResultData;
+import com.dg.core.db.manual.mapper.util.ConstantPropertiesUtil;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpSession;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.util.HashMap;
+import java.util.Map;
+
+@Controller
+@RequestMapping("/ucenter/wx")
+public class WeixinApiController {
+
+//    @Resource
+//    private UserInfoService userInfoService;
+    @Resource
+    private RedisTemplate redisTemplate;
+
+    /**
+     * 获取微信登录参数
+     */
+    @GetMapping("/getLoginParam")
+    @ResponseBody
+    public ResultData genQrConnect(HttpSession session) throws UnsupportedEncodingException {
+        String redirectUri = URLEncoder.encode(ConstantPropertiesUtil.WX_OPEN_REDIRECT_URL, "UTF-8");
+        Map<String, Object> map = new HashMap<>();
+        map.put("appid", ConstantPropertiesUtil.WX_OPEN_APP_ID);
+        map.put("redirectUri", redirectUri);
+        map.put("scope", "snsapi_login");
+        map.put("state", System.currentTimeMillis()+"");//System.currentTimeMillis()+""
+        return ResultData.success(map);
+    }
+}
\ No newline at end of file
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/AjaxResult.java b/flower_city/src/main/java/com/dg/core/db/gen/AjaxResult.java
new file mode 100644
index 0000000..e199de4
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/AjaxResult.java
@@ -0,0 +1,163 @@
+package com.dg.core.db.gen;
+
+import com.dg.core.HttpStatus;
+import io.swagger.annotations.ApiModel;
+
+import java.util.HashMap;
+
+/**
+ * 操作消息提醒
+ * 
+ * @author ruoyi
+ */
+@ApiModel(value = "返回对象")
+public class AjaxResult<T> extends HashMap<String, Object>
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 状态码 */
+    public static final String CODE_TAG = "code";
+
+    /** 返回内容 */
+    public static final String MSG_TAG = "msg";
+
+    /** 数据对象 */
+    public static final String DATA_TAG = "data";
+
+    /**
+     * 初始化一个新创建的 AjaxResult 对象,使其表示一个空消息。
+     */
+    public AjaxResult()
+    {
+    }
+
+    /**
+     * 初始化一个新创建的 AjaxResult 对象
+     * 
+     * @param code 状态码
+     * @param msg 返回内容
+     */
+    public AjaxResult(int code, String msg)
+    {
+        super.put(CODE_TAG, code);
+        super.put(MSG_TAG, msg);
+    }
+
+    /**
+     * 初始化一个新创建的 AjaxResult 对象
+     * 
+     * @param code 状态码
+     * @param msg 返回内容
+     * @param data 数据对象
+     */
+    public AjaxResult(int code, String msg, Object data)
+    {
+        super.put(CODE_TAG, code);
+        super.put(MSG_TAG, msg);
+        super.put(DATA_TAG, data);
+    }
+
+    /**
+     * 返回成功消息
+     * 
+     * @return 成功消息
+     */
+    public static AjaxResult success()
+    {
+        return AjaxResult.success("操作成功");
+    }
+
+    /**
+     * 返回成功数据
+     * 
+     * @return 成功消息
+     */
+    public static AjaxResult success(Object data)
+    {
+
+
+        return AjaxResult.success("操作成功", data);
+    }
+
+    /**
+     * 返回成功消息
+     * 
+     * @param msg 返回内容
+     * @return 成功消息
+     */
+    public static AjaxResult success(String msg)
+    {
+        return AjaxResult.success(msg, null);
+    }
+
+    /**
+     * 返回成功消息
+     * 
+     * @param msg 返回内容
+     * @param data 数据对象
+     * @return 成功消息
+     */
+    public static AjaxResult success(String msg, Object data)
+    {
+        return new AjaxResult(HttpStatus.SUCCESS, msg, data);
+    }
+
+    /**
+     * 返回错误消息
+     * 
+     * @return
+     */
+    public static AjaxResult error()
+    {
+        return AjaxResult.error("操作失败");
+    }
+
+    /**
+     * 返回错误消息
+     * 
+     * @param msg 返回内容
+     * @return 警告消息
+     */
+    public static AjaxResult error(String msg)
+    {
+        return AjaxResult.error(msg, null);
+    }
+
+    /**
+     * 返回错误消息
+     * 
+     * @param msg 返回内容
+     * @param data 数据对象
+     * @return 警告消息
+     */
+    public static AjaxResult error(String msg, Object data)
+    {
+        return new AjaxResult(HttpStatus.ERROR, msg, data);
+    }
+
+    /**
+     * 返回错误消息
+     * 
+     * @param code 状态码
+     * @param msg 返回内容
+     * @return 警告消息
+     */
+    public static AjaxResult error(int code, String msg)
+    {
+        return new AjaxResult(code, msg, null);
+    }
+
+    /**
+     * 方便链式调用
+     *
+     * @param key 键
+     * @param value 值
+     * @return 数据对象
+     */
+    @Override
+    public AjaxResult put(String key, Object value)
+    {
+        super.put(key, value);
+        return this;
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/Agreement.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/Agreement.java
new file mode 100644
index 0000000..cb6f473
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/Agreement.java
@@ -0,0 +1,91 @@
+package com.dg.core.db.gen.entity;
+
+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 com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 相关协议
+ * </p>
+ *
+ * @author fengjin
+ * @since 2022-09-22
+ */
+@TableName("automessage_agreement")
+@Data
+@ApiModel("相关协议实体类")
+public class Agreement implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty("主键id")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 协议名称
+     */
+    @ApiModelProperty("协议名称")
+    private String agreement;
+
+    /**
+     * 修改人id
+     */
+    @ApiModelProperty("修改人id")
+    private String updateUserId;
+
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty("修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime updateTime;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty("创建人id")
+    private String createUserId;
+
+    /**
+     * 协议内容
+     */
+    @ApiModelProperty("协议内容")
+    private String agreementContent;
+
+    /**
+     * 上次修改人名称
+     */
+    @TableField(exist = false)
+    @ApiModelProperty("上次修改人名称")
+    private String updateUserName;
+
+    /**
+     * 创建人名称
+     */
+    @TableField(exist = false)
+    @ApiModelProperty("创建人名称")
+    private String createUserName;
+
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/AreaCode2022.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/AreaCode2022.java
new file mode 100644
index 0000000..4482778
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/AreaCode2022.java
@@ -0,0 +1,63 @@
+package com.dg.core.db.gen.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+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;
+import java.util.List;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author fengjin
+ * @since 2022-09-20
+ */
+@TableName("automessage_area_code_2022")
+@Data
+@ApiModel("所属地区实体类")
+public class AreaCode2022 implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 区划代码
+     */
+    @ApiModelProperty("区划代码")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long code;
+
+    /**
+     * 名称
+     */
+    @ApiModelProperty("name")
+    private String name;
+
+    /**
+     * 级别1-5,省市县镇村
+     */
+    @ApiModelProperty("级别1-5,省市县镇村")
+    private Integer level;
+
+    /**
+     * 父级区划代码
+     */
+    @ApiModelProperty("父级区划代码")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long pcode;
+
+    /**
+     * 子节点
+     */
+    @TableField(exist = false)
+    @ApiModelProperty("子节点")
+    private List<AreaCode2022> child;
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/AutomessageCommonProblem.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/AutomessageCommonProblem.java
new file mode 100644
index 0000000..4d47261
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/AutomessageCommonProblem.java
@@ -0,0 +1,84 @@
+package com.dg.core.db.gen.entity;
+
+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 com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 常见问题表
+ * </p>
+ *
+ * @author fengjin
+ * @since 2022-09-23
+ */
+@TableName("automessage_common_problem")
+@Data
+@ApiModel("常见问题实体类")
+public class AutomessageCommonProblem implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 常见问题标题
+     */
+    @ApiModelProperty("常见问题标题")
+    private String title;
+
+    /**
+     * 常见问题解答内容
+     */
+    @ApiModelProperty("常见问题解答内容")
+    private String content;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty("修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime updateTime;
+
+    /**
+     * 修改人id
+     */
+    @ApiModelProperty("修改人id")
+    private String updateUserId;
+
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty("创建人id")
+    private String createUserId;
+
+    @TableField(exist = false)
+    @ApiModelProperty(name = "updateUserName", value = "上次修改人")
+    private String  updateUserName;
+
+    @TableField(exist = false)
+    @ApiModelProperty(name = "createUserName", value = "创建人")
+    private String  createUserName;
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/AutomessagePolicyDocuments.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/AutomessagePolicyDocuments.java
new file mode 100644
index 0000000..c8ac4a2
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/AutomessagePolicyDocuments.java
@@ -0,0 +1,124 @@
+package com.dg.core.db.gen.entity;
+
+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 com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 法律法规政策文件实体类
+ * </p>
+ *
+ * @author fengjin
+ * @since 2022-11-10
+ */
+@TableName("automessage_policy_documents")
+@Data
+@ApiModel("法律法规政策文件实体类")
+public class AutomessagePolicyDocuments implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 部门id
+     */
+    @ApiModelProperty("部门id")
+    private Integer departmentId;
+
+    /**
+     * 名称
+     */
+    @ApiModelProperty("名称")
+    private String name;
+
+    /**
+     * 跳转链接类型(1.富文本2.微信文章)
+     */
+    @ApiModelProperty(" 跳转链接类型(1.富文本2.微信文章)")
+    private String linkType;
+
+    /**
+     * 文章链接
+     */
+    @ApiModelProperty("文章链接")
+    private String articleLink;
+
+    /**
+     * 文章富文本
+     */
+    @ApiModelProperty("文章富文本")
+    private String richText;
+
+    /**
+     * 类型(1.法律法规2.政策文件)
+     */
+    @ApiModelProperty("类型(1.法律法规2.政策文件)")
+    private Integer type;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
+    /**
+     * 创建人
+     */
+    @ApiModelProperty("创建人")
+    private String createUserId;
+
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty("修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime updateTime;
+
+
+    /**
+     * 修改人
+     */
+    @ApiModelProperty("修改人")
+    private String  updateUserId;
+
+    /**
+     * 部门名称
+     */
+    @TableField(exist = false)
+    @ApiModelProperty("部门名称")
+    private String departmentName;
+
+    /**
+     * 修改人名称
+     */
+    @TableField(exist = false)
+    @ApiModelProperty("修改人名称")
+    private String updateUserName;
+
+    /**
+     * 创建人名称
+     */
+    @TableField(exist = false)
+    @ApiModelProperty("创建人名称")
+    private String createUserName;
+
+    @TableField(exist = false)
+    @ApiModelProperty("是否能够删除1.可以删除修改 2.不能删除修改")
+    private  Integer isDelete;
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/AutomessageSmartConsulting.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/AutomessageSmartConsulting.java
new file mode 100644
index 0000000..508a08b
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/AutomessageSmartConsulting.java
@@ -0,0 +1,57 @@
+package com.dg.core.db.gen.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+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.time.LocalDateTime;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author fengjin
+ * @since 2022-11-16
+ */
+@TableName("automessage_smart_consulting")
+@Data
+@ApiModel("智能咨询访问类")
+public class AutomessageSmartConsulting implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty("主键id")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
+    /**
+     * 咨询类型:1.小程序访问 2.门户网访问
+     */
+    @ApiModelProperty("咨询类型:1.小程序访问 2.门户网访问")
+    private Integer type;
+
+    /**
+     * 咨询人id 可以为 空
+     */
+    @ApiModelProperty("咨询人id 可以为 空")
+    private String createUserId;
+
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/AutomessageSysSettings.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/AutomessageSysSettings.java
new file mode 100644
index 0000000..92c6f9f
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/AutomessageSysSettings.java
@@ -0,0 +1,90 @@
+package com.dg.core.db.gen.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 系统设置表
+ * </p>
+ *
+ * @author fengjin
+ * @since 2022-10-14
+ */
+@TableName("automessage_sys_settings")
+@Data
+@ApiModel("系统设置类")
+public class AutomessageSysSettings implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 设置名称
+     */
+    @ApiModelProperty("设置名称")
+    private String settingName;
+
+    /**
+     * 系统通知时间
+     */
+    @ApiModelProperty("系统通知时间")
+    private Integer timeoutNotificationNum;
+
+
+    /**
+     * 系统提醒时间
+     */
+    @ApiModelProperty("系统提醒时间")
+    private Integer timeoutRemindNum;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    private LocalDateTime createTime;
+
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty("创建人id")
+    private Integer createUserId;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty("更新时间")
+    private LocalDateTime updateTime;
+
+    /**
+     * 修改人id
+     */
+    @ApiModelProperty("修改人id")
+    private String updateUserId;
+
+    /**
+     * 小程序二维码
+     */
+    @ApiModelProperty("小程序二维码")
+    private String appletsUrl;
+
+    /**
+     * 官网二维码
+     */
+    @ApiModelProperty("小程序二维码")
+    private String websiteUrl;
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/AutomessageSysSettingsRecord.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/AutomessageSysSettingsRecord.java
new file mode 100644
index 0000000..7a3678a
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/AutomessageSysSettingsRecord.java
@@ -0,0 +1,50 @@
+package com.dg.core.db.gen.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 系统设置记录表
+ * </p>
+ *
+ * @author fengjin
+ * @since 2022-10-14
+ */
+@TableName("automessage_sys_settings_record")
+@Data
+@ApiModel("系统设置类")
+public class AutomessageSysSettingsRecord implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 设置id
+     */
+    private Integer settingId;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createTime;
+
+    /**
+     * 创建人id(及修改设置的人员)
+     */
+    private String createUserId;
+
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/AutomessageSysUserRecord.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/AutomessageSysUserRecord.java
new file mode 100644
index 0000000..1e575a0
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/AutomessageSysUserRecord.java
@@ -0,0 +1,58 @@
+package com.dg.core.db.gen.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+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.time.LocalDateTime;
+
+/**
+ * <p>
+ * 用户访问记录
+ * </p>
+ *
+ * @author fengjin
+ * @since 2022-10-15
+ */
+@TableName("automessage_sys_user_record")
+@Data
+@ApiModel("用户访问记录类")
+public class AutomessageSysUserRecord implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty("用户id")
+    private String userId;
+
+    /**
+     * 访问时间
+     */
+    @ApiModelProperty("访问时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
+    /**
+     * 进入方式(1.扫码进入 2.花城进入 3.分享进入)
+     */
+    @ApiModelProperty("进入方式(1.扫码进入 2.花城进入 3.分享进入)")
+    private Integer joinType;
+
+
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/AutomessageTransactionEventInterview.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/AutomessageTransactionEventInterview.java
new file mode 100644
index 0000000..12d098a
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/AutomessageTransactionEventInterview.java
@@ -0,0 +1,58 @@
+package com.dg.core.db.gen.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+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;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 办事指南访问表
+ * </p>
+ *
+ * @author fengjin
+ * @since 2022-09-26
+ */
+@TableName("automessage_transaction_event_interview")
+@Data
+@ApiModel("办事指南访问表实体类")
+public class AutomessageTransactionEventInterview implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty("主键")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 办事指南id
+     */
+    @ApiModelProperty("办事指南id")
+    private Integer transactionEventId;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty("用户id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long userId;
+
+    /**
+     * 访问时间
+     */
+    @ApiModelProperty("访问时间")
+    private LocalDateTime interviewTime;
+
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/ClassifyAdministration.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/ClassifyAdministration.java
new file mode 100644
index 0000000..4779476
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/ClassifyAdministration.java
@@ -0,0 +1,85 @@
+package com.dg.core.db.gen.entity;
+
+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 com.fasterxml.jackson.annotation.JsonFormat;
+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;
+import java.time.LocalDateTime;
+import java.util.List;
+
+@ApiModel("分类管理实体类")
+@Data
+@TableName("automessage_classify_administration")
+public class ClassifyAdministration implements Serializable
+{
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(name = "id", value = "主键")
+    @JsonSerialize(using = ToStringSerializer.class)
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 分类级别 1 一级    2 二级
+     */
+    @ApiModelProperty(name = "classifyGrade", value = "分类级别 1 一级    2 二级 ")
+    private String classifyGrade;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(name = "createTime", value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(name = "updateTime", value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime updateTime;
+
+    /**
+     * 分类图片地址
+     */
+    @ApiModelProperty(name = "classifyIcon", value = "分类图片地址")
+    private String classifyIcon;
+
+    /**
+     * 上级分类
+     */
+    @ApiModelProperty(name = "parentId", value = "上级分类")
+    private String parentId;
+
+    /**
+     * 分类名字
+     */
+    @ApiModelProperty(name = "classifyName", value = "分类名字")
+    private String classifyName;
+
+    /**
+     * 父级分类名字
+     */
+    @TableField(exist = false)
+    @ApiModelProperty(name = "parentName", value = "父级分类名字")
+    private String parentName;
+
+    @TableField(exist = false)
+    @ApiModelProperty(name = "ClassifyAdministrationEntityList", value = "下级分类")
+    private List<ClassifyAdministration> ClassifyAdministrationEntityList;
+
+    @TableField(exist = false)
+    @ApiModelProperty(name = "transactNum", value = "办理事项数量")
+    private String transactNum;
+    
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/CountList.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/CountList.java
new file mode 100644
index 0000000..4cdf78c
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/CountList.java
@@ -0,0 +1,20 @@
+package com.dg.core.db.gen.entity;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+@ApiModel("时间筛选列表实体类")
+@Data
+public class CountList implements Serializable
+{
+
+    @ApiModelProperty("待办结列表")
+    private List<CountListNum> waitDealWithList;
+
+    @ApiModelProperty("已办结列表")
+    private List<CountListNum> haveDealWith;
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/CountListNum.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/CountListNum.java
new file mode 100644
index 0000000..f3f403e
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/CountListNum.java
@@ -0,0 +1,22 @@
+package com.dg.core.db.gen.entity;
+
+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.time.LocalDateTime;
+import java.util.List;
+
+@ApiModel("时间筛选实体类")
+@Data
+public class CountListNum implements Serializable
+{
+    @ApiModelProperty("时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty("数量")
+    private Integer num;
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/EfficiencyEntity.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/EfficiencyEntity.java
new file mode 100644
index 0000000..ca5a006
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/EfficiencyEntity.java
@@ -0,0 +1,45 @@
+package com.dg.core.db.gen.entity;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel("首页效率实体类")
+public class EfficiencyEntity implements Serializable
+{
+    /**
+     * 回复率
+     */
+    @ApiModelProperty("回复率")
+    private String reversionRate="0%";
+
+    /**
+     * 办结率
+     */
+    @ApiModelProperty("办结率")
+    private String workEfficiency="0%";
+
+    /**
+     * 解决率
+     */
+    @ApiModelProperty("解决率")
+    private String resolveEfficiency="0%";
+
+    /**
+     * 好评率
+     */
+    @ApiModelProperty("好评率")
+    private String goodReputationEfficiency="0%";
+
+
+    /**
+     * 超时办结率
+     */
+    @ApiModelProperty("超时办结率")
+    private String timeoutEfficiency="0%";
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/ElseAccessoryEntity.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/ElseAccessoryEntity.java
new file mode 100644
index 0000000..9b8c94c
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/ElseAccessoryEntity.java
@@ -0,0 +1,91 @@
+package com.dg.core.db.gen.entity;
+
+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 com.fasterxml.jackson.annotation.JsonFormat;
+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;
+import java.time.LocalDateTime;
+
+@Data
+@ApiModel("其他附件管理实体类")
+@TableName("automessage_else_accessory")
+public class ElseAccessoryEntity implements Serializable
+{
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(name = "id", value = "主键")
+    @JsonSerialize(using = ToStringSerializer.class)
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 部门id
+     */
+    @ApiModelProperty(name = "departmentId", value = "部门id")
+    private String departmentId;
+
+    /**
+     * 部门id
+     */
+    @TableField(exist = false)
+    @ApiModelProperty(name = "departmentName", value = "部门名称")
+    private String departmentName;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(name = "createTime", value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(name = "updateTime", value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime updateTime;
+
+    /**
+     * 事项名称
+     */
+    @ApiModelProperty(name = "name", value = "事项名称")
+    private String name;
+
+    /**
+     * 文件地址
+     */
+    @ApiModelProperty(name = "url", value = "文件地址")
+    private String url;
+
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(name = "createUserId", value = "创建人id")
+    private String createUserId;
+
+    /**
+     * 是否能删除修改
+     */
+    @TableField(exist = false)
+    @ApiModelProperty(name = "isDelete", value = "是否能删除修改")
+    private Integer isDelete;
+
+    /**
+     * 创建人
+     */
+    @TableField(exist = false)
+    @ApiModelProperty(name = "createUserName", value = "创建人")
+    private String createUserName;
+
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/Guidance.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/Guidance.java
new file mode 100644
index 0000000..82defe2
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/Guidance.java
@@ -0,0 +1,19 @@
+package com.dg.core.db.gen.entity;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@ApiModel("办事指南表")
+@Data
+public class Guidance implements Serializable
+{
+
+    @ApiModelProperty(name = "name", value = "名称")
+    private String name;
+
+    @ApiModelProperty(name = "num", value = "内容")
+    private String num;
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/GuideEvolveEntity.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/GuideEvolveEntity.java
new file mode 100644
index 0000000..a39f196
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/GuideEvolveEntity.java
@@ -0,0 +1,160 @@
+package com.dg.core.db.gen.entity;
+
+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 com.fasterxml.jackson.annotation.JsonFormat;
+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;
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Data
+@ApiModel("导办工单进展记录表")
+@TableName("automessage_guide_evolve")
+public class GuideEvolveEntity implements Serializable
+{
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(name = "id", value = "主键")
+    @JsonSerialize(using = ToStringSerializer.class)
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+
+    /**
+     * 发起人部门id
+     */
+    @ApiModelProperty(name = "departmentalId", value = "发起人部门id")
+    private String departmentalId;
+
+    /**
+     * 接收人部门id
+     */
+    @ApiModelProperty(name = "fromDepartmentalId", value = "接收人部门id")
+    private String fromDepartmentalId;
+
+    /**
+     * 发起人
+     */
+    @ApiModelProperty(name = "toUserId", value = "发起人")
+    private String toUserId;
+
+    /**
+     * 接收人
+     */
+    @ApiModelProperty(name = "fromUserId", value = "接收人")
+    private String fromUserId;
+
+    /**
+     * state", value = "状态(1待分配  2 待办结 3 已办结 4 待评价 5 已取消 6未解决  7已解决  8 系统自动分配 9 回复 10转派 11手动分配12默认好评13评价14.删除评论)
+     */
+    @ApiModelProperty(name = "state", value = "状态(1待分配  2 待办结 3 已办结 4 待评价 5 已取消 6未解决  7已解决  8 系统自动分配 9 回复 10转派 11手动分配 12默认好评 13用户评价14.删除评论)")
+    private String state;
+
+
+    /**
+     * 工单号
+     */
+    @ApiModelProperty(name = "guideOrderNum", value = "工单号")
+    private String guideOrderNum;
+    /**
+     * 超时状态 是否超时 (1未超时  2超时)
+     */
+    @ApiModelProperty(name = "isTimeout", value = "超时状态 是否超时 (1未超时  2超时)")
+    private String isTimeout;
+
+    /**
+     * 备注内容
+     */
+    @ApiModelProperty(name = "remark", value = "备注内容")
+    private String remark;
+
+    /**
+     * 工单id
+     */
+    @ApiModelProperty(name = "guideId", value = "工单id")
+    private String guideId;
+
+    /**
+     * 办事指南id
+     */
+    @ApiModelProperty(name = "transactionId", value = "办事指南id")
+    private String transactionId;
+
+    /**
+     * 附件id(系统列表选择)
+     */
+    @ApiModelProperty(name = "accessoryId", value = "附件id(系统列表选择)")
+    private String accessoryId;
+
+    /**
+     * 用户手动上传附件名称
+     */
+    @ApiModelProperty(name = "accessoryName", value = "用户手动上传附件名称")
+    private String accessoryName;
+
+    /**
+     * 用户手动上传附件url
+     */
+    @ApiModelProperty(name = "accessoryUrl", value = "用户手动上传附件url")
+    private String accessoryUrl;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(name = "updateTime", value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(name = "updateTime", value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime updateTime;
+
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(name = "guidOrderNum", value = "工单号")
+     private String guidOrderNum;
+
+
+    /**
+     * 视频url
+     */
+    @ApiModelProperty(name = "videoUrl", value = "视频url")
+    private String videoUrl;
+
+    /**
+     * 图片url
+     */
+    @ApiModelProperty(name = "pictureUrl", value = "图片url")
+    private String pictureUrl;
+
+    @TableField(exist = false)
+    @ApiModelProperty(name = "toUserName", value = "发起人名字")
+    private String toUserName;
+
+    @TableField(exist = false)
+    @ApiModelProperty(name = "toUserName", value = "接收人名字")
+    private String fromUserName;
+
+    @TableField(exist = false)
+    @ApiModelProperty(name = "elseAccessoryEntities", value = "其他附件列表")
+    private List<ElseAccessoryEntity> elseAccessoryEntities;
+
+    @TableField(exist = false)
+    @ApiModelProperty(name = "transactionEvents", value = "推荐办事指南列表")
+    private List<TransactionEvent> transactionEvents;
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/GuidePlate.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/GuidePlate.java
new file mode 100644
index 0000000..2207971
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/GuidePlate.java
@@ -0,0 +1,24 @@
+package com.dg.core.db.gen.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@ApiModel("导办工单进展记录表")
+@Data
+public class GuidePlate implements Serializable
+{
+
+    @ApiModelProperty(name = "userName", value = "用户名")
+    private String userName;
+
+    @ApiModelProperty(name = "departmentNmae", value = "部门")
+    private String departmentNmae;
+
+    @ApiModelProperty(name = "num", value = "内容")
+    private String num;
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/GuideRepairOrder.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/GuideRepairOrder.java
new file mode 100644
index 0000000..eabd2c6
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/GuideRepairOrder.java
@@ -0,0 +1,262 @@
+package com.dg.core.db.gen.entity;
+
+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 com.fasterxml.jackson.annotation.JsonFormat;
+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;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * <p>
+ * 导办工单管理
+ * </p>
+ *
+ * @author fengjin
+ * @since 2022-09-19
+ */
+@TableName("automessage_guide_repair_order")
+@Data
+@ApiModel("导办工单管理实体类")
+public class GuideRepairOrder implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty("主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 工单号
+     */
+    @ApiModelProperty("工单号")
+    private String orderNum;
+
+    /**
+     * 事项id
+     */
+    @ApiModelProperty("事项id")
+    private Integer matterId;
+
+    /**
+     * 事项名称
+     */
+    @ApiModelProperty("事项名称")
+    private String matterName;
+
+    /**
+     * 创建部门id
+     */
+    @ApiModelProperty("创建部门id")
+    private String departmentId;
+
+    /**
+     * 分类id
+     */
+    @ApiModelProperty("分类id")
+    private String classifyId;
+
+    /**
+     * 咨询内容
+     */
+    @ApiModelProperty("咨询内容")
+    private String consultContent;
+
+    /**
+     * 咨询人姓名
+     */
+    @ApiModelProperty("咨询人姓名")
+    private String consultUserName;
+
+    /**
+     * 提交用户
+     */
+    @ApiModelProperty("提交用户")
+    private String submitUserId;
+
+    /**
+     * 导办人员
+     */
+    @ApiModelProperty("导办人员")
+    private String guideUserId;
+
+    /**
+     * 导办部门
+     */
+    @ApiModelProperty("导办部门")
+    private String guideDepartmentId;
+
+    /**
+     * 状态(1待分配  2 待办结 3 已办结 4 待评价 5 已取消)
+     */
+    @ApiModelProperty("状态(1待分配  2 待办结 3 已办结 4 待评价 5 已取消)")
+    private String state;
+
+    /**
+     * 咨询人电话
+     */
+    @ApiModelProperty("咨询人电话")
+    private String consultUserPhone;
+
+    /**
+     * 提交用户电话
+     */
+    @ApiModelProperty("提交用户电话")
+    private String submitUserPhone;
+
+    /**
+     * 导办人员电话
+     */
+    @ApiModelProperty("导办人员电话")
+    private String guideUserPhone;
+
+    /**
+     * 所属地区
+     */
+    @ApiModelProperty("所属地区")
+    private String areaCode;
+
+    /**
+     * 详情地址
+     */
+    @ApiModelProperty("详情地址")
+    private String detailedAddress;
+
+    /**
+     * 提交方式(1 小程序 2.门户网)
+     */
+    @ApiModelProperty("提交方式(1 小程序 2.门户网)")
+    private Integer  submitType;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime updateTime;
+
+    @ApiModelProperty(name = "images", value = "图片地址(用逗号分隔)")
+    private String images;
+
+    @ApiModelProperty(name = "video", value = "视频地址")
+    private String video;
+
+    @ApiModelProperty(name = "isTimeout", value = "是否超时 (1 未超时   2已超时)")
+    private String isTimeout;
+
+    @TableField(exist = false)
+    @ApiModelProperty(name = "guideRepairOrderList", value = "工单处理进度")
+    List<GuideEvolveEntity> guideEvolveEntities;
+
+
+    @ApiModelProperty(name = "evaluateContent", value = "评价内容")
+    private String evaluateContent;
+
+    @ApiModelProperty(name = "suggest", value = "建议")
+    private String suggest;
+
+    @ApiModelProperty(name = "evaluateState", value = "评价状态(1 满意  2不满意)")
+    private String evaluateState;
+
+    @ApiModelProperty(name = "serviceState", value = "服务状态(1.已解决 2.未解决)")
+    private  Integer serviceState;
+
+    /**
+     * 超时时间
+     */
+    @ApiModelProperty("超时时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime timeoutTime;
+
+    /**
+     * 是否推送过(1 是 2 否)
+     */
+    @ApiModelProperty("是否推送过(1 是 2 否)")
+    private Integer isPush;
+
+
+    /**
+     * 是否提醒推送过(1 是 2 否)
+     */
+    @ApiModelProperty("是否提醒推送过(1 是 2 否)")
+    private Integer isRemindPush;
+
+    /**
+     * 是否隐藏评论(1 是 2 否)
+     */
+    @ApiModelProperty("是否隐藏评论(1 是 2 否)")
+    private Integer isHideComments;
+
+    @TableField(exist = false)
+    @ApiModelProperty(name = "sumClassifyName", value = "完整分类名称")
+    private String sumClassifyName;
+
+    @TableField(exist = false)
+    @ApiModelProperty(name = "consultUser", value = "咨询人姓名+电话")
+    private String consultUser;
+
+    @TableField(exist = false)
+    @ApiModelProperty(name = "submitUser", value = "提交人姓名+电话")
+    private String submitUser;
+
+    @TableField(exist = false)
+    @ApiModelProperty(name = "guideUser", value = "导办人姓名+电话")
+    private String guideUser;
+
+    @TableField(exist = false)
+    @ApiModelProperty(name = "organizationName", value = "创建部门")
+    private String organizationName;
+
+    @TableField(exist = false)
+    @ApiModelProperty(name = "guideDepartmentName", value = "导办部门")
+    private String guideDepartmentName;
+
+    @TableField(exist = false)
+    @ApiModelProperty(name = "areaName", value = "所属地区名字")
+    private String areaName;
+
+    @Override
+    public String toString() {
+        return "GuideRepairOrder{" +
+        "id=" + id +
+        ", orderNum=" + orderNum +
+        ", matterId=" + matterId +
+        ", matterName=" + matterName +
+        ", departmentId=" + departmentId +
+        ", classifyId=" + classifyId +
+        ", consultContent=" + consultContent +
+        ", consultUserId=" + consultUserName +
+        ", submitUserId=" + submitUserId +
+        ", guideUserId=" + guideUserId +
+        ", guideDepartmentId=" + guideDepartmentId +
+        ", state=" + state +
+        ", consultUserPhone=" + consultUserPhone +
+        ", submitUserPhone=" + submitUserPhone +
+        ", guideUserPhone=" + guideUserPhone +
+        "}";
+    }
+
+
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/GuideRepairOrderImage.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/GuideRepairOrderImage.java
new file mode 100644
index 0000000..0a0573d
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/GuideRepairOrderImage.java
@@ -0,0 +1,72 @@
+package com.dg.core.db.gen.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+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;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 导办功能图片表
+ * </p>
+ *
+ * @author fengjin
+ * @since 2022-09-19
+ */
+@TableName("automessage_guide_repair_order_image")
+@ApiModel("导办工单图片管理实体类")
+@Data
+public class GuideRepairOrderImage implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty("主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 导办工单id
+     */
+    @ApiModelProperty("导办工单id")
+    private String guideRepairOrderId;
+
+    /**
+     * 路径
+     */
+    @ApiModelProperty("路径")
+    private String url;
+
+
+    /**
+     * 路径
+     */
+    @ApiModelProperty("类型1,视频 2.图片")
+    private Integer type;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
+
+
+    @Override
+    public String toString() {
+        return "GuideRepairOrderImg{" +
+        "id=" + id +
+        ", guideRepairOrderId=" + guideRepairOrderId +
+        ", url=" + url +
+        "}";
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/HuaChengSysUser.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/HuaChengSysUser.java
new file mode 100644
index 0000000..bcd42fa
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/HuaChengSysUser.java
@@ -0,0 +1,285 @@
+package com.dg.core.db.gen.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+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;
+
+
+/**
+ * 此类为花城e+主体类
+ * 不可修改  切记!!!!!!!!!!!!!!!!!!
+ * 不可修改  切记!!!!!!!!!!!!!!!!!!
+ * 不可修改  切记!!!!!!!!!!!!!!!!!!
+ * 不可修改  切记!!!!!!!!!!!!!!!!!!
+ * 不可修改  切记!!!!!!!!!!!!!!!!!!
+ * 不可修改  切记!!!!!!!!!!!!!!!!!!
+ */
+@ApiModel("花城用户信息实体类")
+@Data
+@TableName("sys_user")
+public class HuaChengSysUser implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 用户ID
+     */
+    @ApiModelProperty(name = "userId", value = "主键用户id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    @TableId(value = "user_id", type = IdType.AUTO)
+    private String userId;
+
+    /**
+     * 登录账户
+     */
+    @ApiModelProperty(name = "account", value = "登录账户")
+    private String account;
+
+    /**
+     * 登录密码
+     */
+    @ApiModelProperty(name = "password", value = "登录密码")
+    private String password;
+
+    /**
+     * 微信小程序唯一标识
+     */
+    @ApiModelProperty(name = "openid", value = "微信小程序唯一标识")
+    private String openid;
+
+    /**
+     * 会话密钥
+     */
+    @ApiModelProperty(name = "sessionKey", value = "会话密钥")
+    private String sessionKey;
+
+    /**
+     * 用户在开放平台的唯一标识符
+     */
+    @ApiModelProperty(name = "unionid", value = "用户在开放平台的唯一标识符")
+    private String unionid;
+
+    /**
+     * 手机号
+     */
+    @ApiModelProperty(name = "phone", value = "手机号")
+    private String phone;
+
+    /**
+     * 昵称
+     */
+    @ApiModelProperty(name = "nickName", value = "昵称")
+    private String nickName;
+
+    /**
+     * 真实名字
+     */
+    @ApiModelProperty(name = "name", value = "真实名字")
+    private String name;
+
+    /**
+     * 社区ID
+     */
+    @ApiModelProperty(name = "communityId", value = "社区ID")
+    private String communityId;
+
+    /**
+     * 性别 1 男 2 女
+     */
+    @ApiModelProperty(name = "sex", value = "性别 1 男 2 女")
+    private String sex;
+
+    /**
+     * 身份证号
+     */
+    @ApiModelProperty(name = "idCard", value = "身份证号")
+    private String idCard;
+
+    /**
+     * 生日
+     */
+    @ApiModelProperty(name = "birthday", value = "生日")
+    private String birthday;
+
+    /**
+     * 头像
+     */
+    @ApiModelProperty(name = "imageUrl", value = "头像")
+    private String imageUrl;
+
+    /**
+     * 用户类型 1 小程序 2 运营平台 3 社区平台 5 商家后台 6 网格综治APP 7 网格综治后台 8大屏 9城管后台 10 便民服务商家后台 11三说会堂后台 12行业分中心后台
+     */
+    @ApiModelProperty(name = "type", value = "用户类型 1 小程序 2 运营平台 3 社区平台 5 商家后台 6 网格综治APP 7 网格综治后台 8大屏 9城管后台 10 便民服务商家后台 11三说会堂后台 12行业分中心后台")
+    private String type;
+
+    /**
+     * 职业
+     */
+    @ApiModelProperty(name = "job", value = "职业")
+    private String job;
+
+    /**
+     * 是否志愿者 0 否 1 是
+     */
+    @ApiModelProperty(name = "isVolunteer", value = "是否志愿者 0 否 1 是")
+    private String isVolunteer;
+
+    /**
+     * 是否党员 0 否 1 是
+     */
+    @ApiModelProperty(name = "isPartymember", value = "是否党员 0 否 1 是")
+    private String isPartymember;
+
+    /**
+     * 1 启用 2 禁用
+     */
+    @ApiModelProperty(name = "status", value = "1 启用 2 禁用")
+    private String status;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(name = "createAt", value = "创建时间")
+    private String createAt;
+
+    /**
+     * 最后登录时间
+     */
+    @ApiModelProperty(name = "lastLoginTime", value = "最后登录时间")
+    private String lastLoginTime;
+
+    /**
+     * 标签多个用,隔开
+     */
+    @ApiModelProperty(name = "tags", value = "标签多个用,隔开")
+    private String tags;
+
+    /**
+     * 家庭id
+     */
+    @ApiModelProperty(name = "familyId", value = "家庭id")
+    private String familyId;
+
+    /**
+     * 人脸采集照片url
+     */
+    @ApiModelProperty(name = "faceUrl", value = "人脸采集照片url")
+    private String faceUrl;
+
+    /**
+     * 人脸采集审核状态 0 待审核 1 审核通过 2驳回
+     */
+    @ApiModelProperty(name = "faceState", value = "人脸采集审核状态 0 待审核 1 审核通过 2驳回")
+    private String faceState;
+
+    /**
+     * 驳回原因
+     */
+    @ApiModelProperty(name = "rejectReson", value = "驳回原因")
+    private String rejectReson;
+
+    /**
+     * 小区id
+     */
+    @ApiModelProperty(name = "areaId", value = "小区id")
+    private String areaId;
+
+    /**
+     * 证件照(人相面)照片
+     */
+    @ApiModelProperty(name = "cardPhotoFront", value = "证件照(人相面)照片")
+    private String cardPhotoFront;
+
+    /**
+     * 证件照(国徽面)照片
+     */
+    @ApiModelProperty(name = "cardPhotoBack", value = "证件照(国徽面)照片")
+    private String cardPhotoBack;
+
+    /**
+     * 户口本
+     */
+    @ApiModelProperty(name = "familyBook", value = "户口本")
+    private String familyBook;
+
+    /**
+     * 连续登陆天数 每天凌晨定时任务更新
+     */
+    @ApiModelProperty(name = "continuousLandingDays", value = "连续登陆天数 每天凌晨定时任务更新")
+    private String continuousLandingDays;
+
+    /**
+     * 小程序首页是否显示公告(1.是 2.否)
+     */
+    @ApiModelProperty(name = "isTips", value = "小程序首页是否显示公告(1.是 2.否)")
+    private String isTips;
+
+    /**
+     * 网格员工作状态(1.在岗 2.脱岗 3.已下班)
+     */
+    @ApiModelProperty(name = "workStatus", value = "网格员工作状态(1.在岗 2.脱岗 3.已下班)")
+    private String workStatus;
+
+    /**
+     * 网格员上班开始时间
+     */
+    @ApiModelProperty(name = "workStartTime", value = "网格员上班开始时间")
+    private String workStartTime;
+
+    /**
+     * 网格员上班结束时间
+     */
+    @ApiModelProperty(name = "workEndTime", value = "网格员上班结束时间")
+    private String workEndTime;
+
+    /**
+     * 高龄认证显示提示(1.是 2.否)
+     */
+    @ApiModelProperty(name = "bigAgeTips", value = "高龄认证显示提示(1.是 2.否)")
+    private String bigAgeTips;
+
+    /**
+     * 明文密码
+     */
+    @ApiModelProperty(name = "plaintextPassword", value = "明文密码")
+    private String plaintextPassword;
+
+    /**
+     * 街道id
+     */
+    @ApiModelProperty(name = "streetId", value = "街道id")
+    private String streetId;
+
+    /**
+     * 绑定单位
+     */
+    @ApiModelProperty(name = "relationName", value = "绑定单位")
+    private String relationName;
+
+    /**
+     *
+     */
+    @ApiModelProperty(name = "appId", value = "")
+    private String appId;
+
+    /**
+     * 是否接收推送
+     */
+    @ApiModelProperty(name = "isAccept", value = "是否接收推送")
+    private String isAccept;
+
+    /**
+     * 报到单位id
+     */
+    @ApiModelProperty(name = "bindingCheckUnitId", value = "报到单位id")
+    private String bindingCheckUnitId;
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/KeywordEntity.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/KeywordEntity.java
new file mode 100644
index 0000000..811ead1
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/KeywordEntity.java
@@ -0,0 +1,38 @@
+package com.dg.core.db.gen.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+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;
+import java.time.LocalDateTime;
+
+@ApiModel("关键词实体类")
+@Data
+@TableName("automessage_keyword")
+public class KeywordEntity implements Serializable
+{
+    @ApiModelProperty("主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty("关键词")
+    private String name;
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime updateTime;
+    @ApiModelProperty("关键词关联ids")
+    private String transactionId;
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/MenuEntity.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/MenuEntity.java
new file mode 100644
index 0000000..51bae5a
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/MenuEntity.java
@@ -0,0 +1,59 @@
+package com.dg.core.db.gen.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+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;
+import java.time.LocalDateTime;
+
+@ApiModel("菜单实体类")
+@Data
+@TableName("automessage_menu")
+public class MenuEntity implements Serializable
+{
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty("主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 标题
+     */
+    @ApiModelProperty("标题")
+    private String title;
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime updateTime;
+    /**
+     * 备注
+     */
+    @ApiModelProperty("备注")
+    private String remark;
+    /**
+     * 父节点id
+     */
+    @ApiModelProperty("父节点id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long parentId;
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/OrganizationChartEntity.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/OrganizationChartEntity.java
new file mode 100644
index 0000000..1ad2caf
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/OrganizationChartEntity.java
@@ -0,0 +1,142 @@
+package com.dg.core.db.gen.entity;
+
+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 com.fasterxml.jackson.annotation.JsonFormat;
+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;
+import java.time.LocalDateTime;
+import java.util.List;
+
+@ApiModel("组织架构实体类")
+@Data
+@TableName("automessage_organization_chart")
+public class OrganizationChartEntity  implements Serializable
+{
+    /**
+     * 主键id
+     */
+    @ApiModelProperty("主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 单位名称
+     */
+    @ApiModelProperty("单位名称")
+    private String organizationName;
+
+    /**
+     * 办理区域(市)
+     */
+    @ApiModelProperty("办理区域(市)")
+    private String city;
+
+
+    /**
+     * 办理区域(区)
+     */
+    @ApiModelProperty("办理区域(区)")
+    private String district;
+
+    /**
+     * 办理区域(乡)
+     */
+    @ApiModelProperty("办理区域(乡)")
+    private String village;
+
+    /**
+     * 详细地址
+     */
+    @ApiModelProperty("详细地址")
+    private String detailedAddress;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime updateTime;
+
+
+    /**
+     * 父级单位id
+     */
+    @ApiModelProperty("父级单位id")
+    private String parentId;
+
+    /**
+     * 机构等级
+     */
+    @ApiModelProperty("机构等级")
+    private String grade;
+
+    /**
+     * 机构等级
+     */
+    @ApiModelProperty("部门简历")
+    private String resume;
+
+    /**
+     * 机构等级
+     */
+    @ApiModelProperty("联系电话")
+    private String contactNumber;
+
+    /**
+     * areaList
+     */
+    @ApiModelProperty("areaList")
+    private String areaList;
+
+    /**
+     * 机构等级
+     */
+    @ApiModelProperty("部门应用")
+    private String departmentalApplication;
+
+    /**
+     * 修改人
+     */
+    @ApiModelProperty("修改人")
+    private String updateUserId;
+
+    /**
+     * 修改人
+     */
+    @TableField(exist = false)
+    @ApiModelProperty("修改人姓名")
+    private String updateUserName;
+
+
+    /**
+     * 下属机构
+     */
+    @TableField(exist = false)
+    @ApiModelProperty("下属机构")
+    private List<OrganizationChartEntity> child;
+
+    /**
+     * 父级部门名称
+     */
+    @TableField(exist = false)
+    @ApiModelProperty("下属机构")
+    private String parentName;
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/OrganizationEntity.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/OrganizationEntity.java
new file mode 100644
index 0000000..9b211ca
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/OrganizationEntity.java
@@ -0,0 +1,27 @@
+package com.dg.core.db.gen.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@ApiModel("组织排行榜")
+@Data
+public class OrganizationEntity implements Serializable {
+    @ApiModelProperty("id")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+
+    @ApiModelProperty(name = "departmentNmae", value = "部门")
+    private String departmentNmae;
+
+
+    @TableField(exist = false)
+    @ApiModelProperty(name = "num", value = "内容")
+    private String num="0";
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/PieChart.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/PieChart.java
new file mode 100644
index 0000000..a3c12f9
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/PieChart.java
@@ -0,0 +1,19 @@
+package com.dg.core.db.gen.entity;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@ApiModel("饼状图子类实体类")
+@Data
+public class PieChart implements Serializable
+{
+    @ApiModelProperty("一级分类名称")
+    private String name;
+
+
+    @ApiModelProperty("一级分类数量")
+    private String num;
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/PieChartAll.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/PieChartAll.java
new file mode 100644
index 0000000..3c5b08d
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/PieChartAll.java
@@ -0,0 +1,27 @@
+package com.dg.core.db.gen.entity;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+@ApiModel("饼状图实体类")
+@Data
+public class PieChartAll implements Serializable
+{
+    @ApiModelProperty("工单总数")
+    private String workOrderNum;
+
+    @ApiModelProperty("办事指南总数")
+    private String fingerpostNum;
+
+    @ApiModelProperty("工单统计图数据")
+    private List<PieChart> workOrderList;
+
+    @ApiModelProperty("办事指南统计图数据")
+    private List<PieChart> fingerpostList;
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/RangeStatistics.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/RangeStatistics.java
new file mode 100644
index 0000000..eb01ea6
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/RangeStatistics.java
@@ -0,0 +1,19 @@
+package com.dg.core.db.gen.entity;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@ApiModel("导办工单根据地区统计")
+@Data
+public class RangeStatistics implements Serializable
+{
+    @ApiModelProperty("区域名")
+    private String name;
+
+    @ApiModelProperty("数量")
+    private String num;
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/ReplyTemplateEntity.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/ReplyTemplateEntity.java
new file mode 100644
index 0000000..b9a3ce1
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/ReplyTemplateEntity.java
@@ -0,0 +1,158 @@
+package com.dg.core.db.gen.entity;
+
+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 com.fasterxml.jackson.annotation.JsonFormat;
+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;
+import java.time.LocalDateTime;
+import java.util.List;
+
+@ApiModel("回复模板实体类")
+@Data
+@TableName
+public class ReplyTemplateEntity implements Serializable
+{
+    /**
+     * 主键id
+     */
+    @ApiModelProperty("主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 模板名称
+     */
+    @ApiModelProperty("模板名称")
+    private String name;
+
+    /**
+     * 办结状态(1已办结   0未办结)
+     */
+    @ApiModelProperty("办结状态(1已办结   0未办结)")
+    private String handleState;
+
+    /**
+     * 回复内容
+     */
+    @ApiModelProperty("回复内容")
+    private String response;
+
+    /**
+     * 办事指南
+     */
+    @ApiModelProperty("办事指南 ")
+    private String guidance;
+
+    /**
+     * 上传附件url
+     */
+    @ApiModelProperty("上传附件url")
+    private String accessoryUrl;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime updateTime;
+
+    /**
+     * 单位名称
+     */
+    @ApiModelProperty("上传附件名字")
+    private String accessoryName;
+    /**
+     * 单位名称
+     */
+    @ApiModelProperty("视频url")
+    private String videoUrl;
+    /**
+     * 单位名称
+     */
+    @ApiModelProperty("视频名字")
+    private String videoName;
+
+    /**
+     * 单位名称
+     */
+    @ApiModelProperty("图片url")
+    private String pictureUrl;
+    /**
+     * 单位名称
+     */
+    @ApiModelProperty("图片名字")
+    private String pictureName;
+
+
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty("创建人id")
+    private String createUserId;
+
+
+    /**
+     * 创建人姓名
+     */
+    @TableField(exist = false)
+    @ApiModelProperty("创建人姓名")
+    private String createUser;
+
+    /**
+     * 创建人部门id
+     */
+    @ApiModelProperty("创建人部门id")
+    private String departmentId;
+
+    /**
+     * 创建人部门名称
+     */
+    @TableField(exist = false)
+    @ApiModelProperty("创建人部门名称")
+    private String departmentName;
+
+    /**
+     * 附件id
+     */
+    @ApiModelProperty("附件id")
+    private String accessoryId;
+
+    /**
+     * 附件列表
+     */
+    @TableField(exist = false)
+    @ApiModelProperty("附件列表")
+    private List<ElseAccessoryEntity> elseAccessoryEntityList;
+
+    /**
+     * 推荐办事指南列表
+     */
+    @TableField(exist = false)
+    @ApiModelProperty("推荐办事指南列表")
+    private List<TransactionEvent> transactionEventList;
+
+
+    /**
+     * 是否能够删除修改
+     */
+    @TableField(exist = false)
+    @ApiModelProperty("是否能够删除修改")
+    private Integer isDelete;
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/RoleManagementEntity.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/RoleManagementEntity.java
new file mode 100644
index 0000000..c68821e
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/RoleManagementEntity.java
@@ -0,0 +1,76 @@
+package com.dg.core.db.gen.entity;
+
+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 com.fasterxml.jackson.annotation.JsonFormat;
+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;
+import java.time.LocalDateTime;
+
+
+@ApiModel("角色管理实体类")
+@Data
+@TableName("automessage_role_management")
+public class RoleManagementEntity implements Serializable
+{
+    /**
+     * 主键id
+     */
+    @ApiModelProperty("主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     *
+     */
+    @ApiModelProperty("角色名称")
+    private String roleName;
+
+    /**
+     * 创建者id
+     */
+    @ApiModelProperty("创建者id")
+    private String createUserId;
+
+    /**
+     *
+     */
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
+    /**
+     * 修改人员id
+     */
+    @ApiModelProperty("修改人员id")
+    private String updateUserId;
+
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty("修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime  updateTime;
+
+
+    /**
+     * 权限
+     */
+    @ApiModelProperty("权限")
+    private String permission;
+
+    @TableField(exist = false)
+    @ApiModelProperty("创建者名称")
+    private String createName;
+
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/RoleMenuEntity.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/RoleMenuEntity.java
new file mode 100644
index 0000000..5cf008f
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/RoleMenuEntity.java
@@ -0,0 +1,60 @@
+package com.dg.core.db.gen.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+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;
+import java.time.LocalDateTime;
+
+
+@ApiModel("角色菜单关系实体类")
+@Data
+@TableName("automessage_role_menu")
+public class RoleMenuEntity implements Serializable
+{
+    /**
+     * 主键id
+     */
+    @ApiModelProperty("主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 角色id
+     */
+    @ApiModelProperty("角色id")
+    private String roleId;
+
+    /**
+     * 菜单id
+     */
+    @ApiModelProperty("菜单id")
+    private String menuId;
+
+    /**
+     *
+     */
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
+
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty("修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime  updateTime;
+
+
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/Slideshow.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/Slideshow.java
new file mode 100644
index 0000000..bd3382e
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/Slideshow.java
@@ -0,0 +1,72 @@
+package com.dg.core.db.gen.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 轮播图
+ * </p>
+ *
+ * @author fengjin
+ * @since 2022-09-19
+ */
+@ApiModel("轮播图实体类")
+@Data
+@TableName("automessage_slideshow")
+public class Slideshow implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty("主键id")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 图片地址
+     */
+    @ApiModelProperty("图片地址")
+    private String url;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    private LocalDateTime createTime;
+
+    /**
+     * 链接类型(1.暂不设置2.富文本3.微信文章)
+     */
+    @ApiModelProperty("链接类型(1.暂不设置2.富文本3.微信文章)")
+    private Integer linkType;
+
+    /**
+     * 文章链接
+     */
+    @ApiModelProperty("文章链接")
+    private String link;
+
+    /**
+     * 文章标题
+     */
+    @ApiModelProperty("文章标题")
+    private String title;
+
+    /**
+     * 文章内容
+     */
+    @ApiModelProperty("文章内容")
+    private String content;
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/SysUser.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/SysUser.java
new file mode 100644
index 0000000..54f3e05
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/SysUser.java
@@ -0,0 +1,291 @@
+package com.dg.core.db.gen.entity;
+
+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 com.fasterxml.jackson.annotation.JsonFormat;
+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;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 用户信息表
+ * </p>
+ *
+ * @author xiang
+ * @since 2022-07-05
+ */
+@ApiModel("用户信息实体类")
+@Data
+@TableName("automessage_sys_user")
+public class SysUser implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+    /**
+     * 主键id
+     */
+    @ApiModelProperty("主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty("用户id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private String userId;
+
+
+    /**
+     * 登录账号
+     */
+    @ApiModelProperty("登录账号")
+    private String loginName;
+
+    /**
+     * 用户昵称
+     */
+    @ApiModelProperty("用户昵称")
+    private String userName;
+
+    /**
+     * 用户类型(1系统后台用户     2导办人员用户)
+     */
+    @ApiModelProperty("用户类型(1系统后台用户     2导办人员用户  3.普通用户  4.小程序用户")
+    private String userType;
+
+
+    /**
+     * 手机号码
+     */
+    @ApiModelProperty("手机号码")
+    private String phonenumber;
+
+    /**
+     * 性别 1 男 2 女
+     */
+    @ApiModelProperty("性别 1 男 2 女")
+    private String sex;
+
+    /**
+     * 头像路径
+     */
+    @ApiModelProperty("头像路径")
+    private String avatar;
+
+    /**
+     * 密码
+     */
+    @ApiModelProperty("密码")
+    private String password;
+
+    /**
+     * 盐加密
+     */
+    @ApiModelProperty("加密")
+    private String salt;
+
+    /**
+     * 帐号状态(0正常 1停用)
+     */
+    @ApiModelProperty("帐号状态(0正常 1停用)")
+    private String status;
+
+    /**
+     * 删除标志(0代表存在 2代表删除)
+     */
+    @ApiModelProperty("删除标志(0代表存在 2代表删除)")
+    private String delFlag;
+
+    /**
+     * 最后登录IP
+     */
+    @ApiModelProperty("最后登录IP")
+    private String loginIp;
+
+    /**
+     * 最后登录时间
+     */
+    @ApiModelProperty("最后登录时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime loginDate;
+
+    /**
+     * 密码最后更新时间
+     */
+    @ApiModelProperty("密码最后更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime pwdUpdateDate;
+
+    /**
+     * 创建者
+     */
+    @ApiModelProperty("创建者")
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
+    /**
+     * 更新者
+     */
+    @ApiModelProperty("更新者")
+    private String updateBy;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime updateTime;
+
+    /**
+     * 备注
+     */
+    @ApiModelProperty("备注")
+    private String remark;
+
+    /**
+     * 角色ids
+     */
+    @ApiModelProperty("角色id")
+    private String roleIds;
+
+     /**
+     * 前端使用
+     */
+    @ApiModelProperty("前端使用")
+    private String departmentIdStr;
+
+    /**
+     * 数据权限
+     */
+    @ApiModelProperty("数据权限")
+    private String dataPermission;
+
+    /**
+     * 部门id
+     */
+    @ApiModelProperty("部门id")
+    private String departmentId;
+
+
+    /**
+     * 一级id
+     */
+    @ApiModelProperty("一级id")
+    private String stairId;
+
+    /**
+     * 二级id
+     */
+    @ApiModelProperty("二级id")
+    private String secondLevelId;
+
+    /**
+     * 所属部门名称
+     */
+    @ApiModelProperty("所属部门名称")
+    private String departmentName;
+
+    /**
+     * 部门所属区域
+     */
+    @ApiModelProperty("部门所属区域")
+    private String departmentArea;
+
+    /**
+     * 空闲状态(0 空闲    1 忙碌)
+     */
+    @ApiModelProperty("空闲状态(0 空闲    1 忙碌)")
+    private String leisureState;
+
+    /**
+     * 擅长办理事务ids
+     */
+    @ApiModelProperty("擅长办理事务ids")
+    private String masterIds;
+
+    /**
+     * 擅长事务名称
+     */
+    @ApiModelProperty("擅长事务名称")
+    private String masterNames;
+
+    /**
+     * 办结事项ids
+     */
+    @ApiModelProperty("办结事项ids")
+    private String transactionIds;
+
+    /**
+     * 办结事项名称
+     */
+    @ApiModelProperty("办结事项名称")
+    private String transactionNames;
+
+    /**
+     * 微信小程序id
+     */
+    @ApiModelProperty("微信小程序id")
+    private String openid;
+
+    /**
+     * 待处理办事指南数量
+     */
+    @ApiModelProperty("待处理办事指南数量")
+    private Integer transactionNum;
+
+
+    @TableField(exist = false)
+    @ApiModelProperty("权限资格")
+    private String permission;
+
+    @TableField(exist = false)
+    @ApiModelProperty("角色名称")
+    private String roleName;
+
+
+    @TableField(exist = false)
+    @ApiModelProperty("创建人名称")
+    private String createName;
+
+    @ApiModelProperty("是否是部门领导(1是  2不是)")
+    private String isDivisionHead;
+
+    @ApiModelProperty("办理事项ids")
+    private String mattersIds;
+
+
+    @ApiModelProperty("部门ids")
+    private String departmentIds;
+
+
+    @ApiModelProperty("多部门ids")
+    private String moreDepartmentIds;
+
+
+    @TableField(exist = false)
+    @ApiModelProperty("办理事项名称")
+    private String mattersNames;
+
+
+
+    @TableField(exist = false)
+    @ApiModelProperty("办结事项数目")
+    private String transactionEndNum;
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/TimeWorkOrder.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/TimeWorkOrder.java
new file mode 100644
index 0000000..1e0a570
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/TimeWorkOrder.java
@@ -0,0 +1,35 @@
+package com.dg.core.db.gen.entity;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 导办工单统计类
+ */
+
+@ApiModel("不同时间段的工单数量")
+@Data
+public class TimeWorkOrder implements Serializable
+{
+    //累计全部 本年 本月 今日 昨日
+    /**
+     * 总数量
+     */
+    @ApiModelProperty("累计总数量")
+    private Integer allNum=0;
+
+    @ApiModelProperty("本年")
+    private Integer yearNum;
+
+    @ApiModelProperty("本月")
+    private Integer monthNum;
+
+    @ApiModelProperty("今天")
+    private Integer todayNum;
+
+    @ApiModelProperty("昨天")
+    private Integer yesterdayNum;
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/TransactionEvent.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/TransactionEvent.java
new file mode 100644
index 0000000..e2b6ee5
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/TransactionEvent.java
@@ -0,0 +1,284 @@
+package com.dg.core.db.gen.entity;
+
+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 com.fasterxml.jackson.annotation.JsonFormat;
+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;
+import java.time.LocalDateTime;
+
+@ApiModel("导办事项管理实体类")
+@Data
+@TableName("automessage_transaction_event")
+public class TransactionEvent implements Serializable
+{
+    /**
+     * 主键id
+     */
+    @ApiModelProperty("主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 所属部门id
+     */
+    @ApiModelProperty("所属部门id")
+    private String departmentId;
+
+    /**
+     * 部门所属区域
+     */
+    @ApiModelProperty("部门所属区域")
+    private String departmentArea;
+
+     /**
+     * 部门电话
+     */
+     @TableField(exist = false)
+    @ApiModelProperty("部门电话")
+    private String contactNumber;
+
+    /**
+     * 分类id
+     */
+    @ApiModelProperty("分类id")
+    private String classifyId;
+
+    /**
+     * 所属分类等级
+     */
+    @TableField(exist = false)
+    @ApiModelProperty("所属分类等级")
+    private String classifyName;
+
+    /**
+     * 部门名称
+     */
+    @TableField(exist = false)
+    @ApiModelProperty("部门名称")
+    private String departmentName;
+    /**
+     * 事项名称
+     */
+    @ApiModelProperty("事项名称")
+    private String matterName;
+
+    /**
+     * 联想词ids
+     */
+    @ApiModelProperty("联想词ids")
+    private String associateIds;
+
+    /**
+     * 导办数量
+     */
+    @ApiModelProperty("导办数量")
+    private Integer transactionNum;
+
+    /**
+     * 浏览数量
+     */
+    @ApiModelProperty("浏览数量")
+    private Integer browseNum=0;
+
+    /**
+     * 基础信息
+     */
+    @ApiModelProperty("基础信息")
+    private String basicInformation;
+
+    /**
+     * 现场申报
+     */
+    @ApiModelProperty("现场申报")
+    private String acceptConditions;
+
+    /**
+     *  办理区域
+     */
+    @ApiModelProperty("办理区域")
+    private String applicationMaterial;
+
+    /**
+     * 办理流程
+     */
+    @ApiModelProperty("办理流程")
+    private String handlingProcedures;
+
+    /**
+     * 网上申报
+     */
+    @ApiModelProperty("网上申报")
+    private String rates;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime updateTime;
+
+    /**
+     * 联想词内容 , 连接
+     */
+    @ApiModelProperty("联想词内容 , 连接")
+    private String associateNames;
+    /**
+     * 查找时间
+     */
+    @ApiModelProperty("查找时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime queryTime;
+    /**
+     * 基础信息附件url
+     */
+    @ApiModelProperty("基础信息附件url")
+    private String basicInformationUrl;
+    /**
+     * 现场申报附件url
+     */
+    @ApiModelProperty("现场申报附件url")
+    private String acceptConditionsUrl;
+    /**
+     * 办理区域附件url
+     */
+    @ApiModelProperty("办理区域附件url")
+    private String applicationMaterialUrl;
+    /**
+     * 办理流程附件url
+     */
+    @ApiModelProperty("办理流程附件url")
+    private String handlingProceduresUrl;
+    /**
+     * 网上申报附件url
+     */
+    @ApiModelProperty("网上申报附件url")
+    private String ratesUrl;
+    /**
+     * 基础信息附件url
+     */
+    @ApiModelProperty("基础信息附件url")
+    private String basicInformationFileName;
+    /**
+     * 现场申报附件url
+     */
+    @ApiModelProperty("现场申报附件url")
+    private String acceptConditionsFileName;
+    /**
+     * 办理区域文件名称
+     */
+    @ApiModelProperty("办理区域文件名称")
+    private String applicationMaterialFileName;
+    /**
+     * 办理流程文件名称
+     */
+    @ApiModelProperty("办理流程文件名称")
+    private String handlingProceduresFileName;
+    /**
+     * 网上申报文件名称
+     */
+    @ApiModelProperty("网上申报文件名称")
+    private String ratesFileName;
+
+    /**
+     * 操作指引附件url
+     */
+    @ApiModelProperty("操作指引附件url")
+    private String operationalGuidelineUrl;
+
+    /**
+     * 操作指引视频url
+     */
+    @ApiModelProperty("操作指引视频url")
+    private String operationalGuidelineVideoUrl;
+
+    /**
+     * 设定依据
+     */
+    @ApiModelProperty("设定依据")
+    private String setGist;
+    /**
+     * 设定依据url
+     */
+    @ApiModelProperty("设定依据url")
+    private String setGistUrl;
+    /**
+     * 设定依据文件名称
+     */
+    @ApiModelProperty("设定依据文件名称")
+    private String setGistName;
+
+    /**
+     * 常见问题
+     */
+    @ApiModelProperty("常见问题")
+    private String commonProblem;
+
+    /**
+     * 常见问题附件url
+     */
+    @ApiModelProperty("常见问题附件url")
+    private String commonProblemUrl;
+
+    /**
+     * 常见问题文件名称
+     */
+    @ApiModelProperty("常见问题文件名称")
+    private String commonProblemName;
+
+
+    @ApiModelProperty("手机移动端申报")
+    private String transactionArea;
+
+    @ApiModelProperty("手机移动端申报url")
+    private String transactionAreaUrl;
+
+    @ApiModelProperty("手机移动端申报文件名称")
+    private String transactionAreaName;
+
+
+    @TableField(exist = false)
+    @ApiModelProperty(name = "sumTransactionNum", value = "导办服务数量")
+    private Integer sumTransactionNum;
+
+    @TableField(exist = false)
+    @ApiModelProperty(name = "countTransaction", value = "导办服务指南数量")
+    private Integer countTransaction;
+
+    @TableField(exist = false)
+    @ApiModelProperty(name = "sumClassifyName", value = "分类总名称")
+    String  sumClassifyName;
+
+    @ApiModelProperty(name = "operationalGuidelineVideoName", value = "操作指南视频名称")
+    private String  operationalGuidelineVideoName;
+
+    @ApiModelProperty(name = "operationalGuidelineName", value = "操作指南名称")
+    private  String  operationalGuidelineName;
+
+    @ApiModelProperty(name = "classifyIds", value = "前端使用")
+    private String classifyIds;
+
+
+    @ApiModelProperty(name = "departmentIds", value = "所属部门列")
+    private String departmentIds;
+
+    @TableField(exist = false)
+    @ApiModelProperty(name = "departmentNames", value = "所属部门列名称集合")
+    private String departmentNames;
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/entity/WorkOrder.java b/flower_city/src/main/java/com/dg/core/db/gen/entity/WorkOrder.java
new file mode 100644
index 0000000..d758d99
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/entity/WorkOrder.java
@@ -0,0 +1,78 @@
+package com.dg.core.db.gen.entity;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 导办工单统计类
+ */
+@ApiModel("导办工单统计类")
+@Data
+public class WorkOrder implements Serializable
+{
+    /**
+     * 总数量
+     */
+    @ApiModelProperty("总数量")
+    private Integer allNum=0;
+
+
+    /**
+     * 待分配
+     */
+    @ApiModelProperty("待分配数量")
+    private Integer waitDistribution=0;
+
+    /**
+     * 待办结
+     */
+    @ApiModelProperty("待办结")
+    private Integer waitDealWith=0;
+
+    /**
+     * 已办结
+     */
+    @ApiModelProperty("已办结")
+    private Integer haveDealWith=0;
+
+
+    /**
+     * 待评价
+     */
+    @ApiModelProperty("待评价")
+    private Integer remainEvaluated=0;
+
+    /**
+     * 已取消
+     */
+    @ApiModelProperty("已取消")
+    private Integer canceled=0;
+
+    /**
+     * 已超时
+     */
+    @ApiModelProperty("已超时")
+    private Integer overtime=0;
+
+    /**
+     * 超时未办结
+     */
+    @ApiModelProperty("超时未办结")
+    private Integer overtimeWaitDealWith=0;
+
+    /**
+     * 未解决
+     */
+    @ApiModelProperty("未解决")
+    private Integer unsolved=0;
+
+    /**
+     * 已解决
+     */
+    @ApiModelProperty("已解决")
+    private Integer resolved=0;
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/mapper/AgreementMapper.java b/flower_city/src/main/java/com/dg/core/db/gen/mapper/AgreementMapper.java
new file mode 100644
index 0000000..50ffd89
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/mapper/AgreementMapper.java
@@ -0,0 +1,25 @@
+package com.dg.core.db.gen.mapper;
+
+import com.dg.core.db.gen.entity.Agreement;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 相关协议 Mapper 接口
+ * </p>
+ *
+ * @author fengjin
+ * @since 2022-09-22
+ */
+public interface AgreementMapper extends BaseMapper<Agreement> {
+
+
+    /**
+     * 获取相关附件列表(不分页)
+     * @return
+     */
+    List<Agreement> selectConfigList();
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/mapper/AreaCode2022Mapper.java b/flower_city/src/main/java/com/dg/core/db/gen/mapper/AreaCode2022Mapper.java
new file mode 100644
index 0000000..c3cb89a
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/mapper/AreaCode2022Mapper.java
@@ -0,0 +1,24 @@
+package com.dg.core.db.gen.mapper;
+
+import com.dg.core.db.gen.entity.AreaCode2022;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author fengjin
+ * @since 2022-09-20
+ */
+public interface AreaCode2022Mapper extends BaseMapper<AreaCode2022> {
+
+   /**
+    * 根据指南id获取所属地区
+    * @return
+    */
+   List<AreaCode2022> selectByIdSet( List<String> areaCodes);
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/mapper/AutomessageCommonProblemMapper.java b/flower_city/src/main/java/com/dg/core/db/gen/mapper/AutomessageCommonProblemMapper.java
new file mode 100644
index 0000000..31326e9
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/mapper/AutomessageCommonProblemMapper.java
@@ -0,0 +1,40 @@
+package com.dg.core.db.gen.mapper;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.dg.core.db.gen.entity.AutomessageCommonProblem;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+ import org.springframework.data.repository.query.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 常见问题表 Mapper 接口
+ * </p>
+ *
+ * @author fengjin
+ * @since 2022-09-23
+ */
+public interface AutomessageCommonProblemMapper extends BaseMapper<AutomessageCommonProblem> {
+
+    /**
+     * 获取常见问题列表(分页)
+     * @param page
+     * @param state
+     * @return
+     */
+   List<AutomessageCommonProblem> selectConfigList(IPage<AutomessageCommonProblem> page, Integer state, @Param("title") String title, @Param("content") String content);
+
+    /**
+     * 获取常见问题列表(不分页查找)
+     * @return
+     */
+    List<AutomessageCommonProblem> selectConfigList(@Param("title") String title, @Param("content") String content);
+
+    /**
+     * 获取常见问题列表统计数量
+     * @return
+     */
+   Integer countConfigList(@Param("title") String title, @Param("content") String content);
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/mapper/AutomessagePolicyDocumentsMapper.java b/flower_city/src/main/java/com/dg/core/db/gen/mapper/AutomessagePolicyDocumentsMapper.java
new file mode 100644
index 0000000..6722750
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/mapper/AutomessagePolicyDocumentsMapper.java
@@ -0,0 +1,53 @@
+package com.dg.core.db.gen.mapper;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.dg.core.db.gen.entity.AutomessageCommonProblem;
+import com.dg.core.db.gen.entity.AutomessagePolicyDocuments;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.data.repository.query.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author fengjin
+ * @since 2022-11-10
+ */
+public interface AutomessagePolicyDocumentsMapper extends BaseMapper<AutomessagePolicyDocuments> {
+
+   /**
+    * 获取法律法规政策文件 (分页)
+    * @param page
+    * @param state
+    * @param name 名称
+    * @param type 类型
+    * @return
+    */
+   List<AutomessagePolicyDocuments> selectConfigList(IPage<AutomessagePolicyDocuments> page, Integer state, @Param("name") String name, @Param("type") String type, @Param("departmentId") Integer departmentId, @Param("ids") List<String> ids);
+
+
+   /**
+    * 获取法律法规政策文件 (不分页)
+    * @param name 名称
+    * @param type 类型
+    * @return
+    */
+   List<AutomessagePolicyDocuments> selectConfigList(@Param("name") String name, @Param("type") String type, @Param("departmentId") Integer departmentId, @Param("ids") List<String> ids);
+
+
+   /**
+    * 根据id获取法律法规政策文件数据
+    * @return
+    */
+   AutomessagePolicyDocuments selectAutomessagePolicyDocumentById(Integer id);
+
+   /**
+    * 获取法律法规政策文件 (统计)
+    * @return
+    */
+  Integer selectCountList(@Param("name") String name, @Param("type") String type,@Param("departmentId") Integer departmentId, @Param("ids") List<String> ids);
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/mapper/AutomessageSmartConsultingMapper.java b/flower_city/src/main/java/com/dg/core/db/gen/mapper/AutomessageSmartConsultingMapper.java
new file mode 100644
index 0000000..d7ad7d5
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/mapper/AutomessageSmartConsultingMapper.java
@@ -0,0 +1,16 @@
+package com.dg.core.db.gen.mapper;
+
+import com.dg.core.db.gen.entity.AutomessageSmartConsulting;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author fengjin
+ * @since 2022-11-16
+ */
+public interface AutomessageSmartConsultingMapper extends BaseMapper<AutomessageSmartConsulting> {
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/mapper/AutomessageSysSettingsMapper.java b/flower_city/src/main/java/com/dg/core/db/gen/mapper/AutomessageSysSettingsMapper.java
new file mode 100644
index 0000000..2d8aa18
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/mapper/AutomessageSysSettingsMapper.java
@@ -0,0 +1,16 @@
+package com.dg.core.db.gen.mapper;
+
+import com.dg.core.db.gen.entity.AutomessageSysSettings;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 系统设置表 Mapper 接口
+ * </p>
+ *
+ * @author fengjin
+ * @since 2022-10-14
+ */
+public interface AutomessageSysSettingsMapper extends BaseMapper<AutomessageSysSettings> {
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/mapper/AutomessageSysSettingsRecordMapper.java b/flower_city/src/main/java/com/dg/core/db/gen/mapper/AutomessageSysSettingsRecordMapper.java
new file mode 100644
index 0000000..68307c2
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/mapper/AutomessageSysSettingsRecordMapper.java
@@ -0,0 +1,16 @@
+package com.dg.core.db.gen.mapper;
+
+import com.dg.core.db.gen.entity.AutomessageSysSettingsRecord;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author fengjin
+ * @since 2022-10-14
+ */
+public interface AutomessageSysSettingsRecordMapper extends BaseMapper<AutomessageSysSettingsRecord> {
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/mapper/AutomessageSysUserRecordMapper.java b/flower_city/src/main/java/com/dg/core/db/gen/mapper/AutomessageSysUserRecordMapper.java
new file mode 100644
index 0000000..97122a6
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/mapper/AutomessageSysUserRecordMapper.java
@@ -0,0 +1,49 @@
+package com.dg.core.db.gen.mapper;
+
+import com.dg.core.db.gen.entity.AutomessageSysUserRecord;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dg.core.db.manual.pojo.AppletUserCount;
+
+import java.util.List;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author fengjin
+ * @since 2022-10-15
+ */
+public interface AutomessageSysUserRecordMapper extends BaseMapper<AutomessageSysUserRecord> {
+
+    /**
+     * 小程序用户访问量统计1.累计访问量2.本年访问量 3.本月访问量 4.今日访问量 5.昨日访问
+     * @return
+     */
+    List<AppletUserCount> selectUserRecordCount();
+
+    /**
+     * 小程序用户访问量统计近15天
+     * @return
+     */
+    List<AppletUserCount> selectByDay();
+
+    /**
+     * 小程序用户访问量统计近30天
+     * @return
+     */
+    List<AppletUserCount> selectByMonth();
+
+    /**
+     * 小程序用户访问量统计近一年
+     * @return
+     */
+    List<AppletUserCount> selectByYear();
+
+    /**
+     * 删除因为token问题产出的重复脏数据
+     * @return
+     */
+    Integer deleteDistinct();
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/mapper/AutomessageTransactionEventInterviewMapper.java b/flower_city/src/main/java/com/dg/core/db/gen/mapper/AutomessageTransactionEventInterviewMapper.java
new file mode 100644
index 0000000..2650538
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/mapper/AutomessageTransactionEventInterviewMapper.java
@@ -0,0 +1,16 @@
+package com.dg.core.db.gen.mapper;
+
+import com.dg.core.db.gen.entity.AutomessageTransactionEventInterview;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 办事指南访问表 Mapper 接口
+ * </p>
+ *
+ * @author fengjin
+ * @since 2022-09-26
+ */
+public interface AutomessageTransactionEventInterviewMapper extends BaseMapper<AutomessageTransactionEventInterview> {
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/mapper/ClassifyAdministrationMapper.java b/flower_city/src/main/java/com/dg/core/db/gen/mapper/ClassifyAdministrationMapper.java
new file mode 100644
index 0000000..eaf8e4b
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/mapper/ClassifyAdministrationMapper.java
@@ -0,0 +1,85 @@
+package com.dg.core.db.gen.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.dg.core.db.gen.entity.ClassifyAdministration;
+import com.dg.core.db.gen.entity.TransactionEvent;
+import org.springframework.data.repository.query.Param;
+
+import java.util.List;
+
+public interface ClassifyAdministrationMapper extends BaseMapper<ClassifyAdministration>
+{
+    /**
+     * 获取管理菜单列表
+     * @return
+     */
+    public List<ClassifyAdministration> selectConfigList(@Param("classifyName") String classifyName,
+                                                         @Param("classifyGrade") String classifyGrade);
+
+    /**
+     * 获取管理菜单列表
+     * @return
+     */
+    public List<ClassifyAdministration> selectConfigList(IPage<ClassifyAdministration> page,
+                                                         Integer state,
+                                                         @Param("classifyName") String classifyName,
+                                                         @Param("classifyGrade") String classifyGrade);
+
+    /**
+     * 新增分类
+     * @param entity
+     * @return
+     */
+    public int insertConfig(ClassifyAdministration entity);
+
+    /**
+     * 更新分类
+     * @param entity
+     * @return
+     */
+    public int updateConfig(ClassifyAdministration entity);
+
+    /**
+     * 删除分类
+     * @param Id
+     * @return
+     */
+    public int deleteConfigById(String Id);
+
+
+    /**
+     * 统计数量
+     * @return
+     */
+    public int countNum(@Param("classifyName") String classifyName,
+                        @Param("classifyGrade") String classifyGrade);
+
+
+    /**
+     * 获取管理菜单列表(根目录分页)
+     * @return
+     */
+    List<ClassifyAdministration>  selectRootList (IPage<ClassifyAdministration> page, Integer state,@Param("parentId")String parentId,@Param("departmentId")Integer departmentId);
+
+    /**
+     * 获取管理菜单列表(根目录不分页)
+     * @return
+     */
+    List<ClassifyAdministration>  selectRootList (@Param("parentId")String parentId,@Param("departmentId")Integer departmentId);
+
+
+    /**
+     * 根据上级id查询子分类
+     * @param parentId
+     * @return
+     */
+    List<String>  selectParent(String parentId);
+
+
+    List<ClassifyAdministration>  selectParentData(String parentId);
+
+
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/mapper/ElseAccessoryMapper.java b/flower_city/src/main/java/com/dg/core/db/gen/mapper/ElseAccessoryMapper.java
new file mode 100644
index 0000000..23f456c
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/mapper/ElseAccessoryMapper.java
@@ -0,0 +1,70 @@
+package com.dg.core.db.gen.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.dg.core.db.gen.entity.ElseAccessoryEntity;
+import org.springframework.data.repository.query.Param;
+
+import java.util.List;
+
+public interface ElseAccessoryMapper  extends BaseMapper<ElseAccessoryEntity>
+{
+
+    /**
+     * 获取附件列表
+     * @param page
+     * @param state
+     * @param Name
+     * @return
+     */
+    public List<ElseAccessoryEntity> selectConfigList(IPage<ElseAccessoryEntity> page, Integer state,
+                                                      @Param("Name") String Name,
+                                                      @Param("ids") List<String> ids,
+                                                      @Param("userId") String userId);
+
+    /**
+     * 获取附件列表全部
+     * @param Name
+     * @return
+     */
+    public List<ElseAccessoryEntity> selectConfigList(@Param("Name") String Name,
+                                                      @Param("ids") List<String> ids,
+                                                      @Param("userId") String userId);
+
+
+    /**
+     * 新增列表
+     * @param entity
+     * @return
+     */
+    public int insertConfig(ElseAccessoryEntity entity);
+
+    /**
+     * 更新列表
+     * @param entity
+     * @return
+     */
+    public int updateConfig(ElseAccessoryEntity entity);
+
+    /**
+     * 删除
+     * @param Id
+     * @return
+     */
+    public int deleteConfigById(String Id);
+
+    /**
+     * 统计数量
+     * @param Name
+     * @return
+     */
+    public int countNum(@Param("Name") String Name,@Param("ids") List<String> ids);
+
+    /**
+     * 按ids查找相关附件列表
+     * @param list
+     * @return
+     */
+    List<ElseAccessoryEntity> selectListByIds(String[] list);
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/mapper/GuideEvolveMapper.java b/flower_city/src/main/java/com/dg/core/db/gen/mapper/GuideEvolveMapper.java
new file mode 100644
index 0000000..4e3b7d6
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/mapper/GuideEvolveMapper.java
@@ -0,0 +1,60 @@
+package com.dg.core.db.gen.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dg.core.db.gen.entity.GuideEvolveEntity;
+import org.springframework.data.repository.query.Param;
+
+import java.util.List;
+
+public interface GuideEvolveMapper extends BaseMapper<GuideEvolveEntity>
+{
+
+    /**
+     * 查询记录列表
+     * @return
+     */
+    public List<GuideEvolveEntity> selectConfigList(String guideId);
+
+    /**
+     * 查询记录列表(隐藏工单姓名)
+     * @return
+     */
+    public List<GuideEvolveEntity>  selectHideList(String guideId);
+
+    /**
+     * 新增记录
+     * @param entity
+     * @return
+     */
+    public int insertConfig(GuideEvolveEntity entity);
+
+    /**
+     * 更新记录
+     * @param entity
+     * @return
+     */
+    public int updateConfig(GuideEvolveEntity entity);
+
+    /**
+     * 删除记录
+     * @param Id
+     * @return
+     */
+    public int deleteConfigById(String Id);
+
+    /**
+     * 统计数量
+     * @return
+     */
+    public int countNum();
+
+    /**
+     * 更新工单id为空的脏数据
+     * @return
+     */
+    int updateGuid();
+
+
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/mapper/GuideRepairOrderImageMapper.java b/flower_city/src/main/java/com/dg/core/db/gen/mapper/GuideRepairOrderImageMapper.java
new file mode 100644
index 0000000..92eed60
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/mapper/GuideRepairOrderImageMapper.java
@@ -0,0 +1,16 @@
+package com.dg.core.db.gen.mapper;
+
+import com.dg.core.db.gen.entity.GuideRepairOrderImage;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 导办功能图片表 Mapper 接口
+ * </p>
+ *
+ * @author fengjin
+ * @since 2022-09-19
+ */
+public interface GuideRepairOrderImageMapper extends BaseMapper<GuideRepairOrderImage> {
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/mapper/GuideRepairOrderMapper.java b/flower_city/src/main/java/com/dg/core/db/gen/mapper/GuideRepairOrderMapper.java
new file mode 100644
index 0000000..a5e2982
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/mapper/GuideRepairOrderMapper.java
@@ -0,0 +1,143 @@
+package com.dg.core.db.gen.mapper;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.dg.core.db.gen.entity.AutomessageCommonProblem;
+import com.dg.core.db.gen.entity.CountListNum;
+import com.dg.core.db.gen.entity.GuideRepairOrder;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.data.repository.query.Param;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * <p>
+ * 导办工单管理 Mapper 接口
+ * </p>
+ *
+ * @author fengjin
+ * @since 2022-09-19
+ */
+public interface GuideRepairOrderMapper extends BaseMapper<GuideRepairOrder>
+{
+
+    /**
+     * 获取详情
+     * @param Id
+     * @param orderNum
+     * @return
+     */
+    public GuideRepairOrder selectConfigData(@Param("Id") String Id,
+                                                   @Param("orderNum")  String orderNum);
+
+
+    /**
+     * 分配人员
+     * @param order
+     * @return
+     */
+    public int updateConfig(GuideRepairOrder order);
+
+
+    /**
+     * 获取个人中心工单数据
+     * @param submitUserId
+     * @return
+     */
+    List<GuideRepairOrder> selectBySubmitId(String submitUserId);
+
+    /**
+     * 获取工单列表(分页)
+     * @param matterName
+     * @return
+     */
+    List<GuideRepairOrder> selectConfigList(IPage<GuideRepairOrder> page, Integer state,
+                                            @Param("matterName") String matterName,
+                                            @Param("ids") List<String> ids,
+                                            @Param("status") String status,
+                                            @Param("guideUserId") String guideUserId,
+                                            @Param("createTimeStartTime") String createTimeStartTime,
+                                            @Param("createTimeTimeEndTime") String createTimeTimeEndTime,
+                                            @Param("classifyId") String classifyId);
+
+
+    /**
+     * 获取工单列表(不分页用于小程序)
+     * @param matterName
+     * @return
+     */
+    List<GuideRepairOrder> selectConfigList(@Param("matterName") String matterName,
+                                            @Param("ids") List<String> ids,
+                                            @Param("status") String status,
+                                            @Param("guideUserId") String guideUserId,
+                                            @Param("createTimeStartTime") String createTimeStartTime,
+                                            @Param("createTimeTimeEndTime") String createTimeTimeEndTime,
+                                            @Param("classifyId") String classifyId
+                                            );
+
+    /**
+     * 获取工单列表(求和)
+     * @param matterName
+     * @return
+     */
+    int countConfigList(@Param("matterName") String matterName,
+                        @Param("ids") List<String> ids,
+                        @Param("status") String status,
+                        @Param("guideUserId") String guideUserId);
+
+
+    /**
+     * 很具用户id查询是否有对应工单
+     * @return
+     */
+    int countUser(@Param("userId") String userId,@Param("state") String state);
+
+
+    /**
+     * 删除工单
+     * @param Id
+     * @return
+     */
+    int deleteConfigById(String Id);
+
+    /**
+     * 统计工单用   1 今天   2昨天   3本月   4本年度
+     * @return
+     */
+    int countStatisticsNum(@Param("state") String state,
+                           @Param("ids") List<String> ids,
+                           @Param("time") String time,
+                           @Param("isTimeout") String isTimeout,
+                           @Param("evaluateState") String evaluateState,
+                           @Param("classifyIds") List<String> classifyIds,
+                           @Param("serviceState") String serviceState,
+                           @Param("guideUserId") String guideUserId);
+
+    /**
+     * 统计工单用
+     * @return
+     */
+    List<CountListNum> countListNum(@Param("state") String state,
+                                    @Param("ids") List<String> ids,
+                                    @Param("time") Integer time);
+    /**
+     * 获取超时工单
+     * @return
+     */
+   List<GuideRepairOrder> selectOvertime();
+
+    /**
+     * 更改状态为好评
+     * @return
+     */
+    List<GuideRepairOrder> selectEvaluate();
+
+
+    /**
+     * 获取需要通知的单据
+     * @return
+     */
+    List<GuideRepairOrder> selectNoticeTime(@Param("minute") Integer minute);
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/mapper/HomeStatisticsMapper.java b/flower_city/src/main/java/com/dg/core/db/gen/mapper/HomeStatisticsMapper.java
new file mode 100644
index 0000000..d8305a5
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/mapper/HomeStatisticsMapper.java
@@ -0,0 +1,118 @@
+package com.dg.core.db.gen.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dg.core.db.gen.entity.ClassifyAdministration;
+import com.dg.core.db.gen.entity.Guidance;
+import com.dg.core.db.gen.entity.GuidePlate;
+import com.dg.core.db.gen.entity.OrganizationEntity;
+import org.springframework.data.repository.query.Param;
+
+import java.util.List;
+
+public interface HomeStatisticsMapper  extends BaseMapper<GuidePlate>
+{
+    /**
+     * 按办结量排序
+     * @return
+     */
+    List<GuidePlate> guidePlatePeople(List<String> ids);
+
+    /**
+     *按评分排序
+     * @return
+     */
+    List<GuidePlate> score(List<String> ids);
+
+    /**
+     * 按超时
+     * @return
+     */
+    List<GuidePlate> timeout(List<String> ids);
+
+    /**
+     * 按未办结
+     * @param ids
+     * @return
+     */
+    List<GuidePlate> tosettled(List<String> ids);
+
+    /**
+     * 按工单量
+     * @param ids
+     * @return
+     */
+    List<GuidePlate> workunit(List<String> ids);
+
+    /**
+     * 导办人员统计数
+     * @return
+     */
+    Integer staffNum(List<String> ids);
+
+    /**
+     * 办事指南数量统计
+     * @return
+     */
+    Integer countWork(List<String> ids);
+
+    /**
+     * 获取一级部门
+     * @return
+     */
+    List<OrganizationEntity> getDepartment();
+
+    /**
+     * 评分
+     * @return
+     */
+    Integer organizationScore(List<String> ids);
+
+    /**
+     * 办结量
+     * @return
+     */
+    Integer organizationNum(List<String> ids);
+
+    /**
+     * 办事指南根据导办数量排序
+     * @return
+     */
+    List<Guidance> guidanceTransaction(List<String> ids);
+
+    /**
+     * 办事指南根据浏览数量排序
+     * @return
+     */
+    List<Guidance> guidanceBrowse(List<String> ids);
+
+    /**
+     * 获取统计数据  首页用  勿动
+     */
+    int countStatisticsNum(@Param("classifyIds") List<String> classifyIds,
+                           @Param("ids") List<String> ids);
+
+
+    /**
+     * 首页统计用
+     * @param parentId
+     * @param classifyGrade
+     * @return
+     */
+    public List<ClassifyAdministration> getClassify(@Param("parentId") String parentId,
+                                                    @Param("classifyGrade") String classifyGrade);
+
+
+    List<String> countId(String district);
+
+
+    int rangeStatistics(List<String> ids);
+
+
+    /**
+     * 首页统计用
+     * @return
+     */
+    String reversionRate(@Param("state") String state,@Param("isTimeout") String isTimeout);
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/mapper/HuaChengSysUserMapper.java b/flower_city/src/main/java/com/dg/core/db/gen/mapper/HuaChengSysUserMapper.java
new file mode 100644
index 0000000..47e2e34
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/mapper/HuaChengSysUserMapper.java
@@ -0,0 +1,24 @@
+package com.dg.core.db.gen.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dg.core.db.gen.entity.HuaChengSysUser;
+import org.springframework.data.repository.query.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 用户信息表 Mapper 接口
+ * </p>
+ *
+ * @author xiang
+ * @since 2022-07-11
+ */
+public interface HuaChengSysUserMapper extends BaseMapper<HuaChengSysUser>
+{
+    public List<HuaChengSysUser> selectConfigList();
+
+    public List<HuaChengSysUser> selectData(@Param("userId") String userId,@Param("account")  String account,@Param("phone") String phone);
+
+    public int selectNum();
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/mapper/KeywordMapper.java b/flower_city/src/main/java/com/dg/core/db/gen/mapper/KeywordMapper.java
new file mode 100644
index 0000000..c08fc20
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/mapper/KeywordMapper.java
@@ -0,0 +1,61 @@
+package com.dg.core.db.gen.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.dg.core.db.gen.entity.KeywordEntity;
+import com.dg.core.db.gen.entity.SysUser;
+import org.springframework.data.repository.query.Param;
+
+import java.util.List;
+
+public interface KeywordMapper extends BaseMapper<KeywordEntity>
+{
+    /**
+     * 查询关键词列表
+     * @return
+     */
+    public List<KeywordEntity> selectConfigList(IPage<KeywordEntity> page, Integer state);
+
+    /**
+     * 查询详情
+     * @return
+     */
+    public KeywordEntity selectConfigData(@Param("Id") String Id,
+                                                @Param("name") String name);
+
+
+    /**
+     * 添加关键词
+     * @return
+     */
+    public int insertConfig(KeywordEntity entity);
+
+    /**
+     * 编辑关键词
+     * @return
+     */
+    public int updateConfig(KeywordEntity entity);
+
+    /**
+     * 删除关键词
+     * @param Id
+     * @return
+     */
+    public int deleteConfigById(String Id);
+
+    /**
+     * 统计数量
+     * @param
+     * @return
+     */
+    public int countNum();
+
+    /**
+     * 更具名字查询关键词列表(不分页)
+     * @return
+     */
+    List<KeywordEntity>  selectByName(@Param("keyWord") String keyWord);
+
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/mapper/MenuMapper.java b/flower_city/src/main/java/com/dg/core/db/gen/mapper/MenuMapper.java
new file mode 100644
index 0000000..7575604
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/mapper/MenuMapper.java
@@ -0,0 +1,47 @@
+package com.dg.core.db.gen.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dg.core.db.gen.entity.MenuEntity;
+
+import java.util.List;
+
+public interface MenuMapper  extends BaseMapper<MenuEntity>
+{
+
+
+    /**
+     * 获取菜单列表
+     * @return
+     */
+    public List<MenuEntity> selectConfigList();
+
+
+    /**
+     * 添加新菜单
+     * @return
+     */
+    public int insertConfig(MenuEntity entity);
+
+    /**
+     * 更新菜单
+     * @param entity
+     * @return
+     */
+    public int updateConfig(MenuEntity entity);
+
+    /**
+     * 删除菜单
+     * @param Id
+     * @return
+     */
+    public int deleteConfigById(Long Id);
+
+    /**
+     * 统计数量
+     * @return
+     */
+    public int countNum();
+
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/mapper/OrganizationChartMapper.java b/flower_city/src/main/java/com/dg/core/db/gen/mapper/OrganizationChartMapper.java
new file mode 100644
index 0000000..23fac86
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/mapper/OrganizationChartMapper.java
@@ -0,0 +1,71 @@
+package com.dg.core.db.gen.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.dg.core.db.gen.entity.OrganizationChartEntity;
+import org.springframework.data.repository.query.Param;
+
+import java.util.List;
+
+
+public interface OrganizationChartMapper  extends BaseMapper<OrganizationChartEntity>
+{
+    /**
+     * 查询机构列表
+     */
+    public List<OrganizationChartEntity> selectConfigList(@Param("parentId") String parentId,
+                                                          @Param("grade") String grade,
+                                                          @Param("ids") List<String> ids);
+
+    /**
+     * 新增机构
+     */
+    public int insertConfig(OrganizationChartEntity entity);
+
+    /**
+     * 更新机构
+     */
+    public int updateConfig(OrganizationChartEntity entity);
+
+    /**
+     * 删除机构
+     */
+    public int deleteConfigById(String Id);
+
+    /**
+     * 统计数量
+     */
+    public int countNum();
+
+    /**
+     * 根据关键词查取消组织机构
+     */
+    List<OrganizationChartEntity> selectByKeyWord(String keyWord);
+
+    /**
+     * 根据id查取消组织机构
+     */
+    OrganizationChartEntity selectConfigById(@Param("id") String id);
+
+
+    /**
+     * 查询机构列表(分页)
+     */
+    List<OrganizationChartEntity> queryList(IPage<OrganizationChartEntity> page, Integer state,
+                                            @Param("organizationName") String organizationName,@Param("ids") List<String> ids);
+
+
+    /**
+     * 统计数量(部门应用)
+     */
+    int countList(@Param("organizationName") String organizationName,@Param("ids") List<String> ids);
+
+
+    /**
+     * 根据所属地区查找部门
+     */
+    List<OrganizationChartEntity> selectByCode(@Param("id")String id, @Param("areaCode") String areaCode,@Param("grade")  Integer grade);
+
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/mapper/ReplyTemplateMapper.java b/flower_city/src/main/java/com/dg/core/db/gen/mapper/ReplyTemplateMapper.java
new file mode 100644
index 0000000..0f5af52
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/mapper/ReplyTemplateMapper.java
@@ -0,0 +1,60 @@
+package com.dg.core.db.gen.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.dg.core.db.gen.entity.ReplyTemplateEntity;
+import org.springframework.data.repository.query.Param;
+
+import java.util.List;
+
+public interface ReplyTemplateMapper extends BaseMapper<ReplyTemplateEntity>
+{
+
+    /**
+     * 获取模板列表
+     * @return
+     */
+    public List<ReplyTemplateEntity> selectConfigList(IPage<ReplyTemplateEntity> page, Integer state,
+                                                      @Param("Name") String Name,
+                                                      @Param("ids") List<String> ids,
+                                                      @Param("userId")  String  userId);
+
+
+    /**
+     * 获取详情
+     * @param Id
+     * @return
+     */
+    public ReplyTemplateEntity selectConfigData(String Id);
+
+    /**
+     * 新增模板
+     * @param entity
+     * @return
+     */
+    public int insertConfig(ReplyTemplateEntity entity);
+
+    /**
+     * 更新模板
+     * @param entity
+     * @return
+     */
+    public int updateConfig(ReplyTemplateEntity entity);
+
+    /**
+     * 删除模板
+     * @param Id
+     * @return
+     */
+    public int deleteConfigById(String Id);
+
+    /**
+     * 获取数量
+     * @return
+     */
+    public int countNum(@Param("Name") String Name,@Param("ids") List<String> ids);
+
+
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/mapper/RoleManagementMapper.java b/flower_city/src/main/java/com/dg/core/db/gen/mapper/RoleManagementMapper.java
new file mode 100644
index 0000000..4dc2576
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/mapper/RoleManagementMapper.java
@@ -0,0 +1,56 @@
+package com.dg.core.db.gen.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.dg.core.db.gen.entity.RoleManagementEntity;
+import org.springframework.data.repository.query.Param;
+
+import java.util.List;
+
+
+public interface RoleManagementMapper  extends BaseMapper<RoleManagementEntity>
+{
+
+
+    /**
+     * 查询角色列表
+     * @param page
+     * @param state
+     * @return
+     */
+    public List<RoleManagementEntity> selectConfigList(IPage<RoleManagementEntity> page, Integer state,
+                                                       @Param("name") String name);
+
+    /**
+     * 新增角色
+     * @param entity
+     * @return
+     */
+    public int insertConfig(RoleManagementEntity entity);
+
+    /**
+     * 编辑角色
+     * @param entity
+     * @return
+     */
+    public int updateConfig(RoleManagementEntity entity);
+
+    /**
+     * 删除角色
+     * @param Id
+     * @return
+     */
+    public int deleteConfigById(String Id);
+
+    /**
+     * 统计条数
+     * @return
+     */
+    public int countNum(String name);
+
+
+
+
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/mapper/RoleMenuEntityMapper.java b/flower_city/src/main/java/com/dg/core/db/gen/mapper/RoleMenuEntityMapper.java
new file mode 100644
index 0000000..553e231
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/mapper/RoleMenuEntityMapper.java
@@ -0,0 +1,41 @@
+package com.dg.core.db.gen.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dg.core.db.gen.entity.RoleMenuEntity;
+
+import java.util.List;
+
+public interface RoleMenuEntityMapper  extends BaseMapper<RoleMenuEntity>
+{
+    /**
+     * 根据角色获取菜单id
+     * @param roleId
+     * @return
+     */
+    public List<RoleMenuEntity> selectConfigList(String roleId);
+
+    /**
+     * 新增
+     * @param entity
+     * @return
+     */
+    public int insertConfig(RoleMenuEntity entity);
+
+    /**
+     * 编辑
+     * @param entity
+     * @return
+     */
+    public int updateConfig(RoleMenuEntity entity);
+
+
+    /**
+     * 删除
+     * @param Id
+     * @return
+     */
+    public int deleteConfigById(String Id);
+
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/mapper/SlideshowMapper.java b/flower_city/src/main/java/com/dg/core/db/gen/mapper/SlideshowMapper.java
new file mode 100644
index 0000000..5a2a314
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/mapper/SlideshowMapper.java
@@ -0,0 +1,16 @@
+package com.dg.core.db.gen.mapper;
+
+import com.dg.core.db.gen.entity.Slideshow;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 轮播图 Mapper 接口
+ * </p>
+ *
+ * @author fengjin
+ * @since 2022-09-19
+ */
+public interface SlideshowMapper extends BaseMapper<Slideshow> {
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/mapper/SysUserMapper.java b/flower_city/src/main/java/com/dg/core/db/gen/mapper/SysUserMapper.java
new file mode 100644
index 0000000..86042d9
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/mapper/SysUserMapper.java
@@ -0,0 +1,96 @@
+package com.dg.core.db.gen.mapper;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.dg.core.db.gen.entity.SysUser;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springframework.data.repository.query.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 用户信息表 Mapper 接口
+ * </p>
+ *
+ * @author xiang
+ * @since 2022-07-11
+ */
+public interface SysUserMapper extends BaseMapper<SysUser> {
+
+    SysUser getUserById(Long id);
+
+    SysUser getUserByAccount(String account);
+
+    /**
+     * 查询聊天列表
+     *
+     * @return 参数配置信息
+     */
+    public List<SysUser> selectConfigList(IPage<SysUser> page, Integer state,
+                                          @Param("userType") String userType,
+                                          @Param("userName") String userName,
+                                          @Param("ids") List<String> ids,
+                                          @Param("isDivisionHead") String  isDivisionHead);
+
+
+
+    SysUser selectData(@Param("userId") String userId,
+                       @Param("phonenumber") String phonenumber,
+                       @Param("loginName") String loginName);
+
+
+    /**
+     * 新增聊天记录
+     *
+     * @param config 参数配置信息
+     * @return 结果
+     */
+    public int insertConfig(SysUser config);
+
+    /**
+     * 更新聊天记录
+     *
+     * @param config 参数配置信息
+     * @return 结果
+     */
+    public int updateConfig(SysUser config);
+
+    /**
+     * 删除聊天记录
+     *
+     * @param id 聊天记录主键id
+     * @return 结果
+     */
+    public int deleteConfigById(String id);
+
+
+    /**
+     * 获取数据库总条数(批量)
+     *
+     * @return 结果
+     */
+    public int selectNum(@Param("userType") String userType,
+                         @Param("userName") String userName,
+                         @Param("ids") List<String> ids,
+                         @Param("isDivisionHead") String  isDivisionHead);
+
+    /**
+     * 根据部门id及分类id获取导办用户
+     *
+     * @return 结果
+     */
+    List<SysUser> selectListByDepartmentId(@Param("list") List<String> list,@Param("classifyIdFront") String classifyIdFront,@Param("classifyIdAfter") String classifyIdAfter);
+
+
+    /**
+     * 查询用户列表(不分页)
+     * @param userType 用户类型
+     * @return 结果
+     */
+    List<SysUser>  queryList(@Param("userType") Integer userType,@Param("keyWord") String keyWord);
+
+    /**
+     * 修改group  长度
+     */
+    void setGroup();
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/gen/mapper/TransactionEventMapper.java b/flower_city/src/main/java/com/dg/core/db/gen/mapper/TransactionEventMapper.java
new file mode 100644
index 0000000..02a63e6
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/gen/mapper/TransactionEventMapper.java
@@ -0,0 +1,209 @@
+package com.dg.core.db.gen.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.dg.core.db.gen.entity.TransactionEvent;
+import com.dg.core.db.manual.pojo.Search;
+import org.springframework.data.repository.query.Param;
+
+import java.util.List;
+
+public interface TransactionEventMapper extends BaseMapper<TransactionEvent>
+{
+
+    /**
+     * 查询导办事务详情
+     * @param Id
+     * @return
+     */
+    public TransactionEvent selectConfigData(String Id);
+
+    /**
+     * 导办事物列表
+     * @param
+     * @return
+     */
+    public List<TransactionEvent> selectConfigList(IPage<TransactionEvent> page, Integer state,
+                                                   @Param("keyword") String keyword,
+                                                   @Param("classifyGrade") String classifyGrade,
+                                                   @Param("ids") List<String> ids);
+
+
+
+
+    /**
+     * 导办事物列表 (部分也)
+     * @param
+     * @return
+     */
+    public List<TransactionEvent> selectConfigList(@Param("keyword") String keyword,
+                                                   @Param("classifyGrade") String classifyGrade,
+                                                   @Param("ids") List<String> ids);
+
+    /**
+     * 新增导办事务
+     * @param entity
+     * @return
+     */
+    public int insertConfig(TransactionEvent entity);
+
+    /**
+     * 修改导办事务
+     * @param entity
+     * @return
+     */
+    public int updateConfig(TransactionEvent entity);
+
+    /**
+     * 删除接口
+     * @param Id
+     * @return
+     */
+    public int deleteConfigById(String Id);
+
+    /**
+     * 统计数量
+     * @param
+     * @return
+     */
+    public int countNum(@Param("keyword") String keyword,
+                        @Param("classifyGrade") String classifyGrade,
+                        @Param("ids") List<String> ids);
+
+    /**
+     * 导办事务搜索
+     * @param matterName
+     * @return
+     */
+    List<TransactionEvent> queryMatterNameList(IPage<TransactionEvent> page, Integer state, String matterName);
+
+    /**
+     * 导办事务搜索(不带分页)
+     * @param matterName
+     * @return
+     */
+    List<TransactionEvent> queryMatterNameList(@Param("matterName") String matterName,@Param("classifyId") String classifyId);
+
+    /**
+     * 导办事务搜索(不带分页)(关联词)
+     * @param associateNames
+     * @return
+     */
+    List<TransactionEvent> queryAssociateNamesList(@Param("associateNames") String associateNames,@Param("classifyId") String classifyId);
+
+    /**
+     * 导办事务搜索统计数量
+     * @param matterName
+     * @return
+     */
+    int countNumByMatterName(String matterName);
+
+    /**
+     *  根据分类ID事务搜索统计数量
+     * @param classifyId
+     * @return
+     */
+    int countNumByClassifyIdList(@Param("classifyId") String classifyId,@Param("departmentId") Integer departmentId);
+
+    /**
+     * 搜索后更新导办事务
+     * @param matterName
+     * @return
+     */
+    int updateConfigByMatterName(String matterName);
+
+    /**
+     *  根据分离查询导办事务
+     * @param classifyId
+     * @return
+     */
+    List<TransactionEvent> queryByClassifyIdList(@Param("classifyId") String classifyId,@Param("departmentId") Integer departmentId);
+
+
+    /**
+     *  根据分离查询导办事务(分页)
+     * @param classifyId
+     * @return
+     *
+     */
+    List<TransactionEvent> queryByClassifyIdList(IPage<TransactionEvent> page, Integer state,@Param("classifyId") String classifyId,@Param("departmentId") Integer departmentId);
+
+    /**
+     *  查询导办事务求和
+     * @return
+     */
+    TransactionEvent sumTransactionNum();
+
+    /**
+     * 根据关键词导办事务(部门也会统计进去)搜索(分页)
+     * @param keyWord
+     * @return
+     */
+    List<Search> selectSearch(IPage<Search> page, Integer state, String keyWord);
+
+
+    /**
+     * 根据关键词导办事务(部门也会统计进去)搜索(分页)(小程序)
+     * @param keyWord
+     * @return
+     */
+    List<Search>   selectSearchList(String keyWord);
+
+    /**
+     * 根据关键词导办事务(部门也会统计进去)搜索(不分页)
+     * @param keyWord
+     * @return
+     */
+    List<Search> selectSearch( String keyWord);
+
+
+    /**
+     * 根据关联词导办事务搜索搜索(分页)
+     * @param keyWord
+     * @return
+     */
+    List<Search> selectSearchAssociate(IPage<Search> page, Integer state, String keyWord);
+
+    /**
+     * 根据关联词导办事务搜索搜索(不分页)
+     * @param keyWord
+     * @return
+     */
+    List<Search> selectSearchAssociate( String keyWord);
+
+    /**
+     * 按ids查找导办事务列表
+     * @param list
+     * @return
+     */
+    List<TransactionEvent> selectListByIds(String[] list);
+
+    /**
+     * 根据分类筛选数据
+     * @param ids
+     * @return
+     */
+    List<TransactionEvent> selectClassifyList(List<String> ids);
+
+    /**
+     * 根据部门判断是否有事项名称重复
+     */
+    String selectDataIfExist(@Param("departmentId") String departmentId,
+                             @Param("matterName") String matterName);
+
+    /**
+     * 根据办事分类获取办事指南
+     */
+    List<String> selectclassifyId(String classifyId);
+
+
+    /**
+     * 根据关联词导办事务搜索搜索(不分页)(去重用于小程序)
+     * @param keyWord
+     * @return
+     */
+    List<Search>  selectSearchAssociateDistinct( String keyWord);
+
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/manual/mapper/MUserMapper.java b/flower_city/src/main/java/com/dg/core/db/manual/mapper/MUserMapper.java
new file mode 100644
index 0000000..1739727
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/manual/mapper/MUserMapper.java
@@ -0,0 +1,9 @@
+package com.dg.core.db.manual.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dg.core.db.manual.pojo.MUser;
+import org.springframework.stereotype.Component;
+
+@Component
+public interface MUserMapper extends BaseMapper<MUser> {
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/manual/mapper/util/ConstantPropertiesUtil.java b/flower_city/src/main/java/com/dg/core/db/manual/mapper/util/ConstantPropertiesUtil.java
new file mode 100644
index 0000000..d25edb3
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/manual/mapper/util/ConstantPropertiesUtil.java
@@ -0,0 +1,34 @@
+package com.dg.core.db.manual.mapper.util;
+
+import org.springframework.beans.factory.InitializingBean;
+import org.springframework.stereotype.Component;
+import org.springframework.beans.factory.annotation.Value;
+@Component
+public class ConstantPropertiesUtil implements InitializingBean {
+
+    @Value("${wx.open.app_id}")
+    private String appId;
+
+    @Value("${wx.open.app_secret}")
+    private String appSecret;
+
+    @Value("${wx.open.redirect_url}")
+    private String redirectUrl;
+
+    @Value("${yygh.baseUrl}")
+    private String yyghBaseUrl;
+
+    public static String WX_OPEN_APP_ID;
+    public static String WX_OPEN_APP_SECRET;
+    public static String WX_OPEN_REDIRECT_URL;
+
+    public static String YYGH_BASE_URL;
+
+    @Override
+    public void afterPropertiesSet() throws Exception {
+        WX_OPEN_APP_ID = appId;
+        WX_OPEN_APP_SECRET = appSecret;
+        WX_OPEN_REDIRECT_URL = redirectUrl;
+        YYGH_BASE_URL = yyghBaseUrl;
+    }
+}
\ No newline at end of file
diff --git a/flower_city/src/main/java/com/dg/core/db/manual/mapper/util/ExcelHandlerAdapter.java b/flower_city/src/main/java/com/dg/core/db/manual/mapper/util/ExcelHandlerAdapter.java
new file mode 100644
index 0000000..87dffd5
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/manual/mapper/util/ExcelHandlerAdapter.java
@@ -0,0 +1,19 @@
+package com.dg.core.db.manual.mapper.util;
+
+/**
+ * Excel数据格式处理适配器
+ * 
+ * @author ruoyi
+ */
+public interface ExcelHandlerAdapter
+{
+    /**
+     * 格式化
+     * 
+     * @param value 单元格数据值
+     * @param args excel注解args参数组
+     *
+     * @return 处理后的值
+     */
+    Object format(Object value, String[] args);
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/manual/mapper/util/HttpClientUtils.java b/flower_city/src/main/java/com/dg/core/db/manual/mapper/util/HttpClientUtils.java
new file mode 100644
index 0000000..80af856
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/manual/mapper/util/HttpClientUtils.java
@@ -0,0 +1,294 @@
+package com.dg.core.db.manual.mapper.util;
+
+import io.netty.channel.ConnectTimeoutException;
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.http.Consts;
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpResponse;
+import org.apache.http.NameValuePair;
+import org.apache.http.client.config.RequestConfig;
+import org.apache.http.client.entity.UrlEncodedFormEntity;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
+import org.apache.http.conn.ssl.TrustStrategy;
+import org.apache.http.conn.ssl.X509HostnameVerifier;
+import org.apache.http.entity.ContentType;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
+import org.apache.http.message.BasicNameValuePair;
+import java.util.Map.Entry;
+import org.apache.http.ssl.SSLContextBuilder;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLException;
+import javax.net.ssl.SSLSession;
+import javax.net.ssl.SSLSocket;
+import java.io.IOException;
+import java.net.SocketTimeoutException;
+import java.security.GeneralSecurityException;
+import java.security.cert.CertificateException;
+import java.security.cert.X509Certificate;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+public class HttpClientUtils {
+
+    public static final int connTimeout=10000;
+    public static final int readTimeout=10000;
+    public static final String charset="UTF-8";
+    private static CloseableHttpClient client = null;
+
+    static {
+        PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
+        cm.setMaxTotal(128);
+        cm.setDefaultMaxPerRoute(128);
+        client = HttpClients.custom().setConnectionManager(cm).build();
+    }
+
+    public static String postParameters(String url, String parameterStr) throws ConnectTimeoutException, SocketTimeoutException, Exception{
+        return post(url,parameterStr,"application/x-www-form-urlencoded",charset,connTimeout,readTimeout);
+    }
+
+    public static String postParameters(String url, String parameterStr,String charset, Integer connTimeout, Integer readTimeout) throws ConnectTimeoutException, SocketTimeoutException, Exception{
+        return post(url,parameterStr,"application/x-www-form-urlencoded",charset,connTimeout,readTimeout);
+    }
+
+    public static String postParameters(String url, Map<String, String> params) throws ConnectTimeoutException,
+            SocketTimeoutException, Exception {
+        return postForm(url, params, null, connTimeout, readTimeout);
+    }
+
+    public static String postParameters(String url, Map<String, String> params, Integer connTimeout,Integer readTimeout) throws ConnectTimeoutException,
+            SocketTimeoutException, Exception {
+        return postForm(url, params, null, connTimeout, readTimeout);
+    }
+
+    public static String get(String url) throws Exception {
+        return get(url, charset, null, null);
+    }
+
+    public static String get(String url, String charset) throws Exception {
+        return get(url, charset, connTimeout, readTimeout);
+    }
+
+    /**
+     * 发送一个 Post 请求, 使用指定的字符集编码.
+     *
+     * @param url
+     * @param body RequestBody
+     * @param mimeType 例如 application/xml "application/x-www-form-urlencoded" a=1&b=2&c=3
+     * @param charset 编码
+     * @param connTimeout 建立链接超时时间,毫秒.
+     * @param readTimeout 响应超时时间,毫秒.
+     * @return ResponseBody, 使用指定的字符集编码.
+     * @throws ConnectTimeoutException 建立链接超时异常
+     * @throws SocketTimeoutException  响应超时
+     * @throws Exception
+     */
+    public static String post(String url, String body, String mimeType,String charset, Integer connTimeout, Integer readTimeout)
+            throws ConnectTimeoutException, SocketTimeoutException, Exception {
+        CloseableHttpClient client = null;
+        HttpPost post = new HttpPost(url);
+        String result = "";
+        try {
+            if (StringUtils.isNotBlank(body)) {
+                HttpEntity entity = new StringEntity(body, ContentType.create(mimeType, charset));
+                post.setEntity(entity);
+            }
+            // 设置参数
+            RequestConfig.Builder customReqConf = RequestConfig.custom();
+            if (connTimeout != null) {
+                customReqConf.setConnectTimeout(connTimeout);
+            }
+            if (readTimeout != null) {
+                customReqConf.setSocketTimeout(readTimeout);
+            }
+            post.setConfig(customReqConf.build());
+
+            HttpResponse res;
+            if (url.startsWith("https")) {
+                // 执行 Https 请求.
+                client = createSSLInsecureClient();
+                res = client.execute(post);
+            } else {
+                // 执行 Http 请求.
+                client = HttpClientUtils.client;
+                res = client.execute(post);
+            }
+            result = IOUtils.toString(res.getEntity().getContent(), charset);
+        } finally {
+            post.releaseConnection();
+            if (url.startsWith("https") && client != null&& client instanceof CloseableHttpClient) {
+                ((CloseableHttpClient) client).close();
+            }
+        }
+        return result;
+    }
+
+
+    /**
+     * 提交form表单
+     *
+     * @param url
+     * @param params
+     * @param connTimeout
+     * @param readTimeout
+     * @return
+     * @throws ConnectTimeoutException
+     * @throws SocketTimeoutException
+     * @throws Exception
+     */
+    public static String postForm(String url, Map<String, String> params, Map<String, String> headers, Integer connTimeout,Integer readTimeout) throws ConnectTimeoutException,
+            SocketTimeoutException, Exception {
+
+        CloseableHttpClient client = null;
+        HttpPost post = new HttpPost(url);
+        try {
+            if (params != null && !params.isEmpty()) {
+                List<NameValuePair> formParams = new ArrayList<NameValuePair>();
+                Set<Map.Entry<String, String>> entrySet = params.entrySet();
+                for (Entry<String, String> entry : entrySet) {
+                    formParams.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));
+                }
+                UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formParams, Consts.UTF_8);
+                post.setEntity(entity);
+            }
+
+            if (headers != null && !headers.isEmpty()) {
+                for (Entry<String, String> entry : headers.entrySet()) {
+                    post.addHeader(entry.getKey(), entry.getValue());
+                }
+            }
+            // 设置参数
+            RequestConfig.Builder customReqConf = RequestConfig.custom();
+            if (connTimeout != null) {
+                customReqConf.setConnectTimeout(connTimeout);
+            }
+            if (readTimeout != null) {
+                customReqConf.setSocketTimeout(readTimeout);
+            }
+            post.setConfig(customReqConf.build());
+            HttpResponse res = null;
+            if (url.startsWith("https")) {
+                // 执行 Https 请求.
+                client = createSSLInsecureClient();
+                res = client.execute(post);
+            } else {
+                // 执行 Http 请求.
+                client = HttpClientUtils.client;
+                res = client.execute(post);
+            }
+            return IOUtils.toString(res.getEntity().getContent(), "UTF-8");
+        } finally {
+            post.releaseConnection();
+            if (url.startsWith("https") && client != null
+                    && client instanceof CloseableHttpClient) {
+                ((CloseableHttpClient) client).close();
+            }
+        }
+    }
+
+    /**
+     * 发送一个 GET 请求
+     */
+    public static String get(String url, String charset, Integer connTimeout,Integer readTimeout)
+            throws ConnectTimeoutException,SocketTimeoutException, Exception {
+
+        CloseableHttpClient client = null;
+        HttpGet get = new HttpGet(url);
+        String result = "";
+        try {
+            // 设置参数
+            RequestConfig.Builder customReqConf = RequestConfig.custom();
+            if (connTimeout != null) {
+                customReqConf.setConnectTimeout(connTimeout);
+            }
+            if (readTimeout != null) {
+                customReqConf.setSocketTimeout(readTimeout);
+            }
+            get.setConfig(customReqConf.build());
+
+            HttpResponse res = null;
+
+            if (url.startsWith("https")) {
+                // 执行 Https 请求.
+                client = createSSLInsecureClient();
+                res = client.execute(get);
+            } else {
+                // 执行 Http 请求.
+                client = HttpClientUtils.client;
+                res = client.execute(get);
+            }
+
+            result = IOUtils.toString(res.getEntity().getContent(), charset);
+        } finally {
+            get.releaseConnection();
+            if (url.startsWith("https") && client != null && client instanceof CloseableHttpClient) {
+                ((CloseableHttpClient) client).close();
+            }
+        }
+        return result;
+    }
+
+    /**
+     * 从 response 里获取 charset
+     */
+    @SuppressWarnings("unused")
+    private static String getCharsetFromResponse(HttpResponse ressponse) {
+        // Content-Type:text/html; charset=GBK
+        if (ressponse.getEntity() != null  && ressponse.getEntity().getContentType() != null && ressponse.getEntity().getContentType().getValue() != null) {
+            String contentType = ressponse.getEntity().getContentType().getValue();
+            if (contentType.contains("charset=")) {
+                return contentType.substring(contentType.indexOf("charset=") + 8);
+            }
+        }
+        return null;
+    }
+
+    /**
+     * 创建 SSL连接
+     * @return
+     * @throws GeneralSecurityException
+     */
+    private static CloseableHttpClient createSSLInsecureClient() throws GeneralSecurityException {
+        try {
+            SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null, new TrustStrategy() {
+                public boolean isTrusted(X509Certificate[] chain,String authType) throws CertificateException {
+                    return true;
+                }
+            }).build();
+
+            SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext, new X509HostnameVerifier() {
+
+                @Override
+                public boolean verify(String arg0, SSLSession arg1) {
+                    return true;
+                }
+
+                @Override
+                public void verify(String host, SSLSocket ssl)
+                        throws IOException {
+                }
+
+                @Override
+                public void verify(String host, X509Certificate cert)
+                        throws SSLException {
+                }
+
+                @Override
+                public void verify(String host, String[] cns,
+                                   String[] subjectAlts) throws SSLException {
+                }
+            });
+            return HttpClients.custom().setSSLSocketFactory(sslsf).build();
+
+        } catch (GeneralSecurityException e) {
+            throw e;
+        }
+    }
+}
\ No newline at end of file
diff --git a/flower_city/src/main/java/com/dg/core/db/manual/mapper/util/MapperGenerator.java b/flower_city/src/main/java/com/dg/core/db/manual/mapper/util/MapperGenerator.java
new file mode 100644
index 0000000..686c5e3
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/manual/mapper/util/MapperGenerator.java
@@ -0,0 +1,52 @@
+package com.dg.core.db.manual.mapper.util;
+
+import com.baomidou.mybatisplus.generator.FastAutoGenerator;
+import com.baomidou.mybatisplus.generator.config.OutputFile;
+import org.springframework.beans.factory.annotation.Value;
+
+import java.io.File;
+import java.util.Collections;
+
+public class MapperGenerator {
+    @Value("spring.datasource.url")
+    String url = "jdbc:mysql://10.8.0.74:3306/huacheng_smart_life?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&allowMultiQueries=true&serverTimezone=GMT%2B8";
+    @Value("spring.datasource.username")
+    String username = "root";
+    @Value("spring.datasource.password")
+    String password = "nahanMysqlPwd&&RemoteRemote2019nahan";
+
+    public void gen() {
+        String userdir = System.getProperty("user.dir");//获取当前工作目录
+        String outputDir = userdir + File.separator + "src" + File.separator + "main";
+
+        FastAutoGenerator.create(url, username, password)
+                .globalConfig(builder -> {
+                    builder.author("fengjin") // 设置作者
+//                            .enableSwagger() // 开启 swagger 模式
+                            .fileOverride() // 覆盖已生成文件
+                            .outputDir(outputDir + File.separator + "java"); // 指定输出目录
+                })
+                .packageConfig(builder -> {
+                    builder.parent("com.dg.core.db.gen") // 设置父包名
+//                            .moduleName("system") // 设置父包模块名
+                            .pathInfo(Collections.singletonMap(OutputFile.mapperXml, outputDir +
+                                    File.separator + "resources" + File.separator + "mapper")); // 设置mapperXml生成路径
+                })
+                .strategyConfig(builder -> {
+//                    builder.addInclude("");
+                    builder.addInclude("automessage_smart_consulting") // 设置需要生成的表名
+                            .addTablePrefix("t_", "c_"); // 设置过滤表前缀
+                })
+                .templateConfig(builder -> {
+                    builder.controller("");
+                    builder.service("");
+                    builder.serviceImpl("");
+                })
+                .execute();
+    }
+
+    public static void main(String[] args) {
+        MapperGenerator m = new MapperGenerator();
+        m.gen();
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/manual/mapper/util/PageUtils.java b/flower_city/src/main/java/com/dg/core/db/manual/mapper/util/PageUtils.java
new file mode 100644
index 0000000..587078b
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/manual/mapper/util/PageUtils.java
@@ -0,0 +1,28 @@
+package com.dg.core.db.manual.mapper.util;
+
+
+/**
+ * 分页工具类
+ * 
+ * @author ruoyi
+ */
+public class PageUtils {}
+//        extends PageHelper
+//{
+//    /**
+//     * 设置请求分页数据
+//     */
+//    public static void startPage()
+//    {
+//        PageDomain pageDomain = TableSupport.buildPageRequest();
+//        Integer pageNum = pageDomain.getPageNum();
+//        Integer pageSize = pageDomain.getPageSize();
+//
+//        if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize))
+//        {
+//            String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
+//            Boolean reasonable = pageDomain.getReasonable();
+//            PageHelper.startPage(pageNum, pageSize, orderBy).setReasonable(false);
+//        }
+//    }
+//}
diff --git a/flower_city/src/main/java/com/dg/core/db/manual/pojo/AppletUserCount.java b/flower_city/src/main/java/com/dg/core/db/manual/pojo/AppletUserCount.java
new file mode 100644
index 0000000..602dfb8
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/manual/pojo/AppletUserCount.java
@@ -0,0 +1,22 @@
+package com.dg.core.db.manual.pojo;
+
+import com.dg.core.annotation.Authorization;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@ApiModel("小程序用户统计结果")
+@Data
+public class AppletUserCount {
+
+    @ApiModelProperty("日期,可以是月也可以是日")
+    private String date;
+
+    @ApiModelProperty("访问量")
+    private Long visits;
+
+    @ApiModelProperty("类型1.累计访问量2.本年访问量 3.本月访问量 4.今日访问量 5.昨日访问量")
+    private Integer type;
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/manual/pojo/LargeScreen.java b/flower_city/src/main/java/com/dg/core/db/manual/pojo/LargeScreen.java
new file mode 100644
index 0000000..5d36a74
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/manual/pojo/LargeScreen.java
@@ -0,0 +1,56 @@
+package com.dg.core.db.manual.pojo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class LargeScreen implements Serializable
+{
+
+
+
+    /**
+     * 微信群数
+     */
+    private int groupNum=0;
+
+    /**
+     * 关键词数
+     */
+    private int wordNum=0;
+
+    /**
+     * 覆盖家庭
+     */
+    private int homeNum=0;
+    /**
+     * 参与人员
+     */
+    private int staffNum=0;
+
+    //敏感词数量
+    private int mNum;
+    //抓取信息
+    private int zNum;
+    //匹配数量
+    private int pNum=0;
+
+
+    /**
+     * 检测信息
+     */
+    private int testingInformation=0;
+
+
+    /**
+     * 热门舆情
+     */
+    private int hotPublicOpinion=0;
+
+    /**
+     * 关注数量
+     */
+    private int attention=0;
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/manual/pojo/MUser.java b/flower_city/src/main/java/com/dg/core/db/manual/pojo/MUser.java
new file mode 100644
index 0000000..06dacbf
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/manual/pojo/MUser.java
@@ -0,0 +1,40 @@
+package com.dg.core.db.manual.pojo;
+
+public class MUser {
+    private Long id;
+    private String name;
+    private Integer age;
+    private String email;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Integer getAge() {
+        return age;
+    }
+
+    public void setAge(Integer age) {
+        this.age = age;
+    }
+
+    public String getEmail() {
+        return email;
+    }
+
+    public void setEmail(String email) {
+        this.email = email;
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/manual/pojo/MsgLocal.java b/flower_city/src/main/java/com/dg/core/db/manual/pojo/MsgLocal.java
new file mode 100644
index 0000000..7a4c58d
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/manual/pojo/MsgLocal.java
@@ -0,0 +1,32 @@
+package com.dg.core.db.manual.pojo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+@Data
+public class MsgLocal implements Serializable
+{
+    /**
+     * 主键
+     */
+    @JsonSerialize(using = ToStringSerializer.class)
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+    private String msgTitle;
+    private String msgContent;
+    private String groups;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime creationTime;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime sendTime;
+    private Long userId;
+    private String userName;
+    private int msgType;
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/manual/pojo/QueryResults.java b/flower_city/src/main/java/com/dg/core/db/manual/pojo/QueryResults.java
new file mode 100644
index 0000000..a3ec3ab
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/manual/pojo/QueryResults.java
@@ -0,0 +1,42 @@
+package com.dg.core.db.manual.pojo;
+
+import com.dg.core.db.gen.entity.AutomessagePolicyDocuments;
+import com.dg.core.db.gen.entity.KeywordEntity;
+import com.dg.core.db.gen.entity.OrganizationChartEntity;
+import com.dg.core.db.gen.entity.TransactionEvent;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@ApiModel("自公告门户网搜索结果")
+@Data
+public class QueryResults {
+
+
+    @ApiModelProperty("数量")
+    private long total;
+
+    @ApiModelProperty("办事指南列表或者部门")
+    private  List<Search> searchList;
+
+    @ApiModelProperty("推荐办事指南列表")
+    private  List<Search> transactionEventList;
+
+    @ApiModelProperty("联想词列表")
+    private  List<KeywordEntity> keywordEntityList;
+
+    @ApiModelProperty("关联联想词列表")
+    private  List<KeywordEntity> keywordAssociationList;
+
+    @ApiModelProperty("办事部门列表")
+    private  List<OrganizationChartEntity> organizationChartEntityList;
+
+    @ApiModelProperty("政策文件列表")
+    private  List<AutomessagePolicyDocuments> automessagePolicyDocuments;
+
+    @ApiModelProperty("法律法规列表")
+    private  List<AutomessagePolicyDocuments> regulations;
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/manual/pojo/RecommendResult.java b/flower_city/src/main/java/com/dg/core/db/manual/pojo/RecommendResult.java
new file mode 100644
index 0000000..bc254ce
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/manual/pojo/RecommendResult.java
@@ -0,0 +1,31 @@
+package com.dg.core.db.manual.pojo;
+
+import com.dg.core.db.gen.entity.AutomessagePolicyDocuments;
+import com.dg.core.db.gen.entity.KeywordEntity;
+import com.dg.core.db.gen.entity.OrganizationChartEntity;
+import com.dg.core.db.gen.entity.TransactionEvent;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@ApiModel("自公告门户网智能推荐结果")
+@Data
+public class RecommendResult {
+
+    @ApiModelProperty("办事指南列表")
+    private List<TransactionEvent> transactionEventList;
+
+    @ApiModelProperty("联想词列表")
+    private  List<KeywordEntity> keywordEntityList;
+
+    @ApiModelProperty("办事部门列表")
+    private  List<OrganizationChartEntity> organizationChartEntityList;
+
+    @ApiModelProperty("政策文件列表")
+    private  List<AutomessagePolicyDocuments> automessagePolicyDocuments;
+
+    @ApiModelProperty("法律法规列表")
+    private  List<AutomessagePolicyDocuments> regulations;
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/manual/pojo/Search.java b/flower_city/src/main/java/com/dg/core/db/manual/pojo/Search.java
new file mode 100644
index 0000000..b1b01a5
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/manual/pojo/Search.java
@@ -0,0 +1,38 @@
+package com.dg.core.db.manual.pojo;
+
+import com.dg.core.db.gen.entity.TransactionEvent;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@ApiModel("自公告门户网搜索数据")
+@Data
+public class Search {
+
+    @ApiModelProperty("id")
+    private  Integer id;
+
+    @ApiModelProperty("搜索结果标题")
+    private  String title;
+
+    @ApiModelProperty("搜索结果内容(部门是简历,指南则是改指南的分级)")
+    private  String content;
+
+    @ApiModelProperty("浏览次数")
+    private  Integer views;
+
+    @ApiModelProperty("分类id")
+    private  Integer classifyId;
+
+    @ApiModelProperty("分类id父id")
+    private Integer parentClassifyId;
+
+    @ApiModelProperty("搜索数据类型1.办事部门2.办事指南 3.推荐办事指南4.分类 5.政策文件 6.法律法规")
+    private  Integer type;
+
+    @ApiModelProperty("办事指南")
+    private List<TransactionEvent> transactionEventList;
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/db/manual/pojo/WordUser.java b/flower_city/src/main/java/com/dg/core/db/manual/pojo/WordUser.java
new file mode 100644
index 0000000..d83f9da
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/db/manual/pojo/WordUser.java
@@ -0,0 +1,27 @@
+package com.dg.core.db.manual.pojo;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 群管理
+ * </p>
+ *
+ * @author xiang
+ * @since 2022-07-05
+ */
+@Data
+@TableName("word_user")
+public class WordUser implements Serializable
+{
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+    private Long wordId;
+    private Long userId;
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/exception/DemoModeException.java b/flower_city/src/main/java/com/dg/core/exception/DemoModeException.java
new file mode 100644
index 0000000..7dde0e1
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/exception/DemoModeException.java
@@ -0,0 +1,15 @@
+package com.dg.core.exception;
+
+/**
+ * 演示模式异常
+ * 
+ * @author ruoyi
+ */
+public class DemoModeException extends RuntimeException
+{
+    private static final long serialVersionUID = 1L;
+
+    public DemoModeException()
+    {
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/exception/GlobalException.java b/flower_city/src/main/java/com/dg/core/exception/GlobalException.java
new file mode 100644
index 0000000..6d525b5
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/exception/GlobalException.java
@@ -0,0 +1,58 @@
+package com.dg.core.exception;
+
+/**
+ * 全局异常
+ * 
+ * @author ruoyi
+ */
+public class GlobalException extends RuntimeException
+{
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 错误提示
+     */
+    private String message;
+
+    /**
+     * 错误明细,内部调试错误
+     *
+     * 和 {@link CommonResult#getDetailMessage()} 一致的设计
+     */
+    private String detailMessage;
+
+    /**
+     * 空构造方法,避免反序列化问题
+     */
+    public GlobalException()
+    {
+    }
+
+    public GlobalException(String message)
+    {
+        this.message = message;
+    }
+
+    public String getDetailMessage()
+    {
+        return detailMessage;
+    }
+
+    public GlobalException setDetailMessage(String detailMessage)
+    {
+        this.detailMessage = detailMessage;
+        return this;
+    }
+
+    public String getMessage()
+    {
+        return message;
+    }
+
+    public GlobalException setMessage(String message)
+    {
+        this.message = message;
+        return this;
+    }
+}
\ No newline at end of file
diff --git a/flower_city/src/main/java/com/dg/core/exception/ServiceException.java b/flower_city/src/main/java/com/dg/core/exception/ServiceException.java
new file mode 100644
index 0000000..c017848
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/exception/ServiceException.java
@@ -0,0 +1,73 @@
+package com.dg.core.exception;
+
+/**
+ * 业务异常
+ * 
+ * @author ruoyi
+ */
+public final class ServiceException extends RuntimeException
+{
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 错误码
+     */
+    private Integer code;
+
+    /**
+     * 错误提示
+     */
+    private String message;
+
+    /**
+     * 错误明细,内部调试错误
+     *
+     * 和 {@link CommonResult#getDetailMessage()} 一致的设计
+     */
+    private String detailMessage;
+
+    /**
+     * 空构造方法,避免反序列化问题
+     */
+    public ServiceException()
+    {
+    }
+
+    public ServiceException(String message)
+    {
+        this.message = message;
+    }
+
+    public ServiceException(String message, Integer code)
+    {
+        this.message = message;
+        this.code = code;
+    }
+
+    public String getDetailMessage()
+    {
+        return detailMessage;
+    }
+
+    public String getMessage()
+    {
+        return message;
+    }
+
+    public Integer getCode()
+    {
+        return code;
+    }
+
+    public ServiceException setMessage(String message)
+    {
+        this.message = message;
+        return this;
+    }
+
+    public ServiceException setDetailMessage(String detailMessage)
+    {
+        this.detailMessage = detailMessage;
+        return this;
+    }
+}
\ No newline at end of file
diff --git a/flower_city/src/main/java/com/dg/core/exception/UtilException.java b/flower_city/src/main/java/com/dg/core/exception/UtilException.java
new file mode 100644
index 0000000..cac14d8
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/exception/UtilException.java
@@ -0,0 +1,26 @@
+package com.dg.core.exception;
+
+/**
+ * 工具类异常
+ * 
+ * @author ruoyi
+ */
+public class UtilException extends RuntimeException
+{
+    private static final long serialVersionUID = 8247610319171014183L;
+
+    public UtilException(Throwable e)
+    {
+        super(e.getMessage(), e);
+    }
+
+    public UtilException(String message)
+    {
+        super(message);
+    }
+
+    public UtilException(String message, Throwable throwable)
+    {
+        super(message, throwable);
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/exception/file/BaseException.java b/flower_city/src/main/java/com/dg/core/exception/file/BaseException.java
new file mode 100644
index 0000000..af21660
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/exception/file/BaseException.java
@@ -0,0 +1,83 @@
+package com.dg.core.exception.file;
+
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * 基础异常
+ *
+ * @author
+ */
+public class BaseException extends RuntimeException {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 所属模块
+     */
+    private String module;
+
+    /**
+     * 错误码
+     */
+    private String code;
+
+    /**
+     * 错误码对应的参数
+     */
+    private Object[] args;
+
+    /**
+     * 错误消息
+     */
+    private String defaultMessage;
+
+    public BaseException(String module, String code, Object[] args, String defaultMessage) {
+        this.module = module;
+        this.code = code;
+        this.args = args;
+        this.defaultMessage = defaultMessage;
+    }
+
+    public BaseException(String module, String code, Object[] args) {
+        this(module, code, args, null);
+    }
+
+    public BaseException(String module, String defaultMessage) {
+        this(module, null, null, defaultMessage);
+    }
+
+    public BaseException(String code, Object[] args) {
+        this(null, code, args, null);
+    }
+
+    public BaseException(String defaultMessage) {
+        this(null, null, null, defaultMessage);
+    }
+
+    @Override
+    public String getMessage() {
+        String message = null;
+        if (!StringUtils.isEmpty(code)) {
+            message = MessageUtils.message(code, args);
+        }
+        if (message == null) {
+            message = defaultMessage;
+        }
+        return message;
+    }
+
+    public String getModule() {
+        return module;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public Object[] getArgs() {
+        return args;
+    }
+
+    public String getDefaultMessage() {
+        return defaultMessage;
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/exception/file/FileException.java b/flower_city/src/main/java/com/dg/core/exception/file/FileException.java
new file mode 100644
index 0000000..82b7ff8
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/exception/file/FileException.java
@@ -0,0 +1,19 @@
+package com.dg.core.exception.file;
+
+
+
+/**
+ * 文件信息异常类
+ * 
+ * @author ruoyi
+ */
+public class FileException extends BaseException
+{
+    private static final long serialVersionUID = 1L;
+
+    public FileException(String code, Object[] args)
+    {
+        super("file", code, args, null);
+    }
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/exception/file/FileNameLengthLimitExceededException.java b/flower_city/src/main/java/com/dg/core/exception/file/FileNameLengthLimitExceededException.java
new file mode 100644
index 0000000..8de8a2f
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/exception/file/FileNameLengthLimitExceededException.java
@@ -0,0 +1,16 @@
+package com.dg.core.exception.file;
+
+/**
+ * 文件名称超长限制异常类
+ * 
+ * @author ruoyi
+ */
+public class FileNameLengthLimitExceededException extends FileException
+{
+    private static final long serialVersionUID = 1L;
+
+    public FileNameLengthLimitExceededException(int defaultFileNameLength)
+    {
+        super("upload.filename.exceed.length", new Object[] { defaultFileNameLength });
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/exception/file/FileSizeLimitExceededException.java b/flower_city/src/main/java/com/dg/core/exception/file/FileSizeLimitExceededException.java
new file mode 100644
index 0000000..1b536c3
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/exception/file/FileSizeLimitExceededException.java
@@ -0,0 +1,16 @@
+package com.dg.core.exception.file;
+
+/**
+ * 文件名大小限制异常类
+ * 
+ * @author ruoyi
+ */
+public class FileSizeLimitExceededException extends FileException
+{
+    private static final long serialVersionUID = 1L;
+
+    public FileSizeLimitExceededException(long defaultMaxSize)
+    {
+        super("upload.exceed.maxSize", new Object[] { defaultMaxSize });
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/exception/file/InvalidExtensionException.java b/flower_city/src/main/java/com/dg/core/exception/file/InvalidExtensionException.java
new file mode 100644
index 0000000..6bd872b
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/exception/file/InvalidExtensionException.java
@@ -0,0 +1,84 @@
+package com.dg.core.exception.file;
+
+
+
+import org.apache.tomcat.util.http.fileupload.FileUploadException;
+
+import java.util.Arrays;
+
+/**
+ * 文件上传 误异常类
+ * 
+ * @author ruoyi
+ */
+public class InvalidExtensionException extends FileUploadException
+{
+    private static final long serialVersionUID = 1L;
+
+    private String[] allowedExtension;
+    private String extension;
+    private String filename;
+
+    public InvalidExtensionException(String[] allowedExtension, String extension, String filename)
+    {
+        super("filename : [" + filename + "], extension : [" + extension + "], allowed extension : [" + Arrays.toString(allowedExtension) + "]");
+        this.allowedExtension = allowedExtension;
+        this.extension = extension;
+        this.filename = filename;
+    }
+
+    public String[] getAllowedExtension()
+    {
+        return allowedExtension;
+    }
+
+    public String getExtension()
+    {
+        return extension;
+    }
+
+    public String getFilename()
+    {
+        return filename;
+    }
+
+    public static class InvalidImageExtensionException extends InvalidExtensionException
+    {
+        private static final long serialVersionUID = 1L;
+
+        public InvalidImageExtensionException(String[] allowedExtension, String extension, String filename)
+        {
+            super(allowedExtension, extension, filename);
+        }
+    }
+
+    public static class InvalidFlashExtensionException extends InvalidExtensionException
+    {
+        private static final long serialVersionUID = 1L;
+
+        public InvalidFlashExtensionException(String[] allowedExtension, String extension, String filename)
+        {
+            super(allowedExtension, extension, filename);
+        }
+    }
+
+    public static class InvalidMediaExtensionException extends InvalidExtensionException
+    {
+        private static final long serialVersionUID = 1L;
+
+        public InvalidMediaExtensionException(String[] allowedExtension, String extension, String filename)
+        {
+            super(allowedExtension, extension, filename);
+        }
+    }
+
+    public static class InvalidVideoExtensionException extends InvalidExtensionException
+    {
+        private static final long serialVersionUID = 1L;
+
+        public InvalidVideoExtensionException(String[] allowedExtension, String extension, String filename)
+        {
+            super(allowedExtension, extension, filename);
+        }
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/exception/file/MessageUtils.java b/flower_city/src/main/java/com/dg/core/exception/file/MessageUtils.java
new file mode 100644
index 0000000..d3cf7ef
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/exception/file/MessageUtils.java
@@ -0,0 +1,25 @@
+package com.dg.core.exception.file;
+
+import org.springframework.context.MessageSource;
+import org.springframework.context.i18n.LocaleContextHolder;
+
+/**
+ * 获取i18n资源文件
+ * 
+ * @author ruoyi
+ */
+public class MessageUtils {
+    /**
+     * 根据消息键和参数 获取消息 委托给spring messageSource
+     *
+     * @param code
+     *            消息键
+     * @param args
+     *            参数
+     * @return 获取国际化翻译值
+     */
+    public static String message(String code, Object... args) {
+        MessageSource messageSource = SpringUtils.getBean(MessageSource.class);
+        return messageSource.getMessage(code, args, LocaleContextHolder.getLocale());
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/exception/file/SpringUtils.java b/flower_city/src/main/java/com/dg/core/exception/file/SpringUtils.java
new file mode 100644
index 0000000..c3f449d
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/exception/file/SpringUtils.java
@@ -0,0 +1,136 @@
+package com.dg.core.exception.file;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.aop.framework.AopContext;
+import org.springframework.beans.BeansException;
+import org.springframework.beans.factory.NoSuchBeanDefinitionException;
+import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
+import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.stereotype.Component;
+import org.springframework.util.ObjectUtils;
+
+/**
+ * spring工具类 方便在非spring管理环境中获取bean
+ * 
+ * @author huanghongfa
+ */
+@Slf4j
+@Component
+public final class SpringUtils implements BeanFactoryPostProcessor, ApplicationContextAware {
+    /** Spring应用上下文环境 */
+    private static ConfigurableListableBeanFactory beanFactory;
+
+    private static ApplicationContext applicationContext;
+
+    /**
+     * 获取对象
+     *
+     * @param name
+     * @return Object 一个以所给名字注册的bean的实例
+     * @throws BeansException
+     *
+     */
+    @SuppressWarnings("unchecked")
+    public static <T> T getBean(String name) throws BeansException {
+        return (T)beanFactory.getBean(name);
+    }
+
+    /**
+     * 获取类型为requiredType的对象
+     *
+     * @param clz
+     * @return
+     * @throws BeansException
+     *
+     */
+    public static <T> T getBean(Class<T> clz) throws BeansException {
+        T result = beanFactory.getBean(clz);
+        return result;
+    }
+
+    /**
+     * 如果BeanFactory包含一个与所给名称匹配的bean定义,则返回true
+     *
+     * @param name
+     * @return boolean
+     */
+    public static boolean containsBean(String name) {
+        return beanFactory.containsBean(name);
+    }
+
+    /**
+     * 判断以给定名字注册的bean定义是一个singleton还是一个prototype。 如果与给定名字相应的bean定义没有被找到,将会抛出一个异常(NoSuchBeanDefinitionException)
+     *
+     * @param name
+     * @return boolean
+     * @throws NoSuchBeanDefinitionException
+     *
+     */
+    public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException {
+        return beanFactory.isSingleton(name);
+    }
+
+    /**
+     * @param name
+     * @return Class 注册对象的类型
+     * @throws NoSuchBeanDefinitionException
+     *
+     */
+    public static Class<?> getType(String name) throws NoSuchBeanDefinitionException {
+        return beanFactory.getType(name);
+    }
+
+    /**
+     * 如果给定的bean名字在bean定义中有别名,则返回这些别名
+     *
+     * @param name
+     * @return
+     * @throws NoSuchBeanDefinitionException
+     *
+     */
+    public static String[] getAliases(String name) throws NoSuchBeanDefinitionException {
+        return beanFactory.getAliases(name);
+    }
+
+    /**
+     * 获取aop代理对象
+     *
+     * @param invoker
+     * @return
+     */
+    @SuppressWarnings("unchecked")
+    public static <T> T getAopProxy(T invoker) {
+        return (T)AopContext.currentProxy();
+    }
+
+    /**
+     * 获取当前的环境配置,无配置返回null
+     *
+     * @return 当前的环境配置
+     */
+    public static String[] getActiveProfiles() {
+        return applicationContext.getEnvironment().getActiveProfiles();
+    }
+
+    /**
+     * 获取当前的环境配置,当有多个环境配置时,只获取第一个
+     *
+     * @return 当前的环境配置
+     */
+    public static String getActiveProfile() {
+        final String[] activeProfiles = getActiveProfiles();
+        return !ObjectUtils.isEmpty(activeProfiles) ? activeProfiles[0] : null;
+    }
+
+    @Override
+    public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
+        SpringUtils.beanFactory = beanFactory;
+    }
+
+    @Override
+    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
+        SpringUtils.applicationContext = applicationContext;
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/file/FileTypeUploadUtils.java b/flower_city/src/main/java/com/dg/core/file/FileTypeUploadUtils.java
new file mode 100644
index 0000000..0cfbbb5
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/file/FileTypeUploadUtils.java
@@ -0,0 +1,94 @@
+package com.dg.core.file;
+
+import com.dg.core.exception.file.FileSizeLimitExceededException;
+import com.dg.core.exception.file.InvalidExtensionException;
+import org.apache.commons.io.FilenameUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.Objects;
+
+/**
+ * 文件上传工具类
+ *
+ * @author
+ */
+public class FileTypeUploadUtils {
+    /**
+     * 默认大小 50M
+     */
+    public static final long DEFAULT_MAX_SIZE = 50 * 1024 * 1024;
+
+    /**
+     * 默认的文件名最大长度 100
+     */
+    public static final int DEFAULT_FILE_NAME_LENGTH = 100;
+
+
+    /**
+     * 文件大小校验
+     *
+     * @param file 上传的文件
+     * @return
+     * @throws FileSizeLimitExceededException 如果超出最大大小
+     * @throws InvalidExtensionException
+     */
+    public static final void assertAllowed(MultipartFile file, String[] allowedExtension)
+            throws FileSizeLimitExceededException, InvalidExtensionException {
+        long size = file.getSize();
+        if (size > DEFAULT_MAX_SIZE) {
+            throw new FileSizeLimitExceededException(DEFAULT_MAX_SIZE / 1024 / 1024);
+        }
+
+        String fileName = file.getOriginalFilename();
+        String extension = getExtension(file);
+        if (allowedExtension != null && !isAllowedExtension(extension, allowedExtension)) {
+            if (allowedExtension == MimeTypeUtils.IMAGE_EXTENSION) {
+                throw new InvalidExtensionException.InvalidImageExtensionException(allowedExtension, extension,
+                        fileName);
+            } else if (allowedExtension == MimeTypeUtils.FLASH_EXTENSION) {
+                throw new InvalidExtensionException.InvalidFlashExtensionException(allowedExtension, extension,
+                        fileName);
+            } else if (allowedExtension == MimeTypeUtils.MEDIA_EXTENSION) {
+                throw new InvalidExtensionException.InvalidMediaExtensionException(allowedExtension, extension,
+                        fileName);
+            } else if (allowedExtension == MimeTypeUtils.VIDEO_EXTENSION) {
+                throw new InvalidExtensionException.InvalidVideoExtensionException(allowedExtension, extension,
+                        fileName);
+            } else {
+                throw new InvalidExtensionException(allowedExtension, extension, fileName);
+            }
+        }
+
+    }
+
+    /**
+     * 判断MIME类型是否是允许的MIME类型
+     *
+     * @param extension
+     * @param allowedExtension
+     * @return
+     */
+    public static final boolean isAllowedExtension(String extension, String[] allowedExtension) {
+        for (String str : allowedExtension) {
+            if (str.equalsIgnoreCase(extension)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * 获取文件名的后缀
+     *
+     * @param file 表单文件
+     * @return 后缀名
+     */
+    public static final String getExtension(MultipartFile file) {
+        String extension = FilenameUtils.getExtension(file.getOriginalFilename());
+        if (StringUtils.isEmpty(extension)) {
+            extension = MimeTypeUtils.getExtension(Objects.requireNonNull(file.getContentType()));
+        }
+        return extension;
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/file/FtpConstants.java b/flower_city/src/main/java/com/dg/core/file/FtpConstants.java
new file mode 100644
index 0000000..ef763ae
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/file/FtpConstants.java
@@ -0,0 +1,38 @@
+package com.dg.core.file;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: ftp
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 13:39
+ **/
+public class FtpConstants {
+    /**
+     * ftp站点
+     */
+    public static final String FTPHOST = "47.104.148.185";
+    /**
+     * 端口号
+     */
+    public static final Integer FTPPORT = 22;
+    /**
+     * ftp访问用户名
+     */
+    public static final String FTPUSERNAME = "root";
+    /**
+     * ftp访问密码
+     */
+    public static final String FTPPASSWORD = "evanN7F2K5M6";
+    /**
+     * excel模板
+     */
+    public static final String FTPFILEPATH_MUBAN = "/mnt/data/ftp/muban/";
+    /**
+     * 党员保存
+     */
+    public static final String FTPFILEPATH_IDCARD = "/mnt/data/ftp/idcard/";
+    /**
+     * http访问路径
+     */
+    public static final String HTTP_URL = "http://image.panzhihua.nhys.cdnhxx.com/";
+}
diff --git a/flower_city/src/main/java/com/dg/core/file/MimeTypeUtils.java b/flower_city/src/main/java/com/dg/core/file/MimeTypeUtils.java
new file mode 100644
index 0000000..c0145e7
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/file/MimeTypeUtils.java
@@ -0,0 +1,59 @@
+package com.dg.core.file;
+
+/**
+ * 媒体类型工具类
+ * 
+ * @author
+ */
+public class MimeTypeUtils
+{
+    public static final String IMAGE_PNG = "image/png";
+
+    public static final String IMAGE_JPG = "image/jpg";
+
+    public static final String IMAGE_JPEG = "image/jpeg";
+
+    public static final String IMAGE_BMP = "image/bmp";
+
+    public static final String IMAGE_GIF = "image/gif";
+    
+    public static final String[] IMAGE_EXTENSION = { "bmp", "gif", "jpg", "jpeg", "png" };
+
+    public static final String[] FLASH_EXTENSION = { "swf", "flv" };
+
+    public static final String[] MEDIA_EXTENSION = { "swf", "flv", "mp3", "wav", "wma", "wmv", "mid", "avi", "mpg",
+            "asf", "rm", "rmvb" };
+
+    public static final String[] VIDEO_EXTENSION = { "mp4", "avi", "rmvb" };
+
+    public static final String[] DEFAULT_ALLOWED_EXTENSION = {
+            // 图片
+            "bmp", "gif", "jpg", "jpeg", "png",
+            // word excel powerpoint
+            "doc", "docx", "xls", "xlsx", "ppt", "pptx", "html", "htm", "txt",
+            // 压缩文件
+            "rar", "zip", "gz", "bz2",
+            // 视频格式
+            "mp4", "avi", "rmvb",
+            // pdf
+            "pdf" };
+
+    public static String getExtension(String prefix)
+    {
+        switch (prefix)
+        {
+            case IMAGE_PNG:
+                return "png";
+            case IMAGE_JPG:
+                return "jpg";
+            case IMAGE_JPEG:
+                return "jpeg";
+            case IMAGE_BMP:
+                return "bmp";
+            case IMAGE_GIF:
+                return "gif";
+            default:
+                return "";
+        }
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/file/SFTPUtil.java b/flower_city/src/main/java/com/dg/core/file/SFTPUtil.java
new file mode 100644
index 0000000..b01e9d2
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/file/SFTPUtil.java
@@ -0,0 +1,374 @@
+package com.dg.core.file;
+
+import com.jcraft.jsch.*;
+import org.apache.commons.io.IOUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.*;
+import java.util.Properties;
+import java.util.Vector;
+
+/**
+ * @version 1.0.0
+ * @ClassName: SFTPUtil
+ * @Description: sftp连接工具类
+ */
+public class SFTPUtil {
+    private transient Logger log = LoggerFactory.getLogger(this.getClass());
+
+    private ChannelSftp sftp;
+
+    private Session session;
+
+    // FTP 登录用户名
+    private String userName;
+    // FTP 登录密码
+    private String password;
+    // FTP 服务器地址IP地址
+    private String host;
+    // FTP 端口
+    private int port;
+
+    /**
+     * 构造基于密码认证的sftp对象
+     *
+     * @param userName
+     * @param password
+     * @param host
+     * @param port
+     */
+    public SFTPUtil(String userName, String password, String host, int port) {
+        this.userName = userName;
+        this.password = password;
+        this.host = host;
+        this.port = port;
+    }
+
+    public SFTPUtil() {
+        this.userName = FtpConstants.FTPUSERNAME;
+        this.password = FtpConstants.FTPPASSWORD;
+        this.host = FtpConstants.FTPHOST;
+        this.port = FtpConstants.FTPPORT;
+    }
+
+    public static void main(String[] args) throws SftpException, IOException {
+        SFTPUtil sftp = new SFTPUtil("root", "evanN7F2K5M6", "47.104.148.185", 22);
+        sftp.login();
+        File file = new File("F:\\settings.xml");
+        InputStream is = new FileInputStream(file);
+        // 多级目录创建并上传
+        sftp.uploadMore("/mnt/data/ftp/ss", "settings.xml", is);
+        sftp.logout();
+    }
+
+    /**
+     * 连接sftp服务器
+     *
+     * @throws Exception
+     */
+    public void login() {
+        try {
+            JSch jsch = new JSch();
+            log.info("sftp connect by host:{} username:{}", host, userName);
+
+            session = jsch.getSession(userName, host, port);
+            log.info("Session is build");
+            if (password != null) {
+                session.setPassword(password);
+            }
+            Properties config = new Properties();
+            config.put("StrictHostKeyChecking", "no");
+
+            session.setConfig(config);
+            session.connect();
+            log.info("Session is connected");
+
+            Channel channel = session.openChannel("sftp");
+            channel.connect();
+            log.info("channel is connected");
+
+            sftp = (ChannelSftp)channel;
+            log.info(String.format("sftp server host:[%s] port:[%s] is connect successfull", host, port));
+        } catch (JSchException e) {
+            log.error("Cannot connect to specified sftp server : {}:{} \n Exception message is: {}", host, port,
+                e.getMessage());
+        }
+    }
+
+    /**
+     * 关闭连接 server
+     */
+    public void logout() {
+        if (sftp != null) {
+            if (sftp.isConnected()) {
+                sftp.disconnect();
+                log.info("sftp is closed already");
+            }
+        }
+        if (session != null) {
+            if (session.isConnected()) {
+                session.disconnect();
+                log.info("sshSession is closed already");
+            }
+        }
+    }
+
+    /**
+     * 递归根据路径创建文件夹
+     *
+     * @param dirs
+     *            根据 / 分隔后的数组文件夹名称
+     * @param tempPath
+     *            拼接路径
+     * @param length
+     *            文件夹的格式
+     * @param index
+     *            数组下标
+     * @return
+     */
+    public void mkdirDir(String[] dirs, String tempPath, int length, int index) {
+        // 以"/a/b/c/d"为例按"/"分隔后,第0位是"";顾下标从1开始
+        index++;
+        if (index < length) {
+            // 目录不存在,则创建文件夹
+            tempPath += "/" + dirs[index];
+        }
+        try {
+            log.info("检测目录[" + tempPath + "]");
+            sftp.cd(tempPath);
+            if (index < length) {
+                mkdirDir(dirs, tempPath, length, index);
+            }
+        } catch (SftpException ex) {
+            log.warn("创建目录[" + tempPath + "]");
+            try {
+                sftp.mkdir(tempPath);
+                sftp.cd(tempPath);
+            } catch (SftpException e) {
+                e.printStackTrace();
+                log.error("创建目录[" + tempPath + "]失败,异常信息[" + e.getMessage() + "]");
+
+            }
+            log.info("进入目录[" + tempPath + "]");
+            mkdirDir(dirs, tempPath, length, index);
+        }
+    }
+
+    /**
+     * 将输入流的数据上传到sftp作为文件(多层目录)
+     *
+     * @param directory
+     *            上传到该目录(多层目录)
+     * @param sftpFileName
+     *            sftp端文件名
+     * @param input
+     *            输入流
+     * @throws SftpException
+     * @throws Exception
+     */
+    public void uploadMore(String directory, String sftpFileName, InputStream input) throws SftpException {
+        try {
+            sftp.cd(directory);
+        } catch (SftpException e) {
+            // 目录不存在,则创建文件夹
+            String[] dirs = directory.split("/");
+            String tempPath = "";
+            int index = 0;
+            mkdirDir(dirs, tempPath, dirs.length, index);
+        }
+        sftp.put(input, sftpFileName);// 上传文件
+    }
+
+    /**
+     * 将输入流的数据上传到sftp作为文件
+     *
+     * @param directory
+     *            上传到该目录(单层目录)
+     * @param sftpFileName
+     *            sftp端文件名
+     * @param input
+     *            输入流
+     * @throws SftpException
+     * @throws Exception
+     */
+    public void upload(String directory, String sftpFileName, InputStream input) throws SftpException {
+        try {
+            sftp.cd(directory);
+        } catch (SftpException e) {
+            log.warn("directory is not exist");
+            sftp.mkdir(directory);
+            sftp.cd(directory);
+        }
+        sftp.put(input, sftpFileName);
+        log.info("file:{} is upload successful", sftpFileName);
+    }
+
+    /**
+     * 上传单个文件
+     *
+     * @param directory
+     *            上传到sftp目录
+     * @param uploadFile
+     *            要上传的文件,包括路径
+     * @throws FileNotFoundException
+     * @throws SftpException
+     * @throws Exception
+     */
+    public void upload(String directory, String uploadFile) throws FileNotFoundException, SftpException {
+        File file = new File(uploadFile);
+        upload(directory, file.getName(), new FileInputStream(file));
+    }
+
+    /**
+     * 将byte[]上传到sftp,作为文件。注意:从String生成byte[]是,要指定字符集。
+     *
+     * @param directory
+     *            上传到sftp目录
+     * @param sftpFileName
+     *            文件在sftp端的命名
+     * @param byteArr
+     *            要上传的字节数组
+     * @throws SftpException
+     * @throws Exception
+     */
+    public void upload(String directory, String sftpFileName, byte[] byteArr) throws SftpException {
+        upload(directory, sftpFileName, new ByteArrayInputStream(byteArr));
+    }
+
+    /**
+     * 将字符串按照指定的字符编码上传到sftp
+     *
+     * @param directory
+     *            上传到sftp目录
+     * @param sftpFileName
+     *            文件在sftp端的命名
+     * @param dataStr
+     *            待上传的数据
+     * @param charsetName
+     *            sftp上的文件,按该字符编码保存
+     * @throws UnsupportedEncodingException
+     * @throws SftpException
+     * @throws Exception
+     */
+    public void upload(String directory, String sftpFileName, String dataStr, String charsetName)
+        throws UnsupportedEncodingException, SftpException {
+        upload(directory, sftpFileName, new ByteArrayInputStream(dataStr.getBytes(charsetName)));
+    }
+
+    /**
+     * 下载文件
+     *
+     * @param directory
+     *            下载目录
+     * @param downloadFile
+     *            下载的文件
+     * @param saveFile
+     *            存在本地的路径
+     * @throws SftpException
+     * @throws FileNotFoundException
+     * @throws Exception
+     */
+    public void download(String directory, String downloadFile, String saveFile)
+        throws SftpException, FileNotFoundException {
+        if (directory != null && !"".equals(directory)) {
+            sftp.cd(directory);
+        }
+        File file = new File(saveFile);
+        sftp.get(downloadFile, new FileOutputStream(file));
+        log.info("file:{} is download successful", downloadFile);
+    }
+
+    /**
+     * 下载文件
+     *
+     * @param directory
+     *            下载目录
+     * @param downloadFile
+     *            下载的文件名
+     * @return 字节数组
+     * @throws SftpException
+     * @throws IOException
+     * @throws Exception
+     */
+    public byte[] download(String directory, String downloadFile) throws SftpException, IOException {
+        if (directory != null && !"".equals(directory)) {
+            sftp.cd(directory);
+        }
+        InputStream is = sftp.get(downloadFile);
+        byte[] fileData = IOUtils.toByteArray(is);
+        log.info("file:{} is download successful", downloadFile);
+        return fileData;
+    }
+
+    /**
+     * 下载文件
+     *
+     * @param directory
+     *            下载目录
+     * @param downloadFile
+     *            下载的文件名
+     * @return 字节数组
+     * @throws SftpException
+     * @throws IOException
+     * @throws Exception
+     */
+    public InputStream downloadInputStream(String directory, String downloadFile) throws SftpException, IOException {
+        if (directory != null && !"".equals(directory)) {
+            sftp.cd(directory);
+        }
+        InputStream is = sftp.get(downloadFile);
+        // byte[] fileData = IOUtils.toByteArray(is);
+        // log.info("file:{} is download successful", downloadFile);
+        return is;
+    }
+
+    /**
+     * 删除文件
+     *
+     * @param directory
+     *            要删除文件所在目录
+     * @param deleteFile
+     *            要删除的文件
+     * @throws SftpException
+     * @throws Exception
+     */
+    public void delete(String directory, String deleteFile) throws SftpException {
+        sftp.cd(directory);
+        sftp.rm(deleteFile);
+    }
+
+    /**
+     * 列出目录下的文件
+     *
+     * @param directory
+     *            要列出的目录
+     * @return
+     * @throws SftpException
+     */
+    public Vector<?> listFiles(String directory) throws SftpException {
+        return sftp.ls(directory);
+    }
+
+    /**
+     * 判断文件或者目录是否存在
+     *
+     * @param path
+     *            目录或者文件的路径
+     * @return 存在结果
+     */
+    public boolean isExistDir(String path) {
+        boolean isExist = false;
+        try {
+            SftpATTRS sftpATTRS = sftp.lstat(path);
+            isExist = true;
+            return sftpATTRS.isDir();
+        } catch (Exception e) {
+            if (e.getMessage().toLowerCase().equals("no such file")) {
+                isExist = false;
+            }
+        }
+        return isExist;
+
+    }
+}
\ No newline at end of file
diff --git a/flower_city/src/main/java/com/dg/core/interceptor/AuthorizationInterceptor.java b/flower_city/src/main/java/com/dg/core/interceptor/AuthorizationInterceptor.java
new file mode 100644
index 0000000..70888b1
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/interceptor/AuthorizationInterceptor.java
@@ -0,0 +1,143 @@
+package com.dg.core.interceptor;
+
+import com.dg.core.Constant;
+import com.dg.core.annotation.Authorization;
+import com.dg.core.db.gen.entity.HuaChengSysUser;
+import com.dg.core.db.gen.entity.SysUser;
+import com.dg.core.manager.TokenManager;
+import com.dg.core.service.IHuaChengSysUserService;
+import com.dg.core.service.ISysUserRecordService;
+import org.apache.catalina.connector.ResponseFacade;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.web.method.HandlerMethod;
+import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.lang.reflect.Method;
+import java.nio.charset.StandardCharsets;
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * 自定义拦截器,判断此次请求是否有权限
+ */
+/**
+ * 自定义拦截器,判断此次请求是否有权限
+ */
+@Component
+public class AuthorizationInterceptor extends HandlerInterceptorAdapter {
+    @Autowired
+    private TokenManager manager;
+
+    @Autowired
+    com.dg.core.service.ISysUserService IUserService;
+
+    /**
+     * 花城e+用户接口
+     */
+    @Autowired
+    IHuaChengSysUserService iHuaChengSysUserService;
+
+    @Autowired
+    private ISysUserRecordService iSysUserRecordService;
+
+    @Override
+    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
+        //如果不是映射到方法直接通过
+        if (!(handler instanceof HandlerMethod)) {
+            return true;
+        }
+
+        HandlerMethod handlerMethod = (HandlerMethod) handler;
+        Method method = handlerMethod.getMethod();
+        Object bean = handlerMethod.getBean();
+
+        //从header中得到token
+        String token = request.getHeader(Constant.AUTHORIZATION);
+        //花城token
+        String HCtoken = request.getHeader(Constant.HCAUTHORIZATION);
+
+        if(StringUtils.isEmpty(token))
+        {
+            if (manager.checkHCToken(HCtoken)) {
+                //如果token验证成功,权限检查通过,将token对应的用户id存在request中,便于之后注入
+                request.setAttribute(Constant.CURRENT_USER_ID, manager.getHCUserId(HCtoken));
+                System.out.println("花城用户id:"+manager.getHCUserId(HCtoken));
+                List<HuaChengSysUser> list=iHuaChengSysUserService.selectData(manager.getHCUserId(HCtoken)+"","","");
+                HuaChengSysUser huaChengSysUser=null;
+
+                if(list!=null || list.size()>0 )
+                {
+                    huaChengSysUser=list.get(0);
+                }
+
+                if(huaChengSysUser!=null && !StringUtils.isEmpty(huaChengSysUser.getUserId()) )
+                {
+                    SysUser sysUser = IUserService.selectData(null,huaChengSysUser.getPhone(),null);
+                    if(sysUser==null)
+                    {
+                        //本地没有此用户  新用户
+                        SysUser newSysUser=new SysUser();
+                        //默认  1系统后台用户
+                        newSysUser.setUserType("4");
+                        newSysUser.setRoleIds("4");
+                        newSysUser.setIsDivisionHead("2");
+                        newSysUser.setPhonenumber(huaChengSysUser.getPhone());
+                        newSysUser.setUserId(huaChengSysUser.getUserId());
+                        newSysUser.setUserName(huaChengSysUser.getNickName());
+                        newSysUser.setSex(huaChengSysUser.getSex());
+                        newSysUser.setAvatar(huaChengSysUser.getImageUrl());
+                        newSysUser.setCreateTime(LocalDateTime.now());
+                        newSysUser.setUpdateTime(LocalDateTime.now());
+                        newSysUser.setOpenid(huaChengSysUser.getOpenid());
+                        IUserService.insertConfig(newSysUser);
+                    }
+                    else
+                    {
+                        if(StringUtils.isEmpty(sysUser.getOpenid()))
+                        {
+                            sysUser.setOpenid(huaChengSysUser.getOpenid());
+                            IUserService.updateConfig(sysUser);
+                        }
+                    }
+                    //新增浏览记录
+                    iSysUserRecordService.add(sysUser);
+                    //删除因为token问题产出的重复脏数据
+                    iSysUserRecordService.deleteDistinct();
+                }
+
+                return true;
+            }
+
+        }
+        else
+        {
+            if (manager.checkToken(token)) {
+                //如果token验证成功,权限检查通过,将token对应的用户id存在request中,便于之后注入
+                request.setAttribute(Constant.CURRENT_USER_ID, manager.getUserId(token));
+//            SysUser ss = IUserService.selectData(manager.getUserId(token)+"");
+                return true;
+            }
+        }
+
+//        if(!StringUtils.isEmpty(token))
+//        {
+            //如果验证token失败,并且方法或类注明了Authorization,返回401错误
+            if (method.getAnnotation(Authorization.class) != null ||
+                    bean.getClass().getAnnotation(Authorization.class) != null)
+            {
+                String reponse = "{\"result\": 449, \"message\": \"Overdue token\"}";
+                response.setStatus(200);
+                response.setCharacterEncoding(StandardCharsets.UTF_8.toString());
+                ResponseFacade facade = (ResponseFacade) response;
+                facade.setContentLength(reponse.getBytes(StandardCharsets.UTF_8).length);
+                facade.getWriter().write(reponse);
+                return false;
+            }
+//        }
+        return true;
+    }
+}
\ No newline at end of file
diff --git a/flower_city/src/main/java/com/dg/core/manager/JWTTokenUtil.java b/flower_city/src/main/java/com/dg/core/manager/JWTTokenUtil.java
new file mode 100644
index 0000000..835fcf0
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/manager/JWTTokenUtil.java
@@ -0,0 +1,170 @@
+package com.dg.core.manager;
+
+import com.dg.core.db.gen.entity.HuaChengSysUser;
+import io.jsonwebtoken.Claims;
+import io.jsonwebtoken.Jwts;
+import io.jsonwebtoken.SignatureAlgorithm;
+import org.springframework.stereotype.Component;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * token验证处理
+ *
+ * @author ruoyi
+ */
+@Component
+public class JWTTokenUtil implements Serializable {
+    /**
+     * 从数据声明生成令牌
+     *
+     * @param claims
+     *            数据声明
+     * @return 令牌
+     */
+    private static String generateToken(Map<String, Object> claims) {
+        Date expirationDate = new Date(System.currentTimeMillis() + TokenConstant.EXPIRETIME_LONG * 60 * 1000 * 72);
+        return Jwts.builder().setClaims(claims).setExpiration(expirationDate)
+            .signWith(SignatureAlgorithm.HS512, TokenConstant.SECRET).compact();
+    }
+
+    /**
+     * 生成刷新token
+     * 
+     * @param claims
+     *            tokenbody
+     * @return refreshtoken
+     */
+    private static String generateTokenRefreshToken(Map<String, Object> claims) {
+        Date expirationDate = new Date(System.currentTimeMillis() + TokenConstant.EXPIRETIME_REFRESH * 60 * 60 * 1000);
+        return Jwts.builder().setClaims(claims).setExpiration(expirationDate)
+            .signWith(SignatureAlgorithm.HS512, TokenConstant.SECRET).compact();
+    }
+
+    /**
+     * 从令牌中获取数据声明
+     *
+     * @param token
+     *            令牌
+     * @return 数据声明
+     */
+    public static Claims getClaimsFromToken(String token) {
+        Claims claims;
+        try {
+            claims = Jwts.parser().setSigningKey(TokenConstant.SECRET).parseClaimsJws(token).getBody();
+        } catch (Exception e) {
+            claims = null;
+        }
+        return claims;
+    }
+
+    /**
+     * 生成令牌
+     *
+     * @param loginUserInfoVO
+     *            用户
+     * @return 令牌
+     */
+    public static String generateToken(HuaChengSysUser loginUserInfoVO) {
+        Map<String, Object> claims = new HashMap<>(2);
+        claims.put("sub", loginUserInfoVO.getUserId());
+        claims.put("created", new Date());
+        claims.put("type", loginUserInfoVO.getType());
+        return generateToken(claims);
+    }
+
+    /**
+     * 从令牌中获取用户名
+     *
+     * @param token
+     *            令牌
+     * @return 用户名
+     */
+    public static String getUsernameFromToken(String token) {
+        String username;
+        try {
+            Claims claims = getClaimsFromToken(token);
+            username = claims.getSubject();
+        } catch (Exception e) {
+            username = null;
+        }
+        return username;
+    }
+
+    /**
+     * 判断令牌是否过期
+     *
+     * @param token
+     *            令牌
+     * @return 是否过期
+     */
+    public static Boolean isTokenExpired(String token) {
+        try {
+            Claims claims = getClaimsFromToken(token);
+            Date expiration = claims.getExpiration();
+            return expiration.before(new Date());
+        } catch (Exception e) {
+            return true;
+        }
+    }
+
+    /**
+     * 刷新令牌
+     *
+     * @param token
+     *            原令牌
+     * @return 新令牌
+     */
+    public static String refreshToken(String token) {
+        String refreshedToken;
+        try {
+            Claims claims = getClaimsFromToken(token);
+            claims.put("created", new Date());
+            refreshedToken = generateToken(claims);
+        } catch (Exception e) {
+            refreshedToken = null;
+        }
+        return refreshedToken;
+    }
+
+    /**
+     * 验证令牌
+     *
+     * @param token
+     *            令牌
+     * @param loginUserInfoVO
+     *            用户
+     * @return 是否有效
+     */
+    public static Boolean validateToken(String token, HuaChengSysUser loginUserInfoVO) {
+        String username = getUsernameFromToken(token);
+        return (username.equals(loginUserInfoVO.getUserId()) && !isTokenExpired(token));
+    }
+
+    public static void main(String[] args) {
+        Claims claims = JWTTokenUtil.getClaimsFromToken(
+            "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOjIsInR5cGUiOjEsImV4cCI6MTYwNjM1NzkzOSwiY3JlYXRlZCI6MTYwNjM1NjEzOTEzN30.zIj31TLHk4B9F45OszrJWfOlhZL5CWviP2RgsFP6LZuci6MlPn0iVbekioP01DRsu59mWd5FMyhd9WLvMtfxMg");
+        Boolean tokenExpired = JWTTokenUtil.isTokenExpired(
+            "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOjIsInR5cGUiOjEsImV4cCI6MTYwNjM2MDQzNSwiY3JlYXRlZCI6MTYwNjM1ODYzNTI3MX0.7R3SG6hu-sr_KiPpgepubl_1FdaooCNJ0URHWv6Jynr7m8JIar2kUAnhHfWOfHrNILQb5Q-nqxceXdavcuVOXg");
+        System.out.println(claims);
+    }
+
+    /**
+     * 生成刷新token
+     * 
+     * @param loginUserInfoVO
+     *            登录用户基本信息
+     * @return refreshtoken
+     */
+    public static String generateRefeshToken(HuaChengSysUser loginUserInfoVO) {
+        Map<String, Object> claims = new HashMap<>(2);
+        claims.put("sub", loginUserInfoVO.getUserId());
+        claims.put("created", new Date());
+        claims.put("type", loginUserInfoVO.getType());
+        return generateTokenRefreshToken(claims);
+    }
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/manager/RedisTokenManager.java b/flower_city/src/main/java/com/dg/core/manager/RedisTokenManager.java
new file mode 100644
index 0000000..e5e39ef
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/manager/RedisTokenManager.java
@@ -0,0 +1,123 @@
+package com.dg.core.manager;
+
+import com.dg.core.Constant;
+import io.jsonwebtoken.Claims;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.core.script.DigestUtils;
+import org.springframework.data.redis.serializer.JdkSerializationRedisSerializer;
+import org.springframework.stereotype.Component;
+import org.springframework.util.ObjectUtils;
+
+import java.util.UUID;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * 通过Redis存储和验证token的实现类
+ */
+@Component
+public class RedisTokenManager implements TokenManager
+{
+    private RedisTemplate<String, String> redis;
+
+    @Qualifier("redisTemplate")
+    @Autowired
+    public void setRedis(RedisTemplate redis) {
+        this.redis = redis;
+        //泛型设置成Long后必须更改对应的序列化方案
+        redis.setKeySerializer(new JdkSerializationRedisSerializer());
+    }
+
+    @Override
+    public String createToken(String userId, String userRole) {
+        //使用uuid作为源token
+        String uuid = UUID.randomUUID().toString().replace("-", "");
+        String token = DigestUtils.sha1DigestAsHex(uuid + userId + "e23ktjsdf") + "-" + userRole;
+        //存储到redis并设置过期时间
+        redis.boundValueOps(token).set(String.valueOf(userId), Constant.TOKEN_EXPIRES_HOUR, TimeUnit.HOURS);
+        redis.boundValueOps(String.valueOf(userId)).set(token, Constant.TOKEN_EXPIRES_HOUR, TimeUnit.HOURS);
+        return token;
+    }
+
+    public boolean checkToken(String token) {
+        if (StringUtils.isEmpty(token)) {
+            return false;
+        }
+        String userId = redis.boundValueOps(token).get();
+        if (userId == null) {
+            return false;
+        }
+        //如果验证成功,说明此用户进行了一次有效操作,延长token的过期时间
+        redis.boundValueOps(token).expire(Constant.TOKEN_EXPIRES_HOUR, TimeUnit.HOURS);
+        return true;
+    }
+
+
+    /**
+     * 验证花城token
+     * @param token
+     * @return
+     */
+    @Override
+    public boolean checkHCToken(String token) {
+        if (StringUtils.isEmpty(token)) {
+            return false;
+        }
+        // token解析
+        Claims claims = JWTTokenUtil.getClaimsFromToken(token);
+        if (ObjectUtils.isEmpty(claims)) {
+            return false;
+        }
+        String userId = claims.getSubject();
+        if (ObjectUtils.isEmpty(userId))
+        {
+            return false;
+        }
+        return true;
+    }
+
+
+    @Override
+    public long getUserId(String token) {
+        if (token == null) {
+            return -1;
+        }
+        String userId = redis.boundValueOps(token).get();
+        return Long.parseLong(userId);
+    }
+
+    /**
+     * 获取花城e+的 UserId
+     * @param token
+     * @return
+     */
+    @Override
+    public long getHCUserId(String token) {
+        if (token == null) {
+            return -1;
+        }
+        // token解析
+        Claims claims = JWTTokenUtil.getClaimsFromToken(token);
+        if (ObjectUtils.isEmpty(claims)) {
+            return -1;
+        }
+        String userId = claims.getSubject();
+        if (ObjectUtils.isEmpty(userId))
+        {
+            return -1;
+        }
+        return Long.parseLong(userId);
+    }
+
+    public void deleteToken(String token) {
+        redis.delete(token);
+    }
+
+    @Override
+    public String getTokenByUserId(String userId) {
+        return redis.boundValueOps(userId).get();
+    }
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/manager/TokenConstant.java b/flower_city/src/main/java/com/dg/core/manager/TokenConstant.java
new file mode 100644
index 0000000..94ecc25
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/manager/TokenConstant.java
@@ -0,0 +1,25 @@
+package com.dg.core.manager;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: token
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-24 14:44
+ **/
+public class TokenConstant {
+
+    public static final String TOKEN_HEADER = "Authorization";
+    public static final String TOKEN_LOGOUT = "token_logout";
+    public static final String TOKEN_PRE = "Bearer ";
+    public static final String TOKEN_USERINFO = "token_userinfo";
+    /**
+     * 30分钟
+     */
+    public static final int EXPIRETIME = 300;
+    public static final Long EXPIRETIME_LONG = 300L;
+    public static final String SECRET = "UTivpbn%n9O!KnnL";
+    /**
+     * 24小时
+     */
+    public static final int EXPIRETIME_REFRESH = 24;
+}
diff --git a/flower_city/src/main/java/com/dg/core/manager/TokenManager.java b/flower_city/src/main/java/com/dg/core/manager/TokenManager.java
new file mode 100644
index 0000000..088e2e7
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/manager/TokenManager.java
@@ -0,0 +1,33 @@
+package com.dg.core.manager;
+
+public interface TokenManager {
+    /**
+     * 创建一个token关联上指定用户
+     *
+     * @param userId 指定用户的id
+     * @return 生成的token
+     */
+    public String createToken(String userId, String role);
+
+    /**
+     * 检查token是否有效
+     *
+     * @param token
+     * @return 是否有效
+     */
+    public boolean checkToken(String token);
+
+    /**
+     * 检查花城token是否有效
+     * @param token
+     * @return
+     */
+    public boolean checkHCToken(String token);
+
+    public long getUserId(String token);
+    public long getHCUserId(String token);
+
+    public void deleteToken(String token);
+
+    public String getTokenByUserId(String userId);
+}
diff --git a/flower_city/src/main/java/com/dg/core/resolvers/CurrentUserMethodArgumentResolver.java b/flower_city/src/main/java/com/dg/core/resolvers/CurrentUserMethodArgumentResolver.java
new file mode 100644
index 0000000..c95f139
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/resolvers/CurrentUserMethodArgumentResolver.java
@@ -0,0 +1,78 @@
+package com.dg.core.resolvers;
+
+import com.dg.core.Constant;
+import com.dg.core.annotation.CurrentUser;
+import com.dg.core.db.gen.entity.HuaChengSysUser;
+import com.dg.core.db.gen.entity.SysUser;
+import com.dg.core.service.IHuaChengSysUserService;
+import com.dg.core.service.ISysUserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.MethodParameter;
+import org.springframework.stereotype.Component;
+import org.springframework.web.bind.support.WebDataBinderFactory;
+import org.springframework.web.context.request.NativeWebRequest;
+import org.springframework.web.context.request.RequestAttributes;
+import org.springframework.web.method.support.HandlerMethodArgumentResolver;
+import org.springframework.web.method.support.ModelAndViewContainer;
+import org.springframework.web.multipart.support.MissingServletRequestPartException;
+
+import java.util.List;
+
+/**
+ * 增加方法注入,将含有CurrentUser注解的方法参数注入当前登录用户
+ */
+@Component
+public class CurrentUserMethodArgumentResolver implements HandlerMethodArgumentResolver {
+
+    @Autowired
+    private ISysUserService userService;
+
+    /**
+     * 花城e+用户接口
+     */
+    @Autowired
+    IHuaChengSysUserService iHuaChengSysUserService;
+
+    @Override
+    public boolean supportsParameter(MethodParameter parameter) {
+        //如果参数类型是User并且有CurrentUser注解则支持
+        if (parameter.getParameterType().isAssignableFrom(SysUser.class) &&
+                parameter.hasParameterAnnotation(CurrentUser.class)) {
+            return true;
+        }
+        return false;
+    }
+
+    @Override
+    public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception {
+        //取出鉴权时存入的登录用户Id
+        Long currentUserId = (Long) webRequest.getAttribute(Constant.CURRENT_USER_ID, RequestAttributes.SCOPE_REQUEST);
+        if (currentUserId != null) {
+            //从数据库中查询并返回
+            SysUser sysUser=userService.selectData(currentUserId+"",null,null);
+            if(sysUser!=null)
+            {
+                return sysUser;
+            }
+
+            List<HuaChengSysUser> list=iHuaChengSysUserService.selectData(currentUserId+"","","");
+            HuaChengSysUser huaChengSysUser=null;
+
+            if(list!=null || list.size()>0 )
+            {
+                huaChengSysUser=list.get(0);
+            }
+
+            if(huaChengSysUser!=null)
+            {
+                sysUser=userService.selectData(null,huaChengSysUser.getPhone(),null);
+                if(sysUser!=null)
+                {
+                    return sysUser;
+                }
+            }
+        }
+        return null;
+//        throw new MissingServletRequestPartException(Constant.CURRENT_USER_ID);
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/HomeStatisticsService.java b/flower_city/src/main/java/com/dg/core/service/HomeStatisticsService.java
new file mode 100644
index 0000000..201cfc5
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/HomeStatisticsService.java
@@ -0,0 +1,113 @@
+package com.dg.core.service;
+
+import com.dg.core.db.gen.entity.ClassifyAdministration;
+import com.dg.core.db.gen.entity.Guidance;
+import com.dg.core.db.gen.entity.GuidePlate;
+import com.dg.core.db.gen.entity.OrganizationEntity;
+import org.springframework.data.repository.query.Param;
+
+import java.util.List;
+
+public interface HomeStatisticsService
+{
+    /**
+     * 按办结量排序
+     * @return
+     */
+    List<GuidePlate> guidePlatePeople(List<String> ids);
+
+    /**
+     *按评分排序
+     * @return
+     */
+    List<GuidePlate> score(List<String> ids);
+
+    /**
+     * 按超时
+     * @return
+     */
+    List<GuidePlate> timeout(List<String> ids);
+
+    /**
+     * 按未办结
+     * @param ids
+     * @return
+     */
+    List<GuidePlate> tosettled(List<String> ids);
+
+    /**
+     * 按工单量
+     * @param ids
+     * @return
+     */
+    List<GuidePlate> workunit(List<String> ids);
+
+    /**
+     * 评分
+     * @return
+     */
+    Integer organizationScore(List<String> ids);
+
+    /**
+     * 办结量
+     * @return
+     */
+    Integer organizationNum(List<String> ids);
+    /**
+     * 获取一级部门
+     * @return
+     */
+    List<OrganizationEntity> getDepartment();
+
+    /**
+     * 办事指南根据导办数量排序
+     * @return
+     */
+    List<Guidance> guidanceTransaction(List<String> ids);
+
+    /**
+     * 办事指南根据浏览数量排序
+     * @return
+     */
+    List<Guidance> guidanceBrowse(List<String> ids);
+
+    /**
+     * 导办人员统计数
+     * @return
+     */
+    Integer staffNum(List<String> ids);
+
+    /**
+     * 办事指南数量统计
+     * @return
+     */
+    Integer countWork(List<String> ids);
+
+    /**
+     * 获取统计数据  首页用  勿动
+     */
+    int countStatisticsNum(List<String> classifyIds,List<String> ids);
+
+
+    /**
+     * 首页统计用
+     * @param parentId
+     * @param classifyGrade
+     * @return
+     */
+    public List<ClassifyAdministration> getClassify(String parentId,
+                                                    String classifyGrade);
+
+
+    List<String> countId(String district);
+
+    /**
+     * 首页统计用
+     * @return
+     */
+    String reversionRate(String state,String isTimeout);
+
+
+    int rangeStatistics(List<String> ids);
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/IAgreementService.java b/flower_city/src/main/java/com/dg/core/service/IAgreementService.java
new file mode 100644
index 0000000..d9290bf
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/IAgreementService.java
@@ -0,0 +1,23 @@
+package com.dg.core.service;
+
+import com.dg.core.ResultData;
+import com.dg.core.db.gen.entity.Agreement;
+
+import java.util.List;
+
+public interface IAgreementService {
+
+    Agreement queryByAgreement(String agreement);
+
+    /**
+     * 获取相关附件列表(不分页)
+     * @return
+     */
+    List<Agreement> selectConfigList();
+
+    /**
+     * 修改相关附件
+     * @return
+     */
+    ResultData update(Agreement agreement);
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/IAreaCodeService.java b/flower_city/src/main/java/com/dg/core/service/IAreaCodeService.java
new file mode 100644
index 0000000..10497b2
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/IAreaCodeService.java
@@ -0,0 +1,21 @@
+package com.dg.core.service;
+
+import com.dg.core.db.gen.entity.AreaCode2022;
+import com.dg.core.db.gen.entity.OrganizationChartEntity;
+
+import java.util.List;
+
+public interface IAreaCodeService {
+
+    /**
+     * 根据指南id获取所属地区
+     * @return
+     */
+    List<AreaCode2022> getAreaCodeByTransactionId(Integer transactionId);
+
+    /**
+     * 根据pcode获取所属地区
+     * @return
+     */
+    List<AreaCode2022> getListByPCode(String id);
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/IAutomessageCommonProblemService.java b/flower_city/src/main/java/com/dg/core/service/IAutomessageCommonProblemService.java
new file mode 100644
index 0000000..27f53c2
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/IAutomessageCommonProblemService.java
@@ -0,0 +1,59 @@
+package com.dg.core.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.dg.core.ResultData;
+import com.dg.core.db.gen.entity.AutomessageCommonProblem;
+import org.springframework.data.repository.query.Param;
+
+import java.util.List;
+
+public interface IAutomessageCommonProblemService {
+
+    /**
+     * 获取常见问题列表(不分页)
+     * @return
+     */
+    List<AutomessageCommonProblem> selectList();
+
+    /**
+     * 获取常见问题列表(分页)
+     * @param page
+     * @param state
+     * @return
+     */
+    List<AutomessageCommonProblem> selectConfigList(IPage<AutomessageCommonProblem> page, Integer state,   String title,  String content);
+
+    /**
+     * 获取常见问题列表(不分页查找)
+     * @return
+     */
+    List<AutomessageCommonProblem> selectConfigList(String title,  String content);
+
+
+    /**
+     * 获取常见问题列表统计数量
+     * @return
+     */
+    Integer countAutomessageCommonProblem( String title, String content);
+
+
+    /**
+     * 添加常见问题数据
+     * @return
+     */
+    ResultData add(AutomessageCommonProblem automessageCommonProblem);
+
+    /**
+     * 修改常见问题数据
+     * @return
+     */
+    ResultData update(AutomessageCommonProblem automessageCommonProblem);
+
+    /**
+     * 删除常见问题数据
+     * @return
+     */
+    ResultData delete(Integer id);
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/IAutomessagePolicyDocumentsService.java b/flower_city/src/main/java/com/dg/core/service/IAutomessagePolicyDocumentsService.java
new file mode 100644
index 0000000..0b29435
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/IAutomessagePolicyDocumentsService.java
@@ -0,0 +1,58 @@
+package com.dg.core.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.dg.core.db.gen.entity.AutomessagePolicyDocuments;
+import com.dg.core.db.gen.entity.SysUser;
+import org.springframework.data.repository.query.Param;
+
+import java.util.List;
+
+public interface IAutomessagePolicyDocumentsService {
+
+    /**
+     * 获取法律法规政策文件 (分页)
+     * @param page
+     * @param state
+     * @return
+     */
+    List<AutomessagePolicyDocuments> selectConfigList(IPage<AutomessagePolicyDocuments> page, Integer state, String name, String type, SysUser sysUser,Integer departmentId,  List<String> ids);
+
+    /**
+     * 获取法律法规政策文件 (不分页)
+     * @param name 名称
+     * @param type 类型
+     * @return
+     */
+    List<AutomessagePolicyDocuments> selectConfigList(String name, String type,Integer departmentId,  List<String> ids);
+
+
+    /**
+     * 新增法律法规政策文件
+     * @return
+     */
+    int add(AutomessagePolicyDocuments automessagePolicyDocuments);
+
+    /**
+     * 修改法律法规政策文件
+     * @return
+     */
+    int update(AutomessagePolicyDocuments automessagePolicyDocuments);
+
+    /**
+     * 删除法律法规政策文件
+     * @return
+     */
+    int delete(Integer id);
+
+    /**
+     * 根据id获取法律法规政策文件数据
+     * @return
+     */
+    AutomessagePolicyDocuments selectAutomessagePolicyDocumentById(Integer id);
+
+    /**
+     * 获取法律法规政策文件 (统计)
+     * @return
+     */
+    Integer selectCountList(String name,String type,Integer departmentId,List<String> ids);
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/IAutomessageSmartConsultingService.java b/flower_city/src/main/java/com/dg/core/service/IAutomessageSmartConsultingService.java
new file mode 100644
index 0000000..4834737
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/IAutomessageSmartConsultingService.java
@@ -0,0 +1,18 @@
+package com.dg.core.service;
+
+import com.dg.core.db.gen.entity.AutomessageSmartConsulting;
+
+public interface IAutomessageSmartConsultingService {
+
+    /**
+     * 新增智能咨询访问记录
+     * @return
+     */
+    int add(AutomessageSmartConsulting automessageSmartConsulting);
+
+    /**
+     * 统计访问量
+     * @return
+     */
+    Long countSmartConsulting();
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/IClassifyAdministrationService.java b/flower_city/src/main/java/com/dg/core/service/IClassifyAdministrationService.java
new file mode 100644
index 0000000..8a16d23
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/IClassifyAdministrationService.java
@@ -0,0 +1,85 @@
+package com.dg.core.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.dg.core.ResultData;
+import com.dg.core.db.gen.entity.ClassifyAdministration;
+import com.dg.core.db.gen.entity.TransactionEvent;
+import org.springframework.data.repository.query.Param;
+
+import java.util.List;
+
+public interface IClassifyAdministrationService {
+    /**
+     * 获取管理菜单列表
+     * @return
+     */
+    public List<ClassifyAdministration> selectConfigList(String classifyName, String classifyGrade);
+
+
+    /**
+     * 获取管理菜单列表
+     * @return
+     */
+    public List<ClassifyAdministration> selectConfigList(IPage<ClassifyAdministration> page,
+                                                         Integer state,
+                                                         String classifyName, String classifyGrade);
+
+    /**
+     * 新增分类
+     * @param entity
+     * @return
+     */
+    public int insertConfig(ClassifyAdministration entity);
+
+    /**
+     * 更新分类
+     * @param entity
+     * @return
+     */
+    public int updateConfig(ClassifyAdministration entity);
+
+    /**
+     * 删除分类
+     * @param Id
+     * @return
+     */
+    public int deleteConfigById(String Id);
+
+
+    /**
+     * 统计数量
+     * @return
+     */
+    public int countNum(String classifyName,String classifyGrade);
+
+
+    /**
+     * 获取管理菜单列表(已分级)
+     * @return
+     */
+    List<ClassifyAdministration>   selectConfigListByParentId(String parentId,Integer departmentId);
+
+    /**
+     * 获取管理菜单列表(根目录分页)
+     * @return
+     */
+    List<ClassifyAdministration>  selectRootList (IPage<ClassifyAdministration> page, Integer stat,String parentId,Integer departmentId);
+
+
+    /**
+     * 获取分类根据id 如果是二级id则获取的是办事指南
+     * @return
+     */
+    ResultData queryListById(Integer id);
+
+    /**
+     * 根据上级id查询子分类
+     * @param parentId
+     * @return
+     */
+    List<String>  selectParent(String parentId);
+
+    List<ClassifyAdministration>  selectParentData(String parentId);
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/IElseAccessoryService.java b/flower_city/src/main/java/com/dg/core/service/IElseAccessoryService.java
new file mode 100644
index 0000000..759eed6
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/IElseAccessoryService.java
@@ -0,0 +1,58 @@
+package com.dg.core.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.dg.core.db.gen.entity.ElseAccessoryEntity;
+import org.springframework.data.repository.query.Param;
+
+import java.util.List;
+
+public interface IElseAccessoryService {
+
+    /**
+     * 获取附件列表
+     * @param page
+     * @param state
+     * @param Name
+     * @return
+     */
+    public List<ElseAccessoryEntity> selectConfigList(IPage<ElseAccessoryEntity> page, Integer state,
+                                                      String Name,List<String> ids,String userId);
+
+    /**
+     * 获取附件列表全部
+     * @param Name
+     * @return
+     */
+    public List<ElseAccessoryEntity> selectConfigList(String Name,List<String> ids,String userId);
+
+
+    /**
+     * 新增列表
+     * @param entity
+     * @return
+     */
+    public int insertConfig(ElseAccessoryEntity entity);
+
+    /**
+     * 更新列表
+     * @param entity
+     * @return
+     */
+    public int updateConfig(ElseAccessoryEntity entity);
+
+    /**
+     * 删除
+     * @param Id
+     * @return
+     */
+    public int deleteConfigById(String Id);
+
+    /**
+     * 统计数量
+     * @param Name
+     * @return
+     */
+    public int countNum(String Name,List<String> ids);
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/IGuideEvolveService.java b/flower_city/src/main/java/com/dg/core/service/IGuideEvolveService.java
new file mode 100644
index 0000000..c33e801
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/IGuideEvolveService.java
@@ -0,0 +1,51 @@
+package com.dg.core.service;
+
+
+import com.dg.core.db.gen.entity.GuideEvolveEntity;
+import com.dg.core.db.gen.entity.SysUser;
+import org.springframework.data.repository.query.Param;
+
+import java.util.List;
+
+public interface IGuideEvolveService
+{
+    /**
+     * 查询记录列表
+     * @return
+     */
+    public List<GuideEvolveEntity> selectConfigList(String guideId, SysUser sysUser);
+
+    /**
+     * 新增记录
+     * @param entity
+     * @return
+     */
+    public int insertConfig(GuideEvolveEntity entity);
+
+    /**
+     * 更新记录
+     * @param entity
+     * @return
+     */
+    public int updateConfig(GuideEvolveEntity entity);
+
+    /**
+     * 删除记录
+     * @param Id
+     * @return
+     */
+    public int deleteConfigById(String Id);
+
+    /**
+     * 统计数量
+     * @return
+     */
+    public int countNum();
+
+    /**
+     * 更新工单id为空的脏数据
+     * @return
+     */
+    int updateGuid();
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/IGuideRepairOrderService.java b/flower_city/src/main/java/com/dg/core/service/IGuideRepairOrderService.java
new file mode 100644
index 0000000..ced70b5
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/IGuideRepairOrderService.java
@@ -0,0 +1,150 @@
+package com.dg.core.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.dg.core.ResultData;
+import com.dg.core.db.gen.entity.*;
+import org.springframework.data.repository.query.Param;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+public interface IGuideRepairOrderService {
+
+    int addOrder(GuideRepairOrder guideRepairOrder);
+
+    /**
+     * 获取详情
+     * @param Id
+     * @param orderNum
+     * @return
+     */
+    public GuideRepairOrder selectConfigData(String Id,
+                                             String orderNum);
+
+
+    /**
+     * 分配人员
+     * @param order
+     * @return
+     */
+    public int updateConfig(GuideRepairOrder order);
+
+    /**
+     * 获取个人中心工单数据
+     * @param submitUserId
+     * @return
+     */
+    List<GuideRepairOrder> selectBySubmitId(String submitUserId);
+
+    /**
+     * 获取工单列表(分页)
+     * @param matterName
+     * @return
+     */
+    List<GuideRepairOrder> selectConfigList(IPage<GuideRepairOrder> page, Integer state,
+                                            String matterName, List<String> ids, String status, String guideUserId,
+                                            String createTimeStartTime, String createTimeTimeEndTime, String classifyId);
+
+    /**
+     * 获取工单列表(不分页用于小程序)
+     * @param matterName
+     * @return
+     */
+    List<GuideRepairOrder> selectConfigList(String matterName, List<String> ids,String status,
+                                            String guideUserId, String createTimeStartTime,String createTimeTimeEndTime,String classifyId);
+
+
+    /**
+     * 获取工单列表(求和)
+     * @param matterName
+     * @return
+     */
+    int countConfigList(String matterName,List<String> ids,String status,String guideUserId);
+
+
+    /**
+     * 很具用户id查询是否有对应工单
+     * @return
+     */
+    int countUser(String userId,String state);
+
+    /**
+     * 根据进展类修改用户代办数量
+     * @param order
+     * @return
+     */
+    int updateSysUserOrderNum(GuideEvolveEntity order);
+
+    /**
+     * 统计工单用  1 今天   2昨天   3本月   4本年度 String time
+     * @return
+     */
+    int countStatisticsNum(String state,List<String> ids,String time,String isTimeout,
+                           String evaluateState,List<String> classifyIds,
+                           String serviceState,String guideUserId);
+
+    /**
+     * 统计数据
+     * @param state
+     * @param ids
+     * @param time
+     * @return
+     */
+    List<CountListNum> countListNum(String state,
+                                    List<String> ids,
+                                    Integer time);
+
+    /**
+     * 获取提工单提交交人员信息
+     * @return
+     */
+    SysUser getSubmitUser(GuideRepairOrder guideRepairOrder);
+
+
+    /**
+     * 设置超时时间
+     * @return
+     */
+    GuideRepairOrder setTimeoutTim(GuideRepairOrder guideRepairOrder);
+
+
+    /**
+     * 导办人员有新订单推送消息
+     * @return
+     */
+    void  sendGuideRepairOrderSubmit (String openid,GuideRepairOrder guideRepairOrder);
+
+    /**
+     * 删除工单
+     * @param Id
+     * @return
+     */
+    int deleteConfigById(String Id);
+
+    /**
+     * 推送超时工单
+     * @return
+     */
+    ResultData pushOvertimeGuideRepairOrder();
+
+    /**
+     * 更改状态为好评
+     * @return
+     */
+    int updateEvaluate();
+
+
+    /**
+     * 删除评论
+     * @return
+     */
+    ResultData deleteComment(Integer id, SysUser sysUser);
+
+
+    /**
+     * 发送工单提醒信息
+     * @return
+     */
+    ResultData  pushNoticeTimeRepairOrder();
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/IHuaChengSysUserService.java b/flower_city/src/main/java/com/dg/core/service/IHuaChengSysUserService.java
new file mode 100644
index 0000000..94172b4
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/IHuaChengSysUserService.java
@@ -0,0 +1,14 @@
+package com.dg.core.service;
+
+import com.dg.core.db.gen.entity.HuaChengSysUser;
+
+import java.util.List;
+
+public interface IHuaChengSysUserService
+{
+    public List<HuaChengSysUser> selectConfigList();
+
+    public List<HuaChengSysUser> selectData(String userId,String account,String phone);
+
+    public int selectNum();
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/IKeywordService.java b/flower_city/src/main/java/com/dg/core/service/IKeywordService.java
new file mode 100644
index 0000000..8c05e44
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/IKeywordService.java
@@ -0,0 +1,48 @@
+package com.dg.core.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.dg.core.db.gen.entity.KeywordEntity;
+
+import java.util.List;
+
+public interface IKeywordService {
+    /**
+     * 查询关键词列表
+     * @return
+     */
+    public List<KeywordEntity> selectConfigList(IPage<KeywordEntity> page, Integer state);
+
+    /**
+     * 查询详情
+     * @return
+     */
+    public KeywordEntity selectConfigData(String Id,
+                                                String name);
+
+
+    /**
+     * 添加关键词
+     * @return
+     */
+    public int insertConfig(KeywordEntity entity);
+
+    /**
+     * 编辑关键词
+     * @return
+     */
+    public int updateConfig(KeywordEntity entity);
+
+    /**
+     * 删除关键词
+     * @param Id
+     * @return
+     */
+    public int deleteConfigById(String Id);
+
+    /**
+     * 统计数量
+     * @param Id
+     * @return
+     */
+    public int countNum();
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/IMenuService.java b/flower_city/src/main/java/com/dg/core/service/IMenuService.java
new file mode 100644
index 0000000..03dff9a
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/IMenuService.java
@@ -0,0 +1,42 @@
+package com.dg.core.service;
+
+import com.dg.core.db.gen.entity.MenuEntity;
+
+import java.util.List;
+
+public interface IMenuService
+{
+    /**
+     * 获取菜单列表
+     * @return
+     */
+    public List<MenuEntity> selectConfigList();
+
+
+    /**
+     * 添加新菜单
+     * @return
+     */
+    public int insertConfig(MenuEntity entity);
+
+    /**
+     * 更新菜单
+     * @param entity
+     * @return
+     */
+    public int updateConfig(MenuEntity entity);
+
+    /**
+     * 删除菜单
+     * @param Id
+     * @return
+     */
+    public int deleteConfigById(Long Id);
+
+
+    /**
+     * 统计数量
+     * @return
+     */
+    public int countNum();
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/IOrganizationChartService.java b/flower_city/src/main/java/com/dg/core/service/IOrganizationChartService.java
new file mode 100644
index 0000000..41c801c
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/IOrganizationChartService.java
@@ -0,0 +1,91 @@
+package com.dg.core.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.dg.core.db.gen.entity.OrganizationChartEntity;
+
+import java.util.List;
+
+public interface IOrganizationChartService
+{
+    /**
+     * 查询机构列表
+     */
+    public List<OrganizationChartEntity> selectConfigList(String parentId,String grade,List<String> ids);
+
+
+    public List<OrganizationChartEntity> selectConfigList(List<String> ids);
+
+    /**
+     * 新增机构
+     */
+    public int insertConfig(OrganizationChartEntity entity);
+
+    /**
+     * 更新机构
+     */
+    public int updateConfig(OrganizationChartEntity entity);
+
+    /**
+     * 删除机构
+     */
+    public int deleteConfigById(String Id);
+
+    /**
+     * 统计数量
+     */
+    public int countNum();
+
+    /**
+     * 查询机构列表(不分级不分页按等级排序)
+     */
+    List<OrganizationChartEntity> selectList();
+
+
+    /**
+     * 根据id查取消组织机构
+     */
+    OrganizationChartEntity selectConfigById(String id);
+
+    /**
+     * 查询机构列表(分页)
+     */
+    List<OrganizationChartEntity> queryList(IPage<OrganizationChartEntity> page, Integer state, String organizationName,List<String> ids);
+
+
+    /**
+     * 统计数量(部门应用)
+     */
+    int countList(String organizationName,List<String> ids);
+
+    /**
+     * 获取部门下子部门的全部id
+     * @param id
+     * @return
+     */
+    List<String> getIds(String id);
+
+
+    /**
+     * 根据id  查询是否有子部门
+     * @param parentId
+     * @param grade
+     * @return
+     */
+    public List<OrganizationChartEntity> selectParentList(String parentId,String grade);
+
+    /**
+     * 获取该部门所有上级部门及其所有下级部门
+     * @param id
+     * @return
+     */
+    List<String> getDepartmentId(String id);
+
+
+    /**
+     * 获取该部门的一级部门
+     * @param id
+     * @return
+     */
+    String getStairId(String id);
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/IReplyTemplateService.java b/flower_city/src/main/java/com/dg/core/service/IReplyTemplateService.java
new file mode 100644
index 0000000..91e5258
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/IReplyTemplateService.java
@@ -0,0 +1,51 @@
+package com.dg.core.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.dg.core.db.gen.entity.ReplyTemplateEntity;
+
+import java.util.List;
+
+public interface IReplyTemplateService
+{
+    /**
+     * 获取模板列表
+     * @return
+     */
+    public List<ReplyTemplateEntity> selectConfigList(IPage<ReplyTemplateEntity> page, Integer state,
+                                                      String Name,List<String> ids,String userId);
+
+    /**
+     * 获取详情
+     * @param Id
+     * @return
+     */
+    public ReplyTemplateEntity selectConfigData(String Id);
+
+    /**
+     * 新增模板
+     * @param entity
+     * @return
+     */
+    public int insertConfig(ReplyTemplateEntity entity);
+
+    /**
+     * 更新模板
+     * @param entity
+     * @return
+     */
+    public int updateConfig(ReplyTemplateEntity entity);
+
+    /**
+     * 删除模板
+     * @param Id
+     * @return
+     */
+    public int deleteConfigById(String Id);
+
+    /**
+     * 获取数量
+     * @return
+     */
+    public int countNum(String Name,List<String> ids);
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/IRoleManagementService.java b/flower_city/src/main/java/com/dg/core/service/IRoleManagementService.java
new file mode 100644
index 0000000..3a0f311
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/IRoleManagementService.java
@@ -0,0 +1,45 @@
+package com.dg.core.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.dg.core.db.gen.entity.RoleManagementEntity;
+
+import java.util.List;
+
+public interface IRoleManagementService
+{
+    /**
+     * 查询角色列表
+     * @param page
+     * @param state
+     * @return
+     */
+    public List<RoleManagementEntity> selectConfigList(IPage<RoleManagementEntity> page,
+                                                       Integer state,String name);
+
+    /**
+     * 新增角色
+     * @param entity
+     * @return
+     */
+    public int insertConfig(RoleManagementEntity entity);
+
+    /**
+     * 编辑角色
+     * @param entity
+     * @return
+     */
+    public int updateConfig(RoleManagementEntity entity);
+
+    /**
+     * 删除角色
+     * @param Id
+     * @return
+     */
+    public int deleteConfigById(String Id);
+
+    /**
+     * 统计条数
+     * @return
+     */
+    public int countNum(String name);
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/IRoleMenuService.java b/flower_city/src/main/java/com/dg/core/service/IRoleMenuService.java
new file mode 100644
index 0000000..5dce8c9
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/IRoleMenuService.java
@@ -0,0 +1,37 @@
+package com.dg.core.service;
+
+import com.dg.core.db.gen.entity.RoleMenuEntity;
+
+import java.util.List;
+
+public interface IRoleMenuService
+{
+    /**
+     * 根据角色获取菜单id
+     * @param roleId
+     * @return
+     */
+    public List<RoleMenuEntity> selectConfigList(String roleId);
+
+    /**
+     * 新增
+     * @param entity
+     * @return
+     */
+    public int insertConfig(RoleMenuEntity entity);
+
+    /**
+     * 编辑
+     * @param entity
+     * @return
+     */
+    public int updateConfig(RoleMenuEntity entity);
+
+
+    /**
+     * 删除
+     * @param Id
+     * @return
+     */
+    public int deleteConfigById(String Id);
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/ISlideshowService.java b/flower_city/src/main/java/com/dg/core/service/ISlideshowService.java
new file mode 100644
index 0000000..c3a0ea2
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/ISlideshowService.java
@@ -0,0 +1,55 @@
+package com.dg.core.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.dg.core.ResultData;
+import com.dg.core.db.gen.entity.Slideshow;
+import com.dg.core.db.gen.entity.SysUser;
+
+import java.util.List;
+
+public interface ISlideshowService {
+
+    /**
+     * 查询轮播图列表(分页)
+     *
+     * @return 参数配置信息
+     */
+     List<Slideshow> selectConfigList(IPage<SysUser> page, Integer state);
+
+    /**
+     * 查询轮播图列表(不分页)
+     *
+     * @return 参数配置信息
+     */
+    List<Slideshow> selectList();
+
+    /**
+     * 根据id 查询轮播图数据
+     *
+     * @return 参数配置信息
+     */
+    Slideshow queryById(Integer id);
+
+    /**
+     * 新增轮播图数据
+     *
+     * @return 参数配置信息
+     */
+    ResultData add(Slideshow slideshow);
+
+    /**
+     * 修改轮播图数据
+     *
+     * @return 参数配置信息
+     */
+    ResultData update(Slideshow slideshow);
+
+
+    /**
+     * 删除轮播图数据
+     *
+     * @return 参数配置信息
+     */
+    ResultData delete(Integer id);
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/ISysSettingsService.java b/flower_city/src/main/java/com/dg/core/service/ISysSettingsService.java
new file mode 100644
index 0000000..80c1b8d
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/ISysSettingsService.java
@@ -0,0 +1,22 @@
+package com.dg.core.service;
+
+import com.dg.core.ResultData;
+import com.dg.core.db.gen.entity.AutomessageSysSettings;
+
+public interface ISysSettingsService {
+
+
+    /**
+     * 按设置名称查找设置信息
+     *
+     * @return 参数配置信息
+     */
+    ResultData selectByName(String settingName);
+
+    /**
+     * 修改设置信息
+     *
+     * @return 参数配置信息
+     */
+    ResultData update(AutomessageSysSettings automessageSysSettings);
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/ISysUserRecordService.java b/flower_city/src/main/java/com/dg/core/service/ISysUserRecordService.java
new file mode 100644
index 0000000..4423383
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/ISysUserRecordService.java
@@ -0,0 +1,34 @@
+package com.dg.core.service;
+
+import com.dg.core.ResultData;
+import com.dg.core.db.gen.entity.SysUser;
+
+
+public interface ISysUserRecordService {
+
+    /**
+     * 增加用户访问记录
+     *
+     * @return 参数配置信息
+     */
+    ResultData add(SysUser sysUser);
+
+
+    /**
+     * 小程序用户访问量统计1.累计访问量2.本年访问量 3.本月访问量 4.今日访问量 5.昨日访问
+     * @return
+     */
+    ResultData selectUserRecordCount();
+
+    /**
+     * 小程序用户访问量统计1.近15天 2.近30天 3.近一年
+     * @return
+     */
+    ResultData selectByDateType(Integer dateType);
+
+    /**
+     * 删除因为token问题产出的重复脏数据
+     * @return
+     */
+    Integer deleteDistinct();
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/ISysUserService.java b/flower_city/src/main/java/com/dg/core/service/ISysUserService.java
new file mode 100644
index 0000000..9824e7a
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/ISysUserService.java
@@ -0,0 +1,94 @@
+package com.dg.core.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.dg.core.ResultData;
+import com.dg.core.db.gen.entity.SysUser;
+
+import java.util.List;
+
+public interface ISysUserService
+{
+    SysUser getUserByAccount(String account);
+    /**
+     * 查询聊天列表
+     *
+     * @return 参数配置信息
+     */
+    public List<SysUser> selectConfigList(IPage<SysUser> page, Integer state,String userType,
+                                          String userName,List<String> ids,String isDivisionHead);
+
+
+    SysUser selectData(String userId,String phonenumber,String loginName);
+
+    /**
+     * 新增聊天记录
+     *
+     * @param config 参数配置信息
+     * @return 结果
+     */
+    public int insertConfig(SysUser config);
+
+    /**
+     * 更新聊天记录
+     *
+     * @param config 参数配置信息
+     * @return 结果
+     */
+    public int updateConfig(SysUser config);
+
+    /**
+     * 删除聊天记录
+     *
+     * @param id 聊天记录主键id
+     * @return 结果
+     */
+    public int deleteConfigById(String id);
+
+    /**
+     * 获取数据库总条数(批量)
+     *
+     * @return 结果
+     */
+    public int selectNum(String userType,String userName,List<String> ids,String  isDivisionHead);
+
+    /**
+     * 发送验证码(如果没有该用户则新建用户)
+     *
+     * @return 结果
+     */
+    ResultData smsSend(SysUser user);
+
+    /**
+     * 验证码登录
+     *
+     * @return 结果
+     */
+    ResultData loginByAccount(String phonenumber, String code);
+
+    /**
+     * 根据部门id及分类id获取导办用户
+     *
+     * @return 结果
+     */
+    List<SysUser> selectListByDepartmentId(String departmentId,String classifyId);
+
+    /**
+     * 通过手机号获取用户信息
+     *
+     * @return 结果
+     */
+    ResultData loginByPhonenumber(String phonenumber);
+
+
+    /**
+     * 查询用户列表(不分页)
+     * @param userType 用户类型
+     * @return 结果
+     */
+    List<SysUser> queryList(Integer userType,String keyWor);
+
+    /**
+     * 修改group  长度
+     */
+    void setGroup();
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/ITransactionEventService.java b/flower_city/src/main/java/com/dg/core/service/ITransactionEventService.java
new file mode 100644
index 0000000..9aa31e6
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/ITransactionEventService.java
@@ -0,0 +1,156 @@
+package com.dg.core.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.dg.core.db.gen.entity.SysUser;
+import com.dg.core.db.gen.entity.TransactionEvent;
+import com.dg.core.db.manual.pojo.QueryResults;
+import com.dg.core.db.manual.pojo.RecommendResult;
+import com.dg.core.db.manual.pojo.Search;
+import org.springframework.data.repository.query.Param;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+public interface ITransactionEventService
+{
+    /**
+     * 查询导办事务详情
+     * @param Id
+     * @return
+     */
+    public TransactionEvent selectConfigData(String Id, SysUser sysUser);
+
+    /**
+     * 导办事物列表
+     * @return
+     */
+    public List<TransactionEvent> selectConfigList(IPage<TransactionEvent> page, Integer state,
+                                                   String keyword, String classifyGrade,
+                                                   List<String> ids);
+
+    /**
+     * 导办事物列表
+     * @return
+     */
+    public List<TransactionEvent> selectConfigList(String keyword, String classifyGrade,
+                                                   List<String> ids);
+
+    /**
+     * 新增导办事务
+     * @param entity
+     * @return
+     */
+    public int insertConfig(TransactionEvent entity);
+
+    /**
+     * 修改导办事务
+     * @param entity
+     * @return
+     */
+    public int updateConfig(TransactionEvent entity);
+
+    /**
+     * 删除接口
+     * @param Id
+     * @return
+     */
+    public int deleteConfigById(String Id);
+
+    /**
+     * 统计数量
+     * @return
+     */
+    public int countNum(String keyword,String classifyGrade,List<String> ids);
+
+    /**
+     * 导办事务搜索
+     * @param keyWord
+     * @return
+     */
+    QueryResults queryMatterNameList(IPage<Search> page, Integer state,Integer recommendSize, String keyWord);
+
+
+    /**
+     * 导办事务搜索(无分页用于小程序)
+     * @param keyWord
+     * @return
+     */
+    QueryResults queryMatterNameList(String keyWord);
+
+    /**
+     * 导办事务搜索统计数量
+     * @param matterName
+     * @return
+     */
+    int countNumByMatterName(String matterName);
+
+    /**
+     *  根据分类id查询导办事务
+     * @param classifyId
+     * @return
+     */
+    List<TransactionEvent> queryByClassifyIdList(String classifyId,Integer departmentId);
+
+
+    /**
+     *  根据分类id查询导办事务(分页)
+     * @param classifyId
+     * @return
+     */
+    List<TransactionEvent> queryByClassifyIdList(IPage<TransactionEvent> page, Integer state,String classifyId,Integer departmentId);
+
+    /**
+     *  根据查询时间查询导办事务
+     * @return
+     */
+    List<TransactionEvent> queryByQueryTime();
+
+    /**
+     *  根据浏览次数查询导办事务
+     * @return
+     */
+    List<TransactionEvent> queryByBrowseNum();
+
+    /**
+     *  查询导办事务求和
+     * @return
+     */
+    TransactionEvent sumTransactionNum();
+
+    int countNumByClassifyIdList(String classifyId, Integer departmentId);
+
+    /**
+     * 导办事物列表(不分页)
+     * @return
+     */
+    List<TransactionEvent> selectList(String keyWord);
+
+    /**
+     * 智能咨询
+     * @return
+     */
+    RecommendResult smartConsulting(String keyWord);
+
+
+    /**
+     * 根据部门判断是否有事项名称重复
+     */
+    String selectDataIfExist(@Param("departmentId") String departmentId,
+                             @Param("matterName") String matterName);
+
+
+    /**
+     * 根据办事分类获取办事指南
+     */
+    List<String> selectclassifyId(String classifyId);
+
+
+    /**
+     * 根据分类筛选数据
+     * @param ids
+     * @return
+     */
+    List<TransactionEvent> selectClassifyList(List<String> ids);
+    Integer batchImport(String fileName, MultipartFile file) ;
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/impl/AgreementServiceImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/AgreementServiceImpl.java
new file mode 100644
index 0000000..5af6558
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/impl/AgreementServiceImpl.java
@@ -0,0 +1,37 @@
+package com.dg.core.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dg.core.ResultData;
+import com.dg.core.db.gen.entity.Agreement;
+import com.dg.core.db.gen.mapper.AgreementMapper;
+import com.dg.core.service.IAgreementService;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Service
+public class AgreementServiceImpl extends ServiceImpl<AgreementMapper, Agreement> implements IAgreementService {
+
+    @Override
+    public Agreement queryByAgreement(String agreement) {
+      return  baseMapper.selectOne(new QueryWrapper<Agreement>().lambda().eq(Agreement::getAgreement, agreement));
+    }
+
+    @Override
+    public List<Agreement> selectConfigList() {
+        return baseMapper.selectConfigList();
+    }
+
+    @Override
+    public ResultData update(Agreement agreement){
+        agreement.setUpdateTime(LocalDateTime.now());
+        int i = baseMapper.updateById(agreement);
+        if(i>0)
+            return  ResultData.success();
+        else
+            return  ResultData.error();
+
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/impl/AreaCodeServiceImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/AreaCodeServiceImpl.java
new file mode 100644
index 0000000..fb48c6d
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/impl/AreaCodeServiceImpl.java
@@ -0,0 +1,83 @@
+package com.dg.core.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dg.core.db.gen.entity.AreaCode2022;
+import com.dg.core.db.gen.entity.OrganizationChartEntity;
+import com.dg.core.db.gen.entity.TransactionEvent;
+import com.dg.core.db.gen.mapper.AreaCode2022Mapper;
+import com.dg.core.db.gen.mapper.OrganizationChartMapper;
+import com.dg.core.db.gen.mapper.TransactionEventMapper;
+import com.dg.core.service.IAreaCodeService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+
+@Service
+public class AreaCodeServiceImpl extends ServiceImpl<AreaCode2022Mapper, AreaCode2022> implements IAreaCodeService {
+
+    @Resource
+    private OrganizationChartMapper organizationChartMapper;
+
+    @Resource
+    private TransactionEventMapper transactionEventMapper;
+
+    @Override
+    public List<AreaCode2022> getAreaCodeByTransactionId(Integer transactionId) {
+        List<String> areaCodes = new ArrayList<>();
+        TransactionEvent transactionEvent = transactionEventMapper.selectOne(new QueryWrapper<TransactionEvent>().lambda().
+                eq(TransactionEvent::getId, transactionId));
+        List<String> departmentIds = new ArrayList<>();
+        if (transactionEvent.getDepartmentIds() != null) {
+            departmentIds = new ArrayList<>(Arrays.asList(transactionEvent.getDepartmentIds().split(",")));
+        }
+
+        departmentIds.add(transactionEvent.getDepartmentId());
+        for (String departmentId : departmentIds) {
+            OrganizationChartEntity organizationChartEntity = organizationChartMapper.selectOne(new QueryWrapper<OrganizationChartEntity>().lambda()
+                    .eq(OrganizationChartEntity::getId, departmentId));
+            if (organizationChartEntity != null) {
+                if (organizationChartEntity.getCity() != null)
+                    areaCodes.add(organizationChartEntity.getCity());
+                if (organizationChartEntity.getDistrict() != null)
+                    areaCodes.add(organizationChartEntity.getDistrict());
+                if (organizationChartEntity.getVillage() != null)
+                    areaCodes.add(organizationChartEntity.getVillage());
+            }
+
+        }
+        return baseMapper.selectByIdSet(areaCodes);
+    }
+
+
+    public List<String> getAreaCodeIds(List<String> areaCodes, OrganizationChartEntity organizationChartEntity) {
+        List<OrganizationChartEntity> organizationChartEntitys = organizationChartMapper.selectList(new QueryWrapper<OrganizationChartEntity>().lambda()
+                .eq(OrganizationChartEntity::getParentId, organizationChartEntity.getId()));
+        for (OrganizationChartEntity organizationChart : organizationChartEntitys) {
+            if (organizationChart.getCity() != null)
+                areaCodes.add(organizationChart.getCity());
+            if (organizationChart.getDistrict() != null)
+                areaCodes.add(organizationChart.getDistrict());
+            if (organizationChart.getVillage() != null)
+                areaCodes.add(organizationChart.getVillage());
+            getAreaCodeIds(areaCodes, organizationChart);
+        }
+        return areaCodes;
+    }
+
+    @Override
+    public List<AreaCode2022> getListByPCode(String id) {
+        List<AreaCode2022> areaCode2022s = baseMapper.selectList(new QueryWrapper<AreaCode2022>().lambda().eq(AreaCode2022::getPcode, id));
+        for (AreaCode2022 areaCode2022 : areaCode2022s) {
+            if (areaCode2022.getLevel() != 3)
+                areaCode2022.setChild(this.getListByPCode(areaCode2022.getCode().toString()));
+        }
+        return areaCode2022s;
+    }
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/impl/AutomessageCommonProblemServiceImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/AutomessageCommonProblemServiceImpl.java
new file mode 100644
index 0000000..27b92a4
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/impl/AutomessageCommonProblemServiceImpl.java
@@ -0,0 +1,87 @@
+package com.dg.core.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dg.core.ResultData;
+import com.dg.core.db.gen.entity.AutomessageCommonProblem;
+import com.dg.core.db.gen.mapper.AutomessageCommonProblemMapper;
+import com.dg.core.service.IAutomessageCommonProblemService;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Service
+public class AutomessageCommonProblemServiceImpl extends ServiceImpl<AutomessageCommonProblemMapper, AutomessageCommonProblem> implements IAutomessageCommonProblemService {
+
+    @Override
+    public List<AutomessageCommonProblem> selectList(){
+       return baseMapper.selectList(new QueryWrapper<AutomessageCommonProblem>().lambda());
+    }
+
+    @Override
+    public List<AutomessageCommonProblem> selectConfigList(IPage<AutomessageCommonProblem> page, Integer state, String title, String content) {
+        return baseMapper.selectConfigList(page,state,title,content);
+    }
+
+    @Override
+    public List<AutomessageCommonProblem> selectConfigList(String title, String content) {
+        return baseMapper.selectConfigList(title,content);
+    }
+
+    @Override
+    public  Integer countAutomessageCommonProblem( String title, String content){
+        return  baseMapper.countConfigList(title,content);
+    }
+
+    @Override
+    public ResultData add(AutomessageCommonProblem automessageCommonProblem){
+        if (automessageCommonProblem.getContent()==null){
+          return   ResultData.error("常见问题不能空");
+        }
+        if (automessageCommonProblem.getTitle()==null){
+          return   ResultData.error("回答内容题不能空");
+        }
+        automessageCommonProblem.setCreateTime(LocalDateTime.now());
+        automessageCommonProblem.setUpdateTime(LocalDateTime.now());
+        int insert = baseMapper.insert(automessageCommonProblem);
+        if (insert>0){
+           return ResultData.success();
+        }
+        else {
+          return  ResultData.error("添加失败");
+        }
+
+    }
+
+    @Override
+    public ResultData update(AutomessageCommonProblem automessageCommonProblem){
+        if (automessageCommonProblem.getContent()==null){
+            return   ResultData.error("常见问题不能空");
+        }
+        if (automessageCommonProblem.getTitle()==null){
+            return   ResultData.error("回答内容题不能空");
+        }
+        automessageCommonProblem.setUpdateTime(LocalDateTime.now());
+        int i = baseMapper.updateById(automessageCommonProblem);
+        if (i>0){
+            return ResultData.success();
+        }
+        else {
+            return  ResultData.error("修改失败");
+        }
+
+    }
+
+    @Override
+    public  ResultData delete(Integer id){
+        int i = baseMapper.deleteById(id);
+        if (i>0){
+            return ResultData.success();
+        }
+        else {
+            return  ResultData.error("删除失败");
+        }
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/impl/AutomessagePolicyDocumentsServiceImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/AutomessagePolicyDocumentsServiceImpl.java
new file mode 100644
index 0000000..e06544e
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/impl/AutomessagePolicyDocumentsServiceImpl.java
@@ -0,0 +1,79 @@
+package com.dg.core.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dg.core.db.gen.entity.AutomessagePolicyDocuments;
+import com.dg.core.db.gen.entity.SysUser;
+import com.dg.core.db.gen.mapper.AutomessagePolicyDocumentsMapper;
+import com.dg.core.service.IAutomessagePolicyDocumentsService;
+import org.springframework.data.repository.query.Param;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+@Service
+public class AutomessagePolicyDocumentsServiceImpl extends ServiceImpl<AutomessagePolicyDocumentsMapper, AutomessagePolicyDocuments> implements IAutomessagePolicyDocumentsService {
+
+    @Override
+    public List<AutomessagePolicyDocuments> selectConfigList(IPage<AutomessagePolicyDocuments> page, Integer state, String name, String type, SysUser sysUser,Integer departmentId,  List<String> ids) {
+        List<AutomessagePolicyDocuments> automessagePolicyDocumentsList = baseMapper.selectConfigList(page, state, name, type, departmentId, ids);
+        if (sysUser!=null){
+        for (AutomessagePolicyDocuments automessagePolicyDocuments:automessagePolicyDocumentsList) {
+            if(sysUser.getUserType().equals("1")){//超级管理员
+                automessagePolicyDocuments.setIsDelete(1);
+            }else if ( sysUser.getIsDivisionHead().equals("1")){//部门领导
+                if (sysUser.getDepartmentId().equals(automessagePolicyDocuments.getDepartmentId().toString())){//如果是一个部门则可以删除
+                    automessagePolicyDocuments.setIsDelete(1);
+                }else {
+                    automessagePolicyDocuments.setIsDelete(2);
+                }
+            }
+            else if (sysUser.getUserType().equals("2")){//导办人员
+                if(sysUser.getUserId().equals(automessagePolicyDocuments.getCreateUserId())){//如果它创建的则可以删除
+                    automessagePolicyDocuments.setIsDelete(1);
+                }else {
+                    automessagePolicyDocuments.setIsDelete(2);
+                }
+            }
+        }
+        }
+        return automessagePolicyDocumentsList;
+    }
+
+    @Override
+    public List<AutomessagePolicyDocuments> selectConfigList(String name, String type,Integer departmentId,  List<String> ids) {
+        return baseMapper.selectConfigList(name,type,departmentId,ids);
+    }
+
+    @Override
+    public int add(AutomessagePolicyDocuments automessagePolicyDocuments) {
+        automessagePolicyDocuments.setCreateTime(LocalDateTime.now());
+        automessagePolicyDocuments.setUpdateTime(LocalDateTime.now());
+        return baseMapper.insert(automessagePolicyDocuments);
+    }
+
+    @Override
+    public int update(AutomessagePolicyDocuments automessagePolicyDocuments) {
+        automessagePolicyDocuments.setCreateTime(LocalDateTime.now());
+        automessagePolicyDocuments.setUpdateTime(LocalDateTime.now());
+        return baseMapper.updateById(automessagePolicyDocuments);
+    }
+
+    @Override
+    public int delete(Integer id) {
+        return baseMapper.deleteById(id);
+    }
+
+    @Override
+    public AutomessagePolicyDocuments selectAutomessagePolicyDocumentById(Integer id) {
+        return baseMapper.selectAutomessagePolicyDocumentById(id);
+    }
+
+    @Override
+    public Integer selectCountList(String name,String type,Integer departmentId,List<String> ids) {
+        return baseMapper.selectCountList(name,type,departmentId,ids);
+    }
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/impl/ClassifyAdministrationImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/ClassifyAdministrationImpl.java
new file mode 100644
index 0000000..aaafd60
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/impl/ClassifyAdministrationImpl.java
@@ -0,0 +1,102 @@
+package com.dg.core.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dg.core.ResultData;
+import com.dg.core.db.gen.entity.ClassifyAdministration;
+import com.dg.core.db.gen.entity.TransactionEvent;
+import com.dg.core.db.gen.mapper.ClassifyAdministrationMapper;
+import com.dg.core.db.gen.mapper.TransactionEventMapper;
+import com.dg.core.service.IClassifyAdministrationService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Service
+public class ClassifyAdministrationImpl extends ServiceImpl<ClassifyAdministrationMapper, ClassifyAdministration>
+        implements IClassifyAdministrationService
+{
+
+
+    @Resource
+    private TransactionEventMapper transactionEventMapper;
+
+    @Override
+    public List<ClassifyAdministration> selectConfigList(String classifyName, String classifyGrade) {
+        return baseMapper.selectConfigList( classifyName, classifyGrade);
+    }
+
+    @Override
+    public List<ClassifyAdministration> selectConfigList(IPage<ClassifyAdministration> page,
+                                                         Integer state, String classifyName, String classifyGrade) {
+        return baseMapper.selectConfigList(page,state, classifyName, classifyGrade);
+    }
+
+    @Override
+    public List<ClassifyAdministration> selectConfigListByParentId(String parentId,Integer departmentId){
+        List<ClassifyAdministration> classifyAdministrationEntities = baseMapper.selectRootList(parentId ,departmentId);
+        for (ClassifyAdministration classifyAdministrationEntitie: classifyAdministrationEntities) {
+            classifyAdministrationEntitie.setClassifyAdministrationEntityList(selectConfigListByParentId(classifyAdministrationEntitie.getId().toString(),departmentId));
+        }
+        return  classifyAdministrationEntities;
+    }
+
+    @Override
+    public List<ClassifyAdministration> selectRootList(IPage<ClassifyAdministration> page, Integer stat,String parentId,Integer departmentId) {
+        List<ClassifyAdministration> classifyAdministrations = baseMapper.selectRootList(page, stat,"0" ,departmentId);
+        for (ClassifyAdministration classifyAdministrationEntitie: classifyAdministrations) {
+            classifyAdministrationEntitie.setClassifyAdministrationEntityList(selectConfigListByParentId(classifyAdministrationEntitie.getId().toString(),departmentId));
+        }
+        return  classifyAdministrations;
+    }
+
+    @Override
+    public ResultData queryListById(Integer id){
+        if (id.equals(0)){
+            return ResultData.success(baseMapper.selectList(new QueryWrapper<ClassifyAdministration>().lambda()
+                    .eq(ClassifyAdministration::getParentId,0)));
+        }
+        ClassifyAdministration classifyAdministration = baseMapper.selectOne(new QueryWrapper<ClassifyAdministration>().lambda()
+                .eq(ClassifyAdministration::getId, id));
+        if (classifyAdministration.getClassifyGrade().equals("1")){
+            return ResultData.success(baseMapper.selectList(new QueryWrapper<ClassifyAdministration>().lambda()
+                    .eq(ClassifyAdministration::getParentId,classifyAdministration.getId())));
+        }else if (classifyAdministration.getClassifyGrade().equals("2")){
+            return ResultData.success(transactionEventMapper.queryByClassifyIdList(id.toString(),null));
+        }
+        return  ResultData.error();
+    }
+
+    @Override
+    public List<String> selectParent(String parentId) {
+        return baseMapper.selectParent(parentId);
+    }
+
+    @Override
+    public List<ClassifyAdministration> selectParentData(String parentId) {
+        return baseMapper.selectParentData(parentId);
+    }
+
+
+    @Override
+    public int insertConfig(ClassifyAdministration entity) {
+        return baseMapper.insertConfig(entity);
+    }
+
+    @Override
+    public int updateConfig(ClassifyAdministration entity) {
+        return baseMapper.updateConfig(entity);
+    }
+
+    @Override
+    public int deleteConfigById(String Id) {
+        return baseMapper.deleteConfigById(Id);
+    }
+
+    @Override
+    public int countNum(String classifyName,String classifyGrade) {
+        return baseMapper.countNum(classifyName,classifyGrade);
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/impl/ElseAccessoryImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/ElseAccessoryImpl.java
new file mode 100644
index 0000000..e2644ea
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/impl/ElseAccessoryImpl.java
@@ -0,0 +1,47 @@
+package com.dg.core.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dg.core.db.gen.entity.ElseAccessoryEntity;
+import com.dg.core.db.gen.mapper.ElseAccessoryMapper;
+import com.dg.core.service.IElseAccessoryService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class ElseAccessoryImpl extends ServiceImpl<ElseAccessoryMapper, ElseAccessoryEntity>
+        implements IElseAccessoryService
+{
+
+    @Override
+    public List<ElseAccessoryEntity> selectConfigList(IPage<ElseAccessoryEntity> page, Integer state,
+                                                      String Name,List<String> ids,String userId) {
+        return baseMapper.selectConfigList(page,state,Name, ids,userId);
+    }
+
+    @Override
+    public List<ElseAccessoryEntity> selectConfigList(String Name,List<String> ids,String userId) {
+        return baseMapper.selectConfigList(Name,ids,userId);
+    }
+
+    @Override
+    public int insertConfig(ElseAccessoryEntity entity) {
+        return baseMapper.insertConfig(entity);
+    }
+
+    @Override
+    public int updateConfig(ElseAccessoryEntity entity) {
+        return baseMapper.updateConfig(entity);
+    }
+
+    @Override
+    public int deleteConfigById(String Id) {
+        return baseMapper.deleteConfigById(Id);
+    }
+
+    @Override
+    public int countNum(String Name,List<String> ids) {
+        return baseMapper.countNum(Name,ids);
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/impl/GuideEvolveImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/GuideEvolveImpl.java
new file mode 100644
index 0000000..a2d416b
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/impl/GuideEvolveImpl.java
@@ -0,0 +1,75 @@
+package com.dg.core.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dg.core.db.gen.entity.GuideEvolveEntity;
+import com.dg.core.db.gen.entity.SysUser;
+import com.dg.core.db.gen.mapper.ElseAccessoryMapper;
+import com.dg.core.db.gen.mapper.GuideEvolveMapper;
+import com.dg.core.db.gen.mapper.TransactionEventMapper;
+import com.dg.core.service.IGuideEvolveService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Service
+public class GuideEvolveImpl extends ServiceImpl<GuideEvolveMapper, GuideEvolveEntity> implements IGuideEvolveService
+{
+
+
+    @Resource
+    private ElseAccessoryMapper elseAccessoryMapper;
+
+    @Resource
+    private TransactionEventMapper transactionEventMapper;
+
+    @Override
+    public List<GuideEvolveEntity> selectConfigList(String guideId,SysUser sysUser) {
+        List<GuideEvolveEntity> guideEvolveEntities;
+        if ((sysUser.getUserType().equals("3")&&sysUser.getIsDivisionHead().equals("2"))||(sysUser.getUserType().equals("4"))){
+            guideEvolveEntities=baseMapper.selectHideList(guideId);
+        }else {
+            guideEvolveEntities = baseMapper.selectConfigList(guideId);
+        }
+        for (GuideEvolveEntity guideEvolveEntity: guideEvolveEntities) {
+            String[] split;
+            if (guideEvolveEntity.getAccessoryId()!=null){
+                split = guideEvolveEntity.getAccessoryId().split(",");
+                guideEvolveEntity.setElseAccessoryEntities( elseAccessoryMapper.selectListByIds(split));
+            }
+            if (guideEvolveEntity.getTransactionId()!=null){
+               split=guideEvolveEntity.getTransactionId().split(",");
+               guideEvolveEntity.setTransactionEvents(transactionEventMapper.selectListByIds(split));
+            }
+        }
+        return  guideEvolveEntities;
+    }
+
+    @Override
+    public int insertConfig(GuideEvolveEntity entity) {
+        return baseMapper.insertConfig(entity);
+    }
+
+    @Override
+    public int updateConfig(GuideEvolveEntity entity) {
+        return baseMapper.updateConfig(entity);
+    }
+
+    @Override
+    public int deleteConfigById(String Id) {
+        return baseMapper.deleteConfigById(Id);
+    }
+
+    @Override
+    public int countNum() {
+        return baseMapper.countNum();
+    }
+
+    @Override
+    public int updateGuid() {
+        return baseMapper.updateGuid();
+    }
+
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/impl/GuideRepairOrderServiceImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/GuideRepairOrderServiceImpl.java
new file mode 100644
index 0000000..cc2b165
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/impl/GuideRepairOrderServiceImpl.java
@@ -0,0 +1,502 @@
+package com.dg.core.service.impl;
+
+import cn.hutool.core.date.DateTime;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dg.core.ResultData;
+import com.dg.core.db.gen.entity.*;
+import com.dg.core.db.gen.mapper.*;
+import com.dg.core.db.manual.mapper.util.ConstantPropertiesUtil;
+import com.dg.core.service.IGuideRepairOrderService;
+import com.dg.core.service.ISysSettingsService;
+import com.dg.core.util.SmsUtil;
+import com.dg.core.util.Snowflake;
+import com.dg.core.util.TestDate;
+import com.dg.core.util.WxUtil;
+import com.iceyyy.workday.WorkUtils;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.Resource;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.ZoneOffset;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.List;
+
+@Service
+public class GuideRepairOrderServiceImpl extends ServiceImpl<GuideRepairOrderMapper, GuideRepairOrder>
+        implements IGuideRepairOrderService {
+
+    @Resource
+    private TransactionEventMapper transactionEventMapper;
+
+    @Resource
+    private GuideRepairOrderImageMapper guideRepairOrderImageMapper;
+
+    @Resource
+    private SysUserMapper sysUserMapper;
+
+    @Resource
+    private OrganizationChartMapper organizationChartMapper;
+
+    @Resource
+    private GuideEvolveMapper guideEvolveMapper;
+
+    @Resource
+    private AutomessageSysSettingsMapper iSysSettingsMapper;
+
+
+    @Resource
+    private  AreaCode2022Mapper areaCode2022Mapper;
+
+
+    @Resource
+    SmsUtil smsUtil;
+
+    @Resource(name = "stringRedisTemplate")
+    private StringRedisTemplate stringRedisTemplate;
+
+    private static WxUtil wxUtil;
+
+
+    @Override
+    public int addOrder(GuideRepairOrder guideRepairOrder) {
+
+        TransactionEvent transactionEvent = transactionEventMapper.selectOne(new QueryWrapper<TransactionEvent>().lambda().
+                eq(TransactionEvent::getId, guideRepairOrder.getMatterId()));
+        guideRepairOrder.setOrderNum(Long.toString(Snowflake.getId()));
+        guideRepairOrder.setMatterName(transactionEvent.getMatterName());
+        guideRepairOrder.setDepartmentId(transactionEvent.getDepartmentId());
+        guideRepairOrder.setClassifyId(transactionEvent.getClassifyId());
+        List<String> departmentIds = new ArrayList<>();
+        Boolean isAdd = true;//是否能够新建工单
+        List<GuideRepairOrder> guideRepairOrders = baseMapper.selectList(new QueryWrapper<GuideRepairOrder>().lambda()
+                .eq(GuideRepairOrder::getMatterId, guideRepairOrder.getMatterId())
+                .eq(GuideRepairOrder::getConsultContent, guideRepairOrder.getConsultContent()));
+        if (guideRepairOrders.size() == 0) {
+            isAdd = true;
+        } else {
+            for (GuideRepairOrder guideRepair : guideRepairOrders) {
+                if (guideRepair.getState().equals("1") || guideRepair.getState().equals("2") || guideRepair.getState().equals("6") || guideRepair.getState().equals("7")) {
+                    isAdd = false;
+                    break;
+                }
+            }
+        }
+        if (isAdd) {
+            AreaCode2022 areaCode2022 = areaCode2022Mapper.selectOne(new QueryWrapper<AreaCode2022>().lambda().eq(AreaCode2022::getCode, guideRepairOrder.getAreaCode()));
+            Integer grade=2;
+            if (areaCode2022.getLevel()==2){
+                grade=1;
+            }
+            //自动分配业务代码开始
+            List<OrganizationChartEntity> organizationChartEntities = organizationChartMapper.selectByCode(transactionEvent.getDepartmentId(), guideRepairOrder.getAreaCode(),grade);
+            if (organizationChartEntities.size() > 0) {
+                for (OrganizationChartEntity organizationChart : organizationChartEntities) {
+                    departmentIds.add(organizationChart.getId().toString());
+                }
+                List<SysUser> sysUsers = sysUserMapper.selectListByDepartmentId(departmentIds, "," + transactionEvent.getId(), transactionEvent.getId() + ",");//获取导半人员
+                if (sysUsers.size() == 0) {//如果此所属地区部门没有导半人员则看其下级地区有没有相关分类导办人员
+                    for (OrganizationChartEntity organizationChart : organizationChartEntities) {
+                        //获取下级部门
+                        List<OrganizationChartEntity> organizationChartEntitiesUser = organizationChartMapper.selectList(new QueryWrapper<OrganizationChartEntity>().lambda()
+                                .eq(OrganizationChartEntity::getParentId, organizationChart.getId().toString()));
+                        if (organizationChartEntitiesUser != null)
+                            departmentIds = this.getDepartmentIds(organizationChartEntitiesUser, departmentIds);
+                    }
+                    sysUsers = sysUserMapper.selectListByDepartmentId(departmentIds, "," + transactionEvent.getId(), transactionEvent.getId() + ",");//获取导半人员
+                    if (sysUsers.size() == 0) {//如果该所属地区没有导办人员则为获取其上級地区有没有相关分类导办人员
+                        List<String> departmentIdsParent = new ArrayList<>();
+                        departmentIdsParent.addAll(departmentIds);
+                        for (String departmentId : departmentIdsParent) {
+                            OrganizationChartEntity organizationChart = organizationChartMapper.selectOne(new QueryWrapper<OrganizationChartEntity>().lambda().eq(OrganizationChartEntity::getId, departmentId));
+                            OrganizationChartEntity organizationChartParent = organizationChartMapper.selectOne(new QueryWrapper<OrganizationChartEntity>().lambda().eq(OrganizationChartEntity::getId, organizationChart.getParentId()));
+                            if (organizationChartParent != null) {
+                                departmentIds.add(organizationChartParent.getId().toString());
+                            }
+                        }
+                        sysUsers = sysUserMapper.selectListByDepartmentId(departmentIds, "," + transactionEvent.getId(), transactionEvent.getId() + ",");//获取导半人员
+                        if (sysUsers.size() == 0) {
+                            sysUsers = sysUserMapper.selectListByDepartmentId(departmentIds, null, null);//获取导半人员
+                            if (sysUsers.size() == 0) {
+                                //如果该所属地区没有导办人员则为特殊单据需要手动分配
+                                guideRepairOrder.setState("1");
+                            }
+                        }
+                    }
+
+                }
+                if (sysUsers.size() > 0) {//系统分配导办人员
+                    SysUser sysUser = sysUsers.get(0);//因为sql用了升序排序所以第一条就是待办结最少的人员之一
+                    guideRepairOrder.setState("2");
+                    sysUser.setTransactionNum(sysUser.getTransactionNum() + 1);
+                    sysUserMapper.updateById(sysUser);
+                    guideRepairOrder.setGuideUserId(sysUser.getUserId().toString());
+                    guideRepairOrder.setGuideDepartmentId(sysUser.getDepartmentId());
+                    guideRepairOrder.setGuideUserPhone(sysUser.getPhonenumber());
+                    //新增分配记录
+                    GuideEvolveEntity entity = new GuideEvolveEntity();
+                    entity.setCreateTime(LocalDateTime.now());
+                    entity.setUpdateTime(LocalDateTime.now());
+                    entity.setState("8");
+                    entity.setDepartmentalId(sysUser.getDepartmentId());
+                    entity.setToUserId(guideRepairOrder.getGuideUserId() + "");
+//                    entity.setFromUserId(guideRepairOrder.getSubmitUserId());
+//                    entity.setFromDepartmentalId(guideRepairOrder.getGuideDepartmentId());
+                    entity.setGuidOrderNum(guideRepairOrder.getOrderNum());
+                    //超时时间设置业务开始
+                    guideRepairOrder = this.setTimeoutTim(guideRepairOrder);
+                    //超时时间设置业务结束
+                    //消息推送
+                    this.sendGuideRepairOrderSubmit(sysUser.getOpenid(), guideRepairOrder);
+                    //短信发送
+                    smsUtil.sendSmsSubmitNew(sysUser.getPhonenumber(), sysUser.getUserName());
+                    guideEvolveMapper.insertConfig(entity);
+                }
+            } else {//如果该办事指南用户所选所属地区无导半部门则为特殊单据需要手动分配
+                guideRepairOrder.setState("1");
+            }
+            //自动分配业务代码结束
+
+            guideRepairOrder.setCreateTime(LocalDateTime.now());
+            guideRepairOrder.setUpdateTime(LocalDateTime.now());
+            guideRepairOrder.setIsPush(2);
+            transactionEvent.setTransactionNum(transactionEvent.getTransactionNum() + 1);
+            //保存图片地址
+            if (guideRepairOrder.getImages() != null) {
+                String[] images = guideRepairOrder.getImages().split(",");
+                for (String image : images) {
+                    GuideRepairOrderImage guideRepairOrderImage = new GuideRepairOrderImage();
+                    guideRepairOrderImage.setId(Snowflake.getId());
+                    guideRepairOrderImage.setGuideRepairOrderId(guideRepairOrder.getOrderNum());
+                    guideRepairOrderImage.setUrl(image);
+                    guideRepairOrderImage.setCreateTime(LocalDateTime.now());
+                    guideRepairOrderImage.setType(1);
+                    guideRepairOrderImageMapper.insert(guideRepairOrderImage);
+                }
+            }
+            //保存视频地址
+            if (guideRepairOrder.getVideo() != null) {
+                if (guideRepairOrder.getOrderNum() != null) {
+                    GuideRepairOrderImage guideRepairOrderImage = new GuideRepairOrderImage();
+                    guideRepairOrderImage.setId(Snowflake.getId());
+                    guideRepairOrderImage.setGuideRepairOrderId(guideRepairOrder.getOrderNum());
+                    guideRepairOrderImage.setUrl(guideRepairOrder.getVideo());
+                    guideRepairOrderImage.setCreateTime(LocalDateTime.now());
+                    guideRepairOrderImage.setType(2);
+                    guideRepairOrderImageMapper.insert(guideRepairOrderImage);
+                }
+            }
+
+            int ans = baseMapper.insert(guideRepairOrder);
+            int i = transactionEventMapper.updateById(transactionEvent);
+            if (ans > 0 && i > 0)
+                return 1;
+            else
+                return 0;
+        } else {
+            return 0;
+        }
+    }
+
+    public List<String> getDepartmentIds(List<OrganizationChartEntity> organizationChartEntities, List<String> departmentIds) {
+        for (OrganizationChartEntity organizationChart : organizationChartEntities) {
+            departmentIds.add(organizationChart.getId().toString());
+            List<OrganizationChartEntity> organizationChartEntitiesUser = organizationChartMapper.selectList(new QueryWrapper<OrganizationChartEntity>().lambda()
+                    .eq(OrganizationChartEntity::getParentId, organizationChart.getId().toString()));
+            if (organizationChartEntitiesUser != null)
+                departmentIds = this.getDepartmentIds(organizationChartEntitiesUser, departmentIds);
+
+        }
+        return departmentIds;
+    }
+
+    @Override
+    public GuideRepairOrder selectConfigData(String Id, String orderNum) {
+        return baseMapper.selectConfigData(Id, orderNum);
+    }
+
+    @Override
+    public int updateConfig(GuideRepairOrder order) {
+        if (order.getGuideUserId() != null && !order.getGuideUserId().equals("")) {
+            SysUser sysUser = sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId, order.getGuideUserId()));
+            order.setGuideUserPhone(sysUser.getPhonenumber());
+        }
+        return baseMapper.updateConfig(order);
+    }
+
+    @Override
+    public List<GuideRepairOrder> selectBySubmitId(String submitUserId) {
+        return baseMapper.selectBySubmitId(submitUserId);
+    }
+
+    @Override
+    public List<GuideRepairOrder> selectConfigList(IPage<GuideRepairOrder> page, Integer state,
+                                                   String matterName, List<String> ids, String status,
+                                                   String guideUserId, String createTimeStartTime,
+                                                   String createTimeTimeEndTime, String classifyId) {
+        return baseMapper.selectConfigList(page, state, matterName, ids, status, guideUserId, createTimeStartTime, createTimeTimeEndTime, classifyId);
+    }
+
+    @Override
+    public List<GuideRepairOrder> selectConfigList(String matterName, List<String> ids, String status,
+                                                   String guideUserId, String createTimeStartTime, String createTimeTimeEndTime, String classifyId) {
+        return baseMapper.selectConfigList(matterName, ids, status, guideUserId, createTimeStartTime, createTimeTimeEndTime, classifyId);
+    }
+
+    @Override
+    public int countConfigList(String matterName, List<String> ids, String status, String guideUserId) {
+        return baseMapper.countConfigList(matterName, ids, status, guideUserId);
+    }
+
+    @Override
+    public int countUser(String userId, String state) {
+        return baseMapper.countUser(userId, state);
+    }
+
+    @Override
+    public int updateSysUserOrderNum(GuideEvolveEntity order) {
+        if (order.getState() != null) {
+            if (order.getState().equals("11")) {
+                SysUser sysUser = sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId, order.getToUserId()));
+                GuideRepairOrder guideRepairOrder = baseMapper.selectOne(new QueryWrapper<GuideRepairOrder>().lambda()
+                        .eq(GuideRepairOrder::getId, order.getGuideId()));
+                if (guideRepairOrder != null) {
+                    this.sendGuideRepairOrderSubmit(sysUser.getOpenid(), guideRepairOrder);
+                }
+                //短信发送
+                smsUtil.sendSmsSubmitNew(sysUser.getPhonenumber(), sysUser.getUserName());
+                sysUser.setTransactionNum(sysUser.getTransactionNum() + 1);
+                return sysUserMapper.updateById(sysUser);
+            } else if (order.getState().equals("10")) {
+                SysUser sysUserTo = sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId, order.getToUserId()));
+                SysUser sysUserFrom = sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId, order.getFromUserId()));
+                sysUserTo.setTransactionNum(sysUserTo.getTransactionNum() + 1);
+                if (sysUserFrom.getUserType().equals(2)) {
+                    sysUserFrom.setTransactionNum(sysUserFrom.getTransactionNum() - 1);
+                    sysUserMapper.updateById(sysUserFrom);
+                }
+                GuideRepairOrder guideRepairOrder = baseMapper.selectOne(new QueryWrapper<GuideRepairOrder>().lambda()
+                        .eq(GuideRepairOrder::getId, order.getGuideId()));
+                //短信发送
+                smsUtil.sendSmsSubmitNew(sysUserTo.getPhonenumber(), sysUserTo.getUserName());
+                if (guideRepairOrder != null) {
+                    this.sendGuideRepairOrderSubmit(sysUserTo.getOpenid(), guideRepairOrder);
+                }
+                return sysUserMapper.updateById(sysUserTo);
+            } else if (order.getState().equals("7")) {
+                SysUser sysUserFrom = sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId, order.getFromUserId()));
+                sysUserFrom.setTransactionNum(sysUserFrom.getTransactionNum() - 1);
+                return sysUserMapper.updateById(sysUserFrom);
+            }
+        }
+        return 0;
+    }
+
+    /**
+     * 1 今天   2昨天   3本月   4本年度 String time
+     *
+     * @param state
+     * @param ids
+     * @return
+     */
+    @Override
+    public int countStatisticsNum(String state, List<String> ids, String time,
+                                  String isTimeout, String evaluateState,
+                                  List<String> classifyIds, String serviceState,
+                                  String guideUserId) {
+        return baseMapper.countStatisticsNum(state, ids, time, isTimeout, evaluateState, classifyIds, serviceState, guideUserId);
+    }
+
+    @Override
+    public List<CountListNum> countListNum(String state, List<String> ids, Integer time) {
+        return baseMapper.countListNum(state, ids, time);
+    }
+
+    @Override
+    public SysUser getSubmitUser(GuideRepairOrder guideRepairOrder) {
+        return sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId, guideRepairOrder.getSubmitUserId()));
+    }
+
+    @Override
+    public GuideRepairOrder setTimeoutTim(GuideRepairOrder guideRepairOrder) {
+        AutomessageSysSettings automessageSysSettings = iSysSettingsMapper.selectOne(
+                new QueryWrapper<AutomessageSysSettings>().lambda()
+                        .eq(AutomessageSysSettings::getSettingName, "系统超时基础设置"));
+        LocalDateTime startTime = LocalDate.now().atTime(0, 0, 0);//今天开始时间
+        LocalDateTime morningStartTime = LocalDate.now().atTime(9, 0, 0);//上午工作开始时间
+        LocalDateTime morningEndTime = LocalDate.now().atTime(12, 0, 0);//上午工作结束时间
+        LocalDateTime afternoonStartTime = LocalDate.now().atTime(13, 30, 0);//下午工作开始时间
+        LocalDateTime afternoonEndTime = LocalDate.now().atTime(17, 0, 0);//下午工作结束时间
+        LocalDateTime endTime = LocalDate.now().atTime(23, 59, 59);//今天结束时间
+        TestDate td = new TestDate();
+        DateTime dateTimeUser = DateTime.now();
+        String format = "YYYYMMdd";
+        String dateTimeToday = dateTimeUser.toString(format);
+        if (!WorkUtils.isWorkendDay(dateTimeToday)) {
+            if (LocalDateTime.now().isAfter(startTime) && LocalDateTime.now().isBefore(morningStartTime)) {//提交时间是上午上班前
+                guideRepairOrder.setTimeoutTime(LocalDate.now().
+                        atTime(9 + automessageSysSettings.getTimeoutNotificationNum(), 0, 0));
+            } else if (LocalDateTime.now().isAfter(morningStartTime) && LocalDateTime.now().isBefore(morningEndTime)) {//提交时间在上午工作日内
+                guideRepairOrder.setTimeoutTime(LocalDateTime.now().plusHours(automessageSysSettings.getTimeoutNotificationNum()));
+            } else if (LocalDateTime.now().isAfter(morningEndTime) && LocalDateTime.now().isBefore(afternoonStartTime)) {//提交时间在工作日午休内
+                guideRepairOrder.setTimeoutTime(LocalDate.now().
+                        atTime(13 + automessageSysSettings.getTimeoutNotificationNum(), 30, 0));
+            } else if (LocalDateTime.now().isAfter(afternoonStartTime) && LocalDateTime.now().isBefore(afternoonEndTime)) {//提交时间在下午工作日内
+                guideRepairOrder.setTimeoutTime(LocalDateTime.now().plusHours(automessageSysSettings.getTimeoutNotificationNum()));
+            } else if (LocalDateTime.now().isAfter(afternoonEndTime) && LocalDateTime.now().isBefore(endTime)) {//提交时间在下午下班后
+                DateTime dateTime = td.nextWeekDay(dateTimeUser);
+                Calendar calendar = dateTime.toCalendar();
+                LocalDateTime localDateTime = LocalDateTime.of(calendar.get(Calendar.YEAR),
+                        calendar.get(Calendar.MONTH) + 1, calendar.get(Calendar.DATE),
+                        9 + automessageSysSettings.getTimeoutNotificationNum(), 0);//设置时间为下一个工作日时间的9点+设置超时时间
+                guideRepairOrder.setTimeoutTime(localDateTime);
+            }
+        } else//当前不是工作日则获取下一个工作日
+        {
+            DateTime dateTime = td.nextWeekDay(dateTimeUser);
+            Calendar calendar = dateTime.toCalendar();
+            LocalDateTime localDateTime = LocalDateTime.of(calendar.get(Calendar.YEAR),
+                    calendar.get(Calendar.MONTH) + 1, calendar.get(Calendar.DATE),
+                    9 + automessageSysSettings.getTimeoutNotificationNum(), 0);//设置时间为下一个工作日时间的9点+设置超时时间
+            guideRepairOrder.setTimeoutTime(localDateTime);
+        }
+        return guideRepairOrder;
+    }
+
+    @Override
+    public void sendGuideRepairOrderSubmit(String openid, GuideRepairOrder guideRepairOrder) {
+        WxUtil wxUtil = new WxUtil();
+        String accessToken = "0";
+        try {
+            accessToken = stringRedisTemplate.boundValueOps("access_token:access_token:" + ConstantPropertiesUtil.WX_OPEN_APP_ID).get();
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+        wxUtil.sendGuideRepairOrderSubmit(openid, accessToken, "WggWK_yG7_qfrTj8bQe-2co4ATgpXamLzT1xvrTu4K0", guideRepairOrder);
+//                    smsUtil.sendSmsOvertime(sysUser.getPhonenumber(),guideRepairOrder.getMatterName());
+    }
+
+    @Override
+    public int deleteConfigById(String Id) {
+        GuideRepairOrder guideRepairOrderDelete = baseMapper.selectOne(new QueryWrapper<GuideRepairOrder>().lambda().eq(GuideRepairOrder::getId, Id));
+        //删除进展记录
+        guideEvolveMapper.delete(new QueryWrapper<GuideEvolveEntity>().lambda().eq(GuideEvolveEntity::getGuideId, Id));
+        TransactionEvent transactionEvent = transactionEventMapper.selectOne(new QueryWrapper<TransactionEvent>().lambda().eq(TransactionEvent::getId, guideRepairOrderDelete.getMatterId()));
+        if (transactionEvent.getTransactionNum() > 0) {
+            transactionEvent.setTransactionNum(transactionEvent.getTransactionNum() - 1);
+        }
+        //对应办事指南减一
+        transactionEventMapper.updateById(transactionEvent);
+        SysUser sysUser = sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId, guideRepairOrderDelete.getGuideUserId()));
+        if (sysUser != null) {
+            //对应导半人员待导半数量建议
+            sysUser.setTransactionNum(sysUser.getTransactionNum() - 1);
+            sysUserMapper.updateById(sysUser);
+        }
+        return baseMapper.deleteConfigById(Id);
+    }
+
+    @Override
+    public ResultData pushOvertimeGuideRepairOrder() {
+        List<GuideRepairOrder> guideRepairOrders = baseMapper.selectOvertime();
+        WxUtil wxUtil = new WxUtil();
+        String accessToken = "0";
+        try {
+            accessToken = stringRedisTemplate.boundValueOps("access_token:access_token:" + ConstantPropertiesUtil.WX_OPEN_APP_ID).get();
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+        for (GuideRepairOrder guideRepairOrder : guideRepairOrders) {
+            List<SysUser> sysUsers = sysUserMapper.selectList(new QueryWrapper<SysUser>().lambda().eq(SysUser::getDepartmentId, guideRepairOrder.getGuideDepartmentId()).eq(SysUser::getIsDivisionHead, 1));
+            if (sysUsers != null && sysUsers.size() > 0) {
+                for (SysUser sysUser : sysUsers) {
+//            transactionEventMapper.selectOne(new QueryWrapper<TransactionEvent>().lambda().eq(TransactionEvent::getId, guideRepairOrder.getMatterId()));
+            SysUser sysUserGuideUser = sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId, guideRepairOrder.getGuideUserId()));
+                    if (sysUser != null) {
+                        smsUtil.sendSmsOvertimeNew(sysUser.getPhonenumber(), sysUserGuideUser.getUserName());
+                        wxUtil.sendGuideRepairOrderOvertime(sysUser.getOpenid(), accessToken, "86JgWHhR8b1XxD72WYqMnndyfkiMtSSoCk9NFMwLEZ8", sysUser);
+                        guideRepairOrder.setIsPush(1);
+                        guideRepairOrder.setIsTimeout("2");
+                        baseMapper.updateById(guideRepairOrder);
+                    }
+                }
+            }
+
+        }
+        return ResultData.success();
+    }
+
+    @Override
+    public ResultData  pushNoticeTimeRepairOrder(){
+        AutomessageSysSettings automessageSysSettings = iSysSettingsMapper.selectOne(
+                new QueryWrapper<AutomessageSysSettings>().lambda()
+                        .eq(AutomessageSysSettings::getSettingName, "系统超时基础设置"));
+        Integer timeoutRemindNum = automessageSysSettings.getTimeoutRemindNum();
+        List<GuideRepairOrder> guideRepairOrders = baseMapper.selectNoticeTime(timeoutRemindNum);
+        for (GuideRepairOrder guideRepairOrder:guideRepairOrders){
+            SysUser sysUser = sysUserMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId, guideRepairOrder.getGuideUserId()));
+            if (sysUser != null) {
+                smsUtil.sendSmsOvertimeRemind(sysUser.getPhonenumber(), sysUser.getUserName());
+                guideRepairOrder.setIsRemindPush(1);
+                baseMapper.updateById(guideRepairOrder);
+            }
+        }
+        return ResultData.success();
+    }
+
+    @Override
+    public int updateEvaluate() {
+        //查找一天没有评价的单据
+        List<GuideRepairOrder> guideRepairOrders = baseMapper.selectEvaluate();
+        for (GuideRepairOrder guideRepairOrder : guideRepairOrders) {
+            guideRepairOrder.setEvaluateState("1");
+            guideRepairOrder.setEvaluateContent("好评");
+            guideRepairOrder.setServiceState(1);
+            guideRepairOrder.setState("3");
+            baseMapper.updateById(guideRepairOrder);
+            //新增默认好评进展
+            GuideEvolveEntity entity = new GuideEvolveEntity();
+            entity.setCreateTime(LocalDateTime.now());
+            entity.setUpdateTime(LocalDateTime.now());
+            entity.setState("12");
+            entity.setFromUserId(guideRepairOrder.getSubmitUserId() + "");
+            entity.setGuideId(guideRepairOrder.getId().toString());
+            guideEvolveMapper.insertConfig(entity);
+
+        }
+        return 0;
+    }
+
+    @Override
+    public ResultData deleteComment(Integer id, SysUser sysUser) {
+        if (sysUser.getUserType().equals("1") || sysUser.getIsDivisionHead().equals("1")) {
+            GuideRepairOrder guideRepairOrder = baseMapper.selectOne(new QueryWrapper<GuideRepairOrder>().lambda().eq(GuideRepairOrder::getId, id));
+            if (guideRepairOrder != null && guideRepairOrder.getState().equals("3")) {
+                guideRepairOrder.setIsHideComments(1);
+                baseMapper.updateById(guideRepairOrder);
+                //新增删除评论进展
+                GuideEvolveEntity entity = new GuideEvolveEntity();
+                entity.setCreateTime(LocalDateTime.now());
+                entity.setUpdateTime(LocalDateTime.now());
+                entity.setState("14");
+                entity.setFromUserId(sysUser.getUserId() + "");
+                entity.setGuideId(guideRepairOrder.getId().toString());
+                guideEvolveMapper.insertConfig(entity);
+                baseMapper.updateById(guideRepairOrder);
+                return ResultData.success("删除评论成功");
+            } else {
+                return ResultData.error("已办结的单据才能进行删除评论操作");
+            }
+        } else {
+            return ResultData.error("只能部门领导和超级管理员才能删除评论");
+        }
+
+    }
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/impl/HomeStatisticsImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/HomeStatisticsImpl.java
new file mode 100644
index 0000000..a62f516
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/impl/HomeStatisticsImpl.java
@@ -0,0 +1,103 @@
+package com.dg.core.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dg.core.db.gen.entity.ClassifyAdministration;
+import com.dg.core.db.gen.entity.Guidance;
+import com.dg.core.db.gen.entity.GuidePlate;
+import com.dg.core.db.gen.entity.OrganizationEntity;
+import com.dg.core.db.gen.mapper.HomeStatisticsMapper;
+import com.dg.core.service.HomeStatisticsService;
+import org.springframework.data.repository.query.Param;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+@Service
+public class HomeStatisticsImpl extends ServiceImpl<HomeStatisticsMapper, GuidePlate>
+        implements HomeStatisticsService
+{
+
+    @Override
+    public List<GuidePlate> guidePlatePeople(List<String> ids) {
+        return baseMapper.guidePlatePeople(ids);
+    }
+
+    @Override
+    public List<GuidePlate> score(List<String> ids) {
+        return baseMapper.score(ids);
+    }
+
+    @Override
+    public List<GuidePlate> timeout(List<String> ids) {
+        return baseMapper.timeout(ids);
+    }
+
+    @Override
+    public List<GuidePlate> tosettled(List<String> ids) {
+        return baseMapper.tosettled(ids);
+    }
+
+    @Override
+    public List<GuidePlate> workunit(List<String> ids) {
+        return baseMapper.workunit(ids);
+    }
+
+    @Override
+    public Integer organizationScore(List<String> ids) {
+        return baseMapper.organizationScore(ids);
+    }
+
+    @Override
+    public Integer organizationNum(List<String> ids) {
+        return baseMapper.organizationNum(ids);
+    }
+
+    @Override
+    public List<OrganizationEntity> getDepartment() {
+        return baseMapper.getDepartment();
+    }
+
+    @Override
+    public List<Guidance> guidanceTransaction(List<String> ids) {
+        return baseMapper.guidanceTransaction(ids);
+    }
+
+    @Override
+    public List<Guidance> guidanceBrowse(List<String> ids) {
+        return baseMapper.guidanceBrowse(ids);
+    }
+
+    @Override
+    public Integer staffNum(List<String> ids) {
+        return baseMapper.staffNum(ids);
+    }
+
+    @Override
+    public Integer countWork(List<String> ids) {
+        return baseMapper.countWork(ids);
+    }
+
+    @Override
+    public int countStatisticsNum(List<String> classifyIds,List<String> ids) {
+        return baseMapper.countStatisticsNum(classifyIds,ids);
+    }
+    @Override
+    public List<ClassifyAdministration> getClassify(String parentId, String classifyGrade) {
+        return baseMapper.getClassify(parentId,classifyGrade);
+    }
+
+    @Override
+    public List<String> countId(String district) {
+        return baseMapper.countId(district);
+    }
+
+    @Override
+    public String reversionRate(String state, String isTimeout) {
+        return baseMapper.reversionRate(state,isTimeout);
+    }
+
+    @Override
+    public int rangeStatistics(List<String> ids) {
+        return baseMapper.rangeStatistics(ids);
+    }
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/impl/HuaChengSysUserImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/HuaChengSysUserImpl.java
new file mode 100644
index 0000000..0ee0e73
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/impl/HuaChengSysUserImpl.java
@@ -0,0 +1,29 @@
+package com.dg.core.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dg.core.db.gen.entity.HuaChengSysUser;
+import com.dg.core.db.gen.mapper.HuaChengSysUserMapper;
+import com.dg.core.service.IHuaChengSysUserService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class HuaChengSysUserImpl  extends ServiceImpl<HuaChengSysUserMapper, HuaChengSysUser> implements IHuaChengSysUserService
+{
+
+    @Override
+    public List<HuaChengSysUser> selectConfigList() {
+        return baseMapper.selectConfigList();
+    }
+
+    @Override
+    public List<HuaChengSysUser> selectData(String userId,String account,String phone) {
+        return baseMapper.selectData(userId,account,phone);
+    }
+
+    @Override
+    public int selectNum() {
+        return baseMapper.selectNum();
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/impl/IAutomessageSmartConsultingServiceImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/IAutomessageSmartConsultingServiceImpl.java
new file mode 100644
index 0000000..95fc399
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/impl/IAutomessageSmartConsultingServiceImpl.java
@@ -0,0 +1,23 @@
+package com.dg.core.service.impl;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dg.core.db.gen.entity.AutomessageSmartConsulting;
+import com.dg.core.db.gen.mapper.AutomessageSmartConsultingMapper;
+import com.dg.core.service.IAutomessageSmartConsultingService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class IAutomessageSmartConsultingServiceImpl extends ServiceImpl<AutomessageSmartConsultingMapper, AutomessageSmartConsulting> implements IAutomessageSmartConsultingService {
+
+   @Override
+   public int add(AutomessageSmartConsulting automessageSmartConsulting){
+       return   baseMapper.insert(automessageSmartConsulting);
+   }
+
+    @Override
+   public  Long countSmartConsulting(){
+     return baseMapper.selectCount(new QueryWrapper<AutomessageSmartConsulting>().lambda());
+   }
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/impl/IRoleMenuImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/IRoleMenuImpl.java
new file mode 100644
index 0000000..ee7fb19
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/impl/IRoleMenuImpl.java
@@ -0,0 +1,33 @@
+package com.dg.core.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dg.core.db.gen.entity.RoleMenuEntity;
+import com.dg.core.db.gen.mapper.RoleMenuEntityMapper;
+import com.dg.core.service.IRoleMenuService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class IRoleMenuImpl extends ServiceImpl<RoleMenuEntityMapper, RoleMenuEntity> implements IRoleMenuService {
+
+    @Override
+    public List<RoleMenuEntity> selectConfigList(String roleId) {
+        return baseMapper.selectConfigList(roleId);
+    }
+
+    @Override
+    public int insertConfig(RoleMenuEntity entity) {
+        return baseMapper.insertConfig(entity);
+    }
+
+    @Override
+    public int updateConfig(RoleMenuEntity entity) {
+        return baseMapper.updateConfig(entity);
+    }
+
+    @Override
+    public int deleteConfigById(String Id) {
+        return baseMapper.deleteConfigById(Id);
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/impl/KeywordImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/KeywordImpl.java
new file mode 100644
index 0000000..23cc982
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/impl/KeywordImpl.java
@@ -0,0 +1,48 @@
+package com.dg.core.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dg.core.ResultData;
+import com.dg.core.db.gen.entity.KeywordEntity;
+import com.dg.core.db.gen.mapper.KeywordMapper;
+import com.dg.core.service.IKeywordService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class KeywordImpl  extends ServiceImpl<KeywordMapper, KeywordEntity> implements IKeywordService {
+
+
+    @Override
+    public List<KeywordEntity> selectConfigList(IPage<KeywordEntity> page, Integer state) {
+        return baseMapper.selectConfigList(page,state);
+    }
+
+    @Override
+    public KeywordEntity selectConfigData(String Id, String name) {
+        return baseMapper.selectConfigData(Id,name);
+    }
+
+    @Override
+    public int insertConfig(KeywordEntity entity)
+    {
+        return baseMapper.insertConfig(entity);
+    }
+
+    @Override
+    public int updateConfig(KeywordEntity entity) {
+        return baseMapper.updateConfig(entity);
+    }
+
+    @Override
+    public int deleteConfigById(String Id) {
+        return baseMapper.deleteConfigById(Id);
+    }
+
+    @Override
+    public int countNum() {
+        return baseMapper.countNum();
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/impl/MenuImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/MenuImpl.java
new file mode 100644
index 0000000..10fe596
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/impl/MenuImpl.java
@@ -0,0 +1,38 @@
+package com.dg.core.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dg.core.db.gen.entity.MenuEntity;
+import com.dg.core.db.gen.mapper.MenuMapper;
+import com.dg.core.service.IMenuService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class MenuImpl extends ServiceImpl<MenuMapper, MenuEntity> implements IMenuService
+{
+    @Override
+    public List<MenuEntity> selectConfigList() {
+        return baseMapper.selectConfigList();
+    }
+
+    @Override
+    public int insertConfig(MenuEntity entity) {
+        return baseMapper.insertConfig(entity);
+    }
+
+    @Override
+    public int updateConfig(MenuEntity entity) {
+        return baseMapper.updateConfig(entity);
+    }
+
+    @Override
+    public int deleteConfigById(Long Id) {
+        return baseMapper.deleteConfigById(Id);
+    }
+
+    @Override
+    public int countNum() {
+        return baseMapper.countNum();
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/impl/OrganizationChartImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/OrganizationChartImpl.java
new file mode 100644
index 0000000..04f1d01
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/impl/OrganizationChartImpl.java
@@ -0,0 +1,245 @@
+package com.dg.core.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dg.core.db.gen.entity.OrganizationChartEntity;
+import com.dg.core.db.gen.mapper.OrganizationChartMapper;
+import com.dg.core.service.IOrganizationChartService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Service
+public class OrganizationChartImpl extends ServiceImpl<OrganizationChartMapper, OrganizationChartEntity>
+        implements IOrganizationChartService
+{
+
+    @Override
+    public List<OrganizationChartEntity> selectConfigList(String parentId,String grade,List<String> ids)
+    {
+        List<OrganizationChartEntity> ocList=baseMapper.selectConfigList(parentId,"1",ids);
+
+        if(ocList==null || ocList.size()<1)
+        {
+            List<String> id=new ArrayList<>();
+            id.add(parentId);
+            ocList=baseMapper.selectConfigList(null,null,id);
+        }
+
+        for (OrganizationChartEntity entity:ocList)
+        {
+            entity.setChild(baseMapper.selectConfigList(entity.getId()+"","",null));
+
+            if (entity.getChild()!=null)
+            {
+                entity.setChild(this.selectConfigList(entity.getId().toString()));
+            }
+        }
+        return ocList;
+    }
+
+    @Override
+    public List<OrganizationChartEntity> selectConfigList(List<String> ids) {
+        List<OrganizationChartEntity> ocList=baseMapper.selectConfigList(null,null,ids);
+        return ocList;
+    }
+
+    @Override
+    public int insertConfig(OrganizationChartEntity entity) {
+        return baseMapper.insertConfig(entity);
+    }
+
+    @Override
+    public int updateConfig(OrganizationChartEntity entity) {
+        return baseMapper.updateConfig(entity);
+    }
+
+    @Override
+    public int deleteConfigById(String Id) {
+        return baseMapper.deleteConfigById(Id);
+    }
+
+    @Override
+    public int countNum() {
+        return baseMapper.countNum();
+    }
+
+
+
+
+    public List<OrganizationChartEntity> selectConfigList(String parentsId) {
+        List<OrganizationChartEntity> list =baseMapper.selectConfigList(parentsId,"",null);
+        for (OrganizationChartEntity sysStreet:list) {
+            sysStreet.setChild(baseMapper.selectConfigList(sysStreet.getId().toString(),"",null));
+            if (sysStreet.getChild()!=null)
+            {
+                sysStreet.setChild(this.selectConfigList(sysStreet.getId().toString()));
+            }
+
+        }
+        return list;
+    }
+
+    @Override
+    public  List<OrganizationChartEntity> selectList(){
+        return baseMapper.selectList(new QueryWrapper<OrganizationChartEntity>().lambda().orderByAsc(OrganizationChartEntity::getGrade));
+    }
+
+    @Override
+    public OrganizationChartEntity selectConfigById(String id) {
+        return baseMapper.selectConfigById(id);
+    }
+
+    @Override
+    public List<OrganizationChartEntity> queryList(IPage<OrganizationChartEntity> page, Integer state,
+                                                   String organizationName,List<String> ids) {
+        return baseMapper.queryList(page,state,organizationName,ids);
+    }
+
+    @Override
+    public int countList(String organizationName,List<String> ids) {
+        return baseMapper.countList(organizationName,ids);
+    }
+
+
+    @Override
+    public List<OrganizationChartEntity> selectParentList(String parentId, String grade) {
+        return baseMapper.selectConfigList(parentId,grade,null);
+    }
+
+    /**
+     * 递归获取id  内部使用
+     * @param id
+     * @return
+     */
+
+    @Override
+    public List<String> getIds(String id)
+    {
+        List<String> ids=new ArrayList<>();
+        List<OrganizationChartEntity> lists = baseMapper.selectConfigList(id,"",null);
+        if(lists.size()<1)
+        {
+            lists.add(baseMapper.selectConfigById(id));
+        }
+        ids=disposestreetId(lists);
+        if(ids.size()<1)
+        {
+            return null;
+        }
+        ids.add(id);
+        return ids;
+    }
+
+    @Override
+    public List<String> getDepartmentId(String id){
+        String parentId = parentId(id);
+        List<String> departmentIds=new ArrayList<>();
+        departmentIds.add(parentId);
+        List<OrganizationChartEntity> organizationChartEntities = baseMapper.selectList(new QueryWrapper<OrganizationChartEntity>().lambda().eq(OrganizationChartEntity::getParentId, parentId));
+        for (OrganizationChartEntity organizationChart :organizationChartEntities){
+            departmentIds.add(organizationChart.getId().toString());
+            departmentIds=getDepartmentIds(organizationChart.getId().toString(),departmentIds);
+        }
+        return  departmentIds;
+    }
+
+    @Override
+    public String getStairId(String id)
+    {
+        OrganizationChartEntity entity= baseMapper.selectConfigById(id);
+        if(entity!=null && StringUtils.isEmpty(entity.getParentId()))
+        {
+            return entity.getId()+"";
+        }
+        else
+        {
+            return getParentId(entity.getParentId());
+        }
+    }
+
+
+    /**
+     * 根据id  获取一级部门id   递归
+     * @param id
+     * @return
+     */
+    public String getParentId(String id)
+    {
+        String ultimatelyId;
+        OrganizationChartEntity entity= baseMapper.selectConfigById(id);
+        if(entity==null)
+        {
+            return id;
+        }
+
+        if(!StringUtils.isEmpty(entity.getParentId()))
+        {
+            ultimatelyId= getParentId(entity.getParentId());
+            return ultimatelyId;
+        }
+        else
+        {
+            ultimatelyId=entity.getId()+"";
+            return ultimatelyId;
+        }
+    }
+
+
+
+    public  String parentId(String id){
+        String parentId=id;
+        OrganizationChartEntity organizationChart = baseMapper.selectOne(new QueryWrapper<OrganizationChartEntity>().lambda().eq(OrganizationChartEntity::getId, id));
+        if (organizationChart.getParentId().length()>0){
+            parentId=parentId(organizationChart.getParentId());
+        }
+        return parentId;
+    }
+
+    public  List<String>  getDepartmentIds(String id,List<String> departmentIds){
+        List<OrganizationChartEntity> organizationChartEntities = baseMapper.selectList(new QueryWrapper<OrganizationChartEntity>().lambda().eq(OrganizationChartEntity::getParentId, id));
+        if (organizationChartEntities.size()==0){
+            return  departmentIds;
+        }
+        else {
+            for (OrganizationChartEntity organizationChart :organizationChartEntities){
+                departmentIds.add(organizationChart.getId().toString());
+                departmentIds=getDepartmentIds(organizationChart.getId().toString(),departmentIds);
+            }
+        }
+        return departmentIds;
+    }
+
+
+
+    //递归取id
+    private List<String> disposestreetId(List<OrganizationChartEntity> lists)
+    {
+        List<String> ids=new ArrayList<>();
+        if(lists==null || lists.size()<1)
+        {
+            return ids;
+        }
+
+        for (OrganizationChartEntity sysStreet:lists)
+        {
+            if(sysStreet!=null&&sysStreet.getId()!=null)
+            {
+                if(sysStreet.getChild()!=null && sysStreet.getChild().size()>0)
+                {
+                    ids.addAll(disposestreetId(sysStreet.getChild()));
+                }
+                else
+                {
+                    ids.add(sysStreet.getId()+"");
+                }
+            }
+        }
+        return ids;
+    }
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/impl/ReplyTemplateImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/ReplyTemplateImpl.java
new file mode 100644
index 0000000..924cbe1
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/impl/ReplyTemplateImpl.java
@@ -0,0 +1,97 @@
+package com.dg.core.service.impl;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dg.core.db.gen.entity.GuideEvolveEntity;
+import com.dg.core.db.gen.entity.ReplyTemplateEntity;
+import com.dg.core.db.gen.mapper.ElseAccessoryMapper;
+import com.dg.core.db.gen.mapper.ReplyTemplateMapper;
+import com.dg.core.db.gen.mapper.TransactionEventMapper;
+import com.dg.core.service.IReplyTemplateService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Service
+public class ReplyTemplateImpl extends ServiceImpl<ReplyTemplateMapper, ReplyTemplateEntity> implements IReplyTemplateService
+{
+
+    @Resource
+    private ElseAccessoryMapper elseAccessoryMapper;
+
+    @Resource
+    private TransactionEventMapper transactionEventMapper;
+
+    @Override
+    public List<ReplyTemplateEntity> selectConfigList(IPage<ReplyTemplateEntity> page,
+                                                      Integer state,String Name,List<String> ids,String userId) {
+        return baseMapper.selectConfigList(page,state,Name,ids,userId);
+    }
+
+    @Override
+    public ReplyTemplateEntity selectConfigData(String Id) {
+        ReplyTemplateEntity replyTemplateEntity = baseMapper.selectConfigData(Id);
+        if (replyTemplateEntity!=null)
+        {
+            if(!StringUtils.isEmpty(replyTemplateEntity.getAccessoryId()))
+            {
+                if(replyTemplateEntity.getAccessoryId().indexOf(",")<0)
+                {
+                    String[] split=new String[]{replyTemplateEntity.getAccessoryId()};
+                    replyTemplateEntity.setElseAccessoryEntityList( elseAccessoryMapper.selectListByIds(split));
+                }
+                else
+                {
+                    String[] split;
+                    split = replyTemplateEntity.getAccessoryId().split(",");
+                    replyTemplateEntity.setElseAccessoryEntityList( elseAccessoryMapper.selectListByIds(split));
+                }
+            }
+
+
+            if (!StringUtils.isEmpty(replyTemplateEntity.getGuidance())){
+
+                if(replyTemplateEntity.getGuidance().indexOf(",")<0)
+                {
+                    String[] split=new String[]{replyTemplateEntity.getGuidance()};
+                    replyTemplateEntity.setTransactionEventList(transactionEventMapper.selectListByIds(split));
+                }
+                else
+                {
+                    String[] split;
+                    split = replyTemplateEntity.getGuidance().split(",");
+                    replyTemplateEntity.setTransactionEventList(transactionEventMapper.selectListByIds(split));
+                }
+
+
+            }
+        return  replyTemplateEntity;
+        }
+        else {
+            return  null;
+        }
+    }
+
+    @Override
+    public int insertConfig(ReplyTemplateEntity entity) {
+        return baseMapper.insertConfig(entity);
+    }
+
+    @Override
+    public int updateConfig(ReplyTemplateEntity entity) {
+        return baseMapper.updateConfig(entity);
+    }
+
+    @Override
+    public int deleteConfigById(String Id) {
+        return baseMapper.deleteConfigById(Id);
+    }
+
+    @Override
+    public int countNum(String Name,List<String> ids) {
+        return baseMapper.countNum(Name,ids);
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/impl/RoleManagementImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/RoleManagementImpl.java
new file mode 100644
index 0000000..0a33994
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/impl/RoleManagementImpl.java
@@ -0,0 +1,38 @@
+package com.dg.core.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dg.core.db.gen.entity.RoleManagementEntity;
+import com.dg.core.db.gen.mapper.RoleManagementMapper;
+import com.dg.core.service.IRoleManagementService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+public class RoleManagementImpl extends ServiceImpl<RoleManagementMapper, RoleManagementEntity> implements IRoleManagementService {
+    @Override
+    public List<RoleManagementEntity> selectConfigList(IPage<RoleManagementEntity> page, Integer state,String name) {
+        return baseMapper.selectConfigList(page,state,name);
+    }
+
+    @Override
+    public int insertConfig(RoleManagementEntity entity) {
+        return baseMapper.insertConfig(entity);
+    }
+
+    @Override
+    public int updateConfig(RoleManagementEntity entity) {
+        return baseMapper.updateConfig(entity);
+    }
+
+    @Override
+    public int deleteConfigById(String Id) {
+        return baseMapper.deleteConfigById(Id);
+    }
+
+    @Override
+    public int countNum(String name) {
+        return baseMapper.countNum(name);
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/impl/SlideshowServiceImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/SlideshowServiceImpl.java
new file mode 100644
index 0000000..df8cddb
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/impl/SlideshowServiceImpl.java
@@ -0,0 +1,82 @@
+package com.dg.core.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dg.core.ResultData;
+import com.dg.core.db.gen.entity.ClassifyAdministration;
+import com.dg.core.db.gen.entity.Slideshow;
+import com.dg.core.db.gen.entity.SysUser;
+import com.dg.core.db.gen.mapper.SlideshowMapper;
+import com.dg.core.service.ISlideshowService;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.util.Date;
+import java.util.List;
+
+@Service
+public class SlideshowServiceImpl extends ServiceImpl<SlideshowMapper, Slideshow> implements ISlideshowService {
+
+
+    @Override
+    public List<Slideshow> selectConfigList(IPage<SysUser> page, Integer state) {
+        return null;
+    }
+
+    @Override
+    public List<Slideshow> selectList() {
+        return baseMapper.selectList(new QueryWrapper<Slideshow>().lambda());
+    }
+
+    @Override
+    public Slideshow queryById(Integer id) {
+        return baseMapper.selectOne(new QueryWrapper<Slideshow>().lambda().eq(Slideshow::getId, id));
+    }
+
+    @Override
+    public ResultData add(Slideshow slideshow) {
+        if (slideshow.getUrl() == null || slideshow.getUrl() == "")
+            return ResultData.error("图片地址不能为空");
+        if (slideshow.getLinkType() == null)
+            return ResultData.error("跳转链接类型不能为空");
+        if (slideshow.getLinkType().equals(2)) {
+            if (slideshow.getTitle() == null || slideshow.getTitle() == "")
+                return ResultData.error("类型为富文本时,标题不能为空");
+            if (slideshow.getContent() == null || slideshow.getContent() == "")
+                return ResultData.error("类型为富文本时,富文本内容不能为空");
+        }
+        if (slideshow.getLinkType().equals(3) && (slideshow.getLink() == null || slideshow.getLink() == ""))
+            return ResultData.error("类型为微信文章时,文章链接容不能为空");
+        slideshow.setCreateTime(LocalDateTime.now());
+        return ResultData.success(baseMapper.insert(slideshow));
+    }
+
+    @Override
+    public ResultData update(Slideshow slideshow) {
+        if (slideshow.getUrl() == null || slideshow.getUrl() == "")
+            return ResultData.error("图片地址不能为空");
+        if (slideshow.getLinkType() == null)
+            return ResultData.error("跳转链接类型不能为空");
+        if (slideshow.getLinkType().equals(2)) {
+            if (slideshow.getTitle() == null || slideshow.getTitle() == "")
+                return ResultData.error("类型为富文本时,标题不能为空");
+            if (slideshow.getContent() == null || slideshow.getContent() == "")
+                return ResultData.error("类型为富文本时,富文本内容不能为空");
+        }
+        if (slideshow.getLinkType().equals(3) && (slideshow.getLink() == null || slideshow.getLink() == ""))
+            return ResultData.error("类型为微信文章时,文章链接容不能为空");
+        return ResultData.success(baseMapper.updateById(slideshow));
+
+    }
+
+    @Override
+    public ResultData delete(Integer id) {
+        int i = baseMapper.deleteById(id);
+        if (i > 0)
+            return ResultData.success();
+        else
+            return ResultData.error();
+    }
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/impl/SysSettingsServiceImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/SysSettingsServiceImpl.java
new file mode 100644
index 0000000..392a4a7
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/impl/SysSettingsServiceImpl.java
@@ -0,0 +1,45 @@
+package com.dg.core.service.impl;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dg.core.ResultData;
+import com.dg.core.db.gen.entity.AutomessageSysSettings;
+import com.dg.core.db.gen.entity.AutomessageSysSettingsRecord;
+import com.dg.core.db.gen.mapper.AutomessageSysSettingsMapper;
+import com.dg.core.db.gen.mapper.AutomessageSysSettingsRecordMapper;
+import com.dg.core.service.ISysSettingsService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.time.LocalDateTime;
+
+@Service
+public class SysSettingsServiceImpl extends ServiceImpl<AutomessageSysSettingsMapper, AutomessageSysSettings> implements ISysSettingsService {
+
+    @Resource
+    private AutomessageSysSettingsRecordMapper automessageSysSettingsRecordMapper;
+
+    @Override
+    public ResultData selectByName(String settingName){
+        AutomessageSysSettings automessageSysSettings = baseMapper.selectOne(
+                new QueryWrapper<AutomessageSysSettings>().lambda()
+                        .eq(AutomessageSysSettings::getSettingName,settingName));
+        return ResultData.success(automessageSysSettings);
+    }
+
+    @Override
+    public ResultData update(AutomessageSysSettings automessageSysSettings){
+        AutomessageSysSettingsRecord automessageSysSettingsRecord=new AutomessageSysSettingsRecord();
+        automessageSysSettingsRecord.setSettingId(automessageSysSettings.getId());
+        automessageSysSettingsRecord.setCreateUserId(automessageSysSettings.getUpdateUserId());
+        automessageSysSettingsRecord.setCreateTime(LocalDateTime.now());
+        int i = baseMapper.updateById(automessageSysSettings);
+        if (i>0){
+            return  ResultData.success(automessageSysSettingsRecordMapper.insert(automessageSysSettingsRecord));
+        }else {
+            return ResultData.error();
+        }
+
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/impl/SysUserRecordServiceImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/SysUserRecordServiceImpl.java
new file mode 100644
index 0000000..c69de5f
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/impl/SysUserRecordServiceImpl.java
@@ -0,0 +1,66 @@
+package com.dg.core.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dg.core.ResultData;
+import com.dg.core.db.gen.entity.AutomessageSysUserRecord;
+import com.dg.core.db.gen.entity.SysUser;
+import com.dg.core.db.gen.mapper.AutomessageSysUserRecordMapper;
+import com.dg.core.db.gen.mapper.SysUserMapper;
+import com.dg.core.service.ISysUserRecordService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+@Service
+public class SysUserRecordServiceImpl extends ServiceImpl<AutomessageSysUserRecordMapper, AutomessageSysUserRecord> implements ISysUserRecordService {
+
+    @Resource
+    private SysUserMapper sysUserMapper;
+
+    @Override
+    public ResultData add(SysUser sysUser){
+        if (sysUser!=null){
+            LocalDateTime startTime = LocalDate.now().atTime(0, 0, 0);
+            LocalDateTime endTime = LocalDate.now().atTime(23, 59, 59);
+            AutomessageSysUserRecord automessageSysUserRecord = baseMapper.selectOne(new QueryWrapper<AutomessageSysUserRecord>()
+                    .lambda().eq(AutomessageSysUserRecord::getUserId, sysUser.getUserId())
+                    .orderByDesc(AutomessageSysUserRecord::getCreateTime)
+                    .last("limit 1"));
+            //判断上次访问时间是不是今天 如果是今天不增加浏览次数
+            if (automessageSysUserRecord==null||(!(automessageSysUserRecord.getCreateTime().isAfter(startTime)&&automessageSysUserRecord.getCreateTime().isBefore(endTime)))) {
+                AutomessageSysUserRecord automessageSysUserRecordNew = new AutomessageSysUserRecord();
+                automessageSysUserRecordNew.setUserId(sysUser.getUserId());
+                automessageSysUserRecordNew.setCreateTime(LocalDateTime.now());
+                sysUser.setLoginDate(LocalDateTime.now());
+                sysUserMapper.updateById(sysUser);
+                return ResultData.success(baseMapper.insert(automessageSysUserRecordNew));
+            }
+        }
+        return null;
+    }
+
+    @Override
+    public ResultData selectUserRecordCount() {
+        return ResultData.success(baseMapper.selectUserRecordCount());
+    }
+
+    @Override
+    public ResultData selectByDateType(Integer dateType) {
+        if (dateType.equals(1))
+            return ResultData.success(baseMapper.selectByDay());
+        if (dateType.equals(2))
+            return ResultData.success(baseMapper.selectByMonth());
+        if (dateType.equals(3))
+            return ResultData.success(baseMapper.selectByYear());
+        return null;
+    }
+
+    @Override
+    public Integer deleteDistinct() {
+        return baseMapper.deleteDistinct();
+    }
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/impl/SysUserServiceImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/SysUserServiceImpl.java
new file mode 100644
index 0000000..41b3628
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/impl/SysUserServiceImpl.java
@@ -0,0 +1,326 @@
+package com.dg.core.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dg.core.ResultData;
+import com.dg.core.db.gen.entity.HuaChengSysUser;
+import com.dg.core.db.gen.entity.OrganizationChartEntity;
+import com.dg.core.db.gen.entity.SysUser;
+import com.dg.core.db.gen.mapper.OrganizationChartMapper;
+import com.dg.core.db.gen.mapper.SysUserMapper;
+import com.dg.core.manager.TokenManager;
+import com.dg.core.service.IHuaChengSysUserService;
+import com.dg.core.service.ISysUserService;
+import com.dg.core.util.SmsUtil;
+import com.dg.core.util.Snowflake;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements ISysUserService
+{
+
+    @Resource
+    SmsUtil smsUtil;
+
+    @Resource
+    RedisTemplate<String, Object> redisTemplate;
+
+    @Autowired
+    TokenManager tokenManager;
+
+    @Resource
+    private OrganizationChartMapper organizationChartMapper;
+
+    /**
+     * 花城e+用户接口
+     */
+    @Autowired
+    IHuaChengSysUserService iHuaChengSysUserService;
+
+    @Override
+    public SysUser getUserByAccount(String account) {
+        baseMapper.setGroup();
+        SysUser sysUsers = baseMapper.getUserByAccount(account);
+        return sysUsers;
+    }
+
+    @Override
+    public ResultData smsSend(SysUser user){
+        baseMapper.setGroup();
+        return smsUtil.sendSmsNew(user.getPhonenumber());
+
+    }
+
+    @Override
+    public ResultData loginByAccount(String phonenumber, String code){
+        baseMapper.setGroup();
+        String code1 = redisTemplate.opsForValue().get(phonenumber) + "";
+
+        SysUser sysUser = baseMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getPhonenumber, phonenumber));
+        if (sysUser==null){
+            //查询花城e+是否存在此用户
+            List<HuaChengSysUser> list=iHuaChengSysUserService.selectData("","",phonenumber);
+            HuaChengSysUser huaChengSysUser=null;
+
+            if( list.size()>0  )
+            {
+                huaChengSysUser=list.get(0);
+            }
+
+            if(huaChengSysUser==null)
+            {
+                SysUser newUser = new SysUser();
+                newUser.setUserId(Snowflake.getId()+"");
+                newUser.setLoginName(phonenumber);
+                newUser.setUserName(phonenumber.substring(0,3)+"xxxx"+phonenumber.substring(7,11)+"用户");
+                newUser.setUserType("3");
+                newUser.setPhonenumber(phonenumber);
+                newUser.setSex("1");
+                newUser.setCreateTime(LocalDateTime.now());
+                newUser.setUpdateTime(LocalDateTime.now());
+                baseMapper.insertConfig(newUser);
+            }
+            else
+            {
+                SysUser newUser = new SysUser();
+                newUser.setUserId(huaChengSysUser.getUserId()+"");
+                newUser.setLoginName(huaChengSysUser.getPhone());
+                newUser.setUserName(huaChengSysUser.getNickName());
+                newUser.setUserType("3");
+                newUser.setPhonenumber(huaChengSysUser.getPhone());
+                newUser.setSex(huaChengSysUser.getSex());
+                newUser.setAvatar(huaChengSysUser.getImageUrl());
+                newUser.setCreateTime(LocalDateTime.now());
+                newUser.setUpdateTime(LocalDateTime.now());
+                newUser.setOpenid(huaChengSysUser.getOpenid());
+                baseMapper.insertConfig(newUser);
+            }
+        }
+
+        if (code.equals(code1)) {
+            sysUser = baseMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getPhonenumber, phonenumber));
+            if (sysUser!=null){
+                String token = tokenManager.getTokenByUserId(sysUser.getUserId());
+//        String token = tokenManager.createToken(user.getUserId(), user.getRoleId());
+                System.out.println("token "+token);
+                if (token == null) {
+                    //生成一个token,保存用户登录状态
+                    token = tokenManager.createToken(sysUser.getUserId(), sysUser.getUserId());
+                }
+
+                sysUser.setLoginDate(LocalDateTime.now());
+                //更新登录时间
+                this.updateConfig(sysUser);
+
+                Map<String, Object> map = new HashMap<>();
+                map.put("token", token);
+                map.put("userId", sysUser.getUserId());
+                map.put("userName", sysUser.getUserName());
+
+                return ResultData.success(map);
+            }
+            else {
+                return  ResultData.error("验证码错误");
+            }
+
+        }
+        return  ResultData.error("验证码错误");
+
+    }
+
+    @Override
+    public List<SysUser> selectListByDepartmentId(String departmentId, String classifyId) {
+        baseMapper.setGroup();
+        List<String> departmentIds=new ArrayList<>();
+        departmentIds.add(departmentId);
+        List<OrganizationChartEntity> organizationChartEntities = organizationChartMapper.selectList(new QueryWrapper<OrganizationChartEntity>().lambda()
+                .eq(OrganizationChartEntity::getParentId, departmentId));
+        if (organizationChartEntities!=null){
+            for (OrganizationChartEntity organizationChart:organizationChartEntities) {
+                departmentIds.add(organizationChart.getId().toString());
+                List<OrganizationChartEntity> organizationChartEntitiesUser = organizationChartMapper.selectList(new QueryWrapper<OrganizationChartEntity>().lambda()
+                        .eq(OrganizationChartEntity::getParentId, organizationChart.getId().toString()));
+                if (organizationChartEntitiesUser!=null)
+                    departmentIds=this.getDepartmentIds(organizationChartEntitiesUser,departmentIds);
+            }
+        }
+        if (classifyId==null)
+            return baseMapper.selectListByDepartmentId(departmentIds,null,null);
+        else
+            return baseMapper.selectListByDepartmentId(departmentIds,","+classifyId,classifyId+",");
+    }
+
+    @Override
+    public ResultData loginByPhonenumber(String phonenumber)
+    {
+        baseMapper.setGroup();
+        SysUser sysUser = baseMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getPhonenumber, phonenumber));
+        if (sysUser==null){
+            //查询花城e+是否存在此用户
+            List<HuaChengSysUser> list=iHuaChengSysUserService.selectData("","",phonenumber);
+            HuaChengSysUser huaChengSysUser=null;
+
+            if(list!=null || list.size()>0 )
+            {
+                huaChengSysUser=list.get(0);
+            }
+
+            SysUser newUser = new SysUser();
+            if(huaChengSysUser==null)
+            {
+                newUser.setUserId(Snowflake.getId()+"");
+                newUser.setLoginName(phonenumber);
+                newUser.setUserName(phonenumber.substring(0,3)+"xxxx"+phonenumber.substring(7,11)+"用户");
+                newUser.setUserType("3");
+                newUser.setPhonenumber(phonenumber);
+                newUser.setSex("1");
+                newUser.setCreateTime(LocalDateTime.now());
+                newUser.setUpdateTime(LocalDateTime.now());
+                baseMapper.insertConfig(newUser);
+            }
+            else
+            {
+                newUser.setUserId(huaChengSysUser.getUserId());
+                newUser.setLoginName(huaChengSysUser.getPhone());
+                newUser.setUserName(huaChengSysUser.getNickName());
+                newUser.setUserType("3");
+                newUser.setPhonenumber(huaChengSysUser.getPhone());
+                newUser.setSex(huaChengSysUser.getSex());
+                newUser.setAvatar(huaChengSysUser.getImageUrl());
+                newUser.setCreateTime(LocalDateTime.now());
+                newUser.setUpdateTime(LocalDateTime.now());
+                newUser.setOpenid(huaChengSysUser.getOpenid());
+                baseMapper.insertConfig(newUser);
+            }
+
+            String token = tokenManager.getTokenByUserId(newUser.getUserId());
+//        String token = tokenManager.createToken(user.getUserId(), user.getRoleId());
+            System.out.println("token " + token);
+            if (token == null) {
+                //生成一个token,保存用户登录状态
+                token = tokenManager.createToken(newUser.getUserId(), newUser.getUserId());
+            }
+
+            Map<String, Object> map = new HashMap<>();
+            map.put("token", token);
+            map.put("userId", newUser.getUserId());
+            map.put("userName", newUser.getUserName());
+
+            return ResultData.success(map);
+
+        }
+        else
+        {
+            String token = tokenManager.getTokenByUserId(sysUser.getUserId());
+//        String token = tokenManager.createToken(user.getUserId(), user.getRoleId());
+            System.out.println("token " + token);
+            if (token == null) {
+                //生成一个token,保存用户登录状态
+                token = tokenManager.createToken(sysUser.getUserId(), sysUser.getUserId());
+            }
+
+            sysUser.setLoginDate(LocalDateTime.now());
+            //更新登录时间
+            this.updateConfig(sysUser);
+
+            Map<String, Object> map = new HashMap<>();
+            map.put("token", token);
+            map.put("userId", sysUser.getUserId());
+            map.put("userName", sysUser.getUserName());
+
+            return ResultData.success(map);
+        }
+    }
+
+    @Override
+    public List<SysUser> queryList(Integer userType,String keyWord) {
+        baseMapper.setGroup();
+        return baseMapper.queryList(userType,keyWord);
+    }
+
+    @Override
+    public void setGroup() {
+        baseMapper.setGroup();
+    }
+
+    public  List<String> getDepartmentIds(  List<OrganizationChartEntity> organizationChartEntities,List<String> departmentIds){
+        for (OrganizationChartEntity organizationChart:organizationChartEntities) {
+            departmentIds.add(organizationChart.getId().toString());
+            List<OrganizationChartEntity> organizationChartEntitiesUser = organizationChartMapper.selectList(new QueryWrapper<OrganizationChartEntity>().lambda()
+                    .eq(OrganizationChartEntity::getParentId, organizationChart.getId().toString()));
+            if (organizationChartEntitiesUser!=null)
+                departmentIds=this.getDepartmentIds(organizationChartEntitiesUser,departmentIds);
+
+        }
+        return  departmentIds;
+    }
+
+    @Override
+    public List<SysUser> selectConfigList(IPage<SysUser> page, Integer state,String userType,String userName,List<String> ids,String isDivisionHead) {
+        baseMapper.setGroup();
+        return baseMapper.selectConfigList(page, state,userType,userName,ids,isDivisionHead);
+    }
+
+    @Override
+    public SysUser selectData(String userId,String phonenumber,String loginName) {
+        baseMapper.setGroup();
+        return baseMapper.selectData(userId,phonenumber,loginName);
+    }
+
+
+    /**
+     * 新增聊天记录
+     *
+     * @param config 参数配置信息
+     * @return 结果
+     */
+    public int insertConfig(SysUser config)
+    {
+        return baseMapper.insertConfig(config);
+    }
+
+    /**
+     * 更新聊天记录
+     *
+     * @param config 参数配置信息
+     * @return 结果
+     */
+    public int updateConfig(SysUser config)
+    {
+        return baseMapper.updateConfig(config);
+    }
+
+    /**
+     * 删除聊天记录
+     *
+     * @param id 聊天记录主键id
+     * @return 结果
+     */
+    public int deleteConfigById(String id)
+    {
+        return baseMapper.deleteConfigById(id);
+    }
+
+    @Override
+    public int selectNum(String userType,String userName,List<String> ids,String  isDivisionHead) {
+        return baseMapper.selectNum(userType,userName,ids,isDivisionHead);
+    }
+
+
+
+
+
+
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/service/impl/TransactionEventImpl.java b/flower_city/src/main/java/com/dg/core/service/impl/TransactionEventImpl.java
new file mode 100644
index 0000000..d235426
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/service/impl/TransactionEventImpl.java
@@ -0,0 +1,435 @@
+package com.dg.core.service.impl;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dg.core.db.gen.entity.*;
+import com.dg.core.db.gen.mapper.*;
+import com.dg.core.db.manual.pojo.QueryResults;
+import com.dg.core.db.manual.pojo.RecommendResult;
+import com.dg.core.db.manual.pojo.Search;
+import com.dg.core.service.ITransactionEventService;
+
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import java.io.IOException;
+import java.io.InputStream;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Service
+public class TransactionEventImpl extends ServiceImpl<TransactionEventMapper, TransactionEvent> implements ITransactionEventService {
+
+    @Resource
+    private OrganizationChartMapper organizationChartMapper;
+
+    @Resource
+    private KeywordMapper keywordMapper;
+
+    @Resource
+    private AutomessageTransactionEventInterviewMapper automessageTransactionEventInterviewMapper;
+
+
+    @Resource
+    private GuideRepairOrderMapper guideRepairOrderMapper;
+
+
+    @Resource
+    private  AutomessagePolicyDocumentsMapper automessagePolicyDocumentsMapper;
+
+    @Override
+    public TransactionEvent selectConfigData(String Id, SysUser sysUser) {
+        TransactionEvent transactionEvent = baseMapper.selectConfigData(Id);
+        //如果当前没有登录用户则不增加浏览次数
+        if (sysUser != null) {
+            LocalDateTime startTime = LocalDate.now().atTime(0, 0, 0);
+            LocalDateTime endTime = LocalDate.now().atTime(23, 59, 59);
+            AutomessageTransactionEventInterview automessageTransactionEventInterview = automessageTransactionEventInterviewMapper.selectOne(new QueryWrapper<AutomessageTransactionEventInterview>()
+                    .lambda().eq(AutomessageTransactionEventInterview::getTransactionEventId, Id)
+                    .eq(AutomessageTransactionEventInterview::getUserId, sysUser.getUserId())
+                    .orderByDesc(AutomessageTransactionEventInterview::getInterviewTime)
+                    .last("limit 1"));
+            transactionEvent.setQueryTime(LocalDateTime.now());
+            //判断上次访问时间是不是今天 如果是今天不增加浏览次数
+            if (automessageTransactionEventInterview == null || (!(transactionEvent.getQueryTime().isAfter(startTime) && transactionEvent.getQueryTime().isBefore(endTime)))) {
+                transactionEvent.setBrowseNum(transactionEvent.getBrowseNum() + 1);
+                baseMapper.updateById(transactionEvent);
+                AutomessageTransactionEventInterview automessageTransactionEventInterviewNew =
+                        new AutomessageTransactionEventInterview();
+                automessageTransactionEventInterviewNew.setTransactionEventId(Integer.valueOf(Id));
+                automessageTransactionEventInterviewNew.setUserId(new Long(sysUser.getUserId()));
+                automessageTransactionEventInterviewNew.setInterviewTime(LocalDateTime.now());
+                automessageTransactionEventInterviewMapper.insert(automessageTransactionEventInterviewNew);
+            }
+        }
+        return transactionEvent;
+    }
+
+    @Override
+    public List<TransactionEvent> selectConfigList(IPage<TransactionEvent> page, Integer state,
+                                                   String keyword, String classifyGrade, List<String> ids) {
+        return baseMapper.selectConfigList(page, state, keyword, classifyGrade, ids);
+    }
+
+    @Override
+    public List<TransactionEvent> selectConfigList(String keyword, String classifyGrade, List<String> ids) {
+        return baseMapper.selectConfigList(keyword, classifyGrade, ids);
+    }
+
+    @Override
+    public int insertConfig(TransactionEvent entity) {
+        return baseMapper.insertConfig(entity);
+    }
+
+    @Override
+    public int updateConfig(TransactionEvent entity) {
+        return baseMapper.updateConfig(entity);
+    }
+
+    @Override
+    public int deleteConfigById(String Id) {
+        List<GuideRepairOrder> guideRepairOrders = guideRepairOrderMapper
+                .selectList(new QueryWrapper<GuideRepairOrder>().lambda().eq(GuideRepairOrder::getMatterId, Id));
+        if (guideRepairOrders.size() == 0) {
+            return baseMapper.deleteConfigById(Id);
+        }
+        return 0;
+    }
+
+    @Override
+    public int countNum(String matterAndUser, String classifyGrade, List<String> ids) {
+        return baseMapper.countNum(matterAndUser, classifyGrade, ids);
+    }
+
+    @Override
+    public QueryResults queryMatterNameList(IPage<Search> page, Integer state, Integer recommendSize, String keyWord) {
+        QueryResults queryResults = new QueryResults();
+        List<Search> searches = baseMapper.selectSearch(page, state, keyWord);
+        queryResults.setSearchList(searches);
+        List<Search> searchesAssociate = baseMapper.selectSearchAssociate(page, recommendSize, keyWord);
+        queryResults.setTransactionEventList(searchesAssociate);
+        queryResults.setKeywordEntityList(keywordMapper.selectByName(keyWord));
+        queryResults.setTotal((baseMapper.selectSearch(keyWord).size()) + (baseMapper.selectSearchAssociate(keyWord).size()));
+        List<TransactionEvent> transactionEventEntities = baseMapper.queryMatterNameList(keyWord, null);
+        List<String> list = new ArrayList<>();
+        for (TransactionEvent transactionEvent : transactionEventEntities) {
+            if (transactionEvent.getAssociateNames() != null) {
+                String[] associateNames = transactionEvent.getAssociateNames().split(",");
+                for (String associateName : associateNames) {
+                    list.add(associateName);
+                }
+            }
+        }
+        List<KeywordEntity> keywordEntityList = new ArrayList<>();
+
+        String[] keywords = list.stream().distinct().collect(Collectors.joining(",")).split(",");//去重
+        for (String keyword : keywords) {
+            if (keyword != null && !keyword.equals("")) {
+                KeywordEntity keywordEntity = new KeywordEntity();
+                keywordEntity.setName(keyword);
+                keywordEntityList.add(keywordEntity);
+            }
+        }
+        queryResults.setKeywordAssociationList(keywordEntityList);
+        return queryResults;
+    }
+
+    @Override
+    public QueryResults queryMatterNameList(String keyWord) {
+        QueryResults queryResults = new QueryResults();
+        List<Search> searches = baseMapper.selectSearchList(keyWord);
+        for (Search search : searches) {
+            search.setTransactionEventList(baseMapper.queryMatterNameList(keyWord, search.getClassifyId().toString()));
+        }
+        queryResults.setOrganizationChartEntityList(organizationChartMapper.selectByKeyWord(keyWord));
+        queryResults.setSearchList(searches);
+        List<Search> searchesAssociate = baseMapper.selectSearchAssociateDistinct(keyWord);
+        for (Search search : searchesAssociate) {
+            search.setTransactionEventList(baseMapper.queryAssociateNamesList(keyWord, search.getClassifyId().toString()));
+        }
+        queryResults.setTransactionEventList(searchesAssociate);
+        queryResults.setKeywordEntityList(keywordMapper.selectByName(keyWord));
+        queryResults.setAutomessagePolicyDocuments(automessagePolicyDocumentsMapper.selectConfigList(keyWord,"2",null,null));
+        queryResults.setRegulations(automessagePolicyDocumentsMapper.selectConfigList(keyWord,"1",null,null));
+        return queryResults;
+    }
+
+
+    @Override
+    public RecommendResult smartConsulting(String keyWord) {
+        RecommendResult recommendResult = new RecommendResult();
+        List<KeywordEntity> keywordEntityList = new ArrayList<>();
+        List<TransactionEvent> transactionEventEntities = baseMapper.queryMatterNameList(keyWord, null);
+        List<TransactionEvent> transactionEvents = baseMapper.queryAssociateNamesList(keyWord, null);
+        recommendResult.setTransactionEventList(transactionEventEntities);
+        List<String> list = new ArrayList<>();
+        for (TransactionEvent transactionEvent : transactionEvents) {
+//            直接返回办事指南名称
+            list.add(transactionEvent.getMatterName());
+//            遍历关键词列表 可能后面流程更改会遇到暂时保存代码;
+      /*      if (transactionEvent.getAssociateNames() != null) {
+                String[] associateNames = transactionEvent.getAssociateNames().split(",");
+                for (String associateName : associateNames) {
+                    list.add(associateName);
+                }
+            }*/
+        }
+        String[] keywords = list.stream().distinct().collect(Collectors.joining(",")).split(",");//去重
+        for (String keyword : keywords) {
+            if (keyword != null && !keyword.equals("")) {
+                KeywordEntity keywordEntity = new KeywordEntity();
+                keywordEntity.setName(keyword);
+                keywordEntityList.add(keywordEntity);
+            }
+        }
+        recommendResult.setKeywordEntityList(keywordEntityList);
+        List<OrganizationChartEntity> organizationChartEntities = organizationChartMapper.selectByKeyWord(keyWord);
+        recommendResult.setAutomessagePolicyDocuments(automessagePolicyDocumentsMapper.selectConfigList(keyWord,"2",null,null));
+        recommendResult.setRegulations(automessagePolicyDocumentsMapper.selectConfigList(keyWord,"1",null,null));
+        recommendResult.setOrganizationChartEntityList(organizationChartEntities);
+        return recommendResult;
+    }
+
+    @Override
+    public String selectDataIfExist(String departmentId, String matterName) {
+        return baseMapper.selectDataIfExist(departmentId, matterName);
+    }
+
+    @Override
+    public List<String> selectclassifyId(String classifyId) {
+        return baseMapper.selectclassifyId(classifyId);
+    }
+
+    @Override
+    public List<TransactionEvent> selectClassifyList(List<String> ids) {
+        return baseMapper.selectClassifyList(ids);
+    }
+
+
+    @Override
+    public int countNumByMatterName(String matterName) {
+        return baseMapper.countNumByMatterName(matterName);
+    }
+
+    @Override
+    public List<TransactionEvent> queryByClassifyIdList(String classifyId, Integer departmentId) {
+        return baseMapper.queryByClassifyIdList(classifyId, departmentId);
+    }
+
+    @Override
+    public List<TransactionEvent> queryByClassifyIdList(IPage<TransactionEvent> page, Integer state, String classifyId, Integer departmentId) {
+        return baseMapper.queryByClassifyIdList(page, state, classifyId, departmentId);
+    }
+
+    @Override
+    public List<TransactionEvent> queryByQueryTime() {
+        List<TransactionEvent> transactionEvents = baseMapper.selectList(new QueryWrapper<TransactionEvent>().lambda().orderByDesc(TransactionEvent::getQueryTime));
+        return transactionEvents;
+    }
+
+    @Override
+    public List<TransactionEvent> queryByBrowseNum() {
+        List<TransactionEvent> transactionEvents = baseMapper.selectList(new QueryWrapper<TransactionEvent>().lambda().orderByDesc(TransactionEvent::getBrowseNum));
+        return transactionEvents;
+    }
+
+    @Override
+    public TransactionEvent sumTransactionNum() {
+        return baseMapper.sumTransactionNum();
+    }
+
+    @Override
+    public int countNumByClassifyIdList(String classifyId, Integer departmentId) {
+        return baseMapper.countNumByClassifyIdList(classifyId, departmentId);
+    }
+
+    @Override
+    public List<TransactionEvent> selectList(String keyWord) {
+        if (keyWord != null && keyWord != "") {
+            return baseMapper.selectList(new QueryWrapper<TransactionEvent>().lambda().like(TransactionEvent::getMatterName, keyWord));
+        } else {
+            return baseMapper.selectList(new QueryWrapper<TransactionEvent>().lambda());
+        }
+    }
+
+
+    @Override
+    public Integer batchImport(String fileName, MultipartFile file) {
+        boolean notNull = false;
+        if (!fileName.matches("^.+\\.(?i)(xls)$") && !fileName.matches("^.+\\.(?i)(xlsx)$")) {
+            throw new RuntimeException("选择文件格式不正确,请下载模板上传");
+        }
+        boolean isExcel2003 = true;
+        if (fileName.matches("^.+\\.(?i)(xlsx)$")) {
+            isExcel2003 = false;
+        }
+        InputStream is = null;
+        try {
+            is = file.getInputStream();
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+        Workbook wb = null;
+
+        if (isExcel2003) {
+            try {
+                wb = new HSSFWorkbook(is);
+            } catch (IOException e) {
+                throw new RuntimeException(e);
+            }
+        } else {
+            try {
+                wb = new XSSFWorkbook(is);
+            } catch (IOException e) {
+                throw new RuntimeException(e);
+            }
+        }
+        Integer failNum = 0;//失败数量
+        // 获取excel的sheet页数
+        int numberOfSheets = wb.getNumberOfSheets();
+        for (int j = 0; j < numberOfSheets; j++) {
+            int i = 2;
+            //获取excel字段名称进行比较
+            Sheet sheetAt = wb.getSheetAt(j);
+            if(sheetAt.getRow(2)!=null){
+            if (new DataFormatter().formatCellValue(sheetAt.getRow(1).getCell(1)).length()>=3){
+                i--;
+            }
+            Row row1 = sheetAt.getRow(i);
+            TransactionEvent transactionEvent = baseMapper.selectOne(new QueryWrapper<TransactionEvent>().lambda().eq(TransactionEvent::getMatterName, new DataFormatter().formatCellValue(row1.getCell(1))));
+            boolean isAdd = false;
+            if (transactionEvent == null) {
+                transactionEvent = new TransactionEvent();
+                isAdd = true;
+            }
+            transactionEvent.setMatterName(new DataFormatter().formatCellValue(row1.getCell(1)));
+            Row row2 = sheetAt.getRow(i+1);
+            transactionEvent.setSetGist("<p>" + new DataFormatter().formatCellValue(row2.getCell(1)) + "</p>");
+            Row row3 = sheetAt.getRow(i+2);
+            Row row4 = sheetAt.getRow(i+3);
+            transactionEvent.setBasicInformation("<p> 事项名称:" + new DataFormatter().formatCellValue(row1.getCell(1)) + "<br />"
+                    + new DataFormatter().formatCellValue(row3.getCell(0)) + ":" + new DataFormatter().formatCellValue(row3.getCell(1))+ "<br />"
+                    + new DataFormatter().formatCellValue(row3.getCell(3)) + ":" + new DataFormatter().formatCellValue(row3.getCell(4)) + "<br />"
+                    + new DataFormatter().formatCellValue(row4.getCell(0)) + ":" + new DataFormatter().formatCellValue(row4.getCell(1)) + "</p>");
+             i = i+5;
+            String applicationMaterial = "<p>";
+            while (true) {
+                Row row = sheetAt.getRow(i);
+                if (new DataFormatter().formatCellValue(row.getCell(0)).equals("办理途径、条件和注意事项")) {
+                    i = i + 2;
+                    break;
+                }
+                applicationMaterial = applicationMaterial + "办理区域:" + new DataFormatter().formatCellValue(row.getCell(0)) + "<br />"
+                        + "部门名称:" + new DataFormatter().formatCellValue(row.getCell(1)) + "<br />"
+                        + "咨询电话:" + new DataFormatter().formatCellValue(row.getCell(2)) + "<br />"
+                        + "办公地址:" + new DataFormatter().formatCellValue(row.getCell(3)) + "<br />"
+                        + "办公时间:" + new DataFormatter().formatCellValue(row.getCell(4)) + "<br />";
+                applicationMaterial = applicationMaterial + "<br />";
+                i++;
+            }
+            applicationMaterial = applicationMaterial + "</p>";
+            transactionEvent.setApplicationMaterial(applicationMaterial);
+            String acceptConditions = "<p>";
+            while (true) {
+                Row row = sheetAt.getRow(i);
+                if (new DataFormatter().formatCellValue(row.getCell(0)).equals("(二)网上申报")) {
+                    i = i + 1;
+                    break;
+                }
+                acceptConditions = acceptConditions + new DataFormatter().formatCellValue(row.getCell(0)) + "&nbsp; "
+                        +new DataFormatter().formatCellValue( row.getCell(1)) + "&nbsp; "
+                        + new DataFormatter().formatCellValue(row.getCell(2)) + "&nbsp; "
+                         +new DataFormatter().formatCellValue( row.getCell(3)) + "&nbsp; "
+                        + new DataFormatter().formatCellValue(row.getCell(4)) + "&nbsp; ";
+                acceptConditions = acceptConditions + "<br />";
+                i++;
+            }
+            acceptConditions = acceptConditions + "</p>";
+            transactionEvent.setAcceptConditions(acceptConditions);
+            String rates = "<p>";
+            while (true) {
+                Row row = sheetAt.getRow(i);
+                if (new DataFormatter().formatCellValue(row.getCell(0)).equals("(三)手机移动申报")) {
+                    i = i + 1;
+                    break;
+                }
+                rates = rates + new DataFormatter().formatCellValue(row.getCell(0)) + "&nbsp; "
+                        + new DataFormatter().formatCellValue(row.getCell(1)) + "&nbsp; "
+                        + new DataFormatter().formatCellValue(row.getCell(2)) + "&nbsp; "
+                        +new DataFormatter().formatCellValue( row.getCell(3)) + "&nbsp; "
+                        + new DataFormatter().formatCellValue(row.getCell(4)) + "&nbsp; ";
+                rates = rates + "<br />";
+                i++;
+            }
+            rates = rates + "</p>";
+            transactionEvent.setRates(rates);
+            String transactionArea = "<p>";
+            while (true) {
+                Row row = sheetAt.getRow(i);
+                if (new DataFormatter().formatCellValue(row.getCell(0)).equals("(四)经营许可(备案)事项程序运行图谱(附电子版)")) {
+                    i = i + 1;
+                    break;
+                }
+                transactionArea = transactionArea + new DataFormatter().formatCellValue(row.getCell(0)) + "&nbsp; "
+                        + new DataFormatter().formatCellValue(row.getCell(1)) + "&nbsp; "
+                        + new DataFormatter().formatCellValue(row.getCell(2)) + "&nbsp; "
+                        +new DataFormatter().formatCellValue( row.getCell(3)) + "&nbsp; "
+                        + new DataFormatter().formatCellValue(row.getCell(4)) + "&nbsp; ";
+                transactionArea = transactionArea + "<br />";
+                i++;
+            }
+            transactionArea = transactionArea + "</p>";
+            transactionEvent.setTransactionArea(transactionArea);
+            String handlingProcedures = "<p>";
+            while (true) {
+                Row row = sheetAt.getRow(i);
+                if (new DataFormatter().formatCellValue(row.getCell(0)).equals("(五)经营许可(备案)事项实施内容一览表(附电子版)")) {
+                    i = i + 1;
+                    break;
+                }
+                handlingProcedures = handlingProcedures + new DataFormatter().formatCellValue(row.getCell(0)) + "&nbsp; "
+                        + new DataFormatter().formatCellValue(row.getCell(1)) + "&nbsp; "
+                        + new DataFormatter().formatCellValue(row.getCell(2)) + "&nbsp; "
+                        +new DataFormatter().formatCellValue( row.getCell(3)) + "&nbsp; "
+                        + new DataFormatter().formatCellValue(row.getCell(4)) + "&nbsp; ";
+                handlingProcedures = handlingProcedures + "<br />";
+                i++;
+            }
+            handlingProcedures = handlingProcedures + "</p>";
+            transactionEvent.setHandlingProcedures(handlingProcedures);
+            int ans;
+            if (isAdd) {
+                ans = baseMapper.insert(transactionEvent);
+            } else {
+                ans = baseMapper.updateById(transactionEvent);
+            }
+            if (ans <= 0) {
+                failNum++;
+            }
+            }
+
+        }
+        if (failNum == 0) {//
+            return 3;//全部导入成功
+        } else if (failNum < numberOfSheets) {
+            return 2;//部分导入成功
+        } else if (failNum.equals(numberOfSheets)) {
+            return 0;//导入失败
+        }
+        return 0;
+    }
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/task/SendWsListener.java b/flower_city/src/main/java/com/dg/core/task/SendWsListener.java
new file mode 100644
index 0000000..492c6ef
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/task/SendWsListener.java
@@ -0,0 +1,116 @@
+package com.dg.core.task;
+
+import com.dg.core.service.IGuideRepairOrderService;
+import com.dg.core.util.TestDate;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.data.redis.core.RedisTemplate;
+
+import javax.annotation.Resource;
+import javax.servlet.ServletContextEvent;
+import javax.servlet.ServletContextListener;
+import javax.servlet.annotation.WebListener;
+import java.util.*;
+
+@WebListener
+@Slf4j
+public class SendWsListener implements ServletContextListener {
+
+    @Resource
+    private IGuideRepairOrderService iGuideRepairOrderService;
+
+    @Resource
+    RedisTemplate<String, Object> redisTemplate;
+
+    @Override
+    public void contextDestroyed(ServletContextEvent arg0) {
+        log.info("定时发送Xml信息监听--已关闭!");
+    }
+
+    @Override
+    public void contextInitialized(ServletContextEvent arg0) {
+        Calendar calendar = Calendar.getInstance();
+        int year = calendar.get(Calendar.YEAR);
+        int month = calendar.get(Calendar.MONTH);
+        //设置24小时制度,Calendar.HOUR是12小时制度
+        int day = calendar.get(Calendar.DAY_OF_MONTH);
+        calendar.set(year, month, day, 8, 00, 00);
+        // 当天8点(默认执行时间)
+        Date defaultdate = calendar.getTime();
+        Date sendDate = null;
+        if (defaultdate.before(new Date())) {
+            // 若当前时间超过了defaultdate时间,当天不再执行,则将执行时间sendDate改为明天8点
+            calendar.add(Calendar.DATE, 1);
+            sendDate = calendar.getTime();
+        }else {
+            // 若当前时间没有超过defaultdate时间,则将执行时间sendDate改为defaultdate
+            sendDate = defaultdate;
+        }
+
+
+        /**
+         * ----------------每刻任务 ----------------
+         * 启动服务器后,若此时时间没过8点,等待。到了8点自动执行一次,15分钟后再执行一次,周而复始
+         * 启动服务器后,若此时时间超过8点,会立刻执行一次,等到15分钟后再次执行一次,周而复始 到了第二天,不会再判断是否是8点,这个开始时间,只会判断一次而已
+         */
+        Timer qTimer = new Timer();
+        qTimer.schedule(new TimerTask() {
+
+            @Override
+            public void run() {
+                log.info("每刻任务已执行");
+                //定时更新超时状态
+                iGuideRepairOrderService.pushOvertimeGuideRepairOrder();
+                //定时更新未评价的单据评价状态
+                iGuideRepairOrderService.updateEvaluate();
+                //定时发送工单提醒信息
+                iGuideRepairOrderService.pushNoticeTimeRepairOrder();
+                TestDate td = new TestDate();
+                Map weather = td.getWeather("510400");
+                redisTemplate.opsForValue().set("weather",weather);
+                // TODO 写你的逻辑
+            }
+        }, defaultdate, 1 * 60 * 1000);// 定时每15分钟
+        log.info("每刻定时发送Xml信息监听--已启动!");
+
+        /**
+         * ----------------每日任务 ----------------
+         * 启动服务器后,若此时时间没过8点,等待。到了8点自动执行一次,24小时后(第二天8点)再执行一次,周而复始
+         * 启动服务器后,若此时时间已经超过8点,则等到24小时后(第二天8点)才执行一次,周而复始
+         */
+//        Timer dTimer = new Timer();
+//        dTimer.schedule(new TimerTask() {
+//
+//            @Override
+//            public void run() {
+//                System.out.println("每日任务已经执行");
+//                // TODO 写你的逻辑
+//            }
+//        }, sendDate, 24 * 60 * 60 * 1000);// 定时24小时:24 * 60 * 60 * 1000
+//        System.out.println("每日定时发送Xml信息监听--已启动!");
+
+        /**
+         * ----------------每月任务 ----------------
+         * 启动服务器后,若此时时间没过8点,等待。到了8点自动执行判断是否是当前月份的1号,若是则执行一次,
+         * 24小时后(第二天8点)再执行一次判断(每月1号以后后的29天或30天后才会是下月1号,再执行一次),周而复始 启动服务器后,若此时时间已经超过8点,会立刻执行一次,等到下个月1号再次执行一次,周而复始
+         */
+//        Timer mTimer = new Timer();
+//        mTimer.schedule(new TimerTask() {
+//
+//            @Override
+//            public void run() {
+//                Calendar c = Calendar.getInstance();
+//                int day = c.get(Calendar.DAY_OF_MONTH);
+//                System.out.println("月任务 判断中");
+//                if (day == 1) {
+//                    // 每天执行,若为每月1号才执行
+//                    System.out.println("月任务执行已执行");
+//                    // TODO 写你的逻辑
+//                }
+//
+//            }
+//        }, sendDate, 24 * 60 * 60 * 1000);// 每天执行一次检查
+//
+//        System.out.println("每月定时发送Xml信息监听--已启动!");
+
+    }
+}
\ No newline at end of file
diff --git a/flower_city/src/main/java/com/dg/core/task/SwaggerConfig.java b/flower_city/src/main/java/com/dg/core/task/SwaggerConfig.java
new file mode 100644
index 0000000..8ee1a1f
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/task/SwaggerConfig.java
@@ -0,0 +1,51 @@
+package com.dg.core.task;
+
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.env.Environment;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.service.Contact;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+import java.util.ArrayList;
+
+@Configuration
+@EnableSwagger2
+public class SwaggerConfig {
+
+    //配置了Swagger的Docket的bean实例
+    @Bean
+    public Docket docket(Environment environment){
+
+        return new Docket(DocumentationType.SWAGGER_2)
+                .apiInfo(apiInfo())
+                .enable(true) //配置是否启用Swagger,如果是false,在浏览器将无法访问
+                .select()// 通过.select()方法,去配置扫描接口,RequestHandlerSelectors配置如何扫描接口
+                .apis(RequestHandlerSelectors.basePackage("com.dg.core"))
+                // 配置如何通过path过滤,即这里只扫描请求以/longdi开头的接口
+//                .paths(PathSelectors.ant("/longdi/**"))
+                .build();
+
+    }
+
+
+    //配置文档信息
+    private ApiInfo apiInfo() {
+        Contact contact = new Contact("花城e+", "http://localhost:8181/swagger-ui/index.html", "项目");
+        return new ApiInfo(
+                "花城e+接口文档", // 标题
+                "花城e+接口文档", // 描述
+                "v1.0", // 版本
+                "http://localhost:8181/swagger-ui/index.html", // 组织链接
+                contact, // 联系人信息
+                "Apach 2.0 许可", // 许可
+                "许可链接", // 许可连接
+                new ArrayList<>()// 扩展
+        );
+    }
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/util/DateUtils.java b/flower_city/src/main/java/com/dg/core/util/DateUtils.java
new file mode 100644
index 0000000..9441f30
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/util/DateUtils.java
@@ -0,0 +1,222 @@
+package com.dg.core.util;
+
+import org.apache.commons.lang3.time.DateFormatUtils;
+
+import java.lang.management.ManagementFactory;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.time.*;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 时间工具类
+ *
+ * @author ruoyi
+ */
+public class DateUtils extends org.apache.commons.lang3.time.DateUtils
+{
+    public static String YYYY = "yyyy";
+
+    public static String YYYY_MM = "yyyy-MM";
+
+    public static String YYYY_MM_DD = "yyyy-MM-dd";
+
+    public static String YYYYMMDDHHMMSS = "yyyyMMddHHmmss";
+
+    public static String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";
+
+    private static String[] parsePatterns = {
+            "yyyy-MM-dd", "yyyy-MM-dd HH:mm:ss", "yyyy-MM-dd HH:mm", "yyyy-MM",
+            "yyyy/MM/dd", "yyyy/MM/dd HH:mm:ss", "yyyy/MM/dd HH:mm", "yyyy/MM",
+            "yyyy.MM.dd", "yyyy.MM.dd HH:mm:ss", "yyyy.MM.dd HH:mm", "yyyy.MM"};
+
+    /**
+     * 获取当前Date型日期
+     *
+     * @return Date() 当前日期
+     */
+    public static Date getNowDate()
+    {
+        return new Date();
+    }
+
+    /**
+     * 获取当前日期, 默认格式为yyyy-MM-dd
+     *
+     * @return String
+     */
+    public static String getDate()
+    {
+        return dateTimeNow(YYYY_MM_DD);
+    }
+
+    public static final String getTime()
+    {
+        return dateTimeNow(YYYY_MM_DD_HH_MM_SS);
+    }
+
+    public static final String dateTimeNow()
+    {
+        return dateTimeNow(YYYYMMDDHHMMSS);
+    }
+
+    public static final String dateTimeNow(final String format)
+    {
+        return parseDateToStr(format, new Date());
+    }
+
+    public static final String dateTime(final Date date)
+    {
+        return parseDateToStr(YYYY_MM_DD, date);
+    }
+
+    public static final String parseDateToStr(final String format, final Date date)
+    {
+        return new SimpleDateFormat(format).format(date);
+    }
+
+    public static final Date dateTime(final String format, final String ts)
+    {
+        try
+        {
+            return new SimpleDateFormat(format).parse(ts);
+        }
+        catch (ParseException e)
+        {
+            throw new RuntimeException(e);
+        }
+    }
+
+    /**
+     * 日期路径 即年/月/日 如2018/08/08
+     */
+    public static final String datePath()
+    {
+        Date now = new Date();
+        return DateFormatUtils.format(now, "yyyy/MM/dd");
+    }
+
+    /**
+     * 日期路径 即年/月/日 如20180808
+     */
+    public static final String dateTime()
+    {
+        Date now = new Date();
+        return DateFormatUtils.format(now, "yyyyMMdd");
+    }
+
+    /**
+     * 日期型字符串转化为日期 格式
+     */
+    public static Date parseDate(Object str)
+    {
+        if (str == null)
+        {
+            return null;
+        }
+        try
+        {
+            return parseDate(str.toString(), parsePatterns);
+        }
+        catch (ParseException e)
+        {
+            return null;
+        }
+    }
+
+    /**
+     * 获取服务器启动时间
+     */
+    public static Date getServerStartDate()
+    {
+        long time = ManagementFactory.getRuntimeMXBean().getStartTime();
+        return new Date(time);
+    }
+
+    /**
+     * 计算相差天数
+     */
+    public static int differentDaysByMillisecond(Date date1, Date date2)
+    {
+        return Math.abs((int) ((date2.getTime() - date1.getTime()) / (1000 * 3600 * 24)));
+    }
+
+    /**
+     * 计算两个时间差
+     */
+    public static String getDatePoor(Date endDate, Date nowDate)
+    {
+        long nd = 1000 * 24 * 60 * 60;
+        long nh = 1000 * 60 * 60;
+        long nm = 1000 * 60;
+        // long ns = 1000;
+        // 获得两个时间的毫秒时间差异
+        long diff = endDate.getTime() - nowDate.getTime();
+        // 计算差多少天
+        long day = diff / nd;
+        // 计算差多少小时
+        long hour = diff % nd / nh;
+        // 计算差多少分钟
+        long min = diff % nd % nh / nm;
+        // 计算差多少秒//输出结果
+        // long sec = diff % nd % nh % nm / ns;
+        return day + "天" + hour + "小时" + min + "分钟";
+    }
+
+    /**
+     * 增加 LocalDateTime ==> Date
+     */
+    public static Date toDate(LocalDateTime temporalAccessor)
+    {
+        ZonedDateTime zdt = temporalAccessor.atZone(ZoneId.systemDefault());
+        return Date.from(zdt.toInstant());
+    }
+
+    /**
+     * 增加 LocalDate ==> Date
+     */
+    public static Date toDate(LocalDate temporalAccessor)
+    {
+        LocalDateTime localDateTime = LocalDateTime.of(temporalAccessor, LocalTime.of(0, 0, 0));
+        ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault());
+        return Date.from(zdt.toInstant());
+    }
+
+    /**
+     * 获取当前日期前(后)x天的日期
+     *
+     * @param day
+     *            天数(如果day数为负数,说明是此日期前的天数)
+     * @param sdf 日期格式
+     */
+    public static String getBeforNumDay(SimpleDateFormat sdf,int day) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(new Date());
+        calendar.add(Calendar.DATE, day);
+        return sdf.format(calendar.getTime());
+    }
+
+    /**
+     * 获取当前日期前(后)n天的日期集合
+     * @param sdf   时间格式化字符
+     * @param dayNum    前(后)的天数
+     * @param isAround  1.前 2.后
+     * @return  当前日期前(后)n天的日期集合
+     */
+    public static List<String> getLastDayDateList(SimpleDateFormat sdf,Integer dayNum,Integer isAround){
+        List<String> dateList = new ArrayList<>();
+        for (int i = dayNum; i > 0; i--) {
+            String date = "";
+            if(isAround.equals(2)){
+                date = getBeforNumDay(sdf,i);
+            }else{
+                date = getBeforNumDay(sdf,-i);
+            }
+            dateList.add(date);
+        }
+        return dateList;
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/util/IdUtils.java b/flower_city/src/main/java/com/dg/core/util/IdUtils.java
new file mode 100644
index 0000000..468fc38
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/util/IdUtils.java
@@ -0,0 +1,49 @@
+package com.dg.core.util;
+
+/**
+ * ID生成器工具类
+ * 
+ * @author ruoyi
+ */
+public class IdUtils
+{
+    /**
+     * 获取随机UUID
+     * 
+     * @return 随机UUID
+     */
+    public static String randomUUID()
+    {
+        return UUID.randomUUID().toString();
+    }
+
+    /**
+     * 简化的UUID,去掉了横线
+     * 
+     * @return 简化的UUID,去掉了横线
+     */
+    public static String simpleUUID()
+    {
+        return UUID.randomUUID().toString(true);
+    }
+
+    /**
+     * 获取随机UUID,使用性能更好的ThreadLocalRandom生成UUID
+     * 
+     * @return 随机UUID
+     */
+    public static String fastUUID()
+    {
+        return UUID.fastUUID().toString();
+    }
+
+    /**
+     * 简化的UUID,去掉了横线,使用性能更好的ThreadLocalRandom生成UUID
+     * 
+     * @return 简化的UUID,去掉了横线
+     */
+    public static String fastSimpleUUID()
+    {
+        return UUID.fastUUID().toString(true);
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/util/MyBatisPlusConfig.java b/flower_city/src/main/java/com/dg/core/util/MyBatisPlusConfig.java
new file mode 100644
index 0000000..8d378c1
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/util/MyBatisPlusConfig.java
@@ -0,0 +1,22 @@
+package com.dg.core.util;
+
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+import org.springframework.context.annotation.Bean;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+@MapperScan("com.zyd.mapper")
+public class MyBatisPlusConfig {
+    /**
+     * 分页插件
+     */
+    @Bean
+    public MybatisPlusInterceptor mybatisPlusInterceptor() {
+        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
+        return interceptor;
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/util/MyUtil.java b/flower_city/src/main/java/com/dg/core/util/MyUtil.java
new file mode 100644
index 0000000..2bb11b2
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/util/MyUtil.java
@@ -0,0 +1,8 @@
+package com.dg.core.util;
+
+
+public class MyUtil {
+
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/util/PermissionUtil.java b/flower_city/src/main/java/com/dg/core/util/PermissionUtil.java
new file mode 100644
index 0000000..239e068
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/util/PermissionUtil.java
@@ -0,0 +1,102 @@
+package com.dg.core.util;
+
+import com.dg.core.db.gen.entity.SysUser;
+import com.dg.core.service.IOrganizationChartService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+@RestController
+public class PermissionUtil
+{
+
+    public static List<String> getPermission(SysUser sysUser,IOrganizationChartService iOrganizationChartService)
+    {
+        if (StringUtils.equals("3", sysUser.getUserType())) {
+            if (StringUtils.isEmpty(sysUser.getDataPermission())) {
+                return null;
+            }
+            else
+            {
+                List<String> ids = new ArrayList<>();
+                if (sysUser.getDataPermission().indexOf(",")>0)
+                {
+                    String[] idl=sysUser.getDataPermission().split(",");
+                    Collections.addAll(ids,idl);
+                }
+                else
+                {
+                    ids.add(sysUser.getDataPermission());
+                }
+                return ids;
+            }
+        } else if (StringUtils.equals("4", sysUser.getUserType())) {
+            if (StringUtils.isEmpty(sysUser.getDataPermission())) {
+                return null;
+            }
+            else
+            {
+                List<String> ids = new ArrayList<>();
+                if (sysUser.getDataPermission().indexOf(",")>0)
+                {
+                    String[] idl=sysUser.getDataPermission().split(",");
+                    Collections.addAll(ids,idl);
+                }
+                else
+                {
+                    ids.add(sysUser.getDataPermission());
+                }
+                return ids;
+            }
+        } else if(StringUtils.equals("2", sysUser.getUserType()))
+        {
+            //导办人员
+            List<String> ids=iOrganizationChartService.getIds(sysUser.getDepartmentId());
+//            List<String> ids=getStairDepartment(sysUser,iOrganizationChartService);
+            return ids;
+        }
+        else if(StringUtils.equals("1", sysUser.getUserType()))
+        {
+            //管理员
+//            List<String> ids=iOrganizationChartService.getIds("");
+            List<String> ids=null;
+            return ids;
+        }
+        else
+        {
+            return null;
+        }
+    }
+
+
+    /**
+     * 通过部门id 获取一级部门下的全部子部门以及一级部门
+     * @param sysUser
+     * @param iOrganizationChartService
+     * @return
+     */
+    public static List<String> getStairDepartment(SysUser sysUser,IOrganizationChartService iOrganizationChartService)
+    {
+        if(StringUtils.equals("1", sysUser.getUserType()))
+        {
+            //管理员
+            List<String> ids=null;
+            return ids;
+        }
+        else
+        {
+            //获取一级部门id
+            String stairId= iOrganizationChartService.getStairId(sysUser.getDepartmentId());
+            List<String> ids=iOrganizationChartService.getIds(stairId);
+            return ids;
+        }
+    }
+
+
+
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/util/SmsUtil.java b/flower_city/src/main/java/com/dg/core/util/SmsUtil.java
new file mode 100644
index 0000000..f8b5199
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/util/SmsUtil.java
@@ -0,0 +1,441 @@
+package com.dg.core.util;
+
+import com.alibaba.fastjson.JSONObject;
+import com.aliyuncs.CommonRequest;
+import com.aliyuncs.CommonResponse;
+import com.aliyuncs.DefaultAcsClient;
+import com.aliyuncs.IAcsClient;
+import com.aliyuncs.exceptions.ClientException;
+import com.aliyuncs.http.MethodType;
+import com.aliyuncs.profile.DefaultProfile;
+import com.dg.core.AliyunConfig;
+import com.dg.core.ResultData;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.squareup.okhttp.OkHttpClient;
+import com.squareup.okhttp.Request;
+import com.squareup.okhttp.Response;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.io.IOException;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Random;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * 阿里云短信工具类
+ */
+@Component
+public class SmsUtil {
+
+    private static final Logger LOGGER = LoggerFactory.getLogger(SmsUtil.class);
+
+    // 注入阿里云配置
+    @Resource
+    AliyunConfig aliyunConfig;
+
+    // 注入redisTemplate
+    @Resource
+    RedisTemplate<String, Object> redisTemplate;
+
+    private  String LoginName="DSC1210052";
+
+    private  String Pwd="pzhsjj@123";
+
+    private  String FeeType="2";
+
+    /**
+     * 发送短信登录验证码
+     *
+     * @param tel
+     *            电话
+     */
+    public ResultData<Object> sendSms(String tel) {
+        //cn-hangzhou 是阿里定义的签名固定值。填写阿里云申请短信签名的key和secret值
+        DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", aliyunConfig.getKey(), aliyunConfig.getScrect());
+        /*阿里云提供的短信发送api的近期的相关代码,代码以最新的阿里api提供为准*/
+        IAcsClient client = new DefaultAcsClient(profile);
+        CommonRequest request = new CommonRequest();
+        request.setSysMethod(MethodType.POST);
+        request.setSysDomain("dysmsapi.aliyuncs.com");
+        request.setSysVersion("2017-05-25");
+        request.setSysAction("SendSms");
+        request.putQueryParameter("RegionId", "cn-hangzhou");
+        //  接收人电话
+        request.putQueryParameter("PhoneNumbers", tel);
+        //  短信签名
+        request.putQueryParameter("SignName", "集慧科技");
+        //  短信模板
+        request.putQueryParameter("TemplateCode", aliyunConfig.getTemplateCode());
+        Random rd = new Random();
+        int code = rd.nextInt(900000) + 100000;
+        //  短信内容
+        request.putQueryParameter("TemplateParam", "{code:" + code + "}");
+        //  获取短信发送的响应结果
+        try {
+            CommonResponse rs = client.getCommonResponse(request);
+            LOGGER.debug(rs.getData().toString());
+            // 把json格式的字符串装换成java的map的数据类型
+            ObjectMapper mapper = new ObjectMapper();
+            try {
+                HashMap<String, Object> m = mapper.readValue(rs.getData().toString(), HashMap.class);
+                if (m.get("Message").equals("OK")) {
+                    redisTemplate.opsForValue().set(tel, code + "", 5, TimeUnit.MINUTES);
+                    return  ResultData.success("短信发送成功!");
+                }
+            } catch (JsonProcessingException e) {
+                e.printStackTrace();
+                return ResultData.error("短信发送失败");
+            }
+        } catch (ClientException e) {
+            e.printStackTrace();
+            return ResultData.error("短信发送失败");
+        }
+        return ResultData.error("短信发送失败");
+    }
+
+    /**
+     * 发送短信登录验证码(电信平台)
+     *
+     * @param tel
+     *            电话
+     */
+
+    public ResultData sendSmsNew(String tel) {
+        String url =
+                "https://dxsdk.028lk.com:8082/Api/SendSms?"+"LoginName="+LoginName+"&Pwd="+Pwd+"&FeeType="+FeeType+"&Mobile="+tel+"&Content=";
+        Random rd = new Random();
+        int code = rd.nextInt(900000) + 100000;
+        String content="您的验证码为:"+code+",用于手机验证,15分钟内有效,请勿泄露于他人!";
+        url=url+content;
+        OkHttpClient client = new OkHttpClient();
+        Response response;
+        //解密数据
+        String rsa = null;
+        Request request = new Request.Builder()
+                .url(url)
+                .get()
+                .addHeader("Content-Type", "application/x-www-form-urlencoded")
+                .build();
+        try {
+            response = client.newCall(request).execute();
+            redisTemplate.opsForValue().set(tel, code + "", 5, TimeUnit.MINUTES);
+//            rsa = response.body().string().split("|")[0];
+              rsa   = response.message();
+              if (!rsa.equals("OK")){
+                  return ResultData.success("短信发送失败");
+              }
+        } catch (IOException e) {
+            e.printStackTrace();
+            return ResultData.success("短信发送失败");
+        }
+        return ResultData.success("短信发送成功");
+    }
+
+    /**
+     * 发送工单超时短信
+     *
+     * @param tel
+     *            电话
+     * @param name
+     *            工单名
+     */
+    public ResultData<Object> sendSmsOvertime(String tel,String name) {
+        //cn-hangzhou 是阿里定义的签名固定值。填写阿里云申请短信签名的key和secret值
+        DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", aliyunConfig.getKey(), aliyunConfig.getScrect());
+        /*阿里云提供的短信发送api的近期的相关代码,代码以最新的阿里api提供为准*/
+        IAcsClient client = new DefaultAcsClient(profile);
+        CommonRequest request = new CommonRequest();
+        request.setSysMethod(MethodType.POST);
+        request.setSysDomain("dysmsapi.aliyuncs.com");
+        request.setSysVersion("2017-05-25");
+        request.setSysAction("SendSms");
+        request.putQueryParameter("RegionId", "cn-hangzhou");
+        //  接收人电话
+        request.putQueryParameter("PhoneNumbers", tel);
+        //  短信签名
+        request.putQueryParameter("SignName", "集慧科技");
+        //  短信模板
+        request.putQueryParameter("TemplateCode", aliyunConfig.getTemplateCodeOvertime());
+        Random rd = new Random();
+        //  短信内容
+        request.putQueryParameter("TemplateParam", "{name:'" + name + "'}");
+        //  获取短信发送的响应结果
+        try {
+            CommonResponse rs = client.getCommonResponse(request);
+            LOGGER.debug(rs.getData().toString());
+            // 把json格式的字符串装换成java的map的数据类型
+            ObjectMapper mapper = new ObjectMapper();
+            try {
+                HashMap<String, Object> m = mapper.readValue(rs.getData().toString(), HashMap.class);
+                if (m.get("Message").equals("OK")) {
+                     return  ResultData.success("短信发送成功!");
+                }
+            } catch (JsonProcessingException e) {
+                e.printStackTrace();
+                return ResultData.error("短信发送失败");
+            }
+        } catch (ClientException e) {
+            e.printStackTrace();
+            return ResultData.error("短信发送失败");
+        }
+        return ResultData.error("短信发送失败");
+    }
+
+
+    /**
+     * 发送工单超时短信(电信)
+     *
+     * @param tel
+     *            电话
+     * @param name
+     *            工单名
+     */
+    public ResultData<Object> sendSmsOvertimeNew(String tel,String name) {
+        String url =
+                "https://dxsdk.028lk.com:8082/Api/SendSms?"+"LoginName="+LoginName+"&Pwd="+Pwd+"&FeeType="+FeeType+"&Mobile="+tel+"&Content=";
+        Random rd = new Random();
+        String content=name+"的导办工单超时未处理,请及时通知!";
+        url=url+content;
+        OkHttpClient client = new OkHttpClient();
+        Response response;
+        //解密数据
+        String rsa = null;
+        Request request = new Request.Builder()
+                .url(url)
+                .get()
+                .addHeader("Content-Type", "application/x-www-form-urlencoded")
+                .build();
+        try {
+            response = client.newCall(request).execute();
+            rsa   = response.message();
+            if (!rsa.equals("OK")){
+                return ResultData.success("短信发送失败");
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+            return ResultData.success("短信发送失败");
+        }
+        return ResultData.success("短信发送成功");
+    }
+
+    /**
+     * 发送工单完成短信
+     *
+     * @param tel
+     *            电话
+     * @param name
+     *            工单名
+     */
+    public ResultData<Object> sendSmsComplete(String tel,String name) {
+        //cn-hangzhou 是阿里定义的签名固定值。填写阿里云申请短信签名的key和secret值
+        DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", aliyunConfig.getKey(), aliyunConfig.getScrect());
+        /*阿里云提供的短信发送api的近期的相关代码,代码以最新的阿里api提供为准*/
+        IAcsClient client = new DefaultAcsClient(profile);
+        CommonRequest request = new CommonRequest();
+        request.setSysMethod(MethodType.POST);
+        request.setSysDomain("dysmsapi.aliyuncs.com");
+        request.setSysVersion("2017-05-25");
+        request.setSysAction("SendSms");
+        request.putQueryParameter("RegionId", "cn-hangzhou");
+        //  接收人电话
+        request.putQueryParameter("PhoneNumbers", tel);
+        //  短信签名
+        request.putQueryParameter("SignName", "集慧科技");
+        //  短信模板
+        request.putQueryParameter("TemplateCode", aliyunConfig.getTemplateCodeComplete());
+        Random rd = new Random();
+        //  短信内容
+        request.putQueryParameter("TemplateParam", "{name:'" + name + "'}");
+        //  获取短信发送的响应结果
+        try {
+            CommonResponse rs = client.getCommonResponse(request);
+            LOGGER.debug(rs.getData().toString());
+            // 把json格式的字符串装换成java的map的数据类型
+            ObjectMapper mapper = new ObjectMapper();
+            try {
+                HashMap<String, Object> m = mapper.readValue(rs.getData().toString(), HashMap.class);
+                if (m.get("Message").equals("OK")) {
+                    return  ResultData.success("短信发送成功!");
+                }
+            } catch (JsonProcessingException e) {
+                e.printStackTrace();
+                return ResultData.error("短信发送失败");
+            }
+        } catch (ClientException e) {
+            e.printStackTrace();
+            return ResultData.error("短信发送失败");
+        }
+        return ResultData.error("短信发送失败");
+    }
+
+
+    /**
+     * 发送工单完成短信
+     *
+     * @param tel
+     *            电话
+     * @param name
+     *            工单名
+     */
+    public ResultData<Object> sendSmsCompleteNew(String tel,String name) {
+        String url =
+                "https://dxsdk.028lk.com:8082/Api/SendSms?"+"LoginName="+LoginName+"&Pwd="+Pwd+"&FeeType="+FeeType+"&Mobile="+tel+"&Content=";
+        Random rd = new Random();
+        String content="您的"+name+"导办工单已由工作人员处理完成,请通过个人中心-我的申请导办查询。";
+        url=url+content;
+        OkHttpClient client = new OkHttpClient();
+        Response response;
+        //解密数据
+        String rsa = null;
+        Request request = new Request.Builder()
+                .url(url)
+                .get()
+                .addHeader("Content-Type", "application/x-www-form-urlencoded")
+                .build();
+        try {
+            response = client.newCall(request).execute();
+            rsa   = response.message();
+            if (!rsa.equals("OK")){
+                return ResultData.success("短信发送失败");
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+            return ResultData.success("短信发送失败");
+        }
+        return ResultData.success("短信发送成功");
+    }
+
+
+    /**
+     * 发送工单提交短信
+     *
+     * @param tel
+     *            电话
+     * @param name
+     *            工单名
+     */
+    public ResultData<Object> sendSmsSubmit(String tel,String name) {
+        //cn-hangzhou 是阿里定义的签名固定值。填写阿里云申请短信签名的key和secret值
+        DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", aliyunConfig.getKey(), aliyunConfig.getScrect());
+        /*阿里云提供的短信发送api的近期的相关代码,代码以最新的阿里api提供为准*/
+        IAcsClient client = new DefaultAcsClient(profile);
+        CommonRequest request = new CommonRequest();
+        request.setSysMethod(MethodType.POST);
+        request.setSysDomain("dysmsapi.aliyuncs.com");
+        request.setSysVersion("2017-05-25");
+        request.setSysAction("SendSms");
+        request.putQueryParameter("RegionId", "cn-hangzhou");
+        //  接收人电话
+        request.putQueryParameter("PhoneNumbers", tel);
+        //  短信签名
+        request.putQueryParameter("SignName", "集慧科技");
+        //  短信模板
+        request.putQueryParameter("TemplateCode", aliyunConfig.getTemplateCodeSubmit());
+        Random rd = new Random();
+        //  短信内容
+        request.putQueryParameter("TemplateParam", "{name:'" + name + "'}");
+        //  获取短信发送的响应结果
+        try {
+            CommonResponse rs = client.getCommonResponse(request);
+            LOGGER.debug(rs.getData().toString());
+            // 把json格式的字符串装换成java的map的数据类型
+            ObjectMapper mapper = new ObjectMapper();
+            try {
+                HashMap<String, Object> m = mapper.readValue(rs.getData().toString(), HashMap.class);
+                if (m.get("Message").equals("OK")) {
+                    return  ResultData.success("短信发送成功!");
+                }
+            } catch (JsonProcessingException e) {
+                e.printStackTrace();
+                return ResultData.error("短信发送失败");
+            }
+        } catch (ClientException e) {
+            e.printStackTrace();
+            return ResultData.error("短信发送失败");
+        }
+        return ResultData.error("短信发送失败");
+    }
+
+
+    /**
+     * 发送工单提交短信(电信平台)
+     *
+     * @param tel
+     *            电话
+     * @param name
+     *            工单名
+     */
+    public ResultData<Object> sendSmsSubmitNew(String tel,String name) {
+        String url =
+                "https://dxsdk.028lk.com:8082/Api/SendSms?"+"LoginName="+LoginName+"&Pwd="+Pwd+"&FeeType="+FeeType+"&Mobile="+tel+"&Content=";
+        Random rd = new Random();
+        String content="您在"+ LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) +"收到新的导办工单,请"+name+"尽快处理。";
+        url=url+content;
+        OkHttpClient client = new OkHttpClient();
+        Response response;
+        //解密数据
+        String rsa = null;
+        Request request = new Request.Builder()
+                .url(url)
+                .get()
+                .addHeader("Content-Type", "application/x-www-form-urlencoded")
+                .build();
+        try {
+            response = client.newCall(request).execute();
+            rsa   = response.message();
+            if (!rsa.equals("OK")){
+                return ResultData.success("短信发送失败");
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+            return ResultData.success("短信发送失败");
+        }
+        return ResultData.success("短信发送成功");
+    }
+
+
+    /**
+     * 发送工单提交短信(电信平台)
+     *
+     * @param tel
+     *            电话
+     * @param name
+     *            工单名
+     */
+    public ResultData<Object> sendSmsOvertimeRemind(String tel,String name) {
+        String url =
+                "https://dxsdk.028lk.com:8082/Api/SendSms?"+"LoginName="+LoginName+"&Pwd="+Pwd+"&FeeType="+FeeType+"&Mobile="+tel+"&Content=";
+        Random rd = new Random();
+        String content="您的待处理导办工单已超时,请 "+name+"尽快处理。";
+        url=url+content;
+        OkHttpClient client = new OkHttpClient();
+        Response response;
+        //解密数据
+        String rsa = null;
+        Request request = new Request.Builder()
+                .url(url)
+                .get()
+                .addHeader("Content-Type", "application/x-www-form-urlencoded")
+                .build();
+        try {
+            response = client.newCall(request).execute();
+            rsa   = response.message();
+            if (!rsa.equals("OK")){
+                return ResultData.success("短信发送失败");
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+            return ResultData.success("短信发送失败");
+        }
+        return ResultData.success("短信发送成功");
+    }
+}
\ No newline at end of file
diff --git a/flower_city/src/main/java/com/dg/core/util/Snowflake.java b/flower_city/src/main/java/com/dg/core/util/Snowflake.java
new file mode 100644
index 0000000..061cf6c
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/util/Snowflake.java
@@ -0,0 +1,17 @@
+package com.dg.core.util;
+
+
+import cn.hutool.core.util.IdUtil;
+
+/**
+ * 雪花id获取工具类
+ * @author lyq
+ * @date 2022-03-04
+ */
+public class Snowflake {
+    public static long getId() {
+        cn.hutool.core.lang.Snowflake snowflake = IdUtil.getSnowflake(1, 1);
+        long id = snowflake.nextId();
+        return id;
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/util/TableDataInfo.java b/flower_city/src/main/java/com/dg/core/util/TableDataInfo.java
new file mode 100644
index 0000000..1b827d3
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/util/TableDataInfo.java
@@ -0,0 +1,87 @@
+package com.dg.core.util;
+
+import com.dg.core.ResultData;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 表格分页数据对象
+ * 
+ * @author ruoyi
+ */
+public class TableDataInfo<T> implements Serializable
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 总记录数 */
+    private long total;
+
+    /** 列表数据 */
+    private List<T> rows;
+
+    /** 消息状态码 */
+    private int result;
+
+    /** 消息内容 */
+    private String msg;
+
+    /**
+     * 表格数据对象
+     */
+    public TableDataInfo()
+    {
+    }
+
+    /**
+     * 分页
+     * 
+     * @param list 列表数据
+     * @param total 总记录数
+     */
+    public TableDataInfo(List<T> list, long total)
+    {
+        this.rows = list;
+        this.total = total;
+    }
+
+    public long getTotal()
+    {
+        return total;
+    }
+
+    public void setTotal(long total)
+    {
+        this.total = total;
+    }
+
+    public List<T> getRows()
+    {
+        return rows;
+    }
+
+    public void setRows(List<T> rows)
+    {
+        this.rows = rows;
+    }
+
+    public int getResult()
+    {
+        return result;
+    }
+
+    public void setResult(int result)
+    {
+        this.result = result;
+    }
+
+    public String getMsg()
+    {
+        return msg;
+    }
+
+    public void setMsg(String msg)
+    {
+        this.msg = msg;
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/util/TemplateParam.java b/flower_city/src/main/java/com/dg/core/util/TemplateParam.java
new file mode 100644
index 0000000..82671f9
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/util/TemplateParam.java
@@ -0,0 +1,19 @@
+package com.dg.core.util;
+
+import lombok.Data;
+
+@Data
+public class TemplateParam {
+
+    private String key;
+    private String value;
+
+    public TemplateParam(String key, String value) {
+        this.key = key;
+        this.value = value;
+    }
+    public TemplateParam() {
+
+    }
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/util/TestDate.java b/flower_city/src/main/java/com/dg/core/util/TestDate.java
new file mode 100644
index 0000000..d166f08
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/util/TestDate.java
@@ -0,0 +1,179 @@
+package com.dg.core.util;
+
+
+import cn.hutool.core.date.DateTime;
+import com.alibaba.fastjson.JSONObject;
+import com.iceyyy.workday.WorkUtils;
+import com.squareup.okhttp.OkHttpClient;
+import com.squareup.okhttp.Request;
+import com.squareup.okhttp.Response;
+
+import java.io.IOException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+/**
+ * <p>TestDate 此类用于:</p>
+ * <p>@author:hujm</p>
+ * <p>@date:2021年04月22日 17:43</p>
+ * <p>@remark:</p>
+ */
+public class TestDate {
+
+    public static void main(String[] args) {
+        System.out.println(getJjr(2021, 4));
+        System.out.println(getMonthWekDay(2021, 4));
+        System.out.println(JJR(2021, 4));
+
+    }
+
+    /**
+     * 获取周末和节假日
+     *
+     * @param year
+     * @param month
+     * @return
+     */
+    public static Set<String> JJR(int year, int month) {
+        //获取所有的周末
+        Set<String> monthWekDay = getMonthWekDay(year, month);
+        //http://timor.tech/api/holiday api文档地址
+        Map jjr = getJjr(year, month + 1);
+        Integer code = (Integer) jjr.get("code");
+        if (code != 0) {
+            return monthWekDay;
+        }
+        Map<String, Map<String, Object>> holiday = (Map<String, Map<String, Object>>) jjr.get("holiday");
+        Set<String> strings = holiday.keySet();
+        for (String str : strings) {
+            Map<String, Object> stringObjectMap = holiday.get(str);
+            Integer wage = (Integer) stringObjectMap.get("wage");
+            String date = (String) stringObjectMap.get("date");
+            //筛选掉补班
+            if (wage.equals(1)) {
+                monthWekDay.remove(date);
+            } else {
+                monthWekDay.add(date);
+            }
+        }
+        return monthWekDay;
+    }
+
+    /**
+     * 获取节假日不含周末
+     *
+     * @param year
+     * @param month
+     * @return
+     */
+    private static Map getJjr(int year, int month) {
+        String url = "http://timor.tech/api/holiday/year/";
+        OkHttpClient client = new OkHttpClient();
+        Response response;
+        //解密数据
+        String rsa = null;
+        Request request = new Request.Builder()
+                .url(url)
+                .get()
+                .addHeader("Content-Type", "application/x-www-form-urlencoded")
+                .build();
+        try {
+            response = client.newCall(request).execute();
+            rsa = response.body().string();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return JSONObject.parseObject(rsa, Map.class);
+    }
+
+    /**
+     * 获取节假日不含周末
+     *
+     * @return
+     */
+    public    Map getWeather(String code) {
+        String url = "https://restapi.amap.com/v3/weather/weatherInfo?key=9e0d819935da8a01de0e476ba8a9019e&city="+code;
+        OkHttpClient client = new OkHttpClient();
+        Response response;
+        //解密数据
+        String rsa = null;
+        Request request = new Request.Builder()
+                .url(url)
+                .get()
+                .addHeader("Content-Type", "application/x-www-form-urlencoded")
+                .build();
+        try {
+            response = client.newCall(request).execute();
+            rsa = response.body().string();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return JSONObject.parseObject(rsa, Map.class);
+    }
+
+    /**
+     * 获取周末  月从0开始
+     *
+     * @param year
+     * @param mouth
+     * @return
+     */
+    public static Set<String> getMonthWekDay(int year, int mouth) {
+        Set<String> dateList = new HashSet<>();
+        SimpleDateFormat simdf = new SimpleDateFormat("yyyy-MM-dd");
+        Calendar calendar = new GregorianCalendar(year, mouth, 1);
+        Calendar endCalendar = new GregorianCalendar(year, mouth, 1);
+        endCalendar.add(Calendar.MONTH, 1);
+        while (true) {
+            int weekday = calendar.get(Calendar.DAY_OF_WEEK);
+            if (weekday == 1 || weekday == 7) {
+                dateList.add(simdf.format(calendar.getTime()));
+            }
+            calendar.add(Calendar.DATE, 1);
+            if (calendar.getTimeInMillis() >= endCalendar.getTimeInMillis()) {
+                break;
+            }
+        }
+        return dateList;
+    }
+
+    /**
+     * 判断该日期是否为工作日
+     *
+     * @param dateTime
+     * @return
+     */
+    public Boolean  isWeekday(DateTime dateTime){
+        TestDate td=new TestDate();
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(dateTime);
+        Set<String> jjr = td.JJR(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH));
+        String strdate = dateTime.toString("yyyy-MM-dd");
+        for (String ans: jjr ) {
+            if (ans.equals(strdate))
+                return  false;
+        }
+        return  true;
+    }
+
+    /**
+     * 获取该日期的下个工作日是多少
+     *
+     * @param dateTime
+     * @return
+     */
+    public  DateTime nextWeekDay(DateTime dateTime){
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(dateTime);
+        while (true){
+          calendar.add(calendar.DATE,1);
+          SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+          String dateTimeToday = sdf.format(calendar.getTime());
+          if (!WorkUtils.isWorkendDay(dateTimeToday)){
+              return new DateTime(calendar);//返回日期
+          }
+        }
+
+    }
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/util/UUID.java b/flower_city/src/main/java/com/dg/core/util/UUID.java
new file mode 100644
index 0000000..46ee487
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/util/UUID.java
@@ -0,0 +1,486 @@
+package com.dg.core.util;
+
+
+import com.dg.core.exception.UtilException;
+
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.security.SecureRandom;
+import java.util.Random;
+import java.util.concurrent.ThreadLocalRandom;
+
+/**
+ * 提供通用唯一识别码(universally unique identifier)(UUID)实现
+ *
+ * @author ruoyi
+ */
+public final class UUID implements java.io.Serializable, Comparable<UUID>
+{
+    private static final long serialVersionUID = -1185015143654744140L;
+
+    /**
+     * SecureRandom 的单例
+     *
+     */
+    private static class Holder
+    {
+        static final SecureRandom numberGenerator = getSecureRandom();
+    }
+
+    /** 此UUID的最高64有效位 */
+    private final long mostSigBits;
+
+    /** 此UUID的最低64有效位 */
+    private final long leastSigBits;
+
+    /**
+     * 私有构造
+     * 
+     * @param data 数据
+     */
+    private UUID(byte[] data)
+    {
+        long msb = 0;
+        long lsb = 0;
+        assert data.length == 16 : "data must be 16 bytes in length";
+        for (int i = 0; i < 8; i++)
+        {
+            msb = (msb << 8) | (data[i] & 0xff);
+        }
+        for (int i = 8; i < 16; i++)
+        {
+            lsb = (lsb << 8) | (data[i] & 0xff);
+        }
+        this.mostSigBits = msb;
+        this.leastSigBits = lsb;
+    }
+
+    /**
+     * 使用指定的数据构造新的 UUID。
+     *
+     * @param mostSigBits 用于 {@code UUID} 的最高有效 64 位
+     * @param leastSigBits 用于 {@code UUID} 的最低有效 64 位
+     */
+    public UUID(long mostSigBits, long leastSigBits)
+    {
+        this.mostSigBits = mostSigBits;
+        this.leastSigBits = leastSigBits;
+    }
+
+    /**
+     * 获取类型 4(伪随机生成的)UUID 的静态工厂。 使用加密的本地线程伪随机数生成器生成该 UUID。
+     * 
+     * @return 随机生成的 {@code UUID}
+     */
+    public static UUID fastUUID()
+    {
+        return randomUUID(false);
+    }
+
+    /**
+     * 获取类型 4(伪随机生成的)UUID 的静态工厂。 使用加密的强伪随机数生成器生成该 UUID。
+     * 
+     * @return 随机生成的 {@code UUID}
+     */
+    public static UUID randomUUID()
+    {
+        return randomUUID(true);
+    }
+
+    /**
+     * 获取类型 4(伪随机生成的)UUID 的静态工厂。 使用加密的强伪随机数生成器生成该 UUID。
+     * 
+     * @param isSecure 是否使用{@link SecureRandom}如果是可以获得更安全的随机码,否则可以得到更好的性能
+     * @return 随机生成的 {@code UUID}
+     */
+    public static UUID randomUUID(boolean isSecure)
+    {
+        final Random ng = isSecure ? Holder.numberGenerator : getRandom();
+
+        byte[] randomBytes = new byte[16];
+        ng.nextBytes(randomBytes);
+        randomBytes[6] &= 0x0f; /* clear version */
+        randomBytes[6] |= 0x40; /* set to version 4 */
+        randomBytes[8] &= 0x3f; /* clear variant */
+        randomBytes[8] |= 0x80; /* set to IETF variant */
+        return new UUID(randomBytes);
+    }
+
+    /**
+     * 根据指定的字节数组获取类型 3(基于名称的)UUID 的静态工厂。
+     *
+     * @param name 用于构造 UUID 的字节数组。
+     *
+     * @return 根据指定数组生成的 {@code UUID}
+     */
+    public static UUID nameUUIDFromBytes(byte[] name)
+    {
+        MessageDigest md;
+        try
+        {
+            md = MessageDigest.getInstance("MD5");
+        }
+        catch (NoSuchAlgorithmException nsae)
+        {
+            throw new InternalError("MD5 not supported");
+        }
+        byte[] md5Bytes = md.digest(name);
+        md5Bytes[6] &= 0x0f; /* clear version */
+        md5Bytes[6] |= 0x30; /* set to version 3 */
+        md5Bytes[8] &= 0x3f; /* clear variant */
+        md5Bytes[8] |= 0x80; /* set to IETF variant */
+        return new UUID(md5Bytes);
+    }
+
+    /**
+     * 根据 {@link #toString()} 方法中描述的字符串标准表示形式创建{@code UUID}。
+     *
+     * @param name 指定 {@code UUID} 字符串
+     * @return 具有指定值的 {@code UUID}
+     * @throws IllegalArgumentException 如果 name 与 {@link #toString} 中描述的字符串表示形式不符抛出此异常
+     *
+     */
+    public static UUID fromString(String name)
+    {
+        String[] components = name.split("-");
+        if (components.length != 5)
+        {
+            throw new IllegalArgumentException("Invalid UUID string: " + name);
+        }
+        for (int i = 0; i < 5; i++)
+        {
+            components[i] = "0x" + components[i];
+        }
+
+        long mostSigBits = Long.decode(components[0]).longValue();
+        mostSigBits <<= 16;
+        mostSigBits |= Long.decode(components[1]).longValue();
+        mostSigBits <<= 16;
+        mostSigBits |= Long.decode(components[2]).longValue();
+
+        long leastSigBits = Long.decode(components[3]).longValue();
+        leastSigBits <<= 48;
+        leastSigBits |= Long.decode(components[4]).longValue();
+
+        return new UUID(mostSigBits, leastSigBits);
+    }
+
+    /**
+     * 返回此 UUID 的 128 位值中的最低有效 64 位。
+     *
+     * @return 此 UUID 的 128 位值中的最低有效 64 位。
+     */
+    public long getLeastSignificantBits()
+    {
+        return leastSigBits;
+    }
+
+    /**
+     * 返回此 UUID 的 128 位值中的最高有效 64 位。
+     *
+     * @return 此 UUID 的 128 位值中最高有效 64 位。
+     */
+    public long getMostSignificantBits()
+    {
+        return mostSigBits;
+    }
+
+    /**
+     * 与此 {@code UUID} 相关联的版本号. 版本号描述此 {@code UUID} 是如何生成的。
+     * <p>
+     * 版本号具有以下含意:
+     * <ul>
+     * <li>1 基于时间的 UUID
+     * <li>2 DCE 安全 UUID
+     * <li>3 基于名称的 UUID
+     * <li>4 随机生成的 UUID
+     * </ul>
+     *
+     * @return 此 {@code UUID} 的版本号
+     */
+    public int version()
+    {
+        // Version is bits masked by 0x000000000000F000 in MS long
+        return (int) ((mostSigBits >> 12) & 0x0f);
+    }
+
+    /**
+     * 与此 {@code UUID} 相关联的变体号。变体号描述 {@code UUID} 的布局。
+     * <p>
+     * 变体号具有以下含意:
+     * <ul>
+     * <li>0 为 NCS 向后兼容保留
+     * <li>2 <a href="http://www.ietf.org/rfc/rfc4122.txt">IETF&nbsp;RFC&nbsp;4122</a>(Leach-Salz), 用于此类
+     * <li>6 保留,微软向后兼容
+     * <li>7 保留供以后定义使用
+     * </ul>
+     *
+     * @return 此 {@code UUID} 相关联的变体号
+     */
+    public int variant()
+    {
+        // This field is composed of a varying number of bits.
+        // 0 - - Reserved for NCS backward compatibility
+        // 1 0 - The IETF aka Leach-Salz variant (used by this class)
+        // 1 1 0 Reserved, Microsoft backward compatibility
+        // 1 1 1 Reserved for future definition.
+        return (int) ((leastSigBits >>> (64 - (leastSigBits >>> 62))) & (leastSigBits >> 63));
+    }
+
+    /**
+     * 与此 UUID 相关联的时间戳值。
+     *
+     * <p>
+     * 60 位的时间戳值根据此 {@code UUID} 的 time_low、time_mid 和 time_hi 字段构造。<br>
+     * 所得到的时间戳以 100 毫微秒为单位,从 UTC(通用协调时间) 1582 年 10 月 15 日零时开始。
+     *
+     * <p>
+     * 时间戳值仅在在基于时间的 UUID(其 version 类型为 1)中才有意义。<br>
+     * 如果此 {@code UUID} 不是基于时间的 UUID,则此方法抛出 UnsupportedOperationException。
+     *
+     * @throws UnsupportedOperationException 如果此 {@code UUID} 不是 version 为 1 的 UUID。
+     */
+    public long timestamp() throws UnsupportedOperationException
+    {
+        checkTimeBase();
+        return (mostSigBits & 0x0FFFL) << 48//
+                | ((mostSigBits >> 16) & 0x0FFFFL) << 32//
+                | mostSigBits >>> 32;
+    }
+
+    /**
+     * 与此 UUID 相关联的时钟序列值。
+     *
+     * <p>
+     * 14 位的时钟序列值根据此 UUID 的 clock_seq 字段构造。clock_seq 字段用于保证在基于时间的 UUID 中的时间唯一性。
+     * <p>
+     * {@code clockSequence} 值仅在基于时间的 UUID(其 version 类型为 1)中才有意义。 如果此 UUID 不是基于时间的 UUID,则此方法抛出
+     * UnsupportedOperationException。
+     *
+     * @return 此 {@code UUID} 的时钟序列
+     *
+     * @throws UnsupportedOperationException 如果此 UUID 的 version 不为 1
+     */
+    public int clockSequence() throws UnsupportedOperationException
+    {
+        checkTimeBase();
+        return (int) ((leastSigBits & 0x3FFF000000000000L) >>> 48);
+    }
+
+    /**
+     * 与此 UUID 相关的节点值。
+     *
+     * <p>
+     * 48 位的节点值根据此 UUID 的 node 字段构造。此字段旨在用于保存机器的 IEEE 802 地址,该地址用于生成此 UUID 以保证空间唯一性。
+     * <p>
+     * 节点值仅在基于时间的 UUID(其 version 类型为 1)中才有意义。<br>
+     * 如果此 UUID 不是基于时间的 UUID,则此方法抛出 UnsupportedOperationException。
+     *
+     * @return 此 {@code UUID} 的节点值
+     *
+     * @throws UnsupportedOperationException 如果此 UUID 的 version 不为 1
+     */
+    public long node() throws UnsupportedOperationException
+    {
+        checkTimeBase();
+        return leastSigBits & 0x0000FFFFFFFFFFFFL;
+    }
+
+    /**
+     * 返回此{@code UUID} 的字符串表现形式。
+     *
+     * <p>
+     * UUID 的字符串表示形式由此 BNF 描述:
+     * 
+     * <pre>
+     * {@code
+     * UUID                   = <time_low>-<time_mid>-<time_high_and_version>-<variant_and_sequence>-<node>
+     * time_low               = 4*<hexOctet>
+     * time_mid               = 2*<hexOctet>
+     * time_high_and_version  = 2*<hexOctet>
+     * variant_and_sequence   = 2*<hexOctet>
+     * node                   = 6*<hexOctet>
+     * hexOctet               = <hexDigit><hexDigit>
+     * hexDigit               = [0-9a-fA-F]
+     * }
+     * </pre>
+     * 
+     * </blockquote>
+     *
+     * @return 此{@code UUID} 的字符串表现形式
+     * @see #toString(boolean)
+     */
+    @Override
+    public String toString()
+    {
+        return toString(false);
+    }
+
+    /**
+     * 返回此{@code UUID} 的字符串表现形式。
+     *
+     * <p>
+     * UUID 的字符串表示形式由此 BNF 描述:
+     * 
+     * <pre>
+     * {@code
+     * UUID                   = <time_low>-<time_mid>-<time_high_and_version>-<variant_and_sequence>-<node>
+     * time_low               = 4*<hexOctet>
+     * time_mid               = 2*<hexOctet>
+     * time_high_and_version  = 2*<hexOctet>
+     * variant_and_sequence   = 2*<hexOctet>
+     * node                   = 6*<hexOctet>
+     * hexOctet               = <hexDigit><hexDigit>
+     * hexDigit               = [0-9a-fA-F]
+     * }
+     * </pre>
+     * 
+     * </blockquote>
+     *
+     * @param isSimple 是否简单模式,简单模式为不带'-'的UUID字符串
+     * @return 此{@code UUID} 的字符串表现形式
+     */
+    public String toString(boolean isSimple)
+    {
+        final StringBuilder builder = new StringBuilder(isSimple ? 32 : 36);
+        // time_low
+        builder.append(digits(mostSigBits >> 32, 8));
+        if (!isSimple)
+        {
+            builder.append('-');
+        }
+        // time_mid
+        builder.append(digits(mostSigBits >> 16, 4));
+        if (!isSimple)
+        {
+            builder.append('-');
+        }
+        // time_high_and_version
+        builder.append(digits(mostSigBits, 4));
+        if (!isSimple)
+        {
+            builder.append('-');
+        }
+        // variant_and_sequence
+        builder.append(digits(leastSigBits >> 48, 4));
+        if (!isSimple)
+        {
+            builder.append('-');
+        }
+        // node
+        builder.append(digits(leastSigBits, 12));
+
+        return builder.toString();
+    }
+
+    /**
+     * 返回此 UUID 的哈希码。
+     *
+     * @return UUID 的哈希码值。
+     */
+    @Override
+    public int hashCode()
+    {
+        long hilo = mostSigBits ^ leastSigBits;
+        return ((int) (hilo >> 32)) ^ (int) hilo;
+    }
+
+    /**
+     * 将此对象与指定对象比较。
+     * <p>
+     * 当且仅当参数不为 {@code null}、而是一个 UUID 对象、具有与此 UUID 相同的 varriant、包含相同的值(每一位均相同)时,结果才为 {@code true}。
+     *
+     * @param obj 要与之比较的对象
+     *
+     * @return 如果对象相同,则返回 {@code true};否则返回 {@code false}
+     */
+    @Override
+    public boolean equals(Object obj)
+    {
+        if ((null == obj) || (obj.getClass() != UUID.class))
+        {
+            return false;
+        }
+        UUID id = (UUID) obj;
+        return (mostSigBits == id.mostSigBits && leastSigBits == id.leastSigBits);
+    }
+
+    // Comparison Operations
+
+    /**
+     * 将此 UUID 与指定的 UUID 比较。
+     *
+     * <p>
+     * 如果两个 UUID 不同,且第一个 UUID 的最高有效字段大于第二个 UUID 的对应字段,则第一个 UUID 大于第二个 UUID。
+     *
+     * @param val 与此 UUID 比较的 UUID
+     *
+     * @return 在此 UUID 小于、等于或大于 val 时,分别返回 -1、0 或 1。
+     *
+     */
+    @Override
+    public int compareTo(UUID val)
+    {
+        // The ordering is intentionally set up so that the UUIDs
+        // can simply be numerically compared as two numbers
+        return (this.mostSigBits < val.mostSigBits ? -1 : //
+                (this.mostSigBits > val.mostSigBits ? 1 : //
+                        (this.leastSigBits < val.leastSigBits ? -1 : //
+                                (this.leastSigBits > val.leastSigBits ? 1 : //
+                                        0))));
+    }
+
+    // -------------------------------------------------------------------------------------------------------------------
+    // Private method start
+    /**
+     * 返回指定数字对应的hex值
+     * 
+     * @param val 值
+     * @param digits 位
+     * @return 值
+     */
+    private static String digits(long val, int digits)
+    {
+        long hi = 1L << (digits * 4);
+        return Long.toHexString(hi | (val & (hi - 1))).substring(1);
+    }
+
+    /**
+     * 检查是否为time-based版本UUID
+     */
+    private void checkTimeBase()
+    {
+        if (version() != 1)
+        {
+            throw new UnsupportedOperationException("Not a time-based UUID");
+        }
+    }
+
+    /**
+     * 获取{@link SecureRandom},类提供加密的强随机数生成器 (RNG)
+     * 
+     * @return {@link SecureRandom}
+     */
+    public static SecureRandom getSecureRandom()
+    {
+        try
+        {
+            return SecureRandom.getInstance("SHA1PRNG");
+        }
+        catch (NoSuchAlgorithmException e)
+        {
+            throw new UtilException(e);
+        }
+    }
+
+    /**
+     * 获取随机数生成器对象<br>
+     * ThreadLocalRandom是JDK 7之后提供并发产生随机数,能够解决多个线程发生的竞争争夺。
+     * 
+     * @return {@link ThreadLocalRandom}
+     */
+    public static ThreadLocalRandom getRandom()
+    {
+        return ThreadLocalRandom.current();
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/util/WxSubscribeDTO.java b/flower_city/src/main/java/com/dg/core/util/WxSubscribeDTO.java
new file mode 100644
index 0000000..0663af3
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/util/WxSubscribeDTO.java
@@ -0,0 +1,61 @@
+package com.dg.core.util;
+
+import java.util.List;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.apache.commons.lang3.StringUtils;
+
+@ApiModel("微信订阅消息请求参数")
+@Data
+public class WxSubscribeDTO {
+
+    @ApiModelProperty("用户在小程序的openid")
+    private String touser;
+
+    @ApiModelProperty("所需下发的订阅模板id")
+    private String template_id;
+
+    @ApiModelProperty("点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转。")
+    private String page;
+
+    @ApiModelProperty("模板内容,格式形如 { \"key1\": { \"value\": any }, \"key2\": { \"value\": any } }")
+    private Object data;
+
+    @ApiModelProperty("跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版")
+    private String miniprogram_state;
+
+    @ApiModelProperty("进入小程序查看”的语言类型,支持zh_CN(简体中文)、en_US(英文)、zh_HK(繁体中文)、zh_TW(繁体中文),默认为zh_CN")
+    private String lang;
+
+    private List<TemplateParam> templateParamList;
+
+    public String toJSON() {
+        StringBuffer buffer = new StringBuffer();
+        buffer.append("{");
+        buffer.append(String.format("\"touser\":\"%s\"", this.touser)).append(",");
+        buffer.append(String.format("\"template_id\":\"%s\"", this.template_id)).append(",");
+        if (StringUtils.isNotEmpty(this.page)) {
+            buffer.append(String.format("\"page\":\"%s\"", this.page)).append(",");
+        }
+        if (StringUtils.isNotEmpty(this.miniprogram_state)) {
+            buffer.append(String.format("\"miniprogram_state\":\"%s\"", this.miniprogram_state)).append(",");
+        }
+        buffer.append("\"data\":{");
+        TemplateParam param = null;
+        for (int i = 0; i < this.templateParamList.size(); i++) {
+            param = templateParamList.get(i);
+            // 判断是否追加逗号
+            if (i < this.templateParamList.size() - 1) {
+                buffer.append(String.format("\"%s\": {\"value\":\"%s\"},", param.getKey(), param.getValue()));
+            } else {
+                buffer.append(String.format("\"%s\": {\"value\":\"%s\"}", param.getKey(), param.getValue()));
+            }
+        }
+        buffer.append("}");
+        buffer.append("}");
+        return buffer.toString();
+    }
+}
\ No newline at end of file
diff --git a/flower_city/src/main/java/com/dg/core/util/WxUtil.java b/flower_city/src/main/java/com/dg/core/util/WxUtil.java
new file mode 100644
index 0000000..2a5a78c
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/util/WxUtil.java
@@ -0,0 +1,297 @@
+package com.dg.core.util;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.dg.core.annotation.Authorization;
+import com.dg.core.db.gen.entity.GuideEvolveEntity;
+import com.dg.core.db.gen.entity.GuideRepairOrder;
+import com.dg.core.db.gen.entity.SysUser;
+import com.dg.core.db.manual.mapper.util.ConstantPropertiesUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.stereotype.Component;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.Resource;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.util.*;
+
+@Slf4j
+@Component
+public class WxUtil {
+
+    private static String ACCESS_TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential";
+
+    private static String miniprogramState="trial";//trial 为测试版  formal 为正式版 切记发布版本时候改为正式版
+
+    @Resource(name = "stringRedisTemplate")
+    private StringRedisTemplate stringRedisTemplate;
+
+    private static WxUtil wxUtil;
+
+    @PostConstruct
+    public void init() {
+        wxUtil = this;
+        wxUtil.stringRedisTemplate = this.stringRedisTemplate;
+    }
+
+    /**
+     * 获取花城token,(ps:0=token获取失败)
+     *
+     * @return
+     */
+    public  String getBatteryCarAccessToken() throws Exception {
+        String accessToken = "0";
+//        try {
+//            // 此处APP_ID APP_SECRET 在微信小程序后端可见
+//            // String accessTokenUrl = String.format(TEMP_URL, APP_ID, APP_SECRET);
+//            String accessTokenUrl = ACCESS_TOKEN_URL + "&appid=" + ConstantPropertiesUtil.WX_OPEN_APP_ID
+//                    + "&secret=" +ConstantPropertiesUtil.WX_OPEN_APP_SECRET;
+//            String result = httpGet(accessTokenUrl, null, null);
+//            Map<String, Object> resultMap = JSON.parseObject(result, Map.class);
+//            if (resultMap.containsKey("access_token")) {
+//                accessToken = resultMap.get("access_token").toString();
+//            }
+//        } catch (IOException ioe) {
+//            ioe.printStackTrace();
+//        }
+        accessToken =wxUtil.stringRedisTemplate.boundValueOps("access_token:access_token:" + ConstantPropertiesUtil.WX_OPEN_APP_ID).get();
+        return accessToken;
+    }
+
+
+    /**
+     * http请求工具类,get请求
+     *
+     * @param url
+     * @param params
+     * @param resonseCharSet
+     * @return
+     * @throws Exception
+     */
+    public static String httpGet(String url, Map<String, Object> params, String... resonseCharSet) throws Exception {
+        DefaultHttpClient defaultHttpClient = null;
+        BufferedReader bufferedReader = null;
+        try {
+            defaultHttpClient = new DefaultHttpClient();
+            if (params != null) {
+                StringBuilder stringBuilder = new StringBuilder();
+                Iterator<String> iterator = params.keySet().iterator();
+                String key;
+                while (iterator.hasNext()) {
+                    key = iterator.next();
+                    Object val = params.get(key);
+                    if (val instanceof List) {
+                        List v = (List) val;
+                        for (Object o : v) {
+                            stringBuilder.append(key).append("=").append(o.toString()).append("&");
+                        }
+                    } else {
+                        stringBuilder.append(key).append("=").append(val.toString()).append("&");
+                    }
+                }
+                stringBuilder.deleteCharAt(stringBuilder.length() - 1);
+                url = url + "?" + stringBuilder.toString();
+            }
+            HttpGet httpGet = new HttpGet(url);
+            httpGet.setHeader("Content-Type", "application/json;charset=ut-8");
+            HttpResponse httpResponse = defaultHttpClient.execute(httpGet);
+            if (httpResponse.getStatusLine().getStatusCode() != 200) {
+                String errorLog = "请求失败,errorCode:" + httpResponse.getStatusLine().getStatusCode();
+
+                throw new Exception(url + errorLog);
+            }
+            // 读取返回信息
+            String charSet = "utf-8";
+            if (resonseCharSet != null && resonseCharSet.length > 0)
+                charSet = resonseCharSet[0];
+            String output;
+            bufferedReader = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent(), charSet));
+
+            StringBuilder dataBuilder = new StringBuilder();
+            while ((output = bufferedReader.readLine()) != null) {
+                dataBuilder.append(output);
+            }
+            return dataBuilder.toString();
+        } catch (IOException e) {
+            e.printStackTrace();
+            throw e;
+        } finally {
+            if (defaultHttpClient != null)
+                defaultHttpClient.getConnectionManager().shutdown();
+            if (bufferedReader != null)
+                bufferedReader.close();
+        }
+    }
+
+    /**
+     * http请求工具类,post请求
+     *
+     * @param url   url
+     * @param param 参数值 仅支持String
+     * @return
+     * @throws Exception
+     */
+    public static String httpPost(String url, String param) throws Exception {
+        DefaultHttpClient defaultHttpClient = null;
+        BufferedReader bufferedReader = null;
+        try {
+            defaultHttpClient = new DefaultHttpClient();
+            HttpPost httpPost = new HttpPost(url);
+            httpPost.setHeader("Content-Type", "application/json;charset=ut-8");
+            if (StringUtils.isNotBlank(param)) {
+                 HttpEntity httpEntity = new StringEntity(param, "utf-8");
+                httpPost.setEntity(httpEntity);
+            }
+            HttpResponse httpResponse = defaultHttpClient.execute(httpPost);
+            if (httpResponse.getStatusLine().getStatusCode() != 200) {
+                String errorLog = "请求失败,errorCode:" + httpResponse.getStatusLine().getStatusCode();
+                 throw new Exception(url + errorLog);
+            }
+            // 读取返回信息
+            String output;
+            bufferedReader = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent(), "utf-8"));
+            StringBuilder stringBuilder = new StringBuilder();
+            while ((output = bufferedReader.readLine()) != null) {
+                stringBuilder.append(output);
+            }
+             return stringBuilder.toString();
+        } catch (IOException e) {
+            e.printStackTrace();
+            throw e;
+        } finally {
+            if (defaultHttpClient != null)
+                defaultHttpClient.getConnectionManager().shutdown();
+            if (bufferedReader != null)
+                bufferedReader.close();
+        }
+    }
+
+
+
+    public static String wxMessageModeSendUrl(String token, WxSubscribeDTO subscribeDTO) throws Exception {
+        String tmpurl = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=ACCESS_TOKEN";
+        String url = tmpurl.replace("ACCESS_TOKEN", token);
+        return httpPost(url, subscribeDTO.toJSON());
+    }
+
+    /**
+     * 订阅消息推送
+     *
+     * @param accessToken
+     *            获取会话token
+     * @return 消息推送结果
+     */
+    static void sendSubscribe(String accessToken, WxSubscribeDTO subscribeDTO) throws Exception {
+        String resultString = wxMessageModeSendUrl(accessToken, subscribeDTO);
+        JSONObject jsonResult = JSON.parseObject(resultString);
+        if (jsonResult != null) {
+            int errorCode = jsonResult.getIntValue("errcode");
+            String errorMessage = jsonResult.getString("errmsg");
+            if (errorCode == 0) {
+                System.out.println("订阅消息推送成功,openId:" + subscribeDTO.getTouser());
+            } else {
+                System.out.println(
+                        "订阅消息发送失败,错误码:" + errorCode + ",错误信息:" + errorMessage + "用户openid:" + subscribeDTO.getTouser());
+            }
+        }
+    }
+
+    /**
+     * 工单完成推送
+     *
+     * @param openId
+     *            用户openid
+     * @param accessToken
+     *            token会话标识
+     */
+    public  void sendGuideRepairOrderComplete(String openId, String accessToken, String templateId, GuideEvolveEntity guideRepairOrder){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        subscribeDTO.setMiniprogram_state(miniprogramState);
+        subscribeDTO.setPage("packageE/pages/myApply/myApply");
+        List<TemplateParam> paras=new ArrayList<TemplateParam>();
+        Calendar calendar = Calendar.getInstance();
+        paras.add(new TemplateParam("thing1","导办申请"));//业务办理类型
+        paras.add(new TemplateParam("thing3",guideRepairOrder.getRemark()));
+        paras.add(new TemplateParam("phrase8","已完成"));
+        calendar.setTime(new Date());
+        paras.add(new TemplateParam("time4",calendar.get(Calendar.YEAR)+"年"+(calendar.get(Calendar.MONTH)+1)+"月"+calendar.get(Calendar.DATE)+"日"));//结束日期
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken,subscribeDTO);
+        }catch (Exception e){
+            System.out.println(e.getMessage());
+        }
+    }
+
+
+    /**
+     * 工单提交推送
+     *
+     * @param openId
+     *            用户openid
+     * @param accessToken
+     *            token会话标识
+     */
+    public  void sendGuideRepairOrderSubmit(String openId, String accessToken, String templateId, GuideRepairOrder guideRepairOrder){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        subscribeDTO.setMiniprogram_state(miniprogramState);
+        subscribeDTO.setPage("packageE/pages/applyHandle/index/index");
+        List<TemplateParam> paras=new ArrayList<TemplateParam>();
+         paras.add(new TemplateParam("thing4","您有一个新的导办工单需要处理"));//工单新增提示内容
+        paras.add(new TemplateParam("thing2",guideRepairOrder.getConsultUserName()));//咨询人
+        paras.add(new TemplateParam("thing3",guideRepairOrder.getConsultContent()));//咨询内容
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken,subscribeDTO);
+        }catch (Exception e){
+            System.out.println(e.getMessage());
+        }
+    }
+
+
+    /**
+     * 工单超时推送
+     *
+     * @param openId
+     *            用户openid
+     * @param accessToken
+     *            token会话标识
+     */
+    public  void sendGuideRepairOrderOvertime(String openId, String accessToken, String templateId, SysUser sysUser){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        subscribeDTO.setMiniprogram_state(miniprogramState);
+        subscribeDTO.setPage("packageE/pages/applyHandle/index/index");
+        List<TemplateParam> paras=new ArrayList<TemplateParam>();
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(new Date());
+        paras.add(new TemplateParam("time1",calendar.get(Calendar.YEAR)+"年"+(calendar.get(Calendar.MONTH)+1)+"月"+calendar.get(Calendar.DATE)+"日"));//超时时间
+        paras.add(new TemplateParam("thing2",sysUser.getUserName()+"导办人员有个工单已超时"));//咨询人
+         subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken,subscribeDTO);
+        }catch (Exception e){
+            System.out.println(e.getMessage());
+        }
+    }
+
+
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/util/presence/Year2001.java b/flower_city/src/main/java/com/dg/core/util/presence/Year2001.java
new file mode 100644
index 0000000..bdb7382
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/util/presence/Year2001.java
@@ -0,0 +1,31 @@
+package com.dg.core.util.presence;
+
+import com.iceyyy.icework.presence.Year20xx;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class Year2001 implements Year20xx {
+    @Override
+    public Map<String, Boolean> getYearMap() {
+        Map<String, Boolean> map = new HashMap<String, Boolean>();
+        map.put("20010120", false); // 班
+        map.put("20010121", false); // 班
+        map.put("20010124", true); // 休
+        map.put("20010125", true); // 休
+        map.put("20010126", true); // 休
+        map.put("20010129", true); // 休
+        map.put("20010130", true); // 休
+        map.put("20010428", false); // 班
+        map.put("20010429", false); // 班
+        map.put("20010501", true); // 休
+        map.put("20010502", true); // 休
+        map.put("20010503", true); // 休
+        map.put("20010504", true); // 休
+        map.put("20010507", true); // 休
+        map.put("20010929", false); // 班
+        map.put("20010930", false); // 班
+        map.put("20011001", true); // 休
+        return map;
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/util/presence/Year2002.java b/flower_city/src/main/java/com/dg/core/util/presence/Year2002.java
new file mode 100644
index 0000000..bb8ec95
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/util/presence/Year2002.java
@@ -0,0 +1,31 @@
+package com.dg.core.util.presence;
+
+import com.iceyyy.icework.presence.Year20xx;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class Year2002 implements Year20xx {
+    @Override
+    public Map<String, Boolean> getYearMap() {
+        Map<String, Boolean> map = new HashMap<String, Boolean>();
+        map.put("20020101", true); // 休
+        map.put("20020102", true); // 休
+        map.put("20020103", true); // 休
+        map.put("20020209", false); // 班
+        map.put("20020210", false); // 班
+        map.put("20020212", true); // 休
+        map.put("20020213", true); // 休
+        map.put("20020214", true); // 休
+        map.put("20020215", true); // 休
+        map.put("20020218", true); // 休
+        map.put("20020427", false); // 班
+        map.put("20020428", false); // 班
+        map.put("20020501", true); // 休
+        map.put("20020502", true); // 休
+        map.put("20020503", true); // 休
+        map.put("20020506", true); // 休
+        map.put("20020507", true); // 休
+        return map;
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/util/presence/Year2003.java b/flower_city/src/main/java/com/dg/core/util/presence/Year2003.java
new file mode 100644
index 0000000..c3b38e1
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/util/presence/Year2003.java
@@ -0,0 +1,31 @@
+package com.dg.core.util.presence;
+
+import com.iceyyy.icework.presence.Year20xx;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class Year2003 implements Year20xx {
+    @Override
+    public Map<String, Boolean> getYearMap() {
+        Map<String, Boolean> map = new HashMap<String, Boolean>();
+        map.put("20030101", true); // 休
+        map.put("20030203", true); // 休
+        map.put("20030204", true); // 休
+        map.put("20030205", true); // 休
+        map.put("20030206", true); // 休
+        map.put("20030207", true); // 休
+        map.put("20030208", false); // 班
+        map.put("20030209", false); // 班
+        map.put("20030426", false); // 班
+        map.put("20030427", false); // 班
+        map.put("20030501", true); // 休
+        map.put("20030502", true); // 休
+        map.put("20030505", true); // 休
+        map.put("20030506", true); // 休
+        map.put("20030507", true); // 休
+        map.put("20030927", false); // 班
+        map.put("20030928", false); // 班
+        return map;
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/util/presence/Year2004.java b/flower_city/src/main/java/com/dg/core/util/presence/Year2004.java
new file mode 100644
index 0000000..db9a9f5
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/util/presence/Year2004.java
@@ -0,0 +1,31 @@
+package com.dg.core.util.presence;
+
+import com.iceyyy.icework.presence.Year20xx;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class Year2004 implements Year20xx {
+    @Override
+    public Map<String, Boolean> getYearMap() {
+        Map<String, Boolean> map = new HashMap<String, Boolean>();
+        map.put("20040101", true); // 休
+        map.put("20040117", false); // 班
+        map.put("20040118", false); // 班
+        map.put("20040122", true); // 休
+        map.put("20040123", true); // 休
+        map.put("20040126", true); // 休
+        map.put("20040127", true); // 休
+        map.put("20040128", true); // 休
+        map.put("20040503", true); // 休
+        map.put("20040504", true); // 休
+        map.put("20040505", true); // 休
+        map.put("20040506", true); // 休
+        map.put("20040507", true); // 休
+        map.put("20040508", false); // 班
+        map.put("20040509", false); // 班
+        map.put("20041001", true); // 休
+        map.put("20041003", true); // 休
+        return map;
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/util/presence/Year2005.java b/flower_city/src/main/java/com/dg/core/util/presence/Year2005.java
new file mode 100644
index 0000000..05d2f89
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/util/presence/Year2005.java
@@ -0,0 +1,31 @@
+package com.dg.core.util.presence;
+
+import com.iceyyy.icework.presence.Year20xx;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class Year2005 implements Year20xx {
+    @Override
+    public Map<String, Boolean> getYearMap() {
+        Map<String, Boolean> map = new HashMap<String, Boolean>();
+        map.put("20050103", true); // 休
+        map.put("20050205", false); // 班
+        map.put("20050206", false); // 班
+        map.put("20050209", true); // 休
+        map.put("20050210", true); // 休
+        map.put("20050211", true); // 休
+        map.put("20050214", true); // 休
+        map.put("20050215", true); // 休
+        map.put("20050430", false); // 班
+        map.put("20050502", true); // 休
+        map.put("20050503", true); // 休
+        map.put("20050504", true); // 休
+        map.put("20050505", true); // 休
+        map.put("20050506", true); // 休
+        map.put("20050508", false); // 班
+        map.put("20051003", true); // 休
+        map.put("20051004", true); // 休
+        return map;
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/util/presence/Year2006.java b/flower_city/src/main/java/com/dg/core/util/presence/Year2006.java
new file mode 100644
index 0000000..45c1a30
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/util/presence/Year2006.java
@@ -0,0 +1,31 @@
+package com.dg.core.util.presence;
+
+import com.iceyyy.icework.presence.Year20xx;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class Year2006 implements Year20xx {
+    @Override
+    public Map<String, Boolean> getYearMap() {
+        Map<String, Boolean> map = new HashMap<String, Boolean>();
+        map.put("20060102", true); // 休
+        map.put("20060103", true); // 休
+        map.put("20060128", false); // 班
+        map.put("20060130", true); // 休
+        map.put("20060131", true); // 休
+        map.put("20060201", true); // 休
+        map.put("20060202", true); // 休
+        map.put("20060203", true); // 休
+        map.put("20060205", false); // 班
+        map.put("20060429", false); // 班
+        map.put("20060430", false); // 班
+        map.put("20060501", true); // 休
+        map.put("20060502", true); // 休
+        map.put("20060503", true); // 休
+        map.put("20060504", true); // 休
+        map.put("20060505", true); // 休
+        map.put("20060930", false); // 班
+        return map;
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/util/presence/Year2007.java b/flower_city/src/main/java/com/dg/core/util/presence/Year2007.java
new file mode 100644
index 0000000..4aba4ec
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/util/presence/Year2007.java
@@ -0,0 +1,31 @@
+package com.dg.core.util.presence;
+
+import com.iceyyy.icework.presence.Year20xx;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class Year2007 implements Year20xx {
+    @Override
+    public Map<String, Boolean> getYearMap() {
+        Map<String, Boolean> map = new HashMap<String, Boolean>();
+        map.put("20070101", true); // 休
+        map.put("20070102", true); // 休
+        map.put("20070103", true); // 休
+        map.put("20070217", false); // 班
+        map.put("20070219", true); // 休
+        map.put("20070220", true); // 休
+        map.put("20070221", true); // 休
+        map.put("20070222", true); // 休
+        map.put("20070223", true); // 休
+        map.put("20070225", false); // 班
+        map.put("20070428", false); // 班
+        map.put("20070429", false); // 班
+        map.put("20070501", true); // 休
+        map.put("20070502", true); // 休
+        map.put("20070503", true); // 休
+        map.put("20070504", true); // 休
+        map.put("20070507", true); // 休
+        return map;
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/util/presence/Year2008.java b/flower_city/src/main/java/com/dg/core/util/presence/Year2008.java
new file mode 100644
index 0000000..44618ea
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/util/presence/Year2008.java
@@ -0,0 +1,31 @@
+package com.dg.core.util.presence;
+
+import com.iceyyy.icework.presence.Year20xx;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class Year2008 implements Year20xx {
+    @Override
+    public Map<String, Boolean> getYearMap() {
+        Map<String, Boolean> map = new HashMap<String, Boolean>();
+        map.put("20080101", true); // 休
+        map.put("20080203", false); // 班
+        map.put("20080206", true); // 休
+        map.put("20080207", true); // 休
+        map.put("20080208", true); // 休
+        map.put("20080211", true); // 休
+        map.put("20080212", true); // 休
+        map.put("20080404", true); // 休
+        map.put("20080501", true); // 休
+        map.put("20080502", true); // 休
+        map.put("20080504", false); // 班
+        map.put("20080609", true); // 休
+        map.put("20080915", true); // 休
+        map.put("20080927", false); // 班
+        map.put("20080928", false); // 班
+        map.put("20080929", true); // 休
+        map.put("20080930", true); // 休
+        return map;
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/util/presence/Year2009.java b/flower_city/src/main/java/com/dg/core/util/presence/Year2009.java
new file mode 100644
index 0000000..39e507a
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/util/presence/Year2009.java
@@ -0,0 +1,31 @@
+package com.dg.core.util.presence;
+
+import com.iceyyy.icework.presence.Year20xx;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class Year2009 implements Year20xx {
+    @Override
+    public Map<String, Boolean> getYearMap() {
+        Map<String, Boolean> map = new HashMap<String, Boolean>();
+        map.put("20090101", true); // 休
+        map.put("20090102", true); // 休
+        map.put("20090104", false); // 班
+        map.put("20090124", false); // 班
+        map.put("20090126", true); // 休
+        map.put("20090127", true); // 休
+        map.put("20090128", true); // 休
+        map.put("20090129", true); // 休
+        map.put("20090130", true); // 休
+        map.put("20090201", false); // 班
+        map.put("20090406", true); // 休
+        map.put("20090501", true); // 休
+        map.put("20090528", true); // 休
+        map.put("20090529", true); // 休
+        map.put("20090531", false); // 班
+        map.put("20090927", false); // 班
+        map.put("20091001", true); // 休
+        return map;
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/util/presence/Year2010.java b/flower_city/src/main/java/com/dg/core/util/presence/Year2010.java
new file mode 100644
index 0000000..3956873
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/util/presence/Year2010.java
@@ -0,0 +1,31 @@
+package com.dg.core.util.presence;
+
+import com.iceyyy.icework.presence.Year20xx;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class Year2010 implements Year20xx {
+    @Override
+    public Map<String, Boolean> getYearMap() {
+        Map<String, Boolean> map = new HashMap<String, Boolean>();
+        map.put("20100101", true); // 休
+        map.put("20100215", true); // 休
+        map.put("20100216", true); // 休
+        map.put("20100217", true); // 休
+        map.put("20100218", true); // 休
+        map.put("20100219", true); // 休
+        map.put("20100220", false); // 班
+        map.put("20100221", false); // 班
+        map.put("20100405", true); // 休
+        map.put("20100503", true); // 休
+        map.put("20100612", false); // 班
+        map.put("20100613", false); // 班
+        map.put("20100614", true); // 休
+        map.put("20100615", true); // 休
+        map.put("20100616", true); // 休
+        map.put("20100919", false); // 班
+        map.put("20100922", true); // 休
+        return map;
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/util/presence/Year2011.java b/flower_city/src/main/java/com/dg/core/util/presence/Year2011.java
new file mode 100644
index 0000000..20889dd
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/util/presence/Year2011.java
@@ -0,0 +1,31 @@
+package com.dg.core.util.presence;
+
+import com.iceyyy.icework.presence.Year20xx;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class Year2011 implements Year20xx {
+    @Override
+    public Map<String, Boolean> getYearMap() {
+        Map<String, Boolean> map = new HashMap<String, Boolean>();
+        map.put("20110103", true); // 休
+        map.put("20110130", false); // 班
+        map.put("20110202", true); // 休
+        map.put("20110203", true); // 休
+        map.put("20110204", true); // 休
+        map.put("20110207", true); // 休
+        map.put("20110208", true); // 休
+        map.put("20110212", false); // 班
+        map.put("20110402", false); // 班
+        map.put("20110404", true); // 休
+        map.put("20110405", true); // 休
+        map.put("20110502", true); // 休
+        map.put("20110606", true); // 休
+        map.put("20110912", true); // 休
+        map.put("20111003", true); // 休
+        map.put("20111004", true); // 休
+        map.put("20111005", true); // 休
+        return map;
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/util/presence/Year2012.java b/flower_city/src/main/java/com/dg/core/util/presence/Year2012.java
new file mode 100644
index 0000000..f03ac13
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/util/presence/Year2012.java
@@ -0,0 +1,31 @@
+package com.dg.core.util.presence;
+
+import com.iceyyy.icework.presence.Year20xx;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class Year2012 implements Year20xx {
+    @Override
+    public Map<String, Boolean> getYearMap() {
+        Map<String, Boolean> map = new HashMap<String, Boolean>();
+        map.put("20120102", true); // 休
+        map.put("20120103", true); // 休
+        map.put("20120121", false); // 班
+        map.put("20120123", true); // 休
+        map.put("20120124", true); // 休
+        map.put("20120125", true); // 休
+        map.put("20120126", true); // 休
+        map.put("20120127", true); // 休
+        map.put("20120129", false); // 班
+        map.put("20120331", false); // 班
+        map.put("20120401", false); // 班
+        map.put("20120402", true); // 休
+        map.put("20120403", true); // 休
+        map.put("20120404", true); // 休
+        map.put("20120428", false); // 班
+        map.put("20120430", true); // 休
+        map.put("20120501", true); // 休
+        return map;
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/util/presence/Year2013.java b/flower_city/src/main/java/com/dg/core/util/presence/Year2013.java
new file mode 100644
index 0000000..417e4f1
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/util/presence/Year2013.java
@@ -0,0 +1,31 @@
+package com.dg.core.util.presence;
+
+import com.iceyyy.icework.presence.Year20xx;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class Year2013 implements Year20xx {
+    @Override
+    public Map<String, Boolean> getYearMap() {
+        Map<String, Boolean> map = new HashMap<String, Boolean>();
+        map.put("20130101", true); // 休
+        map.put("20130102", true); // 休
+        map.put("20130103", true); // 休
+        map.put("20130105", false); // 班
+        map.put("20130106", false); // 班
+        map.put("20130211", true); // 休
+        map.put("20130212", true); // 休
+        map.put("20130213", true); // 休
+        map.put("20130214", true); // 休
+        map.put("20130215", true); // 休
+        map.put("20130216", false); // 班
+        map.put("20130217", false); // 班
+        map.put("20130404", true); // 休
+        map.put("20130405", true); // 休
+        map.put("20130407", false); // 班
+        map.put("20130427", false); // 班
+        map.put("20130428", false); // 班
+        return map;
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/util/presence/Year2014.java b/flower_city/src/main/java/com/dg/core/util/presence/Year2014.java
new file mode 100644
index 0000000..86b9af7
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/util/presence/Year2014.java
@@ -0,0 +1,31 @@
+package com.dg.core.util.presence;
+
+import com.iceyyy.icework.presence.Year20xx;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class Year2014 implements Year20xx {
+    @Override
+    public Map<String, Boolean> getYearMap() {
+        Map<String, Boolean> map = new HashMap<String, Boolean>();
+        map.put("20140101", true); // 休
+        map.put("20140126", false); // 班
+        map.put("20140131", true); // 休
+        map.put("20140203", true); // 休
+        map.put("20140204", true); // 休
+        map.put("20140205", true); // 休
+        map.put("20140206", true); // 休
+        map.put("20140208", false); // 班
+        map.put("20140407", true); // 休
+        map.put("20140501", true); // 休
+        map.put("20140502", true); // 休
+        map.put("20140504", false); // 班
+        map.put("20140602", true); // 休
+        map.put("20140908", true); // 休
+        map.put("20140928", false); // 班
+        map.put("20141001", true); // 休
+        map.put("20141002", true); // 休
+        return map;
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/util/presence/Year2015.java b/flower_city/src/main/java/com/dg/core/util/presence/Year2015.java
new file mode 100644
index 0000000..9dac9d5
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/util/presence/Year2015.java
@@ -0,0 +1,31 @@
+package com.dg.core.util.presence;
+
+import com.iceyyy.icework.presence.Year20xx;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class Year2015 implements Year20xx {
+    @Override
+    public Map<String, Boolean> getYearMap() {
+        Map<String, Boolean> map = new HashMap<String, Boolean>();
+        map.put("20150101", true); // 休
+        map.put("20150102", true); // 休
+        map.put("20150104", false); // 班
+        map.put("20150215", false); // 班
+        map.put("20150218", true); // 休
+        map.put("20150219", true); // 休
+        map.put("20150220", true); // 休
+        map.put("20150223", true); // 休
+        map.put("20150224", true); // 休
+        map.put("20150228", false); // 班
+        map.put("20150406", true); // 休
+        map.put("20150501", true); // 休
+        map.put("20150622", true); // 休
+        map.put("20150903", true); // 休
+        map.put("20150904", true); // 休
+        map.put("20150906", false); // 班
+        map.put("20151001", true); // 休
+        return map;
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/util/presence/Year2016.java b/flower_city/src/main/java/com/dg/core/util/presence/Year2016.java
new file mode 100644
index 0000000..6cb2e0b
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/util/presence/Year2016.java
@@ -0,0 +1,31 @@
+package com.dg.core.util.presence;
+
+import com.iceyyy.icework.presence.Year20xx;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class Year2016 implements Year20xx {
+    @Override
+    public Map<String, Boolean> getYearMap() {
+        Map<String, Boolean> map = new HashMap<String, Boolean>();
+        map.put("20160101", true); // 休
+        map.put("20160206", false); // 班
+        map.put("20160208", true); // 休
+        map.put("20160209", true); // 休
+        map.put("20160210", true); // 休
+        map.put("20160211", true); // 休
+        map.put("20160212", true); // 休
+        map.put("20160214", false); // 班
+        map.put("20160404", true); // 休
+        map.put("20160502", true); // 休
+        map.put("20160609", true); // 休
+        map.put("20160610", true); // 休
+        map.put("20160612", false); // 班
+        map.put("20160915", true); // 休
+        map.put("20160916", true); // 休
+        map.put("20160918", false); // 班
+        map.put("20161003", true); // 休
+        return map;
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/util/presence/Year2017.java b/flower_city/src/main/java/com/dg/core/util/presence/Year2017.java
new file mode 100644
index 0000000..dfbebcc
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/util/presence/Year2017.java
@@ -0,0 +1,31 @@
+package com.dg.core.util.presence;
+
+import com.iceyyy.icework.presence.Year20xx;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class Year2017 implements Year20xx {
+    @Override
+    public Map<String, Boolean> getYearMap() {
+        Map<String, Boolean> map = new HashMap<String, Boolean>();
+        map.put("20170102", true); // 休
+        map.put("20170122", false); // 班
+        map.put("20170127", true); // 休
+        map.put("20170130", true); // 休
+        map.put("20170131", true); // 休
+        map.put("20170201", true); // 休
+        map.put("20170202", true); // 休
+        map.put("20170204", false); // 班
+        map.put("20170401", false); // 班
+        map.put("20170403", true); // 休
+        map.put("20170404", true); // 休
+        map.put("20170501", true); // 休
+        map.put("20170527", false); // 班
+        map.put("20170529", true); // 休
+        map.put("20170530", true); // 休
+        map.put("20170930", false); // 班
+        map.put("20171002", true); // 休
+        return map;
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/util/presence/Year2018.java b/flower_city/src/main/java/com/dg/core/util/presence/Year2018.java
new file mode 100644
index 0000000..4a92ace
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/util/presence/Year2018.java
@@ -0,0 +1,41 @@
+package com.dg.core.util.presence;
+
+import com.iceyyy.icework.presence.Year20xx;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class Year2018 implements Year20xx {
+
+    @Override
+    public Map<String, Boolean> getYearMap() {
+        Map<String, Boolean> map = new HashMap<String, Boolean>();
+        map.put("20180101", true); // 休
+        map.put("20180211", false); // 班
+        map.put("20180215", true); // 休
+        map.put("20180216", true); // 休
+        map.put("20180219", true); // 休
+        map.put("20180220", true); // 休
+        map.put("20180221", true); // 休
+        map.put("20180224", false); // 班
+        map.put("20180405", true); // 休
+        map.put("20180406", true); // 休
+        map.put("20180408", false); // 班
+        map.put("20180428", false); // 班
+        map.put("20180430", true); // 休
+        map.put("20180501", true); // 休
+        map.put("20180618", true); // 休
+        map.put("20180924", true); // 休
+        map.put("20180929", false); // 班
+        map.put("20180930", false); // 班
+        map.put("20181001", true); // 休
+        map.put("20181002", true); // 休
+        map.put("20181003", true); // 休
+        map.put("20181004", true); // 休
+        map.put("20181005", true); // 休
+        map.put("20181229", false); // 班
+        map.put("20181231", true); // 休
+        return map;
+    }
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/util/presence/Year2019.java b/flower_city/src/main/java/com/dg/core/util/presence/Year2019.java
new file mode 100644
index 0000000..f296d62
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/util/presence/Year2019.java
@@ -0,0 +1,39 @@
+package com.dg.core.util.presence;
+
+import com.iceyyy.icework.presence.Year20xx;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class Year2019 implements Year20xx {
+
+    @Override
+    public Map<String, Boolean> getYearMap() {
+        Map<String, Boolean> map = new HashMap<String, Boolean>();
+        map.put("20190101", true); // 休
+        map.put("20190202", false); // 班
+        map.put("20190203", false); // 班
+        map.put("20190204", true); // 休
+        map.put("20190205", true); // 休
+        map.put("20190206", true); // 休
+        map.put("20190207", true); // 休
+        map.put("20190208", true); // 休
+        map.put("20190405", true); // 休
+        map.put("20190428", false); // 班
+        map.put("20190501", true); // 休
+        map.put("20190502", true); // 休
+        map.put("20190503", true); // 休
+        map.put("20190505", false); // 班
+        map.put("20190607", true); // 休
+        map.put("20190913", true); // 休
+        map.put("20190929", false); // 班
+        map.put("20191001", true); // 休
+        map.put("20191002", true); // 休
+        map.put("20191003", true); // 休
+        map.put("20191004", true); // 休
+        map.put("20191007", true); // 休
+        map.put("20191012", false); // 班
+        return map;
+    }
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/util/presence/Year2020.java b/flower_city/src/main/java/com/dg/core/util/presence/Year2020.java
new file mode 100644
index 0000000..de2a26e
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/util/presence/Year2020.java
@@ -0,0 +1,42 @@
+package com.dg.core.util.presence;
+
+import com.iceyyy.icework.presence.Year20xx;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class Year2020 implements Year20xx {
+
+    @Override
+    public Map<String, Boolean> getYearMap() {
+        Map<String, Boolean> map = new HashMap<String, Boolean>();
+        map.put("20200101", true); // 休
+        map.put("20200119", false); // 班
+        map.put("20200124", true); // 休
+        map.put("20200127", true); // 休
+        map.put("20200128", true); // 休
+        map.put("20200129", true); // 休
+        map.put("20200130", true); // 休
+        map.put("20200131", true); // 休(+)
+        // map.put("20200201", false); // 班
+        map.put("20200406", true); // 休
+        map.put("20200426", false); // 班
+        map.put("20200501", true); // 休
+        map.put("20200504", true); // 休
+        map.put("20200505", true); // 休
+        map.put("20200509", false); // 班
+        map.put("20200625", true); // 休
+        map.put("20200626", true); // 休
+        map.put("20200628", false); // 班
+        map.put("20200927", false); // 班
+        map.put("20201001", true); // 休
+        map.put("20201002", true); // 休
+        map.put("20201005", true); // 休
+        map.put("20201006", true); // 休
+        map.put("20201007", true); // 休
+        map.put("20201008", true); // 休
+        map.put("20201010", false); // 班
+        return map;
+    }
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/util/presence/Year20xx.java b/flower_city/src/main/java/com/dg/core/util/presence/Year20xx.java
new file mode 100644
index 0000000..7946d3c
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/util/presence/Year20xx.java
@@ -0,0 +1,7 @@
+package com.dg.core.util.presence;
+
+import java.util.Map;
+
+public interface Year20xx {
+    public Map<String, Boolean> getYearMap();
+}
diff --git a/flower_city/src/main/java/com/dg/core/util/presence/YearMap.java b/flower_city/src/main/java/com/dg/core/util/presence/YearMap.java
new file mode 100644
index 0000000..a6bf1f3
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/util/presence/YearMap.java
@@ -0,0 +1,84 @@
+package com.dg.core.util.presence;
+
+import com.iceyyy.icework.presence.Year2001;
+import com.iceyyy.icework.presence.Year2002;
+import com.iceyyy.icework.presence.Year2003;
+import com.iceyyy.icework.presence.Year2004;
+import com.iceyyy.icework.presence.Year2005;
+import com.iceyyy.icework.presence.Year2006;
+import com.iceyyy.icework.presence.Year2007;
+import com.iceyyy.icework.presence.Year2008;
+import com.iceyyy.icework.presence.Year2009;
+import com.iceyyy.icework.presence.Year2010;
+import com.iceyyy.icework.presence.Year2011;
+import com.iceyyy.icework.presence.Year2012;
+import com.iceyyy.icework.presence.Year2013;
+import com.iceyyy.icework.presence.Year2014;
+import com.iceyyy.icework.presence.Year2015;
+import com.iceyyy.icework.presence.Year2016;
+import com.iceyyy.icework.presence.Year2017;
+import com.iceyyy.icework.presence.Year2018;
+import com.iceyyy.icework.presence.Year2019;
+import com.iceyyy.icework.presence.Year2020;
+import com.iceyyy.icework.presence.Year20xx;
+
+import java.util.Map;
+
+public class YearMap {
+
+    public static void main(String[] args) {
+        int year = 2001;
+        System.out.println(YearMap.yearMap(year));
+    }
+
+    public static Map<String, Boolean> yearMap(int year) {
+        com.iceyyy.icework.presence.Year20xx createMap = createMap(year);
+        return createMap.getYearMap();
+    }
+
+    private static Year20xx createMap(int year) {
+        if (year == 2001) {
+            return new Year2001();
+        } else if (year == 2002) {
+            return new Year2002();
+        } else if (year == 2003) {
+            return new Year2003();
+        } else if (year == 2004) {
+            return new Year2004();
+        } else if (year == 2005) {
+            return new Year2005();
+        } else if (year == 2006) {
+            return new Year2006();
+        } else if (year == 2007) {
+            return new Year2007();
+        } else if (year == 2008) {
+            return new Year2008();
+        } else if (year == 2009) {
+            return new Year2009();
+        } else if (year == 2010) {
+            return new Year2010();
+        } else if (year == 2011) {
+            return new Year2011();
+        } else if (year == 2012) {
+            return new Year2012();
+        } else if (year == 2013) {
+            return new Year2013();
+        } else if (year == 2014) {
+            return new Year2014();
+        } else if (year == 2015) {
+            return new Year2015();
+        } else if (year == 2016) {
+            return new Year2016();
+        } else if (year == 2017) {
+            return new Year2017();
+        } else if (year == 2018) {
+            return new Year2018();
+        } else if (year == 2019) {
+            return new Year2019();
+        } else if (year == 2020) {
+            return new Year2020();
+        }
+        return null;
+    }
+
+}
diff --git a/flower_city/src/main/java/com/dg/core/util/workday/Data.java b/flower_city/src/main/java/com/dg/core/util/workday/Data.java
new file mode 100644
index 0000000..a832c39
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/util/workday/Data.java
@@ -0,0 +1,19 @@
+package com.dg.core.util.workday;
+
+public class Data {
+    private int date;
+    private boolean repose;
+
+    public Data(int date, boolean repose) {
+        this.date = date;
+        this.repose = repose;
+    }
+
+    public int getDate() {
+        return date;
+    }
+
+    public boolean getRepose() {
+        return repose;
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/util/workday/WorkUtils.java b/flower_city/src/main/java/com/dg/core/util/workday/WorkUtils.java
new file mode 100644
index 0000000..63d3f40
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/util/workday/WorkUtils.java
@@ -0,0 +1,699 @@
+package com.dg.core.util.workday;
+
+import com.iceyyy.icework.presence.YearMap;
+import com.iceyyy.nongli.NongLi;
+import com.iceyyy.workday.Data;
+
+import java.io.BufferedReader;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.Map.Entry;
+
+/**
+ * iceworkday工作日算法
+ * @author IceWater zxcyhn@126.com
+ */
+public class WorkUtils {
+
+    public static Map<String, Boolean> weekendMap(String year) {
+        if (year == null || "".equals(year.trim())) {
+            throw new RuntimeException("传入的参数为空");
+        }
+        if (year.length() != 4) {
+            throw new RuntimeException("传入的参数格式错误,应传入yyyyMMdd格式的日期");
+        }
+        int yearNum = Integer.parseInt(year.substring(0, 4));
+        if (yearNum < 2001) {
+            throw new RuntimeException("工作日计算年份需要大于等于2001");
+        } else if (yearNum > 2017) {
+            Map<String, Boolean> mapFromFile = weekMapFromFile();
+            mapFromFile = filterMap(mapFromFile, yearNum);
+            Map<String, Boolean> map = complexCalculate(yearNum);
+            if (mapFromFile.size() != 0) {
+                map.putAll(mapFromFile);
+            }
+            return map;
+        } else {
+            Map<String, Boolean> map = YearMap.yearMap(yearNum);
+            return map;
+        }
+    }
+
+    public static boolean isWorkendDay(String ymd) {
+        if (ymd == null || "".equals(ymd)) {
+            throw new RuntimeException("输入的日期不能为空");
+        }
+        ymd = convertDate(ymd);
+        if("19991230".equals(ymd)) {
+            return true;
+        }
+        if("19991231".equals(ymd)) {
+            return true;
+        }
+        String yearStr = ymd.substring(0, 4);
+        Map<String, Boolean> weekendMap = weekendMap(yearStr);
+        Boolean isWeekend = weekendMap.get(ymd);
+        if (isWeekend == null) {
+            int day = getWeekDay(ymd);
+            if (day == 0 || day == 6) {
+                return true;
+            } else {
+                return false;
+            }
+        } else {
+            return isWeekend;
+        }
+    }
+
+	private static String convertDate(String dateStr) {
+		String[] array = null;
+		if (dateStr.contains("-")) {
+			array = dateStr.split("-");
+		} else if (dateStr.contains(".")) {
+			array = dateStr.split("\\.");
+		} else if (dateStr.contains("/")) {
+			array = dateStr.split("/");
+		} else if (dateStr.contains("_")) {
+			array = dateStr.split("_");
+		} else if (dateStr.contains("年")) {
+			if (dateStr.endsWith("日")) {
+				dateStr = dateStr.substring(0, dateStr.length() - 1);
+			}
+			array = dateStr.split("年|月");
+		} else {
+			if (dateStr.length() == 8) {
+				return dateStr;
+			}
+		}
+		String yearStr = array[0];
+		String monthStr = array[1];
+		String dayStr = array[2];
+		StringBuilder sb = new StringBuilder();
+		for (int i = 0; i < 4 - yearStr.length(); i++) {
+			sb.append("0");
+		}
+		sb.append(yearStr);
+		if (monthStr.length() == 1) {
+			sb.append("0");
+		}
+		sb.append(monthStr);
+		if (dayStr.length() == 1) {
+			sb.append("0");
+		}
+		sb.append(dayStr);
+		return sb.toString();
+	}
+
+    private static Map<String, Boolean> complexCalculate(int yearNum) {
+        Map<String, Boolean> map = new HashMap<String, Boolean>();
+        String newYear = "0101";
+        String chingming = "0405";
+        String labor = "0501";
+        String dragon = "0505L";
+        String autumn = "0815L";
+        Map<String, Boolean> newYearMap = gregorianNewYearMap(yearNum, newYear);
+        Map<String, Boolean> nextYearMap = gregorianNewYearMap(yearNum + 1, newYear);
+        map.putAll(currentYearMap(newYearMap, nextYearMap, yearNum));
+        map.putAll(festivalMap(yearNum, chingming));
+        map.putAll(newYearLunarMap(yearNum));
+        map.putAll(festivalMap(yearNum, labor));
+        map.putAll(festivalMap(yearNum, dragon));
+        map.putAll(nationalAutumnMap(yearNum, autumn));
+        return map;
+    }
+
+    private static Map<String, Boolean> nationalAutumnMap(int yearNum, String autumn) {
+        Map<String, Boolean> map = new HashMap<String, Boolean>();
+        String ymd = yearNum + "0815";// 中秋节
+        String ymdNational = yearNum + "1001";// 国庆节
+        String ymdAutumn = convertGregorian(ymd);
+        int day = getWeekDay(ymdNational);
+        Map<String, Boolean> mapHistory = getHistoryMap();
+        String key = ymdAutumn.substring(4, 8) + "_" + day;
+        if (mapHistory.get(key) != null) {
+            // TODO 此处希望从近几年相似的月份中进行类比,是一种优化算法,暂未实现,但不影响算法使用。
+        }
+        String monthAutumn = ymdAutumn.substring(4, 6);
+        String dateAutumn = ymdAutumn.substring(6, 8);
+        int monthAutumnNum = Integer.parseInt(monthAutumn);
+        int dateAutumnNum = Integer.parseInt(dateAutumn);
+        if (dateAutumnNum < 25 && monthAutumnNum == 9) {// 中秋在9.25以前
+            // 中秋最早9.7 最晚10.8
+            map.putAll(festivalMap(yearNum, "0815L"));// 中秋
+            map.putAll(nationalMap(yearNum));// 国庆
+        } else if (monthAutumnNum == 10) {// 中秋节在10月份
+            map.putAll(nationalOctMap(yearNum));// 国庆
+        } else if (dateAutumnNum >= 25 && monthAutumnNum == 9) {// 中秋节在9.25 9.26
+                                                                // 9.27 9.28
+                                                                // 9.29 9.30
+            // 1. 中秋 25 全部两段 周一~周日
+            // 2. 中秋 26 全部两段 周二~周一
+            // 3. 中秋 27 最复杂 周三~周二
+            // 4. 中秋 28 全部休8天 周四~周三
+            // 5. 中秋 29 全部休8天 周五~周四
+            // 6. 中秋 30 全部休8天 周六~周五
+            // 补班 最早 9.22 最迟 10.12
+            int dayAutumn = getWeekDay(ymdAutumn);
+            map.putAll(complexMap(yearNum, dateAutumnNum, dayAutumn));// 国庆
+        } else {
+            throw new RuntimeException("中秋日期格式错误");
+        }
+        return map;
+    }
+
+    private static Map<String, Boolean> complexMap(int yearNum, int dateAutumnNum, int dayAutumn) {
+        com.iceyyy.workday.Data[][] table = getAutumnTable(dateAutumnNum);
+        com.iceyyy.workday.Data[] row = getRow(table, dateAutumnNum, dayAutumn);
+        return row2map(row, yearNum);
+    }
+
+    private static Map<String, Boolean> row2map(com.iceyyy.workday.Data[] row, int yearNum) {
+        Map<String, Boolean> map = new HashMap<String, Boolean>();
+        for (int i = 0; i < row.length; i++) {
+            com.iceyyy.workday.Data data = row[i];
+            int date = data.getDate();
+            boolean repose = data.getRepose();
+            String monthStr = "10";// 10月份
+            if (date > 15) {
+                monthStr = "09";// 9月份
+            }
+            String dateStr = date + "";
+            if (date < 10) {
+                dateStr = "0" + date;
+            }
+            String key = yearNum + monthStr + dateStr;
+            map.put(key, repose);
+        }
+        return map;
+    }
+
+    /**
+     * 根据中秋的星期获取具体的某一行的数据
+     * 
+     * @param table
+     * @param dayAutumn
+     * @return
+     */
+    private static com.iceyyy.workday.Data[] getRow(com.iceyyy.workday.Data[][] table, int dateAutumnNum, int dayAutumn) {
+        // 25 1 [0]
+        // 25 2 [1]
+        // 25 3 [2]
+
+        // 26 1 [6]
+        // 26 2 [0]
+        // 26 3 [1]
+        // 26 4 [2]
+        // date+index-23=day
+        // index=day+23-date
+        int index = (dayAutumn + 31 - dateAutumnNum) % 7;
+        return table[index];
+    }
+
+    private static com.iceyyy.workday.Data[][] getAutumnTable(int dateAutumnNum) {
+        com.iceyyy.workday.Data[][] days1 = {
+                { new com.iceyyy.workday.Data(25, true), new com.iceyyy.workday.Data(30, false), new com.iceyyy.workday.Data(2, true), new com.iceyyy.workday.Data(3, true), new com.iceyyy.workday.Data(4, true),
+                        new com.iceyyy.workday.Data(5, true), new com.iceyyy.workday.Data(6, true), new com.iceyyy.workday.Data(8, false) },
+                { new com.iceyyy.workday.Data(22, false), new com.iceyyy.workday.Data(24, true), new com.iceyyy.workday.Data(25, true), new com.iceyyy.workday.Data(29, false), new com.iceyyy.workday.Data(30, false),
+                        new com.iceyyy.workday.Data(1, true), new com.iceyyy.workday.Data(2, true), new com.iceyyy.workday.Data(3, true), new com.iceyyy.workday.Data(4, true), new com.iceyyy.workday.Data(5, true) },
+                { new com.iceyyy.workday.Data(25, true), new com.iceyyy.workday.Data(26, true), new com.iceyyy.workday.Data(27, true), new com.iceyyy.workday.Data(28, false), new com.iceyyy.workday.Data(29, false),
+                        new com.iceyyy.workday.Data(1, true), new com.iceyyy.workday.Data(2, true), new com.iceyyy.workday.Data(3, true), new com.iceyyy.workday.Data(4, true), new com.iceyyy.workday.Data(7, true),
+                        new com.iceyyy.workday.Data(12, false) },
+                { new com.iceyyy.workday.Data(21, false), new com.iceyyy.workday.Data(25, true), new com.iceyyy.workday.Data(26, true), new com.iceyyy.workday.Data(28, false), new com.iceyyy.workday.Data(1, true),
+                        new com.iceyyy.workday.Data(2, true), new com.iceyyy.workday.Data(3, true), new com.iceyyy.workday.Data(6, true), new com.iceyyy.workday.Data(7, true),
+                        new com.iceyyy.workday.Data(11, false) },
+                { new com.iceyyy.workday.Data(20, false), new com.iceyyy.workday.Data(25, true), new com.iceyyy.workday.Data(1, true), new com.iceyyy.workday.Data(2, true), new com.iceyyy.workday.Data(5, true),
+                        new com.iceyyy.workday.Data(6, true), new com.iceyyy.workday.Data(7, true), new com.iceyyy.workday.Data(10, false) },
+                { new com.iceyyy.workday.Data(27, true), new com.iceyyy.workday.Data(1, true), new com.iceyyy.workday.Data(4, true), new com.iceyyy.workday.Data(5, true), new com.iceyyy.workday.Data(6, true),
+                        new com.iceyyy.workday.Data(7, true), new com.iceyyy.workday.Data(9, false), new com.iceyyy.workday.Data(10, false) },
+                { new com.iceyyy.workday.Data(26, true), new com.iceyyy.workday.Data(3, true), new com.iceyyy.workday.Data(4, true), new com.iceyyy.workday.Data(5, true), new com.iceyyy.workday.Data(6, true),
+                        new com.iceyyy.workday.Data(7, true), new com.iceyyy.workday.Data(8, false), new com.iceyyy.workday.Data(9, false) } };
+        com.iceyyy.workday.Data[][] days2 = {
+                { new com.iceyyy.workday.Data(23, false), new com.iceyyy.workday.Data(25, true), new com.iceyyy.workday.Data(26, true), new com.iceyyy.workday.Data(30, false), new com.iceyyy.workday.Data(2, true),
+                        new com.iceyyy.workday.Data(3, true), new com.iceyyy.workday.Data(4, true), new com.iceyyy.workday.Data(5, true), new com.iceyyy.workday.Data(6, true),
+                        new com.iceyyy.workday.Data(8, false) },
+                { new com.iceyyy.workday.Data(23, false), new com.iceyyy.workday.Data(26, true), new com.iceyyy.workday.Data(27, true), new com.iceyyy.workday.Data(28, true), new com.iceyyy.workday.Data(29, false),
+                        new com.iceyyy.workday.Data(30, false), new com.iceyyy.workday.Data(1, true), new com.iceyyy.workday.Data(2, true), new com.iceyyy.workday.Data(3, true), new com.iceyyy.workday.Data(4, true),
+                        new com.iceyyy.workday.Data(5, true), new com.iceyyy.workday.Data(13, false) },
+                { new com.iceyyy.workday.Data(22, false), new com.iceyyy.workday.Data(26, true), new com.iceyyy.workday.Data(27, true), new com.iceyyy.workday.Data(29, false), new com.iceyyy.workday.Data(1, true),
+                        new com.iceyyy.workday.Data(2, true), new com.iceyyy.workday.Data(3, true), new com.iceyyy.workday.Data(4, true), new com.iceyyy.workday.Data(7, true) },
+                { new com.iceyyy.workday.Data(21, false), new com.iceyyy.workday.Data(26, true), new com.iceyyy.workday.Data(1, true), new com.iceyyy.workday.Data(2, true), new com.iceyyy.workday.Data(3, true),
+                        new com.iceyyy.workday.Data(6, true), new com.iceyyy.workday.Data(7, true) },
+                { new com.iceyyy.workday.Data(1, true), new com.iceyyy.workday.Data(2, true), new com.iceyyy.workday.Data(5, true), new com.iceyyy.workday.Data(6, true), new com.iceyyy.workday.Data(7, true),
+                        new com.iceyyy.workday.Data(10, false) },
+                { new com.iceyyy.workday.Data(1, true), new com.iceyyy.workday.Data(4, true), new com.iceyyy.workday.Data(5, true), new com.iceyyy.workday.Data(6, true), new com.iceyyy.workday.Data(7, true),
+                        new com.iceyyy.workday.Data(9, false) },
+                { new com.iceyyy.workday.Data(26, true), new com.iceyyy.workday.Data(3, true), new com.iceyyy.workday.Data(4, true), new com.iceyyy.workday.Data(5, true), new com.iceyyy.workday.Data(6, true),
+                        new com.iceyyy.workday.Data(7, true), new com.iceyyy.workday.Data(8, false), new com.iceyyy.workday.Data(9, false) } };
+        com.iceyyy.workday.Data[][] days3 = {
+                { new com.iceyyy.workday.Data(23, false), new com.iceyyy.workday.Data(24, false), new com.iceyyy.workday.Data(25, true), new com.iceyyy.workday.Data(26, true), new com.iceyyy.workday.Data(27, true),
+                        new com.iceyyy.workday.Data(30, false), new com.iceyyy.workday.Data(2, true), new com.iceyyy.workday.Data(3, true), new com.iceyyy.workday.Data(4, true), new com.iceyyy.workday.Data(5, true),
+                        new com.iceyyy.workday.Data(6, true), new com.iceyyy.workday.Data(8, false) },
+                { new com.iceyyy.workday.Data(27, true), new com.iceyyy.workday.Data(28, true), new com.iceyyy.workday.Data(1, true), new com.iceyyy.workday.Data(2, true), new com.iceyyy.workday.Data(3, true),
+                        new com.iceyyy.workday.Data(4, true), new com.iceyyy.workday.Data(6, false), new com.iceyyy.workday.Data(7, false) },
+                { new com.iceyyy.workday.Data(27, true), new com.iceyyy.workday.Data(30, true), new com.iceyyy.workday.Data(1, true), new com.iceyyy.workday.Data(2, true), new com.iceyyy.workday.Data(3, true),
+                        new com.iceyyy.workday.Data(4, true), new com.iceyyy.workday.Data(5, false), new com.iceyyy.workday.Data(6, false) },
+                { new com.iceyyy.workday.Data(1, true), new com.iceyyy.workday.Data(2, true), new com.iceyyy.workday.Data(3, true), new com.iceyyy.workday.Data(6, true), new com.iceyyy.workday.Data(7, true),
+                        new com.iceyyy.workday.Data(11, false) },
+                { new com.iceyyy.workday.Data(1, true), new com.iceyyy.workday.Data(2, true), new com.iceyyy.workday.Data(5, true), new com.iceyyy.workday.Data(6, true), new com.iceyyy.workday.Data(7, true),
+                        new com.iceyyy.workday.Data(10, false) },
+                { new com.iceyyy.workday.Data(27, true), new com.iceyyy.workday.Data(1, true), new com.iceyyy.workday.Data(4, true), new com.iceyyy.workday.Data(5, true), new com.iceyyy.workday.Data(6, true),
+                        new com.iceyyy.workday.Data(7, true), new com.iceyyy.workday.Data(9, false), new com.iceyyy.workday.Data(10, false) },
+                { new com.iceyyy.workday.Data(24, false), new com.iceyyy.workday.Data(26, true), new com.iceyyy.workday.Data(27, true), new com.iceyyy.workday.Data(3, true), new com.iceyyy.workday.Data(4, true),
+                        new com.iceyyy.workday.Data(5, true), new com.iceyyy.workday.Data(6, true), new com.iceyyy.workday.Data(7, true), new com.iceyyy.workday.Data(8, false),
+                        new com.iceyyy.workday.Data(9, false) } };
+        com.iceyyy.workday.Data[][] days4 = {
+                { new com.iceyyy.workday.Data(28, true), new com.iceyyy.workday.Data(29, true), new com.iceyyy.workday.Data(2, true), new com.iceyyy.workday.Data(3, true), new com.iceyyy.workday.Data(4, true),
+                        new com.iceyyy.workday.Data(5, true), new com.iceyyy.workday.Data(7, false), new com.iceyyy.workday.Data(8, false) },
+                { new com.iceyyy.workday.Data(28, true), new com.iceyyy.workday.Data(1, true), new com.iceyyy.workday.Data(2, true), new com.iceyyy.workday.Data(3, true), new com.iceyyy.workday.Data(4, true),
+                        new com.iceyyy.workday.Data(5, true), new com.iceyyy.workday.Data(6, false), new com.iceyyy.workday.Data(7, false) },
+                { new com.iceyyy.workday.Data(30, true), new com.iceyyy.workday.Data(1, true), new com.iceyyy.workday.Data(2, true), new com.iceyyy.workday.Data(3, true), new com.iceyyy.workday.Data(4, true),
+                        new com.iceyyy.workday.Data(6, false) },
+                { new com.iceyyy.workday.Data(27, false), new com.iceyyy.workday.Data(29, true), new com.iceyyy.workday.Data(30, true), new com.iceyyy.workday.Data(1, true), new com.iceyyy.workday.Data(2, true),
+                        new com.iceyyy.workday.Data(3, true) },
+                { new com.iceyyy.workday.Data(26, false), new com.iceyyy.workday.Data(27, false), new com.iceyyy.workday.Data(28, true), new com.iceyyy.workday.Data(29, true), new com.iceyyy.workday.Data(30, true),
+                        new com.iceyyy.workday.Data(1, true), new com.iceyyy.workday.Data(2, true), new com.iceyyy.workday.Data(5, true) },
+                { new com.iceyyy.workday.Data(25, false), new com.iceyyy.workday.Data(26, false), new com.iceyyy.workday.Data(28, true), new com.iceyyy.workday.Data(29, true), new com.iceyyy.workday.Data(30, true),
+                        new com.iceyyy.workday.Data(1, true), new com.iceyyy.workday.Data(4, true), new com.iceyyy.workday.Data(5, true) },
+                { new com.iceyyy.workday.Data(25, false), new com.iceyyy.workday.Data(28, true), new com.iceyyy.workday.Data(29, true), new com.iceyyy.workday.Data(30, true), new com.iceyyy.workday.Data(3, true),
+                        new com.iceyyy.workday.Data(4, true), new com.iceyyy.workday.Data(5, true), new com.iceyyy.workday.Data(8, false) } };
+        com.iceyyy.workday.Data[][] days5 = {
+                { new com.iceyyy.workday.Data(29, true), new com.iceyyy.workday.Data(2, true), new com.iceyyy.workday.Data(3, true), new com.iceyyy.workday.Data(4, true), new com.iceyyy.workday.Data(5, true),
+                        new com.iceyyy.workday.Data(6, true), new com.iceyyy.workday.Data(7, false), new com.iceyyy.workday.Data(8, false) },
+                { new com.iceyyy.workday.Data(1, true), new com.iceyyy.workday.Data(2, true), new com.iceyyy.workday.Data(3, true), new com.iceyyy.workday.Data(4, true), new com.iceyyy.workday.Data(5, true),
+                        new com.iceyyy.workday.Data(7, false) },
+                { new com.iceyyy.workday.Data(28, false), new com.iceyyy.workday.Data(30, true), new com.iceyyy.workday.Data(1, true), new com.iceyyy.workday.Data(2, true), new com.iceyyy.workday.Data(3, true),
+                        new com.iceyyy.workday.Data(4, true) },
+                { new com.iceyyy.workday.Data(27, false), new com.iceyyy.workday.Data(28, false), new com.iceyyy.workday.Data(29, true), new com.iceyyy.workday.Data(30, true), new com.iceyyy.workday.Data(1, true),
+                        new com.iceyyy.workday.Data(2, true), new com.iceyyy.workday.Data(3, true), new com.iceyyy.workday.Data(6, true) },
+                { new com.iceyyy.workday.Data(26, false), new com.iceyyy.workday.Data(27, false), new com.iceyyy.workday.Data(29, true), new com.iceyyy.workday.Data(30, true), new com.iceyyy.workday.Data(1, true),
+                        new com.iceyyy.workday.Data(2, true), new com.iceyyy.workday.Data(5, true), new com.iceyyy.workday.Data(6, true) },
+                { new com.iceyyy.workday.Data(26, false), new com.iceyyy.workday.Data(29, true), new com.iceyyy.workday.Data(30, true), new com.iceyyy.workday.Data(1, true), new com.iceyyy.workday.Data(4, true),
+                        new com.iceyyy.workday.Data(5, true), new com.iceyyy.workday.Data(6, true), new com.iceyyy.workday.Data(9, false) },
+                { new com.iceyyy.workday.Data(29, true), new com.iceyyy.workday.Data(30, true), new com.iceyyy.workday.Data(3, true), new com.iceyyy.workday.Data(4, true), new com.iceyyy.workday.Data(5, true),
+                        new com.iceyyy.workday.Data(6, true), new com.iceyyy.workday.Data(8, false), new com.iceyyy.workday.Data(9, false) } };
+        com.iceyyy.workday.Data[][] days6 = {
+                { new com.iceyyy.workday.Data(2, true), new com.iceyyy.workday.Data(3, true), new com.iceyyy.workday.Data(4, true), new com.iceyyy.workday.Data(5, true), new com.iceyyy.workday.Data(6, true),
+                        new com.iceyyy.workday.Data(8, false) },
+                { new com.iceyyy.workday.Data(29, false), new com.iceyyy.workday.Data(1, true), new com.iceyyy.workday.Data(2, true), new com.iceyyy.workday.Data(3, true), new com.iceyyy.workday.Data(4, true),
+                        new com.iceyyy.workday.Data(5, true) },
+                { new com.iceyyy.workday.Data(28, false), new com.iceyyy.workday.Data(29, false), new com.iceyyy.workday.Data(30, true), new com.iceyyy.workday.Data(1, true), new com.iceyyy.workday.Data(2, true),
+                        new com.iceyyy.workday.Data(3, true), new com.iceyyy.workday.Data(4, true), new com.iceyyy.workday.Data(7, true) },
+                { new com.iceyyy.workday.Data(27, false), new com.iceyyy.workday.Data(28, false), new com.iceyyy.workday.Data(30, true), new com.iceyyy.workday.Data(1, true), new com.iceyyy.workday.Data(2, true),
+                        new com.iceyyy.workday.Data(3, true), new com.iceyyy.workday.Data(6, true), new com.iceyyy.workday.Data(7, true) },
+                { new com.iceyyy.workday.Data(27, false), new com.iceyyy.workday.Data(30, true), new com.iceyyy.workday.Data(1, true), new com.iceyyy.workday.Data(2, true), new com.iceyyy.workday.Data(5, true),
+                        new com.iceyyy.workday.Data(6, true), new com.iceyyy.workday.Data(7, true), new com.iceyyy.workday.Data(10, false) },
+                { new com.iceyyy.workday.Data(30, true), new com.iceyyy.workday.Data(1, true), new com.iceyyy.workday.Data(4, true), new com.iceyyy.workday.Data(5, true), new com.iceyyy.workday.Data(6, true),
+                        new com.iceyyy.workday.Data(7, true), new com.iceyyy.workday.Data(9, false), new com.iceyyy.workday.Data(10, false) },
+                { new com.iceyyy.workday.Data(30, true), new com.iceyyy.workday.Data(3, true), new com.iceyyy.workday.Data(4, true), new com.iceyyy.workday.Data(5, true), new com.iceyyy.workday.Data(6, true),
+                        new com.iceyyy.workday.Data(7, true), new com.iceyyy.workday.Data(8, false), new Data(9, false) } };
+        if (dateAutumnNum == 25) {
+            return days1;
+        } else if (dateAutumnNum == 26) {
+            return days2;
+        } else if (dateAutumnNum == 27) {
+            return days3;
+        } else if (dateAutumnNum == 28) {
+            return days4;
+        } else if (dateAutumnNum == 29) {
+            return days5;
+        } else if (dateAutumnNum == 30) {
+            return days6;
+        }
+        throw new RuntimeException("中秋日期格式错误");
+    }
+
+    private static Map<String, Boolean> nationalOctMap(int yearNum) {
+        String ymd = yearNum + "1001";
+        int day = getWeekDay(ymd);
+        Map<String, Boolean> map = new HashMap<String, Boolean>();
+        int[][] correction = { { 30 }, { 29, 30 }, { 28, 29 }, { 28, 11 }, { 27, 10 }, { 9, 10 }, { 9 } };
+        for (int i = 0; i < correction[day].length; i++) {
+            int corr = correction[day][i];
+            if (corr <= 15) {
+                String key = yearNum + "10" + convertNum(corr);
+                map.put(key, false);
+            } else {
+                String key = yearNum + "09" + convertNum(corr);
+                map.put(key, false);
+            }
+        }
+        int start = 0;
+        if (day == 0 || day == 1) {
+            start = -1;
+        }
+        int end = 0;
+        if (day == 5) {
+            end = 1;
+        }
+        for (int i = 0 + start; i < 8 + end; i++) {// 国庆节一般为7天
+            String curDate = addDay(ymd, i);
+            int curDay = getWeekDay(curDate);
+            if (curDay > 0 && curDay < 6) {
+                map.put(curDate, true);
+            }
+        }
+        return map;
+    }
+
+    private static Map<String, Boolean> nationalMap(int yearNum) {
+        String ymd = yearNum + "1001";
+        int day = getWeekDay(ymd);
+        Map<String, Boolean> map = new HashMap<String, Boolean>();
+        int[][] correction = { { 30, 8 }, { 29, 14 }, { 29, 12 }, { 28, 11 }, { 10 }, { 26, 9 }, { 8, 9 } };
+        if (day > 0 && day < 6) {
+            map.put(ymd, true);
+        }
+        for (int i = 0; i < correction[day].length; i++) {
+            int corr = correction[day][i];
+            if (corr <= 15) {
+                String key = yearNum + "10" + convertNum(corr);
+                map.put(key, false);
+            } else {
+                String key = yearNum + "09" + convertNum(corr);
+                map.put(key, false);
+            }
+        }
+        for (int i = 0; i < 7; i++) {// 国庆节一般为7天
+            String curDate = addDay(ymd, i);
+            int curDay = getWeekDay(curDate);
+            if (curDay > 0 && curDay < 6) {
+                map.put(curDate, true);
+            }
+        }
+        return map;
+    }
+
+    private static String convertNum(int num) {
+        if (num < 10) {
+            return "0" + num;
+        } else {
+            return num + "";
+        }
+    }
+
+    private static Map<String, Boolean> getHistoryMap() {
+        Map<String, Boolean> map = new HashMap<String, Boolean>();
+        return map;
+    }
+
+    private static Map<String, Boolean> newYearLunarMap(int yearNum) {
+        Map<String, Boolean> map = new HashMap<String, Boolean>();
+        String ymd = yearNum + "0101";
+        ymd = convertGregorian(ymd);
+        int day = getWeekDay(ymd);
+        int[][] correction = { { 6, 7 }, { -2, 6 }, { -3, 12 }, { -3, 10 }, { -4, 9 }, { -5, 8 }, { -6, 7 } };
+        int correct = -1;
+        if (yearNum == 2014 || yearNum <= 2007) {
+            correction = new int[][] { { 6, 7 }, { -2, 6 }, { -3, 12 }, { -3, 10 }, { -4, 9 }, { -5, 8 }, { -6, 7 } };
+            correct = 0;
+        }
+        for (int i = 0; i < correction[day].length; i++) {
+            map.put(addDay(ymd, correction[day][i]), false);
+        }
+        for (int i = 0; i < 7; i++) {
+            String curYmd = addDay(ymd, i + correct);
+            int dayCur = getWeekDay(curYmd);
+            if (dayCur > 0 && dayCur < 6) {
+                map.put(curYmd, true);
+            }
+        }
+        return map;
+    }
+
+    private static Map<String, Boolean> currentYearMap(Map<String, Boolean> newYearMap,
+            Map<String, Boolean> nextYearMap, int yearNum) {
+        String yearStr = yearNum + "";
+        Set<String> setCur = newYearMap.keySet();
+        Set<String> setNext = nextYearMap.keySet();
+        Map<String, Boolean> map = new HashMap<String, Boolean>();
+        for (String key : setCur) {
+            if (key.startsWith(yearStr)) {
+                map.put(key, newYearMap.get(key));
+            }
+        }
+        for (String key : setNext) {
+            if (key.startsWith(yearStr)) {
+                map.put(key, nextYearMap.get(key));
+            }
+        }
+        return map;
+    }
+
+    private static Map<String, Boolean> festivalMap(int yearNum, String festival) {
+        String ymd = yearNum + festival;
+        if (festival.endsWith("L")) {
+            festival = festival.substring(0, festival.length() - 1);
+            ymd = convertGregorian(ymd);
+        } else if ("0405".equals(festival)) {
+            ymd = chingming(yearNum);
+        }
+        return small(ymd);
+    }
+
+    private static Map<String, Boolean> gregorianNewYearMap(int yearNum, String festival) {
+        String ymd = yearNum + festival;
+        return gregorianNewYearSmall(ymd);
+    }
+
+    private static String chingming(int yearNum) {
+        return yearNum + "040" + qing(yearNum);
+    }
+
+    /**
+     * 计算清明节的日期(可计算范围: 1700-3100)
+     * 
+     * @param year
+     *            需要计算的年份
+     * @return 清明节在公历中的日期
+     */
+    private static int qing(int year) {
+        if (year == 2232) {
+            return 4;
+        }
+        if (year < 1700) {
+            throw new RuntimeException("1700年以前暂时不支持");
+        }
+        if (year >= 3100) {
+            throw new RuntimeException("3100年以后暂时不支持");
+        }
+        double[] coefficient = { 5.15, 5.37, 5.59, 4.82, 5.02, 5.26, 5.48, 4.70, 4.92, 5.135, 5.36, 4.60, 4.81, 5.04,
+                5.26 };
+        int mod = year % 100;
+        return (int) (mod * 0.2422 + coefficient[year / 100 - 17] - mod / 4);
+    }
+
+    private static Map<String, Boolean> small(String ymd) {
+        int day = getWeekDay(ymd);
+        Map<String, Boolean> map = new HashMap<String, Boolean>();
+        int[][] correction = { { 1 }, {}, { -1, -3 }, { -1, -2, -3, -4 }, { 1, 3 }, {}, { 2 } };
+        // 6.取-1 2014年清明 2015年端午 6. 取2 2012年端午
+        if (day > 0 && day < 6) {
+            map.put(ymd, true);
+        }
+        if (day == 3) {
+            map.put(addDay(ymd, -1), true);
+            map.put(addDay(ymd, -2), true);
+            map.put(addDay(ymd, -3), false);
+            map.put(addDay(ymd, -4), false);
+        } else {
+            boolean flag = true;
+            for (int i = 0; i < correction[day].length; i++) {
+                map.put(addDay(ymd, correction[day][i]), flag);
+                flag = false;
+            }
+        }
+        return map;
+    }
+
+    private static Map<String, Boolean> gregorianNewYearSmall(String ymd) {
+        int day = getWeekDay(ymd);
+        Map<String, Boolean> map = new HashMap<String, Boolean>();
+        int[][] correction = { { 1 }, {}, { 1, 2, 4, 5 }, {}, { 1, 2, 3 }, {}, { 2 } };
+        // 6.取-1 2014年清明 2015年端午 6. 取2 2012年端午 0{+1}1{} 2{+1+2 +4b+5b} 3{}
+        // 4{+1,+2,+3b}5{}6{+2}
+        if (day > 0 && day < 6) {
+            map.put(ymd, true);
+        }
+        if (day == 2) {
+            map.put(addDay(ymd, 1), true);
+            map.put(addDay(ymd, 2), true);
+            map.put(addDay(ymd, 4), false);
+            map.put(addDay(ymd, 5), false);
+        } else if (day == 3) {
+
+        } else if (day == 4) {
+            map.put(addDay(ymd, 1), true);
+            map.put(addDay(ymd, 3), false);
+        } else {
+            boolean flag = true;
+            for (int i = 0; i < correction[day].length; i++) {
+                map.put(addDay(ymd, correction[day][i]), flag);
+                flag = false;
+            }
+        }
+        return map;
+    }
+
+    private static int getWeekDay(String ymd) {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+        Date date = null;
+        try {
+            date = sdf.parse(ymd);
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        int day = calendar.get(Calendar.DAY_OF_WEEK) - 1;
+        return day;
+    }
+
+    private static String convertGregorian(String ymd) {// private
+        String cnYmd = convertCnYmd(ymd);
+        int start = 18;
+        int len = 60;// 公历农历按最多相差60天计算。
+        for (int i = start; i < start + len; i++) {
+            String gregorianDate = addDay(ymd, i);
+            String lunarDate = NongLi.getDate(gregorianDate);
+            if (cnYmd.equals(lunarDate)) {
+                return gregorianDate;
+            }
+        }
+        return null;
+    }
+
+    private static String convertCnYmd(String ymd) {// private
+        String numArray = "零一二三四五六七八九十";
+        String m = ymd.substring(4, 6);
+        String d = ymd.substring(6, 8);
+        int month = Integer.parseInt(m);
+        int day = Integer.parseInt(d);
+        String yearStr = "";
+        for (int i = 0; i < 4; i++) {
+            yearStr += numArray.charAt(ymd.charAt(i) - '0') + "";
+        }
+        yearStr += "年";
+        String monthStr = "";
+        if ("11".equals(m)) {
+            monthStr = "冬";
+        } else if ("12".equals(m)) {
+            monthStr = "腊";
+        } else if ("01".equals(m)) {
+            monthStr = "正";
+        } else {
+            monthStr = numArray.charAt(month) + "";
+        }
+        monthStr += "月";
+        String dayStr = "";
+        if (day <= 10) {
+            dayStr = "初" + numArray.charAt(day);
+        } else if (day < 20) {
+            dayStr = "十" + numArray.charAt(day - 10);
+        } else if (day == 20) {
+            dayStr = "二十";
+        } else if (day == 30) {
+            dayStr = "三十";
+        } else {
+            dayStr = "廿" + numArray.charAt(day - 20);
+        }
+        return yearStr + monthStr + dayStr;
+    }
+
+    private static String addDay(String date, int dayLength) {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+        Date dateSrc = null;
+        try {
+            dateSrc = sdf.parse(date);
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(dateSrc);
+        cal.set(Calendar.DAY_OF_MONTH, cal.get(Calendar.DAY_OF_MONTH) + dayLength);
+        return sdf.format(cal.getTime());
+    }
+
+    private static String[] read(String fileName) {
+        BufferedReader br = null;
+        ArrayList<String> list = new ArrayList<String>();
+
+        try {
+            br = new BufferedReader(
+                    new InputStreamReader(WorkUtils.class.getClassLoader().getResourceAsStream(fileName)));
+            String every = null;
+            while ((every = br.readLine()) != null) {
+                if (!every.startsWith("#")) {
+                    list.add(every);
+                }
+            }
+            String[] datas = new String[list.size()];
+            for (int i = 0; i < datas.length; i++) {
+                datas[i] = list.get(i);
+            }
+            return datas;
+        } catch (FileNotFoundException e) {
+            e.printStackTrace();
+        } catch (IOException e) {
+            e.printStackTrace();
+        } finally {
+            if (br != null) {
+                try {
+                    br.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+        return null;
+    }
+
+    private static Map<String, Boolean> weekMapFromFile() {
+        Map<String, Boolean> map = new HashMap<String, Boolean>();
+        String fileName = "iceweek.txt";
+        String[] lines = WorkUtils.read(fileName);
+        for (String line : lines) {
+            if (line == null || line.length() != 9) {
+                continue;
+            }
+            String key = line.substring(0, 8);
+            Boolean value = convertWork(line.substring(8));
+            map.put(key, value);
+        }
+        return map;
+    }
+
+    private static Boolean convertWork(String str) {
+        if ("b".equals(str)) {
+            return false;
+        } else if ("x".equals(str)) {
+            return true;
+        }
+        return null;
+    }
+
+    private static Map<String, Boolean> filterMap(Map<String, Boolean> map, int year) {
+        String yearStr = year + "";
+        Map<String, Boolean> newMap = new HashMap<String, Boolean>();
+        Set<Entry<String, Boolean>> entrySet = map.entrySet();
+        for (Entry<String, Boolean> entry : entrySet) {
+            String key = entry.getKey();
+            Boolean value = entry.getValue();
+            if (key != null && key.startsWith(yearStr)) {
+                newMap.put(key, value);
+            }
+        }
+        return newMap;
+    }
+
+    /**
+     * 提示语
+     * @return 提示语
+     */
+    protected static String warn() {
+        return "注意:该算法对于将来的时间仅是预测,并不能完全精确。";
+    }
+}
diff --git a/flower_city/src/main/java/com/dg/core/util/workday/WorkdayGen.java b/flower_city/src/main/java/com/dg/core/util/workday/WorkdayGen.java
new file mode 100644
index 0000000..e279939
--- /dev/null
+++ b/flower_city/src/main/java/com/dg/core/util/workday/WorkdayGen.java
@@ -0,0 +1,74 @@
+package com.dg.core.util.workday;
+
+import com.iceyyy.workday.WorkUtils;
+
+import java.util.*;
+
+public class WorkdayGen {
+
+    public static void main(String[] args) {
+        int year = 2021;
+        String code = genYearCode(year);
+        System.out.println(code);
+    }
+
+    protected static String gen(int year) {
+        String yearStr = String.valueOf(year);
+        Map<String, Boolean> weekendMap = WorkUtils.weekendMap(yearStr);
+        Set<String> keySet = weekendMap.keySet();
+        List<String> list = new ArrayList<>(keySet);
+        Collections.sort(list);
+        StringBuilder sb = new StringBuilder();
+        for (String ymd : list) {
+            boolean weekendDay = WorkUtils.isWorkendDay(ymd);
+            String itemCode = genItemCode(ymd, weekendDay);
+            sb.append(itemCode);
+        }
+        return sb.toString();
+    }
+
+    private static String genItemCode(String ymd, boolean weekendDay) {
+        StringBuilder sb = new StringBuilder();
+        String tab = "        ";
+        String nl = "\r\n";
+        sb.append(tab);
+        sb.append("map.put(\"");
+        sb.append(ymd);
+        sb.append("\", ");
+        sb.append(weekendDay);
+        sb.append("); // ");
+        sb.append(wordCode(weekendDay));
+        sb.append(nl);
+        return sb.toString();
+    }
+
+    private static String wordCode(boolean weekday) {
+        if (weekday) {
+            return "休";
+        } else {
+            return "班";
+        }
+    }
+
+    private static String genYearCode(int year) {
+        StringBuilder sb = new StringBuilder();
+        String nl = "\r\n";
+        sb.append("package com.iceyyy.icework.presence;" + nl);
+        sb.append("" + nl);
+        sb.append("import java.util.HashMap;" + nl);
+        sb.append("import java.util.Map;" + nl);
+        sb.append("");
+        sb.append("public class Year" + year + " implements Year20xx {" + nl);
+        sb.append("" + nl);
+        sb.append("    @Override" + nl);
+        sb.append("    public Map<String, Boolean> getYearMap() {" + nl);
+        sb.append("        Map<String, Boolean> map = new HashMap<String, Boolean>();" + nl);
+        String gen = gen(year);
+        sb.append(gen);
+        sb.append("        return map;" + nl);
+        sb.append("    }" + nl);
+        sb.append("" + nl);
+        sb.append("}" + nl);
+        return sb.toString();
+    }
+}
diff --git a/flower_city/src/main/resources/application-sms.properties b/flower_city/src/main/resources/application-sms.properties
new file mode 100644
index 0000000..946295a
--- /dev/null
+++ b/flower_city/src/main/resources/application-sms.properties
@@ -0,0 +1,25 @@
+#\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u01B6\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
+aliyun.key=LTAI4Frqq9fpJek6d3bC7Rn1
+aliyun.screct=wkyvU72m6JmCFepCzGVuSpsJOsbRV0
+aliyun.SignName=????
+aliyun.TemplateCode=SMS_254326275
+
+#??????????,???????????????????????????????????
+
+#??????
+#aliyun.TemplateCodeOvertime=SMS_254460011
+#??????
+aliyun.TemplateCodeOvertime=SMS_254460012
+
+#??????
+#aliyun.TemplateCodeComplete=SMS_254875101
+#??????
+aliyun.TemplateCodeComplete=SMS_254875102
+
+#??????
+#aliyun.TemplateCodeSubmit=SMS_254880764
+#??????
+aliyun.TemplateCodeSubmit=SMS_254880763
+
+
+
diff --git a/flower_city/src/main/resources/application.properties b/flower_city/src/main/resources/application.properties
new file mode 100644
index 0000000..7820992
--- /dev/null
+++ b/flower_city/src/main/resources/application.properties
@@ -0,0 +1,56 @@
+spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
+#spring.datasource.username=root
+#spring.datasource.password=nahanMysqlPwd&&RemoteRemote2019nahan
+spring.datasource.username=remote
+spring.datasource.password=Panzhihua!@#admin123#@!
+#spring.datasource.url=jdbc:mysql://10.8.0.74:3306/huacheng_smart_life?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&allowMultiQueries=true&serverTimezone=GMT%2B8
+#spring.datasource.url=jdbc:mysql://182.151.2.19:3306/huacheng_smart_life?allowMultiQueries=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
+spring.datasource.url=jdbc:mysql://118.121.197.120:3306/huacheng_smart_life?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+
+server.port=8187
+#server.port=8088
+
+swagger.enabled=true
+swagger.pathMapping=/
+#Redis
+#spring.redis.host=127.0.0.1
+#spring.redis.port=6379
+#spring.redis.database=2
+#spring.redis.password=nahanRedisPwsIsVerySimple&&
+
+spring.redis.host=192.168.1.52
+spring.redis.port=6379
+spring.redis.database=2
+spring.redis.password=ODEGi3MXRBNQ8pH2
+
+
+
+spring.mvc.pathmatch.matching-strategy=ant_path_matcher
+
+
+spring.servlet.multipart.max-file-size=100MB
+spring.servlet.multipart.max-request-size=150MB
+
+
+
+wx.open.app_id=wx118de8a734d269f0
+wx.open.app_secret=0264342daefde5cd70a6adada09ee5b1
+wx.open.redirect_url=http://yq.cdnhxx.com:8080/ucenter/wx/callback
+yygh.baseUrl=http://localhost:8080
+
+
+
+#ftp.username=root
+#ftp.password=6-gj!bx@TNb!Dwpjd]1h1Kvqmc
+#ftp.host=182.151.31.48
+#ftp.port=22
+#ftp.url=https://test.panzhihua.nhys.cdnhxx.com/
+
+
+
+
+ftp.username= root
+ftp.password= @!nY0[-zxO
+ftp.host= 182.151.24.68
+ftp.port= 22
+ftp.url= https://www.psciio.com
diff --git a/flower_city/src/main/resources/mapper/AgreementMapper.xml b/flower_city/src/main/resources/mapper/AgreementMapper.xml
new file mode 100644
index 0000000..eb55d52
--- /dev/null
+++ b/flower_city/src/main/resources/mapper/AgreementMapper.xml
@@ -0,0 +1,29 @@
+<?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.dg.core.db.gen.mapper.AgreementMapper">
+    <resultMap type="com.dg.core.db.gen.entity.Agreement" id="AgreementResult">
+        <id     property="id"      column="id"      />
+        <id     property="agreement"      column="agreement"      />
+        <id     property="updateUserId"      column="update_user_id"      />
+        <id     property="updateTime"      column="update_time"      />
+        <id     property="createTime"      column="create_time"      />
+        <id     property="createUserId"      column="create_user_id"      />
+        <id     property="agreementContent"      column="agreement_content"      />
+    </resultMap>
+
+    <sql id="selectAgreement">
+        select id,agreement,
+               (select user_name from automessage_sys_user where user_id=a.update_user_id)updateUserName,
+               update_user_id,
+               create_time,
+               update_time,
+               (select user_name from automessage_sys_user where user_id=a.create_user_id)createUserName,
+               create_user_id,agreement_content
+        FROM automessage_agreement a
+   </sql>
+
+    <select id="selectConfigList" resultMap="AgreementResult">
+        <include refid="selectAgreement" />
+    </select>
+
+</mapper>
diff --git a/flower_city/src/main/resources/mapper/AreaCode2022Mapper.xml b/flower_city/src/main/resources/mapper/AreaCode2022Mapper.xml
new file mode 100644
index 0000000..33281b7
--- /dev/null
+++ b/flower_city/src/main/resources/mapper/AreaCode2022Mapper.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.dg.core.db.gen.mapper.AreaCode2022Mapper">
+    <resultMap type="com.dg.core.db.gen.entity.AreaCode2022" id="AreaCodeResult">
+        <id     property="code"      column="code"      />
+        <id     property="name"      column="name"      />
+        <id     property="level"      column="level"      />
+        <id     property="pcode"      column="pcode"      />
+    </resultMap>
+
+    <sql id="selectAreaCode">
+        select code,name,level,pcode FROM automessage_area_code_2022
+    </sql>
+
+    <select id="selectByIdSet" resultMap="AreaCodeResult">
+        <include refid="selectAreaCode" />
+        WHERE code IN
+        <foreach collection="list" item="id" index="index" open="(" close=")" separator=",">
+            #{id}
+        </foreach>
+        order by level
+    </select>
+
+</mapper>
diff --git a/flower_city/src/main/resources/mapper/AutomessageCommonProblemMapper.xml b/flower_city/src/main/resources/mapper/AutomessageCommonProblemMapper.xml
new file mode 100644
index 0000000..91435f6
--- /dev/null
+++ b/flower_city/src/main/resources/mapper/AutomessageCommonProblemMapper.xml
@@ -0,0 +1,54 @@
+<?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.dg.core.db.gen.mapper.AutomessageCommonProblemMapper">
+    <resultMap type="com.dg.core.db.gen.entity.AutomessageCommonProblem" id="AutomessageCommonProblemResult">
+        <id     property="id"      column="id"      />
+        <id     property="title"      column="title"      />
+        <id     property="content"      column="content"      />
+        <id     property="createTime"      column="create_time"      />
+        <id     property="updateTime"      column="update_time"      />
+        <id     property="updateUserId"      column="update_user_id"      />
+        <id     property="createUserId"      column="create_user_id"      />
+
+    </resultMap>
+
+    <sql id="selectAutomessageCommonProblemResul">
+        SELECT
+            id,
+            title,
+            content,
+            create_time,
+            update_time,
+            (select user_name from automessage_sys_user where user_id=a.update_user_id)updateUserName,
+            update_user_id,
+            (select user_name from automessage_sys_user where user_id=a.create_user_id)createUserName,
+            create_user_id
+        FROM
+            automessage_common_problem a
+    </sql>
+
+    <select id="selectConfigList" resultMap="AutomessageCommonProblemResult">
+        <include refid="selectAutomessageCommonProblemResul" />
+       <where>
+           <if test="title!=null and title!=''">
+               and title  like concat('%', #{title}, '%')
+           </if>
+           <if test="content!=null and content!=''">
+               and content  like concat('%', #{content}, '%')
+           </if>
+       </where>
+    </select>
+
+    <select id="countConfigList" resultType="integer">
+        select  count(*) from  automessage_common_problem
+        <where>
+            <if test="title!=null and title!=''">
+                and title  like concat('%', #{title}, '%')
+            </if>
+            <if test="content!=null and content!=''">
+                and content  like concat('%', #{content}, '%')
+            </if>
+        </where>
+    </select>
+
+</mapper>
diff --git a/flower_city/src/main/resources/mapper/AutomessagePolicyDocumentsMapper.xml b/flower_city/src/main/resources/mapper/AutomessagePolicyDocumentsMapper.xml
new file mode 100644
index 0000000..feb4ff0
--- /dev/null
+++ b/flower_city/src/main/resources/mapper/AutomessagePolicyDocumentsMapper.xml
@@ -0,0 +1,89 @@
+<?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.dg.core.db.gen.mapper.AutomessagePolicyDocumentsMapper">
+    <resultMap type="com.dg.core.db.gen.entity.AutomessagePolicyDocuments" id="AutomessagePolicyDocumentsResult">
+        <id     property="id"      column="id"      />
+        <id     property="departmentId"      column="department_id"      />
+        <id     property="name"      column="name"      />
+        <id     property="linkType"      column="link_type"      />
+        <id     property="articleLink"      column="article_link"      />
+        <id     property="richText"      column="rich_text"      />
+        <id     property="type"      column="type"      />
+        <id     property="createTime"      column="create_time"      />
+        <id     property="createUserId"      column="create_user_id"      />
+        <id     property="updateTime"      column="update_time"      />
+        <id     property="updateUserId"      column="update_user_id"      />
+    </resultMap>
+
+    <sql id="selectAutomessagePolicyDocumentsResult">
+        SELECT
+            id,
+            (select organization_name from  automessage_organization_chart where id=a.department_id )departmentName,
+            department_id,
+            name,
+            link_type,
+            type,
+            article_link,
+            rich_text,
+            create_time,
+            update_time,
+            (select user_name from automessage_sys_user where user_id=a.update_user_id)updateUserName,
+            update_user_id,
+            (select user_name from automessage_sys_user where user_id=a.create_user_id)createUserName,
+            create_user_id
+        FROM
+            automessage_policy_documents a
+    </sql>
+
+    <select id="selectConfigList" resultMap="AutomessagePolicyDocumentsResult">
+        <include refid="selectAutomessagePolicyDocumentsResult" />
+        <where>
+            <if test="name!=null and name!=''">
+                and name  like concat('%', #{name}, '%')
+            </if>
+            <if test="type!=null">
+                and type = #{type}
+            </if>
+            <if test="departmentId != null">
+                 and department_id  in  (SELECT id from automessage_organization_chart where id=#{departmentId} or parent_id = #{departmentId})
+            </if>
+            <if test="ids != null">
+                and department_id IN
+                <foreach collection="ids" item="param"  open="(" close=")" separator=",">
+                    #{param}
+                </foreach>
+            </if>
+        </where>
+        order by create_time desc
+    </select>
+
+    <select id="selectCountList" resultType="integer">
+      select count(*) from automessage_policy_documents
+      <where>
+            <if test="name!=null and name!=''">
+                and name  like concat('%', #{name}, '%')
+            </if>
+            <if test="type!=null">
+                and type = #{type}
+            </if>
+          <if test="departmentId != null">
+              and department_id  in  (SELECT id from automessage_organization_chart where id=#{departmentId} or parent_id = #{departmentId})
+          </if>
+          <if test="ids != null">
+              and department_id IN
+              <foreach collection="ids" item="param"  open="(" close=")" separator=",">
+                  #{param}
+              </foreach>
+          </if>
+        </where>
+    </select>
+
+    <select id="selectAutomessagePolicyDocumentById" resultMap="AutomessagePolicyDocumentsResult">
+        <include refid="selectAutomessagePolicyDocumentsResult" />
+        <where>
+            id = #{id}
+        </where>
+
+    </select>
+
+</mapper>
diff --git a/flower_city/src/main/resources/mapper/AutomessageSmartConsultingMapper.xml b/flower_city/src/main/resources/mapper/AutomessageSmartConsultingMapper.xml
new file mode 100644
index 0000000..3f0c69b
--- /dev/null
+++ b/flower_city/src/main/resources/mapper/AutomessageSmartConsultingMapper.xml
@@ -0,0 +1,5 @@
+<?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.dg.core.db.gen.mapper.AutomessageSmartConsultingMapper">
+
+</mapper>
diff --git a/flower_city/src/main/resources/mapper/AutomessageSysSettingsMapper.xml b/flower_city/src/main/resources/mapper/AutomessageSysSettingsMapper.xml
new file mode 100644
index 0000000..085d9d5
--- /dev/null
+++ b/flower_city/src/main/resources/mapper/AutomessageSysSettingsMapper.xml
@@ -0,0 +1,5 @@
+<?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.dg.core.db.gen.mapper.AutomessageSysSettingsMapper">
+
+</mapper>
diff --git a/flower_city/src/main/resources/mapper/AutomessageSysSettingsRecordMapper.xml b/flower_city/src/main/resources/mapper/AutomessageSysSettingsRecordMapper.xml
new file mode 100644
index 0000000..9336e4a
--- /dev/null
+++ b/flower_city/src/main/resources/mapper/AutomessageSysSettingsRecordMapper.xml
@@ -0,0 +1,5 @@
+<?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.dg.core.db.gen.mapper.AutomessageSysSettingsRecordMapper">
+
+</mapper>
diff --git a/flower_city/src/main/resources/mapper/AutomessageSysUserRecordMapper.xml b/flower_city/src/main/resources/mapper/AutomessageSysUserRecordMapper.xml
new file mode 100644
index 0000000..ae677ea
--- /dev/null
+++ b/flower_city/src/main/resources/mapper/AutomessageSysUserRecordMapper.xml
@@ -0,0 +1,174 @@
+<?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.dg.core.db.gen.mapper.AutomessageSysUserRecordMapper">
+    <resultMap type="com.dg.core.db.gen.entity.AutomessageSysUserRecord" id="AutomessageSysUserRecordResult">
+        <id     property="id"      column="id"      />
+        <id     property="userId"      column="user_id"      />
+        <id     property="createTime"      column="create_time"      />
+        <id     property="joinType"      column="join_type"      />
+    </resultMap>
+
+    <sql id="selectAgreement">
+        select id,user_id,
+               (select user_name from automessage_sys_user where user_id=a.user_id)userName,
+               create_time,join_type FROM automessage_sys_user_record a
+    </sql>
+<!--    小程序用户访问量统计1.累计访问量2.本年访问量 3.本月访问量 4.今日访问量 5.昨日访问-->
+    <select id="selectUserRecordCount"  resultType="com.dg.core.db.manual.pojo.AppletUserCount">
+        select count(*)visits,1 type  from  automessage_sys_user_record UNION
+        select count(*)visits,2 type  from  automessage_sys_user_record where year(create_time)=year(SYSDATE()) UNION
+        select count(*)visits,3 type  from  automessage_sys_user_record where DATE_FORMAT(create_time, '%Y%m' ) = DATE_FORMAT( CURDATE( ) ,'%Y%m' ) UNION
+        select count(*)visits,4 type  from  automessage_sys_user_record where to_days(create_time) = to_days(now()) UNION
+        select count(*)visits,5 type  from  automessage_sys_user_record where TO_DAYS( SYSDATE() ) - TO_DAYS(create_time) = 1
+    </select>
+
+    <select id="selectByDay" resultType="com.dg.core.db.manual.pojo.AppletUserCount">
+        select d.date, IFNULL(T.score,0) visits from
+            (
+                SELECT CURDATE() AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 1 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 2 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 3 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 4 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 5 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 6 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 7 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 8 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 9 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 10 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 11 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 12 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 13 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 14 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 15 DAY) AS date
+            )  d
+                left join(
+                select DATE_FORMAT(create_time,'%Y-%m-%d')create_time, COUNT(*) as score
+                from automessage_sys_user_record
+                group by DATE_FORMAT(create_time,'%Y-%m-%d')
+            ) T on T.create_time = d.date
+        GROUP BY d.date
+    </select>
+
+    <select id="selectByMonth" resultType="com.dg.core.db.manual.pojo.AppletUserCount">
+        select d.date, IFNULL(T.score,0) visits from
+            (
+                SELECT CURDATE() AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 1 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 2 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 3 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 4 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 5 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 6 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 7 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 8 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 9 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 10 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 11 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 12 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 13 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 14 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 15 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 16 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 17 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 18 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 19 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 20 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 21 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 22 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 23 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 24 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 25 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 26 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 27 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 28 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 29 DAY) AS date
+                UNION ALL
+                SELECT DATE_SUB(CURDATE(), INTERVAL 30 DAY) AS date
+            )  d
+                left join(
+                select DATE_FORMAT(create_time,'%Y-%m-%d')create_time, COUNT(*) as score
+                from automessage_sys_user_record
+                group by DATE_FORMAT(create_time,'%Y-%m-%d')
+            ) T on T.create_time = d.date
+        GROUP BY d.date
+    </select>
+
+    <select id="selectByYear" resultType="com.dg.core.db.manual.pojo.AppletUserCount">
+        select d.date, IFNULL(T.score,0) visits from
+            (
+                SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 11 month),"%Y-%m") date  UNION
+                SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 10 month),"%Y-%m") date  UNION
+                SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 9 month),"%Y-%m") date  UNION
+                SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 8 month),"%Y-%m")  date UNION
+                SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 7 month),"%Y-%m") date  UNION
+                SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 6 month),"%Y-%m") date UNION
+                SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 5 month),"%Y-%m") date  UNION
+                SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 4 month),"%Y-%m") date  UNION
+                SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 3 month),"%Y-%m")  date UNION
+                SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 2 month),"%Y-%m") date  UNION
+                SELECT DATE_FORMAT(DATE_SUB(NOW(),INTERVAL 1 month),"%Y-%m") date UNION
+                select DATE_FORMAT(NOW(),"%Y-%m") FROM DUAL
+            )  d
+                left join(
+                select DATE_FORMAT(create_time,'%Y-%m')create_time, COUNT(*) as score
+                from automessage_sys_user_record
+                group by DATE_FORMAT(create_time,'%Y-%m')
+            ) T on T.create_time = d.date
+        GROUP BY d.date
+    </select>
+
+<!--    删除因为token问题产出的重复脏数据-->
+    <delete id="deleteDistinct" parameterType="string">
+        DELETE FROM automessage_sys_user_record where id in
+                    (select id FROM(
+                        Select id,user_id,DATE_FORMAT(create_time,'%Y-%m-%d')create_time
+                        From automessage_sys_user_record Group By user_id,DATE_FORMAT(create_time,'%Y-%m-%d')  Having Count(*)>1)
+                        k)
+    </delete>
+
+</mapper>
diff --git a/flower_city/src/main/resources/mapper/AutomessageTransactionEventInterviewMapper.xml b/flower_city/src/main/resources/mapper/AutomessageTransactionEventInterviewMapper.xml
new file mode 100644
index 0000000..fa4cb67
--- /dev/null
+++ b/flower_city/src/main/resources/mapper/AutomessageTransactionEventInterviewMapper.xml
@@ -0,0 +1,5 @@
+<?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.dg.core.db.gen.mapper.AutomessageTransactionEventInterviewMapper">
+
+</mapper>
diff --git a/flower_city/src/main/resources/mapper/ClassifyAdministrationMapper.xml b/flower_city/src/main/resources/mapper/ClassifyAdministrationMapper.xml
new file mode 100644
index 0000000..32cf559
--- /dev/null
+++ b/flower_city/src/main/resources/mapper/ClassifyAdministrationMapper.xml
@@ -0,0 +1,127 @@
+<?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.dg.core.db.gen.mapper.ClassifyAdministrationMapper">
+
+    <resultMap type="com.dg.core.db.gen.entity.ClassifyAdministration" id="ClassifyAdministrationEntityResult">
+        <id     property="id"      column="id"      />
+        <id     property="classifyGrade"      column="classify_grade"      />
+        <id     property="createTime"      column="create_time"      />
+        <id     property="updateTime"      column="update_time"      />
+        <id     property="classifyIcon"      column="classify_icon"      />
+        <id     property="parentId"      column="parent_id"      />
+        <id     property="classifyName"      column="classify_name"      />
+
+    </resultMap>
+
+    <sql id="selectClassifyAdministrationEntityVo">
+        SELECT
+            id,
+            classify_grade,
+            create_time,
+            update_time,
+            parent_id,
+            (select ca.classify_name from automessage_classify_administration as ca where ca.id= automessage_classify_administration.parent_id) as parentName,
+            classify_name,
+            classify_icon,
+            (IF(classify_grade = '2',(SELECT count(id) FROM automessage_transaction_event WHERE automessage_transaction_event.classify_id=automessage_classify_administration.id),
+                (SELECT count(id) FROM automessage_transaction_event WHERE automessage_transaction_event.classify_id in (SELECT id FROM automessage_classify_administration
+                WHERE automessage_classify_administration.parent_id=automessage_transaction_event.classify_id))))  as  transactNum
+        FROM
+            automessage_classify_administration
+    </sql>
+
+    <select id="selectConfigList"  resultMap="ClassifyAdministrationEntityResult">
+        <include refid="selectClassifyAdministrationEntityVo"/>
+        <where>
+            <if test="classifyName != null and classifyName != ''">
+                AND classify_name like concat('%', #{classifyName}, '%')
+            </if>
+            <if test="classifyGrade != null and classifyGrade != ''">
+                AND classify_grade = #{classifyGrade}
+            </if>
+        </where>
+        order by create_time desc
+    </select>
+
+    <select id="selectRootList"  resultMap="ClassifyAdministrationEntityResult">
+        <include refid="selectClassifyAdministrationEntityVo"/>
+        <where>
+            parent_id=#{parentId}
+            <if test="departmentId!=null">
+                and id in (
+                select classify_id from  automessage_transaction_event where department_id in (select id from automessage_organization_chart where id=#{departmentId}  or parent_id=#{departmentId}) UNION
+                select parent_id from  automessage_classify_administration
+                where id in (select classify_id FROM automessage_transaction_event
+                where department_id in (select id from automessage_organization_chart where id=#{departmentId}  or parent_id=#{departmentId}))  )
+            </if>
+        </where>
+    </select>
+
+    <insert id="insertConfig" parameterType="com.dg.core.db.gen.entity.ClassifyAdministration">
+        insert into automessage_classify_administration (
+        <if test="id != null">id,</if>
+        <if test="classifyGrade != null and classifyGrade != '' ">classify_grade,</if>
+        <if test="parentId != null">parent_id,</if>
+        <if test="classifyName != null and classifyName != '' ">classify_name,</if>
+        <if test="classifyIcon != null and classifyIcon != '' ">classify_icon,</if>
+        update_time,
+        create_time
+        )values(
+        <if test="id != null">#{id},</if>
+        <if test="classifyGrade != null and classifyGrade != '' ">#{classifyGrade},</if>
+        <if test="parentId != null">#{parentId},</if>
+        <if test="classifyName != null and classifyName != '' ">#{classifyName},</if>
+        <if test="classifyIcon != null and classifyIcon != '' ">#{classifyIcon},</if>
+        sysdate(),
+        sysdate()
+        )
+    </insert>
+
+    <update id="updateConfig" parameterType="com.dg.core.db.gen.entity.ClassifyAdministration">
+        update automessage_classify_administration
+        <set>
+            <if test="id != null">id=#{id},</if>
+            <if test="classifyGrade != null and classifyGrade != '' ">classify_grade=#{classifyGrade},</if>
+            <if test="parentId != null">parent_id=#{parentId},</if>
+            <if test="classifyName != null and classifyName != '' ">classify_name=#{classifyName},</if>
+            <if test="classifyIcon != null and classifyIcon != '' ">classify_icon=#{classifyIcon},</if>
+            update_time=sysdate()
+        </set>
+        where  id= #{id}
+    </update>
+
+    <delete id="deleteConfigById" parameterType="String">
+        delete from automessage_classify_administration where id= #{id}
+    </delete>
+
+    <select id="countNum" resultType="integer">
+        select count(id) from automessage_classify_administration
+        <where>
+            <if test="classifyName != null and classifyName != ''">
+                AND classify_name like concat('%', #{classifyName}, '%')
+            </if>
+            <if test="classifyGrade != null and classifyGrade != ''">
+                AND classify_grade = #{classifyGrade}
+            </if>
+        </where>
+    </select>
+
+    <select id="selectParent" resultType="string">
+        select id from automessage_classify_administration
+        <where>
+            <if test="parentId != null and parentId != ''">
+                AND parent_id = #{parentId}
+            </if>
+        </where>
+    </select>
+
+    <select id="selectParentData" resultType="com.dg.core.db.gen.entity.ClassifyAdministration">
+        <include refid="selectClassifyAdministrationEntityVo"/>
+        <where>
+            <if test="parentId != null and parentId != ''">
+                AND parent_id = #{parentId}
+            </if>
+        </where>
+    </select>
+
+</mapper>
diff --git a/flower_city/src/main/resources/mapper/ElseAccessoryMapper.xml b/flower_city/src/main/resources/mapper/ElseAccessoryMapper.xml
new file mode 100644
index 0000000..5bc39ef
--- /dev/null
+++ b/flower_city/src/main/resources/mapper/ElseAccessoryMapper.xml
@@ -0,0 +1,126 @@
+<?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.dg.core.db.gen.mapper.ElseAccessoryMapper">
+
+    <resultMap type="com.dg.core.db.gen.entity.ElseAccessoryEntity" id="ElseAccessoryEntityResult">
+        <id     property="id"      column="id"      />
+        <id     property="departmentId"      column="department_id"      />
+        <id     property="createUserId"      column="create_user_id"      />
+        <id     property="createTime"      column="create_time"      />
+        <id     property="updateTime"      column="update_time"      />
+        <id     property="name"      column="name"      />
+        <id     property="url"      column="url"      />
+
+    </resultMap>
+
+    <sql id="selectElseAccessoryEntityVo">
+        SELECT
+            id,
+            department_id,
+            create_user_id,
+            (select organization_name from automessage_organization_chart where automessage_organization_chart.id=automessage_else_accessory.department_id) as departmentName,
+            create_time,
+            update_time,
+            (select automessage_sys_user.user_name from automessage_sys_user where automessage_sys_user.user_id=automessage_else_accessory.create_user_id) as createUserName,
+            url,
+            name
+        FROM
+            automessage_else_accessory
+    </sql>
+
+    <select id="selectConfigList"  resultMap="ElseAccessoryEntityResult">
+        SELECT
+        id,
+        department_id,
+        (select organization_name from automessage_organization_chart where automessage_organization_chart.id=automessage_else_accessory.department_id) as departmentName,
+        create_time,
+        update_time,
+        url,
+        name,
+        create_user_id,
+        (select automessage_sys_user.user_name from automessage_sys_user where
+        automessage_sys_user.user_id=automessage_else_accessory.create_user_id) as createUserName,
+        <if test="userId!=null and userId!=''">
+        (case create_user_id when  #{userId} then 1 else 0 end)isDelete
+        </if>
+        <if test="userId==null or userId==''">
+            1 isDelete
+        </if>
+        FROM
+        automessage_else_accessory
+        <where>
+            <if test="Name != null and Name != ''">
+                AND automessage_else_accessory.name like concat('%', #{Name}, '%')
+            </if>
+            <if test="ids != null">
+                and department_id IN
+                <foreach collection="ids" item="param"  open="(" close=")" separator=",">
+                    #{param}
+                </foreach>
+            </if>
+        </where>
+        order by create_time desc
+    </select>
+
+    <select id="selectListByIds"  resultMap="ElseAccessoryEntityResult">
+        <include refid="selectElseAccessoryEntityVo"/>
+        WHERE id IN
+        <foreach collection="array" item="id" index="index" open="(" close=")" separator=",">
+            #{id}
+        </foreach>
+        order by create_time desc
+    </select>
+
+
+    <insert id="insertConfig" parameterType="com.dg.core.db.gen.entity.ElseAccessoryEntity">
+        insert into automessage_else_accessory (
+        <if test="id != null">id,</if>
+        <if test="departmentId != null and departmentId != '' ">department_id,</if>
+        <if test="name != null and name != '' ">name,</if>
+        <if test="url != null and url != '' ">url,</if>
+        <if test="createUserId != null and createUserId != '' ">create_user_id,</if>
+        update_time,
+        create_time
+        )values(
+        <if test="id != null">#{id},</if>
+        <if test="departmentId != null and departmentId != '' ">#{departmentId},</if>
+        <if test="name != null and name != ''  ">#{name},</if>
+        <if test="url != null and url != '' ">#{url},</if>
+        <if test="createUserId != null and createUserId != '' ">#{createUserId},</if>
+        sysdate(),
+        sysdate()
+        )
+    </insert>
+
+    <update id="updateConfig" parameterType="com.dg.core.db.gen.entity.ElseAccessoryEntity">
+        update automessage_else_accessory
+        <set>
+            <if test="id != null">id=#{id},</if>
+            <if test="departmentId != null and departmentId != '' ">department_id=#{departmentId},</if>
+            <if test="name != null and name != ''  ">name=#{name},</if>
+            <if test="url != null and url != '' ">url=#{url},</if>
+            update_time=sysdate()
+        </set>
+        where  id= #{id}
+    </update>
+
+    <delete id="deleteConfigById" parameterType="string">
+        delete from automessage_else_accessory where id= #{Id}
+    </delete>
+
+    <select id="countNum" resultType="integer">
+        select count(id) from automessage_else_accessory
+        <where>
+            <if test="Name != null and Name != ''">
+                AND automessage_else_accessory.name like concat('%', #{Name}, '%')
+            </if>
+            <if test="ids != null">
+                and department_id IN
+                <foreach collection="ids" item="param"  open="(" close=")" separator=",">
+                    #{param}
+                </foreach>
+            </if>
+        </where>
+    </select>
+
+</mapper>
diff --git a/flower_city/src/main/resources/mapper/GuideEvolveMapper.xml b/flower_city/src/main/resources/mapper/GuideEvolveMapper.xml
new file mode 100644
index 0000000..4e70613
--- /dev/null
+++ b/flower_city/src/main/resources/mapper/GuideEvolveMapper.xml
@@ -0,0 +1,181 @@
+<?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.dg.core.db.gen.mapper.GuideEvolveMapper">
+
+    <resultMap type="com.dg.core.db.gen.entity.GuideEvolveEntity" id="GuideEvolveResult">
+        <id     property="id"      column="id"      />
+        <id     property="departmentalId"      column="departmental_id"      />
+        <id     property="toUserId"      column="to_user_id"      />
+        <id     property="fromUserId"      column="from_user_id"      />
+        <id     property="state"      column="state"      />
+        <id     property="remark"      column="remark"      />
+        <id     property="guideId"      column="guide_id"      />
+        <id     property="transactionId"      column="transaction_id"      />
+        <id     property="accessoryId"      column="accessory_id"      />
+        <id     property="accessoryName"      column="accessory_name"      />
+        <id     property="accessoryUrl"      column="accessory_url"      />
+        <id     property="createTime"      column="create_time"      />
+        <id     property="updateTime"      column="update_time"      />
+        <id     property="fromDepartmentalId"      column="from_departmental_id"      />
+        <id     property="videoUrl"      column="video_url"      />
+        <id     property="pictureUrl"      column="picture_url"      />
+        <id     property="guideOrderNum"      column="guide_order_num"      />
+        <id     property="isTimeout"      column="is_timeout"      />
+
+    </resultMap>
+
+    <sql id="selectGuideEvolveVo">
+        SELECT
+            id,
+            departmental_id,
+            (select user_name from automessage_sys_user where a.to_user_id=user_id)toUserName,
+            (select user_name from automessage_sys_user where a.from_user_id=user_id)fromUserName,
+            to_user_id,
+            from_user_id,
+            state,
+            remark,
+            guide_id,
+            transaction_id,
+            accessory_id,
+            accessory_name,
+            accessory_url,
+            from_departmental_id,
+            video_url,
+            picture_url,
+            create_time,
+            update_time,
+            guide_order_num,
+            is_timeout
+        FROM
+            automessage_guide_evolve a
+    </sql>
+
+    <select id="selectConfigList"  resultMap="GuideEvolveResult">
+        <include refid="selectGuideEvolveVo"/>
+        <where>
+            <if test="guideId != null and guideId != ''">
+                AND guide_id=#{guideId}
+            </if>
+        </where>
+        order by create_time desc
+    </select>
+
+    <select id="selectHideList" resultMap="GuideEvolveResult">
+        SELECT
+            id,
+            departmental_id,
+            IFNULL(
+                    (select  concat(substring(user_name,1,1),'老师') from automessage_sys_user where a.to_user_id=user_id and (user_type in (1,2) or is_division_head=1)),
+                    (select user_name from automessage_sys_user where a.to_user_id=user_id))toUserName,
+            IFNULL(
+                    (select  concat(substring(user_name,1,1),'老师') from automessage_sys_user where a.from_user_id=user_id and (user_type in (1,2) or is_division_head=1)),
+                    (select user_name from automessage_sys_user where a.from_user_id=user_id))fromUserName,
+            to_user_id,
+            from_user_id,
+            state,
+            remark,
+            guide_id,
+            transaction_id,
+            accessory_id,
+            accessory_name,
+            accessory_url,
+            from_departmental_id,
+            video_url,
+            picture_url,
+            create_time,
+            update_time,
+            guide_order_num,
+            is_timeout
+        FROM
+            automessage_guide_evolve a
+        <where>
+            <if test="guideId != null and guideId != ''">
+                AND guide_id=#{guideId}
+            </if>
+        </where>
+        order by create_time desc
+    </select>
+
+
+    <insert id="insertConfig" parameterType="com.dg.core.db.gen.entity.GuideEvolveEntity">
+        insert into automessage_guide_evolve (
+        <if test="departmentalId != null and departmentalId != '' ">departmental_id,</if>
+        <if test="toUserId != null and toUserId != '' ">to_user_id,</if>
+        <if test="fromUserId != null and fromUserId != '' ">from_user_id,</if>
+        <if test="state != null and state != '' ">state,</if>
+        <if test="remark != null and remark != '' ">remark,</if>
+        <if test="guideId != null and guideId != '' ">guide_id,</if>
+        <if test="transactionId != null and transactionId != '' ">transaction_id,</if>
+        <if test="accessoryId != null and accessoryId != '' ">accessory_id,</if>
+        <if test="accessoryName != null and accessoryName != '' ">accessory_name,</if>
+        <if test="accessoryUrl != null and accessoryUrl != '' ">accessory_url,</if>
+        <if test="fromDepartmentalId != null and fromDepartmentalId != '' ">from_departmental_id,</if>
+        <if test="videoUrl != null and videoUrl != '' ">video_url,</if>
+        <if test="pictureUrl != null and pictureUrl != '' ">picture_url,</if>
+        <if test="guidOrderNum != null and guidOrderNum != '' ">guide_order_num,</if>
+        <if test="isTimeout != null and isTimeout != '' ">is_timeout,</if>
+        update_time,
+        create_time
+        )values(
+        <if test="departmentalId != null and departmentalId != '' ">#{departmentalId},</if>
+        <if test="toUserId != null and toUserId != '' ">#{toUserId},</if>
+        <if test="fromUserId != null and fromUserId != '' ">#{fromUserId},</if>
+        <if test="state != null and state != '' ">#{state},</if>
+        <if test="remark != null and remark != '' ">#{remark},</if>
+        <if test="guideId != null and guideId != '' ">#{guideId},</if>
+        <if test="transactionId != null and transactionId != '' ">#{transactionId},</if>
+        <if test="accessoryId != null and accessoryId != '' ">#{accessoryId},</if>
+        <if test="accessoryName != null and accessoryName != '' ">#{accessoryName},</if>
+        <if test="accessoryUrl != null and accessoryUrl != '' ">#{accessoryUrl},</if>
+        <if test="fromDepartmentalId != null and fromDepartmentalId != '' ">#{fromDepartmentalId},</if>
+        <if test="videoUrl != null and videoUrl != '' ">#{videoUrl},</if>
+        <if test="pictureUrl != null and pictureUrl != '' ">#{pictureUrl},</if>
+        <if test="guidOrderNum != null and guidOrderNum != '' ">#{guidOrderNum},</if>
+        <if test="isTimeout != null and isTimeout != '' ">#{isTimeout},</if>
+        sysdate(),
+        sysdate()
+        )
+    </insert>
+
+    <update id="updateConfig" parameterType="com.dg.core.db.gen.entity.GuideEvolveEntity">
+        update automessage_guide_evolve
+        <set>
+            <if test="departmentalId != null and departmentalId != '' ">departmental_id=#{departmentalId},</if>
+            <if test="toUserId != null and toUserId != '' ">to_user_id=#{toUserId},</if>
+            <if test="fromUserId != null and fromUserId != '' ">from_user_id=#{fromUserId},</if>
+            <if test="state != null and state != '' ">state=#{state},</if>
+            <if test="remark != null and remark != '' ">remark=#{remark},</if>
+            <if test="guideId != null and guideId != '' ">guide_id=#{guideId},</if>
+            <if test="transactionId != null and transactionId != '' ">transaction_id=#{transactionId},</if>
+            <if test="accessoryId != null and accessoryId != '' ">accessory_id=#{accessoryId},</if>
+            <if test="accessoryName != null and accessoryName != '' ">accessory_name=#{accessoryName},</if>
+            <if test="accessoryUrl != null and accessoryUrl != '' ">accessory_url=#{accessoryUrl},</if>
+            <if test="fromDepartmentalId != null and fromDepartmentalId != '' ">from_departmental_id=#{fromDepartmentalId},</if>
+            <if test="videoUrl != null and videoUrl != '' ">video_url=#{videoUrl},</if>
+            <if test="pictureUrl != null and pictureUrl != '' ">picture_url=#{pictureUrl},</if>
+            <if test="isTimeout != null and isTimeout != '' ">is_timeout=#{isTimeout},</if>
+            update_time=sysdate()
+        </set>
+        where  id= #{Id}
+    </update>
+
+    <update id="updateGuid" parameterType="com.dg.core.db.gen.entity.GuideEvolveEntity">
+        UPDATE automessage_guide_evolve
+        SET guide_id = (SELECT id from automessage_guide_repair_order where order_num=automessage_guide_evolve.guide_order_num )
+        WHERE guide_id IS NULL
+    </update>
+
+    <delete id="deleteConfigById" parameterType="string">
+        delete from automessage_guide_evolve where id= #{Id}
+    </delete>
+
+    <select id="countNum" resultType="integer">
+        select count(id) from automessage_guide_evolve
+    </select>
+
+</mapper>
+
+
+
+
+
diff --git a/flower_city/src/main/resources/mapper/GuideRepairOrderImageMapper.xml b/flower_city/src/main/resources/mapper/GuideRepairOrderImageMapper.xml
new file mode 100644
index 0000000..30b971d
--- /dev/null
+++ b/flower_city/src/main/resources/mapper/GuideRepairOrderImageMapper.xml
@@ -0,0 +1,5 @@
+<?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.dg.core.db.gen.mapper.GuideRepairOrderImageMapper">
+
+</mapper>
diff --git a/flower_city/src/main/resources/mapper/GuideRepairOrderMapper.xml b/flower_city/src/main/resources/mapper/GuideRepairOrderMapper.xml
new file mode 100644
index 0000000..730bb4a
--- /dev/null
+++ b/flower_city/src/main/resources/mapper/GuideRepairOrderMapper.xml
@@ -0,0 +1,313 @@
+<?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.dg.core.db.gen.mapper.GuideRepairOrderMapper">
+
+    <resultMap type="com.dg.core.db.gen.entity.GuideRepairOrder" id="GuideRepairOrderResult">
+        <id     property="id"      column="id"      />
+        <id     property="orderNum"      column="order_num"      />
+        <id     property="matterId"      column="matter_id"      />
+        <id     property="matterName"      column="matter_name"      />
+        <id     property="departmentId"      column="department_id"      />
+        <id     property="classifyId"      column="classify_id"      />
+        <id     property="consultContent"      column="consult_content"      />
+        <id     property="consultUserName"      column="consult_user_name"      />
+        <id     property="submitUserId"      column="submit_user_id"      />
+        <id     property="guideUserId"      column="guide_user_id"      />
+        <id     property="guideDepartmentId"      column="guide_department_id"      />
+        <id     property="state"      column="state"      />
+        <id     property="consultUserPhone"      column="consult_user_phone"      />
+        <id     property="submitUserPhone"      column="submit_user_phone"      />
+        <id     property="guideUserPhone"      column="guide_user_phone"      />
+        <id     property="areaCode"      column="area_code"      />
+        <id     property="detailedAddress"      column="detailed_address"      />
+        <id     property="createTime"      column="create_time"      />
+        <id     property="updateTime"      column="update_time"      />
+        <id     property="evaluateContent"      column="evaluate_content"      />
+        <id     property="suggest"      column="suggest"      />
+        <id     property="evaluateState"      column="evaluate_state"      />
+        <id     property="serviceState"      column="service_state"      />
+        <id     property="images"      column="images"      />
+        <id     property="video"      column="video"      />
+        <id     property="isTimeout"      column="is_timeout"      />
+        <id     property="submitType"      column="submit_type"      />
+        <id     property="timeoutTime"      column="timeout_time"      />
+        <id     property="isPush"      column="is_push"      />
+        <id     property="isHideComments"      column="is_hide_comments"      />
+        <id     property="isRemindPush"      column="is_remind_push"      />
+
+    </resultMap>
+
+    <sql id="selectGuideRepairOrderVo">
+        SELECT
+            id,
+            order_num,
+            matter_id,
+            submit_type,
+            matter_name,
+            timeout_time,
+            is_hide_comments,
+            is_push,
+            (select organization_name from automessage_organization_chart where a.department_id=id)organizationName,
+            concat(
+                    (select classify_name from  automessage_classify_administration  where id=(select parent_id from  automessage_classify_administration  where id=a.classify_id)),
+                    '-',(select classify_name from  automessage_classify_administration  where id=a.classify_id)
+                ) sumClassifyName,
+            department_id,
+            classify_id,
+            consult_content,
+            concat((IFNULL(consult_user_name,'')),(IFNULL(consult_user_phone,''))) consultUser,
+            consult_user_name,
+            concat((IFNULL((select user_name from automessage_sys_user where a.submit_user_id=user_id ),'')), (IFNULL(submit_user_phone,''))) submitUser,
+            submit_user_id,
+            concat((IFNULL((select user_name from automessage_sys_user where a.guide_user_id=user_id ),'')), (ifnull(guide_user_phone,''))) guideUser,
+            guide_user_id,
+            (select organization_name from automessage_organization_chart where a.guide_department_id=id)guideDepartmentName,
+            guide_department_id,
+            state,
+            consult_user_phone,
+            submit_user_phone,
+            guide_user_phone,
+            (select name from automessage_area_code_2022 where code=a.area_code)areaName,
+            area_code,
+            detailed_address,
+            create_time,
+            update_time,
+            evaluate_content,
+            suggest,
+            evaluate_state,
+            service_state,
+            video,
+            images,
+            is_timeout
+        FROM
+            automessage_guide_repair_order a
+    </sql>
+
+    <select id="selectConfigList"  resultMap="GuideRepairOrderResult">
+        <include refid="selectGuideRepairOrderVo"/>
+        <where>
+            <if test="ids != null">
+                and guide_department_id IN
+                <foreach collection="ids" item="param"  open="(" close=")" separator=",">
+                    #{param}
+                </foreach>
+            </if>
+            <if test="guideUserId != null and guideUserId != ''">
+                AND a.guide_user_id=#{guideUserId}
+            </if>
+            <if test="matterName != null and matterName != ''">
+                AND (
+                (matter_name like concat('%', #{matterName}, '%')) or
+                ( classify_id in ( SELECT id FROM automessage_classify_administration WHERE classify_name like concat('%', #{matterName}, '%') ) )
+                or (classify_id in (SELECT id FROM automessage_classify_administration WHERE automessage_classify_administration.parent_id in
+                (SELECT id FROM automessage_classify_administration WHERE classify_name like concat('%', #{matterName}, '%')))
+                or  (select user_name from automessage_sys_user where a.guide_user_id=automessage_sys_user.user_id ) like concat('%', #{matterName}, '%')
+                or order_num like concat('%', #{matterName}, '%')   or
+                (select user_name from automessage_sys_user where a.submit_user_id=automessage_sys_user.user_id ) like concat('%',  #{matterName}, '%')
+                or consult_user_name like concat('%',  #{matterName}, '%')		or
+                guide_department_id   in (SELECT id  FROM automessage_organization_chart  WHERE organization_name like concat('%',  #{matterName}, '%')	)  )
+                )
+            </if>
+            <if test="status != null and status != ''">
+                AND a.state=#{status}
+            </if>
+            <if test="createTimeStartTime != null and createTimeStartTime != ''">
+                and create_time > #{createTimeStartTime}
+            </if>
+            <if test="createTimeTimeEndTime != null and createTimeTimeEndTime != ''">
+               and  #{createTimeTimeEndTime} > create_time
+            </if>
+            <if test="classifyId != null and classifyId != ''">
+                and  classify_id in (select id FROM automessage_classify_administration where  parent_id = #{classifyId})
+            </if>
+
+        </where>
+        order by  update_time desc ,  create_time desc
+    </select>
+
+    <select id="countConfigList"  resultType="integer">
+        select count(id) from automessage_guide_repair_order
+        <where>
+            <if test="ids != null">
+                and guide_department_id IN
+                <foreach collection="ids" item="param"  open="(" close=")" separator=",">
+                    #{param}
+                </foreach>
+            </if>
+            <if test="guideUserId != null and guideUserId != ''">
+                AND automessage_guide_repair_order.guide_user_id=#{guideUserId}
+            </if>
+            <if test="matterName != null and matterName != ''">
+                AND (
+                (matter_name like concat('%', #{matterName}, '%')) or
+                ( classify_id in ( SELECT id FROM automessage_classify_administration WHERE classify_name like concat('%', #{matterName}, '%') ) )
+                or (classify_id in (SELECT id FROM automessage_classify_administration WHERE automessage_classify_administration.parent_id in
+                (SELECT id FROM automessage_classify_administration WHERE classify_name like concat('%', #{matterName}, '%')))
+                or  (select user_name from automessage_sys_user where automessage_guide_repair_order.guide_user_id=automessage_sys_user.user_id ) like concat('%', #{matterName}, '%')
+                or order_num like concat('%', #{matterName}, '%')   or
+                (select user_name from automessage_sys_user where automessage_guide_repair_order.submit_user_id=automessage_sys_user.user_id ) like concat('%',  #{matterName}, '%')
+                or consult_user_name like concat('%',  #{matterName}, '%')		or
+                guide_department_id   in (SELECT id  FROM automessage_organization_chart  WHERE organization_name like concat('%',  #{matterName}, '%')	) )
+                )
+            </if>
+            <if test="status != null and status != ''">
+                AND automessage_guide_repair_order.state=#{status}
+            </if>
+
+        </where>
+    </select>
+
+    <select id="selectConfigData"  resultMap="GuideRepairOrderResult">
+        <include refid="selectGuideRepairOrderVo"/>
+        <where>
+            <if test="Id != null and Id != ''">
+                AND id=#{Id}
+            </if>
+            <if test="orderNum != null and orderNum != ''">
+                AND order_num=#{orderNum}
+            </if>
+        </where>
+    </select>
+
+
+    <select id="selectBySubmitId"  resultMap="GuideRepairOrderResult">
+        <include refid="selectGuideRepairOrderVo"/>
+        where submit_user_id=#{id} and ( state not in (3,5)  or ( state  in (3,5) and 60>datediff(now(),create_time)
+        )) order by create_time desc 
+    </select>
+
+
+
+    <update id="updateConfig" parameterType="com.dg.core.db.gen.entity.GuideRepairOrder">
+        update automessage_guide_repair_order
+        <set>
+            <if test="guideUserId != null and guideUserId != '' ">guide_user_id=#{guideUserId},</if>
+            <if test="guideDepartmentId != null and guideDepartmentId != '' ">guide_department_id=#{guideDepartmentId},</if>
+            <if test="state != null and state != '' ">state=#{state},</if>
+            <if test="guideUserPhone != null and guideUserPhone != '' ">guide_user_phone=#{guideUserPhone},</if>
+            <if test="evaluateState != null and evaluateState != '' ">evaluate_state=#{evaluateState},</if>
+            <if test="evaluateContent != null and evaluateContent != '' ">evaluate_content=#{evaluateContent},</if>
+            <if test="suggest != null and suggest != '' ">suggest=#{suggest},</if>
+            <if test="serviceState != null  ">service_state=#{serviceState},</if>
+            <if test="isTimeout != null  ">is_timeout=#{isTimeout},</if>
+            <if test="timeoutTime != null  ">timeout_time=#{timeoutTime},</if>
+            update_time=sysdate()
+        </set>
+        where  id= #{id}
+    </update>
+
+    <select id="countNum" resultType="integer">
+        select count(id) from automessage_guide_repair_order
+    </select>
+
+
+    <select id="countUser" resultType="integer">
+        select count(id) from automessage_guide_repair_order
+        <where>
+            <if test="userId != null and userId != ''">
+                AND guide_user_id=#{userId}
+            </if>
+            <if test="state != null and state != ''">
+                AND automessage_guide_repair_order.state = #{state}
+            </if>
+        </where>
+    </select>
+
+
+    <delete id="deleteConfigById" parameterType="string">
+        delete from automessage_guide_repair_order where id= #{Id}
+    </delete>
+
+
+
+    <!--  首页统计  勿动  -->
+    <select id="countStatisticsNum" parameterType="string" resultType="integer">
+        select count(id) from automessage_guide_repair_order
+        <where>
+            <if test="state != null and state != ''">
+                automessage_guide_repair_order.state=#{state}
+            </if>
+            <if test="isTimeout != null and isTimeout != ''">
+                and is_timeout=#{isTimeout}
+            </if>
+            <if test="evaluateState != null and evaluateState != ''">
+                and evaluate_state=#{evaluateState}
+            </if>
+            <if test="guideUserId != null and guideUserId != ''">
+                AND guide_user_id=#{guideUserId}
+            </if>
+            <if test="ids != null">
+                and guide_department_id IN
+                <foreach collection="ids" item="param"  open="(" close=")" separator=",">
+                    #{param}
+                </foreach>
+            </if>
+            <if test="classifyIds != null">
+                and classify_id IN
+                <foreach collection="classifyIds" item="param"  open="(" close=")" separator=",">
+                    #{param}
+                </foreach>
+            </if>
+            <if test="serviceState != null and serviceState != ''">
+                and automessage_guide_repair_order.service_state=#{serviceState}
+            </if>
+            <if test="time != null and time == 1 ">
+                and to_days(automessage_guide_repair_order.create_time) = to_days(now())
+            </if>
+            <if test="time != null and time == 2 ">
+                and TO_DAYS(NOW()) - TO_DAYS(automessage_guide_repair_order.create_time) = 1
+            </if>
+            <if test="time != null and time == 3 ">
+                and DATE_FORMAT( automessage_guide_repair_order.create_time, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )
+            </if>
+            <if test="time != null and time == 4 ">
+                and YEAR(automessage_guide_repair_order.create_time)=YEAR(NOW())
+            </if>
+        </where>
+    </select>
+    <!--  首页统计  勿动  -->
+    <select id="countListNum"  resultType="com.dg.core.db.gen.entity.CountListNum">
+        select create_time,count(id) as num from automessage_guide_repair_order
+        <where>
+            <if test="state != null and state != ''">
+                automessage_guide_repair_order.state=#{state}
+            </if>
+            <if test="ids != null">
+                and guide_department_id IN
+                <foreach collection="ids" item="param"  open="(" close=")" separator=",">
+                    #{param}
+                </foreach>
+            </if>
+        </where>
+        GROUP BY
+        date_format(create_time,'%y%m%d')
+        ORDER BY
+        create_time DESC
+        LIMIT #{time}
+    </select>
+
+    <select id="selectOvertime"  resultMap="GuideRepairOrderResult">
+        <include refid="selectGuideRepairOrderVo"/>
+        <where>
+            state=2 and is_push=2 and  SYSDATE()>timeout_time and  1>(select count(*)  from automessage_guide_evolve where state=9 and  a.id=guide_id )
+        </where>
+    </select>
+
+    <select id="selectNoticeTime"  resultMap="GuideRepairOrderResult">
+        <include refid="selectGuideRepairOrderVo"/>
+        <where>
+       state=2 and is_remind_push=2 and  SYSDATE()>subdate(timeout_time, interval    ${minute}  minute ) and  1>(select count(*)  from automessage_guide_evolve where state=9 and  a.id=guide_id )
+     </where>
+        </select>
+    <select id="selectEvaluate"  resultMap="GuideRepairOrderResult">
+        <include refid="selectGuideRepairOrderVo"/>
+        <where>
+           state=4 and datediff(now(),update_time)>=1
+        </where>
+    </select>
+
+
+
+
+
+</mapper>
diff --git a/flower_city/src/main/resources/mapper/HomeStatisticsMapper.xml b/flower_city/src/main/resources/mapper/HomeStatisticsMapper.xml
new file mode 100644
index 0000000..1abfb54
--- /dev/null
+++ b/flower_city/src/main/resources/mapper/HomeStatisticsMapper.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.dg.core.db.gen.mapper.HomeStatisticsMapper">
+
+    <!-- 按办结量排序 -->
+    <select id="guidePlatePeople" resultType="com.dg.core.db.gen.entity.GuidePlate">
+        SELECT
+            user_name as userName,
+            (SELECT organization_name FROM automessage_organization_chart WHERE  automessage_organization_chart.id=department_id) as departmentNmae,
+            (select count(id) from automessage_guide_repair_order WHERE automessage_guide_repair_order.guide_user_id=automessage_sys_user.user_id
+                                                                    and automessage_guide_repair_order.state=3
+                <if test="ids != null">
+                    and guide_department_id IN
+                    <foreach collection="ids" item="param"  open="(" close=")" separator=",">
+                        #{param}
+                    </foreach>
+                </if>) as num
+        FROM automessage_sys_user
+        <where>
+            user_type=2
+            <if test="ids != null">
+                and department_id IN
+                <foreach collection="ids" item="param"  open="(" close=")" separator=",">
+                    #{param}
+                </foreach>
+            </if>
+        </where>
+        ORDER BY
+            num DESC
+        LIMIT 10
+    </select>
+
+    <!--  按评分排序  -->
+    <select id="score" resultType="com.dg.core.db.gen.entity.GuidePlate">
+        SELECT
+            user_name,
+            (SELECT organization_name FROM automessage_organization_chart WHERE  automessage_organization_chart.id=department_id) as departmentNmae,
+            ( format((select sum(IF(evaluate_state='1',10,IF(evaluate_state='2',5,0))) from automessage_guide_repair_order
+        WHERE automessage_guide_repair_order.guide_user_id=automessage_sys_user.user_id
+        <if test="ids != null">
+            and guide_department_id IN
+            <foreach collection="ids" item="param"  open="(" close=")" separator=",">
+                #{param}
+            </foreach>
+        </if>
+        )/(select count(id) from automessage_guide_repair_order
+        WHERE automessage_guide_repair_order.guide_user_id=automessage_sys_user.user_id
+        <if test="ids != null">
+            and guide_department_id IN
+            <foreach collection="ids" item="param"  open="(" close=")" separator=",">
+                #{param}
+            </foreach>
+        </if>),1)
+            ) as num
+        FROM automessage_sys_user
+        <where>
+            user_type=2
+            <if test="ids != null">
+                and department_id IN
+                <foreach collection="ids" item="param"  open="(" close=")" separator=",">
+                    #{param}
+                </foreach>
+            </if>
+        </where>
+        ORDER BY
+            num DESC
+        LIMIT 10
+    </select>
+
+    <!--  按超时  -->
+    <select id="timeout" resultType="com.dg.core.db.gen.entity.GuidePlate">
+        SELECT
+            user_name as userName,
+            (SELECT organization_name FROM automessage_organization_chart WHERE  automessage_organization_chart.id=department_id) as departmentNmae,
+            (select count(id) from automessage_guide_repair_order WHERE automessage_guide_repair_order.guide_user_id=automessage_sys_user.user_id
+                    and automessage_guide_repair_order.is_timeout=2 <if test="ids != null">
+                and guide_department_id IN
+                <foreach collection="ids" item="param"  open="(" close=")" separator=",">
+                    #{param}
+                </foreach>
+            </if>
+            ) as num
+        FROM automessage_sys_user
+        <where>
+            user_type=2
+            <if test="ids != null">
+                and department_id IN
+                <foreach collection="ids" item="param"  open="(" close=")" separator=",">
+                    #{param}
+                </foreach>
+            </if>
+        </where>
+        ORDER BY
+            num DESC
+        LIMIT 10
+    </select>
+
+
+    <!--  按未办结  -->
+    <select id="tosettled" resultType="com.dg.core.db.gen.entity.GuidePlate">
+        SELECT
+        user_name as userName,
+        (SELECT organization_name FROM automessage_organization_chart WHERE  automessage_organization_chart.id=department_id) as departmentNmae,
+        (select count(id) from automessage_guide_repair_order WHERE automessage_guide_repair_order.guide_user_id=automessage_sys_user.user_id
+                                                                and automessage_guide_repair_order.state=2
+        <if test="ids != null">
+            and guide_department_id IN
+            <foreach collection="ids" item="param"  open="(" close=")" separator=",">
+                #{param}
+            </foreach>
+        </if>
+        ) as num
+        FROM automessage_sys_user
+        <where>
+            user_type=2
+            <if test="ids != null">
+                and department_id IN
+                <foreach collection="ids" item="param"  open="(" close=")" separator=",">
+                    #{param}
+                </foreach>
+            </if>
+        </where>
+        ORDER BY
+        num DESC
+        LIMIT 10
+    </select>
+
+    <!--  按工单量  -->
+    <select id="workunit" resultType="com.dg.core.db.gen.entity.GuidePlate">
+        SELECT
+        user_name as userName,
+        (SELECT organization_name FROM automessage_organization_chart WHERE  automessage_organization_chart.id=department_id) as departmentNmae,
+        (select count(id) from automessage_guide_repair_order WHERE automessage_guide_repair_order.guide_user_id=automessage_sys_user.user_id
+            <if test="ids != null">
+                and guide_department_id IN
+                <foreach collection="ids" item="param"  open="(" close=")" separator=",">
+                    #{param}
+                </foreach>
+            </if>) as num
+        FROM automessage_sys_user
+        <where>
+            user_type=2
+            <if test="ids != null">
+                and department_id IN
+                <foreach collection="ids" item="param"  open="(" close=")" separator=",">
+                    #{param}
+                </foreach>
+            </if>
+        </where>
+        ORDER BY
+        num DESC
+        LIMIT 10
+    </select>
+
+
+    <!--  导办人员统计数  -->
+    <select id="staffNum" resultType="int">
+        SELECT count(id)
+        FROM automessage_sys_user
+        <where>
+            user_type=2
+            <if test="ids != null">
+                and department_id IN
+                <foreach collection="ids" item="param"  open="(" close=")" separator=",">
+                    #{param}
+                </foreach>
+            </if>
+        </where>
+    </select>
+
+<!--  获取一级组织  -->
+    <select id="getDepartment" resultType="com.dg.core.db.gen.entity.OrganizationEntity">
+        SELECT
+            organization_name as departmentNmae,
+            id
+        FROM automessage_organization_chart
+        WHERE grade=1
+    </select>
+
+
+    <!--  组织排行榜 按评价  -->
+    <select id="organizationScore" resultType="int">
+        SELECT sum(IF(evaluate_state='1',10,IF(evaluate_state='2',5,0)))
+        FROM automessage_guide_repair_order
+        WHERE department_id in
+        <foreach collection="ids" item="param" open="(" close=")" separator=",">
+            #{param}
+        </foreach>
+    </select>
+
+
+
+    <!--  组织排行榜 按办结量  -->
+    <select id="organizationNum" resultType="int">
+        SELECT  count(id) FROM automessage_guide_repair_order WHERE department_id in
+        <foreach collection="ids" item="param"  open="(" close=")" separator=",">
+            #{param}
+        </foreach>
+    </select>
+
+    <!--  办事指南 根据导办数量排序 -->
+    <select id="guidanceTransaction" resultType="com.dg.core.db.gen.entity.Guidance">
+        SELECT matter_name as name ,(select count(id) from automessage_guide_repair_order
+            where automessage_guide_repair_order.matter_id=automessage_transaction_event.id
+            <if test="ids != null">
+                and automessage_guide_repair_order.guide_department_id IN
+                <foreach collection="ids" item="param"  open="(" close=")" separator=",">
+                    #{param}
+                </foreach>
+            </if>
+            ) as num
+        from automessage_transaction_event
+        <where>
+            <if test="ids != null">
+                and department_id IN
+                <foreach collection="ids" item="param"  open="(" close=")" separator=",">
+                    #{param}
+                </foreach>
+            </if>
+        </where>
+        ORDER BY num DESC
+        LIMIT 10
+    </select>
+
+    <!-- 办事指南 根据导办数量排序 -->
+    <select id="guidanceBrowse"  resultType="com.dg.core.db.gen.entity.Guidance">
+        SELECT matter_name as name ,browse_num as num from
+            automessage_transaction_event
+        <where>
+            <if test="ids != null">
+                and department_id IN
+                <foreach collection="ids" item="param"  open="(" close=")" separator=",">
+                    #{param}
+                </foreach>
+            </if>
+        </where>
+        ORDER BY num DESC
+            LIMIT 10
+    </select>
+
+
+    <!-- 办事指南 统计数量 -->
+    <select id="countWork"  resultType="int">
+        SELECT count(id) from automessage_transaction_event
+        <where>
+            <if test="ids != null">
+                and department_id IN
+                <foreach collection="ids" item="param"  open="(" close=")" separator=",">
+                    #{param}
+                </foreach>
+            </if>
+        </where>
+    </select>
+
+
+
+    <!--  首页统计  勿动  -->
+    <select id="countStatisticsNum" resultType="int">
+        select count(id) from automessage_transaction_event
+        <where>
+            <if test="classifyIds != null">
+                and classify_id IN
+                <foreach collection="classifyIds" item="param"  open="(" close=")" separator=",">
+                    #{param}
+                </foreach>
+            </if>
+            <if test="ids != null">
+                and department_id IN
+                <foreach collection="ids" item="param"  open="(" close=")" separator=",">
+                    #{param}
+                </foreach>
+            </if>
+        </where>
+    </select>
+
+
+    <!--  首页统计用  勿动  -->
+    <select id="getClassify" parameterType="string" resultType="com.dg.core.db.gen.entity.ClassifyAdministration">
+        select id,classify_name from automessage_classify_administration
+        <where>
+            <if test="parentId != null and parentId != ''">
+                AND parent_id=#{parentId}
+            </if>
+            <if test="classifyGrade != null and classifyGrade != ''">
+                AND classify_grade = #{classifyGrade}
+            </if>
+        </where>
+
+    </select>
+
+
+    <!--  首页统计区域下的部门  -->
+    <select id="countId" parameterType="string" resultType="string">
+        select id from automessage_organization_chart
+        <where>
+            <if test="district != null ">
+                AND district=#{district}
+            </if>
+        </where>
+    </select>
+
+
+    <!--  首页统计使用 勿动  -->
+    <select id="reversionRate" resultType="string">
+        select nullif(SUM(m.num),0) from (
+            select count(id) as num  from automessage_guide_evolve
+            <where>
+                <if test="state != null and state != ''">
+                    and automessage_guide_evolve.state=#{state}
+                </if>
+                <if test="isTimeout != null and isTimeout != ''">
+                    and automessage_guide_evolve.is_timeout=#{isTimeout}
+                </if>
+            </where>
+            GROUP BY automessage_guide_evolve.id
+            ) as m
+    </select>
+
+
+
+    <!--  首页统计 区域统计 勿动  -->
+    <select id="rangeStatistics" parameterType="string" resultType="int">
+        select count(id) from automessage_guide_repair_order
+        <where>
+            <if test="ids != null">
+                and guide_department_id IN
+                <foreach collection="ids" item="param"  open="(" close=")" separator=",">
+                    #{param}
+                </foreach>
+            </if>
+        </where>
+    </select>
+
+
+
+</mapper>
diff --git a/flower_city/src/main/resources/mapper/HuaChengSysUserMapper.xml b/flower_city/src/main/resources/mapper/HuaChengSysUserMapper.xml
new file mode 100644
index 0000000..76b8601
--- /dev/null
+++ b/flower_city/src/main/resources/mapper/HuaChengSysUserMapper.xml
@@ -0,0 +1,123 @@
+<?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.dg.core.db.gen.mapper.HuaChengSysUserMapper">
+
+    <resultMap type="com.dg.core.db.gen.entity.HuaChengSysUser" id="SysUserResult">
+        <id     property="userId"      column="user_id"      />
+        <id     property="account"      column="account"      />
+        <id     property="password"      column="password"      />
+        <id     property="openid"      column="openid"      />
+        <id     property="sessionKey"      column="session_key"      />
+        <id     property="unionid"      column="unionid"      />
+        <id     property="phone"      column="phone"      />
+        <id     property="nickName"      column="nick_name"      />
+        <id     property="name"      column="name"      />
+        <id     property="communityId"      column="community_id"      />
+        <id     property="sex"      column="sex"      />
+        <id     property="idCard"      column="id_card"      />
+        <id     property="birthday"      column="birthday"      />
+        <id     property="imageUrl"      column="image_url"      />
+        <id     property="type"      column="type"      />
+        <id     property="job"      column="job"      />
+        <id     property="isVolunteer"      column="is_volunteer"      />
+        <id     property="isPartymember"      column="is_partymember"      />
+        <id     property="status"      column="status"      />
+        <id     property="createAt"      column="create_at"      />
+        <id     property="lastLoginTime"      column="last_login_time"      />
+        <id     property="tags"      column="tags"      />
+        <id     property="familyId"      column="family_id"      />
+        <id     property="faceUrl"      column="face_url"      />
+        <id     property="faceState"      column="face_state"      />
+        <id     property="rejectReson"      column="reject_reson"      />
+        <id     property="areaId"      column="area_id"      />
+        <id     property="cardPhotoFront"      column="card_photo_front"      />
+        <id     property="cardPhotoBack"      column="card_photo_back"      />
+        <id     property="familyBook"      column="family_book"      />
+        <id     property="continuousLandingDays"      column="continuous_landing_days"      />
+        <id     property="isTips"      column="is_tips"      />
+        <id     property="workStatus"      column="work_status"      />
+        <id     property="workStartTime"      column="work_start_time"      />
+        <id     property="workEndTime"      column="work_end_time"      />
+        <id     property="bigAgeTips"      column="big_age_tips"      />
+        <id     property="plaintextPassword"      column="plaintext_password"      />
+        <id     property="streetId"      column="street_id"      />
+        <id     property="relationName"      column="relation_name"      />
+        <id     property="appId"      column="app_id"      />
+        <id     property="isAccept"      column="is_accept"      />
+        <id     property="bindingCheckUnitId"      column="binding_check_unit_id"      />
+    </resultMap>
+
+    <sql id="selectSysUserVo">
+        SELECT
+            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,
+            plaintext_password,
+            street_id,
+            relation_name,
+            app_id,
+            is_accept,
+            binding_check_unit_id
+        FROM
+            sys_user
+    </sql>
+
+
+    <select id="selectNum" resultType="integer">
+        select count(user_id) from sys_user
+    </select>
+
+    <select id="selectConfigList"  resultMap="SysUserResult">
+        <include refid="selectSysUserVo"/>
+    </select>
+
+    <select id="selectData" parameterType="string"  resultMap="SysUserResult">
+        <include refid="selectSysUserVo"/>
+        <where>
+            app_id='wx118de8a734d269f0'
+            <if test="userId!=null and userId!=''">
+                and user_id=#{userId}
+            </if>
+            <if test="account!=null and account!=''">
+                and account=#{account}
+            </if>
+            <if test="phone!=null and phone!=''">
+                and phone=#{phone}
+            </if>
+        </where>
+    </select>
+
+</mapper>
diff --git a/flower_city/src/main/resources/mapper/KeywordMapper.xml b/flower_city/src/main/resources/mapper/KeywordMapper.xml
new file mode 100644
index 0000000..b1774ce
--- /dev/null
+++ b/flower_city/src/main/resources/mapper/KeywordMapper.xml
@@ -0,0 +1,104 @@
+<?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.dg.core.db.gen.mapper.KeywordMapper">
+
+    <resultMap type="com.dg.core.db.gen.entity.KeywordEntity" id="KeywordEntityResult">
+        <id     property="id"      column="id"      />
+        <id     property="name"      column="name"      />
+        <id     property="createTime"      column="create_time"      />
+        <id     property="updateTime"      column="update_time"      />
+        <id     property="transactionId"      column="transaction_id"      />
+
+    </resultMap>
+
+    <sql id="selectKeywordEntityVo">
+        SELECT
+            id,
+            name,
+            create_time,
+            update_time,
+            transaction_id
+        FROM
+            automessage_keyword
+    </sql>
+
+    <select id="selectConfigList"  resultMap="KeywordEntityResult">
+        <include refid="selectKeywordEntityVo"/>
+        <!--        <where>-->
+        <!--            <if test="userName != null and userName != ''">-->
+        <!--                AND user_name like concat('%', #{userName}, '%')-->
+        <!--            </if>-->
+        <!--            <if test="streetName != null and streetName != ''">-->
+        <!--                AND street_name like concat('%', #{streetName}, '%')-->
+        <!--            </if>-->
+        <!--            <if test="loginName != null and loginName != ''">-->
+        <!--                AND login_name like concat('%', #{loginName}, '%')-->
+        <!--            </if>-->
+        <!--            <if test="phonenumber != null and phonenumber != ''">-->
+        <!--                AND phonenumber like concat('%', #{phonenumber}, '%')-->
+        <!--            </if>-->
+        <!--            <if test="roleId != null and roleId != ''">-->
+        <!--                AND role_id=#{roleId}-->
+        <!--            </if>-->
+
+        <!--        </where>-->
+
+        order by create_time desc
+    </select>
+
+
+    <select id="selectConfigData"  resultMap="KeywordEntityResult">
+        <include refid="selectKeywordEntityVo"/>
+        <where>
+            <if test="Id != null and Id != ''">
+                AND automessage_keyword.id=#{Id}
+            </if>
+             <if test="name != null and name != ''">
+                AND automessage_keyword.name=#{name}
+            </if>
+        </where>
+    </select>
+
+    <select id="selectByName" resultMap="KeywordEntityResult">
+        <include refid="selectKeywordEntityVo"/>
+        <where>
+            name like concat('%',#{keyWord}, '%')
+        </where>
+    </select>
+
+    <insert id="insertConfig" parameterType="com.dg.core.db.gen.entity.KeywordEntity">
+        insert into automessage_keyword (
+        <if test="id != null">id,</if>
+        <if test="name != null and name != '' ">name,</if>
+        <if test="transactionId != null and transactionId !='' ">transaction_id,</if>
+        update_time,
+        create_time
+        )values(
+        <if test="id != null">#{id},</if>
+        <if test="name != null and name != '' ">#{name},</if>
+        <if test="transactionId != null and transactionId !='' ">#{transactionId},</if>
+        sysdate(),
+        sysdate()
+        )
+    </insert>
+
+    <update id="updateConfig" parameterType="com.dg.core.db.gen.entity.KeywordEntity">
+        update automessage_keyword
+        <set>
+            <if test="id != null">id=#{id},</if>
+            <if test="name != null and name != '' ">name=#{name},</if>
+            <if test="transactionId != null and transactionId !='' ">transaction_id=#{transactionId},</if>
+            update_time=sysdate()
+        </set>
+        where  id= #{id}
+    </update>
+
+    <delete id="deleteConfigById" parameterType="string">
+        delete from automessage_keyword where id= #{Id}
+    </delete>
+
+    <select id="countNum" resultType="integer">
+        select count(id) from automessage_keyword
+    </select>
+
+</mapper>
diff --git a/flower_city/src/main/resources/mapper/MenuMapper.xml b/flower_city/src/main/resources/mapper/MenuMapper.xml
new file mode 100644
index 0000000..b43c0c2
--- /dev/null
+++ b/flower_city/src/main/resources/mapper/MenuMapper.xml
@@ -0,0 +1,90 @@
+<?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.dg.core.db.gen.mapper.MenuMapper">
+
+    <resultMap type="com.dg.core.db.gen.entity.MenuEntity" id="MenuEntityResult">
+        <id     property="id"      column="id"      />
+        <id     property="title"      column="title"      />
+        <id     property="createTime"      column="create_time"      />
+        <id     property="updateTime"      column="update_time"      />
+        <id     property="remark"      column="remark"      />
+        <id     property="parentId"      column="parent_id"      />
+
+    </resultMap>
+
+    <sql id="selectMenuEntityVo">
+        SELECT
+            id,
+            title,
+            create_time,
+            update_time,
+            parent_id,
+            remark
+        FROM
+            automessage_menu
+    </sql>
+
+    <select id="selectConfigList"  resultMap="MenuEntityResult">
+        <include refid="selectMenuEntityVo"/>
+<!--        <where>-->
+<!--            <if test="userName != null and userName != ''">-->
+<!--                AND user_name like concat('%', #{userName}, '%')-->
+<!--            </if>-->
+<!--            <if test="streetName != null and streetName != ''">-->
+<!--                AND street_name like concat('%', #{streetName}, '%')-->
+<!--            </if>-->
+<!--            <if test="loginName != null and loginName != ''">-->
+<!--                AND login_name like concat('%', #{loginName}, '%')-->
+<!--            </if>-->
+<!--            <if test="phonenumber != null and phonenumber != ''">-->
+<!--                AND phonenumber like concat('%', #{phonenumber}, '%')-->
+<!--            </if>-->
+<!--            <if test="roleId != null and roleId != ''">-->
+<!--                AND role_id=#{roleId}-->
+<!--            </if>-->
+
+<!--        </where>-->
+
+        order by create_time desc
+    </select>
+
+
+    <insert id="insertConfig" parameterType="com.dg.core.db.gen.entity.MenuEntity">
+        insert into automessage_menu (
+        <if test="id != null">id,</if>
+        <if test="title != null and title != '' ">title,</if>
+        <if test="parentId != null">parent_id,</if>
+        <if test="remark != null and remark != '' ">remark,</if>
+        update_time,
+        create_time
+        )values(
+        <if test="id != null">#{id},</if>
+        <if test="title != null and title != '' ">#{title},</if>
+        <if test="parentId != null">#{parentId},</if>
+        <if test="remark != null and remark != '' ">#{remark},</if>
+        sysdate(),
+        sysdate()
+        )
+    </insert>
+
+    <update id="updateConfig" parameterType="com.dg.core.db.gen.entity.MenuEntity">
+        update automessage_menu
+        <set>
+            <if test="id != null">id=#{id},</if>
+            <if test="title != null and title != '' ">title=#{title},</if>
+            <if test="parentId != null">parent_id=#{parentId},</if>
+            <if test="remark != null and remark != '' ">remark=#{remark},</if>
+            update_time=sysdate()
+        </set>
+        where  id= #{Id}
+    </update>
+
+    <delete id="deleteConfigById" parameterType="Long">
+        delete from automessage_menu where id= #{Id}
+    </delete>
+
+    <select id="countNum" resultType="integer">
+        select count(id) from automessage_menu
+    </select>
+
+</mapper>
diff --git a/flower_city/src/main/resources/mapper/OrganizationChartMapper.xml b/flower_city/src/main/resources/mapper/OrganizationChartMapper.xml
new file mode 100644
index 0000000..8d51b50
--- /dev/null
+++ b/flower_city/src/main/resources/mapper/OrganizationChartMapper.xml
@@ -0,0 +1,185 @@
+<?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.dg.core.db.gen.mapper.OrganizationChartMapper">
+
+    <resultMap type="com.dg.core.db.gen.entity.OrganizationChartEntity" id="OrganizationChartResult">
+        <id     property="id"      column="id"      />
+        <id     property="organizationName"      column="organization_name"      />
+        <id     property="city"      column="city"      />
+        <id     property="district"      column="district"      />
+        <id     property="village"      column="village"      />
+        <id     property="detailedAddress"      column="detailed_address"      />
+        <id     property="createTime"      column="create_time"      />
+        <id     property="updateTime"      column="update_time"      />
+        <id     property="parentId"      column="parent_id"      />
+        <id     property="grade"      column="grade"      />
+        <id     property="resume"      column="resume"      />
+        <id     property="contactNumber"      column="contact_number"      />
+        <id     property="departmentalApplication"      column="departmental_application"      />
+        <id     property="updateUserId"      column="update_user_id"      />
+        <id     property="areaList"      column="area_list"      />
+
+    </resultMap>
+
+    <sql id="selectOrganizationChartVo">
+        SELECT
+            id,
+            resume,
+            organization_name,
+            contact_number,
+            departmental_application,
+            create_time,
+            update_time,
+            parent_id,
+            update_user_id,
+            (select  user_name from automessage_sys_user where user_id=automessage_organization_chart.update_user_id) as updateUserName,
+            (select organization_name from automessage_organization_chart as oc where oc.id=automessage_organization_chart.parent_id) as parentName,
+            city,
+            district,
+            village,
+            (select name from automessage_area_code_2022 where city=automessage_area_code_2022.code) as cityName,
+            (select name from automessage_area_code_2022 where district=automessage_area_code_2022.code) as districtName,
+            (select name from automessage_area_code_2022 where village=automessage_area_code_2022.code) as villageName,
+            detailed_address,
+            grade,
+            area_list
+        FROM
+            automessage_organization_chart
+    </sql>
+
+    <select id="selectConfigById" resultMap="OrganizationChartResult">
+        <include refid="selectOrganizationChartVo"/>
+        where id= #{id}
+    </select>
+
+    <select id="queryList"  resultMap="OrganizationChartResult">
+        <include refid="selectOrganizationChartVo"/>
+        <where>
+            <if test="organizationName != null and organizationName != ''">
+                AND organization_name like concat('%', #{organizationName}, '%')
+            </if>
+            <if test="ids != null">
+                and id IN
+                <foreach collection="ids" item="param"  open="(" close=")" separator=",">
+                    #{param}
+                </foreach>
+            </if>
+        </where>
+    </select>
+
+    <select id="countList" resultType="integer">
+        select count(id) from automessage_organization_chart
+        <where>
+            <if test="organizationName != null and organizationName != ''">
+                AND organization_name like concat('%', #{organizationName}, '%')
+            </if>
+            <if test="ids != null">
+                and id IN
+                <foreach collection="ids" item="param"  open="(" close=")" separator=",">
+                    #{param}
+                </foreach>
+            </if>
+        </where>
+    </select>
+
+    <select id="selectConfigList"  resultMap="OrganizationChartResult">
+        <include refid="selectOrganizationChartVo"/>
+        <where>
+            <if test="parentId != null and parentId != ''">
+                AND parent_id=#{parentId}
+            </if>
+            <if test="grade != null and grade != ''">
+                AND grade=#{grade}
+            </if>
+            <if test="ids != null">
+                and id IN
+                <foreach collection="ids" item="param"  open="(" close=")" separator=",">
+                    #{param}
+                </foreach>
+            </if>
+        </where>
+    </select>
+
+    <select id="selectByKeyWord" resultMap="OrganizationChartResult">
+        <include refid="selectOrganizationChartVo"/>
+        where grade=1 and ( organization_name like concat('%', #{keyWord}, '%')
+        or((detailed_address like concat('%', #{keyWord}, '%')  )     and TRIM(detailed_address)  !='')
+        or((resume like concat('%', #{keyWord}, '%')  ) and  TRIM(resume)  !=  '' ))
+    </select>
+
+    <select id="selectByCode" resultMap="OrganizationChartResult">
+        <include refid="selectOrganizationChartVo"/>
+        <where>
+           ( id=#{id} or parent_id=#{id})   and  (city=#{areaCode} or district= #{areaCode} or village=#{areaCode}) and grade=#{grade}
+        </where>
+      order by grade
+    </select>
+
+    <insert id="insertConfig" parameterType="com.dg.core.db.gen.entity.OrganizationChartEntity">
+        insert into automessage_organization_chart (
+        <if test="id != null">id,</if>
+        <if test="organizationName != null and organizationName != '' ">organization_name,</if>
+        <if test="parentId != null">parent_id,</if>
+        <if test="city != null and city != '' ">city,</if>
+        <if test="district != null and district != '' ">district,</if>
+        <if test="village != null and village != '' ">village,</if>
+        <if test="detailedAddress != null and detailedAddress != '' ">detailed_address,</if>
+        <if test="grade != null and grade != '' ">grade,</if>
+        <if test="areaList != null and areaList != '' ">area_list,</if>
+        <if test="contactNumber != null and contactNumber != '' ">contact_number,</if>
+        <if test="departmentalApplication != null and departmentalApplication != '' ">departmental_application,</if>
+        <if test="updateUserId != null and updateUserId != '' ">update_user_id,</if>
+        <if test="resume != null and resume != '' ">resume,</if>
+        update_time,
+        create_time
+        )values(
+        <if test="id != null">#{id},</if>
+        <if test="organizationName != null and organizationName != '' ">#{organizationName},</if>
+        <if test="parentId != null">#{parentId},</if>
+        <if test="city != null and city != '' ">#{city},</if>
+        <if test="district != null and district != '' ">#{district},</if>
+        <if test="village != null and village != '' ">#{village},</if>
+        <if test="detailedAddress != null and detailedAddress != '' ">#{detailedAddress},</if>
+        <if test="grade != null and grade != '' ">#{grade},</if>
+        <if test="areaList != null and areaList != '' ">#{areaList},</if>
+        <if test="contactNumber != null and contactNumber != '' ">#{contactNumber},</if>
+        <if test="departmentalApplication != null and departmentalApplication != '' ">#{departmentalApplication},</if>
+        <if test="updateUserId != null and updateUserId != '' ">#{updateUserId},</if>
+        <if test="resume != null and resume != '' ">#{resume},</if>
+        sysdate(),
+        sysdate()
+        )
+    </insert>
+
+    <update id="updateConfig" parameterType="com.dg.core.db.gen.entity.OrganizationChartEntity">
+        update automessage_organization_chart
+        <set>
+            <if test="id != null">id=#{id},</if>
+            <if test="organizationName != null and organizationName != '' ">organization_name=#{organizationName},</if>
+            <if test="parentId != null">parent_id=#{parentId},</if>
+            <if test="city != null and city != '' ">city=#{city},</if>
+            <if test="district != null and district != '' ">district=#{district},</if>
+            <if test="village != null and village != '' ">village=#{village},</if>
+            <if test="detailedAddress != null and detailedAddress != '' ">detailed_address=#{detailedAddress},</if>
+            <if test="grade != null and grade != '' ">grade=#{grade},</if>
+            <if test="departmentalApplication != null and departmentalApplication != '' ">departmental_application=#{departmentalApplication},</if>
+            <if test="updateUserId != null">update_user_id=#{updateUserId},</if>
+            <if test="areaList != null and areaList != '' ">area_list=#{areaList},</if>
+            <if test="contactNumber != null and contactNumber != '' ">contact_number=#{contactNumber},</if>
+            <if test="departmentalApplication != null  ">departmental_application=#{departmentalApplication},</if>
+            <if test="updateUserId != null and updateUserId != '' ">update_user_id=#{updateUserId},</if>
+            <if test="resume != null and resume != '' ">resume=#{resume},</if>
+            update_time=sysdate()
+        </set>
+        where  id= #{id}
+    </update>
+
+    <delete id="deleteConfigById" parameterType="string">
+        delete from automessage_organization_chart where id= #{Id}
+    </delete>
+
+    <select id="countNum" resultType="integer">
+        select count(id) from automessage_organization_chart
+    </select>
+
+</mapper>
diff --git a/flower_city/src/main/resources/mapper/ReplyTemplateMapper.xml b/flower_city/src/main/resources/mapper/ReplyTemplateMapper.xml
new file mode 100644
index 0000000..a95a788
--- /dev/null
+++ b/flower_city/src/main/resources/mapper/ReplyTemplateMapper.xml
@@ -0,0 +1,177 @@
+<?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.dg.core.db.gen.mapper.ReplyTemplateMapper">
+
+    <resultMap type="com.dg.core.db.gen.entity.ReplyTemplateEntity" id="ReplyTemplateResult">
+        <id     property="id"      column="id"      />
+        <id     property="name"      column="name"      />
+        <id     property="handleState"      column="handle_state"      />
+        <id     property="response"      column="response"      />
+        <id     property="guidance"      column="guidance"      />
+        <id     property="accessoryUrl"      column="accessory_url"      />
+        <id     property="createTime"      column="create_time"      />
+        <id     property="updateTime"      column="update_time"      />
+        <id     property="accessoryName"      column="accessory_name"      />
+        <id     property="videoUrl"      column="video_url"      />
+        <id     property="videoName"      column="video_name"      />
+        <id     property="createUserId"      column="create_user_id"      />
+        <id     property="departmentId"      column="department_id"      />
+        <id     property="pictureUrl"      column="picture_url"      />
+        <id     property="pictureName"      column="picture_name"      />
+        <id     property="accessoryId"      column="accessory_id"      />
+
+    </resultMap>
+
+    <sql id="selectReplyTemplateVo">
+        SELECT
+            id,
+            name,
+            create_time,
+            update_time,
+            handle_state,
+            response,
+            accessory_url,
+            accessory_name,
+            video_url,
+            video_name,
+            picture_url,
+            picture_name,
+            department_id,
+            create_user_id,
+            accessory_id,
+            (select organization_name from automessage_organization_chart where automessage_organization_chart.id=automessage_reply_template.department_id) as departmentName,
+            (select user_name from automessage_sys_user where automessage_sys_user.user_id=automessage_reply_template.create_user_id) as createUser,
+            guidance
+        FROM
+            automessage_reply_template
+    </sql>
+
+    <select id="selectConfigList"  resultMap="ReplyTemplateResult">
+        SELECT
+        id,
+        name,
+        create_time,
+        update_time,
+        handle_state,
+        response,
+        accessory_url,
+        accessory_name,
+        video_url,
+        video_name,
+        picture_url,
+        picture_name,
+        department_id,
+        create_user_id,
+        <if test="userId!=null and userId!=''">
+            (case create_user_id when  #{userId} then 1 else 0 end)isDelete,
+        </if>
+        <if test="userId==null or userId==''">
+            1 isDelete,
+        </if>
+        accessory_id,
+        (select organization_name from automessage_organization_chart where automessage_organization_chart.id=automessage_reply_template.department_id) as departmentName,
+        (select user_name from automessage_sys_user where automessage_sys_user.user_id=automessage_reply_template.create_user_id) as createUser,
+        guidance
+        FROM
+        automessage_reply_template
+        <where>
+            <if test="Name != null and Name != ''">
+                AND automessage_reply_template.name like concat('%', #{Name}, '%')
+            </if>
+            <if test="ids != null">
+                and department_id IN
+                <foreach collection="ids" item="param"  open="(" close=")" separator=",">
+                    #{param}
+                </foreach>
+            </if>
+        </where>
+        order by create_time desc
+    </select>
+
+
+    <select id="selectConfigData" parameterType="string" resultMap="ReplyTemplateResult">
+        <include refid="selectReplyTemplateVo"/>
+        where id=#{Id}
+    </select>
+
+
+    <insert id="insertConfig" parameterType="com.dg.core.db.gen.entity.ReplyTemplateEntity">
+        insert into automessage_reply_template (
+        <if test="id != null">id,</if>
+        <if test="name != null and name != '' ">name,</if>
+        <if test="handleState != null and handleState != '' ">handle_state,</if>
+        <if test="response != null and response != '' ">response,</if>
+        <if test="guidance != null and guidance != '' ">guidance,</if>
+        <if test="accessoryUrl != null and accessoryUrl != '' ">accessory_url,</if>
+        <if test="accessoryName != null and accessoryName != '' ">accessory_name,</if>
+        <if test="videoUrl != null and videoUrl != '' ">video_url,</if>
+        <if test="videoName != null and videoName != '' ">video_name,</if>
+        <if test="pictureUrl != null and pictureUrl != '' ">picture_url,</if>
+        <if test="pictureName != null and pictureName != '' ">picture_name,</if>
+        <if test="createUserId != null and createUserId != '' ">create_user_id,</if>
+        <if test="departmentId != null and departmentId != '' ">department_id,</if>
+        <if test="accessoryId != null and accessoryId != '' ">accessory_id,</if>
+        update_time,
+        create_time
+        )values(
+        <if test="id != null">#{id},</if>
+        <if test="name != null and name != '' ">#{name},</if>
+        <if test="handleState != null and handleState != '' ">#{handleState},</if>
+        <if test="response != null and response != '' ">#{response},</if>
+        <if test="guidance != null and guidance != '' ">#{guidance},</if>
+        <if test="accessoryUrl != null and accessoryUrl != '' ">#{accessoryUrl},</if>
+        <if test="accessoryName != null and accessoryName != '' ">#{accessoryName},</if>
+        <if test="videoUrl != null and videoUrl != '' ">#{videoUrl},</if>
+        <if test="videoName != null and videoName != '' ">#{videoName},</if>
+        <if test="pictureUrl != null and pictureUrl != '' ">#{pictureUrl},</if>
+        <if test="pictureName != null and pictureName != '' ">#{pictureName},</if>
+        <if test="createUserId != null and createUserId != '' ">#{createUserId},</if>
+        <if test="departmentId != null and departmentId != '' ">#{departmentId},</if>
+        <if test="accessoryId != null and accessoryId != '' ">#{accessoryId},</if>
+        sysdate(),
+        sysdate()
+        )
+    </insert>
+
+    <update id="updateConfig" parameterType="com.dg.core.db.gen.entity.ReplyTemplateEntity">
+        update automessage_reply_template
+        <set>
+            <if test="id != null">id=#{id},</if>
+            <if test="name != null and name != '' ">name=#{name},</if>
+            <if test="handleState != null and handleState != '' ">handle_state=#{handleState},</if>
+            <if test="response != null and response != '' ">response=#{response},</if>
+            <if test="guidance != null and guidance != '' ">guidance=#{guidance},</if>
+            <if test="accessoryUrl != null and accessoryUrl != '' ">accessory_url=#{accessoryUrl},</if>
+            <if test="accessoryName != null and accessoryName != '' ">accessory_name=#{accessoryName},</if>
+            <if test="videoUrl != null and videoUrl != '' ">video_url=#{videoUrl},</if>
+            <if test="videoName != null and videoName != '' ">video_name=#{videoName},</if>
+            <if test="pictureUrl != null and pictureUrl != '' ">picture_url=#{pictureUrl},</if>
+            <if test="pictureName != null and pictureName != '' ">picture_name=#{pictureName},</if>
+            <if test="createUserId != null and createUserId != '' ">create_user_id=#{createUserId},</if>
+            <if test="departmentId != null and departmentId != '' ">department_id=#{departmentId},</if>
+            <if test="accessoryId != null and accessoryId != '' ">accessory_id=#{accessoryId},</if>
+            update_time=sysdate()
+        </set>
+        where  id= #{id}
+    </update>
+
+    <delete id="deleteConfigById" parameterType="string">
+        delete from automessage_reply_template where id= #{Id}
+    </delete>
+
+    <select id="countNum" parameterType="string" resultType="integer">
+        select count(id) from automessage_reply_template
+        <where>
+            <if test="Name != null and Name != ''">
+                AND name=#{Name}
+            </if>
+            <if test="ids != null">
+                and department_id IN
+                <foreach collection="ids" item="param"  open="(" close=")" separator=",">
+                    #{param}
+                </foreach>
+            </if>
+        </where>
+    </select>
+
+</mapper>
diff --git a/flower_city/src/main/resources/mapper/RoleManagementMapper.xml b/flower_city/src/main/resources/mapper/RoleManagementMapper.xml
new file mode 100644
index 0000000..f9cee23
--- /dev/null
+++ b/flower_city/src/main/resources/mapper/RoleManagementMapper.xml
@@ -0,0 +1,101 @@
+<?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.dg.core.db.gen.mapper.RoleManagementMapper">
+
+    <resultMap type="com.dg.core.db.gen.entity.RoleManagementEntity" id="RoleManagementEntityResult">
+        <id     property="id"      column="id"      />
+        <id     property="roleName"      column="role_name"      />
+        <id     property="createUserId"      column="create_user_id"      />
+        <id     property="createTime"      column="create_time"      />
+        <id     property="updateUserId"      column="update_user_id"      />
+        <id     property="updateTime"      column="update_time"      />
+        <id     property="permission"      column="permission"      />
+
+    </resultMap>
+
+    <sql id="selectRoleManagementEntityVo">
+        SELECT
+            id,
+            role_name,
+            permission,
+            create_time,
+            update_time,
+            create_user_id,
+            (select user_name from automessage_sys_user where create_user_id=automessage_sys_user.user_id) as createName,
+            update_user_id
+        FROM
+            automessage_role_management
+    </sql>
+
+    <select id="selectConfigList"  resultMap="RoleManagementEntityResult">
+        <include refid="selectRoleManagementEntityVo"/>
+        <where>
+            AND id not in(1,2,3,4)
+            <if test="name!=null and name!=''">
+                and role_name like concat('%', #{name}, '%')
+            </if>
+        <!--            <if test="streetName != null and streetName != ''">-->
+--             AND id not in(1,2,3,4)
+        <!--            </if>-->
+        <!--            <if test="loginName != null and loginName != ''">-->
+        <!--                AND login_name like concat('%', #{loginName}, '%')-->
+        <!--            </if>-->
+        <!--            <if test="phonenumber != null and phonenumber != ''">-->
+        <!--                AND phonenumber like concat('%', #{phonenumber}, '%')-->
+        <!--            </if>-->
+        <!--            <if test="roleId != null and roleId != ''">-->
+        <!--                AND role_id=#{roleId}-->
+        <!--            </if>-->
+
+        </where>
+
+        order by create_time desc
+    </select>
+
+    <insert id="insertConfig" parameterType="com.dg.core.db.gen.entity.RoleManagementEntity">
+        insert into automessage_role_management (
+        <if test="id != null">id,</if>
+        <if test="roleName != null and roleName != '' ">role_name,</if>
+        <if test="permission != null">permission,</if>
+        <if test="createUserId != null and createUserId != '' ">create_user_id,</if>
+        <if test="updateUserId != null and updateUserId != '' ">update_user_id,</if>
+        update_time,
+        create_time
+        )values(
+        <if test="id != null">#{id},</if>
+        <if test="roleName != null and roleName != '' ">#{roleName},</if>
+        <if test="permission != null and permission != '' "  >#{permission},</if>
+        <if test="createUserId != null and createUserId != '' ">#{createUserId},</if>
+        <if test="updateUserId != null and updateUserId != '' ">#{updateUserId},</if>
+        sysdate(),
+        sysdate()
+        )
+    </insert>
+
+    <update id="updateConfig" parameterType="com.dg.core.db.gen.entity.RoleManagementEntity">
+        update automessage_role_management
+        <set>
+            <if test="id != null">id=#{id},</if>
+            <if test="roleName != null and roleName != '' ">role_name=#{roleName},</if>
+            <if test="permission != null and permission != '' "  >permission=#{permission},</if>
+            <if test="createUserId != null and createUserId != '' ">create_user_id=#{createUserId},</if>
+            <if test="updateUserId != null and updateUserId != '' ">update_user_id=#{updateUserId},</if>
+            update_time=sysdate()
+        </set>
+        where  id= #{id}
+    </update>
+
+    <delete id="deleteConfigById" parameterType="string">
+        delete from automessage_role_management where id= #{Id}
+    </delete>
+
+    <select id="countNum" resultType="integer">
+        select count(id) from automessage_role_management
+        <where>
+            <if test="name!=null and name!=''">
+                and role_name like concat('%', #{name}, '%')
+            </if>
+        </where>
+    </select>
+
+</mapper>
diff --git a/flower_city/src/main/resources/mapper/RoleMenuMapper.xml b/flower_city/src/main/resources/mapper/RoleMenuMapper.xml
new file mode 100644
index 0000000..075e0f0
--- /dev/null
+++ b/flower_city/src/main/resources/mapper/RoleMenuMapper.xml
@@ -0,0 +1,76 @@
+<?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.dg.core.db.gen.mapper.RoleMenuEntityMapper">
+
+    <resultMap type="com.dg.core.db.gen.entity.RoleMenuEntity" id="RoleMenuEntityResult">
+        <id     property="id"      column="id"      />
+        <id     property="roleId"      column="role_id"      />
+        <id     property="menuId"      column="menu_id"      />
+        <id     property="createTime"      column="create_time"      />
+        <id     property="updateTime"      column="update_time"      />
+
+    </resultMap>
+
+    <sql id="selectRoleManagementEntityVo">
+        SELECT
+            id,
+            role_id,
+            menu_id,
+            create_time,
+            update_time
+        FROM
+            automessage_role_menu
+    </sql>
+
+    <select id="selectConfigList" parameterType="string" resultMap="RoleMenuEntityResult">
+        <include refid="selectRoleManagementEntityVo"/>
+        <where>
+            <if test="roleId!=null and roleId!=''">
+                and role_id=#{roleId}
+            </if>
+
+
+        </where>
+    </select>
+
+    <insert id="insertConfig" parameterType="com.dg.core.db.gen.entity.RoleManagementEntity">
+        insert into automessage_role_menu (
+        <if test="id != null">id,</if>
+        <if test="roleId != null and roleId != '' ">role_id,</if>
+        <if test="menuId != null and menuId != '' ">menu_id,</if>
+        update_time,
+        create_time
+        )values(
+        <if test="id != null">#{id},</if>
+        <if test="roleId != null and roleId != '' ">#{roleId},</if>
+        <if test="menuId != null and menuId != '' ">#{menuId},</if>
+        sysdate(),
+        sysdate()
+        )
+    </insert>
+
+    <update id="updateConfig" parameterType="com.dg.core.db.gen.entity.RoleManagementEntity">
+        update automessage_role_menu
+        <set>
+            <if test="id != null">id=#{id},</if>
+            <if test="roleId != null and roleId != '' ">role_id=#{roleId},</if>
+            <if test="menuId != null and menuId != '' ">menu_id=#{menuId},</if>
+            update_time=sysdate()
+        </set>
+        where  id= #{Id}
+    </update>
+
+    <delete id="deleteConfigById" parameterType="string">
+        delete from automessage_role_menu where id= #{Id}
+    </delete>
+
+    <select id="countNum" resultType="integer">
+        select count(id) from automessage_role_menu
+    </select>
+
+</mapper>
+
+
+
+
+
diff --git a/flower_city/src/main/resources/mapper/SlideshowMapper.xml b/flower_city/src/main/resources/mapper/SlideshowMapper.xml
new file mode 100644
index 0000000..ac37d7d
--- /dev/null
+++ b/flower_city/src/main/resources/mapper/SlideshowMapper.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.dg.core.db.gen.mapper.SlideshowMapper">
+    <resultMap type="com.dg.core.db.gen.entity.Slideshow" id="SlideshowResult">
+        <id     property="id"      column="id"      />
+        <id     property="url"      column="url"      />
+         <id     property="createTime"      column="create_time"      />
+        <id     property="linkType"      column="link_type"      />
+        <id     property="link"      column="link"      />
+        <id     property="title"      column="title"      />
+        <id     property="content"      column="content"      />
+    </resultMap>
+
+</mapper>
diff --git a/flower_city/src/main/resources/mapper/SysUserMapper.xml b/flower_city/src/main/resources/mapper/SysUserMapper.xml
new file mode 100644
index 0000000..e81b265
--- /dev/null
+++ b/flower_city/src/main/resources/mapper/SysUserMapper.xml
@@ -0,0 +1,362 @@
+<?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.dg.core.db.gen.mapper.SysUserMapper">
+    <resultMap type="com.dg.core.db.gen.entity.SysUser" id="SysUserResult">
+        <id     property="id"      column="id"      />
+        <id     property="userId"      column="user_id"      />
+        <result property="loginName"     column="login_name"     />
+        <result property="userName"   column="user_name"   />
+        <result property="userType"    column="user_type"    />
+        <result property="phonenumber"      column="phonenumber"      />
+        <result property="sex"      column="sex"      />
+        <result property="avatar"      column="avatar"      />
+        <result property="password"      column="password"      />
+        <result property="salt"      column="salt"      />
+        <result property="status"      column="status"      />
+        <result property="delFlag"      column="del_flag"      />
+        <result property="loginIp"      column="login_ip"      />
+        <result property="loginDate"      column="login_date"      />
+        <result property="pwdUpdateDate"      column="pwd_update_date"      />
+        <result property="createBy"      column="create_by"      />
+        <result property="createTime"      column="create_time"      />
+        <result property="updateBy"      column="update_by"      />
+        <result property="updateTime"      column="update_time"      />
+        <result property="remark"      column="remark"      />
+        <result property="roleIds"      column="role_ids"      />
+        <result property="dataPermission"      column="data_permission"      />
+        <result property="departmentId"      column="department_id"      />
+        <result property="stairId"      column="stair_id"      />
+        <result property="secondLevelId"      column="second_level_id"      />
+        <result property="departmentName"      column="department_name"      />
+        <result property="departmentArea"      column="department_area"      />
+        <result property="leisureState"      column="leisure_state"      />
+        <result property="masterIds"      column="master_ids"      />
+        <result property="masterNames"      column="master_names"      />
+        <result property="transactionIds"      column="transaction_ids"      />
+        <result property="transactionNames"      column="transaction_names"      />
+        <result property="openid"      column="openid"      />
+        <result property="transactionNum"      column="transaction_num"      />
+        <result property="isDivisionHead"      column="is_division_head"      />
+        <result property="mattersIds"      column="matters_ids"      />
+        <result property="departmentIds"      column="department_ids"      />
+        <result property="moreDepartmentIds"      column="more_department_ids"      />
+        <result property="departmentIdStr"      column="department_id_str"      />
+    </resultMap>
+
+    <sql id="selectSysUserVo">
+        SELECT
+            id,
+            user_id,
+            login_name,
+            user_name,
+            user_type,
+            phonenumber,
+            sex,
+            avatar,
+            password,
+            salt,
+            status,
+            del_flag,
+            login_ip,
+            login_date,
+            pwd_update_date,
+            create_by,
+            create_time,
+            update_by,
+            update_time,
+            remark,
+            role_ids,
+            data_permission,
+            department_id,
+            stair_id,
+            second_level_id,
+            matters_ids,
+            department_ids,
+            more_department_ids,
+            department_id_str,
+            (SELECT GROUP_CONCAT(matter_name) FROM automessage_transaction_event WHERE id in (SELECT
+              substring_index(substring_index(matters_ids,',', b.help_topic_id + 1), ',', -1) result
+          FROM
+              mysql.help_topic b
+          where
+                  b.help_topic_id &lt; (LENGTH(matters_ids) - LENGTH(REPLACE(matters_ids, ',', '')) + 1))) as mattersNames,
+
+            concat(
+                    IFNULL((SELECT name FROM automessage_area_code_2022 WHERE automessage_area_code_2022.code=(select city from automessage_organization_chart
+                            where automessage_organization_chart.id=department_id)),''),
+                    IFNULL((SELECT name FROM automessage_area_code_2022 WHERE automessage_area_code_2022.code=(select district from automessage_organization_chart
+                            where automessage_organization_chart.id=department_id)),''),
+                    IFNULL((SELECT name FROM automessage_area_code_2022 WHERE automessage_area_code_2022.code=(select village from automessage_organization_chart
+                            where automessage_organization_chart.id=department_id)),'')
+                ) AS department_area,
+            leisure_state,
+            master_ids,
+            (SELECT GROUP_CONCAT(classify_name) FROM automessage_classify_administration WHERE id in (SELECT
+            substring_index(substring_index(master_ids,',', b.help_topic_id + 1), ',', -1) result
+            FROM
+            mysql.help_topic b
+            where
+            b.help_topic_id &lt; (LENGTH(master_ids) - LENGTH(REPLACE(master_ids, ',', '')) + 1))) as master_names,
+            is_division_head,
+            transaction_ids,
+            transaction_names,
+            openid,
+            (select user_name from automessage_sys_user as asu where asu.user_id=automessage_sys_user.create_by) as createName,
+            transaction_num,
+            (select count(id) from automessage_guide_repair_order where automessage_guide_repair_order.state='3'
+             and automessage_guide_repair_order.guide_user_id=user_id and
+             automessage_guide_repair_order.guide_department_id=automessage_sys_user.department_id) as transactionEndNum,
+            (select role_name from automessage_role_management where automessage_role_management.id=role_ids) as roleName,
+            (select permission from automessage_role_management where automessage_role_management.id=role_ids) as permission,
+            (SELECT GROUP_CONCAT(organization_name) FROM automessage_organization_chart WHERE id in (SELECT
+                substring_index(substring_index(more_department_ids,',', b.help_topic_id + 1), ',', -1) result
+                FROM
+                mysql.help_topic b
+                where
+                b.help_topic_id &lt; (LENGTH(more_department_ids) - LENGTH(REPLACE(more_department_ids, ',', '')) + 1)))
+            as department_name
+        FROM
+            automessage_sys_user
+    </sql>
+
+    <select id="selectNum" parameterType="string" resultType="integer">
+        select count(user_id) from automessage_sys_user
+        <where>
+            <if test="userType != null and userType != ''">
+                AND user_type=#{userType}
+            </if>
+            <if test="ids != null">
+                and department_id IN
+                <foreach collection="ids" item="param"  open="(" close=")" separator=",">
+                    #{param}
+                </foreach>
+            </if>
+            <if test="isDivisionHead != null and isDivisionHead != ''">
+                AND is_division_head=#{isDivisionHead}
+            </if>
+            <if test="userName != null and userName != ''">
+                AND (user_name like concat('%', #{userName}, '%') or
+                (department_id in (SELECT id FROM automessage_organization_chart
+                WHERE organization_name like concat('%', #{userName}, '%'))) or
+                phonenumber like concat('%', #{userName}, '%'))
+            </if>
+
+        </where>
+    </select>
+
+    <select id="queryList"  resultMap="SysUserResult">
+        <include refid="selectSysUserVo"/>
+        <where>
+            user_type=#{userType}
+            <if test="keyWord!=null and keyWord!=''">
+              and (transaction_names like concat('%',#{keyWord}, '%') or  user_name like concat('%',#{keyWord}, '%'))
+            </if>
+        </where>
+        ORDER BY department_id
+    </select>
+
+    <select id="selectConfigList" parameterType="string" resultMap="SysUserResult">
+        <include refid="selectSysUserVo"/>
+        <where>
+            <if test="userType != null and userType != ''">
+                AND user_type=#{userType}
+            </if>
+            <if test="ids != null">
+                AND
+                <foreach collection="ids" item="param"  open="(" close=")" separator="or">
+                     locate(#{param},more_department_ids)>0
+                </foreach>
+            </if>
+
+            <if test="isDivisionHead != null and isDivisionHead != ''">
+                and is_division_head=#{isDivisionHead}
+            </if>
+            <if test="userName != null and userName != ''">
+                AND (user_name like concat('%', #{userName}, '%') or
+                (department_id in (SELECT id FROM automessage_organization_chart
+                WHERE organization_name like concat('%', #{userName}, '%'))) or
+                phonenumber like concat('%', #{userName}, '%'))
+            </if>
+        </where>
+        order by create_time desc
+    </select>
+
+    <select id="selectData" parameterType="string"  resultMap="SysUserResult">
+        <include refid="selectSysUserVo"/>
+        <where>
+            <if test="userId!=null and userId!='' ">
+                AND user_id= #{userId}
+            </if>
+
+            <if test="phonenumber!=null and phonenumber!='' ">
+                AND phonenumber= #{phonenumber}
+            </if>
+
+            <if test="loginName!=null and loginName!='' ">
+                AND login_name= #{loginName}
+            </if>
+
+        </where>
+    </select>
+
+    <select id="getUserByAccount" parameterType="string"  resultMap="SysUserResult">
+        <include refid="selectSysUserVo"/>
+        <where>
+            <if test="account!=null and account!='' ">
+                login_name= #{account}
+            </if>
+        </where>
+    </select>
+
+    <select id="selectListByDepartmentId"  resultMap="SysUserResult">
+        <include refid="selectSysUserVo"/>
+         <where>
+            user_type=2 and status=0 and leisure_state=0
+            <if test="list!=null">
+                and  department_id in
+                <foreach collection="list" item="id" index="index" open="(" close=")" separator=",">
+                    #{id}
+                </foreach>
+             </if>
+             <if test="classifyIdFront!=null and classifyIdFront!='' and classifyIdAfter!=null and classifyIdAfter!=''">
+                and (concat(',',matters_ids, ',') like concat('%',#{classifyIdFront}, '%') or concat(',',matters_ids, ',') like concat('%',#{classifyIdAfter}, '%'))
+             </if>
+
+         </where>
+         order by transaction_num
+    </select>
+
+    <insert id="insertConfig" parameterType="com.dg.core.db.gen.entity.SysUser">
+        insert ignore into automessage_sys_user (
+        create_time
+        <if test="userId != null and userId != '' ">,user_id</if>
+        <if test="loginName != null and loginName != '' ">,login_name</if>
+        <if test="userName != null and userName != '' ">,user_name</if>
+        <if test="userType != null and userType != '' ">,user_type</if>
+        <if test="phonenumber != null and phonenumber != '' ">,phonenumber</if>
+        <if test="sex != null and sex != '' ">,sex</if>
+        <if test="avatar != null and avatar != '' ">,avatar</if>
+        <if test="password != null and password != '' ">,password</if>
+        <if test="salt != null and salt != '' ">,salt</if>
+        <if test="status != null and status != '' ">,status</if>
+        <if test="delFlag != null and delFlag != '' ">,del_flag</if>
+        <if test="loginIp != null and loginIp != '' ">,login_ip</if>
+        <if test="loginDate != null ">,login_date</if>
+        <if test="pwdUpdateDate != null ">,pwd_update_date</if>
+        <if test="createBy != null and createBy != '' ">,create_by</if>
+        <if test="updateBy != null and updateBy != '' ">,update_by</if>
+        <if test="updateTime != null  ">,update_time</if>
+        <if test="remark != null and remark != '' ">,remark</if>
+        <if test="roleIds != null and roleIds != '' ">,role_ids</if>
+        <if test="dataPermission != null and dataPermission != '' ">,data_permission</if>
+        <if test="departmentId != null and departmentId != '' ">,department_id</if>
+        <if test="stairId != null and stairId != '' ">,stair_id</if>
+        <if test="secondLevelId != null and secondLevelId != '' ">,second_level_id</if>
+        <if test="departmentName != null and departmentName != '' ">,department_name</if>
+        <if test="departmentArea != null and departmentArea != '' ">,department_area</if>
+        <if test="leisureState != null and leisureState != '' ">,leisure_state</if>
+        <if test="masterIds != null">,master_ids</if>
+        <if test="masterNames != null">,master_names</if>
+        <if test="transactionIds != null and transactionIds != '' ">,transaction_ids</if>
+        <if test="transactionNames != null and transactionNames != '' ">,transaction_names</if>
+        <if test="openid != null and openid != '' ">,openid</if>
+        <if test="isDivisionHead != null and isDivisionHead != '' ">,is_division_head</if>
+        <if test="mattersIds != null  ">,matters_ids</if>
+        <if test="departmentIds != null  ">,department_ids</if>
+        <if test="moreDepartmentIds != null  ">,more_department_ids</if>
+        <if test="departmentIdStr != null  ">,department_id_str</if>
+        )values(
+        sysdate()
+        <if test="userId != null and userId != '' ">,#{userId}</if>
+        <if test="loginName != null and loginName != '' ">,#{loginName}</if>
+        <if test="userName != null and userName != '' ">,#{userName}</if>
+        <if test="userType != null and userType != '' ">,#{userType}</if>
+        <if test="phonenumber != null and phonenumber != '' ">,#{phonenumber}</if>
+        <if test="sex != null and sex != '' ">,#{sex}</if>
+        <if test="avatar != null and avatar != '' ">,#{avatar}</if>
+        <if test="password != null and password != '' ">,#{password}</if>
+        <if test="salt != null and salt != '' ">,#{salt}</if>
+        <if test="status != null and status != '' ">,#{status}</if>
+        <if test="delFlag != null and delFlag != '' ">,#{delFlag}</if>
+        <if test="loginIp != null and loginIp != '' ">,#{loginIp}</if>
+        <if test="loginDate != null ">,#{loginDate}</if>
+        <if test="pwdUpdateDate != null and pwdUpdateDate != '' ">,#{pwdUpdateDate}</if>
+        <if test="createBy != null and createBy != '' ">,#{createBy}</if>
+        <if test="updateBy != null and updateBy != '' ">,#{updateBy}</if>
+        <if test="updateTime != null  ">,#{updateTime}</if>
+        <if test="remark != null and remark != '' ">,#{remark}</if>
+        <if test="roleIds != null and roleIds != '' ">,#{roleIds}</if>
+        <if test="dataPermission != null and dataPermission != '' ">,#{dataPermission}</if>
+        <if test="departmentId != null and departmentId != '' ">,#{departmentId}</if>
+        <if test="stairId != null and stairId != '' ">,#{stairId}</if>
+        <if test="secondLevelId != null and secondLevelId != '' ">,#{secondLevelId}</if>
+        <if test="departmentName != null and departmentName != '' ">,#{departmentName}</if>
+        <if test="departmentArea != null and departmentArea != '' ">,#{departmentArea}</if>
+        <if test="leisureState != null and leisureState != '' ">,#{leisureState}</if>
+        <if test="masterIds != null">,#{masterIds}</if>
+        <if test="masterNames != null">,#{masterNames}</if>
+        <if test="transactionIds != null and transactionIds != '' ">,#{transactionIds}</if>
+        <if test="transactionNames != null and transactionNames != '' ">,#{transactionNames}</if>
+        <if test="openid != null and openid != '' ">,#{openid}</if>
+        <if test="isDivisionHead != null and isDivisionHead != '' ">,#{isDivisionHead}</if>
+        <if test="mattersIds != null">,#{mattersIds}</if>
+        <if test="departmentIds != null  ">,#{departmentIds}</if>
+        <if test="moreDepartmentIds != null  ">,#{moreDepartmentIds}</if>
+        <if test="departmentIdStr != null  ">,#{departmentIdStr}</if>
+        )
+    </insert>
+
+    <update id="updateConfig" parameterType="com.dg.core.db.gen.entity.SysUser">
+        update automessage_sys_user
+        <set>
+            <if test="userId != null and userId != '' ">user_id=#{userId}</if>
+            <if test="loginName != null and loginName != '' ">,login_name=#{loginName}</if>
+            <if test="userName != null and userName != '' ">,user_name=#{userName}</if>
+            <if test="userType != null and userType != '' ">,user_type=#{userType}</if>
+            <if test="phonenumber != null and phonenumber != '' ">,phonenumber=#{phonenumber}</if>
+            <if test="sex != null and sex != '' ">,sex=#{sex}</if>
+            <if test="avatar != null and avatar != '' ">,avatar=#{avatar}</if>
+            <if test="password != null and password != '' ">,password=#{password}</if>
+            <if test="salt != null and salt != '' ">,salt=#{salt}</if>
+            <if test="status != null and status != '' ">,status=#{status}</if>
+            <if test="delFlag != null and delFlag != '' ">,del_flag=#{delFlag}</if>
+            <if test="loginIp != null and loginIp != '' ">,login_ip=#{loginIp}</if>
+            <if test="loginDate != null  ">,login_date=#{loginDate}</if>
+            <if test="pwdUpdateDate != null  ">,pwd_update_date=#{pwdUpdateDate}</if>
+            <if test="createBy != null and createBy != '' ">,create_by=#{createBy}</if>
+            <if test="createTime != null  ">,create_time=#{createTime}</if>
+            <if test="updateBy != null and updateBy != '' ">,update_by=#{updateBy}</if>
+            <if test="remark != null and remark != '' ">,remark=#{remark}</if>
+            <if test="roleIds != null and roleIds != '' ">,role_ids=#{roleIds}</if>
+            <if test="dataPermission != null and dataPermission != '' ">,data_permission=#{dataPermission}</if>
+            <if test="departmentId != null and departmentId != '' ">,department_id=#{departmentId}</if>
+            <if test="stairId != null and stairId != '' ">,stair_id=#{stairId}</if>
+            <if test="secondLevelId != null and secondLevelId != '' ">,second_level_id=#{secondLevelId}</if>
+            <if test="departmentName != null and departmentName != '' ">,department_name=#{departmentName}</if>
+            <if test="departmentArea != null and departmentArea != '' ">,department_area=#{departmentArea}</if>
+            <if test="leisureState != null and leisureState != '' ">,leisure_state=#{leisureState}</if>
+            <if test="masterIds != null">,master_ids=#{masterIds}</if>
+            <if test="masterNames != null">,master_names=#{masterNames}</if>
+            <if test="transactionIds != null and transactionIds != '' ">,transaction_ids=#{transactionIds}</if>
+            <if test="transactionNames != null and transactionNames != '' ">,transaction_names=#{transactionNames}</if>
+            <if test="openid != null and openid != '' ">,openid=#{openid}</if>
+            <if test="isDivisionHead != null and isDivisionHead != '' ">,is_division_head=#{isDivisionHead}</if>
+            <if test="mattersIds != null">,matters_ids=#{mattersIds}</if>
+            <if test="departmentIds != null  ">,department_ids=#{departmentIds}</if>
+            <if test="moreDepartmentIds != null  ">,more_department_ids=#{moreDepartmentIds}</if>
+            <if test="departmentIdStr != null  ">,department_id_str=#{departmentIdStr}</if>
+            ,update_time=sysdate()
+        </set>
+        where user_id= #{userId}
+    </update>
+
+    <delete id="deleteConfigById" parameterType="string">
+        delete from automessage_sys_user where user_id= #{id}
+    </delete>
+
+    <select id="setGroup">
+        SET SESSION group_concat_max_len=10240
+    </select>
+
+
+</mapper>
diff --git a/flower_city/src/main/resources/mapper/TransactionEventMapper.xml b/flower_city/src/main/resources/mapper/TransactionEventMapper.xml
new file mode 100644
index 0000000..f4028fd
--- /dev/null
+++ b/flower_city/src/main/resources/mapper/TransactionEventMapper.xml
@@ -0,0 +1,502 @@
+<?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.dg.core.db.gen.mapper.TransactionEventMapper">
+
+    <resultMap type="com.dg.core.db.gen.entity.TransactionEvent" id="TransactionEventEntityResult">
+        <id     property="id"      column="id"      />
+        <id     property="departmentId"      column="department_id"      />
+        <id     property="departmentArea"      column="department_area"      />
+        <id     property="classifyId"      column="classify_id"      />
+        <id     property="matterName"      column="matter_name"      />
+        <id     property="associateIds"      column="associate_ids"      />
+        <id     property="transactionNum"      column="transaction_num"      />
+        <id     property="browseNum"      column="browse_num"      />
+        <id     property="basicInformation"      column="basic_information"      />
+        <id     property="acceptConditions"      column="accept_conditions"      />
+        <id     property="applicationMaterial"      column="application_material"      />
+        <id     property="handlingProcedures"      column="handling_procedures"      />
+        <id     property="rates"      column="rates"      />
+        <id     property="createTime"      column="create_time"      />
+        <id     property="updateTime"      column="update_time"      />
+        <id     property="queryTime"      column="query_time"      />
+
+        <id     property="associateNames"      column="associate_names"      />
+        <id     property="queryTime"      column="query_time"      />
+        <id     property="basicInformationUrl"      column="basic_information_url"      />
+        <id     property="acceptConditionsUrl"      column="accept_conditions_url"      />
+        <id     property="applicationMaterialUrl"      column="application_material_url"      />
+        <id     property="handlingProceduresUrl"      column="handling_procedures_url"      />
+        <id     property="ratesUrl"      column="rates_url"      />
+        <id     property="basicInformationFileName"      column="basic_information_file_name"      />
+        <id     property="acceptConditionsFileName"      column="accept_conditions_file_name"      />
+        <id     property="applicationMaterialFileName"      column="application_material_file_name"      />
+        <id     property="handlingProceduresFileName"      column="handling_procedures_file_name"      />
+        <id     property="ratesFileName"      column="rates_file_name"      />
+        <id     property="operationalGuidelineUrl"      column="operational_guideline_url"      />
+        <id     property="operationalGuidelineVideoUrl"      column="operational_guideline_video_url"      />
+
+        <id     property="setGist"      column="set_gist"      />
+        <id     property="setGistUrl"      column="set_gist_url"      />
+        <id     property="setGistName"      column="set_gist_name"      />
+
+        <id     property="commonProblem"      column="common_problem"      />
+        <id     property="commonProblemUrl"      column="common_problem_url"      />
+        <id     property="commonProblemName"      column="common_problem_name"      />
+        <id     property="operationalGuidelineVideoName"      column="operational_guideline_video_name"      />
+        <id     property="operationalGuidelineName"      column="operational_guideline_name"      />
+        <id     property="transactionArea"      column="transaction_area"      />
+        <id     property="transactionAreaUrl"      column="transaction_area_url"      />
+        <id     property="transactionAreaName"      column="transaction_area_name"      />
+        <id     property="classifyIds"      column="classify_ids"      />
+        <id     property="departmentIds"      column="department_ids"      />
+
+    </resultMap>
+
+    <sql id="selectTransactionEventEntityVo">
+        SELECT
+            id,
+            department_id,
+            concat(
+                IFNULL((SELECT name FROM automessage_area_code_2022 WHERE automessage_area_code_2022.code=(select city from automessage_organization_chart
+                        where automessage_organization_chart.id=department_id)),''),
+                IFNULL((SELECT name FROM automessage_area_code_2022 WHERE automessage_area_code_2022.code=(select district from automessage_organization_chart
+                        where automessage_organization_chart.id=department_id)),''),
+                IFNULL((SELECT name FROM automessage_area_code_2022 WHERE automessage_area_code_2022.code=(select village from automessage_organization_chart
+                where automessage_organization_chart.id=department_id)),'')
+            ) AS department_area,
+            (select contact_number from automessage_organization_chart where automessage_organization_chart.id=department_id) as contactNumber,
+            classify_id,
+            matter_name,
+            associate_ids,
+            transaction_num,
+            browse_num,
+            basic_information,
+            accept_conditions,
+            application_material,
+            handling_procedures,
+            rates,
+            create_time,
+            update_time,
+            query_time,
+            associate_names,
+            basic_information_url,
+            accept_conditions_url,
+            application_material_url,
+            handling_procedures_url,
+            rates_url,
+            basic_information_file_name,
+            accept_conditions_file_name,
+            application_material_file_name,
+            handling_procedures_file_name,
+            rates_file_name,
+            operational_guideline_url,
+            set_gist,
+            set_gist_url,
+            set_gist_name,
+            common_problem,
+            common_problem_url,
+            common_problem_name,
+            operational_guideline_video_url,
+            operational_guideline_video_name,
+            operational_guideline_name,
+            transaction_area,
+            transaction_area_url,
+            transaction_area_name,
+            classify_ids,
+            department_ids,
+            (SELECT GROUP_CONCAT(organization_name) FROM automessage_organization_chart WHERE id in (SELECT
+                 substring_index(substring_index(department_ids,',', b.help_topic_id + 1), ',', -1) result
+             FROM
+                 mysql.help_topic b
+             where
+                     b.help_topic_id &lt; (LENGTH(department_ids) - LENGTH(REPLACE(department_ids, ',', '')) + 1))) as departmentNames,
+            (IF((select classify_grade from automessage_classify_administration where automessage_classify_administration.id=automessage_transaction_event.classify_id)='2',
+                (select classify_name from automessage_classify_administration where automessage_classify_administration.id=(select parent_id from
+                automessage_classify_administration where automessage_classify_administration.id=automessage_transaction_event.classify_id)),
+                (select classify_name from automessage_classify_administration where automessage_classify_administration.id=automessage_transaction_event.classify_id))) as classifyName,
+            (select organization_name from automessage_organization_chart where automessage_organization_chart.id=automessage_transaction_event.department_id) as departmentName,
+            concat(
+            (select classify_name from  automessage_classify_administration  where id=(select parent_id from  automessage_classify_administration  where id=automessage_transaction_event.classify_id)),
+            '>',(select classify_name from  automessage_classify_administration  where id=automessage_transaction_event.classify_id)
+            ) sumClassifyName
+        FROM
+            automessage_transaction_event
+    </sql>
+
+    <sql id="selectTransactionEventList">
+        SELECT
+            id,
+            department_id,
+            concat(
+                    IFNULL((SELECT name FROM automessage_area_code_2022 WHERE automessage_area_code_2022.code=(select city from automessage_organization_chart
+                                                                                       where automessage_organization_chart.id=department_id)),''),
+                    IFNULL((SELECT name FROM automessage_area_code_2022 WHERE automessage_area_code_2022.code=(select district from automessage_organization_chart
+                                                                                       where automessage_organization_chart.id=department_id)),''),
+                    IFNULL((SELECT name FROM automessage_area_code_2022 WHERE automessage_area_code_2022.code=(select village from automessage_organization_chart
+                                                                                       where automessage_organization_chart.id=department_id)),'')
+                ) AS department_area,
+            classify_id,
+            (IF((select classify_grade from automessage_classify_administration where automessage_classify_administration.id=automessage_transaction_event.classify_id)='2',
+                (select classify_name from automessage_classify_administration where automessage_classify_administration.id=(select parent_id from
+                    automessage_classify_administration where automessage_classify_administration.id=automessage_transaction_event.classify_id)),
+                (select classify_name from automessage_classify_administration where automessage_classify_administration.id=automessage_transaction_event.classify_id))) as classifyName,
+            (select organization_name from automessage_organization_chart where automessage_organization_chart.id=automessage_transaction_event.department_id) as departmentName,
+            matter_name,
+            associate_ids,
+            associate_names,
+            transaction_num,
+            browse_num,
+            department_ids,
+            (SELECT GROUP_CONCAT(organization_name) FROM automessage_organization_chart WHERE id in (SELECT
+              substring_index(substring_index(department_ids,',', b.help_topic_id + 1), ',', -1) result
+          FROM
+              mysql.help_topic b
+          where
+                  b.help_topic_id &lt; (LENGTH(department_ids) - LENGTH(REPLACE(department_ids, ',', '')) + 1))) as departmentNames,
+            create_time,
+            update_time
+        FROM
+            automessage_transaction_event
+    </sql>
+
+    <select id="selectConfigData" parameterType="string"  resultMap="TransactionEventEntityResult">
+        <include refid="selectTransactionEventEntityVo"/>
+        where id=#{Id}
+    </select>
+
+    <select id="selectConfigList"  resultMap="TransactionEventEntityResult">
+        <include refid="selectTransactionEventList"/>
+        <where>
+            <if test="keyword != null and keyword != ''">
+                AND (
+                    (matter_name like concat('%', #{keyword}, '%')) or
+                    (department_id in (SELECT id FROM automessage_organization_chart WHERE organization_name like concat('%', #{keyword}, '%')))
+                    or (classify_id in (SELECT id FROM automessage_classify_administration WHERE classify_name like concat('%', #{keyword}, '%')))
+                    )
+
+            </if>
+            <if test="classifyGrade != null and classifyGrade != ''">
+                AND (select classify_grade from automessage_classify_administration where automessage_classify_administration.id=classify_id) = #{classifyGrade}
+            </if>
+            <if test="ids != null">
+                and department_id IN
+                <foreach collection="ids" item="param"  open="(" close=")" separator=",">
+                    #{param}
+                </foreach>
+            </if>
+        </where>
+        order by create_time desc
+    </select>
+
+    <!-- 根据分类筛选数据 -->
+    <select id="selectClassifyList"  resultMap="TransactionEventEntityResult">
+        <include refid="selectTransactionEventList"/>
+        <where>
+            <if test="ids != null">
+                and classify_id IN
+                <foreach collection="ids" item="param"  open="(" close=")" separator=",">
+                    #{param}
+                </foreach>
+            </if>
+        </where>
+        order by create_time desc
+    </select>
+
+
+
+    <select id="selectListByIds"  resultMap="TransactionEventEntityResult">
+        <include refid="selectTransactionEventList"/>
+        WHERE id IN
+        <foreach collection="array" item="id" index="index" open="(" close=")" separator=",">
+            #{id}
+        </foreach>
+        order by create_time desc
+    </select>
+
+    <insert id="insertConfig" parameterType="com.dg.core.db.gen.entity.TransactionEvent">
+        insert into automessage_transaction_event (
+        <if test="id != null">id,</if>
+        <if test="departmentId != null and departmentId != '' ">department_id,</if>
+        <if test="departmentArea != null">department_area,</if>
+        <if test="classifyId != null and classifyId != '' ">classify_id,</if>
+        <if test="matterName != null and matterName != '' ">matter_name,</if>
+        <if test="associateIds != null ">associate_ids,</if>
+        <if test="transactionNum != null ">transaction_num,</if>
+        <if test="browseNum != null  ">browse_num,</if>
+        <if test="basicInformation != null and basicInformation != '' ">basic_information,</if>
+        <if test="acceptConditions != null and acceptConditions != '' ">accept_conditions,</if>
+        <if test="applicationMaterial != null and applicationMaterial != '' ">application_material,</if>
+        <if test="handlingProcedures != null and handlingProcedures != '' ">handling_procedures,</if>
+        <if test="rates != null and rates != '' ">rates,</if>
+        <if test="associateNames != null  ">associate_names,</if>
+        <if test="queryTime != null">query_time,</if>
+        <if test="basicInformationUrl != null and basicInformationUrl != '' ">basic_information_url,</if>
+        <if test="acceptConditionsUrl != null and acceptConditionsUrl != '' ">accept_conditions_url,</if>
+        <if test="applicationMaterialUrl != null and applicationMaterialUrl != '' ">application_material_url,</if>
+        <if test="handlingProceduresUrl != null and handlingProceduresUrl != '' ">handling_procedures_url,</if>
+        <if test="ratesUrl != null and ratesUrl != '' ">rates_url,</if>
+        <if test="basicInformationFileName != null and basicInformationFileName != '' ">basic_information_file_name,</if>
+        <if test="acceptConditionsFileName != null and acceptConditionsFileName != '' ">accept_conditions_file_name,</if>
+        <if test="applicationMaterialFileName != null and applicationMaterialFileName != '' ">application_material_file_name,</if>
+        <if test="handlingProceduresFileName != null and handlingProceduresFileName != '' ">handling_procedures_file_name,</if>
+        <if test="ratesFileName != null and ratesFileName != '' ">rates_file_name,</if>
+        <if test="operationalGuidelineUrl != null and operationalGuidelineUrl != '' ">operational_guideline_url,</if>
+        <if test="operationalGuidelineVideoUrl != null and operationalGuidelineVideoUrl != '' ">operational_guideline_video_url,</if>
+        <if test="setGist != null and setGist != '' ">set_gist,</if>
+        <if test="setGistUrl != null and setGistUrl != '' ">set_gist_url,</if>
+        <if test="setGistName != null and setGistName != '' ">set_gist_name,</if>
+        <if test="commonProblem != null and commonProblem != '' ">common_problem,</if>
+        <if test="commonProblemUrl != null and commonProblemUrl != '' ">common_problem_url,</if>
+        <if test="commonProblemName != null and commonProblemName != '' ">common_problem_name,</if>
+        <if test="operationalGuidelineVideoName != null and operationalGuidelineVideoName != '' ">operational_guideline_video_name,</if>
+        <if test="operationalGuidelineName != null and operationalGuidelineName != '' ">operational_guideline_name,</if>
+        <if test="transactionArea != null ">transaction_area,</if>
+        <if test="transactionAreaUrl != null ">transaction_area_url,</if>
+        <if test="transactionAreaName != null ">transaction_area_name,</if>
+        <if test="classifyIds != null ">classify_ids,</if>
+        <if test="departmentIds != null ">department_ids,</if>
+        update_time,
+        create_time
+        )values(
+        <if test="id != null">#{id},</if>
+        <if test="departmentId != null and departmentId != '' ">#{departmentId},</if>
+        <if test="departmentArea != null">#{departmentArea},</if>
+        <if test="classifyId != null and classifyId != '' ">#{classifyId},</if>
+        <if test="matterName != null and matterName != '' ">#{matterName},</if>
+        <if test="associateIds != null ">#{associateIds},</if>
+        <if test="transactionNum != null ">#{transactionNum},</if>
+        <if test="browseNum != null  ">#{browseNum},</if>
+        <if test="basicInformation != null and basicInformation != '' ">#{basicInformation},</if>
+        <if test="acceptConditions != null and acceptConditions != '' ">#{acceptConditions},</if>
+        <if test="applicationMaterial != null and applicationMaterial != '' ">#{applicationMaterial},</if>
+        <if test="handlingProcedures != null and handlingProcedures != '' ">#{handlingProcedures},</if>
+        <if test="rates != null and rates != '' ">#{rates},</if>
+        <if test="associateNames != null  ">#{associateNames},</if>
+        <if test="queryTime != null">#{queryTime},</if>
+        <if test="basicInformationUrl != null and basicInformationUrl != '' ">#{basicInformationUrl},</if>
+        <if test="acceptConditionsUrl != null and acceptConditionsUrl != '' ">#{acceptConditionsUrl},</if>
+        <if test="applicationMaterialUrl != null and applicationMaterialUrl != '' ">#{applicationMaterialUrl},</if>
+        <if test="handlingProceduresUrl != null and handlingProceduresUrl != '' ">#{handlingProceduresUrl},</if>
+        <if test="ratesUrl != null and ratesUrl != '' ">#{ratesUrl},</if>
+        <if test="basicInformationFileName != null and basicInformationFileName != '' ">#{basicInformationFileName},</if>
+        <if test="acceptConditionsFileName != null and acceptConditionsFileName != '' ">#{acceptConditionsFileName},</if>
+        <if test="applicationMaterialFileName != null and applicationMaterialFileName != '' ">#{applicationMaterialFileName},</if>
+        <if test="handlingProceduresFileName != null and handlingProceduresFileName != '' ">#{handlingProceduresFileName},</if>
+        <if test="ratesFileName != null and ratesFileName != '' ">#{ratesFileName},</if>
+        <if test="operationalGuidelineUrl != null and operationalGuidelineUrl != '' ">#{operationalGuidelineUrl},</if>
+        <if test="operationalGuidelineVideoUrl != null and operationalGuidelineVideoUrl != '' ">#{operationalGuidelineVideoUrl},</if>
+        <if test="setGist != null and setGist != '' ">#{setGist},</if>
+        <if test="setGistUrl != null and setGistUrl != '' ">#{setGistUrl},</if>
+        <if test="setGistName != null and setGistName != '' ">#{setGistName},</if>
+        <if test="commonProblem != null and commonProblem != '' ">#{commonProblem},</if>
+        <if test="commonProblemUrl != null and commonProblemUrl != '' ">#{commonProblemUrl},</if>
+        <if test="commonProblemName != null and commonProblemName != '' ">#{commonProblemName},</if>
+        <if test="operationalGuidelineVideoName != null and operationalGuidelineVideoName != '' ">#{operationalGuidelineVideoName},</if>
+        <if test="operationalGuidelineName != null and operationalGuidelineName != '' ">#{operationalGuidelineName},</if>
+        <if test="transactionArea != null ">#{transactionArea},</if>
+        <if test="transactionAreaUrl != null ">#{transactionAreaUrl},</if>
+        <if test="transactionAreaName != null ">#{transactionAreaName},</if>
+        <if test="classifyIds != null ">#{classifyIds},</if>
+        <if test="departmentIds != null ">#{departmentIds},</if>
+        sysdate(),
+        sysdate()
+        )
+    </insert>
+
+    <update id="updateConfig" parameterType="com.dg.core.db.gen.entity.TransactionEvent">
+        update automessage_transaction_event
+        <set>
+            <if test="id != null">id=#{id},</if>
+            <if test="departmentId != null and departmentId != '' ">department_id=#{departmentId},</if>
+            <if test="departmentArea != null">department_area=#{departmentArea},</if>
+            <if test="classifyId != null and classifyId != '' ">classify_id=#{classifyId},</if>
+            <if test="matterName != null and matterName != '' ">matter_name=#{matterName},</if>
+            <if test="associateIds != null  ">associate_ids=#{associateIds},</if>
+            <if test="transactionNum != null ">transaction_num=#{transactionNum},</if>
+            <if test="browseNum != null  ">browse_num=#{browseNum},</if>
+            <if test="basicInformation != null">basic_information=#{basicInformation},</if>
+            <if test="acceptConditions != null ">accept_conditions=#{acceptConditions},</if>
+            <if test="applicationMaterial != null ">application_material=#{applicationMaterial},</if>
+            <if test="handlingProcedures != null ">handling_procedures=#{handlingProcedures},</if>
+            <if test="rates != null ">rates=#{rates},</if>
+            <if test="associateNames != null ">associate_names=#{associateNames},</if>
+            <if test="queryTime != null">query_time=#{queryTime},</if>
+            <if test="basicInformationUrl != null">basic_information_url=#{basicInformationUrl},</if>
+            <if test="acceptConditionsUrl != null  ">accept_conditions_url=#{acceptConditionsUrl},</if>
+            <if test="applicationMaterialUrl != null  ">application_material_url=#{applicationMaterialUrl},</if>
+            <if test="handlingProceduresUrl != null  ">handling_procedures_url=#{handlingProceduresUrl},</if>
+            <if test="ratesUrl != null  ">rates_url=#{ratesUrl},</if>
+            <if test="basicInformationFileName != null  ">basic_information_file_name=#{basicInformationFileName},</if>
+            <if test="acceptConditionsFileName != null  ">accept_conditions_file_name=#{acceptConditionsFileName},</if>
+            <if test="applicationMaterialFileName != null  ">application_material_file_name=#{applicationMaterialFileName},</if>
+            <if test="handlingProceduresFileName != null ">handling_procedures_file_name=#{handlingProceduresFileName},</if>
+            <if test="ratesFileName != null ">rates_file_name=#{ratesFileName},</if>
+            <if test="operationalGuidelineUrl != null">operational_guideline_url=#{operationalGuidelineUrl},</if>
+            <if test="setGist != null and setGist != '' ">set_gist=#{setGist},</if>
+            <if test="setGistUrl != null and setGistUrl != '' ">set_gist_url=#{setGistUrl},</if>
+            <if test="setGistName != null and setGistName != '' ">set_gist_name=#{setGistName},</if>
+            <if test="commonProblem != null and commonProblem != '' ">common_problem=#{commonProblem},</if>
+            <if test="commonProblemUrl != null and commonProblemUrl != '' ">common_problem_url=#{commonProblemUrl},</if>
+            <if test="commonProblemName != null and commonProblemName != '' ">common_problem_name=#{commonProblemName},</if>
+            <if test="operationalGuidelineVideoUrl != null ">operational_guideline_video_url=#{operationalGuidelineVideoUrl},</if>
+            <if test="operationalGuidelineVideoName != null and operationalGuidelineVideoName != '' ">operational_guideline_video_name=#{operationalGuidelineVideoName},</if>
+            <if test="operationalGuidelineName != null and operationalGuidelineName != '' ">operational_guideline_name=#{operationalGuidelineName},</if>
+            <if test="transactionArea != null ">transaction_area=#{transactionArea},</if>
+            <if test="transactionAreaUrl != null ">transaction_area_url=#{transactionAreaUrl},</if>
+            <if test="transactionAreaName != null ">transaction_area_name=#{transactionAreaName},</if>
+            <if test="classifyIds != null ">classify_ids=#{classifyIds},</if>
+            <if test="departmentIds != null ">department_ids=#{departmentIds},</if>
+            update_time=sysdate()
+        </set>
+        where  id= #{id}
+    </update>
+
+    <delete id="deleteConfigById" parameterType="string">
+        delete from automessage_transaction_event where id= #{Id}
+    </delete>
+
+    <select id="countNum" resultType="integer">
+        select count(id) from automessage_transaction_event
+        <where>
+            <if test="keyword != null and keyword != ''">
+                AND (matter_name like concat('%', #{keyword}, '%')) or
+                (department_id in (SELECT id FROM automessage_organization_chart WHERE organization_name like concat('%', #{keyword}, '%')))
+                or (classify_id in (SELECT id FROM automessage_classify_administration WHERE classify_name like concat('%', #{keyword}, '%')))
+                or (associate_names like concat('%', #{keyword}, '%'))
+            </if>
+            <if test="classifyGrade != null and classifyGrade != ''">
+                AND (select classify_grade from classify_administration where classify_grade.id=classify_id) = #{classifyGrade}
+            </if>
+            <if test="ids != null">
+                and department_id IN
+                <foreach collection="ids" item="param"  open="(" close=")" separator=",">
+                    #{param}
+                </foreach>
+            </if>
+        </where>
+    </select>
+
+
+    <select id="queryMatterNameList"  resultMap="TransactionEventEntityResult">
+       select id,matter_name from  automessage_transaction_event
+        <where>
+            <if test="matterName != null and matterName != ''">
+                AND (matter_name like concat('%', #{matterName}, '%') )
+            </if>
+            <if test="classifyId != null and classifyId != ''">
+               and (classify_id= #{classifyId} or classify_id in (select id FROM automessage_classify_administration where parent_id =#{classifyId} ))
+            </if>
+
+        </where>
+        order by create_time desc
+    </select>
+
+    <select id="queryAssociateNamesList"  resultMap="TransactionEventEntityResult">
+        select id,matter_name from  automessage_transaction_event
+        <where>
+            <if test="associateNames != null and associateNames != ''">
+                AND (associate_names like concat('%', #{associateNames}, '%') )
+            </if>
+            <if test="classifyId != null and classifyId != ''">
+                and (classify_id= #{classifyId} or classify_id in (select id FROM automessage_classify_administration where parent_id =#{classifyId} ))
+            </if>
+
+        </where>
+        order by create_time desc
+    </select>
+
+    <select id="sumTransactionNum"  resultMap="TransactionEventEntityResult">
+        select sum(TransactionNum)sumTransactionNum,  count(*) counttransaction from (
+        SELECT (select count(id) from automessage_guide_repair_order where state in (3,4) and  a.id=matter_id) TransactionNum
+        from automessage_transaction_event a)k
+    </select>
+
+    <select id="queryByClassifyIdList"  resultMap="TransactionEventEntityResult">
+        <include refid="selectTransactionEventEntityVo"/>
+        where  (classify_id= #{classifyId} or classify_id in (select id FROM automessage_classify_administration where parent_id =#{classifyId} ))
+        <if test="departmentId!=null">
+            and  department_id in (select id from automessage_organization_chart where id=#{departmentId}  or parent_id=#{departmentId})
+        </if>
+        order by create_time desc
+    </select>
+
+    <select id="countNumByClassifyIdList" resultType="integer">
+        select count(id) from automessage_transaction_event
+        where  (classify_id= #{classifyId} or classify_id in (select id FROM automessage_classify_administration where parent_id =#{classifyId} ))
+        <if test="departmentId!=null">
+          and   department_id=#{departmentId}
+        </if>
+        order by create_time desc
+    </select>
+
+
+    <update id="updateConfigByMatterName" parameterType="com.dg.core.db.gen.entity.TransactionEvent">
+        update automessage_transaction_event
+        <set>
+            browse_num=browse_num+1,query_time=sysdate()
+        </set>
+        <where>
+            matter_name like concat('%', #{matterName}, '%')
+        </where>
+
+    </update>
+
+    <select id="countNumByMatterName" resultType="integer">
+        select count(id) from automessage_transaction_event
+        <where>
+            <if test="matterName != null and matterName != ''">
+                AND matter_name like concat('%', #{matterName}, '%')
+            </if>
+
+        </where>
+    </select>
+
+    <select id="selectSearch" resultType="com.dg.core.db.manual.pojo.Search">
+        select  id,title,content,views, type FROM(
+                 select  id,organization_name title,resume content,null views,1 type  from   automessage_organization_chart where grade=1  UNION
+                 select  id,matter_name title,concat((select classify_name from  automessage_classify_administration
+                                                      where id=(select parent_id from  automessage_classify_administration  where id=automessage_transaction_event.classify_id)),
+                                                     '>',(select classify_name from  automessage_classify_administration  where id=automessage_transaction_event.classify_id)) content,
+                         browse_num views,2 type from automessage_transaction_event UNION
+                 SELECT id ,name title,concat((select organization_name from automessage_organization_chart where id=automessage_policy_documents.department_id ),'>','政策文件') content,null		views,5 type FROM 	automessage_policy_documents where type=2	  UNION
+                 SELECT id ,name title,concat((select organization_name from automessage_organization_chart where id=automessage_policy_documents.department_id ),'>','法律法规') content,null		views,6 type FROM 	automessage_policy_documents where type=1
+             ) k
+        where  k.title like concat('%',#{keyWord}, '%') or k.content  like concat('%', #{keyWord}, '%')
+    </select>
+
+    <select id="selectSearchList" resultType="com.dg.core.db.manual.pojo.Search">
+        select   distinct classify_id,  content,type,parentClassifyId  from   ( select  id,matter_name title,concat((select classify_name from  automessage_classify_administration
+                                                                                                    where id=(select parent_id from  automessage_classify_administration  where id=automessage_transaction_event.classify_id)),
+                                                                                                   '/',(select classify_name from  automessage_classify_administration  where id=automessage_transaction_event.classify_id)) content,
+                                                                   classify_id,(select parent_id from automessage_classify_administration  where id=automessage_transaction_event.classify_id) parentClassifyId,
+                                                                       2 type from automessage_transaction_event) k
+        where  k.title like concat('%',#{keyWord}, '%') or k.content like concat('%',#{keyWord}, '%')
+    </select>
+
+    <select id="selectSearchAssociate" resultType="com.dg.core.db.manual.pojo.Search">
+       select  id,matter_name title,concat((select classify_name from  automessage_classify_administration
+                                  where id=(select parent_id from  automessage_classify_administration  where id=automessage_transaction_event.classify_id)),
+                                 '>',(select classify_name from  automessage_classify_administration  where id=automessage_transaction_event.classify_id)) content,
+               browse_num views ,3 type from automessage_transaction_event where  associate_names like   concat('%',#{keyWord}, '%')
+    </select>
+
+    <select id="selectSearchAssociateDistinct" resultType="com.dg.core.db.manual.pojo.Search" >
+	         select  distinct   classify_id,
+	                (select ifnull(concat((select classify_name from automessage_classify_administration where c.parent_id=id),'/',classify_name),classify_name)  content  from automessage_classify_administration c where c.id=t.classify_id) content,
+                    3 type from automessage_transaction_event t where  associate_names like  concat('%',#{keyWord}, '%')
+    </select>
+
+    <select id="selectDataIfExist" resultType="string">
+        select id from automessage_transaction_event
+        where department_id=#{departmentId}
+        and matter_name=#{matterName}
+    </select>
+
+    <select id="selectclassifyId" resultType="string">
+        select id from automessage_transaction_event
+        where classify_id=#{classifyId}
+    </select>
+
+
+
+</mapper>
diff --git a/flower_city/src/test/java/com/dg/core/WMApplicationTests.java b/flower_city/src/test/java/com/dg/core/WMApplicationTests.java
new file mode 100644
index 0000000..4d2b87e
--- /dev/null
+++ b/flower_city/src/test/java/com/dg/core/WMApplicationTests.java
@@ -0,0 +1,13 @@
+package com.dg.core;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.boot.test.context.SpringBootTest;
+
+@SpringBootTest
+class WMApplicationTests {
+
+	@Test
+	void contextLoads() {
+	}
+
+}
diff --git a/springcloud_demo_on_k8s-master/.gitignore b/springcloud_demo_on_k8s-master/.gitignore
new file mode 100644
index 0000000..c456c4a
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/.gitignore
@@ -0,0 +1,25 @@
+/target/
+!.mvn/wrapper/maven-wrapper.jar
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+/build/
diff --git a/springcloud_demo_on_k8s-master/.mvn/wrapper/maven-wrapper.jar b/springcloud_demo_on_k8s-master/.mvn/wrapper/maven-wrapper.jar
new file mode 100644
index 0000000..01e6799
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/.mvn/wrapper/maven-wrapper.jar
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/.mvn/wrapper/maven-wrapper.properties b/springcloud_demo_on_k8s-master/.mvn/wrapper/maven-wrapper.properties
new file mode 100644
index 0000000..7179346
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/.mvn/wrapper/maven-wrapper.properties
@@ -0,0 +1 @@
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.5.4/apache-maven-3.5.4-bin.zip
diff --git a/springcloud_demo_on_k8s-master/LICENSE b/springcloud_demo_on_k8s-master/LICENSE
new file mode 100644
index 0000000..6af6986
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2019 magic lian
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/springcloud_demo_on_k8s-master/README.md b/springcloud_demo_on_k8s-master/README.md
new file mode 100644
index 0000000..4334ec4
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/README.md
@@ -0,0 +1,75 @@
+# springcloud-demo-on-k8s
+
+### Prepare
+* Java 1.8
+* Spring boot 2.0.3 RELEASE
+* Spring cloud Finchley.RELEASE
+* Maven-docker-plugin 1.0.0
+* Kubernetes 1.13
+* Kube-dns
+* Docker 18.06.1-ce
+
+
+### Service
+
++ eureka-server
++ service-zuul
++ service-api
++ service-tp
++ config-server
+
+### Build and Docker
+
+`mvn clean package docker:build`
+
+```docker push xxxxx```
+
+
+### Deploy
+
+#### run rabbitmq
+`sudo docker run -d --name rabbitmq -p 5671:5671 -p 5672:5672 -p 4369:4369 -p 25672:25672 -p 15671:15671 -p 15672:15672 rabbitmq:management`
+### run eureka
+`kubectl create/apply -f deploy-file/deploy-eurekaserver.yaml`
+
+#### 查询注册的服务
+`curl http://192.168.140.126:30719/eureka/apps`
+
+### run config server
+`kubectl create/apply -f deploy-file/config-server.yaml`
+
+### run service-api
+`kubectl create/apply -f deploy-file/service-api.yaml`
+
+### run service-tp
+`kubectl create/apply -f deploy-file/service-tp.yaml`
+
+### others
+
+`kubectl get/delete deploy,pod,svc --all-namespaces/-n default`
+
+`kubectl describe pod POD_ID`
+
+`kubectl logs -f POD_ID`
+
+	kubectl exec -it busybox sh
+    nslookup eureka-server
+   
+#### refresh config on config server
+`curl -X POST http://localhost:8765/actuator/bus-refresh`
+
+`-- localhost:此处是登录到config-server的pod中执行的curl命令,故而ip地址为localhost`
+
+`-- 8765:config server的端口`
+
+### Test
+
+Check the other services whether join in eureka-server and make sure the config-server runs well. 
+
+	eureka-server portal test : http://IP:Port
+	
+	config-server and client test : http://IP:Port/custom-config/dev
+
+
+
+
diff --git a/springcloud_demo_on_k8s-master/adminConfig/custom-config-dev.yml b/springcloud_demo_on_k8s-master/adminConfig/custom-config-dev.yml
new file mode 100644
index 0000000..8d8e0b5
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/adminConfig/custom-config-dev.yml
@@ -0,0 +1,13 @@
+common:
+  db_driver:  I am lihan! 3ks! (got it!!!) v0.0.1
+
+service_api:
+  aaa:
+    bbbb: 333555
+
+spring:
+  datasource:
+    url: jdbc:mysql://192.168.140.102:3306/bootdb?useUnicode=true&characterEncoding=utf8&useSSL=false
+    username: root
+    password: 123456
+
diff --git a/springcloud_demo_on_k8s-master/compile.lihan.md b/springcloud_demo_on_k8s-master/compile.lihan.md
new file mode 100644
index 0000000..a70c40a
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/compile.lihan.md
@@ -0,0 +1 @@
+sudo /home/cc/k8s/apache-maven-3.6.3/bin/mvn  package docker:build -Dmaven.test.skip=true
diff --git a/springcloud_demo_on_k8s-master/config-server-bak/.gitignore b/springcloud_demo_on_k8s-master/config-server-bak/.gitignore
new file mode 100644
index 0000000..c456c4a
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/config-server-bak/.gitignore
@@ -0,0 +1,25 @@
+/target/
+!.mvn/wrapper/maven-wrapper.jar
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+/build/
diff --git a/springcloud_demo_on_k8s-master/config-server-bak/.mvn/wrapper/maven-wrapper.jar b/springcloud_demo_on_k8s-master/config-server-bak/.mvn/wrapper/maven-wrapper.jar
new file mode 100644
index 0000000..01e6799
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/config-server-bak/.mvn/wrapper/maven-wrapper.jar
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/config-server-bak/.mvn/wrapper/maven-wrapper.properties b/springcloud_demo_on_k8s-master/config-server-bak/.mvn/wrapper/maven-wrapper.properties
new file mode 100644
index 0000000..cd0d451
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/config-server-bak/.mvn/wrapper/maven-wrapper.properties
@@ -0,0 +1 @@
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip
diff --git a/springcloud_demo_on_k8s-master/config-server-bak/mvnw b/springcloud_demo_on_k8s-master/config-server-bak/mvnw
new file mode 100644
index 0000000..5551fde
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/config-server-bak/mvnw
@@ -0,0 +1,286 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Maven2 Start Up Batch script
+#
+# Required ENV vars:
+# ------------------
+#   JAVA_HOME - location of a JDK home dir
+#
+# Optional ENV vars
+# -----------------
+#   M2_HOME - location of maven2's installed home dir
+#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
+#     e.g. to debug Maven itself, use
+#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+# ----------------------------------------------------------------------------
+
+if [ -z "$MAVEN_SKIP_RC" ] ; then
+
+  if [ -f /etc/mavenrc ] ; then
+    . /etc/mavenrc
+  fi
+
+  if [ -f "$HOME/.mavenrc" ] ; then
+    . "$HOME/.mavenrc"
+  fi
+
+fi
+
+# OS specific support.  $var _must_ be set to either true or false.
+cygwin=false;
+darwin=false;
+mingw=false
+case "`uname`" in
+  CYGWIN*) cygwin=true ;;
+  MINGW*) mingw=true;;
+  Darwin*) darwin=true
+    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
+    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
+    if [ -z "$JAVA_HOME" ]; then
+      if [ -x "/usr/libexec/java_home" ]; then
+        export JAVA_HOME="`/usr/libexec/java_home`"
+      else
+        export JAVA_HOME="/Library/Java/Home"
+      fi
+    fi
+    ;;
+esac
+
+if [ -z "$JAVA_HOME" ] ; then
+  if [ -r /etc/gentoo-release ] ; then
+    JAVA_HOME=`java-config --jre-home`
+  fi
+fi
+
+if [ -z "$M2_HOME" ] ; then
+  ## resolve links - $0 may be a link to maven's home
+  PRG="$0"
+
+  # need this for relative symlinks
+  while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+      PRG="$link"
+    else
+      PRG="`dirname "$PRG"`/$link"
+    fi
+  done
+
+  saveddir=`pwd`
+
+  M2_HOME=`dirname "$PRG"`/..
+
+  # make it fully qualified
+  M2_HOME=`cd "$M2_HOME" && pwd`
+
+  cd "$saveddir"
+  # echo Using m2 at $M2_HOME
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --unix "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+fi
+
+# For Mingw, ensure paths are in UNIX format before anything is touched
+if $mingw ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME="`(cd "$M2_HOME"; pwd)`"
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
+  # TODO classpath?
+fi
+
+if [ -z "$JAVA_HOME" ]; then
+  javaExecutable="`which javac`"
+  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
+    # readlink(1) is not available as standard on Solaris 10.
+    readLink=`which readlink`
+    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
+      if $darwin ; then
+        javaHome="`dirname \"$javaExecutable\"`"
+        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
+      else
+        javaExecutable="`readlink -f \"$javaExecutable\"`"
+      fi
+      javaHome="`dirname \"$javaExecutable\"`"
+      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
+      JAVA_HOME="$javaHome"
+      export JAVA_HOME
+    fi
+  fi
+fi
+
+if [ -z "$JAVACMD" ] ; then
+  if [ -n "$JAVA_HOME"  ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+      # IBM's JDK on AIX uses strange locations for the executables
+      JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+      JAVACMD="$JAVA_HOME/bin/java"
+    fi
+  else
+    JAVACMD="`which java`"
+  fi
+fi
+
+if [ ! -x "$JAVACMD" ] ; then
+  echo "Error: JAVA_HOME is not defined correctly." >&2
+  echo "  We cannot execute $JAVACMD" >&2
+  exit 1
+fi
+
+if [ -z "$JAVA_HOME" ] ; then
+  echo "Warning: JAVA_HOME environment variable is not set."
+fi
+
+CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
+
+# traverses directory structure from process work directory to filesystem root
+# first directory with .mvn subdirectory is considered project base directory
+find_maven_basedir() {
+
+  if [ -z "$1" ]
+  then
+    echo "Path not specified to find_maven_basedir"
+    return 1
+  fi
+
+  basedir="$1"
+  wdir="$1"
+  while [ "$wdir" != '/' ] ; do
+    if [ -d "$wdir"/.mvn ] ; then
+      basedir=$wdir
+      break
+    fi
+    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
+    if [ -d "${wdir}" ]; then
+      wdir=`cd "$wdir/.."; pwd`
+    fi
+    # end of workaround
+  done
+  echo "${basedir}"
+}
+
+# concatenates all lines of a file
+concat_lines() {
+  if [ -f "$1" ]; then
+    echo "$(tr -s '\n' ' ' < "$1")"
+  fi
+}
+
+BASE_DIR=`find_maven_basedir "$(pwd)"`
+if [ -z "$BASE_DIR" ]; then
+  exit 1;
+fi
+
+##########################################################################################
+# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+# This allows using the maven wrapper in projects that prohibit checking in binary data.
+##########################################################################################
+if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Found .mvn/wrapper/maven-wrapper.jar"
+    fi
+else
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
+    fi
+    jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
+    while IFS="=" read key value; do
+      case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
+      esac
+    done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Downloading from: $jarUrl"
+    fi
+    wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
+
+    if command -v wget > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found wget ... using wget"
+        fi
+        wget "$jarUrl" -O "$wrapperJarPath"
+    elif command -v curl > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found curl ... using curl"
+        fi
+        curl -o "$wrapperJarPath" "$jarUrl"
+    else
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Falling back to using Java to download"
+        fi
+        javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
+        if [ -e "$javaClass" ]; then
+            if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Compiling MavenWrapperDownloader.java ..."
+                fi
+                # Compiling the Java class
+                ("$JAVA_HOME/bin/javac" "$javaClass")
+            fi
+            if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                # Running the downloader
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Running MavenWrapperDownloader.java ..."
+                fi
+                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
+            fi
+        fi
+    fi
+fi
+##########################################################################################
+# End of extension
+##########################################################################################
+
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
+if [ "$MVNW_VERBOSE" = true ]; then
+  echo $MAVEN_PROJECTBASEDIR
+fi
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --path --windows "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
+    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
+fi
+
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+exec "$JAVACMD" \
+  $MAVEN_OPTS \
+  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
+  "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
+  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/springcloud_demo_on_k8s-master/config-server-bak/mvnw.cmd b/springcloud_demo_on_k8s-master/config-server-bak/mvnw.cmd
new file mode 100644
index 0000000..e5cfb0a
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/config-server-bak/mvnw.cmd
@@ -0,0 +1,161 @@
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements.  See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership.  The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License.  You may obtain a copy of the License at
+@REM
+@REM    http://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied.  See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Maven2 Start Up Batch script
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM M2_HOME - location of maven2's installed home dir
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
+@REM     e.g. to debug Maven itself, use
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+@REM ----------------------------------------------------------------------------
+
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
+@echo off
+@REM set title of command window
+title %0
+@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
+@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
+
+@REM set %HOME% to equivalent of $HOME
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
+
+@REM Execute a user defined script before this one
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
+if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
+:skipRcPre
+
+@setlocal
+
+set ERROR_CODE=0
+
+@REM To isolate internal variables from possible post scripts, we use another setlocal
+@setlocal
+
+@REM ==== START VALIDATION ====
+if not "%JAVA_HOME%" == "" goto OkJHome
+
+echo.
+echo Error: JAVA_HOME not found in your environment. >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:OkJHome
+if exist "%JAVA_HOME%\bin\java.exe" goto init
+
+echo.
+echo Error: JAVA_HOME is set to an invalid directory. >&2
+echo JAVA_HOME = "%JAVA_HOME%" >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+@REM ==== END VALIDATION ====
+
+:init
+
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
+@REM Fallback to current working directory if not found.
+
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
+
+set EXEC_DIR=%CD%
+set WDIR=%EXEC_DIR%
+:findBaseDir
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
+cd ..
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
+set WDIR=%CD%
+goto findBaseDir
+
+:baseDirFound
+set MAVEN_PROJECTBASEDIR=%WDIR%
+cd "%EXEC_DIR%"
+goto endDetectBaseDir
+
+:baseDirNotFound
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
+cd "%EXEC_DIR%"
+
+:endDetectBaseDir
+
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
+
+@setlocal EnableExtensions EnableDelayedExpansion
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
+
+:endReadAdditionalConfig
+
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
+FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO (
+	IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B 
+)
+
+@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
+if exist %WRAPPER_JAR% (
+    echo Found %WRAPPER_JAR%
+) else (
+    echo Couldn't find %WRAPPER_JAR%, downloading it ...
+	echo Downloading from: %DOWNLOAD_URL%
+    powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"
+    echo Finished downloading %WRAPPER_JAR%
+)
+@REM End of extension
+
+%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
+if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
+:skipRcPost
+
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
+if "%MAVEN_BATCH_PAUSE%" == "on" pause
+
+if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
+
+exit /B %ERROR_CODE%
diff --git a/springcloud_demo_on_k8s-master/config-server-bak/pom.xml b/springcloud_demo_on_k8s-master/config-server-bak/pom.xml
new file mode 100644
index 0000000..5a78396
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/config-server-bak/pom.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>2.0.3.RELEASE</version>
+        <relativePath/> <!-- lookup parent from repository -->
+    </parent>
+    <groupId>com.springcloudme</groupId>
+    <artifactId>config-server</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>config-server</name>
+    <description>Demo project for Spring Boot</description>
+
+    <properties>
+        <java.version>1.8</java.version>
+        <spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-config-server</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-bus-amqp</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+    </dependencies>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.springframework.cloud</groupId>
+                <artifactId>spring-cloud-dependencies</artifactId>
+                <version>${spring-cloud.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+
+    <repositories>
+        <repository>
+            <id>spring-milestones</id>
+            <name>Spring Milestones</name>
+            <url>https://repo.spring.io/milestone</url>
+        </repository>
+    </repositories>
+
+</project>
diff --git a/springcloud_demo_on_k8s-master/config-server-bak/src/main/java/com/springcloudme/configserver/ConfigServerApplication.java b/springcloud_demo_on_k8s-master/config-server-bak/src/main/java/com/springcloudme/configserver/ConfigServerApplication.java
new file mode 100644
index 0000000..4ee5b6b
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/config-server-bak/src/main/java/com/springcloudme/configserver/ConfigServerApplication.java
@@ -0,0 +1,16 @@
+package com.springcloudme.configserver;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.config.server.EnableConfigServer;
+
+@SpringBootApplication
+@EnableConfigServer
+public class ConfigServerApplication {
+
+	public static void main(String[] args) {
+		SpringApplication.run(ConfigServerApplication.class, args);
+	}
+
+}
+
diff --git a/springcloud_demo_on_k8s-master/config-server-bak/src/main/resources/application.yml b/springcloud_demo_on_k8s-master/config-server-bak/src/main/resources/application.yml
new file mode 100644
index 0000000..7ba2e49
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/config-server-bak/src/main/resources/application.yml
@@ -0,0 +1,16 @@
+
+server:
+  port: 8765
+
+spring:
+  application:
+    name: config-server
+
+  cloud:
+    config:
+      server:
+        git:
+          uri: https://github.com/magicLian/springcloud_demo_on_k8s.git
+          search-paths: adminConfig
+#          username: *************
+#          password: *************
diff --git a/springcloud_demo_on_k8s-master/config-server-bak/src/test/java/com/springcloudme/configserver/ConfigServerApplicationTests.java b/springcloud_demo_on_k8s-master/config-server-bak/src/test/java/com/springcloudme/configserver/ConfigServerApplicationTests.java
new file mode 100644
index 0000000..6c7b157
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/config-server-bak/src/test/java/com/springcloudme/configserver/ConfigServerApplicationTests.java
@@ -0,0 +1,17 @@
+package com.springcloudme.configserver;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class ConfigServerApplicationTests {
+
+	@Test
+	public void contextLoads() {
+	}
+
+}
+
diff --git a/springcloud_demo_on_k8s-master/config-server/.gitignore b/springcloud_demo_on_k8s-master/config-server/.gitignore
new file mode 100644
index 0000000..c456c4a
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/config-server/.gitignore
@@ -0,0 +1,25 @@
+/target/
+!.mvn/wrapper/maven-wrapper.jar
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+/build/
diff --git a/springcloud_demo_on_k8s-master/config-server/.mvn/wrapper/maven-wrapper.jar b/springcloud_demo_on_k8s-master/config-server/.mvn/wrapper/maven-wrapper.jar
new file mode 100644
index 0000000..01e6799
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/config-server/.mvn/wrapper/maven-wrapper.jar
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/config-server/.mvn/wrapper/maven-wrapper.properties b/springcloud_demo_on_k8s-master/config-server/.mvn/wrapper/maven-wrapper.properties
new file mode 100644
index 0000000..cd0d451
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/config-server/.mvn/wrapper/maven-wrapper.properties
@@ -0,0 +1 @@
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip
diff --git a/springcloud_demo_on_k8s-master/config-server/mvnw b/springcloud_demo_on_k8s-master/config-server/mvnw
new file mode 100644
index 0000000..5551fde
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/config-server/mvnw
@@ -0,0 +1,286 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Maven2 Start Up Batch script
+#
+# Required ENV vars:
+# ------------------
+#   JAVA_HOME - location of a JDK home dir
+#
+# Optional ENV vars
+# -----------------
+#   M2_HOME - location of maven2's installed home dir
+#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
+#     e.g. to debug Maven itself, use
+#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+# ----------------------------------------------------------------------------
+
+if [ -z "$MAVEN_SKIP_RC" ] ; then
+
+  if [ -f /etc/mavenrc ] ; then
+    . /etc/mavenrc
+  fi
+
+  if [ -f "$HOME/.mavenrc" ] ; then
+    . "$HOME/.mavenrc"
+  fi
+
+fi
+
+# OS specific support.  $var _must_ be set to either true or false.
+cygwin=false;
+darwin=false;
+mingw=false
+case "`uname`" in
+  CYGWIN*) cygwin=true ;;
+  MINGW*) mingw=true;;
+  Darwin*) darwin=true
+    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
+    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
+    if [ -z "$JAVA_HOME" ]; then
+      if [ -x "/usr/libexec/java_home" ]; then
+        export JAVA_HOME="`/usr/libexec/java_home`"
+      else
+        export JAVA_HOME="/Library/Java/Home"
+      fi
+    fi
+    ;;
+esac
+
+if [ -z "$JAVA_HOME" ] ; then
+  if [ -r /etc/gentoo-release ] ; then
+    JAVA_HOME=`java-config --jre-home`
+  fi
+fi
+
+if [ -z "$M2_HOME" ] ; then
+  ## resolve links - $0 may be a link to maven's home
+  PRG="$0"
+
+  # need this for relative symlinks
+  while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+      PRG="$link"
+    else
+      PRG="`dirname "$PRG"`/$link"
+    fi
+  done
+
+  saveddir=`pwd`
+
+  M2_HOME=`dirname "$PRG"`/..
+
+  # make it fully qualified
+  M2_HOME=`cd "$M2_HOME" && pwd`
+
+  cd "$saveddir"
+  # echo Using m2 at $M2_HOME
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --unix "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+fi
+
+# For Mingw, ensure paths are in UNIX format before anything is touched
+if $mingw ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME="`(cd "$M2_HOME"; pwd)`"
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
+  # TODO classpath?
+fi
+
+if [ -z "$JAVA_HOME" ]; then
+  javaExecutable="`which javac`"
+  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
+    # readlink(1) is not available as standard on Solaris 10.
+    readLink=`which readlink`
+    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
+      if $darwin ; then
+        javaHome="`dirname \"$javaExecutable\"`"
+        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
+      else
+        javaExecutable="`readlink -f \"$javaExecutable\"`"
+      fi
+      javaHome="`dirname \"$javaExecutable\"`"
+      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
+      JAVA_HOME="$javaHome"
+      export JAVA_HOME
+    fi
+  fi
+fi
+
+if [ -z "$JAVACMD" ] ; then
+  if [ -n "$JAVA_HOME"  ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+      # IBM's JDK on AIX uses strange locations for the executables
+      JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+      JAVACMD="$JAVA_HOME/bin/java"
+    fi
+  else
+    JAVACMD="`which java`"
+  fi
+fi
+
+if [ ! -x "$JAVACMD" ] ; then
+  echo "Error: JAVA_HOME is not defined correctly." >&2
+  echo "  We cannot execute $JAVACMD" >&2
+  exit 1
+fi
+
+if [ -z "$JAVA_HOME" ] ; then
+  echo "Warning: JAVA_HOME environment variable is not set."
+fi
+
+CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
+
+# traverses directory structure from process work directory to filesystem root
+# first directory with .mvn subdirectory is considered project base directory
+find_maven_basedir() {
+
+  if [ -z "$1" ]
+  then
+    echo "Path not specified to find_maven_basedir"
+    return 1
+  fi
+
+  basedir="$1"
+  wdir="$1"
+  while [ "$wdir" != '/' ] ; do
+    if [ -d "$wdir"/.mvn ] ; then
+      basedir=$wdir
+      break
+    fi
+    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
+    if [ -d "${wdir}" ]; then
+      wdir=`cd "$wdir/.."; pwd`
+    fi
+    # end of workaround
+  done
+  echo "${basedir}"
+}
+
+# concatenates all lines of a file
+concat_lines() {
+  if [ -f "$1" ]; then
+    echo "$(tr -s '\n' ' ' < "$1")"
+  fi
+}
+
+BASE_DIR=`find_maven_basedir "$(pwd)"`
+if [ -z "$BASE_DIR" ]; then
+  exit 1;
+fi
+
+##########################################################################################
+# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+# This allows using the maven wrapper in projects that prohibit checking in binary data.
+##########################################################################################
+if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Found .mvn/wrapper/maven-wrapper.jar"
+    fi
+else
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
+    fi
+    jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
+    while IFS="=" read key value; do
+      case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
+      esac
+    done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Downloading from: $jarUrl"
+    fi
+    wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
+
+    if command -v wget > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found wget ... using wget"
+        fi
+        wget "$jarUrl" -O "$wrapperJarPath"
+    elif command -v curl > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found curl ... using curl"
+        fi
+        curl -o "$wrapperJarPath" "$jarUrl"
+    else
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Falling back to using Java to download"
+        fi
+        javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
+        if [ -e "$javaClass" ]; then
+            if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Compiling MavenWrapperDownloader.java ..."
+                fi
+                # Compiling the Java class
+                ("$JAVA_HOME/bin/javac" "$javaClass")
+            fi
+            if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                # Running the downloader
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Running MavenWrapperDownloader.java ..."
+                fi
+                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
+            fi
+        fi
+    fi
+fi
+##########################################################################################
+# End of extension
+##########################################################################################
+
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
+if [ "$MVNW_VERBOSE" = true ]; then
+  echo $MAVEN_PROJECTBASEDIR
+fi
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --path --windows "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
+    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
+fi
+
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+exec "$JAVACMD" \
+  $MAVEN_OPTS \
+  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
+  "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
+  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/springcloud_demo_on_k8s-master/config-server/mvnw.cmd b/springcloud_demo_on_k8s-master/config-server/mvnw.cmd
new file mode 100644
index 0000000..e5cfb0a
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/config-server/mvnw.cmd
@@ -0,0 +1,161 @@
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements.  See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership.  The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License.  You may obtain a copy of the License at
+@REM
+@REM    http://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied.  See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Maven2 Start Up Batch script
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM M2_HOME - location of maven2's installed home dir
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
+@REM     e.g. to debug Maven itself, use
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+@REM ----------------------------------------------------------------------------
+
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
+@echo off
+@REM set title of command window
+title %0
+@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
+@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
+
+@REM set %HOME% to equivalent of $HOME
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
+
+@REM Execute a user defined script before this one
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
+if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
+:skipRcPre
+
+@setlocal
+
+set ERROR_CODE=0
+
+@REM To isolate internal variables from possible post scripts, we use another setlocal
+@setlocal
+
+@REM ==== START VALIDATION ====
+if not "%JAVA_HOME%" == "" goto OkJHome
+
+echo.
+echo Error: JAVA_HOME not found in your environment. >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:OkJHome
+if exist "%JAVA_HOME%\bin\java.exe" goto init
+
+echo.
+echo Error: JAVA_HOME is set to an invalid directory. >&2
+echo JAVA_HOME = "%JAVA_HOME%" >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+@REM ==== END VALIDATION ====
+
+:init
+
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
+@REM Fallback to current working directory if not found.
+
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
+
+set EXEC_DIR=%CD%
+set WDIR=%EXEC_DIR%
+:findBaseDir
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
+cd ..
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
+set WDIR=%CD%
+goto findBaseDir
+
+:baseDirFound
+set MAVEN_PROJECTBASEDIR=%WDIR%
+cd "%EXEC_DIR%"
+goto endDetectBaseDir
+
+:baseDirNotFound
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
+cd "%EXEC_DIR%"
+
+:endDetectBaseDir
+
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
+
+@setlocal EnableExtensions EnableDelayedExpansion
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
+
+:endReadAdditionalConfig
+
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
+FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO (
+	IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B 
+)
+
+@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
+if exist %WRAPPER_JAR% (
+    echo Found %WRAPPER_JAR%
+) else (
+    echo Couldn't find %WRAPPER_JAR%, downloading it ...
+	echo Downloading from: %DOWNLOAD_URL%
+    powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"
+    echo Finished downloading %WRAPPER_JAR%
+)
+@REM End of extension
+
+%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
+if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
+:skipRcPost
+
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
+if "%MAVEN_BATCH_PAUSE%" == "on" pause
+
+if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
+
+exit /B %ERROR_CODE%
diff --git a/springcloud_demo_on_k8s-master/config-server/pom.xml b/springcloud_demo_on_k8s-master/config-server/pom.xml
new file mode 100644
index 0000000..701b3e3
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/config-server/pom.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>2.0.3.RELEASE</version>
+        <relativePath/> <!-- lookup parent from repository -->
+    </parent>
+    <groupId>com.springcloudme</groupId>
+    <artifactId>config-server</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>config-server</name>
+    <description>Demo project for Spring Boot</description>
+
+    <properties>
+        <java.version>1.8</java.version>
+        <spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-config-server</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-bus-amqp</artifactId>
+        </dependency>
+        
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+    </dependencies>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.springframework.cloud</groupId>
+                <artifactId>spring-cloud-dependencies</artifactId>
+                <version>${spring-cloud.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <!--
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+    -->
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>docker-maven-plugin</artifactId>
+                <version>1.2.0</version>
+                <configuration>
+                    <imageName>registry.cn-hangzhou.aliyuncs.com/wooddeep/config-server:v0.3</imageName>
+                    <serverId>my-docker-registry</serverId>
+                    <baseImage>java</baseImage>
+                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
+                    <resources>
+                        <resource>
+                            <targetPath>/</targetPath>
+                            <directory>${project.build.directory}</directory>
+                            <include>${project.build.finalName}.jar</include>
+                        </resource>
+                    </resources>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <repositories>
+        <repository>
+            <id>spring-milestones</id>
+            <name>Spring Milestones</name>
+            <url>https://repo.spring.io/milestone</url>
+        </repository>
+    </repositories>
+
+</project>
diff --git a/springcloud_demo_on_k8s-master/config-server/src/main/java/com/springcloudme/configserver/ConfigServerApplication.java b/springcloud_demo_on_k8s-master/config-server/src/main/java/com/springcloudme/configserver/ConfigServerApplication.java
new file mode 100644
index 0000000..fc754db
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/config-server/src/main/java/com/springcloudme/configserver/ConfigServerApplication.java
@@ -0,0 +1,18 @@
+package com.springcloudme.configserver;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.config.server.EnableConfigServer;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+
+@SpringBootApplication
+@EnableConfigServer
+@EnableEurekaClient
+public class ConfigServerApplication {
+
+	public static void main(String[] args) {
+		SpringApplication.run(ConfigServerApplication.class, args);
+	}
+
+}
+
diff --git a/springcloud_demo_on_k8s-master/config-server/src/main/resources/application.yml b/springcloud_demo_on_k8s-master/config-server/src/main/resources/application.yml
new file mode 100644
index 0000000..97fcfc6
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/config-server/src/main/resources/application.yml
@@ -0,0 +1,23 @@
+
+server:
+  port: 8765
+
+eureka:
+  instance:
+    preferIpAddress: true
+  client:
+    serviceUrl:
+      defaultZone: http://${EUREKA_URL:localhost}:8761/eureka
+
+spring:
+  application:
+    name: config-server
+
+  cloud:
+    config:
+      server:
+        git:
+          uri: https://github.com/wooddeep/springcloud_demo_on_k8s.git
+          search-paths: adminConfig
+          username: wooddeep
+          password: Iamlihan(you guess)
diff --git a/springcloud_demo_on_k8s-master/config-server/src/main/resources/bootstrap.properties b/springcloud_demo_on_k8s-master/config-server/src/main/resources/bootstrap.properties
new file mode 100644
index 0000000..a180a50
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/config-server/src/main/resources/bootstrap.properties
@@ -0,0 +1,10 @@
+#bus总线配置
+management.endpoints.web.exposure.include=bus-refresh
+spring.cloud.bus.enabled=true
+spring.cloud.bus.trace.enabled =true
+
+#rabbitmq配置
+spring.rabbitmq.host=172.26.144.132
+spring.rabbitmq.port=5672
+spring.rabbitmq.username=guest
+spring.rabbitmq.password=guest
\ No newline at end of file
diff --git a/springcloud_demo_on_k8s-master/config-server/src/test/java/com/springcloudme/configserver/ConfigServerApplicationTests.java b/springcloud_demo_on_k8s-master/config-server/src/test/java/com/springcloudme/configserver/ConfigServerApplicationTests.java
new file mode 100644
index 0000000..6c7b157
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/config-server/src/test/java/com/springcloudme/configserver/ConfigServerApplicationTests.java
@@ -0,0 +1,17 @@
+package com.springcloudme.configserver;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class ConfigServerApplicationTests {
+
+	@Test
+	public void contextLoads() {
+	}
+
+}
+
diff --git a/springcloud_demo_on_k8s-master/deploy-file/busybox.yaml b/springcloud_demo_on_k8s-master/deploy-file/busybox.yaml
new file mode 100644
index 0000000..babb765
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/deploy-file/busybox.yaml
@@ -0,0 +1,14 @@
+apiVersion: v1
+kind: Pod
+metadata:
+  name: busybox
+  namespace: default
+spec:
+  containers:
+  - image: busybox
+    command:
+      - sleep
+      - "3600"
+    imagePullPolicy: IfNotPresent
+    name: busybox
+  restartPolicy: Always
diff --git a/springcloud_demo_on_k8s-master/deploy-file/config-server.yaml b/springcloud_demo_on_k8s-master/deploy-file/config-server.yaml
new file mode 100644
index 0000000..c3cd711
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/deploy-file/config-server.yaml
@@ -0,0 +1,42 @@
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: config-server
+spec:
+  selector:
+    matchLabels:
+      app: springcloud-config-server
+
+  replicas: 1
+
+  template:
+    metadata:
+      labels:
+        app: springcloud-config-server
+    spec:
+      containers:
+       - name: config-server-instance
+         image: registry.cn-hangzhou.aliyuncs.com/wooddeep/config-server:v0.3
+         env:
+         - name: EUREKA_URL
+           value: eureka-server
+         ports:
+         - containerPort: 8765
+
+
+---
+kind: Service
+apiVersion: v1
+metadata:
+  name: config-server
+spec:
+  selector:
+    app: springcloud-config-server
+  ports:
+  - protocol: TCP
+    port: 8765
+    targetPort: 8765
+  #type: NodePort
+
+
diff --git a/springcloud_demo_on_k8s-master/deploy-file/deploy-eurekaserver.yaml b/springcloud_demo_on_k8s-master/deploy-file/deploy-eurekaserver.yaml
new file mode 100644
index 0000000..ebc86d4
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/deploy-file/deploy-eurekaserver.yaml
@@ -0,0 +1,60 @@
+---
+apiVersion: apps/v1
+ 
+kind: Deployment
+ 
+metadata:
+ 
+  name: eureka-server
+ 
+spec:
+ 
+  selector:
+
+    matchLabels:
+
+      app: spring-boot-app
+
+  replicas: 1
+ 
+  template:
+ 
+    metadata:
+ 
+      labels:
+ 
+        app: spring-boot-app
+ 
+    spec:
+ 
+      containers:
+ 
+        - name: eureka-server-instance
+ 
+          image: registry.cn-hangzhou.aliyuncs.com/wooddeep/eureka-server:v3
+ 
+          ports:
+ 
+            - containerPort: 8761
+          env:
+            - name: EUREKA_URL
+              value: eureka-server
+
+---
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: eureka-server
+spec:
+  ports:
+  - port: 8761
+    targetPort: 8761
+    name: http
+  selector:
+    app: spring-boot-app
+  type: NodePort
+
+
+
+
diff --git a/springcloud_demo_on_k8s-master/deploy-file/service-api.yaml b/springcloud_demo_on_k8s-master/deploy-file/service-api.yaml
new file mode 100644
index 0000000..59aa0b1
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/deploy-file/service-api.yaml
@@ -0,0 +1,44 @@
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: service-api
+spec:
+  selector:
+    matchLabels:
+      app: springcloud-service-api
+
+  replicas: 1
+
+  template:
+    metadata:
+      labels:
+        app: springcloud-service-api
+    spec:
+      containers:
+       - name: service-api-instance
+         image: registry.cn-hangzhou.aliyuncs.com/wooddeep/service-api:v4.2
+         env:
+         - name: EUREKA_URL
+           value: eureka-server
+         - name: CONFIG_URL
+           value: config-server
+         ports:
+         - containerPort: 8764
+
+
+---
+kind: Service
+apiVersion: v1
+metadata:
+  name: service-api
+spec:
+  selector:
+    app: springcloud-service-api
+  ports:
+  - protocol: TCP
+    port: 8764
+    targetPort: 8764
+  #type: NodePort
+
+
diff --git a/springcloud_demo_on_k8s-master/deploy-file/service-tp.yaml b/springcloud_demo_on_k8s-master/deploy-file/service-tp.yaml
new file mode 100644
index 0000000..53299a1
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/deploy-file/service-tp.yaml
@@ -0,0 +1,42 @@
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: service-tp
+spec:
+  selector:
+    matchLabels:
+      app: springcloud-service-tp
+
+  replicas: 1
+
+  template:
+    metadata:
+      labels:
+        app: springcloud-service-tp
+    spec:
+      containers:
+       - name: service-tp-instance
+         image: registry.cn-hangzhou.aliyuncs.com/wooddeep/service-tp:v3
+         env:
+         - name: EUREKA_URL
+           value: eureka-server
+         ports:
+         - containerPort: 8763
+
+
+---
+kind: Service
+apiVersion: v1
+metadata:
+  name: service-tp
+spec:
+  selector:
+    app: springcloud-service-tp
+  ports:
+  - protocol: TCP
+    port: 8763
+    targetPort: 8763
+  #type: NodePort
+
+
diff --git a/springcloud_demo_on_k8s-master/deploy-file/service-zuul.yaml b/springcloud_demo_on_k8s-master/deploy-file/service-zuul.yaml
new file mode 100644
index 0000000..b27f78c
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/deploy-file/service-zuul.yaml
@@ -0,0 +1,43 @@
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: service-zuul
+spec:
+  selector:
+    matchLabels:
+      app: springcloud-service-zuul
+
+  replicas: 1
+
+  template:
+    metadata:
+      labels:
+        app: springcloud-service-zuul
+    spec:
+      containers:
+       - name: service-zuul-instance
+         image: registry.cn-hangzhou.aliyuncs.com/magiclian/service-zuul:v3
+         env:
+         - name: EUREKA_URL
+           value: eureka-server
+         ports:
+         - containerPort: 8762
+
+
+---
+kind: Service
+apiVersion: v1
+metadata:
+  name: service-zuul
+spec:
+  selector:
+    app: springcloud-service-zuul
+  ports:
+  - protocol: TCP
+    port: 8762
+    targetPort: 8762
+  type: NodePort
+
+
+
diff --git a/springcloud_demo_on_k8s-master/eureka-server/.gitignore b/springcloud_demo_on_k8s-master/eureka-server/.gitignore
new file mode 100644
index 0000000..c456c4a
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/eureka-server/.gitignore
@@ -0,0 +1,25 @@
+/target/
+!.mvn/wrapper/maven-wrapper.jar
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+/build/
diff --git a/springcloud_demo_on_k8s-master/eureka-server/.mvn/wrapper/maven-wrapper.jar b/springcloud_demo_on_k8s-master/eureka-server/.mvn/wrapper/maven-wrapper.jar
new file mode 100644
index 0000000..01e6799
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/eureka-server/.mvn/wrapper/maven-wrapper.jar
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/eureka-server/.mvn/wrapper/maven-wrapper.properties b/springcloud_demo_on_k8s-master/eureka-server/.mvn/wrapper/maven-wrapper.properties
new file mode 100644
index 0000000..7179346
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/eureka-server/.mvn/wrapper/maven-wrapper.properties
@@ -0,0 +1 @@
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.5.4/apache-maven-3.5.4-bin.zip
diff --git a/springcloud_demo_on_k8s-master/eureka-server/mvnw b/springcloud_demo_on_k8s-master/eureka-server/mvnw
new file mode 100644
index 0000000..5551fde
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/eureka-server/mvnw
@@ -0,0 +1,286 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Maven2 Start Up Batch script
+#
+# Required ENV vars:
+# ------------------
+#   JAVA_HOME - location of a JDK home dir
+#
+# Optional ENV vars
+# -----------------
+#   M2_HOME - location of maven2's installed home dir
+#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
+#     e.g. to debug Maven itself, use
+#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+# ----------------------------------------------------------------------------
+
+if [ -z "$MAVEN_SKIP_RC" ] ; then
+
+  if [ -f /etc/mavenrc ] ; then
+    . /etc/mavenrc
+  fi
+
+  if [ -f "$HOME/.mavenrc" ] ; then
+    . "$HOME/.mavenrc"
+  fi
+
+fi
+
+# OS specific support.  $var _must_ be set to either true or false.
+cygwin=false;
+darwin=false;
+mingw=false
+case "`uname`" in
+  CYGWIN*) cygwin=true ;;
+  MINGW*) mingw=true;;
+  Darwin*) darwin=true
+    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
+    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
+    if [ -z "$JAVA_HOME" ]; then
+      if [ -x "/usr/libexec/java_home" ]; then
+        export JAVA_HOME="`/usr/libexec/java_home`"
+      else
+        export JAVA_HOME="/Library/Java/Home"
+      fi
+    fi
+    ;;
+esac
+
+if [ -z "$JAVA_HOME" ] ; then
+  if [ -r /etc/gentoo-release ] ; then
+    JAVA_HOME=`java-config --jre-home`
+  fi
+fi
+
+if [ -z "$M2_HOME" ] ; then
+  ## resolve links - $0 may be a link to maven's home
+  PRG="$0"
+
+  # need this for relative symlinks
+  while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+      PRG="$link"
+    else
+      PRG="`dirname "$PRG"`/$link"
+    fi
+  done
+
+  saveddir=`pwd`
+
+  M2_HOME=`dirname "$PRG"`/..
+
+  # make it fully qualified
+  M2_HOME=`cd "$M2_HOME" && pwd`
+
+  cd "$saveddir"
+  # echo Using m2 at $M2_HOME
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --unix "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+fi
+
+# For Mingw, ensure paths are in UNIX format before anything is touched
+if $mingw ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME="`(cd "$M2_HOME"; pwd)`"
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
+  # TODO classpath?
+fi
+
+if [ -z "$JAVA_HOME" ]; then
+  javaExecutable="`which javac`"
+  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
+    # readlink(1) is not available as standard on Solaris 10.
+    readLink=`which readlink`
+    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
+      if $darwin ; then
+        javaHome="`dirname \"$javaExecutable\"`"
+        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
+      else
+        javaExecutable="`readlink -f \"$javaExecutable\"`"
+      fi
+      javaHome="`dirname \"$javaExecutable\"`"
+      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
+      JAVA_HOME="$javaHome"
+      export JAVA_HOME
+    fi
+  fi
+fi
+
+if [ -z "$JAVACMD" ] ; then
+  if [ -n "$JAVA_HOME"  ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+      # IBM's JDK on AIX uses strange locations for the executables
+      JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+      JAVACMD="$JAVA_HOME/bin/java"
+    fi
+  else
+    JAVACMD="`which java`"
+  fi
+fi
+
+if [ ! -x "$JAVACMD" ] ; then
+  echo "Error: JAVA_HOME is not defined correctly." >&2
+  echo "  We cannot execute $JAVACMD" >&2
+  exit 1
+fi
+
+if [ -z "$JAVA_HOME" ] ; then
+  echo "Warning: JAVA_HOME environment variable is not set."
+fi
+
+CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
+
+# traverses directory structure from process work directory to filesystem root
+# first directory with .mvn subdirectory is considered project base directory
+find_maven_basedir() {
+
+  if [ -z "$1" ]
+  then
+    echo "Path not specified to find_maven_basedir"
+    return 1
+  fi
+
+  basedir="$1"
+  wdir="$1"
+  while [ "$wdir" != '/' ] ; do
+    if [ -d "$wdir"/.mvn ] ; then
+      basedir=$wdir
+      break
+    fi
+    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
+    if [ -d "${wdir}" ]; then
+      wdir=`cd "$wdir/.."; pwd`
+    fi
+    # end of workaround
+  done
+  echo "${basedir}"
+}
+
+# concatenates all lines of a file
+concat_lines() {
+  if [ -f "$1" ]; then
+    echo "$(tr -s '\n' ' ' < "$1")"
+  fi
+}
+
+BASE_DIR=`find_maven_basedir "$(pwd)"`
+if [ -z "$BASE_DIR" ]; then
+  exit 1;
+fi
+
+##########################################################################################
+# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+# This allows using the maven wrapper in projects that prohibit checking in binary data.
+##########################################################################################
+if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Found .mvn/wrapper/maven-wrapper.jar"
+    fi
+else
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
+    fi
+    jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
+    while IFS="=" read key value; do
+      case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
+      esac
+    done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Downloading from: $jarUrl"
+    fi
+    wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
+
+    if command -v wget > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found wget ... using wget"
+        fi
+        wget "$jarUrl" -O "$wrapperJarPath"
+    elif command -v curl > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found curl ... using curl"
+        fi
+        curl -o "$wrapperJarPath" "$jarUrl"
+    else
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Falling back to using Java to download"
+        fi
+        javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
+        if [ -e "$javaClass" ]; then
+            if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Compiling MavenWrapperDownloader.java ..."
+                fi
+                # Compiling the Java class
+                ("$JAVA_HOME/bin/javac" "$javaClass")
+            fi
+            if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                # Running the downloader
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Running MavenWrapperDownloader.java ..."
+                fi
+                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
+            fi
+        fi
+    fi
+fi
+##########################################################################################
+# End of extension
+##########################################################################################
+
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
+if [ "$MVNW_VERBOSE" = true ]; then
+  echo $MAVEN_PROJECTBASEDIR
+fi
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --path --windows "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
+    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
+fi
+
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+exec "$JAVACMD" \
+  $MAVEN_OPTS \
+  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
+  "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
+  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/springcloud_demo_on_k8s-master/eureka-server/mvnw.cmd b/springcloud_demo_on_k8s-master/eureka-server/mvnw.cmd
new file mode 100644
index 0000000..e5cfb0a
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/eureka-server/mvnw.cmd
@@ -0,0 +1,161 @@
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements.  See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership.  The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License.  You may obtain a copy of the License at
+@REM
+@REM    http://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied.  See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Maven2 Start Up Batch script
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM M2_HOME - location of maven2's installed home dir
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
+@REM     e.g. to debug Maven itself, use
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+@REM ----------------------------------------------------------------------------
+
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
+@echo off
+@REM set title of command window
+title %0
+@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
+@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
+
+@REM set %HOME% to equivalent of $HOME
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
+
+@REM Execute a user defined script before this one
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
+if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
+:skipRcPre
+
+@setlocal
+
+set ERROR_CODE=0
+
+@REM To isolate internal variables from possible post scripts, we use another setlocal
+@setlocal
+
+@REM ==== START VALIDATION ====
+if not "%JAVA_HOME%" == "" goto OkJHome
+
+echo.
+echo Error: JAVA_HOME not found in your environment. >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:OkJHome
+if exist "%JAVA_HOME%\bin\java.exe" goto init
+
+echo.
+echo Error: JAVA_HOME is set to an invalid directory. >&2
+echo JAVA_HOME = "%JAVA_HOME%" >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+@REM ==== END VALIDATION ====
+
+:init
+
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
+@REM Fallback to current working directory if not found.
+
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
+
+set EXEC_DIR=%CD%
+set WDIR=%EXEC_DIR%
+:findBaseDir
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
+cd ..
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
+set WDIR=%CD%
+goto findBaseDir
+
+:baseDirFound
+set MAVEN_PROJECTBASEDIR=%WDIR%
+cd "%EXEC_DIR%"
+goto endDetectBaseDir
+
+:baseDirNotFound
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
+cd "%EXEC_DIR%"
+
+:endDetectBaseDir
+
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
+
+@setlocal EnableExtensions EnableDelayedExpansion
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
+
+:endReadAdditionalConfig
+
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
+FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO (
+	IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B 
+)
+
+@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
+if exist %WRAPPER_JAR% (
+    echo Found %WRAPPER_JAR%
+) else (
+    echo Couldn't find %WRAPPER_JAR%, downloading it ...
+	echo Downloading from: %DOWNLOAD_URL%
+    powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"
+    echo Finished downloading %WRAPPER_JAR%
+)
+@REM End of extension
+
+%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
+if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
+:skipRcPost
+
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
+if "%MAVEN_BATCH_PAUSE%" == "on" pause
+
+if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
+
+exit /B %ERROR_CODE%
diff --git a/springcloud_demo_on_k8s-master/eureka-server/pom.xml b/springcloud_demo_on_k8s-master/eureka-server/pom.xml
new file mode 100644
index 0000000..1e280e0
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/eureka-server/pom.xml
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>2.0.3.RELEASE</version>
+        <relativePath/>
+    </parent>
+    <groupId>com.springcloudme</groupId>
+    <artifactId>eureka-server</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>eureka-server</name>
+    <description>Demo project for Spring Boot</description>
+
+    <properties>
+        <java.version>1.8</java.version>
+        <spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.springframework.cloud</groupId>
+                <artifactId>spring-cloud-dependencies</artifactId>
+                <version>${spring-cloud.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>docker-maven-plugin</artifactId>
+                <version>1.2.0</version>
+                <configuration>
+                    <imageName>registry.cn-hangzhou.aliyuncs.com/wooddeep/eureka-server:v3</imageName>
+                    <serverId>my-docker-registry</serverId>
+                    <baseImage>java</baseImage>
+                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
+                    <resources>
+                        <resource>
+                            <targetPath>/</targetPath>
+                            <directory>${project.build.directory}</directory>
+                            <include>${project.build.finalName}.jar</include>
+                        </resource>
+                    </resources>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <repositories>
+        <repository>
+            <id>spring-milestones</id>
+            <name>Spring Milestones</name>
+            <url>https://repo.spring.io/milestone</url>
+        </repository>
+    </repositories>
+
+</project>
\ No newline at end of file
diff --git a/springcloud_demo_on_k8s-master/eureka-server/src/main/java/com/springcloudme/eurekaserver/EurekaServerApplication.java b/springcloud_demo_on_k8s-master/eureka-server/src/main/java/com/springcloudme/eurekaserver/EurekaServerApplication.java
new file mode 100644
index 0000000..1754e7e
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/eureka-server/src/main/java/com/springcloudme/eurekaserver/EurekaServerApplication.java
@@ -0,0 +1,16 @@
+package com.springcloudme.eurekaserver;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
+
+@SpringBootApplication
+@EnableEurekaServer
+public class EurekaServerApplication {
+
+	public static void main(String[] args) {
+		SpringApplication.run(EurekaServerApplication.class, args);
+	}
+
+}
+
diff --git a/springcloud_demo_on_k8s-master/eureka-server/src/main/resources/application.yml b/springcloud_demo_on_k8s-master/eureka-server/src/main/resources/application.yml
new file mode 100644
index 0000000..23aa116
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/eureka-server/src/main/resources/application.yml
@@ -0,0 +1,14 @@
+server:
+    port: 8761
+
+eureka:
+    instance:
+        hostname: eureka-server
+        preferIpAddress: true
+    client:
+        registerWithEureka: false
+        fetchRegistry: false
+        serviceUrl:
+            defaultZone: http://${EUREKA_URL:localhost}:${server.port}/eureka/
+    server:
+        enable-self-preservation: false
\ No newline at end of file
diff --git a/springcloud_demo_on_k8s-master/eureka-server/src/test/java/com/springcloudme/eurekaserver/EurekaServerApplicationTests.java b/springcloud_demo_on_k8s-master/eureka-server/src/test/java/com/springcloudme/eurekaserver/EurekaServerApplicationTests.java
new file mode 100644
index 0000000..a388a14
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/eureka-server/src/test/java/com/springcloudme/eurekaserver/EurekaServerApplicationTests.java
@@ -0,0 +1,17 @@
+package com.springcloudme.eurekaserver;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class EurekaServerApplicationTests {
+
+	@Test
+	public void contextLoads() {
+	}
+
+}
+
diff --git a/springcloud_demo_on_k8s-master/mvnw b/springcloud_demo_on_k8s-master/mvnw
new file mode 100644
index 0000000..5551fde
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/mvnw
@@ -0,0 +1,286 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Maven2 Start Up Batch script
+#
+# Required ENV vars:
+# ------------------
+#   JAVA_HOME - location of a JDK home dir
+#
+# Optional ENV vars
+# -----------------
+#   M2_HOME - location of maven2's installed home dir
+#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
+#     e.g. to debug Maven itself, use
+#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+# ----------------------------------------------------------------------------
+
+if [ -z "$MAVEN_SKIP_RC" ] ; then
+
+  if [ -f /etc/mavenrc ] ; then
+    . /etc/mavenrc
+  fi
+
+  if [ -f "$HOME/.mavenrc" ] ; then
+    . "$HOME/.mavenrc"
+  fi
+
+fi
+
+# OS specific support.  $var _must_ be set to either true or false.
+cygwin=false;
+darwin=false;
+mingw=false
+case "`uname`" in
+  CYGWIN*) cygwin=true ;;
+  MINGW*) mingw=true;;
+  Darwin*) darwin=true
+    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
+    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
+    if [ -z "$JAVA_HOME" ]; then
+      if [ -x "/usr/libexec/java_home" ]; then
+        export JAVA_HOME="`/usr/libexec/java_home`"
+      else
+        export JAVA_HOME="/Library/Java/Home"
+      fi
+    fi
+    ;;
+esac
+
+if [ -z "$JAVA_HOME" ] ; then
+  if [ -r /etc/gentoo-release ] ; then
+    JAVA_HOME=`java-config --jre-home`
+  fi
+fi
+
+if [ -z "$M2_HOME" ] ; then
+  ## resolve links - $0 may be a link to maven's home
+  PRG="$0"
+
+  # need this for relative symlinks
+  while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+      PRG="$link"
+    else
+      PRG="`dirname "$PRG"`/$link"
+    fi
+  done
+
+  saveddir=`pwd`
+
+  M2_HOME=`dirname "$PRG"`/..
+
+  # make it fully qualified
+  M2_HOME=`cd "$M2_HOME" && pwd`
+
+  cd "$saveddir"
+  # echo Using m2 at $M2_HOME
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --unix "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+fi
+
+# For Mingw, ensure paths are in UNIX format before anything is touched
+if $mingw ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME="`(cd "$M2_HOME"; pwd)`"
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
+  # TODO classpath?
+fi
+
+if [ -z "$JAVA_HOME" ]; then
+  javaExecutable="`which javac`"
+  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
+    # readlink(1) is not available as standard on Solaris 10.
+    readLink=`which readlink`
+    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
+      if $darwin ; then
+        javaHome="`dirname \"$javaExecutable\"`"
+        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
+      else
+        javaExecutable="`readlink -f \"$javaExecutable\"`"
+      fi
+      javaHome="`dirname \"$javaExecutable\"`"
+      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
+      JAVA_HOME="$javaHome"
+      export JAVA_HOME
+    fi
+  fi
+fi
+
+if [ -z "$JAVACMD" ] ; then
+  if [ -n "$JAVA_HOME"  ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+      # IBM's JDK on AIX uses strange locations for the executables
+      JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+      JAVACMD="$JAVA_HOME/bin/java"
+    fi
+  else
+    JAVACMD="`which java`"
+  fi
+fi
+
+if [ ! -x "$JAVACMD" ] ; then
+  echo "Error: JAVA_HOME is not defined correctly." >&2
+  echo "  We cannot execute $JAVACMD" >&2
+  exit 1
+fi
+
+if [ -z "$JAVA_HOME" ] ; then
+  echo "Warning: JAVA_HOME environment variable is not set."
+fi
+
+CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
+
+# traverses directory structure from process work directory to filesystem root
+# first directory with .mvn subdirectory is considered project base directory
+find_maven_basedir() {
+
+  if [ -z "$1" ]
+  then
+    echo "Path not specified to find_maven_basedir"
+    return 1
+  fi
+
+  basedir="$1"
+  wdir="$1"
+  while [ "$wdir" != '/' ] ; do
+    if [ -d "$wdir"/.mvn ] ; then
+      basedir=$wdir
+      break
+    fi
+    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
+    if [ -d "${wdir}" ]; then
+      wdir=`cd "$wdir/.."; pwd`
+    fi
+    # end of workaround
+  done
+  echo "${basedir}"
+}
+
+# concatenates all lines of a file
+concat_lines() {
+  if [ -f "$1" ]; then
+    echo "$(tr -s '\n' ' ' < "$1")"
+  fi
+}
+
+BASE_DIR=`find_maven_basedir "$(pwd)"`
+if [ -z "$BASE_DIR" ]; then
+  exit 1;
+fi
+
+##########################################################################################
+# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+# This allows using the maven wrapper in projects that prohibit checking in binary data.
+##########################################################################################
+if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Found .mvn/wrapper/maven-wrapper.jar"
+    fi
+else
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
+    fi
+    jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
+    while IFS="=" read key value; do
+      case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
+      esac
+    done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Downloading from: $jarUrl"
+    fi
+    wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
+
+    if command -v wget > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found wget ... using wget"
+        fi
+        wget "$jarUrl" -O "$wrapperJarPath"
+    elif command -v curl > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found curl ... using curl"
+        fi
+        curl -o "$wrapperJarPath" "$jarUrl"
+    else
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Falling back to using Java to download"
+        fi
+        javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
+        if [ -e "$javaClass" ]; then
+            if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Compiling MavenWrapperDownloader.java ..."
+                fi
+                # Compiling the Java class
+                ("$JAVA_HOME/bin/javac" "$javaClass")
+            fi
+            if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                # Running the downloader
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Running MavenWrapperDownloader.java ..."
+                fi
+                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
+            fi
+        fi
+    fi
+fi
+##########################################################################################
+# End of extension
+##########################################################################################
+
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
+if [ "$MVNW_VERBOSE" = true ]; then
+  echo $MAVEN_PROJECTBASEDIR
+fi
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --path --windows "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
+    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
+fi
+
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+exec "$JAVACMD" \
+  $MAVEN_OPTS \
+  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
+  "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
+  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/springcloud_demo_on_k8s-master/mvnw.cmd b/springcloud_demo_on_k8s-master/mvnw.cmd
new file mode 100644
index 0000000..e5cfb0a
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/mvnw.cmd
@@ -0,0 +1,161 @@
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements.  See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership.  The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License.  You may obtain a copy of the License at
+@REM
+@REM    http://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied.  See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Maven2 Start Up Batch script
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM M2_HOME - location of maven2's installed home dir
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
+@REM     e.g. to debug Maven itself, use
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+@REM ----------------------------------------------------------------------------
+
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
+@echo off
+@REM set title of command window
+title %0
+@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
+@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
+
+@REM set %HOME% to equivalent of $HOME
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
+
+@REM Execute a user defined script before this one
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
+if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
+:skipRcPre
+
+@setlocal
+
+set ERROR_CODE=0
+
+@REM To isolate internal variables from possible post scripts, we use another setlocal
+@setlocal
+
+@REM ==== START VALIDATION ====
+if not "%JAVA_HOME%" == "" goto OkJHome
+
+echo.
+echo Error: JAVA_HOME not found in your environment. >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:OkJHome
+if exist "%JAVA_HOME%\bin\java.exe" goto init
+
+echo.
+echo Error: JAVA_HOME is set to an invalid directory. >&2
+echo JAVA_HOME = "%JAVA_HOME%" >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+@REM ==== END VALIDATION ====
+
+:init
+
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
+@REM Fallback to current working directory if not found.
+
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
+
+set EXEC_DIR=%CD%
+set WDIR=%EXEC_DIR%
+:findBaseDir
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
+cd ..
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
+set WDIR=%CD%
+goto findBaseDir
+
+:baseDirFound
+set MAVEN_PROJECTBASEDIR=%WDIR%
+cd "%EXEC_DIR%"
+goto endDetectBaseDir
+
+:baseDirNotFound
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
+cd "%EXEC_DIR%"
+
+:endDetectBaseDir
+
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
+
+@setlocal EnableExtensions EnableDelayedExpansion
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
+
+:endReadAdditionalConfig
+
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
+FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO (
+	IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B 
+)
+
+@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
+if exist %WRAPPER_JAR% (
+    echo Found %WRAPPER_JAR%
+) else (
+    echo Couldn't find %WRAPPER_JAR%, downloading it ...
+	echo Downloading from: %DOWNLOAD_URL%
+    powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"
+    echo Finished downloading %WRAPPER_JAR%
+)
+@REM End of extension
+
+%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
+if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
+:skipRcPost
+
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
+if "%MAVEN_BATCH_PAUSE%" == "on" pause
+
+if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
+
+exit /B %ERROR_CODE%
diff --git a/springcloud_demo_on_k8s-master/pom.xml b/springcloud_demo_on_k8s-master/pom.xml
new file mode 100644
index 0000000..109d9d0
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/pom.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>2.1.2.RELEASE</version>
+        <relativePath/> <!-- lookup parent from repository -->
+    </parent>
+    <groupId>com.springcloudme</groupId>
+    <artifactId>springcloudme</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>springcloudme</name>
+    <description>Demo project for Spring Cloud</description>
+    <packaging>pom</packaging>
+    <modules>
+        <module>eureka-server</module>
+        <module>service-zuul</module>
+        <module>service-tp</module>
+        <module>service-influxdb-app</module>
+        <module>service-api</module>
+        <module>config-server</module>
+    </modules>
+
+    <properties>
+        <java.version>1.8</java.version>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/springcloud_demo_on_k8s-master/service-api/.gitignore b/springcloud_demo_on_k8s-master/service-api/.gitignore
new file mode 100644
index 0000000..c456c4a
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-api/.gitignore
@@ -0,0 +1,25 @@
+/target/
+!.mvn/wrapper/maven-wrapper.jar
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+/build/
diff --git a/springcloud_demo_on_k8s-master/service-api/.mvn/wrapper/maven-wrapper.jar b/springcloud_demo_on_k8s-master/service-api/.mvn/wrapper/maven-wrapper.jar
new file mode 100644
index 0000000..01e6799
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-api/.mvn/wrapper/maven-wrapper.jar
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-api/.mvn/wrapper/maven-wrapper.properties b/springcloud_demo_on_k8s-master/service-api/.mvn/wrapper/maven-wrapper.properties
new file mode 100644
index 0000000..7179346
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-api/.mvn/wrapper/maven-wrapper.properties
@@ -0,0 +1 @@
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.5.4/apache-maven-3.5.4-bin.zip
diff --git a/springcloud_demo_on_k8s-master/service-api/mvnw b/springcloud_demo_on_k8s-master/service-api/mvnw
new file mode 100644
index 0000000..5551fde
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-api/mvnw
@@ -0,0 +1,286 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Maven2 Start Up Batch script
+#
+# Required ENV vars:
+# ------------------
+#   JAVA_HOME - location of a JDK home dir
+#
+# Optional ENV vars
+# -----------------
+#   M2_HOME - location of maven2's installed home dir
+#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
+#     e.g. to debug Maven itself, use
+#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+# ----------------------------------------------------------------------------
+
+if [ -z "$MAVEN_SKIP_RC" ] ; then
+
+  if [ -f /etc/mavenrc ] ; then
+    . /etc/mavenrc
+  fi
+
+  if [ -f "$HOME/.mavenrc" ] ; then
+    . "$HOME/.mavenrc"
+  fi
+
+fi
+
+# OS specific support.  $var _must_ be set to either true or false.
+cygwin=false;
+darwin=false;
+mingw=false
+case "`uname`" in
+  CYGWIN*) cygwin=true ;;
+  MINGW*) mingw=true;;
+  Darwin*) darwin=true
+    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
+    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
+    if [ -z "$JAVA_HOME" ]; then
+      if [ -x "/usr/libexec/java_home" ]; then
+        export JAVA_HOME="`/usr/libexec/java_home`"
+      else
+        export JAVA_HOME="/Library/Java/Home"
+      fi
+    fi
+    ;;
+esac
+
+if [ -z "$JAVA_HOME" ] ; then
+  if [ -r /etc/gentoo-release ] ; then
+    JAVA_HOME=`java-config --jre-home`
+  fi
+fi
+
+if [ -z "$M2_HOME" ] ; then
+  ## resolve links - $0 may be a link to maven's home
+  PRG="$0"
+
+  # need this for relative symlinks
+  while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+      PRG="$link"
+    else
+      PRG="`dirname "$PRG"`/$link"
+    fi
+  done
+
+  saveddir=`pwd`
+
+  M2_HOME=`dirname "$PRG"`/..
+
+  # make it fully qualified
+  M2_HOME=`cd "$M2_HOME" && pwd`
+
+  cd "$saveddir"
+  # echo Using m2 at $M2_HOME
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --unix "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+fi
+
+# For Mingw, ensure paths are in UNIX format before anything is touched
+if $mingw ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME="`(cd "$M2_HOME"; pwd)`"
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
+  # TODO classpath?
+fi
+
+if [ -z "$JAVA_HOME" ]; then
+  javaExecutable="`which javac`"
+  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
+    # readlink(1) is not available as standard on Solaris 10.
+    readLink=`which readlink`
+    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
+      if $darwin ; then
+        javaHome="`dirname \"$javaExecutable\"`"
+        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
+      else
+        javaExecutable="`readlink -f \"$javaExecutable\"`"
+      fi
+      javaHome="`dirname \"$javaExecutable\"`"
+      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
+      JAVA_HOME="$javaHome"
+      export JAVA_HOME
+    fi
+  fi
+fi
+
+if [ -z "$JAVACMD" ] ; then
+  if [ -n "$JAVA_HOME"  ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+      # IBM's JDK on AIX uses strange locations for the executables
+      JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+      JAVACMD="$JAVA_HOME/bin/java"
+    fi
+  else
+    JAVACMD="`which java`"
+  fi
+fi
+
+if [ ! -x "$JAVACMD" ] ; then
+  echo "Error: JAVA_HOME is not defined correctly." >&2
+  echo "  We cannot execute $JAVACMD" >&2
+  exit 1
+fi
+
+if [ -z "$JAVA_HOME" ] ; then
+  echo "Warning: JAVA_HOME environment variable is not set."
+fi
+
+CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
+
+# traverses directory structure from process work directory to filesystem root
+# first directory with .mvn subdirectory is considered project base directory
+find_maven_basedir() {
+
+  if [ -z "$1" ]
+  then
+    echo "Path not specified to find_maven_basedir"
+    return 1
+  fi
+
+  basedir="$1"
+  wdir="$1"
+  while [ "$wdir" != '/' ] ; do
+    if [ -d "$wdir"/.mvn ] ; then
+      basedir=$wdir
+      break
+    fi
+    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
+    if [ -d "${wdir}" ]; then
+      wdir=`cd "$wdir/.."; pwd`
+    fi
+    # end of workaround
+  done
+  echo "${basedir}"
+}
+
+# concatenates all lines of a file
+concat_lines() {
+  if [ -f "$1" ]; then
+    echo "$(tr -s '\n' ' ' < "$1")"
+  fi
+}
+
+BASE_DIR=`find_maven_basedir "$(pwd)"`
+if [ -z "$BASE_DIR" ]; then
+  exit 1;
+fi
+
+##########################################################################################
+# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+# This allows using the maven wrapper in projects that prohibit checking in binary data.
+##########################################################################################
+if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Found .mvn/wrapper/maven-wrapper.jar"
+    fi
+else
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
+    fi
+    jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
+    while IFS="=" read key value; do
+      case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
+      esac
+    done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Downloading from: $jarUrl"
+    fi
+    wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
+
+    if command -v wget > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found wget ... using wget"
+        fi
+        wget "$jarUrl" -O "$wrapperJarPath"
+    elif command -v curl > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found curl ... using curl"
+        fi
+        curl -o "$wrapperJarPath" "$jarUrl"
+    else
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Falling back to using Java to download"
+        fi
+        javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
+        if [ -e "$javaClass" ]; then
+            if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Compiling MavenWrapperDownloader.java ..."
+                fi
+                # Compiling the Java class
+                ("$JAVA_HOME/bin/javac" "$javaClass")
+            fi
+            if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                # Running the downloader
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Running MavenWrapperDownloader.java ..."
+                fi
+                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
+            fi
+        fi
+    fi
+fi
+##########################################################################################
+# End of extension
+##########################################################################################
+
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
+if [ "$MVNW_VERBOSE" = true ]; then
+  echo $MAVEN_PROJECTBASEDIR
+fi
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --path --windows "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
+    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
+fi
+
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+exec "$JAVACMD" \
+  $MAVEN_OPTS \
+  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
+  "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
+  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/springcloud_demo_on_k8s-master/service-api/mvnw.cmd b/springcloud_demo_on_k8s-master/service-api/mvnw.cmd
new file mode 100644
index 0000000..e5cfb0a
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-api/mvnw.cmd
@@ -0,0 +1,161 @@
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements.  See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership.  The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License.  You may obtain a copy of the License at
+@REM
+@REM    http://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied.  See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Maven2 Start Up Batch script
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM M2_HOME - location of maven2's installed home dir
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
+@REM     e.g. to debug Maven itself, use
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+@REM ----------------------------------------------------------------------------
+
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
+@echo off
+@REM set title of command window
+title %0
+@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
+@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
+
+@REM set %HOME% to equivalent of $HOME
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
+
+@REM Execute a user defined script before this one
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
+if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
+:skipRcPre
+
+@setlocal
+
+set ERROR_CODE=0
+
+@REM To isolate internal variables from possible post scripts, we use another setlocal
+@setlocal
+
+@REM ==== START VALIDATION ====
+if not "%JAVA_HOME%" == "" goto OkJHome
+
+echo.
+echo Error: JAVA_HOME not found in your environment. >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:OkJHome
+if exist "%JAVA_HOME%\bin\java.exe" goto init
+
+echo.
+echo Error: JAVA_HOME is set to an invalid directory. >&2
+echo JAVA_HOME = "%JAVA_HOME%" >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+@REM ==== END VALIDATION ====
+
+:init
+
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
+@REM Fallback to current working directory if not found.
+
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
+
+set EXEC_DIR=%CD%
+set WDIR=%EXEC_DIR%
+:findBaseDir
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
+cd ..
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
+set WDIR=%CD%
+goto findBaseDir
+
+:baseDirFound
+set MAVEN_PROJECTBASEDIR=%WDIR%
+cd "%EXEC_DIR%"
+goto endDetectBaseDir
+
+:baseDirNotFound
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
+cd "%EXEC_DIR%"
+
+:endDetectBaseDir
+
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
+
+@setlocal EnableExtensions EnableDelayedExpansion
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
+
+:endReadAdditionalConfig
+
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
+FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO (
+	IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B 
+)
+
+@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
+if exist %WRAPPER_JAR% (
+    echo Found %WRAPPER_JAR%
+) else (
+    echo Couldn't find %WRAPPER_JAR%, downloading it ...
+	echo Downloading from: %DOWNLOAD_URL%
+    powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"
+    echo Finished downloading %WRAPPER_JAR%
+)
+@REM End of extension
+
+%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
+if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
+:skipRcPost
+
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
+if "%MAVEN_BATCH_PAUSE%" == "on" pause
+
+if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
+
+exit /B %ERROR_CODE%
diff --git a/springcloud_demo_on_k8s-master/service-api/pom.xml b/springcloud_demo_on_k8s-master/service-api/pom.xml
new file mode 100644
index 0000000..745af07
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-api/pom.xml
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>2.0.3.RELEASE</version>
+        <relativePath/> <!-- lookup parent from repository -->
+    </parent>
+    <groupId>com.springcloud</groupId>
+    <artifactId>service-api</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>service-api</name>
+    <description>Demo project for Spring Boot</description>
+
+    <properties>
+        <java.version>1.8</java.version>
+        <spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-config</artifactId>
+        </dependency>
+        
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-bus-amqp</artifactId>
+        </dependency>
+        
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+    </dependencies>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.springframework.cloud</groupId>
+                <artifactId>spring-cloud-dependencies</artifactId>
+                <version>${spring-cloud.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>docker-maven-plugin</artifactId>
+                <version>1.2.0</version>
+                <configuration>
+                    <imageName>registry.cn-hangzhou.aliyuncs.com/wooddeep/service-api:v4.2</imageName>
+                    <serverId>my-docker-registry</serverId>
+                    <baseImage>java</baseImage>
+                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
+                    <resources>
+                        <resource>
+                            <targetPath>/</targetPath>
+                            <directory>${project.build.directory}</directory>
+                            <include>${project.build.finalName}.jar</include>
+                        </resource>
+                    </resources>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <repositories>
+        <repository>
+            <id>spring-milestones</id>
+            <name>Spring Milestones</name>
+            <url>https://repo.spring.io/milestone</url>
+        </repository>
+    </repositories>
+
+</project>
diff --git a/springcloud_demo_on_k8s-master/service-api/src/main/java/com/springcloud/serviceapi/ServiceApiApplication.java b/springcloud_demo_on_k8s-master/service-api/src/main/java/com/springcloud/serviceapi/ServiceApiApplication.java
new file mode 100644
index 0000000..bb4b77b
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-api/src/main/java/com/springcloud/serviceapi/ServiceApiApplication.java
@@ -0,0 +1,15 @@
+package com.springcloud.serviceapi;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+
+@SpringBootApplication
+@EnableEurekaClient
+public class ServiceApiApplication {
+
+	public static void main(String[] args) {
+		SpringApplication.run(ServiceApiApplication.class, args);
+	}
+}
+
diff --git a/springcloud_demo_on_k8s-master/service-api/src/main/java/com/springcloud/serviceapi/controller/ApiController.java b/springcloud_demo_on_k8s-master/service-api/src/main/java/com/springcloud/serviceapi/controller/ApiController.java
new file mode 100644
index 0000000..9ee9cb0
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-api/src/main/java/com/springcloud/serviceapi/controller/ApiController.java
@@ -0,0 +1,29 @@
+package com.springcloud.serviceapi.controller;
+
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.cloud.context.config.annotation.RefreshScope;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RefreshScope
+@RequestMapping("/user")
+public class ApiController {
+
+	@RequestMapping("/me")
+	public String showme(){
+		return "I'm in! new Api server";
+	}
+
+	@Value("${common.db_driver}")
+	String db_driver;
+
+	@RequestMapping(value = "/hi")
+	public String hi(){
+		return db_driver;
+	}
+	
+
+
+}
diff --git a/springcloud_demo_on_k8s-master/service-api/src/main/resources/application.yml b/springcloud_demo_on_k8s-master/service-api/src/main/resources/application.yml
new file mode 100644
index 0000000..f981dff
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-api/src/main/resources/application.yml
@@ -0,0 +1,19 @@
+server:
+  port: 8764
+
+eureka:
+  instance:
+    preferIpAddress: true
+  client:
+    serviceUrl:
+      defaultZone: http://${EUREKA_URL:localhost}:8761/eureka
+
+spring:
+  application:
+    name: service-api
+
+  #rabbitmq:
+  #  host: ${RABBITMQ_HOST:172.26.144.132}
+  #  port: ${RABBITMQ_PORT:5672}
+  #  username: guest
+  #  password: guest
diff --git a/springcloud_demo_on_k8s-master/service-api/src/main/resources/bootstrap.properties b/springcloud_demo_on_k8s-master/service-api/src/main/resources/bootstrap.properties
new file mode 100644
index 0000000..941613c
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-api/src/main/resources/bootstrap.properties
@@ -0,0 +1,17 @@
+# curl http://127.0.0.1:8765/custom-config/dev -- 登录到 config-server 中获取 配置
+
+spring.cloud.config.label=master
+spring.cloud.config.name=custom-config
+spring.cloud.config.profile=${CONFIG_PROFILE:dev}
+spring.cloud.config.uri= http://${CONFIG_URL:localhost}:8765/
+
+#bus总线配置
+management.endpoints.web.exposure.include=bus-refresh
+spring.cloud.bus.enabled=true
+spring.cloud.bus.trace.enabled =true
+
+#rabbitmq配置
+spring.rabbitmq.host=172.26.144.132
+spring.rabbitmq.port=5672
+spring.rabbitmq.username=guest
+spring.rabbitmq.password=guest
\ No newline at end of file
diff --git a/springcloud_demo_on_k8s-master/service-api/src/test/java/com/springcloud/serviceapi/ServiceApiApplicationTests.java b/springcloud_demo_on_k8s-master/service-api/src/test/java/com/springcloud/serviceapi/ServiceApiApplicationTests.java
new file mode 100644
index 0000000..76bf818
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-api/src/test/java/com/springcloud/serviceapi/ServiceApiApplicationTests.java
@@ -0,0 +1,17 @@
+package com.springcloud.serviceapi;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class ServiceApiApplicationTests {
+
+	@Test
+	public void contextLoads() {
+	}
+
+}
+
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/.gitignore b/springcloud_demo_on_k8s-master/service-influxdb-app/.gitignore
new file mode 100644
index 0000000..c456c4a
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/.gitignore
@@ -0,0 +1,25 @@
+/target/
+!.mvn/wrapper/maven-wrapper.jar
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+/build/
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/.mvn/wrapper/MavenWrapperDownloader.java b/springcloud_demo_on_k8s-master/service-influxdb-app/.mvn/wrapper/MavenWrapperDownloader.java
new file mode 100644
index 0000000..8737acd
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/.mvn/wrapper/MavenWrapperDownloader.java
@@ -0,0 +1,114 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.
+*/
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.net.URL;
+import java.nio.channels.Channels;
+import java.nio.channels.ReadableByteChannel;
+import java.util.Properties;
+
+public class MavenWrapperDownloader {
+
+	/**
+	 * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
+	 */
+	private static final String DEFAULT_DOWNLOAD_URL =
+			"https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar";
+
+	/**
+	 * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
+	 * use instead of the default one.
+	 */
+	private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
+			".mvn/wrapper/maven-wrapper.properties";
+
+	/**
+	 * Path where the maven-wrapper.jar will be saved to.
+	 */
+	private static final String MAVEN_WRAPPER_JAR_PATH =
+			".mvn/wrapper/maven-wrapper.jar";
+
+	/**
+	 * Name of the property which should be used to override the default download url for the wrapper.
+	 */
+	private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
+
+	public static void main(String args[]) {
+		System.out.println("- Downloader started");
+		File baseDirectory = new File(args[0]);
+		System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
+
+		// If the maven-wrapper.properties exists, read it and check if it contains a custom
+		// wrapperUrl parameter.
+		File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
+		String url = DEFAULT_DOWNLOAD_URL;
+		if (mavenWrapperPropertyFile.exists()) {
+			FileInputStream mavenWrapperPropertyFileInputStream = null;
+			try {
+				mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
+				Properties mavenWrapperProperties = new Properties();
+				mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
+				url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
+			} catch (IOException e) {
+				System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
+			} finally {
+				try {
+					if (mavenWrapperPropertyFileInputStream != null) {
+						mavenWrapperPropertyFileInputStream.close();
+					}
+				} catch (IOException e) {
+					// Ignore ...
+				}
+			}
+		}
+		System.out.println("- Downloading from: : " + url);
+
+		File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
+		if (!outputFile.getParentFile().exists()) {
+			if (!outputFile.getParentFile().mkdirs()) {
+				System.out.println(
+						"- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'");
+			}
+		}
+		System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
+		try {
+			downloadFileFromURL(url, outputFile);
+			System.out.println("Done");
+			System.exit(0);
+		} catch (Throwable e) {
+			System.out.println("- Error downloading");
+			e.printStackTrace();
+			System.exit(1);
+		}
+	}
+
+	private static void downloadFileFromURL(String urlString, File destination) throws Exception {
+		URL website = new URL(urlString);
+		ReadableByteChannel rbc;
+		rbc = Channels.newChannel(website.openStream());
+		FileOutputStream fos = new FileOutputStream(destination);
+		fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
+		fos.close();
+		rbc.close();
+	}
+
+}
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/.mvn/wrapper/maven-wrapper.jar b/springcloud_demo_on_k8s-master/service-influxdb-app/.mvn/wrapper/maven-wrapper.jar
new file mode 100644
index 0000000..01e6799
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/.mvn/wrapper/maven-wrapper.jar
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/.mvn/wrapper/maven-wrapper.properties b/springcloud_demo_on_k8s-master/service-influxdb-app/.mvn/wrapper/maven-wrapper.properties
new file mode 100644
index 0000000..cd0d451
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/.mvn/wrapper/maven-wrapper.properties
@@ -0,0 +1 @@
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/mvnw b/springcloud_demo_on_k8s-master/service-influxdb-app/mvnw
new file mode 100644
index 0000000..5551fde
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/mvnw
@@ -0,0 +1,286 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Maven2 Start Up Batch script
+#
+# Required ENV vars:
+# ------------------
+#   JAVA_HOME - location of a JDK home dir
+#
+# Optional ENV vars
+# -----------------
+#   M2_HOME - location of maven2's installed home dir
+#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
+#     e.g. to debug Maven itself, use
+#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+# ----------------------------------------------------------------------------
+
+if [ -z "$MAVEN_SKIP_RC" ] ; then
+
+  if [ -f /etc/mavenrc ] ; then
+    . /etc/mavenrc
+  fi
+
+  if [ -f "$HOME/.mavenrc" ] ; then
+    . "$HOME/.mavenrc"
+  fi
+
+fi
+
+# OS specific support.  $var _must_ be set to either true or false.
+cygwin=false;
+darwin=false;
+mingw=false
+case "`uname`" in
+  CYGWIN*) cygwin=true ;;
+  MINGW*) mingw=true;;
+  Darwin*) darwin=true
+    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
+    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
+    if [ -z "$JAVA_HOME" ]; then
+      if [ -x "/usr/libexec/java_home" ]; then
+        export JAVA_HOME="`/usr/libexec/java_home`"
+      else
+        export JAVA_HOME="/Library/Java/Home"
+      fi
+    fi
+    ;;
+esac
+
+if [ -z "$JAVA_HOME" ] ; then
+  if [ -r /etc/gentoo-release ] ; then
+    JAVA_HOME=`java-config --jre-home`
+  fi
+fi
+
+if [ -z "$M2_HOME" ] ; then
+  ## resolve links - $0 may be a link to maven's home
+  PRG="$0"
+
+  # need this for relative symlinks
+  while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+      PRG="$link"
+    else
+      PRG="`dirname "$PRG"`/$link"
+    fi
+  done
+
+  saveddir=`pwd`
+
+  M2_HOME=`dirname "$PRG"`/..
+
+  # make it fully qualified
+  M2_HOME=`cd "$M2_HOME" && pwd`
+
+  cd "$saveddir"
+  # echo Using m2 at $M2_HOME
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --unix "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+fi
+
+# For Mingw, ensure paths are in UNIX format before anything is touched
+if $mingw ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME="`(cd "$M2_HOME"; pwd)`"
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
+  # TODO classpath?
+fi
+
+if [ -z "$JAVA_HOME" ]; then
+  javaExecutable="`which javac`"
+  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
+    # readlink(1) is not available as standard on Solaris 10.
+    readLink=`which readlink`
+    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
+      if $darwin ; then
+        javaHome="`dirname \"$javaExecutable\"`"
+        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
+      else
+        javaExecutable="`readlink -f \"$javaExecutable\"`"
+      fi
+      javaHome="`dirname \"$javaExecutable\"`"
+      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
+      JAVA_HOME="$javaHome"
+      export JAVA_HOME
+    fi
+  fi
+fi
+
+if [ -z "$JAVACMD" ] ; then
+  if [ -n "$JAVA_HOME"  ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+      # IBM's JDK on AIX uses strange locations for the executables
+      JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+      JAVACMD="$JAVA_HOME/bin/java"
+    fi
+  else
+    JAVACMD="`which java`"
+  fi
+fi
+
+if [ ! -x "$JAVACMD" ] ; then
+  echo "Error: JAVA_HOME is not defined correctly." >&2
+  echo "  We cannot execute $JAVACMD" >&2
+  exit 1
+fi
+
+if [ -z "$JAVA_HOME" ] ; then
+  echo "Warning: JAVA_HOME environment variable is not set."
+fi
+
+CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
+
+# traverses directory structure from process work directory to filesystem root
+# first directory with .mvn subdirectory is considered project base directory
+find_maven_basedir() {
+
+  if [ -z "$1" ]
+  then
+    echo "Path not specified to find_maven_basedir"
+    return 1
+  fi
+
+  basedir="$1"
+  wdir="$1"
+  while [ "$wdir" != '/' ] ; do
+    if [ -d "$wdir"/.mvn ] ; then
+      basedir=$wdir
+      break
+    fi
+    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
+    if [ -d "${wdir}" ]; then
+      wdir=`cd "$wdir/.."; pwd`
+    fi
+    # end of workaround
+  done
+  echo "${basedir}"
+}
+
+# concatenates all lines of a file
+concat_lines() {
+  if [ -f "$1" ]; then
+    echo "$(tr -s '\n' ' ' < "$1")"
+  fi
+}
+
+BASE_DIR=`find_maven_basedir "$(pwd)"`
+if [ -z "$BASE_DIR" ]; then
+  exit 1;
+fi
+
+##########################################################################################
+# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+# This allows using the maven wrapper in projects that prohibit checking in binary data.
+##########################################################################################
+if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Found .mvn/wrapper/maven-wrapper.jar"
+    fi
+else
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
+    fi
+    jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
+    while IFS="=" read key value; do
+      case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
+      esac
+    done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Downloading from: $jarUrl"
+    fi
+    wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
+
+    if command -v wget > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found wget ... using wget"
+        fi
+        wget "$jarUrl" -O "$wrapperJarPath"
+    elif command -v curl > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found curl ... using curl"
+        fi
+        curl -o "$wrapperJarPath" "$jarUrl"
+    else
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Falling back to using Java to download"
+        fi
+        javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
+        if [ -e "$javaClass" ]; then
+            if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Compiling MavenWrapperDownloader.java ..."
+                fi
+                # Compiling the Java class
+                ("$JAVA_HOME/bin/javac" "$javaClass")
+            fi
+            if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                # Running the downloader
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Running MavenWrapperDownloader.java ..."
+                fi
+                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
+            fi
+        fi
+    fi
+fi
+##########################################################################################
+# End of extension
+##########################################################################################
+
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
+if [ "$MVNW_VERBOSE" = true ]; then
+  echo $MAVEN_PROJECTBASEDIR
+fi
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --path --windows "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
+    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
+fi
+
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+exec "$JAVACMD" \
+  $MAVEN_OPTS \
+  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
+  "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
+  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/mvnw.cmd b/springcloud_demo_on_k8s-master/service-influxdb-app/mvnw.cmd
new file mode 100644
index 0000000..e5cfb0a
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/mvnw.cmd
@@ -0,0 +1,161 @@
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements.  See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership.  The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License.  You may obtain a copy of the License at
+@REM
+@REM    http://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied.  See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Maven2 Start Up Batch script
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM M2_HOME - location of maven2's installed home dir
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
+@REM     e.g. to debug Maven itself, use
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+@REM ----------------------------------------------------------------------------
+
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
+@echo off
+@REM set title of command window
+title %0
+@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
+@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
+
+@REM set %HOME% to equivalent of $HOME
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
+
+@REM Execute a user defined script before this one
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
+if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
+:skipRcPre
+
+@setlocal
+
+set ERROR_CODE=0
+
+@REM To isolate internal variables from possible post scripts, we use another setlocal
+@setlocal
+
+@REM ==== START VALIDATION ====
+if not "%JAVA_HOME%" == "" goto OkJHome
+
+echo.
+echo Error: JAVA_HOME not found in your environment. >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:OkJHome
+if exist "%JAVA_HOME%\bin\java.exe" goto init
+
+echo.
+echo Error: JAVA_HOME is set to an invalid directory. >&2
+echo JAVA_HOME = "%JAVA_HOME%" >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+@REM ==== END VALIDATION ====
+
+:init
+
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
+@REM Fallback to current working directory if not found.
+
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
+
+set EXEC_DIR=%CD%
+set WDIR=%EXEC_DIR%
+:findBaseDir
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
+cd ..
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
+set WDIR=%CD%
+goto findBaseDir
+
+:baseDirFound
+set MAVEN_PROJECTBASEDIR=%WDIR%
+cd "%EXEC_DIR%"
+goto endDetectBaseDir
+
+:baseDirNotFound
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
+cd "%EXEC_DIR%"
+
+:endDetectBaseDir
+
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
+
+@setlocal EnableExtensions EnableDelayedExpansion
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
+
+:endReadAdditionalConfig
+
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
+FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO (
+	IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B 
+)
+
+@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
+if exist %WRAPPER_JAR% (
+    echo Found %WRAPPER_JAR%
+) else (
+    echo Couldn't find %WRAPPER_JAR%, downloading it ...
+	echo Downloading from: %DOWNLOAD_URL%
+    powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"
+    echo Finished downloading %WRAPPER_JAR%
+)
+@REM End of extension
+
+%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
+if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
+:skipRcPost
+
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
+if "%MAVEN_BATCH_PAUSE%" == "on" pause
+
+if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
+
+exit /B %ERROR_CODE%
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/pom.xml b/springcloud_demo_on_k8s-master/service-influxdb-app/pom.xml
new file mode 100644
index 0000000..bbed2e7
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/pom.xml
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>2.0.3.RELEASE</version>
+        <relativePath/>
+    </parent>
+    <groupId>com.springcloudme</groupId>
+    <artifactId>service-influxdb-app</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>service-influxdb-app</name>
+    <description>Demo project for Spring Boot</description>
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+        <java.version>1.8</java.version>
+        <spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.influxdb</groupId>
+            <artifactId>influxdb-java</artifactId>
+            <version>2.8</version>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-freemarker</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-thymeleaf</artifactId>
+        </dependency>
+    </dependencies>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.springframework.cloud</groupId>
+                <artifactId>spring-cloud-dependencies</artifactId>
+                <version>${spring-cloud.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+
+
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>docker-maven-plugin</artifactId>
+                <version>1.2.0</version>
+                <configuration>
+                    <imageName>registry.cn-hangzhou.aliyuncs.com/wooddeep/service-influxdb-app:v4</imageName>
+                    <serverId>my-docker-registry</serverId>
+                    <baseImage>java</baseImage>
+                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
+                    <resources>
+                        <resource>
+                            <targetPath>/</targetPath>
+                            <directory>${project.build.directory}</directory>
+                            <include>${project.build.finalName}.jar</include>
+                        </resource>
+                    </resources>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/java/com/springcloudme/serviceinfluxdbapp/ServiceInfluxdbAppApplication.java b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/java/com/springcloudme/serviceinfluxdbapp/ServiceInfluxdbAppApplication.java
new file mode 100644
index 0000000..93dfa9e
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/java/com/springcloudme/serviceinfluxdbapp/ServiceInfluxdbAppApplication.java
@@ -0,0 +1,18 @@
+package com.springcloudme.serviceinfluxdbapp;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.web.servlet.ServletComponentScan;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+
+@SpringBootApplication
+@ServletComponentScan
+@EnableEurekaClient
+public class ServiceInfluxdbAppApplication {
+
+	public static void main(String[] args) {
+		SpringApplication.run(ServiceInfluxdbAppApplication.class, args);
+	}
+
+}
+
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/java/com/springcloudme/serviceinfluxdbapp/controller/ApiController.java b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/java/com/springcloudme/serviceinfluxdbapp/controller/ApiController.java
new file mode 100644
index 0000000..6e3d4f4
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/java/com/springcloudme/serviceinfluxdbapp/controller/ApiController.java
@@ -0,0 +1,14 @@
+package com.springcloudme.serviceinfluxdbapp.controller;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/user")
+public class ApiController {
+
+	@RequestMapping("/me")
+	public String me(){
+		return "aaaaaaaaa";
+	}
+}
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/java/com/springcloudme/serviceinfluxdbapp/controller/InfluxdbController.java b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/java/com/springcloudme/serviceinfluxdbapp/controller/InfluxdbController.java
new file mode 100644
index 0000000..17ca2bb
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/java/com/springcloudme/serviceinfluxdbapp/controller/InfluxdbController.java
@@ -0,0 +1,37 @@
+package com.springcloudme.serviceinfluxdbapp.controller;
+
+import com.springcloudme.serviceinfluxdbapp.utils.InfluxDBUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.servlet.ModelAndView;
+
+@RestController
+@RequestMapping("/influxdb")
+public class InfluxdbController {
+
+	private static Logger log = LoggerFactory.getLogger(InfluxdbController.class);
+
+	@RequestMapping("/queryUI")
+	public ModelAndView queryUI(){
+		ModelAndView mav = new ModelAndView();
+		mav.setViewName("query");
+		return mav;
+	}
+
+	@RequestMapping("/query")
+	public Object query(@RequestParam String sql){
+		log.info("in /influxdb/query");
+		InfluxDBUtils utils= InfluxDBUtils.getInfluxDBUtil();
+		return utils.query(utils.getInstance(),sql);
+	}
+
+	@RequestMapping("/insert")
+	public Object insert(){
+		log.info("in /influxdb/query");
+		InfluxDBUtils utils= InfluxDBUtils.getInfluxDBUtil();
+		return utils.insert(utils.getInstance());
+	}
+}
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/java/com/springcloudme/serviceinfluxdbapp/utils/InfluxDBUtils.java b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/java/com/springcloudme/serviceinfluxdbapp/utils/InfluxDBUtils.java
new file mode 100644
index 0000000..edf5552
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/java/com/springcloudme/serviceinfluxdbapp/utils/InfluxDBUtils.java
@@ -0,0 +1,135 @@
+package com.springcloudme.serviceinfluxdbapp.utils;
+
+import org.influxdb.InfluxDB;
+import org.influxdb.InfluxDBFactory;
+import org.influxdb.dto.Point;
+import org.influxdb.dto.Query;
+import org.influxdb.dto.QueryResult;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+@Component
+public class InfluxDBUtils {
+
+	private static Logger log = LoggerFactory.getLogger(InfluxDBUtils.class);
+
+	private static String host;
+
+	private static String port;
+
+	private static String uri;
+
+	private static String db;
+
+	private static String username;
+
+	private static String password;
+
+	private InfluxDB instance1;
+
+	@Autowired
+	InfluxDBUtils(@Value("${influxdb.host}") String host,@Value("${influxdb.port}") String port,
+				  @Value("${influxdb.uri}") String uri,@Value("${influxdb.db}") String db,
+				  @Value("${influxdb.username}") String username,@Value("${influxdb.password}") String password){
+		this.host = host;
+		this.port = port;
+		this.uri = uri;
+		this.db = db;
+		this.username = username;
+		this.password = password;
+	}
+
+	private static InfluxDBUtils utilInstance = new InfluxDBUtils(host,port,uri,db, username, password);
+
+	public static InfluxDBUtils getInfluxDBUtil() {
+		return utilInstance;
+	}
+
+
+	public InfluxDB getInstance(){
+		if(instance1 == null){
+			return connect();
+		}else {
+			return instance1;
+		}
+	}
+
+	public Map<String,Object> insert(InfluxDB instance){
+		log.info("in util exec");
+		log.info("host="+host+",port="+port+",db="+db+",password="+password+",user="+username+",uri="+uri);
+
+		Map<String,Object> result = new HashMap<>();
+		try {
+			String rpName = "aRetentionPolicy";
+			instance.createRetentionPolicy(rpName, db, "30d", "30m", 2, true);
+
+			Point point2 = Point.measurement("disk")
+					.time(System.currentTimeMillis(), TimeUnit.MILLISECONDS)
+					.addField("used", 80L)
+					.addField("free", 1L)
+					.build();
+
+			log.info("instance",instance);
+
+			instance.write(db,rpName , point2);
+
+			result.put("result",null);
+
+			return result;
+		}catch (Exception e){
+			e.printStackTrace();
+			result.put("result",e.getMessage());
+			return result;
+		}finally {
+			close();
+		}
+	}
+
+	public Map<String,Object> query(InfluxDB instance, String sql){
+		log.info("in util exec");
+		log.info("host="+host+",port="+port+",db="+db+",password="+password+",user="+username+",uri="+uri);
+
+		Map<String,Object> result = new HashMap<>();
+		try {
+			String rpName = "aRetentionPolicy";
+			instance.createRetentionPolicy(rpName, db, "30d", "30m", 2, true);
+			Query query = new Query(sql,db);
+
+			QueryResult query1 = instance.query(query);
+
+			result.put("result",query1);
+			return result;
+		}catch (Exception e){
+			e.printStackTrace();
+			result.put("result",e.getMessage());
+			return result;
+		}finally {
+			close();
+		}
+	}
+
+	private InfluxDB connect(){
+		try {
+			return InfluxDBFactory.connect(uri,username,password);
+		}catch (Exception e){
+			e.printStackTrace();
+			return null;
+		}
+	}
+
+	private void close(){
+		try {
+			InfluxDB instance = getInstance();
+			instance.close();
+		}catch (Exception e){
+			e.printStackTrace();
+		}
+	}
+}
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/application.yml b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/application.yml
new file mode 100644
index 0000000..90330d1
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/application.yml
@@ -0,0 +1,33 @@
+server:
+  port: 8112
+
+spring:
+  application:
+    name: service-influxdb-app
+  resources:
+    static-locations: classpath:/static
+  freemarker:
+    template-loader-path: classpath:/static
+    cache: false
+    charset: utf-8
+    check-template-location: true
+    content-type: text/html
+    expose-request-attributes: false
+    expose-session-attributes: false
+    request-context-attribute: request
+    suffix: .html
+
+eureka:
+  instance:
+    preferIpAddress: true
+  client:
+    serviceUrl:
+      defaultZone: http://${EUREKA_URL:localhost}:8761/eureka
+
+influxdb:
+  host: ${INFLUXDB_HOST:172.21.81.42}
+  port: ${INFLUXDB_PORT:31639}
+  uri: ${INFLUXDB_URI:http://172.21.81.42:31639}
+  db: ${INFLUXDB_DB:lz}
+  username: ${INFLUXDB_USERNAME:u1}
+  password: ${INFLUXDB_PASSWORD:GAN68rfhzvvNSmdGAAWeR9JgC}
\ No newline at end of file
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/js/jquery.min.js b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/js/jquery.min.js
new file mode 100644
index 0000000..006e953
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/js/jquery.min.js
@@ -0,0 +1,5 @@
+/*! jQuery v1.9.1 | (c) 2005, 2012 jQuery Foundation, Inc. | jquery.org/license
+//@ sourceMappingURL=jquery.min.map
+*/(function(e,t){var n,r,i=typeof t,o=e.document,a=e.location,s=e.jQuery,u=e.$,l={},c=[],p="1.9.1",f=c.concat,d=c.push,h=c.slice,g=c.indexOf,m=l.toString,y=l.hasOwnProperty,v=p.trim,b=function(e,t){return new b.fn.init(e,t,r)},x=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,w=/\S+/g,T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,k=/^[\],:{}\s]*$/,E=/(?:^|:|,)(?:\s*\[)+/g,S=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,A=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,j=/^-ms-/,D=/-([\da-z])/gi,L=function(e,t){return t.toUpperCase()},H=function(e){(o.addEventListener||"load"===e.type||"complete"===o.readyState)&&(q(),b.ready())},q=function(){o.addEventListener?(o.removeEventListener("DOMContentLoaded",H,!1),e.removeEventListener("load",H,!1)):(o.detachEvent("onreadystatechange",H),e.detachEvent("onload",H))};b.fn=b.prototype={jquery:p,constructor:b,init:function(e,n,r){var i,a;if(!e)return this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n instanceof b?n[0]:n,b.merge(this,b.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:o,!0)),C.test(i[1])&&b.isPlainObject(n))for(i in n)b.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return this}if(a=o.getElementById(i[2]),a&&a.parentNode){if(a.id!==i[2])return r.find(e);this.length=1,this[0]=a}return this.context=o,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):b.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),b.makeArray(e,this))},selector:"",length:0,size:function(){return this.length},toArray:function(){return h.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=b.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return b.each(this,e,t)},ready:function(e){return b.ready.promise().done(e),this},slice:function(){return this.pushStack(h.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(b.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:d,sort:[].sort,splice:[].splice},b.fn.init.prototype=b.fn,b.extend=b.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},u=1,l=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},u=2),"object"==typeof s||b.isFunction(s)||(s={}),l===u&&(s=this,--u);l>u;u++)if(null!=(o=arguments[u]))for(i in o)e=s[i],r=o[i],s!==r&&(c&&r&&(b.isPlainObject(r)||(n=b.isArray(r)))?(n?(n=!1,a=e&&b.isArray(e)?e:[]):a=e&&b.isPlainObject(e)?e:{},s[i]=b.extend(c,a,r)):r!==t&&(s[i]=r));return s},b.extend({noConflict:function(t){return e.$===b&&(e.$=u),t&&e.jQuery===b&&(e.jQuery=s),b},isReady:!1,readyWait:1,holdReady:function(e){e?b.readyWait++:b.ready(!0)},ready:function(e){if(e===!0?!--b.readyWait:!b.isReady){if(!o.body)return setTimeout(b.ready);b.isReady=!0,e!==!0&&--b.readyWait>0||(n.resolveWith(o,[b]),b.fn.trigger&&b(o).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===b.type(e)},isArray:Array.isArray||function(e){return"array"===b.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[m.call(e)]||"object":typeof e},isPlainObject:function(e){if(!e||"object"!==b.type(e)||e.nodeType||b.isWindow(e))return!1;try{if(e.constructor&&!y.call(e,"constructor")&&!y.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||y.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||o;var r=C.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=b.buildFragment([e],t,i),i&&b(i).remove(),b.merge([],r.childNodes))},parseJSON:function(n){return e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof n&&(n=b.trim(n),n&&k.test(n.replace(S,"@").replace(A,"]").replace(E,"")))?Function("return "+n)():(b.error("Invalid JSON: "+n),t)},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||b.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&b.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(j,"ms-").replace(D,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:v&&!v.call("\ufeff\u00a0")?function(e){return null==e?"":v.call(e)}:function(e){return null==e?"":(e+"").replace(T,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(M(Object(e))?b.merge(n,"string"==typeof e?[e]:e):d.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(g)return g.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return f.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(o=e[n],n=e,e=o),b.isFunction(e)?(r=h.call(arguments,2),i=function(){return e.apply(n||this,r.concat(h.call(arguments)))},i.guid=e.guid=e.guid||b.guid++,i):t},access:function(e,n,r,i,o,a,s){var u=0,l=e.length,c=null==r;if("object"===b.type(r)){o=!0;for(u in r)b.access(e,n,u,r[u],!0,a,s)}else if(i!==t&&(o=!0,b.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return c.call(b(e),n)})),n))for(;l>u;u++)n(e[u],r,s?i:i.call(e[u],u,n(e[u],r)));return o?e:c?n.call(e):l?n(e[0],r):a},now:function(){return(new Date).getTime()}}),b.ready.promise=function(t){if(!n)if(n=b.Deferred(),"complete"===o.readyState)setTimeout(b.ready);else if(o.addEventListener)o.addEventListener("DOMContentLoaded",H,!1),e.addEventListener("load",H,!1);else{o.attachEvent("onreadystatechange",H),e.attachEvent("onload",H);var r=!1;try{r=null==e.frameElement&&o.documentElement}catch(i){}r&&r.doScroll&&function a(){if(!b.isReady){try{r.doScroll("left")}catch(e){return setTimeout(a,50)}q(),b.ready()}}()}return n.promise(t)},b.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function M(e){var t=e.length,n=b.type(e);return b.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}r=b(o);var _={};function F(e){var t=_[e]={};return b.each(e.match(w)||[],function(e,n){t[n]=!0}),t}b.Callbacks=function(e){e="string"==typeof e?_[e]||F(e):b.extend({},e);var n,r,i,o,a,s,u=[],l=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=u.length,n=!0;u&&o>a;a++)if(u[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,u&&(l?l.length&&c(l.shift()):r?u=[]:p.disable())},p={add:function(){if(u){var t=u.length;(function i(t){b.each(t,function(t,n){var r=b.type(n);"function"===r?e.unique&&p.has(n)||u.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=u.length:r&&(s=t,c(r))}return this},remove:function(){return u&&b.each(arguments,function(e,t){var r;while((r=b.inArray(t,u,r))>-1)u.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return e?b.inArray(e,u)>-1:!(!u||!u.length)},empty:function(){return u=[],this},disable:function(){return u=l=r=t,this},disabled:function(){return!u},lock:function(){return l=t,r||p.disable(),this},locked:function(){return!l},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],!u||i&&!l||(n?l.push(t):c(t)),this},fire:function(){return p.fireWith(this,arguments),this},fired:function(){return!!i}};return p},b.extend({Deferred:function(e){var t=[["resolve","done",b.Callbacks("once memory"),"resolved"],["reject","fail",b.Callbacks("once memory"),"rejected"],["notify","progress",b.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return b.Deferred(function(n){b.each(t,function(t,o){var a=o[0],s=b.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&b.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?b.extend(e,r):r}},i={};return r.pipe=r.then,b.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=h.call(arguments),r=n.length,i=1!==r||e&&b.isFunction(e.promise)?r:0,o=1===i?e:b.Deferred(),a=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?h.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,u,l;if(r>1)for(s=Array(r),u=Array(r),l=Array(r);r>t;t++)n[t]&&b.isFunction(n[t].promise)?n[t].promise().done(a(t,l,n)).fail(o.reject).progress(a(t,u,s)):--i;return i||o.resolveWith(l,n),o.promise()}}),b.support=function(){var t,n,r,a,s,u,l,c,p,f,d=o.createElement("div");if(d.setAttribute("className","t"),d.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=d.getElementsByTagName("*"),r=d.getElementsByTagName("a")[0],!n||!r||!n.length)return{};s=o.createElement("select"),l=s.appendChild(o.createElement("option")),a=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={getSetAttribute:"t"!==d.className,leadingWhitespace:3===d.firstChild.nodeType,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:"/a"===r.getAttribute("href"),opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:!!a.value,optSelected:l.selected,enctype:!!o.createElement("form").enctype,html5Clone:"<:nav></:nav>"!==o.createElement("nav").cloneNode(!0).outerHTML,boxModel:"CSS1Compat"===o.compatMode,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},a.checked=!0,t.noCloneChecked=a.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!l.disabled;try{delete d.test}catch(h){t.deleteExpando=!1}a=o.createElement("input"),a.setAttribute("value",""),t.input=""===a.getAttribute("value"),a.value="t",a.setAttribute("type","radio"),t.radioValue="t"===a.value,a.setAttribute("checked","t"),a.setAttribute("name","t"),u=o.createDocumentFragment(),u.appendChild(a),t.appendChecked=a.checked,t.checkClone=u.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c in e||d.attributes[c].expando===!1;return d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip,b(function(){var n,r,a,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",u=o.getElementsByTagName("body")[0];u&&(n=o.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",u.appendChild(n).appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",a=d.getElementsByTagName("td"),a[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===a[0].offsetHeight,a[0].style.display="",a[1].style.display="none",t.reliableHiddenOffsets=p&&0===a[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=4===d.offsetWidth,t.doesNotIncludeMarginInBodyOffset=1!==u.offsetTop,e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(o.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),typeof d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="<div></div>",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(u.style.zoom=1)),u.removeChild(n),n=d=a=r=null)}),n=s=u=l=r=a=null,t}();var O=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,B=/([A-Z])/g;function P(e,n,r,i){if(b.acceptData(e)){var o,a,s=b.expando,u="string"==typeof n,l=e.nodeType,p=l?b.cache:e,f=l?e[s]:e[s]&&s;if(f&&p[f]&&(i||p[f].data)||!u||r!==t)return f||(l?e[s]=f=c.pop()||b.guid++:f=s),p[f]||(p[f]={},l||(p[f].toJSON=b.noop)),("object"==typeof n||"function"==typeof n)&&(i?p[f]=b.extend(p[f],n):p[f].data=b.extend(p[f].data,n)),o=p[f],i||(o.data||(o.data={}),o=o.data),r!==t&&(o[b.camelCase(n)]=r),u?(a=o[n],null==a&&(a=o[b.camelCase(n)])):a=o,a}}function R(e,t,n){if(b.acceptData(e)){var r,i,o,a=e.nodeType,s=a?b.cache:e,u=a?e[b.expando]:b.expando;if(s[u]){if(t&&(o=n?s[u]:s[u].data)){b.isArray(t)?t=t.concat(b.map(t,b.camelCase)):t in o?t=[t]:(t=b.camelCase(t),t=t in o?[t]:t.split(" "));for(r=0,i=t.length;i>r;r++)delete o[t[r]];if(!(n?$:b.isEmptyObject)(o))return}(n||(delete s[u].data,$(s[u])))&&(a?b.cleanData([e],!0):b.support.deleteExpando||s!=s.window?delete s[u]:s[u]=null)}}}b.extend({cache:{},expando:"jQuery"+(p+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?b.cache[e[b.expando]]:e[b.expando],!!e&&!$(e)},data:function(e,t,n){return P(e,t,n)},removeData:function(e,t){return R(e,t)},_data:function(e,t,n){return P(e,t,n,!0)},_removeData:function(e,t){return R(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var t=e.nodeName&&b.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),b.fn.extend({data:function(e,n){var r,i,o=this[0],a=0,s=null;if(e===t){if(this.length&&(s=b.data(o),1===o.nodeType&&!b._data(o,"parsedAttrs"))){for(r=o.attributes;r.length>a;a++)i=r[a].name,i.indexOf("data-")||(i=b.camelCase(i.slice(5)),W(o,i,s[i]));b._data(o,"parsedAttrs",!0)}return s}return"object"==typeof e?this.each(function(){b.data(this,e)}):b.access(this,function(n){return n===t?o?W(o,e,b.data(o,e)):null:(this.each(function(){b.data(this,e,n)}),t)},null,n,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){b.removeData(this,e)})}});function W(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(B,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:O.test(r)?b.parseJSON(r):r}catch(o){}b.data(e,n,r)}else r=t}return r}function $(e){var t;for(t in e)if(("data"!==t||!b.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}b.extend({queue:function(e,n,r){var i;return e?(n=(n||"fx")+"queue",i=b._data(e,n),r&&(!i||b.isArray(r)?i=b._data(e,n,b.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var n=b.queue(e,t),r=n.length,i=n.shift(),o=b._queueHooks(e,t),a=function(){b.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),o.cur=i,i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return b._data(e,n)||b._data(e,n,{empty:b.Callbacks("once memory").add(function(){b._removeData(e,t+"queue"),b._removeData(e,n)})})}}),b.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),r>arguments.length?b.queue(this[0],e):n===t?this:this.each(function(){var t=b.queue(this,e,n);b._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&b.dequeue(this,e)})},dequeue:function(e){return this.each(function(){b.dequeue(this,e)})},delay:function(e,t){return e=b.fx?b.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=b.Deferred(),a=this,s=this.length,u=function(){--i||o.resolveWith(a,[a])};"string"!=typeof e&&(n=e,e=t),e=e||"fx";while(s--)r=b._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(u));return u(),o.promise(n)}});var I,z,X=/[\t\r\n]/g,U=/\r/g,V=/^(?:input|select|textarea|button|object)$/i,Y=/^(?:a|area)$/i,J=/^(?:checked|selected|autofocus|autoplay|async|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped)$/i,G=/^(?:checked|selected)$/i,Q=b.support.getSetAttribute,K=b.support.input;b.fn.extend({attr:function(e,t){return b.access(this,b.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){b.removeAttr(this,e)})},prop:function(e,t){return b.access(this,b.prop,e,t,arguments.length>1)},removeProp:function(e){return e=b.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a=0,s=this.length,u="string"==typeof e&&e;if(b.isFunction(e))return this.each(function(t){b(this).addClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(X," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=b.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,a=0,s=this.length,u=0===arguments.length||"string"==typeof e&&e;if(b.isFunction(e))return this.each(function(t){b(this).removeClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(X," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?b.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e,r="boolean"==typeof t;return b.isFunction(e)?this.each(function(n){b(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var o,a=0,s=b(this),u=t,l=e.match(w)||[];while(o=l[a++])u=r?u:!s.hasClass(o),s[u?"addClass":"removeClass"](o)}else(n===i||"boolean"===n)&&(this.className&&b._data(this,"__className__",this.className),this.className=this.className||e===!1?"":b._data(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(X," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=b.isFunction(e),this.each(function(n){var o,a=b(this);1===this.nodeType&&(o=i?e.call(this,n,a.val()):e,null==o?o="":"number"==typeof o?o+="":b.isArray(o)&&(o=b.map(o,function(e){return null==e?"":e+""})),r=b.valHooks[this.type]||b.valHooks[this.nodeName.toLowerCase()],r&&"set"in r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return r=b.valHooks[o.type]||b.valHooks[o.nodeName.toLowerCase()],r&&"get"in r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof n?n.replace(U,""):null==n?"":n)}}}),b.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,u=0>i?s:o?i:0;for(;s>u;u++)if(n=r[u],!(!n.selected&&u!==i||(b.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&b.nodeName(n.parentNode,"optgroup"))){if(t=b(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n=b.makeArray(t);return b(e).find("option").each(function(){this.selected=b.inArray(b(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attr:function(e,n,r){var o,a,s,u=e.nodeType;if(e&&3!==u&&8!==u&&2!==u)return typeof e.getAttribute===i?b.prop(e,n,r):(a=1!==u||!b.isXMLDoc(e),a&&(n=n.toLowerCase(),o=b.attrHooks[n]||(J.test(n)?z:I)),r===t?o&&a&&"get"in o&&null!==(s=o.get(e,n))?s:(typeof e.getAttribute!==i&&(s=e.getAttribute(n)),null==s?t:s):null!==r?o&&a&&"set"in o&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r):(b.removeAttr(e,n),t))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(w);if(o&&1===e.nodeType)while(n=o[i++])r=b.propFix[n]||n,J.test(n)?!Q&&G.test(n)?e[b.camelCase("default-"+n)]=e[r]=!1:e[r]=!1:b.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!b.support.radioValue&&"radio"===t&&b.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!b.isXMLDoc(e),a&&(n=b.propFix[n]||n,o=b.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):V.test(e.nodeName)||Y.test(e.nodeName)&&e.href?0:t}}}}),z={get:function(e,n){var r=b.prop(e,n),i="boolean"==typeof r&&e.getAttribute(n),o="boolean"==typeof r?K&&Q?null!=i:G.test(n)?e[b.camelCase("default-"+n)]:!!i:e.getAttributeNode(n);return o&&o.value!==!1?n.toLowerCase():t},set:function(e,t,n){return t===!1?b.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&b.propFix[n]||n,n):e[b.camelCase("default-"+n)]=e[n]=!0,n}},K&&Q||(b.attrHooks.value={get:function(e,n){var r=e.getAttributeNode(n);return b.nodeName(e,"input")?e.defaultValue:r&&r.specified?r.value:t},set:function(e,n,r){return b.nodeName(e,"input")?(e.defaultValue=n,t):I&&I.set(e,n,r)}}),Q||(I=b.valHooks.button={get:function(e,n){var r=e.getAttributeNode(n);return r&&("id"===n||"name"===n||"coords"===n?""!==r.value:r.specified)?r.value:t},set:function(e,n,r){var i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocument.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},b.attrHooks.contenteditable={get:I.get,set:function(e,t,n){I.set(e,""===t?!1:t,n)}},b.each(["width","height"],function(e,n){b.attrHooks[n]=b.extend(b.attrHooks[n],{set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}})})),b.support.hrefNormalized||(b.each(["href","src","width","height"],function(e,n){b.attrHooks[n]=b.extend(b.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return null==r?t:r}})}),b.each(["href","src"],function(e,t){b.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}})),b.support.style||(b.attrHooks.style={get:function(e){return e.style.cssText||t},set:function(e,t){return e.style.cssText=t+""}}),b.support.optSelected||(b.propHooks.selected=b.extend(b.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),b.support.enctype||(b.propFix.enctype="encoding"),b.support.checkOn||b.each(["radio","checkbox"],function(){b.valHooks[this]={get:function(e){return null===e.getAttribute("value")?"on":e.value}}}),b.each(["radio","checkbox"],function(){b.valHooks[this]=b.extend(b.valHooks[this],{set:function(e,n){return b.isArray(n)?e.checked=b.inArray(b(e).val(),n)>=0:t}})});var Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function it(){return!0}function ot(){return!1}b.event={global:{},add:function(e,n,r,o,a){var s,u,l,c,p,f,d,h,g,m,y,v=b._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=b.guid++),(u=v.events)||(u=v.events={}),(f=v.handle)||(f=v.handle=function(e){return typeof b===i||e&&b.event.triggered===e.type?t:b.event.dispatch.apply(f.elem,arguments)},f.elem=e),n=(n||"").match(w)||[""],l=n.length;while(l--)s=rt.exec(n[l])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),p=b.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=b.event.special[g]||{},d=b.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&b.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=u[g])||(h=u[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),b.event.global[g]=!0;e=null}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,p,f,d,h,g,m=b.hasData(e)&&b._data(e);if(m&&(c=m.events)){t=(t||"").match(w)||[""],l=t.length;while(l--)if(s=rt.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=b.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),u=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));u&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||b.removeEvent(e,d,m.handle),delete c[d])}else for(d in c)b.event.remove(e,d+t[l],n,r,!0);b.isEmptyObject(c)&&(delete m.handle,b._removeData(e,"events"))}},trigger:function(n,r,i,a){var s,u,l,c,p,f,d,h=[i||o],g=y.call(n,"type")?n.type:n,m=y.call(n,"namespace")?n.namespace.split("."):[];if(l=f=i=i||o,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+b.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),u=0>g.indexOf(":")&&"on"+g,n=n[b.expando]?n:new b.Event(g,"object"==typeof n&&n),n.isTrigger=!0,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:b.makeArray(r,[n]),p=b.event.special[g]||{},a||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!a&&!p.noBubble&&!b.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(l=l.parentNode);l;l=l.parentNode)h.push(l),f=l;f===(i.ownerDocument||o)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((l=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(b._data(l,"events")||{})[n.type]&&b._data(l,"handle"),s&&s.apply(l,r),s=u&&l[u],s&&b.acceptData(l)&&s.apply&&s.apply(l,r)===!1&&n.preventDefault();if(n.type=g,!(a||n.isDefaultPrevented()||p._default&&p._default.apply(i.ownerDocument,r)!==!1||"click"===g&&b.nodeName(i,"a")||!b.acceptData(i)||!u||!i[g]||b.isWindow(i))){f=i[u],f&&(i[u]=null),b.event.triggered=g;try{i[g]()}catch(v){}b.event.triggered=t,f&&(i[u]=f)}return n.result}},dispatch:function(e){e=b.event.fix(e);var n,r,i,o,a,s=[],u=h.call(arguments),l=(b._data(this,"events")||{})[e.type]||[],c=b.event.special[e.type]||{};if(u[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=b.event.handlers.call(this,e,l),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((b.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,u),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var r,i,o,a,s=[],u=n.delegateCount,l=e.target;if(u&&l.nodeType&&(!e.button||"click"!==e.type))for(;l!=this;l=l.parentNode||this)if(1===l.nodeType&&(l.disabled!==!0||"click"!==e.type)){for(o=[],a=0;u>a;a++)i=n[a],r=i.selector+" ",o[r]===t&&(o[r]=i.needsContext?b(r,this).index(l)>=0:b.find(r,this,null,[l]).length),o[r]&&o.push(i);o.length&&s.push({elem:l,handlers:o})}return n.length>u&&s.push({elem:this,handlers:n.slice(u)}),s},fix:function(e){if(e[b.expando])return e;var t,n,r,i=e.type,a=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new b.Event(a),t=r.length;while(t--)n=r[t],e[n]=a[n];return e.target||(e.target=a.srcElement||o),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,a):e},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,a,s=n.button,u=n.fromElement;return null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||o,a=i.documentElement,r=i.body,e.pageX=n.clientX+(a&&a.scrollLeft||r&&r.scrollLeft||0)-(a&&a.clientLeft||r&&r.clientLeft||0),e.pageY=n.clientY+(a&&a.scrollTop||r&&r.scrollTop||0)-(a&&a.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&u&&(e.relatedTarget=u===e.target?n.toElement:u),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},click:{trigger:function(){return b.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t}},focus:{trigger:function(){if(this!==o.activeElement&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return this===o.activeElement&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=b.extend(new b.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?b.event.trigger(i,null,t):b.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},b.removeEvent=o.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]===i&&(e[r]=null),e.detachEvent(r,n))},b.Event=function(e,n){return this instanceof b.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&b.extend(this,n),this.timeStamp=e&&e.timeStamp||b.now(),this[b.expando]=!0,t):new b.Event(e,n)},b.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},b.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){b.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;
+return(!i||i!==r&&!b.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),b.support.submitBubbles||(b.event.special.submit={setup:function(){return b.nodeName(this,"form")?!1:(b.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=b.nodeName(n,"input")||b.nodeName(n,"button")?n.form:t;r&&!b._data(r,"submitBubbles")&&(b.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),b._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&b.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return b.nodeName(this,"form")?!1:(b.event.remove(this,"._submit"),t)}}),b.support.changeBubbles||(b.event.special.change={setup:function(){return Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(b.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),b.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),b.event.simulate("change",this,e,!0)})),!1):(b.event.add(this,"beforeactivate._change",function(e){var t=e.target;Z.test(t.nodeName)&&!b._data(t,"changeBubbles")&&(b.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||b.event.simulate("change",this.parentNode,e,!0)}),b._data(t,"changeBubbles",!0))}),t)},handle:function(e){var n=e.target;return this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return b.event.remove(this,"._change"),!Z.test(this.nodeName)}}),b.support.focusinBubbles||b.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){b.event.simulate(t,e.target,b.event.fix(e),!0)};b.event.special[t]={setup:function(){0===n++&&o.addEventListener(e,r,!0)},teardown:function(){0===--n&&o.removeEventListener(e,r,!0)}}}),b.fn.extend({on:function(e,n,r,i,o){var a,s;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return 1===o&&(s=i,i=function(e){return b().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=b.guid++)),this.each(function(){b.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,b(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){b.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){b.event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return r?b.event.trigger(e,n,r,!0):t}}),function(e,t){var n,r,i,o,a,s,u,l,c,p,f,d,h,g,m,y,v,x="sizzle"+-new Date,w=e.document,T={},N=0,C=0,k=it(),E=it(),S=it(),A=typeof t,j=1<<31,D=[],L=D.pop,H=D.push,q=D.slice,M=D.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},_="[\\x20\\t\\r\\n\\f]",F="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=F.replace("w","w#"),B="([*^$|!~]?=)",P="\\["+_+"*("+F+")"+_+"*(?:"+B+_+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+O+")|)|)"+_+"*\\]",R=":("+F+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+P.replace(3,8)+")*)|.*)\\)|)",W=RegExp("^"+_+"+|((?:^|[^\\\\])(?:\\\\.)*)"+_+"+$","g"),$=RegExp("^"+_+"*,"+_+"*"),I=RegExp("^"+_+"*([\\x20\\t\\r\\n\\f>+~])"+_+"*"),z=RegExp(R),X=RegExp("^"+O+"$"),U={ID:RegExp("^#("+F+")"),CLASS:RegExp("^\\.("+F+")"),NAME:RegExp("^\\[name=['\"]?("+F+")['\"]?\\]"),TAG:RegExp("^("+F.replace("w","w*")+")"),ATTR:RegExp("^"+P),PSEUDO:RegExp("^"+R),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+_+"*(even|odd|(([+-]|)(\\d*)n|)"+_+"*(?:([+-]|)"+_+"*(\\d+)|))"+_+"*\\)|)","i"),needsContext:RegExp("^"+_+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+_+"*((?:-\\d)?\\d*)"+_+"*\\)|)(?=[^-]|$)","i")},V=/[\x20\t\r\n\f]*[+~]/,Y=/^[^{]+\{\s*\[native code/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,G=/^(?:input|select|textarea|button)$/i,Q=/^h\d$/i,K=/'|\\/g,Z=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,et=/\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,tt=function(e,t){var n="0x"+t-65536;return n!==n?t:0>n?String.fromCharCode(n+65536):String.fromCharCode(55296|n>>10,56320|1023&n)};try{q.call(w.documentElement.childNodes,0)[0].nodeType}catch(nt){q=function(e){var t,n=[];while(t=this[e++])n.push(t);return n}}function rt(e){return Y.test(e+"")}function it(){var e,t=[];return e=function(n,r){return t.push(n+=" ")>i.cacheLength&&delete e[t.shift()],e[n]=r}}function ot(e){return e[x]=!0,e}function at(e){var t=p.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}}function st(e,t,n,r){var i,o,a,s,u,l,f,g,m,v;if((t?t.ownerDocument||t:w)!==p&&c(t),t=t||p,n=n||[],!e||"string"!=typeof e)return n;if(1!==(s=t.nodeType)&&9!==s)return[];if(!d&&!r){if(i=J.exec(e))if(a=i[1]){if(9===s){if(o=t.getElementById(a),!o||!o.parentNode)return n;if(o.id===a)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(a))&&y(t,o)&&o.id===a)return n.push(o),n}else{if(i[2])return H.apply(n,q.call(t.getElementsByTagName(e),0)),n;if((a=i[3])&&T.getByClassName&&t.getElementsByClassName)return H.apply(n,q.call(t.getElementsByClassName(a),0)),n}if(T.qsa&&!h.test(e)){if(f=!0,g=x,m=t,v=9===s&&e,1===s&&"object"!==t.nodeName.toLowerCase()){l=ft(e),(f=t.getAttribute("id"))?g=f.replace(K,"\\$&"):t.setAttribute("id",g),g="[id='"+g+"'] ",u=l.length;while(u--)l[u]=g+dt(l[u]);m=V.test(e)&&t.parentNode||t,v=l.join(",")}if(v)try{return H.apply(n,q.call(m.querySelectorAll(v),0)),n}catch(b){}finally{f||t.removeAttribute("id")}}}return wt(e.replace(W,"$1"),t,n,r)}a=st.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},c=st.setDocument=function(e){var n=e?e.ownerDocument||e:w;return n!==p&&9===n.nodeType&&n.documentElement?(p=n,f=n.documentElement,d=a(n),T.tagNameNoComments=at(function(e){return e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),T.attributes=at(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return"boolean"!==t&&"string"!==t}),T.getByClassName=at(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",e.getElementsByClassName&&e.getElementsByClassName("e").length?(e.lastChild.className="e",2===e.getElementsByClassName("e").length):!1}),T.getByName=at(function(e){e.id=x+0,e.innerHTML="<a name='"+x+"'></a><div name='"+x+"'></div>",f.insertBefore(e,f.firstChild);var t=n.getElementsByName&&n.getElementsByName(x).length===2+n.getElementsByName(x+0).length;return T.getIdNotName=!n.getElementById(x),f.removeChild(e),t}),i.attrHandle=at(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==A&&"#"===e.firstChild.getAttribute("href")})?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},T.getIdNotName?(i.find.ID=function(e,t){if(typeof t.getElementById!==A&&!d){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},i.filter.ID=function(e){var t=e.replace(et,tt);return function(e){return e.getAttribute("id")===t}}):(i.find.ID=function(e,n){if(typeof n.getElementById!==A&&!d){var r=n.getElementById(e);return r?r.id===e||typeof r.getAttributeNode!==A&&r.getAttributeNode("id").value===e?[r]:t:[]}},i.filter.ID=function(e){var t=e.replace(et,tt);return function(e){var n=typeof e.getAttributeNode!==A&&e.getAttributeNode("id");return n&&n.value===t}}),i.find.TAG=T.tagNameNoComments?function(e,n){return typeof n.getElementsByTagName!==A?n.getElementsByTagName(e):t}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},i.find.NAME=T.getByName&&function(e,n){return typeof n.getElementsByName!==A?n.getElementsByName(name):t},i.find.CLASS=T.getByClassName&&function(e,n){return typeof n.getElementsByClassName===A||d?t:n.getElementsByClassName(e)},g=[],h=[":focus"],(T.qsa=rt(n.querySelectorAll))&&(at(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||h.push("\\["+_+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||h.push(":checked")}),at(function(e){e.innerHTML="<input type='hidden' i=''/>",e.querySelectorAll("[i^='']").length&&h.push("[*^$]="+_+"*(?:\"\"|'')"),e.querySelectorAll(":enabled").length||h.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),h.push(",.*:")})),(T.matchesSelector=rt(m=f.matchesSelector||f.mozMatchesSelector||f.webkitMatchesSelector||f.oMatchesSelector||f.msMatchesSelector))&&at(function(e){T.disconnectedMatch=m.call(e,"div"),m.call(e,"[s!='']:x"),g.push("!=",R)}),h=RegExp(h.join("|")),g=RegExp(g.join("|")),y=rt(f.contains)||f.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},v=f.compareDocumentPosition?function(e,t){var r;return e===t?(u=!0,0):(r=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t))?1&r||e.parentNode&&11===e.parentNode.nodeType?e===n||y(w,e)?-1:t===n||y(w,t)?1:0:4&r?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return u=!0,0;if(!o||!a)return e===n?-1:t===n?1:o?-1:a?1:0;if(o===a)return ut(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return i?ut(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},u=!1,[0,0].sort(v),T.detectDuplicates=u,p):p},st.matches=function(e,t){return st(e,null,null,t)},st.matchesSelector=function(e,t){if((e.ownerDocument||e)!==p&&c(e),t=t.replace(Z,"='$1']"),!(!T.matchesSelector||d||g&&g.test(t)||h.test(t)))try{var n=m.call(e,t);if(n||T.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(r){}return st(t,p,null,[e]).length>0},st.contains=function(e,t){return(e.ownerDocument||e)!==p&&c(e),y(e,t)},st.attr=function(e,t){var n;return(e.ownerDocument||e)!==p&&c(e),d||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):d||T.attributes?e.getAttribute(t):((n=e.getAttributeNode(t))||e.getAttribute(t))&&e[t]===!0?t:n&&n.specified?n.value:null},st.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},st.uniqueSort=function(e){var t,n=[],r=1,i=0;if(u=!T.detectDuplicates,e.sort(v),u){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));while(i--)e.splice(n[i],1)}return e};function ut(e,t){var n=t&&e,r=n&&(~t.sourceIndex||j)-(~e.sourceIndex||j);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function lt(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function ct(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function pt(e){return ot(function(t){return t=+t,ot(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}o=st.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=o(t);return n},i=st.selectors={cacheLength:50,createPseudo:ot,match:U,find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(et,tt),e[3]=(e[4]||e[5]||"").replace(et,tt),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||st.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&st.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return U.CHILD.test(e[0])?null:(e[4]?e[2]=e[4]:n&&z.test(n)&&(t=ft(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){return"*"===e?function(){return!0}:(e=e.replace(et,tt).toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[e+" "];return t||(t=RegExp("(^|"+_+")"+e+"("+_+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==A&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=st.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!u&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[x]||(m[x]={}),l=c[e]||[],d=l[0]===N&&l[1],f=l[0]===N&&l[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[N,d,f];break}}else if(v&&(l=(t[x]||(t[x]={}))[e])&&l[0]===N)f=l[1];else while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[x]||(p[x]={}))[e]=[N,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||st.error("unsupported pseudo: "+e);return r[x]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?ot(function(e,n){var i,o=r(e,t),a=o.length;while(a--)i=M.call(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return r(e,0,n)}):r}},pseudos:{not:ot(function(e){var t=[],n=[],r=s(e.replace(W,"$1"));return r[x]?ot(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:ot(function(e){return function(t){return st(e,t).length>0}}),contains:ot(function(e){return function(t){return(t.textContent||t.innerText||o(t)).indexOf(e)>-1}}),lang:ot(function(e){return X.test(e||"")||st.error("unsupported lang: "+e),e=e.replace(et,tt).toLowerCase(),function(t){var n;do if(n=d?t.getAttribute("xml:lang")||t.getAttribute("lang"):t.lang)return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===f},focus:function(e){return e===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!i.pseudos.empty(e)},header:function(e){return Q.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:pt(function(){return[0]}),last:pt(function(e,t){return[t-1]}),eq:pt(function(e,t,n){return[0>n?n+t:n]}),even:pt(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:pt(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:pt(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:pt(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}};for(n in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})i.pseudos[n]=lt(n);for(n in{submit:!0,reset:!0})i.pseudos[n]=ct(n);function ft(e,t){var n,r,o,a,s,u,l,c=E[e+" "];if(c)return t?0:c.slice(0);s=e,u=[],l=i.preFilter;while(s){(!n||(r=$.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),u.push(o=[])),n=!1,(r=I.exec(s))&&(n=r.shift(),o.push({value:n,type:r[0].replace(W," ")}),s=s.slice(n.length));for(a in i.filter)!(r=U[a].exec(s))||l[a]&&!(r=l[a](r))||(n=r.shift(),o.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return t?s.length:s?st.error(e):E(e,u).slice(0)}function dt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function ht(e,t,n){var i=t.dir,o=n&&"parentNode"===i,a=C++;return t.first?function(t,n,r){while(t=t[i])if(1===t.nodeType||o)return e(t,n,r)}:function(t,n,s){var u,l,c,p=N+" "+a;if(s){while(t=t[i])if((1===t.nodeType||o)&&e(t,n,s))return!0}else while(t=t[i])if(1===t.nodeType||o)if(c=t[x]||(t[x]={}),(l=c[i])&&l[0]===p){if((u=l[1])===!0||u===r)return u===!0}else if(l=c[i]=[p],l[1]=e(t,n,s)||r,l[1]===!0)return!0}}function gt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function mt(e,t,n,r,i){var o,a=[],s=0,u=e.length,l=null!=t;for(;u>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),l&&t.push(s));return a}function yt(e,t,n,r,i,o){return r&&!r[x]&&(r=yt(r)),i&&!i[x]&&(i=yt(i,o)),ot(function(o,a,s,u){var l,c,p,f=[],d=[],h=a.length,g=o||xt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:mt(g,f,e,s,u),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,u),r){l=mt(y,d),r(l,[],s,u),c=l.length;while(c--)(p=l[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){l=[],c=y.length;while(c--)(p=y[c])&&l.push(m[c]=p);i(null,y=[],l,u)}c=y.length;while(c--)(p=y[c])&&(l=i?M.call(o,p):f[c])>-1&&(o[l]=!(a[l]=p))}}else y=mt(y===a?y.splice(h,y.length):y),i?i(null,a,y,u):H.apply(a,y)})}function vt(e){var t,n,r,o=e.length,a=i.relative[e[0].type],s=a||i.relative[" "],u=a?1:0,c=ht(function(e){return e===t},s,!0),p=ht(function(e){return M.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;o>u;u++)if(n=i.relative[e[u].type])f=[ht(gt(f),n)];else{if(n=i.filter[e[u].type].apply(null,e[u].matches),n[x]){for(r=++u;o>r;r++)if(i.relative[e[r].type])break;return yt(u>1&&gt(f),u>1&&dt(e.slice(0,u-1)).replace(W,"$1"),n,r>u&&vt(e.slice(u,r)),o>r&&vt(e=e.slice(r)),o>r&&dt(e))}f.push(n)}return gt(f)}function bt(e,t){var n=0,o=t.length>0,a=e.length>0,s=function(s,u,c,f,d){var h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,T=l,C=s||a&&i.find.TAG("*",d&&u.parentNode||u),k=N+=null==T?1:Math.random()||.1;for(w&&(l=u!==p&&u,r=n);null!=(h=C[b]);b++){if(a&&h){g=0;while(m=e[g++])if(m(h,u,c)){f.push(h);break}w&&(N=k,r=++n)}o&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,o&&b!==v){g=0;while(m=t[g++])m(x,y,u,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=L.call(f));y=mt(y)}H.apply(f,y),w&&!s&&y.length>0&&v+t.length>1&&st.uniqueSort(f)}return w&&(N=k,l=T),x};return o?ot(s):s}s=st.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=ft(e)),n=t.length;while(n--)o=vt(t[n]),o[x]?r.push(o):i.push(o);o=S(e,bt(i,r))}return o};function xt(e,t,n){var r=0,i=t.length;for(;i>r;r++)st(e,t[r],n);return n}function wt(e,t,n,r){var o,a,u,l,c,p=ft(e);if(!r&&1===p.length){if(a=p[0]=p[0].slice(0),a.length>2&&"ID"===(u=a[0]).type&&9===t.nodeType&&!d&&i.relative[a[1].type]){if(t=i.find.ID(u.matches[0].replace(et,tt),t)[0],!t)return n;e=e.slice(a.shift().value.length)}o=U.needsContext.test(e)?0:a.length;while(o--){if(u=a[o],i.relative[l=u.type])break;if((c=i.find[l])&&(r=c(u.matches[0].replace(et,tt),V.test(a[0].type)&&t.parentNode||t))){if(a.splice(o,1),e=r.length&&dt(a),!e)return H.apply(n,q.call(r,0)),n;break}}}return s(e,p)(r,t,d,n,V.test(e)),n}i.pseudos.nth=i.pseudos.eq;function Tt(){}i.filters=Tt.prototype=i.pseudos,i.setFilters=new Tt,c(),st.attr=b.attr,b.find=st,b.expr=st.selectors,b.expr[":"]=b.expr.pseudos,b.unique=st.uniqueSort,b.text=st.getText,b.isXMLDoc=st.isXML,b.contains=st.contains}(e);var at=/Until$/,st=/^(?:parents|prev(?:Until|All))/,ut=/^.[^:#\[\.,]*$/,lt=b.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};b.fn.extend({find:function(e){var t,n,r,i=this.length;if("string"!=typeof e)return r=this,this.pushStack(b(e).filter(function(){for(t=0;i>t;t++)if(b.contains(r[t],this))return!0}));for(n=[],t=0;i>t;t++)b.find(e,this[t],n);return n=this.pushStack(i>1?b.unique(n):n),n.selector=(this.selector?this.selector+" ":"")+e,n},has:function(e){var t,n=b(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(b.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e,!1))},filter:function(e){return this.pushStack(ft(this,e,!0))},is:function(e){return!!e&&("string"==typeof e?lt.test(e)?b(e,this.context).index(this[0])>=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,o=[],a=lt.test(e)||"string"!=typeof e?b(e,t||this.context):0;for(;i>r;r++){n=this[r];while(n&&n.ownerDocument&&n!==t&&11!==n.nodeType){if(a?a.index(n)>-1:b.find.matchesSelector(n,e)){o.push(n);break}n=n.parentNode}}return this.pushStack(o.length>1?b.unique(o):o)},index:function(e){return e?"string"==typeof e?b.inArray(this[0],b(e)):b.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?b(e,t):b.makeArray(e&&e.nodeType?[e]:e),r=b.merge(this.get(),n);return this.pushStack(b.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),b.fn.andSelf=b.fn.addBack;function pt(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}b.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(e,t,n){return b.dir(e,"parentNode",n)},next:function(e){return pt(e,"nextSibling")},prev:function(e){return pt(e,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(e,t,n){return b.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return b.dir(e,"previousSibling",n)},siblings:function(e){return b.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.merge([],e.childNodes)}},function(e,t){b.fn[e]=function(n,r){var i=b.map(this,t,n);return at.test(e)||(r=n),r&&"string"==typeof r&&(i=b.filter(r,i)),i=this.length>1&&!ct[e]?b.unique(i):i,this.length>1&&st.test(e)&&(i=i.reverse()),this.pushStack(i)}}),b.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),1===t.length?b.find.matchesSelector(t[0],e)?[t[0]]:[]:b.find.matches(e,t)},dir:function(e,n,r){var i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!b(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function ft(e,t,n){if(t=t||0,b.isFunction(t))return b.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return b.grep(e,function(e){return e===t===n});if("string"==typeof t){var r=b.grep(e,function(e){return 1===e.nodeType});if(ut.test(t))return b.filter(t,r,!n);t=b.filter(t,r)}return b.grep(e,function(e){return b.inArray(e,t)>=0===n})}function dt(e){var t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}var ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/ jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/<tbody/i,wt=/<|&#?\w+;/,Tt=/<(?:script|style|link)/i,Nt=/^(?:checkbox|radio)$/i,Ct=/checked\s*(?:[^=]|=\s*.checked.)/i,kt=/^$|\/(?:java|ecma)script/i,Et=/^true\/(.*)/,St=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,At={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:b.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},jt=dt(o),Dt=jt.appendChild(o.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,b.fn.extend({text:function(e){return b.access(this,function(e){return e===t?b.text(this):this.empty().append((this[0]&&this[0].ownerDocument||o).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(b.isFunction(e))return this.each(function(t){b(this).wrapAll(e.call(this,t))});if(this[0]){var t=b(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return b.isFunction(e)?this.each(function(t){b(this).wrapInner(e.call(this,t))}):this.each(function(){var t=b(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=b.isFunction(e);return this.each(function(n){b(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){b.nodeName(this,"body")||b(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&this.insertBefore(e,this.firstChild)})},before:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,!1,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=0;for(;null!=(n=this[r]);r++)(!e||b.filter(e,[n]).length>0)&&(t||1!==n.nodeType||b.cleanData(Ot(n)),n.parentNode&&(t&&b.contains(n.ownerDocument,n)&&Mt(Ot(n,"script")),n.parentNode.removeChild(n)));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&b.cleanData(Ot(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&b.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return b.clone(this,e,t)})},html:function(e){return b.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof e||Tt.test(e)||!b.support.htmlSerialize&&mt.test(e)||!b.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(b.cleanData(Ot(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){var t=b.isFunction(e);return t||"string"==typeof e||(e=b(e).not(this).detach()),this.domManip([e],!0,function(e){var t=this.nextSibling,n=this.parentNode;n&&(b(this).remove(),n.insertBefore(e,t))})},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=f.apply([],e);var i,o,a,s,u,l,c=0,p=this.length,d=this,h=p-1,g=e[0],m=b.isFunction(g);if(m||!(1>=p||"string"!=typeof g||b.support.checkClone)&&Ct.test(g))return this.each(function(i){var o=d.eq(i);m&&(e[0]=g.call(this,i,n?o.html():t)),o.domManip(e,n,r)});if(p&&(l=b.buildFragment(e,this[0].ownerDocument,!1,this),i=l.firstChild,1===l.childNodes.length&&(l=i),i)){for(n=n&&b.nodeName(i,"tr"),s=b.map(Ot(l,"script"),Ht),a=s.length;p>c;c++)o=l,c!==h&&(o=b.clone(o,!0,!0),a&&b.merge(s,Ot(o,"script"))),r.call(n&&b.nodeName(this[c],"table")?Lt(this[c],"tbody"):this[c],o,c);if(a)for(u=s[s.length-1].ownerDocument,b.map(s,qt),c=0;a>c;c++)o=s[c],kt.test(o.type||"")&&!b._data(o,"globalEval")&&b.contains(u,o)&&(o.src?b.ajax({url:o.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):b.globalEval((o.text||o.textContent||o.innerHTML||"").replace(St,"")));l=i=null}return this}});function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function Ht(e){var t=e.getAttributeNode("type");return e.type=(t&&t.specified)+"/"+e.type,e}function qt(e){var t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function Mt(e,t){var n,r=0;for(;null!=(n=e[r]);r++)b._data(n,"globalEval",!t||b._data(t[r],"globalEval"))}function _t(e,t){if(1===t.nodeType&&b.hasData(e)){var n,r,i,o=b._data(e),a=b._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)b.event.add(t,n,s[n][r])}a.data&&(a.data=b.extend({},a.data))}}function Ft(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!b.support.noCloneEvent&&t[b.expando]){i=b._data(t);for(r in i.events)b.removeEvent(t,r,i.handle);t.removeAttribute(b.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),b.support.html5Clone&&e.innerHTML&&!b.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Nt.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}b.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){b.fn[e]=function(e){var n,r=0,i=[],o=b(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),b(o[r])[t](n),d.apply(i,n.get());return this.pushStack(i)}});function Ot(e,n){var r,o,a=0,s=typeof e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||b.nodeName(o,n)?s.push(o):b.merge(s,Ot(o,n));return n===t||n&&b.nodeName(e,n)?b.merge([e],s):s}function Bt(e){Nt.test(e.type)&&(e.defaultChecked=e.checked)}b.extend({clone:function(e,t,n){var r,i,o,a,s,u=b.contains(e.ownerDocument,e);if(b.support.html5Clone||b.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(b.support.noCloneEvent&&b.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||b.isXMLDoc(e)))for(r=Ot(o),s=Ot(e),a=0;null!=(i=s[a]);++a)r[a]&&Ft(i,r[a]);if(t)if(n)for(s=s||Ot(e),r=r||Ot(o),a=0;null!=(i=s[a]);a++)_t(i,r[a]);else _t(e,o);return r=Ot(o,"script"),r.length>0&&Mt(r,!u&&Ot(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var i,o,a,s,u,l,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===b.type(o))b.merge(d,o.nodeType?[o]:o);else if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),u=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[u]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1></$2>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!b.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!b.support.tbody){o="table"!==u||xt.test(o)?"<table>"!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)b.nodeName(l=o.childNodes[i],"tbody")&&!l.childNodes.length&&o.removeChild(l)
+}b.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else d.push(t.createTextNode(o));s&&f.removeChild(s),b.support.appendChecked||b.grep(Ot(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-1===b.inArray(o,r))&&(a=b.contains(o.ownerDocument,o),s=Ot(f.appendChild(o),"script"),a&&Mt(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return s=null,f},cleanData:function(e,t){var n,r,o,a,s=0,u=b.expando,l=b.cache,p=b.support.deleteExpando,f=b.event.special;for(;null!=(n=e[s]);s++)if((t||b.acceptData(n))&&(o=n[u],a=o&&l[o])){if(a.events)for(r in a.events)f[r]?b.event.remove(n,r):b.removeEvent(n,r,a.handle);l[o]&&(delete l[o],p?delete n[u]:typeof n.removeAttribute!==i?n.removeAttribute(u):n[u]=null,c.push(o))}}});var Pt,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+x+")(.*)$","i"),Yt=RegExp("^("+x+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+x+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function tn(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in e)return t;return r}function nn(e,t){return e=t||e,"none"===b.css(e,"display")||!b.contains(e.ownerDocument,e)}function rn(e,t){var n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=b._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=b._data(r,"olddisplay",un(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&b._data(r,"olddisplay",i?n:b.css(r,"display"))));for(a=0;s>a;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}b.fn.extend({css:function(e,n){return b.access(this,function(e,n,r){var i,o,a={},s=0;if(b.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=b.css(e,n[s],!1,o);return a}return r!==t?b.style(e,n,r):b.css(e,n)},e,n,arguments.length>1)},show:function(){return rn(this,!0)},hide:function(){return rn(this)},toggle:function(e){var t="boolean"==typeof e;return this.each(function(){(t?e:nn(this))?b(this).show():b(this).hide()})}}),b.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":b.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,u=b.camelCase(n),l=e.style;if(n=b.cssProps[u]||(b.cssProps[u]=tn(l,u)),s=b.cssHooks[n]||b.cssHooks[u],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:l[n];if(a=typeof r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(b.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||b.cssNumber[u]||(r+="px"),b.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(l[n]="inherit"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{l[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,u=b.camelCase(n);return n=b.cssProps[u]||(b.cssProps[u]=tn(e.style,u)),s=b.cssHooks[n]||b.cssHooks[u],s&&"get"in s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n in Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||b.isNumeric(o)?o||0:a):a},swap:function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i}}),e.getComputedStyle?(Rt=function(t){return e.getComputedStyle(t,null)},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),u=s?s.getPropertyValue(n)||s[n]:t,l=e.style;return s&&(""!==u||b.contains(e.ownerDocument,e)||(u=b.style(e,n)),Yt.test(u)&&Ut.test(n)&&(i=l.width,o=l.minWidth,a=l.maxWidth,l.minWidth=l.maxWidth=l.width=u,u=s.width,l.width=i,l.minWidth=o,l.maxWidth=a)),u}):o.documentElement.currentStyle&&(Rt=function(e){return e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),u=s?s[n]:t,l=e.style;return null==u&&l&&l[n]&&(u=l[n]),Yt.test(u)&&!zt.test(n)&&(i=l.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),l.left="fontSize"===n?"1em":u,u=l.pixelLeft+"px",l.left=i,a&&(o.left=a)),""===u?"auto":u});function on(e,t,n){var r=Vt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=b.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=b.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=b.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=b.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=b.css(e,"border"+Zt[o]+"Width",!0,i)));return a}function sn(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=b.support.boxSizing&&"border-box"===b.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return i;r=a&&(b.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function un(e){var t=o,n=Gt[e];return n||(n=ln(e,t),"none"!==n&&n||(Pt=(Pt||b("<iframe frameborder='0' width='0' height='0'/>").css("cssText","display:block !important")).appendTo(t.documentElement),t=(Pt[0].contentWindow||Pt[0].contentDocument).document,t.write("<!doctype html><html><body>"),t.close(),n=ln(e,t),Pt.detach()),Gt[e]=n),n}function ln(e,t){var n=b(t.createElement(e)).appendTo(t.body),r=b.css(n[0],"display");return n.remove(),r}b.each(["height","width"],function(e,n){b.cssHooks[n]={get:function(e,r,i){return r?0===e.offsetWidth&&Xt.test(b.css(e,"display"))?b.swap(e,Qt,function(){return sn(e,n,i)}):sn(e,n,i):t},set:function(e,t,r){var i=r&&Rt(e);return on(e,t,r?an(e,n,r,b.support.boxSizing&&"border-box"===b.css(e,"boxSizing",!1,i),i):0)}}}),b.support.opacity||(b.cssHooks.opacity={get:function(e,t){return It.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=b.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===b.trim(o.replace($t,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=$t.test(o)?o.replace($t,i):o+" "+i)}}),b(function(){b.support.reliableMarginRight||(b.cssHooks.marginRight={get:function(e,n){return n?b.swap(e,{display:"inline-block"},Wt,[e,"marginRight"]):t}}),!b.support.pixelPosition&&b.fn.position&&b.each(["top","left"],function(e,n){b.cssHooks[n]={get:function(e,r){return r?(r=Wt(e,n),Yt.test(r)?b(e).position()[n]+"px":r):t}}})}),b.expr&&b.expr.filters&&(b.expr.filters.hidden=function(e){return 0>=e.offsetWidth&&0>=e.offsetHeight||!b.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||b.css(e,"display"))},b.expr.filters.visible=function(e){return!b.expr.filters.hidden(e)}),b.each({margin:"",padding:"",border:"Width"},function(e,t){b.cssHooks[e+t]={expand:function(n){var r=0,i={},o="string"==typeof n?n.split(" "):[n];for(;4>r;r++)i[e+Zt[r]+t]=o[r]||o[r-2]||o[0];return i}},Ut.test(e)||(b.cssHooks[e+t].set=on)});var cn=/%20/g,pn=/\[\]$/,fn=/\r?\n/g,dn=/^(?:submit|button|image|reset|file)$/i,hn=/^(?:input|select|textarea|keygen)/i;b.fn.extend({serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=b.prop(this,"elements");return e?b.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!b(this).is(":disabled")&&hn.test(this.nodeName)&&!dn.test(e)&&(this.checked||!Nt.test(e))}).map(function(e,t){var n=b(this).val();return null==n?null:b.isArray(n)?b.map(n,function(e){return{name:t.name,value:e.replace(fn,"\r\n")}}):{name:t.name,value:n.replace(fn,"\r\n")}}).get()}}),b.param=function(e,n){var r,i=[],o=function(e,t){t=b.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=b.ajaxSettings&&b.ajaxSettings.traditional),b.isArray(e)||e.jquery&&!b.isPlainObject(e))b.each(e,function(){o(this.name,this.value)});else for(r in e)gn(r,e[r],n,o);return i.join("&").replace(cn,"+")};function gn(e,t,n,r){var i;if(b.isArray(t))b.each(t,function(t,i){n||pn.test(e)?r(e,i):gn(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==b.type(t))r(e,t);else for(i in t)gn(e+"["+i+"]",t[i],n,r)}b.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){b.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),b.fn.hover=function(e,t){return this.mouseenter(e).mouseleave(t||e)};var mn,yn,vn=b.now(),bn=/\?/,xn=/#.*$/,wn=/([?&])_=[^&]*/,Tn=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Nn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Cn=/^(?:GET|HEAD)$/,kn=/^\/\//,En=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Sn=b.fn.load,An={},jn={},Dn="*/".concat("*");try{yn=a.href}catch(Ln){yn=o.createElement("a"),yn.href="",yn=yn.href}mn=En.exec(yn.toLowerCase())||[];function Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(w)||[];if(b.isFunction(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function qn(e,n,r,i){var o={},a=e===jn;function s(u){var l;return o[u]=!0,b.each(e[u]||[],function(e,u){var c=u(n,r,i);return"string"!=typeof c||a||o[c]?a?!(l=c):t:(n.dataTypes.unshift(c),s(c),!1)}),l}return s(n.dataTypes[0])||!o["*"]&&s("*")}function Mn(e,n){var r,i,o=b.ajaxSettings.flatOptions||{};for(i in n)n[i]!==t&&((o[i]?e:r||(r={}))[i]=n[i]);return r&&b.extend(!0,e,r),e}b.fn.load=function(e,n,r){if("string"!=typeof e&&Sn)return Sn.apply(this,arguments);var i,o,a,s=this,u=e.indexOf(" ");return u>=0&&(i=e.slice(u,e.length),e=e.slice(0,u)),b.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(a="POST"),s.length>0&&b.ajax({url:e,type:a,dataType:"html",data:n}).done(function(e){o=arguments,s.html(i?b("<div>").append(b.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},b.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){b.fn[t]=function(e){return this.on(t,e)}}),b.each(["get","post"],function(e,n){b[n]=function(e,r,i,o){return b.isFunction(r)&&(o=o||i,i=r,r=t),b.ajax({url:e,type:n,dataType:o,data:r,success:i})}}),b.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Nn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Dn,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?Mn(Mn(e,b.ajaxSettings),t):Mn(b.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){"object"==typeof e&&(n=e,e=t),n=n||{};var r,i,o,a,s,u,l,c,p=b.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?b(f):b.event,h=b.Deferred(),g=b.Callbacks("once memory"),m=p.statusCode||{},y={},v={},x=0,T="canceled",N={readyState:0,getResponseHeader:function(e){var t;if(2===x){if(!c){c={};while(t=Tn.exec(a))c[t[1].toLowerCase()]=t[2]}t=c[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===x?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return x||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return x||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>x)for(t in e)m[t]=[m[t],e[t]];else N.always(e[N.status]);return this},abort:function(e){var t=e||T;return l&&l.abort(t),k(0,t),this}};if(h.promise(N).complete=g.add,N.success=N.done,N.error=N.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=b.trim(p.dataType||"*").toLowerCase().match(w)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?80:443))==(mn[3]||("http:"===mn[1]?80:443)))),p.data&&p.processData&&"string"!=typeof p.data&&(p.data=b.param(p.data,p.traditional)),qn(An,p,n,N),2===x)return N;u=p.global,u&&0===b.active++&&b.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Cn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,delete p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(b.lastModified[o]&&N.setRequestHeader("If-Modified-Since",b.lastModified[o]),b.etag[o]&&N.setRequestHeader("If-None-Match",b.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&N.setRequestHeader("Content-Type",p.contentType),N.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?", "+Dn+"; q=0.01":""):p.accepts["*"]);for(i in p.headers)N.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,N,p)===!1||2===x))return N.abort();T="abort";for(i in{success:1,error:1,complete:1})N[i](p[i]);if(l=qn(jn,p,n,N)){N.readyState=1,u&&d.trigger("ajaxSend",[N,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){N.abort("timeout")},p.timeout));try{x=1,l.send(y,k)}catch(C){if(!(2>x))throw C;k(-1,C)}}else k(-1,"No Transport");function k(e,n,r,i){var c,y,v,w,T,C=n;2!==x&&(x=2,s&&clearTimeout(s),l=t,a=i||"",N.readyState=e>0?4:0,r&&(w=_n(p,N,r)),e>=200&&300>e||304===e?(p.ifModified&&(T=N.getResponseHeader("Last-Modified"),T&&(b.lastModified[o]=T),T=N.getResponseHeader("etag"),T&&(b.etag[o]=T)),204===e?(c=!0,C="nocontent"):304===e?(c=!0,C="notmodified"):(c=Fn(p,w),C=c.state,y=c.data,v=c.error,c=!v)):(v=C,(e||!C)&&(C="error",0>e&&(e=0))),N.status=e,N.statusText=(n||C)+"",c?h.resolveWith(f,[y,C,N]):h.rejectWith(f,[N,C,v]),N.statusCode(m),m=t,u&&d.trigger(c?"ajaxSuccess":"ajaxError",[N,p,c?y:v]),g.fireWith(f,[N,C]),u&&(d.trigger("ajaxComplete",[N,p]),--b.active||b.event.trigger("ajaxStop")))}return N},getScript:function(e,n){return b.get(e,t,n,"script")},getJSON:function(e,t,n){return b.get(e,t,n,"json")}});function _n(e,n,r){var i,o,a,s,u=e.contents,l=e.dataTypes,c=e.responseFields;for(s in c)s in r&&(n[c[s]]=r[s]);while("*"===l[0])l.shift(),o===t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in u)if(u[s]&&u[s].test(o)){l.unshift(s);break}if(l[0]in r)a=l[0];else{for(s in r){if(!l[0]||e.converters[s+" "+l[0]]){a=s;break}i||(i=s)}a=a||i}return a?(a!==l[0]&&l.unshift(a),r[a]):t}function Fn(e,t){var n,r,i,o,a={},s=0,u=e.dataTypes.slice(),l=u[0];if(e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u[1])for(i in e.converters)a[i.toLowerCase()]=e.converters[i];for(;r=u[++s];)if("*"!==r){if("*"!==l&&l!==r){if(i=a[l+" "+r]||a["* "+r],!i)for(n in a)if(o=n.split(" "),o[1]===r&&(i=a[l+" "+o[0]]||a["* "+o[0]])){i===!0?i=a[n]:a[n]!==!0&&(r=o[0],u.splice(s--,0,r));break}if(i!==!0)if(i&&e["throws"])t=i(t);else try{t=i(t)}catch(c){return{state:"parsererror",error:i?c:"No conversion from "+l+" to "+r}}}l=r}return{state:"success",data:t}}b.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(e){return b.globalEval(e),e}}}),b.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),b.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=o.head||b("head")[0]||o.documentElement;return{send:function(t,i){n=o.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var On=[],Bn=/(=)\?(?=&|$)|\?\?/;b.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=On.pop()||b.expando+"_"+vn++;return this[e]=!0,e}}),b.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,u=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return u||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=b.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,u?n[u]=n[u].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||b.error(o+" was not called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,On.push(o)),s&&b.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};function In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}b.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=b.ajaxSettings.xhr(),b.support.cors=!!Rn&&"withCredentials"in Rn,Rn=b.support.ajax=!!Rn,Rn&&b.ajaxTransport(function(n){if(!n.crossDomain||b.support.cors){var r;return{send:function(i,o){var a,s,u=n.xhr();if(n.username?u.open(n.type,n.url,n.async,n.username,n.password):u.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)u[s]=n.xhrFields[s];n.mimeType&&u.overrideMimeType&&u.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)u.setRequestHeader(s,i[s])}catch(l){}u.send(n.hasContent&&n.data||null),r=function(e,i){var s,l,c,p;try{if(r&&(i||4===u.readyState))if(r=t,a&&(u.onreadystatechange=b.noop,$n&&delete Pn[a]),i)4!==u.readyState&&u.abort();else{p={},s=u.status,l=u.getAllResponseHeaders(),"string"==typeof u.responseText&&(p.text=u.responseText);try{c=u.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,l)},n.async?4===u.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},b(e).unload($n)),Pn[a]=r),u.onreadystatechange=r):r()},abort:function(){r&&r(t,!0)}}}});var Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+x+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var n,r,i=this.createTween(e,t),o=Yn.exec(t),a=i.cur(),s=+a||0,u=1,l=20;if(o){if(n=+o[2],r=o[3]||(b.cssNumber[e]?"":"px"),"px"!==r&&s){s=b.css(i.elem,e,!0)||n||1;do u=u||".5",s/=u,b.style(i.elem,e,s+r);while(u!==(u=i.cur()/a)&&1!==u&&--l)}i.unit=r,i.start=s,i.end=o[1]?s+(o[1]+1)*n:n}return i}]};function Kn(){return setTimeout(function(){Xn=t}),Xn=b.now()}function Zn(e,t){b.each(t,function(t,n){var r=(Qn[t]||[]).concat(Qn["*"]),i=0,o=r.length;for(;o>i;i++)if(r[i].call(e,t,n))return})}function er(e,t,n){var r,i,o=0,a=Gn.length,s=b.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;var t=Xn||Kn(),n=Math.max(0,l.startTime+l.duration-t),r=n/l.duration||0,o=1-r,a=0,u=l.tweens.length;for(;u>a;a++)l.tweens[a].run(o);return s.notifyWith(e,[l,o,n]),1>o&&u?n:(s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:b.extend({},t),opts:b.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var r=b.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)l.tweens[n].run(1);return t?s.resolveWith(e,[l,t]):s.rejectWith(e,[l,t]),this}}),c=l.props;for(tr(c,l.opts.specialEasing);a>o;o++)if(r=Gn[o].call(l,e,c,l.opts))return r;return Zn(l,c),b.isFunction(l.opts.start)&&l.opts.start.call(e,l),b.fx.timer(b.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}function tr(e,t){var n,r,i,o,a;for(i in e)if(r=b.camelCase(i),o=t[r],n=e[i],b.isArray(n)&&(o=n[1],n=e[i]=n[0]),i!==r&&(e[r]=n,delete e[i]),a=b.cssHooks[r],a&&"expand"in a){n=a.expand(n),delete e[r];for(i in n)i in e||(e[i]=n[i],t[i]=o)}else t[r]=o}b.Animation=b.extend(er,{tweener:function(e,t){b.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}});function nr(e,t,n){var r,i,o,a,s,u,l,c,p,f=this,d=e.style,h={},g=[],m=e.nodeType&&nn(e);n.queue||(c=b._queueHooks(e,"fx"),null==c.unqueued&&(c.unqueued=0,p=c.empty.fire,c.empty.fire=function(){c.unqueued||p()}),c.unqueued++,f.always(function(){f.always(function(){c.unqueued--,b.queue(e,"fx").length||c.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[d.overflow,d.overflowX,d.overflowY],"inline"===b.css(e,"display")&&"none"===b.css(e,"float")&&(b.support.inlineBlockNeedsLayout&&"inline"!==un(e.nodeName)?d.zoom=1:d.display="inline-block")),n.overflow&&(d.overflow="hidden",b.support.shrinkWrapBlocks||f.always(function(){d.overflow=n.overflow[0],d.overflowX=n.overflow[1],d.overflowY=n.overflow[2]}));for(i in t)if(a=t[i],Vn.exec(a)){if(delete t[i],u=u||"toggle"===a,a===(m?"hide":"show"))continue;g.push(i)}if(o=g.length){s=b._data(e,"fxshow")||b._data(e,"fxshow",{}),"hidden"in s&&(m=s.hidden),u&&(s.hidden=!m),m?b(e).show():f.done(function(){b(e).hide()}),f.done(function(){var t;b._removeData(e,"fxshow");for(t in h)b.style(e,t,h[t])});for(i=0;o>i;i++)r=g[i],l=f.createTween(r,m?s[r]:0),h[r]=s[r]||b.style(e,r),r in s||(s[r]=l.start,m&&(l.end=l.start,l.start="width"===r||"height"===r?1:0))}}function rr(e,t,n,r,i){return new rr.prototype.init(e,t,n,r,i)}b.Tween=rr,rr.prototype={constructor:rr,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(b.cssNumber[n]?"":"px")},cur:function(){var e=rr.propHooks[this.prop];return e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var t,n=rr.propHooks[this.prop];return this.pos=t=this.options.duration?b.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=b.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){b.fx.step[e.prop]?b.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[b.cssProps[e.prop]]||b.cssHooks[e.prop])?b.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},b.each(["toggle","show","hide"],function(e,t){var n=b.fn[t];b.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),b.fn.extend({fadeTo:function(e,t,n,r){return this.filter(nn).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=b.isEmptyObject(e),o=b.speed(t,n,r),a=function(){var t=er(this,b.extend({},e),o);a.finish=function(){t.stop(!0)},(i||b._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=b.timers,a=b._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Jn.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&b.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=b._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=b.timers,a=r?r.length:0;for(n.finish=!0,b.queue(this,e,[]),i&&i.cur&&i.cur.finish&&i.cur.finish.call(this),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}});function ir(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}b.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){b.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),b.speed=function(e,t,n){var r=e&&"object"==typeof e?b.extend({},e):{complete:n||!n&&t||b.isFunction(e)&&e,duration:e,easing:n&&t||t&&!b.isFunction(t)&&t};return r.duration=b.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in b.fx.speeds?b.fx.speeds[r.duration]:b.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){b.isFunction(r.old)&&r.old.call(this),r.queue&&b.dequeue(this,r.queue)},r},b.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},b.timers=[],b.fx=rr.prototype.init,b.fx.tick=function(){var e,n=b.timers,r=0;for(Xn=b.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||b.fx.stop(),Xn=t},b.fx.timer=function(e){e()&&b.timers.push(e)&&b.fx.start()},b.fx.interval=13,b.fx.start=function(){Un||(Un=setInterval(b.fx.tick,b.fx.interval))},b.fx.stop=function(){clearInterval(Un),Un=null},b.fx.speeds={slow:600,fast:200,_default:400},b.fx.step={},b.expr&&b.expr.filters&&(b.expr.filters.animated=function(e){return b.grep(b.timers,function(t){return e===t.elem}).length}),b.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){b.offset.setOffset(this,e,t)});var n,r,o={top:0,left:0},a=this[0],s=a&&a.ownerDocument;if(s)return n=s.documentElement,b.contains(n,a)?(typeof a.getBoundingClientRect!==i&&(o=a.getBoundingClientRect()),r=or(s),{top:o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):o},b.offset={setOffset:function(e,t,n){var r=b.css(e,"position");"static"===r&&(e.style.position="relative");var i=b(e),o=i.offset(),a=b.css(e,"top"),s=b.css(e,"left"),u=("absolute"===r||"fixed"===r)&&b.inArray("auto",[a,s])>-1,l={},c={},p,f;u?(c=i.position(),p=c.top,f=c.left):(p=parseFloat(a)||0,f=parseFloat(s)||0),b.isFunction(t)&&(t=t.call(e,n,o)),null!=t.top&&(l.top=t.top-o.top+p),null!=t.left&&(l.left=t.left-o.left+f),"using"in t?t.using.call(e,l):i.css(l)}},b.fn.extend({position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===b.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),b.nodeName(e[0],"html")||(n=e.offset()),n.top+=b.css(e[0],"borderTopWidth",!0),n.left+=b.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-b.css(r,"marginTop",!0),left:t.left-n.left-b.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||o.documentElement;while(e&&!b.nodeName(e,"html")&&"static"===b.css(e,"position"))e=e.offsetParent;return e||o.documentElement})}}),b.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);b.fn[e]=function(i){return b.access(this,function(e,i,o){var a=or(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?b(a).scrollLeft():o,r?o:b(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}});function or(e){return b.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}b.each({Height:"height",Width:"width"},function(e,n){b.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){b.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return b.access(this,function(n,r,i){var o;return b.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?b.css(n,r,s):b.style(n,r,i,s)},n,a?i:t,a,null)}})}),e.jQuery=e.$=b,"function"==typeof define&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return b})})(window);
\ No newline at end of file
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/layui.css b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/layui.css
new file mode 100644
index 0000000..f297bf6
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/layui.css
@@ -0,0 +1,2 @@
+/** layui-v2.4.5 MIT License By https://www.layui.com */
+ .layui-inline,img{display:inline-block;vertical-align:middle}h1,h2,h3,h4,h5,h6{font-weight:400}.layui-edge,.layui-header,.layui-inline,.layui-main{position:relative}.layui-elip,.layui-form-checkbox span,.layui-form-pane .layui-form-label{text-overflow:ellipsis;white-space:nowrap}.layui-btn,.layui-edge,.layui-inline,img{vertical-align:middle}.layui-btn,.layui-disabled,.layui-icon,.layui-unselect{-webkit-user-select:none;-ms-user-select:none;-moz-user-select:none}blockquote,body,button,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,input,li,ol,p,pre,td,textarea,th,ul{margin:0;padding:0;-webkit-tap-highlight-color:rgba(0,0,0,0)}a:active,a:hover{outline:0}img{border:none}li{list-style:none}table{border-collapse:collapse;border-spacing:0}h4,h5,h6{font-size:100%}button,input,optgroup,option,select,textarea{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;outline:0}pre{white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}body{line-height:24px;font:14px Helvetica Neue,Helvetica,PingFang SC,Tahoma,Arial,sans-serif}hr{height:1px;margin:10px 0;border:0;clear:both}a{color:#333;text-decoration:none}a:hover{color:#777}a cite{font-style:normal;*cursor:pointer}.layui-border-box,.layui-border-box *{box-sizing:border-box}.layui-box,.layui-box *{box-sizing:content-box}.layui-clear{clear:both;*zoom:1}.layui-clear:after{content:'\20';clear:both;*zoom:1;display:block;height:0}.layui-inline{*display:inline;*zoom:1}.layui-edge{display:inline-block;width:0;height:0;border-width:6px;border-style:dashed;border-color:transparent;overflow:hidden}.layui-edge-top{top:-4px;border-bottom-color:#999;border-bottom-style:solid}.layui-edge-right{border-left-color:#999;border-left-style:solid}.layui-edge-bottom{top:2px;border-top-color:#999;border-top-style:solid}.layui-edge-left{border-right-color:#999;border-right-style:solid}.layui-elip{overflow:hidden}.layui-disabled,.layui-disabled:hover{color:#d2d2d2!important;cursor:not-allowed!important}.layui-circle{border-radius:100%}.layui-show{display:block!important}.layui-hide{display:none!important}@font-face{font-family:layui-icon;src:url(../font/iconfont.eot?v=240);src:url(../font/iconfont.eot?v=240#iefix) format('embedded-opentype'),url(../font/iconfont.svg?v=240#iconfont) format('svg'),url(../font/iconfont.woff?v=240) format('woff'),url(../font/iconfont.ttf?v=240) format('truetype')}.layui-icon{font-family:layui-icon!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.layui-icon-reply-fill:before{content:"\e611"}.layui-icon-set-fill:before{content:"\e614"}.layui-icon-menu-fill:before{content:"\e60f"}.layui-icon-search:before{content:"\e615"}.layui-icon-share:before{content:"\e641"}.layui-icon-set-sm:before{content:"\e620"}.layui-icon-engine:before{content:"\e628"}.layui-icon-close:before{content:"\1006"}.layui-icon-close-fill:before{content:"\1007"}.layui-icon-chart-screen:before{content:"\e629"}.layui-icon-star:before{content:"\e600"}.layui-icon-circle-dot:before{content:"\e617"}.layui-icon-chat:before{content:"\e606"}.layui-icon-release:before{content:"\e609"}.layui-icon-list:before{content:"\e60a"}.layui-icon-chart:before{content:"\e62c"}.layui-icon-ok-circle:before{content:"\1005"}.layui-icon-layim-theme:before{content:"\e61b"}.layui-icon-table:before{content:"\e62d"}.layui-icon-right:before{content:"\e602"}.layui-icon-left:before{content:"\e603"}.layui-icon-cart-simple:before{content:"\e698"}.layui-icon-face-cry:before{content:"\e69c"}.layui-icon-face-smile:before{content:"\e6af"}.layui-icon-survey:before{content:"\e6b2"}.layui-icon-tree:before{content:"\e62e"}.layui-icon-upload-circle:before{content:"\e62f"}.layui-icon-add-circle:before{content:"\e61f"}.layui-icon-download-circle:before{content:"\e601"}.layui-icon-templeate-1:before{content:"\e630"}.layui-icon-util:before{content:"\e631"}.layui-icon-face-surprised:before{content:"\e664"}.layui-icon-edit:before{content:"\e642"}.layui-icon-speaker:before{content:"\e645"}.layui-icon-down:before{content:"\e61a"}.layui-icon-file:before{content:"\e621"}.layui-icon-layouts:before{content:"\e632"}.layui-icon-rate-half:before{content:"\e6c9"}.layui-icon-add-circle-fine:before{content:"\e608"}.layui-icon-prev-circle:before{content:"\e633"}.layui-icon-read:before{content:"\e705"}.layui-icon-404:before{content:"\e61c"}.layui-icon-carousel:before{content:"\e634"}.layui-icon-help:before{content:"\e607"}.layui-icon-code-circle:before{content:"\e635"}.layui-icon-water:before{content:"\e636"}.layui-icon-username:before{content:"\e66f"}.layui-icon-find-fill:before{content:"\e670"}.layui-icon-about:before{content:"\e60b"}.layui-icon-location:before{content:"\e715"}.layui-icon-up:before{content:"\e619"}.layui-icon-pause:before{content:"\e651"}.layui-icon-date:before{content:"\e637"}.layui-icon-layim-uploadfile:before{content:"\e61d"}.layui-icon-delete:before{content:"\e640"}.layui-icon-play:before{content:"\e652"}.layui-icon-top:before{content:"\e604"}.layui-icon-friends:before{content:"\e612"}.layui-icon-refresh-3:before{content:"\e9aa"}.layui-icon-ok:before{content:"\e605"}.layui-icon-layer:before{content:"\e638"}.layui-icon-face-smile-fine:before{content:"\e60c"}.layui-icon-dollar:before{content:"\e659"}.layui-icon-group:before{content:"\e613"}.layui-icon-layim-download:before{content:"\e61e"}.layui-icon-picture-fine:before{content:"\e60d"}.layui-icon-link:before{content:"\e64c"}.layui-icon-diamond:before{content:"\e735"}.layui-icon-log:before{content:"\e60e"}.layui-icon-rate-solid:before{content:"\e67a"}.layui-icon-fonts-del:before{content:"\e64f"}.layui-icon-unlink:before{content:"\e64d"}.layui-icon-fonts-clear:before{content:"\e639"}.layui-icon-triangle-r:before{content:"\e623"}.layui-icon-circle:before{content:"\e63f"}.layui-icon-radio:before{content:"\e643"}.layui-icon-align-center:before{content:"\e647"}.layui-icon-align-right:before{content:"\e648"}.layui-icon-align-left:before{content:"\e649"}.layui-icon-loading-1:before{content:"\e63e"}.layui-icon-return:before{content:"\e65c"}.layui-icon-fonts-strong:before{content:"\e62b"}.layui-icon-upload:before{content:"\e67c"}.layui-icon-dialogue:before{content:"\e63a"}.layui-icon-video:before{content:"\e6ed"}.layui-icon-headset:before{content:"\e6fc"}.layui-icon-cellphone-fine:before{content:"\e63b"}.layui-icon-add-1:before{content:"\e654"}.layui-icon-face-smile-b:before{content:"\e650"}.layui-icon-fonts-html:before{content:"\e64b"}.layui-icon-form:before{content:"\e63c"}.layui-icon-cart:before{content:"\e657"}.layui-icon-camera-fill:before{content:"\e65d"}.layui-icon-tabs:before{content:"\e62a"}.layui-icon-fonts-code:before{content:"\e64e"}.layui-icon-fire:before{content:"\e756"}.layui-icon-set:before{content:"\e716"}.layui-icon-fonts-u:before{content:"\e646"}.layui-icon-triangle-d:before{content:"\e625"}.layui-icon-tips:before{content:"\e702"}.layui-icon-picture:before{content:"\e64a"}.layui-icon-more-vertical:before{content:"\e671"}.layui-icon-flag:before{content:"\e66c"}.layui-icon-loading:before{content:"\e63d"}.layui-icon-fonts-i:before{content:"\e644"}.layui-icon-refresh-1:before{content:"\e666"}.layui-icon-rmb:before{content:"\e65e"}.layui-icon-home:before{content:"\e68e"}.layui-icon-user:before{content:"\e770"}.layui-icon-notice:before{content:"\e667"}.layui-icon-login-weibo:before{content:"\e675"}.layui-icon-voice:before{content:"\e688"}.layui-icon-upload-drag:before{content:"\e681"}.layui-icon-login-qq:before{content:"\e676"}.layui-icon-snowflake:before{content:"\e6b1"}.layui-icon-file-b:before{content:"\e655"}.layui-icon-template:before{content:"\e663"}.layui-icon-auz:before{content:"\e672"}.layui-icon-console:before{content:"\e665"}.layui-icon-app:before{content:"\e653"}.layui-icon-prev:before{content:"\e65a"}.layui-icon-website:before{content:"\e7ae"}.layui-icon-next:before{content:"\e65b"}.layui-icon-component:before{content:"\e857"}.layui-icon-more:before{content:"\e65f"}.layui-icon-login-wechat:before{content:"\e677"}.layui-icon-shrink-right:before{content:"\e668"}.layui-icon-spread-left:before{content:"\e66b"}.layui-icon-camera:before{content:"\e660"}.layui-icon-note:before{content:"\e66e"}.layui-icon-refresh:before{content:"\e669"}.layui-icon-female:before{content:"\e661"}.layui-icon-male:before{content:"\e662"}.layui-icon-password:before{content:"\e673"}.layui-icon-senior:before{content:"\e674"}.layui-icon-theme:before{content:"\e66a"}.layui-icon-tread:before{content:"\e6c5"}.layui-icon-praise:before{content:"\e6c6"}.layui-icon-star-fill:before{content:"\e658"}.layui-icon-rate:before{content:"\e67b"}.layui-icon-template-1:before{content:"\e656"}.layui-icon-vercode:before{content:"\e679"}.layui-icon-cellphone:before{content:"\e678"}.layui-icon-screen-full:before{content:"\e622"}.layui-icon-screen-restore:before{content:"\e758"}.layui-icon-cols:before{content:"\e610"}.layui-icon-export:before{content:"\e67d"}.layui-icon-print:before{content:"\e66d"}.layui-icon-slider:before{content:"\e714"}.layui-main{width:1140px;margin:0 auto}.layui-header{z-index:1000;height:60px}.layui-header a:hover{transition:all .5s;-webkit-transition:all .5s}.layui-side{position:fixed;left:0;top:0;bottom:0;z-index:999;width:200px;overflow-x:hidden}.layui-side-scroll{position:relative;width:220px;height:100%;overflow-x:hidden}.layui-body{position:absolute;left:200px;right:0;top:0;bottom:0;z-index:998;width:auto;overflow:hidden;overflow-y:auto;box-sizing:border-box}.layui-layout-body{overflow:hidden}.layui-layout-admin .layui-header{background-color:#23262E}.layui-layout-admin .layui-side{top:60px;width:200px;overflow-x:hidden}.layui-layout-admin .layui-body{top:60px;bottom:44px}.layui-layout-admin .layui-main{width:auto;margin:0 15px}.layui-layout-admin .layui-footer{position:fixed;left:200px;right:0;bottom:0;height:44px;line-height:44px;padding:0 15px;background-color:#eee}.layui-layout-admin .layui-logo{position:absolute;left:0;top:0;width:200px;height:100%;line-height:60px;text-align:center;color:#009688;font-size:16px}.layui-layout-admin .layui-header .layui-nav{background:0 0}.layui-layout-left{position:absolute!important;left:200px;top:0}.layui-layout-right{position:absolute!important;right:0;top:0}.layui-container{position:relative;margin:0 auto;padding:0 15px;box-sizing:border-box}.layui-fluid{position:relative;margin:0 auto;padding:0 15px}.layui-row:after,.layui-row:before{content:'';display:block;clear:both}.layui-col-lg1,.layui-col-lg10,.layui-col-lg11,.layui-col-lg12,.layui-col-lg2,.layui-col-lg3,.layui-col-lg4,.layui-col-lg5,.layui-col-lg6,.layui-col-lg7,.layui-col-lg8,.layui-col-lg9,.layui-col-md1,.layui-col-md10,.layui-col-md11,.layui-col-md12,.layui-col-md2,.layui-col-md3,.layui-col-md4,.layui-col-md5,.layui-col-md6,.layui-col-md7,.layui-col-md8,.layui-col-md9,.layui-col-sm1,.layui-col-sm10,.layui-col-sm11,.layui-col-sm12,.layui-col-sm2,.layui-col-sm3,.layui-col-sm4,.layui-col-sm5,.layui-col-sm6,.layui-col-sm7,.layui-col-sm8,.layui-col-sm9,.layui-col-xs1,.layui-col-xs10,.layui-col-xs11,.layui-col-xs12,.layui-col-xs2,.layui-col-xs3,.layui-col-xs4,.layui-col-xs5,.layui-col-xs6,.layui-col-xs7,.layui-col-xs8,.layui-col-xs9{position:relative;display:block;box-sizing:border-box}.layui-col-xs1,.layui-col-xs10,.layui-col-xs11,.layui-col-xs12,.layui-col-xs2,.layui-col-xs3,.layui-col-xs4,.layui-col-xs5,.layui-col-xs6,.layui-col-xs7,.layui-col-xs8,.layui-col-xs9{float:left}.layui-col-xs1{width:8.33333333%}.layui-col-xs2{width:16.66666667%}.layui-col-xs3{width:25%}.layui-col-xs4{width:33.33333333%}.layui-col-xs5{width:41.66666667%}.layui-col-xs6{width:50%}.layui-col-xs7{width:58.33333333%}.layui-col-xs8{width:66.66666667%}.layui-col-xs9{width:75%}.layui-col-xs10{width:83.33333333%}.layui-col-xs11{width:91.66666667%}.layui-col-xs12{width:100%}.layui-col-xs-offset1{margin-left:8.33333333%}.layui-col-xs-offset2{margin-left:16.66666667%}.layui-col-xs-offset3{margin-left:25%}.layui-col-xs-offset4{margin-left:33.33333333%}.layui-col-xs-offset5{margin-left:41.66666667%}.layui-col-xs-offset6{margin-left:50%}.layui-col-xs-offset7{margin-left:58.33333333%}.layui-col-xs-offset8{margin-left:66.66666667%}.layui-col-xs-offset9{margin-left:75%}.layui-col-xs-offset10{margin-left:83.33333333%}.layui-col-xs-offset11{margin-left:91.66666667%}.layui-col-xs-offset12{margin-left:100%}@media screen and (max-width:768px){.layui-hide-xs{display:none!important}.layui-show-xs-block{display:block!important}.layui-show-xs-inline{display:inline!important}.layui-show-xs-inline-block{display:inline-block!important}}@media screen and (min-width:768px){.layui-container{width:750px}.layui-hide-sm{display:none!important}.layui-show-sm-block{display:block!important}.layui-show-sm-inline{display:inline!important}.layui-show-sm-inline-block{display:inline-block!important}.layui-col-sm1,.layui-col-sm10,.layui-col-sm11,.layui-col-sm12,.layui-col-sm2,.layui-col-sm3,.layui-col-sm4,.layui-col-sm5,.layui-col-sm6,.layui-col-sm7,.layui-col-sm8,.layui-col-sm9{float:left}.layui-col-sm1{width:8.33333333%}.layui-col-sm2{width:16.66666667%}.layui-col-sm3{width:25%}.layui-col-sm4{width:33.33333333%}.layui-col-sm5{width:41.66666667%}.layui-col-sm6{width:50%}.layui-col-sm7{width:58.33333333%}.layui-col-sm8{width:66.66666667%}.layui-col-sm9{width:75%}.layui-col-sm10{width:83.33333333%}.layui-col-sm11{width:91.66666667%}.layui-col-sm12{width:100%}.layui-col-sm-offset1{margin-left:8.33333333%}.layui-col-sm-offset2{margin-left:16.66666667%}.layui-col-sm-offset3{margin-left:25%}.layui-col-sm-offset4{margin-left:33.33333333%}.layui-col-sm-offset5{margin-left:41.66666667%}.layui-col-sm-offset6{margin-left:50%}.layui-col-sm-offset7{margin-left:58.33333333%}.layui-col-sm-offset8{margin-left:66.66666667%}.layui-col-sm-offset9{margin-left:75%}.layui-col-sm-offset10{margin-left:83.33333333%}.layui-col-sm-offset11{margin-left:91.66666667%}.layui-col-sm-offset12{margin-left:100%}}@media screen and (min-width:992px){.layui-container{width:970px}.layui-hide-md{display:none!important}.layui-show-md-block{display:block!important}.layui-show-md-inline{display:inline!important}.layui-show-md-inline-block{display:inline-block!important}.layui-col-md1,.layui-col-md10,.layui-col-md11,.layui-col-md12,.layui-col-md2,.layui-col-md3,.layui-col-md4,.layui-col-md5,.layui-col-md6,.layui-col-md7,.layui-col-md8,.layui-col-md9{float:left}.layui-col-md1{width:8.33333333%}.layui-col-md2{width:16.66666667%}.layui-col-md3{width:25%}.layui-col-md4{width:33.33333333%}.layui-col-md5{width:41.66666667%}.layui-col-md6{width:50%}.layui-col-md7{width:58.33333333%}.layui-col-md8{width:66.66666667%}.layui-col-md9{width:75%}.layui-col-md10{width:83.33333333%}.layui-col-md11{width:91.66666667%}.layui-col-md12{width:100%}.layui-col-md-offset1{margin-left:8.33333333%}.layui-col-md-offset2{margin-left:16.66666667%}.layui-col-md-offset3{margin-left:25%}.layui-col-md-offset4{margin-left:33.33333333%}.layui-col-md-offset5{margin-left:41.66666667%}.layui-col-md-offset6{margin-left:50%}.layui-col-md-offset7{margin-left:58.33333333%}.layui-col-md-offset8{margin-left:66.66666667%}.layui-col-md-offset9{margin-left:75%}.layui-col-md-offset10{margin-left:83.33333333%}.layui-col-md-offset11{margin-left:91.66666667%}.layui-col-md-offset12{margin-left:100%}}@media screen and (min-width:1200px){.layui-container{width:1170px}.layui-hide-lg{display:none!important}.layui-show-lg-block{display:block!important}.layui-show-lg-inline{display:inline!important}.layui-show-lg-inline-block{display:inline-block!important}.layui-col-lg1,.layui-col-lg10,.layui-col-lg11,.layui-col-lg12,.layui-col-lg2,.layui-col-lg3,.layui-col-lg4,.layui-col-lg5,.layui-col-lg6,.layui-col-lg7,.layui-col-lg8,.layui-col-lg9{float:left}.layui-col-lg1{width:8.33333333%}.layui-col-lg2{width:16.66666667%}.layui-col-lg3{width:25%}.layui-col-lg4{width:33.33333333%}.layui-col-lg5{width:41.66666667%}.layui-col-lg6{width:50%}.layui-col-lg7{width:58.33333333%}.layui-col-lg8{width:66.66666667%}.layui-col-lg9{width:75%}.layui-col-lg10{width:83.33333333%}.layui-col-lg11{width:91.66666667%}.layui-col-lg12{width:100%}.layui-col-lg-offset1{margin-left:8.33333333%}.layui-col-lg-offset2{margin-left:16.66666667%}.layui-col-lg-offset3{margin-left:25%}.layui-col-lg-offset4{margin-left:33.33333333%}.layui-col-lg-offset5{margin-left:41.66666667%}.layui-col-lg-offset6{margin-left:50%}.layui-col-lg-offset7{margin-left:58.33333333%}.layui-col-lg-offset8{margin-left:66.66666667%}.layui-col-lg-offset9{margin-left:75%}.layui-col-lg-offset10{margin-left:83.33333333%}.layui-col-lg-offset11{margin-left:91.66666667%}.layui-col-lg-offset12{margin-left:100%}}.layui-col-space1{margin:-.5px}.layui-col-space1>*{padding:.5px}.layui-col-space3{margin:-1.5px}.layui-col-space3>*{padding:1.5px}.layui-col-space5{margin:-2.5px}.layui-col-space5>*{padding:2.5px}.layui-col-space8{margin:-3.5px}.layui-col-space8>*{padding:3.5px}.layui-col-space10{margin:-5px}.layui-col-space10>*{padding:5px}.layui-col-space12{margin:-6px}.layui-col-space12>*{padding:6px}.layui-col-space15{margin:-7.5px}.layui-col-space15>*{padding:7.5px}.layui-col-space18{margin:-9px}.layui-col-space18>*{padding:9px}.layui-col-space20{margin:-10px}.layui-col-space20>*{padding:10px}.layui-col-space22{margin:-11px}.layui-col-space22>*{padding:11px}.layui-col-space25{margin:-12.5px}.layui-col-space25>*{padding:12.5px}.layui-col-space30{margin:-15px}.layui-col-space30>*{padding:15px}.layui-btn,.layui-input,.layui-select,.layui-textarea,.layui-upload-button{outline:0;-webkit-appearance:none;transition:all .3s;-webkit-transition:all .3s;box-sizing:border-box}.layui-elem-quote{margin-bottom:10px;padding:15px;line-height:22px;border-left:5px solid #009688;border-radius:0 2px 2px 0;background-color:#f2f2f2}.layui-quote-nm{border-style:solid;border-width:1px 1px 1px 5px;background:0 0}.layui-elem-field{margin-bottom:10px;padding:0;border-width:1px;border-style:solid}.layui-elem-field legend{margin-left:20px;padding:0 10px;font-size:20px;font-weight:300}.layui-field-title{margin:10px 0 20px;border-width:1px 0 0}.layui-field-box{padding:10px 15px}.layui-field-title .layui-field-box{padding:10px 0}.layui-progress{position:relative;height:6px;border-radius:20px;background-color:#e2e2e2}.layui-progress-bar{position:absolute;left:0;top:0;width:0;max-width:100%;height:6px;border-radius:20px;text-align:right;background-color:#5FB878;transition:all .3s;-webkit-transition:all .3s}.layui-progress-big,.layui-progress-big .layui-progress-bar{height:18px;line-height:18px}.layui-progress-text{position:relative;top:-20px;line-height:18px;font-size:12px;color:#666}.layui-progress-big .layui-progress-text{position:static;padding:0 10px;color:#fff}.layui-collapse{border-width:1px;border-style:solid;border-radius:2px}.layui-colla-content,.layui-colla-item{border-top-width:1px;border-top-style:solid}.layui-colla-item:first-child{border-top:none}.layui-colla-title{position:relative;height:42px;line-height:42px;padding:0 15px 0 35px;color:#333;background-color:#f2f2f2;cursor:pointer;font-size:14px;overflow:hidden}.layui-colla-content{display:none;padding:10px 15px;line-height:22px;color:#666}.layui-colla-icon{position:absolute;left:15px;top:0;font-size:14px}.layui-card{margin-bottom:15px;border-radius:2px;background-color:#fff;box-shadow:0 1px 2px 0 rgba(0,0,0,.05)}.layui-card:last-child{margin-bottom:0}.layui-card-header{position:relative;height:42px;line-height:42px;padding:0 15px;border-bottom:1px solid #f6f6f6;color:#333;border-radius:2px 2px 0 0;font-size:14px}.layui-bg-black,.layui-bg-blue,.layui-bg-cyan,.layui-bg-green,.layui-bg-orange,.layui-bg-red{color:#fff!important}.layui-card-body{position:relative;padding:10px 15px;line-height:24px}.layui-card-body[pad15]{padding:15px}.layui-card-body[pad20]{padding:20px}.layui-card-body .layui-table{margin:5px 0}.layui-card .layui-tab{margin:0}.layui-panel-window{position:relative;padding:15px;border-radius:0;border-top:5px solid #E6E6E6;background-color:#fff}.layui-auxiliar-moving{position:fixed;left:0;right:0;top:0;bottom:0;width:100%;height:100%;background:0 0;z-index:9999999999}.layui-form-label,.layui-form-mid,.layui-form-select,.layui-input-block,.layui-input-inline,.layui-textarea{position:relative}.layui-bg-red{background-color:#FF5722!important}.layui-bg-orange{background-color:#FFB800!important}.layui-bg-green{background-color:#009688!important}.layui-bg-cyan{background-color:#2F4056!important}.layui-bg-blue{background-color:#1E9FFF!important}.layui-bg-black{background-color:#393D49!important}.layui-bg-gray{background-color:#eee!important;color:#666!important}.layui-badge-rim,.layui-colla-content,.layui-colla-item,.layui-collapse,.layui-elem-field,.layui-form-pane .layui-form-item[pane],.layui-form-pane .layui-form-label,.layui-input,.layui-layedit,.layui-layedit-tool,.layui-quote-nm,.layui-select,.layui-tab-bar,.layui-tab-card,.layui-tab-title,.layui-tab-title .layui-this:after,.layui-textarea{border-color:#e6e6e6}.layui-timeline-item:before,hr{background-color:#e6e6e6}.layui-text{line-height:22px;font-size:14px;color:#666}.layui-text h1,.layui-text h2,.layui-text h3{font-weight:500;color:#333}.layui-text h1{font-size:30px}.layui-text h2{font-size:24px}.layui-text h3{font-size:18px}.layui-text a:not(.layui-btn){color:#01AAED}.layui-text a:not(.layui-btn):hover{text-decoration:underline}.layui-text ul{padding:5px 0 5px 15px}.layui-text ul li{margin-top:5px;list-style-type:disc}.layui-text em,.layui-word-aux{color:#999!important;padding:0 5px!important}.layui-btn{display:inline-block;height:38px;line-height:38px;padding:0 18px;background-color:#009688;color:#fff;white-space:nowrap;text-align:center;font-size:14px;border:none;border-radius:2px;cursor:pointer}.layui-btn:hover{opacity:.8;filter:alpha(opacity=80);color:#fff}.layui-btn:active{opacity:1;filter:alpha(opacity=100)}.layui-btn+.layui-btn{margin-left:10px}.layui-btn-container{font-size:0}.layui-btn-container .layui-btn{margin-right:10px;margin-bottom:10px}.layui-btn-container .layui-btn+.layui-btn{margin-left:0}.layui-table .layui-btn-container .layui-btn{margin-bottom:9px}.layui-btn-radius{border-radius:100px}.layui-btn .layui-icon{margin-right:3px;font-size:18px;vertical-align:bottom;vertical-align:middle\9}.layui-btn-primary{border:1px solid #C9C9C9;background-color:#fff;color:#555}.layui-btn-primary:hover{border-color:#009688;color:#333}.layui-btn-normal{background-color:#1E9FFF}.layui-btn-warm{background-color:#FFB800}.layui-btn-danger{background-color:#FF5722}.layui-btn-disabled,.layui-btn-disabled:active,.layui-btn-disabled:hover{border:1px solid #e6e6e6;background-color:#FBFBFB;color:#C9C9C9;cursor:not-allowed;opacity:1}.layui-btn-lg{height:44px;line-height:44px;padding:0 25px;font-size:16px}.layui-btn-sm{height:30px;line-height:30px;padding:0 10px;font-size:12px}.layui-btn-sm i{font-size:16px!important}.layui-btn-xs{height:22px;line-height:22px;padding:0 5px;font-size:12px}.layui-btn-xs i{font-size:14px!important}.layui-btn-group{display:inline-block;vertical-align:middle;font-size:0}.layui-btn-group .layui-btn{margin-left:0!important;margin-right:0!important;border-left:1px solid rgba(255,255,255,.5);border-radius:0}.layui-btn-group .layui-btn-primary{border-left:none}.layui-btn-group .layui-btn-primary:hover{border-color:#C9C9C9;color:#009688}.layui-btn-group .layui-btn:first-child{border-left:none;border-radius:2px 0 0 2px}.layui-btn-group .layui-btn-primary:first-child{border-left:1px solid #c9c9c9}.layui-btn-group .layui-btn:last-child{border-radius:0 2px 2px 0}.layui-btn-group .layui-btn+.layui-btn{margin-left:0}.layui-btn-group+.layui-btn-group{margin-left:10px}.layui-btn-fluid{width:100%}.layui-input,.layui-select,.layui-textarea{height:38px;line-height:1.3;line-height:38px\9;border-width:1px;border-style:solid;background-color:#fff;border-radius:2px}.layui-input::-webkit-input-placeholder,.layui-select::-webkit-input-placeholder,.layui-textarea::-webkit-input-placeholder{line-height:1.3}.layui-input,.layui-textarea{display:block;width:100%;padding-left:10px}.layui-input:hover,.layui-textarea:hover{border-color:#D2D2D2!important}.layui-input:focus,.layui-textarea:focus{border-color:#C9C9C9!important}.layui-textarea{min-height:100px;height:auto;line-height:20px;padding:6px 10px;resize:vertical}.layui-select{padding:0 10px}.layui-form input[type=checkbox],.layui-form input[type=radio],.layui-form select{display:none}.layui-form [lay-ignore]{display:initial}.layui-form-item{margin-bottom:15px;clear:both;*zoom:1}.layui-form-item:after{content:'\20';clear:both;*zoom:1;display:block;height:0}.layui-form-label{float:left;display:block;padding:9px 15px;width:80px;font-weight:400;line-height:20px;text-align:right}.layui-form-label-col{display:block;float:none;padding:9px 0;line-height:20px;text-align:left}.layui-form-item .layui-inline{margin-bottom:5px;margin-right:10px}.layui-input-block{margin-left:110px;min-height:36px}.layui-input-inline{display:inline-block;vertical-align:middle}.layui-form-item .layui-input-inline{float:left;width:190px;margin-right:10px}.layui-form-text .layui-input-inline{width:auto}.layui-form-mid{float:left;display:block;padding:9px 0!important;line-height:20px;margin-right:10px}.layui-form-danger+.layui-form-select .layui-input,.layui-form-danger:focus{border-color:#FF5722!important}.layui-form-select .layui-input{padding-right:30px;cursor:pointer}.layui-form-select .layui-edge{position:absolute;right:10px;top:50%;margin-top:-3px;cursor:pointer;border-width:6px;border-top-color:#c2c2c2;border-top-style:solid;transition:all .3s;-webkit-transition:all .3s}.layui-form-select dl{display:none;position:absolute;left:0;top:42px;padding:5px 0;z-index:899;min-width:100%;border:1px solid #d2d2d2;max-height:300px;overflow-y:auto;background-color:#fff;border-radius:2px;box-shadow:0 2px 4px rgba(0,0,0,.12);box-sizing:border-box}.layui-form-select dl dd,.layui-form-select dl dt{padding:0 10px;line-height:36px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layui-form-select dl dt{font-size:12px;color:#999}.layui-form-select dl dd{cursor:pointer}.layui-form-select dl dd:hover{background-color:#f2f2f2;-webkit-transition:.5s all;transition:.5s all}.layui-form-select .layui-select-group dd{padding-left:20px}.layui-form-select dl dd.layui-select-tips{padding-left:10px!important;color:#999}.layui-form-select dl dd.layui-this{background-color:#5FB878;color:#fff}.layui-form-checkbox,.layui-form-select dl dd.layui-disabled{background-color:#fff}.layui-form-selected dl{display:block}.layui-form-checkbox,.layui-form-checkbox *,.layui-form-switch{display:inline-block;vertical-align:middle}.layui-form-selected .layui-edge{margin-top:-9px;-webkit-transform:rotate(180deg);transform:rotate(180deg);margin-top:-3px\9}:root .layui-form-selected .layui-edge{margin-top:-9px\0/IE9}.layui-form-selectup dl{top:auto;bottom:42px}.layui-select-none{margin:5px 0;text-align:center;color:#999}.layui-select-disabled .layui-disabled{border-color:#eee!important}.layui-select-disabled .layui-edge{border-top-color:#d2d2d2}.layui-form-checkbox{position:relative;height:30px;line-height:30px;margin-right:10px;padding-right:30px;cursor:pointer;font-size:0;-webkit-transition:.1s linear;transition:.1s linear;box-sizing:border-box}.layui-form-checkbox span{padding:0 10px;height:100%;font-size:14px;border-radius:2px 0 0 2px;background-color:#d2d2d2;color:#fff;overflow:hidden}.layui-form-checkbox:hover span{background-color:#c2c2c2}.layui-form-checkbox i{position:absolute;right:0;top:0;width:30px;height:28px;border:1px solid #d2d2d2;border-left:none;border-radius:0 2px 2px 0;color:#fff;font-size:20px;text-align:center}.layui-form-checkbox:hover i{border-color:#c2c2c2;color:#c2c2c2}.layui-form-checked,.layui-form-checked:hover{border-color:#5FB878}.layui-form-checked span,.layui-form-checked:hover span{background-color:#5FB878}.layui-form-checked i,.layui-form-checked:hover i{color:#5FB878}.layui-form-item .layui-form-checkbox{margin-top:4px}.layui-form-checkbox[lay-skin=primary]{height:auto!important;line-height:normal!important;min-width:18px;min-height:18px;border:none!important;margin-right:0;padding-left:28px;padding-right:0;background:0 0}.layui-form-checkbox[lay-skin=primary] span{padding-left:0;padding-right:15px;line-height:18px;background:0 0;color:#666}.layui-form-checkbox[lay-skin=primary] i{right:auto;left:0;width:16px;height:16px;line-height:16px;border:1px solid #d2d2d2;font-size:12px;border-radius:2px;background-color:#fff;-webkit-transition:.1s linear;transition:.1s linear}.layui-form-checkbox[lay-skin=primary]:hover i{border-color:#5FB878;color:#fff}.layui-form-checked[lay-skin=primary] i{border-color:#5FB878;background-color:#5FB878;color:#fff}.layui-checkbox-disbaled[lay-skin=primary] span{background:0 0!important;color:#c2c2c2}.layui-checkbox-disbaled[lay-skin=primary]:hover i{border-color:#d2d2d2}.layui-form-item .layui-form-checkbox[lay-skin=primary]{margin-top:10px}.layui-form-switch{position:relative;height:22px;line-height:22px;min-width:35px;padding:0 5px;margin-top:8px;border:1px solid #d2d2d2;border-radius:20px;cursor:pointer;background-color:#fff;-webkit-transition:.1s linear;transition:.1s linear}.layui-form-switch i{position:absolute;left:5px;top:3px;width:16px;height:16px;border-radius:20px;background-color:#d2d2d2;-webkit-transition:.1s linear;transition:.1s linear}.layui-form-switch em{position:relative;top:0;width:25px;margin-left:21px;padding:0!important;text-align:center!important;color:#999!important;font-style:normal!important;font-size:12px}.layui-form-onswitch{border-color:#5FB878;background-color:#5FB878}.layui-checkbox-disbaled,.layui-checkbox-disbaled i{border-color:#e2e2e2!important}.layui-form-onswitch i{left:100%;margin-left:-21px;background-color:#fff}.layui-form-onswitch em{margin-left:5px;margin-right:21px;color:#fff!important}.layui-checkbox-disbaled span{background-color:#e2e2e2!important}.layui-checkbox-disbaled:hover i{color:#fff!important}[lay-radio]{display:none}.layui-form-radio,.layui-form-radio *{display:inline-block;vertical-align:middle}.layui-form-radio{line-height:28px;margin:6px 10px 0 0;padding-right:10px;cursor:pointer;font-size:0}.layui-form-radio *{font-size:14px}.layui-form-radio>i{margin-right:8px;font-size:22px;color:#c2c2c2}.layui-form-radio>i:hover,.layui-form-radioed>i{color:#5FB878}.layui-radio-disbaled>i{color:#e2e2e2!important}.layui-form-pane .layui-form-label{width:110px;padding:8px 15px;height:38px;line-height:20px;border-width:1px;border-style:solid;border-radius:2px 0 0 2px;text-align:center;background-color:#FBFBFB;overflow:hidden;box-sizing:border-box}.layui-form-pane .layui-input-inline{margin-left:-1px}.layui-form-pane .layui-input-block{margin-left:110px;left:-1px}.layui-form-pane .layui-input{border-radius:0 2px 2px 0}.layui-form-pane .layui-form-text .layui-form-label{float:none;width:100%;border-radius:2px;box-sizing:border-box;text-align:left}.layui-form-pane .layui-form-text .layui-input-inline{display:block;margin:0;top:-1px;clear:both}.layui-form-pane .layui-form-text .layui-input-block{margin:0;left:0;top:-1px}.layui-form-pane .layui-form-text .layui-textarea{min-height:100px;border-radius:0 0 2px 2px}.layui-form-pane .layui-form-checkbox{margin:4px 0 4px 10px}.layui-form-pane .layui-form-radio,.layui-form-pane .layui-form-switch{margin-top:6px;margin-left:10px}.layui-form-pane .layui-form-item[pane]{position:relative;border-width:1px;border-style:solid}.layui-form-pane .layui-form-item[pane] .layui-form-label{position:absolute;left:0;top:0;height:100%;border-width:0 1px 0 0}.layui-form-pane .layui-form-item[pane] .layui-input-inline{margin-left:110px}@media screen and (max-width:450px){.layui-form-item .layui-form-label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layui-form-item .layui-inline{display:block;margin-right:0;margin-bottom:20px;clear:both}.layui-form-item .layui-inline:after{content:'\20';clear:both;display:block;height:0}.layui-form-item .layui-input-inline{display:block;float:none;left:-3px;width:auto;margin:0 0 10px 112px}.layui-form-item .layui-input-inline+.layui-form-mid{margin-left:110px;top:-5px;padding:0}.layui-form-item .layui-form-checkbox{margin-right:5px;margin-bottom:5px}}.layui-layedit{border-width:1px;border-style:solid;border-radius:2px}.layui-layedit-tool{padding:3px 5px;border-bottom-width:1px;border-bottom-style:solid;font-size:0}.layedit-tool-fixed{position:fixed;top:0;border-top:1px solid #e2e2e2}.layui-layedit-tool .layedit-tool-mid,.layui-layedit-tool .layui-icon{display:inline-block;vertical-align:middle;text-align:center;font-size:14px}.layui-layedit-tool .layui-icon{position:relative;width:32px;height:30px;line-height:30px;margin:3px 5px;color:#777;cursor:pointer;border-radius:2px}.layui-layedit-tool .layui-icon:hover{color:#393D49}.layui-layedit-tool .layui-icon:active{color:#000}.layui-layedit-tool .layedit-tool-active{background-color:#e2e2e2;color:#000}.layui-layedit-tool .layui-disabled,.layui-layedit-tool .layui-disabled:hover{color:#d2d2d2;cursor:not-allowed}.layui-layedit-tool .layedit-tool-mid{width:1px;height:18px;margin:0 10px;background-color:#d2d2d2}.layedit-tool-html{width:50px!important;font-size:30px!important}.layedit-tool-b,.layedit-tool-code,.layedit-tool-help{font-size:16px!important}.layedit-tool-d,.layedit-tool-face,.layedit-tool-image,.layedit-tool-unlink{font-size:18px!important}.layedit-tool-image input{position:absolute;font-size:0;left:0;top:0;width:100%;height:100%;opacity:.01;filter:Alpha(opacity=1);cursor:pointer}.layui-layedit-iframe iframe{display:block;width:100%}#LAY_layedit_code{overflow:hidden}.layui-laypage{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;margin:10px 0;font-size:0}.layui-laypage>a:first-child,.layui-laypage>a:first-child em{border-radius:2px 0 0 2px}.layui-laypage>a:last-child,.layui-laypage>a:last-child em{border-radius:0 2px 2px 0}.layui-laypage>:first-child{margin-left:0!important}.layui-laypage>:last-child{margin-right:0!important}.layui-laypage a,.layui-laypage button,.layui-laypage input,.layui-laypage select,.layui-laypage span{border:1px solid #e2e2e2}.layui-laypage a,.layui-laypage span{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;padding:0 15px;height:28px;line-height:28px;margin:0 -1px 5px 0;background-color:#fff;color:#333;font-size:12px}.layui-flow-more a *,.layui-laypage input,.layui-table-view select[lay-ignore]{display:inline-block}.layui-laypage a:hover{color:#009688}.layui-laypage em{font-style:normal}.layui-laypage .layui-laypage-spr{color:#999;font-weight:700}.layui-laypage a{text-decoration:none}.layui-laypage .layui-laypage-curr{position:relative}.layui-laypage .layui-laypage-curr em{position:relative;color:#fff}.layui-laypage .layui-laypage-curr .layui-laypage-em{position:absolute;left:-1px;top:-1px;padding:1px;width:100%;height:100%;background-color:#009688}.layui-laypage-em{border-radius:2px}.layui-laypage-next em,.layui-laypage-prev em{font-family:Sim sun;font-size:16px}.layui-laypage .layui-laypage-count,.layui-laypage .layui-laypage-limits,.layui-laypage .layui-laypage-refresh,.layui-laypage .layui-laypage-skip{margin-left:10px;margin-right:10px;padding:0;border:none}.layui-laypage .layui-laypage-limits,.layui-laypage .layui-laypage-refresh{vertical-align:top}.layui-laypage .layui-laypage-refresh i{font-size:18px;cursor:pointer}.layui-laypage select{height:22px;padding:3px;border-radius:2px;cursor:pointer}.layui-laypage .layui-laypage-skip{height:30px;line-height:30px;color:#999}.layui-laypage button,.layui-laypage input{height:30px;line-height:30px;border-radius:2px;vertical-align:top;background-color:#fff;box-sizing:border-box}.layui-laypage input{width:40px;margin:0 10px;padding:0 3px;text-align:center}.layui-laypage input:focus,.layui-laypage select:focus{border-color:#009688!important}.layui-laypage button{margin-left:10px;padding:0 10px;cursor:pointer}.layui-table,.layui-table-view{margin:10px 0}.layui-flow-more{margin:10px 0;text-align:center;color:#999;font-size:14px}.layui-flow-more a{height:32px;line-height:32px}.layui-flow-more a *{vertical-align:top}.layui-flow-more a cite{padding:0 20px;border-radius:3px;background-color:#eee;color:#333;font-style:normal}.layui-flow-more a cite:hover{opacity:.8}.layui-flow-more a i{font-size:30px;color:#737383}.layui-table{width:100%;background-color:#fff;color:#666}.layui-table tr{transition:all .3s;-webkit-transition:all .3s}.layui-table th{text-align:left;font-weight:400}.layui-table tbody tr:hover,.layui-table thead tr,.layui-table-click,.layui-table-header,.layui-table-hover,.layui-table-mend,.layui-table-patch,.layui-table-tool,.layui-table-total,.layui-table-total tr,.layui-table[lay-even] tr:nth-child(even){background-color:#f2f2f2}.layui-table td,.layui-table th,.layui-table-col-set,.layui-table-fixed-r,.layui-table-grid-down,.layui-table-header,.layui-table-page,.layui-table-tips-main,.layui-table-tool,.layui-table-total,.layui-table-view,.layui-table[lay-skin=line],.layui-table[lay-skin=row]{border-width:1px;border-style:solid;border-color:#e6e6e6}.layui-table td,.layui-table th{position:relative;padding:9px 15px;min-height:20px;line-height:20px;font-size:14px}.layui-table[lay-skin=line] td,.layui-table[lay-skin=line] th{border-width:0 0 1px}.layui-table[lay-skin=row] td,.layui-table[lay-skin=row] th{border-width:0 1px 0 0}.layui-table[lay-skin=nob] td,.layui-table[lay-skin=nob] th{border:none}.layui-table img{max-width:100px}.layui-table[lay-size=lg] td,.layui-table[lay-size=lg] th{padding:15px 30px}.layui-table-view .layui-table[lay-size=lg] .layui-table-cell{height:40px;line-height:40px}.layui-table[lay-size=sm] td,.layui-table[lay-size=sm] th{font-size:12px;padding:5px 10px}.layui-table-view .layui-table[lay-size=sm] .layui-table-cell{height:20px;line-height:20px}.layui-table[lay-data]{display:none}.layui-table-box{position:relative;overflow:hidden}.layui-table-view .layui-table{position:relative;width:auto;margin:0}.layui-table-view .layui-table[lay-skin=line]{border-width:0 1px 0 0}.layui-table-view .layui-table[lay-skin=row]{border-width:0 0 1px}.layui-table-view .layui-table td,.layui-table-view .layui-table th{padding:5px 0;border-top:none;border-left:none}.layui-table-view .layui-table th.layui-unselect .layui-table-cell span{cursor:pointer}.layui-table-view .layui-table td{cursor:default}.layui-table-view .layui-form-checkbox[lay-skin=primary] i{width:18px;height:18px}.layui-table-view .layui-form-radio{line-height:0;padding:0}.layui-table-view .layui-form-radio>i{margin:0;font-size:20px}.layui-table-init{position:absolute;left:0;top:0;width:100%;height:100%;text-align:center;z-index:110}.layui-table-init .layui-icon{position:absolute;left:50%;top:50%;margin:-15px 0 0 -15px;font-size:30px;color:#c2c2c2}.layui-table-header{border-width:0 0 1px;overflow:hidden}.layui-table-header .layui-table{margin-bottom:-1px}.layui-table-tool .layui-inline[lay-event]{position:relative;width:26px;height:26px;padding:5px;line-height:16px;margin-right:10px;text-align:center;color:#333;border:1px solid #ccc;cursor:pointer;-webkit-transition:.5s all;transition:.5s all}.layui-table-tool .layui-inline[lay-event]:hover{border:1px solid #999}.layui-table-tool-temp{padding-right:120px}.layui-table-tool-self{position:absolute;right:17px;top:10px}.layui-table-tool .layui-table-tool-self .layui-inline[lay-event]{margin:0 0 0 10px}.layui-table-tool-panel{position:absolute;top:29px;left:-1px;padding:5px 0;min-width:150px;min-height:40px;border:1px solid #d2d2d2;text-align:left;overflow-y:auto;background-color:#fff;box-shadow:0 2px 4px rgba(0,0,0,.12)}.layui-table-cell,.layui-table-tool-panel li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layui-table-tool-panel li{padding:0 10px;line-height:30px;-webkit-transition:.5s all;transition:.5s all}.layui-table-tool-panel li .layui-form-checkbox[lay-skin=primary]{width:100%;padding-left:28px}.layui-table-tool-panel li:hover{background-color:#f2f2f2}.layui-table-tool-panel li .layui-form-checkbox[lay-skin=primary] i{position:absolute;left:0;top:0}.layui-table-tool-panel li .layui-form-checkbox[lay-skin=primary] span{padding:0}.layui-table-tool .layui-table-tool-self .layui-table-tool-panel{left:auto;right:-1px}.layui-table-col-set{position:absolute;right:0;top:0;width:20px;height:100%;border-width:0 0 0 1px;background-color:#fff}.layui-table-sort{width:10px;height:20px;margin-left:5px;cursor:pointer!important}.layui-table-sort .layui-edge{position:absolute;left:5px;border-width:5px}.layui-table-sort .layui-table-sort-asc{top:3px;border-top:none;border-bottom-style:solid;border-bottom-color:#b2b2b2}.layui-table-sort .layui-table-sort-asc:hover{border-bottom-color:#666}.layui-table-sort .layui-table-sort-desc{bottom:5px;border-bottom:none;border-top-style:solid;border-top-color:#b2b2b2}.layui-table-sort .layui-table-sort-desc:hover{border-top-color:#666}.layui-table-sort[lay-sort=asc] .layui-table-sort-asc{border-bottom-color:#000}.layui-table-sort[lay-sort=desc] .layui-table-sort-desc{border-top-color:#000}.layui-table-cell{height:28px;line-height:28px;padding:0 15px;position:relative;box-sizing:border-box}.layui-table-cell .layui-form-checkbox[lay-skin=primary]{top:-1px;padding:0}.layui-table-cell .layui-table-link{color:#01AAED}.laytable-cell-checkbox,.laytable-cell-numbers,.laytable-cell-radio,.laytable-cell-space{padding:0;text-align:center}.layui-table-body{position:relative;overflow:auto;margin-right:-1px;margin-bottom:-1px}.layui-table-body .layui-none{line-height:26px;padding:15px;text-align:center;color:#999}.layui-table-fixed{position:absolute;left:0;top:0;z-index:101}.layui-table-fixed .layui-table-body{overflow:hidden}.layui-table-fixed-l{box-shadow:0 -1px 8px rgba(0,0,0,.08)}.layui-table-fixed-r{left:auto;right:-1px;border-width:0 0 0 1px;box-shadow:-1px 0 8px rgba(0,0,0,.08)}.layui-table-fixed-r .layui-table-header{position:relative;overflow:visible}.layui-table-mend{position:absolute;right:-49px;top:0;height:100%;width:50px}.layui-table-tool{position:relative;z-index:890;width:100%;min-height:50px;line-height:30px;padding:10px 15px;border-width:0 0 1px}.layui-table-tool .layui-btn-container{margin-bottom:-10px}.layui-table-page,.layui-table-total{border-width:1px 0 0;margin-bottom:-1px;overflow:hidden}.layui-table-page{position:relative;width:100%;padding:7px 7px 0;height:41px;font-size:12px;white-space:nowrap}.layui-table-page>div{height:26px}.layui-table-page .layui-laypage{margin:0}.layui-table-page .layui-laypage a,.layui-table-page .layui-laypage span{height:26px;line-height:26px;margin-bottom:10px;border:none;background:0 0}.layui-table-page .layui-laypage a,.layui-table-page .layui-laypage span.layui-laypage-curr{padding:0 12px}.layui-table-page .layui-laypage span{margin-left:0;padding:0}.layui-table-page .layui-laypage .layui-laypage-prev{margin-left:-7px!important}.layui-table-page .layui-laypage .layui-laypage-curr .layui-laypage-em{left:0;top:0;padding:0}.layui-table-page .layui-laypage button,.layui-table-page .layui-laypage input{height:26px;line-height:26px}.layui-table-page .layui-laypage input{width:40px}.layui-table-page .layui-laypage button{padding:0 10px}.layui-table-page select{height:18px}.layui-table-patch .layui-table-cell{padding:0;width:30px}.layui-table-edit{position:absolute;left:0;top:0;width:100%;height:100%;padding:0 14px 1px;border-radius:0;box-shadow:1px 1px 20px rgba(0,0,0,.15)}.layui-table-edit:focus{border-color:#5FB878!important}select.layui-table-edit{padding:0 0 0 10px;border-color:#C9C9C9}.layui-table-view .layui-form-checkbox,.layui-table-view .layui-form-radio,.layui-table-view .layui-form-switch{top:0;margin:0;box-sizing:content-box}.layui-table-view .layui-form-checkbox{top:-1px;height:26px;line-height:26px}.layui-table-view .layui-form-checkbox i{height:26px}.layui-table-grid .layui-table-cell{overflow:visible}.layui-table-grid-down{position:absolute;top:0;right:0;width:26px;height:100%;padding:5px 0;border-width:0 0 0 1px;text-align:center;background-color:#fff;color:#999;cursor:pointer}.layui-table-grid-down .layui-icon{position:absolute;top:50%;left:50%;margin:-8px 0 0 -8px}.layui-table-grid-down:hover{background-color:#fbfbfb}body .layui-table-tips .layui-layer-content{background:0 0;padding:0;box-shadow:0 1px 6px rgba(0,0,0,.12)}.layui-table-tips-main{margin:-44px 0 0 -1px;max-height:150px;padding:8px 15px;font-size:14px;overflow-y:scroll;background-color:#fff;color:#666}.layui-table-tips-c{position:absolute;right:-3px;top:-13px;width:20px;height:20px;padding:3px;cursor:pointer;background-color:#666;border-radius:50%;color:#fff}.layui-table-tips-c:hover{background-color:#777}.layui-table-tips-c:before{position:relative;right:-2px}.layui-upload-file{display:none!important;opacity:.01;filter:Alpha(opacity=1)}.layui-upload-drag,.layui-upload-form,.layui-upload-wrap{display:inline-block}.layui-upload-list{margin:10px 0}.layui-upload-choose{padding:0 10px;color:#999}.layui-upload-drag{position:relative;padding:30px;border:1px dashed #e2e2e2;background-color:#fff;text-align:center;cursor:pointer;color:#999}.layui-upload-drag .layui-icon{font-size:50px;color:#009688}.layui-upload-drag[lay-over]{border-color:#009688}.layui-upload-iframe{position:absolute;width:0;height:0;border:0;visibility:hidden}.layui-upload-wrap{position:relative;vertical-align:middle}.layui-upload-wrap .layui-upload-file{display:block!important;position:absolute;left:0;top:0;z-index:10;font-size:100px;width:100%;height:100%;opacity:.01;filter:Alpha(opacity=1);cursor:pointer}.layui-tree{line-height:26px}.layui-tree li{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layui-tree li .layui-tree-spread,.layui-tree li a{display:inline-block;vertical-align:top;height:26px;*display:inline;*zoom:1;cursor:pointer}.layui-tree li a{font-size:0}.layui-tree li a i{font-size:16px}.layui-tree li a cite{padding:0 6px;font-size:14px;font-style:normal}.layui-tree li i{padding-left:6px;color:#333;-moz-user-select:none}.layui-tree li .layui-tree-check{font-size:13px}.layui-tree li .layui-tree-check:hover{color:#009E94}.layui-tree li ul{display:none;margin-left:20px}.layui-tree li .layui-tree-enter{line-height:24px;border:1px dotted #000}.layui-tree-drag{display:none;position:absolute;left:-666px;top:-666px;background-color:#f2f2f2;padding:5px 10px;border:1px dotted #000;white-space:nowrap}.layui-tree-drag i{padding-right:5px}.layui-nav{position:relative;padding:0 20px;background-color:#393D49;color:#fff;border-radius:2px;font-size:0;box-sizing:border-box}.layui-nav *{font-size:14px}.layui-nav .layui-nav-item{position:relative;display:inline-block;*display:inline;*zoom:1;vertical-align:middle;line-height:60px}.layui-nav .layui-nav-item a{display:block;padding:0 20px;color:#fff;color:rgba(255,255,255,.7);transition:all .3s;-webkit-transition:all .3s}.layui-nav .layui-this:after,.layui-nav-bar,.layui-nav-tree .layui-nav-itemed:after{position:absolute;left:0;top:0;width:0;height:5px;background-color:#5FB878;transition:all .2s;-webkit-transition:all .2s}.layui-nav-bar{z-index:1000}.layui-nav .layui-nav-item a:hover,.layui-nav .layui-this a{color:#fff}.layui-nav .layui-this:after{content:'';top:auto;bottom:0;width:100%}.layui-nav-img{width:30px;height:30px;margin-right:10px;border-radius:50%}.layui-nav .layui-nav-more{content:'';width:0;height:0;border-style:solid dashed dashed;border-color:#fff transparent transparent;overflow:hidden;cursor:pointer;transition:all .2s;-webkit-transition:all .2s;position:absolute;top:50%;right:3px;margin-top:-3px;border-width:6px;border-top-color:rgba(255,255,255,.7)}.layui-nav .layui-nav-mored,.layui-nav-itemed>a .layui-nav-more{margin-top:-9px;border-style:dashed dashed solid;border-color:transparent transparent #fff}.layui-nav-child{display:none;position:absolute;left:0;top:65px;min-width:100%;line-height:36px;padding:5px 0;box-shadow:0 2px 4px rgba(0,0,0,.12);border:1px solid #d2d2d2;background-color:#fff;z-index:100;border-radius:2px;white-space:nowrap}.layui-nav .layui-nav-child a{color:#333}.layui-nav .layui-nav-child a:hover{background-color:#f2f2f2;color:#000}.layui-nav-child dd{position:relative}.layui-nav .layui-nav-child dd.layui-this a,.layui-nav-child dd.layui-this{background-color:#5FB878;color:#fff}.layui-nav-child dd.layui-this:after{display:none}.layui-nav-tree{width:200px;padding:0}.layui-nav-tree .layui-nav-item{display:block;width:100%;line-height:45px}.layui-nav-tree .layui-nav-item a{position:relative;height:45px;line-height:45px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layui-nav-tree .layui-nav-item a:hover{background-color:#4E5465}.layui-nav-tree .layui-nav-bar{width:5px;height:0;background-color:#009688}.layui-nav-tree .layui-nav-child dd.layui-this,.layui-nav-tree .layui-nav-child dd.layui-this a,.layui-nav-tree .layui-this,.layui-nav-tree .layui-this>a,.layui-nav-tree .layui-this>a:hover{background-color:#009688;color:#fff}.layui-nav-tree .layui-this:after{display:none}.layui-nav-itemed>a,.layui-nav-tree .layui-nav-title a,.layui-nav-tree .layui-nav-title a:hover{color:#fff!important}.layui-nav-tree .layui-nav-child{position:relative;z-index:0;top:0;border:none;box-shadow:none}.layui-nav-tree .layui-nav-child a{height:40px;line-height:40px;color:#fff;color:rgba(255,255,255,.7)}.layui-nav-tree .layui-nav-child,.layui-nav-tree .layui-nav-child a:hover{background:0 0;color:#fff}.layui-nav-tree .layui-nav-more{right:10px}.layui-nav-itemed>.layui-nav-child{display:block;padding:0;background-color:rgba(0,0,0,.3)!important}.layui-nav-itemed>.layui-nav-child>.layui-this>.layui-nav-child{display:block}.layui-nav-side{position:fixed;top:0;bottom:0;left:0;overflow-x:hidden;z-index:999}.layui-bg-blue .layui-nav-bar,.layui-bg-blue .layui-nav-itemed:after,.layui-bg-blue .layui-this:after{background-color:#93D1FF}.layui-bg-blue .layui-nav-child dd.layui-this{background-color:#1E9FFF}.layui-bg-blue .layui-nav-itemed>a,.layui-nav-tree.layui-bg-blue .layui-nav-title a,.layui-nav-tree.layui-bg-blue .layui-nav-title a:hover{background-color:#007DDB!important}.layui-breadcrumb{visibility:hidden;font-size:0}.layui-breadcrumb>*{font-size:14px}.layui-breadcrumb a{color:#999!important}.layui-breadcrumb a:hover{color:#5FB878!important}.layui-breadcrumb a cite{color:#666;font-style:normal}.layui-breadcrumb span[lay-separator]{margin:0 10px;color:#999}.layui-tab{margin:10px 0;text-align:left!important}.layui-tab[overflow]>.layui-tab-title{overflow:hidden}.layui-tab-title{position:relative;left:0;height:40px;white-space:nowrap;font-size:0;border-bottom-width:1px;border-bottom-style:solid;transition:all .2s;-webkit-transition:all .2s}.layui-tab-title li{display:inline-block;*display:inline;*zoom:1;vertical-align:middle;font-size:14px;transition:all .2s;-webkit-transition:all .2s;position:relative;line-height:40px;min-width:65px;padding:0 15px;text-align:center;cursor:pointer}.layui-tab-title li a{display:block}.layui-tab-title .layui-this{color:#000}.layui-tab-title .layui-this:after{position:absolute;left:0;top:0;content:'';width:100%;height:41px;border-width:1px;border-style:solid;border-bottom-color:#fff;border-radius:2px 2px 0 0;box-sizing:border-box;pointer-events:none}.layui-tab-bar{position:absolute;right:0;top:0;z-index:10;width:30px;height:39px;line-height:39px;border-width:1px;border-style:solid;border-radius:2px;text-align:center;background-color:#fff;cursor:pointer}.layui-tab-bar .layui-icon{position:relative;display:inline-block;top:3px;transition:all .3s;-webkit-transition:all .3s}.layui-tab-item{display:none}.layui-tab-more{padding-right:30px;height:auto!important;white-space:normal!important}.layui-tab-more li.layui-this:after{border-bottom-color:#e2e2e2;border-radius:2px}.layui-tab-more .layui-tab-bar .layui-icon{top:-2px;top:3px\9;-webkit-transform:rotate(180deg);transform:rotate(180deg)}:root .layui-tab-more .layui-tab-bar .layui-icon{top:-2px\0/IE9}.layui-tab-content{padding:10px}.layui-tab-title li .layui-tab-close{position:relative;display:inline-block;width:18px;height:18px;line-height:20px;margin-left:8px;top:1px;text-align:center;font-size:14px;color:#c2c2c2;transition:all .2s;-webkit-transition:all .2s}.layui-tab-title li .layui-tab-close:hover{border-radius:2px;background-color:#FF5722;color:#fff}.layui-tab-brief>.layui-tab-title .layui-this{color:#009688}.layui-tab-brief>.layui-tab-more li.layui-this:after,.layui-tab-brief>.layui-tab-title .layui-this:after{border:none;border-radius:0;border-bottom:2px solid #5FB878}.layui-tab-brief[overflow]>.layui-tab-title .layui-this:after{top:-1px}.layui-tab-card{border-width:1px;border-style:solid;border-radius:2px;box-shadow:0 2px 5px 0 rgba(0,0,0,.1)}.layui-tab-card>.layui-tab-title{background-color:#f2f2f2}.layui-tab-card>.layui-tab-title li{margin-right:-1px;margin-left:-1px}.layui-tab-card>.layui-tab-title .layui-this{background-color:#fff}.layui-tab-card>.layui-tab-title .layui-this:after{border-top:none;border-width:1px;border-bottom-color:#fff}.layui-tab-card>.layui-tab-title .layui-tab-bar{height:40px;line-height:40px;border-radius:0;border-top:none;border-right:none}.layui-tab-card>.layui-tab-more .layui-this{background:0 0;color:#5FB878}.layui-tab-card>.layui-tab-more .layui-this:after{border:none}.layui-timeline{padding-left:5px}.layui-timeline-item{position:relative;padding-bottom:20px}.layui-timeline-axis{position:absolute;left:-5px;top:0;z-index:10;width:20px;height:20px;line-height:20px;background-color:#fff;color:#5FB878;border-radius:50%;text-align:center;cursor:pointer}.layui-timeline-axis:hover{color:#FF5722}.layui-timeline-item:before{content:'';position:absolute;left:5px;top:0;z-index:0;width:1px;height:100%}.layui-timeline-item:last-child:before{display:none}.layui-timeline-item:first-child:before{display:block}.layui-timeline-content{padding-left:25px}.layui-timeline-title{position:relative;margin-bottom:10px}.layui-badge,.layui-badge-dot,.layui-badge-rim{position:relative;display:inline-block;padding:0 6px;font-size:12px;text-align:center;background-color:#FF5722;color:#fff;border-radius:2px}.layui-badge{height:18px;line-height:18px}.layui-badge-dot{width:8px;height:8px;padding:0;border-radius:50%}.layui-badge-rim{height:18px;line-height:18px;border-width:1px;border-style:solid;background-color:#fff;color:#666}.layui-btn .layui-badge,.layui-btn .layui-badge-dot{margin-left:5px}.layui-nav .layui-badge,.layui-nav .layui-badge-dot{position:absolute;top:50%;margin:-8px 6px 0}.layui-tab-title .layui-badge,.layui-tab-title .layui-badge-dot{left:5px;top:-2px}.layui-carousel{position:relative;left:0;top:0;background-color:#f8f8f8}.layui-carousel>[carousel-item]{position:relative;width:100%;height:100%;overflow:hidden}.layui-carousel>[carousel-item]:before{position:absolute;content:'\e63d';left:50%;top:50%;width:100px;line-height:20px;margin:-10px 0 0 -50px;text-align:center;color:#c2c2c2;font-family:layui-icon!important;font-size:30px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.layui-carousel>[carousel-item]>*{display:none;position:absolute;left:0;top:0;width:100%;height:100%;background-color:#f8f8f8;transition-duration:.3s;-webkit-transition-duration:.3s}.layui-carousel-updown>*{-webkit-transition:.3s ease-in-out up;transition:.3s ease-in-out up}.layui-carousel-arrow{display:none\9;opacity:0;position:absolute;left:10px;top:50%;margin-top:-18px;width:36px;height:36px;line-height:36px;text-align:center;font-size:20px;border:0;border-radius:50%;background-color:rgba(0,0,0,.2);color:#fff;-webkit-transition-duration:.3s;transition-duration:.3s;cursor:pointer}.layui-carousel-arrow[lay-type=add]{left:auto!important;right:10px}.layui-carousel:hover .layui-carousel-arrow[lay-type=add],.layui-carousel[lay-arrow=always] .layui-carousel-arrow[lay-type=add]{right:20px}.layui-carousel[lay-arrow=always] .layui-carousel-arrow{opacity:1;left:20px}.layui-carousel[lay-arrow=none] .layui-carousel-arrow{display:none}.layui-carousel-arrow:hover,.layui-carousel-ind ul:hover{background-color:rgba(0,0,0,.35)}.layui-carousel:hover .layui-carousel-arrow{display:block\9;opacity:1;left:20px}.layui-carousel-ind{position:relative;top:-35px;width:100%;line-height:0!important;text-align:center;font-size:0}.layui-carousel[lay-indicator=outside]{margin-bottom:30px}.layui-carousel[lay-indicator=outside] .layui-carousel-ind{top:10px}.layui-carousel[lay-indicator=outside] .layui-carousel-ind ul{background-color:rgba(0,0,0,.5)}.layui-carousel[lay-indicator=none] .layui-carousel-ind{display:none}.layui-carousel-ind ul{display:inline-block;padding:5px;background-color:rgba(0,0,0,.2);border-radius:10px;-webkit-transition-duration:.3s;transition-duration:.3s}.layui-carousel-ind li{display:inline-block;width:10px;height:10px;margin:0 3px;font-size:14px;background-color:#e2e2e2;background-color:rgba(255,255,255,.5);border-radius:50%;cursor:pointer;-webkit-transition-duration:.3s;transition-duration:.3s}.layui-carousel-ind li:hover{background-color:rgba(255,255,255,.7)}.layui-carousel-ind li.layui-this{background-color:#fff}.layui-carousel>[carousel-item]>.layui-carousel-next,.layui-carousel>[carousel-item]>.layui-carousel-prev,.layui-carousel>[carousel-item]>.layui-this{display:block}.layui-carousel>[carousel-item]>.layui-this{left:0}.layui-carousel>[carousel-item]>.layui-carousel-prev{left:-100%}.layui-carousel>[carousel-item]>.layui-carousel-next{left:100%}.layui-carousel>[carousel-item]>.layui-carousel-next.layui-carousel-left,.layui-carousel>[carousel-item]>.layui-carousel-prev.layui-carousel-right{left:0}.layui-carousel>[carousel-item]>.layui-this.layui-carousel-left{left:-100%}.layui-carousel>[carousel-item]>.layui-this.layui-carousel-right{left:100%}.layui-carousel[lay-anim=updown] .layui-carousel-arrow{left:50%!important;top:20px;margin:0 0 0 -18px}.layui-carousel[lay-anim=updown]>[carousel-item]>*,.layui-carousel[lay-anim=fade]>[carousel-item]>*{left:0!important}.layui-carousel[lay-anim=updown] .layui-carousel-arrow[lay-type=add]{top:auto!important;bottom:20px}.layui-carousel[lay-anim=updown] .layui-carousel-ind{position:absolute;top:50%;right:20px;width:auto;height:auto}.layui-carousel[lay-anim=updown] .layui-carousel-ind ul{padding:3px 5px}.layui-carousel[lay-anim=updown] .layui-carousel-ind li{display:block;margin:6px 0}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-this{top:0}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-prev{top:-100%}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-next{top:100%}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-next.layui-carousel-left,.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-carousel-prev.layui-carousel-right{top:0}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-this.layui-carousel-left{top:-100%}.layui-carousel[lay-anim=updown]>[carousel-item]>.layui-this.layui-carousel-right{top:100%}.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-carousel-next,.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-carousel-prev{opacity:0}.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-carousel-next.layui-carousel-left,.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-carousel-prev.layui-carousel-right{opacity:1}.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-this.layui-carousel-left,.layui-carousel[lay-anim=fade]>[carousel-item]>.layui-this.layui-carousel-right{opacity:0}.layui-fixbar{position:fixed;right:15px;bottom:15px;z-index:999999}.layui-fixbar li{width:50px;height:50px;line-height:50px;margin-bottom:1px;text-align:center;cursor:pointer;font-size:30px;background-color:#9F9F9F;color:#fff;border-radius:2px;opacity:.95}.layui-fixbar li:hover{opacity:.85}.layui-fixbar li:active{opacity:1}.layui-fixbar .layui-fixbar-top{display:none;font-size:40px}body .layui-util-face{border:none;background:0 0}body .layui-util-face .layui-layer-content{padding:0;background-color:#fff;color:#666;box-shadow:none}.layui-util-face .layui-layer-TipsG{display:none}.layui-util-face ul{position:relative;width:372px;padding:10px;border:1px solid #D9D9D9;background-color:#fff;box-shadow:0 0 20px rgba(0,0,0,.2)}.layui-util-face ul li{cursor:pointer;float:left;border:1px solid #e8e8e8;height:22px;width:26px;overflow:hidden;margin:-1px 0 0 -1px;padding:4px 2px;text-align:center}.layui-util-face ul li:hover{position:relative;z-index:2;border:1px solid #eb7350;background:#fff9ec}.layui-code{position:relative;margin:10px 0;padding:15px;line-height:20px;border:1px solid #ddd;border-left-width:6px;background-color:#F2F2F2;color:#333;font-family:Courier New;font-size:12px}.layui-rate,.layui-rate *{display:inline-block;vertical-align:middle}.layui-rate{padding:10px 5px 10px 0;font-size:0}.layui-rate li i.layui-icon{font-size:20px;color:#FFB800;margin-right:5px;transition:all .3s;-webkit-transition:all .3s}.layui-rate li i:hover{cursor:pointer;transform:scale(1.12);-webkit-transform:scale(1.12)}.layui-rate[readonly] li i:hover{cursor:default;transform:scale(1)}.layui-colorpicker{width:26px;height:26px;border:1px solid #e6e6e6;padding:5px;border-radius:2px;line-height:24px;display:inline-block;cursor:pointer;transition:all .3s;-webkit-transition:all .3s}.layui-colorpicker:hover{border-color:#d2d2d2}.layui-colorpicker.layui-colorpicker-lg{width:34px;height:34px;line-height:32px}.layui-colorpicker.layui-colorpicker-sm{width:24px;height:24px;line-height:22px}.layui-colorpicker.layui-colorpicker-xs{width:22px;height:22px;line-height:20px}.layui-colorpicker-trigger-bgcolor{display:block;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==);border-radius:2px}.layui-colorpicker-trigger-span{display:block;height:100%;box-sizing:border-box;border:1px solid rgba(0,0,0,.15);border-radius:2px;text-align:center}.layui-colorpicker-trigger-i{display:inline-block;color:#FFF;font-size:12px}.layui-colorpicker-trigger-i.layui-icon-close{color:#999}.layui-colorpicker-main{position:absolute;z-index:66666666;width:280px;padding:7px;background:#FFF;border:1px solid #d2d2d2;border-radius:2px;box-shadow:0 2px 4px rgba(0,0,0,.12)}.layui-colorpicker-main-wrapper{height:180px;position:relative}.layui-colorpicker-basis{width:260px;height:100%;position:relative}.layui-colorpicker-basis-white{width:100%;height:100%;position:absolute;top:0;left:0;background:linear-gradient(90deg,#FFF,hsla(0,0%,100%,0))}.layui-colorpicker-basis-black{width:100%;height:100%;position:absolute;top:0;left:0;background:linear-gradient(0deg,#000,transparent)}.layui-colorpicker-basis-cursor{width:10px;height:10px;border:1px solid #FFF;border-radius:50%;position:absolute;top:-3px;right:-3px;cursor:pointer}.layui-colorpicker-side{position:absolute;top:0;right:0;width:12px;height:100%;background:linear-gradient(red,#FF0,#0F0,#0FF,#00F,#F0F,red)}.layui-colorpicker-side-slider{width:100%;height:5px;box-shadow:0 0 1px #888;box-sizing:border-box;background:#FFF;border-radius:1px;border:1px solid #f0f0f0;cursor:pointer;position:absolute;left:0}.layui-colorpicker-main-alpha{display:none;height:12px;margin-top:7px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.layui-colorpicker-alpha-bgcolor{height:100%;position:relative}.layui-colorpicker-alpha-slider{width:5px;height:100%;box-shadow:0 0 1px #888;box-sizing:border-box;background:#FFF;border-radius:1px;border:1px solid #f0f0f0;cursor:pointer;position:absolute;top:0}.layui-colorpicker-main-pre{padding-top:7px;font-size:0}.layui-colorpicker-pre{width:20px;height:20px;border-radius:2px;display:inline-block;margin-left:6px;margin-bottom:7px;cursor:pointer}.layui-colorpicker-pre:nth-child(11n+1){margin-left:0}.layui-colorpicker-pre-isalpha{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.layui-colorpicker-pre.layui-this{box-shadow:0 0 3px 2px rgba(0,0,0,.15)}.layui-colorpicker-pre>div{height:100%;border-radius:2px}.layui-colorpicker-main-input{text-align:right;padding-top:7px}.layui-colorpicker-main-input .layui-btn-container .layui-btn{margin:0 0 0 10px}.layui-colorpicker-main-input div.layui-inline{float:left;margin-right:10px;font-size:14px}.layui-colorpicker-main-input input.layui-input{width:150px;height:30px;color:#666}.layui-slider{height:4px;background:#e2e2e2;border-radius:3px;position:relative;cursor:pointer}.layui-slider-bar{border-radius:3px;position:absolute;height:100%}.layui-slider-step{position:absolute;top:0;width:4px;height:4px;border-radius:50%;background:#FFF;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.layui-slider-wrap{width:36px;height:36px;position:absolute;top:-16px;-webkit-transform:translateX(-50%);transform:translateX(-50%);z-index:10;text-align:center}.layui-slider-wrap-btn{width:12px;height:12px;border-radius:50%;background:#FFF;display:inline-block;vertical-align:middle;cursor:pointer;transition:.3s}.layui-slider-wrap:after{content:"";height:100%;display:inline-block;vertical-align:middle}.layui-slider-wrap-btn.layui-slider-hover,.layui-slider-wrap-btn:hover{transform:scale(1.2)}.layui-slider-wrap-btn.layui-disabled:hover{transform:scale(1)!important}.layui-slider-tips{position:absolute;top:-42px;z-index:66666666;white-space:nowrap;display:none;-webkit-transform:translateX(-50%);transform:translateX(-50%);color:#FFF;background:#000;border-radius:3px;height:25px;line-height:25px;padding:0 10px}.layui-slider-tips:after{content:'';position:absolute;bottom:-12px;left:50%;margin-left:-6px;width:0;height:0;border-width:6px;border-style:solid;border-color:#000 transparent transparent}.layui-slider-input{width:70px;height:32px;border:1px solid #e6e6e6;border-radius:3px;font-size:16px;line-height:32px;position:absolute;right:0;top:-15px}.layui-slider-input-btn{display:none;position:absolute;top:0;right:0;width:20px;height:100%;border-left:1px solid #d2d2d2}.layui-slider-input-btn i{cursor:pointer;position:absolute;right:0;bottom:0;width:20px;height:50%;font-size:12px;line-height:16px;text-align:center;color:#999}.layui-slider-input-btn i:first-child{top:0;border-bottom:1px solid #d2d2d2}.layui-slider-input-txt{height:100%;font-size:14px}.layui-slider-input-txt input{height:100%;border:none}.layui-slider-input-btn i:hover{color:#009688}.layui-slider-vertical{width:4px;margin-left:34px}.layui-slider-vertical .layui-slider-bar{width:4px}.layui-slider-vertical .layui-slider-step{top:auto;left:0;-webkit-transform:translateY(50%);transform:translateY(50%)}.layui-slider-vertical .layui-slider-wrap{top:auto;left:-16px;-webkit-transform:translateY(50%);transform:translateY(50%)}.layui-slider-vertical .layui-slider-tips{top:auto;left:2px}@media \0screen{.layui-slider-wrap-btn{margin-left:-20px}.layui-slider-vertical .layui-slider-wrap-btn{margin-left:0;margin-bottom:-20px}.layui-slider-vertical .layui-slider-tips{margin-left:-8px}.layui-slider>span{margin-left:8px}}.layui-anim{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.layui-anim.layui-icon{display:inline-block}.layui-anim-loop{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.layui-trans,.layui-trans a{transition:all .3s;-webkit-transition:all .3s}@-webkit-keyframes layui-rotate{from{-webkit-transform:rotate(0)}to{-webkit-transform:rotate(360deg)}}@keyframes layui-rotate{from{transform:rotate(0)}to{transform:rotate(360deg)}}.layui-anim-rotate{-webkit-animation-name:layui-rotate;animation-name:layui-rotate;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-timing-function:linear;animation-timing-function:linear}@-webkit-keyframes layui-up{from{-webkit-transform:translate3d(0,100%,0);opacity:.3}to{-webkit-transform:translate3d(0,0,0);opacity:1}}@keyframes layui-up{from{transform:translate3d(0,100%,0);opacity:.3}to{transform:translate3d(0,0,0);opacity:1}}.layui-anim-up{-webkit-animation-name:layui-up;animation-name:layui-up}@-webkit-keyframes layui-upbit{from{-webkit-transform:translate3d(0,30px,0);opacity:.3}to{-webkit-transform:translate3d(0,0,0);opacity:1}}@keyframes layui-upbit{from{transform:translate3d(0,30px,0);opacity:.3}to{transform:translate3d(0,0,0);opacity:1}}.layui-anim-upbit{-webkit-animation-name:layui-upbit;animation-name:layui-upbit}@-webkit-keyframes layui-scale{0%{opacity:.3;-webkit-transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1)}}@keyframes layui-scale{0%{opacity:.3;-ms-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-ms-transform:scale(1);transform:scale(1)}}.layui-anim-scale{-webkit-animation-name:layui-scale;animation-name:layui-scale}@-webkit-keyframes layui-scale-spring{0%{opacity:.5;-webkit-transform:scale(.5)}80%{opacity:.8;-webkit-transform:scale(1.1)}100%{opacity:1;-webkit-transform:scale(1)}}@keyframes layui-scale-spring{0%{opacity:.5;transform:scale(.5)}80%{opacity:.8;transform:scale(1.1)}100%{opacity:1;transform:scale(1)}}.layui-anim-scaleSpring{-webkit-animation-name:layui-scale-spring;animation-name:layui-scale-spring}@-webkit-keyframes layui-fadein{0%{opacity:0}100%{opacity:1}}@keyframes layui-fadein{0%{opacity:0}100%{opacity:1}}.layui-anim-fadein{-webkit-animation-name:layui-fadein;animation-name:layui-fadein}@-webkit-keyframes layui-fadeout{0%{opacity:1}100%{opacity:0}}@keyframes layui-fadeout{0%{opacity:1}100%{opacity:0}}.layui-anim-fadeout{-webkit-animation-name:layui-fadeout;animation-name:layui-fadeout}
\ No newline at end of file
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/layui.mobile.css b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/layui.mobile.css
new file mode 100644
index 0000000..6f7f0a1
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/layui.mobile.css
@@ -0,0 +1,2 @@
+/** layui-v2.4.5 MIT License By https://www.layui.com */
+ blockquote,body,button,dd,div,dl,dt,form,h1,h2,h3,h4,h5,h6,input,legend,li,ol,p,td,textarea,th,ul{margin:0;padding:0;-webkit-tap-highlight-color:rgba(0,0,0,0)}html{font:12px 'Helvetica Neue','PingFang SC',STHeitiSC-Light,Helvetica,Arial,sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}a,button,input{-webkit-tap-highlight-color:rgba(255,0,0,0)}a{text-decoration:none;background:0 0}a:active,a:hover{outline:0}table{border-collapse:collapse;border-spacing:0}li{list-style:none}b,strong{font-weight:700}h1,h2,h3,h4,h5,h6{font-weight:500}address,cite,dfn,em,var{font-style:normal}dfn{font-style:italic}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}img{border:0;vertical-align:bottom}.layui-inline,input,label{vertical-align:middle}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0;outline:0}button,select{text-transform:none}select{-webkit-appearance:none;border:none}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}@font-face{font-family:layui-icon;src:url(../font/iconfont.eot?v=1.0.7);src:url(../font/iconfont.eot?v=1.0.7#iefix) format('embedded-opentype'),url(../font/iconfont.woff?v=1.0.7) format('woff'),url(../font/iconfont.ttf?v=1.0.7) format('truetype'),url(../font/iconfont.svg?v=1.0.7#iconfont) format('svg')}.layui-icon{font-family:layui-icon!important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.layui-box,.layui-box *{-webkit-box-sizing:content-box!important;-moz-box-sizing:content-box!important;box-sizing:content-box!important}.layui-border-box,.layui-border-box *{-webkit-box-sizing:border-box!important;-moz-box-sizing:border-box!important;box-sizing:border-box!important}.layui-inline{position:relative;display:inline-block;*display:inline;*zoom:1}.layui-edge,.layui-upload-iframe{position:absolute;width:0;height:0}.layui-edge{border-style:dashed;border-color:transparent;overflow:hidden}.layui-elip{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layui-unselect{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.layui-disabled,.layui-disabled:active{background-color:#d2d2d2!important;color:#fff!important;cursor:not-allowed!important}.layui-circle{border-radius:100%}.layui-show{display:block!important}.layui-hide{display:none!important}.layui-upload-iframe{border:0;visibility:hidden}.layui-upload-enter{border:1px solid #009E94;background-color:#009E94;color:#fff;-webkit-transform:scale(1.1);transform:scale(1.1)}@-webkit-keyframes layui-m-anim-scale{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes layui-m-anim-scale{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.layui-m-anim-scale{animation-name:layui-m-anim-scale;-webkit-animation-name:layui-m-anim-scale}@-webkit-keyframes layui-m-anim-up{0%{opacity:0;-webkit-transform:translateY(800px);transform:translateY(800px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes layui-m-anim-up{0%{opacity:0;-webkit-transform:translateY(800px);transform:translateY(800px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}.layui-m-anim-up{-webkit-animation-name:layui-m-anim-up;animation-name:layui-m-anim-up}@-webkit-keyframes layui-m-anim-left{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes layui-m-anim-left{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}.layui-m-anim-left{-webkit-animation-name:layui-m-anim-left;animation-name:layui-m-anim-left}@-webkit-keyframes layui-m-anim-right{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes layui-m-anim-right{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}.layui-m-anim-right{-webkit-animation-name:layui-m-anim-right;animation-name:layui-m-anim-right}@-webkit-keyframes layui-m-anim-lout{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}@keyframes layui-m-anim-lout{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}.layui-m-anim-lout{-webkit-animation-name:layui-m-anim-lout;animation-name:layui-m-anim-lout}@-webkit-keyframes layui-m-anim-rout{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes layui-m-anim-rout{0%{-webkit-transform:translateX(0);transform:translateX(0)}100%{-webkit-transform:translateX(100%);transform:translateX(100%)}}.layui-m-anim-rout{-webkit-animation-name:layui-m-anim-rout;animation-name:layui-m-anim-rout}.layui-m-layer{position:relative;z-index:19891014}.layui-m-layer *{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.layui-m-layermain,.layui-m-layershade{position:fixed;left:0;top:0;width:100%;height:100%}.layui-m-layershade{background-color:rgba(0,0,0,.7);pointer-events:auto}.layui-m-layermain{display:table;font-family:Helvetica,arial,sans-serif;pointer-events:none}.layui-m-layermain .layui-m-layersection{display:table-cell;vertical-align:middle;text-align:center}.layui-m-layerchild{position:relative;display:inline-block;text-align:left;background-color:#fff;font-size:14px;border-radius:5px;box-shadow:0 0 8px rgba(0,0,0,.1);pointer-events:auto;-webkit-overflow-scrolling:touch;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.2s;animation-duration:.2s}.layui-m-layer0 .layui-m-layerchild{width:90%;max-width:640px}.layui-m-layer1 .layui-m-layerchild{border:none;border-radius:0}.layui-m-layer2 .layui-m-layerchild{width:auto;max-width:260px;min-width:40px;border:none;background:0 0;box-shadow:none;color:#fff}.layui-m-layerchild h3{padding:0 10px;height:60px;line-height:60px;font-size:16px;font-weight:400;border-radius:5px 5px 0 0;text-align:center}.layui-m-layerbtn span,.layui-m-layerchild h3{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layui-m-layercont{padding:50px 30px;line-height:22px;text-align:center}.layui-m-layer1 .layui-m-layercont{padding:0;text-align:left}.layui-m-layer2 .layui-m-layercont{text-align:center;padding:0;line-height:0}.layui-m-layer2 .layui-m-layercont i{width:25px;height:25px;margin-left:8px;display:inline-block;background-color:#fff;border-radius:100%;-webkit-animation:layui-m-anim-loading 1.4s infinite ease-in-out;animation:layui-m-anim-loading 1.4s infinite ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.layui-m-layerbtn,.layui-m-layerbtn span{position:relative;text-align:center;border-radius:0 0 5px 5px}.layui-m-layer2 .layui-m-layercont p{margin-top:20px}@-webkit-keyframes layui-m-anim-loading{0%,100%,80%{transform:scale(0);-webkit-transform:scale(0)}40%{transform:scale(1);-webkit-transform:scale(1)}}@keyframes layui-m-anim-loading{0%,100%,80%{transform:scale(0);-webkit-transform:scale(0)}40%{transform:scale(1);-webkit-transform:scale(1)}}.layui-m-layer2 .layui-m-layercont i:first-child{margin-left:0;-webkit-animation-delay:-.32s;animation-delay:-.32s}.layui-m-layer2 .layui-m-layercont i.layui-m-layerload{-webkit-animation-delay:-.16s;animation-delay:-.16s}.layui-m-layer2 .layui-m-layercont>div{line-height:22px;padding-top:7px;margin-bottom:20px;font-size:14px}.layui-m-layerbtn{display:box;display:-moz-box;display:-webkit-box;width:100%;height:50px;line-height:50px;font-size:0;border-top:1px solid #D0D0D0;background-color:#F2F2F2}.layui-m-layerbtn span{display:block;-moz-box-flex:1;box-flex:1;-webkit-box-flex:1;font-size:14px;cursor:pointer}.layui-m-layerbtn span[yes]{color:#40AFFE}.layui-m-layerbtn span[no]{border-right:1px solid #D0D0D0;border-radius:0 0 0 5px}.layui-m-layerbtn span:active{background-color:#F6F6F6}.layui-m-layerend{position:absolute;right:7px;top:10px;width:30px;height:30px;border:0;font-weight:400;background:0 0;cursor:pointer;-webkit-appearance:none;font-size:30px}.layui-m-layerend::after,.layui-m-layerend::before{position:absolute;left:5px;top:15px;content:'';width:18px;height:1px;background-color:#999;transform:rotate(45deg);-webkit-transform:rotate(45deg);border-radius:3px}.layui-m-layerend::after{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}body .layui-m-layer .layui-m-layer-footer{position:fixed;width:95%;max-width:100%;margin:0 auto;left:0;right:0;bottom:10px;background:0 0}.layui-m-layer-footer .layui-m-layercont{padding:20px;border-radius:5px 5px 0 0;background-color:rgba(255,255,255,.8)}.layui-m-layer-footer .layui-m-layerbtn{display:block;height:auto;background:0 0;border-top:none}.layui-m-layer-footer .layui-m-layerbtn span{background-color:rgba(255,255,255,.8)}.layui-m-layer-footer .layui-m-layerbtn span[no]{color:#FD482C;border-top:1px solid #c2c2c2;border-radius:0 0 5px 5px}.layui-m-layer-footer .layui-m-layerbtn span[yes]{margin-top:10px;border-radius:5px}body .layui-m-layer .layui-m-layer-msg{width:auto;max-width:90%;margin:0 auto;bottom:-150px;background-color:rgba(0,0,0,.7);color:#fff}.layui-m-layer-msg .layui-m-layercont{padding:10px 20px}
\ No newline at end of file
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/modules/code.css b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/modules/code.css
new file mode 100644
index 0000000..d0d3822
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/modules/code.css
@@ -0,0 +1,2 @@
+/** layui-v2.4.5 MIT License By https://www.layui.com */
+ html #layuicss-skincodecss{display:none;position:absolute;width:1989px}.layui-code-h3,.layui-code-view{position:relative;font-size:12px}.layui-code-view{display:block;margin:10px 0;padding:0;border:1px solid #e2e2e2;border-left-width:6px;background-color:#F2F2F2;color:#333;font-family:Courier New}.layui-code-h3{padding:0 10px;height:32px;line-height:32px;border-bottom:1px solid #e2e2e2}.layui-code-h3 a{position:absolute;right:10px;top:0;color:#999}.layui-code-view .layui-code-ol{position:relative;overflow:auto}.layui-code-view .layui-code-ol li{position:relative;margin-left:45px;line-height:20px;padding:0 5px;border-left:1px solid #e2e2e2;list-style-type:decimal-leading-zero;*list-style-type:decimal;background-color:#fff}.layui-code-view pre{margin:0}.layui-code-notepad{border:1px solid #0C0C0C;border-left-color:#3F3F3F;background-color:#0C0C0C;color:#C2BE9E}.layui-code-notepad .layui-code-h3{border-bottom:none}.layui-code-notepad .layui-code-ol li{background-color:#3F3F3F;border-left:none}
\ No newline at end of file
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/modules/laydate/default/laydate.css b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/modules/laydate/default/laydate.css
new file mode 100644
index 0000000..f7e690e
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/modules/laydate/default/laydate.css
@@ -0,0 +1,2 @@
+/** layui-v2.4.5 MIT License By https://www.layui.com */
+ .laydate-set-ym,.layui-laydate,.layui-laydate *,.layui-laydate-list{box-sizing:border-box}html #layuicss-laydate{display:none;position:absolute;width:1989px}.layui-laydate *{margin:0;padding:0}.layui-laydate{position:absolute;z-index:66666666;margin:5px 0;border-radius:2px;font-size:14px;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-name:laydate-upbit;animation-name:laydate-upbit}.layui-laydate-main{width:272px}.layui-laydate-content td,.layui-laydate-header *,.layui-laydate-list li{transition-duration:.3s;-webkit-transition-duration:.3s}@-webkit-keyframes laydate-upbit{from{-webkit-transform:translate3d(0,20px,0);opacity:.3}to{-webkit-transform:translate3d(0,0,0);opacity:1}}@keyframes laydate-upbit{from{transform:translate3d(0,20px,0);opacity:.3}to{transform:translate3d(0,0,0);opacity:1}}.layui-laydate-static{position:relative;z-index:0;display:inline-block;margin:0;-webkit-animation:none;animation:none}.laydate-ym-show .laydate-next-m,.laydate-ym-show .laydate-prev-m{display:none!important}.laydate-ym-show .laydate-next-y,.laydate-ym-show .laydate-prev-y{display:inline-block!important}.laydate-time-show .laydate-set-ym span[lay-type=month],.laydate-time-show .laydate-set-ym span[lay-type=year],.laydate-time-show .layui-laydate-header .layui-icon,.laydate-ym-show .laydate-set-ym span[lay-type=month]{display:none!important}.layui-laydate-header{position:relative;line-height:30px;padding:10px 70px 5px}.laydate-set-ym span,.layui-laydate-header i{padding:0 5px;cursor:pointer}.layui-laydate-header *{display:inline-block;vertical-align:bottom}.layui-laydate-header i{position:absolute;top:10px;color:#999;font-size:18px}.layui-laydate-header i.laydate-prev-y{left:15px}.layui-laydate-header i.laydate-prev-m{left:45px}.layui-laydate-header i.laydate-next-y{right:15px}.layui-laydate-header i.laydate-next-m{right:45px}.laydate-set-ym{width:100%;text-align:center;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.laydate-time-text{cursor:default!important}.layui-laydate-content{position:relative;padding:10px;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.layui-laydate-content table{border-collapse:collapse;border-spacing:0}.layui-laydate-content td,.layui-laydate-content th{width:36px;height:30px;padding:5px;text-align:center}.layui-laydate-content td{position:relative;cursor:pointer}.laydate-day-mark{position:absolute;left:0;top:0;width:100%;height:100%;line-height:30px;font-size:12px;overflow:hidden}.laydate-day-mark::after{position:absolute;content:'';right:2px;top:2px;width:5px;height:5px;border-radius:50%}.layui-laydate-footer{position:relative;height:46px;line-height:26px;padding:10px 20px}.layui-laydate-footer span{margin-right:15px;display:inline-block;cursor:pointer;font-size:12px}.layui-laydate-footer span:hover{color:#5FB878}.laydate-footer-btns{position:absolute;right:10px;top:10px}.laydate-footer-btns span{height:26px;line-height:26px;margin:0 0 0 -1px;padding:0 10px;border:1px solid #C9C9C9;background-color:#fff;white-space:nowrap;vertical-align:top;border-radius:2px}.layui-laydate-list>li,.layui-laydate-range .layui-laydate-main{display:inline-block;vertical-align:middle}.layui-laydate-list{position:absolute;left:0;top:0;width:100%;height:100%;padding:10px;background-color:#fff}.layui-laydate-list>li{position:relative;width:33.3%;height:36px;line-height:36px;margin:3px 0;text-align:center;cursor:pointer}.laydate-month-list>li{width:25%;margin:17px 0}.laydate-time-list>li{height:100%;margin:0;line-height:normal;cursor:default}.laydate-time-list p{position:relative;top:-4px;line-height:29px}.laydate-time-list ol{height:181px;overflow:hidden}.laydate-time-list>li:hover ol{overflow-y:auto}.laydate-time-list ol li{width:130%;padding-left:33px;line-height:30px;text-align:left;cursor:pointer}.layui-laydate-hint{position:absolute;top:115px;left:50%;width:250px;margin-left:-125px;line-height:20px;padding:15px;text-align:center;font-size:12px}.layui-laydate-range{width:546px}.layui-laydate-range .laydate-main-list-0 .laydate-next-m,.layui-laydate-range .laydate-main-list-0 .laydate-next-y,.layui-laydate-range .laydate-main-list-1 .laydate-prev-m,.layui-laydate-range .laydate-main-list-1 .laydate-prev-y{display:none}.layui-laydate-range .laydate-main-list-1 .layui-laydate-content{border-left:1px solid #e2e2e2}.layui-laydate,.layui-laydate-hint{border:1px solid #d2d2d2;box-shadow:0 2px 4px rgba(0,0,0,.12);background-color:#fff;color:#666}.layui-laydate-header{border-bottom:1px solid #e2e2e2}.layui-laydate-header i:hover,.layui-laydate-header span:hover{color:#5FB878}.layui-laydate-content{border-top:none 0;border-bottom:none 0}.layui-laydate-content th{font-weight:400;color:#333}.layui-laydate-content td{color:#666}.layui-laydate-content td.laydate-selected{background-color:#00F7DE}.laydate-selected:hover{background-color:#00F7DE!important}.layui-laydate-content td:hover,.layui-laydate-list li:hover{background-color:#eaeaea;color:#333}.laydate-time-list li ol{margin:0;padding:0;border:1px solid #e2e2e2;border-left-width:0}.laydate-time-list li:first-child ol{border-left-width:1px}.laydate-time-list>li:hover{background:0 0}.layui-laydate-content .laydate-day-next,.layui-laydate-content .laydate-day-prev{color:#d2d2d2}.laydate-selected.laydate-day-next,.laydate-selected.laydate-day-prev{background-color:#f8f8f8!important}.layui-laydate-footer{border-top:1px solid #e2e2e2}.layui-laydate-hint{color:#FF5722}.laydate-day-mark::after{background-color:#5FB878}.layui-laydate-content td.layui-this .laydate-day-mark::after{display:none}.layui-laydate-footer span[lay-type=date]{color:#5FB878}.layui-laydate .layui-this{background-color:#009688!important;color:#fff!important}.layui-laydate .laydate-disabled,.layui-laydate .laydate-disabled:hover{background:0 0!important;color:#d2d2d2!important;cursor:not-allowed!important;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.laydate-theme-molv{border:none}.laydate-theme-molv.layui-laydate-range{width:548px}.laydate-theme-molv .layui-laydate-main{width:274px}.laydate-theme-molv .layui-laydate-header{border:none;background-color:#009688}.laydate-theme-molv .layui-laydate-header i,.laydate-theme-molv .layui-laydate-header span{color:#f6f6f6}.laydate-theme-molv .layui-laydate-header i:hover,.laydate-theme-molv .layui-laydate-header span:hover{color:#fff}.laydate-theme-molv .layui-laydate-content{border:1px solid #e2e2e2;border-top:none;border-bottom:none}.laydate-theme-molv .laydate-main-list-1 .layui-laydate-content{border-left:none}.laydate-theme-grid .laydate-month-list>li,.laydate-theme-grid .laydate-year-list>li,.laydate-theme-grid .layui-laydate-content td,.laydate-theme-grid .layui-laydate-content thead,.laydate-theme-molv .layui-laydate-footer{border:1px solid #e2e2e2}.laydate-theme-grid .laydate-selected,.laydate-theme-grid .laydate-selected:hover{background-color:#f2f2f2!important;color:#009688!important}.laydate-theme-grid .laydate-selected.laydate-day-next,.laydate-theme-grid .laydate-selected.laydate-day-prev{color:#d2d2d2!important}.laydate-theme-grid .laydate-month-list,.laydate-theme-grid .laydate-year-list{margin:1px 0 0 1px}.laydate-theme-grid .laydate-month-list>li,.laydate-theme-grid .laydate-year-list>li{margin:0 -1px -1px 0}.laydate-theme-grid .laydate-year-list>li{height:43px;line-height:43px}.laydate-theme-grid .laydate-month-list>li{height:71px;line-height:71px}
\ No newline at end of file
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/modules/layer/default/icon-ext.png b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/modules/layer/default/icon-ext.png
new file mode 100644
index 0000000..bbbb669
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/modules/layer/default/icon-ext.png
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/modules/layer/default/icon.png b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/modules/layer/default/icon.png
new file mode 100644
index 0000000..3e17da8
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/modules/layer/default/icon.png
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/modules/layer/default/layer.css b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/modules/layer/default/layer.css
new file mode 100644
index 0000000..157d537
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/modules/layer/default/layer.css
@@ -0,0 +1,2 @@
+/** layui-v2.4.5 MIT License By https://www.layui.com */
+ .layui-layer-imgbar,.layui-layer-imgtit a,.layui-layer-tab .layui-layer-title span,.layui-layer-title{text-overflow:ellipsis;white-space:nowrap}html #layuicss-layer{display:none;position:absolute;width:1989px}.layui-layer,.layui-layer-shade{position:fixed;_position:absolute;pointer-events:auto}.layui-layer-shade{top:0;left:0;width:100%;height:100%;_height:expression(document.body.offsetHeight+"px")}.layui-layer{-webkit-overflow-scrolling:touch;top:150px;left:0;margin:0;padding:0;background-color:#fff;-webkit-background-clip:content;border-radius:2px;box-shadow:1px 1px 50px rgba(0,0,0,.3)}.layui-layer-close{position:absolute}.layui-layer-content{position:relative}.layui-layer-border{border:1px solid #B2B2B2;border:1px solid rgba(0,0,0,.1);box-shadow:1px 1px 5px rgba(0,0,0,.2)}.layui-layer-load{background:url(loading-1.gif) center center no-repeat #eee}.layui-layer-ico{background:url(icon.png) no-repeat}.layui-layer-btn a,.layui-layer-dialog .layui-layer-ico,.layui-layer-setwin a{display:inline-block;*display:inline;*zoom:1;vertical-align:top}.layui-layer-move{display:none;position:fixed;*position:absolute;left:0;top:0;width:100%;height:100%;cursor:move;opacity:0;filter:alpha(opacity=0);background-color:#fff;z-index:2147483647}.layui-layer-resize{position:absolute;width:15px;height:15px;right:0;bottom:0;cursor:se-resize}.layer-anim{-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.3s;animation-duration:.3s}@-webkit-keyframes layer-bounceIn{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes layer-bounceIn{0%{opacity:0;-webkit-transform:scale(.5);-ms-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}.layer-anim-00{-webkit-animation-name:layer-bounceIn;animation-name:layer-bounceIn}@-webkit-keyframes layer-zoomInDown{0%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes layer-zoomInDown{0%{opacity:0;-webkit-transform:scale(.1) translateY(-2000px);-ms-transform:scale(.1) translateY(-2000px);transform:scale(.1) translateY(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateY(60px);-ms-transform:scale(.475) translateY(60px);transform:scale(.475) translateY(60px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.layer-anim-01{-webkit-animation-name:layer-zoomInDown;animation-name:layer-zoomInDown}@-webkit-keyframes layer-fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes layer-fadeInUpBig{0%{opacity:0;-webkit-transform:translateY(2000px);-ms-transform:translateY(2000px);transform:translateY(2000px)}100%{opacity:1;-webkit-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}.layer-anim-02{-webkit-animation-name:layer-fadeInUpBig;animation-name:layer-fadeInUpBig}@-webkit-keyframes layer-zoomInLeft{0%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(48px);transform:scale(.475) translateX(48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes layer-zoomInLeft{0%{opacity:0;-webkit-transform:scale(.1) translateX(-2000px);-ms-transform:scale(.1) translateX(-2000px);transform:scale(.1) translateX(-2000px);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}60%{opacity:1;-webkit-transform:scale(.475) translateX(48px);-ms-transform:scale(.475) translateX(48px);transform:scale(.475) translateX(48px);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.layer-anim-03{-webkit-animation-name:layer-zoomInLeft;animation-name:layer-zoomInLeft}@-webkit-keyframes layer-rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg);transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0) rotate(0);transform:translateX(0) rotate(0)}}@keyframes layer-rollIn{0%{opacity:0;-webkit-transform:translateX(-100%) rotate(-120deg);-ms-transform:translateX(-100%) rotate(-120deg);transform:translateX(-100%) rotate(-120deg)}100%{opacity:1;-webkit-transform:translateX(0) rotate(0);-ms-transform:translateX(0) rotate(0);transform:translateX(0) rotate(0)}}.layer-anim-04{-webkit-animation-name:layer-rollIn;animation-name:layer-rollIn}@keyframes layer-fadeIn{0%{opacity:0}100%{opacity:1}}.layer-anim-05{-webkit-animation-name:layer-fadeIn;animation-name:layer-fadeIn}@-webkit-keyframes layer-shake{0%,100%{-webkit-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);transform:translateX(10px)}}@keyframes layer-shake{0%,100%{-webkit-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}10%,30%,50%,70%,90%{-webkit-transform:translateX(-10px);-ms-transform:translateX(-10px);transform:translateX(-10px)}20%,40%,60%,80%{-webkit-transform:translateX(10px);-ms-transform:translateX(10px);transform:translateX(10px)}}.layer-anim-06{-webkit-animation-name:layer-shake;animation-name:layer-shake}@-webkit-keyframes fadeIn{0%{opacity:0}100%{opacity:1}}.layui-layer-title{padding:0 80px 0 20px;height:42px;line-height:42px;border-bottom:1px solid #eee;font-size:14px;color:#333;overflow:hidden;background-color:#F8F8F8;border-radius:2px 2px 0 0}.layui-layer-setwin{position:absolute;right:15px;*right:0;top:15px;font-size:0;line-height:initial}.layui-layer-setwin a{position:relative;width:16px;height:16px;margin-left:10px;font-size:12px;_overflow:hidden}.layui-layer-setwin .layui-layer-min cite{position:absolute;width:14px;height:2px;left:0;top:50%;margin-top:-1px;background-color:#2E2D3C;cursor:pointer;_overflow:hidden}.layui-layer-setwin .layui-layer-min:hover cite{background-color:#2D93CA}.layui-layer-setwin .layui-layer-max{background-position:-32px -40px}.layui-layer-setwin .layui-layer-max:hover{background-position:-16px -40px}.layui-layer-setwin .layui-layer-maxmin{background-position:-65px -40px}.layui-layer-setwin .layui-layer-maxmin:hover{background-position:-49px -40px}.layui-layer-setwin .layui-layer-close1{background-position:1px -40px;cursor:pointer}.layui-layer-setwin .layui-layer-close1:hover{opacity:.7}.layui-layer-setwin .layui-layer-close2{position:absolute;right:-28px;top:-28px;width:30px;height:30px;margin-left:0;background-position:-149px -31px;*right:-18px;_display:none}.layui-layer-setwin .layui-layer-close2:hover{background-position:-180px -31px}.layui-layer-btn{text-align:right;padding:0 15px 12px;pointer-events:auto;user-select:none;-webkit-user-select:none}.layui-layer-btn a{height:28px;line-height:28px;margin:5px 5px 0;padding:0 15px;border:1px solid #dedede;background-color:#fff;color:#333;border-radius:2px;font-weight:400;cursor:pointer;text-decoration:none}.layui-layer-btn a:hover{opacity:.9;text-decoration:none}.layui-layer-btn a:active{opacity:.8}.layui-layer-btn .layui-layer-btn0{border-color:#1E9FFF;background-color:#1E9FFF;color:#fff}.layui-layer-btn-l{text-align:left}.layui-layer-btn-c{text-align:center}.layui-layer-dialog{min-width:260px}.layui-layer-dialog .layui-layer-content{position:relative;padding:20px;line-height:24px;word-break:break-all;overflow:hidden;font-size:14px;overflow-x:hidden;overflow-y:auto}.layui-layer-dialog .layui-layer-content .layui-layer-ico{position:absolute;top:16px;left:15px;_left:-40px;width:30px;height:30px}.layui-layer-ico1{background-position:-30px 0}.layui-layer-ico2{background-position:-60px 0}.layui-layer-ico3{background-position:-90px 0}.layui-layer-ico4{background-position:-120px 0}.layui-layer-ico5{background-position:-150px 0}.layui-layer-ico6{background-position:-180px 0}.layui-layer-rim{border:6px solid #8D8D8D;border:6px solid rgba(0,0,0,.3);border-radius:5px;box-shadow:none}.layui-layer-msg{min-width:180px;border:1px solid #D3D4D3;box-shadow:none}.layui-layer-hui{min-width:100px;background-color:#000;filter:alpha(opacity=60);background-color:rgba(0,0,0,.6);color:#fff;border:none}.layui-layer-hui .layui-layer-content{padding:12px 25px;text-align:center}.layui-layer-dialog .layui-layer-padding{padding:20px 20px 20px 55px;text-align:left}.layui-layer-page .layui-layer-content{position:relative;overflow:auto}.layui-layer-iframe .layui-layer-btn,.layui-layer-page .layui-layer-btn{padding-top:10px}.layui-layer-nobg{background:0 0}.layui-layer-iframe iframe{display:block;width:100%}.layui-layer-loading{border-radius:100%;background:0 0;box-shadow:none;border:none}.layui-layer-loading .layui-layer-content{width:60px;height:24px;background:url(loading-0.gif) no-repeat}.layui-layer-loading .layui-layer-loading1{width:37px;height:37px;background:url(loading-1.gif) no-repeat}.layui-layer-ico16,.layui-layer-loading .layui-layer-loading2{width:32px;height:32px;background:url(loading-2.gif) no-repeat}.layui-layer-tips{background:0 0;box-shadow:none;border:none}.layui-layer-tips .layui-layer-content{position:relative;line-height:22px;min-width:12px;padding:8px 15px;font-size:12px;_float:left;border-radius:2px;box-shadow:1px 1px 3px rgba(0,0,0,.2);background-color:#000;color:#fff}.layui-layer-tips .layui-layer-close{right:-2px;top:-1px}.layui-layer-tips i.layui-layer-TipsG{position:absolute;width:0;height:0;border-width:8px;border-color:transparent;border-style:dashed;*overflow:hidden}.layui-layer-tips i.layui-layer-TipsB,.layui-layer-tips i.layui-layer-TipsT{left:5px;border-right-style:solid;border-right-color:#000}.layui-layer-tips i.layui-layer-TipsT{bottom:-8px}.layui-layer-tips i.layui-layer-TipsB{top:-8px}.layui-layer-tips i.layui-layer-TipsL,.layui-layer-tips i.layui-layer-TipsR{top:5px;border-bottom-style:solid;border-bottom-color:#000}.layui-layer-tips i.layui-layer-TipsR{left:-8px}.layui-layer-tips i.layui-layer-TipsL{right:-8px}.layui-layer-lan[type=dialog]{min-width:280px}.layui-layer-lan .layui-layer-title{background:#4476A7;color:#fff;border:none}.layui-layer-lan .layui-layer-btn{padding:5px 10px 10px;text-align:right;border-top:1px solid #E9E7E7}.layui-layer-lan .layui-layer-btn a{background:#fff;border-color:#E9E7E7;color:#333}.layui-layer-lan .layui-layer-btn .layui-layer-btn1{background:#C9C5C5}.layui-layer-molv .layui-layer-title{background:#009f95;color:#fff;border:none}.layui-layer-molv .layui-layer-btn a{background:#009f95;border-color:#009f95}.layui-layer-molv .layui-layer-btn .layui-layer-btn1{background:#92B8B1}.layui-layer-iconext{background:url(icon-ext.png) no-repeat}.layui-layer-prompt .layui-layer-input{display:block;width:230px;height:36px;margin:0 auto;line-height:30px;padding-left:10px;border:1px solid #e6e6e6;color:#333}.layui-layer-prompt textarea.layui-layer-input{width:300px;height:100px;line-height:20px;padding:6px 10px}.layui-layer-prompt .layui-layer-content{padding:20px}.layui-layer-prompt .layui-layer-btn{padding-top:0}.layui-layer-tab{box-shadow:1px 1px 50px rgba(0,0,0,.4)}.layui-layer-tab .layui-layer-title{padding-left:0;overflow:visible}.layui-layer-tab .layui-layer-title span{position:relative;float:left;min-width:80px;max-width:260px;padding:0 20px;text-align:center;overflow:hidden;cursor:pointer}.layui-layer-tab .layui-layer-title span.layui-this{height:43px;border-left:1px solid #eee;border-right:1px solid #eee;background-color:#fff;z-index:10}.layui-layer-tab .layui-layer-title span:first-child{border-left:none}.layui-layer-tabmain{line-height:24px;clear:both}.layui-layer-tabmain .layui-layer-tabli{display:none}.layui-layer-tabmain .layui-layer-tabli.layui-this{display:block}.layui-layer-photos{-webkit-animation-duration:.8s;animation-duration:.8s}.layui-layer-photos .layui-layer-content{overflow:hidden;text-align:center}.layui-layer-photos .layui-layer-phimg img{position:relative;width:100%;display:inline-block;*display:inline;*zoom:1;vertical-align:top}.layui-layer-imgbar,.layui-layer-imguide{display:none}.layui-layer-imgnext,.layui-layer-imgprev{position:absolute;top:50%;width:27px;_width:44px;height:44px;margin-top:-22px;outline:0;blr:expression(this.onFocus=this.blur())}.layui-layer-imgprev{left:10px;background-position:-5px -5px;_background-position:-70px -5px}.layui-layer-imgprev:hover{background-position:-33px -5px;_background-position:-120px -5px}.layui-layer-imgnext{right:10px;_right:8px;background-position:-5px -50px;_background-position:-70px -50px}.layui-layer-imgnext:hover{background-position:-33px -50px;_background-position:-120px -50px}.layui-layer-imgbar{position:absolute;left:0;bottom:0;width:100%;height:32px;line-height:32px;background-color:rgba(0,0,0,.8);background-color:#000\9;filter:Alpha(opacity=80);color:#fff;overflow:hidden;font-size:0}.layui-layer-imgtit *{display:inline-block;*display:inline;*zoom:1;vertical-align:top;font-size:12px}.layui-layer-imgtit a{max-width:65%;overflow:hidden;color:#fff}.layui-layer-imgtit a:hover{color:#fff;text-decoration:underline}.layui-layer-imgtit em{padding-left:10px;font-style:normal}@-webkit-keyframes layer-bounceOut{100%{opacity:0;-webkit-transform:scale(.7);transform:scale(.7)}30%{-webkit-transform:scale(1.05);transform:scale(1.05)}0%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes layer-bounceOut{100%{opacity:0;-webkit-transform:scale(.7);-ms-transform:scale(.7);transform:scale(.7)}30%{-webkit-transform:scale(1.05);-ms-transform:scale(1.05);transform:scale(1.05)}0%{-webkit-transform:scale(1);-ms-transform:scale(1);transform:scale(1)}}.layer-anim-close{-webkit-animation-name:layer-bounceOut;animation-name:layer-bounceOut;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.2s;animation-duration:.2s}@media screen and (max-width:1100px){.layui-layer-iframe{overflow-y:auto;-webkit-overflow-scrolling:touch}}
\ No newline at end of file
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/modules/layer/default/loading-0.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/modules/layer/default/loading-0.gif
new file mode 100644
index 0000000..6f3c953
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/modules/layer/default/loading-0.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/modules/layer/default/loading-1.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/modules/layer/default/loading-1.gif
new file mode 100644
index 0000000..db3a483
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/modules/layer/default/loading-1.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/modules/layer/default/loading-2.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/modules/layer/default/loading-2.gif
new file mode 100644
index 0000000..5bb90fd
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/css/modules/layer/default/loading-2.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/font/iconfont.eot b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/font/iconfont.eot
new file mode 100644
index 0000000..93b3d5a
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/font/iconfont.eot
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/font/iconfont.svg b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/font/iconfont.svg
new file mode 100644
index 0000000..1c7ffe9
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/font/iconfont.svg
@@ -0,0 +1,473 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
+<!--
+2013-9-30: Created.
+-->
+<svg>
+<metadata>
+Created by iconfont
+</metadata>
+<defs>
+
+<font id="layui-icon" horiz-adv-x="1024" >
+  <font-face
+    font-family="layui-icon"
+    font-weight="500"
+    font-stretch="normal"
+    units-per-em="1024"
+    ascent="896"
+    descent="-128"
+  />
+    <missing-glyph />
+    
+    <glyph glyph-name="reply-fill" unicode="&#58897;" d="M507.904 835.5840000000001q93.184 1.024 175.104-33.792t143.872-94.72 97.792-141.312 36.864-174.592q1.024-88.064-30.208-165.888t-87.04-137.728-131.072-98.816-162.304-48.128q-22.528-3.072-48.128-5.12t-56.832-3.072-69.632 0-86.528 6.144q-106.496 10.24-158.208 26.624t-41.472 18.432q54.272 9.216 93.184 29.696 20.48 11.264 16.896 32.256t-19.968 39.424q-52.224 57.344-84.48 133.632t-34.304 164.352q-1.024 93.184 33.792 175.104t95.232 143.36 142.336 97.28 175.104 36.864zM707.584 385.024q0-26.624 18.432-45.568t45.056-18.944 45.568 18.944 18.944 45.568-18.944 45.056-45.568 18.432-45.056-18.432-18.432-45.056zM450.56 385.024q0-26.624 19.456-46.08t46.08-19.456q27.648 0 46.592 19.456t18.944 46.08q0 27.648-18.944 46.592t-46.592 18.944q-26.624 0-46.08-18.944t-19.456-46.592zM196.608 386.048q0-26.624 18.944-46.08t45.568-19.456q27.648 0 46.592 19.456t18.944 46.08-18.944 45.568-46.592 18.944q-26.624 0-45.568-18.944t-18.944-45.568z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="set-fill" unicode="&#58900;" d="M916.9398 445.2101l-69.9664 10.7833c-18.6619 2.863-38.1388 17.826-43.3424 33.2487-5.1618 15.3809-15.0883 65.4524-3.9288 80.6661l41.9004 57.135c11.1595 15.2346 9.3832 38.5985-3.9706 51.9314l-30.6364 30.6573c-13.3538 13.3538-36.7177 15.151-51.9314 3.9497l-57.135-41.8795c-15.2346-11.1804-39.4344-14.3987-53.7704-7.168-14.3569 7.2307-57.3022 35.7773-60.1652 54.4183l-10.7833 69.9664C570.3471 807.6016 552.542 822.8571 533.6712 822.8571h-43.34236734693877c-18.8709 0-36.6759-15.2555-39.5389-33.9174l-10.7833-69.9664c-2.863-18.6619-17.826-38.1388-33.2487-43.3424-15.4018-5.1827-65.4524-15.1092-80.687-3.9288L268.9567 713.5817c-15.2346 11.1804-38.6194 9.3832-51.9523-3.9497l-30.6364-30.6573c-13.3747-13.3538-15.151-36.7177-3.9706-51.9314l41.9004-57.135c11.1595-15.2346 14.3778-39.4136 7.168-53.7704-7.2307-14.3569-35.7773-57.2813-54.4183-60.1443l-69.9664-10.7833C88.3984 442.3471 73.1429 424.542 73.1429 405.6712v-43.34236734693877c0-18.8709 15.2555-36.6759 33.9174-39.5389l69.9664-10.7833c18.6619-2.863 38.1388-17.8469 43.3424-33.2487 5.1618-15.4018 15.0883-65.4733 3.9288-80.687l-41.9004-57.135c-11.1595-15.2346-9.3832-38.6194 3.9706-51.9314l30.6364-30.6573c13.3538-13.3538 36.7177-15.151 51.9523-3.9706l57.135 41.9213c15.2346 11.1386 39.4136 14.3778 53.7704 7.168 14.3569-7.2307 57.2813-35.7773 60.1443-54.4183l10.7833-69.9664c2.863-18.6619 20.6472-33.9174 39.5389-33.9174h43.34236734693877c18.8709 0 36.6759 15.2555 39.5389 33.9174l10.7833 69.9664c2.863 18.6619 17.826 38.1388 33.2487 43.3215 15.4018 5.1827 65.4524 15.0883 80.6661 3.9288l57.1559-41.9213c15.2346-11.1595 38.5985-9.3623 51.9314 3.9706l30.6364 30.6573c13.3747 13.3329 15.151 36.7177 3.9706 51.9314l-41.9004 57.135c-11.1595 15.2346-14.3778 39.4136-7.168 53.7496 7.2307 14.3778 35.7773 57.3231 54.4183 60.1861l69.9664 10.7833c18.6619 2.863 33.9174 20.6472 33.9174 39.5389v43.34236734693877C950.8571 424.542 935.6016 442.3471 916.9398 445.2101zM512 210.4633c-95.838 0-173.5367 77.6986-173.5367 173.5367s77.6986 173.5367 173.5367 173.5367 173.5367-77.6986 173.5367-173.5367S607.838 210.4633 512 210.4633zM512 384m-104.7824 0a5.014 5.014 0 1 1 209.5647 0 5.014 5.014 0 1 1-209.5647 0Z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="menu-fill" unicode="&#58895;" d="M511.999488 834.254727c-248.678712 0-450.273176-201.585181-450.273176-450.254727s201.594464-450.254727 450.273176-450.254727 450.273176 201.585181 450.273176 450.254727S760.6782 834.254727 511.999488 834.254727zM266.371377 589.705012l491.256222 0 0-33.772174L266.371377 555.932838 266.371377 589.705012zM757.627599 178.29396499999996L266.371377 178.29396499999996l0 33.773198 491.256222 0L757.627599 178.29396499999996zM140.487278 367.11340099999995l0 33.771151 743.024421 0 0-33.771151L140.487278 367.11340099999995z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="search" unicode="&#58901;" d="M439.323351 120.52219c-49.280352 0-97.09834 9.656941-142.126681 28.699646-43.480015 18.388812-82.522793 44.706201-116.043584 78.225619s-59.841305 72.560596-78.230871 116.03883C83.878729 388.513804 74.222416 436.330856 74.222416 485.609189c0 49.284473 9.656313 97.104595 28.699798 142.133138 18.388542 43.479257 44.71008 82.520435 78.231894 116.03883 33.518745 33.515325 72.562546 59.832713 116.043584 78.219479 45.027318 19.039635 92.846329 28.694529 142.125658 28.694529 49.280352 0 97.099364-9.653871 142.126681-28.694529 43.481039-18.385742 82.525863-44.704155 116.044608-78.220502 33.520791-33.518395 59.842328-72.559573 78.230871-116.03883 19.042462-45.028543 28.699798-92.848665 28.699798-142.133138 0-49.278333-9.657336-97.095385-28.701845-142.122905-18.388542-43.47721-44.708033-82.520435-78.228824-116.03883s-72.563569-59.838853-116.043584-78.226642C536.422715 130.177084 488.603703 120.52219 439.323351 120.52219zM439.323351 797.483242c-171.975699 0-311.887855-139.906423-311.887855-311.875077S267.347652 173.734112 439.323351 173.734112s311.887855 139.907447 311.887855 311.874053S611.299051 797.483242 439.323351 797.483242zM890.678206-48.734702c-22.121716 0-42.90387 8.562003-58.541653 24.115234L674.672953 128.025071l37.039062 38.20616 157.888289-153.058978c5.606924-5.606695 13.091693-8.692986 21.077901-8.692986 7.983139 0 15.464837 3.087315 21.070738 8.69094 5.616135 5.622044 8.715856 13.126972 8.715856 21.123087 0 7.980765-3.091535 15.46318-8.702552 21.067828l-0.301888 0.306992L758.714395 213.230662l38.207726 37.035498 152.611906-157.427472c15.571265-15.638165 24.144876-36.422538 24.144876-58.549487 0-22.195511-8.625801-43.054585-24.287121-58.735729C933.723298-40.112324 912.876674-48.734702 890.678206-48.734702zM281.015489 327.245392c-42.340005 42.320874-65.652899 98.584296-65.643689 158.421102 0.008187 59.818387 23.319034 116.074645 65.637549 158.4078l37.634651-37.619806c-66.60666-66.629513-66.60973-175.00071-0.007163-241.577011L281.015489 327.245392z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="share" unicode="&#58945;" d="M769.714 306.453c-51.754 0-97.702-24.851-126.571-63.269L394.479 367.94100000000003c3.93 13.798 6.034 28.364 6.034 43.424 0 16.496-2.527 32.399-7.211 47.35l247.724 124.288c28.71-40.052 75.647-66.151 128.687-66.151 87.388 0 158.229 70.84 158.229 158.229 0 87.388-70.841 158.229-158.229 158.229-87.389 0-158.229-70.841-158.229-158.229 0-6.046 0.352-12.009 1.011-17.88L351.22 526.116c-28.371 26.943-66.723 43.479-108.938 43.479-87.388 0-158.229-70.84-158.229-158.229s70.84-158.229 158.229-158.229c43.752 0 83.354 17.758 111.997 46.459l258.676-129.779c-0.964-7.062-1.474-14.266-1.474-21.592 0-87.389 70.84-158.229 158.229-158.229s158.229 70.84 158.229 158.229C927.938 235.61199999999997 857.103 306.453 769.714 306.453L769.714 306.453z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="set-sm" unicode="&#58912;" d="M946.367 405.895c0.02 21.85-13.04 38.49-31.74 41.57-18.69 3.07-79.05 13.01-85.99 14.14-6.95 1.15-14.09 8.07-15.4 11.45-1.32 3.37-8.94 22.2-11.87 29.46-2.95 7.27-1.92 16.58 4.39 25.52 6.3 8.93 39.9 55.87 48.38 67.72 8.49 11.87 8.65 34.61-4.84 48.39-13.48 13.78-47.75 47.09-56.73 55.86-8.99 8.76-31.08 8.64-42.67 0.43-11.58-8.2-71.69-51.01-71.69-51.01s-9.97-6.89-20.67-2.64c-10.7 4.24-33.43 14.07-33.43 14.07s-7.19 5.43-9.68 19.79c-2.5 14.37-11.11 65.28-14.07 82.7-2.97 17.42-20.67 29.62-37.83 29.46-17.16-0.14-57.91 0-74.33 0s-32.26-15.68-34.75-29.46c-2.49-13.79-11.56-69.16-14.07-84.45-2.52-15.3-11.44-18.48-11.44-18.48s-19.56-8.06-29.91-12.31c-10.34-4.26-15.39-2.64-30.35 7.48-14.95 10.11-44.74 31.03-63.04 43.83-18.3 12.81-38.12 7.92-49.26-3.52s-36.06-35.77-51.02-50.43c-14.95-14.66-12.61-37.54 0.58-55.71 13.2-18.18 32.34-45.43 41.35-58.21 9.01-12.78 10.84-19.5 8.36-26.82-2.49-7.34-6.64-16.58-11.43-27.72-4.81-11.13-9.69-13.64-27.86-17.01-17.36-3.21-58.42-9.92-77.4-13.31-18.99-3.37-30.66-21.43-30.66-41.81l0-64.66c0-24.34 13.2-37.24 38.42-41.93 25.22-4.69 62.66-10.66 74.77-12.61 12.1-1.95 17.67-6.6 21.41-15.54 3.73-8.94 5.13-10.12 9.37-22.57 4.26-12.47 6.46-15.55-4.98-31.67-11.44-16.13-34.31-48.11-46.03-64.51-11.74-16.4-6.45-37.83 4.98-49.85 11.44-12.03 35.47-35.64 48.97-48.97 13.49-13.33 35.19-16.28 53.36-3.52 18.19 12.75 54.98 38.99 65.69 46.62 10.7 7.63 21.91 5.28 27.85 2.94 5.94-2.35 11.25-4.6 22-9.1 10.73-4.48 13.85-11.2 16.41-23.45 2.57-12.24 10.19-56.85 13.93-78.59 3.75-21.72 18.91-33.43 40.62-33.72 21.7-0.29 33.27-0.12 61.57 0 28.29 0.13 41.86 12.61 45.45 31.38 3.59 18.76 12.45 72.94 14.22 83.72 1.78 10.76 5.94 14.73 13.63 18.47 7.7 3.74 14.32 6.47 26.84 11.88 12.51 5.4 18.91 0.66 27.7-5.72 8.8-6.39 47.51-33.78 63.78-45.31 16.28-11.53 36.73-10.33 51.9 4.4 15.18 14.73 31.62 30.99 49.27 48.38 17.64 17.4 12.16 39.59 4.4 51.46-7.77 11.88-44.49 62.95-49.71 70.23-5.21 7.28-4.4 18.62-1.75 24.63 2.64 6.01 8.44 18.24 11.72 25.22 3.29 6.97 9.6 11.22 18.18 12.9 8.58 1.69 62.72 11 83.75 14.61 21.03 3.64 31.11 19.92 31.26 39.92C946.427 359.93499999999995 946.347 388.525 946.367 405.895zM908.587 338.615c0.21-5.76-4.66-10.65-8.82-11.38-4.17-0.73-63.26-11.38-81.48-14.29-18.21-2.92-33.23-15.07-38.72-28.06-3.98-9.44-5.47-13.51-10.59-26.96-5.12-13.44-4.64-32.19 2.56-42.26 7.2-10.08 46.82-64.9 50.38-70.45s4.27-11.95-1.28-17.5-40.99-41.2-47.39-47.39c-6.41-6.19-11.83-4.8-18.79 0-6.95 4.8-39.61 26.39-64.44 44.36-16.96 12.28-32.82 12.43-48.7 6.02-15.87-6.42 1.28 0.28-22.2-8.97-23.48-9.25-30.23-27.62-33.73-48.24-3.5-20.63-10.67-62.98-11.95-70.45-1.28-7.47-5.55-11.1-13.66-11.1l-64.9 0c-8.11 0-11.74 2.99-14.52 11.95-2.77 8.97-10.03 54.87-12.8 74.29-2.78 19.43-13.82 36.12-24.77 40.56-10.94 4.45-4.98 2.14-27.32 11.1-22.34 8.97-39.63 4.5-51.23-3.84-11.61-8.34-58.64-42.69-65.33-46.96-6.68-4.28-14.65-3.28-18.35 0.42-3.7 3.7-40.56 40.56-46.54 46.54-5.98 5.98-5.36 12.92 0 20.49 5.36 7.58 28.39 40.76 40.99 57.95 12.59 17.2 17.93 34.74 9.82 53.49-8.12 18.74-4.42 10.24-12.39 28.6-7.96 18.36-24.28 24.46-38.42 26.9-14.14 2.43-68.88 11.53-76.85 13.23-7.97 1.71-11.95 7.26-11.95 14.09l0 66.18c0 9.53 7.67 12.44 12.38 13.23 4.7 0.8 54.22 9.18 73 12.39 18.79 3.2 36.36 11.32 43.55 29.03 7.19 17.7 4.27 11.1 11.1 27.32 6.83 16.23 3.8 33.94-7.68 49.96-11.49 16.01-38.85 54-44.4 61.9-5.55 7.9-5.77 12.6 0.85 19.21 6.62 6.62 42.05 42.48 46.96 46.97 4.91 4.48 12.07 5.4 18.36 0.85 6.3-4.55 49.31-35.65 64.04-46.11 14.73-10.46 32.35-12.56 49.1-5.55 16.75 7.02 10.25 4.48 26.9 11.1s24.84 19.09 28.18 39.71c3.33 20.61 11.95 74.14 12.81 77.7 0.85 3.55 5.55 10.46 11.74 10.46s65.82-0.07 69.8 0c3.99 0.07 10.3-3.29 11.32-9.18 1.02-5.9 13.02-74.29 14.94-86.25 1.92-11.95 15.58-28.57 25.54-32.73 9.96-4.16 21.35-8.75 31.31-13.09 9.97-4.34 30.13-1.91 36.15 2.28 6.03 4.18 70.52 48.81 75.43 52.37 4.91 3.56 11.52 3.27 17.64-2.85s43.34-43.19 47.54-47.53c4.19-4.34 4.66-8.66 1.14-13.66-3.53-5.01-36.72-51.8-47.54-67.46-10.81-15.65-11.73-33.73-5.41-48.96 6.33-15.22 3.99-9.39 9.11-21.91 5.13-12.53 16.28-29.03 33.59-31.88 17.31-2.85 76.92-12.74 84.82-13.95 7.9-1.21 11.1-7.18 11.1-13.37S908.377 344.385 908.587 338.615zM526.833 573.1949999999999c-110.45 0-200-89.54-200-200s89.55-200 200-200c110.46 0 200 89.54 200 200S637.293 573.1949999999999 526.833 573.1949999999999zM526.833 208.19500000000005c-91.12 0-165 73.87-165 165s73.88 165 165 165c91.13 0 165-73.87 165-165S617.963 208.19500000000005 526.833 208.19500000000005z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="engine" unicode="&#58920;" d="M422.214332 360.70413299999996L186.183684 360.70413299999996l0 46.568461 236.030648 0c10.379577 40.075407 46.47537 69.794509 89.785668 69.794509 51.432433 0 93.067103-41.657943 93.067103-93.067103C605.067103 332.56756700000005 563.40916 290.909624 512 290.909624 468.689703 290.909624 432.593909 320.65199900000005 422.214332 360.70413299999996L422.214332 360.70413299999996zM512 779.634098c-218.529658 0-395.634098-177.10444-395.634098-395.634098 0-218.529658 177.10444-395.634098 395.634098-395.634098 154.76275 0 288.417257 89.064217 353.440885 218.55293l101.398692-59.112389-23.063141-39.959044-62.161099 35.909613c-33.745261-51.595341-77.42792-96.115813-129.093079-129.744711l35.653614-61.765464-40.308133-23.295867-35.653614 61.765464c-53.620057-27.345298-113.360805-44.404109-176.894987-47.73209L535.319139-127.99706800000001l-46.568461 0 0 70.981412c-63.534182 3.327981-123.27493 20.386792-176.894987 47.73209l-35.653614-61.765464-40.308133 23.295867 35.653614 61.765464c-51.665159 33.628898-95.347818 78.149371-129.093079 129.744711l-62.161099-35.909613-23.295867 40.308133 62.114553 35.863067c-27.415116 53.550239-44.799743 113.104807-48.127724 176.685534L0.002932 360.70413299999996l0 46.568461 70.958139 0c3.327981 63.580727 20.712609 123.135295 48.127724 176.685534l-62.114553 35.863067 23.295867 40.308133 62.161099-35.909613c33.745261 51.595341 77.42792 96.115813 129.093079 129.744711l-35.653614 61.765464 40.308133 23.295867 35.653614-61.765464c53.620057 27.345298 113.360805 44.404109 176.894987 47.73209L488.727406 895.997068l46.568461 0 0-70.981412c63.534182-3.327981 123.27493-20.386792 176.894987-47.73209l35.653614 61.765464 40.308133-23.295867-35.653614-61.765464c51.665159-33.628898 95.347818-78.149371 129.093079-129.744711l62.161099 35.909613 23.063141-39.959044-101.398692-59.112389C800.417257 690.569881 666.76275 779.634098 512 779.634098L512 779.634098z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="close" unicode="&#4102;" d="M783.483 701.249L512 429.775 240.517 701.249c-10.082 10.083-26.429 10.083-36.51 0-10.083-10.082-10.083-26.429 0-36.509l271.481-271.475L204.008 121.78800000000001c-10.083-10.081-10.083-26.428 0-36.508 10.082-10.082 26.429-10.082 36.51 0L512 356.755l271.483-271.475c10.082-10.082 26.429-10.082 36.513 0 10.081 10.083 10.081 26.428 0 36.508L548.51 393.265l271.485 271.474c10.081 10.083 10.081 26.429 0 36.509C809.912 711.33 793.564 711.33 783.483 701.249z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="close-fill" unicode="&#4103;" d="M512 822.022125c-217.47508 0-394.423141-176.949085-394.423141-394.423141 0-217.474057 176.948061-394.422118 394.423141-394.422118 217.473033 0 394.422118 176.948061 394.422118 394.422118C906.422118 645.07304 729.473033 822.022125 512 822.022125zM702.228529 270.92978200000005c8.030907-8.030907 8.030907-21.052478 0-29.083385s-21.052478-8.030907-29.083385 0L512 402.992563 350.853833 241.84741899999995c-8.030907-8.030907-21.052478-8.030907-29.083385 0s-8.030907 21.052478 0 29.083385l161.146167 161.146167L321.771471 593.222115c-8.030907 8.030907-8.030907 21.052478 0 29.083385s21.052478 8.030907 29.083385 0l161.146167-161.146167L673.145144 622.305501c8.030907 8.030907 21.052478 8.030907 29.083385 0s8.030907-21.052478 0-29.083385L541.082362 432.075949 702.228529 270.92978200000005z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="chart-screen" unicode="&#58921;" d="M963.930903 179.21903299999997l0 34.824133-37.354769-2.675946L926.576133 694.8538169999999 691.413206 694.8538169999999l0 70.462818L330.260819 765.316635l0-70.462818L95.690386 694.8538169999999l0-480.809627-35.621289 0 0-34.824133 432.583253 0 0-141.228535-90.313935 0 0-35.307134 216.753649 0 0 35.307134-90.313935 0L528.778128 179.21903299999997 963.930903 179.21903299999997zM366.212636 730.008478L655.216819 730.008478l0-35.307134L366.212636 694.7013440000001 366.212636 730.008478zM364.817869 332.73133600000006L222.224244 406.252817l14.295588 27.736715 123.238812-63.523779 173.928285 159.755494 127.5807-92.634794 93.13826 122.414027 12.420891-9.449209 12.420891-9.449209L667.639756 394.365068l-131.636063 95.621824L364.817869 332.73133600000006z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="star" unicode="&#58880;" d="M749.624889-84.152889c-15.672889 0-31.246222 3.882667-45.084444 11.306667l-192.526222 103.637333L319.544889-72.817778c-31.203556-16.64-70.314667-14.392889-99.043556 5.304889-29.511111 20.337778-44.743111 55.921778-38.840889 90.695111l37.703111 225.251556L56.661333 410.908444c-25.002667 24.888889-33.464889 60.984889-22.058667 94.193778 11.349333 32.910222 40.064 56.576 74.965333 61.752889l221.326222 32.896 96.128 199.580444c15.488 32.085333 48.853333 52.807111 84.992 52.807111 36.167111 0 69.518222-20.736 84.963556-52.807111l96.156444-199.580444 221.297778-32.910222c34.872889-5.162667 63.616-28.8 74.979556-61.696 11.392-33.28 2.944-69.361778-22.030222-94.250667L804.622222 248.433778l37.745778-225.28c5.845333-34.773333-9.386667-70.357333-38.812444-90.638222C787.569778-78.392889 768.938667-84.152889 749.624889-84.152889zM512.014222 91.548444c4.636444 0 9.272889-1.137778 13.482667-3.384889l205.937778-110.862222c12.373333-6.641778 28.316444-5.802667 39.936 2.133333 11.392 7.836444 17.123556 21.006222 14.890667 34.304L746.097778 253.496889c-1.507556 9.088 1.450667 18.332444 7.964444 24.832l173.141333 172.842667c9.457778 9.429333 12.686222 23.025778 8.405333 35.484444-4.380444 12.672-15.701333 21.873778-29.525333 23.921778L669.866667 545.706667c-9.315556 1.379556-17.365333 7.296-21.447111 15.786667L545.720889 774.641778c-6.030222 12.529778-19.256889 20.608-33.706667 20.608s-27.690667-8.092444-33.763556-20.622222L375.608889 561.493333c-4.081778-8.490667-12.131556-14.407111-21.447111-15.786667L117.930667 510.577778c-13.624889-2.033778-25.201778-11.434667-29.539556-23.992889-4.266667-12.416-1.024-25.984 8.433778-35.399111L269.937778 278.328889c6.513778-6.499556 9.472-15.744 7.964444-24.832l-40.135111-239.744c-2.247111-13.312 3.484444-26.439111 14.976-34.360889 11.434667-7.836444 27.349333-8.775111 39.950222-2.062222l205.852444 110.833778C502.741333 90.410667 507.377778 91.548444 512.014222 91.548444zM200.32 439.210667c-6.840889 0-12.885333 4.963556-14.023111 11.946667-1.251556 7.751111 4.010667 15.061333 11.761778 16.312889l9.443556 1.536c7.793778 1.336889 15.061333-4.010667 16.312889-11.761778 1.251556-7.751111-4.010667-15.061333-11.761778-16.312889l-9.443556-1.536C201.856 439.267556 201.073778 439.210667 200.32 439.210667zM252.544 447.687111c-6.684444 0-12.643556 4.721778-13.937778 11.534222-1.493333 7.708444 3.555556 15.175111 11.264 16.654222l153.927111 29.696 58.055111 133.148444c3.157333 7.182222 11.548444 10.496 18.716444 7.352889 7.210667-3.143111 10.510222-11.52 7.367111-18.716444l-61.056-140.017778c-1.877333-4.295111-5.745778-7.395556-10.353778-8.277333l-161.28-31.118222C254.336 447.758222 253.44 447.687111 252.544 447.687111z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="circle-dot" unicode="&#58903;" d="M513.133312 830.6731560000001c-247.538793 0-448.208115-200.669322-448.208115-448.207092 0-247.538793 200.670346-448.208115 448.208115-448.208115 247.538793 0 448.208115 200.670346 448.208115 448.208115C961.341427 630.004857 760.673128 830.6731560000001 513.133312 830.6731560000001zM513.132288-6.649187999999981c-214.901465 0-389.113205 174.212764-389.113205 389.114229 0 214.902488 174.21174 389.115252 389.113205 389.115252 214.903511 0 389.115252-174.212764 389.115252-389.115252C902.24754 167.563576 728.0358-6.649187999999981 513.132288-6.649187999999981zM513.133312 382.46504100000004m-344.602456 0a336.754 336.754 0 1 1 689.204911 0 336.754 336.754 0 1 1-689.204911 0Z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="chat" unicode="&#58886;" d="M132.682393 414.567179c0 208.287837 166.471452 377.143593 379.317095 377.143593s385.380184-168.855756 385.380184-377.143593c0-177.196725-122.197086-325.812507-290.49821-366.259708l-116.291586-51.04763 0 41.126676C290.570353 52.175568999999996 132.682393 215.31206599999996 132.682393 414.567179zM83.799056 414.567179c0-211.946157 160.764474-387.135154 369.469819-415.152255-3.2623-20.458961-10.036587-65.024969-7.286963-65.024969 2.384303 0 114.89068 47.294143 189.700503 78.865185 176.193885 51.91437 304.518528 211.946157 304.518528 401.312038 0 231.432976-191.70823 419.042865-428.200432 419.042865S83.799056 646.0001560000001 83.799056 414.567179zM340.71952 276.63573699999995c22.935362-41.481763 89.831958-75.102489 170.391738-75.102489 79.650061 0 148.489916 32.909527 172.168198 73.681116-12.701277 5.979178-19.068288 8.02886-28.131711 12.21009-19.894096-31.257911-75.425853-59.661821-142.729725-59.661821-66.969251 0-122.836653 28.40391-143.598512 61.083194L340.71952 276.63573699999995z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="release" unicode="&#58889;" d="M990.78144 828.5388800000001c-3.35872 1.59744-7.04512 2.37568-11.01824 2.37568-14.45888 0-27.60704-10.81344-27.40224-10.81344-8.8064-4.42368-880.59904-443.22816-911.44192-459.44832-17.408-9.13408-27.36128-24.73984-25.92768-40.71424 1.10592-13.14816 9.78944-23.51104 23.10144-27.77088 26.17344-8.27392 290.24256-91.58656 290.24256-91.58656l4.83328-1.47456 16.67072 50.05312-254.32064 79.54432 780.73856 406.28224c-82.82112-93.88032-420.53632-476.32384-436.10112-493.93664-20.11136-22.48704-29.4912-45.09696-29.40928-70.98368l0.28672-153.27232-0.08192 0c0 0 0.08192-53.49376 0.08192-53.6576l0-1.96608 0 0c1.18784-13.5168 12.73856-24.24832 26.54208-24.24832s25.51808 10.73152 26.74688 24.24832l0 0c0 0 0.53248 191.03744 0 205.08672-0.49152 12.4928 5.07904 26.54208 10.69056 33.05472 5.65248 6.38976 390.63552 442.61376 465.75616 527.81056-21.38112-106.41408-126.68928-629.76-128.24576-637.41952-0.8192-4.05504-2.58048-4.05504-3.35872-4.05504-0.6144 0-1.31072 0.12288-2.048 0.36864-7.45472 2.37568-268.82048 81.55136-279.92064 84.91008l-4.7104 1.4336-17.16224-50.50368 5.07904-1.59744c2.58048-0.77824 258.90816-79.09376 284.38528-86.46656 5.07904-1.47456 10.24-2.2528 15.44192-2.2528 26.99264 0 49.5616 19.37408 54.8864 46.98112 2.08896 10.93632 27.0336 134.67648 55.9104 277.99552 39.77216 197.14048 84.7872 420.61824 85.93408 427.6224l0.6144 3.31776C1009.70496 798.96576 1013.26848 817.9712 990.78144 828.5388800000001z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="list" unicode="&#58890;" d="M618.04471 733.97072l-397.175835 0c-16.927531 0-30.699186-13.771655-30.699186-30.699186l0-638.543068c0-16.927531 13.771655-30.699186 30.699186-30.699186l582.261227 0c16.927531 0 30.699186 13.771655 30.699186 30.699186l-0.726547 476.760404L618.04471 733.97072zM803.771715 541.488871 619.537713 541.488871 619.537713 705.552483 803.771715 541.488871zM813.363164 64.728466c0-5.64251-4.590552-10.233062-10.233062-10.233062l-582.261227 0c-5.64251 0-10.233062 4.590552-10.233062 10.233062l0 638.543068c0 5.64251 4.590552 10.233062 10.233062 10.233062l378.202715 0 0-192.481849 214.291574 0L813.363164 64.728466zM298.129516 482.495268l55.258535 0 0-55.258535-55.258535 0 0 55.258535ZM399.777591 468.168981l323.364759 0 0-26.605961-323.364759 0 0 26.605961ZM298.129516 342.044446l55.258535 0 0-55.258535-55.258535 0 0 55.258535ZM399.777591 327.718159l323.364759 0 0-26.605961-323.364759 0 0 26.605961ZM298.129516 199.804884l55.258535 0 0-55.258535-55.258535 0 0 55.258535ZM399.777591 185.478598l323.364759 0 0-26.605961-323.364759 0 0 26.605961ZM881.315812 53.053566"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="chart" unicode="&#58924;" d="M953.440991 315.668729L784.061302 315.668729 681.06451 437.392024c-0.312108 0.373507-0.635473 0.737804-0.969071 1.094938-0.013303 0.014326-0.026606 0.027629-0.039909 0.041956-0.276293 0.293689-0.559748 0.582261-0.851391 0.86367-0.053212 0.051165-0.107447 0.099261-0.160659 0.150426-0.249687 0.237407-0.50142 0.470721-0.76134 0.697895-0.089028 0.078795-0.181125 0.153496-0.272199 0.230244-0.225127 0.191358-0.451278 0.381693-0.683569 0.565888-0.124843 0.099261-0.251733 0.192382-0.3776 0.288572-0.200568 0.153496-0.402159 0.306992-0.607844 0.454348-0.159636 0.11461-0.322341 0.224104-0.485047 0.334621-0.177032 0.12075-0.354064 0.242524-0.535189 0.35918-0.195451 0.12689-0.394996 0.246617-0.593518 0.367367-0.152473 0.092098-0.302899 0.186242-0.457418 0.275269-0.237407 0.137123-0.477884 0.268106-0.718361 0.397043-0.121773 0.065492-0.2415 0.132006-0.364297 0.195451-0.283456 0.146333-0.571005 0.285502-0.859577 0.420579-0.085958 0.040932-0.170892 0.082888-0.257873 0.122797-0.337691 0.154519-0.679475 0.298805-1.022283 0.437975-0.044002 0.017396-0.086981 0.036839-0.130983 0.055259-1.604544 0.638543-3.2623 1.113357-4.948709 1.416256-0.343831 0.062422-0.687662 0.112564-1.031493 0.160659-0.055259 0.008186-0.110517 0.01842-0.165776 0.025583-1.633197 0.216941-3.25923 0.26913-4.861728 0.173962-0.013303-0.001023-0.026606-0.001023-0.040932-0.002047-0.363274-0.022513-0.724501-0.054235-1.085728-0.091074-0.060375-0.00614-0.119727-0.011256-0.180102-0.017396-0.310062-0.034792-0.618077-0.077771-0.926092-0.122797-0.116657-0.017396-0.232291-0.032746-0.348947-0.051165-0.24764-0.040932-0.494257-0.086981-0.740874-0.135076-0.178055-0.033769-0.355087-0.067538-0.532119-0.105401-0.183172-0.039909-0.36532-0.083911-0.547469-0.127913-0.237407-0.056282-0.474814-0.113587-0.710175-0.176009-0.12075-0.032746-0.240477-0.068562-0.360204-0.102331-0.292666-0.082888-0.584308-0.168846-0.874927-0.26299-0.063445-0.020466-0.125867-0.042979-0.188288-0.063445-0.338714-0.112564-0.675382-0.230244-1.010003-0.357134-0.019443-0.007163-0.038886-0.01535-0.058328-0.022513-1.493004-0.571005-2.948145-1.284249-4.340865-2.149966-0.067538-0.041956-0.13303-0.088004-0.200568-0.12996-0.273223-0.172939-0.545422-0.346901-0.813528-0.531096-1.416256-0.971118-2.734274-2.089591-3.936659-3.333932-0.025583-0.026606-0.049119-0.053212-0.074701-0.079818-0.26299-0.275269-0.521886-0.555655-0.773619-0.843204-0.058328-0.066515-0.112564-0.134053-0.169869-0.200568-0.211824-0.246617-0.420579-0.496304-0.62217-0.751107-0.083911-0.106424-0.164752-0.214894-0.246617-0.322341-0.167822-0.218988-0.334621-0.437975-0.49528-0.663102-0.102331-0.14224-0.199545-0.287549-0.298805-0.431835-0.13303-0.194428-0.26606-0.387833-0.393973-0.586354-0.115634-0.179079-0.225127-0.360204-0.335644-0.541329-0.103354-0.168846-0.207731-0.336668-0.306992-0.508583-0.12689-0.220011-0.24764-0.443092-0.36839-0.666172-0.074701-0.138146-0.151449-0.275269-0.223081-0.416486-0.137123-0.265036-0.265036-0.533143-0.39295-0.802272-0.050142-0.105401-0.101307-0.209778-0.150426-0.316202-0.144286-0.317225-0.279363-0.63752-0.410346-0.958838-0.026606-0.064468-0.055259-0.127913-0.080841-0.193405-0.150426-0.378623-0.291642-0.760317-0.423649-1.14508-0.005117-0.016373-0.011256-0.031722-0.017396-0.048095-0.157589-0.463558-0.303922-0.930185-0.434905-1.400906l-97.897657-342.642824L435.093423 811.832042c-0.071631 0.569982-0.165776 1.13587-0.275269 1.696642-0.008186 0.040932-0.017396 0.081864-0.025583 0.12382-0.071631 0.356111-0.148379 0.709151-0.234337 1.061169-0.031722 0.128937-0.065492 0.255827-0.099261 0.38374-0.066515 0.254803-0.135076 0.508583-0.208754 0.760317-0.060375 0.206708-0.124843 0.411369-0.190335 0.615007-0.053212 0.166799-0.107447 0.332575-0.164752 0.49835-0.092098 0.26913-0.190335 0.535189-0.290619 0.800225-0.037862 0.098237-0.074701 0.196475-0.113587 0.293689-0.12382 0.313132-0.25378 0.623193-0.38988 0.930185-0.022513 0.050142-0.044002 0.100284-0.066515 0.150426-0.152473 0.338714-0.311085 0.672312-0.477884 1.00284-0.01228 0.024559-0.024559 0.049119-0.037862 0.074701-0.173962 0.343831-0.356111 0.682545-0.545422 1.017166-0.011256 0.019443-0.022513 0.039909-0.033769 0.059352-0.188288 0.330528-0.382717 0.654916-0.584308 0.975211-0.021489 0.034792-0.044002 0.068562-0.065492 0.103354-0.190335 0.298805-0.385786 0.592494-0.587378 0.88209-0.045025 0.065492-0.091074 0.12996-0.137123 0.194428-0.180102 0.252757-0.363274 0.502443-0.551562 0.74906-0.079818 0.105401-0.162706 0.208754-0.24457 0.312108-0.157589 0.199545-0.317225 0.396019-0.480954 0.590448-0.124843 0.149403-0.252757 0.295735-0.381693 0.442068-0.125867 0.14224-0.251733 0.284479-0.38067 0.424672-0.174985 0.191358-0.355087 0.378623-0.536212 0.563842-0.088004 0.090051-0.176009 0.180102-0.26606 0.26913-0.224104 0.222057-0.452301 0.440022-0.684592 0.653893-0.054235 0.050142-0.10847 0.100284-0.163729 0.150426-0.265036 0.240477-0.535189 0.474814-0.810459 0.704035-0.028653 0.023536-0.056282 0.047072-0.084934 0.070608-0.294712 0.243547-0.595564 0.479931-0.902556 0.711198-0.01535 0.011256-0.029676 0.022513-0.045025 0.033769-0.311085 0.232291-0.627287 0.458441-0.949628 0.677429-0.019443 0.013303-0.037862 0.025583-0.057305 0.038886-0.309038 0.208754-0.623193 0.411369-0.942465 0.606821-0.045025 0.027629-0.090051 0.054235-0.134053 0.081864-0.288572 0.174985-0.581238 0.343831-0.877997 0.50756-0.090051 0.050142-0.181125 0.098237-0.272199 0.147356-0.25071 0.134053-0.502443 0.265036-0.759293 0.391926-0.156566 0.077771-0.314155 0.151449-0.472767 0.226151-0.194428 0.091074-0.38988 0.182149-0.587378 0.268106-0.239454 0.105401-0.481977 0.204661-0.724501 0.302899-0.12382 0.049119-0.246617 0.100284-0.37146 0.148379-0.334621 0.128937-0.673335 0.249687-1.014096 0.36532-0.042979 0.014326-0.085958 0.029676-0.128937 0.044002-1.6158 0.536212-3.296069 0.915859-5.02034 1.119497-0.01535 0.002047-0.029676 0.004093-0.044002 0.00614-0.309038 0.035816-0.620124 0.062422-0.931209 0.086981-0.132006 0.010233-0.265036 0.025583-0.397043 0.033769-0.174985 0.011256-0.349971 0.01535-0.525979 0.022513-0.270153 0.01228-0.539282 0.024559-0.808412 0.027629-0.054235 0.001023-0.10847-0.001023-0.162706-0.001023-1.696642 0.010233-3.371794-0.149403-5.006014-0.466628-0.065492-0.01228-0.12996-0.027629-0.195451-0.039909-0.331551-0.067538-0.662079-0.13917-0.989537-0.218988-0.148379-0.035816-0.295735-0.075725-0.443092-0.11461-0.234337-0.061398-0.468674-0.124843-0.700965-0.192382-0.224104-0.065492-0.445138-0.135076-0.666172-0.206708-0.149403-0.048095-0.297782-0.096191-0.446162-0.147356-0.286526-0.098237-0.568958-0.201591-0.850367-0.309038-0.079818-0.030699-0.160659-0.061398-0.240477-0.093121-0.330528-0.12996-0.655939-0.267083-0.979304-0.410346-0.033769-0.01535-0.067538-0.029676-0.101307-0.045025-0.355087-0.159636-0.705058-0.325411-1.050935-0.500397-0.008186-0.004093-0.016373-0.008186-0.023536-0.01228-0.360204-0.182149-0.714268-0.372483-1.064238-0.569982-0.004093-0.002047-0.008186-0.005117-0.013303-0.007163-0.344854-0.196475-0.684592-0.399089-1.019213-0.610914-0.020466-0.013303-0.040932-0.025583-0.060375-0.038886-0.313132-0.199545-0.621147-0.404206-0.925069-0.61603-0.050142-0.034792-0.099261-0.070608-0.149403-0.105401-0.268106-0.190335-0.532119-0.38374-0.791016-0.583285-0.091074-0.069585-0.181125-0.141216-0.271176-0.212848-0.212848-0.167822-0.422625-0.337691-0.629333-0.512676-0.137123-0.11461-0.271176-0.232291-0.406253-0.349971-0.154519-0.1361-0.308015-0.272199-0.459464-0.412392-0.179079-0.164752-0.354064-0.332575-0.528026-0.502443-0.102331-0.100284-0.204661-0.199545-0.304945-0.301875-0.211824-0.212848-0.418532-0.430812-0.623193-0.651846-0.059352-0.064468-0.119727-0.128937-0.179079-0.194428-0.231267-0.254803-0.456395-0.515746-0.678452-0.780783-0.031722-0.037862-0.063445-0.075725-0.095167-0.11461-0.23536-0.285502-0.465604-0.577145-0.688685-0.874927-0.01842-0.024559-0.036839-0.048095-0.055259-0.072655-0.226151-0.301875-0.445138-0.60989-0.657986-0.923022-0.019443-0.028653-0.038886-0.057305-0.058328-0.084934-0.202615-0.300852-0.400113-0.606821-0.590448-0.916882-0.032746-0.053212-0.064468-0.105401-0.096191-0.158612-0.169869-0.282433-0.335644-0.567935-0.49528-0.857531-0.053212-0.097214-0.105401-0.194428-0.158612-0.292666-0.130983-0.24457-0.258896-0.490164-0.381693-0.73985-0.080841-0.162706-0.157589-0.326435-0.234337-0.491187-0.088004-0.189312-0.177032-0.378623-0.260943-0.571005-0.107447-0.245593-0.209778-0.493234-0.310062-0.741897-0.047072-0.11768-0.095167-0.234337-0.141216-0.354064-0.130983-0.340761-0.25378-0.684592-0.370437-1.030469-0.013303-0.037862-0.026606-0.075725-0.038886-0.113587-0.180102-0.543376-0.345877-1.092891-0.48914-1.650593L244.22942 305.59939599999996 67.355037 305.59939599999996c-14.128789 0-25.582655-11.453866-25.582655-25.582655s11.453866-25.582655 25.582655-25.582655l191.314257 0c0.867764 0 1.725294 0.044002 2.570545 0.128937 0.828878-0.080841 1.656733-0.1361 2.478448-0.1361 11.218506 0 21.512966 7.439436 24.644283 18.779715l113.358791 410.43686 103.412254-723.884758c0.00921-0.072655 0.021489-0.145309 0.030699-0.217964l0.046049-0.320295c0.002047-0.011256 0.005117-0.021489 0.00614-0.032746 0.109494-0.7552 0.25071-1.502213 0.425695-2.238994 0.01535-0.064468 0.031722-0.12689 0.047072-0.191358 0.166799-0.679475 0.358157-1.350764 0.579191-2.01182 0.041956-0.124843 0.088004-0.24764 0.130983-0.37146 0.210801-0.600681 0.437975-1.194198 0.692778-1.77646 0.068562-0.156566 0.144286-0.309038 0.215918-0.464581 0.223081-0.484024 0.460488-0.961908 0.713244-1.431605 0.106424-0.196475 0.213871-0.390903 0.325411-0.584308 0.265036-0.462534 0.545422-0.914836 0.838088-1.359974 0.088004-0.13303 0.170892-0.268106 0.260943-0.399089 0.354064-0.51677 0.732687-1.016143 1.12359-1.506307 0.078795-0.099261 0.156566-0.198521 0.237407-0.296759 0.420579-0.511653 0.864694-1.004887 1.325182-1.482771 0.051165-0.052189 0.101307-0.105401 0.152473-0.157589 0.494257-0.50449 1.010003-0.989537 1.548262-1.454118 0.00921-0.007163 0.017396-0.014326 0.026606-0.022513 1.636267-1.408069 3.466961-2.620687 5.466502-3.592828 0.075725-0.036839 0.151449-0.074701 0.228197-0.11154 0.576121-0.273223 1.165546-0.525979 1.768273-0.75827 0.158612-0.061398 0.319272-0.118704 0.478907-0.177032 0.558725-0.202615 1.124614-0.393973 1.704828-0.559748 0.005117-0.001023 0.010233-0.002047 0.01535-0.004093 0.278339-0.079818 0.562818-0.13917 0.844228-0.209778 0.394996-0.098237 0.789992-0.194428 1.184989-0.274246 0.283456-0.056282 0.568958-0.103354 0.854461-0.149403 0.445138-0.073678 0.889253-0.134053 1.333368-0.183172 0.229221-0.024559 0.456395-0.052189 0.686638-0.071631 0.710175-0.059352 1.418302-0.099261 2.122337-0.099261 0.337691 0 0.671289 0.027629 1.007957 0.040932 0.276293 0.011256 0.550539 0.013303 0.828878 0.033769 0.401136 0.029676 0.799202 0.079818 1.196245 0.127913 0.191358 0.022513 0.38067 0.033769 0.572028 0.061398 0.069585 0.010233 0.1361 0.024559 0.205685 0.034792 0.232291 0.034792 0.462534 0.075725 0.692778 0.116657 0.463558 0.082888 0.921999 0.176009 1.3743 0.283456 0.109494 0.025583 0.218988 0.047072 0.327458 0.074701 0.582261 0.145309 1.152243 0.316202 1.716084 0.499373 0.098237 0.031722 0.196475 0.063445 0.293689 0.097214 1.90335 0.644683 3.694135 1.50119 5.351891 2.540869 0.014326 0.00921 0.028653 0.01842 0.042979 0.027629 1.089821 0.686638 2.121314 1.452071 3.087315 2.287089 0.083911 0.071631 0.167822 0.143263 0.25071 0.215918 0.424672 0.3776 0.837064 0.76748 1.235131 1.170662 0.12382 0.124843 0.243547 0.254803 0.36532 0.382717 0.317225 0.334621 0.626263 0.677429 0.925069 1.028423 0.155543 0.183172 0.308015 0.36839 0.458441 0.556679 0.26606 0.331551 0.523933 0.670266 0.773619 1.01512 0.130983 0.180102 0.261966 0.35918 0.387833 0.543376 0.294712 0.429789 0.575098 0.86981 0.843204 1.316995 0.099261 0.165776 0.195451 0.334621 0.290619 0.503467 0.283456 0.499373 0.555655 1.004887 0.806365 1.52268 0.031722 0.065492 0.060375 0.13303 0.091074 0.199545 0.276293 0.584308 0.530073 1.178849 0.762363 1.784646 0.00614 0.017396 0.014326 0.034792 0.020466 0.051165 0.251733 0.661056 0.472767 1.336438 0.669242 2.020006 0.002047 0.008186 0.00614 0.016373 0.008186 0.024559l0.061398 0.215918c0.029676 0.106424 0.062422 0.210801 0.090051 0.317225l117.579929 411.527704 79.800487-94.308923c0.070608-0.083911 0.146333-0.161682 0.217964-0.243547 0.190335-0.220011 0.38374-0.436952 0.581238-0.649799 0.134053-0.144286 0.26913-0.285502 0.405229-0.425695 0.164752-0.168846 0.331551-0.335644 0.50142-0.500397 0.164752-0.159636 0.329505-0.319272 0.496304-0.473791 0.138146-0.12689 0.279363-0.25071 0.419556-0.37453 0.198521-0.174985 0.397043-0.350994 0.599657-0.518816 0.081864-0.067538 0.166799-0.132006 0.249687-0.198521 0.817622-0.661056 1.667989-1.264806 2.545986-1.811252 0.098237-0.061398 0.195451-0.125867 0.294712-0.185218 0.228197-0.138146 0.459464-0.267083 0.691755-0.398066 0.157589-0.089028 0.315178-0.178055 0.474814-0.264013 0.200568-0.107447 0.403183-0.208754 0.606821-0.311085 0.202615-0.101307 0.406253-0.201591 0.611937-0.297782 0.173962-0.080841 0.348947-0.159636 0.523933-0.237407 0.245593-0.10847 0.494257-0.212848 0.743944-0.313132 0.144286-0.058328 0.289596-0.115634 0.434905-0.171915 0.291642-0.11154 0.586354-0.216941 0.883113-0.317225 0.11154-0.037862 0.223081-0.076748 0.334621-0.113587 0.337691-0.109494 0.677429-0.210801 1.02126-0.305969 0.078795-0.021489 0.157589-0.046049 0.236384-0.066515 0.376577-0.101307 0.757247-0.193405 1.140986-0.277316 0.050142-0.011256 0.100284-0.023536 0.150426-0.034792 0.405229-0.085958 0.813528-0.162706 1.225921-0.229221 0.031722-0.005117 0.063445-0.01228 0.096191-0.017396 0.412392-0.065492 0.828878-0.12075 1.24741-0.165776 0.032746-0.004093 0.064468-0.00921 0.097214-0.01228 0.382717-0.039909 0.768503-0.068562 1.155313-0.092098 0.068562-0.004093 0.1361-0.01228 0.204661-0.01535 0.25992-0.013303 0.521886-0.01535 0.782829-0.020466 0.188288-0.004093 0.376577-0.01535 0.564865-0.01535 0.008186 0 0.01535 0.001023 0.023536 0.001023l181.208085 0c14.129812 0 25.582655 11.453866 25.582655 25.582655S967.56978 315.668729 953.440991 315.668729z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="ok-circle" unicode="&#4101;" d="M516.152065-63.152063c-60.696384 0-119.594819 11.894911-175.056991 35.353183-53.55473 22.651906-101.646028 55.073316-142.936433 96.364745-41.291428 41.291428-73.712839 89.381703-96.363721 142.936433-23.458271 55.462173-35.353183 114.359584-35.353183 175.055968s11.894911 119.594819 35.353183 175.056991c22.651906 53.55473 55.073316 101.646028 96.363721 142.936433 41.290405 41.291428 89.381703 73.712839 142.936433 96.363721 55.462173 23.458271 114.359584 35.353183 175.056991 35.353183s119.594819-11.894911 175.056991-35.353183c53.55473-22.651906 101.645005-55.073316 142.936433-96.363721 41.291428-41.290405 73.711815-89.38068 96.363721-142.936433 23.459295-55.462173 35.353183-114.359584 35.353183-175.056991 0-60.696384-11.893888-119.593795-35.353183-175.055968-22.651906-53.55473-55.072293-101.645005-96.363721-142.936433s-89.381703-73.712839-142.936433-96.364745C635.747907-51.25715200000002 576.849472-63.152063 516.152065-63.152063zM516.152065 774.870222c-214.115566 0-388.311956-174.196391-388.311956-388.311956s174.196391-388.311956 388.311956-388.311956 388.311956 174.196391 388.311956 388.311956S730.268654 774.870222 516.152065 774.870222zM434.74908 132.830517L209.49278 358.08784 289.087583 437.68162 434.74908 292.020122 743.218594 600.488613 822.812373 520.89381Z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="layim-theme" unicode="&#58907;" d="M958.830745 538.643056L740.659817 692.753993l-100.539834 0-3.977591-9.332553c-0.37146-0.871857-38.021965-86.8613-124.772748-88.667435-35.691897 0.76441-67.206658 15.500019-93.680613 43.828204-20.658506 22.106484-30.374798 44.584428-30.456662 44.776809l-3.955078 9.393951-100.587929 0L64.518433 538.643056 169.320337 379.756349l89.956801 65.019853-19.016099-368.05254 268.86654 0 4.093225 0 269.866311 0-19.016099 368.051517 89.956801-65.018829L958.830745 538.643056zM730.105437 507.20402l20.655436-399.781172-237.540068 0-4.093225 0L272.587282 107.42284700000005l20.656459 399.781172-115.938546-83.797521-36.3243 55.070246 159.440315 111.641683-19.276019 30.638811L121.066333 508.667348l-14.548344 22.056342 185.921433 131.330094 71.077825 0c5.332449-10.04375 15.433504-26.779923 30.951943-43.580564 32.047904-34.69622 72.256674-53.486168 116.345822-54.411237l0-0.031722c0.203638 0.00307 0.406253 0.01228 0.60989 0.016373 0.203638-0.00307 0.406253-0.013303 0.60989-0.016373l0 0.031722c44.073798 0.925069 84.359316 19.703761 116.566856 54.379515 15.623839 16.821107 25.814945 33.579793 31.188326 43.612287l71.120804 0 185.921433-131.330094-14.548344-22.056342L742.203986 620.7551920000001l-19.276019-30.638811 159.440315-111.641683-36.3243-55.070246L730.105437 507.20402z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="table" unicode="&#58925;" d="M304.738028 343.684806M729.544153 511.153982M595.52788 637.723655M143.806755 686.614156l0-601.704045L881.172549 84.91011100000003l0 601.704045L143.806755 686.614156zM420.318416 299.80441299999995l0 128.936581 184.341448 0 0-128.936581L420.318416 299.80441299999995zM604.659865 256.825552l0-128.936581L420.318416 127.88897099999997l0 128.936581L604.659865 256.825552zM604.659865 600.656435l0-128.936581L420.318416 471.719854l0 128.936581L604.659865 600.656435zM374.232798 600.656435l0-128.936581L189.89135 471.719854l0 128.936581L374.232798 600.656435zM189.89135 428.740994L374.232798 428.740994l0-128.936581L189.89135 299.80441299999995 189.89135 428.740994zM650.745483 428.740994l184.341448 0 0-128.936581L650.745483 299.80441299999995 650.745483 428.740994zM650.745483 471.719854l0 128.936581 184.341448 0 0-128.936581L650.745483 471.719854zM189.89135 256.825552L374.232798 256.825552l0-128.936581L189.89135 127.88897099999997 189.89135 256.825552zM650.745483 127.88897099999997l0 128.936581 184.341448 0 0-128.936581L650.745483 127.88897099999997z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="right" unicode="&#58882;" d="M283.648 721.9189759999999L340.873216 780.926976 740.352 383.99795200000005 340.876288-12.925952000000052 283.648 46.07795199999998 619.52 383.99795200000005Z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="left" unicode="&#58883;" d="M740.352 721.9189759999999L683.126784 780.926976 283.648 383.99795200000005 683.123712-12.925952000000052 740.352 46.07795199999998 404.48 383.99795200000005Z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="cart-simple" unicode="&#59032;" d="M235.097303 196.866982C247.384597 160.417152 286.382106 132.37606800000003 324.772759 132.37606800000003L861.658537 132.37606800000003 880.429732 132.37606800000003 885.649214 150.54185399999994 1009.08775 580.154957C1021.388907 622.967661 993.187631 660.786325 949.051586 660.786325L424.585365 660.786325C410.791718 660.786325 399.609756 649.5207379999999 399.609756 635.623932 399.609756 621.727125 410.791718 610.461538 424.585365 610.461538L949.051586 610.461538C959.924 610.461538 964.161052 604.779539 961.106394 594.148171L837.667859 164.53506800000002 861.658537 182.70085500000005 324.772759 182.70085500000005C307.742153 182.70085500000005 287.789837 197.04752900000005 282.395194 213.05054900000005L73.600164 832.433664C69.16437 845.592294 54.980454 852.636656 41.919502 848.167687 28.858551 843.698719 21.86648 829.408727 26.302275 816.250097L235.097303 196.866982ZM399.609756-6.017094000000043C399.609756 49.57012899999995 354.881911 94.63247799999999 299.707317 94.63247799999999 244.532723 94.63247799999999 199.804878 49.57012899999995 199.804878-6.017094000000043 199.804878-61.604318000000035 244.532723-106.66666699999996 299.707317-106.66666699999996 354.881911-106.66666699999996 399.609756-61.604318000000035 399.609756-6.017094000000043ZM249.756098-6.017094000000043C249.756098 21.77651800000001 272.120021 44.30769299999997 299.707317 44.30769299999997 327.294613 44.30769299999997 349.658537 21.77651800000001 349.658537-6.017094000000043 349.658537-33.810704999999984 327.294613-56.34187899999995 299.707317-56.34187899999995 272.120021-56.34187899999995 249.756098-33.810704999999984 249.756098-6.017094000000043ZM924.097562-6.017094000000043C924.097562 49.57012899999995 879.369715 94.63247799999999 824.195121 94.63247799999999 769.020529 94.63247799999999 724.292683 49.57012899999995 724.292683-6.017094000000043 724.292683-61.604318000000035 769.020529-106.66666699999996 824.195121-106.66666699999996 879.369715-106.66666699999996 924.097562-61.604318000000035 924.097562-6.017094000000043ZM774.243902-6.017094000000043C774.243902 21.77651800000001 796.607825 44.30769299999997 824.195121 44.30769299999997 851.782419 44.30769299999997 874.146342 21.77651800000001 874.146342-6.017094000000043 874.146342-33.810704999999984 851.782419-56.34187899999995 824.195121-56.34187899999995 796.607825-56.34187899999995 774.243902-33.810704999999984 774.243902-6.017094000000043Z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="face-cry" unicode="&#59036;" d="M1024 384C1024 666.769792 794.769792 896 512 896 229.230208 896 0 666.769792 0 384 0 101.23020799999995 229.230208-128 512-128 629.410831-128 740.826187-88.33104600000001 830.768465-16.686661999999956 841.557579-8.092490999999995 843.33693 7.620766000000003 834.742758 18.409879000000046 826.148587 29.198990999999978 810.43533 30.978341999999998 799.646219 22.384173000000033 718.470035-42.277495000000044 618.001779-78.04878099999996 512-78.04878099999996 256.817504-78.04878099999996 49.951219 128.81750399999999 49.951219 384 49.951219 639.182496 256.817504 846.048781 512 846.048781 767.182496 846.048781 974.048781 639.182496 974.048781 384 974.048781 296.507166 949.714859 212.66323599999998 904.470807 140.039307 897.177109 128.33175700000004 900.755245 112.92820300000005 912.462793 105.63450699999999 924.170342 98.34080900000004 939.573897 101.91894200000002 946.867595 113.62649199999998 997.013826 194.11920399999997 1024 287.101621 1024 384ZM337.170731 396.487806C371.654852 396.487806 399.609756 424.442709 399.609756 458.926829 399.609756 493.41095 371.654852 521.365854 337.170731 521.365854 302.686611 521.365854 274.731708 493.41095 274.731708 458.926829 274.731708 424.442709 302.686611 396.487806 337.170731 396.487806ZM711.804879 396.487806C746.288998 396.487806 774.243902 424.442709 774.243902 458.926829 774.243902 493.41095 746.288998 521.365854 711.804879 521.365854 677.320757 521.365854 649.365854 493.41095 649.365854 458.926829 649.365854 424.442709 677.320757 396.487806 711.804879 396.487806ZM352.788105 191.21547499999997C396.165222 225.91716899999994 453.151987 246.639629 524.487806 246.639629 595.823622 246.639629 652.810387 225.91716899999994 696.187505 191.21547499999997 722.700531 170.00505399999997 738.882517 148.42907300000002 746.631548 132.931012 752.800254 120.59359800000004 747.799529 105.59142399999996 735.462114 99.42271600000004 723.124702 93.25401 708.122526 98.25473499999998 701.953818 110.59214899999995 701.03616 112.42746499999998 698.492224 116.61747600000001 694.165854 122.38597100000004 686.602473 132.47047699999996 676.927317 142.654852 664.983226 152.21012499999995 630.311565 179.947456 584.273939 196.68840999999998 524.487806 196.68840999999998 464.70167 196.68840999999998 418.664045 179.947456 383.992384 152.21012499999995 372.048292 142.654852 362.373137 132.47047699999996 354.809756 122.38597100000004 350.483386 116.61747600000001 347.93945 112.42746499999998 347.021792 110.59214899999995 340.853084 98.25473499999998 325.850908 93.25401 313.513495 99.42271600000004 301.176081 105.59142399999996 296.175356 120.59359800000004 302.344062 132.931012 310.093092 148.42907300000002 326.275078 170.00505399999997 352.788105 191.21547499999997Z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="face-smile" unicode="&#59055;" d="M1024 384C1024 666.769792 794.769792 896 512 896 229.230208 896 0 666.769792 0 384 0 101.23020799999995 229.230208-128 512-128 629.410831-128 740.826187-88.33104600000001 830.768465-16.686661999999956 841.557579-8.092490999999995 843.33693 7.620766000000003 834.742758 18.409879000000046 826.148587 29.198990999999978 810.43533 30.978341999999998 799.646219 22.384173000000033 718.470035-42.277495000000044 618.001779-78.04878099999996 512-78.04878099999996 256.817504-78.04878099999996 49.951219 128.81750399999999 49.951219 384 49.951219 639.182496 256.817504 846.048781 512 846.048781 767.182496 846.048781 974.048781 639.182496 974.048781 384 974.048781 296.507166 949.714859 212.66323599999998 904.470807 140.039307 897.177109 128.33175700000004 900.755245 112.92820300000005 912.462793 105.63450699999999 924.170342 98.34080900000004 939.573897 101.91894200000002 946.867595 113.62649199999998 997.013826 194.11920399999997 1024 287.101621 1024 384ZM337.170731 396.487806C371.654852 396.487806 399.609756 424.442709 399.609756 458.926829 399.609756 493.41095 371.654852 521.365854 337.170731 521.365854 302.686611 521.365854 274.731708 493.41095 274.731708 458.926829 274.731708 424.442709 302.686611 396.487806 337.170731 396.487806ZM711.804879 396.487806C746.288998 396.487806 774.243902 424.442709 774.243902 458.926829 774.243902 493.41095 746.288998 521.365854 711.804879 521.365854 677.320757 521.365854 649.365854 493.41095 649.365854 458.926829 649.365854 424.442709 677.320757 396.487806 711.804879 396.487806ZM352.788105 127.22903299999996C396.165222 92.52733899999998 453.151987 71.80487900000003 524.487806 71.80487900000003 595.823622 71.80487900000003 652.810387 92.52733899999998 696.187505 127.22903299999996 722.700531 148.43945399999996 738.882517 170.01543500000002 746.631548 185.51349500000003 752.800254 197.850908 747.799529 212.85308399999997 735.462114 219.021792 723.124702 225.19049800000005 708.122526 220.18977299999995 701.953818 207.85235799999998 701.03616 206.01704299999994 698.492224 201.82703100000003 694.165854 196.058537 686.602473 185.97402899999997 676.927317 175.78965500000004 664.983226 166.23438299999998 630.311565 138.49705200000005 584.273939 121.75609799999995 524.487806 121.75609799999995 464.70167 121.75609799999995 418.664045 138.49705200000005 383.992384 166.23438299999998 372.048292 175.78965500000004 362.373137 185.97402899999997 354.809756 196.058537 350.483386 201.82703100000003 347.93945 206.01704299999994 347.021792 207.85235799999998 340.853084 220.18977299999995 325.850908 225.19049800000005 313.513495 219.021792 301.176081 212.85308399999997 296.175356 197.850908 302.344062 185.51349500000003 310.093092 170.01543500000002 326.275078 148.43945399999996 352.788105 127.22903299999996Z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="survey" unicode="&#59058;" d="M722.355804 849.454545C761.006291 849.454545 792.380951 818.166023 792.380951 779.627344L792.380951 437.500928 799.081094 453.813218 401.874746 51.22138 418.539682 58.181818 138.070006 58.181818C99.387643 58.181818 68.063492 89.328555 68.063492 127.771428L68.063492 872.727273 44.698413 849.454545 722.355804 849.454545ZM21.333333 896 21.333333 872.727273 21.333333 127.771428C21.333333 63.604277 73.59726 11.636363 138.070006 11.636363L418.539682 11.636363 428.337293 11.636363 435.204619 18.596802 832.410967 421.18864 839.11111 427.979625 839.11111 437.500928 839.11111 779.627344C839.11111 843.859757 786.827324 896 722.355804 896L44.698413 896 21.333333 896ZM775.859347 307.365395 759.337741 290.90909 775.859347 274.452787 869.319663 181.361879 885.841269 164.905574 902.362876 181.361879 972.458114 251.18006 988.979721 267.636363 972.458114 284.092668 878.997796 377.183575 862.47619 393.639878 845.954583 377.183575 775.859347 307.365395ZM845.954583 344.27097 939.414901 251.18006 939.414901 284.092668 869.319663 214.274485 902.362876 214.274485 808.902558 307.365395 808.902558 274.452787 878.997796 344.27097 845.954583 344.27097ZM518.843473 51.365395 513.841133 46.382827 512.453734 39.473248 489.088655-76.890387 482.215251-111.121568 516.58227-104.275332 633.407665-81.002605 640.344663-79.620689 645.347004-74.638121 902.362876 181.361879 918.884482 197.818182 902.362876 214.274485 808.902558 307.365395 792.380951 323.821698 775.859347 307.365395 518.843473 51.365395ZM775.859347 274.452787 869.319663 181.361879 869.319663 214.274485 612.303791-41.725515 624.243127-35.361033 507.41773-58.633758 534.911345-86.018703 558.276425 30.344934 551.886686 18.452787 808.902558 274.452787 775.859347 274.452787ZM426.576706 298.269073C444.201086 298.269073 458.488469 284.053815 458.488469 266.500753L458.488469 258.086116C458.488469 240.540958 444.323959 226.317797 426.576706 226.317797L426.576706 226.317797C408.952326 226.317797 394.664943 240.533054 394.664943 258.086116L394.664943 266.500753C394.664943 284.045911 408.829453 298.269073 426.576706 298.269073L426.576706 298.269073ZM278.349205 552.435127C278.349205 552.435127 280.851125 530.485568 305.477133 530.485568 330.103138 530.485568 331.559155 552.435127 331.559155 552.435127 329.927383 623.508937 362.988497 657.25782 430.67155 653.905282 475.722639 648.839223 499.06407 623.508937 500.624896 577.839917 497.503245 557.501184 480.405116 531.202385 449.969026 499.092521 409.671358 458.489557 389.522524 422.133143 389.522524 390.023279L389.522524 357.093903C389.522524 357.093903 392.614705 337.454532 414.885933 337.454532 437.157161 337.454532 440.249342 357.093903 440.249342 357.093903L440.249342 379.965664C440.249342 406.785969 459.546816 439.044836 498.21271 476.369762 538.652271 513.471183 558.730159 547.369069 558.730159 577.839917 555.395669 662.323878 511.195938 706.353877 425.776235 709.780917 327.515198 711.419936 278.349205 658.971339 278.349205 552.435127Z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="tree" unicode="&#58926;" d="M962.691679 258.53447400000005c-8.721639 54.163597-34.298154 97.584526-73.089645 133.8638-44.721551 41.825594-99.282191 65.724911-156.512636 84.432994-26.935466 8.80555-54.079686 16.971533-81.129762 25.427112 41.188074 7.485485 81.495082 10.991332 121.872698 12.269441 39.906895 1.26276 79.885422 0.276293 120.633475 0.276293-30.644951 44.233434-74.588789 71.110571-127.260405 84.384899-53.004191 13.357216-103.742782 9.715269-152.261822-32.081673 18.715247 66.336848 12.464893 120.18936-38.810934 160.830989-32.450063 25.719778-77.127611 31.000038-111.319341 14.916734 58.583257-31.127951 82.051761-84.265172 94.304829-145.102772-44.638663 69.056795-110.067838 96.432283-187.710173 86.487793-56.123228-7.187703-110.723777-26.270317-166.003801-40.048111 15.677051-14.358009 31.136138-24.116257 47.932686-27.839045 51.427276-11.399631 103.405091-20.301372 155.098427-30.524201 37.036521-7.323802 75.163887-12.144598 104.448864-40.879036-78.096682 23.458271-155.928329 30.034037-235.541551 9.092076C186.718589 530.20385 104.838743 479.821369 81.996502 429.437865c46.955428 23.955598 95.807043 18.776645 144.606469 17.139356 37.737486-1.266853 76.089979-3.461845 113.238041 1.594311 52.683896 7.170307 104.513332 20.624736 159.209048 31.909757-91.88164-62.077847-186.516997-122.342396-159.194722-259.889075 58.852386 100.205213 163.392324 150.107763 229.951229 238.105956-16.239869-91.498924 6.980995-169.376619 66.432015-237.83785 41.815361-48.152696 89.979314-92.010577 110.706381-156.013263 12.758582 141.877311-25.823132 270.789333-97.911984 396.334677C755.996107 391.809873 858.199837 325.909977 962.691679 258.53447400000005zM513.476631 320.10169099999996c-27.767414-14.065344-39.008432-35.954887-42.252313-64.998363-6.078439-54.437843-15.162328-108.532879-21.799492-162.916487-3.90903-32.026414-5.519714-64.333214-8.16496-96.53052 30.078039 0 55.507198 0 79.961146 0 9.912767 78.200036 19.732413 154.247037 28.913517 230.369761 0.883113 7.322779-0.756223 15.746636-3.705392 22.591531C536.246217 272.25086999999996 524.967336 295.41135899999995 513.476631 320.10169099999996z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="upload-circle" unicode="&#58927;" d="M512-128c282.768 0 512 229.216 512 512C1024 666.768 794.768 896 512 896 229.216 896 0 666.768 0 384 0 101.21600000000001 229.216-128 512-128zM512 848c256.272 0 464-207.744 464-464 0-256.272-207.728-464-464-464S48 127.72799999999995 48 384C48 640.256 255.728 848 512 848zM377.728 534.544L480 534.544l0-478c0-17.664 14.336-32 32-32s32 14.336 32 32L544 534.544l102.272 0c17.616 0 23.424 11.568 12.944 25.68l-128.128 172.624c-10.496 14.128-27.664 14.128-38.16 0L364.8 560.24C354.32 546.1120000000001 360.128 534.544 377.728 534.544z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="add-circle" unicode="&#58911;" d="M675.04 412.736l-127.04 0 0 127.264c0 20.064-16.288 36.32-36.32 36.32-20.064 0-36.32-16.192-36.32-36.32l0-127.232-127.072 0c-20.064 0-36.352-16.32-36.352-36.352 0-20.064 16.224-36.352 36.352-36.352l127.072 0 0-127.232c0-20 16.256-36.384 36.32-36.384 20.032 0 36.32 16.256 36.32 36.384l0 127.136 127.04 0c19.968 0 36.352 16.256 36.352 36.384C711.36 396.448 695.136 412.736 675.04 412.736L675.04 412.736zM511.328 830.56c-250.24 0-453.952-203.616-453.952-453.952 0-250.336 203.712-453.952 453.952-453.952 250.336 0 453.984 203.584 453.984 453.952C965.312 626.944 761.696 830.56 511.328 830.56L511.328 830.56zM511.328-20.576000000000022c-219.04 0-397.184 178.176-397.184 397.152 0 219.104 178.144 397.216 397.184 397.216s397.216-178.112 397.216-397.216C908.576 157.63199999999995 730.368-20.576000000000022 511.328-20.576000000000022L511.328-20.576000000000022zM511.328-20.576000000000022"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="download-circle" unicode="&#58881;" d="M510.771521 828.211081c-244.998947 0-443.597097-198.60429-443.597097-443.590957s198.59815-443.591981 443.597097-443.591981c244.986667 0 443.583794 198.60429 443.583794 443.591981S755.758188 828.211081 510.771521 828.211081zM510.771521-30.044013999999947c-229.010811 0-414.664138 185.65435-414.664138 414.664138 0 229.010811 185.653327 414.657998 414.664138 414.657998 228.996484 0 414.652881-185.647187 414.652881-414.657998C925.424402 155.60931300000004 739.768005-30.044013999999947 510.771521-30.044013999999947zM662.749888 352.39518799999996L537.719266 245.82501100000002l0 324.388065c0 14.887059-12.06478 26.953885-26.947745 26.953885-14.894222 0-26.961048-12.066827-26.961048-26.953885l0-325.410348L357.936647 352.39518799999996c-10.56359 10.599406-27.693736 10.599406-38.267559 0-10.56359-10.596336-10.56359-27.777647 0-38.375006l170.181961-161.220868c5.629207-5.652743 13.111622-8.060583 20.49887-7.680936 7.373944-0.379647 14.859429 2.02717 20.488637 7.680936l170.181961 161.220868c10.562567 10.597359 10.562567 27.77867 0 38.375006C690.443623 362.99561700000004 673.313477 362.99561700000004 662.749888 352.39518799999996z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="templeate-1" unicode="&#58928;" d="M320 384L106.666667 384c-35.349333 0-64-28.650667-64-64l0-213.333333c0-35.349333 28.650667-64 64-64l213.333333 0c35.349333 0 64 28.650667 64 64L384 320C384 355.349333 355.349333 384 320 384zM256 341.33333300000004l0-256L170.666667 85.33333300000004 170.666667 341.33333300000004 256 341.33333300000004zM85.333333 106.66666699999996L85.333333 320c0 11.754667 9.578667 21.333333 21.333333 21.333333l42.666667 0 0-256L106.666667 85.33333300000004C94.912 85.33333300000004 85.333333 94.91200000000003 85.333333 106.66666699999996zM341.333333 106.66666699999996c0-11.754667-9.578667-21.333333-21.333333-21.333333l-42.666667 0L277.333333 341.33333300000004l42.666667 0c11.754667 0 21.333333-9.578667 21.333333-21.333333L341.333333 106.66666699999996zM576 554.666667L234.666667 554.666667c-47.061333 0-85.333333-38.272-85.333333-85.333333l0-42.666667 42.666667 0 0 42.666667c0 23.530667 19.136 42.666667 42.666667 42.666667l42.666667 0 0-96 21.333333 0L298.666667 512l213.333333 0 0-426.666667-85.333333 0-21.333333-42.666667 170.666667 0c47.061333 0 85.333333 38.272 85.333333 85.333333L661.333333 469.333333C661.333333 516.394667 623.061333 554.666667 576 554.666667zM618.666667 128c0-23.530667-19.136-42.666667-42.666667-42.666667l-42.666667 0L533.333333 512l42.666667 0c23.530667 0 42.666667-19.136 42.666667-42.666667L618.666667 128zM853.333333 42.66666699999996c47.061333 0 85.333333 38.272 85.333333 85.333333L938.666667 640c0 47.061333-38.272 85.333333-85.333333 85.333333L341.333333 725.333333c-47.061333 0-85.333333-38.272-85.333333-85.333333l0-42.666667 42.666667 0 0 42.666667c0 23.530667 19.136 42.666667 42.666667 42.666667l85.333333 0 0-85.333333 21.333333 0 0 85.333333 298.666667 0 0-597.333333-42.666667 0-21.333333-42.666667L853.333333 42.66666699999996zM896 128c0-23.530667-19.136-42.666667-42.666667-42.666667l-85.333333 0L768 682.666667l85.333333 0c23.530667 0 42.666667-19.136 42.666667-42.666667L896 128z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="util" unicode="&#58929;" d="M282.127566 639.0826059999999c-13.120832-13.221116-30.625508-20.50808-49.278333-20.50808-18.618033 0-36.157501 7.286963-49.311079 20.50808l-32.885991 33.019021 98.623181 99.027387 32.885991-33.019021c13.186324-13.221116 20.473287-30.829146 20.473287-49.548486C302.599829 669.8769589999999 295.347658 652.26893 282.127566 639.0826059999999L282.127566 639.0826059999999zM249.308089 705.0899489999999l-0.032746 0-32.884968-32.987299c4.418636-4.417613 10.252505-6.845918 16.458857-6.845918 6.206352 0 12.041244 2.428306 16.426111 6.813173 4.418636 4.452405 6.845918 10.288321 6.845918 16.493649C256.121262 694.802652 253.693979 700.671313 249.308089 705.0899489999999L249.308089 705.0899489999999zM396.703067 496.343671L249.578242 638.778684l32.278147 33.626865 147.157571-142.468782L396.703067 496.343671 396.703067 496.343671zM751.45979 133.92852400000004L618.131179 274.071332l32.884968 32.985252 133.330658-140.141784L751.45979 133.92852400000004 751.45979 133.92852400000004zM850.184279 67.95597399999997c-22.700001-22.766516-52.481282-34.168194-82.264609-34.168194-29.714765 0-59.395762 11.333116-81.994456 34.033118L538.194592 222.398462l32.884968 33.021068L718.811206 100.806149c27.117614-27.183106 71.269183-27.116591 98.488105 0.169869 27.186176 27.287483 27.117614 71.773673-0.135076 99.196233l-147.426701 154.273642 32.851199 33.021068 147.461493-154.308435C895.447159 187.557956 895.514697 113.421468 850.184279 67.95597399999997L850.184279 67.95597399999997zM801.716404 468.380806c-30.726815-30.860868-71.605851-47.861054-115.082038-47.861054-43.442418 0-84.321454 16.999163-115.082038 47.861054-30.760584 30.861892-47.692209 71.877027-47.692209 115.521037s16.931624 84.691891 47.692209 115.554806l42.497906 42.666752 32.885991-32.986275-42.497906-42.667775c-21.99085-22.090111-34.099632-51.367925-34.065863-82.566484 0-31.163767 12.108782-60.441581 34.065863-82.499969 21.956058-22.058388 51.16531-34.20094 82.196047-34.20094 31.064506 0 60.239989 12.142551 82.196047 34.20094l42.49893 42.665729 32.884968-33.019021L801.716404 468.380806 801.716404 468.380806zM844.214311 511.049604l-49.311079 49.51267-16.45988-16.493649c-17.538445-17.638729-40.879036-27.352975-65.73719-27.352975l-0.032746 0c-24.824385 0-48.198745 9.713222-65.73719 27.352975-17.539468 17.607006-27.252691 41.082674-27.252691 66.007343 0 24.925692 9.679453 48.400337 27.252691 66.040089l16.458857 16.495696-49.344848 49.51267 32.885991 33.021068 82.196047-82.533738-49.311079-49.482995c-8.769734-8.835226-13.626345-20.571525-13.626345-33.051767 0-12.446473 4.856611-24.183795 13.626345-32.987299 8.768711-8.835226 20.439518-13.69286 32.884968-13.69286 12.411681 0 24.082488 4.857635 32.852222 13.69286l49.344848 49.514717 82.196047-82.534761L844.214311 511.049604 844.214311 511.049604zM233.591129 129.139451l0 46.681182 46.512337 0 0-46.681182L233.591129 129.139451 233.591129 129.139451zM538.160823 356.538555l-92.247984 91.572602 32.717146 33.18889 92.214215-91.539856L538.160823 356.538555 538.160823 356.538555zM304.2187 101.04355599999997l173.634596 239.842507 37.641295-27.454282L338.318332 69.23715300000003c-21.923312-22.057365-51.132564-34.20094-82.19707-34.20094-31.028691 0-60.237943 12.143575-82.196047 34.168194-21.958104 22.057365-34.065863 51.335179-34.065863 82.533738 0 31.198559 12.107759 60.476373 34.065863 82.533738l2.765997 2.360767L417.243893 412.054963l27.353998-37.742603L205.596542 200.00340600000004c-12.411681-13.053294-19.224854-30.119995-19.224854-48.26526 0-18.71934 7.252171-36.291554 20.438495-49.513694C232.747925 76.15265599999998 277.775444 75.71263499999998 304.2187 101.04355599999997L304.2187 101.04355599999997z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="face-surprised" unicode="&#58980;" d="M485.656116-128C221.592397-128 6.762016 86.81718000000001 6.762016 350.87649799999997s214.830381 478.867697 478.8941 478.867697c264.041716 0 478.854495-214.812779 478.854495-478.867697S749.697832-128 485.656116-128zM485.656116 798.834741c-247.024795 0-447.975846-200.959852-447.975846-447.962644 0-247.002792 200.951051-447.962644 447.975846-447.962644 247.002792 0 447.953843 200.959852 447.953843 447.962644C933.609959 597.8748889999999 732.658908 798.834741 485.656116 798.834741zM352.033458 447.380528c0-30.469398-24.682677-55.147675-55.143274-55.147675-30.451796 0-55.143274 24.678276-55.143274 55.147675 0 30.460597 24.691478 55.138874 55.143274 55.138874C327.350781 502.519402 352.033458 477.845526 352.033458 447.380528zM674.417647 502.519402c-30.460597 0-55.156476-24.678276-55.156476-55.138874 0-30.469398 24.695879-55.147675 55.156476-55.147675 30.451796 0 55.143274 24.678276 55.143274 55.147675C729.560922 477.845526 704.869444 502.519402 674.417647 502.519402zM562.005634 165.30976499999997c0-59.733046-34.192262-108.165484-76.349518-108.165484-42.166057 0-76.36272 48.432438-76.36272 108.165484 0 59.724245 34.196663 108.152282 76.36272 108.152282C527.813371 273.45764699999995 562.005634 225.03400999999997 562.005634 165.30976499999997zM835.631745 793.712503c0 0 12.871605 56.819883 41.959231 85.925112 29.083226 29.096427 69.915916 15.124685 78.492585-8.801097 9.461179-26.385689-2.033053-50.069442-29.092027-56.164202C899.404495 808.463141 874.880237 826.192952 835.631745 793.712503zM916.698651 757.570797c0 0 35.767659 20.576965 64.877288 19.393218 29.136032-1.174946 41.431165-29.144833 33.109728-45.110024-9.192746-17.588993-27.054573-22.966463-43.217788-11.797871C954.979023 731.44034 952.453108 752.721393 916.698651 757.570797z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="edit" unicode="&#58946;" d="M769.089 516.251l-125.896 125.89 62.974 62.947c20.866 20.838 54.652 20.838 75.517 0l50.353-50.351c20.865-20.865 20.865-54.703 0-75.567L769.089 516.251zM403.349 150.52700000000004L277.453 276.418 619.706 615.982 745.601 490.09ZM176.314 47.283000000000015L252.912 251.87699999999995 377.753 127.01199999999994Z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="speaker" unicode="&#58949;" d="M587.182306 754.7203c-6.003737 2.705622-13.043061 1.642406-17.984606-2.721994l-259.223926-229.293243-148.246369 0c-9.253758 0-16.752546-7.498788-16.752546-16.756639l0-267.886213c0-9.249665 7.498788-16.756639 16.752546-16.756639l144.050814 0c9.253758 0 16.752546 7.506974 16.752546 16.756639L322.530764 490.391099c1.774413 0.704035 3.433192 1.719154 4.892427 3.010567l236.127905 208.861912 0-653.332912-160.751171 137.64287c-2.12643 1.824555-90.300632 78.69941-93.927229 76.162634-4.427846-3.097548-15.768125-17.59882-18.419512-22.512736-0.953721-1.768273-2.196015-1.334391 15.413038-16.379039 25.674753-21.936615 73.780377-61.548798 75.144444-62.717414l10.007935-8.570189 178.388876-152.761196c3.093455-2.653433 6.978948-4.028757 10.900258-4.028757 2.369977 0 4.756327 0.503467 7.003508 1.534959 5.939269 2.738367 9.749038 8.677637 9.749038 15.217586L597.060281 739.446431C597.060281 746.034477 593.190137 752.013655 587.182306 754.7203L587.182306 754.7203zM290.453185 254.814756l-115.040083 0L175.413102 489.195877l115.03906 0 0-234.381122L290.453185 254.814756zM747.742119 375.98444300000006c0-51.55212-34.83232-96.658434-84.702124-109.693308-1.415232-0.375553-2.846838-0.551562-4.245697-0.551562-7.438413 0-14.234189 4.992711-16.200984 12.523221-2.338255 8.949836 3.021823 18.104333 11.967566 20.442588 35.136242 9.18929 59.672054 40.96397 59.672054 77.279061 0 36.307927-24.535813 68.090794-59.672054 77.271898-8.945743 2.346441-14.305821 11.492752-11.967566 20.450774 2.342348 8.953929 11.499915 14.305821 20.446681 11.967566C712.909799 472.643899 747.742119 427.530422 747.742119 375.98444300000006L747.742119 375.98444300000006zM864.950588 375.793084c0-88.87619-48.554856-170.44495-126.718053-212.883505-2.537799-1.375324-5.276167-2.02717-7.982812-2.02717-5.939269 0-11.69946 3.166109-14.733563 8.762571-4.417613 8.134261-1.39886 18.303878 6.727215 22.720468 67.350944 36.566824 109.198028 106.851587 109.198028 183.427636 0 76.844156-42.055838 147.272181-109.741403 183.78784-8.154727 4.396123-11.192923 14.557554-6.795776 22.700001 4.38896 8.142447 14.558577 11.184737 22.701025 6.795776C816.151162 546.697499 864.950588 464.976266 864.950588 375.793084L864.950588 375.793084z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="down" unicode="&#58906;" d="M888.306 619.94c15.615 15.617 40.93 15.617 56.545 0v0c15.617-15.615 15.617-40.93 0-56.545l-405.733-405.734c-15.615-15.617-40.928-15.617-56.545 0v0c-15.615 15.615-15.615 40.93 0 56.545l405.733 405.734zM538.619 214.20600000000002c15.617-15.615 15.617-40.93 0-56.545v0c-15.615-15.617-40.928-15.617-56.545 0l-405.734 405.734c-15.615 15.615-15.615 40.93 0 56.545v0c15.617 15.617 40.93 15.617 56.547 0l405.732-405.734zM538.619 214.20600000000002z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="file" unicode="&#58913;" d="M887.443911 598.6304l0-44.578133 0-45.511111 0-477.866667c0-37.705956-30.560711-68.266667-68.266667-68.266667l-614.4 0c-37.705956 0-68.266667 30.560711-68.266667 68.266667l0 705.422222c0 37.6832 30.560711 68.266667 68.266667 68.266667l386.844444 0 45.511111 0 38.024533 0c7.805156 2.594133 16.566044 1.2288 22.778311-5.006222l183.136711-183.159467C885.919289 611.373511 887.876267 604.9564439999999 887.443911 598.6304zM659.888356 531.296711c-12.583822 0-22.755556 10.171733-22.755556 22.755556l0 204.8-45.511111 0-364.088889 0c-25.122133 0-45.511111-20.388978-45.511111-45.511111l0-659.911111c0-25.122133 20.388978-45.511111 45.511111-45.511111l568.888889 0c25.122133 0 45.511111 20.388978 45.511111 45.511111l0 455.111111 0 22.755556L659.888356 531.296711zM682.643911 750.273422l0-173.4656 159.288889 0 0 14.176711L682.643911 750.273422z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="layouts" unicode="&#58930;" d="M917.213-103.239h-810.426c-23.151 0-41.918 18.766-41.918 41.917l0 698.644c0 23.148 18.767 41.917 41.918 41.917h810.426c23.149 0 41.918-18.769 41.918-41.917v-698.643c0-23.151-18.769-41.918-41.918-41.918zM316.38-61.321h600.833v363.294h-600.833v-363.294zM106.787-61.321h167.674v363.294h-167.674v-363.294zM148.705 637.322c-23.151 0-41.918-18.769-41.918-41.92s18.767-41.92 41.918-41.92 41.92 18.768 41.92 41.92-18.769 41.92-41.92 41.92zM274.461 637.322c-23.151 0-41.918-18.769-41.918-41.92s18.767-41.92 41.918-41.92c23.151 0 41.92 18.768 41.92 41.92s-18.77 41.92-41.92 41.92zM400.216 637.322c-23.15 0-41.918-18.769-41.918-41.92s18.769-41.92 41.918-41.92c23.152 0 41.92 18.768 41.92 41.92s-18.768 41.92-41.92 41.92zM875.293 511.566h-768.506v-167.675h810.426l0 167.675h-41.921z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="rate-half" unicode="&#59081;" d="M1012.064 504l-359.552 31.008-140.512 331.04-140.512-331.552-359.552-30.496 273.024-236.544-82.016-351.552 309.056 186.528 309.056-186.528-81.504 351.552 272.544 236.544zM512 195.96799999999996l0 465.056 85.504-202.016 219.04-19.008-166.016-144.032 50.016-214.016-188.512 114.016z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="add-circle-fine" unicode="&#58888;" d="M509.989715-60.972421000000054c-246.734474 0-446.75195 200.023616-446.75195 446.75809 0 246.732427 200.017476 446.75195 446.75195 446.75195 246.733451 0 446.757067-200.019523 446.757067-446.75195C956.746782 139.051195 756.723166-60.972421000000054 509.989715-60.972421000000054L509.989715-60.972421000000054zM509.989715 812.433746c-235.633648 0-426.650123-191.014428-426.650123-426.648077 0-235.639788 191.016475-426.654216 426.650123-426.654216 235.638765 0 426.654216 191.014428 426.654216 426.654216C936.643931 621.419318 745.62848 812.433746 509.989715 812.433746L509.989715 812.433746zM527.863804 153.46957999999995l-35.741016 0L492.122789 367.909533 277.678742 367.909533 277.678742 403.653619l214.443024 0L492.121765 618.0956189999999l35.741016 0L527.862781 403.653619l214.442 0 0-35.744086L527.863804 367.909533 527.863804 153.46957999999995 527.863804 153.46957999999995zM527.863804 153.46957999999995"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="prev-circle" unicode="&#58931;" d="M508.638018 827.97307c-246.403458 0-446.845649-200.463469-446.845649-446.845649 0-246.382179 200.442191-446.845649 446.845649-446.845649 246.382179 0 446.845649 200.463469 446.845649 446.845649C955.483667 627.5096 755.041476 827.97307 508.638018 827.97307zM508.638018-23.16149900000005c-222.933422 0-404.28892 181.355498-404.28892 404.28892 0 222.933422 181.355498 404.28892 404.28892 404.28892 222.912144 0 404.28892-181.355498 404.28892-404.28892C912.926939 158.19399899999996 731.57144-23.16149900000005 508.638018-23.16149900000005zM252.87208 485.1999c8.639016 26.129831-32.470784 37.215859-41.067243 11.32009-27.810822-83.730363-22.321004-168.545923 14.086277-248.573851 11.362646-24.938243 48.025268-3.298146 36.747735 21.491148C230.976644 339.081373 228.806251 412.853462 252.87208 485.1999zM599.262572 247.73335499999996l-127.627629 133.394065 127.47868 133.223838c9.043305 9.064583 9.022026 23.789211-0.021278 32.832516-8.809243 8.830521-24.087108 8.766686-32.832516 0l-148.310199-148.310199c-4.617405-4.638683-6.979303-11.064749-6.553736-17.746156-0.404289-6.702685 1.936331-13.107472 6.575015-17.788712l148.310199-148.28892c4.383343-4.383343 10.213615-6.787798 16.405619-6.787798 6.170726 0 12.000997 2.404455 16.405619 6.787798C608.156928 224.114371 608.156928 238.83899899999994 599.262572 247.73335499999996z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="read" unicode="&#59141;" d="M335.282306 712.495464C399.587328 713.451107 442.778899 696.882717 470.183494 669.3706540000001 479.127332 660.39174 485.691302 650.857363 490.241971 641.442689 492.795622 636.159553 494.049041 632.438701 494.358795 631.0740940000001L493.723712 636.7409230000001 493.723706 196.90019600000005C493.723706 199.018106 495.816045 203.920655 503.591595 207.36436700000002 511.039185 210.66283299999998 515.68422 209.16527399999995 517.176538 207.906613L500.671543 188.33763 521.297207 203.50146800000005C514.140179 213.23636899999997 499.631258 225.71450900000002 476.134074 237.35914000000002 439.577969 255.475456 390.86048 266.10507900000005 328.491925 266.10508200000004 265.860796 266.10508200000004 219.424582 255.71817999999996 186.827162 237.741581 164.977332 225.69198700000004 152.538132 212.28117299999997 147.220271 201.30886999999996L170.257196 190.14374199999997 151.035786 207.05224299999998C152.884078 209.15336100000002 158.307299 211.80336599999998 167.849005 208.050434 177.092077 204.41496099999995 179.2 199.20011699999998 179.2 196.66445199999998L179.2 497.049743 179.2 636.7409230000001 175.817447 624.023021C177.078908 626.226721 180.088681 630.807811 184.828724 636.965629 192.95423 647.521524 202.792594 658.127492 214.297641 668.007961 247.526453 696.544681 287.381649 713.209056 334.514421 712.495571L335.282306 712.495464ZM335.289387 763.689705C274.661039 764.607483 223.081402 743.04085 180.940156 706.850184 156.32698 685.712527 139.975514 664.470237 131.382553 649.4588249999999L128 643.549699 128 636.7409230000001 128 497.049743 128 196.66445199999998C128 159.26104999999995 164.542545 144.88818300000003 189.478606 173.23524099999997L191.776657 175.84764199999995 193.294121 178.978613C194.07832 180.59664399999997 199.156367 186.07133399999998 211.552092 192.907243 236.030601 206.40648099999999 274.024879 214.905082 328.491925 214.905082 383.221547 214.905079 424.163878 205.97190999999998 453.399258 191.483569 469.376966 183.56540600000005 477.614626 176.48075300000005 480.045882 173.17379000000005L481.844905 170.72677999999996 484.166551 168.768644C511.279708 145.90070000000003 544.923706 160.801293 544.923706 196.90019600000005L544.923712 636.740922 544.288627 642.407751C540.427211 659.419023 529.175531 682.697124 506.45814 705.503602 468.987716 743.1209699999999 412.352271 764.846461 334.521502 763.689812L335.289387 763.689705ZM0 506.026694L0 27.856867999999963C0-8.875636999999983 34.793167-23.40043300000002 61.4635 1.2485080000000153L63.46242 3.315859000000046C65.301149 5.444836000000009 69.655573 9.862312999999972 76.498228 15.820363000000043 88.306297 26.101906999999983 102.566352 36.46294 119.251411 46.17438500000003 167.295691 74.13829099999998 224.90855 90.95018200000004 292.337329 90.95018200000004 358.378978 90.95018000000005 409.459345 71.66956600000003 448.125308 39.64774 461.506042 28.56627400000002 472.380655 16.734758000000056 480.912593 4.997000999999955 485.832384-1.7713730000000396 488.762874-6.741985999999997 489.872527-9.02252199999998 496.058545-21.73590200000001 511.379537-27.027375000000006 524.092917-20.84135500000002 536.806298-14.655337000000031 542.097771 0.6656550000000152 535.91175 13.379036000000042 527.471002 30.726293000000055 509.777717 55.06771800000001 480.782336 79.08069999999998 433.134118 118.54132300000003 370.586889 142.15017999999998 292.337329 142.15018199999997 215.474895 142.15018499999996 149.074727 122.77408400000002 93.495781 90.424668 59.761154 70.78961500000003 36.872315 50.859801999999945 24.713677 36.78188399999999L44.088049 20.048869999999965 26.712598 38.84923500000002C28.162783 40.189508000000046 32.877261 41.946117999999956 40.792576 38.64178100000004 49.035365 35.200736000000006 51.2 30.12989200000004 51.2 27.856867999999963L51.2 506.026694C51.2 520.165184 39.73849 531.626694 25.6 531.626694 11.46151 531.626694 0 520.165184 0 506.026694L0 506.026694ZM696.80221 763.689812C618.971441 764.846461 562.335996 743.1209699999999 524.86557 705.503602 502.148181 682.697124 490.896501 659.419023 487.035083 642.407751L486.4 636.740922 486.400004 196.90019600000005C486.400006 160.801293 520.044004 145.90070000000003 547.157161 168.768644L549.478807 170.72677999999996 551.27783 173.17379000000005C553.709086 176.48075300000005 561.946746 183.56540600000005 577.924452 191.483569 607.159834 205.97190999999998 648.102165 214.905079 702.831787 214.905082 757.298833 214.905082 795.293111 206.40648099999999 819.77162 192.907243 832.167345 186.07133399999998 837.245391 180.59664399999997 838.029591 178.978613L839.547055 175.84764199999995 841.845105 173.23524099999997C866.781167 144.88818300000003 903.323712 159.26104999999995 903.323712 196.66445199999998L903.323712 497.049743 903.323712 636.7409230000001 903.323712 643.549699 899.941158 649.4588249999999C891.348196 664.470237 874.996732 685.712527 850.383556 706.850184 808.24231 743.04085 756.662673 764.607483 696.034325 763.689705L696.80221 763.689812ZM696.809291 712.495571C743.942063 713.209056 783.797257 696.544681 817.026071 668.007961 828.531119 658.127492 838.369481 647.521524 846.494989 636.965629 851.235031 630.807811 854.244804 626.226721 855.506263 624.023021L852.123712 636.7409230000001 852.123712 497.049743 852.123712 196.66445199999998C852.123712 199.20011699999998 854.231635 204.41496099999995 863.474707 208.050434 873.016412 211.80336599999998 878.439633 209.15336100000002 880.287925 207.05224299999998L861.066515 190.14374199999997 884.103441 201.30886999999996C878.785579 212.28117299999997 866.346381 225.69198700000004 844.49655 237.741581 811.89913 255.71817999999996 765.462916 266.10508200000004 702.831785 266.10508200000004 640.463232 266.10507900000005 591.745741 255.475456 555.189638 237.35914000000002 531.692454 225.71450900000002 517.183533 213.23636899999997 510.026502 203.50146800000005L530.652166 188.33763 514.147172 207.906613C515.63949 209.16527399999995 520.284527 210.66283299999998 527.732117 207.36436700000002 535.507665 203.920655 537.600004 199.018106 537.600004 196.90019600000005L537.6 636.7409230000001 536.964917 631.0740940000001C537.274671 632.438701 538.52809 636.159553 541.081741 641.442689 545.63241 650.857363 552.196378 660.39174 561.140218 669.3706540000001 588.544813 696.882717 631.736384 713.451107 696.041406 712.495464L696.809291 712.495571ZM972.799998 506.026694L972.799998 27.856867999999963C972.799998 30.12989200000004 974.964631 35.200736000000006 983.207422 38.64178100000004 991.122737 41.946117999999956 995.837214 40.189508000000046 997.287401 38.84923500000002L979.911949 20.048869999999965 999.286321 36.78188399999999C987.127682 50.859801999999945 964.238844 70.78961500000003 930.504218 90.424668 874.925269 122.77408400000002 808.525103 142.15018499999996 731.662669 142.15018199999997 653.132708 142.15017999999998 590.55104 117.26282200000003 543.127755 75.73800100000005 514.370099 50.55719499999998 496.945662 25.10259599999995 488.705389 7.022771000000034 482.841769-5.842485000000011 488.517717-21.02524200000005 501.382974-26.888862000000017 514.248233-32.752481999999986 529.430987-27.07653300000004 535.294607-14.211275 536.420563-11.740835999999945 539.350332-6.450639000000024 544.25735 0.7178109999999833 552.731727 13.097653000000037 563.54464 25.561581000000047 576.856734 37.21792900000003 615.190044 70.78337499999998 665.901421 90.95018000000005 731.662669 90.95018200000004 799.091447 90.95018200000004 856.704307 74.13829099999998 904.748587 46.17438500000003 921.433645 36.46294 935.6937 26.101906999999983 947.501771 15.820363000000043 954.344425 9.862312999999972 958.698848 5.444836000000009 960.537577 3.315859000000046L962.536497 1.2485080000000153C989.206831-23.40043300000002 1023.999998-8.875636999999983 1023.999998 27.856867999999963L1023.999998 506.026694C1023.999998 520.165184 1012.538487 531.626694 998.399998 531.626694 984.261508 531.626694 972.799998 520.165184 972.799998 506.026694L972.799998 506.026694Z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="404" unicode="&#58908;" d="M300.197309 299.705317l4.427931 1.803972c1.147982-2.787956 10.167841-7.543882 26.89558-14.267777l5.411915-12.955798c10.659833-24.927611 23.123639-62.483024 37.555413-112.66624 14.431775 5.575913 34.439462 0.983985 60.351057-13.611787l1.803972-4.427931L389.575913 107.828315l18.203716-42.639334c2.459962-5.575913-12.463805-15.579757-44.7713-29.847534-11.151826 7.215887-19.84369 9.675849-26.403587 7.05189l-0.983985 2.131967c-10.823831 25.419603-16.235746 42.311339-16.399744 50.675208l-4.427931-1.803972 6.3959-14.923767-11.151826-4.263933c-41.655349-16.235746-71.830878-18.695708-90.690583-7.871877l-4.427931-1.803972-1.803972 4.263933c-7.05189 16.727739 3.607944 77.406791 32.307495 182.037156 11.479821 4.427931 19.1877 14.923767 22.959641 31.323511C281.337604 290.685458 291.83344 296.425368 300.197309 299.705317L300.197309 299.705317zM216.230621 80.276746c28.371557 19.515695 40.999359 32.799488 38.047406 39.68738-0.983985 2.131967-0.65599 5.575913 0.65599 10.167841l-0.983985 2.131967c-25.5836-21.483664-38.047406-32.963485-37.391416-34.439462C215.246637 88.804612 215.082639 83.064702 216.230621 80.276746L216.230621 80.276746zM216.722614 72.896861l0.983985-2.131967c11.643818 1.147982 21.155669 3.279949 28.699552 6.231903 0.819987 0.327995 7.379885 5.411915 19.84369 15.251762l-0.983985 2.131967c-7.543882-2.951954-12.7918-0.983985-15.743754 6.067905C226.398463 85.032671 215.574632 75.848815 216.722614 72.896861L216.722614 72.896861zM225.90647 143.743754l11.151826 4.263933c-1.147982-2.623959-6.3959-8.691864-15.579757-18.53171-2.295964-10.823831-2.787956-17.547726-1.639974-20.335682 27.715567 20.663677 40.34337 33.783472 37.883408 39.523382l0.819987 10.331839-3.443946-3.935939-9.019859-3.443946-0.983985 2.131967c11.151826 4.263933 17.875721 16.891736 20.49968 37.719411l-0.983985 2.131967C239.35426 172.443306 227.21845 160.307495 227.874439 157.027546L225.90647 143.743754 225.90647 143.743754zM231.646381 173.42729l0.983985-2.131967 2.131967 0.819987c28.371557 23.123639 40.179372 40.179372 35.423447 51.331198 1.475977 0.65599 1.967969 1.639974 1.475977 2.951954l-2.295964-0.819987c-28.863549-21.647662-40.999359-38.047406-36.407431-49.035234C231.482383 175.723254 230.990391 174.73927 231.646381 173.42729L231.646381 173.42729zM240.994234 211.966688l0.983985-2.131967c13.775785 10.331839 35.915439 29.847534 66.418962 58.21909l2.131967 0.819987-6.3959 14.923767 0.491992 5.083921-2.295964-0.819987c-36.571429-32.963485-55.431134-51.82319-56.579116-56.743113L240.994234 211.966688 240.994234 211.966688zM311.67713 107.336323l-35.751441-13.939782c-1.475977-0.491992-6.887892-4.263933-16.235746-11.315823l0.819987-1.967969 12.299808 2.131967 20.007687 7.871877c11.643818 4.591928 32.143498 19.84369 61.171044 46.08328l-6.3959 14.923767-2.131967-0.819987c-24.107623-16.891736-34.439462-29.191544-31.159513-36.899423C315.449071 110.616272 314.629084 108.484305 311.67713 107.336323L311.67713 107.336323zM267.889814 264.773863l0.819987-1.967969c17.875721 16.891736 27.387572 25.419603 28.207559 25.747598l-0.983985 2.131967-8.855862-3.443946C274.941704 282.485586 268.545804 274.941704 267.889814 264.773863L267.889814 264.773863zM275.597694 222.954516c16.071749-37.883408 20.007687-67.894939 11.971813-90.034593l-3.443946-28.863549 26.89558 10.495836c-7.543882 30.011531-18.367713 65.598975-32.471493 106.926329l-0.983985 2.131967L275.597694 222.954516 275.597694 222.954516zM279.369635 231.810378l6.3959-14.923767c13.44779 15.087764 24.435618 24.271621 32.63549 27.55157l-3.607944 8.527867-2.459962 11.643818-2.131967-0.819987C289.045484 247.06214 278.713645 236.566304 279.369635 231.810378L279.369635 231.810378zM292.817425 194.58296c23.943626 17.219731 33.619475 30.995516 29.191544 41.491352l-2.787956 6.3959-2.295964-0.819987c-21.483664-18.859705-30.667521-31.651505-27.879564-38.3754L292.817425 194.58296 292.817425 194.58296zM294.457399 190.483024l2.787956-6.3959 2.295964-11.807816 2.295964 0.819987-0.491992-5.083921 6.3959-14.923767 32.471493 27.387572-6.3959 15.087764c-9.347854-10.331839-16.235746-16.399744-20.827675-18.203716l-2.295964-0.983985c-0.65599 1.639974 6.067905 10.167841 20.335682 25.419603l-3.115951 13.611787-0.983985 2.131967L294.457399 190.483024 294.457399 190.483024zM307.413197 148.171685l2.787956-6.3959 2.295964-11.643818c23.943626 17.219731 35.259449 27.387572 33.94747 30.503523l-5.411915 12.955798C329.224856 165.719411 318.07303 157.191544 307.413197 148.171685L307.413197 148.171685zM355.792441 131.935939c-23.779628-17.711723-34.111467-30.011531-30.995516-37.227418l1.475977-9.347854c25.255605 18.039718 36.899423 29.355541 34.931454 33.783472 24.435618 21.155669 38.703395 32.471493 42.803331 33.94747l-0.819987 1.967969c-1.803972 2.787956-6.723895 4.099936-14.595772 4.427931l-30.831518-31.9795L355.792441 131.935939 355.792441 131.935939zM327.912876 81.26073l4.591928-10.659833-0.491992-5.083921 2.295964 0.819987c23.451634 14.595772 34.275464 23.615631 32.63549 27.55157l-5.411915 12.955798L327.912876 81.26073 327.912876 81.26073zM333.816784 61.253043l5.411915-12.7918c25.747598 13.283792 37.719411 22.139654 35.915439 26.403587l-4.591928 10.659833C348.412556 70.272902 336.112748 62.237028 333.816784 61.253043L333.816784 61.253043zM357.596413 139.971813l1.803972-4.099936c4.919923 1.967969 8.527867 9.839846 10.823831 23.943626l-2.295964-0.819987C364.648302 147.679693 361.204356 141.44779 357.596413 139.971813L357.596413 139.971813zM731.674568 256.081999l3.935939-0.163997c-0.163997-2.459962 4.755926-9.019859 14.759769-19.515695l-0.65599-11.315823c-1.147982-21.975657-5.411915-53.955157-12.955798-95.774504 12.627803-0.65599 25.911595-10.659833 39.68738-30.175529l-0.163997-3.935939-47.887252-10.823831-1.967969-37.719411c-0.327995-4.919923-14.923767-7.379885-43.951313-7.379885-5.575913 9.019859-11.151826 13.775785-16.891736 13.939782l0.163997 1.967969c1.147982 22.467649 3.279949 36.735426 6.231903 42.967329l-3.935939 0.163997-0.65599-13.119795-9.839846 0.491992c-36.571429 1.803972-60.023062 9.839846-70.026906 24.271621l-3.935939 0.163997 0.163997 3.771941c0.819987 14.759769 30.667521 56.087124 89.706598 124.14606 10.167841-0.491992 19.515695 4.755926 28.371557 15.579757C714.290839 255.754004 724.294683 256.573991 731.674568 256.081999L731.674568 256.081999zM587.848815 115.86419l-0.163997-1.967969c9.019859-2.951954 16.891736-4.591928 23.615631-4.919923 0.65599 0 7.379885 1.475977 20.171685 4.755926l0.163997 1.967969c-6.723895 0.327995-9.839846 3.607944-9.511851 9.675849C599.328635 121.6041 588.012812 118.324151 587.848815 115.86419L587.848815 115.86419zM590.144779 121.440102c28.043562 5.083921 42.147341 10.659833 42.475336 16.727739 0.163997 1.803972 1.475977 4.263933 4.099936 7.215887l0.163997 1.967969c-26.731582-7.379885-40.015375-11.807816-40.179372-13.119795C592.440743 128.163997 590.308776 123.900064 590.144779 121.440102L590.144779 121.440102zM620.15631 165.227418l9.839846-0.491992c-1.803972-1.475977-7.871877-4.427931-18.367713-8.527867-5.575913-7.215887-8.527867-12.13581-8.527867-14.595772 28.043562 6.067905 42.147341 11.643818 42.311339 16.727739l4.263933 7.379885-3.935939-1.803972-8.035874 0.327995 0.163997 1.967969c9.839846-0.491992 19.351698 6.559898 28.863549 21.155669l0.163997 1.967969c-26.23959-7.379885-39.68738-12.463805-40.34337-14.923767L620.15631 165.227418 620.15631 165.227418zM670.667521 109.960282l-31.487508 1.475977c-1.31198 0-6.559898-0.983985-16.071749-2.951954l-0.163997-1.803972 9.839846-2.459962 17.711723-0.819987c10.331839-0.491992 30.995516 4.099936 61.991031 13.939782l0.65599 13.119795-1.803972 0.163997c-23.943626-4.591928-36.079436-10.167841-36.407431-16.891736C674.603459 110.944266 673.29148 109.796284 670.667521 109.960282L670.667521 109.960282zM635.244074 185.399103l-0.163997-1.967969 1.803972-0.163997c29.355541 7.70788 44.279308 16.563741 44.7713 26.23959 1.31198 0 2.131967 0.491992 2.131967 1.639974l-1.967969 0.163997c-29.191544-6.3959-44.115311-14.595772-44.607303-24.271621C635.900064 187.039078 635.244074 186.547085 635.244074 185.399103L635.244074 185.399103zM685.755285 207.37476c-1.803972-33.29148-9.675849-56.907111-23.615631-70.682896l-12.955798-20.171685 23.779628-1.147982c5.247918 24.763613 10.167841 54.611147 14.595772 89.870596l0.163997 1.967969L685.755285 207.37476 685.755285 207.37476zM656.071749 210.818706l-0.163997-1.967969c13.939782 3.115951 37.391416 10.167841 70.354901 21.155669l1.803972-0.163997 0.65599 13.119795 2.295964 3.607944-1.967969 0.163997c-39.03139-12.299808-59.859065-20.007687-62.483024-23.287636L656.071749 210.818706 656.071749 210.818706zM670.339526 68.46893l-0.65599-11.315823c23.943626 1.31198 35.915439 3.935939 36.079436 7.70788l0.491992 9.347854C684.443306 70.272902 672.471493 68.304933 670.339526 68.46893L670.339526 68.46893zM673.29148 85.196669l-0.491992-9.347854-2.295964-3.607944 1.967969-0.163997c22.631646 2.951954 33.94747 6.231903 34.111467 9.511851l0.65599 11.315823L673.29148 85.196669 673.29148 85.196669zM712.158873 113.568225c-23.943626-5.247918-36.079436-10.987828-36.407431-17.219731l-2.295964-7.379885c25.255605 5.083921 37.883408 9.511851 38.211403 13.44779 25.747598 7.543882 40.34337 11.151826 43.951313 10.987828l0.163997 1.803972c-0.327995 2.623959-3.443946 5.247918-9.347854 8.035874l-34.439462-13.44779L712.158873 113.568225 712.158873 113.568225zM682.147341 141.611787l-0.327995-5.73991-2.459962-9.347854c23.943626 4.755926 36.079436 8.691864 36.079436 11.479821l0.65599 11.315823C704.778988 147.351698 693.463165 144.727739 682.147341 141.611787L682.147341 141.611787zM688.051249 177.199231l-0.327995-5.73991-2.623959-9.511851 1.967969-0.163997-2.295964-3.607944-0.65599-13.119795 33.94747 9.511851 0.65599 13.283792c-10.659833-4.591928-18.039718-6.723895-21.975657-6.559898l-1.967969 0.163997c0 1.475977 8.199872 5.411915 24.271621 12.13581l2.623959 11.151826 0.163997 1.967969L688.051249 177.199231 688.051249 177.199231zM688.215247 180.807175c23.943626 4.755926 36.243434 11.807816 36.735426 20.991672l0.327995 5.73991-1.967969 0.163997c-22.631646-6.887892-34.275464-13.283792-34.603459-19.1877L688.215247 180.807175 688.215247 180.807175zM691.82319 212.786675l-0.65599-13.119795c15.415759 6.723895 26.89558 10.003844 34.111467 9.511851l0.327995 7.543882 2.459962 9.511851-1.803972 0.163997C704.450993 220.986547 692.971172 216.558616 691.82319 212.786675L691.82319 212.786675zM695.103139 240.994234l-0.163997-1.803972c19.351698 6.559898 29.355541 9.839846 30.339526 9.839846l0.163997 1.967969-7.871877 0.327995C706.746957 251.818065 699.367072 248.374119 695.103139 240.994234L695.103139 240.994234zM716.422806 118.980141l-0.163997-3.607944c4.427931-0.163997 10.003844 4.427931 16.727739 14.10378l-1.967969 0.163997C724.45868 122.26009 719.538757 118.816143 716.422806 118.980141L716.422806 118.980141zM479.118514 382.196028c53.627162 10.167841 89.870596 1.967969 109.222293-24.599616 9.675849-18.695708 15.579757-33.455477 17.875721-44.279308 11.807816-56.743113-5.903908-103.154388-53.299167-138.741832-12.463805-5.083921-22.631646-8.363869-30.339526-10.003844-31.651505-6.067905-63.631006 5.083921-95.938501 33.455477-9.347854 16.399744-15.251762 31.159513-18.039718 44.279308-13.283792 63.795003 1.967969 108.238309 45.919283 133.165919L479.118514 382.196028 479.118514 382.196028zM410.075593 265.429853c6.231903 5.247918 11.479821 8.199872 15.579757 9.019859-9.675849-9.347854-14.431775-15.087764-13.939782-17.219731-0.327995-5.411915-0.163997-10.167841 0.819987-14.267777l2.131967 0.327995c24.271621 15.743754 35.915439 25.5836 35.095452 29.519539l-2.131967 10.003844c-4.099936-3.607944-8.035874-5.73991-11.643818-6.559898l-0.819987 4.099936c10.823831 2.131967 15.251762 11.971813 13.44779 29.519539l-1.967969-0.327995c-22.467649-16.399744-34.603459-27.715567-36.407431-33.94747C409.255605 273.30173 409.255605 269.857783 410.075593 265.429853L410.075593 265.429853zM410.23959 286.257527c33.127482 21.647662 47.887252 40.34337 44.607303 56.251121-29.683536-23.615631-44.443306-36.079436-44.279308-37.555413C409.747598 295.769379 409.5836 289.537476 410.23959 286.257527L410.23959 286.257527zM412.699552 315.777066l0.491992-2.131967c27.059577 20.663677 44.607303 37.227418 52.643177 49.527226 10.331839 1.967969 17.055734 7.379885 20.49968 16.235746l-2.131967-0.491992C447.303011 372.028187 423.523382 350.872518 412.699552 315.777066L412.699552 315.777066zM414.339526 234.926329c2.459962-4.919923 4.263933-9.347854 5.083921-13.44779 18.859705 14.759769 30.339526 22.467649 34.111467 23.123639l-3.771941 18.039718C444.18706 261.493914 432.379244 252.310058 414.339526 234.926329L414.339526 234.926329zM421.883408 220.002562c2.131967-9.839846 5.247918-14.759769 9.675849-14.759769l27.879564 21.975657c-0.327995 1.147982-2.131967 6.231903-5.411915 15.415759C437.299167 228.530429 426.639334 220.986547 421.883408 220.002562L421.883408 220.002562zM432.707239 199.174888c5.083921-5.903908 8.527867-8.691864 10.495836-8.363869l3.935939 0.819987c10.987828 10.495836 19.1877 16.235746 24.599616 17.219731-0.819987 3.935939-3.935939 8.855862-9.511851 14.759769C442.21909 209.014734 432.379244 200.814862 432.707239 199.174888L432.707239 199.174888zM448.450993 185.563101l0.491992-2.131967c2.459962 0.491992 6.3959-0.819987 11.807816-3.771941 18.859705 10.003844 28.207559 16.727739 28.207559 19.84369-6.067905 1.639974-9.511851 4.427931-10.331839 8.363869C466.818706 202.946829 456.814862 195.566944 448.450993 185.563101L448.450993 185.563101zM469.442665 179.331198l0.491992-2.131967 14.923767 0.65599 12.627803 2.459962c2.459962 0.491992 8.199872 3.771941 17.547726 9.839846l-0.491992 2.131967c-6.887892-1.31198-13.611787 0.163997-20.49968 4.263933L469.442665 179.331198 469.442665 179.331198zM476.494555 249.030109l4.591928-21.811659c2.951954-14.431775 12.463805-25.091608 28.535554-31.9795l4.099936 0.819987c24.599616 34.275464 32.143498 73.798847 22.795644 118.570147l-2.459962 11.971813-6.231903 19.515695-6.067905-1.147982c-3.935939-0.819987-14.267777 0-30.831518 2.295964C473.870596 316.597053 469.278668 283.961563 476.494555 249.030109L476.494555 249.030109zM476.494555 363.172325l0.327995-1.967969c10.823831-2.131967 17.547726-3.115951 20.007687-2.623959 13.939782 10.167841 21.647662 17.875721 23.287636 23.287636l-21.319667-1.967969C496.174247 379.408072 488.630365 373.832159 476.494555 363.172325L476.494555 363.172325zM508.966047 363.172325l3.771941 2.787956c1.147982 0.163997 6.231903-2.951954 15.087764-9.675849 10.331839 13.119795 18.203716 20.171685 23.779628 21.155669-0.65599 2.951954-8.199872 4.263933-22.467649 4.099936C515.361947 370.716208 508.638053 364.648302 508.966047 363.172325L508.966047 363.172325zM511.590006 185.235106l0.491992-2.131967 4.099936 0.819987c19.84369 3.771941 35.751441 17.219731 47.723254 40.34337C554.557335 214.754644 537.173607 201.634849 511.590006 185.235106L511.590006 185.235106zM521.921845 197.534914c38.211403 24.271621 56.087124 42.311339 53.79116 53.79116 1.967969 4.919923 2.623959 8.527867 2.295964 10.823831-35.095452-26.567585-51.495195-44.935298-49.363229-54.939142C526.349776 206.71877 524.217809 203.602819 521.921845 197.534914L521.921845 197.534914zM528.64574 352.348495l7.543882-15.251762 2.131967 0.491992c4.263933 5.73991 13.283792 14.431775 27.059577 25.911595l-0.491992 2.131967c-5.411915 5.247918-8.363869 8.855862-8.855862 10.823831l-4.099936-0.819987L528.64574 352.348495 528.64574 352.348495zM536.845612 333.324792l4.263933-9.675849-0.491992-8.363869 4.099936 0.819987c19.515695 17.711723 29.027546 27.059577 28.863549 28.371557l-0.491992 2.131967c-1.967969 9.347854-4.263933 13.611787-7.05189 13.119795C548.817425 342.508648 539.141576 333.652787 536.845612 333.324792L536.845612 333.324792zM539.797566 236.402306c27.715567 19.84369 40.999359 32.63549 39.68738 38.703395 1.31198 7.215887 1.803972 12.13581 1.147982 14.759769l-1.967969-0.327995-35.095452-29.519539C540.78155 245.586163 539.469571 237.714286 539.797566 236.402306L539.797566 236.402306zM542.257527 307.413197l2.459962-11.971813 10.003844 3.935939c-7.05189-7.871877-10.331839-12.627803-10.003844-14.267777-0.65599-10.495836-0.819987-16.727739-0.327995-18.695708 18.695708 13.611787 30.831518 24.927611 36.243434 33.94747l-2.459962 11.971813c-7.05189-7.05189-12.7918-10.987828-16.727739-11.807816 8.035874 11.315823 13.939782 17.383728 17.711723 18.039718l-4.099936 19.84369C554.557335 320.532992 543.733504 310.201153 542.257527 307.413197L542.257527 307.413197zM307.249199 569.153107c-9.675849 0-17.711723-6.887892-19.84369-16.071749-4.263933-12.463805 1.639974-28.863549 29.519539-35.751441 1.31198 35.587444 0 49.527226 0 49.527226C313.809097 568.33312 310.693145 569.153107 307.249199 569.153107L307.249199 569.153107zM709.862908 537.173607c0-1.147982 0-2.131967-0.163997-3.115951 2.131967 3.279949 3.279949 7.215887 3.279949 11.479821 0 11.643818-9.183857 21.155669-20.49968 21.155669-3.443946 0-6.723895-0.819987-9.511851-2.459962C697.891095 563.905189 709.862908 551.933376 709.862908 537.173607L709.862908 537.173607zM531.761691 520.281871c0.65599 15.743754-32.963485 49.199231-32.963485 49.199231 0-18.203716 9.347854-42.803331 12.463805-48.707239-8.035874-11.643818-13.283792-32.307495-13.283792-32.307495S531.105701 504.374119 531.761691 520.281871L531.761691 520.281871zM488.794363 507.326073c2.459962 0 4.427931 1.967969 4.427931 4.427931 0 2.459962-1.967969 4.427931-4.427931 4.427931-2.459962 0-4.427931-1.967969-4.427931-4.427931C484.366432 509.294042 486.334401 507.326073 488.794363 507.326073L488.794363 507.326073zM445.335042 629.668161c-0.819987 8.855862-2.131967 16.235746-2.131967 16.235746s-53.627162 7.05189-63.959001-30.503523C395.151826 632.94811 427.623318 631.144138 445.335042 629.668161L445.335042 629.668161zM620.648302 614.908392c-9.675849 37.719411-63.303011 31.651505-63.303011 31.651505s-1.475977-7.379885-2.459962-16.235746C572.597053 631.636131 605.232543 632.784113 620.648302 614.908392L620.648302 614.908392zM419.587444 518.313901c29.847534 0 53.955157 21.975657 53.955157 49.035234 0 27.059577-24.271621 49.035234-53.955157 49.035234-29.847534 0-53.955157-21.975657-53.955157-49.035234C365.632287 540.289558 389.903908 518.313901 419.587444 518.313901L419.587444 518.313901zM419.587444 613.76041c28.371557 0 51.331198-20.827675 51.331198-46.411275 0-25.5836-22.959641-46.411275-51.331198-46.411275-28.207559 0-51.331198 20.827675-51.331198 46.411275C368.256246 592.932735 391.379885 613.76041 419.587444 613.76041L419.587444 613.76041zM419.587444 534.38565c20.007687 0 36.243434 14.759769 36.243434 32.799488 0 18.203716-16.235746 32.799488-36.243434 32.799488s-36.243434-14.759769-36.243434-32.799488C383.34401 549.14542 399.579757 534.38565 419.587444 534.38565L419.587444 534.38565zM435.331198 552.261371c1.967969 2.131967 4.919923 2.623959 6.559898 1.147982 1.639974-1.475977 1.475977-4.263933-0.491992-6.3959-1.967969-2.131967-4.919923-2.623959-6.559898-1.147982C433.035234 547.341448 433.199231 550.129404 435.331198 552.261371L435.331198 552.261371zM395.971813 585.880846c5.411915 5.73991 13.283792 7.05189 17.875721 3.115951 4.591928-3.935939 3.935939-11.807816-1.475977-17.547726-5.411915-5.73991-13.283792-7.05189-17.875721-3.115951C389.903908 572.433056 390.559898 580.304933 395.971813 585.880846L395.971813 585.880846zM584.240871 518.313901c29.847534 0 53.955157 21.975657 53.955157 49.035234 0 27.059577-24.271621 49.035234-53.955157 49.035234-29.847534 0-53.955157-21.975657-53.955157-49.035234C530.121717 540.289558 554.393338 518.313901 584.240871 518.313901L584.240871 518.313901zM584.240871 613.76041c28.371557 0 51.331198-20.827675 51.331198-46.411275 0-25.5836-22.959641-46.411275-51.331198-46.411275-28.207559 0-51.331198 20.827675-51.331198 46.411275C532.909673 592.932735 555.869315 613.76041 584.240871 613.76041L584.240871 613.76041zM584.240871 534.38565c20.007687 0 36.243434 14.759769 36.243434 32.799488 0 18.203716-16.235746 32.799488-36.243434 32.799488-20.007687 0-36.243434-14.759769-36.243434-32.799488C547.997438 549.14542 564.233184 534.38565 584.240871 534.38565L584.240871 534.38565zM599.820628 552.261371c1.967969 2.131967 4.919923 2.623959 6.559898 1.147982 1.639974-1.475977 1.475977-4.263933-0.491992-6.3959-1.967969-2.131967-4.919923-2.623959-6.559898-1.147982C597.688661 547.341448 597.852659 550.129404 599.820628 552.261371L599.820628 552.261371zM560.62524 585.880846c5.411915 5.73991 13.283792 7.05189 17.875721 3.115951 4.591928-3.935939 3.935939-11.807816-1.475977-17.547726-5.411915-5.73991-13.283792-7.05189-17.875721-3.115951C554.557335 572.433056 555.213325 580.304933 560.62524 585.880846L560.62524 585.880846zM957.171044 381.540038C957.171044 381.540038 957.171044 381.540038 957.171044 381.540038c-0.65599 0.983985-1.31198 1.803972-1.967969 2.951954-0.327995 0.327995-0.491992 0.65599-0.819987 0.983985-0.327995 0.327995-1.967969 0.65599-2.295964 0.983985-11.315823 14.759769-29.355541 40.34337-62.975016 46.247277l0 34.931454c0 4.263933-0.819987 8.691864-5.083921 8.691864L685.919283 476.330557c-0.163997 10.331839-0.327995 18.203716-0.65599 27.879564 24.435618 1.803972 43.295324 19.351698 43.295324 41.491352 0 22.467649-19.84369 40.671365-45.263293 41.819347-1.967969 78.226778-5.903908 143.98975-7.70788 150.549648l-0.491992 0.983985c-1.967969 2.295964-9.511851 5.247918-21.155669 8.363869 0.327995 13.939782-3.279949 29.355541-11.643818 46.08328 3.443946-21.647662-22.795644-36.079436-26.567585-38.047406-0.163997 0-0.327995 0-0.491992 0 0.163997 4.427931 0 57.727098-88.230621 97.90647-1.475977-44.115311-14.10378-70.682896-31.9795-86.754644L494.534273 766.606022l-5.411915-0.327995 0-0.163997 0 0 0 0 0.327995 0 0.327995-0.163997c-0.819987-0.163997-0.983985-0.491992-1.147982-1.147982-10.331839-8.035874-28.043562-18.203716-64.450993-18.203716-13.283792 0-28.207559 1.31198-44.607303 3.935939-4.099936 0.819987-7.70788 1.147982-11.151826 1.147982-5.575913 0-10.003844-0.983985-16.071749-2.295964l-0.327995 0-0.327995-0.163997c-17.547726-4.099936-27.55157-7.70788-30.011531-10.659833l-0.491992-0.983985c-0.491992-2.131967-2.295964-8.363869-5.73991-150.549648-25.255605-0.983985-45.263293-19.351698-45.263293-41.983344 0-22.139654 18.859705-39.523382 43.459321-41.163357-0.163997-9.675849-0.327995-17.547726-0.65599-27.879564L132.099936 476.002562c-4.427931 0-10.495836-4.591928-10.495836-8.691864l0-97.414478c-11.807816-0.65599-19.679693-2.295964-26.731582-4.755926-29.027546-10.495836-35.751441-35.915439-35.587444-60.023062 0-1.475977 0.491992-2.787956 0.983985-3.771941-6.723895-11.643818-6.231903-25.5836-5.083921-35.587444 0.983985-8.035874 2.623959-12.13581 4.427931-13.939782-4.263933-8.855862-0.983985-18.859705 1.967969-26.731582 3.771941-10.167841 12.13581-11.971813 22.139654-10.003844-4.755926-9.019859-2.459962-17.219731 11.643818-28.699552 4.427931-3.607944 14.267777 7.05189 26.075593 16.071749l0-267.151826c0-4.263933 6.067905-6.067905 10.331839-6.067905l751.928251 0c4.427931 0 5.083921 1.803972 5.083921 6.067905L888.784113 248.374119c16.727739 0.983985 29.355541 7.70788 38.539398 19.84369 4.591928 6.231903 7.871877 11.807816 8.691864 16.891736C977.670724 313.153107 982.262652 344.640615 957.171044 381.540038L957.171044 381.540038zM316.433056 508.638053c-22.959641 0.491992-40.835362 16.727739-40.835362 36.735426 0 20.335682 18.859705 36.899423 41.983344 36.899423l0 2.623959 0.163997-0.65599c0-0.819987 0-1.475977 0-2.295964 0.491992 0.163997 0.983985 0.163997 1.475977 0.327995l1.803972 0 0 0.491992c5.247918 1.31198 12.7918 2.951954 19.351698 3.771941 10.003844 35.095452 34.111467 64.122998 34.111467 64.122998s-9.839846 28.863549-13.939782 67.238949c51.167201-85.11467 229.268418-81.178732 280.107623-10.823831-4.591928-32.799488-12.627803-56.415119-12.627803-56.415119s24.107623-28.863549 34.111467-64.122998c6.559898-0.819987 13.939782-1.147982 19.023703-2.295964 0 0.491992 0 2.623959 0 2.623959l0.491992 0c23.123639 0 41.983344-18.695708 41.983344-39.03139 0-9.347854-3.935939-18.695708-10.495836-25.419603-10.167841-6.723895-25.091608-10.331839-40.835362-10.331839 0-6.723895 0.983985-19.351698 1.803972-35.423447L318.401025 476.658552c0.163997 10.331839 0.491992 19.84369 0.65599 30.175529l0 2.131967L316.433056 508.638053 316.433056 508.638053zM126.524023 462.554773c0 4.099936 6.3959 9.183857 10.823831 9.183857l741.432415 0c4.263933 0 5.575913-4.919923 5.575913-9.183857l0-29.027546c0 0.491992-6.723895 1.475977-10.823831 1.147982-22.795644-2.295964-44.443306-3.607944-60.679052-9.183857L176.215247 425.491352l-1.31198-2.787956 0-60.18706c-10.823831 5.903908-25.5836 8.363869-48.215247 7.871877L126.68802 462.554773 126.524023 462.554773zM821.381166-13.693786 180.807175-13.693786 180.807175 282.649584c10.823831 4.263933 15.579757 10.987828 15.087764 21.975657-0.491992 8.363869-4.263933 13.611787-15.087764 16.727739l0 7.379885c5.903908 1.967969 3.935939 4.263933 5.247918 6.723895 5.411915 10.495836 5.575913 18.203716-5.247918 23.779628l0 55.759129 615.318386 0c-2.787956-5.575913-4.755926-7.871877-5.575913-12.299808-1.475977-8.035874-1.639974-18.367713-1.147982-28.207559L697.891095 315.449071c0 0-28.371557-15.251762-16.727739-32.799488 11.643818-17.383728 32.307495-11.479821 50.511211-0.327995 12.13581 7.379885 39.68738 23.287636 63.959001 40.179372 0.163997-0.163997 0.327995-0.163997 0.491992-0.327995-1.803972-1.31198-2.951954-2.295964-2.951954-2.295964-11.151826-7.543882-6.887892-36.899423 15.415759-41.327354 3.115951-0.65599 9.675849 0 9.675849 1.147982l0-293.391416L821.381166-13.693786 821.381166-13.693786zM177.855221 271.169763c0 3.443946-2.131967 6.231903-4.755926 8.035874 1.639974 0.491992 3.771941 0.983985 4.755926 1.475977L177.855221 271.169763 177.855221 271.169763zM177.855221 322.828956c-0.983985 0.163997-1.639974 0.327995-2.459962 0.491992 0.819987 0.491992 1.475977 0.983985 2.459962 1.475977L177.855221 322.828956 177.855221 322.828956zM878.780269-65.516976 137.347854-65.516976c-4.263933 0-10.823831 2.131967-10.823831 6.3959L126.524023 206.882767c5.903908 1.147982 4.919923 2.295964 6.723895 3.279949 19.679693 8.035874 38.047406 25.255605 25.747598 33.127482-0.163997 0-1.475977 0.163997-1.639974 0.163997 9.511851 3.771941 17.547726 9.839846 17.547726 20.663677l0-289.29148 655.169763 2.459962 0 291.915439c9.839846-9.675849 21.647662-14.595772 34.603459-10.331839 3.279949-6.559898 13.611787-9.839846 19.515695-10.331839l0-307.495195C884.192184-63.38501 883.044202-65.516976 878.780269-65.516976L878.780269-65.516976zM878.780269-65.516976"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="carousel" unicode="&#58932;" d="M1002.069333 144.38400000000001L1002.069333 611.6906670000001c0 24.213333-16.917333 49.578667-42.069333 49.578667l-64 0 1.152 6.4c0 31.338667-26.005333 57.6-58.538667 57.6L186.432 725.269333c-31.936 0-58.410667-31.957333-58.410667-64l-0.213333 0.96L67.178667 662.229333c-25.152 0-45.226667-20.288-45.226667-44.501333l0-467.328L21.354667 150.39999999999998c0-24.789333 20.629333-44.693333 45.312-44.693333L127.786667 105.70666700000004l0-5.184C127.786667 69.03466700000001 153.792 42.66666699999996 186.432 42.66666699999996l652.842667 0c31.658667 0 56.277333 10.901333 56.725333 42.602667l64 0c24.661333 0 42.666667 34.325333 42.666667 59.114667L1002.069333 144.38400000000001zM128 149.26933299999996L64 149.26933299999996l0 469.333333 64 0L128 149.26933299999996zM853.333333 106.602667c0-6.421333-14.848-21.333333-21.333333-21.333333l-640 0c-6.485333 0-21.333333 14.848-21.333333 21.333333l0 554.666667c0 6.378667 9.258667 18.56 15.744 18.56l5.589333 2.773333 640 0c6.442667 0 21.333333-14.954667 21.333333-21.333333L853.333333 106.602667zM960 127.93600000000004l-64 0 0 490.666667 60.842667 1.984c4.970667 0 3.157333 2.944 3.157333-1.984l0-469.333333C960 144.29866700000002 965.013333 127.93600000000004 960 127.93600000000004zM412.458667 399.829333c43.925333 0 79.637333 34.773333 79.637333 77.482667 0 42.752-35.712 77.482667-79.637333 77.482667-43.925333 0-79.637333-34.730667-79.637333-77.482667C332.8 434.602667 368.533333 399.829333 412.458667 399.829333zM412.458667 516.0533330000001c21.952 0 39.829333-17.365333 39.829333-38.741333 0-21.333333-17.877333-38.741333-39.829333-38.741333-21.952 0-39.829333 17.408-39.829333 38.741333C372.629333 498.709333 390.506667 516.0533330000001 412.458667 516.0533330000001zM785.92 457.386667c-95.914667-23.338667-137.728-87.765333-168.256-134.805333-24.213333-37.269333-39.082667-58.346667-65.109333-58.346667l-0.042667 0c-35.456 0-57.109333 14.272-80.042667 28.16-24.362667 14.741333-49.536 29.952-88.64 29.952-75.648 0-156.906667-93.269333-165.930667-103.893333L213.333333 167.38133300000004c0-10.709333 8.917333-18.112 19.925333-18.112l557.504 0c10.986667 0 19.904 7.402667 19.904 18.112L810.666667 438.570667c0 5.973333-2.837333 11.626667-7.658667 15.296C798.186667 457.536 791.872 458.858667 785.92 457.386667zM770.858667 188.52266699999996L253.162667 188.52266699999996c24.874667 27.733333 85.290667 95.082667 130.666667 95.082667 27.733333 0 46.229333-11.157333 67.605333-24.128 25.152-15.168 53.632-32.426667 99.712-33.941333l2.944-0.064c47.637333 0 71.722667 37.12 97.237333 76.416 26.645333 41.088 56.469333 79.104 119.530667 102.485333L770.858667 188.52266699999996z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="help" unicode="&#58887;" d="M690.2 741.8C635.2 783.6 573.2 798 494.6 798c-59.6 0-110.6-12.2-151-39.4C284 718 256 649.8 256 542l153.6 0c0 28.8-2.8 59.8 14 86.4 16.8 26.6 40.2 47 80.4 47 40.8 0 61.8-11.8 81.6-36.2 16.8-20.8 23.2-45.6 23.2-72 0-22.8-11.6-43.8-25.4-62.8-7.6-11.2-17.6-21.2-30.2-30.8 0 0-83-49.4-112.2-96.2-21.8-34.8-29.6-78.4-31.4-130.6-0.2-3.8 1.2-11.6 14.4-11.6 13 0 112 0 123.6 0 11.6 0 14 8.8 14.2 12.4 0.8 19 3.2 48.2 6.6 59.2 6.6 20.8 19.4 39 39.4 54.6l41.4 28.6c37.4 29.2 67.2 53 80.4 71.8 22.6 30.8 38.4 68.8 38.4 113.8C768 649 741 703.2 690.2 741.8zM484 155.6c-51.8 1.6-94.6-34.4-96.4-90.6-1.6-56.4 39-93.4 91-95 54-1.6 95.8 33.2 97.4 89.4C577.6 115.6 538 154 484 155.6z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="code-circle" unicode="&#58933;" d="M513.544163 893.525741c-282.101629 0-510.78094-228.679311-510.78094-510.76288 0-282.083569 228.679311-510.76288 510.78094-510.76288s510.76288 228.679311 510.76288 510.76288C1024.325103 664.8464309999999 795.645793 893.525741 513.544163 893.525741zM513.544163-83.46335899999997c-257.503523 0-466.22622 208.740757-466.22622 466.22622S256.0587 848.989082 513.544163 848.989082s466.22622-208.740757 466.22622-466.22622S771.047686-83.46335899999997 513.544163-83.46335899999997zM171.771357 359.77212099999997L414.357086 256.088033 414.357086 300.805295 221.978945 380.50532599999997 414.357086 459.464886 414.357086 504.182148 171.771357 401.76228ZM442.585309 193.38272800000004L478.814238 193.38272800000004 584.737801 572.1429949999999 548.743656 572.1429949999999ZM612.749301 504.182148L612.749301 459.464886 804.874598 380.50532599999997 612.749301 300.805295 612.749301 256.088033 855.33503 359.77212099999997 855.33503 401.76228Z"  horiz-adv-x="1025" />
+
+    
+    <glyph glyph-name="water" unicode="&#58934;" d="M862.315763 33.684211000000005C802.869868 33.684211000000005 754.526289 82.94399999999996 754.526289 143.50371900000005 754.526289 162.33094700000004 759.35885 180.96056099999998 768.520956 197.43438600000002 768.64671 197.79368399999998 768.808394 198.15298199999995 769.006008 198.49431600000003L849.075622 334.542596 849.057657 334.542596 862.315763 357.052632 875.573868 334.542596 875.573868 334.542596 955.140464 199.356632C955.715341 198.67396499999995 956.164464 197.865544 956.380043 196.96729800000003 965.380464 180.60126300000002 970.123201 162.151298 970.105236 143.50371900000005 970.105236 82.94399999999996 921.761657 33.684211000000005 862.315763 33.684211000000005L862.315763 33.684211000000005ZM924.33064 188.57768399999998C924.204885 188.79326300000002 924.115061 189.02680699999996 924.025236 189.27831600000002L862.315763 302.996211 800.606289 189.260351C800.516464 189.02680699999996 800.42664 188.79326300000002 800.300885 188.57768399999998 793.977236 176.505263 790.635763 162.81600000000003 790.635763 148.965053 790.635763 105.29235100000005 822.792956 69.75775399999998 862.333727 69.75775399999998 901.856534 69.75775399999998 933.995763 105.29235100000005 933.995763 148.98301800000002 933.995763 162.81600000000003 930.654289 176.52322800000002 924.33064 188.57768399999998L924.33064 188.57768399999998ZM682.684605 392.982456C593.50678 392.982456 520.982429 469.602807 520.982429 563.8108070000001 520.982429 593.093614 528.240254 622.071018 541.965447 647.706947 542.163061 648.281825 542.396605 648.820772 542.684043 649.341754L662.815412 860.968421 662.797447 860.968421 682.684605 896 702.571763 860.968421 702.535833 860.968421 821.89471 650.689123C822.774991 649.647158 823.439692 648.3716489999999 823.781026 646.970386 837.25471 621.514105 844.368815 592.8241399999999 844.35085 563.8108070000001 844.35085 469.602807 771.844464 392.982456 682.684605 392.982456L682.684605 392.982456ZM791.408254 630.1192980000001C791.21064 630.4965609999999 791.030991 630.891789 790.887271 631.322947L682.684605 823.924772 574.446008 631.287018C574.320254 630.891789 574.140605 630.4965609999999 573.942991 630.1013330000001 562.840675 609.6931930000001 556.912254 596.075789 556.912254 572.631579 556.912254 498.634105 613.375973 428.876351 682.684605 428.876351 751.993236 428.876351 808.367131 489.058807 808.367131 563.056281 808.367131 586.500491 802.492605 609.6931930000001 791.408254 630.1192980000001L791.408254 630.1192980000001ZM538.695833 276.983018C540.115061 275.330246 541.174991 273.33614 541.713938 271.12645599999996 563.433517 231.11859600000003 574.895131 186.02666699999997 574.895131 140.43171900000004 574.895131-7.581192999999985 458.051341-128 314.403903-128 170.738499-128 53.89471-7.581192999999985 53.89471 140.43171900000004 53.89471 186.47578899999996 65.589868 231.998877 87.704675 272.294175 88.010078 273.17445599999996 88.387341 274.01880700000004 88.872394 274.863158L282.408394 607.411649 282.372464 607.411649 314.403903 662.45614 346.453306 607.411649 346.399412 607.411649 538.695833 276.983018 538.695833 276.983018ZM314.403903 590.614456L119.807973 257.79649099999995C119.556464 257.113825 119.251061 256.449123 118.873798 255.78442099999995 98.932745 220.48336800000004 88.387341 180.42161399999998 88.387341 139.91073700000004 88.387341 12.072420999999963 189.799271-91.89052600000002 314.421868-91.89052600000002 439.026499-91.89052600000002 540.420464 12.072420999999963 540.402499 139.91073700000004 540.402499 180.42161399999998 529.857096 220.50133300000005 509.916043 255.78442099999995 509.53878 256.449123 509.233377 257.131789 508.963903 257.86835099999996L314.403903 590.614456 314.403903 590.614456Z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="username" unicode="&#58991;" d="M514.594 824.888c-144.11 0-260.979-118.46-260.979-264.558 0-88.783 43.497-166.928 109.711-214.898-135.361-59.354-230.159-195.858-230.159-354.931h0.894c1.541-21.375 18.641-38.377 40.117-38.377s38.575 17.051 40.117 38.377h0.645c0 0.944-0.099 1.79-0.099 2.734 0 0.05 0 0.099 0 0.149 0 0.099-0.05 0.149-0.05 0.199 0.05 159.967 120 291.054 273.009 304.924 8.948-0.944 17.598-2.734 26.844-2.734 144.11 0 260.979 118.46 260.979 264.558s-116.919 264.558-261.029 264.558zM514.594 377.54499999999996c-99.769 0-180.698 81.972-180.698 183.183s80.879 183.183 180.698 183.183c99.719 0 180.647-81.972 180.647-183.183s-80.879-183.183-180.647-183.183zM896.021-6.615000000000009c0 0.348-0.199 0.645-0.199 0.994-1.043 105.038-43.397 200.034-111.35 269.131v0c-7.157 7.357-17.001 11.98-27.986 11.98-21.574 0-39.122-17.747-39.122-39.668 0-11.135 4.573-21.127 11.83-28.334l-0.099-0.05c52.742-55.229 85.302-130.589 85.302-213.853 0-1.043-0.149-1.987-0.149-3.034h0.994c1.491-21.375 18.691-38.377 40.117-38.377 21.475 0 38.575 17.051 40.117 38.377h0.597c0 0.796-0.099 1.491-0.099 2.287-0.05 0.149 0.05 0.348 0.05 0.547z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="find-fill" unicode="&#58992;" d="M512 896C229.236364 896 0 666.763636 0 384c0-282.786909 229.236364-512 512-512s512 229.213091 512 512C1024 666.763636 794.763636 896 512 896zM657.291636 383.976727c0-77.195636-60.392727-139.729455-136.424727-144.407273l-175.732364-151.714909-22.877091 13.242182 58.228364 222.021818c-8.634182 18.548364-13.800727 39.074909-13.800727 60.858182 0 77.195636 60.369455 139.729455 136.378182 144.430545l175.802182 151.714909 22.877091-13.172364-58.251636-222.068364C652.125091 426.309818 657.291636 405.806545 657.291636 383.976727zM512 384m-66.048 0a2.838 2.838 0 1 1 132.096 0 2.838 2.838 0 1 1-132.096 0Z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="about" unicode="&#58891;" d="M514.27174 834.607768c-249.516844 0-451.789687-202.272843-451.789687-451.789687s202.272843-451.789687 451.789687-451.789687 451.789687 202.272843 451.789687 451.789687S763.788583 834.607768 514.27174 834.607768zM514.27174-20.12919999999997c-222.541469 0-402.947282 180.405813-402.947282 402.947282s180.405813 402.947282 402.947282 402.947282 402.947282-180.405813 402.947282-402.947282S736.814232-20.12919999999997 514.27174-20.12919999999997zM514.295276 593.979362c-9.44614-10.360975-14.307867-22.951735-14.307867-37.483706 0-11.960403 3.886517-22.396079 11.534707-30.457686 7.783267-8.211009 17.853623-12.450567 29.313629-12.450567 9.312086 0 23.139 2.849908 35.782971 16.900925 9.865695 10.641361 14.866592 23.437805 14.866592 37.693484 0 11.68104-4.031826 21.900799-11.744485 29.832446C562.925856 615.325529 532.358677 613.449809 514.295276 593.979362zM549.461193 293.282882c-12.110829-11.541871-20.589944-18.759249-26.236548-23.316032 2.77009 14.953573 9.976212 44.614104 27.330462 103.023398 17.297968 57.890478 18.799158 67.991534 18.799158 72.955592 0 8.65717-3.63683 16.335037-9.921977 21.642926-14.124695 11.661597-39.035038 9.349949-69.131497-7.677866-16.779152-9.408277-34.595936-24.759917-54.493102-46.576805l-10.377348-11.541871 34.425044-26.548656 8.818853 8.715499c9.573029 9.292644 16.086373 15.35164 20.411889 19.393699-26.294876-86.460164-39.093367-140.190903-39.093367-164.262134 0-10.907421 3.172249-19.970844 9.573029-26.839275 6.460132-7.039323 15.510252-10.736529 25.891693-10.736529 10.146081 0 21.792329 3.926426 35.922141 11.949146 12.741185 7.212262 31.883151 23.029506 58.641585 48.190559l10.837836 10.391674-31.30703 30.475082L549.461193 293.282882z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="location" unicode="&#59157;" d="M451.673935-98.39569900000004C478.883834-129.01914699999998 524.254807-128.8089789999999 551.400292-97.92885100000001 553.755808-95.38790800000004 558.821323-89.79676199999994 565.872444-81.84834999999998 577.572838-68.65901699999995 590.597131-53.62432000000001 604.615947-36.99831500000005 644.662065 10.495494000000008 684.708678 61.282182000000034 722.129538 113.35355300000003 759.658524 165.575381 792.492213 216.29072599999995 819.314991 264.54153799999995 868.685946 353.35368300000005 896 430.456574 896 493.714285 896 715.890551 719.301715 896 501.333333 896 283.364952 896 106.666667 715.890551 106.666667 493.714285 106.666667 430.401284 134.05152 353.19426999999996 183.54613 264.23737800000004 210.371803 216.02347099999997 243.193308 165.34812399999998 280.699364 113.16684599999996 318.155192 61.05544999999995 358.239268 10.22578999999996 398.322835-37.31103099999996 412.354743-53.95207300000004 425.391185-69.00072999999998 437.102468-82.20257900000001 444.160087-90.15846599999998 449.230214-95.75492099999997 451.982775-98.73670600000003L451.673935-98.39569900000004ZM486.822684-65.32134799999994C484.281231-62.568254000000024 479.425084-57.207989 472.585916-49.49835900000005 461.135889-36.591016999999965 448.364015-21.84776099999999 434.602351-5.527214999999956 395.275714 41.11192700000004 355.949587 90.98045200000001 319.289224 141.985137 282.808749 192.739548 250.983685 241.87642200000005 225.158316 288.29247799999996 179.388826 370.55419500000005 154.50505 440.709839 154.50505 493.714285 154.50505 688.960095 309.785362 847.238095 501.333333 847.238095 692.881306 847.238095 848.161617 688.960095 848.161617 493.714285 848.161617 440.753978 823.345286 370.701737 777.693969 288.58074899999997 751.873483 242.13293399999998 720.038415 192.96007499999996 683.537446 142.16873799999996 646.912604 91.20503299999996 607.624538 41.38032599999997 568.335977-5.21503800000005 554.587654-21.52024300000005 541.828177-36.24924999999996 530.389289-49.14379699999995 523.556841-56.84571100000005 518.705521-62.20043499999997 516.166694-64.95052599999997 507.543772-74.74891100000002 495.255793-74.80583000000001 487.131524-65.66235300000005L486.822684-65.32134799999994ZM714.955981 428.971194C723.919106 453.372045 728.565658 479.331002 728.565658 505.904762 728.565658 627.091817 632.184774 725.333333 513.29293 725.333333 394.401086 725.333333 298.020202 627.091817 298.020202 505.904762 298.020202 384.717709 394.401086 286.47619 513.29293 286.47619 549.003859 286.47619 583.510052 295.36805300000003 614.373097 312.125591 626.032316 318.456132 630.449257 333.22218 624.238611 345.10648100000003 618.027966 356.99078199999997 603.541579 361.49299399999995 591.882359 355.16245100000003 567.900883 342.14136099999996 541.111735 335.23809500000004 513.29293 335.23809500000004 420.821495 335.23809500000004 345.858586 411.648164 345.858586 505.904762 345.858586 600.161359 420.821495 676.571428 513.29293 676.571428 605.764365 676.571428 680.727273 600.161359 680.727273 505.904762 680.727273 485.192019 677.117041 465.022684 670.154965 446.069408 665.522846 433.459117 671.796821 419.408892 684.168282 414.687349 696.53974 409.965809 710.323861 416.360905 714.955981 428.971194L714.955981 428.971194Z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="up" unicode="&#58905;" d="M513.6 539.2l384-384c12.8-12.8 32-12.8 44.8 0 12.801 12.8 12.801 32 0 44.8l-403.2 403.2C532.8 609.6 520 616 513.6 616c-6.4 0-19.2 0-25.599-6.4L78.399 200c-12.8-12.8-12.8-32 0-44.8s32-12.8 44.8 0L513.6 539.2z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="pause" unicode="&#58961;" d="M512-128c-282.714 0-511.893 229.232-511.893 512 0 282.768 229.179 512 511.893 512 282.714 0 511.893-229.232 511.893-512 0-282.768-229.179-512-511.893-512zM512 863.996c-265.043 0-479.9-214.91-479.9-479.996 0-265.097 214.857-479.996 479.9-479.996 265.043 0 479.9 214.899 479.9 479.996 0 265.086-214.857 479.996-479.9 479.996zM639.973 181.32299999999998h-21.329c-23.558 0-42.658 19.1-42.658 42.658v319.933c0 23.558 19.1 42.658 42.658 42.658h21.329c23.558 0 42.658-19.1 42.658-42.658v-319.933c0-23.558-19.1-42.658-42.658-42.658zM405.356 181.32299999999998h-21.329c-23.558 0-42.658 19.1-42.658 42.658v319.933c0 23.558 19.1 42.658 42.658 42.658h21.329c23.558 0 42.658-19.1 42.658-42.658v-319.933c0-23.558-19.1-42.658-42.658-42.658z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="date" unicode="&#58935;" d="M933.185668 758.3591759999999l-167.054737 0 0 56.506968L732.333174 814.866145l0-56.506968L539.505447 758.3591759999999l0 56.506968-33.796734 0 0-56.506968-216.255299 0 0 56.506968-33.796734 0 0-56.506968L88.005356 758.3591759999999c-12.255115 0-22.224164-9.970072-22.224164-22.224164l0-706.60521c0-12.255115 9.970072-22.225187 22.224164-22.225187l845.179288 0c12.255115 0 22.225187 9.970072 22.225187 22.225187L955.409832 736.135012C955.409832 748.389104 945.43976 758.3591759999999 933.185668 758.3591759999999zM939.036933 29.528778999999986c0-3.226484-2.62478-5.852288-5.852288-5.852288l-845.179288 0c-3.226484 0-5.851265 2.62478-5.851265 5.852288L82.154092 736.135012c0 3.226484 2.62478 5.851265 5.851265 5.851265l167.650301 0 0-55.657624 33.796734 0 0 55.657624 216.255299 0 0-55.657624 33.796734 0 0 55.657624L732.333174 741.986277l0-55.657624 33.796734 0 0 55.657624 167.054737 0c3.226484 0 5.852288-2.62478 5.852288-5.851265L939.036933 29.528778999999986zM206.835765 608.260623l129.098263 0 0-94.008071-129.098263 0 0 94.008071ZM458.879152 608.260623l129.098263 0 0-94.008071-129.098263 0 0 94.008071ZM684.827207 608.260623l129.098263 0 0-94.008071-129.098263 0 0 94.008071ZM206.835765 433.345871l129.098263 0 0-94.008071-129.098263 0 0 94.008071ZM458.879152 433.345871l129.098263 0 0-94.008071-129.098263 0 0 94.008071ZM684.827207 433.345871l129.098263 0 0-94.008071-129.098263 0 0 94.008071ZM206.835765 257.877511l129.098263 0 0-94.008071-129.098263 0 0 94.008071ZM458.879152 257.877511l129.098263 0 0-94.008071-129.098263 0 0 94.008071ZM684.827207 257.877511l129.098263 0 0-94.008071-129.098263 0 0 94.008071Z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="layim-uploadfile" unicode="&#58909;" d="M914.7359263333336 663.0359498888887c-20.806884999999987 20.806885000000012-48.471967999999976 32.265868000000026-77.89816099999994 32.265868000000054l-352.221993 2.2737367544323206e-13-120.26099099999992 95.03035300000005-11.157106999999995 8.816806000000007-14.220886 9.769962616701378e-15L197.09333633333344 799.148976888889c-51.69538300000001 2.1316282072803006e-14-93.75224400000005-42.88778599999995-93.75224400000006-95.60442799999993l-1.5631940186722204e-13-255.13888799999998c-1.7763568394002505e-15-2.302439 0.08391099999999785-4.716417999999999 0.24968699999999489-7.196911999999999l-1.9895196601282805e-13-340.692403c-1.9539925233402755e-14-29.426192999999998 11.458982999999954-57.09127599999999 32.26586799999994-77.89816100000002 20.806884999999987-20.806885000000012 48.471967999999976-32.265868000000026 77.89816099999994-32.265868000000054l623.083981-3.410605131648481e-13c29.426192999999998-1.9539925233402755e-14 57.09127599999999 11.458982999999954 77.89816100000002 32.26586799999994 20.806885000000012 20.806884999999987 32.265868000000026 48.471967999999976 32.265868000000054 77.89816099999994L947.0028173333335 585.1377888888885C947.0017943333336 614.5639818888885 935.5428113333334 642.2280418888886 914.7359263333336 663.0359498888887zM197.09333633333372 758.2167298888891l141.88345099999998-8.526512829121202e-14L470.3948853333333 654.369569888889l366.44287999999995-2.2737367544323206e-13c38.236859-2.1316282072803006e-14 69.23178099999997-30.99492100000004 69.23178099999994-69.23178100000004L906.0695463333333 465.9195468888886 144.27334033333327 465.91954688888893 144.2733403333336 703.5445488888892C144.2733403333336 733.7361748888891 167.92296933333355 758.2167298888891 197.09333633333372 758.2167298888891zM836.8377653333331 31.28558888888881L213.75480733333322 31.28558888888915c-38.236859 2.1316282072803006e-14-69.23178099999997 30.99492100000004-69.23178099999994 69.23178100000004L144.52302633333338 424.4776928888892l761.546519-6.252776074688882e-13-2.2737367544323206e-13-323.96134599999993C906.0695463333333 62.28050988888867 875.0746243333334 31.285588888888583 836.8377653333331 31.28558888888881z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="delete" unicode="&#58944;" d="M738.923 24.288h-451.956c-27.2 0-49.327 21.603-49.327 48.157v418.017c0 26.548 22.129 48.147 49.327 48.147h451.956c27.2 0 49.327-21.598 49.327-48.147v-418.017c0-26.555-22.129-48.157-49.327-48.157zM286.966 494.547c-4.447 0-7.168-2.644-7.168-4.084v-418.017c0-1.443 2.722-4.093 7.168-4.093h451.956c4.448 0 7.168 2.651 7.168 4.093v418.017c0 1.44-2.722 4.084-7.168 4.084h-451.956zM832.199 496.302h-640.401c-27.201 0-49.327 20.131-49.327 44.876v61.045c0 24.74 22.128 44.867 49.327 44.867h640.401c27.2 0 49.327-20.127 49.327-44.867v-61.045c0-24.744-22.129-44.876-49.327-44.876zM184.631 541.327c0.387-0.733 2.722-2.866 7.168-2.866h640.401c4.445 0 6.782 2.132 7.168 2.867v60.741c-0.393 0.736-2.733 2.863-7.168 2.863h-640.401c-4.437 0-6.776-2.128-7.168-2.863v-60.742zM600.748 605.354h-174.546c-27.201 0-49.327 20.13-49.327 44.876v10.736c0 24.74 22.128 44.867 49.327 44.867h174.546c27.2 0 49.327-20.126 49.327-44.867v-10.736c0-24.745-22.128-44.876-49.327-44.876zM419.034 650.378c0.387-0.733 2.722-2.865 7.168-2.865h174.546c4.446 0 6.782 2.131 7.168 2.865v10.432c-0.393 0.736-2.734 2.862-7.168 2.862h-174.546c-4.437 0-6.776-2.126-7.168-2.862v-10.432zM404.099 430.833h-30.097c-7.297 0-13.213-5.916-13.213-13.213v-272.34c0-7.297 5.916-13.212 13.213-13.212h30.098c7.297 0 13.212 5.916 13.212 13.212v272.341c0 7.297-5.916 13.213-13.212 13.213zM659.583 430.833h-30.097c-7.298 0-13.213-5.916-13.213-13.213v-272.34c0-7.297 5.917-13.212 13.213-13.212h30.097c7.297 0 13.212 5.916 13.212 13.212v272.341c0 7.297-5.916 13.213-13.212 13.213zM531.841 430.833h-30.098c-7.297 0-13.213-5.916-13.213-13.213v-272.34c0-7.297 5.917-13.212 13.213-13.212h30.098c7.297 0 13.212 5.916 13.212 13.212v272.341c0 7.297-5.916 13.213-13.212 13.213z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="play" unicode="&#58962;" d="M512 896C229.376 896 0 666.624 0 384 0 101.37599999999998 229.376-128 512-128 794.624-128 1024 101.37599999999998 1024 384 1024 666.624 794.624 896 512 896L512 896 512 896zM512-95.23199999999997C245.76-95.23199999999997 32.768 117.75999999999999 32.768 384 32.768 650.24 245.76 863.232 512 863.232S991.232 650.24 991.232 384C991.232 117.75999999999999 778.24-95.23199999999997 512-95.23199999999997L512-95.23199999999997 512-95.23199999999997zM733.184 392.192L393.216 588.8c-4.096 4.096-8.192 4.096-12.288 0C376.832 588.8 372.736 584.704 372.736 580.608l0-393.216c0-4.096 4.096-8.192 4.096-8.192 4.096-4.096 8.192-4.096 12.288 0l344.064 196.608c4.096 4.096 4.096 4.096 4.096 8.192C741.376 388.096 737.28 392.192 733.184 392.192L733.184 392.192 733.184 392.192zM733.184 392.192"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="top" unicode="&#58884;" d="M812 153.4l-300 172.8-300-172.8 300 604L812 153.4zM264.5 209.2l247.5 142.5 247.5-142.5L512 707.5 264.5 209.2zM371.7 138.3l0-126.2-15.9 0 0 126.2-45.9 0L309.9 153l107.4 0 0-14.8L371.7 138.2zM506.6 154.5c26.6 0 43.3-3.9 50-11.7 6.7-7.8 10-27.2 10-58.3 0-33.5-3.2-54.2-9.6-62-6.4-7.8-23.2-11.8-50.4-11.8-27 0-43.8 3.9-50.3 11.7-6.5 7.8-9.8 27.9-9.8 60.3l0 9.9 0.2 13.3c0 18.7 4.2 31.5 12.6 38.4C467.8 151 483.5 154.5 506.6 154.5zM506.5 141c-22.3 0-35.3-2.5-39.1-7.4-3.8-5-5.7-22-5.7-51 0-29.1 1.9-46.1 5.7-51.1 3.8-5 16.8-7.4 39.1-7.4 22.4 0 35.4 2.5 39.2 7.4 3.8 5 5.7 22 5.7 51.1l0 9.2-0.1 13.3c0 15.6-2.6 25.4-7.8 29.6S525.9 141 506.5 141zM608.4 12.1 608.4 153l59.2 0 5.4 0c15.9 0 26.7-3.1 32.5-9.2 5.8-6.1 8.7-17.6 8.7-34.4 0-16.1-3-27.1-9-32.9-6-5.9-17.3-8.8-33.9-8.8l-6.2-0.1-40.7 0 0-55.5L608.4 12.1zM624.3 81.1l37.7 0c15.8 0 25.9 1.6 30.3 4.9 4.4 3.2 6.7 10.7 6.7 22.3 0 13.6-1.5 22.2-4.5 25.9-3 3.6-10.1 5.4-21.3 5.4l-6.1 0.1-42.7 0L624.4 81.1z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="friends" unicode="&#58898;" d="M672.02974 765.933689c7.66047-32.266891 8.420787-62.237483 7.713682-95.365998-0.283456-12.778024-7.291057-71.832002-5.3918-89.926102 1.561565-14.936177 5.132904-16.128329 10.759041-28.436656 9.803273-21.422915 6.51846-50.970882 2.76088-72.566736-2.056845-11.816117-6.404873-28.64541-13.017478-38.287001-7.291057-10.645454-21.864984-10.711969-28.319999-23.12365-9.29469-17.848507-4.045129-42.930765-9.903557-62.21497-6.65763-21.883403-23.599488-23.420409-24.877597-52.040237 8.316409-1.243317 16.59598-2.479471 24.877597-3.722788 8.316409-18.498306 23.533996-55.70265 39.08518-66.900689 13.024641-3.728928 26.048259-7.448646 39.07904-11.156084 45.641503-19.593244 96.365768-43.032072 142.108578-63.215764 41.656749-18.381649 91.51325-24.937972 106.575294-70.629617 0-31.026644 2.795673-104.309694 2.025123-144.978952L58.155515-56.631556000000046c-0.757247 40.669258 2.029216 113.952308 2.029216 144.978952 15.065114 45.691645 64.928778 52.247968 106.578364 70.629617 45.74281 20.182668 96.467075 43.62252 142.098345 63.215764 13.027711 3.707438 26.054399 7.427156 39.08211 11.156084 15.554254 11.197016 30.78105 48.402383 39.09439 66.900689l18.492166 4.710278c-4.196579 24.429389-18.658965 26.322505-24.682146 43.62559-2.356674 26.013467-4.729721 52.052516-7.095605 78.079286 0.107447-1.234107-17.006326 3.246951-19.252483 4.716418-24.130583 15.838733-24.618701 80.075757-26.941606 106.793258-1.063215 12.222369 15.163351 22.240537 10.654664 44.62536-26.433022 131.125433 11.437493 219.776496 71.330582 240.123916 41.564651 17.633612 119.167077 50.323129 191.563944 3.716648l17.971303-17.428951 29.061896-5.237281C662.71663 795.172617 672.02974 765.933689 672.02974 765.933689z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="refresh-3" unicode="&#59818;" d="M820.376904 697.14807C740.637816 774.519228 631.884926 822.157201 511.999488 822.157201c-244.621347 0-442.925808-198.305485-442.925808-442.926832 0-244.6193 198.304462-442.925808 442.925808-442.925808 206.075449 0 379.271046 140.739395 428.740738 331.337337L822.859445 267.64189899999997c-45.759183-127.45381-167.656441-218.623229-310.859957-218.623229-182.371584 0-330.210677 147.842163-330.210677 330.210677 0 182.371584 147.840116 330.2117 330.210677 330.2117 88.762603 0 169.32443-35.035958 228.655723-92.015693L557.051567 433.822732l280.641725 0 113.880677 0 3.351328 0L954.925297 831.695438 820.376904 697.14807z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="ok" unicode="&#58885;" d="M960 640L915.2 684.8 371.2 172.79999999999995 108.8 454.4 64 409.6 358.4 83.20000000000005 364.8 89.60000000000002 371.2 83.20000000000005Z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="layer" unicode="&#58936;" d="M96.089 724.318l0-684.236 831.822 0L927.911 724.318 96.089 724.318zM884.178 84.457L140.464 84.457 140.464 489.559l743.714 0L884.178 84.457z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="face-smile-fine" unicode="&#58892;" d="M511.558443 852.9315573333333c-246.787686 0-447.597201-200.783932-447.597201-447.598224 0-246.815315 200.783932-447.598224 447.597201-447.598224 246.841921 0 447.64939 200.782909 447.64939 447.598224C959.207833 652.1476253333334 758.400365 852.9315573333333 511.558443 852.9315573333333zM511.558443-4.962310666666667c-226.247884 0-410.295644 184.046736-410.295644 410.295644 0 226.249931 184.072319 410.296667 410.295644 410.296667 226.27449 0 410.346809-184.046736 410.346809-410.296667C921.905252 179.08442633333334 737.832933-4.962310666666667 511.558443-4.962310666666667zM724.38055 303.5726953333334c-9.698896 3.457752-20.366863-1.566682-23.848151-11.264555-28.500101-79.45461-104.372116-132.844587-188.82353-132.844587-84.798315 0-160.770614 53.689806-189.070146 133.590578-3.432169 9.723455-14.075577 14.772448-23.823592 11.364839-9.699919-3.432169-14.797008-14.100136-11.364839-23.823592 33.547047-94.77248 123.668601-158.434405 224.234017-158.434405 100.142791 0 190.140525 63.314001 223.935212 157.564595C739.125369 289.3978573333334 734.102982 300.0903843333334 724.38055 303.5726953333334zM302.49494 515.3479593333334c0-24.653493 19.98517-44.638663 44.638663-44.638663 24.653493 0 44.638663 19.98517 44.638663 44.638663s-19.98517 44.63764-44.638663 44.63764C322.48011 559.9855993333333 302.49494 540.0014523333333 302.49494 515.3479593333334L302.49494 515.3479593333334zM631.398856 515.3479593333334c0-24.653493 19.98517-44.638663 44.63764-44.638663 24.653493 0 44.63764 19.98517 44.63764 44.638663s-19.984147 44.63764-44.63764 44.63764C651.384026 559.9855993333333 631.398856 540.0014523333333 631.398856 515.3479593333334L631.398856 515.3479593333334z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="dollar" unicode="&#58969;" d="M517.565-65.45399999999995c-244.263 0-442.299 198.014-442.299 442.299s198.014 442.299 442.299 442.299c244.263 0 442.299-198.014 442.299-442.299 0-244.263-198.014-442.299-442.299-442.299zM517.565 863.383c-268.751 0-486.564-217.834-486.564-486.564s217.834-486.564 486.564-486.564c268.751 0 486.564 217.834 486.564 486.564 0 268.751-217.834 486.564-486.564 486.564zM497.036 425.349c-18.443 6.957-33.605 16.314-45.238 27.617-11.581 11.306-20.059 23.465-25.468 36.742-5.423 13.177-8.178 26.235-8.178 39.172-0.004 18.194 2.564 34.357 7.846 48.514 5.327 14.231 13.748 25.85 25.468 35.02 11.581 9.167 26.798 15.204 45.482 18.295v-205.52zM534.455 356.13199999999995c16.937-6.756 32.277-14.997 46.035-24.855 13.748-9.678 24.613-21.601 32.929-35.57 8.204-13.909 12.436-30.734 12.622-50.307 0-14.231-1.859-27.907-5.785-40.833-3.858-12.866-9.542-24.531-17.271-34.804-7.691-10.211-17.271-18.443-28.678-24.613-11.328-6.318-24.613-9.678-39.76-10.341v221.377zM534.455 94.18299999999999c29.037 3.318 53.978 11.306 74.785 24.134 20.985 12.866 37.018 30.15 48.281 51.734 11.125 21.535 16.876 46.832 16.937 76.196 0 16.08-1.67 30.377-5.033 42.985-3.318 12.622-8.204 24.15-14.836 34.357-6.739 10.341-14.836 20.189-24.613 29.326-8.853 8.204-19.107 15.957-30.659 23.041-11.328 7.197-22.836 13.706-34.281 19.261-11.581 5.694-21.601 10.516-30.659 14.231v221.377c14.527-3.318 26.662-8.594 36.62-16.192 9.859-7.395 17.766-16.192 23.776-26.384 5.941-10.211 10.341-20.985 12.972-32.345 2.666-11.328 4.026-22.836 3.858-34.097h46.155c0.004 16.314-1.566 32.345-5.327 48.281-3.543 15.957-9.938 30.909-19.107 44.969-8.996 13.909-21.601 26.235-37.684 36.742-16.192 10.521-36.62 18.295-61.318 23.562v49.426h-37.441v-53.316c-23.465-2.624-42.985-8.178-58.595-16.314-15.633-8.204-28.279-18.194-37.684-29.562-9.441-11.328-16.523-23.302-21.226-35.317-4.59-12.062-7.846-23.302-9.316-33.326-1.566-10.211-2.256-18.194-2.115-24.029 0.004-21.601 3.452-40.612 9.863-57.238 6.479-16.523 15.58-30.909 27.178-43.441 11.659-12.436 25.361-23.562 40.833-33.204 15.633-9.678 32.649-18.443 51.098-26.235v-237.329c-18.194 1.984-33.326 7.197-45.094 15.633-11.97 8.369-21.074 19.107-27.714 31.902-6.739 12.972-11.011 27.178-13.363 42.701-2.256 15.58-3.034 31.313-2.115 47.367h-47.803c-1.183-23.776 0.397-46.035 5.033-66.676s12.357-39.03 23.376-55.019c10.892-16.08 25.361-29.037 43.142-39.03 17.847-9.863 39.472-16.08 64.586-18.295v-65.283h37.441v65.283z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="group" unicode="&#58899;" d="M1383.17753-39.75895700000001L1380.048488-13.938771999999972 1373.005994 17.35852699999998 1362.834458 47.090445000000045 1348.751189 77.605053 1334.667921 101.07716700000003 1315.107539 123.76659099999995 1293.199086 141.76331100000004 1262.684478 158.97562200000004 1240.777745 169.147158 1211.828518 176.18965200000002 1182.87757 183.23042599999997 1157.840075 192.61927200000002 1126.544497 207.48523 1101.507002 219.22214799999995 1070.992393 233.30541600000004 1047.52028 246.607714 1047.52028 329.54366300000004 1057.690095 341.280581 1067.080661 356.92751 1074.121435 372.57615899999996 1079.598549 392.136541 1085.858352 415.610375 1088.204704 433.605376 1091.595216 432.822685 1098.37624 433.866846 1103.593603 438.040048 1109.330466 447.428894 1112.982449 458.3814 1115.06905 471.943448 1117.676871 496.459723 1118.719312 517.324016 1117.676871 535.059266 1114.024889 546.0134929999999 1106.722645 550.186695 1102.549442 549.142535 1106.201425 572.614649 1109.330466 600.782906 1110.374627 626.341621 1109.851687 646.684693 1106.722645 665.4623839999999 1100.984061 683.718855 1093.160597 700.409945 1082.20637 719.189356 1069.688483 734.838006 1055.082274 746.8346730000001 1036.304583 758.83134 1012.832469 769.785566 993.010617 775.00121 969.017283 779.174412 945.543448 779.695632 921.550114 775.52243 898.599221 767.698965 878.256148 759.35256 860.520898 747.877113 844.089558 733.2726250000001 828.440908 716.058594 814.35764 695.715522 804.186104 673.8087889999999 797.92802 648.771294 797.14533 616.691305 800.274372 586.959387 804.186104 548.621314 795.579949 548.621314 790.102836 541.57882 788.539175 529.060933 790.102836 499.329015 794.014568 464.902674 797.14533 447.688644 802.622443 438.299798 812.793979 432.822685 819.052063 433.605376 822.965515 406.221529 826.877248 389.790189 833.137051 371.79346899999996 841.743207 353.79846799999996 851.914743 339.7152 859.738207 329.54366300000004 858.955517 245.04233299999999 867.267518 242.13003600000002 878.734364 238.975192 891.063029 234.389141 902.817148 229.80137100000002 913.712888 225.78814699999998 923.459535 220.91310299999998 935.215374 216.03977999999995 948.116866 208.58615799999995 961.018358 201.13081599999998 971.625104 193.38992099999996 985.386695 183.06872699999997 997.142535 172.174708 1008.323827 158.41311700000006 1020.077947 143.21860000000004 1032.549389 125.72933699999999 1043.300632 105.086951 1052.476173 82.72436500000003 1060.502621 62.08197800000005 1066.093267 42.72974099999999 1069.963715 22.517404000000056 1073.834162-0.27523199999995995 1076.41446-26.93831499999999 1076.84451-45.000403000000006 1075.984411-61.12726799999996 1072.328988-73.59870999999998 1065.377664-87.28805299999999 1057.277248-96.391345 1042.440532-103.91721500000006 1351.099261-103.91721500000006 1365.182529-96.87472100000002 1376.136756-85.92221500000005 1383.17753-74.18529799999999 1384.742911-59.319339000000014ZM438.650719 816.389195L421.44873 797.467007 405.96694 775.104421 394.785647 751.021637 387.904851 723.498455 387.044752 688.234377 390.48515 655.550598 394.785647 613.4057250000001 385.324553 613.4057250000001 379.303857 605.6648299999999 377.583658 591.903239 379.303857 559.21946 383.604354 521.375084 387.044752 502.452896 393.065448 492.131703 404.246741 486.111007 411.127537 486.971106 415.428034 456.867625 419.728531 438.805537 426.609327 419.02325 436.070421 399.240962 447.251713 383.75917200000004 455.852708 372.57787900000005 454.992609 279.687139 440.370918 270.226045 405.96694 253.88415499999996 370.702863 238.40236500000003 342.319581 224.64077399999996 319.956995 215.17967999999996 295.014111 207.43878500000005 269.211128 202.278188 244.268244 196.25749199999996 218.46526 185.07619899999997 194.382475 173.034807 172.879989 157.55301699999995 148.797205 133.470232 131.595216 108.52734799999996 118.693724 84.44456400000001 108.372531 58.641579999999976 98.051337 29.398198999999977 92.89074 6.175514000000021 88.590243-13.606772999999976 86.009945-36.829458000000045 86.009945-57.47184500000003 89.450343-78.11423200000002 99.771536-91.87582299999997 115.253326-102.19701699999996 135.035613-103.91721500000006 995.995162-103.91721500000006 1011.476952-96.17632000000003 1023.518344-84.13492799999995 1031.259239-71.23343599999998 1032.979438-54.891546999999946 1031.259239-33.38906099999997 1027.818842-5.005778999999961 1020.077947 29.398198999999977 1008.896654 62.08197800000005 993.414864 95.625857 977.933074 121.42884000000004 956.430587 146.37172399999997 932.347803 166.15401199999997 898.803924 185.07619899999997 874.72114 196.25749199999996 842.89746 203.99838699999998 811.07378 211.739282 783.550598 222.060476 749.14662 238.40236500000003 721.623438 251.303857 688.079559 266.78564700000004 662.276576 281.407338 662.276576 372.57787900000005 673.457869 385.479371 683.779062 402.68136 691.519957 419.883349 697.540653 441.385835 704.421449 467.188819 707.001747 486.971106 710.729418 486.111007 718.18304 487.258379 723.916463 491.84443 730.224432 502.165623 734.237656 514.207015 736.532402 529.1159789999999 739.398253 556.066335 740.545626 579.001747 739.398253 598.496761 735.385029 610.538153 727.356861 615.1259239999999 722.77081 613.9785509999999 726.784034 639.7815350000001 730.224432 670.7451149999999 731.371805 698.842844 730.797258 721.205429 727.356861 741.847816 721.050611 761.915656 712.449617 780.265018 700.408225 800.907405 686.646634 818.109394 670.590297 831.2981589999999 649.94791 844.485204 624.144927 856.526596 602.356888 862.261739 575.979358 866.847789 550.176374 867.422336 523.800564 862.834565 498.570407 854.233571 476.207822 845.05975 456.712807 832.443811Z"  horiz-adv-x="1449" />
+
+    
+    <glyph glyph-name="layim-download" unicode="&#58910;" d="M186.888458 77.07363199999998l0 581.729108c14.85022-14.450107 35.050284-23.436782 57.359382-23.436782l560.03604 0 0-151.561881 25.029046 0 0 176.591951-585.065086 0c-31.191396 0-57.359382 26.166963-57.359382 57.359382 0 31.191396 26.165939 57.359382 57.359382 57.359382l572.551074 0L816.798914 800.143838 244.24784 800.143838c-45.431725 0-82.388429-36.957727-82.388429-82.388429l0-640.681778c0-41.796942 34.000372-75.789127 75.789127-75.789127l225.950102 0 0 25.029046L237.648538 26.31355099999996C209.661114 26.31355099999996 186.888458 49.078021000000035 186.888458 77.07363199999998zM236.947574 730.269421l560.38601 0 0-25.029046-560.38601 0 0 25.029046ZM686.086897 428.171012c-85.917812 0-164.908864-55.248302-194.553021-135.882783-30.013571-81.641415-4.269233-175.567621 62.624293-230.942813 67.00302-55.465243 164.474982-62.808488 238.931764-17.720593 74.094532 44.868907 113.272833 133.533272 96.080266 218.517829C869.882923 357.47283300000004 783.297916 428.171012 686.086897 428.171012zM686.086897 38.82858599999997c-75.595722 0-145.060817 48.634674-171.092703 119.595842-26.354228 71.839165-3.63069 154.438395 55.287187 203.074092 59.017138 48.718585 144.762011 55.029314 210.191186 15.237029 65.11195-39.59888 99.396801-117.681236 84.064604-192.408171C847.384513 100.72940100000005 771.387655 38.82858599999997 686.086897 38.82858599999997zM698.600909 152.23547199999996L698.600909 311.02496499999995 673.571862 311.02496499999995 673.571862 152.28459099999998 604.675726 221.17254100000002 586.978668 203.47548400000005 686.111456 104.35190499999999 785.185916 203.42738799999995 767.489882 221.123422Z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="picture-fine" unicode="&#58893;" d="M958.648085 84.30682933333333L65.772494 84.30682933333333 65.772494 721.9115253333333l892.87559 0L958.648085 84.30682933333333zM97.660762 116.20328333333339l829.099055 0L926.759817 690.0570263333334 97.660762 690.0570263333334 97.660762 116.20328333333339zM648.731616 419.05893933333334l-1.991354 0c-47.801702 0-86.696548 38.900985-86.696548 86.695524l0 1.978051c0 47.809889 38.894845 86.671988 86.696548 86.671988l1.991354 0c47.801702 0 86.698594-38.862099 86.698594-86.671988l0-1.978051C735.43021 457.95992433333333 696.533318 419.05893933333334 648.731616 419.05893933333334zM646.740262 562.5193053333333c-30.224372 0-54.810327-24.582885-54.810327-54.787814l0-1.978051c0-30.230512 24.584931-54.803163 54.810327-54.803163l1.991354 0c30.222325 0 54.810327 24.572652 54.810327 54.803163l0 1.978051c0 30.203906-24.586978 54.787814-54.810327 54.787814L646.740262 562.5193053333333zM91.097276 181.7900473333334l-22.748097 22.338774 274.373974 279.332916 22.750143-22.351054L91.097276 181.7900473333334zM604.886015 215.92242633333342L339.999113 480.74793033333333l22.548552 22.525016L627.433544 238.4638153333334 604.886015 215.92242633333342zM619.007641 202.70744933333333l-22.763446 22.337751 167.989015 171.035398 22.765493-22.350031L619.007641 202.70744933333333zM925.622924 222.7939273333334L758.534418 389.8343373333333l22.548552 22.529109 167.086459-167.044504L925.622924 222.7939273333334z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="link" unicode="&#58956;" d="M262.4-121.60000000000002c-64 0-128 25.6-179.2 76.8-102.4 102.4-102.4 262.4 0 364.8l134.4 134.4 89.6-89.6-134.4-134.4c-51.2-51.2-51.2-128 0-179.2 51.2-51.2 128-51.2 179.2 0l179.2 179.2c25.6 25.6 38.4 57.6 38.4 89.6S556.8 384 537.6 409.6L467.2 473.6l89.6 89.6 70.4-70.4C672 448 697.6 384 697.6 313.6c0-70.4-25.6-134.4-76.8-179.2l-179.2-179.2C396.8-96 326.4-121.60000000000002 262.4-121.60000000000002zM467.2 204.79999999999995L396.8 268.79999999999995c-102.4 102.4-102.4 262.4 0 364.8l179.2 179.2c102.4 102.4 262.4 102.4 364.8 0 102.4-102.4 102.4-262.4 0-364.8l-134.4-134.4-89.6 89.6 134.4 134.4c51.2 51.2 51.2 128 0 179.2-51.2 51.2-134.4 51.2-179.2 0L486.4 544c-51.2-51.2-51.2-128 0-179.2l70.4-70.4L467.2 204.79999999999995z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="diamond" unicode="&#59189;" d="M998.4 526.933333L797.866667 802.133333c-4.266667 6.4-12.8 10.666667-19.2 10.666667L243.2 812.8c0 0-14.933333-2.133333-23.466667-17.066667C194.133333 753.066667 32 512 32 512L21.333333 494.933333l12.8-14.933333L469.333333-27.733333000000016c4.266667-4.266667 6.4-6.4 10.666667-8.533333 6.4-4.266667 32-10.666667 46.933333 0 4.266667 2.133333 6.4 6.4 10.666667 8.533333l409.6 420.266667c10.666667 8.533333 10.666667 25.6 0 34.133333-8.533333 10.666667-23.466667 10.666667-32 0L561.066667 61.86666700000001l153.6 422.4 0 0 251.733333 0c2.133333 0 19.2 0 23.466667 4.266667l2.133333 2.133333C1004.8 497.066667 1006.933333 512 998.4 526.933333zM782.933333 763.733333l-96-226.133333L341.333333 537.6l-85.333333 226.133333L782.933333 763.733333zM221.866667 714.666667l72.533333-179.2-192 0L221.866667 714.666667zM91.733333 488.533333l215.466667 0 138.666667-416L91.733333 488.533333zM503.466667 44.799999999999955l-147.2 443.733333 307.2 0L503.466667 44.799999999999955zM736 535.4666669999999L810.666667 701.866667l119.466667-168.533333L736 533.333333z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="log" unicode="&#58894;" d="M828.01742 700.357158C743.476979 784.899646 631.076002 831.458031 511.516999 831.458031c-119.55798 0-231.959979-46.558385-316.500421-131.09985C110.47716 615.81774 63.918775 503.41574 63.918775 383.85776c0-87.103824 25.045419-171.548074 72.429613-244.204861 9.393951-14.402011 28.685319-18.46249 43.087331-9.071609 14.404058 9.393951 18.46556 28.685319 9.072633 43.089377-40.768519 62.511729-62.317301 135.194098-62.317301 210.187093 0 212.469066 172.85586 385.326972 385.325949 385.326972s385.325949-172.857906 385.325949-385.326972-172.85586-385.326972-385.325949-385.326972c-70.357418 0-139.188062 19.131733-199.052498 55.323003-14.71412 8.900717-33.856086 4.180206-42.753733-10.534937-8.896624-14.71719-4.180206-33.856086 10.534937-42.753733 69.584821-42.070164 149.556201-64.307631 231.271294-64.307631 119.559003 0 231.959979 46.558385 316.500421 131.09985 84.539418 84.539418 131.097804 196.941418 131.097804 316.499397S912.556838 615.81774 828.01742 700.357158zM494.28964 690.216193c-21.782096 0-39.397289-17.658172-39.397289-39.439244l0-283.524378c0-1.360997 0.358157-2.706645 0.493234-4.03285 2.020006-19.886933 18.959817-34.573423 39.379892-34.573423l0 0 0.146333 0.832971 223.590358 0c21.782096 0 39.438221 17.616216 39.438221 39.397289s-17.658172 39.397289-39.439244 39.397289L533.686928 408.273846l0 242.503103C533.686928 672.5580219999999 516.071735 690.216193 494.28964 690.216193z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="rate-solid" unicode="&#59002;" d="M957.111079 492.519576c-3.927449 11.669784-14.447037 19.86442-26.723641 20.816095L647.68068 535.250796 540.183388 811.873997c-4.586458 11.803837-15.951297 19.579941-28.614711 19.579941s-24.02723-7.776104-28.614711-19.579941L375.458719 535.250796l-282.708803-21.915126c-12.276604-0.951675-22.796192-9.146311-26.723641-20.816095-3.927449-11.669784-0.50142-24.557302 8.701173-32.737612l217.547735-193.358823-67.980277-291.298436c-2.848884-12.20702 2.009773-24.919553 12.273535-32.114418 10.264784-7.195889 23.87271-7.42818 34.375925-0.586354l240.624313 156.709111 240.625336-156.709111c5.099135-3.320629 10.92891-4.974291 16.752546-4.974291 6.173606 0 12.342096 1.858324 17.623379 5.561669 10.263761 7.194866 15.122419 19.907399 12.273535 32.114418l-67.980277 291.299459L948.409906 459.781964C957.613522 467.962274 961.037505 480.849792 957.111079 492.519576z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="fonts-del" unicode="&#58959;" d="M928 448l-143.616 0c-3.456 55.616-14.272 106.56-29.504 144.96C725.504 666.816 617.344 768 464.32 768L256 768l0-320L96 448C78.336 448 64 433.664 64 416S78.336 384 96 384L256 384l0-320 229.632 0c156.288 0 240.768 97.856 267.904 167.488C772.736 280.96000000000004 782.272 333.312 784.96 384L928 384C945.664 384 960 398.336 960 416S945.664 448 928 448zM349.376 711.488l63.936 0c35.712 0 251.84 27.968 266.944-263.488l-330.88 0L349.376 711.488zM439.296 120.51199999999994L349.376 120.51199999999994 349.376 382.528 349.376 384l330.88 0C665.344 113.98400000000004 467.968 120.51199999999994 439.296 120.51199999999994z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="unlink" unicode="&#58957;" d="M150.336 767.6800000000001C133.44 762.304 124.16 744.3199999999999 129.472 727.488 131.2 722.1759999999999 134.208 717.44 138.304 713.664l122.624-122.432C270.208 576.192 289.92 571.52 304.96 580.736 320 590.0799999999999 324.672 609.7280000000001 315.456 624.832 312.832 629.056 309.184 632.64 304.96 635.264L182.336 757.696C175.168 765.44 164.672 769.216 154.304 767.6800000000001 152.96 767.808 151.552 767.808 150.336 767.6800000000001L150.336 767.6800000000001zM406.08 831.424c-13.696-4.48-22.72-17.6-22.016-32L384.064 672c0-17.664 14.336-32 32-32s31.872 14.336 31.872 32L447.936 799.424C448.256 817.088 434.304 831.6800000000001 416.64 832 414.464 832.064 412.16 831.808 410.048 831.424 408.704 831.552 407.296 831.552 406.08 831.424L406.08 831.424zM91.392 511.872C73.728 509.12 61.632 492.544 64.384 474.88 67.136 457.28 83.712 445.248 101.376 448L224 448C241.664 448 256 462.208 256 479.872s-14.336 32-32 32L101.376 511.872c-1.984 0.192-3.968 0.192-6.016 0C94.016 512 92.608 512 91.392 511.872L91.392 511.872zM795.456 320c-17.728-2.752-29.824-14.08-27.072-31.744 2.752-17.6 19.328-35.008 36.992-32.256L928 256c17.664 0 32 19.584 32 37.248S945.664 320 928 320l-122.624 0c-1.984 0.192-3.968 0.192-6.016 0-1.344 0.128-2.688 0.128-4.032 0L795.456 320zM598.272 127.42399999999998c-13.76-4.48-22.72-17.6-22.08-32L576.192-32c0-17.664 14.336-32 32-32S640-49.66399999999999 640-32l0 127.424c0.32 17.6-13.568 32.256-31.232 32.576-2.176 0.064-4.352-0.192-6.592-0.576-1.344 0.128-2.688 0.128-4.032 0L598.272 127.42399999999998zM726.272 191.67999999999995c-16.896-5.376-26.24-23.36-20.864-40.192 1.664-5.312 4.736-10.048 8.832-13.824l122.56-122.432c9.28-15.04 28.928-19.776 44.032-10.496 14.976 9.344 19.712 28.992 10.368 44.032-2.624 4.224-6.144 7.808-10.368 10.432l-122.56 122.432c-7.168 7.744-17.6 11.52-28.032 9.984-1.344 0.128-2.688 0.128-4.032 0L726.272 191.61599999999999zM339.968 28.03200000000004c-49.152 0-98.304 18.688-135.744 56.128-74.816 74.88-74.816 196.608 0 271.488l87.744 87.744c12.48 12.48 32.768 12.48 45.248 0s12.48-32.768 0-45.248L249.408 310.46400000000006c-49.92-49.856-49.92-131.136 0-180.992 49.856-49.856 131.136-49.856 180.992 0l87.744 87.744c12.48 12.48 32.768 12.48 45.248 0s12.48-32.768 0-45.248l-87.744-87.744C438.272 46.72000000000003 389.12 28.03200000000004 339.968 28.03200000000004zM702.144 323.712c-8.192 0-16.384 3.136-22.656 9.344-12.48 12.48-12.48 32.768 0 45.248l87.744 87.744c49.856 49.92 49.856 131.072 0 180.992-49.856 49.856-131.136 49.856-180.992 0L498.496 559.296c-12.48-12.48-32.768-12.48-45.248 0s-12.48 32.768 0 45.248l87.744 87.744c74.88 74.88 196.608 74.88 271.488 0 74.88-74.816 74.88-196.672 0-271.488l-87.744-87.744C718.528 326.784 710.336 323.712 702.144 323.712z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="fonts-clear" unicode="&#58937;" d="M944.787709 197.20939699999997L857.081297 197.20939699999997 741.092979-127.73993700000005 815.146059-127.73993700000005 832.440281-65.58476199999996 966.82809-65.58476199999996 984.512408-127.73993700000005 1062.011328-127.73993700000005 944.787709 197.20939699999997 944.787709 197.20939699999997ZM848.04409 1.1865400000000363L898.951519 153.25866699999995 949.923963 1.1865400000000363 848.04409 1.1865400000000363 848.04409 1.1865400000000363ZM210.238376 489.910857L183.386821 513.121524 12.46009 313.522794C-5.874386 292.652698-3.728862 260.989968 17.271265 242.720508 38.401424 224.45104800000001 70.454249 226.66158700000005 88.853741 247.53168300000004L100.361551 260.599873C106.603075 267.55657099999996 117.200662 268.20673 124.287392 262.22527 131.309106 256.048762 132.024281 245.51619000000005 125.912789 238.55949199999998 107.448281 217.62438099999997 98.085995 173.08850800000005 119.216154 154.81904799999995 140.281297 136.614603 183.841932 151.76330199999995 202.371455 172.69841299999996 208.417932 179.525079 219.145551 180.30526999999995 226.167265 174.19377799999995 233.188979 168.14730199999997 233.904154 157.61473 227.792662 150.65803200000005 209.328154 129.85295199999996 199.965868 85.05701599999998 221.096027 66.91758700000003 242.16117 48.648127000000045 285.656789 63.86184100000003 304.186313 84.666921 310.362821 91.62361899999996 321.025424 92.40381000000002 327.982122 86.29231700000003 335.068852 80.18082500000003 335.784027 69.71326999999997 329.672535 62.75657100000001 311.143011 41.82146 301.845741-2.9094599999999673 322.910884-20.983873000000017 344.041043-39.253333 387.601678-24.039619000000016 406.00117-3.234540000000038 412.177678 3.7221590000000333 422.840281 4.437332999999967 429.927011-1.6091430000000173 436.948725-7.720635000000016 437.598884-18.31822199999999 431.487392-25.144889000000035 413.022884-46.08000000000004 403.725614-90.81092100000001 424.790757-109.01536499999997 445.920916-127.15479400000004 477.973741-125.00927000000001 496.373233-104.20419000000004L667.299963 95.52457100000004 658.652852 132.90869799999996 210.238376 489.910857 210.238376 489.910857ZM844.013106 329.516698L680.10809 471.12127 929.639011 715.190857C933.2799 718.376635 936.725741 721.562413 939.976535 725.203302 977.815773 768.048762 973.524725 833.129651 930.28917 870.513778 887.183646 907.702857 821.58263 903.281778 783.808408 860.631365L783.483328 860.761397 564.249805 571.3107299999999 399.824662 713.56546C385.391138 726.113524 363.480789 724.553143 350.867709 710.249651L248.14263 593.871238 225.322059 567.994921 251.393424 545.434413 695.7119 161.25561900000002 726.26936 136.679619 847.328916 281.014857C859.941995 295.318349 858.44663 316.96863499999995 844.013106 329.516698L844.013106 329.516698ZM817.941741 830.724063C839.136916 854.779937 876.000916 857.315556 900.186821 836.250413 924.372725 815.380317 926.908344 778.906413 905.648154 754.85054 884.452979 730.924698 847.588979 728.389079 823.403075 749.3892060000001 799.21717 770.324317 796.811582 806.798222 817.941741 830.724063L817.941741 830.724063ZM765.473932 758.491429C768.919773 741.522286 777.6319 725.593397 791.80536 713.305397 806.043836 701.017397 823.533106 694.580825 841.087392 693.540571L643.634186 494.526984 593.116852 538.2176509999999 765.473932 758.491429 765.473932 758.491429ZM776.006503 299.739429L709.755328 219.314794 307.502122 566.369524 376.809043 645.03873C382.920535 651.865397 393.38809 652.5155560000001 400.409805 646.534095L774.381106 323.01511100000005C781.337805 317.098667 782.117995 306.69612700000005 776.006503 299.739429L776.006503 299.739429Z"  horiz-adv-x="1063" />
+
+    
+    <glyph glyph-name="triangle-r" unicode="&#58915;" d="M293.291 728.256l426.88-355.456-426.88-355.52z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="circle" unicode="&#58943;" d="M511.998 847.999C255.739 847.999 48 640.26 48 383.999c0-256.258 207.739-463.998 463.998-463.998C768.261-79.99900000000002 976 127.74199999999996 976 383.999 976 640.26 768.261 847.999 511.998 847.999zM512.002-16.000999999999976c-220.915 0-400.002 179.088-400.002 400 0 220.917 179.086 400 400.002 400 220.912 0 399.998-179.083 399.998-400C912 163.087 732.914-16.000999999999976 512.002-16.000999999999976z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="radio" unicode="&#58947;" d="M512.5 383.5m-192 0a192 192 0 1 1 384 0 192 192 0 1 1-384 0ZM511.998 847.999C255.739 847.999 48 640.26 48 383.999c0-256.258 207.739-463.998 463.998-463.998C768.261-79.99900000000002 976 127.74199999999996 976 383.999 976 640.26 768.261 847.999 511.998 847.999zM512.002-16.000999999999976c-220.915 0-400.002 179.088-400.002 400 0 220.917 179.086 400 400.002 400 220.912 0 399.998-179.083 399.998-400C912 163.087 732.914-16.000999999999976 512.002-16.000999999999976z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="align-center" unicode="&#58951;" d="M992 448L32 448C14.32 448 0 462.336 0 480 0 497.664 14.32 512 32 512L992 512C1009.68 512 1024 497.664 1024 480 1024 462.336 1009.68 448 992 448ZM800 704C817.664 704 832 689.664 832 672 832 654.336 817.664 640 800 640L224 640C206.32 640 192 654.336 192 672 192 689.664 206.32 704 224 704L800 704ZM992 832L32 832C14.32 832 0 846.336 0 864 0 881.664 14.32 896 32 896L992 896C1009.68 896 1024 881.664 1024 864 1024 846.336 1009.68 832 992 832ZM224 256C206.32 256 192 270.336 192 288 192 305.664 206.32 320 224 320L800 320C817.664 320 832 305.664 832 288 832 270.336 817.664 256 800 256L224 256ZM32 128L992 128C1009.68 128 1024 113.66399999999999 1024 96 1024 78.33600000000001 1009.68 64 992 64L32 64C14.32 64 0 78.33600000000001 0 96 0 113.66399999999999 14.32 128 32 128ZM224-64L800-64C817.664-64 832-78.33600000000001 832-96 832-113.66399999999999 817.664-128 800-128L224-128C206.32-128 192-113.66399999999999 192-96 192-78.33600000000001 206.32-64 224-64Z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="align-right" unicode="&#58952;" d="M992 64L32 64C14.32 64 0 78.33600000000001 0 96 0 113.66399999999999 14.32 128 32 128L992 128C1009.68 128 1024 113.66399999999999 1024 96 1024 78.33600000000001 1009.68 64 992 64ZM992 256L288 256C270.32 256 256 270.336 256 288 256 305.664 270.32 320 288 320L992 320C1009.68 320 1024 305.664 1024 288 1024 270.336 1009.68 256 992 256ZM992 448L32 448C14.32 448 0 462.336 0 480 0 497.664 14.32 512 32 512L992 512C1009.68 512 1024 497.664 1024 480 1024 462.336 1009.68 448 992 448ZM992 640L288 640C270.32 640 256 654.336 256 672 256 689.664 270.32 704 288 704L992 704C1009.68 704 1024 689.664 1024 672 1024 654.336 1009.68 640 992 640ZM992 832L32 832C14.32 832 0 846.336 0 864 0 881.664 14.32 896 32 896L992 896C1009.68 896 1024 881.664 1024 864 1024 846.336 1009.68 832 992 832ZM288-64L992-64C1009.68-64 1024-78.33600000000001 1024-96 1024-113.66399999999999 1009.68-128 992-128L288-128C270.32-128 256-113.66399999999999 256-96 256-78.33600000000001 270.32-64 288-64Z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="align-left" unicode="&#58953;" d="M992 448L32 448C14.336 448 0 462.336 0 480 0 497.664 14.336 512 32 512L992 512C1009.664 512 1024 497.664 1024 480 1024 462.336 1009.664 448 992 448ZM32 704L736 704C753.68 704 768 689.664 768 672 768 654.336 753.68 640 736 640L32 640C14.336 640 0 654.336 0 672 0 689.664 14.336 704 32 704ZM992 832L32 832C14.336 832 0 846.336 0 864 0 881.664 14.336 896 32 896L992 896C1009.664 896 1024 881.664 1024 864 1024 846.336 1009.664 832 992 832ZM32 320L736 320C753.68 320 768 305.664 768 288 768 270.336 753.68 256 736 256L32 256C14.336 256 0 270.336 0 288 0 305.664 14.336 320 32 320ZM32 128L992 128C1009.664 128 1024 113.66399999999999 1024 96 1024 78.33600000000001 1009.664 64 992 64L32 64C14.336 64 0 78.33600000000001 0 96 0 113.66399999999999 14.336 128 32 128ZM32-64L736-64C753.68-64 768-78.33600000000001 768-96 768-113.66399999999999 753.68-128 736-128L32-128C14.336-128 0-113.66399999999999 0-96 0-78.33600000000001 14.336-64 32-64Z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="loading-1" unicode="&#58942;" d="M537.574469 831.696462c-14.123672 0-25.574469-11.447726-25.574469-25.574469 0-14.123672 11.450796-25.574469 25.574469-25.574469 204.495464 0 370.82877-166.358889 370.82877-370.82877 0-14.123672 11.450796-25.574469 25.574469-25.574469 14.123672 0 25.574469 11.450796 25.574469 25.574469C959.551152 642.385838 770.241552 831.696462 537.574469 831.696462z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="return" unicode="&#58972;" d="M927.858848 417.938973L168.863431 417.938973l308.721247 308.86758c11.685133 11.69025 11.435447 30.881334-0.557702 42.868343-11.992125 11.985986-31.18321 12.226462-42.868343 0.536212L75.199191 411.071565c-1.994424-1.662873-3.773953-3.583618-5.294586-5.713119-4.047176-5.373381-6.013971-11.839653-5.9055-18.328437-0.12996-7.794523 2.725064-15.561417 8.595772-21.432125l361.565802-361.744881c11.685133-11.691273 30.876218-11.449773 42.868343 0.535189 11.993149 11.985986 12.242835 31.17707 0.557702 42.868343L168.441828 356.54571799999997l759.417019 0c16.527418 0 29.925566 13.738909 29.925566 30.694069S944.386266 417.938973 927.858848 417.938973z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="fonts-strong" unicode="&#58923;" d="M199.092919 848.487893l355.326704 0c70.335928 0 122.780371-2.942005 157.349701-8.809643 34.568307-5.884011 65.491597-18.131963 92.78522-36.759205 27.27725-18.627243 50.01409-43.427068 68.209498-74.397431 18.195408-30.986735 27.293623-65.699328 27.293623-104.169501 0-41.7161-11.17655-79.977519-33.496905-114.802676s-52.604078-60.951187-90.818425-78.362742c54.075593-15.765055 95.647407-42.626843 124.715443-80.585363s43.602054-82.58388 43.602054-133.877103c0-40.388872-9.417487-79.673597-28.220738-117.839849-18.803251-38.182624-44.482097-68.673056-77.035514-91.489714-32.55444-22.833031-72.702835-36.855396-120.414487-42.09984-29.931706-3.229554-102.122889-5.260817-216.572524-6.060019L199.092919-40.765192999999954 199.092919 848.487893zM378.171504 700.1084940000001l0-205.684546 117.64849 0c69.935816 0 113.410979 1.006933 130.390699 3.038196 30.730908 3.629667 54.891168 14.246469 72.478731 31.850405 17.588587 17.588587 26.381857 40.756239 26.381857 69.473281 0 27.501354-7.594979 49.838082-22.75219 67.042929-15.158235 17.188474-37.702694 27.597545-67.618027 31.242562-17.796318 2.01489-68.945255 3.038196-153.431461 3.038196L378.171504 700.109518zM378.171504 346.04454999999996l0-236.383732 166.622902 0c64.85203 0 106.008382 1.807159 123.43631 5.420453 26.750247 4.828982 48.543599 16.58063 65.363683 35.272341s25.247011 43.714617 25.247011 75.085092c0 26.526143-6.491855 49.03888-19.459191 67.538209-12.983709 18.48398-31.722492 31.961946-56.250118 40.404222s-77.739549 12.663414-159.619394 12.663414L378.171504 346.04454999999996z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="upload" unicode="&#59004;" d="M831.488 478.208C831.488 478.208 831.488 478.208 831.488 478.208c0 143.36-114.688 258.048-253.952 258.048-98.304 0-184.32-57.344-225.28-139.264C327.68 605.184 307.2 609.28 286.72 609.28c-90.112 0-159.744-73.728-159.744-159.744 0-16.384 4.096-28.672 8.192-40.96C57.344 379.904 0 310.27200000000005 0 224.25599999999997c0-106.496 86.016-192.512 192.512-192.512l192.512 0 0 192.512L258.048 224.25599999999997l258.048 258.048 258.048-258.048-126.976 0 0-192.512 192.512 0L839.68 35.84000000000003c106.496 16.384 192.512 110.592 192.512 221.184C1024 371.712 937.984 465.92 831.488 478.208z"  horiz-adv-x="1033" />
+
+    
+    <glyph glyph-name="dialogue" unicode="&#58938;" d="M998.4 500.992C998.4 682.24 811.392 829.696 581.632 829.696c-121.216 0-235.904-41.472-315.264-114.048 37.504 8.192 76.416 13.056 115.456 14.464 59.264 30.592 128.256 46.72 199.808 46.72 198.144 0 359.296-123.776 359.296-275.968 0-31.872-7.04-63.232-20.992-93.056 7.552-28.16 11.264-57.344 11.008-86.528C975.104 374.784 998.4 436.736 998.4 500.992L998.4 500.992zM442.368 398.72c-30.72 0-55.808-23.04-55.808-51.328s25.088-51.328 55.808-51.328 55.808 23.04 55.808 51.328S473.088 398.72 442.368 398.72zM243.328 398.72c-30.72 0-55.808-23.04-55.808-51.328s25.088-51.328 55.808-51.328 55.808 23.04 55.808 51.328C299.264 375.67999999999995 274.176 398.72 243.328 398.72zM641.28 398.72c-30.72 0-55.808-23.04-55.808-51.328s25.088-51.328 55.808-51.328 55.808 23.04 55.808 51.328S672.128 398.72 641.28 398.72zM442.368 677.888C212.608 677.888 25.6 530.432 25.6 349.312c0-179.968 173.696-296.192 332.544-321.664l60.8-78.336c5.632-7.424 14.464-11.008 23.296-11.008 8.832 0 17.792 3.712 23.424 11.008l60.8 78.464C685.312 53.24800000000005 859.008 169.47199999999998 859.008 349.44000000000005 859.136 530.432 672.128 677.888 442.368 677.888zM714.88 173.82399999999996c-52.224-45.184-124.288-77.952-197.376-89.6C503.168 81.91999999999996 490.112 74.24000000000001 481.28 62.72000000000003l-38.784-49.92-38.912 49.92c-8.96 11.52-21.888 19.2-36.224 21.504-73.216 11.776-145.152 44.416-197.376 89.728-39.68 34.304-86.912 92.544-86.912 175.36 0 69.76 35.584 136.192 100.352 187.264 68.736 54.144 160.768 84.096 258.944 84.096 98.304 0 190.336-29.824 259.072-84.096 64.768-51.072 100.352-117.504 100.352-187.264C801.664 266.36800000000005 754.56 208.12800000000004 714.88 173.82399999999996z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="video" unicode="&#59117;" d="M952.523633 599.2477269999999L952.523633 599.2477269999999 952.523633 599.2477269999999zM100.53762400000005 661.054062C100.53762400000005 661.054062 100.53762400000005 661.054062 100.53762400000005 661.054062 100.53762400000005 661.054062 100.53762400000005 661.054062 100.53762400000005 661.054062zM100.74228 720.404517L100.74228 720.404517 100.74228 720.404517zM660.990107 739.9449716666666c8.697911 0 17.498151-0.511642 25.684421-2.353553 12.279404-2.865194 23.22854-8.18627 34.382332-16.679524 15.144599-11.460777 26.196063-29.572899 32.02878-52.187469 3.479165-13.405016 2.967523-28.651944 2.558209-42.05696-0.102328-4.195463-0.204657-8.083941-0.204657-11.665434l0-37.759169 101.407415 70.401919 25.479764 17.60048c0.511642 0.306985 1.330269 1.023284 2.148896 1.637254 4.40012 3.376836 11.051464 8.595583 20.977316 11.051464 3.274508 0.818627 6.549016 1.22794 10.02818 1.22794 9.618867 0 19.44239-3.274508 27.730987999999996-9.311882 18.82842-13.916657999999998 18.726092-35.405616 18.726092-51.061857 0-1.023284 0-2.148896 0-3.172179l0-409.620466c0-15.963226 0.102328-37.963825-19.647047-51.982812-6.753672-4.809433-16.679524-8.390926-27.219346-8.390926-5.01409 0-10.130509 0.818627-15.144599 2.762866-7.162986 2.762866-12.279404 6.856000999999999-16.065554 9.823524-0.920955 0.716299-1.841911 1.432597-2.353553 1.841911l-24.968122 17.395823-101.10043 70.094934 0-37.963825c0-3.581493 0.102328-7.367643 0.204657-11.460777 0.409313-14.735285 0.818627-29.982212-2.865194-43.796542-5.62806-21.488957999999997-16.679524-39.396423-31.107825-50.447886-7.879285-6.037374-18.930748-13.405016-34.075347-16.986509-7.776956-1.841911-16.167882-2.353553-24.45648-2.353553-4.297792 0-8.595583 0.102328-12.688718 0.204657-3.683821 0.102328-7.162986 0.204657-10.232837 0.204657L167.15339300000005 84.94107466666674c-1.944239 0-3.888478 0-5.832717 0-1.944239 0-3.990806 0-5.935045 0-16.577196 0-33.461377 0.61397-47.787349 6.549016-27.935644999999997 11.563106-46.764065 37.759169-53.006096 73.574098l-0.409313 2.251224 0 2.353553c-0.102328 18.930748-0.204657 37.861497-0.306985 56.792245l0 0.511642L53.87588699999998 598.0155226666666c0 4.40012-0.102328 8.902568-0.102328 13.712001999999998-0.306985 27.01469-0.716299 54.950335 9.311882 76.643949 9.823524 21.284300999999996 27.526331999999996 38.066154 48.708304 45.945438 5.730389 2.148896 11.051464 2.762866 15.04227 3.172179 1.023284 0.102328 2.353553 0.306985 3.069851 0.409313l4.093135 1.534926 500.9997 0c3.581493 0 7.572299 0.102328 11.767763 0.306985C651.166583 739.7403146666667 656.078345 739.9449716666666 660.990107 739.9449716666666M304.273409 266.7785886666668L559.889677 394.2797376666667l0 33.973019L304.273409 555.9585626666667 304.273409 266.7785886666668M660.990107 780.8763196666666c-5.62806 0-10.949136-0.204657-15.758569-0.306985-3.888478-0.102328-7.469971-0.204657-10.437494-0.204657L133.79434400000002 780.3646776666667l-7.265314 0-6.446687-2.353553c-5.3210749999999996-0.61397-13.609673-1.841911-22.716898-5.218747-31.210153-11.665434-57.303887-36.121915-71.629859-67.229739-13.814329999999998-30.084541-13.405016-64.159888-12.995703-94.244429 0.102328-4.604777 0.102328-9.004897 0.102328-13.20036l0-371.349655 0-0.102328 0-0.102328 0-0.511642c0.102328-18.930748 0.204657-37.861497 0.306985-56.792245l0-2.251224 0-3.479165 0.61397-3.376836 0.409313-2.251224c4.195463-23.944839 12.791046-45.126811 25.479764-62.727291 13.609673-18.82842 31.107825-32.847407 52.08514-41.545318 21.488957999999997-8.902568 44.001199-9.618867 63.443589-9.618867 2.046567 0 4.093135 0 6.139702 0 1.841911 0 3.78615 0 5.62806 0l473.166384 0c2.558209 0 5.62806-0.102328 9.004897-0.204657 4.195463-0.102328 8.902568-0.306985 13.916657999999998-0.306985 13.302688 0 24.149495 1.125612 33.973019 3.479165 22.819227 5.423404 39.089437 16.474868 49.322274 24.251824 21.693613999999997 16.577196 37.963825 42.363944999999994 45.84311 72.653143 2.251224 8.595583 3.376836 17.088838 3.990806 25.377436l36.838213-25.582093 24.558809-17.088838c0.306985-0.204657 0.61397-0.511642 0.920955-0.716299 4.809433-3.683821 13.609673-10.642149999999999 26.400719-15.656241 9.516538-3.683821 19.647047-5.62806 30.084541-5.62806 18.009793 0 36.53122799999999 5.832717 50.8572 15.963226 16.577196 11.767763 27.730987999999996 27.935644999999997 33.052064 48.094334 3.78615 14.4283 3.78615 27.628659999999996 3.78615 37.34985499999999l0 409.518137c0 0.920955 0 1.739582 0 2.660538l0 0.409313c0 9.41421 0.102328 22.409913-3.479165 36.53122799999999-5.116419 19.749375-15.758569 35.81493-31.721795 47.68502-15.144599 11.153792-33.666034 17.293495-52.08514 17.293495-6.753672 0-13.507345-0.818627-19.954032-2.455881-18.21445-4.604777-30.289198-13.916657999999998-36.019586-18.419107l0 0c-0.204657-0.204657-0.511642-0.409313-0.716299-0.511642l-25.172779-17.293495-0.102328 0-0.102328 0-37.14519799999999-25.786749c-0.511642 7.674628-1.637254 15.553912-3.683821 23.433197-8.18627 31.721795-24.354152 57.508544-46.866394 74.597382-15.758569 11.972419-32.02878 19.851704-49.833916 23.944839C685.8559009999999 779.7507076666667 674.702109 780.8763196666666 660.990107 780.8763196666666L660.990107 780.8763196666666zM345.204757 332.9850436666668L345.204757 489.75210666666663l157.074048-78.48586L345.204757 332.9850436666668 345.204757 332.9850436666668zM347.455981 429.177975L347.455981 308.02118499999995 347.455981 429.177975Z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="headset" unicode="&#59132;" d="M356.285031 2.1522690000000466L356.396571 2.1522690000000466 356.396571 285.236626 253.462201 285.236626 253.462201 2.1522690000000466ZM665.076886 285.236626l103.042841 0 0-283.08538-103.042841 0 0 283.08538ZM63.809793 301.950286c0-38.758746-3.195785-112.220874 5.457292-148.208507l65.735144 0c-10.112312 35.644825-7.747451 109.176538-7.747451 148.208507 0 219.937155 172.264389 398.231887 384.763131 398.231887 212.498742 0 384.763131-178.294732 384.763131-398.231887 0-39.031968 2.266623-112.563682-7.845689-148.208507l65.735144 0c8.653077 35.987632 5.555529 109.449761 5.555529 148.208507 0 256.20415-200.670346 463.898469-448.208115 463.898469C264.479115 765.848755 63.809793 558.1544349999999 63.809793 301.950286z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="cellphone-fine" unicode="&#58939;" d="M731.514252 896L292.485748 896C195.323702 896 116.154627 816.830925 116.154627 719.6688790000001l0-671.337759c0-97.162046 79.169075-176.331121 176.331121-176.331121l438.628661 0c97.162046 0 176.331121 79.169075 176.331121 176.331121L907.445529 719.6688790000001C907.845373 816.830925 828.676298 896 731.514252 896zM292.485748 853.216712l438.628661 0c70.772355 0 128.349863-55.178446 133.147989-124.751269L159.737602 728.465443C164.135884 798.038266 222.113237 853.216712 292.485748 853.216712zM865.062085 48.73096399999997c0-73.571261-59.976572-133.547833-133.547833-133.547833L292.485748-84.816868c-73.571261 0-133.547833 59.976572-133.547833 133.547833l0 45.582194 705.724326 0L864.662241 48.73096399999997zM865.062085 137.096447L158.937915 137.096447 158.937915 685.682155l705.724326 0L864.662241 137.096447zM512-54.82858299999998c13.59469 0 26.789535 5.597813 36.385787 15.194065 9.596251 9.596251 15.194065 22.791097 15.194065 36.385787 0 13.59469-5.597813 26.789535-15.194065 36.385787-9.596251 9.596251-22.791097 15.194065-36.385787 15.194065-13.59469 0-26.789535-5.597813-36.385787-15.194065-9.596251-9.596251-15.194065-22.791097-15.194065-36.385787 0-13.59469 5.597813-26.789535 15.194065-36.385787C485.210465-49.23076900000001 498.40531-54.82858299999998 512-54.82858299999998z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="add-1" unicode="&#58964;" d="M566.935 57.63900000000001c0-30.366-24.612-54.972-54.935-54.972v0c-30.384 0-54.996 24.612-54.996 54.972v610.057c0 30.361 24.612 54.972 54.996 54.972v0c30.33 0 54.935-24.612 54.935-54.972v-610.057zM817.004 417.633c30.384 0 54.996-24.606 54.996-54.966v0c0-30.354-24.612-54.966-54.996-54.966h-610.062c-30.33 0-54.942 24.612-54.942 54.966v0c0 30.359 24.612 54.966 54.942 54.966h610.062zM817.004 417.633z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="face-smile-b" unicode="&#58960;" d="M511.931733-128c-136.738133 0-265.284267 53.213867-361.984 149.879467C53.282133 118.51093300000002 0 247.09119999999996 0 384c0 136.738133 53.282133 265.3184 150.050133 362.0864C246.749867 842.683733 375.296 896 512.136533 896s265.4208-53.316267 362.1888-149.9136c199.645867-199.714133 199.543467-524.5952 0-724.206933C777.454933-74.71786699999996 648.772267-128 511.931733-128L511.931733-128 511.931733-128 511.931733-128 511.931733-128 511.931733-128zM512.034133 829.303467c-118.920533 0-230.741333-46.2848-314.914133-130.389333C113.083733 614.8778669999999 66.7648 502.8864 66.7648 384c0-118.9888 46.2848-230.912 130.3552-315.016533 84.0704-84.0704 195.857067-130.321067 314.811733-130.321067 119.022933 0 230.946133 46.318933 315.016533 130.423467 173.704533 173.636267 173.704533 456.157867 0 629.794133C742.877867 782.984533 631.057067 829.303467 512.034133 829.303467L512.034133 829.303467 512.034133 829.303467 512.034133 829.303467 512.034133 829.303467 512.034133 829.303467zM330.103467 244.25813300000004c0 0 59.904-95.9488 181.828267-95.9488s201.8304 95.9488 201.8304 95.9488 45.294933 0.136533 45.192533-47.957333c0 0-78.506667-111.8208-247.022933-111.8208s-223.368533 111.8208-223.368533 111.8208S286.856533 244.25813300000004 330.103467 244.25813300000004L330.103467 244.25813300000004 330.103467 244.25813300000004 330.103467 244.25813300000004 330.103467 244.25813300000004zM363.2128 548.590933c-34.5088 0-62.702933-28.091733-62.702933-62.737067 0-34.679467 28.194133-62.6688 62.702933-62.6688 34.679467 0 62.702933 28.091733 62.702933 62.6688C425.915733 520.4992 397.858133 548.590933 363.2128 548.590933L363.2128 548.590933 363.2128 548.590933 363.2128 548.590933 363.2128 548.590933 363.2128 548.590933zM684.544 548.590933c-34.679467 0-62.702933-28.091733-62.702933-62.737067 0-34.679467 28.023467-62.6688 62.702933-62.6688 34.6112 0 62.600533 28.091733 62.600533 62.6688C747.144533 520.4992 719.121067 548.590933 684.544 548.590933L684.544 548.590933 684.544 548.590933 684.544 548.590933 684.544 548.590933 684.544 548.590933zM684.544 548.590933"  horiz-adv-x="1025" />
+
+    
+    <glyph glyph-name="fonts-html" unicode="&#58955;" d="M194.33 416.235h-101.295v101.28h-46.035v-267.03h46.035v119.7h101.28v-119.7h46.035v267.03h-46.035v-101.28zM277.205 480.69h73.665v-230.205h46.035v230.205h73.665v36.825h-193.365v-36.825zM627.815 335.58000000000004l-46.755 181.935h-73.665v-267.03h46.035v211.785l46.035-211.785h55.245l46.83 213.93-0.795-213.93h46.035v267.03h-73.665l-45.3-181.935zM848.09 287.30999999999995v230.205h-46.035v-267.03h174.945v36.825h-128.91z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="screen-full" unicode="&#58914;" d="M641.750109 511.899972l205.227128 204.519-0.704035-115.89966c-0.282433-9.611915 7.489578-18.09103 17.101493-17.808598l12.297071 0c9.611915 0.283456 17.667382 5.936199 17.808598 15.689331l0.565888 172.57752c0 0.14224 0.282433 9.187243 0.282433 9.187243 0.14224 4.804423-0.99056 9.187243-4.100388 12.297071-3.109828 3.109828-7.347339 5.086855-12.297071 4.946662l-8.763594-0.14224c-0.141216 0-0.278339 0-0.420579-0.14224L697.581696 797.833213c-9.611915-0.283456-17.667382-8.200776-17.808598-17.950837l0-12.297071c1.416256-11.44875 10.458189-18.092054 20.070104-17.808598l112.789832-0.283456-204.66124-203.814965c-9.329483-9.329483-9.329483-24.449855 0-33.778314 9.329483-9.470699 24.452925-9.470699 33.782408 0L641.750109 511.899972zM383.095141 319.11010699999997L177.726797 115.29411900000002l0.707105 115.338888c0.283456 9.607822-7.492648 18.086937-17.104563 17.808598l-13.001105 0c-9.611915-0.283456-17.667382-5.937223-17.808598-15.690354l-0.565888-172.718737c0-0.14224-0.282433-9.187243-0.282433-9.187243-0.14224-4.808516 0.99056-9.187243 4.096295-12.297071 3.109828-3.109828 7.351432-5.086855 12.297071-4.946662l8.762571 0.14224c0.14224 0 0.283456 0 0.425695 0.14224l171.873486-0.708128c9.607822 0.283456 17.667382 8.196683 17.808598 17.950837L344.93503 63.42477399999996c-1.415232 11.44875-10.461259 18.092054-20.074198 17.808598L212.069977 81.51682800000003 416.59 285.32872299999997c9.329483 9.329483 9.329483 24.453948 0 33.782408C407.40685 328.58182999999997 392.424624 328.58182999999997 383.095141 319.11010699999997L383.095141 319.11010699999997zM894.047276 60.03251399999999l-0.424672 172.718737c-0.283456 9.612938-8.200776 15.406898-17.809621 15.690354l-12.296047 0c-9.612938 0.278339-17.243733-8.200776-17.105586-17.808598l0.708128-115.903753L641.750109 319.11010699999997c-9.329483 9.329483-24.452925 9.329483-33.782408 0-9.325389-9.328459-9.325389-24.452925 0-33.782408L812.490795 81.51682800000003l-112.789832-0.283456c-9.611915 0.283456-18.515702-6.502088-20.073174-17.808598l0-12.297071c0.282433-9.611915 8.200776-17.667382 17.808598-17.950837l171.166381 0.708128c0.141216 0 0.282433-0.14224 0.424672-0.14224l8.763594-0.14224c4.803399-0.141216 9.187243 1.694595 12.296047 4.946662 3.109828 3.109828 4.238534 7.488555 4.097318 12.297071 0 0-0.14224 9.046027-0.14224 9.187243L894.047276 60.03149099999996zM212.216309 749.493252l112.789832 0.283456c9.607822-0.283456 18.512632 6.502088 20.070104 17.808598L345.076246 779.883399c-0.283456 9.611915-8.196683 17.667382-17.808598 17.950837l-172.011632-0.708128c-0.14224 0-0.283456 0.14224-0.425695 0.14224l-8.761548 0.14224c-4.808516 0.141216-9.187243-1.694595-12.297071-4.946662-3.109828-3.109828-4.242627-7.488555-4.096295-12.297071 0 0 0.282433-9.046027 0.282433-9.187243l0.420579-172.718737c0.14224-9.608845 8.200776-15.406898 17.808598-15.686261l13.005198 0c9.611915-0.282433 17.242709 8.196683 17.10047 17.808598l-0.564865 115.334795 205.231221-203.958228c9.324366-9.329483 24.448832-9.329483 33.777291 0 9.329483 9.329483 9.329483 24.452925 0 33.782408L212.216309 749.493252 212.216309 749.493252zM212.216309 749.493252"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="form" unicode="&#58940;" d="M314.278111 437.019389l395.439892 0 0-30.297458-395.439892 0L314.278111 437.019389zM314.278111 315.83495200000004l395.439892 0 0-30.297458-395.439892 0L314.278111 315.83495200000004zM314.278111 194.62833l263.626661 0 0-30.297458L314.278111 164.330872 314.278111 194.62833zM609.376235 739.9931730000001c-7.849678 42.966669-48.394988 75.742447-97.378777 75.742447-48.961604 0-89.51311-32.775778-97.380776-75.742447L116.55177 739.9931730000001l0-787.725922 790.893774 0 0 787.725922L609.376235 739.9931730000001zM446.091342 670.440529l0 17.613058 0 36.791056c0 33.410348 29.57295 60.594317 65.906116 60.594317 36.352353 0 65.907115-27.183969 65.907115-60.594317l0-36.791056 0-17.621053 16.672696-8.712493c32.358061-16.929922 57.169039-42.663874 71.406386-73.213161L358.043239 588.50688c14.240345 30.555683 39.051523 56.281241 71.408385 73.213161L446.091342 670.440529zM874.489888-17.436289999999985L149.505227-17.436289999999985 149.505227 709.694715 413.138884 709.694715l0-21.641327c-51.44492-26.923746-88.727643-74.124144-98.86377-129.845165l395.44289 0c-10.102151 55.730615-47.40466 102.921419-98.859773 129.845165l0 21.641327 263.631658 0L874.489888-17.436289999999985z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="cart" unicode="&#58967;" d="M365.920994 84.618469c-39.030945 0-70.78516-31.754215-70.78516-70.78516s31.754215-70.784136 70.78516-70.784136c39.030945 0 70.784136 31.753191 70.784136 70.784136S404.951939 84.618469 365.920994 84.618469zM365.920994-5.784493999999995c-10.818393 0-19.61985 8.801457-19.61985 19.618826 0 10.818393 8.801457 19.61985 19.61985 19.61985s19.618826-8.801457 19.618826-19.61985C385.540843 3.015939000000003 376.739387-5.784493999999995 365.920994-5.784493999999995zM808.821219 84.618469c-39.030945 0-70.784136-31.754215-70.784136-70.78516s31.753191-70.784136 70.784136-70.784136 70.78516 31.753191 70.78516 70.784136S847.852164 84.618469 808.821219 84.618469zM808.821219-5.784493999999995c-10.81737 0-19.618826 8.801457-19.618826 19.618826 0 10.818393 8.801457 19.61985 19.618826 19.61985 10.818393 0 19.61985-8.801457 19.61985-19.61985C828.441069 3.015939000000003 819.640636-5.784493999999995 808.821219-5.784493999999995zM443.99107 305.940157c-14.057157-1.416256-24.305569-13.959943-22.890336-28.0171 1.328251-13.187347 12.446473-23.02132 25.423019-23.02132 0.856507 0 1.723248 0.042979 2.594081 0.130983l439.314561 44.245713c0.088004 0.007163 0.174985 0.01842 0.261966 0.026606l0.180102 0.01842c0.50449 0.051165 1.001817 0.119727 1.496074 0.198521 0.222057 0.035816 0.443092 0.076748 0.663102 0.11768 0.552585 0.103354 1.100054 0.217964 1.638313 0.355087 0.085958 0.022513 0.169869 0.047072 0.254803 0.069585 0.586354 0.156566 1.161453 0.334621 1.728364 0.530073 0.077771 0.026606 0.155543 0.051165 0.233314 0.078795 0.626263 0.222057 1.239224 0.469698 1.840928 0.737804 0.039909 0.017396 0.078795 0.035816 0.118704 0.054235 1.277086 0.577145 2.496867 1.252527 3.647063 2.020006 0.001023 0.001023 0.002047 0.001023 0.00307 0.002047 0.553609 0.369414 1.088798 0.76134 1.609661 1.170662 0.069585 0.054235 0.137123 0.10847 0.205685 0.163729 0.48607 0.38988 0.958838 0.795109 1.413186 1.218758 0.092098 0.084934 0.180102 0.173962 0.270153 0.25992 0.394996 0.378623 0.778736 0.76748 1.14815 1.169639 0.11154 0.121773 0.222057 0.243547 0.331551 0.367367 0.333598 0.3776 0.653893 0.766456 0.964978 1.163499 0.12382 0.158612 0.249687 0.314155 0.370437 0.475837 0.322341 0.432859 0.629333 0.876973 0.925069 1.329275 0.113587 0.173962 0.224104 0.348947 0.333598 0.525979 0.296759 0.479931 0.580215 0.968048 0.845251 1.467421 0.069585 0.130983 0.134053 0.265036 0.201591 0.397043 0.289596 0.568958 0.563842 1.147126 0.811482 1.738597 0.00307 0.007163 0.005117 0.014326 0.008186 0.021489 0.569982 1.369184 1.019213 2.796696 1.345648 4.26514 0 0.001023 0 0.002047 0.001023 0.00307l0.00307 0.013303c0.035816 0.162706 0.075725 0.323365 0.10847 0.487094l56.17951 252.734118c0.895393 4.030803 0.780783 8.04728-0.165776 11.794627 0.50449 2.003634 0.774643 4.101411 0.774643 6.261611 0 14.128789-11.452843 25.582655-25.582655 25.582655L195.47502 616.098125l-52.358485 159.553902c-3.631714 11.067057-14.093996 17.972327-25.177426 17.590634-0.207731 0.005117-0.413416 0.01535-0.62217 0.01535L54.663994 793.258011c-14.128789 0-25.582655-11.453866-25.582655-25.582655s11.453866-25.582655 25.582655-25.582655l45.614897 0 197.955514-603.235934c3.536546-10.776438 13.546527-17.613146 24.303522-17.613146 2.067079 0 4.16281 0.26299 6.245238 0.788969l567.583946 0c14.129812 0 25.582655 11.453866 25.582655 25.582655s-11.452843 25.582655-25.582655 25.582655L340.816223 173.1979 212.265428 564.933839l701.224666 0-48.137347-216.557174L443.99107 305.940157z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="camera-fill" unicode="&#58973;" d="M512 480C436.515555 480 375.111111 419.712 375.111111 345.6 375.111111 271.48800000000006 436.515555 211.20000000000005 512 211.20000000000005 587.484446 211.20000000000005 648.888887 271.48800000000006 648.888887 345.6 648.888887 419.712 587.484446 480 512 480M512 172.79999999999995C414.808889 172.79999999999995 336 250.15679999999998 336 345.6 336 441.0432 414.808889 518.4 512 518.4 609.210667 518.4 688 441.0432 688 345.6 688 250.15679999999998 609.210667 172.79999999999995 512 172.79999999999995M903.111113 691.2L723.767113 691.2C713.383113 691.2 703.448887 695.2512 696.115554 702.4512L640.792887 756.7488C633.459554 763.9488 623.505779 768 613.141333 768L512 768 410.878222 768C400.494222 768 390.56 763.9488 383.226667 756.7488L327.904 702.4512C320.570667 695.2512 310.616889 691.2 300.252445 691.2L120.888889 691.2C77.866667 691.2 42.666667 656.64 42.666667 614.4L42.666667 76.79999999999995C42.666667 34.559999999999945 77.866667 0 120.888889 0L903.111113 0C946.133333 0 981.333333 34.559999999999945 981.333333 76.79999999999995L981.333333 614.4C981.333333 656.64 946.133333 691.2 903.111113 691.2"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="tabs" unicode="&#58922;" d="M310.30303 523.636364L124.121212 523.636364c-17.128727 0-31.030303-13.901576-31.030303-31.030303l0-186.181818c0-17.128727 13.901576-31.030303 31.030303-31.030303l186.181818 0c17.128727 0 31.030303 13.901576 31.030303 31.030303L341.333333 492.606061C341.333333 509.734788 327.431758 523.636364 310.30303 523.636364zM294.787879 306.42424200000005L139.636364 306.42424200000005c-17.128727 0-15.515152-1.613576-15.515152 15.515152L124.121212 477.090909c0 17.128727-1.613576 15.515152 15.515152 15.515152l155.151515 0c17.128727 0 15.515152 1.613576 15.515152-15.515152l0-155.151515C310.30303 304.81066699999997 311.916606 306.42424200000005 294.787879 306.42424200000005zM418.909091 352.969697l480.969697 0 0 31.030303L418.909091 384 418.909091 352.969697zM418.909091 228.84848499999998l480.969697 0 0 31.030303L418.909091 259.878788 418.909091 228.84848499999998zM418.909091 89.21212100000002l480.969697 0 0 31.030303L418.909091 120.24242400000003 418.909091 89.21212100000002zM418.909091 492.606061l480.969697 0 0 31.030303L418.909091 523.636364 418.909091 492.606061zM992.969697 725.333333l-15.515152 0L977.454545 849.454545c0 17.128727-13.901576 31.030303-31.030303 31.030303L775.757576 880.484848c-17.128727 0-31.030303-13.901576-31.030303-31.030303l0-124.121212-139.636364 0L605.090909 849.454545c0 17.128727-13.901576 31.030303-31.030303 31.030303L403.393939 880.484848c-17.128727 0-31.030303-13.901576-31.030303-31.030303l0-124.121212-124.121212 0L248.242424 849.454545c0 17.128727-13.901576 31.030303-31.030303 31.030303L31.030303 880.484848C13.901576 880.484848 0 866.583273 0 849.454545l0-946.424242c0-17.128727 13.901576-31.030303 31.030303-31.030303l961.939394 0c17.128727 0 31.030303 13.901576 31.030303 31.030303L1024 694.30303C1024 711.431758 1010.098424 725.333333 992.969697 725.333333zM992.969697-65.939394c0-17.128727-13.901576-31.030303-31.030303-31.030303L62.060606-96.969697c-17.128727 0-31.030303 13.901576-31.030303 31.030303L31.030303 818.424242c0 17.128727 13.901576 31.030303 31.030303 31.030303l124.121212 0c17.128727 0 31.030303-13.901576 31.030303-31.030303l0-124.121212 744.727273 0c17.128727 0 31.030303-13.901576 31.030303-31.030303L992.969697-65.939394z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="fonts-code" unicode="&#58958;" d="M270 626c-12 12-32 12-44 0L9 409c-12-12-12-32 0-44l217-217c6-6 14-9 22-9s16 3 22 9c12 12 12 32 0 44L75 387 270 582C282 595 282 614 270 626zM1015 409L798 626c-12 12-32 12-44 0-12-12-12-32 0-44l195-195L754 192c-12-12-12-32 0-44 6-6 14-9 22-9s16 3 22 9l217 217C1027 377 1027 397 1015 409zM624 696L624 696c-16 6-34-3-40-19L382 119c-6-16 2-34 19-40l0 0c16-6 34 3 40 19l202 558C648 672 640 690 624 696z"  horiz-adv-x="1025" />
+
+    
+    <glyph glyph-name="fire" unicode="&#59222;" d="M890.059904 352.19948999999997C845.890699 458.956706 840.554889 548.4951550000001 857.396326 618.42714 859.144623 625.686731 860.991676 631.9776790000001 862.858846 637.425182 863.763607 640.064841 865.906573 645.659889 866.16406 646.532651L880.890349 696.448108 833.062903 675.9309969999999C832.106692 675.5208 830.618069 674.894716 827.426684 673.550492 824.667648 672.380966 822.310677 671.354022 819.868514 670.244809 813.291441 667.2575449999999 807.049466 664.090938 800.697749 660.4128450000001 784.089623 650.795565 768.486253 638.656896 753.86285 623.033596 727.630498 595.007563 706.526618 557.766355 691.78157 509.713231 675.041103 455.157161 671.516484 411.46006 673.004574 347.939834 673.477918 327.73476900000003 673.463923 322.197583 672.83965 318.324215 673.779618 324.156339 684.455526 333.67819899999995 696.104608 329.19567600000005 693.056849 330.36844199999996 685.695898 339.012828 676.314007 361.368339 660.550914 398.92921 646.834249 460.170272 636.817284 549.350468 625.445924 650.588768 630.103925 734.7280519999999 644.646978 801.338628 647.677924 815.221065 650.899934 827.082435 654.086773 836.904609 655.91465 842.538316 657.254607 846.094657 657.880284 847.554385L678.645286 896 628.243642 880.578031C617.409833 877.263087 599.94569 869.52239 578.105438 855.845223 542.547644 833.577626 507.199569 802.385036 474.400401 760.836776 447.596676 726.883228 423.611383 687.30061 403.118547 641.7016189999999 378.907516 587.829195 363.003277 542.798944 353.158029 503.238462 349.274261 487.632585 346.433259 473.323627 344.1945 458.925156 343.334411 453.39353 342.592734 448.063234 341.804612 441.911844 341.502524 439.553997 340.356619 430.329551 340.073506 428.145504 337.596047 409.033293 335.848224 404.35337 329.235273 398.312868 336.081933 404.566848 343.232634 404.098227 346.608002 402.086756 344.852318 403.133013 341.598345 406.493651 337.991853 411.887149 327.030897 428.279226 317.980358 454.883162 313.690598 489.339595 311.250185 508.941598 310.203772 539.08627 310.370048 576.545325 310.480474 601.422138 311.113088 628.122479 312.099068 654.977888 312.481453 665.393013 312.891081 675.105466 313.30045 683.8491750000001 313.545346 689.079919 313.735044 692.813105 313.84201 694.783403L317.55517 763.179488 271.360516 712.604139C270.467691 711.626645 268.852992 709.837042 266.618705 707.326295 262.927895 703.178805 258.823678 698.493751 254.407949 693.3614689999999 241.78797 678.693606 229.164348 663.340425 217.341267 648.004036 211.724185 640.717803 206.411389 633.591345 201.450577 626.6638379999999 176.017063 591.147305 156.617347 555.4025280000001 138.122768 512.155497 90.841957 401.595812 76.97672 299.64870599999995 99.261816 188.13489300000003 126.80821 50.29373899999996 188.553235-37.64422200000001 278.8297-84.690336 344.19104-118.75233700000001 408.837235-128 507.940695-128 525.713007-128 557.977207-125.567138 590.857378-120.46215900000004 641.152493-112.65333099999998 687.496192-99.78932299999997 726.063273-80.59104400000001 738.155853-74.57148800000004 743.07901-59.88870199999997 737.059454-47.79612199999997 731.039898-35.70354299999997 716.357111-30.780384000000026 704.264531-36.79993999999999 670.855859-53.43041900000003 629.092954-65.02289699999994 583.352478-72.12456999999995 552.984316-76.83953499999996 523.228215-79.08327499999996 507.940695-79.08327499999996 416.16215-79.08327499999996 357.934257-70.75375399999996 301.436271-41.310745999999995 224.830174-1.3887230000000272 171.977796 73.88423 147.230072 197.72094500000003 126.99711 298.965952 139.514783 391.004811 183.099329 492.921284 200.282663 533.1021499999999 218.020237 565.784358 241.22153 598.183718 245.831691 604.6215589999999 250.802959 611.289899 256.082244 618.137961 267.31885 632.713596 279.402035 647.409487 291.488864 661.457681 298.732051 669.8762429999999 304.338773 676.1767130000001 307.478705 679.614406L264.997214 697.435142C264.883874 695.347445 264.688038 691.493511 264.43725 686.13688 264.020474 677.234965 263.603959 667.359281 263.215279 656.7726250000001 262.21142 629.430212 261.566827 602.224414 261.453805 576.7624579999999 261.278897 537.3588179999999 262.385015 505.49418 265.148621 483.296209 276.058157 395.668083 322.627019 326.024497 362.226031 362.19561799999997 379.341732 377.829698 384.756649 392.328523 388.584361 421.857186 397.932742 493.974714 407.332926 531.746825 447.736538 621.64966 466.587287 663.594818 488.484326 699.731218 512.795234 730.526996 542.034492 767.565749 573.156162 795.028785 604.068111 814.386984 614.696751 821.043029 624.472062 826.201428 633.124687 830.036563 638.02329 832.207788 641.258688 833.404991 642.556233 833.802016L612.91959 866.825663C608.658554 856.884484 602.686705 838.478616 596.856038 811.772799 581.186705 740.003594 576.231674 650.498985 588.206246 543.890345 607.295279 373.94226100000003 638.819345 298.82556999999997 678.537329 283.542234 701.302332 274.78234499999996 717.731637 289.43566899999996 721.133156 310.5407 722.475759 318.870999 722.489387 324.26340300000004 721.907881 349.08549100000005 720.532565 407.791853 723.691247 446.952173 738.546223 495.36355 751.151827 536.44438 768.544047 567.135763 789.576147 589.605967 809.230566 610.60429 821.725461 617.839716 852.347733 630.9761169999999L842.705318 653.453557 819.246577 660.374464C822.235501 670.505564 813.450321 644.87463 809.839253 629.8801189999999 790.647573 550.1890470000001 796.611315 450.1135 844.8591 333.498332 883.105728 241.056017 874.587669 126.06492400000002 824.002925 61.39712899999995 815.680378 50.75754500000005 817.558709 35.38570000000004 828.198295 27.063153000000057 838.837879 18.740607999999952 854.209724 20.618939999999952 862.532269 31.258523999999966 924.762731 110.81426299999998 934.658528 244.404363 890.059904 352.19948999999997Z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="set" unicode="&#59158;" d="M466.496-126.62400000000002l-1.056 0.064c-25.184 2.08-47.456 22.368-51.744 47.232l-17.344 102.4c-0.672 4.064-6.624 11.04-10.56 12.416l-30.336 12.416c-5.44 2.496-15.424 0.8-17.472-0.64l-84.992-60.16c-19.584-14.016-51.456-12.736-70.08 3.168l-64.288 64c-17.952 20.48-19.488 50.592-4.736 71.296l60.416 84.672c2.176 3.072 2.784 11.52 1.024 15.04l0 0c0 0-1.664 3.104-7.264 16.608-6.176 14.848-6.816 17.44-6.816 17.44-0.992 3.04-7.456 8.672-11.36 9.376l-102.56 17.248c-25.152 4.288-45.44 26.624-47.168 52L0 428.288c2.112 27.36 22.496 49.6 47.52 53.728l102.528 17.344c4.128 0.672 11.008 6.56 12.416 10.496l12.608 30.336c2.368 4.992 1.6 14.112-0.8 17.504L113.984 642.24C99.36 662.88 100.704 692.896 117.056 712.192l64.416 64.224c20.672 18.208 51.296 18.784 71.36 4.64l84.992-60.16c1.952-1.376 13.28-2.016 15.04-1.056 0.384 0.192 2.528 1.344 16.704 7.168 14.24 5.92 16.576 6.592 16.576 6.592 3.84 1.184 9.504 7.648 10.144 11.424l17.44 102.4c4.32 25.152 26.752 45.376 52.128 47.104l90.528 0.064c27.328-2.112 49.632-22.368 53.952-47.232l17.344-102.432c0.672-4.064 6.656-11.04 10.624-12.48l30.304-12.352c6.24-2.784 15.456-0.8 17.44 0.608l85.024 60.16c19.52 14.016 51.392 12.704 70.08-3.136l64.288-64.032c17.952-20.48 19.456-50.56 4.736-71.264l-60.416-84.672c-2.208-3.136-2.848-11.616-1.056-15.04 0.16-0.352 1.376-2.56 7.232-16.672 5.856-14.112 6.592-16.512 6.592-16.512 1.248-4.032 7.712-9.6 11.648-10.304l102.56-17.248c25.152-4.224 45.44-26.592 47.168-52l0.096-90.304c-2.112-27.392-22.528-49.6-47.552-53.728l-102.528-17.376c-4.128-0.672-10.944-6.496-12.32-10.432l-12.736-30.432c-2.336-4.928-1.568-14.112 0.832-17.472l60.288-84.512c14.624-20.736 13.216-50.816-3.232-70.048l-64.192-64.096c-11.328-9.92-24.64-14.72-38.784-14.72l0 0c-11.904 0-23.52 3.552-32.704 10.016l-84.992 60.16c-1.952 1.408-13.312 2.016-15.072 1.056-0.288-0.16-2.432-1.312-16.608-7.2-14.08-5.792-16.384-6.496-16.384-6.496-4.16-1.28-9.792-7.776-10.432-11.52l-17.408-102.4c-4.352-25.152-26.72-45.344-52.032-47.104L466.496-126.62400000000002zM347.84 100.60799999999995c10.368 0 20.192-2.112 28.48-6.112l27.648-11.296c20.416-7.072 38.976-28.992 42.848-51.584l17.344-102.336c0.288-1.6 3.136-4.32 5.056-4.832l87.296 0.064c-0.032 0.064 3.04 2.944 3.328 4.672l17.408 102.368c3.872 22.656 23.328 44.832 45.28 51.584 0 0 0 0 0 0-0.096 0 2.976 1.152 12.448 5.056 9.472 3.936 12.384 5.248 13.12 5.568 18.208 9.6 49.44 8.032 67.776-4.96l84.928-60.16c0.192-0.128 1.312-0.64 3.104-0.64l0 0c2.048 0 3.52 0.672 3.872 0.96l61.536 61.408 0 0c-0.16 0 0.064 4.416-0.992 5.952l-60.224 84.448c-13.248 18.624-15.68 47.168-5.792 67.872l11.648 27.84c6.944 19.968 29.408 38.912 51.68 42.496l102.464 17.376c1.824 0.384 4.736 3.648 4.864 5.408L972.8 428.288l0 0c-0.096 0-2.88 3.072-4.576 3.424l-102.72 17.28c-23.168 4.032-44.896 22.976-51.776 45.056l0 0c-0.032 0-1.216 3.04-5.12 12.512-3.968 9.568-5.28 12.512-5.632 13.248-10.24 19.36-8.288 48.736 4.96 67.456L868.448 672c0.96 1.408 0.736 5.6-0.384 6.912l-61.408 61.184c0.704-0.8-0.768-0.192-2.848-0.192-1.728 0-2.784-0.416-3.008-0.576l-85.024-60.16c-17.824-12.8-47.776-15.36-68-5.664l-27.712 11.296c-20.512 7.2-39.04 29.088-42.88 51.584l-17.344 102.336c-0.288 1.76-3.616 4.704-5.504 4.864L467.616 843.52c0-0.064-3.104-2.944-3.392-4.672l-17.408-102.336c-3.84-22.624-23.264-44.8-45.216-51.584 0-0.032-3.008-1.184-12.416-5.088-9.568-3.936-12.512-5.248-13.248-5.568-17.984-9.568-49.344-8.032-67.744 4.992L223.264 739.36c-0.416 0.32-6.176 0.288-6.848-0.224L154.688 677.6320000000001c0 0 0 0 0 0 0.224 0 0.032-4.384 1.056-5.856L216 587.264c13.312-18.752 15.744-47.296 5.76-67.968l-11.52-27.648c-6.976-20.032-29.472-38.944-51.776-42.624L55.968 431.68c-1.824-0.384-4.704-3.648-4.832-5.408l0.096-86.56 0 0c0.096 0 2.912-3.104 4.608-3.424l102.656-17.28c23.04-4 44.704-22.912 51.712-44.928 0.256-0.736 1.44-3.84 5.088-12.64 3.68-8.832 5.024-11.84 5.472-12.736 10.592-20.288 8.672-48.96-4.672-67.904l-60.512-84.768c-0.96-1.408-0.736-5.632 0.384-6.912l61.408-61.184c-0.736 0.8 0.736 0.224 2.816 0.192 1.728 0 2.784 0.416 3.008 0.576l84.992 60.16C318.624 96.32000000000005 333.088 100.60799999999995 347.84 100.60799999999995zM512.032 133.856c-138.336 0-250.848 112.224-250.848 250.176 0 137.92 112.544 250.144 250.848 250.144s250.848-112.224 250.848-250.144C762.88 246.08000000000004 650.336 133.856 512.032 133.856zM512.032 583.136c-110.08 0-199.648-89.312-199.648-199.104s89.568-199.136 199.648-199.136 199.648 89.344 199.648 199.136S622.112 583.136 512.032 583.136z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="fonts-u" unicode="&#58950;" d="M0-49.23076900000001L945.230769-49.23076900000001 945.230769-128 0-128 0-49.23076900000001ZM0 896L407.076943 896 407.076943 834.065644 319.153861 827.872177 299.076923 809.911217 299.076923 365.841959C299.076923 281.19796199999996 317.076716 220.709337 353.076933 184.37435100000005 389.077071 148.03936499999998 448.153442 129.87210800000003 530.307702 129.87210800000003 606.000364 129.87210800000003 660.807522 149.17482299999995 694.730752 187.78072599999996 728.653982 226.38662899999997 745.61536 289.66226700000004 745.61536 377.60953099999995L745.61536 804.956475 724.153817 826.633531 633.461524 834.065644 633.461524 896 955.384596 896 955.384596 834.065644 868.846119 826.633531 849.461563 804.956475 849.461563 364.60331299999996C849.461563 246.92743900000005 819.923338 161.66533900000002 760.846178 108.81441500000005 701.76894 55.96348999999998 606.462188 29.53846199999998 474.923087 29.53846199999998 406.153531 29.53846199999998 345.807951 38.51886300000001 293.884613 56.47990200000004 241.961275 74.44093999999996 201.230887 100.143419 171.692347 133.58820400000002 149.076834 160.01362700000004 133.038474 190.25793999999996 123.57695 224.32200899999998 114.115348 258.386078 109.384625 307.21047599999997 109.384625 370.796702L109.384625 809.911217 89.307687 827.872177 0 834.065644 0 896Z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="triangle-d" unicode="&#58917;" d="M773.128299 88.65234199999998M889.696178 575.195553L158.862147 575.195553 524.357446 209.64704300000005 889.696178 575.195553Z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="tips" unicode="&#59138;" d="M967.280184 578.537671c-24.915459 58.887178-60.544935 111.76755-105.96745 157.161413-45.393863 45.393863-98.273211 81.051991-157.160389 105.96745-60.988026 25.803689-125.735679 38.853913-192.494129 38.853913-66.729797 0-131.504056-13.0799-192.494129-38.853913-58.887178-24.916483-111.766526-60.544935-157.160389-105.96745-45.393863-45.393863-81.051991-98.274234-105.96745-157.161413-25.803689-60.988026-38.884612-125.734656-38.884612-192.464453s13.0799-131.50508 38.884612-192.464453c24.915459-58.887178 60.544935-111.737874 105.96745-157.161413 45.393863-45.393863 98.273211-81.051991 157.160389-105.96745 60.988026-25.803689 125.735679-38.853913 192.494129-38.853913 66.729797 0 131.504056 13.0799 192.494129 38.853913 58.887178 24.916483 111.766526 60.544935 157.160389 105.96745 45.393863 45.393863 81.051991 98.274234 105.96745 157.161413 25.803689 60.988026 38.853913 125.734656 38.853913 192.464453S993.084896 517.549645 967.280184 578.537671zM511.687892-55.138552000000004c-243.302305 0-441.241446 197.909465-441.241446 441.21177S268.385587 827.284989 511.687892 827.284989c243.273652-0.029676 441.210747-197.938118 441.210747-441.21177S754.990197-55.138552000000004 511.687892-55.138552000000004zM511.657192 573.565427m-45.511543 0a44.475 44.475 0 1 1 91.023086 0 44.475 44.475 0 1 1-91.023086 0ZM542.729885 184.14011300000004c0-17.162892-13.906731-31.071669-31.070646-31.071669l0 0c-17.163915 0-31.070646 13.907755-31.070646 31.071669L480.588593 426.998303c0 17.162892 13.906731 31.071669 31.070646 31.071669l0 0c17.163915 0 31.070646-13.907755 31.070646-31.071669L542.729885 184.14011300000004z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="picture" unicode="&#58954;" d="M765.376 615.424c0 0 103.04 1.024 103.04-100.992 0 0 9.536-98.752-103.04-100.928 0 0-100.864-2.176-99.84 100.928C665.536 514.496 664.448 605.8879999999999 765.376 615.424ZM968.32 770.56c0 0 54.208-4.224 54.208-52.032l0-712.832c0 0-3.2-51.008-54.208-52.096L968.32 770.56ZM1.472 5.631999999999948c0 0 2.176-52.096 52.096-52.096L968.32-46.464000000000055l0 150.848-99.712 0-203.072 206.144-153.024-153.984L304.32 413.568l-205.056-307.072-45.632-1.024L52.48 718.4639999999999 1.472 718.4639999999999 1.472 5.631999999999948ZM968.32 770.56L53.568 770.56c0 0-52.096 1.088-52.096-52.032L968.32 718.528 968.32 770.56Z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="more-vertical" unicode="&#58993;" d="M511.998465 623.681848c40.525995 0 73.386404 35.771715 73.386404 79.892585s-32.860409 79.892585-73.386404 79.892585c-40.524972 0-73.384357-35.771715-73.384357-79.892585S471.47247 623.681848 511.998465 623.681848L511.998465 623.681848zM511.998465 463.893608c-40.524972 0-73.384357-35.772738-73.384357-79.893608 0-44.12087 32.859385-79.892585 73.384357-79.892585 40.525995 0 73.386404 35.772738 73.386404 79.892585C585.384869 428.12087 552.52446 463.893608 511.998465 463.893608L511.998465 463.893608zM511.998465 144.320199c-40.524972 0-73.384357-35.733852-73.384357-79.894631 0-44.119847 32.859385-79.893608 73.384357-79.893608 40.525995 0 73.386404 35.772738 73.386404 79.893608C585.383846 108.58634600000005 552.52446 144.320199 511.998465 144.320199L511.998465 144.320199z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="flag" unicode="&#58988;" d="M878.368178 798.272211c-11.363815 4.799306-24.470321 2.360767-33.31578-6.245238-0.36532-0.350994-37.162388-35.304064-95.163383-56.05262-75.462692-26.993794-150.763702-18.409279-223.812415 25.517163-38.347376 23.060205-81.875752 40.665165-129.376603 52.327786-37.582967 9.228175-77.742619 14.777565-119.363552 16.496719-70.805626 2.925632-121.493052-6.224772-123.615389-6.615675-14.56574-2.682086-25.140587-15.380292-25.140587-30.191626L128.58047-31.312913999999978c0-16.954137 13.745049-30.699186 30.699186-30.699186s30.699186 13.745049 30.699186 30.699186L189.978842 266.68306099999995c15.562441 5.250584 47.994084 14.447037 91.40171 17.48728 35.985586 2.51938 72.440869 0.378623 108.35073-6.363941 44.847417-8.420787 89.059362-24.102954 131.409912-46.611597 46.26879-24.591071 93.776803-41.069371 141.203976-48.977481 38.270629-6.380314 76.541257-7.219425 113.740484-2.491751 64.277956 8.16803 103.877859 30.461779 105.532545 31.406291 9.56689 5.464455 15.471366 15.637142 15.471366 26.656103L897.089565 769.958352C897.091612 782.298402 889.73711 793.470859 878.368178 798.272211zM835.69324 257.496841c-14.58416-5.755074-38.82526-13.530155-70.319555-17.225313-30.990828-3.635807-62.940494-2.676969-94.952582 2.851954-40.201607 6.943133-80.731696 21.171182-120.464629 42.289152-48.455595 25.753547-99.208513 43.61945-150.848637 53.101405-29.29214 5.378497-58.896388 8.079002-88.407516 8.079002-12.228509 0-24.443715-0.464581-36.609803-1.39272-34.879392-2.663666-63.618946-8.741082-84.111676-14.355963L189.978842 766.569162c19.971867 2.003634 50.446949 3.910053 86.392626 2.334161 58.186214-2.554172 143.250588-15.041578 218.064504-60.029188 61.32674-36.877909 119.196753-49.491181 169.691797-49.488111 42.293245 0.002047 79.416747 8.854669 109.019972 19.711947 24.269753 8.901741 45.327348 19.747763 62.544475 30.179346L835.692217 257.496841z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="loading" unicode="&#58941;" d="M511.999488 756.654348m-70.608128 0a69 69 0 1 1 141.216255 0 69 69 0 1 1-141.216255 0ZM236.047576 639.997442m-68.561515 0a67 67 0 1 1 137.123031 0 67 67 0 1 1-137.123031 0ZM125.530506 382.12428m-62.421678 0a61 61 0 1 1 124.843356 0 61 61 0 1 1-124.843356 0ZM227.861126 100.71507499999996m-54.235229 0a53 53 0 1 1 108.470457 0 53 53 0 1 1-108.470457 0ZM514.166851-16.84438799999998m-47.192835 0a46.118 46.118 0 1 1 94.385671 0 46.118 46.118 0 1 1-94.385671 0ZM804.730553 91.450061m-33.834596 0a33.064 33.064 0 1 1 67.669192 0 33.064 33.064 0 1 1-67.669192 0ZM935.55411 383.395226m-23.969924 0a23.424 23.424 0 1 1 47.939849 0 23.424 23.424 0 1 1-47.939849 0ZM856.723717 634.80007m-17.135262 0a16.745 16.745 0 1 1 34.270525 0 16.745 16.745 0 1 1-34.270525 0Z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="fonts-i" unicode="&#58948;" d="M897.948 834.255l0-64.322-128.65 0L447.674-1.9329999999999927l128.65 0 0-64.32L126.052-66.25300000000004l0 64.32 128.65 0 321.622 771.866-128.65 0L447.674 834.255 897.948 834.255z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="refresh-1" unicode="&#58982;" d="M688.146 736l-192 128v-256l192 128.001zM496.146 767.7090000000001c-231.174-8.416-416-198.479-416-431.709 0-238.587 193.413-432 432-432 233.23 0 423.293 184.826 431.709 416h-64.05c-8.377-195.817-169.778-352-367.658-352-203.241 0-368 164.759-368 368 0 197.88 156.183 359.282 352 367.658v64.051z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="rmb" unicode="&#58974;" d="M511.998465 896C229.23338 896 0.004605 666.769178 0.004605 384.001023c0-282.773272 229.227752-512.001023 511.99386-512.001023 282.769178 0 511.994883 229.227752 511.994883 512.001023C1023.994372 666.769178 794.767644 896 511.998465 896zM511.998465-91.59690499999999c-262.660188 0-475.589742 212.930577-475.589742 475.597929 0 262.663258 212.929554 475.594859 475.589742 475.594859 262.663258 0 475.590765-212.9316 475.590765-475.594859C987.590254 121.33469500000001 774.662747-91.59690499999999 511.998465-91.59690499999999zM738.742652 301.137781L544.432155 301.137781l0 69.780273 194.310497 0c17.835204 0 32.249495 14.43885 32.249495 32.220842 0 17.784038-14.414291 32.19526-32.249495 32.19526L589.7462 435.334155l149.620669 209.579249c8.916067 15.397688 3.63069 35.099403-11.82021 43.988864-15.398712 8.891508-35.097356 3.629667-44.017516-11.793604L512.187777 437.098335 340.84334 677.108664c-8.864902 15.423271-28.617781 20.685111-44.016493 11.793604-15.395642-8.889461-20.685111-28.590152-11.82021-43.988864l149.622716-209.579249L285.628808 435.334155c-17.781992 0-32.245402-14.411221-32.245402-32.19526 0-17.781992 14.46341-32.220842 32.245402-32.220842l194.310497 0 0-69.780273L285.628808 301.137781c-17.781992 0-32.245402-14.413268-32.245402-32.19526s14.46341-32.220842 32.245402-32.220842l194.310497 0 0-132.435265c0-17.780969 14.46341-32.19526 32.248472-32.19526 17.835204 0 32.245402 14.414291 32.245402 32.19526L544.433178 236.72065499999997l194.310497 0c17.835204 0 32.249495 14.43885 32.249495 32.220842S756.577856 301.137781 738.742652 301.137781"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="home" unicode="&#59022;" d="M824.084343-40.42033900000001H232.898863c-74.604138 0-85.85232 28.334325-85.852321 49.997718l-0.584307 5.314029V447.645552h48.806589v-402.916582c0-25.547863 13.548574-36.343743 37.629015-36.343743h568.020898c25.928532 0 27.978215 6.220678 27.978215 37.84391V447.585177l48.806589 0.118704c0.022513-14.346753 0-382.76666 0-433.098999 0-38.130436-12.726859-54.765301-51.858088-54.765301l-1.76111-0.25992zM1012.470921 493.103884C849.773422 615.120868 687.101505 737.137853 524.404006 859.153814c-6.207375 4.659113-18.433838 4.659113-24.641213 0C337.077573 737.137853 174.393377 615.120868 11.696902 493.103884c-24.856108-18.635429-0.572028-61.044308 24.642236-42.13361A15995638.709915 15995638.709915 0 0 1 512.025071 807.737794c0.988514-0.715291 1.644453-1.144056 2.823302-2.037403 18.040888-13.524015 36.057217-27.036773 54.073546-40.560788 58.291614-43.718711 116.583229-87.437421 174.874843-131.143852 81.33647-61.008492 162.696476-122.015961 244.033969-183.024454 25.212218-18.911722 49.496298 23.497157 24.64019 42.132587z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="user" unicode="&#59248;" d="M611.2 342.4c70.4 54.4 115.2 140.8 115.2 230.4 0 156.8-128 288-284.8 288s-284.8-128-284.8-284.8c0-92.8 44.8-182.4 115.2-236.8C108.8 272 0 105.60000000000002 0-80c0-9.6 9.6-19.2 19.2-19.2h848c9.6 0 19.2 9.6 19.2 19.2 0 188.8-112 355.2-275.2 422.4z m-576-396.8C44.8 115.20000000000005 156.8 268.79999999999995 320 320c6.4 3.2 12.8 9.6 12.8 16s-3.2 16-9.6 19.2c-76.8 41.6-128 131.2-128 224 0 134.4 112 246.4 246.4 246.4s246.4-112 246.4-249.6c0-89.6-51.2-176-128-220.8-6.4-3.2-9.6-9.6-9.6-19.2 0-6.4 6.4-12.8 12.8-16 160-51.2 275.2-204.8 281.6-377.6H35.2zM812.8 361.6c54.4 41.6 86.4 108.8 86.4 176 0 89.6-54.4 172.8-134.4 208-9.6 3.2-22.4 0-25.6-9.6-3.2-9.6 0-22.4 9.6-25.6 67.2-28.8 112-99.2 112-172.8 0-67.2-38.4-131.2-96-163.2-6.4-3.2-9.6-9.6-9.6-19.2 0-6.4 6.4-12.8 12.8-16 131.2-41.6 217.6-160 217.6-297.6 0-9.6 9.6-19.2 19.2-19.2s19.2 9.6 19.2 19.2c-3.2 140.8-86.4 262.4-211.2 320z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="notice" unicode="&#58983;" d="M544 798.976V864h-64v-65.024C289.536 786.304 160 658.624 160 416v-288h64V416c0 192 115.456 320 288 320 180.544 0 288-128 288-320v-288h64V416c0 242.88-122.496 370.56-320 382.976zM672 64a160 160 0 1 0-320 0h64a96 96 0 0 1 192 0h64zM64 128h896v-64H64v64z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="login-weibo" unicode="&#58997;" d="M411.270737 288.350316c-17.973895 7.504842-41.189053-0.229053-52.264421-17.542737-11.223579-17.394526-5.955368-38.103579 11.870316-46.201263 18.108632-8.232421 42.132211-0.417684 53.342316 17.421474C435.253895 260.05557899999997 429.446737 280.62989500000003 411.270737 288.350316zM455.545263 306.64757899999995c-6.885053 2.721684-15.508211-0.579368-19.550316-7.329684-3.920842-6.790737-1.751579-14.524632 5.146947-17.367579 7.019789-2.883368 16.006737 0.458105 20.048842 7.370105C465.071158 296.259368 462.551579 304.087579 455.545263 306.64757899999995zM427.52 426.684632c-115.968-11.439158-203.924211-82.216421-196.378947-158.073263 7.531789-75.910737 107.654737-128.161684 223.649684-116.749474 115.994947 11.439158 203.924211 82.216421 196.392421 158.140632C643.664842 385.859368 543.541895 438.110316 427.52 426.684632zM529.300211 247.70021099999997c-23.673263-53.355789-91.769263-81.798737-149.530947-63.232-55.754105 17.933474-79.373474 72.811789-54.945684 122.246737 23.956211 48.464842 86.352842 75.870316 141.541053 61.561263C523.506526 353.562947 552.663579 299.85684200000003 529.300211 247.70021099999997zM512 896C229.241263 896 0 666.772211 0 384c0-282.758737 229.241263-512 512-512 282.772211 0 512 229.241263 512 512C1024 666.772211 794.772211 896 512 896zM455.531789 101.02568399999996c-145.354105 0-293.941895 70.197895-293.941895 185.667368 0 60.362105 38.386526 130.182737 104.474947 196.069053 88.252632 87.929263 191.164632 127.986526 229.874526 89.397895 17.084632-17.003789 18.741895-46.457263 7.760842-81.623579-5.726316-17.690947 16.666947-7.895579 16.666947-7.936 71.343158 29.763368 133.564632 31.514947 156.321684-0.862316 12.139789-17.246316 10.954105-41.472-0.215579-69.510737-5.173895-12.921263 1.589895-14.928842 11.466105-17.879579 40.178526-12.422737 84.924632-42.455579 84.924632-95.380211C772.837053 211.36168399999997 646.090105 101.02568399999996 455.531789 101.02568399999996zM718.672842 468.197053c4.715789 14.457263 1.765053 30.962526-9.202526 43.061895-10.954105 12.072421-27.136 16.666947-42.037895 13.527579l0 0.026947c-12.463158-2.694737-24.724211 5.268211-27.392 17.664-2.667789 12.463158 5.281684 24.697263 17.744842 27.338105 30.531368 6.467368 63.595789-2.937263 85.989053-27.715368 22.447158-24.764632 28.456421-58.489263 18.849684-88.064-3.907368-12.099368-16.936421-18.728421-29.062737-14.848-12.139789 3.920842-18.782316 16.922947-14.874947 28.995368L718.672842 468.183579zM853.261474 424.865684c-0.013474-0.013474-0.013474-0.080842-0.013474-0.107789-4.567579-14.026105-19.712-21.706105-33.778526-17.165474-14.133895 4.554105-21.854316 19.590737-17.300211 33.670737l0 0.013474c13.999158 43.169684 5.12 92.429474-27.567158 128.565895-32.714105 36.122947-80.949895 49.92-125.507368 40.488421-14.484211-3.085474-28.752842 6.130526-31.838316 20.574316-3.098947 14.403368 6.144 28.631579 20.641684 31.717053l0.026947 0c62.625684 13.271579 130.519579-6.117053 176.545684-56.966737C860.483368 554.886737 872.892632 485.618526 853.261474 424.865684z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="voice" unicode="&#59016;" d="M463.380164 644.0568969999999v-0.003069c-4.550643 4.549619-10.484795 7.02295-16.913205 7.02295s-12.365632-2.473331-16.915251-7.02295c-4.549619-4.551666-7.020904-10.485819-7.020904-16.914229s2.471284-12.365632 7.020904-16.915251c60.437487-60.438511 93.675496-140.756791 93.675496-226.222301 0-85.464487-33.238009-165.783791-93.675496-226.220255-4.549619-4.551666-7.020904-10.487865-7.020904-16.915252 0-6.429433 2.471284-12.365632 7.020904-16.914228 4.550643-4.549619 10.486842-7.02295 16.915251-7.02295s12.364609 2.473331 16.913205 7.02295c35.114752 35.116799 62.317301 76.06849 80.814584 121.668037 17.904789 44.018539 26.90579 90.608647 26.90579 138.384768s-9.101285 94.26799-26.90579 138.384767c-18.59552 45.697785-45.698808 86.550215-80.814584 121.667013zM781.892405 618.929614v-0.002047c-31.358195 77.452-77.550237 146.990772-137.098471 206.539007-4.550643 4.549619-10.485819 7.02295-16.915252 7.02295-6.42841 0-12.363585-2.473331-16.914228-7.02295-9.29776-9.299807-9.29776-24.531719 0-33.82948 54.997592-54.998615 97.631598-119.195729 126.613676-190.71153 27.993564-69.044516 42.237987-142.045133 42.237987-216.924541s-14.244422-147.882072-42.237987-216.923518c-28.982078-71.517847-71.616084-135.616724-126.613676-190.711529-9.29776-9.298783-9.29776-24.531719 0-33.82948 4.551666-4.551666 10.485819-7.02295 16.914228-7.02295 6.429433 0 12.366655 2.471284 16.915252 7.02295 59.547211 59.547211 105.740276 129.085984 137.098471 206.53696 30.369681 74.78117 45.699832 153.817248 45.699831 234.928591 0 81.111343-15.331173 160.146397-45.699831 234.927567zM299.474141 427.621497c-11.670807 11.573593-27.103288 18.004049-43.522236 18.004049-16.419971 0-31.852452-6.429433-43.52326-18.004049-11.57257-11.57257-18.003026-27.104311-18.003026-43.522236 0-16.420995 6.42841-31.851429 18.003026-43.52326 11.574616-11.57257 27.103288-18.003026 43.52326-18.003025s31.852452 6.429433 43.522236 18.003025c11.573593 11.573593 18.003026 27.104311 18.003025 43.52326 0 16.419971-6.427386 31.852452-18.003025 43.522236z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="upload-drag" unicode="&#59009;" d="M666.931 445.918l-124.245 99.362c-7.221 5.639-16.428 9.042-26.429 9.042-9.963 0-19.136-3.376-26.438-9.047l-124.215-99.391c-9.615-7.772-15.713-19.565-15.713-32.782 0-9.946 3.453-19.084 9.223-26.284 13.828-17.359 41.51-20.465 58.918-6.505l56.252 45.022v-261.12c0-23.177 18.842-41.984 41.95-41.984s41.95 18.842 41.95 41.984v261.12l56.286-45.056c17.545-13.892 45.09-10.718 58.914 6.554 5.754 7.137 9.236 16.316 9.236 26.308 0 13.211-6.086 24.999-15.609 32.716zM235.827 142.95000000000005c-85.026 0-152.542 31.71-188.655 89.839-36.113 58.095-34.406 134.724 4.335 195.174 37.342 58.334 102.366 92.023 178.995 94.549-19.866 130.492 42.667 202.377 84.753 235.008 90.112 69.871 234.257 79.053 335.565 21.367 58.982-33.587 94.037-85.675 100.454-146.978 113.937 18.978 177.562-33.826 206.814-69.905 63.317-78.131 71.27-204.39 18.91-300.203-46.524-85.06-130.389-127.317-229.82-116.497-18.739 2.116-32.222 18.978-30.174 37.683s19.285 32.017 37.683 30.174c96.7-10.718 143.258 46.353 162.406 81.408 39.014 71.373 33.826 167.868-12.049 224.495-38.673 47.684-100.352 60.518-178.483 37.069-2.94-0.916-6.319-1.443-9.822-1.443-18.851 0-34.133 15.282-34.133 34.133 0 1.495 0.096 2.969 0.283 4.414 8.549 68.506-31.114 106.53-65.93 126.362-77.346 44.066-191.522 37.035-259.925-15.974-58.266-45.193-75.947-117.18-51.132-208.179 0.761-2.688 1.198-5.775 1.198-8.963 0-18.851-15.282-34.133-34.133-34.133-1.481 0-2.94 0.094-4.371 0.277-70.759 8.822-128.991-13.535-159.677-61.424-24.61-38.434-26.146-86.46-3.823-122.368 27.716-44.578 86.05-64.375 164.147-55.637 1.132 0.133 2.443 0.209 3.772 0.209 18.853 0 34.138-15.284 34.138-34.138 0-17.525-13.205-31.965-30.208-33.914-14.153-1.653-27.874-2.404-41.118-2.404z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="login-qq" unicode="&#58998;" d="M512 896C229.227789 896 0 666.772211 0 384c0-282.745263 229.227789-512 512-512s512 229.254737 512 512C1024 666.772211 794.772211 896 512 896L512 896zM738.856421 258.93726300000003c0 0-16.208842-44.220632-45.945263-83.941053 0 0 53.126737-18.054737 48.64-64.983579 0 0 1.778526-52.345263-113.461895-48.734316 0 0-81.071158 6.319158-105.377684 40.609684l-21.423158 0c-24.306526-34.304-105.350737-40.609684-105.350737-40.609684-115.280842-3.610947-113.475368 48.734316-113.475368 48.734316-4.500211 46.928842 48.626526 64.983579 48.626526 64.983579-29.709474 39.720421-45.918316 83.941053-45.918316 83.941053-72.057263-116.439579-64.848842 16.249263-64.848842 16.249263 13.527579 78.524632 70.238316 129.967158 70.238316 129.967158-8.111158 71.316211 21.611789 83.941053 21.611789 83.941053C318.410105 709.712842 508.025263 705.859368 512 705.751579c3.988211 0.107789 193.576421 3.961263 199.828211-216.643368 0 0 29.709474-12.638316 21.611789-83.941053 0 0 56.737684-51.442526 70.238316-129.967158l0 0C803.678316 275.18652599999996 810.873263 142.49768400000005 738.856421 258.93726300000003L738.856421 258.93726300000003zM738.856421 258.93726300000003"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="snowflake" unicode="&#59057;" d="M480.695-64h63.725V59.291000000000054l68.854-68.242 44.945 44.546-113.798 112.79v180.02l177.271-102.44 41.67-155.652 60.725 16.284-25.398 94.872 85.259-49.266 31.87 55.246-84.726 48.961 94.497 25.343-16.495 61.622-156.068-41.855-176.934 102.245 177.667 102.667 155.513-41.709 16.274 60.793-94.78 25.418 85.255 49.264-31.869 55.247-84.733-48.965 25.326 94.594-61.557 16.51-41.817-156.206-176.948-102.251V644.461l113.849 113.951-44.459 44.496-69.392-69.454V832h-63.725v-97.935l-69.188 69.249-45.068-45.107 114.256-114.355V438.89l-156.557 90.469L283.45 684.39l-60.188-16.458 24.84-94.632-107.544 62.145-31.868-55.247 106.667-61.639-93.463-25.557 16.074-61.237 154.482 42.243 156.169-90.243-156.138-90.226-154.485 42.243-15.855-60.409 94.289-25.784-107.534-62.14 31.868-55.247 106.672 61.642-24.621-93.801 61.012-16.685 40.69 155.028 156.179 90.25v-180.455l-113.801-112.79 44.338-43.944 69.463 68.845V-64z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="file-b" unicode="&#58965;" d="M790.08 177.91999999999996l-138.112-119.232V177.91999999999996h138.112zM198.848 763.008h627.328v-516.16H617.088a34.56 34.56 0 0 1-34.816-34.432v-206.528H198.848V763.008z m662.208 68.8H164.032a34.56 34.56 0 0 1-34.816-34.432v-825.92a34.56 34.56 0 0 1 34.816-34.432h453.056l278.784 240.896V797.376a34.56 34.56 0 0 1-34.816 34.432z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="template" unicode="&#58979;" d="M734 172.89999999999998v82.8h-59.9v-37l-35.7-9.7 15.7-57.8zM674.1 419.3H734v-81.8h-59.9zM734 600.2l-95.6-26 15.7-57.8 20 5.4v-20.7H734zM866.1 131.29999999999995v-37l-35.7-9.7 7.9-28.9 7.8-28.9 79.9 21.7v82.8h-29.9zM740.9 60.299999999999955L651.4 36l7.9-28.9 7.8-29 89.5 24.4-7.8 28.9zM740.9 781.7l-89.5-24.3 7.9-28.9 7.8-28.9 89.5 24.3-7.8 28.9zM830.4 806l7.9-28.9 7.8-28.9 20 5.5v-20.8H926V832zM866.1 612.6v-120.3H926V612.6h-29.9zM866.1 371.9v-120.3H926V371.9h-29.9zM541.9 665.6l35.7 9.7-7.8 28.9-7.8 28.9-50-13.6L98 832v-783.5l384.1-104.3L512-64l29.9 8.1 35.7 9.7-7.8 28.9-7.8 28.9-20-5.4V120.79999999999995l35.7 9.7-15.7 57.8-20-5.4V486l35.7 9.7-15.7 57.8-20-5.4V665.6z m-59.8-659.4l-324.2 88.1V753.7l324.2-88.1V548l-192 52.2v-427.3l192-52.2v-114.5z m0 360.9V182.79999999999995l-132.2 35.9V521.8l132.2-35.9v-118.8z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="auz" unicode="&#58994;" d="M324.266667 435.2c-17.066667 17.066667-39.822222 17.066667-51.2 0-17.066667-17.066667-17.066667-39.822222 0-51.2l153.6-159.288889c5.688889-5.688889 17.066667-11.377778 28.444444-11.377778s17.066667 5.688889 28.444445 11.377778l295.822222 290.133333c17.066667 17.066667 17.066667 39.822222 0 51.2-17.066667 17.066667-39.822222 17.066667-51.2 0L455.111111 304.355556 324.266667 435.2zM927.288889 753.777778L523.377778 896h-22.755556L96.711111 753.777778c-17.066667-5.688889-28.444444-17.066667-28.444444-34.133334v-432.355555c11.377778-250.311111 409.6-409.6 426.666666-415.288889h22.755556c17.066667 5.688889 415.288889 159.288889 426.666667 415.288889V719.644444c11.377778 17.066667 0 28.444444-17.066667 34.133334z m-45.511111-460.8c-5.688889-182.044444-301.511111-312.888889-369.777778-341.333334-113.777778 45.511111-358.4 182.044444-369.777778 341.333334v398.222222L512 822.044444l369.777778-125.155555v-403.911111z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="console" unicode="&#58981;" d="M30.552 104.72699999999998c4.654-16.29 23.272-23.272 37.236-18.618 16.291 4.655 23.273 23.273 18.618 37.236C16.588 314.182 84.08 521.31 237.68 640c11.636 9.31 23.273 16.29 37.236 25.6 25.6 16.29 53.528 30.255 83.782 39.564 58.182 20.945 118.691 30.254 176.873 27.927h25.6c6.982 0 11.636 0 18.618-2.327 30.255-4.655 58.182-11.637 88.436-23.273 235.055-86.11 356.073-346.764 269.964-581.818-4.654-16.291 2.327-32.582 18.618-37.237 16.291-4.654 32.582 2.328 37.237 18.619 41.89 116.363 39.563 239.709 0 349.09h2.327C921.897 656.2909999999999 738.043 784.2909999999999 537.897 793.6h-48.873c-200.145-9.31-384-137.31-458.472-337.455-39.564-109.381-41.891-232.727 0-351.418z m707.49 386.328a29.498 29.498 0 0 1-41.89 0L521.606 316.509c-4.654 2.327-9.309 2.327-13.963 2.327-32.582 0-58.182-25.6-58.182-58.181s25.6-58.182 58.182-58.182 58.181 25.6 58.181 58.182c0 4.654 0 9.309-2.327 16.29l174.546 174.546c11.636 11.636 11.636 30.254 0 39.564z m228.073-458.473H58.48c-16.29 0-30.255-13.964-30.255-30.255 0-16.29 13.964-30.254 30.255-30.254h907.636c16.291 0 30.255 13.963 30.255 30.254 0 16.291-13.964 30.255-30.255 30.255z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="app" unicode="&#58963;" d="M432.022 818.946h-376.324c-6.627 0-12.078-5.45-12.078-12.078v-376.324c0-6.627 5.45-12.078 12.078-12.078h376.324c6.627 0 12.078 5.45 12.078 12.078v376.473c0 6.627-5.45 11.93-12.078 11.93zM391.517 471.196h-295.169v295.169h295.021v-295.169zM976.847 635.717l-211.95 211.95c-8.837 8.837-23.124 8.837-31.963 0l-211.95-211.95c-8.837-8.837-8.837-23.124 0-31.963l211.95-212.098c8.837-8.837 23.124-8.837 31.963 0l211.95 211.95c8.837 8.987 8.837 23.271 0 32.109zM432.022 313.45000000000005h-376.324c-6.627 0-12.078-5.45-12.078-12.078v-376.324c0-6.627 5.45-12.078 12.078-12.078h376.324c6.627 0 12.078 5.45 12.078 12.078v376.473c0 6.627-5.45 11.93-12.078 11.93zM391.517-34.15499999999997h-295.169v295.021h295.021v-295.021zM932.511 313.45000000000005h-376.324c-6.627 0-12.078-5.45-12.078-12.078v-376.324c0-6.627 5.45-12.078 12.078-12.078h376.324c6.627 0 12.078 5.45 12.078 12.078v376.473c0 6.627-5.45 11.93-12.078 11.93zM891.859-34.15499999999997h-295.021v295.021h295.021v-295.021z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="prev" unicode="&#58970;" d="M62.573 384.103l423.401 423.662c18.985 18.985 49.757 18.985 68.727 0 18.982-18.972 18.985-49.746 0-68.729l-355.058-355.067 356.796-356.796c18.977-18.971 18.976-49.746 0-68.727-18.982-18.976-49.751-18.976-68.727 0l-39.753 39.753 0.269 0.246-385.655 385.661zM451.365 384.103l423.407 423.662c18.985 18.985 49.757 18.985 68.727 0 18.982-18.972 18.985-49.746 0-68.729l-355.058-355.067 356.796-356.796c18.977-18.971 18.976-49.746 0-68.727-18.982-18.976-49.757-18.977-68.727 0l-39.762 39.754 0.273 0.249-385.662 385.661zM451.365 384.103z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="website" unicode="&#59310;" d="M777.073418 147.443038c-30.460759 21.387342-40.83038 40.182278-76.47595 53.792405 25.275949 60.273418 40.182278 83.605063 42.126583 154.896203H887.898734c-3.888608-99.159494-45.367089-143.878481-110.825316-208.688608zM136.101266 356.13164600000005h167.210126c1.944304-71.291139 16.850633-94.622785 42.126583-154.896203-34.997468-13.610127-68.050633-31.756962-98.511393-53.792405C181.468354 212.25316499999997 139.989873 256.97215200000005 136.101266 356.13164600000005z m103.048101 259.888607c29.164557-23.979747 61.56962-42.774684 96.567089-57.681012-19.443038-53.792405-30.460759-90.734177-31.756962-152.951899H136.101266c3.240506 90.734177 46.663291 147.767089 103.048101 210.632911z m309.144304-209.98481V523.989873c47.311392 1.296203 71.291139 10.36962 114.065823 25.27595 18.146835-51.2 28.516456-84.901266 30.460759-143.23038H548.293671z m104.344304-195.078481c-40.182278 12.962025-60.273418 20.091139-104.344304 21.387342V356.13164600000005h144.526582c-1.944304-68.050633-16.202532-88.141772-40.182278-145.174684z m36.941772-57.681013c31.756962-12.313924 39.534177-28.516456 66.75443-47.311392-51.848101-44.718987-114.713924-73.883544-182.116455-84.901266 36.941772 37.589873 90.734177 82.308861 115.362025 132.212658z m-163.321519-137.397468l22.035443 165.913924c40.182278-1.296203 56.38481-7.777215 92.678481-18.794937-27.220253-56.38481-66.106329-106.288608-113.417722-147.118987h-1.296202z m-75.827848 5.18481c-67.402532 11.017722-130.268354 40.83038-182.764557 84.901266 27.868354 19.443038 57.681013 34.997468 88.789873 47.311392 23.331646-48.607595 55.088608-93.326582 93.974684-132.212658z m47.311392 335.068355v-123.787342c-44.070886-1.296203-64.162025-8.425316-104.344304-21.387342-23.979747 57.681013-38.237975 77.124051-40.182278 145.174684h144.526582zM383.675949 549.265823c42.774684-14.906329 66.75443-23.331646 114.065823-25.27595v-117.95443H353.21519c1.944304 58.329114 12.313924 92.03038 30.460759 143.23038z m-37.589873 57.032911c-31.756962 12.962025-60.921519 30.460759-88.141772 51.848101 53.792405 51.848101 115.362025 91.382278 192.486076 104.344304-44.718987-44.718987-80.364557-97.863291-104.344304-156.192405z m151.655696 161.377215v-193.782278c-44.070886 1.296203-64.162025 9.073418-103.696202 22.683544 29.164557 68.698734 49.903797 127.027848 102.4 171.098734h1.296202z m75.827848-4.536708c77.772152-13.610127 149.711392-49.903797 206.744304-104.344304-29.164557-22.035443-46.01519-37.589873-80.364557-51.848102-25.275949 59.625316-82.956962 112.76962-126.379747 156.192406z m-46.01519 4.536708c54.440506-46.01519 97.21519-104.992405 124.435443-171.098734-39.534177-13.610127-59.625316-21.387342-103.696202-22.683544l-22.035443 193.782278h1.296202z m-31.10886-751.149367c-46.663291 38.886076-62.865823 88.789873-91.382279 147.118988 36.293671 11.665823 53.144304 17.498734 93.326582 18.794936v-165.913924h-1.944303zM887.898734 406.035443h-145.174683c-1.296203 61.56962-12.313924 98.511392-31.756962 152.303798 37.589873 15.55443 57.032911 33.053165 88.789873 57.681012 56.38481-62.865823 84.901266-119.898734 88.141772-209.98481z m-375.898734 427.746835c-244.334177 0-442.005063-197.670886-442.005063-442.005063S267.665823-50.227847999999994 512-50.227847999999994s442.005063 197.670886 442.005063 442.005063S756.334177 833.782278 512 833.782278z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="next" unicode="&#58971;" d="M948.066926 382.958838l-411.990051-412.24426c-18.47333-18.47333-48.417689-18.47333-66.875207 0-18.47333 18.461167-18.47333 48.405526 0 66.875207L814.691135 383.088983 467.512212 730.269123c-18.466032 18.458735-18.466032 48.405526 0 66.873991 18.468465 18.464816 48.410391 18.464816 66.872774 0l38.682336-38.682336-0.261507-0.239614 375.259894-375.265975v0.003649m-378.312834 0L157.756743-29.28542200000004c-18.47333-18.47333-48.415256-18.47333-66.872775 0-18.47333 18.461167-18.47333 48.405526 0 66.875207L436.369787 383.088983 89.19208 730.269123c-18.4636 18.458735-18.4636 48.405526 0 66.873991 18.470898 18.464816 48.415256 18.464816 66.872774 0l38.692067-38.682336-0.266372-0.239614 375.267191-375.265975-0.004865 0.003649m0 0z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="component" unicode="&#59479;" d="M917.376 652.544L500.8 891.2a34.304 34.304 0 0 1-34.176 0L50.112 652.48a33.92 33.92 0 0 1-17.088-29.376v-477.44c0-12.16 6.528-23.296 17.088-29.44l416.512-238.72a35.136 35.136 0 0 1 34.176 0l416.576 238.72a33.92 33.92 0 0 1 17.088 29.44v477.44a33.92 33.92 0 0 1-17.088 29.44z m-51.264-487.36l-382.4-219.136-382.336 219.136V603.52l382.336 219.136 382.4-219.136v-438.272zM198.784 535.488a33.792 33.792 0 0 1 12.544-46.4l237.824-136.32V83.20000000000005c0-18.816 15.232-33.92 34.176-33.92a33.92 33.92 0 0 1 34.176 33.92V352.384l238.656 136.832a33.856 33.856 0 0 1 12.544 46.4 34.368 34.368 0 0 1-46.72 12.416L483.712 411.52 245.504 548.0319999999999a34.432 34.432 0 0 1-46.72-12.544z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="more" unicode="&#58975;" d="M224 288c-52.928 0-96 43.072-96 96s43.072 96 96 96 96-43.072 96-96-43.072-96-96-96z m288 0c-52.928 0-96 43.072-96 96s43.072 96 96 96 96-43.072 96-96-43.072-96-96-96z m288 0c-52.928 0-96 43.072-96 96s43.072 96 96 96 96-43.072 96-96-43.072-96-96-96z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="login-wechat" unicode="&#58999;" d="M516.464646 896C233.714646 896 4.464646 666.75 4.464646 384S233.714646-128 516.464646-128s512 229.25 512 512S799.214646 896 516.464646 896z m-74-523.375c-0.25-0.75-0.5-1.125-0.75-1.875-0.25-0.75-0.5-1.125-0.75-1.875-0.25-0.75-0.5-1.125-0.75-1.875-0.25-0.75-0.5-1.125-0.75-1.875-0.25-0.75-0.5-1.125-0.75-1.875-0.25-0.75-0.5-1.125-0.75-1.875-0.25-0.75-0.5-1.125-0.75-1.875-0.25-0.75-0.5-1.125-0.75-1.875-0.25-0.75-0.5-1.125-0.5-1.875-0.25-0.75-0.5-1.125-0.5-1.875-0.25-0.75-0.5-1.125-0.5-1.875-0.25-0.75-0.25-1.125-0.5-1.875s-0.5-1.125-0.5-1.875c-0.25-0.75-0.25-1.125-0.5-1.875s-0.25-1.125-0.5-1.875-0.25-1.125-0.5-1.875-0.25-1.125-0.5-1.875-0.25-1.125-0.5-1.875-0.25-1.125-0.5-1.875-0.25-1.125-0.5-1.875-0.25-1.125-0.5-1.875c0-0.75-0.25-1.125-0.25-1.875s-0.25-1.125-0.25-1.875-0.25-1.125-0.25-1.875-0.25-1.125-0.25-1.875-0.25-1.125-0.25-1.875-0.25-1.125-0.25-1.875-0.25-1.125-0.25-1.875-0.25-1.125-0.25-1.875-0.25-1.125-0.25-1.875 0-1.125-0.25-1.875c0-0.75-0.25-1.125-0.25-1.875s0-1.125-0.25-1.875c0-0.75 0-1.125-0.25-1.875 0-0.75 0-1.125-0.25-1.875v-22.5c0-0.75 0-1.125 0.25-1.875 0-0.75 0-1.125 0.25-1.875 0-0.75 0-1.125 0.25-1.875 0-0.75 0-1.125 0.25-1.875 0-0.75 0.25-1.125 0.25-1.875s0.25-1.125 0.25-1.875 0.25-1.125 0.25-1.875 0.25-1.125 0.25-1.875 0.25-1.125 0.25-1.875 0.25-1.125 0.25-1.875 0.25-1.125 0.25-1.875 0.25-1.125 0.25-1.875 0.25-1.125 0.25-1.875 0.25-1.125 0.5-1.875 0.25-1.125 0.5-1.875 0.25-1.125 0.5-1.875 0.25-1.125 0.5-1.875 0.25-1.125 0.5-1.875 0.25-1.125 0.5-1.875 0.25-1.125 0.5-1.875 0.25-1.125 0.5-1.875 0.25-1.125 0.5-1.875 0.25-1.125 0.5-1.875l0.25-0.875c-4.25-0.25-8.625-0.75-12.75-0.75-3.75-0.25-7.25-0.25-11-0.25-3.5 0-7 0-10.5 0.25-7.25 0.25-14 0.875-20.75 1.875-4.25 0.5-8.125 1.125-12.375 1.875-3.5 0.5-6.75 1.125-10.25 1.875-3 0.5-6.25 1.125-9.25 1.875-3 0.75-5.875 1.125-8.875 1.875-2.75 0.75-5.875 1.125-8.875 1.875-2.75 0.5-5.625 1.125-8.375 1.625l-3.25-1.625-3.75-1.875-4 1.375-3.75-1.875-3.75-1.875-3.75-1.875-3.75-1.875-3.75-1.875-3.75-1.875-3.75-1.875-3.75-1.875-2.75-1.375-3.75-1.875-3.75-1.875-3.75-1.875-3.75-1.875-3.75-1.875-3.75-1.875-3.75-1.875-3.75-1.875-3.75-1.875-3.75-1.875-3.75-1.875-3.75-1.875-2.5-1.375 0.5 1.375 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.75 1.875 0.5 1.125c-0.5 0.25-0.75 0.5-1.125 0.75-0.875 0.75-1.625 1.125-2.5 1.875s-1.625 1.125-2.5 1.875-1.625 1.125-2.5 1.875c-0.75 0.75-1.625 1.125-2.375 1.875-0.75 0.75-1.625 1.125-2.375 1.875-0.75 0.75-1.625 1.125-2.375 1.875-0.75 0.75-1.625 1.125-2.375 1.875-0.75 0.75-1.375 1.125-2.375 1.875-0.75 0.75-1.375 1.125-2.125 1.875-0.75 0.75-1.375 1.125-2.125 1.875-0.75 0.75-1.375 1.125-2.125 1.875-0.75 0.75-1.375 1.125-2.125 1.875-0.75 0.75-1.375 1.125-2.125 1.875-0.75 0.75-1.375 1.125-2.125 1.875-0.75 0.75-1.375 1.125-1.875 1.875-0.75 0.75-1.375 1.125-1.875 1.875l-1.875 1.875-1.875 1.875-1.875 1.875-1.875 1.875c-0.75 0.75-1.125 1.125-1.625 1.875s-1.125 1.125-1.625 1.875-1.125 1.125-1.625 1.875-1.125 1.125-1.625 1.875-1.125 1.125-1.625 1.875-1.125 1.125-1.625 1.875-0.875 1.125-1.625 1.875c-0.5 0.75-0.875 1.125-1.625 1.875-0.5 0.75-0.875 1.125-1.375 1.875-0.5 0.75-0.875 1.125-1.375 1.875-0.5 0.75-0.875 1.125-1.375 1.875-0.5 0.75-0.875 1.125-1.375 1.875-0.5 0.75-0.875 1.125-1.375 1.875-0.5 0.75-0.875 1.125-1.375 1.875-0.5 0.75-0.875 1.125-1.375 1.875-0.5 0.75-0.875 1.125-1.375 1.875-0.5 0.75-0.875 1.125-1.125 1.875-0.5 0.75-0.875 1.125-1.125 1.875-0.5 0.75-0.75 1.125-1.125 1.875-0.5 0.75-0.75 1.125-1.125 1.875-0.5 0.75-0.75 1.125-1.125 1.875-0.5 0.75-0.75 1.125-1.125 1.875-0.5 0.75-0.75 1.125-1.125 1.875-0.5 0.75-0.75 1.125-1.125 1.875-0.25 0.75-0.75 1.125-0.875 1.875-0.25 0.75-0.75 1.125-0.875 1.875-0.25 0.75-0.75 1.125-0.875 1.875-0.25 0.75-0.75 1.125-0.875 1.875-0.25 0.75-0.75 1.125-0.875 1.875-0.25 0.75-0.75 1.125-0.875 1.875-0.25 0.75-0.75 1.125-0.875 1.875-0.25 0.75-0.5 1.125-0.875 1.875-0.25 0.75-0.5 1.125-0.875 1.875-0.25 0.75-0.5 1.125-0.875 1.875-0.25 0.75-0.5 1.125-0.75 1.875-0.25 0.75-0.5 1.125-0.75 1.875-0.25 0.75-0.5 1.125-0.75 1.875-0.25 0.75-0.5 1.125-0.75 1.875-0.25 0.75-0.5 1.125-0.75 1.875-0.25 0.75-0.5 1.125-0.75 1.875-0.25 0.75-0.5 1.125-0.75 1.875-0.25 0.75-0.5 1.125-0.75 1.875-0.25 0.75-0.5 1.125-0.75 1.875-0.25 0.75-0.5 1.125-0.75 1.875-0.25 0.75-0.5 1.125-0.5 1.875-0.25 0.75-0.5 1.125-0.5 1.875-0.25 0.75-0.5 1.125-0.5 1.875-0.25 0.75-0.25 1.125-0.5 1.875s-0.25 1.125-0.5 1.875-0.25 1.125-0.5 1.875-0.25 1.125-0.5 1.875-0.25 1.125-0.5 1.875-0.25 1.125-0.5 1.875-0.25 1.125-0.5 1.875-0.25 1.125-0.5 1.875-0.25 1.125-0.25 1.875-0.25 1.125-0.25 1.875-0.25 1.125-0.25 1.875-0.25 1.125-0.25 1.875-0.25 1.125-0.25 1.875-0.25 1.125-0.25 1.875-0.25 1.125-0.25 1.875-0.25 1.125-0.25 1.875-0.25 1.125-0.25 1.875 0 1.125-0.25 1.875c0 0.75 0 1.125-0.25 1.875 0 0.75 0 1.125-0.25 1.875 0 0.75 0 1.125-0.25 1.875V457.25v1.875 1.875 1.875 1.875 1.875 0.875 0.875 1.875 1.875 1.875 1.875 1.875 1.875c0 0.75 0 1.125 0.25 1.875 0 0.75 0 1.125 0.25 1.875 0 0.75 0 1.125 0.25 1.875 0 0.75 0.25 1.125 0.25 1.875s0.25 1.125 0.25 1.875 0.25 1.125 0.25 1.875 0.25 1.125 0.25 1.875 0.25 1.125 0.25 1.875 0.25 1.125 0.25 1.875 0.25 1.125 0.25 1.875 0.25 1.125 0.25 1.875 0.25 1.125 0.25 1.875 0.25 1.125 0.5 1.875c0 0.75 0.25 1.125 0.5 1.875s0.25 1.125 0.5 1.875 0.25 1.125 0.5 1.875 0.25 1.125 0.5 1.875 0.25 1.125 0.5 1.875 0.25 1.125 0.5 1.875 0.25 1.125 0.5 1.875 0.25 1.125 0.5 1.875 0.25 1.125 0.5 1.875 0.25 1.125 0.5 1.875 0.5 1.125 0.5 1.875c0.25 0.75 0.5 1.125 0.5 1.875 0.25 0.75 0.5 1.125 0.5 1.875 0.25 0.75 0.5 1.125 0.75 1.875 0.25 0.75 0.5 1.125 0.75 1.875 0.25 0.75 0.5 1.125 0.75 1.875 0.25 0.75 0.5 1.125 0.75 1.875 0.25 0.75 0.5 1.125 0.75 1.875 0.25 0.75 0.5 1.125 0.75 1.875 0.25 0.75 0.5 1.125 0.75 1.875 0.25 0.75 0.5 1.125 0.75 1.875 0.25 0.75 0.5 1.125 0.75 1.875 0.25 0.75 0.5 1.125 0.75 1.875 0.25 0.75 0.5 1.125 0.75 1.875 0.25 0.75 0.5 1.125 0.875 1.875 0.25 0.75 0.5 1.125 0.875 1.875 0.25 0.75 0.5 1.125 0.875 1.875 0.25 0.75 0.75 1.125 0.875 1.875 0.25 0.75 0.75 1.125 0.875 1.875 0.25 0.75 0.75 1.125 0.875 1.875 0.25 0.75 0.75 1.125 0.875 1.875 0.25 0.75 0.75 1.125 0.875 1.875 0.25 0.75 0.75 1.125 0.875 1.875 0.25 0.75 0.75 1.125 1.125 1.875 0.5 0.75 0.75 1.125 1.125 1.875 0.5 0.75 0.75 1.125 1.125 1.875 0.5 0.75 0.75 1.125 1.125 1.875 0.5 0.75 0.75 1.125 1.125 1.875 0.5 0.75 0.75 1.125 1.125 1.875 0.5 0.75 0.75 1.125 1.125 1.875 0.5 0.75 0.875 1.125 1.125 1.875 0.5 0.75 0.875 1.125 1.125 1.875 0.5 0.75 0.875 1.125 1.125 1.875 0.5 0.75 0.875 1.125 1.375 1.875 0.5 0.75 0.875 1.125 1.375 1.875 0.5 0.75 0.875 1.125 1.375 1.875 0.5 0.75 0.875 1.125 1.375 1.875 0.5 0.75 0.875 1.125 1.375 1.875 0.5 0.75 0.875 1.125 1.375 1.875 0.5 0.75 0.875 1.125 1.375 1.875 0.5 0.75 0.875 1.125 1.625 1.875 0.5 0.75 0.875 1.125 1.625 1.875 0.5 0.75 1.125 1.125 1.625 1.875s1.125 1.125 1.625 1.875 1.125 1.125 1.625 1.875 1.125 1.125 1.625 1.875 1.125 1.125 1.625 1.875l1.875 1.875 1.875 1.875 1.875 1.875 1.875 1.875c0.75 0.75 1.375 1.125 1.875 1.875 0.75 0.75 1.375 1.125 2.125 1.875 0.75 0.75 1.375 1.125 2.125 1.875 0.75 0.75 1.375 1.125 2.125 1.875 0.75 0.75 1.375 1.125 2.125 1.875 0.75 0.75 1.375 1.125 2.125 1.875 0.75 0.75 1.375 1.125 2.375 1.875 0.75 0.75 1.625 1.125 2.375 1.875 0.75 0.75 1.625 1.125 2.375 1.875 0.75 0.75 1.625 1.125 2.375 1.875 0.875 0.75 1.625 1.125 2.5 1.875s1.625 1.125 2.5 1.875 1.875 1.125 2.5 1.875c0.875 0.75 1.875 1.125 2.75 1.875 0.875 0.75 1.875 1.125 2.75 1.875 0.875 0.75 1.875 1.125 2.75 1.875 0.875 0.75 1.875 1.125 3 1.875 0.875 0.75 2.125 1.125 3 1.875s2.125 1.125 3 1.875c1.125 0.75 2.125 1.125 3.25 1.875 1.125 0.75 2.375 1.125 3.25 1.875 1.125 0.75 2.375 1.125 3.5 1.875 1.125 0.75 2.375 1.125 3.75 1.875 1.125 0.75 2.5 1.125 3.75 1.875 1.375 0.75 2.5 1.125 4 1.875 1.375 0.75 2.75 1.125 4.25 1.875 1.375 0.75 2.75 1.125 4.25 1.875 1.375 0.75 3 1.125 4.375 1.875 1.625 0.75 3 1.125 4.625 1.875 1.625 0.75 3.25 1.125 4.875 1.875 1.875 0.75 3.5 1.125 5.375 1.875s3.75 1.125 5.625 1.875c2.125 0.75 4.25 1.125 6 1.875 2.375 0.75 4.375 1.125 6.75 1.875 2.5 0.75 4.875 1.125 7.5 1.875 2.75 0.75 5.625 1.125 8.625 1.875 3.5 0.75 6.75 1.125 10.25 1.875 4.375 0.75 8.875 1.375 13.25 1.875 11 1.125 22.125 1.875 33.25 1.875h2.5c11.125 0 22.375-0.75 33.5-1.875 4.375-0.5 8.875-1.125 13.25-1.875 3.5-0.5 7-1.125 10.25-1.875 2.75-0.5 5.875-1.125 8.625-1.875 2.5-0.5 5.125-1.125 7.625-1.875 2.375-0.5 4.625-1.125 6.75-1.875 2.125-0.5 4.25-1.125 6.25-1.875 1.875-0.75 4-1.125 5.875-1.875s3.75-1.125 5.375-1.875c1.625-0.75 3.5-1.125 5.125-1.875 1.625-0.75 3.25-1.125 4.875-1.875 1.625-0.75 3-1.125 4.625-1.875 1.375-0.75 3-1.125 4.375-1.875s2.75-1.125 4.25-1.875c1.375-0.75 2.75-1.125 4-1.875 1.375-0.75 2.5-1.125 3.75-1.875 1.125-0.75 2.5-1.125 3.75-1.875 1.125-0.75 2.375-1.125 3.5-1.875 1.125-0.75 2.375-1.125 3.5-1.875 1.125-0.75 2.375-1.125 3.25-1.875 1.125-0.75 2.125-1.125 3.25-1.875 1.125-0.75 2.125-1.125 3-1.875s2.125-1.125 3-1.875 1.875-1.125 3-1.875c0.875-0.75 1.875-1.125 2.75-1.875 0.875-0.75 1.875-1.125 2.75-1.875 0.875-0.75 1.875-1.125 2.75-1.875 0.875-0.75 1.875-1.125 2.5-1.875 0.875-0.75 1.625-1.125 2.5-1.875s1.625-1.125 2.5-1.875 1.625-1.125 2.375-1.875c0.75-0.75 1.625-1.125 2.375-1.875 0.75-0.75 1.625-1.125 2.375-1.875 0.75-0.75 1.375-1.125 2.375-1.875 0.75-0.75 1.375-1.125 2.375-1.875 0.75-0.75 1.375-1.125 2.125-1.875 0.75-0.75 1.375-1.125 2.125-1.875 0.75-0.75 1.375-1.125 2.125-1.875 0.75-0.75 1.375-1.125 2.125-1.875 0.75-0.75 1.375-1.125 1.875-1.875 0.75-0.75 1.375-1.125 1.875-1.875l1.875-1.875 1.875-1.875 1.875-1.875 1.875-1.875c0.75-0.75 1.125-1.125 1.625-1.875s1.125-1.125 1.625-1.875 1.125-1.125 1.625-1.875 1.125-1.125 1.625-1.875 1.125-1.125 1.625-1.875 0.875-1.125 1.625-1.875c0.5-0.75 0.875-1.125 1.625-1.875 0.5-0.75 0.875-1.125 1.375-1.875 0.5-0.75 0.875-1.125 1.375-1.875 0.5-0.75 0.875-1.125 1.375-1.875 0.5-0.75 0.875-1.125 1.375-1.875 0.5-0.75 0.875-1.125 1.375-1.875 0.5-0.75 0.875-1.125 1.375-1.875 0.5-0.75 0.875-1.125 1.375-1.875 0.5-0.75 0.875-1.125 1.125-1.875 0.5-0.75 0.875-1.125 1.125-1.875 0.5-0.75 0.875-1.125 1.125-1.875 0.5-0.75 0.75-1.125 1.125-1.875 0.5-0.75 0.75-1.125 1.125-1.875 0.5-0.75 0.75-1.125 1.125-1.875 0.5-0.75 0.75-1.125 1.125-1.875 0.5-0.75 0.75-1.125 1.125-1.875 0.5-0.75 0.75-1.125 1.125-1.875 0.5-0.75 0.75-1.125 0.875-1.875 0.25-0.75 0.75-1.125 0.875-1.875 0.25-0.75 0.75-1.125 0.875-1.875 0.25-0.75 0.75-1.125 0.875-1.875 0.25-0.75 0.75-1.125 0.875-1.875 0.25-0.75 0.75-1.125 0.875-1.875 0.25-0.75 0.75-1.125 0.875-1.875 0.25-0.75 0.75-1.125 0.875-1.875 0.25-0.75 0.5-1.125 0.875-1.875 0.25-0.75 0.5-1.125 0.875-1.875 0.25-0.75 0.5-1.125 0.75-1.875 0.25-0.75 0.5-1.125 0.75-1.875 0.25-0.75 0.5-1.125 0.75-1.875 0.25-0.75 0.5-1.125 0.75-1.875 0.25-0.75 0.5-1.125 0.75-1.875 0.25-0.75 0.5-1.125 0.75-1.875 0.25-0.75 0.5-1.125 0.75-1.875 0.25-0.75 0.5-1.125 0.75-1.875 0.25-0.75 0.5-1.125 0.75-1.875 0.25-0.75 0.5-1.125 0.75-1.875 0.25-0.75 0.5-1.125 0.75-1.875 0.25-0.75 0.5-1.125 0.5-1.875 0.25-0.75 0.5-1.125 0.5-1.875 0.25-0.75 0.25-1.125 0.5-1.875s0.5-1.125 0.5-1.875c0.25-0.75 0.25-1.125 0.5-1.875s0.25-1.125 0.5-1.875 0.25-1.125 0.5-1.875 0.25-1.125 0.5-1.875 0.25-1.125 0.5-1.875c0-0.5 0.25-0.75 0.25-1.125-4.625 0.5-9.25 0.875-14 1.125-3.5 0.25-7 0.25-10.75 0.25-4 0-8.125 0-12.125-0.25-6.75-0.25-13.25-0.875-19.5-1.875-3.75-0.5-7.625-1.125-11.375-1.875-3-0.5-5.875-1.125-8.875-1.875-2.5-0.5-5.125-1.125-7.5-1.875-2.125-0.5-4.375-1.125-6.5-1.875-1.875-0.5-4-1.125-5.875-1.875-1.875-0.5-3.5-1.125-5.375-1.875-1.625-0.75-3.25-1.125-4.875-1.875-1.625-0.75-3-1.125-4.625-1.875-1.375-0.75-3-1.125-4.375-1.875s-2.75-1.125-4.25-1.875c-1.375-0.75-2.5-1.125-4-1.875-1.125-0.75-2.5-1.125-3.75-1.875-1.125-0.75-2.375-1.125-3.5-1.875-1.125-0.75-2.375-1.125-3.5-1.875-1.125-0.75-2.125-1.125-3.25-1.875-0.875-0.75-2.125-1.125-3-1.875s-2.125-1.125-3-1.875-1.875-1.125-3-1.875c-0.875-0.75-1.875-1.125-2.75-1.875-0.875-0.75-1.875-1.125-2.75-1.875-0.875-0.75-1.875-1.125-2.5-1.875-0.875-0.75-1.625-1.125-2.5-1.875s-1.625-1.125-2.5-1.875c-0.75-0.75-1.625-1.125-2.375-1.875-0.75-0.75-1.625-1.125-2.375-1.875-0.75-0.75-1.625-1.125-2.375-1.875-0.75-0.75-1.375-1.125-2.125-1.875-0.75-0.75-1.375-1.125-2.125-1.875-0.75-0.75-1.375-1.125-2.125-1.875-0.75-0.75-1.375-1.125-2.125-1.875-0.75-0.75-1.375-1.125-2.125-1.875-0.75-0.75-1.375-1.125-1.875-1.875l-1.875-1.875-1.875-1.875-1.875-1.875c-0.75-0.75-1.125-1.125-1.625-1.875s-1.125-1.125-1.625-1.875-1.125-1.125-1.625-1.875-1.125-1.125-1.625-1.875-1.125-1.125-1.625-1.875-0.875-1.125-1.625-1.875c-0.5-0.75-0.875-1.125-1.625-1.875-0.5-0.75-0.875-1.125-1.375-1.875-0.5-0.75-0.875-1.125-1.375-1.875-0.5-0.75-0.875-1.125-1.375-1.875-0.5-0.75-0.875-1.125-1.375-1.875-0.5-0.75-0.875-1.125-1.375-1.875-0.5-0.75-0.875-1.125-1.375-1.875-0.5-0.75-0.875-1.125-1.125-1.875-0.5-0.75-0.875-1.125-1.125-1.875-0.5-0.75-0.75-1.125-1.125-1.875-0.5-0.75-0.75-1.125-1.125-1.875-0.5-0.75-0.75-1.125-1.125-1.875-0.5-0.75-0.75-1.125-1.125-1.875-0.5-0.75-0.75-1.125-1.125-1.875-0.5-0.75-0.75-1.125-1.125-1.875-0.5-0.75-0.75-1.125-1.125-1.875-0.25-0.75-0.75-1.125-0.875-1.875-0.25-0.75-0.75-1.125-0.875-1.875-0.25-0.75-0.75-1.125-0.875-1.875-0.25-0.75-0.75-1.125-0.875-1.875-0.25-0.75-0.75-1.125-0.875-1.875-0.25-0.75-0.75-1.125-0.875-1.875-0.25-0.75-0.75-1.125-0.875-1.875-0.25-0.75-0.5-1.125-0.875-1.875-0.25-0.75-0.5-1.125-0.875-1.875-0.25-0.75-0.5-1.125-0.875-1.875-0.25-0.75-0.5-1.125-0.75-1.875-3.125-4.625-3.375-5.125-3.625-5.75z m433.625-71.25v-11.375c0-0.5 0-0.875-0.25-1.625 0-0.5 0-0.875-0.25-1.625 0-0.5 0-0.875-0.25-1.625 0-0.5-0.25-0.875-0.25-1.625 0-0.5-0.25-0.875-0.25-1.625 0-0.5-0.25-0.875-0.25-1.625 0-0.5-0.25-0.875-0.25-1.625 0-0.5-0.25-0.875-0.25-1.625 0-0.5-0.25-0.875-0.25-1.625 0-0.5-0.25-0.875-0.25-1.625 0-0.5-0.25-0.875-0.25-1.625 0-0.5-0.25-0.875-0.25-1.625 0-0.5-0.25-0.875-0.5-1.625-0.25-0.5-0.25-0.875-0.5-1.625-0.25-0.5-0.25-0.875-0.5-1.625-0.25-0.5-0.25-0.875-0.5-1.625-0.25-0.5-0.25-0.875-0.5-1.625-0.25-0.5-0.25-0.875-0.5-1.625-0.25-0.5-0.25-0.875-0.5-1.625-0.25-0.5-0.25-0.875-0.5-1.625-0.25-0.5-0.25-0.875-0.5-1.625-0.25-0.5-0.25-0.875-0.5-1.625-0.25-0.5-0.5-0.875-0.5-1.625-0.25-0.5-0.5-0.875-0.5-1.625-0.25-0.5-0.5-0.875-0.5-1.625-0.25-0.5-0.5-0.875-0.75-1.625-0.25-0.5-0.5-0.875-0.75-1.625-0.25-0.5-0.5-0.875-0.75-1.625-0.25-0.5-0.5-0.875-0.75-1.625-0.25-0.5-0.5-0.875-0.75-1.625-0.25-0.5-0.5-0.875-0.75-1.625-0.25-0.5-0.5-0.875-0.75-1.625-0.25-0.5-0.5-0.875-0.75-1.625-0.25-0.5-0.5-0.875-0.75-1.625-0.25-0.5-0.5-0.875-0.75-1.625-0.25-0.5-0.5-0.875-0.75-1.625-0.25-0.5-0.5-0.875-0.875-1.625-0.25-0.5-0.5-0.875-0.875-1.625-0.25-0.5-0.5-0.875-0.875-1.625-0.25-0.5-0.5-0.875-0.875-1.625-0.25-0.5-0.75-0.875-0.875-1.625-0.25-0.5-0.75-0.875-0.875-1.625-0.25-0.5-0.75-0.875-0.875-1.625-0.25-0.5-0.75-0.875-0.875-1.625-0.25-0.5-0.75-0.875-0.875-1.625-0.25-0.5-0.75-0.875-0.875-1.625-0.25-0.5-0.75-0.875-0.875-1.625-0.25-0.5-0.75-0.875-0.875-1.625-0.5-0.5-0.75-0.875-1.125-1.625-0.5-0.5-0.75-0.875-1.125-1.625-0.5-0.5-0.75-0.875-1.125-1.625-0.5-0.5-0.75-0.875-1.125-1.625-0.5-0.5-0.75-0.875-1.125-1.625-0.5-0.5-0.75-0.875-1.125-1.625-0.5-0.5-0.75-0.875-1.125-1.625-0.5-0.5-0.75-0.875-1.125-1.625-0.5-0.5-0.75-0.875-1.125-1.625-0.5-0.5-0.875-0.875-1.125-1.625-0.5-0.5-0.875-0.875-1.125-1.625-0.5-0.5-0.875-0.875-1.375-1.625-0.5-0.5-0.875-0.875-1.375-1.625-0.5-0.5-0.875-0.875-1.375-1.625-0.5-0.5-0.875-0.875-1.375-1.625-0.5-0.5-0.875-0.875-1.375-1.625-0.5-0.5-0.875-0.875-1.375-1.625-0.5-0.5-0.875-0.875-1.375-1.625-0.5-0.5-0.875-0.875-1.375-1.625-0.5-0.5-0.875-0.875-1.375-1.625-0.5-0.5-0.875-0.875-1.375-1.625l-1.625-1.625-1.625-1.625c-0.5-0.5-1.125-0.875-1.625-1.625-0.5-0.5-1.125-0.875-1.625-1.625-0.5-0.5-1.125-0.875-1.625-1.625-0.5-0.5-1.125-0.875-1.625-1.625-0.5-0.5-1.125-0.875-1.625-1.625-0.5-0.5-1.125-0.875-1.625-1.625-0.5-0.5-1.125-0.875-1.625-1.625-0.75-0.5-1.125-0.875-1.875-1.625-0.75-0.5-1.125-0.875-1.875-1.625-0.75-0.5-1.125-0.875-1.875-1.625-0.75-0.5-1.125-0.875-1.875-1.625-0.75-0.5-1.125-0.875-1.875-1.625-0.75-0.5-1.125-0.875-1.875-1.625-0.75-0.5-1.375-0.875-1.875-1.625-0.75-0.5-1.375-0.875-1.875-1.625-0.75-0.5-1.375-0.875-2.125-1.625-0.75-0.5-1.375-0.875-2.125-1.625l-0.75-0.5 0.25-0.875 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.5-1.625 0.25-1.125-2.125 1.125-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-2.75 1.625-0.5 0.25-0.875-0.25c-2.125-0.5-4.25-0.875-6-1.625-2.125-0.5-4.25-0.875-6.25-1.625-2.125-0.5-4.25-0.875-6.5-1.625-2.375-0.5-4.375-0.875-6.75-1.625-2.375-0.5-4.875-1.125-7.25-1.625-2.75-0.5-5.375-1.125-8.125-1.625-3.25-0.5-6.5-1.125-9.75-1.625-5.375-0.75-10.75-1.125-15.875-1.625-2.75-0.25-5.875-0.25-8.625-0.25-3.75 0-7.5 0-11.125 0.25-6.5 0.25-12.75 0.75-19.125 1.625-3.75 0.5-7.5 0.875-11 1.625-2.75 0.5-5.875 0.875-8.625 1.625-2.375 0.5-4.875 0.875-7.25 1.625-2.125 0.5-4.25 0.875-6.25 1.625-1.875 0.5-3.75 0.875-5.625 1.625-1.875 0.5-3.5 0.875-5.125 1.625-1.625 0.5-3.25 0.875-4.875 1.625-1.375 0.5-3 0.875-4.375 1.625-1.375 0.5-2.75 0.875-4.25 1.625-1.375 0.5-2.5 0.875-4 1.625-1.125 0.5-2.5 0.875-3.75 1.625-1.125 0.5-2.375 0.875-3.75 1.625-1.125 0.5-2.375 0.875-3.5 1.625-1.125 0.5-2.125 0.875-3.25 1.625-1.125 0.5-2.125 0.875-3.25 1.625-0.875 0.5-2.125 0.875-3 1.625-0.875 0.5-1.875 0.875-3 1.625-0.875 0.5-1.875 0.875-2.75 1.625-0.875 0.5-1.875 0.875-2.75 1.625-0.875 0.5-1.875 0.875-2.5 1.625-0.875 0.5-1.625 0.875-2.5 1.625-0.875 0.5-1.625 0.875-2.5 1.625-0.75 0.5-1.625 0.875-2.375 1.625-0.75 0.5-1.625 0.875-2.375 1.625-0.75 0.5-1.625 0.875-2.375 1.625-0.75 0.5-1.375 0.875-2.375 1.625-0.75 0.5-1.375 0.875-2.125 1.625-0.75 0.5-1.375 0.875-2.125 1.625-0.75 0.5-1.375 0.875-2.125 1.625-0.75 0.5-1.375 0.875-2.125 1.625-0.75 0.5-1.375 0.875-1.875 1.625-0.75 0.5-1.375 0.875-1.875 1.625-0.75 0.5-1.125 0.875-1.875 1.625-0.75 0.5-1.125 0.875-1.875 1.625-0.75 0.5-1.125 0.875-1.875 1.625-0.75 0.5-1.125 0.875-1.875 1.625-0.5 0.5-1.125 0.875-1.625 1.625-0.5 0.5-1.125 0.875-1.625 1.625-0.5 0.5-1.125 0.875-1.625 1.625-0.5 0.5-1.125 0.875-1.625 1.625l-1.625 1.625-1.625 1.625c-0.5 0.5-0.875 0.875-1.375 1.625-0.5 0.5-0.875 0.875-1.375 1.625-0.5 0.5-0.875 0.875-1.375 1.625-0.5 0.5-0.875 0.875-1.375 1.625-0.5 0.5-0.875 0.875-1.375 1.625-0.5 0.5-0.875 0.875-1.375 1.625-0.5 0.5-0.875 0.875-1.375 1.625-0.5 0.5-0.875 0.875-1.125 1.625-0.5 0.5-0.875 0.875-1.125 1.625-0.5 0.5-0.875 0.875-1.125 1.625-0.5 0.5-0.75 0.875-1.125 1.625-0.5 0.5-0.75 0.875-1.125 1.625-0.5 0.5-0.75 0.875-1.125 1.625-0.5 0.5-0.75 0.875-1.125 1.625-0.5 0.5-0.75 0.875-1.125 1.625-0.5 0.5-0.75 0.875-1.125 1.625-0.5 0.5-0.75 0.875-1.125 1.625-0.25 0.5-0.75 0.875-0.875 1.625-0.25 0.5-0.75 0.875-0.875 1.625-0.25 0.5-0.75 0.875-0.875 1.625-0.25 0.5-0.75 0.875-0.875 1.625-0.25 0.5-0.75 0.875-0.875 1.625-0.25 0.5-0.75 0.875-0.875 1.625-0.25 0.5-0.75 0.875-0.875 1.625-0.25 0.5-0.75 0.875-0.875 1.625-0.25 0.5-0.5 0.875-0.875 1.625-0.25 0.5-0.5 0.875-0.875 1.625-0.25 0.5-0.5 0.875-0.75 1.625-0.25 0.5-0.5 0.875-0.75 1.625-0.25 0.5-0.5 0.875-0.75 1.625-0.25 0.5-0.5 0.875-0.75 1.625-0.25 0.5-0.5 0.875-0.75 1.625-0.25 0.5-0.5 0.875-0.75 1.625-0.25 0.5-0.5 0.875-0.75 1.625-0.25 0.5-0.5 0.875-0.75 1.625-0.25 0.5-0.5 0.875-0.75 1.625-0.25 0.5-0.5 0.875-0.75 1.625-0.25 0.5-0.5 0.875-0.75 1.625-0.25 0.5-0.5 0.875-0.75 1.625-0.25 0.5-0.5 0.875-0.5 1.625-0.25 0.5-0.5 0.875-0.5 1.625-0.25 0.5-0.5 0.875-0.5 1.625-0.25 0.5-0.5 0.875-0.5 1.625-0.25 0.5-0.5 0.875-0.5 1.625-0.25 0.5-0.25 0.875-0.5 1.625-0.25 0.5-0.25 0.875-0.5 1.625-0.25 0.5-0.25 0.875-0.5 1.625-0.25 0.5-0.25 0.875-0.5 1.625-0.25 0.5-0.25 0.875-0.5 1.625-0.25 0.5-0.25 0.875-0.5 1.625-0.25 0.5-0.25 0.875-0.5 1.625-0.25 0.5-0.25 0.875-0.5 1.625-0.25 0.5-0.25 0.875-0.5 1.625-0.25 0.5-0.25 0.875-0.25 1.625 0 0.5-0.25 0.875-0.25 1.625 0 0.5-0.25 0.875-0.25 1.625 0 0.5-0.25 0.875-0.25 1.625 0 0.5-0.25 0.875-0.25 1.625 0 0.5-0.25 0.875-0.25 1.625 0 0.5-0.25 0.875-0.25 1.625 0 0.5-0.25 0.875-0.25 1.625 0 0.5-0.25 0.875-0.25 1.625 0 0.5-0.25 0.875-0.25 1.625 0 0.5-0.25 0.875-0.25 1.625 0 0.5-0.25 0.875-0.25 1.625 0 0.5 0 0.875-0.25 1.625 0 0.5 0 0.875-0.25 1.625 0 0.5 0 0.875-0.25 1.625v1.625 1.625 1.625 3.25 1.625 3.25 1.375 1.625 1.625 1.625 1.625 1.625 1.625 1.625 1.625 1.625c0 0.5 0 0.875 0.25 1.625 0 0.5 0 0.875 0.25 1.625 0 0.5 0 0.875 0.25 1.625 0 0.5 0.25 0.875 0.25 1.625 0 0.5 0.25 0.875 0.25 1.625 0 0.5 0.25 0.875 0.25 1.625 0 0.5 0.25 0.875 0.25 1.625 0 0.5 0.25 0.875 0.25 1.625 0 0.5 0.25 0.875 0.25 1.625 0 0.5 0.25 0.875 0.25 1.625 0 0.5 0.25 0.875 0.25 1.625 0 0.5 0.25 0.875 0.25 1.625 0 0.5 0.25 0.875 0.25 1.625 0 0.5 0.25 0.875 0.25 1.625 0 0.5 0.25 0.875 0.25 1.625 0.25 0.5 0.25 0.875 0.5 1.625 0.25 0.5 0.25 0.875 0.5 1.625 0.25 0.5 0.25 0.875 0.5 1.625 0.25 0.5 0.25 0.875 0.5 1.625 0.25 0.5 0.25 0.875 0.5 1.625 0.25 0.5 0.25 0.875 0.5 1.625 0.25 0.5 0.25 0.875 0.5 1.625 0.25 0.5 0.25 0.875 0.5 1.625 0.25 0.5 0.25 0.875 0.5 1.625 0.25 0.5 0.5 0.875 0.5 1.625 0.25 0.5 0.5 0.875 0.5 1.625 0.25 0.5 0.5 0.875 0.5 1.625 0.25 0.5 0.5 0.875 0.5 1.625 0.25 0.5 0.5 0.875 0.5 1.625 0.25 0.5 0.5 0.875 0.75 1.625 0.25 0.5 0.5 0.875 0.75 1.625 0.25 0.5 0.5 0.875 0.75 1.625 0.25 0.5 0.5 0.875 0.75 1.625 0.25 0.5 0.5 0.875 0.75 1.625 0.25 0.5 0.5 0.875 0.75 1.625 0.25 0.5 0.5 0.875 0.75 1.625 0.25 0.5 0.5 0.875 0.75 1.625 0.25 0.5 0.5 0.875 0.75 1.625 0.25 0.5 0.5 0.875 0.75 1.625 0.25 0.5 0.5 0.875 0.75 1.625 0.25 0.5 0.5 0.875 0.875 1.625 0.25 0.5 0.5 0.875 0.875 1.625 0.25 0.5 0.5 0.875 0.875 1.625 0.25 0.5 0.75 0.875 0.875 1.625 0.25 0.5 0.75 0.875 0.875 1.625 0.25 0.5 0.75 0.875 0.875 1.625 0.25 0.5 0.75 0.875 0.875 1.625 0.25 0.5 0.75 0.875 0.875 1.625 0.25 0.5 0.75 0.875 0.875 1.625 0.25 0.5 0.75 0.875 0.875 1.625 0.25 0.5 0.75 0.875 0.875 1.625 0.25 0.5 0.75 0.875 1.125 1.625 0.5 0.5 0.75 0.875 1.125 1.625 0.5 0.5 0.75 0.875 1.125 1.625 0.5 0.5 0.75 0.875 1.125 1.625 0.5 0.5 0.75 0.875 1.125 1.625 0.5 0.5 0.75 0.875 1.125 1.625 0.5 0.5 0.75 0.875 1.125 1.625 0.5 0.5 0.875 0.875 1.125 1.625 0.5 0.5 0.875 0.875 1.125 1.625 0.5 0.5 0.875 0.875 1.125 1.625 0.5 0.5 0.875 0.875 1.375 1.625 0.5 0.5 0.875 0.875 1.375 1.625 0.5 0.5 0.875 0.875 1.375 1.625 0.5 0.5 0.875 0.875 1.375 1.625 0.5 0.5 0.875 0.875 1.375 1.625 0.5 0.5 0.875 0.875 1.375 1.625 0.5 0.5 0.875 0.875 1.375 1.625l1.625 1.625 1.625 1.625c0.5 0.5 1.125 0.875 1.625 1.625 0.5 0.5 1.125 0.875 1.625 1.625 0.5 0.5 1.125 0.875 1.625 1.625 0.5 0.5 1.125 0.875 1.625 1.625 0.5 0.5 1.125 0.875 1.875 1.625 0.75 0.5 1.125 0.875 1.875 1.625 0.75 0.5 1.125 0.875 1.875 1.625 0.75 0.5 1.125 0.875 1.875 1.625 0.75 0.5 1.375 0.875 1.875 1.625 0.75 0.5 1.375 0.875 1.875 1.625 0.75 0.5 1.375 0.875 2.125 1.625 0.75 0.5 1.375 0.875 2.125 1.625 0.75 0.5 1.375 0.875 2.125 1.625 0.75 0.5 1.375 0.875 2.125 1.625 0.75 0.5 1.375 0.875 2.375 1.625 0.75 0.5 1.625 0.875 2.375 1.625 0.75 0.5 1.625 0.875 2.375 1.625 0.75 0.5 1.625 0.875 2.375 1.625 0.875 0.5 1.625 0.875 2.5 1.625 0.875 0.5 1.625 0.875 2.5 1.625 0.875 0.5 1.875 0.875 2.5 1.625 0.875 0.5 1.875 0.875 2.75 1.625 0.875 0.5 1.875 0.875 2.75 1.625 0.875 0.5 1.875 0.875 3 1.625 0.875 0.5 2.125 0.875 3 1.625 1.125 0.5 2.125 0.875 3.25 1.625 1.125 0.5 2.125 0.875 3.25 1.625 1.125 0.5 2.375 0.875 3.5 1.625 1.125 0.5 2.375 0.875 3.75 1.625 1.125 0.5 2.5 0.875 3.75 1.625 1.375 0.5 2.5 0.875 4 1.625 1.375 0.5 2.75 0.875 4.25 1.625 1.375 0.5 3 0.875 4.375 1.625 1.625 0.5 3.25 0.875 4.875 1.625 1.625 0.5 3.5 0.875 5.125 1.625 1.875 0.5 3.75 0.875 5.875 1.625 2.125 0.5 4.25 1.125 6.25 1.625 2.375 0.5 4.875 1.125 7.25 1.625 2.75 0.5 5.875 1.125 8.625 1.625 3.75 0.75 7.5 1.125 11.125 1.625 9.25 1.125 19.125 1.625 28.875 1.625h1.375c9.25 0 18.375-0.75 27.5-1.625 3.75-0.5 7.25-0.875 10.75-1.625 2.75-0.5 5.625-0.875 8.375-1.625 2.375-0.5 4.625-0.875 7-1.625 2.125-0.5 4.25-0.875 6.25-1.625 1.875-0.5 3.75-0.875 5.625-1.625 1.625-0.5 3.5-0.875 5.125-1.625 1.625-0.5 3.25-0.875 4.625-1.625 1.375-0.5 3-0.875 4.375-1.625 1.375-0.5 2.75-0.875 4.25-1.625 1.375-0.5 2.5-0.875 4-1.625 1.125-0.5 2.5-0.875 3.75-1.625 1.125-0.5 2.375-0.875 3.5-1.625 1.125-0.5 2.375-0.875 3.5-1.625 1.125-0.5 2.125-0.875 3.25-1.625 1.125-0.5 2.125-0.875 3.25-1.625 0.875-0.5 2.125-0.875 3-1.625 0.875-0.5 1.875-0.875 3-1.625 0.875-0.5 1.875-0.875 2.75-1.625 0.875-0.5 1.875-0.875 2.75-1.625 0.875-0.5 1.875-0.875 2.5-1.625 0.875-0.5 1.625-0.875 2.5-1.625 0.875-0.5 1.625-0.875 2.5-1.625 0.875-0.5 1.625-0.875 2.5-1.625 0.75-0.5 1.625-0.875 2.375-1.625 0.75-0.5 1.625-0.875 2.375-1.625 0.75-0.5 1.375-0.875 2.375-1.625 0.75-0.5 1.375-0.875 2.125-1.625 0.75-0.5 1.375-0.875 2.125-1.625 0.75-0.5 1.375-0.875 2.125-1.625 0.75-0.5 1.375-0.875 2.125-1.625 0.75-0.5 1.375-0.875 1.875-1.625 0.75-0.5 1.375-0.875 1.875-1.625 0.75-0.5 1.125-0.875 1.875-1.625 0.75-0.5 1.125-0.875 1.875-1.625 0.75-0.5 1.125-0.875 1.875-1.625 0.75-0.5 1.125-0.875 1.875-1.625 0.5-0.5 1.125-0.875 1.625-1.625 0.5-0.5 1.125-0.875 1.625-1.625 0.5-0.5 1.125-0.875 1.625-1.625 0.5-0.5 1.125-0.875 1.625-1.625 0.5-0.5 1.125-0.875 1.625-1.625l1.625-1.625 1.625-1.625c0.5-0.5 0.875-0.875 1.375-1.625 0.5-0.5 0.875-0.875 1.375-1.625 0.5-0.5 0.875-0.875 1.375-1.625 0.5-0.5 0.875-0.875 1.375-1.625 0.5-0.5 0.875-0.875 1.375-1.625 0.5-0.5 0.875-0.875 1.375-1.625 0.5-0.5 0.875-0.875 1.375-1.625 0.5-0.5 0.875-0.875 1.375-1.625 0.5-0.5 0.875-0.875 1.125-1.625 0.5-0.5 0.75-0.875 1.125-1.625 0.5-0.5 0.875-0.875 1.125-1.625 0.5-0.5 0.75-0.875 1.125-1.625 0.5-0.5 0.75-0.875 1.125-1.625 0.5-0.5 0.75-0.875 1.125-1.625 0.5-0.5 0.75-0.875 1.125-1.625 0.5-0.5 0.75-0.875 1.125-1.625 0.5-0.5 0.75-0.875 1.125-1.625 0.5-0.5 0.75-0.875 0.875-1.625 0.25-0.5 0.75-0.875 0.875-1.625 0.25-0.5 0.75-0.875 0.875-1.625 0.25-0.5 0.75-0.875 0.875-1.625 0.25-0.5 0.75-0.875 0.875-1.625 0.25-0.5 0.75-0.875 0.875-1.625 0.25-0.5 0.75-0.875 0.875-1.625 0.25-0.5 0.5-0.875 0.875-1.625 0.25-0.5 0.75-0.875 0.875-1.625 0.25-0.5 0.5-0.875 0.875-1.625 0.25-0.5 0.5-0.875 0.875-1.625 0.25-0.5 0.5-0.875 0.875-1.625 0.25-0.5 0.5-0.875 0.75-1.625 0.25-0.5 0.5-0.875 0.75-1.625 0.25-0.5 0.5-0.875 0.75-1.625 0.25-0.5 0.5-0.875 0.75-1.625 0.25-0.5 0.5-0.875 0.75-1.625 0.25-0.5 0.5-0.875 0.75-1.625 0.25-0.5 0.5-0.875 0.75-1.625 0.25-0.5 0.5-0.875 0.75-1.625 0.25-0.5 0.5-0.875 0.75-1.625 0.25-0.5 0.5-0.875 0.75-1.625 0.25-0.5 0.5-0.875 0.75-1.625 0.25-0.5 0.5-0.875 0.5-1.625 0.25-0.5 0.5-0.875 0.5-1.625 0.25-0.5 0.5-0.875 0.5-1.625 0.25-0.5 0.25-0.875 0.5-1.625 0.25-0.5 0.25-0.875 0.5-1.625 0.25-0.5 0.25-0.875 0.5-1.625 0.25-0.5 0.25-0.875 0.5-1.625 0.25-0.5 0.25-0.875 0.5-1.625 0.25-0.5 0.25-0.875 0.5-1.625 0.25-0.5 0.25-0.875 0.5-1.625 0.25-0.5 0.25-0.875 0.5-1.625 0.25-0.5 0.25-0.875 0.5-1.625 0.25-0.5 0.25-0.875 0.5-1.625 0.25-0.5 0.25-0.875 0.5-1.625 0.25-0.5 0.25-0.875 0.5-1.625 0-0.5 0.25-0.875 0.25-1.625 0-0.5 0.25-0.875 0.25-1.625 0-0.5 0.25-0.875 0.25-1.625 0-0.5 0.25-0.875 0.25-1.625 0-0.5 0.25-0.875 0.25-1.625 0-0.5 0.25-0.875 0.25-1.625 0-0.5 0.25-0.875 0.25-1.625 0-0.5 0.25-0.875 0.25-1.625 0-0.5 0.25-0.875 0.25-1.625 0-0.5 0-0.875 0.25-1.625 0-0.5 0-0.875 0.25-1.625 0-0.5 0-0.875 0.25-1.625 0-0.5 0-0.875 0.25-1.625 0-0.5 0-0.875 0.25-1.625v-11.375h-3.125zM589.714646 384c-12.625 0-25.375-12.75-25.375-25.375 0-12.75 12.75-25.375 25.375-25.375 19.375 0 31.875 12.625 31.875 25.375-0.125 12.625-12.75 25.375-31.875 25.375zM729.589646 384c-12.625 0-25.375-12.75-25.375-25.375 0-12.75 12.75-25.375 25.375-25.375 19.125 0 31.875 12.625 31.875 25.375 0 12.625-12.75 25.375-31.875 25.375zM328.714646 568.75c-19.125 0-38.375-12.625-38.375-31.625 0-19.125 19.375-31.875 38.375-31.875s31.875 12.75 31.875 31.875-12.875 31.625-31.875 31.625zM506.964646 568.75c-19.125 0-38.125-12.625-38.125-31.625 0-19.125 19.125-31.875 38.125-31.875 19.125 0 31.875 12.75 31.875 31.875s-12.875 31.625-31.875 31.625z"  horiz-adv-x="1059" />
+
+    
+    <glyph glyph-name="shrink-right" unicode="&#58984;" d="M52.294-28.71900000000005h899.793c16.546 0 29.999 13.405 29.999 29.999v59.974c-0.013 16.562-13.436 29.985-29.998 29.999h-899.795c-16.57 0-29.999-13.429-29.999-29.999v-59.974c0-16.617 13.429-29.999 29.999-29.999zM952.087 451.165h-479.884c-16.57 0-29.999-13.405-29.999-29.999v-59.974c0 0 0 0 0 0 0-16.572 13.428-30.01 29.997-30.022h479.885c16.571 0.013 29.999 13.448 29.999 30.022 0 0 0 0 0 0v59.974c0 16.593-13.429 29.999-29.999 29.999zM52.294 691.0840000000001h899.793c16.554 0.013 29.972 13.423 29.999 29.974v59.999c0 16.57-13.429 29.999-29.999 29.999h-899.793c-16.57 0-29.999-13.429-29.999-29.999v-59.997c0-16.546 13.429-29.975 29.999-29.975zM45.183 383.53499999999997l239.919-150.598v301.196l-239.919-150.598z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="spread-left" unicode="&#58987;" d="M942.974 770.924h-843.556c-15.513 0-28.124-12.567-28.124-28.124v-56.226c0.012-15.527 12.596-28.111 28.123-28.124h843.559c15.534 0 28.124 12.59 28.124 28.124v56.226c0 15.578-12.59 28.124-28.124 28.124zM99.418 321.033h449.891c15.534 0 28.124 12.567 28.124 28.124v56.226c0 0 0 0 0 0 0 15.537-12.589 28.134-28.122 28.146h-449.892c-15.534-0.012-28.124-12.608-28.124-28.146 0 0 0 0 0 0v-56.226c0-15.556 12.59-28.124 28.124-28.124zM942.974 96.10900000000004h-843.556c-15.519-0.012-28.099-12.584-28.124-28.101v-56.249c0-15.534 12.59-28.124 28.124-28.124h843.556c15.534 0 28.124 12.59 28.124 28.124v56.248c0 15.513-12.59 28.103-28.124 28.102zM949.641 384.436l-224.924 141.186v-282.37l224.924 141.186z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="camera" unicode="&#58976;" d="M884.3 648.6H704.2L679.5 698l-0.2 0.4c-1.9 3.6-3.6 6.9-5.1 9.9-12 23.4-21.5 41.9-54.1 41.9H416.7c-32.9 0-43.7-21.3-55.1-43.8-1.3-2.6-2.7-5.3-4.2-8.1l-24.8-49.7H152.4c-34 0-61.7-27.7-61.7-61.7v-488c0-34 27.7-61.7 61.7-61.7h731.9c34 0 61.7 27.7 61.7 61.7v488c0 34-27.7 61.7-61.7 61.7zM904 98.89999999999998c0-10.8-8.8-19.7-19.7-19.7H152.4c-10.8 0-19.7 8.8-19.7 19.7v488c0 10.8 8.8 19.7 19.7 19.7h206.1l36.2 72.5c1.5 2.9 2.9 5.7 4.3 8.3 10.6 20.8 11.1 20.8 17.7 20.8H620c4.6 0 5.8-0.6 5.8-0.6 2-1.2 7.2-11.2 10.9-18.5 1.6-3.1 3.3-6.5 5.3-10.1l36.2-72.4h206.1c10.8 0 19.7-8.8 19.7-19.7v-488zM525.5 565.5c-123.5 0-223.6-100.1-223.6-223.6S402 118.20000000000005 525.5 118.20000000000005s223.7 100.1 223.7 223.7c0 123.5-100.2 223.6-223.7 223.6z m0-402.5c-98.8 0-178.9 80.1-178.9 178.9 0 98.8 80.1 178.9 178.9 178.9 98.8 0 178.9-80.1 178.9-178.9 0-98.8-80.1-178.9-178.9-178.9z m246 402.5v-44.7H861v44.7h-89.5z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="note" unicode="&#58990;" d="M987.2 384.36L512.43 859.13a84.75 84.75 0 0 1-65 24.71L111.55 864.09a84.83 84.83 0 0 1-79.65-79.65L12.15 448.57a84.57 84.57 0 0 1 24.69-65l474.8-474.8a84.91 84.91 0 0 1 119.93 0L987.2 264.41999999999996a84.9 84.9 0 0 1 0 119.94z m-39.28-80.66L592.29-51.91999999999996a29.31 29.31 0 0 0-41.37 0L76.1 422.9a29.22 29.22 0 0 0-8.49 22.38l19.74 335.88a29.29 29.29 0 0 0 27.48 27.48l335.9 19.75a29.32 29.32 0 0 0 22.38-8.52l474.8-474.8a29.31 29.31 0 0 0 0.01-41.37zM236.86 659.14c-50.92-50.95-50.92-133.8 0-184.72a130.61 130.61 0 1 1 184.71 184.72c-50.89 50.86-133.77 50.86-184.71 0zM382.29 513.7c-28.38-28.38-77.78-28.38-106.15 0a75.08 75.08 0 1 0 106.15 0z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="refresh" unicode="&#58985;" d="M928 810.666667c-18.133333 0-32-13.866667-32-32v-164.266667C816 747.733333 669.866667 832 512 832 264.533333 832 64 631.4666669999999 64 384s200.533333-448 448-448c230.4 0 422.4 172.8 445.866667 402.133333 2.133333 17.066667-10.666667 33.066667-28.8 35.2-17.066667 2.133333-33.066667-10.666667-35.2-28.8C873.6 148.26666699999998 709.333333 0 512 0c-212.266667 0-384 171.733333-384 384s171.733333 384 384 384c137.6 0 264.533333-74.666667 332.8-192H693.333333c-18.133333 0-32-13.866667-32-32s13.866667-32 32-32h266.666667V778.666667c0 18.133333-14.933333 32-32 32z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="female" unicode="&#58977;" d="M774.4 800c-48 35.2-108.8 51.2-172.8 51.2-105.6 0-208-51.2-268.8-150.4-89.6-134.4-57.6-313.6 60.8-416l-32-51.2-188.8 121.6S128 384 108.8 352c-22.4-35.2 22.4-64 22.4-64l188.8-121.6-105.6-163.2s-19.2-32 16-51.2c38.4-22.4 57.6 12.8 57.6 12.8l102.4 160 185.6-121.6s48-28.8 70.4 6.4c19.2 28.8-25.6 57.6-25.6 57.6L432 192l32 48c44.8-22.4 92.8-32 137.6-32 105.6 0 208 51.2 268.8 150.4 96 147.2 51.2 345.6-96 441.6z m35.2-400c-44.8-67.2-118.4-108.8-201.6-108.8-44.8 0-92.8 12.8-131.2 38.4-112 73.6-147.2 220.8-73.6 332.8 44.8 64 121.6 105.6 201.6 108.8 44.8 0 92.8-12.8 131.2-38.4 112-73.6 147.2-220.8 73.6-332.8z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="male" unicode="&#58978;" d="M889.6 800h-240s-35.2 0-38.4-41.6c0-19.2 16-38.4 38.4-38.4h140.8l-179.2-179.2C556.8 582.4 489.6 608 416 608 240 608 96 464 96 288s144-320 320-320 320 144 320 320c0 73.6-25.6 140.8-67.2 195.2l179.2 179.2v-140.8c0-22.4 19.2-38.4 38.4-38.4 22.4 0 38.4 19.2 38.4 41.6V764.8h3.2C924.8 800 889.6 800 889.6 800zM416 48c-131.2 0-236.8 105.6-236.8 236.8 0 131.2 105.6 236.8 236.8 236.8s236.8-105.6 236.8-236.8c0-131.2-105.6-236.8-236.8-236.8z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="screen-restore" unicode="&#59224;" d="M582.6 454.6v320h50V540l274 274 35.4-35.4-274-274h234.6v-50h-320zM117.4-46l274 274v-234.6h50v320h-320v-50H356l-274-274 35.4-35.4zM132 764h302V814H82v-352h50V764z m760-760H590v-50h352V306h-50v-302z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="password" unicode="&#58995;" d="M519.2 343.29999999999995c-41.1 0-74.4-33.3-74.4-74.4 0-29.7 17.5-55 42.5-67.1v-81.9c0-17.6 14.3-31.9 31.9-31.9 17.6 0 31.9 14.3 31.9 31.9v81.9c25.1 12 42.5 37.4 42.5 66.9 0 41.3-33.2 74.6-74.4 74.6zM827.6-62.10000000000002H189.4c-35.9 0-65.1 29.2-65.1 65.1V428.4c0 35.9 29.2 65.1 65.1 65.1h638.2c17.3 0 33.7-6.7 46-19.1 12.3-12.3 19.1-28.7 19.1-46V3c0-35.9-29.2-65.1-65.1-65.1zM231.9 427.2c-34.8 0-41.3-6.6-41.3-41.3v-340.4c0-34.8 6.6-41.3 41.3-41.3h553.2c34.8 0 41.3 6.6 41.3 41.3V385.9c0 34.8-6.6 41.3-41.3 41.3H231.9zM519.2 86.70000000000005c-18.3 0-33.2 14.8-33.2 33.2V201c-26.3 12.8-42.6 38.8-42.6 67.8 0 41.8 33.9 75.7 75.7 75.7s75.7-33.9 75.7-75.7c0-29-16.3-55-42.5-67.8v-81.1c0.1-18.2-14.9-33.2-33.1-33.2zM519.2 342c-40.4 0-73.2-32.9-73.2-73.2 0-28.3 16.1-53.6 41.9-65.8l0.7-0.4V120c0-17 13.7-30.7 30.7-30.7S550 103.10000000000002 550 120v82.6l0.7 0.4c25.8 12.3 41.9 37.5 41.9 65.8-0.2 40.4-33.1 73.2-73.4 73.2zM207 523.1c-9.1 0-17.6 3.5-23.9 10-6.4 6.4-10 15-10 23.9v2h-0.2l0.2 1.4c0.1 0.5 0.1 0.9 0.2 1.4l0.2 1c0.1 0.6 0.2 1.4 0.4 2 15.3 75.7 57 144.2 117.2 193 29.9 24.2 63.4 43 99.8 56 37.5 13.3 77 20.2 117.5 20.2 61 0 120.8-16.3 173-47.2 50.6-29.9 93-72.8 122.5-123.8 4-5.6 6.1-12.2 6.1-19.2 0-18.3-15-33.3-33.3-33.3-13.2 0-25.1 7.7-30.4 19.8-49.2 84.6-140.4 137.4-238 137.4-128.1 0-238.2-87.1-267.6-211.8v-0.2c-0.7-18.4-15.4-32.6-33.7-32.6z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="senior" unicode="&#58996;" d="M719.9 249.39999999999998L514.7 379.5V485.1C615.6 419 731.5 344 731.5 344s139.2-45.6 139.2 106.5c0 93-172.5 112.1-197.2 11.8l-69.6 47.3s24.2 101.5 162.4 106.5c138.2 4.9 192-94.6 190.9-199.6-1.2-104.7-136-198.3-237.3-167.1zM561 414c-4-19-23-33.7-47.6-33.7l-6.9 4.3-217.3 137.8S171 555.2 160.8 439c-10.2-116.1 147.4-129.5 186.8-23.8l81.7-47.6s-65.1-119.1-198.5-119.1C97.3 248.5 0.6 423.8 114 546.3c113.5 122.4 218.6 64.6 257 35.7 16.4-12.4 85.3-57.9 158.6-105.9l3.1-2.4c28.3-18.2 33.4-35.6 28.3-59.7zM434.1 149.70000000000005h212c16.7 0 30.3-13.6 30.3-30.3v-15.1c0-16.7-13.6-30.3-30.3-30.3h-212c-16.7 0-30.3 13.6-30.3 30.3v15.1c0 16.8 13.6 30.3 30.3 30.3z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="theme" unicode="&#58986;" d="M512 800C229.696 800 0 570.304 0 288c0-90.368 30.304-174.496 85.344-236.896 55.264-62.624 129.152-97.12 208.128-97.12 81.568 0 161.536 36.832 231.264 106.592l2.272 2.496c65.792 81.472 132.896 121.056 205.088 121.056 46.72 0 89.216-15.872 126.688-29.92 30.336-11.328 56.576-21.12 81.216-21.12C1024 133.08799999999997 1024 241.664 1024 288c0 282.304-229.696 512-512 512z m428-602.912c-13.088 0-35.296 8.288-58.784 17.088-40.48 15.136-90.848 33.952-149.12 33.952-92.352 0-175.328-46.944-253.76-143.456-57.184-56.704-121.056-86.688-184.832-86.688-60.352 0-117.216 26.784-160.128 75.456C88.64 144.12800000000004 64 213.216 64 288 64 535.04 264.96 736 512 736s448-200.96 448-448c0-27.328-1.952-90.912-20-90.912zM800.704 379.93600000000004m-64 0a64 64 0 1 1 128 0 64 64 0 1 1-128 0ZM457.024 582.624m-64 0a64 64 0 1 1 128 0 64 64 0 1 1-128 0ZM672.704 555.9359999999999m-64 0a64 64 0 1 1 128 0 64 64 0 1 1-128 0ZM291.392 443.936m-64 0a64 64 0 1 1 128 0 64 64 0 1 1-128 0ZM278.4 197.24800000000005m-96 0a96 96 0 1 1 192 0 96 96 0 1 1-192 0Z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="tread" unicode="&#59077;" d="M860.8 172.79999999999995l6.4-57.6-6.4 57.6c12.8 0 25.6 3.2 35.2 12.8 6.4 9.6 6.4 22.4 3.2 32l57.6 12.8-57.6-12.8L800 553.6c-6.4 28.8-25.6 51.2-48 64-9.6 6.4-22.4 9.6-32 9.6H182.4c-22.4 3.2-41.6-6.4-51.2-25.6-6.4-9.6-6.4-19.2-9.6-28.8v-342.4c0-19.2 9.6-38.4 28.8-48 6.4-3.2 12.8-6.4 19.2-6.4h192l19.2-25.6 147.2-188.8c6.4-9.6 19.2-12.8 28.8-9.6 16 3.2 25.6 19.2 22.4 35.2l-9.6 118.4-6.4 67.2h297.6z m-233.6-57.6l9.6-128c3.2-28.8-9.6-54.4-28.8-73.6-35.2-32-92.8-28.8-124.8 6.4l-156.8 195.2H179.2c-19.2 0-38.4 6.4-57.6 16-35.2 19.2-57.6 57.6-57.6 99.2V572.8c0 19.2 6.4 38.4 16 57.6 19.2 38.4 57.6 60.8 99.2 54.4h537.6c67.2-3.2 121.6-48 137.6-112l102.4-339.2c6.4-28.8 3.2-57.6-12.8-80-19.2-22.4-48-38.4-76.8-38.4h-240zM304 627.2v-451.2h57.6V627.2H304z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="praise" unicode="&#59078;" d="M860.8 595.2h-297.6l6.4 67.2 9.6 118.4c3.2 16-6.4 32-22.4 35.2-9.6 3.2-22.4 0-28.8-9.6l-147.2-188.8-19.2-25.6h-192c-6.4 0-12.8-3.2-19.2-6.4-19.2-9.6-28.8-28.8-28.8-48v-342.4c0-9.6 3.2-22.4 9.6-28.8 9.6-19.2 28.8-28.8 48-25.6h537.6c12.8 0 22.4 3.2 32 9.6 25.6 12.8 44.8 35.2 48 64l102.4 336 57.6-12.8-57.6 12.8c3.2 9.6 0 22.4-3.2 32-9.6 6.4-22.4 12.8-35.2 12.8l6.4 57.6-6.4-57.6z m-233.6 57.6h240c28.8 0 57.6-12.8 76.8-38.4 16-22.4 19.2-54.4 12.8-80l-102.4-339.2c-16-64-70.4-108.8-137.6-112H179.2c-41.6-3.2-80 19.2-99.2 54.4-9.6 19.2-16 38.4-16 57.6V537.6c0 41.6 22.4 80 57.6 99.2 19.2 9.6 38.4 12.8 57.6 16h144L480 848c32 35.2 89.6 38.4 124.8 6.4 19.2-19.2 32-44.8 28.8-73.6l-6.4-128z m-323.2-512h57.6V592H304v-451.2z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="star-fill" unicode="&#58968;" d="M752-43.200000000000045c-9.6 0-20.8 3.2-30.4 8l-208 104-209.6-104c-20.8-11.2-48-9.6-67.2 4.8-19.2 14.4-30.4 40-25.6 64l43.2 224L89.6 411.2C72 428.8 65.6 456 72 478.4c8 24 27.2 41.6 52.8 44.8l228.8 41.6 102.4 208c11.2 22.4 33.6 36.8 57.6 36.8s48-14.4 57.6-36.8l102.4-208 228.8-40c24-3.2 44.8-20.8 51.2-44.8 8-24 1.6-49.6-16-67.2L772.8 257.6l41.6-224c4.8-25.6-6.4-49.6-25.6-64-9.6-8-22.4-12.8-36.8-12.8z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="rate" unicode="&#59003;" d="M959.008 489.984l-308 47.008L512 832 372.992 536.992l-308-47.008 223.008-228-52.992-324L512 90.976l276.992-152.992-52.992 324zM512 156L304 39.00800000000004l40 235.008-179.008 182.016 242.016 32 104.992 224 104-224 240.992-34.016L680 273.024l36.992-235.008z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="template-1" unicode="&#58966;" d="M512 384zM43.52 601.6l409.6-176.64c58.88-30.72 110.08 0 110.08 0l414.72 174.08 2.56 2.56c10.24 5.12 15.36 15.36 15.36 28.16 0 15.36-10.24 28.16-23.04 30.72L563.2 837.12c-56.32 23.04-97.28 0-97.28 0L46.08 660.48c-12.8-5.12-20.48-17.92-20.48-30.72s7.68-23.04 17.92-28.16z m0 0M512 222.72000000000003c-2.56 0-7.68 0-10.24 2.56l-486.4 215.04c-12.8 5.12-17.92 20.48-12.8 33.28 5.12 12.8 20.48 17.92 33.28 12.8L512 276.48 988.16 486.4c12.8 5.12 28.16 0 33.28-12.8 5.12-12.8 0-28.16-12.8-33.28l-486.4-215.04c-2.56-2.56-7.68-2.56-10.24-2.56zM512 71.67999999999995c-2.56 0-7.68 0-10.24 2.56l-486.4 215.04c-12.8 5.12-17.92 20.48-12.8 33.28 5.12 10.24 20.48 17.92 33.28 10.24L512 125.44000000000005 988.16 332.79999999999995c12.8 5.12 28.16 0 33.28-12.8 5.12-12.8 0-28.16-12.8-33.28l-486.4-215.04H512zM512-79.36000000000001c-2.56 0-7.68 0-10.24 2.56l-486.4 215.04c-12.8 5.12-17.92 20.48-12.8 33.28 5.12 12.8 20.48 17.92 33.28 12.8L512-25.600000000000023l476.16 209.92c12.8 5.12 28.16 0 33.28-12.8 5.12-12.8 0-28.16-12.8-33.28l-486.4-215.04c-2.56-2.56-7.68-2.56-10.24-2.56z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="vercode" unicode="&#59001;" d="M513.807059-128C351.171765-128 58.428235 126.19294100000002 54.211765 376.16941199999997V662.287059a93.364706 93.364706 0 0 0 81.317647 88.545882 570.428235 570.428235 0 0 1 163.237647 40.357647A393.336471 393.336471 0 0 1 446.945882 872.508235a101.797647 101.797647 0 0 0 120.470589 5.421177A629.458824 629.458824 0 0 1 716.8 792.395294a1255.303529 1255.303529 0 0 1 169.863529-38.550588 98.785882 98.785882 0 0 0 79.510589-90.955294 2911.171765 2911.171765 0 0 0-3.011765-291.538824C924.611765 49.09176500000001 672.828235-128 513.807059-128z m0 963.764706a39.152941 39.152941 0 0 1-24.696471-7.830588A438.512941 438.512941 0 0 0 319.247059 734.569412a608.376471 608.376471 0 0 0-180.705883-43.369412 33.731765 33.731765 0 0 1-24.094117-30.117647v-283.708235C118.663529 155.10588199999995 389.722353-67.76470600000005 513.807059-67.76470600000005s354.183529 148.178824 391.529412 444.536471c9.035294 175.887059 0 281.901176 0 283.105882a38.550588 38.550588 0 0 1-29.515295 33.731765 1287.830588 1287.830588 0 0 0-180.705882 41.562353A676.442353 676.442353 0 0 0 536.094118 829.741176a37.345882 37.345882 0 0 1-24.094118 6.02353zM784.865882 479.171765L487.905882 198.47529399999996a40.357647 40.357647 0 0 0-49.392941-4.818823l-7.830588 6.625882-161.430588 171.068235a40.357647 40.357647 0 1 0 60.235294 55.416471l133.722353-141.552941 267.444706 252.988235a40.357647 40.357647 0 1 0 55.41647-60.235294"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="cellphone" unicode="&#59000;" d="M785.066667 896H238.933333a102.4 102.4 0 0 1-102.4-102.4v-819.2a102.4 102.4 0 0 1 102.4-102.4h546.133334a102.4 102.4 0 0 1 102.4 102.4V793.6a102.4 102.4 0 0 1-102.4 102.4zM238.933333 827.733333h546.133334a34.133333 34.133333 0 0 0 34.133333-34.133333v-648.533333H204.8V793.6a34.133333 34.133333 0 0 0 34.133333 34.133333z m546.133334-887.466666H238.933333a34.133333 34.133333 0 0 0-34.133333 34.133333v102.4h614.4v-102.4a34.133333 34.133333 0 0 0-34.133333-34.133333zM512 8.53333299999997m-34.133333 0a34.133333 34.133333 0 1 1 68.266666 0 34.133333 34.133333 0 1 1-68.266666 0ZM426.666667 725.333333h170.666666a17.066667 17.066667 0 0 1 0 34.133334h-170.666666a17.066667 17.066667 0 0 1 0-34.133334z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="print" unicode="&#58989;" d="M843.946667 603.733333h-47.36V725.333333a90.026667 90.026667 0 0 1-94.72 85.333334H312.32a81.493333 81.493333 0 0 1-85.333333-85.333334v-121.6H170.666667a81.493333 81.493333 0 0 1-85.333334-85.333333v-325.12a89.173333 89.173333 0 0 1 85.333334-93.866667h56.746666v-52.48a89.6 89.6 0 0 1 89.6-89.6h389.973334a89.6 89.6 0 0 1 89.6 89.6v52.48h47.36a97.706667 97.706667 0 0 1 94.72 93.866667V518.4a90.026667 90.026667 0 0 1-94.72 85.333333zM279.466667 725.333333a30.72 30.72 0 0 0 32.853333 33.706667h389.546667c18.773333 0 42.666667-11.52 42.666666-33.706667v-121.6H279.466667z m465.066666-678.4a37.546667 37.546667 0 0 0-37.546666-37.973333H317.013333a37.546667 37.546667 0 0 0-37.546666 37.973333v170.666667a37.546667 37.546667 0 0 0 37.546666 38.4h389.973334a37.546667 37.546667 0 0 0 37.546666-37.973333z m142.506667 146.346667a45.653333 45.653333 0 0 0-42.666667-42.666667h-47.786666v66.133334a89.6 89.6 0 0 1-89.6 89.6H317.013333a89.6 89.6 0 0 1-89.6-89.6v-65.28H170.666667a37.546667 37.546667 0 0 0-33.28 42.666666v324.266667A31.146667 31.146667 0 0 0 170.666667 552.106667h673.28c19.2 0 42.666667-11.52 42.666666-33.706667z m-640 281.173333h-37.546667a13.226667 13.226667 0 0 0 0 26.026667h38.826667a13.226667 13.226667 0 1 0 0-26.026667z m94.293333 0H298.666667a13.226667 13.226667 0 1 0 0 26.026667h42.666666a13.226667 13.226667 0 0 0 0-26.026667z m426.666667-116.48H248.32a13.226667 13.226667 0 0 0 0 26.026667H768a13.226667 13.226667 0 0 0 0-26.026667z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="cols" unicode="&#58896;" d="M128 448h384V832H128z m64 320h256v-256H192zM576 832v-384h384V832z m320-320H640V768h256zM192 384h64v-384H192zM384 384h64v-384H384zM640 384h64v-384H640zM832 384h64v-384h-64z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="export" unicode="&#59005;" d="M896.4374528 479.830016c0 26.673152-21.6236032 48.2967552-48.2967552 48.2967552H630.8069376c-26.673152 0-48.2967552-21.6236032-48.2967552-48.2967552v-83.04831147H384.69522773l-2.71428266 5.36849067c-41.336832 87.44686933-35.95195733 204.128256 150.601728 199.94487467v-108.91537067l172.19037866 164.757504L532.58267307 822.7110912v-106.57245867c-228.64418133 5.70709333-263.651328-183.517184-157.433856-314.01028266l4.6891008-5.34664534h-88.46595414c-26.673152 0-48.2967552-21.6236032-48.2967552-48.2967552v-66.78882986h-98.43616426c-26.673152 0-40.4258816-21.6236032-30.71781547-48.2967552l79.10304427-217.33485227c9.70806613-26.673152 39.20145067-48.2967552 65.87460266-48.2967552h603.70670934c23.75898453 0 37.2506624 17.16169387 33.05745066 39.76178347 0.4980736 2.77108053 0.77441707 5.619712 0.77441707 8.53497173v463.765504z m-60.37067093-306.4528896l-21.8464256 60.02223787c-9.70806613 26.673152-39.20145067 48.2967552-65.87460267 48.2967552H303.44697173v30.56708266c0 13.336576 10.81125547 24.14783147 24.14783147 24.14783147h315.28605013v107.1972352c0 13.336576 10.81125547 24.14783147 24.14783147 24.14783147h144.88917333c13.336576 0 24.14783147-10.81125547 24.14783147-24.14783147v-270.2311424z"  horiz-adv-x="1024" />
+
+    
+    <glyph glyph-name="slider" unicode="&#59156;" d="M228.7 683.9v-66.7H112v66.7h116.7z m333.2-266.6v-66.7H112v66.7h449.9zM295.4 150.60000000000002V84H112v66.7h183.4v-0.1z m116.6 600c9 0 16.8-3.3 23.5-9.9 6.5-6.5 9.9-14.5 9.9-23.5v-133.3c0-9-3.3-16.8-9.9-23.5-6.5-6.5-14.5-9.9-23.5-9.9H278.8c-9 0-16.8 3.3-23.5 9.9-6.5 6.5-9.9 14.3-9.9 23.5V717.1c0 9 3.3 16.8 9.9 23.5 6.5 6.5 14.3 9.9 23.5 9.9h133.3v0.1h-0.1z m66.7-533.3c9 0 16.8-3.3 23.5-9.9 6.5-6.5 9.9-14.5 9.9-23.5v-133.3c0-9-3.3-16.8-9.9-23.5-6.5-6.5-14.5-9.9-23.5-9.9H345.3c-9 0-16.8 3.3-23.5 9.9-6.5 6.5-9.9 14.5-9.9 23.5V183.89999999999998c0 9 3.3 16.8 9.9 23.5 6.5 6.5 14.3 9.9 23.5 9.9h133.4v0.1zM912 683.9v-66.7H462.1v66.7H912z m0-533.3V84H528.6v66.7h383.3v-0.1h0.1zM745.2 483.9c9 0 16.8-3.3 23.5-9.9 6.5-6.5 9.9-14.5 9.9-23.5v-133.3c0-9-3.3-16.8-9.9-23.5-6.5-6.5-14.5-9.9-23.5-9.9H612c-9 0-16.8 3.3-23.5 9.9-6.5 6.5-9.9 14.3-9.9 23.5V450.6c0 9 3.3 16.8 9.9 23.5 6.5 6.5 14.5 9.9 23.5 9.9l133.2-0.1zM912 417.3v-66.7H795.3v66.7H912z"  horiz-adv-x="1024" />
+
+    
+
+
+  </font>
+</defs></svg>
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/font/iconfont.ttf b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/font/iconfont.ttf
new file mode 100644
index 0000000..0c8b0a5
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/font/iconfont.ttf
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/font/iconfont.woff b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/font/iconfont.woff
new file mode 100644
index 0000000..786bb2a
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/font/iconfont.woff
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/0.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/0.gif
new file mode 100644
index 0000000..a63f0d5
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/0.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/1.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/1.gif
new file mode 100644
index 0000000..b2b78b2
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/1.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/10.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/10.gif
new file mode 100644
index 0000000..556c7e3
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/10.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/11.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/11.gif
new file mode 100644
index 0000000..2bfc58b
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/11.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/12.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/12.gif
new file mode 100644
index 0000000..1c321c7
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/12.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/13.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/13.gif
new file mode 100644
index 0000000..300bbc2
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/13.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/14.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/14.gif
new file mode 100644
index 0000000..43b6d0a
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/14.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/15.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/15.gif
new file mode 100644
index 0000000..c9f25fa
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/15.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/16.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/16.gif
new file mode 100644
index 0000000..34f28e4
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/16.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/17.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/17.gif
new file mode 100644
index 0000000..39cd035
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/17.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/18.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/18.gif
new file mode 100644
index 0000000..7bce299
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/18.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/19.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/19.gif
new file mode 100644
index 0000000..adac542
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/19.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/2.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/2.gif
new file mode 100644
index 0000000..7edbb58
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/2.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/20.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/20.gif
new file mode 100644
index 0000000..50631a6
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/20.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/21.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/21.gif
new file mode 100644
index 0000000..b984212
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/21.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/22.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/22.gif
new file mode 100644
index 0000000..1f0bd8b
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/22.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/23.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/23.gif
new file mode 100644
index 0000000..e05e0f9
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/23.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/24.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/24.gif
new file mode 100644
index 0000000..f35928a
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/24.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/25.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/25.gif
new file mode 100644
index 0000000..0b4a883
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/25.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/26.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/26.gif
new file mode 100644
index 0000000..45c4fb5
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/26.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/27.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/27.gif
new file mode 100644
index 0000000..7a4c013
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/27.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/28.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/28.gif
new file mode 100644
index 0000000..fc5a0cf
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/28.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/29.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/29.gif
new file mode 100644
index 0000000..5dd7442
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/29.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/3.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/3.gif
new file mode 100644
index 0000000..86df67b
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/3.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/30.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/30.gif
new file mode 100644
index 0000000..b751f98
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/30.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/31.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/31.gif
new file mode 100644
index 0000000..c9476d7
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/31.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/32.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/32.gif
new file mode 100644
index 0000000..9931b06
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/32.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/33.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/33.gif
new file mode 100644
index 0000000..59111a3
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/33.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/34.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/34.gif
new file mode 100644
index 0000000..a334548
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/34.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/35.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/35.gif
new file mode 100644
index 0000000..a932264
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/35.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/36.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/36.gif
new file mode 100644
index 0000000..6de432a
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/36.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/37.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/37.gif
new file mode 100644
index 0000000..d05f2da
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/37.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/38.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/38.gif
new file mode 100644
index 0000000..8b1c88a
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/38.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/39.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/39.gif
new file mode 100644
index 0000000..38b84a5
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/39.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/4.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/4.gif
new file mode 100644
index 0000000..d52200c
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/4.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/40.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/40.gif
new file mode 100644
index 0000000..ae42991
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/40.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/41.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/41.gif
new file mode 100644
index 0000000..b9c715c
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/41.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/42.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/42.gif
new file mode 100644
index 0000000..0eb1434
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/42.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/43.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/43.gif
new file mode 100644
index 0000000..ac0b700
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/43.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/44.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/44.gif
new file mode 100644
index 0000000..ad44497
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/44.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/45.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/45.gif
new file mode 100644
index 0000000..6837fca
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/45.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/46.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/46.gif
new file mode 100644
index 0000000..d62916d
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/46.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/47.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/47.gif
new file mode 100644
index 0000000..58a0836
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/47.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/48.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/48.gif
new file mode 100644
index 0000000..7ffd161
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/48.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/49.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/49.gif
new file mode 100644
index 0000000..959b992
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/49.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/5.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/5.gif
new file mode 100644
index 0000000..4e8b09f
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/5.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/50.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/50.gif
new file mode 100644
index 0000000..6e22e7f
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/50.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/51.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/51.gif
new file mode 100644
index 0000000..ad3f4d3
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/51.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/52.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/52.gif
new file mode 100644
index 0000000..39f8a22
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/52.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/53.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/53.gif
new file mode 100644
index 0000000..a181ee7
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/53.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/54.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/54.gif
new file mode 100644
index 0000000..e289d92
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/54.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/55.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/55.gif
new file mode 100644
index 0000000..4351083
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/55.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/56.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/56.gif
new file mode 100644
index 0000000..e0eff22
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/56.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/57.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/57.gif
new file mode 100644
index 0000000..0bf130f
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/57.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/58.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/58.gif
new file mode 100644
index 0000000..0f06508
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/58.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/59.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/59.gif
new file mode 100644
index 0000000..7081e4f
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/59.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/6.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/6.gif
new file mode 100644
index 0000000..f7715bf
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/6.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/60.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/60.gif
new file mode 100644
index 0000000..6e15f89
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/60.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/61.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/61.gif
new file mode 100644
index 0000000..f092d7e
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/61.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/62.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/62.gif
new file mode 100644
index 0000000..7fe4984
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/62.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/63.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/63.gif
new file mode 100644
index 0000000..cf8e23e
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/63.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/64.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/64.gif
new file mode 100644
index 0000000..a779719
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/64.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/65.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/65.gif
new file mode 100644
index 0000000..7bb98f2
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/65.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/66.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/66.gif
new file mode 100644
index 0000000..bb6d077
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/66.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/67.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/67.gif
new file mode 100644
index 0000000..6e33f7c
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/67.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/68.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/68.gif
new file mode 100644
index 0000000..1a6c400
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/68.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/69.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/69.gif
new file mode 100644
index 0000000..a02f0b2
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/69.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/7.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/7.gif
new file mode 100644
index 0000000..e6d4db8
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/7.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/70.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/70.gif
new file mode 100644
index 0000000..416c5c1
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/70.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/71.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/71.gif
new file mode 100644
index 0000000..c17d60c
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/71.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/8.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/8.gif
new file mode 100644
index 0000000..66f967b
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/8.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/9.gif b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/9.gif
new file mode 100644
index 0000000..6044740
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/images/face/9.gif
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/carousel.js b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/carousel.js
new file mode 100644
index 0000000..2be2c8c
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/carousel.js
@@ -0,0 +1,2 @@
+/** layui-v2.4.5 MIT License By https://www.layui.com */
+ ;layui.define("jquery",function(e){"use strict";var i=layui.$,n=(layui.hint(),layui.device(),{config:{},set:function(e){var n=this;return n.config=i.extend({},n.config,e),n},on:function(e,i){return layui.onevent.call(this,t,e,i)}}),t="carousel",a="layui-this",l=">*[carousel-item]>*",o="layui-carousel-left",r="layui-carousel-right",d="layui-carousel-prev",s="layui-carousel-next",u="layui-carousel-arrow",c="layui-carousel-ind",m=function(e){var t=this;t.config=i.extend({},t.config,n.config,e),t.render()};m.prototype.config={width:"600px",height:"280px",full:!1,arrow:"hover",indicator:"inside",autoplay:!0,interval:3e3,anim:"",trigger:"click",index:0},m.prototype.render=function(){var e=this,n=e.config;n.elem=i(n.elem),n.elem[0]&&(e.elemItem=n.elem.find(l),n.index<0&&(n.index=0),n.index>=e.elemItem.length&&(n.index=e.elemItem.length-1),n.interval<800&&(n.interval=800),n.full?n.elem.css({position:"fixed",width:"100%",height:"100%",zIndex:9999}):n.elem.css({width:n.width,height:n.height}),n.elem.attr("lay-anim",n.anim),e.elemItem.eq(n.index).addClass(a),e.elemItem.length<=1||(e.indicator(),e.arrow(),e.autoplay(),e.events()))},m.prototype.reload=function(e){var n=this;clearInterval(n.timer),n.config=i.extend({},n.config,e),n.render()},m.prototype.prevIndex=function(){var e=this,i=e.config,n=i.index-1;return n<0&&(n=e.elemItem.length-1),n},m.prototype.nextIndex=function(){var e=this,i=e.config,n=i.index+1;return n>=e.elemItem.length&&(n=0),n},m.prototype.addIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index+e,n.index>=i.elemItem.length&&(n.index=0)},m.prototype.subIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index-e,n.index<0&&(n.index=i.elemItem.length-1)},m.prototype.autoplay=function(){var e=this,i=e.config;i.autoplay&&(e.timer=setInterval(function(){e.slide()},i.interval))},m.prototype.arrow=function(){var e=this,n=e.config,t=i(['<button class="layui-icon '+u+'" lay-type="sub">'+("updown"===n.anim?"&#xe619;":"&#xe603;")+"</button>",'<button class="layui-icon '+u+'" lay-type="add">'+("updown"===n.anim?"&#xe61a;":"&#xe602;")+"</button>"].join(""));n.elem.attr("lay-arrow",n.arrow),n.elem.find("."+u)[0]&&n.elem.find("."+u).remove(),n.elem.append(t),t.on("click",function(){var n=i(this),t=n.attr("lay-type");e.slide(t)})},m.prototype.indicator=function(){var e=this,n=e.config,t=e.elemInd=i(['<div class="'+c+'"><ul>',function(){var i=[];return layui.each(e.elemItem,function(e){i.push("<li"+(n.index===e?' class="layui-this"':"")+"></li>")}),i.join("")}(),"</ul></div>"].join(""));n.elem.attr("lay-indicator",n.indicator),n.elem.find("."+c)[0]&&n.elem.find("."+c).remove(),n.elem.append(t),"updown"===n.anim&&t.css("margin-top",-(t.height()/2)),t.find("li").on("hover"===n.trigger?"mouseover":n.trigger,function(){var t=i(this),a=t.index();a>n.index?e.slide("add",a-n.index):a<n.index&&e.slide("sub",n.index-a)})},m.prototype.slide=function(e,i){var n=this,l=n.elemItem,u=n.config,c=u.index,m=u.elem.attr("lay-filter");n.haveSlide||("sub"===e?(n.subIndex(i),l.eq(u.index).addClass(d),setTimeout(function(){l.eq(c).addClass(r),l.eq(u.index).addClass(r)},50)):(n.addIndex(i),l.eq(u.index).addClass(s),setTimeout(function(){l.eq(c).addClass(o),l.eq(u.index).addClass(o)},50)),setTimeout(function(){l.removeClass(a+" "+d+" "+s+" "+o+" "+r),l.eq(u.index).addClass(a),n.haveSlide=!1},300),n.elemInd.find("li").eq(u.index).addClass(a).siblings().removeClass(a),n.haveSlide=!0,layui.event.call(this,t,"change("+m+")",{index:u.index,prevIndex:c,item:l.eq(u.index)}))},m.prototype.events=function(){var e=this,i=e.config;i.elem.data("haveEvents")||(i.elem.on("mouseenter",function(){clearInterval(e.timer)}).on("mouseleave",function(){e.autoplay()}),i.elem.data("haveEvents",!0))},n.render=function(e){var i=new m(e);return i},e(t,n)});
\ No newline at end of file
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/code.js b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/code.js
new file mode 100644
index 0000000..b33f9d6
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/code.js
@@ -0,0 +1,2 @@
+/** layui-v2.4.5 MIT License By https://www.layui.com */
+ ;layui.define("jquery",function(e){"use strict";var a=layui.$,l="http://www.layui.com/doc/modules/code.html";e("code",function(e){var t=[];e=e||{},e.elem=a(e.elem||".layui-code"),e.about=!("about"in e)||e.about,e.elem.each(function(){t.push(this)}),layui.each(t.reverse(),function(t,i){var c=a(i),o=c.html();(c.attr("lay-encode")||e.encode)&&(o=o.replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/'/g,"&#39;").replace(/"/g,"&quot;")),c.html('<ol class="layui-code-ol"><li>'+o.replace(/[\r\t\n]+/g,"</li><li>")+"</li></ol>"),c.find(">.layui-code-h3")[0]||c.prepend('<h3 class="layui-code-h3">'+(c.attr("lay-title")||e.title||"code")+(e.about?'<a href="'+l+'" target="_blank">layui.code</a>':"")+"</h3>");var d=c.find(">.layui-code-ol");c.addClass("layui-box layui-code-view"),(c.attr("lay-skin")||e.skin)&&c.addClass("layui-code-"+(c.attr("lay-skin")||e.skin)),(d.find("li").length/100|0)>0&&d.css("margin-left",(d.find("li").length/100|0)+"px"),(c.attr("lay-height")||e.height)&&d.css("max-height",c.attr("lay-height")||e.height)})})}).addcss("modules/code.css","skincodecss");
\ No newline at end of file
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/colorpicker.js b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/colorpicker.js
new file mode 100644
index 0000000..fd99bf8
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/colorpicker.js
@@ -0,0 +1,2 @@
+/** layui-v2.4.5 MIT License By https://www.layui.com */
+ ;layui.define("jquery",function(e){"use strict";var i=layui.jquery,o={config:{},index:layui.colorpicker?layui.colorpicker.index+1e4:0,set:function(e){var o=this;return o.config=i.extend({},o.config,e),o},on:function(e,i){return layui.onevent.call(this,"colorpicker",e,i)}},r=function(){var e=this,i=e.config;return{config:i}},t="colorpicker",n="layui-show",l="layui-colorpicker",c=".layui-colorpicker-main",a="layui-icon-down",s="layui-icon-close",f="layui-colorpicker-trigger-span",d="layui-colorpicker-trigger-i",u="layui-colorpicker-side",p="layui-colorpicker-side-slider",g="layui-colorpicker-basis",v="layui-colorpicker-alpha-bgcolor",h="layui-colorpicker-alpha-slider",m="layui-colorpicker-basis-cursor",b="layui-colorpicker-main-input",k=function(e){var i={h:0,s:0,b:0},o=Math.min(e.r,e.g,e.b),r=Math.max(e.r,e.g,e.b),t=r-o;return i.b=r,i.s=0!=r?255*t/r:0,0!=i.s?e.r==r?i.h=(e.g-e.b)/t:e.g==r?i.h=2+(e.b-e.r)/t:i.h=4+(e.r-e.g)/t:i.h=-1,r==o&&(i.h=0),i.h*=60,i.h<0&&(i.h+=360),i.s*=100/255,i.b*=100/255,i},y=function(e){var e=e.indexOf("#")>-1?e.substring(1):e;if(3==e.length){var i=e.split("");e=i[0]+i[0]+i[1]+i[1]+i[2]+i[2]}e=parseInt(e,16);var o={r:e>>16,g:(65280&e)>>8,b:255&e};return k(o)},x=function(e){var i={},o=e.h,r=255*e.s/100,t=255*e.b/100;if(0==r)i.r=i.g=i.b=t;else{var n=t,l=(255-r)*t/255,c=(n-l)*(o%60)/60;360==o&&(o=0),o<60?(i.r=n,i.b=l,i.g=l+c):o<120?(i.g=n,i.b=l,i.r=n-c):o<180?(i.g=n,i.r=l,i.b=l+c):o<240?(i.b=n,i.r=l,i.g=n-c):o<300?(i.b=n,i.g=l,i.r=l+c):o<360?(i.r=n,i.g=l,i.b=n-c):(i.r=0,i.g=0,i.b=0)}return{r:Math.round(i.r),g:Math.round(i.g),b:Math.round(i.b)}},C=function(e){var o=x(e),r=[o.r.toString(16),o.g.toString(16),o.b.toString(16)];return i.each(r,function(e,i){1==i.length&&(r[e]="0"+i)}),r.join("")},P=function(e){var i=/[0-9]{1,3}/g,o=e.match(i)||[];return{r:o[0],g:o[1],b:o[2]}},B=i(window),w=i(document),D=function(e){var r=this;r.index=++o.index,r.config=i.extend({},r.config,o.config,e),r.render()};D.prototype.config={color:"",size:null,alpha:!1,format:"hex",predefine:!1,colors:["#009688","#5FB878","#1E9FFF","#FF5722","#FFB800","#01AAED","#999","#c00","#ff8c00","#ffd700","#90ee90","#00ced1","#1e90ff","#c71585","rgb(0, 186, 189)","rgb(255, 120, 0)","rgb(250, 212, 0)","#393D49","rgba(0,0,0,.5)","rgba(255, 69, 0, 0.68)","rgba(144, 240, 144, 0.5)","rgba(31, 147, 255, 0.73)"]},D.prototype.render=function(){var e=this,o=e.config,r=i(['<div class="layui-unselect layui-colorpicker">',"<span "+("rgb"==o.format&&o.alpha?'class="layui-colorpicker-trigger-bgcolor"':"")+">",'<span class="layui-colorpicker-trigger-span" ','lay-type="'+("rgb"==o.format?o.alpha?"rgba":"torgb":"")+'" ','style="'+function(){var e="";return o.color?(e=o.color,(o.color.match(/[0-9]{1,3}/g)||[]).length>3&&(o.alpha&&"rgb"==o.format||(e="#"+C(k(P(o.color))))),"background: "+e):e}()+'">','<i class="layui-icon layui-colorpicker-trigger-i '+(o.color?a:s)+'"></i>',"</span>","</span>","</div>"].join("")),t=i(o.elem);o.size&&r.addClass("layui-colorpicker-"+o.size),t.addClass("layui-inline").html(e.elemColorBox=r),e.color=e.elemColorBox.find("."+f)[0].style.background,e.events()},D.prototype.renderPicker=function(){var e=this,o=e.config,r=e.elemColorBox[0],t=e.elemPicker=i(['<div id="layui-colorpicker'+e.index+'" data-index="'+e.index+'" class="layui-anim layui-anim-upbit layui-colorpicker-main">','<div class="layui-colorpicker-main-wrapper">','<div class="layui-colorpicker-basis">','<div class="layui-colorpicker-basis-white"></div>','<div class="layui-colorpicker-basis-black"></div>','<div class="layui-colorpicker-basis-cursor"></div>',"</div>",'<div class="layui-colorpicker-side">','<div class="layui-colorpicker-side-slider"></div>',"</div>","</div>",'<div class="layui-colorpicker-main-alpha '+(o.alpha?n:"")+'">','<div class="layui-colorpicker-alpha-bgcolor">','<div class="layui-colorpicker-alpha-slider"></div>',"</div>","</div>",function(){if(o.predefine){var e=['<div class="layui-colorpicker-main-pre">'];return layui.each(o.colors,function(i,o){e.push(['<div class="layui-colorpicker-pre'+((o.match(/[0-9]{1,3}/g)||[]).length>3?" layui-colorpicker-pre-isalpha":"")+'">','<div style="background:'+o+'"></div>',"</div>"].join(""))}),e.push("</div>"),e.join("")}return""}(),'<div class="layui-colorpicker-main-input">','<div class="layui-inline">','<input type="text" class="layui-input">',"</div>",'<div class="layui-btn-container">','<button class="layui-btn layui-btn-primary layui-btn-sm" colorpicker-events="clear">清空</button>','<button class="layui-btn layui-btn-sm" colorpicker-events="confirm">确定</button>',"</div","</div>","</div>"].join(""));e.elemColorBox.find("."+f)[0];i(c)[0]&&i(c).data("index")==e.index?e.removePicker(D.thisElemInd):(e.removePicker(D.thisElemInd),i("body").append(t)),D.thisElemInd=e.index,D.thisColor=r.style.background,e.position(),e.pickerEvents()},D.prototype.removePicker=function(e){var o=this;o.config;return i("#layui-colorpicker"+(e||o.index)).remove(),o},D.prototype.position=function(){var e=this,i=e.config,o=e.bindElem||e.elemColorBox[0],r=e.elemPicker[0],t=o.getBoundingClientRect(),n=r.offsetWidth,l=r.offsetHeight,c=function(e){return e=e?"scrollLeft":"scrollTop",document.body[e]|document.documentElement[e]},a=function(e){return document.documentElement[e?"clientWidth":"clientHeight"]},s=5,f=t.left,d=t.bottom;f-=(n-o.offsetWidth)/2,d+=s,f+n+s>a("width")?f=a("width")-n-s:f<s&&(f=s),d+l+s>a()&&(d=t.top>l?t.top-l:a()-l,d-=2*s),i.position&&(r.style.position=i.position),r.style.left=f+("fixed"===i.position?0:c(1))+"px",r.style.top=d+("fixed"===i.position?0:c())+"px"},D.prototype.val=function(){var e=this,i=(e.config,e.elemColorBox.find("."+f)),o=e.elemPicker.find("."+b),r=i[0],t=r.style.backgroundColor;if(t){var n=k(P(t)),l=i.attr("lay-type");if(e.select(n.h,n.s,n.b),"torgb"===l&&o.find("input").val(t),"rgba"===l){var c=P(t);if(3==(t.match(/[0-9]{1,3}/g)||[]).length)o.find("input").val("rgba("+c.r+", "+c.g+", "+c.b+", 1)"),e.elemPicker.find("."+h).css("left",280);else{o.find("input").val(t);var a=280*t.slice(t.lastIndexOf(",")+1,t.length-1);e.elemPicker.find("."+h).css("left",a)}e.elemPicker.find("."+v)[0].style.background="linear-gradient(to right, rgba("+c.r+", "+c.g+", "+c.b+", 0), rgb("+c.r+", "+c.g+", "+c.b+"))"}}else e.select(0,100,100),o.find("input").val(""),e.elemPicker.find("."+v)[0].style.background="",e.elemPicker.find("."+h).css("left",280)},D.prototype.side=function(){var e=this,o=e.config,r=e.elemColorBox.find("."+f),t=r.attr("lay-type"),n=e.elemPicker.find("."+u),l=e.elemPicker.find("."+p),c=e.elemPicker.find("."+g),y=e.elemPicker.find("."+m),C=e.elemPicker.find("."+v),w=e.elemPicker.find("."+h),D=l[0].offsetTop/180*360,E=100-(y[0].offsetTop+3)/180*100,H=(y[0].offsetLeft+3)/260*100,W=Math.round(w[0].offsetLeft/280*100)/100,j=e.elemColorBox.find("."+d),F=e.elemPicker.find(".layui-colorpicker-pre").children("div"),L=function(i,n,l,c){e.select(i,n,l);var f=x({h:i,s:n,b:l});if(j.addClass(a).removeClass(s),r[0].style.background="rgb("+f.r+", "+f.g+", "+f.b+")","torgb"===t&&e.elemPicker.find("."+b).find("input").val("rgb("+f.r+", "+f.g+", "+f.b+")"),"rgba"===t){var d=0;d=280*c,w.css("left",d),e.elemPicker.find("."+b).find("input").val("rgba("+f.r+", "+f.g+", "+f.b+", "+c+")"),r[0].style.background="rgba("+f.r+", "+f.g+", "+f.b+", "+c+")",C[0].style.background="linear-gradient(to right, rgba("+f.r+", "+f.g+", "+f.b+", 0), rgb("+f.r+", "+f.g+", "+f.b+"))"}o.change&&o.change(e.elemPicker.find("."+b).find("input").val())},M=i(['<div class="layui-auxiliar-moving" id="LAY-colorpicker-moving"></div'].join("")),Y=function(e){i("#LAY-colorpicker-moving")[0]||i("body").append(M),M.on("mousemove",e),M.on("mouseup",function(){M.remove()}).on("mouseleave",function(){M.remove()})};l.on("mousedown",function(e){var i=this.offsetTop,o=e.clientY,r=function(e){var r=i+(e.clientY-o),t=n[0].offsetHeight;r<0&&(r=0),r>t&&(r=t);var l=r/180*360;D=l,L(l,H,E,W),e.preventDefault()};Y(r),e.preventDefault()}),n.on("click",function(e){var o=e.clientY-i(this).offset().top;o<0&&(o=0),o>this.offsetHeight&&(o=this.offsetHeight);var r=o/180*360;D=r,L(r,H,E,W),e.preventDefault()}),y.on("mousedown",function(e){var i=this.offsetTop,o=this.offsetLeft,r=e.clientY,t=e.clientX,n=function(e){var n=i+(e.clientY-r),l=o+(e.clientX-t),a=c[0].offsetHeight-3,s=c[0].offsetWidth-3;n<-3&&(n=-3),n>a&&(n=a),l<-3&&(l=-3),l>s&&(l=s);var f=(l+3)/260*100,d=100-(n+3)/180*100;E=d,H=f,L(D,f,d,W),e.preventDefault()};layui.stope(e),Y(n),e.preventDefault()}),c.on("mousedown",function(e){var o=e.clientY-i(this).offset().top-3+B.scrollTop(),r=e.clientX-i(this).offset().left-3+B.scrollLeft();o<-3&&(o=-3),o>this.offsetHeight-3&&(o=this.offsetHeight-3),r<-3&&(r=-3),r>this.offsetWidth-3&&(r=this.offsetWidth-3);var t=(r+3)/260*100,n=100-(o+3)/180*100;E=n,H=t,L(D,t,n,W),e.preventDefault(),y.trigger(e,"mousedown")}),w.on("mousedown",function(e){var i=this.offsetLeft,o=e.clientX,r=function(e){var r=i+(e.clientX-o),t=C[0].offsetWidth;r<0&&(r=0),r>t&&(r=t);var n=Math.round(r/280*100)/100;W=n,L(D,H,E,n),e.preventDefault()};Y(r),e.preventDefault()}),C.on("click",function(e){var o=e.clientX-i(this).offset().left;o<0&&(o=0),o>this.offsetWidth&&(o=this.offsetWidth);var r=Math.round(o/280*100)/100;W=r,L(D,H,E,r),e.preventDefault()}),F.each(function(){i(this).on("click",function(){i(this).parent(".layui-colorpicker-pre").addClass("selected").siblings().removeClass("selected");var e,o=this.style.backgroundColor,r=k(P(o)),t=o.slice(o.lastIndexOf(",")+1,o.length-1);D=r.h,H=r.s,E=r.b,3==(o.match(/[0-9]{1,3}/g)||[]).length&&(t=1),W=t,e=280*t,L(r.h,r.s,r.b,t)})})},D.prototype.select=function(e,i,o,r){var t=this,n=(t.config,C({h:e,s:100,b:100})),l=C({h:e,s:i,b:o}),c=e/360*180,a=180-o/100*180-3,s=i/100*260-3;t.elemPicker.find("."+p).css("top",c),t.elemPicker.find("."+g)[0].style.background="#"+n,t.elemPicker.find("."+m).css({top:a,left:s}),"change"!==r&&t.elemPicker.find("."+b).find("input").val("#"+l)},D.prototype.pickerEvents=function(){var e=this,o=e.config,r=e.elemColorBox.find("."+f),t=e.elemPicker.find("."+b+" input"),n={clear:function(i){r[0].style.background="",e.elemColorBox.find("."+d).removeClass(a).addClass(s),e.color="",o.done&&o.done(""),e.removePicker()},confirm:function(i,n){var l=t.val(),c=l,f={};if(l.indexOf(",")>-1){if(f=k(P(l)),e.select(f.h,f.s,f.b),r[0].style.background=c="#"+C(f),(l.match(/[0-9]{1,3}/g)||[]).length>3&&"rgba"===r.attr("lay-type")){var u=280*l.slice(l.lastIndexOf(",")+1,l.length-1);e.elemPicker.find("."+h).css("left",u),r[0].style.background=l,c=l}}else f=y(l),r[0].style.background=c="#"+C(f),e.elemColorBox.find("."+d).removeClass(s).addClass(a);return"change"===n?(e.select(f.h,f.s,f.b,n),void(o.change&&o.change(c))):(e.color=l,o.done&&o.done(l),void e.removePicker())}};e.elemPicker.on("click","*[colorpicker-events]",function(){var e=i(this),o=e.attr("colorpicker-events");n[o]&&n[o].call(this,e)}),t.on("keyup",function(e){var o=i(this);n.confirm.call(this,o,13===e.keyCode?null:"change")})},D.prototype.events=function(){var e=this,o=e.config,r=e.elemColorBox.find("."+f);e.elemColorBox.on("click",function(){e.renderPicker(),i(c)[0]&&(e.val(),e.side())}),o.elem[0]&&!e.elemColorBox[0].eventHandler&&(w.on("click",function(o){if(!i(o.target).hasClass(l)&&!i(o.target).parents("."+l)[0]&&!i(o.target).hasClass(c.replace(/\./g,""))&&!i(o.target).parents(c)[0]&&e.elemPicker){if(e.color){var t=k(P(e.color));e.select(t.h,t.s,t.b)}else e.elemColorBox.find("."+d).removeClass(a).addClass(s);r[0].style.background=e.color||"",e.removePicker()}}),B.on("resize",function(){return!(!e.elemPicker||!i(c)[0])&&void e.position()}),e.elemColorBox[0].eventHandler=!0)},o.render=function(e){var i=new D(e);return r.call(i)},e(t,o)});
\ No newline at end of file
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/element.js b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/element.js
new file mode 100644
index 0000000..ac628df
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/element.js
@@ -0,0 +1,2 @@
+/** layui-v2.4.5 MIT License By https://www.layui.com */
+ ;layui.define("jquery",function(t){"use strict";var a=layui.$,i=(layui.hint(),layui.device()),e="element",l="layui-this",n="layui-show",s=function(){this.config={}};s.prototype.set=function(t){var i=this;return a.extend(!0,i.config,t),i},s.prototype.on=function(t,a){return layui.onevent.call(this,e,t,a)},s.prototype.tabAdd=function(t,i){var e=".layui-tab-title",l=a(".layui-tab[lay-filter="+t+"]"),n=l.children(e),s=n.children(".layui-tab-bar"),o=l.children(".layui-tab-content"),r='<li lay-id="'+(i.id||"")+'"'+(i.attr?' lay-attr="'+i.attr+'"':"")+">"+(i.title||"unnaming")+"</li>";return s[0]?s.before(r):n.append(r),o.append('<div class="layui-tab-item">'+(i.content||"")+"</div>"),f.hideTabMore(!0),f.tabAuto(),this},s.prototype.tabDelete=function(t,i){var e=".layui-tab-title",l=a(".layui-tab[lay-filter="+t+"]"),n=l.children(e),s=n.find('>li[lay-id="'+i+'"]');return f.tabDelete(null,s),this},s.prototype.tabChange=function(t,i){var e=".layui-tab-title",l=a(".layui-tab[lay-filter="+t+"]"),n=l.children(e),s=n.find('>li[lay-id="'+i+'"]');return f.tabClick.call(s[0],null,null,s),this},s.prototype.tab=function(t){t=t||{},b.on("click",t.headerElem,function(i){var e=a(this).index();f.tabClick.call(this,i,e,null,t)})},s.prototype.progress=function(t,i){var e="layui-progress",l=a("."+e+"[lay-filter="+t+"]"),n=l.find("."+e+"-bar"),s=n.find("."+e+"-text");return n.css("width",i),s.text(i),this};var o=".layui-nav",r="layui-nav-item",c="layui-nav-bar",u="layui-nav-tree",d="layui-nav-child",y="layui-nav-more",h="layui-anim layui-anim-upbit",f={tabClick:function(t,i,s,o){o=o||{};var r=s||a(this),i=i||r.parent().children("li").index(r),c=o.headerElem?r.parent():r.parents(".layui-tab").eq(0),u=o.bodyElem?a(o.bodyElem):c.children(".layui-tab-content").children(".layui-tab-item"),d=r.find("a"),y=c.attr("lay-filter");"javascript:;"!==d.attr("href")&&"_blank"===d.attr("target")||(r.addClass(l).siblings().removeClass(l),u.eq(i).addClass(n).siblings().removeClass(n)),layui.event.call(this,e,"tab("+y+")",{elem:c,index:i})},tabDelete:function(t,i){var n=i||a(this).parent(),s=n.index(),o=n.parents(".layui-tab").eq(0),r=o.children(".layui-tab-content").children(".layui-tab-item"),c=o.attr("lay-filter");n.hasClass(l)&&(n.next()[0]?f.tabClick.call(n.next()[0],null,s+1):n.prev()[0]&&f.tabClick.call(n.prev()[0],null,s-1)),n.remove(),r.eq(s).remove(),setTimeout(function(){f.tabAuto()},50),layui.event.call(this,e,"tabDelete("+c+")",{elem:o,index:s})},tabAuto:function(){var t="layui-tab-more",e="layui-tab-bar",l="layui-tab-close",n=this;a(".layui-tab").each(function(){var s=a(this),o=s.children(".layui-tab-title"),r=(s.children(".layui-tab-content").children(".layui-tab-item"),'lay-stope="tabmore"'),c=a('<span class="layui-unselect layui-tab-bar" '+r+"><i "+r+' class="layui-icon">&#xe61a;</i></span>');if(n===window&&8!=i.ie&&f.hideTabMore(!0),s.attr("lay-allowClose")&&o.find("li").each(function(){var t=a(this);if(!t.find("."+l)[0]){var i=a('<i class="layui-icon layui-unselect '+l+'">&#x1006;</i>');i.on("click",f.tabDelete),t.append(i)}}),"string"!=typeof s.attr("lay-unauto"))if(o.prop("scrollWidth")>o.outerWidth()+1){if(o.find("."+e)[0])return;o.append(c),s.attr("overflow",""),c.on("click",function(a){o[this.title?"removeClass":"addClass"](t),this.title=this.title?"":"收缩"})}else o.find("."+e).remove(),s.removeAttr("overflow")})},hideTabMore:function(t){var i=a(".layui-tab-title");t!==!0&&"tabmore"===a(t.target).attr("lay-stope")||(i.removeClass("layui-tab-more"),i.find(".layui-tab-bar").attr("title",""))},clickThis:function(){var t=a(this),i=t.parents(o),n=i.attr("lay-filter"),s=t.parent(),c=t.siblings("."+d),y="string"==typeof s.attr("lay-unselect");"javascript:;"!==t.attr("href")&&"_blank"===t.attr("target")||y||c[0]||(i.find("."+l).removeClass(l),s.addClass(l)),i.hasClass(u)&&(c.removeClass(h),c[0]&&(s["none"===c.css("display")?"addClass":"removeClass"](r+"ed"),"all"===i.attr("lay-shrink")&&s.siblings().removeClass(r+"ed"))),layui.event.call(this,e,"nav("+n+")",t)},collapse:function(){var t=a(this),i=t.find(".layui-colla-icon"),l=t.siblings(".layui-colla-content"),s=t.parents(".layui-collapse").eq(0),o=s.attr("lay-filter"),r="none"===l.css("display");if("string"==typeof s.attr("lay-accordion")){var c=s.children(".layui-colla-item").children("."+n);c.siblings(".layui-colla-title").children(".layui-colla-icon").html("&#xe602;"),c.removeClass(n)}l[r?"addClass":"removeClass"](n),i.html(r?"&#xe61a;":"&#xe602;"),layui.event.call(this,e,"collapse("+o+")",{title:t,content:l,show:r})}};s.prototype.init=function(t,e){var l=function(){return e?'[lay-filter="'+e+'"]':""}(),s={tab:function(){f.tabAuto.call({})},nav:function(){var t=200,e={},s={},p={},b=function(l,o,r){var c=a(this),f=c.find("."+d);o.hasClass(u)?l.css({top:c.position().top,height:c.children("a").outerHeight(),opacity:1}):(f.addClass(h),l.css({left:c.position().left+parseFloat(c.css("marginLeft")),top:c.position().top+c.height()-l.height()}),e[r]=setTimeout(function(){l.css({width:c.width(),opacity:1})},i.ie&&i.ie<10?0:t),clearTimeout(p[r]),"block"===f.css("display")&&clearTimeout(s[r]),s[r]=setTimeout(function(){f.addClass(n),c.find("."+y).addClass(y+"d")},300))};a(o+l).each(function(i){var l=a(this),o=a('<span class="'+c+'"></span>'),h=l.find("."+r);l.find("."+c)[0]||(l.append(o),h.on("mouseenter",function(){b.call(this,o,l,i)}).on("mouseleave",function(){l.hasClass(u)||(clearTimeout(s[i]),s[i]=setTimeout(function(){l.find("."+d).removeClass(n),l.find("."+y).removeClass(y+"d")},300))}),l.on("mouseleave",function(){clearTimeout(e[i]),p[i]=setTimeout(function(){l.hasClass(u)?o.css({height:0,top:o.position().top+o.height()/2,opacity:0}):o.css({width:0,left:o.position().left+o.width()/2,opacity:0})},t)})),h.find("a").each(function(){var t=a(this),i=(t.parent(),t.siblings("."+d));i[0]&&!t.children("."+y)[0]&&t.append('<span class="'+y+'"></span>'),t.off("click",f.clickThis).on("click",f.clickThis)})})},breadcrumb:function(){var t=".layui-breadcrumb";a(t+l).each(function(){var t=a(this),i="lay-separator",e=t.attr(i)||"/",l=t.find("a");l.next("span["+i+"]")[0]||(l.each(function(t){t!==l.length-1&&a(this).after("<span "+i+">"+e+"</span>")}),t.css("visibility","visible"))})},progress:function(){var t="layui-progress";a("."+t+l).each(function(){var i=a(this),e=i.find(".layui-progress-bar"),l=e.attr("lay-percent");e.css("width",function(){return/^.+\/.+$/.test(l)?100*new Function("return "+l)()+"%":l}()),i.attr("lay-showPercent")&&setTimeout(function(){e.html('<span class="'+t+'-text">'+l+"</span>")},350)})},collapse:function(){var t="layui-collapse";a("."+t+l).each(function(){var t=a(this).find(".layui-colla-item");t.each(function(){var t=a(this),i=t.find(".layui-colla-title"),e=t.find(".layui-colla-content"),l="none"===e.css("display");i.find(".layui-colla-icon").remove(),i.append('<i class="layui-icon layui-colla-icon">'+(l?"&#xe602;":"&#xe61a;")+"</i>"),i.off("click",f.collapse).on("click",f.collapse)})})}};return s[t]?s[t]():layui.each(s,function(t,a){a()})},s.prototype.render=s.prototype.init;var p=new s,b=a(document);p.render();var v=".layui-tab-title li";b.on("click",v,f.tabClick),b.on("click",f.hideTabMore),a(window).on("resize",f.tabAuto),t(e,p)});
\ No newline at end of file
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/flow.js b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/flow.js
new file mode 100644
index 0000000..8a80c05
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/flow.js
@@ -0,0 +1,2 @@
+/** layui-v2.4.5 MIT License By https://www.layui.com */
+ ;layui.define("jquery",function(e){"use strict";var l=layui.$,o=function(e){},t='<i class="layui-anim layui-anim-rotate layui-anim-loop layui-icon ">&#xe63e;</i>';o.prototype.load=function(e){var o,i,n,r,a=this,c=0;e=e||{};var f=l(e.elem);if(f[0]){var m=l(e.scrollElem||document),u=e.mb||50,s=!("isAuto"in e)||e.isAuto,v=e.end||"没有更多了",y=e.scrollElem&&e.scrollElem!==document,d="<cite>加载更多</cite>",h=l('<div class="layui-flow-more"><a href="javascript:;">'+d+"</a></div>");f.find(".layui-flow-more")[0]||f.append(h);var p=function(e,t){e=l(e),h.before(e),t=0==t||null,t?h.html(v):h.find("a").html(d),i=t,o=null,n&&n()},g=function(){o=!0,h.find("a").html(t),"function"==typeof e.done&&e.done(++c,p)};if(g(),h.find("a").on("click",function(){l(this);i||o||g()}),e.isLazyimg)var n=a.lazyimg({elem:e.elem+" img",scrollElem:e.scrollElem});return s?(m.on("scroll",function(){var e=l(this),t=e.scrollTop();r&&clearTimeout(r),i||(r=setTimeout(function(){var i=y?e.height():l(window).height(),n=y?e.prop("scrollHeight"):document.documentElement.scrollHeight;n-t-i<=u&&(o||g())},100))}),a):a}},o.prototype.lazyimg=function(e){var o,t=this,i=0;e=e||{};var n=l(e.scrollElem||document),r=e.elem||"img",a=e.scrollElem&&e.scrollElem!==document,c=function(e,l){var o=n.scrollTop(),r=o+l,c=a?function(){return e.offset().top-n.offset().top+o}():e.offset().top;if(c>=o&&c<=r&&!e.attr("src")){var m=e.attr("lay-src");layui.img(m,function(){var l=t.lazyimg.elem.eq(i);e.attr("src",m).removeAttr("lay-src"),l[0]&&f(l),i++})}},f=function(e,o){var f=a?(o||n).height():l(window).height(),m=n.scrollTop(),u=m+f;if(t.lazyimg.elem=l(r),e)c(e,f);else for(var s=0;s<t.lazyimg.elem.length;s++){var v=t.lazyimg.elem.eq(s),y=a?function(){return v.offset().top-n.offset().top+m}():v.offset().top;if(c(v,f),i=s,y>u)break}};if(f(),!o){var m;n.on("scroll",function(){var e=l(this);m&&clearTimeout(m),m=setTimeout(function(){f(null,e)},50)}),o=!0}return f},e("flow",new o)});
\ No newline at end of file
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/form.js b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/form.js
new file mode 100644
index 0000000..daa8ce5
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/form.js
@@ -0,0 +1,2 @@
+/** layui-v2.4.5 MIT License By https://www.layui.com */
+ ;layui.define("layer",function(e){"use strict";var t=layui.$,i=layui.layer,a=layui.hint(),n=layui.device(),l="form",r=".layui-form",s="layui-this",o="layui-hide",c="layui-disabled",u=function(){this.config={verify:{required:[/[\S]+/,"必填项不能为空"],phone:[/^1\d{10}$/,"请输入正确的手机号"],email:[/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/,"邮箱格式不正确"],url:[/(^#)|(^http(s*):\/\/[^\s]+\.[^\s]+)/,"链接格式不正确"],number:function(e){if(!e||isNaN(e))return"只能填写数字"},date:[/^(\d{4})[-\/](\d{1}|0\d{1}|1[0-2])([-\/](\d{1}|0\d{1}|[1-2][0-9]|3[0-1]))*$/,"日期格式不正确"],identity:[/(^\d{15}$)|(^\d{17}(x|X|\d)$)/,"请输入正确的身份证号"]}}};u.prototype.set=function(e){var i=this;return t.extend(!0,i.config,e),i},u.prototype.verify=function(e){var i=this;return t.extend(!0,i.config.verify,e),i},u.prototype.on=function(e,t){return layui.onevent.call(this,l,e,t)},u.prototype.val=function(e,i){var a=t(r+'[lay-filter="'+e+'"]');a.each(function(e,a){var n=t(this);layui.each(i,function(e,t){var i,a=n.find('[name="'+e+'"]');a[0]&&(i=a[0].type,"checkbox"===i?a[0].checked=t:"radio"===i?a.each(function(){this.value===t&&(this.checked=!0)}):a.val(t))})}),f.render(null,e)},u.prototype.render=function(e,i){var n=this,u=t(r+function(){return i?'[lay-filter="'+i+'"]':""}()),d={select:function(){var e,i="请选择",a="layui-form-select",n="layui-select-title",r="layui-select-none",d="",f=u.find("select"),v=function(i,l){t(i.target).parent().hasClass(n)&&!l||(t("."+a).removeClass(a+"ed "+a+"up"),e&&d&&e.val(d)),e=null},y=function(i,u,f){var y,p=t(this),m=i.find("."+n),k=m.find("input"),x=i.find("dl"),g=x.children("dd"),b=this.selectedIndex;if(!u){var C=function(){var e=i.offset().top+i.outerHeight()+5-h.scrollTop(),t=x.outerHeight();b=p[0].selectedIndex,i.addClass(a+"ed"),g.removeClass(o),y=null,g.eq(b).addClass(s).siblings().removeClass(s),e+t>h.height()&&e>=t&&i.addClass(a+"up"),$()},w=function(e){i.removeClass(a+"ed "+a+"up"),k.blur(),y=null,e||T(k.val(),function(e){var i=p[0].selectedIndex;e&&(d=t(p[0].options[i]).html(),0===i&&d===k.attr("placeholder")&&(d=""),k.val(d||""))})},$=function(){var e=x.children("dd."+s);if(e[0]){var t=e.position().top,i=x.height(),a=e.height();t>i&&x.scrollTop(t+x.scrollTop()-i+a-5),t<0&&x.scrollTop(t+x.scrollTop()-5)}};m.on("click",function(e){i.hasClass(a+"ed")?w():(v(e,!0),C()),x.find("."+r).remove()}),m.find(".layui-edge").on("click",function(){k.focus()}),k.on("keyup",function(e){var t=e.keyCode;9===t&&C()}).on("keydown",function(e){var t=e.keyCode;9===t&&w();var i=function(t,a){var n,l;e.preventDefault();var r=function(){var e=x.children("dd."+s);if(x.children("dd."+o)[0]&&"next"===t){var i=x.children("dd:not(."+o+",."+c+")"),n=i.eq(0).index();if(n>=0&&n<e.index()&&!i.hasClass(s))return i.eq(0).prev()[0]?i.eq(0).prev():x.children(":last")}return a&&a[0]?a:y&&y[0]?y:e}();return l=r[t](),n=r[t]("dd:not(."+o+")"),l[0]?(y=r[t](),n[0]&&!n.hasClass(c)||!y[0]?(n.addClass(s).siblings().removeClass(s),void $()):i(t,y)):y=null};38===t&&i("prev"),40===t&&i("next"),13===t&&(e.preventDefault(),x.children("dd."+s).trigger("click"))});var T=function(e,i,a){var n=0;layui.each(g,function(){var i=t(this),l=i.text(),r=l.indexOf(e)===-1;(""===e||"blur"===a?e!==l:r)&&n++,"keyup"===a&&i[r?"addClass":"removeClass"](o)});var l=n===g.length;return i(l),l},j=function(e){var t=this.value,i=e.keyCode;return 9!==i&&13!==i&&37!==i&&38!==i&&39!==i&&40!==i&&(T(t,function(e){e?x.find("."+r)[0]||x.append('<p class="'+r+'">无匹配项</p>'):x.find("."+r).remove()},"keyup"),""===t&&x.find("."+r).remove(),void $())};f&&k.on("keyup",j).on("blur",function(i){var a=p[0].selectedIndex;e=k,d=t(p[0].options[a]).html(),0===a&&d===k.attr("placeholder")&&(d=""),setTimeout(function(){T(k.val(),function(e){d||k.val("")},"blur")},200)}),g.on("click",function(){var e=t(this),a=e.attr("lay-value"),n=p.attr("lay-filter");return!e.hasClass(c)&&(e.hasClass("layui-select-tips")?k.val(""):(k.val(e.text()),e.addClass(s)),e.siblings().removeClass(s),p.val(a).removeClass("layui-form-danger"),layui.event.call(this,l,"select("+n+")",{elem:p[0],value:a,othis:i}),w(!0),!1)}),i.find("dl>dt").on("click",function(e){return!1}),t(document).off("click",v).on("click",v)}};f.each(function(e,l){var r=t(this),o=r.next("."+a),u=this.disabled,d=l.value,f=t(l.options[l.selectedIndex]),v=l.options[0];if("string"==typeof r.attr("lay-ignore"))return r.show();var h="string"==typeof r.attr("lay-search"),p=v?v.value?i:v.innerHTML||i:i,m=t(['<div class="'+(h?"":"layui-unselect ")+a,(u?" layui-select-disabled":"")+'">','<div class="'+n+'">','<input type="text" placeholder="'+p+'" '+('value="'+(d?f.html():"")+'"')+(h?"":" readonly")+' class="layui-input'+(h?"":" layui-unselect")+(u?" "+c:"")+'">','<i class="layui-edge"></i></div>','<dl class="layui-anim layui-anim-upbit'+(r.find("optgroup")[0]?" layui-select-group":"")+'">',function(e){var t=[];return layui.each(e,function(e,a){0!==e||a.value?"optgroup"===a.tagName.toLowerCase()?t.push("<dt>"+a.label+"</dt>"):t.push('<dd lay-value="'+a.value+'" class="'+(d===a.value?s:"")+(a.disabled?" "+c:"")+'">'+a.innerHTML+"</dd>"):t.push('<dd lay-value="" class="layui-select-tips">'+(a.innerHTML||i)+"</dd>")}),0===t.length&&t.push('<dd lay-value="" class="'+c+'">没有选项</dd>'),t.join("")}(r.find("*"))+"</dl>","</div>"].join(""));o[0]&&o.remove(),r.after(m),y.call(this,m,u,h)})},checkbox:function(){var e={checkbox:["layui-form-checkbox","layui-form-checked","checkbox"],_switch:["layui-form-switch","layui-form-onswitch","switch"]},i=u.find("input[type=checkbox]"),a=function(e,i){var a=t(this);e.on("click",function(){var t=a.attr("lay-filter"),n=(a.attr("lay-text")||"").split("|");a[0].disabled||(a[0].checked?(a[0].checked=!1,e.removeClass(i[1]).find("em").text(n[1])):(a[0].checked=!0,e.addClass(i[1]).find("em").text(n[0])),layui.event.call(a[0],l,i[2]+"("+t+")",{elem:a[0],value:a[0].value,othis:e}))})};i.each(function(i,n){var l=t(this),r=l.attr("lay-skin"),s=(l.attr("lay-text")||"").split("|"),o=this.disabled;"switch"===r&&(r="_"+r);var u=e[r]||e.checkbox;if("string"==typeof l.attr("lay-ignore"))return l.show();var d=l.next("."+u[0]),f=t(['<div class="layui-unselect '+u[0],n.checked?" "+u[1]:"",o?" layui-checkbox-disbaled "+c:"",'"',r?' lay-skin="'+r+'"':"",">",function(){var e=n.title.replace(/\s/g,""),t={checkbox:[e?"<span>"+n.title+"</span>":"",'<i class="layui-icon layui-icon-ok"></i>'].join(""),_switch:"<em>"+((n.checked?s[0]:s[1])||"")+"</em><i></i>"};return t[r]||t.checkbox}(),"</div>"].join(""));d[0]&&d.remove(),l.after(f),a.call(this,f,u)})},radio:function(){var e="layui-form-radio",i=["&#xe643;","&#xe63f;"],a=u.find("input[type=radio]"),n=function(a){var n=t(this),s="layui-anim-scaleSpring";a.on("click",function(){var o=n[0].name,c=n.parents(r),u=n.attr("lay-filter"),d=c.find("input[name="+o.replace(/(\.|#|\[|\])/g,"\\$1")+"]");n[0].disabled||(layui.each(d,function(){var a=t(this).next("."+e);this.checked=!1,a.removeClass(e+"ed"),a.find(".layui-icon").removeClass(s).html(i[1])}),n[0].checked=!0,a.addClass(e+"ed"),a.find(".layui-icon").addClass(s).html(i[0]),layui.event.call(n[0],l,"radio("+u+")",{elem:n[0],value:n[0].value,othis:a}))})};a.each(function(a,l){var r=t(this),s=r.next("."+e),o=this.disabled;if("string"==typeof r.attr("lay-ignore"))return r.show();s[0]&&s.remove();var u=t(['<div class="layui-unselect '+e,l.checked?" "+e+"ed":"",(o?" layui-radio-disbaled "+c:"")+'">','<i class="layui-anim layui-icon">'+i[l.checked?0:1]+"</i>","<div>"+function(){var e=l.title||"";return"string"==typeof r.next().attr("lay-radio")&&(e=r.next().html(),r.next().remove()),e}()+"</div>","</div>"].join(""));r.after(u),n.call(this,u)})}};return e?d[e]?d[e]():a.error("不支持的"+e+"表单渲染"):layui.each(d,function(e,t){t()}),n};var d=function(){var e=t(this),a=f.config.verify,s=null,o="layui-form-danger",c={},u=e.parents(r),d=u.find("*[lay-verify]"),v=e.parents("form")[0],h=u.find("input,select,textarea"),y=e.attr("lay-filter");if(layui.each(d,function(e,l){var r=t(this),c=r.attr("lay-verify").split("|"),u=r.attr("lay-verType"),d=r.val();if(r.removeClass(o),layui.each(c,function(e,t){var c,f="",v="function"==typeof a[t];if(a[t]){var c=v?f=a[t](d,l):!a[t][0].test(d);if(f=f||a[t][1],c)return"tips"===u?i.tips(f,function(){return"string"==typeof r.attr("lay-ignore")||"select"!==l.tagName.toLowerCase()&&!/^checkbox|radio$/.test(l.type)?r:r.next()}(),{tips:1}):"alert"===u?i.alert(f,{title:"提示",shadeClose:!0}):i.msg(f,{icon:5,shift:6}),n.android||n.ios||l.focus(),r.addClass(o),s=!0}}),s)return s}),s)return!1;var p={};return layui.each(h,function(e,t){if(t.name=(t.name||"").replace(/^\s*|\s*&/,""),t.name){if(/^.*\[\]$/.test(t.name)){var i=t.name.match(/^(.*)\[\]$/g)[0];p[i]=0|p[i],t.name=t.name.replace(/^(.*)\[\]$/,"$1["+p[i]++ +"]")}/^checkbox|radio$/.test(t.type)&&!t.checked||(c[t.name]=t.value)}}),layui.event.call(this,l,"submit("+y+")",{elem:this,form:v,field:c})},f=new u,v=t(document),h=t(window);f.render(),v.on("reset",r,function(){var e=t(this).attr("lay-filter");setTimeout(function(){f.render(null,e)},50)}),v.on("submit",r,d).on("click","*[lay-submit]",d),e(l,f)});
\ No newline at end of file
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/jquery.js b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/jquery.js
new file mode 100644
index 0000000..242696a
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/jquery.js
@@ -0,0 +1,5 @@
+/** layui-v2.4.5 MIT License By https://www.layui.com */
+ ;!function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){function n(e){var t=!!e&&"length"in e&&e.length,n=pe.type(e);return"function"!==n&&!pe.isWindow(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}function r(e,t,n){if(pe.isFunction(t))return pe.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return pe.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(Ce.test(t))return pe.filter(t,e,n);t=pe.filter(t,e)}return pe.grep(e,function(e){return pe.inArray(e,t)>-1!==n})}function i(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}function o(e){var t={};return pe.each(e.match(De)||[],function(e,n){t[n]=!0}),t}function a(){re.addEventListener?(re.removeEventListener("DOMContentLoaded",s),e.removeEventListener("load",s)):(re.detachEvent("onreadystatechange",s),e.detachEvent("onload",s))}function s(){(re.addEventListener||"load"===e.event.type||"complete"===re.readyState)&&(a(),pe.ready())}function u(e,t,n){if(void 0===n&&1===e.nodeType){var r="data-"+t.replace(_e,"-$1").toLowerCase();if(n=e.getAttribute(r),"string"==typeof n){try{n="true"===n||"false"!==n&&("null"===n?null:+n+""===n?+n:qe.test(n)?pe.parseJSON(n):n)}catch(i){}pe.data(e,t,n)}else n=void 0}return n}function l(e){var t;for(t in e)if(("data"!==t||!pe.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function c(e,t,n,r){if(He(e)){var i,o,a=pe.expando,s=e.nodeType,u=s?pe.cache:e,l=s?e[a]:e[a]&&a;if(l&&u[l]&&(r||u[l].data)||void 0!==n||"string"!=typeof t)return l||(l=s?e[a]=ne.pop()||pe.guid++:a),u[l]||(u[l]=s?{}:{toJSON:pe.noop}),"object"!=typeof t&&"function"!=typeof t||(r?u[l]=pe.extend(u[l],t):u[l].data=pe.extend(u[l].data,t)),o=u[l],r||(o.data||(o.data={}),o=o.data),void 0!==n&&(o[pe.camelCase(t)]=n),"string"==typeof t?(i=o[t],null==i&&(i=o[pe.camelCase(t)])):i=o,i}}function f(e,t,n){if(He(e)){var r,i,o=e.nodeType,a=o?pe.cache:e,s=o?e[pe.expando]:pe.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){pe.isArray(t)?t=t.concat(pe.map(t,pe.camelCase)):t in r?t=[t]:(t=pe.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;for(;i--;)delete r[t[i]];if(n?!l(r):!pe.isEmptyObject(r))return}(n||(delete a[s].data,l(a[s])))&&(o?pe.cleanData([e],!0):fe.deleteExpando||a!=a.window?delete a[s]:a[s]=void 0)}}}function d(e,t,n,r){var i,o=1,a=20,s=r?function(){return r.cur()}:function(){return pe.css(e,t,"")},u=s(),l=n&&n[3]||(pe.cssNumber[t]?"":"px"),c=(pe.cssNumber[t]||"px"!==l&&+u)&&Me.exec(pe.css(e,t));if(c&&c[3]!==l){l=l||c[3],n=n||[],c=+u||1;do o=o||".5",c/=o,pe.style(e,t,c+l);while(o!==(o=s()/u)&&1!==o&&--a)}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}function p(e){var t=ze.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function h(e,t){var n,r,i=0,o="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):void 0;if(!o)for(o=[],n=e.childNodes||e;null!=(r=n[i]);i++)!t||pe.nodeName(r,t)?o.push(r):pe.merge(o,h(r,t));return void 0===t||t&&pe.nodeName(e,t)?pe.merge([e],o):o}function g(e,t){for(var n,r=0;null!=(n=e[r]);r++)pe._data(n,"globalEval",!t||pe._data(t[r],"globalEval"))}function m(e){Be.test(e.type)&&(e.defaultChecked=e.checked)}function y(e,t,n,r,i){for(var o,a,s,u,l,c,f,d=e.length,y=p(t),v=[],x=0;x<d;x++)if(a=e[x],a||0===a)if("object"===pe.type(a))pe.merge(v,a.nodeType?[a]:a);else if(Ue.test(a)){for(u=u||y.appendChild(t.createElement("div")),l=(We.exec(a)||["",""])[1].toLowerCase(),f=Xe[l]||Xe._default,u.innerHTML=f[1]+pe.htmlPrefilter(a)+f[2],o=f[0];o--;)u=u.lastChild;if(!fe.leadingWhitespace&&$e.test(a)&&v.push(t.createTextNode($e.exec(a)[0])),!fe.tbody)for(a="table"!==l||Ve.test(a)?"<table>"!==f[1]||Ve.test(a)?0:u:u.firstChild,o=a&&a.childNodes.length;o--;)pe.nodeName(c=a.childNodes[o],"tbody")&&!c.childNodes.length&&a.removeChild(c);for(pe.merge(v,u.childNodes),u.textContent="";u.firstChild;)u.removeChild(u.firstChild);u=y.lastChild}else v.push(t.createTextNode(a));for(u&&y.removeChild(u),fe.appendChecked||pe.grep(h(v,"input"),m),x=0;a=v[x++];)if(r&&pe.inArray(a,r)>-1)i&&i.push(a);else if(s=pe.contains(a.ownerDocument,a),u=h(y.appendChild(a),"script"),s&&g(u),n)for(o=0;a=u[o++];)Ie.test(a.type||"")&&n.push(a);return u=null,y}function v(){return!0}function x(){return!1}function b(){try{return re.activeElement}catch(e){}}function w(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)w(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),i===!1)i=x;else if(!i)return e;return 1===o&&(a=i,i=function(e){return pe().off(e),a.apply(this,arguments)},i.guid=a.guid||(a.guid=pe.guid++)),e.each(function(){pe.event.add(this,t,i,r,n)})}function T(e,t){return pe.nodeName(e,"table")&&pe.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function C(e){return e.type=(null!==pe.find.attr(e,"type"))+"/"+e.type,e}function E(e){var t=it.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function N(e,t){if(1===t.nodeType&&pe.hasData(e)){var n,r,i,o=pe._data(e),a=pe._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;r<i;r++)pe.event.add(t,n,s[n][r])}a.data&&(a.data=pe.extend({},a.data))}}function k(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!fe.noCloneEvent&&t[pe.expando]){i=pe._data(t);for(r in i.events)pe.removeEvent(t,r,i.handle);t.removeAttribute(pe.expando)}"script"===n&&t.text!==e.text?(C(t).text=e.text,E(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),fe.html5Clone&&e.innerHTML&&!pe.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Be.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:"input"!==n&&"textarea"!==n||(t.defaultValue=e.defaultValue)}}function S(e,t,n,r){t=oe.apply([],t);var i,o,a,s,u,l,c=0,f=e.length,d=f-1,p=t[0],g=pe.isFunction(p);if(g||f>1&&"string"==typeof p&&!fe.checkClone&&rt.test(p))return e.each(function(i){var o=e.eq(i);g&&(t[0]=p.call(this,i,o.html())),S(o,t,n,r)});if(f&&(l=y(t,e[0].ownerDocument,!1,e,r),i=l.firstChild,1===l.childNodes.length&&(l=i),i||r)){for(s=pe.map(h(l,"script"),C),a=s.length;c<f;c++)o=l,c!==d&&(o=pe.clone(o,!0,!0),a&&pe.merge(s,h(o,"script"))),n.call(e[c],o,c);if(a)for(u=s[s.length-1].ownerDocument,pe.map(s,E),c=0;c<a;c++)o=s[c],Ie.test(o.type||"")&&!pe._data(o,"globalEval")&&pe.contains(u,o)&&(o.src?pe._evalUrl&&pe._evalUrl(o.src):pe.globalEval((o.text||o.textContent||o.innerHTML||"").replace(ot,"")));l=i=null}return e}function A(e,t,n){for(var r,i=t?pe.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||pe.cleanData(h(r)),r.parentNode&&(n&&pe.contains(r.ownerDocument,r)&&g(h(r,"script")),r.parentNode.removeChild(r));return e}function D(e,t){var n=pe(t.createElement(e)).appendTo(t.body),r=pe.css(n[0],"display");return n.detach(),r}function j(e){var t=re,n=lt[e];return n||(n=D(e,t),"none"!==n&&n||(ut=(ut||pe("<iframe frameborder='0' width='0' height='0'/>")).appendTo(t.documentElement),t=(ut[0].contentWindow||ut[0].contentDocument).document,t.write(),t.close(),n=D(e,t),ut.detach()),lt[e]=n),n}function L(e,t){return{get:function(){return e()?void delete this.get:(this.get=t).apply(this,arguments)}}}function H(e){if(e in Et)return e;for(var t=e.charAt(0).toUpperCase()+e.slice(1),n=Ct.length;n--;)if(e=Ct[n]+t,e in Et)return e}function q(e,t){for(var n,r,i,o=[],a=0,s=e.length;a<s;a++)r=e[a],r.style&&(o[a]=pe._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&Re(r)&&(o[a]=pe._data(r,"olddisplay",j(r.nodeName)))):(i=Re(r),(n&&"none"!==n||!i)&&pe._data(r,"olddisplay",i?n:pe.css(r,"display"))));for(a=0;a<s;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}function _(e,t,n){var r=bt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function F(e,t,n,r,i){for(var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;o<4;o+=2)"margin"===n&&(a+=pe.css(e,n+Oe[o],!0,i)),r?("content"===n&&(a-=pe.css(e,"padding"+Oe[o],!0,i)),"margin"!==n&&(a-=pe.css(e,"border"+Oe[o]+"Width",!0,i))):(a+=pe.css(e,"padding"+Oe[o],!0,i),"padding"!==n&&(a+=pe.css(e,"border"+Oe[o]+"Width",!0,i)));return a}function M(t,n,r){var i=!0,o="width"===n?t.offsetWidth:t.offsetHeight,a=ht(t),s=fe.boxSizing&&"border-box"===pe.css(t,"boxSizing",!1,a);if(re.msFullscreenElement&&e.top!==e&&t.getClientRects().length&&(o=Math.round(100*t.getBoundingClientRect()[n])),o<=0||null==o){if(o=gt(t,n,a),(o<0||null==o)&&(o=t.style[n]),ft.test(o))return o;i=s&&(fe.boxSizingReliable()||o===t.style[n]),o=parseFloat(o)||0}return o+F(t,n,r||(s?"border":"content"),i,a)+"px"}function O(e,t,n,r,i){return new O.prototype.init(e,t,n,r,i)}function R(){return e.setTimeout(function(){Nt=void 0}),Nt=pe.now()}function P(e,t){var n,r={height:e},i=0;for(t=t?1:0;i<4;i+=2-t)n=Oe[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function B(e,t,n){for(var r,i=($.tweeners[t]||[]).concat($.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function W(e,t,n){var r,i,o,a,s,u,l,c,f=this,d={},p=e.style,h=e.nodeType&&Re(e),g=pe._data(e,"fxshow");n.queue||(s=pe._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,u=s.empty.fire,s.empty.fire=function(){s.unqueued||u()}),s.unqueued++,f.always(function(){f.always(function(){s.unqueued--,pe.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],l=pe.css(e,"display"),c="none"===l?pe._data(e,"olddisplay")||j(e.nodeName):l,"inline"===c&&"none"===pe.css(e,"float")&&(fe.inlineBlockNeedsLayout&&"inline"!==j(e.nodeName)?p.zoom=1:p.display="inline-block")),n.overflow&&(p.overflow="hidden",fe.shrinkWrapBlocks()||f.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t)if(i=t[r],St.exec(i)){if(delete t[r],o=o||"toggle"===i,i===(h?"hide":"show")){if("show"!==i||!g||void 0===g[r])continue;h=!0}d[r]=g&&g[r]||pe.style(e,r)}else l=void 0;if(pe.isEmptyObject(d))"inline"===("none"===l?j(e.nodeName):l)&&(p.display=l);else{g?"hidden"in g&&(h=g.hidden):g=pe._data(e,"fxshow",{}),o&&(g.hidden=!h),h?pe(e).show():f.done(function(){pe(e).hide()}),f.done(function(){var t;pe._removeData(e,"fxshow");for(t in d)pe.style(e,t,d[t])});for(r in d)a=B(h?g[r]:0,r,f),r in g||(g[r]=a.start,h&&(a.end=a.start,a.start="width"===r||"height"===r?1:0))}}function I(e,t){var n,r,i,o,a;for(n in e)if(r=pe.camelCase(n),i=t[r],o=e[n],pe.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),a=pe.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}function $(e,t,n){var r,i,o=0,a=$.prefilters.length,s=pe.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;for(var t=Nt||R(),n=Math.max(0,l.startTime+l.duration-t),r=n/l.duration||0,o=1-r,a=0,u=l.tweens.length;a<u;a++)l.tweens[a].run(o);return s.notifyWith(e,[l,o,n]),o<1&&u?n:(s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:pe.extend({},t),opts:pe.extend(!0,{specialEasing:{},easing:pe.easing._default},n),originalProperties:t,originalOptions:n,startTime:Nt||R(),duration:n.duration,tweens:[],createTween:function(t,n){var r=pe.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;n<r;n++)l.tweens[n].run(1);return t?(s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l,t])):s.rejectWith(e,[l,t]),this}}),c=l.props;for(I(c,l.opts.specialEasing);o<a;o++)if(r=$.prefilters[o].call(l,e,c,l.opts))return pe.isFunction(r.stop)&&(pe._queueHooks(l.elem,l.opts.queue).stop=pe.proxy(r.stop,r)),r;return pe.map(c,B,l),pe.isFunction(l.opts.start)&&l.opts.start.call(e,l),pe.fx.timer(pe.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}function z(e){return pe.attr(e,"class")||""}function X(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(De)||[];if(pe.isFunction(n))for(;r=o[i++];)"+"===r.charAt(0)?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function U(e,t,n,r){function i(s){var u;return o[s]=!0,pe.each(e[s]||[],function(e,s){var l=s(t,n,r);return"string"!=typeof l||a||o[l]?a?!(u=l):void 0:(t.dataTypes.unshift(l),i(l),!1)}),u}var o={},a=e===Qt;return i(t.dataTypes[0])||!o["*"]&&i("*")}function V(e,t){var n,r,i=pe.ajaxSettings.flatOptions||{};for(r in t)void 0!==t[r]&&((i[r]?e:n||(n={}))[r]=t[r]);return n&&pe.extend(!0,e,n),e}function Y(e,t,n){for(var r,i,o,a,s=e.contents,u=e.dataTypes;"*"===u[0];)u.shift(),void 0===i&&(i=e.mimeType||t.getResponseHeader("Content-Type"));if(i)for(a in s)if(s[a]&&s[a].test(i)){u.unshift(a);break}if(u[0]in n)o=u[0];else{for(a in n){if(!u[0]||e.converters[a+" "+u[0]]){o=a;break}r||(r=a)}o=o||r}if(o)return o!==u[0]&&u.unshift(o),n[o]}function J(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];for(o=c.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(a=l[u+" "+o]||l["* "+o],!a)for(i in l)if(s=i.split(" "),s[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){a===!0?a=l[i]:l[i]!==!0&&(o=s[0],c.unshift(s[1]));break}if(a!==!0)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(f){return{state:"parsererror",error:a?f:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}function G(e){return e.style&&e.style.display||pe.css(e,"display")}function K(e){for(;e&&1===e.nodeType;){if("none"===G(e)||"hidden"===e.type)return!0;e=e.parentNode}return!1}function Q(e,t,n,r){var i;if(pe.isArray(t))pe.each(t,function(t,i){n||rn.test(e)?r(e,i):Q(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==pe.type(t))r(e,t);else for(i in t)Q(e+"["+i+"]",t[i],n,r)}function Z(){try{return new e.XMLHttpRequest}catch(t){}}function ee(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function te(e){return pe.isWindow(e)?e:9===e.nodeType&&(e.defaultView||e.parentWindow)}var ne=[],re=e.document,ie=ne.slice,oe=ne.concat,ae=ne.push,se=ne.indexOf,ue={},le=ue.toString,ce=ue.hasOwnProperty,fe={},de="1.12.3",pe=function(e,t){return new pe.fn.init(e,t)},he=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,ge=/^-ms-/,me=/-([\da-z])/gi,ye=function(e,t){return t.toUpperCase()};pe.fn=pe.prototype={jquery:de,constructor:pe,selector:"",length:0,toArray:function(){return ie.call(this)},get:function(e){return null!=e?e<0?this[e+this.length]:this[e]:ie.call(this)},pushStack:function(e){var t=pe.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e){return pe.each(this,e)},map:function(e){return this.pushStack(pe.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(ie.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:ae,sort:ne.sort,splice:ne.splice},pe.extend=pe.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||pe.isFunction(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(i=arguments[s]))for(r in i)e=a[r],n=i[r],a!==n&&(l&&n&&(pe.isPlainObject(n)||(t=pe.isArray(n)))?(t?(t=!1,o=e&&pe.isArray(e)?e:[]):o=e&&pe.isPlainObject(e)?e:{},a[r]=pe.extend(l,o,n)):void 0!==n&&(a[r]=n));return a},pe.extend({expando:"jQuery"+(de+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isFunction:function(e){return"function"===pe.type(e)},isArray:Array.isArray||function(e){return"array"===pe.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){var t=e&&e.toString();return!pe.isArray(e)&&t-parseFloat(t)+1>=0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},isPlainObject:function(e){var t;if(!e||"object"!==pe.type(e)||e.nodeType||pe.isWindow(e))return!1;try{if(e.constructor&&!ce.call(e,"constructor")&&!ce.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}if(!fe.ownFirst)for(t in e)return ce.call(e,t);for(t in e);return void 0===t||ce.call(e,t)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?ue[le.call(e)]||"object":typeof e},globalEval:function(t){t&&pe.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(ge,"ms-").replace(me,ye)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t){var r,i=0;if(n(e))for(r=e.length;i<r&&t.call(e[i],i,e[i])!==!1;i++);else for(i in e)if(t.call(e[i],i,e[i])===!1)break;return e},trim:function(e){return null==e?"":(e+"").replace(he,"")},makeArray:function(e,t){var r=t||[];return null!=e&&(n(Object(e))?pe.merge(r,"string"==typeof e?[e]:e):ae.call(r,e)),r},inArray:function(e,t,n){var r;if(t){if(se)return se.call(t,e,n);for(r=t.length,n=n?n<0?Math.max(0,r+n):n:0;n<r;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;)e[i++]=t[r++];if(n!==n)for(;void 0!==t[r];)e[i++]=t[r++];return e.length=i,e},grep:function(e,t,n){for(var r,i=[],o=0,a=e.length,s=!n;o<a;o++)r=!t(e[o],o),r!==s&&i.push(e[o]);return i},map:function(e,t,r){var i,o,a=0,s=[];if(n(e))for(i=e.length;a<i;a++)o=t(e[a],a,r),null!=o&&s.push(o);else for(a in e)o=t(e[a],a,r),null!=o&&s.push(o);return oe.apply([],s)},guid:1,proxy:function(e,t){var n,r,i;if("string"==typeof t&&(i=e[t],t=e,e=i),pe.isFunction(e))return n=ie.call(arguments,2),r=function(){return e.apply(t||this,n.concat(ie.call(arguments)))},r.guid=e.guid=e.guid||pe.guid++,r},now:function(){return+new Date},support:fe}),"function"==typeof Symbol&&(pe.fn[Symbol.iterator]=ne[Symbol.iterator]),pe.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){ue["[object "+t+"]"]=t.toLowerCase()});var ve=function(e){function t(e,t,n,r){var i,o,a,s,u,l,f,p,h=t&&t.ownerDocument,g=t?t.nodeType:9;if(n=n||[],"string"!=typeof e||!e||1!==g&&9!==g&&11!==g)return n;if(!r&&((t?t.ownerDocument||t:B)!==H&&L(t),t=t||H,_)){if(11!==g&&(l=ye.exec(e)))if(i=l[1]){if(9===g){if(!(a=t.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(h&&(a=h.getElementById(i))&&R(t,a)&&a.id===i)return n.push(a),n}else{if(l[2])return Q.apply(n,t.getElementsByTagName(e)),n;if((i=l[3])&&w.getElementsByClassName&&t.getElementsByClassName)return Q.apply(n,t.getElementsByClassName(i)),n}if(w.qsa&&!X[e+" "]&&(!F||!F.test(e))){if(1!==g)h=t,p=e;else if("object"!==t.nodeName.toLowerCase()){for((s=t.getAttribute("id"))?s=s.replace(xe,"\\$&"):t.setAttribute("id",s=P),f=N(e),o=f.length,u=de.test(s)?"#"+s:"[id='"+s+"']";o--;)f[o]=u+" "+d(f[o]);p=f.join(","),h=ve.test(e)&&c(t.parentNode)||t}if(p)try{return Q.apply(n,h.querySelectorAll(p)),n}catch(m){}finally{s===P&&t.removeAttribute("id")}}}return S(e.replace(se,"$1"),t,n,r)}function n(){function e(n,r){return t.push(n+" ")>T.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[P]=!0,e}function i(e){var t=H.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),r=n.length;r--;)T.attrHandle[n[r]]=t}function a(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||V)-(~e.sourceIndex||V);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function u(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function l(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function c(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function f(){}function d(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function p(e,t,n){var r=t.dir,i=n&&"parentNode"===r,o=I++;return t.first?function(t,n,o){for(;t=t[r];)if(1===t.nodeType||i)return e(t,n,o)}:function(t,n,a){var s,u,l,c=[W,o];if(a){for(;t=t[r];)if((1===t.nodeType||i)&&e(t,n,a))return!0}else for(;t=t[r];)if(1===t.nodeType||i){if(l=t[P]||(t[P]={}),u=l[t.uniqueID]||(l[t.uniqueID]={}),(s=u[r])&&s[0]===W&&s[1]===o)return c[2]=s[2];if(u[r]=c,c[2]=e(t,n,a))return!0}}}function h(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function g(e,n,r){for(var i=0,o=n.length;i<o;i++)t(e,n[i],r);return r}function m(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function y(e,t,n,i,o,a){return i&&!i[P]&&(i=y(i)),o&&!o[P]&&(o=y(o,a)),r(function(r,a,s,u){var l,c,f,d=[],p=[],h=a.length,y=r||g(t||"*",s.nodeType?[s]:s,[]),v=!e||!r&&t?y:m(y,d,e,s,u),x=n?o||(r?e:h||i)?[]:a:v;if(n&&n(v,x,s,u),i)for(l=m(x,p),i(l,[],s,u),c=l.length;c--;)(f=l[c])&&(x[p[c]]=!(v[p[c]]=f));if(r){if(o||e){if(o){for(l=[],c=x.length;c--;)(f=x[c])&&l.push(v[c]=f);o(null,x=[],l,u)}for(c=x.length;c--;)(f=x[c])&&(l=o?ee(r,f):d[c])>-1&&(r[l]=!(a[l]=f))}}else x=m(x===a?x.splice(h,x.length):x),o?o(null,a,x,u):Q.apply(a,x)})}function v(e){for(var t,n,r,i=e.length,o=T.relative[e[0].type],a=o||T.relative[" "],s=o?1:0,u=p(function(e){return e===t},a,!0),l=p(function(e){return ee(t,e)>-1},a,!0),c=[function(e,n,r){var i=!o&&(r||n!==A)||((t=n).nodeType?u(e,n,r):l(e,n,r));return t=null,i}];s<i;s++)if(n=T.relative[e[s].type])c=[p(h(c),n)];else{if(n=T.filter[e[s].type].apply(null,e[s].matches),n[P]){for(r=++s;r<i&&!T.relative[e[r].type];r++);return y(s>1&&h(c),s>1&&d(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(se,"$1"),n,s<r&&v(e.slice(s,r)),r<i&&v(e=e.slice(r)),r<i&&d(e))}c.push(n)}return h(c)}function x(e,n){var i=n.length>0,o=e.length>0,a=function(r,a,s,u,l){var c,f,d,p=0,h="0",g=r&&[],y=[],v=A,x=r||o&&T.find.TAG("*",l),b=W+=null==v?1:Math.random()||.1,w=x.length;for(l&&(A=a===H||a||l);h!==w&&null!=(c=x[h]);h++){if(o&&c){for(f=0,a||c.ownerDocument===H||(L(c),s=!_);d=e[f++];)if(d(c,a||H,s)){u.push(c);break}l&&(W=b)}i&&((c=!d&&c)&&p--,r&&g.push(c))}if(p+=h,i&&h!==p){for(f=0;d=n[f++];)d(g,y,a,s);if(r){if(p>0)for(;h--;)g[h]||y[h]||(y[h]=G.call(u));y=m(y)}Q.apply(u,y),l&&!r&&y.length>0&&p+n.length>1&&t.uniqueSort(u)}return l&&(W=b,A=v),g};return i?r(a):a}var b,w,T,C,E,N,k,S,A,D,j,L,H,q,_,F,M,O,R,P="sizzle"+1*new Date,B=e.document,W=0,I=0,$=n(),z=n(),X=n(),U=function(e,t){return e===t&&(j=!0),0},V=1<<31,Y={}.hasOwnProperty,J=[],G=J.pop,K=J.push,Q=J.push,Z=J.slice,ee=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},te="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",ne="[\\x20\\t\\r\\n\\f]",re="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",ie="\\["+ne+"*("+re+")(?:"+ne+"*([*^$|!~]?=)"+ne+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+re+"))|)"+ne+"*\\]",oe=":("+re+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+ie+")*)|.*)\\)|)",ae=new RegExp(ne+"+","g"),se=new RegExp("^"+ne+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ne+"+$","g"),ue=new RegExp("^"+ne+"*,"+ne+"*"),le=new RegExp("^"+ne+"*([>+~]|"+ne+")"+ne+"*"),ce=new RegExp("="+ne+"*([^\\]'\"]*?)"+ne+"*\\]","g"),fe=new RegExp(oe),de=new RegExp("^"+re+"$"),pe={ID:new RegExp("^#("+re+")"),CLASS:new RegExp("^\\.("+re+")"),TAG:new RegExp("^("+re+"|[*])"),ATTR:new RegExp("^"+ie),PSEUDO:new RegExp("^"+oe),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ne+"*(even|odd|(([+-]|)(\\d*)n|)"+ne+"*(?:([+-]|)"+ne+"*(\\d+)|))"+ne+"*\\)|)","i"),bool:new RegExp("^(?:"+te+")$","i"),needsContext:new RegExp("^"+ne+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ne+"*((?:-\\d)?\\d*)"+ne+"*\\)|)(?=[^-]|$)","i")},he=/^(?:input|select|textarea|button)$/i,ge=/^h\d$/i,me=/^[^{]+\{\s*\[native \w/,ye=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ve=/[+~]/,xe=/'|\\/g,be=new RegExp("\\\\([\\da-f]{1,6}"+ne+"?|("+ne+")|.)","ig"),we=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},Te=function(){L()};try{Q.apply(J=Z.call(B.childNodes),B.childNodes),J[B.childNodes.length].nodeType}catch(Ce){Q={apply:J.length?function(e,t){K.apply(e,Z.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}w=t.support={},E=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},L=t.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:B;return r!==H&&9===r.nodeType&&r.documentElement?(H=r,q=H.documentElement,_=!E(H),(n=H.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",Te,!1):n.attachEvent&&n.attachEvent("onunload",Te)),w.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),w.getElementsByTagName=i(function(e){return e.appendChild(H.createComment("")),!e.getElementsByTagName("*").length}),w.getElementsByClassName=me.test(H.getElementsByClassName),w.getById=i(function(e){return q.appendChild(e).id=P,!H.getElementsByName||!H.getElementsByName(P).length}),w.getById?(T.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&_){var n=t.getElementById(e);return n?[n]:[]}},T.filter.ID=function(e){var t=e.replace(be,we);return function(e){return e.getAttribute("id")===t}}):(delete T.find.ID,T.filter.ID=function(e){var t=e.replace(be,we);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}}),T.find.TAG=w.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):w.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},T.find.CLASS=w.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&_)return t.getElementsByClassName(e)},M=[],F=[],(w.qsa=me.test(H.querySelectorAll))&&(i(function(e){q.appendChild(e).innerHTML="<a id='"+P+"'></a><select id='"+P+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&F.push("[*^$]="+ne+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||F.push("\\["+ne+"*(?:value|"+te+")"),e.querySelectorAll("[id~="+P+"-]").length||F.push("~="),e.querySelectorAll(":checked").length||F.push(":checked"),e.querySelectorAll("a#"+P+"+*").length||F.push(".#.+[+~]")}),i(function(e){var t=H.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&F.push("name"+ne+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||F.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),F.push(",.*:")})),(w.matchesSelector=me.test(O=q.matches||q.webkitMatchesSelector||q.mozMatchesSelector||q.oMatchesSelector||q.msMatchesSelector))&&i(function(e){w.disconnectedMatch=O.call(e,"div"),O.call(e,"[s!='']:x"),M.push("!=",oe)}),F=F.length&&new RegExp(F.join("|")),M=M.length&&new RegExp(M.join("|")),t=me.test(q.compareDocumentPosition),R=t||me.test(q.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},U=t?function(e,t){if(e===t)return j=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n?n:(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!w.sortDetached&&t.compareDocumentPosition(e)===n?e===H||e.ownerDocument===B&&R(B,e)?-1:t===H||t.ownerDocument===B&&R(B,t)?1:D?ee(D,e)-ee(D,t):0:4&n?-1:1)}:function(e,t){if(e===t)return j=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,s=[e],u=[t];if(!i||!o)return e===H?-1:t===H?1:i?-1:o?1:D?ee(D,e)-ee(D,t):0;if(i===o)return a(e,t);for(n=e;n=n.parentNode;)s.unshift(n);for(n=t;n=n.parentNode;)u.unshift(n);for(;s[r]===u[r];)r++;return r?a(s[r],u[r]):s[r]===B?-1:u[r]===B?1:0},H):H},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==H&&L(e),n=n.replace(ce,"='$1']"),w.matchesSelector&&_&&!X[n+" "]&&(!M||!M.test(n))&&(!F||!F.test(n)))try{var r=O.call(e,n);if(r||w.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(i){}return t(n,H,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==H&&L(e),R(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==H&&L(e);var n=T.attrHandle[t.toLowerCase()],r=n&&Y.call(T.attrHandle,t.toLowerCase())?n(e,t,!_):void 0;return void 0!==r?r:w.attributes||!_?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],r=0,i=0;if(j=!w.detectDuplicates,D=!w.sortStable&&e.slice(0),e.sort(U),j){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return D=null,e},C=t.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=C(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=C(t);return n},T=t.selectors={cacheLength:50,createPseudo:r,match:pe,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(be,we),e[3]=(e[3]||e[4]||e[5]||"").replace(be,we),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return pe.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&fe.test(n)&&(t=N(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(be,we).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=$[e+" "];return t||(t=new RegExp("(^|"+ne+")"+e+"("+ne+"|$)"))&&$(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,r){return function(i){var o=t.attr(i,e);return null==o?"!="===n:!n||(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o.replace(ae," ")+" ").indexOf(r)>-1:"|="===n&&(o===r||o.slice(0,r.length+1)===r+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,d,p,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!u&&!s,x=!1;if(m){if(o){for(;g;){for(d=t;d=d[g];)if(s?d.nodeName.toLowerCase()===y:1===d.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){for(d=m,f=d[P]||(d[P]={}),c=f[d.uniqueID]||(f[d.uniqueID]={}),
+l=c[e]||[],p=l[0]===W&&l[1],x=p&&l[2],d=p&&m.childNodes[p];d=++p&&d&&d[g]||(x=p=0)||h.pop();)if(1===d.nodeType&&++x&&d===t){c[e]=[W,p,x];break}}else if(v&&(d=t,f=d[P]||(d[P]={}),c=f[d.uniqueID]||(f[d.uniqueID]={}),l=c[e]||[],p=l[0]===W&&l[1],x=p),x===!1)for(;(d=++p&&d&&d[g]||(x=p=0)||h.pop())&&((s?d.nodeName.toLowerCase()!==y:1!==d.nodeType)||!++x||(v&&(f=d[P]||(d[P]={}),c=f[d.uniqueID]||(f[d.uniqueID]={}),c[e]=[W,x]),d!==t)););return x-=i,x===r||x%r===0&&x/r>=0}}},PSEUDO:function(e,n){var i,o=T.pseudos[e]||T.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return o[P]?o(n):o.length>1?(i=[e,e,"",n],T.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,t){for(var r,i=o(e,n),a=i.length;a--;)r=ee(e,i[a]),e[r]=!(t[r]=i[a])}):function(e){return o(e,0,i)}):o}},pseudos:{not:r(function(e){var t=[],n=[],i=k(e.replace(se,"$1"));return i[P]?r(function(e,t,n,r){for(var o,a=i(e,null,r,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),t[0]=null,!n.pop()}}),has:r(function(e){return function(n){return t(e,n).length>0}}),contains:r(function(e){return e=e.replace(be,we),function(t){return(t.textContent||t.innerText||C(t)).indexOf(e)>-1}}),lang:r(function(e){return de.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(be,we).toLowerCase(),function(t){var n;do if(n=_?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===q},focus:function(e){return e===H.activeElement&&(!H.hasFocus||H.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!T.pseudos.empty(e)},header:function(e){return ge.test(e.nodeName)},input:function(e){return he.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:l(function(){return[0]}),last:l(function(e,t){return[t-1]}),eq:l(function(e,t,n){return[n<0?n+t:n]}),even:l(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:l(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:l(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:l(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}},T.pseudos.nth=T.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})T.pseudos[b]=s(b);for(b in{submit:!0,reset:!0})T.pseudos[b]=u(b);return f.prototype=T.filters=T.pseudos,T.setFilters=new f,N=t.tokenize=function(e,n){var r,i,o,a,s,u,l,c=z[e+" "];if(c)return n?0:c.slice(0);for(s=e,u=[],l=T.preFilter;s;){r&&!(i=ue.exec(s))||(i&&(s=s.slice(i[0].length)||s),u.push(o=[])),r=!1,(i=le.exec(s))&&(r=i.shift(),o.push({value:r,type:i[0].replace(se," ")}),s=s.slice(r.length));for(a in T.filter)!(i=pe[a].exec(s))||l[a]&&!(i=l[a](i))||(r=i.shift(),o.push({value:r,type:a,matches:i}),s=s.slice(r.length));if(!r)break}return n?s.length:s?t.error(e):z(e,u).slice(0)},k=t.compile=function(e,t){var n,r=[],i=[],o=X[e+" "];if(!o){for(t||(t=N(e)),n=t.length;n--;)o=v(t[n]),o[P]?r.push(o):i.push(o);o=X(e,x(i,r)),o.selector=e}return o},S=t.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,f=!r&&N(e=l.selector||e);if(n=n||[],1===f.length){if(o=f[0]=f[0].slice(0),o.length>2&&"ID"===(a=o[0]).type&&w.getById&&9===t.nodeType&&_&&T.relative[o[1].type]){if(t=(T.find.ID(a.matches[0].replace(be,we),t)||[])[0],!t)return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=pe.needsContext.test(e)?0:o.length;i--&&(a=o[i],!T.relative[s=a.type]);)if((u=T.find[s])&&(r=u(a.matches[0].replace(be,we),ve.test(o[0].type)&&c(t.parentNode)||t))){if(o.splice(i,1),e=r.length&&d(o),!e)return Q.apply(n,r),n;break}}return(l||k(e,f))(r,t,!_,n,!t||ve.test(e)&&c(t.parentNode)||t),n},w.sortStable=P.split("").sort(U).join("")===P,w.detectDuplicates=!!j,L(),w.sortDetached=i(function(e){return 1&e.compareDocumentPosition(H.createElement("div"))}),i(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),w.attributes&&i(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),i(function(e){return null==e.getAttribute("disabled")})||o(te,function(e,t,n){var r;if(!n)return e[t]===!0?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),t}(e);pe.find=ve,pe.expr=ve.selectors,pe.expr[":"]=pe.expr.pseudos,pe.uniqueSort=pe.unique=ve.uniqueSort,pe.text=ve.getText,pe.isXMLDoc=ve.isXML,pe.contains=ve.contains;var xe=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&pe(e).is(n))break;r.push(e)}return r},be=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},we=pe.expr.match.needsContext,Te=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,Ce=/^.[^:#\[\.,]*$/;pe.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?pe.find.matchesSelector(r,e)?[r]:[]:pe.find.matches(e,pe.grep(t,function(e){return 1===e.nodeType}))},pe.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(pe(e).filter(function(){for(t=0;t<i;t++)if(pe.contains(r[t],this))return!0}));for(t=0;t<i;t++)pe.find(e,r[t],n);return n=this.pushStack(i>1?pe.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},filter:function(e){return this.pushStack(r(this,e||[],!1))},not:function(e){return this.pushStack(r(this,e||[],!0))},is:function(e){return!!r(this,"string"==typeof e&&we.test(e)?pe(e):e||[],!1).length}});var Ee,Ne=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,ke=pe.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||Ee,"string"==typeof e){if(r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:Ne.exec(e),!r||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof pe?t[0]:t,pe.merge(this,pe.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:re,!0)),Te.test(r[1])&&pe.isPlainObject(t))for(r in t)pe.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}if(i=re.getElementById(r[2]),i&&i.parentNode){if(i.id!==r[2])return Ee.find(e);this.length=1,this[0]=i}return this.context=re,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):pe.isFunction(e)?"undefined"!=typeof n.ready?n.ready(e):e(pe):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),pe.makeArray(e,this))};ke.prototype=pe.fn,Ee=pe(re);var Se=/^(?:parents|prev(?:Until|All))/,Ae={children:!0,contents:!0,next:!0,prev:!0};pe.fn.extend({has:function(e){var t,n=pe(e,this),r=n.length;return this.filter(function(){for(t=0;t<r;t++)if(pe.contains(this,n[t]))return!0})},closest:function(e,t){for(var n,r=0,i=this.length,o=[],a=we.test(e)||"string"!=typeof e?pe(e,t||this.context):0;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&pe.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?pe.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?pe.inArray(this[0],pe(e)):pe.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(pe.uniqueSort(pe.merge(this.get(),pe(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),pe.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return xe(e,"parentNode")},parentsUntil:function(e,t,n){return xe(e,"parentNode",n)},next:function(e){return i(e,"nextSibling")},prev:function(e){return i(e,"previousSibling")},nextAll:function(e){return xe(e,"nextSibling")},prevAll:function(e){return xe(e,"previousSibling")},nextUntil:function(e,t,n){return xe(e,"nextSibling",n)},prevUntil:function(e,t,n){return xe(e,"previousSibling",n)},siblings:function(e){return be((e.parentNode||{}).firstChild,e)},children:function(e){return be(e.firstChild)},contents:function(e){return pe.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:pe.merge([],e.childNodes)}},function(e,t){pe.fn[e]=function(n,r){var i=pe.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=pe.filter(r,i)),this.length>1&&(Ae[e]||(i=pe.uniqueSort(i)),Se.test(e)&&(i=i.reverse())),this.pushStack(i)}});var De=/\S+/g;pe.Callbacks=function(e){e="string"==typeof e?o(e):pe.extend({},e);var t,n,r,i,a=[],s=[],u=-1,l=function(){for(i=e.once,r=t=!0;s.length;u=-1)for(n=s.shift();++u<a.length;)a[u].apply(n[0],n[1])===!1&&e.stopOnFalse&&(u=a.length,n=!1);e.memory||(n=!1),t=!1,i&&(a=n?[]:"")},c={add:function(){return a&&(n&&!t&&(u=a.length-1,s.push(n)),function r(t){pe.each(t,function(t,n){pe.isFunction(n)?e.unique&&c.has(n)||a.push(n):n&&n.length&&"string"!==pe.type(n)&&r(n)})}(arguments),n&&!t&&l()),this},remove:function(){return pe.each(arguments,function(e,t){for(var n;(n=pe.inArray(t,a,n))>-1;)a.splice(n,1),n<=u&&u--}),this},has:function(e){return e?pe.inArray(e,a)>-1:a.length>0},empty:function(){return a&&(a=[]),this},disable:function(){return i=s=[],a=n="",this},disabled:function(){return!a},lock:function(){return i=!0,n||c.disable(),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=n||[],n=[e,n.slice?n.slice():n],s.push(n),t||l()),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},pe.extend({Deferred:function(e){var t=[["resolve","done",pe.Callbacks("once memory"),"resolved"],["reject","fail",pe.Callbacks("once memory"),"rejected"],["notify","progress",pe.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return pe.Deferred(function(n){pe.each(t,function(t,o){var a=pe.isFunction(e[t])&&e[t];i[o[1]](function(){var e=a&&a.apply(this,arguments);e&&pe.isFunction(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[o[0]+"With"](this===r?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?pe.extend(e,r):r}},i={};return r.pipe=r.then,pe.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t,n,r,i=0,o=ie.call(arguments),a=o.length,s=1!==a||e&&pe.isFunction(e.promise)?a:0,u=1===s?e:pe.Deferred(),l=function(e,n,r){return function(i){n[e]=this,r[e]=arguments.length>1?ie.call(arguments):i,r===t?u.notifyWith(n,r):--s||u.resolveWith(n,r)}};if(a>1)for(t=new Array(a),n=new Array(a),r=new Array(a);i<a;i++)o[i]&&pe.isFunction(o[i].promise)?o[i].promise().progress(l(i,n,t)).done(l(i,r,o)).fail(u.reject):--s;return s||u.resolveWith(r,o),u.promise()}});var je;pe.fn.ready=function(e){return pe.ready.promise().done(e),this},pe.extend({isReady:!1,readyWait:1,holdReady:function(e){e?pe.readyWait++:pe.ready(!0)},ready:function(e){(e===!0?--pe.readyWait:pe.isReady)||(pe.isReady=!0,e!==!0&&--pe.readyWait>0||(je.resolveWith(re,[pe]),pe.fn.triggerHandler&&(pe(re).triggerHandler("ready"),pe(re).off("ready"))))}}),pe.ready.promise=function(t){if(!je)if(je=pe.Deferred(),"complete"===re.readyState||"loading"!==re.readyState&&!re.documentElement.doScroll)e.setTimeout(pe.ready);else if(re.addEventListener)re.addEventListener("DOMContentLoaded",s),e.addEventListener("load",s);else{re.attachEvent("onreadystatechange",s),e.attachEvent("onload",s);var n=!1;try{n=null==e.frameElement&&re.documentElement}catch(r){}n&&n.doScroll&&!function i(){if(!pe.isReady){try{n.doScroll("left")}catch(t){return e.setTimeout(i,50)}a(),pe.ready()}}()}return je.promise(t)},pe.ready.promise();var Le;for(Le in pe(fe))break;fe.ownFirst="0"===Le,fe.inlineBlockNeedsLayout=!1,pe(function(){var e,t,n,r;n=re.getElementsByTagName("body")[0],n&&n.style&&(t=re.createElement("div"),r=re.createElement("div"),r.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(r).appendChild(t),"undefined"!=typeof t.style.zoom&&(t.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",fe.inlineBlockNeedsLayout=e=3===t.offsetWidth,e&&(n.style.zoom=1)),n.removeChild(r))}),function(){var e=re.createElement("div");fe.deleteExpando=!0;try{delete e.test}catch(t){fe.deleteExpando=!1}e=null}();var He=function(e){var t=pe.noData[(e.nodeName+" ").toLowerCase()],n=+e.nodeType||1;return(1===n||9===n)&&(!t||t!==!0&&e.getAttribute("classid")===t)},qe=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,_e=/([A-Z])/g;pe.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?pe.cache[e[pe.expando]]:e[pe.expando],!!e&&!l(e)},data:function(e,t,n){return c(e,t,n)},removeData:function(e,t){return f(e,t)},_data:function(e,t,n){return c(e,t,n,!0)},_removeData:function(e,t){return f(e,t,!0)}}),pe.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=pe.data(o),1===o.nodeType&&!pe._data(o,"parsedAttrs"))){for(n=a.length;n--;)a[n]&&(r=a[n].name,0===r.indexOf("data-")&&(r=pe.camelCase(r.slice(5)),u(o,r,i[r])));pe._data(o,"parsedAttrs",!0)}return i}return"object"==typeof e?this.each(function(){pe.data(this,e)}):arguments.length>1?this.each(function(){pe.data(this,e,t)}):o?u(o,e,pe.data(o,e)):void 0},removeData:function(e){return this.each(function(){pe.removeData(this,e)})}}),pe.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=pe._data(e,t),n&&(!r||pe.isArray(n)?r=pe._data(e,t,pe.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=pe.queue(e,t),r=n.length,i=n.shift(),o=pe._queueHooks(e,t),a=function(){pe.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return pe._data(e,n)||pe._data(e,n,{empty:pe.Callbacks("once memory").add(function(){pe._removeData(e,t+"queue"),pe._removeData(e,n)})})}}),pe.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?pe.queue(this[0],e):void 0===t?this:this.each(function(){var n=pe.queue(this,e,t);pe._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&pe.dequeue(this,e)})},dequeue:function(e){return this.each(function(){pe.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=pe.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};for("string"!=typeof e&&(t=e,e=void 0),e=e||"fx";a--;)n=pe._data(o[a],e+"queueHooks"),n&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}}),function(){var e;fe.shrinkWrapBlocks=function(){if(null!=e)return e;e=!1;var t,n,r;return n=re.getElementsByTagName("body")[0],n&&n.style?(t=re.createElement("div"),r=re.createElement("div"),r.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(r).appendChild(t),"undefined"!=typeof t.style.zoom&&(t.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",t.appendChild(re.createElement("div")).style.width="5px",e=3!==t.offsetWidth),n.removeChild(r),e):void 0}}();var Fe=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,Me=new RegExp("^(?:([+-])=|)("+Fe+")([a-z%]*)$","i"),Oe=["Top","Right","Bottom","Left"],Re=function(e,t){return e=t||e,"none"===pe.css(e,"display")||!pe.contains(e.ownerDocument,e)},Pe=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===pe.type(n)){i=!0;for(s in n)Pe(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,pe.isFunction(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(pe(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},Be=/^(?:checkbox|radio)$/i,We=/<([\w:-]+)/,Ie=/^$|\/(?:java|ecma)script/i,$e=/^\s+/,ze="abbr|article|aside|audio|bdi|canvas|data|datalist|details|dialog|figcaption|figure|footer|header|hgroup|main|mark|meter|nav|output|picture|progress|section|summary|template|time|video";!function(){var e=re.createElement("div"),t=re.createDocumentFragment(),n=re.createElement("input");e.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",fe.leadingWhitespace=3===e.firstChild.nodeType,fe.tbody=!e.getElementsByTagName("tbody").length,fe.htmlSerialize=!!e.getElementsByTagName("link").length,fe.html5Clone="<:nav></:nav>"!==re.createElement("nav").cloneNode(!0).outerHTML,n.type="checkbox",n.checked=!0,t.appendChild(n),fe.appendChecked=n.checked,e.innerHTML="<textarea>x</textarea>",fe.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue,t.appendChild(e),n=re.createElement("input"),n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),e.appendChild(n),fe.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,fe.noCloneEvent=!!e.addEventListener,e[pe.expando]=1,fe.attributes=!e.getAttribute(pe.expando)}();var Xe={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:fe.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]};Xe.optgroup=Xe.option,Xe.tbody=Xe.tfoot=Xe.colgroup=Xe.caption=Xe.thead,Xe.th=Xe.td;var Ue=/<|&#?\w+;/,Ve=/<tbody/i;!function(){var t,n,r=re.createElement("div");for(t in{submit:!0,change:!0,focusin:!0})n="on"+t,(fe[t]=n in e)||(r.setAttribute(n,"t"),fe[t]=r.attributes[n].expando===!1);r=null}();var Ye=/^(?:input|select|textarea)$/i,Je=/^key/,Ge=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ke=/^(?:focusinfocus|focusoutblur)$/,Qe=/^([^.]*)(?:\.(.+)|)/;pe.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,d,p,h,g,m=pe._data(e);if(m){for(n.handler&&(u=n,n=u.handler,i=u.selector),n.guid||(n.guid=pe.guid++),(a=m.events)||(a=m.events={}),(c=m.handle)||(c=m.handle=function(e){return"undefined"==typeof pe||e&&pe.event.triggered===e.type?void 0:pe.event.dispatch.apply(c.elem,arguments)},c.elem=e),t=(t||"").match(De)||[""],s=t.length;s--;)o=Qe.exec(t[s])||[],p=g=o[1],h=(o[2]||"").split(".").sort(),p&&(l=pe.event.special[p]||{},p=(i?l.delegateType:l.bindType)||p,l=pe.event.special[p]||{},f=pe.extend({type:p,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&pe.expr.match.needsContext.test(i),namespace:h.join(".")},u),(d=a[p])||(d=a[p]=[],d.delegateCount=0,l.setup&&l.setup.call(e,r,h,c)!==!1||(e.addEventListener?e.addEventListener(p,c,!1):e.attachEvent&&e.attachEvent("on"+p,c))),l.add&&(l.add.call(e,f),f.handler.guid||(f.handler.guid=n.guid)),i?d.splice(d.delegateCount++,0,f):d.push(f),pe.event.global[p]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,d,p,h,g,m=pe.hasData(e)&&pe._data(e);if(m&&(c=m.events)){for(t=(t||"").match(De)||[""],l=t.length;l--;)if(s=Qe.exec(t[l])||[],p=g=s[1],h=(s[2]||"").split(".").sort(),p){for(f=pe.event.special[p]||{},p=(r?f.delegateType:f.bindType)||p,d=c[p]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),u=o=d.length;o--;)a=d[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(d.splice(o,1),a.selector&&d.delegateCount--,f.remove&&f.remove.call(e,a));u&&!d.length&&(f.teardown&&f.teardown.call(e,h,m.handle)!==!1||pe.removeEvent(e,p,m.handle),delete c[p])}else for(p in c)pe.event.remove(e,p+t[l],n,r,!0);pe.isEmptyObject(c)&&(delete m.handle,pe._removeData(e,"events"))}},trigger:function(t,n,r,i){var o,a,s,u,l,c,f,d=[r||re],p=ce.call(t,"type")?t.type:t,h=ce.call(t,"namespace")?t.namespace.split("."):[];if(s=c=r=r||re,3!==r.nodeType&&8!==r.nodeType&&!Ke.test(p+pe.event.triggered)&&(p.indexOf(".")>-1&&(h=p.split("."),p=h.shift(),h.sort()),a=p.indexOf(":")<0&&"on"+p,t=t[pe.expando]?t:new pe.Event(p,"object"==typeof t&&t),t.isTrigger=i?2:3,t.namespace=h.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=r),n=null==n?[t]:pe.makeArray(n,[t]),l=pe.event.special[p]||{},i||!l.trigger||l.trigger.apply(r,n)!==!1)){if(!i&&!l.noBubble&&!pe.isWindow(r)){for(u=l.delegateType||p,Ke.test(u+p)||(s=s.parentNode);s;s=s.parentNode)d.push(s),c=s;c===(r.ownerDocument||re)&&d.push(c.defaultView||c.parentWindow||e)}for(f=0;(s=d[f++])&&!t.isPropagationStopped();)t.type=f>1?u:l.bindType||p,o=(pe._data(s,"events")||{})[t.type]&&pe._data(s,"handle"),o&&o.apply(s,n),o=a&&s[a],o&&o.apply&&He(s)&&(t.result=o.apply(s,n),t.result===!1&&t.preventDefault());if(t.type=p,!i&&!t.isDefaultPrevented()&&(!l._default||l._default.apply(d.pop(),n)===!1)&&He(r)&&a&&r[p]&&!pe.isWindow(r)){c=r[a],c&&(r[a]=null),pe.event.triggered=p;try{r[p]()}catch(g){}pe.event.triggered=void 0,c&&(r[a]=c)}return t.result}},dispatch:function(e){e=pe.event.fix(e);var t,n,r,i,o,a=[],s=ie.call(arguments),u=(pe._data(this,"events")||{})[e.type]||[],l=pe.event.special[e.type]||{};if(s[0]=e,e.delegateTarget=this,!l.preDispatch||l.preDispatch.call(this,e)!==!1){for(a=pe.event.handlers.call(this,e,u),t=0;(i=a[t++])&&!e.isPropagationStopped();)for(e.currentTarget=i.elem,n=0;(o=i.handlers[n++])&&!e.isImmediatePropagationStopped();)e.rnamespace&&!e.rnamespace.test(o.namespace)||(e.handleObj=o,e.data=o.data,r=((pe.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s),void 0!==r&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()));return l.postDispatch&&l.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,i,o,a=[],s=t.delegateCount,u=e.target;if(s&&u.nodeType&&("click"!==e.type||isNaN(e.button)||e.button<1))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(r=[],n=0;n<s;n++)o=t[n],i=o.selector+" ",void 0===r[i]&&(r[i]=o.needsContext?pe(i,this).index(u)>-1:pe.find(i,this,null,[u]).length),r[i]&&r.push(o);r.length&&a.push({elem:u,handlers:r})}return s<t.length&&a.push({elem:this,handlers:t.slice(s)}),a},fix:function(e){if(e[pe.expando])return e;var t,n,r,i=e.type,o=e,a=this.fixHooks[i];for(a||(this.fixHooks[i]=a=Ge.test(i)?this.mouseHooks:Je.test(i)?this.keyHooks:{}),r=a.props?this.props.concat(a.props):this.props,e=new pe.Event(o),t=r.length;t--;)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||re),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,a.filter?a.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,t){var n,r,i,o=t.button,a=t.fromElement;return null==e.pageX&&null!=t.clientX&&(r=e.target.ownerDocument||re,i=r.documentElement,n=r.body,e.pageX=t.clientX+(i&&i.scrollLeft||n&&n.scrollLeft||0)-(i&&i.clientLeft||n&&n.clientLeft||0),e.pageY=t.clientY+(i&&i.scrollTop||n&&n.scrollTop||0)-(i&&i.clientTop||n&&n.clientTop||0)),!e.relatedTarget&&a&&(e.relatedTarget=a===e.target?t.toElement:a),e.which||void 0===o||(e.which=1&o?1:2&o?3:4&o?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==b()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){if(this===b()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if(pe.nodeName(this,"input")&&"checkbox"===this.type&&this.click)return this.click(),!1},_default:function(e){return pe.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n){var r=pe.extend(new pe.Event,n,{type:e,isSimulated:!0});pe.event.trigger(r,null,t),r.isDefaultPrevented()&&n.preventDefault()}},pe.removeEvent=re.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)}:function(e,t,n){var r="on"+t;e.detachEvent&&("undefined"==typeof e[r]&&(e[r]=null),e.detachEvent(r,n))},pe.Event=function(e,t){return this instanceof pe.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&e.returnValue===!1?v:x):this.type=e,t&&pe.extend(this,t),this.timeStamp=e&&e.timeStamp||pe.now(),void(this[pe.expando]=!0)):new pe.Event(e,t)},pe.Event.prototype={constructor:pe.Event,isDefaultPrevented:x,isPropagationStopped:x,isImmediatePropagationStopped:x,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=v,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=v,e&&!this.isSimulated&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=v,e&&e.stopImmediatePropagation&&e.stopImmediatePropagation(),this.stopPropagation()}},pe.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,t){pe.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return i&&(i===r||pe.contains(r,i))||(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),fe.submit||(pe.event.special.submit={setup:function(){return!pe.nodeName(this,"form")&&void pe.event.add(this,"click._submit keypress._submit",function(e){var t=e.target,n=pe.nodeName(t,"input")||pe.nodeName(t,"button")?pe.prop(t,"form"):void 0;n&&!pe._data(n,"submit")&&(pe.event.add(n,"submit._submit",function(e){e._submitBubble=!0}),pe._data(n,"submit",!0))})},postDispatch:function(e){e._submitBubble&&(delete e._submitBubble,this.parentNode&&!e.isTrigger&&pe.event.simulate("submit",this.parentNode,e))},teardown:function(){return!pe.nodeName(this,"form")&&void pe.event.remove(this,"._submit")}}),fe.change||(pe.event.special.change={setup:function(){return Ye.test(this.nodeName)?("checkbox"!==this.type&&"radio"!==this.type||(pe.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._justChanged=!0)}),pe.event.add(this,"click._change",function(e){this._justChanged&&!e.isTrigger&&(this._justChanged=!1),pe.event.simulate("change",this,e)})),!1):void pe.event.add(this,"beforeactivate._change",function(e){var t=e.target;Ye.test(t.nodeName)&&!pe._data(t,"change")&&(pe.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||pe.event.simulate("change",this.parentNode,e)}),pe._data(t,"change",!0))})},handle:function(e){var t=e.target;if(this!==t||e.isSimulated||e.isTrigger||"radio"!==t.type&&"checkbox"!==t.type)return e.handleObj.handler.apply(this,arguments)},teardown:function(){return pe.event.remove(this,"._change"),!Ye.test(this.nodeName)}}),fe.focusin||pe.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){pe.event.simulate(t,e.target,pe.event.fix(e))};pe.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=pe._data(r,t);i||r.addEventListener(e,n,!0),pe._data(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=pe._data(r,t)-1;i?pe._data(r,t,i):(r.removeEventListener(e,n,!0),pe._removeData(r,t))}}}),pe.fn.extend({on:function(e,t,n,r){return w(this,e,t,n,r)},one:function(e,t,n,r){return w(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,pe(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return t!==!1&&"function"!=typeof t||(n=t,t=void 0),n===!1&&(n=x),this.each(function(){pe.event.remove(this,e,n,t)})},trigger:function(e,t){return this.each(function(){pe.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return pe.event.trigger(e,t,n,!0)}});var Ze=/ jQuery\d+="(?:null|\d+)"/g,et=new RegExp("<(?:"+ze+")[\\s/>]","i"),tt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,nt=/<script|<style|<link/i,rt=/checked\s*(?:[^=]|=\s*.checked.)/i,it=/^true\/(.*)/,ot=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,at=p(re),st=at.appendChild(re.createElement("div"));pe.extend({htmlPrefilter:function(e){return e.replace(tt,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u=pe.contains(e.ownerDocument,e);if(fe.html5Clone||pe.isXMLDoc(e)||!et.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(st.innerHTML=e.outerHTML,st.removeChild(o=st.firstChild)),!(fe.noCloneEvent&&fe.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||pe.isXMLDoc(e)))for(r=h(o),s=h(e),a=0;null!=(i=s[a]);++a)r[a]&&k(i,r[a]);if(t)if(n)for(s=s||h(e),r=r||h(o),a=0;null!=(i=s[a]);a++)N(i,r[a]);else N(e,o);return r=h(o,"script"),r.length>0&&g(r,!u&&h(e,"script")),r=s=i=null,o},cleanData:function(e,t){for(var n,r,i,o,a=0,s=pe.expando,u=pe.cache,l=fe.attributes,c=pe.event.special;null!=(n=e[a]);a++)if((t||He(n))&&(i=n[s],o=i&&u[i])){if(o.events)for(r in o.events)c[r]?pe.event.remove(n,r):pe.removeEvent(n,r,o.handle);u[i]&&(delete u[i],l||"undefined"==typeof n.removeAttribute?n[s]=void 0:n.removeAttribute(s),ne.push(i))}}}),pe.fn.extend({domManip:S,detach:function(e){return A(this,e,!0)},remove:function(e){return A(this,e)},text:function(e){return Pe(this,function(e){return void 0===e?pe.text(this):this.empty().append((this[0]&&this[0].ownerDocument||re).createTextNode(e))},null,e,arguments.length)},append:function(){return S(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=T(this,e);t.appendChild(e)}})},prepend:function(){return S(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=T(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return S(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return S(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++){for(1===e.nodeType&&pe.cleanData(h(e,!1));e.firstChild;)e.removeChild(e.firstChild);e.options&&pe.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return pe.clone(this,e,t)})},html:function(e){return Pe(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e)return 1===t.nodeType?t.innerHTML.replace(Ze,""):void 0;if("string"==typeof e&&!nt.test(e)&&(fe.htmlSerialize||!et.test(e))&&(fe.leadingWhitespace||!$e.test(e))&&!Xe[(We.exec(e)||["",""])[1].toLowerCase()]){e=pe.htmlPrefilter(e);try{for(;n<r;n++)t=this[n]||{},1===t.nodeType&&(pe.cleanData(h(t,!1)),t.innerHTML=e);t=0}catch(i){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=[];return S(this,arguments,function(t){var n=this.parentNode;pe.inArray(this,e)<0&&(pe.cleanData(h(this)),
+n&&n.replaceChild(t,this))},e)}}),pe.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){pe.fn[e]=function(e){for(var n,r=0,i=[],o=pe(e),a=o.length-1;r<=a;r++)n=r===a?this:this.clone(!0),pe(o[r])[t](n),ae.apply(i,n.get());return this.pushStack(i)}});var ut,lt={HTML:"block",BODY:"block"},ct=/^margin/,ft=new RegExp("^("+Fe+")(?!px)[a-z%]+$","i"),dt=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i},pt=re.documentElement;!function(){function t(){var t,c,f=re.documentElement;f.appendChild(u),l.style.cssText="-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",n=i=s=!1,r=a=!0,e.getComputedStyle&&(c=e.getComputedStyle(l),n="1%"!==(c||{}).top,s="2px"===(c||{}).marginLeft,i="4px"===(c||{width:"4px"}).width,l.style.marginRight="50%",r="4px"===(c||{marginRight:"4px"}).marginRight,t=l.appendChild(re.createElement("div")),t.style.cssText=l.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",t.style.marginRight=t.style.width="0",l.style.width="1px",a=!parseFloat((e.getComputedStyle(t)||{}).marginRight),l.removeChild(t)),l.style.display="none",o=0===l.getClientRects().length,o&&(l.style.display="",l.innerHTML="<table><tr><td></td><td>t</td></tr></table>",t=l.getElementsByTagName("td"),t[0].style.cssText="margin:0;border:0;padding:0;display:none",o=0===t[0].offsetHeight,o&&(t[0].style.display="",t[1].style.display="none",o=0===t[0].offsetHeight)),f.removeChild(u)}var n,r,i,o,a,s,u=re.createElement("div"),l=re.createElement("div");l.style&&(l.style.cssText="float:left;opacity:.5",fe.opacity="0.5"===l.style.opacity,fe.cssFloat=!!l.style.cssFloat,l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",fe.clearCloneStyle="content-box"===l.style.backgroundClip,u=re.createElement("div"),u.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",l.innerHTML="",u.appendChild(l),fe.boxSizing=""===l.style.boxSizing||""===l.style.MozBoxSizing||""===l.style.WebkitBoxSizing,pe.extend(fe,{reliableHiddenOffsets:function(){return null==n&&t(),o},boxSizingReliable:function(){return null==n&&t(),i},pixelMarginRight:function(){return null==n&&t(),r},pixelPosition:function(){return null==n&&t(),n},reliableMarginRight:function(){return null==n&&t(),a},reliableMarginLeft:function(){return null==n&&t(),s}}))}();var ht,gt,mt=/^(top|right|bottom|left)$/;e.getComputedStyle?(ht=function(t){var n=t.ownerDocument.defaultView;return n&&n.opener||(n=e),n.getComputedStyle(t)},gt=function(e,t,n){var r,i,o,a,s=e.style;return n=n||ht(e),a=n?n.getPropertyValue(t)||n[t]:void 0,""!==a&&void 0!==a||pe.contains(e.ownerDocument,e)||(a=pe.style(e,t)),n&&!fe.pixelMarginRight()&&ft.test(a)&&ct.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o),void 0===a?a:a+""}):pt.currentStyle&&(ht=function(e){return e.currentStyle},gt=function(e,t,n){var r,i,o,a,s=e.style;return n=n||ht(e),a=n?n[t]:void 0,null==a&&s&&s[t]&&(a=s[t]),ft.test(a)&&!mt.test(t)&&(r=s.left,i=e.runtimeStyle,o=i&&i.left,o&&(i.left=e.currentStyle.left),s.left="fontSize"===t?"1em":a,a=s.pixelLeft+"px",s.left=r,o&&(i.left=o)),void 0===a?a:a+""||"auto"});var yt=/alpha\([^)]*\)/i,vt=/opacity\s*=\s*([^)]*)/i,xt=/^(none|table(?!-c[ea]).+)/,bt=new RegExp("^("+Fe+")(.*)$","i"),wt={position:"absolute",visibility:"hidden",display:"block"},Tt={letterSpacing:"0",fontWeight:"400"},Ct=["Webkit","O","Moz","ms"],Et=re.createElement("div").style;pe.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=gt(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":fe.cssFloat?"cssFloat":"styleFloat"},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=pe.camelCase(t),u=e.style;if(t=pe.cssProps[s]||(pe.cssProps[s]=H(s)||s),a=pe.cssHooks[t]||pe.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:u[t];if(o=typeof n,"string"===o&&(i=Me.exec(n))&&i[1]&&(n=d(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(pe.cssNumber[s]?"":"px")),fe.clearCloneStyle||""!==n||0!==t.indexOf("background")||(u[t]="inherit"),!(a&&"set"in a&&void 0===(n=a.set(e,n,r)))))try{u[t]=n}catch(l){}}},css:function(e,t,n,r){var i,o,a,s=pe.camelCase(t);return t=pe.cssProps[s]||(pe.cssProps[s]=H(s)||s),a=pe.cssHooks[t]||pe.cssHooks[s],a&&"get"in a&&(o=a.get(e,!0,n)),void 0===o&&(o=gt(e,t,r)),"normal"===o&&t in Tt&&(o=Tt[t]),""===n||n?(i=parseFloat(o),n===!0||isFinite(i)?i||0:o):o}}),pe.each(["height","width"],function(e,t){pe.cssHooks[t]={get:function(e,n,r){if(n)return xt.test(pe.css(e,"display"))&&0===e.offsetWidth?dt(e,wt,function(){return M(e,t,r)}):M(e,t,r)},set:function(e,n,r){var i=r&&ht(e);return _(e,n,r?F(e,t,r,fe.boxSizing&&"border-box"===pe.css(e,"boxSizing",!1,i),i):0)}}}),fe.opacity||(pe.cssHooks.opacity={get:function(e,t){return vt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=pe.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===pe.trim(o.replace(yt,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=yt.test(o)?o.replace(yt,i):o+" "+i)}}),pe.cssHooks.marginRight=L(fe.reliableMarginRight,function(e,t){if(t)return dt(e,{display:"inline-block"},gt,[e,"marginRight"])}),pe.cssHooks.marginLeft=L(fe.reliableMarginLeft,function(e,t){if(t)return(parseFloat(gt(e,"marginLeft"))||(pe.contains(e.ownerDocument,e)?e.getBoundingClientRect().left-dt(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}):0))+"px"}),pe.each({margin:"",padding:"",border:"Width"},function(e,t){pe.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+Oe[r]+t]=o[r]||o[r-2]||o[0];return i}},ct.test(e)||(pe.cssHooks[e+t].set=_)}),pe.fn.extend({css:function(e,t){return Pe(this,function(e,t,n){var r,i,o={},a=0;if(pe.isArray(t)){for(r=ht(e),i=t.length;a<i;a++)o[t[a]]=pe.css(e,t[a],!1,r);return o}return void 0!==n?pe.style(e,t,n):pe.css(e,t)},e,t,arguments.length>1)},show:function(){return q(this,!0)},hide:function(){return q(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){Re(this)?pe(this).show():pe(this).hide()})}}),pe.Tween=O,O.prototype={constructor:O,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||pe.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(pe.cssNumber[n]?"":"px")},cur:function(){var e=O.propHooks[this.prop];return e&&e.get?e.get(this):O.propHooks._default.get(this)},run:function(e){var t,n=O.propHooks[this.prop];return this.options.duration?this.pos=t=pe.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):O.propHooks._default.set(this),this}},O.prototype.init.prototype=O.prototype,O.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=pe.css(e.elem,e.prop,""),t&&"auto"!==t?t:0)},set:function(e){pe.fx.step[e.prop]?pe.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[pe.cssProps[e.prop]]&&!pe.cssHooks[e.prop]?e.elem[e.prop]=e.now:pe.style(e.elem,e.prop,e.now+e.unit)}}},O.propHooks.scrollTop=O.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},pe.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},pe.fx=O.prototype.init,pe.fx.step={};var Nt,kt,St=/^(?:toggle|show|hide)$/,At=/queueHooks$/;pe.Animation=pe.extend($,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return d(n.elem,e,Me.exec(t),n),n}]},tweener:function(e,t){pe.isFunction(e)?(t=e,e=["*"]):e=e.match(De);for(var n,r=0,i=e.length;r<i;r++)n=e[r],$.tweeners[n]=$.tweeners[n]||[],$.tweeners[n].unshift(t)},prefilters:[W],prefilter:function(e,t){t?$.prefilters.unshift(e):$.prefilters.push(e)}}),pe.speed=function(e,t,n){var r=e&&"object"==typeof e?pe.extend({},e):{complete:n||!n&&t||pe.isFunction(e)&&e,duration:e,easing:n&&t||t&&!pe.isFunction(t)&&t};return r.duration=pe.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in pe.fx.speeds?pe.fx.speeds[r.duration]:pe.fx.speeds._default,null!=r.queue&&r.queue!==!0||(r.queue="fx"),r.old=r.complete,r.complete=function(){pe.isFunction(r.old)&&r.old.call(this),r.queue&&pe.dequeue(this,r.queue)},r},pe.fn.extend({fadeTo:function(e,t,n,r){return this.filter(Re).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=pe.isEmptyObject(e),o=pe.speed(t,n,r),a=function(){var t=$(this,pe.extend({},e),o);(i||pe._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=void 0),t&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,i=null!=e&&e+"queueHooks",o=pe.timers,a=pe._data(this);if(i)a[i]&&a[i].stop&&r(a[i]);else for(i in a)a[i]&&a[i].stop&&At.test(i)&&r(a[i]);for(i=o.length;i--;)o[i].elem!==this||null!=e&&o[i].queue!==e||(o[i].anim.stop(n),t=!1,o.splice(i,1));!t&&n||pe.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=pe._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=pe.timers,a=r?r.length:0;for(n.finish=!0,pe.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;t<a;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),pe.each(["toggle","show","hide"],function(e,t){var n=pe.fn[t];pe.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(P(t,!0),e,r,i)}}),pe.each({slideDown:P("show"),slideUp:P("hide"),slideToggle:P("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){pe.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),pe.timers=[],pe.fx.tick=function(){var e,t=pe.timers,n=0;for(Nt=pe.now();n<t.length;n++)e=t[n],e()||t[n]!==e||t.splice(n--,1);t.length||pe.fx.stop(),Nt=void 0},pe.fx.timer=function(e){pe.timers.push(e),e()?pe.fx.start():pe.timers.pop()},pe.fx.interval=13,pe.fx.start=function(){kt||(kt=e.setInterval(pe.fx.tick,pe.fx.interval))},pe.fx.stop=function(){e.clearInterval(kt),kt=null},pe.fx.speeds={slow:600,fast:200,_default:400},pe.fn.delay=function(t,n){return t=pe.fx?pe.fx.speeds[t]||t:t,n=n||"fx",this.queue(n,function(n,r){var i=e.setTimeout(n,t);r.stop=function(){e.clearTimeout(i)}})},function(){var e,t=re.createElement("input"),n=re.createElement("div"),r=re.createElement("select"),i=r.appendChild(re.createElement("option"));n=re.createElement("div"),n.setAttribute("className","t"),n.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",e=n.getElementsByTagName("a")[0],t.setAttribute("type","checkbox"),n.appendChild(t),e=n.getElementsByTagName("a")[0],e.style.cssText="top:1px",fe.getSetAttribute="t"!==n.className,fe.style=/top/.test(e.getAttribute("style")),fe.hrefNormalized="/a"===e.getAttribute("href"),fe.checkOn=!!t.value,fe.optSelected=i.selected,fe.enctype=!!re.createElement("form").enctype,r.disabled=!0,fe.optDisabled=!i.disabled,t=re.createElement("input"),t.setAttribute("value",""),fe.input=""===t.getAttribute("value"),t.value="t",t.setAttribute("type","radio"),fe.radioValue="t"===t.value}();var Dt=/\r/g,jt=/[\x20\t\r\n\f]+/g;pe.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=pe.isFunction(e),this.each(function(n){var i;1===this.nodeType&&(i=r?e.call(this,n,pe(this).val()):e,null==i?i="":"number"==typeof i?i+="":pe.isArray(i)&&(i=pe.map(i,function(e){return null==e?"":e+""})),t=pe.valHooks[this.type]||pe.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return t=pe.valHooks[i.type]||pe.valHooks[i.nodeName.toLowerCase()],t&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:(n=i.value,"string"==typeof n?n.replace(Dt,""):null==n?"":n)}}}),pe.extend({valHooks:{option:{get:function(e){var t=pe.find.attr(e,"value");return null!=t?t:pe.trim(pe.text(e)).replace(jt," ")}},select:{get:function(e){for(var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||i<0,a=o?null:[],s=o?i+1:r.length,u=i<0?s:o?i:0;u<s;u++)if(n=r[u],(n.selected||u===i)&&(fe.optDisabled?!n.disabled:null===n.getAttribute("disabled"))&&(!n.parentNode.disabled||!pe.nodeName(n.parentNode,"optgroup"))){if(t=pe(n).val(),o)return t;a.push(t)}return a},set:function(e,t){for(var n,r,i=e.options,o=pe.makeArray(t),a=i.length;a--;)if(r=i[a],pe.inArray(pe.valHooks.option.get(r),o)>-1)try{r.selected=n=!0}catch(s){r.scrollHeight}else r.selected=!1;return n||(e.selectedIndex=-1),i}}}}),pe.each(["radio","checkbox"],function(){pe.valHooks[this]={set:function(e,t){if(pe.isArray(t))return e.checked=pe.inArray(pe(e).val(),t)>-1}},fe.checkOn||(pe.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Lt,Ht,qt=pe.expr.attrHandle,_t=/^(?:checked|selected)$/i,Ft=fe.getSetAttribute,Mt=fe.input;pe.fn.extend({attr:function(e,t){return Pe(this,pe.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){pe.removeAttr(this,e)})}}),pe.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?pe.prop(e,t,n):(1===o&&pe.isXMLDoc(e)||(t=t.toLowerCase(),i=pe.attrHooks[t]||(pe.expr.match.bool.test(t)?Ht:Lt)),void 0!==n?null===n?void pe.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:(r=pe.find.attr(e,t),null==r?void 0:r))},attrHooks:{type:{set:function(e,t){if(!fe.radioValue&&"radio"===t&&pe.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(De);if(o&&1===e.nodeType)for(;n=o[i++];)r=pe.propFix[n]||n,pe.expr.match.bool.test(n)?Mt&&Ft||!_t.test(n)?e[r]=!1:e[pe.camelCase("default-"+n)]=e[r]=!1:pe.attr(e,n,""),e.removeAttribute(Ft?n:r)}}),Ht={set:function(e,t,n){return t===!1?pe.removeAttr(e,n):Mt&&Ft||!_t.test(n)?e.setAttribute(!Ft&&pe.propFix[n]||n,n):e[pe.camelCase("default-"+n)]=e[n]=!0,n}},pe.each(pe.expr.match.bool.source.match(/\w+/g),function(e,t){var n=qt[t]||pe.find.attr;Mt&&Ft||!_t.test(t)?qt[t]=function(e,t,r){var i,o;return r||(o=qt[t],qt[t]=i,i=null!=n(e,t,r)?t.toLowerCase():null,qt[t]=o),i}:qt[t]=function(e,t,n){if(!n)return e[pe.camelCase("default-"+t)]?t.toLowerCase():null}}),Mt&&Ft||(pe.attrHooks.value={set:function(e,t,n){return pe.nodeName(e,"input")?void(e.defaultValue=t):Lt&&Lt.set(e,t,n)}}),Ft||(Lt={set:function(e,t,n){var r=e.getAttributeNode(n);if(r||e.setAttributeNode(r=e.ownerDocument.createAttribute(n)),r.value=t+="","value"===n||t===e.getAttribute(n))return t}},qt.id=qt.name=qt.coords=function(e,t,n){var r;if(!n)return(r=e.getAttributeNode(t))&&""!==r.value?r.value:null},pe.valHooks.button={get:function(e,t){var n=e.getAttributeNode(t);if(n&&n.specified)return n.value},set:Lt.set},pe.attrHooks.contenteditable={set:function(e,t,n){Lt.set(e,""!==t&&t,n)}},pe.each(["width","height"],function(e,t){pe.attrHooks[t]={set:function(e,n){if(""===n)return e.setAttribute(t,"auto"),n}}})),fe.style||(pe.attrHooks.style={get:function(e){return e.style.cssText||void 0},set:function(e,t){return e.style.cssText=t+""}});var Ot=/^(?:input|select|textarea|button|object)$/i,Rt=/^(?:a|area)$/i;pe.fn.extend({prop:function(e,t){return Pe(this,pe.prop,e,t,arguments.length>1)},removeProp:function(e){return e=pe.propFix[e]||e,this.each(function(){try{this[e]=void 0,delete this[e]}catch(t){}})}}),pe.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&pe.isXMLDoc(e)||(t=pe.propFix[t]||t,i=pe.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=pe.find.attr(e,"tabindex");return t?parseInt(t,10):Ot.test(e.nodeName)||Rt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),fe.hrefNormalized||pe.each(["href","src"],function(e,t){pe.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),fe.optSelected||(pe.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),pe.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){pe.propFix[this.toLowerCase()]=this}),fe.enctype||(pe.propFix.enctype="encoding");var Pt=/[\t\r\n\f]/g;pe.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(pe.isFunction(e))return this.each(function(t){pe(this).addClass(e.call(this,t,z(this)))});if("string"==typeof e&&e)for(t=e.match(De)||[];n=this[u++];)if(i=z(n),r=1===n.nodeType&&(" "+i+" ").replace(Pt," ")){for(a=0;o=t[a++];)r.indexOf(" "+o+" ")<0&&(r+=o+" ");s=pe.trim(r),i!==s&&pe.attr(n,"class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(pe.isFunction(e))return this.each(function(t){pe(this).removeClass(e.call(this,t,z(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof e&&e)for(t=e.match(De)||[];n=this[u++];)if(i=z(n),r=1===n.nodeType&&(" "+i+" ").replace(Pt," ")){for(a=0;o=t[a++];)for(;r.indexOf(" "+o+" ")>-1;)r=r.replace(" "+o+" "," ");s=pe.trim(r),i!==s&&pe.attr(n,"class",s)}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):pe.isFunction(e)?this.each(function(n){pe(this).toggleClass(e.call(this,n,z(this),t),t)}):this.each(function(){var t,r,i,o;if("string"===n)for(r=0,i=pe(this),o=e.match(De)||[];t=o[r++];)i.hasClass(t)?i.removeClass(t):i.addClass(t);else void 0!==e&&"boolean"!==n||(t=z(this),t&&pe._data(this,"__className__",t),pe.attr(this,"class",t||e===!1?"":pe._data(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;for(t=" "+e+" ";n=this[r++];)if(1===n.nodeType&&(" "+z(n)+" ").replace(Pt," ").indexOf(t)>-1)return!0;return!1}}),pe.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){pe.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),pe.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}});var Bt=e.location,Wt=pe.now(),It=/\?/,$t=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;pe.parseJSON=function(t){if(e.JSON&&e.JSON.parse)return e.JSON.parse(t+"");var n,r=null,i=pe.trim(t+"");return i&&!pe.trim(i.replace($t,function(e,t,i,o){return n&&t&&(r=0),0===r?e:(n=i||t,r+=!o-!i,"")}))?Function("return "+i)():pe.error("Invalid JSON: "+t)},pe.parseXML=function(t){var n,r;if(!t||"string"!=typeof t)return null;try{e.DOMParser?(r=new e.DOMParser,n=r.parseFromString(t,"text/xml")):(n=new e.ActiveXObject("Microsoft.XMLDOM"),n.async="false",n.loadXML(t))}catch(i){n=void 0}return n&&n.documentElement&&!n.getElementsByTagName("parsererror").length||pe.error("Invalid XML: "+t),n};var zt=/#.*$/,Xt=/([?&])_=[^&]*/,Ut=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Vt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Yt=/^(?:GET|HEAD)$/,Jt=/^\/\//,Gt=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Kt={},Qt={},Zt="*/".concat("*"),en=Bt.href,tn=Gt.exec(en.toLowerCase())||[];pe.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:en,type:"GET",isLocal:Vt.test(tn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Zt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":pe.parseJSON,"text xml":pe.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?V(V(e,pe.ajaxSettings),t):V(pe.ajaxSettings,e)},ajaxPrefilter:X(Kt),ajaxTransport:X(Qt),ajax:function(t,n){function r(t,n,r,i){var o,f,v,x,w,C=n;2!==b&&(b=2,u&&e.clearTimeout(u),c=void 0,s=i||"",T.readyState=t>0?4:0,o=t>=200&&t<300||304===t,r&&(x=Y(d,T,r)),x=J(d,x,T,o),o?(d.ifModified&&(w=T.getResponseHeader("Last-Modified"),w&&(pe.lastModified[a]=w),w=T.getResponseHeader("etag"),w&&(pe.etag[a]=w)),204===t||"HEAD"===d.type?C="nocontent":304===t?C="notmodified":(C=x.state,f=x.data,v=x.error,o=!v)):(v=C,!t&&C||(C="error",t<0&&(t=0))),T.status=t,T.statusText=(n||C)+"",o?g.resolveWith(p,[f,C,T]):g.rejectWith(p,[T,C,v]),T.statusCode(y),y=void 0,l&&h.trigger(o?"ajaxSuccess":"ajaxError",[T,d,o?f:v]),m.fireWith(p,[T,C]),l&&(h.trigger("ajaxComplete",[T,d]),--pe.active||pe.event.trigger("ajaxStop")))}"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,d=pe.ajaxSetup({},n),p=d.context||d,h=d.context&&(p.nodeType||p.jquery)?pe(p):pe.event,g=pe.Deferred(),m=pe.Callbacks("once memory"),y=d.statusCode||{},v={},x={},b=0,w="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!f)for(f={};t=Ut.exec(s);)f[t[1].toLowerCase()]=t[2];t=f[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?s:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=x[n]=x[n]||e,v[e]=t),this},overrideMimeType:function(e){return b||(d.mimeType=e),this},statusCode:function(e){var t;if(e)if(b<2)for(t in e)y[t]=[y[t],e[t]];else T.always(e[T.status]);return this},abort:function(e){var t=e||w;return c&&c.abort(t),r(0,t),this}};if(g.promise(T).complete=m.add,T.success=T.done,T.error=T.fail,d.url=((t||d.url||en)+"").replace(zt,"").replace(Jt,tn[1]+"//"),d.type=n.method||n.type||d.method||d.type,d.dataTypes=pe.trim(d.dataType||"*").toLowerCase().match(De)||[""],null==d.crossDomain&&(i=Gt.exec(d.url.toLowerCase()),d.crossDomain=!(!i||i[1]===tn[1]&&i[2]===tn[2]&&(i[3]||("http:"===i[1]?"80":"443"))===(tn[3]||("http:"===tn[1]?"80":"443")))),d.data&&d.processData&&"string"!=typeof d.data&&(d.data=pe.param(d.data,d.traditional)),U(Kt,d,n,T),2===b)return T;l=pe.event&&d.global,l&&0===pe.active++&&pe.event.trigger("ajaxStart"),d.type=d.type.toUpperCase(),d.hasContent=!Yt.test(d.type),a=d.url,d.hasContent||(d.data&&(a=d.url+=(It.test(a)?"&":"?")+d.data,delete d.data),d.cache===!1&&(d.url=Xt.test(a)?a.replace(Xt,"$1_="+Wt++):a+(It.test(a)?"&":"?")+"_="+Wt++)),d.ifModified&&(pe.lastModified[a]&&T.setRequestHeader("If-Modified-Since",pe.lastModified[a]),pe.etag[a]&&T.setRequestHeader("If-None-Match",pe.etag[a])),(d.data&&d.hasContent&&d.contentType!==!1||n.contentType)&&T.setRequestHeader("Content-Type",d.contentType),T.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+("*"!==d.dataTypes[0]?", "+Zt+"; q=0.01":""):d.accepts["*"]);for(o in d.headers)T.setRequestHeader(o,d.headers[o]);if(d.beforeSend&&(d.beforeSend.call(p,T,d)===!1||2===b))return T.abort();w="abort";for(o in{success:1,error:1,complete:1})T[o](d[o]);if(c=U(Qt,d,n,T)){if(T.readyState=1,l&&h.trigger("ajaxSend",[T,d]),2===b)return T;d.async&&d.timeout>0&&(u=e.setTimeout(function(){T.abort("timeout")},d.timeout));try{b=1,c.send(v,r)}catch(C){if(!(b<2))throw C;r(-1,C)}}else r(-1,"No Transport");return T},getJSON:function(e,t,n){return pe.get(e,t,n,"json")},getScript:function(e,t){return pe.get(e,void 0,t,"script")}}),pe.each(["get","post"],function(e,t){pe[t]=function(e,n,r,i){return pe.isFunction(n)&&(i=i||r,r=n,n=void 0),pe.ajax(pe.extend({url:e,type:t,dataType:i,data:n,success:r},pe.isPlainObject(e)&&e))}}),pe._evalUrl=function(e){return pe.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},pe.fn.extend({wrapAll:function(e){if(pe.isFunction(e))return this.each(function(t){pe(this).wrapAll(e.call(this,t))});if(this[0]){var t=pe(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstChild&&1===e.firstChild.nodeType;)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return pe.isFunction(e)?this.each(function(t){pe(this).wrapInner(e.call(this,t))}):this.each(function(){var t=pe(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=pe.isFunction(e);return this.each(function(n){pe(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){pe.nodeName(this,"body")||pe(this).replaceWith(this.childNodes)}).end()}}),pe.expr.filters.hidden=function(e){return fe.reliableHiddenOffsets()?e.offsetWidth<=0&&e.offsetHeight<=0&&!e.getClientRects().length:K(e)},pe.expr.filters.visible=function(e){return!pe.expr.filters.hidden(e)};var nn=/%20/g,rn=/\[\]$/,on=/\r?\n/g,an=/^(?:submit|button|image|reset|file)$/i,sn=/^(?:input|select|textarea|keygen)/i;pe.param=function(e,t){var n,r=[],i=function(e,t){t=pe.isFunction(t)?t():null==t?"":t,r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(void 0===t&&(t=pe.ajaxSettings&&pe.ajaxSettings.traditional),pe.isArray(e)||e.jquery&&!pe.isPlainObject(e))pe.each(e,function(){i(this.name,this.value)});else for(n in e)Q(n,e[n],t,i);return r.join("&").replace(nn,"+")},pe.fn.extend({serialize:function(){return pe.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=pe.prop(this,"elements");return e?pe.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!pe(this).is(":disabled")&&sn.test(this.nodeName)&&!an.test(e)&&(this.checked||!Be.test(e))}).map(function(e,t){var n=pe(this).val();return null==n?null:pe.isArray(n)?pe.map(n,function(e){return{name:t.name,value:e.replace(on,"\r\n")}}):{name:t.name,value:n.replace(on,"\r\n")}}).get()}}),pe.ajaxSettings.xhr=void 0!==e.ActiveXObject?function(){return this.isLocal?ee():re.documentMode>8?Z():/^(get|post|head|put|delete|options)$/i.test(this.type)&&Z()||ee()}:Z;var un=0,ln={},cn=pe.ajaxSettings.xhr();e.attachEvent&&e.attachEvent("onunload",function(){for(var e in ln)ln[e](void 0,!0)}),fe.cors=!!cn&&"withCredentials"in cn,cn=fe.ajax=!!cn,cn&&pe.ajaxTransport(function(t){if(!t.crossDomain||fe.cors){var n;return{send:function(r,i){var o,a=t.xhr(),s=++un;if(a.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(o in t.xhrFields)a[o]=t.xhrFields[o];t.mimeType&&a.overrideMimeType&&a.overrideMimeType(t.mimeType),t.crossDomain||r["X-Requested-With"]||(r["X-Requested-With"]="XMLHttpRequest");for(o in r)void 0!==r[o]&&a.setRequestHeader(o,r[o]+"");a.send(t.hasContent&&t.data||null),n=function(e,r){var o,u,l;if(n&&(r||4===a.readyState))if(delete ln[s],n=void 0,a.onreadystatechange=pe.noop,r)4!==a.readyState&&a.abort();else{l={},o=a.status,"string"==typeof a.responseText&&(l.text=a.responseText);try{u=a.statusText}catch(c){u=""}o||!t.isLocal||t.crossDomain?1223===o&&(o=204):o=l.text?200:404}l&&i(o,u,l,a.getAllResponseHeaders())},t.async?4===a.readyState?e.setTimeout(n):a.onreadystatechange=ln[s]=n:n()},abort:function(){n&&n(void 0,!0)}}}}),pe.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return pe.globalEval(e),e}}}),pe.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),pe.ajaxTransport("script",function(e){if(e.crossDomain){var t,n=re.head||pe("head")[0]||re.documentElement;return{send:function(r,i){t=re.createElement("script"),t.async=!0,e.scriptCharset&&(t.charset=e.scriptCharset),t.src=e.url,t.onload=t.onreadystatechange=function(e,n){(n||!t.readyState||/loaded|complete/.test(t.readyState))&&(t.onload=t.onreadystatechange=null,t.parentNode&&t.parentNode.removeChild(t),t=null,n||i(200,"success"))},n.insertBefore(t,n.firstChild)},abort:function(){t&&t.onload(void 0,!0)}}}});var fn=[],dn=/(=)\?(?=&|$)|\?\?/;pe.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=fn.pop()||pe.expando+"_"+Wt++;return this[e]=!0,e}}),pe.ajaxPrefilter("json jsonp",function(t,n,r){var i,o,a,s=t.jsonp!==!1&&(dn.test(t.url)?"url":"string"==typeof t.data&&0===(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&dn.test(t.data)&&"data");if(s||"jsonp"===t.dataTypes[0])return i=t.jsonpCallback=pe.isFunction(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,s?t[s]=t[s].replace(dn,"$1"+i):t.jsonp!==!1&&(t.url+=(It.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return a||pe.error(i+" was not called"),a[0]},t.dataTypes[0]="json",o=e[i],e[i]=function(){a=arguments},r.always(function(){void 0===o?pe(e).removeProp(i):e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,fn.push(i)),a&&pe.isFunction(o)&&o(a[0]),a=o=void 0}),"script"}),pe.parseHTML=function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||re;var r=Te.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=y([e],t,i),i&&i.length&&pe(i).remove(),pe.merge([],r.childNodes))};var pn=pe.fn.load;return pe.fn.load=function(e,t,n){if("string"!=typeof e&&pn)return pn.apply(this,arguments);var r,i,o,a=this,s=e.indexOf(" ");return s>-1&&(r=pe.trim(e.slice(s,e.length)),e=e.slice(0,s)),pe.isFunction(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),a.length>0&&pe.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?pe("<div>").append(pe.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},pe.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){pe.fn[t]=function(e){return this.on(t,e)}}),pe.expr.filters.animated=function(e){return pe.grep(pe.timers,function(t){return e===t.elem}).length},pe.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l,c=pe.css(e,"position"),f=pe(e),d={};"static"===c&&(e.style.position="relative"),s=f.offset(),o=pe.css(e,"top"),u=pe.css(e,"left"),l=("absolute"===c||"fixed"===c)&&pe.inArray("auto",[o,u])>-1,l?(r=f.position(),a=r.top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),pe.isFunction(t)&&(t=t.call(e,n,pe.extend({},s))),null!=t.top&&(d.top=t.top-s.top+a),null!=t.left&&(d.left=t.left-s.left+i),"using"in t?t.using.call(e,d):f.css(d)}},pe.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){pe.offset.setOffset(this,e,t)});var t,n,r={top:0,left:0},i=this[0],o=i&&i.ownerDocument;if(o)return t=o.documentElement,pe.contains(t,i)?("undefined"!=typeof i.getBoundingClientRect&&(r=i.getBoundingClientRect()),n=te(o),{top:r.top+(n.pageYOffset||t.scrollTop)-(t.clientTop||0),left:r.left+(n.pageXOffset||t.scrollLeft)-(t.clientLeft||0)}):r},position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===pe.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),pe.nodeName(e[0],"html")||(n=e.offset()),n.top+=pe.css(e[0],"borderTopWidth",!0),n.left+=pe.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-pe.css(r,"marginTop",!0),left:t.left-n.left-pe.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){
+for(var e=this.offsetParent;e&&!pe.nodeName(e,"html")&&"static"===pe.css(e,"position");)e=e.offsetParent;return e||pt})}}),pe.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n=/Y/.test(t);pe.fn[e]=function(r){return Pe(this,function(e,r,i){var o=te(e);return void 0===i?o?t in o?o[t]:o.document.documentElement[r]:e[r]:void(o?o.scrollTo(n?pe(o).scrollLeft():i,n?i:pe(o).scrollTop()):e[r]=i)},e,r,arguments.length,null)}}),pe.each(["top","left"],function(e,t){pe.cssHooks[t]=L(fe.pixelPosition,function(e,n){if(n)return n=gt(e,t),ft.test(n)?pe(e).position()[t]+"px":n})}),pe.each({Height:"height",Width:"width"},function(e,t){pe.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){pe.fn[r]=function(r,i){var o=arguments.length&&(n||"boolean"!=typeof r),a=n||(r===!0||i===!0?"margin":"border");return Pe(this,function(t,n,r){var i;return pe.isWindow(t)?t.document.documentElement["client"+e]:9===t.nodeType?(i=t.documentElement,Math.max(t.body["scroll"+e],i["scroll"+e],t.body["offset"+e],i["offset"+e],i["client"+e])):void 0===r?pe.css(t,n,a):pe.style(t,n,r,a)},t,o?r:void 0,o,null)}})}),pe.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),pe.fn.size=function(){return this.length},pe.fn.andSelf=pe.fn.addBack,layui.define(function(e){layui.$=pe,e("jquery",pe)}),pe});
\ No newline at end of file
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/laydate.js b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/laydate.js
new file mode 100644
index 0000000..ae0a591
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/laydate.js
@@ -0,0 +1,2 @@
+/** layui-v2.4.5 MIT License By https://www.layui.com */
+ ;!function(){"use strict";var e=window.layui&&layui.define,t={getPath:function(){var e=document.currentScript?document.currentScript.src:function(){for(var e,t=document.scripts,n=t.length-1,a=n;a>0;a--)if("interactive"===t[a].readyState){e=t[a].src;break}return e||t[n].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),getStyle:function(e,t){var n=e.currentStyle?e.currentStyle:window.getComputedStyle(e,null);return n[n.getPropertyValue?"getPropertyValue":"getAttribute"](t)},link:function(e,a,i){if(n.path){var r=document.getElementsByTagName("head")[0],o=document.createElement("link");"string"==typeof a&&(i=a);var s=(i||e).replace(/\.|\//g,""),l="layuicss-"+s,d=0;o.rel="stylesheet",o.href=n.path+e,o.id=l,document.getElementById(l)||r.appendChild(o),"function"==typeof a&&!function c(){return++d>80?window.console&&console.error("laydate.css: Invalid"):void(1989===parseInt(t.getStyle(document.getElementById(l),"width"))?a():setTimeout(c,100))}()}}},n={v:"5.0.9",config:{},index:window.laydate&&window.laydate.v?1e5:0,path:t.getPath,set:function(e){var t=this;return t.config=w.extend({},t.config,e),t},ready:function(a){var i="laydate",r="",o=(e?"modules/laydate/":"theme/")+"default/laydate.css?v="+n.v+r;return e?layui.addcss(o,a,i):t.link(o,a,i),this}},a=function(){var e=this;return{hint:function(t){e.hint.call(e,t)},config:e.config}},i="laydate",r=".layui-laydate",o="layui-this",s="laydate-disabled",l="开始日期超出了结束日期<br>建议重新选择",d=[100,2e5],c="layui-laydate-static",m="layui-laydate-list",u="laydate-selected",h="layui-laydate-hint",y="laydate-day-prev",f="laydate-day-next",p="layui-laydate-footer",g=".laydate-btns-confirm",v="laydate-time-text",D=".laydate-btns-time",T=function(e){var t=this;t.index=++n.index,t.config=w.extend({},t.config,n.config,e),n.ready(function(){t.init()})},w=function(e){return new C(e)},C=function(e){for(var t=0,n="object"==typeof e?[e]:(this.selector=e,document.querySelectorAll(e||null));t<n.length;t++)this.push(n[t])};C.prototype=[],C.prototype.constructor=C,w.extend=function(){var e=1,t=arguments,n=function(e,t){e=e||(t.constructor===Array?[]:{});for(var a in t)e[a]=t[a]&&t[a].constructor===Object?n(e[a],t[a]):t[a];return e};for(t[0]="object"==typeof t[0]?t[0]:{};e<t.length;e++)"object"==typeof t[e]&&n(t[0],t[e]);return t[0]},w.ie=function(){var e=navigator.userAgent.toLowerCase();return!!(window.ActiveXObject||"ActiveXObject"in window)&&((e.match(/msie\s(\d+)/)||[])[1]||"11")}(),w.stope=function(e){e=e||window.event,e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},w.each=function(e,t){var n,a=this;if("function"!=typeof t)return a;if(e=e||[],e.constructor===Object){for(n in e)if(t.call(e[n],n,e[n]))break}else for(n=0;n<e.length&&!t.call(e[n],n,e[n]);n++);return a},w.digit=function(e,t,n){var a="";e=String(e),t=t||2;for(var i=e.length;i<t;i++)a+="0";return e<Math.pow(10,t)?a+(0|e):e},w.elem=function(e,t){var n=document.createElement(e);return w.each(t||{},function(e,t){n.setAttribute(e,t)}),n},C.addStr=function(e,t){return e=e.replace(/\s+/," "),t=t.replace(/\s+/," ").split(" "),w.each(t,function(t,n){new RegExp("\\b"+n+"\\b").test(e)||(e=e+" "+n)}),e.replace(/^\s|\s$/,"")},C.removeStr=function(e,t){return e=e.replace(/\s+/," "),t=t.replace(/\s+/," ").split(" "),w.each(t,function(t,n){var a=new RegExp("\\b"+n+"\\b");a.test(e)&&(e=e.replace(a,""))}),e.replace(/\s+/," ").replace(/^\s|\s$/,"")},C.prototype.find=function(e){var t=this,n=0,a=[],i="object"==typeof e;return this.each(function(r,o){for(var s=i?[e]:o.querySelectorAll(e||null);n<s.length;n++)a.push(s[n]);t.shift()}),i||(t.selector=(t.selector?t.selector+" ":"")+e),w.each(a,function(e,n){t.push(n)}),t},C.prototype.each=function(e){return w.each.call(this,this,e)},C.prototype.addClass=function(e,t){return this.each(function(n,a){a.className=C[t?"removeStr":"addStr"](a.className,e)})},C.prototype.removeClass=function(e){return this.addClass(e,!0)},C.prototype.hasClass=function(e){var t=!1;return this.each(function(n,a){new RegExp("\\b"+e+"\\b").test(a.className)&&(t=!0)}),t},C.prototype.attr=function(e,t){var n=this;return void 0===t?function(){if(n.length>0)return n[0].getAttribute(e)}():n.each(function(n,a){a.setAttribute(e,t)})},C.prototype.removeAttr=function(e){return this.each(function(t,n){n.removeAttribute(e)})},C.prototype.html=function(e){return this.each(function(t,n){n.innerHTML=e})},C.prototype.val=function(e){return this.each(function(t,n){n.value=e})},C.prototype.append=function(e){return this.each(function(t,n){"object"==typeof e?n.appendChild(e):n.innerHTML=n.innerHTML+e})},C.prototype.remove=function(e){return this.each(function(t,n){e?n.removeChild(e):n.parentNode.removeChild(n)})},C.prototype.on=function(e,t){return this.each(function(n,a){a.attachEvent?a.attachEvent("on"+e,function(e){e.target=e.srcElement,t.call(a,e)}):a.addEventListener(e,t,!1)})},C.prototype.off=function(e,t){return this.each(function(n,a){a.detachEvent?a.detachEvent("on"+e,t):a.removeEventListener(e,t,!1)})},T.isLeapYear=function(e){return e%4===0&&e%100!==0||e%400===0},T.prototype.config={type:"date",range:!1,format:"yyyy-MM-dd",value:null,isInitValue:!0,min:"1900-1-1",max:"2099-12-31",trigger:"focus",show:!1,showBottom:!0,btns:["clear","now","confirm"],lang:"cn",theme:"default",position:null,calendar:!1,mark:{},zIndex:null,done:null,change:null},T.prototype.lang=function(){var e=this,t=e.config,n={cn:{weeks:["日","一","二","三","四","五","六"],time:["时","分","秒"],timeTips:"选择时间",startTime:"开始时间",endTime:"结束时间",dateTips:"返回日期",month:["一","二","三","四","五","六","七","八","九","十","十一","十二"],tools:{confirm:"确定",clear:"清空",now:"现在"}},en:{weeks:["Su","Mo","Tu","We","Th","Fr","Sa"],time:["Hours","Minutes","Seconds"],timeTips:"Select Time",startTime:"Start Time",endTime:"End Time",dateTips:"Select Date",month:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],tools:{confirm:"Confirm",clear:"Clear",now:"Now"}}};return n[t.lang]||n.cn},T.prototype.init=function(){var e=this,t=e.config,n="yyyy|y|MM|M|dd|d|HH|H|mm|m|ss|s",a="static"===t.position,i={year:"yyyy",month:"yyyy-MM",date:"yyyy-MM-dd",time:"HH:mm:ss",datetime:"yyyy-MM-dd HH:mm:ss"};t.elem=w(t.elem),t.eventElem=w(t.eventElem),t.elem[0]&&(t.range===!0&&(t.range="-"),t.format===i.date&&(t.format=i[t.type]),e.format=t.format.match(new RegExp(n+"|.","g"))||[],e.EXP_IF="",e.EXP_SPLIT="",w.each(e.format,function(t,a){var i=new RegExp(n).test(a)?"\\d{"+function(){return new RegExp(n).test(e.format[0===t?t+1:t-1]||"")?/^yyyy|y$/.test(a)?4:a.length:/^yyyy$/.test(a)?"1,4":/^y$/.test(a)?"1,308":"1,2"}()+"}":"\\"+a;e.EXP_IF=e.EXP_IF+i,e.EXP_SPLIT=e.EXP_SPLIT+"("+i+")"}),e.EXP_IF=new RegExp("^"+(t.range?e.EXP_IF+"\\s\\"+t.range+"\\s"+e.EXP_IF:e.EXP_IF)+"$"),e.EXP_SPLIT=new RegExp("^"+e.EXP_SPLIT+"$",""),e.isInput(t.elem[0])||"focus"===t.trigger&&(t.trigger="click"),t.elem.attr("lay-key")||(t.elem.attr("lay-key",e.index),t.eventElem.attr("lay-key",e.index)),t.mark=w.extend({},t.calendar&&"cn"===t.lang?{"0-1-1":"元旦","0-2-14":"情人","0-3-8":"妇女","0-3-12":"植树","0-4-1":"愚人","0-5-1":"劳动","0-5-4":"青年","0-6-1":"儿童","0-9-10":"教师","0-9-18":"国耻","0-10-1":"国庆","0-12-25":"圣诞"}:{},t.mark),w.each(["min","max"],function(e,n){var a=[],i=[];if("number"==typeof t[n]){var r=t[n],o=(new Date).getTime(),s=864e5,l=new Date(r?r<s?o+r*s:r:o);a=[l.getFullYear(),l.getMonth()+1,l.getDate()],r<s||(i=[l.getHours(),l.getMinutes(),l.getSeconds()])}else a=(t[n].match(/\d+-\d+-\d+/)||[""])[0].split("-"),i=(t[n].match(/\d+:\d+:\d+/)||[""])[0].split(":");t[n]={year:0|a[0]||(new Date).getFullYear(),month:a[1]?(0|a[1])-1:(new Date).getMonth(),date:0|a[2]||(new Date).getDate(),hours:0|i[0],minutes:0|i[1],seconds:0|i[2]}}),e.elemID="layui-laydate"+t.elem.attr("lay-key"),(t.show||a)&&e.render(),a||e.events(),t.value&&t.isInitValue&&(t.value.constructor===Date?e.setValue(e.parse(0,e.systemDate(t.value))):e.setValue(t.value)))},T.prototype.render=function(){var e=this,t=e.config,n=e.lang(),a="static"===t.position,i=e.elem=w.elem("div",{id:e.elemID,"class":["layui-laydate",t.range?" layui-laydate-range":"",a?" "+c:"",t.theme&&"default"!==t.theme&&!/^#/.test(t.theme)?" laydate-theme-"+t.theme:""].join("")}),r=e.elemMain=[],o=e.elemHeader=[],s=e.elemCont=[],l=e.table=[],d=e.footer=w.elem("div",{"class":p});if(t.zIndex&&(i.style.zIndex=t.zIndex),w.each(new Array(2),function(e){if(!t.range&&e>0)return!0;var a=w.elem("div",{"class":"layui-laydate-header"}),i=[function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-prev-y"});return e.innerHTML="&#xe65a;",e}(),function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-prev-m"});return e.innerHTML="&#xe603;",e}(),function(){var e=w.elem("div",{"class":"laydate-set-ym"}),t=w.elem("span"),n=w.elem("span");return e.appendChild(t),e.appendChild(n),e}(),function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-next-m"});return e.innerHTML="&#xe602;",e}(),function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-next-y"});return e.innerHTML="&#xe65b;",e}()],d=w.elem("div",{"class":"layui-laydate-content"}),c=w.elem("table"),m=w.elem("thead"),u=w.elem("tr");w.each(i,function(e,t){a.appendChild(t)}),m.appendChild(u),w.each(new Array(6),function(e){var t=c.insertRow(0);w.each(new Array(7),function(a){if(0===e){var i=w.elem("th");i.innerHTML=n.weeks[a],u.appendChild(i)}t.insertCell(a)})}),c.insertBefore(m,c.children[0]),d.appendChild(c),r[e]=w.elem("div",{"class":"layui-laydate-main laydate-main-list-"+e}),r[e].appendChild(a),r[e].appendChild(d),o.push(i),s.push(d),l.push(c)}),w(d).html(function(){var e=[],i=[];return"datetime"===t.type&&e.push('<span lay-type="datetime" class="laydate-btns-time">'+n.timeTips+"</span>"),w.each(t.btns,function(e,r){var o=n.tools[r]||"btn";t.range&&"now"===r||(a&&"clear"===r&&(o="cn"===t.lang?"重置":"Reset"),i.push('<span lay-type="'+r+'" class="laydate-btns-'+r+'">'+o+"</span>"))}),e.push('<div class="laydate-footer-btns">'+i.join("")+"</div>"),e.join("")}()),w.each(r,function(e,t){i.appendChild(t)}),t.showBottom&&i.appendChild(d),/^#/.test(t.theme)){var m=w.elem("style"),u=["#{{id}} .layui-laydate-header{background-color:{{theme}};}","#{{id}} .layui-this{background-color:{{theme}} !important;}"].join("").replace(/{{id}}/g,e.elemID).replace(/{{theme}}/g,t.theme);"styleSheet"in m?(m.setAttribute("type","text/css"),m.styleSheet.cssText=u):m.innerHTML=u,w(i).addClass("laydate-theme-molv"),i.appendChild(m)}e.remove(T.thisElemDate),a?t.elem.append(i):(document.body.appendChild(i),e.position()),e.checkDate().calendar(),e.changeEvent(),T.thisElemDate=e.elemID,"function"==typeof t.ready&&t.ready(w.extend({},t.dateTime,{month:t.dateTime.month+1}))},T.prototype.remove=function(e){var t=this,n=(t.config,w("#"+(e||t.elemID)));return n.hasClass(c)||t.checkDate(function(){n.remove()}),t},T.prototype.position=function(){var e=this,t=e.config,n=e.bindElem||t.elem[0],a=n.getBoundingClientRect(),i=e.elem.offsetWidth,r=e.elem.offsetHeight,o=function(e){return e=e?"scrollLeft":"scrollTop",document.body[e]|document.documentElement[e]},s=function(e){return document.documentElement[e?"clientWidth":"clientHeight"]},l=5,d=a.left,c=a.bottom;d+i+l>s("width")&&(d=s("width")-i-l),c+r+l>s()&&(c=a.top>r?a.top-r:s()-r,c-=2*l),t.position&&(e.elem.style.position=t.position),e.elem.style.left=d+("fixed"===t.position?0:o(1))+"px",e.elem.style.top=c+("fixed"===t.position?0:o())+"px"},T.prototype.hint=function(e){var t=this,n=(t.config,w.elem("div",{"class":h}));t.elem&&(n.innerHTML=e||"",w(t.elem).find("."+h).remove(),t.elem.appendChild(n),clearTimeout(t.hinTimer),t.hinTimer=setTimeout(function(){w(t.elem).find("."+h).remove()},3e3))},T.prototype.getAsYM=function(e,t,n){return n?t--:t++,t<0&&(t=11,e--),t>11&&(t=0,e++),[e,t]},T.prototype.systemDate=function(e){var t=e||new Date;return{year:t.getFullYear(),month:t.getMonth(),date:t.getDate(),hours:e?e.getHours():0,minutes:e?e.getMinutes():0,seconds:e?e.getSeconds():0}},T.prototype.checkDate=function(e){var t,a,i=this,r=(new Date,i.config),o=r.dateTime=r.dateTime||i.systemDate(),s=i.bindElem||r.elem[0],l=(i.isInput(s)?"val":"html",i.isInput(s)?s.value:"static"===r.position?"":s.innerHTML),c=function(e){e.year>d[1]&&(e.year=d[1],a=!0),e.month>11&&(e.month=11,a=!0),e.hours>23&&(e.hours=0,a=!0),e.minutes>59&&(e.minutes=0,e.hours++,a=!0),e.seconds>59&&(e.seconds=0,e.minutes++,a=!0),t=n.getEndDate(e.month+1,e.year),e.date>t&&(e.date=t,a=!0)},m=function(e,t,n){var o=["startTime","endTime"];t=(t.match(i.EXP_SPLIT)||[]).slice(1),n=n||0,r.range&&(i[o[n]]=i[o[n]]||{}),w.each(i.format,function(s,l){var c=parseFloat(t[s]);t[s].length<l.length&&(a=!0),/yyyy|y/.test(l)?(c<d[0]&&(c=d[0],a=!0),e.year=c):/MM|M/.test(l)?(c<1&&(c=1,a=!0),e.month=c-1):/dd|d/.test(l)?(c<1&&(c=1,a=!0),e.date=c):/HH|H/.test(l)?(c<1&&(c=0,a=!0),e.hours=c,r.range&&(i[o[n]].hours=c)):/mm|m/.test(l)?(c<1&&(c=0,a=!0),e.minutes=c,r.range&&(i[o[n]].minutes=c)):/ss|s/.test(l)&&(c<1&&(c=0,a=!0),e.seconds=c,r.range&&(i[o[n]].seconds=c))}),c(e)};return"limit"===e?(c(o),i):(l=l||r.value,"string"==typeof l&&(l=l.replace(/\s+/g," ").replace(/^\s|\s$/g,"")),i.startState&&!i.endState&&(delete i.startState,i.endState=!0),"string"==typeof l&&l?i.EXP_IF.test(l)?r.range?(l=l.split(" "+r.range+" "),i.startDate=i.startDate||i.systemDate(),i.endDate=i.endDate||i.systemDate(),r.dateTime=w.extend({},i.startDate),w.each([i.startDate,i.endDate],function(e,t){m(t,l[e],e)})):m(o,l):(i.hint("日期格式不合法<br>必须遵循下述格式:<br>"+(r.range?r.format+" "+r.range+" "+r.format:r.format)+"<br>已为你重置"),a=!0):l&&l.constructor===Date?r.dateTime=i.systemDate(l):(r.dateTime=i.systemDate(),delete i.startState,delete i.endState,delete i.startDate,delete i.endDate,delete i.startTime,delete i.endTime),c(o),a&&l&&i.setValue(r.range?i.endDate?i.parse():"":i.parse()),e&&e(),i)},T.prototype.mark=function(e,t){var n,a=this,i=a.config;return w.each(i.mark,function(e,a){var i=e.split("-");i[0]!=t[0]&&0!=i[0]||i[1]!=t[1]&&0!=i[1]||i[2]!=t[2]||(n=a||t[2])}),n&&e.html('<span class="laydate-day-mark">'+n+"</span>"),a},T.prototype.limit=function(e,t,n,a){var i,r=this,o=r.config,l={},d=o[n>41?"endDate":"dateTime"],c=w.extend({},d,t||{});return w.each({now:c,min:o.min,max:o.max},function(e,t){l[e]=r.newDate(w.extend({year:t.year,month:t.month,date:t.date},function(){var e={};return w.each(a,function(n,a){e[a]=t[a]}),e}())).getTime()}),i=l.now<l.min||l.now>l.max,e&&e[i?"addClass":"removeClass"](s),i},T.prototype.calendar=function(e){var t,a,i,r=this,s=r.config,l=e||s.dateTime,c=new Date,m=r.lang(),u="date"!==s.type&&"datetime"!==s.type,h=e?1:0,y=w(r.table[h]).find("td"),f=w(r.elemHeader[h][2]).find("span");if(l.year<d[0]&&(l.year=d[0],r.hint("最低只能支持到公元"+d[0]+"年")),l.year>d[1]&&(l.year=d[1],r.hint("最高只能支持到公元"+d[1]+"年")),r.firstDate||(r.firstDate=w.extend({},l)),c.setFullYear(l.year,l.month,1),t=c.getDay(),a=n.getEndDate(l.month||12,l.year),i=n.getEndDate(l.month+1,l.year),w.each(y,function(e,n){var d=[l.year,l.month],c=0;n=w(n),n.removeAttr("class"),e<t?(c=a-t+e,n.addClass("laydate-day-prev"),d=r.getAsYM(l.year,l.month,"sub")):e>=t&&e<i+t?(c=e-t,s.range||c+1===l.date&&n.addClass(o)):(c=e-i-t,n.addClass("laydate-day-next"),d=r.getAsYM(l.year,l.month)),d[1]++,d[2]=c+1,n.attr("lay-ymd",d.join("-")).html(d[2]),r.mark(n,d).limit(n,{year:d[0],month:d[1]-1,date:d[2]},e)}),w(f[0]).attr("lay-ym",l.year+"-"+(l.month+1)),w(f[1]).attr("lay-ym",l.year+"-"+(l.month+1)),"cn"===s.lang?(w(f[0]).attr("lay-type","year").html(l.year+"年"),w(f[1]).attr("lay-type","month").html(l.month+1+"月")):(w(f[0]).attr("lay-type","month").html(m.month[l.month]),w(f[1]).attr("lay-type","year").html(l.year)),u&&(s.range&&(e?r.endDate=r.endDate||{year:l.year+("year"===s.type?1:0),month:l.month+("month"===s.type?0:-1)}:r.startDate=r.startDate||{year:l.year,month:l.month},e&&(r.listYM=[[r.startDate.year,r.startDate.month+1],[r.endDate.year,r.endDate.month+1]],r.list(s.type,0).list(s.type,1),"time"===s.type?r.setBtnStatus("时间",w.extend({},r.systemDate(),r.startTime),w.extend({},r.systemDate(),r.endTime)):r.setBtnStatus(!0))),s.range||(r.listYM=[[l.year,l.month+1]],r.list(s.type,0))),s.range&&!e){var p=r.getAsYM(l.year,l.month);r.calendar(w.extend({},l,{year:p[0],month:p[1]}))}return s.range||r.limit(w(r.footer).find(g),null,0,["hours","minutes","seconds"]),s.range&&e&&!u&&r.stampRange(),r},T.prototype.list=function(e,t){var n=this,a=n.config,i=a.dateTime,r=n.lang(),l=a.range&&"date"!==a.type&&"datetime"!==a.type,d=w.elem("ul",{"class":m+" "+{year:"laydate-year-list",month:"laydate-month-list",time:"laydate-time-list"}[e]}),c=n.elemHeader[t],u=w(c[2]).find("span"),h=n.elemCont[t||0],y=w(h).find("."+m)[0],f="cn"===a.lang,p=f?"年":"",T=n.listYM[t]||{},C=["hours","minutes","seconds"],x=["startTime","endTime"][t];if(T[0]<1&&(T[0]=1),"year"===e){var M,b=M=T[0]-7;b<1&&(b=M=1),w.each(new Array(15),function(e){var i=w.elem("li",{"lay-ym":M}),r={year:M};M==T[0]&&w(i).addClass(o),i.innerHTML=M+p,d.appendChild(i),M<n.firstDate.year?(r.month=a.min.month,r.date=a.min.date):M>=n.firstDate.year&&(r.month=a.max.month,r.date=a.max.date),n.limit(w(i),r,t),M++}),w(u[f?0:1]).attr("lay-ym",M-8+"-"+T[1]).html(b+p+" - "+(M-1+p))}else if("month"===e)w.each(new Array(12),function(e){var i=w.elem("li",{"lay-ym":e}),s={year:T[0],month:e};e+1==T[1]&&w(i).addClass(o),i.innerHTML=r.month[e]+(f?"月":""),d.appendChild(i),T[0]<n.firstDate.year?s.date=a.min.date:T[0]>=n.firstDate.year&&(s.date=a.max.date),n.limit(w(i),s,t)}),w(u[f?0:1]).attr("lay-ym",T[0]+"-"+T[1]).html(T[0]+p);else if("time"===e){var E=function(){w(d).find("ol").each(function(e,a){w(a).find("li").each(function(a,i){n.limit(w(i),[{hours:a},{hours:n[x].hours,minutes:a},{hours:n[x].hours,minutes:n[x].minutes,seconds:a}][e],t,[["hours"],["hours","minutes"],["hours","minutes","seconds"]][e])})}),a.range||n.limit(w(n.footer).find(g),n[x],0,["hours","minutes","seconds"])};a.range?n[x]||(n[x]={hours:0,minutes:0,seconds:0}):n[x]=i,w.each([24,60,60],function(e,t){var a=w.elem("li"),i=["<p>"+r.time[e]+"</p><ol>"];w.each(new Array(t),function(t){i.push("<li"+(n[x][C[e]]===t?' class="'+o+'"':"")+">"+w.digit(t,2)+"</li>")}),a.innerHTML=i.join("")+"</ol>",d.appendChild(a)}),E()}if(y&&h.removeChild(y),h.appendChild(d),"year"===e||"month"===e)w(n.elemMain[t]).addClass("laydate-ym-show"),w(d).find("li").on("click",function(){var r=0|w(this).attr("lay-ym");if(!w(this).hasClass(s)){if(0===t)i[e]=r,l&&(n.startDate[e]=r),n.limit(w(n.footer).find(g),null,0);else if(l)n.endDate[e]=r;else{var c="year"===e?n.getAsYM(r,T[1]-1,"sub"):n.getAsYM(T[0],r,"sub");w.extend(i,{year:c[0],month:c[1]})}"year"===a.type||"month"===a.type?(w(d).find("."+o).removeClass(o),w(this).addClass(o),"month"===a.type&&"year"===e&&(n.listYM[t][0]=r,l&&(n[["startDate","endDate"][t]].year=r),n.list("month",t))):(n.checkDate("limit").calendar(),n.closeList()),n.setBtnStatus(),a.range||n.done(null,"change"),w(n.footer).find(D).removeClass(s)}});else{var S=w.elem("span",{"class":v}),k=function(){w(d).find("ol").each(function(e){var t=this,a=w(t).find("li");t.scrollTop=30*(n[x][C[e]]-2),t.scrollTop<=0&&a.each(function(e,n){if(!w(this).hasClass(s))return t.scrollTop=30*(e-2),!0})})},H=w(c[2]).find("."+v);k(),S.innerHTML=a.range?[r.startTime,r.endTime][t]:r.timeTips,w(n.elemMain[t]).addClass("laydate-time-show"),H[0]&&H.remove(),c[2].appendChild(S),w(d).find("ol").each(function(e){var t=this;w(t).find("li").on("click",function(){var r=0|this.innerHTML;w(this).hasClass(s)||(a.range?n[x][C[e]]=r:i[C[e]]=r,w(t).find("."+o).removeClass(o),w(this).addClass(o),E(),k(),(n.endDate||"time"===a.type)&&n.done(null,"change"),n.setBtnStatus())})})}return n},T.prototype.listYM=[],T.prototype.closeList=function(){var e=this;e.config;w.each(e.elemCont,function(t,n){w(this).find("."+m).remove(),w(e.elemMain[t]).removeClass("laydate-ym-show laydate-time-show")}),w(e.elem).find("."+v).remove()},T.prototype.setBtnStatus=function(e,t,n){var a,i=this,r=i.config,o=w(i.footer).find(g),d=r.range&&"date"!==r.type&&"time"!==r.type;d&&(t=t||i.startDate,n=n||i.endDate,a=i.newDate(t).getTime()>i.newDate(n).getTime(),i.limit(null,t)||i.limit(null,n)?o.addClass(s):o[a?"addClass":"removeClass"](s),e&&a&&i.hint("string"==typeof e?l.replace(/日期/g,e):l))},T.prototype.parse=function(e,t){var n=this,a=n.config,i=t||(e?w.extend({},n.endDate,n.endTime):a.range?w.extend({},n.startDate,n.startTime):a.dateTime),r=n.format.concat();return w.each(r,function(e,t){/yyyy|y/.test(t)?r[e]=w.digit(i.year,t.length):/MM|M/.test(t)?r[e]=w.digit(i.month+1,t.length):/dd|d/.test(t)?r[e]=w.digit(i.date,t.length):/HH|H/.test(t)?r[e]=w.digit(i.hours,t.length):/mm|m/.test(t)?r[e]=w.digit(i.minutes,t.length):/ss|s/.test(t)&&(r[e]=w.digit(i.seconds,t.length))}),a.range&&!e?r.join("")+" "+a.range+" "+n.parse(1):r.join("")},T.prototype.newDate=function(e){return e=e||{},new Date(e.year||1,e.month||0,e.date||1,e.hours||0,e.minutes||0,e.seconds||0)},T.prototype.setValue=function(e){var t=this,n=t.config,a=t.bindElem||n.elem[0],i=t.isInput(a)?"val":"html";return"static"===n.position||w(a)[i](e||""),this},T.prototype.stampRange=function(){var e,t,n=this,a=n.config,i=w(n.elem).find("td");if(a.range&&!n.endDate&&w(n.footer).find(g).addClass(s),n.endDate)return e=n.newDate({year:n.startDate.year,month:n.startDate.month,date:n.startDate.date}).getTime(),t=n.newDate({year:n.endDate.year,month:n.endDate.month,date:n.endDate.date}).getTime(),e>t?n.hint(l):void w.each(i,function(a,i){var r=w(i).attr("lay-ymd").split("-"),s=n.newDate({year:r[0],month:r[1]-1,date:r[2]}).getTime();w(i).removeClass(u+" "+o),s!==e&&s!==t||w(i).addClass(w(i).hasClass(y)||w(i).hasClass(f)?u:o),s>e&&s<t&&w(i).addClass(u)})},T.prototype.done=function(e,t){var n=this,a=n.config,i=w.extend({},n.startDate?w.extend(n.startDate,n.startTime):a.dateTime),r=w.extend({},w.extend(n.endDate,n.endTime));return w.each([i,r],function(e,t){"month"in t&&w.extend(t,{month:t.month+1})}),e=e||[n.parse(),i,r],"function"==typeof a[t||"done"]&&a[t||"done"].apply(a,e),n},T.prototype.choose=function(e){var t=this,n=t.config,a=n.dateTime,i=w(t.elem).find("td"),r=e.attr("lay-ymd").split("-"),l=function(e){new Date;e&&w.extend(a,r),n.range&&(t.startDate?w.extend(t.startDate,r):t.startDate=w.extend({},r,t.startTime),t.startYMD=r)};if(r={year:0|r[0],month:(0|r[1])-1,date:0|r[2]},!e.hasClass(s))if(n.range){if(w.each(["startTime","endTime"],function(e,n){t[n]=t[n]||{hours:0,minutes:0,seconds:0}}),t.endState)l(),delete t.endState,delete t.endDate,t.startState=!0,i.removeClass(o+" "+u),e.addClass(o);else if(t.startState){if(e.addClass(o),t.endDate?w.extend(t.endDate,r):t.endDate=w.extend({},r,t.endTime),t.newDate(r).getTime()<t.newDate(t.startYMD).getTime()){var d=w.extend({},t.endDate,{hours:t.startDate.hours,minutes:t.startDate.minutes,seconds:t.startDate.seconds});w.extend(t.endDate,t.startDate,{hours:t.endDate.hours,minutes:t.endDate.minutes,seconds:t.endDate.seconds}),t.startDate=d}n.showBottom||t.done(),t.stampRange(),t.endState=!0,t.done(null,"change")}else e.addClass(o),l(),t.startState=!0;w(t.footer).find(g)[t.endDate?"removeClass":"addClass"](s)}else"static"===n.position?(l(!0),t.calendar().done().done(null,"change")):"date"===n.type?(l(!0),t.setValue(t.parse()).remove().done()):"datetime"===n.type&&(l(!0),t.calendar().done(null,"change"))},T.prototype.tool=function(e,t){var n=this,a=n.config,i=a.dateTime,r="static"===a.position,o={datetime:function(){w(e).hasClass(s)||(n.list("time",0),a.range&&n.list("time",1),w(e).attr("lay-type","date").html(n.lang().dateTips))},date:function(){n.closeList(),w(e).attr("lay-type","datetime").html(n.lang().timeTips)},clear:function(){n.setValue("").remove(),r&&(w.extend(i,n.firstDate),n.calendar()),a.range&&(delete n.startState,delete n.endState,delete n.endDate,delete n.startTime,delete n.endTime),n.done(["",{},{}])},now:function(){var e=new Date;w.extend(i,n.systemDate(),{hours:e.getHours(),minutes:e.getMinutes(),seconds:e.getSeconds()}),n.setValue(n.parse()).remove(),r&&n.calendar(),n.done()},confirm:function(){if(a.range){if(!n.endDate)return n.hint("请先选择日期范围");if(w(e).hasClass(s))return n.hint("time"===a.type?l.replace(/日期/g,"时间"):l)}else if(w(e).hasClass(s))return n.hint("不在有效日期或时间范围内");n.done(),n.setValue(n.parse()).remove()}};o[t]&&o[t]()},T.prototype.change=function(e){var t=this,n=t.config,a=n.dateTime,i=n.range&&("year"===n.type||"month"===n.type),r=t.elemCont[e||0],o=t.listYM[e],s=function(s){var l=["startDate","endDate"][e],d=w(r).find(".laydate-year-list")[0],c=w(r).find(".laydate-month-list")[0];return d&&(o[0]=s?o[0]-15:o[0]+15,t.list("year",e)),c&&(s?o[0]--:o[0]++,t.list("month",e)),(d||c)&&(w.extend(a,{year:o[0]}),i&&(t[l].year=o[0]),n.range||t.done(null,"change"),t.setBtnStatus(),n.range||t.limit(w(t.footer).find(g),{year:o[0]})),d||c};return{prevYear:function(){s("sub")||(a.year--,t.checkDate("limit").calendar(),n.range||t.done(null,"change"))},prevMonth:function(){var e=t.getAsYM(a.year,a.month,"sub");w.extend(a,{year:e[0],month:e[1]}),t.checkDate("limit").calendar(),n.range||t.done(null,"change")},nextMonth:function(){var e=t.getAsYM(a.year,a.month);w.extend(a,{year:e[0],month:e[1]}),t.checkDate("limit").calendar(),n.range||t.done(null,"change")},nextYear:function(){s()||(a.year++,t.checkDate("limit").calendar(),n.range||t.done(null,"change"))}}},T.prototype.changeEvent=function(){var e=this;e.config;w(e.elem).on("click",function(e){w.stope(e)}),w.each(e.elemHeader,function(t,n){w(n[0]).on("click",function(n){e.change(t).prevYear()}),w(n[1]).on("click",function(n){e.change(t).prevMonth()}),w(n[2]).find("span").on("click",function(n){var a=w(this),i=a.attr("lay-ym"),r=a.attr("lay-type");i&&(i=i.split("-"),e.listYM[t]=[0|i[0],0|i[1]],e.list(r,t),w(e.footer).find(D).addClass(s))}),w(n[3]).on("click",function(n){e.change(t).nextMonth()}),w(n[4]).on("click",function(n){e.change(t).nextYear()})}),w.each(e.table,function(t,n){var a=w(n).find("td");a.on("click",function(){e.choose(w(this))})}),w(e.footer).find("span").on("click",function(){var t=w(this).attr("lay-type");e.tool(this,t)})},T.prototype.isInput=function(e){return/input|textarea/.test(e.tagName.toLocaleLowerCase())},T.prototype.events=function(){var e=this,t=e.config,n=function(n,a){n.on(t.trigger,function(){a&&(e.bindElem=this),e.render()})};t.elem[0]&&!t.elem[0].eventHandler&&(n(t.elem,"bind"),n(t.eventElem),w(document).on("click",function(n){n.target!==t.elem[0]&&n.target!==t.eventElem[0]&&n.target!==w(t.closeStop)[0]&&e.remove()}).on("keydown",function(t){13===t.keyCode&&w("#"+e.elemID)[0]&&e.elemID===T.thisElem&&(t.preventDefault(),w(e.footer).find(g)[0].click())}),w(window).on("resize",function(){return!(!e.elem||!w(r)[0])&&void e.position()}),t.elem[0].eventHandler=!0)},n.render=function(e){var t=new T(e);return a.call(t)},n.getEndDate=function(e,t){var n=new Date;return n.setFullYear(t||n.getFullYear(),e||n.getMonth()+1,1),new Date(n.getTime()-864e5).getDate()},window.lay=window.lay||w,e?(n.ready(),layui.define(function(e){n.path=layui.cache.dir,e(i,n)})):"function"==typeof define&&define.amd?define(function(){return n}):function(){n.ready(),window.laydate=n}()}();
\ No newline at end of file
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/layedit.js b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/layedit.js
new file mode 100644
index 0000000..96caa11
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/layedit.js
@@ -0,0 +1,2 @@
+/** layui-v2.4.5 MIT License By https://www.layui.com */
+ ;layui.define(["layer","form"],function(t){"use strict";var e=layui.$,i=layui.layer,a=layui.form,l=(layui.hint(),layui.device()),n="layedit",o="layui-show",r="layui-disabled",c=function(){var t=this;t.index=0,t.config={tool:["strong","italic","underline","del","|","left","center","right","|","link","unlink","face","image"],hideTool:[],height:280}};c.prototype.set=function(t){var i=this;return e.extend(!0,i.config,t),i},c.prototype.on=function(t,e){return layui.onevent(n,t,e)},c.prototype.build=function(t,i){i=i||{};var a=this,n=a.config,r="layui-layedit",c=e("string"==typeof t?"#"+t:t),u="LAY_layedit_"+ ++a.index,d=c.next("."+r),y=e.extend({},n,i),f=function(){var t=[],e={};return layui.each(y.hideTool,function(t,i){e[i]=!0}),layui.each(y.tool,function(i,a){C[a]&&!e[a]&&t.push(C[a])}),t.join("")}(),m=e(['<div class="'+r+'">','<div class="layui-unselect layui-layedit-tool">'+f+"</div>",'<div class="layui-layedit-iframe">','<iframe id="'+u+'" name="'+u+'" textarea="'+t+'" frameborder="0"></iframe>',"</div>","</div>"].join(""));return l.ie&&l.ie<8?c.removeClass("layui-hide").addClass(o):(d[0]&&d.remove(),s.call(a,m,c[0],y),c.addClass("layui-hide").after(m),a.index)},c.prototype.getContent=function(t){var e=u(t);if(e[0])return d(e[0].document.body.innerHTML)},c.prototype.getText=function(t){var i=u(t);if(i[0])return e(i[0].document.body).text()},c.prototype.setContent=function(t,i,a){var l=u(t);l[0]&&(a?e(l[0].document.body).append(i):e(l[0].document.body).html(i),layedit.sync(t))},c.prototype.sync=function(t){var i=u(t);if(i[0]){var a=e("#"+i[1].attr("textarea"));a.val(d(i[0].document.body.innerHTML))}},c.prototype.getSelection=function(t){var e=u(t);if(e[0]){var i=m(e[0].document);return document.selection?i.text:i.toString()}};var s=function(t,i,a){var l=this,n=t.find("iframe");n.css({height:a.height}).on("load",function(){var o=n.contents(),r=n.prop("contentWindow"),c=o.find("head"),s=e(["<style>","*{margin: 0; padding: 0;}","body{padding: 10px; line-height: 20px; overflow-x: hidden; word-wrap: break-word; font: 14px Helvetica Neue,Helvetica,PingFang SC,Microsoft YaHei,Tahoma,Arial,sans-serif; -webkit-box-sizing: border-box !important; -moz-box-sizing: border-box !important; box-sizing: border-box !important;}","a{color:#01AAED; text-decoration:none;}a:hover{color:#c00}","p{margin-bottom: 10px;}","img{display: inline-block; border: none; vertical-align: middle;}","pre{margin: 10px 0; padding: 10px; line-height: 20px; border: 1px solid #ddd; border-left-width: 6px; background-color: #F2F2F2; color: #333; font-family: Courier New; font-size: 12px;}","</style>"].join("")),u=o.find("body");c.append(s),u.attr("contenteditable","true").css({"min-height":a.height}).html(i.value||""),y.apply(l,[r,n,i,a]),g.call(l,r,t,a)})},u=function(t){var i=e("#LAY_layedit_"+t),a=i.prop("contentWindow");return[a,i]},d=function(t){return 8==l.ie&&(t=t.replace(/<.+>/g,function(t){return t.toLowerCase()})),t},y=function(t,a,n,o){var r=t.document,c=e(r.body);c.on("keydown",function(t){var e=t.keyCode;if(13===e){var a=m(r),l=p(a),n=l.parentNode;if("pre"===n.tagName.toLowerCase()){if(t.shiftKey)return;return i.msg("请暂时用shift+enter"),!1}r.execCommand("formatBlock",!1,"<p>")}}),e(n).parents("form").on("submit",function(){var t=c.html();8==l.ie&&(t=t.replace(/<.+>/g,function(t){return t.toLowerCase()})),n.value=t}),c.on("paste",function(e){r.execCommand("formatBlock",!1,"<p>"),setTimeout(function(){f.call(t,c),n.value=c.html()},100)})},f=function(t){var i=this;i.document;t.find("*[style]").each(function(){var t=this.style.textAlign;this.removeAttribute("style"),e(this).css({"text-align":t||""})}),t.find("table").addClass("layui-table"),t.find("script,link").remove()},m=function(t){return t.selection?t.selection.createRange():t.getSelection().getRangeAt(0)},p=function(t){return t.endContainer||t.parentElement().childNodes[0]},v=function(t,i,a){var l=this.document,n=document.createElement(t);for(var o in i)n.setAttribute(o,i[o]);if(n.removeAttribute("text"),l.selection){var r=a.text||i.text;if("a"===t&&!r)return;r&&(n.innerHTML=r),a.pasteHTML(e(n).prop("outerHTML")),a.select()}else{var r=a.toString()||i.text;if("a"===t&&!r)return;r&&(n.innerHTML=r),a.deleteContents(),a.insertNode(n)}},h=function(t,i){var a=this.document,l="layedit-tool-active",n=p(m(a)),o=function(e){return t.find(".layedit-tool-"+e)};i&&i[i.hasClass(l)?"removeClass":"addClass"](l),t.find(">i").removeClass(l),o("unlink").addClass(r),e(n).parents().each(function(){var t=this.tagName.toLowerCase(),e=this.style.textAlign;"b"!==t&&"strong"!==t||o("b").addClass(l),"i"!==t&&"em"!==t||o("i").addClass(l),"u"===t&&o("u").addClass(l),"strike"===t&&o("d").addClass(l),"p"===t&&("center"===e?o("center").addClass(l):"right"===e?o("right").addClass(l):o("left").addClass(l)),"a"===t&&(o("link").addClass(l),o("unlink").removeClass(r))})},g=function(t,a,l){var n=t.document,o=e(n.body),c={link:function(i){var a=p(i),l=e(a).parent();b.call(o,{href:l.attr("href"),target:l.attr("target")},function(e){var a=l[0];"A"===a.tagName?a.href=e.url:v.call(t,"a",{target:e.target,href:e.url,text:e.url},i)})},unlink:function(t){n.execCommand("unlink")},face:function(e){x.call(this,function(i){v.call(t,"img",{src:i.src,alt:i.alt},e)})},image:function(a){var n=this;layui.use("upload",function(o){var r=l.uploadImage||{};o.render({url:r.url,method:r.type,elem:e(n).find("input")[0],done:function(e){0==e.code?(e.data=e.data||{},v.call(t,"img",{src:e.data.src,alt:e.data.title},a)):i.msg(e.msg||"上传失败")}})})},code:function(e){k.call(o,function(i){v.call(t,"pre",{text:i.code,"lay-lang":i.lang},e)})},help:function(){i.open({type:2,title:"帮助",area:["600px","380px"],shadeClose:!0,shade:.1,skin:"layui-layer-msg",content:["http://www.layui.com/about/layedit/help.html","no"]})}},s=a.find(".layui-layedit-tool"),u=function(){var i=e(this),a=i.attr("layedit-event"),l=i.attr("lay-command");if(!i.hasClass(r)){o.focus();var u=m(n);u.commonAncestorContainer;l?(n.execCommand(l),/justifyLeft|justifyCenter|justifyRight/.test(l)&&n.execCommand("formatBlock",!1,"<p>"),setTimeout(function(){o.focus()},10)):c[a]&&c[a].call(this,u),h.call(t,s,i)}},d=/image/;s.find(">i").on("mousedown",function(){var t=e(this),i=t.attr("layedit-event");d.test(i)||u.call(this)}).on("click",function(){var t=e(this),i=t.attr("layedit-event");d.test(i)&&u.call(this)}),o.on("click",function(){h.call(t,s),i.close(x.index)})},b=function(t,e){var l=this,n=i.open({type:1,id:"LAY_layedit_link",area:"350px",shade:.05,shadeClose:!0,moveType:1,title:"超链接",skin:"layui-layer-msg",content:['<ul class="layui-form" style="margin: 15px;">','<li class="layui-form-item">','<label class="layui-form-label" style="width: 60px;">URL</label>','<div class="layui-input-block" style="margin-left: 90px">','<input name="url" lay-verify="url" value="'+(t.href||"")+'" autofocus="true" autocomplete="off" class="layui-input">',"</div>","</li>",'<li class="layui-form-item">','<label class="layui-form-label" style="width: 60px;">打开方式</label>','<div class="layui-input-block" style="margin-left: 90px">','<input type="radio" name="target" value="_self" class="layui-input" title="当前窗口"'+("_self"!==t.target&&t.target?"":"checked")+">",'<input type="radio" name="target" value="_blank" class="layui-input" title="新窗口" '+("_blank"===t.target?"checked":"")+">","</div>","</li>",'<li class="layui-form-item" style="text-align: center;">','<button type="button" lay-submit lay-filter="layedit-link-yes" class="layui-btn"> 确定 </button>','<button style="margin-left: 20px;" type="button" class="layui-btn layui-btn-primary"> 取消 </button>',"</li>","</ul>"].join(""),success:function(t,n){var o="submit(layedit-link-yes)";a.render("radio"),t.find(".layui-btn-primary").on("click",function(){i.close(n),l.focus()}),a.on(o,function(t){i.close(b.index),e&&e(t.field)})}});b.index=n},x=function(t){var a=function(){var t=["[微笑]","[嘻嘻]","[哈哈]","[可爱]","[可怜]","[挖鼻]","[吃惊]","[害羞]","[挤眼]","[闭嘴]","[鄙视]","[爱你]","[泪]","[偷笑]","[亲亲]","[生病]","[太开心]","[白眼]","[右哼哼]","[左哼哼]","[嘘]","[衰]","[委屈]","[吐]","[哈欠]","[抱抱]","[怒]","[疑问]","[馋嘴]","[拜拜]","[思考]","[汗]","[困]","[睡]","[钱]","[失望]","[酷]","[色]","[哼]","[鼓掌]","[晕]","[悲伤]","[抓狂]","[黑线]","[阴险]","[怒骂]","[互粉]","[心]","[伤心]","[猪头]","[熊猫]","[兔子]","[ok]","[耶]","[good]","[NO]","[赞]","[来]","[弱]","[草泥马]","[神马]","[囧]","[浮云]","[给力]","[围观]","[威武]","[奥特曼]","[礼物]","[钟]","[话筒]","[蜡烛]","[蛋糕]"],e={};return layui.each(t,function(t,i){e[i]=layui.cache.dir+"images/face/"+t+".gif"}),e}();return x.hide=x.hide||function(t){"face"!==e(t.target).attr("layedit-event")&&i.close(x.index)},x.index=i.tips(function(){var t=[];return layui.each(a,function(e,i){t.push('<li title="'+e+'"><img src="'+i+'" alt="'+e+'"></li>')}),'<ul class="layui-clear">'+t.join("")+"</ul>"}(),this,{tips:1,time:0,skin:"layui-box layui-util-face",maxWidth:500,success:function(l,n){l.css({marginTop:-4,marginLeft:-10}).find(".layui-clear>li").on("click",function(){t&&t({src:a[this.title],alt:this.title}),i.close(n)}),e(document).off("click",x.hide).on("click",x.hide)}})},k=function(t){var e=this,l=i.open({type:1,id:"LAY_layedit_code",area:"550px",shade:.05,shadeClose:!0,moveType:1,title:"插入代码",skin:"layui-layer-msg",content:['<ul class="layui-form layui-form-pane" style="margin: 15px;">','<li class="layui-form-item">','<label class="layui-form-label">请选择语言</label>','<div class="layui-input-block">','<select name="lang">','<option value="JavaScript">JavaScript</option>','<option value="HTML">HTML</option>','<option value="CSS">CSS</option>','<option value="Java">Java</option>','<option value="PHP">PHP</option>','<option value="C#">C#</option>','<option value="Python">Python</option>','<option value="Ruby">Ruby</option>','<option value="Go">Go</option>',"</select>","</div>","</li>",'<li class="layui-form-item layui-form-text">','<label class="layui-form-label">代码</label>','<div class="layui-input-block">','<textarea name="code" lay-verify="required" autofocus="true" class="layui-textarea" style="height: 200px;"></textarea>',"</div>","</li>",'<li class="layui-form-item" style="text-align: center;">','<button type="button" lay-submit lay-filter="layedit-code-yes" class="layui-btn"> 确定 </button>','<button style="margin-left: 20px;" type="button" class="layui-btn layui-btn-primary"> 取消 </button>',"</li>","</ul>"].join(""),success:function(l,n){var o="submit(layedit-code-yes)";a.render("select"),l.find(".layui-btn-primary").on("click",function(){i.close(n),e.focus()}),a.on(o,function(e){i.close(k.index),t&&t(e.field)})}});k.index=l},C={html:'<i class="layui-icon layedit-tool-html" title="HTML源代码" lay-command="html" layedit-event="html"">&#xe64b;</i><span class="layedit-tool-mid"></span>',strong:'<i class="layui-icon layedit-tool-b" title="加粗" lay-command="Bold" layedit-event="b"">&#xe62b;</i>',italic:'<i class="layui-icon layedit-tool-i" title="斜体" lay-command="italic" layedit-event="i"">&#xe644;</i>',underline:'<i class="layui-icon layedit-tool-u" title="下划线" lay-command="underline" layedit-event="u"">&#xe646;</i>',del:'<i class="layui-icon layedit-tool-d" title="删除线" lay-command="strikeThrough" layedit-event="d"">&#xe64f;</i>',"|":'<span class="layedit-tool-mid"></span>',left:'<i class="layui-icon layedit-tool-left" title="左对齐" lay-command="justifyLeft" layedit-event="left"">&#xe649;</i>',center:'<i class="layui-icon layedit-tool-center" title="居中对齐" lay-command="justifyCenter" layedit-event="center"">&#xe647;</i>',right:'<i class="layui-icon layedit-tool-right" title="右对齐" lay-command="justifyRight" layedit-event="right"">&#xe648;</i>',link:'<i class="layui-icon layedit-tool-link" title="插入链接" layedit-event="link"">&#xe64c;</i>',unlink:'<i class="layui-icon layedit-tool-unlink layui-disabled" title="清除链接" lay-command="unlink" layedit-event="unlink"">&#xe64d;</i>',face:'<i class="layui-icon layedit-tool-face" title="表情" layedit-event="face"">&#xe650;</i>',image:'<i class="layui-icon layedit-tool-image" title="图片" layedit-event="image">&#xe64a;<input type="file" name="file"></i>',code:'<i class="layui-icon layedit-tool-code" title="插入代码" layedit-event="code">&#xe64e;</i>',help:'<i class="layui-icon layedit-tool-help" title="帮助" layedit-event="help">&#xe607;</i>'},w=new c;t(n,w)});
\ No newline at end of file
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/layer.js b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/layer.js
new file mode 100644
index 0000000..c6d5378
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/layer.js
@@ -0,0 +1,2 @@
+/** layui-v2.4.5 MIT License By https://www.layui.com */
+ ;!function(e,t){"use strict";var i,n,a=e.layui&&layui.define,o={getPath:function(){var e=document.currentScript?document.currentScript.src:function(){for(var e,t=document.scripts,i=t.length-1,n=i;n>0;n--)if("interactive"===t[n].readyState){e=t[n].src;break}return e||t[i].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),config:{},end:{},minIndex:0,minLeft:[],btn:["&#x786E;&#x5B9A;","&#x53D6;&#x6D88;"],type:["dialog","page","iframe","loading","tips"],getStyle:function(t,i){var n=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return n[n.getPropertyValue?"getPropertyValue":"getAttribute"](i)},link:function(t,i,n){if(r.path){var a=document.getElementsByTagName("head")[0],s=document.createElement("link");"string"==typeof i&&(n=i);var l=(n||t).replace(/\.|\//g,""),f="layuicss-"+l,c=0;s.rel="stylesheet",s.href=r.path+t,s.id=f,document.getElementById(f)||a.appendChild(s),"function"==typeof i&&!function u(){return++c>80?e.console&&console.error("layer.css: Invalid"):void(1989===parseInt(o.getStyle(document.getElementById(f),"width"))?i():setTimeout(u,100))}()}}},r={v:"3.1.1",ie:function(){var t=navigator.userAgent.toLowerCase();return!!(e.ActiveXObject||"ActiveXObject"in e)&&((t.match(/msie\s(\d+)/)||[])[1]||"11")}(),index:e.layer&&e.layer.v?1e5:0,path:o.getPath,config:function(e,t){return e=e||{},r.cache=o.config=i.extend({},o.config,e),r.path=o.config.path||r.path,"string"==typeof e.extend&&(e.extend=[e.extend]),o.config.path&&r.ready(),e.extend?(a?layui.addcss("modules/layer/"+e.extend):o.link("theme/"+e.extend),this):this},ready:function(e){var t="layer",i="",n=(a?"modules/layer/":"theme/")+"default/layer.css?v="+r.v+i;return a?layui.addcss(n,e,t):o.link(n,e,t),this},alert:function(e,t,n){var a="function"==typeof t;return a&&(n=t),r.open(i.extend({content:e,yes:n},a?{}:t))},confirm:function(e,t,n,a){var s="function"==typeof t;return s&&(a=n,n=t),r.open(i.extend({content:e,btn:o.btn,yes:n,btn2:a},s?{}:t))},msg:function(e,n,a){var s="function"==typeof n,f=o.config.skin,c=(f?f+" "+f+"-msg":"")||"layui-layer-msg",u=l.anim.length-1;return s&&(a=n),r.open(i.extend({content:e,time:3e3,shade:!1,skin:c,title:!1,closeBtn:!1,btn:!1,resize:!1,end:a},s&&!o.config.skin?{skin:c+" layui-layer-hui",anim:u}:function(){return n=n||{},(n.icon===-1||n.icon===t&&!o.config.skin)&&(n.skin=c+" "+(n.skin||"layui-layer-hui")),n}()))},load:function(e,t){return r.open(i.extend({type:3,icon:e||0,resize:!1,shade:.01},t))},tips:function(e,t,n){return r.open(i.extend({type:4,content:[e,t],closeBtn:!1,time:3e3,shade:!1,resize:!1,fixed:!1,maxWidth:210},n))}},s=function(e){var t=this;t.index=++r.index,t.config=i.extend({},t.config,o.config,e),document.body?t.creat():setTimeout(function(){t.creat()},30)};s.pt=s.prototype;var l=["layui-layer",".layui-layer-title",".layui-layer-main",".layui-layer-dialog","layui-layer-iframe","layui-layer-content","layui-layer-btn","layui-layer-close"];l.anim=["layer-anim-00","layer-anim-01","layer-anim-02","layer-anim-03","layer-anim-04","layer-anim-05","layer-anim-06"],s.pt.config={type:0,shade:.3,fixed:!0,move:l[1],title:"&#x4FE1;&#x606F;",offset:"auto",area:"auto",closeBtn:1,time:0,zIndex:19891014,maxWidth:360,anim:0,isOutAnim:!0,icon:-1,moveType:1,resize:!0,scrollbar:!0,tips:2},s.pt.vessel=function(e,t){var n=this,a=n.index,r=n.config,s=r.zIndex+a,f="object"==typeof r.title,c=r.maxmin&&(1===r.type||2===r.type),u=r.title?'<div class="layui-layer-title" style="'+(f?r.title[1]:"")+'">'+(f?r.title[0]:r.title)+"</div>":"";return r.zIndex=s,t([r.shade?'<div class="layui-layer-shade" id="layui-layer-shade'+a+'" times="'+a+'" style="'+("z-index:"+(s-1)+"; ")+'"></div>':"",'<div class="'+l[0]+(" layui-layer-"+o.type[r.type])+(0!=r.type&&2!=r.type||r.shade?"":" layui-layer-border")+" "+(r.skin||"")+'" id="'+l[0]+a+'" type="'+o.type[r.type]+'" times="'+a+'" showtime="'+r.time+'" conType="'+(e?"object":"string")+'" style="z-index: '+s+"; width:"+r.area[0]+";height:"+r.area[1]+(r.fixed?"":";position:absolute;")+'">'+(e&&2!=r.type?"":u)+'<div id="'+(r.id||"")+'" class="layui-layer-content'+(0==r.type&&r.icon!==-1?" layui-layer-padding":"")+(3==r.type?" layui-layer-loading"+r.icon:"")+'">'+(0==r.type&&r.icon!==-1?'<i class="layui-layer-ico layui-layer-ico'+r.icon+'"></i>':"")+(1==r.type&&e?"":r.content||"")+'</div><span class="layui-layer-setwin">'+function(){var e=c?'<a class="layui-layer-min" href="javascript:;"><cite></cite></a><a class="layui-layer-ico layui-layer-max" href="javascript:;"></a>':"";return r.closeBtn&&(e+='<a class="layui-layer-ico '+l[7]+" "+l[7]+(r.title?r.closeBtn:4==r.type?"1":"2")+'" href="javascript:;"></a>'),e}()+"</span>"+(r.btn?function(){var e="";"string"==typeof r.btn&&(r.btn=[r.btn]);for(var t=0,i=r.btn.length;t<i;t++)e+='<a class="'+l[6]+t+'">'+r.btn[t]+"</a>";return'<div class="'+l[6]+" layui-layer-btn-"+(r.btnAlign||"")+'">'+e+"</div>"}():"")+(r.resize?'<span class="layui-layer-resize"></span>':"")+"</div>"],u,i('<div class="layui-layer-move"></div>')),n},s.pt.creat=function(){var e=this,t=e.config,a=e.index,s=t.content,f="object"==typeof s,c=i("body");if(!t.id||!i("#"+t.id)[0]){switch("string"==typeof t.area&&(t.area="auto"===t.area?["",""]:[t.area,""]),t.shift&&(t.anim=t.shift),6==r.ie&&(t.fixed=!1),t.type){case 0:t.btn="btn"in t?t.btn:o.btn[0],r.closeAll("dialog");break;case 2:var s=t.content=f?t.content:[t.content||"","auto"];t.content='<iframe scrolling="'+(t.content[1]||"auto")+'" allowtransparency="true" id="'+l[4]+a+'" name="'+l[4]+a+'" onload="this.className=\'\';" class="layui-layer-load" frameborder="0" src="'+t.content[0]+'"></iframe>';break;case 3:delete t.title,delete t.closeBtn,t.icon===-1&&0===t.icon,r.closeAll("loading");break;case 4:f||(t.content=[t.content,"body"]),t.follow=t.content[1],t.content=t.content[0]+'<i class="layui-layer-TipsG"></i>',delete t.title,t.tips="object"==typeof t.tips?t.tips:[t.tips,!0],t.tipsMore||r.closeAll("tips")}if(e.vessel(f,function(n,r,u){c.append(n[0]),f?function(){2==t.type||4==t.type?function(){i("body").append(n[1])}():function(){s.parents("."+l[0])[0]||(s.data("display",s.css("display")).show().addClass("layui-layer-wrap").wrap(n[1]),i("#"+l[0]+a).find("."+l[5]).before(r))}()}():c.append(n[1]),i(".layui-layer-move")[0]||c.append(o.moveElem=u),e.layero=i("#"+l[0]+a),t.scrollbar||l.html.css("overflow","hidden").attr("layer-full",a)}).auto(a),i("#layui-layer-shade"+e.index).css({"background-color":t.shade[1]||"#000",opacity:t.shade[0]||t.shade}),2==t.type&&6==r.ie&&e.layero.find("iframe").attr("src",s[0]),4==t.type?e.tips():e.offset(),t.fixed&&n.on("resize",function(){e.offset(),(/^\d+%$/.test(t.area[0])||/^\d+%$/.test(t.area[1]))&&e.auto(a),4==t.type&&e.tips()}),t.time<=0||setTimeout(function(){r.close(e.index)},t.time),e.move().callback(),l.anim[t.anim]){var u="layer-anim "+l.anim[t.anim];e.layero.addClass(u).one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",function(){i(this).removeClass(u)})}t.isOutAnim&&e.layero.data("isOutAnim",!0)}},s.pt.auto=function(e){var t=this,a=t.config,o=i("#"+l[0]+e);""===a.area[0]&&a.maxWidth>0&&(r.ie&&r.ie<8&&a.btn&&o.width(o.innerWidth()),o.outerWidth()>a.maxWidth&&o.width(a.maxWidth));var s=[o.innerWidth(),o.innerHeight()],f=o.find(l[1]).outerHeight()||0,c=o.find("."+l[6]).outerHeight()||0,u=function(e){e=o.find(e),e.height(s[1]-f-c-2*(0|parseFloat(e.css("padding-top"))))};switch(a.type){case 2:u("iframe");break;default:""===a.area[1]?a.maxHeight>0&&o.outerHeight()>a.maxHeight?(s[1]=a.maxHeight,u("."+l[5])):a.fixed&&s[1]>=n.height()&&(s[1]=n.height(),u("."+l[5])):u("."+l[5])}return t},s.pt.offset=function(){var e=this,t=e.config,i=e.layero,a=[i.outerWidth(),i.outerHeight()],o="object"==typeof t.offset;e.offsetTop=(n.height()-a[1])/2,e.offsetLeft=(n.width()-a[0])/2,o?(e.offsetTop=t.offset[0],e.offsetLeft=t.offset[1]||e.offsetLeft):"auto"!==t.offset&&("t"===t.offset?e.offsetTop=0:"r"===t.offset?e.offsetLeft=n.width()-a[0]:"b"===t.offset?e.offsetTop=n.height()-a[1]:"l"===t.offset?e.offsetLeft=0:"lt"===t.offset?(e.offsetTop=0,e.offsetLeft=0):"lb"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=0):"rt"===t.offset?(e.offsetTop=0,e.offsetLeft=n.width()-a[0]):"rb"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=n.width()-a[0]):e.offsetTop=t.offset),t.fixed||(e.offsetTop=/%$/.test(e.offsetTop)?n.height()*parseFloat(e.offsetTop)/100:parseFloat(e.offsetTop),e.offsetLeft=/%$/.test(e.offsetLeft)?n.width()*parseFloat(e.offsetLeft)/100:parseFloat(e.offsetLeft),e.offsetTop+=n.scrollTop(),e.offsetLeft+=n.scrollLeft()),i.attr("minLeft")&&(e.offsetTop=n.height()-(i.find(l[1]).outerHeight()||0),e.offsetLeft=i.css("left")),i.css({top:e.offsetTop,left:e.offsetLeft})},s.pt.tips=function(){var e=this,t=e.config,a=e.layero,o=[a.outerWidth(),a.outerHeight()],r=i(t.follow);r[0]||(r=i("body"));var s={width:r.outerWidth(),height:r.outerHeight(),top:r.offset().top,left:r.offset().left},f=a.find(".layui-layer-TipsG"),c=t.tips[0];t.tips[1]||f.remove(),s.autoLeft=function(){s.left+o[0]-n.width()>0?(s.tipLeft=s.left+s.width-o[0],f.css({right:12,left:"auto"})):s.tipLeft=s.left},s.where=[function(){s.autoLeft(),s.tipTop=s.top-o[1]-10,f.removeClass("layui-layer-TipsB").addClass("layui-layer-TipsT").css("border-right-color",t.tips[1])},function(){s.tipLeft=s.left+s.width+10,s.tipTop=s.top,f.removeClass("layui-layer-TipsL").addClass("layui-layer-TipsR").css("border-bottom-color",t.tips[1])},function(){s.autoLeft(),s.tipTop=s.top+s.height+10,f.removeClass("layui-layer-TipsT").addClass("layui-layer-TipsB").css("border-right-color",t.tips[1])},function(){s.tipLeft=s.left-o[0]-10,s.tipTop=s.top,f.removeClass("layui-layer-TipsR").addClass("layui-layer-TipsL").css("border-bottom-color",t.tips[1])}],s.where[c-1](),1===c?s.top-(n.scrollTop()+o[1]+16)<0&&s.where[2]():2===c?n.width()-(s.left+s.width+o[0]+16)>0||s.where[3]():3===c?s.top-n.scrollTop()+s.height+o[1]+16-n.height()>0&&s.where[0]():4===c&&o[0]+16-s.left>0&&s.where[1](),a.find("."+l[5]).css({"background-color":t.tips[1],"padding-right":t.closeBtn?"30px":""}),a.css({left:s.tipLeft-(t.fixed?n.scrollLeft():0),top:s.tipTop-(t.fixed?n.scrollTop():0)})},s.pt.move=function(){var e=this,t=e.config,a=i(document),s=e.layero,l=s.find(t.move),f=s.find(".layui-layer-resize"),c={};return t.move&&l.css("cursor","move"),l.on("mousedown",function(e){e.preventDefault(),t.move&&(c.moveStart=!0,c.offset=[e.clientX-parseFloat(s.css("left")),e.clientY-parseFloat(s.css("top"))],o.moveElem.css("cursor","move").show())}),f.on("mousedown",function(e){e.preventDefault(),c.resizeStart=!0,c.offset=[e.clientX,e.clientY],c.area=[s.outerWidth(),s.outerHeight()],o.moveElem.css("cursor","se-resize").show()}),a.on("mousemove",function(i){if(c.moveStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1],l="fixed"===s.css("position");if(i.preventDefault(),c.stX=l?0:n.scrollLeft(),c.stY=l?0:n.scrollTop(),!t.moveOut){var f=n.width()-s.outerWidth()+c.stX,u=n.height()-s.outerHeight()+c.stY;a<c.stX&&(a=c.stX),a>f&&(a=f),o<c.stY&&(o=c.stY),o>u&&(o=u)}s.css({left:a,top:o})}if(t.resize&&c.resizeStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1];i.preventDefault(),r.style(e.index,{width:c.area[0]+a,height:c.area[1]+o}),c.isResize=!0,t.resizing&&t.resizing(s)}}).on("mouseup",function(e){c.moveStart&&(delete c.moveStart,o.moveElem.hide(),t.moveEnd&&t.moveEnd(s)),c.resizeStart&&(delete c.resizeStart,o.moveElem.hide())}),e},s.pt.callback=function(){function e(){var e=a.cancel&&a.cancel(t.index,n);e===!1||r.close(t.index)}var t=this,n=t.layero,a=t.config;t.openLayer(),a.success&&(2==a.type?n.find("iframe").on("load",function(){a.success(n,t.index)}):a.success(n,t.index)),6==r.ie&&t.IE6(n),n.find("."+l[6]).children("a").on("click",function(){var e=i(this).index();if(0===e)a.yes?a.yes(t.index,n):a.btn1?a.btn1(t.index,n):r.close(t.index);else{var o=a["btn"+(e+1)]&&a["btn"+(e+1)](t.index,n);o===!1||r.close(t.index)}}),n.find("."+l[7]).on("click",e),a.shadeClose&&i("#layui-layer-shade"+t.index).on("click",function(){r.close(t.index)}),n.find(".layui-layer-min").on("click",function(){var e=a.min&&a.min(n);e===!1||r.min(t.index,a)}),n.find(".layui-layer-max").on("click",function(){i(this).hasClass("layui-layer-maxmin")?(r.restore(t.index),a.restore&&a.restore(n)):(r.full(t.index,a),setTimeout(function(){a.full&&a.full(n)},100))}),a.end&&(o.end[t.index]=a.end)},o.reselect=function(){i.each(i("select"),function(e,t){var n=i(this);n.parents("."+l[0])[0]||1==n.attr("layer")&&i("."+l[0]).length<1&&n.removeAttr("layer").show(),n=null})},s.pt.IE6=function(e){i("select").each(function(e,t){var n=i(this);n.parents("."+l[0])[0]||"none"===n.css("display")||n.attr({layer:"1"}).hide(),n=null})},s.pt.openLayer=function(){var e=this;r.zIndex=e.config.zIndex,r.setTop=function(e){var t=function(){r.zIndex++,e.css("z-index",r.zIndex+1)};return r.zIndex=parseInt(e[0].style.zIndex),e.on("mousedown",t),r.zIndex}},o.record=function(e){var t=[e.width(),e.height(),e.position().top,e.position().left+parseFloat(e.css("margin-left"))];e.find(".layui-layer-max").addClass("layui-layer-maxmin"),e.attr({area:t})},o.rescollbar=function(e){l.html.attr("layer-full")==e&&(l.html[0].style.removeProperty?l.html[0].style.removeProperty("overflow"):l.html[0].style.removeAttribute("overflow"),l.html.removeAttr("layer-full"))},e.layer=r,r.getChildFrame=function(e,t){return t=t||i("."+l[4]).attr("times"),i("#"+l[0]+t).find("iframe").contents().find(e)},r.getFrameIndex=function(e){return i("#"+e).parents("."+l[4]).attr("times")},r.iframeAuto=function(e){if(e){var t=r.getChildFrame("html",e).outerHeight(),n=i("#"+l[0]+e),a=n.find(l[1]).outerHeight()||0,o=n.find("."+l[6]).outerHeight()||0;n.css({height:t+a+o}),n.find("iframe").css({height:t})}},r.iframeSrc=function(e,t){i("#"+l[0]+e).find("iframe").attr("src",t)},r.style=function(e,t,n){var a=i("#"+l[0]+e),r=a.find(".layui-layer-content"),s=a.attr("type"),f=a.find(l[1]).outerHeight()||0,c=a.find("."+l[6]).outerHeight()||0;a.attr("minLeft");s!==o.type[3]&&s!==o.type[4]&&(n||(parseFloat(t.width)<=260&&(t.width=260),parseFloat(t.height)-f-c<=64&&(t.height=64+f+c)),a.css(t),c=a.find("."+l[6]).outerHeight(),s===o.type[2]?a.find("iframe").css({height:parseFloat(t.height)-f-c}):r.css({height:parseFloat(t.height)-f-c-parseFloat(r.css("padding-top"))-parseFloat(r.css("padding-bottom"))}))},r.min=function(e,t){var a=i("#"+l[0]+e),s=a.find(l[1]).outerHeight()||0,f=a.attr("minLeft")||181*o.minIndex+"px",c=a.css("position");o.record(a),o.minLeft[0]&&(f=o.minLeft[0],o.minLeft.shift()),a.attr("position",c),r.style(e,{width:180,height:s,left:f,top:n.height()-s,position:"fixed",overflow:"hidden"},!0),a.find(".layui-layer-min").hide(),"page"===a.attr("type")&&a.find(l[4]).hide(),o.rescollbar(e),a.attr("minLeft")||o.minIndex++,a.attr("minLeft",f)},r.restore=function(e){var t=i("#"+l[0]+e),n=t.attr("area").split(",");t.attr("type");r.style(e,{width:parseFloat(n[0]),height:parseFloat(n[1]),top:parseFloat(n[2]),left:parseFloat(n[3]),position:t.attr("position"),overflow:"visible"},!0),t.find(".layui-layer-max").removeClass("layui-layer-maxmin"),t.find(".layui-layer-min").show(),"page"===t.attr("type")&&t.find(l[4]).show(),o.rescollbar(e)},r.full=function(e){var t,a=i("#"+l[0]+e);o.record(a),l.html.attr("layer-full")||l.html.css("overflow","hidden").attr("layer-full",e),clearTimeout(t),t=setTimeout(function(){var t="fixed"===a.css("position");r.style(e,{top:t?0:n.scrollTop(),left:t?0:n.scrollLeft(),width:n.width(),height:n.height()},!0),a.find(".layui-layer-min").hide()},100)},r.title=function(e,t){var n=i("#"+l[0]+(t||r.index)).find(l[1]);n.html(e)},r.close=function(e){var t=i("#"+l[0]+e),n=t.attr("type"),a="layer-anim-close";if(t[0]){var s="layui-layer-wrap",f=function(){if(n===o.type[1]&&"object"===t.attr("conType")){t.children(":not(."+l[5]+")").remove();for(var a=t.find("."+s),r=0;r<2;r++)a.unwrap();a.css("display",a.data("display")).removeClass(s)}else{if(n===o.type[2])try{var f=i("#"+l[4]+e)[0];f.contentWindow.document.write(""),f.contentWindow.close(),t.find("."+l[5])[0].removeChild(f)}catch(c){}t[0].innerHTML="",t.remove()}"function"==typeof o.end[e]&&o.end[e](),delete o.end[e]};t.data("isOutAnim")&&t.addClass("layer-anim "+a),i("#layui-layer-moves, #layui-layer-shade"+e).remove(),6==r.ie&&o.reselect(),o.rescollbar(e),t.attr("minLeft")&&(o.minIndex--,o.minLeft.push(t.attr("minLeft"))),r.ie&&r.ie<10||!t.data("isOutAnim")?f():setTimeout(function(){f()},200)}},r.closeAll=function(e){i.each(i("."+l[0]),function(){var t=i(this),n=e?t.attr("type")===e:1;n&&r.close(t.attr("times")),n=null})};var f=r.cache||{},c=function(e){return f.skin?" "+f.skin+" "+f.skin+"-"+e:""};r.prompt=function(e,t){var a="";if(e=e||{},"function"==typeof e&&(t=e),e.area){var o=e.area;a='style="width: '+o[0]+"; height: "+o[1]+';"',delete e.area}var s,l=2==e.formType?'<textarea class="layui-layer-input"'+a+"></textarea>":function(){return'<input type="'+(1==e.formType?"password":"text")+'" class="layui-layer-input">'}(),f=e.success;return delete e.success,r.open(i.extend({type:1,btn:["&#x786E;&#x5B9A;","&#x53D6;&#x6D88;"],content:l,skin:"layui-layer-prompt"+c("prompt"),maxWidth:n.width(),success:function(t){s=t.find(".layui-layer-input"),s.val(e.value||"").focus(),"function"==typeof f&&f(t)},resize:!1,yes:function(i){var n=s.val();""===n?s.focus():n.length>(e.maxlength||500)?r.tips("&#x6700;&#x591A;&#x8F93;&#x5165;"+(e.maxlength||500)+"&#x4E2A;&#x5B57;&#x6570;",s,{tips:1}):t&&t(n,i,s)}},e))},r.tab=function(e){e=e||{};var t=e.tab||{},n="layui-this",a=e.success;return delete e.success,r.open(i.extend({type:1,skin:"layui-layer-tab"+c("tab"),resize:!1,title:function(){var e=t.length,i=1,a="";if(e>0)for(a='<span class="'+n+'">'+t[0].title+"</span>";i<e;i++)a+="<span>"+t[i].title+"</span>";return a}(),content:'<ul class="layui-layer-tabmain">'+function(){var e=t.length,i=1,a="";if(e>0)for(a='<li class="layui-layer-tabli '+n+'">'+(t[0].content||"no content")+"</li>";i<e;i++)a+='<li class="layui-layer-tabli">'+(t[i].content||"no  content")+"</li>";return a}()+"</ul>",success:function(t){var o=t.find(".layui-layer-title").children(),r=t.find(".layui-layer-tabmain").children();o.on("mousedown",function(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0;var a=i(this),o=a.index();a.addClass(n).siblings().removeClass(n),r.eq(o).show().siblings().hide(),"function"==typeof e.change&&e.change(o)}),"function"==typeof a&&a(t)}},e))},r.photos=function(t,n,a){function o(e,t,i){var n=new Image;return n.src=e,n.complete?t(n):(n.onload=function(){n.onload=null,t(n)},void(n.onerror=function(e){n.onerror=null,i(e)}))}var s={};if(t=t||{},t.photos){var l=t.photos.constructor===Object,f=l?t.photos:{},u=f.data||[],d=f.start||0;s.imgIndex=(0|d)+1,t.img=t.img||"img";var y=t.success;if(delete t.success,l){if(0===u.length)return r.msg("&#x6CA1;&#x6709;&#x56FE;&#x7247;")}else{var p=i(t.photos),h=function(){u=[],p.find(t.img).each(function(e){var t=i(this);t.attr("layer-index",e),u.push({alt:t.attr("alt"),pid:t.attr("layer-pid"),src:t.attr("layer-src")||t.attr("src"),thumb:t.attr("src")})})};if(h(),0===u.length)return;if(n||p.on("click",t.img,function(){var e=i(this),n=e.attr("layer-index");r.photos(i.extend(t,{photos:{start:n,data:u,tab:t.tab},full:t.full}),!0),h()}),!n)return}s.imgprev=function(e){s.imgIndex--,s.imgIndex<1&&(s.imgIndex=u.length),s.tabimg(e)},s.imgnext=function(e,t){s.imgIndex++,s.imgIndex>u.length&&(s.imgIndex=1,t)||s.tabimg(e)},s.keyup=function(e){if(!s.end){var t=e.keyCode;e.preventDefault(),37===t?s.imgprev(!0):39===t?s.imgnext(!0):27===t&&r.close(s.index)}},s.tabimg=function(e){if(!(u.length<=1))return f.start=s.imgIndex-1,r.close(s.index),r.photos(t,!0,e)},s.event=function(){s.bigimg.hover(function(){s.imgsee.show()},function(){s.imgsee.hide()}),s.bigimg.find(".layui-layer-imgprev").on("click",function(e){e.preventDefault(),s.imgprev()}),s.bigimg.find(".layui-layer-imgnext").on("click",function(e){e.preventDefault(),s.imgnext()}),i(document).on("keyup",s.keyup)},s.loadi=r.load(1,{shade:!("shade"in t)&&.9,scrollbar:!1}),o(u[d].src,function(n){r.close(s.loadi),s.index=r.open(i.extend({type:1,id:"layui-layer-photos",area:function(){var a=[n.width,n.height],o=[i(e).width()-100,i(e).height()-100];if(!t.full&&(a[0]>o[0]||a[1]>o[1])){var r=[a[0]/o[0],a[1]/o[1]];r[0]>r[1]?(a[0]=a[0]/r[0],a[1]=a[1]/r[0]):r[0]<r[1]&&(a[0]=a[0]/r[1],a[1]=a[1]/r[1])}return[a[0]+"px",a[1]+"px"]}(),title:!1,shade:.9,shadeClose:!0,closeBtn:!1,move:".layui-layer-phimg img",moveType:1,scrollbar:!1,moveOut:!0,isOutAnim:!1,skin:"layui-layer-photos"+c("photos"),content:'<div class="layui-layer-phimg"><img src="'+u[d].src+'" alt="'+(u[d].alt||"")+'" layer-pid="'+u[d].pid+'"><div class="layui-layer-imgsee">'+(u.length>1?'<span class="layui-layer-imguide"><a href="javascript:;" class="layui-layer-iconext layui-layer-imgprev"></a><a href="javascript:;" class="layui-layer-iconext layui-layer-imgnext"></a></span>':"")+'<div class="layui-layer-imgbar" style="display:'+(a?"block":"")+'"><span class="layui-layer-imgtit"><a href="javascript:;">'+(u[d].alt||"")+"</a><em>"+s.imgIndex+"/"+u.length+"</em></span></div></div></div>",success:function(e,i){s.bigimg=e.find(".layui-layer-phimg"),s.imgsee=e.find(".layui-layer-imguide,.layui-layer-imgbar"),s.event(e),t.tab&&t.tab(u[d],e),"function"==typeof y&&y(e)},end:function(){s.end=!0,i(document).off("keyup",s.keyup)}},t))},function(){r.close(s.loadi),r.msg("&#x5F53;&#x524D;&#x56FE;&#x7247;&#x5730;&#x5740;&#x5F02;&#x5E38;<br>&#x662F;&#x5426;&#x7EE7;&#x7EED;&#x67E5;&#x770B;&#x4E0B;&#x4E00;&#x5F20;&#xFF1F;",{time:3e4,btn:["&#x4E0B;&#x4E00;&#x5F20;","&#x4E0D;&#x770B;&#x4E86;"],yes:function(){u.length>1&&s.imgnext(!0,!0)}})})}},o.run=function(t){i=t,n=i(e),l.html=i("html"),r.open=function(e){var t=new s(e);return t.index}},e.layui&&layui.define?(r.ready(),layui.define("jquery",function(t){r.path=layui.cache.dir,o.run(layui.$),e.layer=r,t("layer",r)})):"function"==typeof define&&define.amd?define(["jquery"],function(){return o.run(e.jQuery),r}):function(){o.run(e.jQuery),r.ready()}()}(window);
\ No newline at end of file
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/laypage.js b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/laypage.js
new file mode 100644
index 0000000..fd07fda
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/laypage.js
@@ -0,0 +1,2 @@
+/** layui-v2.4.5 MIT License By https://www.layui.com */
+ ;layui.define(function(e){"use strict";var a=document,t="getElementById",n="getElementsByTagName",i="laypage",r="layui-disabled",u=function(e){var a=this;a.config=e||{},a.config.index=++s.index,a.render(!0)};u.prototype.type=function(){var e=this.config;if("object"==typeof e.elem)return void 0===e.elem.length?2:3},u.prototype.view=function(){var e=this,a=e.config,t=a.groups="groups"in a?0|a.groups:5;a.layout="object"==typeof a.layout?a.layout:["prev","page","next"],a.count=0|a.count,a.curr=0|a.curr||1,a.limits="object"==typeof a.limits?a.limits:[10,20,30,40,50],a.limit=0|a.limit||10,a.pages=Math.ceil(a.count/a.limit)||1,a.curr>a.pages&&(a.curr=a.pages),t<0?t=1:t>a.pages&&(t=a.pages),a.prev="prev"in a?a.prev:"&#x4E0A;&#x4E00;&#x9875;",a.next="next"in a?a.next:"&#x4E0B;&#x4E00;&#x9875;";var n=a.pages>t?Math.ceil((a.curr+(t>1?1:0))/(t>0?t:1)):1,i={prev:function(){return a.prev?'<a href="javascript:;" class="layui-laypage-prev'+(1==a.curr?" "+r:"")+'" data-page="'+(a.curr-1)+'">'+a.prev+"</a>":""}(),page:function(){var e=[];if(a.count<1)return"";n>1&&a.first!==!1&&0!==t&&e.push('<a href="javascript:;" class="layui-laypage-first" data-page="1"  title="&#x9996;&#x9875;">'+(a.first||1)+"</a>");var i=Math.floor((t-1)/2),r=n>1?a.curr-i:1,u=n>1?function(){var e=a.curr+(t-i-1);return e>a.pages?a.pages:e}():t;for(u-r<t-1&&(r=u-t+1),a.first!==!1&&r>2&&e.push('<span class="layui-laypage-spr">&#x2026;</span>');r<=u;r++)r===a.curr?e.push('<span class="layui-laypage-curr"><em class="layui-laypage-em" '+(/^#/.test(a.theme)?'style="background-color:'+a.theme+';"':"")+"></em><em>"+r+"</em></span>"):e.push('<a href="javascript:;" data-page="'+r+'">'+r+"</a>");return a.pages>t&&a.pages>u&&a.last!==!1&&(u+1<a.pages&&e.push('<span class="layui-laypage-spr">&#x2026;</span>'),0!==t&&e.push('<a href="javascript:;" class="layui-laypage-last" title="&#x5C3E;&#x9875;"  data-page="'+a.pages+'">'+(a.last||a.pages)+"</a>")),e.join("")}(),next:function(){return a.next?'<a href="javascript:;" class="layui-laypage-next'+(a.curr==a.pages?" "+r:"")+'" data-page="'+(a.curr+1)+'">'+a.next+"</a>":""}(),count:'<span class="layui-laypage-count">共 '+a.count+" 条</span>",limit:function(){var e=['<span class="layui-laypage-limits"><select lay-ignore>'];return layui.each(a.limits,function(t,n){e.push('<option value="'+n+'"'+(n===a.limit?"selected":"")+">"+n+" 条/页</option>")}),e.join("")+"</select></span>"}(),refresh:['<a href="javascript:;" data-page="'+a.curr+'" class="layui-laypage-refresh">','<i class="layui-icon layui-icon-refresh"></i>',"</a>"].join(""),skip:function(){return['<span class="layui-laypage-skip">&#x5230;&#x7B2C;','<input type="text" min="1" value="'+a.curr+'" class="layui-input">','&#x9875;<button type="button" class="layui-laypage-btn">&#x786e;&#x5b9a;</button>',"</span>"].join("")}()};return['<div class="layui-box layui-laypage layui-laypage-'+(a.theme?/^#/.test(a.theme)?"molv":a.theme:"default")+'" id="layui-laypage-'+a.index+'">',function(){var e=[];return layui.each(a.layout,function(a,t){i[t]&&e.push(i[t])}),e.join("")}(),"</div>"].join("")},u.prototype.jump=function(e,a){if(e){var t=this,i=t.config,r=e.children,u=e[n]("button")[0],l=e[n]("input")[0],p=e[n]("select")[0],c=function(){var e=0|l.value.replace(/\s|\D/g,"");e&&(i.curr=e,t.render())};if(a)return c();for(var o=0,y=r.length;o<y;o++)"a"===r[o].nodeName.toLowerCase()&&s.on(r[o],"click",function(){var e=0|this.getAttribute("data-page");e<1||e>i.pages||(i.curr=e,t.render())});p&&s.on(p,"change",function(){var e=this.value;i.curr*e>i.count&&(i.curr=Math.ceil(i.count/e)),i.limit=e,t.render()}),u&&s.on(u,"click",function(){c()})}},u.prototype.skip=function(e){if(e){var a=this,t=e[n]("input")[0];t&&s.on(t,"keyup",function(t){var n=this.value,i=t.keyCode;/^(37|38|39|40)$/.test(i)||(/\D/.test(n)&&(this.value=n.replace(/\D/,"")),13===i&&a.jump(e,!0))})}},u.prototype.render=function(e){var n=this,i=n.config,r=n.type(),u=n.view();2===r?i.elem&&(i.elem.innerHTML=u):3===r?i.elem.html(u):a[t](i.elem)&&(a[t](i.elem).innerHTML=u),i.jump&&i.jump(i,e);var s=a[t]("layui-laypage-"+i.index);n.jump(s),i.hash&&!e&&(location.hash="!"+i.hash+"="+i.curr),n.skip(s)};var s={render:function(e){var a=new u(e);return a.index},index:layui.laypage?layui.laypage.index+1e4:0,on:function(e,a,t){return e.attachEvent?e.attachEvent("on"+a,function(a){a.target=a.srcElement,t.call(e,a)}):e.addEventListener(a,t,!1),this}};e(i,s)});
\ No newline at end of file
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/laytpl.js b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/laytpl.js
new file mode 100644
index 0000000..d482d4e
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/laytpl.js
@@ -0,0 +1,2 @@
+/** layui-v2.4.5 MIT License By https://www.layui.com */
+ ;layui.define(function(e){"use strict";var r={open:"{{",close:"}}"},c={exp:function(e){return new RegExp(e,"g")},query:function(e,c,t){var o=["#([\\s\\S])+?","([^{#}])*?"][e||0];return n((c||"")+r.open+o+r.close+(t||""))},escape:function(e){return String(e||"").replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/'/g,"&#39;").replace(/"/g,"&quot;")},error:function(e,r){var c="Laytpl Error:";return"object"==typeof console&&console.error(c+e+"\n"+(r||"")),c+e}},n=c.exp,t=function(e){this.tpl=e};t.pt=t.prototype,window.errors=0,t.pt.parse=function(e,t){var o=this,p=e,a=n("^"+r.open+"#",""),l=n(r.close+"$","");e=e.replace(/\s+|\r|\t|\n/g," ").replace(n(r.open+"#"),r.open+"# ").replace(n(r.close+"}"),"} "+r.close).replace(/\\/g,"\\\\").replace(n(r.open+"!(.+?)!"+r.close),function(e){return e=e.replace(n("^"+r.open+"!"),"").replace(n("!"+r.close),"").replace(n(r.open+"|"+r.close),function(e){return e.replace(/(.)/g,"\\$1")})}).replace(/(?="|')/g,"\\").replace(c.query(),function(e){return e=e.replace(a,"").replace(l,""),'";'+e.replace(/\\/g,"")+';view+="'}).replace(c.query(1),function(e){var c='"+(';return e.replace(/\s/g,"")===r.open+r.close?"":(e=e.replace(n(r.open+"|"+r.close),""),/^=/.test(e)&&(e=e.replace(/^=/,""),c='"+_escape_('),c+e.replace(/\\/g,"")+')+"')}),e='"use strict";var view = "'+e+'";return view;';try{return o.cache=e=new Function("d, _escape_",e),e(t,c.escape)}catch(u){return delete o.cache,c.error(u,p)}},t.pt.render=function(e,r){var n,t=this;return e?(n=t.cache?t.cache(e,c.escape):t.parse(t.tpl,e),r?void r(n):n):c.error("no data")};var o=function(e){return"string"!=typeof e?c.error("Template not found"):new t(e)};o.config=function(e){e=e||{};for(var c in e)r[c]=e[c]},o.v="1.2.0",e("laytpl",o)});
\ No newline at end of file
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/mobile.js b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/mobile.js
new file mode 100644
index 0000000..35cfdf0
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/mobile.js
@@ -0,0 +1,2 @@
+/** layui-v2.4.5 MIT License By https://www.layui.com */
+ ;layui.define(function(i){i("layui.mobile",layui.v)});layui.define(function(e){"use strict";var r={open:"{{",close:"}}"},c={exp:function(e){return new RegExp(e,"g")},query:function(e,c,t){var o=["#([\\s\\S])+?","([^{#}])*?"][e||0];return n((c||"")+r.open+o+r.close+(t||""))},escape:function(e){return String(e||"").replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/'/g,"&#39;").replace(/"/g,"&quot;")},error:function(e,r){var c="Laytpl Error:";return"object"==typeof console&&console.error(c+e+"\n"+(r||"")),c+e}},n=c.exp,t=function(e){this.tpl=e};t.pt=t.prototype,window.errors=0,t.pt.parse=function(e,t){var o=this,p=e,a=n("^"+r.open+"#",""),l=n(r.close+"$","");e=e.replace(/\s+|\r|\t|\n/g," ").replace(n(r.open+"#"),r.open+"# ").replace(n(r.close+"}"),"} "+r.close).replace(/\\/g,"\\\\").replace(n(r.open+"!(.+?)!"+r.close),function(e){return e=e.replace(n("^"+r.open+"!"),"").replace(n("!"+r.close),"").replace(n(r.open+"|"+r.close),function(e){return e.replace(/(.)/g,"\\$1")})}).replace(/(?="|')/g,"\\").replace(c.query(),function(e){return e=e.replace(a,"").replace(l,""),'";'+e.replace(/\\/g,"")+';view+="'}).replace(c.query(1),function(e){var c='"+(';return e.replace(/\s/g,"")===r.open+r.close?"":(e=e.replace(n(r.open+"|"+r.close),""),/^=/.test(e)&&(e=e.replace(/^=/,""),c='"+_escape_('),c+e.replace(/\\/g,"")+')+"')}),e='"use strict";var view = "'+e+'";return view;';try{return o.cache=e=new Function("d, _escape_",e),e(t,c.escape)}catch(u){return delete o.cache,c.error(u,p)}},t.pt.render=function(e,r){var n,t=this;return e?(n=t.cache?t.cache(e,c.escape):t.parse(t.tpl,e),r?void r(n):n):c.error("no data")};var o=function(e){return"string"!=typeof e?c.error("Template not found"):new t(e)};o.config=function(e){e=e||{};for(var c in e)r[c]=e[c]},o.v="1.2.0",e("laytpl",o)});layui.define(function(e){"use strict";var t=(window,document),i="querySelectorAll",n="getElementsByClassName",a=function(e){return t[i](e)},s={type:0,shade:!0,shadeClose:!0,fixed:!0,anim:"scale"},l={extend:function(e){var t=JSON.parse(JSON.stringify(s));for(var i in e)t[i]=e[i];return t},timer:{},end:{}};l.touch=function(e,t){e.addEventListener("click",function(e){t.call(this,e)},!1)};var o=0,r=["layui-m-layer"],d=function(e){var t=this;t.config=l.extend(e),t.view()};d.prototype.view=function(){var e=this,i=e.config,s=t.createElement("div");e.id=s.id=r[0]+o,s.setAttribute("class",r[0]+" "+r[0]+(i.type||0)),s.setAttribute("index",o);var l=function(){var e="object"==typeof i.title;return i.title?'<h3 style="'+(e?i.title[1]:"")+'">'+(e?i.title[0]:i.title)+"</h3>":""}(),d=function(){"string"==typeof i.btn&&(i.btn=[i.btn]);var e,t=(i.btn||[]).length;return 0!==t&&i.btn?(e='<span yes type="1">'+i.btn[0]+"</span>",2===t&&(e='<span no type="0">'+i.btn[1]+"</span>"+e),'<div class="layui-m-layerbtn">'+e+"</div>"):""}();if(i.fixed||(i.top=i.hasOwnProperty("top")?i.top:100,i.style=i.style||"",i.style+=" top:"+(t.body.scrollTop+i.top)+"px"),2===i.type&&(i.content='<i></i><i class="layui-m-layerload"></i><i></i><p>'+(i.content||"")+"</p>"),i.skin&&(i.anim="up"),"msg"===i.skin&&(i.shade=!1),s.innerHTML=(i.shade?"<div "+("string"==typeof i.shade?'style="'+i.shade+'"':"")+' class="layui-m-layershade"></div>':"")+'<div class="layui-m-layermain" '+(i.fixed?"":'style="position:static;"')+'><div class="layui-m-layersection"><div class="layui-m-layerchild '+(i.skin?"layui-m-layer-"+i.skin+" ":"")+(i.className?i.className:"")+" "+(i.anim?"layui-m-anim-"+i.anim:"")+'" '+(i.style?'style="'+i.style+'"':"")+">"+l+'<div class="layui-m-layercont">'+i.content+"</div>"+d+"</div></div></div>",!i.type||2===i.type){var y=t[n](r[0]+i.type),u=y.length;u>=1&&c.close(y[0].getAttribute("index"))}document.body.appendChild(s);var m=e.elem=a("#"+e.id)[0];i.success&&i.success(m),e.index=o++,e.action(i,m)},d.prototype.action=function(e,t){var i=this;e.time&&(l.timer[i.index]=setTimeout(function(){c.close(i.index)},1e3*e.time));var a=function(){var t=this.getAttribute("type");0==t?(e.no&&e.no(),c.close(i.index)):e.yes?e.yes(i.index):c.close(i.index)};if(e.btn)for(var s=t[n]("layui-m-layerbtn")[0].children,o=s.length,r=0;r<o;r++)l.touch(s[r],a);if(e.shade&&e.shadeClose){var d=t[n]("layui-m-layershade")[0];l.touch(d,function(){c.close(i.index,e.end)})}e.end&&(l.end[i.index]=e.end)};var c={v:"2.0 m",index:o,open:function(e){var t=new d(e||{});return t.index},close:function(e){var i=a("#"+r[0]+e)[0];i&&(i.innerHTML="",t.body.removeChild(i),clearTimeout(l.timer[e]),delete l.timer[e],"function"==typeof l.end[e]&&l.end[e](),delete l.end[e])},closeAll:function(){for(var e=t[n](r[0]),i=0,a=e.length;i<a;i++)c.close(0|e[0].getAttribute("index"))}};e("layer-mobile",c)});layui.define(function(t){var e=function(){function t(t){return null==t?String(t):J[W.call(t)]||"object"}function e(e){return"function"==t(e)}function n(t){return null!=t&&t==t.window}function r(t){return null!=t&&t.nodeType==t.DOCUMENT_NODE}function i(e){return"object"==t(e)}function o(t){return i(t)&&!n(t)&&Object.getPrototypeOf(t)==Object.prototype}function a(t){var e=!!t&&"length"in t&&t.length,r=T.type(t);return"function"!=r&&!n(t)&&("array"==r||0===e||"number"==typeof e&&e>0&&e-1 in t)}function s(t){return A.call(t,function(t){return null!=t})}function u(t){return t.length>0?T.fn.concat.apply([],t):t}function c(t){return t.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function l(t){return t in F?F[t]:F[t]=new RegExp("(^|\\s)"+t+"(\\s|$)")}function f(t,e){return"number"!=typeof e||k[c(t)]?e:e+"px"}function h(t){var e,n;return $[t]||(e=L.createElement(t),L.body.appendChild(e),n=getComputedStyle(e,"").getPropertyValue("display"),e.parentNode.removeChild(e),"none"==n&&(n="block"),$[t]=n),$[t]}function p(t){return"children"in t?D.call(t.children):T.map(t.childNodes,function(t){if(1==t.nodeType)return t})}function d(t,e){var n,r=t?t.length:0;for(n=0;n<r;n++)this[n]=t[n];this.length=r,this.selector=e||""}function m(t,e,n){for(j in e)n&&(o(e[j])||Q(e[j]))?(o(e[j])&&!o(t[j])&&(t[j]={}),Q(e[j])&&!Q(t[j])&&(t[j]=[]),m(t[j],e[j],n)):e[j]!==E&&(t[j]=e[j])}function v(t,e){return null==e?T(t):T(t).filter(e)}function g(t,n,r,i){return e(n)?n.call(t,r,i):n}function y(t,e,n){null==n?t.removeAttribute(e):t.setAttribute(e,n)}function x(t,e){var n=t.className||"",r=n&&n.baseVal!==E;return e===E?r?n.baseVal:n:void(r?n.baseVal=e:t.className=e)}function b(t){try{return t?"true"==t||"false"!=t&&("null"==t?null:+t+""==t?+t:/^[\[\{]/.test(t)?T.parseJSON(t):t):t}catch(e){return t}}function w(t,e){e(t);for(var n=0,r=t.childNodes.length;n<r;n++)w(t.childNodes[n],e)}var E,j,T,S,C,N,O=[],P=O.concat,A=O.filter,D=O.slice,L=window.document,$={},F={},k={"column-count":1,columns:1,"font-weight":1,"line-height":1,opacity:1,"z-index":1,zoom:1},M=/^\s*<(\w+|!)[^>]*>/,R=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,z=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,Z=/^(?:body|html)$/i,q=/([A-Z])/g,H=["val","css","html","text","data","width","height","offset"],I=["after","prepend","before","append"],V=L.createElement("table"),_=L.createElement("tr"),B={tr:L.createElement("tbody"),tbody:V,thead:V,tfoot:V,td:_,th:_,"*":L.createElement("div")},U=/complete|loaded|interactive/,X=/^[\w-]*$/,J={},W=J.toString,Y={},G=L.createElement("div"),K={tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},Q=Array.isArray||function(t){return t instanceof Array};return Y.matches=function(t,e){if(!e||!t||1!==t.nodeType)return!1;var n=t.matches||t.webkitMatchesSelector||t.mozMatchesSelector||t.oMatchesSelector||t.matchesSelector;if(n)return n.call(t,e);var r,i=t.parentNode,o=!i;return o&&(i=G).appendChild(t),r=~Y.qsa(i,e).indexOf(t),o&&G.removeChild(t),r},C=function(t){return t.replace(/-+(.)?/g,function(t,e){return e?e.toUpperCase():""})},N=function(t){return A.call(t,function(e,n){return t.indexOf(e)==n})},Y.fragment=function(t,e,n){var r,i,a;return R.test(t)&&(r=T(L.createElement(RegExp.$1))),r||(t.replace&&(t=t.replace(z,"<$1></$2>")),e===E&&(e=M.test(t)&&RegExp.$1),e in B||(e="*"),a=B[e],a.innerHTML=""+t,r=T.each(D.call(a.childNodes),function(){a.removeChild(this)})),o(n)&&(i=T(r),T.each(n,function(t,e){H.indexOf(t)>-1?i[t](e):i.attr(t,e)})),r},Y.Z=function(t,e){return new d(t,e)},Y.isZ=function(t){return t instanceof Y.Z},Y.init=function(t,n){var r;if(!t)return Y.Z();if("string"==typeof t)if(t=t.trim(),"<"==t[0]&&M.test(t))r=Y.fragment(t,RegExp.$1,n),t=null;else{if(n!==E)return T(n).find(t);r=Y.qsa(L,t)}else{if(e(t))return T(L).ready(t);if(Y.isZ(t))return t;if(Q(t))r=s(t);else if(i(t))r=[t],t=null;else if(M.test(t))r=Y.fragment(t.trim(),RegExp.$1,n),t=null;else{if(n!==E)return T(n).find(t);r=Y.qsa(L,t)}}return Y.Z(r,t)},T=function(t,e){return Y.init(t,e)},T.extend=function(t){var e,n=D.call(arguments,1);return"boolean"==typeof t&&(e=t,t=n.shift()),n.forEach(function(n){m(t,n,e)}),t},Y.qsa=function(t,e){var n,r="#"==e[0],i=!r&&"."==e[0],o=r||i?e.slice(1):e,a=X.test(o);return t.getElementById&&a&&r?(n=t.getElementById(o))?[n]:[]:1!==t.nodeType&&9!==t.nodeType&&11!==t.nodeType?[]:D.call(a&&!r&&t.getElementsByClassName?i?t.getElementsByClassName(o):t.getElementsByTagName(e):t.querySelectorAll(e))},T.contains=L.documentElement.contains?function(t,e){return t!==e&&t.contains(e)}:function(t,e){for(;e&&(e=e.parentNode);)if(e===t)return!0;return!1},T.type=t,T.isFunction=e,T.isWindow=n,T.isArray=Q,T.isPlainObject=o,T.isEmptyObject=function(t){var e;for(e in t)return!1;return!0},T.isNumeric=function(t){var e=Number(t),n=typeof t;return null!=t&&"boolean"!=n&&("string"!=n||t.length)&&!isNaN(e)&&isFinite(e)||!1},T.inArray=function(t,e,n){return O.indexOf.call(e,t,n)},T.camelCase=C,T.trim=function(t){return null==t?"":String.prototype.trim.call(t)},T.uuid=0,T.support={},T.expr={},T.noop=function(){},T.map=function(t,e){var n,r,i,o=[];if(a(t))for(r=0;r<t.length;r++)n=e(t[r],r),null!=n&&o.push(n);else for(i in t)n=e(t[i],i),null!=n&&o.push(n);return u(o)},T.each=function(t,e){var n,r;if(a(t)){for(n=0;n<t.length;n++)if(e.call(t[n],n,t[n])===!1)return t}else for(r in t)if(e.call(t[r],r,t[r])===!1)return t;return t},T.grep=function(t,e){return A.call(t,e)},window.JSON&&(T.parseJSON=JSON.parse),T.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(t,e){J["[object "+e+"]"]=e.toLowerCase()}),T.fn={constructor:Y.Z,length:0,forEach:O.forEach,reduce:O.reduce,push:O.push,sort:O.sort,splice:O.splice,indexOf:O.indexOf,concat:function(){var t,e,n=[];for(t=0;t<arguments.length;t++)e=arguments[t],n[t]=Y.isZ(e)?e.toArray():e;return P.apply(Y.isZ(this)?this.toArray():this,n)},map:function(t){return T(T.map(this,function(e,n){return t.call(e,n,e)}))},slice:function(){return T(D.apply(this,arguments))},ready:function(t){return U.test(L.readyState)&&L.body?t(T):L.addEventListener("DOMContentLoaded",function(){t(T)},!1),this},get:function(t){return t===E?D.call(this):this[t>=0?t:t+this.length]},toArray:function(){return this.get()},size:function(){return this.length},remove:function(){return this.each(function(){null!=this.parentNode&&this.parentNode.removeChild(this)})},each:function(t){return O.every.call(this,function(e,n){return t.call(e,n,e)!==!1}),this},filter:function(t){return e(t)?this.not(this.not(t)):T(A.call(this,function(e){return Y.matches(e,t)}))},add:function(t,e){return T(N(this.concat(T(t,e))))},is:function(t){return this.length>0&&Y.matches(this[0],t)},not:function(t){var n=[];if(e(t)&&t.call!==E)this.each(function(e){t.call(this,e)||n.push(this)});else{var r="string"==typeof t?this.filter(t):a(t)&&e(t.item)?D.call(t):T(t);this.forEach(function(t){r.indexOf(t)<0&&n.push(t)})}return T(n)},has:function(t){return this.filter(function(){return i(t)?T.contains(this,t):T(this).find(t).size()})},eq:function(t){return t===-1?this.slice(t):this.slice(t,+t+1)},first:function(){var t=this[0];return t&&!i(t)?t:T(t)},last:function(){var t=this[this.length-1];return t&&!i(t)?t:T(t)},find:function(t){var e,n=this;return e=t?"object"==typeof t?T(t).filter(function(){var t=this;return O.some.call(n,function(e){return T.contains(e,t)})}):1==this.length?T(Y.qsa(this[0],t)):this.map(function(){return Y.qsa(this,t)}):T()},closest:function(t,e){var n=[],i="object"==typeof t&&T(t);return this.each(function(o,a){for(;a&&!(i?i.indexOf(a)>=0:Y.matches(a,t));)a=a!==e&&!r(a)&&a.parentNode;a&&n.indexOf(a)<0&&n.push(a)}),T(n)},parents:function(t){for(var e=[],n=this;n.length>0;)n=T.map(n,function(t){if((t=t.parentNode)&&!r(t)&&e.indexOf(t)<0)return e.push(t),t});return v(e,t)},parent:function(t){return v(N(this.pluck("parentNode")),t)},children:function(t){return v(this.map(function(){return p(this)}),t)},contents:function(){return this.map(function(){return this.contentDocument||D.call(this.childNodes)})},siblings:function(t){return v(this.map(function(t,e){return A.call(p(e.parentNode),function(t){return t!==e})}),t)},empty:function(){return this.each(function(){this.innerHTML=""})},pluck:function(t){return T.map(this,function(e){return e[t]})},show:function(){return this.each(function(){"none"==this.style.display&&(this.style.display=""),"none"==getComputedStyle(this,"").getPropertyValue("display")&&(this.style.display=h(this.nodeName))})},replaceWith:function(t){return this.before(t).remove()},wrap:function(t){var n=e(t);if(this[0]&&!n)var r=T(t).get(0),i=r.parentNode||this.length>1;return this.each(function(e){T(this).wrapAll(n?t.call(this,e):i?r.cloneNode(!0):r)})},wrapAll:function(t){if(this[0]){T(this[0]).before(t=T(t));for(var e;(e=t.children()).length;)t=e.first();T(t).append(this)}return this},wrapInner:function(t){var n=e(t);return this.each(function(e){var r=T(this),i=r.contents(),o=n?t.call(this,e):t;i.length?i.wrapAll(o):r.append(o)})},unwrap:function(){return this.parent().each(function(){T(this).replaceWith(T(this).children())}),this},clone:function(){return this.map(function(){return this.cloneNode(!0)})},hide:function(){return this.css("display","none")},toggle:function(t){return this.each(function(){var e=T(this);(t===E?"none"==e.css("display"):t)?e.show():e.hide()})},prev:function(t){return T(this.pluck("previousElementSibling")).filter(t||"*")},next:function(t){return T(this.pluck("nextElementSibling")).filter(t||"*")},html:function(t){return 0 in arguments?this.each(function(e){var n=this.innerHTML;T(this).empty().append(g(this,t,e,n))}):0 in this?this[0].innerHTML:null},text:function(t){return 0 in arguments?this.each(function(e){var n=g(this,t,e,this.textContent);this.textContent=null==n?"":""+n}):0 in this?this.pluck("textContent").join(""):null},attr:function(t,e){var n;return"string"!=typeof t||1 in arguments?this.each(function(n){if(1===this.nodeType)if(i(t))for(j in t)y(this,j,t[j]);else y(this,t,g(this,e,n,this.getAttribute(t)))}):0 in this&&1==this[0].nodeType&&null!=(n=this[0].getAttribute(t))?n:E},removeAttr:function(t){return this.each(function(){1===this.nodeType&&t.split(" ").forEach(function(t){y(this,t)},this)})},prop:function(t,e){return t=K[t]||t,1 in arguments?this.each(function(n){this[t]=g(this,e,n,this[t])}):this[0]&&this[0][t]},removeProp:function(t){return t=K[t]||t,this.each(function(){delete this[t]})},data:function(t,e){var n="data-"+t.replace(q,"-$1").toLowerCase(),r=1 in arguments?this.attr(n,e):this.attr(n);return null!==r?b(r):E},val:function(t){return 0 in arguments?(null==t&&(t=""),this.each(function(e){this.value=g(this,t,e,this.value)})):this[0]&&(this[0].multiple?T(this[0]).find("option").filter(function(){return this.selected}).pluck("value"):this[0].value)},offset:function(t){if(t)return this.each(function(e){var n=T(this),r=g(this,t,e,n.offset()),i=n.offsetParent().offset(),o={top:r.top-i.top,left:r.left-i.left};"static"==n.css("position")&&(o.position="relative"),n.css(o)});if(!this.length)return null;if(L.documentElement!==this[0]&&!T.contains(L.documentElement,this[0]))return{top:0,left:0};var e=this[0].getBoundingClientRect();return{left:e.left+window.pageXOffset,top:e.top+window.pageYOffset,width:Math.round(e.width),height:Math.round(e.height)}},css:function(e,n){if(arguments.length<2){var r=this[0];if("string"==typeof e){if(!r)return;return r.style[C(e)]||getComputedStyle(r,"").getPropertyValue(e)}if(Q(e)){if(!r)return;var i={},o=getComputedStyle(r,"");return T.each(e,function(t,e){i[e]=r.style[C(e)]||o.getPropertyValue(e)}),i}}var a="";if("string"==t(e))n||0===n?a=c(e)+":"+f(e,n):this.each(function(){this.style.removeProperty(c(e))});else for(j in e)e[j]||0===e[j]?a+=c(j)+":"+f(j,e[j])+";":this.each(function(){this.style.removeProperty(c(j))});return this.each(function(){this.style.cssText+=";"+a})},index:function(t){return t?this.indexOf(T(t)[0]):this.parent().children().indexOf(this[0])},hasClass:function(t){return!!t&&O.some.call(this,function(t){return this.test(x(t))},l(t))},addClass:function(t){return t?this.each(function(e){if("className"in this){S=[];var n=x(this),r=g(this,t,e,n);r.split(/\s+/g).forEach(function(t){T(this).hasClass(t)||S.push(t)},this),S.length&&x(this,n+(n?" ":"")+S.join(" "))}}):this},removeClass:function(t){return this.each(function(e){if("className"in this){if(t===E)return x(this,"");S=x(this),g(this,t,e,S).split(/\s+/g).forEach(function(t){S=S.replace(l(t)," ")}),x(this,S.trim())}})},toggleClass:function(t,e){return t?this.each(function(n){var r=T(this),i=g(this,t,n,x(this));i.split(/\s+/g).forEach(function(t){(e===E?!r.hasClass(t):e)?r.addClass(t):r.removeClass(t)})}):this},scrollTop:function(t){if(this.length){var e="scrollTop"in this[0];return t===E?e?this[0].scrollTop:this[0].pageYOffset:this.each(e?function(){this.scrollTop=t}:function(){this.scrollTo(this.scrollX,t)})}},scrollLeft:function(t){if(this.length){var e="scrollLeft"in this[0];return t===E?e?this[0].scrollLeft:this[0].pageXOffset:this.each(e?function(){this.scrollLeft=t}:function(){this.scrollTo(t,this.scrollY)})}},position:function(){if(this.length){var t=this[0],e=this.offsetParent(),n=this.offset(),r=Z.test(e[0].nodeName)?{top:0,left:0}:e.offset();return n.top-=parseFloat(T(t).css("margin-top"))||0,n.left-=parseFloat(T(t).css("margin-left"))||0,r.top+=parseFloat(T(e[0]).css("border-top-width"))||0,r.left+=parseFloat(T(e[0]).css("border-left-width"))||0,{top:n.top-r.top,left:n.left-r.left}}},offsetParent:function(){return this.map(function(){for(var t=this.offsetParent||L.body;t&&!Z.test(t.nodeName)&&"static"==T(t).css("position");)t=t.offsetParent;return t})}},T.fn.detach=T.fn.remove,["width","height"].forEach(function(t){var e=t.replace(/./,function(t){return t[0].toUpperCase()});T.fn[t]=function(i){var o,a=this[0];return i===E?n(a)?a["inner"+e]:r(a)?a.documentElement["scroll"+e]:(o=this.offset())&&o[t]:this.each(function(e){a=T(this),a.css(t,g(this,i,e,a[t]()))})}}),I.forEach(function(e,n){var r=n%2;T.fn[e]=function(){var e,i,o=T.map(arguments,function(n){var r=[];return e=t(n),"array"==e?(n.forEach(function(t){return t.nodeType!==E?r.push(t):T.zepto.isZ(t)?r=r.concat(t.get()):void(r=r.concat(Y.fragment(t)))}),r):"object"==e||null==n?n:Y.fragment(n)}),a=this.length>1;return o.length<1?this:this.each(function(t,e){i=r?e:e.parentNode,e=0==n?e.nextSibling:1==n?e.firstChild:2==n?e:null;var s=T.contains(L.documentElement,i);o.forEach(function(t){if(a)t=t.cloneNode(!0);else if(!i)return T(t).remove();i.insertBefore(t,e),s&&w(t,function(t){if(!(null==t.nodeName||"SCRIPT"!==t.nodeName.toUpperCase()||t.type&&"text/javascript"!==t.type||t.src)){var e=t.ownerDocument?t.ownerDocument.defaultView:window;e.eval.call(e,t.innerHTML)}})})})},T.fn[r?e+"To":"insert"+(n?"Before":"After")]=function(t){return T(t)[e](this),this}}),Y.Z.prototype=d.prototype=T.fn,Y.uniq=N,Y.deserializeValue=b,T.zepto=Y,T}();!function(t){function e(t){return t._zid||(t._zid=h++)}function n(t,n,o,a){if(n=r(n),n.ns)var s=i(n.ns);return(v[e(t)]||[]).filter(function(t){return t&&(!n.e||t.e==n.e)&&(!n.ns||s.test(t.ns))&&(!o||e(t.fn)===e(o))&&(!a||t.sel==a)})}function r(t){var e=(""+t).split(".");return{e:e[0],ns:e.slice(1).sort().join(" ")}}function i(t){return new RegExp("(?:^| )"+t.replace(" "," .* ?")+"(?: |$)")}function o(t,e){return t.del&&!y&&t.e in x||!!e}function a(t){return b[t]||y&&x[t]||t}function s(n,i,s,u,l,h,p){var d=e(n),m=v[d]||(v[d]=[]);i.split(/\s/).forEach(function(e){if("ready"==e)return t(document).ready(s);var i=r(e);i.fn=s,i.sel=l,i.e in b&&(s=function(e){var n=e.relatedTarget;if(!n||n!==this&&!t.contains(this,n))return i.fn.apply(this,arguments)}),i.del=h;var d=h||s;i.proxy=function(t){if(t=c(t),!t.isImmediatePropagationStopped()){t.data=u;var e=d.apply(n,t._args==f?[t]:[t].concat(t._args));return e===!1&&(t.preventDefault(),t.stopPropagation()),e}},i.i=m.length,m.push(i),"addEventListener"in n&&n.addEventListener(a(i.e),i.proxy,o(i,p))})}function u(t,r,i,s,u){var c=e(t);(r||"").split(/\s/).forEach(function(e){n(t,e,i,s).forEach(function(e){delete v[c][e.i],"removeEventListener"in t&&t.removeEventListener(a(e.e),e.proxy,o(e,u))})})}function c(e,n){return!n&&e.isDefaultPrevented||(n||(n=e),t.each(T,function(t,r){var i=n[t];e[t]=function(){return this[r]=w,i&&i.apply(n,arguments)},e[r]=E}),e.timeStamp||(e.timeStamp=Date.now()),(n.defaultPrevented!==f?n.defaultPrevented:"returnValue"in n?n.returnValue===!1:n.getPreventDefault&&n.getPreventDefault())&&(e.isDefaultPrevented=w)),e}function l(t){var e,n={originalEvent:t};for(e in t)j.test(e)||t[e]===f||(n[e]=t[e]);return c(n,t)}var f,h=1,p=Array.prototype.slice,d=t.isFunction,m=function(t){return"string"==typeof t},v={},g={},y="onfocusin"in window,x={focus:"focusin",blur:"focusout"},b={mouseenter:"mouseover",mouseleave:"mouseout"};g.click=g.mousedown=g.mouseup=g.mousemove="MouseEvents",t.event={add:s,remove:u},t.proxy=function(n,r){var i=2 in arguments&&p.call(arguments,2);if(d(n)){var o=function(){return n.apply(r,i?i.concat(p.call(arguments)):arguments)};return o._zid=e(n),o}if(m(r))return i?(i.unshift(n[r],n),t.proxy.apply(null,i)):t.proxy(n[r],n);throw new TypeError("expected function")},t.fn.bind=function(t,e,n){return this.on(t,e,n)},t.fn.unbind=function(t,e){return this.off(t,e)},t.fn.one=function(t,e,n,r){return this.on(t,e,n,r,1)};var w=function(){return!0},E=function(){return!1},j=/^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/,T={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"};t.fn.delegate=function(t,e,n){return this.on(e,t,n)},t.fn.undelegate=function(t,e,n){return this.off(e,t,n)},t.fn.live=function(e,n){return t(document.body).delegate(this.selector,e,n),this},t.fn.die=function(e,n){return t(document.body).undelegate(this.selector,e,n),this},t.fn.on=function(e,n,r,i,o){var a,c,h=this;return e&&!m(e)?(t.each(e,function(t,e){h.on(t,n,r,e,o)}),h):(m(n)||d(i)||i===!1||(i=r,r=n,n=f),i!==f&&r!==!1||(i=r,r=f),i===!1&&(i=E),h.each(function(f,h){o&&(a=function(t){return u(h,t.type,i),i.apply(this,arguments)}),n&&(c=function(e){var r,o=t(e.target).closest(n,h).get(0);if(o&&o!==h)return r=t.extend(l(e),{currentTarget:o,liveFired:h}),(a||i).apply(o,[r].concat(p.call(arguments,1)))}),s(h,e,i,r,n,c||a)}))},t.fn.off=function(e,n,r){var i=this;return e&&!m(e)?(t.each(e,function(t,e){i.off(t,n,e)}),i):(m(n)||d(r)||r===!1||(r=n,n=f),r===!1&&(r=E),i.each(function(){u(this,e,r,n)}))},t.fn.trigger=function(e,n){return e=m(e)||t.isPlainObject(e)?t.Event(e):c(e),e._args=n,this.each(function(){e.type in x&&"function"==typeof this[e.type]?this[e.type]():"dispatchEvent"in this?this.dispatchEvent(e):t(this).triggerHandler(e,n)})},t.fn.triggerHandler=function(e,r){var i,o;return this.each(function(a,s){i=l(m(e)?t.Event(e):e),i._args=r,i.target=s,t.each(n(s,e.type||e),function(t,e){if(o=e.proxy(i),i.isImmediatePropagationStopped())return!1})}),o},"focusin focusout focus blur load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select keydown keypress keyup error".split(" ").forEach(function(e){t.fn[e]=function(t){return 0 in arguments?this.bind(e,t):this.trigger(e)}}),t.Event=function(t,e){m(t)||(e=t,t=e.type);var n=document.createEvent(g[t]||"Events"),r=!0;if(e)for(var i in e)"bubbles"==i?r=!!e[i]:n[i]=e[i];return n.initEvent(t,r,!0),c(n)}}(e),function(t){function e(e,n,r){var i=t.Event(n);return t(e).trigger(i,r),!i.isDefaultPrevented()}function n(t,n,r,i){if(t.global)return e(n||x,r,i)}function r(e){e.global&&0===t.active++&&n(e,null,"ajaxStart")}function i(e){e.global&&!--t.active&&n(e,null,"ajaxStop")}function o(t,e){var r=e.context;return e.beforeSend.call(r,t,e)!==!1&&n(e,r,"ajaxBeforeSend",[t,e])!==!1&&void n(e,r,"ajaxSend",[t,e])}function a(t,e,r,i){var o=r.context,a="success";r.success.call(o,t,a,e),i&&i.resolveWith(o,[t,a,e]),n(r,o,"ajaxSuccess",[e,r,t]),u(a,e,r)}function s(t,e,r,i,o){var a=i.context;i.error.call(a,r,e,t),o&&o.rejectWith(a,[r,e,t]),n(i,a,"ajaxError",[r,i,t||e]),u(e,r,i)}function u(t,e,r){var o=r.context;r.complete.call(o,e,t),n(r,o,"ajaxComplete",[e,r]),i(r)}function c(t,e,n){if(n.dataFilter==l)return t;var r=n.context;return n.dataFilter.call(r,t,e)}function l(){}function f(t){return t&&(t=t.split(";",2)[0]),t&&(t==T?"html":t==j?"json":w.test(t)?"script":E.test(t)&&"xml")||"text"}function h(t,e){return""==e?t:(t+"&"+e).replace(/[&?]{1,2}/,"?")}function p(e){e.processData&&e.data&&"string"!=t.type(e.data)&&(e.data=t.param(e.data,e.traditional)),!e.data||e.type&&"GET"!=e.type.toUpperCase()&&"jsonp"!=e.dataType||(e.url=h(e.url,e.data),e.data=void 0)}function d(e,n,r,i){return t.isFunction(n)&&(i=r,r=n,n=void 0),t.isFunction(r)||(i=r,r=void 0),{url:e,data:n,success:r,dataType:i}}function m(e,n,r,i){var o,a=t.isArray(n),s=t.isPlainObject(n);t.each(n,function(n,u){o=t.type(u),i&&(n=r?i:i+"["+(s||"object"==o||"array"==o?n:"")+"]"),!i&&a?e.add(u.name,u.value):"array"==o||!r&&"object"==o?m(e,u,r,n):e.add(n,u)})}var v,g,y=+new Date,x=window.document,b=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,w=/^(?:text|application)\/javascript/i,E=/^(?:text|application)\/xml/i,j="application/json",T="text/html",S=/^\s*$/,C=x.createElement("a");C.href=window.location.href,t.active=0,t.ajaxJSONP=function(e,n){if(!("type"in e))return t.ajax(e);var r,i,u=e.jsonpCallback,c=(t.isFunction(u)?u():u)||"Zepto"+y++,l=x.createElement("script"),f=window[c],h=function(e){t(l).triggerHandler("error",e||"abort")},p={abort:h};return n&&n.promise(p),t(l).on("load error",function(o,u){clearTimeout(i),t(l).off().remove(),"error"!=o.type&&r?a(r[0],p,e,n):s(null,u||"error",p,e,n),window[c]=f,r&&t.isFunction(f)&&f(r[0]),f=r=void 0}),o(p,e)===!1?(h("abort"),p):(window[c]=function(){r=arguments},l.src=e.url.replace(/\?(.+)=\?/,"?$1="+c),x.head.appendChild(l),e.timeout>0&&(i=setTimeout(function(){h("timeout")},e.timeout)),p)},t.ajaxSettings={type:"GET",beforeSend:l,success:l,error:l,complete:l,context:null,global:!0,xhr:function(){return new window.XMLHttpRequest},accepts:{script:"text/javascript, application/javascript, application/x-javascript",json:j,xml:"application/xml, text/xml",html:T,text:"text/plain"},crossDomain:!1,timeout:0,processData:!0,cache:!0,dataFilter:l},t.ajax=function(e){var n,i,u=t.extend({},e||{}),d=t.Deferred&&t.Deferred();for(v in t.ajaxSettings)void 0===u[v]&&(u[v]=t.ajaxSettings[v]);r(u),u.crossDomain||(n=x.createElement("a"),n.href=u.url,n.href=n.href,u.crossDomain=C.protocol+"//"+C.host!=n.protocol+"//"+n.host),u.url||(u.url=window.location.toString()),(i=u.url.indexOf("#"))>-1&&(u.url=u.url.slice(0,i)),p(u);var m=u.dataType,y=/\?.+=\?/.test(u.url);if(y&&(m="jsonp"),u.cache!==!1&&(e&&e.cache===!0||"script"!=m&&"jsonp"!=m)||(u.url=h(u.url,"_="+Date.now())),"jsonp"==m)return y||(u.url=h(u.url,u.jsonp?u.jsonp+"=?":u.jsonp===!1?"":"callback=?")),t.ajaxJSONP(u,d);var b,w=u.accepts[m],E={},j=function(t,e){E[t.toLowerCase()]=[t,e]},T=/^([\w-]+:)\/\//.test(u.url)?RegExp.$1:window.location.protocol,N=u.xhr(),O=N.setRequestHeader;if(d&&d.promise(N),u.crossDomain||j("X-Requested-With","XMLHttpRequest"),j("Accept",w||"*/*"),(w=u.mimeType||w)&&(w.indexOf(",")>-1&&(w=w.split(",",2)[0]),N.overrideMimeType&&N.overrideMimeType(w)),(u.contentType||u.contentType!==!1&&u.data&&"GET"!=u.type.toUpperCase())&&j("Content-Type",u.contentType||"application/x-www-form-urlencoded"),u.headers)for(g in u.headers)j(g,u.headers[g]);if(N.setRequestHeader=j,N.onreadystatechange=function(){if(4==N.readyState){N.onreadystatechange=l,clearTimeout(b);var e,n=!1;if(N.status>=200&&N.status<300||304==N.status||0==N.status&&"file:"==T){if(m=m||f(u.mimeType||N.getResponseHeader("content-type")),"arraybuffer"==N.responseType||"blob"==N.responseType)e=N.response;else{e=N.responseText;try{e=c(e,m,u),"script"==m?(0,eval)(e):"xml"==m?e=N.responseXML:"json"==m&&(e=S.test(e)?null:t.parseJSON(e))}catch(r){n=r}if(n)return s(n,"parsererror",N,u,d)}a(e,N,u,d)}else s(N.statusText||null,N.status?"error":"abort",N,u,d)}},o(N,u)===!1)return N.abort(),s(null,"abort",N,u,d),N;var P=!("async"in u)||u.async;if(N.open(u.type,u.url,P,u.username,u.password),u.xhrFields)for(g in u.xhrFields)N[g]=u.xhrFields[g];for(g in E)O.apply(N,E[g]);return u.timeout>0&&(b=setTimeout(function(){N.onreadystatechange=l,N.abort(),s(null,"timeout",N,u,d)},u.timeout)),N.send(u.data?u.data:null),N},t.get=function(){return t.ajax(d.apply(null,arguments))},t.post=function(){var e=d.apply(null,arguments);return e.type="POST",t.ajax(e)},t.getJSON=function(){var e=d.apply(null,arguments);return e.dataType="json",t.ajax(e)},t.fn.load=function(e,n,r){if(!this.length)return this;var i,o=this,a=e.split(/\s/),s=d(e,n,r),u=s.success;return a.length>1&&(s.url=a[0],i=a[1]),s.success=function(e){o.html(i?t("<div>").html(e.replace(b,"")).find(i):e),u&&u.apply(o,arguments)},t.ajax(s),this};var N=encodeURIComponent;t.param=function(e,n){var r=[];return r.add=function(e,n){t.isFunction(n)&&(n=n()),null==n&&(n=""),this.push(N(e)+"="+N(n))},m(r,e,n),r.join("&").replace(/%20/g,"+")}}(e),function(t){t.fn.serializeArray=function(){var e,n,r=[],i=function(t){return t.forEach?t.forEach(i):void r.push({name:e,value:t})};return this[0]&&t.each(this[0].elements,function(r,o){n=o.type,e=o.name,e&&"fieldset"!=o.nodeName.toLowerCase()&&!o.disabled&&"submit"!=n&&"reset"!=n&&"button"!=n&&"file"!=n&&("radio"!=n&&"checkbox"!=n||o.checked)&&i(t(o).val())}),r},t.fn.serialize=function(){var t=[];return this.serializeArray().forEach(function(e){t.push(encodeURIComponent(e.name)+"="+encodeURIComponent(e.value))}),t.join("&")},t.fn.submit=function(e){if(0 in arguments)this.bind("submit",e);else if(this.length){var n=t.Event("submit");this.eq(0).trigger(n),n.isDefaultPrevented()||this.get(0).submit()}return this}}(e),function(){try{getComputedStyle(void 0)}catch(t){var e=getComputedStyle;window.getComputedStyle=function(t,n){try{return e(t,n)}catch(r){return null}}}}(),t("zepto",e)});layui.define(["layer-mobile","zepto"],function(e){"use strict";var t=layui.zepto,a=layui["layer-mobile"],i=(layui.device(),"layui-upload-enter"),n="layui-upload-iframe",r={icon:2,shift:6},o={file:"文件",video:"视频",audio:"音频"};a.msg=function(e){return a.open({content:e||"",skin:"msg",time:2})};var s=function(e){this.options=e};s.prototype.init=function(){var e=this,a=e.options,r=t("body"),s=t(a.elem||".layui-upload-file"),u=t('<iframe id="'+n+'" class="'+n+'" name="'+n+'"></iframe>');return t("#"+n)[0]||r.append(u),s.each(function(r,s){s=t(s);var u='<form target="'+n+'" method="'+(a.method||"post")+'" key="set-mine" enctype="multipart/form-data" action="'+(a.url||"")+'"></form>',l=s.attr("lay-type")||a.type;a.unwrap||(u='<div class="layui-box layui-upload-button">'+u+'<span class="layui-upload-icon"><i class="layui-icon">&#xe608;</i>'+(s.attr("lay-title")||a.title||"上传"+(o[l]||"图片"))+"</span></div>"),u=t(u),a.unwrap||u.on("dragover",function(e){e.preventDefault(),t(this).addClass(i)}).on("dragleave",function(){t(this).removeClass(i)}).on("drop",function(){t(this).removeClass(i)}),s.parent("form").attr("target")===n&&(a.unwrap?s.unwrap():(s.parent().next().remove(),s.unwrap().unwrap())),s.wrap(u),s.off("change").on("change",function(){e.action(this,l)})})},s.prototype.action=function(e,i){var o=this,s=o.options,u=e.value,l=t(e),p=l.attr("lay-ext")||s.ext||"";if(u){switch(i){case"file":if(p&&!RegExp("\\w\\.("+p+")$","i").test(escape(u)))return a.msg("不支持该文件格式",r),e.value="";break;case"video":if(!RegExp("\\w\\.("+(p||"avi|mp4|wma|rmvb|rm|flash|3gp|flv")+")$","i").test(escape(u)))return a.msg("不支持该视频格式",r),e.value="";break;case"audio":if(!RegExp("\\w\\.("+(p||"mp3|wav|mid")+")$","i").test(escape(u)))return a.msg("不支持该音频格式",r),e.value="";break;default:if(!RegExp("\\w\\.("+(p||"jpg|png|gif|bmp|jpeg")+")$","i").test(escape(u)))return a.msg("不支持该图片格式",r),e.value=""}s.before&&s.before(e),l.parent().submit();var c=t("#"+n),f=setInterval(function(){var t;try{t=c.contents().find("body").text()}catch(i){a.msg("上传接口存在跨域",r),clearInterval(f)}if(t){clearInterval(f),c.contents().find("body").html("");try{t=JSON.parse(t)}catch(i){return t={},a.msg("请对上传接口返回JSON字符",r)}"function"==typeof s.success&&s.success(t,e)}},30);e.value=""}},e("upload-mobile",function(e){var t=new s(e=e||{});t.init()})});layui.define(function(i){i("layim-mobile",layui.v)});layui["layui.mobile"]||layui.config({base:layui.cache.dir+"lay/modules/mobile/"}).extend({"layer-mobile":"layer-mobile",zepto:"zepto","upload-mobile":"upload-mobile","layim-mobile":"layim-mobile"}),layui.define(["layer-mobile","zepto","layim-mobile"],function(l){l("mobile",{layer:layui["layer-mobile"],layim:layui["layim-mobile"]})});
\ No newline at end of file
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/rate.js b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/rate.js
new file mode 100644
index 0000000..762fb3a
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/rate.js
@@ -0,0 +1,2 @@
+/** layui-v2.4.5 MIT License By https://www.layui.com */
+ ;layui.define("jquery",function(e){"use strict";var a=layui.jquery,i={config:{},index:layui.rate?layui.rate.index+1e4:0,set:function(e){var i=this;return i.config=a.extend({},i.config,e),i},on:function(e,a){return layui.onevent.call(this,n,e,a)}},l=function(){var e=this,a=e.config;return{setvalue:function(a){e.setvalue.call(e,a)},config:a}},n="rate",t="layui-rate",o="layui-icon-rate",s="layui-icon-rate-solid",u="layui-icon-rate-half",r="layui-icon-rate-solid layui-icon-rate-half",c="layui-icon-rate-solid layui-icon-rate",f="layui-icon-rate layui-icon-rate-half",v=function(e){var l=this;l.index=++i.index,l.config=a.extend({},l.config,i.config,e),l.render()};v.prototype.config={length:5,text:!1,readonly:!1,half:!1,value:0,theme:""},v.prototype.render=function(){var e=this,i=e.config,l=i.theme?'style="color: '+i.theme+';"':"";i.elem=a(i.elem),parseInt(i.value)!==i.value&&(i.half||(i.value=Math.ceil(i.value)-i.value<.5?Math.ceil(i.value):Math.floor(i.value)));for(var n='<ul class="layui-rate" '+(i.readonly?"readonly":"")+">",u=1;u<=i.length;u++){var r='<li class="layui-inline"><i class="layui-icon '+(u>Math.floor(i.value)?o:s)+'" '+l+"></i></li>";i.half&&parseInt(i.value)!==i.value&&u==Math.ceil(i.value)?n=n+'<li><i class="layui-icon layui-icon-rate-half" '+l+"></i></li>":n+=r}n+="</ul>"+(i.text?'<span class="layui-inline">'+i.value+"星":"")+"</span>";var c=i.elem,f=c.next("."+t);f[0]&&f.remove(),e.elemTemp=a(n),i.span=e.elemTemp.next("span"),i.setText&&i.setText(i.value),c.html(e.elemTemp),c.addClass("layui-inline"),i.readonly||e.action()},v.prototype.setvalue=function(e){var a=this,i=a.config;i.value=e,a.render()},v.prototype.action=function(){var e=this,i=e.config,l=e.elemTemp,n=l.find("i").width();l.children("li").each(function(e){var t=e+1,v=a(this);v.on("click",function(e){if(i.value=t,i.half){var o=e.pageX-a(this).offset().left;o<=n/2&&(i.value=i.value-.5)}i.text&&l.next("span").text(i.value+"星"),i.choose&&i.choose(i.value),i.setText&&i.setText(i.value)}),v.on("mousemove",function(e){if(l.find("i").each(function(){a(this).addClass(o).removeClass(r)}),l.find("i:lt("+t+")").each(function(){a(this).addClass(s).removeClass(f)}),i.half){var c=e.pageX-a(this).offset().left;c<=n/2&&v.children("i").addClass(u).removeClass(s)}}),v.on("mouseleave",function(){l.find("i").each(function(){a(this).addClass(o).removeClass(r)}),l.find("i:lt("+Math.floor(i.value)+")").each(function(){a(this).addClass(s).removeClass(f)}),i.half&&parseInt(i.value)!==i.value&&l.children("li:eq("+Math.floor(i.value)+")").children("i").addClass(u).removeClass(c)})})},v.prototype.events=function(){var e=this;e.config},i.render=function(e){var a=new v(e);return l.call(a)},e(n,i)});
\ No newline at end of file
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/slider.js b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/slider.js
new file mode 100644
index 0000000..446378d
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/slider.js
@@ -0,0 +1,2 @@
+/** layui-v2.4.5 MIT License By https://www.layui.com */
+ ;layui.define("jquery",function(e){"use strict";var i=layui.jquery,t={config:{},index:layui.slider?layui.slider.index+1e4:0,set:function(e){var t=this;return t.config=i.extend({},t.config,e),t},on:function(e,i){return layui.onevent.call(this,n,e,i)}},a=function(){var e=this,i=e.config;return{setValue:function(i,t){return e.slide("set",i,t||0)},config:i}},n="slider",l="layui-disabled",s="layui-slider",r="layui-slider-bar",o="layui-slider-wrap",u="layui-slider-wrap-btn",d="layui-slider-tips",v="layui-slider-input",c="layui-slider-input-txt",m="layui-slider-input-btn",p="layui-slider-hover",f=function(e){var a=this;a.index=++t.index,a.config=i.extend({},a.config,t.config,e),a.render()};f.prototype.config={type:"default",min:0,max:100,value:0,step:1,showstep:!1,tips:!0,input:!1,range:!1,height:200,disabled:!1,theme:"#009688"},f.prototype.render=function(){var e=this,t=e.config;if(t.step<1&&(t.step=1),t.max<t.min&&(t.max=t.min+t.step),t.range){t.value="object"==typeof t.value?t.value:[t.min,t.value];var a=Math.min(t.value[0],t.value[1]),n=Math.max(t.value[0],t.value[1]);t.value[0]=a>t.min?a:t.min,t.value[1]=n>t.min?n:t.min,t.value[0]=t.value[0]>t.max?t.max:t.value[0],t.value[1]=t.value[1]>t.max?t.max:t.value[1];var r=Math.floor((t.value[0]-t.min)/(t.max-t.min)*100),v=Math.floor((t.value[1]-t.min)/(t.max-t.min)*100),m=v-r+"%";r+="%",v+="%"}else{"object"==typeof t.value&&(t.value=Math.min.apply(null,t.value)),t.value<t.min&&(t.value=t.min),t.value>t.max&&(t.value=t.max);var m=Math.floor((t.value-t.min)/(t.max-t.min)*100)+"%"}var p=t.disabled?"#c2c2c2":t.theme,f='<div class="layui-slider '+("vertical"===t.type?"layui-slider-vertical":"")+'">'+(t.tips?'<div class="layui-slider-tips"></div>':"")+'<div class="layui-slider-bar" style="background:'+p+"; "+("vertical"===t.type?"height":"width")+":"+m+";"+("vertical"===t.type?"bottom":"left")+":"+(r||0)+';"></div><div class="layui-slider-wrap" style="'+("vertical"===t.type?"bottom":"left")+":"+(r||m)+';"><div class="layui-slider-wrap-btn" style="border: 2px solid '+p+';"></div></div>'+(t.range?'<div class="layui-slider-wrap" style="'+("vertical"===t.type?"bottom":"left")+":"+v+';"><div class="layui-slider-wrap-btn" style="border: 2px solid '+p+';"></div></div>':"")+"</div>",h=i(t.elem),y=h.next("."+s);if(y[0]&&y.remove(),e.elemTemp=i(f),t.range?(e.elemTemp.find("."+o).eq(0).data("value",t.value[0]),e.elemTemp.find("."+o).eq(1).data("value",t.value[1])):e.elemTemp.find("."+o).data("value",t.value),h.html(e.elemTemp),"vertical"===t.type&&e.elemTemp.height(t.height+"px"),t.showstep){for(var g=(t.max-t.min)/t.step,b="",x=1;x<g+1;x++){var T=100*x/g;T<100&&(b+='<div class="layui-slider-step" style="'+("vertical"===t.type?"bottom":"left")+":"+T+'%"></div>')}e.elemTemp.append(b)}if(t.input&&!t.range){var w=i('<div class="layui-slider-input layui-input"><div class="layui-slider-input-txt"><input type="text" class="layui-input"></div><div class="layui-slider-input-btn"><i class="layui-icon layui-icon-up"></i><i class="layui-icon layui-icon-down"></i></div></div>');h.css("position","relative"),h.append(w),h.find("."+c).children("input").val(t.value),"vertical"===t.type?w.css({left:0,top:-48}):e.elemTemp.css("margin-right",w.outerWidth()+15)}t.disabled?(e.elemTemp.addClass(l),e.elemTemp.find("."+u).addClass(l)):e.slide(),e.elemTemp.find("."+u).on("mouseover",function(){var a="vertical"===t.type?t.height:e.elemTemp[0].offsetWidth,n=e.elemTemp.find("."+o),l="vertical"===t.type?a-i(this).parent()[0].offsetTop-n.height():i(this).parent()[0].offsetLeft,s=l/a*100,r=i(this).parent().data("value"),u=t.setTips?t.setTips(r):r;e.elemTemp.find("."+d).html(u),"vertical"===t.type?e.elemTemp.find("."+d).css({bottom:s+"%","margin-bottom":"20px",display:"inline-block"}):e.elemTemp.find("."+d).css({left:s+"%",display:"inline-block"})}).on("mouseout",function(){e.elemTemp.find("."+d).css("display","none")})},f.prototype.slide=function(e,t,a){var n=this,l=n.config,s=n.elemTemp,f=function(){return"vertical"===l.type?l.height:s[0].offsetWidth},h=s.find("."+o),y=s.next("."+v),g=y.children("."+c).children("input").val(),b=100/((l.max-l.min)/Math.ceil(l.step)),x=function(e,i){e=Math.ceil(e)*b>100?Math.ceil(e)*b:Math.round(e)*b,e=e>100?100:e,h.eq(i).css("vertical"===l.type?"bottom":"left",e+"%");var t=T(h[0].offsetLeft),a=l.range?T(h[1].offsetLeft):0;"vertical"===l.type?(s.find("."+d).css({bottom:e+"%","margin-bottom":"20px"}),t=T(f()-h[0].offsetTop-h.height()),a=l.range?T(f()-h[1].offsetTop-h.height()):0):s.find("."+d).css("left",e+"%"),t=t>100?100:t,a=a>100?100:a;var n=Math.min(t,a),o=Math.abs(t-a);"vertical"===l.type?s.find("."+r).css({height:o+"%",bottom:n+"%"}):s.find("."+r).css({width:o+"%",left:n+"%"});var u=l.min+Math.round((l.max-l.min)*e/100);if(g=u,y.children("."+c).children("input").val(g),h.eq(i).data("value",u),u=l.setTips?l.setTips(u):u,s.find("."+d).html(u),l.range){var v=[h.eq(0).data("value"),h.eq(1).data("value")];v[0]>v[1]&&v.reverse()}l.change&&l.change(l.range?v:u)},T=function(e){var i=e/f()*100/b,t=Math.round(i)*b;return e==f()&&(t=Math.ceil(i)*b),t},w=i(['<div class="layui-auxiliar-moving" id="LAY-slider-moving"></div'].join("")),M=function(e,t){var a=function(){t&&t(),w.remove()};i("#LAY-slider-moving")[0]||i("body").append(w),w.on("mousemove",e),w.on("mouseup",a).on("mouseleave",a)};if("set"===e)return x(t,a);s.find("."+u).each(function(e){var t=i(this);t.on("mousedown",function(i){i=i||window.event;var a=t.parent()[0].offsetLeft,n=i.clientX;"vertical"===l.type&&(a=f()-t.parent()[0].offsetTop-h.height(),n=i.clientY);var r=function(i){i=i||window.event;var r=a+("vertical"===l.type?n-i.clientY:i.clientX-n);r<0&&(r=0),r>f()&&(r=f());var o=r/f()*100/b;x(o,e),t.addClass(p),s.find("."+d).show(),i.preventDefault()},o=function(){t.removeClass(p),s.find("."+d).hide()};M(r,o)})}),s.on("click",function(e){var t=i("."+u);if(!t.is(event.target)&&0===t.has(event.target).length&&t.length){var a,n="vertical"===l.type?f()-e.clientY+i(this).offset().top:e.clientX-i(this).offset().left;n<0&&(n=0),n>f()&&(n=f());var s=n/f()*100/b;a=l.range?"vertical"===l.type?Math.abs(n-parseInt(i(h[0]).css("bottom")))>Math.abs(n-parseInt(i(h[1]).css("bottom")))?1:0:Math.abs(n-h[0].offsetLeft)>Math.abs(n-h[1].offsetLeft)?1:0:0,x(s,a),e.preventDefault()}}),y.hover(function(){var e=i(this);e.children("."+m).fadeIn("fast")},function(){var e=i(this);e.children("."+m).fadeOut("fast")}),y.children("."+m).children("i").each(function(e){i(this).on("click",function(){g=1==e?g-l.step<l.min?l.min:Number(g)-l.step:Number(g)+l.step>l.max?l.max:Number(g)+l.step;var i=(g-l.min)/(l.max-l.min)*100/b;x(i,0)})});var q=function(){var e=this.value;e=isNaN(e)?0:e,e=e<l.min?l.min:e,e=e>l.max?l.max:e,this.value=e;var i=(e-l.min)/(l.max-l.min)*100/b;x(i,0)};y.children("."+c).children("input").on("keydown",function(e){13===e.keyCode&&(e.preventDefault(),q.call(this))}).on("change",q)},f.prototype.events=function(){var e=this;e.config},t.render=function(e){var i=new f(e);return a.call(i)},e(n,t)});
\ No newline at end of file
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/table.js b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/table.js
new file mode 100644
index 0000000..e9217db
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/table.js
@@ -0,0 +1,2 @@
+/** layui-v2.4.5 MIT License By https://www.layui.com */
+ ;layui.define(["laytpl","laypage","layer","form","util"],function(e){"use strict";var t=layui.$,i=layui.laytpl,a=layui.laypage,l=layui.layer,n=layui.form,o=(layui.util,layui.hint()),r=layui.device(),d={config:{checkName:"LAY_CHECKED",indexName:"LAY_TABLE_INDEX"},cache:{},index:layui.table?layui.table.index+1e4:0,set:function(e){var i=this;return i.config=t.extend({},i.config,e),i},on:function(e,t){return layui.onevent.call(this,u,e,t)}},c=function(){var e=this,t=e.config,i=t.id||t.index;return i&&(c.that[i]=e,c.config[i]=t),{reload:function(t){e.reload.call(e,t)},setColsWidth:function(){e.setColsWidth.call(e)},resize:function(){e.resize.call(e)},config:t}},s=function(e){var t=c.config[e];return t||o.error("The ID option was not found in the table instance"),t||null},u="table",h=".layui-table",y="layui-hide",f="layui-none",p="layui-table-view",v=".layui-table-tool",m=".layui-table-box",g=".layui-table-init",b=".layui-table-header",x=".layui-table-body",k=".layui-table-main",C=".layui-table-fixed",w=".layui-table-fixed-l",T=".layui-table-fixed-r",A=".layui-table-total",L=".layui-table-page",S=".layui-table-sort",N="layui-table-edit",W="layui-table-hover",_=function(e){var t='{{#if(item2.colspan){}} colspan="{{item2.colspan}}"{{#} if(item2.rowspan){}} rowspan="{{item2.rowspan}}"{{#}}}';return e=e||{},['<table cellspacing="0" cellpadding="0" border="0" class="layui-table" ','{{# if(d.data.skin){ }}lay-skin="{{d.data.skin}}"{{# } }} {{# if(d.data.size){ }}lay-size="{{d.data.size}}"{{# } }} {{# if(d.data.even){ }}lay-even{{# } }}>',"<thead>","{{# layui.each(d.data.cols, function(i1, item1){ }}","<tr>","{{# layui.each(item1, function(i2, item2){ }}",'{{# if(item2.fixed && item2.fixed !== "right"){ left = true; } }}','{{# if(item2.fixed === "right"){ right = true; } }}',function(){return e.fixed&&"right"!==e.fixed?'{{# if(item2.fixed && item2.fixed !== "right"){ }}':"right"===e.fixed?'{{# if(item2.fixed === "right"){ }}':""}(),"{{# var isSort = !(item2.colGroup) && item2.sort; }}",'<th data-field="{{ item2.field||i2 }}" data-key="{{d.index}}-{{i1}}-{{i2}}" {{# if( item2.parentKey){ }}data-parentkey="{{ item2.parentKey }}"{{# } }} {{# if(item2.minWidth){ }}data-minwidth="{{item2.minWidth}}"{{# } }} '+t+' {{# if(item2.unresize || item2.colGroup){ }}data-unresize="true"{{# } }} class="{{# if(item2.hide){ }}layui-hide{{# } }}{{# if(isSort){ }} layui-unselect{{# } }}{{# if(!item2.field){ }} layui-table-col-special{{# } }}">','<div class="layui-table-cell laytable-cell-',"{{# if(item2.colGroup){ }}","group","{{# } else { }}","{{d.index}}-{{i1}}-{{i2}}",'{{# if(item2.type !== "normal"){ }}'," laytable-cell-{{ item2.type }}","{{# } }}","{{# } }}",'" {{#if(item2.align){}}align="{{item2.align}}"{{#}}}>','{{# if(item2.type === "checkbox"){ }}','<input type="checkbox" name="layTableCheckbox" lay-skin="primary" lay-filter="layTableAllChoose" {{# if(item2[d.data.checkName]){ }}checked{{# }; }}>',"{{# } else { }}",'<span>{{item2.title||""}}</span>',"{{# if(isSort){ }}",'<span class="layui-table-sort layui-inline"><i class="layui-edge layui-table-sort-asc" title="升序"></i><i class="layui-edge layui-table-sort-desc" title="降序"></i></span>',"{{# } }}","{{# } }}","</div>","</th>",e.fixed?"{{# }; }}":"","{{# }); }}","</tr>","{{# }); }}","</thead>","</table>"].join("")},E=['<table cellspacing="0" cellpadding="0" border="0" class="layui-table" ','{{# if(d.data.skin){ }}lay-skin="{{d.data.skin}}"{{# } }} {{# if(d.data.size){ }}lay-size="{{d.data.size}}"{{# } }} {{# if(d.data.even){ }}lay-even{{# } }}>',"<tbody></tbody>","</table>"].join(""),z=['<div class="layui-form layui-border-box {{d.VIEW_CLASS}}" lay-filter="LAY-table-{{d.index}}" lay-id="{{ d.data.id }}" style="{{# if(d.data.width){ }}width:{{d.data.width}}px;{{# } }} {{# if(d.data.height){ }}height:{{d.data.height}}px;{{# } }}">',"{{# if(d.data.toolbar){ }}",'<div class="layui-table-tool">','<div class="layui-table-tool-temp"></div>','<div class="layui-table-tool-self"></div>',"</div>","{{# } }}",'<div class="layui-table-box">',"{{# if(d.data.loading){ }}",'<div class="layui-table-init" style="background-color: #fff;">','<i class="layui-icon layui-icon-loading layui-icon"></i>',"</div>","{{# } }}","{{# var left, right; }}",'<div class="layui-table-header">',_(),"</div>",'<div class="layui-table-body layui-table-main">',E,"</div>","{{# if(left){ }}",'<div class="layui-table-fixed layui-table-fixed-l">','<div class="layui-table-header">',_({fixed:!0}),"</div>",'<div class="layui-table-body">',E,"</div>","</div>","{{# }; }}","{{# if(right){ }}",'<div class="layui-table-fixed layui-table-fixed-r">','<div class="layui-table-header">',_({fixed:"right"}),'<div class="layui-table-mend"></div>',"</div>",'<div class="layui-table-body">',E,"</div>","</div>","{{# }; }}","</div>","{{# if(d.data.totalRow){ }}",'<div class="layui-table-total">','<table cellspacing="0" cellpadding="0" border="0" class="layui-table" ','{{# if(d.data.skin){ }}lay-skin="{{d.data.skin}}"{{# } }} {{# if(d.data.size){ }}lay-size="{{d.data.size}}"{{# } }} {{# if(d.data.even){ }}lay-even{{# } }}>','<tbody><tr><td><div class="layui-table-cell" style="visibility: hidden;">Total</div></td></tr></tbody>',"</table>","</div>","{{# } }}","{{# if(d.data.page){ }}",'<div class="layui-table-page">','<div id="layui-table-page{{d.index}}"></div>',"</div>","{{# } }}","<style>","{{# layui.each(d.data.cols, function(i1, item1){","layui.each(item1, function(i2, item2){ }}",".laytable-cell-{{d.index}}-{{i1}}-{{i2}}{ ","{{# if(item2.width){ }}","width: {{item2.width}}px;","{{# } }}"," }","{{# });","}); }}","</style>","</div>"].join(""),H=t(window),R=t(document),F=function(e){var i=this;i.index=++d.index,i.config=t.extend({},i.config,d.config,e),i.render()};F.prototype.config={limit:10,loading:!0,cellMinWidth:60,defaultToolbar:["filter","exports","print"],autoSort:!0,text:{none:"无数据"}},F.prototype.render=function(){var e=this,a=e.config;if(a.elem=t(a.elem),a.where=a.where||{},a.id=a.id||a.elem.attr("id")||e.index,a.request=t.extend({pageName:"page",limitName:"limit"},a.request),a.response=t.extend({statusName:"code",statusCode:0,msgName:"msg",dataName:"data",countName:"count"},a.response),"object"==typeof a.page&&(a.limit=a.page.limit||a.limit,a.limits=a.page.limits||a.limits,e.page=a.page.curr=a.page.curr||1,delete a.page.elem,delete a.page.jump),!a.elem[0])return e;a.height&&/^full-\d+$/.test(a.height)&&(e.fullHeightGap=a.height.split("-")[1],a.height=H.height()-e.fullHeightGap),e.setInit();var l=a.elem,n=l.next("."+p),o=e.elem=t(i(z).render({VIEW_CLASS:p,data:a,index:e.index}));if(a.index=e.index,n[0]&&n.remove(),l.after(o),e.layTool=o.find(v),e.layBox=o.find(m),e.layHeader=o.find(b),e.layMain=o.find(k),e.layBody=o.find(x),e.layFixed=o.find(C),e.layFixLeft=o.find(w),e.layFixRight=o.find(T),e.layTotal=o.find(A),e.layPage=o.find(L),e.renderToolbar(),e.fullSize(),a.cols.length>1){var r=e.layFixed.find(b).find("th");r.height(e.layHeader.height()-1-parseFloat(r.css("padding-top"))-parseFloat(r.css("padding-bottom")))}e.pullData(e.page),e.events()},F.prototype.initOpts=function(e){var t=this,i=(t.config,{checkbox:48,radio:48,space:15,numbers:40});e.checkbox&&(e.type="checkbox"),e.space&&(e.type="space"),e.type||(e.type="normal"),"normal"!==e.type&&(e.unresize=!0,e.width=e.width||i[e.type])},F.prototype.setInit=function(e){var t=this,i=t.config;return i.clientWidth=i.width||function(){var e=function(t){var a,l;t=t||i.elem.parent(),a=t.width();try{l="none"===t.css("display")}catch(n){}return!t[0]||a&&!l?a:e(t.parent())};return e()}(),"width"===e?i.clientWidth:void layui.each(i.cols,function(e,a){layui.each(a,function(l,n){if(!n)return void a.splice(l,1);if(n.key=e+"-"+l,n.hide=n.hide||!1,n.colGroup||n.colspan>1){var o=0;layui.each(i.cols[e+1],function(t,i){i.HAS_PARENT||o>1&&o==n.colspan||(i.HAS_PARENT=!0,i.parentKey=e+"-"+l,o+=parseInt(i.colspan>1?i.colspan:1))}),n.colGroup=!0}t.initOpts(n)})})},F.prototype.renderToolbar=function(){var e=this,a=e.config,l=['<div class="layui-inline" lay-event="add"><i class="layui-icon layui-icon-add-1"></i></div>','<div class="layui-inline" lay-event="update"><i class="layui-icon layui-icon-edit"></i></div>','<div class="layui-inline" lay-event="delete"><i class="layui-icon layui-icon-delete"></i></div>'].join(""),n=e.layTool.find(".layui-table-tool-temp");if("default"===a.toolbar)n.html(l);else if("string"==typeof a.toolbar){var o=t(a.toolbar).html()||"";o&&n.html(i(o).render(a))}var r={filter:{title:"筛选列",layEvent:"LAYTABLE_COLS",icon:"layui-icon-cols"},exports:{title:"导出",layEvent:"LAYTABLE_EXPORT",icon:"layui-icon-export"},print:{title:"打印",layEvent:"LAYTABLE_PRINT",icon:"layui-icon-print"}},d=[];"object"==typeof a.defaultToolbar&&layui.each(a.defaultToolbar,function(e,t){var i=r[t];i&&d.push('<div class="layui-inline" title="'+i.title+'" lay-event="'+i.layEvent+'"><i class="layui-icon '+i.icon+'"></i></div>')}),e.layTool.find(".layui-table-tool-self").html(d.join(""))},F.prototype.setParentCol=function(e,t){var i=this,a=i.config,l=i.layHeader.find('th[data-key="'+a.index+"-"+t+'"]'),n=parseInt(l.attr("colspan"))||0;if(l[0]){var o=t.split("-"),r=a.cols[o[0]][o[1]];e?n--:n++,l.attr("colspan",n),l[n<1?"addClass":"removeClass"](y),r.colspan=n,r.hide=n<1;var d=l.data("parentkey");d&&i.setParentCol(e,d)}},F.prototype.setColsPatch=function(){var e=this,t=e.config;layui.each(t.cols,function(t,i){layui.each(i,function(t,i){i.hide&&e.setParentCol(i.hide,i.parentKey)})})},F.prototype.setColsWidth=function(){var e=this,t=e.config,i=0,a=0,l=0,n=0,o=e.setInit("width");e.eachCols(function(e,t){t.hide||i++}),o=o-function(){return"line"===t.skin||"nob"===t.skin?2:i+1}()-e.getScrollWidth(e.layMain[0])-1;var r=function(e){layui.each(t.cols,function(i,r){layui.each(r,function(i,d){var c=0,s=d.minWidth||t.cellMinWidth;return d?void(d.colGroup||d.hide||(e?l&&l<s&&(a--,c=s):(c=d.width||0,/\d+%$/.test(c)?(c=Math.floor(parseFloat(c)/100*o),c<s&&(c=s)):c||(d.width=c=0,a++)),d.hide&&(c=0),n+=c)):void r.splice(i,1)})}),o>n&&a&&(l=(o-n)/a)};r(),r(!0),e.autoColNums=a,e.eachCols(function(i,a){var n=a.minWidth||t.cellMinWidth;a.colGroup||a.hide||(0===a.width?e.getCssRule(t.index+"-"+a.key,function(e){e.style.width=Math.floor(l>=n?l:n)+"px"}):/\d+%$/.test(a.width)&&e.getCssRule(t.index+"-"+a.key,function(e){e.style.width=Math.floor(parseFloat(a.width)/100*o)+"px"}))});var d=e.layMain.width()-e.getScrollWidth(e.layMain[0])-e.layMain.children("table").outerWidth();if(e.autoColNums&&d>=-i&&d<=i){var c=function(t){var i;return t=t||e.layHeader.eq(0).find("thead th:last-child"),i=t.data("field"),!i&&t.prev()[0]?c(t.prev()):t},s=c(),u=s.data("key");e.getCssRule(u,function(t){var i=t.style.width||s.outerWidth();t.style.width=parseFloat(i)+d+"px",e.layMain.height()-e.layMain.prop("clientHeight")>0&&(t.style.width=parseFloat(t.style.width)-1+"px")})}e.loading(!0)},F.prototype.resize=function(){var e=this;e.fullSize(),e.setColsWidth(),e.scrollPatch()},F.prototype.reload=function(e){var i=this;i.config.data&&i.config.data.constructor===Array&&delete i.config.data,i.config=t.extend({},i.config,e),i.render()},F.prototype.page=1,F.prototype.pullData=function(e){var i=this,a=i.config,l=a.request,n=a.response,o=function(){"object"==typeof a.initSort&&i.sort(a.initSort.field,a.initSort.type)};if(i.startTime=(new Date).getTime(),a.url){var r={};r[l.pageName]=e,r[l.limitName]=a.limit;var d=t.extend(r,a.where);a.contentType&&0==a.contentType.indexOf("application/json")&&(d=JSON.stringify(d)),t.ajax({type:a.method||"get",url:a.url,contentType:a.contentType,data:d,dataType:"json",headers:a.headers||{},success:function(t){"function"==typeof a.parseData&&(t=a.parseData(t)||t),t[n.statusName]!=n.statusCode?(i.renderForm(),i.layMain.html('<div class="'+f+'">'+(t[n.msgName]||"返回的数据不符合规范,正确的成功状态码 ("+n.statusName+") 应为:"+n.statusCode)+"</div>")):(i.renderData(t,e,t[n.countName]),o(),a.time=(new Date).getTime()-i.startTime+" ms"),i.setColsWidth(),"function"==typeof a.done&&a.done(t,e,t[n.countName])},error:function(e,t){i.layMain.html('<div class="'+f+'">数据接口请求异常:'+t+"</div>"),i.renderForm(),i.setColsWidth()}})}else if(a.data&&a.data.constructor===Array){var c={},s=e*a.limit-a.limit;c[n.dataName]=a.data.concat().splice(s,a.limit),c[n.countName]=a.data.length,i.renderData(c,e,a.data.length),o(),i.setColsWidth(),"function"==typeof a.done&&a.done(c,e,c[n.countName])}},F.prototype.eachCols=function(e){var t=this;return d.eachCols(null,e,t.config.cols),t},F.prototype.renderData=function(e,n,o,r){var c=this,s=c.config,u=e[s.response.dataName]||[],h=[],p=[],v=[],m=function(){var e;return!r&&c.sortKey?c.sort(c.sortKey.field,c.sortKey.sort,!0):(layui.each(u,function(a,l){var o=[],u=[],f=[],m=a+s.limit*(n-1)+1;0!==l.length&&(r||(l[d.config.indexName]=a),c.eachCols(function(n,r){var c=r.field||n,h=s.index+"-"+r.key,p=l[c];if(void 0!==p&&null!==p||(p=""),!r.colGroup){var v=['<td data-field="'+c+'" data-key="'+h+'" '+function(){var e=[];return r.edit&&e.push('data-edit="'+r.edit+'"'),r.align&&e.push('align="'+r.align+'"'),r.templet&&e.push('data-content="'+p+'"'),r.toolbar&&e.push('data-off="true"'),r.event&&e.push('lay-event="'+r.event+'"'),r.style&&e.push('style="'+r.style+'"'),r.minWidth&&e.push('data-minwidth="'+r.minWidth+'"'),e.join(" ")}()+' class="'+function(){var e=[];return r.hide&&e.push(y),r.field||e.push("layui-table-col-special"),e.join(" ")}()+'">','<div class="layui-table-cell laytable-cell-'+function(){return"normal"===r.type?h:h+" laytable-cell-"+r.type}()+'">'+function(){var n=t.extend(!0,{LAY_INDEX:m},l),o=d.config.checkName;switch(r.type){case"checkbox":return'<input type="checkbox" name="layTableCheckbox" lay-skin="primary" '+function(){return r[o]?(l[o]=r[o],r[o]?"checked":""):n[o]?"checked":""}()+">";case"radio":return n[o]&&(e=a),'<input type="radio" name="layTableRadio_'+s.index+'" '+(n[o]?"checked":"")+' lay-type="layTableRadio">';case"numbers":return m}return r.toolbar?i(t(r.toolbar).html()||"").render(n):r.templet?function(){return"function"==typeof r.templet?r.templet(n):i(t(r.templet).html()||String(p)).render(n)}():p}(),"</div></td>"].join("");o.push(v),r.fixed&&"right"!==r.fixed&&u.push(v),"right"===r.fixed&&f.push(v)}}),h.push('<tr data-index="'+a+'">'+o.join("")+"</tr>"),p.push('<tr data-index="'+a+'">'+u.join("")+"</tr>"),v.push('<tr data-index="'+a+'">'+f.join("")+"</tr>"))}),c.layBody.scrollTop(0),c.layMain.find("."+f).remove(),c.layMain.find("tbody").html(h.join("")),c.layFixLeft.find("tbody").html(p.join("")),c.layFixRight.find("tbody").html(v.join("")),c.renderForm(),"number"==typeof e&&c.setThisRowChecked(e),c.syncCheckAll(),c.haveInit?c.scrollPatch():setTimeout(function(){c.scrollPatch()},50),c.haveInit=!0,l.close(c.tipsIndex),s.HAS_SET_COLS_PATCH||c.setColsPatch(),void(s.HAS_SET_COLS_PATCH=!0))};return c.key=s.id||s.index,d.cache[c.key]=u,c.layPage[0==o||0===u.length&&1==n?"addClass":"removeClass"](y),r?m():0===u.length?(c.renderForm(),c.layFixed.remove(),c.layMain.find("tbody").html(""),c.layMain.find("."+f).remove(),c.layMain.append('<div class="'+f+'">'+s.text.none+"</div>")):(m(),c.renderTotal(u),void(s.page&&(s.page=t.extend({elem:"layui-table-page"+s.index,count:o,limit:s.limit,limits:s.limits||[10,20,30,40,50,60,70,80,90],groups:3,layout:["prev","page","next","skip","count","limit"],prev:'<i class="layui-icon">&#xe603;</i>',next:'<i class="layui-icon">&#xe602;</i>',jump:function(e,t){t||(c.page=e.curr,s.limit=e.limit,c.loading(),c.pullData(e.curr))}},s.page),s.page.count=o,a.render(s.page))))},F.prototype.renderTotal=function(e){var t=this,i=t.config,a={};if(i.totalRow){layui.each(e,function(e,i){0!==i.length&&t.eachCols(function(e,t){var l=t.field||e,n=i[l];t.totalRow&&(a[l]=(a[l]||0)+(parseFloat(n)||0))})});var l=[];t.eachCols(function(e,t){var n=t.field||e,o=['<td data-field="'+n+'" data-key="'+i.index+"-"+t.key+'" '+function(){var e=[];return t.align&&e.push('align="'+t.align+'"'),t.style&&e.push('style="'+t.style+'"'),t.minWidth&&e.push('data-minwidth="'+t.minWidth+'"'),e.join(" ")}()+' class="'+function(){var e=[];return t.hide&&e.push(y),t.field||e.push("layui-table-col-special"),e.join(" ")}()+'">','<div class="layui-table-cell laytable-cell-'+function(){var e=i.index+"-"+t.key;return"normal"===t.type?e:e+" laytable-cell-"+t.type}()+'">'+function(){var e=t.totalRowText||"";return t.totalRow?parseFloat(a[n]).toFixed(2)||e:e}(),"</div></td>"].join("");l.push(o)}),t.layTotal.find("tbody").html("<tr>"+l.join("")+"</tr>")}},F.prototype.getColElem=function(e,t){var i=this,a=i.config;return e.eq(0).find(".laytable-cell-"+(a.index+"-"+t)+":eq(0)")},F.prototype.renderForm=function(e){n.render(e,"LAY-table-"+this.index)},F.prototype.setThisRowChecked=function(e){var t=this,i=(t.config,"layui-table-click"),a=t.layBody.find('tr[data-index="'+e+'"]');a.addClass(i).siblings("tr").removeClass(i)},F.prototype.sort=function(e,i,a,l){var n,r,c=this,s={},h=c.config,y=h.elem.attr("lay-filter"),f=d.cache[c.key];"string"==typeof e&&c.layHeader.find("th").each(function(i,a){var l=t(this),o=l.data("field");if(o===e)return e=l,n=o,!1});try{var n=n||e.data("field"),p=e.data("key");if(c.sortKey&&!a&&n===c.sortKey.field&&i===c.sortKey.sort)return;var v=c.layHeader.find("th .laytable-cell-"+p).find(S);c.layHeader.find("th").find(S).removeAttr("lay-sort"),v.attr("lay-sort",i||null),c.layFixed.find("th")}catch(m){return o.error("Table modules: Did not match to field")}c.sortKey={field:n,sort:i},h.autoSort&&("asc"===i?r=layui.sort(f,n):"desc"===i?r=layui.sort(f,n,!0):(r=layui.sort(f,d.config.indexName),delete c.sortKey)),s[h.response.dataName]=r||f,c.renderData(s,c.page,c.count,!0),l&&layui.event.call(e,u,"sort("+y+")",{field:n,type:i})},F.prototype.loading=function(e){var i=this,a=i.config;a.loading&&(e?(i.layInit&&i.layInit.remove(),delete i.layInit,i.layBox.find(g).remove()):(i.layInit=t(['<div class="layui-table-init">','<i class="layui-icon layui-icon-loading layui-icon"></i>',"</div>"].join("")),i.layBox.append(i.layInit)))},F.prototype.setCheckData=function(e,t){var i=this,a=i.config,l=d.cache[i.key];l[e]&&l[e].constructor!==Array&&(l[e][a.checkName]=t)},F.prototype.syncCheckAll=function(){var e=this,t=e.config,i=e.layHeader.find('input[name="layTableCheckbox"]'),a=function(i){return e.eachCols(function(e,a){"checkbox"===a.type&&(a[t.checkName]=i)}),i};i[0]&&(d.checkStatus(e.key).isAll?(i[0].checked||(i.prop("checked",!0),e.renderForm("checkbox")),a(!0)):(i[0].checked&&(i.prop("checked",!1),e.renderForm("checkbox")),a(!1)))},F.prototype.getCssRule=function(e,t){var i=this,a=i.elem.find("style")[0],l=a.sheet||a.styleSheet||{},n=l.cssRules||l.rules;layui.each(n,function(i,a){if(a.selectorText===".laytable-cell-"+e)return t(a),!0})},F.prototype.fullSize=function(){var e,t=this,i=t.config,a=i.height;t.fullHeightGap&&(a=H.height()-t.fullHeightGap,a<135&&(a=135),t.elem.css("height",a)),a&&(e=parseFloat(a)-(t.layHeader.outerHeight()||38),i.toolbar&&(e-=t.layTool.outerHeight()||50),i.totalRow&&(e-=t.layTotal.outerHeight()||40),i.page&&(e=e-(t.layPage.outerHeight()||41)-2),t.layMain.css("height",e))},F.prototype.getScrollWidth=function(e){var t=0;return e?t=e.offsetWidth-e.clientWidth:(e=document.createElement("div"),e.style.width="100px",e.style.height="100px",e.style.overflowY="scroll",document.body.appendChild(e),t=e.offsetWidth-e.clientWidth,document.body.removeChild(e)),t},F.prototype.scrollPatch=function(){var e=this,i=e.layMain.children("table"),a=e.layMain.width()-e.layMain.prop("clientWidth"),l=e.layMain.height()-e.layMain.prop("clientHeight"),n=(e.getScrollWidth(e.layMain[0]),i.outerWidth()-e.layMain.width()),o=function(e){if(a&&l){if(e=e.eq(0),!e.find(".layui-table-patch")[0]){var i=t('<th class="layui-table-patch"><div class="layui-table-cell"></div></th>');i.find("div").css({width:a}),e.find("tr").append(i)}}else e.find(".layui-table-patch").remove()};o(e.layHeader),o(e.layTotal);var r=e.layMain.height(),d=r-l;e.layFixed.find(x).css("height",i.height()>=d?d:"auto"),e.layFixRight[n>0?"removeClass":"addClass"](y),e.layFixRight.css("right",a-1)},F.prototype.events=function(){var e,a=this,o=a.config,c=t("body"),s={},h=a.layHeader.find("th"),f=".layui-table-cell",p=o.elem.attr("lay-filter");a.layTool.on("click","*[lay-event]",function(e){var i=t(this),c=i.attr("lay-event"),s=function(e){var l=t(e.list),n=t('<ul class="layui-table-tool-panel"></ul>');n.html(l),o.height&&n.css("max-height",o.height-(a.layTool.outerHeight()||50)),i.find(".layui-table-tool-panel")[0]||i.append(n),a.renderForm(),n.on("click",function(e){layui.stope(e)}),e.done&&e.done(n,l)};switch(layui.stope(e),R.trigger("table.tool.panel.remove"),l.close(a.tipsIndex),c){case"LAYTABLE_COLS":s({list:function(){var e=[];return a.eachCols(function(t,i){i.field&&"normal"==i.type&&e.push('<li><input type="checkbox" name="'+i.field+'" data-key="'+i.key+'" data-parentkey="'+(i.parentKey||"")+'" lay-skin="primary" '+(i.hide?"":"checked")+' title="'+(i.title||i.field)+'" lay-filter="LAY_TABLE_TOOL_COLS"></li>')}),e.join("")}(),done:function(){n.on("checkbox(LAY_TABLE_TOOL_COLS)",function(e){var i=t(e.elem),l=this.checked,n=i.data("key"),r=i.data("parentkey");layui.each(o.cols,function(e,t){layui.each(t,function(t,i){if(e+"-"+t===n){var d=i.hide;i.hide=!l,a.elem.find('*[data-key="'+o.index+"-"+n+'"]')[l?"removeClass":"addClass"](y),d!=i.hide&&a.setParentCol(!l,r),a.resize()}})})})}});break;case"LAYTABLE_EXPORT":r.ie?l.tips("导出功能不支持 IE,请用 Chrome 等高级浏览器导出",this,{tips:3}):s({list:function(){return['<li data-type="csv">导出到 Csv 文件</li>','<li data-type="xls">导出到 Excel 文件</li>'].join("")}(),done:function(e,i){i.on("click",function(){var e=t(this).data("type");d.exportFile(o.id,null,e)})}});break;case"LAYTABLE_PRINT":var h=window.open("打印窗口","_blank"),f=["<style>","body{font-size: 12px; color: #666;}","table{width: 100%; border-collapse: collapse; border-spacing: 0;}","th,td{line-height: 20px; padding: 9px 15px; border: 1px solid #ccc; text-align: left; font-size: 12px; color: #666;}","a{color: #666; text-decoration:none;}","*.layui-hide{display: none}","</style>"].join(""),v=t(a.layHeader.html());v.append(a.layMain.find("table").html()),v.find("th.layui-table-patch").remove(),v.find(".layui-table-col-special").remove(),h.document.write(f+v.prop("outerHTML")),h.document.close(),h.print(),h.close()}layui.event.call(this,u,"toolbar("+p+")",t.extend({event:c,config:o},{}))}),h.on("mousemove",function(e){var i=t(this),a=i.offset().left,l=e.clientX-a;i.data("unresize")||s.resizeStart||(s.allowResize=i.width()-l<=10,c.css("cursor",s.allowResize?"col-resize":""))}).on("mouseleave",function(){t(this);s.resizeStart||c.css("cursor","")}).on("mousedown",function(e){var i=t(this);if(s.allowResize){var l=i.data("key");e.preventDefault(),s.resizeStart=!0,s.offset=[e.clientX,e.clientY],a.getCssRule(l,function(e){var t=e.style.width||i.outerWidth();s.rule=e,s.ruleWidth=parseFloat(t),s.minWidth=i.data("minwidth")||o.cellMinWidth})}}),R.on("mousemove",function(t){if(s.resizeStart){if(t.preventDefault(),s.rule){var i=s.ruleWidth+t.clientX-s.offset[0];i<s.minWidth&&(i=s.minWidth),s.rule.style.width=i+"px",l.close(a.tipsIndex)}e=1}}).on("mouseup",function(t){s.resizeStart&&(s={},c.css("cursor",""),a.scrollPatch()),2===e&&(e=null)}),h.on("click",function(i){var l,n=t(this),o=n.find(S),r=o.attr("lay-sort");return o[0]&&1!==e?(l="asc"===r?"desc":"desc"===r?null:"asc",void a.sort(n,l,null,!0)):e=2}).find(S+" .layui-edge ").on("click",function(e){var i=t(this),l=i.index(),n=i.parents("th").eq(0).data("field");layui.stope(e),0===l?a.sort(n,"asc",null,!0):a.sort(n,"desc",null,!0)});var v=function(e){var l=t(this),n=l.parents("tr").eq(0).data("index"),o=a.layBody.find('tr[data-index="'+n+'"]'),r=d.cache[a.key][n];return t.extend({tr:o,data:d.clearCacheKey(r),del:function(){d.cache[a.key][n]=[],o.remove(),a.scrollPatch()},update:function(e){e=e||{},layui.each(e,function(e,l){if(e in r){var n,d=o.children('td[data-field="'+e+'"]');r[e]=l,a.eachCols(function(t,i){i.field==e&&i.templet&&(n=i.templet)}),d.children(f).html(function(){return n?function(){return"function"==typeof n?n(r):i(t(n).html()||l).render(r)}():l}()),d.data("content",l)}})}},e)};a.elem.on("click",'input[name="layTableCheckbox"]+',function(){var e=t(this).prev(),i=a.layBody.find('input[name="layTableCheckbox"]'),l=e.parents("tr").eq(0).data("index"),n=e[0].checked,o="layTableAllChoose"===e.attr("lay-filter");o?(i.each(function(e,t){t.checked=n,a.setCheckData(e,n)}),a.syncCheckAll(),a.renderForm("checkbox")):(a.setCheckData(l,n),a.syncCheckAll()),layui.event.call(e[0],u,"checkbox("+p+")",v.call(e[0],{checked:n,type:o?"all":"one"}))}),a.elem.on("click",'input[lay-type="layTableRadio"]+',function(){var e=t(this).prev(),i=e[0].checked,l=d.cache[a.key],n=e.parents("tr").eq(0).data("index");layui.each(l,function(e,t){n===e?t.LAY_CHECKED=!0:delete t.LAY_CHECKED}),a.setThisRowChecked(n),layui.event.call(this,u,"radio("+p+")",v.call(this,{checked:i}))}),a.layBody.on("mouseenter","tr",function(){var e=t(this),i=e.index();a.layBody.find("tr:eq("+i+")").addClass(W)}).on("mouseleave","tr",function(){var e=t(this),i=e.index();a.layBody.find("tr:eq("+i+")").removeClass(W)}).on("click","tr",function(){m.call(this,"row")}).on("dblclick","tr",function(){m.call(this,"rowDouble")});var m=function(e){var i=t(this);layui.event.call(this,u,e+"("+p+")",v.call(i.children("td")[0]))};a.layBody.on("change","."+N,function(){var e=t(this),i=this.value,l=e.parent().data("field"),n=e.parents("tr").eq(0).data("index"),o=d.cache[a.key][n];o[l]=i,layui.event.call(this,u,"edit("+p+")",v.call(this,{value:i,field:l}))}).on("blur","."+N,function(){var e,l=t(this),n=l.parent().data("field"),o=l.parents("tr").eq(0).data("index"),r=d.cache[a.key][o];a.eachCols(function(t,i){i.field==n&&i.templet&&(e=i.templet)}),l.siblings(f).html(function(a){return e?function(){return"function"==typeof e?e(r):i(t(e).html()||this.value).render(r)}():a}(this.value)),l.parent().data("content",this.value),l.remove()}),a.layBody.on("click","td",function(e){var i=t(this),a=(i.data("field"),i.data("edit")),l=i.children(f);if(!i.data("off")&&a){var n=t('<input class="layui-input '+N+'">');return n[0].value=i.data("content")||l.text(),i.find("."+N)[0]||i.append(n),n.focus(),void layui.stope(e)}}).on("mouseenter","td",function(){b.call(this)}).on("mouseleave","td",function(){b.call(this,"hide")});var g="layui-table-grid-down",b=function(e){var i=t(this),a=i.children(f);if(e)i.find(".layui-table-grid-down").remove();else if(a.prop("scrollWidth")>a.outerWidth()){if(a.find("."+g)[0])return;i.append('<div class="'+g+'"><i class="layui-icon layui-icon-down"></i></div>')}};a.layBody.on("click","."+g,function(e){var i=t(this),n=i.parent(),d=n.children(f);a.tipsIndex=l.tips(['<div class="layui-table-tips-main" style="margin-top: -'+(d.height()+16)+"px;"+function(){return"sm"===o.size?"padding: 4px 15px; font-size: 12px;":"lg"===o.size?"padding: 14px 15px;":""}()+'">',d.html(),"</div>",'<i class="layui-icon layui-table-tips-c layui-icon-close"></i>'].join(""),d[0],{tips:[3,""],time:-1,anim:-1,maxWidth:r.ios||r.android?300:a.elem.width()/2,isOutAnim:!1,skin:"layui-table-tips",success:function(e,t){e.find(".layui-table-tips-c").on("click",function(){l.close(t)})}}),layui.stope(e)}),a.layBody.on("click","*[lay-event]",function(){var e=t(this),i=e.parents("tr").eq(0).data("index");layui.event.call(this,u,"tool("+p+")",v.call(this,{event:e.attr("lay-event")})),a.setThisRowChecked(i)}),a.layMain.on("scroll",function(){var e=t(this),i=e.scrollLeft(),n=e.scrollTop();a.layHeader.scrollLeft(i),a.layTotal.scrollLeft(i),a.layFixed.find(x).scrollTop(n),l.close(a.tipsIndex)}),R.on("click",function(){R.trigger("table.remove.tool.panel")}),R.on("table.remove.tool.panel",function(){t(".layui-table-tool-panel").remove()}),H.on("resize",function(){a.resize()})},d.init=function(e,i){i=i||{};var a=this,l=t(e?'table[lay-filter="'+e+'"]':h+"[lay-data]"),n="Table element property lay-data configuration item has a syntax error: ";return l.each(function(){var a=t(this),l=a.attr("lay-data");try{l=new Function("return "+l)()}catch(r){o.error(n+l)}var c=[],s=t.extend({elem:this,cols:[],data:[],skin:a.attr("lay-skin"),size:a.attr("lay-size"),even:"string"==typeof a.attr("lay-even")},d.config,i,l);e&&a.hide(),a.find("thead>tr").each(function(e){s.cols[e]=[],t(this).children().each(function(i){var a=t(this),l=a.attr("lay-data");try{l=new Function("return "+l)()}catch(r){return o.error(n+l)}var d=t.extend({title:a.text(),colspan:a.attr("colspan")||0,rowspan:a.attr("rowspan")||0},l);d.colspan<2&&c.push(d),s.cols[e].push(d)})}),a.find("tbody>tr").each(function(e){var i=t(this),a={};i.children("td").each(function(e,i){var l=t(this),n=l.data("field");if(n)return a[n]=l.html()}),layui.each(c,function(e,t){var l=i.children("td").eq(e);a[t.field]=l.html()}),s.data[e]=a}),d.render(s)}),a},c.that={},c.config={},d.eachCols=function(e,i,a){var l=c.config[e]||{},n=[],o=0;a=t.extend(!0,[],a||l.cols),layui.each(a,function(e,t){layui.each(t,function(t,i){if(i.colGroup){var l=0;o++,i.CHILD_COLS=[],layui.each(a[e+1],function(e,t){t.PARENT_COL_INDEX||l>1&&l==i.colspan||(t.PARENT_COL_INDEX=o,i.CHILD_COLS.push(t),l+=parseInt(t.colspan>1?t.colspan:1))})}i.PARENT_COL_INDEX||n.push(i)})});var r=function(e){layui.each(e||n,function(e,t){return t.CHILD_COLS?r(t.CHILD_COLS):void("function"==typeof i&&i(e,t))})};r()},d.checkStatus=function(e){var t=0,i=0,a=[],l=d.cache[e]||[];return layui.each(l,function(e,l){return l.constructor===Array?void i++:void(l[d.config.checkName]&&(t++,a.push(d.clearCacheKey(l))))}),{data:a,isAll:!!l.length&&t===l.length-i}},d.exportFile=function(e,t,i){t=t||d.clearCacheKey(d.cache[e]),i=i||"csv";var a=c.config[e]||{},l={csv:"text/csv",xls:"application/vnd.ms-excel"}[i],n=document.createElement("a");return r.ie?o.error("IE_NOT_SUPPORT_EXPORTS"):(n.href="data:"+l+";charset=utf-8,\ufeff"+encodeURIComponent(function(){var i=[],a=[];return layui.each(t,function(t,l){var n=[];"object"==typeof e?(layui.each(e,function(e,a){0==t&&i.push(a||"")}),layui.each(d.clearCacheKey(l),function(e,t){n.push(t)})):d.eachCols(e,function(e,a){a.field&&"normal"==a.type&&!a.hide&&(0==t&&i.push(a.title||""),n.push(l[a.field]))}),a.push(n.join(","))}),i.join(",")+"\r\n"+a.join("\r\n")}()),n.download=(a.title||"table_"+(a.index||""))+"."+i,document.body.appendChild(n),n.click(),void document.body.removeChild(n))},d.resize=function(e){if(e){var t=s(e);if(!t)return;c.that[e].resize()}else layui.each(c.that,function(){this.resize()})},d.reload=function(e,i){i=i||{};var a=s(e);if(a)return i.data&&i.data.constructor===Array&&delete a.data,d.render(t.extend(!0,{},a,i))},d.render=function(e){var t=new F(e);return c.call(t)},d.clearCacheKey=function(e){return e=t.extend({},e),delete e[d.config.checkName],delete e[d.config.indexName],e},d.init(),e(u,d)});
\ No newline at end of file
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/tree.js b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/tree.js
new file mode 100644
index 0000000..e8c053d
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/tree.js
@@ -0,0 +1,2 @@
+/** layui-v2.4.5 MIT License By https://www.layui.com */
+ ;layui.define("jquery",function(e){"use strict";var o=layui.$,a=layui.hint(),i="layui-tree-enter",r=function(e){this.options=e},t={arrow:["&#xe623;","&#xe625;"],checkbox:["&#xe626;","&#xe627;"],radio:["&#xe62b;","&#xe62a;"],branch:["&#xe622;","&#xe624;"],leaf:"&#xe621;"};r.prototype.init=function(e){var o=this;e.addClass("layui-box layui-tree"),o.options.skin&&e.addClass("layui-tree-skin-"+o.options.skin),o.tree(e),o.on(e)},r.prototype.tree=function(e,a){var i=this,r=i.options,n=a||r.nodes;layui.each(n,function(a,n){var l=n.children&&n.children.length>0,c=o('<ul class="'+(n.spread?"layui-show":"")+'"></ul>'),s=o(["<li "+(n.spread?'data-spread="'+n.spread+'"':"")+">",function(){return l?'<i class="layui-icon layui-tree-spread">'+(n.spread?t.arrow[1]:t.arrow[0])+"</i>":""}(),function(){return r.check?'<i class="layui-icon layui-tree-check">'+("checkbox"===r.check?t.checkbox[0]:"radio"===r.check?t.radio[0]:"")+"</i>":""}(),function(){return'<a href="'+(n.href||"javascript:;")+'" '+(r.target&&n.href?'target="'+r.target+'"':"")+">"+('<i class="layui-icon layui-tree-'+(l?"branch":"leaf")+'">'+(l?n.spread?t.branch[1]:t.branch[0]:t.leaf)+"</i>")+("<cite>"+(n.name||"未命名")+"</cite></a>")}(),"</li>"].join(""));l&&(s.append(c),i.tree(c,n.children)),e.append(s),"function"==typeof r.click&&i.click(s,n),i.spread(s,n),r.drag&&i.drag(s,n)})},r.prototype.click=function(e,o){var a=this,i=a.options;e.children("a").on("click",function(e){layui.stope(e),i.click(o)})},r.prototype.spread=function(e,o){var a=this,i=(a.options,e.children(".layui-tree-spread")),r=e.children("ul"),n=e.children("a"),l=function(){e.data("spread")?(e.data("spread",null),r.removeClass("layui-show"),i.html(t.arrow[0]),n.find(".layui-icon").html(t.branch[0])):(e.data("spread",!0),r.addClass("layui-show"),i.html(t.arrow[1]),n.find(".layui-icon").html(t.branch[1]))};r[0]&&(i.on("click",l),n.on("dblclick",l))},r.prototype.on=function(e){var a=this,r=a.options,t="layui-tree-drag";e.find("i").on("selectstart",function(e){return!1}),r.drag&&o(document).on("mousemove",function(e){var i=a.move;if(i.from){var r=(i.to,o('<div class="layui-box '+t+'"></div>'));e.preventDefault(),o("."+t)[0]||o("body").append(r);var n=o("."+t)[0]?o("."+t):r;n.addClass("layui-show").html(i.from.elem.children("a").html()),n.css({left:e.pageX+10,top:e.pageY+10})}}).on("mouseup",function(){var e=a.move;e.from&&(e.from.elem.children("a").removeClass(i),e.to&&e.to.elem.children("a").removeClass(i),a.move={},o("."+t).remove())})},r.prototype.move={},r.prototype.drag=function(e,a){var r=this,t=(r.options,e.children("a")),n=function(){var t=o(this),n=r.move;n.from&&(n.to={item:a,elem:e},t.addClass(i))};t.on("mousedown",function(){var o=r.move;o.from={item:a,elem:e}}),t.on("mouseenter",n).on("mousemove",n).on("mouseleave",function(){var e=o(this),a=r.move;a.from&&(delete a.to,e.removeClass(i))})},e("tree",function(e){var i=new r(e=e||{}),t=o(e.elem);return t[0]?void i.init(t):a.error("layui.tree 没有找到"+e.elem+"元素")})});
\ No newline at end of file
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/upload.js b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/upload.js
new file mode 100644
index 0000000..404d534
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/upload.js
@@ -0,0 +1,2 @@
+/** layui-v2.4.5 MIT License By https://www.layui.com */
+ ;layui.define("layer",function(e){"use strict";var i=layui.$,t=layui.layer,n=layui.hint(),a=layui.device(),o={config:{},set:function(e){var t=this;return t.config=i.extend({},t.config,e),t},on:function(e,i){return layui.onevent.call(this,r,e,i)}},l=function(){var e=this;return{upload:function(i){e.upload.call(e,i)},config:e.config}},r="upload",u="layui-upload-file",c="layui-upload-form",f="layui-upload-iframe",s="layui-upload-choose",p=function(e){var t=this;t.config=i.extend({},t.config,o.config,e),t.render()};p.prototype.config={accept:"images",exts:"",auto:!0,bindAction:"",url:"",field:"file",method:"post",data:{},drag:!0,size:0,number:0,multiple:!1},p.prototype.render=function(e){var t=this,e=t.config;e.elem=i(e.elem),e.bindAction=i(e.bindAction),t.file(),t.events()},p.prototype.file=function(){var e=this,t=e.config,n=e.elemFile=i(['<input class="'+u+'" type="file" accept="'+t.acceptMime+'" name="'+t.field+'"',t.multiple?" multiple":"",">"].join("")),o=t.elem.next();(o.hasClass(u)||o.hasClass(c))&&o.remove(),a.ie&&a.ie<10&&t.elem.wrap('<div class="layui-upload-wrap"></div>'),e.isFile()?(e.elemFile=t.elem,t.field=t.elem[0].name):t.elem.after(n),a.ie&&a.ie<10&&e.initIE()},p.prototype.initIE=function(){var e=this,t=e.config,n=i('<iframe id="'+f+'" class="'+f+'" name="'+f+'" frameborder="0"></iframe>'),a=i(['<form target="'+f+'" class="'+c+'" method="post" key="set-mine" enctype="multipart/form-data" action="'+t.url+'">',"</form>"].join(""));i("#"+f)[0]||i("body").append(n),t.elem.next().hasClass(c)||(e.elemFile.wrap(a),t.elem.next("."+c).append(function(){var e=[];return layui.each(t.data,function(i,t){t="function"==typeof t?t():t,e.push('<input type="hidden" name="'+i+'" value="'+t+'">')}),e.join("")}()))},p.prototype.msg=function(e){return t.msg(e,{icon:2,shift:6})},p.prototype.isFile=function(){var e=this.config.elem[0];if(e)return"input"===e.tagName.toLocaleLowerCase()&&"file"===e.type},p.prototype.preview=function(e){var i=this;window.FileReader&&layui.each(i.chooseFiles,function(i,t){var n=new FileReader;n.readAsDataURL(t),n.onload=function(){e&&e(i,t,this.result)}})},p.prototype.upload=function(e,t){var n,o=this,l=o.config,r=o.elemFile[0],u=function(){var t=0,n=0,a=e||o.files||o.chooseFiles||r.files,u=function(){l.multiple&&t+n===o.fileLength&&"function"==typeof l.allDone&&l.allDone({total:o.fileLength,successful:t,aborted:n})};layui.each(a,function(e,a){var r=new FormData;r.append(l.field,a),layui.each(l.data,function(e,i){i="function"==typeof i?i():i,r.append(e,i)}),i.ajax({url:l.url,type:"post",data:r,contentType:!1,processData:!1,dataType:"json",headers:l.headers||{},success:function(i){t++,d(e,i),u()},error:function(){n++,o.msg("请求上传接口出现异常"),m(e),u()}})})},c=function(){var e=i("#"+f);o.elemFile.parent().submit(),clearInterval(p.timer),p.timer=setInterval(function(){var i,t=e.contents().find("body");try{i=t.text()}catch(n){o.msg("获取上传后的响应信息出现异常"),clearInterval(p.timer),m()}i&&(clearInterval(p.timer),t.html(""),d(0,i))},30)},d=function(e,i){if(o.elemFile.next("."+s).remove(),r.value="","object"!=typeof i)try{i=JSON.parse(i)}catch(t){return i={},o.msg("请对上传接口返回有效JSON")}"function"==typeof l.done&&l.done(i,e||0,function(e){o.upload(e)})},m=function(e){l.auto&&(r.value=""),"function"==typeof l.error&&l.error(e||0,function(e){o.upload(e)})},h=l.exts,v=function(){var i=[];return layui.each(e||o.chooseFiles,function(e,t){i.push(t.name)}),i}(),g={preview:function(e){o.preview(e)},upload:function(e,i){var t={};t[e]=i,o.upload(t)},pushFile:function(){return o.files=o.files||{},layui.each(o.chooseFiles,function(e,i){o.files[e]=i}),o.files},resetFile:function(e,i,t){var n=new File([i],t);o.files=o.files||{},o.files[e]=n}},y=function(){if("choose"!==t&&!l.auto||(l.choose&&l.choose(g),"choose"!==t))return l.before&&l.before(g),a.ie?a.ie>9?u():c():void u()};if(v=0===v.length?r.value.match(/[^\/\\]+\..+/g)||[]||"":v,0!==v.length){switch(l.accept){case"file":if(h&&!RegExp("\\w\\.("+h+")$","i").test(escape(v)))return o.msg("选择的文件中包含不支持的格式"),r.value="";break;case"video":if(!RegExp("\\w\\.("+(h||"avi|mp4|wma|rmvb|rm|flash|3gp|flv")+")$","i").test(escape(v)))return o.msg("选择的视频中包含不支持的格式"),r.value="";break;case"audio":if(!RegExp("\\w\\.("+(h||"mp3|wav|mid")+")$","i").test(escape(v)))return o.msg("选择的音频中包含不支持的格式"),r.value="";break;default:if(layui.each(v,function(e,i){RegExp("\\w\\.("+(h||"jpg|png|gif|bmp|jpeg$")+")","i").test(escape(i))||(n=!0)}),n)return o.msg("选择的图片中包含不支持的格式"),r.value=""}if(o.fileLength=function(){var i=0,t=e||o.files||o.chooseFiles||r.files;return layui.each(t,function(){i++}),i}(),l.number&&o.fileLength>l.number)return o.msg("同时最多只能上传的数量为:"+l.number);if(l.size>0&&!(a.ie&&a.ie<10)){var F;if(layui.each(o.chooseFiles,function(e,i){if(i.size>1024*l.size){var t=l.size/1024;t=t>=1?t.toFixed(2)+"MB":l.size+"KB",r.value="",F=t}}),F)return o.msg("文件不能超过"+F)}y()}},p.prototype.events=function(){var e=this,t=e.config,o=function(i){e.chooseFiles={},layui.each(i,function(i,t){var n=(new Date).getTime();e.chooseFiles[n+"-"+i]=t})},l=function(i,n){var a=e.elemFile,o=i.length>1?i.length+"个文件":(i[0]||{}).name||a[0].value.match(/[^\/\\]+\..+/g)||[]||"";a.next().hasClass(s)&&a.next().remove(),e.upload(null,"choose"),e.isFile()||t.choose||a.after('<span class="layui-inline '+s+'">'+o+"</span>")};t.elem.off("upload.start").on("upload.start",function(){var a=i(this),o=a.attr("lay-data");if(o)try{o=new Function("return "+o)(),e.config=i.extend({},t,o)}catch(l){n.error("Upload element property lay-data configuration item has a syntax error: "+o)}e.config.item=a,e.elemFile[0].click()}),a.ie&&a.ie<10||t.elem.off("upload.over").on("upload.over",function(){var e=i(this);e.attr("lay-over","")}).off("upload.leave").on("upload.leave",function(){var e=i(this);e.removeAttr("lay-over")}).off("upload.drop").on("upload.drop",function(n,a){var r=i(this),u=a.originalEvent.dataTransfer.files||[];r.removeAttr("lay-over"),o(u),t.auto?e.upload(u):l(u)}),e.elemFile.off("upload.change").on("upload.change",function(){var i=this.files||[];o(i),t.auto?e.upload():l(i)}),t.bindAction.off("upload.action").on("upload.action",function(){e.upload()}),t.elem.data("haveEvents")||(e.elemFile.on("change",function(){i(this).trigger("upload.change")}),t.elem.on("click",function(){e.isFile()||i(this).trigger("upload.start")}),t.drag&&t.elem.on("dragover",function(e){e.preventDefault(),i(this).trigger("upload.over")}).on("dragleave",function(e){i(this).trigger("upload.leave")}).on("drop",function(e){e.preventDefault(),i(this).trigger("upload.drop",e)}),t.bindAction.on("click",function(){i(this).trigger("upload.action")}),t.elem.data("haveEvents",!0))},o.render=function(e){var i=new p(e);return l.call(i)},e(r,o)});
\ No newline at end of file
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/util.js b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/util.js
new file mode 100644
index 0000000..8d38508
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/lay/modules/util.js
@@ -0,0 +1,2 @@
+/** layui-v2.4.5 MIT License By https://www.layui.com */
+ ;layui.define("jquery",function(t){"use strict";var e=layui.$,i={fixbar:function(t){var i,a,n="layui-fixbar",r="layui-fixbar-top",o=e(document),l=e("body");t=e.extend({showHeight:200},t),t.bar1=t.bar1===!0?"&#xe606;":t.bar1,t.bar2=t.bar2===!0?"&#xe607;":t.bar2,t.bgcolor=t.bgcolor?"background-color:"+t.bgcolor:"";var c=[t.bar1,t.bar2,"&#xe604;"],g=e(['<ul class="'+n+'">',t.bar1?'<li class="layui-icon" lay-type="bar1" style="'+t.bgcolor+'">'+c[0]+"</li>":"",t.bar2?'<li class="layui-icon" lay-type="bar2" style="'+t.bgcolor+'">'+c[1]+"</li>":"",'<li class="layui-icon '+r+'" lay-type="top" style="'+t.bgcolor+'">'+c[2]+"</li>","</ul>"].join("")),s=g.find("."+r),u=function(){var e=o.scrollTop();e>=t.showHeight?i||(s.show(),i=1):i&&(s.hide(),i=0)};e("."+n)[0]||("object"==typeof t.css&&g.css(t.css),l.append(g),u(),g.find("li").on("click",function(){var i=e(this),a=i.attr("lay-type");"top"===a&&e("html,body").animate({scrollTop:0},200),t.click&&t.click.call(this,a)}),o.on("scroll",function(){clearTimeout(a),a=setTimeout(function(){u()},100)}))},countdown:function(t,e,i){var a=this,n="function"==typeof e,r=new Date(t).getTime(),o=new Date(!e||n?(new Date).getTime():e).getTime(),l=r-o,c=[Math.floor(l/864e5),Math.floor(l/36e5)%24,Math.floor(l/6e4)%60,Math.floor(l/1e3)%60];n&&(i=e);var g=setTimeout(function(){a.countdown(t,o+1e3,i)},1e3);return i&&i(l>0?c:[0,0,0,0],e,g),l<=0&&clearTimeout(g),g},timeAgo:function(t,e){var i=this,a=[[],[]],n=(new Date).getTime()-new Date(t).getTime();return n>6912e5?(n=new Date(t),a[0][0]=i.digit(n.getFullYear(),4),a[0][1]=i.digit(n.getMonth()+1),a[0][2]=i.digit(n.getDate()),e||(a[1][0]=i.digit(n.getHours()),a[1][1]=i.digit(n.getMinutes()),a[1][2]=i.digit(n.getSeconds())),a[0].join("-")+" "+a[1].join(":")):n>=864e5?(n/1e3/60/60/24|0)+"天前":n>=36e5?(n/1e3/60/60|0)+"小时前":n>=12e4?(n/1e3/60|0)+"分钟前":n<0?"未来":"刚刚"},digit:function(t,e){var i="";t=String(t),e=e||2;for(var a=t.length;a<e;a++)i+="0";return t<Math.pow(10,e)?i+(0|t):t},toDateString:function(t,e){var i=this,a=new Date(t||new Date),n=[i.digit(a.getFullYear(),4),i.digit(a.getMonth()+1),i.digit(a.getDate())],r=[i.digit(a.getHours()),i.digit(a.getMinutes()),i.digit(a.getSeconds())];return e=e||"yyyy-MM-dd HH:mm:ss",e.replace(/yyyy/g,n[0]).replace(/MM/g,n[1]).replace(/dd/g,n[2]).replace(/HH/g,r[0]).replace(/mm/g,r[1]).replace(/ss/g,r[2])},escape:function(t){return String(t||"").replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/'/g,"&#39;").replace(/"/g,"&quot;")}};!function(t,e,i){"$:nomunge";function a(){n=e[l](function(){r.each(function(){var e=t(this),i=e.width(),a=e.height(),n=t.data(this,g);(i!==n.w||a!==n.h)&&e.trigger(c,[n.w=i,n.h=a])}),a()},o[s])}var n,r=t([]),o=t.resize=t.extend(t.resize,{}),l="setTimeout",c="resize",g=c+"-special-event",s="delay",u="throttleWindow";o[s]=250,o[u]=!0,t.event.special[c]={setup:function(){if(!o[u]&&this[l])return!1;var e=t(this);r=r.add(e),t.data(this,g,{w:e.width(),h:e.height()}),1===r.length&&a()},teardown:function(){if(!o[u]&&this[l])return!1;var e=t(this);r=r.not(e),e.removeData(g),r.length||clearTimeout(n)},add:function(e){function a(e,a,r){var o=t(this),l=t.data(this,g)||{};l.w=a!==i?a:o.width(),l.h=r!==i?r:o.height(),n.apply(this,arguments)}if(!o[u]&&this[l])return!1;var n;return t.isFunction(e)?(n=e,a):(n=e.handler,void(e.handler=a))}}}(e,window),t("util",i)});
\ No newline at end of file
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/layui.all.js b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/layui.all.js
new file mode 100644
index 0000000..5cd5973
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/layui.all.js
@@ -0,0 +1,5 @@
+/** layui-v2.4.5 MIT License By https://www.layui.com */
+ ;!function(e){"use strict";var t=document,o={modules:{},status:{},timeout:10,event:{}},n=function(){this.v="2.4.5"},r=function(){var e=t.currentScript?t.currentScript.src:function(){for(var e,o=t.scripts,n=o.length-1,r=n;r>0;r--)if("interactive"===o[r].readyState){e=o[r].src;break}return e||o[n].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),i=function(t){e.console&&console.error&&console.error("Layui hint: "+t)},a="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),u={layer:"modules/layer",laydate:"modules/laydate",laypage:"modules/laypage",laytpl:"modules/laytpl",layim:"modules/layim",layedit:"modules/layedit",form:"modules/form",upload:"modules/upload",tree:"modules/tree",table:"modules/table",element:"modules/element",rate:"modules/rate",colorpicker:"modules/colorpicker",slider:"modules/slider",carousel:"modules/carousel",flow:"modules/flow",util:"modules/util",code:"modules/code",jquery:"modules/jquery",mobile:"modules/mobile","layui.all":"../layui.all"};n.prototype.cache=o,n.prototype.define=function(e,t){var n=this,r="function"==typeof e,i=function(){var e=function(e,t){layui[e]=t,o.status[e]=!0};return"function"==typeof t&&t(function(n,r){e(n,r),o.callback[n]=function(){t(e)}}),this};return r&&(t=e,e=[]),layui["layui.all"]||!layui["layui.all"]&&layui["layui.mobile"]?i.call(n):(n.use(e,i),n)},n.prototype.use=function(e,n,l){function s(e,t){var n="PLaySTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/;("load"===e.type||n.test((e.currentTarget||e.srcElement).readyState))&&(o.modules[f]=t,d.removeChild(v),function r(){return++m>1e3*o.timeout/4?i(f+" is not a valid module"):void(o.status[f]?c():setTimeout(r,4))}())}function c(){l.push(layui[f]),e.length>1?y.use(e.slice(1),n,l):"function"==typeof n&&n.apply(layui,l)}var y=this,p=o.dir=o.dir?o.dir:r,d=t.getElementsByTagName("head")[0];e="string"==typeof e?[e]:e,window.jQuery&&jQuery.fn.on&&(y.each(e,function(t,o){"jquery"===o&&e.splice(t,1)}),layui.jquery=layui.$=jQuery);var f=e[0],m=0;if(l=l||[],o.host=o.host||(p.match(/\/\/([\s\S]+?)\//)||["//"+location.host+"/"])[0],0===e.length||layui["layui.all"]&&u[f]||!layui["layui.all"]&&layui["layui.mobile"]&&u[f])return c(),y;if(o.modules[f])!function g(){return++m>1e3*o.timeout/4?i(f+" is not a valid module"):void("string"==typeof o.modules[f]&&o.status[f]?c():setTimeout(g,4))}();else{var v=t.createElement("script"),h=(u[f]?p+"lay/":/^\{\/\}/.test(y.modules[f])?"":o.base||"")+(y.modules[f]||f)+".js";h=h.replace(/^\{\/\}/,""),v.async=!0,v.charset="utf-8",v.src=h+function(){var e=o.version===!0?o.v||(new Date).getTime():o.version||"";return e?"?v="+e:""}(),d.appendChild(v),!v.attachEvent||v.attachEvent.toString&&v.attachEvent.toString().indexOf("[native code")<0||a?v.addEventListener("load",function(e){s(e,h)},!1):v.attachEvent("onreadystatechange",function(e){s(e,h)}),o.modules[f]=h}return y},n.prototype.getStyle=function(t,o){var n=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return n[n.getPropertyValue?"getPropertyValue":"getAttribute"](o)},n.prototype.link=function(e,n,r){var a=this,u=t.createElement("link"),l=t.getElementsByTagName("head")[0];"string"==typeof n&&(r=n);var s=(r||e).replace(/\.|\//g,""),c=u.id="layuicss-"+s,y=0;return u.rel="stylesheet",u.href=e+(o.debug?"?v="+(new Date).getTime():""),u.media="all",t.getElementById(c)||l.appendChild(u),"function"!=typeof n?a:(function p(){return++y>1e3*o.timeout/100?i(e+" timeout"):void(1989===parseInt(a.getStyle(t.getElementById(c),"width"))?function(){n()}():setTimeout(p,100))}(),a)},o.callback={},n.prototype.factory=function(e){if(layui[e])return"function"==typeof o.callback[e]?o.callback[e]:null},n.prototype.addcss=function(e,t,n){return layui.link(o.dir+"css/"+e,t,n)},n.prototype.img=function(e,t,o){var n=new Image;return n.src=e,n.complete?t(n):(n.onload=function(){n.onload=null,"function"==typeof t&&t(n)},void(n.onerror=function(e){n.onerror=null,"function"==typeof o&&o(e)}))},n.prototype.config=function(e){e=e||{};for(var t in e)o[t]=e[t];return this},n.prototype.modules=function(){var e={};for(var t in u)e[t]=u[t];return e}(),n.prototype.extend=function(e){var t=this;e=e||{};for(var o in e)t[o]||t.modules[o]?i("模块名 "+o+" 已被占用"):t.modules[o]=e[o];return t},n.prototype.router=function(e){var t=this,e=e||location.hash,o={path:[],search:{},hash:(e.match(/[^#](#.*$)/)||[])[1]||""};return/^#\//.test(e)?(e=e.replace(/^#\//,""),o.href="/"+e,e=e.replace(/([^#])(#.*$)/,"$1").split("/")||[],t.each(e,function(e,t){/^\w+=/.test(t)?function(){t=t.split("="),o.search[t[0]]=t[1]}():o.path.push(t)}),o):o},n.prototype.data=function(t,o,n){if(t=t||"layui",n=n||localStorage,e.JSON&&e.JSON.parse){if(null===o)return delete n[t];o="object"==typeof o?o:{key:o};try{var r=JSON.parse(n[t])}catch(i){var r={}}return"value"in o&&(r[o.key]=o.value),o.remove&&delete r[o.key],n[t]=JSON.stringify(r),o.key?r[o.key]:r}},n.prototype.sessionData=function(e,t){return this.data(e,t,sessionStorage)},n.prototype.device=function(t){var o=navigator.userAgent.toLowerCase(),n=function(e){var t=new RegExp(e+"/([^\\s\\_\\-]+)");return e=(o.match(t)||[])[1],e||!1},r={os:function(){return/windows/.test(o)?"windows":/linux/.test(o)?"linux":/iphone|ipod|ipad|ios/.test(o)?"ios":/mac/.test(o)?"mac":void 0}(),ie:function(){return!!(e.ActiveXObject||"ActiveXObject"in e)&&((o.match(/msie\s(\d+)/)||[])[1]||"11")}(),weixin:n("micromessenger")};return t&&!r[t]&&(r[t]=n(t)),r.android=/android/.test(o),r.ios="ios"===r.os,r},n.prototype.hint=function(){return{error:i}},n.prototype.each=function(e,t){var o,n=this;if("function"!=typeof t)return n;if(e=e||[],e.constructor===Object){for(o in e)if(t.call(e[o],o,e[o]))break}else for(o=0;o<e.length&&!t.call(e[o],o,e[o]);o++);return n},n.prototype.sort=function(e,t,o){var n=JSON.parse(JSON.stringify(e||[]));return t?(n.sort(function(e,o){var n=/^-?\d+$/,r=e[t],i=o[t];return n.test(r)&&(r=parseFloat(r)),n.test(i)&&(i=parseFloat(i)),r&&!i?1:!r&&i?-1:r>i?1:r<i?-1:0}),o&&n.reverse(),n):n},n.prototype.stope=function(t){t=t||e.event;try{t.stopPropagation()}catch(o){t.cancelBubble=!0}},n.prototype.onevent=function(e,t,o){return"string"!=typeof e||"function"!=typeof o?this:n.event(e,t,null,o)},n.prototype.event=n.event=function(e,t,n,r){var i=this,a=null,u=t.match(/\((.*)\)$/)||[],l=(e+"."+t).replace(u[0],""),s=u[1]||"",c=function(e,t){var o=t&&t.call(i,n);o===!1&&null===a&&(a=!1)};return r?(o.event[l]=o.event[l]||{},o.event[l][s]=[r],this):(layui.each(o.event[l],function(e,t){return"{*}"===s?void layui.each(t,c):(""===e&&layui.each(t,c),void(s&&e===s&&layui.each(t,c)))}),a)},e.layui=new n}(window);layui.define(function(a){var i=layui.cache;layui.config({dir:i.dir.replace(/lay\/dest\/$/,"")}),a("layui.all",layui.v)});layui.define(function(e){"use strict";var r={open:"{{",close:"}}"},c={exp:function(e){return new RegExp(e,"g")},query:function(e,c,t){var o=["#([\\s\\S])+?","([^{#}])*?"][e||0];return n((c||"")+r.open+o+r.close+(t||""))},escape:function(e){return String(e||"").replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/'/g,"&#39;").replace(/"/g,"&quot;")},error:function(e,r){var c="Laytpl Error:";return"object"==typeof console&&console.error(c+e+"\n"+(r||"")),c+e}},n=c.exp,t=function(e){this.tpl=e};t.pt=t.prototype,window.errors=0,t.pt.parse=function(e,t){var o=this,p=e,a=n("^"+r.open+"#",""),l=n(r.close+"$","");e=e.replace(/\s+|\r|\t|\n/g," ").replace(n(r.open+"#"),r.open+"# ").replace(n(r.close+"}"),"} "+r.close).replace(/\\/g,"\\\\").replace(n(r.open+"!(.+?)!"+r.close),function(e){return e=e.replace(n("^"+r.open+"!"),"").replace(n("!"+r.close),"").replace(n(r.open+"|"+r.close),function(e){return e.replace(/(.)/g,"\\$1")})}).replace(/(?="|')/g,"\\").replace(c.query(),function(e){return e=e.replace(a,"").replace(l,""),'";'+e.replace(/\\/g,"")+';view+="'}).replace(c.query(1),function(e){var c='"+(';return e.replace(/\s/g,"")===r.open+r.close?"":(e=e.replace(n(r.open+"|"+r.close),""),/^=/.test(e)&&(e=e.replace(/^=/,""),c='"+_escape_('),c+e.replace(/\\/g,"")+')+"')}),e='"use strict";var view = "'+e+'";return view;';try{return o.cache=e=new Function("d, _escape_",e),e(t,c.escape)}catch(u){return delete o.cache,c.error(u,p)}},t.pt.render=function(e,r){var n,t=this;return e?(n=t.cache?t.cache(e,c.escape):t.parse(t.tpl,e),r?void r(n):n):c.error("no data")};var o=function(e){return"string"!=typeof e?c.error("Template not found"):new t(e)};o.config=function(e){e=e||{};for(var c in e)r[c]=e[c]},o.v="1.2.0",e("laytpl",o)});layui.define(function(e){"use strict";var a=document,t="getElementById",n="getElementsByTagName",i="laypage",r="layui-disabled",u=function(e){var a=this;a.config=e||{},a.config.index=++s.index,a.render(!0)};u.prototype.type=function(){var e=this.config;if("object"==typeof e.elem)return void 0===e.elem.length?2:3},u.prototype.view=function(){var e=this,a=e.config,t=a.groups="groups"in a?0|a.groups:5;a.layout="object"==typeof a.layout?a.layout:["prev","page","next"],a.count=0|a.count,a.curr=0|a.curr||1,a.limits="object"==typeof a.limits?a.limits:[10,20,30,40,50],a.limit=0|a.limit||10,a.pages=Math.ceil(a.count/a.limit)||1,a.curr>a.pages&&(a.curr=a.pages),t<0?t=1:t>a.pages&&(t=a.pages),a.prev="prev"in a?a.prev:"&#x4E0A;&#x4E00;&#x9875;",a.next="next"in a?a.next:"&#x4E0B;&#x4E00;&#x9875;";var n=a.pages>t?Math.ceil((a.curr+(t>1?1:0))/(t>0?t:1)):1,i={prev:function(){return a.prev?'<a href="javascript:;" class="layui-laypage-prev'+(1==a.curr?" "+r:"")+'" data-page="'+(a.curr-1)+'">'+a.prev+"</a>":""}(),page:function(){var e=[];if(a.count<1)return"";n>1&&a.first!==!1&&0!==t&&e.push('<a href="javascript:;" class="layui-laypage-first" data-page="1"  title="&#x9996;&#x9875;">'+(a.first||1)+"</a>");var i=Math.floor((t-1)/2),r=n>1?a.curr-i:1,u=n>1?function(){var e=a.curr+(t-i-1);return e>a.pages?a.pages:e}():t;for(u-r<t-1&&(r=u-t+1),a.first!==!1&&r>2&&e.push('<span class="layui-laypage-spr">&#x2026;</span>');r<=u;r++)r===a.curr?e.push('<span class="layui-laypage-curr"><em class="layui-laypage-em" '+(/^#/.test(a.theme)?'style="background-color:'+a.theme+';"':"")+"></em><em>"+r+"</em></span>"):e.push('<a href="javascript:;" data-page="'+r+'">'+r+"</a>");return a.pages>t&&a.pages>u&&a.last!==!1&&(u+1<a.pages&&e.push('<span class="layui-laypage-spr">&#x2026;</span>'),0!==t&&e.push('<a href="javascript:;" class="layui-laypage-last" title="&#x5C3E;&#x9875;"  data-page="'+a.pages+'">'+(a.last||a.pages)+"</a>")),e.join("")}(),next:function(){return a.next?'<a href="javascript:;" class="layui-laypage-next'+(a.curr==a.pages?" "+r:"")+'" data-page="'+(a.curr+1)+'">'+a.next+"</a>":""}(),count:'<span class="layui-laypage-count">共 '+a.count+" 条</span>",limit:function(){var e=['<span class="layui-laypage-limits"><select lay-ignore>'];return layui.each(a.limits,function(t,n){e.push('<option value="'+n+'"'+(n===a.limit?"selected":"")+">"+n+" 条/页</option>")}),e.join("")+"</select></span>"}(),refresh:['<a href="javascript:;" data-page="'+a.curr+'" class="layui-laypage-refresh">','<i class="layui-icon layui-icon-refresh"></i>',"</a>"].join(""),skip:function(){return['<span class="layui-laypage-skip">&#x5230;&#x7B2C;','<input type="text" min="1" value="'+a.curr+'" class="layui-input">','&#x9875;<button type="button" class="layui-laypage-btn">&#x786e;&#x5b9a;</button>',"</span>"].join("")}()};return['<div class="layui-box layui-laypage layui-laypage-'+(a.theme?/^#/.test(a.theme)?"molv":a.theme:"default")+'" id="layui-laypage-'+a.index+'">',function(){var e=[];return layui.each(a.layout,function(a,t){i[t]&&e.push(i[t])}),e.join("")}(),"</div>"].join("")},u.prototype.jump=function(e,a){if(e){var t=this,i=t.config,r=e.children,u=e[n]("button")[0],l=e[n]("input")[0],p=e[n]("select")[0],c=function(){var e=0|l.value.replace(/\s|\D/g,"");e&&(i.curr=e,t.render())};if(a)return c();for(var o=0,y=r.length;o<y;o++)"a"===r[o].nodeName.toLowerCase()&&s.on(r[o],"click",function(){var e=0|this.getAttribute("data-page");e<1||e>i.pages||(i.curr=e,t.render())});p&&s.on(p,"change",function(){var e=this.value;i.curr*e>i.count&&(i.curr=Math.ceil(i.count/e)),i.limit=e,t.render()}),u&&s.on(u,"click",function(){c()})}},u.prototype.skip=function(e){if(e){var a=this,t=e[n]("input")[0];t&&s.on(t,"keyup",function(t){var n=this.value,i=t.keyCode;/^(37|38|39|40)$/.test(i)||(/\D/.test(n)&&(this.value=n.replace(/\D/,"")),13===i&&a.jump(e,!0))})}},u.prototype.render=function(e){var n=this,i=n.config,r=n.type(),u=n.view();2===r?i.elem&&(i.elem.innerHTML=u):3===r?i.elem.html(u):a[t](i.elem)&&(a[t](i.elem).innerHTML=u),i.jump&&i.jump(i,e);var s=a[t]("layui-laypage-"+i.index);n.jump(s),i.hash&&!e&&(location.hash="!"+i.hash+"="+i.curr),n.skip(s)};var s={render:function(e){var a=new u(e);return a.index},index:layui.laypage?layui.laypage.index+1e4:0,on:function(e,a,t){return e.attachEvent?e.attachEvent("on"+a,function(a){a.target=a.srcElement,t.call(e,a)}):e.addEventListener(a,t,!1),this}};e(i,s)});!function(){"use strict";var e=window.layui&&layui.define,t={getPath:function(){var e=document.currentScript?document.currentScript.src:function(){for(var e,t=document.scripts,n=t.length-1,a=n;a>0;a--)if("interactive"===t[a].readyState){e=t[a].src;break}return e||t[n].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),getStyle:function(e,t){var n=e.currentStyle?e.currentStyle:window.getComputedStyle(e,null);return n[n.getPropertyValue?"getPropertyValue":"getAttribute"](t)},link:function(e,a,i){if(n.path){var r=document.getElementsByTagName("head")[0],o=document.createElement("link");"string"==typeof a&&(i=a);var s=(i||e).replace(/\.|\//g,""),l="layuicss-"+s,d=0;o.rel="stylesheet",o.href=n.path+e,o.id=l,document.getElementById(l)||r.appendChild(o),"function"==typeof a&&!function c(){return++d>80?window.console&&console.error("laydate.css: Invalid"):void(1989===parseInt(t.getStyle(document.getElementById(l),"width"))?a():setTimeout(c,100))}()}}},n={v:"5.0.9",config:{},index:window.laydate&&window.laydate.v?1e5:0,path:t.getPath,set:function(e){var t=this;return t.config=w.extend({},t.config,e),t},ready:function(a){var i="laydate",r="",o=(e?"modules/laydate/":"theme/")+"default/laydate.css?v="+n.v+r;return e?layui.addcss(o,a,i):t.link(o,a,i),this}},a=function(){var e=this;return{hint:function(t){e.hint.call(e,t)},config:e.config}},i="laydate",r=".layui-laydate",o="layui-this",s="laydate-disabled",l="开始日期超出了结束日期<br>建议重新选择",d=[100,2e5],c="layui-laydate-static",m="layui-laydate-list",u="laydate-selected",h="layui-laydate-hint",y="laydate-day-prev",f="laydate-day-next",p="layui-laydate-footer",g=".laydate-btns-confirm",v="laydate-time-text",D=".laydate-btns-time",T=function(e){var t=this;t.index=++n.index,t.config=w.extend({},t.config,n.config,e),n.ready(function(){t.init()})},w=function(e){return new C(e)},C=function(e){for(var t=0,n="object"==typeof e?[e]:(this.selector=e,document.querySelectorAll(e||null));t<n.length;t++)this.push(n[t])};C.prototype=[],C.prototype.constructor=C,w.extend=function(){var e=1,t=arguments,n=function(e,t){e=e||(t.constructor===Array?[]:{});for(var a in t)e[a]=t[a]&&t[a].constructor===Object?n(e[a],t[a]):t[a];return e};for(t[0]="object"==typeof t[0]?t[0]:{};e<t.length;e++)"object"==typeof t[e]&&n(t[0],t[e]);return t[0]},w.ie=function(){var e=navigator.userAgent.toLowerCase();return!!(window.ActiveXObject||"ActiveXObject"in window)&&((e.match(/msie\s(\d+)/)||[])[1]||"11")}(),w.stope=function(e){e=e||window.event,e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},w.each=function(e,t){var n,a=this;if("function"!=typeof t)return a;if(e=e||[],e.constructor===Object){for(n in e)if(t.call(e[n],n,e[n]))break}else for(n=0;n<e.length&&!t.call(e[n],n,e[n]);n++);return a},w.digit=function(e,t,n){var a="";e=String(e),t=t||2;for(var i=e.length;i<t;i++)a+="0";return e<Math.pow(10,t)?a+(0|e):e},w.elem=function(e,t){var n=document.createElement(e);return w.each(t||{},function(e,t){n.setAttribute(e,t)}),n},C.addStr=function(e,t){return e=e.replace(/\s+/," "),t=t.replace(/\s+/," ").split(" "),w.each(t,function(t,n){new RegExp("\\b"+n+"\\b").test(e)||(e=e+" "+n)}),e.replace(/^\s|\s$/,"")},C.removeStr=function(e,t){return e=e.replace(/\s+/," "),t=t.replace(/\s+/," ").split(" "),w.each(t,function(t,n){var a=new RegExp("\\b"+n+"\\b");a.test(e)&&(e=e.replace(a,""))}),e.replace(/\s+/," ").replace(/^\s|\s$/,"")},C.prototype.find=function(e){var t=this,n=0,a=[],i="object"==typeof e;return this.each(function(r,o){for(var s=i?[e]:o.querySelectorAll(e||null);n<s.length;n++)a.push(s[n]);t.shift()}),i||(t.selector=(t.selector?t.selector+" ":"")+e),w.each(a,function(e,n){t.push(n)}),t},C.prototype.each=function(e){return w.each.call(this,this,e)},C.prototype.addClass=function(e,t){return this.each(function(n,a){a.className=C[t?"removeStr":"addStr"](a.className,e)})},C.prototype.removeClass=function(e){return this.addClass(e,!0)},C.prototype.hasClass=function(e){var t=!1;return this.each(function(n,a){new RegExp("\\b"+e+"\\b").test(a.className)&&(t=!0)}),t},C.prototype.attr=function(e,t){var n=this;return void 0===t?function(){if(n.length>0)return n[0].getAttribute(e)}():n.each(function(n,a){a.setAttribute(e,t)})},C.prototype.removeAttr=function(e){return this.each(function(t,n){n.removeAttribute(e)})},C.prototype.html=function(e){return this.each(function(t,n){n.innerHTML=e})},C.prototype.val=function(e){return this.each(function(t,n){n.value=e})},C.prototype.append=function(e){return this.each(function(t,n){"object"==typeof e?n.appendChild(e):n.innerHTML=n.innerHTML+e})},C.prototype.remove=function(e){return this.each(function(t,n){e?n.removeChild(e):n.parentNode.removeChild(n)})},C.prototype.on=function(e,t){return this.each(function(n,a){a.attachEvent?a.attachEvent("on"+e,function(e){e.target=e.srcElement,t.call(a,e)}):a.addEventListener(e,t,!1)})},C.prototype.off=function(e,t){return this.each(function(n,a){a.detachEvent?a.detachEvent("on"+e,t):a.removeEventListener(e,t,!1)})},T.isLeapYear=function(e){return e%4===0&&e%100!==0||e%400===0},T.prototype.config={type:"date",range:!1,format:"yyyy-MM-dd",value:null,isInitValue:!0,min:"1900-1-1",max:"2099-12-31",trigger:"focus",show:!1,showBottom:!0,btns:["clear","now","confirm"],lang:"cn",theme:"default",position:null,calendar:!1,mark:{},zIndex:null,done:null,change:null},T.prototype.lang=function(){var e=this,t=e.config,n={cn:{weeks:["日","一","二","三","四","五","六"],time:["时","分","秒"],timeTips:"选择时间",startTime:"开始时间",endTime:"结束时间",dateTips:"返回日期",month:["一","二","三","四","五","六","七","八","九","十","十一","十二"],tools:{confirm:"确定",clear:"清空",now:"现在"}},en:{weeks:["Su","Mo","Tu","We","Th","Fr","Sa"],time:["Hours","Minutes","Seconds"],timeTips:"Select Time",startTime:"Start Time",endTime:"End Time",dateTips:"Select Date",month:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],tools:{confirm:"Confirm",clear:"Clear",now:"Now"}}};return n[t.lang]||n.cn},T.prototype.init=function(){var e=this,t=e.config,n="yyyy|y|MM|M|dd|d|HH|H|mm|m|ss|s",a="static"===t.position,i={year:"yyyy",month:"yyyy-MM",date:"yyyy-MM-dd",time:"HH:mm:ss",datetime:"yyyy-MM-dd HH:mm:ss"};t.elem=w(t.elem),t.eventElem=w(t.eventElem),t.elem[0]&&(t.range===!0&&(t.range="-"),t.format===i.date&&(t.format=i[t.type]),e.format=t.format.match(new RegExp(n+"|.","g"))||[],e.EXP_IF="",e.EXP_SPLIT="",w.each(e.format,function(t,a){var i=new RegExp(n).test(a)?"\\d{"+function(){return new RegExp(n).test(e.format[0===t?t+1:t-1]||"")?/^yyyy|y$/.test(a)?4:a.length:/^yyyy$/.test(a)?"1,4":/^y$/.test(a)?"1,308":"1,2"}()+"}":"\\"+a;e.EXP_IF=e.EXP_IF+i,e.EXP_SPLIT=e.EXP_SPLIT+"("+i+")"}),e.EXP_IF=new RegExp("^"+(t.range?e.EXP_IF+"\\s\\"+t.range+"\\s"+e.EXP_IF:e.EXP_IF)+"$"),e.EXP_SPLIT=new RegExp("^"+e.EXP_SPLIT+"$",""),e.isInput(t.elem[0])||"focus"===t.trigger&&(t.trigger="click"),t.elem.attr("lay-key")||(t.elem.attr("lay-key",e.index),t.eventElem.attr("lay-key",e.index)),t.mark=w.extend({},t.calendar&&"cn"===t.lang?{"0-1-1":"元旦","0-2-14":"情人","0-3-8":"妇女","0-3-12":"植树","0-4-1":"愚人","0-5-1":"劳动","0-5-4":"青年","0-6-1":"儿童","0-9-10":"教师","0-9-18":"国耻","0-10-1":"国庆","0-12-25":"圣诞"}:{},t.mark),w.each(["min","max"],function(e,n){var a=[],i=[];if("number"==typeof t[n]){var r=t[n],o=(new Date).getTime(),s=864e5,l=new Date(r?r<s?o+r*s:r:o);a=[l.getFullYear(),l.getMonth()+1,l.getDate()],r<s||(i=[l.getHours(),l.getMinutes(),l.getSeconds()])}else a=(t[n].match(/\d+-\d+-\d+/)||[""])[0].split("-"),i=(t[n].match(/\d+:\d+:\d+/)||[""])[0].split(":");t[n]={year:0|a[0]||(new Date).getFullYear(),month:a[1]?(0|a[1])-1:(new Date).getMonth(),date:0|a[2]||(new Date).getDate(),hours:0|i[0],minutes:0|i[1],seconds:0|i[2]}}),e.elemID="layui-laydate"+t.elem.attr("lay-key"),(t.show||a)&&e.render(),a||e.events(),t.value&&t.isInitValue&&(t.value.constructor===Date?e.setValue(e.parse(0,e.systemDate(t.value))):e.setValue(t.value)))},T.prototype.render=function(){var e=this,t=e.config,n=e.lang(),a="static"===t.position,i=e.elem=w.elem("div",{id:e.elemID,"class":["layui-laydate",t.range?" layui-laydate-range":"",a?" "+c:"",t.theme&&"default"!==t.theme&&!/^#/.test(t.theme)?" laydate-theme-"+t.theme:""].join("")}),r=e.elemMain=[],o=e.elemHeader=[],s=e.elemCont=[],l=e.table=[],d=e.footer=w.elem("div",{"class":p});if(t.zIndex&&(i.style.zIndex=t.zIndex),w.each(new Array(2),function(e){if(!t.range&&e>0)return!0;var a=w.elem("div",{"class":"layui-laydate-header"}),i=[function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-prev-y"});return e.innerHTML="&#xe65a;",e}(),function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-prev-m"});return e.innerHTML="&#xe603;",e}(),function(){var e=w.elem("div",{"class":"laydate-set-ym"}),t=w.elem("span"),n=w.elem("span");return e.appendChild(t),e.appendChild(n),e}(),function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-next-m"});return e.innerHTML="&#xe602;",e}(),function(){var e=w.elem("i",{"class":"layui-icon laydate-icon laydate-next-y"});return e.innerHTML="&#xe65b;",e}()],d=w.elem("div",{"class":"layui-laydate-content"}),c=w.elem("table"),m=w.elem("thead"),u=w.elem("tr");w.each(i,function(e,t){a.appendChild(t)}),m.appendChild(u),w.each(new Array(6),function(e){var t=c.insertRow(0);w.each(new Array(7),function(a){if(0===e){var i=w.elem("th");i.innerHTML=n.weeks[a],u.appendChild(i)}t.insertCell(a)})}),c.insertBefore(m,c.children[0]),d.appendChild(c),r[e]=w.elem("div",{"class":"layui-laydate-main laydate-main-list-"+e}),r[e].appendChild(a),r[e].appendChild(d),o.push(i),s.push(d),l.push(c)}),w(d).html(function(){var e=[],i=[];return"datetime"===t.type&&e.push('<span lay-type="datetime" class="laydate-btns-time">'+n.timeTips+"</span>"),w.each(t.btns,function(e,r){var o=n.tools[r]||"btn";t.range&&"now"===r||(a&&"clear"===r&&(o="cn"===t.lang?"重置":"Reset"),i.push('<span lay-type="'+r+'" class="laydate-btns-'+r+'">'+o+"</span>"))}),e.push('<div class="laydate-footer-btns">'+i.join("")+"</div>"),e.join("")}()),w.each(r,function(e,t){i.appendChild(t)}),t.showBottom&&i.appendChild(d),/^#/.test(t.theme)){var m=w.elem("style"),u=["#{{id}} .layui-laydate-header{background-color:{{theme}};}","#{{id}} .layui-this{background-color:{{theme}} !important;}"].join("").replace(/{{id}}/g,e.elemID).replace(/{{theme}}/g,t.theme);"styleSheet"in m?(m.setAttribute("type","text/css"),m.styleSheet.cssText=u):m.innerHTML=u,w(i).addClass("laydate-theme-molv"),i.appendChild(m)}e.remove(T.thisElemDate),a?t.elem.append(i):(document.body.appendChild(i),e.position()),e.checkDate().calendar(),e.changeEvent(),T.thisElemDate=e.elemID,"function"==typeof t.ready&&t.ready(w.extend({},t.dateTime,{month:t.dateTime.month+1}))},T.prototype.remove=function(e){var t=this,n=(t.config,w("#"+(e||t.elemID)));return n.hasClass(c)||t.checkDate(function(){n.remove()}),t},T.prototype.position=function(){var e=this,t=e.config,n=e.bindElem||t.elem[0],a=n.getBoundingClientRect(),i=e.elem.offsetWidth,r=e.elem.offsetHeight,o=function(e){return e=e?"scrollLeft":"scrollTop",document.body[e]|document.documentElement[e]},s=function(e){return document.documentElement[e?"clientWidth":"clientHeight"]},l=5,d=a.left,c=a.bottom;d+i+l>s("width")&&(d=s("width")-i-l),c+r+l>s()&&(c=a.top>r?a.top-r:s()-r,c-=2*l),t.position&&(e.elem.style.position=t.position),e.elem.style.left=d+("fixed"===t.position?0:o(1))+"px",e.elem.style.top=c+("fixed"===t.position?0:o())+"px"},T.prototype.hint=function(e){var t=this,n=(t.config,w.elem("div",{"class":h}));t.elem&&(n.innerHTML=e||"",w(t.elem).find("."+h).remove(),t.elem.appendChild(n),clearTimeout(t.hinTimer),t.hinTimer=setTimeout(function(){w(t.elem).find("."+h).remove()},3e3))},T.prototype.getAsYM=function(e,t,n){return n?t--:t++,t<0&&(t=11,e--),t>11&&(t=0,e++),[e,t]},T.prototype.systemDate=function(e){var t=e||new Date;return{year:t.getFullYear(),month:t.getMonth(),date:t.getDate(),hours:e?e.getHours():0,minutes:e?e.getMinutes():0,seconds:e?e.getSeconds():0}},T.prototype.checkDate=function(e){var t,a,i=this,r=(new Date,i.config),o=r.dateTime=r.dateTime||i.systemDate(),s=i.bindElem||r.elem[0],l=(i.isInput(s)?"val":"html",i.isInput(s)?s.value:"static"===r.position?"":s.innerHTML),c=function(e){e.year>d[1]&&(e.year=d[1],a=!0),e.month>11&&(e.month=11,a=!0),e.hours>23&&(e.hours=0,a=!0),e.minutes>59&&(e.minutes=0,e.hours++,a=!0),e.seconds>59&&(e.seconds=0,e.minutes++,a=!0),t=n.getEndDate(e.month+1,e.year),e.date>t&&(e.date=t,a=!0)},m=function(e,t,n){var o=["startTime","endTime"];t=(t.match(i.EXP_SPLIT)||[]).slice(1),n=n||0,r.range&&(i[o[n]]=i[o[n]]||{}),w.each(i.format,function(s,l){var c=parseFloat(t[s]);t[s].length<l.length&&(a=!0),/yyyy|y/.test(l)?(c<d[0]&&(c=d[0],a=!0),e.year=c):/MM|M/.test(l)?(c<1&&(c=1,a=!0),e.month=c-1):/dd|d/.test(l)?(c<1&&(c=1,a=!0),e.date=c):/HH|H/.test(l)?(c<1&&(c=0,a=!0),e.hours=c,r.range&&(i[o[n]].hours=c)):/mm|m/.test(l)?(c<1&&(c=0,a=!0),e.minutes=c,r.range&&(i[o[n]].minutes=c)):/ss|s/.test(l)&&(c<1&&(c=0,a=!0),e.seconds=c,r.range&&(i[o[n]].seconds=c))}),c(e)};return"limit"===e?(c(o),i):(l=l||r.value,"string"==typeof l&&(l=l.replace(/\s+/g," ").replace(/^\s|\s$/g,"")),i.startState&&!i.endState&&(delete i.startState,i.endState=!0),"string"==typeof l&&l?i.EXP_IF.test(l)?r.range?(l=l.split(" "+r.range+" "),i.startDate=i.startDate||i.systemDate(),i.endDate=i.endDate||i.systemDate(),r.dateTime=w.extend({},i.startDate),w.each([i.startDate,i.endDate],function(e,t){m(t,l[e],e)})):m(o,l):(i.hint("日期格式不合法<br>必须遵循下述格式:<br>"+(r.range?r.format+" "+r.range+" "+r.format:r.format)+"<br>已为你重置"),a=!0):l&&l.constructor===Date?r.dateTime=i.systemDate(l):(r.dateTime=i.systemDate(),delete i.startState,delete i.endState,delete i.startDate,delete i.endDate,delete i.startTime,delete i.endTime),c(o),a&&l&&i.setValue(r.range?i.endDate?i.parse():"":i.parse()),e&&e(),i)},T.prototype.mark=function(e,t){var n,a=this,i=a.config;return w.each(i.mark,function(e,a){var i=e.split("-");i[0]!=t[0]&&0!=i[0]||i[1]!=t[1]&&0!=i[1]||i[2]!=t[2]||(n=a||t[2])}),n&&e.html('<span class="laydate-day-mark">'+n+"</span>"),a},T.prototype.limit=function(e,t,n,a){var i,r=this,o=r.config,l={},d=o[n>41?"endDate":"dateTime"],c=w.extend({},d,t||{});return w.each({now:c,min:o.min,max:o.max},function(e,t){l[e]=r.newDate(w.extend({year:t.year,month:t.month,date:t.date},function(){var e={};return w.each(a,function(n,a){e[a]=t[a]}),e}())).getTime()}),i=l.now<l.min||l.now>l.max,e&&e[i?"addClass":"removeClass"](s),i},T.prototype.calendar=function(e){var t,a,i,r=this,s=r.config,l=e||s.dateTime,c=new Date,m=r.lang(),u="date"!==s.type&&"datetime"!==s.type,h=e?1:0,y=w(r.table[h]).find("td"),f=w(r.elemHeader[h][2]).find("span");if(l.year<d[0]&&(l.year=d[0],r.hint("最低只能支持到公元"+d[0]+"年")),l.year>d[1]&&(l.year=d[1],r.hint("最高只能支持到公元"+d[1]+"年")),r.firstDate||(r.firstDate=w.extend({},l)),c.setFullYear(l.year,l.month,1),t=c.getDay(),a=n.getEndDate(l.month||12,l.year),i=n.getEndDate(l.month+1,l.year),w.each(y,function(e,n){var d=[l.year,l.month],c=0;n=w(n),n.removeAttr("class"),e<t?(c=a-t+e,n.addClass("laydate-day-prev"),d=r.getAsYM(l.year,l.month,"sub")):e>=t&&e<i+t?(c=e-t,s.range||c+1===l.date&&n.addClass(o)):(c=e-i-t,n.addClass("laydate-day-next"),d=r.getAsYM(l.year,l.month)),d[1]++,d[2]=c+1,n.attr("lay-ymd",d.join("-")).html(d[2]),r.mark(n,d).limit(n,{year:d[0],month:d[1]-1,date:d[2]},e)}),w(f[0]).attr("lay-ym",l.year+"-"+(l.month+1)),w(f[1]).attr("lay-ym",l.year+"-"+(l.month+1)),"cn"===s.lang?(w(f[0]).attr("lay-type","year").html(l.year+"年"),w(f[1]).attr("lay-type","month").html(l.month+1+"月")):(w(f[0]).attr("lay-type","month").html(m.month[l.month]),w(f[1]).attr("lay-type","year").html(l.year)),u&&(s.range&&(e?r.endDate=r.endDate||{year:l.year+("year"===s.type?1:0),month:l.month+("month"===s.type?0:-1)}:r.startDate=r.startDate||{year:l.year,month:l.month},e&&(r.listYM=[[r.startDate.year,r.startDate.month+1],[r.endDate.year,r.endDate.month+1]],r.list(s.type,0).list(s.type,1),"time"===s.type?r.setBtnStatus("时间",w.extend({},r.systemDate(),r.startTime),w.extend({},r.systemDate(),r.endTime)):r.setBtnStatus(!0))),s.range||(r.listYM=[[l.year,l.month+1]],r.list(s.type,0))),s.range&&!e){var p=r.getAsYM(l.year,l.month);r.calendar(w.extend({},l,{year:p[0],month:p[1]}))}return s.range||r.limit(w(r.footer).find(g),null,0,["hours","minutes","seconds"]),s.range&&e&&!u&&r.stampRange(),r},T.prototype.list=function(e,t){var n=this,a=n.config,i=a.dateTime,r=n.lang(),l=a.range&&"date"!==a.type&&"datetime"!==a.type,d=w.elem("ul",{"class":m+" "+{year:"laydate-year-list",month:"laydate-month-list",time:"laydate-time-list"}[e]}),c=n.elemHeader[t],u=w(c[2]).find("span"),h=n.elemCont[t||0],y=w(h).find("."+m)[0],f="cn"===a.lang,p=f?"年":"",T=n.listYM[t]||{},C=["hours","minutes","seconds"],x=["startTime","endTime"][t];if(T[0]<1&&(T[0]=1),"year"===e){var M,b=M=T[0]-7;b<1&&(b=M=1),w.each(new Array(15),function(e){var i=w.elem("li",{"lay-ym":M}),r={year:M};M==T[0]&&w(i).addClass(o),i.innerHTML=M+p,d.appendChild(i),M<n.firstDate.year?(r.month=a.min.month,r.date=a.min.date):M>=n.firstDate.year&&(r.month=a.max.month,r.date=a.max.date),n.limit(w(i),r,t),M++}),w(u[f?0:1]).attr("lay-ym",M-8+"-"+T[1]).html(b+p+" - "+(M-1+p))}else if("month"===e)w.each(new Array(12),function(e){var i=w.elem("li",{"lay-ym":e}),s={year:T[0],month:e};e+1==T[1]&&w(i).addClass(o),i.innerHTML=r.month[e]+(f?"月":""),d.appendChild(i),T[0]<n.firstDate.year?s.date=a.min.date:T[0]>=n.firstDate.year&&(s.date=a.max.date),n.limit(w(i),s,t)}),w(u[f?0:1]).attr("lay-ym",T[0]+"-"+T[1]).html(T[0]+p);else if("time"===e){var E=function(){w(d).find("ol").each(function(e,a){w(a).find("li").each(function(a,i){n.limit(w(i),[{hours:a},{hours:n[x].hours,minutes:a},{hours:n[x].hours,minutes:n[x].minutes,seconds:a}][e],t,[["hours"],["hours","minutes"],["hours","minutes","seconds"]][e])})}),a.range||n.limit(w(n.footer).find(g),n[x],0,["hours","minutes","seconds"])};a.range?n[x]||(n[x]={hours:0,minutes:0,seconds:0}):n[x]=i,w.each([24,60,60],function(e,t){var a=w.elem("li"),i=["<p>"+r.time[e]+"</p><ol>"];w.each(new Array(t),function(t){i.push("<li"+(n[x][C[e]]===t?' class="'+o+'"':"")+">"+w.digit(t,2)+"</li>")}),a.innerHTML=i.join("")+"</ol>",d.appendChild(a)}),E()}if(y&&h.removeChild(y),h.appendChild(d),"year"===e||"month"===e)w(n.elemMain[t]).addClass("laydate-ym-show"),w(d).find("li").on("click",function(){var r=0|w(this).attr("lay-ym");if(!w(this).hasClass(s)){if(0===t)i[e]=r,l&&(n.startDate[e]=r),n.limit(w(n.footer).find(g),null,0);else if(l)n.endDate[e]=r;else{var c="year"===e?n.getAsYM(r,T[1]-1,"sub"):n.getAsYM(T[0],r,"sub");w.extend(i,{year:c[0],month:c[1]})}"year"===a.type||"month"===a.type?(w(d).find("."+o).removeClass(o),w(this).addClass(o),"month"===a.type&&"year"===e&&(n.listYM[t][0]=r,l&&(n[["startDate","endDate"][t]].year=r),n.list("month",t))):(n.checkDate("limit").calendar(),n.closeList()),n.setBtnStatus(),a.range||n.done(null,"change"),w(n.footer).find(D).removeClass(s)}});else{var S=w.elem("span",{"class":v}),k=function(){w(d).find("ol").each(function(e){var t=this,a=w(t).find("li");t.scrollTop=30*(n[x][C[e]]-2),t.scrollTop<=0&&a.each(function(e,n){if(!w(this).hasClass(s))return t.scrollTop=30*(e-2),!0})})},H=w(c[2]).find("."+v);k(),S.innerHTML=a.range?[r.startTime,r.endTime][t]:r.timeTips,w(n.elemMain[t]).addClass("laydate-time-show"),H[0]&&H.remove(),c[2].appendChild(S),w(d).find("ol").each(function(e){var t=this;w(t).find("li").on("click",function(){var r=0|this.innerHTML;w(this).hasClass(s)||(a.range?n[x][C[e]]=r:i[C[e]]=r,w(t).find("."+o).removeClass(o),w(this).addClass(o),E(),k(),(n.endDate||"time"===a.type)&&n.done(null,"change"),n.setBtnStatus())})})}return n},T.prototype.listYM=[],T.prototype.closeList=function(){var e=this;e.config;w.each(e.elemCont,function(t,n){w(this).find("."+m).remove(),w(e.elemMain[t]).removeClass("laydate-ym-show laydate-time-show")}),w(e.elem).find("."+v).remove()},T.prototype.setBtnStatus=function(e,t,n){var a,i=this,r=i.config,o=w(i.footer).find(g),d=r.range&&"date"!==r.type&&"time"!==r.type;d&&(t=t||i.startDate,n=n||i.endDate,a=i.newDate(t).getTime()>i.newDate(n).getTime(),i.limit(null,t)||i.limit(null,n)?o.addClass(s):o[a?"addClass":"removeClass"](s),e&&a&&i.hint("string"==typeof e?l.replace(/日期/g,e):l))},T.prototype.parse=function(e,t){var n=this,a=n.config,i=t||(e?w.extend({},n.endDate,n.endTime):a.range?w.extend({},n.startDate,n.startTime):a.dateTime),r=n.format.concat();return w.each(r,function(e,t){/yyyy|y/.test(t)?r[e]=w.digit(i.year,t.length):/MM|M/.test(t)?r[e]=w.digit(i.month+1,t.length):/dd|d/.test(t)?r[e]=w.digit(i.date,t.length):/HH|H/.test(t)?r[e]=w.digit(i.hours,t.length):/mm|m/.test(t)?r[e]=w.digit(i.minutes,t.length):/ss|s/.test(t)&&(r[e]=w.digit(i.seconds,t.length))}),a.range&&!e?r.join("")+" "+a.range+" "+n.parse(1):r.join("")},T.prototype.newDate=function(e){return e=e||{},new Date(e.year||1,e.month||0,e.date||1,e.hours||0,e.minutes||0,e.seconds||0)},T.prototype.setValue=function(e){var t=this,n=t.config,a=t.bindElem||n.elem[0],i=t.isInput(a)?"val":"html";return"static"===n.position||w(a)[i](e||""),this},T.prototype.stampRange=function(){var e,t,n=this,a=n.config,i=w(n.elem).find("td");if(a.range&&!n.endDate&&w(n.footer).find(g).addClass(s),n.endDate)return e=n.newDate({year:n.startDate.year,month:n.startDate.month,date:n.startDate.date}).getTime(),t=n.newDate({year:n.endDate.year,month:n.endDate.month,date:n.endDate.date}).getTime(),e>t?n.hint(l):void w.each(i,function(a,i){var r=w(i).attr("lay-ymd").split("-"),s=n.newDate({year:r[0],month:r[1]-1,date:r[2]}).getTime();w(i).removeClass(u+" "+o),s!==e&&s!==t||w(i).addClass(w(i).hasClass(y)||w(i).hasClass(f)?u:o),s>e&&s<t&&w(i).addClass(u)})},T.prototype.done=function(e,t){var n=this,a=n.config,i=w.extend({},n.startDate?w.extend(n.startDate,n.startTime):a.dateTime),r=w.extend({},w.extend(n.endDate,n.endTime));return w.each([i,r],function(e,t){"month"in t&&w.extend(t,{month:t.month+1})}),e=e||[n.parse(),i,r],"function"==typeof a[t||"done"]&&a[t||"done"].apply(a,e),n},T.prototype.choose=function(e){var t=this,n=t.config,a=n.dateTime,i=w(t.elem).find("td"),r=e.attr("lay-ymd").split("-"),l=function(e){new Date;e&&w.extend(a,r),n.range&&(t.startDate?w.extend(t.startDate,r):t.startDate=w.extend({},r,t.startTime),t.startYMD=r)};if(r={year:0|r[0],month:(0|r[1])-1,date:0|r[2]},!e.hasClass(s))if(n.range){if(w.each(["startTime","endTime"],function(e,n){t[n]=t[n]||{hours:0,minutes:0,seconds:0}}),t.endState)l(),delete t.endState,delete t.endDate,t.startState=!0,i.removeClass(o+" "+u),e.addClass(o);else if(t.startState){if(e.addClass(o),t.endDate?w.extend(t.endDate,r):t.endDate=w.extend({},r,t.endTime),t.newDate(r).getTime()<t.newDate(t.startYMD).getTime()){var d=w.extend({},t.endDate,{hours:t.startDate.hours,minutes:t.startDate.minutes,seconds:t.startDate.seconds});w.extend(t.endDate,t.startDate,{hours:t.endDate.hours,minutes:t.endDate.minutes,seconds:t.endDate.seconds}),t.startDate=d}n.showBottom||t.done(),t.stampRange(),t.endState=!0,t.done(null,"change")}else e.addClass(o),l(),t.startState=!0;w(t.footer).find(g)[t.endDate?"removeClass":"addClass"](s)}else"static"===n.position?(l(!0),t.calendar().done().done(null,"change")):"date"===n.type?(l(!0),t.setValue(t.parse()).remove().done()):"datetime"===n.type&&(l(!0),t.calendar().done(null,"change"))},T.prototype.tool=function(e,t){var n=this,a=n.config,i=a.dateTime,r="static"===a.position,o={datetime:function(){w(e).hasClass(s)||(n.list("time",0),a.range&&n.list("time",1),w(e).attr("lay-type","date").html(n.lang().dateTips))},date:function(){n.closeList(),w(e).attr("lay-type","datetime").html(n.lang().timeTips)},clear:function(){n.setValue("").remove(),r&&(w.extend(i,n.firstDate),n.calendar()),a.range&&(delete n.startState,delete n.endState,delete n.endDate,delete n.startTime,delete n.endTime),n.done(["",{},{}])},now:function(){var e=new Date;w.extend(i,n.systemDate(),{hours:e.getHours(),minutes:e.getMinutes(),seconds:e.getSeconds()}),n.setValue(n.parse()).remove(),r&&n.calendar(),n.done()},confirm:function(){if(a.range){if(!n.endDate)return n.hint("请先选择日期范围");if(w(e).hasClass(s))return n.hint("time"===a.type?l.replace(/日期/g,"时间"):l)}else if(w(e).hasClass(s))return n.hint("不在有效日期或时间范围内");n.done(),n.setValue(n.parse()).remove()}};o[t]&&o[t]()},T.prototype.change=function(e){var t=this,n=t.config,a=n.dateTime,i=n.range&&("year"===n.type||"month"===n.type),r=t.elemCont[e||0],o=t.listYM[e],s=function(s){var l=["startDate","endDate"][e],d=w(r).find(".laydate-year-list")[0],c=w(r).find(".laydate-month-list")[0];return d&&(o[0]=s?o[0]-15:o[0]+15,t.list("year",e)),c&&(s?o[0]--:o[0]++,t.list("month",e)),(d||c)&&(w.extend(a,{year:o[0]}),i&&(t[l].year=o[0]),n.range||t.done(null,"change"),t.setBtnStatus(),n.range||t.limit(w(t.footer).find(g),{year:o[0]})),d||c};return{prevYear:function(){s("sub")||(a.year--,t.checkDate("limit").calendar(),n.range||t.done(null,"change"))},prevMonth:function(){var e=t.getAsYM(a.year,a.month,"sub");w.extend(a,{year:e[0],month:e[1]}),t.checkDate("limit").calendar(),n.range||t.done(null,"change")},nextMonth:function(){var e=t.getAsYM(a.year,a.month);w.extend(a,{year:e[0],month:e[1]}),t.checkDate("limit").calendar(),n.range||t.done(null,"change")},nextYear:function(){s()||(a.year++,t.checkDate("limit").calendar(),n.range||t.done(null,"change"))}}},T.prototype.changeEvent=function(){var e=this;e.config;w(e.elem).on("click",function(e){w.stope(e)}),w.each(e.elemHeader,function(t,n){w(n[0]).on("click",function(n){e.change(t).prevYear()}),w(n[1]).on("click",function(n){e.change(t).prevMonth()}),w(n[2]).find("span").on("click",function(n){var a=w(this),i=a.attr("lay-ym"),r=a.attr("lay-type");i&&(i=i.split("-"),e.listYM[t]=[0|i[0],0|i[1]],e.list(r,t),w(e.footer).find(D).addClass(s))}),w(n[3]).on("click",function(n){e.change(t).nextMonth()}),w(n[4]).on("click",function(n){e.change(t).nextYear()})}),w.each(e.table,function(t,n){var a=w(n).find("td");a.on("click",function(){e.choose(w(this))})}),w(e.footer).find("span").on("click",function(){var t=w(this).attr("lay-type");e.tool(this,t)})},T.prototype.isInput=function(e){return/input|textarea/.test(e.tagName.toLocaleLowerCase())},T.prototype.events=function(){var e=this,t=e.config,n=function(n,a){n.on(t.trigger,function(){a&&(e.bindElem=this),e.render()})};t.elem[0]&&!t.elem[0].eventHandler&&(n(t.elem,"bind"),n(t.eventElem),w(document).on("click",function(n){n.target!==t.elem[0]&&n.target!==t.eventElem[0]&&n.target!==w(t.closeStop)[0]&&e.remove()}).on("keydown",function(t){13===t.keyCode&&w("#"+e.elemID)[0]&&e.elemID===T.thisElem&&(t.preventDefault(),w(e.footer).find(g)[0].click())}),w(window).on("resize",function(){return!(!e.elem||!w(r)[0])&&void e.position()}),t.elem[0].eventHandler=!0)},n.render=function(e){var t=new T(e);return a.call(t)},n.getEndDate=function(e,t){var n=new Date;return n.setFullYear(t||n.getFullYear(),e||n.getMonth()+1,1),new Date(n.getTime()-864e5).getDate()},window.lay=window.lay||w,e?(n.ready(),layui.define(function(e){n.path=layui.cache.dir,e(i,n)})):"function"==typeof define&&define.amd?define(function(){return n}):function(){n.ready(),window.laydate=n}()}();!function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){function n(e){var t=!!e&&"length"in e&&e.length,n=pe.type(e);return"function"!==n&&!pe.isWindow(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}function r(e,t,n){if(pe.isFunction(t))return pe.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return pe.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(Ce.test(t))return pe.filter(t,e,n);t=pe.filter(t,e)}return pe.grep(e,function(e){return pe.inArray(e,t)>-1!==n})}function i(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}function o(e){var t={};return pe.each(e.match(De)||[],function(e,n){t[n]=!0}),t}function a(){re.addEventListener?(re.removeEventListener("DOMContentLoaded",s),e.removeEventListener("load",s)):(re.detachEvent("onreadystatechange",s),e.detachEvent("onload",s))}function s(){(re.addEventListener||"load"===e.event.type||"complete"===re.readyState)&&(a(),pe.ready())}function u(e,t,n){if(void 0===n&&1===e.nodeType){var r="data-"+t.replace(_e,"-$1").toLowerCase();if(n=e.getAttribute(r),"string"==typeof n){try{n="true"===n||"false"!==n&&("null"===n?null:+n+""===n?+n:qe.test(n)?pe.parseJSON(n):n)}catch(i){}pe.data(e,t,n)}else n=void 0}return n}function l(e){var t;for(t in e)if(("data"!==t||!pe.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function c(e,t,n,r){if(He(e)){var i,o,a=pe.expando,s=e.nodeType,u=s?pe.cache:e,l=s?e[a]:e[a]&&a;if(l&&u[l]&&(r||u[l].data)||void 0!==n||"string"!=typeof t)return l||(l=s?e[a]=ne.pop()||pe.guid++:a),u[l]||(u[l]=s?{}:{toJSON:pe.noop}),"object"!=typeof t&&"function"!=typeof t||(r?u[l]=pe.extend(u[l],t):u[l].data=pe.extend(u[l].data,t)),o=u[l],r||(o.data||(o.data={}),o=o.data),void 0!==n&&(o[pe.camelCase(t)]=n),"string"==typeof t?(i=o[t],null==i&&(i=o[pe.camelCase(t)])):i=o,i}}function f(e,t,n){if(He(e)){var r,i,o=e.nodeType,a=o?pe.cache:e,s=o?e[pe.expando]:pe.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){pe.isArray(t)?t=t.concat(pe.map(t,pe.camelCase)):t in r?t=[t]:(t=pe.camelCase(t),t=t in r?[t]:t.split(" ")),i=t.length;for(;i--;)delete r[t[i]];if(n?!l(r):!pe.isEmptyObject(r))return}(n||(delete a[s].data,l(a[s])))&&(o?pe.cleanData([e],!0):fe.deleteExpando||a!=a.window?delete a[s]:a[s]=void 0)}}}function d(e,t,n,r){var i,o=1,a=20,s=r?function(){return r.cur()}:function(){return pe.css(e,t,"")},u=s(),l=n&&n[3]||(pe.cssNumber[t]?"":"px"),c=(pe.cssNumber[t]||"px"!==l&&+u)&&Me.exec(pe.css(e,t));if(c&&c[3]!==l){l=l||c[3],n=n||[],c=+u||1;do o=o||".5",c/=o,pe.style(e,t,c+l);while(o!==(o=s()/u)&&1!==o&&--a)}return n&&(c=+c||+u||0,i=n[1]?c+(n[1]+1)*n[2]:+n[2],r&&(r.unit=l,r.start=c,r.end=i)),i}function p(e){var t=ze.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function h(e,t){var n,r,i=0,o="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):void 0;if(!o)for(o=[],n=e.childNodes||e;null!=(r=n[i]);i++)!t||pe.nodeName(r,t)?o.push(r):pe.merge(o,h(r,t));return void 0===t||t&&pe.nodeName(e,t)?pe.merge([e],o):o}function g(e,t){for(var n,r=0;null!=(n=e[r]);r++)pe._data(n,"globalEval",!t||pe._data(t[r],"globalEval"))}function m(e){Be.test(e.type)&&(e.defaultChecked=e.checked)}function y(e,t,n,r,i){for(var o,a,s,u,l,c,f,d=e.length,y=p(t),v=[],x=0;x<d;x++)if(a=e[x],a||0===a)if("object"===pe.type(a))pe.merge(v,a.nodeType?[a]:a);else if(Ue.test(a)){for(u=u||y.appendChild(t.createElement("div")),l=(We.exec(a)||["",""])[1].toLowerCase(),f=Xe[l]||Xe._default,u.innerHTML=f[1]+pe.htmlPrefilter(a)+f[2],o=f[0];o--;)u=u.lastChild;if(!fe.leadingWhitespace&&$e.test(a)&&v.push(t.createTextNode($e.exec(a)[0])),!fe.tbody)for(a="table"!==l||Ve.test(a)?"<table>"!==f[1]||Ve.test(a)?0:u:u.firstChild,o=a&&a.childNodes.length;o--;)pe.nodeName(c=a.childNodes[o],"tbody")&&!c.childNodes.length&&a.removeChild(c);for(pe.merge(v,u.childNodes),u.textContent="";u.firstChild;)u.removeChild(u.firstChild);u=y.lastChild}else v.push(t.createTextNode(a));for(u&&y.removeChild(u),fe.appendChecked||pe.grep(h(v,"input"),m),x=0;a=v[x++];)if(r&&pe.inArray(a,r)>-1)i&&i.push(a);else if(s=pe.contains(a.ownerDocument,a),u=h(y.appendChild(a),"script"),s&&g(u),n)for(o=0;a=u[o++];)Ie.test(a.type||"")&&n.push(a);return u=null,y}function v(){return!0}function x(){return!1}function b(){try{return re.activeElement}catch(e){}}function w(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)w(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),i===!1)i=x;else if(!i)return e;return 1===o&&(a=i,i=function(e){return pe().off(e),a.apply(this,arguments)},i.guid=a.guid||(a.guid=pe.guid++)),e.each(function(){pe.event.add(this,t,i,r,n)})}function T(e,t){return pe.nodeName(e,"table")&&pe.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function C(e){return e.type=(null!==pe.find.attr(e,"type"))+"/"+e.type,e}function E(e){var t=it.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function N(e,t){if(1===t.nodeType&&pe.hasData(e)){var n,r,i,o=pe._data(e),a=pe._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;r<i;r++)pe.event.add(t,n,s[n][r])}a.data&&(a.data=pe.extend({},a.data))}}function k(e,t){var n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!fe.noCloneEvent&&t[pe.expando]){i=pe._data(t);for(r in i.events)pe.removeEvent(t,r,i.handle);t.removeAttribute(pe.expando)}"script"===n&&t.text!==e.text?(C(t).text=e.text,E(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),fe.html5Clone&&e.innerHTML&&!pe.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Be.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:"input"!==n&&"textarea"!==n||(t.defaultValue=e.defaultValue)}}function S(e,t,n,r){t=oe.apply([],t);var i,o,a,s,u,l,c=0,f=e.length,d=f-1,p=t[0],g=pe.isFunction(p);if(g||f>1&&"string"==typeof p&&!fe.checkClone&&rt.test(p))return e.each(function(i){var o=e.eq(i);g&&(t[0]=p.call(this,i,o.html())),S(o,t,n,r)});if(f&&(l=y(t,e[0].ownerDocument,!1,e,r),i=l.firstChild,1===l.childNodes.length&&(l=i),i||r)){for(s=pe.map(h(l,"script"),C),a=s.length;c<f;c++)o=l,c!==d&&(o=pe.clone(o,!0,!0),a&&pe.merge(s,h(o,"script"))),n.call(e[c],o,c);if(a)for(u=s[s.length-1].ownerDocument,pe.map(s,E),c=0;c<a;c++)o=s[c],Ie.test(o.type||"")&&!pe._data(o,"globalEval")&&pe.contains(u,o)&&(o.src?pe._evalUrl&&pe._evalUrl(o.src):pe.globalEval((o.text||o.textContent||o.innerHTML||"").replace(ot,"")));l=i=null}return e}function A(e,t,n){for(var r,i=t?pe.filter(t,e):e,o=0;null!=(r=i[o]);o++)n||1!==r.nodeType||pe.cleanData(h(r)),r.parentNode&&(n&&pe.contains(r.ownerDocument,r)&&g(h(r,"script")),r.parentNode.removeChild(r));return e}function D(e,t){var n=pe(t.createElement(e)).appendTo(t.body),r=pe.css(n[0],"display");return n.detach(),r}function j(e){var t=re,n=lt[e];return n||(n=D(e,t),"none"!==n&&n||(ut=(ut||pe("<iframe frameborder='0' width='0' height='0'/>")).appendTo(t.documentElement),t=(ut[0].contentWindow||ut[0].contentDocument).document,t.write(),t.close(),n=D(e,t),ut.detach()),lt[e]=n),n}function L(e,t){return{get:function(){return e()?void delete this.get:(this.get=t).apply(this,arguments)}}}function H(e){if(e in Et)return e;for(var t=e.charAt(0).toUpperCase()+e.slice(1),n=Ct.length;n--;)if(e=Ct[n]+t,e in Et)return e}function q(e,t){for(var n,r,i,o=[],a=0,s=e.length;a<s;a++)r=e[a],r.style&&(o[a]=pe._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&Re(r)&&(o[a]=pe._data(r,"olddisplay",j(r.nodeName)))):(i=Re(r),(n&&"none"!==n||!i)&&pe._data(r,"olddisplay",i?n:pe.css(r,"display"))));for(a=0;a<s;a++)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return e}function _(e,t,n){var r=bt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function F(e,t,n,r,i){for(var o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;o<4;o+=2)"margin"===n&&(a+=pe.css(e,n+Oe[o],!0,i)),r?("content"===n&&(a-=pe.css(e,"padding"+Oe[o],!0,i)),"margin"!==n&&(a-=pe.css(e,"border"+Oe[o]+"Width",!0,i))):(a+=pe.css(e,"padding"+Oe[o],!0,i),"padding"!==n&&(a+=pe.css(e,"border"+Oe[o]+"Width",!0,i)));return a}function M(t,n,r){var i=!0,o="width"===n?t.offsetWidth:t.offsetHeight,a=ht(t),s=fe.boxSizing&&"border-box"===pe.css(t,"boxSizing",!1,a);if(re.msFullscreenElement&&e.top!==e&&t.getClientRects().length&&(o=Math.round(100*t.getBoundingClientRect()[n])),o<=0||null==o){if(o=gt(t,n,a),(o<0||null==o)&&(o=t.style[n]),ft.test(o))return o;i=s&&(fe.boxSizingReliable()||o===t.style[n]),o=parseFloat(o)||0}return o+F(t,n,r||(s?"border":"content"),i,a)+"px"}function O(e,t,n,r,i){return new O.prototype.init(e,t,n,r,i)}function R(){return e.setTimeout(function(){Nt=void 0}),Nt=pe.now()}function P(e,t){var n,r={height:e},i=0;for(t=t?1:0;i<4;i+=2-t)n=Oe[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function B(e,t,n){for(var r,i=($.tweeners[t]||[]).concat($.tweeners["*"]),o=0,a=i.length;o<a;o++)if(r=i[o].call(n,t,e))return r}function W(e,t,n){var r,i,o,a,s,u,l,c,f=this,d={},p=e.style,h=e.nodeType&&Re(e),g=pe._data(e,"fxshow");n.queue||(s=pe._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,u=s.empty.fire,s.empty.fire=function(){s.unqueued||u()}),s.unqueued++,f.always(function(){f.always(function(){s.unqueued--,pe.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],l=pe.css(e,"display"),c="none"===l?pe._data(e,"olddisplay")||j(e.nodeName):l,"inline"===c&&"none"===pe.css(e,"float")&&(fe.inlineBlockNeedsLayout&&"inline"!==j(e.nodeName)?p.zoom=1:p.display="inline-block")),n.overflow&&(p.overflow="hidden",fe.shrinkWrapBlocks()||f.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t)if(i=t[r],St.exec(i)){if(delete t[r],o=o||"toggle"===i,i===(h?"hide":"show")){if("show"!==i||!g||void 0===g[r])continue;h=!0}d[r]=g&&g[r]||pe.style(e,r)}else l=void 0;if(pe.isEmptyObject(d))"inline"===("none"===l?j(e.nodeName):l)&&(p.display=l);else{g?"hidden"in g&&(h=g.hidden):g=pe._data(e,"fxshow",{}),o&&(g.hidden=!h),h?pe(e).show():f.done(function(){pe(e).hide()}),f.done(function(){var t;pe._removeData(e,"fxshow");for(t in d)pe.style(e,t,d[t])});for(r in d)a=B(h?g[r]:0,r,f),r in g||(g[r]=a.start,h&&(a.end=a.start,a.start="width"===r||"height"===r?1:0))}}function I(e,t){var n,r,i,o,a;for(n in e)if(r=pe.camelCase(n),i=t[r],o=e[n],pe.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),a=pe.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}function $(e,t,n){var r,i,o=0,a=$.prefilters.length,s=pe.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;for(var t=Nt||R(),n=Math.max(0,l.startTime+l.duration-t),r=n/l.duration||0,o=1-r,a=0,u=l.tweens.length;a<u;a++)l.tweens[a].run(o);return s.notifyWith(e,[l,o,n]),o<1&&u?n:(s.resolveWith(e,[l]),!1)},l=s.promise({elem:e,props:pe.extend({},t),opts:pe.extend(!0,{specialEasing:{},easing:pe.easing._default},n),originalProperties:t,originalOptions:n,startTime:Nt||R(),duration:n.duration,tweens:[],createTween:function(t,n){var r=pe.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;n<r;n++)l.tweens[n].run(1);return t?(s.notifyWith(e,[l,1,0]),s.resolveWith(e,[l,t])):s.rejectWith(e,[l,t]),this}}),c=l.props;for(I(c,l.opts.specialEasing);o<a;o++)if(r=$.prefilters[o].call(l,e,c,l.opts))return pe.isFunction(r.stop)&&(pe._queueHooks(l.elem,l.opts.queue).stop=pe.proxy(r.stop,r)),r;return pe.map(c,B,l),pe.isFunction(l.opts.start)&&l.opts.start.call(e,l),pe.fx.timer(pe.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}function z(e){return pe.attr(e,"class")||""}function X(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(De)||[];if(pe.isFunction(n))for(;r=o[i++];)"+"===r.charAt(0)?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function U(e,t,n,r){function i(s){var u;return o[s]=!0,pe.each(e[s]||[],function(e,s){var l=s(t,n,r);return"string"!=typeof l||a||o[l]?a?!(u=l):void 0:(t.dataTypes.unshift(l),i(l),!1)}),u}var o={},a=e===Qt;return i(t.dataTypes[0])||!o["*"]&&i("*")}function V(e,t){var n,r,i=pe.ajaxSettings.flatOptions||{};for(r in t)void 0!==t[r]&&((i[r]?e:n||(n={}))[r]=t[r]);return n&&pe.extend(!0,e,n),e}function Y(e,t,n){for(var r,i,o,a,s=e.contents,u=e.dataTypes;"*"===u[0];)u.shift(),void 0===i&&(i=e.mimeType||t.getResponseHeader("Content-Type"));if(i)for(a in s)if(s[a]&&s[a].test(i)){u.unshift(a);break}if(u[0]in n)o=u[0];else{for(a in n){if(!u[0]||e.converters[a+" "+u[0]]){o=a;break}r||(r=a)}o=o||r}if(o)return o!==u[0]&&u.unshift(o),n[o]}function J(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];for(o=c.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(a=l[u+" "+o]||l["* "+o],!a)for(i in l)if(s=i.split(" "),s[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){a===!0?a=l[i]:l[i]!==!0&&(o=s[0],c.unshift(s[1]));break}if(a!==!0)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(f){return{state:"parsererror",error:a?f:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}function G(e){return e.style&&e.style.display||pe.css(e,"display")}function K(e){for(;e&&1===e.nodeType;){if("none"===G(e)||"hidden"===e.type)return!0;e=e.parentNode}return!1}function Q(e,t,n,r){var i;if(pe.isArray(t))pe.each(t,function(t,i){n||rn.test(e)?r(e,i):Q(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==pe.type(t))r(e,t);else for(i in t)Q(e+"["+i+"]",t[i],n,r)}function Z(){try{return new e.XMLHttpRequest}catch(t){}}function ee(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function te(e){return pe.isWindow(e)?e:9===e.nodeType&&(e.defaultView||e.parentWindow)}var ne=[],re=e.document,ie=ne.slice,oe=ne.concat,ae=ne.push,se=ne.indexOf,ue={},le=ue.toString,ce=ue.hasOwnProperty,fe={},de="1.12.3",pe=function(e,t){return new pe.fn.init(e,t)},he=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,ge=/^-ms-/,me=/-([\da-z])/gi,ye=function(e,t){return t.toUpperCase()};pe.fn=pe.prototype={jquery:de,constructor:pe,selector:"",length:0,toArray:function(){return ie.call(this)},get:function(e){return null!=e?e<0?this[e+this.length]:this[e]:ie.call(this)},pushStack:function(e){var t=pe.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e){return pe.each(this,e)},map:function(e){return this.pushStack(pe.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(ie.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n<t?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:ae,sort:ne.sort,splice:ne.splice},pe.extend=pe.fn.extend=function(){var e,t,n,r,i,o,a=arguments[0]||{},s=1,u=arguments.length,l=!1;for("boolean"==typeof a&&(l=a,a=arguments[s]||{},s++),"object"==typeof a||pe.isFunction(a)||(a={}),s===u&&(a=this,s--);s<u;s++)if(null!=(i=arguments[s]))for(r in i)e=a[r],n=i[r],a!==n&&(l&&n&&(pe.isPlainObject(n)||(t=pe.isArray(n)))?(t?(t=!1,o=e&&pe.isArray(e)?e:[]):o=e&&pe.isPlainObject(e)?e:{},a[r]=pe.extend(l,o,n)):void 0!==n&&(a[r]=n));return a},pe.extend({expando:"jQuery"+(de+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isFunction:function(e){return"function"===pe.type(e)},isArray:Array.isArray||function(e){return"array"===pe.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){var t=e&&e.toString();return!pe.isArray(e)&&t-parseFloat(t)+1>=0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},isPlainObject:function(e){var t;if(!e||"object"!==pe.type(e)||e.nodeType||pe.isWindow(e))return!1;try{if(e.constructor&&!ce.call(e,"constructor")&&!ce.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}if(!fe.ownFirst)for(t in e)return ce.call(e,t);for(t in e);return void 0===t||ce.call(e,t)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?ue[le.call(e)]||"object":typeof e},globalEval:function(t){t&&pe.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(ge,"ms-").replace(me,ye)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t){var r,i=0;if(n(e))for(r=e.length;i<r&&t.call(e[i],i,e[i])!==!1;i++);else for(i in e)if(t.call(e[i],i,e[i])===!1)break;return e},trim:function(e){return null==e?"":(e+"").replace(he,"")},makeArray:function(e,t){var r=t||[];return null!=e&&(n(Object(e))?pe.merge(r,"string"==typeof e?[e]:e):ae.call(r,e)),r},inArray:function(e,t,n){var r;if(t){if(se)return se.call(t,e,n);for(r=t.length,n=n?n<0?Math.max(0,r+n):n:0;n<r;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;r<n;)e[i++]=t[r++];if(n!==n)for(;void 0!==t[r];)e[i++]=t[r++];return e.length=i,e},grep:function(e,t,n){for(var r,i=[],o=0,a=e.length,s=!n;o<a;o++)r=!t(e[o],o),r!==s&&i.push(e[o]);return i},map:function(e,t,r){var i,o,a=0,s=[];if(n(e))for(i=e.length;a<i;a++)o=t(e[a],a,r),null!=o&&s.push(o);else for(a in e)o=t(e[a],a,r),null!=o&&s.push(o);return oe.apply([],s)},guid:1,proxy:function(e,t){var n,r,i;if("string"==typeof t&&(i=e[t],t=e,e=i),pe.isFunction(e))return n=ie.call(arguments,2),r=function(){return e.apply(t||this,n.concat(ie.call(arguments)))},r.guid=e.guid=e.guid||pe.guid++,r},now:function(){return+new Date},support:fe}),"function"==typeof Symbol&&(pe.fn[Symbol.iterator]=ne[Symbol.iterator]),pe.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){ue["[object "+t+"]"]=t.toLowerCase()});var ve=function(e){function t(e,t,n,r){var i,o,a,s,u,l,f,p,h=t&&t.ownerDocument,g=t?t.nodeType:9;if(n=n||[],"string"!=typeof e||!e||1!==g&&9!==g&&11!==g)return n;if(!r&&((t?t.ownerDocument||t:B)!==H&&L(t),t=t||H,_)){if(11!==g&&(l=ye.exec(e)))if(i=l[1]){if(9===g){if(!(a=t.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(h&&(a=h.getElementById(i))&&R(t,a)&&a.id===i)return n.push(a),n}else{if(l[2])return Q.apply(n,t.getElementsByTagName(e)),n;if((i=l[3])&&w.getElementsByClassName&&t.getElementsByClassName)return Q.apply(n,t.getElementsByClassName(i)),n}if(w.qsa&&!X[e+" "]&&(!F||!F.test(e))){if(1!==g)h=t,p=e;else if("object"!==t.nodeName.toLowerCase()){for((s=t.getAttribute("id"))?s=s.replace(xe,"\\$&"):t.setAttribute("id",s=P),f=N(e),o=f.length,u=de.test(s)?"#"+s:"[id='"+s+"']";o--;)f[o]=u+" "+d(f[o]);p=f.join(","),h=ve.test(e)&&c(t.parentNode)||t}if(p)try{return Q.apply(n,h.querySelectorAll(p)),n}catch(m){}finally{s===P&&t.removeAttribute("id")}}}return S(e.replace(se,"$1"),t,n,r)}function n(){function e(n,r){return t.push(n+" ")>T.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[P]=!0,e}function i(e){var t=H.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),r=n.length;r--;)T.attrHandle[n[r]]=t}function a(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||V)-(~e.sourceIndex||V);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function s(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function u(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function l(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function c(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function f(){}function d(e){for(var t=0,n=e.length,r="";t<n;t++)r+=e[t].value;return r}function p(e,t,n){var r=t.dir,i=n&&"parentNode"===r,o=I++;return t.first?function(t,n,o){for(;t=t[r];)if(1===t.nodeType||i)return e(t,n,o)}:function(t,n,a){var s,u,l,c=[W,o];if(a){for(;t=t[r];)if((1===t.nodeType||i)&&e(t,n,a))return!0}else for(;t=t[r];)if(1===t.nodeType||i){if(l=t[P]||(t[P]={}),u=l[t.uniqueID]||(l[t.uniqueID]={}),(s=u[r])&&s[0]===W&&s[1]===o)return c[2]=s[2];if(u[r]=c,c[2]=e(t,n,a))return!0}}}function h(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function g(e,n,r){for(var i=0,o=n.length;i<o;i++)t(e,n[i],r);return r}function m(e,t,n,r,i){for(var o,a=[],s=0,u=e.length,l=null!=t;s<u;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),l&&t.push(s)));return a}function y(e,t,n,i,o,a){return i&&!i[P]&&(i=y(i)),o&&!o[P]&&(o=y(o,a)),r(function(r,a,s,u){var l,c,f,d=[],p=[],h=a.length,y=r||g(t||"*",s.nodeType?[s]:s,[]),v=!e||!r&&t?y:m(y,d,e,s,u),x=n?o||(r?e:h||i)?[]:a:v;if(n&&n(v,x,s,u),i)for(l=m(x,p),i(l,[],s,u),c=l.length;c--;)(f=l[c])&&(x[p[c]]=!(v[p[c]]=f));if(r){if(o||e){if(o){for(l=[],c=x.length;c--;)(f=x[c])&&l.push(v[c]=f);o(null,x=[],l,u)}for(c=x.length;c--;)(f=x[c])&&(l=o?ee(r,f):d[c])>-1&&(r[l]=!(a[l]=f))}}else x=m(x===a?x.splice(h,x.length):x),o?o(null,a,x,u):Q.apply(a,x)})}function v(e){for(var t,n,r,i=e.length,o=T.relative[e[0].type],a=o||T.relative[" "],s=o?1:0,u=p(function(e){return e===t},a,!0),l=p(function(e){return ee(t,e)>-1},a,!0),c=[function(e,n,r){var i=!o&&(r||n!==A)||((t=n).nodeType?u(e,n,r):l(e,n,r));return t=null,i}];s<i;s++)if(n=T.relative[e[s].type])c=[p(h(c),n)];else{if(n=T.filter[e[s].type].apply(null,e[s].matches),n[P]){for(r=++s;r<i&&!T.relative[e[r].type];r++);return y(s>1&&h(c),s>1&&d(e.slice(0,s-1).concat({value:" "===e[s-2].type?"*":""})).replace(se,"$1"),n,s<r&&v(e.slice(s,r)),r<i&&v(e=e.slice(r)),r<i&&d(e))}c.push(n)}return h(c)}function x(e,n){var i=n.length>0,o=e.length>0,a=function(r,a,s,u,l){var c,f,d,p=0,h="0",g=r&&[],y=[],v=A,x=r||o&&T.find.TAG("*",l),b=W+=null==v?1:Math.random()||.1,w=x.length;for(l&&(A=a===H||a||l);h!==w&&null!=(c=x[h]);h++){if(o&&c){for(f=0,a||c.ownerDocument===H||(L(c),s=!_);d=e[f++];)if(d(c,a||H,s)){u.push(c);break}l&&(W=b)}i&&((c=!d&&c)&&p--,r&&g.push(c))}if(p+=h,i&&h!==p){for(f=0;d=n[f++];)d(g,y,a,s);if(r){if(p>0)for(;h--;)g[h]||y[h]||(y[h]=G.call(u));y=m(y)}Q.apply(u,y),l&&!r&&y.length>0&&p+n.length>1&&t.uniqueSort(u)}return l&&(W=b,A=v),g};return i?r(a):a}var b,w,T,C,E,N,k,S,A,D,j,L,H,q,_,F,M,O,R,P="sizzle"+1*new Date,B=e.document,W=0,I=0,$=n(),z=n(),X=n(),U=function(e,t){return e===t&&(j=!0),0},V=1<<31,Y={}.hasOwnProperty,J=[],G=J.pop,K=J.push,Q=J.push,Z=J.slice,ee=function(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1},te="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",ne="[\\x20\\t\\r\\n\\f]",re="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",ie="\\["+ne+"*("+re+")(?:"+ne+"*([*^$|!~]?=)"+ne+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+re+"))|)"+ne+"*\\]",oe=":("+re+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+ie+")*)|.*)\\)|)",ae=new RegExp(ne+"+","g"),se=new RegExp("^"+ne+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ne+"+$","g"),ue=new RegExp("^"+ne+"*,"+ne+"*"),le=new RegExp("^"+ne+"*([>+~]|"+ne+")"+ne+"*"),ce=new RegExp("="+ne+"*([^\\]'\"]*?)"+ne+"*\\]","g"),fe=new RegExp(oe),de=new RegExp("^"+re+"$"),pe={ID:new RegExp("^#("+re+")"),CLASS:new RegExp("^\\.("+re+")"),TAG:new RegExp("^("+re+"|[*])"),ATTR:new RegExp("^"+ie),PSEUDO:new RegExp("^"+oe),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ne+"*(even|odd|(([+-]|)(\\d*)n|)"+ne+"*(?:([+-]|)"+ne+"*(\\d+)|))"+ne+"*\\)|)","i"),bool:new RegExp("^(?:"+te+")$","i"),needsContext:new RegExp("^"+ne+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ne+"*((?:-\\d)?\\d*)"+ne+"*\\)|)(?=[^-]|$)","i")},he=/^(?:input|select|textarea|button)$/i,ge=/^h\d$/i,me=/^[^{]+\{\s*\[native \w/,ye=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ve=/[+~]/,xe=/'|\\/g,be=new RegExp("\\\\([\\da-f]{1,6}"+ne+"?|("+ne+")|.)","ig"),we=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},Te=function(){L()};try{Q.apply(J=Z.call(B.childNodes),B.childNodes),J[B.childNodes.length].nodeType}catch(Ce){Q={apply:J.length?function(e,t){K.apply(e,Z.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}w=t.support={},E=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},L=t.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:B;return r!==H&&9===r.nodeType&&r.documentElement?(H=r,q=H.documentElement,_=!E(H),(n=H.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",Te,!1):n.attachEvent&&n.attachEvent("onunload",Te)),w.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),w.getElementsByTagName=i(function(e){return e.appendChild(H.createComment("")),!e.getElementsByTagName("*").length}),w.getElementsByClassName=me.test(H.getElementsByClassName),w.getById=i(function(e){return q.appendChild(e).id=P,!H.getElementsByName||!H.getElementsByName(P).length}),w.getById?(T.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&_){var n=t.getElementById(e);return n?[n]:[]}},T.filter.ID=function(e){var t=e.replace(be,we);return function(e){return e.getAttribute("id")===t}}):(delete T.find.ID,T.filter.ID=function(e){var t=e.replace(be,we);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}}),T.find.TAG=w.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):w.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},T.find.CLASS=w.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&_)return t.getElementsByClassName(e)},M=[],F=[],(w.qsa=me.test(H.querySelectorAll))&&(i(function(e){q.appendChild(e).innerHTML="<a id='"+P+"'></a><select id='"+P+"-\r\\' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&F.push("[*^$]="+ne+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||F.push("\\["+ne+"*(?:value|"+te+")"),e.querySelectorAll("[id~="+P+"-]").length||F.push("~="),e.querySelectorAll(":checked").length||F.push(":checked"),e.querySelectorAll("a#"+P+"+*").length||F.push(".#.+[+~]")}),i(function(e){var t=H.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&F.push("name"+ne+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||F.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),F.push(",.*:")})),(w.matchesSelector=me.test(O=q.matches||q.webkitMatchesSelector||q.mozMatchesSelector||q.oMatchesSelector||q.msMatchesSelector))&&i(function(e){w.disconnectedMatch=O.call(e,"div"),O.call(e,"[s!='']:x"),M.push("!=",oe)}),F=F.length&&new RegExp(F.join("|")),M=M.length&&new RegExp(M.join("|")),t=me.test(q.compareDocumentPosition),R=t||me.test(q.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},U=t?function(e,t){if(e===t)return j=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n?n:(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!w.sortDetached&&t.compareDocumentPosition(e)===n?e===H||e.ownerDocument===B&&R(B,e)?-1:t===H||t.ownerDocument===B&&R(B,t)?1:D?ee(D,e)-ee(D,t):0:4&n?-1:1)}:function(e,t){if(e===t)return j=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,s=[e],u=[t];if(!i||!o)return e===H?-1:t===H?1:i?-1:o?1:D?ee(D,e)-ee(D,t):0;if(i===o)return a(e,t);for(n=e;n=n.parentNode;)s.unshift(n);for(n=t;n=n.parentNode;)u.unshift(n);for(;s[r]===u[r];)r++;return r?a(s[r],u[r]):s[r]===B?-1:u[r]===B?1:0},H):H},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==H&&L(e),n=n.replace(ce,"='$1']"),w.matchesSelector&&_&&!X[n+" "]&&(!M||!M.test(n))&&(!F||!F.test(n)))try{var r=O.call(e,n);if(r||w.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(i){}return t(n,H,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==H&&L(e),R(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==H&&L(e);var n=T.attrHandle[t.toLowerCase()],r=n&&Y.call(T.attrHandle,t.toLowerCase())?n(e,t,!_):void 0;return void 0!==r?r:w.attributes||!_?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],r=0,i=0;if(j=!w.detectDuplicates,D=!w.sortStable&&e.slice(0),e.sort(U),j){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return D=null,e},C=t.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=C(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=C(t);return n},T=t.selectors={cacheLength:50,createPseudo:r,match:pe,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(be,we),e[3]=(e[3]||e[4]||e[5]||"").replace(be,we),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return pe.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&fe.test(n)&&(t=N(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(be,we).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=$[e+" "];return t||(t=new RegExp("(^|"+ne+")"+e+"("+ne+"|$)"))&&$(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,r){return function(i){var o=t.attr(i,e);return null==o?"!="===n:!n||(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o.replace(ae," ")+" ").indexOf(r)>-1:"|="===n&&(o===r||o.slice(0,r.length+1)===r+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,d,p,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!u&&!s,x=!1;if(m){if(o){for(;g;){for(d=t;d=d[g];)if(s?d.nodeName.toLowerCase()===y:1===d.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){for(d=m,f=d[P]||(d[P]={}),c=f[d.uniqueID]||(f[d.uniqueID]={}),
+l=c[e]||[],p=l[0]===W&&l[1],x=p&&l[2],d=p&&m.childNodes[p];d=++p&&d&&d[g]||(x=p=0)||h.pop();)if(1===d.nodeType&&++x&&d===t){c[e]=[W,p,x];break}}else if(v&&(d=t,f=d[P]||(d[P]={}),c=f[d.uniqueID]||(f[d.uniqueID]={}),l=c[e]||[],p=l[0]===W&&l[1],x=p),x===!1)for(;(d=++p&&d&&d[g]||(x=p=0)||h.pop())&&((s?d.nodeName.toLowerCase()!==y:1!==d.nodeType)||!++x||(v&&(f=d[P]||(d[P]={}),c=f[d.uniqueID]||(f[d.uniqueID]={}),c[e]=[W,x]),d!==t)););return x-=i,x===r||x%r===0&&x/r>=0}}},PSEUDO:function(e,n){var i,o=T.pseudos[e]||T.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return o[P]?o(n):o.length>1?(i=[e,e,"",n],T.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,t){for(var r,i=o(e,n),a=i.length;a--;)r=ee(e,i[a]),e[r]=!(t[r]=i[a])}):function(e){return o(e,0,i)}):o}},pseudos:{not:r(function(e){var t=[],n=[],i=k(e.replace(se,"$1"));return i[P]?r(function(e,t,n,r){for(var o,a=i(e,null,r,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),t[0]=null,!n.pop()}}),has:r(function(e){return function(n){return t(e,n).length>0}}),contains:r(function(e){return e=e.replace(be,we),function(t){return(t.textContent||t.innerText||C(t)).indexOf(e)>-1}}),lang:r(function(e){return de.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(be,we).toLowerCase(),function(t){var n;do if(n=_?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===q},focus:function(e){return e===H.activeElement&&(!H.hasFocus||H.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!T.pseudos.empty(e)},header:function(e){return ge.test(e.nodeName)},input:function(e){return he.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:l(function(){return[0]}),last:l(function(e,t){return[t-1]}),eq:l(function(e,t,n){return[n<0?n+t:n]}),even:l(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:l(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:l(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:l(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}},T.pseudos.nth=T.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})T.pseudos[b]=s(b);for(b in{submit:!0,reset:!0})T.pseudos[b]=u(b);return f.prototype=T.filters=T.pseudos,T.setFilters=new f,N=t.tokenize=function(e,n){var r,i,o,a,s,u,l,c=z[e+" "];if(c)return n?0:c.slice(0);for(s=e,u=[],l=T.preFilter;s;){r&&!(i=ue.exec(s))||(i&&(s=s.slice(i[0].length)||s),u.push(o=[])),r=!1,(i=le.exec(s))&&(r=i.shift(),o.push({value:r,type:i[0].replace(se," ")}),s=s.slice(r.length));for(a in T.filter)!(i=pe[a].exec(s))||l[a]&&!(i=l[a](i))||(r=i.shift(),o.push({value:r,type:a,matches:i}),s=s.slice(r.length));if(!r)break}return n?s.length:s?t.error(e):z(e,u).slice(0)},k=t.compile=function(e,t){var n,r=[],i=[],o=X[e+" "];if(!o){for(t||(t=N(e)),n=t.length;n--;)o=v(t[n]),o[P]?r.push(o):i.push(o);o=X(e,x(i,r)),o.selector=e}return o},S=t.select=function(e,t,n,r){var i,o,a,s,u,l="function"==typeof e&&e,f=!r&&N(e=l.selector||e);if(n=n||[],1===f.length){if(o=f[0]=f[0].slice(0),o.length>2&&"ID"===(a=o[0]).type&&w.getById&&9===t.nodeType&&_&&T.relative[o[1].type]){if(t=(T.find.ID(a.matches[0].replace(be,we),t)||[])[0],!t)return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=pe.needsContext.test(e)?0:o.length;i--&&(a=o[i],!T.relative[s=a.type]);)if((u=T.find[s])&&(r=u(a.matches[0].replace(be,we),ve.test(o[0].type)&&c(t.parentNode)||t))){if(o.splice(i,1),e=r.length&&d(o),!e)return Q.apply(n,r),n;break}}return(l||k(e,f))(r,t,!_,n,!t||ve.test(e)&&c(t.parentNode)||t),n},w.sortStable=P.split("").sort(U).join("")===P,w.detectDuplicates=!!j,L(),w.sortDetached=i(function(e){return 1&e.compareDocumentPosition(H.createElement("div"))}),i(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),w.attributes&&i(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),i(function(e){return null==e.getAttribute("disabled")})||o(te,function(e,t,n){var r;if(!n)return e[t]===!0?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),t}(e);pe.find=ve,pe.expr=ve.selectors,pe.expr[":"]=pe.expr.pseudos,pe.uniqueSort=pe.unique=ve.uniqueSort,pe.text=ve.getText,pe.isXMLDoc=ve.isXML,pe.contains=ve.contains;var xe=function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&pe(e).is(n))break;r.push(e)}return r},be=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},we=pe.expr.match.needsContext,Te=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,Ce=/^.[^:#\[\.,]*$/;pe.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?pe.find.matchesSelector(r,e)?[r]:[]:pe.find.matches(e,pe.grep(t,function(e){return 1===e.nodeType}))},pe.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(pe(e).filter(function(){for(t=0;t<i;t++)if(pe.contains(r[t],this))return!0}));for(t=0;t<i;t++)pe.find(e,r[t],n);return n=this.pushStack(i>1?pe.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},filter:function(e){return this.pushStack(r(this,e||[],!1))},not:function(e){return this.pushStack(r(this,e||[],!0))},is:function(e){return!!r(this,"string"==typeof e&&we.test(e)?pe(e):e||[],!1).length}});var Ee,Ne=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,ke=pe.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||Ee,"string"==typeof e){if(r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:Ne.exec(e),!r||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof pe?t[0]:t,pe.merge(this,pe.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:re,!0)),Te.test(r[1])&&pe.isPlainObject(t))for(r in t)pe.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}if(i=re.getElementById(r[2]),i&&i.parentNode){if(i.id!==r[2])return Ee.find(e);this.length=1,this[0]=i}return this.context=re,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):pe.isFunction(e)?"undefined"!=typeof n.ready?n.ready(e):e(pe):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),pe.makeArray(e,this))};ke.prototype=pe.fn,Ee=pe(re);var Se=/^(?:parents|prev(?:Until|All))/,Ae={children:!0,contents:!0,next:!0,prev:!0};pe.fn.extend({has:function(e){var t,n=pe(e,this),r=n.length;return this.filter(function(){for(t=0;t<r;t++)if(pe.contains(this,n[t]))return!0})},closest:function(e,t){for(var n,r=0,i=this.length,o=[],a=we.test(e)||"string"!=typeof e?pe(e,t||this.context):0;r<i;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&pe.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?pe.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?pe.inArray(this[0],pe(e)):pe.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(pe.uniqueSort(pe.merge(this.get(),pe(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),pe.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return xe(e,"parentNode")},parentsUntil:function(e,t,n){return xe(e,"parentNode",n)},next:function(e){return i(e,"nextSibling")},prev:function(e){return i(e,"previousSibling")},nextAll:function(e){return xe(e,"nextSibling")},prevAll:function(e){return xe(e,"previousSibling")},nextUntil:function(e,t,n){return xe(e,"nextSibling",n)},prevUntil:function(e,t,n){return xe(e,"previousSibling",n)},siblings:function(e){return be((e.parentNode||{}).firstChild,e)},children:function(e){return be(e.firstChild)},contents:function(e){return pe.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:pe.merge([],e.childNodes)}},function(e,t){pe.fn[e]=function(n,r){var i=pe.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=pe.filter(r,i)),this.length>1&&(Ae[e]||(i=pe.uniqueSort(i)),Se.test(e)&&(i=i.reverse())),this.pushStack(i)}});var De=/\S+/g;pe.Callbacks=function(e){e="string"==typeof e?o(e):pe.extend({},e);var t,n,r,i,a=[],s=[],u=-1,l=function(){for(i=e.once,r=t=!0;s.length;u=-1)for(n=s.shift();++u<a.length;)a[u].apply(n[0],n[1])===!1&&e.stopOnFalse&&(u=a.length,n=!1);e.memory||(n=!1),t=!1,i&&(a=n?[]:"")},c={add:function(){return a&&(n&&!t&&(u=a.length-1,s.push(n)),function r(t){pe.each(t,function(t,n){pe.isFunction(n)?e.unique&&c.has(n)||a.push(n):n&&n.length&&"string"!==pe.type(n)&&r(n)})}(arguments),n&&!t&&l()),this},remove:function(){return pe.each(arguments,function(e,t){for(var n;(n=pe.inArray(t,a,n))>-1;)a.splice(n,1),n<=u&&u--}),this},has:function(e){return e?pe.inArray(e,a)>-1:a.length>0},empty:function(){return a&&(a=[]),this},disable:function(){return i=s=[],a=n="",this},disabled:function(){return!a},lock:function(){return i=!0,n||c.disable(),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=n||[],n=[e,n.slice?n.slice():n],s.push(n),t||l()),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},pe.extend({Deferred:function(e){var t=[["resolve","done",pe.Callbacks("once memory"),"resolved"],["reject","fail",pe.Callbacks("once memory"),"rejected"],["notify","progress",pe.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return pe.Deferred(function(n){pe.each(t,function(t,o){var a=pe.isFunction(e[t])&&e[t];i[o[1]](function(){var e=a&&a.apply(this,arguments);e&&pe.isFunction(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[o[0]+"With"](this===r?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?pe.extend(e,r):r}},i={};return r.pipe=r.then,pe.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t,n,r,i=0,o=ie.call(arguments),a=o.length,s=1!==a||e&&pe.isFunction(e.promise)?a:0,u=1===s?e:pe.Deferred(),l=function(e,n,r){return function(i){n[e]=this,r[e]=arguments.length>1?ie.call(arguments):i,r===t?u.notifyWith(n,r):--s||u.resolveWith(n,r)}};if(a>1)for(t=new Array(a),n=new Array(a),r=new Array(a);i<a;i++)o[i]&&pe.isFunction(o[i].promise)?o[i].promise().progress(l(i,n,t)).done(l(i,r,o)).fail(u.reject):--s;return s||u.resolveWith(r,o),u.promise()}});var je;pe.fn.ready=function(e){return pe.ready.promise().done(e),this},pe.extend({isReady:!1,readyWait:1,holdReady:function(e){e?pe.readyWait++:pe.ready(!0)},ready:function(e){(e===!0?--pe.readyWait:pe.isReady)||(pe.isReady=!0,e!==!0&&--pe.readyWait>0||(je.resolveWith(re,[pe]),pe.fn.triggerHandler&&(pe(re).triggerHandler("ready"),pe(re).off("ready"))))}}),pe.ready.promise=function(t){if(!je)if(je=pe.Deferred(),"complete"===re.readyState||"loading"!==re.readyState&&!re.documentElement.doScroll)e.setTimeout(pe.ready);else if(re.addEventListener)re.addEventListener("DOMContentLoaded",s),e.addEventListener("load",s);else{re.attachEvent("onreadystatechange",s),e.attachEvent("onload",s);var n=!1;try{n=null==e.frameElement&&re.documentElement}catch(r){}n&&n.doScroll&&!function i(){if(!pe.isReady){try{n.doScroll("left")}catch(t){return e.setTimeout(i,50)}a(),pe.ready()}}()}return je.promise(t)},pe.ready.promise();var Le;for(Le in pe(fe))break;fe.ownFirst="0"===Le,fe.inlineBlockNeedsLayout=!1,pe(function(){var e,t,n,r;n=re.getElementsByTagName("body")[0],n&&n.style&&(t=re.createElement("div"),r=re.createElement("div"),r.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(r).appendChild(t),"undefined"!=typeof t.style.zoom&&(t.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",fe.inlineBlockNeedsLayout=e=3===t.offsetWidth,e&&(n.style.zoom=1)),n.removeChild(r))}),function(){var e=re.createElement("div");fe.deleteExpando=!0;try{delete e.test}catch(t){fe.deleteExpando=!1}e=null}();var He=function(e){var t=pe.noData[(e.nodeName+" ").toLowerCase()],n=+e.nodeType||1;return(1===n||9===n)&&(!t||t!==!0&&e.getAttribute("classid")===t)},qe=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,_e=/([A-Z])/g;pe.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return e=e.nodeType?pe.cache[e[pe.expando]]:e[pe.expando],!!e&&!l(e)},data:function(e,t,n){return c(e,t,n)},removeData:function(e,t){return f(e,t)},_data:function(e,t,n){return c(e,t,n,!0)},_removeData:function(e,t){return f(e,t,!0)}}),pe.fn.extend({data:function(e,t){var n,r,i,o=this[0],a=o&&o.attributes;if(void 0===e){if(this.length&&(i=pe.data(o),1===o.nodeType&&!pe._data(o,"parsedAttrs"))){for(n=a.length;n--;)a[n]&&(r=a[n].name,0===r.indexOf("data-")&&(r=pe.camelCase(r.slice(5)),u(o,r,i[r])));pe._data(o,"parsedAttrs",!0)}return i}return"object"==typeof e?this.each(function(){pe.data(this,e)}):arguments.length>1?this.each(function(){pe.data(this,e,t)}):o?u(o,e,pe.data(o,e)):void 0},removeData:function(e){return this.each(function(){pe.removeData(this,e)})}}),pe.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=pe._data(e,t),n&&(!r||pe.isArray(n)?r=pe._data(e,t,pe.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=pe.queue(e,t),r=n.length,i=n.shift(),o=pe._queueHooks(e,t),a=function(){pe.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return pe._data(e,n)||pe._data(e,n,{empty:pe.Callbacks("once memory").add(function(){pe._removeData(e,t+"queue"),pe._removeData(e,n)})})}}),pe.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?pe.queue(this[0],e):void 0===t?this:this.each(function(){var n=pe.queue(this,e,t);pe._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&pe.dequeue(this,e)})},dequeue:function(e){return this.each(function(){pe.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=pe.Deferred(),o=this,a=this.length,s=function(){--r||i.resolveWith(o,[o])};for("string"!=typeof e&&(t=e,e=void 0),e=e||"fx";a--;)n=pe._data(o[a],e+"queueHooks"),n&&n.empty&&(r++,n.empty.add(s));return s(),i.promise(t)}}),function(){var e;fe.shrinkWrapBlocks=function(){if(null!=e)return e;e=!1;var t,n,r;return n=re.getElementsByTagName("body")[0],n&&n.style?(t=re.createElement("div"),r=re.createElement("div"),r.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",n.appendChild(r).appendChild(t),"undefined"!=typeof t.style.zoom&&(t.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1",t.appendChild(re.createElement("div")).style.width="5px",e=3!==t.offsetWidth),n.removeChild(r),e):void 0}}();var Fe=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,Me=new RegExp("^(?:([+-])=|)("+Fe+")([a-z%]*)$","i"),Oe=["Top","Right","Bottom","Left"],Re=function(e,t){return e=t||e,"none"===pe.css(e,"display")||!pe.contains(e.ownerDocument,e)},Pe=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===pe.type(n)){i=!0;for(s in n)Pe(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,pe.isFunction(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(pe(e),n)})),t))for(;s<u;s++)t(e[s],n,a?r:r.call(e[s],s,t(e[s],n)));return i?e:l?t.call(e):u?t(e[0],n):o},Be=/^(?:checkbox|radio)$/i,We=/<([\w:-]+)/,Ie=/^$|\/(?:java|ecma)script/i,$e=/^\s+/,ze="abbr|article|aside|audio|bdi|canvas|data|datalist|details|dialog|figcaption|figure|footer|header|hgroup|main|mark|meter|nav|output|picture|progress|section|summary|template|time|video";!function(){var e=re.createElement("div"),t=re.createDocumentFragment(),n=re.createElement("input");e.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",fe.leadingWhitespace=3===e.firstChild.nodeType,fe.tbody=!e.getElementsByTagName("tbody").length,fe.htmlSerialize=!!e.getElementsByTagName("link").length,fe.html5Clone="<:nav></:nav>"!==re.createElement("nav").cloneNode(!0).outerHTML,n.type="checkbox",n.checked=!0,t.appendChild(n),fe.appendChecked=n.checked,e.innerHTML="<textarea>x</textarea>",fe.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue,t.appendChild(e),n=re.createElement("input"),n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),e.appendChild(n),fe.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,fe.noCloneEvent=!!e.addEventListener,e[pe.expando]=1,fe.attributes=!e.getAttribute(pe.expando)}();var Xe={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:fe.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]};Xe.optgroup=Xe.option,Xe.tbody=Xe.tfoot=Xe.colgroup=Xe.caption=Xe.thead,Xe.th=Xe.td;var Ue=/<|&#?\w+;/,Ve=/<tbody/i;!function(){var t,n,r=re.createElement("div");for(t in{submit:!0,change:!0,focusin:!0})n="on"+t,(fe[t]=n in e)||(r.setAttribute(n,"t"),fe[t]=r.attributes[n].expando===!1);r=null}();var Ye=/^(?:input|select|textarea)$/i,Je=/^key/,Ge=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ke=/^(?:focusinfocus|focusoutblur)$/,Qe=/^([^.]*)(?:\.(.+)|)/;pe.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,d,p,h,g,m=pe._data(e);if(m){for(n.handler&&(u=n,n=u.handler,i=u.selector),n.guid||(n.guid=pe.guid++),(a=m.events)||(a=m.events={}),(c=m.handle)||(c=m.handle=function(e){return"undefined"==typeof pe||e&&pe.event.triggered===e.type?void 0:pe.event.dispatch.apply(c.elem,arguments)},c.elem=e),t=(t||"").match(De)||[""],s=t.length;s--;)o=Qe.exec(t[s])||[],p=g=o[1],h=(o[2]||"").split(".").sort(),p&&(l=pe.event.special[p]||{},p=(i?l.delegateType:l.bindType)||p,l=pe.event.special[p]||{},f=pe.extend({type:p,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&pe.expr.match.needsContext.test(i),namespace:h.join(".")},u),(d=a[p])||(d=a[p]=[],d.delegateCount=0,l.setup&&l.setup.call(e,r,h,c)!==!1||(e.addEventListener?e.addEventListener(p,c,!1):e.attachEvent&&e.attachEvent("on"+p,c))),l.add&&(l.add.call(e,f),f.handler.guid||(f.handler.guid=n.guid)),i?d.splice(d.delegateCount++,0,f):d.push(f),pe.event.global[p]=!0);e=null}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,d,p,h,g,m=pe.hasData(e)&&pe._data(e);if(m&&(c=m.events)){for(t=(t||"").match(De)||[""],l=t.length;l--;)if(s=Qe.exec(t[l])||[],p=g=s[1],h=(s[2]||"").split(".").sort(),p){for(f=pe.event.special[p]||{},p=(r?f.delegateType:f.bindType)||p,d=c[p]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),u=o=d.length;o--;)a=d[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(d.splice(o,1),a.selector&&d.delegateCount--,f.remove&&f.remove.call(e,a));u&&!d.length&&(f.teardown&&f.teardown.call(e,h,m.handle)!==!1||pe.removeEvent(e,p,m.handle),delete c[p])}else for(p in c)pe.event.remove(e,p+t[l],n,r,!0);pe.isEmptyObject(c)&&(delete m.handle,pe._removeData(e,"events"))}},trigger:function(t,n,r,i){var o,a,s,u,l,c,f,d=[r||re],p=ce.call(t,"type")?t.type:t,h=ce.call(t,"namespace")?t.namespace.split("."):[];if(s=c=r=r||re,3!==r.nodeType&&8!==r.nodeType&&!Ke.test(p+pe.event.triggered)&&(p.indexOf(".")>-1&&(h=p.split("."),p=h.shift(),h.sort()),a=p.indexOf(":")<0&&"on"+p,t=t[pe.expando]?t:new pe.Event(p,"object"==typeof t&&t),t.isTrigger=i?2:3,t.namespace=h.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=r),n=null==n?[t]:pe.makeArray(n,[t]),l=pe.event.special[p]||{},i||!l.trigger||l.trigger.apply(r,n)!==!1)){if(!i&&!l.noBubble&&!pe.isWindow(r)){for(u=l.delegateType||p,Ke.test(u+p)||(s=s.parentNode);s;s=s.parentNode)d.push(s),c=s;c===(r.ownerDocument||re)&&d.push(c.defaultView||c.parentWindow||e)}for(f=0;(s=d[f++])&&!t.isPropagationStopped();)t.type=f>1?u:l.bindType||p,o=(pe._data(s,"events")||{})[t.type]&&pe._data(s,"handle"),o&&o.apply(s,n),o=a&&s[a],o&&o.apply&&He(s)&&(t.result=o.apply(s,n),t.result===!1&&t.preventDefault());if(t.type=p,!i&&!t.isDefaultPrevented()&&(!l._default||l._default.apply(d.pop(),n)===!1)&&He(r)&&a&&r[p]&&!pe.isWindow(r)){c=r[a],c&&(r[a]=null),pe.event.triggered=p;try{r[p]()}catch(g){}pe.event.triggered=void 0,c&&(r[a]=c)}return t.result}},dispatch:function(e){e=pe.event.fix(e);var t,n,r,i,o,a=[],s=ie.call(arguments),u=(pe._data(this,"events")||{})[e.type]||[],l=pe.event.special[e.type]||{};if(s[0]=e,e.delegateTarget=this,!l.preDispatch||l.preDispatch.call(this,e)!==!1){for(a=pe.event.handlers.call(this,e,u),t=0;(i=a[t++])&&!e.isPropagationStopped();)for(e.currentTarget=i.elem,n=0;(o=i.handlers[n++])&&!e.isImmediatePropagationStopped();)e.rnamespace&&!e.rnamespace.test(o.namespace)||(e.handleObj=o,e.data=o.data,r=((pe.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,s),void 0!==r&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()));return l.postDispatch&&l.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,i,o,a=[],s=t.delegateCount,u=e.target;if(s&&u.nodeType&&("click"!==e.type||isNaN(e.button)||e.button<1))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(r=[],n=0;n<s;n++)o=t[n],i=o.selector+" ",void 0===r[i]&&(r[i]=o.needsContext?pe(i,this).index(u)>-1:pe.find(i,this,null,[u]).length),r[i]&&r.push(o);r.length&&a.push({elem:u,handlers:r})}return s<t.length&&a.push({elem:this,handlers:t.slice(s)}),a},fix:function(e){if(e[pe.expando])return e;var t,n,r,i=e.type,o=e,a=this.fixHooks[i];for(a||(this.fixHooks[i]=a=Ge.test(i)?this.mouseHooks:Je.test(i)?this.keyHooks:{}),r=a.props?this.props.concat(a.props):this.props,e=new pe.Event(o),t=r.length;t--;)n=r[t],e[n]=o[n];return e.target||(e.target=o.srcElement||re),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,a.filter?a.filter(e,o):e},props:"altKey bubbles cancelable ctrlKey currentTarget detail eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,t){var n,r,i,o=t.button,a=t.fromElement;return null==e.pageX&&null!=t.clientX&&(r=e.target.ownerDocument||re,i=r.documentElement,n=r.body,e.pageX=t.clientX+(i&&i.scrollLeft||n&&n.scrollLeft||0)-(i&&i.clientLeft||n&&n.clientLeft||0),e.pageY=t.clientY+(i&&i.scrollTop||n&&n.scrollTop||0)-(i&&i.clientTop||n&&n.clientTop||0)),!e.relatedTarget&&a&&(e.relatedTarget=a===e.target?t.toElement:a),e.which||void 0===o||(e.which=1&o?1:2&o?3:4&o?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==b()&&this.focus)try{return this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){if(this===b()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if(pe.nodeName(this,"input")&&"checkbox"===this.type&&this.click)return this.click(),!1},_default:function(e){return pe.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){void 0!==e.result&&e.originalEvent&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n){var r=pe.extend(new pe.Event,n,{type:e,isSimulated:!0});pe.event.trigger(r,null,t),r.isDefaultPrevented()&&n.preventDefault()}},pe.removeEvent=re.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n)}:function(e,t,n){var r="on"+t;e.detachEvent&&("undefined"==typeof e[r]&&(e[r]=null),e.detachEvent(r,n))},pe.Event=function(e,t){return this instanceof pe.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||void 0===e.defaultPrevented&&e.returnValue===!1?v:x):this.type=e,t&&pe.extend(this,t),this.timeStamp=e&&e.timeStamp||pe.now(),void(this[pe.expando]=!0)):new pe.Event(e,t)},pe.Event.prototype={constructor:pe.Event,isDefaultPrevented:x,isPropagationStopped:x,isImmediatePropagationStopped:x,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=v,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=v,e&&!this.isSimulated&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=v,e&&e.stopImmediatePropagation&&e.stopImmediatePropagation(),this.stopPropagation()}},pe.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e,t){pe.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return i&&(i===r||pe.contains(r,i))||(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),fe.submit||(pe.event.special.submit={setup:function(){return!pe.nodeName(this,"form")&&void pe.event.add(this,"click._submit keypress._submit",function(e){var t=e.target,n=pe.nodeName(t,"input")||pe.nodeName(t,"button")?pe.prop(t,"form"):void 0;n&&!pe._data(n,"submit")&&(pe.event.add(n,"submit._submit",function(e){e._submitBubble=!0}),pe._data(n,"submit",!0))})},postDispatch:function(e){e._submitBubble&&(delete e._submitBubble,this.parentNode&&!e.isTrigger&&pe.event.simulate("submit",this.parentNode,e))},teardown:function(){return!pe.nodeName(this,"form")&&void pe.event.remove(this,"._submit")}}),fe.change||(pe.event.special.change={setup:function(){return Ye.test(this.nodeName)?("checkbox"!==this.type&&"radio"!==this.type||(pe.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._justChanged=!0)}),pe.event.add(this,"click._change",function(e){this._justChanged&&!e.isTrigger&&(this._justChanged=!1),pe.event.simulate("change",this,e)})),!1):void pe.event.add(this,"beforeactivate._change",function(e){var t=e.target;Ye.test(t.nodeName)&&!pe._data(t,"change")&&(pe.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||pe.event.simulate("change",this.parentNode,e)}),pe._data(t,"change",!0))})},handle:function(e){var t=e.target;if(this!==t||e.isSimulated||e.isTrigger||"radio"!==t.type&&"checkbox"!==t.type)return e.handleObj.handler.apply(this,arguments)},teardown:function(){return pe.event.remove(this,"._change"),!Ye.test(this.nodeName)}}),fe.focusin||pe.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){pe.event.simulate(t,e.target,pe.event.fix(e))};pe.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=pe._data(r,t);i||r.addEventListener(e,n,!0),pe._data(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=pe._data(r,t)-1;i?pe._data(r,t,i):(r.removeEventListener(e,n,!0),pe._removeData(r,t))}}}),pe.fn.extend({on:function(e,t,n,r){return w(this,e,t,n,r)},one:function(e,t,n,r){return w(this,e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,pe(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return t!==!1&&"function"!=typeof t||(n=t,t=void 0),n===!1&&(n=x),this.each(function(){pe.event.remove(this,e,n,t)})},trigger:function(e,t){return this.each(function(){pe.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return pe.event.trigger(e,t,n,!0)}});var Ze=/ jQuery\d+="(?:null|\d+)"/g,et=new RegExp("<(?:"+ze+")[\\s/>]","i"),tt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,nt=/<script|<style|<link/i,rt=/checked\s*(?:[^=]|=\s*.checked.)/i,it=/^true\/(.*)/,ot=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,at=p(re),st=at.appendChild(re.createElement("div"));pe.extend({htmlPrefilter:function(e){return e.replace(tt,"<$1></$2>")},clone:function(e,t,n){var r,i,o,a,s,u=pe.contains(e.ownerDocument,e);if(fe.html5Clone||pe.isXMLDoc(e)||!et.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(st.innerHTML=e.outerHTML,st.removeChild(o=st.firstChild)),!(fe.noCloneEvent&&fe.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||pe.isXMLDoc(e)))for(r=h(o),s=h(e),a=0;null!=(i=s[a]);++a)r[a]&&k(i,r[a]);if(t)if(n)for(s=s||h(e),r=r||h(o),a=0;null!=(i=s[a]);a++)N(i,r[a]);else N(e,o);return r=h(o,"script"),r.length>0&&g(r,!u&&h(e,"script")),r=s=i=null,o},cleanData:function(e,t){for(var n,r,i,o,a=0,s=pe.expando,u=pe.cache,l=fe.attributes,c=pe.event.special;null!=(n=e[a]);a++)if((t||He(n))&&(i=n[s],o=i&&u[i])){if(o.events)for(r in o.events)c[r]?pe.event.remove(n,r):pe.removeEvent(n,r,o.handle);u[i]&&(delete u[i],l||"undefined"==typeof n.removeAttribute?n[s]=void 0:n.removeAttribute(s),ne.push(i))}}}),pe.fn.extend({domManip:S,detach:function(e){return A(this,e,!0)},remove:function(e){return A(this,e)},text:function(e){return Pe(this,function(e){return void 0===e?pe.text(this):this.empty().append((this[0]&&this[0].ownerDocument||re).createTextNode(e))},null,e,arguments.length)},append:function(){return S(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=T(this,e);t.appendChild(e)}})},prepend:function(){return S(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=T(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return S(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return S(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++){for(1===e.nodeType&&pe.cleanData(h(e,!1));e.firstChild;)e.removeChild(e.firstChild);e.options&&pe.nodeName(e,"select")&&(e.options.length=0)}return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return pe.clone(this,e,t)})},html:function(e){return Pe(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e)return 1===t.nodeType?t.innerHTML.replace(Ze,""):void 0;if("string"==typeof e&&!nt.test(e)&&(fe.htmlSerialize||!et.test(e))&&(fe.leadingWhitespace||!$e.test(e))&&!Xe[(We.exec(e)||["",""])[1].toLowerCase()]){e=pe.htmlPrefilter(e);try{for(;n<r;n++)t=this[n]||{},1===t.nodeType&&(pe.cleanData(h(t,!1)),t.innerHTML=e);t=0}catch(i){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=[];return S(this,arguments,function(t){var n=this.parentNode;pe.inArray(this,e)<0&&(pe.cleanData(h(this)),
+n&&n.replaceChild(t,this))},e)}}),pe.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){pe.fn[e]=function(e){for(var n,r=0,i=[],o=pe(e),a=o.length-1;r<=a;r++)n=r===a?this:this.clone(!0),pe(o[r])[t](n),ae.apply(i,n.get());return this.pushStack(i)}});var ut,lt={HTML:"block",BODY:"block"},ct=/^margin/,ft=new RegExp("^("+Fe+")(?!px)[a-z%]+$","i"),dt=function(e,t,n,r){var i,o,a={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=a[o];return i},pt=re.documentElement;!function(){function t(){var t,c,f=re.documentElement;f.appendChild(u),l.style.cssText="-webkit-box-sizing:border-box;box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",n=i=s=!1,r=a=!0,e.getComputedStyle&&(c=e.getComputedStyle(l),n="1%"!==(c||{}).top,s="2px"===(c||{}).marginLeft,i="4px"===(c||{width:"4px"}).width,l.style.marginRight="50%",r="4px"===(c||{marginRight:"4px"}).marginRight,t=l.appendChild(re.createElement("div")),t.style.cssText=l.style.cssText="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0",t.style.marginRight=t.style.width="0",l.style.width="1px",a=!parseFloat((e.getComputedStyle(t)||{}).marginRight),l.removeChild(t)),l.style.display="none",o=0===l.getClientRects().length,o&&(l.style.display="",l.innerHTML="<table><tr><td></td><td>t</td></tr></table>",t=l.getElementsByTagName("td"),t[0].style.cssText="margin:0;border:0;padding:0;display:none",o=0===t[0].offsetHeight,o&&(t[0].style.display="",t[1].style.display="none",o=0===t[0].offsetHeight)),f.removeChild(u)}var n,r,i,o,a,s,u=re.createElement("div"),l=re.createElement("div");l.style&&(l.style.cssText="float:left;opacity:.5",fe.opacity="0.5"===l.style.opacity,fe.cssFloat=!!l.style.cssFloat,l.style.backgroundClip="content-box",l.cloneNode(!0).style.backgroundClip="",fe.clearCloneStyle="content-box"===l.style.backgroundClip,u=re.createElement("div"),u.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",l.innerHTML="",u.appendChild(l),fe.boxSizing=""===l.style.boxSizing||""===l.style.MozBoxSizing||""===l.style.WebkitBoxSizing,pe.extend(fe,{reliableHiddenOffsets:function(){return null==n&&t(),o},boxSizingReliable:function(){return null==n&&t(),i},pixelMarginRight:function(){return null==n&&t(),r},pixelPosition:function(){return null==n&&t(),n},reliableMarginRight:function(){return null==n&&t(),a},reliableMarginLeft:function(){return null==n&&t(),s}}))}();var ht,gt,mt=/^(top|right|bottom|left)$/;e.getComputedStyle?(ht=function(t){var n=t.ownerDocument.defaultView;return n&&n.opener||(n=e),n.getComputedStyle(t)},gt=function(e,t,n){var r,i,o,a,s=e.style;return n=n||ht(e),a=n?n.getPropertyValue(t)||n[t]:void 0,""!==a&&void 0!==a||pe.contains(e.ownerDocument,e)||(a=pe.style(e,t)),n&&!fe.pixelMarginRight()&&ft.test(a)&&ct.test(t)&&(r=s.width,i=s.minWidth,o=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=n.width,s.width=r,s.minWidth=i,s.maxWidth=o),void 0===a?a:a+""}):pt.currentStyle&&(ht=function(e){return e.currentStyle},gt=function(e,t,n){var r,i,o,a,s=e.style;return n=n||ht(e),a=n?n[t]:void 0,null==a&&s&&s[t]&&(a=s[t]),ft.test(a)&&!mt.test(t)&&(r=s.left,i=e.runtimeStyle,o=i&&i.left,o&&(i.left=e.currentStyle.left),s.left="fontSize"===t?"1em":a,a=s.pixelLeft+"px",s.left=r,o&&(i.left=o)),void 0===a?a:a+""||"auto"});var yt=/alpha\([^)]*\)/i,vt=/opacity\s*=\s*([^)]*)/i,xt=/^(none|table(?!-c[ea]).+)/,bt=new RegExp("^("+Fe+")(.*)$","i"),wt={position:"absolute",visibility:"hidden",display:"block"},Tt={letterSpacing:"0",fontWeight:"400"},Ct=["Webkit","O","Moz","ms"],Et=re.createElement("div").style;pe.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=gt(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":fe.cssFloat?"cssFloat":"styleFloat"},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=pe.camelCase(t),u=e.style;if(t=pe.cssProps[s]||(pe.cssProps[s]=H(s)||s),a=pe.cssHooks[t]||pe.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:u[t];if(o=typeof n,"string"===o&&(i=Me.exec(n))&&i[1]&&(n=d(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(pe.cssNumber[s]?"":"px")),fe.clearCloneStyle||""!==n||0!==t.indexOf("background")||(u[t]="inherit"),!(a&&"set"in a&&void 0===(n=a.set(e,n,r)))))try{u[t]=n}catch(l){}}},css:function(e,t,n,r){var i,o,a,s=pe.camelCase(t);return t=pe.cssProps[s]||(pe.cssProps[s]=H(s)||s),a=pe.cssHooks[t]||pe.cssHooks[s],a&&"get"in a&&(o=a.get(e,!0,n)),void 0===o&&(o=gt(e,t,r)),"normal"===o&&t in Tt&&(o=Tt[t]),""===n||n?(i=parseFloat(o),n===!0||isFinite(i)?i||0:o):o}}),pe.each(["height","width"],function(e,t){pe.cssHooks[t]={get:function(e,n,r){if(n)return xt.test(pe.css(e,"display"))&&0===e.offsetWidth?dt(e,wt,function(){return M(e,t,r)}):M(e,t,r)},set:function(e,n,r){var i=r&&ht(e);return _(e,n,r?F(e,t,r,fe.boxSizing&&"border-box"===pe.css(e,"boxSizing",!1,i),i):0)}}}),fe.opacity||(pe.cssHooks.opacity={get:function(e,t){return vt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=pe.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===pe.trim(o.replace(yt,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=yt.test(o)?o.replace(yt,i):o+" "+i)}}),pe.cssHooks.marginRight=L(fe.reliableMarginRight,function(e,t){if(t)return dt(e,{display:"inline-block"},gt,[e,"marginRight"])}),pe.cssHooks.marginLeft=L(fe.reliableMarginLeft,function(e,t){if(t)return(parseFloat(gt(e,"marginLeft"))||(pe.contains(e.ownerDocument,e)?e.getBoundingClientRect().left-dt(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}):0))+"px"}),pe.each({margin:"",padding:"",border:"Width"},function(e,t){pe.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+Oe[r]+t]=o[r]||o[r-2]||o[0];return i}},ct.test(e)||(pe.cssHooks[e+t].set=_)}),pe.fn.extend({css:function(e,t){return Pe(this,function(e,t,n){var r,i,o={},a=0;if(pe.isArray(t)){for(r=ht(e),i=t.length;a<i;a++)o[t[a]]=pe.css(e,t[a],!1,r);return o}return void 0!==n?pe.style(e,t,n):pe.css(e,t)},e,t,arguments.length>1)},show:function(){return q(this,!0)},hide:function(){return q(this)},toggle:function(e){return"boolean"==typeof e?e?this.show():this.hide():this.each(function(){Re(this)?pe(this).show():pe(this).hide()})}}),pe.Tween=O,O.prototype={constructor:O,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||pe.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(pe.cssNumber[n]?"":"px")},cur:function(){var e=O.propHooks[this.prop];return e&&e.get?e.get(this):O.propHooks._default.get(this)},run:function(e){var t,n=O.propHooks[this.prop];return this.options.duration?this.pos=t=pe.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):O.propHooks._default.set(this),this}},O.prototype.init.prototype=O.prototype,O.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=pe.css(e.elem,e.prop,""),t&&"auto"!==t?t:0)},set:function(e){pe.fx.step[e.prop]?pe.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[pe.cssProps[e.prop]]&&!pe.cssHooks[e.prop]?e.elem[e.prop]=e.now:pe.style(e.elem,e.prop,e.now+e.unit)}}},O.propHooks.scrollTop=O.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},pe.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},pe.fx=O.prototype.init,pe.fx.step={};var Nt,kt,St=/^(?:toggle|show|hide)$/,At=/queueHooks$/;pe.Animation=pe.extend($,{tweeners:{"*":[function(e,t){var n=this.createTween(e,t);return d(n.elem,e,Me.exec(t),n),n}]},tweener:function(e,t){pe.isFunction(e)?(t=e,e=["*"]):e=e.match(De);for(var n,r=0,i=e.length;r<i;r++)n=e[r],$.tweeners[n]=$.tweeners[n]||[],$.tweeners[n].unshift(t)},prefilters:[W],prefilter:function(e,t){t?$.prefilters.unshift(e):$.prefilters.push(e)}}),pe.speed=function(e,t,n){var r=e&&"object"==typeof e?pe.extend({},e):{complete:n||!n&&t||pe.isFunction(e)&&e,duration:e,easing:n&&t||t&&!pe.isFunction(t)&&t};return r.duration=pe.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in pe.fx.speeds?pe.fx.speeds[r.duration]:pe.fx.speeds._default,null!=r.queue&&r.queue!==!0||(r.queue="fx"),r.old=r.complete,r.complete=function(){pe.isFunction(r.old)&&r.old.call(this),r.queue&&pe.dequeue(this,r.queue)},r},pe.fn.extend({fadeTo:function(e,t,n,r){return this.filter(Re).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=pe.isEmptyObject(e),o=pe.speed(t,n,r),a=function(){var t=$(this,pe.extend({},e),o);(i||pe._data(this,"finish"))&&t.stop(!0)};return a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,t,n){var r=function(e){var t=e.stop;delete e.stop,t(n)};return"string"!=typeof e&&(n=t,t=e,e=void 0),t&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,i=null!=e&&e+"queueHooks",o=pe.timers,a=pe._data(this);if(i)a[i]&&a[i].stop&&r(a[i]);else for(i in a)a[i]&&a[i].stop&&At.test(i)&&r(a[i]);for(i=o.length;i--;)o[i].elem!==this||null!=e&&o[i].queue!==e||(o[i].anim.stop(n),t=!1,o.splice(i,1));!t&&n||pe.dequeue(this,e)})},finish:function(e){return e!==!1&&(e=e||"fx"),this.each(function(){var t,n=pe._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=pe.timers,a=r?r.length:0;for(n.finish=!0,pe.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0),o.splice(t,1));for(t=0;t<a;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete n.finish})}}),pe.each(["toggle","show","hide"],function(e,t){var n=pe.fn[t];pe.fn[t]=function(e,r,i){return null==e||"boolean"==typeof e?n.apply(this,arguments):this.animate(P(t,!0),e,r,i)}}),pe.each({slideDown:P("show"),slideUp:P("hide"),slideToggle:P("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){pe.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),pe.timers=[],pe.fx.tick=function(){var e,t=pe.timers,n=0;for(Nt=pe.now();n<t.length;n++)e=t[n],e()||t[n]!==e||t.splice(n--,1);t.length||pe.fx.stop(),Nt=void 0},pe.fx.timer=function(e){pe.timers.push(e),e()?pe.fx.start():pe.timers.pop()},pe.fx.interval=13,pe.fx.start=function(){kt||(kt=e.setInterval(pe.fx.tick,pe.fx.interval))},pe.fx.stop=function(){e.clearInterval(kt),kt=null},pe.fx.speeds={slow:600,fast:200,_default:400},pe.fn.delay=function(t,n){return t=pe.fx?pe.fx.speeds[t]||t:t,n=n||"fx",this.queue(n,function(n,r){var i=e.setTimeout(n,t);r.stop=function(){e.clearTimeout(i)}})},function(){var e,t=re.createElement("input"),n=re.createElement("div"),r=re.createElement("select"),i=r.appendChild(re.createElement("option"));n=re.createElement("div"),n.setAttribute("className","t"),n.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",e=n.getElementsByTagName("a")[0],t.setAttribute("type","checkbox"),n.appendChild(t),e=n.getElementsByTagName("a")[0],e.style.cssText="top:1px",fe.getSetAttribute="t"!==n.className,fe.style=/top/.test(e.getAttribute("style")),fe.hrefNormalized="/a"===e.getAttribute("href"),fe.checkOn=!!t.value,fe.optSelected=i.selected,fe.enctype=!!re.createElement("form").enctype,r.disabled=!0,fe.optDisabled=!i.disabled,t=re.createElement("input"),t.setAttribute("value",""),fe.input=""===t.getAttribute("value"),t.value="t",t.setAttribute("type","radio"),fe.radioValue="t"===t.value}();var Dt=/\r/g,jt=/[\x20\t\r\n\f]+/g;pe.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=pe.isFunction(e),this.each(function(n){var i;1===this.nodeType&&(i=r?e.call(this,n,pe(this).val()):e,null==i?i="":"number"==typeof i?i+="":pe.isArray(i)&&(i=pe.map(i,function(e){return null==e?"":e+""})),t=pe.valHooks[this.type]||pe.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return t=pe.valHooks[i.type]||pe.valHooks[i.nodeName.toLowerCase()],t&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:(n=i.value,"string"==typeof n?n.replace(Dt,""):null==n?"":n)}}}),pe.extend({valHooks:{option:{get:function(e){var t=pe.find.attr(e,"value");return null!=t?t:pe.trim(pe.text(e)).replace(jt," ")}},select:{get:function(e){for(var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||i<0,a=o?null:[],s=o?i+1:r.length,u=i<0?s:o?i:0;u<s;u++)if(n=r[u],(n.selected||u===i)&&(fe.optDisabled?!n.disabled:null===n.getAttribute("disabled"))&&(!n.parentNode.disabled||!pe.nodeName(n.parentNode,"optgroup"))){if(t=pe(n).val(),o)return t;a.push(t)}return a},set:function(e,t){for(var n,r,i=e.options,o=pe.makeArray(t),a=i.length;a--;)if(r=i[a],pe.inArray(pe.valHooks.option.get(r),o)>-1)try{r.selected=n=!0}catch(s){r.scrollHeight}else r.selected=!1;return n||(e.selectedIndex=-1),i}}}}),pe.each(["radio","checkbox"],function(){pe.valHooks[this]={set:function(e,t){if(pe.isArray(t))return e.checked=pe.inArray(pe(e).val(),t)>-1}},fe.checkOn||(pe.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Lt,Ht,qt=pe.expr.attrHandle,_t=/^(?:checked|selected)$/i,Ft=fe.getSetAttribute,Mt=fe.input;pe.fn.extend({attr:function(e,t){return Pe(this,pe.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){pe.removeAttr(this,e)})}}),pe.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?pe.prop(e,t,n):(1===o&&pe.isXMLDoc(e)||(t=t.toLowerCase(),i=pe.attrHooks[t]||(pe.expr.match.bool.test(t)?Ht:Lt)),void 0!==n?null===n?void pe.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:(r=pe.find.attr(e,t),null==r?void 0:r))},attrHooks:{type:{set:function(e,t){if(!fe.radioValue&&"radio"===t&&pe.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(De);if(o&&1===e.nodeType)for(;n=o[i++];)r=pe.propFix[n]||n,pe.expr.match.bool.test(n)?Mt&&Ft||!_t.test(n)?e[r]=!1:e[pe.camelCase("default-"+n)]=e[r]=!1:pe.attr(e,n,""),e.removeAttribute(Ft?n:r)}}),Ht={set:function(e,t,n){return t===!1?pe.removeAttr(e,n):Mt&&Ft||!_t.test(n)?e.setAttribute(!Ft&&pe.propFix[n]||n,n):e[pe.camelCase("default-"+n)]=e[n]=!0,n}},pe.each(pe.expr.match.bool.source.match(/\w+/g),function(e,t){var n=qt[t]||pe.find.attr;Mt&&Ft||!_t.test(t)?qt[t]=function(e,t,r){var i,o;return r||(o=qt[t],qt[t]=i,i=null!=n(e,t,r)?t.toLowerCase():null,qt[t]=o),i}:qt[t]=function(e,t,n){if(!n)return e[pe.camelCase("default-"+t)]?t.toLowerCase():null}}),Mt&&Ft||(pe.attrHooks.value={set:function(e,t,n){return pe.nodeName(e,"input")?void(e.defaultValue=t):Lt&&Lt.set(e,t,n)}}),Ft||(Lt={set:function(e,t,n){var r=e.getAttributeNode(n);if(r||e.setAttributeNode(r=e.ownerDocument.createAttribute(n)),r.value=t+="","value"===n||t===e.getAttribute(n))return t}},qt.id=qt.name=qt.coords=function(e,t,n){var r;if(!n)return(r=e.getAttributeNode(t))&&""!==r.value?r.value:null},pe.valHooks.button={get:function(e,t){var n=e.getAttributeNode(t);if(n&&n.specified)return n.value},set:Lt.set},pe.attrHooks.contenteditable={set:function(e,t,n){Lt.set(e,""!==t&&t,n)}},pe.each(["width","height"],function(e,t){pe.attrHooks[t]={set:function(e,n){if(""===n)return e.setAttribute(t,"auto"),n}}})),fe.style||(pe.attrHooks.style={get:function(e){return e.style.cssText||void 0},set:function(e,t){return e.style.cssText=t+""}});var Ot=/^(?:input|select|textarea|button|object)$/i,Rt=/^(?:a|area)$/i;pe.fn.extend({prop:function(e,t){return Pe(this,pe.prop,e,t,arguments.length>1)},removeProp:function(e){return e=pe.propFix[e]||e,this.each(function(){try{this[e]=void 0,delete this[e]}catch(t){}})}}),pe.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&pe.isXMLDoc(e)||(t=pe.propFix[t]||t,i=pe.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=pe.find.attr(e,"tabindex");return t?parseInt(t,10):Ot.test(e.nodeName)||Rt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),fe.hrefNormalized||pe.each(["href","src"],function(e,t){pe.propHooks[t]={get:function(e){return e.getAttribute(t,4)}}}),fe.optSelected||(pe.propHooks.selected={get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),pe.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){pe.propFix[this.toLowerCase()]=this}),fe.enctype||(pe.propFix.enctype="encoding");var Pt=/[\t\r\n\f]/g;pe.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(pe.isFunction(e))return this.each(function(t){pe(this).addClass(e.call(this,t,z(this)))});if("string"==typeof e&&e)for(t=e.match(De)||[];n=this[u++];)if(i=z(n),r=1===n.nodeType&&(" "+i+" ").replace(Pt," ")){for(a=0;o=t[a++];)r.indexOf(" "+o+" ")<0&&(r+=o+" ");s=pe.trim(r),i!==s&&pe.attr(n,"class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(pe.isFunction(e))return this.each(function(t){pe(this).removeClass(e.call(this,t,z(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof e&&e)for(t=e.match(De)||[];n=this[u++];)if(i=z(n),r=1===n.nodeType&&(" "+i+" ").replace(Pt," ")){for(a=0;o=t[a++];)for(;r.indexOf(" "+o+" ")>-1;)r=r.replace(" "+o+" "," ");s=pe.trim(r),i!==s&&pe.attr(n,"class",s)}return this},toggleClass:function(e,t){var n=typeof e;return"boolean"==typeof t&&"string"===n?t?this.addClass(e):this.removeClass(e):pe.isFunction(e)?this.each(function(n){pe(this).toggleClass(e.call(this,n,z(this),t),t)}):this.each(function(){var t,r,i,o;if("string"===n)for(r=0,i=pe(this),o=e.match(De)||[];t=o[r++];)i.hasClass(t)?i.removeClass(t):i.addClass(t);else void 0!==e&&"boolean"!==n||(t=z(this),t&&pe._data(this,"__className__",t),pe.attr(this,"class",t||e===!1?"":pe._data(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;for(t=" "+e+" ";n=this[r++];)if(1===n.nodeType&&(" "+z(n)+" ").replace(Pt," ").indexOf(t)>-1)return!0;return!1}}),pe.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){pe.fn[t]=function(e,n){return arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),pe.fn.extend({hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}});var Bt=e.location,Wt=pe.now(),It=/\?/,$t=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;pe.parseJSON=function(t){if(e.JSON&&e.JSON.parse)return e.JSON.parse(t+"");var n,r=null,i=pe.trim(t+"");return i&&!pe.trim(i.replace($t,function(e,t,i,o){return n&&t&&(r=0),0===r?e:(n=i||t,r+=!o-!i,"")}))?Function("return "+i)():pe.error("Invalid JSON: "+t)},pe.parseXML=function(t){var n,r;if(!t||"string"!=typeof t)return null;try{e.DOMParser?(r=new e.DOMParser,n=r.parseFromString(t,"text/xml")):(n=new e.ActiveXObject("Microsoft.XMLDOM"),n.async="false",n.loadXML(t))}catch(i){n=void 0}return n&&n.documentElement&&!n.getElementsByTagName("parsererror").length||pe.error("Invalid XML: "+t),n};var zt=/#.*$/,Xt=/([?&])_=[^&]*/,Ut=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Vt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Yt=/^(?:GET|HEAD)$/,Jt=/^\/\//,Gt=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Kt={},Qt={},Zt="*/".concat("*"),en=Bt.href,tn=Gt.exec(en.toLowerCase())||[];pe.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:en,type:"GET",isLocal:Vt.test(tn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Zt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":pe.parseJSON,"text xml":pe.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?V(V(e,pe.ajaxSettings),t):V(pe.ajaxSettings,e)},ajaxPrefilter:X(Kt),ajaxTransport:X(Qt),ajax:function(t,n){function r(t,n,r,i){var o,f,v,x,w,C=n;2!==b&&(b=2,u&&e.clearTimeout(u),c=void 0,s=i||"",T.readyState=t>0?4:0,o=t>=200&&t<300||304===t,r&&(x=Y(d,T,r)),x=J(d,x,T,o),o?(d.ifModified&&(w=T.getResponseHeader("Last-Modified"),w&&(pe.lastModified[a]=w),w=T.getResponseHeader("etag"),w&&(pe.etag[a]=w)),204===t||"HEAD"===d.type?C="nocontent":304===t?C="notmodified":(C=x.state,f=x.data,v=x.error,o=!v)):(v=C,!t&&C||(C="error",t<0&&(t=0))),T.status=t,T.statusText=(n||C)+"",o?g.resolveWith(p,[f,C,T]):g.rejectWith(p,[T,C,v]),T.statusCode(y),y=void 0,l&&h.trigger(o?"ajaxSuccess":"ajaxError",[T,d,o?f:v]),m.fireWith(p,[T,C]),l&&(h.trigger("ajaxComplete",[T,d]),--pe.active||pe.event.trigger("ajaxStop")))}"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,d=pe.ajaxSetup({},n),p=d.context||d,h=d.context&&(p.nodeType||p.jquery)?pe(p):pe.event,g=pe.Deferred(),m=pe.Callbacks("once memory"),y=d.statusCode||{},v={},x={},b=0,w="canceled",T={readyState:0,getResponseHeader:function(e){var t;if(2===b){if(!f)for(f={};t=Ut.exec(s);)f[t[1].toLowerCase()]=t[2];t=f[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return 2===b?s:null},setRequestHeader:function(e,t){var n=e.toLowerCase();return b||(e=x[n]=x[n]||e,v[e]=t),this},overrideMimeType:function(e){return b||(d.mimeType=e),this},statusCode:function(e){var t;if(e)if(b<2)for(t in e)y[t]=[y[t],e[t]];else T.always(e[T.status]);return this},abort:function(e){var t=e||w;return c&&c.abort(t),r(0,t),this}};if(g.promise(T).complete=m.add,T.success=T.done,T.error=T.fail,d.url=((t||d.url||en)+"").replace(zt,"").replace(Jt,tn[1]+"//"),d.type=n.method||n.type||d.method||d.type,d.dataTypes=pe.trim(d.dataType||"*").toLowerCase().match(De)||[""],null==d.crossDomain&&(i=Gt.exec(d.url.toLowerCase()),d.crossDomain=!(!i||i[1]===tn[1]&&i[2]===tn[2]&&(i[3]||("http:"===i[1]?"80":"443"))===(tn[3]||("http:"===tn[1]?"80":"443")))),d.data&&d.processData&&"string"!=typeof d.data&&(d.data=pe.param(d.data,d.traditional)),U(Kt,d,n,T),2===b)return T;l=pe.event&&d.global,l&&0===pe.active++&&pe.event.trigger("ajaxStart"),d.type=d.type.toUpperCase(),d.hasContent=!Yt.test(d.type),a=d.url,d.hasContent||(d.data&&(a=d.url+=(It.test(a)?"&":"?")+d.data,delete d.data),d.cache===!1&&(d.url=Xt.test(a)?a.replace(Xt,"$1_="+Wt++):a+(It.test(a)?"&":"?")+"_="+Wt++)),d.ifModified&&(pe.lastModified[a]&&T.setRequestHeader("If-Modified-Since",pe.lastModified[a]),pe.etag[a]&&T.setRequestHeader("If-None-Match",pe.etag[a])),(d.data&&d.hasContent&&d.contentType!==!1||n.contentType)&&T.setRequestHeader("Content-Type",d.contentType),T.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+("*"!==d.dataTypes[0]?", "+Zt+"; q=0.01":""):d.accepts["*"]);for(o in d.headers)T.setRequestHeader(o,d.headers[o]);if(d.beforeSend&&(d.beforeSend.call(p,T,d)===!1||2===b))return T.abort();w="abort";for(o in{success:1,error:1,complete:1})T[o](d[o]);if(c=U(Qt,d,n,T)){if(T.readyState=1,l&&h.trigger("ajaxSend",[T,d]),2===b)return T;d.async&&d.timeout>0&&(u=e.setTimeout(function(){T.abort("timeout")},d.timeout));try{b=1,c.send(v,r)}catch(C){if(!(b<2))throw C;r(-1,C)}}else r(-1,"No Transport");return T},getJSON:function(e,t,n){return pe.get(e,t,n,"json")},getScript:function(e,t){return pe.get(e,void 0,t,"script")}}),pe.each(["get","post"],function(e,t){pe[t]=function(e,n,r,i){return pe.isFunction(n)&&(i=i||r,r=n,n=void 0),pe.ajax(pe.extend({url:e,type:t,dataType:i,data:n,success:r},pe.isPlainObject(e)&&e))}}),pe._evalUrl=function(e){return pe.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},pe.fn.extend({wrapAll:function(e){if(pe.isFunction(e))return this.each(function(t){pe(this).wrapAll(e.call(this,t))});if(this[0]){var t=pe(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstChild&&1===e.firstChild.nodeType;)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return pe.isFunction(e)?this.each(function(t){pe(this).wrapInner(e.call(this,t))}):this.each(function(){var t=pe(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=pe.isFunction(e);return this.each(function(n){pe(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){pe.nodeName(this,"body")||pe(this).replaceWith(this.childNodes)}).end()}}),pe.expr.filters.hidden=function(e){return fe.reliableHiddenOffsets()?e.offsetWidth<=0&&e.offsetHeight<=0&&!e.getClientRects().length:K(e)},pe.expr.filters.visible=function(e){return!pe.expr.filters.hidden(e)};var nn=/%20/g,rn=/\[\]$/,on=/\r?\n/g,an=/^(?:submit|button|image|reset|file)$/i,sn=/^(?:input|select|textarea|keygen)/i;pe.param=function(e,t){var n,r=[],i=function(e,t){t=pe.isFunction(t)?t():null==t?"":t,r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(void 0===t&&(t=pe.ajaxSettings&&pe.ajaxSettings.traditional),pe.isArray(e)||e.jquery&&!pe.isPlainObject(e))pe.each(e,function(){i(this.name,this.value)});else for(n in e)Q(n,e[n],t,i);return r.join("&").replace(nn,"+")},pe.fn.extend({serialize:function(){return pe.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=pe.prop(this,"elements");return e?pe.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!pe(this).is(":disabled")&&sn.test(this.nodeName)&&!an.test(e)&&(this.checked||!Be.test(e))}).map(function(e,t){var n=pe(this).val();return null==n?null:pe.isArray(n)?pe.map(n,function(e){return{name:t.name,value:e.replace(on,"\r\n")}}):{name:t.name,value:n.replace(on,"\r\n")}}).get()}}),pe.ajaxSettings.xhr=void 0!==e.ActiveXObject?function(){return this.isLocal?ee():re.documentMode>8?Z():/^(get|post|head|put|delete|options)$/i.test(this.type)&&Z()||ee()}:Z;var un=0,ln={},cn=pe.ajaxSettings.xhr();e.attachEvent&&e.attachEvent("onunload",function(){for(var e in ln)ln[e](void 0,!0)}),fe.cors=!!cn&&"withCredentials"in cn,cn=fe.ajax=!!cn,cn&&pe.ajaxTransport(function(t){if(!t.crossDomain||fe.cors){var n;return{send:function(r,i){var o,a=t.xhr(),s=++un;if(a.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(o in t.xhrFields)a[o]=t.xhrFields[o];t.mimeType&&a.overrideMimeType&&a.overrideMimeType(t.mimeType),t.crossDomain||r["X-Requested-With"]||(r["X-Requested-With"]="XMLHttpRequest");for(o in r)void 0!==r[o]&&a.setRequestHeader(o,r[o]+"");a.send(t.hasContent&&t.data||null),n=function(e,r){var o,u,l;if(n&&(r||4===a.readyState))if(delete ln[s],n=void 0,a.onreadystatechange=pe.noop,r)4!==a.readyState&&a.abort();else{l={},o=a.status,"string"==typeof a.responseText&&(l.text=a.responseText);try{u=a.statusText}catch(c){u=""}o||!t.isLocal||t.crossDomain?1223===o&&(o=204):o=l.text?200:404}l&&i(o,u,l,a.getAllResponseHeaders())},t.async?4===a.readyState?e.setTimeout(n):a.onreadystatechange=ln[s]=n:n()},abort:function(){n&&n(void 0,!0)}}}}),pe.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return pe.globalEval(e),e}}}),pe.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),pe.ajaxTransport("script",function(e){if(e.crossDomain){var t,n=re.head||pe("head")[0]||re.documentElement;return{send:function(r,i){t=re.createElement("script"),t.async=!0,e.scriptCharset&&(t.charset=e.scriptCharset),t.src=e.url,t.onload=t.onreadystatechange=function(e,n){(n||!t.readyState||/loaded|complete/.test(t.readyState))&&(t.onload=t.onreadystatechange=null,t.parentNode&&t.parentNode.removeChild(t),t=null,n||i(200,"success"))},n.insertBefore(t,n.firstChild)},abort:function(){t&&t.onload(void 0,!0)}}}});var fn=[],dn=/(=)\?(?=&|$)|\?\?/;pe.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=fn.pop()||pe.expando+"_"+Wt++;return this[e]=!0,e}}),pe.ajaxPrefilter("json jsonp",function(t,n,r){var i,o,a,s=t.jsonp!==!1&&(dn.test(t.url)?"url":"string"==typeof t.data&&0===(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&dn.test(t.data)&&"data");if(s||"jsonp"===t.dataTypes[0])return i=t.jsonpCallback=pe.isFunction(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,s?t[s]=t[s].replace(dn,"$1"+i):t.jsonp!==!1&&(t.url+=(It.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return a||pe.error(i+" was not called"),a[0]},t.dataTypes[0]="json",o=e[i],e[i]=function(){a=arguments},r.always(function(){void 0===o?pe(e).removeProp(i):e[i]=o,t[i]&&(t.jsonpCallback=n.jsonpCallback,fn.push(i)),a&&pe.isFunction(o)&&o(a[0]),a=o=void 0}),"script"}),pe.parseHTML=function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||re;var r=Te.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=y([e],t,i),i&&i.length&&pe(i).remove(),pe.merge([],r.childNodes))};var pn=pe.fn.load;return pe.fn.load=function(e,t,n){if("string"!=typeof e&&pn)return pn.apply(this,arguments);var r,i,o,a=this,s=e.indexOf(" ");return s>-1&&(r=pe.trim(e.slice(s,e.length)),e=e.slice(0,s)),pe.isFunction(t)?(n=t,t=void 0):t&&"object"==typeof t&&(i="POST"),a.length>0&&pe.ajax({url:e,type:i||"GET",dataType:"html",data:t}).done(function(e){o=arguments,a.html(r?pe("<div>").append(pe.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},pe.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){pe.fn[t]=function(e){return this.on(t,e)}}),pe.expr.filters.animated=function(e){return pe.grep(pe.timers,function(t){return e===t.elem}).length},pe.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l,c=pe.css(e,"position"),f=pe(e),d={};"static"===c&&(e.style.position="relative"),s=f.offset(),o=pe.css(e,"top"),u=pe.css(e,"left"),l=("absolute"===c||"fixed"===c)&&pe.inArray("auto",[o,u])>-1,l?(r=f.position(),a=r.top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),pe.isFunction(t)&&(t=t.call(e,n,pe.extend({},s))),null!=t.top&&(d.top=t.top-s.top+a),null!=t.left&&(d.left=t.left-s.left+i),"using"in t?t.using.call(e,d):f.css(d)}},pe.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){pe.offset.setOffset(this,e,t)});var t,n,r={top:0,left:0},i=this[0],o=i&&i.ownerDocument;if(o)return t=o.documentElement,pe.contains(t,i)?("undefined"!=typeof i.getBoundingClientRect&&(r=i.getBoundingClientRect()),n=te(o),{top:r.top+(n.pageYOffset||t.scrollTop)-(t.clientTop||0),left:r.left+(n.pageXOffset||t.scrollLeft)-(t.clientLeft||0)}):r},position:function(){if(this[0]){var e,t,n={top:0,left:0},r=this[0];return"fixed"===pe.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),pe.nodeName(e[0],"html")||(n=e.offset()),n.top+=pe.css(e[0],"borderTopWidth",!0),n.left+=pe.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-pe.css(r,"marginTop",!0),left:t.left-n.left-pe.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){
+for(var e=this.offsetParent;e&&!pe.nodeName(e,"html")&&"static"===pe.css(e,"position");)e=e.offsetParent;return e||pt})}}),pe.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n=/Y/.test(t);pe.fn[e]=function(r){return Pe(this,function(e,r,i){var o=te(e);return void 0===i?o?t in o?o[t]:o.document.documentElement[r]:e[r]:void(o?o.scrollTo(n?pe(o).scrollLeft():i,n?i:pe(o).scrollTop()):e[r]=i)},e,r,arguments.length,null)}}),pe.each(["top","left"],function(e,t){pe.cssHooks[t]=L(fe.pixelPosition,function(e,n){if(n)return n=gt(e,t),ft.test(n)?pe(e).position()[t]+"px":n})}),pe.each({Height:"height",Width:"width"},function(e,t){pe.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,r){pe.fn[r]=function(r,i){var o=arguments.length&&(n||"boolean"!=typeof r),a=n||(r===!0||i===!0?"margin":"border");return Pe(this,function(t,n,r){var i;return pe.isWindow(t)?t.document.documentElement["client"+e]:9===t.nodeType?(i=t.documentElement,Math.max(t.body["scroll"+e],i["scroll"+e],t.body["offset"+e],i["offset"+e],i["client"+e])):void 0===r?pe.css(t,n,a):pe.style(t,n,r,a)},t,o?r:void 0,o,null)}})}),pe.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}}),pe.fn.size=function(){return this.length},pe.fn.andSelf=pe.fn.addBack,layui.define(function(e){layui.$=pe,e("jquery",pe)}),pe});!function(e,t){"use strict";var i,n,a=e.layui&&layui.define,o={getPath:function(){var e=document.currentScript?document.currentScript.src:function(){for(var e,t=document.scripts,i=t.length-1,n=i;n>0;n--)if("interactive"===t[n].readyState){e=t[n].src;break}return e||t[i].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),config:{},end:{},minIndex:0,minLeft:[],btn:["&#x786E;&#x5B9A;","&#x53D6;&#x6D88;"],type:["dialog","page","iframe","loading","tips"],getStyle:function(t,i){var n=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return n[n.getPropertyValue?"getPropertyValue":"getAttribute"](i)},link:function(t,i,n){if(r.path){var a=document.getElementsByTagName("head")[0],s=document.createElement("link");"string"==typeof i&&(n=i);var l=(n||t).replace(/\.|\//g,""),f="layuicss-"+l,c=0;s.rel="stylesheet",s.href=r.path+t,s.id=f,document.getElementById(f)||a.appendChild(s),"function"==typeof i&&!function u(){return++c>80?e.console&&console.error("layer.css: Invalid"):void(1989===parseInt(o.getStyle(document.getElementById(f),"width"))?i():setTimeout(u,100))}()}}},r={v:"3.1.1",ie:function(){var t=navigator.userAgent.toLowerCase();return!!(e.ActiveXObject||"ActiveXObject"in e)&&((t.match(/msie\s(\d+)/)||[])[1]||"11")}(),index:e.layer&&e.layer.v?1e5:0,path:o.getPath,config:function(e,t){return e=e||{},r.cache=o.config=i.extend({},o.config,e),r.path=o.config.path||r.path,"string"==typeof e.extend&&(e.extend=[e.extend]),o.config.path&&r.ready(),e.extend?(a?layui.addcss("modules/layer/"+e.extend):o.link("theme/"+e.extend),this):this},ready:function(e){var t="layer",i="",n=(a?"modules/layer/":"theme/")+"default/layer.css?v="+r.v+i;return a?layui.addcss(n,e,t):o.link(n,e,t),this},alert:function(e,t,n){var a="function"==typeof t;return a&&(n=t),r.open(i.extend({content:e,yes:n},a?{}:t))},confirm:function(e,t,n,a){var s="function"==typeof t;return s&&(a=n,n=t),r.open(i.extend({content:e,btn:o.btn,yes:n,btn2:a},s?{}:t))},msg:function(e,n,a){var s="function"==typeof n,f=o.config.skin,c=(f?f+" "+f+"-msg":"")||"layui-layer-msg",u=l.anim.length-1;return s&&(a=n),r.open(i.extend({content:e,time:3e3,shade:!1,skin:c,title:!1,closeBtn:!1,btn:!1,resize:!1,end:a},s&&!o.config.skin?{skin:c+" layui-layer-hui",anim:u}:function(){return n=n||{},(n.icon===-1||n.icon===t&&!o.config.skin)&&(n.skin=c+" "+(n.skin||"layui-layer-hui")),n}()))},load:function(e,t){return r.open(i.extend({type:3,icon:e||0,resize:!1,shade:.01},t))},tips:function(e,t,n){return r.open(i.extend({type:4,content:[e,t],closeBtn:!1,time:3e3,shade:!1,resize:!1,fixed:!1,maxWidth:210},n))}},s=function(e){var t=this;t.index=++r.index,t.config=i.extend({},t.config,o.config,e),document.body?t.creat():setTimeout(function(){t.creat()},30)};s.pt=s.prototype;var l=["layui-layer",".layui-layer-title",".layui-layer-main",".layui-layer-dialog","layui-layer-iframe","layui-layer-content","layui-layer-btn","layui-layer-close"];l.anim=["layer-anim-00","layer-anim-01","layer-anim-02","layer-anim-03","layer-anim-04","layer-anim-05","layer-anim-06"],s.pt.config={type:0,shade:.3,fixed:!0,move:l[1],title:"&#x4FE1;&#x606F;",offset:"auto",area:"auto",closeBtn:1,time:0,zIndex:19891014,maxWidth:360,anim:0,isOutAnim:!0,icon:-1,moveType:1,resize:!0,scrollbar:!0,tips:2},s.pt.vessel=function(e,t){var n=this,a=n.index,r=n.config,s=r.zIndex+a,f="object"==typeof r.title,c=r.maxmin&&(1===r.type||2===r.type),u=r.title?'<div class="layui-layer-title" style="'+(f?r.title[1]:"")+'">'+(f?r.title[0]:r.title)+"</div>":"";return r.zIndex=s,t([r.shade?'<div class="layui-layer-shade" id="layui-layer-shade'+a+'" times="'+a+'" style="'+("z-index:"+(s-1)+"; ")+'"></div>':"",'<div class="'+l[0]+(" layui-layer-"+o.type[r.type])+(0!=r.type&&2!=r.type||r.shade?"":" layui-layer-border")+" "+(r.skin||"")+'" id="'+l[0]+a+'" type="'+o.type[r.type]+'" times="'+a+'" showtime="'+r.time+'" conType="'+(e?"object":"string")+'" style="z-index: '+s+"; width:"+r.area[0]+";height:"+r.area[1]+(r.fixed?"":";position:absolute;")+'">'+(e&&2!=r.type?"":u)+'<div id="'+(r.id||"")+'" class="layui-layer-content'+(0==r.type&&r.icon!==-1?" layui-layer-padding":"")+(3==r.type?" layui-layer-loading"+r.icon:"")+'">'+(0==r.type&&r.icon!==-1?'<i class="layui-layer-ico layui-layer-ico'+r.icon+'"></i>':"")+(1==r.type&&e?"":r.content||"")+'</div><span class="layui-layer-setwin">'+function(){var e=c?'<a class="layui-layer-min" href="javascript:;"><cite></cite></a><a class="layui-layer-ico layui-layer-max" href="javascript:;"></a>':"";return r.closeBtn&&(e+='<a class="layui-layer-ico '+l[7]+" "+l[7]+(r.title?r.closeBtn:4==r.type?"1":"2")+'" href="javascript:;"></a>'),e}()+"</span>"+(r.btn?function(){var e="";"string"==typeof r.btn&&(r.btn=[r.btn]);for(var t=0,i=r.btn.length;t<i;t++)e+='<a class="'+l[6]+t+'">'+r.btn[t]+"</a>";return'<div class="'+l[6]+" layui-layer-btn-"+(r.btnAlign||"")+'">'+e+"</div>"}():"")+(r.resize?'<span class="layui-layer-resize"></span>':"")+"</div>"],u,i('<div class="layui-layer-move"></div>')),n},s.pt.creat=function(){var e=this,t=e.config,a=e.index,s=t.content,f="object"==typeof s,c=i("body");if(!t.id||!i("#"+t.id)[0]){switch("string"==typeof t.area&&(t.area="auto"===t.area?["",""]:[t.area,""]),t.shift&&(t.anim=t.shift),6==r.ie&&(t.fixed=!1),t.type){case 0:t.btn="btn"in t?t.btn:o.btn[0],r.closeAll("dialog");break;case 2:var s=t.content=f?t.content:[t.content||"","auto"];t.content='<iframe scrolling="'+(t.content[1]||"auto")+'" allowtransparency="true" id="'+l[4]+a+'" name="'+l[4]+a+'" onload="this.className=\'\';" class="layui-layer-load" frameborder="0" src="'+t.content[0]+'"></iframe>';break;case 3:delete t.title,delete t.closeBtn,t.icon===-1&&0===t.icon,r.closeAll("loading");break;case 4:f||(t.content=[t.content,"body"]),t.follow=t.content[1],t.content=t.content[0]+'<i class="layui-layer-TipsG"></i>',delete t.title,t.tips="object"==typeof t.tips?t.tips:[t.tips,!0],t.tipsMore||r.closeAll("tips")}if(e.vessel(f,function(n,r,u){c.append(n[0]),f?function(){2==t.type||4==t.type?function(){i("body").append(n[1])}():function(){s.parents("."+l[0])[0]||(s.data("display",s.css("display")).show().addClass("layui-layer-wrap").wrap(n[1]),i("#"+l[0]+a).find("."+l[5]).before(r))}()}():c.append(n[1]),i(".layui-layer-move")[0]||c.append(o.moveElem=u),e.layero=i("#"+l[0]+a),t.scrollbar||l.html.css("overflow","hidden").attr("layer-full",a)}).auto(a),i("#layui-layer-shade"+e.index).css({"background-color":t.shade[1]||"#000",opacity:t.shade[0]||t.shade}),2==t.type&&6==r.ie&&e.layero.find("iframe").attr("src",s[0]),4==t.type?e.tips():e.offset(),t.fixed&&n.on("resize",function(){e.offset(),(/^\d+%$/.test(t.area[0])||/^\d+%$/.test(t.area[1]))&&e.auto(a),4==t.type&&e.tips()}),t.time<=0||setTimeout(function(){r.close(e.index)},t.time),e.move().callback(),l.anim[t.anim]){var u="layer-anim "+l.anim[t.anim];e.layero.addClass(u).one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",function(){i(this).removeClass(u)})}t.isOutAnim&&e.layero.data("isOutAnim",!0)}},s.pt.auto=function(e){var t=this,a=t.config,o=i("#"+l[0]+e);""===a.area[0]&&a.maxWidth>0&&(r.ie&&r.ie<8&&a.btn&&o.width(o.innerWidth()),o.outerWidth()>a.maxWidth&&o.width(a.maxWidth));var s=[o.innerWidth(),o.innerHeight()],f=o.find(l[1]).outerHeight()||0,c=o.find("."+l[6]).outerHeight()||0,u=function(e){e=o.find(e),e.height(s[1]-f-c-2*(0|parseFloat(e.css("padding-top"))))};switch(a.type){case 2:u("iframe");break;default:""===a.area[1]?a.maxHeight>0&&o.outerHeight()>a.maxHeight?(s[1]=a.maxHeight,u("."+l[5])):a.fixed&&s[1]>=n.height()&&(s[1]=n.height(),u("."+l[5])):u("."+l[5])}return t},s.pt.offset=function(){var e=this,t=e.config,i=e.layero,a=[i.outerWidth(),i.outerHeight()],o="object"==typeof t.offset;e.offsetTop=(n.height()-a[1])/2,e.offsetLeft=(n.width()-a[0])/2,o?(e.offsetTop=t.offset[0],e.offsetLeft=t.offset[1]||e.offsetLeft):"auto"!==t.offset&&("t"===t.offset?e.offsetTop=0:"r"===t.offset?e.offsetLeft=n.width()-a[0]:"b"===t.offset?e.offsetTop=n.height()-a[1]:"l"===t.offset?e.offsetLeft=0:"lt"===t.offset?(e.offsetTop=0,e.offsetLeft=0):"lb"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=0):"rt"===t.offset?(e.offsetTop=0,e.offsetLeft=n.width()-a[0]):"rb"===t.offset?(e.offsetTop=n.height()-a[1],e.offsetLeft=n.width()-a[0]):e.offsetTop=t.offset),t.fixed||(e.offsetTop=/%$/.test(e.offsetTop)?n.height()*parseFloat(e.offsetTop)/100:parseFloat(e.offsetTop),e.offsetLeft=/%$/.test(e.offsetLeft)?n.width()*parseFloat(e.offsetLeft)/100:parseFloat(e.offsetLeft),e.offsetTop+=n.scrollTop(),e.offsetLeft+=n.scrollLeft()),i.attr("minLeft")&&(e.offsetTop=n.height()-(i.find(l[1]).outerHeight()||0),e.offsetLeft=i.css("left")),i.css({top:e.offsetTop,left:e.offsetLeft})},s.pt.tips=function(){var e=this,t=e.config,a=e.layero,o=[a.outerWidth(),a.outerHeight()],r=i(t.follow);r[0]||(r=i("body"));var s={width:r.outerWidth(),height:r.outerHeight(),top:r.offset().top,left:r.offset().left},f=a.find(".layui-layer-TipsG"),c=t.tips[0];t.tips[1]||f.remove(),s.autoLeft=function(){s.left+o[0]-n.width()>0?(s.tipLeft=s.left+s.width-o[0],f.css({right:12,left:"auto"})):s.tipLeft=s.left},s.where=[function(){s.autoLeft(),s.tipTop=s.top-o[1]-10,f.removeClass("layui-layer-TipsB").addClass("layui-layer-TipsT").css("border-right-color",t.tips[1])},function(){s.tipLeft=s.left+s.width+10,s.tipTop=s.top,f.removeClass("layui-layer-TipsL").addClass("layui-layer-TipsR").css("border-bottom-color",t.tips[1])},function(){s.autoLeft(),s.tipTop=s.top+s.height+10,f.removeClass("layui-layer-TipsT").addClass("layui-layer-TipsB").css("border-right-color",t.tips[1])},function(){s.tipLeft=s.left-o[0]-10,s.tipTop=s.top,f.removeClass("layui-layer-TipsR").addClass("layui-layer-TipsL").css("border-bottom-color",t.tips[1])}],s.where[c-1](),1===c?s.top-(n.scrollTop()+o[1]+16)<0&&s.where[2]():2===c?n.width()-(s.left+s.width+o[0]+16)>0||s.where[3]():3===c?s.top-n.scrollTop()+s.height+o[1]+16-n.height()>0&&s.where[0]():4===c&&o[0]+16-s.left>0&&s.where[1](),a.find("."+l[5]).css({"background-color":t.tips[1],"padding-right":t.closeBtn?"30px":""}),a.css({left:s.tipLeft-(t.fixed?n.scrollLeft():0),top:s.tipTop-(t.fixed?n.scrollTop():0)})},s.pt.move=function(){var e=this,t=e.config,a=i(document),s=e.layero,l=s.find(t.move),f=s.find(".layui-layer-resize"),c={};return t.move&&l.css("cursor","move"),l.on("mousedown",function(e){e.preventDefault(),t.move&&(c.moveStart=!0,c.offset=[e.clientX-parseFloat(s.css("left")),e.clientY-parseFloat(s.css("top"))],o.moveElem.css("cursor","move").show())}),f.on("mousedown",function(e){e.preventDefault(),c.resizeStart=!0,c.offset=[e.clientX,e.clientY],c.area=[s.outerWidth(),s.outerHeight()],o.moveElem.css("cursor","se-resize").show()}),a.on("mousemove",function(i){if(c.moveStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1],l="fixed"===s.css("position");if(i.preventDefault(),c.stX=l?0:n.scrollLeft(),c.stY=l?0:n.scrollTop(),!t.moveOut){var f=n.width()-s.outerWidth()+c.stX,u=n.height()-s.outerHeight()+c.stY;a<c.stX&&(a=c.stX),a>f&&(a=f),o<c.stY&&(o=c.stY),o>u&&(o=u)}s.css({left:a,top:o})}if(t.resize&&c.resizeStart){var a=i.clientX-c.offset[0],o=i.clientY-c.offset[1];i.preventDefault(),r.style(e.index,{width:c.area[0]+a,height:c.area[1]+o}),c.isResize=!0,t.resizing&&t.resizing(s)}}).on("mouseup",function(e){c.moveStart&&(delete c.moveStart,o.moveElem.hide(),t.moveEnd&&t.moveEnd(s)),c.resizeStart&&(delete c.resizeStart,o.moveElem.hide())}),e},s.pt.callback=function(){function e(){var e=a.cancel&&a.cancel(t.index,n);e===!1||r.close(t.index)}var t=this,n=t.layero,a=t.config;t.openLayer(),a.success&&(2==a.type?n.find("iframe").on("load",function(){a.success(n,t.index)}):a.success(n,t.index)),6==r.ie&&t.IE6(n),n.find("."+l[6]).children("a").on("click",function(){var e=i(this).index();if(0===e)a.yes?a.yes(t.index,n):a.btn1?a.btn1(t.index,n):r.close(t.index);else{var o=a["btn"+(e+1)]&&a["btn"+(e+1)](t.index,n);o===!1||r.close(t.index)}}),n.find("."+l[7]).on("click",e),a.shadeClose&&i("#layui-layer-shade"+t.index).on("click",function(){r.close(t.index)}),n.find(".layui-layer-min").on("click",function(){var e=a.min&&a.min(n);e===!1||r.min(t.index,a)}),n.find(".layui-layer-max").on("click",function(){i(this).hasClass("layui-layer-maxmin")?(r.restore(t.index),a.restore&&a.restore(n)):(r.full(t.index,a),setTimeout(function(){a.full&&a.full(n)},100))}),a.end&&(o.end[t.index]=a.end)},o.reselect=function(){i.each(i("select"),function(e,t){var n=i(this);n.parents("."+l[0])[0]||1==n.attr("layer")&&i("."+l[0]).length<1&&n.removeAttr("layer").show(),n=null})},s.pt.IE6=function(e){i("select").each(function(e,t){var n=i(this);n.parents("."+l[0])[0]||"none"===n.css("display")||n.attr({layer:"1"}).hide(),n=null})},s.pt.openLayer=function(){var e=this;r.zIndex=e.config.zIndex,r.setTop=function(e){var t=function(){r.zIndex++,e.css("z-index",r.zIndex+1)};return r.zIndex=parseInt(e[0].style.zIndex),e.on("mousedown",t),r.zIndex}},o.record=function(e){var t=[e.width(),e.height(),e.position().top,e.position().left+parseFloat(e.css("margin-left"))];e.find(".layui-layer-max").addClass("layui-layer-maxmin"),e.attr({area:t})},o.rescollbar=function(e){l.html.attr("layer-full")==e&&(l.html[0].style.removeProperty?l.html[0].style.removeProperty("overflow"):l.html[0].style.removeAttribute("overflow"),l.html.removeAttr("layer-full"))},e.layer=r,r.getChildFrame=function(e,t){return t=t||i("."+l[4]).attr("times"),i("#"+l[0]+t).find("iframe").contents().find(e)},r.getFrameIndex=function(e){return i("#"+e).parents("."+l[4]).attr("times")},r.iframeAuto=function(e){if(e){var t=r.getChildFrame("html",e).outerHeight(),n=i("#"+l[0]+e),a=n.find(l[1]).outerHeight()||0,o=n.find("."+l[6]).outerHeight()||0;n.css({height:t+a+o}),n.find("iframe").css({height:t})}},r.iframeSrc=function(e,t){i("#"+l[0]+e).find("iframe").attr("src",t)},r.style=function(e,t,n){var a=i("#"+l[0]+e),r=a.find(".layui-layer-content"),s=a.attr("type"),f=a.find(l[1]).outerHeight()||0,c=a.find("."+l[6]).outerHeight()||0;a.attr("minLeft");s!==o.type[3]&&s!==o.type[4]&&(n||(parseFloat(t.width)<=260&&(t.width=260),parseFloat(t.height)-f-c<=64&&(t.height=64+f+c)),a.css(t),c=a.find("."+l[6]).outerHeight(),s===o.type[2]?a.find("iframe").css({height:parseFloat(t.height)-f-c}):r.css({height:parseFloat(t.height)-f-c-parseFloat(r.css("padding-top"))-parseFloat(r.css("padding-bottom"))}))},r.min=function(e,t){var a=i("#"+l[0]+e),s=a.find(l[1]).outerHeight()||0,f=a.attr("minLeft")||181*o.minIndex+"px",c=a.css("position");o.record(a),o.minLeft[0]&&(f=o.minLeft[0],o.minLeft.shift()),a.attr("position",c),r.style(e,{width:180,height:s,left:f,top:n.height()-s,position:"fixed",overflow:"hidden"},!0),a.find(".layui-layer-min").hide(),"page"===a.attr("type")&&a.find(l[4]).hide(),o.rescollbar(e),a.attr("minLeft")||o.minIndex++,a.attr("minLeft",f)},r.restore=function(e){var t=i("#"+l[0]+e),n=t.attr("area").split(",");t.attr("type");r.style(e,{width:parseFloat(n[0]),height:parseFloat(n[1]),top:parseFloat(n[2]),left:parseFloat(n[3]),position:t.attr("position"),overflow:"visible"},!0),t.find(".layui-layer-max").removeClass("layui-layer-maxmin"),t.find(".layui-layer-min").show(),"page"===t.attr("type")&&t.find(l[4]).show(),o.rescollbar(e)},r.full=function(e){var t,a=i("#"+l[0]+e);o.record(a),l.html.attr("layer-full")||l.html.css("overflow","hidden").attr("layer-full",e),clearTimeout(t),t=setTimeout(function(){var t="fixed"===a.css("position");r.style(e,{top:t?0:n.scrollTop(),left:t?0:n.scrollLeft(),width:n.width(),height:n.height()},!0),a.find(".layui-layer-min").hide()},100)},r.title=function(e,t){var n=i("#"+l[0]+(t||r.index)).find(l[1]);n.html(e)},r.close=function(e){var t=i("#"+l[0]+e),n=t.attr("type"),a="layer-anim-close";if(t[0]){var s="layui-layer-wrap",f=function(){if(n===o.type[1]&&"object"===t.attr("conType")){t.children(":not(."+l[5]+")").remove();for(var a=t.find("."+s),r=0;r<2;r++)a.unwrap();a.css("display",a.data("display")).removeClass(s)}else{if(n===o.type[2])try{var f=i("#"+l[4]+e)[0];f.contentWindow.document.write(""),f.contentWindow.close(),t.find("."+l[5])[0].removeChild(f)}catch(c){}t[0].innerHTML="",t.remove()}"function"==typeof o.end[e]&&o.end[e](),delete o.end[e]};t.data("isOutAnim")&&t.addClass("layer-anim "+a),i("#layui-layer-moves, #layui-layer-shade"+e).remove(),6==r.ie&&o.reselect(),o.rescollbar(e),t.attr("minLeft")&&(o.minIndex--,o.minLeft.push(t.attr("minLeft"))),r.ie&&r.ie<10||!t.data("isOutAnim")?f():setTimeout(function(){f()},200)}},r.closeAll=function(e){i.each(i("."+l[0]),function(){var t=i(this),n=e?t.attr("type")===e:1;n&&r.close(t.attr("times")),n=null})};var f=r.cache||{},c=function(e){return f.skin?" "+f.skin+" "+f.skin+"-"+e:""};r.prompt=function(e,t){var a="";if(e=e||{},"function"==typeof e&&(t=e),e.area){var o=e.area;a='style="width: '+o[0]+"; height: "+o[1]+';"',delete e.area}var s,l=2==e.formType?'<textarea class="layui-layer-input"'+a+"></textarea>":function(){return'<input type="'+(1==e.formType?"password":"text")+'" class="layui-layer-input">'}(),f=e.success;return delete e.success,r.open(i.extend({type:1,btn:["&#x786E;&#x5B9A;","&#x53D6;&#x6D88;"],content:l,skin:"layui-layer-prompt"+c("prompt"),maxWidth:n.width(),success:function(t){s=t.find(".layui-layer-input"),s.val(e.value||"").focus(),"function"==typeof f&&f(t)},resize:!1,yes:function(i){var n=s.val();""===n?s.focus():n.length>(e.maxlength||500)?r.tips("&#x6700;&#x591A;&#x8F93;&#x5165;"+(e.maxlength||500)+"&#x4E2A;&#x5B57;&#x6570;",s,{tips:1}):t&&t(n,i,s)}},e))},r.tab=function(e){e=e||{};var t=e.tab||{},n="layui-this",a=e.success;return delete e.success,r.open(i.extend({type:1,skin:"layui-layer-tab"+c("tab"),resize:!1,title:function(){var e=t.length,i=1,a="";if(e>0)for(a='<span class="'+n+'">'+t[0].title+"</span>";i<e;i++)a+="<span>"+t[i].title+"</span>";return a}(),content:'<ul class="layui-layer-tabmain">'+function(){var e=t.length,i=1,a="";if(e>0)for(a='<li class="layui-layer-tabli '+n+'">'+(t[0].content||"no content")+"</li>";i<e;i++)a+='<li class="layui-layer-tabli">'+(t[i].content||"no  content")+"</li>";return a}()+"</ul>",success:function(t){var o=t.find(".layui-layer-title").children(),r=t.find(".layui-layer-tabmain").children();o.on("mousedown",function(t){t.stopPropagation?t.stopPropagation():t.cancelBubble=!0;var a=i(this),o=a.index();a.addClass(n).siblings().removeClass(n),r.eq(o).show().siblings().hide(),"function"==typeof e.change&&e.change(o)}),"function"==typeof a&&a(t)}},e))},r.photos=function(t,n,a){function o(e,t,i){var n=new Image;return n.src=e,n.complete?t(n):(n.onload=function(){n.onload=null,t(n)},void(n.onerror=function(e){n.onerror=null,i(e)}))}var s={};if(t=t||{},t.photos){var l=t.photos.constructor===Object,f=l?t.photos:{},u=f.data||[],d=f.start||0;s.imgIndex=(0|d)+1,t.img=t.img||"img";var y=t.success;if(delete t.success,l){if(0===u.length)return r.msg("&#x6CA1;&#x6709;&#x56FE;&#x7247;")}else{var p=i(t.photos),h=function(){u=[],p.find(t.img).each(function(e){var t=i(this);t.attr("layer-index",e),u.push({alt:t.attr("alt"),pid:t.attr("layer-pid"),src:t.attr("layer-src")||t.attr("src"),thumb:t.attr("src")})})};if(h(),0===u.length)return;if(n||p.on("click",t.img,function(){var e=i(this),n=e.attr("layer-index");r.photos(i.extend(t,{photos:{start:n,data:u,tab:t.tab},full:t.full}),!0),h()}),!n)return}s.imgprev=function(e){s.imgIndex--,s.imgIndex<1&&(s.imgIndex=u.length),s.tabimg(e)},s.imgnext=function(e,t){s.imgIndex++,s.imgIndex>u.length&&(s.imgIndex=1,t)||s.tabimg(e)},s.keyup=function(e){if(!s.end){var t=e.keyCode;e.preventDefault(),37===t?s.imgprev(!0):39===t?s.imgnext(!0):27===t&&r.close(s.index)}},s.tabimg=function(e){if(!(u.length<=1))return f.start=s.imgIndex-1,r.close(s.index),r.photos(t,!0,e)},s.event=function(){s.bigimg.hover(function(){s.imgsee.show()},function(){s.imgsee.hide()}),s.bigimg.find(".layui-layer-imgprev").on("click",function(e){e.preventDefault(),s.imgprev()}),s.bigimg.find(".layui-layer-imgnext").on("click",function(e){e.preventDefault(),s.imgnext()}),i(document).on("keyup",s.keyup)},s.loadi=r.load(1,{shade:!("shade"in t)&&.9,scrollbar:!1}),o(u[d].src,function(n){r.close(s.loadi),s.index=r.open(i.extend({type:1,id:"layui-layer-photos",area:function(){var a=[n.width,n.height],o=[i(e).width()-100,i(e).height()-100];if(!t.full&&(a[0]>o[0]||a[1]>o[1])){var r=[a[0]/o[0],a[1]/o[1]];r[0]>r[1]?(a[0]=a[0]/r[0],a[1]=a[1]/r[0]):r[0]<r[1]&&(a[0]=a[0]/r[1],a[1]=a[1]/r[1])}return[a[0]+"px",a[1]+"px"]}(),title:!1,shade:.9,shadeClose:!0,closeBtn:!1,move:".layui-layer-phimg img",moveType:1,scrollbar:!1,moveOut:!0,isOutAnim:!1,skin:"layui-layer-photos"+c("photos"),content:'<div class="layui-layer-phimg"><img src="'+u[d].src+'" alt="'+(u[d].alt||"")+'" layer-pid="'+u[d].pid+'"><div class="layui-layer-imgsee">'+(u.length>1?'<span class="layui-layer-imguide"><a href="javascript:;" class="layui-layer-iconext layui-layer-imgprev"></a><a href="javascript:;" class="layui-layer-iconext layui-layer-imgnext"></a></span>':"")+'<div class="layui-layer-imgbar" style="display:'+(a?"block":"")+'"><span class="layui-layer-imgtit"><a href="javascript:;">'+(u[d].alt||"")+"</a><em>"+s.imgIndex+"/"+u.length+"</em></span></div></div></div>",success:function(e,i){s.bigimg=e.find(".layui-layer-phimg"),s.imgsee=e.find(".layui-layer-imguide,.layui-layer-imgbar"),s.event(e),t.tab&&t.tab(u[d],e),"function"==typeof y&&y(e)},end:function(){s.end=!0,i(document).off("keyup",s.keyup)}},t))},function(){r.close(s.loadi),r.msg("&#x5F53;&#x524D;&#x56FE;&#x7247;&#x5730;&#x5740;&#x5F02;&#x5E38;<br>&#x662F;&#x5426;&#x7EE7;&#x7EED;&#x67E5;&#x770B;&#x4E0B;&#x4E00;&#x5F20;&#xFF1F;",{time:3e4,btn:["&#x4E0B;&#x4E00;&#x5F20;","&#x4E0D;&#x770B;&#x4E86;"],yes:function(){u.length>1&&s.imgnext(!0,!0)}})})}},o.run=function(t){i=t,n=i(e),l.html=i("html"),r.open=function(e){var t=new s(e);return t.index}},e.layui&&layui.define?(r.ready(),layui.define("jquery",function(t){r.path=layui.cache.dir,o.run(layui.$),e.layer=r,t("layer",r)})):"function"==typeof define&&define.amd?define(["jquery"],function(){return o.run(e.jQuery),r}):function(){o.run(e.jQuery),r.ready()}()}(window);layui.define("jquery",function(t){"use strict";var a=layui.$,i=(layui.hint(),layui.device()),e="element",l="layui-this",n="layui-show",s=function(){this.config={}};s.prototype.set=function(t){var i=this;return a.extend(!0,i.config,t),i},s.prototype.on=function(t,a){return layui.onevent.call(this,e,t,a)},s.prototype.tabAdd=function(t,i){var e=".layui-tab-title",l=a(".layui-tab[lay-filter="+t+"]"),n=l.children(e),s=n.children(".layui-tab-bar"),o=l.children(".layui-tab-content"),r='<li lay-id="'+(i.id||"")+'"'+(i.attr?' lay-attr="'+i.attr+'"':"")+">"+(i.title||"unnaming")+"</li>";return s[0]?s.before(r):n.append(r),o.append('<div class="layui-tab-item">'+(i.content||"")+"</div>"),f.hideTabMore(!0),f.tabAuto(),this},s.prototype.tabDelete=function(t,i){var e=".layui-tab-title",l=a(".layui-tab[lay-filter="+t+"]"),n=l.children(e),s=n.find('>li[lay-id="'+i+'"]');return f.tabDelete(null,s),this},s.prototype.tabChange=function(t,i){var e=".layui-tab-title",l=a(".layui-tab[lay-filter="+t+"]"),n=l.children(e),s=n.find('>li[lay-id="'+i+'"]');return f.tabClick.call(s[0],null,null,s),this},s.prototype.tab=function(t){t=t||{},b.on("click",t.headerElem,function(i){var e=a(this).index();f.tabClick.call(this,i,e,null,t)})},s.prototype.progress=function(t,i){var e="layui-progress",l=a("."+e+"[lay-filter="+t+"]"),n=l.find("."+e+"-bar"),s=n.find("."+e+"-text");return n.css("width",i),s.text(i),this};var o=".layui-nav",r="layui-nav-item",c="layui-nav-bar",u="layui-nav-tree",d="layui-nav-child",y="layui-nav-more",h="layui-anim layui-anim-upbit",f={tabClick:function(t,i,s,o){o=o||{};var r=s||a(this),i=i||r.parent().children("li").index(r),c=o.headerElem?r.parent():r.parents(".layui-tab").eq(0),u=o.bodyElem?a(o.bodyElem):c.children(".layui-tab-content").children(".layui-tab-item"),d=r.find("a"),y=c.attr("lay-filter");"javascript:;"!==d.attr("href")&&"_blank"===d.attr("target")||(r.addClass(l).siblings().removeClass(l),u.eq(i).addClass(n).siblings().removeClass(n)),layui.event.call(this,e,"tab("+y+")",{elem:c,index:i})},tabDelete:function(t,i){var n=i||a(this).parent(),s=n.index(),o=n.parents(".layui-tab").eq(0),r=o.children(".layui-tab-content").children(".layui-tab-item"),c=o.attr("lay-filter");n.hasClass(l)&&(n.next()[0]?f.tabClick.call(n.next()[0],null,s+1):n.prev()[0]&&f.tabClick.call(n.prev()[0],null,s-1)),n.remove(),r.eq(s).remove(),setTimeout(function(){f.tabAuto()},50),layui.event.call(this,e,"tabDelete("+c+")",{elem:o,index:s})},tabAuto:function(){var t="layui-tab-more",e="layui-tab-bar",l="layui-tab-close",n=this;a(".layui-tab").each(function(){var s=a(this),o=s.children(".layui-tab-title"),r=(s.children(".layui-tab-content").children(".layui-tab-item"),'lay-stope="tabmore"'),c=a('<span class="layui-unselect layui-tab-bar" '+r+"><i "+r+' class="layui-icon">&#xe61a;</i></span>');if(n===window&&8!=i.ie&&f.hideTabMore(!0),s.attr("lay-allowClose")&&o.find("li").each(function(){var t=a(this);if(!t.find("."+l)[0]){var i=a('<i class="layui-icon layui-unselect '+l+'">&#x1006;</i>');i.on("click",f.tabDelete),t.append(i)}}),"string"!=typeof s.attr("lay-unauto"))if(o.prop("scrollWidth")>o.outerWidth()+1){if(o.find("."+e)[0])return;o.append(c),s.attr("overflow",""),c.on("click",function(a){o[this.title?"removeClass":"addClass"](t),this.title=this.title?"":"收缩"})}else o.find("."+e).remove(),s.removeAttr("overflow")})},hideTabMore:function(t){var i=a(".layui-tab-title");t!==!0&&"tabmore"===a(t.target).attr("lay-stope")||(i.removeClass("layui-tab-more"),i.find(".layui-tab-bar").attr("title",""))},clickThis:function(){var t=a(this),i=t.parents(o),n=i.attr("lay-filter"),s=t.parent(),c=t.siblings("."+d),y="string"==typeof s.attr("lay-unselect");"javascript:;"!==t.attr("href")&&"_blank"===t.attr("target")||y||c[0]||(i.find("."+l).removeClass(l),s.addClass(l)),i.hasClass(u)&&(c.removeClass(h),c[0]&&(s["none"===c.css("display")?"addClass":"removeClass"](r+"ed"),"all"===i.attr("lay-shrink")&&s.siblings().removeClass(r+"ed"))),layui.event.call(this,e,"nav("+n+")",t)},collapse:function(){var t=a(this),i=t.find(".layui-colla-icon"),l=t.siblings(".layui-colla-content"),s=t.parents(".layui-collapse").eq(0),o=s.attr("lay-filter"),r="none"===l.css("display");if("string"==typeof s.attr("lay-accordion")){var c=s.children(".layui-colla-item").children("."+n);c.siblings(".layui-colla-title").children(".layui-colla-icon").html("&#xe602;"),c.removeClass(n)}l[r?"addClass":"removeClass"](n),i.html(r?"&#xe61a;":"&#xe602;"),layui.event.call(this,e,"collapse("+o+")",{title:t,content:l,show:r})}};s.prototype.init=function(t,e){var l=function(){return e?'[lay-filter="'+e+'"]':""}(),s={tab:function(){f.tabAuto.call({})},nav:function(){var t=200,e={},s={},p={},b=function(l,o,r){var c=a(this),f=c.find("."+d);o.hasClass(u)?l.css({top:c.position().top,height:c.children("a").outerHeight(),opacity:1}):(f.addClass(h),l.css({left:c.position().left+parseFloat(c.css("marginLeft")),top:c.position().top+c.height()-l.height()}),e[r]=setTimeout(function(){l.css({width:c.width(),opacity:1})},i.ie&&i.ie<10?0:t),clearTimeout(p[r]),"block"===f.css("display")&&clearTimeout(s[r]),s[r]=setTimeout(function(){f.addClass(n),c.find("."+y).addClass(y+"d")},300))};a(o+l).each(function(i){var l=a(this),o=a('<span class="'+c+'"></span>'),h=l.find("."+r);l.find("."+c)[0]||(l.append(o),h.on("mouseenter",function(){b.call(this,o,l,i)}).on("mouseleave",function(){l.hasClass(u)||(clearTimeout(s[i]),s[i]=setTimeout(function(){l.find("."+d).removeClass(n),l.find("."+y).removeClass(y+"d")},300))}),l.on("mouseleave",function(){clearTimeout(e[i]),p[i]=setTimeout(function(){l.hasClass(u)?o.css({height:0,top:o.position().top+o.height()/2,opacity:0}):o.css({width:0,left:o.position().left+o.width()/2,opacity:0})},t)})),h.find("a").each(function(){var t=a(this),i=(t.parent(),t.siblings("."+d));i[0]&&!t.children("."+y)[0]&&t.append('<span class="'+y+'"></span>'),t.off("click",f.clickThis).on("click",f.clickThis)})})},breadcrumb:function(){var t=".layui-breadcrumb";a(t+l).each(function(){var t=a(this),i="lay-separator",e=t.attr(i)||"/",l=t.find("a");l.next("span["+i+"]")[0]||(l.each(function(t){t!==l.length-1&&a(this).after("<span "+i+">"+e+"</span>")}),t.css("visibility","visible"))})},progress:function(){var t="layui-progress";a("."+t+l).each(function(){var i=a(this),e=i.find(".layui-progress-bar"),l=e.attr("lay-percent");e.css("width",function(){return/^.+\/.+$/.test(l)?100*new Function("return "+l)()+"%":l}()),i.attr("lay-showPercent")&&setTimeout(function(){e.html('<span class="'+t+'-text">'+l+"</span>")},350)})},collapse:function(){var t="layui-collapse";a("."+t+l).each(function(){var t=a(this).find(".layui-colla-item");t.each(function(){var t=a(this),i=t.find(".layui-colla-title"),e=t.find(".layui-colla-content"),l="none"===e.css("display");i.find(".layui-colla-icon").remove(),i.append('<i class="layui-icon layui-colla-icon">'+(l?"&#xe602;":"&#xe61a;")+"</i>"),i.off("click",f.collapse).on("click",f.collapse)})})}};return s[t]?s[t]():layui.each(s,function(t,a){a()})},s.prototype.render=s.prototype.init;var p=new s,b=a(document);p.render();var v=".layui-tab-title li";b.on("click",v,f.tabClick),b.on("click",f.hideTabMore),a(window).on("resize",f.tabAuto),t(e,p)});layui.define("layer",function(e){"use strict";var i=layui.$,t=layui.layer,n=layui.hint(),a=layui.device(),o={config:{},set:function(e){var t=this;return t.config=i.extend({},t.config,e),t},on:function(e,i){return layui.onevent.call(this,r,e,i)}},l=function(){var e=this;return{upload:function(i){e.upload.call(e,i)},config:e.config}},r="upload",u="layui-upload-file",c="layui-upload-form",f="layui-upload-iframe",s="layui-upload-choose",p=function(e){var t=this;t.config=i.extend({},t.config,o.config,e),t.render()};p.prototype.config={accept:"images",exts:"",auto:!0,bindAction:"",url:"",field:"file",method:"post",data:{},drag:!0,size:0,number:0,multiple:!1},p.prototype.render=function(e){var t=this,e=t.config;e.elem=i(e.elem),e.bindAction=i(e.bindAction),t.file(),t.events()},p.prototype.file=function(){var e=this,t=e.config,n=e.elemFile=i(['<input class="'+u+'" type="file" accept="'+t.acceptMime+'" name="'+t.field+'"',t.multiple?" multiple":"",">"].join("")),o=t.elem.next();(o.hasClass(u)||o.hasClass(c))&&o.remove(),a.ie&&a.ie<10&&t.elem.wrap('<div class="layui-upload-wrap"></div>'),e.isFile()?(e.elemFile=t.elem,t.field=t.elem[0].name):t.elem.after(n),a.ie&&a.ie<10&&e.initIE()},p.prototype.initIE=function(){var e=this,t=e.config,n=i('<iframe id="'+f+'" class="'+f+'" name="'+f+'" frameborder="0"></iframe>'),a=i(['<form target="'+f+'" class="'+c+'" method="post" key="set-mine" enctype="multipart/form-data" action="'+t.url+'">',"</form>"].join(""));i("#"+f)[0]||i("body").append(n),t.elem.next().hasClass(c)||(e.elemFile.wrap(a),t.elem.next("."+c).append(function(){var e=[];return layui.each(t.data,function(i,t){t="function"==typeof t?t():t,e.push('<input type="hidden" name="'+i+'" value="'+t+'">')}),e.join("")}()))},p.prototype.msg=function(e){return t.msg(e,{icon:2,shift:6})},p.prototype.isFile=function(){var e=this.config.elem[0];if(e)return"input"===e.tagName.toLocaleLowerCase()&&"file"===e.type},p.prototype.preview=function(e){var i=this;window.FileReader&&layui.each(i.chooseFiles,function(i,t){var n=new FileReader;n.readAsDataURL(t),n.onload=function(){e&&e(i,t,this.result)}})},p.prototype.upload=function(e,t){var n,o=this,l=o.config,r=o.elemFile[0],u=function(){var t=0,n=0,a=e||o.files||o.chooseFiles||r.files,u=function(){l.multiple&&t+n===o.fileLength&&"function"==typeof l.allDone&&l.allDone({total:o.fileLength,successful:t,aborted:n})};layui.each(a,function(e,a){var r=new FormData;r.append(l.field,a),layui.each(l.data,function(e,i){i="function"==typeof i?i():i,r.append(e,i)}),i.ajax({url:l.url,type:"post",data:r,contentType:!1,processData:!1,dataType:"json",headers:l.headers||{},success:function(i){t++,d(e,i),u()},error:function(){n++,o.msg("请求上传接口出现异常"),m(e),u()}})})},c=function(){var e=i("#"+f);o.elemFile.parent().submit(),clearInterval(p.timer),p.timer=setInterval(function(){var i,t=e.contents().find("body");try{i=t.text()}catch(n){o.msg("获取上传后的响应信息出现异常"),clearInterval(p.timer),m()}i&&(clearInterval(p.timer),t.html(""),d(0,i))},30)},d=function(e,i){if(o.elemFile.next("."+s).remove(),r.value="","object"!=typeof i)try{i=JSON.parse(i)}catch(t){return i={},o.msg("请对上传接口返回有效JSON")}"function"==typeof l.done&&l.done(i,e||0,function(e){o.upload(e)})},m=function(e){l.auto&&(r.value=""),"function"==typeof l.error&&l.error(e||0,function(e){o.upload(e)})},h=l.exts,v=function(){var i=[];return layui.each(e||o.chooseFiles,function(e,t){i.push(t.name)}),i}(),g={preview:function(e){o.preview(e)},upload:function(e,i){var t={};t[e]=i,o.upload(t)},pushFile:function(){return o.files=o.files||{},layui.each(o.chooseFiles,function(e,i){o.files[e]=i}),o.files},resetFile:function(e,i,t){var n=new File([i],t);o.files=o.files||{},o.files[e]=n}},y=function(){if("choose"!==t&&!l.auto||(l.choose&&l.choose(g),"choose"!==t))return l.before&&l.before(g),a.ie?a.ie>9?u():c():void u()};if(v=0===v.length?r.value.match(/[^\/\\]+\..+/g)||[]||"":v,0!==v.length){switch(l.accept){case"file":if(h&&!RegExp("\\w\\.("+h+")$","i").test(escape(v)))return o.msg("选择的文件中包含不支持的格式"),r.value="";break;case"video":if(!RegExp("\\w\\.("+(h||"avi|mp4|wma|rmvb|rm|flash|3gp|flv")+")$","i").test(escape(v)))return o.msg("选择的视频中包含不支持的格式"),r.value="";break;case"audio":if(!RegExp("\\w\\.("+(h||"mp3|wav|mid")+")$","i").test(escape(v)))return o.msg("选择的音频中包含不支持的格式"),r.value="";break;default:if(layui.each(v,function(e,i){RegExp("\\w\\.("+(h||"jpg|png|gif|bmp|jpeg$")+")","i").test(escape(i))||(n=!0)}),n)return o.msg("选择的图片中包含不支持的格式"),r.value=""}if(o.fileLength=function(){var i=0,t=e||o.files||o.chooseFiles||r.files;return layui.each(t,function(){i++}),i}(),l.number&&o.fileLength>l.number)return o.msg("同时最多只能上传的数量为:"+l.number);if(l.size>0&&!(a.ie&&a.ie<10)){var F;if(layui.each(o.chooseFiles,function(e,i){if(i.size>1024*l.size){var t=l.size/1024;t=t>=1?t.toFixed(2)+"MB":l.size+"KB",r.value="",F=t}}),F)return o.msg("文件不能超过"+F)}y()}},p.prototype.events=function(){var e=this,t=e.config,o=function(i){e.chooseFiles={},layui.each(i,function(i,t){var n=(new Date).getTime();e.chooseFiles[n+"-"+i]=t})},l=function(i,n){var a=e.elemFile,o=i.length>1?i.length+"个文件":(i[0]||{}).name||a[0].value.match(/[^\/\\]+\..+/g)||[]||"";a.next().hasClass(s)&&a.next().remove(),e.upload(null,"choose"),e.isFile()||t.choose||a.after('<span class="layui-inline '+s+'">'+o+"</span>")};t.elem.off("upload.start").on("upload.start",function(){var a=i(this),o=a.attr("lay-data");if(o)try{o=new Function("return "+o)(),e.config=i.extend({},t,o)}catch(l){n.error("Upload element property lay-data configuration item has a syntax error: "+o)}e.config.item=a,e.elemFile[0].click()}),a.ie&&a.ie<10||t.elem.off("upload.over").on("upload.over",function(){var e=i(this);e.attr("lay-over","")}).off("upload.leave").on("upload.leave",function(){var e=i(this);e.removeAttr("lay-over")}).off("upload.drop").on("upload.drop",function(n,a){var r=i(this),u=a.originalEvent.dataTransfer.files||[];r.removeAttr("lay-over"),o(u),t.auto?e.upload(u):l(u)}),e.elemFile.off("upload.change").on("upload.change",function(){var i=this.files||[];o(i),t.auto?e.upload():l(i)}),t.bindAction.off("upload.action").on("upload.action",function(){e.upload()}),t.elem.data("haveEvents")||(e.elemFile.on("change",function(){i(this).trigger("upload.change")}),t.elem.on("click",function(){e.isFile()||i(this).trigger("upload.start")}),t.drag&&t.elem.on("dragover",function(e){e.preventDefault(),i(this).trigger("upload.over")}).on("dragleave",function(e){i(this).trigger("upload.leave")}).on("drop",function(e){e.preventDefault(),i(this).trigger("upload.drop",e)}),t.bindAction.on("click",function(){i(this).trigger("upload.action")}),t.elem.data("haveEvents",!0))},o.render=function(e){var i=new p(e);return l.call(i)},e(r,o)});layui.define("jquery",function(e){"use strict";var i=layui.jquery,t={config:{},index:layui.slider?layui.slider.index+1e4:0,set:function(e){var t=this;return t.config=i.extend({},t.config,e),t},on:function(e,i){return layui.onevent.call(this,n,e,i)}},a=function(){var e=this,i=e.config;return{setValue:function(i,t){return e.slide("set",i,t||0)},config:i}},n="slider",l="layui-disabled",s="layui-slider",r="layui-slider-bar",o="layui-slider-wrap",u="layui-slider-wrap-btn",d="layui-slider-tips",v="layui-slider-input",c="layui-slider-input-txt",m="layui-slider-input-btn",p="layui-slider-hover",f=function(e){var a=this;a.index=++t.index,a.config=i.extend({},a.config,t.config,e),a.render()};f.prototype.config={type:"default",min:0,max:100,value:0,step:1,showstep:!1,tips:!0,input:!1,range:!1,height:200,disabled:!1,theme:"#009688"},f.prototype.render=function(){var e=this,t=e.config;if(t.step<1&&(t.step=1),t.max<t.min&&(t.max=t.min+t.step),t.range){t.value="object"==typeof t.value?t.value:[t.min,t.value];var a=Math.min(t.value[0],t.value[1]),n=Math.max(t.value[0],t.value[1]);t.value[0]=a>t.min?a:t.min,t.value[1]=n>t.min?n:t.min,t.value[0]=t.value[0]>t.max?t.max:t.value[0],t.value[1]=t.value[1]>t.max?t.max:t.value[1];var r=Math.floor((t.value[0]-t.min)/(t.max-t.min)*100),v=Math.floor((t.value[1]-t.min)/(t.max-t.min)*100),m=v-r+"%";r+="%",v+="%"}else{"object"==typeof t.value&&(t.value=Math.min.apply(null,t.value)),t.value<t.min&&(t.value=t.min),t.value>t.max&&(t.value=t.max);var m=Math.floor((t.value-t.min)/(t.max-t.min)*100)+"%"}var p=t.disabled?"#c2c2c2":t.theme,f='<div class="layui-slider '+("vertical"===t.type?"layui-slider-vertical":"")+'">'+(t.tips?'<div class="layui-slider-tips"></div>':"")+'<div class="layui-slider-bar" style="background:'+p+"; "+("vertical"===t.type?"height":"width")+":"+m+";"+("vertical"===t.type?"bottom":"left")+":"+(r||0)+';"></div><div class="layui-slider-wrap" style="'+("vertical"===t.type?"bottom":"left")+":"+(r||m)+';"><div class="layui-slider-wrap-btn" style="border: 2px solid '+p+';"></div></div>'+(t.range?'<div class="layui-slider-wrap" style="'+("vertical"===t.type?"bottom":"left")+":"+v+';"><div class="layui-slider-wrap-btn" style="border: 2px solid '+p+';"></div></div>':"")+"</div>",h=i(t.elem),y=h.next("."+s);if(y[0]&&y.remove(),e.elemTemp=i(f),t.range?(e.elemTemp.find("."+o).eq(0).data("value",t.value[0]),e.elemTemp.find("."+o).eq(1).data("value",t.value[1])):e.elemTemp.find("."+o).data("value",t.value),h.html(e.elemTemp),"vertical"===t.type&&e.elemTemp.height(t.height+"px"),t.showstep){for(var g=(t.max-t.min)/t.step,b="",x=1;x<g+1;x++){var T=100*x/g;T<100&&(b+='<div class="layui-slider-step" style="'+("vertical"===t.type?"bottom":"left")+":"+T+'%"></div>')}e.elemTemp.append(b)}if(t.input&&!t.range){var w=i('<div class="layui-slider-input layui-input"><div class="layui-slider-input-txt"><input type="text" class="layui-input"></div><div class="layui-slider-input-btn"><i class="layui-icon layui-icon-up"></i><i class="layui-icon layui-icon-down"></i></div></div>');h.css("position","relative"),h.append(w),h.find("."+c).children("input").val(t.value),"vertical"===t.type?w.css({left:0,top:-48}):e.elemTemp.css("margin-right",w.outerWidth()+15)}t.disabled?(e.elemTemp.addClass(l),e.elemTemp.find("."+u).addClass(l)):e.slide(),e.elemTemp.find("."+u).on("mouseover",function(){var a="vertical"===t.type?t.height:e.elemTemp[0].offsetWidth,n=e.elemTemp.find("."+o),l="vertical"===t.type?a-i(this).parent()[0].offsetTop-n.height():i(this).parent()[0].offsetLeft,s=l/a*100,r=i(this).parent().data("value"),u=t.setTips?t.setTips(r):r;e.elemTemp.find("."+d).html(u),"vertical"===t.type?e.elemTemp.find("."+d).css({bottom:s+"%","margin-bottom":"20px",display:"inline-block"}):e.elemTemp.find("."+d).css({left:s+"%",display:"inline-block"})}).on("mouseout",function(){e.elemTemp.find("."+d).css("display","none")})},f.prototype.slide=function(e,t,a){var n=this,l=n.config,s=n.elemTemp,f=function(){return"vertical"===l.type?l.height:s[0].offsetWidth},h=s.find("."+o),y=s.next("."+v),g=y.children("."+c).children("input").val(),b=100/((l.max-l.min)/Math.ceil(l.step)),x=function(e,i){e=Math.ceil(e)*b>100?Math.ceil(e)*b:Math.round(e)*b,e=e>100?100:e,h.eq(i).css("vertical"===l.type?"bottom":"left",e+"%");var t=T(h[0].offsetLeft),a=l.range?T(h[1].offsetLeft):0;"vertical"===l.type?(s.find("."+d).css({bottom:e+"%","margin-bottom":"20px"}),t=T(f()-h[0].offsetTop-h.height()),a=l.range?T(f()-h[1].offsetTop-h.height()):0):s.find("."+d).css("left",e+"%"),t=t>100?100:t,a=a>100?100:a;var n=Math.min(t,a),o=Math.abs(t-a);"vertical"===l.type?s.find("."+r).css({height:o+"%",bottom:n+"%"}):s.find("."+r).css({width:o+"%",left:n+"%"});var u=l.min+Math.round((l.max-l.min)*e/100);if(g=u,y.children("."+c).children("input").val(g),h.eq(i).data("value",u),u=l.setTips?l.setTips(u):u,s.find("."+d).html(u),l.range){var v=[h.eq(0).data("value"),h.eq(1).data("value")];v[0]>v[1]&&v.reverse()}l.change&&l.change(l.range?v:u)},T=function(e){var i=e/f()*100/b,t=Math.round(i)*b;return e==f()&&(t=Math.ceil(i)*b),t},w=i(['<div class="layui-auxiliar-moving" id="LAY-slider-moving"></div'].join("")),M=function(e,t){var a=function(){t&&t(),w.remove()};i("#LAY-slider-moving")[0]||i("body").append(w),w.on("mousemove",e),w.on("mouseup",a).on("mouseleave",a)};if("set"===e)return x(t,a);s.find("."+u).each(function(e){var t=i(this);t.on("mousedown",function(i){i=i||window.event;var a=t.parent()[0].offsetLeft,n=i.clientX;"vertical"===l.type&&(a=f()-t.parent()[0].offsetTop-h.height(),n=i.clientY);var r=function(i){i=i||window.event;var r=a+("vertical"===l.type?n-i.clientY:i.clientX-n);r<0&&(r=0),r>f()&&(r=f());var o=r/f()*100/b;x(o,e),t.addClass(p),s.find("."+d).show(),i.preventDefault()},o=function(){t.removeClass(p),s.find("."+d).hide()};M(r,o)})}),s.on("click",function(e){var t=i("."+u);if(!t.is(event.target)&&0===t.has(event.target).length&&t.length){var a,n="vertical"===l.type?f()-e.clientY+i(this).offset().top:e.clientX-i(this).offset().left;n<0&&(n=0),n>f()&&(n=f());var s=n/f()*100/b;a=l.range?"vertical"===l.type?Math.abs(n-parseInt(i(h[0]).css("bottom")))>Math.abs(n-parseInt(i(h[1]).css("bottom")))?1:0:Math.abs(n-h[0].offsetLeft)>Math.abs(n-h[1].offsetLeft)?1:0:0,x(s,a),e.preventDefault()}}),y.hover(function(){var e=i(this);e.children("."+m).fadeIn("fast")},function(){var e=i(this);e.children("."+m).fadeOut("fast")}),y.children("."+m).children("i").each(function(e){i(this).on("click",function(){g=1==e?g-l.step<l.min?l.min:Number(g)-l.step:Number(g)+l.step>l.max?l.max:Number(g)+l.step;var i=(g-l.min)/(l.max-l.min)*100/b;x(i,0)})});var q=function(){var e=this.value;e=isNaN(e)?0:e,e=e<l.min?l.min:e,e=e>l.max?l.max:e,this.value=e;var i=(e-l.min)/(l.max-l.min)*100/b;x(i,0)};y.children("."+c).children("input").on("keydown",function(e){13===e.keyCode&&(e.preventDefault(),q.call(this))}).on("change",q)},f.prototype.events=function(){var e=this;e.config},t.render=function(e){var i=new f(e);return a.call(i)},e(n,t)});layui.define("jquery",function(e){"use strict";var i=layui.jquery,o={config:{},index:layui.colorpicker?layui.colorpicker.index+1e4:0,set:function(e){var o=this;return o.config=i.extend({},o.config,e),o},on:function(e,i){return layui.onevent.call(this,"colorpicker",e,i)}},r=function(){var e=this,i=e.config;return{config:i}},t="colorpicker",n="layui-show",l="layui-colorpicker",c=".layui-colorpicker-main",a="layui-icon-down",s="layui-icon-close",f="layui-colorpicker-trigger-span",d="layui-colorpicker-trigger-i",u="layui-colorpicker-side",p="layui-colorpicker-side-slider",g="layui-colorpicker-basis",v="layui-colorpicker-alpha-bgcolor",h="layui-colorpicker-alpha-slider",m="layui-colorpicker-basis-cursor",b="layui-colorpicker-main-input",k=function(e){var i={h:0,s:0,b:0},o=Math.min(e.r,e.g,e.b),r=Math.max(e.r,e.g,e.b),t=r-o;return i.b=r,i.s=0!=r?255*t/r:0,0!=i.s?e.r==r?i.h=(e.g-e.b)/t:e.g==r?i.h=2+(e.b-e.r)/t:i.h=4+(e.r-e.g)/t:i.h=-1,r==o&&(i.h=0),i.h*=60,i.h<0&&(i.h+=360),i.s*=100/255,i.b*=100/255,i},y=function(e){var e=e.indexOf("#")>-1?e.substring(1):e;if(3==e.length){var i=e.split("");e=i[0]+i[0]+i[1]+i[1]+i[2]+i[2]}e=parseInt(e,16);var o={r:e>>16,g:(65280&e)>>8,b:255&e};return k(o)},x=function(e){var i={},o=e.h,r=255*e.s/100,t=255*e.b/100;if(0==r)i.r=i.g=i.b=t;else{var n=t,l=(255-r)*t/255,c=(n-l)*(o%60)/60;360==o&&(o=0),o<60?(i.r=n,i.b=l,i.g=l+c):o<120?(i.g=n,i.b=l,i.r=n-c):o<180?(i.g=n,i.r=l,i.b=l+c):o<240?(i.b=n,i.r=l,i.g=n-c):o<300?(i.b=n,i.g=l,i.r=l+c):o<360?(i.r=n,i.g=l,i.b=n-c):(i.r=0,i.g=0,i.b=0)}return{r:Math.round(i.r),g:Math.round(i.g),b:Math.round(i.b)}},C=function(e){var o=x(e),r=[o.r.toString(16),o.g.toString(16),o.b.toString(16)];return i.each(r,function(e,i){1==i.length&&(r[e]="0"+i)}),r.join("")},P=function(e){var i=/[0-9]{1,3}/g,o=e.match(i)||[];return{r:o[0],g:o[1],b:o[2]}},B=i(window),w=i(document),D=function(e){var r=this;r.index=++o.index,r.config=i.extend({},r.config,o.config,e),r.render()};D.prototype.config={color:"",size:null,alpha:!1,format:"hex",predefine:!1,colors:["#009688","#5FB878","#1E9FFF","#FF5722","#FFB800","#01AAED","#999","#c00","#ff8c00","#ffd700","#90ee90","#00ced1","#1e90ff","#c71585","rgb(0, 186, 189)","rgb(255, 120, 0)","rgb(250, 212, 0)","#393D49","rgba(0,0,0,.5)","rgba(255, 69, 0, 0.68)","rgba(144, 240, 144, 0.5)","rgba(31, 147, 255, 0.73)"]},D.prototype.render=function(){var e=this,o=e.config,r=i(['<div class="layui-unselect layui-colorpicker">',"<span "+("rgb"==o.format&&o.alpha?'class="layui-colorpicker-trigger-bgcolor"':"")+">",'<span class="layui-colorpicker-trigger-span" ','lay-type="'+("rgb"==o.format?o.alpha?"rgba":"torgb":"")+'" ','style="'+function(){var e="";return o.color?(e=o.color,(o.color.match(/[0-9]{1,3}/g)||[]).length>3&&(o.alpha&&"rgb"==o.format||(e="#"+C(k(P(o.color))))),"background: "+e):e}()+'">','<i class="layui-icon layui-colorpicker-trigger-i '+(o.color?a:s)+'"></i>',"</span>","</span>","</div>"].join("")),t=i(o.elem);o.size&&r.addClass("layui-colorpicker-"+o.size),t.addClass("layui-inline").html(e.elemColorBox=r),e.color=e.elemColorBox.find("."+f)[0].style.background,e.events()},D.prototype.renderPicker=function(){var e=this,o=e.config,r=e.elemColorBox[0],t=e.elemPicker=i(['<div id="layui-colorpicker'+e.index+'" data-index="'+e.index+'" class="layui-anim layui-anim-upbit layui-colorpicker-main">','<div class="layui-colorpicker-main-wrapper">','<div class="layui-colorpicker-basis">','<div class="layui-colorpicker-basis-white"></div>','<div class="layui-colorpicker-basis-black"></div>','<div class="layui-colorpicker-basis-cursor"></div>',"</div>",'<div class="layui-colorpicker-side">','<div class="layui-colorpicker-side-slider"></div>',"</div>","</div>",'<div class="layui-colorpicker-main-alpha '+(o.alpha?n:"")+'">','<div class="layui-colorpicker-alpha-bgcolor">','<div class="layui-colorpicker-alpha-slider"></div>',"</div>","</div>",function(){if(o.predefine){var e=['<div class="layui-colorpicker-main-pre">'];return layui.each(o.colors,function(i,o){e.push(['<div class="layui-colorpicker-pre'+((o.match(/[0-9]{1,3}/g)||[]).length>3?" layui-colorpicker-pre-isalpha":"")+'">','<div style="background:'+o+'"></div>',"</div>"].join(""))}),e.push("</div>"),e.join("")}return""}(),'<div class="layui-colorpicker-main-input">','<div class="layui-inline">','<input type="text" class="layui-input">',"</div>",'<div class="layui-btn-container">','<button class="layui-btn layui-btn-primary layui-btn-sm" colorpicker-events="clear">清空</button>','<button class="layui-btn layui-btn-sm" colorpicker-events="confirm">确定</button>',"</div","</div>","</div>"].join(""));e.elemColorBox.find("."+f)[0];i(c)[0]&&i(c).data("index")==e.index?e.removePicker(D.thisElemInd):(e.removePicker(D.thisElemInd),i("body").append(t)),D.thisElemInd=e.index,D.thisColor=r.style.background,e.position(),e.pickerEvents()},D.prototype.removePicker=function(e){var o=this;o.config;return i("#layui-colorpicker"+(e||o.index)).remove(),o},D.prototype.position=function(){var e=this,i=e.config,o=e.bindElem||e.elemColorBox[0],r=e.elemPicker[0],t=o.getBoundingClientRect(),n=r.offsetWidth,l=r.offsetHeight,c=function(e){return e=e?"scrollLeft":"scrollTop",document.body[e]|document.documentElement[e]},a=function(e){return document.documentElement[e?"clientWidth":"clientHeight"]},s=5,f=t.left,d=t.bottom;f-=(n-o.offsetWidth)/2,d+=s,f+n+s>a("width")?f=a("width")-n-s:f<s&&(f=s),d+l+s>a()&&(d=t.top>l?t.top-l:a()-l,d-=2*s),i.position&&(r.style.position=i.position),r.style.left=f+("fixed"===i.position?0:c(1))+"px",r.style.top=d+("fixed"===i.position?0:c())+"px"},D.prototype.val=function(){var e=this,i=(e.config,e.elemColorBox.find("."+f)),o=e.elemPicker.find("."+b),r=i[0],t=r.style.backgroundColor;if(t){var n=k(P(t)),l=i.attr("lay-type");if(e.select(n.h,n.s,n.b),"torgb"===l&&o.find("input").val(t),"rgba"===l){var c=P(t);if(3==(t.match(/[0-9]{1,3}/g)||[]).length)o.find("input").val("rgba("+c.r+", "+c.g+", "+c.b+", 1)"),e.elemPicker.find("."+h).css("left",280);else{o.find("input").val(t);var a=280*t.slice(t.lastIndexOf(",")+1,t.length-1);e.elemPicker.find("."+h).css("left",a)}e.elemPicker.find("."+v)[0].style.background="linear-gradient(to right, rgba("+c.r+", "+c.g+", "+c.b+", 0), rgb("+c.r+", "+c.g+", "+c.b+"))"}}else e.select(0,100,100),o.find("input").val(""),e.elemPicker.find("."+v)[0].style.background="",e.elemPicker.find("."+h).css("left",280)},D.prototype.side=function(){var e=this,o=e.config,r=e.elemColorBox.find("."+f),t=r.attr("lay-type"),n=e.elemPicker.find("."+u),l=e.elemPicker.find("."+p),c=e.elemPicker.find("."+g),y=e.elemPicker.find("."+m),C=e.elemPicker.find("."+v),w=e.elemPicker.find("."+h),D=l[0].offsetTop/180*360,E=100-(y[0].offsetTop+3)/180*100,H=(y[0].offsetLeft+3)/260*100,W=Math.round(w[0].offsetLeft/280*100)/100,j=e.elemColorBox.find("."+d),F=e.elemPicker.find(".layui-colorpicker-pre").children("div"),L=function(i,n,l,c){e.select(i,n,l);var f=x({h:i,s:n,b:l});if(j.addClass(a).removeClass(s),r[0].style.background="rgb("+f.r+", "+f.g+", "+f.b+")","torgb"===t&&e.elemPicker.find("."+b).find("input").val("rgb("+f.r+", "+f.g+", "+f.b+")"),"rgba"===t){var d=0;d=280*c,w.css("left",d),e.elemPicker.find("."+b).find("input").val("rgba("+f.r+", "+f.g+", "+f.b+", "+c+")"),r[0].style.background="rgba("+f.r+", "+f.g+", "+f.b+", "+c+")",C[0].style.background="linear-gradient(to right, rgba("+f.r+", "+f.g+", "+f.b+", 0), rgb("+f.r+", "+f.g+", "+f.b+"))"}o.change&&o.change(e.elemPicker.find("."+b).find("input").val())},M=i(['<div class="layui-auxiliar-moving" id="LAY-colorpicker-moving"></div'].join("")),Y=function(e){i("#LAY-colorpicker-moving")[0]||i("body").append(M),M.on("mousemove",e),M.on("mouseup",function(){M.remove()}).on("mouseleave",function(){M.remove()})};l.on("mousedown",function(e){var i=this.offsetTop,o=e.clientY,r=function(e){var r=i+(e.clientY-o),t=n[0].offsetHeight;r<0&&(r=0),r>t&&(r=t);var l=r/180*360;D=l,L(l,H,E,W),e.preventDefault()};Y(r),e.preventDefault()}),n.on("click",function(e){var o=e.clientY-i(this).offset().top;o<0&&(o=0),o>this.offsetHeight&&(o=this.offsetHeight);var r=o/180*360;D=r,L(r,H,E,W),e.preventDefault()}),y.on("mousedown",function(e){var i=this.offsetTop,o=this.offsetLeft,r=e.clientY,t=e.clientX,n=function(e){var n=i+(e.clientY-r),l=o+(e.clientX-t),a=c[0].offsetHeight-3,s=c[0].offsetWidth-3;n<-3&&(n=-3),n>a&&(n=a),l<-3&&(l=-3),l>s&&(l=s);var f=(l+3)/260*100,d=100-(n+3)/180*100;E=d,H=f,L(D,f,d,W),e.preventDefault()};layui.stope(e),Y(n),e.preventDefault()}),c.on("mousedown",function(e){var o=e.clientY-i(this).offset().top-3+B.scrollTop(),r=e.clientX-i(this).offset().left-3+B.scrollLeft();o<-3&&(o=-3),o>this.offsetHeight-3&&(o=this.offsetHeight-3),r<-3&&(r=-3),r>this.offsetWidth-3&&(r=this.offsetWidth-3);var t=(r+3)/260*100,n=100-(o+3)/180*100;E=n,H=t,L(D,t,n,W),e.preventDefault(),y.trigger(e,"mousedown")}),w.on("mousedown",function(e){var i=this.offsetLeft,o=e.clientX,r=function(e){var r=i+(e.clientX-o),t=C[0].offsetWidth;r<0&&(r=0),r>t&&(r=t);var n=Math.round(r/280*100)/100;W=n,L(D,H,E,n),e.preventDefault()};Y(r),e.preventDefault()}),C.on("click",function(e){var o=e.clientX-i(this).offset().left;o<0&&(o=0),o>this.offsetWidth&&(o=this.offsetWidth);var r=Math.round(o/280*100)/100;W=r,L(D,H,E,r),e.preventDefault()}),F.each(function(){i(this).on("click",function(){i(this).parent(".layui-colorpicker-pre").addClass("selected").siblings().removeClass("selected");var e,o=this.style.backgroundColor,r=k(P(o)),t=o.slice(o.lastIndexOf(",")+1,o.length-1);D=r.h,H=r.s,E=r.b,3==(o.match(/[0-9]{1,3}/g)||[]).length&&(t=1),W=t,e=280*t,L(r.h,r.s,r.b,t)})})},D.prototype.select=function(e,i,o,r){var t=this,n=(t.config,C({h:e,s:100,b:100})),l=C({h:e,s:i,b:o}),c=e/360*180,a=180-o/100*180-3,s=i/100*260-3;t.elemPicker.find("."+p).css("top",c),t.elemPicker.find("."+g)[0].style.background="#"+n,t.elemPicker.find("."+m).css({top:a,left:s}),"change"!==r&&t.elemPicker.find("."+b).find("input").val("#"+l)},D.prototype.pickerEvents=function(){var e=this,o=e.config,r=e.elemColorBox.find("."+f),t=e.elemPicker.find("."+b+" input"),n={clear:function(i){r[0].style.background="",e.elemColorBox.find("."+d).removeClass(a).addClass(s),e.color="",o.done&&o.done(""),e.removePicker()},confirm:function(i,n){var l=t.val(),c=l,f={};if(l.indexOf(",")>-1){if(f=k(P(l)),e.select(f.h,f.s,f.b),r[0].style.background=c="#"+C(f),(l.match(/[0-9]{1,3}/g)||[]).length>3&&"rgba"===r.attr("lay-type")){var u=280*l.slice(l.lastIndexOf(",")+1,l.length-1);e.elemPicker.find("."+h).css("left",u),r[0].style.background=l,c=l}}else f=y(l),r[0].style.background=c="#"+C(f),e.elemColorBox.find("."+d).removeClass(s).addClass(a);return"change"===n?(e.select(f.h,f.s,f.b,n),void(o.change&&o.change(c))):(e.color=l,o.done&&o.done(l),void e.removePicker())}};e.elemPicker.on("click","*[colorpicker-events]",function(){var e=i(this),o=e.attr("colorpicker-events");n[o]&&n[o].call(this,e)}),t.on("keyup",function(e){var o=i(this);n.confirm.call(this,o,13===e.keyCode?null:"change")})},D.prototype.events=function(){var e=this,o=e.config,r=e.elemColorBox.find("."+f);e.elemColorBox.on("click",function(){e.renderPicker(),i(c)[0]&&(e.val(),e.side())}),o.elem[0]&&!e.elemColorBox[0].eventHandler&&(w.on("click",function(o){if(!i(o.target).hasClass(l)&&!i(o.target).parents("."+l)[0]&&!i(o.target).hasClass(c.replace(/\./g,""))&&!i(o.target).parents(c)[0]&&e.elemPicker){if(e.color){var t=k(P(e.color));e.select(t.h,t.s,t.b)}else e.elemColorBox.find("."+d).removeClass(a).addClass(s);r[0].style.background=e.color||"",e.removePicker()}}),B.on("resize",function(){return!(!e.elemPicker||!i(c)[0])&&void e.position()}),e.elemColorBox[0].eventHandler=!0)},o.render=function(e){var i=new D(e);return r.call(i)},e(t,o)});layui.define("layer",function(e){"use strict";var t=layui.$,i=layui.layer,a=layui.hint(),n=layui.device(),l="form",r=".layui-form",s="layui-this",o="layui-hide",c="layui-disabled",u=function(){this.config={verify:{required:[/[\S]+/,"必填项不能为空"],phone:[/^1\d{10}$/,"请输入正确的手机号"],email:[/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/,"邮箱格式不正确"],url:[/(^#)|(^http(s*):\/\/[^\s]+\.[^\s]+)/,"链接格式不正确"],number:function(e){if(!e||isNaN(e))return"只能填写数字"},date:[/^(\d{4})[-\/](\d{1}|0\d{1}|1[0-2])([-\/](\d{1}|0\d{1}|[1-2][0-9]|3[0-1]))*$/,"日期格式不正确"],identity:[/(^\d{15}$)|(^\d{17}(x|X|\d)$)/,"请输入正确的身份证号"]}}};u.prototype.set=function(e){var i=this;return t.extend(!0,i.config,e),i},u.prototype.verify=function(e){var i=this;return t.extend(!0,i.config.verify,e),i},u.prototype.on=function(e,t){return layui.onevent.call(this,l,e,t)},u.prototype.val=function(e,i){var a=t(r+'[lay-filter="'+e+'"]');a.each(function(e,a){var n=t(this);layui.each(i,function(e,t){var i,a=n.find('[name="'+e+'"]');a[0]&&(i=a[0].type,"checkbox"===i?a[0].checked=t:"radio"===i?a.each(function(){this.value===t&&(this.checked=!0)}):a.val(t))})}),f.render(null,e)},u.prototype.render=function(e,i){var n=this,u=t(r+function(){return i?'[lay-filter="'+i+'"]':""}()),d={select:function(){var e,i="请选择",a="layui-form-select",n="layui-select-title",r="layui-select-none",d="",f=u.find("select"),v=function(i,l){t(i.target).parent().hasClass(n)&&!l||(t("."+a).removeClass(a+"ed "+a+"up"),e&&d&&e.val(d)),e=null},y=function(i,u,f){var y,p=t(this),m=i.find("."+n),k=m.find("input"),x=i.find("dl"),g=x.children("dd"),b=this.selectedIndex;if(!u){var C=function(){var e=i.offset().top+i.outerHeight()+5-h.scrollTop(),t=x.outerHeight();b=p[0].selectedIndex,i.addClass(a+"ed"),g.removeClass(o),y=null,g.eq(b).addClass(s).siblings().removeClass(s),e+t>h.height()&&e>=t&&i.addClass(a+"up"),$()},w=function(e){i.removeClass(a+"ed "+a+"up"),k.blur(),y=null,e||T(k.val(),function(e){var i=p[0].selectedIndex;e&&(d=t(p[0].options[i]).html(),0===i&&d===k.attr("placeholder")&&(d=""),k.val(d||""))})},$=function(){var e=x.children("dd."+s);if(e[0]){var t=e.position().top,i=x.height(),a=e.height();t>i&&x.scrollTop(t+x.scrollTop()-i+a-5),t<0&&x.scrollTop(t+x.scrollTop()-5)}};m.on("click",function(e){i.hasClass(a+"ed")?w():(v(e,!0),C()),x.find("."+r).remove()}),m.find(".layui-edge").on("click",function(){k.focus()}),k.on("keyup",function(e){var t=e.keyCode;9===t&&C()}).on("keydown",function(e){var t=e.keyCode;9===t&&w();var i=function(t,a){var n,l;e.preventDefault();var r=function(){var e=x.children("dd."+s);if(x.children("dd."+o)[0]&&"next"===t){var i=x.children("dd:not(."+o+",."+c+")"),n=i.eq(0).index();if(n>=0&&n<e.index()&&!i.hasClass(s))return i.eq(0).prev()[0]?i.eq(0).prev():x.children(":last")}return a&&a[0]?a:y&&y[0]?y:e}();return l=r[t](),n=r[t]("dd:not(."+o+")"),l[0]?(y=r[t](),n[0]&&!n.hasClass(c)||!y[0]?(n.addClass(s).siblings().removeClass(s),void $()):i(t,y)):y=null};38===t&&i("prev"),40===t&&i("next"),13===t&&(e.preventDefault(),x.children("dd."+s).trigger("click"))});var T=function(e,i,a){var n=0;layui.each(g,function(){var i=t(this),l=i.text(),r=l.indexOf(e)===-1;(""===e||"blur"===a?e!==l:r)&&n++,"keyup"===a&&i[r?"addClass":"removeClass"](o)});var l=n===g.length;return i(l),l},j=function(e){var t=this.value,i=e.keyCode;return 9!==i&&13!==i&&37!==i&&38!==i&&39!==i&&40!==i&&(T(t,function(e){e?x.find("."+r)[0]||x.append('<p class="'+r+'">无匹配项</p>'):x.find("."+r).remove()},"keyup"),""===t&&x.find("."+r).remove(),void $())};f&&k.on("keyup",j).on("blur",function(i){var a=p[0].selectedIndex;e=k,d=t(p[0].options[a]).html(),0===a&&d===k.attr("placeholder")&&(d=""),setTimeout(function(){T(k.val(),function(e){d||k.val("")},"blur")},200)}),g.on("click",function(){var e=t(this),a=e.attr("lay-value"),n=p.attr("lay-filter");return!e.hasClass(c)&&(e.hasClass("layui-select-tips")?k.val(""):(k.val(e.text()),e.addClass(s)),e.siblings().removeClass(s),p.val(a).removeClass("layui-form-danger"),layui.event.call(this,l,"select("+n+")",{elem:p[0],value:a,othis:i}),w(!0),!1)}),i.find("dl>dt").on("click",function(e){return!1}),t(document).off("click",v).on("click",v)}};f.each(function(e,l){var r=t(this),o=r.next("."+a),u=this.disabled,d=l.value,f=t(l.options[l.selectedIndex]),v=l.options[0];if("string"==typeof r.attr("lay-ignore"))return r.show();var h="string"==typeof r.attr("lay-search"),p=v?v.value?i:v.innerHTML||i:i,m=t(['<div class="'+(h?"":"layui-unselect ")+a,(u?" layui-select-disabled":"")+'">','<div class="'+n+'">','<input type="text" placeholder="'+p+'" '+('value="'+(d?f.html():"")+'"')+(h?"":" readonly")+' class="layui-input'+(h?"":" layui-unselect")+(u?" "+c:"")+'">','<i class="layui-edge"></i></div>','<dl class="layui-anim layui-anim-upbit'+(r.find("optgroup")[0]?" layui-select-group":"")+'">',function(e){var t=[];return layui.each(e,function(e,a){0!==e||a.value?"optgroup"===a.tagName.toLowerCase()?t.push("<dt>"+a.label+"</dt>"):t.push('<dd lay-value="'+a.value+'" class="'+(d===a.value?s:"")+(a.disabled?" "+c:"")+'">'+a.innerHTML+"</dd>"):t.push('<dd lay-value="" class="layui-select-tips">'+(a.innerHTML||i)+"</dd>")}),0===t.length&&t.push('<dd lay-value="" class="'+c+'">没有选项</dd>'),t.join("")}(r.find("*"))+"</dl>","</div>"].join(""));o[0]&&o.remove(),r.after(m),y.call(this,m,u,h)})},checkbox:function(){var e={checkbox:["layui-form-checkbox","layui-form-checked","checkbox"],_switch:["layui-form-switch","layui-form-onswitch","switch"]},i=u.find("input[type=checkbox]"),a=function(e,i){var a=t(this);e.on("click",function(){var t=a.attr("lay-filter"),n=(a.attr("lay-text")||"").split("|");a[0].disabled||(a[0].checked?(a[0].checked=!1,e.removeClass(i[1]).find("em").text(n[1])):(a[0].checked=!0,e.addClass(i[1]).find("em").text(n[0])),layui.event.call(a[0],l,i[2]+"("+t+")",{elem:a[0],value:a[0].value,othis:e}))})};i.each(function(i,n){var l=t(this),r=l.attr("lay-skin"),s=(l.attr("lay-text")||"").split("|"),o=this.disabled;"switch"===r&&(r="_"+r);var u=e[r]||e.checkbox;if("string"==typeof l.attr("lay-ignore"))return l.show();var d=l.next("."+u[0]),f=t(['<div class="layui-unselect '+u[0],n.checked?" "+u[1]:"",o?" layui-checkbox-disbaled "+c:"",'"',r?' lay-skin="'+r+'"':"",">",function(){var e=n.title.replace(/\s/g,""),t={checkbox:[e?"<span>"+n.title+"</span>":"",'<i class="layui-icon layui-icon-ok"></i>'].join(""),_switch:"<em>"+((n.checked?s[0]:s[1])||"")+"</em><i></i>"};return t[r]||t.checkbox}(),"</div>"].join(""));d[0]&&d.remove(),l.after(f),a.call(this,f,u)})},radio:function(){var e="layui-form-radio",i=["&#xe643;","&#xe63f;"],a=u.find("input[type=radio]"),n=function(a){var n=t(this),s="layui-anim-scaleSpring";a.on("click",function(){var o=n[0].name,c=n.parents(r),u=n.attr("lay-filter"),d=c.find("input[name="+o.replace(/(\.|#|\[|\])/g,"\\$1")+"]");n[0].disabled||(layui.each(d,function(){var a=t(this).next("."+e);this.checked=!1,a.removeClass(e+"ed"),a.find(".layui-icon").removeClass(s).html(i[1])}),n[0].checked=!0,a.addClass(e+"ed"),a.find(".layui-icon").addClass(s).html(i[0]),layui.event.call(n[0],l,"radio("+u+")",{elem:n[0],value:n[0].value,othis:a}))})};a.each(function(a,l){var r=t(this),s=r.next("."+e),o=this.disabled;if("string"==typeof r.attr("lay-ignore"))return r.show();s[0]&&s.remove();var u=t(['<div class="layui-unselect '+e,l.checked?" "+e+"ed":"",(o?" layui-radio-disbaled "+c:"")+'">','<i class="layui-anim layui-icon">'+i[l.checked?0:1]+"</i>","<div>"+function(){var e=l.title||"";return"string"==typeof r.next().attr("lay-radio")&&(e=r.next().html(),r.next().remove()),e}()+"</div>","</div>"].join(""));r.after(u),n.call(this,u)})}};return e?d[e]?d[e]():a.error("不支持的"+e+"表单渲染"):layui.each(d,function(e,t){t()}),n};var d=function(){var e=t(this),a=f.config.verify,s=null,o="layui-form-danger",c={},u=e.parents(r),d=u.find("*[lay-verify]"),v=e.parents("form")[0],h=u.find("input,select,textarea"),y=e.attr("lay-filter");if(layui.each(d,function(e,l){var r=t(this),c=r.attr("lay-verify").split("|"),u=r.attr("lay-verType"),d=r.val();if(r.removeClass(o),layui.each(c,function(e,t){var c,f="",v="function"==typeof a[t];if(a[t]){var c=v?f=a[t](d,l):!a[t][0].test(d);if(f=f||a[t][1],c)return"tips"===u?i.tips(f,function(){return"string"==typeof r.attr("lay-ignore")||"select"!==l.tagName.toLowerCase()&&!/^checkbox|radio$/.test(l.type)?r:r.next()}(),{tips:1}):"alert"===u?i.alert(f,{title:"提示",shadeClose:!0}):i.msg(f,{icon:5,shift:6}),n.android||n.ios||l.focus(),r.addClass(o),s=!0}}),s)return s}),s)return!1;var p={};return layui.each(h,function(e,t){if(t.name=(t.name||"").replace(/^\s*|\s*&/,""),t.name){if(/^.*\[\]$/.test(t.name)){var i=t.name.match(/^(.*)\[\]$/g)[0];p[i]=0|p[i],t.name=t.name.replace(/^(.*)\[\]$/,"$1["+p[i]++ +"]")}/^checkbox|radio$/.test(t.type)&&!t.checked||(c[t.name]=t.value)}}),layui.event.call(this,l,"submit("+y+")",{elem:this,form:v,field:c})},f=new u,v=t(document),h=t(window);f.render(),v.on("reset",r,function(){var e=t(this).attr("lay-filter");setTimeout(function(){f.render(null,e)},50)}),v.on("submit",r,d).on("click","*[lay-submit]",d),e(l,f)});layui.define("jquery",function(e){"use strict";var o=layui.$,a=layui.hint(),i="layui-tree-enter",r=function(e){this.options=e},t={arrow:["&#xe623;","&#xe625;"],checkbox:["&#xe626;","&#xe627;"],radio:["&#xe62b;","&#xe62a;"],branch:["&#xe622;","&#xe624;"],leaf:"&#xe621;"};r.prototype.init=function(e){var o=this;e.addClass("layui-box layui-tree"),o.options.skin&&e.addClass("layui-tree-skin-"+o.options.skin),o.tree(e),o.on(e)},r.prototype.tree=function(e,a){var i=this,r=i.options,n=a||r.nodes;layui.each(n,function(a,n){var l=n.children&&n.children.length>0,c=o('<ul class="'+(n.spread?"layui-show":"")+'"></ul>'),s=o(["<li "+(n.spread?'data-spread="'+n.spread+'"':"")+">",function(){return l?'<i class="layui-icon layui-tree-spread">'+(n.spread?t.arrow[1]:t.arrow[0])+"</i>":""}(),function(){return r.check?'<i class="layui-icon layui-tree-check">'+("checkbox"===r.check?t.checkbox[0]:"radio"===r.check?t.radio[0]:"")+"</i>":""}(),function(){return'<a href="'+(n.href||"javascript:;")+'" '+(r.target&&n.href?'target="'+r.target+'"':"")+">"+('<i class="layui-icon layui-tree-'+(l?"branch":"leaf")+'">'+(l?n.spread?t.branch[1]:t.branch[0]:t.leaf)+"</i>")+("<cite>"+(n.name||"未命名")+"</cite></a>")}(),"</li>"].join(""));l&&(s.append(c),i.tree(c,n.children)),e.append(s),"function"==typeof r.click&&i.click(s,n),i.spread(s,n),r.drag&&i.drag(s,n)})},r.prototype.click=function(e,o){var a=this,i=a.options;e.children("a").on("click",function(e){layui.stope(e),i.click(o)})},r.prototype.spread=function(e,o){var a=this,i=(a.options,e.children(".layui-tree-spread")),r=e.children("ul"),n=e.children("a"),l=function(){e.data("spread")?(e.data("spread",null),r.removeClass("layui-show"),i.html(t.arrow[0]),n.find(".layui-icon").html(t.branch[0])):(e.data("spread",!0),r.addClass("layui-show"),i.html(t.arrow[1]),n.find(".layui-icon").html(t.branch[1]))};r[0]&&(i.on("click",l),n.on("dblclick",l))},r.prototype.on=function(e){var a=this,r=a.options,t="layui-tree-drag";e.find("i").on("selectstart",function(e){return!1}),r.drag&&o(document).on("mousemove",function(e){var i=a.move;if(i.from){var r=(i.to,o('<div class="layui-box '+t+'"></div>'));e.preventDefault(),o("."+t)[0]||o("body").append(r);var n=o("."+t)[0]?o("."+t):r;n.addClass("layui-show").html(i.from.elem.children("a").html()),n.css({left:e.pageX+10,top:e.pageY+10})}}).on("mouseup",function(){var e=a.move;e.from&&(e.from.elem.children("a").removeClass(i),e.to&&e.to.elem.children("a").removeClass(i),a.move={},o("."+t).remove())})},r.prototype.move={},r.prototype.drag=function(e,a){var r=this,t=(r.options,e.children("a")),n=function(){var t=o(this),n=r.move;n.from&&(n.to={item:a,elem:e},t.addClass(i))};t.on("mousedown",function(){var o=r.move;o.from={item:a,elem:e}}),t.on("mouseenter",n).on("mousemove",n).on("mouseleave",function(){var e=o(this),a=r.move;a.from&&(delete a.to,e.removeClass(i))})},e("tree",function(e){var i=new r(e=e||{}),t=o(e.elem);return t[0]?void i.init(t):a.error("layui.tree 没有找到"+e.elem+"元素")})});layui.define(["laytpl","laypage","layer","form","util"],function(e){"use strict";var t=layui.$,i=layui.laytpl,a=layui.laypage,l=layui.layer,n=layui.form,o=(layui.util,layui.hint()),r=layui.device(),d={config:{checkName:"LAY_CHECKED",indexName:"LAY_TABLE_INDEX"},cache:{},index:layui.table?layui.table.index+1e4:0,set:function(e){var i=this;return i.config=t.extend({},i.config,e),i},on:function(e,t){return layui.onevent.call(this,u,e,t)}},c=function(){var e=this,t=e.config,i=t.id||t.index;return i&&(c.that[i]=e,c.config[i]=t),{reload:function(t){e.reload.call(e,t)},setColsWidth:function(){e.setColsWidth.call(e)},resize:function(){e.resize.call(e)},config:t}},s=function(e){var t=c.config[e];return t||o.error("The ID option was not found in the table instance"),t||null},u="table",h=".layui-table",y="layui-hide",f="layui-none",p="layui-table-view",v=".layui-table-tool",m=".layui-table-box",g=".layui-table-init",b=".layui-table-header",x=".layui-table-body",k=".layui-table-main",C=".layui-table-fixed",w=".layui-table-fixed-l",T=".layui-table-fixed-r",A=".layui-table-total",L=".layui-table-page",S=".layui-table-sort",N="layui-table-edit",W="layui-table-hover",_=function(e){var t='{{#if(item2.colspan){}} colspan="{{item2.colspan}}"{{#} if(item2.rowspan){}} rowspan="{{item2.rowspan}}"{{#}}}';return e=e||{},['<table cellspacing="0" cellpadding="0" border="0" class="layui-table" ','{{# if(d.data.skin){ }}lay-skin="{{d.data.skin}}"{{# } }} {{# if(d.data.size){ }}lay-size="{{d.data.size}}"{{# } }} {{# if(d.data.even){ }}lay-even{{# } }}>',"<thead>","{{# layui.each(d.data.cols, function(i1, item1){ }}","<tr>","{{# layui.each(item1, function(i2, item2){ }}",'{{# if(item2.fixed && item2.fixed !== "right"){ left = true; } }}','{{# if(item2.fixed === "right"){ right = true; } }}',function(){return e.fixed&&"right"!==e.fixed?'{{# if(item2.fixed && item2.fixed !== "right"){ }}':"right"===e.fixed?'{{# if(item2.fixed === "right"){ }}':""}(),"{{# var isSort = !(item2.colGroup) && item2.sort; }}",'<th data-field="{{ item2.field||i2 }}" data-key="{{d.index}}-{{i1}}-{{i2}}" {{# if( item2.parentKey){ }}data-parentkey="{{ item2.parentKey }}"{{# } }} {{# if(item2.minWidth){ }}data-minwidth="{{item2.minWidth}}"{{# } }} '+t+' {{# if(item2.unresize || item2.colGroup){ }}data-unresize="true"{{# } }} class="{{# if(item2.hide){ }}layui-hide{{# } }}{{# if(isSort){ }} layui-unselect{{# } }}{{# if(!item2.field){ }} layui-table-col-special{{# } }}">','<div class="layui-table-cell laytable-cell-',"{{# if(item2.colGroup){ }}","group","{{# } else { }}","{{d.index}}-{{i1}}-{{i2}}",'{{# if(item2.type !== "normal"){ }}'," laytable-cell-{{ item2.type }}","{{# } }}","{{# } }}",'" {{#if(item2.align){}}align="{{item2.align}}"{{#}}}>','{{# if(item2.type === "checkbox"){ }}','<input type="checkbox" name="layTableCheckbox" lay-skin="primary" lay-filter="layTableAllChoose" {{# if(item2[d.data.checkName]){ }}checked{{# }; }}>',"{{# } else { }}",'<span>{{item2.title||""}}</span>',"{{# if(isSort){ }}",'<span class="layui-table-sort layui-inline"><i class="layui-edge layui-table-sort-asc" title="升序"></i><i class="layui-edge layui-table-sort-desc" title="降序"></i></span>',"{{# } }}","{{# } }}","</div>","</th>",e.fixed?"{{# }; }}":"","{{# }); }}","</tr>","{{# }); }}","</thead>","</table>"].join("")},E=['<table cellspacing="0" cellpadding="0" border="0" class="layui-table" ','{{# if(d.data.skin){ }}lay-skin="{{d.data.skin}}"{{# } }} {{# if(d.data.size){ }}lay-size="{{d.data.size}}"{{# } }} {{# if(d.data.even){ }}lay-even{{# } }}>',"<tbody></tbody>","</table>"].join(""),z=['<div class="layui-form layui-border-box {{d.VIEW_CLASS}}" lay-filter="LAY-table-{{d.index}}" lay-id="{{ d.data.id }}" style="{{# if(d.data.width){ }}width:{{d.data.width}}px;{{# } }} {{# if(d.data.height){ }}height:{{d.data.height}}px;{{# } }}">',"{{# if(d.data.toolbar){ }}",'<div class="layui-table-tool">','<div class="layui-table-tool-temp"></div>','<div class="layui-table-tool-self"></div>',"</div>","{{# } }}",'<div class="layui-table-box">',"{{# if(d.data.loading){ }}",'<div class="layui-table-init" style="background-color: #fff;">','<i class="layui-icon layui-icon-loading layui-icon"></i>',"</div>","{{# } }}","{{# var left, right; }}",'<div class="layui-table-header">',_(),"</div>",'<div class="layui-table-body layui-table-main">',E,"</div>","{{# if(left){ }}",'<div class="layui-table-fixed layui-table-fixed-l">','<div class="layui-table-header">',_({fixed:!0}),"</div>",'<div class="layui-table-body">',E,"</div>","</div>","{{# }; }}","{{# if(right){ }}",'<div class="layui-table-fixed layui-table-fixed-r">','<div class="layui-table-header">',_({fixed:"right"}),'<div class="layui-table-mend"></div>',"</div>",'<div class="layui-table-body">',E,"</div>","</div>","{{# }; }}","</div>","{{# if(d.data.totalRow){ }}",'<div class="layui-table-total">','<table cellspacing="0" cellpadding="0" border="0" class="layui-table" ','{{# if(d.data.skin){ }}lay-skin="{{d.data.skin}}"{{# } }} {{# if(d.data.size){ }}lay-size="{{d.data.size}}"{{# } }} {{# if(d.data.even){ }}lay-even{{# } }}>','<tbody><tr><td><div class="layui-table-cell" style="visibility: hidden;">Total</div></td></tr></tbody>',"</table>","</div>","{{# } }}","{{# if(d.data.page){ }}",'<div class="layui-table-page">','<div id="layui-table-page{{d.index}}"></div>',"</div>","{{# } }}","<style>","{{# layui.each(d.data.cols, function(i1, item1){","layui.each(item1, function(i2, item2){ }}",".laytable-cell-{{d.index}}-{{i1}}-{{i2}}{ ","{{# if(item2.width){ }}","width: {{item2.width}}px;","{{# } }}"," }","{{# });","}); }}","</style>","</div>"].join(""),H=t(window),R=t(document),F=function(e){var i=this;i.index=++d.index,i.config=t.extend({},i.config,d.config,e),i.render()};F.prototype.config={limit:10,loading:!0,cellMinWidth:60,defaultToolbar:["filter","exports","print"],autoSort:!0,text:{none:"无数据"}},F.prototype.render=function(){var e=this,a=e.config;if(a.elem=t(a.elem),a.where=a.where||{},a.id=a.id||a.elem.attr("id")||e.index,a.request=t.extend({pageName:"page",limitName:"limit"},a.request),a.response=t.extend({statusName:"code",statusCode:0,msgName:"msg",dataName:"data",countName:"count"},a.response),"object"==typeof a.page&&(a.limit=a.page.limit||a.limit,a.limits=a.page.limits||a.limits,e.page=a.page.curr=a.page.curr||1,delete a.page.elem,delete a.page.jump),!a.elem[0])return e;a.height&&/^full-\d+$/.test(a.height)&&(e.fullHeightGap=a.height.split("-")[1],a.height=H.height()-e.fullHeightGap),e.setInit();var l=a.elem,n=l.next("."+p),o=e.elem=t(i(z).render({VIEW_CLASS:p,data:a,index:e.index}));if(a.index=e.index,n[0]&&n.remove(),l.after(o),e.layTool=o.find(v),e.layBox=o.find(m),e.layHeader=o.find(b),e.layMain=o.find(k),e.layBody=o.find(x),e.layFixed=o.find(C),e.layFixLeft=o.find(w),e.layFixRight=o.find(T),e.layTotal=o.find(A),e.layPage=o.find(L),e.renderToolbar(),e.fullSize(),a.cols.length>1){var r=e.layFixed.find(b).find("th");r.height(e.layHeader.height()-1-parseFloat(r.css("padding-top"))-parseFloat(r.css("padding-bottom")))}e.pullData(e.page),e.events()},F.prototype.initOpts=function(e){var t=this,i=(t.config,{checkbox:48,radio:48,space:15,numbers:40});e.checkbox&&(e.type="checkbox"),e.space&&(e.type="space"),e.type||(e.type="normal"),"normal"!==e.type&&(e.unresize=!0,e.width=e.width||i[e.type])},F.prototype.setInit=function(e){var t=this,i=t.config;return i.clientWidth=i.width||function(){var e=function(t){var a,l;t=t||i.elem.parent(),a=t.width();try{l="none"===t.css("display")}catch(n){}return!t[0]||a&&!l?a:e(t.parent())};return e()}(),"width"===e?i.clientWidth:void layui.each(i.cols,function(e,a){layui.each(a,function(l,n){if(!n)return void a.splice(l,1);if(n.key=e+"-"+l,n.hide=n.hide||!1,n.colGroup||n.colspan>1){var o=0;layui.each(i.cols[e+1],function(t,i){i.HAS_PARENT||o>1&&o==n.colspan||(i.HAS_PARENT=!0,i.parentKey=e+"-"+l,o+=parseInt(i.colspan>1?i.colspan:1))}),n.colGroup=!0}t.initOpts(n)})})},F.prototype.renderToolbar=function(){var e=this,a=e.config,l=['<div class="layui-inline" lay-event="add"><i class="layui-icon layui-icon-add-1"></i></div>','<div class="layui-inline" lay-event="update"><i class="layui-icon layui-icon-edit"></i></div>','<div class="layui-inline" lay-event="delete"><i class="layui-icon layui-icon-delete"></i></div>'].join(""),n=e.layTool.find(".layui-table-tool-temp");if("default"===a.toolbar)n.html(l);else if("string"==typeof a.toolbar){var o=t(a.toolbar).html()||"";o&&n.html(i(o).render(a))}var r={filter:{title:"筛选列",layEvent:"LAYTABLE_COLS",icon:"layui-icon-cols"},exports:{title:"导出",layEvent:"LAYTABLE_EXPORT",icon:"layui-icon-export"},print:{title:"打印",layEvent:"LAYTABLE_PRINT",icon:"layui-icon-print"}},d=[];"object"==typeof a.defaultToolbar&&layui.each(a.defaultToolbar,function(e,t){var i=r[t];i&&d.push('<div class="layui-inline" title="'+i.title+'" lay-event="'+i.layEvent+'"><i class="layui-icon '+i.icon+'"></i></div>')}),e.layTool.find(".layui-table-tool-self").html(d.join(""))},F.prototype.setParentCol=function(e,t){var i=this,a=i.config,l=i.layHeader.find('th[data-key="'+a.index+"-"+t+'"]'),n=parseInt(l.attr("colspan"))||0;if(l[0]){var o=t.split("-"),r=a.cols[o[0]][o[1]];e?n--:n++,l.attr("colspan",n),l[n<1?"addClass":"removeClass"](y),r.colspan=n,r.hide=n<1;var d=l.data("parentkey");d&&i.setParentCol(e,d)}},F.prototype.setColsPatch=function(){var e=this,t=e.config;layui.each(t.cols,function(t,i){layui.each(i,function(t,i){i.hide&&e.setParentCol(i.hide,i.parentKey)})})},F.prototype.setColsWidth=function(){var e=this,t=e.config,i=0,a=0,l=0,n=0,o=e.setInit("width");e.eachCols(function(e,t){t.hide||i++}),o=o-function(){return"line"===t.skin||"nob"===t.skin?2:i+1}()-e.getScrollWidth(e.layMain[0])-1;var r=function(e){layui.each(t.cols,function(i,r){layui.each(r,function(i,d){var c=0,s=d.minWidth||t.cellMinWidth;return d?void(d.colGroup||d.hide||(e?l&&l<s&&(a--,c=s):(c=d.width||0,/\d+%$/.test(c)?(c=Math.floor(parseFloat(c)/100*o),c<s&&(c=s)):c||(d.width=c=0,a++)),d.hide&&(c=0),n+=c)):void r.splice(i,1)})}),o>n&&a&&(l=(o-n)/a)};r(),r(!0),e.autoColNums=a,e.eachCols(function(i,a){var n=a.minWidth||t.cellMinWidth;a.colGroup||a.hide||(0===a.width?e.getCssRule(t.index+"-"+a.key,function(e){e.style.width=Math.floor(l>=n?l:n)+"px"}):/\d+%$/.test(a.width)&&e.getCssRule(t.index+"-"+a.key,function(e){e.style.width=Math.floor(parseFloat(a.width)/100*o)+"px"}))});var d=e.layMain.width()-e.getScrollWidth(e.layMain[0])-e.layMain.children("table").outerWidth();if(e.autoColNums&&d>=-i&&d<=i){var c=function(t){var i;return t=t||e.layHeader.eq(0).find("thead th:last-child"),i=t.data("field"),!i&&t.prev()[0]?c(t.prev()):t},s=c(),u=s.data("key");e.getCssRule(u,function(t){var i=t.style.width||s.outerWidth();t.style.width=parseFloat(i)+d+"px",e.layMain.height()-e.layMain.prop("clientHeight")>0&&(t.style.width=parseFloat(t.style.width)-1+"px")})}e.loading(!0)},F.prototype.resize=function(){var e=this;e.fullSize(),e.setColsWidth(),e.scrollPatch()},F.prototype.reload=function(e){var i=this;i.config.data&&i.config.data.constructor===Array&&delete i.config.data,i.config=t.extend({},i.config,e),i.render()},F.prototype.page=1,F.prototype.pullData=function(e){var i=this,a=i.config,l=a.request,n=a.response,o=function(){"object"==typeof a.initSort&&i.sort(a.initSort.field,a.initSort.type)};if(i.startTime=(new Date).getTime(),a.url){var r={};r[l.pageName]=e,r[l.limitName]=a.limit;var d=t.extend(r,a.where);a.contentType&&0==a.contentType.indexOf("application/json")&&(d=JSON.stringify(d)),t.ajax({type:a.method||"get",url:a.url,contentType:a.contentType,data:d,dataType:"json",headers:a.headers||{},success:function(t){"function"==typeof a.parseData&&(t=a.parseData(t)||t),t[n.statusName]!=n.statusCode?(i.renderForm(),i.layMain.html('<div class="'+f+'">'+(t[n.msgName]||"返回的数据不符合规范,正确的成功状态码 ("+n.statusName+") 应为:"+n.statusCode)+"</div>")):(i.renderData(t,e,t[n.countName]),o(),a.time=(new Date).getTime()-i.startTime+" ms"),i.setColsWidth(),"function"==typeof a.done&&a.done(t,e,t[n.countName])},error:function(e,t){i.layMain.html('<div class="'+f+'">数据接口请求异常:'+t+"</div>"),i.renderForm(),i.setColsWidth()}})}else if(a.data&&a.data.constructor===Array){var c={},s=e*a.limit-a.limit;c[n.dataName]=a.data.concat().splice(s,a.limit),c[n.countName]=a.data.length,i.renderData(c,e,a.data.length),o(),i.setColsWidth(),"function"==typeof a.done&&a.done(c,e,c[n.countName])}},F.prototype.eachCols=function(e){var t=this;return d.eachCols(null,e,t.config.cols),t},F.prototype.renderData=function(e,n,o,r){var c=this,s=c.config,u=e[s.response.dataName]||[],h=[],p=[],v=[],m=function(){var e;return!r&&c.sortKey?c.sort(c.sortKey.field,c.sortKey.sort,!0):(layui.each(u,function(a,l){var o=[],u=[],f=[],m=a+s.limit*(n-1)+1;0!==l.length&&(r||(l[d.config.indexName]=a),c.eachCols(function(n,r){var c=r.field||n,h=s.index+"-"+r.key,p=l[c];if(void 0!==p&&null!==p||(p=""),!r.colGroup){var v=['<td data-field="'+c+'" data-key="'+h+'" '+function(){var e=[];return r.edit&&e.push('data-edit="'+r.edit+'"'),r.align&&e.push('align="'+r.align+'"'),r.templet&&e.push('data-content="'+p+'"'),r.toolbar&&e.push('data-off="true"'),r.event&&e.push('lay-event="'+r.event+'"'),r.style&&e.push('style="'+r.style+'"'),r.minWidth&&e.push('data-minwidth="'+r.minWidth+'"'),e.join(" ")}()+' class="'+function(){var e=[];return r.hide&&e.push(y),r.field||e.push("layui-table-col-special"),e.join(" ")}()+'">','<div class="layui-table-cell laytable-cell-'+function(){return"normal"===r.type?h:h+" laytable-cell-"+r.type}()+'">'+function(){var n=t.extend(!0,{LAY_INDEX:m},l),o=d.config.checkName;switch(r.type){case"checkbox":return'<input type="checkbox" name="layTableCheckbox" lay-skin="primary" '+function(){return r[o]?(l[o]=r[o],r[o]?"checked":""):n[o]?"checked":""}()+">";case"radio":return n[o]&&(e=a),'<input type="radio" name="layTableRadio_'+s.index+'" '+(n[o]?"checked":"")+' lay-type="layTableRadio">';case"numbers":return m}return r.toolbar?i(t(r.toolbar).html()||"").render(n):r.templet?function(){return"function"==typeof r.templet?r.templet(n):i(t(r.templet).html()||String(p)).render(n)}():p}(),"</div></td>"].join("");o.push(v),r.fixed&&"right"!==r.fixed&&u.push(v),"right"===r.fixed&&f.push(v)}}),h.push('<tr data-index="'+a+'">'+o.join("")+"</tr>"),p.push('<tr data-index="'+a+'">'+u.join("")+"</tr>"),v.push('<tr data-index="'+a+'">'+f.join("")+"</tr>"))}),c.layBody.scrollTop(0),c.layMain.find("."+f).remove(),c.layMain.find("tbody").html(h.join("")),c.layFixLeft.find("tbody").html(p.join("")),c.layFixRight.find("tbody").html(v.join("")),c.renderForm(),"number"==typeof e&&c.setThisRowChecked(e),c.syncCheckAll(),c.haveInit?c.scrollPatch():setTimeout(function(){c.scrollPatch()},50),c.haveInit=!0,l.close(c.tipsIndex),s.HAS_SET_COLS_PATCH||c.setColsPatch(),void(s.HAS_SET_COLS_PATCH=!0))};return c.key=s.id||s.index,d.cache[c.key]=u,c.layPage[0==o||0===u.length&&1==n?"addClass":"removeClass"](y),r?m():0===u.length?(c.renderForm(),c.layFixed.remove(),c.layMain.find("tbody").html(""),c.layMain.find("."+f).remove(),c.layMain.append('<div class="'+f+'">'+s.text.none+"</div>")):(m(),c.renderTotal(u),void(s.page&&(s.page=t.extend({elem:"layui-table-page"+s.index,count:o,limit:s.limit,limits:s.limits||[10,20,30,40,50,60,70,80,90],groups:3,layout:["prev","page","next","skip","count","limit"],prev:'<i class="layui-icon">&#xe603;</i>',next:'<i class="layui-icon">&#xe602;</i>',jump:function(e,t){t||(c.page=e.curr,s.limit=e.limit,c.loading(),c.pullData(e.curr))}},s.page),s.page.count=o,a.render(s.page))))},F.prototype.renderTotal=function(e){var t=this,i=t.config,a={};if(i.totalRow){layui.each(e,function(e,i){0!==i.length&&t.eachCols(function(e,t){var l=t.field||e,n=i[l];t.totalRow&&(a[l]=(a[l]||0)+(parseFloat(n)||0))})});var l=[];t.eachCols(function(e,t){var n=t.field||e,o=['<td data-field="'+n+'" data-key="'+i.index+"-"+t.key+'" '+function(){var e=[];return t.align&&e.push('align="'+t.align+'"'),t.style&&e.push('style="'+t.style+'"'),t.minWidth&&e.push('data-minwidth="'+t.minWidth+'"'),e.join(" ")}()+' class="'+function(){var e=[];return t.hide&&e.push(y),t.field||e.push("layui-table-col-special"),e.join(" ")}()+'">','<div class="layui-table-cell laytable-cell-'+function(){var e=i.index+"-"+t.key;return"normal"===t.type?e:e+" laytable-cell-"+t.type}()+'">'+function(){var e=t.totalRowText||"";return t.totalRow?parseFloat(a[n]).toFixed(2)||e:e}(),"</div></td>"].join("");l.push(o)}),t.layTotal.find("tbody").html("<tr>"+l.join("")+"</tr>")}},F.prototype.getColElem=function(e,t){var i=this,a=i.config;return e.eq(0).find(".laytable-cell-"+(a.index+"-"+t)+":eq(0)")},F.prototype.renderForm=function(e){n.render(e,"LAY-table-"+this.index)},F.prototype.setThisRowChecked=function(e){var t=this,i=(t.config,"layui-table-click"),a=t.layBody.find('tr[data-index="'+e+'"]');a.addClass(i).siblings("tr").removeClass(i)},F.prototype.sort=function(e,i,a,l){var n,r,c=this,s={},h=c.config,y=h.elem.attr("lay-filter"),f=d.cache[c.key];"string"==typeof e&&c.layHeader.find("th").each(function(i,a){var l=t(this),o=l.data("field");if(o===e)return e=l,n=o,!1});try{var n=n||e.data("field"),p=e.data("key");if(c.sortKey&&!a&&n===c.sortKey.field&&i===c.sortKey.sort)return;var v=c.layHeader.find("th .laytable-cell-"+p).find(S);c.layHeader.find("th").find(S).removeAttr("lay-sort"),v.attr("lay-sort",i||null),c.layFixed.find("th")}catch(m){return o.error("Table modules: Did not match to field")}c.sortKey={field:n,sort:i},h.autoSort&&("asc"===i?r=layui.sort(f,n):"desc"===i?r=layui.sort(f,n,!0):(r=layui.sort(f,d.config.indexName),delete c.sortKey)),s[h.response.dataName]=r||f,c.renderData(s,c.page,c.count,!0),l&&layui.event.call(e,u,"sort("+y+")",{field:n,type:i})},F.prototype.loading=function(e){var i=this,a=i.config;a.loading&&(e?(i.layInit&&i.layInit.remove(),delete i.layInit,i.layBox.find(g).remove()):(i.layInit=t(['<div class="layui-table-init">','<i class="layui-icon layui-icon-loading layui-icon"></i>',"</div>"].join("")),i.layBox.append(i.layInit)))},F.prototype.setCheckData=function(e,t){var i=this,a=i.config,l=d.cache[i.key];l[e]&&l[e].constructor!==Array&&(l[e][a.checkName]=t)},F.prototype.syncCheckAll=function(){var e=this,t=e.config,i=e.layHeader.find('input[name="layTableCheckbox"]'),a=function(i){return e.eachCols(function(e,a){"checkbox"===a.type&&(a[t.checkName]=i)}),i};i[0]&&(d.checkStatus(e.key).isAll?(i[0].checked||(i.prop("checked",!0),e.renderForm("checkbox")),a(!0)):(i[0].checked&&(i.prop("checked",!1),e.renderForm("checkbox")),a(!1)))},F.prototype.getCssRule=function(e,t){var i=this,a=i.elem.find("style")[0],l=a.sheet||a.styleSheet||{},n=l.cssRules||l.rules;layui.each(n,function(i,a){if(a.selectorText===".laytable-cell-"+e)return t(a),!0})},F.prototype.fullSize=function(){var e,t=this,i=t.config,a=i.height;t.fullHeightGap&&(a=H.height()-t.fullHeightGap,a<135&&(a=135),t.elem.css("height",a)),a&&(e=parseFloat(a)-(t.layHeader.outerHeight()||38),i.toolbar&&(e-=t.layTool.outerHeight()||50),i.totalRow&&(e-=t.layTotal.outerHeight()||40),i.page&&(e=e-(t.layPage.outerHeight()||41)-2),t.layMain.css("height",e))},F.prototype.getScrollWidth=function(e){var t=0;return e?t=e.offsetWidth-e.clientWidth:(e=document.createElement("div"),e.style.width="100px",e.style.height="100px",e.style.overflowY="scroll",document.body.appendChild(e),t=e.offsetWidth-e.clientWidth,document.body.removeChild(e)),t},F.prototype.scrollPatch=function(){var e=this,i=e.layMain.children("table"),a=e.layMain.width()-e.layMain.prop("clientWidth"),l=e.layMain.height()-e.layMain.prop("clientHeight"),n=(e.getScrollWidth(e.layMain[0]),i.outerWidth()-e.layMain.width()),o=function(e){if(a&&l){if(e=e.eq(0),!e.find(".layui-table-patch")[0]){var i=t('<th class="layui-table-patch"><div class="layui-table-cell"></div></th>');i.find("div").css({width:a}),e.find("tr").append(i)}}else e.find(".layui-table-patch").remove()};o(e.layHeader),o(e.layTotal);var r=e.layMain.height(),d=r-l;e.layFixed.find(x).css("height",i.height()>=d?d:"auto"),e.layFixRight[n>0?"removeClass":"addClass"](y),e.layFixRight.css("right",a-1)},F.prototype.events=function(){var e,a=this,o=a.config,c=t("body"),s={},h=a.layHeader.find("th"),f=".layui-table-cell",p=o.elem.attr("lay-filter");a.layTool.on("click","*[lay-event]",function(e){var i=t(this),c=i.attr("lay-event"),s=function(e){var l=t(e.list),n=t('<ul class="layui-table-tool-panel"></ul>');n.html(l),o.height&&n.css("max-height",o.height-(a.layTool.outerHeight()||50)),i.find(".layui-table-tool-panel")[0]||i.append(n),a.renderForm(),n.on("click",function(e){layui.stope(e)}),e.done&&e.done(n,l)};switch(layui.stope(e),R.trigger("table.tool.panel.remove"),l.close(a.tipsIndex),c){case"LAYTABLE_COLS":s({list:function(){var e=[];return a.eachCols(function(t,i){i.field&&"normal"==i.type&&e.push('<li><input type="checkbox" name="'+i.field+'" data-key="'+i.key+'" data-parentkey="'+(i.parentKey||"")+'" lay-skin="primary" '+(i.hide?"":"checked")+' title="'+(i.title||i.field)+'" lay-filter="LAY_TABLE_TOOL_COLS"></li>')}),e.join("")}(),done:function(){n.on("checkbox(LAY_TABLE_TOOL_COLS)",function(e){var i=t(e.elem),l=this.checked,n=i.data("key"),r=i.data("parentkey");layui.each(o.cols,function(e,t){layui.each(t,function(t,i){if(e+"-"+t===n){var d=i.hide;i.hide=!l,a.elem.find('*[data-key="'+o.index+"-"+n+'"]')[l?"removeClass":"addClass"](y),d!=i.hide&&a.setParentCol(!l,r),a.resize()}})})})}});break;case"LAYTABLE_EXPORT":r.ie?l.tips("导出功能不支持 IE,请用 Chrome 等高级浏览器导出",this,{tips:3}):s({list:function(){return['<li data-type="csv">导出到 Csv 文件</li>','<li data-type="xls">导出到 Excel 文件</li>'].join("")}(),done:function(e,i){i.on("click",function(){var e=t(this).data("type");d.exportFile(o.id,null,e)})}});break;case"LAYTABLE_PRINT":var h=window.open("打印窗口","_blank"),f=["<style>","body{font-size: 12px; color: #666;}","table{width: 100%; border-collapse: collapse; border-spacing: 0;}","th,td{line-height: 20px; padding: 9px 15px; border: 1px solid #ccc; text-align: left; font-size: 12px; color: #666;}","a{color: #666; text-decoration:none;}","*.layui-hide{display: none}","</style>"].join(""),v=t(a.layHeader.html());v.append(a.layMain.find("table").html()),v.find("th.layui-table-patch").remove(),v.find(".layui-table-col-special").remove(),h.document.write(f+v.prop("outerHTML")),h.document.close(),h.print(),h.close()}layui.event.call(this,u,"toolbar("+p+")",t.extend({event:c,config:o},{}))}),h.on("mousemove",function(e){var i=t(this),a=i.offset().left,l=e.clientX-a;i.data("unresize")||s.resizeStart||(s.allowResize=i.width()-l<=10,c.css("cursor",s.allowResize?"col-resize":""))}).on("mouseleave",function(){t(this);s.resizeStart||c.css("cursor","")}).on("mousedown",function(e){var i=t(this);if(s.allowResize){var l=i.data("key");e.preventDefault(),s.resizeStart=!0,s.offset=[e.clientX,e.clientY],a.getCssRule(l,function(e){var t=e.style.width||i.outerWidth();s.rule=e,s.ruleWidth=parseFloat(t),s.minWidth=i.data("minwidth")||o.cellMinWidth})}}),R.on("mousemove",function(t){if(s.resizeStart){if(t.preventDefault(),s.rule){var i=s.ruleWidth+t.clientX-s.offset[0];i<s.minWidth&&(i=s.minWidth),s.rule.style.width=i+"px",l.close(a.tipsIndex)}e=1}}).on("mouseup",function(t){s.resizeStart&&(s={},c.css("cursor",""),a.scrollPatch()),2===e&&(e=null)}),h.on("click",function(i){var l,n=t(this),o=n.find(S),r=o.attr("lay-sort");return o[0]&&1!==e?(l="asc"===r?"desc":"desc"===r?null:"asc",void a.sort(n,l,null,!0)):e=2}).find(S+" .layui-edge ").on("click",function(e){var i=t(this),l=i.index(),n=i.parents("th").eq(0).data("field");layui.stope(e),0===l?a.sort(n,"asc",null,!0):a.sort(n,"desc",null,!0)});var v=function(e){var l=t(this),n=l.parents("tr").eq(0).data("index"),o=a.layBody.find('tr[data-index="'+n+'"]'),r=d.cache[a.key][n];return t.extend({tr:o,data:d.clearCacheKey(r),del:function(){d.cache[a.key][n]=[],o.remove(),a.scrollPatch()},update:function(e){e=e||{},layui.each(e,function(e,l){if(e in r){var n,d=o.children('td[data-field="'+e+'"]');r[e]=l,a.eachCols(function(t,i){i.field==e&&i.templet&&(n=i.templet)}),d.children(f).html(function(){return n?function(){return"function"==typeof n?n(r):i(t(n).html()||l).render(r)}():l}()),d.data("content",l)}})}},e)};a.elem.on("click",'input[name="layTableCheckbox"]+',function(){var e=t(this).prev(),i=a.layBody.find('input[name="layTableCheckbox"]'),l=e.parents("tr").eq(0).data("index"),n=e[0].checked,o="layTableAllChoose"===e.attr("lay-filter");o?(i.each(function(e,t){t.checked=n,a.setCheckData(e,n)}),a.syncCheckAll(),a.renderForm("checkbox")):(a.setCheckData(l,n),a.syncCheckAll()),layui.event.call(e[0],u,"checkbox("+p+")",v.call(e[0],{checked:n,type:o?"all":"one"}))}),a.elem.on("click",'input[lay-type="layTableRadio"]+',function(){var e=t(this).prev(),i=e[0].checked,l=d.cache[a.key],n=e.parents("tr").eq(0).data("index");layui.each(l,function(e,t){n===e?t.LAY_CHECKED=!0:delete t.LAY_CHECKED}),a.setThisRowChecked(n),layui.event.call(this,u,"radio("+p+")",v.call(this,{checked:i}))}),a.layBody.on("mouseenter","tr",function(){var e=t(this),i=e.index();a.layBody.find("tr:eq("+i+")").addClass(W)}).on("mouseleave","tr",function(){var e=t(this),i=e.index();a.layBody.find("tr:eq("+i+")").removeClass(W)}).on("click","tr",function(){m.call(this,"row")}).on("dblclick","tr",function(){m.call(this,"rowDouble")});var m=function(e){var i=t(this);layui.event.call(this,u,e+"("+p+")",v.call(i.children("td")[0]))};a.layBody.on("change","."+N,function(){var e=t(this),i=this.value,l=e.parent().data("field"),n=e.parents("tr").eq(0).data("index"),o=d.cache[a.key][n];o[l]=i,layui.event.call(this,u,"edit("+p+")",v.call(this,{value:i,field:l}))}).on("blur","."+N,function(){var e,l=t(this),n=l.parent().data("field"),o=l.parents("tr").eq(0).data("index"),r=d.cache[a.key][o];a.eachCols(function(t,i){i.field==n&&i.templet&&(e=i.templet)}),l.siblings(f).html(function(a){return e?function(){return"function"==typeof e?e(r):i(t(e).html()||this.value).render(r)}():a}(this.value)),l.parent().data("content",this.value),l.remove()}),a.layBody.on("click","td",function(e){var i=t(this),a=(i.data("field"),i.data("edit")),l=i.children(f);if(!i.data("off")&&a){var n=t('<input class="layui-input '+N+'">');return n[0].value=i.data("content")||l.text(),i.find("."+N)[0]||i.append(n),n.focus(),void layui.stope(e)}}).on("mouseenter","td",function(){b.call(this)}).on("mouseleave","td",function(){b.call(this,"hide")});var g="layui-table-grid-down",b=function(e){var i=t(this),a=i.children(f);if(e)i.find(".layui-table-grid-down").remove();else if(a.prop("scrollWidth")>a.outerWidth()){if(a.find("."+g)[0])return;i.append('<div class="'+g+'"><i class="layui-icon layui-icon-down"></i></div>')}};a.layBody.on("click","."+g,function(e){var i=t(this),n=i.parent(),d=n.children(f);a.tipsIndex=l.tips(['<div class="layui-table-tips-main" style="margin-top: -'+(d.height()+16)+"px;"+function(){return"sm"===o.size?"padding: 4px 15px; font-size: 12px;":"lg"===o.size?"padding: 14px 15px;":""}()+'">',d.html(),"</div>",'<i class="layui-icon layui-table-tips-c layui-icon-close"></i>'].join(""),d[0],{tips:[3,""],time:-1,anim:-1,maxWidth:r.ios||r.android?300:a.elem.width()/2,isOutAnim:!1,skin:"layui-table-tips",success:function(e,t){e.find(".layui-table-tips-c").on("click",function(){l.close(t)})}}),layui.stope(e)}),a.layBody.on("click","*[lay-event]",function(){var e=t(this),i=e.parents("tr").eq(0).data("index");layui.event.call(this,u,"tool("+p+")",v.call(this,{event:e.attr("lay-event")})),a.setThisRowChecked(i)}),a.layMain.on("scroll",function(){var e=t(this),i=e.scrollLeft(),n=e.scrollTop();a.layHeader.scrollLeft(i),a.layTotal.scrollLeft(i),a.layFixed.find(x).scrollTop(n),l.close(a.tipsIndex)}),R.on("click",function(){R.trigger("table.remove.tool.panel")}),R.on("table.remove.tool.panel",function(){t(".layui-table-tool-panel").remove()}),H.on("resize",function(){a.resize()})},d.init=function(e,i){i=i||{};var a=this,l=t(e?'table[lay-filter="'+e+'"]':h+"[lay-data]"),n="Table element property lay-data configuration item has a syntax error: ";return l.each(function(){var a=t(this),l=a.attr("lay-data");try{l=new Function("return "+l)()}catch(r){o.error(n+l)}var c=[],s=t.extend({elem:this,cols:[],data:[],skin:a.attr("lay-skin"),size:a.attr("lay-size"),even:"string"==typeof a.attr("lay-even")},d.config,i,l);e&&a.hide(),a.find("thead>tr").each(function(e){s.cols[e]=[],t(this).children().each(function(i){var a=t(this),l=a.attr("lay-data");try{l=new Function("return "+l)()}catch(r){return o.error(n+l)}var d=t.extend({title:a.text(),colspan:a.attr("colspan")||0,rowspan:a.attr("rowspan")||0},l);d.colspan<2&&c.push(d),s.cols[e].push(d)})}),a.find("tbody>tr").each(function(e){var i=t(this),a={};i.children("td").each(function(e,i){var l=t(this),n=l.data("field");if(n)return a[n]=l.html()}),layui.each(c,function(e,t){var l=i.children("td").eq(e);a[t.field]=l.html()}),s.data[e]=a}),d.render(s)}),a},c.that={},c.config={},d.eachCols=function(e,i,a){var l=c.config[e]||{},n=[],o=0;a=t.extend(!0,[],a||l.cols),layui.each(a,function(e,t){layui.each(t,function(t,i){if(i.colGroup){var l=0;o++,i.CHILD_COLS=[],layui.each(a[e+1],function(e,t){t.PARENT_COL_INDEX||l>1&&l==i.colspan||(t.PARENT_COL_INDEX=o,i.CHILD_COLS.push(t),l+=parseInt(t.colspan>1?t.colspan:1))})}i.PARENT_COL_INDEX||n.push(i)})});var r=function(e){layui.each(e||n,function(e,t){return t.CHILD_COLS?r(t.CHILD_COLS):void("function"==typeof i&&i(e,t))})};r()},d.checkStatus=function(e){var t=0,i=0,a=[],l=d.cache[e]||[];return layui.each(l,function(e,l){return l.constructor===Array?void i++:void(l[d.config.checkName]&&(t++,a.push(d.clearCacheKey(l))))}),{data:a,isAll:!!l.length&&t===l.length-i}},d.exportFile=function(e,t,i){t=t||d.clearCacheKey(d.cache[e]),i=i||"csv";var a=c.config[e]||{},l={csv:"text/csv",xls:"application/vnd.ms-excel"}[i],n=document.createElement("a");return r.ie?o.error("IE_NOT_SUPPORT_EXPORTS"):(n.href="data:"+l+";charset=utf-8,\ufeff"+encodeURIComponent(function(){var i=[],a=[];return layui.each(t,function(t,l){var n=[];"object"==typeof e?(layui.each(e,function(e,a){0==t&&i.push(a||"")}),layui.each(d.clearCacheKey(l),function(e,t){n.push(t)})):d.eachCols(e,function(e,a){a.field&&"normal"==a.type&&!a.hide&&(0==t&&i.push(a.title||""),n.push(l[a.field]))}),a.push(n.join(","))}),i.join(",")+"\r\n"+a.join("\r\n")}()),n.download=(a.title||"table_"+(a.index||""))+"."+i,document.body.appendChild(n),n.click(),void document.body.removeChild(n))},d.resize=function(e){if(e){var t=s(e);if(!t)return;c.that[e].resize()}else layui.each(c.that,function(){this.resize()})},d.reload=function(e,i){i=i||{};var a=s(e);if(a)return i.data&&i.data.constructor===Array&&delete a.data,d.render(t.extend(!0,{},a,i))},d.render=function(e){var t=new F(e);return c.call(t)},d.clearCacheKey=function(e){return e=t.extend({},e),delete e[d.config.checkName],delete e[d.config.indexName],e},d.init(),e(u,d)});layui.define("jquery",function(e){"use strict";var i=layui.$,n=(layui.hint(),layui.device(),{config:{},set:function(e){var n=this;return n.config=i.extend({},n.config,e),n},on:function(e,i){return layui.onevent.call(this,t,e,i)}}),t="carousel",a="layui-this",l=">*[carousel-item]>*",o="layui-carousel-left",r="layui-carousel-right",d="layui-carousel-prev",s="layui-carousel-next",u="layui-carousel-arrow",c="layui-carousel-ind",m=function(e){var t=this;t.config=i.extend({},t.config,n.config,e),t.render()};m.prototype.config={width:"600px",height:"280px",full:!1,arrow:"hover",indicator:"inside",autoplay:!0,interval:3e3,anim:"",trigger:"click",index:0},m.prototype.render=function(){var e=this,n=e.config;n.elem=i(n.elem),n.elem[0]&&(e.elemItem=n.elem.find(l),n.index<0&&(n.index=0),n.index>=e.elemItem.length&&(n.index=e.elemItem.length-1),n.interval<800&&(n.interval=800),n.full?n.elem.css({position:"fixed",width:"100%",height:"100%",zIndex:9999}):n.elem.css({width:n.width,height:n.height}),n.elem.attr("lay-anim",n.anim),e.elemItem.eq(n.index).addClass(a),e.elemItem.length<=1||(e.indicator(),e.arrow(),e.autoplay(),e.events()))},m.prototype.reload=function(e){var n=this;clearInterval(n.timer),n.config=i.extend({},n.config,e),n.render()},m.prototype.prevIndex=function(){var e=this,i=e.config,n=i.index-1;return n<0&&(n=e.elemItem.length-1),n},m.prototype.nextIndex=function(){var e=this,i=e.config,n=i.index+1;return n>=e.elemItem.length&&(n=0),n},m.prototype.addIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index+e,n.index>=i.elemItem.length&&(n.index=0)},m.prototype.subIndex=function(e){var i=this,n=i.config;e=e||1,n.index=n.index-e,n.index<0&&(n.index=i.elemItem.length-1)},m.prototype.autoplay=function(){var e=this,i=e.config;i.autoplay&&(e.timer=setInterval(function(){e.slide()},i.interval))},m.prototype.arrow=function(){var e=this,n=e.config,t=i(['<button class="layui-icon '+u+'" lay-type="sub">'+("updown"===n.anim?"&#xe619;":"&#xe603;")+"</button>",'<button class="layui-icon '+u+'" lay-type="add">'+("updown"===n.anim?"&#xe61a;":"&#xe602;")+"</button>"].join(""));n.elem.attr("lay-arrow",n.arrow),n.elem.find("."+u)[0]&&n.elem.find("."+u).remove(),n.elem.append(t),t.on("click",function(){var n=i(this),t=n.attr("lay-type");e.slide(t)})},m.prototype.indicator=function(){var e=this,n=e.config,t=e.elemInd=i(['<div class="'+c+'"><ul>',function(){var i=[];return layui.each(e.elemItem,function(e){i.push("<li"+(n.index===e?' class="layui-this"':"")+"></li>")}),i.join("")}(),"</ul></div>"].join(""));n.elem.attr("lay-indicator",n.indicator),n.elem.find("."+c)[0]&&n.elem.find("."+c).remove(),n.elem.append(t),"updown"===n.anim&&t.css("margin-top",-(t.height()/2)),t.find("li").on("hover"===n.trigger?"mouseover":n.trigger,function(){var t=i(this),a=t.index();a>n.index?e.slide("add",a-n.index):a<n.index&&e.slide("sub",n.index-a)})},m.prototype.slide=function(e,i){var n=this,l=n.elemItem,u=n.config,c=u.index,m=u.elem.attr("lay-filter");n.haveSlide||("sub"===e?(n.subIndex(i),l.eq(u.index).addClass(d),setTimeout(function(){l.eq(c).addClass(r),l.eq(u.index).addClass(r)},50)):(n.addIndex(i),l.eq(u.index).addClass(s),setTimeout(function(){l.eq(c).addClass(o),l.eq(u.index).addClass(o)},50)),setTimeout(function(){l.removeClass(a+" "+d+" "+s+" "+o+" "+r),l.eq(u.index).addClass(a),n.haveSlide=!1},300),n.elemInd.find("li").eq(u.index).addClass(a).siblings().removeClass(a),n.haveSlide=!0,layui.event.call(this,t,"change("+m+")",{index:u.index,prevIndex:c,item:l.eq(u.index)}))},m.prototype.events=function(){var e=this,i=e.config;i.elem.data("haveEvents")||(i.elem.on("mouseenter",function(){clearInterval(e.timer)}).on("mouseleave",function(){e.autoplay()}),i.elem.data("haveEvents",!0))},n.render=function(e){var i=new m(e);return i},e(t,n)});layui.define("jquery",function(e){"use strict";var a=layui.jquery,i={config:{},index:layui.rate?layui.rate.index+1e4:0,set:function(e){var i=this;return i.config=a.extend({},i.config,e),i},on:function(e,a){return layui.onevent.call(this,n,e,a)}},l=function(){var e=this,a=e.config;return{setvalue:function(a){e.setvalue.call(e,a)},config:a}},n="rate",t="layui-rate",o="layui-icon-rate",s="layui-icon-rate-solid",u="layui-icon-rate-half",r="layui-icon-rate-solid layui-icon-rate-half",c="layui-icon-rate-solid layui-icon-rate",f="layui-icon-rate layui-icon-rate-half",v=function(e){var l=this;l.index=++i.index,l.config=a.extend({},l.config,i.config,e),l.render()};v.prototype.config={length:5,text:!1,readonly:!1,half:!1,value:0,theme:""},v.prototype.render=function(){var e=this,i=e.config,l=i.theme?'style="color: '+i.theme+';"':"";i.elem=a(i.elem),parseInt(i.value)!==i.value&&(i.half||(i.value=Math.ceil(i.value)-i.value<.5?Math.ceil(i.value):Math.floor(i.value)));for(var n='<ul class="layui-rate" '+(i.readonly?"readonly":"")+">",u=1;u<=i.length;u++){var r='<li class="layui-inline"><i class="layui-icon '+(u>Math.floor(i.value)?o:s)+'" '+l+"></i></li>";i.half&&parseInt(i.value)!==i.value&&u==Math.ceil(i.value)?n=n+'<li><i class="layui-icon layui-icon-rate-half" '+l+"></i></li>":n+=r}n+="</ul>"+(i.text?'<span class="layui-inline">'+i.value+"星":"")+"</span>";var c=i.elem,f=c.next("."+t);f[0]&&f.remove(),e.elemTemp=a(n),i.span=e.elemTemp.next("span"),i.setText&&i.setText(i.value),c.html(e.elemTemp),c.addClass("layui-inline"),i.readonly||e.action()},v.prototype.setvalue=function(e){var a=this,i=a.config;i.value=e,a.render()},v.prototype.action=function(){var e=this,i=e.config,l=e.elemTemp,n=l.find("i").width();l.children("li").each(function(e){var t=e+1,v=a(this);v.on("click",function(e){if(i.value=t,i.half){var o=e.pageX-a(this).offset().left;o<=n/2&&(i.value=i.value-.5)}i.text&&l.next("span").text(i.value+"星"),i.choose&&i.choose(i.value),i.setText&&i.setText(i.value)}),v.on("mousemove",function(e){if(l.find("i").each(function(){a(this).addClass(o).removeClass(r)}),l.find("i:lt("+t+")").each(function(){a(this).addClass(s).removeClass(f)}),i.half){var c=e.pageX-a(this).offset().left;c<=n/2&&v.children("i").addClass(u).removeClass(s)}}),v.on("mouseleave",function(){l.find("i").each(function(){a(this).addClass(o).removeClass(r)}),l.find("i:lt("+Math.floor(i.value)+")").each(function(){a(this).addClass(s).removeClass(f)}),i.half&&parseInt(i.value)!==i.value&&l.children("li:eq("+Math.floor(i.value)+")").children("i").addClass(u).removeClass(c)})})},v.prototype.events=function(){var e=this;e.config},i.render=function(e){var a=new v(e);return l.call(a)},e(n,i)});layui.define("jquery",function(t){"use strict";var e=layui.$,i={fixbar:function(t){var i,a,n="layui-fixbar",r="layui-fixbar-top",o=e(document),l=e("body");t=e.extend({showHeight:200},t),t.bar1=t.bar1===!0?"&#xe606;":t.bar1,t.bar2=t.bar2===!0?"&#xe607;":t.bar2,t.bgcolor=t.bgcolor?"background-color:"+t.bgcolor:"";var c=[t.bar1,t.bar2,"&#xe604;"],g=e(['<ul class="'+n+'">',t.bar1?'<li class="layui-icon" lay-type="bar1" style="'+t.bgcolor+'">'+c[0]+"</li>":"",t.bar2?'<li class="layui-icon" lay-type="bar2" style="'+t.bgcolor+'">'+c[1]+"</li>":"",'<li class="layui-icon '+r+'" lay-type="top" style="'+t.bgcolor+'">'+c[2]+"</li>","</ul>"].join("")),s=g.find("."+r),u=function(){var e=o.scrollTop();e>=t.showHeight?i||(s.show(),i=1):i&&(s.hide(),i=0)};e("."+n)[0]||("object"==typeof t.css&&g.css(t.css),l.append(g),u(),g.find("li").on("click",function(){var i=e(this),a=i.attr("lay-type");"top"===a&&e("html,body").animate({scrollTop:0},200),t.click&&t.click.call(this,a)}),o.on("scroll",function(){clearTimeout(a),a=setTimeout(function(){u()},100)}))},countdown:function(t,e,i){var a=this,n="function"==typeof e,r=new Date(t).getTime(),o=new Date(!e||n?(new Date).getTime():e).getTime(),l=r-o,c=[Math.floor(l/864e5),Math.floor(l/36e5)%24,Math.floor(l/6e4)%60,Math.floor(l/1e3)%60];n&&(i=e);var g=setTimeout(function(){a.countdown(t,o+1e3,i)},1e3);return i&&i(l>0?c:[0,0,0,0],e,g),l<=0&&clearTimeout(g),g},timeAgo:function(t,e){var i=this,a=[[],[]],n=(new Date).getTime()-new Date(t).getTime();return n>6912e5?(n=new Date(t),a[0][0]=i.digit(n.getFullYear(),4),a[0][1]=i.digit(n.getMonth()+1),a[0][2]=i.digit(n.getDate()),e||(a[1][0]=i.digit(n.getHours()),a[1][1]=i.digit(n.getMinutes()),a[1][2]=i.digit(n.getSeconds())),a[0].join("-")+" "+a[1].join(":")):n>=864e5?(n/1e3/60/60/24|0)+"天前":n>=36e5?(n/1e3/60/60|0)+"小时前":n>=12e4?(n/1e3/60|0)+"分钟前":n<0?"未来":"刚刚"},digit:function(t,e){var i="";t=String(t),e=e||2;for(var a=t.length;a<e;a++)i+="0";return t<Math.pow(10,e)?i+(0|t):t},toDateString:function(t,e){var i=this,a=new Date(t||new Date),n=[i.digit(a.getFullYear(),4),i.digit(a.getMonth()+1),i.digit(a.getDate())],r=[i.digit(a.getHours()),i.digit(a.getMinutes()),i.digit(a.getSeconds())];return e=e||"yyyy-MM-dd HH:mm:ss",e.replace(/yyyy/g,n[0]).replace(/MM/g,n[1]).replace(/dd/g,n[2]).replace(/HH/g,r[0]).replace(/mm/g,r[1]).replace(/ss/g,r[2])},escape:function(t){return String(t||"").replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/'/g,"&#39;").replace(/"/g,"&quot;")}};!function(t,e,i){"$:nomunge";function a(){n=e[l](function(){r.each(function(){var e=t(this),i=e.width(),a=e.height(),n=t.data(this,g);(i!==n.w||a!==n.h)&&e.trigger(c,[n.w=i,n.h=a])}),a()},o[s])}var n,r=t([]),o=t.resize=t.extend(t.resize,{}),l="setTimeout",c="resize",g=c+"-special-event",s="delay",u="throttleWindow";o[s]=250,o[u]=!0,t.event.special[c]={setup:function(){if(!o[u]&&this[l])return!1;var e=t(this);r=r.add(e),t.data(this,g,{w:e.width(),h:e.height()}),1===r.length&&a()},teardown:function(){if(!o[u]&&this[l])return!1;var e=t(this);r=r.not(e),e.removeData(g),r.length||clearTimeout(n)},add:function(e){function a(e,a,r){var o=t(this),l=t.data(this,g)||{};l.w=a!==i?a:o.width(),l.h=r!==i?r:o.height(),n.apply(this,arguments)}if(!o[u]&&this[l])return!1;var n;return t.isFunction(e)?(n=e,a):(n=e.handler,void(e.handler=a))}}}(e,window),t("util",i)});layui.define("jquery",function(e){"use strict";var l=layui.$,o=function(e){},t='<i class="layui-anim layui-anim-rotate layui-anim-loop layui-icon ">&#xe63e;</i>';o.prototype.load=function(e){var o,i,n,r,a=this,c=0;e=e||{};var f=l(e.elem);if(f[0]){var m=l(e.scrollElem||document),u=e.mb||50,s=!("isAuto"in e)||e.isAuto,v=e.end||"没有更多了",y=e.scrollElem&&e.scrollElem!==document,d="<cite>加载更多</cite>",h=l('<div class="layui-flow-more"><a href="javascript:;">'+d+"</a></div>");f.find(".layui-flow-more")[0]||f.append(h);var p=function(e,t){e=l(e),h.before(e),t=0==t||null,t?h.html(v):h.find("a").html(d),i=t,o=null,n&&n()},g=function(){o=!0,h.find("a").html(t),"function"==typeof e.done&&e.done(++c,p)};if(g(),h.find("a").on("click",function(){l(this);i||o||g()}),e.isLazyimg)var n=a.lazyimg({elem:e.elem+" img",scrollElem:e.scrollElem});return s?(m.on("scroll",function(){var e=l(this),t=e.scrollTop();r&&clearTimeout(r),i||(r=setTimeout(function(){var i=y?e.height():l(window).height(),n=y?e.prop("scrollHeight"):document.documentElement.scrollHeight;n-t-i<=u&&(o||g())},100))}),a):a}},o.prototype.lazyimg=function(e){var o,t=this,i=0;e=e||{};var n=l(e.scrollElem||document),r=e.elem||"img",a=e.scrollElem&&e.scrollElem!==document,c=function(e,l){var o=n.scrollTop(),r=o+l,c=a?function(){return e.offset().top-n.offset().top+o}():e.offset().top;if(c>=o&&c<=r&&!e.attr("src")){var m=e.attr("lay-src");layui.img(m,function(){var l=t.lazyimg.elem.eq(i);e.attr("src",m).removeAttr("lay-src"),l[0]&&f(l),i++})}},f=function(e,o){var f=a?(o||n).height():l(window).height(),m=n.scrollTop(),u=m+f;if(t.lazyimg.elem=l(r),e)c(e,f);else for(var s=0;s<t.lazyimg.elem.length;s++){var v=t.lazyimg.elem.eq(s),y=a?function(){return v.offset().top-n.offset().top+m}():v.offset().top;if(c(v,f),i=s,y>u)break}};if(f(),!o){var m;n.on("scroll",function(){var e=l(this);m&&clearTimeout(m),m=setTimeout(function(){f(null,e)},50)}),o=!0}return f},e("flow",new o)});layui.define(["layer","form"],function(t){"use strict";var e=layui.$,i=layui.layer,a=layui.form,l=(layui.hint(),layui.device()),n="layedit",o="layui-show",r="layui-disabled",c=function(){var t=this;t.index=0,t.config={tool:["strong","italic","underline","del","|","left","center","right","|","link","unlink","face","image"],hideTool:[],height:280}};c.prototype.set=function(t){var i=this;return e.extend(!0,i.config,t),i},c.prototype.on=function(t,e){return layui.onevent(n,t,e)},c.prototype.build=function(t,i){i=i||{};var a=this,n=a.config,r="layui-layedit",c=e("string"==typeof t?"#"+t:t),u="LAY_layedit_"+ ++a.index,d=c.next("."+r),y=e.extend({},n,i),f=function(){var t=[],e={};return layui.each(y.hideTool,function(t,i){e[i]=!0}),layui.each(y.tool,function(i,a){C[a]&&!e[a]&&t.push(C[a])}),t.join("")}(),m=e(['<div class="'+r+'">','<div class="layui-unselect layui-layedit-tool">'+f+"</div>",'<div class="layui-layedit-iframe">','<iframe id="'+u+'" name="'+u+'" textarea="'+t+'" frameborder="0"></iframe>',"</div>","</div>"].join(""));return l.ie&&l.ie<8?c.removeClass("layui-hide").addClass(o):(d[0]&&d.remove(),s.call(a,m,c[0],y),c.addClass("layui-hide").after(m),a.index)},c.prototype.getContent=function(t){var e=u(t);if(e[0])return d(e[0].document.body.innerHTML)},c.prototype.getText=function(t){var i=u(t);if(i[0])return e(i[0].document.body).text()},c.prototype.setContent=function(t,i,a){var l=u(t);l[0]&&(a?e(l[0].document.body).append(i):e(l[0].document.body).html(i),layedit.sync(t))},c.prototype.sync=function(t){var i=u(t);if(i[0]){var a=e("#"+i[1].attr("textarea"));a.val(d(i[0].document.body.innerHTML))}},c.prototype.getSelection=function(t){var e=u(t);if(e[0]){var i=m(e[0].document);return document.selection?i.text:i.toString()}};var s=function(t,i,a){var l=this,n=t.find("iframe");n.css({height:a.height}).on("load",function(){var o=n.contents(),r=n.prop("contentWindow"),c=o.find("head"),s=e(["<style>","*{margin: 0; padding: 0;}","body{padding: 10px; line-height: 20px; overflow-x: hidden; word-wrap: break-word; font: 14px Helvetica Neue,Helvetica,PingFang SC,Microsoft YaHei,Tahoma,Arial,sans-serif; -webkit-box-sizing: border-box !important; -moz-box-sizing: border-box !important; box-sizing: border-box !important;}","a{color:#01AAED; text-decoration:none;}a:hover{color:#c00}","p{margin-bottom: 10px;}","img{display: inline-block; border: none; vertical-align: middle;}","pre{margin: 10px 0; padding: 10px; line-height: 20px; border: 1px solid #ddd; border-left-width: 6px; background-color: #F2F2F2; color: #333; font-family: Courier New; font-size: 12px;}","</style>"].join("")),u=o.find("body");c.append(s),u.attr("contenteditable","true").css({"min-height":a.height}).html(i.value||""),y.apply(l,[r,n,i,a]),g.call(l,r,t,a)})},u=function(t){var i=e("#LAY_layedit_"+t),a=i.prop("contentWindow");return[a,i]},d=function(t){return 8==l.ie&&(t=t.replace(/<.+>/g,function(t){return t.toLowerCase()})),t},y=function(t,a,n,o){var r=t.document,c=e(r.body);c.on("keydown",function(t){var e=t.keyCode;if(13===e){var a=m(r),l=p(a),n=l.parentNode;if("pre"===n.tagName.toLowerCase()){if(t.shiftKey)return;return i.msg("请暂时用shift+enter"),!1}r.execCommand("formatBlock",!1,"<p>")}}),e(n).parents("form").on("submit",function(){var t=c.html();8==l.ie&&(t=t.replace(/<.+>/g,function(t){return t.toLowerCase()})),n.value=t}),c.on("paste",function(e){r.execCommand("formatBlock",!1,"<p>"),setTimeout(function(){f.call(t,c),n.value=c.html()},100)})},f=function(t){var i=this;i.document;t.find("*[style]").each(function(){var t=this.style.textAlign;this.removeAttribute("style"),e(this).css({"text-align":t||""})}),t.find("table").addClass("layui-table"),t.find("script,link").remove()},m=function(t){return t.selection?t.selection.createRange():t.getSelection().getRangeAt(0)},p=function(t){return t.endContainer||t.parentElement().childNodes[0]},v=function(t,i,a){var l=this.document,n=document.createElement(t);for(var o in i)n.setAttribute(o,i[o]);if(n.removeAttribute("text"),l.selection){var r=a.text||i.text;if("a"===t&&!r)return;r&&(n.innerHTML=r),a.pasteHTML(e(n).prop("outerHTML")),a.select()}else{var r=a.toString()||i.text;if("a"===t&&!r)return;r&&(n.innerHTML=r),a.deleteContents(),a.insertNode(n)}},h=function(t,i){var a=this.document,l="layedit-tool-active",n=p(m(a)),o=function(e){return t.find(".layedit-tool-"+e)};i&&i[i.hasClass(l)?"removeClass":"addClass"](l),t.find(">i").removeClass(l),o("unlink").addClass(r),e(n).parents().each(function(){var t=this.tagName.toLowerCase(),e=this.style.textAlign;"b"!==t&&"strong"!==t||o("b").addClass(l),"i"!==t&&"em"!==t||o("i").addClass(l),"u"===t&&o("u").addClass(l),"strike"===t&&o("d").addClass(l),"p"===t&&("center"===e?o("center").addClass(l):"right"===e?o("right").addClass(l):o("left").addClass(l)),"a"===t&&(o("link").addClass(l),o("unlink").removeClass(r))})},g=function(t,a,l){var n=t.document,o=e(n.body),c={link:function(i){var a=p(i),l=e(a).parent();b.call(o,{href:l.attr("href"),target:l.attr("target")},function(e){var a=l[0];"A"===a.tagName?a.href=e.url:v.call(t,"a",{target:e.target,href:e.url,text:e.url},i)})},unlink:function(t){n.execCommand("unlink")},face:function(e){x.call(this,function(i){v.call(t,"img",{src:i.src,alt:i.alt},e)})},image:function(a){var n=this;layui.use("upload",function(o){var r=l.uploadImage||{};o.render({url:r.url,method:r.type,elem:e(n).find("input")[0],done:function(e){0==e.code?(e.data=e.data||{},v.call(t,"img",{src:e.data.src,alt:e.data.title},a)):i.msg(e.msg||"上传失败")}})})},code:function(e){k.call(o,function(i){v.call(t,"pre",{text:i.code,"lay-lang":i.lang},e)})},help:function(){i.open({type:2,title:"帮助",area:["600px","380px"],shadeClose:!0,shade:.1,skin:"layui-layer-msg",content:["http://www.layui.com/about/layedit/help.html","no"]})}},s=a.find(".layui-layedit-tool"),u=function(){var i=e(this),a=i.attr("layedit-event"),l=i.attr("lay-command");if(!i.hasClass(r)){o.focus();var u=m(n);u.commonAncestorContainer;l?(n.execCommand(l),/justifyLeft|justifyCenter|justifyRight/.test(l)&&n.execCommand("formatBlock",!1,"<p>"),setTimeout(function(){o.focus()},10)):c[a]&&c[a].call(this,u),h.call(t,s,i)}},d=/image/;s.find(">i").on("mousedown",function(){var t=e(this),i=t.attr("layedit-event");d.test(i)||u.call(this)}).on("click",function(){var t=e(this),i=t.attr("layedit-event");d.test(i)&&u.call(this)}),o.on("click",function(){h.call(t,s),i.close(x.index)})},b=function(t,e){var l=this,n=i.open({type:1,id:"LAY_layedit_link",area:"350px",shade:.05,shadeClose:!0,moveType:1,title:"超链接",skin:"layui-layer-msg",content:['<ul class="layui-form" style="margin: 15px;">','<li class="layui-form-item">','<label class="layui-form-label" style="width: 60px;">URL</label>','<div class="layui-input-block" style="margin-left: 90px">','<input name="url" lay-verify="url" value="'+(t.href||"")+'" autofocus="true" autocomplete="off" class="layui-input">',"</div>","</li>",'<li class="layui-form-item">','<label class="layui-form-label" style="width: 60px;">打开方式</label>','<div class="layui-input-block" style="margin-left: 90px">','<input type="radio" name="target" value="_self" class="layui-input" title="当前窗口"'+("_self"!==t.target&&t.target?"":"checked")+">",'<input type="radio" name="target" value="_blank" class="layui-input" title="新窗口" '+("_blank"===t.target?"checked":"")+">","</div>","</li>",'<li class="layui-form-item" style="text-align: center;">','<button type="button" lay-submit lay-filter="layedit-link-yes" class="layui-btn"> 确定 </button>','<button style="margin-left: 20px;" type="button" class="layui-btn layui-btn-primary"> 取消 </button>',"</li>","</ul>"].join(""),success:function(t,n){var o="submit(layedit-link-yes)";a.render("radio"),t.find(".layui-btn-primary").on("click",function(){i.close(n),l.focus()}),a.on(o,function(t){i.close(b.index),e&&e(t.field)})}});b.index=n},x=function(t){var a=function(){var t=["[微笑]","[嘻嘻]","[哈哈]","[可爱]","[可怜]","[挖鼻]","[吃惊]","[害羞]","[挤眼]","[闭嘴]","[鄙视]","[爱你]","[泪]","[偷笑]","[亲亲]","[生病]","[太开心]","[白眼]","[右哼哼]","[左哼哼]","[嘘]","[衰]","[委屈]","[吐]","[哈欠]","[抱抱]","[怒]","[疑问]","[馋嘴]","[拜拜]","[思考]","[汗]","[困]","[睡]","[钱]","[失望]","[酷]","[色]","[哼]","[鼓掌]","[晕]","[悲伤]","[抓狂]","[黑线]","[阴险]","[怒骂]","[互粉]","[心]","[伤心]","[猪头]","[熊猫]","[兔子]","[ok]","[耶]","[good]","[NO]","[赞]","[来]","[弱]","[草泥马]","[神马]","[囧]","[浮云]","[给力]","[围观]","[威武]","[奥特曼]","[礼物]","[钟]","[话筒]","[蜡烛]","[蛋糕]"],e={};return layui.each(t,function(t,i){e[i]=layui.cache.dir+"images/face/"+t+".gif"}),e}();return x.hide=x.hide||function(t){"face"!==e(t.target).attr("layedit-event")&&i.close(x.index)},x.index=i.tips(function(){var t=[];return layui.each(a,function(e,i){t.push('<li title="'+e+'"><img src="'+i+'" alt="'+e+'"></li>')}),'<ul class="layui-clear">'+t.join("")+"</ul>"}(),this,{tips:1,time:0,skin:"layui-box layui-util-face",maxWidth:500,success:function(l,n){l.css({marginTop:-4,marginLeft:-10}).find(".layui-clear>li").on("click",function(){t&&t({src:a[this.title],alt:this.title}),i.close(n)}),e(document).off("click",x.hide).on("click",x.hide)}})},k=function(t){var e=this,l=i.open({type:1,id:"LAY_layedit_code",area:"550px",shade:.05,shadeClose:!0,moveType:1,title:"插入代码",skin:"layui-layer-msg",content:['<ul class="layui-form layui-form-pane" style="margin: 15px;">','<li class="layui-form-item">','<label class="layui-form-label">请选择语言</label>','<div class="layui-input-block">','<select name="lang">','<option value="JavaScript">JavaScript</option>','<option value="HTML">HTML</option>','<option value="CSS">CSS</option>','<option value="Java">Java</option>','<option value="PHP">PHP</option>','<option value="C#">C#</option>','<option value="Python">Python</option>','<option value="Ruby">Ruby</option>','<option value="Go">Go</option>',"</select>","</div>","</li>",'<li class="layui-form-item layui-form-text">','<label class="layui-form-label">代码</label>','<div class="layui-input-block">','<textarea name="code" lay-verify="required" autofocus="true" class="layui-textarea" style="height: 200px;"></textarea>',"</div>","</li>",'<li class="layui-form-item" style="text-align: center;">','<button type="button" lay-submit lay-filter="layedit-code-yes" class="layui-btn"> 确定 </button>','<button style="margin-left: 20px;" type="button" class="layui-btn layui-btn-primary"> 取消 </button>',"</li>","</ul>"].join(""),success:function(l,n){var o="submit(layedit-code-yes)";a.render("select"),l.find(".layui-btn-primary").on("click",function(){i.close(n),e.focus()}),a.on(o,function(e){i.close(k.index),t&&t(e.field)})}});k.index=l},C={html:'<i class="layui-icon layedit-tool-html" title="HTML源代码" lay-command="html" layedit-event="html"">&#xe64b;</i><span class="layedit-tool-mid"></span>',strong:'<i class="layui-icon layedit-tool-b" title="加粗" lay-command="Bold" layedit-event="b"">&#xe62b;</i>',italic:'<i class="layui-icon layedit-tool-i" title="斜体" lay-command="italic" layedit-event="i"">&#xe644;</i>',underline:'<i class="layui-icon layedit-tool-u" title="下划线" lay-command="underline" layedit-event="u"">&#xe646;</i>',del:'<i class="layui-icon layedit-tool-d" title="删除线" lay-command="strikeThrough" layedit-event="d"">&#xe64f;</i>',"|":'<span class="layedit-tool-mid"></span>',left:'<i class="layui-icon layedit-tool-left" title="左对齐" lay-command="justifyLeft" layedit-event="left"">&#xe649;</i>',center:'<i class="layui-icon layedit-tool-center" title="居中对齐" lay-command="justifyCenter" layedit-event="center"">&#xe647;</i>',right:'<i class="layui-icon layedit-tool-right" title="右对齐" lay-command="justifyRight" layedit-event="right"">&#xe648;</i>',link:'<i class="layui-icon layedit-tool-link" title="插入链接" layedit-event="link"">&#xe64c;</i>',unlink:'<i class="layui-icon layedit-tool-unlink layui-disabled" title="清除链接" lay-command="unlink" layedit-event="unlink"">&#xe64d;</i>',face:'<i class="layui-icon layedit-tool-face" title="表情" layedit-event="face"">&#xe650;</i>',image:'<i class="layui-icon layedit-tool-image" title="图片" layedit-event="image">&#xe64a;<input type="file" name="file"></i>',code:'<i class="layui-icon layedit-tool-code" title="插入代码" layedit-event="code">&#xe64e;</i>',help:'<i class="layui-icon layedit-tool-help" title="帮助" layedit-event="help">&#xe607;</i>'},w=new c;t(n,w)});layui.define("jquery",function(e){"use strict";var a=layui.$,l="http://www.layui.com/doc/modules/code.html";e("code",function(e){var t=[];e=e||{},e.elem=a(e.elem||".layui-code"),e.about=!("about"in e)||e.about,e.elem.each(function(){t.push(this)}),layui.each(t.reverse(),function(t,i){var c=a(i),o=c.html();(c.attr("lay-encode")||e.encode)&&(o=o.replace(/&(?!#?[a-zA-Z0-9]+;)/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/'/g,"&#39;").replace(/"/g,"&quot;")),c.html('<ol class="layui-code-ol"><li>'+o.replace(/[\r\t\n]+/g,"</li><li>")+"</li></ol>"),c.find(">.layui-code-h3")[0]||c.prepend('<h3 class="layui-code-h3">'+(c.attr("lay-title")||e.title||"code")+(e.about?'<a href="'+l+'" target="_blank">layui.code</a>':"")+"</h3>");var d=c.find(">.layui-code-ol");c.addClass("layui-box layui-code-view"),(c.attr("lay-skin")||e.skin)&&c.addClass("layui-code-"+(c.attr("lay-skin")||e.skin)),(d.find("li").length/100|0)>0&&d.css("margin-left",(d.find("li").length/100|0)+"px"),(c.attr("lay-height")||e.height)&&d.css("max-height",c.attr("lay-height")||e.height)})})}).addcss("modules/code.css","skincodecss");
\ No newline at end of file
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/layui.js b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/layui.js
new file mode 100644
index 0000000..3cd51c2
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/layui/layui.js
@@ -0,0 +1,2 @@
+/** layui-v2.4.5 MIT License By https://www.layui.com */
+ ;!function(e){"use strict";var t=document,o={modules:{},status:{},timeout:10,event:{}},n=function(){this.v="2.4.5"},r=function(){var e=t.currentScript?t.currentScript.src:function(){for(var e,o=t.scripts,n=o.length-1,r=n;r>0;r--)if("interactive"===o[r].readyState){e=o[r].src;break}return e||o[n].src}();return e.substring(0,e.lastIndexOf("/")+1)}(),i=function(t){e.console&&console.error&&console.error("Layui hint: "+t)},a="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),u={layer:"modules/layer",laydate:"modules/laydate",laypage:"modules/laypage",laytpl:"modules/laytpl",layim:"modules/layim",layedit:"modules/layedit",form:"modules/form",upload:"modules/upload",tree:"modules/tree",table:"modules/table",element:"modules/element",rate:"modules/rate",colorpicker:"modules/colorpicker",slider:"modules/slider",carousel:"modules/carousel",flow:"modules/flow",util:"modules/util",code:"modules/code",jquery:"modules/jquery",mobile:"modules/mobile","layui.all":"../layui.all"};n.prototype.cache=o,n.prototype.define=function(e,t){var n=this,r="function"==typeof e,i=function(){var e=function(e,t){layui[e]=t,o.status[e]=!0};return"function"==typeof t&&t(function(n,r){e(n,r),o.callback[n]=function(){t(e)}}),this};return r&&(t=e,e=[]),layui["layui.all"]||!layui["layui.all"]&&layui["layui.mobile"]?i.call(n):(n.use(e,i),n)},n.prototype.use=function(e,n,l){function s(e,t){var n="PLaySTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/;("load"===e.type||n.test((e.currentTarget||e.srcElement).readyState))&&(o.modules[f]=t,d.removeChild(v),function r(){return++m>1e3*o.timeout/4?i(f+" is not a valid module"):void(o.status[f]?c():setTimeout(r,4))}())}function c(){l.push(layui[f]),e.length>1?y.use(e.slice(1),n,l):"function"==typeof n&&n.apply(layui,l)}var y=this,p=o.dir=o.dir?o.dir:r,d=t.getElementsByTagName("head")[0];e="string"==typeof e?[e]:e,window.jQuery&&jQuery.fn.on&&(y.each(e,function(t,o){"jquery"===o&&e.splice(t,1)}),layui.jquery=layui.$=jQuery);var f=e[0],m=0;if(l=l||[],o.host=o.host||(p.match(/\/\/([\s\S]+?)\//)||["//"+location.host+"/"])[0],0===e.length||layui["layui.all"]&&u[f]||!layui["layui.all"]&&layui["layui.mobile"]&&u[f])return c(),y;if(o.modules[f])!function g(){return++m>1e3*o.timeout/4?i(f+" is not a valid module"):void("string"==typeof o.modules[f]&&o.status[f]?c():setTimeout(g,4))}();else{var v=t.createElement("script"),h=(u[f]?p+"lay/":/^\{\/\}/.test(y.modules[f])?"":o.base||"")+(y.modules[f]||f)+".js";h=h.replace(/^\{\/\}/,""),v.async=!0,v.charset="utf-8",v.src=h+function(){var e=o.version===!0?o.v||(new Date).getTime():o.version||"";return e?"?v="+e:""}(),d.appendChild(v),!v.attachEvent||v.attachEvent.toString&&v.attachEvent.toString().indexOf("[native code")<0||a?v.addEventListener("load",function(e){s(e,h)},!1):v.attachEvent("onreadystatechange",function(e){s(e,h)}),o.modules[f]=h}return y},n.prototype.getStyle=function(t,o){var n=t.currentStyle?t.currentStyle:e.getComputedStyle(t,null);return n[n.getPropertyValue?"getPropertyValue":"getAttribute"](o)},n.prototype.link=function(e,n,r){var a=this,u=t.createElement("link"),l=t.getElementsByTagName("head")[0];"string"==typeof n&&(r=n);var s=(r||e).replace(/\.|\//g,""),c=u.id="layuicss-"+s,y=0;return u.rel="stylesheet",u.href=e+(o.debug?"?v="+(new Date).getTime():""),u.media="all",t.getElementById(c)||l.appendChild(u),"function"!=typeof n?a:(function p(){return++y>1e3*o.timeout/100?i(e+" timeout"):void(1989===parseInt(a.getStyle(t.getElementById(c),"width"))?function(){n()}():setTimeout(p,100))}(),a)},o.callback={},n.prototype.factory=function(e){if(layui[e])return"function"==typeof o.callback[e]?o.callback[e]:null},n.prototype.addcss=function(e,t,n){return layui.link(o.dir+"css/"+e,t,n)},n.prototype.img=function(e,t,o){var n=new Image;return n.src=e,n.complete?t(n):(n.onload=function(){n.onload=null,"function"==typeof t&&t(n)},void(n.onerror=function(e){n.onerror=null,"function"==typeof o&&o(e)}))},n.prototype.config=function(e){e=e||{};for(var t in e)o[t]=e[t];return this},n.prototype.modules=function(){var e={};for(var t in u)e[t]=u[t];return e}(),n.prototype.extend=function(e){var t=this;e=e||{};for(var o in e)t[o]||t.modules[o]?i("模块名 "+o+" 已被占用"):t.modules[o]=e[o];return t},n.prototype.router=function(e){var t=this,e=e||location.hash,o={path:[],search:{},hash:(e.match(/[^#](#.*$)/)||[])[1]||""};return/^#\//.test(e)?(e=e.replace(/^#\//,""),o.href="/"+e,e=e.replace(/([^#])(#.*$)/,"$1").split("/")||[],t.each(e,function(e,t){/^\w+=/.test(t)?function(){t=t.split("="),o.search[t[0]]=t[1]}():o.path.push(t)}),o):o},n.prototype.data=function(t,o,n){if(t=t||"layui",n=n||localStorage,e.JSON&&e.JSON.parse){if(null===o)return delete n[t];o="object"==typeof o?o:{key:o};try{var r=JSON.parse(n[t])}catch(i){var r={}}return"value"in o&&(r[o.key]=o.value),o.remove&&delete r[o.key],n[t]=JSON.stringify(r),o.key?r[o.key]:r}},n.prototype.sessionData=function(e,t){return this.data(e,t,sessionStorage)},n.prototype.device=function(t){var o=navigator.userAgent.toLowerCase(),n=function(e){var t=new RegExp(e+"/([^\\s\\_\\-]+)");return e=(o.match(t)||[])[1],e||!1},r={os:function(){return/windows/.test(o)?"windows":/linux/.test(o)?"linux":/iphone|ipod|ipad|ios/.test(o)?"ios":/mac/.test(o)?"mac":void 0}(),ie:function(){return!!(e.ActiveXObject||"ActiveXObject"in e)&&((o.match(/msie\s(\d+)/)||[])[1]||"11")}(),weixin:n("micromessenger")};return t&&!r[t]&&(r[t]=n(t)),r.android=/android/.test(o),r.ios="ios"===r.os,r},n.prototype.hint=function(){return{error:i}},n.prototype.each=function(e,t){var o,n=this;if("function"!=typeof t)return n;if(e=e||[],e.constructor===Object){for(o in e)if(t.call(e[o],o,e[o]))break}else for(o=0;o<e.length&&!t.call(e[o],o,e[o]);o++);return n},n.prototype.sort=function(e,t,o){var n=JSON.parse(JSON.stringify(e||[]));return t?(n.sort(function(e,o){var n=/^-?\d+$/,r=e[t],i=o[t];return n.test(r)&&(r=parseFloat(r)),n.test(i)&&(i=parseFloat(i)),r&&!i?1:!r&&i?-1:r>i?1:r<i?-1:0}),o&&n.reverse(),n):n},n.prototype.stope=function(t){t=t||e.event;try{t.stopPropagation()}catch(o){t.cancelBubble=!0}},n.prototype.onevent=function(e,t,o){return"string"!=typeof e||"function"!=typeof o?this:n.event(e,t,null,o)},n.prototype.event=n.event=function(e,t,n,r){var i=this,a=null,u=t.match(/\((.*)\)$/)||[],l=(e+"."+t).replace(u[0],""),s=u[1]||"",c=function(e,t){var o=t&&t.call(i,n);o===!1&&null===a&&(a=!1)};return r?(o.event[l]=o.event[l]||{},o.event[l][s]=[r],this):(layui.each(o.event[l],function(e,t){return"{*}"===s?void layui.each(t,c):(""===e&&layui.each(t,c),void(s&&e===s&&layui.each(t,c)))}),a)},e.layui=new n}(window);
\ No newline at end of file
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/query.html b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/query.html
new file mode 100644
index 0000000..56053a0
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/main/resources/static/query.html
@@ -0,0 +1,69 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <#assign basePath=request.contextPath>
+    <title>Influxdb-Query</title>
+    <script type="application/javascript" src="${basePath}/js/jquery.min.js"></script>
+    <script type="application/javascript" src="${basePath}/layui/layui.all.js"></script>
+    <link rel="stylesheet" href="${basePath}/layui/css/layui.css"/>
+</head>
+<body style="padding: 20px;">
+    <blockquote class="layui-elem-quote layui-quote-nm">查询</blockquote>
+    <div class="layui-container">
+        <div class="layui-row">
+            <div class="layui-col-md4">
+                <textarea id="t" cols="30" rows="10" class="layui-textarea"></textarea>
+            </div>
+            <div class="layui-col-md4">
+                <button class="layui-btn" onclick="query();">查询</button>
+            </div>
+            <div class="layui-col-md4">
+                <span id="result1" style="width: 100%;height: 100%"></span>
+            </div>
+        </div>
+    </div>
+
+    <blockquote class="layui-elem-quote layui-quote-nm">插入</blockquote>
+    <div class="layui-container">
+        <div class="layui-row">
+            <div class="layui-col-md6">
+                <button class="layui-btn" onclick="insert();">插入</button>
+            </div>
+            <div class="layui-col-md6">
+                <span id="result2" style="width: 100%;height: 100%"></span>
+            </div>
+        </div>
+    </div>
+
+
+</body>
+<script>
+    function query() {
+        var textQuery = $("#t").val();
+
+        $.ajax({
+            url: '${basePath}/influxdb/query',
+            type : 'Post',
+            data:{
+                sql : textQuery
+            }
+        }).fail(function () {
+
+        }).done(function (result) {
+            $("#result1").text(JSON.stringify(result.result));
+        })
+    }
+
+    function insert() {
+        $.ajax({
+            url: '${basePath}/influxdb/insert',
+            type : 'Post'
+        }).fail(function () {
+
+        }).done(function (result) {
+            $("#result2").text(JSON.stringify(result.result));
+        })
+    }
+</script>
+</html>
\ No newline at end of file
diff --git a/springcloud_demo_on_k8s-master/service-influxdb-app/src/test/java/com/springcloudme/serviceinfluxdbapp/ServiceInfluxdbAppApplicationTests.java b/springcloud_demo_on_k8s-master/service-influxdb-app/src/test/java/com/springcloudme/serviceinfluxdbapp/ServiceInfluxdbAppApplicationTests.java
new file mode 100644
index 0000000..6fbd256
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-influxdb-app/src/test/java/com/springcloudme/serviceinfluxdbapp/ServiceInfluxdbAppApplicationTests.java
@@ -0,0 +1,17 @@
+package com.springcloudme.serviceinfluxdbapp;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class ServiceInfluxdbAppApplicationTests {
+
+	@Test
+	public void contextLoads() {
+	}
+
+}
+
diff --git a/springcloud_demo_on_k8s-master/service-tp/.gitignore b/springcloud_demo_on_k8s-master/service-tp/.gitignore
new file mode 100644
index 0000000..c456c4a
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-tp/.gitignore
@@ -0,0 +1,25 @@
+/target/
+!.mvn/wrapper/maven-wrapper.jar
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+/build/
diff --git a/springcloud_demo_on_k8s-master/service-tp/.mvn/wrapper/maven-wrapper.jar b/springcloud_demo_on_k8s-master/service-tp/.mvn/wrapper/maven-wrapper.jar
new file mode 100644
index 0000000..01e6799
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-tp/.mvn/wrapper/maven-wrapper.jar
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-tp/.mvn/wrapper/maven-wrapper.properties b/springcloud_demo_on_k8s-master/service-tp/.mvn/wrapper/maven-wrapper.properties
new file mode 100644
index 0000000..7179346
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-tp/.mvn/wrapper/maven-wrapper.properties
@@ -0,0 +1 @@
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.5.4/apache-maven-3.5.4-bin.zip
diff --git a/springcloud_demo_on_k8s-master/service-tp/mvnw b/springcloud_demo_on_k8s-master/service-tp/mvnw
new file mode 100644
index 0000000..5551fde
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-tp/mvnw
@@ -0,0 +1,286 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Maven2 Start Up Batch script
+#
+# Required ENV vars:
+# ------------------
+#   JAVA_HOME - location of a JDK home dir
+#
+# Optional ENV vars
+# -----------------
+#   M2_HOME - location of maven2's installed home dir
+#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
+#     e.g. to debug Maven itself, use
+#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+# ----------------------------------------------------------------------------
+
+if [ -z "$MAVEN_SKIP_RC" ] ; then
+
+  if [ -f /etc/mavenrc ] ; then
+    . /etc/mavenrc
+  fi
+
+  if [ -f "$HOME/.mavenrc" ] ; then
+    . "$HOME/.mavenrc"
+  fi
+
+fi
+
+# OS specific support.  $var _must_ be set to either true or false.
+cygwin=false;
+darwin=false;
+mingw=false
+case "`uname`" in
+  CYGWIN*) cygwin=true ;;
+  MINGW*) mingw=true;;
+  Darwin*) darwin=true
+    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
+    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
+    if [ -z "$JAVA_HOME" ]; then
+      if [ -x "/usr/libexec/java_home" ]; then
+        export JAVA_HOME="`/usr/libexec/java_home`"
+      else
+        export JAVA_HOME="/Library/Java/Home"
+      fi
+    fi
+    ;;
+esac
+
+if [ -z "$JAVA_HOME" ] ; then
+  if [ -r /etc/gentoo-release ] ; then
+    JAVA_HOME=`java-config --jre-home`
+  fi
+fi
+
+if [ -z "$M2_HOME" ] ; then
+  ## resolve links - $0 may be a link to maven's home
+  PRG="$0"
+
+  # need this for relative symlinks
+  while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+      PRG="$link"
+    else
+      PRG="`dirname "$PRG"`/$link"
+    fi
+  done
+
+  saveddir=`pwd`
+
+  M2_HOME=`dirname "$PRG"`/..
+
+  # make it fully qualified
+  M2_HOME=`cd "$M2_HOME" && pwd`
+
+  cd "$saveddir"
+  # echo Using m2 at $M2_HOME
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --unix "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+fi
+
+# For Mingw, ensure paths are in UNIX format before anything is touched
+if $mingw ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME="`(cd "$M2_HOME"; pwd)`"
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
+  # TODO classpath?
+fi
+
+if [ -z "$JAVA_HOME" ]; then
+  javaExecutable="`which javac`"
+  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
+    # readlink(1) is not available as standard on Solaris 10.
+    readLink=`which readlink`
+    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
+      if $darwin ; then
+        javaHome="`dirname \"$javaExecutable\"`"
+        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
+      else
+        javaExecutable="`readlink -f \"$javaExecutable\"`"
+      fi
+      javaHome="`dirname \"$javaExecutable\"`"
+      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
+      JAVA_HOME="$javaHome"
+      export JAVA_HOME
+    fi
+  fi
+fi
+
+if [ -z "$JAVACMD" ] ; then
+  if [ -n "$JAVA_HOME"  ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+      # IBM's JDK on AIX uses strange locations for the executables
+      JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+      JAVACMD="$JAVA_HOME/bin/java"
+    fi
+  else
+    JAVACMD="`which java`"
+  fi
+fi
+
+if [ ! -x "$JAVACMD" ] ; then
+  echo "Error: JAVA_HOME is not defined correctly." >&2
+  echo "  We cannot execute $JAVACMD" >&2
+  exit 1
+fi
+
+if [ -z "$JAVA_HOME" ] ; then
+  echo "Warning: JAVA_HOME environment variable is not set."
+fi
+
+CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
+
+# traverses directory structure from process work directory to filesystem root
+# first directory with .mvn subdirectory is considered project base directory
+find_maven_basedir() {
+
+  if [ -z "$1" ]
+  then
+    echo "Path not specified to find_maven_basedir"
+    return 1
+  fi
+
+  basedir="$1"
+  wdir="$1"
+  while [ "$wdir" != '/' ] ; do
+    if [ -d "$wdir"/.mvn ] ; then
+      basedir=$wdir
+      break
+    fi
+    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
+    if [ -d "${wdir}" ]; then
+      wdir=`cd "$wdir/.."; pwd`
+    fi
+    # end of workaround
+  done
+  echo "${basedir}"
+}
+
+# concatenates all lines of a file
+concat_lines() {
+  if [ -f "$1" ]; then
+    echo "$(tr -s '\n' ' ' < "$1")"
+  fi
+}
+
+BASE_DIR=`find_maven_basedir "$(pwd)"`
+if [ -z "$BASE_DIR" ]; then
+  exit 1;
+fi
+
+##########################################################################################
+# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+# This allows using the maven wrapper in projects that prohibit checking in binary data.
+##########################################################################################
+if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Found .mvn/wrapper/maven-wrapper.jar"
+    fi
+else
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
+    fi
+    jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
+    while IFS="=" read key value; do
+      case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
+      esac
+    done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Downloading from: $jarUrl"
+    fi
+    wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
+
+    if command -v wget > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found wget ... using wget"
+        fi
+        wget "$jarUrl" -O "$wrapperJarPath"
+    elif command -v curl > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found curl ... using curl"
+        fi
+        curl -o "$wrapperJarPath" "$jarUrl"
+    else
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Falling back to using Java to download"
+        fi
+        javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
+        if [ -e "$javaClass" ]; then
+            if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Compiling MavenWrapperDownloader.java ..."
+                fi
+                # Compiling the Java class
+                ("$JAVA_HOME/bin/javac" "$javaClass")
+            fi
+            if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                # Running the downloader
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Running MavenWrapperDownloader.java ..."
+                fi
+                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
+            fi
+        fi
+    fi
+fi
+##########################################################################################
+# End of extension
+##########################################################################################
+
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
+if [ "$MVNW_VERBOSE" = true ]; then
+  echo $MAVEN_PROJECTBASEDIR
+fi
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --path --windows "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
+    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
+fi
+
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+exec "$JAVACMD" \
+  $MAVEN_OPTS \
+  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
+  "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
+  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/springcloud_demo_on_k8s-master/service-tp/mvnw.cmd b/springcloud_demo_on_k8s-master/service-tp/mvnw.cmd
new file mode 100644
index 0000000..e5cfb0a
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-tp/mvnw.cmd
@@ -0,0 +1,161 @@
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements.  See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership.  The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License.  You may obtain a copy of the License at
+@REM
+@REM    http://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied.  See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Maven2 Start Up Batch script
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM M2_HOME - location of maven2's installed home dir
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
+@REM     e.g. to debug Maven itself, use
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+@REM ----------------------------------------------------------------------------
+
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
+@echo off
+@REM set title of command window
+title %0
+@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
+@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
+
+@REM set %HOME% to equivalent of $HOME
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
+
+@REM Execute a user defined script before this one
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
+if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
+:skipRcPre
+
+@setlocal
+
+set ERROR_CODE=0
+
+@REM To isolate internal variables from possible post scripts, we use another setlocal
+@setlocal
+
+@REM ==== START VALIDATION ====
+if not "%JAVA_HOME%" == "" goto OkJHome
+
+echo.
+echo Error: JAVA_HOME not found in your environment. >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:OkJHome
+if exist "%JAVA_HOME%\bin\java.exe" goto init
+
+echo.
+echo Error: JAVA_HOME is set to an invalid directory. >&2
+echo JAVA_HOME = "%JAVA_HOME%" >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+@REM ==== END VALIDATION ====
+
+:init
+
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
+@REM Fallback to current working directory if not found.
+
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
+
+set EXEC_DIR=%CD%
+set WDIR=%EXEC_DIR%
+:findBaseDir
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
+cd ..
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
+set WDIR=%CD%
+goto findBaseDir
+
+:baseDirFound
+set MAVEN_PROJECTBASEDIR=%WDIR%
+cd "%EXEC_DIR%"
+goto endDetectBaseDir
+
+:baseDirNotFound
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
+cd "%EXEC_DIR%"
+
+:endDetectBaseDir
+
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
+
+@setlocal EnableExtensions EnableDelayedExpansion
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
+
+:endReadAdditionalConfig
+
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
+FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO (
+	IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B 
+)
+
+@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
+if exist %WRAPPER_JAR% (
+    echo Found %WRAPPER_JAR%
+) else (
+    echo Couldn't find %WRAPPER_JAR%, downloading it ...
+	echo Downloading from: %DOWNLOAD_URL%
+    powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"
+    echo Finished downloading %WRAPPER_JAR%
+)
+@REM End of extension
+
+%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
+if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
+:skipRcPost
+
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
+if "%MAVEN_BATCH_PAUSE%" == "on" pause
+
+if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
+
+exit /B %ERROR_CODE%
diff --git a/springcloud_demo_on_k8s-master/service-tp/pom.xml b/springcloud_demo_on_k8s-master/service-tp/pom.xml
new file mode 100644
index 0000000..6731644
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-tp/pom.xml
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>2.0.3.RELEASE</version>
+        <relativePath/>
+    </parent>
+    <groupId>com.springcloudme</groupId>
+    <artifactId>service-tp</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>service-tp</name>
+    <description>Demo project for Spring Boot</description>
+
+    <properties>
+        <java.version>1.8</java.version>
+        <spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-freemarker</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-thymeleaf</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+        <!-- hystrix相关 -->
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
+        </dependency>
+ 
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+        </dependency>
+
+    </dependencies>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.springframework.cloud</groupId>
+                <artifactId>spring-cloud-dependencies</artifactId>
+                <version>${spring-cloud.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>docker-maven-plugin</artifactId>
+                <version>1.2.0</version>
+                <configuration>
+                    <imageName>registry.cn-hangzhou.aliyuncs.com/wooddeep/service-tp:v3</imageName>
+                    <serverId>my-docker-registry</serverId>
+                    <baseImage>java</baseImage>
+                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
+                    <resources>
+                        <resource>
+                            <targetPath>/</targetPath>
+                            <directory>${project.build.directory}</directory>
+                            <include>${project.build.finalName}.jar</include>
+                        </resource>
+                    </resources>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <repositories>
+        <repository>
+            <id>spring-milestones</id>
+            <name>Spring Milestones</name>
+            <url>https://repo.spring.io/milestone</url>
+        </repository>
+    </repositories>
+
+</project>
diff --git a/springcloud_demo_on_k8s-master/service-tp/src/main/java/com/springcloudme/servicetp/ServiceTpApplication.java b/springcloud_demo_on_k8s-master/service-tp/src/main/java/com/springcloudme/servicetp/ServiceTpApplication.java
new file mode 100644
index 0000000..c0a2b0d
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-tp/src/main/java/com/springcloudme/servicetp/ServiceTpApplication.java
@@ -0,0 +1,20 @@
+package com.springcloudme.servicetp;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+
+@SpringBootApplication
+@EnableEurekaClient
+@EnableCircuitBreaker
+@EnableFeignClients
+public class ServiceTpApplication {
+
+	public static void main(String[] args) {
+		SpringApplication.run(ServiceTpApplication.class, args);
+	}
+
+}
+
diff --git a/springcloud_demo_on_k8s-master/service-tp/src/main/java/com/springcloudme/servicetp/UserClient.java b/springcloud_demo_on_k8s-master/service-tp/src/main/java/com/springcloudme/servicetp/UserClient.java
new file mode 100644
index 0000000..4ed74f2
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-tp/src/main/java/com/springcloudme/servicetp/UserClient.java
@@ -0,0 +1,13 @@
+package com.springcloudme.servicetp;
+
+import com.springcloudme.servicetp.UserClientFallback;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+@FeignClient(value = "service-api", fallback = UserClientFallback.class)
+public interface UserClient {
+
+    @RequestMapping("/user/hi") // 对应 service-api 服务的 /user/hi的绝对路由
+    String hi();
+
+}
\ No newline at end of file
diff --git a/springcloud_demo_on_k8s-master/service-tp/src/main/java/com/springcloudme/servicetp/UserClientFallback.java b/springcloud_demo_on_k8s-master/service-tp/src/main/java/com/springcloudme/servicetp/UserClientFallback.java
new file mode 100644
index 0000000..f406b0b
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-tp/src/main/java/com/springcloudme/servicetp/UserClientFallback.java
@@ -0,0 +1,12 @@
+package com.springcloudme.servicetp;
+
+import com.springcloudme.servicetp.UserClient;
+import org.springframework.stereotype.Component;
+
+@Component
+public class UserClientFallback implements UserClient {
+    @Override
+    public String hi() {
+        return "Oh! Error!!!";
+    }
+}
\ No newline at end of file
diff --git a/springcloud_demo_on_k8s-master/service-tp/src/main/java/com/springcloudme/servicetp/controller/ApiController.java b/springcloud_demo_on_k8s-master/service-tp/src/main/java/com/springcloudme/servicetp/controller/ApiController.java
new file mode 100644
index 0000000..4c6b15b
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-tp/src/main/java/com/springcloudme/servicetp/controller/ApiController.java
@@ -0,0 +1,26 @@
+package com.springcloudme.servicetp.controller;
+
+import com.springcloudme.servicetp.UserClient;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/user")
+public class ApiController {
+
+	@RequestMapping(value = "/me",method = RequestMethod.GET)
+	public String  getUser(){
+		return "hjashdahsdha";
+	}
+
+	@Autowired
+    private UserClient userClient;
+
+    @RequestMapping("/hi")
+    public String hi() {
+        return userClient.hi();
+    }
+}
diff --git a/springcloud_demo_on_k8s-master/service-tp/src/main/resources/application.yml b/springcloud_demo_on_k8s-master/service-tp/src/main/resources/application.yml
new file mode 100644
index 0000000..ff37d6d
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-tp/src/main/resources/application.yml
@@ -0,0 +1,29 @@
+server:
+  port: 8763
+
+eureka:
+  instance:
+    preferIpAddress: true
+  client:
+    serviceUrl:
+      defaultZone: http://${EUREKA_URL:localhost}:8761/eureka
+
+spring:
+  application:
+    name: service-tp
+  resources:
+    static-locations: classpath:/static
+  freemarker:
+    template-loader-path: classpath:/static
+    cache: false
+    charset: utf-8
+    check-template-location: true
+    content-type: text/html
+    expose-request-attributes: false
+    expose-session-attributes: false
+    request-context-attribute: request
+    suffix: .html
+
+feign:
+  hystrix:
+    enabled: true    
\ No newline at end of file
diff --git a/springcloud_demo_on_k8s-master/service-tp/src/test/java/com/springcloudme/servicetp/ServiceTpApplicationTests.java b/springcloud_demo_on_k8s-master/service-tp/src/test/java/com/springcloudme/servicetp/ServiceTpApplicationTests.java
new file mode 100644
index 0000000..d7385db
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-tp/src/test/java/com/springcloudme/servicetp/ServiceTpApplicationTests.java
@@ -0,0 +1,17 @@
+package com.springcloudme.servicetp;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class ServiceTpApplicationTests {
+
+	@Test
+	public void contextLoads() {
+	}
+
+}
+
diff --git a/springcloud_demo_on_k8s-master/service-zuul/.gitignore b/springcloud_demo_on_k8s-master/service-zuul/.gitignore
new file mode 100644
index 0000000..c456c4a
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-zuul/.gitignore
@@ -0,0 +1,25 @@
+/target/
+!.mvn/wrapper/maven-wrapper.jar
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+/build/
diff --git a/springcloud_demo_on_k8s-master/service-zuul/.mvn/wrapper/maven-wrapper.jar b/springcloud_demo_on_k8s-master/service-zuul/.mvn/wrapper/maven-wrapper.jar
new file mode 100644
index 0000000..01e6799
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-zuul/.mvn/wrapper/maven-wrapper.jar
Binary files differ
diff --git a/springcloud_demo_on_k8s-master/service-zuul/.mvn/wrapper/maven-wrapper.properties b/springcloud_demo_on_k8s-master/service-zuul/.mvn/wrapper/maven-wrapper.properties
new file mode 100644
index 0000000..7179346
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-zuul/.mvn/wrapper/maven-wrapper.properties
@@ -0,0 +1 @@
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.5.4/apache-maven-3.5.4-bin.zip
diff --git a/springcloud_demo_on_k8s-master/service-zuul/mvnw b/springcloud_demo_on_k8s-master/service-zuul/mvnw
new file mode 100644
index 0000000..5551fde
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-zuul/mvnw
@@ -0,0 +1,286 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Maven2 Start Up Batch script
+#
+# Required ENV vars:
+# ------------------
+#   JAVA_HOME - location of a JDK home dir
+#
+# Optional ENV vars
+# -----------------
+#   M2_HOME - location of maven2's installed home dir
+#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
+#     e.g. to debug Maven itself, use
+#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+# ----------------------------------------------------------------------------
+
+if [ -z "$MAVEN_SKIP_RC" ] ; then
+
+  if [ -f /etc/mavenrc ] ; then
+    . /etc/mavenrc
+  fi
+
+  if [ -f "$HOME/.mavenrc" ] ; then
+    . "$HOME/.mavenrc"
+  fi
+
+fi
+
+# OS specific support.  $var _must_ be set to either true or false.
+cygwin=false;
+darwin=false;
+mingw=false
+case "`uname`" in
+  CYGWIN*) cygwin=true ;;
+  MINGW*) mingw=true;;
+  Darwin*) darwin=true
+    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
+    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
+    if [ -z "$JAVA_HOME" ]; then
+      if [ -x "/usr/libexec/java_home" ]; then
+        export JAVA_HOME="`/usr/libexec/java_home`"
+      else
+        export JAVA_HOME="/Library/Java/Home"
+      fi
+    fi
+    ;;
+esac
+
+if [ -z "$JAVA_HOME" ] ; then
+  if [ -r /etc/gentoo-release ] ; then
+    JAVA_HOME=`java-config --jre-home`
+  fi
+fi
+
+if [ -z "$M2_HOME" ] ; then
+  ## resolve links - $0 may be a link to maven's home
+  PRG="$0"
+
+  # need this for relative symlinks
+  while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+      PRG="$link"
+    else
+      PRG="`dirname "$PRG"`/$link"
+    fi
+  done
+
+  saveddir=`pwd`
+
+  M2_HOME=`dirname "$PRG"`/..
+
+  # make it fully qualified
+  M2_HOME=`cd "$M2_HOME" && pwd`
+
+  cd "$saveddir"
+  # echo Using m2 at $M2_HOME
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --unix "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+fi
+
+# For Mingw, ensure paths are in UNIX format before anything is touched
+if $mingw ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME="`(cd "$M2_HOME"; pwd)`"
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
+  # TODO classpath?
+fi
+
+if [ -z "$JAVA_HOME" ]; then
+  javaExecutable="`which javac`"
+  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
+    # readlink(1) is not available as standard on Solaris 10.
+    readLink=`which readlink`
+    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
+      if $darwin ; then
+        javaHome="`dirname \"$javaExecutable\"`"
+        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
+      else
+        javaExecutable="`readlink -f \"$javaExecutable\"`"
+      fi
+      javaHome="`dirname \"$javaExecutable\"`"
+      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
+      JAVA_HOME="$javaHome"
+      export JAVA_HOME
+    fi
+  fi
+fi
+
+if [ -z "$JAVACMD" ] ; then
+  if [ -n "$JAVA_HOME"  ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+      # IBM's JDK on AIX uses strange locations for the executables
+      JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+      JAVACMD="$JAVA_HOME/bin/java"
+    fi
+  else
+    JAVACMD="`which java`"
+  fi
+fi
+
+if [ ! -x "$JAVACMD" ] ; then
+  echo "Error: JAVA_HOME is not defined correctly." >&2
+  echo "  We cannot execute $JAVACMD" >&2
+  exit 1
+fi
+
+if [ -z "$JAVA_HOME" ] ; then
+  echo "Warning: JAVA_HOME environment variable is not set."
+fi
+
+CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
+
+# traverses directory structure from process work directory to filesystem root
+# first directory with .mvn subdirectory is considered project base directory
+find_maven_basedir() {
+
+  if [ -z "$1" ]
+  then
+    echo "Path not specified to find_maven_basedir"
+    return 1
+  fi
+
+  basedir="$1"
+  wdir="$1"
+  while [ "$wdir" != '/' ] ; do
+    if [ -d "$wdir"/.mvn ] ; then
+      basedir=$wdir
+      break
+    fi
+    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
+    if [ -d "${wdir}" ]; then
+      wdir=`cd "$wdir/.."; pwd`
+    fi
+    # end of workaround
+  done
+  echo "${basedir}"
+}
+
+# concatenates all lines of a file
+concat_lines() {
+  if [ -f "$1" ]; then
+    echo "$(tr -s '\n' ' ' < "$1")"
+  fi
+}
+
+BASE_DIR=`find_maven_basedir "$(pwd)"`
+if [ -z "$BASE_DIR" ]; then
+  exit 1;
+fi
+
+##########################################################################################
+# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+# This allows using the maven wrapper in projects that prohibit checking in binary data.
+##########################################################################################
+if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Found .mvn/wrapper/maven-wrapper.jar"
+    fi
+else
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
+    fi
+    jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
+    while IFS="=" read key value; do
+      case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
+      esac
+    done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Downloading from: $jarUrl"
+    fi
+    wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
+
+    if command -v wget > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found wget ... using wget"
+        fi
+        wget "$jarUrl" -O "$wrapperJarPath"
+    elif command -v curl > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found curl ... using curl"
+        fi
+        curl -o "$wrapperJarPath" "$jarUrl"
+    else
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Falling back to using Java to download"
+        fi
+        javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
+        if [ -e "$javaClass" ]; then
+            if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Compiling MavenWrapperDownloader.java ..."
+                fi
+                # Compiling the Java class
+                ("$JAVA_HOME/bin/javac" "$javaClass")
+            fi
+            if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                # Running the downloader
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Running MavenWrapperDownloader.java ..."
+                fi
+                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
+            fi
+        fi
+    fi
+fi
+##########################################################################################
+# End of extension
+##########################################################################################
+
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
+if [ "$MVNW_VERBOSE" = true ]; then
+  echo $MAVEN_PROJECTBASEDIR
+fi
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --path --windows "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
+    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
+fi
+
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+exec "$JAVACMD" \
+  $MAVEN_OPTS \
+  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
+  "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
+  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/springcloud_demo_on_k8s-master/service-zuul/mvnw.cmd b/springcloud_demo_on_k8s-master/service-zuul/mvnw.cmd
new file mode 100644
index 0000000..e5cfb0a
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-zuul/mvnw.cmd
@@ -0,0 +1,161 @@
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements.  See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership.  The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License.  You may obtain a copy of the License at
+@REM
+@REM    http://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied.  See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Maven2 Start Up Batch script
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM M2_HOME - location of maven2's installed home dir
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
+@REM     e.g. to debug Maven itself, use
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+@REM ----------------------------------------------------------------------------
+
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
+@echo off
+@REM set title of command window
+title %0
+@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
+@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
+
+@REM set %HOME% to equivalent of $HOME
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
+
+@REM Execute a user defined script before this one
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
+if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
+:skipRcPre
+
+@setlocal
+
+set ERROR_CODE=0
+
+@REM To isolate internal variables from possible post scripts, we use another setlocal
+@setlocal
+
+@REM ==== START VALIDATION ====
+if not "%JAVA_HOME%" == "" goto OkJHome
+
+echo.
+echo Error: JAVA_HOME not found in your environment. >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:OkJHome
+if exist "%JAVA_HOME%\bin\java.exe" goto init
+
+echo.
+echo Error: JAVA_HOME is set to an invalid directory. >&2
+echo JAVA_HOME = "%JAVA_HOME%" >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+@REM ==== END VALIDATION ====
+
+:init
+
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
+@REM Fallback to current working directory if not found.
+
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
+
+set EXEC_DIR=%CD%
+set WDIR=%EXEC_DIR%
+:findBaseDir
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
+cd ..
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
+set WDIR=%CD%
+goto findBaseDir
+
+:baseDirFound
+set MAVEN_PROJECTBASEDIR=%WDIR%
+cd "%EXEC_DIR%"
+goto endDetectBaseDir
+
+:baseDirNotFound
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
+cd "%EXEC_DIR%"
+
+:endDetectBaseDir
+
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
+
+@setlocal EnableExtensions EnableDelayedExpansion
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
+
+:endReadAdditionalConfig
+
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar"
+FOR /F "tokens=1,2 delims==" %%A IN (%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties) DO (
+	IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B 
+)
+
+@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
+if exist %WRAPPER_JAR% (
+    echo Found %WRAPPER_JAR%
+) else (
+    echo Couldn't find %WRAPPER_JAR%, downloading it ...
+	echo Downloading from: %DOWNLOAD_URL%
+    powershell -Command "(New-Object Net.WebClient).DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"
+    echo Finished downloading %WRAPPER_JAR%
+)
+@REM End of extension
+
+%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
+if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
+:skipRcPost
+
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
+if "%MAVEN_BATCH_PAUSE%" == "on" pause
+
+if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
+
+exit /B %ERROR_CODE%
diff --git a/springcloud_demo_on_k8s-master/service-zuul/pom.xml b/springcloud_demo_on_k8s-master/service-zuul/pom.xml
new file mode 100644
index 0000000..a371bea
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-zuul/pom.xml
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>2.0.3.RELEASE</version>
+        <relativePath/>
+    </parent>
+    <groupId>com.springcloudme</groupId>
+    <artifactId>service-zuul</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>service-zuul</name>
+    <description>Demo project for Spring Boot</description>
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
+        <java.version>1.8</java.version>
+        <spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>org.springframework.cloud</groupId>
+                <artifactId>spring-cloud-dependencies</artifactId>
+                <version>${spring-cloud.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+            </plugin>
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>docker-maven-plugin</artifactId>
+                <version>1.2.0</version>
+                <configuration>
+                    <imageName>registry.cn-hangzhou.aliyuncs.com/wooddeep/service-zuul:v3</imageName>
+                    <serverId>my-docker-registry</serverId>
+                    <baseImage>java</baseImage>
+                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
+                    <resources>
+                        <resource>
+                            <targetPath>/</targetPath>
+                            <directory>${project.build.directory}</directory>
+                            <include>${project.build.finalName}.jar</include>
+                        </resource>
+                    </resources>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <repositories>
+        <repository>
+            <id>spring-milestones</id>
+            <name>Spring Milestones</name>
+            <url>https://repo.spring.io/milestone</url>
+        </repository>
+    </repositories>
+
+</project>
diff --git a/springcloud_demo_on_k8s-master/service-zuul/src/main/java/com/springcloudme/servicezuul/ServiceZuulApplication.java b/springcloud_demo_on_k8s-master/service-zuul/src/main/java/com/springcloudme/servicezuul/ServiceZuulApplication.java
new file mode 100644
index 0000000..d5f7a09
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-zuul/src/main/java/com/springcloudme/servicezuul/ServiceZuulApplication.java
@@ -0,0 +1,39 @@
+package com.springcloudme.servicezuul;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
+import org.springframework.cloud.netflix.zuul.EnableZuulServer;
+import org.springframework.context.ConfigurableApplicationContext;
+import org.springframework.core.env.Environment;
+
+import javax.annotation.Resource;
+
+@SpringBootApplication
+@EnableEurekaClient
+@EnableZuulServer
+@EnableZuulProxy
+public class ServiceZuulApplication {
+
+	private static final String SPRING_BOOT_HELLO = "eureka.client.service-url.default-zone";
+
+	@Resource
+	private Environment environment;
+
+	/**
+	 * 通过注入Environment获取值
+	 */
+	public void getAttrByEnvironment() {
+		String property = environment.getProperty(SPRING_BOOT_HELLO);
+		System.out.println("通过注入Environment获取值: " + property);
+	}
+
+
+	public static void main(String[] args) {
+		ConfigurableApplicationContext atx = SpringApplication.run(ServiceZuulApplication.class, args);
+		ServiceZuulApplication bean = atx.getBean(ServiceZuulApplication.class);
+		bean.getAttrByEnvironment();
+	}
+}
+
diff --git a/springcloud_demo_on_k8s-master/service-zuul/src/main/java/com/springcloudme/servicezuul/api/apiController.java b/springcloud_demo_on_k8s-master/service-zuul/src/main/java/com/springcloudme/servicezuul/api/apiController.java
new file mode 100644
index 0000000..bbd9cbc
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-zuul/src/main/java/com/springcloudme/servicezuul/api/apiController.java
@@ -0,0 +1,14 @@
+package com.springcloudme.servicezuul.api;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/api")
+public class apiController {
+
+	@RequestMapping("/aaa")
+	public String get(){
+		return "aaaaa";
+	}
+}
diff --git a/springcloud_demo_on_k8s-master/service-zuul/src/main/java/com/springcloudme/servicezuul/filter/MyFilter.java b/springcloud_demo_on_k8s-master/service-zuul/src/main/java/com/springcloudme/servicezuul/filter/MyFilter.java
new file mode 100644
index 0000000..f414000
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-zuul/src/main/java/com/springcloudme/servicezuul/filter/MyFilter.java
@@ -0,0 +1,55 @@
+package com.springcloudme.servicezuul.filter;
+
+import com.netflix.zuul.ZuulFilter;
+import com.netflix.zuul.context.RequestContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * Email miles02@163.com
+ *
+ * @author fangzhipeng
+ * create 2018-07-09
+ **/
+@Component
+public class MyFilter extends ZuulFilter {
+
+    private static Logger log = LoggerFactory.getLogger(MyFilter.class);
+    @Override
+    public String filterType() {
+        return "pre";
+    }
+
+    @Override
+    public int filterOrder() {
+        return 0;
+    }
+
+    @Override
+    public boolean shouldFilter() {
+        return true;
+    }
+
+    @Override
+    public Object run() {
+        RequestContext ctx = RequestContext.getCurrentContext();
+        HttpServletRequest request = ctx.getRequest();
+        log.info(String.format("%s >>> %s", request.getMethod(), request.getRequestURL().toString()));
+        Object accessToken = request.getParameter("token");
+//        if(accessToken == null) {
+//            log.warn("token is empty");
+//            ctx.setSendZuulResponse(false);
+//            ctx.setResponseStatusCode(401);
+//            try {
+//                ctx.getResponse().getWriter().write("token is empty");
+//            }catch (Exception e){}
+//
+//            return null;
+//        }
+        log.info("ok");
+        return null;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_demo_on_k8s-master/service-zuul/src/main/java/com/springcloudme/servicezuul/util/Utils.java b/springcloud_demo_on_k8s-master/service-zuul/src/main/java/com/springcloudme/servicezuul/util/Utils.java
new file mode 100644
index 0000000..40e801d
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-zuul/src/main/java/com/springcloudme/servicezuul/util/Utils.java
@@ -0,0 +1,16 @@
+package com.springcloudme.servicezuul.util;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.env.Environment;
+import org.springframework.stereotype.Component;
+
+@Component
+public class Utils {
+
+	@Autowired
+	private Environment env;
+
+	public String getProps(String key){
+		return env.getProperty(key);
+	}
+}
diff --git a/springcloud_demo_on_k8s-master/service-zuul/src/main/resources/application.yml b/springcloud_demo_on_k8s-master/service-zuul/src/main/resources/application.yml
new file mode 100644
index 0000000..f579e93
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-zuul/src/main/resources/application.yml
@@ -0,0 +1,23 @@
+server:
+  port: 8762
+
+spring:
+  application:
+    name: service-zuul
+
+eureka:
+  instance:
+    preferIpAddress: true
+  client:
+    serviceUrl:
+      defaultZone: http://${EUREKA_URL:localhost}:8761/eureka
+
+zuul:
+  routes:
+    service-tp:
+      path: /service-tp/**
+      serviceId: service-tp
+    service-api:
+      path: /service-api/**
+      serviceId: service-api
+
diff --git a/springcloud_demo_on_k8s-master/service-zuul/src/test/java/com/springcloudme/servicezuul/ServiceZuulApplicationTests.java b/springcloud_demo_on_k8s-master/service-zuul/src/test/java/com/springcloudme/servicezuul/ServiceZuulApplicationTests.java
new file mode 100644
index 0000000..64c2b68
--- /dev/null
+++ b/springcloud_demo_on_k8s-master/service-zuul/src/test/java/com/springcloudme/servicezuul/ServiceZuulApplicationTests.java
@@ -0,0 +1,17 @@
+package com.springcloudme.servicezuul;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class ServiceZuulApplicationTests {
+
+	@Test
+	public void contextLoads() {
+	}
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/.gitignore b/springcloud_k8s_panzhihuazhihuishequ/applets/.gitignore
new file mode 100644
index 0000000..549e00a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/.gitignore
@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/.mvn/wrapper/MavenWrapperDownloader.java b/springcloud_k8s_panzhihuazhihuishequ/applets/.mvn/wrapper/MavenWrapperDownloader.java
new file mode 100644
index 0000000..a45eb6b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/.mvn/wrapper/MavenWrapperDownloader.java
@@ -0,0 +1,118 @@
+/*
+ * Copyright 2007-present the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.net.*;
+import java.io.*;
+import java.nio.channels.*;
+import java.util.Properties;
+
+public class MavenWrapperDownloader {
+
+    private static final String WRAPPER_VERSION = "0.5.6";
+    /**
+     * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
+     */
+    private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
+            + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
+
+    /**
+     * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
+     * use instead of the default one.
+     */
+    private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
+            ".mvn/wrapper/maven-wrapper.properties";
+
+    /**
+     * Path where the maven-wrapper.jar will be saved to.
+     */
+    private static final String MAVEN_WRAPPER_JAR_PATH =
+            ".mvn/wrapper/maven-wrapper.jar";
+
+    /**
+     * Name of the property which should be used to override the default download url for the wrapper.
+     */
+    private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
+
+    public static void main(String args[]) {
+        System.out.println("- Downloader started");
+        File baseDirectory = new File(args[0]);
+        System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
+
+        // If the maven-wrapper.properties exists, read it and check if it contains a custom
+        // wrapperUrl parameter.
+        File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
+        String url = DEFAULT_DOWNLOAD_URL;
+        if (mavenWrapperPropertyFile.exists()) {
+            FileInputStream mavenWrapperPropertyFileInputStream = null;
+            try {
+                mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
+                Properties mavenWrapperProperties = new Properties();
+                mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
+                url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
+            } catch (IOException e) {
+                System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
+            } finally {
+                try {
+                    if (mavenWrapperPropertyFileInputStream != null) {
+                        mavenWrapperPropertyFileInputStream.close();
+                    }
+                } catch (IOException e) {
+                    // Ignore ...
+                }
+            }
+        }
+        System.out.println("- Downloading from: " + url);
+
+        File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
+        if (!outputFile.getParentFile().exists()) {
+            if (!outputFile.getParentFile().mkdirs()) {
+                System.out.println(
+                        "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
+            }
+        }
+        System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
+        try {
+            downloadFileFromURL(url, outputFile);
+            System.out.println("Done");
+            System.exit(0);
+        } catch (Throwable e) {
+            System.out.println("- Error downloading");
+            e.printStackTrace();
+            System.exit(1);
+        }
+    }
+
+    private static void downloadFileFromURL(String urlString, File destination) throws Exception {
+        if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
+            String username = System.getenv("MVNW_USERNAME");
+            char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
+            Authenticator.setDefault(new Authenticator() {
+                @Override
+                protected PasswordAuthentication getPasswordAuthentication() {
+                    return new PasswordAuthentication(username, password);
+                }
+            });
+        }
+        URL website = new URL(urlString);
+        ReadableByteChannel rbc;
+        rbc = Channels.newChannel(website.openStream());
+        FileOutputStream fos = new FileOutputStream(destination);
+        fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
+        fos.close();
+        rbc.close();
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/.mvn/wrapper/maven-wrapper.jar b/springcloud_k8s_panzhihuazhihuishequ/applets/.mvn/wrapper/maven-wrapper.jar
new file mode 100644
index 0000000..2cc7d4a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/.mvn/wrapper/maven-wrapper.jar
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/.mvn/wrapper/maven-wrapper.properties b/springcloud_k8s_panzhihuazhihuishequ/applets/.mvn/wrapper/maven-wrapper.properties
new file mode 100644
index 0000000..642d572
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/.mvn/wrapper/maven-wrapper.properties
@@ -0,0 +1,2 @@
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip
+wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/mvnw b/springcloud_k8s_panzhihuazhihuishequ/applets/mvnw
new file mode 100644
index 0000000..a16b543
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/mvnw
@@ -0,0 +1,310 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#    https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Maven Start Up Batch script
+#
+# Required ENV vars:
+# ------------------
+#   JAVA_HOME - location of a JDK home dir
+#
+# Optional ENV vars
+# -----------------
+#   M2_HOME - location of maven2's installed home dir
+#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
+#     e.g. to debug Maven itself, use
+#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+# ----------------------------------------------------------------------------
+
+if [ -z "$MAVEN_SKIP_RC" ] ; then
+
+  if [ -f /etc/mavenrc ] ; then
+    . /etc/mavenrc
+  fi
+
+  if [ -f "$HOME/.mavenrc" ] ; then
+    . "$HOME/.mavenrc"
+  fi
+
+fi
+
+# OS specific support.  $var _must_ be set to either true or false.
+cygwin=false;
+darwin=false;
+mingw=false
+case "`uname`" in
+  CYGWIN*) cygwin=true ;;
+  MINGW*) mingw=true;;
+  Darwin*) darwin=true
+    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
+    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
+    if [ -z "$JAVA_HOME" ]; then
+      if [ -x "/usr/libexec/java_home" ]; then
+        export JAVA_HOME="`/usr/libexec/java_home`"
+      else
+        export JAVA_HOME="/Library/Java/Home"
+      fi
+    fi
+    ;;
+esac
+
+if [ -z "$JAVA_HOME" ] ; then
+  if [ -r /etc/gentoo-release ] ; then
+    JAVA_HOME=`java-config --jre-home`
+  fi
+fi
+
+if [ -z "$M2_HOME" ] ; then
+  ## resolve links - $0 may be a link to maven's home
+  PRG="$0"
+
+  # need this for relative symlinks
+  while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+      PRG="$link"
+    else
+      PRG="`dirname "$PRG"`/$link"
+    fi
+  done
+
+  saveddir=`pwd`
+
+  M2_HOME=`dirname "$PRG"`/..
+
+  # make it fully qualified
+  M2_HOME=`cd "$M2_HOME" && pwd`
+
+  cd "$saveddir"
+  # echo Using m2 at $M2_HOME
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --unix "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+fi
+
+# For Mingw, ensure paths are in UNIX format before anything is touched
+if $mingw ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME="`(cd "$M2_HOME"; pwd)`"
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
+fi
+
+if [ -z "$JAVA_HOME" ]; then
+  javaExecutable="`which javac`"
+  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
+    # readlink(1) is not available as standard on Solaris 10.
+    readLink=`which readlink`
+    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
+      if $darwin ; then
+        javaHome="`dirname \"$javaExecutable\"`"
+        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
+      else
+        javaExecutable="`readlink -f \"$javaExecutable\"`"
+      fi
+      javaHome="`dirname \"$javaExecutable\"`"
+      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
+      JAVA_HOME="$javaHome"
+      export JAVA_HOME
+    fi
+  fi
+fi
+
+if [ -z "$JAVACMD" ] ; then
+  if [ -n "$JAVA_HOME"  ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+      # IBM's JDK on AIX uses strange locations for the executables
+      JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+      JAVACMD="$JAVA_HOME/bin/java"
+    fi
+  else
+    JAVACMD="`which java`"
+  fi
+fi
+
+if [ ! -x "$JAVACMD" ] ; then
+  echo "Error: JAVA_HOME is not defined correctly." >&2
+  echo "  We cannot execute $JAVACMD" >&2
+  exit 1
+fi
+
+if [ -z "$JAVA_HOME" ] ; then
+  echo "Warning: JAVA_HOME environment variable is not set."
+fi
+
+CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
+
+# traverses directory structure from process work directory to filesystem root
+# first directory with .mvn subdirectory is considered project base directory
+find_maven_basedir() {
+
+  if [ -z "$1" ]
+  then
+    echo "Path not specified to find_maven_basedir"
+    return 1
+  fi
+
+  basedir="$1"
+  wdir="$1"
+  while [ "$wdir" != '/' ] ; do
+    if [ -d "$wdir"/.mvn ] ; then
+      basedir=$wdir
+      break
+    fi
+    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
+    if [ -d "${wdir}" ]; then
+      wdir=`cd "$wdir/.."; pwd`
+    fi
+    # end of workaround
+  done
+  echo "${basedir}"
+}
+
+# concatenates all lines of a file
+concat_lines() {
+  if [ -f "$1" ]; then
+    echo "$(tr -s '\n' ' ' < "$1")"
+  fi
+}
+
+BASE_DIR=`find_maven_basedir "$(pwd)"`
+if [ -z "$BASE_DIR" ]; then
+  exit 1;
+fi
+
+##########################################################################################
+# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+# This allows using the maven wrapper in projects that prohibit checking in binary data.
+##########################################################################################
+if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Found .mvn/wrapper/maven-wrapper.jar"
+    fi
+else
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
+    fi
+    if [ -n "$MVNW_REPOURL" ]; then
+      jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    else
+      jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    fi
+    while IFS="=" read key value; do
+      case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
+      esac
+    done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Downloading from: $jarUrl"
+    fi
+    wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
+    if $cygwin; then
+      wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
+    fi
+
+    if command -v wget > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found wget ... using wget"
+        fi
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+            wget "$jarUrl" -O "$wrapperJarPath"
+        else
+            wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
+        fi
+    elif command -v curl > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found curl ... using curl"
+        fi
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+            curl -o "$wrapperJarPath" "$jarUrl" -f
+        else
+            curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
+        fi
+
+    else
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Falling back to using Java to download"
+        fi
+        javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
+        # For Cygwin, switch paths to Windows format before running javac
+        if $cygwin; then
+          javaClass=`cygpath --path --windows "$javaClass"`
+        fi
+        if [ -e "$javaClass" ]; then
+            if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Compiling MavenWrapperDownloader.java ..."
+                fi
+                # Compiling the Java class
+                ("$JAVA_HOME/bin/javac" "$javaClass")
+            fi
+            if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                # Running the downloader
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Running MavenWrapperDownloader.java ..."
+                fi
+                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
+            fi
+        fi
+    fi
+fi
+##########################################################################################
+# End of extension
+##########################################################################################
+
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
+if [ "$MVNW_VERBOSE" = true ]; then
+  echo $MAVEN_PROJECTBASEDIR
+fi
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --path --windows "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
+    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
+fi
+
+# Provide a "standardized" way to retrieve the CLI args that will
+# work with both Windows and non-Windows executions.
+MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
+export MAVEN_CMD_LINE_ARGS
+
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+exec "$JAVACMD" \
+  $MAVEN_OPTS \
+  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
+  "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
+  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/mvnw.cmd b/springcloud_k8s_panzhihuazhihuishequ/applets/mvnw.cmd
new file mode 100644
index 0000000..c8d4337
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/mvnw.cmd
@@ -0,0 +1,182 @@
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements.  See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership.  The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License.  You may obtain a copy of the License at
+@REM
+@REM    https://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied.  See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Maven Start Up Batch script
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM M2_HOME - location of maven2's installed home dir
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
+@REM     e.g. to debug Maven itself, use
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+@REM ----------------------------------------------------------------------------
+
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
+@echo off
+@REM set title of command window
+title %0
+@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
+@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
+
+@REM set %HOME% to equivalent of $HOME
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
+
+@REM Execute a user defined script before this one
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
+if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
+:skipRcPre
+
+@setlocal
+
+set ERROR_CODE=0
+
+@REM To isolate internal variables from possible post scripts, we use another setlocal
+@setlocal
+
+@REM ==== START VALIDATION ====
+if not "%JAVA_HOME%" == "" goto OkJHome
+
+echo.
+echo Error: JAVA_HOME not found in your environment. >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:OkJHome
+if exist "%JAVA_HOME%\bin\java.exe" goto init
+
+echo.
+echo Error: JAVA_HOME is set to an invalid directory. >&2
+echo JAVA_HOME = "%JAVA_HOME%" >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+@REM ==== END VALIDATION ====
+
+:init
+
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
+@REM Fallback to current working directory if not found.
+
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
+
+set EXEC_DIR=%CD%
+set WDIR=%EXEC_DIR%
+:findBaseDir
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
+cd ..
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
+set WDIR=%CD%
+goto findBaseDir
+
+:baseDirFound
+set MAVEN_PROJECTBASEDIR=%WDIR%
+cd "%EXEC_DIR%"
+goto endDetectBaseDir
+
+:baseDirNotFound
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
+cd "%EXEC_DIR%"
+
+:endDetectBaseDir
+
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
+
+@setlocal EnableExtensions EnableDelayedExpansion
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
+
+:endReadAdditionalConfig
+
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+
+FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
+    IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
+)
+
+@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
+if exist %WRAPPER_JAR% (
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Found %WRAPPER_JAR%
+    )
+) else (
+    if not "%MVNW_REPOURL%" == "" (
+        SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    )
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Couldn't find %WRAPPER_JAR%, downloading it ...
+        echo Downloading from: %DOWNLOAD_URL%
+    )
+
+    powershell -Command "&{"^
+		"$webclient = new-object System.Net.WebClient;"^
+		"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
+		"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
+		"}"^
+		"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
+		"}"
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Finished downloading %WRAPPER_JAR%
+    )
+)
+@REM End of extension
+
+@REM Provide a "standardized" way to retrieve the CLI args that will
+@REM work with both Windows and non-Windows executions.
+set MAVEN_CMD_LINE_ARGS=%*
+
+%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
+if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
+:skipRcPost
+
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
+if "%MAVEN_BATCH_PAUSE%" == "on" pause
+
+if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
+
+exit /B %ERROR_CODE%
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/applets/pom.xml
new file mode 100644
index 0000000..208f5b4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/pom.xml
@@ -0,0 +1,146 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.panzhihua</groupId>
+        <artifactId>zhihuishequ</artifactId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <groupId>com.panzhihua</groupId>
+    <artifactId>applets</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>applets</name>
+    <description>小程序</description>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-config</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>com.panzhihua</groupId>
+            <artifactId>common</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.netflix.hystrix</groupId>
+            <artifactId>hystrix-javanica</artifactId>
+        </dependency>
+<!--        微信小程序-->
+        <dependency>
+            <groupId>com.github.binarywang</groupId>
+            <artifactId>weixin-java-miniapp</artifactId>
+            <version>4.3.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.github.xiaoymin</groupId>
+            <artifactId>swagger-bootstrap-ui</artifactId>
+        </dependency>
+        <!--添加监控依赖包-->
+        <dependency>
+            <groupId>io.micrometer</groupId>
+            <artifactId>micrometer-registry-prometheus</artifactId>
+        </dependency>
+        <dependency>
+            <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>
+        <dependency>
+            <groupId>com.panzhihua</groupId>
+            <artifactId>UMF</artifactId>
+            <version>0.0.1-SNAPSHOT</version>
+            <scope>system</scope>
+            <systemPath>${project.basedir}/src/main/resources/lib/UMF_SDK_V01.jar</systemPath>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <resources>
+<!--            <resource>-->
+<!--                <directory>${project.basedir}/src/main/resources/lib</directory>-->
+<!--                <targetPath>/BOOT-INF/lib/</targetPath>-->
+<!--                <includes>-->
+<!--                    <include>**/*.jar</include>-->
+<!--                </includes>-->
+<!--            </resource>-->
+<!--            <resource>-->
+<!--                <directory>src/main/resources</directory>-->
+<!--                <targetPath>BOOT-INF/classes/</targetPath>-->
+<!--            </resource>-->
+        </resources>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>2.5.0</version>
+                <configuration>
+                    <mainClass>com.panzhihua.applets.AppletsApplication</mainClass>
+                    <includeSystemScope>true</includeSystemScope>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>docker-maven-plugin</artifactId>
+                <version>1.2.0</version>
+                <configuration>
+                    <imageName>registry.cn-chengdu.aliyuncs.com/panzhihua/applets:v1</imageName>
+                    <serverId></serverId>
+                    <baseImage>java</baseImage>
+                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
+                    <resources>
+                        <resource>
+                            <targetPath>/</targetPath>
+                            <directory>${project.build.directory}</directory>
+                            <include>${project.build.finalName}.jar</include>
+                        </resource>
+                    </resources>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <repositories>
+        <repository>
+            <id>spring-snapshots</id>
+            <name>Spring Snapshots</name>
+            <url>https://repo.spring.io/snapshot</url>
+            <snapshots>
+                <enabled>true</enabled>
+            </snapshots>
+        </repository>
+        <repository>
+            <id>spring-milestones</id>
+            <name>Spring Milestones</name>
+            <url>https://repo.spring.io/milestone</url>
+        </repository>
+    </repositories>
+
+</project>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/AppletsApplication.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/AppletsApplication.java
new file mode 100644
index 0000000..8250afb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/AppletsApplication.java
@@ -0,0 +1,24 @@
+package com.panzhihua.applets;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.cloud.client.SpringCloudApplication;
+import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.ComponentScan;
+
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+@EnableSwagger2
+@SpringCloudApplication
+@EnableCircuitBreaker
+@EnableEurekaClient
+@EnableFeignClients(basePackages = {"com.panzhihua.common.service"})
+@ComponentScan({"com.panzhihua.applets", "com.panzhihua.common"})
+public class AppletsApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(AppletsApplication.class, args);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ActDynTypeApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ActDynTypeApi.java
new file mode 100644
index 0000000..dab55b4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ActDynTypeApi.java
@@ -0,0 +1,42 @@
+package com.panzhihua.applets.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.AddComActDynTypeDTO;
+import com.panzhihua.common.model.dtos.community.EditComActDynTypeDTO;
+import com.panzhihua.common.model.dtos.community.PageComActDynTypeDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActDynTypeVO;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.annotation.Validated;
+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.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+import static java.util.Objects.isNull;
+
+@Slf4j
+@Api(tags = {"社区动态分类模块"})
+@RestController
+@RequestMapping("/dyn/type/")
+public class ActDynTypeApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "查询社区动态分类列表", response = ComActDynTypeVO.class)
+    @PostMapping("/list")
+    public R list(@RequestBody PageComActDynTypeDTO comActDynTypeDTO) {
+//        comActDynTypeDTO.setCommunityId(this.getCommunityId()+"");
+//        return communityService.getDynTypeListByAdmin(comActDynTypeDTO);
+        return communityService.pageDynTypeByAdmin(comActDynTypeDTO);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/BcRegionApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/BcRegionApi.java
new file mode 100644
index 0000000..8362d6d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/BcRegionApi.java
@@ -0,0 +1,36 @@
+package com.panzhihua.applets.api;
+
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * 行政区划表(BcRegion)表控制层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 行政区划表相关功能
+ *
+ * @author zzj
+ * @since 2022-04-20 14:26:14
+ */
+@Api(tags = {"行政区划"})
+@RestController
+@RequestMapping("bcRegion")
+public class BcRegionApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation("四级联动接口")
+    @GetMapping("levelList")
+    public R levelList(@RequestParam("level")Integer level,@RequestParam("code")String code){
+        return this.communityService.levelList(level,code);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ClusterApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ClusterApi.java
new file mode 100644
index 0000000..db07a88
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ClusterApi.java
@@ -0,0 +1,47 @@
+package com.panzhihua.applets.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.cluster.PageClusterMemberDto;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.cluster.PageClusterMemberVo;
+import com.panzhihua.common.model.vos.community.cluster.PageClusterVo;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Objects;
+
+/**
+ * title: 群团组织接口类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 群团组织接口类
+ *
+ * @author lyq
+ * @date 2021/9/23 16:12
+ */
+@Slf4j
+@Api(tags = {"群团组织"})
+@RestController
+@RequestMapping("/cluster/")
+public class ClusterApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "群团组织成员分页查询",response = PageClusterMemberVo.class)
+    @PostMapping("/member/page")
+    public R pageMemberClusterApplets(@RequestBody PageClusterMemberDto pageClusterMemberDto) {
+        pageClusterMemberDto.setCommunityId(this.getCommunityId());
+        return communityService.pageClusterMemberApplets(pageClusterMemberDto);
+    }
+
+    @ApiOperation(value = "群团组织列表",response = PageClusterVo.class)
+    @GetMapping("list")
+    public R listClusterApplets() {
+        return communityService.listClusterApplets(this.getCommunityId());
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActAcidCheckRecordApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActAcidCheckRecordApi.java
new file mode 100644
index 0000000..03c7102
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActAcidCheckRecordApi.java
@@ -0,0 +1,82 @@
+package com.panzhihua.applets.api;
+
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.acid.ComActAcidCheckRecordDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidCheckRecordVO;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * 排查跟进表(ComActAcidCheckRecord)表控制层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 排查跟进表相关功能
+ *
+ * @author zzj
+ * @since 2022-04-24 16:14:27
+ */
+@Api(tags = {"排查跟进"})
+@RestController
+@RequestMapping("comActAcidCheckRecord")
+public class ComActAcidCheckRecordApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 列表查询
+     *
+     * @param comActAcidCheckRecordDTO 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "分页查询",response = ComActAcidCheckRecordVO.class)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody ComActAcidCheckRecordDTO comActAcidCheckRecordDTO) {
+        return this.communityService.selectAllComActAcidCheckRecord(comActAcidCheckRecordDTO);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation(value = "通过主键查询单条数据",response = ComActAcidCheckRecordVO.class)
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return this.communityService.selectOneComActAcidCheckRecord(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActAcidCheckRecordVO 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation(value = "新增数据")
+    @PostMapping
+    public R insert(@RequestBody ComActAcidCheckRecordVO comActAcidCheckRecordVO) {
+        comActAcidCheckRecordVO.setUsername(this.getLoginUserInfo().getName());
+        return this.communityService.insertComActAcidCheckRecord(comActAcidCheckRecordVO);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActAcidCheckRecordVO 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation(value = "修改数据")
+    @PostMapping("/update")
+    public R update(@RequestBody ComActAcidCheckRecordVO comActAcidCheckRecordVO) {
+        return this.communityService.updateComActAcidCheckRecord(comActAcidCheckRecordVO);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActAcidDangerMemberApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActAcidDangerMemberApi.java
new file mode 100644
index 0000000..405af64
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActAcidDangerMemberApi.java
@@ -0,0 +1,51 @@
+package com.panzhihua.applets.api;
+
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+
+import com.panzhihua.common.model.dtos.community.acid.PageDangerMemberDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageFmsTeamDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidDangerMemberVO;
+import com.panzhihua.common.model.vos.community.fms.ComFmsTeamVO;
+import io.swagger.annotations.ApiOperation;
+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.RestController;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.service.community.CommunityService;
+
+import io.swagger.annotations.Api;
+import lombok.extern.slf4j.Slf4j;
+
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+
+/**
+ * @title: ComActAcidDangerMemberApi
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description:
+ * @author: hans
+ * @date: 2022/04/27 15:54
+ */
+@Slf4j
+@Api(tags = {"风险人员"})
+@RestController
+@RequestMapping("comActAcidDangerMember")
+public class ComActAcidDangerMemberApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "分页查询风险人员", response = ComActAcidDangerMemberVO.class)
+    @PostMapping("/page")
+    public R pageDangerMember(@RequestBody @Valid PageDangerMemberDTO pageDangerMemberDTO) {
+        return communityService.pageDangerMember(pageDangerMemberDTO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActAcidRecordApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActAcidRecordApi.java
new file mode 100644
index 0000000..b580850
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActAcidRecordApi.java
@@ -0,0 +1,146 @@
+package com.panzhihua.applets.api;
+
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.acid.ComActAcidRecordDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidCharts;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidRecordTimeVO;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidRecordVO;
+import com.panzhihua.common.model.vos.community.reserve.FiveCount;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.StringUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * (ComActAcidRecord)表控制层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 相关功能
+ *
+ * @author zzj
+ * @since 2022-04-12 15:29:59
+ */
+@Slf4j
+@Api(tags = {"防疫登记"})
+@RestController
+@RequestMapping("comActAcidRecord")
+public class ComActAcidRecordApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param comActAcidRecordDTO 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "分页查询",response = ComActAcidRecordVO.class)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody ComActAcidRecordDTO comActAcidRecordDTO) {
+        return this.communityService.selectAllComActAcidRecord(comActAcidRecordDTO);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation(value = "通过主键查询单条数据",response = ComActAcidRecordVO.class)
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return this.communityService.selectOneComActAcidRecord(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActAcidRecord 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation(value = "新增数据")
+    @PostMapping
+    public R insert(@RequestBody ComActAcidRecordTimeVO comActAcidRecord) {
+        ComActAcidRecordVO comActAcidRecordVO=new ComActAcidRecordVO();
+        BeanUtils.copyProperties(comActAcidRecord,comActAcidRecordVO);
+        comActAcidRecordVO.setUserId(this.getUserId());
+        comActAcidRecordVO.setCreateTime(new Date());
+        return this.communityService.insertComActAcidRecord(comActAcidRecordVO);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActAcidRecordVO 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation(value = "修改数据")
+    @PostMapping("/update")
+    public R update(@RequestBody ComActAcidRecordVO comActAcidRecordVO) {
+        comActAcidRecordVO.setUserId(this.getUserId());
+        return this.communityService.updateComActAcidRecord(comActAcidRecordVO);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActAcidRecordVO 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation(value = "修改数据")
+    @PostMapping("/updateApplets")
+    public R updateApplets(@RequestBody ComActAcidRecordVO comActAcidRecordVO) {
+        comActAcidRecordVO.setUserId(this.getUserId());
+        return this.communityService.updateApplets(comActAcidRecordVO);
+    }
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @ApiOperation(value = "删除数据")
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return this.communityService.deleteComActAcidRecord(id);
+    }
+
+    /**
+     * 5项常规统计
+     * @return
+     */
+    @ApiOperation(value = "7项常规统计",response = FiveCount.class)
+    @GetMapping("fiveCountPlus")
+    public R fiveCountPlus(@RequestParam("date")String date,@RequestParam("localCity") String localCity){
+        return this.communityService.comActAcidRecordFiveCountPlus(date,localCity,null);
+    }
+    @ApiOperation(value = "新版查看详情",response = ComActAcidRecordVO.class)
+    @GetMapping("/detailByApp")
+    public R detailByApp(@RequestParam("id")Long id,@RequestParam("localCity")String localCity){
+        return this.communityService.detailByApp(id,localCity);
+    }
+
+    /**
+     * 图标统计
+     * @return
+     */
+    @ApiOperation(value = "图标统计",response = ComActAcidCharts.class)
+    @GetMapping("charts")
+    public R charts(@RequestParam("date")String date,@RequestParam("localCity")String localCity){
+        return this.communityService.charts(date,localCity);
+    }
+    @GetMapping("/checkCommit")
+    public R checkCommit(){
+        return this.communityService.checkCommit(this.getUserId());
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActActivityCodeApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActActivityCodeApi.java
new file mode 100644
index 0000000..3315041
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActActivityCodeApi.java
@@ -0,0 +1,57 @@
+package com.panzhihua.applets.api;
+
+
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.QRActivityCodeVO;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 签到二维码表(ComActActivityCode)表控制层
+ *
+ * @author makejava
+ * @since 2021-10-15 15:23:10
+ */
+@Slf4j
+@Api(tags = {"活动二维码"})
+@RestController
+@RequestMapping("comActActivityCode")
+public class ComActActivityCodeApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 查看二维码
+     * @param qrCodeVO
+     * @return
+     */
+    @ApiOperation("查看二维码")
+    @PostMapping("/getQRCode")
+    public R getQRCode(@RequestBody QRActivityCodeVO qrCodeVO){
+        return this.communityService.getQRCode(qrCodeVO);
+    }
+
+    /**
+     * 重置二维码
+     * @param qrCodeVO
+     * @return
+     */
+    @ApiOperation("重置二维码")
+    @PostMapping("/resetQRCode")
+    public R resetQRCode(@RequestBody QRActivityCodeVO qrCodeVO){
+        return this.communityService.resetQRCode(qrCodeVO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActAnnouncementApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActAnnouncementApi.java
new file mode 100644
index 0000000..2dae60b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActAnnouncementApi.java
@@ -0,0 +1,96 @@
+package com.panzhihua.applets.api;
+
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActAnnouncementVO;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * (ComActAnnouncement)表控制层
+ *
+ * @author makejava
+ * @since 2021-11-01 13:45:55
+ */
+@Slf4j
+@Api(tags = {"通知公告"})
+@RestController
+@RequestMapping("comActAnnouncement")
+public class ComActAnnouncementApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "分页查询所有数据",response = ComActAnnouncementVO.class)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        commonPage.setCommunityId(this.getCommunityId());
+        return this.communityService.comActAnnouncementSelectAll(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation("通过主键查询单条数据")
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return this.communityService.comActAnnouncementSelectOne(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActAnnouncementVO 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation("新增数据")
+    @PostMapping
+    public R insert(@RequestBody ComActAnnouncementVO comActAnnouncementVO) {
+        comActAnnouncementVO.setCreateTime(new Date());
+        comActAnnouncementVO.setCommunityId(this.getCommunityId());
+       return this.communityService.comActAnnouncementInsert(comActAnnouncementVO);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActAnnouncementVO 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation("修改数据")
+    @PostMapping("/update")
+    public R update(@RequestBody ComActAnnouncementVO comActAnnouncementVO) {
+        return this.communityService.comActAnnouncementUpdate(comActAnnouncementVO);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @ApiOperation("删除数据")
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return this.communityService.comActAnnouncementDelete(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActColumnApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActColumnApi.java
new file mode 100644
index 0000000..f5fed00
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActColumnApi.java
@@ -0,0 +1,103 @@
+package com.panzhihua.applets.api;
+
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActColumnVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.StringUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * 分类列表(ComActColumn)表控制层
+ *
+ * @author makejava
+ * @since 2021-10-20 17:28:14
+ */
+@Slf4j
+@Api(tags = {"分类管理"})
+@RestController
+@RequestMapping("comActColumn")
+public class ComActColumnApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "分页查询所有数据",response = ComActColumnVO.class)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.communityService.comActColumnSelectAll(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation("通过主键查询单条数据")
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return this.communityService.comActColumnSelectOne(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActColumnVO 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation("新增数据")
+    @PostMapping
+    public R insert(@RequestBody ComActColumnVO comActColumnVO) {
+        comActColumnVO.setStatus(1);
+        comActColumnVO.setCreateTime(new Date());
+        if(StringUtils.isNotEmpty(this.getLoginUserInfo().getName())){
+            comActColumnVO.setCreateBy(this.getLoginUserInfo().getName());
+        }
+        return communityService.comActColumnInsert(comActColumnVO);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActColumnVO 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation("修改数据")
+    @PostMapping("/update")
+    public R update(@RequestBody ComActColumnVO comActColumnVO) {
+        comActColumnVO.setUpdateTime(new Date());
+        if(StringUtils.isNotEmpty(this.getLoginUserInfo().getName())){
+            comActColumnVO.setUpdateBy(this.getLoginUserInfo().getName());
+        }
+        return this.communityService.comActColumnUpdate(comActColumnVO);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @ApiOperation("删除数据")
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return this.communityService.comActColumnDelete(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActDpcApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActDpcApi.java
new file mode 100644
index 0000000..6f7b648
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActDpcApi.java
@@ -0,0 +1,126 @@
+package com.panzhihua.applets.api;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+
+import org.springframework.util.ObjectUtils;
+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.JSONObject;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.dpc.PageDpcDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActDpcVO;
+import com.panzhihua.common.model.vos.community.ComActEasyPhotoFeedbackVO;
+import com.panzhihua.common.model.vos.community.ComActEasyPhotoVO;
+import com.panzhihua.common.model.vos.user.SysUserNoticeVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.user.UserService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+
+/**
+ * @title: ComActDpcApi
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 人大代表
+ * @author: hans
+ * @date: 2022/06/07 10:57
+ */
+@Slf4j
+@Api(tags = {"人大代表相关"})
+@RestController
+@RequestMapping("/dpc")
+public class ComActDpcApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private UserService userService;
+
+    @ApiOperation(value = "获取人大代表详情", response = ComActDpcVO.class)
+    @ApiImplicitParam(name = "id", value = "人大代表id", required = true)
+    @GetMapping("/detail")
+    public R detailDpc(@RequestParam("id") Long id) {
+        return communityService.detailDpc(id);
+    }
+
+    @ApiOperation(value = "分页查询人大代表", response = ComActDpcVO.class)
+    @PostMapping("/page")
+    public R pageDpc(@RequestBody @Valid PageDpcDTO pageDpcDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (nonNull(loginUserInfo)) {
+            pageDpcDTO.setCommunityId(loginUserInfo.getCommunityId());
+        } else if (isNull(pageDpcDTO.getCommunityId())) {
+            return R.fail("未指定社区");
+        }
+        return communityService.pageDpc(pageDpcDTO);
+    }
+
+    @ApiOperation(value = "获取人大代表反馈记录", response = ComActEasyPhotoFeedbackVO.class)
+    @ApiImplicitParam(name = "id", value = "随手拍id", required = true)
+    @GetMapping("/feedback")
+    public R getFeedbackList(@RequestParam("id") Long id) {
+        return communityService.getFeedbackList(id);
+    }
+
+    @ApiOperation(value = "人大代表反馈随手拍")
+    @PostMapping("/feedback")
+    public R addFeedback(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO) {
+        LoginUserInfoVO loginUserInfo = userService.getUserInfoByUserId(this.getLoginUserInfo().getUserId().toString()).getData();
+        Integer isDpcMember = loginUserInfo.getIsDpcMember();
+        if (isNull(isDpcMember) || !isDpcMember.equals(1)) {
+            return R.fail("暂无权限");
+        }
+        Long userId = loginUserInfo.getUserId();
+        Integer type = comActEasyPhotoVO.getType();
+        if (null == type || type != 3) {
+            return R.fail("操作类型错误");
+        }
+        Long id = comActEasyPhotoVO.getId();
+        if (ObjectUtils.isEmpty(id)) {
+            return R.fail("随手拍主键不能为空");
+        }
+        comActEasyPhotoVO.setUserId(userId);
+        R r = communityService.addEasyPhotoFeedbackForDpc(comActEasyPhotoVO);
+        if (R.isOk(r)) {
+            R r1 = communityService.detailEasyPhoto(id, userId);
+            if (R.isOk(r1)) {
+                ComActEasyPhotoVO comActEasyPhotoVO1 =
+                    JSONObject.parseObject(JSONObject.toJSONString(r1.getData()), ComActEasyPhotoVO.class);
+                SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO();
+                sysUserNoticeVO.setUserId(comActEasyPhotoVO1.getSponsorId());
+                sysUserNoticeVO.setType(2);
+                sysUserNoticeVO.setBusinessType(4);
+                sysUserNoticeVO.setBusinessTime(comActEasyPhotoVO1.getExamineAt());
+                sysUserNoticeVO.setBusinessId(id);
+                sysUserNoticeVO.setStatus(0);
+                if (type.intValue() == 3) {
+                    sysUserNoticeVO.setTitle("随手拍有反馈");
+                    sysUserNoticeVO.setBusinessTitle(comActEasyPhotoVO.getHandleResult());
+                    sysUserNoticeVO.setBusinessContent("社区已经处理好了具体的事宜,将变成现在更好看的样子找到更好的自己……");
+                    sysUserNoticeVO.setBusinessStatus(2);
+                    R r2 = userService.addNotice(sysUserNoticeVO);
+                    if (R.isOk(r2)) {
+                        log.info("新增随手拍有反馈通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+                    }
+                }
+            }
+        }
+        return r;
+    }
+
+}
+
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActEnterpriseApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActEnterpriseApi.java
new file mode 100644
index 0000000..9777b3b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActEnterpriseApi.java
@@ -0,0 +1,65 @@
+package com.panzhihua.applets.api;
+
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+
+import org.springframework.web.bind.annotation.DeleteMapping;
+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.enterprise.AddEnterpriseDTO;
+import com.panzhihua.common.model.dtos.community.enterprise.EditEnterpriseDTO;
+import com.panzhihua.common.model.dtos.community.enterprise.PageEnterpriseDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActEnterpriseVO;
+import com.panzhihua.common.service.community.CommunityService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @title: ComActEnterpriseApi
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 社区企业管理
+ * @author: hans
+ * @date: 2022/05/31 10:22
+ */
+@Slf4j
+@Api(tags = {"社区企业管理"})
+@RestController
+@RequestMapping("/enterprise")
+public class ComActEnterpriseApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation("获取社区企业详情")
+    @ApiImplicitParam(name = "id", value = "社区企业id", required = true)
+    @GetMapping("/detail")
+    public R detailEnterprise(@RequestParam("id") Long id) {
+        return communityService.detailEnterprise(id);
+    }
+
+    @ApiOperation(value = "分页查询社区企业", response = ComActEnterpriseVO.class)
+    @PostMapping("/page")
+    public R pageEnterprise(@RequestBody @Valid PageEnterpriseDTO pageEnterpriseDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (nonNull(loginUserInfo)) {
+            pageEnterpriseDTO.setCommunityId(loginUserInfo.getCommunityId());
+        } else if (isNull(pageEnterpriseDTO.getCommunityId())) {
+            return R.fail("未指定社区");
+        }
+        return communityService.pageEnterprise(pageEnterpriseDTO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActFourMemberApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActFourMemberApi.java
new file mode 100644
index 0000000..8b06be0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActFourMemberApi.java
@@ -0,0 +1,164 @@
+package com.panzhihua.applets.api;
+
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.*;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.*;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * (ComActFourMember)表控制层
+ *
+ * @author makejava
+ * @since 2021-09-23 10:13:31
+ */
+@Slf4j
+@Api(tags = {"四长四员"})
+@RestController
+@RequestMapping("comActFourMember")
+public class ComActFourMemberApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "分页查询",response = ComActFourMemberVO.class)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        commonPage.setParamId(this.getCommunityId());
+        commonPage.setStatus(1);
+        return this.communityService.comActFourMemberSelectAll(commonPage);
+    }
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "分页查询",response = ComMngPopulationVO.class)
+    @PostMapping("queryMember")
+    public R selectMember(@RequestBody CommonPage commonPage) {
+        commonPage.setParamId(this.getCommunityId());
+        return this.communityService.comActFourMemberQueryMember(commonPage);
+    }
+
+    /**
+     *居民数据详情
+     */
+    @ApiOperation(value = "居民数据详情",response = FourMemberDetailVO.class)
+    @GetMapping("/memberDetail")
+    public R memberDetail(@RequestParam("id")Long id){
+        return this.communityService.comActFourMemberMemberDetail(id);
+    }
+
+    @ApiOperation(value = "房屋级联菜单查询")
+    @PostMapping("/cascade/list")
+    public R getCascadeHouseAddress(@RequestBody CascadeHouseDTO cascadeHouseDTO) {
+        // 获取登陆用户绑定社区id
+        LoginUserInfoVO loginUser = this.getLoginUserInfo();
+        if (loginUser != null) {
+            cascadeHouseDTO.setCommunityId(loginUser.getCommunityId());
+        }
+        return communityService.getCascadeHouseAddress(cascadeHouseDTO);
+    }
+
+    /**
+     * 查询房屋二级级联菜单
+     *
+     * @param cascadeHouseDTO
+     *            请求参数
+     * @return 菜单列表
+     */
+    @ApiOperation(value = "房屋级联菜单查询")
+    @PostMapping("/second/list")
+    public R getSecondHouseAddress(@RequestBody CascadeHouseDTO cascadeHouseDTO) {
+        cascadeHouseDTO.setCommunityId(this.getCommunityId());
+        return communityService.getSecondHouseAddress(cascadeHouseDTO);
+    }
+
+    @ApiOperation(value = "分页查询实有房屋列表", response = ComMngPopulationHouseAdminVO.class)
+    @PostMapping("/pageHouse")
+    public R pageHouse(@RequestBody ComMngPopulationHouseAdminDTO populationHouseAdminDTO) {
+        // 获取登陆用户绑定社区id
+        LoginUserInfoVO loginUser = this.getLoginUserInfo();
+        if (loginUser != null) {
+            populationHouseAdminDTO.setCommunityId(loginUser.getCommunityId());
+        }
+        return communityService.pageHouse(populationHouseAdminDTO);
+    }
+
+    @ApiOperation(value = "查询实有房屋详情", response = ComMngPopulationHouseDetailAdminVO.class)
+    @PostMapping("/house/detail")
+    public R getHouseDetail(@RequestParam(value = "houseId") Long houseId) {
+        return communityService.getHouseDetail(houseId);
+    }
+
+    /**
+     * 编辑实有房屋信息
+     *
+     * @param comMngPopulationHouseUserVO
+     *            请求参数
+     * @return 编辑结果
+     */
+    @ApiOperation(value = "编辑实有房屋信息")
+    @PostMapping("/population/house/user/edit")
+    public R editHouseUser(@RequestBody ComMngPopulationHouseUserVO comMngPopulationHouseUserVO) {
+        return communityService.editHouseUser(comMngPopulationHouseUserVO);
+    }
+
+    /**
+     * 新增实有房屋信息
+     *
+     * @param comMngPopulationHouseUserVO
+     *            请求参数
+     * @return 编辑结果
+     */
+    @ApiOperation(value = "新增实有房屋信息")
+    @PostMapping("/population/house/user/insert")
+    public R insertHouseUser(@RequestBody ComMngPopulationHouseUserVO comMngPopulationHouseUserVO) {
+        return communityService.insertHouseUser(comMngPopulationHouseUserVO);
+    }
+
+    /**
+     * 根据房屋id列表删除房屋信息
+     *
+     * @param comMngPopulationHouseUserVO
+     *            请求参数
+     * @return 删除结果
+     */
+    @ApiOperation(value = "删除实有房屋信息")
+    @PostMapping("/population/house/user/delete")
+    public R deleteHousesUser(@RequestBody ComMngPopulationHouseUserVO comMngPopulationHouseUserVO) {
+        return communityService.deleteHousesUser(comMngPopulationHouseUserVO);
+    }
+
+    /**
+     * 根据id查询
+     *
+     * @param id
+     *            请求参数
+     * @return 删除结果
+     */
+    @ApiOperation(value = "id查询信息")
+    @GetMapping("/population/house/user/detail")
+    public R detailHousesUser(@RequestParam("id") Long id) {
+        return communityService.detailHousesUser(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActIntegralUserApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActIntegralUserApi.java
new file mode 100644
index 0000000..4d4aa95
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActIntegralUserApi.java
@@ -0,0 +1,98 @@
+package com.panzhihua.applets.api;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.vos.community.integral.IntegralTradeVO;
+import io.swagger.annotations.ApiImplicitParam;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.integral.ComActIntegralCommunityRankDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.integral.ComActIntegralCommunityRankVO;
+import com.panzhihua.common.model.vos.community.integral.ComActIntegralCommunityTradeVO;
+import com.panzhihua.common.model.vos.community.integral.ComActIntegralUserRuleVO;
+import com.panzhihua.common.model.vos.community.integral.ComActIntegralUserVO;
+import com.panzhihua.common.service.community.CommunityService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+@RestController
+@RequestMapping("/integral/")
+@Api(tags = {"用户积分模块"})
+public class ComActIntegralUserApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "查询积分说明")
+    @GetMapping("/explain")
+    public R getIntegralExplain() {
+        return communityService.getIntegralExplainApplets();
+    }
+
+    @ApiOperation(value = "查询社区领取积分列表", response = ComActIntegralUserRuleVO.class)
+    @PostMapping("/receive")
+    public R getIntegralReceive() {
+        LoginUserInfoVO userInfoVO = this.getLoginUserInfo();
+        if (userInfoVO == null) {
+            return R.fail("请先登录");
+        }
+        return communityService.getIntegralReceiveApplets(userInfoVO.getUserId(), userInfoVO.getCommunityId());
+    }
+
+    @ApiOperation(value = "积分统计", response = ComActIntegralUserVO.class)
+    @ApiImplicitParam(name = "communityId", value = "社区id")
+    @GetMapping("/user/statistics")
+    public R getIntegralUserList(@RequestParam(value = "communityId", required = false) Long communityId) {
+        LoginUserInfoVO userInfoVO = this.getLoginUserInfo();
+        if (userInfoVO == null) {
+            return R.fail("请先登录");
+        }
+        return communityService.getIntegralUserListApplets(userInfoVO.getUserId(), communityId);
+    }
+
+    @ApiOperation(value = "查询我的积分余额", response = ComActIntegralUserVO.class)
+    @ApiImplicitParam(name = "communityId", value = "社区id", required = true)
+    @GetMapping("/user/balance")
+    public R getUserIntegralBalance(@RequestParam("communityId") Long communityId) {
+        LoginUserInfoVO userInfoVO = this.getLoginUserInfo();
+        if (userInfoVO == null) {
+            return R.fail("请先登录");
+        }
+        return communityService.getUserIntegralBalance(userInfoVO.getUserId(), communityId);
+    }
+
+    @ApiOperation(value = "获取积分详情", response = IntegralTradeVO.class)
+    @ApiImplicitParam(name = "id", value = "积分明细id", required = true)
+    @GetMapping("/user/detail")
+    public R getUserIntegralDetail(@RequestParam("id") Long id) {
+        return communityService.getUserIntegralDetail(id);
+    }
+
+    @ApiOperation(value = "查询社区积分排行榜", response = ComActIntegralCommunityRankVO.class)
+    @PostMapping("/community/rank")
+    public R getIntegralCommunityRank(@RequestBody ComActIntegralCommunityRankDTO communityRankDTO) {
+        LoginUserInfoVO userInfoVO = this.getLoginUserInfo();
+        if (userInfoVO == null) {
+            return R.fail("请先登录");
+        }
+        return communityService.getIntegralCommunityRankApplets(communityRankDTO);
+    }
+
+    @ApiOperation(value = "查询用户积分明细", response = ComActIntegralCommunityTradeVO.class)
+    @PostMapping("/community/trade")
+    public R getIntegralCommunityTrade(@RequestBody ComActIntegralCommunityRankDTO communityTradeDTO) {
+        LoginUserInfoVO userInfoVO = this.getLoginUserInfo();
+        if (userInfoVO == null) {
+            return R.fail("请先登录");
+        }
+        communityTradeDTO.setUserId(userInfoVO.getUserId());
+        return communityService.getIntegralCommunityTradeApplets(communityTradeDTO);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActProceedings.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActProceedings.java
new file mode 100644
index 0000000..3a9d2ea
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActProceedings.java
@@ -0,0 +1,26 @@
+package com.panzhihua.applets.api;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+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;
+
+@RestController
+@RequestMapping("/proceedings")
+@Api(tags = "议事委员会")
+public class ComActProceedings {
+    @Resource
+    private CommunityService communityService;
+
+    @GetMapping("/list")
+    @ApiOperation("议事委员会列表")
+    public R list(@RequestParam("page")Integer page,@RequestParam("size")Integer size){
+        return communityService.proceedingsList(page,size ,null );
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActRaffleApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActRaffleApi.java
new file mode 100644
index 0000000..572bca7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActRaffleApi.java
@@ -0,0 +1,97 @@
+package com.panzhihua.applets.api;
+
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.raffle.ComActRaffleVO;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * 抽奖活动表(ComActRaffle)表控制层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 抽奖活动表相关功能
+ *
+ * @author zzj
+ * @since 2022-02-18 14:31:20
+ */
+@Slf4j
+@Api(tags = {"抽奖活动"})
+@RestController
+@RequestMapping("comActRaffle")
+public class ComActRaffleApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "分页查询",response = ComActRaffleVO.class)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        commonPage.setType(1);
+        return this.communityService.selectAllComActRaffle(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation(value = "详情",response = ComActRaffleVO.class)
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return this.communityService.selectOneComActRaffle(id,this.getUserId());
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActRaffleVO 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation(value = "新增数据")
+    @PostMapping
+    public R insert(@RequestBody ComActRaffleVO comActRaffleVO) {
+        comActRaffleVO.setCommunityId(this.getCommunityId());
+        comActRaffleVO.setCreateBy(this.getUserId());
+        return this.communityService.insertComActRaffle(comActRaffleVO);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActRaffleVO 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation(value = "修改数据")
+    @PostMapping("/update")
+    public R update(@RequestBody ComActRaffleVO comActRaffleVO) {
+        return this.communityService.updateComActRaffle(comActRaffleVO);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @ApiOperation(value = "删除数据")
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return this.communityService.deleteComActRaffle(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActRaffleRecordApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActRaffleRecordApi.java
new file mode 100644
index 0000000..ce24e63
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActRaffleRecordApi.java
@@ -0,0 +1,105 @@
+package com.panzhihua.applets.api;
+
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.raffle.ComActRaffleRecordVO;
+import com.panzhihua.common.model.vos.community.warehouse.QRCodeVO;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * 抽奖活动中奖记录表(ComActRaffleRecord)表控制层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 抽奖活动中奖记录表相关功能
+ *
+ * @author zzj
+ * @since 2022-02-18 14:32:02
+ */
+@Slf4j
+@Api(tags = {"获奖记录"})
+@RestController
+@RequestMapping("comActRaffleRecord")
+public class ComActRaffleRecordApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "分页查询",response = ComActRaffleRecordVO.class)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.communityService.selectAllComActRaffleRecord(commonPage);
+    }
+    @ApiOperation(value = "根据抽奖活动id获取奖品统计")
+    @GetMapping("/queryPrize")
+    public R queryPrize(@RequestParam("id")Long id){
+        return this.communityService.queryPrize(id);
+    }
+
+    /**
+     * 生成二维码
+     * @param qrCodeVO
+     * @return
+     */
+    @ApiOperation("生成二维码")
+    @PostMapping("/getQRCode")
+    public R getQRCode(@RequestBody QRCodeVO qrCodeVO){
+        return this.communityService.getRaffleQRCode(qrCodeVO);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActRaffleRecordVO 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation("核销接口")
+    @PostMapping("/update")
+    public R update(@RequestBody ComActRaffleRecordVO comActRaffleRecordVO) {
+        comActRaffleRecordVO.setStaffId(this.getUserId());
+        comActRaffleRecordVO.setStaffTime(new Date());
+        comActRaffleRecordVO.setStatus(2);
+        return this.communityService.updateRaffleRecord(comActRaffleRecordVO);
+    }
+    /**
+     * 新增数据
+     *
+     * @param comActRaffleRecordVO 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation("参加活动")
+    @PostMapping
+    public R insert(@RequestBody ComActRaffleRecordVO comActRaffleRecordVO) {
+        comActRaffleRecordVO.setCreateTime(new Date());
+        comActRaffleRecordVO.setUserId(this.getUserId());
+        comActRaffleRecordVO.setStatus(0);
+        return communityService.insertRaffleRecord(comActRaffleRecordVO);
+    }
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation("详情")
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return this.communityService.selectOneRaffleRecord(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActSocialMemberApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActSocialMemberApi.java
new file mode 100644
index 0000000..927e5aa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActSocialMemberApi.java
@@ -0,0 +1,92 @@
+package com.panzhihua.applets.api;
+
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.ComActSocialMemberVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * 社会组织成员表(ComActSocialMember)表控制层
+ *
+ * @author makejava
+ * @since 2021-10-22 09:52:47
+ */
+@Slf4j
+@Api(tags = {"社会组织成员"})
+@RestController
+@RequestMapping("comActSocialMember")
+public class ComActSocialMemberApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "分页查询所有数据",response = ComActSocialMemberVO.class)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.communityService.comActSocialMemberSelectAll(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation("详情")
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return this.communityService.comActSocialMemberSelectOne(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActSocialMember 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation("新增数据")
+    @PostMapping
+    public R insert(@RequestBody ComActSocialMemberVO comActSocialMember) {
+        return this.communityService.comActSocialMemberInsert(comActSocialMember);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActSocialMember 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation("修改数据")
+    @PostMapping("/update")
+    public R update(@RequestBody ComActSocialMemberVO comActSocialMember) {
+        return this.communityService.comActSocialMemberUpdate(comActSocialMember);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @ApiOperation("删除数据")
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return this.communityService.comActSocialMemberDelete(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActSocialOrgApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActSocialOrgApi.java
new file mode 100644
index 0000000..e552177
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActSocialOrgApi.java
@@ -0,0 +1,105 @@
+package com.panzhihua.applets.api;
+
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActSocialOrgVO;
+import com.panzhihua.common.model.vos.community.ComActVO;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+
+/**
+ * @author zzj
+ */
+@Slf4j
+@Api(tags = {"社会组织"})
+@RestController
+@RequestMapping("/comActSocialOrg")
+public class ComActSocialOrgApi extends BaseController {
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "社会组织列表", response = ComActSocialOrgVO.class)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        LoginUserInfoVO loginUserInfoSureNoLogin = this.getLoginUserInfoSureNoLogin();
+        if (nonNull(loginUserInfoSureNoLogin)) {
+            commonPage.setCommunityId(loginUserInfoSureNoLogin.getCommunityId());
+        } else if (isNull(commonPage.getCommunityId())) {
+            return R.fail("缺少社区id");
+        }
+        R r = communityService.detailCommunity(commonPage.getCommunityId());
+        if (R.isOk(r)) {
+            ComActVO comActVO = JSONObject.parseObject(JSONObject.toJSONString(r.getData()), ComActVO.class);
+            if (comActVO != null) {
+                commonPage.setStreetId(comActVO.getStreetId());
+            }
+        }
+        commonPage.setCommunityId(null);
+        return this.communityService.comActSocialOrgSelectAll(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation("通过主键查询单条数据")
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id){
+        return this.communityService.comActSocialOrgSelectOne(id);
+    }
+    /**
+     * 新增数据
+     *
+     * @param comActSocialOrg 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation("新增社会组织")
+    @PostMapping
+    public R insert(@RequestBody ComActSocialOrgVO comActSocialOrg) {
+        comActSocialOrg.setCommunityId(this.getCommunityId());
+        return this.communityService.comActSocialOrgInsert(comActSocialOrg);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActSocialOrg 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation("修改社会组织")
+    @PostMapping("/update")
+    public R update(@RequestBody ComActSocialOrgVO comActSocialOrg) {
+        return this.communityService.comActSocialOrgUpdate(comActSocialOrg);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @ApiOperation("删除社会组织")
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return this.communityService.comActSocialOrgDelete(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActSocialOrgHatchAuditApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActSocialOrgHatchAuditApi.java
new file mode 100644
index 0000000..e2994db
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActSocialOrgHatchAuditApi.java
@@ -0,0 +1,72 @@
+package com.panzhihua.applets.api;
+
+
+import javax.annotation.Resource;
+
+import org.springframework.validation.annotation.Validated;
+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.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.social.HatchAuditProcessDTO;
+import com.panzhihua.common.model.dtos.community.social.PageSocialOrgHatchAuditDTO;
+import com.panzhihua.common.model.dtos.community.social.SocialOrgHatchAuditDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.social.SocialOrgHatchAuditVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.validated.PutGroup;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @title: ComActSocialOrgHatchAuditApi
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 社会组织孵化申请相关
+ * @author: hans
+ * @date: 2022/04/18 14:14
+ */
+@Slf4j
+@Api(tags = {"社会组织孵化申请"})
+@RestController
+@RequestMapping("/comActSocialOrgHatchAudit")
+public class ComActSocialOrgHatchAuditApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "新增孵化申请")
+    @PostMapping("/add")
+    public R addHatchAudit(@RequestBody SocialOrgHatchAuditDTO hatchAuditDTO) {
+        hatchAuditDTO.setUserId(this.getUserId());
+        return communityService.addHatchAudit(hatchAuditDTO);
+    }
+
+    @ApiOperation(value = "查看孵化申请审核进度", response = SocialOrgHatchAuditVO.class)
+    @GetMapping("/schedule")
+    public R getHatchAuditSchedule() {
+        return communityService.getHatchAuditSchedule(this.getUserId());
+    }
+
+    @ApiOperation(value = "修改孵化申请")
+    @PostMapping("/update")
+    public R updateHatchAudit(@RequestBody @Validated(PutGroup.class) SocialOrgHatchAuditDTO hatchAuditDTO) {
+        return communityService.updateHatchAudit(hatchAuditDTO);
+    }
+
+    @ApiOperation(value = "获取孵化流程配置", response = String.class)
+    @GetMapping("/process")
+    public R getHatchAuditProcess() {
+        return communityService.getHatchAuditProcess();
+    }
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActSocialProjectApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActSocialProjectApi.java
new file mode 100644
index 0000000..4393699
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActSocialProjectApi.java
@@ -0,0 +1,135 @@
+package com.panzhihua.applets.api;
+
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.social.PageProjectSignListDTO;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActSocialOrgVO;
+import com.panzhihua.common.model.vos.community.social.SocialProjectVO;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+
+/**
+ * 三社联动项目表(ComActSocialProject)表控制层
+ *
+ * @author zzj
+ * @since 2021-12-22 14:02:48
+ */
+@Slf4j
+@Api(tags = {"项目管理"})
+@RestController
+@RequestMapping("comActSocialProject")
+public class ComActSocialProjectApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "分页查询接口",response =SocialProjectVO.class )
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        LoginUserInfoVO loginUserInfoSureNoLogin = this.getLoginUserInfoSureNoLogin();
+        if (nonNull(loginUserInfoSureNoLogin)) {
+            commonPage.setCommunityId(loginUserInfoSureNoLogin.getCommunityId());
+            commonPage.setStreetId(loginUserInfoSureNoLogin.getStreetId());
+        } else if (isNull(commonPage.getCommunityId())) {
+            return R.fail("缺少社区id");
+        }
+        commonPage.setParamId2(0);
+//        commonPage.setIsPublicity(1);
+        return communityService.selectAllComActSocialProject(commonPage);
+    }
+
+    /**
+     * 平台详情接口
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation(value = "平台详情接口",response =SocialProjectVO.class )
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        LoginUserInfoVO userInfo = this.getLoginUserInfoSureNoLogin();
+        Long userId = null;
+        if (nonNull(userInfo)) {
+            userId = userInfo.getUserId();
+        }
+        return communityService.getAppletComActSocialProject(id, userId);
+    }
+    /**
+     * 根据项目id分页获取关联项目
+     */
+    @ApiOperation(value = "根据项目id分页获取关联项目")
+    @PostMapping("/getRelation")
+    public R getRelation(@RequestBody CommonPage commonPage){
+        return communityService.getRelationComActSocialProject(commonPage);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param socialProjectVO 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation(value = "新增数据")
+    @PostMapping
+    public R insert(@RequestBody SocialProjectVO socialProjectVO) {
+        return communityService.insertComActSocialProject(socialProjectVO);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param socialProjectVO 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation(value = "修改数据")
+    @PostMapping("/update")
+    public R update(@RequestBody SocialProjectVO socialProjectVO) {
+        return communityService.updateComActSocialProject(socialProjectVO);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @ApiOperation(value = "删除数据")
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return communityService.deleteComActSocialProject(id);
+    }
+
+    @ApiOperation(value = "项目公开报名")
+    @ApiImplicitParam(name = "projectId", value = "项目id", required = true)
+    @GetMapping("/sign")
+    public R signProject(@RequestParam("projectId") Long projectId) {
+        return communityService.signProject(projectId, this.getUserId());
+    }
+
+    @ApiOperation(value = "分页查询项目报名列表", response = ComActSocialOrgVO.class)
+    @PostMapping("signList")
+    public R pageProjectSignList(@RequestBody @Valid PageProjectSignListDTO pageProjectSignListDTO) {
+        return communityService.pageProjectSignList(pageProjectSignListDTO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActSocialProjectMemberApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActSocialProjectMemberApi.java
new file mode 100644
index 0000000..3769b77
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActSocialProjectMemberApi.java
@@ -0,0 +1,91 @@
+package com.panzhihua.applets.api;
+
+
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.social.ComActSocialProjectMemberVO;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * 项目人员(ComActSocialProjectMember)表控制层
+ *
+ * @author makejava
+ * @since 2021-12-23 15:16:43
+ */
+@Slf4j
+@Api(tags = {"项目成员管理"})
+@RestController
+@RequestMapping("comActSocialProjectMember")
+public class ComActSocialProjectMemberApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation("分页查询所有数据")
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return communityService.selectAllComActSocialProjectMember(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation("通过主键查询单条数据")
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return communityService.selectOneComActSocialProjectMember(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActSocialProjectMemberVO 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation("新增数据")
+    @PostMapping
+    public R insert(@RequestBody ComActSocialProjectMemberVO comActSocialProjectMemberVO) {
+        return communityService.insertComActSocialProjectMember(comActSocialProjectMemberVO);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActSocialProjectMemberVO 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation("修改数据")
+    @PostMapping("/update")
+    public R update(@RequestBody ComActSocialProjectMemberVO comActSocialProjectMemberVO) {
+        return communityService.updateComActSocialProjectMember(comActSocialProjectMemberVO);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @ApiOperation("删除")
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return communityService.deleteComActSocialProjectMember(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActSocialProjectPublicityApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActSocialProjectPublicityApi.java
new file mode 100644
index 0000000..aad7e21
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActSocialProjectPublicityApi.java
@@ -0,0 +1,114 @@
+package com.panzhihua.applets.api;
+
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.social.ComActSocialProjectPublicityVO;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+
+/**
+ * 项目宣传表(ComActSocialProjectPublicity)表控制层
+ *
+ * @author makejava
+ * @since 2021-12-23 14:30:55
+ */
+@Slf4j
+@Api(tags = {"项目宣传管理"})
+@RestController
+@RequestMapping("comActSocialProjectPublicity")
+public class ComActSocialProjectPublicityApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "分页查询",response = ComActSocialProjectPublicityVO.class)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        LoginUserInfoVO loginUserInfoSureNoLogin = this.getLoginUserInfoSureNoLogin();
+        if (nonNull(loginUserInfoSureNoLogin)) {
+            commonPage.setCommunityId(loginUserInfoSureNoLogin.getCommunityId());
+        } else if (isNull(commonPage.getCommunityId())) {
+            return R.fail("缺少社区id");
+        }
+        return communityService.selectAllComActSocialProjectPublicity(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation("通过主键查询单条数据")
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return communityService.selectOneComActSocialProjectPublicity(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActSocialProjectPublicityVO 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation("新增数据")
+    @PostMapping
+    public R insert(@RequestBody ComActSocialProjectPublicityVO comActSocialProjectPublicityVO) {
+        return communityService.insertComActSocialProjectPublicity(comActSocialProjectPublicityVO);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActSocialProjectPublicityVO 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation("修改数据")
+    @PostMapping("/update")
+    public R update(@RequestBody ComActSocialProjectPublicityVO comActSocialProjectPublicityVO) {
+        return communityService.updateComActSocialProjectPublicity(comActSocialProjectPublicityVO);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @ApiOperation("删除数据")
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return communityService.deleteComActSocialProjectPublicity(id);
+    }
+    /**
+     * 多条删除数据
+     *
+     * @param ids 主键结合
+     * @return 删除结果
+     */
+    @ApiOperation("多条删除数据")
+    @PostMapping("delBatch")
+    public R delBatch(@RequestBody List<Long> ids) {
+        return communityService.delBatchComActSocialProjectPublicity(ids);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActSocialProjectScheduleApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActSocialProjectScheduleApi.java
new file mode 100644
index 0000000..e026c6f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActSocialProjectScheduleApi.java
@@ -0,0 +1,91 @@
+package com.panzhihua.applets.api;
+
+
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.social.ComActSocialProjectScheduleVO;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * 项目进度表(ComActSocialProjectSchedule)表控制层
+ *
+ * @author makejava
+ * @since 2021-12-23 14:31:16
+ */
+@Slf4j
+@Api(tags = {"项目进度管理"})
+@RestController
+@RequestMapping("comActSocialProjectSchedule")
+public class ComActSocialProjectScheduleApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 根据projectId查询所有进度
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation("分页查询")
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return communityService.selectAllComActSocialProjectSchedule(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation("通过主键查询单条数据")
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return communityService.selectOneComActSocialProjectSchedule(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActSocialProjectScheduleVO 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation("新增数据")
+    @PostMapping
+    public R insert(@RequestBody ComActSocialProjectScheduleVO comActSocialProjectScheduleVO) {
+        return communityService.insertComActSocialProjectSchedule(comActSocialProjectScheduleVO);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActSocialProjectScheduleVO 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation("修改数据")
+    @PostMapping("/update")
+    public R update(@RequestBody ComActSocialProjectScheduleVO comActSocialProjectScheduleVO) {
+        return communityService.updateComActSocialProjectSchedule(comActSocialProjectScheduleVO);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @ApiOperation("删除数据")
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return communityService.deleteComActSocialProjectSchedule(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActSocialWorkerApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActSocialWorkerApi.java
new file mode 100644
index 0000000..c9d9680
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActSocialWorkerApi.java
@@ -0,0 +1,147 @@
+package com.panzhihua.applets.api;
+
+import com.alibaba.excel.EasyExcel;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.listen.ComActSocialWorkerExcelListen;
+import com.panzhihua.common.model.dtos.civil.*;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.civil.ComActSocialWorkerDetailsVO;
+import com.panzhihua.common.model.vos.civil.ComActSocialWorkerVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.ClazzUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.io.IOException;
+import java.io.InputStream;
+
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-06-03
+ * */
+@Slf4j
+@RestController
+@RequestMapping("/comactsocialworker")
+@Api(tags = {"社工"})
+public class ComActSocialWorkerApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+//    @Value("${excel.comactsocialworkerUrl}")
+//    private String comactsocialworkerUrl;
+    /**
+     * 新增社工
+     * @param {classNameFirstLower}AddDTO 添加社工传递对象
+     * @return 新增结果
+     */
+    @PostMapping()
+    @ApiOperation(value = "新增社工", response = R.class)
+    R add(@Validated @RequestBody ComActSocialWorkerAddDTO comActSocialWorkerAddDTO){
+        ClazzUtils.setIfStringIsEmpty(comActSocialWorkerAddDTO);
+        comActSocialWorkerAddDTO.setUserId(getUserId());
+        comActSocialWorkerAddDTO.setCommunityId(getCommunityId());
+        return communityService.addComactsocialworker(comActSocialWorkerAddDTO);
+    }
+
+    /**
+     * 修改
+     * @param comActSocialWorkerEditDTO 修改社工传递对象
+     * @return 修改结果
+     */
+    @PutMapping()
+    @ApiOperation(value = "编辑社工", response = R.class)
+    R edit(@Validated @RequestBody ComActSocialWorkerEditDTO comActSocialWorkerEditDTO){
+        comActSocialWorkerEditDTO.setUserId(getUserId());
+        return communityService.editComactsocialworker(comActSocialWorkerEditDTO);
+    }
+
+    /**
+     * 分页查找
+     * @param pageComActSocialWorkerDTO 查找社工传递对象
+     * @return 查找结果
+     */
+    @GetMapping()
+    @ApiOperation(value = "查询社工", response= ComActSocialWorkerVO.class)
+    R query(@Validated @ModelAttribute PageComActSocialWorkerDTO pageComActSocialWorkerDTO){
+        ClazzUtils.setIfStringIsEmpty(pageComActSocialWorkerDTO);
+        LoginUserInfoVO loginUserInfoSureNoLogin = this.getLoginUserInfoSureNoLogin();
+        if (nonNull(loginUserInfoSureNoLogin)) {
+            pageComActSocialWorkerDTO.setCommunityId(loginUserInfoSureNoLogin.getCommunityId());
+        } else if (isNull(pageComActSocialWorkerDTO.getCommunityId())) {
+            return R.fail("缺少社区id");
+        }
+        return communityService.queryComactsocialworker(pageComActSocialWorkerDTO);
+    }
+
+    /**
+     * 删除
+     * @param comActSocialWorkerDeleteDTO 删除社工传递对象
+     * @return 删除结果
+     */
+    @DeleteMapping()
+    @ApiOperation(value = "删除社工", response = R.class)
+    R delete(@Validated @RequestBody ComActSocialWorkerDeleteDTO  comActSocialWorkerDeleteDTO){
+        ClazzUtils.setIfStringIsEmpty(comActSocialWorkerDeleteDTO);
+        return communityService.deleteComactsocialworker(comActSocialWorkerDeleteDTO);
+    }
+
+    /**
+     * 查询社工详细信息
+     * @param id 社工 id
+     * @return 查找结果
+     */
+    @GetMapping("/{id}")
+    @ApiOperation(value = "查询社工详细信息")
+    R<ComActSocialWorkerVO> details(@PathVariable("id") Long id){
+        return communityService.comActSocialWorkerDetails(id);
+    }
+
+    /**
+     * 导入社工名单
+     * @return
+     */
+    @ApiOperation(value = "导入社工名单")
+    @PostMapping(value = "/import", consumes = "multipart/*", headers = "content-type=multipart/form-data")
+    public R downloadTemplate(@RequestParam MultipartFile file, HttpServletRequest request) {
+        String fileName = file.getOriginalFilename();  //获取文件名
+        log.info("传入文件名字【{}】",fileName);
+        InputStream inputStream = null;
+        try {
+            inputStream = file.getInputStream();
+            EasyExcel.read(inputStream, ComActSocialWorkerExcelVO.class, new ComActSocialWorkerExcelListen(communityService,this.getCommunityId())).sheet().doRead();
+        } catch (IOException e) {
+            e.printStackTrace();
+            log.error("导入模板失败【{}】", e.getMessage());
+            return R.fail("信息有误");
+        }
+        return R.ok();
+    }
+
+
+    //    @GetMapping("/getTemplate")
+//    @ApiOperation("获取模板")
+//    public R getTemplate(){
+//        return R.ok(comactsocialworkerUrl);
+//    }
+    @ApiOperation("根据社工获取活动")
+    @PostMapping("/activityList")
+    R activityList(@RequestBody CommonPage commonPage){
+        return communityService.activityList(commonPage);
+    }
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActSocialWorkerServiceApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActSocialWorkerServiceApi.java
new file mode 100644
index 0000000..6ddd83b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActSocialWorkerServiceApi.java
@@ -0,0 +1,70 @@
+package com.panzhihua.applets.api;
+
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.social.ComActSocialWorkerServiceVO;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * 社工服务表(ComActSocialWorkerService)表控制层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 社工服务表相关功能
+ *
+ * @author zzj
+ * @since 2022-02-16 15:59:42
+ */
+@RestController
+@RequestMapping("comActSocialWorkerService")
+@Api(tags = {"社工服务"})
+public class ComActSocialWorkerServiceApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "分页查询",response = ComActSocialWorkerServiceVO.class)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        commonPage.setUserId(this.getUserId());
+        return this.communityService.selectAllComActSocialWorkerService(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation(value = "分页查询",response = ComActSocialWorkerServiceVO.class)
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return this.communityService.selectOneComActSocialWorkerService(id);
+    }
+
+
+    /**
+     * 修改数据
+     *
+     * @param comActSocialWorkerServiceVO 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation("修改数据")
+    @PostMapping("/update")
+    public R update(@RequestBody ComActSocialWorkerServiceVO comActSocialWorkerServiceVO) {
+       return communityService.updateComActSocialWorkerService(comActSocialWorkerServiceVO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActWarehouseApplyApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActWarehouseApplyApi.java
new file mode 100644
index 0000000..5d97c50
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActWarehouseApplyApi.java
@@ -0,0 +1,135 @@
+package com.panzhihua.applets.api;
+
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.warehouse.ApplyStatistics;
+import com.panzhihua.common.model.vos.community.warehouse.ComActWarehouseApplyVO;
+import com.panzhihua.common.model.vos.community.warehouse.QRCodeVO;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * 物品申请表(ComActWarehouseApply)表控制层
+ *
+ * @author makejava
+ * @since 2021-10-09 17:13:53
+ */
+@Slf4j
+@Api(tags = {"爱心义仓申领记录接口"})
+@RestController
+@RequestMapping("comActWarehouseApply")
+public class ComActWarehouseApplyApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "分页查询所有数据",response = ComActWarehouseApplyVO.class)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        commonPage.setParamId(this.getCommunityId());
+        return this.communityService.comActWarehouseApplySelectAll(commonPage);
+    }
+
+    /**
+     * 统计查询
+     *
+     * @return 所有数据
+     */
+    @ApiOperation(value = "统计查询",response = ApplyStatistics.class)
+    @GetMapping("selectStatics")
+    public R selectAll() {
+        return this.communityService.comActWarehouseApplySelectAll(this.getCommunityId());
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation(value = "通过主键查询单条数据",response = ComActWarehouseApplyVO.class)
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Integer id) {
+        return this.communityService.comActWarehouseApplySelectOne(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActWarehouseApply 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation("新增数据")
+    @PostMapping
+    public R insert(@RequestBody ComActWarehouseApplyVO comActWarehouseApply) {
+        comActWarehouseApply.setCommunityId(this.getCommunityId());
+        comActWarehouseApply.setCreateTime(new Date());
+        comActWarehouseApply.setApplyUserId(this.getUserId());
+        comActWarehouseApply.setStatus(ComActWarehouseApplyVO.status.dcl);
+        comActWarehouseApply.setApplyName(this.getLoginUserInfo().getName()!=null?this.getLoginUserInfo().getName():"");
+        comActWarehouseApply.setApplyPhone(this.getLoginUserInfo().getPhone()!=null?this.getLoginUserInfo().getPhone():"");
+        return this.communityService.comActWarehouseApplyInsert(comActWarehouseApply);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActWarehouseApply 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation("修改数据")
+    @PostMapping("/update")
+    public R update(@RequestBody ComActWarehouseApplyVO comActWarehouseApply) {
+        if(comActWarehouseApply.getStatus().equals(ComActWarehouseApplyVO.status.yqx)){
+            comActWarehouseApply.setCancelTime(new Date());
+        }
+        if(comActWarehouseApply.getStatus().equals(ComActWarehouseApplyVO.status.dlq)||comActWarehouseApply.getStatus().equals(ComActWarehouseApplyVO.status.ybh)){
+            comActWarehouseApply.setSolveTime(new Date());
+            comActWarehouseApply.setSolveUserId(this.getUserId());
+        }
+        if(comActWarehouseApply.getStatus().equals(ComActWarehouseApplyVO.status.ylq)){
+            comActWarehouseApply.setActualTime(new Date());
+            comActWarehouseApply.setWriteOffUserId(this.getUserId());
+        }
+        return this.communityService.comActWarehouseApplyUpdate(comActWarehouseApply);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @ApiOperation("删除数据")
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return this.communityService.comActWarehouseApplyDelete(id);
+    }
+
+    /**
+     * 生成二维码
+     * @param qrCodeVO
+     * @return
+     */
+    @ApiOperation("生成二维码")
+    @PostMapping("/getQRCode")
+    public R getQRCode(@RequestBody QRCodeVO qrCodeVO){
+        return this.communityService.comActWarehouseApplyGetQRCode(qrCodeVO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActWarehouseBaseApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActWarehouseBaseApi.java
new file mode 100644
index 0000000..6f0e450
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActWarehouseBaseApi.java
@@ -0,0 +1,43 @@
+package com.panzhihua.applets.api;
+
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.warehouse.ComActWarehouseBaseVO;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * 义仓基础设置表(ComActWarehouseBase)表控制层
+ *
+ * @author makejava
+ * @since 2021-10-11 09:21:53
+ */
+@Slf4j
+@Api(tags = {"爱心义仓基础记录接口"})
+@RestController
+@RequestMapping("comActWarehouseBase")
+public class ComActWarehouseBaseApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 通过社区id查询单条数据
+     *
+     * @return 单条数据
+     */
+    @ApiOperation(value = "查询单条数据",response = ComActWarehouseBaseVO.class)
+    @GetMapping
+    public R selectOne() {
+        return this.communityService.comActWarehouseBaseSelectOne(this.getCommunityId());
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActWarehouseDonatesApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActWarehouseDonatesApi.java
new file mode 100644
index 0000000..59c7517
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActWarehouseDonatesApi.java
@@ -0,0 +1,126 @@
+package com.panzhihua.applets.api;
+
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+
+import org.hibernate.validator.constraints.Length;
+import org.springframework.validation.annotation.Validated;
+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.constants.HttpStatus;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.warehouse.ComActWarehouseDonatesDTO;
+import com.panzhihua.common.model.dtos.community.warehouse.PageDonatesDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.warehouse.ComActWarehouseDonatesVO;
+import com.panzhihua.common.service.community.CommunityService;
+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 lombok.extern.slf4j.Slf4j;
+
+/**
+ * @title: ComActWarehouseApi
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 爱心义仓捐赠小程序相关接口
+ * @author: hans
+ * @date: 2021/10/11 15:45
+ */
+
+@Slf4j
+@Api(tags = {"爱心义仓捐赠相关"})
+@RestController
+@RequestMapping("/warehouse/donates")
+public class ComActWarehouseDonatesApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "分页查询捐赠物品", response = ComActWarehouseDonatesVO.class)
+    @PostMapping("/page")
+    public R pageDonates(@RequestBody PageDonatesDTO pageDonatesDTO) {
+        LoginUserInfoVO loginUserInfo = getLoginUserInfoSureNoLogin();
+        Integer isWhich = pageDonatesDTO.getIsWhich();
+        if (isNull(isWhich)) {
+            return R.fail("缺少isWhich参数");
+        }
+        if (isNull(pageDonatesDTO.getCommunityId())) {
+            return R.fail("社区id不能为空");
+        }
+        if (isNull(loginUserInfo) && isWhich.intValue() != 3) {
+            return R.fail(HttpStatus.UNAUTHORIZED,  "未登录");
+        }
+        if (isWhich.intValue() == 2 && loginUserInfo.getIsCommunityWorker().intValue() != 1) {
+            return R.fail("非社区工作人员");
+        }
+        if (nonNull(loginUserInfo)) {
+            pageDonatesDTO.setUserId(loginUserInfo.getUserId());
+        }
+        return communityService.pageDonates(pageDonatesDTO);
+    }
+
+    @ApiOperation(value = "新增物品捐赠")
+    @PostMapping("/add")
+    public R addDonates(@RequestBody @Validated(AddGroup.class) ComActWarehouseDonatesDTO comActWarehouseDonatesDTO) {
+        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
+        Long userId = loginUserInfo.getUserId();
+        comActWarehouseDonatesDTO.setCommunityId(loginUserInfo.getCommunityId());
+        comActWarehouseDonatesDTO.setRegisterBy(userId);
+        comActWarehouseDonatesDTO.setUserId(userId);
+        comActWarehouseDonatesDTO.setName(loginUserInfo.getName());
+        comActWarehouseDonatesDTO.setPhone(loginUserInfo.getPhone());
+        return communityService.addDonates(comActWarehouseDonatesDTO);
+    }
+
+    @ApiOperation(value = "查看物品捐赠详情", response = ComActWarehouseDonatesVO.class)
+    @ApiImplicitParam(name = "isWhich", value = "1.个人中心捐赠详情 2.捐赠物品管理详情 3.爱心义仓捐赠列表详情", required = true)
+    @GetMapping("/get")
+    public R getDonates(@RequestParam("donatesId") Long donatesId, @RequestParam("isWhich") Integer isWhich) {
+        LoginUserInfoVO loginUserInfo = getLoginUserInfoSureNoLogin();
+        if (isNull(isWhich)) {
+            return R.fail("缺少isWhich参数");
+        }
+        if (isNull(loginUserInfo) && isWhich.intValue() != 3) {
+            return R.fail(HttpStatus.UNAUTHORIZED,  "未登录");
+        }
+        if (isWhich.intValue() == 2 && loginUserInfo.getIsCommunityWorker().intValue() != 1) {
+            return R.fail("非社区工作人员");
+        }
+        Long userId = 0L;
+        if (nonNull(loginUserInfo)) {
+            userId = loginUserInfo.getUserId();
+        }
+        return communityService.getDonates(donatesId, isWhich, userId);
+    }
+
+    @ApiOperation(value = "捐赠物品签收")
+    @PostMapping("/signing")
+    public R signingDonates(@RequestBody @Validated(PutGroup.class) ComActWarehouseDonatesDTO comActWarehouseDonatesDTO) {
+        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
+        Integer isCommunityWorker = loginUserInfo.getIsCommunityWorker();
+        if (isCommunityWorker.intValue() == 2) {
+            return R.fail("非社区工作人员");
+        }
+        comActWarehouseDonatesDTO.setSigningBy(loginUserInfo.getUserId());
+        return communityService.signingDonates(comActWarehouseDonatesDTO);
+    }
+
+    @ApiOperation(value = "用户取消捐赠")
+    @GetMapping("/cancel")
+    public R cancelDonates(@RequestParam("donatesId") Long donatesId) {
+        return communityService.cancelDonates(donatesId, getUserId());
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActWarehouseOperationApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActWarehouseOperationApi.java
new file mode 100644
index 0000000..4b6b3c7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComActWarehouseOperationApi.java
@@ -0,0 +1,46 @@
+package com.panzhihua.applets.api;
+
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.warehouse.ComActWarehouseBaseVO;
+import com.panzhihua.common.model.vos.community.warehouse.ComActWarehouseOperationVO;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * 义仓基础设置表(ComActWarehouseBase)表控制层
+ *
+ * @author makejava
+ * @since 2021-10-11 09:21:53
+ */
+@Slf4j
+@Api(tags = {"爱心义仓爱心接力接口"})
+@RestController
+@RequestMapping("comActWarehouseOperation")
+public class ComActWarehouseOperationApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 分页
+     *
+     * @return
+     */
+    @ApiOperation(value = "分页",response = ComActWarehouseOperationVO.class)
+    @PostMapping("queryAll")
+    public R queryAll(@RequestBody CommonPage commonPage) {
+        commonPage.setCommunityId(this.getCommunityId());
+        return this.communityService.comActWarehouseOperationSelectAll(commonPage);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComAreaTownCommunityApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComAreaTownCommunityApi.java
new file mode 100644
index 0000000..70eb01a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComAreaTownCommunityApi.java
@@ -0,0 +1,36 @@
+package com.panzhihua.applets.api;
+
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.acid.ComAreaCounty;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+/**
+ * (ComAreaTownCommunity)表控制层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 相关功能
+ *
+ * @author zzj
+ * @since 2022-04-10 17:37:33
+ */
+@Api(tags = {"区县联动列表"})
+@RestController
+@RequestMapping("comAreaTownCommunity")
+public class ComAreaTownCommunityApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+    @ApiOperation(value = "列表查询",response = ComAreaCounty.class)
+    @GetMapping("/areaTownCommunity")
+    public R test(){
+       return  communityService.areaTownCommunity("panzhihua",this.getUserId());
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComBatteryCommodityActivityApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComBatteryCommodityActivityApi.java
new file mode 100644
index 0000000..665b19a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComBatteryCommodityActivityApi.java
@@ -0,0 +1,177 @@
+package com.panzhihua.applets.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.common.ComBatteryCommodityActivityVo;
+import com.panzhihua.common.model.vos.common.ComBatteryCommodityOrderBargainVo;
+import com.panzhihua.common.model.vos.common.ComBatteryCommodityOrderCollageTeamVo;
+import com.panzhihua.common.service.community.ComBatteryCommodityActivityFeign;
+import com.panzhihua.common.service.community.ComBatteryCommodityOrderCollageTeamFeign;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * title: 电动车商城-商家活动表(ComBatteryCommodityActivity)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商家活动表
+ *
+ * @author lyq
+ * @date 2022-03-29 13:17:38
+ */
+@Slf4j
+@Api(tags = {"电动车商城-活动管理"})
+@RestController
+@RequestMapping("/comBatteryCommodityActivity")
+public class ComBatteryCommodityActivityApi extends BaseController {
+
+    @Resource
+    private ComBatteryCommodityActivityFeign comBatteryCommodityActivityService;
+    @Resource
+    private ComBatteryCommodityOrderCollageTeamFeign orderCollageTeamService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommodityActivity 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-03-29 13:17:38
+     */
+    @ApiOperation(value = "分页查询活动列表",response = ComBatteryCommodityActivityVo.class)
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComBatteryCommodityActivityDto comBatteryCommodityActivity) {
+        comBatteryCommodityActivity.setIsApplets(1);
+        if(comBatteryCommodityActivity.getIsUser().equals(1)){
+            comBatteryCommodityActivity.setUserId(this.getUserId());
+        }
+        return this.comBatteryCommodityActivityService.queryByPage(comBatteryCommodityActivity);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 13:17:38
+     */
+    @ApiOperation(value = "查询活动详情",response = ComBatteryCommodityActivityVo.class)
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        Long userId = 0L;
+        if(loginUserInfo != null){
+            userId = loginUserInfo.getUserId();
+        }
+        return this.comBatteryCommodityActivityService.detailById(id,userId);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommodityActivity 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 13:17:38
+     */
+    @ApiOperation(value = "查询活动列表",response = ComBatteryCommodityActivityVo.class)
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComBatteryCommodityActivityDto comBatteryCommodityActivity) {
+        comBatteryCommodityActivity.setIsApplets(1);
+        return this.comBatteryCommodityActivityService.queryByList(comBatteryCommodityActivity);
+    }
+
+    @ApiOperation(value = "查询拼团团队列表",response = ComBatteryCommodityOrderCollageTeamVo.class)
+    @PostMapping("/assorted/dough")
+    public R queryByAssortedDoughList(@RequestBody PageComBatteryCommodityOrderCollageTeamDto orderCollageTeamDto) {
+        orderCollageTeamDto.setStatus(1);
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if(loginUserInfo != null){
+            orderCollageTeamDto.setUserId(loginUserInfo.getUserId());
+        }
+        return this.orderCollageTeamService.queryByPage(orderCollageTeamDto);
+    }
+
+    @ApiOperation(value = "查询拼团团队详情",response = ComBatteryCommodityOrderCollageTeamVo.class)
+    @GetMapping("/assorted/dough/detail")
+    public R queryByAssortedDoughDetail(@RequestParam("id") Long id) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        Long userId = 0L;
+        if(loginUserInfo != null){
+            userId = loginUserInfo.getUserId();
+        }
+        return this.orderCollageTeamService.detailById(id,userId);
+    }
+
+    /**
+     * 创建拼团订单
+     * @param orderDto  请求参数
+     * @return  创建订单结果
+     */
+    @ApiOperation(value = "创建拼团订单")
+    @PostMapping("/start/fight")
+    public R startFight(@RequestBody StartFightOrderDto orderDto){
+        orderDto.setUserId(this.getUserId());
+        return this.comBatteryCommodityActivityService.startFight(orderDto);
+    }
+
+    /**
+     * 创建砍价订单
+     * @param orderDto  请求参数
+     * @return  创建订单结果
+     */
+    @ApiOperation(value = "创建砍价订单")
+    @PostMapping("/start/bargain")
+    public R startBargain(@RequestBody StartBargainOrderDto orderDto){
+        orderDto.setUserId(this.getUserId());
+        return this.comBatteryCommodityActivityService.startBargain(orderDto);
+    }
+
+    /**
+     * 帮好友砍价
+     * @param orderDto  请求参数
+     * @return  创建订单结果
+     */
+    @ApiOperation(value = "帮好友砍价")
+    @PostMapping("/start/user/bargain")
+    public R startUserBargain(@RequestBody StartUserBargainOrderDto orderDto){
+        orderDto.setUserId(this.getUserId());
+        return this.comBatteryCommodityActivityService.startUserBargain(orderDto);
+    }
+
+    /**
+     * 查询砍价记录详情
+     * @param id  砍价记录id
+     * @return  创建订单结果
+     */
+    @ApiOperation(value = "查询砍价记录详情",response = ComBatteryCommodityOrderBargainVo.class)
+    @GetMapping("/user/bargain")
+    public R getUserBargain(@RequestParam("id") Long id){
+        return this.comBatteryCommodityActivityService.getUserBargain(id);
+    }
+
+    /**
+     * 创建秒杀订单
+     * @param orderDto  请求参数
+     * @return  创建订单结果
+     */
+    @ApiOperation(value = "创建秒杀订单")
+    @PostMapping("/start/seckill")
+    public R startSeckill(@RequestBody StartSeckillOrderDto orderDto){
+        orderDto.setUserId(this.getUserId());
+        return this.comBatteryCommodityActivityService.startSeckill(orderDto);
+    }
+
+
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComBatteryCommodityApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComBatteryCommodityApi.java
new file mode 100644
index 0000000..7bd498f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComBatteryCommodityApi.java
@@ -0,0 +1,89 @@
+package com.panzhihua.applets.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.common.AddComBatteryCommodityDto;
+import com.panzhihua.common.model.dtos.common.EditComBatteryCommodityDto;
+import com.panzhihua.common.model.dtos.common.PageComBatteryCommodityDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.common.ComBatteryCommodityVo;
+import com.panzhihua.common.service.community.ComBatteryCommodityFeign;
+import com.panzhihua.common.service.community.ComBatteryCommoditySpecsFeign;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * title: 电动车商城-商品表(ComBatteryCommodity)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商品表
+ *
+ * @author lyq
+ * @date 2022-03-28 14:59:58
+ */
+@Slf4j
+@Api(tags = {"电动车商城-商品管理"})
+@RestController
+@RequestMapping("/comBatteryCommodity")
+public class ComBatteryCommodityApi extends BaseController {
+
+    @Resource
+    private ComBatteryCommodityFeign comBatteryCommodityService;
+    @Resource
+    private ComBatteryCommoditySpecsFeign comBatteryCommoditySpecsService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommodity 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-03-28 14:59:58
+     */
+    @ApiOperation(value = "分页查询商品列表",response = ComBatteryCommodityVo.class)
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComBatteryCommodityDto comBatteryCommodity) {
+        return this.comBatteryCommodityService.queryByPage(comBatteryCommodity);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-28 14:59:58
+     */
+    @ApiOperation(value = "查询商品详情",response = ComBatteryCommodityVo.class)
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comBatteryCommodityService.detailById(id);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommodity 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-28 14:59:58
+     */
+    @ApiOperation(value = "查询商品列表",response = ComBatteryCommodityVo.class)
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComBatteryCommodityDto comBatteryCommodity) {
+        comBatteryCommodity.setStoreId(this.getCommunityId());
+        return this.comBatteryCommodityService.queryByList(comBatteryCommodity);
+    }
+
+    @ApiOperation(value = "查询商品规格详情",response = ComBatteryCommodityVo.class)
+    @GetMapping("/specs/detail")
+    public R specsDetailById(@RequestParam("id") Long id) {
+        return this.comBatteryCommoditySpecsService.detailById(id);
+    }
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComBatteryCommodityOrderApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComBatteryCommodityOrderApi.java
new file mode 100644
index 0000000..43762c7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComBatteryCommodityOrderApi.java
@@ -0,0 +1,81 @@
+package com.panzhihua.applets.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.common.EditOrderAddressDto;
+import com.panzhihua.common.model.dtos.common.EditOrderLogisticsDto;
+import com.panzhihua.common.model.dtos.common.PageComBatteryCommodityOrderDto;
+import com.panzhihua.common.model.dtos.common.UserCreateOrderDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.common.ComBatteryCommodityOrderVo;
+import com.panzhihua.common.service.community.ComBatteryCommodityOrderFeign;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * title: 电动车商城-订单表(ComBatteryCommodityOrder)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-订单表
+ *
+ * @author lyq
+ * @date 2022-03-29 16:05:04
+ */
+@Slf4j
+@Api(tags = {"电动车商城-订单管理"})
+@RestController
+@RequestMapping("/comBatteryCommodityOrder")
+public class ComBatteryCommodityOrderApi extends BaseController {
+
+    @Resource
+    private ComBatteryCommodityOrderFeign comBatteryCommodityOrderService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommodityOrder 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-03-29 16:05:04
+     */
+    @ApiOperation(value = "分页查询订单列表",response = ComBatteryCommodityOrderVo.class)
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComBatteryCommodityOrderDto comBatteryCommodityOrder) {
+        comBatteryCommodityOrder.setUserId(this.getUserId());
+        comBatteryCommodityOrder.setIsApplets(1);
+        return this.comBatteryCommodityOrderService.queryByPage(comBatteryCommodityOrder);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 16:05:04
+     */
+    @ApiOperation(value = "查询订单详情",response = ComBatteryCommodityOrderVo.class)
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comBatteryCommodityOrderService.detailById(id);
+    }
+
+    @ApiOperation(value = "创建订单")
+    @PostMapping("/create")
+    public R appletsOrderCreate(@RequestBody UserCreateOrderDto createOrderDto) {
+        createOrderDto.setUserId(this.getUserId());
+        return this.comBatteryCommodityOrderService.appletsOrderCreate(createOrderDto);
+    }
+
+
+    @ApiOperation(value = "用户确认收货")
+    @GetMapping("/receiving")
+    public R appletsOrderReceiving(@RequestParam("id") Long id){
+        return this.comBatteryCommodityOrderService.appletsOrderReceiving(id,this.getUserId());
+    }
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComBatteryStoreApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComBatteryStoreApi.java
new file mode 100644
index 0000000..4979515
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComBatteryStoreApi.java
@@ -0,0 +1,49 @@
+package com.panzhihua.applets.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.common.EditComBatteryStoreDto;
+import com.panzhihua.common.model.dtos.common.PageComBatteryStoreDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.common.ComBatteryStoreVo;
+import com.panzhihua.common.service.community.ComBatteryStoreFeign;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * title: 电动车商城-商家表(ComBatteryStore)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商家表
+ *
+ * @author lyq
+ * @date 2022-03-28 13:44:43
+ */
+@Slf4j
+@Api(tags = {"电动车商城-商家管理"})
+@RestController
+@RequestMapping("/comBatteryStore")
+public class ComBatteryStoreApi extends BaseController {
+
+    @Resource
+    private ComBatteryStoreFeign comBatteryStoreService;
+
+    @ApiOperation(value = "分页查询商家列表",response = ComBatteryStoreVo.class)
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComBatteryStoreDto comBatteryStore) {
+        return this.comBatteryStoreService.queryByPage(comBatteryStore);
+    }
+
+    @ApiOperation(value = "查询商家详情",response = ComBatteryStoreVo.class)
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comBatteryStoreService.detailById(id);
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComBatteryStoreClassApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComBatteryStoreClassApi.java
new file mode 100644
index 0000000..c616907
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComBatteryStoreClassApi.java
@@ -0,0 +1,82 @@
+package com.panzhihua.applets.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.common.AddComBatteryStoreClassDto;
+import com.panzhihua.common.model.dtos.common.EditComBatteryStoreClassDto;
+import com.panzhihua.common.model.dtos.common.PageComBatteryStoreClassDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.common.ComBatteryStoreClassVo;
+import com.panzhihua.common.service.community.ComBatteryStoreClassFeign;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * title: 电动车商城-商家分类表(ComBatteryStoreClass)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商家分类表
+ *
+ * @author lyq
+ * @date 2022-03-29 11:01:55
+ */
+@Slf4j
+@Api(tags = {"电动车商城-商家分类管理"})
+@RestController
+@RequestMapping("/comBatteryStoreClass")
+public class ComBatteryStoreClassApi extends BaseController {
+
+    @Resource
+    private ComBatteryStoreClassFeign comBatteryStoreClassService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryStoreClass 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-03-29 11:01:55
+     */
+    @ApiOperation(value = "分页查询商家分类列表",response = ComBatteryStoreClassVo.class)
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComBatteryStoreClassDto comBatteryStoreClass) {
+        comBatteryStoreClass.setStatus(1);
+        return this.comBatteryStoreClassService.queryByPage(comBatteryStoreClass);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 11:01:55
+     */
+    @ApiOperation(value = "查询商家分类详情",response = ComBatteryStoreClassVo.class)
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comBatteryStoreClassService.detailById(id);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryStoreClass 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 11:01:55
+     */
+    @ApiOperation(value = "查询商家分类列表",response = ComBatteryStoreClassVo.class)
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComBatteryStoreClassDto comBatteryStoreClass) {
+        comBatteryStoreClass.setStatus(1);
+        return this.comBatteryStoreClassService.queryByAppletsList(comBatteryStoreClass);
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComBatteryUserAddressApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComBatteryUserAddressApi.java
new file mode 100644
index 0000000..190708c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComBatteryUserAddressApi.java
@@ -0,0 +1,135 @@
+package com.panzhihua.applets.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.common.AddComBatteryUserAddressDto;
+import com.panzhihua.common.model.dtos.common.EditComBatteryUserAddressDto;
+import com.panzhihua.common.model.dtos.common.PageComBatteryUserAddressDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.common.ComBatteryUserAddressVo;
+import com.panzhihua.common.service.community.ComBatteryUserAddressFeign;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * title: 电动车商城-用户收货地址表(ComBatteryUserAddress)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-用户收货地址表
+ *
+ * @author lyq
+ * @date 2022-03-29 13:18:19
+ */
+@Slf4j
+@Api(tags = {"电动车商城-用户收货地址管理"})
+@RestController
+@RequestMapping("/comBatteryUserAddress")
+public class ComBatteryUserAddressApi extends BaseController {
+
+    @Resource
+    private ComBatteryUserAddressFeign comBatteryUserAddressService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryUserAddress 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-03-29 13:18:19
+     */
+    @ApiOperation(value = "分页查询用户收货地址列表",response = ComBatteryUserAddressVo.class)
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComBatteryUserAddressDto comBatteryUserAddress) {
+        comBatteryUserAddress.setUserId(this.getUserId());
+        return this.comBatteryUserAddressService.queryByPage(comBatteryUserAddress);
+    }
+
+    /**
+     * description  add  新增数据
+     *
+     * @param comBatteryUserAddress 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-29 13:18:19
+     */
+    @ApiOperation(value = "新增用户收货地址")
+    @PostMapping("/add")
+    public R add(@RequestBody AddComBatteryUserAddressDto comBatteryUserAddress) {
+        comBatteryUserAddress.setUserId(this.getUserId());
+        return this.comBatteryUserAddressService.insert(comBatteryUserAddress);
+    }
+
+    /**
+     * description  edit  编辑数据
+     *
+     * @param comBatteryUserAddress 请求参数
+     * @return 编辑结果
+     * @author lyq
+     * @date 2022-03-29 13:18:19
+     */
+    @ApiOperation(value = "编辑用户收货地址")
+    @PutMapping("/edit")
+    public R edit(@RequestBody EditComBatteryUserAddressDto comBatteryUserAddress) {
+        comBatteryUserAddress.setUserId(this.getUserId());
+        return this.comBatteryUserAddressService.update(comBatteryUserAddress);
+    }
+
+    /**
+     * description  deleteById  删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-29 13:18:19
+     */
+    @ApiOperation(value = "删除用户收货地址")
+    @GetMapping("/delete")
+    public R deleteById(@RequestParam("id") Long id) {
+        return this.comBatteryUserAddressService.deleteById(id);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 13:18:19
+     */
+    @ApiOperation(value = "查询用户收货地址详情",response = ComBatteryUserAddressVo.class)
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comBatteryUserAddressService.detailById(id);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryUserAddress 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 13:18:19
+     */
+    @ApiOperation(value = "查询用户收货地址列表",response = ComBatteryUserAddressVo.class)
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComBatteryUserAddressDto comBatteryUserAddress) {
+        comBatteryUserAddress.setUserId(this.getUserId());
+        return this.comBatteryUserAddressService.queryByList(comBatteryUserAddress);
+    }
+
+    /**
+     * 查询用户默认收货地址
+     * @return  用户默认收货地址
+     */
+    @ApiOperation(value = "查询用户默认收货地址",response = ComBatteryUserAddressVo.class)
+    @GetMapping("/default/address")
+    public R getDefaultAddress() {
+        return this.comBatteryUserAddressService.getDefaultAddress(this.getUserId());
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComChangeCarBrandApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComChangeCarBrandApi.java
new file mode 100644
index 0000000..d61ab0f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComChangeCarBrandApi.java
@@ -0,0 +1,81 @@
+package com.panzhihua.applets.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.common.AddComChangeCarBrandDto;
+import com.panzhihua.common.model.dtos.common.EditComChangeCarBrandDto;
+import com.panzhihua.common.model.dtos.common.PageComChangeCarBrandDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.common.ComChangeCarBrandVo;
+import com.panzhihua.common.service.community.ComChangeCarBrandFeign;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * title: 换新车-品牌表(ComChangeCarBrand)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-品牌表
+ *
+ * @author lyq
+ * @date 2022-04-07 13:37:22
+ */
+@Slf4j
+@Api(tags = {"换新车-品牌管理"})
+@RestController
+@RequestMapping("/comChangeCarBrand")
+public class ComChangeCarBrandApi extends BaseController {
+
+    @Resource
+    private ComChangeCarBrandFeign comChangeCarBrandService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comChangeCarBrand 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-04-07 13:37:22
+     */
+    @ApiOperation(value = "分页查询品牌列表",response = ComChangeCarBrandVo.class)
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComChangeCarBrandDto comChangeCarBrand) {
+        comChangeCarBrand.setStatus(1);
+        return this.comChangeCarBrandService.queryByPage(comChangeCarBrand);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-07 13:37:22
+     */
+    @ApiOperation(value = "查询品牌详情",response = ComChangeCarBrandVo.class)
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comChangeCarBrandService.detailById(id);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comChangeCarBrand 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-04-07 13:37:22
+     */
+    @ApiOperation(value = "查询品牌列表",response = ComChangeCarBrandVo.class)
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComChangeCarBrandDto comChangeCarBrand) {
+        return this.comChangeCarBrandService.queryByList(comChangeCarBrand);
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComChangeCarInquiryApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComChangeCarInquiryApi.java
new file mode 100644
index 0000000..95cb71e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComChangeCarInquiryApi.java
@@ -0,0 +1,55 @@
+package com.panzhihua.applets.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.common.AddComChangeCarInquiryDto;
+import com.panzhihua.common.model.dtos.common.EditComChangeCarInquiryDto;
+import com.panzhihua.common.model.dtos.common.PageComChangeCarInquiryDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.common.ComChangeCarInquiryVo;
+import com.panzhihua.common.service.community.ComChangeCarInquiryFeign;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * title: 换新车-分期询价表(ComChangeCarInquiry)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-分期询价表
+ *
+ * @author lyq
+ * @date 2022-04-07 13:39:06
+ */
+@Slf4j
+@Api(tags = {"换新车-分期询价管理"})
+@RestController
+@RequestMapping("/comChangeCarInquiry")
+public class ComChangeCarInquiryApi extends BaseController {
+
+    @Resource
+    private ComChangeCarInquiryFeign comChangeCarInquiryService;
+
+    /**
+     * description  add  新增数据
+     *
+     * @param comChangeCarInquiry 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-04-07 13:39:06
+     */
+    @ApiOperation(value = "新增分期询价")
+    @PostMapping("/add")
+    public R add(@RequestBody AddComChangeCarInquiryDto comChangeCarInquiry) {
+        comChangeCarInquiry.setCreateAt(new Date());
+        comChangeCarInquiry.setCreateBy(this.getUserId());
+        comChangeCarInquiry.setUserId(this.getUserId());
+        return this.comChangeCarInquiryService.insert(comChangeCarInquiry);
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComChangeCarModelApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComChangeCarModelApi.java
new file mode 100644
index 0000000..69f4041
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComChangeCarModelApi.java
@@ -0,0 +1,91 @@
+package com.panzhihua.applets.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.common.ComChangeCarModelSpecsVo;
+import com.panzhihua.common.model.vos.common.ComChangeCarModelVo;
+import com.panzhihua.common.service.community.ComChangeCarModelFeign;
+import com.panzhihua.common.service.community.ComChangeCarModelRelationFeign;
+import com.panzhihua.common.service.community.ComChangeCarModelSpecsFeign;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * title: 换新车-车型管理表(ComChangeCarModel)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-车型管理表
+ *
+ * @author lyq
+ * @date 2022-04-07 13:41:54
+ */
+@Slf4j
+@Api(tags = {"换新车-车型管理"})
+@RestController
+@RequestMapping("/comChangeCarModel")
+public class ComChangeCarModelApi extends BaseController {
+
+    @Resource
+    private ComChangeCarModelFeign comChangeCarModelService;
+    @Resource
+    private ComChangeCarModelSpecsFeign carModelSpecsService;
+    @Resource
+    private ComChangeCarModelRelationFeign carModelRelationService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comChangeCarModelRelation 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-04-07 13:41:54
+     */
+    @ApiOperation(value = "分页查询车型管理列表",response = ComChangeCarModelVo.class)
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComChangeCarModelRelationDto comChangeCarModelRelation) {
+        return this.carModelRelationService.queryByAppletsPage(comChangeCarModelRelation);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-07 13:41:54
+     */
+    @ApiOperation(value = "查询车型管理详情",response = ComChangeCarModelVo.class)
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comChangeCarModelService.detailById(id);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comChangeCarModel 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-04-07 13:41:54
+     */
+    @ApiOperation(value = "查询车型管理列表",response = ComChangeCarModelVo.class)
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComChangeCarModelDto comChangeCarModel) {
+        return this.comChangeCarModelService.queryByList(comChangeCarModel);
+    }
+
+    @ApiOperation(value = "查询规格管理级联列表",response = ComChangeCarModelSpecsVo.class)
+    @PostMapping("/specs/list")
+    public R getSpecsList(@RequestBody PageComChangeCarModelSpecsDto comChangeCarModel) {
+        return this.carModelSpecsService.queryByList(comChangeCarModel);
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComChangeCarModelSpecsChildrenApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComChangeCarModelSpecsChildrenApi.java
new file mode 100644
index 0000000..28e0d83
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComChangeCarModelSpecsChildrenApi.java
@@ -0,0 +1,51 @@
+package com.panzhihua.applets.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.common.AddComChangeCarModelSpecsChildrenDto;
+import com.panzhihua.common.model.dtos.common.EditComChangeCarModelSpecsChildrenDto;
+import com.panzhihua.common.model.dtos.common.PageComChangeCarModelSpecsChildrenDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.common.ComChangeCarModelSpecsChildrenVo;
+import com.panzhihua.common.service.community.ComChangeCarModelSpecsChildrenFeign;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * title: 换新车-车型子规格表(ComChangeCarModelSpecsChildren)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-车型子规格表
+ *
+ * @author lyq
+ * @date 2022-04-07 13:55:33
+ */
+@Slf4j
+@Api(tags = {"换新车-车型规格下子规格管理"})
+@RestController
+@RequestMapping("/comChangeCarModelSpecsChildren")
+public class ComChangeCarModelSpecsChildrenApi extends BaseController {
+
+    @Resource
+    private ComChangeCarModelSpecsChildrenFeign comChangeCarModelSpecsChildrenService;
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comChangeCarModelSpecsChildren 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-04-07 13:55:33
+     */
+    @ApiOperation(value = "查询车型规格下子规格管理列表",response = ComChangeCarModelSpecsChildrenVo.class)
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComChangeCarModelSpecsChildrenDto comChangeCarModelSpecsChildren) {
+        return this.comChangeCarModelSpecsChildrenService.queryByList(comChangeCarModelSpecsChildren);
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComFmsApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComFmsApi.java
new file mode 100644
index 0000000..076ba33
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComFmsApi.java
@@ -0,0 +1,216 @@
+package com.panzhihua.applets.api;
+
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+
+import com.panzhihua.common.model.dtos.community.fms.AddFmsServiceAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.ApplyFmsServiceDTO;
+import com.panzhihua.common.model.dtos.community.fms.ApprovalFmsServiceAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.EvaluationFmsServiceDTO;
+import com.panzhihua.common.model.dtos.community.fms.FeedbackFmsServiceDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.community.ComActActEvaluateVO;
+import com.panzhihua.common.model.vos.community.fms.CascadeCommVO;
+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.fms.PageFmsClassroomAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageFmsEventAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageFmsServiceAppletsDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageFmsTeamDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.fms.ComFmsClassroomVO;
+import com.panzhihua.common.model.vos.community.fms.ComFmsServiceVO;
+import com.panzhihua.common.model.vos.community.fms.ComFmsTeamTypeVO;
+import com.panzhihua.common.model.vos.community.fms.ComFmsTeamVO;
+import com.panzhihua.common.model.vos.grid.EventDetailsVO;
+import com.panzhihua.common.model.vos.grid.EventVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.grid.GridService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @title: ComFmsApi
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 五微服务相关接口
+ * @author: hans
+ * @date: 2022/02/11 13:23
+ */
+@Slf4j
+@Api(tags = {"五微服务"})
+@RestController
+@RequestMapping("/fms")
+public class ComFmsApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private GridService gridService;
+
+    @ApiOperation(value = "获取团队类型列表", response = ComFmsTeamTypeVO.class)
+    @ApiImplicitParam(name = "communityId", value = "社区id", required = true)
+    @GetMapping("/teamType/list")
+    public R listFmsTeamType(@RequestParam(value = "communityId", required = false) Long communityId) {
+        LoginUserInfoVO userInfo = this.getLoginUserInfoSureNoLogin();
+        if (isNull(userInfo) && isNull(communityId)) {
+            return R.fail("社区id不能为空");
+        }
+        if (nonNull(userInfo)) {
+            communityId = userInfo.getCommunityId();
+        }
+        return communityService.listFmsTeamType(communityId);
+    }
+
+    @ApiOperation(value = "分页/全部查询团队信息", response = ComFmsTeamVO.class)
+    @PostMapping("/team/page")
+    public R pageFmsTeam(@RequestBody PageFmsTeamDTO pageFmsTeamDTO) {
+        LoginUserInfoVO userInfo = this.getLoginUserInfoSureNoLogin();
+        if (isNull(userInfo) && isNull(pageFmsTeamDTO.getCommunityId())) {
+            return R.fail("社区id不能为空");
+        }
+        if (nonNull(userInfo)) {
+            pageFmsTeamDTO.setCommunityId(userInfo.getCommunityId());
+        }
+        return communityService.pageFmsTeamApplets(pageFmsTeamDTO);
+    }
+
+    @ApiOperation(value = "分页查询微讲堂", response = ComFmsClassroomVO.class)
+    @PostMapping("/classroom/page")
+    public R pageFmsClassroom(@RequestBody @Valid PageFmsClassroomAdminDTO adminDTO) {
+        LoginUserInfoVO userInfo = this.getLoginUserInfoSureNoLogin();
+        if (isNull(userInfo) && isNull(adminDTO.getCommunityId())) {
+            return R.fail("社区id不能为空");
+        }
+        if (nonNull(userInfo)) {
+            adminDTO.setCommunityId(userInfo.getCommunityId());
+        }
+        return communityService.pageFmsClassroomAdmin(adminDTO);
+    }
+
+    @ApiOperation(value = "获取微讲堂详情", response = ComFmsClassroomVO.class)
+    @ApiImplicitParam(name = "id", value = "微讲堂id", required = true)
+    @GetMapping("/classroom/detail")
+    public R detailFmsClassroom(@RequestParam("id") Long id) {
+        return communityService.detailFmsClassroomApplets(id);
+    }
+
+    @ApiOperation(value = "分页查询微调节/微防控", response = EventVO.class)
+    @PostMapping("/event/page")
+    public R pageFmsEvent(@RequestBody @Valid PageFmsEventAdminDTO adminDTO) {
+        LoginUserInfoVO userInfo = this.getLoginUserInfoSureNoLogin();
+        if (isNull(userInfo) && isNull(adminDTO.getCommunityId())) {
+            return R.fail("社区id不能为空");
+        }
+        if (nonNull(userInfo)) {
+            adminDTO.setCommunityId(userInfo.getCommunityId());
+        }
+        return communityService.pageFmsEventApplets(adminDTO);
+    }
+
+    @ApiOperation(value = "微调节/微防控事件详情", response = EventDetailsVO.class)
+    @ApiImplicitParam(name = "eventId", value = "事件id", required = true)
+    @GetMapping("/event/detail")
+    public R detailFmsEvent(@RequestParam("eventId") Long eventId) {
+        return gridService.eventDetails(eventId);
+    }
+
+    @ApiOperation(value = "分页查询微服务", response = ComFmsServiceVO.class)
+    @PostMapping("/service/page")
+    public R pageFmsService(@RequestBody @Valid PageFmsServiceAppletsDTO adminDTO) {
+        LoginUserInfoVO userInfo = this.getLoginUserInfoSureNoLogin();
+        if (isNull(userInfo) && isNull(adminDTO.getCommunityId())) {
+            return R.fail("社区id不能为空");
+        }
+        if (nonNull(userInfo)) {
+            adminDTO.setCommunityId(userInfo.getCommunityId());
+        }
+        return communityService.pageFmsServiceApplets(adminDTO);
+    }
+
+    @ApiOperation(value = "查看微服务详情", response = ComFmsServiceVO.class)
+    @ApiImplicitParam(name = "serviceId", value = "服务id", required = true)
+    @GetMapping("/service/detail")
+    public R detailFmsService(@RequestParam("serviceId") Long serviceId) {
+        LoginUserInfoVO userInfo = this.getLoginUserInfoSureNoLogin();
+        Long userId = null;
+        if (nonNull(userInfo)) {
+            userId = userInfo.getUserId();
+        }
+        return communityService.detailFmsServiceApplets(serviceId, userId);
+    }
+
+    @ApiOperation("微服务申请")
+    @PostMapping("/service/apply")
+    public R applyFmsService(@RequestBody @Valid ApplyFmsServiceDTO adminDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        adminDTO.setUserInfo(loginUserInfo);
+        return communityService.applyFmsService(adminDTO);
+    }
+
+    @ApiOperation(value = "分页查询我的微服务", response = ComFmsServiceVO.class)
+    @PostMapping("/service/pageMy")
+    public R pageMyFmsService(@RequestBody @Valid PageFmsServiceAppletsDTO adminDTO) {
+        adminDTO.setCommunityId(this.getCommunityId());
+        adminDTO.setUserId(this.getUserId());
+        return communityService.pageMyFmsService(adminDTO);
+    }
+
+    @ApiOperation(value = "微服务评价")
+    @PostMapping("/service/evaluate")
+    public R evaluateFmsService(@RequestBody @Valid EvaluationFmsServiceDTO evaluationFmsServiceDTO) {
+        evaluationFmsServiceDTO.setUserId(this.getUserId());
+        return communityService.evaluateFmsService(evaluationFmsServiceDTO);
+    }
+
+    @ApiOperation(value = "微团队成员分页查询服务处理", response = ComFmsServiceVO.class)
+    @PostMapping("/service/pageDeal")
+    public R pageDealFmsService(@RequestBody @Valid PageFmsServiceAppletsDTO adminDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        adminDTO.setCommunityId(loginUserInfo.getCommunityId());
+        adminDTO.setUserId(loginUserInfo.getUserId());
+        adminDTO.setUserInfo(loginUserInfo);
+        return communityService.pageDealFmsService(adminDTO);
+    }
+
+    @ApiOperation(value = "微团队成员服务反馈", response = ComFmsServiceVO.class)
+    @PostMapping("/service/feedback")
+    public R feedbackFmsService(@RequestBody @Valid FeedbackFmsServiceDTO adminDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        adminDTO.setUserId(loginUserInfo.getUserId());
+        adminDTO.setUserInfo(loginUserInfo);
+        return communityService.feedbackFmsService(adminDTO);
+    }
+
+    @ApiOperation("核实微服务")
+    @PostMapping("/service/approval")
+    public R approvalFmsService(@RequestBody @Valid ApprovalFmsServiceAdminDTO adminDTO) {
+        if (adminDTO.getIsPass() && isNull(adminDTO.getMemberId())) {
+            return R.fail("未分配服务人员");
+        }
+        adminDTO.setUpdatedBy(this.getUserId());
+        return communityService.approvalFmsService(adminDTO);
+    }
+
+    @ApiOperation("后台新增微服务")
+    @PostMapping("/service/add")
+    public R addFmsService(@RequestBody @Valid AddFmsServiceAdminDTO adminDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        adminDTO.setCommunityId(loginUserInfo.getCommunityId());
+        adminDTO.setCreatedBy(loginUserInfo.getUserId());
+        adminDTO.setUpdatedBy(loginUserInfo.getUserId());
+        return communityService.addFmsServiceAdmin(adminDTO);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComPbCheckUnitApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComPbCheckUnitApi.java
new file mode 100644
index 0000000..40a1550
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComPbCheckUnitApi.java
@@ -0,0 +1,91 @@
+package com.panzhihua.applets.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.common.AddComPbCheckUnitDto;
+import com.panzhihua.common.model.dtos.common.PageComPbCheckUnitDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.common.ComPbCheckUnitVo;
+import com.panzhihua.common.service.partybuilding.ComPbCheckUnitFeign;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+
+/**
+ * title: 党建-报到单位(ComPbCheckUnit)  控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 党建-报到单位
+ *
+ * @author lyq
+ * @date 2022-02-16 16:22:18
+ */
+
+@Slf4j
+@Api(tags = {"党建-报到单位"})
+@RestController
+@RequestMapping("/checkUnit")
+public class ComPbCheckUnitApi extends BaseController {
+
+    @Resource
+    private ComPbCheckUnitFeign comPbCheckUnitService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comPbCheckUnit 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-02-16 16:22:18
+     */
+    @ApiOperation(value = "分页查询报道单位", response = ComPbCheckUnitVo.class)
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComPbCheckUnitDto comPbCheckUnit) {
+        comPbCheckUnit.setCommunityId(this.getCommunityId());
+        return this.comPbCheckUnitService.queryByPage(comPbCheckUnit);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-02-16 16:22:18
+     */
+    @ApiOperation(value = "查询报道单位", response = ComPbCheckUnitVo.class)
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comPbCheckUnitService.detailById(id);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comPbCheckUnit 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-02-16 16:22:18
+     */
+    @ApiOperation(value = "查询报道单位列表", response = ComPbCheckUnitVo.class)
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComPbCheckUnitDto comPbCheckUnit) {
+        //comPbCheckUnit.setCommunityId(this.getCommunityId());
+        comPbCheckUnit.setCommunityId(null);
+        return this.comPbCheckUnitService.queryByList(comPbCheckUnit);
+    }
+
+    @ApiOperation(value = "新增报道单位")
+    @PostMapping("/add")
+    public R add(@RequestBody AddComPbCheckUnitDto comPbCheckUnit) {
+        comPbCheckUnit.setCommunityId(this.getCommunityId());
+        comPbCheckUnit.setCreateAt(new Date());
+        comPbCheckUnit.setCreateBy(this.getUserId());
+        return this.comPbCheckUnitService.insert(comPbCheckUnit);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComPropertyApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComPropertyApi.java
new file mode 100644
index 0000000..f874911
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComPropertyApi.java
@@ -0,0 +1,77 @@
+package com.panzhihua.applets.api;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.dtos.user.SysUserFeedbackDTO;
+import com.panzhihua.common.service.user.UserService;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiParam;
+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.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComPropertyVO;
+import com.panzhihua.common.service.community.CommunityService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @author zzj
+ */
+@Slf4j
+@Api(tags = {"物业公司"})
+@RestController
+@RequestMapping("/comProperty")
+public class ComPropertyApi extends BaseController {
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private UserService userService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "物业公司列表",response = ComPropertyVO.class)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        commonPage.setParamId(this.getCommunityId());
+        return this.communityService.comPropertySelectAll(commonPage);
+    }
+
+    @ApiOperation(value = "物业公司详情", response = ComPropertyVO.class)
+    @ApiImplicitParam(name = "id", value = "物业公司id", required = true)
+    @GetMapping("detail")
+    public R detailProperty(@RequestParam("id") Long id) {
+        return this.communityService.detailProperty(id);
+    }
+
+    @ApiOperation("新增投诉建议或问题留言")
+    @PostMapping("addFeedBack")
+    public R addFeedBack(@RequestBody SysUserFeedbackDTO sysUserFeedbackDTO){
+        return userService.addFeedback(sysUserFeedbackDTO);
+    }
+
+    @ApiOperation("查看自己的投诉建议或问题留言记录")
+    @GetMapping("myFeedBack")
+    public R myFeedBack(@ApiParam("类型:1问题留言2投诉建议") @RequestParam(value = "type",required = false)Integer type,@RequestParam(value = "propertyId",required = false)Long propertyId){
+        return userService.myFeedBack(this.getLoginUserInfo().getUserId(),type,propertyId);
+    }
+
+    @ApiOperation("通知公告列表")
+    @GetMapping("notice")
+    public R noticeList(@RequestParam("page")Integer page,@RequestParam("size")Integer size,@RequestParam("propertyId")Long propertyId){
+        return communityService.noticeList(page,size,propertyId);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComPropertyHelpApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComPropertyHelpApi.java
new file mode 100644
index 0000000..00710ed
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComPropertyHelpApi.java
@@ -0,0 +1,98 @@
+package com.panzhihua.applets.api;
+
+
+import cn.hutool.core.date.DateUtil;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComPropertyVO;
+import com.panzhihua.common.model.vos.property.ComPropertyHelpVO;
+import com.panzhihua.common.service.property.PropertyService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+
+/**
+ * (ComPropertyHelp)表控制层
+ *
+ * @author makejava
+ * @since 2021-09-18 16:43:12
+ */
+@Slf4j
+@Api(tags = {"一件求助人员"})
+@RestController
+@RequestMapping("/comPropertyHelp")
+public class ComPropertyHelpApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private PropertyService propertyService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "分页查询所有数据",response = ComPropertyVO.class)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        commonPage.setStatus(1);
+        return this.propertyService.comPropertyHelpSelectAll(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation(value = "主键查询")
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Serializable id) {
+        return this.propertyService.comPropertyHelpSelectOne(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comPropertyHelp 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation(value = "新增数据")
+    @PostMapping
+    public R insert(@RequestBody ComPropertyHelpVO comPropertyHelp) {
+        comPropertyHelp.setCommunityId(this.getCommunityId());
+        comPropertyHelp.setCreateTime(DateUtil.date());
+        return this.propertyService.comPropertyHelpInsert(comPropertyHelp);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comPropertyHelp 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation(value = "修改数据")
+    @PostMapping("/update")
+    public R update(@RequestBody ComPropertyHelpVO comPropertyHelp) {
+        return this.propertyService.comPropertyHelpUpdate(comPropertyHelp);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @ApiOperation(value = "删除数据")
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return this.propertyService.comPropertyHelpDelete(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComPropertyPublicityApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComPropertyPublicityApi.java
new file mode 100644
index 0000000..9bbdb17
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComPropertyPublicityApi.java
@@ -0,0 +1,71 @@
+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.PageComPropertyPublicityDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngVillageVO;
+import com.panzhihua.common.model.vos.community.ComPropertyPublicityVO;
+import com.panzhihua.common.service.community.CommunityService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+
+/**
+ * @title: ComPropertyPublicityApi
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 物业宣传相关接口
+ * @author: hans
+ * @date: 2021/11/11 10:08
+ */
+@Slf4j
+@Api(tags = {"物业宣传相关接口"})
+@RestController
+@RequestMapping("/property/publicity")
+public class ComPropertyPublicityApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "分页物业宣传信息", response = ComPropertyPublicityVO.class)
+    @PostMapping("/page")
+    public R pageComPropertyPublicity(@RequestBody @Valid PageComPropertyPublicityDTO pageComPropertyPublicityDTO) {
+        if (isNull(pageComPropertyPublicityDTO.getCommunityId())) {
+            return R.fail("社区id不能为空");
+        }
+        LoginUserInfoVO loginUserInfoSureNoLogin = getLoginUserInfoSureNoLogin();
+        if (nonNull(loginUserInfoSureNoLogin)) {
+            pageComPropertyPublicityDTO.setCommunityId(loginUserInfoSureNoLogin.getCommunityId());
+        }
+        return communityService.pageComPropertyPublicityApplet(pageComPropertyPublicityDTO);
+    }
+
+    @ApiOperation(value = "查看物业宣传信息", response = ComPropertyPublicityVO.class)
+    @GetMapping("/get")
+    @ApiImplicitParam(name = "id", value = "物业宣传id", required = true)
+    public R getComPropertyPublicity(@RequestParam("id") Long id) {
+        return communityService.getComPropertyPublicity(id);
+    }
+
+    @ApiOperation(value = "增加物业宣传浏览量")
+    @GetMapping("/incr-view")
+    @ApiImplicitParam(name = "id", value = "物业宣传id", required = true)
+    public R incrPropertyPublicityView(@RequestParam("id") Long id) {
+        return communityService.incrPropertyPublicityView(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComPropertyRepairApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComPropertyRepairApi.java
new file mode 100644
index 0000000..158c5a2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComPropertyRepairApi.java
@@ -0,0 +1,159 @@
+package com.panzhihua.applets.api;
+
+import cn.hutool.core.date.DateUtil;
+import com.panzhihua.applets.model.dtos.IDTO;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.property.ComPropertyRepairVO;
+import com.panzhihua.common.service.property.PropertyService;
+import com.panzhihua.common.utlis.RSAUtils;
+import com.panzhihua.common.utlis.StringUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@RestController
+@RequestMapping("propertyRepair")
+@Api(tags = "物业报修api")
+public class ComPropertyRepairApi extends BaseController {
+    @Resource
+    private PropertyService propertyService;
+
+    /**
+     * 分页查询所有数据
+     * @return 所有数据
+     */
+    @ApiOperation("小程序列表接口")
+    @PostMapping("/queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        commonPage.setUserId(this.getUserId());
+        return this.propertyService.comPropertyRepairSelectAll(commonPage);
+    }
+
+    /**
+     * 分页查询所有数据
+     * @return 所有数据
+     */
+    @ApiOperation("小程序列表接口-脱敏")
+    @PostMapping("/desensitize/queryAll")
+    public R selectAllDesensitize(@RequestBody CommonPage commonPage) {
+        commonPage.setUserId(this.getUserId());
+        return this.propertyService.comPropertyRepairSelectAllDesensitize(commonPage);
+    }
+
+
+    /**
+     * 小程序添加报修
+     * @param comPropertyRepairVO
+     * @return
+     */
+    @ApiOperation("小程序添加报修")
+    @PostMapping
+    public R insert(@RequestBody ComPropertyRepairVO comPropertyRepairVO) {
+        comPropertyRepairVO.setCreateTime(DateUtil.date());
+        comPropertyRepairVO.setCreateBy(this.getUserId());
+        comPropertyRepairVO.setRepairStatus(ComPropertyRepairVO.status.dcl);
+        return this.propertyService.comPropertyRepairInsert(comPropertyRepairVO);
+    }
+
+    /**
+     * 小程序添加报修 脱敏
+     * @param comPropertyRepairVO
+     * @return
+     */
+    @ApiOperation("小程序添加报修-脱敏")
+    @PostMapping("desensitizeInsert")
+    public R desensitizeInsert(@RequestBody ComPropertyRepairVO comPropertyRepairVO) {
+        comPropertyRepairVO.setCreateTime(DateUtil.date());
+        comPropertyRepairVO.setCreateBy(this.getUserId());
+        comPropertyRepairVO.setRepairStatus(ComPropertyRepairVO.status.dcl);
+        try {
+            comPropertyRepairVO.setRepairName(RSAUtils.decrypt(comPropertyRepairVO.getRepairName(), Constants.PRIVATE_KEY));
+            comPropertyRepairVO.setRepairPhone(RSAUtils.decrypt(comPropertyRepairVO.getRepairPhone(), Constants.PRIVATE_KEY));
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return this.propertyService.comPropertyRepairInsert(comPropertyRepairVO);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comPropertyRepairVO 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation("小程序修改报修")
+    @PostMapping("/update")
+    public R update(@RequestBody ComPropertyRepairVO comPropertyRepairVO) {
+        if(comPropertyRepairVO!=null&& StringUtils.isNotEmpty(comPropertyRepairVO.getFeedbackContent())){
+            comPropertyRepairVO.setFeedbackBy(this.getUserId());
+            comPropertyRepairVO.setFeedbackTime(DateUtil.date());
+            comPropertyRepairVO.setRepairStatus(ComPropertyRepairVO.status.dpj);
+        }
+        if(comPropertyRepairVO!=null&&StringUtils.isNotEmpty(comPropertyRepairVO.getReplyContent())){
+            comPropertyRepairVO.setReplyTime(DateUtil.date());
+            comPropertyRepairVO.setRepairStatus(ComPropertyRepairVO.status.yjs);
+        }
+        return this.propertyService.comPropertyRepairUpdate(comPropertyRepairVO);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation("详情接口")
+    @PostMapping("/detail")
+    public R selectDetail(@RequestBody IDTO idto) {
+        return this.propertyService.comPropertyRepairSelectOne(idto.getId());
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation("详情接口")
+    @GetMapping("/{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return this.propertyService.comPropertyRepairSelectOne(id);
+    }
+
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation("详情接口")
+    @PostMapping("desensitize")
+    public R selectOneDesensitize(Long id) {
+        return this.propertyService.comPropertyRepairSelectOneDesensitize(id);
+    }
+
+
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @ApiOperation("删除接口")
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return this.propertyService.comPropertyRepairDelete(id);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComPropertyWorkerApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComPropertyWorkerApi.java
new file mode 100644
index 0000000..7900b25
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComPropertyWorkerApi.java
@@ -0,0 +1,53 @@
+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.property.PagePropertyWorkerDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.property.ComPropertyWorkerVO;
+import com.panzhihua.common.service.community.CommunityService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 物业公司工作人员(ComPropertyWorker)表控制层
+ *
+ * @author makejava
+ * @since 2022-04-26 09:54:07
+ */
+@Slf4j
+@Api(tags = "物业工作人员")
+@RestController
+@RequestMapping("comPropertyWorker")
+public class ComPropertyWorkerApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "分页查询物业工作人员", response = ComPropertyWorkerVO.class)
+    @PostMapping("/page")
+    public R pagePropertyWorker(@RequestBody @Valid PagePropertyWorkerDTO pagePropertyWorkerDTO) {
+        return communityService.pagePropertyWorker(pagePropertyWorkerDTO);
+    }
+
+    @ApiOperation(value = "物业工作人员详情", response = ComPropertyWorkerVO.class)
+    @ApiImplicitParam(name = "id", value = "物业工作人员id", required = true)
+    @GetMapping("/detail")
+    public R detailPropertyWorker(@RequestParam("id") Long id) {
+        return communityService.detailPropertyWorker(id);
+    }
+}
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
new file mode 100644
index 0000000..a21f673
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComReserveApi.java
@@ -0,0 +1,87 @@
+package com.panzhihua.applets.api;
+
+import com.panzhihua.common.controller.BaseController;
+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;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * 预约/登记服务
+ */
+@Slf4j
+@RestController
+@RequestMapping("reserve")
+@Api(tags = "预约/登记服务")
+public class ComReserveApi extends BaseController {
+    @Resource
+    private CommunityService communityService;
+
+    @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);
+    }
+
+    @ApiOperation("用户提交数据")
+    @PostMapping("/commit")
+    public R commit(@RequestBody ComActReserveCommitVO comActReserveCommitVO){
+        comActReserveCommitVO.setCommunityId(this.getCommunityId());
+        comActReserveCommitVO.setUserId(this.getUserId());
+        return communityService.reserveCommit(comActReserveCommitVO);
+    }
+
+    /**
+     * 我的预约/登记
+     * @param pageUserReserveDTO
+     * @return
+     */
+    @ApiOperation(value = "我的预约/登记",response = ComActReserveAppletsVO.class)
+    @PostMapping("/userReserveList")
+    public R userReserveList(@RequestBody PageUserReserveDTO pageUserReserveDTO){
+        pageUserReserveDTO.setUserId(this.getUserId());
+        return communityService.userReserveList(pageUserReserveDTO);
+    }
+    /**
+     * 取消预约/登记
+     */
+    @ApiOperation("取消预约/登记")
+    @PostMapping("/cancelReserve")
+    public R userCancelReserve(@RequestBody CancelRecordDTO cancelRecordDTO){
+        cancelRecordDTO.setUserId(this.getUserId());
+        return communityService.userCancelReserve(cancelRecordDTO);
+    }
+
+    /**
+     * 预约详情操作记录
+     */
+    @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/ComSanShuoApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComSanShuoApi.java
new file mode 100644
index 0000000..de250be
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComSanShuoApi.java
@@ -0,0 +1,73 @@
+package com.panzhihua.applets.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.sanshuo.*;
+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;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@RestController
+@RequestMapping("sanshuo")
+@Api(tags = "三说会堂小程序接口")
+public class ComSanShuoApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "小程序获取可选择行业分中心列表",response = ComSanShuoIndustryCenterVO.class )
+    @GetMapping("/industryCenter/appletsList")
+    public R industryCenterAppList(){
+        return communityService.industryCenterAppList();
+    }
+
+    @ApiOperation(value = "小程序获取可选择行专家列表",response = ComSanshuoExpertVO.class )
+    @GetMapping("/expert/appletsList")
+    public R expertAppList(@RequestParam (value = "type",required = false)Integer type,@RequestParam(value = "id",required = false)Long id){
+        return communityService.expertAppList(type,id);
+    }
+
+    @ApiOperation(value = "专家风采",response = ExpertShowVO.class)
+    @GetMapping("/expert/expertShow")
+    public R expertShow(){
+        return communityService.expertShow();
+    }
+
+    @ApiOperation("专家详情")
+    @GetMapping("/expert/{id}")
+    public R expertDetail(@PathVariable("id")Long id){
+        return communityService.expertDetail(id);
+    }
+
+    @ApiOperation(value = "事件类型列表",response = ComMediaTypeVO.class)
+    @GetMapping("/mediateType/list")
+    public R mediateTypeList(){
+        return communityService.eventAppList();
+    }
+
+    @ApiOperation(value = "业务中心详情",response = ComSanShuoIndustryCenterVO.class)
+    @GetMapping("/industryCenter/detail")
+    public R industryCenterDetail(@RequestParam("id") Long id){
+        return communityService.industryCenterDetail(id);
+    }
+
+    @GetMapping("/expert/expertShowList")
+    @ApiOperation(value = "专家风采列表",response = ComSanshuoExpertVO.class)
+    public R expertShowList(@RequestParam(value = "level",required = false) @ApiParam("对应的level,1三说会堂2行业分中心3街道4社区")Integer level,
+                            @RequestParam(value = "id",required = false) @ApiParam("id,level=1不传2行业分中心id 3街道id 4社区id")Long id){
+        return communityService.expertShowList(level,id);
+    }
+
+
+    @ApiOperation("专家详情展示")
+    @GetMapping("/expert/detail")
+    public R expertInfo(@RequestParam("id")Long id){
+        return communityService.expertShowList(7,id );
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComSanShuoEventController.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComSanShuoEventController.java
new file mode 100644
index 0000000..67cc2e9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComSanShuoEventController.java
@@ -0,0 +1,183 @@
+package com.panzhihua.applets.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.sanshuo.*;
+import com.panzhihua.common.service.community.CommunitySanShuoService;
+import com.panzhihua.common.utlis.CopyUtil;
+import com.panzhihua.common.utlis.StringUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import java.util.HashMap;
+
+import static java.util.Objects.nonNull;
+
+/**
+ * ClassName   ComEventController
+ * Description 三说会堂事件表控制层
+ *
+ * @author manailin
+ * @date 2022-09-07 11:23:51
+ */
+@Slf4j
+@Api(tags = {"三说会堂事件表控制层"})
+@RestController
+@RequestMapping("/sanshuo/comEvent")
+public class ComSanShuoEventController extends BaseController {
+
+    @Resource
+    private CommunitySanShuoService comEventService;
+
+
+    /**
+     * description 新增三说会堂事件表
+     *
+     * @param comSanRequestVO 对象
+     * @return R  新增结果对象
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("新增三说会堂事件表")
+    @PostMapping("/add")
+    public R insertComEvent(@RequestBody @Valid ComSanRequestVO comSanRequestVO, @ApiIgnore BindingResult results) {
+        if (results.hasErrors()) {
+            return R.fail(results.getFieldError().getDefaultMessage());
+        }
+        return comEventService.insertComEvent(comSanRequestVO);
+    }
+
+
+    /**
+     * description 根据ID获取三说会堂事件表信息
+     *
+     * @param id 主键id
+     * @return R<ComEvent> comEvent 对象
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("根据ID获取三说会堂事件详情信息,返回事件信息和图片信息")
+    @GetMapping("/detail/{id}")
+    public R<HashMap> detail(@PathVariable(value = "id") String id) {
+        if (StringUtils.isEmpty(id)) {
+            throw new RuntimeException("参数不能为空");
+        }
+        return comEventService.detail(id);
+    }
+
+
+    /**
+     * description page   三说会堂事件表分页列表数据
+     *
+     * @param comEventPageRequestVO 对象
+     * @return PageResult<List < ComEvent>>  三说会堂事件表分页列表数据
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation(value = "三说会堂事件表分页列表数据", notes = "三说会堂事件表分页列表数据")
+    @PostMapping("/page")
+    public R page(@RequestBody ComEventPageRequestVO comEventPageRequestVO) {
+        log.info("================appId="+comEventPageRequestVO);
+        ComEventVO comEventVO = new ComEventVO();
+        BeanUtils.copyProperties(comEventPageRequestVO,comEventVO);
+        comEventPageRequestVO.setCreateBy(getUserId());
+        if (nonNull(comEventPageRequestVO.getAppId())){
+            comEventVO.setAppId(comEventPageRequestVO.getAppId());
+        }
+        return comEventService.page(comEventVO, comEventVO.getPageNo(), comEventVO.getPageSize());
+    }
+
+
+    /**
+     * description 修改三说会堂事件表状态
+     *
+     * @param id 主键id
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("取消申请")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long"),
+    })
+    @PutMapping("/cancelRequest")
+    public R cancelRequest(@RequestParam("id") Long id) {
+        return comEventService.cancelRequest(id);
+    }
+
+    /**
+     * description 修改三说会堂事件表状态
+     *
+     * @param id 主键id
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("专家受理")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "事件ID", required = true, dataType = "Long"),
+            @ApiImplicitParam(name = "specterId", value = "专家ID", required = true, dataType = "Long"),
+    })
+    @PutMapping("/accept/Request")
+    public R acceptRequest( Long id,  Long specterId) {
+        return comEventService.acceptRequest(id, specterId);
+    }
+
+    /**
+     * description 修改三说会堂事件表状态
+     *
+     * @param id 主键id
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("专家不受理,转其他专家处理")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long"),
+    })
+    @PutMapping("/reject/Request")
+    public R rejectRequest(@RequestParam("id") Long id) {
+        return comEventService.rejectRequest(id);
+    }
+
+    /**
+     * description 专家调解处理
+     *
+     * @param comEventConciliationVO 主键id
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("专家调解处理")
+    @PutMapping("/conciliation/Request")
+    public R conciliationRequest(@RequestBody ComEventConciliationVO comEventConciliationVO) {
+        return comEventService.conciliationRequest(comEventConciliationVO);
+    }
+
+    /**
+     * description 专家归档
+     *
+     * @param comEventArchiveVO 归档对象
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("事件专家归档")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long"),
+            @ApiImplicitParam(name = "result", value = "归档结论", required = true, dataType = "String"),
+    })
+    @PutMapping("/archive/Request")
+    public R archiveRequest(@RequestBody ComEventArchiveVO comEventArchiveVO) {
+        return comEventService.archiveRequest(comEventArchiveVO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComSwPatrolRecordApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComSwPatrolRecordApi.java
new file mode 100644
index 0000000..9e0e17e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ComSwPatrolRecordApi.java
@@ -0,0 +1,207 @@
+package com.panzhihua.applets.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.controller.BaseController;
+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.vos.R;
+import com.panzhihua.common.model.vos.community.ComSwDangerReportVO;
+import com.panzhihua.common.model.vos.community.ComSwPatrolRecordVO;
+import com.panzhihua.common.model.vos.community.ComSwSafetyWorkRecordVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.partybuilding.PartyBuildingService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther txb
+ * @create 2021-07-23 14:38:38
+ * @describe 社区》安全工作》巡查记录前端控制器
+ */
+@Slf4j
+@Api(tags = {"社区管理/安全工作"})
+@RestController
+@RequestMapping("/patrolRecord")
+public class ComSwPatrolRecordApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @Resource
+    private PartyBuildingService partyBuildingService;
+
+    /**
+     * 分页查询巡查记录
+     * 
+     * @param comSwPatrolRecordPageDTO
+     *            查询参数
+     * @return 分页集合
+     */
+    @ApiOperation(value = "分页查询巡查记录", response = ComSwPatrolRecordVO.class)
+    @PostMapping("/app/pagePatrolRecord")
+    public R pagePatrolRecord(@RequestBody ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO) {
+        Long communityId = this.getCommunityId();
+        if (!comSwPatrolRecordPageDTO.getSelectPerson().equals(1)) {
+            comSwPatrolRecordPageDTO.setPatrolPerson(String.valueOf(this.getLoginUserInfo().getPhone()));
+        }
+        comSwPatrolRecordPageDTO.setCommunityId(communityId);
+        comSwPatrolRecordPageDTO.setAreaCode(this.getAreaCode());
+        return communityService.pagePatrolRecord(comSwPatrolRecordPageDTO);
+    }
+
+    /**
+     * 新增巡查记录
+     * 
+     * @param comSwPatrolRecordAddDTO
+     *            新增参数
+     * @return 新增结果
+     */
+    @ApiOperation(value = "新增巡查记录")
+    @PostMapping("/app/addPatrolRecord")
+    public R addPatrolRecord(@RequestBody ComSwPatrolRecordAddDTO comSwPatrolRecordAddDTO) {
+        Long communityId = this.getCommunityId();
+        comSwPatrolRecordAddDTO.setCommunityId(communityId);
+        comSwPatrolRecordAddDTO.setCreateBy(this.getUserId());
+        return communityService.addPatrolRecord(comSwPatrolRecordAddDTO);
+    }
+
+    /**
+     * 根据巡查记录id查询详情
+     *
+     * @param patrolRecordId
+     *            巡查记录id
+     * @return 巡查记录详情查询结果
+     */
+    @ApiOperation(value = "根据巡查记录id查询详情", response = ComSwPatrolRecordVO.class)
+    @GetMapping("/app/detailPatrolRecord")
+    public R detailPatrolRecord(@RequestParam(value = "patrolRecordId") Long patrolRecordId) {
+        return communityService.detailPatrolRecord(patrolRecordId);
+    }
+
+    /**
+     * 分页查询安全工作记录
+     * 
+     * @param comSwPatrolRecordPageDTO
+     *            查询参数
+     * @return 安全工作记录分页集合
+     */
+    @ApiOperation(value = "分页查询安全工作记录", response = ComSwSafetyWorkRecordVO.class)
+    @PostMapping("/app/pageSafetyWorkRecord")
+    public R pageSafetyWorkRecord(@RequestBody ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO) {
+        Long communityId = this.getCommunityId();
+        comSwPatrolRecordPageDTO.setCommunityId(communityId);
+        return communityService.pageSafetyWorkRecord(comSwPatrolRecordPageDTO);
+    }
+
+    /**
+     * 根据安全工作记录id查询详情
+     *
+     * @param safetyWorkRecordId
+     *            安全工作记录
+     * @return 安全工作记录详情查询结果
+     */
+    @ApiOperation(value = "根据安全工作记录id查询详情", response = ComSwSafetyWorkRecordVO.class)
+    @GetMapping("/app/detailSafetyWorkRecord")
+    public R detailSafetyWorkRecord(@RequestParam(value = "safetyWorkRecordId") Long safetyWorkRecordId) {
+        Long communityId = this.getLoginUserInfo().getCommunityId();
+        return communityService.detailSafetyWorkRecord(safetyWorkRecordId, communityId);
+    }
+
+    /**
+     * 分页查询隐患报告
+     * 
+     * @param comSwPatrolRecordPageDTO
+     *            查询参数
+     * @return 隐患报告分页集合
+     */
+    @ApiOperation(value = "分页查询隐患报告", response = ComSwDangerReportVO.class)
+    @PostMapping("/app/pageDangerReport")
+    public R pageDangerReport(@RequestBody ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO) {
+        Long communityId = this.getCommunityId();
+        comSwPatrolRecordPageDTO.setCommunityId(communityId);
+        comSwPatrolRecordPageDTO.setAreaCode(this.getAreaCode());
+        return communityService.pageDangerReport(comSwPatrolRecordPageDTO);
+    }
+
+    /**
+     * 根据隐患报告id查询详情
+     *
+     * @param dangerReportId
+     *            隐患报告id
+     * @return 隐患报告详情查询结果
+     */
+    @ApiOperation(value = "根据隐患报告id查询详情", response = ComSwDangerReportVO.class)
+    @GetMapping("/app/detailDangerReport")
+    public R detailDangerReport(@RequestParam(value = "dangerReportId") Long dangerReportId) {
+        return communityService.detailDangerReport(dangerReportId);
+    }
+
+    /**
+     * 根据巡查记录id查询隐患报告详情
+     *
+     * @param patrolRecordId
+     *            巡查记录id
+     * @return 隐患报告详情查询结果
+     */
+    @ApiOperation(value = "根据巡查记录id查询隐患报告详情", response = ComSwDangerReportVO.class)
+    @GetMapping("/app/detailDangerReportByPrId")
+    public R detailDangerReportByPrId(@RequestParam(value = "patrolRecordId") Long patrolRecordId) {
+        return communityService.detailDangerReportByPrId(patrolRecordId);
+    }
+
+    /**
+     * 整改隐患报告
+     *
+     * @param comSwDangerReportRectifyDTO
+     *            隐患报告整改参数
+     * @return 整改结果
+     */
+    @ApiOperation(value = "整改隐患报告")
+    @PostMapping("/app/rectifyDangerReport")
+    public R rectifyDangerReport(@RequestBody ComSwDangerReportRectifyDTO comSwDangerReportRectifyDTO) {
+        return communityService.rectifyDangerReport(comSwDangerReportRectifyDTO);
+    }
+
+    /**
+     * 根据日期查询值班人员
+     * 
+     * @return 查询结果
+     */
+    @ApiOperation(value = "根据日期查询值班人员")
+    @GetMapping("/app/getRotaPersonByDate")
+    public R getRotaPersonByDate(@RequestParam(value = "rotaDate") String rotaDate) {
+        return communityService.getRotaPersonByDate(rotaDate,this.getCommunityId());
+    }
+
+    /**
+     * 根据日期查询值班领导
+     * 
+     * @return 查询结果
+     */
+    @ApiOperation(value = "根据日期查询值班领导")
+    @GetMapping("/app/getRotaLeaderByDate")
+    public R getRotaLeaderByDate(@RequestParam(value = "rotaDate") String rotaDate) {
+        return communityService.getRotaLeaderByDate(rotaDate,this.getCommunityId());
+    }
+
+    /**
+     * 选择人员
+     * 
+     * @param param
+     *            查询条件
+     * @return 查询结果
+     */
+    @ApiOperation(value = "选择人员")
+    @PostMapping("/app/getTotlePerson")
+    public R getTotlePerson(@RequestParam(value = "param", required = false) String param) {
+        Long communityId = this.getLoginUserInfo().getCommunityId();
+        return partyBuildingService.getTotlePerson(param, 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
new file mode 100644
index 0000000..b0cf792
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommonApi.java
@@ -0,0 +1,356 @@
+package com.panzhihua.applets.api;
+
+import cn.binarywang.wx.miniapp.api.WxMaSecCheckService;
+import com.alibaba.fastjson.JSON;
+import com.panzhihua.applets.config.MinioUtil;
+import com.panzhihua.applets.config.WxMaConfiguration;
+import com.panzhihua.applets.umf.UmfPayUtil;
+import com.panzhihua.applets.unionpay.*;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.constants.FtpConstants;
+import com.panzhihua.common.constants.UserConstants;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.bracelet.BraceletEarlyWarningDO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.Base64File;
+import com.panzhihua.common.model.vos.community.WeatherVO;
+import com.panzhihua.common.model.vos.user.UserPhoneVO;
+import com.panzhihua.common.service.bracelet.CommunityBraceletService;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.*;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import net.coobird.thumbnailator.Thumbnails;
+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;
+import org.springframework.data.redis.core.ValueOperations;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.time.LocalDateTime;
+import java.util.*;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+import static com.panzhihua.common.utlis.FileTypeUploadUtils.assertAllowed;
+import static com.panzhihua.common.utlis.PayUtil.makeUUID;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 公共接口
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-10 15:41
+ **/
+@Slf4j
+@RestController
+@RequestMapping("/common/")
+@Api(tags = {"公共接口"})
+public class CommonApi extends BaseController {
+    /**
+     * 允许的图片文件后缀
+     */
+    private static List<String> fileExtensionAllow = Arrays.asList("gif", "jpg", "png", "jpeg");
+    /**
+     * 允许的视频文件后缀
+     */
+    private static List<String> videoExtensionAllow = Arrays.asList("mp4", "mov");
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+    @Value("${ftp.url}")
+    private String url;
+    @Value("${minio.url}")
+    private String minUrl;
+    @Resource
+    private WxMaConfiguration wxMaConfiguration;
+    @Resource
+    private CommunityService communityService;
+
+    @Resource
+    private CommunityBraceletService communityBraceletService;
+    @Resource
+    private MinioUtil minioUtil;
+    @Resource
+    private UmfPayUtil umfPayUtil;
+
+    public static void main(String[] args) {
+        // int nextInt = RandomUtils.nextInt(99999, 1000000);
+        // System.out.println(nextInt);
+        String basicStr =
+            "2092261934651932672" + ":" + "de1c0dbb-9197-4724-9cc2-aa94e30a072f" + ":" + System.currentTimeMillis();
+        String s = Base64.getEncoder().encodeToString(basicStr.getBytes());
+        System.out.println(s);
+
+    }
+
+    @ApiOperation(value = "上传照片/视频 (jpg/jpeg/png/mp4/mov)")
+    @PostMapping(value = "uploadimage", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R uploadImage(@RequestParam MultipartFile file, HttpServletRequest request) throws IOException {
+        // 微信图片内容校验
+        WxMaSecCheckService wxMaSecCheckService = wxMaConfiguration.getMaService(this.getAppId()).getSecCheckService();
+        String property = System.getProperty("user.dir");
+
+        String fileExtension = ".jpg";
+
+        String originName = file.getOriginalFilename();
+        AtomicBoolean isVideo = new AtomicBoolean(false);
+        videoExtensionAllow.forEach(ext -> {
+            String originNameLowerCase = originName.toLowerCase();
+            if (originNameLowerCase.endsWith("." + ext)) {
+                isVideo.set(true);
+            }
+        });
+        if (isVideo.get()) {
+            fileExtension = ".mp4";
+        }
+
+        String fileName = property + File.separator + UUID.randomUUID().toString().replace("-", "") + fileExtension;
+        File file1 = new File(fileName);
+
+        String name = file.getOriginalFilename();
+        name = UUID.randomUUID().toString().replaceAll("-", "") + fileExtension;
+        try {
+            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+            sftp.login();
+            InputStream is = file.getInputStream();
+            file.transferTo(file1);
+            try {
+                // boolean b = wxMaSecCheckService.checkImage(file1);
+                boolean delete = file1.delete();
+                log.info("临时文件删除【{}】", delete);
+                // if (!b) {
+                // return R.fail("图片内容违规");
+                // }
+            } catch (Exception e) {
+                log.error("微信审核图片出错【{}】", e.getMessage());
+                return R.fail("图片上传失败");
+                // e.printStackTrace();
+            }
+            sftp.uploadMore(FtpConstants.FTPFILEPATH_IDCARD, name, is);
+            sftp.logout();
+            return R.ok(url + "/idcard/" + name);
+        } catch (Exception e) {
+            log.error("上传照片失败【{}】", e.getMessage());
+            return R.fail();
+        }
+
+    }
+
+    @ApiOperation(value = "新上传照片接口")
+    @PostMapping(value = "/uploadimages", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R uploadImages(@RequestParam MultipartFile file, HttpServletRequest request) {
+        try {
+            assertAllowed(file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION);
+            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 = "/uploadImagesInputStream")
+    public R uploadImagesInputStream(@RequestBody Base64File file, HttpServletRequest request) {
+        if(StringUtils.isEmpty(file.getFile())){
+            return R.fail("文件不能为Null");
+        }
+        try {
+            String name = UUID.randomUUID().toString().replaceAll("-", "") + ".jpg";
+            InputStream is = minioUtil.base64StrToInputStream(file.getFile().replace("data:image/png;base64,","").replace("data:image/jpg;base64,","").replace("data:image/jpeg;base64,",""));
+            String imageUrl = minioUtil.uploadInputStream(is, name);
+            return R.ok(imageUrl);
+        } catch (Exception e) {
+            log.error("上传照片失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    @ApiOperation(value = "新上传照片压缩接口")
+    @PostMapping(value = "/uploadimagescompress", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R uploadImagesComPress(@RequestParam MultipartFile file, HttpServletRequest request) {
+        try {
+            assertAllowed(file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION);
+            String extension = FilenameUtils.getExtension(file.getOriginalFilename());
+            String uuid=UUID.randomUUID().toString().replaceAll("-", "");
+            String name = uuid  + "."+ extension;
+            String fileName = minioUtil.uploadRetFileName(file, name);
+            Thumbnails.of(file.getInputStream()).scale(0.5).outputQuality(0.71).outputFormat("jpg").toFile(uuid+"_compress");
+            File file1=new File(uuid+"_compress.jpg");
+            String imageUrl = minioUtil.uploadFile(file1, uuid+"_compress.jpg");
+            //上传完压缩图后把原图清理,防止文件服务器资源爆满
+            minioUtil.removeMinio(fileName);
+            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) {
+        String newPhone = userPhoneVO.getNewPhone();
+        if (ObjectUtils.isEmpty(newPhone)) {
+            return R.fail("新手机号不能为空");
+        }
+        // todo 发送验证码接第三方
+        int nextInt = RandomUtils.nextInt(99999, 1000000);
+        ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
+        valueOperations.set(UserConstants.PHONE_PUT + newPhone, nextInt + "", 3, TimeUnit.MINUTES);
+        return R.ok(nextInt);
+    }
+
+    @ApiOperation(value = "获取天气", response = WeatherVO.class)
+    @GetMapping(value = "/getWeather/noToken")
+    public R getWeather() {
+        // 获取请求url
+        String url = Constants.G_D_WEATHER_URL;
+        // 获取请求参数
+        String param = "key=" + Constants.G_D_WEATHER_KEY + "&city=510400";
+        String result = HttpUtils.sendGet(url, param);
+        return R.ok(JSON.parseObject(result));
+    }
+
+    @ApiOperation(value = "获取安全知识培训跳转url")
+    @GetMapping(value = "getSafety")
+    public R getSafety()
+    {
+        return R.ok("https://pzh.axhpx.com/Wechat/");
+    }
+
+
+    @ApiOperation("uu洗车下单接口")
+    @GetMapping("/uuPay")
+    public R uuPay(@RequestParam("orderid") String orderid,@RequestParam("openid")String openid,@RequestParam("amount")String amount){
+        Map map=umfPayUtil.pay(orderid, DateUtils.getCurrentDateString(),openid,amount);
+        return R.ok(map);
+    }
+
+    @ApiOperation("无水洗车下单接口")
+    @GetMapping("/wsPay")
+    public R wsPay(@RequestParam("orderid") String orderid,@RequestParam("openid")String openid,@RequestParam("amount")String amount){
+        Map map=umfPayUtil.pay2(orderid, DateUtils.getCurrentDateString(),openid,amount);
+        return R.ok(map);
+    }
+
+
+
+
+
+    @ApiOperation("uu洗车银联下单接口")
+    @GetMapping("/uuUnionpayPay")
+    public R uuUnionpayPay(@RequestParam("amount")String amount,
+                           @RequestParam("productId")String productId,
+                           @RequestParam("openId")String openId){
+
+        LocalDateTime time=DateUtils.getCurrentDate();
+        String merOrderId= UnionpayContent.TOP4+time.format(DateUtils.format_ymdhms_yyyyMMddmmHHssSSS)+makeUUID(7);
+        String map= UnifiedOrder.sendOrder(amount,"uu洗车下单",productId,openId,time,merOrderId);
+        communityService.add(productId,merOrderId,amount);
+        return R.ok(map);
+    }
+
+    @ApiOperation("无水洗车银联下单接口")
+    @GetMapping("/wsUnionpayPay")
+    public R wsUnionpayPay(@RequestParam("amount")String amount,
+                           @RequestParam("productId")String productId,
+                           @RequestParam("openId")String openId){
+        LocalDateTime time=DateUtils.getCurrentDate();
+        String merOrderId= UnionpayContent.TOP4+time.format(DateUtils.format_ymdhms_yyyyMMddmmHHssSSS)+makeUUID(7);
+        String map= UnifiedOrder.sendOrder(amount,"无水洗车下单",productId,openId,time,merOrderId);
+        communityService.add(productId,merOrderId,amount);
+        return R.ok(map);
+    }
+
+    @ApiOperation("uu洗车银联退款接口")
+    @GetMapping("/uuUnionpayRefund")
+    public R uuUnionpayRefundPay(@RequestParam("refundAmount")String refundAmount,
+                                 @RequestParam("refundOrderId")String refundOrderId){
+        String map= Refund.sendOrder(refundAmount,refundOrderId);
+        return R.ok(map);
+    }
+
+    @ApiOperation("无水洗车银联退款接口")
+    @GetMapping("/wsUnionpayRefund")
+    public R wsUnionpayRefundPay(@RequestParam("refundAmount")String refundAmount,
+                                 @RequestParam("refundOrderId")String refundOrderId){
+        String map= Refund.sendOrder(refundAmount,refundOrderId);
+        return R.ok(map);
+    }
+
+
+    @ApiOperation("银联支付查询接口")
+    @GetMapping("/unionpayQuery")
+    public R unionpayRefundPay(@RequestParam("merOrderId")String merOrderId){
+        String map= Query.query(merOrderId);
+        return R.ok(map);
+    }
+
+    @ApiOperation("银联退款查询接口")
+    @GetMapping("/unionpayRefundQuery")
+    public R unionpayRefundQuery(@RequestParam("merOrderId")String merOrderId){
+        String map= RefundQuery.refundQuery(merOrderId);
+        return R.ok(map);
+    }
+
+
+    /**
+     * 获取预警数据
+     * @param communityId
+     * @return
+     */
+    @ApiOperation("微信手环人员处理工单列表")
+    @GetMapping("bracelet/getEarlyWarningList")
+    public R getList(@RequestParam("pageNum") Integer pageNum,
+                     @RequestParam("pageSize") Integer pageSize,
+                     @RequestParam("communityId") String communityId,
+                     @RequestParam("disposeUserId") String disposeUserId,
+                     @RequestParam("type") String type)
+    {
+        return communityBraceletService.getList(pageNum,pageSize,communityId,"",disposeUserId,type,"","");
+    }
+
+    /**
+     * 微信处理接口
+     * @param braceletEarlyWarningDO
+     * @return
+     */
+    @PostMapping("bracelet/WXdispose")
+    public R  WXdispose(@RequestBody BraceletEarlyWarningDO braceletEarlyWarningDO)
+    {
+        if(StringUtils.isEmpty(braceletEarlyWarningDO.getDisposeText()))
+        {
+            return R.fail("处理内容不能为空");
+        }
+        braceletEarlyWarningDO.setDisposeType("2");
+        return communityBraceletService.WXdispose(braceletEarlyWarningDO);
+    }
+
+
+
+
+
+}
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
new file mode 100644
index 0000000..0b2dd31
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommunityApi.java
@@ -0,0 +1,494 @@
+package com.panzhihua.applets.api;
+
+import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.applets.weixin.CheckService;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.common.PageComMngVolunteerOrgTeamDto;
+import com.panzhihua.common.model.dtos.common.PageComMngVolunteerServiceTypeDto;
+import com.panzhihua.common.model.dtos.common.PageComMngVolunteerSkillDto;
+import com.panzhihua.common.model.dtos.community.*;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.common.ComMngVolunteerOrgTeamVo;
+import com.panzhihua.common.model.vos.common.ComMngVolunteerServiceTypeVo;
+import com.panzhihua.common.model.vos.common.ComMngVolunteerSkillVo;
+import com.panzhihua.common.model.vos.community.*;
+import com.panzhihua.common.model.vos.neighbor.ActivityAnalysisVO;
+import com.panzhihua.common.model.vos.user.SysUserNoticeVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.community.CommunityWestService;
+import com.panzhihua.common.service.partybuilding.PartyBuildingService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.common.validated.AddGroup;
+import com.panzhihua.common.validated.PageGroup;
+import io.swagger.annotations.*;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.util.ObjectUtils;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import java.util.Date;
+import java.util.List;
+
+import static java.util.Objects.isNull;
+import static org.apache.commons.lang3.ObjectUtils.isEmpty;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 社区服务
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-10 10:04
+ **/
+@Slf4j
+@RestController
+@RequestMapping("/community/")
+@Api(tags = {"社区服务"})
+public class CommunityApi extends BaseController {
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private CommunityWestService communityWestService;
+    @Resource
+    private UserService userService;
+    @Resource
+    private PartyBuildingService partyBuildingService;
+    @Resource
+    private CheckService checkService;
+
+    @ApiOperation(value = "分页查询小区", response = ComMngStructAreaVO.class)
+    @PostMapping("pagearea")
+    public R pageArea(@RequestBody ComMngStructAreaVO comMngStructAreaVO) {
+        return communityService.pageArea(comMngStructAreaVO);
+    }
+
+    @ApiOperation(value = "新分页查询小区", response = ComMngVillageVO.class)
+    @PostMapping("pagevillage")
+    public R pageVillage(@RequestBody PageComMngVillageDTO pageComMngVillageDTO) {
+        return communityService.pageVillage(pageComMngVillageDTO);
+    }
+
+    @ApiOperation(value = "分页获取社区动态", response = ComActDynVO.class)
+    @PostMapping("pagedynamic")
+    public R pageDynamic(@RequestBody ComActDynVO comActDynVO) {
+//        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+//        if (loginUserInfo != null) {
+//            comActDynVO.setCommunityId(loginUserInfo.getCommunityId()+"");
+//        }
+        comActDynVO.setIsTopping(null);
+        comActDynVO.setStatus(1);
+        Integer category = comActDynVO.getCategory();
+        if (isNull(category)) {
+            comActDynVO.setCategory(1);
+        }
+        return communityService.pageDynamic(comActDynVO);
+    }
+
+    @ApiOperation(value = "分页查项目活动")
+    @PostMapping("projectPageActivity")
+    public R projectPageActivity(@RequestBody ComActActivityVO comActActivityVO) {
+        Long projectId = comActActivityVO.getProjectId();
+        if (isNull(projectId)) {
+            Long communityId = this.getCommunityId();
+            comActActivityVO.setCommunityId(communityId);
+        }
+        // return communityService.pageActivity(ComActActivityVO);
+        return communityService.pageActivityCommunityBack(comActActivityVO);
+    }
+
+
+    @ApiOperation(value = "社区动态详情", response = ComActDynVO.class)
+    @GetMapping("detaildynamic")
+    @ApiImplicitParam(name = "id", value = "社区动态主键", required = true)
+    public R detailDynamic(@RequestParam("id") Long id) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        Long userId = null;
+        if (loginUserInfo != null) {
+            userId = loginUserInfo.getUserId();
+        }
+        R r = communityService.detailDynamic(id);
+        if (R.isOk(r)) {
+            Object data = r.getData();
+            ComActDynVO comActDynVO = JSONObject.parseObject(JSONObject.toJSONString(data), ComActDynVO.class);
+            if (userId != null) {
+                // 增加浏览记录
+                R r1 = communityService.addDynamicUser(id, userId);
+                if (R.isOk(r1)) {
+                    comActDynVO.setIsAdd(1);
+                } else {
+                    comActDynVO.setIsAdd(0);
+                }
+            }
+            return R.ok(comActDynVO);
+        }
+        return r;
+    }
+
+    @ApiOperation(value = "分页查询社区活动", response = ComActActivityVO.class)
+    @PostMapping("pageactivity")
+    public R pageActivity(@RequestBody ComActActivityVO comActActivityVO)
+    {
+        if(comActActivityVO.getCommunityId()<=0)
+        {
+            LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+            if (loginUserInfo != null) {
+                comActActivityVO.setCommunityId(loginUserInfo.getCommunityId());
+            }
+        }
+
+        comActActivityVO.setIsApplets(1);
+        Integer status = comActActivityVO.getStatus();
+        if (null != status && status.intValue() == 4) {
+            comActActivityVO.setIsIng(1);
+        }
+        return communityService.pageActivity(comActActivityVO);
+    }
+
+    @ApiOperation(value = "社区活动/志愿者活动详情", response = ComActActivityVO.class)
+    @GetMapping("detailactivity")
+    @ApiImplicitParam(name = "id", value = "社区活动主键", required = true)
+    public R detailActivity(@RequestParam("id") Long id) {
+        Long userId = null;
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            userId = loginUserInfo.getUserId();
+        }
+        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) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        comActActRegistVO.setUserId(loginUserInfo.getUserId());
+        return communityService.activitySignIn(comActActRegistVO);
+    }
+
+    @ApiOperation(value = "社区活动/志愿者活动评价")
+    @PostMapping("activity/evaluate")
+    public R activityEvaluate(@RequestBody ComActActEvaluateVO comActActEvaluateVO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        comActActEvaluateVO.setUserId(loginUserInfo.getUserId());
+        String openid = this.getLoginUserInfo().getOpenid();
+        String appId = this.getAppId();
+        // 微信内容审核
+        String evaluateContent = comActActEvaluateVO.getEvaluateContent();
+        if (StrUtil.isNotBlank(evaluateContent)) {
+            String result = checkService.checkMessageBy(evaluateContent, openid, appId);
+            if (StrUtil.isNotBlank(result)) {
+                return R.fail(501, "填写内容存在 " + result + " 违规信息");
+            }
+        }
+
+        //微信图片审核
+        String photo = comActActEvaluateVO.getPhoto();
+        if (StrUtil.isNotBlank(photo)) {
+            if (!checkService.checkImageBy(photo, appId)) {
+                return R.fail(501, "上传图片存在违规信息");
+            }
+        }
+        return communityService.activityEvaluate(comActActEvaluateVO);
+    }
+
+    @ApiOperation(value = "我的评价", response = MyActivityEvaluateVO.class)
+    @GetMapping("activity/my-evaluate")
+    public R listMyActivityEvaluate(@RequestParam("activityId") Long activityId) {
+        return communityService.listMyActivityEvaluate(getUserId(), activityId);
+    }
+
+    @ApiOperation(value = "报名/取消报名社区活动")
+    @PutMapping("signactivity")
+    public R signActivity(@RequestBody @Validated(AddGroup.class) SignactivityVO signactivityVO) {
+        Long userId = this.getUserId();
+        Long activityId = signactivityVO.getActivityId();
+        signactivityVO.setUserId(userId);
+        R r = communityService.signActivity(signactivityVO);
+        if (R.isOk(r) && signactivityVO.getType().intValue() == 1) {
+            R r2 = communityService.detailActivity(activityId, userId, null, null);
+            ComActActivityVO comActActivityVO =
+                    JSONObject.parseObject(JSONObject.toJSONString(r2.getData()), ComActActivityVO.class);
+            Integer isVolunteer = JSONObject.parseObject(JSONObject.toJSONString(r.getData()), Integer.class);
+            SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO();
+            sysUserNoticeVO.setUserId(userId);
+            sysUserNoticeVO.setType(1);
+            sysUserNoticeVO.setTitle("报名成功");
+            sysUserNoticeVO.setBusinessType(1);
+            sysUserNoticeVO.setBusinessTitle(comActActivityVO.getActivityName());
+            Date beginAt = comActActivityVO.getBeginAt();
+            sysUserNoticeVO.setBusinessContent(String.format("活动将于%tF %tT  开始,请按时参加", beginAt, beginAt));
+            sysUserNoticeVO.setBusinessId(activityId);
+            sysUserNoticeVO.setStatus(0);
+            sysUserNoticeVO.setActivityType(comActActivityVO.getType());
+            sysUserNoticeVO.setBusinessStatus(2);
+            R r1 = userService.addNotice(sysUserNoticeVO);
+            if (R.isOk(r1)) {
+                log.info("新增用户报名社区活动通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+            }
+        }
+        return r;
+    }
+
+    @ApiOperation(value = "活动人员列表", response = ActivitySignVO.class)
+    @ApiImplicitParams({@ApiImplicitParam(name = "type", value = "人员类型 1 普通居民 2 志愿者", required = true),
+            @ApiImplicitParam(name = "id", value = "社区活动主键", required = true)})
+    @GetMapping("listactivitysign")
+    public R listActivitySign(@RequestParam("id") Long id, @RequestParam("type") Integer type) {
+        ActivitySignVO activitySignVO = new ActivitySignVO();
+        activitySignVO.setActivityId(id);
+        if (null == type || 0 == type || type > 2) {
+            return R.fail("人员类型错误");
+        }
+        activitySignVO.setType(type);
+        return communityService.listActivitySign(activitySignVO);
+    }
+
+    @ApiOperation(value = "活动报名签到情况", response = ActivitySignInRecordVO.class)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "社区活动主键", required = true),
+            @ApiImplicitParam(name = "type", value = "活动类型,1.居民/志愿者活动 2.党员活动", required = true)
+    })
+    @GetMapping("activity/sign-in/list")
+    public R listSignInRecord(@RequestParam("id") Long id, @RequestParam("type") Integer type) {
+        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
+        if (loginUserInfo.getIsCommunityWorker().intValue() != 1) {
+            return R.fail("非社区工作人员");
+        }
+        if (type.intValue() == 1) {
+            return communityService.listSignInRecord(id);
+        }
+        return R.fail("type不存在");
+    }
+
+    @ApiOperation(value = "活动签到记录", response = ComActActRegistVO.class)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "活动主键", required = true),
+            @ApiImplicitParam(name = "type", value = "活动类型,1.居民/志愿者活动 2.党员活动", required = true),
+            @ApiImplicitParam(name = "userId", value = "用户id", required = true)
+    })
+    @GetMapping("activity/regist/list")
+    public R listRegistRecord(@RequestParam("id") Long id,
+                              @RequestParam("type") Integer type,
+                              @RequestParam("userId") Long userId) {
+        if (type.intValue() == 1) {
+            return communityService.listRegistRecord(id, userId);
+        }
+        return R.fail("type不存在");
+    }
+
+    @ApiOperation(value = "活动邀请列表", response = ActivityInviteVO.class)
+    @PostMapping("activity/invite/list")
+    public R pageActivityInviteList(@RequestBody @Valid PageActivityInviteDTO pageActivityInviteDTO) {
+        return communityService.pageActivityInviteList(pageActivityInviteDTO);
+    }
+
+    @ApiOperation(value = "添加邀请人员")
+    @PostMapping("activity/invite/add")
+    public R activityInviteAdd(@RequestBody @Valid List<ActivityInviteDTO> list) {
+        if (!isEmpty(list)) {
+            list.forEach(e -> e.setCreatedBy(this.getUserId()));
+        } else {
+            return R.fail("列表为空");
+        }
+        return communityService.activityInviteAdd(list);
+    }
+
+
+    @ApiOperation(value = "删除邀请人员")
+    @ApiImplicitParam(name = "id", value = "邀请主键id", required = true)
+    @DeleteMapping("activity/invite/delete")
+    public R activityInviteDelete(@RequestParam("id") Long id) {
+        return communityService.activityInviteDelete(id);
+    }
+
+    // @ApiOperation(value = "新增社区动态浏览记录")
+    // @PostMapping("dynamicuser")
+    // public R addDynamicUser(@RequestBody ComActDynVO comActDynVO){
+    // Long id = comActDynVO.getId();
+    // if (null==id||id==0) {
+    // return R.fail("社区动态不存在");
+    // }
+    // Long userId = this.getUserId();
+    // return communityService.addDynamicUser(id,userId);
+    // }
+
+    @ApiOperation(value = "志愿者申请")
+    @PostMapping("volunteer")
+    public R addVolunteer(@RequestBody @Validated(AddGroup.class) ComMngVolunteerMngVO comMngVolunteerMngVO) {
+        comMngVolunteerMngVO.setState(1);
+        comMngVolunteerMngVO.setCommunityId(this.getCommunityId());
+        comMngVolunteerMngVO.setSubmitUserId(this.getUserId());
+        return communityService.addVolunteer(comMngVolunteerMngVO);
+    }
+
+    @ApiOperation(value = "分页查询志愿者团队", response = ComMngVolunteerMngVO.class)
+    @PostMapping("pagevolunteer")
+    public R pageVolunteer(@RequestBody @Validated(PageGroup.class) PageVolunteerDTO pageVolunteerDTO) {
+        ComMngVolunteerMngVO comMngVolunteerMngVO = new ComMngVolunteerMngVO();
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            comMngVolunteerMngVO.setCommunityId(loginUserInfo.getCommunityId());
+        } else {
+            comMngVolunteerMngVO.setCommunityId(pageVolunteerDTO.getCommunityId());
+        }
+        comMngVolunteerMngVO.setPageNum(pageVolunteerDTO.getPageNum());
+        comMngVolunteerMngVO.setPageSize(pageVolunteerDTO.getPageSize());
+        return communityService.pageVolunteer(comMngVolunteerMngVO);
+    }
+
+    @ApiOperation(value = "志愿者详情", response = ComMngVolunteerMngAppletsVO.class)
+    @GetMapping("volunteer")
+    public R detailVolunteer(@RequestParam("id") Long id) {
+        return communityService.detailVolunteer(id);
+    }
+
+    @ApiOperation(value = "查询志愿者组织列表", response = ComMngVolunteerOrgTeamVo.class)
+    @GetMapping("/volunteer/org/list")
+    public R listVolunteerOrgAdmin() {
+        PageComMngVolunteerOrgTeamDto orgTeamDto = new PageComMngVolunteerOrgTeamDto();
+        orgTeamDto.setParentId(0L);
+        orgTeamDto.setCommunityId(this.getCommunityId());
+        return communityService.listVolunteerOrgAdmin(orgTeamDto);
+    }
+
+    @ApiOperation(value = "查询志愿者服务类型列表", response = ComMngVolunteerServiceTypeVo.class)
+    @GetMapping("/volunteer/service/type/list")
+    public R listVolunteerServiceTypeAdmin() {
+        PageComMngVolunteerServiceTypeDto serviceTypeDto = new PageComMngVolunteerServiceTypeDto();
+        serviceTypeDto.setCommunityId(this.getCommunityId());
+        return communityService.listServiceTypeAdmin(serviceTypeDto);
+    }
+
+    @ApiOperation(value = "查询志愿者技能列表", response = ComMngVolunteerSkillVo.class)
+    @GetMapping("/volunteer/skill/list")
+    public R listVolunteerSkillAdmin() {
+        PageComMngVolunteerSkillDto volunteerSkillDto = new PageComMngVolunteerSkillDto();
+        volunteerSkillDto.setCommunityId(this.getCommunityId());
+        return communityService.listVolunteerSkillAdmin(volunteerSkillDto);
+    }
+
+    @ApiOperation(value = "车辆登记")
+    @PostMapping("car/register")
+    public R addComMngCar(@Validated(AddGroup.class) @RequestBody ComMngCarAppletDTO comMngCarAppletDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long communityId = loginUserInfo.getCommunityId();
+        if (null != communityId && 0 != communityId) {
+            comMngCarAppletDTO.setCommunityId(communityId);
+            comMngCarAppletDTO.setAreaId(loginUserInfo.getAreaId());
+            comMngCarAppletDTO.setUserName(loginUserInfo.getName());
+            comMngCarAppletDTO.setUserId(loginUserInfo.getUserId());
+            comMngCarAppletDTO.setMobile(loginUserInfo.getPhone());
+            comMngCarAppletDTO.setSource(1);
+        }
+        return communityService.addComMngCarApplet(comMngCarAppletDTO);
+    }
+
+    @ApiOperation(value = "登记车辆列表", response = ComMngCarVO.class)
+    @GetMapping("car/list")
+    public R comMngCarList() {
+        return communityService.userComMngCarList(this.getUserId());
+    }
+
+    @ApiOperation(value = "获取树结构区域信息")
+    @GetMapping(value = "arealist")
+    public R getAllArea(@ApiParam(name = "城市编码:四川510000",
+            required = true) @RequestParam(value = "provinceAdcode") Integer provinceAdcode) {
+        return communityService.getCityTreeByProvinceCode(provinceAdcode, null);
+    }
+
+    @ApiOperation(value = "社区详情", response = ComActVO.class)
+    @GetMapping("community")
+    public R detailCommunity() {
+        return communityService.detailCommunity(this.getCommunityId());
+    }
+
+    @ApiOperation(value = "查询活动报名名单集合", response = ActivitySignVO.class)
+    @PostMapping("listactivitysign")
+    public R listActivitySign(@RequestBody ActivitySignVO activitySignVO) {
+        if (ObjectUtils.isEmpty(activitySignVO.getActivityId())) {
+            return R.fail("活动id主键不能为空");
+        }
+        return communityService.listActivitySign(activitySignVO);
+    }
+
+    @ApiOperation(value = "查询社区列表")
+    @GetMapping("actList")
+    public R getWestCommunityLists() {
+        return communityService.getWestCommunityLists(this.getAreaCode());
+    }
+
+    @ApiOperation(value = "分页查询街道", response = PageComStreetDTO.class)
+    @PostMapping("pagestreet")
+    public R pageStreet(@RequestBody PageComStreetDTO pageComStreetDTO) {
+        pageComStreetDTO.setAreaCode(this.getAreaCode());
+        return communityService.pageStreet(pageComStreetDTO);
+    }
+
+    @ApiOperation(value = "新增服务活动")
+    @PostMapping("activity")
+    public R addActivity(@RequestBody @Validated(AddGroup.class) ComActActivityVO comActActivityVO) {
+        Long communityId = this.getCommunityId();
+        comActActivityVO.setCommunityId(communityId);
+        comActActivityVO.setUserId(this.getLoginUserInfo().getUserId());
+        comActActivityVO.setStatus(2);
+        comActActivityVO.setHasPrize(0);
+        return communityService.addActivity(comActActivityVO);
+    }
+
+    @ApiOperation(value = "单位活动统计", response = ActivityAnalysisVO.class)
+    @GetMapping("activity/analysis")
+    public R activityUnitAnalysis(@RequestParam(value = "year", required = false) Integer year,
+                                  @RequestParam(value = "type", required = false) Integer type,
+                                  @RequestParam(value = "range", required = false) Integer range,
+                                  @RequestParam(value = "communityId", required = false) Long communityId,
+                                  @RequestParam(value = "page", required = false) Integer page,
+                                  @RequestParam(value = "size", required = false) Integer size,
+                                  @RequestParam(value = "belongTo", required = false) String belongTo,
+                                  @RequestParam(value = "unitId", required = false) Long unitId,
+                                  @RequestParam(value = "searchContent",required = false) String searchContent) {
+        return communityService.institutionalUnitServiceAnalysis(year, type, range, communityId, page,
+                size, belongTo, unitId, this.getLoginUserInfo().getAccount(),searchContent);
+    }
+
+
+    @ApiOperation(value = "分页查询服务范围数据", response = ComActColumnVO.class)
+    @PostMapping("comActColumn/queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        if (this.getLoginUserInfo().getStreetId() != null) {
+            commonPage.setStreetId(this.getLoginUserInfo().getStreetId());
+        } else {
+            commonPage.setCommunityId(this.getCommunityId());
+        }
+        return this.communityService.comActColumnSelectAll(commonPage);
+    }
+
+    @ApiOperation(value = "街道详情", response = ComStreetVO.class)
+    @ApiImplicitParam(name = "id", value = "街道id", required = true)
+    @GetMapping("street")
+    public R detailStreet(@RequestParam("id") Long id) {
+        return communityWestService.detailStreet(id);
+    }
+
+    @ApiOperation(value = "根据id查询社区详情", response = ComActVO.class)
+    @ApiImplicitParam(name = "id", value = "社区id", required = true)
+    @GetMapping("detail")
+    public R detailCommunity(@RequestParam("id") Long id) {
+        return communityService.detailCommunity(id);
+    }
+
+    @ApiOperation(value = "获取问题清单,需求清单,报道服务活动数量",response = DataCount.class)
+    @GetMapping("/dataCount")
+    public R dataCount(){
+        return communityService.dataCount();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommunityConvenientApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommunityConvenientApi.java
new file mode 100644
index 0000000..01560a6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommunityConvenientApi.java
@@ -0,0 +1,136 @@
+package com.panzhihua.applets.api;
+
+import java.util.Objects;
+
+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.PageComCvtBusinessAppletsDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PageClassifyMerchantDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PagePopularMerchantDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PageSearchDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComCvtBusinessDetailVO;
+import com.panzhihua.common.model.vos.community.ComCvtBusinessVO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientProductLevelInfoVO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientProductVO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientServiceCategoryVO;
+import com.panzhihua.common.service.community.CommunityService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @description: 社区便民服务商家接口
+ * @author: Null
+ * @date: 2021/3/11 13:26
+ */
+@Slf4j
+@Api(tags = {"社区运营/便民服务"})
+@RestController
+@RequestMapping("/convenient")
+public class CommunityConvenientApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @Deprecated
+    @ApiOperation(value = "分页查询便民服务商家", response = ComCvtBusinessVO.class)
+    @PostMapping("/business/area/page")
+    public R pageComCvtBusiness(@RequestBody PageComCvtBusinessAppletsDTO comCvtBusinessAppletsDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            comCvtBusinessAppletsDTO.setCommunityId(loginUserInfo.getCommunityId());
+        }
+        return communityService.pageComCvtBusinessByServiceArea(comCvtBusinessAppletsDTO);
+    }
+
+    @Deprecated
+    @ApiOperation(value = "查询便民服务商家详情", response = ComCvtBusinessDetailVO.class)
+    @GetMapping("/business/get")
+    public R getComCvtBusinessServeDetail(@RequestParam("id") Long id) {
+        return communityService.getComCvtBusinessServeDetail(id);
+    }
+
+    @ApiOperation(value = "获取商家数量大于0的服务类型", response = ConvenientServiceCategoryVO.class)
+    @GetMapping("/service-category/suitable")
+    public R getSuitableServiceCategories(@RequestParam("communityId") Long communityId) {
+        if (Objects.isNull(communityId)) {
+            return R.fail("社区id不能为空");
+        }
+        return communityService.getSuitableServiceCategories(communityId,this.getAreaCode());
+    }
+
+    @ApiOperation(value = "分页获取热门商家", response = ConvenientMerchantVO.class)
+    @PostMapping("/merchant/popular")
+    public R getPopularMerchants(@RequestBody @Valid PagePopularMerchantDTO pagePopularMerchantDTO) {
+        pagePopularMerchantDTO.setAreaCode(this.getAreaCode());
+        return communityService.getPopularMerchants(pagePopularMerchantDTO);
+    }
+
+    @ApiOperation(value = "分页获取服务类型下商家", response = ConvenientMerchantVO.class)
+    @PostMapping("/merchant/classify")
+    public R getClassifyMerchants(@RequestBody @Valid PageClassifyMerchantDTO pageClassifyMerchantDTO) {
+        pageClassifyMerchantDTO.setAreaCode(this.getAreaCode());
+        return communityService.getClassifyMerchants(pageClassifyMerchantDTO);
+    }
+
+    @ApiOperation(value = "商家详情", response = ConvenientMerchantVO.class)
+    @GetMapping("/merchant/detail")
+    public R getMerchantDetail(@RequestParam("merchantId") Long merchantId) {
+        return communityService.getMerchantDetail(merchantId);
+    }
+
+    @ApiOperation(value = "获取商家产品", response = ConvenientProductLevelInfoVO.class)
+    @GetMapping("/product/list")
+    public R getMerchantProduct(@RequestParam("merchantId") Long merchantId) {
+        return communityService.getMerchantProduct(merchantId);
+    }
+
+    @ApiOperation(value = "获取产品详情", response = ConvenientProductVO.class)
+    @GetMapping("/product/detail")
+    public R getProductDetail(@RequestParam("productId") Long productId) {
+        return communityService.getProductDetail(productId);
+    }
+
+    @ApiOperation(value = "商家分页搜索", response = ConvenientMerchantVO.class)
+    @PostMapping("/merchant/search")
+    public R pageSearchMerchant(@RequestBody @Valid PageSearchDTO pageSearchDTO) {
+        return communityService.pageSearchMerchant(pageSearchDTO);
+    }
+
+    @ApiOperation(value = "商品分页搜索", response = ConvenientProductVO.class)
+    @PostMapping("/product/search")
+    public R pageSearchProduct(@RequestBody @Valid PageSearchDTO pageSearchDTO) {
+        return communityService.pageSearchProduct(pageSearchDTO);
+    }
+
+    @ApiOperation(value = "增加商家咨询量")
+    @GetMapping("/merchant/incr-consult")
+    public R incrMerchantConsult(@RequestParam("merchantId") Long merchantId) {
+        return communityService.consultMerchant(merchantId);
+    }
+
+    @ApiOperation(value = "增加商家浏览量")
+    @GetMapping("/merchant/incr-view")
+    public R incrMerchantView(@RequestParam("merchantId") Long merchantId) {
+        return communityService.incrMerchantView(merchantId);
+    }
+
+    @ApiOperation(value = "增加产品浏览量")
+    @GetMapping("/product/incr-view")
+    public R incrProductView(@RequestParam("productId") Long productId) {
+        return communityService.incrProductView(productId);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommunityQuestnaireApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommunityQuestnaireApi.java
new file mode 100644
index 0000000..15fcbec
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommunityQuestnaireApi.java
@@ -0,0 +1,87 @@
+package com.panzhihua.applets.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.PageQuestnaireDTO;
+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.questnaire.QuestnaireListVo;
+import com.panzhihua.common.model.vos.community.questnaire.UsersAnswerQuestnaireVO;
+import com.panzhihua.common.model.vos.community.questnaire.UsersAnswerVO;
+import com.panzhihua.common.service.community.CommunityService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @description: 社区通/调查问卷接口
+ * @author: cedoo
+ * @date: 2021-4-8
+ */
+@Slf4j
+@Api(tags = {"社区通/调查问卷"})
+@RestController
+@RequestMapping("/questnaire")
+public class CommunityQuestnaireApi extends BaseController {
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "分页查询社区调查问卷", response = QuestnaireListVo.class)
+    @PostMapping("/pageUser")
+    public R pageUser(@RequestBody PageQuestnaireDTO pageQuestnaireDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail(401, "请先登录");
+        }
+        pageQuestnaireDTO.setCommunityId(loginUserInfo.getCommunityId());
+        pageQuestnaireDTO.setUserId(loginUserInfo.getUserId());
+        return communityService.pageQuestnaire(pageQuestnaireDTO);
+    }
+
+    @ApiOperation(value = "查询调查问卷详情", response = UsersAnswerVO.class)
+    @GetMapping("/detail")
+    public R viewQuestnaire(@RequestParam("questId") Long questId) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail(401, "请先登录");
+        }
+        return communityService.viewDetail(questId,loginUserInfo.getUserId());
+    }
+
+    @ApiOperation(value = "居民填写问卷调查问卷")
+    @PostMapping("/stat/answer")
+    public R usersAnswerQuestnaire(@RequestBody UsersAnswerQuestnaireVO usersAnswerQuestnaireVO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        usersAnswerQuestnaireVO.setUserId(loginUserInfo.getUserId());
+        // 填写调查问卷发放积分
+        communityService.addIntegralTradeAdmin(new AddComActIntegralUserDTO(usersAnswerQuestnaireVO.getQuestId(),
+            AddComActIntegralUserDTO.integralType.cydcwj, loginUserInfo.getCommunityId(), loginUserInfo.getUserId()));
+        return communityService.usersAnsweQuestnaire(usersAnswerQuestnaireVO);
+
+    }
+
+    @ApiOperation(value = "添加浏览量")
+    @GetMapping("/add/view")
+    public R addView(@RequestParam("questId") Long questId) {
+        return communityService.addView(questId);
+    }
+
+    @ApiOperation(value = "用户弹窗添加不在提醒接口")
+    @GetMapping("/add/noNotice")
+    public R addNoNotice(@RequestParam("questId") Long questId) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        return communityService.addNoNotice(questId, loginUserInfo.getUserId());
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommunitySwitchApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommunitySwitchApi.java
new file mode 100644
index 0000000..2e8ffc4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/CommunitySwitchApi.java
@@ -0,0 +1,45 @@
+package com.panzhihua.applets.api;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.controller.BaseController;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.model.dtos.community.switchs.SearchCommunityDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.switchs.CommunitySwitchAllAppletsVO;
+import com.panzhihua.common.model.vos.community.switchs.StreetAllAppletsVO;
+import com.panzhihua.common.service.community.CommunityService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+@RestController
+@RequestMapping("/switch/")
+@Api(tags = {"切换社区模块"})
+public class CommunitySwitchApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "查询所有社区", response = StreetAllAppletsVO.class)
+    @GetMapping("/list/noToken")
+    public R list() {
+        return communityService.communitySwitchList(this.getAppId());
+    }
+
+    @ApiOperation(value = "根据名字搜索社区", response = CommunitySwitchAllAppletsVO.class)
+    @GetMapping("/search/noToken")
+    public R search(@RequestParam(value = "name") String name) {
+        return communityService.communitySwitchSearchList(name,this.getAppId());
+    }
+
+    @ApiOperation(value = "根据距离搜索社区", response = CommunitySwitchAllAppletsVO.class)
+    @PostMapping("/distance/noToken")
+    public R searchDistance(@RequestBody SearchCommunityDTO communityDTO) {
+        return communityService.communitySwitchSearchDistanceList(communityDTO);
+    }
+
+}
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
new file mode 100644
index 0000000..f8a74a1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/DiscussApi.java
@@ -0,0 +1,312 @@
+package com.panzhihua.applets.api;
+
+import cn.hutool.core.util.StrUtil;
+import com.panzhihua.applets.weixin.CheckService;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.*;
+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;
+import org.springframework.util.ObjectUtils;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 一起议
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-22 15:30
+ **/
+@Slf4j
+@Api(tags = {"一起议"})
+@RestController
+@RequestMapping("/")
+public class DiscussApi extends BaseController {
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private CheckService checkService;
+
+    @ApiOperation(value = "一起议-新增")
+    @PostMapping("discuss")
+    public R addDiscuss(@RequestBody @Validated(AddGroup.class) ComActDiscussDTO comActDiscussDTO) {
+        String openid = this.getLoginUserInfo().getOpenid();
+        String appId = this.getAppId();
+        // 微信内容审核
+        String discussSubject = comActDiscussDTO.getDiscussSubject();
+        if (StrUtil.isNotBlank(discussSubject)) {
+            String result = checkService.checkMessageBy(discussSubject, openid, appId);
+            if (StrUtil.isNotBlank(result)) {
+                return R.fail(501, "填写内容存在 " + result + " 违规信息");
+            }
+        }
+
+        //微信图片审核
+        String photoPah = comActDiscussDTO.getPhotoPah();
+        if (StrUtil.isNotBlank(photoPah)) {
+            if (!checkService.checkImageBy(photoPah, appId)) {
+                return R.fail(501, "上传图片存在违规信息");
+            }
+        }
+
+        Integer type = comActDiscussDTO.getType();
+        String voteTitle = comActDiscussDTO.getVoteTitle();
+        List<ComActDiscussOptionDTO> discussOptions = comActDiscussDTO.getDiscussOptions();
+        if (type.equals(2)) {
+            if (ObjectUtils.isEmpty(voteTitle)) {
+                return R.fail("投票标题不能为空");
+            }
+            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)) {
+            return R.fail("地址不能为空");
+        } else if (address.contains("null")) {
+            comActDiscussDTO.setAddress(null);
+        }
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long userId = loginUserInfo.getUserId();
+        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.setLoginUserId(loginUserInfo.getUserId());
+
+            Integer isMy = pageComActDiscussDTO.getIsMy();
+            if (null != isMy && isMy.intValue() == 1) {
+                pageComActDiscussDTO.setUserId(loginUserInfo.getUserId());
+            }
+        }
+        return communityService.pageDiscussApplets(pageComActDiscussDTO);
+    }
+
+    @ApiOperation(value = "一起议-分页查询-脱敏", response = ComActDiscussVO.class)
+    @PostMapping("pageDiscussDesensitize")
+    public R pageDiscussDesensitize(@RequestBody PageComActDiscussDTO pageComActDiscussDTO) {
+        if (Objects.isNull(pageComActDiscussDTO.getType())) {
+            return R.fail("查询类型不能为空");
+        }
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            pageComActDiscussDTO.setCommunityId(loginUserInfo.getCommunityId());
+            pageComActDiscussDTO.setLoginUserId(loginUserInfo.getUserId());
+
+            Integer isMy = pageComActDiscussDTO.getIsMy();
+            if (null != isMy && isMy.intValue() == 1) {
+                pageComActDiscussDTO.setUserId(loginUserInfo.getUserId());
+            }
+        }
+        return communityService.pageDiscussAppletsDesensitize(pageComActDiscussDTO);
+    }
+
+
+    @ApiOperation(value = "一起议-回复")
+    @PostMapping("discusscomment")
+    public R addDiscussComment(@RequestBody ComActDiscussCommentDTO comActDiscussCommentDTO) {
+        String comment = comActDiscussCommentDTO.getComment();
+        if (ObjectUtils.isEmpty(comment)) {
+            return R.fail("回复不能为空");
+        }
+        Long discussId = comActDiscussCommentDTO.getDiscussId();
+        if (null == discussId || 0 == discussId) {
+            return R.fail("一起议主键不能为空");
+        }
+        String result = checkService.checkMessageBy(comment, this.getLoginUserInfo().getOpenid(), this.getAppId());
+        if (StrUtil.isNotBlank(result)) {
+            return R.fail(501, "填写内容存在 " + result + " 违规信息");
+        }
+        comActDiscussCommentDTO.setUserId(this.getUserId());
+        // 议事投票计算积分
+        AddComActIntegralUserDTO integralUserDTO = new AddComActIntegralUserDTO(discussId,
+                AddComActIntegralUserDTO.integralType.cyystp, this.getCommunityId(), this.getUserId());
+        integralUserDTO.setIsComment(1);
+        communityService.addIntegralTradeAdmin(integralUserDTO);
+        return communityService.addDiscussComment(comActDiscussCommentDTO);
+
+    }
+
+    @ApiOperation(value = "一起议-点赞、取消点赞")
+    @PutMapping("discussuser")
+    public R putDiscussUser(@RequestBody @Validated ComActDiscussUserDTO comActDiscussUserDTO) {
+        comActDiscussUserDTO.setUserId(this.getUserId());
+        return communityService.putDiscussUser(comActDiscussUserDTO);
+    }
+
+    @ApiOperation(value = "一起议-评论-点赞、取消点赞")
+    @PutMapping("discusscommentuser")
+    public R putDiscussCommentUser(@RequestBody @Validated ComActDiscussCommentUserDTO comActDiscussUserDTO) {
+        comActDiscussUserDTO.setUserId(this.getUserId());
+        return communityService.putDiscussCommentUser(comActDiscussUserDTO);
+    }
+
+    @ApiOperation(value = "一起议-详情", response = ComActDiscussVO.class)
+    @GetMapping("discuss")
+    @ApiImplicitParam(name = "id", value = "一起议主键", required = true)
+    public R detailDiscuss(@RequestParam("id") Long id) {
+        Long userId = 0L;
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            userId = loginUserInfo.getUserId();
+        }
+        return communityService.detailDiscussApplets(id, userId);
+    }
+
+    @ApiOperation(value = "一起议-详情-脱敏", response = ComActDiscussVO.class)
+    @GetMapping("discussDesensitize")
+    @ApiImplicitParam(name = "id", value = "一起议主键", required = true)
+    public R detailDiscussDesensitize(@RequestParam("id") Long id) {
+        Long userId = 0L;
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            userId = loginUserInfo.getUserId();
+        }
+        return communityService.detailDiscussAppletsDesensitize(id, userId);
+    }
+
+    @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("一起议主键不能为空");
+        }
+        Long userId = 0L;
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            userId = loginUserInfo.getUserId();
+        }
+        pageComActDiscussCommentDTO.setLoginUserId(userId);
+        return communityService.pageDiscussCommentApplets(pageComActDiscussCommentDTO);
+    }
+
+    /**
+     * 议事投票-评论-删除 小程序
+     *
+     *            分页参数
+     * @return ComActDiscussCommentVO
+     */
+    @ApiOperation(value = "一起议-评论-删除接口")
+    @DeleteMapping("deleteCommentApplets")
+    public R deleteCommentApplets(@RequestParam("id") String id)
+    {
+        return communityService.deleteCommentApplets(id);
+    }
+
+
+
+    @ApiOperation(value = "一起议-评论-分页查询-脱敏", response = ComActDiscussCommentVO.class)
+    @PostMapping("pageDiscussCommentDesensitize")
+    public R pageDiscussCommentDesensitize(@RequestBody PageComActDiscussCommentDTO pageComActDiscussCommentDTO) {
+        Long id = pageComActDiscussCommentDTO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("一起议主键不能为空");
+        }
+        Long userId = 0L;
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            userId = loginUserInfo.getUserId();
+        }
+        pageComActDiscussCommentDTO.setLoginUserId(userId);
+        return communityService.pageDiscussCommentAppletsDesensitize(pageComActDiscussCommentDTO);
+    }
+
+    @ApiOperation(value = "一起议-评论-回复")
+    @PostMapping("discusscommentback")
+    public R addDiscussCommentBack(@RequestBody ComActDiscussCommentDTO comActDiscussCommentDTO) {
+        String comment = comActDiscussCommentDTO.getComment();
+        if (ObjectUtils.isEmpty(comment)) {
+            return R.fail("回复不能为空");
+        }
+        Long id = comActDiscussCommentDTO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("评论主键不能为空");
+        }
+        String result = checkService.checkMessageBy(comment, this.getLoginUserInfo().getOpenid(), this.getAppId());
+        if (StrUtil.isNotBlank(result)) {
+            return R.fail(501, "填写内容存在 " + result + " 违规信息");
+        }
+        comActDiscussCommentDTO.setUserId(this.getUserId());
+        return communityService.addDiscussCommentBack(comActDiscussCommentDTO);
+    }
+
+    @ApiOperation(value = "一起议-投票")
+    @PostMapping("discussoptionuser")
+    public R addDiscussOptionUser(@RequestBody @Valid DiscussVoteOptionDTO discussVoteOptionDTO) {
+        List<ComActDiscussVoteOptionDTO> options = discussVoteOptionDTO.getOptions();
+        if (options.isEmpty()) {
+            return R.fail("选项内容不能为空");
+        }
+        discussVoteOptionDTO.setUserId(this.getUserId());
+        options.forEach(option -> {
+            // 议事投票计算积分
+            AddComActIntegralUserDTO integralUserDTO = new AddComActIntegralUserDTO(option.getId(),
+                    AddComActIntegralUserDTO.integralType.cyystp, this.getCommunityId(), this.getUserId());
+            integralUserDTO.setIsComment(2);
+            communityService.addIntegralTradeAdmin(integralUserDTO);
+        });
+        return communityService.addDiscussOptionUser(discussVoteOptionDTO);
+    }
+
+    @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/EldersAuthApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/EldersAuthApi.java
new file mode 100644
index 0000000..6d7eba2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/EldersAuthApi.java
@@ -0,0 +1,235 @@
+package com.panzhihua.applets.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.EldersAuthAddByFamilyDTO;
+import com.panzhihua.common.model.dtos.community.EldersAuthTypeQueryDTO;
+import com.panzhihua.common.model.dtos.community.PageComEldersRecordsDTO;
+import com.panzhihua.common.model.dtos.community.PageEldersAuthDTO;
+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.IPageVO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComEldersAuthElderlyDetailsVO;
+import com.panzhihua.common.model.vos.community.EldersAuthDetailsVO;
+import com.panzhihua.common.model.vos.community.EldersAuthVO;
+import com.panzhihua.common.model.vos.elders.ComElderAuthUserAppVO;
+import com.panzhihua.common.model.vos.elders.ComElderAuthUserDetailVO;
+import com.panzhihua.common.model.vos.user.ComMngFamilyInfoVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.ClazzUtils;
+import com.panzhihua.common.utlis.TencentUtils;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ */
+@Slf4j
+@RestController
+@RequestMapping("/eldersauth")
+@Api(tags = {"高龄认证"})
+public class EldersAuthApi extends BaseController {
+
+    @Resource
+    private CommunityService eldersAuthService;
+    @Resource
+    private UserService userService;
+
+    /**
+     * 分页查找
+     * 
+     * @param pageEldersAuthDTO
+     *            查找高龄认证传递对象
+     * @return 查找结果
+     */
+    @PostMapping("/page")
+    @ApiOperation(value = "查询高龄认证@已过期", response = EldersAuthVO.class)
+    R query(@Validated @RequestBody PageEldersAuthDTO pageEldersAuthDTO) {
+        ClazzUtils.setIfStringIsEmpty(pageEldersAuthDTO);
+        pageEldersAuthDTO.setSumitUserId(this.getUserId());
+        return eldersAuthService.query(pageEldersAuthDTO);
+    }
+
+    /**
+     * 查询高龄认证详细信息
+     * 
+     * @param id
+     *            高龄认证 id
+     * @return 查找结果
+     */
+    @GetMapping("/{id}")
+    @ApiOperation(value = "查询高龄认证详细信息@已过期", response = EldersAuthDetailsVO.class)
+    R<EldersAuthDetailsVO> details(@PathVariable("id") Long id) {
+        return eldersAuthService.eldersAuthDetails(id);
+    }
+
+    @GetMapping("/family")
+    @ApiOperation(value = "我的家庭成员@已过期", response = R.class)
+    R<IPageVO<ComMngFamilyInfoVO>> family() {
+        return eldersAuthService.getMyfamilyElders(getUserId());
+    }
+
+    /**
+     * 新增高龄认证
+     * 
+     * @param eldersAuthAddByFamilyDTO
+     *            添加高龄认证传递对象
+     * @return 新增结果
+     */
+    @PostMapping("/addByFamily")
+    @ApiOperation(value = "新增高龄认证", response = R.class)
+    R addByFamily(@RequestBody EldersAuthAddByFamilyDTO eldersAuthAddByFamilyDTO) {
+        eldersAuthAddByFamilyDTO.setSumitUserId(getUserId());
+        eldersAuthAddByFamilyDTO.setUserId(getUserId());
+        return eldersAuthService.addByFamilyUser(eldersAuthAddByFamilyDTO);
+    }
+
+    @GetMapping("/authtype")
+    @ApiOperation(value = "查询社区认证方式", response = R.class)
+    R communityAuthtype() {
+        Long communityId = this.getCommunityId();
+        EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO = new EldersAuthTypeQueryDTO();
+        eldersAuthTypeQueryDTO.setCommunityId(communityId);
+        return eldersAuthService.communityElderAuthType(eldersAuthTypeQueryDTO);
+    }
+
+    @PostMapping("/getEidToken")
+    @ApiOperation(value = "高龄认证获取EidToken接口")
+    public R getEidToken(@RequestParam("authUserId") Long authUserId) {
+        if (authUserId == null) {
+            return R.fail("参数错误");
+        }
+
+        R isOk = eldersAuthService.getEldersAuthUserByApp(authUserId);
+        if (R.isOk(isOk)) {
+            ComElderAuthUserDetailVO authUserDetailVO =
+                JSONObject.parseObject(JSONObject.toJSONString(isOk.getData()), ComElderAuthUserDetailVO.class);
+            // 获取EidToken接口
+            String result = TencentUtils.getEidToken(authUserDetailVO.getName(), authUserDetailVO.getIdCard());
+            return R.ok(result);
+        } else {
+            log.error("查询老人信息失败,错误信息:" + isOk.getMsg());
+            return isOk;
+        }
+    }
+
+    @PostMapping("/getEidResult")
+    @ApiOperation(value = "高龄认证获取核验结果接口")
+    public R getEidResult(@Validated @RequestBody ComEldersAuthGetResultDTO authGetResultDTO) {
+
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        authGetResultDTO.setUserId(loginUserInfo.getUserId());
+
+        String result = TencentUtils.getEidResult(authGetResultDTO.getEidToken());
+        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("核验失败");
+        }
+
+        authGetResultDTO.setVerificationResult(object.toJSONString());
+        return eldersAuthService.addEldersAuthByApp(authGetResultDTO);
+    }
+
+    @PostMapping("/page/old")
+    @ApiOperation(value = "高龄认证分页接口", response = ComElderAuthUserAppVO.class)
+    public R pageElders(@RequestBody ComEldersAuthPageDTO authPageDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        authPageDTO.setUserId(loginUserInfo.getUserId());
+        authPageDTO.setCommunityId(loginUserInfo.getCommunityId());
+        return eldersAuthService.pageEldersByApp(authPageDTO);
+    }
+
+    @PostMapping("/add")
+    @ApiOperation(value = "高龄认证添加老人接口")
+    public R addElders(@RequestBody ComEldersAuthUserAddAppDTO authUserAddAppDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        authUserAddAppDTO.setUserId(loginUserInfo.getUserId());
+        authUserAddAppDTO.setCommunityId(loginUserInfo.getCommunityId());
+        return eldersAuthService.addEldersByApp(authUserAddAppDTO);
+    }
+
+    @PostMapping("/edit")
+    @ApiOperation(value = "高龄认证修改老人接口")
+    public R editElders(@RequestBody ComEldersAuthUserAddAppDTO authUserAddAppDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        authUserAddAppDTO.setUserId(loginUserInfo.getUserId());
+        authUserAddAppDTO.setCommunityId(loginUserInfo.getCommunityId());
+        return eldersAuthService.editEldersByApp(authUserAddAppDTO);
+    }
+
+    /**
+     * 分页查找
+     * 
+     * @param pageComEldersRecordsDTO
+     *            查找高龄认证记录
+     * @return 查找结果
+     */
+    @PostMapping("/records")
+    @ApiOperation(value = "生存认证记录", response = EldersAuthVO.class)
+    R query(@Validated @RequestBody PageComEldersRecordsDTO pageComEldersRecordsDTO) {
+        ClazzUtils.setIfStringIsEmpty(pageComEldersRecordsDTO);
+        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
+        pageComEldersRecordsDTO.setOperUserId(loginUserInfoVO.getUserId());
+        pageComEldersRecordsDTO.setOperUserName(loginUserInfoVO.getNickName());
+        return eldersAuthService.queryEldersRecord(pageComEldersRecordsDTO);
+    }
+
+    /**
+     * 查询高龄老人库详细信息
+     * 
+     * @param id
+     *            高龄老人库 id
+     * @return 查找结果
+     */
+    @GetMapping("/records/{id}")
+    @ApiOperation(value = "认证详情详细信息")
+    R<ComEldersAuthElderlyDetailsVO> detail(@PathVariable("id") Long id) {
+        return eldersAuthService.comEldersAuthElderlyDetails(id);
+    }
+
+    @GetMapping("/no/tips")
+    @ApiOperation(value = "高龄认证不再显示提示")
+    public R noTips() {
+        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
+        if (loginUserInfoVO == null) {
+            return R.fail("请先登录");
+        }
+        return userService.noTips(loginUserInfoVO.getUserId());
+    }
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/HouseApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/HouseApi.java
new file mode 100644
index 0000000..8e4a651
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/HouseApi.java
@@ -0,0 +1,100 @@
+package com.panzhihua.applets.api;
+
+import javax.annotation.Resource;
+
+import cn.hutool.core.util.StrUtil;
+import com.panzhihua.common.constants.Constants;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.applets.weixin.CheckService;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.ComOpsHouseDTO;
+import com.panzhihua.common.model.dtos.community.PageComOpsHouseDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComOpsHouseUndercarriageVO;
+import com.panzhihua.common.model.vos.community.ComOpsHouseVO;
+import com.panzhihua.common.service.community.CommunityService;
+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 lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 房屋租售
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-22 15:30
+ **/
+@Slf4j
+@Api(tags = {"房屋租售"})
+@RestController
+@RequestMapping("/")
+public class HouseApi extends BaseController {
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private CheckService checkService;
+
+    @ApiOperation(value = "房屋租售-新增")
+    @PostMapping("house")
+    public R addHouse(@RequestBody @Validated(AddGroup.class) ComOpsHouseDTO comOpsHouseDTO) {
+        // 微信内容审核
+        String introduction = comOpsHouseDTO.getIntroduction();
+        if (StrUtil.isNotBlank(introduction)) {
+            String result = checkService.checkMessageBy(introduction, this.getLoginUserInfo().getOpenid(),this.getAppId());
+            if (StrUtil.isNotBlank(result)) {
+                return R.fail(501, "填写内容存在 " + result + " 违规信息");
+            }
+        }
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long userId = loginUserInfo.getUserId();
+        Long communityId = loginUserInfo.getCommunityId();
+        comOpsHouseDTO.setUserId(userId);
+        comOpsHouseDTO.setCommunityId(communityId);
+        comOpsHouseDTO.setUserType(1);
+        return communityService.addOpsHouse(comOpsHouseDTO);
+    }
+
+    @ApiOperation(value = "房屋租售-分页查询", response = ComOpsHouseVO.class)
+    @PostMapping("pagehouse")
+    public R pageHouse(@RequestBody PageComOpsHouseDTO pageComOpsHouseDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        Integer isMy = pageComOpsHouseDTO.getIsMy();
+        if (null != isMy && isMy.equals(1)) {
+            pageComOpsHouseDTO.setUserId(loginUserInfo.getUserId());
+        }
+        return communityService.pageOpsHouse(pageComOpsHouseDTO);
+    }
+
+    @ApiOperation(value = "房屋租售-详情", response = ComOpsHouseVO.class)
+    @GetMapping("house")
+    @ApiImplicitParam(name = "id", value = "房屋租售主键", required = true)
+    public R detailHouse(@RequestParam("id") Long id) {
+        return communityService.detailOpsHouse(id);
+    }
+
+    @ApiOperation(value = "房屋租售-修改")
+    @PostMapping("putHouse")
+    public R updateHouse(@RequestBody @Validated(PutGroup.class) ComOpsHouseVO comOpsHouseVO) {
+        return communityService.putOpsHouseByApplets(comOpsHouseVO);
+    }
+
+    @ApiOperation(value = "房屋租售-删除")
+    @GetMapping("delHouse")
+    @ApiImplicitParam(name = "id", value = "房屋租售主键", required = true)
+    public R delHouse(@RequestParam("id") Long id) {
+        return communityService.deleteOpsHouse(id);
+    }
+
+    @ApiOperation(value = "房屋租售-上下架")
+    @PostMapping("undercarriageHouse")
+    public R undercarriageHouse(@RequestBody @Validated(PutGroup.class) ComOpsHouseUndercarriageVO comOpsHouseVO) {
+        return communityService.undercarriageHouse(comOpsHouseVO);
+    }
+
+}
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..2cd1415
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/IdentityAuthApi.java
@@ -0,0 +1,87 @@
+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());
+        addIdentityAuthDTO.setAreaCode(this.getAreaCode());
+        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
new file mode 100644
index 0000000..522cb3a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/IndexApi.java
@@ -0,0 +1,613 @@
+package com.panzhihua.applets.api;
+
+import cn.hutool.core.util.StrUtil;
+import com.panzhihua.applets.weixin.CheckService;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.CommonDTO;
+import com.panzhihua.common.model.dtos.PageDTO;
+import com.panzhihua.common.model.dtos.common.EditComActEasyPhotoHandlerDto;
+import com.panzhihua.common.model.dtos.common.EvaluateEasyDto;
+import com.panzhihua.common.model.dtos.common.PageComActEasyPhotoHandlerDto;
+import com.panzhihua.common.model.dtos.community.ComActEasyPhotoCommentDTO;
+import com.panzhihua.common.model.dtos.community.ComActEasyPhotoCommentUserDTO;
+import com.panzhihua.common.model.dtos.community.NoticeReadDTO;
+import com.panzhihua.common.model.dtos.community.PageComActEasyPhotoCommentDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.advertisement.ComOpsAdvVO;
+import com.panzhihua.common.model.vos.common.ComActEasyPhotoHandlerVo;
+import com.panzhihua.common.model.vos.community.*;
+import com.panzhihua.common.model.vos.community.easyPhoto.BannerVO;
+import com.panzhihua.common.model.vos.community.easyPhoto.ComActEasyPhotoClassifyVO;
+import com.panzhihua.common.model.vos.user.NoticeUnReadVO;
+import com.panzhihua.common.model.vos.user.SysUserAgreementVO;
+import com.panzhihua.common.model.vos.user.SysUserNoticeVO;
+import com.panzhihua.common.service.community.ComActEasyPhotoEvaluateFeign;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.common.validated.AddGroup;
+import com.panzhihua.common.validated.PageGroup;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.util.ObjectUtils;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 首页
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-10 14:39
+ **/
+@RestController
+@RequestMapping("/index/")
+@Api(tags = {"首页"})
+public class IndexApi extends BaseController {
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private UserService userService;
+    @Resource
+    private CheckService checkService;
+    @Resource
+    private ComActEasyPhotoEvaluateFeign easyPhotoEvaluateFeign;
+
+    @ApiOperation(value = "分页展示社区随手拍", response = ComActEasyPhotoVO.class)
+    @PostMapping("pageeasyphoto")
+    public R pageEasyPhoto(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+//            comActEasyPhotoVO.setCommunityId(loginUserInfo.getCommunityId());
+            comActEasyPhotoVO.setLogInUserId(loginUserInfo.getUserId());
+            comActEasyPhotoVO.setIsDpcMember(loginUserInfo.getIsDpcMember());
+        }
+        return communityService.pageEasyPhotoApplets(comActEasyPhotoVO);
+    }
+
+    @ApiOperation(value = "分页展示社区随手拍-脱敏", response = ComActEasyPhotoVO.class)
+    @PostMapping("pageEasyPhotoDesensitize")
+    public R pageEasyPhotoDesensitize(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            comActEasyPhotoVO.setCommunityId(loginUserInfo.getCommunityId());
+            comActEasyPhotoVO.setLogInUserId(loginUserInfo.getUserId());
+            comActEasyPhotoVO.setIsDpcMember(loginUserInfo.getIsDpcMember());
+        }
+        return communityService.pageEasyPhotoAppletsDesensitize(comActEasyPhotoVO);
+    }
+
+    @ApiOperation("上传随手拍")
+    @PostMapping("easyphoto")
+    public R addEasyPhoto(@RequestBody @Validated(AddGroup.class) ComActEasyPhotoVO comActEasyPhotoVO) {
+        // 微信内容审核
+        String openid = this.getLoginUserInfo().getOpenid();
+        String appId = this.getAppId();
+        // 微信内容审核
+        String detail = comActEasyPhotoVO.getDetail();
+        if (StrUtil.isNotBlank(detail)) {
+            String result = checkService.checkMessageBy(detail, openid, appId);
+            if (StrUtil.isNotBlank(result)) {
+                return R.fail(501, "填写内容存在 " + result + " 违规信息");
+            }
+        }
+
+        //微信图片审核
+        String photoPathList = comActEasyPhotoVO.getPhotoPathList();
+        if (StrUtil.isNotBlank(photoPathList)) {
+            if (!checkService.checkImageBy(photoPathList, appId)) {
+                return R.fail(501, "上传图片存在违规信息");
+            }
+        }
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long communityId = loginUserInfo.getCommunityId();
+        if (null == communityId || 0 == communityId) {
+            return R.fail("用户未绑定社区");
+        }
+        Long userId = loginUserInfo.getUserId();
+        comActEasyPhotoVO.setCommunityId(communityId);
+        comActEasyPhotoVO.setSponsorId(userId);
+        comActEasyPhotoVO.setStatus(1);
+        return communityService.addEasyPhoto(comActEasyPhotoVO);
+    }
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comActEasyPhotoHandler 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-03-01 13:45:10
+     */
+    @ApiOperation(value = "查询处理列表", response = ComActEasyPhotoHandlerVo.class)
+    @PostMapping("/handleList")
+    public R handleList(@RequestBody PageComActEasyPhotoHandlerDto comActEasyPhotoHandler) {
+        comActEasyPhotoHandler.setUserId(this.getUserId());
+        return this.communityService.queryEasyPhotoHandler(comActEasyPhotoHandler);
+    }
+
+    /**
+     * description  edit  编辑数据
+     *
+     * @param comActEasyPhotoHandler 请求参数
+     * @return 编辑结果
+     * @author lyq
+     * @date 2022-03-01 13:45:10
+     */
+    @ApiOperation(value = "提交反馈")
+    @PostMapping("/editEasyPhotoHandler")
+    public R editEasyPhotoHandler(@RequestBody EditComActEasyPhotoHandlerDto comActEasyPhotoHandler) {
+        return this.communityService.editEasyPhotoHandler(comActEasyPhotoHandler);
+    }
+
+    @ApiOperation(value = "查询处理详情", response = ComActEasyPhotoHandlerVo.class)
+    @ApiImplicitParam(name = "id", value = "处理id", required = true)
+    @GetMapping("/easyPhotoHandler")
+    public R detailEasyPhotoHandler(@RequestParam("id") Long id) {
+        return this.communityService.detailEasyPhotoHandler(id);
+    }
+
+    @ApiOperation(value = "查询随手拍是否有活动", response = ComActEasyPhotoActivityVO.class)
+    @PostMapping("getEasyPhotoActivity")
+    public R getEasyPhotoActivity(@RequestBody CommonDTO commonDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        Long communityId = commonDTO.getCommunityId();
+        if (loginUserInfo != null) {
+            communityId = loginUserInfo.getCommunityId();
+        }
+        return communityService.getEasyPhotoActivity(communityId);
+    }
+
+    @ApiOperation(value = "随手拍详情", response = ComActEasyPhotoVO.class)
+    @GetMapping("detaileasyphoto")
+    @ApiImplicitParam(name = "id", value = "随手拍主键")
+    public R detailEasyPhoto(@RequestParam("id") Long id) {
+        Long userId = 0L;
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            userId = loginUserInfo.getUserId();
+        }
+        return communityService.detailEasyPhoto(id, userId);
+    }
+
+
+    /**
+     * 随手拍删除
+     *
+     * @param id
+     *            随手拍主键
+     *            登录用户id
+     * @return 详情内容
+     */
+    @ApiOperation(value = "删除随手拍", response = ComActEasyPhotoVO.class)
+    @DeleteMapping("easyphoto/{id}")
+    public R deleteEasyPhoto(@PathVariable("id") Long id) {
+        Long userId = this.getUserId();
+        return communityService.deleteEasyPhoto(id, userId);
+    }
+
+
+
+    @ApiOperation(value = "随手拍详情-脱敏", response = ComActEasyPhotoVO.class)
+    @GetMapping("detailEasyPhotoDesensitize")
+    @ApiImplicitParam(name = "id", value = "随手拍主键")
+    public R detailEasyPhotoDesensitize(@RequestParam("id") Long id) {
+        Long userId = 0L;
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            userId = loginUserInfo.getUserId();
+        }
+        return communityService.detailEasyPhotoDesensitize(id, userId);
+    }
+
+    @ApiOperation(value = "随手拍--评论--分页查询", response = ComActEasyPhotoCommentVO.class)
+    @PostMapping("pagecomacteasyphotocomment")
+    public R pageComActEasyPhotoComment(@RequestBody PageComActEasyPhotoCommentDTO pageComActEasyPhotoCommentDTO) {
+        Long userId = 0L;
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            userId = loginUserInfo.getUserId();
+        }
+        pageComActEasyPhotoCommentDTO.setUserId(userId);
+        return communityService.pageComActEasyPhotoComment(pageComActEasyPhotoCommentDTO);
+    }
+
+    @ApiOperation(value = "随手拍--评论--分页查询-脱敏", response = ComActEasyPhotoCommentVO.class)
+    @PostMapping("pageComActEasyPhotoCommentDesensitize")
+    public R pageComActEasyPhotoCommentDesensitize(@RequestBody PageComActEasyPhotoCommentDTO pageComActEasyPhotoCommentDTO) {
+        Long userId = 0L;
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            userId = loginUserInfo.getUserId();
+        }
+        pageComActEasyPhotoCommentDTO.setUserId(userId);
+        return communityService.pageComActEasyPhotoCommentDesensitize(pageComActEasyPhotoCommentDTO);
+    }
+
+    @ApiOperation(value = "随手拍--评论--新增评论")
+    @PostMapping("comacteasyphotocomment")
+    public R addComActEasyPhotoComment(@RequestBody ComActEasyPhotoCommentDTO comActEasyPhotoCommentDTO) {
+        // 微信内容审核
+        String openid = this.getLoginUserInfo().getOpenid();
+        String appId = this.getAppId();
+        // 微信内容审核
+        String comment = comActEasyPhotoCommentDTO.getComment();
+        if (StrUtil.isNotBlank(comment)) {
+            String result = checkService.checkMessageBy(comment, openid, appId);
+            if (StrUtil.isNotBlank(result)) {
+                return R.fail(501, "填写内容存在 " + result + " 违规信息");
+            }
+        }
+        comActEasyPhotoCommentDTO.setUserId(this.getUserId());
+        return communityService.addComActEasyPhotoComment(comActEasyPhotoCommentDTO);
+    }
+
+    @ApiOperation(value = "随手拍--评论--点赞/取消点赞")
+    @PostMapping("commentsign")
+    public R commentSign(@RequestBody ComActEasyPhotoCommentUserDTO comActEasyPhotoCommentUserDTO) {
+        comActEasyPhotoCommentUserDTO.setUserId(this.getUserId());
+        return communityService.commentSign(comActEasyPhotoCommentUserDTO);
+    }
+
+    @ApiOperation("点赞/取消点赞随手拍")
+    @PutMapping("easyphoto")
+    public R putEasyPhoto(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO) {
+        Long id = comActEasyPhotoVO.getId();
+        if (null == id || id == 0) {
+            return R.fail("随手拍主键不能为空");
+        }
+        Integer haveGiveThumbsUp = comActEasyPhotoVO.getHaveGiveThumbsUp();
+        if (null == haveGiveThumbsUp) {
+            return R.fail("操作类型不能为空");
+        }
+        Long userId = this.getUserId();
+        comActEasyPhotoVO.setSponsorId(userId);
+        return communityService.putEasyPhoto(comActEasyPhotoVO);
+    }
+
+    @ApiOperation(value = "分页展示社区微心愿", response = ComActMicroWishVO.class)
+    @PostMapping("pagemicrowish")
+    public R pageMicroWish(@RequestBody ComActMicroWishVO comActMicroWishVO)
+    {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            comActMicroWishVO.setCommunityId(loginUserInfo.getCommunityId());
+            comActMicroWishVO.setResponsibleId(loginUserInfo.getUserId());// 责任人暂时放登录用户id
+        }
+
+        if(!StringUtils.isEmpty(comActMicroWishVO.getHandleId()))
+        {
+            comActMicroWishVO.setCommunityId(null);
+        }
+        comActMicroWishVO.setIsApplets(1);
+        comActMicroWishVO.setIsPageMyWish(null);
+        return communityService.pageMicroWishApplets(comActMicroWishVO);
+    }
+
+    @ApiOperation(value = "分页展示社区微心愿-脱敏", response = ComActMicroWishVO.class)
+    @PostMapping("pageMicroWishDesensitize")
+    public R pageMicroWishDesensitize(@RequestBody ComActMicroWishVO comActMicroWishVO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            comActMicroWishVO.setCommunityId(loginUserInfo.getCommunityId());
+            comActMicroWishVO.setResponsibleId(loginUserInfo.getUserId());// 责任人暂时放登录用户id
+        }
+        comActMicroWishVO.setIsApplets(1);
+        comActMicroWishVO.setIsPageMyWish(null);
+        return communityService.pageMicroWishAppletsDesensitize(comActMicroWishVO);
+    }
+
+    @ApiOperation("发布微心愿")
+    @PostMapping("microwish")
+    public R addMicroWish(@RequestBody @Validated(AddGroup.class) ComActMicroWishVO comActMicroWishVO) {
+        // 微信内容审核
+        String msg = comActMicroWishVO.getDetail();
+        if (StrUtil.isNotBlank(msg)) {
+            String result = checkService.checkMessageBy(msg, this.getLoginUserInfo().getOpenid(),this.getAppId());
+            if (StrUtil.isNotBlank(result)) {
+                return R.fail(501, "填写内容存在 " + result + " 违规信息");
+            }
+        }
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long communityId = loginUserInfo.getCommunityId();
+        if (null == communityId || 0 == communityId) {
+            return R.fail("用户未绑定社区");
+        }
+        Long userId = loginUserInfo.getUserId();
+        String phone = loginUserInfo.getPhone();
+        if (ObjectUtils.isEmpty(phone)) {
+            // return R.fail("用户绑定手机号后才能发布微心愿");
+            phone = "18228784579";
+        }
+        comActMicroWishVO.setSponsorPhone(phone);
+        comActMicroWishVO.setCommunityId(communityId);
+        comActMicroWishVO.setSponsorId(userId);
+        return communityService.addMicroWish(comActMicroWishVO);
+    }
+
+    @ApiOperation(value = "心愿详情", response = ComActMicroWishVO.class)
+    @GetMapping("microwish")
+    @ApiImplicitParam(name = "id", value = "微心愿主键")
+    public R detailMicroWish(@RequestParam("id") Long id) {
+        Long userId = 0L;
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            userId = loginUserInfo.getUserId();
+        }
+        return communityService.detailMicroWish(id, userId);
+    }
+
+
+    @ApiOperation(value = "删除心愿")
+    @PostMapping("deletemicrowish")
+    public R deleteMicrowish(@RequestParam("id") Long id) {
+        return communityService.deletemicrowish(id);
+    }
+
+
+    @ApiOperation(value = "心愿详情-脱敏", response = ComActMicroWishVO.class)
+    @GetMapping("microwishDesensitize")
+    @ApiImplicitParam(name = "id", value = "微心愿主键")
+    public R detailMicroWishDesensitize(@RequestParam("id") Long id) {
+        Long userId = 0L;
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            userId = loginUserInfo.getUserId();
+        }
+        return communityService.detailMicroWishDesensitize(id, userId);
+    }
+
+    @ApiOperation("点赞/取消点赞微心愿")
+    @PutMapping("microwish")
+    public R putMicroWish(@RequestBody ComActMicroWishVO comActMicroWishVO) {
+        Long id = comActMicroWishVO.getId();
+        if (null == id || id == 0) {
+            return R.fail("微心愿主键不能为空");
+        }
+        Long userId = this.getUserId();
+        comActMicroWishVO.setSponsorId(userId);// 发起人字段暂时存放userId
+        return communityService.putMicroWish(comActMicroWishVO);
+    }
+
+    @ApiOperation(value = "首页广告banner", response = ComOpsAdvVO.class)
+    @GetMapping("listadvertisement/noToken")
+    public R listAdvertisement(@RequestParam(value = "type",required = false,defaultValue = "1") Integer type) {
+        return communityService.listAdvertisement(type);
+    }
+
+    @ApiOperation(value = "分页通知列表", response = SysUserNoticeVO.class)
+    @PostMapping("pagenotice")
+    public R pageNotice(@RequestBody @Validated(PageGroup.class) PageDTO pageDTO) {
+        Long userId = this.getUserId();
+        pageDTO.setUserId(userId);
+        return userService.pageNotice(pageDTO);
+    }
+
+    @ApiOperation(value = "通知已读")
+    @PutMapping("notice")
+    public R putNotice(@RequestBody NoticeReadDTO noticeReadDTO) {
+        Long userId = this.getUserId();
+        noticeReadDTO.setUserId(userId);
+        return userService.putNotice(noticeReadDTO);
+    }
+
+    @ApiOperation(value = "未读消息汇总", response = NoticeUnReadVO.class)
+    @GetMapping("noticeunreadnum")
+    public R noticeUnreadNum() {
+        Long userId = this.getUserId();
+        return userService.noticeUnreadNum(userId);
+    }
+
+    @ApiOperation(value = "获取各种协议", response = SysUserAgreementVO.class)
+    @GetMapping("agreement")
+    @ApiImplicitParam(name = "type", value = "1居民端app协议 2网格员端app协议 3商家端app协议 4隐私政策")
+    public R agreement(@RequestParam("type") Integer type) {
+        return userService.agreement(type, this.getAppId());
+    }
+
+    @ApiOperation("发布留言")
+    @PostMapping("addmessage")
+    public R addMessage(@RequestBody @Validated(AddGroup.class) ComActMessageVO comActMessageVO) {
+        // 微信内容审核
+        String msg = comActMessageVO.getMsgContent();
+        if (StrUtil.isNotBlank(msg)) {
+            String result = checkService.checkMessageBy(msg, this.getLoginUserInfo().getOpenid(),this.getAppId());
+            if (StrUtil.isNotBlank(result)) {
+                return R.fail(501, "填写内容存在 " + result + " 违规信息");
+            }
+        }
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long communityId = loginUserInfo.getCommunityId();
+        if (null == communityId || 0 == communityId) {
+            return R.fail("用户未绑定社区");
+        }
+        Integer type = loginUserInfo.getType();
+        if (null == type || (type != 1 && type != 2)) {
+            return R.fail("留言对象类型错误!");
+        }
+        Long userId = loginUserInfo.getUserId();
+        comActMessageVO.setCommunityId(communityId);
+        comActMessageVO.setUserId(userId);
+        comActMessageVO.setUserName(loginUserInfo.getName());
+        comActMessageVO.setUserAccount(loginUserInfo.getAccount());
+        comActMessageVO.setIspublic(1);
+        comActMessageVO.setStatus(1);
+        return communityService.addMessage(comActMessageVO);
+    }
+
+    @ApiOperation("发布留言回复")
+    @PostMapping("addmessageback")
+    public R addMessageBack(@RequestBody @Validated(AddGroup.class) ComActMessageBackVO comActMessageBackVO) {
+        // 微信内容审核
+        String msg = comActMessageBackVO.getMsgContent();
+        if (StrUtil.isNotBlank(msg)) {
+            String result = checkService.checkMessageBy(msg, this.getLoginUserInfo().getOpenid(),this.getAppId());
+            if (StrUtil.isNotBlank(result)) {
+                return R.fail(501, "填写内容存在 " + result + " 违规信息");
+            }
+        }
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long communityId = loginUserInfo.getCommunityId();
+        if (null == communityId || 0 == communityId) {
+            return R.fail("用户未绑定社区");
+        }
+        Integer type = loginUserInfo.getType();
+        if (null == type || (type != 1 && type != 2)) {
+            return R.fail("留言对象类型错误!");
+        }
+        Long userId = loginUserInfo.getUserId();
+        comActMessageBackVO.setCommunityId(communityId);
+        comActMessageBackVO.setUserId(userId);
+        comActMessageBackVO.setUserName(loginUserInfo.getName());
+        comActMessageBackVO.setUserAccount(loginUserInfo.getAccount());
+        comActMessageBackVO.setIspublic(1);
+        comActMessageBackVO.setStatus(1);
+        return communityService.addMessageBack(comActMessageBackVO);
+    }
+
+    @ApiOperation(value = "分页显示我的留言", response = ComActMessageVO.class)
+    @PostMapping("pagemymessage")
+    public R pageMyMessage(@RequestBody ComActMessageVO comActMessageVO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long communityId = loginUserInfo.getCommunityId();
+        if (null == communityId || 0 == communityId) {
+            return R.fail("用户未绑定社区");
+        }
+        comActMessageVO.setCommunityId(communityId);
+        comActMessageVO.setUserId(loginUserInfo.getUserId());
+        return communityService.pageMyMessageApplets(comActMessageVO);
+    }
+
+    @ApiOperation(value = "分页显示居民给我的留言", response = ComActMessageVO.class)
+    @PostMapping("pagesendtomemessage")
+    public R pageSendToMessage(@RequestBody ComActMessageVO comActMessageVO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long communityId = loginUserInfo.getCommunityId();
+        if (null == communityId || 0 == communityId) {
+            return R.fail("用户未绑定社区");
+        }
+        comActMessageVO.setCommunityId(communityId);
+        comActMessageVO.setUserId(loginUserInfo.getUserId());
+        comActMessageVO.setPhone(loginUserInfo.getPhone());
+        return communityService.pageSendToMessageApplets(comActMessageVO);
+    }
+
+    @ApiOperation(value = "分页显示指定用户的留言", response = ComActMessageVO.class)
+    @PostMapping("pagemessagebyuser")
+    public R pageMessageByUser(@RequestBody ComActMessageVO comActMessageVO) {
+        return communityService.pageMessageByUser(comActMessageVO);
+    }
+
+    @ApiOperation(value = "留言详情", response = ComActMessageVO.class)
+    @GetMapping("detailmessage")
+    @ApiImplicitParam(name = "id", value = "随手拍主键")
+    public R detailMessage(@RequestParam("id") Long id) {
+        return communityService.detailMessage(id);
+    }
+
+    @ApiOperation(value = "首页商城开关接口")
+    @GetMapping("isShop")
+    public R isShop() {
+        return R.ok(Constants.IS_SHOP_OPEN);
+    }
+
+    @ApiOperation(value = "获取最新活动和用户最新收益", response = BannerVO.class)
+    @GetMapping("getUserReward")
+    public R getUserReward(@RequestParam("communityId") Long communityId) {
+        Long userId = 0L;
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            userId = loginUserInfo.getUserId();
+            if (loginUserInfo.getCommunityId() != null) {
+                communityId = loginUserInfo.getCommunityId();
+            }
+        }
+        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 = "获取普达首页弹窗接口", response = ComActEasyPhotoRewardVO.class)
+    @GetMapping("getUserRewardsNew")
+    public R getUserRewardsNew(@RequestParam("communityId") Long communityId) {
+        Long userId = 0L;
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            userId = loginUserInfo.getUserId();
+            communityId = loginUserInfo.getCommunityId();
+        }
+        return communityService.getUserRewardsNew(userId, communityId);
+    }
+
+    @ApiOperation(value = "读取用户随手拍奖励")
+    @PostMapping("readUserReward")
+    public R readUserReward() {
+        return communityService.readUserReward(this.getUserId(), this.getCommunityId());
+    }
+
+    @ApiOperation(value = "随手拍分类列表", response = ComActEasyPhotoClassifyVO.class)
+    @GetMapping("easyphoto/classify/list")
+    public R easyPhotoClassifyList() {
+        return communityService.listPhotoClassify(this.getAreaCode());
+    }
+
+    @ApiOperation(value = "随手拍评价")
+    @PostMapping("easyphoto/whistle/evaluate")
+    public R evaluateEasyPhotoWhistle(@RequestBody EvaluateEasyDto whistleDto) {
+        whistleDto.setUserId(this.getUserId());
+        return easyPhotoEvaluateFeign.evaluateEasyApplets(whistleDto);
+    }
+
+
+
+    /*****************************************************************************************************************
+     *
+     *                                         社区宣传
+     *
+     ******************************************************************************************************************/
+    @ApiOperation(value = "获取社区宣传", response = CommunityPublicityVO.class)
+    @GetMapping("/getCommunityPublicityData")
+    public R getCommunityPublicityData(@RequestParam("communityId") String communityId)
+    {
+        return communityService.getCommunityPublicityData(communityId);
+    }
+
+
+//    @ApiOperation(value = "添加社区宣传")
+//    @PostMapping("/addCommunityPublicityDate")
+//    public R addCommunityPublicityDate(@RequestBody CommunityPublicityVO item)
+//    {
+//        return communityService.addCommunityPublicityDate(item);
+//    }
+//
+//    @ApiOperation(value = "编辑社区宣传")
+//    @PostMapping("/editCommunityPublicityDate")
+//    public R editCommunityPublicityDate(@RequestBody CommunityPublicityVO item)
+//    {
+//        return communityService.editCommunityPublicityDate(item);
+//    }
+//
+//    @ApiOperation(value = "删除社区宣传")
+//    @DeleteMapping("/deleteCommunityPublicityData")
+//    public R deleteCommunityPublicityData(@RequestParam("communityId") String communityId)
+//    {
+//        return communityService.deleteCommunityPublicityData(communityId);
+//    }
+//
+//
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/JinHuiCommnuityApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/JinHuiCommnuityApi.java
new file mode 100644
index 0000000..a8c69c9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/JinHuiCommnuityApi.java
@@ -0,0 +1,955 @@
+package com.panzhihua.applets.api;
+
+
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.bracelet.BraceletEarlyWarningDO;
+import com.panzhihua.common.model.dtos.community.PageActWorkGuideDTO;
+import com.panzhihua.common.model.dtos.community.convenient.JinhuiPageConvenientMerchantDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PageConvenientMerchantDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.*;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientServiceCategoryVO;
+import com.panzhihua.common.model.vos.community.convenient.JinhuiConvenientMerchantVO;
+import com.panzhihua.common.model.vos.jinhui.*;
+import com.panzhihua.common.model.vos.user.SysUserNoticeVO;
+import com.panzhihua.common.service.bracelet.CommunityBraceletService;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.jinhui.JinhuiCommunityService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.validated.AddGroup;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+@Slf4j
+@RestController
+@RequestMapping("/jin_hui/")
+@Api(tags = {"小程序-金汇社区api"})
+public class JinHuiCommnuityApi  extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @Resource
+    private JinhuiCommunityService jinhuiCommunityService;
+
+    @Resource
+    private UserService userService;
+
+    @ApiOperation(value = "新增服务活动")
+    @PostMapping("add/activity")
+    public R addActivity(@RequestBody @Validated(AddGroup.class) ComActActivityVO comActActivityVO) {
+        Long communityId = this.getCommunityId();
+        comActActivityVO.setCommunityId(communityId);
+        comActActivityVO.setUserId(this.getLoginUserInfo().getUserId());
+        comActActivityVO.setStatus(2);
+        comActActivityVO.setHasPrize(0);
+        comActActivityVO.setHaveIntegralReward(2);
+        return communityService.addActivity(comActActivityVO);
+    }
+
+
+    @ApiOperation(value = "用户签到")
+    @PostMapping("activitySignIn")
+    public R jinhuiactivitySignIn(@RequestBody @Validated(AddGroup.class) ComActActRegistVO comActActRegistVO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        comActActRegistVO.setUserId(loginUserInfo.getUserId());
+        return communityService.jinhuiActivitySignIn(comActActRegistVO);
+    }
+
+    @ApiOperation(value = "报名/取消报名社区活动")
+    @PutMapping("signactivity")
+    public R signActivity(@RequestBody @Validated(AddGroup.class) SignactivityVO signactivityVO) {
+        Long userId = this.getUserId();
+        Long activityId = signactivityVO.getActivityId();
+        signactivityVO.setUserId(userId);
+        R r = communityService.jinhuiSignActivity(signactivityVO);
+        if (R.isOk(r) && signactivityVO.getType().intValue() == 1) {
+            R r2 = communityService.detailActivity(activityId, userId, null, null);
+            ComActActivityVO comActActivityVO =
+                    JSONObject.parseObject(JSONObject.toJSONString(r2.getData()), ComActActivityVO.class);
+            Integer isVolunteer = JSONObject.parseObject(JSONObject.toJSONString(r.getData()), Integer.class);
+            SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO();
+            sysUserNoticeVO.setUserId(userId);
+            sysUserNoticeVO.setType(1);
+            sysUserNoticeVO.setTitle("报名成功");
+            sysUserNoticeVO.setBusinessType(1);
+            sysUserNoticeVO.setBusinessTitle(comActActivityVO.getActivityName());
+            Date beginAt = comActActivityVO.getBeginAt();
+            sysUserNoticeVO.setBusinessContent(String.format("活动将于%tF %tT  开始,请按时参加", beginAt, beginAt));
+            sysUserNoticeVO.setBusinessId(activityId);
+            sysUserNoticeVO.setStatus(0);
+            sysUserNoticeVO.setActivityType(comActActivityVO.getType());
+            sysUserNoticeVO.setBusinessStatus(2);
+            R r1 = userService.addNotice(sysUserNoticeVO);
+            if (R.isOk(r1)) {
+                log.info("新增用户报名社区活动通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+            }
+        }
+        return r;
+    }
+
+
+    @ApiOperation(value = "获取个人金汇币总币", response = JinhuiCoinGeneralTableVO.class)
+    @GetMapping("goldCoin/getDetails")
+    public R coinTableGetDetails() {
+        return jinhuiCommunityService.coinTableGetDetails(this.getUserId() + "");
+    }
+
+
+    @ApiOperation(value = "获取个人金汇币明细", response = JinhuiGoldCoinRecordVO.class)
+    @GetMapping("/record/getList")
+    public R recordGetList(@RequestParam("pageNum") int pageNum,
+                           @RequestParam("pageSize") int pageSize) {
+        return jinhuiCommunityService.recordGetList(pageNum, pageSize, this.getUserId() + "");
+    }
+
+    @ApiOperation(value = "获取个人金汇币明细详情", response = JinhuiGoldCoinRecordVO.class)
+    @GetMapping("/jinhuiRecord/getDetails")
+    public R recordGetDetails(@RequestParam("id") String id) {
+        return jinhuiCommunityService.recordGetDetails(id);
+    }
+
+    @ApiOperation(value = "删除金汇币记录")
+    @PostMapping("/record/expurgateData")
+    public R recordExpurgateData(@RequestParam("id") String id) {
+        return jinhuiCommunityService.recordExpurgateData(id);
+    }
+
+
+    /**
+     * 办事指南_详情
+     *
+     * @param workGuideId
+     * @return 详情
+     */
+    @ApiOperation(value = "办事指南_详情", response = ComActWorkGuideVO.class)
+    @GetMapping("/detailworkguide")
+    public R detailWorkGuide(@RequestParam("workGuideId") String workGuideId) {
+        return jinhuiCommunityService.detailWorkGuide(workGuideId, getCommunityId() + "");
+    }
+
+    /**
+     * 办事指南_分页
+     *
+     * @param pageActWorkGuideDTO 查询参数
+     * @return 分页集合
+     */
+    @ApiOperation(value = "办事指南_分页", response = ComActWorkGuideVO.class)
+    @PostMapping("/pageworkguide")
+    public R pageWorkGuide(@RequestBody PageActWorkGuideDTO pageActWorkGuideDTO) {
+        return jinhuiCommunityService.pageWorkGuide(pageActWorkGuideDTO);
+    }
+
+
+    /**
+     * 删除便民服务商家
+     *
+     * @param merchantId
+     * @return
+     */
+    @ApiOperation(value = "删除便民服务商家")
+    @DeleteMapping("/merchant/delete")
+    public R deleteMerchant(@RequestParam("merchantId") String merchantId) {
+        return jinhuiCommunityService.deleteMerchant(merchantId);
+    }
+
+    /**
+     * 分页查询便民服务商家 运营后台
+     *
+     * @param pageConvenientMerchantDTO
+     * @return
+     */
+    @ApiOperation(value = "分页查询便民服务商家", response = ConvenientMerchantVO.class)
+    @PostMapping("/merchant/page")
+    public R pageMerchant(@RequestBody JinhuiPageConvenientMerchantDTO pageConvenientMerchantDTO)
+    {
+        pageConvenientMerchantDTO.setAuditType("2");
+        return jinhuiCommunityService.pageMerchant(pageConvenientMerchantDTO);
+    }
+
+    /**
+     * 获取便民服务商家详情
+     *
+     * @param merchantId
+     * @return
+     */
+    @ApiOperation(value = "获取便民服务商家详情", response = ConvenientMerchantVO.class)
+    @GetMapping("/merchant/get")
+    public R getMerchant(@RequestParam("merchantId") String merchantId) {
+        return jinhuiCommunityService.getMerchant(merchantId);
+    }
+
+
+    /**
+     * 分页查询 商家类别
+     *
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "获取便民服务商家类别列表", response = ConvenientServiceCategoryVO.class)
+    @GetMapping("/getCategories")
+    public R getListCategories(@RequestParam("pageNum") int pageNum,
+                               @RequestParam("pageSize") int pageSize) {
+        return jinhuiCommunityService.getListCategories(pageNum, pageSize);
+    }
+
+
+
+    @ApiOperation(value = "便民服务商家入驻")
+    @PostMapping("/merchant/addData")
+    public R merchantAddData(@RequestBody JinhuiConvenientMerchantVO item)
+    {
+        item.setAuditType("1");
+        item.setCreatedBy(getUserId()+"");
+        return jinhuiCommunityService.merchantAddData(item);
+    }
+
+    /***************************************************************************************************
+     *
+     *
+     *                                  商家评论
+     *
+     *
+     **************************************************************************************************/
+    /**
+     * 商家评论列表
+     *
+     * @param pageNum
+     * @param pageSize
+     * @param merchantId
+     * @return
+     */
+    @ApiOperation(value = "商家评论列表", response = JinghuiMerchantEvaluateVO.class)
+    @GetMapping("/merchantEvaluate/getList")
+    public R merchantEvaluateGetList(@RequestParam("pageNum") int pageNum,
+                                     @RequestParam("pageSize") int pageSize,
+                                     @RequestParam("merchantId") String merchantId) {
+        return jinhuiCommunityService.merchantEvaluateGetList(pageNum, pageSize, merchantId);
+    }
+
+    /**
+     * 商家评论列单个详情
+     *
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "商家评论列单个详情", response = JinghuiMerchantEvaluateVO.class)
+    @GetMapping("/merchantEvaluate/getDetails")
+    public R merchantEvaluateGetDetails(@RequestParam("id") String id) {
+        return jinhuiCommunityService.merchantEvaluateGetDetails(id);
+    }
+
+    /**
+     * 商家评论列添加
+     *
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "商家评论列添加")
+    @PostMapping("/merchantEvaluate/addData")
+    public R merchantEvaluateAddData(@RequestBody JinghuiMerchantEvaluateVO item) {
+        item.setUserId(getUserId()+"");
+        return jinhuiCommunityService.merchantEvaluateAddData(item);
+    }
+
+    /**
+     * 商家评论列编辑
+     *
+     * @param item
+     * @return
+     */
+    @ApiOperation(value = "商家评论列编辑")
+    @PostMapping("/merchantEvaluate/editData")
+    public R merchantEvaluateEditData(@RequestBody JinghuiMerchantEvaluateVO item) {
+        return jinhuiCommunityService.merchantEvaluateEditData(item);
+    }
+
+    /**
+     * 商家评论列删除
+     *
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "商家评论列删除")
+    @PostMapping("/merchantEvaluate/expurgateData")
+    public R merchantEvaluateExpurgateData(@RequestParam("id") String id) {
+        return jinhuiCommunityService.merchantEvaluateExpurgateData(id);
+    }
+
+
+    @ApiOperation(value = "办事指南列表-按分类查询", response = ComActWorkGuideAppletsVO.class)
+    @PostMapping("wx/list")
+    public R listWorkGuide(@RequestBody PageActWorkGuideDTO pageActWorkGuideDTO) {
+        return jinhuiCommunityService.listWorkGuide(pageActWorkGuideDTO);
+    }
+
+
+    @ApiOperation(value = "办事指南_分页", response = ComActWorkGuideVO.class)
+    @PostMapping("wx/pageworkguide")
+    public R detailWorkGuide(@RequestBody PageActWorkGuideDTO pageActWorkGuideDTO) {
+        return jinhuiCommunityService.pageWorkGuide(pageActWorkGuideDTO);
+    }
+
+
+    /************************************************************************************************
+     *
+     *
+     *                                金汇预约空间模块
+     *
+     *
+     **********************************************************************************************/
+    /**
+     * 金汇空间预约模块分页查询
+     *
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "金汇空间预约模块分页查询", response = JinhuiInterspaceVO.class)
+    @GetMapping("/interspaceGetList")
+    public R interspaceGetList(@RequestParam("pageNum") int pageNum,
+                               @RequestParam("pageSize") int pageSize,
+                               @RequestParam(value = "intendantType", required = false) String intendantType) {
+        return jinhuiCommunityService.interspaceGetList(pageNum, pageSize, intendantType);
+    }
+
+    /**
+     * 金汇空间预约模块单个详情
+     *
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "金汇空间详情", response = JinhuiInterspaceVO.class)
+    @GetMapping("/interspaceGetDetails")
+    public R interspaceGetDetails(@RequestParam("id") String id) {
+        return jinhuiCommunityService.interspaceGetDetails(id);
+    }
+
+
+    /**
+     * 空间预约分类分页查询
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "空间预约分类分页查询", response = JinhuiInterspaceTypeVO.class)
+    @GetMapping("/interspaceTypeGetList")
+    public R interspaceTypeGetList(@RequestParam("pageNum") int pageNum,
+                                   @RequestParam("pageSize") int pageSize)
+    {
+        return jinhuiCommunityService.interspaceTypeGetList(pageNum,pageSize);
+    }
+
+
+    /***************************************************************************************************************
+     *
+     *
+     *                                       空间预约申请
+     *
+     *
+     **************************************************************************************************************/
+    /**
+     * 空间预约申请分页查询
+     *
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "空间预约申请分页", response = JinhuiInterspaceApplyForVO.class)
+    @GetMapping("/applyFor/getList")
+    public R applyForGetList(@RequestParam("pageNum") int pageNum,
+                             @RequestParam("pageSize") int pageSize,
+                             @RequestParam(value = "intendantType", required = false) String intendantType,
+                             @RequestParam(value = "state", required = false) String state,
+                             @RequestParam(value = "interspaceTime",required = false) String interspaceTime,
+                             @RequestParam(value = "subscribeTimeFrame",required = false) String subscribeTimeFrame,
+                             @RequestParam(value = "interspaceId",required = false) String  interspaceId,
+                             @RequestParam(value = "userId",required = false) String userId) {
+        return jinhuiCommunityService.applyForGetList(pageNum, pageSize, intendantType,
+                state,interspaceTime,subscribeTimeFrame,interspaceId,userId);
+    }
+
+    /**
+     * 空间预约申请详情
+     *
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "空间预约申请详情", response = JinhuiInterspaceApplyForVO.class)
+    @GetMapping("/applyFor/getDetails")
+    public R applyForGetDetails(@RequestParam("id") String id)
+    {
+        return jinhuiCommunityService.applyForGetDetails(id);
+    }
+
+    /**
+     * 空间预约申请新增
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "空间预约申请新增")
+    @PostMapping("/applyFor/addData")
+    public R applyForAddData(@RequestBody JinhuiInterspaceApplyForVO item)
+    {
+        return jinhuiCommunityService.applyForAddData(item);
+    }
+
+    /**
+     * 空间预约申请编辑
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "空间预约申请编辑")
+    @PostMapping("/applyFor/editData")
+    public R applyForEditData(@RequestBody JinhuiInterspaceApplyForVO item)
+    {
+        return jinhuiCommunityService.applyForEditData(item);
+    }
+
+    /**
+     * 空间预约申请删除
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "空间预约申请删除")
+    @DeleteMapping("/applyFor/expurgateData")
+    public R applyForExpurgateData(@RequestParam("id") String id)
+    {
+        return jinhuiCommunityService.applyForExpurgateData(id);
+    }
+
+
+/******************************************************************************************************************
+ *
+ *
+ *                             金汇微心愿
+ *
+ *
+ ******************************************************************************************************************/
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "金汇微心愿列表", response = JinhuiMicroVolunteeringVO.class)
+    @GetMapping("/volunteering/getList")
+    public R volunteeringGetList(@RequestParam("pageNum") int pageNum,
+                                 @RequestParam("pageSize") int pageSize,
+                                 @RequestParam(value = "state", required = false)String state)
+    {
+        return jinhuiCommunityService.volunteeringGetList(pageNum,pageSize,getUserId()+"",state);
+    }
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "金汇微心愿详情", response = JinhuiMicroVolunteeringVO.class)
+    @GetMapping("/volunteering/getDetails")
+    public R volunteeringGetDetails(@RequestParam("id") String id)
+    {
+        return jinhuiCommunityService.volunteeringGetDetails(id);
+    }
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "金汇微心愿新增")
+    @PostMapping("/volunteering/addData")
+    public R volunteeringAddData(@RequestBody JinhuiMicroVolunteeringVO item)
+    {
+        item.setUserId(getUserId()+"");
+        return jinhuiCommunityService.volunteeringAddData(item);
+    }
+
+    /**
+     * 编辑
+     * @param item
+     * @return
+     */
+    @ApiOperation(value = "金汇微心愿编辑")
+    @PostMapping("/volunteering/editData")
+    public R volunteeringEditData(@RequestBody JinhuiMicroVolunteeringVO item)
+    {
+        return jinhuiCommunityService.volunteeringEditData(item);
+    }
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "金汇微心愿删除")
+    @DeleteMapping("/volunteering/expurgateData")
+    public R volunteeringExpurgateData(@RequestParam("id") String id)
+    {
+        return jinhuiCommunityService.volunteeringExpurgateData(id);
+    }
+
+
+    /**
+     * 分页查询
+     *
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "金汇微心愿分类列表", response = JinhuiMicroVolunteeringTypeVO.class)
+    @GetMapping("/micro/type/getList")
+    public R volunteeringTypeGetList(@RequestParam("pageNum") int pageNum,
+                                     @RequestParam("pageSize") int pageSize) {
+        return jinhuiCommunityService.volunteeringTypeGetList(pageNum, pageSize);
+    }
+
+    /*********************************************************************************************************
+     *
+     *
+     *            金汇商城商品
+     *
+     *
+     *********************************************************************************************************/
+    /**
+     * 分页查询
+     *
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "金汇商城商品列表表", response = JinhuiShoppingVO.class)
+    @GetMapping("/shoppingGetList")
+    public R shoppingGetList(@RequestParam("pageNum") int pageNum,
+                             @RequestParam("pageSize") int pageSize,
+                             @RequestParam(value = "goodName", required = false) String goodName,
+                             @RequestParam(value = "id", required = false) String id)
+    {
+        return jinhuiCommunityService.shoppingGetList(pageNum,pageSize,goodName,"1",id);
+    }
+
+
+    @ApiOperation(value = "金汇商城商品详情", response = JinhuiShoppingVO.class)
+    @GetMapping("/shoppingGetDetails")
+    public R shoppingGetDetails(@RequestParam("id") String id)
+    {
+        return jinhuiCommunityService.shoppingGetDetails(id,getCommunityId()+"");
+    }
+
+
+
+    /********************************************************************************************************
+     *
+     *
+     *                         金汇商城商品订单
+     *
+     *
+     ********************************************************************************************************/
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "订单列表", response = JinhuiShoppingOrderVO.class)
+    @GetMapping("/orderGetList")
+    public R orderGetList(@RequestParam("pageNum") int pageNum,
+                          @RequestParam("pageSize") int pageSize,
+                          @RequestParam(value = "goodsId", required = false)String goodsId,
+                          @RequestParam(value = "orderNumber", required = false)String orderNumber,
+                          @RequestParam(value = "goodName", required = false)String goodName,
+                          @RequestParam(value = "name", required = false)String name,
+                          @RequestParam(value = "cancelType", required = false)String cancelType)
+    {
+        return jinhuiCommunityService.orderGetList(pageNum,pageSize,getUserId()+"",
+                goodsId,orderNumber,goodName,name,cancelType);
+    }
+
+    /**
+     * 分页详情
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "订单详情", response = JinhuiShoppingOrderVO.class)
+    @GetMapping("/orderGetDetails")
+    public R orderGetDetails(@RequestParam("id") String id)
+    {
+        return jinhuiCommunityService.orderGetDetails(id);
+    }
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "订单新增")
+    @PostMapping("/orderAddData")
+    public R orderAddData(@RequestBody JinhuiShoppingOrderVO item)
+    {
+        return jinhuiCommunityService.orderAddData(item);
+    }
+
+    /**
+     * 取消
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "订单取消")
+    @GetMapping("/orderCancelOrder")
+    public R orderCancelOrder(@RequestParam("orderId") String orderId)
+    {
+        return jinhuiCommunityService.orderCancelOrder(orderId);
+    }
+
+
+    /**
+     * 删除
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "订单删除")
+    @DeleteMapping("/orderExpurgateData")
+    public R orderExpurgateData(@RequestParam("id") String id)
+    {
+        return jinhuiCommunityService.orderExpurgateData(id);
+    }
+
+
+    @ApiOperation(value = "订单核销")
+    @GetMapping("/orderCheck")
+    public R orderEditData(@RequestParam("id") String id)
+    {
+
+        if(StringUtils.isEmpty(id))
+        {
+            return R.fail("订单id不能为空");
+        }
+
+        JinhuiShoppingOrderVO vo=new JinhuiShoppingOrderVO();
+        vo.setId(id);
+        vo.setCancelType("1");
+        vo.setCancelTime(new Date());
+        return jinhuiCommunityService.orderEditData(vo);
+    }
+
+
+    /******************************************************************************************************
+     *
+     *                    金汇文章
+     *
+     *******************************************************************************************************/
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "金汇文章列表", response = JinhuiArticleManagementVO.class)
+    @GetMapping("/articleGetList")
+    public R articleGetList(@RequestParam("pageNum") int pageNum,
+                            @RequestParam("pageSize")  int pageSize)
+    {
+        return jinhuiCommunityService.articleGetList(pageNum,pageSize,"1","1");
+    }
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "金汇文章详情", response = JinhuiArticleManagementVO.class)
+    @GetMapping("/articleGetDetails")
+    public R articleGetDetails(@RequestParam("id") String id)
+    {
+        return jinhuiCommunityService.articleGetDetails(id);
+    }
+
+
+
+    /*************************************************************************************************************
+     *
+     *                   金汇体验活动
+     *
+     ***************************************************************************************************************/
+    /**
+     * 分页查询
+     *
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "体验活动列表", response = JinhuiExperienceActivityVO.class)
+    @GetMapping("/experienceGetList")
+    public R experienceGetList(@RequestParam("pageNum") int pageNum,
+                               @RequestParam("pageSize")  int pageSize,
+                               @RequestParam(value = "activityName", required = false) String activityName,
+                               @RequestParam(value = "activityType", required = false) String activityType,
+                               @RequestParam(value = "starTime", required = false) Date starTime,
+                               @RequestParam(value = "endTime", required = false) Date endTime)
+    {
+        return jinhuiCommunityService.experienceGetList(pageNum,pageSize,activityName,activityType,starTime,endTime);
+    }
+
+    /**
+     * 单个详情
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "体验活动单个详情", response = JinhuiExperienceActivityVO.class)
+    @GetMapping("/experienceGetDetails")
+    public R experienceGetDetails(@RequestParam("id") String id)
+    {
+        return jinhuiCommunityService.experienceGetDetails(id,getUserId()+"");
+    }
+
+
+
+
+    /*******************************************************************************************************
+     *
+     *                           金汇报名体验
+     *
+     *******************************************************************************************************/
+    /**
+     * 分页查询
+     *
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "金汇报名体验列表", response = JinhuiApplyExperienceVO.class)
+    @GetMapping("/applyExperienceGetList")
+    public R applyExperienceGetList(@RequestParam("pageNum") int pageNum,
+                                    @RequestParam("pageSize") int pageSize,
+                                    @RequestParam(value = "isFeedback", required = false) String isFeedback,
+                                    @RequestParam(value = "activityId", required = false) String activityId)
+    {
+        return jinhuiCommunityService.applyExperienceGetList(pageNum,pageSize,getUserId()+"",isFeedback,activityId);
+    }
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "金汇报名体验详情", response = JinhuiApplyExperienceVO.class)
+    @GetMapping("/applyExperienceGetDetails")
+    public R applyExperienceGetDetails(@RequestParam("id") String id)
+    {
+        return jinhuiCommunityService.applyExperienceGetDetails(id,null,null);
+    }
+
+    /**
+     * 新增
+     *
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "金汇报名体验新增")
+    @PostMapping("/applyExperienceAddData")
+    public R applyExperienceAddData(@RequestBody JinhuiApplyExperienceVO item)
+    {
+        item.setUserId(getUserId()+"");
+        return jinhuiCommunityService.applyExperienceAddData(item);
+    }
+
+
+    /**
+     * 填写反馈接口
+     * @return
+     */
+    @ApiOperation(value = "金汇报名体验填写反馈接口")
+    @GetMapping("/applyExperienceFilIn")
+    public R filIn(@RequestParam("activityId") String activityId,
+                   @RequestParam("content") String content)
+    {
+        return jinhuiCommunityService.filIn(getUserId()+"",activityId,content);
+    }
+
+
+    /******************************************************************************************************
+     *
+     *                    金汇家园
+     *
+     *******************************************************************************************************/
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "金汇家园列表", response = JinhuiArticleManagementVO.class)
+    @GetMapping("/homeGetList")
+    public R homeGetList(@RequestParam("pageNum") int pageNum,
+                         @RequestParam("pageSize")  int pageSize)
+    {
+        return jinhuiCommunityService.articleGetList(pageNum,pageSize,null,"2");
+    }
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "金汇家园详情", response = JinhuiArticleManagementVO.class)
+    @GetMapping("/homeGetDetails")
+    public R homeGetDetails(@RequestParam("id") String id)
+    {
+        return jinhuiCommunityService.articleGetDetails(id);
+    }
+
+
+    /************************************************************************************************************
+     *
+     *
+     *                         用户提交办理 /JinhuiWorkGuide/
+     *
+     *
+     *******************************************************************************************************/
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "我的提交办事指南列表",response = JinhuiQuestnaireUserAnswerVO.class)
+    @GetMapping("/answer/getList")
+    public R answerGetList(@RequestParam("pageNum") int pageNum,
+                           @RequestParam("pageSize") int pageSize,
+                           @RequestParam(value = "transactType", required = false) String transactType)
+    {
+        return jinhuiCommunityService.answerGetList(pageNum,pageSize,getUserId()+"",transactType);
+    }
+
+    /**
+     * 获取详情
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "我的提交办事指南详情",response = JinhuiQuestnaireUserAnswerVO.class)
+    @GetMapping("/answer/getDetails")
+    public R answerGetDetails(@RequestParam("id") String id)
+    {
+        return jinhuiCommunityService.answerGetDetails(id);
+    }
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "我的提交办事指南申请办理")
+    @PostMapping("/answer/addData")
+    public R answerAddData(@RequestBody JinhuiQuestnaireUserAnswerVO item)
+    {
+        item.setUserId(getUserId()+"");
+        item.setTransactType("0");
+        return jinhuiCommunityService.answerAddData(item);
+    }
+
+    /**
+     * 编辑
+     * @param item
+     * @return
+     */
+    @ApiOperation(value = "我的提交办事指南申请编辑")
+    @PostMapping("/answer/editData")
+    public R answerEditData(@RequestBody JinhuiQuestnaireUserAnswerVO item)
+    {
+        return jinhuiCommunityService.answerEditData(item);
+    }
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "我的提交办事指南申请删除")
+    @DeleteMapping("/answer/expurgateData")
+    public R answerExpurgateData(@RequestParam("id") String id)
+    {
+        return jinhuiCommunityService.answerExpurgateData(id);
+    }
+
+
+    /****************************************************************************************************************
+     *
+     *
+     *                                  金汇慈善公益
+     *
+     *
+     ******************************************************************************************************************/
+    /**
+     * 分页查询
+     *
+     * @param
+     * @return
+     */
+
+    @ApiOperation(value = "金汇慈善公益列表",response = JinhuiCharityVO.class)
+    @GetMapping("/getCharityList")
+    public R getCharityList(@RequestParam("pageNum") int pageNum,
+                            @RequestParam("pageSize") int pageSize,
+                            @RequestParam(value = "title", required = false) String title,
+                            @RequestParam(value = "label", required = false) String label,
+                            @RequestParam(value = "state", required = false) String state)
+    {
+        return jinhuiCommunityService.getCharityList(pageNum,pageSize,title,label,state);
+    }
+
+
+    /**
+     * 获取详情
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "金汇慈善公益详情",response = JinhuiCharityVO.class)
+    @GetMapping("/getCharityDetails")
+    public R getCharityDetails(@RequestParam("id") String id)
+    {
+        return jinhuiCommunityService.getCharityDetails(id);
+    }
+
+
+    /******************************************************************************************************************
+     *
+     *                                  手环处理
+     *
+     *****************************************************************************************************************/
+
+    @Resource
+    private CommunityBraceletService communityBraceletService;
+    /**
+     * 微信处理接口
+     * @param braceletEarlyWarningDO
+     * @return
+     */
+    @PostMapping("/WXdispose")
+    public R  WXdispose(@RequestBody BraceletEarlyWarningDO braceletEarlyWarningDO)
+    {
+        if(com.panzhihua.common.utlis.StringUtils.isEmpty(braceletEarlyWarningDO.getDisposeText()))
+        {
+            return R.fail("处理内容不能为空");
+        }
+        braceletEarlyWarningDO.setDisposeType("2");
+        return communityBraceletService.WXdispose(braceletEarlyWarningDO);
+    }
+
+    /**
+     * 微信我的预警数据
+     * @return
+     */
+    @GetMapping("/braceletApi/getEarlyWarningList")
+    public R getList(@RequestParam("pageNum") Integer pageNum,
+                     @RequestParam("pageSize") Integer pageSize,
+                     @RequestParam(value = "equipmentNumber",required = false)  String equipmentNumber,
+                     @RequestParam(value = "type",required = false)  String type,
+                     @RequestParam(value = "userName",required = false)  String userName,
+                     @RequestParam(value = "phone",required = false)  String phone)
+    {
+        return communityBraceletService.getList(pageNum,pageSize,getCommunityId()+"",equipmentNumber,
+                getUserId()+"",type,userName,phone);
+    }
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/LoginApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/LoginApi.java
new file mode 100644
index 0000000..085ef2b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/LoginApi.java
@@ -0,0 +1,376 @@
+package com.panzhihua.applets.api;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.utlis.RSAUtils;
+import org.springframework.util.ObjectUtils;
+import org.springframework.validation.annotation.Validated;
+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.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.applets.config.WxMaConfiguration;
+import com.panzhihua.applets.model.vos.LoginRequest;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.exceptions.UnAuthenticationException;
+import com.panzhihua.common.model.vos.LoginReturnVO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActVO;
+import com.panzhihua.common.model.vos.community.ComMngStructAreaVO;
+import com.panzhihua.common.model.vos.user.SysUserAgreementVO;
+import com.panzhihua.common.model.vos.user.UuLoginVO;
+import com.panzhihua.common.service.auth.TokenService;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.validated.PutGroup;
+
+import cn.binarywang.wx.miniapp.api.WxMaQrcodeService;
+import cn.binarywang.wx.miniapp.api.WxMaService;
+import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
+import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
+import cn.binarywang.wx.miniapp.bean.WxMaUserInfo;
+import cn.hutool.core.codec.Base64;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import me.chanjar.weixin.common.error.WxErrorException;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 登录
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-19 16:35
+ **/
+@Slf4j
+@Api(tags = {"登录模块"})
+@RestController("/")
+public class LoginApi extends BaseController {
+    @Resource
+    private UserService userService;
+    @Resource
+    private WxMaConfiguration wxMaConfiguration;
+    @Resource
+    private TokenService tokenService;
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "登录", response = LoginReturnVO.class)
+    @PostMapping("login")
+    public R login(@RequestBody LoginRequest loginRequest) {
+        String code = loginRequest.getCode();
+        if (ObjectUtils.isEmpty(code)) {
+            return R.fail("缺少登录参数");
+        }
+        log.info(code);
+        WxMaService maService = wxMaConfiguration.getMaService(loginRequest.getAppid());
+        WxMaJscode2SessionResult sessionInfo = null;
+        try {
+            sessionInfo = maService.getUserService().getSessionInfo(code);
+        } catch (Exception e) {
+            log.error("微信登录失败【{}】", e.getMessage());
+            if (code.equals("22")) {
+                sessionInfo = new WxMaJscode2SessionResult();
+                sessionInfo.setOpenid("88888888");
+                sessionInfo.setSessionKey("9999999");
+            } else {
+                return R.fail("微信登录失败");
+            }
+        }
+        log.info("微信登录成功【{}】", JSONObject.toJSONString(sessionInfo));
+        log.info("loginRequest参数【{}】", JSONObject.toJSONString(loginRequest));
+        String openid = sessionInfo.getOpenid();
+        String sessionKey = sessionInfo.getSessionKey();
+        String unionid = sessionInfo.getUnionid();
+        if (ObjectUtils.isEmpty(unionid)) {
+            unionid = "无";
+        }
+        userService.addOrUpdate(openid, sessionKey, unionid,this.getAppId());
+        return tokenService.loginApplets(openid,this.getAppId());
+    }
+    @PostMapping("/loginTest")
+    public R loginTest(@RequestBody LoginRequest loginRequest){
+        return tokenService.loginApplets(loginRequest.getCode(),this.getAppId());
+    }
+
+    @ApiOperation(value = "H5登录", response = LoginReturnVO.class)
+    @PostMapping("loginH5")
+    public R loginH5(@RequestBody LoginRequest loginRequest) {
+        String code = loginRequest.getCode();
+        if (ObjectUtils.isEmpty(code)) {
+            return R.fail("缺少登录参数");
+        }
+        log.info(code);
+        WxMaService maService = wxMaConfiguration.getMaH5Service();
+        WxMaJscode2SessionResult sessionInfo = null;
+        try {
+            sessionInfo = maService.getUserService().getSessionInfo(code);
+        } catch (Exception e) {
+            log.error("微信登录失败【{}】", e.getMessage());
+            if (code.equals("22")) {
+                sessionInfo = new WxMaJscode2SessionResult();
+                sessionInfo.setOpenid("88888888");
+                sessionInfo.setSessionKey("9999999");
+            } else {
+                return R.fail("微信登录失败");
+            }
+        }
+        log.info("微信登录成功【{}】", JSONObject.toJSONString(sessionInfo));
+        log.info("loginRequest参数【{}】", JSONObject.toJSONString(loginRequest));
+        // 解密用户信息
+//        WxMaUserInfo wxUserInfo = maService.getUserService().getUserInfo(sessionInfo.getSessionKey(),
+//                loginRequest.getEncryptedData(), loginRequest.getIv());
+//        log.info("wxUserInfo信息【{}】", JSONObject.toJSONString(wxUserInfo));
+//        if (null == wxUserInfo) {
+//            return R.fail("获取用户信息失败");
+//        }
+//        String unionId = wxUserInfo.getUnionId();
+        String unionId = sessionInfo.getUnionid();
+        //通过unionId去匹配user
+        R r1 = userService.getUserInfoByUnionId(unionId);
+        if (R.isOk(r1)) {
+            LoginUserInfoVO loginUserInfoVO = JSONObject.parseObject(JSONObject.toJSONString(r1.getData()), LoginUserInfoVO.class);
+            return tokenService.loginApplets(loginUserInfoVO.getOpenid(),this.getAppId());
+        }
+        return r1;
+    }
+
+    @ApiOperation(value = "仁和区登录", response = LoginReturnVO.class)
+    @PostMapping("/renHe/login")
+    public R renHeLogin(@RequestBody LoginRequest loginRequest) {
+        String code = loginRequest.getCode();
+        if (ObjectUtils.isEmpty(code)) {
+            return R.fail("缺少登录参数");
+        }
+        log.info(code);
+        WxMaService maService = wxMaConfiguration.getMaRhService();
+        WxMaJscode2SessionResult sessionInfo = null;
+        try {
+            sessionInfo = maService.getUserService().getSessionInfo(code);
+        } catch (Exception e) {
+            log.error("微信登录失败【{}】", e.getMessage());
+            if (code.equals("22")) {
+                sessionInfo = new WxMaJscode2SessionResult();
+                sessionInfo.setOpenid("88888888");
+                sessionInfo.setSessionKey("9999999");
+            } else {
+                return R.fail("微信登录失败");
+            }
+        }
+        log.info("微信登录成功【{}】", JSONObject.toJSONString(sessionInfo));
+        log.info("loginRequest参数【{}】", JSONObject.toJSONString(loginRequest));
+        String openid = sessionInfo.getOpenid();
+        String sessionKey = sessionInfo.getSessionKey();
+        String unionid = sessionInfo.getUnionid();
+        if (ObjectUtils.isEmpty(unionid)) {
+            unionid = "无";
+        }
+        userService.addOrUpdate(openid, sessionKey, unionid,this.getAppId());
+        return tokenService.loginApplets(openid,this.getAppId());
+    }
+
+    @ApiOperation(value = "维护用户基本信息(昵称、性别、头像)")
+    @PostMapping("updateUserWeiXinInfo")
+    public R updateUserWeiXinInfo(@RequestBody LoginRequest loginRequest) {
+        Long userId = this.getUserId();
+        if (userId == null) {
+            return R.fail(401, "请先登录");
+        }
+        boolean empty2 = ObjectUtils.isEmpty(userId);
+        if (empty2) {
+            throw new UnAuthenticationException();
+        }
+        WxMaUserInfo wxUserInfo = loginRequest.getUserInfo();
+        if (null == wxUserInfo) {
+            return R.fail("缺少基本信息参数");
+        }
+        String avatarUrl = wxUserInfo.getAvatarUrl();
+        String gender = wxUserInfo.getGender();
+        String nickName = wxUserInfo.getNickName();
+        return userService.updateUserWeiXinInfo(userId, nickName, Integer.parseInt(gender), avatarUrl);
+    }
+
+    @ApiOperation(value = "维护微信用户手机号")
+    @PostMapping("updateUserWeiXinPhone")
+    public R updateUserWeiXinPhone(@RequestBody LoginRequest loginRequest) {
+        String encryptedData = loginRequest.getEncryptedData();
+        String iv = loginRequest.getIv();
+        boolean empty = ObjectUtils.isEmpty(iv);
+        boolean empty1 = ObjectUtils.isEmpty(encryptedData);
+        if (empty || empty1) {
+            return R.fail("微信用户参数不全");
+        }
+        WxMaService maService = wxMaConfiguration.getMaService(this.getAppId());
+        Long userId = this.getUserId();
+        R<LoginUserInfoVO> r = userService.getUserInfoByUserId(userId + "");
+        LoginUserInfoVO loginUserInfoVO = r.getData();
+        WxMaPhoneNumberInfo wxMaPhoneNumberInfo =
+            maService.getUserService().getPhoneNoInfo(loginUserInfoVO.getSessionKey(), encryptedData, iv);
+        if (ObjectUtils.isEmpty(wxMaPhoneNumberInfo) || ObjectUtils.isEmpty(wxMaPhoneNumberInfo.getPhoneNumber())) {
+            return R.fail("微信解析手机号失败");
+        }
+        String purePhoneNumber = wxMaPhoneNumberInfo.getPurePhoneNumber();
+        return userService.updateUserWeiXinPhone(userId, purePhoneNumber);
+    }
+
+    @ApiOperation(value = "维护微信用户手机号")
+    @PostMapping("updateUserWeiXinPhone2")
+    public R updateUserWeiXinPhone2(@RequestBody LoginRequest loginRequest) {
+        String code = loginRequest.getCode();
+        if (ObjectUtils.isEmpty(code)) {
+            return R.fail("缺少登录参数");
+        }
+        log.info(code);
+        WxMaService maService = wxMaConfiguration.getMaService(this.getAppId());
+        WxMaJscode2SessionResult sessionInfo = null;
+        try {
+            sessionInfo = maService.getUserService().getSessionInfo(code);
+        } catch (Exception e) {
+            log.error("微信登录失败【{}】", e.getMessage());
+            if (code.equals("22")) {
+                sessionInfo = new WxMaJscode2SessionResult();
+                sessionInfo.setOpenid("88888888");
+                sessionInfo.setSessionKey("9999999");
+            } else {
+                return R.fail("微信登录失败");
+            }
+        }
+        log.info("微信登录成功【{}】", JSONObject.toJSONString(sessionInfo));
+
+        String encryptedData = loginRequest.getEncryptedData();
+        String iv = loginRequest.getIv();
+        boolean empty = ObjectUtils.isEmpty(iv);
+        boolean empty1 = ObjectUtils.isEmpty(encryptedData);
+        if (empty || empty1) {
+            return R.fail("微信用户参数不全");
+        }
+        // WxMaService maService = wxMaConfiguration.getMaService();
+        Long userId = this.getUserId();
+        // R<LoginUserInfoVO> r = userService.getUserInfoByUserId(userId + "");
+        // LoginUserInfoVO loginUserInfoVO = r.getData();
+        WxMaPhoneNumberInfo wxMaPhoneNumberInfo =
+            maService.getUserService().getPhoneNoInfo(sessionInfo.getSessionKey(), encryptedData, iv);
+        if (ObjectUtils.isEmpty(wxMaPhoneNumberInfo) || ObjectUtils.isEmpty(wxMaPhoneNumberInfo.getPhoneNumber())) {
+            return R.fail("微信解析手机号失败");
+        }
+        String purePhoneNumber = wxMaPhoneNumberInfo.getPurePhoneNumber();
+        return userService.updateUserWeiXinPhone(userId, purePhoneNumber);
+    }
+
+    @ApiOperation(value = "用户登出")
+    @PostMapping("logout")
+    public R updateUserWeiXinPhone() {
+        String token = this.getToken();
+        boolean empty2 = ObjectUtils.isEmpty(token);
+        if (empty2) {
+            return R.ok();
+        }
+        return tokenService.logout(token);
+    }
+
+    @ApiOperation(value = "刷新token", response = LoginReturnVO.class)
+    @GetMapping("refreshToken")
+    @ApiImplicitParam(name = "refreshToken", value = "登录返回的刷新token")
+    public R refreshToken(@RequestParam("refreshToken") String refreshToken) {
+        return tokenService.refreshToken(refreshToken);
+    }
+
+    @ApiOperation(value = "刷新token", response = LoginReturnVO.class)
+    @PostMapping("getNewToken")
+    public R getNewToken(@RequestBody LoginUserInfoVO loginUserInfoVO)
+    {
+        return tokenService.getNewToken(loginUserInfoVO);
+    }
+
+    @ApiOperation(value = "查询社区")
+    @PostMapping("listcommunity")
+    public R listCommunity(@RequestBody ComActVO comActVO) {
+        return communityService.listCommunity(comActVO);
+    }
+
+    @ApiOperation(value = "查询小区", response = ComMngStructAreaVO.class)
+    @GetMapping("listarea")
+    @ApiImplicitParam(name = "communityId", value = "社区id", required = true)
+    public R listArea(@RequestParam("communityId") Long communityId) {
+        return communityService.listArea(communityId);
+    }
+
+    @ApiOperation(value = "用户绑定社区、小区")
+    @PutMapping("putusercommunityarea")
+    public R putUserCommunityArea(@RequestBody @Validated(PutGroup.class) LoginUserInfoVO loginUserInfoVO) {
+        Long userId = this.getUserId();
+        loginUserInfoVO.setUserId(userId);
+        return userService.putUserCommunityArea(loginUserInfoVO);
+    }
+
+    @ApiOperation(value = "用户协议和隐私政策", response = SysUserAgreementVO.class)
+    @GetMapping("useragreement")
+    public R userAgreement() {
+        int type = 1;
+        return userService.userAgreement(type,this.getAppId());
+    }
+    @ApiOperation("uu洗车登录")
+    @PostMapping("uuLogin")
+    public R uuLogin(@RequestBody UuLoginVO uuLoginVO){
+        return userService.uuLogin(uuLoginVO);
+    }
+
+    @ApiOperation("uu洗车获取小程序码")
+    @ApiImplicitParam(name = "couponId", value = "优惠券id", required = true)
+    @GetMapping("uu/getQRCode")
+    public R uuLogin(@RequestParam("couponId") String couponId) {
+        try {
+            //i小懒
+            WxMaQrcodeService wsCodeService = wxMaConfiguration.getMaService("wx98d62711dfbd8425").getQrcodeService();
+            byte[] bytes = wsCodeService.createWxaCodeUnlimitBytes("couponId=" + couponId,
+                "pages/user/getCoupon/getCoupon", true, "release", 30, true, null, false);
+            String res = String.format("data:image/png;base64,%s", Base64.encode(bytes));
+
+            //花城
+            WxMaQrcodeService uuCodeService = wxMaConfiguration.getMaService("wx118de8a734d269f0").getQrcodeService();
+            byte[] hcBytes = uuCodeService.createWxaCodeUnlimitBytes("couponId=" + couponId,
+                    "packageD/pages/user/getCoupon/getCoupon", true, "release", 30, true, null, false);
+            String hcRes = String.format("data:image/png;base64,%s", Base64.encode(hcBytes));
+
+            Map<String,String> retMap = new HashMap<>();
+            retMap.put("ixiaolan",res);
+            retMap.put("huacheng",hcRes);
+            return R.ok(retMap);
+        } catch (Exception e) {
+            log.error("generate QRCode failed:" + e.getMessage());
+            return R.fail("generate QRCode failed");
+        }
+    }
+
+    @ApiOperation("天府通办登录")
+    @PostMapping("tfLogin")
+    public R tfLogin(@RequestBody UuLoginVO uuLoginVO){
+        try {
+            log.info("天府通办登录【{}】", JSONObject.toJSONString(uuLoginVO.getMobile()));
+            String  str=RSAUtils.decrypt(uuLoginVO.getMobile(), Constants.PRIVATE_KEY);
+            log.info("天府通办登录【{}】", JSONObject.toJSONString(str));
+            uuLoginVO.setMobile(str);
+            //测试是否能正常添加用户
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.fail();
+        }
+        userService.tfLogin(uuLoginVO);
+        R r=tokenService.tfLogin(uuLoginVO.getMobile(),"Huacheng@123","wx118de8a734d269f0");
+        return r;
+    }
+    @ApiOperation("用户授权")
+    @GetMapping("/accept")
+    public R accept(){
+        return userService.accept(this.getUserId());
+    }
+}
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
new file mode 100644
index 0000000..9a370ce
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/NeighborApi.java
@@ -0,0 +1,323 @@
+package com.panzhihua.applets.api;
+
+import cn.hutool.core.util.StrUtil;
+import com.panzhihua.applets.weixin.CheckService;
+import com.panzhihua.common.constants.Constants;
+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;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.neighbor.*;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.StringUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:49
+ * @describe 邻里圈模块API
+ */
+@Slf4j
+@RestController
+@RequestMapping("/neighbor/")
+@Api(tags = {"邻里圈服务"})
+public class NeighborApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private CheckService checkService;
+
+    @ApiOperation(value = "分页查询邻里圈列表", response = ComActNeighborCircleAppVO.class)
+    @PostMapping("pageApp")
+    public R pageNeighborByApp(@RequestBody ComActNeighborCircleAppDTO neighborCircleAppDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            neighborCircleAppDTO.setPhone(loginUserInfo.getPhone());
+            neighborCircleAppDTO.setUserId(loginUserInfo.getUserId());
+        }
+        return communityService.pageNeighborByApp(neighborCircleAppDTO);
+    }
+
+    @ApiOperation(value = "分页查询可关联清单列表", response = ComActNeighborCircleAppVO.class)
+    @PostMapping("pageRelationList")
+    public R pageRelationList(@RequestBody ComActNeighborCircleAppDTO neighborCircleAppDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            neighborCircleAppDTO.setPhone(loginUserInfo.getPhone());
+            neighborCircleAppDTO.setUserId(loginUserInfo.getUserId());
+            neighborCircleAppDTO.setCheckUnitId(loginUserInfo.getCheckUnitId());
+        }
+        return communityService.pageRelationList(neighborCircleAppDTO);
+    }
+
+    @ApiOperation(value = "用户发布邻里圈审核")
+    @PostMapping("addNeighborByApp")
+    public R addNeighborByApp(@RequestBody AddComActNeighborCircleAppDTO addNeighborCircleAppDTO) {
+        LoginUserInfoVO loginUser = this.getLoginUserInfo();
+        Long userId = loginUser.getUserId();
+        Long communityId = loginUser.getCommunityId();
+        if (userId == null) {
+            return R.fail("请重新登录");
+        }
+        if (!this.getAppId().equals("wx118de8a734d269f0")){
+            String releaseContent = addNeighborCircleAppDTO.getReleaseContent();
+            if (StrUtil.isNotBlank(releaseContent)) {
+                String result = checkService.checkMessageBy(releaseContent, this.getLoginUserInfo().getOpenid(), this.getAppId());
+                if (StrUtil.isNotBlank(result)) {
+                    return R.fail(501, "填写内容存在 " + result + " 违规信息");
+                }
+            }
+         /*   String releaseImages = addNeighborCircleAppDTO.getReleaseImages();
+            if (StrUtil.isNotBlank(releaseImages)) {
+                if (checkService.checkImageBy(releaseImages, this.getAppId())) {
+                    return R.fail(501, "上传图片存在违规信息");
+                }
+            }*/
+        }
+        addNeighborCircleAppDTO.setUserId(userId);
+        if (StringUtils.isNotEmpty(loginUser.getPhone())) {
+            addNeighborCircleAppDTO.setPhone(this.getLoginUserInfo().getPhone());
+        }
+        if (communityId != null) {
+            addNeighborCircleAppDTO.setCommunityId(communityId);
+        }
+
+        //查询社区自动审核是否开着
+
+        if (this.getAppId().equals("wx118de8a734d269f0")) {
+            //花城直接通过
+            addNeighborCircleAppDTO.setIsExamine(AddComActNeighborCircleAppDTO.isExamine.no);
+            addNeighborCircleAppDTO.setWxExamineResult(AddComActNeighborCircleAppDTO.isExamine.yes);
+
+        } else {
+            //西区
+            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 (StrUtil.isEmpty(checkService.checkMessageBy(msg, this.getLoginUserInfo().getOpenid(), this.getAppId()))) {
+                            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);
+    }
+
+    @ApiOperation(value = "查询邻里圈详情", response = ComActNeighborCircleDetailAppVO.class)
+    @PostMapping("detail")
+    public R neighborDetailByApp(@RequestBody ComActNeighborCircleDetailAppDTO neighborCircleAppDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            neighborCircleAppDTO.setUserId(loginUserInfo.getUserId());
+        }
+        // Long userId = this.getLoginUserInfo().getUserId();
+        // if(userId == null){
+        // return R.fail("请先登录");
+        // }
+        // neighborCircleAppDTO.setUserId(userId);
+        return communityService.neighborDetailByApp(neighborCircleAppDTO);
+    }
+
+    @ApiOperation(value = "分页查询用户邻里圈审核列表", response = ComActNeighborCircleAppVO.class)
+    @PostMapping("user/page")
+    public R neighborExamineByApp(@RequestBody ComActNeighborCircleAppDTO neighborCircleAppDTO) {
+        Long userId = this.getLoginUserInfo().getUserId();
+        if (userId == null) {
+            return R.fail("请先登录");
+        }
+        neighborCircleAppDTO.setUserId(userId);
+        return communityService.neighborExamineByApp(neighborCircleAppDTO);
+    }
+
+    @ApiOperation(value = "邻里圈点赞")
+    @PostMapping("fabulous")
+    public R neighborFabulousByApp(@RequestBody ComActNeighborFabulousAppDTO fabulousAppDTO) {
+        Long userId = this.getLoginUserInfo().getUserId();
+        if (userId == null) {
+            return R.fail("请先登录");
+        }
+        fabulousAppDTO.setUserId(userId);
+        return communityService.neighborFabulousByApp(fabulousAppDTO);
+    }
+
+    @ApiOperation(value = "邻里圈转发")
+    @PostMapping("forward")
+    public R neighborForwardByApp(@RequestBody ComActNeighborForwardAppDTO forwardAppDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            forwardAppDTO.setUserId(loginUserInfo.getUserId());
+        }
+        // Long userId = this.getLoginUserInfo().getUserId();
+        // if(userId == null){
+        // return R.fail("请先登录");
+        // }
+        // forwardAppDTO.setUserId(userId);
+        return communityService.neighborForwardByApp(forwardAppDTO);
+    }
+
+    @ApiOperation(value = "邻里圈评论")
+    @PostMapping("comment")
+    public R neighborCommentByApp(@RequestBody ComActNeighborCommentAppDTO commentAppDTO) {
+        Long userId = this.getLoginUserInfo().getUserId();
+        if (userId == null) {
+            return R.fail("请先登录");
+        }
+        String content = commentAppDTO.getContent();
+        if (StrUtil.isNotBlank(content)) {
+            String result = checkService.checkMessageBy(content, this.getLoginUserInfo().getOpenid(), this.getAppId());
+            if (StrUtil.isNotBlank(result)) {
+                return R.fail(501, "填写内容存在 " + result + " 违规信息");
+            }
+        }
+        commentAppDTO.setUserId(userId);
+        return communityService.neighborCommentByApp(commentAppDTO);
+    }
+
+    @ApiOperation(value = "邻里圈回复")
+    @PostMapping("reply")
+    public R neighborReplyByApp(@RequestBody ComActNeighborReplyAppDTO replyAppDTO) {
+        Long userId = this.getLoginUserInfo().getUserId();
+        if (userId == null) {
+            return R.fail("请先登录");
+        }
+        String content = replyAppDTO.getContent();
+        if (StrUtil.isNotBlank(content)) {
+            String result = checkService.checkMessageBy(content, this.getLoginUserInfo().getOpenid(), this.getAppId());
+            if (StrUtil.isNotBlank(result)) {
+                return R.fail(501, "填写内容存在 " + result + " 违规信息");
+            }
+        }
+        replyAppDTO.setUserId(userId);
+        return communityService.neighborReplyByApp(replyAppDTO);
+    }
+
+    @ApiOperation(value = "邻里圈取消点赞")
+    @PostMapping("cancel/fabulous")
+    public R neighborFabulousCancelByApp(@RequestBody ComActNeighborFabulousAppDTO fabulousAppDTO) {
+        Long userId = this.getLoginUserInfo().getUserId();
+        if (userId == null) {
+            return R.fail("请先登录");
+        }
+        fabulousAppDTO.setUserId(userId);
+        return communityService.neighborFabulousCancelByApp(fabulousAppDTO);
+    }
+
+    @ApiOperation(value = "邻里圈添加浏览记录")
+    @PostMapping("add/browse")
+    public R neighborAddBrowseByApp(@RequestBody ComActNeighborAddBrowseAppDTO addBrowseAppDTO) {
+        Long userId = this.getLoginUserInfo().getUserId();
+        if (userId == null) {
+            return R.fail("请先登录");
+        }
+        addBrowseAppDTO.setUserId(userId);
+        return communityService.neighborAddBrowseByApp(addBrowseAppDTO);
+    }
+
+    @ApiOperation(value = "分页查询评论下所有回复", response = ComActNeighborCommentReplyAppVO.class)
+    @PostMapping("comment/reply")
+    public R neighborCommentReplyByApp(@RequestBody ComActNeighborCommentReplyAppDTO commentReplyAppDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            commentReplyAppDTO.setUserId(loginUserInfo.getUserId());
+        }
+        // Long userId = this.getLoginUserInfo().getUserId();
+        // if(userId == null){
+        // return R.fail("请先登录");
+        // }
+        // commentReplyAppDTO.setUserId(userId);
+        return communityService.neighborCommentReplyByApp(commentReplyAppDTO);
+    }
+
+    @ApiOperation(value = "查询社区邻里圈话题列表", response = ComActNeighborCircleTopicAppVO.class)
+    @GetMapping("topic/list")
+    public R getNeighborTopicByApp(
+            @RequestParam(value = "name", defaultValue = "", required = false) String name) {
+        return communityService.getNeighborTopicByApp(name);
+    }
+
+    @GetMapping("topic/list/new")
+    public R getNeighborTopicByAppNew(@RequestParam(value = "name", defaultValue = "", required = false) String name){
+        return communityService.getNeighborTopicByAppNew(name);
+    }
+
+    @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);
+    }
+
+    /**
+     * 分页查询邻里圈列表
+     *
+     * @param neighborCircleAppDTO 请求参数
+     * @return 邻里圈列表
+     */
+    @ApiOperation(value = "新版接单问题", response = ComActNeighborCircleAppVO.class)
+    @PostMapping("selectSolve")
+    public R selectSolve(@RequestBody ComActNeighborCircleAppDTO neighborCircleAppDTO) {
+        neighborCircleAppDTO.setUserId(this.getUserId());
+        return communityService.selectSolve(neighborCircleAppDTO);
+    }
+
+
+    /**
+     * 修改数据
+     *
+     * @param editNeighborCircleAdminVO
+     * @return
+     */
+    @ApiOperation(value = "接单 反馈", response = ComActNeighborCircleAppVO.class)
+    @PostMapping("update")
+    public R order(@RequestBody EditNeighborCircleAdminVO editNeighborCircleAdminVO) {
+        return this.communityService.order(editNeighborCircleAdminVO);
+    }
+
+    @ApiOperation(value = "服务统计", response = ServiceStaticsVO.class)
+    @PostMapping("/serviceStatic")
+    public R serviceStatic(@RequestBody ServiceStaticDTO serviceStaticDTO) {
+        return this.communityService.serviceStatic(serviceStaticDTO);
+    }
+
+    /**
+     * 求助我的问题数量统计
+     *
+     * @param type
+     * @param phone
+     * @return
+     */
+    @ApiOperation(value = "求助我的问题数量统计")
+    @GetMapping("/selectCount")
+    public R selectCount(@RequestParam("type") Integer type, @RequestParam(value = "phone", required = false) String phone, @RequestParam("communityId") Long communityId) {
+        return this.communityService.selectCount(type, phone, communityId);
+    }
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/NeighborWestApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/NeighborWestApi.java
new file mode 100644
index 0000000..12620c7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/NeighborWestApi.java
@@ -0,0 +1,283 @@
+package com.panzhihua.applets.api;
+
+import cn.hutool.core.util.StrUtil;
+import com.panzhihua.applets.weixin.CheckService;
+import com.panzhihua.common.constants.Constants;
+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;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleAppVO;
+import com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleDetailAppVO;
+import com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleTopicAppVO;
+import com.panzhihua.common.model.vos.neighbor.ComActNeighborCommentReplyAppVO;
+import com.panzhihua.common.service.community.CommunityWestService;
+import com.panzhihua.common.utlis.StringUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:49
+ * @describe 邻里圈模块API
+ */
+@Slf4j
+@RestController
+@RequestMapping("/neighborWest/")
+@Api(tags = {"邻里圈服务"})
+public class NeighborWestApi extends BaseController {
+
+    @Resource
+    private CommunityWestService communityWestService;
+    @Resource
+    private CheckService checkService;
+
+    @ApiOperation(value = "分页查询邻里圈列表", response = ComActNeighborCircleAppVO.class)
+    @PostMapping("pageApp")
+    public R pageNeighborByApp(@RequestBody ComActNeighborCircleAppDTO neighborCircleAppDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            neighborCircleAppDTO.setCommunityId(loginUserInfo.getCommunityId());
+            neighborCircleAppDTO.setUserId(loginUserInfo.getUserId());
+        }
+        return communityWestService.pageNeighborByApp(neighborCircleAppDTO);
+    }
+
+    @ApiOperation(value = "用户发布邻里圈审核")
+    @PostMapping("addNeighborByApp")
+    public R addNeighborByApp(@RequestBody AddComActNeighborCircleAppDTO addNeighborCircleAppDTO) {
+        LoginUserInfoVO loginUser = this.getLoginUserInfo();
+        Long userId = loginUser.getUserId();
+        Long communityId = loginUser.getCommunityId();
+
+        if (userId == null) {
+            return R.fail("请重新登录");
+        }
+        addNeighborCircleAppDTO.setUserId(userId);
+        String openid = this.getLoginUserInfo().getOpenid();
+        String appId = this.getAppId();
+        // 微信内容审核
+        String releaseContent = addNeighborCircleAppDTO.getReleaseContent();
+        if (StrUtil.isNotBlank(releaseContent)) {
+            String result = checkService.checkMessageBy(releaseContent, openid, appId);
+            if (StrUtil.isNotBlank(result)) {
+                return R.fail(501, "填写内容存在 " + result + " 违规信息");
+            }
+        }
+
+        //微信图片审核
+        String releaseImages = addNeighborCircleAppDTO.getReleaseImages();
+        if (StrUtil.isNotBlank(releaseImages)) {
+            if (!checkService.checkImageBy(releaseImages, appId)) {
+                return R.fail(501, "上传图片存在违规信息");
+            }
+        }
+
+        if (StringUtils.isNotEmpty(loginUser.getPhone())) {
+            addNeighborCircleAppDTO.setPhone(this.getLoginUserInfo().getPhone());
+        }
+        if (communityId != null) {
+            addNeighborCircleAppDTO.setCommunityId(communityId);
+        }
+
+        if(this.getAppId().equals("wx118de8a734d269f0")){
+            //花城直接通过
+            addNeighborCircleAppDTO.setIsExamine(AddComActNeighborCircleAppDTO.isExamine.no);
+            addNeighborCircleAppDTO.setWxExamineResult(AddComActNeighborCircleAppDTO.isExamine.yes);
+        }else {
+            //查询社区自动审核是否开着
+            String key = NeighborCircleConstants.NEIGHBOR_CIRCLE_AUTO_EXAMINE;
+            R isOk = communityWestService.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 (StrUtil.isEmpty(checkService.checkMessageBy(msg,this.getLoginUserInfo().getOpenid(),this.getAppId()))) {
+                            addNeighborCircleAppDTO.setWxExamineResult(AddComActNeighborCircleAppDTO.isExamine.yes);
+                        } else {
+                            addNeighborCircleAppDTO.setWxExamineResult(AddComActNeighborCircleAppDTO.isExamine.no);
+                        }
+                    } else {
+                        addNeighborCircleAppDTO.setIsExamine(AddComActNeighborCircleAppDTO.isExamine.yes);
+                    }
+                } else {
+                    communityWestService.addSysConfValue(key + communityId, communityId, "社区邻里圈自动审核参数", "1");
+                    addNeighborCircleAppDTO.setIsExamine(AddComActNeighborCircleAppDTO.isExamine.no);
+                }
+            } else {
+                addNeighborCircleAppDTO.setIsExamine(AddComActNeighborCircleAppDTO.isExamine.yes);
+            }
+        }
+
+
+        return communityWestService.addNeighborByApp(addNeighborCircleAppDTO);
+    }
+
+    @ApiOperation(value = "查询邻里圈详情", response = ComActNeighborCircleDetailAppVO.class)
+    @PostMapping("detail")
+    public R neighborDetailByApp(@RequestBody ComActNeighborCircleDetailAppDTO neighborCircleAppDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            neighborCircleAppDTO.setUserId(loginUserInfo.getUserId());
+        }
+        // Long userId = this.getLoginUserInfo().getUserId();
+        // if(userId == null){
+        // return R.fail("请先登录");
+        // }
+        // neighborCircleAppDTO.setUserId(userId);
+        return communityWestService.neighborDetailByApp(neighborCircleAppDTO);
+    }
+
+    @ApiOperation(value = "分页查询用户邻里圈审核列表", response = ComActNeighborCircleAppVO.class)
+    @PostMapping("user/page")
+    public R neighborExamineByApp(@RequestBody ComActNeighborCircleAppDTO neighborCircleAppDTO) {
+        Long userId = this.getLoginUserInfo().getUserId();
+        if (userId == null) {
+            return R.fail("请先登录");
+        }
+        neighborCircleAppDTO.setUserId(userId);
+        return communityWestService.neighborExamineByApp(neighborCircleAppDTO);
+    }
+
+    @ApiOperation(value = "邻里圈点赞")
+    @PostMapping("fabulous")
+    public R neighborFabulousByApp(@RequestBody ComActNeighborFabulousAppDTO fabulousAppDTO) {
+        Long userId = this.getLoginUserInfo().getUserId();
+        if (userId == null) {
+            return R.fail("请先登录");
+        }
+        fabulousAppDTO.setUserId(userId);
+        return communityWestService.neighborFabulousByApp(fabulousAppDTO);
+    }
+
+    @ApiOperation(value = "邻里圈转发")
+    @PostMapping("forward")
+    public R neighborForwardByApp(@RequestBody ComActNeighborForwardAppDTO forwardAppDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            forwardAppDTO.setUserId(loginUserInfo.getUserId());
+        }
+        // Long userId = this.getLoginUserInfo().getUserId();
+        // if(userId == null){
+        // return R.fail("请先登录");
+        // }
+        // forwardAppDTO.setUserId(userId);
+        return communityWestService.neighborForwardByApp(forwardAppDTO);
+    }
+
+    @ApiOperation(value = "邻里圈评论")
+    @PostMapping("comment")
+    public R neighborCommentByApp(@RequestBody ComActNeighborCommentAppDTO commentAppDTO) {
+        Long userId = this.getLoginUserInfo().getUserId();
+        if (userId == null) {
+            return R.fail("请先登录");
+        }
+        commentAppDTO.setUserId(userId);
+        String openid = this.getLoginUserInfo().getOpenid();
+        String appId = this.getAppId();
+        // 微信内容审核
+        String content = commentAppDTO.getContent();
+        if (StrUtil.isNotBlank(content)) {
+            String result = checkService.checkMessageBy(content, openid, appId);
+            if (StrUtil.isNotBlank(result)) {
+                return R.fail(501, "填写内容存在 " + result + " 违规信息");
+            }
+        }
+        return communityWestService.neighborCommentByApp(commentAppDTO);
+    }
+
+    @ApiOperation(value = "邻里圈回复")
+    @PostMapping("reply")
+    public R neighborReplyByApp(@RequestBody ComActNeighborReplyAppDTO replyAppDTO) {
+        Long userId = this.getLoginUserInfo().getUserId();
+        if (userId == null) {
+            return R.fail("请先登录");
+        }
+        replyAppDTO.setUserId(userId);
+        return communityWestService.neighborReplyByApp(replyAppDTO);
+    }
+
+    @ApiOperation(value = "邻里圈取消点赞")
+    @PostMapping("cancel/fabulous")
+    public R neighborFabulousCancelByApp(@RequestBody ComActNeighborFabulousAppDTO fabulousAppDTO) {
+        Long userId = this.getLoginUserInfo().getUserId();
+        if (userId == null) {
+            return R.fail("请先登录");
+        }
+        fabulousAppDTO.setUserId(userId);
+        return communityWestService.neighborFabulousCancelByApp(fabulousAppDTO);
+    }
+
+    @ApiOperation(value = "邻里圈添加浏览记录")
+    @PostMapping("add/browse")
+    public R neighborAddBrowseByApp(@RequestBody ComActNeighborAddBrowseAppDTO addBrowseAppDTO) {
+        Long userId = this.getLoginUserInfo().getUserId();
+        if (userId == null) {
+            return R.fail("请先登录");
+        }
+        addBrowseAppDTO.setUserId(userId);
+        return communityWestService.neighborAddBrowseByApp(addBrowseAppDTO);
+    }
+
+    @ApiOperation(value = "分页查询评论下所有回复", response = ComActNeighborCommentReplyAppVO.class)
+    @PostMapping("comment/reply")
+    public R neighborCommentReplyByApp(@RequestBody ComActNeighborCommentReplyAppDTO commentReplyAppDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            commentReplyAppDTO.setUserId(loginUserInfo.getUserId());
+        }
+        // Long userId = this.getLoginUserInfo().getUserId();
+        // if(userId == null){
+        // return R.fail("请先登录");
+        // }
+        // commentReplyAppDTO.setUserId(userId);
+        return communityWestService.neighborCommentReplyByApp(commentReplyAppDTO);
+    }
+
+    @ApiOperation(value = "查询社区邻里圈话题列表", response = ComActNeighborCircleTopicAppVO.class)
+    @GetMapping("topic/list")
+    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();
+        }
+        if (isZero == null) {
+            isZero = 2;
+        }
+        return communityWestService.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 communityWestService.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 communityWestService.deleteNeighborByApp(circleTopicAppDTO);
+    }
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/NewStriveAppApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/NewStriveAppApi.java
new file mode 100644
index 0000000..8ad62eb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/NewStriveAppApi.java
@@ -0,0 +1,857 @@
+package com.panzhihua.applets.api;
+
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.partybuilding.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActMicroWishVO;
+import com.panzhihua.common.model.vos.community.building.IntegratingTaskVO;
+import com.panzhihua.common.model.vos.community.building.NewFightConvenientMerchantVO;
+import com.panzhihua.common.model.vos.community.building.NewFightShoppingOrderVO;
+import com.panzhihua.common.model.vos.community.building.NewFightShoppingVO;
+import com.panzhihua.common.model.vos.jinhui.JinhuiShoppingOrderVO;
+import com.panzhihua.common.model.vos.user.SysTemplateConfigVO;
+import com.panzhihua.common.model.vos.user.SysUserNoticeVO;
+import com.panzhihua.common.model.vos.user.SysUserVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.partybuilding.NewStriveForFeign;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.common.utlis.WxUtil;
+import com.panzhihua.common.utlis.WxXCXTempSend;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+@Slf4j
+@Api(tags = {"双挣双评新模块-小程序"})
+@RestController
+@RequestMapping("/StriveFor/")
+public class NewStriveAppApi  extends BaseController
+{
+
+    @Resource
+    private NewStriveForFeign newStriveForFeign;
+
+    @ApiOperation(value = "获取党员个人排名", response = UserRankDTO.class)
+    @GetMapping("/NewStriveFor/getUserRank")
+    public R getUserRank()
+    {
+        return newStriveForFeign.getUserRank(getUserId()+"");
+    }
+
+
+    @ApiOperation(value = "获取党员排名列表", response = UserRankDTO.class)
+    @GetMapping("/NewStriveFor/getUserRankList")
+    public R getUserRankList(@RequestParam("pageNum") int pageNum,
+                             @RequestParam("pageSize") int pageSize)
+    {
+        return newStriveForFeign.getUserRankList(pageNum,pageSize,getUserId()+"");
+    }
+
+
+    @ApiOperation(value = "获取累计积分")
+    @GetMapping("/getAllintegral")
+    public R getAllintegral(@RequestParam("type") String type,
+                            @RequestParam("userId") String userId)
+    {
+        return newStriveForFeign.getAllintegral(type,userId);
+    }
+
+
+    /*****************************************************************************************************************
+     *
+     *                                   任务需求清单
+     *
+     ******************************************************************************************************************/
+    @ApiOperation(value = "任务需求清单列表", response = NeedProblemInventoryDTO.class)
+    @GetMapping("/NeedProblem/getList")
+    public R getNeedProblemList(@RequestParam("pageNum") int pageNum,
+                                @RequestParam("pageSize") int pageSize,
+                                @RequestParam(value = "search", required = false)String search,
+                                @RequestParam(value = "classifyId", required = false)String classifyId,
+                                @RequestParam(value = "status", required = false)String status,
+                                @RequestParam(value = "kind", required = false)String kind,
+                                @RequestParam(value = "userId", required = false)String userId,
+                                @RequestParam(value = "communityId", required = false)String communityId,
+                                @RequestParam(value = "startTime", required = false) String startTime,
+                                @RequestParam(value = "endTime", required = false) String endTime)
+    {
+        Date start=null;
+        Date end=null;
+
+        try {
+            if(!StringUtils.isEmpty(startTime)) {
+                start = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(startTime);
+            }
+            if(!StringUtils.isEmpty(startTime)) {
+                end = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(endTime);
+            }
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return newStriveForFeign.getNeedProblemList(pageNum,pageSize,search,classifyId,status,kind,userId,getUserId()+"",communityId,"1",start,end);
+    }
+
+
+    @ApiOperation(value = "任务需求清单我认领的列表", response = NeedProblemInventoryDTO.class)
+    @GetMapping("/getMyJoinNeedProblemList")
+    public R getMyJoinNeedProblemList(@RequestParam("pageNum") int pageNum,
+                                      @RequestParam("pageSize") int pageSize,
+                                      @RequestParam(value = "search", required = false)String search,
+                                      @RequestParam(value = "status", required = false)String status,
+                                      @RequestParam(value = "kind", required = false)String kind,
+                                      @RequestParam(value = "isDisplay", required = false)String isDisplay,
+                                      @RequestParam(value = "startTime", required = false) String startTime,
+                                      @RequestParam(value = "endTime", required = false) String endTime)
+    {
+        Date start=null;
+        Date end=null;
+
+        try {
+            if(!StringUtils.isEmpty(startTime)) {
+                start = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(startTime);
+            }
+            if(!StringUtils.isEmpty(startTime)) {
+                end = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(endTime);
+            }
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+
+
+
+        return newStriveForFeign.getMyJoinNeedProblemList(pageNum,pageSize,search,status,kind,getUserId()+"",getUserId()+"",isDisplay,start,end);
+    }
+
+
+
+    @ApiOperation(value = "任务需求清单详情", response = NeedProblemInventoryDTO.class)
+    @GetMapping("/NeedProblem/getDetails")
+    public R getNeedProblemDetails(@RequestParam("id") String id)
+    {
+        return newStriveForFeign.getNeedProblemDetails(id,getUserId()+"");
+    }
+
+    @ApiOperation(value = "新增任务需求")
+    @PostMapping("/NeedProblem/addData")
+    public R addNeedProblemData(@RequestBody NeedProblemInventoryDTO item)
+    {
+        return newStriveForFeign.addNeedProblemData(item);
+    }
+
+    @ApiOperation(value = "编辑任务需求")
+    @PostMapping("/NeedProblem/editData")
+    public R editNeedProblemData(@RequestBody NeedProblemInventoryDTO item)
+    {
+        return newStriveForFeign.editNeedProblemData(item);
+    }
+
+    @ApiOperation(value = "删除任务需求")
+    @DeleteMapping("/NeedProblem/expurgateData")
+    public R expurgateNeedProblemData(@RequestParam("id") String id)
+    {
+        return newStriveForFeign.expurgateNeedProblemData(id);
+    }
+
+
+    /*******************************************************************************************************
+     *
+     *         任务需求报名
+     *
+     *******************************************************************************************************/
+    @ApiOperation(value = "任务报名列表", response = NeedProblemClaimDTO.class)
+    @GetMapping("/getNeedClaimList")
+    public R getNeedClaimList(@RequestParam(value = "taskId", required = false) String taskId,
+                              @RequestParam(value = "userId", required = false) String userId,
+                              @RequestParam(value = "unitId", required = false) String unitId)
+    {
+        return newStriveForFeign.getNeedClaimList(taskId,userId,unitId);
+    }
+
+    @ApiOperation(value = "任务报名详情", response = NeedProblemClaimDTO.class)
+    @GetMapping("/getNeedClaimDetails")
+    public R getNeedClaimDetails(@RequestParam(value = "id", required = false) String id,
+                                 @RequestParam(value = "taskId", required = false) String taskId,
+                                 @RequestParam(value = "userId", required = false) String userId)
+    {
+        return newStriveForFeign.getNeedClaimDetails(id,taskId,userId);
+    }
+
+    @ApiOperation(value = "任务报名")
+    @PostMapping("/addNeedClaimData")
+    public R addNeedClaimData(@RequestBody NeedProblemClaimDTO item)
+    {
+        return newStriveForFeign.addNeedClaimData(item);
+    }
+
+    @ApiOperation(value = "修改任务报名")
+    @PostMapping("/editNeedClaimData")
+    public R editNeedClaimData(@RequestBody NeedProblemClaimDTO item)
+    {
+        return newStriveForFeign.editNeedClaimData(item);
+    }
+
+    @ApiOperation(value = "取消报名")
+    @DeleteMapping("/expurgateNeedClaimData")
+    public R expurgateNeedClaimData(@RequestParam(value = "id", required = false) String id,
+                                    @RequestParam(value = "taskId", required = false) String taskId,
+                                    @RequestParam(value = "userId", required = false) String userId)
+    {
+        return newStriveForFeign.expurgateNeedClaimData(id,taskId,userId);
+    }
+
+
+    @ApiOperation(value = "打卡")
+    @GetMapping("/needClaimSignIn")
+    public R needClaimSignIn(@RequestParam("taskId") String taskId,
+                             @RequestParam("userId") String userId,
+                             @RequestParam("type") String type)
+    {
+
+        return newStriveForFeign.needClaimSignIn(taskId,userId,type);
+    }
+
+    /***************************************************************************************************************
+     *
+     *                 代单位接受
+     *
+     *************************************************************************************************************/
+    @ApiOperation(value = "代单位任务报名列表", response = NeedProblemUnitTaskDTO.class)
+    @GetMapping("/getNeedTaskList")
+    public R getNeedTaskList(@RequestParam("pageNum") int pageNum,
+                             @RequestParam("pageSize") int pageSize,
+                             @RequestParam(value = "unitId", required = false) String unitId,
+                             @RequestParam(value = "kind", required = false) String kind,
+                             @RequestParam(value = "status", required = false) String status)
+    {
+        return newStriveForFeign.getNeedTaskList(pageNum,pageSize,unitId,kind,status);
+    }
+
+    @ApiOperation(value = "代单位任务报名详情", response = NeedProblemUnitTaskDTO.class)
+    @GetMapping("/getNeedTaskDetails")
+    public R  getNeedTaskDetails(@RequestParam("id") String id)
+    {
+        return newStriveForFeign.getNeedTaskDetails(id);
+    }
+
+    @ApiOperation(value = "代单位任务添加")
+    @PostMapping("/addNeedTaskData")
+    public R  addNeedTaskData(@RequestBody NeedProblemUnitTaskDTO item)
+    {
+        return newStriveForFeign.addNeedTaskData(item);
+    }
+
+    @ApiOperation(value = "代单位任务修改")
+    @PostMapping("/editNeedTaskData")
+    public R  editNeedTaskData(@RequestBody NeedProblemUnitTaskDTO item)
+    {
+        return newStriveForFeign.editNeedTaskData(item);
+    }
+
+    @ApiOperation(value = "代单位任务删除")
+    @DeleteMapping("/expurgateNeedTaskData")
+    public R  expurgateNeedTaskData(@RequestParam("id") String id)
+    {
+        return newStriveForFeign.expurgateNeedTaskData(id);
+    }
+
+
+    /*******************************************************************************************************************
+     *
+     *                              新双争双评社区共建
+     *
+     ****************************************************************************************************************/
+
+    @ApiOperation(value = "社区共建项目列表", response = NewFightCommunityConstructionDTO.class)
+    @GetMapping("/getNewFightCommunityList")
+    public R getNewFightCommunityList(@RequestParam("pageNum") int pageNum,
+                                      @RequestParam("pageSize") int pageSize,
+                                      @RequestParam(value = "communityId", required = false)  String communityId)
+    {
+        if(StringUtils.isEmpty(communityId))
+        {
+            communityId=getCommunityId()+"";
+        }
+        return newStriveForFeign.getNewFightCommunityList(pageNum,pageSize,
+                communityId,null);
+    }
+
+    @ApiOperation(value = "社区共建项目详情", response = NewFightCommunityConstructionDTO.class)
+    @GetMapping("/getNewFightCommunityDetails")
+    public R getNewFightCommunityDetails(@RequestParam("id") String id)
+    {
+        return newStriveForFeign.getNewFightCommunityDetails(id,getUserId()+"");
+    }
+
+    @ApiOperation(value = "社区共建项目添加")
+    @PostMapping("/addNewFightCommunityData")
+    public R addNewFightCommunityData(@RequestBody NewFightCommunityConstructionDTO item)
+    {
+        return newStriveForFeign.addNewFightCommunityData(item);
+    }
+
+    @ApiOperation(value = "社区共建项目编辑")
+    @PostMapping("/editNewFightCommunityData")
+    public R editNewFightCommunityData(@RequestBody NewFightCommunityConstructionDTO item)
+    {
+        return newStriveForFeign.editNewFightCommunityData(item);
+    }
+
+    @ApiOperation(value = "社区共建项目删除")
+    @DeleteMapping("/expurgateNewFightCommunityData")
+    public R expurgateNewFightCommunityData(@RequestParam(value = "id", required = false) String id)
+    {
+        return newStriveForFeign.expurgateNewFightCommunityData(id);
+    }
+
+
+    /**************************************************************************************************************
+     *
+     *                                            项目规划
+     *
+     ****************************************************************************************************************/
+    @ApiOperation(value = "项目规划列表", response = NewFightCommunityConstructionDTO.class)
+    @GetMapping("/getProjectPlanList")
+    public R  getProjectPlanList(@RequestParam("pageNum") int pageNum,
+                                 @RequestParam("pageSize") int pageSize,
+                                 @RequestParam("projectId") String projectId)
+    {
+        return newStriveForFeign.getProjectPlanList(pageNum,pageSize,projectId);
+    }
+
+    @ApiOperation(value = "项目规划详情", response = NewFightCommunityConstructionDTO.class)
+    @GetMapping("/getProjectPlanDetails")
+    public R  getProjectPlanDetails(@RequestParam("id") String id)
+    {
+        return newStriveForFeign.getProjectPlanDetails(id);
+    }
+
+    @ApiOperation(value = "项目规划添加")
+    @PostMapping("/addProjectPlanData")
+    public R addProjectPlanData(@RequestBody NewFightProjectPlanDTO item)
+    {
+        return newStriveForFeign.addProjectPlanData(item);
+    }
+
+    @ApiOperation(value = "项目规划编辑")
+    @PostMapping("/editProjectPlanData")
+    public R editProjectPlanData(@RequestBody NewFightProjectPlanDTO item)
+    {
+        return newStriveForFeign.editProjectPlanData(item);
+    }
+
+
+    @ApiOperation(value = "项目规划确认完工")
+    @PostMapping("/editProjectPlanAccomplish")
+    public R editProjectPlanAccomplish(@RequestParam("id") String id)
+    {
+        return newStriveForFeign.editProjectPlanAccomplish(id);
+    }
+
+
+    @ApiOperation(value = "项目规划删除")
+    @DeleteMapping("/expurgateProjectPlanData")
+    public R expurgateProjectPlanData(@RequestParam("id") String id)
+    {
+        return newStriveForFeign.expurgateProjectPlanData(id);
+    }
+
+
+    /********************************************************************************************************
+     *
+     *                           项目参与
+     *
+     ******************************************************************************************************/
+
+    @ApiOperation(value = "项目参与人员列表", response = NewFightProjectJoinDTO.class)
+    @GetMapping("/getJoinList")
+    public R  getJoinList(@RequestParam("pageNum") int pageNum,
+                          @RequestParam("pageSize") int pageSize,
+                          @RequestParam("projectId") String projectId)
+    {
+        return newStriveForFeign.getJoinList(pageNum,pageSize,projectId);
+    }
+
+    @ApiOperation(value = "项目参与人员详情", response = NewFightProjectJoinDTO.class)
+    @GetMapping("/getJoinDetails")
+    public R  getJoinDetails(@RequestParam("id") String id)
+    {
+        return newStriveForFeign.getJoinDetails(id);
+    }
+
+    @ApiOperation(value = "项目参与人员报名")
+    @PostMapping("/addJoinData")
+    public R addJoinData(@RequestBody NewFightProjectJoinDTO item)
+    {
+        return newStriveForFeign.addJoinData(item);
+    }
+
+    @ApiOperation(value = "项目参与人员修改")
+    @PostMapping("/editJoinData")
+    public R editJoinData(@RequestBody NewFightProjectJoinDTO item)
+    {
+        return newStriveForFeign.editJoinData(item);
+    }
+
+    @ApiOperation(value = "项目参与人员取消报名")
+    @DeleteMapping("/expurgateJoinData")
+    public R expurgateJoinData(@RequestParam(value = "id", required = false) String id,
+                               @RequestParam(value = "projectId", required = false) String projectId,
+                               @RequestParam(value = "userId", required = false) String userId)
+    {
+        return newStriveForFeign.expurgateJoinData(id,projectId,userId);
+    }
+
+
+    /********************************************************************************************************
+     *
+     *                           项目评论
+     *
+     ******************************************************************************************************/
+
+    @ApiOperation(value = "项目评论列表", response = NewFightProjectEvaluateDTO.class)
+    @GetMapping("/getEvaluateList")
+    public R getEvaluateList(@RequestParam("pageNum") int pageNum,
+                             @RequestParam("pageSize") int pageSize,
+                             @RequestParam("projectId") String projectId)
+    {
+        return newStriveForFeign.getEvaluateList(pageNum,pageSize,projectId);
+    }
+
+    @ApiOperation(value = "项目评论详情", response = NewFightProjectEvaluateDTO.class)
+    @GetMapping("/getEvaluateDetails")
+    public R  getEvaluateDetails(@RequestParam("id") String id)
+    {
+        return newStriveForFeign.getEvaluateDetails(id);
+    }
+
+    @ApiOperation(value = "项目评论新增")
+    @PostMapping("/addEvaluateData")
+    public R  addEvaluateData(@RequestBody NewFightProjectEvaluateDTO item)
+    {
+        return newStriveForFeign.addEvaluateData(item);
+    }
+
+    @ApiOperation(value = "项目评论编辑")
+    @PostMapping("/editEvaluateData")
+    public R  editEvaluateData(@RequestBody NewFightProjectEvaluateDTO item)
+    {
+        return newStriveForFeign.editEvaluateData(item);
+    }
+
+    @ApiOperation(value = "项目评论删除")
+    @DeleteMapping("/expurgateEvaluateData")
+    public R  expurgateEvaluateData(@RequestParam("id") String id)
+    {
+        return newStriveForFeign.expurgateEvaluateData(id);
+    }
+
+
+    /*******************************************************************************************************************
+     *
+     *                                  微心愿app
+     *
+     * ****************************************************************************************************************/
+
+    @Resource
+    private UserService userService;
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "微心愿app一键认领")
+    @PutMapping("/putmicrowish")
+    public R putlMicroWish(@RequestBody ComActMicroWishVO comActMicroWishVO) {
+        Long id = comActMicroWishVO.getId();
+        Long userId = this.getUserId();
+        if (ObjectUtils.isEmpty(id)) {
+            return R.fail("心愿主键不能为空");
+        }
+        Integer type = comActMicroWishVO.getType();
+        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)) {
+                // 1 审核通过 2驳回 3分配人员 4发起活动 5反馈
+                R r1 = communityService.detailMicroWish(id, userId);
+                Object data = r1.getData();
+                ComActMicroWishVO comActMicroWishVO1 =
+                        JSONObject.parseObject(JSONObject.toJSONString(data), ComActMicroWishVO.class);
+                // 查询用户openid
+                R userResult = userService.getUserOpenId(comActMicroWishVO1.getSponsorId());
+                if (R.isOk(r1)) {
+                    SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO();
+                    sysUserNoticeVO.setUserId(comActMicroWishVO1.getSponsorId());
+                    sysUserNoticeVO.setType(2);
+                    sysUserNoticeVO.setBusinessType(3);
+                    sysUserNoticeVO.setBusinessTitle(comActMicroWishVO1.getWishName());
+                    sysUserNoticeVO.setBusinessTime(comActMicroWishVO1.getExamineAt());
+                    sysUserNoticeVO.setBusinessId(id);
+                    sysUserNoticeVO.setStatus(0);
+                    if (type.intValue() == 2) {
+                        sysUserNoticeVO.setTitle("微心愿未通过审核");
+                        sysUserNoticeVO
+                                .setBusinessContent(String.format("驳回原因:%s", comActMicroWishVO1.getRejectReason()));
+                        sysUserNoticeVO.setBusinessStatus(1);
+                        R r2 = userService.addNotice(sysUserNoticeVO);
+                        if (R.isOk(r2)) {
+                            log.info("新增微心愿未通过审核通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+                        }
+                        if (R.isOk(userResult)) {
+                            String openid = userResult.getData().toString();
+                            WxXCXTempSend util = new WxXCXTempSend();
+                            try {
+                                String result = comActMicroWishVO1.getRejectReason();
+                                if (StringUtils.isNotEmpty(result)) {
+                                    result = result.substring(0, 4);
+                                    result += "…";
+                                }
+                                R<SysTemplateConfigVO> sysTemplateConfigVO=userService.selectTemplate(this.getAreaCode(),4);
+                                WxUtil.sendSubscribeSHZT(openid, util.getAccessToken(), "微心愿",
+                                        DateUtils.format(comActMicroWishVO1.getExamineAt(), DateUtils.ymdhms_format),
+                                        result,sysTemplateConfigVO.getData().getTemplateId());
+                            } catch (Exception e) {
+                                log.error("消息推送失败,失败原因:" + e.getMessage());
+                            }
+                        }
+                    } else if (type.intValue() == 5) {
+                        sysUserNoticeVO.setTitle("微心愿已完成");
+                        sysUserNoticeVO.setBusinessContent(comActMicroWishVO.getFeedback());
+                        sysUserNoticeVO.setBusinessStatus(2);
+                        R r2 = userService.addNotice(sysUserNoticeVO);
+                        if (R.isOk(r2)) {
+                            log.info("新增微心愿已完成通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+                        }
+                    } else if (type.intValue() == 3) {
+                        sysUserNoticeVO.setTitle("微心愿已分配负责人");
+                        sysUserNoticeVO.setBusinessContent("负责人会在近日和你联系,请保持电话畅通");
+                        sysUserNoticeVO.setBusinessStatus(2);
+                        R r2 = userService.addNotice(sysUserNoticeVO);
+                        if (R.isOk(r2)) {
+                            log.info("新增微心愿已分配负责人通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+                        }
+                    } else if (type.intValue() == 4) {
+                        sysUserNoticeVO.setTitle("微心愿发起了活动");
+                        sysUserNoticeVO.setBusinessContent("请关注活动页面及时参加,并邀请你的朋友一起支持我们的活动");
+                        sysUserNoticeVO.setBusinessStatus(2);
+                        R r2 = userService.addNotice(sysUserNoticeVO);
+                        if (R.isOk(r2)) {
+                            log.info("新增微心愿发起了活动通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+                        }
+                    }
+
+//                    if (type.equals(1)) {// 审核通过给用户增加积分
+//                        communityService.addIntegralTradeAdmin(
+//                            new AddComActIntegralUserDTO(id, AddComActIntegralUserDTO.integralType.fbwxy,
+//                                this.getCommunityId(), comActMicroWishVO1.getSponsorId()));
+//                        if (R.isOk(userResult)) {
+//                            String openid = userResult.getData().toString();
+//                            WxXCXTempSend util = new WxXCXTempSend();
+//                            R<SysTemplateConfigVO> sysTemplateConfigVO=userService.selectTemplate(this.getAreaCode(),4);
+//                            try {
+//                                WxUtil.sendSubscribeSHZT(openid, util.getAccessToken(), "微心愿",
+//                                    DateUtils.format(comActMicroWishVO1.getExamineAt(), DateUtils.ymdhms_format),
+//                                    "审核通过",sysTemplateConfigVO.getData().getTemplateId());
+//                            } catch (Exception e) {
+//                                log.error("消息推送失败,失败原因:" + e.getMessage());
+//                            }
+//                        }
+//                    }
+                }
+            }
+        }
+        return r;
+    }
+
+
+    /************************************************************************************************************
+     *
+     *                       资源共享
+     *
+     *************************************************************************************************************/
+
+    @ApiOperation(value = "资源共享列表", response = NewFightResourceSharingDTO.class)
+    @GetMapping("/getResourceSharingList")
+    public R getResourceSharingList(@RequestParam("pageNum") int pageNum,
+                                    @RequestParam("pageSize") int pageSize,
+                                    @RequestParam(value = "communityId", required = false)String communityId,
+                                    @RequestParam(value = "unitId", required = false)String unitId,
+                                    @RequestParam(value = "meritId", required = false) String meritId)
+    {
+        return newStriveForFeign.getResourceSharingList(pageNum,pageSize,communityId,unitId,meritId);
+    }
+
+    @ApiOperation(value = "资源共享详情", response = NewFightResourceSharingDTO.class)
+    @GetMapping("/getResourceSharingDetails")
+    public R getResourceSharingDetails(@RequestParam("id") String id)
+    {
+        return newStriveForFeign.getResourceSharingDetails(id);
+    }
+
+
+    /*******************************************************************************************************
+     *
+     *                   积分商城
+     *
+     *******************************************************************************************************/
+    @ApiOperation(value = "积分商品列表", response = NewFightShoppingVO.class)
+    @GetMapping("/getFightShoppingList")
+    public R getFightShoppingList(@RequestParam("pageNum") int pageNum,
+                                  @RequestParam("pageSize") int pageSize,
+                                  @RequestParam(value = "goodName", required = false)String goodName,
+                                  @RequestParam(value = "goodType", required = false)String goodType,
+                                  @RequestParam(value = "id", required = false)String id)
+    {
+        return newStriveForFeign.getFightShoppingList(pageNum,pageSize,getCommunityId()+"",
+                goodName,goodType,id);
+    }
+
+
+    @ApiOperation(value = "积分商品详情", response = NewFightShoppingVO.class)
+    @GetMapping("/getFightShoppingDetails")
+    public R getFightShoppingDetails(@RequestParam("id") String id)
+    {
+        return newStriveForFeign.getFightShoppingDetails(id);
+    }
+
+
+    /*******************************************************************************************************
+     *
+     *                                           商家模块
+     *
+     * ********************************************************************************************************/
+
+    @ApiOperation(value = "商家列表", response = NewFightConvenientMerchantVO.class)
+    @GetMapping("/pageMerchant")
+    public R pageMerchant(@RequestParam("pageNum") int pageNum,
+                          @RequestParam("pageSize") int pageSize,
+                          @RequestParam(value = "keyword", required = false)String keyword)
+    {
+        return newStriveForFeign.pageMerchant(pageNum,pageSize,getCommunityId()+"","0",
+                keyword,"1");
+    }
+
+    /**
+     * 查询商家信息
+     *
+     * @param merchantId
+     * @return
+     */
+    @ApiOperation(value = "商家详情", response = NewFightConvenientMerchantVO.class)
+    @GetMapping("/selectMerchantById")
+    public R selectMerchantById(@RequestParam("merchantId") String merchantId)
+    {
+        return newStriveForFeign.selectMerchantById(merchantId);
+    }
+
+
+
+    /*****************************************************************************************************
+     *
+     *                                       用户积分任务完成情况
+     *
+     *******************************************************************************************************/
+    /**
+     * 列表
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "用户积分任务列表", response = IntegratingTaskVO.class)
+    @GetMapping("/getTaskList")
+    public R getIntegratingTaskList()
+    {
+        return newStriveForFeign.getIntegratingTaskList(getUserId()+"",
+                getCommunityId()+"");
+    }
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "用户积分任务去完成  只传 status ")
+    @PostMapping("/addIntegratingTaskData")
+    public R addIntegratingTaskData(@RequestBody IntegratingTaskVO item)
+    {
+        item.setIsDraw("1");
+        item.setUserId(getUserId()+"");
+        item.setCommunityId(getCommunityId()+"");
+        return newStriveForFeign.addIntegratingTaskData(item);
+    }
+
+
+    /**
+     * 每日签到记录列表  前15条
+     * @return
+     */
+    @ApiOperation(value = "每日签到记录列表  前15条", response = IntegratingTaskVO.class)
+    @GetMapping("/IntegratingTask/getEverydayList")
+    public R  getEverydayList()
+    {
+        return newStriveForFeign.getEverydayList(getUserId()+"",getCommunityId()+"");
+    }
+
+
+
+    /**
+     * 添加或者修改积分
+     * @param item
+     * @return
+     */
+    @ApiOperation(value = "用户领取积分")
+    @PostMapping("/IntegratingTask/upIntegral")
+    public R upIntegral(@RequestBody NewFightIntegral item)
+    {
+        return newStriveForFeign.upIntegral(item);
+    }
+
+
+    /*******************************************************************************************************************
+     *
+     *                                        商品订单
+     *
+     ****************************************************************************************************************/
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "订单列表", response = NewFightShoppingOrderVO.class)
+    @GetMapping("/orderGetList")
+    public R orderGetList(@RequestParam("pageNum") int pageNum,
+                          @RequestParam("pageSize") int pageSize,
+                          @RequestParam(value = "userId", required = false)String userId,
+                          @RequestParam(value = "goodsId", required = false)String goodsId,
+                          @RequestParam(value = "orderNumber", required = false)String orderNumber,
+                          @RequestParam(value = "goodName", required = false)String goodName,
+                          @RequestParam(value = "name", required = false)String name,
+                          @RequestParam(value = "cancelType", required = false)String cancelType,
+                          @RequestParam(value = "merchantId", required = false) String merchantId,
+                          @RequestParam(value = "orderType", required = false) String orderType)
+    {
+        return newStriveForFeign.orderGetList(pageNum,pageSize,userId,goodsId,orderNumber,
+                goodName,name,cancelType,getCommunityId()+"",merchantId,orderType);
+    }
+
+    /**
+     * 分页详情
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "订单详情", response = NewFightShoppingOrderVO.class)
+    @GetMapping("/orderGetDetails")
+    public R orderGetDetails(@RequestParam("id") String id)
+    {
+        return newStriveForFeign.orderGetDetails(id,getCommunityId()+"");
+    }
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "订单添加")
+    @PostMapping("/orderAddData")
+    public R orderAddData(@RequestBody NewFightShoppingOrderVO item)
+    {
+//        item.setCommunityId(getCommunityId()+"");
+//        item.setUserId(getUserId()+"");
+//        item.setOrderType("1");
+        return newStriveForFeign.orderAddData(item);
+    }
+
+
+    /**
+     * 编辑
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "订单编辑", response = NewFightShoppingOrderVO.class)
+    @PostMapping("/NewFightOrder/orderEditData")
+    public R orderEditData(@RequestBody NewFightShoppingOrderVO item)
+    {
+        return newStriveForFeign.orderEditData(item);
+    }
+
+
+    /**
+     * 取消
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "订单取消")
+    @GetMapping("/orderCancelOrder")
+    public R orderCancelOrder(@RequestParam("orderId") String orderId)
+    {
+        return newStriveForFeign.orderCancelOrder(orderId,getCommunityId()+"");
+    }
+
+
+    /**
+     * 删除
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "订单删除")
+    @DeleteMapping("/orderExpurgateData")
+    public R orderExpurgateData(@RequestParam("id") String id)
+    {
+        return newStriveForFeign.orderExpurgateData(id,getCommunityId()+"");
+    }
+
+
+    @ApiOperation(value = "订单核销")
+    @GetMapping("/orderCheck")
+    public R orderEditData(@RequestParam("id") String id)
+    {
+
+        if(org.apache.commons.lang3.StringUtils.isEmpty(id))
+        {
+            return R.fail("订单id不能为空");
+        }
+
+        NewFightShoppingOrderVO vo=new NewFightShoppingOrderVO();
+        vo.setId(id);
+        vo.setCancelType("1");
+        vo.setCancelTime(new Date());
+        return newStriveForFeign.orderEditData(vo);
+    }
+
+
+    @ApiOperation(value = "获取社区积分排名")
+    @GetMapping("/getIntegralUserRank")
+    public R  getIntegralUserRank()
+    {
+        return communityService.getIntegralUserRank(getCommunityId(),getUserId());
+    }
+
+
+    @ApiOperation(value = "是否是商家   如果是商家返回商家id")
+    @GetMapping("/selectUserBind")
+    public R selectUserBind()
+    {
+        return newStriveForFeign.selectUserBind(getCommunityId()+"",getUserId()+"");
+    }
+
+
+
+    @ApiOperation(value = "搜索用户", response = SysUserVO.class)
+    @GetMapping("/selectUserList")
+    public R selectUserList(@RequestParam("phoneOrname") String phoneOrname)
+    {
+        return newStriveForFeign.selectUserList(getCommunityId()+"",phoneOrname);
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/PartyBuildingApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/PartyBuildingApi.java
new file mode 100644
index 0000000..0872bf9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/PartyBuildingApi.java
@@ -0,0 +1,353 @@
+package com.panzhihua.applets.api;
+
+import java.util.Date;
+
+import javax.annotation.Resource;
+
+import cn.hutool.core.util.StrUtil;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.interfaces.OperLog;
+import com.panzhihua.common.model.dtos.common.PageComPbCheckUnitDto;
+import com.panzhihua.common.model.dtos.community.PageMemberForInviteDTO;
+import com.panzhihua.common.model.dtos.partybuilding.*;
+import com.panzhihua.common.model.vos.common.ComPbCheckUnitVo;
+import com.panzhihua.common.model.vos.grid.EventGridCommunityAdminVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.partybuilding.ComPbCheckUnitFeign;
+import com.panzhihua.common.service.partybuilding.PartyBuildingWestService;
+import org.springframework.util.ObjectUtils;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.applets.weixin.CheckService;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.partybuilding.*;
+import com.panzhihua.common.model.vos.user.SysUserNoticeVO;
+import com.panzhihua.common.service.partybuilding.PartyBuildingService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党群服务
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-02 16:19
+ **/
+@Slf4j
+@RestController
+@RequestMapping("/partybuilding/")
+@Api(tags = {"党群服务"})
+public class PartyBuildingApi extends BaseController {
+    @Resource
+    private PartyBuildingService partyBuildingService;
+    @Resource
+    private PartyBuildingWestService partyBuildingWestService;
+    @Resource
+    private UserService userService;
+    @Resource
+    private CheckService checkService;
+    @Resource
+    private ComPbCheckUnitFeign pbCheckUnitFeign;
+    @Resource
+    private CommunityService communityService;
+
+    public static void main(String[] args) {
+        Date date = new Date();
+        String dateFormat = String.format("%tF %tT ", date, date);
+        System.out.println(dateFormat);
+    }
+
+    @ApiOperation(value = "分页党建动态/政策文件", response = PartyBuildingComPbDynVO.class)
+    @PostMapping("pagedynamic")
+    public R pageYnamic(@RequestBody PartyBuildingComPbDynVO partyBuildingComPbDynVO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            partyBuildingComPbDynVO.setCommunityId(loginUserInfo.getCommunityId());
+        }
+        Integer type = partyBuildingComPbDynVO.getType();
+        if (ObjectUtils.isEmpty(type)) {
+            return R.fail("类型不能为空");
+        }
+        partyBuildingComPbDynVO.setStatus(2);
+        return partyBuildingWestService.pageYnamic(partyBuildingComPbDynVO);
+    }
+
+    @ApiOperation(value = "分页查询党员活动", response = PageActivityMembersVO.class)
+    @PostMapping("pageactivity")
+    public R pageActivity(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            partyBuildingActivityVO.setCommunityId(loginUserInfo.getCommunityId());
+        }
+        // Long communityId = this.getCommunityId();
+        // partyBuildingActivityVO.setCommunityId(communityId);
+        Integer status = partyBuildingActivityVO.getStatus();
+        if (null != status && status.intValue() == 4) {
+            partyBuildingActivityVO.setIsAppliets(1);
+        }
+        return partyBuildingService.pageActivity(partyBuildingActivityVO);
+    }
+
+    // @ApiOperation(value = "增加阅读记录")
+    // @PostMapping("adddynuser")
+    // public R addDynUser(@RequestBody PartyBuildingComPbDynVO partyBuildingComPbDynVO) {
+    // Long id = partyBuildingComPbDynVO.getId();
+    // if (ObjectUtils.isEmpty(id)||0==id) {
+    // return R.fail("主键id不能为空");
+    // }
+    // Long userId = this.getUserId();
+    // ComPbDynUserVO comPbDynUserVO=new ComPbDynUserVO();
+    // comPbDynUserVO.setCreateAt(new Date());
+    // comPbDynUserVO.setDynId(id);
+    // comPbDynUserVO.setUserId(userId);
+    // return partyBuildingService.addDynUser(comPbDynUserVO);
+    // }
+
+    @ApiOperation(value = "动态/政策文件详情", response = PartyBuildingComPbDynVO.class)
+    @GetMapping("infodynamic")
+    public R infoYnamic(@RequestParam("id") Long id) {
+        R r = partyBuildingWestService.infoYnamic(id);
+        if (R.isOk(r)) {
+            if (ObjectUtils.isEmpty(id) || 0 == id) {
+                return R.fail("主键id不能为空");
+            }
+            Long userId = null;
+            LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+            if (loginUserInfo != null) {
+                userId = loginUserInfo.getUserId();
+            }
+
+            PartyBuildingComPbDynVO partyBuildingComPbDynVO =
+                    JSONObject.parseObject(JSONObject.toJSONString(r.getData()), PartyBuildingComPbDynVO.class);
+            if (userId != null) {
+                ComPbDynUserVO comPbDynUserVO = new ComPbDynUserVO();
+                comPbDynUserVO.setCreateAt(new Date());
+                comPbDynUserVO.setDynId(id);
+                comPbDynUserVO.setUserId(userId);
+                R r1 = partyBuildingWestService.addDynUser(comPbDynUserVO);
+                if (R.isOk(r1)) {
+                    partyBuildingComPbDynVO.setIsAdd(1);
+                } else {
+                    partyBuildingComPbDynVO.setIsAdd(0);
+                }
+            } else {
+                partyBuildingComPbDynVO.setIsAdd(0);
+            }
+            return R.ok(partyBuildingComPbDynVO);
+        }
+        return r;
+    }
+
+    @ApiOperation(value = "分页党委查询", response = PartyCommitteeVO.class)
+    @PostMapping("pagepartycommittee")
+    public R pagePartyCommittee(@RequestBody PartyCommitteeVO partyCommitteeVO) {
+        // Long communityId =this.getCommunityId();
+        // partyCommitteeVO.setCommunityId(communityId);
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            partyCommitteeVO.setCommunityId(loginUserInfo.getCommunityId());
+        }
+        return partyBuildingService.pagePartyCommittee(partyCommitteeVO);
+    }
+
+    @ApiOperation(value = "活动详情", response = PartyBuildingActivityVO.class)
+    @GetMapping("activityinfo")
+    public R activityinfo(@RequestParam("id") Long id) {
+        Long userId = this.getUserId();
+        return partyBuildingService.activityinfo(id, userId);
+    }
+
+    @ApiOperation(value = "党员活动人员参入列表", response = PartyBuildingMemberVO.class)
+    @GetMapping("listpartybuildingmember")
+    public R listPartyBuildingMember(@RequestParam("id") Long id) {
+        return partyBuildingService.listPartyBuildingMember(id);
+    }
+
+    @ApiOperation(value = "报名、取消报名党员活动")
+    @PutMapping("activitysignup")
+    public R putActivitySignUp(@RequestBody @Validated ActivitySignUpDTO activitySignUpDTO) {
+        Long userId = this.getUserId();
+        activitySignUpDTO.setUserId(userId);
+        Long id = activitySignUpDTO.getId();
+        R r = partyBuildingService.putActivitySignUp(activitySignUpDTO);
+        if (R.isOk(r) && activitySignUpDTO.getType().intValue() == 1) {
+            R r2 = partyBuildingService.activityinfo(id, userId);
+            PartyBuildingActivityVO partyBuildingActivityVO =
+                    JSONObject.parseObject(JSONObject.toJSONString(r2.getData()), PartyBuildingActivityVO.class);
+            SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO();
+            sysUserNoticeVO.setUserId(userId);
+            sysUserNoticeVO.setType(1);
+            sysUserNoticeVO.setTitle("报名成功");
+            sysUserNoticeVO.setBusinessType(2);
+            sysUserNoticeVO.setBusinessTitle(partyBuildingActivityVO.getName());
+            Date activityTimeBegin = partyBuildingActivityVO.getActivityTimeBegin();
+            sysUserNoticeVO
+                    .setBusinessContent(String.format("活动将于 %tF %tT  开始,请按时参加", activityTimeBegin, activityTimeBegin));
+            sysUserNoticeVO.setBusinessId(id);
+            sysUserNoticeVO.setStatus(0);
+            sysUserNoticeVO.setBusinessStatus(2);
+            R r1 = userService.addNotice(sysUserNoticeVO);
+            if (R.isOk(r1)) {
+                log.info("新增用户报名党建活动通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+            }
+        }
+        return r;
+    }
+
+    @ApiOperation(value = "创建党员活动")
+    @PostMapping("activityinfo")
+    public R addActivityinfo(@RequestBody @Validated(AddGroup.class) ComPbActivityDTO comPbActivityDTO) {
+        // 微信内容审核
+        String msg = comPbActivityDTO.getRichText();
+        if (StrUtil.isNotBlank(msg)) {
+            String result = checkService.checkMessageBy(msg, this.getLoginUserInfo().getOpenid(),this.getAppId());
+            if (StrUtil.isNotBlank(result)) {
+                return R.fail(501, "填写内容存在 " + result + " 违规信息");
+            }
+        }
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long userId = loginUserInfo.getUserId();
+        Long communityId = loginUserInfo.getCommunityId();
+        comPbActivityDTO.setCreateBy(userId);
+        comPbActivityDTO.setCommunityId(communityId);
+        Date date = new Date();
+        comPbActivityDTO.setReleaseTime(date);
+        Date activityTimeBegin = comPbActivityDTO.getActivityTimeBegin();
+        Date activityTimeEnd = comPbActivityDTO.getActivityTimeEnd();
+        boolean before = activityTimeEnd.before(activityTimeBegin);
+        if (before) {
+            return R.fail("活动结束时间不能早于开始时间");
+        }
+        // 1 待发布 2 未开始 3 报名中 4 进行中 5 已结束 6 已取消
+        int status = 2;
+        Date enrollTimeBegin = comPbActivityDTO.getEnrollTimeBegin();
+        Date enrollTimeEnd = comPbActivityDTO.getEnrollTimeEnd();
+        if (enrollTimeEnd.before(enrollTimeBegin)) {
+            return R.fail("报名结束时间不能早于报名开始时间");
+        }
+        if (enrollTimeBegin.before(date)) {
+            status = 3;
+        }
+        comPbActivityDTO.setStatus(status);
+        return partyBuildingService.addActivityApplets(comPbActivityDTO);
+    }
+
+    @ApiOperation(value = "分页查询服务团队成员", response = ComPbServiceTeamVO.class)
+    @PostMapping("pageserviceteam")
+    public R pageServiceTeam(@RequestBody PageComPbServiceTeamDTO pageComPbServiceTeamDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            pageComPbServiceTeamDTO.setCommunityId(loginUserInfo.getCommunityId());
+        }
+        // pageComPbServiceTeamDTO.setCommunityId(this.getCommunityId());
+        return partyBuildingService.pageServiceTeam(pageComPbServiceTeamDTO);
+    }
+
+    @ApiOperation(value = "社区所有启用的党组织列表", response = PartyOrganizationVO.class)
+    @PostMapping("listpartyorganization")
+    public R listPartyOrganization(@RequestBody ComListPartyDTO comListPartyDTO) {
+        // Long communityId = this.getCommunityId();
+        // log.info("社区所有党组织社区id【{}】", communityId);
+        // if(communityId != null){
+        // comListPartyDTO.setCommunityId(communityId);
+        // }
+        return partyBuildingService.listPartyOrganizationByApp(comListPartyDTO);
+    }
+
+    @OperLog(operModul = "党员管理", operType = 2)
+    @ApiOperation(value = "编辑党员")
+    @PutMapping("updatepartybuildingmember")
+    public R updatePartyBuildingMember(@RequestBody PartyBuildingMemberVO partyBuildingMemberVO) {
+                return partyBuildingService.updatePartyBuildingMember(partyBuildingMemberVO);
+    }
+
+    @ApiOperation(value = "查询社区下所有党员报到单位", response = ComPbCheckUnitVo.class)
+    @PostMapping("/comPbCheckUnit/list")
+    public R getPbCheckUnitList(@RequestBody PageComPbCheckUnitDto comPbCheckUnit) {
+        if (comPbCheckUnit.getCommunityId() == null) {
+            comPbCheckUnit.setCommunityId(this.getCommunityId());
+        }
+        return pbCheckUnitFeign.queryByList(comPbCheckUnit);
+    }
+
+    @OperLog(operModul = "党员管理", operType = 1)
+    @ApiOperation(value = "新增党员")
+    @PostMapping("addpartybuildingmember")
+    public R addPartyBuildingMember(@RequestBody PartyBuildingMemberVO partyBuildingMemberVO) {
+        Long userId = this.getUserId();
+        partyBuildingMemberVO.setUserId(userId);
+        R r = partyBuildingService.addPartyBuildingMember(partyBuildingMemberVO);
+        if (R.isOk(r)) {
+            R r1 = userService.updateUserPartyStatus(this.getUserId());
+        }
+        return r;
+    }
+
+    @OperLog(operModul = "党员管理", operType = 1)
+    @ApiOperation(value = "分页查询党员列表",response = PartyBuildingMemberVO.class)
+    @PostMapping("/page/member")
+    public R pageMember(@RequestBody PartyBuildingMemberVO partyBuildingMemberVO) {
+        //partyBuildingMemberVO.setCommunityId(this.getCommunityId());
+        return partyBuildingService.getPagePbMember(partyBuildingMemberVO);
+    }
+
+    @PostMapping("/getProject/list")
+    public R getProjectList(@RequestBody ProjectVO projectVO){
+        return partyBuildingService.getProjectList(projectVO);
+    }
+
+    @PostMapping("/add/project")
+    public R addProject(@RequestBody ProjectVO projectVO){
+        return partyBuildingService.addProject(projectVO);
+    }
+
+    @PostMapping("/update/project")
+    public R updateProject(@RequestBody ProjectVO projectVO){
+        return partyBuildingService.updateProject(projectVO);
+    }
+
+    @PostMapping("/delete/project")
+    public R deleteProject(@RequestBody ProjectVO projectVO){
+        return partyBuildingService.deleteProject(projectVO);
+    }
+
+    @ApiOperation(value = "分页查询注册党员列表",response = PartyBuildingMemberVO.class)
+    @PostMapping("/page/registerMember")
+    public R pageRegisterMember(@RequestBody PageMemberForInviteDTO pageMemberForInviteDTO) {
+        pageMemberForInviteDTO.setAppid(this.getAppId());
+        return partyBuildingService.pageRegisterMember(pageMemberForInviteDTO);
+    }
+
+    @ApiOperation(value = "查询所有社区列表", response = EventGridCommunityAdminVO.class)
+    @GetMapping("/community/list")
+    public R getCommunityLists() {
+        return communityService.getCommunityLists();
+    }
+
+    @ApiOperation(value = "查询当前用户党员信息")
+    @GetMapping("/getPartyMember")
+    public R getPartyMember(@RequestParam("type")Integer type){
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (StrUtil.isEmpty(loginUserInfo.getPhone())){
+            return R.fail("请先实名认证");
+        }
+        return partyBuildingService.getPartyMember(loginUserInfo.getPhone(),type);
+    }
+    @ApiOperation(value = "查询报道单位详情")
+    @GetMapping("/comPbCheckUnit/detailByPhone")
+    public R detailById(@RequestParam("phone") String phone) {
+        return partyBuildingService.detailByPhone(phone);
+    }
+    @ApiOperation(value = "党员详情",response =PartyBuildingMemberVO.class)
+    @GetMapping("/memberDetail")
+    public R memberDetail(@RequestParam("id")Long id){
+        return partyBuildingService.memberDetail(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/PartyBuildingWestApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/PartyBuildingWestApi.java
new file mode 100644
index 0000000..9466d42
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/PartyBuildingWestApi.java
@@ -0,0 +1,284 @@
+package com.panzhihua.applets.api;
+
+import java.util.Date;
+
+import javax.annotation.Resource;
+
+import cn.hutool.core.util.StrUtil;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.interfaces.OperLog;
+import com.panzhihua.common.model.dtos.common.PageComPbCheckUnitDto;
+import com.panzhihua.common.model.vos.common.ComPbCheckUnitVo;
+import com.panzhihua.common.model.vos.partybuilding.*;
+import com.panzhihua.common.service.partybuilding.ComPbCheckUnitFeign;
+import org.springframework.util.ObjectUtils;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.applets.weixin.CheckService;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.partybuilding.ActivitySignUpDTO;
+import com.panzhihua.common.model.dtos.partybuilding.ComListPartyDTO;
+import com.panzhihua.common.model.dtos.partybuilding.ComPbActivityDTO;
+import com.panzhihua.common.model.dtos.partybuilding.PageComPbServiceTeamDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.user.SysUserNoticeVO;
+import com.panzhihua.common.service.partybuilding.PartyBuildingWestService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党群服务
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-02 16:19
+ **/
+@Slf4j
+@RestController
+@RequestMapping("/partybuildingWest/")
+@Api(tags = {"党群服务"})
+public class PartyBuildingWestApi extends BaseController {
+    @Resource
+    private PartyBuildingWestService partyBuildingWestService;
+    @Resource
+    private UserService userService;
+    @Resource
+    private CheckService checkService;
+    @Resource
+    private ComPbCheckUnitFeign pbCheckUnitFeign;
+
+    public static void main(String[] args) {
+        Date date = new Date();
+        String dateFormat = String.format("%tF %tT ", date, date);
+        System.out.println(dateFormat);
+    }
+
+    @ApiOperation(value = "分页党建动态/政策文件", response = PartyBuildingComPbDynVO.class)
+    @PostMapping("pagedynamic")
+    public R pageYnamic(@RequestBody PartyBuildingComPbDynVO partyBuildingComPbDynVO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            partyBuildingComPbDynVO.setCommunityId(loginUserInfo.getCommunityId());
+        }
+        Integer type = partyBuildingComPbDynVO.getType();
+        if (ObjectUtils.isEmpty(type)) {
+            return R.fail("类型不能为空");
+        }
+        partyBuildingComPbDynVO.setStatus(2);
+        return partyBuildingWestService.pageYnamic(partyBuildingComPbDynVO);
+    }
+
+    @ApiOperation(value = "分页查询党员活动", response = PageActivityMembersVO.class)
+    @PostMapping("pageactivity")
+    public R pageActivity(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            partyBuildingActivityVO.setCommunityId(loginUserInfo.getCommunityId());
+        }
+        // Long communityId = this.getCommunityId();
+        // partyBuildingActivityVO.setCommunityId(communityId);
+        Integer status = partyBuildingActivityVO.getStatus();
+        if (null != status && status.intValue() == 4) {
+            partyBuildingActivityVO.setIsAppliets(1);
+        }
+        return partyBuildingWestService.pageActivity(partyBuildingActivityVO);
+    }
+
+    // @ApiOperation(value = "增加阅读记录")
+    // @PostMapping("adddynuser")
+    // public R addDynUser(@RequestBody PartyBuildingComPbDynVO partyBuildingComPbDynVO) {
+    // Long id = partyBuildingComPbDynVO.getId();
+    // if (ObjectUtils.isEmpty(id)||0==id) {
+    // return R.fail("主键id不能为空");
+    // }
+    // Long userId = this.getUserId();
+    // ComPbDynUserVO comPbDynUserVO=new ComPbDynUserVO();
+    // comPbDynUserVO.setCreateAt(new Date());
+    // comPbDynUserVO.setDynId(id);
+    // comPbDynUserVO.setUserId(userId);
+    // return partyBuildingService.addDynUser(comPbDynUserVO);
+    // }
+
+    @ApiOperation(value = "动态/政策文件详情", response = PartyBuildingComPbDynVO.class)
+    @GetMapping("infodynamic")
+    public R infoYnamic(@RequestParam("id") Long id) {
+        R r = partyBuildingWestService.infoYnamic(id);
+        if (R.isOk(r)) {
+            if (ObjectUtils.isEmpty(id) || 0 == id) {
+                return R.fail("主键id不能为空");
+            }
+            Long userId = null;
+            LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+            if (loginUserInfo != null) {
+                userId = loginUserInfo.getUserId();
+            }
+
+            PartyBuildingComPbDynVO partyBuildingComPbDynVO =
+                JSONObject.parseObject(JSONObject.toJSONString(r.getData()), PartyBuildingComPbDynVO.class);
+            if (userId != null) {
+                ComPbDynUserVO comPbDynUserVO = new ComPbDynUserVO();
+                comPbDynUserVO.setCreateAt(new Date());
+                comPbDynUserVO.setDynId(id);
+                comPbDynUserVO.setUserId(userId);
+                R r1 = partyBuildingWestService.addDynUser(comPbDynUserVO);
+                if (R.isOk(r1)) {
+                    partyBuildingComPbDynVO.setIsAdd(1);
+                } else {
+                    partyBuildingComPbDynVO.setIsAdd(0);
+                }
+            } else {
+                partyBuildingComPbDynVO.setIsAdd(0);
+            }
+            return R.ok(partyBuildingComPbDynVO);
+        }
+        return r;
+    }
+
+    @ApiOperation(value = "分页党委查询", response = PartyCommitteeVO.class)
+    @PostMapping("pagepartycommittee")
+    public R pagePartyCommittee(@RequestBody PartyCommitteeVO partyCommitteeVO) {
+        // Long communityId =this.getCommunityId();
+        // partyCommitteeVO.setCommunityId(communityId);
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            partyCommitteeVO.setCommunityId(loginUserInfo.getCommunityId());
+        }
+        return partyBuildingWestService.pagePartyCommittee(partyCommitteeVO);
+    }
+
+    @ApiOperation(value = "活动详情", response = PartyBuildingActivityVO.class)
+    @GetMapping("activityinfo")
+    public R activityinfo(@RequestParam("id") Long id) {
+        Long userId = this.getUserId();
+        return partyBuildingWestService.activityinfo(id, userId);
+    }
+
+    @ApiOperation(value = "党员活动人员参入列表", response = PartyBuildingMemberVO.class)
+    @GetMapping("listpartybuildingmember")
+    public R listPartyBuildingMember(@RequestParam("id") Long id) {
+        return partyBuildingWestService.listPartyBuildingMember(id);
+    }
+
+    @ApiOperation(value = "报名、取消报名党员活动")
+    @PutMapping("activitysignup")
+    public R putActivitySignUp(@RequestBody @Validated ActivitySignUpDTO activitySignUpDTO) {
+        Long userId = this.getUserId();
+        activitySignUpDTO.setUserId(userId);
+        Long id = activitySignUpDTO.getId();
+        R r = partyBuildingWestService.putActivitySignUp(activitySignUpDTO);
+        if (R.isOk(r) && activitySignUpDTO.getType().intValue() == 1) {
+            R r2 = partyBuildingWestService.activityinfo(id, userId);
+            PartyBuildingActivityVO partyBuildingActivityVO =
+                JSONObject.parseObject(JSONObject.toJSONString(r2.getData()), PartyBuildingActivityVO.class);
+            SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO();
+            sysUserNoticeVO.setUserId(userId);
+            sysUserNoticeVO.setType(1);
+            sysUserNoticeVO.setTitle("报名成功");
+            sysUserNoticeVO.setBusinessType(2);
+            sysUserNoticeVO.setBusinessTitle(partyBuildingActivityVO.getName());
+            Date activityTimeBegin = partyBuildingActivityVO.getActivityTimeBegin();
+            sysUserNoticeVO
+                .setBusinessContent(String.format("活动将于 %tF %tT  开始,请按时参加", activityTimeBegin, activityTimeBegin));
+            sysUserNoticeVO.setBusinessId(id);
+            sysUserNoticeVO.setStatus(0);
+            sysUserNoticeVO.setBusinessStatus(2);
+            R r1 = userService.addNotice(sysUserNoticeVO);
+            if (R.isOk(r1)) {
+                log.info("新增用户报名党建活动通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+            }
+        }
+        return r;
+    }
+
+    @ApiOperation(value = "创建党员活动")
+    @PostMapping("activityinfo")
+    public R addActivityinfo(@RequestBody @Validated(AddGroup.class) ComPbActivityDTO comPbActivityDTO) {
+        // 微信内容审核
+        String msg = comPbActivityDTO.getRichText();
+        if (StrUtil.isNotBlank(msg)) {
+            String result = checkService.checkMessageBy(msg, this.getLoginUserInfo().getOpenid(),this.getAppId());
+            if (StrUtil.isNotBlank(result)) {
+                return R.fail(501, "填写内容存在 " + result + " 违规信息");
+            }
+        }
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long userId = loginUserInfo.getUserId();
+        Long communityId = loginUserInfo.getCommunityId();
+        comPbActivityDTO.setCreateBy(userId);
+        comPbActivityDTO.setCommunityId(communityId);
+        Date date = new Date();
+        comPbActivityDTO.setReleaseTime(date);
+        Date activityTimeBegin = comPbActivityDTO.getActivityTimeBegin();
+        Date activityTimeEnd = comPbActivityDTO.getActivityTimeEnd();
+        boolean before = activityTimeEnd.before(activityTimeBegin);
+        if (before) {
+            return R.fail("活动结束时间不能早于开始时间");
+        }
+        // 1 待发布 2 未开始 3 报名中 4 进行中 5 已结束 6 已取消
+        int status = 2;
+        Date enrollTimeBegin = comPbActivityDTO.getEnrollTimeBegin();
+        Date enrollTimeEnd = comPbActivityDTO.getEnrollTimeEnd();
+        if (enrollTimeEnd.before(enrollTimeBegin)) {
+            return R.fail("报名结束时间不能早于报名开始时间");
+        }
+        if (enrollTimeBegin.before(date)) {
+            status = 3;
+        }
+        comPbActivityDTO.setStatus(status);
+        return partyBuildingWestService.addActivityApplets(comPbActivityDTO);
+    }
+
+    @ApiOperation(value = "分页查询服务团队成员", response = ComPbServiceTeamVO.class)
+    @PostMapping("pageserviceteam")
+    public R pageServiceTeam(@RequestBody PageComPbServiceTeamDTO pageComPbServiceTeamDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            pageComPbServiceTeamDTO.setCommunityId(loginUserInfo.getCommunityId());
+        }
+        // pageComPbServiceTeamDTO.setCommunityId(this.getCommunityId());
+        return partyBuildingWestService.pageServiceTeam(pageComPbServiceTeamDTO);
+    }
+
+    @ApiOperation(value = "社区所有启用的党组织列表", response = PartyOrganizationVO.class)
+    @PostMapping("listpartyorganization")
+    public R listPartyOrganization(@RequestBody ComListPartyDTO comListPartyDTO) {
+        // Long communityId = this.getCommunityId();
+        // log.info("社区所有党组织社区id【{}】", communityId);
+        // if(communityId != null){
+        // comListPartyDTO.setCommunityId(communityId);
+        // }
+        return partyBuildingWestService.listPartyOrganizationByApp(comListPartyDTO);
+    }
+
+    @OperLog(operModul = "党员管理", operType = 2)
+    @ApiOperation(value = "编辑党员")
+    @PutMapping("updatepartybuildingmember")
+    public R updatePartyBuildingMember(@RequestBody PartyBuildingMemberVO partyBuildingMemberVO) {
+        if(partyBuildingMemberVO.getIsPb()!=null){
+            Long id = partyBuildingMemberVO.getId();
+            if(partyBuildingMemberVO.getIsPb()==1){
+                if (null == id || 0 == id) {
+                    return partyBuildingWestService.addPartyBuildingMember(partyBuildingMemberVO);
+                }
+                return partyBuildingWestService.updatePartyBuildingMember(partyBuildingMemberVO);
+            }
+            return partyBuildingWestService.deleteprepartybuildingmember(id);
+        }
+        return R.fail();
+    }
+
+    @ApiOperation(value = "查询社区下所有党员报到单位", response = ComPbCheckUnitVo.class)
+    @PostMapping("/comPbCheckUnit/list")
+    public R getPbCheckUnitList(@RequestBody PageComPbCheckUnitDto comPbCheckUnit) {
+        if(comPbCheckUnit.getCommunityId() == null){
+            comPbCheckUnit.setCommunityId(this.getCommunityId());
+        }
+        return pbCheckUnitFeign.queryByList(comPbCheckUnit);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/RentingHourseOrderApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/RentingHourseOrderApi.java
new file mode 100644
index 0000000..987002f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/RentingHourseOrderApi.java
@@ -0,0 +1,114 @@
+package com.panzhihua.applets.api;
+
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.rentHouse.RentingHourseOrderVO;
+import com.panzhihua.common.model.vos.community.rentHouse.WxPayNotifyOrderVO;
+import com.panzhihua.common.model.vos.community.rentHouse.WxPayOrderVO;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * 房屋租赁-房屋订单表(RentingHourseOrder)表控制层
+ *
+ * @author makejava
+ * @since 2021-11-23 10:46:57
+ */
+@RestController
+@Slf4j
+@Api(tags = {"房屋租赁普通订单相关接口"})
+@RequestMapping("rentingHourseOrder")
+public class RentingHourseOrderApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "分页查询所有数据",response = RentingHourseOrderVO.class)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        commonPage.setCommunityId(this.getCommunityId());
+        return communityService.selectRentingHourseOrderAll(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation(value = "分页查询所有数据")
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return communityService.selectRentingHourseOrderOne(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param rentingHourseOrder 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation("创建订单")
+    @PostMapping
+    public R insert(@RequestBody RentingHourseOrderVO rentingHourseOrder) {
+        rentingHourseOrder.setCommunityId(this.getCommunityId());
+        return communityService.insertRentingHourseOrder(rentingHourseOrder);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param rentingHourseOrdervo 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody RentingHourseOrderVO rentingHourseOrdervo) {
+        return communityService.updateRentingHourseOrder(rentingHourseOrdervo);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @ApiOperation("删除")
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return communityService.deleteRentingHourseOrder(id);
+    }
+
+    /**
+     * 支付回调处理订单状态以及房屋状态
+     */
+    @ApiOperation("支付回调处理订单状态以及房屋状态")
+    @PostMapping("/wxNotify")
+    public R wxNotify(@RequestBody WxPayNotifyOrderVO wxPayNotifyOrderVO){
+        return communityService.wxNotifyRentingHourseOrder(wxPayNotifyOrderVO);
+    }
+
+    /**
+     * 支付付款
+     */
+    @ApiOperation("支付付款")
+    @PostMapping("/wxPay")
+    public R wxPay(@RequestBody WxPayOrderVO wxPayOrderVO){
+        return communityService.wxPayRentingHourseOrder(wxPayOrderVO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/RentingHoursePreOrderApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/RentingHoursePreOrderApi.java
new file mode 100644
index 0000000..33a5f03
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/RentingHoursePreOrderApi.java
@@ -0,0 +1,95 @@
+package com.panzhihua.applets.api;
+
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.rentHouse.RentingHoursePreOrderVO;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * 房屋租赁-房屋定金订单表(RentingHoursePreOrder)表控制层
+ *
+ * @author makejava
+ * @since 2021-11-23 10:47:54
+ */
+@RestController
+@Slf4j
+@Api(tags = {"房屋租赁定金订单相关接口"})
+@RequestMapping("rentingHoursePreOrder")
+public class RentingHoursePreOrderApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "分页查询",response = RentingHoursePreOrderVO.class)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        commonPage.setCommunityId(this.getCommunityId());
+        return communityService.selectAllRentingHoursePreOrder(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation(value = "详情",response = RentingHoursePreOrderVO.class)
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return communityService.selectOneRentingHoursePreOrder(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param rentingHoursePreOrderVO 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation(value = "创建定金订单")
+    @PostMapping
+    public R insert(@RequestBody RentingHoursePreOrderVO rentingHoursePreOrderVO) {
+        rentingHoursePreOrderVO.setCommunityId(this.getCommunityId());
+        return communityService.insertRentingHoursePreOrder(rentingHoursePreOrderVO);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param rentingHoursePreOrderVO 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation("修改")
+    @PostMapping("/update")
+    public R update(@RequestBody RentingHoursePreOrderVO rentingHoursePreOrderVO) {
+       return communityService.updateRentingHoursePreOrder(rentingHoursePreOrderVO);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @ApiOperation("删除数据")
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return communityService.deleteRentingHoursePreOrder(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/RentingHousesApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/RentingHousesApi.java
new file mode 100644
index 0000000..7c4fa04
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/RentingHousesApi.java
@@ -0,0 +1,210 @@
+package com.panzhihua.applets.api;
+
+import java.util.Objects;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+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.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.dtos.community.rentingHouses.NearbyDTO;
+import com.panzhihua.common.model.dtos.community.rentingHouses.PageRentingHouseRegisterDTO;
+import com.panzhihua.common.model.dtos.community.rentingHouses.ReleaseOrCancelHouseDTO;
+import com.panzhihua.common.model.dtos.community.rentingHouses.RentingHouseRegisterDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.rentingHouses.RentingHouseRegisterVO;
+import com.panzhihua.common.model.vos.community.rentingHouses.RentingHousesConfigVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.TencentUtils;
+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 lombok.extern.slf4j.Slf4j;
+
+/**
+ * @title: RentingHousesApi
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 房屋租赁相关接口
+ * @author: hans
+ * @date: 2021/11/24 10:18
+ */
+@RestController
+@Slf4j
+@Api(tags = {"房屋租赁相关接口"})
+@RequestMapping("/renting/houses")
+public class RentingHousesApi extends BaseController {
+
+    private static final int NOT_COMMUNITY_WORKER = 2;
+
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private UserService userService;
+
+    @ApiOperation("新增房源信息")
+    @PostMapping("/register")
+    public R registerRentingHouse(@RequestBody @Validated(AddGroup.class) RentingHouseRegisterDTO registerDTO) {
+        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
+        checkIsCommunityWorker(loginUserInfo);
+        registerDTO.setUserId(loginUserInfo.getUserId());
+        registerDTO.setCommunityId(loginUserInfo.getCommunityId());
+        return communityService.registerRentingHouse(registerDTO);
+    }
+
+    @ApiOperation("编辑房源信息")
+    @PostMapping("/update")
+    public R updateRentingHouse(@RequestBody @Validated(PutGroup.class) RentingHouseRegisterDTO registerDTO) {
+        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
+        checkIsCommunityWorker(loginUserInfo);
+        registerDTO.setUserId(loginUserInfo.getUserId());
+        registerDTO.setCommunityId(loginUserInfo.getCommunityId());
+        return communityService.updateRentingHouse(registerDTO);
+    }
+
+    @ApiOperation(value = "工作人员-分页获取房源信息", response = RentingHouseRegisterVO.class)
+    @PostMapping("/pageAdmin")
+    public R pageRentingHouse(@RequestBody @Valid PageRentingHouseRegisterDTO pageRegisterDTO) {
+        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
+        pageRegisterDTO.setCommunityId(loginUserInfo.getCommunityId());
+        return communityService.pageRentingHouse(pageRegisterDTO);
+    }
+
+    @ApiOperation("发布/取消发布 房源信息")
+    @PutMapping("/releaseOrCancel")
+    public R releaseOrCancelHouse(@RequestBody @Valid ReleaseOrCancelHouseDTO releaseOrCancelHouseDTO) {
+        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
+        checkIsCommunityWorker(loginUserInfo);
+        return communityService.releaseOrCancelHouse(releaseOrCancelHouseDTO);
+    }
+
+    @ApiOperation(value = "获取详情-房源信息", response = RentingHouseRegisterVO.class)
+    @GetMapping("/get")
+    @ApiImplicitParam(name = "registerId", value = "房源登记id", required = true)
+    public R getRentingHouse(@RequestParam("registerId") Long registerId) {
+        LoginUserInfoVO loginUserInfoSureNoLogin = getLoginUserInfoSureNoLogin();
+        Integer isLandlord = 2;
+        R rentingHouseR = communityService.getRentingHouse(registerId);
+        if (R.isOk(rentingHouseR)) {
+            RentingHouseRegisterVO houseRegisterVO = JSONObject.parseObject(JSONObject.toJSONString(rentingHouseR.getData()), RentingHouseRegisterVO.class);
+            if (Objects.nonNull(loginUserInfoSureNoLogin)) {
+                String userId = loginUserInfoSureNoLogin.getUserId().toString();
+                R<LoginUserInfoVO> infoVOR = userService.getUserInfoByUserId(userId);
+                if (R.isOk(infoVOR)) {
+                    LoginUserInfoVO loginUserInfoVO = JSONObject.parseObject(JSONObject.toJSONString(infoVOR.getData()), LoginUserInfoVO.class);
+                    if (houseRegisterVO.getHourseIdCard().equals(loginUserInfoVO.getIdCard())) {
+                        isLandlord = 1;
+                    }
+                }
+            }
+            houseRegisterVO.setIsLandlord(isLandlord);
+            return R.ok(houseRegisterVO);
+        }
+        return rentingHouseR;
+    }
+    @ApiOperation("房源认证获取eidToken")
+    @GetMapping("/getEidToken")
+    public R getEidToken(@RequestParam("registerId") Long registerId){
+        R r=communityService.getRentingHouse(registerId);
+        if(R.isOk(r)){
+            RentingHouseRegisterVO registerVO=JSONObject.parseObject(JSONObject.toJSONString(r.getData()),RentingHouseRegisterVO.class);
+            String result=TencentUtils.getEidToken(registerVO.getHourseOwnerName(),registerVO.getHourseIdCard());
+            return R.ok(result);
+        }
+        return R.fail();
+    }
+    @ApiOperation("房源认证")
+    @GetMapping("/auth")
+    public R authHouse(@RequestParam("registerId") Long registerId,@RequestParam("result")String result){
+        R r=communityService.getRentingHouse(registerId);
+        if(R.isOk(r)){
+            String response=TencentUtils.getEidResult(result);
+            JSONObject object = JSON.parseObject(response);
+            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("核验失败");
+            }
+            RentingHouseRegisterDTO registerDTO=new RentingHouseRegisterDTO();
+            registerDTO.setId(registerId);
+            registerDTO.setAuthStatus(2);
+            registerDTO.setDetailStatus(2);
+            registerDTO.setHourseOwnerUserId(getUserId());
+            return communityService.updateRentingHouse(registerDTO);
+        }
+        return R.fail();
+    }
+
+    /**
+     * 附近的房源
+     */
+    @ApiOperation(value = "附近的房源",response =RentingHouseRegisterVO.class)
+    @PostMapping("/nearby")
+    public R nearby(@RequestBody NearbyDTO nearbyDTO){
+        LoginUserInfoVO loginUserInfoSureNoLogin = getLoginUserInfoSureNoLogin();
+        if (Objects.nonNull(loginUserInfoSureNoLogin)) {
+            nearbyDTO.setCommunityId(loginUserInfoSureNoLogin.getCommunityId());
+        }
+        return communityService.nearby(nearbyDTO);
+    }
+
+    /**
+     * 小程序分页获取房源信息
+     * @param pageRegisterDTO
+     * @return
+     */
+    @ApiOperation(value = "小程序分页获取房源信息",response =RentingHouseRegisterVO.class)
+    @PostMapping("/houseList")
+    public R pageRentingHouseApplet(@RequestBody PageRentingHouseRegisterDTO pageRegisterDTO) {
+        Integer isMy = pageRegisterDTO.getIsMy();
+        if (Objects.nonNull(isMy) && isMy.intValue() == 1) {
+            pageRegisterDTO.setCurrentUserId(getUserId());
+        }
+        return communityService.pageRentingHouseApplet(pageRegisterDTO);
+    }
+
+
+    @ApiOperation(value = "获取房屋租赁配置",response = RentingHousesConfigVO.class)
+    @GetMapping("/getConfig")
+    @ApiImplicitParam(name = "type", value = "配置类型(1.房屋租赁合同 2.租赁合同变更协议 3.定金协议 4.房屋委托代理合同" +
+            "5.平台须知 6.房源标签)", required = true)
+    public R getRentingHouseConfig(@RequestParam("type") Integer type) {
+        return communityService.getRentingHouseConfig(type);
+    }
+
+    @ApiOperation("删除房源信息")
+    @DeleteMapping("/delete")
+    @ApiImplicitParam(name = "registerId", value = "房源登记id", required = true)
+    public R deleteRentingHouse(@RequestParam("registerId") Long registerId) {
+        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
+        checkIsCommunityWorker(loginUserInfo);
+        return communityService.deleteRentingHouse(registerId);
+    }
+
+    private void checkIsCommunityWorker(LoginUserInfoVO loginUserInfo) {
+        if (loginUserInfo.getIsCommunityWorker().intValue() == NOT_COMMUNITY_WORKER) {
+            throw new ServiceException("401", "暂无权限");
+        }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ShopApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ShopApi.java
new file mode 100644
index 0000000..e7e43e8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ShopApi.java
@@ -0,0 +1,258 @@
+package com.panzhihua.applets.api;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.*;
+
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.applets.config.WxMaProperties;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.shop.*;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.shop.*;
+import com.panzhihua.common.service.community.CommunityService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:49
+ * @describe 商城模块API
+ */
+@Slf4j
+@RestController
+@RequestMapping("/shop/")
+@Api(tags = {"商城服务"})
+public class ShopApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private WxMaProperties properties;
+
+    @ApiOperation(value = "分页查询店铺", response = PageShopStoreVO.class)
+    @PostMapping("pageshopstore")
+    public R pageShopStore(@RequestBody PageComShopStoreDTO comShopStoreDTO) {
+        PageComShopSysConfDTO pageComShopSysConfDTO = new PageComShopSysConfDTO();
+        R conf = communityService.pageShopSysConf(pageComShopSysConfDTO);
+        if (R.isOk(conf) && conf.getData() != null) {
+            ComShopSysConfVO comShopSysConfVO =
+                JSONObject.parseObject(JSONObject.toJSONString(conf.getData()), ComShopSysConfVO.class);
+            if ("1".equals(comShopSysConfVO.getVal()) && "1".equals(comShopSysConfVO.getEnabled())) {
+                return R.ok();
+            }
+        }
+        return communityService.pageShopStore(comShopStoreDTO);
+    }
+
+    @ApiOperation(value = "查询店铺详情", response = PageShopStoreVO.class)
+    @PostMapping("shopstoredetail")
+    public R shopStoreDetail(@RequestBody PageComShopStoreDTO comShopStoreDTO) {
+        if (comShopStoreDTO == null || comShopStoreDTO.getStoreId() == null) {
+            return R.fail("参数错误");
+        }
+        return communityService.shopStoreDetail(comShopStoreDTO);
+    }
+
+    @ApiOperation(value = "分页查询商品列表", response = ComShopGoodsVO.class)
+    @PostMapping("pageShopGoods")
+    public R pageShopGoods(@RequestBody ComShopGoodsDTO comShopGoodsDTO) {
+        return communityService.pageShopGoods(comShopGoodsDTO);
+    }
+
+    @ApiOperation(value = "查询商品详情", response = ComShopGoodsVO.class)
+    @PostMapping("shopGoodsDetail")
+    @ApiImplicitParam(name = "goodsId", value = "商品id", required = true)
+    public R shopGoodsDetail(@RequestParam("goodsId") Long goodsId) {
+        return communityService.shopGoodsDetail(goodsId);
+    }
+
+    @ApiOperation(value = "查询用户购物车列表", response = ComShopCartVO.class)
+    @PostMapping("shopCartList")
+    public R shopCartList() {
+        Long userId = this.getUserId();
+        if (userId == null) {
+            return R.fail("请重新登陆");
+        }
+        return communityService.shopCartList(userId);
+    }
+
+    @ApiOperation(value = "查询用户购物车商品数量")
+    @PostMapping("shopCartUserTotal")
+    public R shopCartUserTotal() {
+        Long userId = this.getUserId();
+        if (userId == null) {
+            return R.fail("请重新登陆");
+        }
+        PageComShopSysConfDTO pageComShopSysConfDTO = new PageComShopSysConfDTO();
+        R conf = communityService.pageShopSysConf(pageComShopSysConfDTO);
+        if (R.isOk(conf) && conf.getData() != null) {
+            ComShopSysConfVO comShopSysConfVO =
+                JSONObject.parseObject(JSONObject.toJSONString(conf.getData()), ComShopSysConfVO.class);
+            if ("1".equals(comShopSysConfVO.getVal()) && "1".equals(comShopSysConfVO.getEnabled())) {
+                return R.ok(0);
+            }
+        }
+        return communityService.shopCartUserTotal(userId);
+    }
+
+    @ApiOperation(value = "购物车添加")
+    @PostMapping("shopAddCart")
+    public R shopAddCart(@RequestBody ComShopCartDTO comShopCartDTO) {
+        Long userId = this.getUserId();
+        if (userId == null) {
+            return R.fail("请重新登陆");
+        }
+        comShopCartDTO.setUserId(userId);
+        return communityService.shopAddCart(comShopCartDTO);
+    }
+
+    @ApiOperation(value = "购物车修改")
+    @PostMapping("shopEditNubCart")
+    public R shopEditNubCart(@RequestBody ComShopEditNubCartDTO shopEditNubCartDTO) {
+        return communityService.shopEditNubCart(shopEditNubCartDTO);
+    }
+
+    @ApiOperation(value = "购物车删除")
+    @PostMapping("shopDelCart")
+    public R shopDelCart(@RequestBody List<Long> Ids) {
+        return communityService.shopDelCart(Ids);
+    }
+
+    @ApiOperation(value = "查询用户收货地址列表", response = ComShopUserAddressVO.class)
+    @PostMapping("shopUserAddressList")
+    public R shopUserAddressList(@RequestBody PageComShopAddressDTO comShopAddressDTO) {
+        Long userId = this.getUserId();
+        if (userId == null) {
+            return R.fail("请重新登陆");
+        }
+        comShopAddressDTO.setUserId(userId);
+        return communityService.shopUserAddressList(comShopAddressDTO);
+    }
+
+    @ApiOperation(value = "添加用户收货地址列表")
+    @PostMapping("shopAddUserAddress")
+    public R shopAddUserAddress(@RequestBody ComShopAddressDTO comShopAddressDTO) {
+        Long userId = this.getUserId();
+        if (userId == null) {
+            return R.fail("请重新登陆");
+        }
+        comShopAddressDTO.setUserId(userId);
+        return communityService.shopAddUserAddress(comShopAddressDTO);
+    }
+
+    @ApiOperation(value = "修改用户收货地址列表")
+    @PostMapping("shopEditUserAddress")
+    public R shopEditUserAddress(@RequestBody ComShopAddressDTO comShopAddressDTO) {
+        Long userId = this.getUserId();
+        if (userId == null) {
+            return R.fail("请重新登陆");
+        }
+        comShopAddressDTO.setUserId(userId);
+        return communityService.shopEditUserAddress(comShopAddressDTO);
+    }
+
+    @ApiOperation(value = "删除用户收货地址列表")
+    @PostMapping("shopDelUserAddress")
+    @ApiImplicitParam(name = "addressId", value = "收货地址id", required = true)
+    public R shopDelUserAddress(@RequestParam("addressId") Long addressId) {
+        return communityService.shopDelUserAddress(addressId);
+    }
+
+    @ApiOperation(value = "订单预览", response = ComShopOrderPreviewVO.class)
+    @PostMapping("orderPreview")
+    public R orderPreview(@RequestBody ComShopOrderPreviewDTO orderPreviewDTO) {
+        Long userId = this.getUserId();
+        if (userId == null) {
+            return R.fail("请重新登陆");
+        }
+        orderPreviewDTO.setUserId(userId);
+        return communityService.orderPreview(orderPreviewDTO);
+    }
+
+    @ApiOperation(value = "创建订单", response = ComShopOrderVO.class)
+    @PostMapping("orderCreate")
+    public R orderCreate(@RequestBody ComShopOrderCreateDTO orderCreateDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请重新登陆");
+        }
+        orderCreateDTO.setUserId(loginUserInfo.getUserId());
+        orderCreateDTO.setPhone(loginUserInfo.getPhone());
+        orderCreateDTO.setOpenId(loginUserInfo.getOpenid());
+        return communityService.orderCreate(orderCreateDTO);
+    }
+
+    @ApiOperation(value = "分页查询订单列表", response = ComShopOrderPageVO.class)
+    @PostMapping("pageOrderList")
+    public R pageOrderList(@RequestBody PageComOrderListDTO comOrderListDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请重新登陆");
+        }
+        comOrderListDTO.setUserId(loginUserInfo.getUserId());
+        return communityService.pageOrderList(comOrderListDTO);
+    }
+
+    @ApiOperation(value = "查询订单详情", response = ComShopOrderPageVO.class)
+    @PostMapping("orderDetail")
+    @ApiImplicitParam(name = "orderId", value = "订单id", required = true)
+    public R orderDetail(@RequestParam("orderId") Long orderId) {
+        return communityService.orderDetail(orderId);
+    }
+
+    @ApiOperation(value = "取消订单")
+    @PostMapping("orderCancel")
+    public R orderCancel(@RequestBody ComShopOrderQueryDTO comShopOrderQueryDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请重新登陆");
+        }
+        return communityService.orderCancel(comShopOrderQueryDTO);
+    }
+
+    @ApiOperation(value = "删除订单")
+    @PostMapping("orderDelete")
+    @ApiImplicitParam(name = "orderId", value = "订单id", required = true)
+    public R orderDelete(@RequestParam("orderId") Long orderId) {
+        return communityService.orderDelete(orderId);
+    }
+
+    @ApiOperation(value = "订单确认收货")
+    @PostMapping("orderConfirm")
+    public R orderConfirm(@RequestBody ComShopOrderQueryDTO comShopOrderQueryDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请重新登陆");
+        }
+        return communityService.orderConfirm(comShopOrderQueryDTO);
+    }
+
+    @ApiOperation(value = "统计当前用户订单", response = OrderStatisticsVO.class)
+    @PostMapping("orderStatistics")
+    public R orderStatistics() {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请重新登陆");
+        }
+        return communityService.orderStatistics(loginUserInfo.getUserId());
+    }
+
+    @ApiOperation(value = "小程序微信调起支付")
+    @PostMapping("wxpay")
+    public R wxPay(@RequestBody OrderPayDTO orderPayDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请重新登陆");
+        }
+        orderPayDTO.setOpenId(loginUserInfo.getOpenid());
+        return communityService.wxPay(orderPayDTO);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ShopFlowerApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ShopFlowerApi.java
new file mode 100644
index 0000000..6bc3eb8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/ShopFlowerApi.java
@@ -0,0 +1,575 @@
+package com.panzhihua.applets.api;
+
+import cn.hutool.core.util.StrUtil;
+import com.panzhihua.applets.weixin.CheckService;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.convenient.ConvenientMerchantDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PageConvenientServiceCategoryDTO;
+import com.panzhihua.common.model.dtos.shop.*;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientElevatingPointOrderVO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientElevatingPointVO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientServiceCategoryVO;
+import com.panzhihua.common.model.vos.shop.*;
+import com.panzhihua.common.service.community.CommunityService;
+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.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * @auther yh
+ * @create 2022-11-08 17:25:45
+ * @describe 商城模块API
+ */
+@Slf4j
+@RestController
+@RequestMapping("/shopFlower/")
+@Api(tags = {"花城商城服务"})
+public class ShopFlowerApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private CheckService checkService;
+
+
+    @ApiOperation(value = "查询便民服务商家详情", response = ConvenientMerchantVO.class)
+    @GetMapping("/merchant/getMerchantByUserId")
+    public R getMerchant(@RequestParam("userId") Long userId) {
+        return communityService.getMerchantByUserId(userId);
+    }
+
+    @ApiOperation(value = "编辑便民服务商家")
+    @PutMapping("/merchant/put")
+    public R putMerchant(@RequestBody @Validated(PutGroup.class) ConvenientMerchantDTO convenientMerchantDTO) {
+        convenientMerchantDTO.setUpdatedBy(this.getUserId());
+        return communityService.putMerchant(convenientMerchantDTO);
+    }
+
+    @ApiOperation(value = "分页查询商品列表", response = ComShopFlowerGoodsVO.class)
+    @PostMapping("pageShopGoods")
+    public R pageShopGoods(@RequestBody ComShopFlowerGoodsDTO comShopGoodsDTO) {
+        return communityService.pageShopFlowerGoodsByApp(comShopGoodsDTO);
+    }
+
+    @ApiOperation(value = "查询商品详情", response = ComShopFlowerGoodsVO.class)
+    @GetMapping("shopGoodsDetail")
+    @ApiImplicitParam(name = "goodsId", value = "商品id", required = true)
+    public R shopGoodsDetail(@RequestParam("goodsId") Long goodsId) {
+        return communityService.shopFlowerGoodsDetail(goodsId);
+    }
+
+    @ApiOperation(value = "删除商品")
+    @DeleteMapping("/goods/delete")
+    public R deleteShopGoods(@RequestParam("goodsId") Long goodsId) {
+        return communityService.deleteFlowerShopGoods(goodsId);
+    }
+
+    @ApiOperation(value = "商品上下架")
+    @ApiImplicitParams({@ApiImplicitParam(name = "id", value = "商品Id"),
+            @ApiImplicitParam(name = "status", value = "1.上架  2.下架 ")})
+    @GetMapping("/goods/changeStatus")
+    public R changeStatus(@RequestParam("id") Long id, @RequestParam("status") Integer status) {
+        return communityService.changeFlowerStatus(id, status);
+    }
+
+    @ApiOperation(value = "编辑商品")
+    @PostMapping("/goods/edit/{id}")
+    public R editShopGoods(@PathVariable("id") Long id,
+                           @RequestBody @Validated(AddGroup.class) AddShopFlowerGoodsVO addShopGoodsVO) {
+        return communityService.editFlowerShopGoods(id, addShopGoodsVO);
+    }
+
+    @ApiOperation(value = "新增商品")
+    @PostMapping("/goods/save")
+    public R saveShopGoods(@RequestBody @Validated(AddGroup.class) AddShopFlowerGoodsVO addShopGoodsVO) {
+        return communityService.saveFlowerShopGoods(addShopGoodsVO);
+    }
+
+    @ApiOperation(value = "查询用户收货地址列表", response = ComShopUserAddressVO.class)
+    @PostMapping("shopUserAddressList")
+    public R shopUserAddressList(@RequestBody PageComShopAddressDTO comShopAddressDTO) {
+        Long userId = this.getUserId();
+        if (userId == null) {
+            return R.fail("请重新登陆");
+        }
+        comShopAddressDTO.setUserId(userId);
+        return communityService.shopFlowerUserAddressList(comShopAddressDTO);
+    }
+
+    @ApiOperation(value = "添加用户收货地址列表")
+    @PostMapping("shopAddUserAddress")
+    public R shopAddUserAddress(@RequestBody ComShopAddressDTO comShopAddressDTO) {
+        Long userId = this.getUserId();
+        if (userId == null) {
+            return R.fail("请重新登陆");
+        }
+        comShopAddressDTO.setUserId(userId);
+        return communityService.shopFlowerAddUserAddress(comShopAddressDTO);
+    }
+
+    @ApiOperation(value = "修改用户收货地址列表")
+    @PostMapping("shopEditUserAddress")
+    public R shopEditUserAddress(@RequestBody ComShopAddressDTO comShopAddressDTO) {
+        Long userId = this.getUserId();
+        if (userId == null) {
+            return R.fail("请重新登陆");
+        }
+        comShopAddressDTO.setUserId(userId);
+        return communityService.shopFlowerEditUserAddress(comShopAddressDTO);
+    }
+
+    @ApiOperation(value = "删除用户收货地址列表")
+    @DeleteMapping("shopDelUserAddress")
+    @ApiImplicitParam(name = "addressId", value = "收货地址id", required = true)
+    public R shopDelUserAddress(@RequestParam("addressId") Long addressId) {
+        return communityService.shopFlowerDelUserAddress(addressId);
+    }
+
+    @ApiOperation(value = "订单预览", response = ComShopOrderPreviewVO.class)
+    @PostMapping("orderPreview")
+    public R orderPreview(@RequestBody ComShopOrderPreviewDTO orderPreviewDTO) {
+        Long userId = this.getUserId();
+        if (userId == null) {
+            return R.fail("请重新登陆");
+        }
+        orderPreviewDTO.setUserId(userId);
+        return communityService.orderPreviewFlower(orderPreviewDTO);
+    }
+
+    @ApiOperation(value = "创建订单", response = ComShopOrderVO.class)
+    @PostMapping("orderCreate")
+    public R orderCreate(@RequestBody ComShopOrderCreateDTO orderCreateDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请重新登陆");
+        }
+        orderCreateDTO.setUserId(loginUserInfo.getUserId());
+        orderCreateDTO.setPhone(loginUserInfo.getPhone());
+        orderCreateDTO.setOpenId(loginUserInfo.getOpenid());
+        return communityService.orderCreateFlower(orderCreateDTO);
+    }
+
+    @ApiOperation(value = "分页查询订单列表", response = ComShopFlowerOrderPageVO.class)
+    @PostMapping("pageOrderList")
+    public R pageOrderList(@RequestBody PageComFlowerOrderListDTO comOrderListDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请重新登陆");
+        }
+        comOrderListDTO.setUserId(loginUserInfo.getUserId());
+        return communityService.pageOrderListFlower(comOrderListDTO);
+    }
+
+    @ApiOperation(value = "查询订单详情", response = ComShopFlowerOrderPageVO.class)
+    @GetMapping("orderDetail")
+    @ApiImplicitParam(name = "orderId", value = "订单id", required = true)
+    public R orderDetail(@RequestParam("orderId") Long orderId) {
+        return communityService.orderDetailFlower(orderId,null);
+    }
+
+    @ApiOperation(value = "自提点查询订单详情", response = ComShopFlowerOrderPageVO.class)
+    @GetMapping("pointOrderDetail")
+    @ApiImplicitParam(name = "orderId", value = "订单id", required = true)
+    public R pointOrderDetail(@RequestParam("orderId") Long orderId) {
+        String phone = this.getLoginUserInfo().getPhone();
+        return communityService.orderDetailFlower(orderId,phone);
+    }
+
+    @ApiOperation(value = "取消订单")
+    @PostMapping("orderCancel")
+    public R orderCancel(@RequestBody ComShopOrderQueryDTO comShopOrderQueryDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请重新登陆");
+        }
+        return communityService.orderCancelFlower(comShopOrderQueryDTO);
+    }
+
+    @ApiOperation(value = "删除订单")
+    @DeleteMapping("orderDelete")
+    @ApiImplicitParam(name = "orderId", value = "订单id", required = true)
+    public R orderDelete(@RequestParam("orderId") Long orderId) {
+        return communityService.orderDeleteFlower(orderId);
+    }
+
+    @ApiOperation(value = "订单确认收货")
+    @PostMapping("orderConfirm")
+    public R orderConfirm(@RequestBody ComShopOrderQueryDTO comShopOrderQueryDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请重新登陆");
+        }
+        return communityService.orderConfirmFlower(comShopOrderQueryDTO);
+    }
+
+
+    @ApiOperation(value = "小程序微信调起支付")
+    @PostMapping("wxpay")
+    public R wxPay(@RequestBody OrderPayDTO orderPayDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请重新登陆");
+        }
+        orderPayDTO.setOpenId(loginUserInfo.getOpenid());
+        return communityService.wxPayFlower(orderPayDTO);
+    }
+
+    /**
+     * 获取当前商铺周围的自提点信息以及距离手机距离
+     *
+     * @param merchantId
+     * @return
+     */
+    @ApiOperation(value = "获取自提点",response = ConvenientElevatingPointVO.class)
+    @ApiImplicitParams({@ApiImplicitParam(name = "merchantId", value = "商家Id", required = true),
+            @ApiImplicitParam(name = "lat", value = "经度", required = true), @ApiImplicitParam(name = "lng", value = "纬度", required = true)})
+    @GetMapping("/point/findPointByMerchantId")
+    public R findPointByMerchantId(@RequestParam("merchantId") Long merchantId, @RequestParam("lat") String lat, @RequestParam("lng") String lng) {
+        return communityService.findPointByMerchantId(merchantId, lat, lng);
+    }
+    /**
+     * 获取商家周围 n(km)的自提点数量
+     *
+     * @param distance
+     * @return
+     */
+    @ApiOperation(value = "获取商家周围 n(km)的自提点数量")
+    @ApiImplicitParams({@ApiImplicitParam(name = "distance", value = "距离", required = false),
+            @ApiImplicitParam(name = "lat", value = "经度", required = true), @ApiImplicitParam(name = "lng", value = "纬度", required = true)})
+    @GetMapping("/point/findPointNumByDistance")
+    public R findPointNumByDistance(@RequestParam(value = "distance",required = false) Integer distance, @RequestParam("lat") String lat, @RequestParam("lng") String lng) {
+        if (null == distance){
+            return R.ok(0);
+        }
+        return communityService.findPointNumByDistance(distance, lat, lng);
+    }
+
+    /**
+     * 保存评价
+     *
+     * @param comShopFlowerEvaluateDTO
+     * @return
+     */
+    @ApiOperation(value = "保存评价")
+    @PostMapping("/saveEvaluate")
+    public R saveEvaluate(@RequestBody ComShopFlowerEvaluateDTO comShopFlowerEvaluateDTO) {
+        String evaluateContent = comShopFlowerEvaluateDTO.getEvaluateContent();
+        if (StrUtil.isNotBlank(evaluateContent)) {
+            String result = checkService.checkMessageBy(evaluateContent, this.getLoginUserInfo().getOpenid(), this.getAppId());
+            if (StrUtil.isNotBlank(result)) {
+                return R.fail(501, "填写内容存在 " + result + " 违规信息");
+            }
+        }
+        comShopFlowerEvaluateDTO.setUserId(this.getUserId());
+        return communityService.saveEvaluate(comShopFlowerEvaluateDTO);
+    }
+
+    /**
+     * 分页查询评价
+     *
+     * @param pageComShopFlowerEvaluateDTO
+     * @return
+     */
+    @ApiOperation(value = "分页查询评价", response = ComShopFlowerEvaluateVO.class)
+    @PostMapping("/pageEvaluate")
+    public R pageEvaluate(@RequestBody PageComShopFlowerEvaluateDTO pageComShopFlowerEvaluateDTO) {
+        return communityService.pageEvaluate(pageComShopFlowerEvaluateDTO);
+    }
+
+    /**
+     * 评价详情
+     *
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "评价详情")
+    @GetMapping("/detailEvaluate")
+    public R detailEvaluate(@RequestParam("id") Long id) {
+        return communityService.detailEvaluate(id);
+    }
+
+    /**
+     * 删除评价
+     *
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "删除评价")
+    @DeleteMapping("deleteEvaluate")
+    public R deleteEvaluate(@RequestParam("id") Long id) {
+        return communityService.deleteEvaluate(id);
+    }
+
+    /**
+     * 取货码
+     *
+     * @param orderId
+     * @return
+     */
+    @ApiOperation(value = "取货码")
+    @GetMapping("getQRCode")
+    @ApiImplicitParam(name = "orderId", value = "订单id", required = true)
+    public R getQRCode(@RequestParam("orderId") Long orderId) {
+        return communityService.getQRCode(orderId);
+    }
+
+    /**
+     * 保存配送单
+     *
+     * @param comShopFlowerOrderDeliveryDTO
+     */
+    @PostMapping("saveDelivery")
+    @ApiOperation(value = "保存配送单")
+    public R saveDelivery(@RequestBody ComShopFlowerOrderDeliveryDTO comShopFlowerOrderDeliveryDTO) {
+        return communityService.saveDelivery(comShopFlowerOrderDeliveryDTO);
+    }
+
+    /**
+     * 更新配送单
+     *
+     * @param comShopFlowerOrderDeliveryDTO
+     */
+    @PostMapping("updateDelivery")
+    @ApiOperation(value = "更新配送单")
+    public R updateDelivery(@RequestBody ComShopFlowerOrderDeliveryDTO comShopFlowerOrderDeliveryDTO) {
+        return communityService.updateDelivery(comShopFlowerOrderDeliveryDTO);
+    }
+
+    /**
+     * 已配送、已送达 分页查询
+     *
+     * @param pageComFlowerOrderDeliveryDTO
+     * @return
+     */
+    @PostMapping("pageDelivery")
+    @ApiOperation(value = "已配送、已送达 分页查询", response = ComShopFlowerOrderDeliveryVO.class)
+    public R pageDelivery(@RequestBody PageComFlowerOrderDeliveryDTO pageComFlowerOrderDeliveryDTO) {
+        return communityService.pageDelivery(pageComFlowerOrderDeliveryDTO);
+    }
+
+    /**
+     * 未配送 分页查询
+     *
+     * @param pageComFlowerOrderDeliveryDTO
+     * @return
+     */
+    @ApiOperation(value = "未配送 分页查询", response = ConvenientElevatingPointVO.class)
+    @PostMapping("pageNoDelivery")
+    public R pageNoDelivery(@RequestBody PageComFlowerOrderDeliveryDTO pageComFlowerOrderDeliveryDTO) {
+        return communityService.pageNoDelivery(pageComFlowerOrderDeliveryDTO);
+    }
+
+    /**
+     * 未配送-开始配送-订单列表
+     *
+     * @param pageComFlowerOrderListDTO
+     * @return
+     */
+    @ApiOperation(value = "未配送-开始配送-订单列表", response = ConvenientElevatingPointOrderVO.class)
+    @PostMapping("pageNoDeliveryOrderList")
+    public R pageNoDeliveryOrderList(@RequestBody PageComFlowerOrderListDTO pageComFlowerOrderListDTO) {
+        return communityService.pageNoDeliveryOrderList(pageComFlowerOrderListDTO);
+    }
+
+    /**
+     * 根据商家id查询商家的订单
+     *
+     * @param pageComFlowerOrderListDTO
+     * @return
+     */
+    @ApiOperation(value = "根据商家id分页查询商家的订单", response = ComShopFlowerOrderStoreListVO.class)
+    @PostMapping("pageOrderByStoreId")
+    public R pageOrderByStoreId(@RequestBody PageComFlowerOrderListDTO pageComFlowerOrderListDTO) {
+        return communityService.pageOrderByStoreId(pageComFlowerOrderListDTO);
+    }
+
+    /**
+     * 查询我的店铺各类统计数据
+     *
+     * @param storeId
+     * @return
+     */
+    @ApiOperation(value = "查询我的店铺各类统计数据")
+    @GetMapping("/selectCountByStoreId")
+    public R selectCountByUserId(Long storeId) {
+        return communityService.selectCountByUserId(storeId);
+    }
+
+
+    /**
+     * 创建退款订单
+     *
+     * @param comShopFlowerRefundOrderDTO
+     * @return
+     */
+    @PostMapping("createRefundOrder")
+    @ApiOperation(value = "创建退款订单")
+    public R createRefundOrder(@RequestBody ComShopFlowerRefundOrderDTO comShopFlowerRefundOrderDTO) {
+        comShopFlowerRefundOrderDTO.setUserId(this.getUserId());
+        return communityService.createRefundOrder(comShopFlowerRefundOrderDTO);
+    }
+
+    /**
+     * 用户 分页查询退款订单
+     *
+     * @param pageComOrderRefundDTO
+     * @return
+     */
+    @PostMapping("pageRefundOrder")
+    @ApiOperation(value = "退款订单分页查询 用户", response = ComShopFlowerRefundOrderVO.class)
+    public R pageRefundOrder(@RequestBody PageComOrderRefundDTO pageComOrderRefundDTO) {
+        pageComOrderRefundDTO.setUserId(this.getUserId());
+        return communityService.pageRefundOrder(pageComOrderRefundDTO);
+    }
+
+    /**
+     * 商家 分页查询退款订单
+     *
+     * @param pageComOrderRefundDTO
+     * @return
+     */
+    @PostMapping("pageRefundOrderStore")
+    @ApiOperation(value = "退款订单分页查询 商家", response = ComShopFlowerRefundOrderVO.class)
+    public R pageRefundOrderStore(@RequestBody PageComOrderRefundDTO pageComOrderRefundDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        pageComOrderRefundDTO.setStoreId(loginUserInfo.getStoreIdId());
+        return communityService.pageRefundOrder(pageComOrderRefundDTO);
+    }
+
+    /**
+     * 修改退款订单
+     *
+     * @param comShopFlowerRefundOrderDTO
+     * @return
+     */
+    @PostMapping("updateRefundOrder")
+    @ApiOperation(value = "修改退款订单")
+    public R updateRefundOrder(@RequestBody ComShopFlowerRefundOrderDTO comShopFlowerRefundOrderDTO) {
+        return communityService.updateRefundOrder(comShopFlowerRefundOrderDTO);
+    }
+
+
+    /**
+     * 商家后台-退款申请统计
+     *
+     * @param storeId
+     * @return
+     */
+    @GetMapping("selectCountGroupStatus")
+    @ApiOperation(value = "商家后台-退款申请统计")
+    public R selectCountGroupStatus(Long storeId) {
+        return communityService.selectCountGroupStatus(storeId);
+    }
+
+    @ApiOperation(value = "商品分类")
+    @GetMapping("/goodsCategory/getAllGoodsCategories")
+    public R getAllGoodsCategories() {
+        return communityService.getAllGoodsCategories();
+    }
+
+    @ApiOperation(value = "分页查询便民服务分类", response = ConvenientServiceCategoryVO.class)
+    @PostMapping("/service-category/page")
+    public R pageServiceCategory(@RequestBody PageConvenientServiceCategoryDTO pageConvenientServiceCategoryDTO) {
+        pageConvenientServiceCategoryDTO.setAreaCode(this.getAreaCode());
+        return communityService.pageServiceCategory(pageConvenientServiceCategoryDTO);
+    }
+
+    /**
+     * 新增商品浏览量
+     *
+     * @param goodsId
+     * @return
+     */
+    @GetMapping("incrGoodsView")
+    @ApiOperation(value = "新增商品浏览量")
+    public R incrGoodsView(@RequestParam("goodsId") Long goodsId) {
+        return communityService.incrGoodsView(goodsId);
+    }
+
+    @ApiOperation(value = "增加商家咨询量")
+    @GetMapping("/merchant/incr-consult")
+    public R incrMerchantConsult(@RequestParam("merchantId") Long merchantId) {
+        return communityService.consultMerchant(merchantId);
+    }
+
+    @ApiOperation(value = "增加商家浏览量")
+    @GetMapping("/merchant/incr-view")
+    public R incrMerchantView(@RequestParam("merchantId") Long merchantId) {
+        return communityService.incrMerchantView(merchantId);
+    }
+
+    @ApiOperation(value = "出入账分页", response = ComShopFlowerOrderPayVO.class)
+    @PostMapping("pageOrderPay")
+    public R pageOrderPay(@RequestBody PageComShopFlowerOrderPayDTO pageComShopFlowerOrderPayDTO) {
+        return communityService.pageOrderPay(pageComShopFlowerOrderPayDTO);
+    }
+
+    /**
+     * 获取商家的营业额和可结算金额
+     * @param storeId
+     * @return
+     */
+    @ApiOperation(value = "获取商家的营业额和可结算金额")
+    @GetMapping("getQuota")
+    public R getQuota(@RequestParam("storeId") Long storeId){
+        return communityService.getQuota(storeId);
+    }
+
+    /**
+     * 取消退款
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "取消退款")
+    @GetMapping("refundOrderCancel")
+    public R refundOrderCancel(@RequestParam("id") Long id){
+        return communityService.refundOrderCancel(id);
+    }
+
+    /**
+     * 退款订单详情
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "退款订单详情",response = ComShopFlowerRefundOrderVO.class)
+    @GetMapping("refundOrderDetail")
+    public R refundOrderDetail(Long id){
+        return communityService.refundOrderDetail(id);
+    }
+
+    /**
+     * 清点商品 确认送达详情
+     * @param pageComFlowerOrderListDTO
+     * @return
+     */
+    @PostMapping("pageOrderByDeliveryNo")
+    @ApiOperation(value = "清点商品 确认送达详情",response = ComShopFlowerOrderDeliveryNoListVO.class)
+    public R pageOrderByDeliveryNo(@RequestBody PageComFlowerOrderListDTO pageComFlowerOrderListDTO){
+        return communityService.pageOrderByDeliveryNo(pageComFlowerOrderListDTO);
+    }
+
+
+    /**
+     * 订单发货
+     *
+     * @param orderShipDTO 发货信息
+     * @return 发货结果
+     */
+    @PostMapping("/shipOrderFlower")
+    @ApiOperation(value = "订单发货")
+    public R shipOrderFlower(@RequestBody ComShopOrderShipDTO orderShipDTO) {
+        orderShipDTO.setOperUserAccount(this.getLoginUserInfo().getAccount());
+        return communityService.shipOrderFlower(orderShipDTO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/TestApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/TestApi.java
new file mode 100644
index 0000000..2b64108
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/TestApi.java
@@ -0,0 +1,34 @@
+package com.panzhihua.applets.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.user.UserService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 调试接口
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-06 16:32
+ **/
+@RestController
+@RequestMapping("/test/")
+@Api(tags = {"调试接口"})
+public class TestApi {
+
+    @Resource
+    private UserService userService;
+
+    @ApiOperation(value = "维护用户持续登录天数")
+    @GetMapping("timedtaskcontinuouslandingdays")
+    public R timedTaskContinuousLandingDays() {
+        return userService.timedTaskContinuousLandingDays();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UnionDoorApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UnionDoorApi.java
new file mode 100644
index 0000000..2283fab
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UnionDoorApi.java
@@ -0,0 +1,34 @@
+package com.panzhihua.applets.api;
+
+import com.panzhihua.applets.config.UnionDoorUtil;
+import com.panzhihua.common.model.vos.R;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+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;
+
+@RestController
+@RequestMapping("/unionDoor/")
+@Api(tags = {"户外劳工站接口"})
+public class UnionDoorApi {
+
+    @Resource
+    private UnionDoorUtil unionDoorUtil;
+
+
+    /**
+     * (二期)用户开门(通过电话)(主花城e+使用)
+     *
+     * @return 总工会户外劳共用户
+     */
+    @GetMapping("/openDoorByPhone")
+    @ApiOperation("(二期)用户开门(通过电话)(主花城e+使用)")
+    public R openDoorByPhone(@RequestParam(value = "qRCode") String qRCode, @RequestParam(value = "phone") String phone) throws Exception {
+        return unionDoorUtil.openDoorByPhone(qRCode, phone);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UnionInspectionApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UnionInspectionApi.java
new file mode 100644
index 0000000..1a69cac
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UnionInspectionApi.java
@@ -0,0 +1,65 @@
+package com.panzhihua.applets.api;
+
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.equipment.UnionInspectionDto;
+import com.panzhihua.common.model.dtos.equipment.UnionReportDto;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.community.ComEquipmentUnionInspectionFeign;
+import com.panzhihua.common.service.community.ComEquipmentUnionRePortFeign;
+import com.panzhihua.common.service.user.UserService;
+import io.swagger.annotations.Api;
+import lombok.extern.slf4j.Slf4j;
+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.RestController;
+
+import javax.annotation.Resource;
+
+
+@Slf4j
+@RestController
+@RequestMapping("/unionInspection/")
+@Api(tags = {"户外劳工站巡查"})
+public class UnionInspectionApi extends BaseController {
+
+    @Resource
+    private ComEquipmentUnionInspectionFeign comEquipmentUnionInspectionFeign;
+
+    @Resource
+    private UserService userService;
+
+
+    /**
+     * 新增户外劳工站巡查
+     *
+     * @param unionInspectionDto
+     * @return 新增结果
+     */
+    @PostMapping("/add")
+    public R add(@RequestBody UnionInspectionDto unionInspectionDto) {
+//        LoginUserInfoVO loginUser = this.getLoginUserInfo();
+//        LoginUserInfoVO userInfoByUserId = userService.getUserInfoByUserId(loginUser.getUserId().toString()).getData();
+        LoginUserInfoVO userInfoByUserId = userService.getUserInfoByUserId("1588095866109984769").getData();
+        unionInspectionDto.setCreateUserId(userInfoByUserId.getUserId());
+        return  comEquipmentUnionInspectionFeign.add(unionInspectionDto);
+    }
+
+    /**
+     * 分页户外劳工站巡查
+     *
+     * @param unionInspectionDto
+     * @return 动态结果
+     */
+    @PostMapping("/query")
+    public R query(@RequestBody UnionInspectionDto unionInspectionDto) {
+        //        LoginUserInfoVO loginUser = this.getLoginUserInfo();
+//        LoginUserInfoVO userInfoByUserId = userService.getUserInfoByUserId(loginUser.getUserId().toString()).getData();
+        LoginUserInfoVO userInfoByUserId = userService.getUserInfoByUserId("1588095866109984769").getData();
+        unionInspectionDto.setCreateUserId(userInfoByUserId.getUserId());
+        unionInspectionDto.setIsApplets(1);
+        return comEquipmentUnionInspectionFeign.query(unionInspectionDto);
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UnionOutdoorLaborDynamicApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UnionOutdoorLaborDynamicApi.java
new file mode 100644
index 0000000..96e4566
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UnionOutdoorLaborDynamicApi.java
@@ -0,0 +1,58 @@
+package com.panzhihua.applets.api;
+
+
+import com.panzhihua.common.model.dtos.equipment.UnionOutdoorLaborDynamicDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngStructAreaDistrictVO;
+import com.panzhihua.common.service.community.ComEquipmentUnionOutdoorLaborDynamicFeign;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+
+@Slf4j
+@RestController
+@RequestMapping("/unionOutdoorLaborDynamic/")
+@Api(tags = {"户外劳工动态服务"})
+public class UnionOutdoorLaborDynamicApi {
+
+    @Resource
+    private ComEquipmentUnionOutdoorLaborDynamicFeign comEquipmentUnionOutdoorLaborDynamicFeign;
+
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 分页总工会-户外劳工站-动态
+     *
+     * @param unionOutdoorLaborDynamicDto
+     * @return 动态结果
+     */
+    @PostMapping("page")
+    R query(@RequestBody UnionOutdoorLaborDynamicDto unionOutdoorLaborDynamicDto) {
+        return comEquipmentUnionOutdoorLaborDynamicFeign.query(unionOutdoorLaborDynamicDto);
+    }
+
+    /**
+     * 查询总工会-户外劳工站-动态
+     *
+     * @param id
+     *            动态 id
+     * @return 查找结果
+     */
+    @GetMapping("/{id}")
+    R eventMainMemberDetails(@PathVariable("id") Long id) {
+        return comEquipmentUnionOutdoorLaborDynamicFeign.unionOutdoorLaborDynamicDetail(id);
+    }
+
+    @ApiOperation(value = "所在地地址下拉列表(攀枝花)", response = ComMngStructAreaDistrictVO.class)
+    @PostMapping("listarea")
+    public R listArea() {
+        Long cityAdcode = 510400l;
+        return communityService.listAreaDistrict(cityAdcode);
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UnionOutdoorSiteApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UnionOutdoorSiteApi.java
new file mode 100644
index 0000000..583f10a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UnionOutdoorSiteApi.java
@@ -0,0 +1,52 @@
+package com.panzhihua.applets.api;
+
+
+import com.panzhihua.common.model.dtos.equipment.UnionOutdoorLaborDynamicDto;
+import com.panzhihua.common.model.dtos.equipment.UnionOutdoorSiteDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngStructAreaDistrictVO;
+import com.panzhihua.common.service.community.ComEquipmentUnionOutdoorLaborDynamicFeign;
+import com.panzhihua.common.service.community.ComEquipmentUnionOutdoorSiteFeign;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+
+@Slf4j
+@RestController
+@RequestMapping("/unionOutdoorSite/")
+@Api(tags = {"户外劳工站"})
+public class UnionOutdoorSiteApi {
+
+    @Resource
+    private ComEquipmentUnionOutdoorSiteFeign comEquipmentUnionOutdoorSiteFeign;
+
+
+    /**
+     * 分页总工会户外劳工站
+     *
+     * @param unionOutdoorSiteDto
+     * @return 动态结果
+     */
+    @PostMapping("page")
+    R query(@RequestBody UnionOutdoorSiteDto unionOutdoorSiteDto) {
+        return comEquipmentUnionOutdoorSiteFeign.query(unionOutdoorSiteDto);
+    }
+
+    /**
+     * 查询总工会户外劳工站
+     *
+     * @param id
+     *            户外劳工站 id
+     * @return 查找结果
+     */
+    @GetMapping("/{id}")
+    R eventMainMemberDetails(@PathVariable("id") Long id) {
+        return comEquipmentUnionOutdoorSiteFeign.unionOutdoorSiteDetail(id);
+    }
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UnionReportApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UnionReportApi.java
new file mode 100644
index 0000000..ad7ef73
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UnionReportApi.java
@@ -0,0 +1,61 @@
+package com.panzhihua.applets.api;
+
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.equipment.UnionReportDto;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.community.ComEquipmentUnionRePortFeign;
+import com.panzhihua.common.service.community.ComEquipmentUnionUserFeign;
+import com.panzhihua.common.service.user.UserService;
+import io.swagger.annotations.Api;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+
+@Slf4j
+@RestController
+@RequestMapping("/unionReport/")
+@Api(tags = {"户外劳工站上报"})
+public class UnionReportApi extends BaseController {
+
+    @Resource
+    private ComEquipmentUnionRePortFeign comEquipmentUnionRePortFeign;
+
+    @Resource
+    private UserService userService;
+
+
+    /**
+     * 户外劳工站上报表
+     *
+     * @param unionReportDto
+     * @return 新增结果
+     */
+    @PostMapping("/add")
+    public R add(@RequestBody UnionReportDto unionReportDto) {
+//        LoginUserInfoVO loginUser = this.getLoginUserInfo();
+//        LoginUserInfoVO userInfoByUserId = userService.getUserInfoByUserId(loginUser.getUserId().toString()).getData();
+        LoginUserInfoVO userInfoByUserId = userService.getUserInfoByUserId("1588095866109984769").getData();
+        unionReportDto.setCreateUserId(userInfoByUserId.getUserId());
+        return  comEquipmentUnionRePortFeign.add(unionReportDto);
+    }
+
+    /**
+     * 分页户外劳工站上报表
+     *
+     * @param unionReportDto
+     * @return 动态结果
+     */
+    @PostMapping("/query")
+    public R query(@RequestBody UnionReportDto unionReportDto) {
+        //        LoginUserInfoVO loginUser = this.getLoginUserInfo();
+//        LoginUserInfoVO userInfoByUserId = userService.getUserInfoByUserId(loginUser.getUserId().toString()).getData();
+        LoginUserInfoVO userInfoByUserId = userService.getUserInfoByUserId("1588095866109984769").getData();
+        unionReportDto.setCreateUserId(userInfoByUserId.getUserId());
+        unionReportDto.setIsApplets(1);
+        return comEquipmentUnionRePortFeign.query(unionReportDto);
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UnionUserApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UnionUserApi.java
new file mode 100644
index 0000000..73c0677
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UnionUserApi.java
@@ -0,0 +1,70 @@
+package com.panzhihua.applets.api;
+
+
+import com.panzhihua.common.constants.TokenConstant;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.equipment.UnionOutdoorSiteDto;
+import com.panzhihua.common.model.dtos.equipment.UnionUserDto;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidRecordVO;
+import com.panzhihua.common.service.community.ComEquipmentUnionOutdoorSiteFeign;
+import com.panzhihua.common.service.community.ComEquipmentUnionUserFeign;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.JWTTokenUtil;
+import io.jsonwebtoken.Claims;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
+
+@Slf4j
+@RestController
+@RequestMapping("/unionUser/")
+@Api(tags = {"户外劳工站登录"})
+public class UnionUserApi extends BaseController {
+
+    @Resource
+    private ComEquipmentUnionUserFeign comEquipmentUnionUserFeign;
+
+    @Resource
+    private UserService userService;
+
+    
+    /**
+     * 总工会户外劳登录
+     *
+     *
+     * @return 总工会户外劳共用户
+     */
+    @ApiOperation(value = "总工会户外劳登录",response = UnionUserDto.class)
+    @GetMapping("/login")
+    public R login(){
+//        LoginUserInfoVO loginUser = this.getLoginUserInfo();
+//        LoginUserInfoVO userInfoByUserId = userService.getUserInfoByUserId(loginUser.getUserId().toString()).getData();
+        LoginUserInfoVO userInfoByUserId = userService.getUserInfoByUserId("1588095866109984769").getData();
+        return  comEquipmentUnionUserFeign.login(userInfoByUserId);
+    }
+
+    /**
+     * 总工会户外劳工站用户认证
+     *
+     * @param unionUserDto
+     * @return 总工会户外劳共用户
+     */
+    @ApiOperation(value = "总工会户外劳工站用户认证",response = UnionUserDto.class)
+    @PostMapping("/authentication")
+    public R authentication(@RequestBody UnionUserDto unionUserDto){
+        unionUserDto.setIsApplets(1);
+        //        LoginUserInfoVO loginUser = this.getLoginUserInfo();
+//        LoginUserInfoVO userInfoByUserId = userService.getUserInfoByUserId(loginUser.getUserId().toString()).getData();
+        LoginUserInfoVO userInfoByUserId = userService.getUserInfoByUserId("1588095866109984769").getData();
+        unionUserDto.setUserId(userInfoByUserId.getUserId());
+//        unionUserDto.setId(userInfoByUserId.getId);
+        return  comEquipmentUnionUserFeign.authentication(unionUserDto);
+    }
+}
\ No newline at end of file
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
new file mode 100644
index 0000000..2145e69
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/UserApi.java
@@ -0,0 +1,564 @@
+package com.panzhihua.applets.api;
+
+import static java.util.stream.Collectors.toList;
+
+import java.util.*;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.stream.Collectors;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+
+import cn.hutool.core.util.StrUtil;
+import com.panzhihua.applets.umf.UmfPayUtil;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.constants.HttpStatus;
+import com.panzhihua.common.model.dtos.community.social.PageProjectDTO;
+import com.panzhihua.common.model.vos.community.rentHouse.WxPayOrderVO;
+import com.panzhihua.common.utlis.DateUtils;
+import io.swagger.annotations.ApiParam;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.util.ObjectUtils;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.applets.model.dtos.ComPbMemberCertificationDTO;
+import com.panzhihua.applets.weixin.CheckService;
+import com.panzhihua.common.constants.SecurityConstants;
+import com.panzhihua.common.constants.UserConstants;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.user.SysUserEditTipsDTO;
+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;
+import com.panzhihua.common.model.vos.community.ComActMicroWishVO;
+import com.panzhihua.common.model.vos.community.ComActVO;
+import com.panzhihua.common.model.vos.community.ComMngStructAreaVO;
+import com.panzhihua.common.model.vos.community.ComMngStructHouseVO;
+import com.panzhihua.common.model.vos.partybuilding.PartyBuildingMemberVO;
+import com.panzhihua.common.model.vos.user.ComMngFamilyInfoVO;
+import com.panzhihua.common.model.vos.user.SysUserNoticeVO;
+import com.panzhihua.common.model.vos.user.UpdateUserArchivesVO;
+import com.panzhihua.common.model.vos.user.UserArchivesVO;
+import com.panzhihua.common.model.vos.user.UserPhoneVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.partybuilding.PartyBuildingService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 用户
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-24 12:03
+ **/
+@Slf4j
+@RestController
+@RequestMapping("/user/")
+@Api(tags = {"我的模块"})
+public class UserApi extends BaseController {
+    @Resource
+    private UserService userService;
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private PartyBuildingService partyBuildingService;
+    @Resource
+    private CheckService checkService;
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+
+    @ApiOperation(value = "当前登录用户信息", response = LoginUserInfoVO.class)
+    @GetMapping("info")
+    public R getUserInfo() {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long communityId = loginUserInfo.getCommunityId();
+        Long userId = loginUserInfo.getUserId();
+        Long areaId = loginUserInfo.getAreaId();
+        R<LoginUserInfoVO> r = userService.getUserInfoByUserId(userId + "");
+        String phone = loginUserInfo.getPhone();
+        if (R.isOk(r)) {
+            Object data = r.getData();
+            if (!ObjectUtils.isEmpty(data)) {
+                LoginUserInfoVO loginUserInfoVO = (LoginUserInfoVO)data;
+                //是否保存unionid
+//                if (Objects.isNull(loginUserInfoVO.getUnionid()) || "无".equals(loginUserInfoVO.getUnionid())) {
+//                    return R.fail(HttpStatus.UNAUTHORIZED, "token过期");
+//                }
+                R r1 = communityService.detailHouse(userId);
+                if(StringUtils.isNotEmpty(loginUserInfoVO.getIdCard())){
+                    //查询实名用户绑定的实有人口地址
+                    R r4=communityService.selectByIdCard(loginUserInfoVO.getIdCard());
+                    if(R.isOk(r4)){
+                        String address= (String) r4.getData();
+                        if(StringUtils.isNotEmpty(address)){
+                            loginUserInfoVO.setAddress(address);
+                            r.setData(loginUserInfoVO);
+                        }
+                    }
+                }
+                if (null != communityId && 0 != communityId) {
+                    R r2 = communityService.detailCommunity(communityId);
+                    if (R.isOk(r2)) {
+                        Object data1 = r2.getData();
+                        if (!ObjectUtils.isEmpty(data1)) {
+                            loginUserInfoVO
+                                .setComActVO(JSONObject.parseObject(JSONObject.toJSONString(data1), ComActVO.class));
+                            r.setData(loginUserInfoVO);
+                        }
+                    }
+                }
+                if (null != areaId && areaId != 0) {
+                    R r3 = communityService.detailArea(areaId);
+                    if (R.isOk(r3)) {
+                        Object data1 = r3.getData();
+                        if (!ObjectUtils.isEmpty(data1)) {
+                            loginUserInfoVO.setComMngStructAreaVO(
+                                JSONObject.parseObject(JSONObject.toJSONString(data1), ComMngStructAreaVO.class));
+                            r.setData(loginUserInfoVO);
+                        }
+                    }
+                }
+                if (R.isOk(r1)) {
+                    Object data1 = r1.getData();
+                    if (!ObjectUtils.isEmpty(data1)) {
+                        loginUserInfoVO.setComMngStructHouseVOS((List<ComMngStructHouseVO>)data1);
+                        r.setData(loginUserInfoVO);
+                    }
+                }
+            }
+        }
+        return r;
+    }
+
+    @ApiOperation(value = "用户实名认证")
+    @PutMapping("putuserauthentication")
+    public R putUserAuthentication(@RequestBody @Validated(AddGroup.class) LoginUserInfoVO loginUserInfoVO) {
+        Long userId = this.getUserId();
+        loginUserInfoVO.setUserId(userId);
+        loginUserInfoVO.setCommunityId(this.getCommunityId());
+        R r = userService.putUserAuthentication(loginUserInfoVO);
+        if (R.isOk(r)) {
+            // 通过发通知
+            SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO();
+            sysUserNoticeVO.setUserId(userId);
+            sysUserNoticeVO.setType(3);
+            sysUserNoticeVO.setTitle("实名制审核通过");
+            sysUserNoticeVO.setBusinessType(6);
+            sysUserNoticeVO.setBusinessContent("恭喜你,你已经通过了实名制认证");
+            sysUserNoticeVO.setStatus(0);
+            sysUserNoticeVO.setBusinessStatus(2);
+            R r1 = userService.addNotice(sysUserNoticeVO);
+            if (R.isOk(r1)) {
+                log.info("新增实名认证未通过通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+            }
+            // 清空缓存
+            String userRoleKey = UserConstants.LOGIN_USER_INFO + this.getLoginUserInfo().getUserId();
+            String userAppletRoleKey = SecurityConstants.ROLE_APPLETS_USER + this.getLoginUserInfo().getUserId();
+            stringRedisTemplate.delete(userRoleKey);
+            stringRedisTemplate.delete(userAppletRoleKey);
+        } else {
+            // 未通过发通知
+            /**
+             * SysUserNoticeVO sysUserNoticeVO=new SysUserNoticeVO(); sysUserNoticeVO.setUserId(userId);
+             * sysUserNoticeVO.setType(3); sysUserNoticeVO.setTitle("实名制审核未通过"); sysUserNoticeVO.setBusinessType(6);
+             * sysUserNoticeVO.setBusinessContent(String.format("驳回原因:%s",r.getMsg())); sysUserNoticeVO.setStatus(0);
+             * sysUserNoticeVO.setBusinessStatus(1); R r1 = userService.addNotice(sysUserNoticeVO); if (R.isOk(r1)) {
+             * log.info("新增实名认证未通过通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO)); }
+             */
+        }
+        return r;
+    }
+
+    @ApiOperation(value = "修改用户手机号")
+    @PutMapping("userphone")
+    public R putUserphone(@RequestBody UserPhoneVO userPhoneVO) {
+        Long userId = this.getUserId();
+        userPhoneVO.setUserId(userId);
+        R r = userService.putUserphone(userPhoneVO);
+        if (R.isOk(r)) {
+            communityService.putVolunteerPhone(userPhoneVO);
+        }
+        return r;
+    }
+
+    @ApiOperation(value = "修改用户信息")
+    @PutMapping("user")
+    public R putUser(@RequestBody LoginUserInfoVO loginUserInfoVO) {
+        Long userId = this.getUserId();
+        loginUserInfoVO.setUserId(userId);
+        return userService.putUser(loginUserInfoVO);
+    }
+
+    @ApiOperation(value = "修改用户首页活动提示")
+    @PostMapping("editUserTips")
+    public R putUserTips(@RequestBody SysUserEditTipsDTO userEditTipsDTO) {
+        Long userId = this.getUserId();
+        if (userId == null) {
+            return R.fail("请重新登录");
+        }
+        userEditTipsDTO.setUserId(userId);
+        return userService.editUserTips(userEditTipsDTO);
+    }
+
+    @ApiOperation(value = "房屋地址下拉列表")
+    @GetMapping("listhouse")
+    @ApiImplicitParam(name = "parentCode", value = "父级地址编码", required = false)
+    public R listHouses(String parentCode) {
+        Long areaId = this.getAreaId();
+        if (ObjectUtils.isEmpty(parentCode)) {
+            parentCode = "";
+        }
+        return communityService.listHouses(parentCode, areaId);
+    }
+
+    @ApiOperation(value = "新增房屋")
+    @PostMapping("houses")
+    public R addHouses(@RequestBody @Validated(AddGroup.class) ComMngStructHouseVO comMngStructHouseVO) {
+        String houseCode = comMngStructHouseVO.getHouseCode();
+        if (ObjectUtils.isEmpty(houseCode)) {
+            return R.fail("房屋地址编码不能为空");
+        }
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        comMngStructHouseVO.setUserId(loginUserInfo.getUserId());
+        comMngStructHouseVO.setAreaId(loginUserInfo.getAreaId());
+        return communityService.addHouses(comMngStructHouseVO);
+    }
+
+    @ApiOperation(value = "家庭成员列表")
+    @GetMapping("listfamily")
+    public R listFamily(@RequestParam(value = "pageNum") Long pageNum, @RequestParam("pageSize") Long pageSize) {
+        Long userId = this.getUserId();
+        return userService.listFamily(userId, pageNum, pageSize);
+    }
+
+    @ApiOperation(value = "新增家庭成员")
+    @PostMapping("addfamily")
+    public R addFamily(@RequestBody @Validated(AddGroup.class) ComMngFamilyInfoVO comMngFamilyInfoVO) {
+        Long userId = this.getUserId();
+        comMngFamilyInfoVO.setUserId(userId);
+        return userService.addFamily(comMngFamilyInfoVO);
+    }
+
+    @ApiOperation(value = "编辑家庭成员")
+    @PutMapping("putfamily")
+    public R putFamily(@RequestBody ComMngFamilyInfoVO comMngFamilyInfoVO) {
+        Long id = comMngFamilyInfoVO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("成员主键不能为空");
+        }
+        comMngFamilyInfoVO.setUserId(this.getUserId());
+        return userService.putFamily(comMngFamilyInfoVO);
+    }
+
+    @ApiOperation(value = "我的活动", response = ComActActivityVO.class)
+    @GetMapping("listactivity")
+    public R listActivity(@RequestParam(value = "status", required = false) Integer status,
+                          @RequestParam(value = "type", required = false) Integer type) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long userId = loginUserInfo.getUserId();
+        Long communityId = loginUserInfo.getCommunityId();
+        List<ComActActivityVO> comActActivityVOS = new ArrayList<>();
+        R r = communityService.listActivity(userId, status,type);
+        if (R.isOk(r)&&r.getData()!=null) {
+            comActActivityVOS = (List<ComActActivityVO>)r.getData();
+        }
+//        R r1 = partyBuildingService.listActivity(userId, communityId, status);
+//        if (R.isOk(r1)&&r1.getData()!=null) {
+//            List<ComActActivityVO> data = (List<ComActActivityVO>)r1.getData();
+//            comActActivityVOS.addAll(data);
+//        }
+        if (!ObjectUtils.isEmpty(comActActivityVOS)) {
+            String s = JSONArray.toJSONString(comActActivityVOS);
+            List<ComActActivityVO> comActActivityVOS1 = new ArrayList<>();
+            comActActivityVOS1 = JSONArray.parseArray(s, ComActActivityVO.class);
+            List<ComActActivityVO> collect = comActActivityVOS1.stream()
+                .sorted(Comparator.comparing(ComActActivityVO::getBeginAt).reversed()).collect(Collectors.toList());
+            comActActivityVOS = collect;
+        }
+        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())) {
+                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(activitySignInVO.getEndTime()!=null){
+                                comActActivityVO.setIsComment(1);
+                                if(comActActivityVO.getTimes()==null){
+                                    comActActivityVO.setTimes(1);
+                                    comActActivityVO.setAward(activitySignInVO.getAward());
+                                }
+                                else {
+                                    comActActivityVO.setTimes(comActActivityVO.getTimes()+1);
+                                    comActActivityVO.setAward(comActActivityVO.getAward() + activitySignInVO.getAward());
+                                }
+                            }
+                        }
+                    });
+                    if (currentList.size() > 10) {
+                        comActActivityVO.setActivitySignInList(currentList.subList(0, 10));
+                    } else {
+                        comActActivityVO.setActivitySignInList(currentList);
+                    }
+                    Integer limit = comActActivityVO.getLimit();
+                    if(limit != null && limit>0 &&currentList.size()>0){
+                        if(limit==currentList.size()&&currentList.get(currentList.size()-1).getEndTime()!=null){
+                            comActActivityVO.setIsRegist(1);
+                        }
+                    }
+                });
+            }
+            //当前用户活动评分
+            R r3 = communityService.listEvaluate(userId);
+            if (R.isOk(r3) && !ObjectUtils.isEmpty(r3.getData())) {
+                List<ComActActEvaluateVO> comActActEvaluateVOS = JSONArray.parseArray(JSONArray.toJSONString(r3.getData()), ComActActEvaluateVO.class);
+                collect.forEach(comActActivityVO -> {
+                 List<ComActActEvaluateVO> evaluateVOS=comActActEvaluateVOS.stream().filter(comActActEvaluateVO -> comActActEvaluateVO.getActivityId().equals(comActActivityVO.getId())).collect(toList());
+                 if(comActActivityVO.getSignCount()<=evaluateVOS.size()){
+                     comActActivityVO.setIsComment(0);
+                 }
+                 comActActivityVO.setComActActEvaluateVOList(evaluateVOS);
+                });
+            }
+            return R.ok(collect);
+        }
+        return R.ok(comActActivityVOS);
+    }
+
+    @ApiOperation(value = "分页查询我的随手拍", response = ComActEasyPhotoVO.class)
+    @PostMapping("pageeasyphoto")
+    public R pageEasyPhoto(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO) {
+        Long userId = this.getUserId();
+        comActEasyPhotoVO.setSponsorId(userId);
+        comActEasyPhotoVO.setCommunityId(null);
+        return communityService.pageEasyPhotoApplets(comActEasyPhotoVO);
+    }
+
+    @ApiOperation(value = "分页查询我的微心愿", response = ComActMicroWishVO.class)
+    @PostMapping("pagemicrowish")
+    public R pageMicroWish(@RequestBody ComActMicroWishVO comActMicroWishVO) {
+        Long userId = this.getUserId();
+        comActMicroWishVO.setUserId(userId);
+        comActMicroWishVO.setCommunityId(null);
+        Integer status = comActMicroWishVO.getStatus();
+        if (null != status && status == 1) {
+            comActMicroWishVO.setIsPageMyWish(1);
+        } else {
+            comActMicroWishVO.setIsPageMyWish(null);
+        }
+
+        return communityService.pageMicroWish(comActMicroWishVO);
+    }
+
+    @ApiOperation(value = "用户确认心愿")
+    @PutMapping("microwishconfirm")
+    public R putMicroWishConfirm(@RequestBody ComActMicroWishVO comActMicroWishVO) {
+        Long userId = this.getUserId();
+        comActMicroWishVO.setUserId(userId);
+        comActMicroWishVO.setCommunityId(null);
+        Long id = comActMicroWishVO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("心愿主键不能为空");
+        }
+        Integer score = comActMicroWishVO.getScore();
+        if (null == score || 0 == score) {
+            return R.fail("评分不能为空");
+        }
+        comActMicroWishVO.setEvaluateAt(new Date());
+        comActMicroWishVO.setStatus(6);
+        return communityService.putMicroWishConfirm(comActMicroWishVO);
+    }
+
+    @ApiOperation(value = "调试接口--清除昵称、社区、小区")
+    @DeleteMapping("usertest")
+    public R deleteUserTest() {
+        Long userId = this.getUserId();
+        return userService.deleteUserTest(userId);
+    }
+
+    @ApiOperation(value = "意见反馈")
+    @PostMapping("feedback")
+    public R addFeedback(@RequestBody @Validated(AddGroup.class) SysUserFeedbackDTO sysUserFeedbackDTO) {
+        // 微信内容审核
+        String msg = sysUserFeedbackDTO.getContent();
+        if (StrUtil.isNotBlank(msg)) {
+            String result = checkService.checkMessageBy(msg, this.getLoginUserInfo().getOpenid(),this.getAppId());
+            if (StrUtil.isNotBlank(result)) {
+                return R.fail(501, "填写内容存在 " + result + " 违规信息");
+            }
+        }
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long userId = loginUserInfo.getUserId();
+        Long communityId = loginUserInfo.getCommunityId();
+        Long areaId = loginUserInfo.getAreaId();
+        if (null == communityId || 0 == communityId) {
+            return R.fail("未绑定社区");
+        }
+        sysUserFeedbackDTO.setCommunityId(communityId);
+        sysUserFeedbackDTO.setAreaId(areaId);
+        sysUserFeedbackDTO.setUserId(userId);
+        return userService.addFeedback(sysUserFeedbackDTO);
+    }
+
+    @ApiOperation(value = "党员认证")
+    @PostMapping("partybuildingembercertification")
+    public R partybuildingembercertification(
+        @RequestBody @Validated(AddGroup.class) ComPbMemberCertificationDTO comPbMemberCertificationDTO) {
+        // 党员认证
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long userId = loginUserInfo.getUserId();
+        Long communityId = loginUserInfo.getCommunityId();
+        if (null == communityId || 0 == communityId) {
+            return R.fail("未绑定社区");
+        }
+
+        // 判断用户是否已认证成功
+        R certUser = partyBuildingService.userCertification(userId,communityId);
+
+        Object certUserInfo = certUser.getData();
+        AtomicBoolean userCertified = new AtomicBoolean(false);
+        if (R.isOk(certUser) && certUserInfo != null) {
+            try {
+                List<PartyBuildingMemberVO> partyBuildingMemberVOList =
+                    JSONArray.parseArray(JSONArray.toJSONString(certUser.getData()), PartyBuildingMemberVO.class);
+                // 已认证党员身份,直接返回
+                if (partyBuildingMemberVOList != null && partyBuildingMemberVOList.size() > 0) {
+                    partyBuildingMemberVOList.forEach(vo -> {
+                        userCertified.set(vo.getAuditResult() == 1);
+                    });
+                }
+            } catch (Exception e) {
+            }
+        }
+        // 匹配手机,验证是否进行自动确认
+        if (userCertified.get()) {
+            return R.fail("您已审核通过,无需重复提交");
+        }
+
+        PartyBuildingMemberVO partyBuildingMemberVO = new PartyBuildingMemberVO();
+        BeanUtils.copyProperties(comPbMemberCertificationDTO, partyBuildingMemberVO);
+        partyBuildingMemberVO.setAuditResult(0);
+        partyBuildingMemberVO.setCommunityId(communityId);
+
+        // 用户实名认证信息判断
+        String idCard = loginUserInfo.getIdCard();
+        partyBuildingMemberVO.setUserId(userId);
+        if (idCard == null) {
+            return R.fail("用户未完成实名认证");
+        } else {
+            partyBuildingMemberVO.setIdCard(loginUserInfo.getIdCard());
+            partyBuildingMemberVO.setName(loginUserInfo.getName());
+            partyBuildingMemberVO.setPhone(loginUserInfo.getPhone());
+        }
+
+        R r = partyBuildingService.addPartyBuildingMember(partyBuildingMemberVO);
+        return r;
+    }
+
+    @ApiOperation(value = "党员认证查询")
+    @GetMapping("partybuildingembercertification")
+    public R partybuildingembercertification() {
+        // 党员认证查询
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long userId = loginUserInfo.getUserId();
+        R r = partyBuildingService.userCertification(userId,this.getCommunityId());
+
+        if (R.isOk(r)) {
+            List<PartyBuildingMemberVO> partyBuildingMemberVOList =
+                JSONArray.parseArray(JSONArray.toJSONString(r.getData()), PartyBuildingMemberVO.class);
+            if (partyBuildingMemberVOList != null && partyBuildingMemberVOList.size() > 0) {
+                Optional<PartyBuildingMemberVO> ot = partyBuildingMemberVOList.stream()
+                    .filter(partyBuildingMemberVO -> partyBuildingMemberVO.getAuditResult() == 1).findFirst();
+                if (ot.isPresent()) {
+                    return R.ok(ot.get());
+                } else {
+                    return R.ok(partyBuildingMemberVOList.get(0));
+                }
+            }
+        }
+        return R.ok();
+    }
+
+    /**
+     * 获取动作人员详情
+     * @param communityId
+     * @param phone
+     * @return
+     */
+    @ApiOperation(value = "社区工做人员详情")
+    @GetMapping("/getComPbServiceTeamData")
+    public R getComPbServiceTeamData(@RequestParam("communityId") String communityId,
+                                     @RequestParam("phone") String phone)
+    {
+        return partyBuildingService.getComPbServiceTeamData(communityId,phone);
+    }
+
+
+    @ApiOperation(value = "获取用户电子档案", response = UserArchivesVO.class)
+    @PostMapping("getUserArchives")
+    public R getUserArchives() {
+        Long userId = this.getUserId();
+        if (userId == null) {
+            return R.fail("请重新登录");
+        }
+        return userService.getUserArchives(userId);
+    }
+
+    @ApiOperation(value = "编辑用户电子档案")
+    @PostMapping("updateUserArchives")
+    public R updateUserArchives(@RequestBody UpdateUserArchivesVO userArchivesVO) {
+        Long userId = this.getUserId();
+        if (userId == null) {
+            return R.fail("请重新登录");
+        }
+        userArchivesVO.setUserId(userId);
+        return userService.updateUserArchives(userArchivesVO);
+    }
+
+    @ApiOperation(value = "分页查询用户报名的项目")
+    @PostMapping("project")
+    public R pageProjectWhichIsSignedByUser(@RequestBody @Valid PageProjectDTO pageProjectDTO) {
+        pageProjectDTO.setUserId(this.getUserId());
+        return communityService.pageProjectWhichIsSignedByUser(pageProjectDTO);
+    }
+
+    @ApiOperation("获取用户")
+    @GetMapping("selectAutomessageSysUserById")
+    public R selectAutomessageSysUserById(@RequestParam("id")Long id){
+        return communityService.selectAutomessageSysUserById(id);
+    }
+
+    @ApiOperation("新增投诉建议或问题留言")
+    @PostMapping("addFeedBack")
+    public R addFeedBack(@RequestBody SysUserFeedbackDTO sysUserFeedbackDTO){
+        sysUserFeedbackDTO.setCommunityId(null);
+        return userService.addFeedback(sysUserFeedbackDTO);
+    }
+
+    @ApiOperation("查看自己的投诉建议或问题留言记录")
+    @GetMapping("myFeedBack")
+    public R myFeedBack(@ApiParam("类型:1问题留言2投诉建议") @RequestParam(value = "type",required = false)Integer type,@RequestParam("propertyId")Long propertyId){
+        return userService.myFeedBack(this.getLoginUserInfo().getUserId(),type,propertyId);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/VaccinesApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/VaccinesApi.java
new file mode 100644
index 0000000..390be52
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/VaccinesApi.java
@@ -0,0 +1,77 @@
+package com.panzhihua.applets.api;
+
+import javax.annotation.Resource;
+
+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.RestController;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.vaccines.VaccinesEnrollByAppDTO;
+import com.panzhihua.common.model.dtos.vaccines.VaccinesEnrollUserByAppDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.vaccines.VaccinesByAppVO;
+import com.panzhihua.common.model.vos.vaccines.VaccinesEnrollUserByAppVO;
+import com.panzhihua.common.model.vos.vaccines.VaccinesUserInoculationByAppVO;
+import com.panzhihua.common.service.community.CommunityService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-05-19 14:25:49
+ * @describe 疫苗服务API
+ */
+@Slf4j
+@RestController
+@RequestMapping("/vaccines/")
+@Api(tags = {"疫苗服务"})
+public class VaccinesApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "疫苗分类列表", response = VaccinesByAppVO.class)
+    @PostMapping("list")
+    public R getVaccinesListByApp() {
+        return communityService.getVaccinesListByApp();
+    }
+
+    @ApiOperation(value = "疫苗类型对应家庭成员接种列表", response = VaccinesEnrollUserByAppVO.class)
+    @PostMapping("user/list")
+    public R getVaccinesUserListByApp(@RequestBody VaccinesEnrollUserByAppDTO enrollUserByAppDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        enrollUserByAppDTO.setUserId(loginUserInfo.getUserId());
+        return communityService.getVaccinesUserListByApp(enrollUserByAppDTO);
+    }
+
+    @ApiOperation(value = "用户疫苗报名")
+    @PostMapping("enroll")
+    public R VaccinesEnrollByApp(@RequestBody VaccinesEnrollByAppDTO enrollByAppDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        enrollByAppDTO.setUserId(loginUserInfo.getUserId());
+        enrollByAppDTO.setCommunityId(loginUserInfo.getCommunityId());
+        return communityService.VaccinesEnrollByApp(enrollByAppDTO);
+    }
+
+    @ApiOperation(value = "用户家庭接种记录", response = VaccinesUserInoculationByAppVO.class)
+    @PostMapping("user/inoculation/list")
+    public R getVaccinesUserInoculationListByApp() {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        return communityService.getVaccinesUserInoculationListByApp(loginUserInfo.getUserId());
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/VillageApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/VillageApi.java
new file mode 100644
index 0000000..5833f9b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/VillageApi.java
@@ -0,0 +1,52 @@
+package com.panzhihua.applets.api;
+
+import com.alibaba.excel.EasyExcel;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.listen.ComMngVillageServeExcelListen;
+import com.panzhihua.common.model.dtos.community.PageComMngVillageDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngVillageRegionVO;
+import com.panzhihua.common.model.vos.community.ComMngVillageServeExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngVillageTotalVO;
+import com.panzhihua.common.model.vos.community.ComMngVillageVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.StringUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+
+/**
+ * @description: 小区管理
+ * @author: llming
+ **/
+@Slf4j
+@Api(tags = {"小区管理"})
+@RestController
+@RequestMapping("/villagemanager/")
+public class VillageApi extends BaseController {
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private UserService userService;
+
+    @ApiOperation(value = "查询小区", response = ComMngVillageVO.class)
+    @PostMapping("listvillage")
+    public R listVillage(@RequestBody ComMngVillageVO comMngVillageVO) {
+        return communityService.listVillage(comMngVillageVO);
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/VolunteerActivitiesPeopleApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/VolunteerActivitiesPeopleApi.java
new file mode 100644
index 0000000..d8a2672
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/VolunteerActivitiesPeopleApi.java
@@ -0,0 +1,333 @@
+package com.panzhihua.applets.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.VolunteerActivitiesPeopleVO;
+import com.panzhihua.common.model.vos.community.VolunteerIntegralMerchantVO;
+import com.panzhihua.common.model.vos.community.VolunteerIntegralRecordVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.StringUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+@Slf4j
+@RestController
+@RequestMapping("/VolunteerActivitiesPeople")
+public class VolunteerActivitiesPeopleApi extends BaseController
+{
+    @Resource
+    private CommunityService volunteerActivitiesPeople;
+
+    /**
+     * 志愿者单个详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/vapGetById")
+    public R vapGetById(@RequestParam("id") String id)
+    {
+        if(StringUtils.isEmpty(id))
+        {
+            return R.fail("id不能为空");
+        }
+        return R.ok(volunteerActivitiesPeople.vapGetById(id));
+    }
+
+    /**
+     * 参与人员列表
+     * @param activityId
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/vapGetList")
+    public R  vapGetList(@RequestParam("activityId") String activityId,
+                         @RequestParam("communityId") String communityId)
+    {
+        if(StringUtils.isEmpty(activityId))
+        {
+            return R.fail("活动id不能为空");
+        }
+
+        if(StringUtils.isEmpty(communityId))
+        {
+            communityId=getLoginUserInfo().getCommunityId()+"";
+        }
+
+        return R.ok(volunteerActivitiesPeople.vapGetList(activityId, communityId));
+    }
+
+    /**
+     * 添加参与人员
+     * @param volunteerActivitiesPeopleVO
+     * @return
+     */
+    @PostMapping("/vapInsert")
+    public R  vapInsert(@RequestBody VolunteerActivitiesPeopleVO volunteerActivitiesPeopleVO)
+    {
+        if(volunteerActivitiesPeopleVO==null)
+        {
+            return R.fail("参数不能为空");
+        }
+
+        if(StringUtils.isEmpty(volunteerActivitiesPeopleVO.getUserId()))
+        {
+            return R.fail("用户id不能为空");
+        }
+
+        if(StringUtils.isEmpty(volunteerActivitiesPeopleVO.getActivityId()))
+        {
+            return R.fail("活动id不能为空");
+        }
+
+        if(StringUtils.isEmpty(volunteerActivitiesPeopleVO.getCommunityId()))
+        {
+            volunteerActivitiesPeopleVO.setCommunityId(getLoginUserInfo().getCommunityId()+"");
+        }
+
+        return volunteerActivitiesPeople.vapInsert(volunteerActivitiesPeopleVO);
+    }
+
+    /**
+     * 修改参与人员
+     * @param volunteerActivitiesPeopleVO
+     * @return
+     */
+    @PostMapping("/vapUpdate")
+    public R  vapUpdate(@RequestBody VolunteerActivitiesPeopleVO volunteerActivitiesPeopleVO)
+    {
+        if(volunteerActivitiesPeopleVO==null)
+        {
+            return R.fail("参数不能为空");
+        }
+
+        if(StringUtils.isEmpty(volunteerActivitiesPeopleVO.getId()))
+        {
+            return R.fail("id不能为空");
+        }
+
+        if(StringUtils.isEmpty(volunteerActivitiesPeopleVO.getActivityId()))
+        {
+            return R.fail("活动id不能为空");
+        }
+
+        if(StringUtils.isEmpty(volunteerActivitiesPeopleVO.getVolunteerId()))
+        {
+            return R.fail("志愿者id不能为空");
+        }
+
+        if(StringUtils.isEmpty(volunteerActivitiesPeopleVO.getCommunityId()))
+        {
+            volunteerActivitiesPeopleVO.setCommunityId(getLoginUserInfo().getCommunityId()+"");
+        }
+
+        return volunteerActivitiesPeople.vapUpdate(volunteerActivitiesPeopleVO);
+    }
+
+    /**
+     * 删除参与人员
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/vapDelete")
+    public R vapDelete(@RequestParam("id") String id)
+    {
+        if(StringUtils.isEmpty(id))
+        {
+            return R.fail("id不能为空");
+        }
+        return volunteerActivitiesPeople.vapDelete(id);
+    }
+
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/queryList")
+    R queryList(@RequestParam("pageNum") int pageNum,
+                @RequestParam("pageSize") int pageSize,
+                @RequestParam(value = "name", required = false) String name,
+                @RequestParam(value = "acState", required = false) String acState,
+                @RequestParam(value = "acType", required = false) String acType,
+                @RequestParam(value = "actityBeginTime", required = false) Date actityBeginTime,
+                @RequestParam(value = "actityEndTime", required = false) Date actityEndTime)
+    {
+        return volunteerActivitiesPeople.volunteerQueryList(pageNum,  pageSize, name, acState, acType, actityBeginTime, actityEndTime);
+    }
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/volunteerTypeGetList")
+    public R volunteerTypeGetList(@RequestParam("pageNum")  int pageNum,
+                                  @RequestParam("pageSize")  int pageSize)
+    {
+        return volunteerActivitiesPeople.volunteerTypeGetList(pageNum,pageSize,"1");
+    }
+
+    /**************************************************************************************************
+     *
+     *                   积分明细
+     *
+     ***************************************************************************************************/
+    /**
+     * 获取单个详情
+     *
+     * @param id
+     * @return
+     */
+    @GetMapping("/IntegralRecord/getId")
+    public R VolunteerIntegralRecordGetId(@RequestParam("id") String id)
+    {
+        return volunteerActivitiesPeople.VolunteerIntegralRecordGetId(id);
+    }
+
+    /**
+     * 分页查询
+     *
+     * @param
+     * @return
+     */
+    @GetMapping("/IntegralRecord/getList")
+    public R VolunteerIntegralRecordGetList(@RequestParam("pageNum") int pageNum,
+                                            @RequestParam("pageSize")  int pageSize,
+                                            @RequestParam("userId") String userId)
+    {
+        return volunteerActivitiesPeople.VolunteerIntegralRecordGetList(pageNum,pageSize,userId);
+    }
+
+    /**
+     * 新增
+     *
+     * @param
+     * @return
+     */
+    @PostMapping("/IntegralRecord/insertVolunteer")
+    public R VolunteerIntegralRecordInsertVolunteer(@RequestBody() VolunteerIntegralRecordVO volunteerIntegralRecordVO)
+    {
+        return volunteerActivitiesPeople.VolunteerIntegralRecordInsertVolunteer(volunteerIntegralRecordVO);
+    }
+
+    /**
+     * 便捷
+     * @param
+     * @return
+     */
+    @PostMapping("/VolunteerIntegralRecord/updateId")
+    public R VolunteerIntegralRecordUpdateId(@RequestBody() VolunteerIntegralRecordVO volunteerIntegralRecordVO)
+    {
+        return volunteerActivitiesPeople.VolunteerIntegralRecordUpdateId(volunteerIntegralRecordVO);
+    }
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/IntegralRecord/deleteId")
+    public R VolunteerIntegralRecordDeleteId(@RequestParam("id") String id)
+    {
+        return volunteerActivitiesPeople.VolunteerIntegralRecordDeleteId(id);
+    }
+
+    /****************************************************************************************************
+     *
+     *
+     *                路北积分商城
+     *
+     *
+     ***************************************************************************************************/
+
+    /**
+     * 获取单个详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/VolunteerIntegralMerchant/queryById")
+    public R VolunteerIntegralMerchantQueryById(@RequestParam("id") String id)
+    {
+        return volunteerActivitiesPeople.VolunteerIntegralMerchantQueryById(id);
+    }
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/VolunteerIntegralMerchant/queryList")
+    public R VolunteerIntegralMerchantQueryList(@RequestParam("pageNum") int pageNum,
+                                                @RequestParam("pageSize")  int pageSize,
+                                                @RequestParam(value = "name", required = false) String name,
+                                                @RequestParam(value = "state", required = false) String state)
+    {
+        return volunteerActivitiesPeople.VolunteerIntegralMerchantQueryList(pageNum,pageSize,name,state,"0",null);
+    }
+
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/VolunteerIntegralMerchant/merchantQueryList")
+    public R MerchantQueryList(@RequestParam("pageNum") int pageNum,
+                                @RequestParam("pageSize")  int pageSize,
+                                @RequestParam(value = "name", required = false) String name,
+                                @RequestParam(value = "state", required = false) String state,
+                                @RequestParam(value = "merchantId", required = false) String merchantId)
+    {
+        return volunteerActivitiesPeople.VolunteerIntegralMerchantQueryList(pageNum,pageSize,name,state,"1",merchantId);
+    }
+
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/VolunteerIntegralMerchant/insertVolunteer")
+    public R VolunteerIntegralMerchantInsertVolunteer(@RequestBody VolunteerIntegralMerchantVO vimVO)
+    {
+        if(StringUtils.isEmpty(vimVO.getMerchantId()))
+        {
+            return R.fail("商家id不能为空");
+        }
+
+        vimVO.setGoodType("1");
+        return volunteerActivitiesPeople.VolunteerIntegralMerchantInsertVolunteer(vimVO);
+    }
+
+    @PostMapping("/VolunteerIntegralMerchant/updateById")
+    public R  VolunteerIntegralMerchantUpdateById(@RequestBody VolunteerIntegralMerchantVO vimVO)
+    {
+        if(StringUtils.isEmpty(vimVO.getMerchantId()))
+        {
+            return R.fail("商家id不能为空");
+        }
+
+        vimVO.setGoodType("1");
+        return volunteerActivitiesPeople.VolunteerIntegralMerchantUpdateById(vimVO);
+    }
+
+
+    @PostMapping("/VolunteerIntegralMerchant/unmount")
+    public R  VolunteerIntegralMerchantUnmount(@RequestBody VolunteerIntegralMerchantVO vimVO)
+    {
+        vimVO.setGoodType("1");
+        return volunteerActivitiesPeople.VolunteerIntegralMerchantUnmount(vimVO);
+    }
+
+
+    @DeleteMapping("/VolunteerIntegralMerchant/deleteById")
+    public R  VolunteerIntegralMerchantDeleteById(@RequestParam("id") String id)
+    {
+        return volunteerActivitiesPeople.VolunteerIntegralMerchantDeleteById(id);
+    }
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WalletApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WalletApi.java
new file mode 100644
index 0000000..fdf1095
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WalletApi.java
@@ -0,0 +1,74 @@
+package com.panzhihua.applets.api;
+
+import javax.annotation.Resource;
+
+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.RestController;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.wallet.ComActWalletDetailDTO;
+import com.panzhihua.common.model.dtos.community.wallet.PageComActWalletTradeDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.wallet.ComActWalletRankingVO;
+import com.panzhihua.common.model.vos.community.wallet.ComActWalletTradeVO;
+import com.panzhihua.common.model.vos.community.wallet.ComActWalletVO;
+import com.panzhihua.common.service.community.CommunityService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+@RestController
+@RequestMapping("/wallet/")
+@Api(tags = {"钱包模块"})
+public class WalletApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "查询我的钱包", response = ComActWalletVO.class)
+    @PostMapping("/get/my")
+    public R getWallet() {
+        ComActWalletDetailDTO walletDetailDTO = new ComActWalletDetailDTO();
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        walletDetailDTO.setUserId(loginUserInfo.getUserId());
+        Long communityId = loginUserInfo.getCommunityId();
+        if (null == communityId || 0 == communityId) {
+            return R.fail("用户未绑定社区");
+        }
+        walletDetailDTO.setCommunityId(communityId);
+        return communityService.getUserWalletDetail(walletDetailDTO);
+    }
+
+    @ApiOperation(value = "查询我的收支记录", response = ComActWalletTradeVO.class)
+    @PostMapping("/get/trade")
+    public R getWalletTrade(@RequestBody PageComActWalletTradeDTO walletTradeDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        walletTradeDTO.setUserId(loginUserInfo.getUserId());
+        Long communityId = loginUserInfo.getCommunityId();
+        if (null == communityId || 0 == communityId) {
+            return R.fail("用户未绑定社区");
+        }
+        walletTradeDTO.setCommunityId(communityId);
+        return communityService.getUserWalletTrade(walletTradeDTO);
+    }
+
+    @ApiOperation(value = "查询收益排行榜", response = ComActWalletRankingVO.class)
+    @PostMapping("/get/ranking")
+    public R getWalletRanking(@RequestBody PageComActWalletTradeDTO walletTradeDTO) {
+        Long communityId = this.getCommunityId();
+        if (null == communityId || 0 == communityId) {
+            return R.fail("用户未绑定社区");
+        }
+        walletTradeDTO.setCommunityId(communityId);
+        return communityService.getWalletRanking(walletTradeDTO);
+    }
+}
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
new file mode 100644
index 0000000..4b4c083
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WorkGuideApi.java
@@ -0,0 +1,66 @@
+package com.panzhihua.applets.api;
+
+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;
+import com.panzhihua.common.model.dtos.community.PageActWorkGuideDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActWorkGuideVO;
+import com.panzhihua.common.service.community.CommunityService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther llming
+ * @describe 办事指南API
+ */
+@Slf4j
+@RestController
+@RequestMapping("/workguide/")
+@Api(tags = {"办事指南API"})
+public class WorkGuideApi extends BaseController {
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "办事指南_分页", response = ComActWorkGuideVO.class)
+    @PostMapping("pageworkguide")
+    public R detailWorkGuide(@RequestBody PageActWorkGuideDTO pageActWorkGuideDTO) {
+        pageActWorkGuideDTO.setAreaCode(this.getAreaCode());
+        return communityService.pageWorkGuide(pageActWorkGuideDTO);
+    }
+
+    @ApiOperation(value = "办事指南_详情", response = ComActWorkGuideVO.class)
+    @GetMapping("detailworkguide")
+    public R detailWorkGuide(@RequestParam("workGuideId") String workGuideId,
+        @RequestParam(value = "communityId", required = false) Long communityId) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            communityId = loginUserInfo.getCommunityId();
+        }
+        if(communityId==null || communityId<0)
+        {
+            return communityService.detailWorkGuide(workGuideId, "");
+        }
+        return communityService.detailWorkGuide(workGuideId, communityId+"");
+    }
+
+    @ApiOperation(value = "办事指南列表-按分类查询", response = ComActWorkGuideAppletsVO.class)
+    @PostMapping("list")
+    public R listWorkGuide(@RequestBody PageActWorkGuideDTO pageActWorkGuideDTO) {
+        pageActWorkGuideDTO.setAreaCode(this.getAreaCode());
+        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/WxCallbackApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxCallbackApi.java
new file mode 100644
index 0000000..f83f4e9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxCallbackApi.java
@@ -0,0 +1,501 @@
+package com.panzhihua.applets.api;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import com.panzhihua.applets.umf.MyAESUtil;
+import com.panzhihua.applets.umf.UmfPayUtil;
+import com.panzhihua.applets.unionpay.Query;
+import com.panzhihua.applets.unionpay.QueryEntiy;
+import com.panzhihua.applets.unionpay.Refund;
+import com.panzhihua.common.model.dtos.wx.UnionpayCarWash;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.HttpClientUtil;
+import com.umf.api.service.UmfService;
+import com.umf.api.service.UmfServiceImpl;
+import io.swagger.annotations.ApiOperation;
+import com.panzhihua.common.service.community.ComBatteryCommodityOrderFeign;
+import org.json.XML;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.*;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.model.dtos.shop.WxPayNotifyOrderDTO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.StringUtils;
+
+import lombok.extern.slf4j.Slf4j;
+
+import static com.umf.api.service.UmfServiceImpl.printResult;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:49
+ * @describe 微信支付回到函数
+ */
+@Slf4j
+@RestController
+@RequestMapping("/wx/")
+public class WxCallbackApi {
+
+    private static final String  SUCCESS="SUCCESS";
+
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private UmfPayUtil umfPayUtil;
+    @Value("${umf.file}")
+    private String file;
+    @Resource
+    private UserService userService;
+    @Resource
+    private ComBatteryCommodityOrderFeign commodityOrderFeign;
+
+
+    @PostMapping("wxNotify")
+    public void payCallback(HttpServletRequest request, HttpServletResponse response) {
+        log.error("微信支付回调start");
+        String inputLine = "";
+        String notityXml = "";
+        try {
+            while ((inputLine = request.getReader().readLine()) != null) {
+                notityXml += inputLine;
+            }
+            // 关闭流
+            request.getReader().close();
+            log.error("微信回调内容信息:" + notityXml);
+            // 解析成Json
+            org.json.JSONObject xmlJson = XML.toJSONObject(notityXml);
+            if (StringUtils.isNotEmpty(xmlJson.toString())) {
+                JSONObject resultData = JSON.parseObject(xmlJson.get("xml").toString());
+                // 成功支付订单
+                if (resultData.getString("result_code").equals("SUCCESS")
+                    && resultData.getString("return_code").equals("SUCCESS")) {
+                    WxPayNotifyOrderDTO notifyOrderDTO = new WxPayNotifyOrderDTO();
+                    // 订单号
+                    String orderTradeNo = resultData.getString("out_trade_no");
+                    notifyOrderDTO.setOrderTradeNo(orderTradeNo);
+                    // 微信支付订单号
+                    String wxTradeNo = resultData.getString("transaction_id");
+                    notifyOrderDTO.setWxTradeNo(wxTradeNo);
+                    // 订单金额
+                    String totalFee = resultData.getString("total_fee");
+                    notifyOrderDTO.setTotalFee(totalFee);
+                    // 支付完成时间
+                    String payTime = resultData.getString("time_end");
+                    notifyOrderDTO.setPayTime(payTime);
+                    // 现金支付金额
+                    String cashFee = resultData.getString("cash_fee");
+                    notifyOrderDTO.setCashFee(cashFee);
+
+                    // 根据订单号修改订单信息
+                    communityService.wxOrderPayNotify(notifyOrderDTO);
+
+                    // 封装 返回值
+                    StringBuffer buffer = new StringBuffer();
+                    buffer.append("<xml>");
+                    buffer.append("<return_code>SUCCESS</return_code>");
+                    buffer.append("<return_msg>OK</return_msg>");
+                    buffer.append("</xml>");
+
+                    // 给微信服务器返回 成功标示 否则会一直询问 咱们服务器 是否回调成功
+                    PrintWriter writer = response.getWriter();
+                    // 返回
+                    writer.print(buffer.toString());
+                } else {// 未成功支付订单
+                        // 封装 返回值
+                    StringBuffer buffer = new StringBuffer();
+                    buffer.append("<xml>");
+                    buffer.append("<return_code>FAIL</return_code>");
+                    buffer.append("<return_msg>FAIL</return_msg>");
+                    buffer.append("</xml>");
+
+                    // 给微信服务器返回 成功标示 否则会一直询问 咱们服务器 是否回调成功
+                    PrintWriter writer = response.getWriter();
+                    // 返回
+                    writer.print(buffer.toString());
+                }
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+    @GetMapping("wxNotifyAll")
+    public void payCallbackAll(HttpServletRequest request, HttpServletResponse response) {
+        //获取联动发送请求的参数
+        String requestParam =  request.getQueryString();
+        System.out.println("花城洗车请求参数 :" + requestParam);
+        //调用异步通知解析方法
+        UmfService service = new UmfServiceImpl("53461",file);
+        Map respMap = null;
+        try {
+            respMap = service.notifyDataParserMap(requestParam);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        if(respMap.get("error_code").equals("0000")){
+            //调用uu洗车支付成功回调
+            Map map=new HashMap();
+            map.put("orderId",respMap.get("order_id"));
+            HttpClientUtil.sendPostByJson("https://uu-api.imashuo.com/notify/wx/pzh-pay",JSONObject.toJSONString(map),
+                    1,"appid","10000");
+            log.error("花城洗车回调成功 :" + respMap.get("order_id"));
+        }
+        //调用SDK生成返回联动平台字符串,加到CONTENT中
+        String resMetaData = service.responseUMFMap(respMap);
+        response.setContentType("text/html;charset=utf-8");
+        PrintWriter out = null;
+        try {
+            out = response.getWriter();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
+        out.println("<HTML>");
+        out.println("<HEAD><META NAME=\"MobilePayPlatform\" CONTENT=\"" + resMetaData + "\" /></HEAD>");
+        out.println("<BODY>");
+        out.println("</BODY>");
+        out.println("</HTML>");
+        out.flush();
+        out.close();
+    }
+
+
+    /**
+     * 银联支付回调专用  银联方面只能是有个post
+     * @param response
+     */
+    @PostMapping("wxNotifyAllUnionpay")
+    public void payCallbackAllUnionpay(@RequestParam("merOrderId") String merOrderId, HttpServletResponse response)
+    {
+        //获取联动发送请求的参数
+        log.error("花城洗车请求参数 :" + merOrderId);
+        log.error("花城洗车请求参数response :" + response.toString());
+        //调用异步通知解析方法
+        String content=Query.query(merOrderId);
+        QueryEntiy queryEntiy=JSONObject.parseObject(content,QueryEntiy.class);
+        log.error("花城洗车请求参数queryEntiy :" + queryEntiy.toString());
+        if(queryEntiy.getErrCode().equals("SUCCESS"))
+        {
+            //查询银联单号对应的洗车单号
+            R r=communityService.carWashById(merOrderId);
+            if(r.getCode()==200)
+            {
+
+                HashMap unionpayCarWash= (HashMap) r.getData();
+                //调用uu洗车支付成功回调
+                Map map=new HashMap();
+                map.put("orderId",unionpayCarWash.get("carWashId"));
+                HttpClientUtil.sendPostByJson("https://uu-api.imashuo.com/notify/wx/pzh-pay",JSONObject.toJSONString(map),
+                        1,"appid","10000");
+                log.error("花城洗车回调成功 :" + queryEntiy.getMerOrderId()+" : 洗车号"
+                        +unionpayCarWash.get("carWashId")+" : 银联号"+unionpayCarWash.get("unionpayOrderId"));
+            }
+
+        }
+        //调用SDK生成返回联动平台字符串,加到CONTENT中
+        response.setContentType("text/html;charset=utf-8");
+        PrintWriter out = null;
+        try {
+            out = response.getWriter();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");
+        out.println("<HTML>");
+        out.println("<HEAD><META NAME=\"MobilePayPlatform\" CONTENT=\"" + content + "\" /></HEAD>");
+        out.println("<BODY>");
+        out.println("</BODY>");
+        out.println("</HTML>");
+        out.flush();
+        out.close();
+    }
+
+
+    @ApiOperation("uu洗车退款接口")
+    @PostMapping("/uuRepay")
+    public R uuRepay(@RequestBody String aesString)
+    {
+        try {
+            Map<String, String> aesMap= (Map<String, String>) JSON.parse(aesString);
+            String desString=MyAESUtil.Decrypt(aesMap.get("aesString"),"Ryo7M3n8loC5Abcd");
+            Map<String,String> desMap= (Map) JSON.parse(desString);
+            Map map=umfPayUtil.repay(desMap.get("orderId"),desMap.get("merdate"), DateUtils.getDateFormatString(new Date(),
+                    "yyMMddHHmmss")+"0001",desMap.get("refundAmount"),desMap.get("orgAmount"));
+
+            if(desMap.get("orderId")!=null)
+            {
+                R r=communityService.queryById(desMap.get("orderId"));
+                if(r.getCode()==200)
+                {
+                    HashMap wash= (HashMap) r.getData();
+                    if(wash!=null)
+                    {
+                        String re=Refund.sendOrder(wash.get("money").toString(),
+                                wash.get("unionpayOrderId").toString());
+                        map.put("unionpay","退款成功");
+                        log.error("花城洗车银联退款成功 :" + re);
+                    }
+
+                }
+            }
+            return R.ok(map);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.fail("加密验证失败");
+        }
+
+    }
+    @ApiOperation("uu洗车推送")
+    @PostMapping("/uuPush")
+    public R uuPush(@RequestBody String aesString){
+        try {
+            Map<String, String> aesMap= (Map<String, String>) JSON.parse(aesString);
+            String desString=MyAESUtil.Decrypt(aesMap.get("aesString"),"Ryo7M3n8loC5Abcd");
+            Map<String,String> desMap= (Map) JSON.parse(desString);
+            return userService.uuPush(desMap.get("washer_mobile"),desMap.get("phone"),desMap.get("washer_name"),Integer.parseInt(desMap.get("order_status")));
+
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.fail("推送失败");
+        }
+
+    }
+    @ApiOperation("ws洗车推送")
+    @PostMapping("/wsPush")
+    public R wsPush(@RequestBody String aesString){
+        try {
+            Map<String, String> aesMap= (Map<String, String>) JSON.parse(aesString);
+            String desString=MyAESUtil.Decrypt(aesMap.get("aesString"),"Ryo7M3n8loC5Abcd");
+            Map<String,String> desMap= (Map) JSON.parse(desString);
+            return userService.wsPush(desMap.get("washer_mobile"),desMap.get("phone"),desMap.get("washer_name"),Integer.parseInt(desMap.get("order_status")));
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.fail("推送失败");
+        }
+
+    }
+
+    /**
+     * 电动车商城商品购买支付回调
+     * @param request   请求参数
+     * @param response  返回参数
+     */
+    @PostMapping("/batteryPayNotify")
+    public void batteryPayNotify(HttpServletRequest request, HttpServletResponse response) {
+        log.info("钱包充值微信支付回调start");
+        String inputLine = "";
+        String notityXml = "";
+        try {
+            while ((inputLine = request.getReader().readLine()) != null) {
+                notityXml += inputLine;
+            }
+            // 关闭流
+            request.getReader().close();
+            log.info("钱包充值微信回调内容信息:" + notityXml);
+            // 解析成Json
+            org.json.JSONObject xmlJson = XML.toJSONObject(notityXml);
+            if (StringUtils.isNotEmpty(xmlJson.toString())) {
+                JSONObject resultData = JSON.parseObject(xmlJson.get("xml").toString());
+                // 成功支付订单
+                if (SUCCESS.equals(resultData.getString("result_code")) && SUCCESS.equals(resultData.getString("result_code"))){
+                    WxPayNotifyOrderDTO notifyOrderDTO = getWxNotify(resultData);
+
+                    // 根据订单号修改订单信息
+                    commodityOrderFeign.batteryPayNotify(notifyOrderDTO);
+                    // 给微信服务器返回 成功标示 否则会一直询问 咱们服务器 是否回调成功
+                    PrintWriter writer = response.getWriter();
+                    // 返回
+                    writer.print(getWxSuccessString());
+                } else {// 未成功支付订单
+                    // 给微信服务器返回 成功标示 否则会一直询问 咱们服务器 是否回调成功
+                    PrintWriter writer = response.getWriter();
+                    // 返回
+                    writer.print(getWxFailString());
+                }
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+    @PostMapping("/batteryActivityPayNotify")
+    public void batteryActivityPayNotify(HttpServletRequest request, HttpServletResponse response) {
+        log.info("购买活动商品微信支付回调start");
+        String inputLine = "";
+        String notityXml = "";
+        try {
+            while ((inputLine = request.getReader().readLine()) != null) {
+                notityXml += inputLine;
+            }
+            // 关闭流
+            request.getReader().close();
+            log.info("购买活动商品微信回调内容信息:" + notityXml);
+            // 解析成Json
+            org.json.JSONObject xmlJson = XML.toJSONObject(notityXml);
+            if (StringUtils.isNotEmpty(xmlJson.toString())) {
+                JSONObject resultData = JSON.parseObject(xmlJson.get("xml").toString());
+                // 成功支付订单
+                if (SUCCESS.equals(resultData.getString("result_code")) && SUCCESS.equals(resultData.getString("result_code"))){
+                    WxPayNotifyOrderDTO notifyOrderDTO = getWxNotify(resultData);
+
+                    // 根据订单号修改订单信息
+                    commodityOrderFeign.batteryActivityPayNotify(notifyOrderDTO);
+                    // 给微信服务器返回 成功标示 否则会一直询问 咱们服务器 是否回调成功
+                    PrintWriter writer = response.getWriter();
+                    // 返回
+                    writer.print(getWxSuccessString());
+                } else {// 未成功支付订单
+                    // 给微信服务器返回 成功标示 否则会一直询问 咱们服务器 是否回调成功
+                    PrintWriter writer = response.getWriter();
+                    // 返回
+                    writer.print(getWxFailString());
+                }
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 将微信支付回调的请求参数转义为对象
+     * @param resultData    微信支付回调请求参数
+     * @return  转义为支付请求参数
+     */
+    private WxPayNotifyOrderDTO getWxNotify(JSONObject resultData){
+        WxPayNotifyOrderDTO notifyOrderDTO = new WxPayNotifyOrderDTO();
+        notifyOrderDTO.setResult(resultData.toJSONString());
+        // 订单号
+        String orderTradeNo = resultData.getString("out_trade_no");
+        notifyOrderDTO.setOrderTradeNo(orderTradeNo);
+        // 微信支付订单号
+        String wxTradeNo = resultData.getString("transaction_id");
+        notifyOrderDTO.setWxTradeNo(wxTradeNo);
+        // 订单金额
+        String totalFee = resultData.getString("total_fee");
+        notifyOrderDTO.setTotalFee(totalFee);
+        // 支付完成时间
+        String payTime = resultData.getString("time_end");
+        notifyOrderDTO.setPayTime(payTime);
+        // 现金支付金额
+        String cashFee = resultData.getString("cash_fee");
+        notifyOrderDTO.setCashFee(cashFee);
+        //附加数据
+        String attach = resultData.getString("attach");
+        notifyOrderDTO.setAttach(attach);
+        return notifyOrderDTO;
+    }
+
+    /**
+     * 封装微信成功返回值
+     * @return  成功返回值
+     */
+    private String getWxSuccessString(){
+        StringBuffer buffer = new StringBuffer();
+        buffer.append("<xml>");
+        buffer.append("<return_code>SUCCESS</return_code>");
+        buffer.append("<return_msg>OK</return_msg>");
+        buffer.append("</xml>");
+        return buffer.toString();
+    }
+
+    /**
+     * 封装微信失败返回值
+     * @return  失败返回值
+     */
+    private String getWxFailString(){
+        StringBuffer buffer = new StringBuffer();
+        buffer.append("<xml>");
+        buffer.append("<return_code>FAIL</return_code>");
+        buffer.append("<return_msg>FAIL</return_msg>");
+        buffer.append("</xml>");
+        return buffer.toString();
+    }
+
+    @GetMapping("/settle")
+    public R settle(String settleDate){
+        return R.ok(umfPayUtil.settle(settleDate));
+    }
+
+
+    @PostMapping("/flower/wxNotify")
+    @ApiOperation("花城支付回调")
+    public void flowerWxNotify(HttpServletRequest request, HttpServletResponse response) {
+        log.error("微信支付回调start");
+        String inputLine = "";
+        String notityXml = "";
+        try {
+            while ((inputLine = request.getReader().readLine()) != null) {
+                notityXml += inputLine;
+            }
+            // 关闭流
+            request.getReader().close();
+            log.error("微信回调内容信息:" + notityXml);
+            // 解析成Json
+            org.json.JSONObject xmlJson = XML.toJSONObject(notityXml);
+            if (StringUtils.isNotEmpty(xmlJson.toString())) {
+                JSONObject resultData = JSON.parseObject(xmlJson.get("xml").toString());
+                // 成功支付订单
+                if (resultData.getString("result_code").equals("SUCCESS")
+                        && resultData.getString("return_code").equals("SUCCESS")) {
+                    WxPayNotifyOrderDTO notifyOrderDTO = new WxPayNotifyOrderDTO();
+                    // 订单号
+                    String orderTradeNo = resultData.getString("out_trade_no");
+                    notifyOrderDTO.setOrderTradeNo(orderTradeNo);
+                    // 微信支付订单号
+                    String wxTradeNo = resultData.getString("transaction_id");
+                    notifyOrderDTO.setWxTradeNo(wxTradeNo);
+                    // 订单金额
+                    String totalFee = resultData.getString("total_fee");
+                    notifyOrderDTO.setTotalFee(totalFee);
+                    // 支付完成时间
+                    String payTime = resultData.getString("time_end");
+                    notifyOrderDTO.setPayTime(payTime);
+                    // 现金支付金额
+                    String cashFee = resultData.getString("cash_fee");
+                    notifyOrderDTO.setCashFee(cashFee);
+
+                    // 根据订单号修改订单信息
+                    communityService.wxOrderPayNotifyFlower(notifyOrderDTO);
+
+                    // 封装 返回值
+                    StringBuffer buffer = new StringBuffer();
+                    buffer.append("<xml>");
+                    buffer.append("<return_code>SUCCESS</return_code>");
+                    buffer.append("<return_msg>OK</return_msg>");
+                    buffer.append("</xml>");
+
+                    // 给微信服务器返回 成功标示 否则会一直询问 咱们服务器 是否回调成功
+                    PrintWriter writer = response.getWriter();
+                    // 返回
+                    writer.print(buffer.toString());
+                } else {// 未成功支付订单
+                    // 封装 返回值
+                    StringBuffer buffer = new StringBuffer();
+                    buffer.append("<xml>");
+                    buffer.append("<return_code>FAIL</return_code>");
+                    buffer.append("<return_msg>FAIL</return_msg>");
+                    buffer.append("</xml>");
+
+                    // 给微信服务器返回 成功标示 否则会一直询问 咱们服务器 是否回调成功
+                    PrintWriter writer = response.getWriter();
+                    // 返回
+                    writer.print(buffer.toString());
+                }
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxMessagePushApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxMessagePushApi.java
new file mode 100644
index 0000000..eef70f7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxMessagePushApi.java
@@ -0,0 +1,156 @@
+package com.panzhihua.applets.api;
+
+import java.io.PrintWriter;
+import java.security.MessageDigest;
+import java.util.Arrays;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.common.utlis.WxUtil;
+import com.panzhihua.common.utlis.WxXCXTempSend;
+
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+@RestController
+@RequestMapping("/wx/push/")
+public class WxMessagePushApi {
+
+    private String token = "01A9CB2234D7CBD0AC61B75EB1263805";
+
+    private String url = "www.taobao.com";// 图文跳转地址
+
+    private String thumbUrl = "https://www.psciio.com//idcard/f986ba3ae7a241d9bce5cb568adec7da.jpg";// 图片地址
+
+    @Resource
+    private WxXCXTempSend wxXCXTempSend;
+
+    /**
+     * 微信接口配置信息认证接口<br>
+     * 需要正确响应微信发送的Token验证。 加密/校验流程如下:<br>
+     * 1. 将token、timestamp、nonce三个参数进行字典序排序<br>
+     * 2. 将三个参数字符串拼接成一个字符串进行sha1加密<br>
+     * 3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
+     */
+    @RequestMapping("/cgi")
+    public void cgi(HttpServletRequest request, HttpServletResponse response) {
+        boolean isGet = request.getMethod().toLowerCase().equals("get");
+        // 微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
+        try {
+            if (isGet) {
+                String signature = request.getParameter("signature");
+                // 时间戳
+                String timestamp = request.getParameter("timestamp");
+                // 随机数
+                String nonce = request.getParameter("nonce");
+                // 随机字符串
+                String echostr = request.getParameter("echostr");
+                log.info("signature = " + signature + " , timestamp = " + timestamp + " , nonce = " + nonce
+                    + " , echostr = " + echostr);
+                String[] strArray = new String[] {token, timestamp, nonce};
+                Arrays.sort(strArray);
+                StringBuilder sb = new StringBuilder();
+                for (String str : strArray) {
+                    sb.append(str);
+                }
+                // SHA1签名生成
+                MessageDigest md = MessageDigest.getInstance("SHA-1");
+                md.update(sb.toString().getBytes());
+                byte[] digest = md.digest();
+
+                StringBuffer hexstr = new StringBuffer();
+                String shaHex = "";
+                for (int i = 0; i < digest.length; i++) {
+                    shaHex = Integer.toHexString(digest[i] & 0xFF);
+                    if (shaHex.length() < 2) {
+                        hexstr.append(0);
+                    }
+                    hexstr.append(shaHex);
+                }
+
+                if (hexstr.toString().equals(signature)) {
+                    response.getOutputStream().write(echostr.getBytes());
+                }
+
+            } else {
+                // 进入POST聊天处理
+                // 将请求、响应的编码均设置为UTF-8(防止中文乱码)
+                request.setCharacterEncoding("UTF-8");
+                response.setCharacterEncoding("UTF-8");
+                // 接收消息并返回消息
+                String result = acceptMessage(request, response);
+
+                // 响应消息
+                PrintWriter out = response.getWriter();
+                out.print(result);
+                out.close();
+            }
+        } catch (Exception ex) {
+            log.error("微信帐号接口配置失败!", ex);
+            ex.printStackTrace();
+        }
+    }
+
+    /**
+     * 接受到微信接口数据
+     * 
+     * @param request
+     * @param response
+     * @return
+     */
+    private String acceptMessage(HttpServletRequest request, HttpServletResponse response) {
+        String respMessage = "";
+        String inputLine = "";
+        String notityXml = "";
+        try {
+            // 接收数据
+            while ((inputLine = request.getReader().readLine()) != null) {
+                notityXml += inputLine;
+            }
+
+            // xml请求解析
+            JSONObject requestJson = JSON.parseObject(notityXml);
+            log.info(">>>>>>>>>>>>>" + requestJson.toString());
+            // 发送方帐号(open_id)
+            String fromUserName = requestJson.get("FromUserName").toString();
+            // 公众帐号
+            String toUserName = requestJson.get("ToUserName").toString();
+            // 消息类型
+            String msgType = requestJson.get("MsgType").toString();
+            // String Event = requestJson.get("Event").toString(); //SCAN 为扫描信息 VIEW 公众号底部点击事件
+            log.info("fromUserName = " + fromUserName + " , ToUserName = " + toUserName + " , msgType = " + msgType);
+
+            String access_token = wxXCXTempSend.getAccessToken();// 获取access_token
+
+            // 公众号关注事件消息
+            if (msgType.equals("event")) {
+                // log.info("公众号被关注事件..........");
+            } else if (msgType.equals("text")) {
+                // if(StringUtils.isNotEmpty(access_token)){
+                // String mediaId = wxXCXTempSend.getMediaId(access_token);//获取mediaId
+                // WxUtil.sendKfImagesMessage(fromUserName,access_token,mediaId);
+                // }
+                // log.info("公众号接受文字..........");
+            } else if (msgType.equals("image")) {
+                // log.info("公众号接受图片..........");
+            } else if (msgType.equals("miniprogrampage")) {
+                if (StringUtils.isNotEmpty(access_token)) {
+                    String mediaId = wxXCXTempSend.getMediaId(access_token);// 获取mediaId
+                    WxUtil.sendKfImagesMessage(fromUserName, access_token, mediaId);
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return respMessage;
+    }
+
+}
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
new file mode 100644
index 0000000..32c450d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/WxOfficialApi.java
@@ -0,0 +1,228 @@
+package com.panzhihua.applets.api;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.applets.config.WxMaConfiguration;
+import com.panzhihua.common.constants.UserConstants;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.utlis.HttpClientUtil;
+import com.panzhihua.common.utlis.StringUtils;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+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;
+import java.io.*;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.nio.charset.StandardCharsets;
+import java.util.*;
+import java.util.concurrent.TimeUnit;
+
+@Slf4j
+@RestController
+@RequestMapping("/official")
+public class WxOfficialApi {
+
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+    // 公众号appid
+    private List<String> appidList = new ArrayList<String>() {
+        {
+            this.add("wx7c733ebbf6c55ecf");
+            this.add("wxc94f0cddf13577d5");
+        }
+    };
+    // 公众号secret
+    private List<String> secretList = new ArrayList<String>() {
+        {
+            this.add("500290552cbfdd1c1c18131c5807b6ae");
+            this.add("3418127405845701497a09f65678953f");
+        }
+    };
+
+    /**
+     * 微信公众号请求头设置
+     */
+    public static Map<String, String> getWxHeaderMap() {
+        Map<String, String> map = new HashMap<>(new LinkedHashMap());
+        map.put("Accept", "text/html, application/xhtml+xml, image/jxr, */*");
+        map.put("Accept-Encoding", "gzip, deflate");
+        map.put("Accept-Language", "zh-Hans-CN, zh-Hans; q=0.8, en-US; q=0.5, en; q=0.3");
+        map.put("Host", "mp.weixin.qq.com");
+        map.put("If-Modified-Since", "Sat, 04 Jan 2020 12:23:43 GMT");
+        map.put("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko");
+        return map;
+    }
+
+    /**
+     * 根据文章链接抓取文章内容
+     *
+     * @param url 文章链接
+     * @return 文章内容
+     */
+    public static String getActicle(String url) {
+        // post发送的参数
+        Map<String, Object> map = new HashMap<>();
+        map.put("type", "news"); // news表示图文类型的素材,具体看API文档
+        map.put("offset", 0);
+        map.put("count", 5);
+        // 将map转换成json字符串
+        String paramBody = JSON.toJSONString(map);
+        return HttpClientUtil.get(url, getWxHeaderMap(), paramBody);
+    }
+
+    /**
+     * 获取token
+     *
+     * @param appid  公众号appid
+     * @param secret 公众号secret
+     * @return token
+     */
+    private String getToken(String appid, String secret) throws IOException {
+        // access_token接口https请求方式: GET
+        // https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
+
+        String path = " https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential";
+        URL url = new URL(path + "&appid=" + appid + "&secret=" + secret);
+        HttpURLConnection connection = (HttpURLConnection)url.openConnection();
+        connection.setRequestMethod("GET");
+        connection.connect();
+
+        InputStream in = connection.getInputStream();
+        byte[] b = new byte[100];
+        int len = -1;
+        StringBuffer sb = new StringBuffer();
+        while ((len = in.read(b)) != -1) {
+            sb.append(new String(b, 0, len));
+        }
+
+        in.close();
+
+
+        return sb.toString();
+
+    }
+
+    /**
+     * 通过token获取公众号文章
+     *
+     * @param token token
+     * @return 获取的文章列表结果
+     */
+    private String getContentList(String token) throws IOException {
+        String path = " https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=" + token;
+        URL url = new URL(path);
+        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
+        connection.setRequestMethod("POST");
+        connection.setDoOutput(true);
+        connection.setRequestProperty("content-type", "application/json;charset=utf-8");
+        connection.connect();
+        // post发送的参数
+        Map<String, Object> map = new HashMap<>();
+        map.put("type", "news"); // news表示图文类型的素材,具体看API文档
+        map.put("offset", 0);
+        map.put("count", 5);
+        // 将map转换成json字符串
+        String paramBody = JSON.toJSONString(map); // 这里用了Alibaba的fastjson
+
+        OutputStream out = connection.getOutputStream();
+        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(out, StandardCharsets.UTF_8));
+        bw.write(paramBody); // 向流中写入参数字符串
+        bw.flush();
+
+        InputStream in = connection.getInputStream();
+        byte[] b = new byte[100];
+        int len = -1;
+        StringBuffer sb = new StringBuffer();
+        while ((len = in.read(b)) != -1) {
+            sb.append(new String(b, 0, len, StandardCharsets.UTF_8));
+        }
+
+        in.close();
+        return sb.toString();
+    }
+
+    @ApiOperation(value = "拉取公众号列表")
+    @GetMapping(value = "/list/noToken", produces = "application/json;charset=utf-8")
+    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++) {
+                String token = officialApi.getToken(appidList.get(i), secretList.get(i));
+                JSONObject tokenJson = JSON.parseObject(token);
+                if (StringUtils.isNotEmpty(tokenJson)) {
+                    tokenList.add(tokenJson.getString("access_token"));
+                    if (StringUtils.isNotEmpty(token)) {
+                        tokenList.add(token);
+                    }
+                }
+            }
+        }
+        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()) {
+            for (String token : tokenList) {
+                try {
+                    String url = "https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=" + token;
+                    String result = getActicle(url);
+                    // log.info("通过token获取文章列表成功,返回结果:" + result);
+
+                    JSONObject resultJson = JSON.parseObject(result);
+                    if (resultJson != null) {
+                        List<JSONObject> itemList = JSON.parseArray(resultJson.getString("item"), JSONObject.class);
+                        if (!itemList.isEmpty()) {
+                            for (JSONObject object : itemList) {
+                                String newsId = object.getString("media_id");
+                                JSONObject contentJson = JSON.parseObject(object.getString("content"));
+                                List<JSONObject> newsItemList =
+                                        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.set(UserConstants.NEWS_ID + newsId, newsUrl + "", 2, TimeUnit.DAYS);
+                            }
+                        }
+                        resultJson.put("item", itemList);
+                    }
+                    resultList.add(resultJson);
+                } catch (Exception e) {
+                    log.error("通过token获取文章列表失败,错误原因:" + e.getMessage());
+                }
+                valueOperations.set(UserConstants.NEWS_LIST, resultList.toString(), 12, TimeUnit.HOURS);
+            }
+        }
+        return R.ok(resultList);
+    }
+
+    @ApiOperation(value = "获取公众号文章链接")
+    @GetMapping(value = "/get/noToken")
+    public R getDiscuss(@RequestParam("mediaId") String mediaId) {
+
+        String key = UserConstants.NEWS_ID + mediaId;
+        Boolean hasKey = stringRedisTemplate.hasKey(key);
+        if (!hasKey) {
+            return R.fail("未找到该文章的链接地址");
+        }
+
+        ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
+        String url = valueOperations.get(key);
+        return R.ok(url);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/XmostBeautifulApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/XmostBeautifulApi.java
new file mode 100644
index 0000000..b6881a9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/api/XmostBeautifulApi.java
@@ -0,0 +1,557 @@
+package com.panzhihua.applets.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.VolunteerCreditsExchangeVO;
+import com.panzhihua.common.model.vos.community.VolunteerMerchantEvaluateVO;
+import com.panzhihua.common.model.vos.community.VolunteerMerchantVO;
+import com.panzhihua.common.model.vos.community.VolunteerMerchantWithdrawVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.StringUtils;
+import io.swagger.annotations.Api;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@RestController
+@RequestMapping("/XmostBeautiful")
+@Api(tags = {"小程序志愿者活动"})
+public class XmostBeautifulApi extends BaseController
+{
+
+    @Resource
+    private CommunityService communityService;
+
+
+    @Resource
+    private UserService userService;
+
+    /**
+     * 查询单个
+     * @param Id
+     * @return
+     */
+    @GetMapping("/queryById")
+    public R queryById(@RequestParam("id") String Id)
+    {
+        if(StringUtils.isEmpty(Id))
+        {
+            return R.fail("id不能为空");
+        }
+        return communityService.queryById2(Id);
+    }
+
+
+    /**
+     * 分页查询
+     * @param name
+     * @param unmountType
+     * @return
+     */
+    @GetMapping("/getqueryList")
+    public R queryList(@RequestParam("pageNum") int pageNum,
+                       @RequestParam("pageSize")int pageSize,
+                       @RequestParam(value = "name", required = false) String name,
+                       @RequestParam(value = "unmountType", required = false) String unmountType)
+    {
+        return communityService.queryList(pageNum,pageSize,name,unmountType);
+    }
+
+
+    /**
+     * 查询单个志愿者活动详情
+     * @param Id
+     * @return
+     */
+    @GetMapping("/volunteerQueryById")
+    public R volunteerQueryById(@RequestParam("id") String Id)
+    {
+        if(StringUtils.isEmpty(Id))
+        {
+            return R.fail("id不能为空");
+        }
+        return communityService.volunteerQueryById(Id);
+    }
+
+    /***********************************************************************************************************
+     *
+     *
+     *                   订单兑换
+     *
+     *
+     ***********************************************************************************************************/
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/order/getList")
+    public R orderMerchantGetList(@RequestParam("pageNum") int pageNum,
+                                  @RequestParam("pageSize")  int pageSize,
+                                  @RequestParam(value = "goodsId", required = false) String goodsId,
+                                  @RequestParam(value = "orderNumber", required = false) String orderNumber,
+                                  @RequestParam(value = "goodsName", required = false) String goodsName,
+                                  @RequestParam(value = "condition", required = false) String condition,
+                                  @RequestParam(value = "userName", required = false) String userName,
+                                  @RequestParam(value = "communityId", required = false) String communityId,
+                                  @RequestParam(value = "orderType", required = false) String orderType,
+                                  @RequestParam(value = "merchantId", required = false) String merchantId)
+    {
+        if(StringUtils.isEmpty(communityId))
+        {
+            communityId=getCommunityId()+"";
+        }
+
+        String userId=null;
+
+        if(StringUtils.isEmpty(merchantId))
+        {
+            userId=getUserId()+"";
+        }
+
+        return communityService.getList(pageNum,pageSize,goodsId,orderNumber,goodsName,
+                condition,userName,communityId,userId,orderType,merchantId);
+    }
+
+    /**
+     * 新增用户购买商家商品记录
+     * @param
+     * @return
+     */
+    @PostMapping("/order/insertMerchantData")
+    public R insertMerchantData(@RequestBody VolunteerCreditsExchangeVO item)
+    {
+
+        if(StringUtils.isEmpty(item.getPalyIntegral()))
+        {
+            return R.fail("请输入兑换积分");
+        }
+
+        LoginUserInfoVO userInfoVO= getLoginUserInfo();
+        if(StringUtils.isEmpty(item.getCommunityId()))
+        {
+            item.setCommunityId(userInfoVO.getCommunityId()+"");
+        }
+        item.setOrderType("2");
+        item.setUserId(userInfoVO.getUserId()+"");
+        item.setNeedScore(userInfoVO.getLoveIntegral());
+        return communityService.insertMerchantData(item);
+    }
+
+
+
+    /**
+     * 更新商家订单
+     * @param item
+     * @return
+     */
+    @PostMapping("/order/MerchantUpdate")
+    public R orderMerchantUpdate(@RequestBody VolunteerCreditsExchangeVO item)
+    {
+        item.setOrderType("2");
+        return communityService.update(item);
+    }
+
+    /**
+     * 查询详情
+     * @param id
+     * @return
+     */
+    @GetMapping("order/getData")
+    public R getData(@RequestParam("id") String id)
+    {
+        if(StringUtils.isEmpty(id))
+        {
+            return R.fail("订单id不能为空");
+        }
+        return communityService.getData(id);
+    }
+
+    /**
+     * 新增社区
+     * @param
+     * @return
+     */
+    @PostMapping("/order/insertData")
+    public R insertData(@RequestBody VolunteerCreditsExchangeVO item)
+    {
+        LoginUserInfoVO userInfoVO= getLoginUserInfo();
+        if(StringUtils.isEmpty(item.getCommunityId()))
+        {
+            item.setCommunityId(userInfoVO.getCommunityId()+"");
+        }
+        item.setOrderType("1");
+        item.setUserId(userInfoVO.getUserId()+"");
+        item.setNeedScore(userInfoVO.getLoveIntegral());
+        return communityService.insertData(item);
+    }
+
+    /**
+     * 更新社区
+     * @param item
+     * @return
+     */
+    @PostMapping("/order/update")
+    public R update(@RequestBody VolunteerCreditsExchangeVO item)
+    {
+        item.setOrderType("1");
+        return communityService.update(item);
+    }
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/order/delete")
+    public R delete(@RequestParam("id") String id)
+    {
+        if(StringUtils.isEmpty(id))
+        {
+            return R.fail("订单id不能为空");
+        }
+        return communityService.delete(id);
+    }
+
+    /**
+     * 核销社区
+     * @param id
+     * @return
+     */
+    @GetMapping("/order/conditionData")
+    public R conditionData(@RequestParam("id") String id)
+    {
+        if(StringUtils.isEmpty(id))
+        {
+            return R.fail("订单id不能为空");
+        }
+        return communityService.conditionData(id);
+    }
+
+    /*************************************************************************************
+     *
+     *      路北社区商家模块
+     *
+     **************************************************************************************/
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/getList")
+    public R volunteerMerchantGetList(@RequestParam("pageNum") int pageNum,
+                                      @RequestParam("pageSize") int pageSize,
+                                      @RequestParam(value = "merchantState", required = false) String merchantState,
+                                      @RequestParam(value = "merchantType", required = false) String merchantType,
+                                      @RequestParam(value = "name", required = false) String name)
+    {
+        return communityService.volunteerMerchantGetList(pageNum, pageSize,merchantState,merchantType,name,getCommunityId()+"");
+    }
+
+    /**
+     * 分页查询商家分类
+     * @param
+     * @return
+     */
+    @GetMapping("/VolunteerMerchant/getList")
+    public R merchantvolunteerTypeGetList(@RequestParam("pageNum")  int pageNum,
+                                          @RequestParam("pageSize")  int pageSize)
+    {
+        return communityService.volunteerTypeGetList(pageNum,pageSize,"2");
+    }
+
+    /**
+     * 修改商家
+     * @param vtvo
+     * @return
+     */
+    @PostMapping("/VolunteerMerchant/update")
+    public R updateVolunteerMerchant(@RequestBody VolunteerMerchantVO vtvo)
+    {
+        return communityService.updateVolunteerMerchant(vtvo);
+    }
+
+    /**
+     * 获取商家详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/VolunteerMerchant/getById")
+    public R volunteerMerchantGetById(@RequestParam("id") String id)
+    {
+        return communityService.volunteerMerchantGetById(id);
+    }
+
+
+    /**
+     * 是否是商家
+     * @return
+     */
+    @GetMapping("/VolunteerMerchant/isMerchant")
+    public R isMerchant(@RequestParam("userId") String userId)
+    {
+        return communityService.isMerchant(userId);
+    }
+
+
+    /**
+     * 社区取消订单
+     * @param id
+     * @return
+     */
+    @GetMapping("/order/communityCancellation")
+    public R communityCancellation(@RequestParam("id") String id)
+    {
+        return communityService.communityCancellation(id);
+    }
+
+    /**
+     * 用户设置积分支付密码
+     * @param userId
+     * @param pwd
+     * @return
+     */
+    @GetMapping("/setUserPlayPwd")
+    public R setUserPlayPwd(@RequestParam("userId") String userId,@RequestParam("pwd") String pwd)
+    {
+        if (StringUtils.isEmpty(userId))
+        {
+            return R.fail("userId不能为空");
+        }
+
+        if(StringUtils.isEmpty(pwd))
+        {
+            return R.fail("密码不能为空");
+        }
+
+        LoginUserInfoVO loginUserInfoVO=new LoginUserInfoVO();
+        loginUserInfoVO.setUserId(Long.valueOf(userId));
+        loginUserInfoVO.setPlayPwd(pwd);
+        return userService.putUser(loginUserInfoVO);
+    }
+
+
+    /**
+     * 判断密码是否正确
+     * @param userId
+     * @param pwd
+     * @return
+     */
+    @GetMapping("/passwordIsCorrect")
+    public R passwordIsCorrect(@RequestParam("userId") String userId,@RequestParam("pwd") String pwd)
+    {
+        if (StringUtils.isEmpty(userId))
+        {
+            return R.fail("userId不能为空");
+        }
+
+        if(StringUtils.isEmpty(pwd))
+        {
+            return R.fail("密码不能为空");
+        }
+        LoginUserInfoVO loginUserInfoVO=userService.getUserInfoByUserId(userId).getData();
+        if(StringUtils.isEmpty(loginUserInfoVO.getPlayPwd()))
+        {
+            return R.fail(304,"您还未设置密码!");
+        }
+
+
+        if(StringUtils.equals(pwd,loginUserInfoVO.getPlayPwd()))
+        {
+            return R.ok();
+        }
+        return R.fail("密码错误");
+    }
+
+
+
+
+    /****************************************************************************************************************
+     *
+     *                      商家评论
+     *
+     ***************************************************************************************************************/
+
+    /**
+     * 商家评论分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/evaluate/getList")
+    public R volunteerMerchantGetList(@RequestParam("pageNum") int pageNum,
+                                      @RequestParam("pageSize") int pageSize,
+                                      @RequestParam("communityId") String communityId,
+                                      @RequestParam("merchantId") String merchantId)
+    {
+        if(StringUtils.isEmpty(communityId))
+        {
+            communityId=getCommunityId()+"";
+        }
+        if(StringUtils.isEmpty(merchantId))
+        {
+            return R.fail("商家id不能为空");
+        }
+        return communityService.volunteerMerchantGetList(pageNum,pageSize,communityId,merchantId);
+    }
+
+    /**
+     * 商家评论获取详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/evaluate/getData")
+    public R volunteerMerchantGetData(@RequestParam("id") String id)
+    {
+        return communityService.volunteerMerchantGetData(id);
+    }
+
+    /**
+     * 商家评论新增评价
+     * @return
+     */
+    @PostMapping("/evaluate/insert")
+    public R volunteerMerchantInsert(@RequestBody VolunteerMerchantEvaluateVO item)
+    {
+        if(item==null)
+        {
+            return R.fail("参数不能为空");
+        }
+
+        if(StringUtils.isEmpty(item.getCommunityId()))
+        {
+            item.setCommunityId(getCommunityId()+"");
+        }
+
+        if(StringUtils.isEmpty(item.getMerchantId()))
+        {
+            return R.fail("商家id不能为空");
+        }
+
+        if(StringUtils.isEmpty(item.getOrderId()))
+        {
+            return R.fail("订单id不能为空");
+        }
+
+        if(StringUtils.isEmpty(item.getUserId()))
+        {
+            return R.fail("评论人id不能为空");
+        }
+
+        if(StringUtils.isEmpty(item.getEvaluateGrade()))
+        {
+            return R.fail("评论分数不能为空");
+        }
+
+        return communityService.volunteerMerchantInsert(item);
+    }
+
+    /**
+     * 商家评论更新评价
+     * @return
+     */
+    @PostMapping("/evaluate/update")
+    public R volunteerMerchantUpdate(@RequestBody VolunteerMerchantEvaluateVO item)
+    {
+        return communityService.volunteerMerchantUpdate(item);
+    }
+
+
+    /**
+     * 商家评论删除评价
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/evaluate/delete")
+    public R volunteerMerchantDelete(@RequestParam("id") String id)
+    {
+        return communityService.volunteerMerchantDelete(id);
+    }
+
+
+    /***************************************************************************************************************
+     *
+     *                               路北社区商家提现
+     *
+     ****************************************************************************************************************/
+
+    /**
+     * 新增商家提现
+     * @param item
+     * @return
+     */
+    @PostMapping("/withdraw/insert")
+    public R WithdrawInsert(@RequestBody VolunteerMerchantWithdrawVO item)
+    {
+        return communityService.WithdrawInsert(item);
+    }
+
+    /**
+     * 商家提现列表
+     * @param disposeType
+     * @return
+     */
+    @GetMapping("/withdraw/getList")
+    public R WithdrawGetList(@RequestParam("pageNum") int pageNum,
+                             @RequestParam("pageSize") int pageSize,
+                             @RequestParam(value = "disposeType", required = false) String disposeType,
+                             @RequestParam(value = "merchantName", required = false) String merchantName,
+                             @RequestParam(value = "merchantId", required = false) String  merchantId,
+                             @RequestParam(value = "communityId", required = false) String communityId)
+    {
+        if(StringUtils.isEmpty(communityId))
+        {
+            communityId=getCommunityId()+"";
+        }
+
+        if(StringUtils.isEmpty(merchantId))
+        {
+            return R.fail("商家id不能为空");
+        }
+
+        return communityService.WithdrawGetList(pageNum,pageSize,disposeType, merchantName,merchantId,communityId);
+    }
+
+
+    /***************************************************************************************************************
+     *
+     *                               路北社区系统配置   商家折扣      兑换地点信息
+     *
+     ****************************************************************************************************************/
+
+    /**
+     * 详情
+     * @param
+     * @return
+     */
+    @GetMapping("/Community/Config/getData")
+    public R ConfiggetData(@RequestParam("communityId") String communityId)
+    {
+        return communityService.ConfiggetData(communityId);
+    }
+
+
+    /*******************************************************************************************************************
+     *
+     *
+     *                         社区折扣
+     *
+     *
+     ******************************************************************************************************************/
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/community/discount/getList")
+    public R CommunityDiscountgetList(@RequestParam("communityId") String communityId)
+    {
+        return communityService.CommunityDiscountgetList(communityId);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/JacksonConfig.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/JacksonConfig.java
new file mode 100644
index 0000000..e37e497
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/JacksonConfig.java
@@ -0,0 +1,31 @@
+package com.panzhihua.applets.config;
+
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.module.SimpleModule;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
+
+@Configuration
+public class JacksonConfig {
+
+    @Bean
+    @Primary
+    @ConditionalOnMissingBean(ObjectMapper.class)
+    public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder)
+    {
+        ObjectMapper objectMapper = builder.createXmlMapper(false).build();
+
+        // 全局配置序列化返回 JSON 处理
+        SimpleModule simpleModule = new SimpleModule();
+        //JSON Long ==> String
+        simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
+        objectMapper.registerModule(simpleModule);
+        return objectMapper;
+    }
+
+}
\ No newline at end of file
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..67e65cc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/MinioUtil.java
@@ -0,0 +1,255 @@
+package com.panzhihua.applets.config;
+
+import com.panzhihua.common.utlis.DateUtils;
+import io.minio.MinioClient;
+import io.minio.ObjectStat;
+import org.apache.commons.io.IOUtils;
+import org.bouncycastle.util.encoders.Base64;
+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.*;
+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(DateUtils.getCurrentDateyymd()).append("-original").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 input
+     *            要上传的文件
+     * @return
+     */
+    public String uploadInputStream(InputStream input, String name) {
+        if (null != input) {
+            try {
+                UUID uuid = UUID.randomUUID();
+                StringBuilder s = new StringBuilder();
+                s.append(DateUtils.getCurrentDateyymd()).append("/");
+                MinioClient minioClient = new MinioClient(minioProperties.getHost(), minioProperties.getAccessKey(),
+                        minioProperties.getSecretKey());
+                if (!minioClient.bucketExists(minioProperties.getBucket())) {
+                    minioClient.makeBucket(minioProperties.getBucket());
+                }
+                String fileName = s.append(name).toString();
+                minioClient.putObject(minioProperties.getBucket(), fileName, input, "application/octet-stream");
+                StringBuilder fileUrl = new StringBuilder(minioProperties.getUrl());
+                String url = fileUrl.append(fileName).toString();
+                return url;
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+        return null;
+    }
+    /**
+     * 文件上传
+     *
+     * @param file 要上传的文件
+     * @return
+     */
+    public String uploadRetFileName(MultipartFile file, String name) {
+        if (null != file) {
+            try {
+                UUID uuid = UUID.randomUUID();
+                StringBuilder s = new StringBuilder();
+                s.append(DateUtils.getCurrentDateyymd()).append("-original").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, "application/octet-stream");
+                StringBuilder fileUrl = new StringBuilder(minioProperties.getUrl());
+                String url = fileUrl.append(fileName).toString();
+                return fileName;
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+        return null;
+    }
+
+    /**
+     * 文件上传
+     *
+     * @param file 要上传的文件
+     * @return
+     */
+    public String uploadFile(File file, String name) {
+        if (null != file) {
+            try {
+                StringBuilder s = new StringBuilder();
+                s.append(DateUtils.getCurrentDateyymd()).append("/");
+                MinioClient minioClient = new MinioClient(minioProperties.getHost(), minioProperties.getAccessKey(),
+                        minioProperties.getSecretKey());
+                // bucket 不存在,创建
+                if (!minioClient.bucketExists(minioProperties.getBucket())) {
+                    minioClient.makeBucket(minioProperties.getBucket());
+                }
+                // 得到文件流
+                InputStream input = new FileInputStream(file);
+                // 文件名
+                // String fileName = uuid + "/images." + FilenameUtils.getExtension(file.getOriginalFilename());
+                String fileName = s.append(name).toString();
+                minioClient.putObject(minioProperties.getBucket(), fileName, input, "");
+                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;
+    }
+
+
+    /**
+     * 删除
+     *
+     * @param fileName
+     * @return
+     * @throws Exception
+     */
+    public String removeMinio(String fileName) {
+        try {
+            //创建MinioClient对象
+            //fileName = "6edbdf8c2a1146ddaf4fbfcb30f804ad/72b2a44c18a54802854931a65b604576.jpg"
+            MinioClient minioClient = new MinioClient(minioProperties.getHost(), minioProperties.getAccessKey(),
+                    minioProperties.getSecretKey());
+            minioClient.removeObject(minioProperties.getBucket(), fileName);
+            return "success";
+        } catch (Exception e) {
+            e.printStackTrace();
+            return e.getMessage();
+        }
+
+    }
+
+    public InputStream base64StrToInputStream(String base64string) {
+        ByteArrayInputStream stream = null;
+        try {
+            byte[] bytes = Base64.decode(base64string);
+            stream = new ByteArrayInputStream(bytes);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return stream;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/SwaggerConfig.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/SwaggerConfig.java
new file mode 100644
index 0000000..c19f4ab
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/SwaggerConfig.java
@@ -0,0 +1,34 @@
+package com.panzhihua.applets.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import io.swagger.annotations.ApiOperation;
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.service.Contact;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: swagger3
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-19 16:08
+ **/
+@Configuration
+public class SwaggerConfig {
+    @Bean
+    public Docket createRestApi() {
+        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).enable(true).select()
+//            .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
+            .apis(RequestHandlerSelectors.basePackage("com.panzhihua.applets")).build();
+    }
+
+    private ApiInfo apiInfo() {
+        return new ApiInfoBuilder().title("攀枝花小程序开发文档").description("。").contact(new Contact("huanghongfa", "", ""))
+            .version("1.0").build();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/UnionDoorUtil.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/UnionDoorUtil.java
new file mode 100644
index 0000000..b7b9ea1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/UnionDoorUtil.java
@@ -0,0 +1,25 @@
+package com.panzhihua.applets.config;
+
+
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.model.vos.R;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import static com.panzhihua.common.utlis.HttpClientUtil.httpGet;
+
+@Slf4j
+@Service
+public class UnionDoorUtil {
+
+
+    /**
+     * 户外劳工站
+     *
+     * @return token
+     * @throws Exception
+     */
+    public R openDoorByPhone(String qRCode,String phone) throws Exception {
+        String url = "https://userinner.pzhszgh.cn/unionOutdoor/unionUser/openDoorByPhone?qRCode="+qRCode+"&phone="+phone;
+        return JSONObject.parseObject(httpGet(url, null), R.class);
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/WxH5Properties.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/WxH5Properties.java
new file mode 100644
index 0000000..cf91adf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/WxH5Properties.java
@@ -0,0 +1,58 @@
+package com.panzhihua.applets.config;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 微信配置
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-23 14:52
+ **/
+@Data
+@Component
+@ConfigurationProperties(prefix = "wx.h5")
+public class WxH5Properties {
+
+    /**
+     * 设置微信小程序的appid
+     */
+    private String appid;
+
+    /**
+     * 设置微信小程序的Secret
+     */
+    private String secret;
+
+    /**
+     * 设置微信小程序消息服务器配置的token
+     */
+    private String token;
+
+    /**
+     * 设置微信小程序消息服务器配置的EncodingAESKey
+     */
+    private String aesKey;
+
+    /**
+     * 消息格式,XML或者JSON
+     */
+    private String msgDataFormat;
+
+    /**
+     * 商户号
+     */
+    private String mchId;
+
+    /**
+     * 微信支付密钥
+     */
+    private String payKey;
+
+    /**
+     * 微信支付回调地址
+     */
+    private String notifyUrl;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/WxMaConfiguration.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/WxMaConfiguration.java
new file mode 100644
index 0000000..8fb4ec9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/WxMaConfiguration.java
@@ -0,0 +1,90 @@
+package com.panzhihua.applets.config;
+
+import javax.annotation.Resource;
+
+import cn.binarywang.wx.miniapp.config.WxMaConfig;
+import cn.binarywang.wx.miniapp.config.impl.WxMaRedisBetterConfigImpl;
+import cn.binarywang.wx.miniapp.config.impl.WxMaRedisConfigImpl;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.user.SysAppConfigVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.StringUtils;
+import me.chanjar.weixin.common.redis.RedisTemplateWxRedisOps;
+import me.chanjar.weixin.common.redis.WxRedisOps;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.stereotype.Component;
+
+import cn.binarywang.wx.miniapp.api.WxMaService;
+import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl;
+import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: wexin
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-23 15:07
+ **/
+@Slf4j
+@Component
+public class WxMaConfiguration {
+
+    @Resource
+    private WxMaProperties properties;
+
+    @Resource
+    private WxH5Properties wxH5Properties;
+
+    @Resource
+    private WxMaRHProperties wxMaRHProperties;
+
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+
+    @Resource
+    private UserService userService;
+
+    public WxMaService getMaService(String appid) {
+        WxRedisOps redisOps = new RedisTemplateWxRedisOps(stringRedisTemplate);
+        WxMaRedisBetterConfigImpl config = new WxMaRedisBetterConfigImpl(redisOps, "access_token");
+        if(StringUtils.isNotEmpty(appid)){
+            R<SysAppConfigVO> r=userService.selectByAppid(appid);
+            if(R.isOk(r)){
+                SysAppConfigVO sysAppConfigVO= r.getData();
+                config.setAppid(sysAppConfigVO.getAppId());
+                config.setSecret(sysAppConfigVO.getSecret());
+                config.setMsgDataFormat(properties.getMsgDataFormat());
+            }
+        }
+        else{
+            config.setAppid(properties.getAppid());
+            config.setSecret(properties.getSecret());
+            config.setMsgDataFormat(properties.getMsgDataFormat());
+        }
+        WxMaService wxMaService = new WxMaServiceImpl();
+        wxMaService.setWxMaConfig(config);
+        return wxMaService;
+    }
+
+    public WxMaService getMaH5Service() {
+        WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl();
+        config.setAppid(wxH5Properties.getAppid());
+        config.setSecret(wxH5Properties.getSecret());
+        config.setMsgDataFormat(wxH5Properties.getMsgDataFormat());
+        WxMaService wxMaService = new WxMaServiceImpl();
+        wxMaService.setWxMaConfig(config);
+        return wxMaService;
+    }
+
+    public WxMaService getMaRhService() {
+        WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl();
+        config.setAppid(wxMaRHProperties.getAppid());
+        config.setSecret(wxMaRHProperties.getSecret());
+        config.setMsgDataFormat(wxMaRHProperties.getMsgDataFormat());
+        WxMaService wxMaService = new WxMaServiceImpl();
+        wxMaService.setWxMaConfig(config);
+        return wxMaService;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/WxMaProperties.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/WxMaProperties.java
new file mode 100644
index 0000000..d7cdfe3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/WxMaProperties.java
@@ -0,0 +1,58 @@
+package com.panzhihua.applets.config;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 微信配置
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-23 14:52
+ **/
+@Data
+@Component
+@ConfigurationProperties(prefix = "wx.miniapp")
+public class WxMaProperties {
+
+    /**
+     * 设置微信小程序的appid
+     */
+    private String appid;
+
+    /**
+     * 设置微信小程序的Secret
+     */
+    private String secret;
+
+    /**
+     * 设置微信小程序消息服务器配置的token
+     */
+    private String token;
+
+    /**
+     * 设置微信小程序消息服务器配置的EncodingAESKey
+     */
+    private String aesKey;
+
+    /**
+     * 消息格式,XML或者JSON
+     */
+    private String msgDataFormat;
+
+    /**
+     * 商户号
+     */
+    private String mchId;
+
+    /**
+     * 微信支付密钥
+     */
+    private String payKey;
+
+    /**
+     * 微信支付回调地址
+     */
+    private String notifyUrl;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/WxMaRHProperties.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/WxMaRHProperties.java
new file mode 100644
index 0000000..1a26b43
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/config/WxMaRHProperties.java
@@ -0,0 +1,57 @@
+package com.panzhihua.applets.config;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 微信配置
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-23 14:52
+ **/
+@Data
+@Component
+@ConfigurationProperties(prefix = "wx.rh")
+public class WxMaRHProperties {
+
+    /**
+     * 设置微信小程序的appid
+     */
+    private String appid;
+
+    /**
+     * 设置微信小程序的Secret
+     */
+    private String secret;
+
+    /**
+     * 设置微信小程序消息服务器配置的token
+     */
+    private String token;
+
+    /**
+     * 设置微信小程序消息服务器配置的EncodingAESKey
+     */
+    private String aesKey;
+
+    /**
+     * 消息格式,XML或者JSON
+     */
+    private String msgDataFormat;
+
+    /**
+     * 商户号
+     */
+    private String mchId;
+
+    /**
+     * 微信支付密钥
+     */
+    private String payKey;
+
+    /**
+     * 微信支付回调地址
+     */
+    private String notifyUrl;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/model/dtos/ComPbMemberCertificationDTO.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/model/dtos/ComPbMemberCertificationDTO.java
new file mode 100644
index 0000000..ff7ca62
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/model/dtos/ComPbMemberCertificationDTO.java
@@ -0,0 +1,40 @@
+package com.panzhihua.applets.model.dtos;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 党员认证
+ */
+@Data
+@ApiModel("我的》党员认证")
+public class ComPbMemberCertificationDTO {
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @ApiModelProperty(value = "入党时间")
+    private Date joinTime;
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @ApiModelProperty(value = "转正时间")
+    private Date employmentTime;
+    @ApiModelProperty(value = "所属党组织id")
+    private Long orgId;
+    @ApiModelProperty(value = "头像图片路径")
+    private String photoPath;
+
+    @ApiModelProperty(value = "党员类型(1.预备党员 2.正式党员)")
+    private Integer type;
+    @ApiModelProperty(value = "报道单位id")
+    private Long checkUnitId;
+    @ApiModelProperty(value = "职位")
+    private String position;
+    @ApiModelProperty(value = "职能")
+    private String function;
+    @ApiModelProperty(value = "特长类别(1.体育类 2.舞蹈类 3.音乐类 4.美术类 5.其他)")
+    private Integer specialtyCategory;
+    @ApiModelProperty(value = "特长描述")
+    private String specialtyName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/model/dtos/IDTO.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/model/dtos/IDTO.java
new file mode 100644
index 0000000..108a52b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/model/dtos/IDTO.java
@@ -0,0 +1,8 @@
+package com.panzhihua.applets.model.dtos;
+
+import lombok.Data;
+
+@Data
+public class IDTO {
+    private Long id;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/model/vos/LoginRequest.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/model/vos/LoginRequest.java
new file mode 100644
index 0000000..56067bd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/model/vos/LoginRequest.java
@@ -0,0 +1,38 @@
+package com.panzhihua.applets.model.vos;
+
+import cn.binarywang.wx.miniapp.bean.WxMaUserInfo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 微信登录
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-23 14:12
+ **/
+@Data
+@ApiModel(value = "小程序登录")
+public class LoginRequest {
+
+    @ApiModelProperty(name = "code", value = "登录时获取的 code")
+    String code;
+
+    @ApiModelProperty(name = "signature", value = "使用 sha1( rawData + sessionkey ) 得到字符串,用于校验用户信息")
+    String signature;
+
+    @ApiModelProperty(name = "rawData", value = "不包括敏感信息的原始数据字符串,用于计算签名")
+    String rawData;
+
+    @ApiModelProperty(name = "encryptedData", value = "包括敏感数据在内的完整用户信息的加密数据")
+    String encryptedData;
+
+    @ApiModelProperty(name = "iv", value = "加密算法的初始向量")
+    String iv;
+
+    @ApiModelProperty(name = "userInfo", value = "用户基本信息")
+    WxMaUserInfo userInfo;
+
+    @ApiModelProperty("appid")
+    String appid;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/umf/MyAESUtil.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/umf/MyAESUtil.java
new file mode 100644
index 0000000..271c229
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/umf/MyAESUtil.java
@@ -0,0 +1,61 @@
+package com.panzhihua.applets.umf;
+
+import sun.misc.BASE64Decoder;
+import sun.misc.BASE64Encoder;
+
+import javax.crypto.Cipher;
+import javax.crypto.spec.SecretKeySpec;
+
+public class MyAESUtil {
+
+    // 加密
+    public static String Encrypt(String sSrc, String sKey) throws Exception {
+        if (sKey == null) {
+            System.out.print("Key为空null");
+            return null;
+        }
+        // 判断Key是否为16位
+        if (sKey.length() != 16) {
+            System.out.print("Key长度不是16位");
+            return null;
+        }
+        byte[] raw = sKey.getBytes("utf-8");
+        SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
+        Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");//"算法/模式/补码方式"
+        cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
+        byte[] encrypted = cipher.doFinal(sSrc.getBytes("utf-8"));
+        return new BASE64Encoder().encode(encrypted);//此处使用BASE64做转码功能,同时能起到2次加密的作用。
+    }
+
+    // 解密
+    public static String Decrypt(String sSrc, String sKey) throws Exception {
+        try {
+
+            byte[] raw = sKey.getBytes("utf-8");
+            SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
+            Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
+            cipher.init(Cipher.DECRYPT_MODE, skeySpec);
+            byte[] encrypted1 = new BASE64Decoder().decodeBuffer(sSrc);//先用base64解密
+            try {
+                byte[] original = cipher.doFinal(encrypted1);
+                String originalString = new String(original,"utf-8");
+                return originalString;
+            } catch (Exception e) {
+                System.out.println(e.toString());
+                return null;
+            }
+        } catch (Exception ex) {
+            System.out.println(ex.toString());
+            return null;
+        }
+    }
+
+    public static void main(String[] args) throws Exception{
+        String ryo7M3n8loC5Abcd = MyAESUtil.Encrypt("{\"order_status\":\"6\",\"wash_name\":null,\"wash_mobile\":null,\"phone\":\"13699017236\"}", "Ryo7M3n8loC5Abcd");
+//        String ryo7M3n8loC5Abcd = MyAESUtil.Decrypt("Ixp8WMuJ9bnKhiBKmKWq\\/rQXQ7SaWc3fHLB1e\\/PzAvIEN0CH1nXtMCBzMegT49on31S+3Itop388Yc0EGVx30GGVlG81p7ssiqHlLRna2i903Rid9hqbjZdrBomiy2jp", "Ryo7M3n8loC5Abcd");
+//        String ryo7M3n8loC5Abcd = MyAESUtil.Decrypt("0H4upa36EW9AFSNcoF9rVX6D5enB9T/9P1hWxLf/NgiGCueg159vz7Ex6+tPAR83aQLPyGeuF74Y5C9VpzQjL7brj8aWdMmnWJp/W1i5lpM=", "Ryo7M3n8loC5Abcd");
+//        订单完成13980596944 {"aesString":"0H4upa36EW9AFSNcoF9rVX6D5enB9T\/9P1hWxLf\/NgiGCueg159vz7Ex6+tPAR83aQLPyGeuF74Y5C9VpzQjL2IYlgC9A6hhT82p\/kQTjTk="}
+//        取消订单13980596944 {"aesString":"0H4upa36EW9AFSNcoF9rVfYjNQ0z81u6AWDcCU9O9DqGCueg159vz7Ex6+tPAR83aQLPyGeuF74Y5C9VpzQjL2IYlgC9A6hhT82p\/kQTjTk="}
+        System.out.println(ryo7M3n8loC5Abcd);
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/umf/UmfPayUtil.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/umf/UmfPayUtil.java
new file mode 100644
index 0000000..b5a0092
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/umf/UmfPayUtil.java
@@ -0,0 +1,98 @@
+package com.panzhihua.applets.umf;
+
+import com.umf.api.service.UmfService;
+import com.umf.api.service.UmfServiceImpl;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import static com.umf.api.service.UmfServiceImpl.printResult;
+
+/**
+ * @author zzj
+ */
+@Component
+public class UmfPayUtil {
+    @Value("${umf.file}")
+    private String file;
+    @Value("${umf.notify_url}")
+    private String notifyUrl;
+    public Map pay(String orderid,String merdate,String openid,String amount){
+        Map reqMapPublic = preparePublic(orderid,merdate,openid,amount,notifyUrl);
+        UmfService instance = new UmfServiceImpl("53461",file);
+        Map respMap = instance.miniProgramPayMap(reqMapPublic);
+        return respMap;
+    }
+    public Map pay2(String orderid,String merdate,String openid,String amount){
+        Map reqMapPublic = preparePublic2(orderid,merdate,openid,amount,notifyUrl);
+        UmfService instance = new UmfServiceImpl("53461",file);
+        Map respMap = instance.miniProgramPayMap(reqMapPublic);
+        return respMap;
+    }
+    public Map repay(String orderid,String merdate,String refundNo,String refundAmount,String orgAmount){
+        Map reqMapPublic=prepareRepay(orderid,merdate,refundNo,refundAmount,orgAmount);
+        UmfService instance = new UmfServiceImpl("53461",file);
+        Map respMap=instance.generalRefundMap(reqMapPublic);
+        return respMap;
+    }
+
+    public boolean settle(String settleDate){
+        Map reqMapPublic=prepareDownloadSettle(settleDate);
+        UmfService instance = new UmfServiceImpl("53461",file);
+        boolean bo=instance.reconciliationDownloadMap(reqMapPublic);
+        return bo;
+    }
+
+
+
+
+    //小程序支付请求参数
+    public static Map preparePublic(String orderid,String merdate,String openid,String amount,String notifyUrl) {
+        Map reqMap = new HashMap();
+        reqMap.put("mer_id","53461");
+        reqMap.put("notify_url",notifyUrl);
+        reqMap.put("goods_inf","uu洗车服务");
+        reqMap.put("order_id",orderid);
+        reqMap.put("mer_date",merdate);
+        reqMap.put("amount",amount);
+        reqMap.put("app_id","wx118de8a734d269f0");
+        reqMap.put("open_id",openid);
+        reqMap.put("scancode_type","WECHAT");
+        return reqMap;
+    }
+    //小程序支付请求参数
+    public static Map preparePublic2(String orderid,String merdate,String openid,String amount,String notifyUrl) {
+        Map reqMap = new HashMap();
+        reqMap.put("mer_id","53461");
+        reqMap.put("notify_url",notifyUrl);
+        reqMap.put("goods_inf","无水洗车服务");
+        reqMap.put("order_id",orderid);
+        reqMap.put("mer_date",merdate);
+        reqMap.put("amount",amount);
+        reqMap.put("app_id","wx98d62711dfbd8425");
+        reqMap.put("open_id",openid);
+        reqMap.put("scancode_type","WECHAT");
+        return reqMap;
+    }
+    //小程序支付请求参数
+    public static Map prepareRepay(String orderid,String merdate,String refundNo,String refundAmount,String orgAmount) {
+        Map reqMap = new HashMap();
+        reqMap.put("mer_id","53461");
+        reqMap.put("order_id",orderid);
+        reqMap.put("mer_date",merdate);
+        reqMap.put("refund_no",refundNo);
+        reqMap.put("refund_amount",refundAmount);
+        reqMap.put("org_amount",orgAmount);
+        return reqMap;
+    }
+
+    public static Map prepareDownloadSettle(String settleDate){
+        Map reqMap = new HashMap();
+        reqMap.put("mer_id","53461");
+        reqMap.put("settle_date",settleDate);//对账日期
+        reqMap.put("settle_path","D:/");//Windows下为---D:/tecent,Linux下为---/opt/tecent
+        return reqMap;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/unionpay/Close.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/unionpay/Close.java
new file mode 100644
index 0000000..eaf56ab
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/unionpay/Close.java
@@ -0,0 +1,147 @@
+package com.panzhihua.applets.unionpay;
+
+import org.apache.commons.codec.binary.Base64;
+import org.apache.commons.codec.digest.DigestUtils;
+
+import javax.crypto.Mac;
+import javax.crypto.spec.SecretKeySpec;
+import java.io.*;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.net.URLConnection;
+
+/**
+ * @author kkqiao
+ * 全民付移动支付小程序支付订单关闭接口
+ * 说明:
+ * 用户创建订单之后,对未支付的订单进行关闭操作
+ *  测试环境:http://58.247.0.18:29015/v1/netpay/close
+ *  生产环境:https://api-mop.chinaums.com/v1/netpay/close
+ */
+public class Close {
+
+//    static String url = "https://test-api-open.chinaums.com/v1/netpay/query";
+    static String url = "https://api-mop.chinaums.com/v1/netpay/close";
+
+    public static void main(String[] args) throws Exception{
+        //1. 组建请求报文
+        CloseBody reqBody = new CloseBody();
+        reqBody.requestTimestamp = "2019-08-09 17:12:55";
+        reqBody.mid = "898460107420248";
+        reqBody.tid = "00000001";
+        reqBody.instMid = "MINIDEFAULT";
+        reqBody.merOrderId = "101771307dc89764b477474";
+        System.out.println("request body:\n"+reqBody);
+
+        //2. 获取认证报文,timestamp为当前日期,老旧日期无法请求成功
+        String authorization = getAuthorization(UnionpayContent.APPID,UnionpayContent.APPKEY,
+                "20190809171200","nonce",reqBody.toString());
+        System.out.println("authorization:\n"+authorization);
+
+        //3. 发送http请求,并解析返回信息
+        String response = request(url,authorization,reqBody.toString());
+        System.out.println("response:\n"+response);
+    }
+
+    /**
+     * 发送http请求
+     * @param url 请求url
+     * @param authorization 认证报文
+     * @param reqBody  请求体
+     * @return response
+     */
+    static String request(String url, String authorization, String reqBody){
+        String response = "";
+        PrintWriter out = null;
+        BufferedReader in = null;
+        try{
+            URL realUrl = new URL(url);
+            URLConnection conn = realUrl.openConnection();
+            HttpURLConnection httpUrlConnection = (HttpURLConnection) conn;
+            httpUrlConnection.setRequestProperty("Content-Type", "application/json");
+            httpUrlConnection.setRequestProperty("authorization",authorization);
+            httpUrlConnection.setDoOutput(true);
+            httpUrlConnection.setDoInput(true);
+            out = new PrintWriter(httpUrlConnection.getOutputStream());
+            out.write(reqBody);
+            out.flush();
+            httpUrlConnection.connect();
+            in = new BufferedReader(new InputStreamReader(httpUrlConnection.getInputStream()));
+            String line;
+            while ((line = in.readLine()) != null) {
+                response += line;
+            }
+        }catch(Exception e){
+            e.printStackTrace();
+        } finally {
+            try {
+                if (out != null) { out.close();}
+                if (in != null) {in.close();}
+            } catch (Exception ex) {
+                ex.printStackTrace();
+            }
+        }
+        return response;
+    }
+
+    /**
+     * 获取签名头
+     * @param appid
+     * @param appkey
+     * @param timestamp 格式:"yyyyMMddHHmmss"
+     * @param nonce 随机字符串,
+     * @param body 请求体
+     * @return authorization 认证报文
+     * @throws Exception
+     */
+    static String getAuthorization(String appid, String appkey, String timestamp, String nonce, String body) throws Exception {
+        byte[] data = body.getBytes("utf-8");
+        InputStream is = new ByteArrayInputStream(data);
+        String testSH = DigestUtils.sha256Hex(is);
+        String s1 = appid+timestamp+nonce+testSH;
+        Mac mac = Mac.getInstance("HmacSHA256");
+        mac.init(new SecretKeySpec(appkey.getBytes("utf-8"),"HmacSHA256"));
+        byte[] localSignature = mac.doFinal(s1.getBytes("utf-8"));
+        String localSignatureStr = Base64.encodeBase64String(localSignature);
+        return  "OPEN-BODY-SIG AppId="+"\""+appid+"\""+", Timestamp="+"\""+timestamp+"\""+", Nonce="+"\""+nonce+"\""+", Signature="+"\""+localSignatureStr+"\"";
+    }
+
+    static class CloseBody{
+        //消息ID
+        String msgId;
+        //报文请求时间,格式yyyy-MM-ddHH:mm:ss
+        String requestTimestamp;
+        //请求系统预留字段
+        String srcReserve;
+        //商户号
+        String mid;
+        //终端号
+        String tid;
+        //业务类型
+        String instMid;
+        //商户订单号
+        String merOrderId;
+
+        String toJson(){
+            StringBuilder sb = new StringBuilder();
+            sb.append("{");
+            if (this.msgId != null) sb.append("\"msgId\":\"" + this.msgId + "\",");
+            if (this.requestTimestamp != null) sb.append("\"requestTimestamp\":\"" + this.requestTimestamp + "\",");
+            if (this.srcReserve != null) sb.append("\"srcReserve\":\"" + this.srcReserve + "\",");
+            if (this.mid != null) sb.append("\"mid\":\"" + this.mid + "\",");
+            if (this.tid != null) sb.append("\"tid\":\"" + this.tid + "\",");
+            if (this.instMid != null) sb.append("\"instMid\":\"" + this.instMid + "\",");
+            if (this.merOrderId != null) sb.append("\"merOrderId\":\"" + this.merOrderId + "\",");
+            if (sb.charAt(sb.length() - 1) == ',')
+                sb.deleteCharAt(sb.length() - 1);
+            sb.append("}");
+            return sb.toString();
+        }
+
+        public String toString(){
+            return this.toJson();
+        }
+
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/unionpay/Query.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/unionpay/Query.java
new file mode 100644
index 0000000..6c50da1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/unionpay/Query.java
@@ -0,0 +1,162 @@
+package com.panzhihua.applets.unionpay;
+
+import com.panzhihua.common.utlis.DateUtils;
+import org.apache.commons.codec.binary.Base64;
+import org.apache.commons.codec.digest.DigestUtils;
+
+import javax.crypto.Mac;
+import javax.crypto.spec.SecretKeySpec;
+import java.io.*;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.net.URLConnection;
+import java.time.LocalDateTime;
+
+/**
+ * @author kkqiao0
+ * 全民付移动支付小程序支付订单交易查询接口
+ * 说明:
+ * 钱包支付时,因通讯故障、服务器故障等原因,造成收银机最终没有收到支付结果通知,收银员不确定
+ * 该笔支付后台处理结果,可以在收银机上发起“查询”交易,查询该笔交易订单在钱包后台的支付结果,
+ * 并将支付结果返回给收银机。
+ *  测试环境:http://58.247.0.18:29015/v1/netpay/query
+ *  生产环境:https://api-mop.chinaums.com/v1/netpay/query
+ */
+public class Query {
+    static String url = "https://api-mop.chinaums.com/v1/netpay/query";
+
+    /**
+     * 查询接口
+     * @return
+     */
+    public static String query(String merOrderId)
+    {
+        //1. 组建请求报文
+        LocalDateTime time= DateUtils.getCurrentDate();
+        QueryBody reqBody = new QueryBody();
+        reqBody.requestTimestamp = time.format(DateUtils.format_ymdhms);//"2019-08-09 17:32:55";
+        reqBody.mid = UnionpayContent.MID;
+        reqBody.tid = UnionpayContent.TID;
+        reqBody.instMid = UnionpayContent.INSTMID;
+        reqBody.merOrderId = merOrderId;
+        System.out.println("request body:\n"+reqBody);
+
+        //2. 获取认证报文,timestamp为当前日期,老旧日期无法请求成功
+        String authorization = null;
+        try {
+            authorization = getAuthorization(UnionpayContent.APPID,UnionpayContent.APPKEY,
+                    time.format(DateUtils.format_ymdhms_string),"nonce",reqBody.toString());
+        } catch (Exception e) {
+            e.printStackTrace();
+            return "订单交易查询失败";
+        }
+        System.out.println("authorization:\n"+authorization);
+
+        //3. 发送http请求,并解析返回信息
+        String response = request(url,authorization,reqBody.toString());
+        System.out.println("response:\n"+response);
+        return response;
+    }
+
+    /**
+     * 发送http请求
+     * @param url 请求url
+     * @param authorization 认证报文
+     * @param reqBody  请求体
+     * @return response
+     */
+    static String request(String url, String authorization, String reqBody){
+        String response = "";
+        PrintWriter out = null;
+        BufferedReader in = null;
+        try{
+            URL realUrl = new URL(url);
+            URLConnection conn = realUrl.openConnection();
+            HttpURLConnection httpUrlConnection = (HttpURLConnection) conn;
+            httpUrlConnection.setRequestProperty("Content-Type", "application/json");
+            httpUrlConnection.setRequestProperty("authorization",authorization);
+            httpUrlConnection.setDoOutput(true);
+            httpUrlConnection.setDoInput(true);
+            out = new PrintWriter(httpUrlConnection.getOutputStream());
+            out.write(reqBody);
+            out.flush();
+            httpUrlConnection.connect();
+            in = new BufferedReader(new InputStreamReader(httpUrlConnection.getInputStream()));
+            String line;
+            while ((line = in.readLine()) != null) {
+                response += line;
+            }
+        }catch(Exception e){
+            e.printStackTrace();
+        } finally {
+            try {
+                if (out != null) { out.close();}
+                if (in != null) {in.close();}
+            } catch (Exception ex) {
+                ex.printStackTrace();
+            }
+        }
+        return response;
+    }
+
+    /**
+     * 获取签名头
+     * @param appid
+     * @param appkey
+     * @param timestamp 格式:"yyyyMMddHHmmss"
+     * @param nonce 随机字符串,
+     * @param body 请求体
+     * @return authorization 认证报文
+     * @throws Exception
+     */
+    static String getAuthorization(String appid, String appkey, String timestamp, String nonce, String body) throws Exception {
+        byte[] data = body.getBytes("utf-8");
+        InputStream is = new ByteArrayInputStream(data);
+        String testSH = DigestUtils.sha256Hex(is);
+        String s1 = appid+timestamp+nonce+testSH;
+        Mac mac = Mac.getInstance("HmacSHA256");
+        mac.init(new SecretKeySpec(appkey.getBytes("utf-8"),"HmacSHA256"));
+        byte[] localSignature = mac.doFinal(s1.getBytes("utf-8"));
+        String localSignatureStr = Base64.encodeBase64String(localSignature);
+        return  "OPEN-BODY-SIG AppId="+"\""+appid+"\""+", Timestamp="+"\""+timestamp+"\""+", Nonce="+"\""+nonce+"\""+", Signature="+"\""+localSignatureStr+"\"";
+    }
+
+    static class QueryBody{
+        //消息ID
+        String msgId;
+        //报文请求时间,格式yyyy-MM-ddHH:mm:ss
+        String requestTimestamp;
+        //请求系统预留字段
+        String srcReserve;
+        //商户号
+        String mid;
+        //终端号
+        String tid;
+        //业务类型
+        String instMid;
+        //商户订单号
+        String merOrderId;
+
+        String toJson(){
+            StringBuilder sb = new StringBuilder();
+            sb.append("{");
+            if (this.msgId != null) sb.append("\"msgId\":\"" + this.msgId + "\",");
+            if (this.requestTimestamp != null) sb.append("\"requestTimestamp\":\"" + this.requestTimestamp + "\",");
+            if (this.srcReserve != null) sb.append("\"srcReserve\":\"" + this.srcReserve + "\",");
+            if (this.mid != null) sb.append("\"mid\":\"" + this.mid + "\",");
+            if (this.tid != null) sb.append("\"tid\":\"" + this.tid + "\",");
+            if (this.instMid != null) sb.append("\"instMid\":\"" + this.instMid + "\",");
+            if (this.merOrderId != null) sb.append("\"merOrderId\":\"" + this.merOrderId + "\",");
+            if (sb.charAt(sb.length() - 1) == ',')
+                sb.deleteCharAt(sb.length() - 1);
+            sb.append("}");
+            return sb.toString();
+        }
+
+        public String toString(){
+            return this.toJson();
+        }
+
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/unionpay/QueryEntiy.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/unionpay/QueryEntiy.java
new file mode 100644
index 0000000..054455f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/unionpay/QueryEntiy.java
@@ -0,0 +1,80 @@
+package com.panzhihua.applets.unionpay;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class QueryEntiy implements Serializable
+{
+    private String payTime;//\":\"2023-03-20 10:36:03\"," +
+    private String buyerCashPayAmt;//\":1," +
+    private String connectSys;//\":\"UNIONPAY\"," +
+    private String errMsg;//\":\"查询成功\"," +
+    private String merName;//\":\"攀枝花智慧城市产业投资发展有限责任公司\"," +
+    private String mid;//\":\"898510475429005\"," +
+    private String invoiceAmount;//\":1," +
+    private String settleDate;//\":\"2023-03-20\"," +
+    private String billFunds;//\":\"现金:1\"," +
+    private String buyerId;//\":\"otdJ_uJt6Zwt8aM_OSi_diSKl6Mo\"," +
+    private String tid;//\":\"50525310\"," +
+    private String receiptAmount;//\":1," +
+    private String couponAmount;//\":0," +
+    private String targetMid;//\":\"551736231\"," +
+    private String cardAttr;//\":\"BALANCE\"," +
+    private String targetOrderId;//\":\"4200001757202303209762431062\"," +
+    private String billFundsDesc;//\":\"现金支付0.01元。\"," +
+    private String subBuyerId;//\":\"oaRh15RWphPEvJoN6Vi1ancdmhLY\"," +
+    private String targetStatus;//\":\"SUCCESS\"," +
+    private String seqId;//\":\"32912479295N\"," +
+    private String merOrderId;//\":\"33ZV20230320321044506d97ce39\"," +
+    private String refundAmount;//\":0," +
+    private String targetSys;//\":\"WXPay\"," +
+    private String bankInfo;//\":\"OTHERS\"," +
+    private String delegatedFlag;//\":\"N\"," +
+    private String settleRefId;//\":\"32912479295N\"," +
+    private String totalAmount;//\":1," +
+    private String chnlCost;//\":\"758\"," +
+    private String responseTimestamp;//\":\"2023-03-20 11:06:42\"," +
+    private String errCode;//\":\"SUCCESS\"," +
+    private String buyerPayAmount;//\":1," +
+    private String status;//\":\"TRADE_SUCCESS\"}"
+
+    @Override
+    public String toString() {
+        return "QueryEntiy{" +
+                "payTime='" + payTime + '\'' +
+                ", buyerCashPayAmt='" + buyerCashPayAmt + '\'' +
+                ", connectSys='" + connectSys + '\'' +
+                ", errMsg='" + errMsg + '\'' +
+                ", merName='" + merName + '\'' +
+                ", mid='" + mid + '\'' +
+                ", invoiceAmount='" + invoiceAmount + '\'' +
+                ", settleDate='" + settleDate + '\'' +
+                ", billFunds='" + billFunds + '\'' +
+                ", buyerId='" + buyerId + '\'' +
+                ", tid='" + tid + '\'' +
+                ", receiptAmount='" + receiptAmount + '\'' +
+                ", couponAmount='" + couponAmount + '\'' +
+                ", targetMid='" + targetMid + '\'' +
+                ", cardAttr='" + cardAttr + '\'' +
+                ", targetOrderId='" + targetOrderId + '\'' +
+                ", billFundsDesc='" + billFundsDesc + '\'' +
+                ", subBuyerId='" + subBuyerId + '\'' +
+                ", targetStatus='" + targetStatus + '\'' +
+                ", seqId='" + seqId + '\'' +
+                ", merOrderId='" + merOrderId + '\'' +
+                ", refundAmount='" + refundAmount + '\'' +
+                ", targetSys='" + targetSys + '\'' +
+                ", bankInfo='" + bankInfo + '\'' +
+                ", delegatedFlag='" + delegatedFlag + '\'' +
+                ", settleRefId='" + settleRefId + '\'' +
+                ", totalAmount='" + totalAmount + '\'' +
+                ", chnlCost='" + chnlCost + '\'' +
+                ", responseTimestamp='" + responseTimestamp + '\'' +
+                ", errCode='" + errCode + '\'' +
+                ", buyerPayAmount='" + buyerPayAmount + '\'' +
+                ", status='" + status + '\'' +
+                '}';
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/unionpay/Refund.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/unionpay/Refund.java
new file mode 100644
index 0000000..32533cc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/unionpay/Refund.java
@@ -0,0 +1,217 @@
+package com.panzhihua.applets.unionpay;
+
+import com.panzhihua.common.utlis.DateUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.codec.binary.Base64;
+import org.apache.commons.codec.digest.DigestUtils;
+
+import javax.crypto.Mac;
+import javax.crypto.spec.SecretKeySpec;
+import java.io.*;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.net.URLConnection;
+import java.time.LocalDateTime;
+import java.util.List;
+
+import static com.panzhihua.common.utlis.PayUtil.makeUUID;
+
+/**
+ * @author kkqiao
+ * 全民付移动支付小程序支付退款接口
+ * 说明:
+ * 当成功交易之后一段时间内,由于买家或商户的原因需要退款时,商户可以通过本接口将支付款退还给
+ * 买家,退款请求验证成功之后,银商将通知支付渠道方按照退款规则把支付款按原路退回到买家帐号
+ * 上。
+ * 退款订单号refundOrderId也需遵循商户订单号生成规范,即以银商分配的4位来源编号作为账单号的前
+ * 4位,且在商户系统中此账单号保证唯一。总长度需大于6位,小于28位。银商的推荐规则为(无特殊情
+ * 况下,建议遵守此规则):
+ *      {来源编号(4位)}{时间(yyyyMMddmmHHssSSS)(17位)}{7位随机数}
+ *  测试环境:http://58.247.0.18:29015/v1/netpay/refund
+ *  生产环境:https://api-mop.chinaums.com/v1/netpay/refund
+ */
+@Slf4j
+public class Refund {
+
+    static String url = "https://api-mop.chinaums.com/v1/netpay/refund";
+
+    public static String sendOrder(String refundAmount,String refundOrderId)
+    {
+        //1. 组建请求报文
+        LocalDateTime time= DateUtils.getCurrentDate();
+        RefundBody reqBody = new RefundBody();
+        reqBody.requestTimestamp = time.format(DateUtils.format_ymdhms);// "2019-08-09 17:30:55";
+        reqBody.merOrderId =refundOrderId;
+        reqBody.mid =UnionpayContent.MID;
+        reqBody.tid = UnionpayContent.TID;
+        reqBody.instMid = UnionpayContent.INSTMID;
+        reqBody.refundAmount = refundAmount;
+
+        log.error("银联退款参数 :" + reqBody);
+        //2. 获取认证报文,timestamp为当前日期,老旧日期无法请求成功
+        String authorization = null;
+        try {
+            authorization = getAuthorization(UnionpayContent.APPID,UnionpayContent.APPKEY,
+                    time.format(DateUtils.format_ymdhms_string),"nonce",reqBody.toString());
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("退款失败");
+            return "退款失败";
+        }
+        log.error("银联退款参数authorization :" + authorization);
+        //3. 发送http请求,并解析返回信息
+        String response = request(url,authorization,reqBody.toString());
+        log.error("银联退款参数response :" + response);
+        return response;
+    }
+
+    /**
+     * 发送http请求
+     * @param url 请求url
+     * @param authorization 认证报文
+     * @param reqBody  请求体
+     * @return response
+     */
+    static String request(String url, String authorization, String reqBody){
+        String response = "";
+        PrintWriter out = null;
+        BufferedReader in = null;
+        try{
+            URL realUrl = new URL(url);
+            URLConnection conn = realUrl.openConnection();
+            HttpURLConnection httpUrlConnection = (HttpURLConnection) conn;
+            httpUrlConnection.setRequestProperty("Content-Type", "application/json");
+            httpUrlConnection.setRequestProperty("authorization",authorization);
+            httpUrlConnection.setDoOutput(true);
+            httpUrlConnection.setDoInput(true);
+            out = new PrintWriter(httpUrlConnection.getOutputStream());
+            out.write(reqBody);
+            out.flush();
+            httpUrlConnection.connect();
+            in = new BufferedReader(new InputStreamReader(httpUrlConnection.getInputStream()));
+            String line;
+            while ((line = in.readLine()) != null) {
+                response += line;
+            }
+        }catch(Exception e){
+            e.printStackTrace();
+        } finally {
+            try {
+                if (out != null) { out.close();}
+                if (in != null) {in.close();}
+            } catch (Exception ex) {
+                ex.printStackTrace();
+            }
+        }
+        return response;
+    }
+
+    /**
+     * 获取签名头
+     * @param appid
+     * @param appkey
+     * @param timestamp 格式:"yyyyMMddHHmmss"
+     * @param nonce 随机字符串,
+     * @param body 请求体
+     * @return authorization 认证报文
+     * @throws Exception
+     */
+    static String getAuthorization(String appid, String appkey, String timestamp, String nonce, String body) throws Exception {
+        byte[] data = body.getBytes("utf-8");
+        InputStream is = new ByteArrayInputStream(data);
+        String testSH = DigestUtils.sha256Hex(is);
+        String s1 = appid+timestamp+nonce+testSH;
+        Mac mac = Mac.getInstance("HmacSHA256");
+        mac.init(new SecretKeySpec(appkey.getBytes("utf-8"),"HmacSHA256"));
+        byte[] localSignature = mac.doFinal(s1.getBytes("utf-8"));
+        String localSignatureStr = Base64.encodeBase64String(localSignature);
+        return  "OPEN-BODY-SIG AppId="+"\""+appid+"\""+", Timestamp="+"\""+timestamp+"\""+", Nonce="+"\""+nonce+"\""+", Signature="+"\""+localSignatureStr+"\"";
+    }
+
+    static class RefundBody{
+        //消息ID
+        String msgId;
+        //报文请求时间,格式yyyy-MM-ddHH:mm:ss
+        String requestTimestamp;
+        //报文系统预留字段
+        String srcReserve;
+        //商户订单号
+        String merOrderId;
+        //商户号
+        String mid;
+        //终端号
+        String tid;
+        //业务类型
+        String instMid;
+        //要退货的金额
+        String refundAmount;
+        //要退款的订单号
+        String refundOrderId;
+        //平台商户退款分账金额
+        String platformAmount;
+        //子订单信息
+        List<SubOrderItem> subOrders;
+        //退货说明
+        String refundDesc;
+
+        String toJson(){
+            StringBuilder sb = new StringBuilder();
+            sb.append("{");
+            if (this.msgId != null) sb.append("\"msgId\":\"" + this.msgId + "\",");
+            if (this.requestTimestamp != null) sb.append("\"requestTimestamp\":\"" + this.requestTimestamp + "\",");
+            if (this.merOrderId != null) sb.append("\"merOrderId\":\"" + this.merOrderId + "\",");
+            if (this.srcReserve != null) sb.append("\"srcReserve\":\"" + this.srcReserve + "\",");
+            if (this.mid != null) sb.append("\"mid\":\"" + this.mid + "\",");
+            if (this.tid != null) sb.append("\"tid\":\"" + this.tid + "\",");
+            if (this.instMid != null) sb.append("\"instMid\":\"" + this.instMid + "\",");
+            if (this.refundAmount != null) sb.append("\"refundAmount\":\"" + this.refundAmount + "\",");
+            if (this.refundOrderId != null) sb.append("\"refundOrderId\":\"" + this.refundOrderId + "\",");
+            if (this.platformAmount != null) sb.append("\"platformAmount\":\"" + this.platformAmount + "\",");
+            if (this.subOrders != null && this.subOrders.size()>0) {
+                sb.append("\"subOrders\":[");
+                for(int i=0;i<subOrders.size();i++){
+                    sb.append(subOrders.get(i));
+                    sb.append(",");
+                }
+                if (sb.charAt(sb.length() - 1) == ',')
+                    sb.deleteCharAt(sb.length() - 1);
+                sb.append("],");
+            }
+            if (this.refundDesc != null) sb.append("\"refundDesc\":\"" + this.refundDesc + "\",");
+            if (sb.charAt(sb.length() - 1) == ',')
+                sb.deleteCharAt(sb.length() - 1);
+            sb.append("}");
+            return sb.toString();
+        }
+
+        public String toString(){
+            return this.toJson();
+        }
+        static class SubOrderItem{
+            //子商户号
+            String mid;
+            //子商户分账金额
+            int totalAmount;
+            String toJson() {
+                StringBuilder sb = new StringBuilder();
+                sb.append("{");
+                if (this.mid != null) {
+                    sb.append("\"mid\":\"" + this.mid + "\",");
+                }
+                if (this.totalAmount != 0) {
+                    sb.append("\"totalAmount\":\"" + this.totalAmount + "\",");
+                }
+                if (sb.charAt(sb.length() - 1) == ',')
+                    sb.deleteCharAt(sb.length() - 1);
+                sb.append("}");
+                return sb.toString();
+            }
+
+            public String toString(){
+                return this.toJson();
+            }
+        }
+
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/unionpay/RefundQuery.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/unionpay/RefundQuery.java
new file mode 100644
index 0000000..cda7ce1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/unionpay/RefundQuery.java
@@ -0,0 +1,164 @@
+package com.panzhihua.applets.unionpay;
+
+import com.panzhihua.common.utlis.DateUtils;
+import org.apache.commons.codec.binary.Base64;
+import org.apache.commons.codec.digest.DigestUtils;
+
+import javax.crypto.Mac;
+import javax.crypto.spec.SecretKeySpec;
+import java.io.*;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.net.URLConnection;
+import java.time.LocalDateTime;
+
+/**
+ * @author kkqiao
+ * 全民付移动支付小程序支付退款查询接口
+ * 说明:
+ * 钱包支付时,因通讯故障、服务器故障等原因,造成收银机最终没有收到退货结果通知,收银员不确定
+ * 该笔退货后台处理结果,查询该笔退货交易订单在钱包后台的支付结果,并将退货结果返回给收银机。
+ *  测试环境:http://58.247.0.18:29015/v1/netpay/refund-query
+ *  生产环境:https://api-mop.chinaums.com/v1/netpay/refund-query
+ */
+public class RefundQuery {
+
+//    static String url = "https://test-api-open.chinaums.com/v1/netpay/refund-query";
+    static String url = "https://api-mop.chinaums.com/v1/netpay/refund-query";
+
+    /**
+     * 退款查询接口
+     * @param args
+     * @return
+     */
+    public static String refundQuery(String merOrderId)
+    {
+        //1. 组建请求报文
+        LocalDateTime time= DateUtils.getCurrentDate();
+        RefundQueryBody reqBody = new RefundQueryBody();
+        reqBody.requestTimestamp =time.format(DateUtils.format_ymdhms);// "2019-08-09 14:45:55";
+        reqBody.mid = UnionpayContent.MID;
+        reqBody.tid = UnionpayContent.TID;
+        reqBody.instMid = UnionpayContent.INSTMID;
+        reqBody.merOrderId = merOrderId;
+        System.out.println("request body:\n"+reqBody);
+
+        //2. 获取认证报文,timestamp为当前日期,老旧日期无法请求成功
+        String authorization = null;
+        try {
+            authorization = getAuthorization(UnionpayContent.APPID,UnionpayContent.APPKEY,
+                    time.format(DateUtils.format_ymdhms_string),"nonce",reqBody.toString());
+        } catch (Exception e) {
+            e.printStackTrace();
+            return "退款查询失败";
+        }
+        System.out.println("authorization:\n"+authorization);
+
+        //3. 发送http请求,并解析返回信息
+        String response = request(url,authorization,reqBody.toString());
+        System.out.println("response:\n"+response);
+        return response;
+    }
+
+    /**
+     * 发送http请求
+     * @param url 请求url
+     * @param authorization 认证报文
+     * @param reqBody  请求体
+     * @return response
+     */
+    static String request(String url, String authorization, String reqBody){
+        String response = "";
+        PrintWriter out = null;
+        BufferedReader in = null;
+        try{
+            URL realUrl = new URL(url);
+            URLConnection conn = realUrl.openConnection();
+            HttpURLConnection httpUrlConnection = (HttpURLConnection) conn;
+            httpUrlConnection.setRequestProperty("Content-Type", "application/json");
+            httpUrlConnection.setRequestProperty("authorization",authorization);
+            httpUrlConnection.setDoOutput(true);
+            httpUrlConnection.setDoInput(true);
+            out = new PrintWriter(httpUrlConnection.getOutputStream());
+            out.write(reqBody);
+            out.flush();
+            httpUrlConnection.connect();
+            in = new BufferedReader(new InputStreamReader(httpUrlConnection.getInputStream()));
+            String line;
+            while ((line = in.readLine()) != null) {
+                response += line;
+            }
+        }catch(Exception e){
+            e.printStackTrace();
+        } finally {
+            try {
+                if (out != null) { out.close();}
+                if (in != null) {in.close();}
+            } catch (Exception ex) {
+                ex.printStackTrace();
+            }
+        }
+        return response;
+    }
+
+    /**
+     * 获取签名头
+     * @param appid
+     * @param appkey
+     * @param timestamp 格式:"yyyyMMddHHmmss"
+     * @param nonce 随机字符串,
+     * @param body 请求体
+     * @return authorization 认证报文
+     * @throws Exception
+     */
+    static String getAuthorization(String appid, String appkey, String timestamp, String nonce, String body) throws Exception {
+        byte[] data = body.getBytes("utf-8");
+        InputStream is = new ByteArrayInputStream(data);
+        String testSH = DigestUtils.sha256Hex(is);
+        String s1 = appid+timestamp+nonce+testSH;
+        Mac mac = Mac.getInstance("HmacSHA256");
+        mac.init(new SecretKeySpec(appkey.getBytes("utf-8"),"HmacSHA256"));
+        byte[] localSignature = mac.doFinal(s1.getBytes("utf-8"));
+        String localSignatureStr = Base64.encodeBase64String(localSignature);
+        return  "OPEN-BODY-SIG AppId="+"\""+appid+"\""+", Timestamp="+"\""+timestamp+"\""+", Nonce="+"\""+nonce+"\""+", Signature="+"\""+localSignatureStr+"\"";
+    }
+
+    static class RefundQueryBody{
+        //消息ID
+        String msgId;
+        //报文请求时间,格式yyyy-MM-ddHH:mm:ss
+        String requestTimestamp;
+        //请求系统预留字段
+        String srcReserve;
+        //商户号
+        String mid;
+        //终端号
+        String tid;
+        //业务类型
+        String instMid;
+        //商户订单号
+        String merOrderId;
+
+        String toJson(){
+            StringBuilder sb = new StringBuilder();
+            sb.append("{");
+            if (this.msgId != null) sb.append("\"msgId\":\"" + this.msgId + "\",");
+            if (this.requestTimestamp != null) sb.append("\"requestTimestamp\":\"" + this.requestTimestamp + "\",");
+            if (this.srcReserve != null) sb.append("\"srcReserve\":\"" + this.srcReserve + "\",");
+            if (this.mid != null) sb.append("\"mid\":\"" + this.mid + "\",");
+            if (this.tid != null) sb.append("\"tid\":\"" + this.tid + "\",");
+            if (this.instMid != null) sb.append("\"instMid\":\"" + this.instMid + "\",");
+            if (this.merOrderId != null) sb.append("\"merOrderId\":\"" + this.merOrderId + "\",");
+            if (sb.charAt(sb.length() - 1) == ',')
+                sb.deleteCharAt(sb.length() - 1);
+            sb.append("}");
+            return sb.toString();
+        }
+
+        public String toString(){
+            return this.toJson();
+        }
+
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/unionpay/SecureCancel.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/unionpay/SecureCancel.java
new file mode 100644
index 0000000..eed530e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/unionpay/SecureCancel.java
@@ -0,0 +1,146 @@
+package com.panzhihua.applets.unionpay;
+
+import org.apache.commons.codec.binary.Base64;
+import org.apache.commons.codec.digest.DigestUtils;
+
+import javax.crypto.Mac;
+import javax.crypto.spec.SecretKeySpec;
+import java.io.*;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.net.URLConnection;
+
+/**
+ * @author kkqiao
+ * 全民付移动支付小程序支付担保撤销接口
+ * 说明:
+ * 对于担保交易(下单接口请求参数中上送了担保交易标识并置true),用户支付成功后,商户可调用此
+ * 接口来进行担保撤销操作。
+ *  测试环境:http://58.247.0.18:29015/v1/netpay/secure-cancel
+ *  生产环境:https://api-mop.chinaums.com/v1/netpay/secure-cancel
+ */
+public class SecureCancel {
+
+    static String url = "https://test-api-open.chinaums.com/v1/netpay/secure-cancel";
+
+    public static void main(String[] args) throws Exception{
+        //1. 组建请求报文
+        SecureCancelBody reqBody = new SecureCancelBody();
+        reqBody.requestTimestamp = "2019-08-09 17:12:55";
+        reqBody.mid = "898460107420248";
+        reqBody.tid = "00000001";
+        reqBody.instMid = "MINIDEFAULT";
+        reqBody.merOrderId = "101771305dc89764b477474";
+        System.out.println("request body:\n"+reqBody);
+
+        //2. 获取认证报文,timestamp为当前日期,老旧日期无法请求成功
+        String authorization = getAuthorization(UnionpayContent.APPID,UnionpayContent.APPKEY,"20190809171200","nonce",reqBody.toString());
+        System.out.println("authorization:\n"+authorization);
+
+        //3. 发送http请求,并解析返回信息
+        String response = request(url,authorization,reqBody.toString());
+        System.out.println("response:\n"+response);
+    }
+
+    /**
+     * 发送http请求
+     * @param url 请求url
+     * @param authorization 认证报文
+     * @param reqBody  请求体
+     * @return response
+     */
+    static String request(String url, String authorization, String reqBody){
+        String response = "";
+        PrintWriter out = null;
+        BufferedReader in = null;
+        try{
+            URL realUrl = new URL(url);
+            URLConnection conn = realUrl.openConnection();
+            HttpURLConnection httpUrlConnection = (HttpURLConnection) conn;
+            httpUrlConnection.setRequestProperty("Content-Type", "application/json");
+            httpUrlConnection.setRequestProperty("authorization",authorization);
+            httpUrlConnection.setDoOutput(true);
+            httpUrlConnection.setDoInput(true);
+            out = new PrintWriter(httpUrlConnection.getOutputStream());
+            out.write(reqBody);
+            out.flush();
+            httpUrlConnection.connect();
+            in = new BufferedReader(new InputStreamReader(httpUrlConnection.getInputStream()));
+            String line;
+            while ((line = in.readLine()) != null) {
+                response += line;
+            }
+        }catch(Exception e){
+            e.printStackTrace();
+        } finally {
+            try {
+                if (out != null) { out.close();}
+                if (in != null) {in.close();}
+            } catch (Exception ex) {
+                ex.printStackTrace();
+            }
+        }
+        return response;
+    }
+
+    /**
+     * 获取签名头
+     * @param appid
+     * @param appkey
+     * @param timestamp 格式:"yyyyMMddHHmmss"
+     * @param nonce 随机字符串,
+     * @param body 请求体
+     * @return authorization 认证报文
+     * @throws Exception
+     */
+    static String getAuthorization(String appid, String appkey, String timestamp, String nonce, String body) throws Exception {
+        byte[] data = body.getBytes("utf-8");
+        InputStream is = new ByteArrayInputStream(data);
+        String testSH = DigestUtils.sha256Hex(is);
+        String s1 = appid+timestamp+nonce+testSH;
+        Mac mac = Mac.getInstance("HmacSHA256");
+        mac.init(new SecretKeySpec(appkey.getBytes("utf-8"),"HmacSHA256"));
+        byte[] localSignature = mac.doFinal(s1.getBytes("utf-8"));
+        String localSignatureStr = Base64.encodeBase64String(localSignature);
+        return  "OPEN-BODY-SIG AppId="+"\""+appid+"\""+", Timestamp="+"\""+timestamp+"\""+", Nonce="+"\""+nonce+"\""+", Signature="+"\""+localSignatureStr+"\"";
+    }
+
+    static class SecureCancelBody{
+        //消息ID
+        String msgId;
+        //报文请求时间,格式yyyy-MM-ddHH:mm:ss
+        String requestTimestamp;
+        //请求系统预留字段
+        String srcReserve;
+        //商户号
+        String mid;
+        //终端号
+        String tid;
+        //业务类型
+        String instMid;
+        //商户订单号
+        String merOrderId;
+
+        String toJson(){
+            StringBuilder sb = new StringBuilder();
+            sb.append("{");
+            if (this.msgId != null) sb.append("\"msgId\":\"" + this.msgId + "\",");
+            if (this.requestTimestamp != null) sb.append("\"requestTimestamp\":\"" + this.requestTimestamp + "\",");
+            if (this.srcReserve != null) sb.append("\"srcReserve\":\"" + this.srcReserve + "\",");
+            if (this.mid != null) sb.append("\"mid\":\"" + this.mid + "\",");
+            if (this.tid != null) sb.append("\"tid\":\"" + this.tid + "\",");
+            if (this.instMid != null) sb.append("\"instMid\":\"" + this.instMid + "\",");
+            if (this.merOrderId != null) sb.append("\"merOrderId\":\"" + this.merOrderId + "\",");
+            if (sb.charAt(sb.length() - 1) == ',')
+                sb.deleteCharAt(sb.length() - 1);
+            sb.append("}");
+            return sb.toString();
+        }
+
+        public String toString(){
+            return this.toJson();
+        }
+
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/unionpay/SecureComplete.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/unionpay/SecureComplete.java
new file mode 100644
index 0000000..2540425
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/unionpay/SecureComplete.java
@@ -0,0 +1,150 @@
+package com.panzhihua.applets.unionpay;
+
+import org.apache.commons.codec.binary.Base64;
+import org.apache.commons.codec.digest.DigestUtils;
+
+import javax.crypto.Mac;
+import javax.crypto.spec.SecretKeySpec;
+import java.io.*;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.net.URLConnection;
+
+/**
+ * @author kkqiao
+ * 全民付移动支付小程序支付担保完成接口
+ * 说明:
+ * 对于担保交易(下单接口请求参数中上送了担保交易标识并置true),用户支付成功后,商户可调用此
+ * 接口来进行担保完成操作。
+ *  测试环境:http://58.247.0.18:29015/v1/netpay/secure-complete
+ *  生产环境:https://api-mop.chinaums.com/v1/netpay/secure-complete
+ */
+public class SecureComplete {
+
+    static String url = "https://test-api-open.chinaums.com/v1/netpay/secure-complete";
+
+    public static void main(String[] args) throws Exception{
+        //1. 组建请求报文
+        SecureCompleteBody reqBody = new SecureCompleteBody();
+        reqBody.requestTimestamp = "2019-08-09 17:12:55";
+        reqBody.mid = "898460107420248";
+        reqBody.tid = "00000001";
+        reqBody.instMid = "MINIDEFAULT";
+        reqBody.merOrderId = "101771306dc89764b477474";
+        reqBody.completedAmount = "1";
+        System.out.println("request body:\n"+reqBody);
+
+        //2. 获取认证报文,timestamp为当前日期,老旧日期无法请求成功
+        String authorization = getAuthorization(UnionpayContent.APPID,UnionpayContent.APPKEY,"20190809171200","nonce",reqBody.toString());
+        System.out.println("authorization:\n"+authorization);
+
+        //3. 发送http请求,并解析返回信息
+        String response = request(url,authorization,reqBody.toString());
+        System.out.println("response:\n"+response);
+    }
+
+    /**
+     * 发送http请求
+     * @param url 请求url
+     * @param authorization 认证报文
+     * @param reqBody  请求体
+     * @return response
+     */
+    static String request(String url, String authorization, String reqBody){
+        String response = "";
+        PrintWriter out = null;
+        BufferedReader in = null;
+        try{
+            URL realUrl = new URL(url);
+            URLConnection conn = realUrl.openConnection();
+            HttpURLConnection httpUrlConnection = (HttpURLConnection) conn;
+            httpUrlConnection.setRequestProperty("Content-Type", "application/json");
+            httpUrlConnection.setRequestProperty("authorization",authorization);
+            httpUrlConnection.setDoOutput(true);
+            httpUrlConnection.setDoInput(true);
+            out = new PrintWriter(httpUrlConnection.getOutputStream());
+            out.write(reqBody);
+            out.flush();
+            httpUrlConnection.connect();
+            in = new BufferedReader(new InputStreamReader(httpUrlConnection.getInputStream()));
+            String line;
+            while ((line = in.readLine()) != null) {
+                response += line;
+            }
+        }catch(Exception e){
+            e.printStackTrace();
+        } finally {
+            try {
+                if (out != null) { out.close();}
+                if (in != null) {in.close();}
+            } catch (Exception ex) {
+                ex.printStackTrace();
+            }
+        }
+        return response;
+    }
+
+    /**
+     * 获取签名头
+     * @param appid
+     * @param appkey
+     * @param timestamp 格式:"yyyyMMddHHmmss"
+     * @param nonce 随机字符串,
+     * @param body 请求体
+     * @return authorization 认证报文
+     * @throws Exception
+     */
+    static String getAuthorization(String appid, String appkey, String timestamp, String nonce, String body) throws Exception {
+        byte[] data = body.getBytes("utf-8");
+        InputStream is = new ByteArrayInputStream(data);
+        String testSH = DigestUtils.sha256Hex(is);
+        String s1 = appid+timestamp+nonce+testSH;
+        Mac mac = Mac.getInstance("HmacSHA256");
+        mac.init(new SecretKeySpec(appkey.getBytes("utf-8"),"HmacSHA256"));
+        byte[] localSignature = mac.doFinal(s1.getBytes("utf-8"));
+        String localSignatureStr = Base64.encodeBase64String(localSignature);
+        return  "OPEN-BODY-SIG AppId="+"\""+appid+"\""+", Timestamp="+"\""+timestamp+"\""+", Nonce="+"\""+nonce+"\""+", Signature="+"\""+localSignatureStr+"\"";
+    }
+
+    static class SecureCompleteBody{
+        //消息ID
+        String msgId;
+        //报文请求时间,格式yyyy-MM-ddHH:mm:ss
+        String requestTimestamp;
+        //请求系统预留字段
+        String srcReserve;
+        //商户号
+        String mid;
+        //终端号
+        String tid;
+        //业务类型
+        String instMid;
+        //商户订单号
+        String merOrderId;
+        //担保完成金额
+        String completedAmount;
+
+        String toJson(){
+            StringBuilder sb = new StringBuilder();
+            sb.append("{");
+            if (this.msgId != null) sb.append("\"msgId\":\"" + this.msgId + "\",");
+            if (this.requestTimestamp != null) sb.append("\"requestTimestamp\":\"" + this.requestTimestamp + "\",");
+            if (this.srcReserve != null) sb.append("\"srcReserve\":\"" + this.srcReserve + "\",");
+            if (this.mid != null) sb.append("\"mid\":\"" + this.mid + "\",");
+            if (this.tid != null) sb.append("\"tid\":\"" + this.tid + "\",");
+            if (this.instMid != null) sb.append("\"instMid\":\"" + this.instMid + "\",");
+            if (this.merOrderId != null) sb.append("\"merOrderId\":\"" + this.merOrderId + "\",");
+            if (this.completedAmount != null) sb.append("\"completedAmount\":\"" + this.completedAmount + "\",");
+            if (sb.charAt(sb.length() - 1) == ',')
+                sb.deleteCharAt(sb.length() - 1);
+            sb.append("}");
+            return sb.toString();
+        }
+
+        public String toString(){
+            return this.toJson();
+        }
+
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/unionpay/UnifiedOrder.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/unionpay/UnifiedOrder.java
new file mode 100644
index 0000000..797eff6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/unionpay/UnifiedOrder.java
@@ -0,0 +1,334 @@
+package com.panzhihua.applets.unionpay;
+
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.DateUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.codec.binary.Base64;
+import org.apache.commons.codec.digest.DigestUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import javax.crypto.Mac;
+import javax.crypto.spec.SecretKeySpec;
+import java.io.*;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.net.URLConnection;
+import java.time.LocalDateTime;
+import java.util.List;
+import java.util.UUID;
+
+import static com.panzhihua.common.utlis.PayUtil.makeUUID;
+
+/**
+ * @author kkqiao
+ * 全民付移动支付小程序支付下单接口
+ * 说明:
+ * 本接口为商户的订单信息发向银商网络支付前置系统以获取支付要素商户需遵循商户订单号生成规范,即以银商分配的4位来源编号作为账单号的前4位,且在商户系统中此
+ * 账单号保证唯一。总长度需大于6位,小于28位。银商的推荐规则为(无特殊情况下,建议遵守此规
+ * 则):
+ *      {来源编号(4位)}{时间(yyyyMMddmmHHssSSS)(17位)}{7位随机数}
+ * 微信下单成功后,使用返回数据中的miniPayRequest 即可调用支付。
+ * 支付需要集成微信小程序,需要第三方自行配置。
+ * 支付宝下单成功后,使用返回数据中的targetOrderId 即可调用支付。 支付需要集成支付宝支付环境,
+ * 需要第三方自行配置。
+ *  微信:
+ *  测试环境:http://58.247.0.18:29015/v1/netpay/wx/unified-order
+ *  生产环境:https://api-mop.chinaums.com/v1/netpay/wx/unified-order
+ *  支付宝:
+ *  测试环境:http://58.247.0.18:29015/v1/netpay/trade/create
+ *  生产环境:https://api-mop.chinaums.com/v1/netpay/trade/create
+ */
+@Slf4j
+@Component
+public class UnifiedOrder {
+//    static String url = "https://test-api-open.chinaums.com/v1/netpay/wx/unified-order";
+    static String url = "https://api-mop.chinaums.com/v1/netpay/wx/unified-order";
+
+    public static String sendOrder(String totalAmount,String orderDesc,String productId,String OpenId,LocalDateTime time,String merOrderId)
+    {
+        //1. 组建请求报文
+        UnifiedOrderBody reqBody = new UnifiedOrderBody();
+        reqBody.requestTimestamp = time.format(DateUtils.format_ymdhms);// "2019-08-09 17:30:55";
+        reqBody.merOrderId = merOrderId;
+        reqBody.mid = UnionpayContent.MID;
+        reqBody.tid = UnionpayContent.TID;
+        reqBody.instMid = UnionpayContent.INSTMID;
+        reqBody.totalAmount = totalAmount;
+        reqBody.secureTransaction = "false";
+        reqBody.orderDesc = orderDesc;
+        reqBody.productId = productId;
+        reqBody.notifyUrl = "https://huacheng.psciio.com/api/huacheng-applets/wx/wxNotifyAllUnionpay?merOrderId="+reqBody.merOrderId;
+        reqBody.tradeType = "MINI";
+        reqBody.subOpenId = OpenId;
+
+        log.info("银联支付参数:\n"+reqBody);
+
+        //2. 获取认证报文,timestamp为当前日期,老旧日期无法请求成功
+        String authorization = null;
+        try {
+            authorization = getAuthorization(UnionpayContent.APPID,UnionpayContent.APPKEY,
+                    time.format(DateUtils.format_ymdhms_string),"nonce",reqBody.toString());
+        } catch (Exception e) {
+            e.printStackTrace();
+            return "下单失败";
+        }
+        System.out.println("authorization:\n"+authorization);
+
+        //3. 发送http请求,并解析返回信息
+        String response = request(url,authorization,reqBody.toString());
+        System.out.println("response:\n"+response);
+        return response;
+    }
+
+    /**
+     * 发送http请求
+     * @param url 请求url
+     * @param authorization 认证报文
+     * @param reqBody  请求体
+     * @return response
+     */
+    static String request(String url, String authorization, String reqBody){
+        String response = "";
+        PrintWriter out = null;
+        BufferedReader in = null;
+        try{
+            URL realUrl = new URL(url);
+            URLConnection conn = realUrl.openConnection();
+            HttpURLConnection httpUrlConnection = (HttpURLConnection) conn;
+            httpUrlConnection.setRequestProperty("Content-Type", "application/json");
+            httpUrlConnection.setRequestProperty("authorization",authorization);
+            httpUrlConnection.setDoOutput(true);
+            httpUrlConnection.setDoInput(true);
+            out = new PrintWriter(httpUrlConnection.getOutputStream());
+            out.write(reqBody);
+            out.flush();
+            httpUrlConnection.connect();
+            in = new BufferedReader(new InputStreamReader(httpUrlConnection.getInputStream()));
+            String line;
+            while ((line = in.readLine()) != null) {
+                response += line;
+            }
+        }catch(Exception e){
+            e.printStackTrace();
+        } finally {
+            try {
+                if (out != null) { out.close();}
+                if (in != null) {in.close();}
+            } catch (Exception ex) {
+                ex.printStackTrace();
+            }
+        }
+        return response;
+    }
+
+    /**
+     * 获取签名头
+     * @param appid
+     * @param appkey
+     * @param timestamp 格式:"yyyyMMddHHmmss"
+     * @param nonce 随机字符串,
+     * @param body 请求体
+     * @return authorization 认证报文
+     * @throws Exception
+     */
+    static String getAuthorization(String appid, String appkey, String timestamp, String nonce, String body) throws Exception {
+        byte[] data = body.getBytes("utf-8");
+        InputStream is = new ByteArrayInputStream(data);
+        String testSH = DigestUtils.sha256Hex(is);
+        String s1 = appid+timestamp+nonce+testSH;
+        Mac mac = Mac.getInstance("HmacSHA256");
+        mac.init(new SecretKeySpec(appkey.getBytes("utf-8"),"HmacSHA256"));
+        byte[] localSignature = mac.doFinal(s1.getBytes("utf-8"));
+        String localSignatureStr = Base64.encodeBase64String(localSignature);
+        return  "OPEN-BODY-SIG AppId="+"\""+appid+"\""+", Timestamp="+"\""+timestamp+"\""+", Nonce="+"\""+nonce+"\""+", Signature="+"\""+localSignatureStr+"\"";
+    }
+
+    static class UnifiedOrderBody{
+        //消息ID
+        String msgId;
+        //报文请求时间,格式yyyy-MM-ddHH:mm:ss
+        String requestTimestamp;
+        //商户订单号
+        String merOrderId;
+        //请求系统预留字段
+        String srcReserve;
+        //商户号
+        String mid;
+        //终端号
+        String tid;
+        //业务类型
+        String instMid;
+        //商品信息
+        List<GoodsItem> goods;
+        //商户附加数据
+        String attachedData;
+        //订单过期时间
+        String expireTime;
+        //商品标记
+        String goodsTag;
+        //商品交易单号
+        String goodsTradeNo;
+        //账单描述
+        String orderDesc;
+        //订单原始金额
+        String originalAmount;
+        //商品ID
+        String productId;
+        //支付总金额
+        String totalAmount;
+        //分账标记
+        String divisionFlag;
+        //平台商户分账金额
+        String platformAmount;
+        //子订单信息
+        List<SubOrderItem> subOrders;
+        //支付结果通知地址
+        String notifyUrl;
+        //订单展示页面
+        String showUrl;
+        //担保交易标识
+        String secureTransaction;
+        //用户子标识
+        String tradeType;
+        //交易类型
+        String subOpenId;
+        //商户用户号
+        String merchantUserId;
+        //用户Id
+        String userId;
+        //实名认证手机号
+        String mobile;
+        //是否需要限制信用卡支付
+        String limitCreditCard;
+
+        String toJson(){
+            StringBuilder sb = new StringBuilder();
+            sb.append("{");
+            if (this.userId != null) sb.append("\"userId\":\"" + this.userId + "\",");
+            if (this.msgId != null) sb.append("\"msgId\":\"" + this.msgId + "\",");
+            if (this.requestTimestamp != null) sb.append("\"requestTimestamp\":\"" + this.requestTimestamp + "\",");
+            if (this.merOrderId != null) sb.append("\"merOrderId\":\"" + this.merOrderId + "\",");
+            if (this.srcReserve != null) sb.append("\"srcReserve\":\"" + this.srcReserve + "\",");
+            if (this.mid != null) sb.append("\"mid\":\"" + this.mid + "\",");
+            if (this.tid != null) sb.append("\"tid\":\"" + this.tid + "\",");
+            if (this.instMid != null) sb.append("\"instMid\":\"" + this.instMid + "\",");
+            if (this.goods != null && this.goods.size()>0) {
+                sb.append("\"goods\":[");
+                for(int i=0;i<goods.size();i++){
+                    sb.append(goods.get(i));
+                    sb.append(",");
+                }
+                if (sb.charAt(sb.length() - 1) == ',')
+                    sb.deleteCharAt(sb.length() - 1);
+                sb.append("],");
+            }
+            if (this.attachedData != null) sb.append("\"attachedData\":\"" + this.attachedData + "\",");
+            if (this.expireTime != null) sb.append("\"expireTime\":\"" + this.expireTime + "\",");
+            if (this.goodsTag != null) sb.append("\"goodsTag\":\"" + this.goodsTag + "\",");
+            if (this.goodsTradeNo != null) sb.append("\"goodsTradeNo\":\"" + this.goodsTradeNo + "\",");
+            if (this.orderDesc != null) sb.append("\"orderDesc\":\"" + this.orderDesc + "\",");
+            if (this.originalAmount != null) sb.append("\"originalAmount\":\"" + this.originalAmount + "\",");
+            if (this.productId != null) sb.append("\"productId\":\"" + this.productId + "\",");
+            if (this.totalAmount != null) sb.append("\"totalAmount\":\"" + this.totalAmount + "\",");
+            if (this.divisionFlag != null) sb.append("\"divisionFlag\":\"" + this.divisionFlag + "\",");
+            if (this.platformAmount != null) sb.append("\"platformAmount\":\"" + this.platformAmount + "\",");
+            if (this.subOrders != null && this.subOrders.size()>0) {
+                sb.append("\"subOrders\":[");
+                for(int i=0;i<subOrders.size();i++){
+                    sb.append(subOrders.get(i));
+                    sb.append(",");
+                }
+                if (sb.charAt(sb.length() - 1) == ',')
+                    sb.deleteCharAt(sb.length() - 1);
+                sb.append("],");
+            }
+            if (this.notifyUrl != null) sb.append("\"notifyUrl\":\"" + this.notifyUrl + "\",");
+            if (this.showUrl != null) sb.append("\"showUrl\":\"" + this.showUrl + "\",");
+            if (this.secureTransaction != null) sb.append("\"secureTransaction\":\"" + this.secureTransaction + "\",");
+            if (this.subOpenId != null) sb.append("\"subOpenId\":\"" + this.subOpenId + "\",");
+            if (this.tradeType != null) sb.append("\"tradeType\":\"" + this.tradeType + "\",");
+            if (this.merchantUserId != null) sb.append("\"merchantUserId\":\"" + this.merchantUserId + "\",");
+            if (this.mobile != null) sb.append("\"mobile\":\"" + this.mobile + "\",");
+            if (this.limitCreditCard != null) sb.append("\"limitCreditCard\":\"" + this.limitCreditCard + "\",");
+            if (sb.charAt(sb.length() - 1) == ',')
+                sb.deleteCharAt(sb.length() - 1);
+            sb.append("}");
+            return sb.toString();
+        }
+
+        public String toString(){
+            return this.toJson();
+        }
+        static class GoodsItem {
+            //商品ID
+            String goodsId;
+            //商品名称
+            String goodsName;
+            //商品数量
+            String quantity;
+            //商品单价(分)
+            String price;
+            //商品分类
+            String goodsCategory;
+            //商品说明
+            String body;
+            //商品单位
+            int unit;
+            //商品折扣
+            int discount;
+            //子商户号
+            String subMerchantId;
+            //子商户商品总额
+            int subOrderAmount;
+
+            String toJson(){
+                StringBuilder sb = new StringBuilder();
+                sb.append("{");
+                if(this.goodsId!=null) sb.append("\"goodsId\":\""+this.goodsId+"\",");
+                if(this.goodsName!=null) sb.append("\"goodsName\":\""+this.goodsName+"\",");
+                if(this.quantity!=null) sb.append("\"quantity\":\""+this.quantity+"\",");
+                if(this.price!=null) sb.append("\"price\":\""+this.price+"\",");
+                if(this.goodsCategory!=null) sb.append("\"goodsCategory\":\""+this.goodsCategory+"\",");
+                if(this.body!=null) sb.append("\"body\":\""+this.body+"\",");
+                if(this.unit!=0) sb.append("\"unit\":\""+this.unit+"\",");
+                if(this.discount!=0) sb.append("\"discount\":\""+this.discount+"\",");
+                if(this.subMerchantId!=null) sb.append("\"subMerchantId\":\""+this.subMerchantId+"\",");
+                if(this.subOrderAmount!=0) sb.append("\"subOrderAmount\":\""+this.subOrderAmount+"\",");
+                if(sb.charAt(sb.length()-1) == ',')
+                    sb.deleteCharAt(sb.length()-1);
+                sb.append("}");
+                return sb.toString();
+            }
+            public String toString(){
+                return this.toJson();
+            }
+        }
+        static class SubOrderItem{
+            //子商户号
+            String mid;
+            //子商户分账金额
+            int totalAmount;
+            String toJson() {
+                StringBuilder sb = new StringBuilder();
+                sb.append("{");
+                if (this.mid != null) {
+                    sb.append("\"mid\":\"" + this.mid + "\",");
+                }
+                if (this.totalAmount != 0) {
+                    sb.append("\"totalAmount\":\"" + this.totalAmount + "\",");
+                }
+                if (sb.charAt(sb.length() - 1) == ',')
+                    sb.deleteCharAt(sb.length() - 1);
+                sb.append("}");
+                return sb.toString();
+            }
+
+            public String toString(){
+                return this.toJson();
+            }
+        }
+
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/unionpay/UnionpayContent.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/unionpay/UnionpayContent.java
new file mode 100644
index 0000000..2132e82
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/unionpay/UnionpayContent.java
@@ -0,0 +1,17 @@
+package com.panzhihua.applets.unionpay;
+
+public class UnionpayContent
+{
+
+    public static String APPID = "8a81c1bf831e72e30185755c7a0a3156";
+    public static String APPKEY = "1697b2de76d547858699a45e2420c089";
+    //商户号
+    public static String MID = "898510475429005";
+    //终端号
+    public static String TID = "50525310";
+    //机构商户号
+    public static String INSTMID = "MINIDEFAULT";
+    //订单号前4位{来源编号(4位)
+    public static String TOP4 = "33ZV";
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/weixin/CheckService.java b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/weixin/CheckService.java
new file mode 100644
index 0000000..7ead3bb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/java/com/panzhihua/applets/weixin/CheckService.java
@@ -0,0 +1,131 @@
+package com.panzhihua.applets.weixin;
+
+import cn.binarywang.wx.miniapp.api.WxMaSecCheckService;
+import cn.binarywang.wx.miniapp.api.WxMaService;
+import cn.binarywang.wx.miniapp.bean.security.WxMaMsgSecCheckCheckRequest;
+import cn.binarywang.wx.miniapp.bean.security.WxMaMsgSecCheckCheckResponse;
+import cn.binarywang.wx.miniapp.config.WxMaConfig;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.StrUtil;
+import com.panzhihua.applets.config.WxMaConfiguration;
+import lombok.extern.slf4j.Slf4j;
+import me.chanjar.weixin.common.error.WxErrorException;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 微信内容审查
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-02-25 10:57
+ **/
+@Slf4j
+@Service
+public class CheckService {
+    @Resource
+    private WxMaConfiguration wxMaConfiguration;
+
+    public boolean checkMessage(String msg) {
+        WxMaService maService = wxMaConfiguration.getMaService("");
+
+        WxMaConfig wxMaConfig = maService.getWxMaConfig();
+        WxMaMsgSecCheckCheckRequest wxMaMsgSecCheckCheckRequest = WxMaMsgSecCheckCheckRequest.builder().version("2").openid(wxMaConfig.getAppid()).scene(2).content(msg).build();
+        WxMaSecCheckService wxMaSecCheckService = maService.getSecCheckService();
+        try {
+            WxMaMsgSecCheckCheckResponse wxMaMsgSecCheckCheckResponse = wxMaSecCheckService.checkMessage(wxMaMsgSecCheckCheckRequest);
+            wxMaMsgSecCheckCheckResponse.getResult();
+            return true;
+        } catch (WxErrorException e) {
+            log.error("微信审核文字内容出错【{}】", e.getMessage());
+            e.printStackTrace();
+        }
+        return false;
+    }
+
+    public String checkMessageBy(String msg, String openId, String appId) {
+        WxMaMsgSecCheckCheckRequest wxMaMsgSecCheckCheckRequest = WxMaMsgSecCheckCheckRequest.builder().version("2").openid(openId).scene(2).content(msg).build();
+        WxMaSecCheckService wxMaSecCheckService = wxMaConfiguration.getMaService(appId).getSecCheckService();
+        try {
+            WxMaMsgSecCheckCheckResponse result = wxMaSecCheckService.checkMessage(wxMaMsgSecCheckCheckRequest);
+            return this.handleResult(result);
+        } catch (WxErrorException e) {
+            log.error("微信审核文字内容出错【{}】", e.getMessage());
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    public boolean checkImageBy(String url, String appId) {
+        String[] imageUrlArr = url.split(",");
+        for (String imageUrl : imageUrlArr) {
+            WxMaSecCheckService wxMaSecCheckService = wxMaConfiguration.getMaService(appId).getSecCheckService();
+            try {
+                return wxMaSecCheckService.checkImage(imageUrl);
+            } catch (WxErrorException e) {
+                log.error("微信审核图片内容出错【{}】", e.getMessage());
+                e.printStackTrace();
+            }
+        }
+        return true;
+    }
+
+    /**
+     * 处理微信返回的违规结果
+     *
+     * @param result
+     * @return
+     */
+    private String handleResult(WxMaMsgSecCheckCheckResponse result) {
+        List<WxMaMsgSecCheckCheckResponse.DetailBean> detailBeanList = result.getDetail();
+        if (null != detailBeanList && detailBeanList.size() > 0) {
+            List<String> resultMsgs = new ArrayList<>();
+            for (WxMaMsgSecCheckCheckResponse.DetailBean detailBean : detailBeanList) {
+                if (0 == detailBean.getErrcode()) {
+                    String label = detailBean.getLabel();
+                    if (StrUtil.isNotBlank(label)) {
+                        switch (label) {
+                            case "100":
+                                continue;
+                            case "10001":
+                                resultMsgs.add("广告");
+                                continue;
+                            case "20001":
+                                resultMsgs.add("时政");
+                                continue;
+                            case "20002":
+                                resultMsgs.add("色情");
+                                continue;
+                            case "20003":
+                                resultMsgs.add("辱骂");
+                                continue;
+                            case "20006":
+                                resultMsgs.add("违法犯罪");
+                                continue;
+                            case "20008":
+                                resultMsgs.add("欺诈");
+                                continue;
+                            case "20012":
+                                resultMsgs.add("低俗");
+                                continue;
+                            case "20013":
+                                resultMsgs.add("版权");
+                                continue;
+                            case "21000":
+                                resultMsgs.add("其他");
+                        }
+                    }
+
+                }
+            }
+            if (CollUtil.isNotEmpty(resultMsgs)) {
+                return StringUtils.join(resultMsgs, ",");
+            }
+        }
+        return null;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/resources/bootstrap.yml b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..b2fa9bc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/resources/bootstrap.yml
@@ -0,0 +1,45 @@
+spring:
+  application:
+    name: huacheng-applets
+  cloud:
+    config:
+      discovery:
+        enabled: true
+        service-id: huacheng-config  # 注册中心的服务名
+      profile: ${ENV:dev}  # 指定配置文件的环境
+      uri: http://${CONFIG_URL:localhost}:6193/
+  profiles:
+    active: ${ENV:dev}
+  servlet:
+    multipart:
+      max-file-size: 200MB
+      max-request-size: 200MB
+
+server:
+  max-http-header-size: 10MB
+
+eureka:
+  client:
+    service-url:
+      defaultZone: http://${EUREKA_URL:localhost}:8192/eureka
+
+wx:
+  miniapp:
+    appid: wx0cef797390444b75
+    secret: c7ea9aaa7e391a487e8a5b9ba61045d1
+    msgDataFormat: JSON
+
+management:
+  endpoints:
+    web:
+      exposure:
+        include: '*'
+
+  endpoint:
+    health:
+      show-details: always
+
+  metrics:
+    tags:
+      application: huacheng-applets
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/resources/lib/UMF_SDK_V01.jar b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/resources/lib/UMF_SDK_V01.jar
new file mode 100644
index 0000000..fa538e0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/resources/lib/UMF_SDK_V01.jar
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/resources/logback-spring.xml b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..99cb522
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/resources/logback-spring.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration debug="false">
+    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
+    <springProfile name="dev">
+        <property name="LOG_HOME" value="F:/log" />
+    </springProfile>
+       <springProfile name="test">
+        <property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    </springProfile>
+<property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    <!-- 控制台输出 -->
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+    </appender>
+    <!-- 按照每天生成日志文件 -->
+    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!--日志文件输出的文件名-->
+            <FileNamePattern>${LOG_HOME}/huachengapplets.log.%d{yyyy-MM-dd}.log</FileNamePattern>
+            <!--日志文件保留天数-->
+            <MaxHistory>30</MaxHistory>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+        <!--日志文件最大的大小-->
+        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <MaxFileSize>10MB</MaxFileSize>
+        </triggeringPolicy>
+    </appender>
+
+    <!--myibatis log configure-->
+    <logger name="com.apache.ibatis" level="TRACE"/>
+    <logger name="java.sql.Connection" level="DEBUG"/>
+    <logger name="java.sql.Statement" level="DEBUG"/>
+    <logger name="java.sql.PreparedStatement" level="DEBUG"/>
+    <logger name="com.panzhihua.applets" level="DEBUG"/>
+
+    <!-- 日志输出级别 -->
+    <root level="DEBUG">
+        <appender-ref ref="STDOUT" />
+    </root>
+    <root level="INFO">
+        <appender-ref ref="STDOUT" />
+        <appender-ref ref="FILE" />
+    </root>
+</configuration>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/resources/template/53461_.key.p8 b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/resources/template/53461_.key.p8
new file mode 100644
index 0000000..6b52b7f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets/src/main/resources/template/53461_.key.p8
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/.gitignore b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/.gitignore
new file mode 100644
index 0000000..549e00a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/.gitignore
@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/.mvn/wrapper/MavenWrapperDownloader.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/.mvn/wrapper/MavenWrapperDownloader.java
new file mode 100644
index 0000000..a45eb6b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/.mvn/wrapper/MavenWrapperDownloader.java
@@ -0,0 +1,118 @@
+/*
+ * Copyright 2007-present the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.net.*;
+import java.io.*;
+import java.nio.channels.*;
+import java.util.Properties;
+
+public class MavenWrapperDownloader {
+
+    private static final String WRAPPER_VERSION = "0.5.6";
+    /**
+     * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
+     */
+    private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
+            + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
+
+    /**
+     * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
+     * use instead of the default one.
+     */
+    private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
+            ".mvn/wrapper/maven-wrapper.properties";
+
+    /**
+     * Path where the maven-wrapper.jar will be saved to.
+     */
+    private static final String MAVEN_WRAPPER_JAR_PATH =
+            ".mvn/wrapper/maven-wrapper.jar";
+
+    /**
+     * Name of the property which should be used to override the default download url for the wrapper.
+     */
+    private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
+
+    public static void main(String args[]) {
+        System.out.println("- Downloader started");
+        File baseDirectory = new File(args[0]);
+        System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
+
+        // If the maven-wrapper.properties exists, read it and check if it contains a custom
+        // wrapperUrl parameter.
+        File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
+        String url = DEFAULT_DOWNLOAD_URL;
+        if (mavenWrapperPropertyFile.exists()) {
+            FileInputStream mavenWrapperPropertyFileInputStream = null;
+            try {
+                mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
+                Properties mavenWrapperProperties = new Properties();
+                mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
+                url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
+            } catch (IOException e) {
+                System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
+            } finally {
+                try {
+                    if (mavenWrapperPropertyFileInputStream != null) {
+                        mavenWrapperPropertyFileInputStream.close();
+                    }
+                } catch (IOException e) {
+                    // Ignore ...
+                }
+            }
+        }
+        System.out.println("- Downloading from: " + url);
+
+        File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
+        if (!outputFile.getParentFile().exists()) {
+            if (!outputFile.getParentFile().mkdirs()) {
+                System.out.println(
+                        "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
+            }
+        }
+        System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
+        try {
+            downloadFileFromURL(url, outputFile);
+            System.out.println("Done");
+            System.exit(0);
+        } catch (Throwable e) {
+            System.out.println("- Error downloading");
+            e.printStackTrace();
+            System.exit(1);
+        }
+    }
+
+    private static void downloadFileFromURL(String urlString, File destination) throws Exception {
+        if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
+            String username = System.getenv("MVNW_USERNAME");
+            char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
+            Authenticator.setDefault(new Authenticator() {
+                @Override
+                protected PasswordAuthentication getPasswordAuthentication() {
+                    return new PasswordAuthentication(username, password);
+                }
+            });
+        }
+        URL website = new URL(urlString);
+        ReadableByteChannel rbc;
+        rbc = Channels.newChannel(website.openStream());
+        FileOutputStream fos = new FileOutputStream(destination);
+        fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
+        fos.close();
+        rbc.close();
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/.mvn/wrapper/maven-wrapper.jar b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/.mvn/wrapper/maven-wrapper.jar
new file mode 100644
index 0000000..2cc7d4a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/.mvn/wrapper/maven-wrapper.jar
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/.mvn/wrapper/maven-wrapper.properties b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/.mvn/wrapper/maven-wrapper.properties
new file mode 100644
index 0000000..642d572
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/.mvn/wrapper/maven-wrapper.properties
@@ -0,0 +1,2 @@
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip
+wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/mvnw b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/mvnw
new file mode 100644
index 0000000..a16b543
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/mvnw
@@ -0,0 +1,310 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#    https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Maven Start Up Batch script
+#
+# Required ENV vars:
+# ------------------
+#   JAVA_HOME - location of a JDK home dir
+#
+# Optional ENV vars
+# -----------------
+#   M2_HOME - location of maven2's installed home dir
+#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
+#     e.g. to debug Maven itself, use
+#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+# ----------------------------------------------------------------------------
+
+if [ -z "$MAVEN_SKIP_RC" ] ; then
+
+  if [ -f /etc/mavenrc ] ; then
+    . /etc/mavenrc
+  fi
+
+  if [ -f "$HOME/.mavenrc" ] ; then
+    . "$HOME/.mavenrc"
+  fi
+
+fi
+
+# OS specific support.  $var _must_ be set to either true or false.
+cygwin=false;
+darwin=false;
+mingw=false
+case "`uname`" in
+  CYGWIN*) cygwin=true ;;
+  MINGW*) mingw=true;;
+  Darwin*) darwin=true
+    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
+    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
+    if [ -z "$JAVA_HOME" ]; then
+      if [ -x "/usr/libexec/java_home" ]; then
+        export JAVA_HOME="`/usr/libexec/java_home`"
+      else
+        export JAVA_HOME="/Library/Java/Home"
+      fi
+    fi
+    ;;
+esac
+
+if [ -z "$JAVA_HOME" ] ; then
+  if [ -r /etc/gentoo-release ] ; then
+    JAVA_HOME=`java-config --jre-home`
+  fi
+fi
+
+if [ -z "$M2_HOME" ] ; then
+  ## resolve links - $0 may be a link to maven's home
+  PRG="$0"
+
+  # need this for relative symlinks
+  while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+      PRG="$link"
+    else
+      PRG="`dirname "$PRG"`/$link"
+    fi
+  done
+
+  saveddir=`pwd`
+
+  M2_HOME=`dirname "$PRG"`/..
+
+  # make it fully qualified
+  M2_HOME=`cd "$M2_HOME" && pwd`
+
+  cd "$saveddir"
+  # echo Using m2 at $M2_HOME
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --unix "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+fi
+
+# For Mingw, ensure paths are in UNIX format before anything is touched
+if $mingw ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME="`(cd "$M2_HOME"; pwd)`"
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
+fi
+
+if [ -z "$JAVA_HOME" ]; then
+  javaExecutable="`which javac`"
+  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
+    # readlink(1) is not available as standard on Solaris 10.
+    readLink=`which readlink`
+    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
+      if $darwin ; then
+        javaHome="`dirname \"$javaExecutable\"`"
+        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
+      else
+        javaExecutable="`readlink -f \"$javaExecutable\"`"
+      fi
+      javaHome="`dirname \"$javaExecutable\"`"
+      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
+      JAVA_HOME="$javaHome"
+      export JAVA_HOME
+    fi
+  fi
+fi
+
+if [ -z "$JAVACMD" ] ; then
+  if [ -n "$JAVA_HOME"  ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+      # IBM's JDK on AIX uses strange locations for the executables
+      JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+      JAVACMD="$JAVA_HOME/bin/java"
+    fi
+  else
+    JAVACMD="`which java`"
+  fi
+fi
+
+if [ ! -x "$JAVACMD" ] ; then
+  echo "Error: JAVA_HOME is not defined correctly." >&2
+  echo "  We cannot execute $JAVACMD" >&2
+  exit 1
+fi
+
+if [ -z "$JAVA_HOME" ] ; then
+  echo "Warning: JAVA_HOME environment variable is not set."
+fi
+
+CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
+
+# traverses directory structure from process work directory to filesystem root
+# first directory with .mvn subdirectory is considered project base directory
+find_maven_basedir() {
+
+  if [ -z "$1" ]
+  then
+    echo "Path not specified to find_maven_basedir"
+    return 1
+  fi
+
+  basedir="$1"
+  wdir="$1"
+  while [ "$wdir" != '/' ] ; do
+    if [ -d "$wdir"/.mvn ] ; then
+      basedir=$wdir
+      break
+    fi
+    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
+    if [ -d "${wdir}" ]; then
+      wdir=`cd "$wdir/.."; pwd`
+    fi
+    # end of workaround
+  done
+  echo "${basedir}"
+}
+
+# concatenates all lines of a file
+concat_lines() {
+  if [ -f "$1" ]; then
+    echo "$(tr -s '\n' ' ' < "$1")"
+  fi
+}
+
+BASE_DIR=`find_maven_basedir "$(pwd)"`
+if [ -z "$BASE_DIR" ]; then
+  exit 1;
+fi
+
+##########################################################################################
+# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+# This allows using the maven wrapper in projects that prohibit checking in binary data.
+##########################################################################################
+if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Found .mvn/wrapper/maven-wrapper.jar"
+    fi
+else
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
+    fi
+    if [ -n "$MVNW_REPOURL" ]; then
+      jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    else
+      jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    fi
+    while IFS="=" read key value; do
+      case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
+      esac
+    done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Downloading from: $jarUrl"
+    fi
+    wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
+    if $cygwin; then
+      wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
+    fi
+
+    if command -v wget > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found wget ... using wget"
+        fi
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+            wget "$jarUrl" -O "$wrapperJarPath"
+        else
+            wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
+        fi
+    elif command -v curl > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found curl ... using curl"
+        fi
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+            curl -o "$wrapperJarPath" "$jarUrl" -f
+        else
+            curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
+        fi
+
+    else
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Falling back to using Java to download"
+        fi
+        javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
+        # For Cygwin, switch paths to Windows format before running javac
+        if $cygwin; then
+          javaClass=`cygpath --path --windows "$javaClass"`
+        fi
+        if [ -e "$javaClass" ]; then
+            if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Compiling MavenWrapperDownloader.java ..."
+                fi
+                # Compiling the Java class
+                ("$JAVA_HOME/bin/javac" "$javaClass")
+            fi
+            if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                # Running the downloader
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Running MavenWrapperDownloader.java ..."
+                fi
+                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
+            fi
+        fi
+    fi
+fi
+##########################################################################################
+# End of extension
+##########################################################################################
+
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
+if [ "$MVNW_VERBOSE" = true ]; then
+  echo $MAVEN_PROJECTBASEDIR
+fi
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --path --windows "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
+    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
+fi
+
+# Provide a "standardized" way to retrieve the CLI args that will
+# work with both Windows and non-Windows executions.
+MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
+export MAVEN_CMD_LINE_ARGS
+
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+exec "$JAVACMD" \
+  $MAVEN_OPTS \
+  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
+  "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
+  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/mvnw.cmd b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/mvnw.cmd
new file mode 100644
index 0000000..c8d4337
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/mvnw.cmd
@@ -0,0 +1,182 @@
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements.  See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership.  The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License.  You may obtain a copy of the License at
+@REM
+@REM    https://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied.  See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Maven Start Up Batch script
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM M2_HOME - location of maven2's installed home dir
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
+@REM     e.g. to debug Maven itself, use
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+@REM ----------------------------------------------------------------------------
+
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
+@echo off
+@REM set title of command window
+title %0
+@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
+@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
+
+@REM set %HOME% to equivalent of $HOME
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
+
+@REM Execute a user defined script before this one
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
+if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
+:skipRcPre
+
+@setlocal
+
+set ERROR_CODE=0
+
+@REM To isolate internal variables from possible post scripts, we use another setlocal
+@setlocal
+
+@REM ==== START VALIDATION ====
+if not "%JAVA_HOME%" == "" goto OkJHome
+
+echo.
+echo Error: JAVA_HOME not found in your environment. >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:OkJHome
+if exist "%JAVA_HOME%\bin\java.exe" goto init
+
+echo.
+echo Error: JAVA_HOME is set to an invalid directory. >&2
+echo JAVA_HOME = "%JAVA_HOME%" >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+@REM ==== END VALIDATION ====
+
+:init
+
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
+@REM Fallback to current working directory if not found.
+
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
+
+set EXEC_DIR=%CD%
+set WDIR=%EXEC_DIR%
+:findBaseDir
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
+cd ..
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
+set WDIR=%CD%
+goto findBaseDir
+
+:baseDirFound
+set MAVEN_PROJECTBASEDIR=%WDIR%
+cd "%EXEC_DIR%"
+goto endDetectBaseDir
+
+:baseDirNotFound
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
+cd "%EXEC_DIR%"
+
+:endDetectBaseDir
+
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
+
+@setlocal EnableExtensions EnableDelayedExpansion
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
+
+:endReadAdditionalConfig
+
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+
+FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
+    IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
+)
+
+@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
+if exist %WRAPPER_JAR% (
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Found %WRAPPER_JAR%
+    )
+) else (
+    if not "%MVNW_REPOURL%" == "" (
+        SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    )
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Couldn't find %WRAPPER_JAR%, downloading it ...
+        echo Downloading from: %DOWNLOAD_URL%
+    )
+
+    powershell -Command "&{"^
+		"$webclient = new-object System.Net.WebClient;"^
+		"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
+		"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
+		"}"^
+		"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
+		"}"
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Finished downloading %WRAPPER_JAR%
+    )
+)
+@REM End of extension
+
+@REM Provide a "standardized" way to retrieve the CLI args that will
+@REM work with both Windows and non-Windows executions.
+set MAVEN_CMD_LINE_ARGS=%*
+
+%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
+if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
+:skipRcPost
+
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
+if "%MAVEN_BATCH_PAUSE%" == "on" pause
+
+if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
+
+exit /B %ERROR_CODE%
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/pom.xml
new file mode 100644
index 0000000..b996605
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/pom.xml
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.panzhihua</groupId>
+        <artifactId>zhihuishequ</artifactId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <groupId>com.panzhihua</groupId>
+    <artifactId>applets_backstage</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>applets_backstage</name>
+    <description>小程序后台管理</description>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-config</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>com.github.xiaoymin</groupId>
+            <artifactId>swagger-bootstrap-ui</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.panzhihua</groupId>
+            <artifactId>common</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.netflix.hystrix</groupId>
+            <artifactId>hystrix-javanica</artifactId>
+        </dependency>
+
+        <!--添加监控依赖包-->
+        <dependency>
+            <groupId>io.micrometer</groupId>
+            <artifactId>micrometer-registry-prometheus</artifactId>
+        </dependency>
+        <dependency>
+            <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>
+        <dependency>
+            <groupId>com.github.penggle</groupId>
+            <artifactId>kaptcha</artifactId>
+            <version>2.3.2</version>
+        </dependency>
+
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>2.5.0</version>
+                <configuration>
+                    <mainClass>com.panzhihua.applets_backstage.AppletsBackstageApplication</mainClass>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>docker-maven-plugin</artifactId>
+                <version>1.2.0</version>
+                <configuration>
+                    <imageName>registry.cn-chengdu.aliyuncs.com/panzhihua/applets_backstage:v1</imageName>
+                    <serverId></serverId>
+                    <baseImage>java</baseImage>
+                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
+                    <resources>
+                        <resource>
+                            <targetPath>/</targetPath>
+                            <directory>${project.build.directory}</directory>
+                            <include>${project.build.finalName}.jar</include>
+                        </resource>
+                    </resources>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <repositories>
+        <repository>
+            <id>spring-snapshots</id>
+            <name>Spring Snapshots</name>
+            <url>https://repo.spring.io/snapshot</url>
+            <snapshots>
+                <enabled>true</enabled>
+            </snapshots>
+        </repository>
+        <repository>
+            <id>spring-milestones</id>
+            <name>Spring Milestones</name>
+            <url>https://repo.spring.io/milestone</url>
+        </repository>
+    </repositories>
+
+</project>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/AppletsBackstageApplication.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/AppletsBackstageApplication.java
new file mode 100644
index 0000000..d4ca382
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/AppletsBackstageApplication.java
@@ -0,0 +1,26 @@
+package com.panzhihua.applets_backstage;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.cloud.client.SpringCloudApplication;
+import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.EnableAspectJAutoProxy;
+
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+@EnableSwagger2
+@SpringCloudApplication
+@EnableCircuitBreaker
+@EnableEurekaClient
+@EnableFeignClients(basePackages = {"com.panzhihua.common.service"})
+@EnableAspectJAutoProxy(proxyTargetClass = true)
+@ComponentScan({"com.panzhihua.applets_backstage", "com.panzhihua.common"})
+public class AppletsBackstageApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(AppletsBackstageApplication.class, args);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/aop/OperLogAspect.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/aop/OperLogAspect.java
new file mode 100644
index 0000000..108e62c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/aop/OperLogAspect.java
@@ -0,0 +1,237 @@
+package com.panzhihua.applets_backstage.aop;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.lang.reflect.Method;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.annotation.AfterReturning;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Pointcut;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.springframework.stereotype.Component;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.context.request.RequestAttributes;
+import org.springframework.web.context.request.RequestContextHolder;
+
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.constants.TokenConstant;
+import com.panzhihua.common.interfaces.OperLog;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.user.SysOperLogVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.AES;
+import com.panzhihua.common.utlis.IPUtil;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * 切面处理类,操作日志异常日志记录处理
+ *
+ * @author wu
+ * @date 2019/03/21
+ */
+@Slf4j
+@Aspect
+@Component
+public class OperLogAspect {
+
+    @Resource
+    private UserService userService;
+
+    /**
+     * 设置操作日志切入点 记录操作日志 在注解的位置切入代码
+     */
+    @Pointcut("@annotation(com.panzhihua.common.interfaces.OperLog)")
+    public void operLogPoinCut() {}
+
+    // /**
+    // * 设置操作异常切入点记录异常日志 扫描所有controller包下操作
+    // */
+    // @Pointcut("execution(* com.hyd.zcar.cms.controller..*.*(..))")
+    // public void operExceptionLogPoinCut() {
+    // }
+
+    /**
+     * 正常返回通知,拦截用户操作日志,连接点正常执行完成后执行, 如果连接点抛出异常,则不会执行
+     *
+     * @param joinPoint
+     *            切入点
+     * @param keys
+     *            返回结果
+     */
+    @AfterReturning(value = "operLogPoinCut()", returning = "keys")
+    public void saveOperLog(JoinPoint joinPoint, Object keys) {
+        log.info("进入切面");
+        // 获取RequestAttributes
+        RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
+        // 从获取RequestAttributes中获取HttpServletRequest的信息
+        HttpServletRequest request =
+            (HttpServletRequest)requestAttributes.resolveReference(RequestAttributes.REFERENCE_REQUEST);
+        // 登录对象信息
+        String userInfo = request.getHeader(TokenConstant.TOKEN_USERINFO);
+        boolean empty = ObjectUtils.isEmpty(userInfo);
+        if (empty) {
+            log.error("操作日志获取登录用户信息失败【{}】", joinPoint);
+            return;
+        }
+        byte[] bytes = AES.parseHexStr2Byte(userInfo);
+        byte[] decrypt = AES.decrypt(bytes, Constants.AES_KEY);
+        userInfo = new String(decrypt);
+        LoginUserInfoVO loginUserInfoVO = JSONObject.parseObject(userInfo, LoginUserInfoVO.class);
+
+        SysOperLogVO operlog = new SysOperLogVO();
+        try {
+
+            // 从切面织入点处通过反射机制获取织入点处的方法
+            MethodSignature signature = (MethodSignature)joinPoint.getSignature();
+            // 获取切入点所在的方法
+            Method method = signature.getMethod();
+            // 获取操作
+            OperLog opLog = method.getAnnotation(OperLog.class);
+            if (opLog != null) {
+                String operModul = opLog.operModul();
+                int operType = opLog.operType();
+                operlog.setTitle(operModul); // 操作模块
+                operlog.setBusinessType(operType); // 操作类型
+            }
+            // 获取请求的类名
+            String className = joinPoint.getTarget().getClass().getName();
+            // 获取请求的方法名
+            String methodName = method.getName();
+            methodName = className + "." + methodName;
+
+            operlog.setMethod(methodName); // 请求方法
+
+            if (joinPoint.getArgs().length > 0) {
+                for (Object o : joinPoint.getArgs()) {
+                    if (o instanceof HttpServletRequest || o instanceof HttpServletResponse|| o instanceof MultipartFile) {
+                        continue;
+                    }
+                    operlog.setOperParam(JSONObject.toJSONString(o)); // 请求参数
+                }
+            }
+
+            operlog.setJsonResult(JSONObject.toJSONString(keys)); // 返回结果
+            operlog.setAccount(loginUserInfoVO.getAccount());
+            operlog.setOperName(loginUserInfoVO.getName()); // 请求用户名称
+            operlog.setOperIp(IPUtil.getIpAddress(request)); // 请求IP
+            operlog.setOperUrl(request.getRequestURI()); // 请求URI
+            operlog.setRequestMethod(request.getMethod());
+            operlog.setOperLocation(IPUtil.getIpBelongAddress(request));
+            operlog.setOperTime(new Date()); // 创建时间
+            operlog.setAccount(loginUserInfoVO.getAccount());
+            Long communityId = loginUserInfoVO.getCommunityId();
+            operlog.setAreaCode(communityId==0 ? "510423" : loginUserInfoVO.getAreaCode());
+            operlog.setCommunityId(null == communityId ? 0 : communityId);
+            userService.addOperLog(operlog);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    // /**
+    // * 异常返回通知,用于拦截异常日志信息 连接点抛出异常后执行
+    // *
+    // * @param joinPoint 切入点
+    // * @param e 异常信息
+    // */
+    // @AfterThrowing(pointcut = "operExceptionLogPoinCut()", throwing = "e")
+    // public void saveExceptionLog(JoinPoint joinPoint, Throwable e) {
+    // // 获取RequestAttributes
+    // RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
+    // // 从获取RequestAttributes中获取HttpServletRequest的信息
+    // HttpServletRequest request = (HttpServletRequest) requestAttributes
+    // .resolveReference(RequestAttributes.REFERENCE_REQUEST);
+    //
+    // ExceptionLog excepLog = new ExceptionLog();
+    // try {
+    // // 从切面织入点处通过反射机制获取织入点处的方法
+    // MethodSignature signature = (MethodSignature) joinPoint.getSignature();
+    // // 获取切入点所在的方法
+    // Method method = signature.getMethod();
+    // excepLog.setExcId(UuidUtil.get32UUID());
+    // // 获取请求的类名
+    // String className = joinPoint.getTarget().getClass().getName();
+    // // 获取请求的方法名
+    // String methodName = method.getName();
+    // methodName = className + "." + methodName;
+    // // 请求的参数
+    // Map<String, String> rtnMap = converMap(request.getParameterMap());
+    // // 将参数所在的数组转换成json
+    // String params = JSON.toJSONString(rtnMap);
+    // excepLog.setExcRequParam(params); // 请求参数
+    // excepLog.setOperMethod(methodName); // 请求方法名
+    // excepLog.setExcName(e.getClass().getName()); // 异常名称
+    // excepLog.setExcMessage(stackTraceToString(e.getClass().getName(), e.getMessage(), e.getStackTrace())); // 异常信息
+    // excepLog.setOperUserId(UserShiroUtil.getCurrentUserLoginName()); // 操作员ID
+    // excepLog.setOperUserName(UserShiroUtil.getCurrentUserName()); // 操作员名称
+    // excepLog.setOperUri(request.getRequestURI()); // 操作URI
+    // excepLog.setOperIp(IPUtil.getRemortIP(request)); // 操作员IP
+    // excepLog.setOperVer(operVer); // 操作版本号
+    // excepLog.setOperCreateTime(new Date()); // 发生异常时间
+    //
+    // exceptionLogService.insert(excepLog);
+    //
+    // } catch (Exception e2) {
+    // e2.printStackTrace();
+    // }
+    //
+    // }
+
+    /**
+     * 转换request 请求参数
+     *
+     * @param paramMap
+     *            request获取的参数数组
+     */
+    public Map<String, String> converMap(Map<String, String[]> paramMap) {
+        Map<String, String> rtnMap = new HashMap<String, String>();
+        for (String key : paramMap.keySet()) {
+            rtnMap.put(key, paramMap.get(key)[0]);
+        }
+        return rtnMap;
+    }
+
+    private String getPostData(HttpServletRequest request) {
+        StringBuffer data = new StringBuffer();
+        String line = null;
+        BufferedReader reader = null;
+        try {
+            reader = request.getReader();
+            while (null != (line = reader.readLine()))
+                data.append(line);
+        } catch (IOException e) {
+        } finally {
+        }
+        return data.toString();
+    }
+
+    /**
+     * 转换异常信息为字符串
+     *
+     * @param exceptionName
+     *            异常名称
+     * @param exceptionMessage
+     *            异常信息
+     * @param elements
+     *            堆栈信息
+     */
+    public String stackTraceToString(String exceptionName, String exceptionMessage, StackTraceElement[] elements) {
+        StringBuffer strbuff = new StringBuffer();
+        for (StackTraceElement stet : elements) {
+            strbuff.append(stet + "\n");
+        }
+        String message = exceptionName + ":" + exceptionMessage + "\n\t" + strbuff.toString();
+        return message;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ActDynTypeApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ActDynTypeApi.java
new file mode 100644
index 0000000..8e694cb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ActDynTypeApi.java
@@ -0,0 +1,135 @@
+package com.panzhihua.applets_backstage.api;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.vos.community.ComActDynVO;
+import io.swagger.annotations.ApiImplicitParam;
+import org.springframework.util.ObjectUtils;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+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.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.AddComActDynTypeDTO;
+import com.panzhihua.common.model.dtos.community.EditComActDynTypeDTO;
+import com.panzhihua.common.model.dtos.community.PageComActDynTypeDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActDynTypeVO;
+import com.panzhihua.common.service.community.CommunityService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+@Api(tags = {"花城资讯模块"})
+@RestController
+@RequestMapping("/dyn")
+public class ActDynTypeApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "分页查询花城资讯分类列表", response = ComActDynTypeVO.class)
+    @PostMapping("/type/page")
+    public R page(@RequestBody PageComActDynTypeDTO comActDynTypeDTO) {
+        comActDynTypeDTO.setCommunityId("0");
+        return communityService.pageDynTypeByAdmin(comActDynTypeDTO);
+    }
+
+    @ApiOperation(value = "查询花城资讯分类列表", response = ComActDynTypeVO.class)
+    @PostMapping("/type/list")
+    public R list(@RequestBody PageComActDynTypeDTO comActDynTypeDTO) {
+        comActDynTypeDTO.setCommunityId("0");
+        return communityService.getDynTypeListByAdmin(comActDynTypeDTO);
+    }
+
+    @ApiOperation(value = "新增花城资讯分类")
+    @PostMapping("/type/add")
+    public R add(@Validated @RequestBody AddComActDynTypeDTO comActDynTypeDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        comActDynTypeDTO.setCommunityId(0L);
+        comActDynTypeDTO.setUserId(loginUserInfo.getUserId());
+        return communityService.addDynTypeByAdmin(comActDynTypeDTO);
+    }
+
+    @ApiOperation(value = "编辑花城资讯分类")
+    @PostMapping("/type/edit")
+    public R add(@Validated @RequestBody EditComActDynTypeDTO comActDynTypeDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        comActDynTypeDTO.setUserId(loginUserInfo.getUserId());
+        return communityService.editDynTypeByAdmin(comActDynTypeDTO);
+    }
+
+    @ApiOperation(value = "删除花城资讯分类")
+    @PostMapping("/type/delete")
+    public R delete(@RequestBody List<Long> ids) {
+        if (ids == null || ids.size() <= 0) {
+            return R.fail("参数错误");
+        }
+        return communityService.deleteDynTypeByAdmin(ids);
+    }
+
+    @ApiOperation(value = "分页查询花城资讯", response = ComActDynVO.class)
+    @PostMapping("/pagedynamic")
+    public R pageDynamic(@RequestBody ComActDynVO comActDynVO) {
+        comActDynVO.setCommunityId("0");
+        return communityService.pageDynamicByAdmin(comActDynVO);
+    }
+
+    @ApiOperation(value = "花城资讯详情", response = ComActDynVO.class)
+    @GetMapping("/detaildynamic")
+    @ApiImplicitParam(name = "id", value = "花城资讯主键", required = true)
+    public R detailDynamic(@RequestParam("id") Long id) {
+        return communityService.detailDynamic(id);
+    }
+
+    @ApiOperation(value = "删除花城资讯")
+    @DeleteMapping("/dynamic")
+    public R deleteDynamic(@RequestBody ComActDynVO comActDynVO) {
+        Long id = comActDynVO.getId();
+        if (ObjectUtils.isEmpty(id)) {
+            return R.fail("花城资讯主键不能为空");
+        }
+        return communityService.deleteDynamic(comActDynVO);
+    }
+
+    @ApiOperation(value = "编辑花城资讯、取消置顶、设置置顶")
+    @PutMapping("/dynamic")
+    public R putDynamic(@RequestBody ComActDynVO comActDynVO) {
+        Long id = comActDynVO.getId();
+        if (ObjectUtils.isEmpty(id)) {
+            return R.fail("花城资讯主键不能为空");
+        }
+        comActDynVO.setCommunityId("0");
+        return communityService.putDynamic(comActDynVO);
+    }
+
+    @ApiOperation(value = "新增花城资讯")
+    @PostMapping("/dynamic")
+    public R addDynamic(@RequestBody ComActDynVO comActDynVO) {
+        comActDynVO.setCommunityId("0");
+        Date publishAt = comActDynVO.getPublishAt();
+        if (null == publishAt) {
+            publishAt = new Date();
+            comActDynVO.setPublishAt(publishAt);
+        }
+        long time = publishAt.getTime();
+        long l = System.currentTimeMillis();
+        if (l >= time) {
+            comActDynVO.setStatus(1);
+        }
+        return communityService.addDynamic(comActDynVO);
+    }
+
+}
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
new file mode 100644
index 0000000..6728a2a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/AdvertisingManagementApi.java
@@ -0,0 +1,178 @@
+package com.panzhihua.applets_backstage.api;
+
+import java.io.InputStream;
+import java.util.UUID;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
+import com.panzhihua.applets_backstage.config.MinioUtil;
+import com.panzhihua.common.utlis.MimeTypeUtils;
+import org.apache.commons.io.FilenameUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.util.ObjectUtils;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import com.panzhihua.common.constants.FtpConstants;
+import com.panzhihua.common.interfaces.OperLog;
+import com.panzhihua.common.model.dtos.advertisement.ComOpsAdvDTO;
+import com.panzhihua.common.model.dtos.advertisement.PageComOpsAdvDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.advertisement.ComOpsAdvJumpVO;
+import com.panzhihua.common.model.vos.advertisement.ComOpsAdvPosVO;
+import com.panzhihua.common.model.vos.advertisement.ComOpsAdvVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.SFTPUtil;
+import com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+import static com.panzhihua.common.utlis.FileTypeUploadUtils.assertAllowed;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 广告管理
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-04 09:28
+ **/
+@Slf4j
+@Api(tags = {"广告管理"})
+@RestController
+@RequestMapping("/advertisingmanagement/")
+public class AdvertisingManagementApi {
+    @Resource
+    private CommunityService communityService;
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+    @Value("${ftp.url}")
+    private String url;
+
+    @Resource
+    private MinioUtil minioUtil;
+
+    @ApiOperation("新增广告")
+    @PostMapping("advertisement")
+    @OperLog(operModul = "广告管理", operType = 1)
+    public R addAdvertisement(@RequestBody @Validated(AddGroup.class) ComOpsAdvDTO comOpsAdvDTO) {
+        Integer linkType = comOpsAdvDTO.getLinkType();
+        if (linkType.intValue() == 1) {
+            Long jumpId = comOpsAdvDTO.getJumpId();
+            if (null == jumpId || 0 == jumpId.intValue()) {
+                return R.fail("跳转内容不能为空");
+            }
+        } else {
+            String jumpUrl = comOpsAdvDTO.getJumpUrl();
+            if (ObjectUtils.isEmpty(jumpUrl)) {
+                return R.fail("跳转url地址不能为空");
+            }
+            comOpsAdvDTO.setJumpId(null);
+        }
+        return communityService.addAdvertisement(comOpsAdvDTO);
+    }
+
+    @ApiOperation("编辑广告")
+    @PutMapping("advertisement")
+    @OperLog(operModul = "广告管理", operType = 2)
+    public R putAdvertisement(@RequestBody ComOpsAdvDTO comOpsAdvDTO) {
+        Long posId = comOpsAdvDTO.getPosId();
+        if (null != posId && posId == 0) {
+            comOpsAdvDTO.setPosId(null);
+        }
+        Long id = comOpsAdvDTO.getId();
+        if (null == id || id.intValue() == 0) {
+            return R.fail("广告主键不能为空");
+        }
+        Integer linkType = comOpsAdvDTO.getLinkType();
+        if (linkType.intValue() == 1) {
+            Long jumpId = comOpsAdvDTO.getJumpId();
+            if (null == jumpId || 0 == jumpId.intValue()) {
+                return R.fail("跳转内容不能为空");
+            }
+        } else {
+            String jumpUrl = comOpsAdvDTO.getJumpUrl();
+            if (ObjectUtils.isEmpty(jumpUrl)) {
+                return R.fail("跳转url地址不能为空");
+            }
+            comOpsAdvDTO.setJumpId(null);
+        }
+        return communityService.putAdvertisement(comOpsAdvDTO);
+    }
+
+    @ApiOperation(value = "广告位置下拉列表", response = ComOpsAdvPosVO.class)
+    @GetMapping("listadvpos")
+    public R listadvpos() {
+        return communityService.listAdvpos();
+    }
+
+    @ApiOperation(value = "跳转内容下拉列表", response = ComOpsAdvJumpVO.class)
+    @GetMapping("listadvjump")
+    public R listadvjump() {
+        return communityService.listAdvjump();
+    }
+
+    @ApiOperation(value = "分页查询广告", response = ComOpsAdvVO.class)
+    @PostMapping("pageadvertisement")
+    public R pageAdvertisement(@RequestBody PageComOpsAdvDTO pageComOpsAdvDTO) {
+        return communityService.pageAdvertisement(pageComOpsAdvDTO);
+    }
+
+    @ApiOperation(value = "广告详情", response = ComOpsAdvVO.class)
+    @GetMapping("advertisement")
+    public R detailAdvertisement(@RequestParam("id") Long id) {
+        return communityService.detailAdvertisement(id);
+    }
+
+    @ApiOperation(value = "上传照片")
+    @PostMapping(value = "uploadimage", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R uploadImage(@RequestParam MultipartFile file, HttpServletRequest request) {
+        String name = file.getOriginalFilename();
+        name = UUID.randomUUID().toString().replaceAll("-", "") + ".jpg";
+        try {
+            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+            sftp.login();
+            InputStream is = file.getInputStream();
+            sftp.uploadMore(FtpConstants.FTPFILEPATH_IDCARD, name, is);
+            sftp.logout();
+            return R.ok(url + "/idcard/" + name);
+        } catch (Exception e) {
+            log.error("上传照片失败【{}】", e.getMessage());
+            return R.fail();
+        }
+
+    }
+
+    @ApiOperation(value = "新上传照片接口")
+    @PostMapping(value = "/uploadimages", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R uploadImages(@RequestParam MultipartFile file, HttpServletRequest request) {
+        try {
+            assertAllowed(file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION);
+            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) {
+        return communityService.deleteAdvertisement(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComBatteryCommodityActivityApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComBatteryCommodityActivityApi.java
new file mode 100644
index 0000000..c841551
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComBatteryCommodityActivityApi.java
@@ -0,0 +1,106 @@
+package com.panzhihua.applets_backstage.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.common.AddComBatteryCommodityActivityDto;
+import com.panzhihua.common.model.dtos.common.EditComBatteryCommodityActivityDto;
+import com.panzhihua.common.model.dtos.common.PageComBatteryCommodityActivityDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.common.ComBatteryCommodityActivityVo;
+import com.panzhihua.common.service.community.ComBatteryCommodityActivityFeign;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * title: 电动车商城-商家活动表(ComBatteryCommodityActivity)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商家活动表
+ *
+ * @author lyq
+ * @date 2022-03-29 13:17:38
+ */
+@Slf4j
+@Api(tags = {"电动车商城-活动管理"})
+@RestController
+@RequestMapping("/comBatteryCommodityActivity")
+public class ComBatteryCommodityActivityApi extends BaseController {
+
+    @Resource
+    private ComBatteryCommodityActivityFeign comBatteryCommodityActivityService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommodityActivity 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-03-29 13:17:38
+     */
+    @ApiOperation(value = "分页查询活动列表",response = ComBatteryCommodityActivityVo.class)
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComBatteryCommodityActivityDto comBatteryCommodityActivity) {
+        return this.comBatteryCommodityActivityService.queryByPage(comBatteryCommodityActivity);
+    }
+
+    /**
+     * description  deleteById  删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-29 13:17:38
+     */
+    @ApiOperation(value = "删除活动")
+    @GetMapping("/delete")
+    public R deleteById(@RequestParam("id") Long id) {
+        return this.comBatteryCommodityActivityService.deleteById(id);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 13:17:38
+     */
+    @ApiOperation(value = "查询活动详情",response = ComBatteryCommodityActivityVo.class)
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comBatteryCommodityActivityService.detailById(id,0L);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommodityActivity 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 13:17:38
+     */
+    @ApiOperation(value = "查询活动列表",response = ComBatteryCommodityActivityVo.class)
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComBatteryCommodityActivityDto comBatteryCommodityActivity) {
+        return this.comBatteryCommodityActivityService.queryByList(comBatteryCommodityActivity);
+    }
+
+    /**
+     * 修改活动状态
+     * @param id    活动id
+     * @param status    状态
+     * @return  修改结果
+     */
+    @ApiOperation(value = "修改活动状态")
+    @GetMapping("/updateStatus")
+    public R updateStatus(@RequestParam("id") Long id,@RequestParam("status") Integer status) {
+        return this.comBatteryCommodityActivityService.updateStatus(id,status);
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComBatteryCommodityApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComBatteryCommodityApi.java
new file mode 100644
index 0000000..5f84bd7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComBatteryCommodityApi.java
@@ -0,0 +1,105 @@
+package com.panzhihua.applets_backstage.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.common.AddComBatteryCommodityDto;
+import com.panzhihua.common.model.dtos.common.EditComBatteryCommodityDto;
+import com.panzhihua.common.model.dtos.common.PageComBatteryCommodityDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.common.ComBatteryCommodityVo;
+import com.panzhihua.common.service.community.ComBatteryCommodityFeign;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * title: 电动车商城-商品表(ComBatteryCommodity)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商品表
+ *
+ * @author lyq
+ * @date 2022-03-28 14:59:58
+ */
+@Slf4j
+@Api(tags = {"电动车商城-商品管理"})
+@RestController
+@RequestMapping("/comBatteryCommodity")
+public class ComBatteryCommodityApi extends BaseController {
+
+    @Resource
+    private ComBatteryCommodityFeign comBatteryCommodityService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommodity 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-03-28 14:59:58
+     */
+    @ApiOperation(value = "分页查询商品列表",response = ComBatteryCommodityVo.class)
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComBatteryCommodityDto comBatteryCommodity) {
+        return this.comBatteryCommodityService.queryByPage(comBatteryCommodity);
+    }
+
+    /**
+     * description  deleteById  删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-28 14:59:58
+     */
+    @ApiOperation(value = "删除商品")
+    @GetMapping("/delete")
+    public R deleteById(@RequestParam("id") Long id) {
+        return this.comBatteryCommodityService.deleteById(id);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-28 14:59:58
+     */
+    @ApiOperation(value = "查询商品详情",response = ComBatteryCommodityVo.class)
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comBatteryCommodityService.detailById(id);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommodity 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-28 14:59:58
+     */
+    @ApiOperation(value = "查询商品列表",response = ComBatteryCommodityVo.class)
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComBatteryCommodityDto comBatteryCommodity) {
+        return this.comBatteryCommodityService.queryByList(comBatteryCommodity);
+    }
+
+    /**
+     * 修改商品状态
+     * @param id    商品id
+     * @param status    商品状态
+     * @return  修改结果
+     */
+    @ApiOperation(value = "修改商品状态")
+    @GetMapping("/updateStatus")
+    public R updateStatus(@RequestParam("id") Long id,@RequestParam("status") Integer status) {
+        return this.comBatteryCommodityService.updateStatus(id,status);
+    }
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComBatteryCommodityOrderApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComBatteryCommodityOrderApi.java
new file mode 100644
index 0000000..ca8eeca
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComBatteryCommodityOrderApi.java
@@ -0,0 +1,86 @@
+package com.panzhihua.applets_backstage.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.common.EditOrderAddressDto;
+import com.panzhihua.common.model.dtos.common.PageComBatteryCommodityOrderDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.common.ComBatteryCommodityOrderVo;
+import com.panzhihua.common.service.community.ComBatteryCommodityOrderFeign;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * title: 电动车商城-订单表(ComBatteryCommodityOrder)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-订单表
+ *
+ * @author lyq
+ * @date 2022-03-29 16:05:04
+ */
+@Slf4j
+@Api(tags = {"电动车商城-订单管理"})
+@RestController
+@RequestMapping("/comBatteryCommodityOrder")
+public class ComBatteryCommodityOrderApi extends BaseController {
+
+    @Resource
+    private ComBatteryCommodityOrderFeign comBatteryCommodityOrderService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommodityOrder 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-03-29 16:05:04
+     */
+    @ApiOperation(value = "分页查询订单列表",response = ComBatteryCommodityOrderVo.class)
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComBatteryCommodityOrderDto comBatteryCommodityOrder) {
+        comBatteryCommodityOrder.setIsAdmin(1);
+        return this.comBatteryCommodityOrderService.queryByPage(comBatteryCommodityOrder);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 16:05:04
+     */
+    @ApiOperation(value = "查询订单详情",response = ComBatteryCommodityOrderVo.class)
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comBatteryCommodityOrderService.detailById(id);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommodityOrder 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 16:05:04
+     */
+    @ApiOperation(value = "查询订单列表",response = ComBatteryCommodityOrderVo.class)
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComBatteryCommodityOrderDto comBatteryCommodityOrder) {
+        return this.comBatteryCommodityOrderService.queryByList(comBatteryCommodityOrder);
+    }
+
+    @ApiOperation(value = "修改订单收货地址")
+    @PutMapping("/update/address")
+    public R updateOrderAddress(@RequestBody EditOrderAddressDto editOrderAddressDto) {
+        return this.comBatteryCommodityOrderService.updateOrderAddress(editOrderAddressDto);
+    }
+
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComBatteryStoreApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComBatteryStoreApi.java
new file mode 100644
index 0000000..d7e2f62
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComBatteryStoreApi.java
@@ -0,0 +1,137 @@
+package com.panzhihua.applets_backstage.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.common.AddComBatteryStoreDto;
+import com.panzhihua.common.model.dtos.common.EditComBatteryStoreDto;
+import com.panzhihua.common.model.dtos.common.PageComBatteryStoreDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.common.ComBatteryStoreVo;
+import com.panzhihua.common.service.community.ComBatteryStoreFeign;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * title: 电动车商城-商家表(ComBatteryStore)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商家表
+ *
+ * @author lyq
+ * @date 2022-03-28 13:44:43
+ */
+@Slf4j
+@Api(tags = {"电动车商城-商家管理"})
+@RestController
+@RequestMapping("/comBatteryStore")
+public class ComBatteryStoreApi extends BaseController {
+
+    @Resource
+    private ComBatteryStoreFeign comBatteryStoreService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryStore 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-03-28 13:44:43
+     */
+    @ApiOperation(value = "分页查询商家列表",response = ComBatteryStoreVo.class)
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComBatteryStoreDto comBatteryStore) {
+        return this.comBatteryStoreService.queryByPage(comBatteryStore);
+    }
+
+    /**
+     * description  add  新增数据
+     *
+     * @param comBatteryStore 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-28 13:44:43
+     */
+    @ApiOperation(value = "新增商家")
+    @PostMapping("/add")
+    public R add(@RequestBody AddComBatteryStoreDto comBatteryStore) {
+        comBatteryStore.setCreateAt(new Date());
+        comBatteryStore.setCreateBy(this.getUserId());
+        return this.comBatteryStoreService.insert(comBatteryStore);
+    }
+
+    /**
+     * description  edit  编辑数据
+     *
+     * @param comBatteryStore 请求参数
+     * @return 编辑结果
+     * @author lyq
+     * @date 2022-03-28 13:44:43
+     */
+    @ApiOperation(value = "修改商家")
+    @PutMapping("/edit")
+    public R edit(@RequestBody EditComBatteryStoreDto comBatteryStore) {
+        comBatteryStore.setUpdateAt(new Date());
+        comBatteryStore.setUpdateBy(this.getUserId());
+        return this.comBatteryStoreService.update(comBatteryStore);
+    }
+
+    /**
+     * description  deleteById  删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-28 13:44:43
+     */
+    @ApiOperation(value = "删除商家")
+    @GetMapping("/delete")
+    public R deleteById(@RequestParam("id") Long id) {
+        return this.comBatteryStoreService.deleteById(id);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-28 13:44:43
+     */
+    @ApiOperation(value = "查询商家详情",response = ComBatteryStoreVo.class)
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comBatteryStoreService.detailById(id);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryStore 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-28 13:44:43
+     */
+    @ApiOperation(value = "查询商家列表",response = ComBatteryStoreVo.class)
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComBatteryStoreDto comBatteryStore) {
+        return this.comBatteryStoreService.queryByList(comBatteryStore);
+    }
+
+    /**
+     * 修改电动车商家后台用户密码
+     * @param storeId  商家后台用户id
+     * @param passWord  用户需要修改的密码
+     * @return  重置密码结果
+     */
+    @ApiOperation(value = "修改商家密码")
+    @GetMapping("/resetPassword")
+    public R resetPassword(@RequestParam("storeId") Long storeId,@RequestParam("passWord") String passWord) {
+        return this.comBatteryStoreService.resetPassword(storeId,passWord);
+    }
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComChangeCarBrandApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComChangeCarBrandApi.java
new file mode 100644
index 0000000..1392d22
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComChangeCarBrandApi.java
@@ -0,0 +1,129 @@
+package com.panzhihua.applets_backstage.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.common.AddComChangeCarBrandDto;
+import com.panzhihua.common.model.dtos.common.EditComChangeCarBrandDto;
+import com.panzhihua.common.model.dtos.common.PageComChangeCarBrandDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.common.ComChangeCarBrandVo;
+import com.panzhihua.common.service.community.ComChangeCarBrandFeign;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * title: 换新车-品牌表(ComChangeCarBrand)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-品牌表
+ *
+ * @author lyq
+ * @date 2022-04-07 13:37:22
+ */
+@Slf4j
+@Api(tags = {"换新车-品牌管理"})
+@RestController
+@RequestMapping("/comChangeCarBrand")
+public class ComChangeCarBrandApi extends BaseController {
+
+    @Resource
+    private ComChangeCarBrandFeign comChangeCarBrandService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comChangeCarBrand 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-04-07 13:37:22
+     */
+    @ApiOperation(value = "分页查询品牌列表",response = ComChangeCarBrandVo.class)
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComChangeCarBrandDto comChangeCarBrand) {
+        return this.comChangeCarBrandService.queryByPage(comChangeCarBrand);
+    }
+
+    /**
+     * description  add  新增数据
+     *
+     * @param comChangeCarBrand 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-04-07 13:37:22
+     */
+    @ApiOperation(value = "新增品牌")
+    @PostMapping("/add")
+    public R add(@RequestBody AddComChangeCarBrandDto comChangeCarBrand) {
+        Date nowDate = new Date();
+        comChangeCarBrand.setCreateAt(nowDate);
+        comChangeCarBrand.setCreateBy(this.getUserId());
+        comChangeCarBrand.setUpdateAt(nowDate);
+        comChangeCarBrand.setUpdateBy(this.getUserId());
+        return this.comChangeCarBrandService.insert(comChangeCarBrand);
+    }
+
+    /**
+     * description  edit  编辑数据
+     *
+     * @param comChangeCarBrand 请求参数
+     * @return 编辑结果
+     * @author lyq
+     * @date 2022-04-07 13:37:22
+     */
+    @ApiOperation(value = "编辑品牌")
+    @PutMapping("/edit")
+    public R edit(@RequestBody EditComChangeCarBrandDto comChangeCarBrand) {
+        comChangeCarBrand.setUpdateAt(new Date());
+        comChangeCarBrand.setUpdateBy(this.getUserId());
+        return this.comChangeCarBrandService.update(comChangeCarBrand);
+    }
+
+    /**
+     * description  deleteById  删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-04-07 13:37:22
+     */
+    @ApiOperation(value = "删除品牌")
+    @GetMapping("/delete")
+    public R deleteById(@RequestParam("id") Long id) {
+        return this.comChangeCarBrandService.deleteById(id);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-07 13:37:22
+     */
+    @ApiOperation(value = "查询品牌详情",response = ComChangeCarBrandVo.class)
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comChangeCarBrandService.detailById(id);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comChangeCarBrand 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-04-07 13:37:22
+     */
+    @ApiOperation(value = "查询品牌列表",response = ComChangeCarBrandVo.class)
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComChangeCarBrandDto comChangeCarBrand) {
+        return this.comChangeCarBrandService.queryByList(comChangeCarBrand);
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComChangeCarInquiryApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComChangeCarInquiryApi.java
new file mode 100644
index 0000000..1a26392
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComChangeCarInquiryApi.java
@@ -0,0 +1,80 @@
+package com.panzhihua.applets_backstage.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.common.AddComChangeCarInquiryDto;
+import com.panzhihua.common.model.dtos.common.EditComChangeCarInquiryDto;
+import com.panzhihua.common.model.dtos.common.PageComChangeCarInquiryDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.common.ComChangeCarInquiryVo;
+import com.panzhihua.common.service.community.ComChangeCarInquiryFeign;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * title: 换新车-分期询价表(ComChangeCarInquiry)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-分期询价表
+ *
+ * @author lyq
+ * @date 2022-04-07 13:39:06
+ */
+@Slf4j
+@Api(tags = {"换新车-分期询价管理"})
+@RestController
+@RequestMapping("/comChangeCarInquiry")
+public class ComChangeCarInquiryApi extends BaseController {
+
+    @Resource
+    private ComChangeCarInquiryFeign comChangeCarInquiryService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comChangeCarInquiry 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-04-07 13:39:06
+     */
+    @ApiOperation(value = "分页查询分期询价列表",response = ComChangeCarInquiryVo.class)
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComChangeCarInquiryDto comChangeCarInquiry) {
+        return this.comChangeCarInquiryService.queryByPage(comChangeCarInquiry);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-07 13:39:06
+     */
+    @ApiOperation(value = "查询分期询价详情",response = ComChangeCarInquiryVo.class)
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comChangeCarInquiryService.detailById(id);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comChangeCarInquiry 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-04-07 13:39:06
+     */
+    @ApiOperation(value = "查询分期询价列表",response = ComChangeCarInquiryVo.class)
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComChangeCarInquiryDto comChangeCarInquiry) {
+        return this.comChangeCarInquiryService.queryByList(comChangeCarInquiry);
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComChangeCarModelApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComChangeCarModelApi.java
new file mode 100644
index 0000000..1c8b194
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComChangeCarModelApi.java
@@ -0,0 +1,141 @@
+package com.panzhihua.applets_backstage.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.common.AddComChangeCarModelDto;
+import com.panzhihua.common.model.dtos.common.EditComChangeCarModelDto;
+import com.panzhihua.common.model.dtos.common.PageComChangeCarModelDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.common.ComChangeCarModelVo;
+import com.panzhihua.common.service.community.ComChangeCarModelFeign;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * title: 换新车-车型管理表(ComChangeCarModel)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-车型管理表
+ *
+ * @author lyq
+ * @date 2022-04-07 13:41:54
+ */
+@Slf4j
+@Api(tags = {"换新车-车型管理"})
+@RestController
+@RequestMapping("/comChangeCarModel")
+public class ComChangeCarModelApi extends BaseController {
+
+    @Resource
+    private ComChangeCarModelFeign comChangeCarModelService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comChangeCarModel 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-04-07 13:41:54
+     */
+    @ApiOperation(value = "分页查询车型管理列表",response = ComChangeCarModelVo.class)
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComChangeCarModelDto comChangeCarModel) {
+        return this.comChangeCarModelService.queryByPage(comChangeCarModel);
+    }
+
+    /**
+     * description  add  新增数据
+     *
+     * @param comChangeCarModel 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-04-07 13:41:54
+     */
+    @ApiOperation(value = "新增车型管理")
+    @PostMapping("/add")
+    public R add(@RequestBody AddComChangeCarModelDto comChangeCarModel) {
+        Date nowDate = new Date();
+        comChangeCarModel.setCreateAt(nowDate);
+        comChangeCarModel.setCreateBy(this.getUserId());
+        comChangeCarModel.setUpdateAt(nowDate);
+        comChangeCarModel.setUpdateBy(this.getUserId());
+        return this.comChangeCarModelService.insert(comChangeCarModel);
+    }
+
+    /**
+     * description  edit  编辑数据
+     *
+     * @param comChangeCarModel 请求参数
+     * @return 编辑结果
+     * @author lyq
+     * @date 2022-04-07 13:41:54
+     */
+    @ApiOperation(value = "修改车型管理")
+    @PutMapping("/edit")
+    public R edit(@RequestBody EditComChangeCarModelDto comChangeCarModel) {
+        comChangeCarModel.setUpdateAt(new Date());
+        comChangeCarModel.setUpdateBy(this.getUserId());
+        return this.comChangeCarModelService.update(comChangeCarModel);
+    }
+
+    /**
+     * description  deleteById  删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-04-07 13:41:54
+     */
+    @ApiOperation(value = "删除车型管理")
+    @GetMapping("/delete")
+    public R deleteById(@RequestParam("id") Long id) {
+        return this.comChangeCarModelService.deleteById(id);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-07 13:41:54
+     */
+    @ApiOperation(value = "查询车型管理详情",response = ComChangeCarModelVo.class)
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comChangeCarModelService.detailById(id);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comChangeCarModel 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-04-07 13:41:54
+     */
+    @ApiOperation(value = "查询车型管理列表",response = ComChangeCarModelVo.class)
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComChangeCarModelDto comChangeCarModel) {
+        return this.comChangeCarModelService.queryByList(comChangeCarModel);
+    }
+
+    /**
+     * 修改车型状态
+     * @param id    车型id
+     * @param status    车型状态
+     * @return  修改结果
+     */
+    @ApiOperation(value = "修改车型管理状态")
+    @GetMapping("/updateStatus")
+    public R updateStatus(@RequestParam("id") Long id,@RequestParam("status") Integer status) {
+        return this.comChangeCarModelService.updateStatus(id,status);
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComChangeCarModelRelationApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComChangeCarModelRelationApi.java
new file mode 100644
index 0000000..e5cebde
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComChangeCarModelRelationApi.java
@@ -0,0 +1,121 @@
+package com.panzhihua.applets_backstage.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.common.AddComChangeCarModelRelationDto;
+import com.panzhihua.common.model.dtos.common.EditComChangeCarModelRelationDto;
+import com.panzhihua.common.model.dtos.common.PageComChangeCarModelRelationDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.common.ComChangeCarModelRelationVo;
+import com.panzhihua.common.service.community.ComChangeCarModelRelationFeign;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * title: 换新车-车型与规格关联表(ComChangeCarModelRelation)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-车型与规格关联表
+ *
+ * @author lyq
+ * @date 2022-04-07 13:55:29
+ */
+@Slf4j
+@Api(tags = {"换新车-车型与规格关联管理"})
+@RestController
+@RequestMapping("/comChangeCarModelRelation")
+public class ComChangeCarModelRelationApi extends BaseController {
+
+    @Resource
+    private ComChangeCarModelRelationFeign comChangeCarModelRelationService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comChangeCarModelRelation 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-04-07 13:55:29
+     */
+    @ApiOperation(value = "分页查询车型与规格关联管理列表",response = ComChangeCarModelRelationVo.class)
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComChangeCarModelRelationDto comChangeCarModelRelation) {
+        return this.comChangeCarModelRelationService.queryByPage(comChangeCarModelRelation);
+    }
+
+    /**
+     * description  add  新增数据
+     *
+     * @param comChangeCarModelRelation 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-04-07 13:55:29
+     */
+    @ApiOperation(value = "新增车型与规格关联")
+    @PostMapping("/add")
+    public R add(@RequestBody AddComChangeCarModelRelationDto comChangeCarModelRelation) {
+        return this.comChangeCarModelRelationService.insert(comChangeCarModelRelation);
+    }
+
+    /**
+     * description  edit  编辑数据
+     *
+     * @param comChangeCarModelRelation 请求参数
+     * @return 编辑结果
+     * @author lyq
+     * @date 2022-04-07 13:55:29
+     */
+    @ApiOperation(value = "编辑车型与规格关联")
+    @PutMapping("/edit")
+    public R edit(@RequestBody EditComChangeCarModelRelationDto comChangeCarModelRelation) {
+        return this.comChangeCarModelRelationService.update(comChangeCarModelRelation);
+    }
+
+    /**
+     * description  deleteById  删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-04-07 13:55:29
+     */
+    @ApiOperation(value = "删除车型与规格关联")
+    @GetMapping("/delete")
+    public R deleteById(@RequestParam("id") Long id) {
+        return this.comChangeCarModelRelationService.deleteById(id);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-07 13:55:29
+     */
+    @ApiOperation(value = "查询车型与规格关联详情",response = ComChangeCarModelRelationVo.class)
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comChangeCarModelRelationService.detailById(id);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comChangeCarModelRelation 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-04-07 13:55:29
+     */
+    @ApiOperation(value = "查询车型与规格关联管理列表",response = ComChangeCarModelRelationVo.class)
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComChangeCarModelRelationDto comChangeCarModelRelation) {
+        return this.comChangeCarModelRelationService.queryByList(comChangeCarModelRelation);
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComChangeCarModelSpecsApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComChangeCarModelSpecsApi.java
new file mode 100644
index 0000000..cd427b9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComChangeCarModelSpecsApi.java
@@ -0,0 +1,129 @@
+package com.panzhihua.applets_backstage.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.common.AddComChangeCarModelSpecsDto;
+import com.panzhihua.common.model.dtos.common.EditComChangeCarModelSpecsDto;
+import com.panzhihua.common.model.dtos.common.PageComChangeCarModelSpecsDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.common.ComChangeCarModelSpecsVo;
+import com.panzhihua.common.service.community.ComChangeCarModelSpecsFeign;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * title: 换新车-车型规格表(ComChangeCarModelSpecs)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-车型规格表
+ *
+ * @author lyq
+ * @date 2022-04-07 13:55:31
+ */
+@Slf4j
+@Api(tags = {"换新车-车型规格管理"})
+@RestController
+@RequestMapping("/comChangeCarModelSpecs")
+public class ComChangeCarModelSpecsApi extends BaseController {
+
+    @Resource
+    private ComChangeCarModelSpecsFeign comChangeCarModelSpecsService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comChangeCarModelSpecs 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-04-07 13:55:31
+     */
+    @ApiOperation(value = "分页查询车型规格管理列表",response = ComChangeCarModelSpecsVo.class)
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComChangeCarModelSpecsDto comChangeCarModelSpecs) {
+        return this.comChangeCarModelSpecsService.queryByPage(comChangeCarModelSpecs);
+    }
+
+    /**
+     * description  add  新增数据
+     *
+     * @param comChangeCarModelSpecs 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-04-07 13:55:31
+     */
+    @ApiOperation(value = "新增车型规格")
+    @PostMapping("/add")
+    public R add(@RequestBody AddComChangeCarModelSpecsDto comChangeCarModelSpecs) {
+        Date nowDate = new Date();
+        comChangeCarModelSpecs.setCreateAt(nowDate);
+        comChangeCarModelSpecs.setCreateBy(this.getUserId());
+        comChangeCarModelSpecs.setUpdateAt(nowDate);
+        comChangeCarModelSpecs.setUpdateBy(this.getUserId());
+        return this.comChangeCarModelSpecsService.insert(comChangeCarModelSpecs);
+    }
+
+    /**
+     * description  edit  编辑数据
+     *
+     * @param comChangeCarModelSpecs 请求参数
+     * @return 编辑结果
+     * @author lyq
+     * @date 2022-04-07 13:55:31
+     */
+    @ApiOperation(value = "编辑车型规格")
+    @PutMapping("/edit")
+    public R edit(@RequestBody EditComChangeCarModelSpecsDto comChangeCarModelSpecs) {
+        comChangeCarModelSpecs.setUpdateAt(new Date());
+        comChangeCarModelSpecs.setUpdateBy(this.getUserId());
+        return this.comChangeCarModelSpecsService.update(comChangeCarModelSpecs);
+    }
+
+    /**
+     * description  deleteById  删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-04-07 13:55:31
+     */
+    @ApiOperation(value = "删除车型规格")
+    @GetMapping("/delete")
+    public R deleteById(@RequestParam("id") Long id) {
+        return this.comChangeCarModelSpecsService.deleteById(id);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-07 13:55:31
+     */
+    @ApiOperation(value = "查询车型规格管理详情",response = ComChangeCarModelSpecsVo.class)
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comChangeCarModelSpecsService.detailById(id);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comChangeCarModelSpecs 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-04-07 13:55:31
+     */
+    @ApiOperation(value = "查询车型规格管理列表",response = ComChangeCarModelSpecsVo.class)
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComChangeCarModelSpecsDto comChangeCarModelSpecs) {
+        return this.comChangeCarModelSpecsService.queryByList(comChangeCarModelSpecs);
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComChangeCarModelSpecsChildrenApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComChangeCarModelSpecsChildrenApi.java
new file mode 100644
index 0000000..0d1121f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComChangeCarModelSpecsChildrenApi.java
@@ -0,0 +1,121 @@
+package com.panzhihua.applets_backstage.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.common.AddComChangeCarModelSpecsChildrenDto;
+import com.panzhihua.common.model.dtos.common.EditComChangeCarModelSpecsChildrenDto;
+import com.panzhihua.common.model.dtos.common.PageComChangeCarModelSpecsChildrenDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.common.ComChangeCarModelSpecsChildrenVo;
+import com.panzhihua.common.service.community.ComChangeCarModelSpecsChildrenFeign;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * title: 换新车-车型子规格表(ComChangeCarModelSpecsChildren)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-车型子规格表
+ *
+ * @author lyq
+ * @date 2022-04-07 13:55:33
+ */
+@Slf4j
+@Api(tags = {"换新车-车型规格下子规格管理"})
+@RestController
+@RequestMapping("/comChangeCarModelSpecsChildren")
+public class ComChangeCarModelSpecsChildrenApi extends BaseController {
+
+    @Resource
+    private ComChangeCarModelSpecsChildrenFeign comChangeCarModelSpecsChildrenService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comChangeCarModelSpecsChildren 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-04-07 13:55:33
+     */
+    @ApiOperation(value = "分页查询车型规格下子规格管理列表",response = ComChangeCarModelSpecsChildrenVo.class)
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComChangeCarModelSpecsChildrenDto comChangeCarModelSpecsChildren) {
+        return this.comChangeCarModelSpecsChildrenService.queryByPage(comChangeCarModelSpecsChildren);
+    }
+
+    /**
+     * description  add  新增数据
+     *
+     * @param comChangeCarModelSpecsChildren 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-04-07 13:55:33
+     */
+    @ApiOperation(value = "新增车型规格下子规格",response = ComChangeCarModelSpecsChildrenVo.class)
+    @PostMapping("/add")
+    public R add(@RequestBody AddComChangeCarModelSpecsChildrenDto comChangeCarModelSpecsChildren) {
+        return this.comChangeCarModelSpecsChildrenService.insert(comChangeCarModelSpecsChildren);
+    }
+
+    /**
+     * description  edit  编辑数据
+     *
+     * @param comChangeCarModelSpecsChildren 请求参数
+     * @return 编辑结果
+     * @author lyq
+     * @date 2022-04-07 13:55:33
+     */
+    @ApiOperation(value = "编辑车型规格下子规格",response = ComChangeCarModelSpecsChildrenVo.class)
+    @PutMapping("/edit")
+    public R edit(@RequestBody EditComChangeCarModelSpecsChildrenDto comChangeCarModelSpecsChildren) {
+        return this.comChangeCarModelSpecsChildrenService.update(comChangeCarModelSpecsChildren);
+    }
+
+    /**
+     * description  deleteById  删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-04-07 13:55:33
+     */
+    @ApiOperation(value = "删除车型规格下子规格",response = ComChangeCarModelSpecsChildrenVo.class)
+    @GetMapping("/delete")
+    public R deleteById(@RequestParam("id") Long id) {
+        return this.comChangeCarModelSpecsChildrenService.deleteById(id);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-07 13:55:33
+     */
+    @ApiOperation(value = "查询车型规格下子规格详情",response = ComChangeCarModelSpecsChildrenVo.class)
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comChangeCarModelSpecsChildrenService.detailById(id);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comChangeCarModelSpecsChildren 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-04-07 13:55:33
+     */
+    @ApiOperation(value = "查询车型规格下子规格管理列表",response = ComChangeCarModelSpecsChildrenVo.class)
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComChangeCarModelSpecsChildrenDto comChangeCarModelSpecsChildren) {
+        return this.comChangeCarModelSpecsChildrenService.queryByList(comChangeCarModelSpecsChildren);
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComPropertyApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComPropertyApi.java
new file mode 100644
index 0000000..58a81da
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ComPropertyApi.java
@@ -0,0 +1,72 @@
+package com.panzhihua.applets_backstage.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.dtos.user.SysUserFeedbackDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComPropertyVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.user.UserService;
+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;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * @author zts
+ */
+@Slf4j
+@Api(tags = {"物业公司"})
+@RestController
+@RequestMapping("/comProperty")
+public class ComPropertyApi extends BaseController {
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private UserService userService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "物业公司列表",response = ComPropertyVO.class)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        commonPage.setParamId(this.getCommunityId());
+        return this.communityService.comPropertySelectAll(commonPage);
+    }
+
+    @ApiOperation(value = "物业公司详情", response = ComPropertyVO.class)
+    @ApiImplicitParam(name = "id", value = "物业公司id", required = true)
+    @GetMapping("detail")
+    public R detailProperty(@RequestParam("id") Long id) {
+        return this.communityService.detailProperty(id);
+    }
+
+    @ApiOperation("新增投诉建议或问题留言")
+    @PostMapping("addFeedBack")
+    public R addFeedBack(@RequestBody SysUserFeedbackDTO sysUserFeedbackDTO){
+        return userService.addFeedback(sysUserFeedbackDTO);
+    }
+
+/*    @ApiOperation("查看自己的投诉建议或问题留言记录")
+    @GetMapping("myFeedBack")
+    public R myFeedBack(@ApiParam("类型:1问题留言2投诉建议") @RequestParam(value = "type",required = false)Integer type){
+        return userService.myFeedBack(this.getLoginUserInfo().getUserId(),type);
+    }*/
+
+    @ApiOperation(value = "通知公告列表",response = ComPropertyVO.class)
+    @GetMapping("notice")
+    public R noticeList(@RequestParam("page")Integer page,@RequestParam("size")Integer size,@RequestParam("propertyId")Long propertyId){
+        return communityService.noticeList(page,size,propertyId);
+    }
+
+
+
+}
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
new file mode 100644
index 0000000..e9ca6cc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/CommonDataApi.java
@@ -0,0 +1,118 @@
+package com.panzhihua.applets_backstage.api;
+
+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.*;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.ComMngCarSaveDTO;
+import com.panzhihua.common.model.dtos.community.PageComMngCarDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngCarVO;
+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;
+
+/**
+ * @description: 社区管理基础数据库管理接口
+ * @author: Null
+ * @date: 2021/3/11 13:26
+ */
+@Slf4j
+@Api(tags = {"社区管理/基础数据库"})
+@RestController
+@RequestMapping("/common/data")
+public class CommonDataApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private UserService userService;
+
+    @Value("${excel.convenientUrl}")
+    private String excelConvenientUrl = "http://panzhihua.nhys.cdnhxx.com/web/bianminfuwudaoru.xlsx";
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+    @Value("${ftp.url}")
+    private String url;
+
+    @ApiOperation(value = "分页查询车辆管理列表", response = ComMngCarVO.class)
+    @PostMapping("/car/page")
+    public R pageQueryComMngCar(@RequestBody PageComMngCarDTO pageComMngCarDTO) {
+        return communityService.pageQueryComMngCar(pageComMngCarDTO);
+    }
+
+    @ApiOperation(value = "新增/编辑车辆信息")
+    @PostMapping("/car/save")
+    public R saveComMngCar(@RequestBody ComMngCarSaveDTO comMngCarSaveDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long userId = loginUserInfo.getUserId();
+        comMngCarSaveDTO.setCreateBy(userId);
+        return communityService.saveComMngCar(comMngCarSaveDTO);
+    }
+
+    @ApiOperation(value = "删除车辆信息")
+    @DeleteMapping("/car/delete")
+    public R deleteComMngCar(@RequestParam(value = "id") Long id) {
+        return communityService.deleteComMngCar(id);
+    }
+
+    @ApiOperation(value = "获取树结构区域信息")
+    @GetMapping(value = "arealist")
+    public R getAllArea(@ApiParam(name = "省份:四川510000",
+        required = true) @RequestParam(value = "provinceAdcode") Integer provinceAdcode) {
+        return communityService.getCityTreeByProvinceCode(provinceAdcode, this.getAreaCode());
+    }
+
+    @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/CommunityApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/CommunityApi.java
new file mode 100644
index 0000000..08f28a7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/CommunityApi.java
@@ -0,0 +1,159 @@
+package com.panzhihua.applets_backstage.api;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.dtos.community.AddComActDynTypeDTO;
+import com.panzhihua.common.model.vos.grid.EventGridCommunityAdminVO;
+import com.panzhihua.common.utlis.Snowflake;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.interfaces.OperLog;
+import com.panzhihua.common.model.dtos.community.PageComActDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActVO;
+import com.panzhihua.common.model.vos.community.ComMngStructAreaDistrictVO;
+import com.panzhihua.common.model.vos.community.ComMngStructAreaVO;
+import com.panzhihua.common.model.vos.user.AdministratorsUserVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 社区管理
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-15 09:54
+ **/
+@Api(tags = {"社区管理"})
+@RestController
+@RequestMapping("/communitymanager/")
+public class CommunityApi extends BaseController {
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private UserService userService;
+
+    @ApiOperation(value = "分页查询小区", response = ComMngStructAreaVO.class)
+    @PostMapping("pagearea")
+    public R pageArea(@RequestBody ComMngStructAreaVO comMngStructAreaVO) {
+        return communityService.pageArea(comMngStructAreaVO);
+    }
+
+    // /**
+    // * 攀枝花地址json
+    // */
+    // private String
+    // panzhihuajson="[{\"district_name\":\"仁和区\",\"city_adcode\":510400,\"district_adcode\":510411,\"province_id\":23,\"id\":2004,\"province_adcode\":510000,\"city_id\":256},{\"district_name\":\"米易县\",\"city_adcode\":510400,\"district_adcode\":510421,\"province_id\":23,\"id\":2005,\"province_adcode\":510000,\"city_id\":256},{\"district_name\":\"盐边县\",\"city_adcode\":510400,\"district_adcode\":510422,\"province_id\":23,\"id\":2006,\"province_adcode\":510000,\"city_id\":256}]";
+
+    @ApiOperation(value = "新增社区", response = ComActVO.class)
+    @PostMapping("community")
+    @OperLog(operModul = "社区管理", operType = 1)
+    public R addCommunity(@Validated(AddGroup.class) @RequestBody ComActVO comActVO) {
+        comActVO.setAppId(getAppId());
+        comActVO.setCommunityId(Snowflake.getId());
+        R r = communityService.addCommunity(comActVO);
+        if (R.isOk(r)) {
+
+//            ComActVO comActVO1 = JSONObject.parseObject(JSONObject.toJSONString(r.getData()), ComActVO.class);
+            Long communityId = comActVO.getCommunityId();
+            AdministratorsUserVO administratorsUserVO = new AdministratorsUserVO();
+            administratorsUserVO.setAccount(comActVO.getAccount());
+            administratorsUserVO.setPassword(comActVO.getPassword());
+            administratorsUserVO.setName(comActVO.getContacts());
+            administratorsUserVO.setStatus(comActVO.getState() + 1);
+
+            administratorsUserVO.setType(3);
+            administratorsUserVO.setAreaId(null);
+            administratorsUserVO.setCommunityId(communityId);
+            administratorsUserVO.setRoleId(999999999l);
+            administratorsUserVO.setUserId(Snowflake.getId());
+            administratorsUserVO.setAppid(this.getAppId());
+
+            R r1 = userService.addUserBackstage(administratorsUserVO);
+
+            if (!R.isOk(r1)) {
+    //                userService.deleteUserBackstage(administratorsUserVO);
+                communityService.delectCommunity(communityId);
+            }
+
+            if(R.isOk(r1))
+            {
+                addType(communityId,"资金公开");
+                addType(communityId,"资产公开");
+                addType(communityId,"资源公开");
+                addType(communityId,"村集体经济组织项目");
+            }
+
+            return r1;
+        }
+        return r;
+    }
+
+
+    private void addType(Long communityId,String name)
+    {
+        AddComActDynTypeDTO comActDynTypeDTO=new AddComActDynTypeDTO();
+        comActDynTypeDTO.setCommunityId(communityId);
+        comActDynTypeDTO.setName(name);
+        comActDynTypeDTO.setColor("#FF0000");
+        comActDynTypeDTO.setCategory(2);
+        comActDynTypeDTO.setArea("2");
+        communityService.addDynTypeByAdmin(comActDynTypeDTO);
+    }
+
+    @ApiOperation("编辑社区")
+    @PutMapping("community")
+    @OperLog(operModul = "社区管理", operType = 2)
+    public R putCommunity(@RequestBody ComActVO comActVO) {
+        Long communityId = comActVO.getCommunityId();
+        if (null == communityId || 0 == communityId) {
+            return R.fail("社区主键不能为空");
+        }
+        return communityService.putCommunity(comActVO);
+    }
+
+    @ApiOperation(value = "分页查询社区", response = ComActVO.class)
+    @PostMapping("pagecommunity")
+    public R pageCommunity(@RequestBody PageComActDTO pageComActDTO) {
+//        pageComActDTO.setAreaCode(this.getAreaCode());
+        return communityService.pageCommunity(pageComActDTO);
+    }
+    @ApiOperation(value = "查询所有社区列表", response = EventGridCommunityAdminVO.class)
+    @GetMapping("/community/list")
+    public R getCommunityLists() {
+        return communityService.getCommunityLists();
+    }
+
+    @ApiOperation(value = "所在地地址下拉列表", response = ComMngStructAreaDistrictVO.class)
+    @PostMapping("listarea")
+    public R listArea() {
+        Long cityAdcode = 510400l;
+        return communityService.listAreaDistrict(cityAdcode);
+    }
+
+    @ApiOperation(value = "社区详情", response = ComActVO.class)
+    @GetMapping("community")
+    public R detailCommunity(@RequestParam("id") Long id) {
+        return communityService.detailCommunity(id);
+    }
+
+    @ApiOperation("删除社区")
+    @DeleteMapping("/remove/{id}")
+    public R removeCommunity(@PathVariable("id")Long id){
+        return communityService.removeCommunity(id);
+    }
+
+    @ApiOperation("重置密码")
+    @PostMapping("/repass")
+    public R repass(@RequestBody ComActVO comActVO){
+        return communityService.repassCommunity(comActVO);
+    }
+
+
+}
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
new file mode 100644
index 0000000..8029789
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/CommunityConvenientApi.java
@@ -0,0 +1,464 @@
+package com.panzhihua.applets_backstage.api;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.time.Instant;
+import java.util.UUID;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import com.panzhihua.common.model.dtos.community.convenient.*;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientElevatingPointVO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientGoodsCategoryVO;
+import com.panzhihua.common.utlis.MimeTypeUtils;
+import io.swagger.annotations.*;
+import org.apache.commons.io.FilenameUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+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 org.springframework.web.multipart.MultipartFile;
+
+import com.alibaba.excel.EasyExcel;
+import com.jcraft.jsch.SftpException;
+import com.panzhihua.applets_backstage.config.MinioUtil;
+import com.panzhihua.common.constants.FtpConstants;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.listen.ComCvtServeExcelListen;
+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.PageComCvtBusinessDTO;
+import com.panzhihua.common.model.dtos.community.PageComCvtCategoryDTO;
+import com.panzhihua.common.model.dtos.community.PageComCvtServeDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActVO;
+import com.panzhihua.common.model.vos.community.ComCvtBusinessVO;
+import com.panzhihua.common.model.vos.community.ComCvtCategoryVO;
+import com.panzhihua.common.model.vos.community.ComCvtServeExcelVO;
+import com.panzhihua.common.model.vos.community.ComCvtServeVO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientServiceCategoryVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.SFTPUtil;
+import com.panzhihua.common.validated.AddGroup;
+import com.panzhihua.common.validated.PutGroup;
+
+import lombok.extern.slf4j.Slf4j;
+
+import static com.panzhihua.common.utlis.FileTypeUploadUtils.assertAllowed;
+
+/**
+ * @description: 社区便民服务商家接口
+ * @author: Null
+ * @date: 2021/3/11 13:26
+ */
+@Slf4j
+@Api(tags = {"社区运营/便民服务"})
+@RestController
+@RequestMapping("/convenient")
+public class CommunityConvenientApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @Resource
+    private MinioUtil minioUtil;
+
+    @Value("${excel.convenientUrl}")
+    private String excelConvenientUrl = "http://panzhihua.nhys.cdnhxx.com/web/bianminfuwudaoru.xlsx";
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+    @Value("${ftp.url}")
+    private String url;
+
+    @Deprecated
+    @ApiOperation(value = "分页查询便民服务商家", response = ComCvtBusinessVO.class)
+    @PostMapping("/business/page")
+    public R pageComCvtBusiness(@RequestBody PageComCvtBusinessDTO pageComCvtBusinessDTO) {
+        return communityService.pageComCvtBusiness(pageComCvtBusinessDTO);
+    }
+
+    @Deprecated
+    @ApiOperation(value = "新增便民服务商家")
+    @PostMapping("/business/add")
+    public R addComCvtBusiness(@RequestBody ComCvtBusinessDTO comCvtBusinessDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long userId = loginUserInfo.getUserId();
+        comCvtBusinessDTO.setCreateBy(userId);
+        return communityService.addComCvtBusiness(comCvtBusinessDTO);
+    }
+
+    @Deprecated
+    @ApiOperation(value = "编辑便民服务商家")
+    @PutMapping("/business/put")
+    public R putComCvtBusiness(@RequestBody ComCvtBusinessDTO comCvtBusinessDTO) {
+        return communityService.putComCvtBusiness(comCvtBusinessDTO);
+    }
+
+    @Deprecated
+    @ApiOperation(value = "查询便民服务商家详情")
+    @GetMapping("/business/get")
+    public R getComCvtBusiness(@RequestParam("id") Long id) {
+        return communityService.getComCvtBusiness(id);
+    }
+
+    @Deprecated
+    @ApiOperation(value = "删除便民服务商家详情")
+    @DeleteMapping("/business/delete")
+    public R deleteComCvtBusiness(@RequestParam("id") Long id) {
+        return communityService.deleteComCvtBusiness(id);
+    }
+
+    @Deprecated
+    @ApiOperation(value = "分页查询便民服务分类", response = ComCvtCategoryVO.class)
+    @PostMapping("/category/page")
+    public R pageComCvtCategory(@RequestBody PageComCvtCategoryDTO pageComCvtCategoryDTO) {
+        return communityService.pageComCvtCategory(pageComCvtCategoryDTO);
+    }
+
+    @Deprecated
+    @ApiOperation(value = "查询便民服务所有分类,下拉框", response = ComCvtCategoryVO.class)
+    @PostMapping("/category/all")
+    public R allComCvtCategory() {
+        return communityService.allComCvtCategory();
+    }
+
+    @Deprecated
+    @ApiOperation(value = "新增便民服务分类")
+    @PostMapping("/category/add")
+    public R pageComCvtCategory(@RequestBody ComCvtCategoryDTO comCvtCategoryDTO) {
+        return communityService.addComCvtCategory(comCvtCategoryDTO);
+    }
+
+    @Deprecated
+    @ApiOperation(value = "编辑便民服务分类")
+    @PutMapping("/category/put")
+    public R putComCvtCategory(@RequestBody ComCvtCategoryDTO comCvtCategoryDTO) {
+        return communityService.putComCvtCategory(comCvtCategoryDTO);
+    }
+
+    @Deprecated
+    @ApiOperation(value = "查询便民服务分类详情", response = ComCvtCategoryVO.class)
+    @GetMapping("/category/get")
+    public R getComCvtCategory(@RequestParam("id") Long id) {
+        return communityService.getComCvtCategory(id);
+    }
+
+    @Deprecated
+    @ApiOperation(value = "删除便民服务分类信息")
+    @DeleteMapping("/category/delete")
+    public R deleteComCvtCategory(@RequestParam("id") Long id) {
+        return communityService.deleteComCvtCategory(id);
+    }
+
+    @Deprecated
+    @ApiOperation(value = "分页查询便民服务", response = ComCvtServeVO.class)
+    @PostMapping("/serve/page")
+    public R pageComCvtServe(@RequestBody PageComCvtServeDTO pageComCvtServeDTO) {
+        return communityService.pageComCvtServe(pageComCvtServeDTO);
+    }
+
+    @Deprecated
+    @ApiOperation(value = "新增便民服务")
+    @PostMapping("/serve/add")
+    public R addComCvtServe(@RequestBody ComCvtServeDTO comCvtServeDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long userId = loginUserInfo.getUserId();
+        comCvtServeDTO.setCreateBy(userId);
+        return communityService.addComCvtServe(comCvtServeDTO);
+    }
+
+    @Deprecated
+    @ApiOperation(value = "编辑便民服务")
+    @PutMapping("/serve/put")
+    public R putComCvtServe(@RequestBody ComCvtServeDTO comCvtServeDTO) {
+        return communityService.putComCvtServe(comCvtServeDTO);
+    }
+
+    @Deprecated
+    @ApiOperation(value = "查询便民服务详情", response = ComCvtServeVO.class)
+    @GetMapping("/serve/get")
+    public R getComCvtServe(@RequestParam("id") Long id) {
+        return communityService.getComCvtServe(id);
+    }
+
+    @Deprecated
+    @ApiOperation(value = "删除便民服务信息")
+    @DeleteMapping("/serve/delete")
+    public R deleteComCvtServe(@RequestParam("id") Long id) {
+        return communityService.deleteComCvtServe(id);
+    }
+
+    @ApiOperation(value = "下载模板-便民服务")
+    @GetMapping(value = "/serve/download/template")
+    public R downloadTemplate(HttpServletResponse response) throws IOException, SftpException {
+        return R.ok(excelConvenientUrl);
+    }
+
+    @ApiOperation(value = "上传文件")
+    @PostMapping(value = "/upload/file", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R uploadImage(@RequestParam MultipartFile file, HttpServletRequest request) {
+        String extension = FilenameUtils.getExtension(file.getOriginalFilename());
+        String name = UUID.randomUUID().toString().replaceAll("-", "") + "." + extension;
+        try {
+            assertAllowed(file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION);
+            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+            sftp.login();
+            InputStream is = file.getInputStream();
+            sftp.uploadMore(FtpConstants.FTPFILEPATH_IDCARD, name, is);
+            sftp.logout();
+            return R.ok(url + "/idcard/" + name);
+        } catch (Exception e) {
+            log.error("上传照片失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    @ApiOperation(value = "新上传照片接口")
+    @PostMapping(value = "/upload/files", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R uploadImages(@RequestParam MultipartFile file, HttpServletRequest request) {
+        try {
+            assertAllowed(file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION);
+            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) {
+        String fileName = file.getOriginalFilename(); // 获取文件名
+        log.info("传入文件名字【{}】", fileName);
+        InputStream inputStream = null;
+        try {
+            inputStream = file.getInputStream();
+            EasyExcel.read(inputStream, ComCvtServeExcelVO.class, new ComCvtServeExcelListen(communityService, null))
+                .sheet().doRead();
+        } catch (IOException e) {
+            e.printStackTrace();
+            log.error("导入模板失败【{}】", e.getMessage());
+            return R.fail(e.getMessage());
+        }
+        return R.ok();
+    }
+
+    @ApiOperation(value = "新增便民服务分类")
+    @PostMapping("/service-category/add")
+    public R addServiceCategory(@RequestBody @Validated(AddGroup.class) ConvenientServiceCategoryDTO convenientServiceCategoryDTO) {
+        convenientServiceCategoryDTO.setCreatedBy(this.getUserId());
+        convenientServiceCategoryDTO.setAreaCode(this.getAreaCode());
+        return communityService.addServiceCategory(convenientServiceCategoryDTO);
+    }
+
+    @ApiOperation(value = "编辑便民服务分类")
+    @PutMapping("/service-category/put")
+    public R putServiceCategory(@RequestBody @Validated(PutGroup.class) ConvenientServiceCategoryDTO convenientServiceCategoryDTO) {
+        convenientServiceCategoryDTO.setUpdatedBy(this.getUserId());
+        return communityService.putServiceCategory(convenientServiceCategoryDTO);
+    }
+
+    @ApiOperation(value = "删除便民服务分类")
+    @DeleteMapping("/service-category/delete")
+    public R deleteServiceCategory(@RequestParam("categoryId")
+                                   @ApiParam(value = "便民服务分类id", required = true)
+                                   Long categoryId) {
+        return communityService.deleteServiceCategory(categoryId, this.getUserId());
+    }
+
+    @ApiOperation(value = "查询便民服务分类详情", response = ConvenientServiceCategoryVO.class)
+    @GetMapping("/service-category/get")
+    public R getServiceCategory(@RequestParam("categoryId")
+                                @ApiParam(value = "便民服务分类id", required = true)
+                                Long categoryId) {
+        return communityService.getServiceCategory(categoryId);
+    }
+
+    @ApiOperation(value = "分页查询便民服务分类", response = ConvenientServiceCategoryVO.class)
+    @PostMapping("/service-category/page")
+    public R pageServiceCategory(@RequestBody PageConvenientServiceCategoryDTO pageConvenientServiceCategoryDTO) {
+        pageConvenientServiceCategoryDTO.setAreaCode(this.getAreaCode());
+        return communityService.pageServiceCategory(pageConvenientServiceCategoryDTO);
+    }
+
+    @ApiOperation(value = "新增便民服务商家")
+    @PostMapping("/merchant/add")
+    public R addMerchant(@RequestBody @Validated(AddGroup.class) ConvenientMerchantDTO convenientMerchantDTO) {
+        convenientMerchantDTO.setCreatedBy(this.getUserId());
+        convenientMerchantDTO.setAreaCode(this.getAreaCode());
+        return communityService.addMerchant(convenientMerchantDTO);
+    }
+
+    @ApiOperation(value = "编辑便民服务商家")
+    @PutMapping("/merchant/put")
+    public R putMerchant(@RequestBody @Validated(PutGroup.class) ConvenientMerchantDTO convenientMerchantDTO) {
+        convenientMerchantDTO.setUpdatedBy(this.getUserId());
+        return communityService.putMerchant(convenientMerchantDTO);
+    }
+
+    @ApiOperation(value = "查询便民服务商家详情", response = ConvenientMerchantVO.class)
+    @GetMapping("/merchant/get")
+    public R getMerchant(@RequestParam("merchantId") Long merchantId) {
+        return communityService.getMerchant(merchantId);
+    }
+
+    @ApiOperation(value = "删除便民服务商家")
+    @DeleteMapping("/merchant/delete")
+    public R deleteMerchant(@RequestParam("merchantId") Long merchantId) {
+        return communityService.deleteMerchant(merchantId, this.getUserId());
+    }
+
+    @ApiOperation(value = "分页查询便民服务商家", response = ConvenientMerchantVO.class)
+    @PostMapping("/merchant/page")
+    public R pageMerchant(@RequestBody PageConvenientMerchantDTO pageConvenientMerchantDTO) {
+        pageConvenientMerchantDTO.setAreaCode(this.getAreaCode());
+        return communityService.pageMerchant(pageConvenientMerchantDTO);
+    }
+
+    @ApiOperation(value = "禁用/启用便民服务商家")
+    @PutMapping("/merchant/disable-or-enable")
+    public R disableOrEnableMerchant(@RequestBody @Valid DisableOrEnableConvenientMerchantDTO disableOrEnableConvenientMerchantDTO) {
+        disableOrEnableConvenientMerchantDTO.setUpdatedBy(this.getUserId());
+        return communityService.disableOrEnableMerchant(disableOrEnableConvenientMerchantDTO);
+    }
+
+    @ApiOperation(value = "重置便民服务商家账号密码")
+    @PutMapping("/merchant/reset-password")
+    public R resetPasswordMerchant(@RequestBody @Valid ResetPasswordConvenientMerchantDTO resetPasswordConvenientMerchantDTO) {
+        resetPasswordConvenientMerchantDTO.setUpdatedBy(this.getUserId());
+        return communityService.resetPasswordMerchant(resetPasswordConvenientMerchantDTO);
+    }
+
+    @ApiOperation(value = "社区下拉列表", response = ComActVO.class)
+    @GetMapping("/community")
+    public R listCommunity() {
+        return communityService.listCommunityAll(this.getAreaCode());
+    }
+
+    @ApiOperation(value = "所有服务分类", response = ConvenientServiceCategoryVO.class)
+    @GetMapping("/service-category/all")
+    public R getAllServiceCategories() {
+        return communityService.getAllServiceCategories(this.getAreaCode());
+    }
+
+
+    @ApiOperation(value = "分页查询自提点", response = ConvenientElevatingPointVO.class)
+    @PostMapping("/point/page")
+    public R pagePoint(@RequestBody PageConvenientElevatingPointDTO pageConvenientElevatingPointDTO) {
+        return communityService.pagePoint(pageConvenientElevatingPointDTO);
+    }
+
+    @ApiOperation(value = "新增自提点")
+    @PostMapping("/point/add")
+    public R addPoint(@RequestBody @Validated(AddGroup.class) ConvenientElevatingPointDTO convenientElevatingPointDTO) {
+        convenientElevatingPointDTO.setCreatedBy(this.getUserId());
+        return communityService.addPoint(convenientElevatingPointDTO);
+    }
+
+    @ApiOperation(value = "编辑自提点")
+    @PutMapping("/point/put")
+    public R putPoint(@RequestBody @Validated(PutGroup.class) ConvenientElevatingPointDTO convenientElevatingPointDTO) {
+        convenientElevatingPointDTO.setUpdatedBy(this.getUserId());
+        convenientElevatingPointDTO.setCreatedBy(this.getUserId());
+        return communityService.putPoint(convenientElevatingPointDTO);
+    }
+
+    @ApiOperation(value = "删除自提点")
+    @DeleteMapping("/point/delete")
+    public R deletePoint(@RequestParam("pointId") @ApiParam(value = "自提点id", required = true)
+                                           Long pointId) {
+        return communityService.deletePoint(pointId, this.getUserId());
+    }
+    @ApiOperation(value = "自提点详情")
+    @GetMapping("/point/detail")
+    public R detailPoint(@RequestParam("pointId") @ApiParam(value = "自提点id", required = true) Long pointId) {
+        return communityService.detailPoint(pointId);
+    }
+
+
+    @ApiOperation(value = "新增商品分类")
+    @PostMapping("/goodsCategory/add")
+    public R addGoodsCategory(@RequestBody @Validated(AddGroup.class) ConvenientGoodsCategoryDTO convenientGoodsCategoryDTO) {
+        convenientGoodsCategoryDTO.setCreatedBy(this.getUserId());
+        convenientGoodsCategoryDTO.setAreaCode(this.getAreaCode());
+        return communityService.addGoodsCategory(convenientGoodsCategoryDTO);
+    }
+
+    @ApiOperation(value = "编辑商品分类")
+    @PutMapping("/goodsCategory/put")
+    public R putGoodsCategory(@RequestBody @Validated(PutGroup.class) ConvenientGoodsCategoryDTO convenientGoodsCategoryDTO) {
+        convenientGoodsCategoryDTO.setUpdatedBy(this.getUserId());
+        return communityService.putGoodsCategory(convenientGoodsCategoryDTO);
+    }
+
+    @ApiOperation(value = "删除商品分类")
+    @DeleteMapping("/goodsCategory/delete")
+    public R deleteGoodsCategory(@RequestParam("categoryId") @ApiParam(value = "商品分类id", required = true) Long categoryId) {
+        return communityService.deleteGoodsCategory(categoryId, this.getUserId());
+    }
+
+    @ApiOperation(value = "查询商品分类详情", response = ConvenientGoodsCategoryVO.class)
+    @GetMapping("/goodsCategory/get")
+    public R getGoodsCategory(@RequestParam("categoryId") @ApiParam(value = "商品分类id", required = true) Long categoryId) {
+        return communityService.getGoodsCategory(categoryId);
+    }
+
+    @ApiOperation(value = "分页查询商品分类", response = ConvenientGoodsCategoryVO.class)
+    @PostMapping("/goodsCategory/page")
+    public R pageGoodsCategory(@RequestBody PageConvenientGoodsCategoryDTO pageConvenientGoodsCategoryDTO) {
+        pageConvenientGoodsCategoryDTO.setAreaCode(this.getAreaCode());
+        return communityService.pageGoodsCategory(pageConvenientGoodsCategoryDTO);
+    }
+
+
+    /**
+     * 商家后台经营数据统计-上
+     * @param storeId
+     * @return
+     */
+    @GetMapping("/merchant/selectSumOrderAndAmountByStoreId")
+    @ApiOperation(value = "经营数据统计-上")
+    public R selectSumOrderAndAmountByStoreId(@RequestParam("storeId") Long storeId){
+        return communityService.selectSumOrderAndAmountByStoreId(storeId);
+    }
+
+    /**
+     * 统计时间区域的订单量 15天 30天 一年
+     * @param storeId
+     * @param type
+     * @return
+     */
+    @GetMapping("/merchant/selectOrderLineChart")
+    @ApiOperation(value = "统计时间区域的订单量 15天 30天 一年")
+    @ApiImplicitParams({@ApiImplicitParam(name = "storeId", value = "商家id"),
+            @ApiImplicitParam(name = "type", value = "类型 1.近15天  2.近30天 3.今年"),
+            @ApiImplicitParam(name = "tab", value = "tab 1.订单量  2.营业收入")})
+    public  R selectOrderLineChart(@RequestParam("storeId") Long storeId,@RequestParam("type")  Integer type,@RequestParam("tab")  Integer tab){
+        return communityService.selectOrderLineChart(storeId,type,tab);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/EasyPhotoClassifyApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/EasyPhotoClassifyApi.java
new file mode 100644
index 0000000..c252df2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/EasyPhotoClassifyApi.java
@@ -0,0 +1,56 @@
+package com.panzhihua.applets_backstage.api;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.controller.BaseController;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.model.dtos.community.easyPhoto.AddEasyPhotoClassifyDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.community.CommunityService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+@Api(tags = {"随手拍分类"})
+@RestController
+@RequestMapping("/classify")
+public class EasyPhotoClassifyApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "随手拍分类-新增")
+    @PostMapping("/add")
+    public R addPhotoClassify(@RequestBody AddEasyPhotoClassifyDTO addPhotoClassify) {
+        addPhotoClassify.setAreaCode(this.getAreaCode());
+        return communityService.addPhotoClassify(addPhotoClassify);
+    }
+
+    @ApiOperation(value = "随手拍分类-编辑")
+    @PostMapping("/edit")
+    public R editPhotoClassify(@RequestBody AddEasyPhotoClassifyDTO addPhotoClassify) {
+        return communityService.editPhotoClassify(addPhotoClassify);
+    }
+
+    @ApiOperation(value = "随手拍分类-分页")
+    @PostMapping("/page")
+    public R pagePhotoClassify(@RequestBody AddEasyPhotoClassifyDTO addPhotoClassify) {
+        addPhotoClassify.setAreaCode(this.getAreaCode());
+        return communityService.pagePhotoClassify(addPhotoClassify);
+    }
+
+    @ApiOperation(value = "随手拍分类-详情")
+    @GetMapping("/detail")
+    public R detailPhotoClassify(@RequestParam("id") Long id) {
+        return communityService.detailPhotoClassify(id);
+    }
+
+    @ApiOperation(value = "随手拍分类-删除")
+    @GetMapping("/delete")
+    public R deletePhotoClassify(@RequestParam("id") Long id) {
+        return communityService.deletePhotoClassify(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/HouseApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/HouseApi.java
new file mode 100644
index 0000000..0c97c9e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/HouseApi.java
@@ -0,0 +1,77 @@
+package com.panzhihua.applets_backstage.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.util.ObjectUtils;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.ComOpsHouseDTO;
+import com.panzhihua.common.model.dtos.community.PageComOpsHouseDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComOpsHouseVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 房屋租售
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-22 15:30
+ **/
+@Slf4j
+@Api(tags = {"房屋租售"})
+@RestController
+@RequestMapping("/")
+public class HouseApi extends BaseController {
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "房屋租售-新增")
+    @PostMapping("house")
+    public R addHouse(@RequestBody @Validated(AddGroup.class) ComOpsHouseDTO comOpsHouseDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long userId = loginUserInfo.getUserId();
+        Long communityId = loginUserInfo.getCommunityId();
+        comOpsHouseDTO.setUserId(userId);
+        comOpsHouseDTO.setCommunityId(communityId);
+        comOpsHouseDTO.setUserType(2);
+        return communityService.addOpsHouse(comOpsHouseDTO);
+    }
+
+    @ApiOperation(value = "房屋租售-详情", response = ComOpsHouseVO.class)
+    @GetMapping("house")
+    public R detailHouse(@RequestParam("id") Long id) {
+        return communityService.detailOpsHouse(id);
+    }
+
+    @ApiOperation(value = "编辑/审核房屋租售")
+    @PutMapping("activity")
+    public R putActivity(@RequestBody ComOpsHouseVO comOpsHouseVO) {
+        Long id = comOpsHouseVO.getId();
+        if (ObjectUtils.isEmpty(id)) {
+            return R.fail("房屋租售id主键不能为空");
+        }
+        return communityService.putOpsHouse(comOpsHouseVO);
+    }
+
+    @ApiOperation(value = "房屋租售-删除")
+    @DeleteMapping("house")
+    public R deleteHouse(@RequestParam("id") Long id) {
+        return communityService.deleteOpsHouse(id);
+    }
+
+    @ApiOperation(value = "房屋租售-分页查询", response = ComOpsHouseVO.class)
+    @PostMapping("pagehouse")
+    public R pageHouse(@RequestBody PageComOpsHouseDTO pageComOpsHouseDTO) {
+        pageComOpsHouseDTO.setAreaCode(this.getAreaCode());
+        return communityService.pageOpsHouse(pageComOpsHouseDTO);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/IndexApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/IndexApi.java
new file mode 100644
index 0000000..a0bb02c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/IndexApi.java
@@ -0,0 +1,244 @@
+package com.panzhihua.applets_backstage.api;
+
+import javax.annotation.Resource;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.alibaba.fastjson.JSONArray;
+import com.panzhihua.applets_backstage.config.SFTPConfig;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.excel.CustomSheetWriteHandler;
+import com.panzhihua.common.model.dtos.DataKanBansDto;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.community.IndexUserStatisticsVo;
+import com.panzhihua.common.model.vos.community.IndexUserStreetExcelExportVo;
+import com.panzhihua.common.model.vos.user.*;
+import com.panzhihua.common.utlis.SFTPUtil;
+import com.panzhihua.common.utlis.StringUtils;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.model.vos.IndexDataKanbanVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.user.UserService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 首页接口
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-05 15:17
+ **/
+@Slf4j
+@Api(tags = {"首页接口"})
+@RestController
+@RequestMapping("/index/")
+public class IndexApi extends BaseController {
+    @Resource
+    private UserService userService;
+
+    @Resource
+    private SFTPConfig sftpConfig;
+
+    @ApiOperation(value = "数据看板", response = IndexDataKanbanVO.class)
+    @GetMapping("datakanban")
+    public R dataKanban() {
+        return userService.dataKanban(this.getAreaCode());
+    }
+
+    @ApiOperation(value = "数据看板", response = IndexDataKanbanVO.class)
+    @PostMapping("datakanbans")
+    public R dataKanBans(@RequestBody DataKanBansDto dataKanBansDto) {
+        dataKanBansDto.setAreaCode(this.getAreaCode());
+        dataKanBansDto.setAppId(this.getAppId());
+        return userService.dataKanBans(dataKanBansDto);
+    }
+
+    @ApiOperation(value = "社区通统计数据汇总", response = IndexUserStatisticsVo.class)
+    @GetMapping("statistics")
+    public R communityStatistics() {
+        return userService.communityStatistics(this.getAppId());
+    }
+
+    @ApiOperation(value = "社区通统计数据导出")
+    @GetMapping("statistics/export")
+    public R communityStatisticsExport() {
+        String url = sftpConfig.getExcelUrl();
+        String name = "社区通用户统计导出数据.xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+        R r = userService.communityStatisticsExport(this.getAreaCode());
+        if (R.isOk(r)) {
+            List<IndexUserStreetExcelExportVo> resultList = JSONArray.parseArray(JSONArray.toJSONString(r.getData()), IndexUserStreetExcelExportVo.class);
+            try {
+                SFTPUtil sftp = new SFTPUtil(sftpConfig.getUserName(), sftpConfig.getPassword(), sftpConfig.getHost(), sftpConfig.getPort());
+                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, IndexUserStreetExcelExportVo.class)
+                                .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                                .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet("社区通用户统计导出数据").build();
+                        excelWriter.write(resultList, 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(url + name);
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error("文件传输失败【{}】", e.getMessage());
+                return R.fail();
+            }
+        }
+        return r;
+    }
+    @ApiOperation(value = "新数据看板:数据总览", response = IndexDataAnalysisVO.class)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "type",value = "数据范围,1:所有区县,2:所有街道,3:所有社区,4:跟据街道筛选,5:按区县筛选",dataType = "Integer"),
+            @ApiImplicitParam(name = "streetId",value = "街道ID",dataType = "String"),
+            @ApiImplicitParam(name = "areaCode",value = "区县code",dataType = "String")
+    })
+    @GetMapping("/indexData/total/Data")
+    public R indexData(@RequestParam(value = "type",required = false) Integer type,
+                       @RequestParam(value = "streetId",required = false) String streetId,
+                       @RequestParam(value = "areaCode",required = false) String areaCode){
+        Long sId=null;
+        Long aCode=null;
+        if (StringUtils.isNotEmpty(streetId)){
+            sId=Long.parseLong(streetId);
+        }
+        if (StringUtils.isNotEmpty(areaCode)){
+            aCode=Long.parseLong(areaCode);
+        }
+        return userService.newIndexData(type, sId,aCode,this.getAppId());
+    }
+
+    @ApiOperation(value = "新数据看板:用户占比", response = UserRateVO.class)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "type",value = "数据范围,1:所有区县,2:所有街道,3:所有社区,4:跟据街道筛选,5:按区县筛选",dataType = "Integer"),
+            @ApiImplicitParam(name = "range",value = "本月或累计,默认累计不传,1:本月",dataType = "String"),
+            @ApiImplicitParam(name = "streetId",value = "街道ID",dataType = "String"),
+            @ApiImplicitParam(name = "areaCode",value = "区县code",dataType = "String")
+    })
+    @GetMapping("indexData/userRate")
+    public R userRate(@RequestParam(value = "type",required = false) Integer type,
+                       @RequestParam(value = "range",required = false) String range,
+                       @RequestParam(value = "streetId",required = false) String streetId,
+                       @RequestParam(value = "areaCode",required = false) String areaCode){
+        Long sId=null;
+        Long aCode=null;
+        Integer r=null;
+        if (StringUtils.isNotEmpty(streetId)){
+            sId=Long.parseLong(streetId);
+        }
+        if (StringUtils.isNotEmpty(areaCode)){
+            aCode=Long.parseLong(areaCode);
+        }
+        if (StringUtils.isNotEmpty(range)){
+            r=Integer.parseInt(range);
+        }
+        return userService.userRate(type, sId,aCode,r,this.getAppId());
+    }
+
+    @ApiOperation(value = "新数据看板:实名用户", response = RealUserVO.class)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "type",value = "数据范围,1:所有区县,2:所有街道,3:所有社区,4:跟据街道筛选,5:按区县筛选",dataType = "Integer"),
+            @ApiImplicitParam(name = "range",value = "本月或累计,默认累计不传,1:本月",dataType = "String"),
+            @ApiImplicitParam(name = "streetId",value = "街道ID",dataType = "String"),
+            @ApiImplicitParam(name = "areaCode",value = "区县code",dataType = "String")
+    })
+    @GetMapping("/indexData/realUser")
+    public R realUser(@RequestParam(value = "type",required = false) Integer type,
+                      @RequestParam(value = "streetId",required = false) String streetId,
+                      @RequestParam(value = "areaCode",required = false) String areaCode,
+                      @RequestParam(value = "range",required = false) String range){
+        Long sId=null;
+        Long aCode=null;
+        Integer r=null;
+        if (StringUtils.isNotEmpty(streetId)){
+            sId=Long.parseLong(streetId);
+        }
+        if (StringUtils.isNotEmpty(areaCode)){
+            aCode=Long.parseLong(areaCode);
+        }
+        if (StringUtils.isNotEmpty(range)){
+            r=Integer.parseInt(range);
+        }
+        return userService.realUser(type,sId,aCode,r,this.getAppId());
+    }
+
+    @ApiOperation(value = "新数据看板:用户行为分析", response = UserActivityAnalysisVO.class)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "type",value = "数据范围,1:所有区县,2:所有街道,3:所有社区,4:跟据街道筛选,5:按区县筛选",dataType = "Integer"),
+            @ApiImplicitParam(name = "range",value = "本月或累计,不传默认累计,1:本月",dataType = "String"),
+            @ApiImplicitParam(name = "streetId",value = "街道ID",dataType = "String"),
+            @ApiImplicitParam(name = "areaCode",value = "区县code",dataType = "String")
+    })
+    @GetMapping("/indexData/userActivity")
+    public R userActivity(@RequestParam(value = "type",required = false) Integer type,
+                      @RequestParam(value = "streetId",required = false) String streetId,
+                      @RequestParam(value = "areaCode",required = false) String areaCode,
+                      @RequestParam(value = "range",required = false) String range){
+        Long sId=null;
+        Long aCode=null;
+        Integer r=null;
+        if (StringUtils.isNotEmpty(streetId)){
+            sId=Long.parseLong(streetId);
+        }
+        if (StringUtils.isNotEmpty(areaCode)){
+            aCode=Long.parseLong(areaCode);
+        }
+        if (StringUtils.isNotEmpty(range)){
+            r=Integer.parseInt(range);
+        }
+        return userService.userActivity(type,sId,aCode,r, this.getAppId());
+    }
+
+    @ApiOperation(value = "获取区县街道选项",response = AreaVO.class)
+    @GetMapping("/indexData/getAreaAndStreet")
+    public R getAreaAndStreet(){
+        return userService.getAreaAndStreet();
+    }
+
+
+    @GetMapping("/getAllCommunityList")
+    @ApiOperation(value = "获取当前账号下的社区/村落列表",response = StreetVO.class)
+    public R communityList(){
+        return userService.getAllCommunityList();
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/KaphtchaApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/KaphtchaApi.java
new file mode 100644
index 0000000..ed6a518
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/KaphtchaApi.java
@@ -0,0 +1,80 @@
+package com.panzhihua.applets_backstage.api;
+
+import com.google.code.kaptcha.impl.DefaultKaptcha;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.utlis.StringUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.data.redis.core.StringRedisTemplate;
+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;
+import javax.imageio.ImageIO;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.awt.image.BufferedImage;
+import java.io.ByteArrayOutputStream;
+import java.time.Duration;
+
+/**
+ * @author zzj
+ */
+@Api(tags = {"验证码接口"})
+@RestController
+@RequestMapping("/kaphtcha/")
+public class KaphtchaApi extends BaseController {
+    @Resource
+    private DefaultKaptcha defaultKaptcha;
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+
+    @ApiOperation("生成验证码")
+    @GetMapping("/verification")
+    public void defaultKaptcha(@RequestParam("uuid")String uuid,HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse)
+            throws Exception {
+        byte[] captchaChallengeAsJpeg = null;
+        ByteArrayOutputStream jpegOutputStream = new ByteArrayOutputStream();
+        try {
+            // 生产验证码字符串并保存到session中,分布式环境存redis中
+            String createText = defaultKaptcha.createText();
+            stringRedisTemplate.opsForValue().set("verifyCode_"+uuid,createText, Duration.ofMinutes(5));
+            // 使用生产的验证码字符串返回一个BufferedImage对象并转为byte写入到byte数组中
+            BufferedImage challenge = defaultKaptcha.createImage(createText);
+            ImageIO.write(challenge, "jpg", jpegOutputStream);
+
+        } catch (IllegalArgumentException e) {
+            httpServletResponse.sendError(HttpServletResponse.SC_NOT_FOUND);
+            return;
+        }
+
+        // 定义response输出类型为image/jpeg类型,使用response输出流输出图片的byte数组
+        captchaChallengeAsJpeg = jpegOutputStream.toByteArray();
+        httpServletResponse.setHeader("Cache-Control", "no-store");
+        httpServletResponse.setHeader("Pragma", "no-cache");
+        httpServletResponse.setDateHeader("Expires", 0);
+        httpServletResponse.setContentType("image/jpeg");
+        ServletOutputStream responseOutputStream = httpServletResponse.getOutputStream();
+        responseOutputStream.write(captchaChallengeAsJpeg);
+        responseOutputStream.flush();
+        responseOutputStream.close();
+    }
+    @ApiOperation("验证码核对")
+    @GetMapping("/checkVerifyCode")
+    public R checkVerifyCode(@RequestParam("verifyCode")String verifyCode,@RequestParam("uuid")String uuid){
+        String text=stringRedisTemplate.opsForValue().get("verifyCode_"+uuid);
+        if(StringUtils.isNotEmpty(text)){
+            if(verifyCode.equals(text)){
+                stringRedisTemplate.delete("verifyCode_"+uuid);
+                return R.ok();
+            }
+            return R.fail("验证码错误");
+        }
+        return R.fail("验证码失效");
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/LoginApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/LoginApi.java
new file mode 100644
index 0000000..449ff27
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/LoginApi.java
@@ -0,0 +1,65 @@
+package com.panzhihua.applets_backstage.api;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.interfaces.OperLog;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.applets_backstage.model.vos.LoginBody;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.auth.TokenService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 登录、登出
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-24 10:52
+ **/
+@Slf4j
+@Api(tags = {"运营后台登录模块"})
+@RestController("/")
+public class LoginApi extends BaseController {
+    @Resource
+    private TokenService tokenService;
+
+    @ApiOperation(value = "登录")
+    @PostMapping("login")
+    @OperLog(operModul = "运营后台登录",operType = 0,businessType = "登录")
+    public R login(@RequestBody LoginBody loginBody) {
+        String account = loginBody.getAccount();
+        String password = loginBody.getPassword();
+        boolean empty = ObjectUtils.isEmpty(account);
+        boolean empty1 = ObjectUtils.isEmpty(password);
+        if (empty || empty1) {
+            return R.fail("账户密码不能为空");
+        }
+        log.info("登录用户信息【{}】", loginBody);
+        return tokenService.loginAppletsBackStage(account, password,this.getAppId());
+    }
+
+    @ApiOperation(value = "登出")
+    @PostMapping("logout")
+    @OperLog(operModul = "运营后台登录",operType = 0,businessType = "登出")
+    public R login() {
+        String token = this.getToken();
+        if (ObjectUtils.isEmpty(token)) {
+            return R.ok();
+        }
+        return tokenService.logout(token);
+    }
+
+    @ApiOperation(value = "刷新token")
+    @GetMapping("refreshToken")
+    @ApiImplicitParam(name = "refreshToken", value = "登录返回的刷新token")
+    public R refreshToken(@RequestParam("refreshToken") String refreshToken) {
+        return tokenService.refreshToken(refreshToken);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/McsOrderApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/McsOrderApi.java
new file mode 100644
index 0000000..eb09478
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/McsOrderApi.java
@@ -0,0 +1,112 @@
+package com.panzhihua.applets_backstage.api;
+
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsOrderVO;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * 商业街订单表(McsOrder)表控制层
+ *
+ * @author makejava
+ * @since 2022-01-04 16:10:07
+ */
+@Api(tags = {"商业街订单API"})
+@RestController
+@RequestMapping("mcsOrder")
+public class McsOrderApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "分页查询订单",response = McsOrderVO.class)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return communityService.selectAllMscOrder(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation(value = "通过主键查询单条数据",response = McsOrderVO.class)
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return communityService.selectOneMscOrder(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param mcsOrderVO 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation("新增数据")
+    @PostMapping
+    public R insert(@RequestBody McsOrderVO mcsOrderVO) {
+        return communityService.insertMscOrder(mcsOrderVO);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param mcsOrderVO 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation("修改订单")
+    @PostMapping("/update")
+    public R update(@RequestBody McsOrderVO mcsOrderVO) {
+        return communityService.updateMscOrder(mcsOrderVO);
+    }
+
+    /**
+     * 微信支付
+     * @param mcsOrderVO
+     * @return
+     */
+    @ApiOperation("微信支付")
+    @PostMapping("/wxPay")
+    public R wxPay(@RequestBody McsOrderVO mcsOrderVO){
+        return communityService.wxPayMscOrder(mcsOrderVO);
+    }
+
+    /**
+     * 发送提醒短信
+     * @param id
+     * @return
+     */
+    @ApiOperation("发送提醒短信")
+    @GetMapping("/sendContent")
+    public R sendContent(@RequestParam("id") Long id){
+        return communityService.sendContentMcsOrder(id);
+    }
+
+    /**
+     *微信支付回调
+     * @param mcsOrderVO
+     * @return
+     */
+    @ApiOperation("微信支付回调")
+    @PostMapping("/notify")
+    public R notify(@RequestBody McsOrderVO mcsOrderVO){
+        return communityService.notifyMcsOrder(mcsOrderVO);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/MicroCommercialStreetApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/MicroCommercialStreetApi.java
new file mode 100644
index 0000000..be389a2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/MicroCommercialStreetApi.java
@@ -0,0 +1,171 @@
+package com.panzhihua.applets_backstage.api;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageMcsEvaluateDTO;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsEvaluateVO;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+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.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.DisableOrEnableMcsMerchantDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.McsMerchantDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageMcsGameDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageMcsInformationDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageMcsMerchantDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.SetPopularForGameDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.SetShelfForGameDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.SetShelfForInfoDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsConfigVO;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsGameVO;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsInformationVO;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsMerchantVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.validated.AddGroup;
+import com.panzhihua.common.validated.PutGroup;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * @title: MicroCommercialStreetApi
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 微商业街相关接口
+ * @author: hans
+ * @date: 2021/12/28 14:18
+ */
+@Api(tags = {"微商业街"})
+@RestController
+@RequestMapping("/microcommercialstreet")
+public class MicroCommercialStreetApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "新增数字商业街商家")
+    @PostMapping("/merchant/add")
+    public R addMcsMerchant(@RequestBody @Validated(AddGroup.class) McsMerchantDTO mcsMerchantDTO) {
+        Long userId = this.getUserId();
+        mcsMerchantDTO.setCreatedBy(userId);
+        mcsMerchantDTO.setUpdatedBy(userId);
+        return communityService.addMcsMerchant(mcsMerchantDTO);
+    }
+
+    @ApiOperation(value = "编辑数字商业街商家")
+    @PutMapping("/merchant/put")
+    public R putMcsMerchant(@RequestBody @Validated(PutGroup.class) McsMerchantDTO mcsMerchantDTO) {
+        mcsMerchantDTO.setUpdatedBy(this.getUserId());
+        return communityService.putMcsMerchant(mcsMerchantDTO);
+    }
+
+    @ApiOperation(value = "查询数字商业街商家详情", response = McsMerchantVO.class)
+    @GetMapping("/merchant/get")
+    public R getMcsMerchant(@RequestParam("merchantId") Long merchantId) {
+        return communityService.getMcsMerchant(merchantId);
+    }
+
+    @ApiOperation(value = "删除数字商业街商家")
+    @DeleteMapping("/merchant/delete")
+    public R deleteMcsMerchant(@RequestParam("merchantId") Long merchantId) {
+        return communityService.deleteMcsMerchant(merchantId, this.getUserId());
+    }
+
+    @ApiOperation(value = "分页查询数字商业街商家", response = McsMerchantVO.class)
+    @PostMapping("/merchant/page")
+    public R pageMcsMerchant(@RequestBody @Valid PageMcsMerchantDTO pageMcsMerchantDTO) {
+        return communityService.pageMcsMerchant(pageMcsMerchantDTO);
+    }
+
+    @ApiOperation(value = "禁用/启用数字商业街商家")
+    @PutMapping("/merchant/disable-or-enable")
+    public R disableOrEnableMcsMerchant(@RequestBody @Valid DisableOrEnableMcsMerchantDTO disableOrEnableMcsMerchantDTO) {
+        disableOrEnableMcsMerchantDTO.setUpdatedBy(this.getUserId());
+        return communityService.disableOrEnableMcsMerchant(disableOrEnableMcsMerchantDTO);
+    }
+
+    @ApiOperation(value = "获取所有数字商业街配置", response = McsConfigVO.class)
+    @GetMapping("/config/all")
+    public R getAllMcsConfig() {
+        return communityService.getAllMcsConfig();
+    }
+
+    @ApiOperation(value = "修改数字商业街配置")
+    @PutMapping("/config/put")
+    public R putMcsConfig(@RequestBody List<McsConfigVO> configs) {
+        return communityService.putMcsConfig(configs);
+    }
+
+    @ApiOperation(value = "分页查询戳戳游戏", response = McsGameVO.class)
+    @PostMapping("/game/page")
+    public R pageMcsGame(@RequestBody @Valid PageMcsGameDTO pageMcsGameDTO) {
+        return communityService.pageMcsGame(pageMcsGameDTO);
+    }
+
+    @ApiOperation(value = "设为/取消游戏热门")
+    @PutMapping("/game/setPopular")
+    public R setPopularForGame(@RequestBody @Valid SetPopularForGameDTO setPopularForGameDTO) {
+        setPopularForGameDTO.setUpdatedBy(this.getUserId());
+        return communityService.setPopularForGame(setPopularForGameDTO);
+    }
+
+    @ApiOperation(value = "上架/下架戳戳游戏")
+    @PutMapping("/game/setShelf")
+    public R setShelfForGame(@RequestBody @Valid SetShelfForGameDTO setShelfForGameDTO) {
+        setShelfForGameDTO.setUpdatedBy(this.getUserId());
+        return communityService.setShelfForGame(setShelfForGameDTO);
+    }
+
+    @ApiOperation(value = "删除戳戳游戏")
+    @DeleteMapping("/game/delete")
+    public R deleteMcsGame(@RequestParam("gameId") Long gameId) {
+        return communityService.deleteMcsGame(gameId, this.getUserId());
+    }
+
+    @ApiOperation(value = "分页查询戳戳资讯", response = McsInformationVO.class)
+    @PostMapping("/information/page")
+    public R pageMcsInfo(@RequestBody @Valid PageMcsInformationDTO pageMcsInformationDTO) {
+        return communityService.pageMcsInfo(pageMcsInformationDTO);
+    }
+
+    @ApiOperation(value = "上架/下架戳戳资讯")
+    @PutMapping("/information/setShelf")
+    public R setShelfForMcsInfo(@RequestBody @Valid SetShelfForInfoDTO setShelfForInfoDTO) {
+        setShelfForInfoDTO.setUpdatedBy(this.getUserId());
+        return communityService.setShelfForMcsInfo(setShelfForInfoDTO);
+    }
+
+    @ApiOperation(value = "删除戳戳资讯")
+    @DeleteMapping("/information/delete")
+    public R deleteMcsInfo(@RequestParam("infoId") Long infoId) {
+        return communityService.deleteMcsInfo(infoId, this.getUserId());
+    }
+
+    @ApiOperation(value = "分页查询评价记录", response = McsEvaluateVO.class)
+    @PostMapping("/evaluate/page")
+    public R pageMcsEvaluate(@RequestBody @Valid PageMcsEvaluateDTO pageMcsEvaluateDTO) {
+        return communityService.pageMcsEvaluate(pageMcsEvaluateDTO);
+    }
+
+    @ApiOperation(value = "查询评价记录详情", response = McsEvaluateVO.class)
+    @GetMapping("/evaluate/get")
+    public R getMcsEvaluate(@RequestParam("evaluateId") Long evaluateId) {
+        return communityService.getMcsEvaluate(evaluateId);
+    }
+
+    @ApiOperation(value = "删除评价记录")
+    @DeleteMapping("/evaluate/delete")
+    public R deleteMcsEvaluate(@RequestParam("evaluateId") Long evaluateId) {
+        return communityService.deleteMcsEvaluate(evaluateId);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/NeighborApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/NeighborApi.java
new file mode 100644
index 0000000..6f8259a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/NeighborApi.java
@@ -0,0 +1,68 @@
+package com.panzhihua.applets_backstage.api;
+
+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;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.neighbor.*;
+import com.panzhihua.common.model.vos.user.SysUserNoticeVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.user.UserService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+import static java.util.Objects.isNull;
+
+/**
+ * @auther llming
+ * @describe
+ */
+@Slf4j
+@RestController
+@RequestMapping("/neighbor/")
+@Api(tags = {"邻里圈服务"})
+public class NeighborApi extends BaseController {
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private UserService userService;
+
+    @ApiOperation(value = "分页查询邻里圈话题列表", response = ComActNeighborCircleTopicAdminVO.class)
+    @PostMapping("pageNeighborTopicByAdmin")
+    public R pageNeighborTopicByAdmin(@RequestBody ComActNeighborCircleTopicAdminDTO circleTopicAdminDTO) {
+        return communityService.pageNeighborTopicByAdmin(circleTopicAdminDTO);
+    }
+
+    @ApiOperation(value = "添加邻里圈话题")
+    @PostMapping("addNeighborTopicByAdmin")
+    public R addNeighborTopicByAdmin(@RequestBody AddNeighborCircleTopicAdminDTO addCircleTopicAdminDTO) {
+        addCircleTopicAdminDTO.setUserId(this.getUserId());
+        return communityService.addNeighborTopicByAdmin(addCircleTopicAdminDTO);
+    }
+
+    @ApiOperation(value = "编辑邻里圈话题")
+    @PostMapping("editNeighborTopicByAdmin")
+    public R editNeighborTopicByAdmin(@RequestBody AddNeighborCircleTopicAdminDTO addCircleTopicAdminDTO) {
+        if (addCircleTopicAdminDTO.getId() == null) {
+            return R.fail("参数错误");
+        }
+        return communityService.editNeighborTopicByAdmin(addCircleTopicAdminDTO);
+    }
+    /**
+     * 删除话题
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "删除话题")
+    @GetMapping("deleteNeighborTopic")
+    public R deleteNeighborTopic(@RequestParam("id") Long id){
+        return communityService.deleteNeighborTopic(id);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/RentingHousesContractConfigApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/RentingHousesContractConfigApi.java
new file mode 100644
index 0000000..5548021
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/RentingHousesContractConfigApi.java
@@ -0,0 +1,50 @@
+package com.panzhihua.applets_backstage.api;
+
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+
+import com.panzhihua.common.controller.BaseController;
+import io.swagger.annotations.Api;
+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.RestController;
+
+import com.panzhihua.common.model.dtos.community.rentingHouses.PageRentingHousesConfigDTO;
+import com.panzhihua.common.model.dtos.community.rentingHouses.RentingHousesConfigDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.rentingHouses.RentingHousesConfigVO;
+import com.panzhihua.common.service.community.CommunityService;
+
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * @title: RentingHousesContractConfigApi
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 房屋租赁配置相关接口
+ * @author: hans
+ * @date: 2021/11/23 13:32
+ */
+@RestController
+@Api(tags = {"房屋租赁配置"})
+@RequestMapping("/rentingHousesConfig")
+public class RentingHousesContractConfigApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @PostMapping("/page")
+    @ApiOperation(value = "分页查询房屋租赁基础配置", response = RentingHousesConfigVO.class)
+    public R pageRentingHousesConfig(@RequestBody @Valid PageRentingHousesConfigDTO pageRentingHousesConfigDTO) {
+        return communityService.pageRentingHousesConfig(pageRentingHousesConfigDTO);
+    }
+
+    @PutMapping("/update")
+    @ApiOperation("更新配置信息")
+    public R updateRentingHousesConfig(@RequestBody @Valid RentingHousesConfigDTO rentingHousesConfigDTO) {
+        rentingHousesConfigDTO.setUserId(getUserId());
+        return communityService.updateRentingHousesConfig(rentingHousesConfigDTO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ShopApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ShopApi.java
new file mode 100644
index 0000000..54b1025
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/ShopApi.java
@@ -0,0 +1,383 @@
+package com.panzhihua.applets_backstage.api;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.net.URLEncoder;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+import java.util.UUID;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.excel.CustomSheetWriteHandler;
+import com.panzhihua.common.interfaces.ShopOperLog;
+import com.panzhihua.common.model.dtos.shop.*;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.shop.*;
+import com.panzhihua.common.model.vos.user.ChangePasswordVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.ClazzUtils;
+import com.panzhihua.common.utlis.SFTPUtil;
+import com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther llming
+ * @describe 商城管理
+ */
+@Slf4j
+@Api(tags = {"商城管理模块"})
+@RestController("/shop")
+public class ShopApi extends BaseController {
+    @Value("${excel.userurl}")
+    private String excelUrl;
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private UserService userService;
+
+    @ApiOperation(value = "分页查询商家", response = PageShopStoreVO.class)
+    @PostMapping("/store/page")
+    public R pageVolunteer(@RequestBody PageComShopStoreDTO pageComShopStoreDTO) {
+        return communityService.pageStoreList(pageComShopStoreDTO);
+    }
+
+    @ApiOperation(value = "保存商家")
+    @PostMapping("/store/save")
+    @Transactional(rollbackFor = Exception.class)
+    public R saveStore(@Validated @RequestBody ShopStoreVO storeVO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long loginUserId = loginUserInfo.getUserId();
+        if (storeVO == null) {
+            return R.fail();
+        }
+        storeVO.setLoginUserId(loginUserId);
+        // 查询该手机号是否已注册到平台
+        R isAddStore = communityService.addStore(storeVO);
+        if (isAddStore.getCode() != 200) {
+            return isAddStore;
+        }
+        R isAddSysUser = userService.addSysUser(storeVO);
+        if (isAddSysUser.getCode() != 200) {
+            return isAddSysUser;
+        }
+        return R.ok();
+    }
+
+    // @ApiOperation(value = "编辑商家、启用、禁用")
+    @PostMapping("/storebak/edit/{id}")
+    // @ApiImplicitParam(name = "id", value = "商家id")
+    public R editStoreBak(@Valid @RequestBody ShopStoreVO storeVO, @PathVariable("id") Long id) {
+        R<LoginUserInfoVO> sysUserVO = userService.getSysUserVOByAccountAndType(storeVO.getStoreAccount(), 5);
+        if (sysUserVO.getData() == null) {
+            return R.fail("没有相关的用户!");
+        }
+
+        LoginUserInfoVO user =
+            JSON.parseObject(JSON.toJSONString(sysUserVO.getData())).toJavaObject(LoginUserInfoVO.class);
+        storeVO.setSysUserId(user.getUserId());
+        R<ShopStoreVO> storeInfoVO = communityService.getStoreInfo(id);
+        if (storeInfoVO.getCode() == 500) {
+            return R.fail(storeInfoVO.getMsg());
+        }
+        // 维护sys_user
+        ShopStoreVO shopStoreVO =
+            JSON.parseObject(JSON.toJSONString(storeInfoVO.getData())).toJavaObject(ShopStoreVO.class);
+        ChangePasswordVO changePasswordVO = new ChangePasswordVO();
+        changePasswordVO.setOldPassword(shopStoreVO.getStorePassword());
+        changePasswordVO.setUserId(user.getUserId());
+        changePasswordVO.setNewPassword(storeVO.getStorePassword());
+        R r = userService.changePassword(changePasswordVO);
+        if (R.isOk(r) || r.getMsg().equals("新密码与原密码不能相同")) {
+            return communityService.editStore(storeVO, id);
+        }
+        return R.fail();
+    }
+
+    @ApiOperation(value = "编辑商家、启用、禁用")
+    @PostMapping("/store/edit/{id}")
+    @ApiImplicitParam(name = "id", value = "商家id")
+    public R editStore(@Validated @RequestBody ShopStoreVO storeVO, @PathVariable("id") Long id) {
+        // 判断参数
+        if (storeVO == null || id == null) {
+            return R.fail("参数错误");
+        }
+        storeVO.setId(id);
+        // 修改店铺信息
+        R editStore = communityService.editStore(storeVO, id);
+        if (editStore == null || editStore.getCode() != Constants.SUCCESS) {
+            return editStore;
+        }
+        // 修改SysUser信息
+        R editUser = userService.editSysUser(storeVO);
+        if (editUser == null || editUser.getCode() != Constants.SUCCESS) {
+            return editUser;
+        }
+        return R.ok();
+    }
+
+    @ApiOperation(value = "删除商家")
+    @PostMapping("/store/delete")
+    public R delete(@RequestBody Long[] ids) {
+        return communityService.deleteStore(ids);
+    }
+
+    @ApiOperation(value = "分页查询商品", response = PageShopGoodsVO.class)
+    @PostMapping("/goods/page")
+    public R pageGoodsList(@RequestBody PageComShopGoodsDTO pageComShopGoodsDTO) {
+        return communityService.pageGoodsList(pageComShopGoodsDTO);
+    }
+
+    @ApiOperation(value = "新增商品")
+    @PostMapping("/goods/save")
+    R saveShopGoods(@RequestBody @Validated(AddGroup.class) AddShopGoodsVO addShopGoodsVO) {
+        return communityService.saveShopGoods(addShopGoodsVO);
+    }
+
+    @ApiOperation(value = "编辑商品")
+    @PostMapping("/goods/edit/{id}")
+    R editShopGoods(@PathVariable("id") Long id,
+        @RequestBody @Validated(AddGroup.class) AddShopGoodsVO addShopGoodsVO) {
+        return communityService.editShopGoods(id, addShopGoodsVO);
+    }
+
+    @ApiOperation(value = "删除商品")
+    @PostMapping("/goods/delete")
+    R deleteShopGoods(@RequestBody Long[] id) {
+        return communityService.deleteShopGoods(id);
+    }
+
+    @ApiOperation(value = "商品上下架")
+    @ApiImplicitParams({@ApiImplicitParam(name = "id", value = "商品Id"),
+        @ApiImplicitParam(name = "status", value = "1.上架  2.下架 ")})
+    @GetMapping("/goods/changeStatus")
+    R changeStatus(@RequestParam("id") Long id, @RequestParam("status") Integer status) {
+        return communityService.changeStatus(id, status);
+    }
+
+    @ApiOperation(value = "订单_分页列表", response = ComShopOrderSearchVO.class)
+    @PostMapping("/order/page")
+    public R page(@RequestBody @Validated PageComShopOrderSearchDTO pageComShopOrderSearchDTO) {
+        // pageComShopOrderSearchDTO.setUserId(this.getUserId());
+        ClazzUtils.setIfStringIsEmpty(pageComShopOrderSearchDTO);
+        return communityService.pageShopOrder(pageComShopOrderSearchDTO);
+    }
+
+    @ApiOperation(value = "订单_详细", response = ComShopOrderPageVO.class)
+    @GetMapping("/order/detail")
+    @ShopOperLog(operType = 11)
+    public R detail(@RequestParam("orderId") Long orderId) {
+        return communityService.orderDetail(orderId);
+    }
+
+    @ApiOperation(value = "订单_导出表格")
+    @PostMapping("/order/export")
+    @ShopOperLog(operType = 12)
+    public R export(@RequestBody ComShopOrderExportDTO comShopOrderExportDTO) {
+        ClazzUtils.setIfStringIsEmpty(comShopOrderExportDTO);
+        String url = excelUrl;
+        String uuid = UUID.randomUUID().toString().replace("-", "");
+        // String name=uuid+".xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+
+        R r = communityService.shopOrderExportData(comShopOrderExportDTO);
+        if (R.isOk(r)) {
+            List<ExcelShopOrderDTO> excelShopOrderDTO =
+                JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ExcelShopOrderDTO.class);
+            if (excelShopOrderDTO == null || excelShopOrderDTO.size() == 0) {
+                return R.ok("未找到数据");
+            }
+            try {
+                SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+                sftp.login();
+                String name = "商城订单-" + new SimpleDateFormat("yyyyMMddhhmmss").format(new Date()) + ".xlsx";
+                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, ExcelShopOrderDTO.class)
+                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet("订单").build();
+                        excelWriter.write(excelShopOrderDTO, 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(url + URLEncoder.encode(name, "UTF-8"));
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error("文件传输失败【{}】", e.getMessage());
+                return R.fail();
+            }
+        }
+        return R.fail("导出数据失败");
+    }
+
+    @ApiOperation(value = "资金_统计信息")
+    @GetMapping("/capital/stat")
+    public R stat() {
+        Long userId = 0L;
+        return communityService.getFundsStat(userId);
+    }
+
+    @ApiOperation(value = "资金_分页列表")
+    @PostMapping("/capital/page")
+    public R page(@RequestBody PageComShopFundsSearchDTO pageComShopFundsSearchDTO) {
+        pageComShopFundsSearchDTO.setUserId(getUserId());
+        ClazzUtils.setIfStringIsEmpty(pageComShopFundsSearchDTO);
+        return communityService.pageShopFunds(pageComShopFundsSearchDTO);
+    }
+
+    @ApiOperation(value = "资金_详情", response = CapitalDetailVO.class)
+    @ApiImplicitParam(name = "orderId", value = "订单Id")
+    @GetMapping("/capital/capitalDetailByStore")
+    R capitalDetailByStore(@RequestParam("orderId") Long orderId) {
+        return communityService.capitalDetailByStore(orderId);
+    }
+
+    @ApiOperation(value = "资金_导出表格")
+    @PostMapping("/capital/export")
+    @ShopOperLog(operType = 12)
+    public R export(@RequestBody ComShopFundsExportDTO comShopFundsExportDTO) {
+        ClazzUtils.setIfStringIsEmpty(comShopFundsExportDTO);
+        String url = excelUrl;
+        String uuid = UUID.randomUUID().toString().replace("-", "");
+        // String name=uuid+".xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+
+        Long userId = this.getUserId();
+        comShopFundsExportDTO.setUserId(userId);
+        R r = communityService.shopOrderFundsExportData(comShopFundsExportDTO);
+        if (R.isOk(r)) {
+            List<ExcelShopFundsDTO> excelShopFundsDTO =
+                JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ExcelShopFundsDTO.class);
+            if (excelShopFundsDTO == null || excelShopFundsDTO.size() == 0) {
+                return R.ok("未找到数据");
+            }
+            try {
+                SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+                sftp.login();
+                String name = "商家资金流水-" + new SimpleDateFormat("yyyyMMddhhmmss").format(new Date()) + ".xlsx";
+                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, ExcelShopFundsDTO.class)
+                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet("订单").build();
+                        excelWriter.write(excelShopFundsDTO, 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(url + URLEncoder.encode(name, "UTF-8"));
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error("文件传输失败【{}】", e.getMessage());
+                return R.fail();
+            }
+        }
+        return R.fail("导出数据失败");
+    }
+
+    @ApiOperation(value = "商家配置修改")
+    @PutMapping("/shop/conf")
+    public R editConf(@RequestBody ComShopSysConfDTO comShopSysConfDTO) {
+        return communityService.editShopSysConf(comShopSysConfDTO);
+    }
+
+    @ApiOperation(value = "商家配置查询", response = ComShopHiddenConfVO.class)
+    @GetMapping("/shop/conf")
+    public R getConf() {
+        PageComShopSysConfDTO pageComShopSysConfDTO = new PageComShopSysConfDTO();
+        R r = communityService.pageShopSysConf(pageComShopSysConfDTO);
+        if (R.isOk(r) && r.getData() != null) {
+            ComShopSysConfVO comShopSysConfVO =
+                JSONObject.parseObject(JSONObject.toJSONString(r.getData()), ComShopSysConfVO.class);
+            if (comShopSysConfVO != null) {
+                ComShopHiddenConfVO comShopHiddenConfVO = new ComShopHiddenConfVO();
+                comShopHiddenConfVO.setId(comShopSysConfVO.getId());
+                comShopHiddenConfVO.setHidden(comShopSysConfVO.getVal());
+                return R.ok(comShopHiddenConfVO);
+            }
+        }
+        return r;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/StreetApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/StreetApi.java
new file mode 100644
index 0000000..947c2a1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/StreetApi.java
@@ -0,0 +1,98 @@
+package com.panzhihua.applets_backstage.api;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.service.partybuilding.NewStriveForFeign;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.PageComStreetDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComStreetVO;
+import com.panzhihua.common.model.vos.user.AdministratorsUserVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.user.UserService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * @description: 街道管理
+ * @author: llming
+ **/
+@Api(tags = {"街道管理"})
+@RestController
+@RequestMapping("/streetmanager/")
+public class StreetApi extends BaseController {
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private UserService userService;
+
+
+    @Resource
+    private NewStriveForFeign newStriveForFeign;
+
+
+    @ApiOperation(value = "分页查询街道", response = PageComStreetDTO.class)
+    @PostMapping("pagestreet")
+    public R pageStreet(@RequestBody PageComStreetDTO pageComStreetDTO) {
+        pageComStreetDTO.setAreaCode(this.getAreaCode());
+        return communityService.pageStreet(pageComStreetDTO);
+    }
+
+    @ApiOperation(value = "查询街道", response = ComStreetVO.class)
+    @PostMapping("liststreet")
+    public R listStreet(@RequestBody ComStreetVO comStreetVO) {
+        R r = communityService.listStreet(comStreetVO);
+        return r;
+    }
+
+    @ApiOperation(value = "新增街道", response = ComStreetVO.class)
+    @PostMapping("addstreet")
+    public R pageStreet(@RequestBody ComStreetVO comStreetVO) {
+        R<ComStreetVO> r = communityService.addStreet(comStreetVO);
+        return r;
+    }
+
+    @ApiOperation(value = "批量删除街道")
+    @PostMapping("deletestreet")
+    public R pageStreet(@RequestBody List<Long> Ids) {
+        return communityService.delectStreat(Ids);
+    }
+
+    @ApiOperation("修改街道")
+    @PostMapping("/update")
+    public R update(@RequestBody ComStreetVO comStreetVO){
+        return communityService.updateStreet(comStreetVO);
+    }
+
+    @DeleteMapping("/remove/{id}")
+    @ApiOperation("删除街道")
+    public R remove(@PathVariable("id") Long id){
+        return communityService.removeStreet(id);
+    }
+
+    @ApiOperation("重置密码")
+    @PostMapping("repass")
+    public R repass(@RequestBody ComStreetVO comStreetVO){
+        return communityService.repassStreet(comStreetVO);
+    }
+
+//   手动刷新社区活动未签到时间
+    @GetMapping("comActActRegistUpdateEndTime")
+    public R comActActRegistUpdateEndTime()
+    {
+        return communityService.comActActRegistUpdateEndTime();
+    }
+
+//    手动双挣双评需求清单未签到时间
+    @GetMapping("upNewFightNeedProblemClaimEndTime")
+    public R upNewFightNeedProblemClaimEndTime()
+    {
+        return newStriveForFeign.upNewFightNeedProblemClaimEndTime();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/SystemManagementApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/SystemManagementApi.java
new file mode 100644
index 0000000..24b3131
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/SystemManagementApi.java
@@ -0,0 +1,245 @@
+package com.panzhihua.applets_backstage.api;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.util.ObjectUtils;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.interfaces.OperLog;
+import com.panzhihua.common.model.dtos.AppletesBackstageConfigDTO;
+import com.panzhihua.common.model.dtos.advertisement.ComOpsAdvJumpDTO;
+import com.panzhihua.common.model.dtos.user.PageFeedBackDTO;
+import com.panzhihua.common.model.vos.AppletesBackstageConfigVO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.user.*;
+import com.panzhihua.common.service.HanyuPinyinHelper;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.validated.AddGroup;
+import com.panzhihua.common.validated.PageGroup;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 系统管理
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-24 09:19
+ **/
+@Api(tags = {"系统管理"})
+@RestController
+@RequestMapping("/systemmanagement/")
+public class SystemManagementApi extends BaseController {
+    @Resource
+    private UserService userService;
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "新增运营后台账户")
+    @PostMapping("user")
+    @OperLog(operModul = "用户管理", operType = 1)
+    public R addUser(@RequestBody @Validated(AddGroup.class) AdministratorsUserVO administratorsUserVO) {
+        administratorsUserVO.setType(2);
+        administratorsUserVO.setAreaId(null);
+        administratorsUserVO.setCommunityId(0l);
+        administratorsUserVO.setAppid(this.getAppId());
+        return userService.addUserBackstage(administratorsUserVO);
+    }
+
+    @ApiOperation(value = "编辑运营后台账户")
+    @PutMapping("user")
+    @OperLog(operModul = "用户管理", operType = 2)
+    public R putUserBackstage(@RequestBody AdministratorsUserVO administratorsUserVO) {
+        Long userId = administratorsUserVO.getUserId();
+        if (null == userId || 0 == userId) {
+            return R.fail("用户主键不能为空");
+        }
+        administratorsUserVO.setType(2);
+        administratorsUserVO.setAreaId(null);
+        administratorsUserVO.setCommunityId(0l);
+        Integer status = administratorsUserVO.getStatus();
+        if (null != status && status.intValue() == 0) {
+            administratorsUserVO.setStatus(null);
+        }
+        return userService.putUserBackstage(administratorsUserVO);
+    }
+
+    @ApiOperation(value = "删除后台用户")
+    @DeleteMapping("user")
+    @OperLog(operModul = "用户管理", operType = 3)
+    public R deleteUserBackstage(@RequestBody AdministratorsUserVO administratorsUserVO) {
+        Long userId = administratorsUserVO.getUserId();
+        if (null == userId || 0 == userId) {
+            return R.fail("用户主键不能为空");
+        }
+        administratorsUserVO.setCommunityId(0l);
+        return userService.deleteUserBackstage(administratorsUserVO);
+    }
+
+    @ApiOperation(value = "角色下拉列表", response = RoleVO.class)
+    @GetMapping("listrolebackstage")
+    public R listRoleBackstage(@RequestParam("pageNum")Integer pageNum,@RequestParam("pageSize")Integer pageSize) {
+        Long communityId = 0L;
+        return userService.listRoleBackstage(communityId,pageNum,pageSize,this.getAreaCode());
+    }
+
+    @ApiOperation(value = "分页查询后台用户", response = AdministratorsUserVO.class)
+    @PostMapping("pageuser")
+    public R pageUserBackstage(@RequestBody AdministratorsUserVO administratorsUserVO) {
+        administratorsUserVO.setAreaCode(this.getAreaCode());
+        return userService.pageUserBackstage(administratorsUserVO);
+    }
+
+    // @ApiOperation(value = "新增角色")
+    // @PostMapping("role")
+    // @OperLog(operModul = "角色管理",operType = 1)
+    // public R addRoleBackstage(@RequestBody RoleVO roleVO){
+    // String roleName = roleVO.getRoleName();
+    // if (ObjectUtils.isEmpty(roleName)) {
+    // return R.fail("角色名字不能为空");
+    // }
+    // roleVO.setCommunityId(0l);
+    // Long userId = this.getUserId();
+    // roleVO.setCreateBy(userId);
+    // roleVO.setStatus(0);
+    // HanyuPinyinHelper hanyuPinyinHelper = new HanyuPinyinHelper() ;
+    // roleVO.setRoleKey(hanyuPinyinHelper.toHanyuPinyin(roleName));
+    // return userService.addRoleBackstage(roleVO);
+    // }
+
+    @ApiOperation(value = "新增角色-设置角色的权限")
+    @PostMapping("menu")
+    @OperLog(operModul = "角色管理", operType = 1)
+    public R addMenuRole(@RequestBody @Validated MenuRoleVO menuRoleVO) {
+        RoleVO roleVO = new RoleVO();
+        String roleName = menuRoleVO.getRoleName();
+        if (ObjectUtils.isEmpty(roleName)) {
+            return R.fail("角色名字不能为空");
+        }
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long userId = loginUserInfo.getUserId();
+        Long communityId = 0l;
+        roleVO.setRoleName(roleName);
+        roleVO.setCommunityId(communityId);
+        roleVO.setCreateBy(userId);
+        roleVO.setStatus(0);
+        roleVO.setAreaCode(this.getAreaCode());
+        HanyuPinyinHelper hanyuPinyinHelper = new HanyuPinyinHelper();
+        roleVO.setRoleKey(hanyuPinyinHelper.toHanyuPinyin(roleName));
+        R r = userService.addRoleBackstage(roleVO);
+        if (R.isOk(r)) {
+            Long roleId = Long.parseLong(r.getData().toString());
+            menuRoleVO.setRoleId(roleId);
+            menuRoleVO.setCommunityId(communityId);
+            return userService.putMenuRole(menuRoleVO);
+        }
+        return r;
+    }
+
+    @ApiOperation(value = "获取角色的权限配置列表", response = SysMenuVO.class)
+    @GetMapping("listmenurole")
+    @ApiImplicitParam(name = "roleId", value = "角色id")
+    public R listMenuBackstageByRole(@RequestParam("roleId") Long roleId) {
+        return userService.listMenuBackstageByRole(roleId);
+    }
+
+    @ApiOperation(value = "删除角色")
+    @DeleteMapping("role")
+    @OperLog(operModul = "角色管理", operType = 3)
+    public R deleteRoleBackstage(@RequestBody RoleVO roleVO) {
+        Long roleId = roleVO.getRoleId();
+        if (null == roleId || 0 == roleId) {
+            return R.fail("角色主键不能为空");
+        }
+        return userService.deleteRoleBackstage(roleVO);
+    }
+
+    @ApiOperation(value = "运营平台权限配置列表", response = SysMenuVO.class)
+    @GetMapping("listmenu")
+    public R listMenuBackstage() {
+        Long communityId = 0l;
+        return userService.listMenuBackstage(communityId);
+    }
+
+    @ApiOperation(value = "设置角色的权限")
+    @PutMapping("menu")
+    @OperLog(operModul = "角色管理", operType = 2)
+    public R putMenuRole(@RequestBody @Validated MenuRoleVO menuRoleVO) {
+        menuRoleVO.setCommunityId(0l);
+        return userService.putMenuRole(menuRoleVO);
+    }
+
+    @ApiOperation(value = "分页展示操作日志", response = SysOperLogVO.class)
+    @PostMapping("pageoperlog")
+    public R pageOperLog(@RequestBody SysOperLogVO sysOperLogVO) {
+//        sysOperLogVO.setCommunityId(0l);
+//        sysOperLogVO.setAreaCode(this.getAreaCode());
+        return userService.pageOperLog(sysOperLogVO);
+    }
+
+    @ApiOperation(value = "用户协议", response = SysUserAgreementVO.class)
+    @GetMapping("listagreement")
+    public R listAgreement() {
+        return userService.listAgreement(0L);
+    }
+
+    @ApiOperation(value = "编辑用户协议")
+    @PutMapping("agreement")
+    @OperLog(operModul = "用户协议", operType = 2)
+    public R putAgreement(@RequestBody SysUserAgreementVO sysUserAgreementVO) {
+        Long id = sysUserAgreementVO.getId();
+        if (null == id || id == 0) {
+            return R.fail("协议主键不能为空");
+        }
+        return userService.putAgreement(sysUserAgreementVO);
+    }
+
+    @ApiOperation(value = "获取系统配置", response = AppletesBackstageConfigVO.class)
+    @GetMapping("config")
+    public R getConfig() {
+        return communityService.getJumpContent();
+    }
+
+    @ApiOperation(value = "编辑系统配置")
+    @PutMapping("config")
+    @OperLog(operModul = "系统配置", operType = 2)
+    public R putConfig(@RequestBody AppletesBackstageConfigDTO appletesBackstageConfigDTO) {
+        List<ComOpsAdvJumpDTO> comOpsAdvJumpDTOS = appletesBackstageConfigDTO.getComOpsAdvJumpDTOS();
+        if (ObjectUtils.isEmpty(comOpsAdvJumpDTOS)) {
+            return R.fail("广告跳转内容不能为空");
+        }
+        return communityService.putJumpContent(appletesBackstageConfigDTO);
+    }
+
+    @ApiOperation(value = "分页查询用户意见反馈", response = SysUserFeedbackVO.class)
+    @PostMapping("pagefeedback")
+    public R pageFeedback(@RequestBody @Validated(PageGroup.class) PageFeedBackDTO pageFeedBackDTO) {
+        pageFeedBackDTO.setAreaCode(this.getAreaCode());
+        return userService.pageFeedback(pageFeedBackDTO);
+    }
+
+    @ApiOperation(value = "反馈意见详情", response = SysUserFeedbackVO.class)
+    @GetMapping("feedback")
+    public R detailFeedback(@RequestParam("id") Long id) {
+        return userService.detailFeedback(id);
+    }
+
+    @ApiOperation(value = "删除意见反馈")
+    @DeleteMapping("feedback")
+    public R deleteFeedback(@RequestParam("id") Long id) {
+        return userService.deleteFeedback(id);
+    }
+
+    @ApiOperation("回复意见反馈或修改意见反馈回复")
+    @PostMapping("feedback")
+    public R replyFeedBack(@RequestBody SysUserFeedbackVO sysUserFeedbackVO){
+        return userService.updateFeedBack(sysUserFeedbackVO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/UserApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/UserApi.java
new file mode 100644
index 0000000..f0ae3c1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/UserApi.java
@@ -0,0 +1,170 @@
+package com.panzhihua.applets_backstage.api;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.applets_backstage.model.vos.LCArguments;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.interfaces.OperLog;
+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.user.ChangePasswordVO;
+import com.panzhihua.common.model.vos.user.SysMenuVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.HttpClientUtil;
+import com.panzhihua.common.utlis.StringUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 用户
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-24 13:48
+ **/
+@Api(tags = {"用户模块"})
+@RestController
+@RequestMapping("/user/")
+public class UserApi extends BaseController {
+    @Resource
+    private UserService userService;
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+
+    @ApiOperation(value = "当前登录用户信息", response = LoginUserInfoVO.class)
+    @GetMapping("info")
+    public R getUserInfo() {
+        Long userId = this.getUserId();
+        R<LoginUserInfoVO> r=userService.detailUser(userId);
+        if(r.getData()!=null){
+            LoginUserInfoVO loginUserInfoVO=r.getData();
+            if(StringUtils.isNotEmpty(loginUserInfoVO.getAreaCode())){
+                switch (loginUserInfoVO.getAreaCode()){
+                    case "510423": loginUserInfoVO.setCommunityName("西区运营后台");
+                    break;
+                    case "510411": loginUserInfoVO.setCommunityName("仁和区运营后台");
+                    break;
+                    case "510402": loginUserInfoVO.setCommunityName("东区运营后台");
+                    break;
+                    default:loginUserInfoVO.setCommunityName("运营后台");
+                }
+            }
+            return R.ok(loginUserInfoVO);
+        }
+        return R.fail("无用户信息");
+    }
+
+    @ApiOperation(value = "修改密码")
+    @PutMapping("changepassword")
+    @OperLog(operModul = "密码管理", operType = 2)
+    public R changePassword(@Validated @RequestBody ChangePasswordVO changePasswordVO) {
+        Long userId = this.getUserId();
+        String newPassword = changePasswordVO.getNewPassword();
+        String oldPassword = changePasswordVO.getOldPassword();
+        if (newPassword.equals(oldPassword)) {
+            return R.fail("修改失败,新密码和原密码一致");
+        }
+        changePasswordVO.setUserId(userId);
+        return userService.changePassword(changePasswordVO);
+    }
+
+    @ApiOperation(value = "用户菜单获取", response = SysMenuVO.class)
+    @GetMapping("listmenu")
+    public R listmenu() {
+        Long userId = this.getUserId();
+        return userService.listmenu(userId);
+    }
+    @ApiOperation("重置密码")
+    @GetMapping("/unlock")
+    public R unlock(@RequestParam("type")Integer type,@RequestParam("isReset")Integer isReset,@RequestParam("account")String account){
+        stringRedisTemplate.delete("LOGIN_FAIL_"+account+"_"+type+"_"+this.getAppId());
+        if(isReset==1){
+            userService.resetPasswordAccount(type,account,this.getAppId());
+        }
+        return R.ok();
+    }
+
+    @ApiOperation("新增投诉建议或问题留言")
+    @PostMapping("addFeedBack")
+    public R addFeedBack(@RequestBody SysUserFeedbackDTO sysUserFeedbackDTO){
+        return userService.addFeedback(sysUserFeedbackDTO);
+    }
+
+/*    @ApiOperation("查看自己的投诉建议或问题留言记录")
+    @GetMapping("myFeedBack")
+    public R myFeedBack(@ApiParam("类型:1问题留言2投诉建议") @RequestParam(value = "type",required = false)Integer type){
+        return userService.myFeedBack(this.getLoginUserInfo().getUserId(),type);
+    }*/
+
+
+
+
+    @ApiOperation("获取浪潮token")
+    @GetMapping("getLCtoken")
+    public R myFeedBack(@RequestParam(value = "username",required = false) String username,
+                        @RequestParam(value = "password",required = false) String password)
+    {
+//        String url="http://117.172.73.171:9901/aaToken?username=huacheng&password=hc1236987";
+        String url="http://117.172.73.171:9901/aaToken?username="+username+"&password="+password;
+        try {
+            String result=HttpClientUtil.httpPost(url,null);
+            return R.ok(result);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.fail(e);
+        }
+    }
+
+
+
+    @ApiOperation("获取浪潮提交事件登记(自处)")
+    @PostMapping("registEventInfo")
+    public R myFeedBack(@Validated @RequestBody LCArguments lcArguments)
+    {
+        String url="http://117.172.73.171:9901/businessData/registEventInfo";
+        try {
+            Map map=new HashMap();
+            map.put("gridId",lcArguments.getGridId());
+            map.put("gridName",lcArguments.getGridName());
+            map.put("caseTypeCode",lcArguments.getCaseTypeCode());
+            map.put("caseTypeName",lcArguments.getCaseTypeName());
+            map.put("parties",lcArguments.getParties());
+            map.put("happenTime",lcArguments.getHappenTime());
+            map.put("happenAddress",lcArguments.getHappenAddress());
+            map.put("longitude",lcArguments.getLongitude());
+            map.put("latitude",lcArguments.getLatitude());
+            map.put("caseDescription",lcArguments.getCaseDescription());
+            map.put("happenAddress",lcArguments.getHappenAddress());
+            map.put("caseRecordTime",lcArguments.getCaseRecordTime());
+            map.put("handleType",lcArguments.getHandleType());
+            map.put("handleDescription",lcArguments.getHandleDescription());
+            map.put("handleTime",lcArguments.getHandleTime());
+            map.put("dataId",lcArguments.getDataId());
+            map.put("files",lcArguments.getFiles());
+            map.put("userId",lcArguments.getUserId());
+            map.put("type",lcArguments.getType());
+            map.put("name",lcArguments.getName());
+            map.put("use",lcArguments.getUse());
+
+            String result=HttpClientUtil.sendPostByJson(url,JSONObject.toJSONString(map),
+                    1,"Authorization",lcArguments.getLcToken());
+            return R.ok(result);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.fail(e);
+        }
+    }
+
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/UserManagementApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/UserManagementApi.java
new file mode 100644
index 0000000..887aef8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/UserManagementApi.java
@@ -0,0 +1,59 @@
+package com.panzhihua.applets_backstage.api;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.controller.BaseController;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.interfaces.OperLog;
+import com.panzhihua.common.model.dtos.user.PageUserAppletsBackstageDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActVO;
+import com.panzhihua.common.model.vos.user.SysUserVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.validated.PageGroup;
+import com.panzhihua.common.validated.PutGroup;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 居民用户管理
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-30 11:10
+ **/
+@RestController
+@RequestMapping("/usermanagement/")
+@Api(tags = {"居民用户管理"})
+public class UserManagementApi extends BaseController {
+    @Resource
+    private UserService userService;
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "分页查询小程序用户", response = SysUserVO.class)
+    @PostMapping("pageuser")
+    public R pageUserAppletsBackstage(
+        @RequestBody @Validated(PageGroup.class) PageUserAppletsBackstageDTO pageUserAppletsBackstageDTO) {
+        pageUserAppletsBackstageDTO.setAreaCode(this.getAreaCode());
+        pageUserAppletsBackstageDTO.setAppId(this.getAppId());
+        return userService.pageUserAppletsBackstage(pageUserAppletsBackstageDTO);
+    }
+
+    @ApiOperation(value = "编辑用户状态")
+    @PostMapping("user")
+    @OperLog(operModul = "居民用户管理", operType = 2)
+    public R putUserAppletsBackstage(
+        @RequestBody @Validated(PutGroup.class) PageUserAppletsBackstageDTO pageUserAppletsBackstageDTO) {
+        return userService.putUserAppletsBackstage(pageUserAppletsBackstageDTO);
+    }
+
+    @ApiOperation(value = "社区下拉列表", response = ComActVO.class)
+    @GetMapping("listcommunity")
+    public R listCommunity() {
+        return communityService.listCommunityAll(this.getAreaCode());
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/VaccinesApi.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/VaccinesApi.java
new file mode 100644
index 0000000..546c683
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/VaccinesApi.java
@@ -0,0 +1,52 @@
+package com.panzhihua.applets_backstage.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.vaccines.VaccinesByAdminDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.vaccines.VaccinesByAppVO;
+import com.panzhihua.common.service.community.CommunityService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+@RestController
+@RequestMapping("/vaccines/")
+@Api(tags = {"疫苗服务"})
+public class VaccinesApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "疫苗分类列表", response = VaccinesByAppVO.class)
+    @PostMapping("list")
+    public R getVaccinesListByAdmin(@RequestBody VaccinesByAdminDTO vaccinesByAdminDTO) {
+        vaccinesByAdminDTO.setAreaCode(this.getAreaCode());
+        return communityService.getVaccinesListByAdmin(vaccinesByAdminDTO);
+    }
+
+    @ApiOperation(value = "编辑疫苗信息")
+    @PostMapping("edit")
+    public R editVaccinesByAdmin(@RequestBody VaccinesByAdminDTO vaccinesByAdminDTO) {
+        return communityService.editVaccinesByAdmin(vaccinesByAdminDTO);
+    }
+
+    @ApiOperation(value = "添加疫苗信息")
+    @PostMapping("add")
+    public R addVaccinesByAdmin(@RequestBody VaccinesByAdminDTO vaccinesByAdminDTO) {
+        vaccinesByAdminDTO.setAreaCode(this.getAreaCode());
+        return communityService.addVaccinesByAdmin(vaccinesByAdminDTO);
+    }
+
+    @ApiOperation(value = "删除疫苗信息")
+    @PostMapping("delete")
+    public R deleteVaccinesByAdmin(@RequestParam("id") Long id) {
+        return communityService.deleteVaccinesByAdmin(id);
+    }
+
+}
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
new file mode 100644
index 0000000..436b127
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/api/WorkGuideApi.java
@@ -0,0 +1,123 @@
+package com.panzhihua.applets_backstage.api;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.vos.community.ComActWorkGuideClassifyVO;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.PageActWorkGuideDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActWorkGuideVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * @description: 办事指南管理
+ * @author: llming
+ **/
+@RestController
+@RequestMapping("/workguidemanager/")
+@Api(tags = {"办事指南管理"})
+public class WorkGuideApi extends BaseController {
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "办事指南_新增")
+    @PostMapping("addworkguide")
+    public R addStreet(@RequestBody @Validated(AddGroup.class) ComActWorkGuideVO workGuideVO) {
+        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
+        workGuideVO.setAreaCode(this.getAreaCode());
+        return communityService.addWorkGuide(workGuideVO, loginUserInfo.getUserId());
+    }
+
+    @PostMapping("editworkguide")
+    @ApiOperation(value = "办事指南_编辑")
+    public R putWorkGuide(@RequestBody @Validated(AddGroup.class) ComActWorkGuideVO workGuideVO) {
+        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
+        return communityService.editWorkGuide(workGuideVO, loginUserInfo.getUserId());
+    }
+
+    @ApiOperation(value = "办事指南_详情", response = ComActWorkGuideVO.class)
+    @GetMapping("detailworkguide")
+    public R detailWorkGuide(@RequestParam("workGuideId") String workGuideId) {
+        Long communityId = this.getLoginUserInfo().getCommunityId();
+        if(communityId==null|| communityId<0)
+        {
+            return communityService.detailWorkGuide(workGuideId, "");
+        }
+        return communityService.detailWorkGuide(workGuideId, communityId+"");
+    }
+
+    @ApiOperation(value = "办事指南_分页", response = ComActWorkGuideVO.class)
+    @PostMapping("pageworkguide")
+    public R detailWorkGuide(@RequestBody PageActWorkGuideDTO pageActWorkGuideDTO) {
+        pageActWorkGuideDTO.setAreaCode(this.getAreaCode());
+        return communityService.pageWorkGuide(pageActWorkGuideDTO);
+    }
+
+    @ApiOperation(value = "办事指南_删除", response = ComActWorkGuideVO.class)
+    @PostMapping("delectworkguide")
+    R delectWorkGuide(@RequestParam("workGuideId") Long workGuideId) {
+        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) {
+        comActWorkGuideClassifyVO.setAreaCode(this.getAreaCode());
+        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) {
+        comActWorkGuideClassifyVO.setAreaCode(this.getAreaCode());
+        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(this.getAreaCode());
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/config/KaptchaConfig.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/config/KaptchaConfig.java
new file mode 100644
index 0000000..354ee09
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/config/KaptchaConfig.java
@@ -0,0 +1,45 @@
+package com.panzhihua.applets_backstage.config;
+
+import com.google.code.kaptcha.Constants;
+import com.google.code.kaptcha.impl.DefaultKaptcha;
+import com.google.code.kaptcha.util.Config;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.Properties;
+
+/**
+ * @author zzj
+ */
+@Configuration
+public class KaptchaConfig {
+    /**
+     * 验证码配置
+     * @return
+     */
+    @Bean
+    public DefaultKaptcha getDefaultKaptcha(){
+        DefaultKaptcha defaultKaptcha=new DefaultKaptcha();
+        Properties properties=new Properties();
+        //是否有边框
+        properties.setProperty(Constants.KAPTCHA_BORDER,"yes");
+        //验证码文本颜色
+        properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_FONT_COLOR,"red");
+        //验证码图片宽度
+        properties.setProperty(Constants.KAPTCHA_IMAGE_WIDTH,"180");
+        //验证码图片高度
+        properties.setProperty(Constants.KAPTCHA_IMAGE_HEIGHT,"80");
+        //文本字符大小
+        properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_FONT_SIZE,"39");
+        //验证码session的值
+        properties.setProperty(Constants.KAPTCHA_SESSION_CONFIG_KEY,"kaptchaCode");
+        //验证码文本长度
+        properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_CHAR_LENGTH,"4");
+        //字体
+        properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_FONT_NAMES, "宋体,楷体,微软雅黑");
+
+        Config config=new Config(properties);
+        defaultKaptcha.setConfig(config);
+        return defaultKaptcha;
+    }
+}
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/java/com/panzhihua/applets_backstage/config/SFTPConfig.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/config/SFTPConfig.java
new file mode 100644
index 0000000..1afb737
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/config/SFTPConfig.java
@@ -0,0 +1,30 @@
+package com.panzhihua.applets_backstage.config;
+
+import lombok.Data;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @Author: llming
+ * @Description:
+ */
+@Configuration
+@Data
+public class SFTPConfig {
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+    @Value("${ftp.url}")
+    private String url;
+    @Value("${excel.userurl}")
+    private String excelUrl;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/config/SwaggerConfig.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/config/SwaggerConfig.java
new file mode 100644
index 0000000..8173b81
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/config/SwaggerConfig.java
@@ -0,0 +1,33 @@
+package com.panzhihua.applets_backstage.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import io.swagger.annotations.ApiOperation;
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.service.Contact;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: swagger3
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-19 16:08
+ **/
+@Configuration
+public class SwaggerConfig {
+    @Bean
+    public Docket createRestApi() {
+        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
+            .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)).paths(PathSelectors.any()).build();
+    }
+
+    private ApiInfo apiInfo() {
+        return new ApiInfoBuilder().title("小程序后台接口文档").description("。")
+            .contact(new Contact("Ray。", "http://www.ruiyeclub.cn", "ruiyeclub@foxmail.com")).version("1.0").build();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/model/vos/LCArguments.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/model/vos/LCArguments.java
new file mode 100644
index 0000000..b3b833b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/model/vos/LCArguments.java
@@ -0,0 +1,59 @@
+package com.panzhihua.applets_backstage.model.vos;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@ApiModel(value = "浪潮提交事件参数")
+@AllArgsConstructor
+@NoArgsConstructor
+public class LCArguments {
+
+    @ApiModelProperty(value = "浪潮token")
+    private String lcToken;
+    @ApiModelProperty(value = "网格id,APP端每个网格员应该是固定的网格,")
+    private String gridId;
+    @ApiModelProperty(value = "网格 名称")
+    private String gridName;
+    @ApiModelProperty(value = "事件类型code")
+    private String caseTypeCode;
+    @ApiModelProperty(value = "事件类型名称")
+    private String caseTypeName;
+    @ApiModelProperty(value = "当事人姓名")
+    private String parties;
+    @ApiModelProperty(value = "事件发生时间,时间的实际发生时间,网格员可以修改的时间")
+    private String happenTime;
+    @ApiModelProperty(value = "地址,手动填写或通过天地图获取的地址信息")
+    private String happenAddress;
+    @ApiModelProperty(value = "经度,double字符串")
+    private String longitude;
+    @ApiModelProperty(value = "纬度,double字符串")
+    private String latitude;
+    @ApiModelProperty(value = "对本次事件的描述信息")
+    private String caseDescription;
+    @ApiModelProperty(value = "对本次事件记录的时间,APP记录本条数据的时间,网格员自己看不到")
+    private String caseRecordTime;
+    @ApiModelProperty(value = "处理方式,caseReport(立即上报)、caseHandler(事件自处)、caseCache(事件暂存)")
+    private String handleType;
+    @ApiModelProperty(value = "处理的描述信息")
+    private String handleDescription;
+    @ApiModelProperty(value = "处理的时间,APP点击提交的时间,并非平台接收的时间(APP可以离线使用)")
+    private String handleTime;
+    @ApiModelProperty(value = "APP生产的数据id,用于平台判断重复提交")
+    private String dataId;
+    @ApiModelProperty(value = "附件结合")
+    private String files;
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+    @ApiModelProperty(value = "文件类型,video、audio、image")
+    private String type;
+    @ApiModelProperty(value = "文件名称")
+    private String name;
+    @ApiModelProperty(value = "使用类型,例如 自处前,自处后")
+    private String use;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/model/vos/LoginBody.java b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/model/vos/LoginBody.java
new file mode 100644
index 0000000..c590ca6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/java/com/panzhihua/applets_backstage/model/vos/LoginBody.java
@@ -0,0 +1,25 @@
+package com.panzhihua.applets_backstage.model.vos;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 登录
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-24 10:54
+ **/
+@Data
+@ApiModel(value = "小程序后台登录")
+@AllArgsConstructor
+@NoArgsConstructor
+public class LoginBody {
+
+    @ApiModelProperty(value = "登录账户")
+    private String account;
+    @ApiModelProperty(value = "登录密码")
+    private String password;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/resources/bootstrap.yml b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..92ec8ef
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/resources/bootstrap.yml
@@ -0,0 +1,47 @@
+spring:
+  application:
+    name: huacheng-appletsbackstage
+  cloud:
+    config:
+      discovery:
+        enabled: true
+        service-id: huacheng-config  # 注册中心的服务名
+      profile: ${ENV:dev}  # 指定配置文件的环境
+      uri: http://${CONFIG_URL:localhost}:6193/
+  profiles:
+    active: ${ENV:dev}
+  servlet:
+    multipart:
+      max-file-size: 200MB
+      max-request-size: 200MB
+
+eureka:
+  client:
+    service-url:
+      defaultZone: http://${EUREKA_URL:localhost}:8192/eureka
+
+management:
+  endpoints:
+    web:
+      exposure:
+        include: '*'
+
+  endpoint:
+    health:
+      show-details: always
+
+  metrics:
+    tags:
+      application: huacheng-appletsbackstage
+
+
+
+springfox:
+  documentation:
+    swagger-ui:
+      enabled: false
+    auto-startup: false
+
+
+
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/resources/logback-spring.xml b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..9fc7e80
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/applets_backstage/src/main/resources/logback-spring.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration debug="false">
+    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
+    <springProfile name="dev">
+        <property name="LOG_HOME" value="F:/log" />
+    </springProfile>
+       <springProfile name="test">
+        <property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    </springProfile>
+<property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    <!-- 控制台输出 -->
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+    </appender>
+    <!-- 按照每天生成日志文件 -->
+    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!--日志文件输出的文件名-->
+            <FileNamePattern>${LOG_HOME}/huachengapplets_backstage.log.%d{yyyy-MM-dd}.log</FileNamePattern>
+            <!--日志文件保留天数-->
+            <MaxHistory>30</MaxHistory>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+        <!--日志文件最大的大小-->
+        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <MaxFileSize>10MB</MaxFileSize>
+        </triggeringPolicy>
+    </appender>
+
+    <!--myibatis log configure-->
+    <logger name="com.apache.ibatis" level="TRACE"/>
+    <logger name="java.sql.Connection" level="DEBUG"/>
+    <logger name="java.sql.Statement" level="DEBUG"/>
+    <logger name="java.sql.PreparedStatement" level="DEBUG"/>
+    <logger name="com.panzhihua.applets_backstage" level="DEBUG"/>
+
+    <!-- 日志输出级别 -->
+    <root level="DEBUG">
+        <appender-ref ref="STDOUT" />
+    </root>
+    <root level="INFO">
+        <appender-ref ref="STDOUT" />
+        <appender-ref ref="FILE" />
+    </root>
+</configuration>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/.gitignore b/springcloud_k8s_panzhihuazhihuishequ/auth/.gitignore
new file mode 100644
index 0000000..549e00a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/.gitignore
@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/.mvn/wrapper/MavenWrapperDownloader.java b/springcloud_k8s_panzhihuazhihuishequ/auth/.mvn/wrapper/MavenWrapperDownloader.java
new file mode 100644
index 0000000..a45eb6b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/.mvn/wrapper/MavenWrapperDownloader.java
@@ -0,0 +1,118 @@
+/*
+ * Copyright 2007-present the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.net.*;
+import java.io.*;
+import java.nio.channels.*;
+import java.util.Properties;
+
+public class MavenWrapperDownloader {
+
+    private static final String WRAPPER_VERSION = "0.5.6";
+    /**
+     * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
+     */
+    private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
+            + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
+
+    /**
+     * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
+     * use instead of the default one.
+     */
+    private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
+            ".mvn/wrapper/maven-wrapper.properties";
+
+    /**
+     * Path where the maven-wrapper.jar will be saved to.
+     */
+    private static final String MAVEN_WRAPPER_JAR_PATH =
+            ".mvn/wrapper/maven-wrapper.jar";
+
+    /**
+     * Name of the property which should be used to override the default download url for the wrapper.
+     */
+    private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
+
+    public static void main(String args[]) {
+        System.out.println("- Downloader started");
+        File baseDirectory = new File(args[0]);
+        System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
+
+        // If the maven-wrapper.properties exists, read it and check if it contains a custom
+        // wrapperUrl parameter.
+        File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
+        String url = DEFAULT_DOWNLOAD_URL;
+        if (mavenWrapperPropertyFile.exists()) {
+            FileInputStream mavenWrapperPropertyFileInputStream = null;
+            try {
+                mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
+                Properties mavenWrapperProperties = new Properties();
+                mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
+                url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
+            } catch (IOException e) {
+                System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
+            } finally {
+                try {
+                    if (mavenWrapperPropertyFileInputStream != null) {
+                        mavenWrapperPropertyFileInputStream.close();
+                    }
+                } catch (IOException e) {
+                    // Ignore ...
+                }
+            }
+        }
+        System.out.println("- Downloading from: " + url);
+
+        File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
+        if (!outputFile.getParentFile().exists()) {
+            if (!outputFile.getParentFile().mkdirs()) {
+                System.out.println(
+                        "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
+            }
+        }
+        System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
+        try {
+            downloadFileFromURL(url, outputFile);
+            System.out.println("Done");
+            System.exit(0);
+        } catch (Throwable e) {
+            System.out.println("- Error downloading");
+            e.printStackTrace();
+            System.exit(1);
+        }
+    }
+
+    private static void downloadFileFromURL(String urlString, File destination) throws Exception {
+        if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
+            String username = System.getenv("MVNW_USERNAME");
+            char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
+            Authenticator.setDefault(new Authenticator() {
+                @Override
+                protected PasswordAuthentication getPasswordAuthentication() {
+                    return new PasswordAuthentication(username, password);
+                }
+            });
+        }
+        URL website = new URL(urlString);
+        ReadableByteChannel rbc;
+        rbc = Channels.newChannel(website.openStream());
+        FileOutputStream fos = new FileOutputStream(destination);
+        fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
+        fos.close();
+        rbc.close();
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/.mvn/wrapper/maven-wrapper.jar b/springcloud_k8s_panzhihuazhihuishequ/auth/.mvn/wrapper/maven-wrapper.jar
new file mode 100644
index 0000000..2cc7d4a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/.mvn/wrapper/maven-wrapper.jar
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/.mvn/wrapper/maven-wrapper.properties b/springcloud_k8s_panzhihuazhihuishequ/auth/.mvn/wrapper/maven-wrapper.properties
new file mode 100644
index 0000000..642d572
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/.mvn/wrapper/maven-wrapper.properties
@@ -0,0 +1,2 @@
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip
+wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar
diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/mvnw b/springcloud_k8s_panzhihuazhihuishequ/auth/mvnw
new file mode 100644
index 0000000..a16b543
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/mvnw
@@ -0,0 +1,310 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#    https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Maven Start Up Batch script
+#
+# Required ENV vars:
+# ------------------
+#   JAVA_HOME - location of a JDK home dir
+#
+# Optional ENV vars
+# -----------------
+#   M2_HOME - location of maven2's installed home dir
+#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
+#     e.g. to debug Maven itself, use
+#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+# ----------------------------------------------------------------------------
+
+if [ -z "$MAVEN_SKIP_RC" ] ; then
+
+  if [ -f /etc/mavenrc ] ; then
+    . /etc/mavenrc
+  fi
+
+  if [ -f "$HOME/.mavenrc" ] ; then
+    . "$HOME/.mavenrc"
+  fi
+
+fi
+
+# OS specific support.  $var _must_ be set to either true or false.
+cygwin=false;
+darwin=false;
+mingw=false
+case "`uname`" in
+  CYGWIN*) cygwin=true ;;
+  MINGW*) mingw=true;;
+  Darwin*) darwin=true
+    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
+    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
+    if [ -z "$JAVA_HOME" ]; then
+      if [ -x "/usr/libexec/java_home" ]; then
+        export JAVA_HOME="`/usr/libexec/java_home`"
+      else
+        export JAVA_HOME="/Library/Java/Home"
+      fi
+    fi
+    ;;
+esac
+
+if [ -z "$JAVA_HOME" ] ; then
+  if [ -r /etc/gentoo-release ] ; then
+    JAVA_HOME=`java-config --jre-home`
+  fi
+fi
+
+if [ -z "$M2_HOME" ] ; then
+  ## resolve links - $0 may be a link to maven's home
+  PRG="$0"
+
+  # need this for relative symlinks
+  while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+      PRG="$link"
+    else
+      PRG="`dirname "$PRG"`/$link"
+    fi
+  done
+
+  saveddir=`pwd`
+
+  M2_HOME=`dirname "$PRG"`/..
+
+  # make it fully qualified
+  M2_HOME=`cd "$M2_HOME" && pwd`
+
+  cd "$saveddir"
+  # echo Using m2 at $M2_HOME
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --unix "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+fi
+
+# For Mingw, ensure paths are in UNIX format before anything is touched
+if $mingw ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME="`(cd "$M2_HOME"; pwd)`"
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
+fi
+
+if [ -z "$JAVA_HOME" ]; then
+  javaExecutable="`which javac`"
+  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
+    # readlink(1) is not available as standard on Solaris 10.
+    readLink=`which readlink`
+    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
+      if $darwin ; then
+        javaHome="`dirname \"$javaExecutable\"`"
+        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
+      else
+        javaExecutable="`readlink -f \"$javaExecutable\"`"
+      fi
+      javaHome="`dirname \"$javaExecutable\"`"
+      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
+      JAVA_HOME="$javaHome"
+      export JAVA_HOME
+    fi
+  fi
+fi
+
+if [ -z "$JAVACMD" ] ; then
+  if [ -n "$JAVA_HOME"  ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+      # IBM's JDK on AIX uses strange locations for the executables
+      JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+      JAVACMD="$JAVA_HOME/bin/java"
+    fi
+  else
+    JAVACMD="`which java`"
+  fi
+fi
+
+if [ ! -x "$JAVACMD" ] ; then
+  echo "Error: JAVA_HOME is not defined correctly." >&2
+  echo "  We cannot execute $JAVACMD" >&2
+  exit 1
+fi
+
+if [ -z "$JAVA_HOME" ] ; then
+  echo "Warning: JAVA_HOME environment variable is not set."
+fi
+
+CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
+
+# traverses directory structure from process work directory to filesystem root
+# first directory with .mvn subdirectory is considered project base directory
+find_maven_basedir() {
+
+  if [ -z "$1" ]
+  then
+    echo "Path not specified to find_maven_basedir"
+    return 1
+  fi
+
+  basedir="$1"
+  wdir="$1"
+  while [ "$wdir" != '/' ] ; do
+    if [ -d "$wdir"/.mvn ] ; then
+      basedir=$wdir
+      break
+    fi
+    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
+    if [ -d "${wdir}" ]; then
+      wdir=`cd "$wdir/.."; pwd`
+    fi
+    # end of workaround
+  done
+  echo "${basedir}"
+}
+
+# concatenates all lines of a file
+concat_lines() {
+  if [ -f "$1" ]; then
+    echo "$(tr -s '\n' ' ' < "$1")"
+  fi
+}
+
+BASE_DIR=`find_maven_basedir "$(pwd)"`
+if [ -z "$BASE_DIR" ]; then
+  exit 1;
+fi
+
+##########################################################################################
+# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+# This allows using the maven wrapper in projects that prohibit checking in binary data.
+##########################################################################################
+if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Found .mvn/wrapper/maven-wrapper.jar"
+    fi
+else
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
+    fi
+    if [ -n "$MVNW_REPOURL" ]; then
+      jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    else
+      jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    fi
+    while IFS="=" read key value; do
+      case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
+      esac
+    done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Downloading from: $jarUrl"
+    fi
+    wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
+    if $cygwin; then
+      wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
+    fi
+
+    if command -v wget > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found wget ... using wget"
+        fi
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+            wget "$jarUrl" -O "$wrapperJarPath"
+        else
+            wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
+        fi
+    elif command -v curl > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found curl ... using curl"
+        fi
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+            curl -o "$wrapperJarPath" "$jarUrl" -f
+        else
+            curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
+        fi
+
+    else
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Falling back to using Java to download"
+        fi
+        javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
+        # For Cygwin, switch paths to Windows format before running javac
+        if $cygwin; then
+          javaClass=`cygpath --path --windows "$javaClass"`
+        fi
+        if [ -e "$javaClass" ]; then
+            if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Compiling MavenWrapperDownloader.java ..."
+                fi
+                # Compiling the Java class
+                ("$JAVA_HOME/bin/javac" "$javaClass")
+            fi
+            if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                # Running the downloader
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Running MavenWrapperDownloader.java ..."
+                fi
+                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
+            fi
+        fi
+    fi
+fi
+##########################################################################################
+# End of extension
+##########################################################################################
+
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
+if [ "$MVNW_VERBOSE" = true ]; then
+  echo $MAVEN_PROJECTBASEDIR
+fi
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --path --windows "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
+    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
+fi
+
+# Provide a "standardized" way to retrieve the CLI args that will
+# work with both Windows and non-Windows executions.
+MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
+export MAVEN_CMD_LINE_ARGS
+
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+exec "$JAVACMD" \
+  $MAVEN_OPTS \
+  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
+  "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
+  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/mvnw.cmd b/springcloud_k8s_panzhihuazhihuishequ/auth/mvnw.cmd
new file mode 100644
index 0000000..c8d4337
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/mvnw.cmd
@@ -0,0 +1,182 @@
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements.  See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership.  The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License.  You may obtain a copy of the License at
+@REM
+@REM    https://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied.  See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Maven Start Up Batch script
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM M2_HOME - location of maven2's installed home dir
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
+@REM     e.g. to debug Maven itself, use
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+@REM ----------------------------------------------------------------------------
+
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
+@echo off
+@REM set title of command window
+title %0
+@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
+@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
+
+@REM set %HOME% to equivalent of $HOME
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
+
+@REM Execute a user defined script before this one
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
+if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
+:skipRcPre
+
+@setlocal
+
+set ERROR_CODE=0
+
+@REM To isolate internal variables from possible post scripts, we use another setlocal
+@setlocal
+
+@REM ==== START VALIDATION ====
+if not "%JAVA_HOME%" == "" goto OkJHome
+
+echo.
+echo Error: JAVA_HOME not found in your environment. >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:OkJHome
+if exist "%JAVA_HOME%\bin\java.exe" goto init
+
+echo.
+echo Error: JAVA_HOME is set to an invalid directory. >&2
+echo JAVA_HOME = "%JAVA_HOME%" >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+@REM ==== END VALIDATION ====
+
+:init
+
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
+@REM Fallback to current working directory if not found.
+
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
+
+set EXEC_DIR=%CD%
+set WDIR=%EXEC_DIR%
+:findBaseDir
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
+cd ..
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
+set WDIR=%CD%
+goto findBaseDir
+
+:baseDirFound
+set MAVEN_PROJECTBASEDIR=%WDIR%
+cd "%EXEC_DIR%"
+goto endDetectBaseDir
+
+:baseDirNotFound
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
+cd "%EXEC_DIR%"
+
+:endDetectBaseDir
+
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
+
+@setlocal EnableExtensions EnableDelayedExpansion
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
+
+:endReadAdditionalConfig
+
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+
+FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
+    IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
+)
+
+@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
+if exist %WRAPPER_JAR% (
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Found %WRAPPER_JAR%
+    )
+) else (
+    if not "%MVNW_REPOURL%" == "" (
+        SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    )
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Couldn't find %WRAPPER_JAR%, downloading it ...
+        echo Downloading from: %DOWNLOAD_URL%
+    )
+
+    powershell -Command "&{"^
+		"$webclient = new-object System.Net.WebClient;"^
+		"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
+		"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
+		"}"^
+		"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
+		"}"
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Finished downloading %WRAPPER_JAR%
+    )
+)
+@REM End of extension
+
+@REM Provide a "standardized" way to retrieve the CLI args that will
+@REM work with both Windows and non-Windows executions.
+set MAVEN_CMD_LINE_ARGS=%*
+
+%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
+if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
+:skipRcPost
+
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
+if "%MAVEN_BATCH_PAUSE%" == "on" pause
+
+if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
+
+exit /B %ERROR_CODE%
diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/auth/pom.xml
new file mode 100644
index 0000000..ffc8d2a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/pom.xml
@@ -0,0 +1,161 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.panzhihua</groupId>
+        <artifactId>zhihuishequ</artifactId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <groupId>com.panzhihua</groupId>
+    <artifactId>auth</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>auth</name>
+    <description>认证授权中心</description>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-config</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-security</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.panzhihua</groupId>
+            <artifactId>common</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-redis</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.jsonwebtoken</groupId>
+            <artifactId>jjwt</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>ch.qos.logback</groupId>
+            <artifactId>logback-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>ch.qos.logback</groupId>
+            <artifactId>logback-classic</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-pool2</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.netflix.hystrix</groupId>
+            <artifactId>hystrix-javanica</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+        </dependency>
+        <!--阿里数据库连接池 -->
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid-spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>eu.bitwalker</groupId>
+            <artifactId>UserAgentUtils</artifactId>
+            <version>1.21</version>
+            <scope>compile</scope>
+        </dependency>
+
+        <!--添加监控依赖包-->
+        <dependency>
+            <groupId>io.micrometer</groupId>
+            <artifactId>micrometer-registry-prometheus</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>2.5.0</version>
+                <configuration>
+                    <mainClass>com.panzhihua.auth.AuthApplication</mainClass>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>docker-maven-plugin</artifactId>
+                <version>1.2.0</version>
+                <configuration>
+                    <imageName>registry.cn-chengdu.aliyuncs.com/panzhihua/service-auth:v1</imageName>
+                    <serverId></serverId>
+                    <baseImage>java</baseImage>
+                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
+                    <resources>
+                        <resource>
+                            <targetPath>/</targetPath>
+                            <directory>${project.build.directory}</directory>
+                            <include>${project.build.finalName}.jar</include>
+                        </resource>
+                    </resources>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <repositories>
+        <repository>
+            <id>spring-snapshots</id>
+            <name>Spring Snapshots</name>
+            <url>https://repo.spring.io/snapshot</url>
+            <snapshots>
+                <enabled>true</enabled>
+            </snapshots>
+        </repository>
+        <repository>
+            <id>spring-milestones</id>
+            <name>Spring Milestones</name>
+            <url>https://repo.spring.io/milestone</url>
+        </repository>
+    </repositories>
+
+</project>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/AuthApplication.java b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/AuthApplication.java
new file mode 100644
index 0000000..20b0d87
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/AuthApplication.java
@@ -0,0 +1,21 @@
+package com.panzhihua.auth;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.cloud.client.SpringCloudApplication;
+import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.ComponentScan;
+
+@SpringCloudApplication
+@EnableFeignClients(basePackages = {"com.panzhihua.common.service"})
+@EnableCircuitBreaker
+@EnableEurekaClient
+@ComponentScan({"com.panzhihua.auth", "com.panzhihua.common"})
+public class AuthApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(AuthApplication.class, args);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/api/LoginApi.java b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/api/LoginApi.java
new file mode 100644
index 0000000..34e758c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/api/LoginApi.java
@@ -0,0 +1,321 @@
+package com.panzhihua.auth.api;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.interfaces.OperLog;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.auth.model.dos.LoginBody;
+import com.panzhihua.auth.service.LoginService;
+import com.panzhihua.common.exceptions.TokenException;
+import com.panzhihua.common.model.vos.LoginReturnVO;
+import com.panzhihua.common.model.vos.LoginReturnsVO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.utlis.JWTTokenUtil;
+
+import io.jsonwebtoken.Claims;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 登录\登出
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-19 16:56
+ **/
+@RestController
+@RequestMapping("/")
+public class LoginApi extends BaseController {
+    @Resource
+    private LoginService loginService;
+
+    /**
+     * 小程序登录
+     *
+     * @param openId
+     *            微信标识
+     * @return jwt
+     */
+    @OperLog(operModul = "小程序登录")
+    @PostMapping("/loginApplets")
+    public R loginApplets(@RequestParam("openId") String openId,@RequestParam("appid")String appid) {
+        LoginReturnVO loginReturnVO = loginService.loginApplets(openId,appid);
+        return R.ok(loginReturnVO);
+    }
+
+    /**
+     * 用户登出
+     *
+     * @param token
+     *            登录用户token
+     * @return 登出结果
+     */
+    @OperLog(operModul = "用户退出登录")
+    @PostMapping("/logout")
+    public R logout(@RequestParam("token") String token) {
+        loginService.logoutApplets(token);
+        return R.ok();
+    }
+
+    /**
+     * 运营后台登录
+     *
+     * @param account
+     *            账户
+     * @param password
+     *            密码
+     * @return 登录结果
+     */
+    @OperLog(operModul = "运营后台登录")
+    @PostMapping("/loginAppletsBackStage")
+    public R loginAppletsBackStage(@RequestParam("account") String account, @RequestParam("password") String password,@RequestParam("appid")String appid) {
+        LoginReturnVO loginReturnVO = loginService.loginAppletsBackStage(account, password,appid);
+        return R.ok(loginReturnVO);
+    }
+
+    /**
+     * 大数据统计平台(区、街道、社区三层登陆接口)
+     *
+     * @param loginBody
+     *            账户
+     * @return 登录结果
+     * @author manailin
+     * @date 2021-5-13 10:56
+     */
+    @OperLog(operModul = "大数据统计平台(区、街道、社区三层登陆接口)")
+    @PostMapping("/loginBigDataBackStage")
+    public R loginBigDataBackStage(@RequestBody LoginBody loginBody) {
+        String account = loginBody.getAccount();
+        String password = loginBody.getPassword();
+        if (ObjectUtils.isEmpty(account) || ObjectUtils.isEmpty(password)) {
+            return R.fail("账户密码不能为空");
+        }
+        LoginReturnVO loginReturnVO = loginService.loginBigDataBackStage(account, password,this.getAppId());
+        return R.ok(loginReturnVO);
+    }
+
+    /**
+     * 社区后台登录
+     *
+     * @param account
+     *            账户
+     * @param password
+     *            密码
+     * @return 登录结果
+     */
+    @OperLog(operModul = "社区后台登录")
+    @PostMapping("/loginCommunityBackage")
+    public R loginCommunityBackage(@RequestParam("account") String account, @RequestParam("password") String password,@RequestParam("appid")String appid) {
+        LoginReturnVO loginReturnVO = loginService.loginCommunityBackage(account, password,appid);
+        return R.ok(loginReturnVO);
+    }
+
+    /**
+     * 认证中心刷新token
+     *
+     * @param refreshToken
+     *            用户端保存的刷新token
+     * @return 新的token 和刷新token
+     */
+    @PostMapping("/refreshToken")
+    public R refreshToken(@RequestParam("refreshToken") String refreshToken) {
+        Boolean expired = JWTTokenUtil.isTokenExpired(refreshToken);
+        if (expired) {
+            throw new TokenException("刷新token已过期");
+        }
+        Claims claims = JWTTokenUtil.getClaimsFromToken(refreshToken);
+        boolean empty = ObjectUtils.isEmpty(claims);
+        if (empty) {
+            throw new TokenException("刷新token校验失败");
+        }
+        String subject = claims.getSubject();
+        Integer type = (Integer)claims.get("type");
+        boolean empty1 = ObjectUtils.isEmpty(subject);
+        boolean empty2 = ObjectUtils.isEmpty(type);
+        if (empty1 || empty2) {
+            throw new TokenException("刷新token校验失败");
+        }
+        LoginUserInfoVO loginUserInfoVO = new LoginUserInfoVO();
+        loginUserInfoVO.setUserId(Long.valueOf(subject));
+        loginUserInfoVO.setType(type);
+        String token = JWTTokenUtil.generateToken(loginUserInfoVO);
+        String refeshToken = JWTTokenUtil.generateRefeshToken(loginUserInfoVO);
+        LoginReturnVO loginReturnVO = new LoginReturnVO();
+        loginReturnVO.setToken(token);
+        loginReturnVO.setRefreshToken(refeshToken);
+        return R.ok(loginReturnVO);
+    }
+
+
+
+
+
+
+
+    /**
+     * 认证中心刷新token
+     *
+     *            用户端保存的刷新token
+     * @return 新的token 和刷新token
+     */
+    @PostMapping("/getNewToken")
+    public R getNewToken(@RequestBody LoginUserInfoVO loginUserInfoVO) {
+        String token = JWTTokenUtil.generateToken(loginUserInfoVO);
+        String refeshToken = JWTTokenUtil.generateRefeshToken(loginUserInfoVO);
+        LoginReturnVO loginReturnVO = new LoginReturnVO();
+        loginReturnVO.setToken(token);
+        loginReturnVO.setRefreshToken(refeshToken);
+        return R.ok(loginReturnVO);
+    }
+
+
+
+
+
+
+
+
+
+
+
+    /**
+     * 商家后台登录
+     *
+     * @param account
+     *            账户
+     * @param password
+     *            密码
+     * @return 登录结果
+     */
+    @OperLog(operModul = "商家后台登录")
+    @PostMapping("/loginShopBackStage")
+    public R loginShopBackStage(@RequestParam("account") String account, @RequestParam("password") String password,@RequestParam("appid")String appid) {
+        LoginReturnVO loginReturnVO = loginService.loginShopBackStage(account, password,appid);
+        return R.ok(loginReturnVO);
+    }
+
+    /**
+     * 网格综治APP登录
+     *
+     * @param account
+     *            账户
+     * @param password
+     *            密码
+     * @return 登录结果
+     */
+    @OperLog(operModul = "网格综治app登录")
+    @PostMapping("/loginGridApp")
+    public R loginGridApp(@RequestParam("account") String account, @RequestParam("password") String password,@RequestParam("appid")String appid) {
+        LoginReturnsVO loginReturnVO = loginService.loginGridApp(account, password,appid);
+        return R.ok(loginReturnVO);
+    }
+
+    /**
+     * 网格综治后台登录
+     *
+     * @param account
+     *            账户
+     * @param password
+     *            密码
+     * @return 登录结果
+     */
+    @OperLog(operModul = "网格综治后台登录")
+    @PostMapping("/loginGridBackstage")
+    public R loginGridBackstage(@RequestParam("account") String account, @RequestParam("password") String password,@RequestParam("appid")String appid) {
+        LoginReturnVO loginReturnVO = loginService.loginGridBackstage(account, password,appid);
+        return R.ok(loginReturnVO);
+    }
+
+    /**
+     * 城管后台登录
+     * @param account   账号
+     * @param password  密码
+     * @return  登录结果
+     */
+    @OperLog(operModul = "城管后台登录")
+    @PostMapping("/loginCgBackage")
+    public R loginCgBackage(@RequestParam("account") String account, @RequestParam("password") String password,@RequestParam("appid")String appid) {
+        LoginReturnVO loginReturnVO = loginService.loginCgBackage(account, password,appid);
+        return R.ok(loginReturnVO);
+    }
+
+    /**
+     * 一键报警APP登录
+     * @param account   账号
+     * @param password  密码
+     * @return  登录结果
+     */
+    @OperLog(operModul = "一键报警APP登录 ")
+    @PostMapping("/loginAlarmApp")
+    public R loginAlarmApp(@RequestParam("account") String account, @RequestParam("password") String password,@RequestParam("appid")String appid) {
+        LoginReturnsVO loginReturnVO = loginService.loginAlarmApp(account, password,appid);
+        return R.ok(loginReturnVO);
+    }
+
+    /**
+     * 便民服务商家后台登录
+     *
+     * @param account
+     *            账户
+     * @param password
+     *            密码
+     * @return 登录结果
+     */
+    @OperLog(operModul = "便民服务商家后台登录 ")
+    @PostMapping("/loginMerchantBackStage")
+    public R loginMerchantBackStage(@RequestParam("account") String account, @RequestParam("password") String password,@RequestParam("appid")String appid) {
+        LoginReturnVO loginReturnVO = loginService.loginMerchantBackStage(account, password,appid);
+        return R.ok(loginReturnVO);
+    }
+
+    /**
+     * 西区大屏登录
+     * @param account   账号
+     * @param password  密码
+     * @return  登录结果
+     */
+    @OperLog(operModul = "西区大屏登录")
+    @PostMapping("/loginXQDP")
+    public R loginXQDP(@RequestParam("account") String account, @RequestParam("password") String password,@RequestParam("appid")String appid) {
+        LoginReturnVO loginReturnVO = loginService.loginXQDP(account, password,appid);
+        return R.ok(loginReturnVO);
+    }
+
+    /**
+     * 微商业街用户登录
+     *
+     * @param account
+     *            账户
+     * @param password
+     *            密码
+     * @return 登录结果
+     */
+    @PostMapping("/loginMcsUser")
+    @OperLog(operModul = "微商业街用户登录")
+    public R loginMcsUser(@RequestParam("account") String account, @RequestParam("password") String password,@RequestParam("appid")String appid) {
+        LoginReturnVO loginReturnVO = loginService.loginMcsUser(account, password,appid);
+        return R.ok(loginReturnVO);
+    }
+
+    @GetMapping("/tfLogin")
+    public R tfLogin(@RequestParam("account")String account,@RequestParam("password")String password,@RequestParam("appid")String appid){
+        LoginReturnVO loginReturnVO=loginService.tfLogin(account,password,appid);
+        return R.ok(loginReturnVO);
+    }
+
+    /**
+     * 电动车商城后台用户登录
+     *
+     * @param account
+     *            账户
+     * @param password
+     *            密码
+     * @return 登录结果
+     */
+    @PostMapping("/loginBatteryUser")
+    public R loginBatteryUser(@RequestParam("account") String account, @RequestParam("password") String password,@RequestParam("appid")String appid) {
+        LoginReturnVO loginReturnVO = loginService.loginBatteryUser(account, password,appid);
+        return R.ok(loginReturnVO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/config/AuthConfig.java b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/config/AuthConfig.java
new file mode 100644
index 0000000..dddd310
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/config/AuthConfig.java
@@ -0,0 +1,26 @@
+package com.panzhihua.auth.config;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+import lombok.Data;
+
+/**
+ * 读取项目相关配置
+ * 
+ * @author huanghongfa
+ */
+@Data
+@Component
+@ConfigurationProperties(prefix = "auth")
+public class AuthConfig {
+    /** 上传路径 */
+    public static String profile;
+    /** 获取地址开关 */
+    public static boolean addressEnabled;
+    /** 项目名称 */
+    public String name;
+    /** 版本 */
+    public String version;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/config/MyAESUtil.java b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/config/MyAESUtil.java
new file mode 100644
index 0000000..d46a9ef
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/config/MyAESUtil.java
@@ -0,0 +1,52 @@
+package com.panzhihua.auth.config;
+
+import sun.misc.BASE64Decoder;
+import sun.misc.BASE64Encoder;
+
+import javax.crypto.Cipher;
+import javax.crypto.spec.SecretKeySpec;
+
+public class MyAESUtil {
+
+    // 加密
+    public static String Encrypt(String sSrc, String sKey) throws Exception {
+        if (sKey == null) {
+            System.out.print("Key为空null");
+            return null;
+        }
+        // 判断Key是否为16位
+        if (sKey.length() != 16) {
+            System.out.print("Key长度不是16位");
+            return null;
+        }
+        byte[] raw = sKey.getBytes("utf-8");
+        SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
+        Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");//"算法/模式/补码方式"
+        cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
+        byte[] encrypted = cipher.doFinal(sSrc.getBytes("utf-8"));
+        return new BASE64Encoder().encode(encrypted);//此处使用BASE64做转码功能,同时能起到2次加密的作用。
+    }
+
+    // 解密
+    public static String Decrypt(String sSrc, String sKey) throws Exception {
+        try {
+
+            byte[] raw = sKey.getBytes("utf-8");
+            SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
+            Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
+            cipher.init(Cipher.DECRYPT_MODE, skeySpec);
+            byte[] encrypted1 = new BASE64Decoder().decodeBuffer(sSrc);//先用base64解密
+            try {
+                byte[] original = cipher.doFinal(encrypted1);
+                String originalString = new String(original,"utf-8");
+                return originalString;
+            } catch (Exception e) {
+                System.out.println(e.toString());
+                return null;
+            }
+        } catch (Exception ex) {
+            System.out.println(ex.toString());
+            return null;
+        }
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/config/ResourcesConfig.java b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/config/ResourcesConfig.java
new file mode 100644
index 0000000..71ed237
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/config/ResourcesConfig.java
@@ -0,0 +1,50 @@
+package com.panzhihua.auth.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.cors.CorsConfiguration;
+import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
+import org.springframework.web.filter.CorsFilter;
+import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+import com.panzhihua.common.constants.Constants;
+
+/**
+ * 通用配置
+ * 
+ * @author huanghongfa
+ */
+@Configuration
+public class ResourcesConfig implements WebMvcConfigurer {
+
+    @Override
+    public void addResourceHandlers(ResourceHandlerRegistry registry) {
+        /** 本地文件上传路径 */
+        registry.addResourceHandler(Constants.RESOURCE_PREFIX + "/**")
+            .addResourceLocations("file:" + AuthConfig.profile + "/");
+
+        /** swagger配置 */
+        registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
+        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
+    }
+
+    /**
+     * 跨域配置
+     */
+    @Bean
+    public CorsFilter corsFilter() {
+        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
+        CorsConfiguration config = new CorsConfiguration();
+        config.setAllowCredentials(true);
+        // 设置访问源地址
+        config.addAllowedOrigin("*");
+        // 设置访问源请求头
+        config.addAllowedHeader("*");
+        // 设置访问源请求方法
+        config.addAllowedMethod("*");
+        // 对接口配置跨域设置
+        source.registerCorsConfiguration("/**", config);
+        return new CorsFilter(source);
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/config/SecurityConfig.java b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/config/SecurityConfig.java
new file mode 100644
index 0000000..02ad139
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/config/SecurityConfig.java
@@ -0,0 +1,103 @@
+package com.panzhihua.auth.config;
+
+import javax.annotation.Resource;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.security.authentication.AuthenticationManager;
+import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
+import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
+import org.springframework.security.config.http.SessionCreationPolicy;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+
+import com.panzhihua.auth.handel.AjaxAuthenticationEntryPoint;
+import com.panzhihua.auth.handel.UserAuthenticationProvider;
+import com.panzhihua.auth.handel.UserLoginFailureHandler;
+import com.panzhihua.auth.handel.UserLogoutSuccessHandler;
+
+/**
+ * SpringSecurity配置类
+ * 
+ * @Author youcong
+ */
+@Configuration
+@EnableWebSecurity
+public class SecurityConfig extends WebSecurityConfigurerAdapter {
+    /**
+     * 自定义登录逻辑验证器
+     */
+    @Resource
+    private UserAuthenticationProvider userAuthenticationProvider;
+
+    public static void main(String[] args) {
+        BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder();
+        String encode = bCryptPasswordEncoder.encode("123456");
+        System.out.println(encode);
+    }
+
+    /**
+     * 加密方式
+     *
+     * @Author youcong
+     */
+    @Bean
+    public BCryptPasswordEncoder bCryptPasswordEncoder() {
+        return new BCryptPasswordEncoder();
+    }
+
+    /**
+     * 配置登录验证逻辑
+     */
+    @Override
+    protected void configure(AuthenticationManagerBuilder auth) {
+        // 这里可启用我们自己的登陆验证逻辑
+        auth.authenticationProvider(userAuthenticationProvider);
+    }
+
+    /**
+     * 解决 无法直接注入 AuthenticationManager
+     *
+     * @return
+     * @throws Exception
+     */
+    @Bean
+    @Override
+    public AuthenticationManager authenticationManagerBean() throws Exception {
+        return super.authenticationManagerBean();
+    }
+
+    /**
+     * 配置security的控制逻辑
+     *
+     * @Author youcong
+     * @Param http 请求
+     */
+    @Override
+    protected void configure(HttpSecurity http) throws Exception {
+
+        http.authorizeRequests().anyRequest().permitAll().and()
+            // 配置登录成功自定义处理类
+            .formLogin()
+            // .successHandler(new UserLoginSuccessHandler())
+            // 配置登录失败自定义处理类
+            .failureHandler(new UserLoginFailureHandler()).and()
+            // 配置登出地址
+            .logout().logoutUrl("/login/userLogout")
+            // 配置用户登出自定义处理类
+            .logoutSuccessHandler(new UserLogoutSuccessHandler()).and()
+            // 开启跨域
+            .cors()
+            // 异常处理(权限拒绝、登录失效等)
+            .and().exceptionHandling().authenticationEntryPoint(new AjaxAuthenticationEntryPoint())// 匿名用户访问无权限资源时的异常处理;
+            .and()
+            // 取消跨站请求伪造防护
+            .csrf().disable();
+        // 基于Token不需要session
+        http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
+        // 禁用缓存
+        http.headers().cacheControl();
+
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/handel/AjaxAuthenticationEntryPoint.java b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/handel/AjaxAuthenticationEntryPoint.java
new file mode 100644
index 0000000..41cacdb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/handel/AjaxAuthenticationEntryPoint.java
@@ -0,0 +1,34 @@
+package com.panzhihua.auth.handel;
+
+import java.io.IOException;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.security.core.AuthenticationException;
+import org.springframework.security.web.AuthenticationEntryPoint;
+import org.springframework.stereotype.Component;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.utlis.ResultUtil;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description:
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-30 18:57
+ **/
+@Slf4j
+@Component
+public class AjaxAuthenticationEntryPoint implements AuthenticationEntryPoint {
+
+    @Override
+    public void commence(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse,
+        AuthenticationException e) throws IOException, ServletException {
+        log.error("错误信息【{}】", e.getMessage());
+        ResultUtil.responseJson(httpServletResponse, R.fail(e.getMessage()));
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/handel/UserAuthenticationProvider.java b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/handel/UserAuthenticationProvider.java
new file mode 100644
index 0000000..20a5bd8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/handel/UserAuthenticationProvider.java
@@ -0,0 +1,168 @@
+package com.panzhihua.auth.handel;
+
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+import java.time.Duration;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+import javax.annotation.Resource;
+import javax.crypto.BadPaddingException;
+import javax.crypto.IllegalBlockSizeException;
+import javax.crypto.NoSuchPaddingException;
+
+import com.panzhihua.auth.config.MyAESUtil;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.model.helper.AESUtil;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.AES;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.security.authentication.AuthenticationProvider;
+import org.springframework.security.authentication.BadCredentialsException;
+import org.springframework.security.authentication.LockedException;
+import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.AuthenticationException;
+import org.springframework.security.core.GrantedAuthority;
+import org.springframework.security.core.authority.SimpleGrantedAuthority;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.stereotype.Component;
+import org.springframework.util.ObjectUtils;
+
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.user.UserService;
+
+import static java.util.Objects.nonNull;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 登录认证
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-24 16:14
+ **/
+@Component
+public class UserAuthenticationProvider implements AuthenticationProvider {
+    @Resource
+    private UserService userService;
+    @Resource
+    private RedisTemplate redisTemplate;
+    @Resource
+    private CommunityService communityService;
+
+    private static String LOGIN_FAIL="LOGIN_FAIL_";
+
+    @Override
+    public Authentication authenticate(Authentication authentication) throws AuthenticationException {
+        // 获取表单输入中返回的用户名
+        String userName = (String)authentication.getPrincipal();
+        String password =(String)authentication.getCredentials();
+        if(!userName.contains("_1")&&!userName.contains("_6")){
+            try {
+                password = MyAESUtil.Decrypt((String)authentication.getCredentials(),"Ryo7M3n8loC5Abcd");
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+            boolean flag= redisTemplate.hasKey(LOGIN_FAIL+userName);
+            if(flag){
+                Integer time= (Integer) redisTemplate.opsForValue().get(LOGIN_FAIL+userName);
+                if(time>=5){
+                    redisTemplate.opsForValue().set(LOGIN_FAIL+userName,5);
+                    throw new LockedException("账号或密码错误,登录错误超过限制");
+                }
+            }
+            // 查询用户是否存在
+            R<LoginUserInfoVO> r = userService.getUserInfo(userName);
+            if (r.getCode() != 200) {
+                lockLogin(flag,userName);
+                throw new UsernameNotFoundException("账号或密码错误");
+            }
+            LoginUserInfoVO loginUserInfoVO = r.getData();
+            List<GrantedAuthority> grantedAuthorityList = new ArrayList<>();
+            Set<String> roles = loginUserInfoVO.getRoles();
+            if (!ObjectUtils.isEmpty(roles)) {
+                roles.forEach(s -> {
+                    grantedAuthorityList.add(new SimpleGrantedAuthority(s));
+                });
+            }
+            if (ObjectUtils.isEmpty(loginUserInfoVO.getAccount())||ObjectUtils.isEmpty(password)) {
+                lockLogin(flag,userName);
+                throw new UsernameNotFoundException("账号或密码错误");
+            }
+            // 我们还要判断密码是否正确,这里我们的密码使用BCryptPasswordEncoder进行加密的
+            if (!new BCryptPasswordEncoder().matches(password, loginUserInfoVO.getPassword())) {
+                lockLogin(flag,userName);
+                throw new BadCredentialsException("账号或密码错误");
+            }
+            // 还可以加一些其他信息的判断,比如用户账号已停用等判断
+            if (loginUserInfoVO.getStatus().intValue() == 2) {
+                throw new LockedException("该用户已被禁用");
+            }
+            // 维护最后登录时间
+            userService.putUserLastLoginTime(loginUserInfoVO.getUserId());
+            //是否为专家登陆
+            if (nonNull(loginUserInfoVO.getPhone())){
+                R r1 = communityService.isExpert(loginUserInfoVO.getPhone());
+                if (r1.getCode()== Constants.SUCCESS){
+                    loginUserInfoVO.setType(13);
+                }
+            }
+            return new UsernamePasswordAuthenticationToken(loginUserInfoVO, password, grantedAuthorityList);
+        }
+        else {
+            // 查询用户是否存在
+            R<LoginUserInfoVO> r = userService.getUserInfo(userName);
+            if (r.getCode() != 200) {
+                throw new UsernameNotFoundException("账号或密码错误");
+            }
+            LoginUserInfoVO loginUserInfoVO = r.getData();
+            List<GrantedAuthority> grantedAuthorityList = new ArrayList<>();
+            Set<String> roles = loginUserInfoVO.getRoles();
+            if (!ObjectUtils.isEmpty(roles)) {
+                roles.forEach(s -> {
+                    grantedAuthorityList.add(new SimpleGrantedAuthority(s));
+                });
+            }
+            if (ObjectUtils.isEmpty(loginUserInfoVO.getAccount())) {
+                throw new UsernameNotFoundException("账号或密码错误");
+            }
+            // 我们还要判断密码是否正确,这里我们的密码使用BCryptPasswordEncoder进行加密的
+            if (!new BCryptPasswordEncoder().matches(password, loginUserInfoVO.getPassword())) {
+                throw new BadCredentialsException("账号或密码错误");
+            }
+            // 还可以加一些其他信息的判断,比如用户账号已停用等判断
+            if (loginUserInfoVO.getStatus().intValue() == 2) {
+                throw new LockedException("该用户已被禁用");
+            }
+            // 维护最后登录时间
+            userService.putUserLastLoginTime(loginUserInfoVO.getUserId());
+            //是否为专家登陆
+            if (nonNull(loginUserInfoVO.getPhone())){
+                R r1 = communityService.isExpert(loginUserInfoVO.getPhone());
+                if (r1.getCode() == Constants.SUCCESS){
+                    loginUserInfoVO.setType(13);
+                }
+            }
+            return new UsernamePasswordAuthenticationToken(loginUserInfoVO, password, grantedAuthorityList);
+
+        }
+    }
+
+    @Override
+    public boolean supports(Class<?> aClass) {
+        return true;
+    }
+
+    private void lockLogin(Boolean flag,String userName){
+        if(flag){
+            Integer time= (Integer) redisTemplate.opsForValue().get(LOGIN_FAIL+userName);
+            redisTemplate.opsForValue().set(LOGIN_FAIL+userName,time+1, Duration.ofMinutes(5));
+        }
+        else {
+            redisTemplate.opsForValue().set(LOGIN_FAIL+userName,1, Duration.ofMinutes(5));
+        }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/handel/UserLoginFailureHandler.java b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/handel/UserLoginFailureHandler.java
new file mode 100644
index 0000000..9d4d685
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/handel/UserLoginFailureHandler.java
@@ -0,0 +1,48 @@
+package com.panzhihua.auth.handel;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.security.authentication.BadCredentialsException;
+import org.springframework.security.authentication.LockedException;
+import org.springframework.security.core.AuthenticationException;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
+import org.springframework.security.web.authentication.AuthenticationFailureHandler;
+import org.springframework.stereotype.Component;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.utlis.ResultUtil;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 登录失败
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-24 16:02
+ **/
+@Slf4j
+@Component
+public class UserLoginFailureHandler implements AuthenticationFailureHandler {
+    /**
+     * 登录失败返回结果
+     * 
+     * @Author youcong
+     */
+    @Override
+    public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response,
+        AuthenticationException exception) {
+        log.info("登录失败");
+        // 这些对于操作的处理类可以根据不同异常进行不同处理
+        if (exception instanceof UsernameNotFoundException) {
+            ResultUtil.responseJson(response, R.fail("该账号不存在"));
+        }
+        if (exception instanceof LockedException) {
+            ResultUtil.responseJson(response, R.fail("用户被冻结"));
+        }
+        if (exception instanceof BadCredentialsException) {
+            ResultUtil.responseJson(response, R.fail("密码错误"));
+        }
+        ResultUtil.responseJson(response, R.fail("登录失败"));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/handel/UserLoginSuccessHandler.java b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/handel/UserLoginSuccessHandler.java
new file mode 100644
index 0000000..f5f68b0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/handel/UserLoginSuccessHandler.java
@@ -0,0 +1,47 @@
+package com.panzhihua.auth.handel;
+
+import java.io.IOException;
+
+import javax.servlet.FilterChain;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.security.core.Authentication;
+import org.springframework.security.web.authentication.AuthenticationSuccessHandler;
+
+import com.panzhihua.common.constants.TokenConstant;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.utlis.JWTTokenUtil;
+import com.panzhihua.common.utlis.ResultUtil;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 登录成功
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-24 15:23
+ **/
+@Slf4j
+public class UserLoginSuccessHandler implements AuthenticationSuccessHandler {
+    @Override
+    public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, FilterChain chain,
+        Authentication authentication) throws IOException, ServletException {
+        log.info("登录成功");
+    }
+
+    @Override
+    public void onAuthenticationSuccess(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse,
+        Authentication authentication) throws IOException, ServletException {
+        log.info("登录成功");
+        // 组装JWT
+        LoginUserInfoVO loginUserInfoVO = (LoginUserInfoVO)authentication.getPrincipal();
+        String token = JWTTokenUtil.generateToken(loginUserInfoVO);
+        token = TokenConstant.TOKEN_PRE + token;
+        // 封装返回参数
+        R<String> ok = R.ok(token);
+        ResultUtil.responseJson(httpServletResponse, ok);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/handel/UserLogoutSuccessHandler.java b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/handel/UserLogoutSuccessHandler.java
new file mode 100644
index 0000000..967bec0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/handel/UserLogoutSuccessHandler.java
@@ -0,0 +1,31 @@
+package com.panzhihua.auth.handel;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.security.web.authentication.logout.LogoutSuccessHandler;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.utlis.ResultUtil;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 登出成功处理
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-24 16:08
+ **/
+public class UserLogoutSuccessHandler implements LogoutSuccessHandler {
+    /**
+     * 用户登出返回结果 这里应该让前端清除掉Token
+     * 
+     * @Author youcong
+     */
+    @Override
+    public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response,
+        Authentication authentication) {
+        SecurityContextHolder.clearContext();
+        ResultUtil.responseJson(response, R.ok());
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/manager/AsyncFactoryNew.java b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/manager/AsyncFactoryNew.java
new file mode 100644
index 0000000..086c88a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/manager/AsyncFactoryNew.java
@@ -0,0 +1,95 @@
+package com.panzhihua.auth.manager;
+
+import java.util.TimerTask;
+
+import com.panzhihua.auth.model.dos.SysLogininforDO;
+import com.panzhihua.auth.model.dos.SysOperLogDO;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.utlis.AddressUtils;
+import com.panzhihua.common.utlis.IpUtils;
+import com.panzhihua.common.utlis.LogUtils;
+import com.panzhihua.common.utlis.ServletUtils;
+
+import eu.bitwalker.useragentutils.UserAgent;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 异步工厂
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-20 15:28
+ **/
+@Slf4j
+public class AsyncFactoryNew {
+
+    /**
+     * 记录登录信息
+     *
+     * @param username
+     *            用户名
+     * @param status
+     *            状态
+     * @param message
+     *            消息
+     * @param args
+     *            列表
+     * @return 任务task
+     */
+    public static TimerTask recordLogininfor(final String username, final String status, final String message,
+        final Object... args) {
+        final UserAgent userAgent = UserAgent.parseUserAgentString(ServletUtils.getRequest().getHeader("User-Agent"));
+        final String ip = IpUtils.getIpAddr(ServletUtils.getRequest());
+        return new TimerTask() {
+            @Override
+            public void run() {
+                String address = AddressUtils.getRealAddressByIP(ip);
+                StringBuilder s = new StringBuilder();
+                s.append(LogUtils.getBlock(ip));
+                s.append(address);
+                s.append(LogUtils.getBlock(username));
+                s.append(LogUtils.getBlock(status));
+                s.append(LogUtils.getBlock(message));
+                // 打印信息到日志
+                log.info(s.toString(), args);
+                // 获取客户端操作系统
+                String os = userAgent.getOperatingSystem().getName();
+                // 获取客户端浏览器
+                String browser = userAgent.getBrowser().getName();
+                // 封装对象
+                SysLogininforDO logininfor = new SysLogininforDO();
+                logininfor.setUserName(username);
+                logininfor.setIpaddr(ip);
+                logininfor.setLoginLocation(address);
+                logininfor.setBrowser(browser);
+                logininfor.setOs(os);
+                logininfor.setMsg(message);
+                // 日志状态
+                if (Constants.LOGIN_SUCCESS.equals(status) || Constants.LOGOUT.equals(status)) {
+                    logininfor.setStatus(Constants.SUCCESS + "");
+                } else if (Constants.LOGIN_FAIL.equals(status)) {
+                    logininfor.setStatus(Constants.FAIL + "");
+                }
+                // 插入数据
+                // SpringUtils.getBean(ISysLogininforService.class).insertLogininfor(logininfor);
+            }
+        };
+    }
+
+    /**
+     * 操作日志记录
+     *
+     * @param operLog
+     *            操作日志信息
+     * @return 任务task
+     */
+    public static TimerTask recordOper(final SysOperLogDO operLog) {
+        return new TimerTask() {
+            @Override
+            public void run() {
+                // 远程查询操作地点
+                operLog.setOperLocation(AddressUtils.getRealAddressByIP(operLog.getOperIp()));
+                // SpringUtils.getBean(ISysOperLogService.class).insertOperlog(operLog);
+            }
+        };
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/manager/AsyncManagerNew.java b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/manager/AsyncManagerNew.java
new file mode 100644
index 0000000..c1d0c33
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/manager/AsyncManagerNew.java
@@ -0,0 +1,53 @@
+package com.panzhihua.auth.manager;
+
+import java.util.TimerTask;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
+
+import com.panzhihua.common.utlis.SpringUtils;
+import com.panzhihua.common.utlis.Threads;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 异步任务
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-20 15:30
+ **/
+public class AsyncManagerNew {
+
+    private static AsyncManagerNew me = new AsyncManagerNew();
+    /**
+     * 操作延迟10毫秒
+     */
+    private final int OPERATE_DELAY_TIME = 10;
+    /**
+     * 异步操作任务调度线程池
+     */
+    private ScheduledExecutorService executor = SpringUtils.getBean("scheduledExecutorService");
+
+    /**
+     * 单例模式
+     */
+    private AsyncManagerNew() {}
+
+    public static AsyncManagerNew me() {
+        return me;
+    }
+
+    /**
+     * 执行任务
+     *
+     * @param task
+     *            任务
+     */
+    public void execute(TimerTask task) {
+        executor.schedule(task, OPERATE_DELAY_TIME, TimeUnit.MILLISECONDS);
+    }
+
+    /**
+     * 停止任务线程池
+     */
+    public void shutdown() {
+        Threads.shutdownAndAwaitTermination(executor);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/manager/ShutdownManager.java b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/manager/ShutdownManager.java
new file mode 100644
index 0000000..9f51c3a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/manager/ShutdownManager.java
@@ -0,0 +1,34 @@
+package com.panzhihua.auth.manager;
+
+import javax.annotation.PreDestroy;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+/**
+ * 确保应用退出时能关闭后台线程
+ *
+ * @author ruoyi
+ */
+@Component
+public class ShutdownManager {
+    private static final Logger logger = LoggerFactory.getLogger("sys-user");
+
+    @PreDestroy
+    public void destroy() {
+        shutdownAsyncManager();
+    }
+
+    /**
+     * 停止异步执行任务
+     */
+    private void shutdownAsyncManager() {
+        try {
+            logger.info("====关闭后台任务任务线程池====");
+            AsyncManagerNew.me().shutdown();
+        } catch (Exception e) {
+            logger.error(e.getMessage(), e);
+        }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/model/dos/LoginBody.java b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/model/dos/LoginBody.java
new file mode 100644
index 0000000..d5750e3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/model/dos/LoginBody.java
@@ -0,0 +1,25 @@
+package com.panzhihua.auth.model.dos;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 大数据统计平台(区、街道、社区三层登陆接口)
+ * 
+ * @author manailin
+ * @date 2021-5-13 10:56
+ */
+@Data
+@ApiModel(value = "管理后台登录")
+@AllArgsConstructor
+@NoArgsConstructor
+public class LoginBody {
+
+    @ApiModelProperty(value = "登录账户")
+    private String account;
+    @ApiModelProperty(value = "登录密码")
+    private String password;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/model/dos/SysLogininforDO.java b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/model/dos/SysLogininforDO.java
new file mode 100644
index 0000000..2dae28d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/model/dos/SysLogininforDO.java
@@ -0,0 +1,46 @@
+package com.panzhihua.auth.model.dos;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import lombok.Data;
+
+/**
+ * 系统访问记录表 sys_logininfor
+ * 
+ * @author ruoyi
+ */
+@Data
+public class SysLogininforDO {
+    private static final long serialVersionUID = 1L;
+
+    /** ID */
+    private Long infoId;
+
+    /** 用户账号 */
+    private String userName;
+
+    /** 登录状态 0成功 1失败 */
+    private String status;
+
+    /** 登录IP地址 */
+    private String ipaddr;
+
+    /** 登录地点 */
+    private String loginLocation;
+
+    /** 浏览器类型 */
+    private String browser;
+
+    /** 操作系统 */
+    private String os;
+
+    /** 提示消息 */
+    private String msg;
+
+    /** 访问时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date loginTime;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/model/dos/SysOperLogDO.java b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/model/dos/SysOperLogDO.java
new file mode 100644
index 0000000..16c3de7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/model/dos/SysOperLogDO.java
@@ -0,0 +1,70 @@
+package com.panzhihua.auth.model.dos;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import lombok.Data;
+
+/**
+ * 操作日志记录表 oper_log
+ * 
+ * @author ruoyi
+ */
+@Data
+public class SysOperLogDO {
+    private static final long serialVersionUID = 1L;
+
+    /** 日志主键 */
+    private Long operId;
+
+    /** 操作模块 */
+    private String title;
+
+    /** 业务类型(0其它 1新增 2修改 3删除) */
+    private Integer businessType;
+
+    /** 业务类型数组 */
+    private Integer[] businessTypes;
+
+    /** 请求方法 */
+    private String method;
+
+    /** 请求方式 */
+    private String requestMethod;
+
+    /** 操作类别(0其它 1后台用户 2手机端用户) */
+    private Integer operatorType;
+
+    /** 操作人员 */
+    private String operName;
+
+    /** 部门名称 */
+    private String deptName;
+
+    /** 请求url */
+    private String operUrl;
+
+    /** 操作地址 */
+    private String operIp;
+
+    /** 操作地点 */
+    private String operLocation;
+
+    /** 请求参数 */
+    private String operParam;
+
+    /** 返回参数 */
+    private String jsonResult;
+
+    /** 操作状态(0正常 1异常) */
+    private Integer status;
+
+    /** 错误消息 */
+    private String errorMsg;
+
+    /** 操作时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date operTime;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/model/vos/SelfUserEntity.java b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/model/vos/SelfUserEntity.java
new file mode 100644
index 0000000..5ae756b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/model/vos/SelfUserEntity.java
@@ -0,0 +1,150 @@
+package com.panzhihua.auth.model.vos;
+
+import java.io.Serializable;
+import java.util.Collection;
+import java.util.Map;
+
+import org.springframework.security.core.GrantedAuthority;
+import org.springframework.security.core.userdetails.UserDetails;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 权限实体
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-24 15:26
+ **/
+public class SelfUserEntity implements Serializable, UserDetails {
+    private static final long serialVersionUID = 1L;
+    /**
+     * 用户ID
+     */
+    private Long userId;
+    /**
+     * 用户名
+     */
+    private String username;
+    /**
+     * 密码
+     */
+    private String password;
+    /**
+     * 状态
+     */
+    private String status;
+
+    /**
+     * 显示名称
+     */
+    private String displayName;
+    /**
+     * 用户参数
+     */
+    private Map<String, String> userParamMap;
+    /**
+     * 用户角色
+     */
+    private Collection<GrantedAuthority> authorities;
+    /**
+     * 账户是否过期
+     */
+    private boolean isAccountNonExpired = false;
+    /**
+     * 账户是否被锁定
+     */
+    private boolean isAccountNonLocked = false;
+    /**
+     * 证书是否过期
+     */
+    private boolean isCredentialsNonExpired = false;
+    /**
+     * 账户是否有效
+     */
+    private boolean isEnabled = true;
+
+    public static long getSerialVersionUID() {
+        return serialVersionUID;
+    }
+
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+
+    @Override
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    @Override
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String password) {
+        this.password = password;
+    }
+
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+
+    public String getDisplayName() {
+        return displayName;
+    }
+
+    public void setDisplayName(String displayName) {
+        this.displayName = displayName;
+    }
+
+    public Map<String, String> getUserParamMap() {
+        return userParamMap;
+    }
+
+    public void setUserParamMap(Map<String, String> userParamMap) {
+        this.userParamMap = userParamMap;
+    }
+
+    @Override
+    public Collection<GrantedAuthority> getAuthorities() {
+        return authorities;
+    }
+
+    public void setAuthorities(Collection<GrantedAuthority> authorities) {
+        this.authorities = authorities;
+    }
+
+    @Override
+    public boolean isAccountNonExpired() {
+        return isAccountNonExpired;
+    }
+
+    @Override
+    public boolean isAccountNonLocked() {
+        return isAccountNonLocked;
+    }
+
+    @Override
+    public boolean isCredentialsNonExpired() {
+        return isCredentialsNonExpired;
+    }
+
+    @Override
+    public boolean isEnabled() {
+        return isEnabled;
+    }
+
+    public void setEnabled(boolean enabled) {
+        isEnabled = enabled;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/ISysMenuService.java b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/ISysMenuService.java
new file mode 100644
index 0000000..322ff2a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/ISysMenuService.java
@@ -0,0 +1,13 @@
+package com.panzhihua.auth.service;
+
+import java.util.Set;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 菜单
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-20 11:37
+ **/
+public interface ISysMenuService {
+    Set<String> selectMenuPermsByUserId(Long userId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/ISysRoleService.java b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/ISysRoleService.java
new file mode 100644
index 0000000..b972478
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/ISysRoleService.java
@@ -0,0 +1,14 @@
+package com.panzhihua.auth.service;
+
+import java.util.Set;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 角色
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-20 11:36
+ **/
+public interface ISysRoleService {
+
+    Set<String> selectRolePermissionByUserId(Long userId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/LoginService.java b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/LoginService.java
new file mode 100644
index 0000000..4551207
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/LoginService.java
@@ -0,0 +1,160 @@
+package com.panzhihua.auth.service;
+
+import com.panzhihua.common.model.vos.LoginReturnVO;
+import com.panzhihua.common.model.vos.LoginReturnsVO;
+import org.springframework.web.bind.annotation.RequestParam;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: token
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-19 17:06
+ **/
+public interface LoginService {
+
+    /**
+     * 微信小程序登录
+     *
+     * @param openId
+     *            微信标识
+     * @return jwt
+     */
+    LoginReturnVO loginApplets(String openId,String appId);
+
+    /**
+     * 小程序用户登出
+     *
+     * @param token
+     *            登录用户token
+     */
+    void logoutApplets(String token);
+
+    /**
+     * 小程序后台登录
+     * 
+     * @param account
+     *            账户
+     * @param password
+     *            密码
+     * @return 登录结果
+     */
+    LoginReturnVO loginAppletsBackStage(String account, String password,String appid);
+
+    /**
+     * 社区后台登录
+     * 
+     * @param account
+     *            账户
+     * @param password
+     *            密码
+     * @return 登录结果
+     */
+    LoginReturnVO loginCommunityBackage(String account, String password,String appid);
+
+    /**
+     * 商家后台登录
+     * 
+     * @param account
+     *            账户
+     * @param password
+     *            密码
+     * @return 登录结果
+     */
+    LoginReturnVO loginShopBackStage(String account, String password,String appid);
+
+    /**
+     * 大数据统计平台(区、街道、社区三层登陆接口)
+     * 
+     * @param account
+     *            账户
+     * @param password
+     *            密码
+     * @author manailin
+     * @return 登录结果
+     * @date 2021-5-13 10:56
+     */
+    LoginReturnVO loginBigDataBackStage(String account, String password,String appid);
+
+    /**
+     * 网格综治APP登录
+     * 
+     * @param account
+     *            账户
+     * @param password
+     *            密码
+     * @return 登录结果
+     */
+    LoginReturnsVO loginGridApp(String account, String password,String appid);
+
+    /**
+     * 网格综治后台登录
+     * 
+     * @param account
+     *            账户
+     * @param password
+     *            密码
+     * @return 登录结果
+     */
+    LoginReturnVO loginGridBackstage(String account, String password,String appid);
+
+    /**
+     * 城管后台登录
+     * @param account   账号
+     * @param password  密码
+     * @return  登录结果
+     */
+    LoginReturnVO loginCgBackage(String account, String password,String appid);
+
+    /**
+     * 一键报警APP登录
+     *
+     * @param account
+     *            账户
+     * @param password
+     *            密码
+     * @return 登录结果
+     */
+    LoginReturnsVO loginAlarmApp(String account, String password,String appid);
+
+    /**
+     * 便民服务商家后台登录
+     * @param account 账户
+     * @param password 密码
+     * @return 登录结果
+     */
+    LoginReturnVO loginMerchantBackStage(String account, String password,String appid);
+
+    /**
+     * 西区大屏登录
+     * @param account   账号
+     * @param password  密码
+     * @return  登录结果
+     */
+    LoginReturnVO loginXQDP(String account, String password,String appid);
+
+    /**
+     * 微商业街用户登录
+     * @param account 账户
+     * @param password 密码
+     * @return 登录结果
+     */
+    LoginReturnVO loginMcsUser(String account, String password,String appid);
+    /**
+     * 天府通办
+     * @param account 账户
+     * @param password 密码
+     * @return 登录结果
+     */
+    LoginReturnVO tfLogin(String account, String password,String appid);
+
+    /**
+     * 电动车商城后台用户登录
+     *
+     * @param account
+     *            账户
+     * @param password
+     *            密码
+     * @return 登录结果
+     */
+    LoginReturnVO loginBatteryUser(String account, String password,String appid);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/impl/ISysMenuServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/impl/ISysMenuServiceImpl.java
new file mode 100644
index 0000000..493f1bc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/impl/ISysMenuServiceImpl.java
@@ -0,0 +1,21 @@
+package com.panzhihua.auth.service.impl;
+
+import java.util.Set;
+
+import org.springframework.stereotype.Service;
+
+import com.panzhihua.auth.service.ISysMenuService;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: ISysMenuService
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-20 13:28
+ **/
+@Service
+public class ISysMenuServiceImpl implements ISysMenuService {
+    @Override
+    public Set<String> selectMenuPermsByUserId(Long userId) {
+        return null;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/impl/ISysRoleServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/impl/ISysRoleServiceImpl.java
new file mode 100644
index 0000000..0bd09d2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/impl/ISysRoleServiceImpl.java
@@ -0,0 +1,21 @@
+package com.panzhihua.auth.service.impl;
+
+import java.util.Set;
+
+import org.springframework.stereotype.Service;
+
+import com.panzhihua.auth.service.ISysRoleService;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: ISysRoleService
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-20 13:27
+ **/
+@Service
+public class ISysRoleServiceImpl implements ISysRoleService {
+    @Override
+    public Set<String> selectRolePermissionByUserId(Long userId) {
+        return null;
+    }
+}
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
new file mode 100644
index 0000000..1028cd9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/java/com/panzhihua/auth/service/impl/LoginServiceImpl.java
@@ -0,0 +1,383 @@
+package com.panzhihua.auth.service.impl;
+
+import java.util.Date;
+import java.util.concurrent.TimeUnit;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActVO;
+import com.panzhihua.common.model.vos.user.SysOperLogVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.IPUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+import org.springframework.security.authentication.AuthenticationManager;
+import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.security.core.Authentication;
+import org.springframework.stereotype.Service;
+
+import com.panzhihua.auth.service.LoginService;
+import com.panzhihua.common.constants.TokenConstant;
+import com.panzhihua.common.constants.UserConstants;
+import com.panzhihua.common.model.vos.LoginReturnVO;
+import com.panzhihua.common.model.vos.LoginReturnsVO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.utlis.JWTTokenUtil;
+import org.springframework.web.context.request.RequestAttributes;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import static java.util.Objects.nonNull;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: token
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-19 17:07
+ **/
+@Service
+public class LoginServiceImpl implements LoginService {
+    @Resource
+    private AuthenticationManager authenticationManager;
+    @Autowired
+    private StringRedisTemplate redisTemplate;
+    @Resource
+    private UserService userService;
+
+    /**
+     * 微信小程序登录
+     *
+     * @param openId
+     *            微信标识
+     * @return jwt
+     */
+    @Override
+    public LoginReturnVO loginApplets(String openId,String appId) {
+        Authentication authentication = null;
+        authentication = authenticationManager
+            .authenticate(new UsernamePasswordAuthenticationToken(openId + "_1"+"_"+appId, UserConstants.PASSWORD));
+        LoginUserInfoVO loginUser = (LoginUserInfoVO)authentication.getPrincipal();
+        String token = JWTTokenUtil.generateToken(loginUser);
+        String refeshToken = JWTTokenUtil.generateRefeshToken(loginUser);
+        LoginReturnVO loginReturnVO = new LoginReturnVO();
+        loginReturnVO.setToken(token);
+        loginReturnVO.setRefreshToken(refeshToken);
+        return loginReturnVO;
+    }
+
+    /**
+     * 小程序用户登出
+     *
+     * @param token
+     *            登录用户token
+     */
+    @Override
+    public void logoutApplets(String token) {
+        ValueOperations<String, String> valueOperations = redisTemplate.opsForValue();
+        token = token.replaceAll(TokenConstant.TOKEN_PRE, "");
+        valueOperations.set(UserConstants.LOGOUT_TOKEN + token, token, TokenConstant.EXPIRETIME, TimeUnit.MINUTES);
+    }
+
+    /**
+     * 运营后台登录
+     *
+     * @param account
+     *            账户
+     * @param password
+     *            密码
+     * @return 登录结果
+     */
+    @Override
+    public LoginReturnVO loginAppletsBackStage(String account, String password,String appid) {
+        Authentication authentication = null;
+        authentication =
+            authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_2"+"_"+appid, password));
+        LoginUserInfoVO loginUser = (LoginUserInfoVO)authentication.getPrincipal();
+        String token = JWTTokenUtil.generateToken(loginUser);
+        String refeshToken = JWTTokenUtil.generateRefeshToken(loginUser);
+        LoginReturnVO loginReturnVO = new LoginReturnVO();
+        loginReturnVO.setToken(token);
+        loginReturnVO.setRefreshToken(refeshToken);
+        return loginReturnVO;
+    }
+
+    /**
+     * 社区后台登录
+     *
+     * @param account
+     *            账户
+     * @param password
+     *            密码
+     * @return 登录结果
+     */
+    @Override
+    public LoginReturnVO loginCommunityBackage(String account, String password,String appId) {
+        Authentication authentication = null;
+        authentication =
+            authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_3"+"_"+appId, password));
+        LoginUserInfoVO loginUser = (LoginUserInfoVO)authentication.getPrincipal();
+        String token = JWTTokenUtil.generateToken(loginUser);
+        String refeshToken = JWTTokenUtil.generateRefeshToken(loginUser);
+        ComActVO comActVO = loginUser.getComActVO();
+        LoginReturnVO loginReturnVO = new LoginReturnVO();
+        loginReturnVO.setToken(token);
+        loginReturnVO.setRefreshToken(refeshToken);
+        loginReturnVO.setCommunityId(loginUser.getCommunityId());
+        if (nonNull(comActVO)) {
+            loginReturnVO.setLat(comActVO.getLat());
+            loginReturnVO.setLng(comActVO.getLng());
+        }
+        //保存登录日志
+        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
+        SysOperLogVO operlog = new SysOperLogVO();
+        operlog.setTitle("登录操作"); // 操作模块
+        operlog.setBusinessType(1); // 操作类型
+        operlog.setMethod("com.panzhihua.community_backstage.api.LoginApi.login"); // 请求方法
+        operlog.setAccount(loginUser.getAccount());
+        operlog.setOperName(loginUser.getName()); // 请求用户名称
+        operlog.setOperIp(IPUtil.getIpAddress(request)); // 请求IP
+        operlog.setOperUrl(request.getRequestURI()); // 请求URI
+        operlog.setRequestMethod(request.getMethod());
+        operlog.setOperLocation(IPUtil.getIpBelongAddress(request));
+        operlog.setOperTime(new Date()); // 创建时间
+        operlog.setCommunityId(loginUser.getCommunityId());
+        userService.addOperLog(operlog);
+        return loginReturnVO;
+    }
+
+    /**
+     * 商家后台登录
+     *
+     * @param account
+     *            账户
+     * @param password
+     *            密码
+     * @return 登录结果
+     */
+    @Override
+    public LoginReturnVO loginShopBackStage(String account, String password,String appId) {
+        Authentication authentication = null;
+        authentication =
+                authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_5"+"_"+appId, password));
+        LoginUserInfoVO loginUser = (LoginUserInfoVO)authentication.getPrincipal();
+        String token = JWTTokenUtil.generateToken(loginUser);
+        String refeshToken = JWTTokenUtil.generateRefeshToken(loginUser);
+        ComActVO comActVO = loginUser.getComActVO();
+        LoginReturnVO loginReturnVO = new LoginReturnVO();
+        loginReturnVO.setToken(token);
+        loginReturnVO.setRefreshToken(refeshToken);
+        loginReturnVO.setCommunityId(loginUser.getCommunityId());
+        if (nonNull(comActVO)) {
+            loginReturnVO.setLat(comActVO.getLat());
+            loginReturnVO.setLng(comActVO.getLng());
+        }
+        //保存登录日志
+        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
+        SysOperLogVO operlog = new SysOperLogVO();
+        operlog.setTitle("登录操作"); // 操作模块
+        operlog.setBusinessType(1); // 操作类型
+        operlog.setMethod("com.panzhihua.community_backstage.api.LoginApi.loginShopBackStage"); // 请求方法
+        operlog.setAccount(loginUser.getAccount());
+        operlog.setOperName(loginUser.getName()); // 请求用户名称
+        operlog.setOperIp(IPUtil.getIpAddress(request)); // 请求IP
+        operlog.setOperUrl(request.getRequestURI()); // 请求URI
+        operlog.setRequestMethod(request.getMethod());
+        operlog.setOperLocation(IPUtil.getIpBelongAddress(request));
+        operlog.setOperTime(new Date()); // 创建时间
+        operlog.setCommunityId(loginUser.getCommunityId());
+        userService.addOperLog(operlog);
+        return loginReturnVO;
+    }
+
+    /**
+     * 大数据统计平台(区、街道、社区三层登陆接口)
+     * 
+     * @param account
+     *            账户
+     * @param password
+     *            密码
+     * @author manailin
+     * @return 登录结果
+     * @date 2021-5-13 10:56
+     */
+    @Override
+    public LoginReturnVO loginBigDataBackStage(String account, String password,String appid) {
+        Authentication authentication = null;
+        authentication =
+            authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_8"+"_"+appid, password));
+        LoginUserInfoVO loginUser = (LoginUserInfoVO)authentication.getPrincipal();
+        String token = JWTTokenUtil.generateToken(loginUser);
+        String refeshToken = JWTTokenUtil.generateRefeshToken(loginUser);
+        LoginReturnVO loginReturnVO = new LoginReturnVO();
+        loginReturnVO.setToken(token);
+        loginReturnVO.setRefreshToken(refeshToken);
+        return loginReturnVO;
+    }
+
+    /**
+     * 商家后台登录
+     *
+     * @param account
+     *            账户
+     * @param password
+     *            密码
+     * @return 登录结果
+     */
+    @Override
+    public LoginReturnsVO loginGridApp(String account, String password,String appid) {
+        Authentication authentication = null;
+        authentication =
+            authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_6"+"_"+appid, password));
+        LoginUserInfoVO loginUser = (LoginUserInfoVO)authentication.getPrincipal();
+        String token = JWTTokenUtil.generateToken(loginUser);
+        String refeshToken = JWTTokenUtil.generateRefeshToken(loginUser);
+        LoginReturnsVO loginReturnVO = new LoginReturnsVO();
+        loginReturnVO.setToken(token);
+        loginReturnVO.setRefreshToken(refeshToken);
+        loginReturnVO.setUserId(loginUser.getUserId());
+        return loginReturnVO;
+    }
+
+    /**
+     * 商家后台登录
+     *
+     * @param account
+     *            账户
+     * @param password
+     *            密码
+     * @return 登录结果
+     */
+    @Override
+    public LoginReturnVO loginGridBackstage(String account, String password,String appid) {
+        Authentication authentication = null;
+        authentication =
+            authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_7"+"_"+appid, password));
+        LoginUserInfoVO loginUser = (LoginUserInfoVO)authentication.getPrincipal();
+        String token = JWTTokenUtil.generateToken(loginUser);
+        String refeshToken = JWTTokenUtil.generateRefeshToken(loginUser);
+        LoginReturnVO loginReturnVO = new LoginReturnVO();
+        loginReturnVO.setToken(token);
+        loginReturnVO.setRefreshToken(refeshToken);
+        return loginReturnVO;
+    }
+
+    @Override
+    public LoginReturnVO loginCgBackage(String account, String password,String appid){
+        Authentication authentication = null;
+        authentication =
+                authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_9"+"_"+appid, password));
+        LoginUserInfoVO loginUser = (LoginUserInfoVO)authentication.getPrincipal();
+        String token = JWTTokenUtil.generateToken(loginUser);
+        String refeshToken = JWTTokenUtil.generateRefeshToken(loginUser);
+        LoginReturnVO loginReturnVO = new LoginReturnVO();
+        loginReturnVO.setToken(token);
+        loginReturnVO.setRefreshToken(refeshToken);
+        return loginReturnVO;
+    }
+
+    @Override
+    public LoginReturnsVO loginAlarmApp(String account, String password,String appid) {
+        Authentication authentication = null;
+        authentication =
+                authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_10"+"_"+appid, password));
+        LoginUserInfoVO loginUser = (LoginUserInfoVO)authentication.getPrincipal();
+        String token = JWTTokenUtil.generateToken(loginUser);
+        String refeshToken = JWTTokenUtil.generateRefeshToken(loginUser);
+        LoginReturnsVO loginReturnVO = new LoginReturnsVO();
+        loginReturnVO.setToken(token);
+        loginReturnVO.setRefreshToken(refeshToken);
+        loginReturnVO.setUserId(loginUser.getUserId());
+        return loginReturnVO;
+    }
+
+    /**
+     * 便民服务商家后台登录
+     * @param account 账户
+     * @param password 密码
+     * @return 登录结果
+     */
+    @Override
+    public LoginReturnVO loginMerchantBackStage(String account, String password,String appid) {
+        Authentication authentication = authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_10"+"_"+appid, password));
+        LoginUserInfoVO loginUser = (LoginUserInfoVO)authentication.getPrincipal();
+        String token = JWTTokenUtil.generateToken(loginUser);
+        String refeshToken = JWTTokenUtil.generateRefeshToken(loginUser);
+        LoginReturnVO loginReturnVO = new LoginReturnVO();
+        loginReturnVO.setToken(token);
+        loginReturnVO.setRefreshToken(refeshToken);
+        return loginReturnVO;
+    }
+
+    /**
+     * 西区大屏登录
+     * @param account   账号
+     * @param password  密码
+     * @return  登录结果
+     */
+    @Override
+    public LoginReturnVO loginXQDP(String account, String password,String appid){
+        Authentication authentication = authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_15"+"_"+appid, password));
+        LoginUserInfoVO loginUser = (LoginUserInfoVO)authentication.getPrincipal();
+        String token = JWTTokenUtil.generateToken(loginUser);
+        String refeshToken = JWTTokenUtil.generateRefeshToken(loginUser);
+        LoginReturnVO loginReturnVO = new LoginReturnVO();
+        loginReturnVO.setToken(token);
+        loginReturnVO.setRefreshToken(refeshToken);
+        return loginReturnVO;
+    }
+
+    /**
+     * 微商业街用户登录
+     * @param account 账户
+     * @param password 密码
+     * @return 登录结果
+     */
+    @Override
+    public LoginReturnVO loginMcsUser(String account, String password,String appid) {
+        Authentication authentication = authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_11"+"_"+appid, password));
+        LoginUserInfoVO loginUser = (LoginUserInfoVO)authentication.getPrincipal();
+        String token = JWTTokenUtil.generateToken(loginUser);
+        String refeshToken = JWTTokenUtil.generateRefeshToken(loginUser);
+        LoginReturnVO loginReturnVO = new LoginReturnVO();
+        loginReturnVO.setToken(token);
+        loginReturnVO.setRefreshToken(refeshToken);
+        return loginReturnVO;
+    }
+
+    @Override
+    public LoginReturnVO tfLogin(String account, String password, String appid) {
+        Authentication authentication = authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_16"+"_"+appid, password));
+        LoginUserInfoVO loginUser = (LoginUserInfoVO)authentication.getPrincipal();
+        String token = JWTTokenUtil.generateToken(loginUser);
+        String refeshToken = JWTTokenUtil.generateRefeshToken(loginUser);
+        LoginReturnVO loginReturnVO = new LoginReturnVO();
+        loginReturnVO.setToken(token);
+        loginReturnVO.setRefreshToken(refeshToken);
+        return loginReturnVO;
+    }
+
+    /**
+     * 电动车商城后台用户登录
+     *
+     * @param account
+     *            账户
+     * @param password
+     *            密码
+     * @return 登录结果
+     */
+    @Override
+    public LoginReturnVO loginBatteryUser(String account, String password,String appid) {
+        Authentication authentication = authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(account + "_20"+"_"+appid, password));
+        LoginUserInfoVO loginUser = (LoginUserInfoVO)authentication.getPrincipal();
+        String token = JWTTokenUtil.generateToken(loginUser);
+        String refeshToken = JWTTokenUtil.generateRefeshToken(loginUser);
+        LoginReturnVO loginReturnVO = new LoginReturnVO();
+        loginReturnVO.setToken(token);
+        loginReturnVO.setRefreshToken(refeshToken);
+        return loginReturnVO;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/resources/bootstrap.yml b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..fab9358
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/resources/bootstrap.yml
@@ -0,0 +1,38 @@
+spring:
+  application:
+    name: huacheng-auth
+  cloud:
+    config:
+      discovery:
+        enabled: true
+        service-id: huacheng-config  # 注册中心的服务名
+      profile: ${ENV:dev}  # 指定配置文件的环境
+      uri: http://${CONFIG_URL:localhost}:6193/
+  profiles:
+    active: ${ENV:dev}
+
+eureka:
+  client:
+    service-url:
+      defaultZone: http://${EUREKA_URL:localhost}:8192/eureka
+
+
+management:
+  endpoints:
+    web:
+      exposure:
+        include: '*'
+
+  endpoint:
+    health:
+      show-details: always
+
+  metrics:
+    tags:
+      application: huacheng-auth
+#实体加密、解密、字段脱敏拦截设置
+domain:
+  decrypt: true
+  encrypt: true
+  aesKey: Ryo7M3n8loC5
+  sensitive: true
diff --git a/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/resources/logback-spring.xml b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..8b7fc35
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/auth/src/main/resources/logback-spring.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration debug="false">
+    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
+    <springProfile name="dev">
+        <property name="LOG_HOME" value="F:/log" />
+    </springProfile>
+       <springProfile name="test">
+        <property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    </springProfile>
+<property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    <!-- 控制台输出 -->
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+    </appender>
+    <!-- 按照每天生成日志文件 -->
+    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!--日志文件输出的文件名-->
+            <FileNamePattern>${LOG_HOME}/huachengauth.log.%d{yyyy-MM-dd}.log</FileNamePattern>
+            <!--日志文件保留天数-->
+            <MaxHistory>30</MaxHistory>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+        <!--日志文件最大的大小-->
+        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <MaxFileSize>10MB</MaxFileSize>
+        </triggeringPolicy>
+    </appender>
+
+    <!--myibatis log configure-->
+    <logger name="com.apache.ibatis" level="TRACE"/>
+    <logger name="java.sql.Connection" level="DEBUG"/>
+    <logger name="java.sql.Statement" level="DEBUG"/>
+    <logger name="java.sql.PreparedStatement" level="DEBUG"/>
+    <logger name="com.panzhihua.auth" level="DEBUG"/>
+
+    <!-- 日志输出级别 -->
+    <root level="DEBUG">
+        <appender-ref ref="STDOUT" />
+    </root>
+    <root level="INFO">
+        <appender-ref ref="STDOUT" />
+        <appender-ref ref="FILE" />
+    </root>
+</configuration>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/.gitignore b/springcloud_k8s_panzhihuazhihuishequ/common/.gitignore
new file mode 100644
index 0000000..549e00a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/.gitignore
@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/common/pom.xml
new file mode 100644
index 0000000..ab94340
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/pom.xml
@@ -0,0 +1,209 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>zhihuishequ</artifactId>
+        <groupId>com.panzhihua</groupId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>common</artifactId>
+    <version>1.0-SNAPSHOT</version>
+    <packaging>jar</packaging>
+
+    <dependencies>
+        <dependency>
+            <groupId>cn.hutool</groupId>
+            <artifactId>hutool-core</artifactId>
+            <version>5.6.7</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-context</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>ch.qos.logback</groupId>
+            <artifactId>logback-classic</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.tomcat.embed</groupId>
+            <artifactId>tomcat-embed-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>net.coobird</groupId>
+            <artifactId>thumbnailator</artifactId>
+            <version>0.4.8</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-lang3</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>fastjson</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.fasterxml.jackson.core</groupId>
+            <artifactId>jackson-annotations</artifactId>
+        </dependency>
+        <!-- 获取浏览器信息 -->
+        <dependency>
+            <groupId>eu.bitwalker</groupId>
+            <artifactId>UserAgentUtils</artifactId>
+            <version>1.21</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-webmvc</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger2</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.jsonwebtoken</groupId>
+            <artifactId>jjwt</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-redis</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-pool2</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>commons-net</groupId>
+            <artifactId>commons-net</artifactId>
+            <version>3.6</version>
+        </dependency>
+        <!-- thymeleaf -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-thymeleaf</artifactId>
+        </dependency>
+        <!--FlyingSaucer-->
+        <dependency>
+            <groupId>org.xhtmlrenderer</groupId>
+            <artifactId>flying-saucer-pdf</artifactId>
+            <version>9.1.9</version>
+        </dependency>
+        <!-- batik -->
+        <dependency>
+            <groupId>org.apache.xmlgraphics</groupId>
+            <artifactId>batik-codec</artifactId>
+            <version>1.12</version>
+        </dependency>
+        <!--       阿里easyexcel-->
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>easyexcel</artifactId>
+            <version>2.2.6</version>
+        </dependency>
+        <dependency>
+            <groupId>com.jcraft</groupId>
+            <artifactId>jsch</artifactId>
+            <version>0.1.53</version>
+        </dependency>
+        <dependency>
+            <groupId>jakarta.validation</groupId>
+            <artifactId>jakarta.validation-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.hibernate.validator</groupId>
+            <artifactId>hibernate-validator</artifactId>
+        </dependency>
+        <!-- https://mvnrepository.com/artifact/com.belerweb/pinyin4j -->
+        <dependency>
+            <groupId>com.belerweb</groupId>
+            <artifactId>pinyin4j</artifactId>
+            <version>2.5.1</version>
+        </dependency>
+         <dependency>
+             <groupId>org.springframework.boot</groupId>
+             <artifactId>spring-boot-starter-aop</artifactId>
+         </dependency>
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpclient</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.jdom</groupId>
+            <artifactId>jdom2</artifactId>
+            <version>2.0.5</version>
+        </dependency>
+        <dependency>
+            <groupId>org.json</groupId>
+            <artifactId>json</artifactId>
+            <version>20160810</version>
+        </dependency>
+        <!-- https://mvnrepository.com/artifact/commons-codec/commons-codec -->
+        <dependency>
+            <groupId>commons-codec</groupId>
+            <artifactId>commons-codec</artifactId>
+            <version>1.9</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.tencentcloudapi</groupId>
+            <artifactId>tencentcloud-sdk-java</artifactId>
+            <!-- go to https://search.maven.org/search?q=tencentcloud-sdk-java and get the latest version. -->
+            <!-- 请到https://search.maven.org/search?q=tencentcloud-sdk-java查询所有版本,最新版本如下 -->
+            <version>3.1.286</version>
+        </dependency>
+	<dependency>
+            <groupId>cn.hutool</groupId>
+            <artifactId>hutool-all</artifactId>
+            <version>5.6.7</version>
+        </dependency>
+        <dependency>
+            <groupId>com.esotericsoftware</groupId>
+            <artifactId>reflectasm</artifactId>
+            <version>1.11.9</version>
+        </dependency>
+        <dependency>
+            <groupId>cn.afterturn</groupId>
+            <artifactId>easypoi-base</artifactId>
+            <version>4.1.0</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>com.google.guava</groupId>
+                    <artifactId>guava</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>com.google.zxing</groupId>
+            <artifactId>core</artifactId>
+            <version>3.1.0</version>
+        </dependency>
+        <dependency>
+            <groupId>com.google.zxing</groupId>
+            <artifactId>javase</artifactId>
+            <version>3.1.0</version>
+        </dependency>
+        <dependency>
+            <groupId>org.jsoup</groupId>
+            <artifactId>jsoup</artifactId>
+            <version>1.13.1</version>
+            <scope>compile</scope>
+        </dependency>
+
+    </dependencies>
+
+
+</project>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/DictionItemConstants.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/DictionItemConstants.java
new file mode 100644
index 0000000..3abe891
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/DictionItemConstants.java
@@ -0,0 +1,19 @@
+package com.panzhihua.common.api;
+
+/**
+ * 攀枝花综治网格化-字段key
+ *
+ * @author manailin
+ * @date 2021/06/16
+ */
+public class DictionItemConstants {
+
+    /**
+     * 文化层度字典编码
+     */
+    public static final String LC_CULTURE_LEVEL = "1156457421221564414";
+
+    private DictionItemConstants() {
+        throw new IllegalStateException("Utility class");
+    }
+}
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
new file mode 100644
index 0000000..102a4e4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LcApiConstants.java
@@ -0,0 +1,106 @@
+package com.panzhihua.common.api;
+
+/**
+ * 攀枝花综治网格化-事件上报接口列表-测试环境接口
+ *
+ * @author manailin
+ * @date 2021/06/16
+ */
+public class LcApiConstants {
+
+    /**
+     * 将浪潮对接接口中所需的固定账号名称,账号和密码登陆来获取token
+     */
+    public static final String LC_UPLOAD_NAME = "18080799023";
+    /**
+     * 将浪潮对接接口中所需的固定用户密码
+     */
+    public static final String LC_UPLOAD_PASSWORD = "123456";
+    /**
+     * 将浪潮对接接口中所需的token存在Redis里面的KEY
+     */
+    public static final String LANG_CHAO_TOKEN = "lang_chao_token";
+    /**
+     * 获取token
+     */
+    public static final String GRID_GET_TOKEN_URL =
+        "/aaToken?username=#username&password=#password";
+    /**
+     * 提交事件登记(自处)
+     */
+    public static final String GRID_REGIST_EVENT_URL = "/businessData/registEventInfo";
+    /**
+     * 上传附件,仅上传文件流,服务器根据文件名自行匹配
+     */
+    public static final String GRID_EVENT_FILE_UPLOAD_URL = "/businessData/upload";
+    /**
+     * 事件类型获取
+     */
+    public static final String GRID_EVENT_CATEGORY_URL = "/businessData/getEventType";
+    /**
+     * 事件查询接口
+     */
+    public static final String GRID_EVENT_INFO_URL = "/businessData/getEventListInfo";
+    /**
+     * 获取指定APP登记事件详情信息
+     */
+    public static final String GRID_EVENT_INFO_DETAIL_URL = "/businessData/getEventDetails";
+    /**
+     * 获取指定事件信息
+     */
+    public static final String GRID_APP_EVENT_INFO_DETAIL_URL =
+        "/businessData/getAppointEventInfo";
+    /**
+     * 通过AREAID获取辖区网格树
+     */
+    public static final String GRID_GET_EVENT_INFO_AREA_ID_URL =
+        "/area/getAreaGridTreeByAreaId";
+    /**
+     * 通过AREAID获取辖区网格数据列表
+     */
+    public static final String GRID_GET_GRID_DATA_AREA_ID_URL =
+        "/gridDefined/getGridInfoByAreaId";
+    /**
+     * 获取所有或者根据姓名和工号查询,分页
+     */
+    public static final String GRID_GET_GETALL_SEARCH_PAGE_URL =
+        "/gridOperator/getAllOrSearchByPage?areaId=jhRxqEQp";
+    /**
+     * 流动人口 走访记录列表
+     */
+    public static final String VISIT_RECORD_FLOW_PERSON_PAGE_URL =
+        "/businessData/getFPVisitRecordByPageApp";
+
+    /**
+     * 下面的接口全部都是走访任务接口
+     */
+    /**
+     * 流动人口 走访详情(民警带领下工作或者自己走访)
+     */
+    public static final String VISIT_RECORD_FLOW_PERSON_DETAIL_URL =
+        "/businessData/getFPVisitRecordDetailByIdApp";
+    /**
+     * 流动人口 添加走访记录 (民警带领下工作或者自己走访)
+     */
+    public static final String VISIT_RECORD_FLOW_PERSON_SAVE_URL =
+        "/businessData/saveFpVisitRecordAppDock";
+    /**
+     * 重点人员 日常管理 走访记录列表
+     */
+    public static final String VISIT_RECORD_KEY_PERSON_PAGE_URL =
+        "/businessData/getKeyPersonVisitRecordByPageApp";
+    /**
+     * 重点人员 日常管理 走访详情
+     */
+    public static final String VISIT_RECORD_KEY_PERSON_DETAIL_URL =
+        "/businessData/getKeyPersonVisitRecordDetailByIdApp";
+    /**
+     * 重点人员 日常管理 添加走访记录
+     */
+    public static final String VISIT_RECORD_KEY_PERSON_SAVE_REMOTE_URL =
+        "/businessData/saveKeyPersonVisitRecordAppDock";
+
+    private LcApiConstants() {
+        throw new IllegalStateException("Utility class");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LcRequestEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LcRequestEnum.java
new file mode 100644
index 0000000..30f6f92
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LcRequestEnum.java
@@ -0,0 +1,30 @@
+package com.panzhihua.common.api;
+
+import lombok.Getter;
+
+/**
+ * 浪潮接口请求返回结果对象
+ * 
+ * @author manailin
+ * @date 2021/06/20
+ */
+@Getter
+public enum LcRequestEnum {
+    /**
+     * 浪潮接口请求返回失败枚举
+     */
+    FALSE("0", "失败"),
+    /**
+     * 浪潮接口请求返回成功枚举
+     */
+    SUCCESS("200", "成功");
+
+    private final String code;
+    private final String result;
+
+    LcRequestEnum(String code, String result) {
+        this.code = code;
+        this.result = result;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LcReturnObject.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LcReturnObject.java
new file mode 100644
index 0000000..cb92b29
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LcReturnObject.java
@@ -0,0 +1,29 @@
+package com.panzhihua.common.api;
+
+import lombok.Data;
+
+/**
+ * 攀枝花综治网格化-事件接口请求返回的对象
+ *
+ * @author manailin
+ * @date 2021/06/20
+ */
+@Data
+public class LcReturnObject {
+    /**
+     * 返回code
+     */
+    private String code;
+    /**
+     * 返回消息信息
+     */
+    private String message;
+    /**
+     * 返回对象信息
+     */
+    private String data;
+    /**
+     * 返回的是否成功标识
+     */
+    private Boolean success;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LcVisitRecordKeyPersonLabelEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LcVisitRecordKeyPersonLabelEnum.java
new file mode 100644
index 0000000..3619b68
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/api/LcVisitRecordKeyPersonLabelEnum.java
@@ -0,0 +1,56 @@
+package com.panzhihua.common.api;
+
+import lombok.Getter;
+
+/**
+ * 攀枝花综治网格化 浪潮重点人员走访接口,人员类型
+ * 
+ * @author manailin
+ * @date 2021/06/20
+ */
+@Getter
+public enum LcVisitRecordKeyPersonLabelEnum {
+    /**
+     * 浪潮接口请求参数:吸毒人员类型
+     */
+    XD(1, "p01_drug"),
+    /**
+     * 浪潮接口请求参数:重精人员类型
+     */
+    JS(2, "p01_trouble_schiz"),
+    /**
+     * 浪潮接口请求参数:释放人员类型
+     */
+    XM(3, "p01_release"),
+    /**
+     * 浪潮接口请求参数:纠正人员类型
+     */
+    SJ(4, "p01_be_corrected");
+
+    private final Integer code;
+    private final String name;
+
+    LcVisitRecordKeyPersonLabelEnum(Integer code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public static int getCodeByName(String name) {
+        for (LcVisitRecordKeyPersonLabelEnum item : LcVisitRecordKeyPersonLabelEnum.values()) {
+            if (item.name.equals(name)) {
+                return item.getCode();
+            }
+        }
+        return -1;
+    }
+
+    public static String getCnDescByName(Integer code) {
+        for (LcVisitRecordKeyPersonLabelEnum item : LcVisitRecordKeyPersonLabelEnum.values()) {
+            if (item.code.equals(code)) {
+                return item.getName();
+            }
+        }
+        return "其他";
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/BcDictionaryConstants.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/BcDictionaryConstants.java
new file mode 100644
index 0000000..c547628
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/BcDictionaryConstants.java
@@ -0,0 +1,55 @@
+package com.panzhihua.common.constants;
+
+/**
+ * 字典表key
+ * 
+ * @author xyh
+ * @date 2021/6/11 15:53
+ */
+public class BcDictionaryConstants {
+
+    /**
+     * 家庭关系
+     */
+    public static final String FAMILY = "family";
+
+    /**
+     * 民族
+     */
+    public static final String NATION = "nation";
+
+    /**
+     * 性别
+     */
+    public static final String SEX = "sex";
+
+    /**
+     * 婚姻状况
+     */
+    public static final String MARRY = "marry";
+    /**
+     * 国家
+     */
+    public static final String COUNTRY = "country";
+
+    /**
+     * 学历
+     */
+    public static final String EDUCATION = "education";
+
+    /**
+     * 生育史
+     */
+    public static final String CHILDBEARING_HISTORY = "childbearing history";
+
+    /**
+     * 职业
+     */
+    public static final String PROFESSION = "profession";
+
+    /**
+     * 政治面貌
+     */
+    public static final String POLITICAL_OUTLOOK = "political_outlook";
+
+}
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
new file mode 100644
index 0000000..8da1881
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/Constants.java
@@ -0,0 +1,275 @@
+package com.panzhihua.common.constants;
+
+/**
+ * 通用常量信息
+ *
+ * @author HUANGHONGFA
+ */
+public class Constants {
+    /**
+     * UTF-8 字符集
+     */
+    public static final String UTF8 = "UTF-8";
+
+    /**
+     * GBK 字符集
+     */
+    public static final String GBK = "GBK";
+
+    /**
+     * http请求
+     */
+    public static final String HTTP = "http://";
+
+    /**
+     * https请求
+     */
+    public static final String HTTPS = "https://";
+
+    /**
+     * 成功标记
+     */
+    public static final Integer SUCCESS = 200;
+
+    /**
+     * 失败标记
+     */
+    public static final Integer FAIL = 500;
+
+    /**
+     * 登录成功
+     */
+    public static final String LOGIN_SUCCESS = "Success";
+
+    /**
+     * 注销
+     */
+    public static final String LOGOUT = "Logout";
+
+    /**
+     * 注册
+     */
+    public static final String REGISTER = "Register";
+
+    /**
+     * 登录失败
+     */
+    public static final String LOGIN_FAIL = "Error";
+
+    /**
+     * 当前记录起始索引
+     */
+    public static final String PAGE_NUM = "pageNum";
+
+    /**
+     * 每页显示记录数
+     */
+    public static final String PAGE_SIZE = "pageSize";
+
+    /**
+     * 排序列
+     */
+    public static final String ORDER_BY_COLUMN = "orderByColumn";
+
+    /**
+     * 排序的方向 "desc" 或者 "asc".
+     */
+    public static final String IS_ASC = "isAsc";
+
+    /**
+     * 验证码 redis key
+     */
+    public static final String CAPTCHA_CODE_KEY = "captcha_codes:";
+
+    /**
+     * 验证码有效期(分钟)
+     */
+    public static final long CAPTCHA_EXPIRATION = 2;
+
+    /**
+     * 令牌有效期(分钟)
+     */
+    public final static long TOKEN_EXPIRE = 720;
+
+    /**
+     * 参数管理 cache key
+     */
+    public static final String SYS_CONFIG_KEY = "sys_config:";
+
+    /**
+     * 字典管理 cache key
+     */
+    public static final String SYS_DICT_KEY = "sys_dict:";
+
+    /**
+     * 资源映射路径 前缀
+     */
+    public static final String RESOURCE_PREFIX = "/profile";
+    /**
+     * 令牌前缀
+     */
+    public static final String LOGIN_USER_KEY = "login_user_key";
+    /**
+     * 令牌前缀
+     */
+    public static final String TOKEN_PREFIX = "Bearer ";
+    /**
+     * 登录用户 redis key
+     */
+    public static final String LOGIN_TOKEN_KEY = "login_tokens:";
+    /**
+     * 防重提交 redis key
+     */
+    public static final String REPEAT_SUBMIT_KEY = "repeat_submit:";
+
+    public static final String AES_KEY = "35^*M@dp$5xDB&P@";
+
+    /**
+     * 商户平台默认角色权限默认字符串
+     */
+    public static final String SHOP_ROLE_KEY = "shanghupingtai";
+    /**
+     * 商户平台超级管理员权限默认字符串
+     */
+    public static final String ADMIN_SHOP_ROLE_KEY = "chaojiguanliyuan";
+    /**
+     * 便民服务商户默认角色权限默认字符串
+     */
+    public static final String CONVENIENT_MERCHANT_ROLE_KEY = "convenient_merchant_platform";
+    /**
+     * 街道超级管理员
+     */
+    public static final String STREET_ROLE_KEY="street_member";
+    /**
+     * 首页商城是否展示(1.是 2.否)
+     */
+    public static final Integer IS_SHOP_OPEN = 2;
+
+    /**
+     * 网格综治-默认角色权限默认字符串
+     */
+    public static final String GRID_DEFAULT_ROLE_KEY = "grid_member_default_role";
+
+    public static final String ZONG_ZHI_GRID_MEMBER_IMAGE_URL =
+        "https://www.psciio.com//idcard/57bf4104a76741cfabfead0bb8218307.jpg";
+
+    public static final String ZZ_APP_TAG_LIST = "{\"list\":[\"流动人口\",\"户籍人口\",\"社区矫正\",\"吸毒人员\",\"重精患者\",\"刑满释放\"]}";
+
+    public static final String PROFIT_EXPLAIN =
+        "<p>一、简介</p><p>活动期间内,居民发布随手拍内容可获得一定现金奖励,具体奖励金额以社区设置为准,最终由对应社区统一结算。</p><p>二、如何使用</p><p>居民获得收益后由对应社区结算,具体结算方式由社区根据实际情况进行处理。</p><p>三、如何获得</p><p>1.参与活动</p><p>活动期间内,用户可以在西区社区通“随手拍”板块,用照片和视频记录展示社区生活;</p><p>活动由所在社区添加管理,社区发布活动后居民可进行参与。</p><p>2.&nbsp;社区审核</p><p>社区通过对用户发布内容的质量(优质、精良、普通内容)和价值进行审核,酌情对相关用户进行奖励;</p><p>3.&nbsp;获得奖励</p><p>审核完成后,根据社区设置的内容质量奖励金额下发奖励。</p><p>若内容被工作人员驳回将不可获得奖励。</p><p>&nbsp;</p><p><br></p>";
+
+    public static final String INTEGRAL_EXPLAIN = "积分说明";
+
+    public static final String POPULATION_ERROR_LIST = "POPULATION_ERROR_LIST_";
+
+    public static final String BUILDING_ERROR_LIST = "BUILDING_ERROR_LIST_";
+
+    public static final String DRUG_POPULATION_ERROR_LIST = "DRUG_POPULATION_ERROR_LIST_";
+
+    public static final String CORRECT_POPULATION_ERROR_LIST = "CORRECT_POPULATION_ERROR_LIST_";
+
+    public static final String MAJOR_POPULATION_ERROR_LIST = "MAJOR_POPULATION_ERROR_LIST_";
+
+    public static final String CULT_POPULATION_ERROR_LIST = "CULT_POPULATION_ERROR_LIST_";
+
+    public static final String REHABILITATION_POPULATION_ERROR_LIST = "REHABILITATION_POPULATION_ERROR_LIST_";
+
+    public static final String KEY_POPULATION_ERROR_LIST = "KEY_POPULATION_ERROR_LIST_";
+
+    public static final String SENTENCE_POPULATION_ERROR_LIST = "SENTENCE_POPULATION_ERROR_LIST_";
+
+    public static final String VETERANS_POPULATION_ERROR_LIST = "VETERANS_POPULATION_ERROR_LIST_";
+
+    public static final String DISABILITY_POPULATION_ERROR_LIST = "DISABILITY_POPULATION_ERROR_LIST_";
+
+    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_";
+
+    public static final String CLUSTER_MEMBER_ERROR_LIST = "CLUSTER_MEMBER_ERROR_LIST_";
+
+    public static final String COM_MNG_VOLUNTEER_ERROR_LIST = "COM_MNG_VOLUNTEER_ERROR_LIST_";
+
+    public static final String PB_CHECK_UNIT_ERROR_LIST = "PB_CHECK_UNIT_ERROR_LIST_";
+
+    public static final String PB_MEMBER_ROLE_ERROR_LIST = "PB_MEMBER_ROLE_ERROR_LIST_";
+
+    public static final String CLUSTER_MEMBER_DEFAULT_IMAGE_URL = "https://www.psciio.com/files/4822602b68af48bcbbea7842aa463227/a6a7882b3fd24d60ac6809fef42d879d.png";
+
+    public static final String FMS_MEMBER_ERROR_LIST = "FMS_MEMBER_ERROR_LIST_";
+    public static final String FMS_SERVICE_ERROR_LIST = "FMS_SERVICE_ERROR_LIST_";
+
+    /**
+     * 高德地图获取天气url
+     */
+    public static final String G_D_WEATHER_URL = "https://restapi.amap.com/v3/weather/weatherInfo";
+
+    /**
+     * 高德地图获取天气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;
+    /**
+     * 字典表民族系统配置码key
+     */
+    public static final String NATION_DICT_KEY = "nation";
+    /**
+     * 党建包名
+     */
+    public static final String SERVICE_PARTYBUILDING = "huacheng-partybuilding";
+    /**
+     * service_community包
+     */
+    public static final String SERVICE_COMMUNITY = "huacheng-community";
+
+
+    /**
+     * equipment包(总工会户外劳工站)
+     */
+    public static final String SERVICE_EQUIPMENT = "equipment";
+
+    /**
+     * 操作类型
+     * */
+    public static final String UPDATE="update";
+    public static final String INSERT="insert";
+    public static final String QUERY="query";
+    public static final String DELETE="delete";
+    public static final String VILLAGE="村";
+    /**
+     * 超管街道id
+     * */
+    public static  final Integer ADMIN_STREET_ID=999999999;
+
+    /**
+     * 天府通办解密私钥
+     * */
+    public static final String PRIVATE_KEY="MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAJJuFUH/4m9H5hCCzxtd9BxpjWlG9gbejqiJpV0XJKaU1V7xDBJasswxPY7Zc15RoxWClPoKPwKrbWKm49dgBJebJq5xd4sLCSbboxRkKxpRiJHMZ4LJjYa5h9Ei9RyfoUzqGHqH4UrDy3m3IwPiP19cIBqoU50shyQf92ZpcGZhAgMBAAECgYEAiadU8pODoUs82x6tZbPALQmJN4PO+wwznfqv6sA74yGdKECAMazz0oMjtGt1SiCCqFD2jcweCftvvELZg3mvNg1V0vRQRD1ZCA8HDp8DXm20d11K3+RX39tR4KgyyM3HsSEhkUDujMxKIpYjyiB5iEtV7Ja9bZ2fROszq+mUIqUCQQDQQf6vWRMLBqfnDcU77vuDGOhXbjkF2ytLxLW3fbKaW3GWvC3n93zPM+mcvWSXgkl448+jFjpMktm1Vn+w+YX3AkEAs/+bbRbod6AcVbLu8C5E44qDRoRpu+LF7Cphp8tlSAIRjm2yGP5acMWGRUtH9MF2QJYPF0PgDzdmUSVqWnCAZwJBALnSuRri4wAKn1SmT+ALfLZcSiyBODZGeppv2ijw6qWahH8YR+ncRaxoyMFHqPMbmM1akJIXqktbGREaLnPOIb8CQQCdJycJaL3Qa98xR4dr9cm5rF6PO96g5w6M8jfO6ztjUkMHymh7f99wpFRlvaN2Y06edyV315ARWPohEPy5N44zAkBlLuDHLm1TkTTAfdlL5r2OcdjpaJYloTdn05Mp3+J+w1zTX8k6Mz8lFZtLUcoMeTfQ9rm/+u2KwxS8NljtSZWH";
+
+    /**
+     * 花城小程序appid
+     */
+    public static final String HC_APP_ID = "wx118de8a734d269f0";
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/FtpConstants.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/FtpConstants.java
new file mode 100644
index 0000000..a225e38
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/FtpConstants.java
@@ -0,0 +1,38 @@
+package com.panzhihua.common.constants;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: ftp
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 13:39
+ **/
+public class FtpConstants {
+    /**
+     * ftp站点
+     */
+    public static final String FTPHOST = "47.104.148.185";
+    /**
+     * 端口号
+     */
+    public static final Integer FTPPORT = 22;
+    /**
+     * ftp访问用户名
+     */
+    public static final String FTPUSERNAME = "root";
+    /**
+     * ftp访问密码
+     */
+    public static final String FTPPASSWORD = "evanN7F2K5M6";
+    /**
+     * excel模板
+     */
+    public static final String FTPFILEPATH_MUBAN = "/mnt/data/ftp/muban/";
+    /**
+     * 党员保存
+     */
+    public static final String FTPFILEPATH_IDCARD = "/mnt/data/ftp/idcard/";
+    /**
+     * http访问路径
+     */
+    public static final String HTTP_URL = "http://image.panzhihua.nhys.cdnhxx.com/";
+}
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
new file mode 100644
index 0000000..1e1e5c7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/HttpConstant.java
@@ -0,0 +1,44 @@
+package com.panzhihua.common.constants;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description:
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-08 10:40
+ **/
+public class HttpConstant {
+
+    /** httpClient连接超时时间,单位毫秒 */
+    public static final int CONNECT_TIMEOUT = 3 * 1000;
+
+    /** httpClient请求获取数据的超时时间(即响应时间) 单位毫秒 */
+    public static final int SOCKET_TIMEOUT = 10 * 1000;
+
+    /** http连接池大小 */
+    public static final int MAX_TOTAL = 10;
+
+    /** 分配给同一个route(路由)最大的并发连接数 */
+    public static final int MAX_CONN_PER_ROUTE = 2;
+
+    /** http连接是否是长连接 */
+    public static final boolean IS_KEEP_ALIVE = true;
+
+    /** 调用接口失败默认重新调用次数 */
+    public static final int REQ_TIMES = 3;
+
+    /** utf-8编码 */
+    public static final String UTF8_ENCODE = "UTF-8";
+
+    /** application/json */
+    public static final String APPLICATION_JSON = "application/json";
+
+    /** 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 NEIJIANG_URL = "http://118.122.78.144:8086/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/HttpStatus.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/HttpStatus.java
new file mode 100644
index 0000000..969e669
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/HttpStatus.java
@@ -0,0 +1,104 @@
+package com.panzhihua.common.constants;
+
+/**
+ * 返回状态码
+ * 
+ * @author huanghongfa
+ */
+public class HttpStatus {
+
+    /**
+     * 正常
+     */
+    public static final int NORMAL = 0;
+
+    /**
+     * 操作成功
+     */
+    public static final int SUCCESS = 200;
+
+    /**
+     * 对象创建成功
+     */
+    public static final int CREATED = 201;
+
+    /**
+     * 请求已经被接受
+     */
+    public static final int ACCEPTED = 202;
+
+    /**
+     * 操作已经执行成功,但是没有返回数据
+     */
+    public static final int NO_CONTENT = 204;
+
+    /**
+     * 资源已被移除
+     */
+    public static final int MOVED_PERM = 301;
+
+    /**
+     * 重定向
+     */
+    public static final int SEE_OTHER = 303;
+
+    /**
+     * 资源没有被修改
+     */
+    public static final int NOT_MODIFIED = 304;
+
+    /**
+     * 参数列表错误(缺少,格式不匹配)
+     */
+    public static final int BAD_REQUEST = 400;
+
+    /**
+     * 未授权
+     */
+    public static final int UNAUTHORIZED = 401;
+
+    /**
+     * 访问受限,授权过期
+     */
+    public static final int FORBIDDEN = 403;
+
+    /**
+     * 资源,服务未找到
+     */
+    public static final int NOT_FOUND = 404;
+
+    /**
+     * 不允许的http方法
+     */
+    public static final int BAD_METHOD = 405;
+
+    /**
+     * 资源冲突,或者资源被锁
+     */
+    public static final int CONFLICT = 409;
+
+    /**
+     * 请求主体的大小超过了服务器
+     */
+    public static final int REQUEST_TOO_LARGE = 413;
+
+    /**
+     * 不支持的数据,媒体类型
+     */
+    public static final int UNSUPPORTED_TYPE = 415;
+
+    /**
+     * 系统内部错误
+     */
+    public static final int ERROR = 500;
+
+    /**
+     * 接口未实现
+     */
+    public static final int NOT_IMPLEMENTED = 501;
+
+    /**
+     * 暂不支持
+     */
+    public static final int NOT_ACCEPTABLE = 406;
+}
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/PayCpmstant.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/PayCpmstant.java
new file mode 100644
index 0000000..12a61df
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/PayCpmstant.java
@@ -0,0 +1,54 @@
+package com.panzhihua.common.constants;
+
+/**
+ * 微信支付通用常量
+ *
+ * @author LYQ
+ */
+public class PayCpmstant {
+
+    /**
+     * 微信支付统一下单url地址
+     */
+    public static final String UNIFIEDORDER_URL = "https://api.mch.weixin.qq.com/pay/unifiedorder";
+    /**
+     * 微信支付默认编码格式
+     */
+    public static final String DEFAULT_ENCODING = "UTF-8";
+    /**
+     * 微信支付返回支付成功CODE
+     */
+    public static final String RETURN_CODE = "SUCCESS";
+    /**
+     * 微信支付返回支付成功MSG
+     */
+    public static final String RETURN_MSG = "OK";
+    /**
+     * 微信支付默认加密格式
+     */
+    public static final String SIGN_TYPE = "MD5";
+
+    /**
+     * 电动车商城购买商品支付回调地址
+     */
+    public static final String BATTERY_STORE_PAY_NOTIFY_URL = "/api/huacheng-applets/wx/batteryPayNotify";
+    /**
+     * 电动车商城活动订单支付回调地址
+     */
+    public static final String BATTERY_STORE_ACTIVITY_PAY_NOTIFY_URL = "/api/huacheng-applets/wx/batteryActivityPayNotify";
+
+    public static final String REFUND_URL = "https://api.mch.weixin.qq.com/secapi/pay/refund";
+
+    /**
+     * 微信支付返回支付成功的参数名字
+     */
+    public static final String RETURN_CODE_CODE = "return_code";
+    /**
+     * 微信退款接口返回成功的参数名称
+     */
+    public static final String RESULT_CODE_CODE = "result_code";
+    /**
+     * 微信退款接口请求key
+     */
+    public static final String REFUND_KEY= "8A9H1B2234D7CBD0AC61B75EB274927F";
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/ReturnMsgConstants.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/ReturnMsgConstants.java
new file mode 100644
index 0000000..f75636d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/ReturnMsgConstants.java
@@ -0,0 +1,37 @@
+package com.panzhihua.common.constants;
+
+/**
+ * 字典表key
+ *
+ * @author xyh
+ * @date 2021/6/11 15:53
+ */
+public class ReturnMsgConstants {
+
+    /**
+     * 数据已经存在
+     */
+    public static final String DATA_EXIST = "数据已经存在!";
+    /**
+     * 数据不存在
+     */
+    public static final String DATA_NOT_EXIST = "数据不存在!";
+    /**
+     * 保存成功
+     */
+    public static final String SAVE_SUCCESS = "保存成功";
+    /**
+     * 保存失败
+     */
+    public static final String SAVE_FALSE = "保存失败";
+    /**
+     * 更新成功
+     */
+    public static final String UPDATE_SUCCESS = "更新成功";
+    /**
+     * 更新失败
+     */
+    public static final String UPDATE_FALSE = "更新失败";
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/SecurityConstants.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/SecurityConstants.java
new file mode 100644
index 0000000..6157f1c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/SecurityConstants.java
@@ -0,0 +1,21 @@
+package com.panzhihua.common.constants;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 权限
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-25 15:13
+ **/
+public class SecurityConstants {
+
+    public static final String ROLE_ALL = "springsecurity:role:all";// 平台所有权限存储在redis
+    public static final String ROLE_USER = "springsecurity:role:";// 某个用户的具体权限
+    public static final String ROLE_APPLETS = "applets";// 小程序用户通用角色
+    public static final String APPLETS_ACCESS_TOKEN = "APPLETS_ACCESS_TOKEN";// 小程序获取的access_token
+    public static final String APPLETS_ACCESS_TOKEN_TIME = "APPLETS_ACCESS_TOKEN_TIME";// 小程序获取的access_token
+    public static final String APPLETS_ACCESS_MEDIA_ID = "APPLETS_ACCESS_MEDIA_ID";// 小程序获取的access_token
+    public static final String APPLETS_ACCESS_MEDIA_ID_TIME = "APPLETS_ACCESS_MEDIA_ID_TIME";// 小程序获取的access_token
+
+    public static final String ROLE_APPLETS_REAL_NAMED = "applets:realnamed";// 小程序用户实名角色
+    public static final String ROLE_APPLETS_USER = "applets:realnamed:user:";// 小程序用户角色
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/TokenConstant.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/TokenConstant.java
new file mode 100644
index 0000000..e39e4a9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/TokenConstant.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.constants;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: token
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-24 14:44
+ **/
+public class TokenConstant {
+
+    public static final String TOKEN_HEADER = "Authorization";
+    public static final String TOKEN_LOGOUT = "token_logout";
+    public static final String TOKEN_PRE = "Bearer ";
+    public static final String TOKEN_USERINFO = "token_userinfo";
+    /**
+     * 30分钟
+     */
+    public static final int EXPIRETIME = 300;
+    public static final Long EXPIRETIME_LONG = 300L;
+    public static final String SECRET = "UTivpbn%n9O!KnnL";
+    /**
+     * 24小时
+     */
+    public static final int EXPIRETIME_REFRESH = 24;
+}
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
new file mode 100644
index 0000000..b82f987
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/UserConstants.java
@@ -0,0 +1,21 @@
+package com.panzhihua.common.constants;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 用户
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-25 10:13
+ **/
+public class UserConstants {
+
+    public static final String PASSWORD = "y5g9w8*0TTWV4UgJ";
+    public static final String USER_ID = "user_id";
+    public static final String LOGOUT_TOKEN = "logout:";
+    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:";
+    public static final String SANSHUO_INDUSTRY_CENTER_ROLE="103";
+    public static final String SANSHUO_EXPERT_ROLE="102";
+}
\ 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
new file mode 100644
index 0000000..3a99b83
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/constants/WxSubscribeConstants.java
@@ -0,0 +1,80 @@
+package com.panzhihua.common.constants;
+
+/**
+ * 微信小程序订阅消息常量类
+ */
+public class WxSubscribeConstants {
+
+    /**
+     * 活动变更通知模板id
+     */
+    public static final String HDBG_ID = "WkyqgQbrQim4Q68uM4628Tb0FVCXR9JuleRWwOc-UTQ";
+    /**
+     * 作品点赞通知模板id
+     */
+    public static final String ZPDZ_ID = "xYpsRZLDO_M36B2WBPgZyBk51J-OEPWPAEA4labsL5I";
+    /**
+     * 留言回复通知模板id
+     */
+    public static final String LYHF_ID = "XhTPFPUoHrfZbNiIHO95pf5amYMYAPcB1HiHMKOIMXw";
+    /**
+     * 新动态发布提醒模板id
+     */
+    public static final String XDTFB_ID = "cRXVFlIqpqxMpjVvf5s5w8aK_P2run8buCeDxm6_5oA";
+    /**
+     * 新活动提醒模板id
+     */
+    public static final String XHDTX_ID = "fW5FkhdBsTrmDIFI10UbMa6pEUuLDyK8so3FAvdGoMQ";
+    /**
+     * 新的评论提醒模板id
+     */
+    public static final String PLTX_ID = "12cHm4epIrhDTlUYfGcoBD1Kbj7cv16EyBIYvFjV7BA";
+    /**
+     * 评论回复通知模板id
+     */
+    public static final String PLHF_ID = "WvSoXRTpx4JUW4YcvLbnk4xhttjQ_EPQSG2tF5DJ1OU";
+    /**
+     * 评论点赞通知模板id
+     */
+    public static final String PLDZ_ID = "7p9Dn0IQ0iCYB2JEm0c5nukc0lY90TKijzUlJjDfYqk";
+    /**
+     * 活动取消通知模板id
+     */
+    public static final String HDQX_ID = "K0HeNd4Za4Vh0oaihRbauLL9pNY69en0cCU1nzDRzv0";
+    /**
+     * 审核状态通知模板id
+     */
+    public static final String SHZT_ID = "IIEAp-7rmj0_Le_mBMK3X-aTRN7-b-bBdXq-pmJIhHo";
+    /**
+     * 认证审核通知模板id
+     */
+    public static final String EZSH_ID = "ZMCHtZn_XR118XnbKabF9DuYG5NKsvCfsr59_gIOAe0";
+    /**
+     * 调研问卷通知模板id
+     */
+    public static final String DYWJ_ID = "orfmflVy0RkVT-kIPUk8muikfFqJrK_47OjzM-OVINc";
+    /**
+     * 奖励发放通知模板id
+     */
+    public static final String JLFF_ID = "vuGJS9WYb0e_99lcoB8USqJk5emGJftbe-G0PjgEvjU";
+    /**
+     * 报名成功通知模板id
+     */
+    public static final String BMCG_ID = "NQbyd_2n-DX2urZVrUkAPYER-J5XY6VqIm6QvaYj0NY";
+    /**
+     * 活动即将开始通知模板id
+     */
+    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";
+    /**
+     * 订阅消息推送url
+     */
+    public static final String DYXX_URL = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=";
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/controller/BaseController.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/controller/BaseController.java
new file mode 100644
index 0000000..3d844a2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/controller/BaseController.java
@@ -0,0 +1,204 @@
+package com.panzhihua.common.controller;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import com.panzhihua.common.model.vos.community.ComActVO;
+import com.panzhihua.common.utlis.StringUtils;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.constants.TokenConstant;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.exceptions.UnAuthenticationException;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.utlis.AES;
+
+import lombok.SneakyThrows;
+import lombok.extern.slf4j.Slf4j;
+
+import static java.util.Objects.isNull;
+import static org.apache.commons.lang3.StringUtils.isBlank;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 基础controller
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-24 09:31
+ **/
+@Slf4j
+public class BaseController {
+    public static void main(String[] args) {
+        byte[] bytes = AES.parseHexStr2Byte(
+            "5730CB290AD203B32D2FA4347CD54A50A684E16D2C7A4544CF352D54D8A763BA6652C323B13BEEE682A5095B8BCC76842225A914253CE84AFB6B58A9D1BE30A7992786E151A933FDEC6EBDCD1928CA68927047770F296F7541268149B34FDFCEF1340CF2266A041484744CB45B216EE8B4D96E243098F9CB3F661ACA7AF356C422BFE9A009FA478DF606A71DA7DBD776527E5120C3F13281BA8FC5587BACD5E403EE069762B5CF060BFA3CF4FD3417F5653CC178D2CA117284D85F442C0FAB076DB6F6D873B5363FAB93EBA9284CC87A5E97243EF4DC73F1ADA57BD9E9AAB2E4972AC3A4615B2DF6F9062BC04428D1B84B6C892A306F191B1D9DDBBB201D2767CE928020489AFC6BCFDC8A74F8C95080F74B4EC64AD1A6354B17A156B95AA9467C7461BD3C3F15F8F65BD7F3272184435D77003738B5B942EEA9603CFF249764718732595EC44DE4ED1BB763F9C88BAFACF5540E689FE84A4702E31D3D1D05BAC25C10F8E0C3948C777478537397BCB67D37066385DFCBDE3F4A53D6BA14481DBCB07E8452ACD2790A76669A9DE6D7080C8CFD9FB774035FCC3AC1C436581144969B7150318024A2E893FE926654E002097EB4735E49F3A9698A405969888A7D88A55A0FA60318C4A1E2D243BEE6D438");
+        byte[] decrypt = AES.decrypt(bytes, Constants.AES_KEY);
+        System.out.println(decrypt);
+        String s = new String(decrypt);
+        System.out.println(s);
+    }
+
+    /**
+     * 获取request对象
+     */
+    public HttpServletRequest getRequest() {
+        return ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();
+    }
+
+
+    /**
+     * 获取request对象
+     */
+    public HttpServletResponse getResponse() {
+        return ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getResponse();
+    }
+
+    /**
+     * 获取登录对象信息
+     *
+     * @return 对象userid
+     */
+    public Long getUserId() {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long userId = loginUserInfo.getUserId();
+        return userId;
+    }
+
+    /**
+     * 获取登录对象所在社区id
+     *
+     * @return 社区id
+     */
+    public Long getCommunityId() {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long communityId = loginUserInfo.getCommunityId();
+//        if (null == communityId) {
+//            throw new ServiceException("用户未绑定社区");
+//        }
+        return communityId;
+    }
+
+    /**
+     * 获取登录对象所在社区名称
+     *
+     * @return 社区名称
+     */
+    public String getCommunityName() {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long communityId = loginUserInfo.getCommunityId();
+        if (null == communityId || 0 == communityId) {
+            throw new ServiceException("用户未绑定社区");
+        }
+        String communityName = loginUserInfo.getCommunityName();
+        return communityName;
+    }
+
+    /**
+     * 获取登录对象所在小区
+     *
+     * @return 小区id
+     */
+    public Long getAreaId() {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long areaId = loginUserInfo.getAreaId();
+        if (null == areaId) {
+            throw new ServiceException("用户未绑定小区");
+        }
+        return areaId;
+    }
+    /**
+     * 获取登录对象所在区域编码
+     *
+     * @return
+     */
+    public String getAreaCode() {
+        String appid = this.getRequest().getHeader("appid");
+        if(StringUtils.isNotEmpty(appid)){
+            if(appid.equals("wx08932ba29546ff82")){
+                return "510411";
+            }
+            else if(appid.equals("wx50d8c395af50481b")){
+                return "510402";
+            }
+            else {
+                return "510423";
+            }
+        } else {
+            LoginUserInfoVO loginUserInfoVO=this.getLoginUserInfo();
+            ComActVO comActVO=loginUserInfoVO.getComActVO();
+            if(isNull(comActVO) || isBlank(comActVO.getAreaCode())){
+                return "510423";
+            }
+            return comActVO.getAreaCode();
+        }
+    }
+
+
+    /**
+     * 获取登录token
+     *
+     * @return token
+     */
+    public String getToken() {
+        HttpServletRequest request = this.getRequest();
+        String header = request.getHeader(TokenConstant.TOKEN_LOGOUT);
+        return header;
+    }
+
+    public String getAppId(){
+        String appid = this.getRequest().getHeader("appid");
+        if(StringUtils.isEmpty(appid)){
+            return "wx0cef797390444b75";
+        }
+        return appid;
+    }
+
+    public String getAppSecret(){
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        return loginUserInfo.getAppSecret();
+    }
+    /**
+     * 获取登录对象所有信息
+     *
+     * @return 所有信息
+     */
+    @SneakyThrows
+    public LoginUserInfoVO getLoginUserInfo() {
+        HttpServletRequest request = this.getRequest();
+        String userInfo = request.getHeader(TokenConstant.TOKEN_USERINFO);
+        boolean empty = ObjectUtils.isEmpty(userInfo);
+        if (empty) {
+            throw new UnAuthenticationException("获取登录人信息失败");
+        }
+        // log.info("userInfo【{}】",userInfo);
+        byte[] bytes = AES.parseHexStr2Byte(userInfo);
+        // log.info("bytes【{}】",bytes);
+        byte[] decrypt = AES.decrypt(bytes, Constants.AES_KEY);
+        // log.info("decrypt【{}】",decrypt);
+        userInfo = new String(decrypt);
+        LoginUserInfoVO loginUserInfoVO = JSONObject.parseObject(userInfo, LoginUserInfoVO.class);
+        return loginUserInfoVO;
+    }
+
+    @SneakyThrows
+    public LoginUserInfoVO getLoginUserInfoSureNoLogin() {
+        HttpServletRequest request = this.getRequest();
+        String userInfo = request.getHeader(TokenConstant.TOKEN_USERINFO);
+        boolean empty = ObjectUtils.isEmpty(userInfo);
+        if (empty) {
+            return null;
+            // throw new UnAuthenticationException("获取登录人信息失败");
+        }
+        // log.info("userInfo【{}】",userInfo);
+        byte[] bytes = AES.parseHexStr2Byte(userInfo);
+        // log.info("bytes【{}】",bytes);
+        byte[] decrypt = AES.decrypt(bytes, Constants.AES_KEY);
+        // log.info("decrypt【{}】",decrypt);
+        userInfo = new String(decrypt);
+        LoginUserInfoVO loginUserInfoVO = JSONObject.parseObject(userInfo, LoginUserInfoVO.class);
+        return loginUserInfoVO;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/ComPbCheckUnitTypeEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/ComPbCheckUnitTypeEnum.java
new file mode 100644
index 0000000..d2ff3d4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/ComPbCheckUnitTypeEnum.java
@@ -0,0 +1,41 @@
+package com.panzhihua.common.enums;
+
+import lombok.Getter;
+
+/**
+ * @author lyq
+ * 党员双报道单位类型枚举
+ */
+@Getter
+public enum ComPbCheckUnitTypeEnum {
+
+    GYQY(1, "国有企业"), GYKGQY(2, "国有控股企业"), WZQY(3, "外资企业")
+    , HZQY(4, "合资企业"), SYQY(5, "私营企业"), SYDW(6, "事业单位")
+    , GJXZJG(7, "国家行政机关"), ZF(6, "政府");
+
+    private final Integer code;
+    private final String name;
+
+    ComPbCheckUnitTypeEnum(Integer code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public static int getCodeByName(String name) {
+        for (ComPbCheckUnitTypeEnum item : ComPbCheckUnitTypeEnum.values()) {
+            if (item.name.equals(name)) {
+                return item.getCode();
+            }
+        }
+        return 0;
+    }
+
+    public static String getCnDescByName(Integer code) {
+        for (ComPbCheckUnitTypeEnum item : ComPbCheckUnitTypeEnum.values()) {
+            if (item.code.equals(code)) {
+                return item.getName();
+            }
+        }
+        return "";
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/ComPbMemberRoleTypeEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/ComPbMemberRoleTypeEnum.java
new file mode 100644
index 0000000..a1e95b7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/ComPbMemberRoleTypeEnum.java
@@ -0,0 +1,39 @@
+package com.panzhihua.common.enums;
+
+import lombok.Getter;
+
+/**
+ * @author lyq
+ * 党委标签枚举
+ */
+@Getter
+public enum ComPbMemberRoleTypeEnum {
+
+    SQDW(1, "社区党委"), CYDWWY(2, "区域党委委员");
+
+    private final Integer code;
+    private final String name;
+
+    ComPbMemberRoleTypeEnum(Integer code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public static int getCodeByName(String name) {
+        for (ComPbMemberRoleTypeEnum item : ComPbMemberRoleTypeEnum.values()) {
+            if (item.name.equals(name)) {
+                return item.getCode();
+            }
+        }
+        return 0;
+    }
+
+    public static String getCnDescByName(Integer code) {
+        for (ComPbMemberRoleTypeEnum item : ComPbMemberRoleTypeEnum.values()) {
+            if (item.code.equals(code)) {
+                return item.getName();
+            }
+        }
+        return "";
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EldersAuthLevelEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EldersAuthLevelEnum.java
new file mode 100644
index 0000000..c2c1558
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EldersAuthLevelEnum.java
@@ -0,0 +1,34 @@
+package com.panzhihua.common.enums;
+
+import lombok.Getter;
+
+/**
+ * 房屋租售状态
+ * 
+ * @author huanghongfa
+ */
+@Getter
+public enum EldersAuthLevelEnum {
+    ELDER80_89(1, "80_89周岁"), ELDER90_99(2, "90_99周岁"), ELDER9100_(3, "100周岁(含)以上"),;
+
+    private final int level;
+    private final String info;
+
+    EldersAuthLevelEnum(int level, String info) {
+        this.level = level;
+        this.info = info;
+    }
+
+    public static int getCode(int age) {
+
+        if (80 <= age && age <= 89) {
+            return ELDER80_89.getLevel();
+        } else if (90 <= age && age <= 99) {
+            return ELDER90_99.getLevel();
+        } else if (100 <= age) {
+            return ELDER9100_.getLevel();
+        }
+        return 0;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EventStatusEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EventStatusEnum.java
new file mode 100644
index 0000000..cca5750
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EventStatusEnum.java
@@ -0,0 +1,40 @@
+package com.panzhihua.common.enums;
+
+import lombok.Getter;
+
+/**
+ * 事件状态
+ * 
+ * @author lyq
+ */
+@Getter
+public enum EventStatusEnum {
+    DCL(1, "待走访"), YJJ(2, "已走访"), DYZ(3, "待验证"), CGX(4, "草稿箱"), YCX(5, "已撤销"), YC(6, "异常"), WZ(9, "未知");
+
+    private final Integer code;
+    private final String name;
+
+    EventStatusEnum(Integer code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public static int getCodeByName(String name) {
+        for (EventStatusEnum item : EventStatusEnum.values()) {
+            if (item.name.equals(name)) {
+                return item.getCode();
+            }
+        }
+        return WZ.getCode();
+    }
+
+    public static String getCnDescByName(Integer code) {
+        for (EventStatusEnum item : EventStatusEnum.values()) {
+            if (item.code.equals(code)) {
+                return item.getName();
+            }
+        }
+        return "未知";
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EventTasksStatusEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EventTasksStatusEnum.java
new file mode 100644
index 0000000..44c04bf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EventTasksStatusEnum.java
@@ -0,0 +1,37 @@
+package com.panzhihua.common.enums;
+
+/**
+ * 走访任务状态
+ * 
+ * @author xyh
+ * @date 2021/6/21 17:22
+ */
+public enum EventTasksStatusEnum {
+
+    DZF(1, "待走访"), YJJ(2, "已走访");
+
+    private final int code;
+    private final String name;
+
+    EventTasksStatusEnum(int code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public static String getName(int code) {
+        for (EventTasksStatusEnum item : EventTasksStatusEnum.values()) {
+            if (item.code == (code)) {
+                return item.getName();
+            }
+        }
+        return "";
+    }
+
+    public int getCode() {
+        return code;
+    }
+
+    public String getName() {
+        return name;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EventTasksVisitorTypeEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EventTasksVisitorTypeEnum.java
new file mode 100644
index 0000000..ab62c2f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EventTasksVisitorTypeEnum.java
@@ -0,0 +1,29 @@
+package com.panzhihua.common.enums;
+
+/**
+ * 被走访人标签
+ * 
+ * @author xyh
+ * @date 2021/6/21 17:22
+ */
+public enum EventTasksVisitorTypeEnum {
+
+    DZF(1, "待走访"), JXZ(2, "进行中"), ZJJJ(3, "自己解决"), DYZ(4, "待验证"), CG(5, "草稿"), YCX(6, "已撤销"), YC(7, "异常"),;
+
+    private final int code;
+    private final String name;
+
+    EventTasksVisitorTypeEnum(int code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public static String getName(int code) {
+        for (EventTasksVisitorTypeEnum item : EventTasksVisitorTypeEnum.values()) {
+            if (item.code == (code)) {
+                return item.name();
+            }
+        }
+        return YC.name;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EventType.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EventType.java
new file mode 100644
index 0000000..1ed7833
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/EventType.java
@@ -0,0 +1,20 @@
+package com.panzhihua.common.enums;
+
+/**
+ * @ClasssName 事件常量
+ * @Description TODO
+ * @Author cedoo
+ * @Date 2021/5/28
+ * @Version 1.0
+ **/
+public class EventType {
+    // 当event_type_category是1填写事件分类
+    // 1治安隐患、2公共服务、3矛盾纠纷、4不稳定因素、5突发事件、6特殊人群信息上报 7 宣传教育
+    public static Integer EMERGENCIES = 5; // 5 突发事件
+    public static Integer CONTRADICTION = 3; // 3 矛盾纠纷
+    public static Integer HAZARD = 1; // 1 治安隐患
+    public static Integer UNSTABLE = 4; // 4 不稳定因素
+    public static Integer PUBLIC = 2; // 2 公共服务
+    public static Integer PROPAGANDA = 7; // 7 宣传教育
+    public static Integer SPECIAL = 6; // 6 特殊人群信息上报
+}
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/enums/KeyPersonLabelEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/KeyPersonLabelEnum.java
new file mode 100644
index 0000000..9ea2628
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/KeyPersonLabelEnum.java
@@ -0,0 +1,40 @@
+package com.panzhihua.common.enums;
+
+import lombok.Getter;
+
+/**
+ *
+ *
+ * @author manaiilin
+ */
+@Getter
+public enum KeyPersonLabelEnum {
+    XD(1, "吸毒人员"), ZJ(2, "重精人员"), XJ(3, "邪教人员"), QT(4, "其他重点人员");
+
+    private final Integer code;
+    private final String name;
+
+    KeyPersonLabelEnum(Integer code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public static int getCodeByName(String name) {
+        for (KeyPersonLabelEnum item : KeyPersonLabelEnum.values()) {
+            if (item.name.equals(name)) {
+                return item.getCode();
+            }
+        }
+        return -1;
+    }
+
+    public static String getCnDescByName(Integer code) {
+        for (KeyPersonLabelEnum item : KeyPersonLabelEnum.values()) {
+            if (item.code.equals(code)) {
+                return item.getName();
+            }
+        }
+        return "其他";
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/LocalEventToLangChaoEventTypeEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/LocalEventToLangChaoEventTypeEnum.java
new file mode 100644
index 0000000..9c942ab
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/LocalEventToLangChaoEventTypeEnum.java
@@ -0,0 +1,42 @@
+package com.panzhihua.common.enums;
+
+import lombok.Getter;
+
+/**
+ * desc 本地事件类型和浪潮接口对应的事件类型的对应关系 本地事件类型1治安隐患、2公共服务、3矛盾纠纷、4不稳定因素、5突发事件、6特殊人群信息上报 7宣传教育
+ * 
+ * @author manaiilin
+ */
+@Getter
+public enum LocalEventToLangChaoEventTypeEnum {
+    ZA(1, "6", "治安隐患"), GG(2, "4", "公共服务"), MD(3, "5", "矛盾纠纷"), TF(5, "1b62afbccc2a4bb98125f999b7133242", "突发事件"),
+    TSRQ(6, "7da14163537b4b7e9a73ae28f4a58b72", "特殊人群信息上报"), XC(8, "9306ca7327a44b5ca474426f2da0e206", "宣传教育");
+
+    private final Integer code;
+    private final String name;
+    private final String eventName;
+
+    LocalEventToLangChaoEventTypeEnum(Integer code, String name, String eventName) {
+        this.code = code;
+        this.name = name;
+        this.eventName = eventName;
+    }
+
+    public static String getCodeByName(Integer code) {
+        for (LocalEventToLangChaoEventTypeEnum item : LocalEventToLangChaoEventTypeEnum.values()) {
+            if (item.getCode().equals(code)) {
+                return item.getName();
+            }
+        }
+        return ZA.getName();
+    }
+
+    public static String getEventNameByCode(Integer code) {
+        for (LocalEventToLangChaoEventTypeEnum item : LocalEventToLangChaoEventTypeEnum.values()) {
+            if (item.getCode().equals(code)) {
+                return item.getEventName();
+            }
+        }
+        return ZA.getEventName();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/MerchantBusinessPeriod.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/MerchantBusinessPeriod.java
new file mode 100644
index 0000000..99c1527
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/MerchantBusinessPeriod.java
@@ -0,0 +1,15 @@
+package com.panzhihua.common.enums;
+
+import lombok.Getter;
+
+/**
+ * @title: MerchantBusinessPeriod
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务商家营业周期枚举类
+ * @author: hans
+ * @date: 2021/09/17 16:06
+ */
+@Getter
+public enum MerchantBusinessPeriod {
+    EVERY_DAY, WEEKDAY, WEEKEND
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/OpsHouseStatus.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/OpsHouseStatus.java
new file mode 100644
index 0000000..1437c8a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/OpsHouseStatus.java
@@ -0,0 +1,22 @@
+package com.panzhihua.common.enums;
+
+import lombok.Getter;
+
+/**
+ * 房屋租售状态
+ * 
+ * @author huanghongfa
+ */
+@Getter
+public enum OpsHouseStatus {
+    AUDIT(0, "待审核"), GROUNDING(1, "已上架"), REJECTED(2, "已驳回"), UNDERCARRIAGE(2, "已下架");
+
+    private final int code;
+    private final String info;
+
+    OpsHouseStatus(int code, String info) {
+        this.code = code;
+        this.info = info;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulCultureLevelEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulCultureLevelEnum.java
new file mode 100644
index 0000000..9b82579
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulCultureLevelEnum.java
@@ -0,0 +1,41 @@
+package com.panzhihua.common.enums;
+
+import lombok.Getter;
+
+/**
+ * 文化程度
+ * 
+ * @author huanghongfa
+ */
+@Getter
+public enum PopulCultureLevelEnum {
+    XX(80, "小学"), CZ(70, "初中"), GZ(61, "高中"), ZZ(40, "中专"), DZ(31, "大专"), BK(21, "本科"), SS(14, "硕士"), YJS(10, "研究生"),
+    BS(11, "博士"), QT(90, "其他"), WM(9, "文盲");
+
+    private final Integer code;
+    private final String name;
+
+    PopulCultureLevelEnum(Integer code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public static int getCodeByName(String name) {
+        for (PopulCultureLevelEnum item : PopulCultureLevelEnum.values()) {
+            if (item.name.equals(name)) {
+                return item.getCode();
+            }
+        }
+        return QT.getCode();
+    }
+
+    public static String getCnDescByName(Integer code) {
+        for (PopulCultureLevelEnum item : PopulCultureLevelEnum.values()) {
+            if (item.code.equals(code)) {
+                return item.getName();
+            }
+        }
+        return "其他";
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulHouseControlStatusEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulHouseControlStatusEnum.java
new file mode 100644
index 0000000..20fae50
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulHouseControlStatusEnum.java
@@ -0,0 +1,40 @@
+package com.panzhihua.common.enums;
+
+import lombok.Getter;
+
+/**
+ * 房屋管控状态
+ * 
+ * @author LYQ
+ */
+@Getter
+public enum PopulHouseControlStatusEnum {
+    CG(1, "常规"), GZ(2, "关注"), GK(3, "管控");
+
+    private final Integer code;
+    private final String name;
+
+    PopulHouseControlStatusEnum(Integer code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public static int getCodeByName(String name) {
+        for (PopulHouseControlStatusEnum item : PopulHouseControlStatusEnum.values()) {
+            if (item.name.equals(name)) {
+                return item.getCode();
+            }
+        }
+        return -1;
+    }
+
+    public static String getCnDescByName(Integer code) {
+        for (PopulHouseControlStatusEnum item : PopulHouseControlStatusEnum.values()) {
+            if (item.code.equals(code)) {
+                return item.getName();
+            }
+        }
+        return "";
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulHousePurposeEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulHousePurposeEnum.java
new file mode 100644
index 0000000..71ec4af
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulHousePurposeEnum.java
@@ -0,0 +1,40 @@
+package com.panzhihua.common.enums;
+
+import lombok.Getter;
+
+/**
+ * 房屋用途
+ * 
+ * @author LYQ
+ */
+@Getter
+public enum PopulHousePurposeEnum {
+    ZZ(1, "住宅"), GY(2, "公寓"), SS(3, "宿舍"), CK(4, "仓库"), QT(5, "其他");
+
+    private final Integer code;
+    private final String name;
+
+    PopulHousePurposeEnum(Integer code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public static int getCodeByName(String name) {
+        for (PopulHousePurposeEnum item : PopulHousePurposeEnum.values()) {
+            if (item.name.equals(name)) {
+                return item.getCode();
+            }
+        }
+        return -1;
+    }
+
+    public static String getCnDescByName(Integer code) {
+        for (PopulHousePurposeEnum item : PopulHousePurposeEnum.values()) {
+            if (item.code.equals(code)) {
+                return item.getName();
+            }
+        }
+        return "其他";
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulHouseStatusEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulHouseStatusEnum.java
new file mode 100644
index 0000000..7074cf5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulHouseStatusEnum.java
@@ -0,0 +1,40 @@
+package com.panzhihua.common.enums;
+
+import lombok.Getter;
+
+/**
+ * 房屋状态
+ * 
+ * @author LYQ
+ */
+@Getter
+public enum PopulHouseStatusEnum {
+    ZI_ZHU(1, "自住"), ZU_ZHU(2, "租住"), QI_TA(3, "其他");
+
+    private final Integer code;
+    private final String name;
+
+    PopulHouseStatusEnum(Integer code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public static int getCodeByName(String name) {
+        for (PopulHouseStatusEnum item : PopulHouseStatusEnum.values()) {
+            if (item.name.equals(name)) {
+                return item.getCode();
+            }
+        }
+        return -1;
+    }
+
+    public static String getCnDescByName(Integer code) {
+        for (PopulHouseStatusEnum item : PopulHouseStatusEnum.values()) {
+            if (item.code.equals(code)) {
+                return item.getName();
+            }
+        }
+        return "其他";
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulHouseUseEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulHouseUseEnum.java
new file mode 100644
index 0000000..0209332
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulHouseUseEnum.java
@@ -0,0 +1,46 @@
+package com.panzhihua.common.enums;
+
+/**
+ * 实有房屋使用类型
+ * 
+ * @author xyh
+ * @date 2021/6/11 9:33
+ */
+public enum PopulHouseUseEnum {
+
+    SELF(1, "是"), RENT(0, "否"),;
+
+    private final Integer code;
+    private final String name;
+
+    PopulHouseUseEnum(Integer code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public static int getCodeByName(String name) {
+        for (PopulHouseUseEnum item : PopulHouseUseEnum.values()) {
+            if (item.getName().equals(name)) {
+                return item.getCode();
+            }
+        }
+        return -1;
+    }
+
+    public static String getCnDescByName(Integer code) {
+        for (PopulHouseUseEnum item : PopulHouseUseEnum.values()) {
+            if (item.getCode().equals(code)) {
+                return item.getName();
+            }
+        }
+        return "其他";
+    }
+
+    public Integer getCode() {
+        return code;
+    }
+
+    public String getName() {
+        return name;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulIsOkEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulIsOkEnum.java
new file mode 100644
index 0000000..7b1e82d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulIsOkEnum.java
@@ -0,0 +1,40 @@
+package com.panzhihua.common.enums;
+
+import lombok.Getter;
+
+/**
+ * 是否状态
+ * 
+ * @author huanghongfa
+ */
+@Getter
+public enum PopulIsOkEnum {
+    YES(1, "是"), NO(0, "否");
+
+    private final Integer code;
+    private final String name;
+
+    PopulIsOkEnum(Integer code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public static int getCodeByName(String name) {
+        for (PopulIsOkEnum item : PopulIsOkEnum.values()) {
+            if (item.name.equals(name)) {
+                return item.getCode();
+            }
+        }
+        return 0;
+    }
+
+    public static String getCnDescByName(Integer code) {
+        for (PopulIsOkEnum item : PopulIsOkEnum.values()) {
+            if (item.code.equals(code)) {
+                return item.getName();
+            }
+        }
+        return "否";
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulIsOksEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulIsOksEnum.java
new file mode 100644
index 0000000..11bc8b7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulIsOksEnum.java
@@ -0,0 +1,40 @@
+package com.panzhihua.common.enums;
+
+import lombok.Getter;
+
+/**
+ * 是否状态(1.是 2.否)
+ * 
+ * @author huanghongfa
+ */
+@Getter
+public enum PopulIsOksEnum {
+    YES(1, "是"), NO(2, "否");
+
+    private final Integer code;
+    private final String name;
+
+    PopulIsOksEnum(Integer code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public static int getCodeByName(String name) {
+        for (PopulIsOksEnum item : PopulIsOksEnum.values()) {
+            if (item.name.equals(name)) {
+                return item.getCode();
+            }
+        }
+        return 2;
+    }
+
+    public static String getCnDescByName(Integer code) {
+        for (PopulIsOksEnum item : PopulIsOksEnum.values()) {
+            if (item.code.equals(code)) {
+                return item.getName();
+            }
+        }
+        return "否";
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulIsRentEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulIsRentEnum.java
new file mode 100644
index 0000000..317a199
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulIsRentEnum.java
@@ -0,0 +1,40 @@
+package com.panzhihua.common.enums;
+
+import lombok.Getter;
+
+/**
+ * 是否状态
+ * 
+ * @author huanghongfa
+ */
+@Getter
+public enum PopulIsRentEnum {
+    YES(1, "租住"), NO(0, "自住");
+
+    private final Integer code;
+    private final String name;
+
+    PopulIsRentEnum(Integer code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public static int getCodeByName(String name) {
+        for (PopulIsRentEnum item : PopulIsRentEnum.values()) {
+            if (item.name.equals(name)) {
+                return item.getCode();
+            }
+        }
+        return 0;
+    }
+
+    public static String getCnDescByName(Integer code) {
+        for (PopulIsRentEnum item : PopulIsRentEnum.values()) {
+            if (item.code.equals(code)) {
+                return item.getName();
+            }
+        }
+        return "否";
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulMarriageEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulMarriageEnum.java
new file mode 100644
index 0000000..3c7bb2b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulMarriageEnum.java
@@ -0,0 +1,42 @@
+package com.panzhihua.common.enums;
+
+import lombok.Getter;
+
+/**
+ * 婚姻状况
+ * 
+ * @author huanghongfa
+ */
+@Getter
+public enum PopulMarriageEnum {
+    WH(10, "未婚"), YH(20, "已婚"), CH(21, "初婚"), ZH(22, "再婚"), FH(23, "复婚"), SO(30, "丧偶"), LH(40, "离婚"),
+
+    QT(60, "其他"), WSM(90, "未说明的婚姻状况");
+
+    private final Integer code;
+    private final String name;
+
+    PopulMarriageEnum(Integer code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public static int getCodeByName(String name) {
+        for (PopulMarriageEnum item : PopulMarriageEnum.values()) {
+            if (item.name.equals(name)) {
+                return item.getCode();
+            }
+        }
+        return -1;
+    }
+
+    public static String getCnDescByName(Integer code) {
+        for (PopulMarriageEnum item : PopulMarriageEnum.values()) {
+            if (item.code.equals(code)) {
+                return item.getName();
+            }
+        }
+        return "其他";
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulOutOrLocalEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulOutOrLocalEnum.java
new file mode 100644
index 0000000..c5d2be4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulOutOrLocalEnum.java
@@ -0,0 +1,40 @@
+package com.panzhihua.common.enums;
+
+import lombok.Getter;
+
+/**
+ * 本地外地
+ * 
+ * @author LYQ
+ */
+@Getter
+public enum PopulOutOrLocalEnum {
+    BD(1, "本地"), WD(2, "外地");
+
+    private final Integer code;
+    private final String name;
+
+    PopulOutOrLocalEnum(Integer code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public static int getCodeByName(String name) {
+        for (PopulOutOrLocalEnum item : PopulOutOrLocalEnum.values()) {
+            if (item.name.equals(name)) {
+                return item.getCode();
+            }
+        }
+        return -1;
+    }
+
+    public static String getCnDescByName(Integer code) {
+        for (PopulOutOrLocalEnum item : PopulOutOrLocalEnum.values()) {
+            if (item.code.equals(code)) {
+                return item.getName();
+            }
+        }
+        return "";
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulPersonTypeEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulPersonTypeEnum.java
new file mode 100644
index 0000000..7058d42
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulPersonTypeEnum.java
@@ -0,0 +1,41 @@
+package com.panzhihua.common.enums;
+
+import lombok.Getter;
+
+/**
+ * 人员类型
+ *
+ * @author tangxb
+ */
+@Getter
+public enum PopulPersonTypeEnum {
+    HJ(1, "户籍人口"), LS(2, "留守人员"), WD(3, "外地人员"), JW(4, "境外人员"),
+    LD(5, "流动人口"), CZ(6, "常住人口"), ZZ(7, "暂住人口");
+
+    private final Integer code;
+    private final String name;
+
+    PopulPersonTypeEnum(Integer code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public static int getCodeByName(String name) {
+        for (PopulPersonTypeEnum item : PopulPersonTypeEnum.values()) {
+            if (item.name.equals(name)) {
+                return item.getCode();
+            }
+        }
+        return -1;
+    }
+
+    public static String getCnDescByName(Integer code) {
+        for (PopulPersonTypeEnum item : PopulPersonTypeEnum.values()) {
+            if (item.code.equals(code)) {
+                return item.getName();
+            }
+        }
+        return "其他";
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulPoliticalOutlookEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulPoliticalOutlookEnum.java
new file mode 100644
index 0000000..85a3cfd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulPoliticalOutlookEnum.java
@@ -0,0 +1,44 @@
+package com.panzhihua.common.enums;
+
+import lombok.Getter;
+
+/**
+ * 政治面貌
+ * 
+ * @author huanghongfa
+ */
+@Getter
+public enum PopulPoliticalOutlookEnum {
+    PARTY_MEMBER(1, "中共党员"), PROBATIONARY_PARTY_MEMBER(2, "中共预备党员"), COMMUNIST_YOUTH_LEAGUE_MEMBER(3, "共青团员"),
+    MEMBERS_OF_THE_DEMOCRATIC_REVOLUTION(4, "民革党员"), LEAGUE_MEMBER(5, "民盟盟员"), MEMBER_OF_CIVIL_CONSTRUCTION(6, "民建会员"),
+    A_MEMBER_OF_THE_RURAL_LABOR_PARTY(8, "农工党党员"), ZHIGONG_PARTY_MEMBER(9, "致公党党员"),
+    MEMBER_OF_JIUSAN_SOCIETY(10, "九三学社社员"), MEMBER_OF_THE_TAIWAN_LEAGUE(11, "台盟盟员"), INDEPENDENTS(12, "无党派人士"),
+    THE_MASSES(13, "群众");
+
+    private final Integer code;
+    private final String name;
+
+    PopulPoliticalOutlookEnum(Integer code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public static int getCodeByName(String name) {
+        for (PopulPoliticalOutlookEnum item : PopulPoliticalOutlookEnum.values()) {
+            if (item.name.equals(name)) {
+                return item.getCode();
+            }
+        }
+        return THE_MASSES.getCode();
+    }
+
+    public static String getCnDescByName(Integer code) {
+        for (PopulPoliticalOutlookEnum item : PopulPoliticalOutlookEnum.values()) {
+            if (item.code.equals(code)) {
+                return item.getName();
+            }
+        }
+        return "群众";
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulRegiterNatureEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulRegiterNatureEnum.java
new file mode 100644
index 0000000..a5f8f84
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulRegiterNatureEnum.java
@@ -0,0 +1,46 @@
+package com.panzhihua.common.enums;
+
+/**
+ * 实有房屋使用类型
+ * 
+ * @author xyh
+ * @date 2021/6/11 9:33
+ */
+public enum PopulRegiterNatureEnum {
+
+    CZHK(1, "城镇户口"), NCHK(0, "农村户口"),;
+
+    private final Integer code;
+    private final String name;
+
+    PopulRegiterNatureEnum(Integer code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public static int getCodeByName(String name) {
+        for (PopulRegiterNatureEnum item : PopulRegiterNatureEnum.values()) {
+            if (item.getName().equals(name)) {
+                return item.getCode();
+            }
+        }
+        return -1;
+    }
+
+    public static String getCnDescByName(Integer code) {
+        for (PopulRegiterNatureEnum item : PopulRegiterNatureEnum.values()) {
+            if (item.getCode().equals(code)) {
+                return item.getName();
+            }
+        }
+        return "其他";
+    }
+
+    public Integer getCode() {
+        return code;
+    }
+
+    public String getName() {
+        return name;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulRelationEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulRelationEnum.java
new file mode 100644
index 0000000..e699c95
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulRelationEnum.java
@@ -0,0 +1,66 @@
+package com.panzhihua.common.enums;
+
+import lombok.Getter;
+
+/**
+ * 与户主关系
+ * 
+ * @author huanghongfa
+ */
+@Getter
+public enum PopulRelationEnum {
+    relation01(1, "本人"), relation02(2, "户主"), relation10(10, "配偶"), relation11(11, "夫"), relation12(12, "妻"),
+
+    relation20(20, "子"), relation21(21, "独生子"), relation22(22, "长子"), relation23(23, "次子"), relation24(24, "三子"),
+    relation25(25, "四子"), relation26(26, "五子"), relation27(27, "养子或继子"), relation28(28, "女婿"), relation29(29, "其他儿子"),
+
+    relation30(30, "女"), relation31(31, "独生女"), relation32(32, "长女"), relation33(33, "次女"), relation434(34, "三女"),
+    relation35(35, "四女"), relation36(36, "五女"), relation37(37, "养女或继女"), relation38(38, "儿媳"), relation39(39, "其他女儿"),
+
+    relation40(40, "孙子、孙女或外孙子、外孙女"), relation41(41, "孙子"), relation42(42, "孙女"), relation43(43, "外孙子"),
+    relation44(44, "外孙女"), relation45(45, "孙媳妇或外孙媳妇"), relation46(46, "孙女婿或外孙女婿"), relation47(47, "曾孙子或外曾孙子"),
+    relation48(48, "曾孙女或外曾孙女"), relation49(49, "其他孙子、孙女或外孙子、外孙女"),
+
+    relation50(50, "父母"), relation51(51, "父亲"), relation52(52, "母亲"), relation53(53, "公公"), relation54(54, "婆婆"),
+    relation55(55, "岳父"), relation56(56, "岳母"), relation57(57, "继父或养父"), relation58(58, "继母或养母"),
+    relation59(59, "其他父母关系"),
+
+    relation60(60, "祖父母或外祖父母"), relation61(61, "祖父"), relation62(62, "祖母"), relation63(63, "外祖父"),
+    relation64(64, "外祖母"), relation65(65, "配偶的祖父母或外祖父母"), relation66(66, "曾祖父"), relation67(67, "曾祖母"),
+    relation68(68, "配偶的曾祖父母或外曾祖父母"), relation69(69, "其他祖父母或外祖父母关系"),
+
+    relation70(70, "兄弟姐妹"), relation71(71, "兄"), relation72(72, "嫂"), relation73(73, "弟"), relation74(74, "弟媳"),
+    relation75(75, "姐姐"), relation76(76, "姐夫"), relation77(77, "妹妹"), relation78(78, "妹夫"), relation79(79, "其他兄弟姐妹"),
+    relation80(80, "其他"), relation81(81, "伯父"), relation82(82, "伯母"), relation83(83, "叔父"), relation84(84, "婶母"),
+    relation85(85, "舅父"), relation86(86, "舅母"), relation87(87, "姨夫"), relation88(88, "姨母"), relation89(89, "姑母"),
+
+    relation90(90, "姑父"), relation91(91, "堂兄妹,堂姐妹"), relation92(92, "表兄妹,表姐妹"), relation93(93, "侄子"),
+    relation94(94, "侄女"), relation95(95, "外甥"), relation96(96, "外甥女"), relation97(97, "其他亲属"), relation99(99, "非亲属");
+
+    private final Integer code;
+    private final String name;
+
+    PopulRelationEnum(Integer code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public static int getCodeByName(String name) {
+        for (PopulRelationEnum item : PopulRelationEnum.values()) {
+            if (item.name.equals(name)) {
+                return item.getCode();
+            }
+        }
+        return -1;
+    }
+
+    public static String getCnDescByName(Integer code) {
+        for (PopulRelationEnum item : PopulRelationEnum.values()) {
+            if (item.code.equals(code)) {
+                return item.getName();
+            }
+        }
+        return "其他";
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulSexEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulSexEnum.java
new file mode 100644
index 0000000..5eef916
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PopulSexEnum.java
@@ -0,0 +1,40 @@
+package com.panzhihua.common.enums;
+
+import lombok.Getter;
+
+/**
+ * 性别枚举
+ *
+ * @author huanghongfa
+ */
+@Getter
+public enum PopulSexEnum {
+    nan(1, "男"), nv(2, "女"), weizhi(3, "未知");
+
+    private final Integer code;
+    private final String name;
+
+    PopulSexEnum(Integer code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public static int getCodeByName(String name) {
+        for (PopulSexEnum item : PopulSexEnum.values()) {
+            if (item.name.equals(name)) {
+                return item.getCode();
+            }
+        }
+        return 3;
+    }
+
+    public static String getCnDescByName(Integer code) {
+        for (PopulSexEnum item : PopulSexEnum.values()) {
+            if (item.code.equals(code)) {
+                return item.getName();
+            }
+        }
+        return "未知";
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PresetPictureType.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PresetPictureType.java
new file mode 100644
index 0000000..5b12efb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/PresetPictureType.java
@@ -0,0 +1,19 @@
+package com.panzhihua.common.enums;
+
+/**
+ * @title: PresetPictureType
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 预设图片类型
+ * @author: hans
+ * @date: 2021/11/23 17:31
+ */
+public class PresetPictureType {
+    /**
+     * 物业宣传
+     */
+    public static Integer PROPERTY_PUBLICITY = 1;
+    /**
+     * 五微服务-微讲堂
+     */
+    public static Integer FMS_CLASSROOM = 2;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/QuestnaireState.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/QuestnaireState.java
new file mode 100644
index 0000000..822f327
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/QuestnaireState.java
@@ -0,0 +1,20 @@
+package com.panzhihua.common.enums;
+
+import lombok.Getter;
+
+/**
+ * @Author: llming
+ * @Description:问卷状态
+ */
+@Getter
+public enum QuestnaireState {
+    CONTINUED(0, "调研中"), STOP(1, "已停止");
+
+    private final int code;
+    private final String info;
+
+    QuestnaireState(int code, String info) {
+        this.code = code;
+        this.info = info;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/QuestnaireSubType.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/QuestnaireSubType.java
new file mode 100644
index 0000000..b1954ba
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/QuestnaireSubType.java
@@ -0,0 +1,20 @@
+package com.panzhihua.common.enums;
+
+import lombok.Getter;
+
+/**
+ * @Author: llming
+ * @Description: 问卷题目类型
+ */
+@Getter
+public enum QuestnaireSubType {
+    SINGLE(0, "单选"), MULTIPLE(1, "多选"), NARRATION(2, "问答题");
+
+    private final int code;
+    private final String info;
+
+    QuestnaireSubType(int code, String info) {
+        this.code = code;
+        this.info = info;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/RealAssetsCategoryType.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/RealAssetsCategoryType.java
new file mode 100644
index 0000000..9e788d3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/RealAssetsCategoryType.java
@@ -0,0 +1,22 @@
+package com.panzhihua.common.enums;
+
+import lombok.Getter;
+
+/**
+ * 建筑类型
+ * 
+ * @author llming
+ */
+@Getter
+public enum RealAssetsCategoryType {
+    PUBLIC(2, "公共设施"), BUILD(1, "建筑类");
+
+    private final int code;
+    private final String info;
+
+    RealAssetsCategoryType(int code, String info) {
+        this.code = code;
+        this.info = info;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/RealAssetsFloorType.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/RealAssetsFloorType.java
new file mode 100644
index 0000000..e332c76
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/RealAssetsFloorType.java
@@ -0,0 +1,22 @@
+package com.panzhihua.common.enums;
+
+import lombok.Getter;
+
+/**
+ * 楼层类型
+ * 
+ * @author llming
+ */
+@Getter
+public enum RealAssetsFloorType {
+    HIGN(1, "高层"), CENTRE(2, "中层"), LOW(3, "底层");
+
+    private final int code;
+    private final String info;
+
+    RealAssetsFloorType(int code, String info) {
+        this.code = code;
+        this.info = info;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/ReserveRecordStatusEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/ReserveRecordStatusEnum.java
new file mode 100644
index 0000000..1efe109
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/ReserveRecordStatusEnum.java
@@ -0,0 +1,41 @@
+package com.panzhihua.common.enums;
+
+import lombok.Getter;
+
+/**
+ * 预约登记记录状态枚举
+ *
+ * @author lyq
+ */
+@Getter
+public enum ReserveRecordStatusEnum {
+    dcl(1, "待处理"), yycg(2, "预约成功"), yysb(3, "预约失败"), yqx(4, "已取消"), wz(5, "未知");
+
+    private final Integer code;
+    private final String name;
+
+    ReserveRecordStatusEnum(Integer code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public static int getCodeByName(String name) {
+        for (ReserveRecordStatusEnum item : ReserveRecordStatusEnum.values()) {
+            if (item.name.equals(name)) {
+                return item.getCode();
+            }
+        }
+        return wz.code;
+    }
+
+    public static String getCnDescByName(Integer code) {
+        for (ReserveRecordStatusEnum item : ReserveRecordStatusEnum.values()) {
+            if (item.code.equals(code)) {
+                return item.getName();
+            }
+        }
+        return wz.name;
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/SafeWordDangerLevelEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/SafeWordDangerLevelEnum.java
new file mode 100644
index 0000000..73b7f78
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/SafeWordDangerLevelEnum.java
@@ -0,0 +1,40 @@
+package com.panzhihua.common.enums;
+
+import lombok.Getter;
+
+/**
+ * 婚姻状况
+ * 
+ * @author huanghongfa
+ */
+@Getter
+public enum SafeWordDangerLevelEnum {
+    RED(1, "红色预警"), ORANGE(2, "橙色预警"), YELLOW(3, "黄色预警"), BLUE(4, "蓝色预警");
+
+    private final Integer code;
+    private final String name;
+
+    SafeWordDangerLevelEnum(Integer code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public static int getCodeByName(String name) {
+        for (SafeWordDangerLevelEnum item : SafeWordDangerLevelEnum.values()) {
+            if (item.name.equals(name)) {
+                return item.getCode();
+            }
+        }
+        return -1;
+    }
+
+    public static String getCnDescByName(Integer code) {
+        for (SafeWordDangerLevelEnum item : SafeWordDangerLevelEnum.values()) {
+            if (item.code.equals(code)) {
+                return item.getName();
+            }
+        }
+        return "其他";
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/SafeWordStatusEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/SafeWordStatusEnum.java
new file mode 100644
index 0000000..449a5ec
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/SafeWordStatusEnum.java
@@ -0,0 +1,40 @@
+package com.panzhihua.common.enums;
+
+import lombok.Getter;
+
+/**
+ * 婚姻状况
+ * 
+ * @author huanghongfa
+ */
+@Getter
+public enum SafeWordStatusEnum {
+    DCL(1, "待处理"), YCL(2, "已处理"), YZG(3, "已整改");
+
+    private final Integer code;
+    private final String name;
+
+    SafeWordStatusEnum(Integer code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public static int getCodeByName(String name) {
+        for (SafeWordStatusEnum item : SafeWordStatusEnum.values()) {
+            if (item.name.equals(name)) {
+                return item.getCode();
+            }
+        }
+        return -1;
+    }
+
+    public static String getCnDescByName(Integer code) {
+        for (SafeWordStatusEnum item : SafeWordStatusEnum.values()) {
+            if (item.code.equals(code)) {
+                return item.getName();
+            }
+        }
+        return "其他";
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/SanShuoEventStatusEnum.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/SanShuoEventStatusEnum.java
new file mode 100644
index 0000000..52fc408
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/SanShuoEventStatusEnum.java
@@ -0,0 +1,40 @@
+package com.panzhihua.common.enums;
+
+import lombok.Getter;
+
+/**
+ * 事件状态
+ * 
+ * @author 1待处理2待验证3专家已受理4专家未受理,拒绝5调解中6已结案归档7调解取消8 已删除
+ */
+@Getter
+public enum SanShuoEventStatusEnum {
+    UNDO(1, "待处理"), VALID(2, "待验证"), ACCEPT(3, "专家已受理"), REJECT(4, "专家未受理,拒绝5"), conciliation(5, "调解中"), OVER(6, "已结案归档"), CANCEL(7, "调解取消"), DELETE(8, "已删除");
+
+    private final Integer code;
+    private final String name;
+
+    SanShuoEventStatusEnum(Integer code, String name) {
+        this.code = code;
+        this.name = name;
+    }
+
+    public static int getCodeByName(String name) {
+        for (SanShuoEventStatusEnum item : SanShuoEventStatusEnum.values()) {
+            if (item.name.equals(name)) {
+                return item.getCode();
+            }
+        }
+        return UNDO.getCode();
+    }
+
+    public static String getCnDescByName(Integer code) {
+        for (SanShuoEventStatusEnum item : SanShuoEventStatusEnum.values()) {
+            if (item.code.equals(code)) {
+                return item.getName();
+            }
+        }
+        return "未知";
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/UserStatus.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/UserStatus.java
new file mode 100644
index 0000000..4f0e7b3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/enums/UserStatus.java
@@ -0,0 +1,22 @@
+package com.panzhihua.common.enums;
+
+import lombok.Getter;
+
+/**
+ * 用户状态
+ * 
+ * @author huanghongfa
+ */
+@Getter
+public enum UserStatus {
+    OK("0", "正常"), DISABLE("1", "停用"), DELETED("2", "删除");
+
+    private final String code;
+    private final String info;
+
+    UserStatus(String code, String info) {
+        this.code = code;
+        this.info = info;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/excel/CustomSheetWriteHandler.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/excel/CustomSheetWriteHandler.java
new file mode 100644
index 0000000..c1e13f9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/excel/CustomSheetWriteHandler.java
@@ -0,0 +1,59 @@
+package com.panzhihua.common.excel;
+
+import org.apache.poi.ss.usermodel.DataValidation;
+import org.apache.poi.ss.usermodel.DataValidationConstraint;
+import org.apache.poi.ss.usermodel.DataValidationHelper;
+import org.apache.poi.ss.util.CellRangeAddressList;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.alibaba.excel.write.handler.SheetWriteHandler;
+import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
+import com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder;
+
+/**
+ * 自定义拦截器.对第一列第一行和第二行的数据新增下拉框,显示 测试1 测试2
+ *
+ * @author Jiaju Zhuang
+ */
+public class CustomSheetWriteHandler implements SheetWriteHandler {
+
+    private static final Logger LOGGER = LoggerFactory.getLogger(CustomSheetWriteHandler.class);
+
+    @Override
+    public void beforeSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {
+
+    }
+
+    @Override
+    public void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {
+        LOGGER.info("第{}个Sheet写入成功。", writeSheetHolder.getSheetNo());
+
+        // 区间设置 第一列第一行和第二行的数据。由于第一行是头,所以第一、二行的数据实际上是第二三行
+        CellRangeAddressList cellRangeAddressList = new CellRangeAddressList(1, 2000, 11, 11);
+        CellRangeAddressList cellRangeAddressList1 = new CellRangeAddressList(1, 2000, 4, 4);
+        CellRangeAddressList cellRangeAddressList2 = new CellRangeAddressList(1, 2000, 6, 6);
+        CellRangeAddressList cellRangeAddressList3 = new CellRangeAddressList(1, 2000, 13, 13);
+        CellRangeAddressList cellRangeAddressList4 = new CellRangeAddressList(1, 2000, 14, 14);
+        DataValidationHelper helper = writeSheetHolder.getSheet().getDataValidationHelper();
+        DataValidationConstraint constraint = helper.createExplicitListConstraint(new String[] {"男", "女", "未知"});
+        DataValidationConstraint constraint1 = helper.createExplicitListConstraint(new String[] {"中共党员", "中共预备党员",
+            "共青团员", "民革党员", "民盟盟员", "民建会员", "农工党党员", "致公党党员", "九三学社社员", "台盟盟员", "无党派人士", "群众"});
+        DataValidationConstraint constraint2 = helper.createExplicitListConstraint(new String[] {"本地", "外地"});
+        DataValidationConstraint constraint3 =
+            helper.createExplicitListConstraint(new String[] {"未婚", "已婚", "初婚", "再婚", "复婚", "丧偶", "离婚", "未说明的婚育状况"});
+        DataValidationConstraint constraint4 =
+            helper.createExplicitListConstraint(new String[] {"很好", "较好", "一般", "较差", "很差"});
+        DataValidation dataValidation = helper.createValidation(constraint2, cellRangeAddressList);
+        DataValidation dataValidation1 = helper.createValidation(constraint, cellRangeAddressList1);
+        DataValidation dataValidation2 = helper.createValidation(constraint1, cellRangeAddressList2);
+        DataValidation dataValidation3 = helper.createValidation(constraint3, cellRangeAddressList3);
+        DataValidation dataValidation4 = helper.createValidation(constraint4, cellRangeAddressList4);
+
+        writeSheetHolder.getSheet().addValidationData(dataValidation);
+        writeSheetHolder.getSheet().addValidationData(dataValidation1);
+        writeSheetHolder.getSheet().addValidationData(dataValidation2);
+        writeSheetHolder.getSheet().addValidationData(dataValidation3);
+        writeSheetHolder.getSheet().addValidationData(dataValidation4);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/excel/PEXCustomSheetWriteHandler.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/excel/PEXCustomSheetWriteHandler.java
new file mode 100644
index 0000000..ac51499
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/excel/PEXCustomSheetWriteHandler.java
@@ -0,0 +1,49 @@
+package com.panzhihua.common.excel;
+
+import org.apache.poi.ss.usermodel.DataValidation;
+import org.apache.poi.ss.usermodel.DataValidationConstraint;
+import org.apache.poi.ss.usermodel.DataValidationHelper;
+import org.apache.poi.ss.util.CellRangeAddressList;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.alibaba.excel.write.handler.SheetWriteHandler;
+import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
+import com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder;
+
+/**
+ * 自定义拦截器.对第一列第一行和第二行的数据新增下拉框,显示 测试1 测试2
+ *
+ * @author Jiaju Zhuang
+ */
+public class PEXCustomSheetWriteHandler implements SheetWriteHandler {
+
+    private static final Logger LOGGER = LoggerFactory.getLogger(PEXCustomSheetWriteHandler.class);
+
+    @Override
+    public void beforeSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {
+
+    }
+
+    @Override
+    public void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {
+        LOGGER.info("第{}个Sheet写入成功。", writeSheetHolder.getSheetNo());
+
+        // 区间设置 第一列第一行和第二行的数据。由于第一行是头,所以第一、二行的数据实际上是第二三行
+        CellRangeAddressList cellRangeAddressList1 = new CellRangeAddressList(1, 5000, 3, 3);
+        CellRangeAddressList cellRangeAddressList2 = new CellRangeAddressList(1, 5000, 4, 4);
+        CellRangeAddressList cellRangeAddressList3 = new CellRangeAddressList(1, 5000, 25, 25);
+        DataValidationHelper helper = writeSheetHolder.getSheet().getDataValidationHelper();
+        DataValidationConstraint constraint1 = helper.createExplicitListConstraint(new String[] {"中共党员", "中共预备党员",
+            "共青团员", "民革党员", "民盟盟员", "民建会员", "农工党党员", "致公党党员", "九三学社社员", "台盟盟员", "无党派人士", "群众"});
+        DataValidationConstraint constraint2 = helper.createExplicitListConstraint(new String[] {"是", "否"});
+        DataValidationConstraint constraint3 = helper.createExplicitListConstraint(new String[] {"本地", "外地"});
+        DataValidation dataValidation1 = helper.createValidation(constraint1, cellRangeAddressList1);
+        DataValidation dataValidation2 = helper.createValidation(constraint2, cellRangeAddressList2);
+        DataValidation dataValidation3 = helper.createValidation(constraint3, cellRangeAddressList3);
+
+        writeSheetHolder.getSheet().addValidationData(dataValidation1);
+        writeSheetHolder.getSheet().addValidationData(dataValidation2);
+        writeSheetHolder.getSheet().addValidationData(dataValidation3);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/BaseException.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/BaseException.java
new file mode 100644
index 0000000..7c52c34
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/BaseException.java
@@ -0,0 +1,84 @@
+package com.panzhihua.common.exceptions;
+
+import com.panzhihua.common.utlis.MessageUtils;
+import org.apache.commons.lang3.StringUtils;
+
+/**
+ * 基础异常
+ *
+ * @author
+ */
+public class BaseException extends RuntimeException {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 所属模块
+     */
+    private String module;
+
+    /**
+     * 错误码
+     */
+    private String code;
+
+    /**
+     * 错误码对应的参数
+     */
+    private Object[] args;
+
+    /**
+     * 错误消息
+     */
+    private String defaultMessage;
+
+    public BaseException(String module, String code, Object[] args, String defaultMessage) {
+        this.module = module;
+        this.code = code;
+        this.args = args;
+        this.defaultMessage = defaultMessage;
+    }
+
+    public BaseException(String module, String code, Object[] args) {
+        this(module, code, args, null);
+    }
+
+    public BaseException(String module, String defaultMessage) {
+        this(module, null, null, defaultMessage);
+    }
+
+    public BaseException(String code, Object[] args) {
+        this(null, code, args, null);
+    }
+
+    public BaseException(String defaultMessage) {
+        this(null, null, null, defaultMessage);
+    }
+
+    @Override
+    public String getMessage() {
+        String message = null;
+        if (!StringUtils.isEmpty(code)) {
+            message = MessageUtils.message(code, args);
+        }
+        if (message == null) {
+            message = defaultMessage;
+        }
+        return message;
+    }
+
+    public String getModule() {
+        return module;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public Object[] getArgs() {
+        return args;
+    }
+
+    public String getDefaultMessage() {
+        return defaultMessage;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/FileException.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/FileException.java
new file mode 100644
index 0000000..f0f7075
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/FileException.java
@@ -0,0 +1,18 @@
+package com.panzhihua.common.exceptions;
+
+
+/**
+ * 文件信息异常类
+ * 
+ * @author
+ */
+public class FileException extends BaseException
+{
+    private static final long serialVersionUID = 1L;
+
+    public FileException(String code, Object[] args)
+    {
+        super("file", code, args, null);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/FileNameLengthLimitExceededException.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/FileNameLengthLimitExceededException.java
new file mode 100644
index 0000000..e8cdd11
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/FileNameLengthLimitExceededException.java
@@ -0,0 +1,16 @@
+package com.panzhihua.common.exceptions;
+
+/**
+ * 文件名称超长限制异常类
+ * 
+ * @author ruoyi
+ */
+public class FileNameLengthLimitExceededException extends FileException
+{
+    private static final long serialVersionUID = 1L;
+
+    public FileNameLengthLimitExceededException(int defaultFileNameLength)
+    {
+        super("upload.filename.exceed.length", new Object[] { defaultFileNameLength });
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/FileSizeLimitExceededException.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/FileSizeLimitExceededException.java
new file mode 100644
index 0000000..8fc0ef2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/FileSizeLimitExceededException.java
@@ -0,0 +1,16 @@
+package com.panzhihua.common.exceptions;
+
+/**
+ * 文件名大小限制异常类
+ * 
+ * @author ruoyi
+ */
+public class FileSizeLimitExceededException extends FileException
+{
+    private static final long serialVersionUID = 1L;
+
+    public FileSizeLimitExceededException(long defaultMaxSize)
+    {
+        super("upload.exceed.maxSize", new Object[] { defaultMaxSize });
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/GlobalExceptionCapture.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/GlobalExceptionCapture.java
new file mode 100644
index 0000000..3a7cc4c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/GlobalExceptionCapture.java
@@ -0,0 +1,145 @@
+package com.panzhihua.common.exceptions;
+
+import java.util.List;
+
+import org.springframework.core.Ordered;
+import org.springframework.core.annotation.Order;
+import org.springframework.validation.BindingResult;
+import org.springframework.validation.FieldError;
+import org.springframework.validation.ObjectError;
+import org.springframework.web.bind.MethodArgumentNotValidException;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.RestControllerAdvice;
+
+import com.panzhihua.common.constants.HttpStatus;
+import com.panzhihua.common.model.vos.R;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 全局异常捕获
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-25 14:36
+ **/
+@Slf4j
+@RestControllerAdvice
+@Order(Ordered.HIGHEST_PRECEDENCE)
+public class GlobalExceptionCapture {
+    /**
+     * 拦截捕捉自定义异常 TokenException.class
+     * 
+     * @param ex
+     *            token 异常
+     * @return R 401
+     */
+    @ExceptionHandler(value = TokenException.class)
+    public R myErrorHandlerTokenException(TokenException ex) {
+        return R.fail(ex.getCode(), ex.getMsg());
+    }
+
+    /**
+     * 拦截捕捉自定义异常 PartyBuildingMemberException
+     * 
+     * @param ex
+     *            党建异常
+     * @return 异常信息
+     */
+    @ExceptionHandler(value = PartyBuildingMemberException.class)
+    public R PartyBuildingMemberException(PartyBuildingMemberException ex) {
+        return R.fail(ex.getMsg());
+    }
+
+    /**
+     * 拦截捕捉自定义异常 UnAuthenticationException.class
+     * 
+     * @param ex
+     *            认证 异常
+     * @return R 401
+     */
+    @ExceptionHandler(value = UnAuthenticationException.class)
+    public R myErrorHandlerUnAuthenticationException(UnAuthenticationException ex) {
+        return R.fail(ex.getCode(), "没有登录");
+    }
+
+    /**
+     * 拦截捕捉自定义异常 UnAuthorizationException.class
+     * 
+     * @param ex
+     *            权限 异常
+     * @return R 403
+     */
+    @ExceptionHandler(value = UnAuthorizationException.class)
+    public R myErrorHandlerUnAuthorizationException(UnAuthenticationException ex) {
+        return R.fail(ex.getCode(), "没有访问权限");
+    }
+
+    /**
+     *
+     * @param ex
+     *            数据库异常
+     * @return
+     */
+    @ExceptionHandler(value = java.sql.SQLSyntaxErrorException.class)
+    public R sqlSyntaxExcetption(Exception ex) {
+        log.error("数据库异常【{}】", ex.getMessage());
+        return R.fail("sql语法错误");
+    }
+
+    /**
+     *
+     * @param ex
+     *            数据库异常
+     * @return
+     */
+    @ExceptionHandler(value = java.sql.SQLException.class)
+    public R sqlException(Exception ex) {
+        log.error("数据库异常【{}】", ex.getMessage());
+        return R.fail("sql错误");
+    }
+
+    /**
+     *
+     * @param ex
+     *            服务层业务异常
+     * @return
+     */
+    @ExceptionHandler(value = ServiceException.class)
+    public R serviceException(ServiceException ex) {
+        log.error("服务层业务异常【{}】", ex.getMessage());
+        return R.fail(ex.getMessage());
+    }
+
+    /**
+     * 校验异常
+     * 
+     * @param ex
+     *            valid
+     * @return 返回json
+     */
+    @ExceptionHandler(value = MethodArgumentNotValidException.class)
+    public R methodArgumentNotValidException(MethodArgumentNotValidException ex) {
+        BindingResult result = ex.getBindingResult();
+        StringBuilder errorMessage = new StringBuilder();
+        if (result.hasErrors()) {
+            List<ObjectError> errors = result.getAllErrors();
+            errors.forEach(p -> {
+                FieldError fieldError = (FieldError)p;
+                errorMessage.append(fieldError.getDefaultMessage());
+                errorMessage.append("  ");
+            });
+        }
+        return R.fail(HttpStatus.BAD_REQUEST, errorMessage.toString());
+    }
+
+    // /**
+    // * 全局异常捕捉处理
+    // * @param ex 所有运行时异常
+    // * @return R 500
+    // */
+    // @ExceptionHandler(value = Exception.class)
+    // public R errorHandler(Exception ex) {
+    // log.error("捕捉到全局异常【{}】",ex.getMessage());
+    // return R.fail("接口请求失败");
+    // }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/InvalidExtensionException.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/InvalidExtensionException.java
new file mode 100644
index 0000000..4ba638c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/InvalidExtensionException.java
@@ -0,0 +1,82 @@
+package com.panzhihua.common.exceptions;
+
+import org.apache.commons.fileupload.FileUploadException;
+
+import java.util.Arrays;
+
+/**
+ * 文件上传 误异常类
+ * 
+ * @author ruoyi
+ */
+public class InvalidExtensionException extends FileUploadException
+{
+    private static final long serialVersionUID = 1L;
+
+    private String[] allowedExtension;
+    private String extension;
+    private String filename;
+
+    public InvalidExtensionException(String[] allowedExtension, String extension, String filename)
+    {
+        super("filename : [" + filename + "], extension : [" + extension + "], allowed extension : [" + Arrays.toString(allowedExtension) + "]");
+        this.allowedExtension = allowedExtension;
+        this.extension = extension;
+        this.filename = filename;
+    }
+
+    public String[] getAllowedExtension()
+    {
+        return allowedExtension;
+    }
+
+    public String getExtension()
+    {
+        return extension;
+    }
+
+    public String getFilename()
+    {
+        return filename;
+    }
+
+    public static class InvalidImageExtensionException extends InvalidExtensionException
+    {
+        private static final long serialVersionUID = 1L;
+
+        public InvalidImageExtensionException(String[] allowedExtension, String extension, String filename)
+        {
+            super(allowedExtension, extension, filename);
+        }
+    }
+
+    public static class InvalidFlashExtensionException extends InvalidExtensionException
+    {
+        private static final long serialVersionUID = 1L;
+
+        public InvalidFlashExtensionException(String[] allowedExtension, String extension, String filename)
+        {
+            super(allowedExtension, extension, filename);
+        }
+    }
+
+    public static class InvalidMediaExtensionException extends InvalidExtensionException
+    {
+        private static final long serialVersionUID = 1L;
+
+        public InvalidMediaExtensionException(String[] allowedExtension, String extension, String filename)
+        {
+            super(allowedExtension, extension, filename);
+        }
+    }
+
+    public static class InvalidVideoExtensionException extends InvalidExtensionException
+    {
+        private static final long serialVersionUID = 1L;
+
+        public InvalidVideoExtensionException(String[] allowedExtension, String extension, String filename)
+        {
+            super(allowedExtension, extension, filename);
+        }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/PartyBuildingMemberException.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/PartyBuildingMemberException.java
new file mode 100644
index 0000000..af359bc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/PartyBuildingMemberException.java
@@ -0,0 +1,57 @@
+package com.panzhihua.common.exceptions;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党建异常
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 11:01
+ **/
+public class PartyBuildingMemberException extends RuntimeException {
+    private static final long serialVersionUID = 1L;
+
+    private String msg = "党建异常";
+    private int code = 500;
+
+    public PartyBuildingMemberException(String msg) {
+        super(msg);
+        this.msg = msg;
+    }
+
+    public PartyBuildingMemberException() {
+        super();
+
+    }
+
+    public PartyBuildingMemberException(String msg, Throwable e) {
+        super(msg, e);
+        this.msg = msg;
+    }
+
+    public PartyBuildingMemberException(String msg, int code) {
+        super(msg);
+        this.msg = msg;
+        this.code = code;
+    }
+
+    public PartyBuildingMemberException(String msg, int code, Throwable e) {
+        super(msg, e);
+        this.msg = msg;
+        this.code = code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+
+    public int getCode() {
+        return code;
+    }
+
+    public void setCode(int code) {
+        this.code = code;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/ServiceException.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/ServiceException.java
new file mode 100644
index 0000000..e61650f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/ServiceException.java
@@ -0,0 +1,67 @@
+package com.panzhihua.common.exceptions;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 服务层业务异常
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-28 14:13
+ **/
+public class ServiceException extends RuntimeException {
+
+    private String code;
+    private String msg;
+    private String data;
+
+    public ServiceException() {
+        super();
+    }
+
+    public ServiceException(String errorMsg) {
+        super(errorMsg);
+        this.msg = errorMsg;
+    }
+
+    public ServiceException(String errorCode, String errorMsg) {
+        super(errorCode);
+        this.code = errorCode;
+        this.msg = errorMsg;
+    }
+
+    public ServiceException(String errorCode, String errorMsg, String data) {
+        super(errorCode);
+        this.code = errorCode;
+        this.msg = errorMsg;
+        this.data = data;
+    }
+
+    public ServiceException(String errorCode, String errorMsg, Throwable cause) {
+        super(errorCode, cause);
+        this.code = errorCode;
+        this.msg = errorMsg;
+    }
+
+    public String getErrorCode() {
+        return code;
+    }
+
+    public void setErrorCode(String errorCode) {
+        this.code = errorCode;
+    }
+
+    public String getErrorMsg() {
+        return msg;
+    }
+
+    public void setErrorMsg(String errorMsg) {
+        this.msg = errorMsg;
+    }
+
+    public String getMessage() {
+        return msg;
+    }
+
+    @Override
+    public Throwable fillInStackTrace() {
+        return this;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/TokenException.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/TokenException.java
new file mode 100644
index 0000000..f94d8a7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/TokenException.java
@@ -0,0 +1,57 @@
+package com.panzhihua.common.exceptions;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: token
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-24 15:01
+ **/
+public class TokenException extends RuntimeException {
+    private static final long serialVersionUID = 1L;
+
+    private String msg = "token校验失败";
+    private int code = 401;
+
+    public TokenException(String msg) {
+        super(msg);
+        this.msg = msg;
+    }
+
+    public TokenException() {
+        super();
+
+    }
+
+    public TokenException(String msg, Throwable e) {
+        super(msg, e);
+        this.msg = msg;
+    }
+
+    public TokenException(String msg, int code) {
+        super(msg);
+        this.msg = msg;
+        this.code = code;
+    }
+
+    public TokenException(String msg, int code, Throwable e) {
+        super(msg, e);
+        this.msg = msg;
+        this.code = code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+
+    public int getCode() {
+        return code;
+    }
+
+    public void setCode(int code) {
+        this.code = code;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/UnAuthenticationException.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/UnAuthenticationException.java
new file mode 100644
index 0000000..247766f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/UnAuthenticationException.java
@@ -0,0 +1,65 @@
+/**
+ * Copyright (c) 2016-2019 人人开源 All rights reserved.
+ *
+ * https://www.renren.io
+ *
+ * 版权所有,侵权必究!
+ */
+
+package com.panzhihua.common.exceptions;
+
+/**
+ * 未认证异常
+ *
+ * @author Mark sunlightcs@gmail.com
+ */
+public class UnAuthenticationException extends RuntimeException {
+    private static final long serialVersionUID = 1L;
+
+    private String msg = "用户未认证";
+    private int code = 401;
+
+    public UnAuthenticationException(String msg) {
+        super(msg);
+        this.msg = msg;
+    }
+
+    public UnAuthenticationException() {
+        super();
+
+    }
+
+    public UnAuthenticationException(String msg, Throwable e) {
+        super(msg, e);
+        this.msg = msg;
+    }
+
+    public UnAuthenticationException(String msg, int code) {
+        super(msg);
+        this.msg = msg;
+        this.code = code;
+    }
+
+    public UnAuthenticationException(String msg, int code, Throwable e) {
+        super(msg, e);
+        this.msg = msg;
+        this.code = code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+
+    public int getCode() {
+        return code;
+    }
+
+    public void setCode(int code) {
+        this.code = code;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/UnAuthorizationException.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/UnAuthorizationException.java
new file mode 100644
index 0000000..1e3f1e2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/UnAuthorizationException.java
@@ -0,0 +1,57 @@
+package com.panzhihua.common.exceptions;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 无权限
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-24 14:26
+ **/
+public class UnAuthorizationException extends RuntimeException {
+    private static final long serialVersionUID = 1L;
+
+    private String msg = "无权限";
+    private int code = 403;
+
+    public UnAuthorizationException(String msg) {
+        super(msg);
+        this.msg = msg;
+    }
+
+    public UnAuthorizationException() {
+        super();
+
+    }
+
+    public UnAuthorizationException(String msg, Throwable e) {
+        super(msg, e);
+        this.msg = msg;
+    }
+
+    public UnAuthorizationException(String msg, int code) {
+        super(msg);
+        this.msg = msg;
+        this.code = code;
+    }
+
+    public UnAuthorizationException(String msg, int code, Throwable e) {
+        super(msg, e);
+        this.msg = msg;
+        this.code = code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+
+    public int getCode() {
+        return code;
+    }
+
+    public void setCode(int code) {
+        this.code = code;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/WeiXinException.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/WeiXinException.java
new file mode 100644
index 0000000..9ac488f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/exceptions/WeiXinException.java
@@ -0,0 +1,65 @@
+/**
+ * Copyright (c) 2016-2019 人人开源 All rights reserved.
+ *
+ * https://www.renren.io
+ *
+ * 版权所有,侵权必究!
+ */
+
+package com.panzhihua.common.exceptions;
+
+/**
+ * 微信异常
+ *
+ * @author Mark sunlightcs@gmail.com
+ */
+public class WeiXinException extends RuntimeException {
+    private static final long serialVersionUID = 1L;
+
+    private String msg = "微信调用失败";
+    private int code = 500;
+
+    public WeiXinException(String msg) {
+        super(msg);
+        this.msg = msg;
+    }
+
+    public WeiXinException() {
+        super();
+
+    }
+
+    public WeiXinException(String msg, Throwable e) {
+        super(msg, e);
+        this.msg = msg;
+    }
+
+    public WeiXinException(String msg, int code) {
+        super(msg);
+        this.msg = msg;
+        this.code = code;
+    }
+
+    public WeiXinException(String msg, int code, Throwable e) {
+        super(msg, e);
+        this.msg = msg;
+        this.code = code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+
+    public int getCode() {
+        return code;
+    }
+
+    public void setCode(int code) {
+        this.code = code;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/interfaces/OperLog.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/interfaces/OperLog.java
new file mode 100644
index 0000000..80f8139
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/interfaces/OperLog.java
@@ -0,0 +1,20 @@
+package com.panzhihua.common.interfaces;
+
+import java.lang.annotation.*;
+
+/**
+ * 自定义操作日志注解
+ * 
+ * @author wu
+ */
+@Target(ElementType.METHOD) // 注解放置的目标位置,METHOD是可注解在方法级别上
+@Retention(RetentionPolicy.RUNTIME) // 注解在哪个阶段执行
+@Documented
+public @interface OperLog {
+    String operModul() default ""; // 操作模块
+
+    int operType() default 0; // 操作类型 业务类型(0其它 1新增 2修改 3删除)
+
+    String businessType() default ""; //操作类型
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/interfaces/ShopOperLog.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/interfaces/ShopOperLog.java
new file mode 100644
index 0000000..e9d3d83
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/interfaces/ShopOperLog.java
@@ -0,0 +1,22 @@
+package com.panzhihua.common.interfaces;
+
+import java.lang.annotation.*;
+
+/**
+ * 商城后台操作日志注解
+ * 
+ * @author wu
+ */
+@Target(ElementType.METHOD) // 注解放置的目标位置,METHOD是可注解在方法级别上
+@Retention(RetentionPolicy.RUNTIME) // 注解在哪个阶段执行
+@Documented
+public @interface ShopOperLog {
+    String operModul() default "shop";
+
+    /**
+     * 操作类型 1.登录 2.修改密码 3.添加商品 4.编辑商品 5.下架商品 6.上架商品 7.删除商品 8.取消订单 9.发货 10.配送 11.查看订单详情 12.导出订单 13.导出资金流水
+     * 
+     * @return
+     */
+    int operType() default 0;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComActSocialWorkerExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComActSocialWorkerExcelListen.java
new file mode 100644
index 0000000..736af4f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComActSocialWorkerExcelListen.java
@@ -0,0 +1,61 @@
+package com.panzhihua.common.listen;
+
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.dtos.civil.ComActSocialWorkerExcelVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComCvtServeExcelVO;
+import com.panzhihua.common.service.community.CommunityService;
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @description: 便民服务导入监听
+ * @author: Null
+ * @date: 2021/3/11 13:26
+ */
+@Slf4j
+public class ComActSocialWorkerExcelListen extends AnalysisEventListener<ComActSocialWorkerExcelVO> {
+
+    private CommunityService communityService;
+
+    private Long communityId;
+
+    public ComActSocialWorkerExcelListen(CommunityService communityService, Long communityId) {
+        this.communityService = communityService;
+        this.communityId = communityId;
+    }
+
+
+    private static final int BATCH_COUNT = 5000;
+    private List<ComActSocialWorkerExcelVO> list = new ArrayList<>();
+
+    @Override
+    public void invoke(ComActSocialWorkerExcelVO comActSocialWorkerExcelVO, AnalysisContext analysisContext) {
+        list.add(comActSocialWorkerExcelVO);
+        // 达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM
+        if (list.size() >= BATCH_COUNT) {
+            log.info("excel导入数据【{}】", JSONObject.toJSONString(list));
+            R r = this.communityService.listSaveSocialWorkerExcelVO(list, this.communityId);
+            if (!R.isOk(r)) {
+                throw new ServiceException(r.getMsg());
+            }
+            //清空list
+            list.clear();
+        }
+
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
+        log.info("excel导入数据【{}】", JSONObject.toJSONString(list));
+        R r = this.communityService.listSaveSocialWorkerExcelVO(list, this.communityId);//确保最后遗留的数据保存在数据库中
+        if (!R.isOk(r)) {
+            throw new ServiceException(r.getMsg());
+        }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComClusterMemberExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComClusterMemberExcelListen.java
new file mode 100644
index 0000000..1a58f36
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComClusterMemberExcelListen.java
@@ -0,0 +1,215 @@
+package com.panzhihua.common.listen;
+
+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.Constants;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.cluster.admin.ComClusterMemberExcelErrorVO;
+import com.panzhihua.common.model.vos.community.cluster.admin.ComClusterMemberExcelVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.ListUtils;
+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.regex.Matcher;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+
+/**
+ * title: 群团组织成员导入监听
+ * @author : lyq
+ */
+@Slf4j
+public class ComClusterMemberExcelListen extends AnalysisEventListener<Map<Integer, String>> {
+    /**
+     * 每隔5条存储数据库,实际使用中可以3000条,然后清理list ,方便内存回收
+     */
+    private static final int BATCH_COUNT = 3000;
+    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 ComClusterMemberExcelListen(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("表格总数据:" + list.size());
+        if (list.size() == 0) {
+            throw new ServiceException("000", "导入数据为空!");
+        }
+        ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
+        String key = Constants.CLUSTER_MEMBER_ERROR_LIST + communityId;
+        int index = 2;
+        try {
+            ArrayList<ComClusterMemberExcelVO> voList = Lists.newArrayList();
+            ArrayList<ComClusterMemberExcelErrorVO> mistakes = Lists.newArrayList();
+            for (Map<Integer, String> oneData : list) {
+                ComClusterMemberExcelVO vo = new ComClusterMemberExcelVO();
+
+                if (StringUtils.isEmpty(oneData.get(0))) {
+                    index++;
+                    mistakes.add(setErrorObject(oneData,"名字不可为空,请填写姓名"));
+                    continue;
+                }else{
+                    //判断导入的名字的长度是否超过10
+                    if(oneData.get(0).length() > 10){
+                        index++;
+                        mistakes.add(setErrorObject(oneData,"名字长度不可超过10,请重新填写姓名"));
+                        continue;
+                    }
+                }
+                vo.setName(oneData.get(0));
+                if (StringUtils.isEmpty(oneData.get(1))) {
+                    index++;
+                    mistakes.add(setErrorObject(oneData,"组织不可为空,请填写组织名称"));
+                    continue;
+                }
+                vo.setClusterName(oneData.get(1));
+                if (StringUtils.isEmpty(oneData.get(2))) {
+                    index++;
+                    mistakes.add(setErrorObject(oneData,"职务不可为空,请填写职务"));
+                    continue;
+                }
+                vo.setJob(oneData.get(2));
+                if (StringUtils.isEmpty(oneData.get(3))) {
+                    index++;
+                    mistakes.add(setErrorObject(oneData,"联系电话不可为空,请填写联系电话"));
+                    continue;
+                }else{
+                    //验证手机号正则
+                    String regex = "^[1][3,4,5,6,7,8,9][0-9]{9}$";
+                    Pattern pattern = Pattern.compile(regex);
+                    Matcher m = pattern.matcher(oneData.get(3));
+                    if(!m.matches()){
+                        index++;
+                        mistakes.add(setErrorObject(oneData,"联系电话输入错误,请核对联系电话"));
+                        continue;
+                    }
+                }
+                vo.setPhone(oneData.get(3));
+                if (StringUtils.isEmpty(oneData.get(4))) {
+                    index++;
+                    mistakes.add(setErrorObject(oneData,"民族不可为空,请填写民族"));
+                    continue;
+                }else{
+                    if(!oneData.get(4).contains("族")){
+                        index++;
+                        mistakes.add(setErrorObject(oneData,"填写的民族有误,请重新填写(民族格式:X族 如:汉族)"));
+                        continue;
+                    }
+                }
+                vo.setNation(oneData.get(4));
+                if (StringUtils.isEmpty(oneData.get(5))) {
+                    index++;
+                    mistakes.add(setErrorObject(oneData,"住址不可为空,请填写住址"));
+                    continue;
+                }
+                vo.setAddress(oneData.get(5));
+                if (StringUtils.isEmpty(oneData.get(6))) {
+                    index++;
+                    mistakes.add(setErrorObject(oneData,"身份证号不可为空,请填写身份证号码"));
+                    continue;
+                }
+                // 判断身份证号码位数
+                if (oneData.get(6).length() != 18) {
+                    index++;
+                    mistakes.add(setErrorObject(oneData,"身份证号位数有误,请检查身份证号码是否正确"));
+                    continue;
+                }
+                vo.setIdCard(oneData.get(6).toUpperCase());
+                voList.add(vo);
+                index++;
+            }
+            List<ComClusterMemberExcelVO> newVoList =
+                voList.stream().filter(ListUtils.distinctByKey(ComClusterMemberExcelVO::getIdCard))
+                    .collect(Collectors.toList());
+            R r = communityService.importClusterMember(newVoList, communityId, userId);
+            if (!R.isOk(r)) {
+                List<ComClusterMemberExcelErrorVO> list =
+                    JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComClusterMemberExcelErrorVO.class);
+                mistakes.addAll(list);
+                valueOperations.set(key, JSONArray.toJSONString(mistakes), 1, TimeUnit.HOURS);
+                throw new ServiceException("500", key);
+            } else {
+                if (!mistakes.isEmpty()) {
+                    valueOperations.set(key, JSONArray.toJSONString(mistakes), 1, TimeUnit.HOURS);
+                    throw new ServiceException("500", key);
+                }
+            }
+        } catch (NumberFormatException e) {
+            e.printStackTrace();
+            throw new ServiceException("500", "导入失败");
+        }
+    }
+
+    private void setError(Map<Integer, String> map, ComClusterMemberExcelErrorVO vo) {
+        vo.setName(map.get(0));
+        vo.setClusterName(map.get(1));
+        vo.setJob(map.get(2));
+        vo.setPhone(map.get(3));
+        vo.setNation(map.get(4));
+        vo.setAddress(map.get(5));
+        vo.setIdCard(map.get(6));
+    }
+
+    /**
+     * 组装错误信息
+     * @param oneData   数据表格对象
+     * @param error     错误信息
+     * @return  错误对象
+     */
+    private ComClusterMemberExcelErrorVO setErrorObject(Map<Integer, String> oneData, String error){
+        ComClusterMemberExcelErrorVO mistake = new ComClusterMemberExcelErrorVO();
+        setError(oneData, mistake);
+        mistake.setError(error);
+        return mistake;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComCvtServeExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComCvtServeExcelListen.java
new file mode 100644
index 0000000..2b71ee3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComCvtServeExcelListen.java
@@ -0,0 +1,77 @@
+package com.panzhihua.common.listen;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.alibaba.excel.exception.ExcelDataConvertException;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComCvtServeExcelVO;
+import com.panzhihua.common.service.community.CommunityService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @description: 便民服务导入监听
+ * @author: Null
+ * @date: 2021/3/11 13:26
+ */
+@Slf4j
+public class ComCvtServeExcelListen extends AnalysisEventListener<ComCvtServeExcelVO> {
+
+    private static final int BATCH_COUNT = 5000;
+    private CommunityService communityService;
+    private Long communityId;
+    private List<ComCvtServeExcelVO> list = new ArrayList<>();
+    public ComCvtServeExcelListen(CommunityService communityService, Long communityId) {
+        this.communityService = communityService;
+        this.communityId = communityId;
+    }
+
+    @Override
+    public void invoke(ComCvtServeExcelVO comCvtServeExcelVO, AnalysisContext analysisContext) {
+        list.add(comCvtServeExcelVO);
+        // 达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM
+        if (list.size() >= BATCH_COUNT) {
+            log.info("excel导入数据【{}】", JSONObject.toJSONString(list));
+            R r = this.communityService.listSaveConvenientServeExcelVO(list, this.communityId);
+            if (!R.isOk(r)) {
+                throw new ServiceException(r.getMsg());
+            }
+            // 清空list
+            list.clear();
+        }
+
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
+        log.info("excel导入数据【{}】", JSONObject.toJSONString(list));
+        R r = this.communityService.listSaveConvenientServeExcelVO(list, this.communityId);// 确保最后遗留的数据保存在数据库中
+        if (!R.isOk(r)) {
+            throw new ServiceException(r.getMsg());
+        }
+    }
+
+    /**
+     * 在转换异常
+     * 
+     * @param exception
+     * @param context
+     * @throws Exception
+     */
+    @Override
+    public void onException(Exception exception, AnalysisContext context) throws ServiceException {
+        log.error("抛出异常:{}", exception.getMessage());
+        if (exception instanceof ExcelDataConvertException) {
+            ExcelDataConvertException excelDataConvertException = (ExcelDataConvertException)exception;
+            log.error("第{}行,第{}列解析异常,数据为:{}", excelDataConvertException.getRowIndex(),
+                excelDataConvertException.getColumnIndex(), excelDataConvertException.getCellData());
+        } else {
+            throw new ServiceException(exception.getMessage());
+        }
+    }
+}
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..12daa0a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComElderAuthRecordImportExcelListen.java
@@ -0,0 +1,229 @@
+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));
+                    vo.setAddress(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", "NumberFormatException");
+        }
+    }
+
+    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/ComEldersAuthElderlyExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComEldersAuthElderlyExcelListen.java
new file mode 100644
index 0000000..1d191e5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComEldersAuthElderlyExcelListen.java
@@ -0,0 +1,116 @@
+package com.panzhihua.common.listen;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.panzhihua.common.enums.EldersAuthLevelEnum;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.EldersAuthElderlyExcelVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.ListUtils;
+import com.panzhihua.common.utlis.StringUtils;
+
+import cn.hutool.core.util.IdcardUtil;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @description: 高龄老人导入监听
+ * @author: xyh
+ * @date: 2021/3/11 13:26
+ */
+@Slf4j
+public class ComEldersAuthElderlyExcelListen extends AnalysisEventListener<EldersAuthElderlyExcelVO> {
+
+    private static final int BATCH_COUNT = 3000;
+    private CommunityService communityService;
+    private Long communityId;
+    private Long createBy;
+    private List<EldersAuthElderlyExcelVO> list = new ArrayList<>();
+
+    public ComEldersAuthElderlyExcelListen(CommunityService communityService, Long communityId, Long createBy) {
+        this.communityService = communityService;
+        this.communityId = communityId;
+        this.createBy = createBy;
+    }
+
+    /**
+     * @author cedoo
+     * @Description:找出list中的重复数据
+     * @param datas
+     * @return
+     */
+    public static <T> List<T> findRepeat(Collection<T> datas) {
+        if (datas instanceof Set) {
+            return new ArrayList<>();
+        }
+        HashSet<T> set = new HashSet<T>();
+        List<T> repeatEles = new ArrayList<T>();
+        for (T t : datas) {
+            if (set.contains(t)) {
+                if (!repeatEles.contains(t)) {
+                    repeatEles.add(t);
+                }
+            } else {
+                set.add(t);
+            }
+        }
+        return repeatEles;
+    }
+
+    @Override
+    public void invoke(EldersAuthElderlyExcelVO eldersAuthElderlyExcelVO, AnalysisContext analysisContext) {
+        if (StringUtils.isEmpty(eldersAuthElderlyExcelVO.getName())) {
+            throw new ServiceException("姓名不可为空");
+        }
+        if (StringUtils.isEmpty(eldersAuthElderlyExcelVO.getIsExist())) {
+            eldersAuthElderlyExcelVO.setIsExist("是");
+        }
+        if (StringUtils.isEmpty(eldersAuthElderlyExcelVO.getIsBigAge())) {
+            eldersAuthElderlyExcelVO.setIsBigAge("是");
+        }
+        if (StringUtils.isEmpty(eldersAuthElderlyExcelVO.getIdCard())) {
+            throw new ServiceException("身份证号错误");
+        }
+
+        String idCard = eldersAuthElderlyExcelVO.getIdCard();
+        if (idCard != null && idCard.contains("x")) {
+            idCard = idCard.replaceAll("x", "X");
+        }
+        eldersAuthElderlyExcelVO.setIdCard(idCard);
+
+        eldersAuthElderlyExcelVO.setBirthday(DateUtils.getDateStringYMD(IdcardUtil.getBirthDate(idCard)));
+        eldersAuthElderlyExcelVO.setLevel(EldersAuthLevelEnum.getCode(IdcardUtil.getAgeByIdCard(idCard)));
+
+        list.add(eldersAuthElderlyExcelVO);
+        // 达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM
+        if (list.size() >= BATCH_COUNT) {
+            doAfterAllAnalysed(analysisContext);
+            list.clear();
+        }
+
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
+        // 去重
+        List<String> idcardList = new ArrayList<>();
+        list.forEach(voInList -> {
+            idcardList.add(voInList.getIdCard());
+        });
+        List<String> repeatList = findRepeat(idcardList);
+        if (repeatList != null && repeatList.size() > 0) {
+            String repeatedId = StringUtils.join(repeatList, ",");
+            throw new ServiceException(repeatedId + " 身份证号码存在多条");
+        }
+        List<EldersAuthElderlyExcelVO> newVoList = list.stream()
+            .filter(ListUtils.distinctByKey(EldersAuthElderlyExcelVO::getIdCard)).collect(Collectors.toList());
+        R r = this.communityService.listSaveEldersAuthElderlyExcelVO(newVoList, this.communityId, this.createBy);
+        if (!R.isOk(r)) {
+            throw new ServiceException(r.getMsg());
+        }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComEldersAuthRecordExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComEldersAuthRecordExcelListen.java
new file mode 100644
index 0000000..be50db2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComEldersAuthRecordExcelListen.java
@@ -0,0 +1,85 @@
+package com.panzhihua.common.listen;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.enums.EldersAuthLevelEnum;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.EldersAuthElderlyExcelVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.ListUtils;
+import com.panzhihua.common.utlis.StringUtils;
+
+import cn.hutool.core.util.IdcardUtil;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @description: 高龄老人导入监听
+ * @author: xyh
+ * @date: 2021/3/11 13:26
+ */
+@Slf4j
+public class ComEldersAuthRecordExcelListen extends AnalysisEventListener<EldersAuthElderlyExcelVO> {
+
+    private static final int BATCH_COUNT = 500;
+    private CommunityService communityService;
+    private Long communityId;
+    private Long createBy;
+    private List<EldersAuthElderlyExcelVO> list = new ArrayList<>();
+
+    public ComEldersAuthRecordExcelListen(CommunityService communityService, Long communityId, Long createBy) {
+        this.communityService = communityService;
+        this.communityId = communityId;
+        this.createBy = createBy;
+    }
+
+    @Override
+    public void invoke(EldersAuthElderlyExcelVO eldersAuthElderlyExcelVO, AnalysisContext analysisContext) {
+        if (StringUtils.isEmpty(eldersAuthElderlyExcelVO.getName())) {
+            throw new ServiceException("姓名不可为空");
+        }
+        if (StringUtils.isEmpty(eldersAuthElderlyExcelVO.getIsExist())) {
+            eldersAuthElderlyExcelVO.setIsExist("是");
+        }
+        if (StringUtils.isEmpty(eldersAuthElderlyExcelVO.getIsBigAge())) {
+            eldersAuthElderlyExcelVO.setIsBigAge("是");
+        }
+        if (StringUtils.isEmpty(eldersAuthElderlyExcelVO.getIdCard())) {
+            throw new ServiceException("身份证号错误");
+        }
+
+        eldersAuthElderlyExcelVO
+            .setBirthday(DateUtils.getDateStringYMD(IdcardUtil.getBirthDate(eldersAuthElderlyExcelVO.getIdCard())));
+        eldersAuthElderlyExcelVO
+            .setLevel(EldersAuthLevelEnum.getCode(IdcardUtil.getAgeByIdCard(eldersAuthElderlyExcelVO.getIdCard())));
+        list.add(eldersAuthElderlyExcelVO);
+        // 达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM
+        if (list.size() >= BATCH_COUNT) {
+            log.info("excel导入数据【{}】", JSONObject.toJSONString(list));
+            List<EldersAuthElderlyExcelVO> newVoList = list.stream()
+                .filter(ListUtils.distinctByKey(EldersAuthElderlyExcelVO::getIdCard)).collect(Collectors.toList());
+            R r = this.communityService.listSaveEldersAuthElderlyExcelVO(newVoList, this.communityId, this.createBy);
+            if (!R.isOk(r)) {
+                throw new ServiceException(r.getMsg());
+            }
+            list.clear(); // 清空list
+        }
+
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
+        List<EldersAuthElderlyExcelVO> newVoList = list.stream()
+            .filter(ListUtils.distinctByKey(EldersAuthElderlyExcelVO::getIdCard)).collect(Collectors.toList());
+        R r = this.communityService.listSaveEldersAuthElderlyExcelVO(newVoList, this.communityId, this.createBy);
+        if (!R.isOk(r)) {
+            throw new ServiceException(r.getMsg());
+        }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComFmsServiceImportExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComFmsServiceImportExcelListen.java
new file mode 100644
index 0000000..ddbddfc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComFmsServiceImportExcelListen.java
@@ -0,0 +1,176 @@
+package com.panzhihua.common.listen;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+import cn.hutool.core.date.DateUtil;
+import com.panzhihua.common.utlis.ValidateUtils;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+
+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.Constants;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.fms.ComFmsServiceImportExcelVO;
+import com.panzhihua.common.model.vos.community.fms.ComFmsServiceImportMistakeExcelVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.StringUtils;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @title: ComFmsTeamMemberImportExcelListen
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 五微服务-微服务导入监听
+ * @author: hans
+ * @date: 2022/02/15 10:16
+ */
+@Slf4j
+public class ComFmsServiceImportExcelListen 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 ComFmsServiceImportExcelListen(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.FMS_SERVICE_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<ComFmsServiceImportExcelVO> voList = Lists.newArrayList();
+            ArrayList<ComFmsServiceImportMistakeExcelVO> mistakes = Lists.newArrayList();
+            for (Map<Integer, String> oneData : list) {
+                ComFmsServiceImportExcelVO vo = new ComFmsServiceImportExcelVO();
+                vo.setUserName(oneData.get(0));
+                if (StringUtils.isNotEmpty(oneData.get(1)) && !ValidateUtils.assertPhoneIsValid(oneData.get(1))) {
+                    ComFmsServiceImportMistakeExcelVO mistake = new ComFmsServiceImportMistakeExcelVO();
+                    index++;
+                    setServiceImportMistake(oneData, mistake);
+                    mistake.setMistake("联系电话有误,请检查");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setPhone(oneData.get(1));
+                if (StringUtils.isEmpty(oneData.get(2))) {
+                    ComFmsServiceImportMistakeExcelVO mistake = new ComFmsServiceImportMistakeExcelVO();
+                    index++;
+                    setServiceImportMistake(oneData, mistake);
+                    mistake.setMistake("服务时间不可为空,请填写服务时间");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setServiceAt(DateUtil.parse(oneData.get(2).trim(), parsePatterns));
+
+                if (StringUtils.isEmpty(oneData.get(3))) {
+                    ComFmsServiceImportMistakeExcelVO mistake = new ComFmsServiceImportMistakeExcelVO();
+                    index++;
+                    setServiceImportMistake(oneData, mistake);
+                    mistake.setMistake("服务内容不可为空,请填写服务内容");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setServiceContent(oneData.get(3));
+
+                if (StringUtils.isEmpty(oneData.get(4))) {
+                    ComFmsServiceImportMistakeExcelVO mistake = new ComFmsServiceImportMistakeExcelVO();
+                    index++;
+                    setServiceImportMistake(oneData, mistake);
+                    mistake.setMistake("服务过程不可为空,请填写服务过程");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setServiceProcess(oneData.get(4));
+                voList.add(vo);
+                index++;
+            }
+            if (!voList.isEmpty()) {
+                log.info("开始进入业务层处理逻辑");
+                R r = communityService.listSaveFmsServiceExcelVO(voList, communityId, userId);
+                log.info("业务层处理逻辑完成");
+                if (R.isOk(r)) {
+                    log.info("业务层处理成功");
+                } 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();
+            log.error("数据格式有误,第" + index + "行");
+            throw new ServiceException("500", "NumberFormatException");
+        }
+    }
+
+    private void setServiceImportMistake(Map<Integer, String> map, ComFmsServiceImportMistakeExcelVO vo) {
+        vo.setUserName(map.get(0));
+        vo.setPhone(map.get(1));
+        vo.setServiceAt(map.get(2));
+        vo.setServiceContent(map.get(3));
+        vo.setServiceProcess(map.get(4));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComFmsTeamMemberImportExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComFmsTeamMemberImportExcelListen.java
new file mode 100644
index 0000000..5fd1e87
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComFmsTeamMemberImportExcelListen.java
@@ -0,0 +1,188 @@
+package com.panzhihua.common.listen;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+
+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.Constants;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.fms.ComFmsTeamMemberImportExcelVO;
+import com.panzhihua.common.model.vos.community.fms.ComFmsTeamMemberImportMistakeExcelVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.StringUtils;
+
+import cn.hutool.core.util.IdcardUtil;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @title: ComFmsTeamMemberImportExcelListen
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 五微服务-团队成员导入监听
+ * @author: hans
+ * @date: 2022/02/15 10:16
+ */
+@Slf4j
+public class ComFmsTeamMemberImportExcelListen 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 ComFmsTeamMemberImportExcelListen(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.FMS_MEMBER_ERROR_LIST + communityId;
+
+        int index = 2;
+        try {
+            ArrayList<ComFmsTeamMemberImportExcelVO> voList = Lists.newArrayList();
+            ArrayList<ComFmsTeamMemberImportMistakeExcelVO> mistakes = Lists.newArrayList();
+            for (Map<Integer, String> oneData : list) {
+                ComFmsTeamMemberImportExcelVO vo = new ComFmsTeamMemberImportExcelVO();
+                if (StringUtils.isEmpty(oneData.get(0))) {
+                    ComFmsTeamMemberImportMistakeExcelVO mistake = new ComFmsTeamMemberImportMistakeExcelVO();
+                    index++;
+                    setMemberImportMistake(oneData, mistake);
+                    mistake.setMistake("团队类型不可为空,请填写团队类型");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setTeamType(oneData.get(0));
+                if (StringUtils.isEmpty(oneData.get(1))) {
+                    ComFmsTeamMemberImportMistakeExcelVO mistake = new ComFmsTeamMemberImportMistakeExcelVO();
+                    index++;
+                    setMemberImportMistake(oneData, mistake);
+                    mistake.setMistake("团队名称不可为空,请填写团队名称");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setTeamName(oneData.get(1));
+
+                if (StringUtils.isEmpty(oneData.get(2))) {
+                    ComFmsTeamMemberImportMistakeExcelVO mistake = new ComFmsTeamMemberImportMistakeExcelVO();
+                    index++;
+                    setMemberImportMistake(oneData, mistake);
+                    mistake.setMistake("团队成员不可为空,请填写团队成员");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setTeamMember(oneData.get(2));
+
+                if (StringUtils.isNotEmpty(oneData.get(3))) {
+                    // 判断身份证号码位数
+                    if (!IdcardUtil.isValidCard(oneData.get(3))) {
+                        ComFmsTeamMemberImportMistakeExcelVO mistake = new ComFmsTeamMemberImportMistakeExcelVO();
+                        index++;
+                        setMemberImportMistake(oneData, mistake);
+                        mistake.setMistake("身份证号有误,请检查身份证号码是否正确");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setIdCard(oneData.get(3).toUpperCase());
+                }
+
+                if (StringUtils.isEmpty(oneData.get(4))) {
+                    ComFmsTeamMemberImportMistakeExcelVO mistake = new ComFmsTeamMemberImportMistakeExcelVO();
+                    index++;
+                    setMemberImportMistake(oneData, mistake);
+                    mistake.setMistake("联系电话不可为空,请填写联系电话");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setPhone(oneData.get(4));
+                voList.add(vo);
+                index++;
+            }
+            if (!voList.isEmpty()) {
+                log.info("开始进入业务层处理逻辑");
+                R r = communityService.listSaveFmsTeamMemberExcelVO(voList, communityId, userId);
+                log.info("业务层处理逻辑完成");
+                if (R.isOk(r)) {
+                    log.info("业务层处理成功");
+                    List<ComFmsTeamMemberImportMistakeExcelVO> list =
+                            JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComFmsTeamMemberImportMistakeExcelVO.class);
+                    mistakes.addAll(list);
+                } 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();
+            log.error("数据格式有误,第" + index + "行");
+            throw new ServiceException("500", "NumberFormatException");
+        }
+    }
+
+    private void setMemberImportMistake(Map<Integer, String> map, ComFmsTeamMemberImportMistakeExcelVO vo) {
+        vo.setTeamType(map.get(0));
+        vo.setTeamName(map.get(1));
+        vo.setTeamMember(map.get(2));
+        vo.setIdCard(map.get(3));
+        vo.setPhone(map.get(4));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngBuildingExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngBuildingExcelListen.java
new file mode 100644
index 0000000..8423844
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngBuildingExcelListen.java
@@ -0,0 +1,202 @@
+package com.panzhihua.common.listen;
+
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.google.common.collect.Lists;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngBuildingExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationImportErrorVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.grid.GridService;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.common.utlis.StringUtils;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+
+/**
+ * @description: 社区楼栋导入监听
+ * @author: xyh
+ */
+@Slf4j
+public class ComMngBuildingExcelListen extends AnalysisEventListener<Map<Integer, String>> {
+    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 StringRedisTemplate stringRedisTemplate;
+    private GridService gridService;
+    private Long communityId;
+    private Map<Integer, String> headData;
+    public ComMngBuildingExcelListen(CommunityService communityService, Long communityId, StringRedisTemplate stringRedisTemplate) {
+        this.communityService = communityService;
+        this.communityId = communityId;
+        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() {
+        try {
+            int index = 2;
+            ArrayList<ComMngBuildingExcelVO> voList = Lists.newArrayList();
+            List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
+            ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
+            String key = Constants.BUILDING_ERROR_LIST + communityId;
+            for (int i = 0; i < list.size(); i++) {
+                Map<Integer, String> oneData = list.get(i);
+                ComMngBuildingExcelVO vo = new ComMngBuildingExcelVO();
+                vo.setId(Snowflake.getId());
+//                vo.setUseType(oneData.get(0));
+//                vo.setBuildType(oneData.get(1));
+                if (StringUtils.isEmpty(oneData.get(0))) {
+                    ComMngPopulationImportErrorVO importErrorVO = setError(oneData);
+                    importErrorVO.setErrorMsg("街路巷不能为空");
+                    populationImportErrorVOList.add(importErrorVO);
+                    continue;
+                }
+                vo.setAlley(oneData.get(0));
+                vo.setVillageName(oneData.get(1));
+                if (StringUtils.isEmpty(oneData.get(2))) {
+                    ComMngPopulationImportErrorVO importErrorVO = setError(oneData);
+                    importErrorVO.setErrorMsg("街路巷号不能为空");
+                    populationImportErrorVOList.add(importErrorVO);
+                    continue;
+                }
+                vo.setDoorNo(oneData.get(2));
+
+                if (StringUtils.isEmpty(oneData.get(3))) {
+                    ComMngPopulationImportErrorVO importErrorVO = setError(oneData);
+                    importErrorVO.setErrorMsg("楼栋号不能为空");
+                    populationImportErrorVOList.add(importErrorVO);
+                    continue;
+                }
+                vo.setName(oneData.get(3));
+
+//                try {
+//                    vo.setUnitTotal(oneData.get(6) == null ? 0 : Integer.valueOf(oneData.get(6)));
+//                } catch (Exception e1) {
+//                    vo.setUnitTotal(0);
+//                }
+//                try {
+//                    vo.setBuildFloorSum(oneData.get(7) == null ? 0 : Integer.valueOf(oneData.get(7)));
+//                } catch (Exception e1) {
+//                    vo.setBuildFloorSum(0);
+//                }
+//
+//                try {
+//                    vo.setEveryFloorSum(oneData.get(8) == null ? 0 : Integer.valueOf(oneData.get(8)));
+//                } catch (Exception e1) {
+//                    vo.setEveryFloorSum(0);
+//                }
+//
+//                try {
+//                    vo.setBuildUserSum(oneData.get(9) == null ? 0 : Integer.valueOf(oneData.get(9)));
+//                } catch (Exception e1) {
+//                    vo.setBuildUserSum(0);
+//                }
+//                try {
+//                    vo.setElevatorTotal(oneData.get(10) == null ? 0 : Integer.valueOf(oneData.get(10)));
+//                } catch (Exception e1) {
+//                    vo.setElevatorTotal(0);
+//                }
+//
+//                vo.setPropertyCompanyName(oneData.get(11));
+//                try {
+//                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
+//                    vo.setBuildDate(sdf.parse(oneData.get(12)));
+//                } catch (Exception e1) {
+//                    vo.setBuildDate(null);
+//                }
+//                vo.setRemark(oneData.get(13));
+//                vo.setGridId(oneData.get(14));
+//                vo.setGridName(oneData.get(14));
+                voList.add(vo);
+                index++;
+            }
+
+            R r = communityService.listSaveBuildingExcelVO(voList, communityId);
+            if (!R.isOk(r)) {
+                List<ComMngPopulationImportErrorVO> errorList =
+                        JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComMngPopulationImportErrorVO.class);
+                if (!errorList.isEmpty()) {
+                    populationImportErrorVOList.addAll(errorList);
+                }
+                log.info("将错误数据存入redis中");
+                valueOperations.set(key, JSONArray.toJSONString(populationImportErrorVOList), 1, TimeUnit.HOURS);
+                log.info("将错误数据存入redis中成功");
+                throw new ServiceException("500", key);
+            } else {
+                if (!populationImportErrorVOList.isEmpty()) {
+                    log.info("将错误数据存入redis中");
+                    valueOperations.set(key, JSONArray.toJSONString(populationImportErrorVOList), 1, TimeUnit.HOURS);
+                    log.info("将错误数据存入redis中成功");
+                    throw new ServiceException("500", key);
+                }
+            }
+        } catch (NumberFormatException e) {
+            e.printStackTrace();
+        }
+    }
+
+    private ComMngPopulationImportErrorVO setError(Map<Integer, String> oneData){
+        ComMngPopulationImportErrorVO result = new ComMngPopulationImportErrorVO();
+        if(oneData != null){
+//            result.setUseType(oneData.get(0));
+//            result.setBuildType(oneData.get(1));
+            result.setAlley(oneData.get(0));
+            result.setVillageName(oneData.get(1));
+            result.setDoorNo(oneData.get(2));
+            result.setName(oneData.get(3));
+//            result.setUnitTotal(Integer.parseInt(oneData.get(6)));
+//            result.setBuildFloorSum(Integer.parseInt(oneData.get(7)));
+//            result.setEveryFloorSum(Integer.parseInt(oneData.get(8)));
+//            result.setBuildUserSum(Integer.parseInt(oneData.get(9)));
+//            result.setElevatorTotal(Integer.parseInt(oneData.get(10)));
+//            result.setPropertyCompanyName(oneData.get(11));
+//            result.setBuildDate(DateUtils.stringToDate(oneData.get(12),DateUtils.format_yyyy));
+//            result.setRemark(oneData.get(13));
+//            result.setGridId(oneData.get(14));
+        }
+        return result;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngCarExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngCarExcelListen.java
new file mode 100644
index 0000000..976130b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngCarExcelListen.java
@@ -0,0 +1,57 @@
+package com.panzhihua.common.listen;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngCarExcelVO;
+import com.panzhihua.common.service.community.CommunityService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @description: 车辆导入监听
+ * @author: Null
+ * @date: 2021/3/11 13:26
+ */
+@Slf4j
+public class ComMngCarExcelListen extends AnalysisEventListener<ComMngCarExcelVO> {
+
+    private static final int BATCH_COUNT = 1000;
+    private CommunityService communityService;
+    private Long communityId;
+    private List<ComMngCarExcelVO> list = new ArrayList<>();
+
+    public ComMngCarExcelListen(CommunityService communityService, Long communityId) {
+        this.communityService = communityService;
+        this.communityId = communityId;
+    }
+
+    @Override
+    public void invoke(ComMngCarExcelVO comMngCarExcelVO, AnalysisContext analysisContext) {
+        list.add(comMngCarExcelVO);
+        // 达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM
+        if (list.size() >= BATCH_COUNT) {
+            log.info("excel导入数据【{}】", JSONObject.toJSONString(list));
+            R r = this.communityService.listSaveMngCarExcelVO(list, this.communityId);
+            if (!R.isOk(r)) {
+                throw new ServiceException(r.getMsg());
+            }
+            list.clear(); // 清空list
+        }
+
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
+        log.info("excel导入数据【{}】", JSONObject.toJSONString(list));
+        R r = this.communityService.listSaveMngCarExcelVO(list, this.communityId);// 确保最后遗留的数据保存在数据库中
+        if (!R.isOk(r)) {
+            throw new ServiceException(r.getMsg());
+        }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationConfirmServeExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationConfirmServeExcelListen.java
new file mode 100644
index 0000000..34c441f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationConfirmServeExcelListen.java
@@ -0,0 +1,582 @@
+package com.panzhihua.common.listen;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.alibaba.fastjson.JSON;
+import com.google.common.collect.Lists;
+import com.panzhihua.common.constants.BcDictionaryConstants;
+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.ComMngPopulationImportErrorVO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationServeExcelVO;
+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;
+
+/**
+ * @description: 实有人口导入监听
+ * @author: Null
+ * @date: 2021/3/11 13:26
+ */
+@Slf4j
+public class ComMngPopulationConfirmServeExcelListen 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 Map<Integer, String> headData;
+    public ComMngPopulationConfirmServeExcelListen(CommunityService communityService, Long communityId) {
+        this.communityService = communityService;
+        this.communityId = communityId;
+    }
+
+    @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);
+
+        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 {
+            ArrayList<ComMngPopulationServeExcelVO> voList = Lists.newArrayList();
+            List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
+            for (Map<Integer, String> oneData : list) {
+                ComMngPopulationServeExcelVO vo = new ComMngPopulationServeExcelVO();
+                // 姓名和身份证都为空,为空户,无需操作,否则就解析年龄,性别,出生年月日
+//                if (StringUtils.isNotEmpty(oneData.get(0)) || StringUtils.isNotEmpty(oneData.get(1))) {
+//                    if (StringUtils.isEmpty(oneData.get(0))) {
+//                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+//                        importErrorVO.setErrorPosition("第" + index + "行,第1列");
+//                        importErrorVO.setErrorMsg("名字不可为空,请填写姓名");
+//                        populationImportErrorVOList.add(importErrorVO);
+//                        index++;
+//                        continue;
+//                    }
+//                    vo.setName(oneData.get(0));
+//                    if (StringUtils.isEmpty(oneData.get(1))) {
+//                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+//                        importErrorVO.setErrorPosition("第" + index + "行,第2列" + oneData.get(1));
+//                        importErrorVO.setErrorMsg("身份证号不可为空,请填写身份证号");
+//                        populationImportErrorVOList.add(importErrorVO);
+//                        index++;
+//                        continue;
+//                    }
+//
+//                    // 判断身份证号码位数
+//                    if (oneData.get(1).length() != 18) {
+//                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+//                        importErrorVO.setErrorPosition("第" + index + "行,第2列" + oneData.get(1));
+//                        importErrorVO.setErrorMsg("身份证号位数有误,请检查身份证号码是否正确");
+//                        populationImportErrorVOList.add(importErrorVO);
+//                        index++;
+//                        continue;
+//                    }
+//                    vo.setCardNo(oneData.get(1));
+//                    // 根据身份证号码解析年龄以及性别
+//                    // 获取用户生日
+//                    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))) {
+                    // String nation = oneData.get(2);
+                    // if(!nation.contains("族")){
+                    // ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+                    // importErrorVO.setErrorPosition("第" + index + "行,第3列");
+                    // importErrorVO.setErrorMsg("您填写的民族格式有误");
+                    // populationImportErrorVOList.add(importErrorVO);
+                    // index++;
+                    // continue;
+                    // }
+                    vo.setNation(oneData.get(2));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(3))) {
+                    vo.setPoliticalOutlook(PopulPoliticalOutlookEnum.getCodeByName(oneData.get(3)));
+                }
+//                if (StringUtils.isNotEmpty(oneData.get(4))) {
+//                    Integer isOk = PopulHouseUseEnum.getCodeByName(oneData.get(4));
+//                    if (isOk.equals(-1)) {
+//                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+//                        importErrorVO.setErrorPosition("第" + index + "行,第5列");
+//                        importErrorVO.setErrorMsg("您填写的是否租住有误");
+//                        populationImportErrorVOList.add(importErrorVO);
+//                        index++;
+//                        continue;
+//                    }
+//                    vo.setIsRent(isOk);
+//                }
+                if (StringUtils.isNotEmpty(oneData.get(5))) {
+
+                    // String ra = convertRelation(oneData.get(5));
+
+                    // String relation = dictMap.get(oneData.get(5));
+                    // if (StringUtils.isEmpty(relation)) {
+                    //// vo.setRelationStr(ra);
+                    // ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+                    // importErrorVO.setErrorPosition("第" + index + "行,第6列");
+                    // importErrorVO.setErrorMsg("您填写的与户主关系有误");
+                    // populationImportErrorVOList.add(importErrorVO);
+                    // index++;
+                    // continue;
+                    // } else {
+                    // vo.setRelation(Integer.valueOf(relation));
+                    // }
+                    Integer isOk = PopulRelationEnum.getCodeByName(oneData.get(5));
+                    if (isOk.equals(-1)) {
+                        // vo.setMarriageStr(ma);
+                        // ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+                        // importErrorVO.setErrorPosition("第" + index + "行,第6列");
+                        // importErrorVO.setErrorMsg("您填写的与户主关系有误");
+                        // populationImportErrorVOList.add(importErrorVO);
+                        // index++;
+                        // continue;
+                        vo.setRelation(6);
+                    } else {
+                        vo.setRelation(isOk);
+                    }
+
+                }
+//                if (StringUtils.isEmpty(oneData.get(6))) {
+//                    ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+//                    importErrorVO.setErrorPosition("第" + index + "行,第7列");
+//                    importErrorVO.setErrorMsg("街路巷不可为空");
+//                    populationImportErrorVOList.add(importErrorVO);
+//                    index++;
+//                    continue;
+//                }
+//                vo.setRoad(oneData.get(6));
+//                if (StringUtils.isEmpty(oneData.get(7))) {
+//                    ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+//                    importErrorVO.setErrorPosition("第" + index + "行,第8列");
+//                    importErrorVO.setErrorMsg("小区号不可为空");
+//                    populationImportErrorVOList.add(importErrorVO);
+//                    index++;
+//                    continue;
+//                }
+//                vo.setDoorNo(oneData.get(7).trim());
+//                if (StringUtils.isEmpty(oneData.get(8))) {
+//                    ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+//                    importErrorVO.setErrorPosition("第" + index + "行,第9列");
+//                    importErrorVO.setErrorMsg("楼排号不可为空");
+//                    populationImportErrorVOList.add(importErrorVO);
+//                    index++;
+//                    continue;
+//                }
+//                vo.setFloor(oneData.get(8).trim());
+//                if (StringUtils.isEmpty(oneData.get(9))) {
+//                    ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+//                    importErrorVO.setErrorPosition("第" + index + "行,第10列");
+//                    importErrorVO.setErrorMsg("单元号不可为空");
+//                    populationImportErrorVOList.add(importErrorVO);
+//                    index++;
+//                    continue;
+//                }
+//                vo.setUnitNo(oneData.get(9).trim());
+//                if (StringUtils.isEmpty(oneData.get(10))) {
+//                    ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+//                    importErrorVO.setErrorPosition("第" + index + "行,第11列");
+//                    importErrorVO.setErrorMsg("户室不可为空");
+//                    populationImportErrorVOList.add(importErrorVO);
+//                    index++;
+//                    continue;
+//                }
+                vo.setHouseNo(oneData.get(10).trim());
+                if (StringUtils.isNotEmpty(oneData.get(11))) {
+                    vo.setBuildPurpose(oneData.get(11).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(12))) {
+                    vo.setBuildArea(oneData.get(12).trim());
+                }
+//                if (StringUtils.isNotEmpty(oneData.get(13))) {
+//                    Integer isOk = PopulHouseStatusEnum.getCodeByName(oneData.get(13).trim());
+//                    if (isOk.equals(-1)) {
+//                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+//                        importErrorVO.setErrorPosition("第" + index + "行,第14列");
+//                        importErrorVO.setErrorMsg("您填写的房屋状态有误");
+//                        populationImportErrorVOList.add(importErrorVO);
+//                        index++;
+//                        continue;
+//                    }
+//                    vo.setHouseStatus(isOk);
+//                }
+//                if (StringUtils.isNotEmpty(oneData.get(14))) {
+//                    Integer isOk = PopulHousePurposeEnum.getCodeByName(oneData.get(14).trim());
+//                    if (isOk.equals(-1)) {
+//                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+//                        importErrorVO.setErrorPosition("第" + index + "行,第15列");
+//                        importErrorVO.setErrorMsg("您填写的房屋用途有误");
+//                        populationImportErrorVOList.add(importErrorVO);
+//                        index++;
+//                        continue;
+//                    }
+//                    vo.setHousePurpose(PopulHousePurposeEnum.getCodeByName(oneData.get(14).trim()));
+//                }
+//                if (StringUtils.isNotEmpty(oneData.get(15))) {
+//                    Integer isOk = PopulHouseControlStatusEnum.getCodeByName(oneData.get(15));
+//                    if (isOk.equals(-1)) {
+//                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+//                        importErrorVO.setErrorPosition("第" + index + "行,第16列");
+//                        importErrorVO.setErrorMsg("您填写的管控状态有误");
+//                        populationImportErrorVOList.add(importErrorVO);
+//                        index++;
+//                        continue;
+//                    }
+//                    vo.setControlStatus(isOk);
+//                }
+
+                if (StringUtils.isNotEmpty(oneData.get(16))) {
+                    vo.setPhone(oneData.get(16).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(17))) {
+                    vo.setNativePlace(oneData.get(17).trim());
+                }
+//                if (StringUtils.isNotEmpty(oneData.get(18))) {
+//                    Integer isOk = PopulCultureLevelEnum.getCodeByName(oneData.get(18));
+//                    if (isOk.equals(-1)) {
+//                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+//                        importErrorVO.setErrorPosition("第" + index + "行,第19列");
+//                        importErrorVO.setErrorMsg("您填写的文化程度有误");
+//                        populationImportErrorVOList.add(importErrorVO);
+//                        index++;
+//                        continue;
+//                    }
+//                    vo.setCultureLevel(isOk);
+//                }
+//                if (StringUtils.isNotEmpty(oneData.get(19))) {
+//                    // String ma = convertMarriage(oneData.get(19));
+//                    Integer isOk = PopulMarriageEnum.getCodeByName(oneData.get(19));
+//                    if (isOk.equals(-1)) {
+//                        // vo.setMarriageStr(ma);
+//                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+//                        importErrorVO.setErrorPosition("第" + index + "行,第20列");
+//                        importErrorVO.setErrorMsg("您填写的婚姻状况有误");
+//                        populationImportErrorVOList.add(importErrorVO);
+//                        index++;
+//                        continue;
+//                    } else {
+//                        vo.setMarriage(isOk);
+//                    }
+//
+//                }
+                if (StringUtils.isNotEmpty(oneData.get(20))) {
+                    vo.setHealthy(oneData.get(20).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(21))) {
+                    vo.setBloodType(oneData.get(21).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(22))) {
+                    vo.setReligion(oneData.get(22).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(23))) {
+                    vo.setProfession(oneData.get(23).trim());
+                }
+
+                if (StringUtils.isNotEmpty(oneData.get(24))) {
+                    vo.setWorkCompany(oneData.get(24).trim());
+                }
+//                if (StringUtils.isNotEmpty(oneData.get(25))) {
+//                    Integer isOk = PopulOutOrLocalEnum.getCodeByName(oneData.get(25));
+//                    if (isOk.equals(-1)) {
+//                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+//                        importErrorVO.setErrorPosition("第" + index + "行,第26列");
+//                        importErrorVO.setErrorMsg("您填写的本地/外地有误");
+//                        populationImportErrorVOList.add(importErrorVO);
+//                        index++;
+//                        continue;
+//                    }
+//                    vo.setOutOrLocal(isOk);
+//                }
+                if (StringUtils.isNotEmpty(oneData.get(26))) {
+                    vo.setCensusRegister(oneData.get(26).trim());
+                }
+                if (StringUtils.isEmpty(oneData.get(27))) {
+                    vo.setResidence(0);
+                } else {
+                    vo.setResidence(PopulIsOkEnum.getCodeByName(oneData.get(27).trim()));
+                }
+//                if (StringUtils.isNotEmpty(oneData.get(28))) {
+//                    Integer isOk = PopulPersonTypeEnum.getCodeByName(oneData.get(28));
+//                    if (isOk.equals(-1)) {
+//                        ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+//                        importErrorVO.setErrorPosition("第" + index + "行,第30列");
+//                        importErrorVO.setErrorMsg("您填写的人员类型有误");
+//                        populationImportErrorVOList.add(importErrorVO);
+//                        index++;
+//                        continue;
+//                    }
+//                    vo.setPersonType(isOk);
+//                }
+                if (StringUtils.isNotEmpty(oneData.get(29))) {
+                    vo.setCountry(oneData.get(29).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(30))) {
+                    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY-dd-MM HH:mm:ss");
+                    vo.setDateOfDeparture(simpleDateFormat.parse(oneData.get(30)));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(31))) {
+                    vo.setPersonStatus(oneData.get(31).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(32))) {
+                    vo.setMonthlyIncome(oneData.get(32).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(33))) {
+                    vo.setFamilyStatus(oneData.get(33).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(34))) {
+                    vo.setGoalInChina(oneData.get(34).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(35))) {
+                    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY-dd-MM HH:mm:ss");
+                    vo.setDateOfArrival(simpleDateFormat.parse(oneData.get(35)));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(36))) {
+                    vo.setRemark(oneData.get(36).trim());
+                }
+
+                if (StringUtils.isNotEmpty(oneData.get(37))) {
+                    vo.setIdCardPositive(oneData.get(37).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(38))) {
+                    vo.setIdCardBack(oneData.get(38).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(39))) {
+                    vo.setHouseHold(oneData.get(39).trim());
+                }
+                if (StringUtils.isEmpty(oneData.get(40))) {
+                    vo.setDeath(0);
+                } else {
+                    vo.setDeath(PopulIsOkEnum.getCodeByName(oneData.get(40).trim()));
+                }
+                for (int i = 41; 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<ComMngPopulationServeExcelVO> newVoList =
+                voList.stream().filter(ListUtils.distinctByKey(ComMngPopulationServeExcelVO::getDistinctPass))
+                    .collect(Collectors.toList());
+            R r = communityService.listSavePopulationConfirm(newVoList, communityId);
+            if (!R.isOk(r)) {
+                String errMsg = r.getMsg();
+                List<ComMngPopulationImportErrorVO> errorList =
+                    JSON.parseArray(errMsg, ComMngPopulationImportErrorVO.class);
+                if (!errorList.isEmpty()) {
+                    populationImportErrorVOList.addAll(errorList);
+                }
+                throw new ServiceException("500", JSON.toJSONString(populationImportErrorVOList));
+            } else {
+                if (!populationImportErrorVOList.isEmpty()) {
+                    throw new ServiceException("500", JSON.toJSONString(populationImportErrorVOList));
+                }
+            }
+        } catch (NumberFormatException e) {
+            e.printStackTrace();
+            List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
+            ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+//            importErrorVO.setErrorPosition("第" + index + "行");
+            importErrorVO.setErrorMsg("数据格式有误,请检查文档内数据");
+            populationImportErrorVOList.add(importErrorVO);
+            throw new ServiceException("500", JSON.toJSONString(populationImportErrorVOList));
+        } catch (ParseException e1) {
+            e1.printStackTrace();
+            List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
+            ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+//            importErrorVO.setErrorPosition("第" + index + "行");
+            importErrorVO.setErrorMsg("数据格式有误,请检查文档内数据");
+            populationImportErrorVOList.add(importErrorVO);
+            throw new ServiceException("500", JSON.toJSONString(populationImportErrorVOList));
+        }
+
+    }
+
+    private String convertMarriage(String ma) {
+
+        if (Objects.equals("已", ma) || Objects.equals("一", ma)) {
+            ma = "已婚";
+        } else if (Objects.equals("未", ma) || Objects.equals("未婚婚", ma)) {
+            ma = "未婚";
+        } else if (Objects.equals("初", ma)) {
+            ma = "初婚";
+        } else if (Objects.equals("再", ma)) {
+            ma = "再婚";
+        } else if (Objects.equals("复", ma)) {
+            ma = "复婚";
+        } else if (Objects.equals("丧", ma) || Objects.equals("丧偶偶", ma)) {
+            ma = "丧偶";
+        } else if (Objects.equals("离", ma) || Objects.equals("离异", ma) || Objects.equals("离异婚", ma)) {
+            ma = "离婚";
+        } else if (Objects.equals("分", ma)) {
+            ma = "分居";
+        }
+
+        return ma;
+    }
+
+    private String convertRelation(String ra) {
+        if (ra.contains("户主")) {
+            ra = "户主";
+        } else if (Objects.equals(ra, "女儿")) {
+            ra = "女";
+        } else if (Objects.equals(ra, "儿子") || Objects.equals(ra, "儿")) {
+            ra = "子";
+        } else if (Objects.equals(ra, "大女")) {
+            ra = "长女";
+        } else if (Objects.equals(ra, "二女") || Objects.equals(ra, "此女")) {
+            ra = "次女";
+        } else if (Objects.equals(ra, "二子")) {
+            ra = "次子";
+        } else if (Objects.equals(ra, "长男") || ra.contains("长子")) {
+            ra = "长子";
+        } else if (Objects.equals(ra, "非亲属") || ra.contains("女友") || ra.contains("女朋友") || ra.contains("男友")
+            || ra.contains("男朋友")) {
+            ra = "其他";
+        } else if (Objects.equals(ra, "姐")) {
+            ra = "姐姐";
+        } else if (Objects.equals(ra, "户主")) {
+            ra = "本人";
+        } else if (Objects.equals(ra, "妻子") || Objects.equals(ra, "媳妇")) {
+            ra = "妻";
+        } else if (Objects.equals(ra, "哥") || Objects.equals(ra, "哥哥")) {
+            ra = "兄";
+        } else if (Objects.equals(ra, "丈夫")) {
+            ra = "夫";
+        } else if (Objects.equals(ra, "丈母娘")) {
+            ra = "岳母";
+        } else if (Objects.equals(ra, "继子") || Objects.equals(ra, "养子")) {
+            ra = "养子或继子";
+        } else if (Objects.equals(ra, "继女") || Objects.equals(ra, "养女")) {
+            ra = "养女或继女";
+        } else if (ra.contains("儿媳") || ra.contains("长媳")) {
+            ra = "儿媳";
+        } else if (Objects.equals(ra, "三姨") || Objects.equals(ra, "姨姨")) {
+            ra = "姨母";
+        } else if (Objects.equals(ra, "二外孙女")) {
+            ra = "外孙女";
+        } else if (Objects.equals(ra, "外孙")) {
+            ra = "外孙子";
+        } else if (Objects.equals(ra, "侄儿")) {
+            ra = "侄子";
+        } else if (ra.contains("表")) {
+            ra = "表兄弟、表姐妹";
+        } else if (Objects.equals(ra, "继父") || Objects.equals(ra, "养父")) {
+            ra = "继父或养父";
+        } else if (Objects.equals(ra, "父")) {
+            ra = "父亲";
+        } else if (Objects.equals(ra, "弟弟")) {
+            ra = "弟";
+        } else if (Objects.equals(ra, "孙")) {
+            ra = "孙子";
+        } else if (Objects.equals(ra, "孙媳妇") || Objects.equals(ra, "外孙媳妇")) {
+            ra = "孙媳妇或外孙媳妇";
+        } else if (Objects.equals(ra, "妹")) {
+            ra = "妹妹";
+        } else if (Objects.equals(ra, "祖父母")) {
+            ra = "祖父母或外祖父母";
+        } else if (Objects.equals(ra, "姐妹") || Objects.equals(ra, "兄弟")) {
+            ra = "兄弟姐妹";
+        } else if (Objects.equals(ra, "其他姐妹") || Objects.equals(ra, "其他兄弟")) {
+            ra = "其他兄弟姐妹";
+        } else if (Objects.equals(ra, "奶奶")) {
+            ra = "祖母";
+        } else if (Objects.equals(ra, "爷爷")) {
+            ra = "祖父";
+        } else if (Objects.equals(ra, "爷爷")) {
+            ra = "祖父";
+        } else if (ra.contains("堂")) {
+            ra = "堂兄弟、堂姐妹";
+        }
+
+        return ra;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationCorrectExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationCorrectExcelListen.java
new file mode 100644
index 0000000..63703eb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationCorrectExcelListen.java
@@ -0,0 +1,672 @@
+package com.panzhihua.common.listen;
+
+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;
+
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+
+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.ComMngPopulationCorrectExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationCorrectMistakeExcelVO;
+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 cn.hutool.core.date.DateUtil;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @description: 社区矫正人员导入监听
+ * @author: txb
+ */
+@Slf4j
+public class ComMngPopulationCorrectExcelListen 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 ComMngPopulationCorrectExcelListen(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("000", "导入数据为空!");
+        }
+        ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
+        String key = Constants.CORRECT_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<ComMngPopulationCorrectExcelVO> voList = Lists.newArrayList();
+            // List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
+            ArrayList<ComMngPopulationCorrectMistakeExcelVO> mistakes = Lists.newArrayList();
+            for (Map<Integer, String> oneData : list) {
+                ComMngPopulationCorrectExcelVO vo = new ComMngPopulationCorrectExcelVO();
+                if (StringUtils.isNotEmpty(oneData.get(0))) {
+                    vo.setSerialNumber(oneData.get(0));
+                }
+                // 姓名和身份证都为空,为空户,无需操作,否则就解析年龄,性别,出生年月日
+                if (StringUtils.isEmpty(oneData.get(1))) {
+                    ComMngPopulationCorrectMistakeExcelVO mistake = new ComMngPopulationCorrectMistakeExcelVO();
+                    index++;
+                    setMistake(oneData, mistake);
+                    mistake.setMistake("名字不可为空,请填写姓名");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setName(oneData.get(1));
+                if (StringUtils.isEmpty(oneData.get(3))) {
+                    ComMngPopulationCorrectMistakeExcelVO mistake = new ComMngPopulationCorrectMistakeExcelVO();
+                    index++;
+                    setMistake(oneData, mistake);
+                    mistake.setMistake("身份证号不可为空,请填写身份证");
+                    mistakes.add(mistake);
+                    continue;
+                }
+
+                // 判断身份证号码位数
+                if (oneData.get(3).length() != 18) {
+                    ComMngPopulationCorrectMistakeExcelVO mistake = new ComMngPopulationCorrectMistakeExcelVO();
+                    index++;
+                    setMistake(oneData, mistake);
+                    mistake.setMistake("身份证号位数有误,请检查身份证号码是否正确");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setCardNo(oneData.get(3).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(4))) {
+                    vo.setPhone(oneData.get(4));
+                }
+                if (StringUtils.isEmpty(oneData.get(5))) {
+                    index++;
+                    ComMngPopulationCorrectMistakeExcelVO mistake = new ComMngPopulationCorrectMistakeExcelVO();
+                    setMistake(oneData, mistake);
+                    mistake.setMistake("街路巷不可为空");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setRoad(oneData.get(5));
+                if (StringUtils.isEmpty(oneData.get(6))) {
+                    index++;
+                    ComMngPopulationCorrectMistakeExcelVO mistake = new ComMngPopulationCorrectMistakeExcelVO();
+                    setMistake(oneData, mistake);
+                    mistake.setMistake("小区号不可为空");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setDoorNo(oneData.get(6).trim());
+                // if(StringUtils.isEmpty(oneData.get(7))){
+                // index++;
+                // ComMngPopulationCorrectMistakeExcelVO mistake = new ComMngPopulationCorrectMistakeExcelVO();
+                // setMistake(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++;
+                // ComMngPopulationCorrectMistakeExcelVO mistake = new ComMngPopulationCorrectMistakeExcelVO();
+                // setMistake(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++;
+                // ComMngPopulationCorrectMistakeExcelVO mistake = new ComMngPopulationCorrectMistakeExcelVO();
+                // setMistake(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 = PopulHouseUseEnum.getCodeByName(oneData.get(10));
+                    if (isOk.equals(-1)) {
+                        ComMngPopulationCorrectMistakeExcelVO mistake = new ComMngPopulationCorrectMistakeExcelVO();
+                        index++;
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("您填写的是否租住有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setIsRent(isOk);
+                } else {
+                    vo.setIsRent(PopulHouseUseEnum.getCodeByName("否"));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(11))) {
+                    Integer isOk = PopulHouseStatusEnum.getCodeByName(oneData.get(11).trim());
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationCorrectMistakeExcelVO mistake = new ComMngPopulationCorrectMistakeExcelVO();
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("您填写的房屋状态有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setHouseStatus(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(12))) {
+                    Integer isOk = PopulHousePurposeEnum.getCodeByName(oneData.get(12).trim());
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationCorrectMistakeExcelVO mistake = new ComMngPopulationCorrectMistakeExcelVO();
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("您填写的房屋用途有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setHousePurpose(PopulHousePurposeEnum.getCodeByName(oneData.get(12).trim()));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(13))) {
+                    Integer isOk = PopulHouseControlStatusEnum.getCodeByName(oneData.get(13));
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationCorrectMistakeExcelVO mistake = new ComMngPopulationCorrectMistakeExcelVO();
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("您填写的管控状态有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setControlStatus(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(14))) {
+                    Integer isOk = PopulOutOrLocalEnum.getCodeByName(oneData.get(14));
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationCorrectMistakeExcelVO mistake = new ComMngPopulationCorrectMistakeExcelVO();
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("您填写的本地/外地有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setOutOrLocal(isOk);
+                } else {
+                    vo.setOutOrLocal(PopulOutOrLocalEnum.getCodeByName("本地"));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(15))) {
+                    vo.setCensusRegister(oneData.get(15).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(16))) {
+//                    Integer isOk = PopulCultureLevelEnum.getCodeByName(oneData.get(16));
+//                    if (isOk.equals(-1)) {
+//                        index++;
+//                        ComMngPopulationCorrectMistakeExcelVO mistake = new ComMngPopulationCorrectMistakeExcelVO();
+//                        setMistake(oneData, mistake);
+//                        mistake.setMistake("您填写的学历有误");
+//                        mistakes.add(mistake);
+//                        continue;
+//                    }
+                    vo.setCultureLevel(oneData.get(16).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(17))) {
+                    vo.setCorrectPersonCode(oneData.get(17).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(18))) {
+                    vo.setOriginalCustodyplace(oneData.get(18).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(19))) {
+                    vo.setCorrectType(oneData.get(19).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(20))) {
+                    vo.setCaseType(oneData.get(20).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(21))) {
+                    vo.setSpecificCharge(oneData.get(21).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(22))) {
+                    vo.setOriginalTerm(oneData.get(22).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(23))) {
+                    vo.setOriginalTermBegin(DateUtil.parse(oneData.get(23).trim(), parsePatterns));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(24))) {
+                    vo.setOriginalTermEnd(DateUtil.parse(oneData.get(24).trim(), parsePatterns));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(25))) {
+                    vo.setCorrectBegin(DateUtil.parse(oneData.get(25).trim(), parsePatterns));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(26))) {
+                    vo.setCorrectEnd(DateUtil.parse(oneData.get(26).trim(), parsePatterns));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(27))) {
+                    vo.setReceiveMethod(oneData.get(27).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(27))) {
+                    vo.setReceiveMethod(oneData.get(27).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(28))) {
+                    Integer isOk = PopulHouseUseEnum.getCodeByName(oneData.get(28));
+                    if (isOk.equals(-1)) {
+                        ComMngPopulationCorrectMistakeExcelVO mistake = new ComMngPopulationCorrectMistakeExcelVO();
+                        index++;
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("您填写的是否累惯犯有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setIsRecidivist(isOk);
+                } else {
+                    vo.setIsRecidivist(PopulHouseUseEnum.getCodeByName("否"));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(29))) {
+                    vo.setFourHistory(oneData.get(29).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(30))) {
+                    vo.setThreeInvovle(oneData.get(30).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(31))) {
+                    Integer isOk = PopulHouseUseEnum.getCodeByName(oneData.get(31));
+                    if (isOk.equals(-1)) {
+                        ComMngPopulationCorrectMistakeExcelVO mistake = new ComMngPopulationCorrectMistakeExcelVO();
+                        index++;
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("您填写的是否建立矫正小组有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setIsCorrectGroup(isOk);
+                } else {
+                    vo.setIsCorrectGroup(PopulHouseUseEnum.getCodeByName("否"));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(32))) {
+                    vo.setCorrectGroupConstitute(oneData.get(32).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(33))) {
+                    vo.setCorrectRelieveType(oneData.get(33).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(34))) {
+                    Integer isOk = PopulHouseUseEnum.getCodeByName(oneData.get(34));
+                    if (isOk.equals(-1)) {
+                        ComMngPopulationCorrectMistakeExcelVO mistake = new ComMngPopulationCorrectMistakeExcelVO();
+                        index++;
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("您填写的是否有脱管有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setIsOutControl(isOk);
+                } else {
+                    vo.setIsOutControl(PopulHouseUseEnum.getCodeByName("否"));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(35))) {
+                    vo.setOutControlReason(oneData.get(35).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(36))) {
+                    vo.setOutControlCorrect(oneData.get(36).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(37))) {
+                    vo.setInspectOutControl(oneData.get(37).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(38))) {
+                    Integer isOk = PopulHouseUseEnum.getCodeByName(oneData.get(38));
+                    if (isOk.equals(-1)) {
+                        ComMngPopulationCorrectMistakeExcelVO mistake = new ComMngPopulationCorrectMistakeExcelVO();
+                        index++;
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("您填写的是否有漏管有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setIsMissControl(isOk);
+                } else {
+                    vo.setIsMissControl(PopulHouseUseEnum.getCodeByName("否"));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(39))) {
+                    vo.setMissControlReason(oneData.get(39).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(40))) {
+                    vo.setMissControlCorrect(oneData.get(40).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(41))) {
+                    vo.setInspectMissControl(oneData.get(41).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(42))) {
+                    vo.setRewardAndPunishiment(oneData.get(42).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(43))) {
+                    Integer isOk = PopulHouseUseEnum.getCodeByName(oneData.get(43));
+                    if (isOk.equals(-1)) {
+                        ComMngPopulationCorrectMistakeExcelVO mistake = new ComMngPopulationCorrectMistakeExcelVO();
+                        index++;
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("您填写的是否重新犯罪有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setIsAgainCrime(isOk);
+                } else {
+                    vo.setIsAgainCrime(PopulHouseUseEnum.getCodeByName("否"));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(44))) {
+                    vo.setAgainCrimeName(oneData.get(44).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(45))) {
+                    vo.setPubishmentChange(oneData.get(45).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(46))) {
+                    vo.setRemark(oneData.get(46).trim());
+                }
+                vo.getUserTagStr().add("社区矫正");
+                for (int i = 47; 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<ComMngPopulationCorrectExcelVO> newVoList =
+                voList.stream().filter(ListUtils.distinctByKey(ComMngPopulationCorrectExcelVO::getDistinctPass))
+                    .collect(Collectors.toList());
+            log.info("开始进入业务层处理逻辑");
+            R r = communityService.listSavePopulationCorrectExcelVO(newVoList, communityId, userId);
+            log.info("业务层处理逻辑完成");
+            if (!R.isOk(r)) {
+                log.info("业务层处理成功");
+                List<ComMngPopulationCorrectMistakeExcelVO> list = JSONArray
+                    .parseArray(JSONArray.toJSONString(r.getData()), ComMngPopulationCorrectMistakeExcelVO.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", "NumberFormatException");
+        }
+    }
+
+    private void setMistake(Map<Integer, String> map, ComMngPopulationCorrectMistakeExcelVO vo) {
+        vo.setSerialNumber(map.get(0));
+        vo.setName(map.get(1));
+        vo.setCardNo(map.get(3));
+        vo.setNation(map.get(2));
+        vo.setPhone(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.setIsRent(map.get(10));
+        vo.setHouseStatus(map.get(11));
+        vo.setHousePurpose(map.get(12));
+        vo.setControlStatus(map.get(13));
+        vo.setOutOrLocal(map.get(14));
+        vo.setCensusRegister(map.get(15));
+        vo.setCultureLevel(map.get(16));
+        vo.setCorrectPersonCode(map.get(17));
+        vo.setOriginalCustodyplace(map.get(18));
+        vo.setCorrectType(map.get(19));
+        vo.setCaseType(map.get(20));
+        vo.setSpecificCharge(map.get(21));
+        vo.setOriginalTerm(map.get(22));
+        vo.setOriginalTermBegin(map.get(23));
+        vo.setOriginalTermEnd(map.get(24));
+        vo.setCorrectBegin(map.get(25));
+        vo.setCorrectEnd(map.get(26));
+        vo.setReceiveMethod(map.get(27));
+        vo.setIsRecidivist(map.get(28));
+        vo.setFourHistory(map.get(29));
+        vo.setThreeInvovle(map.get(30));
+        vo.setIsCorrectGroup(map.get(31));
+        vo.setCorrectGroupConstitute(map.get(32));
+        vo.setCorrectRelieveType(map.get(33));
+        vo.setIsOutControl(map.get(34));
+        vo.setOutControlReason(map.get(35));
+        vo.setOutControlCorrect(map.get(35));
+        vo.setInspectOutControl(map.get(37));
+        vo.setIsMissControl(map.get(38));
+        vo.setMissControlReason(map.get(39));
+        vo.setMissControlCorrect(map.get(40));
+        vo.setInspectMissControl(map.get(41));
+        vo.setRewardAndPunishiment(map.get(42));
+        vo.setIsAgainCrime(map.get(43));
+        vo.setAgainCrimeName(map.get(44));
+        vo.setPubishmentChange(map.get(45));
+        vo.setRemark(map.get(46));
+    }
+
+    private String convertMarriage(String ma) {
+
+        if (Objects.equals("已", ma) || Objects.equals("一", ma)) {
+            ma = "已婚";
+        } else if (Objects.equals("未", ma) || Objects.equals("未婚婚", ma)) {
+            ma = "未婚";
+        } else if (Objects.equals("初", ma)) {
+            ma = "初婚";
+        } else if (Objects.equals("再", ma)) {
+            ma = "再婚";
+        } else if (Objects.equals("复", ma)) {
+            ma = "复婚";
+        } else if (Objects.equals("丧", ma) || Objects.equals("丧偶偶", ma)) {
+            ma = "丧偶";
+        } else if (Objects.equals("离", ma) || Objects.equals("离异", ma) || Objects.equals("离异婚", ma)) {
+            ma = "离婚";
+        } else if (Objects.equals("分", ma)) {
+            ma = "分居";
+        }
+
+        return ma;
+    }
+
+    private String convertRelation(String ra) {
+        if (ra.contains("户主")) {
+            ra = "户主";
+        } else if (Objects.equals(ra, "女儿")) {
+            ra = "女";
+        } else if (Objects.equals(ra, "儿子") || Objects.equals(ra, "儿")) {
+            ra = "子";
+        } else if (Objects.equals(ra, "大女")) {
+            ra = "长女";
+        } else if (Objects.equals(ra, "二女") || Objects.equals(ra, "此女")) {
+            ra = "次女";
+        } else if (Objects.equals(ra, "二子")) {
+            ra = "次子";
+        } else if (Objects.equals(ra, "长男") || ra.contains("长子")) {
+            ra = "长子";
+        } else if (Objects.equals(ra, "非亲属") || ra.contains("女友") || ra.contains("女朋友") || ra.contains("男友")
+            || ra.contains("男朋友")) {
+            ra = "其他";
+        } else if (Objects.equals(ra, "姐")) {
+            ra = "姐姐";
+        } else if (Objects.equals(ra, "户主")) {
+            ra = "本人";
+        } else if (Objects.equals(ra, "妻子") || Objects.equals(ra, "媳妇")) {
+            ra = "妻";
+        } else if (Objects.equals(ra, "哥") || Objects.equals(ra, "哥哥")) {
+            ra = "兄";
+        } else if (Objects.equals(ra, "丈夫")) {
+            ra = "夫";
+        } else if (Objects.equals(ra, "丈母娘")) {
+            ra = "岳母";
+        } else if (Objects.equals(ra, "继子") || Objects.equals(ra, "养子")) {
+            ra = "养子或继子";
+        } else if (Objects.equals(ra, "继女") || Objects.equals(ra, "养女")) {
+            ra = "养女或继女";
+        } else if (ra.contains("儿媳") || ra.contains("长媳")) {
+            ra = "儿媳";
+        } else if (Objects.equals(ra, "三姨") || Objects.equals(ra, "姨姨")) {
+            ra = "姨母";
+        } else if (Objects.equals(ra, "二外孙女")) {
+            ra = "外孙女";
+        } else if (Objects.equals(ra, "外孙")) {
+            ra = "外孙子";
+        } else if (Objects.equals(ra, "侄儿")) {
+            ra = "侄子";
+        } else if (ra.contains("表")) {
+            ra = "表兄弟、表姐妹";
+        } else if (Objects.equals(ra, "继父") || Objects.equals(ra, "养父")) {
+            ra = "继父或养父";
+        } else if (Objects.equals(ra, "父")) {
+            ra = "父亲";
+        } else if (Objects.equals(ra, "弟弟")) {
+            ra = "弟";
+        } else if (Objects.equals(ra, "孙")) {
+            ra = "孙子";
+        } else if (Objects.equals(ra, "孙媳妇") || Objects.equals(ra, "外孙媳妇")) {
+            ra = "孙媳妇或外孙媳妇";
+        } else if (Objects.equals(ra, "妹")) {
+            ra = "妹妹";
+        } else if (Objects.equals(ra, "祖父母")) {
+            ra = "祖父母或外祖父母";
+        } else if (Objects.equals(ra, "姐妹") || Objects.equals(ra, "兄弟")) {
+            ra = "兄弟姐妹";
+        } else if (Objects.equals(ra, "其他姐妹") || Objects.equals(ra, "其他兄弟")) {
+            ra = "其他兄弟姐妹";
+        } else if (Objects.equals(ra, "奶奶")) {
+            ra = "祖母";
+        } else if (Objects.equals(ra, "爷爷")) {
+            ra = "祖父";
+        } else if (Objects.equals(ra, "爷爷")) {
+            ra = "祖父";
+        } else if (ra.contains("堂")) {
+            ra = "堂兄弟、堂姐妹";
+        }
+
+        return ra;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationCultExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationCultExcelListen.java
new file mode 100644
index 0000000..58dc1ad
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationCultExcelListen.java
@@ -0,0 +1,552 @@
+package com.panzhihua.common.listen;
+
+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;
+
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+
+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.ComMngPopulationCultExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationCultMistakeExcelVO;
+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 cn.hutool.core.date.DateUtil;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @description: 邪教人员导入监听
+ * @author: txb
+ */
+@Slf4j
+public class ComMngPopulationCultExcelListen 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 ComMngPopulationCultExcelListen(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("000", "导入数据为空!");
+        }
+        ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
+        String key = Constants.CULT_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<ComMngPopulationCultExcelVO> voList = Lists.newArrayList();
+            // List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
+            ArrayList<ComMngPopulationCultMistakeExcelVO> mistakes = Lists.newArrayList();
+            for (Map<Integer, String> oneData : list) {
+                ComMngPopulationCultExcelVO vo = new ComMngPopulationCultExcelVO();
+                if (StringUtils.isNotEmpty(oneData.get(0))) {
+                    vo.setSerialNumber(oneData.get(0));
+                }
+                // 姓名和身份证都为空,为空户,无需操作,否则就解析年龄,性别,出生年月日
+                if (StringUtils.isEmpty(oneData.get(1))) {
+                    ComMngPopulationCultMistakeExcelVO mistake = new ComMngPopulationCultMistakeExcelVO();
+                    index++;
+                    setMistake(oneData, mistake);
+                    mistake.setMistake("名字不可为空,请填写姓名");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setName(oneData.get(1));
+                if (StringUtils.isEmpty(oneData.get(2))) {
+                    ComMngPopulationCultMistakeExcelVO mistake = new ComMngPopulationCultMistakeExcelVO();
+                    index++;
+                    setMistake(oneData, mistake);
+                    mistake.setMistake("身份证号不可为空,请填写身份证");
+                    mistakes.add(mistake);
+                    continue;
+                }
+
+                // 判断身份证号码位数
+                if (oneData.get(2).length() != 18) {
+                    ComMngPopulationCultMistakeExcelVO mistake = new ComMngPopulationCultMistakeExcelVO();
+                    index++;
+                    setMistake(oneData, mistake);
+                    mistake.setMistake("身份证号位数有误,请检查身份证号码是否正确");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setCardNo(oneData.get(2).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(3))) {
+                    vo.setNation(oneData.get(3));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(4))) {
+                    vo.setProfession(oneData.get(4));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(5))) {
+                    Integer isOk = PopulMarriageEnum.getCodeByName(oneData.get(5));
+                    if (isOk.equals(-1)) {
+                        ComMngPopulationCultMistakeExcelVO mistake = new ComMngPopulationCultMistakeExcelVO();
+                        index++;
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("您填写的婚姻状况有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setMarriage(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(6))) {
+                    Integer isOk = PopulCultureLevelEnum.getCodeByName(oneData.get(6));
+                    if (isOk.equals(-1)) {
+                        ComMngPopulationCultMistakeExcelVO mistake = new ComMngPopulationCultMistakeExcelVO();
+                        index++;
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("您填写的文化程度有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setCultureLevel(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(7))) {
+                    Integer isOk = PopulPoliticalOutlookEnum.getCodeByName(oneData.get(7));
+                    if (isOk.equals(-1)) {
+                        ComMngPopulationCultMistakeExcelVO mistake = new ComMngPopulationCultMistakeExcelVO();
+                        index++;
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("您填写的政治面貌有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setPoliticalOutlook(isOk);
+                }
+                if (StringUtils.isEmpty(oneData.get(8))) {
+                    index++;
+                    ComMngPopulationCultMistakeExcelVO mistake = new ComMngPopulationCultMistakeExcelVO();
+                    setMistake(oneData, mistake);
+                    mistake.setMistake("街路巷不可为空");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setRoad(oneData.get(8));
+                if (StringUtils.isEmpty(oneData.get(9))) {
+                    index++;
+                    ComMngPopulationCultMistakeExcelVO mistake = new ComMngPopulationCultMistakeExcelVO();
+                    setMistake(oneData, mistake);
+                    mistake.setMistake("小区号不可为空");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setDoorNo(oneData.get(9).trim());
+                // if(StringUtils.isEmpty(oneData.get(10))){
+                // index++;
+                // ComMngPopulationCultMistakeExcelVO mistake = new ComMngPopulationCultMistakeExcelVO();
+                // setMistake(oneData, mistake);
+                // mistake.setMistake("楼排号不可为空");
+                // mistakes.add(mistake);
+                // continue;
+                // }
+                if (StringUtils.isNotEmpty(oneData.get(10))) {
+                    vo.setFloor(oneData.get(10).trim());
+                }
+                // if(StringUtils.isEmpty(oneData.get(11))){
+                // index++;
+                // ComMngPopulationCultMistakeExcelVO mistake = new ComMngPopulationCultMistakeExcelVO();
+                // setMistake(oneData, mistake);
+                // mistake.setMistake("单元号不可为空");
+                // mistakes.add(mistake);
+                // continue;
+                // }
+                if (StringUtils.isNotEmpty(oneData.get(11))) {
+                    vo.setUnitNo(oneData.get(11).trim());
+                }
+                // if(StringUtils.isEmpty(oneData.get(12))){
+                // index++;
+                // ComMngPopulationCultMistakeExcelVO mistake = new ComMngPopulationCultMistakeExcelVO();
+                // setMistake(oneData, mistake);
+                // mistake.setMistake("户室不可为空");
+                // mistakes.add(mistake);
+                // continue;
+                // }
+                if (StringUtils.isNotEmpty(oneData.get(12))) {
+                    vo.setHouseNo(oneData.get(12).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(13))) {
+                    Integer isOk = PopulHouseUseEnum.getCodeByName(oneData.get(13));
+                    if (isOk.equals(-1)) {
+                        ComMngPopulationCultMistakeExcelVO mistake = new ComMngPopulationCultMistakeExcelVO();
+                        index++;
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("您填写的是否租住有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setIsRent(isOk);
+                } else {
+                    vo.setIsRent(PopulHouseUseEnum.getCodeByName("否"));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(14))) {
+                    Integer isOk = PopulHouseStatusEnum.getCodeByName(oneData.get(14).trim());
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationCultMistakeExcelVO mistake = new ComMngPopulationCultMistakeExcelVO();
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("您填写的房屋状态有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setHouseStatus(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(15))) {
+                    Integer isOk = PopulHousePurposeEnum.getCodeByName(oneData.get(15).trim());
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationCultMistakeExcelVO mistake = new ComMngPopulationCultMistakeExcelVO();
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("您填写的房屋用途有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setHousePurpose(PopulHousePurposeEnum.getCodeByName(oneData.get(15).trim()));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(11))) {
+                    Integer isOk = PopulHouseControlStatusEnum.getCodeByName(oneData.get(16));
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationCultMistakeExcelVO mistake = new ComMngPopulationCultMistakeExcelVO();
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("您填写的管控状态有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setControlStatus(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(17))) {
+                    Integer isOk = PopulOutOrLocalEnum.getCodeByName(oneData.get(17));
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationCultMistakeExcelVO mistake = new ComMngPopulationCultMistakeExcelVO();
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("您填写的本地/外地有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setOutOrLocal(isOk);
+                } else {
+                    vo.setOutOrLocal(PopulOutOrLocalEnum.getCodeByName("本地"));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(18))) {
+                    vo.setCensusRegister(oneData.get(18).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(19))) {
+                    vo.setCultName(oneData.get(19).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(20))) {
+                    vo.setBasicSituation(oneData.get(20).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(21))) {
+                    vo.setJoinCultDate(DateUtil.parse(oneData.get(21).trim(), parsePatterns));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(22))) {
+                    Integer isOk = PopulHouseUseEnum.getCodeByName(oneData.get(22));
+                    if (isOk.equals(-1)) {
+                        ComMngPopulationCultMistakeExcelVO mistake = new ComMngPopulationCultMistakeExcelVO();
+                        index++;
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("您填写的是否对外宣传有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setIsExternalPublicity(isOk);
+                } else {
+                    vo.setIsExternalPublicity(PopulHouseUseEnum.getCodeByName("否"));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(23))) {
+                    vo.setRemark(oneData.get(23).trim());
+                }
+                vo.getUserTagStr().add("邪教人员");
+                for (int i = 24; 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<ComMngPopulationCultExcelVO> newVoList =
+                voList.stream().filter(ListUtils.distinctByKey(ComMngPopulationCultExcelVO::getDistinctPass))
+                    .collect(Collectors.toList());
+            log.info("开始进入业务层处理逻辑");
+            R r = communityService.listSavePopulationCultExcelVO(newVoList, communityId, userId);
+            log.info("业务层处理逻辑完成");
+            if (!R.isOk(r)) {
+                log.info("业务层处理成功");
+                List<ComMngPopulationCultMistakeExcelVO> list =
+                    JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComMngPopulationCultMistakeExcelVO.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", "NumberFormatException");
+        }
+    }
+
+    private void setMistake(Map<Integer, String> map, ComMngPopulationCultMistakeExcelVO vo) {
+        vo.setSerialNumber(map.get(0));
+        vo.setName(map.get(1));
+        vo.setCardNo(map.get(2));
+        vo.setNation(map.get(3));
+        vo.setProfession(map.get(4));
+        vo.setMarriage(map.get(5));
+        vo.setCultureLevel(map.get(6));
+        vo.setPoliticalOutlook(map.get(7));
+        vo.setRoad(map.get(8));
+        vo.setDoorNo(map.get(9));
+        vo.setFloor(map.get(10));
+        vo.setUnitNo(map.get(11));
+        vo.setHouseNo(map.get(12));
+        vo.setIsRent(map.get(13));
+        vo.setHouseStatus(map.get(14));
+        vo.setHousePurpose(map.get(15));
+        vo.setControlStatus(map.get(16));
+        vo.setOutOrLocal(map.get(17));
+        vo.setCensusRegister(map.get(18));
+        vo.setCultName(map.get(19));
+        vo.setBasicSituation(map.get(20));
+        vo.setJoinCultDate(map.get(21));
+        vo.setIsExternalPublicity(map.get(22));
+        vo.setRemark(map.get(23));
+    }
+
+    private String convertMarriage(String ma) {
+
+        if (Objects.equals("已", ma) || Objects.equals("一", ma)) {
+            ma = "已婚";
+        } else if (Objects.equals("未", ma) || Objects.equals("未婚婚", ma)) {
+            ma = "未婚";
+        } else if (Objects.equals("初", ma)) {
+            ma = "初婚";
+        } else if (Objects.equals("再", ma)) {
+            ma = "再婚";
+        } else if (Objects.equals("复", ma)) {
+            ma = "复婚";
+        } else if (Objects.equals("丧", ma) || Objects.equals("丧偶偶", ma)) {
+            ma = "丧偶";
+        } else if (Objects.equals("离", ma) || Objects.equals("离异", ma) || Objects.equals("离异婚", ma)) {
+            ma = "离婚";
+        } else if (Objects.equals("分", ma)) {
+            ma = "分居";
+        }
+
+        return ma;
+    }
+
+    private String convertRelation(String ra) {
+        if (ra.contains("户主")) {
+            ra = "户主";
+        } else if (Objects.equals(ra, "女儿")) {
+            ra = "女";
+        } else if (Objects.equals(ra, "儿子") || Objects.equals(ra, "儿")) {
+            ra = "子";
+        } else if (Objects.equals(ra, "大女")) {
+            ra = "长女";
+        } else if (Objects.equals(ra, "二女") || Objects.equals(ra, "此女")) {
+            ra = "次女";
+        } else if (Objects.equals(ra, "二子")) {
+            ra = "次子";
+        } else if (Objects.equals(ra, "长男") || ra.contains("长子")) {
+            ra = "长子";
+        } else if (Objects.equals(ra, "非亲属") || ra.contains("女友") || ra.contains("女朋友") || ra.contains("男友")
+            || ra.contains("男朋友")) {
+            ra = "其他";
+        } else if (Objects.equals(ra, "姐")) {
+            ra = "姐姐";
+        } else if (Objects.equals(ra, "户主")) {
+            ra = "本人";
+        } else if (Objects.equals(ra, "妻子") || Objects.equals(ra, "媳妇")) {
+            ra = "妻";
+        } else if (Objects.equals(ra, "哥") || Objects.equals(ra, "哥哥")) {
+            ra = "兄";
+        } else if (Objects.equals(ra, "丈夫")) {
+            ra = "夫";
+        } else if (Objects.equals(ra, "丈母娘")) {
+            ra = "岳母";
+        } else if (Objects.equals(ra, "继子") || Objects.equals(ra, "养子")) {
+            ra = "养子或继子";
+        } else if (Objects.equals(ra, "继女") || Objects.equals(ra, "养女")) {
+            ra = "养女或继女";
+        } else if (ra.contains("儿媳") || ra.contains("长媳")) {
+            ra = "儿媳";
+        } else if (Objects.equals(ra, "三姨") || Objects.equals(ra, "姨姨")) {
+            ra = "姨母";
+        } else if (Objects.equals(ra, "二外孙女")) {
+            ra = "外孙女";
+        } else if (Objects.equals(ra, "外孙")) {
+            ra = "外孙子";
+        } else if (Objects.equals(ra, "侄儿")) {
+            ra = "侄子";
+        } else if (ra.contains("表")) {
+            ra = "表兄弟、表姐妹";
+        } else if (Objects.equals(ra, "继父") || Objects.equals(ra, "养父")) {
+            ra = "继父或养父";
+        } else if (Objects.equals(ra, "父")) {
+            ra = "父亲";
+        } else if (Objects.equals(ra, "弟弟")) {
+            ra = "弟";
+        } else if (Objects.equals(ra, "孙")) {
+            ra = "孙子";
+        } else if (Objects.equals(ra, "孙媳妇") || Objects.equals(ra, "外孙媳妇")) {
+            ra = "孙媳妇或外孙媳妇";
+        } else if (Objects.equals(ra, "妹")) {
+            ra = "妹妹";
+        } else if (Objects.equals(ra, "祖父母")) {
+            ra = "祖父母或外祖父母";
+        } else if (Objects.equals(ra, "姐妹") || Objects.equals(ra, "兄弟")) {
+            ra = "兄弟姐妹";
+        } else if (Objects.equals(ra, "其他姐妹") || Objects.equals(ra, "其他兄弟")) {
+            ra = "其他兄弟姐妹";
+        } else if (Objects.equals(ra, "奶奶")) {
+            ra = "祖母";
+        } else if (Objects.equals(ra, "爷爷")) {
+            ra = "祖父";
+        } else if (Objects.equals(ra, "爷爷")) {
+            ra = "祖父";
+        } else if (ra.contains("堂")) {
+            ra = "堂兄弟、堂姐妹";
+        }
+
+        return ra;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationDisabilityExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationDisabilityExcelListen.java
new file mode 100644
index 0000000..ad76e4f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationDisabilityExcelListen.java
@@ -0,0 +1,514 @@
+package com.panzhihua.common.listen;
+
+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;
+
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+
+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.ComMngPopulationDisabilityExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationDisabilityMistakeExcelVO;
+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;
+
+/**
+ * @description: 残疾人导入监听
+ * @author: txb
+ */
+@Slf4j
+public class ComMngPopulationDisabilityExcelListen 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 ComMngPopulationDisabilityExcelListen(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("000", "导入数据为空!");
+        }
+        ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
+        String Disability = Constants.DISABILITY_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 {
+            ArrayList<ComMngPopulationDisabilityExcelVO> voList = Lists.newArrayList();
+            // List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
+            ArrayList<ComMngPopulationDisabilityMistakeExcelVO> mistakes = Lists.newArrayList();
+            for (Map<Integer, String> oneData : list) {
+                ComMngPopulationDisabilityExcelVO vo = new ComMngPopulationDisabilityExcelVO();
+                if (StringUtils.isNotEmpty(oneData.get(0))) {
+                    vo.setSerialNumber(oneData.get(0));
+                }
+                // 姓名和身份证都为空,为空户,无需操作,否则就解析年龄,性别,出生年月日
+                if (StringUtils.isEmpty(oneData.get(1))) {
+                    ComMngPopulationDisabilityMistakeExcelVO mistake = new ComMngPopulationDisabilityMistakeExcelVO();
+                    index++;
+                    setDisabilityMistake(oneData, mistake);
+                    mistake.setMistake("名字不可为空,请填写姓名");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setName(oneData.get(1));
+                if (StringUtils.isEmpty(oneData.get(2))) {
+                    ComMngPopulationDisabilityMistakeExcelVO mistake = new ComMngPopulationDisabilityMistakeExcelVO();
+                    index++;
+                    setDisabilityMistake(oneData, mistake);
+                    mistake.setMistake("身份证号不可为空,请填写身份证");
+                    mistakes.add(mistake);
+                    continue;
+                }
+
+                // 判断身份证号码位数
+                if (oneData.get(2).length() != 18) {
+                    ComMngPopulationDisabilityMistakeExcelVO mistake = new ComMngPopulationDisabilityMistakeExcelVO();
+                    index++;
+                    setDisabilityMistake(oneData, mistake);
+                    mistake.setMistake("身份证号位数有误,请检查身份证号码是否正确");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setCardNo(oneData.get(2).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(3))) {
+                    vo.setCertificateSituation(oneData.get(3));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(4))) {
+                    Integer isOk = PopulCultureLevelEnum.getCodeByName(oneData.get(4));
+                    if (isOk.equals(-1)) {
+                        ComMngPopulationDisabilityMistakeExcelVO mistake =
+                            new ComMngPopulationDisabilityMistakeExcelVO();
+                        index++;
+                        setDisabilityMistake(oneData, mistake);
+                        mistake.setMistake("您填写的文化程度有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setCultureLevel(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(5))) {
+                    vo.setNation(oneData.get(5));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(6))) {
+                    vo.setDisType(oneData.get(6));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(7))) {
+                    vo.setDisLevel(oneData.get(7));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(8))) {
+                    vo.setPhone(oneData.get(8));
+                }
+                if (StringUtils.isEmpty(oneData.get(9))) {
+                    index++;
+                    ComMngPopulationDisabilityMistakeExcelVO mistake = new ComMngPopulationDisabilityMistakeExcelVO();
+                    setDisabilityMistake(oneData, mistake);
+                    mistake.setMistake("街路巷不可为空");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setRoad(oneData.get(9));
+                if (StringUtils.isEmpty(oneData.get(10))) {
+                    index++;
+                    ComMngPopulationDisabilityMistakeExcelVO mistake = new ComMngPopulationDisabilityMistakeExcelVO();
+                    setDisabilityMistake(oneData, mistake);
+                    mistake.setMistake("小区号不可为空");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setDoorNo(oneData.get(10).trim());
+                // if(StringUtils.isEmpty(oneData.get(11))){
+                // index++;
+                // ComMngPopulationDisabilityMistakeExcelVO mistake = new ComMngPopulationDisabilityMistakeExcelVO();
+                // setDisabilityMistake(oneData, mistake);
+                // mistake.setMistake("楼排号不可为空");
+                // mistakes.add(mistake);
+                // continue;
+                // }
+                if (StringUtils.isNotEmpty(oneData.get(11))) {
+                    vo.setFloor(oneData.get(11).trim());
+                }
+                // if(StringUtils.isEmpty(oneData.get(12))){
+                // index++;
+                // ComMngPopulationDisabilityMistakeExcelVO mistake = new ComMngPopulationDisabilityMistakeExcelVO();
+                // setDisabilityMistake(oneData, mistake);
+                // mistake.setMistake("单元号不可为空");
+                // mistakes.add(mistake);
+                // continue;
+                // }
+                if (StringUtils.isNotEmpty(oneData.get(12))) {
+                    vo.setUnitNo(oneData.get(12).trim());
+                }
+                // if(StringUtils.isEmpty(oneData.get(13))){
+                // index++;
+                // ComMngPopulationDisabilityMistakeExcelVO mistake = new ComMngPopulationDisabilityMistakeExcelVO();
+                // setDisabilityMistake(oneData, mistake);
+                // mistake.setMistake("户室不可为空");
+                // mistakes.add(mistake);
+                // continue;
+                // }
+                if (StringUtils.isNotEmpty(oneData.get(13))) {
+                    vo.setHouseNo(oneData.get(13).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(14))) {
+                    Integer isOk = PopulHouseUseEnum.getCodeByName(oneData.get(14));
+                    if (isOk.equals(-1)) {
+                        ComMngPopulationDisabilityMistakeExcelVO mistake =
+                            new ComMngPopulationDisabilityMistakeExcelVO();
+                        index++;
+                        setDisabilityMistake(oneData, mistake);
+                        mistake.setMistake("您填写的是否租住有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setIsRent(isOk);
+                } else {
+                    vo.setIsRent(PopulHouseUseEnum.getCodeByName("否"));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(15))) {
+                    Integer isOk = PopulHouseStatusEnum.getCodeByName(oneData.get(15).trim());
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationDisabilityMistakeExcelVO mistake =
+                            new ComMngPopulationDisabilityMistakeExcelVO();
+                        setDisabilityMistake(oneData, mistake);
+                        mistake.setMistake("您填写的房屋状态有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setHouseStatus(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(16))) {
+                    Integer isOk = PopulHousePurposeEnum.getCodeByName(oneData.get(16).trim());
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationDisabilityMistakeExcelVO mistake =
+                            new ComMngPopulationDisabilityMistakeExcelVO();
+                        setDisabilityMistake(oneData, mistake);
+                        mistake.setMistake("您填写的房屋用途有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setHousePurpose(PopulHousePurposeEnum.getCodeByName(oneData.get(16).trim()));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(17))) {
+                    Integer isOk = PopulHouseControlStatusEnum.getCodeByName(oneData.get(17));
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationDisabilityMistakeExcelVO mistake =
+                            new ComMngPopulationDisabilityMistakeExcelVO();
+                        setDisabilityMistake(oneData, mistake);
+                        mistake.setMistake("您填写的管控状态有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setControlStatus(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(18))) {
+                    Integer isOk = PopulOutOrLocalEnum.getCodeByName(oneData.get(18));
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationDisabilityMistakeExcelVO mistake =
+                            new ComMngPopulationDisabilityMistakeExcelVO();
+                        setDisabilityMistake(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))) {
+                    vo.setRemark(oneData.get(20).trim());
+                }
+                vo.getUserTagStr().add("残疾人");
+                for (int i = 21; 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<ComMngPopulationDisabilityExcelVO> newVoList =
+                voList.stream().filter(ListUtils.distinctByKey(ComMngPopulationDisabilityExcelVO::getDistinctPass))
+                    .collect(Collectors.toList());
+            log.info("开始进入业务层处理逻辑");
+            R r = communityService.listSavePopulationDisabilityExcelVO(newVoList, communityId, userId);
+            log.info("业务层处理逻辑完成");
+            if (!R.isOk(r)) {
+                log.info("业务层处理成功");
+                List<ComMngPopulationDisabilityMistakeExcelVO> list = JSONArray
+                    .parseArray(JSONArray.toJSONString(r.getData()), ComMngPopulationDisabilityMistakeExcelVO.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(Disability, JSONArray.toJSONString(mistakes), 1, TimeUnit.HOURS);
+                log.info("将错误数据存入redis中成功");
+                throw new ServiceException("500", Disability);
+            } else {
+                log.info("业务层处理逻辑失败");
+                if (!mistakes.isEmpty()) {
+                    log.info("业务层处理逻辑失败,将错误数据缓存到redis中");
+                    valueOperations.set(Disability, JSONArray.toJSONString(mistakes), 1, TimeUnit.HOURS);
+                    log.info("业务层处理逻辑失败,将错误数据缓存到redis中成功");
+                    throw new ServiceException("500", Disability);
+                }
+            }
+        } 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", "NumberFormatException");
+        }
+    }
+
+    private void setDisabilityMistake(Map<Integer, String> map, ComMngPopulationDisabilityMistakeExcelVO vo) {
+        vo.setSerialNumber(map.get(0));
+        vo.setName(map.get(1));
+        vo.setCardNo(map.get(2));
+        vo.setCertificateSituation(map.get(3));
+        vo.setCultureLevel(map.get(4));
+        vo.setNation(map.get(5));
+        vo.setDisType(map.get(6));
+        vo.setDisLevel(map.get(7));
+        vo.setPhone(map.get(8));
+        vo.setRoad(map.get(9));
+        vo.setDoorNo(map.get(10));
+        vo.setFloor(map.get(11));
+        vo.setUnitNo(map.get(12));
+        vo.setHouseNo(map.get(13));
+        vo.setIsRent(map.get(14));
+        vo.setHouseStatus(map.get(15));
+        vo.setHousePurpose(map.get(16));
+        vo.setControlStatus(map.get(17));
+        vo.setOutOrLocal(map.get(18));
+        vo.setCensusRegister(map.get(19));
+        vo.setRemark(map.get(20));
+    }
+
+    private String convertMarriage(String ma) {
+
+        if (Objects.equals("已", ma) || Objects.equals("一", ma)) {
+            ma = "已婚";
+        } else if (Objects.equals("未", ma) || Objects.equals("未婚婚", ma)) {
+            ma = "未婚";
+        } else if (Objects.equals("初", ma)) {
+            ma = "初婚";
+        } else if (Objects.equals("再", ma)) {
+            ma = "再婚";
+        } else if (Objects.equals("复", ma)) {
+            ma = "复婚";
+        } else if (Objects.equals("丧", ma) || Objects.equals("丧偶偶", ma)) {
+            ma = "丧偶";
+        } else if (Objects.equals("离", ma) || Objects.equals("离异", ma) || Objects.equals("离异婚", ma)) {
+            ma = "离婚";
+        } else if (Objects.equals("分", ma)) {
+            ma = "分居";
+        }
+
+        return ma;
+    }
+
+    private String convertRelation(String ra) {
+        if (ra.contains("户主")) {
+            ra = "户主";
+        } else if (Objects.equals(ra, "女儿")) {
+            ra = "女";
+        } else if (Objects.equals(ra, "儿子") || Objects.equals(ra, "儿")) {
+            ra = "子";
+        } else if (Objects.equals(ra, "大女")) {
+            ra = "长女";
+        } else if (Objects.equals(ra, "二女") || Objects.equals(ra, "此女")) {
+            ra = "次女";
+        } else if (Objects.equals(ra, "二子")) {
+            ra = "次子";
+        } else if (Objects.equals(ra, "长男") || ra.contains("长子")) {
+            ra = "长子";
+        } else if (Objects.equals(ra, "非亲属") || ra.contains("女友") || ra.contains("女朋友") || ra.contains("男友")
+            || ra.contains("男朋友")) {
+            ra = "其他";
+        } else if (Objects.equals(ra, "姐")) {
+            ra = "姐姐";
+        } else if (Objects.equals(ra, "户主")) {
+            ra = "本人";
+        } else if (Objects.equals(ra, "妻子") || Objects.equals(ra, "媳妇")) {
+            ra = "妻";
+        } else if (Objects.equals(ra, "哥") || Objects.equals(ra, "哥哥")) {
+            ra = "兄";
+        } else if (Objects.equals(ra, "丈夫")) {
+            ra = "夫";
+        } else if (Objects.equals(ra, "丈母娘")) {
+            ra = "岳母";
+        } else if (Objects.equals(ra, "继子") || Objects.equals(ra, "养子")) {
+            ra = "养子或继子";
+        } else if (Objects.equals(ra, "继女") || Objects.equals(ra, "养女")) {
+            ra = "养女或继女";
+        } else if (ra.contains("儿媳") || ra.contains("长媳")) {
+            ra = "儿媳";
+        } else if (Objects.equals(ra, "三姨") || Objects.equals(ra, "姨姨")) {
+            ra = "姨母";
+        } else if (Objects.equals(ra, "二外孙女")) {
+            ra = "外孙女";
+        } else if (Objects.equals(ra, "外孙")) {
+            ra = "外孙子";
+        } else if (Objects.equals(ra, "侄儿")) {
+            ra = "侄子";
+        } else if (ra.contains("表")) {
+            ra = "表兄弟、表姐妹";
+        } else if (Objects.equals(ra, "继父") || Objects.equals(ra, "养父")) {
+            ra = "继父或养父";
+        } else if (Objects.equals(ra, "父")) {
+            ra = "父亲";
+        } else if (Objects.equals(ra, "弟弟")) {
+            ra = "弟";
+        } else if (Objects.equals(ra, "孙")) {
+            ra = "孙子";
+        } else if (Objects.equals(ra, "孙媳妇") || Objects.equals(ra, "外孙媳妇")) {
+            ra = "孙媳妇或外孙媳妇";
+        } else if (Objects.equals(ra, "妹")) {
+            ra = "妹妹";
+        } else if (Objects.equals(ra, "祖父母")) {
+            ra = "祖父母或外祖父母";
+        } else if (Objects.equals(ra, "姐妹") || Objects.equals(ra, "兄弟")) {
+            ra = "兄弟姐妹";
+        } else if (Objects.equals(ra, "其他姐妹") || Objects.equals(ra, "其他兄弟")) {
+            ra = "其他兄弟姐妹";
+        } else if (Objects.equals(ra, "奶奶")) {
+            ra = "祖母";
+        } else if (Objects.equals(ra, "爷爷")) {
+            ra = "祖父";
+        } else if (Objects.equals(ra, "爷爷")) {
+            ra = "祖父";
+        } else if (ra.contains("堂")) {
+            ra = "堂兄弟、堂姐妹";
+        }
+
+        return ra;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationDrugExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationDrugExcelListen.java
new file mode 100644
index 0000000..c4bd285
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationDrugExcelListen.java
@@ -0,0 +1,530 @@
+package com.panzhihua.common.listen;
+
+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;
+
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+
+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.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 cn.hutool.core.date.DateUtil;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @description: 吸毒人员导入监听
+ * @author: txb
+ */
+@Slf4j
+public class ComMngPopulationDrugExcelListen 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 ComMngPopulationDrugExcelListen(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.DRUG_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<ComMngPopulationDrugExcelVO> voList = Lists.newArrayList();
+            // List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
+            ArrayList<ComMngPopulationDrugMistakeExcelVO> mistakes = Lists.newArrayList();
+            for (Map<Integer, String> oneData : list) {
+                ComMngPopulationDrugExcelVO vo = new ComMngPopulationDrugExcelVO();
+                if (StringUtils.isNotEmpty(oneData.get(0))) {
+                    vo.setSerialNumber(oneData.get(0));
+                }
+                // 姓名和身份证都为空,为空户,无需操作,否则就解析年龄,性别,出生年月日
+                if (StringUtils.isEmpty(oneData.get(1))) {
+                    ComMngPopulationDrugMistakeExcelVO mistake = new ComMngPopulationDrugMistakeExcelVO();
+                    index++;
+                    setDrugMistake(oneData, mistake);
+                    mistake.setMistake("名字不可为空,请填写姓名");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setName(oneData.get(1));
+                if (StringUtils.isEmpty(oneData.get(3))) {
+                    ComMngPopulationDrugMistakeExcelVO mistake = new ComMngPopulationDrugMistakeExcelVO();
+                    index++;
+                    setDrugMistake(oneData, mistake);
+                    mistake.setMistake("身份证号不可为空,请填写身份证");
+                    mistakes.add(mistake);
+                    continue;
+                }
+
+                // 判断身份证号码位数
+                if (oneData.get(3).length() != 18) {
+                    ComMngPopulationDrugMistakeExcelVO mistake = new ComMngPopulationDrugMistakeExcelVO();
+                    index++;
+                    setDrugMistake(oneData, mistake);
+                    mistake.setMistake("身份证号位数有误,请检查身份证号码是否正确");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setCardNo(oneData.get(3).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(4))) {
+                    vo.setPhone(oneData.get(4));
+                }
+                if (StringUtils.isEmpty(oneData.get(5))) {
+                    index++;
+                    ComMngPopulationDrugMistakeExcelVO mistake = new ComMngPopulationDrugMistakeExcelVO();
+                    setDrugMistake(oneData, mistake);
+                    mistake.setMistake("街路巷不可为空");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setRoad(oneData.get(5));
+                if (StringUtils.isEmpty(oneData.get(6))) {
+                    index++;
+                    ComMngPopulationDrugMistakeExcelVO mistake = new ComMngPopulationDrugMistakeExcelVO();
+                    setDrugMistake(oneData, mistake);
+                    mistake.setMistake("小区号不可为空");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setDoorNo(oneData.get(6).trim());
+                // if(StringUtils.isEmpty(oneData.get(7))){
+                // index++;
+                // ComMngPopulationDrugMistakeExcelVO mistake = new ComMngPopulationDrugMistakeExcelVO();
+                // setDrugMistake(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++;
+                // ComMngPopulationDrugMistakeExcelVO mistake = new ComMngPopulationDrugMistakeExcelVO();
+                // setDrugMistake(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++;
+                // ComMngPopulationDrugMistakeExcelVO mistake = new ComMngPopulationDrugMistakeExcelVO();
+                // setDrugMistake(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 = PopulHouseUseEnum.getCodeByName(oneData.get(10));
+                    if (isOk.equals(-1)) {
+                        ComMngPopulationDrugMistakeExcelVO mistake = new ComMngPopulationDrugMistakeExcelVO();
+                        index++;
+                        setDrugMistake(oneData, mistake);
+                        mistake.setMistake("您填写的是否租住有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setIsRent(isOk);
+                } else {
+                    vo.setIsRent(PopulHouseUseEnum.getCodeByName("否"));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(11))) {
+                    Integer isOk = PopulHouseStatusEnum.getCodeByName(oneData.get(11).trim());
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationDrugMistakeExcelVO mistake = new ComMngPopulationDrugMistakeExcelVO();
+                        setDrugMistake(oneData, mistake);
+                        mistake.setMistake("您填写的房屋状态有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setHouseStatus(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(12))) {
+                    Integer isOk = PopulHousePurposeEnum.getCodeByName(oneData.get(12).trim());
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationDrugMistakeExcelVO mistake = new ComMngPopulationDrugMistakeExcelVO();
+                        setDrugMistake(oneData, mistake);
+                        mistake.setMistake("您填写的房屋用途有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setHousePurpose(PopulHousePurposeEnum.getCodeByName(oneData.get(12).trim()));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(13))) {
+                    Integer isOk = PopulHouseControlStatusEnum.getCodeByName(oneData.get(13));
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationDrugMistakeExcelVO mistake = new ComMngPopulationDrugMistakeExcelVO();
+                        setDrugMistake(oneData, mistake);
+                        mistake.setMistake("您填写的管控状态有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setControlStatus(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(14))) {
+                    Integer isOk = PopulOutOrLocalEnum.getCodeByName(oneData.get(14));
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationDrugMistakeExcelVO mistake = new ComMngPopulationDrugMistakeExcelVO();
+                        setDrugMistake(oneData, mistake);
+                        mistake.setMistake("您填写的本地/外地有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setOutOrLocal(isOk);
+                } else {
+                    vo.setOutOrLocal(PopulOutOrLocalEnum.getCodeByName("本地"));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(15))) {
+                    vo.setCensusRegister(oneData.get(15).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(16))) {
+                    vo.setFirstDate(DateUtil.parse(oneData.get(16).trim(), parsePatterns));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(17))) {
+                    vo.setControlSituation(oneData.get(17).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(18))) {
+                    vo.setControlPerson(oneData.get(18).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(19))) {
+                    vo.setControlPersonPhone(oneData.get(19).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(20))) {
+                    vo.setHelpSituation(oneData.get(20).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(21))) {
+                    vo.setHelpPerson(oneData.get(21).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(22))) {
+                    vo.setHelpPersonPhone(oneData.get(22).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(23))) {
+                    vo.setDrugReason(oneData.get(23).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(24))) {
+                    vo.setDrugResult(oneData.get(24).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(25))) {
+                    vo.setHaveCrime(oneData.get(25).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(26))) {
+                    vo.setCrimeSutiation(oneData.get(26).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(27))) {
+                    vo.setRemark(oneData.get(27).trim());
+                }
+                vo.getUserTagStr().add("吸毒人员");
+                for (int i = 28; 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<ComMngPopulationDrugExcelVO> newVoList =
+                voList.stream().filter(ListUtils.distinctByKey(ComMngPopulationDrugExcelVO::getDistinctPass))
+                    .collect(Collectors.toList());
+            log.info("开始进入业务层处理逻辑");
+            R r = communityService.listSavePopulationDrugExcelVO(newVoList, communityId, userId);
+            log.info("业务层处理逻辑完成");
+            if (!R.isOk(r)) {
+                log.info("业务层处理成功");
+                List<ComMngPopulationDrugMistakeExcelVO> list =
+                    JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComMngPopulationDrugMistakeExcelVO.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", "NumberFormatException");
+        }
+    }
+
+    private void setDrugMistake(Map<Integer, String> map, ComMngPopulationDrugMistakeExcelVO vo) {
+        vo.setSerialNumber(map.get(0));
+        vo.setName(map.get(1));
+        vo.setCardNo(map.get(3));
+        vo.setNation(map.get(2));
+        vo.setPhone(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.setIsRent(map.get(10));
+        vo.setHouseStatus(map.get(11));
+        vo.setHousePurpose(map.get(12));
+        vo.setControlStatus(map.get(13));
+        vo.setOutOrLocal(map.get(14));
+        vo.setCensusRegister(map.get(15));
+        vo.setFirstDate(map.get(16));
+        vo.setControlSituation(map.get(17));
+        vo.setControlPerson(map.get(18));
+        vo.setControlPersonPhone(map.get(19));
+        vo.setHelpSituation(map.get(20));
+        vo.setHelpPerson(map.get(21));
+        vo.setHelpPersonPhone(map.get(22));
+        vo.setDrugReason(map.get(23));
+        vo.setDrugResult(map.get(24));
+        vo.setHaveCrime(map.get(25));
+        vo.setCrimeSutiation(map.get(26));
+        vo.setRemark(map.get(27));
+    }
+
+    private String convertMarriage(String ma) {
+
+        if (Objects.equals("已", ma) || Objects.equals("一", ma)) {
+            ma = "已婚";
+        } else if (Objects.equals("未", ma) || Objects.equals("未婚婚", ma)) {
+            ma = "未婚";
+        } else if (Objects.equals("初", ma)) {
+            ma = "初婚";
+        } else if (Objects.equals("再", ma)) {
+            ma = "再婚";
+        } else if (Objects.equals("复", ma)) {
+            ma = "复婚";
+        } else if (Objects.equals("丧", ma) || Objects.equals("丧偶偶", ma)) {
+            ma = "丧偶";
+        } else if (Objects.equals("离", ma) || Objects.equals("离异", ma) || Objects.equals("离异婚", ma)) {
+            ma = "离婚";
+        } else if (Objects.equals("分", ma)) {
+            ma = "分居";
+        }
+
+        return ma;
+    }
+
+    private String convertRelation(String ra) {
+        if (ra.contains("户主")) {
+            ra = "户主";
+        } else if (Objects.equals(ra, "女儿")) {
+            ra = "女";
+        } else if (Objects.equals(ra, "儿子") || Objects.equals(ra, "儿")) {
+            ra = "子";
+        } else if (Objects.equals(ra, "大女")) {
+            ra = "长女";
+        } else if (Objects.equals(ra, "二女") || Objects.equals(ra, "此女")) {
+            ra = "次女";
+        } else if (Objects.equals(ra, "二子")) {
+            ra = "次子";
+        } else if (Objects.equals(ra, "长男") || ra.contains("长子")) {
+            ra = "长子";
+        } else if (Objects.equals(ra, "非亲属") || ra.contains("女友") || ra.contains("女朋友") || ra.contains("男友")
+            || ra.contains("男朋友")) {
+            ra = "其他";
+        } else if (Objects.equals(ra, "姐")) {
+            ra = "姐姐";
+        } else if (Objects.equals(ra, "户主")) {
+            ra = "本人";
+        } else if (Objects.equals(ra, "妻子") || Objects.equals(ra, "媳妇")) {
+            ra = "妻";
+        } else if (Objects.equals(ra, "哥") || Objects.equals(ra, "哥哥")) {
+            ra = "兄";
+        } else if (Objects.equals(ra, "丈夫")) {
+            ra = "夫";
+        } else if (Objects.equals(ra, "丈母娘")) {
+            ra = "岳母";
+        } else if (Objects.equals(ra, "继子") || Objects.equals(ra, "养子")) {
+            ra = "养子或继子";
+        } else if (Objects.equals(ra, "继女") || Objects.equals(ra, "养女")) {
+            ra = "养女或继女";
+        } else if (ra.contains("儿媳") || ra.contains("长媳")) {
+            ra = "儿媳";
+        } else if (Objects.equals(ra, "三姨") || Objects.equals(ra, "姨姨")) {
+            ra = "姨母";
+        } else if (Objects.equals(ra, "二外孙女")) {
+            ra = "外孙女";
+        } else if (Objects.equals(ra, "外孙")) {
+            ra = "外孙子";
+        } else if (Objects.equals(ra, "侄儿")) {
+            ra = "侄子";
+        } else if (ra.contains("表")) {
+            ra = "表兄弟、表姐妹";
+        } else if (Objects.equals(ra, "继父") || Objects.equals(ra, "养父")) {
+            ra = "继父或养父";
+        } else if (Objects.equals(ra, "父")) {
+            ra = "父亲";
+        } else if (Objects.equals(ra, "弟弟")) {
+            ra = "弟";
+        } else if (Objects.equals(ra, "孙")) {
+            ra = "孙子";
+        } else if (Objects.equals(ra, "孙媳妇") || Objects.equals(ra, "外孙媳妇")) {
+            ra = "孙媳妇或外孙媳妇";
+        } else if (Objects.equals(ra, "妹")) {
+            ra = "妹妹";
+        } else if (Objects.equals(ra, "祖父母")) {
+            ra = "祖父母或外祖父母";
+        } else if (Objects.equals(ra, "姐妹") || Objects.equals(ra, "兄弟")) {
+            ra = "兄弟姐妹";
+        } else if (Objects.equals(ra, "其他姐妹") || Objects.equals(ra, "其他兄弟")) {
+            ra = "其他兄弟姐妹";
+        } else if (Objects.equals(ra, "奶奶")) {
+            ra = "祖母";
+        } else if (Objects.equals(ra, "爷爷")) {
+            ra = "祖父";
+        } else if (Objects.equals(ra, "爷爷")) {
+            ra = "祖父";
+        } else if (ra.contains("堂")) {
+            ra = "堂兄弟、堂姐妹";
+        }
+
+        return ra;
+    }
+}
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..5120fdc
--- /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 + 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<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", "NumberFormatException");
+        }
+    }
+
+    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/ComMngPopulationKeyExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationKeyExcelListen.java
new file mode 100644
index 0000000..73cba98
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationKeyExcelListen.java
@@ -0,0 +1,487 @@
+package com.panzhihua.common.listen;
+
+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;
+
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+
+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.ComMngPopulationKeyExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationKeyMistakeExcelVO;
+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;
+
+/**
+ * @description: 重点上访人员导入监听
+ * @author: txb
+ */
+@Slf4j
+public class ComMngPopulationKeyExcelListen 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 ComMngPopulationKeyExcelListen(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("000", "导入数据为空!");
+        }
+        ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
+        String key = Constants.KEY_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 {
+            ArrayList<ComMngPopulationKeyExcelVO> voList = Lists.newArrayList();
+            // List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
+            ArrayList<ComMngPopulationKeyMistakeExcelVO> mistakes = Lists.newArrayList();
+            for (Map<Integer, String> oneData : list) {
+                ComMngPopulationKeyExcelVO vo = new ComMngPopulationKeyExcelVO();
+                if (StringUtils.isNotEmpty(oneData.get(0))) {
+                    vo.setSerialNumber(oneData.get(0));
+                }
+                // 姓名和身份证都为空,为空户,无需操作,否则就解析年龄,性别,出生年月日
+                if (StringUtils.isEmpty(oneData.get(1))) {
+                    ComMngPopulationKeyMistakeExcelVO mistake = new ComMngPopulationKeyMistakeExcelVO();
+                    index++;
+                    setKeyMistake(oneData, mistake);
+                    mistake.setMistake("名字不可为空,请填写姓名");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setName(oneData.get(1));
+                if (StringUtils.isEmpty(oneData.get(3))) {
+                    ComMngPopulationKeyMistakeExcelVO mistake = new ComMngPopulationKeyMistakeExcelVO();
+                    index++;
+                    setKeyMistake(oneData, mistake);
+                    mistake.setMistake("身份证号不可为空,请填写身份证");
+                    mistakes.add(mistake);
+                    continue;
+                }
+
+                // 判断身份证号码位数
+                if (oneData.get(3).length() != 18) {
+                    ComMngPopulationKeyMistakeExcelVO mistake = new ComMngPopulationKeyMistakeExcelVO();
+                    index++;
+                    setKeyMistake(oneData, mistake);
+                    mistake.setMistake("身份证号位数有误,请检查身份证号码是否正确");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setCardNo(oneData.get(3).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(4))) {
+                    vo.setPhone(oneData.get(4));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(5))) {
+                    vo.setNativePlace(oneData.get(5));
+                }
+                if (StringUtils.isEmpty(oneData.get(6))) {
+                    index++;
+                    ComMngPopulationKeyMistakeExcelVO mistake = new ComMngPopulationKeyMistakeExcelVO();
+                    setKeyMistake(oneData, mistake);
+                    mistake.setMistake("街路巷不可为空");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setRoad(oneData.get(6));
+                if (StringUtils.isEmpty(oneData.get(7))) {
+                    index++;
+                    ComMngPopulationKeyMistakeExcelVO mistake = new ComMngPopulationKeyMistakeExcelVO();
+                    setKeyMistake(oneData, mistake);
+                    mistake.setMistake("小区号不可为空");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setDoorNo(oneData.get(7).trim());
+                // if(StringUtils.isEmpty(oneData.get(8))){
+                // index++;
+                // ComMngPopulationKeyMistakeExcelVO mistake = new ComMngPopulationKeyMistakeExcelVO();
+                // setKeyMistake(oneData, mistake);
+                // mistake.setMistake("楼排号不可为空");
+                // mistakes.add(mistake);
+                // continue;
+                // }
+                if (StringUtils.isNotEmpty(oneData.get(8))) {
+                    vo.setFloor(oneData.get(8).trim());
+                }
+                // if(StringUtils.isEmpty(oneData.get(9))){
+                // index++;
+                // ComMngPopulationKeyMistakeExcelVO mistake = new ComMngPopulationKeyMistakeExcelVO();
+                // setKeyMistake(oneData, mistake);
+                // mistake.setMistake("单元号不可为空");
+                // mistakes.add(mistake);
+                // continue;
+                // }
+                if (StringUtils.isNotEmpty(oneData.get(9))) {
+                    vo.setUnitNo(oneData.get(9).trim());
+                }
+                // if(StringUtils.isEmpty(oneData.get(10))){
+                // index++;
+                // ComMngPopulationKeyMistakeExcelVO mistake = new ComMngPopulationKeyMistakeExcelVO();
+                // setKeyMistake(oneData, mistake);
+                // mistake.setMistake("户室不可为空");
+                // mistakes.add(mistake);
+                // continue;
+                // }
+                if (StringUtils.isNotEmpty(oneData.get(10))) {
+                    vo.setHouseNo(oneData.get(10).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(11))) {
+                    Integer isOk = PopulHouseUseEnum.getCodeByName(oneData.get(11));
+                    if (isOk.equals(-1)) {
+                        ComMngPopulationKeyMistakeExcelVO mistake = new ComMngPopulationKeyMistakeExcelVO();
+                        index++;
+                        setKeyMistake(oneData, mistake);
+                        mistake.setMistake("您填写的是否租住有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setIsRent(isOk);
+                } else {
+                    vo.setIsRent(PopulHouseUseEnum.getCodeByName("否"));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(12))) {
+                    Integer isOk = PopulHouseStatusEnum.getCodeByName(oneData.get(12).trim());
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationKeyMistakeExcelVO mistake = new ComMngPopulationKeyMistakeExcelVO();
+                        setKeyMistake(oneData, mistake);
+                        mistake.setMistake("您填写的房屋状态有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setHouseStatus(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(13))) {
+                    Integer isOk = PopulHousePurposeEnum.getCodeByName(oneData.get(13).trim());
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationKeyMistakeExcelVO mistake = new ComMngPopulationKeyMistakeExcelVO();
+                        setKeyMistake(oneData, mistake);
+                        mistake.setMistake("您填写的房屋用途有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setHousePurpose(PopulHousePurposeEnum.getCodeByName(oneData.get(13).trim()));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(14))) {
+                    Integer isOk = PopulHouseControlStatusEnum.getCodeByName(oneData.get(14));
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationKeyMistakeExcelVO mistake = new ComMngPopulationKeyMistakeExcelVO();
+                        setKeyMistake(oneData, mistake);
+                        mistake.setMistake("您填写的管控状态有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setControlStatus(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(15))) {
+                    Integer isOk = PopulOutOrLocalEnum.getCodeByName(oneData.get(15));
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationKeyMistakeExcelVO mistake = new ComMngPopulationKeyMistakeExcelVO();
+                        setKeyMistake(oneData, mistake);
+                        mistake.setMistake("您填写的本地/外地有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setOutOrLocal(isOk);
+                } else {
+                    vo.setOutOrLocal(PopulOutOrLocalEnum.getCodeByName("本地"));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(16))) {
+                    vo.setCensusRegister(oneData.get(16).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(17))) {
+                    vo.setRemark(oneData.get(17).trim());
+                }
+                vo.getUserTagStr().add("重点人员");
+                for (int i = 18; 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<ComMngPopulationKeyExcelVO> newVoList =
+                voList.stream().filter(ListUtils.distinctByKey(ComMngPopulationKeyExcelVO::getDistinctPass))
+                    .collect(Collectors.toList());
+            log.info("开始进入业务层处理逻辑");
+            R r = communityService.listSavePopulationKeyExcelVO(newVoList, communityId, userId);
+            log.info("业务层处理逻辑完成");
+            if (!R.isOk(r)) {
+                log.info("业务层处理成功");
+                List<ComMngPopulationKeyMistakeExcelVO> list =
+                    JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComMngPopulationKeyMistakeExcelVO.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", "NumberFormatException");
+        }
+    }
+
+    private void setKeyMistake(Map<Integer, String> map, ComMngPopulationKeyMistakeExcelVO vo) {
+        vo.setSerialNumber(map.get(0));
+        vo.setName(map.get(1));
+        vo.setCardNo(map.get(3));
+        vo.setNation(map.get(2));
+        vo.setPhone(map.get(4));
+        vo.setNativePlace(map.get(5));
+        vo.setRoad(map.get(6));
+        vo.setDoorNo(map.get(7));
+        vo.setFloor(map.get(8));
+        vo.setUnitNo(map.get(9));
+        vo.setHouseNo(map.get(10));
+        vo.setIsRent(map.get(11));
+        vo.setHouseStatus(map.get(12));
+        vo.setHousePurpose(map.get(13));
+        vo.setControlStatus(map.get(14));
+        vo.setOutOrLocal(map.get(15));
+        vo.setCensusRegister(map.get(16));
+        vo.setRemark(map.get(17));
+    }
+
+    private String convertMarriage(String ma) {
+
+        if (Objects.equals("已", ma) || Objects.equals("一", ma)) {
+            ma = "已婚";
+        } else if (Objects.equals("未", ma) || Objects.equals("未婚婚", ma)) {
+            ma = "未婚";
+        } else if (Objects.equals("初", ma)) {
+            ma = "初婚";
+        } else if (Objects.equals("再", ma)) {
+            ma = "再婚";
+        } else if (Objects.equals("复", ma)) {
+            ma = "复婚";
+        } else if (Objects.equals("丧", ma) || Objects.equals("丧偶偶", ma)) {
+            ma = "丧偶";
+        } else if (Objects.equals("离", ma) || Objects.equals("离异", ma) || Objects.equals("离异婚", ma)) {
+            ma = "离婚";
+        } else if (Objects.equals("分", ma)) {
+            ma = "分居";
+        }
+
+        return ma;
+    }
+
+    private String convertRelation(String ra) {
+        if (ra.contains("户主")) {
+            ra = "户主";
+        } else if (Objects.equals(ra, "女儿")) {
+            ra = "女";
+        } else if (Objects.equals(ra, "儿子") || Objects.equals(ra, "儿")) {
+            ra = "子";
+        } else if (Objects.equals(ra, "大女")) {
+            ra = "长女";
+        } else if (Objects.equals(ra, "二女") || Objects.equals(ra, "此女")) {
+            ra = "次女";
+        } else if (Objects.equals(ra, "二子")) {
+            ra = "次子";
+        } else if (Objects.equals(ra, "长男") || ra.contains("长子")) {
+            ra = "长子";
+        } else if (Objects.equals(ra, "非亲属") || ra.contains("女友") || ra.contains("女朋友") || ra.contains("男友")
+            || ra.contains("男朋友")) {
+            ra = "其他";
+        } else if (Objects.equals(ra, "姐")) {
+            ra = "姐姐";
+        } else if (Objects.equals(ra, "户主")) {
+            ra = "本人";
+        } else if (Objects.equals(ra, "妻子") || Objects.equals(ra, "媳妇")) {
+            ra = "妻";
+        } else if (Objects.equals(ra, "哥") || Objects.equals(ra, "哥哥")) {
+            ra = "兄";
+        } else if (Objects.equals(ra, "丈夫")) {
+            ra = "夫";
+        } else if (Objects.equals(ra, "丈母娘")) {
+            ra = "岳母";
+        } else if (Objects.equals(ra, "继子") || Objects.equals(ra, "养子")) {
+            ra = "养子或继子";
+        } else if (Objects.equals(ra, "继女") || Objects.equals(ra, "养女")) {
+            ra = "养女或继女";
+        } else if (ra.contains("儿媳") || ra.contains("长媳")) {
+            ra = "儿媳";
+        } else if (Objects.equals(ra, "三姨") || Objects.equals(ra, "姨姨")) {
+            ra = "姨母";
+        } else if (Objects.equals(ra, "二外孙女")) {
+            ra = "外孙女";
+        } else if (Objects.equals(ra, "外孙")) {
+            ra = "外孙子";
+        } else if (Objects.equals(ra, "侄儿")) {
+            ra = "侄子";
+        } else if (ra.contains("表")) {
+            ra = "表兄弟、表姐妹";
+        } else if (Objects.equals(ra, "继父") || Objects.equals(ra, "养父")) {
+            ra = "继父或养父";
+        } else if (Objects.equals(ra, "父")) {
+            ra = "父亲";
+        } else if (Objects.equals(ra, "弟弟")) {
+            ra = "弟";
+        } else if (Objects.equals(ra, "孙")) {
+            ra = "孙子";
+        } else if (Objects.equals(ra, "孙媳妇") || Objects.equals(ra, "外孙媳妇")) {
+            ra = "孙媳妇或外孙媳妇";
+        } else if (Objects.equals(ra, "妹")) {
+            ra = "妹妹";
+        } else if (Objects.equals(ra, "祖父母")) {
+            ra = "祖父母或外祖父母";
+        } else if (Objects.equals(ra, "姐妹") || Objects.equals(ra, "兄弟")) {
+            ra = "兄弟姐妹";
+        } else if (Objects.equals(ra, "其他姐妹") || Objects.equals(ra, "其他兄弟")) {
+            ra = "其他兄弟姐妹";
+        } else if (Objects.equals(ra, "奶奶")) {
+            ra = "祖母";
+        } else if (Objects.equals(ra, "爷爷")) {
+            ra = "祖父";
+        } else if (Objects.equals(ra, "爷爷")) {
+            ra = "祖父";
+        } else if (ra.contains("堂")) {
+            ra = "堂兄弟、堂姐妹";
+        }
+
+        return ra;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationLowSecurityExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationLowSecurityExcelListen.java
new file mode 100644
index 0000000..ab8a27d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationLowSecurityExcelListen.java
@@ -0,0 +1,614 @@
+package com.panzhihua.common.listen;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+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;
+
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+
+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.ComMngPopulationLowSecurityExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationLowSecurityMistakeExcelVO;
+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 cn.hutool.core.date.DateUtil;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @description: 低保户导入监听
+ * @author: txb
+ */
+@Slf4j
+public class ComMngPopulationLowSecurityExcelListen 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 ComMngPopulationLowSecurityExcelListen(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("000", "导入数据为空!");
+        }
+        ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
+        String LowSecurity = Constants.LOWSECURITY_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", "yyyy/MM", "yyyy/M", "yyyy-M", "yyyy-MM"};
+            ArrayList<ComMngPopulationLowSecurityExcelVO> voList = Lists.newArrayList();
+            // List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
+            ArrayList<ComMngPopulationLowSecurityMistakeExcelVO> mistakes = Lists.newArrayList();
+            for (Map<Integer, String> oneData : list) {
+                ComMngPopulationLowSecurityExcelVO vo = new ComMngPopulationLowSecurityExcelVO();
+                if (StringUtils.isNotEmpty(oneData.get(0))) {
+                    vo.setSerialNumber(oneData.get(0));
+                }
+                // 姓名和身份证都为空,为空户,无需操作,否则就解析年龄,性别,出生年月日
+                if (StringUtils.isEmpty(oneData.get(1))) {
+                    ComMngPopulationLowSecurityMistakeExcelVO mistake = new ComMngPopulationLowSecurityMistakeExcelVO();
+                    index++;
+                    setLowSecurityMistake(oneData, mistake);
+                    mistake.setMistake("名字不可为空,请填写姓名");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setName(oneData.get(1));
+                if (StringUtils.isEmpty(oneData.get(2))) {
+                    ComMngPopulationLowSecurityMistakeExcelVO mistake = new ComMngPopulationLowSecurityMistakeExcelVO();
+                    index++;
+                    setLowSecurityMistake(oneData, mistake);
+                    mistake.setMistake("身份证号不可为空,请填写身份证");
+                    mistakes.add(mistake);
+                    continue;
+                }
+
+                // 判断身份证号码位数
+                if (oneData.get(2).length() != 18) {
+                    ComMngPopulationLowSecurityMistakeExcelVO mistake = new ComMngPopulationLowSecurityMistakeExcelVO();
+                    index++;
+                    setLowSecurityMistake(oneData, mistake);
+                    mistake.setMistake("身份证号位数有误,请检查身份证号码是否正确");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setCardNo(oneData.get(2).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(3))) {
+                    vo.setPhone(oneData.get(3));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(4))) {
+                    vo.setRegion(oneData.get(4));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(5))) {
+                    vo.setFamilyCode(oneData.get(5));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(6))) {
+                    vo.setGroupName(oneData.get(6));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(7))) {
+                    vo.setClassifiedRescueCategory(oneData.get(7));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(8))) {
+                    vo.setApplyDate(DateUtil.parse(oneData.get(8), parsePatterns));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(9))) {
+                    vo.setHouseHolderName(oneData.get(9));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(10))) {
+                    vo.setHouseHolderCardNo(oneData.get(10));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(11))) {
+                    vo.setHouseHolderCode(oneData.get(11));
+                }
+                if (StringUtils.isEmpty(oneData.get(12))) {
+                    index++;
+                    ComMngPopulationLowSecurityMistakeExcelVO mistake = new ComMngPopulationLowSecurityMistakeExcelVO();
+                    setLowSecurityMistake(oneData, mistake);
+                    mistake.setMistake("街路巷不可为空");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setRoad(oneData.get(12));
+                if (StringUtils.isEmpty(oneData.get(13))) {
+                    index++;
+                    ComMngPopulationLowSecurityMistakeExcelVO mistake = new ComMngPopulationLowSecurityMistakeExcelVO();
+                    setLowSecurityMistake(oneData, mistake);
+                    mistake.setMistake("小区号不可为空");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setDoorNo(oneData.get(13).trim());
+                // if(StringUtils.isEmpty(oneData.get(14))){
+                // index++;
+                // ComMngPopulationLowSecurityMistakeExcelVO mistake = new ComMngPopulationLowSecurityMistakeExcelVO();
+                // setLowSecurityMistake(oneData, mistake);
+                // mistake.setMistake("楼排号不可为空");
+                // mistakes.add(mistake);
+                // continue;
+                // }
+                if (StringUtils.isNotEmpty(oneData.get(14))) {
+                    vo.setFloor(oneData.get(14).trim());
+                }
+                // if(StringUtils.isEmpty(oneData.get(15))){
+                // index++;
+                // ComMngPopulationLowSecurityMistakeExcelVO mistake = new ComMngPopulationLowSecurityMistakeExcelVO();
+                // setLowSecurityMistake(oneData, mistake);
+                // mistake.setMistake("单元号不可为空");
+                // mistakes.add(mistake);
+                // continue;
+                // }
+                if (StringUtils.isNotEmpty(oneData.get(15))) {
+                    vo.setUnitNo(oneData.get(15).trim());
+                }
+                // if(StringUtils.isEmpty(oneData.get(16))){
+                // index++;
+                // ComMngPopulationLowSecurityMistakeExcelVO mistake = new ComMngPopulationLowSecurityMistakeExcelVO();
+                // setLowSecurityMistake(oneData, mistake);
+                // mistake.setMistake("户室不可为空");
+                // mistakes.add(mistake);
+                // continue;
+                // }
+                if (StringUtils.isNotEmpty(oneData.get(16))) {
+                    vo.setHouseNo(oneData.get(16).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(17))) {
+                    Integer isOk = PopulHouseUseEnum.getCodeByName(oneData.get(17));
+                    if (isOk.equals(-1)) {
+                        ComMngPopulationLowSecurityMistakeExcelVO mistake =
+                            new ComMngPopulationLowSecurityMistakeExcelVO();
+                        index++;
+                        setLowSecurityMistake(oneData, mistake);
+                        mistake.setMistake("您填写的是否租住有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setIsRent(isOk);
+                } else {
+                    vo.setIsRent(PopulHouseUseEnum.getCodeByName("否"));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(18))) {
+                    Integer isOk = PopulHouseStatusEnum.getCodeByName(oneData.get(18).trim());
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationLowSecurityMistakeExcelVO mistake =
+                            new ComMngPopulationLowSecurityMistakeExcelVO();
+                        setLowSecurityMistake(oneData, mistake);
+                        mistake.setMistake("您填写的房屋状态有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setHouseStatus(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(19))) {
+                    Integer isOk = PopulHousePurposeEnum.getCodeByName(oneData.get(19).trim());
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationLowSecurityMistakeExcelVO mistake =
+                            new ComMngPopulationLowSecurityMistakeExcelVO();
+                        setLowSecurityMistake(oneData, mistake);
+                        mistake.setMistake("您填写的房屋用途有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setHousePurpose(PopulHousePurposeEnum.getCodeByName(oneData.get(19).trim()));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(20))) {
+                    Integer isOk = PopulHouseControlStatusEnum.getCodeByName(oneData.get(20));
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationLowSecurityMistakeExcelVO mistake =
+                            new ComMngPopulationLowSecurityMistakeExcelVO();
+                        setLowSecurityMistake(oneData, mistake);
+                        mistake.setMistake("您填写的管控状态有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setControlStatus(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(21))) {
+                    Integer isOk = PopulOutOrLocalEnum.getCodeByName(oneData.get(21));
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationLowSecurityMistakeExcelVO mistake =
+                            new ComMngPopulationLowSecurityMistakeExcelVO();
+                        setLowSecurityMistake(oneData, mistake);
+                        mistake.setMistake("您填写的本地/外地有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setOutOrLocal(isOk);
+                } else {
+                    vo.setOutOrLocal(PopulOutOrLocalEnum.getCodeByName("本地"));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(22))) {
+                    vo.setCensusRegister(oneData.get(22).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(23))) {
+                    vo.setResidencePostalCode(oneData.get(23).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(24))) {
+                    vo.setSalvageCertificateNo(oneData.get(24).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(25))) {
+                    vo.setGuaranteedPopulationNumber(Integer.valueOf(oneData.get(25).trim()));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(26))) {
+                    vo.setFamilyPopulationNumber(Integer.valueOf(oneData.get(26).trim()));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(27))) {
+                    vo.setAccountPerson(oneData.get(27).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(28))) {
+                    vo.setAccountBank(oneData.get(28).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(29))) {
+                    vo.setAccountCardNo(oneData.get(29).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(30))) {
+                    vo.setBankAccount(oneData.get(30).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(31))) {
+                    vo.setSupportInstitutions(oneData.get(31).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(32))) {
+                    vo.setDistributionMethod(oneData.get(32).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(33))) {
+                    vo.setGuaranteedAmount(new BigDecimal(oneData.get(33).trim()).setScale(2, RoundingMode.HALF_UP));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(34))) {
+                    vo.setReallocationAmount(new BigDecimal(oneData.get(34).trim()).setScale(2, RoundingMode.HALF_UP));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(35))) {
+                    vo.setDifferenceReliefAmount(
+                        new BigDecimal(oneData.get(35).trim()).setScale(2, RoundingMode.HALF_UP));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(36))) {
+                    vo.setClassifiedInsuredAmount(
+                        new BigDecimal(oneData.get(36).trim()).setScale(2, RoundingMode.HALF_UP));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(37))) {
+                    vo.setTotalMonthlyFamilyIncome(
+                        new BigDecimal(oneData.get(37).trim()).setScale(2, RoundingMode.HALF_UP));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(38))) {
+                    vo.setAverageMonthlyFamilyIncome(
+                        new BigDecimal(oneData.get(38).trim()).setScale(2, RoundingMode.HALF_UP));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(39))) {
+                    vo.setTotalMonthlyFamilyExpenditure(
+                        new BigDecimal(oneData.get(39).trim()).setScale(2, RoundingMode.HALF_UP));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(40))) {
+                    vo.setLng(oneData.get(40).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(41))) {
+                    vo.setLat(oneData.get(41).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(42))) {
+                    vo.setOriginateDate(oneData.get(42).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(43))) {
+                    vo.setNursingFee(new BigDecimal(oneData.get(43).trim()).setScale(2, RoundingMode.HALF_UP));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(44))) {
+                    vo.setApplyReason(oneData.get(44).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(45))) {
+                    vo.setReviewComment(oneData.get(45).trim());
+                }
+                vo.getUserTagStr().add("低保户");
+                for (int i = 46; 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<ComMngPopulationLowSecurityExcelVO> newVoList =
+                voList.stream().filter(ListUtils.distinctByKey(ComMngPopulationLowSecurityExcelVO::getDistinctPass))
+                    .collect(Collectors.toList());
+            log.info("开始进入业务层处理逻辑");
+            R r = communityService.listSavePopulationLowSecurityExcelVO(newVoList, communityId, userId);
+            log.info("业务层处理逻辑完成");
+            if (!R.isOk(r)) {
+                log.info("业务层处理成功");
+                List<ComMngPopulationLowSecurityMistakeExcelVO> list = JSONArray
+                    .parseArray(JSONArray.toJSONString(r.getData()), ComMngPopulationLowSecurityMistakeExcelVO.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(LowSecurity, JSONArray.toJSONString(mistakes), 1, TimeUnit.HOURS);
+                log.info("将错误数据存入redis中成功");
+                throw new ServiceException("500", LowSecurity);
+            } else {
+                log.info("业务层处理逻辑失败");
+                if (!mistakes.isEmpty()) {
+                    log.info("业务层处理逻辑失败,将错误数据缓存到redis中");
+                    valueOperations.set(LowSecurity, JSONArray.toJSONString(mistakes), 1, TimeUnit.HOURS);
+                    log.info("业务层处理逻辑失败,将错误数据缓存到redis中成功");
+                    throw new ServiceException("500", LowSecurity);
+                }
+            }
+        } 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", "NumberFormatException");
+        }
+    }
+
+    private void setLowSecurityMistake(Map<Integer, String> map, ComMngPopulationLowSecurityMistakeExcelVO vo) {
+        vo.setSerialNumber(map.get(0));
+        vo.setName(map.get(1));
+        vo.setCardNo(map.get(2));
+        vo.setPhone(map.get(3));
+        vo.setRegion(map.get(4));
+        vo.setFamilyCode(map.get(5));
+        vo.setGroupName(map.get(6));
+        vo.setClassifiedRescueCategory(map.get(7));
+        vo.setApplyDate(map.get(8));
+        vo.setHouseHolderName(map.get(9));
+        vo.setHouseHolderCardNo(map.get(10));
+        vo.setHouseHolderCode(map.get(11));
+        vo.setRoad(map.get(12));
+        vo.setDoorNo(map.get(13));
+        vo.setFloor(map.get(14));
+        vo.setUnitNo(map.get(15));
+        vo.setHouseNo(map.get(16));
+        vo.setIsRent(map.get(17));
+        vo.setHouseStatus(map.get(18));
+        vo.setHousePurpose(map.get(19));
+        vo.setControlStatus(map.get(20));
+        vo.setOutOrLocal(map.get(21));
+        vo.setCensusRegister(map.get(22));
+        vo.setResidencePostalCode(map.get(23));
+        vo.setSalvageCertificateNo(map.get(24));
+        vo.setGuaranteedPopulationNumber(map.get(25));
+        vo.setFamilyPopulationNumber(map.get(26));
+        vo.setAccountPerson(map.get(27));
+        vo.setAccountBank(map.get(28));
+        vo.setAccountCardNo(map.get(29));
+        vo.setBankAccount(map.get(30));
+        vo.setSupportInstitutions(map.get(31));
+        vo.setDistributionMethod(map.get(32));
+        vo.setGuaranteedAmount(map.get(33));
+        vo.setReallocationAmount(map.get(34));
+        vo.setDifferenceReliefAmount(map.get(35));
+        vo.setClassifiedInsuredAmount(map.get(36));
+        vo.setTotalMonthlyFamilyIncome(map.get(37));
+        vo.setAverageMonthlyFamilyIncome(map.get(38));
+        vo.setTotalMonthlyFamilyExpenditure(map.get(39));
+        vo.setLng(map.get(40));
+        vo.setLat(map.get(41));
+        vo.setOriginateDate(map.get(42));
+        vo.setNursingFee(map.get(43));
+        vo.setApplyReason(map.get(44));
+        vo.setReviewComment(map.get(45));
+    }
+
+    private String convertMarriage(String ma) {
+
+        if (Objects.equals("已", ma) || Objects.equals("一", ma)) {
+            ma = "已婚";
+        } else if (Objects.equals("未", ma) || Objects.equals("未婚婚", ma)) {
+            ma = "未婚";
+        } else if (Objects.equals("初", ma)) {
+            ma = "初婚";
+        } else if (Objects.equals("再", ma)) {
+            ma = "再婚";
+        } else if (Objects.equals("复", ma)) {
+            ma = "复婚";
+        } else if (Objects.equals("丧", ma) || Objects.equals("丧偶偶", ma)) {
+            ma = "丧偶";
+        } else if (Objects.equals("离", ma) || Objects.equals("离异", ma) || Objects.equals("离异婚", ma)) {
+            ma = "离婚";
+        } else if (Objects.equals("分", ma)) {
+            ma = "分居";
+        }
+
+        return ma;
+    }
+
+    private String convertRelation(String ra) {
+        if (ra.contains("户主")) {
+            ra = "户主";
+        } else if (Objects.equals(ra, "女儿")) {
+            ra = "女";
+        } else if (Objects.equals(ra, "儿子") || Objects.equals(ra, "儿")) {
+            ra = "子";
+        } else if (Objects.equals(ra, "大女")) {
+            ra = "长女";
+        } else if (Objects.equals(ra, "二女") || Objects.equals(ra, "此女")) {
+            ra = "次女";
+        } else if (Objects.equals(ra, "二子")) {
+            ra = "次子";
+        } else if (Objects.equals(ra, "长男") || ra.contains("长子")) {
+            ra = "长子";
+        } else if (Objects.equals(ra, "非亲属") || ra.contains("女友") || ra.contains("女朋友") || ra.contains("男友")
+            || ra.contains("男朋友")) {
+            ra = "其他";
+        } else if (Objects.equals(ra, "姐")) {
+            ra = "姐姐";
+        } else if (Objects.equals(ra, "户主")) {
+            ra = "本人";
+        } else if (Objects.equals(ra, "妻子") || Objects.equals(ra, "媳妇")) {
+            ra = "妻";
+        } else if (Objects.equals(ra, "哥") || Objects.equals(ra, "哥哥")) {
+            ra = "兄";
+        } else if (Objects.equals(ra, "丈夫")) {
+            ra = "夫";
+        } else if (Objects.equals(ra, "丈母娘")) {
+            ra = "岳母";
+        } else if (Objects.equals(ra, "继子") || Objects.equals(ra, "养子")) {
+            ra = "养子或继子";
+        } else if (Objects.equals(ra, "继女") || Objects.equals(ra, "养女")) {
+            ra = "养女或继女";
+        } else if (ra.contains("儿媳") || ra.contains("长媳")) {
+            ra = "儿媳";
+        } else if (Objects.equals(ra, "三姨") || Objects.equals(ra, "姨姨")) {
+            ra = "姨母";
+        } else if (Objects.equals(ra, "二外孙女")) {
+            ra = "外孙女";
+        } else if (Objects.equals(ra, "外孙")) {
+            ra = "外孙子";
+        } else if (Objects.equals(ra, "侄儿")) {
+            ra = "侄子";
+        } else if (ra.contains("表")) {
+            ra = "表兄弟、表姐妹";
+        } else if (Objects.equals(ra, "继父") || Objects.equals(ra, "养父")) {
+            ra = "继父或养父";
+        } else if (Objects.equals(ra, "父")) {
+            ra = "父亲";
+        } else if (Objects.equals(ra, "弟弟")) {
+            ra = "弟";
+        } else if (Objects.equals(ra, "孙")) {
+            ra = "孙子";
+        } else if (Objects.equals(ra, "孙媳妇") || Objects.equals(ra, "外孙媳妇")) {
+            ra = "孙媳妇或外孙媳妇";
+        } else if (Objects.equals(ra, "妹")) {
+            ra = "妹妹";
+        } else if (Objects.equals(ra, "祖父母")) {
+            ra = "祖父母或外祖父母";
+        } else if (Objects.equals(ra, "姐妹") || Objects.equals(ra, "兄弟")) {
+            ra = "兄弟姐妹";
+        } else if (Objects.equals(ra, "其他姐妹") || Objects.equals(ra, "其他兄弟")) {
+            ra = "其他兄弟姐妹";
+        } else if (Objects.equals(ra, "奶奶")) {
+            ra = "祖母";
+        } else if (Objects.equals(ra, "爷爷")) {
+            ra = "祖父";
+        } else if (Objects.equals(ra, "爷爷")) {
+            ra = "祖父";
+        } else if (ra.contains("堂")) {
+            ra = "堂兄弟、堂姐妹";
+        }
+
+        return ra;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationMajorExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationMajorExcelListen.java
new file mode 100644
index 0000000..0c9c9a4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationMajorExcelListen.java
@@ -0,0 +1,560 @@
+package com.panzhihua.common.listen;
+
+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;
+
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+
+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.ComMngPopulationMajorExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationMajorMistakeExcelVO;
+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;
+
+/**
+ * @description: 重精人员导入监听
+ * @author: txb
+ */
+@Slf4j
+public class ComMngPopulationMajorExcelListen 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 ComMngPopulationMajorExcelListen(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("000", "导入数据为空!");
+        }
+        ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
+        String key = Constants.MAJOR_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 {
+            ArrayList<ComMngPopulationMajorExcelVO> voList = Lists.newArrayList();
+            // List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
+            ArrayList<ComMngPopulationMajorMistakeExcelVO> mistakes = Lists.newArrayList();
+            for (Map<Integer, String> oneData : list) {
+                ComMngPopulationMajorExcelVO vo = new ComMngPopulationMajorExcelVO();
+                if (StringUtils.isNotEmpty(oneData.get(0))) {
+                    vo.setSerialNumber(oneData.get(0));
+                }
+                // 姓名和身份证都为空,为空户,无需操作,否则就解析年龄,性别,出生年月日
+                if (StringUtils.isEmpty(oneData.get(1))) {
+                    ComMngPopulationMajorMistakeExcelVO mistake = new ComMngPopulationMajorMistakeExcelVO();
+                    index++;
+                    setMistake(oneData, mistake);
+                    mistake.setMistake("名字不可为空,请填写姓名");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setName(oneData.get(1));
+                if (StringUtils.isEmpty(oneData.get(2))) {
+                    ComMngPopulationMajorMistakeExcelVO mistake = new ComMngPopulationMajorMistakeExcelVO();
+                    index++;
+                    setMistake(oneData, mistake);
+                    mistake.setMistake("身份证号不可为空,请填写身份证");
+                    mistakes.add(mistake);
+                    continue;
+                }
+
+                // 判断身份证号码位数
+                if (oneData.get(2).length() != 18) {
+                    ComMngPopulationMajorMistakeExcelVO mistake = new ComMngPopulationMajorMistakeExcelVO();
+                    index++;
+                    setMistake(oneData, mistake);
+                    mistake.setMistake("身份证号位数有误,请检查身份证号码是否正确");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setCardNo(oneData.get(2).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.isEmpty(oneData.get(3))) {
+                    index++;
+                    ComMngPopulationMajorMistakeExcelVO mistake = new ComMngPopulationMajorMistakeExcelVO();
+                    setMistake(oneData, mistake);
+                    mistake.setMistake("街路巷不可为空");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setRoad(oneData.get(3));
+                if (StringUtils.isEmpty(oneData.get(4))) {
+                    index++;
+                    ComMngPopulationMajorMistakeExcelVO mistake = new ComMngPopulationMajorMistakeExcelVO();
+                    setMistake(oneData, mistake);
+                    mistake.setMistake("小区号不可为空");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setDoorNo(oneData.get(4).trim());
+                // if(StringUtils.isEmpty(oneData.get(5))){
+                // index++;
+                // ComMngPopulationMajorMistakeExcelVO mistake = new ComMngPopulationMajorMistakeExcelVO();
+                // setMistake(oneData, mistake);
+                // mistake.setMistake("楼排号不可为空");
+                // mistakes.add(mistake);
+                // continue;
+                // }
+                if (StringUtils.isNotEmpty(oneData.get(5))) {
+                    vo.setFloor(oneData.get(5).trim());
+                }
+                // if(StringUtils.isEmpty(oneData.get(6))){
+                // index++;
+                // ComMngPopulationMajorMistakeExcelVO mistake = new ComMngPopulationMajorMistakeExcelVO();
+                // setMistake(oneData, mistake);
+                // mistake.setMistake("单元号不可为空");
+                // mistakes.add(mistake);
+                // continue;
+                // }
+                if (StringUtils.isNotEmpty(oneData.get(6))) {
+                    vo.setUnitNo(oneData.get(6).trim());
+                }
+                // if(StringUtils.isEmpty(oneData.get(7))){
+                // index++;
+                // ComMngPopulationMajorMistakeExcelVO mistake = new ComMngPopulationMajorMistakeExcelVO();
+                // setMistake(oneData, mistake);
+                // mistake.setMistake("户室不可为空");
+                // mistakes.add(mistake);
+                // continue;
+                // }
+                if (StringUtils.isNotEmpty(oneData.get(7))) {
+                    vo.setHouseNo(oneData.get(7).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(8))) {
+                    Integer isOk = PopulHouseUseEnum.getCodeByName(oneData.get(8));
+                    if (isOk.equals(-1)) {
+                        ComMngPopulationMajorMistakeExcelVO mistake = new ComMngPopulationMajorMistakeExcelVO();
+                        index++;
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("您填写的是否租住有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setIsRent(isOk);
+                } else {
+                    vo.setIsRent(PopulHouseUseEnum.getCodeByName("否"));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(9))) {
+                    Integer isOk = PopulHouseStatusEnum.getCodeByName(oneData.get(9).trim());
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationMajorMistakeExcelVO mistake = new ComMngPopulationMajorMistakeExcelVO();
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("您填写的房屋状态有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setHouseStatus(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(10))) {
+                    Integer isOk = PopulHousePurposeEnum.getCodeByName(oneData.get(10).trim());
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationMajorMistakeExcelVO mistake = new ComMngPopulationMajorMistakeExcelVO();
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("您填写的房屋用途有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setHousePurpose(PopulHousePurposeEnum.getCodeByName(oneData.get(10).trim()));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(11))) {
+                    Integer isOk = PopulHouseControlStatusEnum.getCodeByName(oneData.get(11));
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationMajorMistakeExcelVO mistake = new ComMngPopulationMajorMistakeExcelVO();
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("您填写的管控状态有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setControlStatus(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(12))) {
+                    Integer isOk = PopulOutOrLocalEnum.getCodeByName(oneData.get(12));
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationMajorMistakeExcelVO mistake = new ComMngPopulationMajorMistakeExcelVO();
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("您填写的本地/外地有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setOutOrLocal(isOk);
+                } else {
+                    vo.setOutOrLocal(PopulOutOrLocalEnum.getCodeByName("本地"));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(13))) {
+                    vo.setCensusRegister(oneData.get(13).trim());
+                }
+                if (StringUtils.isEmpty(oneData.get(14))) {
+                    Integer isOk = PopulCultureLevelEnum.getCodeByName(oneData.get(14));
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationMajorMistakeExcelVO mistake = new ComMngPopulationMajorMistakeExcelVO();
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("您填写的文化程度有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setOutOrLocal(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(15))) {
+                    vo.setEconomicCondition(oneData.get(15).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(16))) {
+                    vo.setPersonType(oneData.get(16).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(17))) {
+                    vo.setFamilySituation(oneData.get(17).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(18))) {
+                    vo.setCustodyPerson(oneData.get(18).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(19))) {
+//                    Integer isOk = PopulRelationEnum.getCodeByName(oneData.get(19));
+//                    if (isOk.equals(-1)) {
+//                        index++;
+//                        ComMngPopulationMajorMistakeExcelVO mistake = new ComMngPopulationMajorMistakeExcelVO();
+//                        setMistake(oneData, mistake);
+//                        mistake.setMistake("您填写的与监护人关系有误");
+//                        mistakes.add(mistake);
+//                        continue;
+//                    }
+                    vo.setCustodyRelation(oneData.get(19).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(20))) {
+                    vo.setCustodyCardNo(oneData.get(20).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(21))) {
+                    vo.setCustodyPersonPhone(oneData.get(21).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(22))) {
+                    vo.setCustodyAddress(oneData.get(22).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(23))) {
+                    vo.setHelpPerson(oneData.get(23).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(24))) {
+                    vo.setHelpPersonPhone(oneData.get(24).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(25))) {
+                    vo.setHelpMethod(oneData.get(25).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(26))) {
+                    vo.setHelpSituation(oneData.get(26).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(27))) {
+                    Integer isOk = PopulHouseUseEnum.getCodeByName(oneData.get(27));
+                    if (isOk.equals(-1)) {
+                        ComMngPopulationMajorMistakeExcelVO mistake = new ComMngPopulationMajorMistakeExcelVO();
+                        index++;
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("您填写的是否违法犯罪有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setIsCrime(isOk);
+                } else {
+                    vo.setIsCrime(PopulHouseUseEnum.getCodeByName("否"));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(28))) {
+                    vo.setCrimeSutiation(oneData.get(28).trim());
+                }
+                vo.getUserTagStr().add("精神障碍患者");
+                for (int i = 29; 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<ComMngPopulationMajorExcelVO> newVoList =
+                voList.stream().filter(ListUtils.distinctByKey(ComMngPopulationMajorExcelVO::getDistinctPass))
+                    .collect(Collectors.toList());
+            log.info("开始进入业务层处理逻辑");
+            R r = communityService.listSavePopulationMajorExcelVO(newVoList, communityId, userId);
+            log.info("业务层处理逻辑完成");
+            if (!R.isOk(r)) {
+                log.info("业务层处理成功");
+                List<ComMngPopulationMajorMistakeExcelVO> list = JSONArray
+                    .parseArray(JSONArray.toJSONString(r.getData()), ComMngPopulationMajorMistakeExcelVO.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", "NumberFormatException");
+        }
+    }
+
+    private void setMistake(Map<Integer, String> map, ComMngPopulationMajorMistakeExcelVO vo) {
+        vo.setSerialNumber(map.get(0));
+        vo.setName(map.get(1));
+        vo.setCardNo(map.get(2));
+        vo.setRoad(map.get(3));
+        vo.setDoorNo(map.get(4));
+        vo.setFloor(map.get(5));
+        vo.setUnitNo(map.get(6));
+        vo.setHouseNo(map.get(7));
+        vo.setIsRent(map.get(8));
+        vo.setHouseStatus(map.get(9));
+        vo.setHousePurpose(map.get(10));
+        vo.setControlStatus(map.get(11));
+        vo.setOutOrLocal(map.get(12));
+        vo.setCensusRegister(map.get(13));
+        vo.setCultureLevel(map.get(14));
+        vo.setEconomicCondition(map.get(15));
+        vo.setPersonType(map.get(16));
+        vo.setFamilySituation(map.get(17));
+        vo.setCustodyPerson(map.get(18));
+        vo.setCustodyRelation(map.get(19));
+        vo.setCustodyCardNo(map.get(20));
+        vo.setCustodyPersonPhone(map.get(21));
+        vo.setCustodyAddress(map.get(22));
+        vo.setHelpPerson(map.get(23));
+        vo.setHelpPersonPhone(map.get(24));
+        vo.setHelpMethod(map.get(25));
+        vo.setHelpSituation(map.get(26));
+        vo.setIsCrime(map.get(27));
+        vo.setCrimeSutiation(map.get(28));
+    }
+
+    private String convertMarriage(String ma) {
+
+        if (Objects.equals("已", ma) || Objects.equals("一", ma)) {
+            ma = "已婚";
+        } else if (Objects.equals("未", ma) || Objects.equals("未婚婚", ma)) {
+            ma = "未婚";
+        } else if (Objects.equals("初", ma)) {
+            ma = "初婚";
+        } else if (Objects.equals("再", ma)) {
+            ma = "再婚";
+        } else if (Objects.equals("复", ma)) {
+            ma = "复婚";
+        } else if (Objects.equals("丧", ma) || Objects.equals("丧偶偶", ma)) {
+            ma = "丧偶";
+        } else if (Objects.equals("离", ma) || Objects.equals("离异", ma) || Objects.equals("离异婚", ma)) {
+            ma = "离婚";
+        } else if (Objects.equals("分", ma)) {
+            ma = "分居";
+        }
+
+        return ma;
+    }
+
+    private String convertRelation(String ra) {
+        if (ra.contains("户主")) {
+            ra = "户主";
+        } else if (Objects.equals(ra, "女儿")) {
+            ra = "女";
+        } else if (Objects.equals(ra, "儿子") || Objects.equals(ra, "儿")) {
+            ra = "子";
+        } else if (Objects.equals(ra, "大女")) {
+            ra = "长女";
+        } else if (Objects.equals(ra, "二女") || Objects.equals(ra, "此女")) {
+            ra = "次女";
+        } else if (Objects.equals(ra, "二子")) {
+            ra = "次子";
+        } else if (Objects.equals(ra, "长男") || ra.contains("长子")) {
+            ra = "长子";
+        } else if (Objects.equals(ra, "非亲属") || ra.contains("女友") || ra.contains("女朋友") || ra.contains("男友")
+            || ra.contains("男朋友")) {
+            ra = "其他";
+        } else if (Objects.equals(ra, "姐")) {
+            ra = "姐姐";
+        } else if (Objects.equals(ra, "户主")) {
+            ra = "本人";
+        } else if (Objects.equals(ra, "妻子") || Objects.equals(ra, "媳妇")) {
+            ra = "妻";
+        } else if (Objects.equals(ra, "哥") || Objects.equals(ra, "哥哥")) {
+            ra = "兄";
+        } else if (Objects.equals(ra, "丈夫")) {
+            ra = "夫";
+        } else if (Objects.equals(ra, "丈母娘")) {
+            ra = "岳母";
+        } else if (Objects.equals(ra, "继子") || Objects.equals(ra, "养子")) {
+            ra = "养子或继子";
+        } else if (Objects.equals(ra, "继女") || Objects.equals(ra, "养女")) {
+            ra = "养女或继女";
+        } else if (ra.contains("儿媳") || ra.contains("长媳")) {
+            ra = "儿媳";
+        } else if (Objects.equals(ra, "三姨") || Objects.equals(ra, "姨姨")) {
+            ra = "姨母";
+        } else if (Objects.equals(ra, "二外孙女")) {
+            ra = "外孙女";
+        } else if (Objects.equals(ra, "外孙")) {
+            ra = "外孙子";
+        } else if (Objects.equals(ra, "侄儿")) {
+            ra = "侄子";
+        } else if (ra.contains("表")) {
+            ra = "表兄弟、表姐妹";
+        } else if (Objects.equals(ra, "继父") || Objects.equals(ra, "养父")) {
+            ra = "继父或养父";
+        } else if (Objects.equals(ra, "父")) {
+            ra = "父亲";
+        } else if (Objects.equals(ra, "弟弟")) {
+            ra = "弟";
+        } else if (Objects.equals(ra, "孙")) {
+            ra = "孙子";
+        } else if (Objects.equals(ra, "孙媳妇") || Objects.equals(ra, "外孙媳妇")) {
+            ra = "孙媳妇或外孙媳妇";
+        } else if (Objects.equals(ra, "妹")) {
+            ra = "妹妹";
+        } else if (Objects.equals(ra, "祖父母")) {
+            ra = "祖父母或外祖父母";
+        } else if (Objects.equals(ra, "姐妹") || Objects.equals(ra, "兄弟")) {
+            ra = "兄弟姐妹";
+        } else if (Objects.equals(ra, "其他姐妹") || Objects.equals(ra, "其他兄弟")) {
+            ra = "其他兄弟姐妹";
+        } else if (Objects.equals(ra, "奶奶")) {
+            ra = "祖母";
+        } else if (Objects.equals(ra, "爷爷")) {
+            ra = "祖父";
+        } else if (Objects.equals(ra, "爷爷")) {
+            ra = "祖父";
+        } else if (ra.contains("堂")) {
+            ra = "堂兄弟、堂姐妹";
+        }
+
+        return ra;
+    }
+}
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..509aad4
--- /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 +  + 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<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", "NumberFormatException");
+        }
+    }
+
+    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
new file mode 100644
index 0000000..7b7a1da
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationRehabilitationExcelListen.java
@@ -0,0 +1,658 @@
+package com.panzhihua.common.listen;
+
+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;
+
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+
+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.ComMngPopulationRehabilitationExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationRehabilitationMistakeExcelVO;
+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 cn.hutool.core.date.DateException;
+import cn.hutool.core.date.DateUtil;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @description: 刑释人员导入监听
+ * @author: txb
+ */
+@Slf4j
+public class ComMngPopulationRehabilitationExcelListen 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 ComMngPopulationRehabilitationExcelListen(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("000", "导入数据为空!");
+        }
+        ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
+        String key = Constants.REHABILITATION_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<ComMngPopulationRehabilitationExcelVO> voList = Lists.newArrayList();
+            // List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
+            ArrayList<ComMngPopulationRehabilitationMistakeExcelVO> mistakes = Lists.newArrayList();
+            for (Map<Integer, String> oneData : list) {
+                ComMngPopulationRehabilitationExcelVO vo = new ComMngPopulationRehabilitationExcelVO();
+                if (StringUtils.isNotEmpty(oneData.get(0))) {
+                    vo.setSerialNumber(oneData.get(0));
+                }
+                // 姓名和身份证都为空,为空户,无需操作,否则就解析年龄,性别,出生年月日
+                if (StringUtils.isEmpty(oneData.get(1))) {
+                    ComMngPopulationRehabilitationMistakeExcelVO mistake =
+                        new ComMngPopulationRehabilitationMistakeExcelVO();
+                    index++;
+                    setRehabilitationMistake(oneData, mistake);
+                    mistake.setMistake("名字不可为空,请填写姓名");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setName(oneData.get(1));
+                if (StringUtils.isEmpty(oneData.get(3))) {
+                    ComMngPopulationRehabilitationMistakeExcelVO mistake =
+                        new ComMngPopulationRehabilitationMistakeExcelVO();
+                    index++;
+                    setRehabilitationMistake(oneData, mistake);
+                    mistake.setMistake("身份证号不可为空,请填写身份证");
+                    mistakes.add(mistake);
+                    continue;
+                }
+
+                // 判断身份证号码位数
+                if (oneData.get(3).length() != 18) {
+                    ComMngPopulationRehabilitationMistakeExcelVO mistake =
+                        new ComMngPopulationRehabilitationMistakeExcelVO();
+                    index++;
+                    setRehabilitationMistake(oneData, mistake);
+                    mistake.setMistake("身份证号位数有误,请检查身份证号码是否正确");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setCardNo(oneData.get(3).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(4))) {
+                    vo.setPhone(oneData.get(4));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(5))) {
+                    vo.setNativePlace(oneData.get(5));
+                }
+                if (StringUtils.isEmpty(oneData.get(6))) {
+                    index++;
+                    ComMngPopulationRehabilitationMistakeExcelVO mistake =
+                        new ComMngPopulationRehabilitationMistakeExcelVO();
+                    setRehabilitationMistake(oneData, mistake);
+                    mistake.setMistake("街路巷不可为空");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setRoad(oneData.get(6));
+                if (StringUtils.isEmpty(oneData.get(7))) {
+                    index++;
+                    ComMngPopulationRehabilitationMistakeExcelVO mistake =
+                        new ComMngPopulationRehabilitationMistakeExcelVO();
+                    setRehabilitationMistake(oneData, mistake);
+                    mistake.setMistake("小区号不可为空");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setDoorNo(oneData.get(7).trim());
+                // if(StringUtils.isEmpty(oneData.get(8))){
+                // index++;
+                // ComMngPopulationRehabilitationMistakeExcelVO mistake = new
+                // ComMngPopulationRehabilitationMistakeExcelVO();
+                // setRehabilitationMistake(oneData, mistake);
+                // mistake.setMistake("楼排号不可为空");
+                // mistakes.add(mistake);
+                // continue;
+                // }
+                if (StringUtils.isNotEmpty(oneData.get(8))) {
+                    vo.setFloor(oneData.get(8).trim());
+                }
+                // if(StringUtils.isEmpty(oneData.get(9))){
+                // index++;
+                // ComMngPopulationRehabilitationMistakeExcelVO mistake = new
+                // ComMngPopulationRehabilitationMistakeExcelVO();
+                // setRehabilitationMistake(oneData, mistake);
+                // mistake.setMistake("单元号不可为空");
+                // mistakes.add(mistake);
+                // continue;
+                // }
+                if (StringUtils.isNotEmpty(oneData.get(9))) {
+                    vo.setUnitNo(oneData.get(9).trim());
+                }
+                // if(StringUtils.isEmpty(oneData.get(10))){
+                // index++;
+                // ComMngPopulationRehabilitationMistakeExcelVO mistake = new
+                // ComMngPopulationRehabilitationMistakeExcelVO();
+                // setRehabilitationMistake(oneData, mistake);
+                // mistake.setMistake("户室不可为空");
+                // mistakes.add(mistake);
+                // continue;
+                // }
+                if (StringUtils.isNotEmpty(oneData.get(10))) {
+                    vo.setHouseNo(oneData.get(10).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(11))) {
+                    Integer isOk = PopulHouseUseEnum.getCodeByName(oneData.get(11));
+                    if (isOk.equals(-1)) {
+                        ComMngPopulationRehabilitationMistakeExcelVO mistake =
+                            new ComMngPopulationRehabilitationMistakeExcelVO();
+                        index++;
+                        setRehabilitationMistake(oneData, mistake);
+                        mistake.setMistake("您填写的是否租住有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setIsRent(isOk);
+                } else {
+                    vo.setIsRent(PopulHouseUseEnum.getCodeByName("否"));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(12))) {
+                    Integer isOk = PopulHouseStatusEnum.getCodeByName(oneData.get(12).trim());
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationRehabilitationMistakeExcelVO mistake =
+                            new ComMngPopulationRehabilitationMistakeExcelVO();
+                        setRehabilitationMistake(oneData, mistake);
+                        mistake.setMistake("您填写的房屋状态有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setHouseStatus(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(13))) {
+                    Integer isOk = PopulHousePurposeEnum.getCodeByName(oneData.get(13).trim());
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationRehabilitationMistakeExcelVO mistake =
+                            new ComMngPopulationRehabilitationMistakeExcelVO();
+                        setRehabilitationMistake(oneData, mistake);
+                        mistake.setMistake("您填写的房屋用途有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setHousePurpose(PopulHousePurposeEnum.getCodeByName(oneData.get(13).trim()));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(14))) {
+                    Integer isOk = PopulHouseControlStatusEnum.getCodeByName(oneData.get(14));
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationRehabilitationMistakeExcelVO mistake =
+                            new ComMngPopulationRehabilitationMistakeExcelVO();
+                        setRehabilitationMistake(oneData, mistake);
+                        mistake.setMistake("您填写的管控状态有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setControlStatus(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(15))) {
+                    Integer isOk = PopulOutOrLocalEnum.getCodeByName(oneData.get(15));
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationRehabilitationMistakeExcelVO mistake =
+                            new ComMngPopulationRehabilitationMistakeExcelVO();
+                        setRehabilitationMistake(oneData, mistake);
+                        mistake.setMistake("您填写的本地/外地有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setOutOrLocal(isOk);
+                } else {
+                    vo.setOutOrLocal(PopulOutOrLocalEnum.getCodeByName("本地"));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(16))) {
+                    vo.setCensusRegister(oneData.get(16).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(17))) {
+                    vo.setMainRelatives(oneData.get(17).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(18))) {
+//                    Integer isOk = PopulRelationEnum.getCodeByName(oneData.get(18));
+//                    if (isOk.equals(-1)) {
+//                        index++;
+//                        ComMngPopulationRehabilitationMistakeExcelVO mistake =
+//                            new ComMngPopulationRehabilitationMistakeExcelVO();
+//                        setRehabilitationMistake(oneData, mistake);
+//                        mistake.setMistake("您填写的与人员关系有误");
+//                        mistakes.add(mistake);
+//                        continue;
+//                    }
+                    vo.setPatientRelation(oneData.get(18).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(19))) {
+                    vo.setRehabReasonAndType(oneData.get(19).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(20))) {
+                    Integer isOk = PopulHouseUseEnum.getCodeByName(oneData.get(20));
+                    if (isOk.equals(-1)) {
+                        ComMngPopulationRehabilitationMistakeExcelVO mistake =
+                            new ComMngPopulationRehabilitationMistakeExcelVO();
+                        index++;
+                        setRehabilitationMistake(oneData, mistake);
+                        mistake.setMistake("您填写的是否列管有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setIsRehab(isOk);
+                } else {
+                    vo.setIsRehab(PopulHouseUseEnum.getCodeByName("否"));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(21))) {
+                    Integer isOk = PopulHouseUseEnum.getCodeByName(oneData.get(21));
+                    if (isOk.equals(-1)) {
+                        ComMngPopulationRehabilitationMistakeExcelVO mistake =
+                            new ComMngPopulationRehabilitationMistakeExcelVO();
+                        index++;
+                        setRehabilitationMistake(oneData, mistake);
+                        mistake.setMistake("您填写的是否累惯犯有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setIsRecidivist(isOk);
+                } else {
+                    vo.setIsRecidivist(PopulHouseUseEnum.getCodeByName("否"));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(22))) {
+                    vo.setOriginalTerm(oneData.get(22).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(23))) {
+                    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(), parsePatterns));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(26))) {
+                    vo.setSentencePlace(oneData.get(26).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(27))) {
+                    vo.setRiskAssessment(oneData.get(27).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(28))) {
+                    vo.setJoinDate(DateUtil.parse(oneData.get(28).trim(), parsePatterns));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(29))) {
+                    vo.setJoinSituation(oneData.get(29).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(30))) {
+                    Integer isOk = PopulHouseUseEnum.getCodeByName(oneData.get(30));
+                    if (isOk.equals(-1)) {
+                        ComMngPopulationRehabilitationMistakeExcelVO mistake =
+                            new ComMngPopulationRehabilitationMistakeExcelVO();
+                        index++;
+                        setRehabilitationMistake(oneData, mistake);
+                        mistake.setMistake("您填写的是否重新犯罪有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setIsAgainCrime(isOk);
+                } else {
+                    vo.setIsAgainCrime(PopulHouseUseEnum.getCodeByName("否"));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(31))) {
+                    vo.setAgainCrimeName(oneData.get(31).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(32))) {
+                    vo.setPlaceSituation(oneData.get(32).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(33))) {
+                    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(), parsePatterns));
+                    } catch (DateException e) {
+                        log.info("处理数据时失败");
+                        e.printStackTrace();
+                        ComMngPopulationRehabilitationMistakeExcelVO mistake =
+                            new ComMngPopulationRehabilitationMistakeExcelVO();
+                        index++;
+                        setRehabilitationMistake(oneData, mistake);
+                        mistake.setMistake("您填写的帮教开始日期有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                }
+                if (StringUtils.isNotEmpty(oneData.get(36))) {
+                    try {
+                        vo.setHelpEnd(DateUtil.parse(oneData.get(36).trim(), parsePatterns));
+                    } catch (DateException e) {
+                        log.info("处理数据时失败");
+                        e.printStackTrace();
+                        ComMngPopulationRehabilitationMistakeExcelVO mistake =
+                            new ComMngPopulationRehabilitationMistakeExcelVO();
+                        index++;
+                        setRehabilitationMistake(oneData, mistake);
+                        mistake.setMistake("您填写的帮教结束日期有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                }
+                if (StringUtils.isNotEmpty(oneData.get(37))) {
+                    vo.setHelpSituation(oneData.get(37).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(38))) {
+                    vo.setRemark(oneData.get(38).trim());
+                }
+                vo.getUserTagStr().add("刑满释放");
+                for (int i = 39; 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<ComMngPopulationRehabilitationExcelVO> newVoList =
+                voList.stream().filter(ListUtils.distinctByKey(ComMngPopulationRehabilitationExcelVO::getDistinctPass))
+                    .collect(Collectors.toList());
+            log.info("开始进入业务层处理逻辑");
+            R r = communityService.listSavePopulationRehabilitationExcelVO(newVoList, communityId, userId);
+            log.info("业务层处理逻辑完成");
+            if (!R.isOk(r)) {
+                log.info("业务层处理成功");
+                List<ComMngPopulationRehabilitationMistakeExcelVO> list = JSONArray.parseArray(
+                    JSONArray.toJSONString(r.getData()), ComMngPopulationRehabilitationMistakeExcelVO.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", "NumberFormatException");
+        }
+    }
+
+    private void setRehabilitationMistake(Map<Integer, String> map, ComMngPopulationRehabilitationMistakeExcelVO vo) {
+        vo.setSerialNumber(map.get(0));
+        vo.setName(map.get(1));
+        vo.setCardNo(map.get(3));
+        vo.setNation(map.get(2));
+        vo.setPhone(map.get(4));
+        vo.setNativePlace(map.get(5));
+        vo.setRoad(map.get(6));
+        vo.setDoorNo(map.get(7));
+        vo.setFloor(map.get(8));
+        vo.setUnitNo(map.get(9));
+        vo.setHouseNo(map.get(10));
+        vo.setIsRent(map.get(11));
+        vo.setHouseStatus(map.get(12));
+        vo.setHousePurpose(map.get(13));
+        vo.setControlStatus(map.get(14));
+        vo.setOutOrLocal(map.get(15));
+        vo.setCensusRegister(map.get(16));
+        vo.setMainRelatives(map.get(17));
+        vo.setPatientRelation(map.get(18));
+        vo.setRehabReasonAndType(map.get(19));
+        vo.setIsRehab(map.get(20));
+        vo.setIsRecidivist(map.get(21));
+        vo.setOriginalTerm(map.get(22));
+        vo.setSentenceBegin(map.get(23));
+        vo.setOriginalCharge(map.get(24));
+        vo.setSentenceEnd(map.get(25));
+        vo.setSentencePlace(map.get(26));
+        vo.setRiskAssessment(map.get(27));
+        vo.setJoinDate(map.get(28));
+        vo.setJoinSituation(map.get(29));
+        vo.setIsAgainCrime(map.get(30));
+        vo.setAgainCrimeName(map.get(31));
+        vo.setPlaceSituation(map.get(32));
+        vo.setPlaceDate(map.get(33));
+        vo.setNotPlaceReason(map.get(34));
+        vo.setHelpBegin(map.get(35));
+        vo.setHelpEnd(map.get(36));
+        vo.setHelpSituation(map.get(37));
+        vo.setRemark(map.get(38));
+    }
+
+    private String convertMarriage(String ma) {
+
+        if (Objects.equals("已", ma) || Objects.equals("一", ma)) {
+            ma = "已婚";
+        } else if (Objects.equals("未", ma) || Objects.equals("未婚婚", ma)) {
+            ma = "未婚";
+        } else if (Objects.equals("初", ma)) {
+            ma = "初婚";
+        } else if (Objects.equals("再", ma)) {
+            ma = "再婚";
+        } else if (Objects.equals("复", ma)) {
+            ma = "复婚";
+        } else if (Objects.equals("丧", ma) || Objects.equals("丧偶偶", ma)) {
+            ma = "丧偶";
+        } else if (Objects.equals("离", ma) || Objects.equals("离异", ma) || Objects.equals("离异婚", ma)) {
+            ma = "离婚";
+        } else if (Objects.equals("分", ma)) {
+            ma = "分居";
+        }
+
+        return ma;
+    }
+
+    private String convertRelation(String ra) {
+        if (ra.contains("户主")) {
+            ra = "户主";
+        } else if (Objects.equals(ra, "女儿")) {
+            ra = "女";
+        } else if (Objects.equals(ra, "儿子") || Objects.equals(ra, "儿")) {
+            ra = "子";
+        } else if (Objects.equals(ra, "大女")) {
+            ra = "长女";
+        } else if (Objects.equals(ra, "二女") || Objects.equals(ra, "此女")) {
+            ra = "次女";
+        } else if (Objects.equals(ra, "二子")) {
+            ra = "次子";
+        } else if (Objects.equals(ra, "长男") || ra.contains("长子")) {
+            ra = "长子";
+        } else if (Objects.equals(ra, "非亲属") || ra.contains("女友") || ra.contains("女朋友") || ra.contains("男友")
+            || ra.contains("男朋友")) {
+            ra = "其他";
+        } else if (Objects.equals(ra, "姐")) {
+            ra = "姐姐";
+        } else if (Objects.equals(ra, "户主")) {
+            ra = "本人";
+        } else if (Objects.equals(ra, "妻子") || Objects.equals(ra, "媳妇")) {
+            ra = "妻";
+        } else if (Objects.equals(ra, "哥") || Objects.equals(ra, "哥哥")) {
+            ra = "兄";
+        } else if (Objects.equals(ra, "丈夫")) {
+            ra = "夫";
+        } else if (Objects.equals(ra, "丈母娘")) {
+            ra = "岳母";
+        } else if (Objects.equals(ra, "继子") || Objects.equals(ra, "养子")) {
+            ra = "养子或继子";
+        } else if (Objects.equals(ra, "继女") || Objects.equals(ra, "养女")) {
+            ra = "养女或继女";
+        } else if (ra.contains("儿媳") || ra.contains("长媳")) {
+            ra = "儿媳";
+        } else if (Objects.equals(ra, "三姨") || Objects.equals(ra, "姨姨")) {
+            ra = "姨母";
+        } else if (Objects.equals(ra, "二外孙女")) {
+            ra = "外孙女";
+        } else if (Objects.equals(ra, "外孙")) {
+            ra = "外孙子";
+        } else if (Objects.equals(ra, "侄儿")) {
+            ra = "侄子";
+        } else if (ra.contains("表")) {
+            ra = "表兄弟、表姐妹";
+        } else if (Objects.equals(ra, "继父") || Objects.equals(ra, "养父")) {
+            ra = "继父或养父";
+        } else if (Objects.equals(ra, "父")) {
+            ra = "父亲";
+        } else if (Objects.equals(ra, "弟弟")) {
+            ra = "弟";
+        } else if (Objects.equals(ra, "孙")) {
+            ra = "孙子";
+        } else if (Objects.equals(ra, "孙媳妇") || Objects.equals(ra, "外孙媳妇")) {
+            ra = "孙媳妇或外孙媳妇";
+        } else if (Objects.equals(ra, "妹")) {
+            ra = "妹妹";
+        } else if (Objects.equals(ra, "祖父母")) {
+            ra = "祖父母或外祖父母";
+        } else if (Objects.equals(ra, "姐妹") || Objects.equals(ra, "兄弟")) {
+            ra = "兄弟姐妹";
+        } else if (Objects.equals(ra, "其他姐妹") || Objects.equals(ra, "其他兄弟")) {
+            ra = "其他兄弟姐妹";
+        } else if (Objects.equals(ra, "奶奶")) {
+            ra = "祖母";
+        } else if (Objects.equals(ra, "爷爷")) {
+            ra = "祖父";
+        } else if (Objects.equals(ra, "爷爷")) {
+            ra = "祖父";
+        } else if (ra.contains("堂")) {
+            ra = "堂兄弟、堂姐妹";
+        }
+
+        return ra;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationSentenceExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationSentenceExcelListen.java
new file mode 100644
index 0000000..797d189
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationSentenceExcelListen.java
@@ -0,0 +1,519 @@
+package com.panzhihua.common.listen;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+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;
+
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+
+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.ComMngPopulationSentenceExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationSentenceMistakeExcelVO;
+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;
+
+/**
+ * @description: 服刑人员导入监听
+ * @author: txb
+ */
+@Slf4j
+public class ComMngPopulationSentenceExcelListen 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 ComMngPopulationSentenceExcelListen(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("000", "导入数据为空!");
+        }
+        ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
+        String Sentence = Constants.SENTENCE_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 {
+            ArrayList<ComMngPopulationSentenceExcelVO> voList = Lists.newArrayList();
+            // List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
+            ArrayList<ComMngPopulationSentenceMistakeExcelVO> mistakes = Lists.newArrayList();
+            for (Map<Integer, String> oneData : list) {
+                ComMngPopulationSentenceExcelVO vo = new ComMngPopulationSentenceExcelVO();
+                if (StringUtils.isNotEmpty(oneData.get(0))) {
+                    vo.setSerialNumber(oneData.get(0));
+                }
+                // 姓名和身份证都为空,为空户,无需操作,否则就解析年龄,性别,出生年月日
+                if (StringUtils.isEmpty(oneData.get(1))) {
+                    ComMngPopulationSentenceMistakeExcelVO mistake = new ComMngPopulationSentenceMistakeExcelVO();
+                    index++;
+                    setSentenceMistake(oneData, mistake);
+                    mistake.setMistake("名字不可为空,请填写姓名");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setName(oneData.get(1));
+                if (StringUtils.isEmpty(oneData.get(3))) {
+                    ComMngPopulationSentenceMistakeExcelVO mistake = new ComMngPopulationSentenceMistakeExcelVO();
+                    index++;
+                    setSentenceMistake(oneData, mistake);
+                    mistake.setMistake("身份证号不可为空,请填写身份证");
+                    mistakes.add(mistake);
+                    continue;
+                }
+
+                // 判断身份证号码位数
+                if (oneData.get(3).length() != 18) {
+                    ComMngPopulationSentenceMistakeExcelVO mistake = new ComMngPopulationSentenceMistakeExcelVO();
+                    index++;
+                    setSentenceMistake(oneData, mistake);
+                    mistake.setMistake("身份证号位数有误,请检查身份证号码是否正确");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setCardNo(oneData.get(3).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(4))) {
+                    vo.setPhone(oneData.get(4));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(5))) {
+                    vo.setSpouse(oneData.get(5));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(6))) {
+                    vo.setProfession(oneData.get(6));
+                }
+                if (StringUtils.isEmpty(oneData.get(7))) {
+                    index++;
+                    ComMngPopulationSentenceMistakeExcelVO mistake = new ComMngPopulationSentenceMistakeExcelVO();
+                    setSentenceMistake(oneData, mistake);
+                    mistake.setMistake("街路巷不可为空");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setRoad(oneData.get(7));
+                if (StringUtils.isEmpty(oneData.get(8))) {
+                    index++;
+                    ComMngPopulationSentenceMistakeExcelVO mistake = new ComMngPopulationSentenceMistakeExcelVO();
+                    setSentenceMistake(oneData, mistake);
+                    mistake.setMistake("小区号不可为空");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setDoorNo(oneData.get(8).trim());
+                // if(StringUtils.isEmpty(oneData.get(9))){
+                // index++;
+                // ComMngPopulationSentenceMistakeExcelVO mistake = new ComMngPopulationSentenceMistakeExcelVO();
+                // setSentenceMistake(oneData, mistake);
+                // mistake.setMistake("楼排号不可为空");
+                // mistakes.add(mistake);
+                // continue;
+                // }
+                if (StringUtils.isNotEmpty(oneData.get(9))) {
+                    vo.setFloor(oneData.get(9).trim());
+                }
+                // if(StringUtils.isEmpty(oneData.get(10))){
+                // index++;
+                // ComMngPopulationSentenceMistakeExcelVO mistake = new ComMngPopulationSentenceMistakeExcelVO();
+                // setSentenceMistake(oneData, mistake);
+                // mistake.setMistake("单元号不可为空");
+                // mistakes.add(mistake);
+                // continue;
+                // }
+                if (StringUtils.isNotEmpty(oneData.get(10))) {
+                    vo.setUnitNo(oneData.get(10).trim());
+                }
+                // if(StringUtils.isEmpty(oneData.get(11))){
+                // index++;
+                // ComMngPopulationSentenceMistakeExcelVO mistake = new ComMngPopulationSentenceMistakeExcelVO();
+                // setSentenceMistake(oneData, mistake);
+                // mistake.setMistake("户室不可为空");
+                // mistakes.add(mistake);
+                // continue;
+                // }
+                if (StringUtils.isNotEmpty(oneData.get(11))) {
+                    vo.setHouseNo(oneData.get(11).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(12))) {
+                    Integer isOk = PopulHouseUseEnum.getCodeByName(oneData.get(12));
+                    if (isOk.equals(-1)) {
+                        ComMngPopulationSentenceMistakeExcelVO mistake = new ComMngPopulationSentenceMistakeExcelVO();
+                        index++;
+                        setSentenceMistake(oneData, mistake);
+                        mistake.setMistake("您填写的是否租住有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setIsRent(isOk);
+                } else {
+                    vo.setIsRent(PopulHouseUseEnum.getCodeByName("否"));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(13))) {
+                    Integer isOk = PopulHouseStatusEnum.getCodeByName(oneData.get(13).trim());
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationSentenceMistakeExcelVO mistake = new ComMngPopulationSentenceMistakeExcelVO();
+                        setSentenceMistake(oneData, mistake);
+                        mistake.setMistake("您填写的房屋状态有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setHouseStatus(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(14))) {
+                    Integer isOk = PopulHousePurposeEnum.getCodeByName(oneData.get(14).trim());
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationSentenceMistakeExcelVO mistake = new ComMngPopulationSentenceMistakeExcelVO();
+                        setSentenceMistake(oneData, mistake);
+                        mistake.setMistake("您填写的房屋用途有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setHousePurpose(PopulHousePurposeEnum.getCodeByName(oneData.get(14).trim()));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(15))) {
+                    Integer isOk = PopulHouseControlStatusEnum.getCodeByName(oneData.get(15));
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationSentenceMistakeExcelVO mistake = new ComMngPopulationSentenceMistakeExcelVO();
+                        setSentenceMistake(oneData, mistake);
+                        mistake.setMistake("您填写的管控状态有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setControlStatus(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(16))) {
+                    Integer isOk = PopulOutOrLocalEnum.getCodeByName(oneData.get(16));
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationSentenceMistakeExcelVO mistake = new ComMngPopulationSentenceMistakeExcelVO();
+                        setSentenceMistake(oneData, mistake);
+                        mistake.setMistake("您填写的本地/外地有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setOutOrLocal(isOk);
+                } else {
+                    vo.setOutOrLocal(PopulOutOrLocalEnum.getCodeByName("本地"));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(17))) {
+                    vo.setCensusRegister(oneData.get(17).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(18))) {
+                    vo.setSentencePlace(oneData.get(18).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(19))) {
+                    vo.setSentenceBegin(new SimpleDateFormat("yyyy-MM-dd").parse(oneData.get(19)));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(20))) {
+                    vo.setSentenceEnd(new SimpleDateFormat("yyyy-MM-dd").parse(oneData.get(20)));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(21))) {
+                    vo.setCharge(oneData.get(21).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(22))) {
+                    vo.setRemark(oneData.get(22).trim());
+                }
+                vo.getUserTagStr().add("刑满释放");
+                for (int i = 23; 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<ComMngPopulationSentenceExcelVO> newVoList =
+                voList.stream().filter(ListUtils.distinctByKey(ComMngPopulationSentenceExcelVO::getDistinctPass))
+                    .collect(Collectors.toList());
+            log.info("开始进入业务层处理逻辑");
+            R r = communityService.listSavePopulationSentenceExcelVO(newVoList, communityId, userId);
+            log.info("业务层处理逻辑完成");
+            if (!R.isOk(r)) {
+                log.info("业务层处理成功");
+                List<ComMngPopulationSentenceMistakeExcelVO> list = JSONArray
+                    .parseArray(JSONArray.toJSONString(r.getData()), ComMngPopulationSentenceMistakeExcelVO.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(Sentence, JSONArray.toJSONString(mistakes), 1, TimeUnit.HOURS);
+                log.info("将错误数据存入redis中成功");
+                throw new ServiceException("500", Sentence);
+            } else {
+                log.info("业务层处理逻辑失败");
+                if (!mistakes.isEmpty()) {
+                    log.info("业务层处理逻辑失败,将错误数据缓存到redis中");
+                    valueOperations.set(Sentence, JSONArray.toJSONString(mistakes), 1, TimeUnit.HOURS);
+                    log.info("业务层处理逻辑失败,将错误数据缓存到redis中成功");
+                    throw new ServiceException("500", Sentence);
+                }
+            }
+        } 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", "NumberFormatException");
+        } catch (ParseException e1) {
+            log.info("处理数据时失败2");
+            e1.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", "NumberFormatException");
+        }
+    }
+
+    private void setSentenceMistake(Map<Integer, String> map, ComMngPopulationSentenceMistakeExcelVO vo) {
+        vo.setSerialNumber(map.get(0));
+        vo.setName(map.get(1));
+        vo.setCardNo(map.get(3));
+        vo.setNation(map.get(2));
+        vo.setPhone(map.get(4));
+        vo.setSpouse(map.get(5));
+        vo.setProfession(map.get(6));
+        vo.setRoad(map.get(7));
+        vo.setDoorNo(map.get(8));
+        vo.setFloor(map.get(9));
+        vo.setUnitNo(map.get(10));
+        vo.setHouseNo(map.get(11));
+        vo.setIsRent(map.get(12));
+        vo.setHouseStatus(map.get(13));
+        vo.setHousePurpose(map.get(14));
+        vo.setControlStatus(map.get(15));
+        vo.setOutOrLocal(map.get(16));
+        vo.setCensusRegister(map.get(17));
+        vo.setSentencePlace(map.get(18));
+        vo.setSentenceBegin(map.get(19));
+        vo.setSentenceEnd(map.get(20));
+        vo.setCharge(map.get(21));
+        vo.setRemark(map.get(22));
+    }
+
+    private String convertMarriage(String ma) {
+
+        if (Objects.equals("已", ma) || Objects.equals("一", ma)) {
+            ma = "已婚";
+        } else if (Objects.equals("未", ma) || Objects.equals("未婚婚", ma)) {
+            ma = "未婚";
+        } else if (Objects.equals("初", ma)) {
+            ma = "初婚";
+        } else if (Objects.equals("再", ma)) {
+            ma = "再婚";
+        } else if (Objects.equals("复", ma)) {
+            ma = "复婚";
+        } else if (Objects.equals("丧", ma) || Objects.equals("丧偶偶", ma)) {
+            ma = "丧偶";
+        } else if (Objects.equals("离", ma) || Objects.equals("离异", ma) || Objects.equals("离异婚", ma)) {
+            ma = "离婚";
+        } else if (Objects.equals("分", ma)) {
+            ma = "分居";
+        }
+
+        return ma;
+    }
+
+    private String convertRelation(String ra) {
+        if (ra.contains("户主")) {
+            ra = "户主";
+        } else if (Objects.equals(ra, "女儿")) {
+            ra = "女";
+        } else if (Objects.equals(ra, "儿子") || Objects.equals(ra, "儿")) {
+            ra = "子";
+        } else if (Objects.equals(ra, "大女")) {
+            ra = "长女";
+        } else if (Objects.equals(ra, "二女") || Objects.equals(ra, "此女")) {
+            ra = "次女";
+        } else if (Objects.equals(ra, "二子")) {
+            ra = "次子";
+        } else if (Objects.equals(ra, "长男") || ra.contains("长子")) {
+            ra = "长子";
+        } else if (Objects.equals(ra, "非亲属") || ra.contains("女友") || ra.contains("女朋友") || ra.contains("男友")
+            || ra.contains("男朋友")) {
+            ra = "其他";
+        } else if (Objects.equals(ra, "姐")) {
+            ra = "姐姐";
+        } else if (Objects.equals(ra, "户主")) {
+            ra = "本人";
+        } else if (Objects.equals(ra, "妻子") || Objects.equals(ra, "媳妇")) {
+            ra = "妻";
+        } else if (Objects.equals(ra, "哥") || Objects.equals(ra, "哥哥")) {
+            ra = "兄";
+        } else if (Objects.equals(ra, "丈夫")) {
+            ra = "夫";
+        } else if (Objects.equals(ra, "丈母娘")) {
+            ra = "岳母";
+        } else if (Objects.equals(ra, "继子") || Objects.equals(ra, "养子")) {
+            ra = "养子或继子";
+        } else if (Objects.equals(ra, "继女") || Objects.equals(ra, "养女")) {
+            ra = "养女或继女";
+        } else if (ra.contains("儿媳") || ra.contains("长媳")) {
+            ra = "儿媳";
+        } else if (Objects.equals(ra, "三姨") || Objects.equals(ra, "姨姨")) {
+            ra = "姨母";
+        } else if (Objects.equals(ra, "二外孙女")) {
+            ra = "外孙女";
+        } else if (Objects.equals(ra, "外孙")) {
+            ra = "外孙子";
+        } else if (Objects.equals(ra, "侄儿")) {
+            ra = "侄子";
+        } else if (ra.contains("表")) {
+            ra = "表兄弟、表姐妹";
+        } else if (Objects.equals(ra, "继父") || Objects.equals(ra, "养父")) {
+            ra = "继父或养父";
+        } else if (Objects.equals(ra, "父")) {
+            ra = "父亲";
+        } else if (Objects.equals(ra, "弟弟")) {
+            ra = "弟";
+        } else if (Objects.equals(ra, "孙")) {
+            ra = "孙子";
+        } else if (Objects.equals(ra, "孙媳妇") || Objects.equals(ra, "外孙媳妇")) {
+            ra = "孙媳妇或外孙媳妇";
+        } else if (Objects.equals(ra, "妹")) {
+            ra = "妹妹";
+        } else if (Objects.equals(ra, "祖父母")) {
+            ra = "祖父母或外祖父母";
+        } else if (Objects.equals(ra, "姐妹") || Objects.equals(ra, "兄弟")) {
+            ra = "兄弟姐妹";
+        } else if (Objects.equals(ra, "其他姐妹") || Objects.equals(ra, "其他兄弟")) {
+            ra = "其他兄弟姐妹";
+        } else if (Objects.equals(ra, "奶奶")) {
+            ra = "祖母";
+        } else if (Objects.equals(ra, "爷爷")) {
+            ra = "祖父";
+        } else if (Objects.equals(ra, "爷爷")) {
+            ra = "祖父";
+        } else if (ra.contains("堂")) {
+            ra = "堂兄弟、堂姐妹";
+        }
+
+        return ra;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationServeExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationServeExcelListen.java
new file mode 100644
index 0000000..9a845a2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationServeExcelListen.java
@@ -0,0 +1,753 @@
+package com.panzhihua.common.listen;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+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;
+
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+
+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.ComMngPopulationMistakeExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationServeExcelVO;
+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;
+
+/**
+ * @description: 实有人口导入监听
+ * @author: llming
+ */
+@Slf4j
+public class ComMngPopulationServeExcelListen extends AnalysisEventListener<Map<Integer, String>> {
+    /**
+     * 每隔5条存储数据库,实际使用中可以3000条,然后清理list ,方便内存回收
+     */
+    private static final int BATCH_COUNT = 10000;
+    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 ComMngPopulationServeExcelListen(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("000", "导入数据为空!");
+        }
+        ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
+        String key = Constants.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 {
+            ArrayList<ComMngPopulationServeExcelVO> voList = Lists.newArrayList();
+            // List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
+            ArrayList<ComMngPopulationMistakeExcelVO> mistakes = Lists.newArrayList();
+            for (Map<Integer, String> oneData : list) {
+                ComMngPopulationServeExcelVO vo = new ComMngPopulationServeExcelVO();
+                // 姓名和身份证都为空,为空户,无需操作,否则就解析年龄,性别,出生年月日
+                if (StringUtils.isNotEmpty(oneData.get(0)) || StringUtils.isNotEmpty(oneData.get(1))) {
+                    if (StringUtils.isEmpty(oneData.get(0))) {
+                        ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
+                        // ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+                        // importErrorVO.setErrorPosition("第" + index + "行,第1列");
+                        // importErrorVO.setErrorMsg("名字不可为空,请填写姓名");
+                        // populationImportErrorVOList.add(importErrorVO);
+                        index++;
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("名字不可为空,请填写姓名");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setName(oneData.get(0));
+                    if (StringUtils.isEmpty(oneData.get(1))) {
+                        // ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+                        ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
+                        // importErrorVO.setErrorPosition("第" + index + "行,第2列"+oneData.get(1));
+                        // importErrorVO.setErrorMsg("身份证号不可为空,请填写身份证号");
+                        // populationImportErrorVOList.add(importErrorVO);
+                        index++;
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("身份证号不可为空,请填写身份证号");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+
+                    // 判断身份证号码位数
+                    if (oneData.get(1).length() != 18) {
+                        // ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+                        // importErrorVO.setErrorPosition("第" + index + "行,第2列"+oneData.get(1));
+                        // importErrorVO.setErrorMsg("身份证号位数有误,请检查身份证号码是否正确");
+                        // populationImportErrorVOList.add(importErrorVO);
+                        index++;
+                        ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
+                        setMistake(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))) {
+                    // String nation = oneData.get(2);
+                    // if(!nation.contains("族")){
+                    // ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+                    // importErrorVO.setErrorPosition("第" + index + "行,第3列");
+                    // importErrorVO.setErrorMsg("您填写的民族格式有误");
+                    // populationImportErrorVOList.add(importErrorVO);
+                    // index++;
+                    // continue;
+                    // }
+                    vo.setNation(oneData.get(2));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(3))) {
+                    vo.setPoliticalOutlook(PopulPoliticalOutlookEnum.getCodeByName(oneData.get(3)));
+                    Integer isOk = PopulPoliticalOutlookEnum.getCodeByName(oneData.get(3));
+                    if (isOk.equals(-1)) {
+                        // ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+                        // importErrorVO.setErrorPosition("第" + index + "行,第4列");
+                        // importErrorVO.setErrorMsg("您填写的政治面貌有误");
+                        // populationImportErrorVOList.add(importErrorVO);
+                        index++;
+                        ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
+                        setMistake(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)) {
+                        // ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+                        // importErrorVO.setErrorPosition("第" + index + "行,第5列");
+                        // importErrorVO.setErrorMsg("您填写的是否租住有误");
+                        // populationImportErrorVOList.add(importErrorVO);
+                        index++;
+                        ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("您填写的是否租住有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setIsRent(isOk);
+                } else {
+                    vo.setIsRent(PopulHouseUseEnum.getCodeByName("否"));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(5))) {
+
+                    // String ra = convertRelation(oneData.get(5));
+                    //
+                    // String relation = dictMap.get(ra);
+                    // if(StringUtils.isEmpty(relation)){
+                    //// vo.setRelationStr(ra);
+                    // ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+                    // importErrorVO.setErrorPosition("第" + index + "行,第6列");
+                    // importErrorVO.setErrorMsg("您填写的与户主关系有误");
+                    // populationImportErrorVOList.add(importErrorVO);
+                    // index++;
+                    // continue;
+                    // }else{
+                    // vo.setRelation(Integer.valueOf(relation));
+                    // }
+                    // String relation = convertMarriage(oneData.get(5));
+                    Integer isOk = PopulRelationEnum.getCodeByName(oneData.get(5));
+
+                    if (isOk.equals(-1)) {
+                        // vo.setMarriageStr(ma);
+                        // ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+                        // importErrorVO.setErrorPosition("第" + index + "行,第6列");
+                        // importErrorVO.setErrorMsg("您填写的与户主关系有误");
+                        // populationImportErrorVOList.add(importErrorVO);
+                        index++;
+                        ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("您填写的与户主关系有误");
+                        mistakes.add(mistake);
+                        continue;
+                    } else {
+                        vo.setRelation(isOk);
+                    }
+                }
+                if (StringUtils.isEmpty(oneData.get(6))) {
+                    // ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+                    // importErrorVO.setErrorPosition("第" + index + "行,第7列");
+                    // importErrorVO.setErrorMsg("街路巷不可为空");
+                    // populationImportErrorVOList.add(importErrorVO);
+                    index++;
+                    ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
+                    setMistake(oneData, mistake);
+                    mistake.setMistake("街路巷不可为空");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setRoad(oneData.get(6));
+                if (StringUtils.isEmpty(oneData.get(7))) {
+                    // ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+                    // importErrorVO.setErrorPosition("第" + index + "行,第8列");
+                    // importErrorVO.setErrorMsg("小区号不可为空");
+                    // populationImportErrorVOList.add(importErrorVO);
+                    index++;
+                    ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
+                    setMistake(oneData, mistake);
+                    mistake.setMistake("小区号不可为空");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setDoorNo(oneData.get(7).trim());
+                // if(StringUtils.isEmpty(oneData.get(8))){
+                //// ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+                //// importErrorVO.setErrorPosition("第" + index + "行,第9列");
+                //// importErrorVO.setErrorMsg("楼排号不可为空");
+                //// populationImportErrorVOList.add(importErrorVO);
+                // index++;
+                // ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
+                // setMistake(oneData, mistake);
+                // mistake.setMistake("楼排号不可为空");
+                // mistakes.add(mistake);
+                // continue;
+                // }
+                if (StringUtils.isNotEmpty(oneData.get(8))) {
+                    vo.setFloor(oneData.get(8).trim());
+                }
+                // if(StringUtils.isEmpty(oneData.get(9))){
+                //// ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+                //// importErrorVO.setErrorPosition("第" + index + "行,第10列");
+                //// importErrorVO.setErrorMsg("单元号不可为空");
+                //// populationImportErrorVOList.add(importErrorVO);
+                // index++;
+                // ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
+                // setMistake(oneData, mistake);
+                // mistake.setMistake("单元号不可为空");
+                // mistakes.add(mistake);
+                // continue;
+                // }
+                if (StringUtils.isNotEmpty(oneData.get(9))) {
+                    vo.setUnitNo(oneData.get(9).trim());
+                }
+                // if(StringUtils.isEmpty(oneData.get(10))){
+                //// ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+                //// importErrorVO.setErrorPosition("第" + index + "行,第11列");
+                //// importErrorVO.setErrorMsg("户室不可为空");
+                //// populationImportErrorVOList.add(importErrorVO);
+                // index++;
+                // ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
+                // setMistake(oneData, mistake);
+                // mistake.setMistake("户室不可为空");
+                // mistakes.add(mistake);
+                // continue;
+                // }
+                if (StringUtils.isNotEmpty(oneData.get(10))) {
+                    vo.setHouseNo(oneData.get(10).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(11))) {
+                    vo.setBuildPurpose(oneData.get(11).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(12))) {
+                    vo.setBuildArea(oneData.get(12).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(13))) {
+                    Integer isOk = PopulHouseStatusEnum.getCodeByName(oneData.get(13).trim());
+                    if (isOk.equals(-1)) {
+                        // ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+                        // importErrorVO.setErrorPosition("第" + index + "行,第14列");
+                        // importErrorVO.setErrorMsg("您填写的房屋状态有误");
+                        // populationImportErrorVOList.add(importErrorVO);
+                        index++;
+                        ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("您填写的房屋状态有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setHouseStatus(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(14))) {
+                    Integer isOk = PopulHousePurposeEnum.getCodeByName(oneData.get(14).trim());
+                    if (isOk.equals(-1)) {
+                        // ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+                        // importErrorVO.setErrorPosition("第" + index + "行,第15列");
+                        // importErrorVO.setErrorMsg("您填写的房屋用途有误");
+                        // populationImportErrorVOList.add(importErrorVO);
+                        index++;
+                        ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("您填写的房屋用途有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setHousePurpose(PopulHousePurposeEnum.getCodeByName(oneData.get(14).trim()));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(15))) {
+                    Integer isOk = PopulHouseControlStatusEnum.getCodeByName(oneData.get(15));
+                    if (isOk.equals(-1)) {
+                        // ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+                        // importErrorVO.setErrorPosition("第" + index + "行,第16列");
+                        // importErrorVO.setErrorMsg("您填写的管控状态有误");
+                        // populationImportErrorVOList.add(importErrorVO);
+                        index++;
+                        ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("您填写的管控状态有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setControlStatus(isOk);
+                }
+
+                if (StringUtils.isNotEmpty(oneData.get(16))) {
+                    vo.setPhone(oneData.get(16).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(17))) {
+                    vo.setNativePlace(oneData.get(17).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(18))) {
+                    vo.setCultureLevel(PopulCultureLevelEnum.getCodeByName(oneData.get(18)));
+                    Integer isOk = PopulCultureLevelEnum.getCodeByName(oneData.get(18));
+                    if (isOk.equals(-1)) {
+                        // ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+                        // importErrorVO.setErrorPosition("第" + index + "行,第19列");
+                        // importErrorVO.setErrorMsg("您填写的文化程度有误");
+                        // populationImportErrorVOList.add(importErrorVO);
+                        index++;
+                        ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("您填写的文化程度有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setCultureLevel(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(19))) {
+                    // String ma = convertMarriage(oneData.get(19));
+                    Integer isOk = PopulMarriageEnum.getCodeByName(oneData.get(19));
+                    if (isOk.equals(-1)) {
+                        // vo.setMarriageStr(ma);
+                        // ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+                        // importErrorVO.setErrorPosition("第" + index + "行,第20列");
+                        // importErrorVO.setErrorMsg("您填写的婚姻状况有误");
+                        // populationImportErrorVOList.add(importErrorVO);
+                        index++;
+                        ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("您填写的婚姻状况有误");
+                        mistakes.add(mistake);
+                        continue;
+                    } else {
+                        vo.setMarriage(isOk);
+                    }
+
+                }
+                if (StringUtils.isNotEmpty(oneData.get(20))) {
+                    vo.setHealthy(oneData.get(20).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(21))) {
+                    vo.setBloodType(oneData.get(21).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(22))) {
+                    vo.setReligion(oneData.get(22).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(23))) {
+                    vo.setProfession(oneData.get(23).trim());
+                }
+
+                if (StringUtils.isNotEmpty(oneData.get(24))) {
+                    vo.setWorkCompany(oneData.get(24).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(25))) {
+                    Integer isOk = PopulOutOrLocalEnum.getCodeByName(oneData.get(25));
+                    if (isOk.equals(-1)) {
+                        // ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+                        // importErrorVO.setErrorPosition("第" + index + "行,第26列");
+                        // importErrorVO.setErrorMsg("您填写的本地/外地有误");
+                        // populationImportErrorVOList.add(importErrorVO);
+                        index++;
+                        ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("您填写的本地/外地有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setOutOrLocal(isOk);
+                } else {
+                    vo.setOutOrLocal(PopulOutOrLocalEnum.getCodeByName("本地"));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(26))) {
+                    vo.setCensusRegister(oneData.get(26).trim());
+                }
+                if (StringUtils.isEmpty(oneData.get(27))) {
+                    vo.setResidence(0);
+                } else {
+                    vo.setResidence(PopulIsOkEnum.getCodeByName(oneData.get(27).trim()));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(28))) {
+                    Integer isOk = PopulPersonTypeEnum.getCodeByName(oneData.get(28));
+                    if (isOk.equals(-1)) {
+                        // ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+                        // importErrorVO.setErrorPosition("第" + index + "行,第29列");
+                        // importErrorVO.setErrorMsg("您填写的人员类型有误");
+                        // populationImportErrorVOList.add(importErrorVO);
+                        index++;
+                        ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("您填写的人员类型有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setPersonType(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(29))) {
+                    vo.setCountry(oneData.get(29).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(30))) {
+                    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY-dd-MM HH:mm:ss");
+                    vo.setDateOfDeparture(simpleDateFormat.parse(oneData.get(30)));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(31))) {
+                    vo.setPersonStatus(oneData.get(31).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(32))) {
+                    vo.setMonthlyIncome(oneData.get(32).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(33))) {
+                    vo.setFamilyStatus(oneData.get(33).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(34))) {
+                    vo.setGoalInChina(oneData.get(34).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(35))) {
+                    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY-dd-MM HH:mm:ss");
+                    vo.setDateOfArrival(simpleDateFormat.parse(oneData.get(35)));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(36))) {
+                    vo.setRemark(oneData.get(36).trim());
+                }
+
+                if (StringUtils.isNotEmpty(oneData.get(37))) {
+                    vo.setIdCardPositive(oneData.get(37).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(38))) {
+                    vo.setIdCardBack(oneData.get(38).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(39))) {
+                    vo.setHouseHold(oneData.get(39).trim());
+                }
+                if (StringUtils.isEmpty(oneData.get(40))) {
+                    vo.setDeath(0);
+                } else {
+                    vo.setDeath(PopulIsOkEnum.getCodeByName(oneData.get(40).trim()));
+                }
+                for (int i = 41; 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<ComMngPopulationServeExcelVO> newVoList =
+                voList.stream().filter(ListUtils.distinctByKey(ComMngPopulationServeExcelVO::getDistinctPass))
+                    .collect(Collectors.toList());
+            log.info("开始进入业务层处理逻辑");
+            R r = communityService.listSavePopulationServeExcelVO(newVoList, communityId, userId);
+            log.info("业务层处理逻辑完成");
+            if (!R.isOk(r)) {
+                log.info("业务层处理成功");
+                List<ComMngPopulationMistakeExcelVO> list =
+                    JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComMngPopulationMistakeExcelVO.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", "NumberFormatException");
+        } catch (ParseException e1) {
+            log.info("处理数据时失败2");
+            e1.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", "NumberFormatException");
+        }
+    }
+
+    private void setMistake(Map<Integer, String> map, ComMngPopulationMistakeExcelVO 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.setRelation(map.get(5));
+        vo.setRoad(map.get(6));
+        vo.setDoorNo(map.get(7));
+        vo.setFloor(map.get(8));
+        vo.setUnitNo(map.get(9));
+        vo.setHouseNo(map.get(10));
+        vo.setBuildPurpose(map.get(11));
+        vo.setBuildArea(map.get(12));
+        vo.setHouseStatus(map.get(13));
+        vo.setHousePurpose(map.get(14));
+        vo.setControlStatus(map.get(15));
+        vo.setPhone(map.get(16));
+        vo.setNativePlace(map.get(17));
+        vo.setCultureLevel(map.get(18));
+        vo.setMarriage(map.get(19));
+        vo.setHealthy(map.get(20));
+        vo.setBloodType(map.get(21));
+        vo.setReligion(map.get(22));
+        vo.setProfession(map.get(23));
+        vo.setWorkCompany(map.get(24));
+        vo.setOutOrLocal(map.get(25));
+        vo.setCensusRegister(map.get(26));
+        vo.setResidence(map.get(27));
+        // vo.setAddress(map.get(28));
+        vo.setPersonType(map.get(28));
+        vo.setCountry(map.get(29));
+        vo.setStringOfDeparture(map.get(30));
+        vo.setPersonStatus(map.get(31));
+        vo.setMonthlyIncome(map.get(32));
+        vo.setFamilyStatus(map.get(33));
+        vo.setGoalInChina(map.get(34));
+        vo.setStringOfArrival(map.get(35));
+        vo.setRemark(map.get(36));
+        vo.setIdCardPositive(map.get(37));
+        vo.setIdCardBack(map.get(38));
+        vo.setHouseHold(map.get(39));
+        vo.setDeath(map.get(40));
+    }
+
+    private String convertMarriage(String ma) {
+
+        if (Objects.equals("已", ma) || Objects.equals("一", ma)) {
+            ma = "已婚";
+        } else if (Objects.equals("未", ma) || Objects.equals("未婚婚", ma)) {
+            ma = "未婚";
+        } else if (Objects.equals("初", ma)) {
+            ma = "初婚";
+        } else if (Objects.equals("再", ma)) {
+            ma = "再婚";
+        } else if (Objects.equals("复", ma)) {
+            ma = "复婚";
+        } else if (Objects.equals("丧", ma) || Objects.equals("丧偶偶", ma)) {
+            ma = "丧偶";
+        } else if (Objects.equals("离", ma) || Objects.equals("离异", ma) || Objects.equals("离异婚", ma)) {
+            ma = "离婚";
+        } else if (Objects.equals("分", ma)) {
+            ma = "分居";
+        }
+
+        return ma;
+    }
+
+    private String convertRelation(String ra) {
+        if (ra.contains("户主")) {
+            ra = "户主";
+        } else if (Objects.equals(ra, "女儿")) {
+            ra = "女";
+        } else if (Objects.equals(ra, "儿子") || Objects.equals(ra, "儿")) {
+            ra = "子";
+        } else if (Objects.equals(ra, "大女")) {
+            ra = "长女";
+        } else if (Objects.equals(ra, "二女") || Objects.equals(ra, "此女")) {
+            ra = "次女";
+        } else if (Objects.equals(ra, "二子")) {
+            ra = "次子";
+        } else if (Objects.equals(ra, "长男") || ra.contains("长子")) {
+            ra = "长子";
+        } else if (Objects.equals(ra, "非亲属") || ra.contains("女友") || ra.contains("女朋友") || ra.contains("男友")
+            || ra.contains("男朋友")) {
+            ra = "其他";
+        } else if (Objects.equals(ra, "姐")) {
+            ra = "姐姐";
+        } else if (Objects.equals(ra, "户主")) {
+            ra = "本人";
+        } else if (Objects.equals(ra, "妻子") || Objects.equals(ra, "媳妇")) {
+            ra = "妻";
+        } else if (Objects.equals(ra, "哥") || Objects.equals(ra, "哥哥")) {
+            ra = "兄";
+        } else if (Objects.equals(ra, "丈夫")) {
+            ra = "夫";
+        } else if (Objects.equals(ra, "丈母娘")) {
+            ra = "岳母";
+        } else if (Objects.equals(ra, "继子") || Objects.equals(ra, "养子")) {
+            ra = "养子或继子";
+        } else if (Objects.equals(ra, "继女") || Objects.equals(ra, "养女")) {
+            ra = "养女或继女";
+        } else if (ra.contains("儿媳") || ra.contains("长媳")) {
+            ra = "儿媳";
+        } else if (Objects.equals(ra, "三姨") || Objects.equals(ra, "姨姨")) {
+            ra = "姨母";
+        } else if (Objects.equals(ra, "二外孙女")) {
+            ra = "外孙女";
+        } else if (Objects.equals(ra, "外孙")) {
+            ra = "外孙子";
+        } else if (Objects.equals(ra, "侄儿")) {
+            ra = "侄子";
+        } else if (ra.contains("表")) {
+            ra = "表兄弟、表姐妹";
+        } else if (Objects.equals(ra, "继父") || Objects.equals(ra, "养父")) {
+            ra = "继父或养父";
+        } else if (Objects.equals(ra, "父")) {
+            ra = "父亲";
+        } else if (Objects.equals(ra, "弟弟")) {
+            ra = "弟";
+        } else if (Objects.equals(ra, "孙")) {
+            ra = "孙子";
+        } else if (Objects.equals(ra, "孙媳妇") || Objects.equals(ra, "外孙媳妇")) {
+            ra = "孙媳妇或外孙媳妇";
+        } else if (Objects.equals(ra, "妹")) {
+            ra = "妹妹";
+        } else if (Objects.equals(ra, "祖父母")) {
+            ra = "祖父母或外祖父母";
+        } else if (Objects.equals(ra, "姐妹") || Objects.equals(ra, "兄弟")) {
+            ra = "兄弟姐妹";
+        } else if (Objects.equals(ra, "其他姐妹") || Objects.equals(ra, "其他兄弟")) {
+            ra = "其他兄弟姐妹";
+        } else if (Objects.equals(ra, "奶奶")) {
+            ra = "祖母";
+        } else if (Objects.equals(ra, "爷爷")) {
+            ra = "祖父";
+        } else if (Objects.equals(ra, "爷爷")) {
+            ra = "祖父";
+        } else if (ra.contains("堂")) {
+            ra = "堂兄弟、堂姐妹";
+        }
+
+        return ra;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationTempFilledExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationTempFilledExcelListen.java
new file mode 100644
index 0000000..ef270c6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationTempFilledExcelListen.java
@@ -0,0 +1,238 @@
+package com.panzhihua.common.listen;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
+
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+
+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.Constants;
+import com.panzhihua.common.enums.PopulPersonTypeEnum;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngPopulationMistakeExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationServeExcelVO;
+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;
+
+/**
+ * @title: ComMngPopulationTempFilledExcelListen
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 实有人口临时填充人员类型
+ * @author: hans
+ * @date: 2022/01/19 13:33
+ */
+@Slf4j
+public class ComMngPopulationTempFilledExcelListen 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 ComMngPopulationTempFilledExcelListen(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("000", "数据为空!");
+        }
+        ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
+        String key = "POPULATION_FILLED_ERROR_LIST";
+
+        int index = 2;
+        try {
+            ArrayList<ComMngPopulationServeExcelVO> voList = Lists.newArrayList();
+            ArrayList<ComMngPopulationMistakeExcelVO> mistakes = Lists.newArrayList();
+
+            for (Map<Integer, String> oneData : list) {
+                ComMngPopulationServeExcelVO vo = new ComMngPopulationServeExcelVO();
+                // 姓名和身份证都为空,为空户,无需操作,否则就解析年龄,性别,出生年月日
+                if (StringUtils.isNotEmpty(oneData.get(0)) || StringUtils.isNotEmpty(oneData.get(1))) {
+                    if (StringUtils.isEmpty(oneData.get(0))) {
+                        ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
+                        index++;
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("名字不可为空,请填写姓名");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setName(oneData.get(0));
+                    if (StringUtils.isEmpty(oneData.get(1))) {
+                        ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
+                        index++;
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("身份证号不可为空,请填写身份证号");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+
+                    // 判断身份证号码位数
+                    if (oneData.get(1).length() != 18) {
+                        index++;
+                        ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("身份证号位数有误,请检查身份证号码是否正确");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setCardNo(oneData.get(1).toUpperCase());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(2))) {
+                    Integer isOk = PopulPersonTypeEnum.getCodeByName(oneData.get(2));
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
+                        setMistake(oneData, mistake);
+                        mistake.setMistake("您填写的人员类型有误");
+                        mistake.setPersonType(oneData.get(2));
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setPersonType(isOk);
+                }
+                // 将重复的数据进行MD5加密实现去重
+                String distinct = vo.getName() + vo.getCardNo();
+                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++;
+            }
+            // 根据list中的IdCard城市来去重
+            List<ComMngPopulationServeExcelVO> newVoList =
+                voList.stream().filter(ListUtils.distinctByKey(ComMngPopulationServeExcelVO::getDistinctPass))
+                    .collect(Collectors.toList());
+            log.info("开始进入业务层处理逻辑");
+            R r = communityService.filledPopulationPersonType(newVoList, communityId, userId);
+            log.info("业务层处理逻辑完成");
+            if (!R.isOk(r)) {
+                log.info("业务层处理成功");
+                List<ComMngPopulationMistakeExcelVO> list =
+                    JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComMngPopulationMistakeExcelVO.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();
+            log.error("数据格式有误,第" + index + "行");
+            throw new ServiceException("500", "NumberFormatException");
+        }
+    }
+
+    private void setMistake(Map<Integer, String> map, ComMngPopulationMistakeExcelVO 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.setRelation(map.get(5));
+        vo.setRoad(map.get(6));
+        vo.setDoorNo(map.get(7));
+        vo.setFloor(map.get(8));
+        vo.setUnitNo(map.get(9));
+        vo.setHouseNo(map.get(10));
+        vo.setBuildPurpose(map.get(11));
+        vo.setBuildArea(map.get(12));
+        vo.setHouseStatus(map.get(13));
+        vo.setHousePurpose(map.get(14));
+        vo.setControlStatus(map.get(15));
+        vo.setPhone(map.get(16));
+        vo.setNativePlace(map.get(17));
+        vo.setCultureLevel(map.get(18));
+        vo.setMarriage(map.get(19));
+        vo.setHealthy(map.get(20));
+        vo.setBloodType(map.get(21));
+        vo.setReligion(map.get(22));
+        vo.setProfession(map.get(23));
+        vo.setWorkCompany(map.get(24));
+        vo.setOutOrLocal(map.get(25));
+        vo.setCensusRegister(map.get(26));
+        vo.setResidence(map.get(27));
+        vo.setPersonType(map.get(28));
+        vo.setCountry(map.get(29));
+        vo.setStringOfDeparture(map.get(30));
+        vo.setPersonStatus(map.get(31));
+        vo.setMonthlyIncome(map.get(32));
+        vo.setFamilyStatus(map.get(33));
+        vo.setGoalInChina(map.get(34));
+        vo.setStringOfArrival(map.get(35));
+        vo.setRemark(map.get(36));
+        vo.setIdCardPositive(map.get(37));
+        vo.setIdCardBack(map.get(38));
+        vo.setHouseHold(map.get(39));
+        vo.setDeath(map.get(40));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationVeteransExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationVeteransExcelListen.java
new file mode 100644
index 0000000..47741d7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngPopulationVeteransExcelListen.java
@@ -0,0 +1,716 @@
+package com.panzhihua.common.listen;
+
+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;
+
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+
+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.ComMngPopulationVeteransExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationVeteransMistakeExcelVO;
+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 cn.hutool.core.date.DateUtil;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @description: 退役军人导入监听
+ * @author: txb
+ */
+@Slf4j
+public class ComMngPopulationVeteransExcelListen 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 ComMngPopulationVeteransExcelListen(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("000", "导入数据为空!");
+        }
+        ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
+        String Veterans = Constants.VETERANS_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<ComMngPopulationVeteransExcelVO> voList = Lists.newArrayList();
+            // List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
+            ArrayList<ComMngPopulationVeteransMistakeExcelVO> mistakes = Lists.newArrayList();
+            for (Map<Integer, String> oneData : list) {
+                ComMngPopulationVeteransExcelVO vo = new ComMngPopulationVeteransExcelVO();
+                if (StringUtils.isNotEmpty(oneData.get(0))) {
+                    vo.setSerialNumber(oneData.get(0));
+                }
+                // 姓名和身份证都为空,为空户,无需操作,否则就解析年龄,性别,出生年月日
+                if (StringUtils.isEmpty(oneData.get(3))) {
+                    ComMngPopulationVeteransMistakeExcelVO mistake = new ComMngPopulationVeteransMistakeExcelVO();
+                    index++;
+                    setVeteransMistake(oneData, mistake);
+                    mistake.setMistake("名字不可为空,请填写姓名");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setName(oneData.get(3));
+                if (StringUtils.isEmpty(oneData.get(4))) {
+                    ComMngPopulationVeteransMistakeExcelVO mistake = new ComMngPopulationVeteransMistakeExcelVO();
+                    index++;
+                    setVeteransMistake(oneData, mistake);
+                    mistake.setMistake("身份证号不可为空,请填写身份证");
+                    mistakes.add(mistake);
+                    continue;
+                }
+
+                // 判断身份证号码位数
+                if (oneData.get(4).length() != 18) {
+                    ComMngPopulationVeteransMistakeExcelVO mistake = new ComMngPopulationVeteransMistakeExcelVO();
+                    index++;
+                    setVeteransMistake(oneData, mistake);
+                    mistake.setMistake("身份证号位数有误,请检查身份证号码是否正确");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setCardNo(oneData.get(4).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(1))) {
+                    vo.setPersonStatus(oneData.get(1));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(2))) {
+                    vo.setOrganization(oneData.get(2));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(5))) {
+                    vo.setPhone(oneData.get(5));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(6))) {
+                    vo.setPhoto(oneData.get(6));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(7))) {
+//                    Integer isOk = PopulRegiterNatureEnum.getCodeByName(oneData.get(7).trim());
+//                    if (isOk.equals(-1)) {
+//                        index++;
+//                        ComMngPopulationVeteransMistakeExcelVO mistake = new ComMngPopulationVeteransMistakeExcelVO();
+//                        setVeteransMistake(oneData, mistake);
+//                        mistake.setMistake("您填写的户籍性质有误");
+//                        mistakes.add(mistake);
+//                        continue;
+//                    }
+                    vo.setRegiterNature(oneData.get(7).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(8))) {
+                    vo.setCensusRegister(oneData.get(8).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(9))) {
+                    Integer isOk = PopulOutOrLocalEnum.getCodeByName(oneData.get(9));
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationVeteransMistakeExcelVO mistake = new ComMngPopulationVeteransMistakeExcelVO();
+                        setVeteransMistake(oneData, mistake);
+                        mistake.setMistake("您填写的本地/外地有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setOutOrLocal(isOk);
+                } else {
+                    vo.setOutOrLocal(PopulOutOrLocalEnum.getCodeByName("本地"));
+                }
+                if (StringUtils.isEmpty(oneData.get(10))) {
+                    index++;
+                    ComMngPopulationVeteransMistakeExcelVO mistake = new ComMngPopulationVeteransMistakeExcelVO();
+                    setVeteransMistake(oneData, mistake);
+                    mistake.setMistake("街路巷不可为空");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setRoad(oneData.get(10));
+                if (StringUtils.isEmpty(oneData.get(11))) {
+                    index++;
+                    ComMngPopulationVeteransMistakeExcelVO mistake = new ComMngPopulationVeteransMistakeExcelVO();
+                    setVeteransMistake(oneData, mistake);
+                    mistake.setMistake("小区号不可为空");
+                    mistakes.add(mistake);
+                    continue;
+                }
+                vo.setDoorNo(oneData.get(11).trim());
+                // if(StringUtils.isEmpty(oneData.get(12))){
+                // index++;
+                // ComMngPopulationVeteransMistakeExcelVO mistake = new ComMngPopulationVeteransMistakeExcelVO();
+                // setVeteransMistake(oneData, mistake);
+                // mistake.setMistake("楼排号不可为空");
+                // mistakes.add(mistake);
+                // continue;
+                // }
+                if (StringUtils.isNotEmpty(oneData.get(12))) {
+                    vo.setFloor(oneData.get(12).trim());
+                }
+                // if(StringUtils.isEmpty(oneData.get(13))){
+                // index++;
+                // ComMngPopulationVeteransMistakeExcelVO mistake = new ComMngPopulationVeteransMistakeExcelVO();
+                // setVeteransMistake(oneData, mistake);
+                // mistake.setMistake("单元号不可为空");
+                // mistakes.add(mistake);
+                // continue;
+                // }
+                if (StringUtils.isNotEmpty(oneData.get(13))) {
+                    vo.setUnitNo(oneData.get(13).trim());
+                }
+                // if(StringUtils.isEmpty(oneData.get(14))){
+                // index++;
+                // ComMngPopulationVeteransMistakeExcelVO mistake = new ComMngPopulationVeteransMistakeExcelVO();
+                // setVeteransMistake(oneData, mistake);
+                // mistake.setMistake("户室不可为空");
+                // mistakes.add(mistake);
+                // continue;
+                // }
+                if (StringUtils.isNotEmpty(oneData.get(14))) {
+                    vo.setHouseNo(oneData.get(14).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(15))) {
+                    Integer isOk = PopulHouseUseEnum.getCodeByName(oneData.get(15));
+                    if (isOk.equals(-1)) {
+                        ComMngPopulationVeteransMistakeExcelVO mistake = new ComMngPopulationVeteransMistakeExcelVO();
+                        index++;
+                        setVeteransMistake(oneData, mistake);
+                        mistake.setMistake("您填写的是否租住有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setIsRent(isOk);
+                } else {
+                    vo.setIsRent(PopulHouseUseEnum.getCodeByName("否"));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(16))) {
+                    Integer isOk = PopulHouseStatusEnum.getCodeByName(oneData.get(16).trim());
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationVeteransMistakeExcelVO mistake = new ComMngPopulationVeteransMistakeExcelVO();
+                        setVeteransMistake(oneData, mistake);
+                        mistake.setMistake("您填写的房屋状态有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setHouseStatus(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(17))) {
+                    Integer isOk = PopulHousePurposeEnum.getCodeByName(oneData.get(17).trim());
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationVeteransMistakeExcelVO mistake = new ComMngPopulationVeteransMistakeExcelVO();
+                        setVeteransMistake(oneData, mistake);
+                        mistake.setMistake("您填写的房屋用途有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setHousePurpose(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(18))) {
+                    Integer isOk = PopulHouseControlStatusEnum.getCodeByName(oneData.get(18));
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationVeteransMistakeExcelVO mistake = new ComMngPopulationVeteransMistakeExcelVO();
+                        setVeteransMistake(oneData, mistake);
+                        mistake.setMistake("您填写的管控状态有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setControlStatus(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(19))) {
+                    vo.setEnlistDate(DateUtil.parse(oneData.get(19), parsePatterns));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(20))) {
+                    vo.setRetireDate(DateUtil.parse(oneData.get(20), parsePatterns));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(21))) {
+                    vo.setPersonCategory(oneData.get(21).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(22))) {
+                    vo.setNation(oneData.get(22).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(23))) {
+                    vo.setHealthy(oneData.get(23).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(24))) {
+                    Integer isOk = PopulPoliticalOutlookEnum.getCodeByName(oneData.get(24));
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationVeteransMistakeExcelVO mistake = new ComMngPopulationVeteransMistakeExcelVO();
+                        setVeteransMistake(oneData, mistake);
+                        mistake.setMistake("您填写的政治面貌有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setPoliticalOutlook(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(25))) {
+                    Integer isOk = PopulMarriageEnum.getCodeByName(oneData.get(25));
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationVeteransMistakeExcelVO mistake = new ComMngPopulationVeteransMistakeExcelVO();
+                        setVeteransMistake(oneData, mistake);
+                        mistake.setMistake("您填写的婚姻关系有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setMarriage(isOk);
+                }
+                if (StringUtils.isNotEmpty(oneData.get(26))) {
+                    vo.setHouseSituation(oneData.get(26).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(27))) {
+                    vo.setHouseSituationOther(oneData.get(27).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(28))) {
+                    vo.setBuildArea(oneData.get(28).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(29))) {
+                    vo.setEmploymentSituation(oneData.get(29).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(30))) {
+                    vo.setIncumbencyType(oneData.get(30).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(31))) {
+                    vo.setEmploymentSituationOther(oneData.get(31).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(32))) {
+                    vo.setEndowmentInsurance(oneData.get(32).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(33))) {
+                    vo.setMedicalInsurance(oneData.get(33).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(34))) {
+                    vo.setAnnualIncome(oneData.get(34).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(35))) {
+                    vo.setFatherHealthy(oneData.get(35).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(36))) {
+                    vo.setMotherHealthy(oneData.get(36).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(37))) {
+                    vo.setSpouseHealthy(oneData.get(37).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(38))) {
+                    vo.setSonHealthy(oneData.get(38).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(39))) {
+                    vo.setDaughterHealthy(oneData.get(39).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(40))) {
+                    vo.setMainDifficulty(oneData.get(40).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(41))) {
+                    vo.setOtherDifficulty(oneData.get(41).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(42))) {
+                    vo.setMainDemand(oneData.get(42).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(43))) {
+                    vo.setMainDemandOther(oneData.get(43).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(44))) {
+                    vo.setAcademicTraining(oneData.get(44).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(45))) {
+                    Integer isOk = PopulHouseUseEnum.getCodeByName(oneData.get(45));
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationVeteransMistakeExcelVO mistake = new ComMngPopulationVeteransMistakeExcelVO();
+                        setVeteransMistake(oneData, mistake);
+                        mistake.setMistake("您填写的是否已参加退役军人培训(政府性质)有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setIsVeteransTraining(isOk);
+                } else {
+                    vo.setIsVeteransTraining(PopulHouseUseEnum.getCodeByName("否"));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(46))) {
+                    vo.setEducationBeforeEnlistment(oneData.get(46).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(47))) {
+                    vo.setReEducation(oneData.get(47).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(48))) {
+                    vo.setMajor(oneData.get(48).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(49))) {
+                    vo.setMajorOther(oneData.get(49).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(50))) {
+                    vo.setOnceEngagedIndustry(oneData.get(50).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(51))) {
+                    vo.setOnceEngagedIndustryOther(oneData.get(51).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(52))) {
+                    vo.setIntendedPlaceOfEmployment(oneData.get(52).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(53))) {
+                    vo.setIntendedPlaceOfEmploymentOther(oneData.get(53).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(54))) {
+                    vo.setUnemploymedEngagedIndustry(oneData.get(54).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(55))) {
+                    vo.setUnemploymedEngagedIndustryOther(oneData.get(55).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(56))) {
+                    Integer isOk = PopulHouseUseEnum.getCodeByName(oneData.get(56));
+                    if (isOk.equals(-1)) {
+                        index++;
+                        ComMngPopulationVeteransMistakeExcelVO mistake = new ComMngPopulationVeteransMistakeExcelVO();
+                        setVeteransMistake(oneData, mistake);
+                        mistake.setMistake("您填写的是否有创业意愿有误");
+                        mistakes.add(mistake);
+                        continue;
+                    }
+                    vo.setIsBusiness(isOk);
+                } else {
+                    vo.setIsBusiness(PopulHouseUseEnum.getCodeByName("否"));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(57))) {
+                    vo.setBusinessDesire(oneData.get(57).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(58))) {
+                    vo.setRemark(oneData.get(58).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(59))) {
+                    vo.setFillUnit(oneData.get(59).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(60))) {
+                    vo.setFillPerson(oneData.get(50).trim());
+                }
+                if (StringUtils.isNotEmpty(oneData.get(61))) {
+                    vo.setFillPersonPhone(oneData.get(61).trim());
+                }
+                vo.getUserTagStr().add("退役军人");
+                for (int i = 62; 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<ComMngPopulationVeteransExcelVO> newVoList =
+                voList.stream().filter(ListUtils.distinctByKey(ComMngPopulationVeteransExcelVO::getDistinctPass))
+                    .collect(Collectors.toList());
+            log.info("开始进入业务层处理逻辑");
+            R r = communityService.listSavePopulationVeteransExcelVO(newVoList, communityId, userId);
+            log.info("业务层处理逻辑完成");
+            if (!R.isOk(r)) {
+                log.info("业务层处理成功");
+                List<ComMngPopulationVeteransMistakeExcelVO> list = JSONArray
+                    .parseArray(JSONArray.toJSONString(r.getData()), ComMngPopulationVeteransMistakeExcelVO.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(Veterans, JSONArray.toJSONString(mistakes), 1, TimeUnit.HOURS);
+                log.info("将错误数据存入redis中成功");
+                throw new ServiceException("500", Veterans);
+            } else {
+                log.info("业务层处理逻辑失败");
+                if (!mistakes.isEmpty()) {
+                    log.info("业务层处理逻辑失败,将错误数据缓存到redis中");
+                    valueOperations.set(Veterans, JSONArray.toJSONString(mistakes), 1, TimeUnit.HOURS);
+                    log.info("业务层处理逻辑失败,将错误数据缓存到redis中成功");
+                    throw new ServiceException("500", Veterans);
+                }
+            }
+        } 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", "NumberFormatException");
+        }
+    }
+
+    private void setVeteransMistake(Map<Integer, String> map, ComMngPopulationVeteransMistakeExcelVO vo) {
+        vo.setSerialNumber(map.get(0));
+        vo.setPersonStatus(map.get(1));
+        vo.setOrganization(map.get(2));
+        vo.setName(map.get(3));
+        vo.setCardNo(map.get(4));
+        vo.setPhone(map.get(5));
+        vo.setPhoto(map.get(6));
+        vo.setRegiterNature(map.get(7));
+        vo.setCensusRegister(map.get(8));
+        vo.setOutOrLocal(map.get(9));
+        vo.setRoad(map.get(10));
+        vo.setDoorNo(map.get(11));
+        vo.setFloor(map.get(12));
+        vo.setUnitNo(map.get(13));
+        vo.setHouseNo(map.get(14));
+        vo.setIsRent(map.get(15));
+        vo.setHouseStatus(map.get(16));
+        vo.setHousePurpose(map.get(17));
+        vo.setControlStatus(map.get(18));
+        vo.setEnlistDate(map.get(19));
+        vo.setRetireDate(map.get(20));
+        vo.setPersonCategory(map.get(21));
+        vo.setNation(map.get(22));
+        vo.setHealthy(map.get(23));
+        vo.setPoliticalOutlook(map.get(24));
+        vo.setMarriage(map.get(25));
+        vo.setHouseSituation(map.get(26));
+        vo.setHouseSituationOther(map.get(27));
+        vo.setBuildArea(map.get(28));
+        vo.setEmploymentSituation(map.get(29));
+        vo.setIncumbencyType(map.get(30));
+        vo.setEmploymentSituationOther(map.get(31));
+        vo.setEndowmentInsurance(map.get(32));
+        vo.setMedicalInsurance(map.get(33));
+        vo.setAnnualIncome(map.get(34));
+        vo.setFatherHealthy(map.get(35));
+        vo.setMotherHealthy(map.get(36));
+        vo.setSpouseHealthy(map.get(37));
+        vo.setSonHealthy(map.get(38));
+        vo.setDaughterHealthy(map.get(39));
+        vo.setMainDifficulty(map.get(40));
+        vo.setOtherDifficulty(map.get(41));
+        vo.setMainDemand(map.get(42));
+        vo.setMainDemandOther(map.get(43));
+        vo.setAcademicTraining(map.get(44));
+        vo.setIsVeteransTraining(map.get(45));
+        vo.setEducationBeforeEnlistment(map.get(46));
+        vo.setReEducation(map.get(47));
+        vo.setMajor(map.get(48));
+        vo.setMajorOther(map.get(49));
+        vo.setOnceEngagedIndustry(map.get(50));
+        vo.setOnceEngagedIndustryOther(map.get(51));
+        vo.setIntendedPlaceOfEmployment(map.get(52));
+        vo.setIntendedPlaceOfEmploymentOther(map.get(53));
+        vo.setUnemploymedEngagedIndustry(map.get(54));
+        vo.setUnemploymedEngagedIndustryOther(map.get(55));
+        vo.setIsBusiness(map.get(56));
+        vo.setBusinessDesire(map.get(57));
+        vo.setRemark(map.get(58));
+        vo.setFillUnit(map.get(59));
+        vo.setFillPerson(map.get(60));
+        vo.setFillPersonPhone(map.get(61));
+    }
+
+    private String convertMarriage(String ma) {
+
+        if (Objects.equals("已", ma) || Objects.equals("一", ma)) {
+            ma = "已婚";
+        } else if (Objects.equals("未", ma) || Objects.equals("未婚婚", ma)) {
+            ma = "未婚";
+        } else if (Objects.equals("初", ma)) {
+            ma = "初婚";
+        } else if (Objects.equals("再", ma)) {
+            ma = "再婚";
+        } else if (Objects.equals("复", ma)) {
+            ma = "复婚";
+        } else if (Objects.equals("丧", ma) || Objects.equals("丧偶偶", ma)) {
+            ma = "丧偶";
+        } else if (Objects.equals("离", ma) || Objects.equals("离异", ma) || Objects.equals("离异婚", ma)) {
+            ma = "离婚";
+        } else if (Objects.equals("分", ma)) {
+            ma = "分居";
+        }
+
+        return ma;
+    }
+
+    private String convertRelation(String ra) {
+        if (ra.contains("户主")) {
+            ra = "户主";
+        } else if (Objects.equals(ra, "女儿")) {
+            ra = "女";
+        } else if (Objects.equals(ra, "儿子") || Objects.equals(ra, "儿")) {
+            ra = "子";
+        } else if (Objects.equals(ra, "大女")) {
+            ra = "长女";
+        } else if (Objects.equals(ra, "二女") || Objects.equals(ra, "此女")) {
+            ra = "次女";
+        } else if (Objects.equals(ra, "二子")) {
+            ra = "次子";
+        } else if (Objects.equals(ra, "长男") || ra.contains("长子")) {
+            ra = "长子";
+        } else if (Objects.equals(ra, "非亲属") || ra.contains("女友") || ra.contains("女朋友") || ra.contains("男友")
+            || ra.contains("男朋友")) {
+            ra = "其他";
+        } else if (Objects.equals(ra, "姐")) {
+            ra = "姐姐";
+        } else if (Objects.equals(ra, "户主")) {
+            ra = "本人";
+        } else if (Objects.equals(ra, "妻子") || Objects.equals(ra, "媳妇")) {
+            ra = "妻";
+        } else if (Objects.equals(ra, "哥") || Objects.equals(ra, "哥哥")) {
+            ra = "兄";
+        } else if (Objects.equals(ra, "丈夫")) {
+            ra = "夫";
+        } else if (Objects.equals(ra, "丈母娘")) {
+            ra = "岳母";
+        } else if (Objects.equals(ra, "继子") || Objects.equals(ra, "养子")) {
+            ra = "养子或继子";
+        } else if (Objects.equals(ra, "继女") || Objects.equals(ra, "养女")) {
+            ra = "养女或继女";
+        } else if (ra.contains("儿媳") || ra.contains("长媳")) {
+            ra = "儿媳";
+        } else if (Objects.equals(ra, "三姨") || Objects.equals(ra, "姨姨")) {
+            ra = "姨母";
+        } else if (Objects.equals(ra, "二外孙女")) {
+            ra = "外孙女";
+        } else if (Objects.equals(ra, "外孙")) {
+            ra = "外孙子";
+        } else if (Objects.equals(ra, "侄儿")) {
+            ra = "侄子";
+        } else if (ra.contains("表")) {
+            ra = "表兄弟、表姐妹";
+        } else if (Objects.equals(ra, "继父") || Objects.equals(ra, "养父")) {
+            ra = "继父或养父";
+        } else if (Objects.equals(ra, "父")) {
+            ra = "父亲";
+        } else if (Objects.equals(ra, "弟弟")) {
+            ra = "弟";
+        } else if (Objects.equals(ra, "孙")) {
+            ra = "孙子";
+        } else if (Objects.equals(ra, "孙媳妇") || Objects.equals(ra, "外孙媳妇")) {
+            ra = "孙媳妇或外孙媳妇";
+        } else if (Objects.equals(ra, "妹")) {
+            ra = "妹妹";
+        } else if (Objects.equals(ra, "祖父母")) {
+            ra = "祖父母或外祖父母";
+        } else if (Objects.equals(ra, "姐妹") || Objects.equals(ra, "兄弟")) {
+            ra = "兄弟姐妹";
+        } else if (Objects.equals(ra, "其他姐妹") || Objects.equals(ra, "其他兄弟")) {
+            ra = "其他兄弟姐妹";
+        } else if (Objects.equals(ra, "奶奶")) {
+            ra = "祖母";
+        } else if (Objects.equals(ra, "爷爷")) {
+            ra = "祖父";
+        } else if (Objects.equals(ra, "爷爷")) {
+            ra = "祖父";
+        } else if (ra.contains("堂")) {
+            ra = "堂兄弟、堂姐妹";
+        }
+
+        return ra;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngRealAssetsExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngRealAssetsExcelListen.java
new file mode 100644
index 0000000..58132d0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngRealAssetsExcelListen.java
@@ -0,0 +1,57 @@
+package com.panzhihua.common.listen;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngRealAssetsExcelVO;
+import com.panzhihua.common.service.community.CommunityService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @description: 实有单位导入监听
+ * @author: Null
+ * @date: 2021/3/11 13:26
+ */
+@Slf4j
+public class ComMngRealAssetsExcelListen extends AnalysisEventListener<ComMngRealAssetsExcelVO> {
+
+    private static final int BATCH_COUNT = 100;
+    private CommunityService communityService;
+    private Long communityId;
+    private List<ComMngRealAssetsExcelVO> list = new ArrayList<>();
+
+    public ComMngRealAssetsExcelListen(CommunityService communityService, Long communityId) {
+        this.communityService = communityService;
+        this.communityId = communityId;
+    }
+
+    @Override
+    public void invoke(ComMngRealAssetsExcelVO comMngRealCompanyExcelVO, AnalysisContext analysisContext) {
+        list.add(comMngRealCompanyExcelVO);
+        // 达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM
+        if (list.size() >= BATCH_COUNT) {
+            log.info("excel导入数据【{}】", JSONObject.toJSONString(list));
+            R r = this.communityService.listSaveMngRealAssetsExcelVO(list, this.communityId);
+            if (!R.isOk(r)) {
+                throw new ServiceException(r.getMsg());
+            }
+            list.clear(); // 清空list
+        }
+
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
+        log.info("excel导入数据【{}】", JSONObject.toJSONString(list));
+        R r = this.communityService.listSaveMngRealAssetsExcelVO(list, this.communityId);// 确保最后遗留的数据保存在数据库中
+        if (!R.isOk(r)) {
+            throw new ServiceException(r.getMsg());
+        }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngRealCompanyExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngRealCompanyExcelListen.java
new file mode 100644
index 0000000..88d0f24
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngRealCompanyExcelListen.java
@@ -0,0 +1,69 @@
+package com.panzhihua.common.listen;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngRealCompanyExcelVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.ListUtils;
+import com.panzhihua.common.utlis.StringUtils;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @description: 实有单位导入监听
+ * @author: Null
+ * @date: 2021/3/11 13:26
+ */
+@Slf4j
+public class ComMngRealCompanyExcelListen extends AnalysisEventListener<ComMngRealCompanyExcelVO> {
+
+    private static final int BATCH_COUNT = 5000;
+    private CommunityService communityService;
+    private Long communityId;
+    private List<ComMngRealCompanyExcelVO> list = new ArrayList<>();
+
+    public ComMngRealCompanyExcelListen(CommunityService communityService, Long communityId) {
+        this.communityService = communityService;
+        this.communityId = communityId;
+    }
+
+    @Override
+    public void invoke(ComMngRealCompanyExcelVO comMngRealCompanyExcelVO, AnalysisContext analysisContext) {
+        if (StringUtils.isEmpty(comMngRealCompanyExcelVO.getCreditCode())) {
+            throw new ServiceException("统一社会信用代码不可为空");
+        }
+        list.add(comMngRealCompanyExcelVO);
+        // 达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM
+        if (list.size() >= BATCH_COUNT) {
+            log.info("excel导入数据【{}】", JSONObject.toJSONString(list));
+            // 根据list中的creditCode来去重
+            List<ComMngRealCompanyExcelVO> newVoList = list.stream()
+                .filter(ListUtils.distinctByKey(ComMngRealCompanyExcelVO::getCreditCode)).collect(Collectors.toList());
+            R r = this.communityService.listSaveMngRealCompanyExcelVO(newVoList, this.communityId);
+            if (!R.isOk(r)) {
+                throw new ServiceException(r.getMsg());
+            }
+            list.clear(); // 清空list
+        }
+
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
+        log.info("excel导入数据【{}】", JSONObject.toJSONString(list));
+        // 根据list中的creditCode来去重
+        List<ComMngRealCompanyExcelVO> newVoList = list.stream()
+            .filter(ListUtils.distinctByKey(ComMngRealCompanyExcelVO::getCreditCode)).collect(Collectors.toList());
+        R r = this.communityService.listSaveMngRealCompanyExcelVO(newVoList, this.communityId);// 确保最后遗留的数据保存在数据库中
+        if (!R.isOk(r)) {
+            throw new ServiceException(r.getMsg());
+        }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngVillageServeExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngVillageServeExcelListen.java
new file mode 100644
index 0000000..b5a1a61
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngVillageServeExcelListen.java
@@ -0,0 +1,83 @@
+package com.panzhihua.common.listen;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngVillageServeExcelVO;
+import com.panzhihua.common.model.vos.user.CommunityUserInfoVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.Snowflake;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @description: 实有房屋导入监听
+ * @author: llming
+ */
+@Slf4j
+public class ComMngVillageServeExcelListen extends AnalysisEventListener<ComMngVillageServeExcelVO> {
+
+    private static final int BATCH_COUNT = 100;
+    private CommunityService communityService;
+    private LoginUserInfoVO loginUserInfo;
+    private UserService userService;
+    private List<ComMngVillageServeExcelVO> list = new ArrayList<>();
+    public ComMngVillageServeExcelListen(CommunityService communityService, LoginUserInfoVO loginUserInfo, UserService userService) {
+        this.communityService = communityService;
+        this.loginUserInfo = loginUserInfo;
+        this.userService=userService;
+    }
+
+    @Override
+    public void invoke(ComMngVillageServeExcelVO comMngVillageServeExcelVO, AnalysisContext analysisContext) {
+        try {
+            Integer.parseInt(comMngVillageServeExcelVO.getHouseNum());
+        }
+        catch (Exception e){
+            throw new ServiceException("门牌号只能为纯数字");
+        }
+        R r1=userService.detailUser(loginUserInfo.getUserId());
+        if(R.isOk(r1)){
+            LoginUserInfoVO loginUserInfoVO=JSONObject.parseObject(JSONObject.toJSONString(r1.getData()), LoginUserInfoVO.class);
+            comMngVillageServeExcelVO.setAddress("四川省-攀枝花市-"+loginUserInfoVO.getAreaName()+comMngVillageServeExcelVO.getAlley()+"+"+comMngVillageServeExcelVO.getHouseNum());
+        }
+        list.add(comMngVillageServeExcelVO);
+        // 达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM
+        if (list.size() >= BATCH_COUNT) {
+            log.info("excel导入数据【{}】", JSONObject.toJSONString(list));
+            list.forEach(villageServe -> {
+                villageServe.setVillageId(Snowflake.getId());
+                villageServe.setCreateAt(new Date());
+            });
+            R r = communityService.listSaveVillageServeExcelVO(list, loginUserInfo.getCommunityId());
+            if (!R.isOk(r)) {
+                throw new ServiceException(r.getMsg());
+            }
+            // 清空list
+            list.clear();
+        }
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
+        log.info("excel导入数据【{}】", JSONObject.toJSONString(list));
+        // 确保最后遗留的数据保存在数据库中
+        list.forEach(villageServe -> {
+            villageServe.setVillageId(Snowflake.getId());
+            villageServe.setCreateAt(new Date());
+        });
+        R r = this.communityService.listSaveVillageServeExcelVO(list, loginUserInfo.getCommunityId());
+        if (!R.isOk(r)) {
+            throw new ServiceException(r.getMsg());
+        }
+
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngVolunteerExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngVolunteerExcelListen.java
new file mode 100644
index 0000000..d537c62
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComMngVolunteerExcelListen.java
@@ -0,0 +1,196 @@
+package com.panzhihua.common.listen;
+
+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.Constants;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.volunteer.ComMngVolunteerErrorExcelVO;
+import com.panzhihua.common.model.vos.community.volunteer.ComMngVolunteerExcelVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.ListUtils;
+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: 志愿者导入监听
+ * @author : lyq
+ */
+@Slf4j
+public class ComMngVolunteerExcelListen extends AnalysisEventListener<Map<Integer, String>> {
+    /**
+     * 每隔5条存储数据库,实际使用中可以3000条,然后清理list ,方便内存回收
+     */
+    private static final int BATCH_COUNT = 3000;
+    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 ComMngVolunteerExcelListen(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("表格总数据:" + list.size());
+        if (list.size() == 0) {
+            throw new ServiceException("000", "导入数据为空!");
+        }
+        ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
+        String key = Constants.COM_MNG_VOLUNTEER_ERROR_LIST + communityId;
+        int index = 2;
+        try {
+            ArrayList<ComMngVolunteerExcelVO> voList = Lists.newArrayList();
+            ArrayList<ComMngVolunteerErrorExcelVO> mistakes = Lists.newArrayList();
+            for (Map<Integer, String> oneData : list) {
+                ComMngVolunteerExcelVO vo = new ComMngVolunteerExcelVO();
+
+                if (StringUtils.isEmpty(oneData.get(0))) {
+                    index++;
+                    mistakes.add(setErrorObject(oneData,"志愿者名称不可为空,请填写志愿者名称"));
+                    continue;
+                }else{
+                    //判断导入的名字的长度是否超过10
+                    if(oneData.get(0).length() > 10){
+                        index++;
+                        mistakes.add(setErrorObject(oneData,"志愿者名称长度不可超过10,请重新填写志愿者名称"));
+                        continue;
+                    }
+                }
+                vo.setName(oneData.get(0));
+                if (StringUtils.isEmpty(oneData.get(1))) {
+                    index++;
+                    mistakes.add(setErrorObject(oneData,"志愿者手机号不可为空,请填写志愿者手机号"));
+                    continue;
+                }
+                vo.setPhone(oneData.get(1));
+                if (StringUtils.isEmpty(oneData.get(2))) {
+                    index++;
+                    mistakes.add(setErrorObject(oneData,"志愿者身份证不可为空,请填写志愿者身份证"));
+                    continue;
+                }
+                // 判断身份证号码位数
+                if (oneData.get(2).length() != 18) {
+                    if (oneData.get(2).length() != 15) {
+                        index++;
+                        mistakes.add(setErrorObject(oneData,"志愿者身份证位数有误,请检查身份证号码是否正确"));
+                        continue;
+                    }
+                }
+                if (oneData.get(2).length() != 15) {
+                    if (oneData.get(2).length() != 18) {
+                        index++;
+                        mistakes.add(setErrorObject(oneData,"志愿者身份证位数有误,请检查身份证号码是否正确"));
+                        continue;
+                    }
+                }
+                vo.setIdCard(oneData.get(2).toUpperCase());
+                if (StringUtils.isNotEmpty(oneData.get(3))) {
+                    vo.setOrgName(oneData.get(3));
+                }
+
+                if (StringUtils.isNotEmpty(oneData.get(4))) {
+                    vo.setTeamName(oneData.get(4));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(5))) {
+                    vo.setSkillName(oneData.get(5));
+                }
+                vo.setIsUniversity(2);
+                if (StringUtils.isNotEmpty(oneData.get(6))) {
+                    vo.setIsUniversity(1);
+                    vo.setUniversityName(oneData.get(6));
+                }
+                voList.add(vo);
+                index++;
+            }
+            List<ComMngVolunteerExcelVO> newVoList =
+                voList.stream().filter(ListUtils.distinctByKey(ComMngVolunteerExcelVO::getIdCard))
+                    .collect(Collectors.toList());
+            R r = communityService.importVolunteerAdmin(newVoList, communityId, userId);
+            if (!R.isOk(r)) {
+                List<ComMngVolunteerErrorExcelVO> list =
+                    JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComMngVolunteerErrorExcelVO.class);
+                mistakes.addAll(list);
+                valueOperations.set(key, JSONArray.toJSONString(mistakes), 1, TimeUnit.HOURS);
+                throw new ServiceException("500", key);
+            } else {
+                if (!mistakes.isEmpty()) {
+                    valueOperations.set(key, JSONArray.toJSONString(mistakes), 1, TimeUnit.HOURS);
+                    throw new ServiceException("500", key);
+                }
+            }
+        } catch (NumberFormatException e) {
+            e.printStackTrace();
+            throw new ServiceException("500", "导入失败");
+        }
+    }
+
+    private void setError(Map<Integer, String> map, ComMngVolunteerErrorExcelVO vo) {
+        vo.setName(map.get(0));
+        vo.setPhone(map.get(1));
+        vo.setIdCard(map.get(2));
+        vo.setOrgName(map.get(3));
+        vo.setTeamName(map.get(4));
+        vo.setSkillName(map.get(5));
+    }
+
+    /**
+     * 组装错误信息
+     * @param oneData   数据表格对象
+     * @param error     错误信息
+     * @return  错误对象
+     */
+    private ComMngVolunteerErrorExcelVO setErrorObject(Map<Integer, String> oneData, String error){
+        ComMngVolunteerErrorExcelVO mistake = new ComMngVolunteerErrorExcelVO();
+        setError(oneData, mistake);
+        mistake.setError(error);
+        return mistake;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComPbCheckUnitExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComPbCheckUnitExcelListen.java
new file mode 100644
index 0000000..080abec
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComPbCheckUnitExcelListen.java
@@ -0,0 +1,181 @@
+package com.panzhihua.common.listen;
+
+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.Constants;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.cluster.admin.ComClusterMemberExcelErrorVO;
+import com.panzhihua.common.model.vos.community.cluster.admin.ComClusterMemberExcelVO;
+import com.panzhihua.common.model.vos.partybuilding.excel.ComPbCheckUnitErrorExcelVO;
+import com.panzhihua.common.model.vos.partybuilding.excel.ComPbCheckUnitExcelVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.partybuilding.ComPbCheckUnitFeign;
+import com.panzhihua.common.utlis.ListUtils;
+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.regex.Matcher;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+
+/**
+ * title: 党员双报到单位导入监听
+ * @author : lyq
+ */
+@Slf4j
+public class ComPbCheckUnitExcelListen extends AnalysisEventListener<Map<Integer, String>> {
+    /**
+     * 每隔5条存储数据库,实际使用中可以3000条,然后清理list ,方便内存回收
+     */
+    private static final int BATCH_COUNT = 3000;
+    private static int headSize = 0;
+    List<Map<Integer, String>> list = new ArrayList<Map<Integer, String>>();
+    private ComPbCheckUnitFeign checkUnitService;
+    private Long communityId;
+    private Long userId;
+    private Map<Integer, String> headData;
+    private StringRedisTemplate stringRedisTemplate;
+
+    public ComPbCheckUnitExcelListen(ComPbCheckUnitFeign checkUnitService, Long communityId, Long userId,
+                                     StringRedisTemplate stringRedisTemplate) {
+        this.checkUnitService = checkUnitService;
+        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("表格总数据:" + list.size());
+        if (list.size() == 0) {
+            throw new ServiceException("000", "导入数据为空!");
+        }
+        ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
+        String key = Constants.PB_CHECK_UNIT_ERROR_LIST + communityId;
+        int index = 2;
+        try {
+            ArrayList<ComPbCheckUnitExcelVO> voList = Lists.newArrayList();
+            ArrayList<ComPbCheckUnitErrorExcelVO> mistakes = Lists.newArrayList();
+            for (Map<Integer, String> oneData : list) {
+                ComPbCheckUnitExcelVO vo = new ComPbCheckUnitExcelVO();
+
+                if (StringUtils.isEmpty(oneData.get(0))) {
+                    index++;
+                    mistakes.add(setErrorObject(oneData,"单位名称不可为空,请填写单位名称"));
+                    continue;
+                }else{
+                    //判断导入的名字的长度是否超过30
+                    if(oneData.get(0).length() > 30){
+                        index++;
+                        mistakes.add(setErrorObject(oneData,"单位名称长度不可超过30,请重新填写单位名称"));
+                        continue;
+                    }
+                }
+                vo.setName(oneData.get(0));
+                if (StringUtils.isEmpty(oneData.get(1))) {
+                    index++;
+                    mistakes.add(setErrorObject(oneData,"单位类别不可为空,请填写单位类别"));
+                    continue;
+                }
+                vo.setType(oneData.get(1));
+                if (StringUtils.isNotEmpty(oneData.get(2))) {
+                    vo.setContacts(oneData.get(2));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(3))) {
+                    //验证手机号正则
+                    String regex = "^[1][3,4,5,6,7,8,9][0-9]{9}$";
+                    Pattern pattern = Pattern.compile(regex);
+                    Matcher m = pattern.matcher(oneData.get(3));
+                    if(!m.matches()){
+                        index++;
+                        mistakes.add(setErrorObject(oneData,"联系电话输入错误,请核对联系电话"));
+                        continue;
+                    }
+                    vo.setPhone(oneData.get(3));
+                }
+                if(StringUtils.isNotEmpty(oneData.get(4))){
+                    vo.setOrgName(oneData.get(4));
+                }
+                voList.add(vo);
+                index++;
+            }
+            List<ComPbCheckUnitExcelVO> newVoList =
+                voList.stream().filter(ListUtils.distinctByKey(ComPbCheckUnitExcelVO::getName))
+                    .collect(Collectors.toList());
+            R r = checkUnitService.importCheckUnit(newVoList, communityId, userId);
+            if (!R.isOk(r)) {
+                List<ComPbCheckUnitErrorExcelVO> list =
+                    JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComPbCheckUnitErrorExcelVO.class);
+                mistakes.addAll(list);
+                valueOperations.set(key, JSONArray.toJSONString(mistakes), 1, TimeUnit.HOURS);
+                throw new ServiceException("500", key);
+            } else {
+                if (!mistakes.isEmpty()) {
+                    valueOperations.set(key, JSONArray.toJSONString(mistakes), 1, TimeUnit.HOURS);
+                    throw new ServiceException("500", key);
+                }
+            }
+        } catch (NumberFormatException e) {
+            e.printStackTrace();
+            throw new ServiceException("500", "导入失败");
+        }
+    }
+
+    private void setError(Map<Integer, String> map, ComPbCheckUnitErrorExcelVO vo) {
+        vo.setName(map.get(0));
+        vo.setType(map.get(1));
+        vo.setContacts(map.get(2));
+        vo.setPhone(map.get(3));
+    }
+
+    /**
+     * 组装错误信息
+     * @param oneData   数据表格对象
+     * @param error     错误信息
+     * @return  错误对象
+     */
+    private ComPbCheckUnitErrorExcelVO setErrorObject(Map<Integer, String> oneData, String error){
+        ComPbCheckUnitErrorExcelVO mistake = new ComPbCheckUnitErrorExcelVO();
+        setError(oneData, mistake);
+        mistake.setError(error);
+        return mistake;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComPbMemberRoleExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComPbMemberRoleExcelListen.java
new file mode 100644
index 0000000..addf02c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComPbMemberRoleExcelListen.java
@@ -0,0 +1,198 @@
+package com.panzhihua.common.listen;
+
+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.Constants;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.partybuilding.excel.ComPbCheckUnitErrorExcelVO;
+import com.panzhihua.common.model.vos.partybuilding.excel.ComPbCheckUnitExcelVO;
+import com.panzhihua.common.model.vos.partybuilding.excel.ComPbMemberRoleErrorExcelVo;
+import com.panzhihua.common.model.vos.partybuilding.excel.ComPbMemberRoleExcelVo;
+import com.panzhihua.common.service.partybuilding.ComPbCheckUnitFeign;
+import com.panzhihua.common.service.partybuilding.PartyBuildingService;
+import com.panzhihua.common.utlis.ListUtils;
+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.regex.Matcher;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+
+/**
+ * title: 社区党委导入监听
+ * @author : lyq
+ */
+@Slf4j
+public class ComPbMemberRoleExcelListen extends AnalysisEventListener<Map<Integer, String>> {
+    /**
+     * 每隔5条存储数据库,实际使用中可以3000条,然后清理list ,方便内存回收
+     */
+    private static final int BATCH_COUNT = 3000;
+    private static int headSize = 0;
+    List<Map<Integer, String>> list = new ArrayList<Map<Integer, String>>();
+    private PartyBuildingService partyBuildingService;;
+    private Long communityId;
+    private Long userId;
+    private Map<Integer, String> headData;
+    private StringRedisTemplate stringRedisTemplate;
+
+    public ComPbMemberRoleExcelListen(PartyBuildingService partyBuildingService, Long communityId, Long userId,
+                                      StringRedisTemplate stringRedisTemplate) {
+        this.partyBuildingService = partyBuildingService;
+        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("表格总数据:" + list.size());
+        if (list.size() == 0) {
+            throw new ServiceException("000", "导入数据为空!");
+        }
+        ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
+        String key = Constants.PB_MEMBER_ROLE_ERROR_LIST + communityId;
+        int index = 2;
+        try {
+            ArrayList<ComPbMemberRoleExcelVo> voList = Lists.newArrayList();
+            ArrayList<ComPbMemberRoleErrorExcelVo> mistakes = Lists.newArrayList();
+            for (Map<Integer, String> oneData : list) {
+                ComPbMemberRoleExcelVo vo = new ComPbMemberRoleExcelVo();
+
+                if (StringUtils.isEmpty(oneData.get(0))) {
+                    index++;
+                    mistakes.add(setErrorObject(oneData,"党员姓名不可为空,请填写党员姓名"));
+                    continue;
+                }else{
+                    //判断导入的名字的长度是否超过30
+                    if(oneData.get(0).length() > 10){
+                        index++;
+                        mistakes.add(setErrorObject(oneData,"党员姓名长度不可超过10,请重新填写党员姓名"));
+                        continue;
+                    }
+                }
+                vo.setName(oneData.get(0));
+                if (StringUtils.isEmpty(oneData.get(1))) {
+                    index++;
+                    mistakes.add(setErrorObject(oneData,"身份证号不可为空,请填写身份证号"));
+                    continue;
+                }
+                vo.setIdCard(oneData.get(1));
+
+                if (StringUtils.isEmpty(oneData.get(2))) {
+                    index++;
+                    mistakes.add(setErrorObject(oneData,"手机号不可为空,请填写手机号"));
+                    continue;
+                }
+                vo.setPhone(oneData.get(2));
+
+                if (StringUtils.isNotEmpty(oneData.get(3))) {
+                    vo.setTypeName(oneData.get(3));
+                }
+
+                if (StringUtils.isEmpty(oneData.get(4))) {
+                    index++;
+                    mistakes.add(setErrorObject(oneData,"入党日期不可为空,请填写入党日期"));
+                    continue;
+                }
+                vo.setJoinTime(oneData.get(4));
+
+                if (StringUtils.isNotEmpty(oneData.get(5))) {
+                    vo.setEmploymentTime(oneData.get(5));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(6))) {
+                    vo.setPosition(oneData.get(6));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(7))) {
+                    vo.setJobResponsibilities(oneData.get(7));
+                }
+                if (StringUtils.isNotEmpty(oneData.get(8))) {
+                    vo.setOrg(oneData.get(8));
+                }
+                voList.add(vo);
+                index++;
+            }
+            List<ComPbMemberRoleExcelVo> newVoList =
+                voList.stream().filter(ListUtils.distinctByKey(ComPbMemberRoleExcelVo::getIdCard))
+                    .collect(Collectors.toList());
+            R r = partyBuildingService.importPbMemberRole(newVoList, communityId, userId);
+            if (!R.isOk(r)) {
+                List<ComPbMemberRoleErrorExcelVo> list =
+                    JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComPbMemberRoleErrorExcelVo.class);
+                mistakes.addAll(list);
+                valueOperations.set(key, JSONArray.toJSONString(mistakes), 1, TimeUnit.HOURS);
+                throw new ServiceException("500", key);
+            } else {
+                if (!mistakes.isEmpty()) {
+                    valueOperations.set(key, JSONArray.toJSONString(mistakes), 1, TimeUnit.HOURS);
+                    throw new ServiceException("500", key);
+                }
+            }
+        } catch (NumberFormatException e) {
+            e.printStackTrace();
+            throw new ServiceException("500", "导入失败");
+        }
+    }
+
+    private void setError(Map<Integer, String> map, ComPbMemberRoleErrorExcelVo vo) {
+        vo.setName(map.get(0));
+        vo.setIdCard(map.get(1));
+        vo.setPhone(map.get(2));
+        vo.setTypeName(map.get(3));
+        vo.setJoinTime(map.get(4));
+        vo.setEmploymentTime(map.get(5));
+        vo.setPosition(map.get(6));
+        vo.setJobResponsibilities(map.get(7));
+    }
+
+    /**
+     * 组装错误信息
+     * @param oneData   数据表格对象
+     * @param error     错误信息
+     * @return  错误对象
+     */
+    private ComPbMemberRoleErrorExcelVo setErrorObject(Map<Integer, String> oneData, String error){
+        ComPbMemberRoleErrorExcelVo mistake = new ComPbMemberRoleErrorExcelVo();
+        setError(oneData, mistake);
+        mistake.setError(error);
+        return mistake;
+    }
+}
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..52444ab
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComPensionAuthRecordImportExcelListen.java
@@ -0,0 +1,241 @@
+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));
+                    vo.setAddress(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", "NumberFormatException");
+        }
+    }
+
+    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/listen/ComSwRotaExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComSwRotaExcelListen.java
new file mode 100644
index 0000000..eb5527b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/ComSwRotaExcelListen.java
@@ -0,0 +1,63 @@
+package com.panzhihua.common.listen;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComSwRotaExcelVO;
+import com.panzhihua.common.service.community.CommunityService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @description: 值班表监听
+ * @author: Null
+ * @date: 2021/7/31 13:26
+ */
+@Slf4j
+public class ComSwRotaExcelListen extends AnalysisEventListener<ComSwRotaExcelVO> {
+
+    private static final int BATCH_COUNT = 100;
+    private CommunityService communityService;
+    private Long communityId;
+    private List<ComSwRotaExcelVO> list = new ArrayList<>();
+
+    public ComSwRotaExcelListen(CommunityService communityService, Long communityId) {
+        this.communityService = communityService;
+        this.communityId = communityId;
+    }
+
+    @Override
+    public void invoke(ComSwRotaExcelVO comSwRotaExcelVO, AnalysisContext analysisContext) {
+        list.add(comSwRotaExcelVO);
+        if (list.size() == 0) {
+            throw new ServiceException("500", "导入数据为空!");
+        }
+        // 达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM
+        if (list.size() >= BATCH_COUNT) {
+            log.info("excel导入数据【{}】", JSONObject.toJSONString(list));
+            R r = this.communityService.listSaveSwRotaExcelVO(list, this.communityId);
+            if (!R.isOk(r)) {
+                throw new ServiceException(r.getMsg());
+            }
+            list.clear(); // 清空list
+        }
+
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
+        log.info("excel导入数据【{}】", JSONObject.toJSONString(list));
+        if (list.size() == 0) {
+            throw new ServiceException("500", "导入数据为空!");
+        }
+        R r = this.communityService.listSaveSwRotaExcelVO(list, this.communityId);// 确保最后遗留的数据保存在数据库中
+        if (!R.isOk(r)) {
+            throw new ServiceException(r.getMsg());
+        }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/WarehouseDonatesExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/WarehouseDonatesExcelListen.java
new file mode 100644
index 0000000..33eb274
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/listen/WarehouseDonatesExcelListen.java
@@ -0,0 +1,83 @@
+package com.panzhihua.common.listen;
+
+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 com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.warehouse.WarehouseDonatesExcelVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.StringUtils;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @title: WarehouseDonatesExcelListen
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 爱心义仓物品捐赠导入监听
+ * @author: hans
+ * @date: 2021/10/09 17:45
+ */
+@Slf4j
+public class WarehouseDonatesExcelListen extends AnalysisEventListener<WarehouseDonatesExcelVO> {
+
+    private static final int BATCH_COUNT = 3000;
+    private CommunityService communityService;
+    private Long communityId;
+    private Long registerBy;
+    private List<WarehouseDonatesExcelVO> list = new ArrayList<>();
+
+    public WarehouseDonatesExcelListen(CommunityService communityService, Long communityId, Long registerBy) {
+        this.communityService = communityService;
+        this.communityId = communityId;
+        this.registerBy = registerBy;
+    }
+
+    @Override
+    public void invoke(WarehouseDonatesExcelVO warehouseDonatesExcelVO, AnalysisContext analysisContext) {
+        Integer quantity = warehouseDonatesExcelVO.getQuantity();
+        if (!StringUtils.isEmpty(warehouseDonatesExcelVO.getItem()) && nonNull(quantity)) {
+            if (quantity <= 0) {
+                throw new ServiceException("捐赠数量有误");
+            }
+            if (isNull(warehouseDonatesExcelVO.getIsAnonymous())) {
+                warehouseDonatesExcelVO.setIsAnonymous("否");
+            }
+            if (StringUtils.isEmpty(warehouseDonatesExcelVO.getName())) {
+                warehouseDonatesExcelVO.setIsAnonymous("是");
+            }
+            if (isNull(warehouseDonatesExcelVO.getSigningAt())) {
+                Date nowDate = new Date();
+                warehouseDonatesExcelVO.setSigningAt(nowDate);
+                warehouseDonatesExcelVO.setRegisterAt(nowDate);
+            } else {
+                warehouseDonatesExcelVO.setRegisterAt(warehouseDonatesExcelVO.getSigningAt());
+            }
+            warehouseDonatesExcelVO.setCommunityId(this.communityId);
+            warehouseDonatesExcelVO.setStatus(2);
+            warehouseDonatesExcelVO.setSurplusQuantity(quantity);
+            warehouseDonatesExcelVO.setRegisterBy(this.registerBy);
+            warehouseDonatesExcelVO.setSigningBy(this.registerBy);
+            list.add(warehouseDonatesExcelVO);
+            // 达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM
+            if (list.size() >= BATCH_COUNT) {
+                doAfterAllAnalysed(analysisContext);
+                list.clear();
+            }
+        }
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
+        R r = this.communityService.batchImportWarehouseDonates(list);
+        if (!R.isOk(r)) {
+            throw new ServiceException(r.getMsg());
+        }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/AppletesBackstageConfigDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/AppletesBackstageConfigDTO.java
new file mode 100644
index 0000000..0ef2da9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/AppletesBackstageConfigDTO.java
@@ -0,0 +1,23 @@
+package com.panzhihua.common.model.dtos;
+
+import java.util.List;
+
+import com.panzhihua.common.model.dtos.advertisement.ComOpsAdvJumpDTO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 运营后台编辑配置
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-28 17:45
+ **/
+@Data
+@ApiModel(value = "运营后台编辑配置")
+public class AppletesBackstageConfigDTO {
+
+    @ApiModelProperty("广告配置参数集合")
+    private List<ComOpsAdvJumpDTO> comOpsAdvJumpDTOS;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/CommonDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/CommonDTO.java
new file mode 100644
index 0000000..0d70b51
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/CommonDTO.java
@@ -0,0 +1,14 @@
+package com.panzhihua.common.model.dtos;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("公共请求参数请求参数")
+public class CommonDTO {
+
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/DataKanBansDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/DataKanBansDto.java
new file mode 100644
index 0000000..2faf1ba
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/DataKanBansDto.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.dtos;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * 运营后台数据看板请求参数
+ */
+@Data
+@ApiModel("运营后台数据看板请求参数")
+public class DataKanBansDto {
+
+    @ApiModelProperty("社区用户量统计类型(1.累计用户  2.本月新增)")
+    private Integer type;
+
+    private String areaCode;
+
+    private Integer pageNum;
+
+    private Integer pageSize;
+
+    private String appId;
+    /**
+     * 社区用户量统计类型(1.累计用户  2.本月新增)
+     */
+    public interface type{
+        int lj = 1;
+        int by = 2;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/EventResourceDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/EventResourceDTO.java
new file mode 100644
index 0000000..e74ae3c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/EventResourceDTO.java
@@ -0,0 +1,22 @@
+package com.panzhihua.common.model.dtos;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author xyh
+ * @date 2021/6/25 15:22
+ */
+@ApiModel("附件资源DTO")
+@Data
+public class EventResourceDTO implements Serializable {
+
+    @ApiModelProperty("地址")
+    private String url;
+
+    @ApiModelProperty("时间:秒")
+    private Integer resourceTime;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/ExcelDO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/ExcelDO.java
new file mode 100644
index 0000000..a3c694e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/ExcelDO.java
@@ -0,0 +1,39 @@
+package com.panzhihua.common.model.dtos;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class ExcelDO implements Serializable {
+
+    @ColumnWidth(10) // 定义列宽
+    @ExcelProperty(value = {"单位归属"}, index = 0)
+    private String belongTo;
+
+    @ColumnWidth(20) // 定义列宽
+    @ExcelProperty(value = {"所属党组织"}, index = 1)
+    private String orgName;
+
+    @ColumnWidth(26) // 定义列宽
+    @ExcelProperty(value = {"单位名称"}, index = 2)
+    private String unitName;
+
+    @ColumnWidth(20) // 定义列宽
+    @ExcelProperty(value = {"报道社区名称"}, index = 3)
+    private String communityName;
+
+    @ColumnWidth(20) // 定义列宽
+    @ExcelProperty(value = {"服务次数"}, index = 4)
+    private Integer serviceTimes;
+
+    @ColumnWidth(20) // 定义列宽
+    @ExcelProperty(value = {"服务时长"}, index = 5)
+    private Double serviceTime;
+
+    @ColumnWidth(20) // 定义列宽
+    @ExcelProperty(value = {"累计积分"}, index = 6)
+    private Long awardSum;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/FtpConfig.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/FtpConfig.java
new file mode 100644
index 0000000..ce955fa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/FtpConfig.java
@@ -0,0 +1,20 @@
+package com.panzhihua.common.model.dtos;
+
+import lombok.Data;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author lyq
+ *  ftp配置信息传递类
+ */
+@Data
+public class FtpConfig {
+
+    private String userName;
+    private String password;
+    private String host;
+    private int port;
+    private String url;
+    private String excelUrl;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/IdDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/IdDTO.java
new file mode 100644
index 0000000..c519403
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/IdDTO.java
@@ -0,0 +1,24 @@
+package com.panzhihua.common.model.dtos;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author xyh
+ * @date 2021/6/28 16:30
+ */
+@ApiModel("id参数")
+@Data
+public class IdDTO {
+
+    @NotNull(message = "id不能为空")
+    @ApiModelProperty("id")
+    private String id;
+
+    @ApiModelProperty("网格id")
+    private Long gridId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/PageBaseDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/PageBaseDTO.java
new file mode 100644
index 0000000..901a87d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/PageBaseDTO.java
@@ -0,0 +1,40 @@
+package com.panzhihua.common.model.dtos;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @title: PageBaseDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 分页基础数据DTO
+ * @author: hans
+ * @date: 2021/12/21 14:22
+ */
+@Data
+@ApiModel(value = "分页基础数据DTO")
+public class PageBaseDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize;
+
+    @ApiModelProperty(value = "查询参数id", example = "10")
+    private Long paramId;
+
+    @ApiModelProperty(value = "字符串类型查询参数", example = "10")
+    private String param2;
+
+    @ApiModelProperty(value = "数字类型查询参数", example = "10")
+    private Integer param3;
+
+    @ApiModelProperty(value = "单个社区id")
+    private Long communityId;
+
+    @ApiModelProperty(value = "社区id列表")
+    private List<Long> communityIds;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/PageDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/PageDTO.java
new file mode 100644
index 0000000..1d86bea
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/PageDTO.java
@@ -0,0 +1,37 @@
+package com.panzhihua.common.model.dtos;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+
+import com.panzhihua.common.validated.PageGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 分页
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-04 17:20
+ **/
+@Data
+@ApiModel(value = "分页参数")
+public class PageDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1", required = true)
+    @NotNull(groups = {PageGroup.class}, message = "当前页数不能为空")
+    @Min(value = 1, groups = {PageGroup.class}, message = "当前页数不能为空")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10", required = true)
+    @NotNull(groups = {PageGroup.class}, message = "每页记录数不能为空")
+    @Min(value = 1, groups = {PageGroup.class}, message = "每页记录数不能为空")
+    private Long pageSize;
+
+    @ApiModelProperty(value = "登录用户", hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "通知数据类型 类型  0查询所有 1活动 2 服务 3系统 4积分消息", example = "0")
+    private Integer type;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/PartyExcelDO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/PartyExcelDO.java
new file mode 100644
index 0000000..08a81cd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/PartyExcelDO.java
@@ -0,0 +1,41 @@
+package com.panzhihua.common.model.dtos;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import lombok.Data;
+
+@Data
+public class PartyExcelDO {
+
+    @ColumnWidth(10) // 定义列宽
+    @ExcelProperty(value = {"单位归属"}, index = 0)
+    private String belongTo;
+
+    @ColumnWidth(20) // 定义列宽
+    @ExcelProperty(value = {"所属党组织"}, index = 1)
+    private String orgName;
+
+    @ColumnWidth(26) // 定义列宽
+    @ExcelProperty(value = {"单位名称"}, index = 2)
+    private String unitName;
+
+    @ColumnWidth(26) // 定义列宽
+    @ExcelProperty(value = {"姓名"}, index = 3)
+    private String memberName;
+
+    @ColumnWidth(20) // 定义列宽
+    @ExcelProperty(value = {"报道社区名称"}, index = 4)
+    private String belongCommunity;
+
+    @ColumnWidth(20) // 定义列宽
+    @ExcelProperty(value = {"服务次数"}, index = 5)
+    private Integer serviceTimes;
+
+    @ColumnWidth(20) // 定义列宽
+    @ExcelProperty(value = {"服务时长"}, index = 6)
+    private Double serviceTime;
+
+    @ColumnWidth(20) // 定义列宽
+    @ExcelProperty(value = {"累计积分"}, index = 7)
+    private Long partyCount;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/advertisement/ComOpsAdvDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/advertisement/ComOpsAdvDTO.java
new file mode 100644
index 0000000..13a117d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/advertisement/ComOpsAdvDTO.java
@@ -0,0 +1,64 @@
+package com.panzhihua.common.model.dtos.advertisement;
+
+import java.util.Date;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 广告新增
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-04 09:43
+ **/
+@Data
+@ApiModel(value = "广告新增")
+public class ComOpsAdvDTO {
+
+    @ApiModelProperty("主键id")
+    private Long id;
+
+    @ApiModelProperty("广告位置id")
+    @NotNull(groups = {AddGroup.class}, message = "广告位置不能为空")
+    @Min(value = 1, groups = {AddGroup.class}, message = "广告位置不能为空")
+    private Long posId;
+
+    @ApiModelProperty("图片路径")
+    @NotBlank(groups = {AddGroup.class}, message = "图片路径不能为空")
+    private String photoPath;
+
+    @ApiModelProperty("链接类型:0~ 外部链接;1 ~ 内部链接")
+    @NotNull(groups = {AddGroup.class}, message = "链接类型不能为空")
+    @Min(value = 0, groups = {AddGroup.class}, message = "链接类型不能为空")
+    private Integer linkType;
+
+    @ApiModelProperty(value = "上架时间", example = "2021-01-04 00:00:00")
+    @NotNull(groups = {AddGroup.class}, message = "上架时间不能为空")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date onAt;
+
+    @ApiModelProperty(value = "下架时间", example = "2024-01-04 00:00:00")
+    @NotNull(groups = {AddGroup.class}, message = "下架时间不能为空")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date offAt;
+
+    @ApiModelProperty("跳转内容id")
+    private Long jumpId;
+
+    @ApiModelProperty("跳转url地址")
+    private String jumpUrl;
+
+    @ApiModelProperty(value = "create_at", hidden = true)
+    private Date createAt;
+
+    @ApiModelProperty(value = "update_at", hidden = true)
+    private Date updateAt;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/advertisement/ComOpsAdvJumpDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/advertisement/ComOpsAdvJumpDTO.java
new file mode 100644
index 0000000..cb6cfdf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/advertisement/ComOpsAdvJumpDTO.java
@@ -0,0 +1,26 @@
+package com.panzhihua.common.model.dtos.advertisement;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 跳转内容
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-28 15:49
+ **/
+@Data
+@ApiModel(value = "跳转内容")
+public class ComOpsAdvJumpDTO {
+
+    @ApiModelProperty("id")
+    private Long id;
+
+    @ApiModelProperty("跳转内容")
+    private String jumpContent;
+
+    @ApiModelProperty("是否默认 0 否 1 是")
+    private Integer isDefault;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/advertisement/PageComOpsAdvDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/advertisement/PageComOpsAdvDTO.java
new file mode 100644
index 0000000..1a896f2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/advertisement/PageComOpsAdvDTO.java
@@ -0,0 +1,45 @@
+package com.panzhihua.common.model.dtos.advertisement;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 分页广告查询
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-27 10:26
+ **/
+@Data
+@ApiModel(value = "分页广告查询")
+public class PageComOpsAdvDTO {
+
+    @ApiModelProperty("广告位置id")
+    private Long posId;
+
+    @ApiModelProperty(value = "上架时间--开始", example = "2021-01-04 00:00:00")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date onAtBegin;
+
+    @ApiModelProperty(value = "上架时间--结束", example = "2021-01-04 00:00:00")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date onAtEnd;
+
+    @ApiModelProperty(value = "下架时间--开始", example = "2024-01-04 00:00:00")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date offAtBegin;
+
+    @ApiModelProperty(value = "下架时间--结束", example = "2024-01-04 00:00:00")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date offAtEnd;
+
+    @ApiModelProperty(value = "当前页数", example = "1")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "每页记录数", example = "10")
+    private Long pageSize;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/api/EventFile.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/api/EventFile.java
new file mode 100644
index 0000000..0e2adbf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/api/EventFile.java
@@ -0,0 +1,33 @@
+package com.panzhihua.common.model.dtos.api;
+
+import lombok.Data;
+
+/**
+ * program 攀枝花智慧社区项目 description 上报事件关联的文件实体对象
+ *
+ * @author manailin Date 2021-06-17 15:30
+ **/
+@Data
+public class EventFile {
+    /**
+     * 事件业务ID,本地的ID
+     */
+    private String dataId;
+    /**
+     * 事件关联的文件对象
+     */
+    private String files;
+    /**
+     * 文件类型
+     */
+    private String fileName;
+    /**
+     * 文件类型
+     */
+    private String type;
+    /**
+     * 关联模块
+     */
+    private String module;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/api/EventInfo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/api/EventInfo.java
new file mode 100644
index 0000000..cba1290
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/api/EventInfo.java
@@ -0,0 +1,84 @@
+package com.panzhihua.common.model.dtos.api;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import lombok.Data;
+
+/**
+ * program 攀枝花智慧社区项目 description 上报事件实体对象
+ *
+ * @author manailin Date 2021-06-17 15:30
+ **/
+@Data
+public class EventInfo {
+    /**
+     * 网格id,APP端每个网格员应该是固定的网格
+     */
+    private String gridId;
+    /**
+     * 网格 名称
+     */
+    private String gridName;
+    /**
+     * 事件类型code
+     */
+    private String caseTypeCode;
+    /**
+     * 事件类型名称
+     */
+    private String caseTypeName;
+    /**
+     * 事件发生时间,时间的实际发生时间,网格员可以修改的时间
+     */
+    private String happenTime;
+    /**
+     * 地址,手动填写或通过天地图获取的地址信息
+     */
+    private String happenAddress;
+    /**
+     * 经度,double字符串
+     */
+    private String longitude;
+    /**
+     * 纬度,double字符串
+     */
+    private String latitude;
+    /**
+     * 对本次事件的描述信息
+     */
+    private String caseDescription;
+    /**
+     * 对本次事件记录的时间,APP记录本条数据的时间,网格员自己看不到
+     */
+    private String caseRecordTime;
+    /**
+     * 处理方式,caseReport(立即上报)、caseHandler(事件自处)、caseCache(事件暂存)
+     */
+    private String handleType;
+    /**
+     * 处理的描述信息
+     */
+    private String handleDescription;
+    /**
+     * APP生产的数据id,用于平台判断重复提交
+     */
+    private String dataId;
+    /**
+     * 用户id
+     */
+    private String userId;
+    /**
+     * 处理的时间,APP点击提交的时间,并非平台接收的时间(APP可以离线使用
+     */
+    private String handleTime;
+    /**
+     * 标题
+     */
+    private String caseName;
+    /**
+     * 当事人姓名
+     */
+    private List<PartiesBody> partiesBody = new ArrayList<>();
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/api/GridMemberPageListDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/api/GridMemberPageListDTO.java
new file mode 100644
index 0000000..39ad821
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/api/GridMemberPageListDTO.java
@@ -0,0 +1,48 @@
+package com.panzhihua.common.model.dtos.api;
+
+import lombok.Data;
+
+/**
+ * program 攀枝花智慧社区项目 description 浪潮网格员接口返回对象
+ *
+ * @author manailin Date 2021-06-22 15:30
+ **/
+@Data
+public class GridMemberPageListDTO {
+
+    private String bindUserId;
+    private String bindUserName;
+    private String birthDate;
+    private String contactPhone;
+    private String createBy;
+    private String createTime;
+    private String dutyType;
+    private String educationCode;
+    private String educationName;
+    private String genderCode;
+    private String genderName;
+    private String gridDutyId;
+    private String gridDutyName;
+    private String id;
+    private String imei;
+    private Integer isLeader;
+    private Integer jobNum;
+    private String lastReportTime;
+    private String latitude;
+    private String locateUpdateTime;
+    private String longitude;
+    private String name;
+    private String nationCode;
+    private String nationName;
+    private String orgDuty;
+    private String orgDutyDate;
+    private String orgId;
+    private String orgName;
+    private String password;
+    private String politicalAffiliationCode;
+    private String politicalAffiliationName;
+    private String standbyPhone;
+    private String updateBy;
+    private String updateTime;
+    private String workState;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/api/LcGridMember.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/api/LcGridMember.java
new file mode 100644
index 0000000..5dc4ff9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/api/LcGridMember.java
@@ -0,0 +1,45 @@
+package com.panzhihua.common.model.dtos.api;
+
+import lombok.Data;
+
+/**
+ * program 攀枝花智慧社区项目 description 上报事件关联的网格员实体对象
+ *
+ * @author manailin Date 2021-06-17 15:30
+ **/
+@Data
+public class LcGridMember {
+    /**
+     * 网格员名字
+     */
+    private String name;
+    /**
+     * 网格员电话
+     */
+    private String contactPhone;
+    /**
+     * 网格员工号
+     */
+    private String jobNum;
+    /**
+     * 网格员联系电话
+     */
+    private String imei;
+    /**
+     * 网格员登录密码
+     */
+    private String password;
+    /**
+     * 网格员任职时间 2021-06-18
+     */
+    private String orgDutyDate;
+    /**
+     * 网格员责任网格 8c86b8b467194270b6b066b9c32e3b9b,a028fe8a7fff455781fa0bc3f66132fd
+     */
+    private String select;
+    /**
+     * 网格员责任网格 8c86b8b467194270b6b066b9c32e3b9b,a028fe8a7fff455781fa0bc3f66132fd
+     */
+    private String gridDutyId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/api/PartiesBody.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/api/PartiesBody.java
new file mode 100644
index 0000000..a63542c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/api/PartiesBody.java
@@ -0,0 +1,20 @@
+package com.panzhihua.common.model.dtos.api;
+
+import lombok.Data;
+
+/**
+ * program 攀枝花智慧社区项目 description 上报事件中当事人实体对象
+ *
+ * @author manailin Date 2021-06-17 15:30
+ **/
+@Data
+public class PartiesBody {
+    /**
+     * 当事人名字
+     */
+    private String partyName;
+    /**
+     * 当事人电话
+     */
+    private String partyPhone;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/bracelet/BraceletEarlyWarningDO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/bracelet/BraceletEarlyWarningDO.java
new file mode 100644
index 0000000..93bc307
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/bracelet/BraceletEarlyWarningDO.java
@@ -0,0 +1,73 @@
+package com.panzhihua.common.model.dtos.bracelet;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+@ApiModel("手环预警数据表")
+public class BraceletEarlyWarningDO
+{
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "预警时间(创建时间)")
+    private Date creationTime;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "处理时间")
+    private Date disposeTime;
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "更新时间")
+    private Date updataTime;
+
+    @ApiModelProperty(value = "处理状态(1 未处理   2 已处理   3处理中)")
+    private String disposeType;
+
+    @ApiModelProperty(value = "处理人")
+    private String disposeUserId;
+
+    @ApiModelProperty(value = "设备编号")
+    private String equipmentNumber;
+
+    //预警类型( 1血压   2心率  3体温   4 SOS预警 )
+    @ApiModelProperty(value = "预警类型( 1血压   2心率  3体温   4 SOS预警 )")
+    private String earlyWarningType;
+
+    @ApiModelProperty(value = "预警内容")
+    private String earlyWarningText;
+
+    @ApiModelProperty(value = "处理图片")
+    private String disposeImgurl;
+
+    @ApiModelProperty(value = "处理内容")
+    private String disposeText;
+
+    @ApiModelProperty(value = "处理结果")
+    private String disposeResult;
+
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+    @ApiModelProperty(value = "视频地址")
+    private String disposeVideoUrl;
+
+    @ApiModelProperty(value = "处理人姓名")
+    private String disposeUserName;
+    @ApiModelProperty(value = "绑定手机号")
+    private String binPhone;
+    @ApiModelProperty(value = "用户姓名")
+    private String userName;
+    @ApiModelProperty(value = "'居住地址'")
+    private String address;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/bracelet/BraceletUserDataDO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/bracelet/BraceletUserDataDO.java
new file mode 100644
index 0000000..b8dd0a7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/bracelet/BraceletUserDataDO.java
@@ -0,0 +1,223 @@
+package com.panzhihua.common.model.dtos.bracelet;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+@ApiModel("手环用户数据表")
+public class BraceletUserDataDO
+{
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    /**
+     * 设备类型 智能手表,智能手环
+     */
+    @ApiModelProperty(value = "设备类型 智能手表,智能手环")
+    private String deviceType;
+    /**
+     * 设备型号 W11,W6,W5
+     */
+    @ApiModelProperty(value = "主键")
+    private String deviceModel;
+    /**
+     * 设备 IMEI
+     */
+    @ApiModelProperty(value = "设备 IMEI")
+    private String deviceId;
+    /**
+     * 设备手机号码
+     */
+    @ApiModelProperty(value = "设备手机号码")
+    private String mobile;
+    /**
+     * 101:血压数据
+     * 107:体温数据
+     * 110:计步数据
+     * 112:心率数据
+     * 201:SOS 呼叫请求
+     * 202:定位数据
+     * 301:穿戴设备电量
+     * 302:设备在线与离线
+     */
+    @ApiModelProperty(value = "101:血压数据 107:体温数据 110:计步数据 112:心率数据 201:SOS 呼叫请求 202:定位数据 301:穿戴设备电量 302:设备在线与离线")
+    private String dataType;
+
+
+
+    /**
+     * 数据 id
+     */
+    @ApiModelProperty(value = "数据id")
+    private String dataId;//":600911,
+    @ApiModelProperty(value = "更新时间")
+    private String time;//":"2020-12-23 12:00:00.210"
+
+
+    /**
+     * 血压测量新数据
+     */
+    // pm 心率
+    @ApiModelProperty(value = "心率")
+    private String pm;
+    // 高压(收缩压)
+    @ApiModelProperty(value = "高压(收缩压)")
+    private String pcp;
+    //低压(舒张压)
+    @ApiModelProperty(value = "低压(舒张压)")
+    private String pdp;
+
+
+    /**
+     * 温度测量新数据
+     */
+    //温度
+    @ApiModelProperty(value = "温度")
+    private String etg;
+
+
+    /**
+     * 运动测量新数据
+     * @return
+     */
+    //行走步数
+    @ApiModelProperty(value = "行走步数")
+    private String step;
+
+
+    /**
+     * SOS 请求的示例数据 定位数据的示例
+     *
+     * @return
+     */
+    //经度
+    @ApiModelProperty(value = "经度")
+    private String lng;//":"113.929906",
+    //纬度
+    @ApiModelProperty(value = "纬度")
+    private String lat;//":"22.52887",
+    //定位方式      “0”:GPS “1”:LBS “2”:WIFI
+    @ApiModelProperty(value = "定位方式      “0”:GPS “1”:LBS “2”:WIFI")
+    private String mode;//":"1",
+
+
+    /**
+     * 设备电量的示例数据
+     * @return
+     */
+    //电量 取值 0-100,例如:取值“20” 表示电量 20%
+    @ApiModelProperty(value = "电量 取值 0-100,例如:取值“20” 表示电量 20%")
+    private String elec;//":"1",
+
+
+    /**
+     * 设备在线与离线的示例数据
+     * @return
+     */
+    //“1”:设备在线  “0”:设备离线
+    @ApiModelProperty(value = "“1”:设备在线  “0”:设备离线")
+    private String onoff;//":"1",
+
+    //社区id
+    @ApiModelProperty(value = "社区id")
+    private String communityId;//":"1",
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date creationTime;
+
+
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "更新时间")
+    private Date  updataTime;
+
+    //用户姓名
+    @ApiModelProperty(value = "用户姓名")
+    private String userName;
+
+    //年龄
+    @ApiModelProperty(value = "年龄")
+    private String ageNum;
+
+    //1 男    2 女
+    @ApiModelProperty(value = "1 男    2 女")
+    private String sex;
+
+    //身份证
+    @ApiModelProperty(value = "身份证")
+    private String identityCard;
+
+    //居住地址
+    @ApiModelProperty(value = "居住地址")
+    private String address;
+
+
+    //详细居住地址
+    @ApiModelProperty(value = "详细居住地址")
+    private String detailAddress;
+
+    //居住地的经度
+    @ApiModelProperty(value = "居住地的经度")
+    private String addLng;
+
+    //居住地的纬度
+    @ApiModelProperty(value = "居住地的纬度")
+    private String addLat;
+
+    //设备绑定手机号
+    @ApiModelProperty(value = "设备绑定手机号")
+    private String binPhone;
+
+    //紧急联系人
+    @ApiModelProperty(value = "紧急联系人")
+    private String emergencyContact;
+
+    //心率下限
+    @ApiModelProperty(value = "心率下限")
+    private String lowHeartRate;
+    //心率上限
+    @ApiModelProperty(value = "心率上限")
+    private String tallHeartRate;
+    //体温下限
+    @ApiModelProperty(value = "体温下限")
+    private String lowAnimalHeat;
+    //体温上限
+    @ApiModelProperty(value = "体温上限")
+    private String tallAnimalHeat;
+    //低压下限
+    @ApiModelProperty(value = "低压下限")
+    private String lowTensionFloor;
+    //低压上限
+    @ApiModelProperty(value = "低压上限")
+    private String lowTensionUpperLimit;
+    //高压下限
+    @ApiModelProperty(value = "高压下限")
+    private String highPressureFloor;
+    //高压上限
+    @ApiModelProperty(value = "高压上限")
+    private String highPressureUpperLimit;
+
+    @ApiModelProperty(value = "是否紧急  0 正常   1紧急")
+    private String isAbnormal;
+
+    @ApiModelProperty(value = "SOS电话1")
+    private String sgtel1;
+
+    @ApiModelProperty(value = "SOS电话2")
+    private String sgtel2;
+
+    @ApiModelProperty(value = "SOS电话3")
+    private String sgtel3;
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/bracelet/SetSOS.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/bracelet/SetSOS.java
new file mode 100644
index 0000000..ddcf3a2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/bracelet/SetSOS.java
@@ -0,0 +1,14 @@
+package com.panzhihua.common.model.dtos.bracelet;
+
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "手环设置SOS 联系人")
+public class SetSOS {
+    private String emergencyContact1;
+    private String emergencyContact2;
+    private String emergencyContact3;
+    private String deviceId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/civil/ComActSocialExportVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/civil/ComActSocialExportVO.java
new file mode 100644
index 0000000..4de3034
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/civil/ComActSocialExportVO.java
@@ -0,0 +1,70 @@
+package com.panzhihua.common.model.dtos.civil;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+/**
+ * @author zzj
+ */
+@Data
+public class ComActSocialExportVO {
+    /**
+     * 姓名   列: name
+     */
+    @ExcelProperty(value = "姓名")
+    private String name;
+    /**
+     * 联系电话   列: telephone
+     */
+    @ExcelProperty(value = "联系电话",index = 4)
+    private String telephone;
+    /**
+     * 性别0女1男   列: gen
+     */
+    @ExcelProperty(value = "性别",index = 2)
+    private Integer gen;
+    /**
+     * 出生日期   列: birthday
+     */
+    @ExcelProperty(value = "出生日期",index = 3)
+    private String birthday;
+    /**
+     * 社工证编号   列: social_worker_code
+     */
+    @ExcelProperty(value = "社工证号码",index = 1)
+    private String socialWorkerCode;
+
+    /**
+     * 所属街道   列: street_id
+     */
+    @ExcelProperty(value = "所属街道",index = 5)
+    private Long streetId;
+    /**
+     * 所属社区   列: community_id
+     */
+    @ExcelProperty(value = "所属社区",index = 6)
+    private Long communityId;
+
+    /**
+     * 技能领域   列: skill_field
+     */
+    @ExcelProperty(value = "技能领域",index = 9)
+    private String skillField;
+    /**
+     * 业务范围   列: business_scope
+     */
+    @ExcelProperty(value = "业务范围",index = 10)
+    private String businessScope;
+
+    /**
+     * 所属组织ID   列: social_org_id
+     */
+    @ExcelProperty(value = "所属机构",index = 7)
+    private Long socialOrgId;
+
+    /**
+     * 社工资质   列: social_qua
+     */
+    @ExcelProperty(value = "社工资质",index = 8)
+    private Long socialQua;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/civil/ComActSocialWorkerAddDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/civil/ComActSocialWorkerAddDTO.java
new file mode 100644
index 0000000..79ad4d4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/civil/ComActSocialWorkerAddDTO.java
@@ -0,0 +1,124 @@
+package com.panzhihua.common.model.dtos.civil;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.math.BigDecimal;
+import javax.validation.constraints.Digits;
+import javax.validation.constraints.*;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.NotBlank;
+import java.util.Date;
+import org.hibernate.validator.constraints.Length;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+
+/**
+ * 创建表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-06-03
+ * */
+@Data
+@ApiModel("创建社工请求参数")
+public class ComActSocialWorkerAddDTO {
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "所属组织ID", hidden = false, example = "1")
+    private Long socialOrgId;
+
+    @NotBlank() @Length(max=32)
+    @ApiModelProperty(value = "姓名", hidden = false, example = "")
+    private String name;
+
+    @NotBlank() @Length(max=32)
+    @ApiModelProperty(value = "联系电话", hidden = false, example = "")
+    private String telephone;
+
+    @ApiModelProperty(value = "性别0女1男", hidden = false, example = "")
+    private Integer gen;
+
+    @ApiModelProperty(value = "所属街道", hidden = false, example = "")
+    private Long streetId;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "所属社区", hidden = false, example = "1")
+    private Long communityId;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+    @ApiModelProperty(value = "(当前操作)用户名称", hidden = true, example = "张三")
+    private String userName;
+
+    /**
+     * 身份证
+     */
+    @ApiModelProperty(value = "身份证")
+    private String idCard;
+
+    /**
+     * 分类id
+     */
+    @ApiModelProperty(value = "分类id")
+    private String  skillType;
+
+    /**
+     * 分类名称
+     */
+    @ApiModelProperty(value = "分类名称")
+    private String  skillTypeName;
+
+    /**
+     * 入职时间
+     */
+    @ApiModelProperty(value = "入职时间")
+    private Date joinTime;
+
+    /**
+     * 住址
+     */
+    @ApiModelProperty(value = "住址")
+    private String address;
+
+    /**
+     * 图片
+     */
+    @ApiModelProperty(value = "图片")
+    private String image;
+
+    /**
+     * 学历
+     */
+    @ApiModelProperty(value = "学历")
+    private String education;
+
+    /**
+     * 政治面貌
+     */
+    @ApiModelProperty(value = "政治面貌")
+    private String politicalOutlook;
+
+    /**
+     * 民族
+     */
+    @ApiModelProperty(value = "民族")
+    private String nation;
+
+    /**
+     * 是否证件 0否 1是
+     */
+    @ApiModelProperty(value = "是否证件 0否 1是")
+    private Integer credential;
+
+    /**
+     * 年龄
+     */
+    @ApiModelProperty(value = "年龄")
+    private Integer age;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/civil/ComActSocialWorkerDeleteDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/civil/ComActSocialWorkerDeleteDTO.java
new file mode 100644
index 0000000..9288b01
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/civil/ComActSocialWorkerDeleteDTO.java
@@ -0,0 +1,30 @@
+package com.panzhihua.common.model.dtos.civil;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+
+/**
+ * 删除表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-06-03
+ * */
+@Data
+@ApiModel("删除社工请求参数")
+public class ComActSocialWorkerDeleteDTO {
+
+    @ApiModelProperty(value = "ID", hidden = false, example = "1")
+    private Long id;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+    @ApiModelProperty(value = "(当前操作)用户名称", hidden = true, example = "张三")
+    private String userName;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/civil/ComActSocialWorkerEditDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/civil/ComActSocialWorkerEditDTO.java
new file mode 100644
index 0000000..31d21a5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/civil/ComActSocialWorkerEditDTO.java
@@ -0,0 +1,114 @@
+package com.panzhihua.common.model.dtos.civil;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import javax.validation.constraints.*;
+import java.math.*;
+import java.util.Date;
+
+/**
+ * 编辑表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-06-03
+ * */
+@Data
+@ApiModel("编辑社工请求参数")
+public class ComActSocialWorkerEditDTO {
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "ID", hidden = false, example = "1")
+    private Long id;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "所属组织ID", hidden = false, example = "1")
+    private Long socialOrgId;
+
+    @Length(max=32)
+    @ApiModelProperty(value = "姓名", hidden = false, example = "")
+    private String name;
+
+    @Length(max=32)
+    @ApiModelProperty(value = "联系电话", hidden = false, example = "")
+    private String telephone;
+
+    @ApiModelProperty(value = "性别0女1男", hidden = false, example = "")
+    private Integer gen;
+
+    @ApiModelProperty(value = "所属街道", hidden = false, example = "")
+    private Long streetId;
+
+    @ApiModelProperty(value = "所属社区", hidden = false, example = "1")
+    private Long communityId;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+    @ApiModelProperty(value = "(当前操作)用户名称", hidden = true, example = "张三")
+    private String userName;
+
+    /**
+     * 身份证
+     */
+    @ApiModelProperty(value = "身份证")
+    private String idCard;
+
+    /**
+     * 分类id
+     */
+    @ApiModelProperty(value = "分类id")
+    private String skillType;
+
+    /**
+     * 入职时间
+     */
+    @ApiModelProperty(value = "入职时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date joinTime;
+
+    /**
+     * 住址
+     */
+    @ApiModelProperty(value = "住址")
+    private String address;
+
+    /**
+     * 图片
+     */
+    @ApiModelProperty(value = "图片")
+    private String image;
+
+    /**
+     * 学历
+     */
+    @ApiModelProperty(value = "学历")
+    private String education;
+
+    /**
+     * 政治面貌
+     */
+    @ApiModelProperty(value = "政治面貌")
+    private String politicalOutlook;
+
+    /**
+     * 民族
+     */
+    @ApiModelProperty(value = "民族")
+    private String nation;
+
+    /**
+     * 是否证件 0否 1是
+     */
+    @ApiModelProperty(value = "是否证件 0否 1是")
+    private Integer credential;
+
+    private Integer age;
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/civil/ComActSocialWorkerExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/civil/ComActSocialWorkerExcelVO.java
new file mode 100644
index 0000000..6216b67
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/civil/ComActSocialWorkerExcelVO.java
@@ -0,0 +1,84 @@
+package com.panzhihua.common.model.dtos.civil;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author zzj
+ */
+@Data
+public class ComActSocialWorkerExcelVO {
+
+    /**
+     * 姓名   列: name
+     */
+    @ExcelProperty(value = "姓名",index = 0)
+    private String name;
+    /**
+     * 身份证   列: social_worker_code
+     */
+    @ExcelProperty(value = "身份证号码",index = 1)
+    private String idCard;
+
+    /**
+     * 性别0女1男   列: gen
+     */
+    @ExcelProperty(value = "性别0女1男",index = 2)
+    private String gen;
+    /**
+     * 入职时间
+     */
+    @ExcelProperty(value = "入职时间",index = 3)
+    private Date joinTime;
+    /**
+     * 联系电话   列: telephone
+     */
+    @ExcelProperty(value = "联系电话",index = 4)
+    private String telephone;
+
+    /**
+     * 学历   列: street_id
+     */
+    @ExcelProperty(value = "学历",index = 5)
+    private String education;
+    /**
+     * 所属社区   列: community_id
+     */
+    @ExcelProperty(value = "所属社区",index = 6)
+    private String communityId;
+
+    /**
+     * 政治面貌
+     */
+    @ExcelProperty(value = "政治面貌",index = 7)
+    private String politicalOutlook;
+
+
+    /**
+     * 民族   列: social_qua
+     */
+    @ExcelProperty(value = "民族",index = 8)
+    private String nation;
+    /**
+     * 社工证
+     */
+    @ExcelProperty(value = "社工证",index = 9)
+    private String credential;
+    /**
+     * 住址
+     */
+    @ExcelProperty(value = "住址",index = 10)
+    private String address;
+    /**
+     * 年龄
+     */
+    @ExcelProperty(value = "年龄",index = 11)
+    private Integer age;
+
+
+
+
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/civil/PageComActSocialWorkerDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/civil/PageComActSocialWorkerDTO.java
new file mode 100644
index 0000000..acd6b0b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/civil/PageComActSocialWorkerDTO.java
@@ -0,0 +1,145 @@
+package com.panzhihua.common.model.dtos.civil;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.*;
+import java.util.Date;
+import java.math.BigDecimal;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.google.common.base.CaseFormat;
+
+/**
+ * 分页查询表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-06-03
+ * */
+@Data
+@ApiModel("查询社工请求参数")
+public class PageComActSocialWorkerDTO {
+
+    @ApiModelProperty(value = "分页-当前页数,默认:1", example = "1", position = 1)
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数,默认:10", example = "10", position = 2)
+    private Long pageSize = 10L;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "ID", hidden = false, example = "1")
+    private Long id;
+
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "所属组织ID", hidden = false, example = "1")
+    private Long socialOrgId;
+
+
+    @Length(max=32)
+    @ApiModelProperty(value = "姓名", hidden = false, example = "")
+    private String name;
+
+
+    @Length(max=32)
+    @ApiModelProperty(value = "联系电话", hidden = false, example = "")
+    private String telephone;
+
+
+    @Length(max=1)
+    @ApiModelProperty(value = "性别0女1男", hidden = false, example = "")
+    private String gen;
+
+    @Length(max=32)
+    @ApiModelProperty(value = "所属街道", hidden = false, example = "")
+    private String streetId;
+
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "所属社区", hidden = false, example = "1")
+    private Long communityId;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "创建人", hidden = false, example = "1")
+    private Long createBy;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "更新人", hidden = false, example = "1")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+    @ApiModelProperty(value = "(当前操作)用户名称", hidden = true, example = "张三")
+    private String userName;
+
+    /**
+     * 身份证
+     */
+    @ApiModelProperty(value = "身份证")
+    private String idCard;
+
+    /**
+     * 分类id
+     */
+    @ApiModelProperty(value = "分类id")
+    private Long skillType;
+
+    /**
+     * 入职时间
+     */
+    @ApiModelProperty(value = "入职时间")
+    private Date joinTime;
+
+    /**
+     * 住址
+     */
+    @ApiModelProperty(value = "住址")
+    private String address;
+
+    /**
+     * 图片
+     */
+    @ApiModelProperty(value = "图片")
+    private String image;
+
+    /**
+     * 学历
+     */
+    @ApiModelProperty(value = "学历")
+    private String education;
+
+    /**
+     * 政治面貌
+     */
+    @ApiModelProperty(value = "政治面貌")
+    private String politicalOutlook;
+
+    /**
+     * 民族
+     */
+    @ApiModelProperty(value = "民族")
+    private String nation;
+
+    /**
+     * 是否证件 0否 1是
+     */
+    @ApiModelProperty(value = "是否证件 0否 1是")
+    private Integer credential;
+
+    @ApiModelProperty(value = "关键字搜索")
+    private String keyword;
+
+    @ApiModelProperty(value = "年龄开始")
+    private Integer ageBegin;
+
+    @ApiModelProperty(value = "年龄结束")
+    private Integer ageEnd;
+
+    @ApiModelProperty("活动id")
+    private Long activityId;
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComActEasyPhotoEvaluateDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComActEasyPhotoEvaluateDto.java
new file mode 100644
index 0000000..e4d1b94
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComActEasyPhotoEvaluateDto.java
@@ -0,0 +1,72 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 新增随手拍、微心愿评价表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 新增随手拍、微心愿评价表请求参数
+ *
+ * @author lyq
+ * @date 2022-03-01 13:44:37
+ */
+@Data
+@ApiModel("新增随手拍、微心愿评价表请求参数")
+public class AddComActEasyPhotoEvaluateDto {
+
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    /**
+     * 业务记录id
+     */
+    @ApiModelProperty(value = "业务记录id")
+    private Long serviceId;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+
+    /**
+     * 评分
+     */
+    @ApiModelProperty(value = "评分")
+    private Integer score;
+
+    /**
+     * 评价内容
+     */
+    @ApiModelProperty(value = "评价内容")
+    private String content;
+
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+
+    /**
+     * 业务分类(1.随手拍 2.微心愿)
+     */
+    @ApiModelProperty(value = "业务分类(1.随手拍 2.微心愿)")
+    private Integer serviceType;
+
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComActEasyPhotoHandlerDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComActEasyPhotoHandlerDto.java
new file mode 100644
index 0000000..748e5e9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComActEasyPhotoHandlerDto.java
@@ -0,0 +1,56 @@
+package com.panzhihua.common.model.dtos.common;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 新增随手拍、微心愿处理人绑定表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 新增随手拍、微心愿处理人绑定表请求参数
+ *
+ * @author lyq
+ * @date 2022-03-01 13:45:12
+ */
+@Data
+@ApiModel("新增随手拍、微心愿处理人绑定表请求参数")
+public class AddComActEasyPhotoHandlerDto {
+
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    /**
+     * 处理人id
+     */
+    @ApiModelProperty(value = "处理人id")
+    private Long userId;
+
+    /**
+     * 业务id
+     */
+    @ApiModelProperty(value = "业务id")
+    private Long serviceId;
+
+    /**
+     * 人员类型(1.后台用户 2.党员 3.志愿者 4.社工 5.四长四员)
+     */
+    @ApiModelProperty(value = "人员类型(1.后台用户 2.党员 3.志愿者 4.社工 5.四长四员)")
+    private Integer type;
+
+    /**
+     * 业务类型(1.随手拍 2.微心愿)
+     */
+    @ApiModelProperty(value = "业务类型(1.随手拍 2.微心愿)")
+    private Integer serviceType;
+
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommodityActivityDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommodityActivityDto.java
new file mode 100644
index 0000000..4e33da1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommodityActivityDto.java
@@ -0,0 +1,141 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 新增电动车商城-商家活动表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 新增电动车商城-商家活动表请求参数
+ *
+ * @author lyq
+ * @date 2022-03-29 13:17:41
+ */
+@Data
+@ApiModel("新增电动车商城-商家活动表请求参数")
+public class AddComBatteryCommodityActivityDto {
+
+
+    /**
+     * 活动名称
+     */
+    @ApiModelProperty(value = "活动名称")
+    private String name;
+
+    /**
+     * 活动类型(1.拼团活动 2.砍价活动 3.限时秒杀)
+     */
+    @ApiModelProperty(value = "活动类型(1.拼团活动 2.砍价活动 3.限时秒杀)")
+    private Integer type;
+
+    /**
+     * 商品id
+     */
+    @ApiModelProperty(value = "商品id")
+    private Long commodityId;
+
+    /**
+     * 商家id
+     */
+    @ApiModelProperty(value = "商家id")
+    private Long storeId;
+
+    /**
+     * 状态(1.进行中 2.已下架 3.已结束)
+     */
+    @ApiModelProperty(value = "状态(1.进行中 2.已下架 3.已结束)")
+    private Integer status;
+
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是 2.否)")
+    private Integer isDel;
+
+    /**
+     * 活动价格
+     */
+    @ApiModelProperty(value = "活动价格")
+    private BigDecimal price;
+
+    /**
+     * 活动截止时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "活动截止时间")
+    private Date endTime;
+
+    /**
+     * 拼团总团数
+     */
+    @ApiModelProperty(value = "拼团总团数")
+    private Integer collageNum;
+
+    /**
+     * 拼团人数
+     */
+    @ApiModelProperty(value = "拼团人数")
+    private Integer collagePeopleNum;
+
+    /**
+     * 活动图片
+     */
+    @ApiModelProperty(value = "活动图片")
+    private String images;
+
+    /**
+     * 活动商品总数
+     */
+    @ApiModelProperty(value = "活动商品总数")
+    private Integer commodityNum;
+
+    /**
+     * 活动规则
+     */
+    @ApiModelProperty(value = "活动规则")
+    private String rule;
+
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+
+    /**
+     * 更新时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "更新时间")
+    private Date updateAt;
+
+    /**
+     * 更新人id
+     */
+    @ApiModelProperty(value = "更新人id")
+    private Long updateBy;
+
+    /**
+     * 商品规格id
+     */
+    @ApiModelProperty(value = "商品规格id")
+    private Long specsId;
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommodityDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommodityDto.java
new file mode 100644
index 0000000..a2cf9fd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommodityDto.java
@@ -0,0 +1,123 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 新增电动车商城-商品表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 新增电动车商城-商品表请求参数
+ *
+ * @author lyq
+ * @date 2022-03-28 14:59:59
+ */
+@Data
+@ApiModel("新增电动车商城-商品表请求参数")
+public class AddComBatteryCommodityDto {
+
+
+    /**
+     * 商品名称
+     */
+    @ApiModelProperty(value = "商品名称")
+    private String name;
+
+    /**
+     * 商品编号
+     */
+    @ApiModelProperty(value = "商品编号")
+    private String code;
+
+    /**
+     * 商品价格
+     */
+    @ApiModelProperty(value = "商品价格")
+    private BigDecimal price;
+
+    /**
+     * 商家id
+     */
+    @ApiModelProperty(value = "商家id")
+    private Long storeId;
+
+    /**
+     * 状态(1.上架 2.下架)
+     */
+    @ApiModelProperty(value = "状态(1.上架 2.下架)")
+    private Integer status;
+
+    /**
+     * 商品分类id
+     */
+    @ApiModelProperty(value = "商品分类id")
+    private Long classId;
+
+    /**
+     * 商品简介
+     */
+    @ApiModelProperty(value = "商品简介")
+    private String introduce;
+
+    /**
+     * 邮费
+     */
+    @ApiModelProperty(value = "邮费")
+    private BigDecimal postage;
+
+    /**
+     * 商品图片
+     */
+    @ApiModelProperty(value = "商品图片")
+    private String images;
+
+    /**
+     * 商品详情
+     */
+    @ApiModelProperty(value = "商品详情")
+    private String detail;
+
+    /**
+     * 是否删除(1.是  2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是  2.否)")
+    private Integer isDel;
+
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+
+    /**
+     * 更新时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "更新时间")
+    private Date updateAt;
+
+    /**
+     * 更新人id
+     */
+    @ApiModelProperty(value = "更新人id")
+    private Long updateBy;
+
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommodityOrderBargainDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommodityOrderBargainDto.java
new file mode 100644
index 0000000..81671db
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommodityOrderBargainDto.java
@@ -0,0 +1,97 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 新增电动车商城-砍价订单记录表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 新增电动车商城-砍价订单记录表请求参数
+ *
+ * @author lyq
+ * @date 2022-03-29 16:06:36
+ */
+@Data
+@ApiModel("新增电动车商城-砍价订单记录表请求参数")
+public class AddComBatteryCommodityOrderBargainDto {
+
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+
+    /**
+     * 商品id
+     */
+    @ApiModelProperty(value = "商品id")
+    private Long commodityId;
+
+    /**
+     * 活动id
+     */
+    @ApiModelProperty(value = "活动id")
+    private Long activityId;
+
+    /**
+     * 订单id
+     */
+    @ApiModelProperty(value = "订单id")
+    private Long orderId;
+
+    /**
+     * 订单号
+     */
+    @ApiModelProperty(value = "订单号")
+    private String orderNo;
+
+    /**
+     * 商品原价
+     */
+    @ApiModelProperty(value = "商品原价")
+    private BigDecimal originalPrice;
+
+    /**
+     * 目标价格
+     */
+    @ApiModelProperty(value = "目标价格")
+    private BigDecimal targetPrice;
+
+    /**
+     * 当前价格
+     */
+    @ApiModelProperty(value = "当前价格")
+    private BigDecimal currentPrice;
+
+    /**
+     * 当前已砍价次数
+     */
+    @ApiModelProperty(value = "当前已砍价次数")
+    private Integer count;
+
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommodityOrderBargainRecordDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommodityOrderBargainRecordDto.java
new file mode 100644
index 0000000..7d68adc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommodityOrderBargainRecordDto.java
@@ -0,0 +1,67 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 新增电动车商城-订单砍价记录表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 新增电动车商城-订单砍价记录表请求参数
+ *
+ * @author lyq
+ * @date 2022-03-29 16:06:48
+ */
+@Data
+@ApiModel("新增电动车商城-订单砍价记录表请求参数")
+public class AddComBatteryCommodityOrderBargainRecordDto {
+
+
+    /**
+     * 砍价记录id
+     */
+    @ApiModelProperty(value = "砍价记录id")
+    private Long bargainId;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+
+    /**
+     * 砍价金额
+     */
+    @ApiModelProperty(value = "砍价金额")
+    private BigDecimal amount;
+
+    /**
+     * 原砍价用户id
+     */
+    @ApiModelProperty(value = "原砍价用户id")
+    private Long oldUserId;
+
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommodityOrderCollageTeamDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommodityOrderCollageTeamDto.java
new file mode 100644
index 0000000..f03873e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommodityOrderCollageTeamDto.java
@@ -0,0 +1,66 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 新增电动车商城-拼团订单团队表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 新增电动车商城-拼团订单团队表请求参数
+ *
+ * @author lyq
+ * @date 2022-03-29 16:06:58
+ */
+@Data
+@ApiModel("新增电动车商城-拼团订单团队表请求参数")
+public class AddComBatteryCommodityOrderCollageTeamDto {
+
+
+    /**
+     * 活动id
+     */
+    @ApiModelProperty(value = "活动id")
+    private Long activityId;
+
+    /**
+     * 订单id
+     */
+    @ApiModelProperty(value = "订单id")
+    private Long orderId;
+
+    /**
+     * 订单号
+     */
+    @ApiModelProperty(value = "订单号")
+    private String orderNo;
+
+    /**
+     * 开团用户id
+     */
+    @ApiModelProperty(value = "开团用户id")
+    private Long userId;
+
+    /**
+     * 状态(1.等待拼团 2.拼团成功 3.拼团失败 4.已退款)
+     */
+    @ApiModelProperty(value = "状态(1.等待拼团 2.拼团成功 3.拼团失败 4.已退款)")
+    private Integer status;
+
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommodityOrderCollageTeamPeopleDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommodityOrderCollageTeamPeopleDto.java
new file mode 100644
index 0000000..7a4cc15
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommodityOrderCollageTeamPeopleDto.java
@@ -0,0 +1,66 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 新增电动车商城-拼团活动团队人员表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 新增电动车商城-拼团活动团队人员表请求参数
+ *
+ * @author lyq
+ * @date 2022-03-29 16:07:10
+ */
+@Data
+@ApiModel("新增电动车商城-拼团活动团队人员表请求参数")
+public class AddComBatteryCommodityOrderCollageTeamPeopleDto {
+
+
+    /**
+     * 拼团团队id
+     */
+    @ApiModelProperty(value = "拼团团队id")
+    private Long teamId;
+
+    /**
+     * 团长id
+     */
+    @ApiModelProperty(value = "团长id")
+    private Long headUserId;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+
+    /**
+     * 参团类型(1.开团 2.参与拼团)
+     */
+    @ApiModelProperty(value = "参团类型(1.开团 2.参与拼团)")
+    private Integer type;
+
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommodityOrderDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommodityOrderDto.java
new file mode 100644
index 0000000..a7d55f6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommodityOrderDto.java
@@ -0,0 +1,217 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 新增电动车商城-订单表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 新增电动车商城-订单表请求参数
+ *
+ * @author lyq
+ * @date 2022-03-29 13:18:45
+ */
+@Data
+@ApiModel("新增电动车商城-订单表请求参数")
+public class AddComBatteryCommodityOrderDto {
+
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+
+    /**
+     * 商家id
+     */
+    @ApiModelProperty(value = "商家id")
+    private Long storeId;
+
+    /**
+     * 收货地址id
+     */
+    @ApiModelProperty(value = "收货地址id")
+    private Long addressId;
+
+    /**
+     * 活动id
+     */
+    @ApiModelProperty(value = "活动id")
+    private Long activityId;
+
+    /**
+     * 商品id
+     */
+    @ApiModelProperty(value = "商品id")
+    private Long commodityId;
+
+    /**
+     * 商品规格id
+     */
+    @ApiModelProperty(value = "商品规格id")
+    private Long specsId;
+
+    /**
+     * 订单号
+     */
+    @ApiModelProperty(value = "订单号")
+    private String orderNo;
+
+    /**
+     * 活动状态(1.拼团活动 2.砍价活动 3.限时秒杀)
+     */
+    @ApiModelProperty(value = "活动状态(1.拼团活动 2.砍价活动 3.限时秒杀)")
+    private Integer activityType;
+
+    /**
+     * 订单状态(1.待付款 2.待发货 3.待收货 4.已完成 5.待拼团 6.待砍价 7.已退款 8.已关闭)
+     */
+    @ApiModelProperty(value = "订单状态(1.待付款 2.待发货 3.待收货 4.已完成 5.待拼团 6.待砍价 7.已退款 8.已关闭)")
+    private Integer status;
+
+    /**
+     * 拼团状态(1.拼团中 2.拼团成功 3.拼团失败)
+     */
+    @ApiModelProperty(value = "拼团状态(1.拼团中 2.拼团成功 3.拼团失败)")
+    private Integer collageStatus;
+
+    /**
+     * 砍价状态(1.砍价中 2.砍价成功 3.砍价失败)
+     */
+    @ApiModelProperty(value = "砍价状态(1.砍价中 2.砍价成功 3.砍价失败)")
+    private Integer bargainStatus;
+
+    /**
+     * 支付状态(1.未支付 2.已支付)
+     */
+    @ApiModelProperty(value = "支付状态(1.未支付 2.已支付)")
+    private Integer payStatus;
+
+    /**
+     * 是否已删除(1.是  2.否)
+     */
+    @ApiModelProperty(value = "是否已删除(1.是  2.否)")
+    private Integer isDel;
+
+    /**
+     * 支付方式(1.微信支付)
+     */
+    @ApiModelProperty(value = "支付方式(1.微信支付)")
+    private Integer payType;
+
+    /**
+     * 购买商品数量
+     */
+    @ApiModelProperty(value = "购买商品数量")
+    private Integer count;
+
+    /**
+     * 商品单价
+     */
+    @ApiModelProperty(value = "商品单价")
+    private BigDecimal price;
+
+    /**
+     * 订单金额
+     */
+    @ApiModelProperty(value = "订单金额")
+    private BigDecimal amount;
+
+    /**
+     * 运费
+     */
+    @ApiModelProperty(value = "运费")
+    private BigDecimal freight;
+
+    /**
+     * 物流单号
+     */
+    @ApiModelProperty(value = "物流单号")
+    private String logisticsNo;
+
+    /**
+     * 物流公司
+     */
+    @ApiModelProperty(value = "物流公司")
+    private String logisticsCompany;
+
+    /**
+     * 订单最终金额
+     */
+    @ApiModelProperty(value = "订单最终金额")
+    private BigDecimal finalAmount;
+
+    /**
+     * 支付单号
+     */
+    @ApiModelProperty(value = "支付单号")
+    private String payNo;
+
+    /**
+     * 支付总金额
+     */
+    @ApiModelProperty(value = "支付总金额")
+    private BigDecimal payAmount;
+
+    /**
+     * 订单备注
+     */
+    @ApiModelProperty(value = "订单备注")
+    private String remark;
+
+    /**
+     * 发货时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "发货时间")
+    private Date deliveryTime;
+
+    /**
+     * 收货时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "收货时间")
+    private Date receivingTime;
+
+    /**
+     * 下单时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "下单时间")
+    private Date createAt;
+
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+
+    /**
+     * 修改时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+
+    /**
+     * 修改人id
+     */
+    @ApiModelProperty(value = "修改人id")
+    private Long updateBy;
+
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommoditySpecsDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommoditySpecsDto.java
new file mode 100644
index 0000000..50f3363
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryCommoditySpecsDto.java
@@ -0,0 +1,99 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 新增电动车商城-商品规格表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 新增电动车商城-商品规格表请求参数
+ *
+ * @author lyq
+ * @date 2022-03-28 15:16:22
+ */
+@Data
+@ApiModel("新增电动车商城-商品规格表请求参数")
+public class AddComBatteryCommoditySpecsDto {
+
+
+    /**
+     * 商家id
+     */
+    @ApiModelProperty(value = "商家id")
+    private Long storeId;
+
+    /**
+     * 商品id
+     */
+    @ApiModelProperty(value = "商品id")
+    private Long commodityId;
+
+    /**
+     * 规格名称
+     */
+    @ApiModelProperty(value = "规格名称")
+    private String name;
+
+    /**
+     * 规格库存数量
+     */
+    @ApiModelProperty(value = "规格库存数量")
+    private Integer stock;
+
+    /**
+     * 规格价格
+     */
+    @ApiModelProperty(value = "规格价格")
+    private BigDecimal price;
+
+    /**
+     * 规格图片
+     */
+    @ApiModelProperty(value = "规格图片")
+    private String images;
+
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是 2.否)")
+    private Integer isDel;
+
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+
+    /**
+     * 更新时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "更新时间")
+    private Date updateAt;
+
+    /**
+     * 更新人id
+     */
+    @ApiModelProperty(value = "更新人id")
+    private Long updateBy;
+
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryStoreClassDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryStoreClassDto.java
new file mode 100644
index 0000000..d7dd020
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryStoreClassDto.java
@@ -0,0 +1,80 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 新增电动车商城-商家分类表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 新增电动车商城-商家分类表请求参数
+ *
+ * @author lyq
+ * @date 2022-03-29 11:01:57
+ */
+@Data
+@ApiModel("新增电动车商城-商家分类表请求参数")
+public class AddComBatteryStoreClassDto {
+
+
+    /**
+     * 分类名称
+     */
+    @ApiModelProperty(value = "分类名称")
+    private String name;
+
+    /**
+     * 商家id
+     */
+    @ApiModelProperty(value = "商家id")
+    private Long storeId;
+
+    /**
+     * 状态(1.启用 2.禁用)
+     */
+    @ApiModelProperty(value = "状态(1.启用 2.禁用)")
+    private Integer status;
+
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是 2.否)")
+    private Integer isDel;
+
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+
+    /**
+     * 更新时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "更新时间")
+    private Date updateAt;
+
+    /**
+     * 更新人id
+     */
+    @ApiModelProperty(value = "更新人id")
+    private Long updateBy;
+
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryStoreDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryStoreDto.java
new file mode 100644
index 0000000..5a2dd3b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryStoreDto.java
@@ -0,0 +1,134 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 新增电动车商城-商家表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 新增电动车商城-商家表请求参数
+ *
+ * @author lyq
+ * @date 2022-03-28 13:44:59
+ */
+@Data
+@ApiModel("新增电动车商城-商家表请求参数")
+public class AddComBatteryStoreDto {
+
+
+    /**
+     * 商家名称
+     */
+    @ApiModelProperty(value = "商家名称")
+    private String name;
+
+    /**
+     * 注册手机
+     */
+    @ApiModelProperty(value = "注册手机")
+    private String regPhone;
+
+    /**
+     * 联系电话
+     */
+    @ApiModelProperty(value = "联系电话")
+    private String phone;
+
+    /**
+     * 商家账号
+     */
+    @ApiModelProperty(value = "商家账号")
+    private String account;
+
+    /**
+     * 商家密码
+     */
+    @ApiModelProperty(value = "商家密码")
+    private String password;
+
+    /**
+     * 状态(1.启用 2.禁用)
+     */
+    @ApiModelProperty(value = "状态(1.启用 2.禁用)")
+    private Integer status;
+
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是 2.否)")
+    private Integer isDel;
+
+    /**
+     * 商家logo
+     */
+    @ApiModelProperty(value = "商家logo")
+    private String logo;
+
+    /**
+     * 商家简介
+     */
+    @ApiModelProperty(value = "商家简介")
+    private String introduction;
+
+    /**
+     * 商家地址
+     */
+    @ApiModelProperty(value = "商家地址")
+    private String address;
+
+    /**
+     * 详细地址
+     */
+    @ApiModelProperty(value = "详细地址")
+    private String detailAddress;
+
+    /**
+     * 经度
+     */
+    @ApiModelProperty(value = "经度")
+    private String longitude;
+
+    /**
+     * 纬度
+     */
+    @ApiModelProperty(value = "纬度")
+    private String latitude;
+
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+
+    /**
+     * 更新时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "更新时间")
+    private Date updateAt;
+
+    /**
+     * 更新人id
+     */
+    @ApiModelProperty(value = "更新人id")
+    private Long updateBy;
+
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryTradeOrderDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryTradeOrderDto.java
new file mode 100644
index 0000000..614ecf2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryTradeOrderDto.java
@@ -0,0 +1,131 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 新增电动车商城-微信交易流水表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 新增电动车商城-微信交易流水表请求参数
+ *
+ * @author lyq
+ * @date 2022-04-01 13:18:50
+ */
+@Data
+@ApiModel("新增电动车商城-微信交易流水表请求参数")
+public class AddComBatteryTradeOrderDto {
+
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+
+    /**
+     * 用户openid
+     */
+    @ApiModelProperty(value = "用户openid")
+    private String openId;
+
+    /**
+     * 订单号
+     */
+    @ApiModelProperty(value = "订单号")
+    private String orderNo;
+
+    /**
+     * 订单状态(1.待支付 2.已支付 3.申请退款 4.已退款 5.已关闭)
+     */
+    @ApiModelProperty(value = "订单状态(1.待支付 2.已支付 3.申请退款 4.已退款 5.已关闭)")
+    private Integer status;
+
+    /**
+     * 支付类型(1.微信 )
+     */
+    @ApiModelProperty(value = "支付类型(1.微信 )")
+    private Integer payType;
+
+    /**
+     * 订单支付状态(1.待支付 2.已支付)
+     */
+    @ApiModelProperty(value = "订单支付状态(1.待支付 2.已支付)")
+    private Integer payStatus;
+
+    /**
+     * 订单金额
+     */
+    @ApiModelProperty(value = "订单金额")
+    private BigDecimal orderAmount;
+
+    /**
+     * 实际支付金额
+     */
+    @ApiModelProperty(value = "实际支付金额")
+    private BigDecimal payAmount;
+
+    /**
+     * 支付单号
+     */
+    @ApiModelProperty(value = "支付单号")
+    private String payNo;
+
+    /**
+     * 支付时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "支付时间")
+    private Date payTime;
+
+    /**
+     * 交易类型(1.电动车商城购买商品)
+     */
+    @ApiModelProperty(value = "交易类型(1.电动车商城购买商品)")
+    private Integer tradeType;
+
+    /**
+     * 交易业务订单id
+     */
+    @ApiModelProperty(value = "交易业务订单id")
+    private Long tradeOrderId;
+
+    /**
+     * 交易业务订单号
+     */
+    @ApiModelProperty(value = "交易业务订单号")
+    private String tradeOrderNo;
+
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+
+    /**
+     * 创建人
+     */
+    @ApiModelProperty(value = "创建人")
+    private Long createBy;
+
+    /**
+     * 修改时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryUserAddressDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryUserAddressDto.java
new file mode 100644
index 0000000..a79867b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComBatteryUserAddressDto.java
@@ -0,0 +1,116 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 新增电动车商城-用户收货地址表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 新增电动车商城-用户收货地址表请求参数
+ *
+ * @author lyq
+ * @date 2022-03-29 13:18:20
+ */
+@Data
+@ApiModel("新增电动车商城-用户收货地址表请求参数")
+public class AddComBatteryUserAddressDto {
+
+
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+    /**
+     * 姓名
+     */
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    /**
+     * 手机号
+     */
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+
+    /**
+     * 详细地址
+     */
+    @ApiModelProperty(value = "详细地址")
+    private String address;
+
+    /**
+     * 是否是默认地址(1.是  2.否)
+     */
+    @ApiModelProperty(value = "是否是默认地址(1.是  2.否)")
+    private Integer isDefault;
+
+    /**
+     * 省份行政区划代码
+     */
+    @ApiModelProperty(value = "省份行政区划代码")
+    private String provinceAdcode;
+
+    /**
+     * 省份名称
+     */
+    @ApiModelProperty(value = "省份名称")
+    private String provinceName;
+
+    /**
+     * 城市行政区划代码
+     */
+    @ApiModelProperty(value = "城市行政区划代码")
+    private String cityAdcode;
+
+    /**
+     * 城市名称
+     */
+    @ApiModelProperty(value = "城市名称")
+    private String cityName;
+
+    /**
+     * 区县行政区划代码
+     */
+    @ApiModelProperty(value = "区县行政区划代码")
+    private String districtAdcode;
+
+    /**
+     * 区县名称
+     */
+    @ApiModelProperty(value = "区县名称")
+    private String districtName;
+
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+
+    /**
+     * 修改时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+
+    /**
+     * 修改人id
+     */
+    @ApiModelProperty(value = "修改人id")
+    private Long updateBy;
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComChangeCarBrandDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComChangeCarBrandDto.java
new file mode 100644
index 0000000..d900c2e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComChangeCarBrandDto.java
@@ -0,0 +1,86 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 新增换新车-品牌表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 新增换新车-品牌表请求参数
+ *
+ * @author lyq
+ * @date 2022-04-07 13:37:25
+ */
+@Data
+@ApiModel("新增换新车-品牌表请求参数")
+public class AddComChangeCarBrandDto {
+
+
+    /**
+     * 品牌编号
+     */
+    @ApiModelProperty(value = "品牌编号")
+    private String code;
+
+    /**
+     * 品牌名称
+     */
+    @ApiModelProperty(value = "品牌名称")
+    private String name;
+
+    /**
+     * 状态(1.启用 2.禁用)
+     */
+    @ApiModelProperty(value = "状态(1.启用 2.禁用)")
+    private Integer status;
+
+    /**
+     * 品牌logo
+     */
+    @ApiModelProperty(value = "品牌logo")
+    private String logo;
+
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是 2.否)")
+    private Integer isDel;
+
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+
+    /**
+     * 修改时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+
+    /**
+     * 修改人id
+     */
+    @ApiModelProperty(value = "修改人id")
+    private Long updateBy;
+
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComChangeCarInquiryDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComChangeCarInquiryDto.java
new file mode 100644
index 0000000..7baab60
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComChangeCarInquiryDto.java
@@ -0,0 +1,72 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 新增换新车-分期询价表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 新增换新车-分期询价表请求参数
+ *
+ * @author lyq
+ * @date 2022-04-07 13:39:07
+ */
+@Data
+@ApiModel("新增换新车-分期询价表请求参数")
+public class AddComChangeCarInquiryDto {
+
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id",hidden = true)
+    private Long userId;
+
+    /**
+     * 用户称呼
+     */
+    @ApiModelProperty(value = "用户称呼")
+    private String name;
+
+    /**
+     * 用户手机号
+     */
+    @ApiModelProperty(value = "用户手机号")
+    private String phone;
+
+    /**
+     * 类型(1.分期 2.询价)
+     */
+    @ApiModelProperty(value = "类型(1.分期 2.询价)")
+    private Integer type;
+
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是 2.否)",hidden = true)
+    private Integer isDel;
+
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间",hidden = true)
+    private Date createAt;
+
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id",hidden = true)
+    private Long createBy;
+
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComChangeCarModelDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComChangeCarModelDto.java
new file mode 100644
index 0000000..71214f8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComChangeCarModelDto.java
@@ -0,0 +1,99 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 新增换新车-车型管理表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 新增换新车-车型管理表请求参数
+ *
+ * @author lyq
+ * @date 2022-04-07 13:41:56
+ */
+@Data
+@ApiModel("新增换新车-车型管理表请求参数")
+public class AddComChangeCarModelDto {
+
+
+    /**
+     * 车型名称
+     */
+    @ApiModelProperty(value = "车型名称")
+    private String name;
+
+    /**
+     * 图片url,多张以,隔开
+     */
+    @ApiModelProperty(value = "图片url,多张以,隔开")
+    private String images;
+
+    /**
+     * 最低价格
+     */
+    @ApiModelProperty(value = "最低价格")
+    private BigDecimal minPrice;
+
+    /**
+     * 品牌id
+     */
+    @ApiModelProperty(value = "品牌id")
+    private Long brandId;
+
+    /**
+     * 车辆详情
+     */
+    @ApiModelProperty(value = "车辆详情")
+    private String detail;
+
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是 2.否)")
+    private Integer isDel;
+
+    /**
+     * 状态(1.上架 2.下架)
+     */
+    @ApiModelProperty(value = "状态(1.上架 2.下架)")
+    private Integer status;
+
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+
+    /**
+     * 修改时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+
+    /**
+     * 修改人id
+     */
+    @ApiModelProperty(value = "修改人id")
+    private Long updateBy;
+
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComChangeCarModelRelationDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComChangeCarModelRelationDto.java
new file mode 100644
index 0000000..1b3646c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComChangeCarModelRelationDto.java
@@ -0,0 +1,44 @@
+package com.panzhihua.common.model.dtos.common;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 新增换新车-车型与规格关联表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 新增换新车-车型与规格关联表请求参数
+ *
+ * @author lyq
+ * @date 2022-04-07 13:55:30
+ */
+@Data
+@ApiModel("新增换新车-车型与规格关联表请求参数")
+public class AddComChangeCarModelRelationDto {
+
+
+    /**
+     * 车型id
+     */
+    @ApiModelProperty(value = "车型id")
+    private Long modelId;
+
+    /**
+     * 车型规格id
+     */
+    @ApiModelProperty(value = "车型规格id")
+    private Long modelSpecsId;
+
+    /**
+     * 车型子规格id
+     */
+    @ApiModelProperty(value = "车型子规格id")
+    private Long modelSpecsChildrenId;
+
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComChangeCarModelSpecsChildrenDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComChangeCarModelSpecsChildrenDto.java
new file mode 100644
index 0000000..4f40eb6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComChangeCarModelSpecsChildrenDto.java
@@ -0,0 +1,44 @@
+package com.panzhihua.common.model.dtos.common;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 新增换新车-车型子规格表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 新增换新车-车型子规格表请求参数
+ *
+ * @author lyq
+ * @date 2022-04-07 13:55:34
+ */
+@Data
+@ApiModel("新增换新车-车型子规格表请求参数")
+public class AddComChangeCarModelSpecsChildrenDto {
+
+
+    /**
+     * 主规格id
+     */
+    @ApiModelProperty(value = "主规格id")
+    private Long specsId;
+
+    /**
+     * 子规格名称
+     */
+    @ApiModelProperty(value = "子规格名称")
+    private String name;
+
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是 2.否)")
+    private Integer isDel;
+
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComChangeCarModelSpecsDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComChangeCarModelSpecsDto.java
new file mode 100644
index 0000000..de0c479
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComChangeCarModelSpecsDto.java
@@ -0,0 +1,74 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 新增换新车-车型规格表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 新增换新车-车型规格表请求参数
+ *
+ * @author lyq
+ * @date 2022-04-07 13:55:32
+ */
+@Data
+@ApiModel("新增换新车-车型规格表请求参数")
+public class AddComChangeCarModelSpecsDto {
+
+
+    /**
+     * 规格编号
+     */
+    @ApiModelProperty(value = "规格编号")
+    private String code;
+
+    /**
+     * 规格名称
+     */
+    @ApiModelProperty(value = "规格名称")
+    private String name;
+
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是 2.否)")
+    private Integer isDel;
+
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+
+    /**
+     * 修改时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+
+    /**
+     * 修改人id
+     */
+    @ApiModelProperty(value = "修改人id")
+    private Long updateBy;
+
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComMngVolunteerOrgTeamDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComMngVolunteerOrgTeamDto.java
new file mode 100644
index 0000000..54d4a1b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComMngVolunteerOrgTeamDto.java
@@ -0,0 +1,67 @@
+package com.panzhihua.common.model.dtos.common;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * 新增志愿者组织队伍表请求参数
+ *
+ * @author lyq
+ * @since 2021-10-30 16:04:49
+ */
+@Data
+@ApiModel("新增志愿者组织队伍表请求参数")
+public class AddComMngVolunteerOrgTeamDto {
+
+    private Long id;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    /**
+     * 名称
+     */
+    @ApiModelProperty(value = "名称")
+    private String name;
+
+    /**
+     * 父级id,为0时则为组织,不为0则为队伍
+     */
+    @ApiModelProperty(value = "父级id,为0时则为组织,不为0则为队伍")
+    private Long parentId;
+
+    /**
+     * 服务类型
+     */
+    @ApiModelProperty(value = "服务类型")
+    private Long serviceTypeId;
+
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+
+    /**
+     * 修改时间
+     */
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+
+
+
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComMngVolunteerServiceTypeDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComMngVolunteerServiceTypeDto.java
new file mode 100644
index 0000000..608bab4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComMngVolunteerServiceTypeDto.java
@@ -0,0 +1,45 @@
+package com.panzhihua.common.model.dtos.common;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 新增志愿者服务类型表请求参数
+ *
+ * @author lyq
+ * @since 2021-10-30 16:47:10
+ */
+@Data
+@ApiModel("新增志愿者服务类型表请求参数")
+public class AddComMngVolunteerServiceTypeDto {
+
+
+    private Long id;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id",hidden = true)
+    private Long communityId;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id",hidden = true)
+    private Long userId;
+
+    /**
+     * 名称
+     */
+    @ApiModelProperty(value = "名称")
+    private String name;
+
+    /**
+     * 备注
+     */
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComMngVolunteerSkillDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComMngVolunteerSkillDto.java
new file mode 100644
index 0000000..1d4ac99
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComMngVolunteerSkillDto.java
@@ -0,0 +1,44 @@
+package com.panzhihua.common.model.dtos.common;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 新增志愿者技能表请求参数
+ *
+ * @author lyq
+ * @since 2021-10-30 16:47:37
+ */
+@Data
+@ApiModel("新增志愿者技能表请求参数")
+public class AddComMngVolunteerSkillDto {
+
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id",hidden = true)
+    private Long communityId;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id",hidden = true)
+    private Long userId;
+
+    /**
+     * 名称
+     */
+    @ApiModelProperty(value = "名称")
+    private String name;
+
+    /**
+     * 备注
+     */
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComPbCheckUnitDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComPbCheckUnitDto.java
new file mode 100644
index 0000000..8f5205e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddComPbCheckUnitDto.java
@@ -0,0 +1,120 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 新增党建-报到单位请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 新增党建-报到单位请求参数
+ *
+ * @author lyq
+ * @date 2022-02-16 16:22:40
+ */
+@Data
+@ApiModel("新增党建-报到单位请求参数")
+public class AddComPbCheckUnitDto {
+
+
+    /**
+     * 单位名称
+     */
+    @ApiModelProperty(value = "单位名称")
+    private String name;
+
+    /**
+     * 单位类别(1.国有企业 2.国有控股企业 3.外资企业 4.合资企业 5.私营企业 6.事业单位 7.国家行政机关 8.政府)
+     */
+    @ApiModelProperty(value = "单位类别(1.国有企业 2.国有控股企业 3.外资企业 4.合资企业 5.私营企业 6.事业单位 7.国家行政机关 8.政府)")
+    private Integer type;
+
+    /**
+     * 负责人
+     */
+    @ApiModelProperty(value = "负责人")
+    private String contacts;
+
+    /**
+     * 负责人联系电话
+     */
+    @ApiModelProperty(value = "负责人联系电话")
+    private String phone;
+
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+
+    /**
+     * 修改时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+
+    /**
+     * 修改人id
+     */
+    @ApiModelProperty(value = "修改人id")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "社区id",hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "党组织名称")
+    private String orgName;
+
+    @ApiModelProperty(value = "党组织logo")
+    private String logo;
+
+    private Integer partyNum;
+
+    @ApiModelProperty(value = "特长描述")
+    private String specialtyName;
+    @ApiModelProperty(value = "帮扶社区id")
+    private Long helpCommunityId;
+    @ApiModelProperty(value = "帮扶社区名字")
+    private String helpCommunityName;
+    @ApiModelProperty(value = "帮扶社区手机号")
+    private String helpCommunityContacts;
+    @ApiModelProperty(value = "帮扶社区联系人")
+    private String helpCommunityContactsName;
+    @ApiModelProperty(value = "小区id")
+    private Long villageId;
+    @ApiModelProperty(value = "小区名字")
+    private String villageName;
+
+    private String natureName;
+
+    private Integer natureId;
+
+    private String address;
+    @ApiModelProperty(value = "管理员名称")
+    private String adminName;
+    @ApiModelProperty(value = "管理员电话")
+    private String adminPhone;
+    @ApiModelProperty(value = "其他")
+    private String otherRemark;
+    @ApiModelProperty(value = "单位所属")
+    private String belongTo;
+    @ApiModelProperty(value = "联系人json")
+    private String adminJson;
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddSysUserDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddSysUserDto.java
new file mode 100644
index 0000000..b127ede
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/AddSysUserDto.java
@@ -0,0 +1,255 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 新增用户表 后台用户+小程序用户请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 新增用户表 后台用户+小程序用户请求参数
+ *
+ * @author lyq
+ * @date 2022-03-28 14:28:10
+ */
+@Data
+@ApiModel("新增用户表 后台用户+小程序用户请求参数")
+public class AddSysUserDto {
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    private Long userId;
+
+    /**
+     * 登录账户
+     */
+    @ApiModelProperty(value = "登录账户")
+    private String account;
+
+    /**
+     * 登录密码
+     */
+    @ApiModelProperty(value = "登录密码")
+    private String password;
+
+    /**
+     * 微信小程序唯一标识
+     */
+    @ApiModelProperty(value = "微信小程序唯一标识")
+    private String openid;
+
+    /**
+     * 会话密钥
+     */
+    @ApiModelProperty(value = "会话密钥")
+    private String sessionKey;
+
+    /**
+     * 用户在开放平台的唯一标识符
+     */
+    @ApiModelProperty(value = "用户在开放平台的唯一标识符")
+    private String unionid;
+
+    /**
+     * 手机号
+     */
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+
+    /**
+     * 昵称
+     */
+    @ApiModelProperty(value = "昵称")
+    private String nickName;
+
+    /**
+     * 真实名字
+     */
+    @ApiModelProperty(value = "真实名字")
+    private String name;
+
+    /**
+     * 社区ID
+     */
+    @ApiModelProperty(value = "社区ID")
+    private Long communityId;
+
+    /**
+     * 性别 1 男 2 女
+     */
+    @ApiModelProperty(value = "性别 1 男 2 女")
+    private Integer sex;
+
+    /**
+     * 身份证号
+     */
+    @ApiModelProperty(value = "身份证号")
+    private String idCard;
+
+    /**
+     * 生日
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "生日")
+    private Date birthday;
+
+    /**
+     * 头像
+     */
+    @ApiModelProperty(value = "头像")
+    private String imageUrl;
+
+    /**
+     * 用户类型 1 小程序 2 运营平台 3 社区平台 5 商家后台 6 网格综治APP 7 网格综治后台 8大屏 9城管后台 10一键报警app
+     */
+    @ApiModelProperty(value = "用户类型 1 小程序 2 运营平台 3 社区平台 5 商家后台 6 网格综治APP 7 网格综治后台 8大屏 9城管后台 10一键报警app")
+    private Integer type;
+
+    /**
+     * 职业
+     */
+    @ApiModelProperty(value = "职业")
+    private String job;
+
+    /**
+     * 是否志愿者 0 否 1 是
+     */
+    @ApiModelProperty(value = "是否志愿者 0 否 1 是")
+    private Integer isVolunteer;
+
+    /**
+     * 是否党员 0 否 1 是
+     */
+    @ApiModelProperty(value = "是否党员 0 否 1 是")
+    private Integer isPartymember;
+
+    /**
+     * 1 启用 2 禁用
+     */
+    @ApiModelProperty(value = "1 启用 2 禁用")
+    private Integer status;
+
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+
+    /**
+     * 最后登录时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "最后登录时间")
+    private Date lastLoginTime;
+
+    /**
+     * 标签多个用,隔开
+     */
+    @ApiModelProperty(value = "标签多个用,隔开")
+    private String tags;
+
+    /**
+     * 家庭id
+     */
+    @ApiModelProperty(value = "家庭id")
+    private Long familyId;
+
+    /**
+     * 人脸采集照片url
+     */
+    @ApiModelProperty(value = "人脸采集照片url")
+    private String faceUrl;
+
+    /**
+     * 人脸采集审核状态 0 待审核 1 审核通过 2驳回
+     */
+    @ApiModelProperty(value = "人脸采集审核状态 0 待审核 1 审核通过 2驳回")
+    private Integer faceState;
+
+    /**
+     * 驳回原因
+     */
+    @ApiModelProperty(value = "驳回原因")
+    private String rejectReson;
+
+    /**
+     * 小区id
+     */
+    @ApiModelProperty(value = "小区id")
+    private Long areaId;
+
+    /**
+     * 证件照(人相面)照片
+     */
+    @ApiModelProperty(value = "证件照(人相面)照片")
+    private String cardPhotoFront;
+
+    /**
+     * 证件照(国徽面)照片
+     */
+    @ApiModelProperty(value = "证件照(国徽面)照片")
+    private String cardPhotoBack;
+
+    /**
+     * 户口本
+     */
+    @ApiModelProperty(value = "户口本")
+    private String familyBook;
+
+    /**
+     * 连续登陆天数 每天凌晨定时任务更新
+     */
+    @ApiModelProperty(value = "连续登陆天数 每天凌晨定时任务更新")
+    private Integer continuousLandingDays;
+
+    /**
+     * 小程序首页是否显示公告(1.是 2.否)
+     */
+    @ApiModelProperty(value = "小程序首页是否显示公告(1.是 2.否)")
+    private Integer isTips;
+
+    /**
+     * 网格员工作状态(1.在岗 2.脱岗 3.已下班)
+     */
+    @ApiModelProperty(value = "网格员工作状态(1.在岗 2.脱岗 3.已下班)")
+    private Integer workStatus;
+
+    /**
+     * 网格员上班开始时间
+     */
+    @ApiModelProperty(value = "网格员上班开始时间")
+    private Integer workStartTime;
+
+    /**
+     * 网格员上班结束时间
+     */
+    @ApiModelProperty(value = "网格员上班结束时间")
+    private Integer workEndTime;
+
+    /**
+     * 高龄认证显示提示(1.是 2.否)
+     */
+    @ApiModelProperty(value = "高龄认证显示提示(1.是 2.否)")
+    private Integer bigAgeTips;
+
+    /**
+     * 明文密码
+     */
+    @ApiModelProperty(value = "明文密码")
+    private String plaintextPassword;
+
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComActEasyPhotoEvaluateDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComActEasyPhotoEvaluateDto.java
new file mode 100644
index 0000000..ebce8c3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComActEasyPhotoEvaluateDto.java
@@ -0,0 +1,69 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 编辑随手拍、微心愿评价表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 编辑随手拍、微心愿评价表请求参数
+ *
+ * @author lyq
+ * @date 2022-03-01 13:44:37
+ */
+@Data
+@ApiModel("编辑随手拍、微心愿评价表请求参数")
+public class EditComActEasyPhotoEvaluateDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+    /**
+     * 业务记录id
+     */
+    @ApiModelProperty(value = "业务记录id")
+    private Long serviceId;
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+    /**
+     * 评分
+     */
+    @ApiModelProperty(value = "评分")
+    private Integer score;
+    /**
+     * 评价内容
+     */
+    @ApiModelProperty(value = "评价内容")
+    private String content;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 业务分类(1.随手拍 2.微心愿)
+     */
+    @ApiModelProperty(value = "业务分类(1.随手拍 2.微心愿)")
+    private Integer serviceType;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComActEasyPhotoHandlerDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComActEasyPhotoHandlerDto.java
new file mode 100644
index 0000000..9c4c1c5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComActEasyPhotoHandlerDto.java
@@ -0,0 +1,83 @@
+package com.panzhihua.common.model.dtos.common;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * title: 编辑随手拍、微心愿处理人绑定表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 编辑随手拍、微心愿处理人绑定表请求参数
+ *
+ * @author lyq
+ * @date 2022-03-01 13:45:12
+ */
+@Data
+@ApiModel("编辑随手拍、微心愿处理人绑定表请求参数")
+public class EditComActEasyPhotoHandlerDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+    /**
+     * 处理人id
+     */
+    @ApiModelProperty(value = "处理人id")
+    private Long userId;
+    /**
+     * 业务id
+     */
+    @ApiModelProperty(value = "业务id")
+    private Long serviceId;
+    /**
+     * 人员类型(1.后台用户 2.党员 3.志愿者 4.社工 5.四长四员)
+     */
+    @ApiModelProperty(value = "人员类型(1.后台用户 2.党员 3.志愿者 4.社工 5.四长四员)")
+    private Integer type;
+    /**
+     * 业务类型(1.随手拍 2.微心愿)
+     */
+    @ApiModelProperty(value = "业务类型(1.随手拍 2.微心愿)")
+    private Integer serviceType;
+
+    /**
+     * 服务状态 0待执行 1已完成
+     */
+    @ApiModelProperty(value = "服务状态 0待执行 1已完成")
+    private Integer status;
+    /**
+     * 发起人id
+     */
+    private Long senderId;
+
+    private Date createTime;
+    /**
+     * 得分
+     */
+    @ApiModelProperty(value = "得分")
+    private Integer score;
+    /**
+     * 汇报内容
+     */
+    @ApiModelProperty(value = "汇报内容")
+    private String resultContent;
+    /**
+     * 汇报图片
+     */
+    @ApiModelProperty(value = "汇报图片")
+    private String resultUrl;
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommodityActivityDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommodityActivityDto.java
new file mode 100644
index 0000000..53faa81
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommodityActivityDto.java
@@ -0,0 +1,129 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 编辑电动车商城-商家活动表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 编辑电动车商城-商家活动表请求参数
+ *
+ * @author lyq
+ * @date 2022-03-29 13:17:41
+ */
+@Data
+@ApiModel("编辑电动车商城-商家活动表请求参数")
+public class EditComBatteryCommodityActivityDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 活动名称
+     */
+    @ApiModelProperty(value = "活动名称")
+    private String name;
+    /**
+     * 活动类型(1.拼团活动 2.砍价活动 3.限时秒杀)
+     */
+    @ApiModelProperty(value = "活动类型(1.拼团活动 2.砍价活动 3.限时秒杀)")
+    private Integer type;
+    /**
+     * 商品id
+     */
+    @ApiModelProperty(value = "商品id")
+    private Long commodityId;
+    /**
+     * 商家id
+     */
+    @ApiModelProperty(value = "商家id")
+    private Long storeId;
+    /**
+     * 状态(1.进行中 2.已下架 3.已结束)
+     */
+    @ApiModelProperty(value = "状态(1.进行中 2.已下架 3.已结束)")
+    private Integer status;
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是 2.否)")
+    private Integer isDel;
+    /**
+     * 活动价格
+     */
+    @ApiModelProperty(value = "活动价格")
+    private BigDecimal price;
+    /**
+     * 活动截止时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "活动截止时间")
+    private Date endTime;
+    /**
+     * 拼团总团数
+     */
+    @ApiModelProperty(value = "拼团总团数")
+    private Integer collageNum;
+    /**
+     * 拼团人数
+     */
+    @ApiModelProperty(value = "拼团人数")
+    private Integer collagePeopleNum;
+    /**
+     * 活动图片
+     */
+    @ApiModelProperty(value = "活动图片")
+    private String images;
+    /**
+     * 活动商品总数
+     */
+    @ApiModelProperty(value = "活动商品总数")
+    private Integer commodityNum;
+    /**
+     * 活动规则
+     */
+    @ApiModelProperty(value = "活动规则")
+    private String rule;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+    /**
+     * 更新时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "更新时间")
+    private Date updateAt;
+    /**
+     * 更新人id
+     */
+    @ApiModelProperty(value = "更新人id")
+    private Long updateBy;
+
+    /**
+     * 商品规格id
+     */
+    @ApiModelProperty(value = "商品规格id")
+    private Long specsId;
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommodityDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommodityDto.java
new file mode 100644
index 0000000..45c2021
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommodityDto.java
@@ -0,0 +1,112 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 编辑电动车商城-商品表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 编辑电动车商城-商品表请求参数
+ *
+ * @author lyq
+ * @date 2022-03-28 14:59:59
+ */
+@Data
+@ApiModel("编辑电动车商城-商品表请求参数")
+public class EditComBatteryCommodityDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 商品名称
+     */
+    @ApiModelProperty(value = "商品名称")
+    private String name;
+    /**
+     * 商品编号
+     */
+    @ApiModelProperty(value = "商品编号")
+    private String code;
+    /**
+     * 商品价格
+     */
+    @ApiModelProperty(value = "商品价格")
+    private BigDecimal price;
+    /**
+     * 商家id
+     */
+    @ApiModelProperty(value = "商家id")
+    private Long storeId;
+    /**
+     * 状态(1.上架 2.下架)
+     */
+    @ApiModelProperty(value = "状态(1.上架 2.下架)")
+    private Integer status;
+    /**
+     * 商品分类id
+     */
+    @ApiModelProperty(value = "商品分类id")
+    private Long classId;
+    /**
+     * 商品简介
+     */
+    @ApiModelProperty(value = "商品简介")
+    private String introduce;
+    /**
+     * 邮费
+     */
+    @ApiModelProperty(value = "邮费")
+    private BigDecimal postage;
+    /**
+     * 商品图片
+     */
+    @ApiModelProperty(value = "商品图片")
+    private String images;
+    /**
+     * 商品详情
+     */
+    @ApiModelProperty(value = "商品详情")
+    private String detail;
+    /**
+     * 是否删除(1.是  2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是  2.否)")
+    private Integer isDel;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+    /**
+     * 更新时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "更新时间")
+    private Date updateAt;
+    /**
+     * 更新人id
+     */
+    @ApiModelProperty(value = "更新人id")
+    private Long updateBy;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommodityOrderBargainDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommodityOrderBargainDto.java
new file mode 100644
index 0000000..1a378b0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommodityOrderBargainDto.java
@@ -0,0 +1,90 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 编辑电动车商城-砍价订单记录表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 编辑电动车商城-砍价订单记录表请求参数
+ *
+ * @author lyq
+ * @date 2022-03-29 16:06:37
+ */
+@Data
+@ApiModel("编辑电动车商城-砍价订单记录表请求参数")
+public class EditComBatteryCommodityOrderBargainDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+    /**
+     * 商品id
+     */
+    @ApiModelProperty(value = "商品id")
+    private Long commodityId;
+    /**
+     * 活动id
+     */
+    @ApiModelProperty(value = "活动id")
+    private Long activityId;
+    /**
+     * 订单id
+     */
+    @ApiModelProperty(value = "订单id")
+    private Long orderId;
+    /**
+     * 订单号
+     */
+    @ApiModelProperty(value = "订单号")
+    private String orderNo;
+    /**
+     * 商品原价
+     */
+    @ApiModelProperty(value = "商品原价")
+    private BigDecimal originalPrice;
+    /**
+     * 目标价格
+     */
+    @ApiModelProperty(value = "目标价格")
+    private BigDecimal targetPrice;
+    /**
+     * 当前价格
+     */
+    @ApiModelProperty(value = "当前价格")
+    private BigDecimal currentPrice;
+    /**
+     * 当前已砍价次数
+     */
+    @ApiModelProperty(value = "当前已砍价次数")
+    private Integer count;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommodityOrderBargainRecordDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommodityOrderBargainRecordDto.java
new file mode 100644
index 0000000..cc833a5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommodityOrderBargainRecordDto.java
@@ -0,0 +1,65 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 编辑电动车商城-订单砍价记录表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 编辑电动车商城-订单砍价记录表请求参数
+ *
+ * @author lyq
+ * @date 2022-03-29 16:06:48
+ */
+@Data
+@ApiModel("编辑电动车商城-订单砍价记录表请求参数")
+public class EditComBatteryCommodityOrderBargainRecordDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 砍价记录id
+     */
+    @ApiModelProperty(value = "砍价记录id")
+    private Long bargainId;
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+    /**
+     * 砍价金额
+     */
+    @ApiModelProperty(value = "砍价金额")
+    private BigDecimal amount;
+    /**
+     * 原砍价用户id
+     */
+    @ApiModelProperty(value = "原砍价用户id")
+    private Long oldUserId;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommodityOrderCollageTeamDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommodityOrderCollageTeamDto.java
new file mode 100644
index 0000000..6a807ca
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommodityOrderCollageTeamDto.java
@@ -0,0 +1,64 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 编辑电动车商城-拼团订单团队表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 编辑电动车商城-拼团订单团队表请求参数
+ *
+ * @author lyq
+ * @date 2022-03-29 16:06:59
+ */
+@Data
+@ApiModel("编辑电动车商城-拼团订单团队表请求参数")
+public class EditComBatteryCommodityOrderCollageTeamDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 活动id
+     */
+    @ApiModelProperty(value = "活动id")
+    private Long activityId;
+    /**
+     * 订单id
+     */
+    @ApiModelProperty(value = "订单id")
+    private Long orderId;
+    /**
+     * 订单号
+     */
+    @ApiModelProperty(value = "订单号")
+    private String orderNo;
+    /**
+     * 开团用户id
+     */
+    @ApiModelProperty(value = "开团用户id")
+    private Long userId;
+    /**
+     * 状态(1.等待拼团 2.拼团成功 3.拼团失败 4.已退款)
+     */
+    @ApiModelProperty(value = "状态(1.等待拼团 2.拼团成功 3.拼团失败 4.已退款)")
+    private Integer status;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommodityOrderCollageTeamPeopleDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommodityOrderCollageTeamPeopleDto.java
new file mode 100644
index 0000000..60fda7e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommodityOrderCollageTeamPeopleDto.java
@@ -0,0 +1,64 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 编辑电动车商城-拼团活动团队人员表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 编辑电动车商城-拼团活动团队人员表请求参数
+ *
+ * @author lyq
+ * @date 2022-03-29 16:07:11
+ */
+@Data
+@ApiModel("编辑电动车商城-拼团活动团队人员表请求参数")
+public class EditComBatteryCommodityOrderCollageTeamPeopleDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 拼团团队id
+     */
+    @ApiModelProperty(value = "拼团团队id")
+    private Long teamId;
+    /**
+     * 团长id
+     */
+    @ApiModelProperty(value = "团长id")
+    private Long headUserId;
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+    /**
+     * 参团类型(1.开团 2.参与拼团)
+     */
+    @ApiModelProperty(value = "参团类型(1.开团 2.参与拼团)")
+    private Integer type;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommodityOrderDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommodityOrderDto.java
new file mode 100644
index 0000000..fb210ee
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommodityOrderDto.java
@@ -0,0 +1,191 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 编辑电动车商城-订单表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 编辑电动车商城-订单表请求参数
+ *
+ * @author lyq
+ * @date 2022-03-29 13:18:46
+ */
+@Data
+@ApiModel("编辑电动车商城-订单表请求参数")
+public class EditComBatteryCommodityOrderDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+    /**
+     * 商家id
+     */
+    @ApiModelProperty(value = "商家id")
+    private Long storeId;
+    /**
+     * 收货地址id
+     */
+    @ApiModelProperty(value = "收货地址id")
+    private Long addressId;
+    /**
+     * 活动id
+     */
+    @ApiModelProperty(value = "活动id")
+    private Long activityId;
+    /**
+     * 商品id
+     */
+    @ApiModelProperty(value = "商品id")
+    private Long commodityId;
+    /**
+     * 商品规格id
+     */
+    @ApiModelProperty(value = "商品规格id")
+    private Long specsId;
+    /**
+     * 订单号
+     */
+    @ApiModelProperty(value = "订单号")
+    private String orderNo;
+    /**
+     * 活动状态(1.拼团活动 2.砍价活动 3.限时秒杀)
+     */
+    @ApiModelProperty(value = "活动状态(1.拼团活动 2.砍价活动 3.限时秒杀)")
+    private Integer activityType;
+    /**
+     * 订单状态(1.待付款 2.待发货 3.待收货 4.已完成 5.待拼团 6.待砍价 7.已退款 8.已关闭)
+     */
+    @ApiModelProperty(value = "订单状态(1.待付款 2.待发货 3.待收货 4.已完成 5.待拼团 6.待砍价 7.已退款 8.已关闭)")
+    private Integer status;
+    /**
+     * 拼团状态(1.拼团中 2.拼团成功 3.拼团失败)
+     */
+    @ApiModelProperty(value = "拼团状态(1.拼团中 2.拼团成功 3.拼团失败)")
+    private Integer collageStatus;
+    /**
+     * 砍价状态(1.砍价中 2.砍价成功 3.砍价失败)
+     */
+    @ApiModelProperty(value = "砍价状态(1.砍价中 2.砍价成功 3.砍价失败)")
+    private Integer bargainStatus;
+    /**
+     * 支付状态(1.未支付 2.已支付)
+     */
+    @ApiModelProperty(value = "支付状态(1.未支付 2.已支付)")
+    private Integer payStatus;
+    /**
+     * 是否已删除(1.是  2.否)
+     */
+    @ApiModelProperty(value = "是否已删除(1.是  2.否)")
+    private Integer isDel;
+    /**
+     * 支付方式(1.微信支付)
+     */
+    @ApiModelProperty(value = "支付方式(1.微信支付)")
+    private Integer payType;
+    /**
+     * 购买商品数量
+     */
+    @ApiModelProperty(value = "购买商品数量")
+    private Integer count;
+    /**
+     * 商品单价
+     */
+    @ApiModelProperty(value = "商品单价")
+    private BigDecimal price;
+    /**
+     * 订单金额
+     */
+    @ApiModelProperty(value = "订单金额")
+    private BigDecimal amount;
+    /**
+     * 运费
+     */
+    @ApiModelProperty(value = "运费")
+    private BigDecimal freight;
+    /**
+     * 物流单号
+     */
+    @ApiModelProperty(value = "物流单号")
+    private String logisticsNo;
+    /**
+     * 物流公司
+     */
+    @ApiModelProperty(value = "物流公司")
+    private String logisticsCompany;
+    /**
+     * 订单最终金额
+     */
+    @ApiModelProperty(value = "订单最终金额")
+    private BigDecimal finalAmount;
+    /**
+     * 支付单号
+     */
+    @ApiModelProperty(value = "支付单号")
+    private String payNo;
+    /**
+     * 支付总金额
+     */
+    @ApiModelProperty(value = "支付总金额")
+    private BigDecimal payAmount;
+    /**
+     * 订单备注
+     */
+    @ApiModelProperty(value = "订单备注")
+    private String remark;
+    /**
+     * 发货时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "发货时间")
+    private Date deliveryTime;
+    /**
+     * 收货时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "收货时间")
+    private Date receivingTime;
+    /**
+     * 下单时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "下单时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+    /**
+     * 修改时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+    /**
+     * 修改人id
+     */
+    @ApiModelProperty(value = "修改人id")
+    private Long updateBy;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommoditySpecsDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommoditySpecsDto.java
new file mode 100644
index 0000000..fbf1b1f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryCommoditySpecsDto.java
@@ -0,0 +1,92 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 编辑电动车商城-商品规格表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 编辑电动车商城-商品规格表请求参数
+ *
+ * @author lyq
+ * @date 2022-03-28 15:16:22
+ */
+@Data
+@ApiModel("编辑电动车商城-商品规格表请求参数")
+public class EditComBatteryCommoditySpecsDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 商家id
+     */
+    @ApiModelProperty(value = "商家id")
+    private Long storeId;
+    /**
+     * 商品id
+     */
+    @ApiModelProperty(value = "商品id")
+    private Long commodityId;
+    /**
+     * 规格名称
+     */
+    @ApiModelProperty(value = "规格名称")
+    private String name;
+    /**
+     * 规格库存数量
+     */
+    @ApiModelProperty(value = "规格库存数量")
+    private Integer stock;
+    /**
+     * 规格价格
+     */
+    @ApiModelProperty(value = "规格价格")
+    private BigDecimal price;
+    /**
+     * 规格图片
+     */
+    @ApiModelProperty(value = "规格图片")
+    private String images;
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是 2.否)")
+    private Integer isDel;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+    /**
+     * 更新时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "更新时间")
+    private Date updateAt;
+    /**
+     * 更新人id
+     */
+    @ApiModelProperty(value = "更新人id")
+    private Long updateBy;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryStoreClassDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryStoreClassDto.java
new file mode 100644
index 0000000..f2f90cba
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryStoreClassDto.java
@@ -0,0 +1,76 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 编辑电动车商城-商家分类表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 编辑电动车商城-商家分类表请求参数
+ *
+ * @author lyq
+ * @date 2022-03-29 11:01:57
+ */
+@Data
+@ApiModel("编辑电动车商城-商家分类表请求参数")
+public class EditComBatteryStoreClassDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 分类名称
+     */
+    @ApiModelProperty(value = "分类名称")
+    private String name;
+    /**
+     * 商家id
+     */
+    @ApiModelProperty(value = "商家id")
+    private Long storeId;
+    /**
+     * 状态(1.启用 2.禁用)
+     */
+    @ApiModelProperty(value = "状态(1.启用 2.禁用)")
+    private Integer status;
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是 2.否)")
+    private Integer isDel;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+    /**
+     * 更新时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "更新时间")
+    private Date updateAt;
+    /**
+     * 更新人id
+     */
+    @ApiModelProperty(value = "更新人id")
+    private Long updateBy;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryStoreDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryStoreDto.java
new file mode 100644
index 0000000..426790a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryStoreDto.java
@@ -0,0 +1,116 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 编辑电动车商城-商家表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 编辑电动车商城-商家表请求参数
+ *
+ * @author lyq
+ * @date 2022-03-28 13:44:59
+ */
+@Data
+@ApiModel("编辑电动车商城-商家表请求参数")
+public class EditComBatteryStoreDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 商家名称
+     */
+    @ApiModelProperty(value = "商家名称")
+    private String name;
+    /**
+     * 注册手机
+     */
+    @ApiModelProperty(value = "注册手机")
+    private String regPhone;
+    /**
+     * 联系电话
+     */
+    @ApiModelProperty(value = "联系电话")
+    private String phone;
+    /**
+     * 商家账号
+     */
+    @ApiModelProperty(value = "商家账号")
+    private String account;
+    /**
+     * 状态(1.启用 2.禁用)
+     */
+    @ApiModelProperty(value = "状态(1.启用 2.禁用)")
+    private Integer status;
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是 2.否)")
+    private Integer isDel;
+    /**
+     * 商家logo
+     */
+    @ApiModelProperty(value = "商家logo")
+    private String logo;
+    /**
+     * 商家简介
+     */
+    @ApiModelProperty(value = "商家简介")
+    private String introduction;
+    /**
+     * 商家地址
+     */
+    @ApiModelProperty(value = "商家地址")
+    private String address;
+    /**
+     * 详细地址
+     */
+    @ApiModelProperty(value = "详细地址")
+    private String detailAddress;
+    /**
+     * 经度
+     */
+    @ApiModelProperty(value = "经度")
+    private String longitude;
+    /**
+     * 纬度
+     */
+    @ApiModelProperty(value = "纬度")
+    private String latitude;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+    /**
+     * 更新时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "更新时间")
+    private Date updateAt;
+    /**
+     * 更新人id
+     */
+    @ApiModelProperty(value = "更新人id")
+    private Long updateBy;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryTradeOrderDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryTradeOrderDto.java
new file mode 100644
index 0000000..c64024d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryTradeOrderDto.java
@@ -0,0 +1,119 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 编辑电动车商城-微信交易流水表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 编辑电动车商城-微信交易流水表请求参数
+ *
+ * @author lyq
+ * @date 2022-04-01 13:18:51
+ */
+@Data
+@ApiModel("编辑电动车商城-微信交易流水表请求参数")
+public class EditComBatteryTradeOrderDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+    /**
+     * 用户openid
+     */
+    @ApiModelProperty(value = "用户openid")
+    private String openId;
+    /**
+     * 订单号
+     */
+    @ApiModelProperty(value = "订单号")
+    private String orderNo;
+    /**
+     * 订单状态(1.待支付 2.已支付 3.申请退款 4.已退款 5.已关闭)
+     */
+    @ApiModelProperty(value = "订单状态(1.待支付 2.已支付 3.申请退款 4.已退款 5.已关闭)")
+    private Integer status;
+    /**
+     * 支付类型(1.微信 )
+     */
+    @ApiModelProperty(value = "支付类型(1.微信 )")
+    private Integer payType;
+    /**
+     * 订单支付状态(1.待支付 2.已支付)
+     */
+    @ApiModelProperty(value = "订单支付状态(1.待支付 2.已支付)")
+    private Integer payStatus;
+    /**
+     * 订单金额
+     */
+    @ApiModelProperty(value = "订单金额")
+    private BigDecimal orderAmount;
+    /**
+     * 实际支付金额
+     */
+    @ApiModelProperty(value = "实际支付金额")
+    private BigDecimal payAmount;
+    /**
+     * 支付单号
+     */
+    @ApiModelProperty(value = "支付单号")
+    private String payNo;
+    /**
+     * 支付时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "支付时间")
+    private Date payTime;
+    /**
+     * 交易类型(1.电动车商城购买商品)
+     */
+    @ApiModelProperty(value = "交易类型(1.电动车商城购买商品)")
+    private Integer tradeType;
+    /**
+     * 交易业务订单id
+     */
+    @ApiModelProperty(value = "交易业务订单id")
+    private Long tradeOrderId;
+    /**
+     * 交易业务订单号
+     */
+    @ApiModelProperty(value = "交易业务订单号")
+    private String tradeOrderNo;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人
+     */
+    @ApiModelProperty(value = "创建人")
+    private Long createBy;
+    /**
+     * 修改时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryUserAddressDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryUserAddressDto.java
new file mode 100644
index 0000000..4156d3a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComBatteryUserAddressDto.java
@@ -0,0 +1,108 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 编辑电动车商城-用户收货地址表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 编辑电动车商城-用户收货地址表请求参数
+ *
+ * @author lyq
+ * @date 2022-03-29 13:18:21
+ */
+@Data
+@ApiModel("编辑电动车商城-用户收货地址表请求参数")
+public class EditComBatteryUserAddressDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+    /**
+     * 姓名
+     */
+    @ApiModelProperty(value = "姓名")
+    private String name;
+    /**
+     * 手机号
+     */
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+    /**
+     * 详细地址
+     */
+    @ApiModelProperty(value = "详细地址")
+    private String address;
+    /**
+     * 是否是默认地址(1.是  2.否)
+     */
+    @ApiModelProperty(value = "是否是默认地址(1.是  2.否)")
+    private Integer isDefault;
+    /**
+     * 省份行政区划代码
+     */
+    @ApiModelProperty(value = "省份行政区划代码")
+    private String provinceAdcode;
+    /**
+     * 省份名称
+     */
+    @ApiModelProperty(value = "省份名称")
+    private String provinceName;
+    /**
+     * 城市行政区划代码
+     */
+    @ApiModelProperty(value = "城市行政区划代码")
+    private String cityAdcode;
+    /**
+     * 城市名称
+     */
+    @ApiModelProperty(value = "城市名称")
+    private String cityName;
+    /**
+     * 区县行政区划代码
+     */
+    @ApiModelProperty(value = "区县行政区划代码")
+    private String districtAdcode;
+    /**
+     * 区县名称
+     */
+    @ApiModelProperty(value = "区县名称")
+    private String districtName;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+    /**
+     * 修改时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+    /**
+     * 修改人id
+     */
+    @ApiModelProperty(value = "修改人id")
+    private Long updateBy;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComChangeCarBrandDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComChangeCarBrandDto.java
new file mode 100644
index 0000000..60d7acb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComChangeCarBrandDto.java
@@ -0,0 +1,81 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 编辑换新车-品牌表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 编辑换新车-品牌表请求参数
+ *
+ * @author lyq
+ * @date 2022-04-07 13:37:25
+ */
+@Data
+@ApiModel("编辑换新车-品牌表请求参数")
+public class EditComChangeCarBrandDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 品牌编号
+     */
+    @ApiModelProperty(value = "品牌编号")
+    private String code;
+    /**
+     * 品牌名称
+     */
+    @ApiModelProperty(value = "品牌名称")
+    private String name;
+    /**
+     * 状态(1.启用 2.禁用)
+     */
+    @ApiModelProperty(value = "状态(1.启用 2.禁用)")
+    private Integer status;
+    /**
+     * 品牌logo
+     */
+    @ApiModelProperty(value = "品牌logo")
+    private String logo;
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是 2.否)")
+    private Integer isDel;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+    /**
+     * 修改时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+    /**
+     * 修改人id
+     */
+    @ApiModelProperty(value = "修改人id")
+    private Long updateBy;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComChangeCarInquiryDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComChangeCarInquiryDto.java
new file mode 100644
index 0000000..250a3b9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComChangeCarInquiryDto.java
@@ -0,0 +1,69 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 编辑换新车-分期询价表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 编辑换新车-分期询价表请求参数
+ *
+ * @author lyq
+ * @date 2022-04-07 13:39:07
+ */
+@Data
+@ApiModel("编辑换新车-分期询价表请求参数")
+public class EditComChangeCarInquiryDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+    /**
+     * 用户称呼
+     */
+    @ApiModelProperty(value = "用户称呼")
+    private String name;
+    /**
+     * 用户手机号
+     */
+    @ApiModelProperty(value = "用户手机号")
+    private String phone;
+    /**
+     * 类型(1.分期 2.询价)
+     */
+    @ApiModelProperty(value = "类型(1.分期 2.询价)")
+    private Integer type;
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是 2.否)")
+    private Integer isDel;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComChangeCarModelDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComChangeCarModelDto.java
new file mode 100644
index 0000000..75dfb85
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComChangeCarModelDto.java
@@ -0,0 +1,92 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 编辑换新车-车型管理表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 编辑换新车-车型管理表请求参数
+ *
+ * @author lyq
+ * @date 2022-04-07 13:41:56
+ */
+@Data
+@ApiModel("编辑换新车-车型管理表请求参数")
+public class EditComChangeCarModelDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 车型名称
+     */
+    @ApiModelProperty(value = "车型名称")
+    private String name;
+    /**
+     * 图片url,多张以,隔开
+     */
+    @ApiModelProperty(value = "图片url,多张以,隔开")
+    private String images;
+    /**
+     * 最低价格
+     */
+    @ApiModelProperty(value = "最低价格")
+    private BigDecimal minPrice;
+    /**
+     * 品牌id
+     */
+    @ApiModelProperty(value = "品牌id")
+    private Long brandId;
+    /**
+     * 车辆详情
+     */
+    @ApiModelProperty(value = "车辆详情")
+    private String detail;
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是 2.否)")
+    private Integer isDel;
+    /**
+     * 状态(1.上架 2.下架)
+     */
+    @ApiModelProperty(value = "状态(1.上架 2.下架)")
+    private Integer status;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+    /**
+     * 修改时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+    /**
+     * 修改人id
+     */
+    @ApiModelProperty(value = "修改人id")
+    private Long updateBy;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComChangeCarModelRelationDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComChangeCarModelRelationDto.java
new file mode 100644
index 0000000..ebca0d5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComChangeCarModelRelationDto.java
@@ -0,0 +1,45 @@
+package com.panzhihua.common.model.dtos.common;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 编辑换新车-车型与规格关联表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 编辑换新车-车型与规格关联表请求参数
+ *
+ * @author lyq
+ * @date 2022-04-07 13:55:30
+ */
+@Data
+@ApiModel("编辑换新车-车型与规格关联表请求参数")
+public class EditComChangeCarModelRelationDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 车型id
+     */
+    @ApiModelProperty(value = "车型id")
+    private Long modelId;
+    /**
+     * 车型规格id
+     */
+    @ApiModelProperty(value = "车型规格id")
+    private Long modelSpecsId;
+    /**
+     * 车型子规格id
+     */
+    @ApiModelProperty(value = "车型子规格id")
+    private Long modelSpecsChildrenId;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComChangeCarModelSpecsChildrenDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComChangeCarModelSpecsChildrenDto.java
new file mode 100644
index 0000000..7ec044c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComChangeCarModelSpecsChildrenDto.java
@@ -0,0 +1,45 @@
+package com.panzhihua.common.model.dtos.common;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 编辑换新车-车型子规格表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 编辑换新车-车型子规格表请求参数
+ *
+ * @author lyq
+ * @date 2022-04-07 13:55:35
+ */
+@Data
+@ApiModel("编辑换新车-车型子规格表请求参数")
+public class EditComChangeCarModelSpecsChildrenDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 主规格id
+     */
+    @ApiModelProperty(value = "主规格id")
+    private Long specsId;
+    /**
+     * 子规格名称
+     */
+    @ApiModelProperty(value = "子规格名称")
+    private String name;
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是 2.否)")
+    private Integer isDel;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComChangeCarModelSpecsDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComChangeCarModelSpecsDto.java
new file mode 100644
index 0000000..7d2201a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComChangeCarModelSpecsDto.java
@@ -0,0 +1,71 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 编辑换新车-车型规格表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 编辑换新车-车型规格表请求参数
+ *
+ * @author lyq
+ * @date 2022-04-07 13:55:32
+ */
+@Data
+@ApiModel("编辑换新车-车型规格表请求参数")
+public class EditComChangeCarModelSpecsDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 规格编号
+     */
+    @ApiModelProperty(value = "规格编号")
+    private String code;
+    /**
+     * 规格名称
+     */
+    @ApiModelProperty(value = "规格名称")
+    private String name;
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是 2.否)")
+    private Integer isDel;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+    /**
+     * 修改时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+    /**
+     * 修改人id
+     */
+    @ApiModelProperty(value = "修改人id")
+    private Long updateBy;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComMngVolunteerOrgTeamDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComMngVolunteerOrgTeamDto.java
new file mode 100644
index 0000000..3cd38c1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComMngVolunteerOrgTeamDto.java
@@ -0,0 +1,62 @@
+package com.panzhihua.common.model.dtos.common;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * 编辑志愿者组织队伍表请求参数
+ *
+ * @author lyq
+ * @since 2021-10-30 16:04:50
+ */
+@Data
+@ApiModel("编辑志愿者组织队伍表请求参数")
+public class EditComMngVolunteerOrgTeamDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+    /**
+     * 名称
+     */
+    @ApiModelProperty(value = "名称")
+    private String name;
+    /**
+     * 父级id,为0时则为组织,不为0则为队伍
+     */
+    @ApiModelProperty(value = "父级id,为0时则为组织,不为0则为队伍")
+    private Long parentId;
+    /**
+     * 服务类型
+     */
+    @ApiModelProperty(value = "服务类型")
+    private Long serviceTypeId;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 修改时间
+     */
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComMngVolunteerServiceTypeDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComMngVolunteerServiceTypeDto.java
new file mode 100644
index 0000000..2c579d9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComMngVolunteerServiceTypeDto.java
@@ -0,0 +1,73 @@
+package com.panzhihua.common.model.dtos.common;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * 编辑志愿者服务类型表请求参数
+ *
+ * @author lyq
+ * @since 2021-10-30 16:47:10
+ */
+@Data
+@ApiModel("编辑志愿者服务类型表请求参数")
+public class EditComMngVolunteerServiceTypeDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+    /**
+     * 名称
+     */
+    @ApiModelProperty(value = "名称")
+    private String name;
+    /**
+     * 备注
+     */
+    @ApiModelProperty(value = "备注")
+    private String remark;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+    /**
+     * 修改时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+    /**
+     * 修改人id
+     */
+    @ApiModelProperty(value = "修改人id")
+    private Long updateBy;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id",hidden = true)
+    private Long userId;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComMngVolunteerSkillDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComMngVolunteerSkillDto.java
new file mode 100644
index 0000000..4757b0b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComMngVolunteerSkillDto.java
@@ -0,0 +1,44 @@
+package com.panzhihua.common.model.dtos.common;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 编辑志愿者技能表请求参数
+ *
+ * @author lyq
+ * @since 2021-10-30 16:47:37
+ */
+@Data
+@ApiModel("编辑志愿者技能表请求参数")
+public class EditComMngVolunteerSkillDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id",hidden = true)
+    private Long communityId;
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id",hidden = true)
+    private Long userId;
+    /**
+     * 名称
+     */
+    @ApiModelProperty(value = "名称")
+    private String name;
+    /**
+     * 备注
+     */
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComPbCheckUnitDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComPbCheckUnitDto.java
new file mode 100644
index 0000000..ec5a075
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditComPbCheckUnitDto.java
@@ -0,0 +1,115 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 编辑党建-报到单位请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 编辑党建-报到单位请求参数
+ *
+ * @author lyq
+ * @date 2022-02-16 16:22:40
+ */
+@Data
+@ApiModel("编辑党建-报到单位请求参数")
+public class EditComPbCheckUnitDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 单位名称
+     */
+    @ApiModelProperty(value = "单位名称")
+    private String name;
+    /**
+     * 单位类别(1.国有企业 2.国有控股企业 3.外资企业 4.合资企业 5.私营企业 6.事业单位 7.国家行政机关 8.政府)
+     */
+    @ApiModelProperty(value = "单位类别(1.国有企业 2.国有控股企业 3.外资企业 4.合资企业 5.私营企业 6.事业单位 7.国家行政机关 8.政府)")
+    private Integer type;
+    /**
+     * 负责人
+     */
+    @ApiModelProperty(value = "负责人")
+    private String contacts;
+    /**
+     * 负责人联系电话
+     */
+    @ApiModelProperty(value = "负责人联系电话")
+    private String phone;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+    /**
+     * 修改时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+    /**
+     * 修改人id
+     */
+    @ApiModelProperty(value = "修改人id")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "社区id",hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "党组织名称")
+    private String orgName;
+
+    @ApiModelProperty(value = "党组织logo")
+    private String logo;
+
+    @ApiModelProperty(value = "特长描述")
+    private String specialtyName;
+    @ApiModelProperty(value = "帮扶社区id")
+    private Long helpCommunityId;
+    @ApiModelProperty(value = "帮扶社区名字")
+    private String helpCommunityName;
+    @ApiModelProperty(value = "帮扶社区手机号")
+    private String helpCommunityContacts;
+    @ApiModelProperty(value = "帮扶社区联系人")
+    private String helpCommunityContactsName;
+    @ApiModelProperty(value = "小区id")
+    private Long villageId;
+    @ApiModelProperty(value = "小区名字")
+    private String villageName;
+
+    private String natureName;
+
+    private Integer natureId;
+
+    private String address;
+    @ApiModelProperty(value = "管理员名称")
+    private String adminName;
+    @ApiModelProperty(value = "管理员电话")
+    private String adminPhone;
+    @ApiModelProperty(value = "其他")
+    private String otherRemark;
+    @ApiModelProperty(value = "单位所属")
+    private String belongTo;
+    @ApiModelProperty(value = "联系人json")
+    private String adminJson;
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditOrderAddressDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditOrderAddressDto.java
new file mode 100644
index 0000000..2ffe575
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditOrderAddressDto.java
@@ -0,0 +1,40 @@
+package com.panzhihua.common.model.dtos.common;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 修改订单收货地址请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 修改订单收货地址请求参数
+ *
+ * @author lyq
+ * @date 2022-03-29 13:18:45
+ */
+@Data
+@ApiModel("修改订单收货地址请求参数")
+public class EditOrderAddressDto {
+
+    @ApiModelProperty(value = "订单id")
+    private Long id;
+
+    @ApiModelProperty(value = "收件人姓名")
+    private String receivingName;
+
+    @ApiModelProperty(value = "收件人联系方式")
+    private String receivingPhone;
+
+    @ApiModelProperty(value = "收货地区")
+    private String receivingRegion;
+
+    @ApiModelProperty(value = "收货地区Code")
+    private String receivingRegionCode;
+
+    @ApiModelProperty(value = "收货详细地址")
+    private String receivingAddress;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditOrderLogisticsDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditOrderLogisticsDto.java
new file mode 100644
index 0000000..faeb0b5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditOrderLogisticsDto.java
@@ -0,0 +1,31 @@
+package com.panzhihua.common.model.dtos.common;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 修改订单物流信息请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 修改订单物流信息请求参数
+ *
+ * @author lyq
+ * @date 2022-03-29 13:18:45
+ */
+@Data
+@ApiModel("修改订单物流信息请求参数")
+public class EditOrderLogisticsDto {
+
+    @ApiModelProperty(value = "订单id")
+    private Long id;
+
+    @ApiModelProperty(value = "物流单号")
+    private String logisticsNo;
+
+    @ApiModelProperty(value = "物流公司")
+    private String logisticsCompany;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditSysUserDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditSysUserDto.java
new file mode 100644
index 0000000..0522f7a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EditSysUserDto.java
@@ -0,0 +1,218 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 编辑用户表 后台用户+小程序用户请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 编辑用户表 后台用户+小程序用户请求参数
+ *
+ * @author lyq
+ * @date 2022-03-28 14:28:10
+ */
+@Data
+@ApiModel("编辑用户表 后台用户+小程序用户请求参数")
+public class EditSysUserDto {
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    private Long userId;
+    /**
+     * 登录账户
+     */
+    @ApiModelProperty(value = "登录账户")
+    private String account;
+    /**
+     * 登录密码
+     */
+    @ApiModelProperty(value = "登录密码")
+    private String password;
+    /**
+     * 微信小程序唯一标识
+     */
+    @ApiModelProperty(value = "微信小程序唯一标识")
+    private String openid;
+    /**
+     * 会话密钥
+     */
+    @ApiModelProperty(value = "会话密钥")
+    private String sessionKey;
+    /**
+     * 用户在开放平台的唯一标识符
+     */
+    @ApiModelProperty(value = "用户在开放平台的唯一标识符")
+    private String unionid;
+    /**
+     * 手机号
+     */
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+    /**
+     * 昵称
+     */
+    @ApiModelProperty(value = "昵称")
+    private String nickName;
+    /**
+     * 真实名字
+     */
+    @ApiModelProperty(value = "真实名字")
+    private String name;
+    /**
+     * 社区ID
+     */
+    @ApiModelProperty(value = "社区ID")
+    private Long communityId;
+    /**
+     * 性别 1 男 2 女
+     */
+    @ApiModelProperty(value = "性别 1 男 2 女")
+    private Integer sex;
+    /**
+     * 身份证号
+     */
+    @ApiModelProperty(value = "身份证号")
+    private String idCard;
+    /**
+     * 生日
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "生日")
+    private Date birthday;
+    /**
+     * 头像
+     */
+    @ApiModelProperty(value = "头像")
+    private String imageUrl;
+    /**
+     * 用户类型 1 小程序 2 运营平台 3 社区平台 5 商家后台 6 网格综治APP 7 网格综治后台 8大屏 9城管后台 10一键报警app
+     */
+    @ApiModelProperty(value = "用户类型 1 小程序 2 运营平台 3 社区平台 5 商家后台 6 网格综治APP 7 网格综治后台 8大屏 9城管后台 10一键报警app")
+    private Integer type;
+    /**
+     * 职业
+     */
+    @ApiModelProperty(value = "职业")
+    private String job;
+    /**
+     * 是否志愿者 0 否 1 是
+     */
+    @ApiModelProperty(value = "是否志愿者 0 否 1 是")
+    private Integer isVolunteer;
+    /**
+     * 是否党员 0 否 1 是
+     */
+    @ApiModelProperty(value = "是否党员 0 否 1 是")
+    private Integer isPartymember;
+    /**
+     * 1 启用 2 禁用
+     */
+    @ApiModelProperty(value = "1 启用 2 禁用")
+    private Integer status;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 最后登录时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "最后登录时间")
+    private Date lastLoginTime;
+    /**
+     * 标签多个用,隔开
+     */
+    @ApiModelProperty(value = "标签多个用,隔开")
+    private String tags;
+    /**
+     * 家庭id
+     */
+    @ApiModelProperty(value = "家庭id")
+    private Long familyId;
+    /**
+     * 人脸采集照片url
+     */
+    @ApiModelProperty(value = "人脸采集照片url")
+    private String faceUrl;
+    /**
+     * 人脸采集审核状态 0 待审核 1 审核通过 2驳回
+     */
+    @ApiModelProperty(value = "人脸采集审核状态 0 待审核 1 审核通过 2驳回")
+    private Integer faceState;
+    /**
+     * 驳回原因
+     */
+    @ApiModelProperty(value = "驳回原因")
+    private String rejectReson;
+    /**
+     * 小区id
+     */
+    @ApiModelProperty(value = "小区id")
+    private Long areaId;
+    /**
+     * 证件照(人相面)照片
+     */
+    @ApiModelProperty(value = "证件照(人相面)照片")
+    private String cardPhotoFront;
+    /**
+     * 证件照(国徽面)照片
+     */
+    @ApiModelProperty(value = "证件照(国徽面)照片")
+    private String cardPhotoBack;
+    /**
+     * 户口本
+     */
+    @ApiModelProperty(value = "户口本")
+    private String familyBook;
+    /**
+     * 连续登陆天数 每天凌晨定时任务更新
+     */
+    @ApiModelProperty(value = "连续登陆天数 每天凌晨定时任务更新")
+    private Integer continuousLandingDays;
+    /**
+     * 小程序首页是否显示公告(1.是 2.否)
+     */
+    @ApiModelProperty(value = "小程序首页是否显示公告(1.是 2.否)")
+    private Integer isTips;
+    /**
+     * 网格员工作状态(1.在岗 2.脱岗 3.已下班)
+     */
+    @ApiModelProperty(value = "网格员工作状态(1.在岗 2.脱岗 3.已下班)")
+    private Integer workStatus;
+    /**
+     * 网格员上班开始时间
+     */
+    @ApiModelProperty(value = "网格员上班开始时间")
+    private Integer workStartTime;
+    /**
+     * 网格员上班结束时间
+     */
+    @ApiModelProperty(value = "网格员上班结束时间")
+    private Integer workEndTime;
+    /**
+     * 高龄认证显示提示(1.是 2.否)
+     */
+    @ApiModelProperty(value = "高龄认证显示提示(1.是 2.否)")
+    private Integer bigAgeTips;
+    /**
+     * 明文密码
+     */
+    @ApiModelProperty(value = "明文密码")
+    private String plaintextPassword;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EvaluateEasyDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EvaluateEasyDto.java
new file mode 100644
index 0000000..7ab006f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/EvaluateEasyDto.java
@@ -0,0 +1,26 @@
+package com.panzhihua.common.model.dtos.common;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * 随手拍、微心愿评价请求参数
+ */
+@Data
+@ApiModel("随手拍、微心愿评价请求参数")
+public class EvaluateEasyDto {
+
+    @ApiModelProperty(value = "id")
+    private Long  id;
+
+    @ApiModelProperty(value = "用户id",hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "评论内容")
+    private String content;
+
+    @ApiModelProperty(value = "评分")
+    private Integer score;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/OrderDeliverAdminDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/OrderDeliverAdminDto.java
new file mode 100644
index 0000000..088319b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/OrderDeliverAdminDto.java
@@ -0,0 +1,37 @@
+package com.panzhihua.common.model.dtos.common;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * 后台订单发货请求参数
+ */
+@Data
+@ApiModel("后台订单发货请求参数")
+public class OrderDeliverAdminDto {
+
+    @ApiModelProperty(value = "订单id")
+    private Long id;
+
+    @ApiModelProperty(value = "操作用户id",hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "物流公司")
+    private String logisticsCompany;
+
+    @ApiModelProperty(value = "物流单号")
+    private String logisticsNo;
+
+    @ApiModelProperty(value = "操作类型(1.发货 2.修改物流信息)")
+    private Integer type;
+
+    /**
+     * 操作类型(1.发货 2.修改物流信息)
+     */
+    public interface Type{
+        int FH = 1;
+        int XGWL = 2;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComActEasyPhotoEvaluateDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComActEasyPhotoEvaluateDto.java
new file mode 100644
index 0000000..c02561d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComActEasyPhotoEvaluateDto.java
@@ -0,0 +1,78 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 分页查询随手拍、微心愿评价表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 分页查询随手拍、微心愿评价表请求参数
+ *
+ * @author lyq
+ * @date 2022-03-01 13:44:24
+ */
+@Data
+@ApiModel("分页查询随手拍、微心愿评价表请求参数")
+public class PageComActEasyPhotoEvaluateDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+    /**
+     * 业务记录id
+     */
+    @ApiModelProperty(value = "业务记录id")
+    private Long serviceId;
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+    /**
+     * 评分
+     */
+    @ApiModelProperty(value = "评分")
+    private Integer score;
+    /**
+     * 评价内容
+     */
+    @ApiModelProperty(value = "评价内容")
+    private String content;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 业务分类(1.随手拍 2.微心愿)
+     */
+    @ApiModelProperty(value = "业务分类(1.随手拍 2.微心愿)")
+    private Integer serviceType;
+
+    @ApiModelProperty(value = "分页每页数量", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "分页当前记录数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComActEasyPhotoHandlerDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComActEasyPhotoHandlerDto.java
new file mode 100644
index 0000000..98821d9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComActEasyPhotoHandlerDto.java
@@ -0,0 +1,67 @@
+package com.panzhihua.common.model.dtos.common;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 分页查询随手拍、微心愿处理人绑定表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 分页查询随手拍、微心愿处理人绑定表请求参数
+ *
+ * @author lyq
+ * @date 2022-03-01 13:45:11
+ */
+@Data
+@ApiModel("分页查询随手拍、微心愿处理人绑定表请求参数")
+public class PageComActEasyPhotoHandlerDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+    /**
+     * 处理人id
+     */
+    @ApiModelProperty(value = "处理人id")
+    private Long userId;
+    /**
+     * 业务id
+     */
+    @ApiModelProperty(value = "业务id")
+    private Long serviceId;
+    /**
+     * 人员类型(1.后台用户 2.党员 3.志愿者 4.社工 5.四长四员)
+     */
+    @ApiModelProperty(value = "人员类型(1.后台用户 2.党员 3.志愿者 4.社工 5.四长四员)")
+    private Integer type;
+    /**
+     * 业务类型(1.随手拍 2.微心愿)
+     */
+    @ApiModelProperty(value = "业务类型(1.随手拍 2.微心愿)")
+    private Integer serviceType;
+
+    @ApiModelProperty(value = "分页每页数量", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "分页当前记录数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+    @ApiModelProperty(value = "状态 0待执行 1已完成")
+    private Integer status;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryCommodityActivityDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryCommodityActivityDto.java
new file mode 100644
index 0000000..0c173c3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryCommodityActivityDto.java
@@ -0,0 +1,142 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 分页查询电动车商城-商家活动表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 分页查询电动车商城-商家活动表请求参数
+ *
+ * @author lyq
+ * @date 2022-03-29 13:17:40
+ */
+@Data
+@ApiModel("分页查询电动车商城-商家活动表请求参数")
+public class PageComBatteryCommodityActivityDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 活动名称
+     */
+    @ApiModelProperty(value = "活动名称")
+    private String name;
+    /**
+     * 活动类型(1.拼团活动 2.砍价活动 3.限时秒杀)
+     */
+    @ApiModelProperty(value = "活动类型(1.拼团活动 2.砍价活动 3.限时秒杀)")
+    private Integer type;
+    /**
+     * 商品id
+     */
+    @ApiModelProperty(value = "商品id")
+    private Long commodityId;
+    /**
+     * 商家id
+     */
+    @ApiModelProperty(value = "商家id")
+    private Long storeId;
+    /**
+     * 状态(1.进行中 2.已下架 3.已结束)
+     */
+    @ApiModelProperty(value = "状态(1.进行中 2.已下架 3.已结束)")
+    private Integer status;
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是 2.否)")
+    private Integer isDel;
+    /**
+     * 活动价格
+     */
+    @ApiModelProperty(value = "活动价格")
+    private BigDecimal price;
+    /**
+     * 活动截止时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "活动截止时间")
+    private Date endTime;
+    /**
+     * 拼团总团数
+     */
+    @ApiModelProperty(value = "拼团总团数")
+    private Integer collageNum;
+    /**
+     * 拼团人数
+     */
+    @ApiModelProperty(value = "拼团人数")
+    private Integer collagePeopleNum;
+    /**
+     * 活动图片
+     */
+    @ApiModelProperty(value = "活动图片")
+    private String images;
+    /**
+     * 活动商品总数
+     */
+    @ApiModelProperty(value = "活动商品总数")
+    private Integer commodityNum;
+    /**
+     * 活动规则
+     */
+    @ApiModelProperty(value = "活动规则")
+    private String rule;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+    /**
+     * 更新时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "更新时间")
+    private Date updateAt;
+    /**
+     * 更新人id
+     */
+    @ApiModelProperty(value = "更新人id")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "分页每页数量", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "分页当前记录数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+    @ApiModelProperty(value = "用户id",hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "是否是查询自己参与的活动(1.是 2.否)")
+    private Integer isUser = 2;
+
+    @ApiModelProperty(value = "是否是小程序(1.是 2.否)")
+    private Integer isApplets;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryCommodityDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryCommodityDto.java
new file mode 100644
index 0000000..56c467b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryCommodityDto.java
@@ -0,0 +1,121 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 分页查询电动车商城-商品表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 分页查询电动车商城-商品表请求参数
+ *
+ * @author lyq
+ * @date 2022-03-28 14:59:59
+ */
+@Data
+@ApiModel("分页查询电动车商城-商品表请求参数")
+public class PageComBatteryCommodityDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 商品名称
+     */
+    @ApiModelProperty(value = "商品名称")
+    private String name;
+    /**
+     * 商品编号
+     */
+    @ApiModelProperty(value = "商品编号")
+    private String code;
+    /**
+     * 商品价格
+     */
+    @ApiModelProperty(value = "商品价格")
+    private BigDecimal price;
+    /**
+     * 商家id
+     */
+    @ApiModelProperty(value = "商家id")
+    private Long storeId;
+    /**
+     * 状态(1.上架 2.下架)
+     */
+    @ApiModelProperty(value = "状态(1.上架 2.下架)")
+    private Integer status;
+    /**
+     * 商品分类id
+     */
+    @ApiModelProperty(value = "商品分类id")
+    private Long classId;
+    /**
+     * 商品简介
+     */
+    @ApiModelProperty(value = "商品简介")
+    private String introduce;
+    /**
+     * 邮费
+     */
+    @ApiModelProperty(value = "邮费")
+    private BigDecimal postage;
+    /**
+     * 商品图片
+     */
+    @ApiModelProperty(value = "商品图片")
+    private String images;
+    /**
+     * 商品详情
+     */
+    @ApiModelProperty(value = "商品详情")
+    private String detail;
+    /**
+     * 是否删除(1.是  2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是  2.否)")
+    private Integer isDel;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+    /**
+     * 更新时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "更新时间")
+    private Date updateAt;
+    /**
+     * 更新人id
+     */
+    @ApiModelProperty(value = "更新人id")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "分页每页数量", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "分页当前记录数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryCommodityOrderBargainDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryCommodityOrderBargainDto.java
new file mode 100644
index 0000000..fa3f446
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryCommodityOrderBargainDto.java
@@ -0,0 +1,99 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 分页查询电动车商城-砍价订单记录表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 分页查询电动车商城-砍价订单记录表请求参数
+ *
+ * @author lyq
+ * @date 2022-03-29 16:06:36
+ */
+@Data
+@ApiModel("分页查询电动车商城-砍价订单记录表请求参数")
+public class PageComBatteryCommodityOrderBargainDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+    /**
+     * 商品id
+     */
+    @ApiModelProperty(value = "商品id")
+    private Long commodityId;
+    /**
+     * 活动id
+     */
+    @ApiModelProperty(value = "活动id")
+    private Long activityId;
+    /**
+     * 订单id
+     */
+    @ApiModelProperty(value = "订单id")
+    private Long orderId;
+    /**
+     * 订单号
+     */
+    @ApiModelProperty(value = "订单号")
+    private String orderNo;
+    /**
+     * 商品原价
+     */
+    @ApiModelProperty(value = "商品原价")
+    private BigDecimal originalPrice;
+    /**
+     * 目标价格
+     */
+    @ApiModelProperty(value = "目标价格")
+    private BigDecimal targetPrice;
+    /**
+     * 当前价格
+     */
+    @ApiModelProperty(value = "当前价格")
+    private BigDecimal currentPrice;
+    /**
+     * 当前已砍价次数
+     */
+    @ApiModelProperty(value = "当前已砍价次数")
+    private Integer count;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+
+    @ApiModelProperty(value = "分页每页数量", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "分页当前记录数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryCommodityOrderBargainRecordDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryCommodityOrderBargainRecordDto.java
new file mode 100644
index 0000000..27d2f0b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryCommodityOrderBargainRecordDto.java
@@ -0,0 +1,74 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 分页查询电动车商城-订单砍价记录表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 分页查询电动车商城-订单砍价记录表请求参数
+ *
+ * @author lyq
+ * @date 2022-03-29 16:06:47
+ */
+@Data
+@ApiModel("分页查询电动车商城-订单砍价记录表请求参数")
+public class PageComBatteryCommodityOrderBargainRecordDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 砍价记录id
+     */
+    @ApiModelProperty(value = "砍价记录id")
+    private Long bargainId;
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+    /**
+     * 砍价金额
+     */
+    @ApiModelProperty(value = "砍价金额")
+    private BigDecimal amount;
+    /**
+     * 原砍价用户id
+     */
+    @ApiModelProperty(value = "原砍价用户id")
+    private Long oldUserId;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+
+    @ApiModelProperty(value = "分页每页数量", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "分页当前记录数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryCommodityOrderCollageTeamDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryCommodityOrderCollageTeamDto.java
new file mode 100644
index 0000000..0d5a8c0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryCommodityOrderCollageTeamDto.java
@@ -0,0 +1,73 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 分页查询电动车商城-拼团订单团队表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 分页查询电动车商城-拼团订单团队表请求参数
+ *
+ * @author lyq
+ * @date 2022-03-29 16:06:58
+ */
+@Data
+@ApiModel("分页查询电动车商城-拼团订单团队表请求参数")
+public class PageComBatteryCommodityOrderCollageTeamDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 活动id
+     */
+    @ApiModelProperty(value = "活动id")
+    private Long activityId;
+    /**
+     * 订单id
+     */
+    @ApiModelProperty(value = "订单id")
+    private Long orderId;
+    /**
+     * 订单号
+     */
+    @ApiModelProperty(value = "订单号")
+    private String orderNo;
+    /**
+     * 开团用户id
+     */
+    @ApiModelProperty(value = "开团用户id")
+    private Long userId;
+    /**
+     * 状态(1.等待拼团 2.拼团成功 3.拼团失败 4.已退款)
+     */
+    @ApiModelProperty(value = "状态(1.等待拼团 2.拼团成功 3.拼团失败 4.已退款)")
+    private Integer status;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+
+    @ApiModelProperty(value = "分页每页数量", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "分页当前记录数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryCommodityOrderCollageTeamPeopleDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryCommodityOrderCollageTeamPeopleDto.java
new file mode 100644
index 0000000..abb8a35
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryCommodityOrderCollageTeamPeopleDto.java
@@ -0,0 +1,73 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 分页查询电动车商城-拼团活动团队人员表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 分页查询电动车商城-拼团活动团队人员表请求参数
+ *
+ * @author lyq
+ * @date 2022-03-29 16:07:10
+ */
+@Data
+@ApiModel("分页查询电动车商城-拼团活动团队人员表请求参数")
+public class PageComBatteryCommodityOrderCollageTeamPeopleDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 拼团团队id
+     */
+    @ApiModelProperty(value = "拼团团队id")
+    private Long teamId;
+    /**
+     * 团长id
+     */
+    @ApiModelProperty(value = "团长id")
+    private Long headUserId;
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+    /**
+     * 参团类型(1.开团 2.参与拼团)
+     */
+    @ApiModelProperty(value = "参团类型(1.开团 2.参与拼团)")
+    private Integer type;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+
+    @ApiModelProperty(value = "分页每页数量", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "分页当前记录数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryCommodityOrderDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryCommodityOrderDto.java
new file mode 100644
index 0000000..da10e12
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryCommodityOrderDto.java
@@ -0,0 +1,212 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 分页查询电动车商城-订单表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 分页查询电动车商城-订单表请求参数
+ *
+ * @author lyq
+ * @date 2022-03-29 13:18:45
+ */
+@Data
+@ApiModel("分页查询电动车商城-订单表请求参数")
+public class PageComBatteryCommodityOrderDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+    /**
+     * 商家id
+     */
+    @ApiModelProperty(value = "商家id")
+    private Long storeId;
+    /**
+     * 收货地址id
+     */
+    @ApiModelProperty(value = "收货地址id")
+    private Long addressId;
+    /**
+     * 活动id
+     */
+    @ApiModelProperty(value = "活动id")
+    private Long activityId;
+    /**
+     * 商品id
+     */
+    @ApiModelProperty(value = "商品id")
+    private Long commodityId;
+    /**
+     * 商品规格id
+     */
+    @ApiModelProperty(value = "商品规格id")
+    private Long specsId;
+    /**
+     * 订单号
+     */
+    @ApiModelProperty(value = "订单号")
+    private String orderNo;
+    /**
+     * 活动状态(1.拼团活动 2.砍价活动 3.限时秒杀)
+     */
+    @ApiModelProperty(value = "活动状态(1.拼团活动 2.砍价活动 3.限时秒杀)")
+    private Integer activityType;
+    /**
+     * 订单状态(1.待付款 2.待发货 3.待收货 4.已完成 5.待拼团 6.待砍价 7.已退款 8.已关闭)
+     */
+    @ApiModelProperty(value = "订单状态(1.待付款 2.待发货 3.待收货 4.已完成 5.待拼团 6.待砍价 7.已退款 8.已关闭)")
+    private Integer status;
+    /**
+     * 拼团状态(1.拼团中 2.拼团成功 3.拼团失败)
+     */
+    @ApiModelProperty(value = "拼团状态(1.拼团中 2.拼团成功 3.拼团失败)")
+    private Integer collageStatus;
+    /**
+     * 砍价状态(1.砍价中 2.砍价成功 3.砍价失败)
+     */
+    @ApiModelProperty(value = "砍价状态(1.砍价中 2.砍价成功 3.砍价失败)")
+    private Integer bargainStatus;
+    /**
+     * 支付状态(1.未支付 2.已支付)
+     */
+    @ApiModelProperty(value = "支付状态(1.未支付 2.已支付)")
+    private Integer payStatus;
+    /**
+     * 是否已删除(1.是  2.否)
+     */
+    @ApiModelProperty(value = "是否已删除(1.是  2.否)")
+    private Integer isDel;
+    /**
+     * 支付方式(1.微信支付)
+     */
+    @ApiModelProperty(value = "支付方式(1.微信支付)")
+    private Integer payType;
+    /**
+     * 购买商品数量
+     */
+    @ApiModelProperty(value = "购买商品数量")
+    private Integer count;
+    /**
+     * 商品单价
+     */
+    @ApiModelProperty(value = "商品单价")
+    private BigDecimal price;
+    /**
+     * 订单金额
+     */
+    @ApiModelProperty(value = "订单金额")
+    private BigDecimal amount;
+    /**
+     * 运费
+     */
+    @ApiModelProperty(value = "运费")
+    private BigDecimal freight;
+    /**
+     * 物流单号
+     */
+    @ApiModelProperty(value = "物流单号")
+    private String logisticsNo;
+    /**
+     * 物流公司
+     */
+    @ApiModelProperty(value = "物流公司")
+    private String logisticsCompany;
+    /**
+     * 订单最终金额
+     */
+    @ApiModelProperty(value = "订单最终金额")
+    private BigDecimal finalAmount;
+    /**
+     * 支付单号
+     */
+    @ApiModelProperty(value = "支付单号")
+    private String payNo;
+    /**
+     * 支付总金额
+     */
+    @ApiModelProperty(value = "支付总金额")
+    private BigDecimal payAmount;
+    /**
+     * 订单备注
+     */
+    @ApiModelProperty(value = "订单备注")
+    private String remark;
+    /**
+     * 发货时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "发货时间")
+    private Date deliveryTime;
+    /**
+     * 收货时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "收货时间")
+    private Date receivingTime;
+    /**
+     * 下单时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "下单时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+    /**
+     * 修改时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+    /**
+     * 修改人id
+     */
+    @ApiModelProperty(value = "修改人id")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "分页每页数量", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "分页当前记录数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+    @ApiModelProperty(value = "下单时间开始查询")
+    private String startTime;
+
+    @ApiModelProperty(value = "下单时间结束查询")
+    private String endTime;
+
+    @ApiModelProperty(value = "是否是小程序查询(1.是 2.否)",hidden = true)
+    private Integer isApplets;
+
+    @ApiModelProperty(value = "是否是后台查询(1.是 2.否)",hidden = true)
+    private Integer isAdmin;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryCommoditySpecsDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryCommoditySpecsDto.java
new file mode 100644
index 0000000..4502c9a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryCommoditySpecsDto.java
@@ -0,0 +1,103 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 分页查询电动车商城-商品规格表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 分页查询电动车商城-商品规格表请求参数
+ *
+ * @author lyq
+ * @date 2022-03-28 15:16:22
+ */
+@Data
+@ApiModel("分页查询电动车商城-商品规格表请求参数")
+public class PageComBatteryCommoditySpecsDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 商家id
+     */
+    @ApiModelProperty(value = "商家id")
+    private Long storeId;
+    /**
+     * 商品id
+     */
+    @ApiModelProperty(value = "商品id")
+    private Long commodityId;
+    /**
+     * 规格名称
+     */
+    @ApiModelProperty(value = "规格名称")
+    private String name;
+    /**
+     * 规格库存数量
+     */
+    @ApiModelProperty(value = "规格库存数量")
+    private Integer stock;
+    /**
+     * 规格价格
+     */
+    @ApiModelProperty(value = "规格价格")
+    private BigDecimal price;
+    /**
+     * 规格图片
+     */
+    @ApiModelProperty(value = "规格图片")
+    private String images;
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是 2.否)")
+    private Integer isDel;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+    /**
+     * 更新时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "更新时间")
+    private Date updateAt;
+    /**
+     * 更新人id
+     */
+    @ApiModelProperty(value = "更新人id")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "分页每页数量", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "分页当前记录数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+    @ApiModelProperty(value = "商品状态(1.上架 2.下架)")
+    private Integer status;
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryStoreClassDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryStoreClassDto.java
new file mode 100644
index 0000000..a3a21c0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryStoreClassDto.java
@@ -0,0 +1,85 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 分页查询电动车商城-商家分类表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 分页查询电动车商城-商家分类表请求参数
+ *
+ * @author lyq
+ * @date 2022-03-29 11:01:57
+ */
+@Data
+@ApiModel("分页查询电动车商城-商家分类表请求参数")
+public class PageComBatteryStoreClassDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 分类名称
+     */
+    @ApiModelProperty(value = "分类名称")
+    private String name;
+    /**
+     * 商家id
+     */
+    @ApiModelProperty(value = "商家id")
+    private Long storeId;
+    /**
+     * 状态(1.启用 2.禁用)
+     */
+    @ApiModelProperty(value = "状态(1.启用 2.禁用)")
+    private Integer status;
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是 2.否)")
+    private Integer isDel;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+    /**
+     * 更新时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "更新时间")
+    private Date updateAt;
+    /**
+     * 更新人id
+     */
+    @ApiModelProperty(value = "更新人id")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "分页每页数量", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "分页当前记录数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryStoreDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryStoreDto.java
new file mode 100644
index 0000000..4739b80
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryStoreDto.java
@@ -0,0 +1,125 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 分页查询电动车商城-商家表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 分页查询电动车商城-商家表请求参数
+ *
+ * @author lyq
+ * @date 2022-03-28 13:44:45
+ */
+@Data
+@ApiModel("分页查询电动车商城-商家表请求参数")
+public class PageComBatteryStoreDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 商家名称
+     */
+    @ApiModelProperty(value = "商家名称")
+    private String name;
+    /**
+     * 注册手机
+     */
+    @ApiModelProperty(value = "注册手机")
+    private String regPhone;
+    /**
+     * 联系电话
+     */
+    @ApiModelProperty(value = "联系电话")
+    private String phone;
+    /**
+     * 商家账号
+     */
+    @ApiModelProperty(value = "商家账号")
+    private String account;
+    /**
+     * 状态(1.启用 2.禁用)
+     */
+    @ApiModelProperty(value = "状态(1.启用 2.禁用)")
+    private Integer status;
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是 2.否)")
+    private Integer isDel;
+    /**
+     * 商家logo
+     */
+    @ApiModelProperty(value = "商家logo")
+    private String logo;
+    /**
+     * 商家简介
+     */
+    @ApiModelProperty(value = "商家简介")
+    private String introduction;
+    /**
+     * 商家地址
+     */
+    @ApiModelProperty(value = "商家地址")
+    private String address;
+    /**
+     * 详细地址
+     */
+    @ApiModelProperty(value = "详细地址")
+    private String detailAddress;
+    /**
+     * 经度
+     */
+    @ApiModelProperty(value = "经度")
+    private String longitude;
+    /**
+     * 纬度
+     */
+    @ApiModelProperty(value = "纬度")
+    private String latitude;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+    /**
+     * 更新时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "更新时间")
+    private Date updateAt;
+    /**
+     * 更新人id
+     */
+    @ApiModelProperty(value = "更新人id")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "分页每页数量", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "分页当前记录数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryTradeOrderDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryTradeOrderDto.java
new file mode 100644
index 0000000..cb5fefc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryTradeOrderDto.java
@@ -0,0 +1,128 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 分页查询电动车商城-微信交易流水表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 分页查询电动车商城-微信交易流水表请求参数
+ *
+ * @author lyq
+ * @date 2022-04-01 13:18:50
+ */
+@Data
+@ApiModel("分页查询电动车商城-微信交易流水表请求参数")
+public class PageComBatteryTradeOrderDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+    /**
+     * 用户openid
+     */
+    @ApiModelProperty(value = "用户openid")
+    private String openId;
+    /**
+     * 订单号
+     */
+    @ApiModelProperty(value = "订单号")
+    private String orderNo;
+    /**
+     * 订单状态(1.待支付 2.已支付 3.申请退款 4.已退款 5.已关闭)
+     */
+    @ApiModelProperty(value = "订单状态(1.待支付 2.已支付 3.申请退款 4.已退款 5.已关闭)")
+    private Integer status;
+    /**
+     * 支付类型(1.微信 )
+     */
+    @ApiModelProperty(value = "支付类型(1.微信 )")
+    private Integer payType;
+    /**
+     * 订单支付状态(1.待支付 2.已支付)
+     */
+    @ApiModelProperty(value = "订单支付状态(1.待支付 2.已支付)")
+    private Integer payStatus;
+    /**
+     * 订单金额
+     */
+    @ApiModelProperty(value = "订单金额")
+    private BigDecimal orderAmount;
+    /**
+     * 实际支付金额
+     */
+    @ApiModelProperty(value = "实际支付金额")
+    private BigDecimal payAmount;
+    /**
+     * 支付单号
+     */
+    @ApiModelProperty(value = "支付单号")
+    private String payNo;
+    /**
+     * 支付时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "支付时间")
+    private Date payTime;
+    /**
+     * 交易类型(1.电动车商城购买商品)
+     */
+    @ApiModelProperty(value = "交易类型(1.电动车商城购买商品)")
+    private Integer tradeType;
+    /**
+     * 交易业务订单id
+     */
+    @ApiModelProperty(value = "交易业务订单id")
+    private Long tradeOrderId;
+    /**
+     * 交易业务订单号
+     */
+    @ApiModelProperty(value = "交易业务订单号")
+    private String tradeOrderNo;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人
+     */
+    @ApiModelProperty(value = "创建人")
+    private Long createBy;
+    /**
+     * 修改时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+
+    @ApiModelProperty(value = "分页每页数量", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "分页当前记录数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryUserAddressDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryUserAddressDto.java
new file mode 100644
index 0000000..cfb9137
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComBatteryUserAddressDto.java
@@ -0,0 +1,118 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 分页查询电动车商城-用户收货地址表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 分页查询电动车商城-用户收货地址表请求参数
+ *
+ * @author lyq
+ * @date 2022-03-29 13:18:20
+ */
+@Data
+@ApiModel("分页查询电动车商城-用户收货地址表请求参数")
+public class PageComBatteryUserAddressDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+    /**
+     * 姓名
+     */
+    @ApiModelProperty(value = "姓名")
+    private String name;
+    /**
+     * 手机号
+     */
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+    /**
+     * 详细地址
+     */
+    @ApiModelProperty(value = "详细地址")
+    private String address;
+    /**
+     * 是否是默认地址(1.是  2.否)
+     */
+    @ApiModelProperty(value = "是否是默认地址(1.是  2.否)")
+    private Integer isDefault;
+    /**
+     * 省份行政区划代码
+     */
+    @ApiModelProperty(value = "省份行政区划代码")
+    private String provinceAdcode;
+    /**
+     * 省份名称
+     */
+    @ApiModelProperty(value = "省份名称")
+    private String provinceName;
+    /**
+     * 城市行政区划代码
+     */
+    @ApiModelProperty(value = "城市行政区划代码")
+    private String cityAdcode;
+    /**
+     * 城市名称
+     */
+    @ApiModelProperty(value = "城市名称")
+    private String cityName;
+    /**
+     * 区县行政区划代码
+     */
+    @ApiModelProperty(value = "区县行政区划代码")
+    private String districtAdcode;
+    /**
+     * 区县名称
+     */
+    @ApiModelProperty(value = "区县名称")
+    private String districtName;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+    /**
+     * 修改时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+    /**
+     * 修改人id
+     */
+    @ApiModelProperty(value = "修改人id")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "分页每页数量", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "分页当前记录数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComChangeCarBrandDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComChangeCarBrandDto.java
new file mode 100644
index 0000000..c20b900
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComChangeCarBrandDto.java
@@ -0,0 +1,92 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 分页查询换新车-品牌表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 分页查询换新车-品牌表请求参数
+ *
+ * @author lyq
+ * @date 2022-04-07 13:37:25
+ */
+@Data
+@ApiModel("分页查询换新车-品牌表请求参数")
+public class PageComChangeCarBrandDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 品牌编号
+     */
+    @ApiModelProperty(value = "品牌编号")
+    private String code;
+    /**
+     * 品牌名称
+     */
+    @ApiModelProperty(value = "品牌名称")
+    private String name;
+    /**
+     * 状态(1.启用 2.禁用)
+     */
+    @ApiModelProperty(value = "状态(1.启用 2.禁用)")
+    private Integer status;
+    /**
+     * 品牌logo
+     */
+    @ApiModelProperty(value = "品牌logo")
+    private String logo;
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是 2.否)")
+    private Integer isDel;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+    /**
+     * 修改时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+    /**
+     * 修改人id
+     */
+    @ApiModelProperty(value = "修改人id")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "分页每页数量", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "分页当前记录数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+    @ApiModelProperty(value = "是否是小程序请求(1.是  2.否)")
+    private Integer isApplets = 2;
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComChangeCarInquiryDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComChangeCarInquiryDto.java
new file mode 100644
index 0000000..bd5f0f8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComChangeCarInquiryDto.java
@@ -0,0 +1,78 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 分页查询换新车-分期询价表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 分页查询换新车-分期询价表请求参数
+ *
+ * @author lyq
+ * @date 2022-04-07 13:39:07
+ */
+@Data
+@ApiModel("分页查询换新车-分期询价表请求参数")
+public class PageComChangeCarInquiryDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+    /**
+     * 用户称呼
+     */
+    @ApiModelProperty(value = "用户称呼")
+    private String name;
+    /**
+     * 用户手机号
+     */
+    @ApiModelProperty(value = "用户手机号")
+    private String phone;
+    /**
+     * 类型(1.分期 2.询价)
+     */
+    @ApiModelProperty(value = "类型(1.分期 2.询价)")
+    private Integer type;
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是 2.否)")
+    private Integer isDel;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+
+    @ApiModelProperty(value = "分页每页数量", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "分页当前记录数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComChangeCarModelDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComChangeCarModelDto.java
new file mode 100644
index 0000000..d0cf63f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComChangeCarModelDto.java
@@ -0,0 +1,101 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 分页查询换新车-车型管理表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 分页查询换新车-车型管理表请求参数
+ *
+ * @author lyq
+ * @date 2022-04-07 13:41:56
+ */
+@Data
+@ApiModel("分页查询换新车-车型管理表请求参数")
+public class PageComChangeCarModelDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 车型名称
+     */
+    @ApiModelProperty(value = "车型名称")
+    private String name;
+    /**
+     * 图片url,多张以,隔开
+     */
+    @ApiModelProperty(value = "图片url,多张以,隔开")
+    private String images;
+    /**
+     * 最低价格
+     */
+    @ApiModelProperty(value = "最低价格")
+    private BigDecimal minPrice;
+    /**
+     * 品牌id
+     */
+    @ApiModelProperty(value = "品牌id")
+    private Long brandId;
+    /**
+     * 车辆详情
+     */
+    @ApiModelProperty(value = "车辆详情")
+    private String detail;
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是 2.否)")
+    private Integer isDel;
+    /**
+     * 状态(1.上架 2.下架)
+     */
+    @ApiModelProperty(value = "状态(1.上架 2.下架)")
+    private Integer status;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+    /**
+     * 修改时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+    /**
+     * 修改人id
+     */
+    @ApiModelProperty(value = "修改人id")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "分页每页数量", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "分页当前记录数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComChangeCarModelRelationDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComChangeCarModelRelationDto.java
new file mode 100644
index 0000000..a98855a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComChangeCarModelRelationDto.java
@@ -0,0 +1,64 @@
+package com.panzhihua.common.model.dtos.common;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * title: 分页查询换新车-车型与规格关联表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 分页查询换新车-车型与规格关联表请求参数
+ *
+ * @author lyq
+ * @date 2022-04-07 13:55:30
+ */
+@Data
+@ApiModel("分页查询换新车-车型与规格关联表请求参数")
+public class PageComChangeCarModelRelationDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 车型id
+     */
+    @ApiModelProperty(value = "车型id")
+    private Long modelId;
+    /**
+     * 车型规格id
+     */
+    @ApiModelProperty(value = "车型规格id")
+    private Long modelSpecsId;
+    /**
+     * 车型子规格id
+     */
+    @ApiModelProperty(value = "车型子规格id")
+    private Long modelSpecsChildrenId;
+
+    @ApiModelProperty(value = "分页每页数量", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "分页当前记录数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+    @ApiModelProperty(value = "价格排序(1.升序 2.降序)")
+    private Integer priceSort;
+
+    @ApiModelProperty(value = "品牌id筛选参数")
+    private List<Long> brandIds;
+
+    @ApiModelProperty(value = "子规格id筛选参数")
+    private List<Long> specsChildrenIds;
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComChangeCarModelSpecsChildrenDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComChangeCarModelSpecsChildrenDto.java
new file mode 100644
index 0000000..caf28da
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComChangeCarModelSpecsChildrenDto.java
@@ -0,0 +1,54 @@
+package com.panzhihua.common.model.dtos.common;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 分页查询换新车-车型子规格表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 分页查询换新车-车型子规格表请求参数
+ *
+ * @author lyq
+ * @date 2022-04-07 13:55:34
+ */
+@Data
+@ApiModel("分页查询换新车-车型子规格表请求参数")
+public class PageComChangeCarModelSpecsChildrenDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 主规格id
+     */
+    @ApiModelProperty(value = "主规格id")
+    private Long specsId;
+    /**
+     * 子规格名称
+     */
+    @ApiModelProperty(value = "子规格名称")
+    private String name;
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是 2.否)")
+    private Integer isDel;
+
+    @ApiModelProperty(value = "分页每页数量", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "分页当前记录数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComChangeCarModelSpecsDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComChangeCarModelSpecsDto.java
new file mode 100644
index 0000000..2b241e4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComChangeCarModelSpecsDto.java
@@ -0,0 +1,80 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 分页查询换新车-车型规格表请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 分页查询换新车-车型规格表请求参数
+ *
+ * @author lyq
+ * @date 2022-04-07 13:55:32
+ */
+@Data
+@ApiModel("分页查询换新车-车型规格表请求参数")
+public class PageComChangeCarModelSpecsDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 规格编号
+     */
+    @ApiModelProperty(value = "规格编号")
+    private String code;
+    /**
+     * 规格名称
+     */
+    @ApiModelProperty(value = "规格名称")
+    private String name;
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是 2.否)")
+    private Integer isDel;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+    /**
+     * 修改时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+    /**
+     * 修改人id
+     */
+    @ApiModelProperty(value = "修改人id")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "分页每页数量", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "分页当前记录数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComMngVolunteerOrgTeamDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComMngVolunteerOrgTeamDto.java
new file mode 100644
index 0000000..3b4220f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComMngVolunteerOrgTeamDto.java
@@ -0,0 +1,71 @@
+package com.panzhihua.common.model.dtos.common;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * 分页查询志愿者组织队伍表请求参数
+ *
+ * @author lyq
+ * @since 2021-10-30 16:04:48
+ */
+@Data
+@ApiModel("分页查询志愿者组织队伍表请求参数")
+public class PageComMngVolunteerOrgTeamDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+    /**
+     * 名称
+     */
+    @ApiModelProperty(value = "名称")
+    private String name;
+    /**
+     * 父级id,为0时则为组织,不为0则为队伍
+     */
+    @ApiModelProperty(value = "父级id,为0时则为组织,不为0则为队伍")
+    private Long parentId;
+    /**
+     * 服务类型
+     */
+    @ApiModelProperty(value = "服务类型")
+    private Long serviceTypeId;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 修改时间
+     */
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+
+    @ApiModelProperty(value = "分页每页数量", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "分页当前记录数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComMngVolunteerServiceTypeDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComMngVolunteerServiceTypeDto.java
new file mode 100644
index 0000000..7c04955
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComMngVolunteerServiceTypeDto.java
@@ -0,0 +1,76 @@
+package com.panzhihua.common.model.dtos.common;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * 分页查询志愿者服务类型表请求参数
+ *
+ * @author lyq
+ * @since 2021-10-30 16:47:10
+ */
+@Data
+@ApiModel("分页查询志愿者服务类型表请求参数")
+public class PageComMngVolunteerServiceTypeDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+    /**
+     * 名称
+     */
+    @ApiModelProperty(value = "名称")
+    private String name;
+    /**
+     * 备注
+     */
+    @ApiModelProperty(value = "备注")
+    private String remark;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+    /**
+     * 修改时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+    /**
+     * 修改人id
+     */
+    @ApiModelProperty(value = "修改人id")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "分页每页数量", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "分页当前记录数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComMngVolunteerSkillDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComMngVolunteerSkillDto.java
new file mode 100644
index 0000000..4380a75
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComMngVolunteerSkillDto.java
@@ -0,0 +1,76 @@
+package com.panzhihua.common.model.dtos.common;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * 分页查询志愿者技能表请求参数
+ *
+ * @author lyq
+ * @since 2021-10-30 16:47:37
+ */
+@Data
+@ApiModel("分页查询志愿者技能表请求参数")
+public class PageComMngVolunteerSkillDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+    /**
+     * 名称
+     */
+    @ApiModelProperty(value = "名称")
+    private String name;
+    /**
+     * 备注
+     */
+    @ApiModelProperty(value = "备注")
+    private String remark;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+    /**
+     * 修改时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+    /**
+     * 修改人id
+     */
+    @ApiModelProperty(value = "修改人id")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "分页每页数量", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "分页当前记录数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComPbCheckUnitDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComPbCheckUnitDto.java
new file mode 100644
index 0000000..596cb95
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageComPbCheckUnitDto.java
@@ -0,0 +1,108 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 分页查询党建-报到单位请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 分页查询党建-报到单位请求参数
+ *
+ * @author lyq
+ * @date 2022-02-16 16:22:26
+ */
+@Data
+@ApiModel("分页查询党建-报到单位请求参数")
+public class PageComPbCheckUnitDto {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 单位名称
+     */
+    @ApiModelProperty(value = "单位名称")
+    private String name;
+    /**
+     * 单位类别(1.国有企业 2.国有控股企业 3.外资企业 4.合资企业 5.私营企业 6.事业单位 7.国家行政机关 8.政府)
+     */
+    @ApiModelProperty(value = "单位类别(1.国有企业 2.国有控股企业 3.外资企业 4.合资企业 5.私营企业 6.事业单位 7.国家行政机关 8.政府)")
+    private Integer type;
+    /**
+     * 负责人
+     */
+    @ApiModelProperty(value = "负责人")
+    private String contacts;
+    /**
+     * 负责人联系电话
+     */
+    @ApiModelProperty(value = "负责人联系电话")
+    private String phone;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+    /**
+     * 修改时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+    /**
+     * 修改人id
+     */
+    @ApiModelProperty(value = "修改人id")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    @ApiModelProperty(value = "所属党组织")
+    private String orgName;
+
+    @ApiModelProperty(value = "分页每页数量", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "分页当前记录数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+    @ApiModelProperty(value = "技能特长")
+    private String specialtyName;
+
+    @ApiModelProperty("区级")
+    private String belongTo;
+
+    @ApiModelProperty("单位性质")
+    private String natureName;
+
+    @ApiModelProperty(value = "社区id集合")
+    private List<Long> communityIds;
+
+    @ApiModelProperty(value = "农行单位id集合")
+    private Long[] ids;
+
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PagePbCheckUnitCommonDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PagePbCheckUnitCommonDto.java
new file mode 100644
index 0000000..2f44a56
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PagePbCheckUnitCommonDto.java
@@ -0,0 +1,46 @@
+package com.panzhihua.common.model.dtos.common;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @title: PagePbCheckUnitCommonDto
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 报到单位/报到党员统计公共请求参数
+ * @author: hans
+ * @date: 2022/07/25 15:41
+ */
+@Data
+@ApiModel("报到单位/报到党员统计公共请求参数")
+public class PagePbCheckUnitCommonDto {
+
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    @ApiModelProperty(value = "分页每页数量", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "分页当前记录数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty("单位归属")
+    private String belongTo;
+
+    @ApiModelProperty("单位性质")
+    private String natureName;
+
+
+    @ApiModelProperty(value = "社区id集合")
+    private List<Long> communityIds;
+
+    @ApiModelProperty(value = "报道单位id集合")
+    private Long[] unitIds;
+
+    @ApiModelProperty("年份 例子 2024")
+    private String yearTime;
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageSysUserDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageSysUserDto.java
new file mode 100644
index 0000000..4b755d5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/PageSysUserDto.java
@@ -0,0 +1,227 @@
+package com.panzhihua.common.model.dtos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 分页查询用户表 后台用户+小程序用户请求参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 分页查询用户表 后台用户+小程序用户请求参数
+ *
+ * @author lyq
+ * @date 2022-03-28 14:28:10
+ */
+@Data
+@ApiModel("分页查询用户表 后台用户+小程序用户请求参数")
+public class PageSysUserDto {
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    private Long userId;
+    /**
+     * 登录账户
+     */
+    @ApiModelProperty(value = "登录账户")
+    private String account;
+    /**
+     * 登录密码
+     */
+    @ApiModelProperty(value = "登录密码")
+    private String password;
+    /**
+     * 微信小程序唯一标识
+     */
+    @ApiModelProperty(value = "微信小程序唯一标识")
+    private String openid;
+    /**
+     * 会话密钥
+     */
+    @ApiModelProperty(value = "会话密钥")
+    private String sessionKey;
+    /**
+     * 用户在开放平台的唯一标识符
+     */
+    @ApiModelProperty(value = "用户在开放平台的唯一标识符")
+    private String unionid;
+    /**
+     * 手机号
+     */
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+    /**
+     * 昵称
+     */
+    @ApiModelProperty(value = "昵称")
+    private String nickName;
+    /**
+     * 真实名字
+     */
+    @ApiModelProperty(value = "真实名字")
+    private String name;
+    /**
+     * 社区ID
+     */
+    @ApiModelProperty(value = "社区ID")
+    private Long communityId;
+    /**
+     * 性别 1 男 2 女
+     */
+    @ApiModelProperty(value = "性别 1 男 2 女")
+    private Integer sex;
+    /**
+     * 身份证号
+     */
+    @ApiModelProperty(value = "身份证号")
+    private String idCard;
+    /**
+     * 生日
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "生日")
+    private Date birthday;
+    /**
+     * 头像
+     */
+    @ApiModelProperty(value = "头像")
+    private String imageUrl;
+    /**
+     * 用户类型 1 小程序 2 运营平台 3 社区平台 5 商家后台 6 网格综治APP 7 网格综治后台 8大屏 9城管后台 10一键报警app
+     */
+    @ApiModelProperty(value = "用户类型 1 小程序 2 运营平台 3 社区平台 5 商家后台 6 网格综治APP 7 网格综治后台 8大屏 9城管后台 10一键报警app")
+    private Integer type;
+    /**
+     * 职业
+     */
+    @ApiModelProperty(value = "职业")
+    private String job;
+    /**
+     * 是否志愿者 0 否 1 是
+     */
+    @ApiModelProperty(value = "是否志愿者 0 否 1 是")
+    private Integer isVolunteer;
+    /**
+     * 是否党员 0 否 1 是
+     */
+    @ApiModelProperty(value = "是否党员 0 否 1 是")
+    private Integer isPartymember;
+    /**
+     * 1 启用 2 禁用
+     */
+    @ApiModelProperty(value = "1 启用 2 禁用")
+    private Integer status;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 最后登录时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "最后登录时间")
+    private Date lastLoginTime;
+    /**
+     * 标签多个用,隔开
+     */
+    @ApiModelProperty(value = "标签多个用,隔开")
+    private String tags;
+    /**
+     * 家庭id
+     */
+    @ApiModelProperty(value = "家庭id")
+    private Long familyId;
+    /**
+     * 人脸采集照片url
+     */
+    @ApiModelProperty(value = "人脸采集照片url")
+    private String faceUrl;
+    /**
+     * 人脸采集审核状态 0 待审核 1 审核通过 2驳回
+     */
+    @ApiModelProperty(value = "人脸采集审核状态 0 待审核 1 审核通过 2驳回")
+    private Integer faceState;
+    /**
+     * 驳回原因
+     */
+    @ApiModelProperty(value = "驳回原因")
+    private String rejectReson;
+    /**
+     * 小区id
+     */
+    @ApiModelProperty(value = "小区id")
+    private Long areaId;
+    /**
+     * 证件照(人相面)照片
+     */
+    @ApiModelProperty(value = "证件照(人相面)照片")
+    private String cardPhotoFront;
+    /**
+     * 证件照(国徽面)照片
+     */
+    @ApiModelProperty(value = "证件照(国徽面)照片")
+    private String cardPhotoBack;
+    /**
+     * 户口本
+     */
+    @ApiModelProperty(value = "户口本")
+    private String familyBook;
+    /**
+     * 连续登陆天数 每天凌晨定时任务更新
+     */
+    @ApiModelProperty(value = "连续登陆天数 每天凌晨定时任务更新")
+    private Integer continuousLandingDays;
+    /**
+     * 小程序首页是否显示公告(1.是 2.否)
+     */
+    @ApiModelProperty(value = "小程序首页是否显示公告(1.是 2.否)")
+    private Integer isTips;
+    /**
+     * 网格员工作状态(1.在岗 2.脱岗 3.已下班)
+     */
+    @ApiModelProperty(value = "网格员工作状态(1.在岗 2.脱岗 3.已下班)")
+    private Integer workStatus;
+    /**
+     * 网格员上班开始时间
+     */
+    @ApiModelProperty(value = "网格员上班开始时间")
+    private Integer workStartTime;
+    /**
+     * 网格员上班结束时间
+     */
+    @ApiModelProperty(value = "网格员上班结束时间")
+    private Integer workEndTime;
+    /**
+     * 高龄认证显示提示(1.是 2.否)
+     */
+    @ApiModelProperty(value = "高龄认证显示提示(1.是 2.否)")
+    private Integer bigAgeTips;
+    /**
+     * 明文密码
+     */
+    @ApiModelProperty(value = "明文密码")
+    private String plaintextPassword;
+
+    @ApiModelProperty(value = "分页每页数量", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "分页当前记录数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/StartBargainOrderDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/StartBargainOrderDto.java
new file mode 100644
index 0000000..1ea7f5c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/StartBargainOrderDto.java
@@ -0,0 +1,35 @@
+package com.panzhihua.common.model.dtos.common;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * 发起砍价订单请求参数
+ */
+@Data
+@ApiModel("发起砍价订单请求参数")
+public class StartBargainOrderDto {
+
+    @ApiModelProperty(value = "用户id",hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "用户openId",hidden = true)
+    private String openId;
+
+    @ApiModelProperty(value = "商品id")
+    private Long commodityId;
+
+    @ApiModelProperty(value = "活动id")
+    private Long activityId;
+
+    @ApiModelProperty(value = "用户收货地址id")
+    private Long addressId;
+
+    @ApiModelProperty(value = "购买商品数量")
+    private Integer count;
+
+    @ApiModelProperty(value = "订单备注")
+    private String remark;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/StartFightOrderDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/StartFightOrderDto.java
new file mode 100644
index 0000000..fef5a64
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/StartFightOrderDto.java
@@ -0,0 +1,49 @@
+package com.panzhihua.common.model.dtos.common;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * 发起拼团订单请求参数
+ */
+@Data
+@ApiModel("发起拼团订单请求参数")
+public class StartFightOrderDto {
+
+    @ApiModelProperty(value = "用户id",hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "用户openId",hidden = true)
+    private String openId;
+
+    @ApiModelProperty(value = "商品id")
+    private Long commodityId;
+
+    @ApiModelProperty(value = "活动id")
+    private Long activityId;
+
+    @ApiModelProperty(value = "用户收货地址id")
+    private Long addressId;
+
+    @ApiModelProperty(value = "购买商品数量")
+    private Integer count;
+
+    @ApiModelProperty(value = "订单备注")
+    private String remark;
+
+    @ApiModelProperty(value = "拼团类型(1.开团 2.参团)")
+    private Integer type;
+
+    @ApiModelProperty(value = "拼团团队id")
+    private Long teamId;
+
+    /**
+     * 拼团类型(1.开团 2.参团)
+     */
+    public interface Type{
+        int KT = 1;
+        int PT = 2;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/StartSeckillOrderDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/StartSeckillOrderDto.java
new file mode 100644
index 0000000..4469ae9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/StartSeckillOrderDto.java
@@ -0,0 +1,35 @@
+package com.panzhihua.common.model.dtos.common;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * 发起秒杀订单请求参数
+ */
+@Data
+@ApiModel("发起秒杀订单请求参数")
+public class StartSeckillOrderDto {
+
+    @ApiModelProperty(value = "用户id",hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "用户openId",hidden = true)
+    private String openId;
+
+    @ApiModelProperty(value = "商品id")
+    private Long commodityId;
+
+    @ApiModelProperty(value = "活动id")
+    private Long activityId;
+
+    @ApiModelProperty(value = "用户收货地址id")
+    private Long addressId;
+
+    @ApiModelProperty(value = "购买商品数量")
+    private Integer count;
+
+    @ApiModelProperty(value = "订单备注")
+    private String remark;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/StartUserBargainOrderDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/StartUserBargainOrderDto.java
new file mode 100644
index 0000000..94d9156
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/StartUserBargainOrderDto.java
@@ -0,0 +1,20 @@
+package com.panzhihua.common.model.dtos.common;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * 帮好友砍价请求参数
+ */
+@Data
+@ApiModel("帮好友砍价请求参数")
+public class StartUserBargainOrderDto {
+
+    @ApiModelProperty(value = "用户id",hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "原用户砍价记录id")
+    private Long bargainId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/UserCreateOrderDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/UserCreateOrderDto.java
new file mode 100644
index 0000000..1c25375
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/common/UserCreateOrderDto.java
@@ -0,0 +1,35 @@
+package com.panzhihua.common.model.dtos.common;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * 订单创建请求参数
+ */
+@Data
+@ApiModel("订单创建请求参数")
+public class UserCreateOrderDto {
+
+    @ApiModelProperty(value = "用户id",hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "用户openId",hidden = true)
+    private String openId;
+
+    @ApiModelProperty(value = "商品id")
+    private Long commodityId;
+
+    @ApiModelProperty(value = "商品规格id")
+    private Long specsId;
+
+    @ApiModelProperty(value = "用户收货地址id")
+    private Long addressId;
+
+    @ApiModelProperty(value = "购买商品数量")
+    private Integer count;
+
+    @ApiModelProperty(value = "订单备注")
+    private String remark;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ActivityInviteDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ActivityInviteDTO.java
new file mode 100644
index 0000000..b237559
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ActivityInviteDTO.java
@@ -0,0 +1,39 @@
+package com.panzhihua.common.model.dtos.community;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: ActivityInviteDTO
+ * @projectName:
+ * @description: 活动邀请请求参数
+ * @author: hans
+ * @date: 2022/08/02 9:55
+ */
+@Data
+@ApiModel("活动邀请请求参数")
+public class ActivityInviteDTO {
+
+    @ApiModelProperty("受邀活动id")
+    @NotNull(message = "受邀活动id不能为空")
+    private Long activityId;
+
+    @ApiModelProperty("受邀用户id")
+    @NotNull(message = "受邀用户id不能为空")
+    private Long userId;
+
+    @ApiModelProperty("受邀用户姓名")
+    @NotBlank(message = "受邀用户姓名不能为空")
+    private String name;
+
+    @ApiModelProperty("受邀用户电话")
+    @NotBlank(message = "受邀用户电话不能为空")
+    private String phone;
+
+    @ApiModelProperty(value = "邀请人", hidden = true)
+    private Long createdBy;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/AddComActDynTypeDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/AddComActDynTypeDTO.java
new file mode 100644
index 0000000..1054d30
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/AddComActDynTypeDTO.java
@@ -0,0 +1,37 @@
+package com.panzhihua.common.model.dtos.community;
+
+import javax.validation.constraints.NotBlank;
+
+import org.hibernate.validator.constraints.Length;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("新增社区动态分类请求参数")
+public class AddComActDynTypeDTO {
+
+    @ApiModelProperty("分类名称")
+    @NotBlank(message = "分类名称不能为空")
+    @Length(min = 1, max = 20, message = "分类名称不可超过20个字")
+    private String name;
+
+    @ApiModelProperty("分类字体颜色")
+    @NotBlank(message = "分类字体颜色不能为空")
+    private String color;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "操作人员id", hidden = true)
+    private Long userId;
+
+    @ApiModelProperty("类型(1.社区动态 2.党务公开 3.花城资讯)")
+    private Integer category;
+
+
+    @ApiModelProperty("1 花城西区都有   2 花城独有   3 西区独有")
+    private String area;
+
+}
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..b4d1fe7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/AddIdentityAuthDTO.java
@@ -0,0 +1,77 @@
+package com.panzhihua.common.model.dtos.community;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+
+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;
+
+import java.util.Date;
+
+/**
+ * @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;
+
+    @ApiModelProperty("认证时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date authTime;
+
+    @ApiModelProperty("认证期数")
+    private String authPeriod;
+
+    private String areaCode;
+}
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
new file mode 100644
index 0000000..24853dd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/CancelRecordDTO.java
@@ -0,0 +1,28 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("取消预约/登记参数")
+public class CancelRecordDTO {
+    @ApiModelProperty("记录id")
+    private Long id;
+    /**
+     * 内容
+     */
+    @ApiModelProperty("内容")
+    private String content;
+
+    /**
+     * 备注
+     */
+    @ApiModelProperty("备注")
+    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/CascadeHouseDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/CascadeHouseDTO.java
new file mode 100644
index 0000000..d25572b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/CascadeHouseDTO.java
@@ -0,0 +1,27 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 房屋级联选择请求参数
+ */
+@Data
+@ApiModel("房屋级联选择请求参数")
+public class CascadeHouseDTO implements Serializable {
+
+    @ApiModelProperty(value = "级别(1.街路巷 2.门牌号 3.楼排号 4.单元号 5.户室)")
+    private Integer level = 1;
+
+    @ApiModelProperty(value = "房屋id")
+    private String houseId;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "小区id")
+    private Long villageId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActDiscussCommentDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActDiscussCommentDTO.java
new file mode 100644
index 0000000..111d0d5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActDiscussCommentDTO.java
@@ -0,0 +1,41 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.util.Date;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 一起议评论
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-23 09:47
+ **/
+@Data
+@ApiModel("一起议评论")
+public class ComActDiscussCommentDTO {
+    @ApiModelProperty("主键")
+    private Long id;
+
+    @ApiModelProperty("一起议主键")
+    private Long discussId;
+
+    @ApiModelProperty("评论内容")
+    private String comment;
+
+    @ApiModelProperty("是否置顶 0 否 1 是")
+    private Integer isTopping;
+
+    @ApiModelProperty("评论时间")
+    private Date createAt;
+
+    @ApiModelProperty("是否作者本人回复 0 否 1 是")
+    private Integer isAuthor;
+
+    @ApiModelProperty("上级评论id 默认0表示一级评论")
+    private Long parentId;
+
+    @ApiModelProperty("用户主键")
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActDiscussCommentUserDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActDiscussCommentUserDTO.java
new file mode 100644
index 0000000..5c1536b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActDiscussCommentUserDTO.java
@@ -0,0 +1,29 @@
+package com.panzhihua.common.model.dtos.community;
+
+import javax.validation.constraints.Min;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 一起议评论点赞
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-24 12:58
+ **/
+@Data
+@ApiModel("一起议评论点赞")
+public class ComActDiscussCommentUserDTO {
+
+    @ApiModelProperty("评论主键")
+    @Min(value = 1, message = "评论主键不能为空")
+    private Long id;
+
+    @ApiModelProperty(value = "用户主键", hidden = true)
+    private Long userId;
+
+    @ApiModelProperty("操作类型 1 点赞 2 取消点赞")
+    @Min(value = 1, message = "操作类型不能为空")
+    private Integer type;
+}
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
new file mode 100644
index 0000000..ee04562
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActDiscussDTO.java
@@ -0,0 +1,108 @@
+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: 议事投票新增编辑
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-22 15:34
+ **/
+@Data
+@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 投票")
+    @Min(value = 1, groups = {AddGroup.class}, message = "类型不能为空")
+    private Integer type;
+
+    @ApiModelProperty("图片地址 多个用逗号隔开")
+    private String photoPah;
+
+    @ApiModelProperty("地址")
+    private String address;
+
+    @ApiModelProperty(value = "发布人主键", hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "社区主键", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty("create_at")
+    private Date createAt;
+
+    @ApiModelProperty("1 单选 2 多选")
+    private Integer discussOption;
+
+    @ApiModelProperty("投票标题")
+    private String voteTitle;
+
+    @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;
+
+    @ApiModelProperty("议事内容类型(1.社区议事 2.院落议事 3.党群议事)")
+    private Integer contentType;
+
+    @ApiModelProperty("投票范围(1.全部居民 2.志愿者 3.党员)")
+    private Integer voteScope;
+
+    @ApiModelProperty("是否需要签名")
+    private Boolean needSign;
+
+    /**
+     * 类型 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/ComActDiscussOptionDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActDiscussOptionDTO.java
new file mode 100644
index 0000000..e3194ea
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActDiscussOptionDTO.java
@@ -0,0 +1,26 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 一起议投票选项参数
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-22 15:34
+ **/
+@Data
+@ApiModel("一起议投票选项参数")
+public class ComActDiscussOptionDTO {
+
+    @ApiModelProperty("选项图片url")
+    private String optionUrl;
+
+    @ApiModelProperty("选项内容")
+    private String optionContent;
+
+    @ApiModelProperty("是否需要填写原因")
+    private Boolean needReason;
+
+}
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
new file mode 100644
index 0000000..f55a4b1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActDiscussOptionUserDTO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 选项投票
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-24 08:56
+ **/
+@Data
+@ApiModel("选项投票")
+public class ComActDiscussOptionUserDTO {
+
+    @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/ComActDiscussUserDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActDiscussUserDTO.java
new file mode 100644
index 0000000..49baedf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActDiscussUserDTO.java
@@ -0,0 +1,39 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.util.Date;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 一起议点赞
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-23 16:30
+ **/
+@Data
+@ApiModel("一起议点赞")
+public class ComActDiscussUserDTO {
+
+    @ApiModelProperty("主键")
+    private Long id;
+
+    @ApiModelProperty("一起议主键")
+    @NotNull(message = "一起议主键不能为空")
+    @Min(value = 1, message = "一起议主键不能为空")
+    private Long discussId;
+
+    @ApiModelProperty("用户主键")
+    private Long userId;
+
+    @ApiModelProperty("点赞时间")
+    private Date createAt;
+
+    @ApiModelProperty("操作类型 1 点赞 2 取消点赞")
+    @Min(value = 1, message = "操作类型不能为空")
+    private Integer type;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActDiscussVoteOptionDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActDiscussVoteOptionDTO.java
new file mode 100644
index 0000000..7eb308d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActDiscussVoteOptionDTO.java
@@ -0,0 +1,27 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: ComActDiscussVoteOptionDTO
+ * @projectName:
+ * @description: 一起议投票内容参数
+ * @author: hans
+ * @date: 2022/08/17 14:49
+ */
+@Data
+@ApiModel("一起议投票内容参数")
+public class ComActDiscussVoteOptionDTO {
+
+    @ApiModelProperty("选项id")
+    private Long id;
+
+    @ApiModelProperty("投票原因")
+    private String reason;
+
+    @ApiModelProperty("签名")
+    private String signUrl;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActEasyPhotoCommentDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActEasyPhotoCommentDTO.java
new file mode 100644
index 0000000..7f01300
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActEasyPhotoCommentDTO.java
@@ -0,0 +1,26 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 随手拍评论新增
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-21 15:38
+ **/
+@Data
+@ApiModel("随手拍评论新增")
+public class ComActEasyPhotoCommentDTO {
+
+    @ApiModelProperty("随手拍主键id")
+    private Long id;
+
+    @ApiModelProperty("评论内容")
+    private String comment;
+
+    @ApiModelProperty(value = "评论者id", hidden = true)
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActEasyPhotoCommentUserDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActEasyPhotoCommentUserDTO.java
new file mode 100644
index 0000000..1fab97a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActEasyPhotoCommentUserDTO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 评论点赞 、取消点赞
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-21 15:06
+ **/
+@Data
+@ApiModel("评论点赞 、取消点赞")
+public class ComActEasyPhotoCommentUserDTO {
+
+    @ApiModelProperty(value = "评论主键", example = "1")
+    private Long id;
+
+    @ApiModelProperty(value = "操作类型 1 点赞 2 取消点赞", example = "2")
+    private Integer type;
+
+    @ApiModelProperty(value = "操作用户", hidden = true)
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActProceedingsDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActProceedingsDTO.java
new file mode 100644
index 0000000..6ce33d4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActProceedingsDTO.java
@@ -0,0 +1,76 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+@Data
+public class ComActProceedingsDTO implements Serializable {
+    /**
+     * 主键id
+     */
+    @ApiModelProperty("id")
+    private Long id;
+
+    /**
+     * 姓名
+     */
+    @ApiModelProperty("姓名")
+    private String name;
+
+    /**
+     * 所属单位名
+     */
+    @ApiModelProperty("所属单位名")
+    private String unitName;
+
+    /**
+     * 所属单位id
+     */
+    @ApiModelProperty("所属单位id")
+    private Long unitId;
+
+    /**
+     * 简介
+     */
+    @ApiModelProperty("简介")
+    private String introduce;
+
+    /**
+     * 是否删除0否1是
+     */
+    @ApiModelProperty("是否删除")
+    private Boolean delFlag;
+
+    /**
+     * 状态0可用1禁用
+     */
+    @ApiModelProperty("是否可用")
+    private Boolean status;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 创建人
+     */
+    private String createBy;
+
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+
+    /**
+     * 修改人
+     */
+    private Date updateBy;
+
+    private String workTime;
+    private String logo;
+
+    private static final long serialVersionUID = 1L;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActQuestnaireAnswerContentDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActQuestnaireAnswerContentDTO.java
new file mode 100644
index 0000000..4b579d0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActQuestnaireAnswerContentDTO.java
@@ -0,0 +1,8 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+@Data
+@ApiModel("问卷回答记录内容")
+public class ComActQuestnaireAnswerContentDTO {}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActQuestnaireDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActQuestnaireDTO.java
new file mode 100644
index 0000000..877e8ac
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActQuestnaireDTO.java
@@ -0,0 +1,8 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+@Data
+@ApiModel("调查问卷 问卷表")
+public class ComActQuestnaireDTO {}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActQuestnaireSubDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActQuestnaireSubDTO.java
new file mode 100644
index 0000000..38b0d3b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActQuestnaireSubDTO.java
@@ -0,0 +1,8 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+@Data
+@ApiModel("问卷题目")
+public class ComActQuestnaireSubDTO {}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActQuestnaireSubSelectionDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActQuestnaireSubSelectionDTO.java
new file mode 100644
index 0000000..e889533
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActQuestnaireSubSelectionDTO.java
@@ -0,0 +1,10 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+@Data
+@ApiModel("问卷题目选项")
+public class ComActQuestnaireSubSelectionDTO {
+
+}
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
new file mode 100644
index 0000000..e08f2bd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComActWorkGuideDTO.java
@@ -0,0 +1,67 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.util.List;
+
+import javax.validation.constraints.NotBlank;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.google.common.collect.Lists;
+import com.panzhihua.common.model.vos.community.ComActWorkGuideMaterialVO;
+import com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther llming
+ * @describe 办事指南
+ */
+@Data
+@ApiModel("办事指南新增")
+public class ComActWorkGuideDTO {
+    @ApiModelProperty("办事指南id")
+    private Long id;
+
+    @ApiModelProperty("办事指南标题")
+    @NotBlank(groups = {AddGroup.class}, message = "标题不能为空")
+    @Length(groups = {AddGroup.class}, max = 35)
+    private String title;
+
+    @ApiModelProperty("办事指南内容")
+    @NotBlank(groups = {AddGroup.class}, message = "内容不能为空")
+    @Length(groups = {AddGroup.class}, max = 5000)
+    private String content;
+
+    @ApiModelProperty("所属分类")
+    private String 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 String areaCode;
+
+    @ApiModelProperty(value = "是否在线 (0 不在线   1在线)")
+    private String isOnLine;
+
+    @ApiModelProperty(value = "组件json数据")
+    private String jsonObject;
+
+    private List<ComActWorkGuideMaterialVO> materials = Lists.newArrayList();
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComCvtBusinessDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComCvtBusinessDTO.java
new file mode 100644
index 0000000..32ba0a8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComCvtBusinessDTO.java
@@ -0,0 +1,77 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @description: 便民服务 商家信息新增/编辑
+ * @author: Null
+ * @date: 2021/3/11 10:36
+ */
+@Data
+@ApiModel("商家信息新增/编辑")
+public class ComCvtBusinessDTO implements Serializable {
+
+    @ApiModelProperty("商家ID")
+    private Long id;
+
+    @ApiModelProperty("商家名称")
+    @NotBlank(groups = {AddGroup.class}, message = "商家名称不能为空")
+    @Length(groups = {AddGroup.class}, max = 35, message = "商家名称不能为空大于35个字")
+    private String name;
+
+    @ApiModelProperty("联系人")
+    @NotBlank(groups = {AddGroup.class}, message = "联系人不能为空")
+    private String contacts;
+
+    @ApiModelProperty("联系方式")
+    @NotBlank(groups = {AddGroup.class}, message = "联系方式不能为空")
+    private String contactsPhone;
+
+    @ApiModelProperty("详细地址")
+    @NotBlank(groups = {AddGroup.class}, message = "详细地址不能为空")
+    private String address;
+
+    @ApiModelProperty("主营业务")
+    @NotBlank(groups = {AddGroup.class}, message = "主营业务不能为空")
+    @Length(groups = {AddGroup.class}, max = 500)
+    private String busScope;
+
+    @ApiModelProperty("服务范围标记:1-全攀枝花市,2-部分地区")
+    @NotNull(groups = {AddGroup.class}, message = "服务范围标记不能为空")
+    private Integer areaFlag;
+
+    @ApiModelProperty("商家logo")
+    @NotBlank(groups = {AddGroup.class}, message = "商家logo不能为空")
+    private String logo;
+
+    @ApiModelProperty("创建人")
+    private Long createBy;
+
+    @ApiModelProperty("创建时间")
+    private Date createAt;
+
+    @ApiModelProperty(value = "社区主键", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty("服务范围集合")
+    private List<Long> communityIds;
+
+    @ApiModelProperty("商家介绍媒体文件类型:1-图片 2-视频")
+    private Integer mediaType;
+
+    @ApiModelProperty("介绍媒体文件集合")
+    private List<String> mediaPaths;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComCvtCategoryDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComCvtCategoryDTO.java
new file mode 100644
index 0000000..4557384
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComCvtCategoryDTO.java
@@ -0,0 +1,40 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.io.Serializable;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @description: 便民服务 分类信息
+ * @author: Null
+ * @date: 2021/3/11 17:11
+ */
+@Data
+@ApiModel("分类信息")
+public class ComCvtCategoryDTO implements Serializable {
+
+    @ApiModelProperty("分类ID")
+    private Long id;
+
+    @ApiModelProperty("分类名称")
+    @NotBlank(groups = {AddGroup.class}, message = "分类名称不能为空")
+    private String name;
+
+    @ApiModelProperty("备注")
+    private String remark;
+
+    @ApiModelProperty("权重")
+    @NotNull(message = "权重不能为空")
+    private Integer weight;
+
+    @ApiModelProperty(value = "创建人", hidden = true)
+    private String createBy;
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComCvtServeDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComCvtServeDTO.java
new file mode 100644
index 0000000..435c347
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComCvtServeDTO.java
@@ -0,0 +1,56 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+import javax.validation.constraints.NotBlank;
+
+import com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @description: 便民服务新增/编辑参数
+ * @author: Null
+ * @date: 2021/3/11 10:52
+ */
+@Data
+@ApiModel("便民服务新增/编辑参数")
+public class ComCvtServeDTO implements Serializable {
+
+    private static final long serialVersionUID = -7734682979200558948L;
+    @ApiModelProperty("服务主键ID")
+    private Long id;
+
+    @ApiModelProperty("服务名称")
+    @NotBlank(groups = {AddGroup.class}, message = "服务名称不能为空")
+    private String serviceName;
+
+    @ApiModelProperty("服务价格")
+    @NotBlank(groups = {AddGroup.class}, message = "服务价格不能为空")
+    private BigDecimal servicePrice;
+
+    @ApiModelProperty("服务分类ID")
+    @NotBlank(groups = {AddGroup.class}, message = "服务分类不能为空")
+    private Long categoryId;
+
+    @ApiModelProperty("服务描述")
+    @NotBlank(groups = {AddGroup.class}, message = "服务描述不能为空")
+    private String serviceDesc;
+
+    @ApiModelProperty("所属商家ID")
+    @NotBlank(groups = {AddGroup.class}, message = "所属商家不能为空")
+    private Long businessId;
+
+    @ApiModelProperty("备注")
+    private String remark;
+
+    @ApiModelProperty(value = "创建人", hidden = true)
+    private Long createBy;
+
+    @ApiModelProperty(value = "创建时间", hidden = true)
+    private Date createAt;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComExServicemanDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComExServicemanDTO.java
new file mode 100644
index 0000000..da46114
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComExServicemanDTO.java
@@ -0,0 +1,111 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.panzhihua.common.model.helper.encrypt.EncryptQuery;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 退役军人DTO
+ */
+@Data
+@ApiModel("退役军人")
+public class ComExServicemanDTO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 分页-当前页数
+     */
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum;
+
+    /**
+     * 分页-每页记录数
+     */
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize;
+
+    /**
+     * 年龄开始查询字段
+     */
+    @ApiModelProperty("年龄开始查询字段")
+    private String ageStart;
+
+    /**
+     * 年龄开始时间查询字段
+     */
+    @ApiModelProperty(value = "年龄开始时间查询字段", hidden = true)
+    private String ageStartTime;
+    /**
+     * 年龄结束查询字段
+     */
+    @ApiModelProperty("年龄结束查询字段")
+    private String ageEnd;
+
+    /**
+     * 年龄结束时间查询字段
+     */
+    @ApiModelProperty(value = "年龄结束时间查询字段", hidden = true)
+    private String ageEndTime;
+
+    /**
+     * 民族
+     */
+    @ApiModelProperty("民族")
+    private String nation;
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+
+    /**
+     * 街道id
+     */
+    @ApiModelProperty(value = "街道id", hidden = true)
+    private Integer streetId;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long CommunityId;
+    /**
+     * 姓名
+     */
+    @ApiModelProperty(value = "姓名")
+    private String name;
+    /**
+     * 性别
+     */
+    @ApiModelProperty(value = "性别")
+    private String sex;
+
+    /**
+     * 身份证号码
+     */
+    @ApiModelProperty(value = "身份证号码")
+    @EncryptQuery
+    private String cardNo;
+    /**
+     * 联系电话
+     */
+    @ApiModelProperty(value = "联系电话")
+    private String phone;
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngCarAppletDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngCarAppletDTO.java
new file mode 100644
index 0000000..fddb201
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngCarAppletDTO.java
@@ -0,0 +1,63 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.io.Serializable;
+
+import javax.validation.constraints.NotBlank;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @description: 车辆登记
+ * @author: Null
+ * @date: 2021/3/16 14:37
+ */
+@Data
+@ApiModel("小程序车辆登记参数")
+public class ComMngCarAppletDTO implements Serializable {
+
+    @ApiModelProperty(value = "车辆主键ID", hidden = true)
+    private Long id;
+
+    @ApiModelProperty(value = "车牌号")
+    @NotBlank(groups = {AddGroup.class}, message = "车牌号不能为空")
+    @Length(groups = {AddGroup.class}, max = 20, message = "车牌号长度错误")
+    private String plateNum;
+
+    @ApiModelProperty(value = "车辆品牌型号")
+    @NotBlank(groups = {AddGroup.class}, message = "车辆品牌型号不能为空")
+    @Length(groups = {AddGroup.class}, max = 20, message = "车辆品牌型号超长")
+    private String brand;
+
+    @ApiModelProperty(value = "车身颜色")
+    private String color;
+
+    @ApiModelProperty(value = "社区ID", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "小区名称", hidden = true)
+    private String areaName;
+
+    @ApiModelProperty(value = "小区ID", hidden = true)
+    private Long areaId;
+
+    @ApiModelProperty(value = "车主姓名", hidden = true)
+    private String userName;
+
+    @ApiModelProperty(value = "车主ID", hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "车主手机号码", hidden = true)
+    private String mobile;
+
+    @ApiModelProperty(value = "创建人", hidden = true)
+    private Long createBy;
+
+    @ApiModelProperty(value = "数据来源:1-小程序 2-后台录入", hidden = true)
+    private Integer source;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngCarSaveDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngCarSaveDTO.java
new file mode 100644
index 0000000..c3ea854
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngCarSaveDTO.java
@@ -0,0 +1,69 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.io.Serializable;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @description: 后端辆登记参数
+ * @author: Null
+ * @date: 2021/3/16 14:37
+ */
+@Data
+@ApiModel("后端辆登记/修改参数")
+public class ComMngCarSaveDTO implements Serializable {
+
+    @ApiModelProperty(value = "车辆主键ID")
+    private Long id;
+
+    @ApiModelProperty(value = "车牌号")
+    @NotBlank(groups = {AddGroup.class}, message = "车牌号不能为空")
+    private String plateNum;
+
+    @ApiModelProperty(value = "车辆品牌型号")
+    @NotBlank(groups = {AddGroup.class}, message = "车辆品牌型号不能为空")
+    private String brand;
+
+    @ApiModelProperty(value = "车身颜色")
+    private String color;
+
+    @ApiModelProperty(value = "小区ID")
+    @Min(value = 1, groups = {AddGroup.class}, message = "用户小区id不能为空")
+    @NotNull(groups = {AddGroup.class}, message = "用户小区id不能为空")
+    private Long areaId;
+
+    @ApiModelProperty(value = "车主姓名")
+    @NotBlank(groups = {AddGroup.class}, message = "车主姓名不能为空")
+    private String userName;
+
+    @ApiModelProperty(value = "身份证号")
+    @NotBlank(groups = {AddGroup.class}, message = "车主身份证号码不能为空")
+    private String cardNo;
+
+    @ApiModelProperty(value = "车主手机号码")
+    @NotBlank(groups = {AddGroup.class}, message = "车主手机号码不能为空")
+    private String mobile;
+
+    @ApiModelProperty(value = "社区ID", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "小区名称", hidden = true)
+    private String areaName;
+
+    @ApiModelProperty(value = "车主ID", hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "创建人", hidden = true)
+    private Long createBy;
+
+    @ApiModelProperty(value = "数据来源:1-小程序 2-后台录入", hidden = true)
+    private Integer source;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationDTO.java
new file mode 100644
index 0000000..feda4dd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationDTO.java
@@ -0,0 +1,234 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.panzhihua.common.model.helper.encrypt.EncryptQuery;
+import com.panzhihua.common.model.helper.encrypt.EncryptQueryClass;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 实有人口DTO
+ */
+@Data
+@EncryptQueryClass
+public class ComMngPopulationDTO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 分页-当前页数
+     */
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum;
+
+    /**
+     * 分页-每页记录数
+     */
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize;
+
+    /**
+     * 年龄开始查询字段
+     */
+    @ApiModelProperty("年龄开始查询字段")
+    private String ageStart;
+
+    /**
+     * 年龄开始时间查询字段
+     */
+    @ApiModelProperty(value = "年龄开始时间查询字段", hidden = true)
+    private String ageStartTime;
+
+    /**
+     * 最终年龄开始时间查询字段
+     */
+    @ApiModelProperty(value = "最终年龄开始时间查询字段", hidden = true)
+    private String ageStartTimeEnd;
+
+    /**
+     * 年龄结束查询字段
+     */
+    @ApiModelProperty("年龄结束查询字段")
+    private String ageEnd;
+
+    /**
+     * 最终年龄结束时间查询字段
+     */
+    @ApiModelProperty(value = "最终年龄结束时间查询字段", hidden = true)
+    private String ageEndTimeEnd;
+
+    /**
+     * 年龄结束时间查询字段
+     */
+    @ApiModelProperty(value = "年龄结束时间查询字段", hidden = true)
+    private String ageEndTime;
+
+    /**
+     * 籍贯
+     */
+    @ApiModelProperty("籍贯")
+    private String nativePlace;
+    /**
+     * 民族
+     */
+    @ApiModelProperty("民族")
+    private String nation;
+    /**
+     * 小区名字
+     */
+    @ApiModelProperty("小区名字")
+    private String alley;
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+
+    /**
+     * 街道id
+     */
+    @ApiModelProperty(value = "街道id", hidden = true)
+    private Integer streetId;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long actId;
+    /**
+     * 小区id(实有房屋id)
+     */
+    @ApiModelProperty(value = "小区id(实有房屋id)")
+    private Long villageId;
+    /**
+     * 家庭成员(姓名)
+     */
+    @ApiModelProperty(value = "家庭成员(姓名)")
+    private String name;
+    /**
+     * 性别(1.男 2.女 3.未知)
+     */
+    @ApiModelProperty(value = "性别(1.男 2.女 3.未知)")
+    private Integer sex;
+    /**
+     * 年龄
+     */
+    @ApiModelProperty(value = "年龄")
+    private Integer age;
+
+    /**
+     * 身份证号码
+     */
+    @ApiModelProperty(value = "身份证号码")
+    @EncryptQuery
+    private String cardNo;
+    /**
+     * 街路巷
+     */
+    @ApiModelProperty(value = "街路巷")
+    private String road;
+    /**
+     * 门牌号
+     */
+    @ApiModelProperty(value = "门牌号")
+    private String doorNo;
+    /**
+     * 楼排号
+     */
+    @ApiModelProperty(value = "楼排号")
+    private String floor;
+    /**
+     * 单元号
+     */
+    @ApiModelProperty(value = "单元号")
+    private String unitNo;
+    /**
+     * 户室(房间号)
+     */
+    @ApiModelProperty(value = "户室(房间号)")
+    private String houseNo;
+    /**
+     * 政治面貌(1.中共党员2.中共预备党员3.共青团员4.民革党员5.民盟盟员6.民建会员7.8.农工党党员9.致公党党员10.九三学社社员11.台盟盟员12.无党派人士13.群众)
+     */
+    @ApiModelProperty(
+        value = "政治面貌(1.中共党员2.中共预备党员3.共青团员4.民革党员5.民盟盟员6.民建会员7.8.农工党党员9.致公党党员10.九三学社社员11.台盟盟员12.无党派人士13.群众)")
+    private Integer politicalOutlook;
+    /**
+     * 工作单位
+     */
+    @ApiModelProperty(value = "工作单位")
+    private String workCompany;
+    /**
+     * 特殊情况
+     */
+    @ApiModelProperty(value = "特殊情况")
+    private String specialSituation;
+    /**
+     * 联系方式
+     */
+    @ApiModelProperty(value = "联系方式")
+    private String phone;
+    /**
+     * 备注
+     */
+    @ApiModelProperty(value = "备注")
+    private String remark;
+    /**
+     * 标签集合(多个标签以,隔开)
+     */
+    @ApiModelProperty(value = "标签集合(多个标签以,隔开)")
+    private String label;
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+
+    /**
+     * 是否租住(0.否 1.是)
+     */
+    @ApiModelProperty(value = "是否租住(0.否 1.是)")
+    private Integer isRent;
+
+    /**
+     * 外地or本地(1.本地 2.外地)
+     */
+    @ApiModelProperty(value = "外地or本地(1.本地  2.外地)")
+    private Integer outOrLocal;
+
+    @ApiModelProperty(value = "房屋地址等级")
+    private Integer level;
+
+    @ApiModelProperty(value = "房屋id")
+    private Long houseId;
+
+    @ApiModelProperty("居住地址")
+    private String address;
+
+    @ApiModelProperty("关键词")
+    private String keyWord;
+
+    @ApiModelProperty("等级是否查询全部(1.是 2.否)")
+    private Integer levelIsAll;
+
+    @ApiModelProperty("是否死亡人员 (1.是 0.否)")
+    private Integer isDeath;
+
+    @ApiModelProperty("人员类型(1、户籍人口2、留守人员3、外地人员4、境外人员5、流动人口6、常住人口7、暂住人口)")
+    private String personType;
+
+    private Integer type;
+
+    private String searchKey;
+    public interface levelIsAll{
+        int yes = 1;
+        int no = 2;
+    }
+}
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
new file mode 100644
index 0000000..2360098
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationEditDTO.java
@@ -0,0 +1,115 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.io.Serializable;
+import java.util.List;
+
+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;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 实有人口编辑请求参数
+ */
+@Data
+@ApiModel("实有人口编辑请求参数")
+public class ComMngPopulationEditDTO implements Serializable {
+
+    @ApiModelProperty("实有人口id")
+    private Long id;
+
+    @ApiModelProperty("姓名")
+    @NotBlank(groups = {PutGroup.class}, message = "姓名不可为空")
+    private String name;
+
+    @ApiModelProperty("政治面貌(1.中共党员2.中共预备党员3.共青团员4.民革党员5.民盟盟员6.民建会员7.8.农工党党员9.致公党党员10.九三学社社员11.台盟盟员12.无党派人士13.群众)")
+    @NotBlank(groups = {PutGroup.class}, message = "政治面貌不可为空")
+    private Integer politicalOutlook;
+
+    @ApiModelProperty("是否租住 是否租住(0.否 1.是)")
+    @NotBlank(groups = {PutGroup.class}, message = "是否租住不可为空")
+    private Integer isRent;
+
+    @ApiModelProperty("与户主关系(1.户主 2.配偶 3.子女 4.孙女 5.父母 6.其他)")
+    @NotBlank(groups = {PutGroup.class}, message = "与户主关系不可为空")
+    private Integer relation;
+
+    @ApiModelProperty("联系方式")
+    @NotBlank(groups = {PutGroup.class}, message = "联系方式不可为空")
+    @EncryptDecryptField
+    private String phone;
+
+    @ApiModelProperty("文化程度(1.小学 2.初中 3.高中 4.中专 5.大专 6.本科 7.硕士 8.博士 9.其他)")
+    @NotBlank(groups = {PutGroup.class}, message = "文化程度不可为空")
+    private Integer cultureLevel;
+
+    @ApiModelProperty("婚姻状况(1.未婚 2.已婚 3.离异 4.丧偶 5.分居 6.其他)")
+    @NotBlank(groups = {PutGroup.class}, message = "婚姻状况不可为空")
+    private Integer marriage;
+
+    @ApiModelProperty("工作单位")
+    @NotBlank(groups = {PutGroup.class}, message = "工作单位不可为空")
+    private String workCompany;
+
+    @ApiModelProperty("外地or本地(1.本地  2.外地)")
+    @NotBlank(groups = {PutGroup.class}, message = "外地/本地不可为空")
+    private Integer outOrLocal;
+
+    @ApiModelProperty("户口所在地")
+    @NotBlank(groups = {PutGroup.class}, message = "户口所在地不可为空")
+    private String censusRegister;
+
+    @ApiModelProperty("备注")
+    private String remark;
+
+    @ApiModelProperty("标签集合(多个标签以,隔开,如物业工作人员,物业")
+    private String label;
+
+    @ApiModelProperty("健康状况")
+    private String healthy;
+
+    @ApiModelProperty("人员类型(1、户籍人口2、留守人员3、外地人员4、境外人员5、流动人口6、常住人口7、暂住人口)")
+    private String personType;
+
+    @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/ComMngPopulationHouseAdminDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationHouseAdminDTO.java
new file mode 100644
index 0000000..53dc721
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationHouseAdminDTO.java
@@ -0,0 +1,134 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 实有房屋DTO
+ */
+@Data
+@ApiModel("实有房屋请求参数")
+public class ComMngPopulationHouseAdminDTO implements Serializable {
+    /**
+     * 分页-当前页数
+     */
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    /**
+     * 分页-每页记录数
+     */
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    /**
+     * 街路巷
+     */
+    @ApiModelProperty("街路巷")
+    private String alley;
+    /**
+     * 门牌号
+     */
+    @ApiModelProperty(value = "门牌号")
+    private String houseNum;
+    /**
+     * 小区组
+     */
+    @ApiModelProperty(value = "小区组")
+    private String groupAt;
+
+    /**
+     * 房屋状态(1.自住 2.租住 3.其他)
+     */
+    @ApiModelProperty("房屋状态(1.自住 2.租住 3.其他)")
+    private Integer status;
+    /**
+     * 房屋用途(1.住宅 2.公寓 3.宿舍 4.仓库 5.其他)
+     */
+    @ApiModelProperty("房屋用途(1.住宅 2.公寓 3.宿舍 4.仓库 5.其他)")
+    private Integer purpose;
+    /**
+     * 管控状态(1.常规 2.关注 3.管控)
+     */
+    @ApiModelProperty(value = "管控状态(1.常规 2.关注 3.管控)")
+    private Integer controlStatus;
+
+    /**
+     * 房屋id
+     */
+    @ApiModelProperty(value = "房屋id")
+    private Long houseId;
+
+    /**
+     * 级别(1.街路巷 2.门牌号 3.楼排号 4.单元号 5.户室)
+     */
+    @ApiModelProperty(value = "级别(1.街路巷 2.门牌号 3.楼排号 4.单元号 5.户室)")
+    private Integer level;
+
+    /**
+     * 更新开始时间
+     */
+    @ApiModelProperty(value = "更新开始时间")
+    private String startTime;
+
+    /**
+     * 更新结束时间
+     */
+    @ApiModelProperty(value = "更新结束时间")
+    private String endTime;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    /**
+     * 街路巷
+     */
+    @ApiModelProperty(value = "街路巷", hidden = true)
+    private String road;
+    /**
+     * 门牌号
+     */
+    @ApiModelProperty(value = "门牌号", hidden = true)
+    private String doorNo;
+    /**
+     * 楼排号
+     */
+    @ApiModelProperty(value = "楼排号", hidden = true)
+    private String floor;
+    /**
+     * 单元号
+     */
+    @ApiModelProperty(value = "单元号", hidden = true)
+    private String unitNo;
+    /**
+     * 户室(房间号)
+     */
+    @ApiModelProperty(value = "户室(房间号)", hidden = true)
+    private String houseNo;
+    /**
+     * 小区id
+     */
+    @ApiModelProperty(value = "小区id")
+    private Long villageId;
+
+    /**
+     * 房屋地址
+     */
+    @ApiModelProperty(value = "房屋地址")
+    private Long address;
+
+    @ApiModelProperty("等级是否查询全部(1.是 2.否)")
+    private Integer levelIsAll;
+
+    public interface levelIsAll{
+        int yes = 1;
+        int no = 2;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationHouseEditAdminDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationHouseEditAdminDTO.java
new file mode 100644
index 0000000..105dd56
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationHouseEditAdminDTO.java
@@ -0,0 +1,51 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 实有房屋编辑请求参数
+ */
+@Data
+@ApiModel("实有房屋编辑请求参数")
+public class ComMngPopulationHouseEditAdminDTO implements Serializable {
+
+    @ApiModelProperty("房屋id")
+    private Long houseId;
+    /**
+     * 建筑面积
+     */
+    @ApiModelProperty("建筑面积")
+    private BigDecimal constructArea;
+    /**
+     * 建筑用途
+     */
+    @ApiModelProperty(value = "建筑用途")
+    private String constructPurpose;
+    /**
+     * 房屋编号
+     */
+    @ApiModelProperty(value = "房屋编号")
+    private String code;
+
+    /**
+     * 房屋状态(1.自住 2.租住 3.其他)
+     */
+    @ApiModelProperty("房屋状态(1.自住 2.租住 3.其他)")
+    private Integer status;
+    /**
+     * 房屋用途(1.住宅 2.公寓 3.宿舍 4.仓库 5.其他)
+     */
+    @ApiModelProperty("房屋用途(1.住宅 2.公寓 3.宿舍 4.仓库 5.其他)")
+    private Integer purpose;
+    /**
+     * 管控状态(1.常规 2.关注 3.管控)
+     */
+    @ApiModelProperty(value = "管控状态(1.常规 2.关注 3.管控)")
+    private Integer controlStatus;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationHouseEditDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationHouseEditDTO.java
new file mode 100644
index 0000000..7c0ad3b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationHouseEditDTO.java
@@ -0,0 +1,33 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 实有人口编辑请求参数
+ */
+@Data
+@ApiModel("实有人口房屋编辑请求参数")
+public class ComMngPopulationHouseEditDTO implements Serializable {
+
+    @ApiModelProperty("实有房屋id")
+    private Long id;
+
+    @ApiModelProperty(value = "是否是居住地(1.是 0.否)")
+    private Integer isResidence;
+
+    @ApiModelProperty("与户主关系")
+    private Integer relation;
+
+    /**
+     * 是否是居住地(1.是 0.否)
+     */
+    public interface isResidence {
+        int yes = 1;
+        int no = 0;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationHouseInsertAdminDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationHouseInsertAdminDTO.java
new file mode 100644
index 0000000..bb4f2a1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationHouseInsertAdminDTO.java
@@ -0,0 +1,132 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 实有房屋新增请求参数
+ * @author zzj
+ */
+@Data
+@ApiModel("实有房屋新增请求参数")
+public class ComMngPopulationHouseInsertAdminDTO implements Serializable {
+
+    /**
+     * 房屋地址
+     */
+    @ApiModelProperty("房屋地址")
+    private String address;
+
+    /**
+     * 房屋编号
+     */
+    @ApiModelProperty("房屋编号")
+    private String code;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty("社区id")
+    private Long communityId;
+
+    /**
+     * 街路巷id
+     */
+    @ApiModelProperty("街路巷id")
+    private String alley;
+
+    /**
+     * 门牌号
+     */
+    @ApiModelProperty("门牌号")
+    private String houseNum;
+
+    /**
+     * 楼排号
+     */
+    @ApiModelProperty("楼排号")
+    private String floor;
+    /**
+     * 单元号
+     */
+    @ApiModelProperty("单元号")
+    private String unitNo;
+    /**
+     * 户室(房间号)
+     */
+    @ApiModelProperty("户室(房间号)")
+    private String houseNo;
+
+    /**
+     * 房屋状态(1.自住 2.租住 3.其他)
+     */
+    @ApiModelProperty("房屋状态(1.自住 2.租住 3.其他)")
+    private Integer status;
+
+    /**
+     * 房屋用途(1.住宅 2.公寓 3.宿舍 4.仓库 5.其他)
+     */
+    @ApiModelProperty("房屋用途(1.住宅 2.公寓 3.宿舍 4.仓库 5.其他)")
+    private Integer purpose;
+
+    /**
+     * 管控状态(1.常规 2.关注 3.管控)
+     */
+    @ApiModelProperty("管控状态(1.常规 2.关注 3.管控)")
+    private Integer controlStatus;
+
+    /**
+     * 空户(1.是 2.否)
+     */
+    @ApiModelProperty("空户(1.是 2.否)")
+    private Integer isEmpty;
+
+    /**
+     * 建筑用途
+     */
+    @ApiModelProperty("建筑用途")
+    private String constructPurpose;
+
+    /**
+     * 建筑面积
+     */
+    @ApiModelProperty("建筑面积")
+    private BigDecimal constructArea;
+
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+
+    /**
+     * 修改时间
+     */
+    private Date updateAt;
+
+    /**
+     * 小区id
+     */
+    @ApiModelProperty("小区id")
+    private Long villageId;
+
+    /**
+     * 街道id
+     *
+     * @return
+     */
+    @ApiModelProperty("街道id")
+    private Long streetId;
+
+    /**
+     * 层次递归字段(省>市>区县>街道>社区>小区>详细地址)
+     */
+    private String path;
+    @ApiModelProperty("人员id")
+    private Long populationId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationHouseUserVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationHouseUserVO.java
new file mode 100644
index 0000000..12a121e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationHouseUserVO.java
@@ -0,0 +1,41 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel
+public class ComMngPopulationHouseUserVO {
+    private Long id;
+
+    /**
+     * 实有人口id
+     */
+    @ApiModelProperty("实有人口id")
+    private Long populId;
+
+    /**
+     * 实有房屋id
+     */
+    @ApiModelProperty("实有房屋id")
+    private Long houseId;
+
+    /**
+     * 与户主关系(1.户主 2.配偶 3.子女 4.孙女 5.父母 6.其他)
+     */
+    @ApiModelProperty("与户主关系(1.户主 2.配偶 3.子女 4.孙女 5.父母 6.其他)")
+    private Integer relation;
+
+    /**
+     * 人和房屋关系’ (1.自住2、租住)
+     */
+    @ApiModelProperty("人和房屋关系’ (1.自住2、租住)")
+    private Integer relationId;
+
+    /**
+     * 人和房屋关系’ (1.是、0.否)
+     */
+    @ApiModelProperty("人和房屋关系’ (1.是、0.否)")
+    private Integer residence;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationTagCardNoDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationTagCardNoDTO.java
new file mode 100644
index 0000000..9493615
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationTagCardNoDTO.java
@@ -0,0 +1,29 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 实有人口DTO
+ * 
+ * @author manailin
+ */
+@Data
+public class ComMngPopulationTagCardNoDTO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 身份证
+     */
+    @ApiModelProperty(value = "身份证")
+    private String cardNo;
+
+    /**
+     * 标签字符串(多个以,隔开)
+     */
+    @ApiModelProperty(value = "标签字符串")
+    private String label;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationTagDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationTagDTO.java
new file mode 100644
index 0000000..297ef37
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngPopulationTagDTO.java
@@ -0,0 +1,27 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 实有人口DTO
+ */
+@Data
+public class ComMngPopulationTagDTO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+
+    /**
+     * 标签字符串(多个以,隔开)
+     */
+    @ApiModelProperty(value = "标签字符串")
+    private String label;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngRealCompanyBelongsDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngRealCompanyBelongsDTO.java
new file mode 100644
index 0000000..c97b737
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComMngRealCompanyBelongsDTO.java
@@ -0,0 +1,19 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @description: 实有单位归属请求参数
+ * @author: Null
+ * @date: 2021/3/11 10:36
+ */
+@Data
+@ApiModel("实有单位归属请求参数")
+public class ComMngRealCompanyBelongsDTO {
+
+    @ApiModelProperty(value = "社区名称")
+    private String actName;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComOpsHouseDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComOpsHouseDTO.java
new file mode 100644
index 0000000..676e8f7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComOpsHouseDTO.java
@@ -0,0 +1,128 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 房屋租售
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-22 14:48
+ **/
+@Data
+public class ComOpsHouseDTO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    private Long id;
+    /**
+     * 状态 0待审核 1已上架 2已驳回 3已下架
+     */
+    @ApiModelProperty(value = "状态  0待审核 1已上架 2已驳回 3已下架")
+    private Integer status;
+    /**
+     * 房屋所在社区id
+     */
+    @ApiModelProperty(value = "房屋所在社区id")
+    private Long houseCommunityId;
+    /**
+     * 房屋所在社区名字
+     */
+    @ApiModelProperty(value = "房屋所在社区名字")
+    private String houseCommunityName;
+    /**
+     * 房屋标题
+     */
+    @ApiModelProperty(value = "房屋标题")
+    private String title;
+    /**
+     * 租售类型 1 出租 2 出售
+     */
+    @ApiModelProperty(value = "租售类型 1 出租 2 出售")
+    private Integer houseType;
+    /**
+     * 租房类型 1 整租 2 合租
+     */
+    @ApiModelProperty(value = "租房类型 1 整租 2 合租")
+    private Integer rentType;
+    /**
+     * 价格
+     */
+    @ApiModelProperty(value = "价格")
+    private Double amount;
+    /**
+     * 面积
+     */
+    @ApiModelProperty(value = "面积")
+    private Integer area;
+    /**
+     * 室数量
+     */
+    @ApiModelProperty(value = "室数量")
+    private Integer brn;
+    /**
+     * 厅数量
+     */
+    @ApiModelProperty(value = "厅数量")
+    private Integer lrn;
+    /**
+     * 卫数量
+     */
+    @ApiModelProperty(value = "卫数量")
+    private Integer wcn;
+    /**
+     * 所在楼层
+     */
+    @ApiModelProperty(value = "所在楼层")
+    private Integer floor;
+    /**
+     * 总楼层
+     */
+    @ApiModelProperty(value = "总楼层")
+    private Integer totalFloor;
+    /**
+     * 朝向 0无1东2南3西4北5东南6东北7西南8西北9南北10东西
+     */
+    @ApiModelProperty(value = "朝向 0无1东2南3西4北5东南6东北7西南8西北9南北10东西")
+    private Integer orient;
+    /**
+     * 装修情况
+     */
+    @ApiModelProperty(value = "装修情况")
+    private String decoration;
+    /**
+     * 房屋简介
+     */
+    @ApiModelProperty(value = "房屋简介")
+    private String introduction;
+    /**
+     * 联系方式
+     */
+    @ApiModelProperty(value = "联系方式")
+    private String mobile;
+    /**
+     * 拒绝原因
+     */
+    @ApiModelProperty(value = "拒绝原因")
+    private String reason;
+    /**
+     * 图片地址 多个用逗号隔开
+     */
+    @ApiModelProperty(value = "图片地址 多个用逗号隔开")
+    private String photoPah;
+
+    @ApiModelProperty(value = "发布人主键", hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "社区主键", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "用户类型 1 小程序 2 运营平台 3 社区平台", hidden = true)
+    private Integer userType;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComPropertyPublicityDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComPropertyPublicityDTO.java
new file mode 100644
index 0000000..774c2a1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComPropertyPublicityDTO.java
@@ -0,0 +1,61 @@
+package com.panzhihua.common.model.dtos.community;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+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;
+
+/**
+ * @title: ComPropertyPublicityDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 新增/编辑物业宣传
+ * @author: hans
+ * @date: 2021/11/11 10:55
+ */
+@Data
+@ApiModel("新增/编辑物业宣传")
+public class ComPropertyPublicityDTO {
+
+    @ApiModelProperty("物业宣传id")
+    @NotNull(groups = PutGroup.class, message = "物业宣传id不能为空")
+    private Long id;
+
+    @ApiModelProperty("宣传标题")
+    @NotBlank(groups = AddGroup.class, message = "宣传标题不能为空")
+    private String title;
+
+    @ApiModelProperty("宣传类型(0.其他 1.停水通知 2.停电通知 3.停气通知 4.物业公告 5.优秀业主)")
+    @NotNull(groups = AddGroup.class, message = "宣传类型不能为空")
+    private Integer publicityType;
+
+    @ApiModelProperty("其他类型自定义名称")
+    private String other;
+
+    @ApiModelProperty("封面")
+    @NotBlank(groups = AddGroup.class, message = "封面不能为空")
+    private String cover;
+
+    @ApiModelProperty("内容形式(1.文章链接 2.自定义内容)")
+    @NotNull(groups = AddGroup.class, message = "内容形式不能为空")
+    private Integer contentType;
+
+    @ApiModelProperty("文章链接")
+    private String articleUrl;
+
+    @ApiModelProperty("自定义内容")
+    private String diyContent;
+
+    @ApiModelProperty(value = "物业公司id", hidden = true)
+    private Long propertyId;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+}
\ No newline at end of file
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/ComSwDangerReportHandleDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwDangerReportHandleDTO.java
new file mode 100644
index 0000000..696449c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwDangerReportHandleDTO.java
@@ -0,0 +1,69 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.io.Serializable;
+
+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;
+
+/**
+ * 隐患报告处理DTO
+ */
+@Data
+@ApiModel("隐患报告处理DTO")
+public class ComSwDangerReportHandleDTO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 隐患报告id
+     */
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty("隐患报告id")
+    private Long dangerReportId;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty("社区id")
+    private Long communityId;
+
+    /**
+     * 社区处理建议
+     */
+    @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;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwDangerReportRectifyDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwDangerReportRectifyDTO.java
new file mode 100644
index 0000000..f58cde0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwDangerReportRectifyDTO.java
@@ -0,0 +1,50 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.io.Serializable;
+
+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;
+
+/**
+ * 隐患报告整改DTO
+ */
+@Data
+@ApiModel("隐患报告整改DTO")
+public class ComSwDangerReportRectifyDTO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 隐患报告id
+     */
+    @ApiModelProperty("隐患报告id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long dangerReportId;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty("社区id")
+    private Long communityId;
+
+    /**
+     * 采取措施
+     */
+    @ApiModelProperty("采取措施")
+    private String takeSteps;
+
+    /**
+     * 采取措施照片
+     */
+    @ApiModelProperty("采取措施照片")
+    private String stepsPhoto;
+
+    /**
+     * 整改人员
+     */
+    @ApiModelProperty("整改人员")
+    private String rectifyPerson;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwPatrolRecordAddDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwPatrolRecordAddDTO.java
new file mode 100644
index 0000000..c75b9e8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwPatrolRecordAddDTO.java
@@ -0,0 +1,224 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.io.Serializable;
+
+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;
+
+/**
+ * @auther txb
+ * @create 2021-07-23 14:38:38
+ * @describe 社区》安全工作》巡查记录实体类
+ */
+
+@Data
+@ApiModel("新增巡查记录DTO")
+public class ComSwPatrolRecordAddDTO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty("社区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long communityId;
+
+    /**
+     * 巡查时间
+     */
+    @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 pPersonName;
+
+    /**
+     * 巡查人员电话,多个以逗号隔开
+     */
+    @ApiModelProperty("巡查人员电话,多个以逗号隔开")
+    private String pPersonPhone;
+
+    /**
+     * 巡查地址
+     */
+    @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;
+
+    /**
+     * 隐患类型(1.火灾隐患2.汛情隐患3.疫情隐患)
+     */
+    @ApiModelProperty("隐患类型(1.火灾隐患2.汛情隐患3.疫情隐患),多条以逗号隔开")
+    private String hiddenDangerType;
+
+    /**
+     * 隐患名称
+     */
+    @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 takeSteps;
+
+    /**
+     * 采取措施照片
+     */
+    @ApiModelProperty("采取措施照片")
+    private String stepsPhoto;
+
+    /**
+     * 整改人员
+     */
+    @ApiModelProperty("整改人员id")
+    private String rectifyPerson;
+
+    /**
+     * 整改人员名字,多个以逗号隔开
+     */
+    @ApiModelProperty("整改人员名字,多个以逗号隔开")
+    private String dPersonName;
+
+    /**
+     * 整改人员电话,多个以逗号隔开
+     */
+    @ApiModelProperty("整改人员电话,多个以逗号隔开")
+    private String dPersonPhone;
+
+    /**
+     * 创建人
+     */
+    @ApiModelProperty("创建人")
+    private Long createBy;
+
+    /**
+     * 巡查类型
+     */
+    public interface patrolType {
+        int huo = 1;
+        int xun = 2;
+        int yi = 3;
+    }
+
+    /**
+     * 巡查类型
+     */
+    public interface hiddenDangerType {
+        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/ComSwPatrolRecordPageDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwPatrolRecordPageDTO.java
new file mode 100644
index 0000000..b6fc13c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwPatrolRecordPageDTO.java
@@ -0,0 +1,79 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 分页查询巡查记录DTO
+ */
+@Data
+@ApiModel("分页查询巡查记录DTO")
+public class ComSwPatrolRecordPageDTO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 分页-当前页数
+     */
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    /**
+     * 分页-每页记录数
+     */
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty("社区id")
+    private Long communityId;
+
+    @ApiModelProperty("巡查开始时间")
+    private String patrolAtBegin;
+
+    @ApiModelProperty("巡查结束时间")
+    private String patrolAtEnd;
+
+    @ApiModelProperty(value = "巡查开始时间(日期格式)", hidden = true)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date patrolAtBeginDate;
+
+    @ApiModelProperty(value = "巡查结束时间(日期格式)", hidden = true)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date patrolAtEndDate;
+
+    /**
+     * (取字典表国家标准编码)巡查类型(1.防火巡查2.防汛巡查3.防疫巡查)
+     */
+    @ApiModelProperty("巡查类型(1.防火巡查2.防汛巡查3.防疫巡查),多条以逗号隔开")
+    private String patrolType;
+
+    /**
+     * 巡查人员
+     */
+    @ApiModelProperty("巡查人员")
+    private String patrolPerson;
+
+    /**
+     * 状态(1.待查看 2.待处理 3.待整改 4.已整改)
+     */
+    @ApiModelProperty("状态(1.待处理 2.待整改 3.已整改)")
+    private String status;
+
+    /**
+     * 查看人(1.全部 2.只看我的)
+     */
+    @ApiModelProperty("查看人(1.全部 2.只看我的)")
+    private Integer selectPerson;
+
+    @ApiModelProperty("区域编码")
+    private String areaCode;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwRotaPageDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwRotaPageDTO.java
new file mode 100644
index 0000000..7a2fbda
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwRotaPageDTO.java
@@ -0,0 +1,47 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 分页查询值班表DTO
+ */
+@Data
+@ApiModel("分页查询值班表DTO")
+public class ComSwRotaPageDTO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 分页-当前页数
+     */
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum;
+
+    /**
+     * 分页-每页记录数
+     */
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty("社区id")
+    private Long communityId;
+
+    /**
+     * 值班人员
+     */
+    @ApiModelProperty("值班人员")
+    private String rotaPerson;
+
+    /**
+     * 联系电话
+     */
+    @ApiModelProperty("联系电话")
+    private String phone;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwRotaSaveDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwRotaSaveDTO.java
new file mode 100644
index 0000000..3db2611
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ComSwRotaSaveDTO.java
@@ -0,0 +1,77 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 新增值班表DTO
+ */
+@Data
+@ApiModel("新增值班表DTO")
+public class ComSwRotaSaveDTO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @ApiModelProperty("id")
+    private Long id;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty("社区id")
+    private Long communityId;
+
+    /**
+     * 值班时间
+     */
+    @ApiModelProperty("值班时间")
+    private String rotaDate;
+
+    /**
+     * 值班领导,多个以逗号隔开
+     */
+    @ApiModelProperty("值班领导,多个以逗号隔开")
+    private String rotaLeader;
+
+    /**
+     * 领导名字,多个以逗号隔开
+     */
+    @ApiModelProperty("领导名字,多个以逗号隔开")
+    private String leaderName;
+
+    /**
+     * 领导电话,多个以逗号隔开
+     */
+    @ApiModelProperty("领导电话,多个以逗号隔开")
+    private String leaderPhone;
+
+    /**
+     * 值班人员,多个以逗号隔开
+     */
+    @ApiModelProperty("值班人员,多个以逗号隔开")
+    private String rotaPerson;
+
+    /**
+     * 人员名字,多个以逗号隔开
+     */
+    @ApiModelProperty("人员名字,多个以逗号隔开")
+    private String personName;
+
+    /**
+     * 人员电话,多个以逗号隔开
+     */
+    @ApiModelProperty("人员电话,多个以逗号隔开")
+    private String personPhone;
+
+    /**
+     * 创建人
+     */
+    @ApiModelProperty("创建人")
+    private Long createBy;
+
+}
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/DisabledPersonsDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/DisabledPersonsDTO.java
new file mode 100644
index 0000000..76c3f8e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/DisabledPersonsDTO.java
@@ -0,0 +1,122 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.io.Serializable;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import lombok.Data;
+
+/**
+ * Description 残疾人dto ClassName DisabledPersons
+ *
+ * @author manailin
+ */
+@Data
+public class DisabledPersonsDTO implements Serializable {
+    private static final long serialVersionUID = 1L;
+    /**
+     * 主键
+     */
+    private Long id;
+
+    private Long userId;
+    /**
+     * 街道id
+     */
+    private Long streetId;
+    /**
+     * 社区id
+     */
+    private Long actId;
+    /**
+     * 名字
+     */
+    @ExcelProperty(value = "名字", index = 0)
+    @Excel(name = "姓名(必填项)", width = 20, isImportField = "true_st")
+    private String name;
+    /**
+     * 身份证号码
+     */
+    @ExcelProperty(value = "身份证号码", index = 1)
+    @Excel(name = "身份证号码(必填项)", width = 20, isImportField = "true_st")
+    private String cardNo;
+    /**
+     * 残疾人证编码
+     */
+    @ExcelProperty(value = "残疾人证编码", index = 2)
+    @Excel(name = "残疾人证编码(必填项)", width = 20, isImportField = "true_st")
+    private String disableSn;
+    /**
+     * 出生年月
+     */
+    private String birthday;
+    /**
+     * 残疾人证
+     */
+    @ExcelProperty(value = "残疾人证类型", index = 3)
+    @Excel(name = "残疾人证类型(必填项)", width = 20, isImportField = "true_st")
+    private String level;
+    /**
+     * 性别(取字典表国家编码)
+     */
+    @ExcelProperty(value = "性别", index = 4)
+    @Excel(name = "性别(必填项)", width = 20, isImportField = "true_st")
+    private String sex;
+    /**
+     * 性别名称
+     */
+    private String sexName;
+    /**
+     * 文化程度(取字典表国家编码))
+     */
+    @ExcelProperty(value = "文化程度", index = 5)
+    @Excel(name = "文化程度(必填项)", width = 20, isImportField = "true_st")
+    private String cultureLevel;
+    /**
+     * 民族
+     */
+    @ExcelProperty(value = "民族", index = 6)
+    @Excel(name = "民族(必填项)", width = 20, isImportField = "true_st")
+    private String nation;
+    /**
+     * 残疾部位/类别
+     */
+    @ExcelProperty(value = "残疾类别", index = 7)
+    @Excel(name = "残疾类别(必填项)", width = 20, isImportField = "true_st")
+    private String disableType;
+    /**
+     * 残疾级别
+     */
+    @ExcelProperty(value = "残疾级别", index = 8)
+    @Excel(name = "残疾级别(必填项)", width = 20, isImportField = "true_st")
+    private String disableLevel;
+    /**
+     * 联系电话
+     */
+    @ExcelProperty(value = "联系电话", index = 9)
+    @Excel(name = "联系电话(必填项)", width = 20, isImportField = "true_st")
+    private String phone;
+    /**
+     * 监护人联系电话
+     */
+    @ExcelProperty(value = "监护人联系电话", index = 10)
+    @Excel(name = "监护人联系电话(必填项)", width = 20, isImportField = "true_st")
+    private String guardianPhone;
+    /**
+     * 地址
+     */
+    @ExcelProperty(value = "地址", index = 11)
+    @Excel(name = "地址(必填项)", width = 20, isImportField = "true_st")
+    private String address;
+    /**
+     * 创建用户
+     */
+    private Long createBy;
+
+    /**
+     * 修改用户
+     */
+    private Long updateBy;
+
+}
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..80bb4fa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/DiscussVoteOptionDTO.java
@@ -0,0 +1,27 @@
+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<ComActDiscussVoteOptionDTO> options;
+
+    @ApiModelProperty(value = "投票人id", hidden = true)
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EditComActDynTypeDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EditComActDynTypeDTO.java
new file mode 100644
index 0000000..dbe3064
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EditComActDynTypeDTO.java
@@ -0,0 +1,26 @@
+package com.panzhihua.common.model.dtos.community;
+
+import org.hibernate.validator.constraints.Length;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("新增社区动态分类请求参数")
+public class EditComActDynTypeDTO {
+
+    @ApiModelProperty("主键(分类编码)")
+    private Long id;
+
+    @ApiModelProperty("分类名称")
+    @Length(min = 1, max = 5, message = "分类名称不可超过5个字")
+    private String name;
+
+    @ApiModelProperty("分类字体颜色")
+    private String color;
+
+    @ApiModelProperty(value = "操作人员id", hidden = true)
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EldersAuthAddByFamilyDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EldersAuthAddByFamilyDTO.java
new file mode 100644
index 0000000..7d22b8d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EldersAuthAddByFamilyDTO.java
@@ -0,0 +1,40 @@
+package com.panzhihua.common.model.dtos.community;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotBlank;
+
+import org.hibernate.validator.constraints.Length;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 创建表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ */
+@Data
+@ApiModel("创建高龄认证请求参数")
+public class EldersAuthAddByFamilyDTO {
+
+    @NotBlank()
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "家庭成员ID", hidden = false, example = "1", required = true)
+    private Long familyUserId;
+
+    @Length(max = 1024)
+    @NotBlank()
+    @ApiModelProperty(value = "视频地址", hidden = false, example = "")
+    private String videoUrl;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "提交人", hidden = true, example = "1")
+    private Long sumitUserId;
+
+    @ApiModelProperty(value = "用户ID", hidden = true, example = "")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EldersAuthAddDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EldersAuthAddDTO.java
new file mode 100644
index 0000000..f5035ac
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EldersAuthAddDTO.java
@@ -0,0 +1,61 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.util.Date;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotBlank;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 创建表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ */
+@Data
+@ApiModel("创建高龄认证请求参数")
+public class EldersAuthAddDTO {
+
+    @NotBlank()
+    @Length(max = 18)
+    @ApiModelProperty(value = "身份证", hidden = false, example = "")
+    private String idCard;
+
+    @Length(max = 32)
+    @NotBlank()
+    @ApiModelProperty(value = "认证人姓名", hidden = false, example = "")
+    private String authUserName;
+
+    @Length(max = 1024)
+    @NotBlank()
+    @ApiModelProperty(value = "视频地址", hidden = false, example = "")
+    private String videoUrl;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "提交人", hidden = true, example = "1")
+    private Long sumitUserId;
+
+    @Length(max = 1024)
+    @ApiModelProperty(value = "户籍地", hidden = false, example = "")
+    private String domicile;
+
+    @Length(max = 1)
+    @ApiModelProperty(value = "状态", hidden = false, example = "")
+    private String status;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "出生日期", hidden = false, example = "2021-05-01 18:05:50")
+    private Date birthDay;
+
+    @ApiModelProperty(value = "用户ID", hidden = true, example = "")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EldersAuthDeleteDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EldersAuthDeleteDTO.java
new file mode 100644
index 0000000..517f8ce
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EldersAuthDeleteDTO.java
@@ -0,0 +1,21 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 删除表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ */
+@Data
+@ApiModel("删除高龄认证请求参数")
+public class EldersAuthDeleteDTO {
+
+    @ApiModelProperty(value = "ID", hidden = false, example = "1")
+    private Long id;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EldersAuthEditDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EldersAuthEditDTO.java
new file mode 100644
index 0000000..8539fe9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EldersAuthEditDTO.java
@@ -0,0 +1,65 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.util.Date;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 编辑表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ */
+@Data
+@ApiModel("编辑高龄认证请求参数")
+public class EldersAuthEditDTO {
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "ID", hidden = false, example = "1")
+    private Long id;
+
+    @NotBlank()
+    @Length(max = 18)
+    @ApiModelProperty(value = "身份证", hidden = false, example = "")
+    private String idCard;
+
+    @Length(max = 32)
+    @ApiModelProperty(value = "认证人姓名", hidden = false, example = "")
+    private String authUserName;
+
+    @Length(max = 1024)
+    @ApiModelProperty(value = "视频地址", hidden = false, example = "")
+    private String videoUrl;
+
+    @NotNull()
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "提交人", hidden = false, example = "1")
+    private Long sumitUserId;
+
+    @Length(max = 1024)
+    @ApiModelProperty(value = "户籍地", hidden = false, example = "")
+    private String domicile;
+
+    @Length(max = 1)
+    @ApiModelProperty(value = "状态", hidden = false, example = "")
+    private String status;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "出生日期", hidden = false, example = "2021-05-01 18:05:50")
+    private Date birthDay;
+
+    @ApiModelProperty(value = "用户ID", hidden = true, example = "")
+    private Long userId;
+
+}
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
new file mode 100644
index 0000000..76364d7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EldersAuthElderlyDTO.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 高领老人分页查询条件
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ */
+@Data
+@ApiModel("高领老人分页查询条件")
+public class EldersAuthElderlyDTO {
+
+    @ApiModelProperty(value = "id")
+    private Long id;
+
+    @ApiModelProperty(value = "姓名", example = "妞妞")
+    private String name;
+
+    @ApiModelProperty(value = "身份证号码")
+    private String idCard;
+
+    @ApiModelProperty(value = "是否健在(1是,2否)", example = "1是,2否")
+    private Integer isExist;
+
+    @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/EldersAuthFeedbackAddDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EldersAuthFeedbackAddDTO.java
new file mode 100644
index 0000000..5cdeda1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EldersAuthFeedbackAddDTO.java
@@ -0,0 +1,37 @@
+package com.panzhihua.common.model.dtos.community;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotNull;
+
+import org.hibernate.validator.constraints.Length;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 创建表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ */
+@Data
+@ApiModel("创建高龄认证社区反馈请求参数")
+public class EldersAuthFeedbackAddDTO {
+
+    @NotNull()
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "认证ID", hidden = false, example = "1", required = true)
+    private Long authId;
+
+    @Length(max = 1024)
+    @ApiModelProperty(value = "反馈结果", hidden = false, example = "")
+    private String feedBack;
+
+    @ApiModelProperty(value = "用户ID", hidden = true, example = "")
+    private Long userId;
+
+    private String areaCode;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EldersAuthFeedbackDeleteDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EldersAuthFeedbackDeleteDTO.java
new file mode 100644
index 0000000..032d6ee
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EldersAuthFeedbackDeleteDTO.java
@@ -0,0 +1,21 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 删除表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ */
+@Data
+@ApiModel("删除高龄认证社区反馈请求参数")
+public class EldersAuthFeedbackDeleteDTO {
+
+    @ApiModelProperty(value = "ID", hidden = false, example = "1")
+    private Long id;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EldersAuthFeedbackEditDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EldersAuthFeedbackEditDTO.java
new file mode 100644
index 0000000..0f71263
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EldersAuthFeedbackEditDTO.java
@@ -0,0 +1,36 @@
+package com.panzhihua.common.model.dtos.community;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotNull;
+
+import org.hibernate.validator.constraints.Length;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 编辑表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ */
+@Data
+@ApiModel("编辑高龄认证社区反馈请求参数")
+public class EldersAuthFeedbackEditDTO {
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "ID", hidden = false, example = "1")
+    private Long id;
+
+    @NotNull()
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "认证ID", hidden = false, example = "1")
+    private Long authId;
+
+    @Length(max = 1024)
+    @ApiModelProperty(value = "反馈结果", hidden = false, example = "")
+    private String feedBack;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EldersAuthTypeQueryDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EldersAuthTypeQueryDTO.java
new file mode 100644
index 0000000..2a589e4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/EldersAuthTypeQueryDTO.java
@@ -0,0 +1,43 @@
+package com.panzhihua.common.model.dtos.community;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotBlank;
+
+import org.hibernate.validator.constraints.Length;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 创建表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ */
+@Data
+@ApiModel("高龄认证查询请求参数")
+public class EldersAuthTypeQueryDTO {
+
+    @NotBlank()
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "家庭成员ID", hidden = false, example = "1", required = true)
+    private Long familyUserId;
+
+    @Length(max = 1024)
+    @NotBlank()
+    @ApiModelProperty(value = "视频地址", hidden = false, example = "")
+    private String videoUrl;
+
+    @ApiModelProperty(value = "用户ID", hidden = true, example = "")
+    private Long userId;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "提交人", hidden = true, example = "1")
+    private Long operUserId;
+
+    @ApiModelProperty(value = "社区ID", hidden = true, example = "")
+    private Long communityId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ExcelElderAuthDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ExcelElderAuthDTO.java
new file mode 100644
index 0000000..56e3b39
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ExcelElderAuthDTO.java
@@ -0,0 +1,48 @@
+package com.panzhihua.common.model.dtos.community;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+
+import lombok.Data;
+
+/**
+ * @description: 商城订单导出
+ * @author: cedoo
+ * @date: 2021-4-18 16:13:21
+ */
+@Data
+public class ExcelElderAuthDTO {
+
+    @ExcelProperty("*序号")
+    private Integer seq;
+
+    @ExcelProperty("*项目名称")
+    private String subsidy;
+
+    @ExcelProperty("*发放批次")
+    private String batch;
+
+    @ExcelProperty("*姓名")
+    private String name;
+
+    @ExcelProperty("*身份证号")
+    private String idCard;
+
+    @ExcelProperty("*人员类别")
+    private String type;
+
+    @ExcelProperty("*应付年月")
+    private String yearMonth;
+
+    @ExcelProperty("*发放金额(元)")
+    private String payCount;
+
+    @ExcelProperty("联系电话(到账信息提醒)")
+    private String telphone;
+
+    @ExcelProperty("*所属村(社区)")
+    private String communityName;
+
+    @ExcelProperty("所属组")
+    private String group;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ExcelHouseDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ExcelHouseDTO.java
new file mode 100644
index 0000000..ceab04b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ExcelHouseDTO.java
@@ -0,0 +1,39 @@
+package com.panzhihua.common.model.dtos.community;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+
+import lombok.Data;
+
+/**
+ * @description: 房屋信息导出
+ * @author: Null
+ * @date: 2021/3/16 09:36
+ */
+@Data
+public class ExcelHouseDTO {
+
+    @ExcelProperty("楼栋")
+    private String build;
+
+    @ExcelProperty("单元")
+    private String unit;
+
+    @ExcelProperty("楼层")
+    private String floor;
+
+    @ExcelProperty("房间")
+    private String room;
+
+    @ExcelProperty("面积")
+    private String square;
+
+    @ExcelProperty("房屋状态")
+    private String state;
+
+    @ExcelProperty("居住人")
+    private String username;
+
+    @ExcelProperty("联系电话")
+    private String phone;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ExcelQuestnaireAnswersDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ExcelQuestnaireAnswersDTO.java
new file mode 100644
index 0000000..065ca44
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ExcelQuestnaireAnswersDTO.java
@@ -0,0 +1,27 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.util.List;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 用户问卷excel导出
+ * @author: cedoo
+ * @create: 2021-4-10 10:34:52
+ **/
+@Data
+public class ExcelQuestnaireAnswersDTO {
+
+    @ExcelProperty("姓名")
+    private String name;
+
+    @ExcelProperty("提交时间")
+    private String submitTime;
+
+    @ExcelProperty("题目答案")
+    private List<String> answers;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ExportComMngCarExcelDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ExportComMngCarExcelDTO.java
new file mode 100644
index 0000000..043d3f2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ExportComMngCarExcelDTO.java
@@ -0,0 +1,28 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @description: 车辆导出请求参数
+ * @author: txb
+ * @date: 2021/7/14 10:36
+ */
+@Data
+@ApiModel("车辆导出请求参数")
+public class ExportComMngCarExcelDTO {
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "小区名称")
+    private String areaName;
+
+    @ApiModelProperty(value = "车主名称")
+    private String userName;
+
+    @ApiModelProperty(value = "小区id", hidden = true)
+    private Long villageId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ExportRealAssetsExcelDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ExportRealAssetsExcelDTO.java
new file mode 100644
index 0000000..4b3e0d8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ExportRealAssetsExcelDTO.java
@@ -0,0 +1,22 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @description: 实有资产导出请求参数
+ * @author: Null
+ * @date: 2021/3/11 10:36
+ */
+@Data
+@ApiModel("实有资产导出请求参数")
+public class ExportRealAssetsExcelDTO {
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "资产名称")
+    private String name;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ExportRealCompanyExcelDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ExportRealCompanyExcelDTO.java
new file mode 100644
index 0000000..22ae4c2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ExportRealCompanyExcelDTO.java
@@ -0,0 +1,24 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @description: 实有单位导出请求参数
+ * @author: Null
+ * @date: 2021/3/11 10:36
+ */
+@Data
+@ApiModel("实有单位导出请求参数")
+public class ExportRealCompanyExcelDTO {
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "单位名称")
+    private String comName;
+
+    @ApiModelProperty(value = "法人")
+    private String legalPerson;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ExportSpecialUserDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ExportSpecialUserDTO.java
new file mode 100644
index 0000000..dff29a6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ExportSpecialUserDTO.java
@@ -0,0 +1,24 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 特殊群体excel导出查询参数
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-02-20 10:27
+ **/
+@Data
+@ApiModel("特殊群体excel导出查询参数")
+public class ExportSpecialUserDTO {
+    @ApiModelProperty(value = "姓名")
+    private String name;
+    @ApiModelProperty(value = "小区名字")
+    private String areaName;
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+    @ApiModelProperty("标签")
+    private String tags;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ExportUserDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ExportUserDTO.java
new file mode 100644
index 0000000..c4d297d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/ExportUserDTO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 居民excel导出查询参数
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-02-20 10:27
+ **/
+@Data
+@ApiModel("居民excel导出查询参数")
+public class ExportUserDTO {
+    @ApiModelProperty(value = "姓名")
+    private String name;
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+    @ApiModelProperty(value = "小区名字")
+    private String areaName;
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+}
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/GrantRewardDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/GrantRewardDTO.java
new file mode 100644
index 0000000..798970b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/GrantRewardDTO.java
@@ -0,0 +1,34 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.List;
+
+import javax.validation.constraints.NotBlank;
+
+import com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 随手拍发放奖励请求参数
+ */
+@Data
+@ApiModel("随手拍发放奖励请求参数")
+public class GrantRewardDTO implements Serializable {
+
+    @ApiModelProperty(value = "随手拍id")
+    @NotBlank(groups = {AddGroup.class}, message = "随手拍id不能为空")
+    private List<Long> ids;
+
+    @ApiModelProperty(value = "发放奖励金额")
+    @NotBlank(groups = {AddGroup.class}, message = "发放奖励金额不能为空")
+    private BigDecimal amount;
+
+    @ApiModelProperty(value = "操作人", hidden = true)
+    private Long userId;
+
+    private String areaCode;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/KeyPersonInfoDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/KeyPersonInfoDTO.java
new file mode 100644
index 0000000..a885ddc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/KeyPersonInfoDTO.java
@@ -0,0 +1,156 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+
+import lombok.Data;
+
+/**
+ * Description 重点人员信息 ClassName KeyPersonInfo
+ *
+ * @author manailin
+ */
+@Data
+public class KeyPersonInfoDTO implements Serializable {
+    private static final long serialVersionUID = 1L;
+    /**
+     * 主键
+     */
+    private Long id;
+    /**
+     * 街道id
+     */
+    private Long streetId;
+    /**
+     * 姓名
+     */
+    @ExcelProperty(value = "姓名(必填项)", index = 0)
+    private String name;
+    /**
+     * 性别(取字典表国家编码)
+     */
+    private String sex;
+    /**
+     * 性别名称
+     */
+    @ExcelProperty(value = "性别名称", index = 1)
+    private String sexName;
+    /**
+     * 身份证号码
+     */
+    @ExcelProperty(value = "身份证号码", index = 2)
+    private String cardNo;
+    /**
+     * 联系方式
+     */
+    @ExcelProperty(value = "联系方式", index = 3)
+    private String phone;
+    /**
+     * 民族
+     */
+    @ExcelProperty(value = "民族", index = 4)
+    private String nation;
+    /**
+     * 户口所在地
+     */
+    @ExcelProperty(value = "户口所在地", index = 5)
+    private String censusRegister;
+    /**
+     * 居住地址
+     */
+    @ExcelProperty(value = "居住地址", index = 6)
+    private String address;
+    /**
+     * 地址精度纬度信息(逗号隔开)
+     */
+    @ExcelProperty(value = "地址精度纬度信息(逗号隔开)", index = 7)
+    private String visiterAddressLatLng;
+    /**
+     * 人员类型1吸毒2严重精神障碍3刑释人员4社区矫正人员
+     */
+    @ExcelProperty(value = "人员类型1吸毒2严重精神障碍3刑释人员4社区矫正人员", index = 8)
+    private String visiterType;
+    /**
+     * (法轮功类填写)基本情况
+     */
+    @ExcelProperty(value = "(法轮功类填写)基本情况", index = 9)
+    private String basicInfo;
+    /**
+     * 是否有效
+     */
+    @ExcelProperty(value = "是否有效", index = 10)
+    private Boolean invalid;
+    /**
+     * 备注
+     */
+    @ExcelProperty(value = "备注", index = 11)
+    private String note;
+    /**
+     * 文化程度(取字典表国家编码))
+     */
+    @ExcelProperty(value = "文化程度", index = 12)
+    private String cultureLevel;
+    /**
+     * 经济状态
+     */
+    @ExcelProperty(value = "经济状态", index = 13)
+    private String economicLevel;
+    /**
+     * 修改人
+     */
+    private Long updateBy;
+    /**
+     * 修改时间
+     */
+    private Date updateAt;
+    /**
+     * 创建人
+     */
+    private Long createBy;
+    /**
+     * (精神类人群填写)目前诊断
+     */
+    @ExcelProperty(value = "目前诊断", index = 14)
+    private String diagnose;
+    /**
+     * 上报提交时间
+     */
+    private Date submitDate;
+    /**
+     * (精神类人群填写)监护人名称
+     */
+    @ExcelProperty(value = "监护人名称", index = 15)
+    private String guardian;
+    /**
+     * (精神类人群填写)监护人电话
+     */
+    @ExcelProperty(value = "监护人电话", index = 16)
+    private String guardianPhone;
+    /**
+     * (精神类人群填写)监护人关系
+     */
+    @ExcelProperty(value = "监护人关系", index = 17)
+    private String guardianRelation;
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+    /**
+     * 社区id
+     */
+
+    private Long actId;
+    /**
+     * 小区id(实有房屋id)
+     */
+
+    private Long villageId;
+    /**
+     * 用户ID
+     */
+
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/NoticeReadDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/NoticeReadDTO.java
new file mode 100644
index 0000000..dc0498d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/NoticeReadDTO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 通知已读
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-04 19:12
+ **/
+@Data
+@ApiModel("通知已读")
+public class NoticeReadDTO {
+
+    @ApiModelProperty("是否全部已读 1 是 0 否")
+    private Integer all;
+
+    @ApiModelProperty("单独读取某条通知的id")
+    private Long id;
+
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/OperationDetailDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/OperationDetailDTO.java
new file mode 100644
index 0000000..a6d9907
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/OperationDetailDTO.java
@@ -0,0 +1,23 @@
+package com.panzhihua.common.model.dtos.community;
+
+import lombok.Data;
+
+@Data
+public class OperationDetailDTO {
+    /**
+     * 预约登记记录id
+     */
+    private Long reserveRecordId;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 类型(1.本人操作 2.社区操作)
+     */
+    private Integer type;
+
+
+}
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
new file mode 100644
index 0000000..969097a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageActWorkGuideDTO.java
@@ -0,0 +1,31 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther llming
+ * @describe
+ */
+@Data
+@ApiModel("办事指南请求参数")
+public class PageActWorkGuideDTO {
+
+    @ApiModelProperty("办事指南标题")
+    private String title;
+
+    @ApiModelProperty("所属分类")
+    private String classify;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    private String areaCode;
+
+    @ApiModelProperty(value = "是否在线办理 0  不是    1是")
+    private String isOnLine;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageActivityInviteDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageActivityInviteDTO.java
new file mode 100644
index 0000000..2206703
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageActivityInviteDTO.java
@@ -0,0 +1,29 @@
+package com.panzhihua.common.model.dtos.community;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: ActivityInviteDTO
+ * @projectName:
+ * @description: 活动邀请请求参数
+ * @author: hans
+ * @date: 2022/08/02 9:55
+ */
+@Data
+@ApiModel("活动邀请请求参数")
+public class PageActivityInviteDTO {
+
+    @ApiModelProperty("受邀活动id")
+    @NotNull(message = "受邀活动id不能为空")
+    private Long activityId;
+
+    @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/PageComActDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComActDTO.java
new file mode 100644
index 0000000..6c1b1e6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComActDTO.java
@@ -0,0 +1,41 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 社区
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-15 10:06
+ **/
+@Data
+@ApiModel("社区表请求参数")
+public class PageComActDTO {
+
+    @ApiModelProperty("社区名字")
+    private String name;
+
+    @ApiModelProperty("区级地址编码")
+    private String areaCode;
+
+    @ApiModelProperty(value = "创建查询开始时间", example = "2020-01-02 00:00:00")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAtBegin;
+
+    @ApiModelProperty(value = "创建查询结束时间", example = "2020-12-02 00:00:00")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAtEnd;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize;
+
+}
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
new file mode 100644
index 0000000..9b11a80
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComActDiscussCommentDTO.java
@@ -0,0 +1,40 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 一起议分页评论查询
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-23 14:29
+ **/
+@Data
+@ApiModel("一起议分页评论查询")
+public class PageComActDiscussCommentDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "账号")
+    private String account;
+
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    @ApiModelProperty(value = "评论内容")
+    private String comment;
+
+    @ApiModelProperty(value = "一起议主键id")
+    private Long id;
+
+    @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
new file mode 100644
index 0000000..c8635f7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComActDiscussDTO.java
@@ -0,0 +1,68 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 分页查询一起议
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-23 11:11
+ **/
+@Data
+@ApiModel("分页查询一起议")
+public class PageComActDiscussDTO {
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty("主题")
+    private String subject;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty("查询开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date begin;
+
+    @ApiModelProperty("查询结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date end;
+
+    @ApiModelProperty(value = "登录用户", hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "登录用户-用于判断是否点赞和投票", hidden = true)
+    private Long loginUserId;
+
+    @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;
+
+    @ApiModelProperty("议事内容类型(1.社区议事 2.院落议事 3.党群议事 4.居民议事 5.其他)")
+    private Integer contentType;
+
+    @ApiModelProperty(value = "是否党员", hidden = true)
+    private Integer isPbMember;
+    @ApiModelProperty(value = "是否志愿者", hidden = true)
+    private Integer isVolunteer;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComActDynTypeDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComActDynTypeDTO.java
new file mode 100644
index 0000000..94b1a60
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComActDynTypeDTO.java
@@ -0,0 +1,29 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("分页查询社区动态分类请求参数")
+public class PageComActDynTypeDTO {
+
+    @ApiModelProperty(value = "当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty("关键词")
+    private String keyWord;
+
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+    @ApiModelProperty("类型(1.社区动态 2.党务公开 3.花城资讯)")
+    private Integer category;
+
+    @ApiModelProperty("1 花城西区都有   2 花城独有")
+    private String area;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComActEasyPhotoCommentDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComActEasyPhotoCommentDTO.java
new file mode 100644
index 0000000..db357f8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComActEasyPhotoCommentDTO.java
@@ -0,0 +1,28 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 随手拍评论分页
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-21 14:51
+ **/
+@Data
+@ApiModel("随手拍评论分页")
+public class PageComActEasyPhotoCommentDTO {
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize;
+
+    @ApiModelProperty(value = "随手拍主键")
+    private Long id;
+
+    @ApiModelProperty(value = "登录用户", hidden = true)
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComCvtBusinessAppletsDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComCvtBusinessAppletsDTO.java
new file mode 100644
index 0000000..8ace9cd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComCvtBusinessAppletsDTO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @description: 便民服务商家请求参数
+ * @author: Null
+ * @date: 2021/3/11 10:36
+ */
+@Data
+@ApiModel("便民服务商家请求参数")
+public class PageComCvtBusinessAppletsDTO {
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComCvtBusinessDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComCvtBusinessDTO.java
new file mode 100644
index 0000000..2604ef3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComCvtBusinessDTO.java
@@ -0,0 +1,28 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @description: 便民服务商家请求参数
+ * @author: Null
+ * @date: 2021/3/11 10:36
+ */
+@Data
+@ApiModel("便民服务商家请求参数")
+public class PageComCvtBusinessDTO {
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty("商家名称")
+    private String name;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComCvtCategoryDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComCvtCategoryDTO.java
new file mode 100644
index 0000000..2278fe9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComCvtCategoryDTO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @description: 便民服务分类请求参数
+ * @author: Null
+ * @date: 2021/3/11 10:36
+ */
+@Data
+@ApiModel("便民服务请求参数")
+public class PageComCvtCategoryDTO {
+
+    @ApiModelProperty("分类名称")
+    private String name;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComCvtServeDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComCvtServeDTO.java
new file mode 100644
index 0000000..bbc251e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComCvtServeDTO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @description: 便民服务列表请求参数
+ * @author: Null
+ * @date: 2021/3/11 10:52
+ */
+@Data
+@ApiModel("便民服务列表请求参数")
+public class PageComCvtServeDTO {
+
+    @ApiModelProperty("服务名称")
+    private String serviceName;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComEldersAuthElderlyDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComEldersAuthElderlyDTO.java
new file mode 100644
index 0000000..7798a03
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComEldersAuthElderlyDTO.java
@@ -0,0 +1,101 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.util.Date;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Pattern;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.google.common.base.CaseFormat;
+import com.panzhihua.common.model.helper.encrypt.EncryptQuery;
+import com.panzhihua.common.model.helper.encrypt.EncryptQueryClass;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 分页查询表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-06-09
+ */
+@Data
+@ApiModel("查询高龄老人库请求参数")
+@EncryptQueryClass
+public class PageComEldersAuthElderlyDTO {
+
+    @ApiModelProperty(value = "分页-当前页数,默认:1", example = "1", position = 1)
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数,默认:10", example = "10", position = 2)
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "排序字段, 默认createAt", example = "createAt", position = 3)
+    private String sortAttr = "createAt";
+
+    @ApiModelProperty(value = "排序方式: asc/desc(默认)", example = "desc", position = 4)
+    @Pattern(regexp = "asc|desc|ASC|DESC")
+    private String sortType = "desc";
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "主键id", hidden = false, example = "1")
+    private Long id;
+    @Length(max = 50)
+    @ApiModelProperty(value = "名称", hidden = false, example = "")
+    private String name;
+    @Length(max = 50)
+    @EncryptQuery
+    @ApiModelProperty(value = "身份证号码", hidden = false, example = "")
+    private String idCard;
+    @Length(max = 50)
+    @ApiModelProperty(value = "出生年月", hidden = false, example = "")
+    private String birthday;
+    @Max(127)
+    @ApiModelProperty(value = "人员类别(1.80-89周岁 2.90-99周岁 3.100周岁(含)以上)", hidden = false, example = "1")
+    private Integer level;
+    @Length(max = 255)
+    @ApiModelProperty(value = "户籍地", hidden = false, example = "")
+    private String domicile;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "社区id", hidden = false, example = "1")
+    private Long communityId;
+    @Max(127)
+    @ApiModelProperty(value = "是否健在(1.是  2.否)", hidden = false, example = "1")
+    private Integer isExist;
+    @Max(127)
+    @ApiModelProperty(value = "是否办理高龄津贴(1.是 2.否)", hidden = false, example = "1")
+    private Integer isBigAge;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间-开始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date createAtBegin;
+    @ApiModelProperty(value = "创建时间-结束时间", hidden = false, example = "2021-05-01 18:05:50")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAtEnd;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "创建用户", hidden = false, example = "1")
+    private Long createBy;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "修改时间-开始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date updateAtBegin;
+    @ApiModelProperty(value = "修改时间-结束时间", hidden = false, example = "2021-05-01 18:05:50")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAtEnd;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "修改用户", hidden = false, example = "1")
+    private Long updateBy;
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long operUserId;
+    @ApiModelProperty(value = "(当前操作)用户名称", hidden = true, example = "张三")
+    private String operUserName;
+
+    @ApiModelProperty(value = "排序列", example = "create_at", hidden = true)
+    public String getSortColumns() {
+        String dbColumn = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sortAttr);
+        return dbColumn;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComEldersAuthHistoryRecordDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComEldersAuthHistoryRecordDTO.java
new file mode 100644
index 0000000..bb401a3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComEldersAuthHistoryRecordDTO.java
@@ -0,0 +1,82 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.util.Date;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Pattern;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.google.common.base.CaseFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 分页查询表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-06-10
+ */
+@Data
+@ApiModel("查询高龄老人认证记录请求参数")
+public class PageComEldersAuthHistoryRecordDTO {
+
+    @ApiModelProperty(value = "分页-当前页数,默认:1", example = "1", position = 1)
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数,默认:10", example = "10", position = 2)
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "排序字段, 默认createAt", example = "createAt", position = 3)
+    private String sortAttr = "createAt";
+
+    @ApiModelProperty(value = "排序方式: asc/desc(默认)", example = "desc", position = 4)
+    @Pattern(regexp = "asc|desc|ASC|DESC")
+    private String sortType = "desc";
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "主键id", hidden = false, example = "1")
+    private Long id;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "老人用户id", hidden = false, example = "1")
+    private Long userId;
+    @Length(max = 50)
+    @ApiModelProperty(value = "名称", hidden = false, example = "")
+    private String name;
+    @Length(max = 50)
+    @ApiModelProperty(value = "身份证号码", hidden = false, example = "")
+    private String idCard;
+    @Length(max = 50)
+    @ApiModelProperty(value = "出生年月", hidden = false, example = "")
+    private String brithday;
+    @Max(9999999999L)
+    @ApiModelProperty(value = "年龄", hidden = false, example = "1")
+    private Integer age;
+    @Length(max = 50)
+    @ApiModelProperty(value = "户籍地", hidden = false, example = "")
+    private String domicile;
+    @Max(127)
+    @ApiModelProperty(value = "本月是否已认证(1.是 2.否)", hidden = false, example = "1")
+    private Integer isAuth;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间-开始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date createAtBegin;
+    @ApiModelProperty(value = "创建时间-结束时间", hidden = false, example = "2021-05-01 18:05:50")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAtEnd;
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long operUserId;
+    @ApiModelProperty(value = "(当前操作)用户名称", hidden = true, example = "张三")
+    private String operUserName;
+
+    @ApiModelProperty(value = "排序列", example = "create_at", hidden = true)
+    public String getSortColumns() {
+        String dbColumn = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sortAttr);
+        return dbColumn;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComEldersAuthStatisticsDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComEldersAuthStatisticsDTO.java
new file mode 100644
index 0000000..486e374
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComEldersAuthStatisticsDTO.java
@@ -0,0 +1,74 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.util.Date;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Pattern;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.google.common.base.CaseFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 分页查询表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-06-10
+ */
+@Data
+@ApiModel("查询老人认证月统计请求参数")
+public class PageComEldersAuthStatisticsDTO {
+
+    @ApiModelProperty(value = "分页-当前页数,默认:1", example = "1", position = 1)
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数,默认:10", example = "10", position = 2)
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "排序字段, 默认createAt", example = "createAt", position = 3)
+    private String sortAttr = "createAt";
+
+    @ApiModelProperty(value = "排序方式: asc/desc(默认)", example = "desc", position = 4)
+    @Pattern(regexp = "asc|desc|ASC|DESC")
+    private String sortType = "desc";
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "主键id", hidden = false, example = "1")
+    private Long id;
+    @Max(9999999999L)
+    @ApiModelProperty(value = "年份", hidden = false, example = "1")
+    private Integer year;
+    @Max(9999999999L)
+    @ApiModelProperty(value = "月份", hidden = false, example = "1")
+    private Integer month;
+    @Max(9999999999L)
+    @ApiModelProperty(value = "总人数", hidden = false, example = "1")
+    private Integer sum;
+    @Max(9999999999L)
+    @ApiModelProperty(value = "认证人数", hidden = false, example = "1")
+    private Integer authSum;
+    @Max(9999999999L)
+    @ApiModelProperty(value = "未认证人数", hidden = false, example = "1")
+    private Integer noAuthSum;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间-开始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date createAtBegin;
+    @ApiModelProperty(value = "创建时间-结束时间", hidden = false, example = "2021-05-01 18:05:50")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAtEnd;
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long operUserId;
+    @ApiModelProperty(value = "(当前操作)用户名称", hidden = true, example = "张三")
+    private String operUserName;
+
+    @ApiModelProperty(value = "排序列", example = "create_at", hidden = true)
+    public String getSortColumns() {
+        String dbColumn = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sortAttr);
+        return dbColumn;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComEldersAuthUserDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComEldersAuthUserDTO.java
new file mode 100644
index 0000000..33464a1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComEldersAuthUserDTO.java
@@ -0,0 +1,77 @@
+package com.panzhihua.common.model.dtos.community;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Pattern;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.google.common.base.CaseFormat;
+import com.panzhihua.common.model.helper.encrypt.EncryptQuery;
+import com.panzhihua.common.model.helper.encrypt.EncryptQueryClass;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 分页查询表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-06-09
+ */
+@Data
+@ApiModel("查询用户绑定老人关系请求参数")
+@EncryptQueryClass
+public class PageComEldersAuthUserDTO {
+
+    @ApiModelProperty(value = "分页-当前页数,默认:1", example = "1", position = 1)
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数,默认:10", example = "10", position = 2)
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "排序字段, 默认createAt", example = "createAt", position = 3)
+    private String sortAttr = "createAt";
+
+    @ApiModelProperty(value = "排序方式: asc/desc(默认)", example = "desc", position = 4)
+    @Pattern(regexp = "asc|desc|ASC|DESC")
+    private String sortType = "desc";
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "主键id", hidden = false, example = "1")
+    private Long id;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "用户id", hidden = false, example = "1")
+    private Long userId;
+    @Max(127)
+    @ApiModelProperty(value = "与本人关系(1.父母 2.配偶 3.子女 4.兄弟姐妹 5.祖/外祖父母 6.本人 7.其他)", hidden = false, example = "1")
+    private Integer relation;
+    @Max(127)
+    @ApiModelProperty(value = "是否已认证(1.是 2.否)", hidden = false, example = "1")
+    private Integer isAuth;
+    @Length(max = 50)
+    @ApiModelProperty(value = "姓名", hidden = false, example = "")
+    private String name;
+    @Length(max = 50)
+    @EncryptQuery
+    @ApiModelProperty(value = "身份证号码", hidden = false, example = "")
+    private String idCard;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "社区id", hidden = false, example = "1")
+    private Long communityId;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "高龄老人库id", hidden = false, example = "1")
+    private Long bigAgeId;
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long operUserId;
+    @ApiModelProperty(value = "(当前操作)用户名称", hidden = true, example = "张三")
+    private String operUserName;
+
+    @ApiModelProperty(value = "排序列", example = "create_at", hidden = true)
+    public String getSortColumns() {
+        String dbColumn = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sortAttr);
+        return dbColumn;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComEldersRecordsDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComEldersRecordsDTO.java
new file mode 100644
index 0000000..7c15958
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComEldersRecordsDTO.java
@@ -0,0 +1,50 @@
+package com.panzhihua.common.model.dtos.community;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+
+import com.google.common.base.CaseFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 分页查询生存认证记录表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-06-09
+ */
+@Data
+@ApiModel("查询高龄老人库请求参数")
+public class PageComEldersRecordsDTO {
+
+    @ApiModelProperty(value = "分页-当前页数,默认:1", example = "1", position = 1)
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数,默认:10", example = "10", position = 2)
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "排序字段, 默认createAt", example = "createAt", position = 3)
+    private String sortAttr = "createAt";
+
+    @ApiModelProperty(value = "排序方式: asc/desc(默认)", example = "desc", position = 4)
+    @Pattern(regexp = "asc|desc|ASC|DESC")
+    private String sortType = "desc";
+    @ApiModelProperty(value = "家庭成员ID", hidden = false, example = "1", required = true)
+    @NotNull(message = "家庭成员ID不能为空")
+    private Long bigAgeid;
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long operUserId;
+    @ApiModelProperty(value = "(当前操作)用户名称", hidden = true, example = "张三")
+    private String operUserName;
+
+    @ApiModelProperty(value = "排序列", example = "create_at", hidden = true)
+    public String getSortColumns() {
+        String dbColumn = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sortAttr);
+        return dbColumn;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComMngCarDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComMngCarDTO.java
new file mode 100644
index 0000000..e210aea
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComMngCarDTO.java
@@ -0,0 +1,34 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @description: 车辆管理列表请求参数
+ * @author: Null
+ * @date: 2021/3/11 10:36
+ */
+@Data
+@ApiModel("车辆管理列表请求参数")
+public class PageComMngCarDTO {
+
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    @ApiModelProperty(value = "小区名称")
+    private String areaName;
+
+    @ApiModelProperty("车主姓名")
+    private String name;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize;
+
+    @ApiModelProperty("小区id")
+    private Long villageId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComMngRealAssetsDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComMngRealAssetsDTO.java
new file mode 100644
index 0000000..7554069
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComMngRealAssetsDTO.java
@@ -0,0 +1,28 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @description: 实有资产列表请求参数
+ * @author: Null
+ * @date: 2021/3/11 10:36
+ */
+@Data
+@ApiModel("实有资产列表请求参数")
+public class PageComMngRealAssetsDTO {
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "资产名称")
+    private String name;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComMngRealCompanyDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComMngRealCompanyDTO.java
new file mode 100644
index 0000000..3bdfd29
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComMngRealCompanyDTO.java
@@ -0,0 +1,31 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @description: 实有单位列表请求参数
+ * @author: Null
+ * @date: 2021/3/11 10:36
+ */
+@Data
+@ApiModel("实有单位列表请求参数")
+public class PageComMngRealCompanyDTO {
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "单位名称")
+    private String comName;
+
+    @ApiModelProperty(value = "法人")
+    private String legalPerson;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComMngVillageDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComMngVillageDTO.java
new file mode 100644
index 0000000..f922273
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComMngVillageDTO.java
@@ -0,0 +1,36 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author: llming
+ * @description: 实有房屋
+ **/
+@Data
+@ApiModel("小区请求参数")
+public class PageComMngVillageDTO {
+
+    @ApiModelProperty("街路巷")
+    private String alley;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty("小区/组")
+    private String groupAt;
+
+    @ApiModelProperty("小区类型(1.城镇 2.农村 3.未知)")
+    private Integer type;
+
+    @ApiModelProperty("门牌号")
+    private String houseNum;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComOpsHouseDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComOpsHouseDTO.java
new file mode 100644
index 0000000..34106ad
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComOpsHouseDTO.java
@@ -0,0 +1,70 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 分页查询房屋租售
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-23 11:11
+ **/
+@Data
+@ApiModel("分页查询房屋租售")
+public class PageComOpsHouseDTO {
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize;
+
+    @ApiModelProperty(value = "房屋所在小区id")
+    private Long houseCommunityId;
+
+    @ApiModelProperty(value = "房屋所在小区名字")
+    private String houseCommunityName;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty("查询开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date begin;
+
+    @ApiModelProperty("查询结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date end;
+
+    @ApiModelProperty(value = "发布人id")
+    private Long userId;
+
+    @ApiModelProperty(value = "状态  0待审核 1已上架 2已驳回 3已下架 4待审核和已驳回 5已上架和已下架")
+    private Integer status;
+
+    @ApiModelProperty("小程序使用 1 表示查询我的")
+    private Integer isMy;
+
+    @ApiModelProperty(value = "朝向 0无1东2南3西4北5东南6东北7西南8西北9南北10东西")
+    private Integer orient;
+    @ApiModelProperty(value = "租售类型 1 出租 2 出售")
+    private Integer houseType;
+    @ApiModelProperty(value = "租房类型 1 整租 2 合租")
+    private Integer rentType;
+    @ApiModelProperty(value = "室数量,1 一室  2 二室  3 三室 4 四室以上")
+    private Integer brn;
+    @ApiModelProperty(value = "1 价格从低到高  2 价格从高到底 ")
+    private Integer priceOrder;
+
+    @ApiModelProperty(value = "发布人姓名")
+    private String userName;
+    @ApiModelProperty(value = "联系方式")
+    private String mobile;
+
+    private String areaCode;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComPropertyPublicityDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComPropertyPublicityDTO.java
new file mode 100644
index 0000000..a88f90b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComPropertyPublicityDTO.java
@@ -0,0 +1,48 @@
+package com.panzhihua.common.model.dtos.community;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: PageComPropertyPublicityDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 分页查询物业宣传信息请求参数
+ * @author: hans
+ * @date: 2021/11/11 10:32
+ */
+@Data
+@ApiModel("分页查询物业宣传信息请求参数")
+public class PageComPropertyPublicityDTO {
+
+    @ApiModelProperty("关键词")
+    private String keyword;
+
+    @ApiModelProperty("物业公司id")
+    private Long propertyId;
+
+    @ApiModelProperty("小区id")
+    private Long villageId;
+
+    @ApiModelProperty("宣传类型(0.其他 1.停水通知 2.停电通知 3.停气通知 4.物业公告 5.优秀业主)")
+    private Integer publicityType;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    @NotNull(message = "分页参数不能为空")
+    @Min(value = 1)
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    @NotNull(message = "分页参数不能为空")
+    @Min(value = 1)
+    private Long pageSize;
+
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComStreetDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComStreetDTO.java
new file mode 100644
index 0000000..1aca3c9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageComStreetDTO.java
@@ -0,0 +1,26 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author: llming
+ * @description: 街道
+ **/
+@Data
+@ApiModel("街道表请求参数")
+public class PageComStreetDTO {
+
+    @ApiModelProperty("街道名字")
+    private String name;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize;
+
+    @ApiModelProperty("areaCode")
+    private String areaCode;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageCommunityQuestnaireDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageCommunityQuestnaireDTO.java
new file mode 100644
index 0000000..61f09b9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageCommunityQuestnaireDTO.java
@@ -0,0 +1,20 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("问卷调查")
+public class PageCommunityQuestnaireDTO {
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize;
+
+}
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..847fe22
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageElderAuthRecordsDTO.java
@@ -0,0 +1,57 @@
+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.已认证 2.未认证)")
+    private Integer 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;
+
+    private String idCard;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageEldersAuthDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageEldersAuthDTO.java
new file mode 100644
index 0000000..216e1ba
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageEldersAuthDTO.java
@@ -0,0 +1,114 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.util.Date;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.panzhihua.common.model.helper.encrypt.EncryptQuery;
+import com.panzhihua.common.model.helper.encrypt.EncryptQueryClass;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 分页查询表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ */
+@Data
+@ApiModel("查询高龄认证请求参数")
+@EncryptQueryClass
+public class PageEldersAuthDTO {
+
+    @ApiModelProperty(value = "分页-当前页数,默认1", example = "1", required = true)
+    @NotNull
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数,默认10", example = "10", required = true)
+    @NotNull
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "排序字段, 默认createAt", hidden = true, example = "createAt")
+    private String sortBy = "create_at";
+
+    @ApiModelProperty(value = "排序方式: asc/desc(默认)", hidden = true, example = "desc")
+    @Pattern(regexp = "asc|desc|ASC|DESC")
+    private String order = "desc";
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "ID", hidden = false, example = "1")
+    private Long id;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "创建人", hidden = false, example = "1")
+    private Long createBy;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date createAt;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "更新人", hidden = false, example = "1")
+    private Long updateBy;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "更新时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date updateAt;
+
+    @Length(max = 18)
+    @EncryptQuery
+    @ApiModelProperty(value = "身份证", hidden = false, example = "")
+    private String idCard;
+
+    @Length(max = 32)
+    @ApiModelProperty(value = "认证人姓名", hidden = false, example = "")
+    private String authUserName;
+
+    @Length(max = 1024)
+    @ApiModelProperty(value = "视频地址", hidden = false, example = "")
+    private String videoUrl;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "提交人", hidden = false, example = "1")
+    private Long sumitUserId;
+
+    @Length(max = 1024)
+    @ApiModelProperty(value = "户籍地", hidden = false, example = "")
+    private String domicile;
+
+    @Length(max = 1)
+    @ApiModelProperty(value = "状态", hidden = false, example = "")
+    private String status;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "出生日期", hidden = false, example = "2021-05-01 18:05:50")
+    private Date birthDay;
+
+    @ApiModelProperty(value = "导出的ID", hidden = false, example = "")
+    private Long[] ids;
+
+    @ApiModelProperty(value = "查询类型 1 按月 2 按时间", hidden = false, example = "")
+    private String type;
+
+    @ApiModelProperty(value = "月份(1-12)", hidden = false, example = "")
+    private Integer month;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建起始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date createAtStart;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建结束时间", hidden = false, example = "2021-05-02 18:05:50")
+    private Date createAtEnd;
+
+    @ApiModelProperty(value = "社区ID", hidden = false, example = "")
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageEldersAuthElderlyDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageEldersAuthElderlyDTO.java
new file mode 100644
index 0000000..aac4cd2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageEldersAuthElderlyDTO.java
@@ -0,0 +1,55 @@
+package com.panzhihua.common.model.dtos.community;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+
+import com.panzhihua.common.model.helper.encrypt.EncryptQuery;
+import com.panzhihua.common.model.helper.encrypt.EncryptQueryClass;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 高领老人分页查询条件
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ */
+@Data
+@ApiModel("高领老人分页查询条件")
+@EncryptQueryClass
+public class PageEldersAuthElderlyDTO {
+
+    @ApiModelProperty(value = "分页-当前页数,默认1", example = "1", required = true)
+    @NotNull
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数,默认10", example = "10", required = true)
+    @NotNull
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "排序字段, 默认createAt", hidden = true, example = "createAt")
+    private String sortBy = "create_at";
+
+    @ApiModelProperty(value = "排序方式: asc/desc(默认)", hidden = true, example = "desc")
+    @Pattern(regexp = "asc|desc|ASC|DESC")
+    private String order = "desc";
+
+    @ApiModelProperty(value = "姓名", example = "妞妞")
+    private String name;
+
+    @ApiModelProperty(value = "身份证号码")
+    @EncryptQuery
+    private String idCard;
+
+    @ApiModelProperty(value = "人员类别", example = "1:80-89周岁;2:90-99周岁;3:100周岁(含)以上")
+    private Integer level;
+
+    @ApiModelProperty(value = "是否健在", example = "1是,2否")
+    private Integer isExist;
+
+    @ApiModelProperty(value = "是否办理高龄津贴", example = "1是,2否")
+    private Integer isBigAge;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageEldersAuthFeedbackDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageEldersAuthFeedbackDTO.java
new file mode 100644
index 0000000..68eaa91
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageEldersAuthFeedbackDTO.java
@@ -0,0 +1,72 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.util.Date;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 分页查询表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ */
+@Data
+@ApiModel("查询高龄认证社区反馈请求参数")
+public class PageEldersAuthFeedbackDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "排序字段, 默认createAt", example = "createAt")
+    private String sortBy = "createAt";
+
+    @ApiModelProperty(value = "排序方式: asc/desc(默认)", example = "desc")
+    @Pattern(regexp = "asc|desc|ASC|DESC")
+    private String order = "desc";
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "ID", hidden = false, example = "1")
+    private Long id;
+
+    @NotNull()
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "创建人", hidden = false, example = "1")
+    private Long createBy;
+
+    @NotNull()
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date createAt;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "更新人", hidden = false, example = "1")
+    private Long updateBy;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "更新时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date updateAt;
+
+    @NotNull()
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "认证ID", hidden = false, example = "1")
+    private Long authId;
+
+    @Length(max = 1024)
+    @ApiModelProperty(value = "反馈结果", hidden = false, example = "")
+    private String feedBack;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageEldersAuthHistoryDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageEldersAuthHistoryDTO.java
new file mode 100644
index 0000000..b177e12
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageEldersAuthHistoryDTO.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 高领老人分页查询条件
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ */
+@Data
+@ApiModel("高领老人分页查询条件")
+public class PageEldersAuthHistoryDTO {
+
+    @ApiModelProperty(value = "月份")
+    private Integer month;
+
+    @ApiModelProperty(value = "年份")
+    private Integer year;
+
+    @ApiModelProperty(value = "分页-当前页数,默认1", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数,默认10", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "社区ID", hidden = true)
+    private Long communityId;
+}
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
new file mode 100644
index 0000000..dca1493
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageEldersAuthRecordDTO.java
@@ -0,0 +1,58 @@
+package com.panzhihua.common.model.dtos.community;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+
+import com.google.common.base.CaseFormat;
+import com.panzhihua.common.model.helper.encrypt.EncryptQuery;
+import com.panzhihua.common.model.helper.encrypt.EncryptQueryClass;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 高领老人分页查询条件
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ */
+@Data
+@ApiModel("生存认证记录分页查询条件")
+@EncryptQueryClass
+public class PageEldersAuthRecordDTO {
+
+    @ApiModelProperty(value = "分页-当前页数,默认1", example = "1", required = true)
+    @NotNull
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数,默认10", example = "10", required = true)
+    @NotNull
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "排序方式: asc/desc(默认)", example = "desc", position = 4)
+    @Pattern(regexp = "asc|desc|ASC|DESC")
+    private String sortType = "desc";
+
+    @ApiModelProperty(value = "排序字段, 默认createAt", example = "createAt", position = 3)
+    private String sortAttr = "createAt";
+    @ApiModelProperty(value = "姓名", example = "妞妞")
+    private String name;
+    @EncryptQuery
+    @ApiModelProperty(value = "身份证号码")
+    private String idCard;
+    @ApiModelProperty(value = "认证方式(1.视频认证 2.人脸核验)", example = "1")
+    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() {
+        String dbColumn = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sortAttr);
+        return dbColumn;
+    }
+
+}
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/PageMemberForInviteDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageMemberForInviteDTO.java
new file mode 100644
index 0000000..6a5eed0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageMemberForInviteDTO.java
@@ -0,0 +1,35 @@
+package com.panzhihua.common.model.dtos.community;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: ActivityInviteDTO
+ * @projectName:
+ * @description: 活动邀请党员请求参数
+ * @author: hans
+ * @date: 2022/08/02 9:55
+ */
+@Data
+@ApiModel("活动邀请党员请求参数")
+public class PageMemberForInviteDTO {
+
+    @ApiModelProperty("受邀活动id")
+    @NotNull(message = "受邀活动id不能为空")
+    private Long activityId;
+
+    @ApiModelProperty(value = "报道单位id")
+    private Long checkUnitId;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "appid", hidden = true)
+    private String appid;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageQuestnaireAnswerDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageQuestnaireAnswerDTO.java
new file mode 100644
index 0000000..426d50a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageQuestnaireAnswerDTO.java
@@ -0,0 +1,16 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("问卷列表-问卷题目答卷详细-参数")
+public class PageQuestnaireAnswerDTO {
+    @ApiModelProperty(value = "问卷ID")
+    private String questId;
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum;
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageQuestnaireDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageQuestnaireDTO.java
new file mode 100644
index 0000000..457054f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageQuestnaireDTO.java
@@ -0,0 +1,42 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Author: llming
+ * @Description:
+ */
+@Data
+@ApiModel("问卷列表参数")
+public class PageQuestnaireDTO {
+    @ApiModelProperty(value = "标题")
+    private String title;
+    @ApiModelProperty(value = "用户Id")
+    private Long userId;
+    @ApiModelProperty(value = "状态 1待发布 2调研中 3已停止")
+    private List<Integer> states;
+    @ApiModelProperty(value = "发布开始时间")
+    private String startTime;
+    @ApiModelProperty(value = "发布结束时间")
+    private String endTime;
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+    @ApiModelProperty(value = "广告位置(1.首页弹窗 2.首页顶部 3.首页应用)")
+    private Integer advertPosition;
+    @ApiModelProperty(value = "身份(1.全部居民 2.党员 3.志愿者)")
+    private Integer identity;
+    @ApiModelProperty("提供居民")
+    private Boolean forMasses;
+    @ApiModelProperty("提供党员")
+    private Boolean forParty = false;
+    @ApiModelProperty("提供志愿者")
+    private Boolean forVolunteer = false;
+    @ApiModelProperty("社区ID")
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageQuestnaireSubDetailsDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageQuestnaireSubDetailsDTO.java
new file mode 100644
index 0000000..a1790ca
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageQuestnaireSubDetailsDTO.java
@@ -0,0 +1,20 @@
+package com.panzhihua.common.model.dtos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Author: llming
+ * @Description:
+ */
+@Data
+@ApiModel("问卷列表-问卷题目答卷详细-参数")
+public class PageQuestnaireSubDetailsDTO {
+    @ApiModelProperty(value = "问卷题目ID")
+    private String subId;
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum;
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageSysConfDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageSysConfDTO.java
new file mode 100644
index 0000000..a1af6a6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageSysConfDTO.java
@@ -0,0 +1,79 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.util.Date;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Pattern;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.google.common.base.CaseFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 分页查询表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-06-09
+ */
+@Data
+@ApiModel("查询系统配置请求参数")
+public class PageSysConfDTO {
+
+    @ApiModelProperty(value = "分页-当前页数,默认:1", example = "1", position = 1)
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数,默认:10", example = "10", position = 2)
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "排序字段, 默认createAt", example = "createAt", position = 3)
+    private String sortAttr = "createAt";
+
+    @ApiModelProperty(value = "排序方式: asc/desc(默认)", example = "desc", position = 4)
+    @Pattern(regexp = "asc|desc|ASC|DESC")
+    private String sortType = "desc";
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "主键id", hidden = false, example = "1")
+    private Long id;
+    @Length(max = 50)
+    @ApiModelProperty(value = "参数名", hidden = false, example = "")
+    private String name;
+    @Length(max = 50)
+    @ApiModelProperty(value = "参数唯一编码", hidden = false, example = "")
+    private String code;
+    @Length(max = 65535)
+    @ApiModelProperty(value = "参数值", hidden = false, example = "")
+    private String value;
+    @Length(max = 100)
+    @ApiModelProperty(value = "参数描述", hidden = false, example = "")
+    private String describe;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间-开始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date createAtBegin;
+    @ApiModelProperty(value = "创建时间-结束时间", hidden = false, example = "2021-05-01 18:05:50")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAtEnd;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "创建用户", hidden = false, example = "1")
+    private Long createBy;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "社区id", hidden = false, example = "1")
+    private Long communityId;
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long operUserId;
+    @ApiModelProperty(value = "(当前操作)用户名称", hidden = true, example = "张三")
+    private String operUserName;
+
+    @ApiModelProperty(value = "排序列", example = "create_at", hidden = true)
+    public String getSortColumns() {
+        String dbColumn = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sortAttr);
+        return dbColumn;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageUserReserveDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageUserReserveDTO.java
new file mode 100644
index 0000000..8ca3d81
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageUserReserveDTO.java
@@ -0,0 +1,12 @@
+package com.panzhihua.common.model.dtos.community;
+
+import lombok.Data;
+
+@Data
+public class PageUserReserveDTO {
+    private Integer pageNum;
+    private Integer pageSize;
+    private Integer type;
+    private Long userId;
+    private Integer status;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageVolunteerDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageVolunteerDTO.java
new file mode 100644
index 0000000..90bf4fa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageVolunteerDTO.java
@@ -0,0 +1,37 @@
+package com.panzhihua.common.model.dtos.community;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+
+import com.panzhihua.common.validated.PageGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 分页志愿者
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-31 13:52
+ **/
+@Data
+@ApiModel("分页志愿者")
+public class PageVolunteerDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1", required = true)
+    @NotNull(groups = {PageGroup.class}, message = "当前页数不能为空")
+    @Min(value = 1, groups = {PageGroup.class}, message = "当前页数不能为空")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10", required = true)
+    @NotNull(groups = {PageGroup.class}, message = "每页记录数不能为空")
+    @Min(value = 1, groups = {PageGroup.class}, message = "每页记录数不能为空")
+    private Long pageSize;
+
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    @ApiModelProperty("物业公司Id")
+    private Long propertyId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageVoteSituationDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageVoteSituationDTO.java
new file mode 100644
index 0000000..ee5589f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/PageVoteSituationDTO.java
@@ -0,0 +1,29 @@
+package com.panzhihua.common.model.dtos.community;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: PageVoteSituationDTO
+ * @projectName:
+ * @description: 分页查询一起议投票情况
+ * @author: hans
+ * @date: 2022/08/17 16:43
+ */
+@Data
+@ApiModel("分页查询一起议投票情况")
+public class PageVoteSituationDTO {
+
+    @ApiModelProperty(value = "议事投票id")
+    @NotNull
+    private Long discussId;
+
+    @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/QuestnaireAnswersDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/QuestnaireAnswersDTO.java
new file mode 100644
index 0000000..cc20fb1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/QuestnaireAnswersDTO.java
@@ -0,0 +1,28 @@
+package com.panzhihua.common.model.dtos.community;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.ComActQuestnaireAnswerContentVO;
+import com.panzhihua.common.model.vos.community.ComActQuestnaireSubVO;
+
+import com.panzhihua.common.model.vos.community.reserve.ComActReserveRegisterDetailedVO;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 用户问卷 所有答案 回答DTO
+ * @author: cedoo
+ * @create: 2021-4-10 10:34:52
+ **/
+@Data
+public class QuestnaireAnswersDTO {
+    @ApiModelProperty("题目列表")
+    private List<ComActQuestnaireSubVO> subs;
+
+    @ApiModelProperty("题目用户回答列表")
+    private List<ComActQuestnaireAnswerContentVO> answers;
+
+    @ApiModelProperty("用户填报记录")
+    private ComActReserveRegisterDetailedVO recordListVO;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/acid/BatchCheckAcidRecordDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/acid/BatchCheckAcidRecordDTO.java
new file mode 100644
index 0000000..22aab16
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/acid/BatchCheckAcidRecordDTO.java
@@ -0,0 +1,28 @@
+package com.panzhihua.common.model.dtos.community.acid;
+
+import java.util.List;
+
+import javax.validation.constraints.NotEmpty;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: BatchCheckAcidRecordDTO
+ * @projectName:
+ * @description:批量核对填报记录
+ * @author: hans
+ * @date: 2022/08/18 10:18
+ */
+@Data
+@ApiModel("批量核对填报记录")
+public class BatchCheckAcidRecordDTO {
+
+    @ApiModelProperty("填报记录id")
+    @NotEmpty
+    private List<Long> ids;
+
+    @ApiModelProperty("备注")
+    private String remark;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/acid/ComActAcidCheckRecordDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/acid/ComActAcidCheckRecordDTO.java
new file mode 100644
index 0000000..0102f02
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/acid/ComActAcidCheckRecordDTO.java
@@ -0,0 +1,59 @@
+package com.panzhihua.common.model.dtos.community.acid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 排查跟进表(ComActAcidCheckRecord)表实体类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 排查跟进表相关功能
+ *
+ * @author zzj
+ * @since 2022-04-24 16:14:25
+ */
+@Data
+@ApiModel("排查跟进表")
+public class ComActAcidCheckRecordDTO  {
+
+    @NotNull(message = "分页参数不能为空")
+    private Integer page;
+    @ApiModelProperty("条数")
+    @NotNull(message = "分页参数不能为空")
+    private Integer size;
+    /**
+     * 人员id
+     */
+    @ApiModelProperty(value = "人员id")
+    private Long memberId;
+
+    /**
+     * 处理情况 1:集中隔离 2:居家隔离 3:健康监测 4:失联或尚需追踪 5:排除风险 6:暂未管控
+     */
+    @ApiModelProperty(value = "处理情况 1:集中隔离 2:居家隔离 3:健康监测 4:失联或尚需追踪 5:排除风险 6:暂未管控")
+    private Integer status;
+
+    /**
+     * 备注
+     */
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    /**
+     * 操作人
+     */
+    @ApiModelProperty(value = "操作人")
+    private String username;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/acid/ComActAcidDangerMemberDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/acid/ComActAcidDangerMemberDTO.java
new file mode 100644
index 0000000..5933297
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/acid/ComActAcidDangerMemberDTO.java
@@ -0,0 +1,67 @@
+package com.panzhihua.common.model.dtos.community.acid;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 风险人员表(ComActAcidDangerMember)表实体类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 风险人员表相关功能
+ *
+ * @author zzj
+ * @since 2022-04-24 16:12:09
+ */
+@Data
+@ApiModel("风险人员")
+public class ComActAcidDangerMemberDTO  {
+
+    /**
+     * 人员类型 1风险人员 2未填地址人员
+     */
+    @ApiModelProperty(value = "人员类型 1风险人员 2未填地址人员")
+    private Integer type = 1;
+    @ApiModelProperty(value = "数据来源 1系统")
+    private Integer source;
+    @ApiModelProperty("页数")
+    @NotNull(message = "分页参数不能为空")
+    private Integer page;
+    @ApiModelProperty("条数")
+    @NotNull(message = "分页参数不能为空")
+    private Integer size;
+    @ApiModelProperty("关键字")
+    private String keyword;
+    @ApiModelProperty("开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date startTime;
+    @ApiModelProperty("结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date stopTime;
+    /**
+     * 处理情况 1:集中隔离 2:居家隔离 3:健康监测 4:失联或尚需追踪 5:排除风险 6:暂未管控
+     */
+    @ApiModelProperty(value = "当前处理情况 1:集中隔离 2:居家隔离 3:健康监测 4:失联或尚需追踪 5:排除风险 6:暂未管控")
+    private Integer status;
+
+    @ApiModelProperty(value = "风险类别")
+    private String riskType;
+
+    @ApiModelProperty("有无住址 0无 1有")
+    private Integer isAddress;
+
+    @ApiModelProperty(value = "在攀居住地")
+    private String localCity;
+
+    @ApiModelProperty(value = "绑定单位", hidden = true)
+    private String relationName;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/acid/ComActAcidMemberDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/acid/ComActAcidMemberDTO.java
new file mode 100644
index 0000000..49c2268
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/acid/ComActAcidMemberDTO.java
@@ -0,0 +1,31 @@
+package com.panzhihua.common.model.dtos.community.acid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel("工作人员实体")
+public class ComActAcidMemberDTO {
+    /**
+     * 是否推送 1是 0否
+     */
+    @ApiModelProperty(value = "是否推送 1是 0否")
+    private Integer pushStatus;
+
+    /**
+     * 绑定单位
+     */
+    @ApiModelProperty(value = "绑定单位")
+    private String relationName;
+    @ApiModelProperty(value = "关键字")
+    private String keyword;
+
+    @ApiModelProperty("页数")
+    private Integer page;
+    @ApiModelProperty("条数")
+    private Integer size;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/acid/ComActAcidRecordDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/acid/ComActAcidRecordDTO.java
new file mode 100644
index 0000000..674707c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/acid/ComActAcidRecordDTO.java
@@ -0,0 +1,70 @@
+package com.panzhihua.common.model.dtos.community.acid;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * (ComActAcidRecord)表实体类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 相关功能
+ *
+ * @author zzj
+ * @since 2022-04-12 15:29:57
+ */
+@Data
+@ApiModel("防疫筛选条件")
+public class ComActAcidRecordDTO implements Serializable {
+
+    @ApiModelProperty("页数")
+    private Integer page;
+    @ApiModelProperty("条数")
+    private Integer size;
+    @ApiModelProperty("关键字")
+    private String keyword;
+    @ApiModelProperty("有无住址 0无 1有")
+    private Integer isAddress;
+    /**
+     * 出发城市
+     */
+    @ApiModelProperty(value = "出发城市")
+    private String departureCity;
+
+    /**
+     * 在攀居住地
+     */
+    @ApiModelProperty(value = "在攀居住地")
+    private String localCity;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    @ApiModelProperty("开始时间")
+    private String startTime;
+    @ApiModelProperty("结束时间")
+    private String stopTime;
+    @ApiModelProperty("健康码状态")
+    private String colorMark;
+    @ApiModelProperty("行程码")
+    private String travelCard;
+    @ApiModelProperty("核查状态")
+    private String checkStatus;
+    @ApiModelProperty("id数组")
+    private String ids;
+    @ApiModelProperty("登录的账号名")
+    private String loginAccount;
+    private Integer type;
+    private String dangerArea;
+    private String touristCity;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/acid/PageDangerMemberDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/acid/PageDangerMemberDTO.java
new file mode 100644
index 0000000..9af8ffa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/acid/PageDangerMemberDTO.java
@@ -0,0 +1,39 @@
+package com.panzhihua.common.model.dtos.community.acid;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: PageDangerMemberDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 分页查询风险人员请求参数
+ * @author: hans
+ * @date: 2022/04/28 13:15
+ */
+@Data
+@ApiModel("分页查询风险人员请求参数")
+public class PageDangerMemberDTO {
+
+    @ApiModelProperty(value = "关键字")
+    private String keyword;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    @NotNull(message = "分页参数不能为空")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    @NotNull(message = "分页参数不能为空")
+    private Long pageSize;
+
+    @ApiModelProperty(value = "是否填写居住地(1.是 2.否)", example = "1")
+    private Integer isFill;
+
+    @ApiModelProperty(value = "人员类型 1风险人员 2未填地址人员")
+    private Integer type = 1;
+
+    @ApiModelProperty(value = "绑定单位", hidden = true)
+    private String relationName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/BigScreenEventDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/BigScreenEventDTO.java
new file mode 100644
index 0000000..6bf27dc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/BigScreenEventDTO.java
@@ -0,0 +1,29 @@
+package com.panzhihua.common.model.dtos.community.bigscreen;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("事件大屏请求参数")
+public class BigScreenEventDTO {
+
+    @ApiModelProperty(value = "社区id", required = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "查询开始时间")
+    private String startTime;
+
+    @ApiModelProperty(value = "查询结束时间")
+    private String endTime;
+
+    @ApiModelProperty(value = "事件状态(1待处理2已解决3待验证)")
+    private Integer eventProcessStatus;
+
+    @ApiModelProperty(value = "是否红牌(1.是 0.否)")
+    private Integer redCard;
+
+    @ApiModelProperty(value = "是否黄牌(1.是 0.否)")
+    private Integer yellowCard;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/BigScreenEventDetailDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/BigScreenEventDetailDTO.java
new file mode 100644
index 0000000..1fe8749
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/BigScreenEventDetailDTO.java
@@ -0,0 +1,19 @@
+package com.panzhihua.common.model.dtos.community.bigscreen;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("大屏事件详情请求参数")
+public class BigScreenEventDetailDTO {
+
+    @ApiModelProperty(value = "事件id", required = true)
+    private Long eventId;
+
+    @ApiModelProperty(value = "事件状态(1治安隐患、2公共服务、3矛盾纠纷、4不稳定因素、5突发事件、6特殊人群上报、7随手拍处理)", required = true)
+    private Integer type;
+
+    @ApiModelProperty("事件类型(1、网格事件 2、随手拍事件)")
+    private Integer eventType;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/BigScreenStatisticAgeGenderDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/BigScreenStatisticAgeGenderDTO.java
new file mode 100644
index 0000000..820d68c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/BigScreenStatisticAgeGenderDTO.java
@@ -0,0 +1,22 @@
+package com.panzhihua.common.model.dtos.community.bigscreen;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @ClasssName PageBigScreenStatisticPartyOrg
+ * @Description 党员党支部统计信息分页
+ * @Author cedoo
+ * @Date 2021/6/16
+ * @Version 1.0
+ **/
+@Data
+public class BigScreenStatisticAgeGenderDTO {
+
+    @ApiModelProperty(value = "社区id", hidden = false, example = "2", required = true)
+    @NotNull(message = "社区id不能为空")
+    private Long communityId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/BigScreenStatisticPartyActivityDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/BigScreenStatisticPartyActivityDTO.java
new file mode 100644
index 0000000..ce9f1fa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/BigScreenStatisticPartyActivityDTO.java
@@ -0,0 +1,40 @@
+package com.panzhihua.common.model.dtos.community.bigscreen;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @ClasssName PageBigScreenStatisticPartyOrg
+ * @Description 党员活动统计
+ * @Author cedoo
+ * @Date 2021/6/16
+ * @Version 1.0
+ **/
+@Data
+public class BigScreenStatisticPartyActivityDTO {
+
+    @ApiModelProperty(value = "社区id", hidden = true, example = "2", required = false)
+    // @NotNull(message = "社区id不能为空")
+    private Long communityId;
+
+    @ApiModelProperty(value = "类型:3 按月 2.按周;默认为3", hidden = false, example = "3", required = false)
+    @NotNull(message = "类型不能为空")
+    private Integer type = 3;
+
+    @ApiModelProperty(value = "日期", hidden = false, example = "2021-06-01", required = true)
+    // @NotNull(message = "时间不能为空")
+    @Pattern(regexp = "^\\d{4}-\\d{2}-\\d{2}$", message = "时间格式错误")
+    private String date;
+
+    @ApiModelProperty(value = "开始时间", hidden = false, example = "2021-06-01")
+    @Pattern(regexp = "^\\d{4}-\\d{2}-\\d{2}$", message = "时间格式错误")
+    private String startTime;
+
+    @ApiModelProperty(value = "结束时间", hidden = false, example = "2021-06-01")
+    @Pattern(regexp = "^\\d{4}-\\d{2}-\\d{2}$", message = "时间格式错误")
+    private String endTime;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/PageBigScreenStatisticPartyOrg.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/PageBigScreenStatisticPartyOrg.java
new file mode 100644
index 0000000..3b51b51
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/PageBigScreenStatisticPartyOrg.java
@@ -0,0 +1,37 @@
+package com.panzhihua.common.model.dtos.community.bigscreen;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @ClasssName PageBigScreenStatisticPartyOrg
+ * @Description 党员党支部统计信息分页
+ * @Author cedoo
+ * @Date 2021/6/16
+ * @Version 1.0
+ **/
+@Data
+public class PageBigScreenStatisticPartyOrg {
+    @ApiModelProperty(value = "分页-当前页数,默认1", example = "1", required = true)
+    @NotNull
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数,默认50", example = "10", required = true)
+    @NotNull
+    private Long pageSize = 50L;
+
+    @ApiModelProperty(value = "排序字段, 默认id", hidden = true, example = "id")
+    private String sortBy = "id";
+
+    @ApiModelProperty(value = "排序方式: asc/desc(默认)", hidden = true, example = "desc")
+    @Pattern(regexp = "asc|desc|ASC|DESC")
+    private String order = "desc";
+
+    @ApiModelProperty(value = "社区id", hidden = true, example = "2")
+    // @NotNull(message = "社区id不能为空")
+    private Long communityId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/event/ScreenDrawEventListDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/event/ScreenDrawEventListDTO.java
new file mode 100644
index 0000000..1c6f463
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/event/ScreenDrawEventListDTO.java
@@ -0,0 +1,44 @@
+package com.panzhihua.common.model.dtos.community.bigscreen.event;
+
+import java.util.List;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("大屏事件列表请求参数")
+public class ScreenDrawEventListDTO {
+
+    @ApiModelProperty(value = "最大展示事件数量", example = "100")
+    private Integer count = 100;
+
+    @ApiModelProperty(value = "社区id", example = "2", required = true)
+    @NotNull(message = "社区id不能为空")
+    private Long communityId;
+
+    @ApiModelProperty(value = "多边形类型(1.圆形 2.多边形)")
+    private Integer type;
+
+    @ApiModelProperty(value = "圆心坐标经度")
+    private Double centerLng;
+
+    @ApiModelProperty(value = "圆心坐标纬度")
+    private Double centerLat;
+
+    @ApiModelProperty(value = "圆心半径")
+    private String radius;
+
+    @ApiModelProperty(value = "多边形经纬度列表")
+    private List<ScreenDrawLngLatDTO> lngLatList;
+
+    /**
+     * 多边形类型(1.圆形 2.多边形)
+     */
+    public interface type {
+        int yx = 1;
+        int dbx = 2;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/event/ScreenDrawLngLatDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/event/ScreenDrawLngLatDTO.java
new file mode 100644
index 0000000..7bdff96
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/event/ScreenDrawLngLatDTO.java
@@ -0,0 +1,17 @@
+package com.panzhihua.common.model.dtos.community.bigscreen.event;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("经纬度参数")
+public class ScreenDrawLngLatDTO {
+
+    @ApiModelProperty(value = "经度")
+    private Double lng;
+
+    @ApiModelProperty(value = "纬度")
+    private Double lat;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/event/ScreenEventListDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/event/ScreenEventListDTO.java
new file mode 100644
index 0000000..a60f2d5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/event/ScreenEventListDTO.java
@@ -0,0 +1,61 @@
+package com.panzhihua.common.model.dtos.community.bigscreen.event;
+
+import java.util.List;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("大屏事件列表请求参数")
+public class ScreenEventListDTO {
+
+    @ApiModelProperty(value = "分页每页数量", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "分页当前记录数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "社区id", example = "2", required = true)
+    @NotNull(message = "社区id不能为空")
+    private Long communityId;
+
+    @ApiModelProperty(value = "查询开始时间")
+    private String startTime;
+
+    @ApiModelProperty(value = "查询结束时间")
+    private String endTime;
+
+    @ApiModelProperty(value = "网格id")
+    private List<Long> gridIds;
+
+    @ApiModelProperty(value = "事件类型(1治安隐患、2公共服务、3矛盾纠纷、4不稳定因素、5突发事件、6特殊人群信息上报 8宣传教育)")
+    private List<Integer> eventTypes;
+
+    @ApiModelProperty(value = "事件分类(1、办件事件2、宣传事件3、阅读事件)", hidden = true)
+    private Integer eventCategory = 1;
+
+    @ApiModelProperty(value = "事件处理状态(1待处理、2待验证、3已上报、4已解决、5草稿箱、6已撤销、7已失效 8 已发布)")
+    private Integer eventDealStatus;
+
+    @ApiModelProperty("是否紧急")
+    private Boolean urgent;
+
+    @ApiModelProperty("是否重大")
+    private Boolean major;
+
+    /**
+     * 事件类型(1治安隐患、2公共服务、3矛盾纠纷、4不稳定因素、5突发事件、6特殊人群信息上报 8宣传教育)
+     */
+    public interface eventType {
+        int za = 1;
+        int gg = 2;
+        int md = 3;
+        int bwd = 4;
+        int tf = 5;
+        int ts = 6;
+        int xc = 8;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/work/ScreenActActivityListDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/work/ScreenActActivityListDTO.java
new file mode 100644
index 0000000..d362b1b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/work/ScreenActActivityListDTO.java
@@ -0,0 +1,39 @@
+package com.panzhihua.common.model.dtos.community.bigscreen.work;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("工作大屏一起议列表请求参数")
+public class ScreenActActivityListDTO {
+
+    @ApiModelProperty(value = "分页每页数量", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "分页当前记录数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "社区id", example = "2", required = true)
+    @NotNull(message = "社区id不能为空")
+    private Long communityId;
+
+    @ApiModelProperty(value = "查询开始时间")
+    private String startTime;
+
+    @ApiModelProperty(value = "查询结束时间")
+    private String endTime;
+
+    @ApiModelProperty(value = "活动状态 1 待发布 2 未开始 3 报名中 4 进行中 5 已结束 6 已取消")
+    private Integer type;
+
+    /**
+     * 发布类型 1 图文 2 投票
+     */
+    public interface type {
+        int tw = 1;
+        int tp = 2;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/work/ScreenActActivityPeopleListDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/work/ScreenActActivityPeopleListDTO.java
new file mode 100644
index 0000000..f40b43f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/work/ScreenActActivityPeopleListDTO.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.dtos.community.bigscreen.work;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("工作大屏一起议列表请求参数")
+public class ScreenActActivityPeopleListDTO {
+
+    @ApiModelProperty(value = "分页每页数量", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "分页当前记录数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "活动id", example = "2", required = true)
+    @NotNull(message = "活动id不可为空")
+    private Long activityId;
+
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    @ApiModelProperty(value = "身份证")
+    private String cardNo;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/work/ScreenDiscussListDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/work/ScreenDiscussListDTO.java
new file mode 100644
index 0000000..24e8be7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/work/ScreenDiscussListDTO.java
@@ -0,0 +1,39 @@
+package com.panzhihua.common.model.dtos.community.bigscreen.work;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("工作大屏一起议列表请求参数")
+public class ScreenDiscussListDTO {
+
+    @ApiModelProperty(value = "分页每页数量", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "分页当前记录数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "社区id", example = "2", required = true)
+    @NotNull(message = "社区id不能为空")
+    private Long communityId;
+
+    @ApiModelProperty(value = "查询开始时间")
+    private String startTime;
+
+    @ApiModelProperty(value = "查询结束时间")
+    private String endTime;
+
+    @ApiModelProperty(value = "发布类型 1 图文 2 投票")
+    private Integer type;
+
+    /**
+     * 发布类型 1 图文 2 投票
+     */
+    public interface type {
+        int tw = 1;
+        int tp = 2;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/work/ScreenMicroListDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/work/ScreenMicroListDTO.java
new file mode 100644
index 0000000..3452fb6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/bigscreen/work/ScreenMicroListDTO.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.dtos.community.bigscreen.work;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("工作大屏微心愿列表请求参数")
+public class ScreenMicroListDTO {
+
+    @ApiModelProperty(value = "分页每页数量", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "分页当前记录数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "社区id", example = "2", required = true)
+    @NotNull(message = "社区id不能为空")
+    private Long communityId;
+
+    @ApiModelProperty(value = "查询开始时间")
+    private String startTime;
+
+    @ApiModelProperty(value = "查询结束时间")
+    private String endTime;
+
+    @ApiModelProperty(value = "状态 1待审核  2待分配 3进行中  4已驳回 5待确认6 已完成")
+    private Integer status;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/BuildingDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/BuildingDto.java
new file mode 100644
index 0000000..708dbfe
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/BuildingDto.java
@@ -0,0 +1,14 @@
+package com.panzhihua.common.model.dtos.community.building;
+
+
+import lombok.Data;
+
+@Data
+public class BuildingDto {
+
+    private Long streetId;
+
+    private Integer areaCode;
+
+    private String appId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/AddBuildingHouseDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/AddBuildingHouseDto.java
new file mode 100644
index 0000000..c282adc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/AddBuildingHouseDto.java
@@ -0,0 +1,31 @@
+package com.panzhihua.common.model.dtos.community.building.admin;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * 添加楼栋户室请求参数
+ */
+
+@Data
+@ApiModel("添加楼栋户室请求参数")
+public class AddBuildingHouseDto {
+
+    @ApiModelProperty("楼栋id")
+    private Long id;
+
+    @ApiModelProperty("单元号")
+    private String unitNo;
+
+    @ApiModelProperty("门牌号")
+    private String houseNo;
+
+    @ApiModelProperty("楼层数")
+    private Integer floorNum;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/AddBuildingUnitDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/AddBuildingUnitDto.java
new file mode 100644
index 0000000..765b026
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/AddBuildingUnitDto.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.dtos.community.building.admin;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * 分页查询楼栋列表请求参数
+ */
+
+@Data
+@ApiModel("分页查询楼栋列表请求参数")
+public class AddBuildingUnitDto {
+
+    @ApiModelProperty("楼栋id")
+    private Long id;
+
+    @ApiModelProperty("单元号")
+    private String unitNo;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/DeleteBuildingHousePopulationDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/DeleteBuildingHousePopulationDto.java
new file mode 100644
index 0000000..39cec34
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/DeleteBuildingHousePopulationDto.java
@@ -0,0 +1,36 @@
+package com.panzhihua.common.model.dtos.community.building.admin;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * 删除楼栋户室人员关系请求参数
+ */
+
+@Data
+@ApiModel("删除楼栋户室人员关系请求参数")
+public class DeleteBuildingHousePopulationDto {
+
+    @ApiModelProperty("房屋id")
+    private Long houseId;
+
+    @ApiModelProperty("人员类型(1.业主 2.居住人)")
+    private Integer type;
+
+    @ApiModelProperty("人员id")
+    private Long populationId;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    /**
+     * 人员类型(1.业主 2.居住人)
+     */
+    public interface type{
+        int yz = 1;
+        int jzr = 2;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/EditBuildingHouseDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/EditBuildingHouseDto.java
new file mode 100644
index 0000000..e6e91b6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/EditBuildingHouseDto.java
@@ -0,0 +1,28 @@
+package com.panzhihua.common.model.dtos.community.building.admin;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * 修改楼栋户室请求参数
+ */
+
+@Data
+@ApiModel("修改楼栋户室请求参数")
+public class EditBuildingHouseDto {
+
+    @ApiModelProperty("房屋id")
+    private Long houseId;
+
+    @ApiModelProperty("门牌号")
+    private String houseNo;
+
+    @ApiModelProperty("楼层数")
+    private Integer floorNum;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/EditBuildingUnitDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/EditBuildingUnitDto.java
new file mode 100644
index 0000000..f86c86c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/EditBuildingUnitDto.java
@@ -0,0 +1,28 @@
+package com.panzhihua.common.model.dtos.community.building.admin;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * 分页查询楼栋列表请求参数
+ */
+
+@Data
+@ApiModel("分页查询楼栋列表请求参数")
+public class EditBuildingUnitDto {
+
+    @ApiModelProperty("楼栋id")
+    private Long id;
+
+    @ApiModelProperty("原单元号")
+    private String oldUnitNo;
+
+    @ApiModelProperty("新单元号")
+    private String newUnitNo;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/PageBuildingListDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/PageBuildingListDto.java
new file mode 100644
index 0000000..41c02d2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/PageBuildingListDto.java
@@ -0,0 +1,30 @@
+package com.panzhihua.common.model.dtos.community.building.admin;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * 分页查询楼栋列表请求参数
+ */
+
+@Data
+@ApiModel("分页查询楼栋列表请求参数")
+public class PageBuildingListDto {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty("关键词")
+    private String keyWord;
+
+    @ApiModelProperty("小区id")
+    private Long villageId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/PageBuildingUnitHouseListDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/PageBuildingUnitHouseListDto.java
new file mode 100644
index 0000000..27830c4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/building/admin/PageBuildingUnitHouseListDto.java
@@ -0,0 +1,34 @@
+package com.panzhihua.common.model.dtos.community.building.admin;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * 分页查询楼栋单元下房屋列表请求参数
+ */
+
+@Data
+@ApiModel("分页查询楼栋单元下房屋列表请求参数")
+public class PageBuildingUnitHouseListDto {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty("单元号")
+    private String unit;
+
+    @ApiModelProperty("楼栋id")
+    private Long id;
+
+    private Long villageId;
+
+    private String floor;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/cluster/PageClusterMemberDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/cluster/PageClusterMemberDto.java
new file mode 100644
index 0000000..cf80070
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/cluster/PageClusterMemberDto.java
@@ -0,0 +1,29 @@
+package com.panzhihua.common.model.dtos.community.cluster;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * 分页查询群团组织成员列表请求参数
+ */
+@Data
+@ApiModel("分页查询群团组织成员列表请求参数")
+public class PageClusterMemberDto {
+
+    @ApiModelProperty(value = "社区id",hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "分页-当前页数",example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数",example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+    @ApiModelProperty(value = "群团组织id")
+    private Long clusterId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/cluster/admin/AddClusterAdminDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/cluster/admin/AddClusterAdminDto.java
new file mode 100644
index 0000000..e77ea00
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/cluster/admin/AddClusterAdminDto.java
@@ -0,0 +1,38 @@
+package com.panzhihua.common.model.dtos.community.cluster.admin;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * 分页查询群团组织成员列表请求参数
+ */
+@Data
+@ApiModel("分页查询群团组织列表请求参数")
+public class AddClusterAdminDto {
+
+    @ApiModelProperty(value = "社区id",hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "组织名")
+    private String name;
+
+    @ApiModelProperty(value = "组织电话")
+    private String phone;
+
+    @ApiModelProperty(value = "组织地址")
+    private String address;
+
+    @ApiModelProperty(value = "状态(1.启用  2.禁用)")
+    private Integer status;
+
+    @ApiModelProperty(value = "组织logo")
+    private String logo;
+
+    @ApiModelProperty(value = "经度")
+    private String lng;
+
+    @ApiModelProperty(value = "纬度")
+    private String lat;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/cluster/admin/AddClusterMemberAdminDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/cluster/admin/AddClusterMemberAdminDto.java
new file mode 100644
index 0000000..e66ea79
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/cluster/admin/AddClusterMemberAdminDto.java
@@ -0,0 +1,44 @@
+package com.panzhihua.common.model.dtos.community.cluster.admin;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * 分页查询群团组织成员列表请求参数
+ */
+@Data
+@ApiModel("分页查询群团组织列表请求参数")
+public class AddClusterMemberAdminDto {
+
+    @ApiModelProperty(value = "社区id",hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty("群团组织成员名称")
+    private String name;
+
+    @ApiModelProperty("群团组织成员照片")
+    private String imageUrl;
+
+    @ApiModelProperty("群团组织成员职务")
+    private String job;
+
+    @ApiModelProperty("群团组织成员电话")
+    private String phone;
+
+    @ApiModelProperty("群团组织成员住址")
+    private String address;
+
+    @ApiModelProperty("群团组织成员身份证号码")
+    private String idCard;
+
+    @ApiModelProperty("所属群团组织id")
+    private Long clusterId;
+
+    @ApiModelProperty("状态(1.启用  2禁用)")
+    private Integer status;
+
+    @ApiModelProperty("民族code")
+    private String nationCode;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/cluster/admin/EditClusterAdminDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/cluster/admin/EditClusterAdminDto.java
new file mode 100644
index 0000000..b30b2b7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/cluster/admin/EditClusterAdminDto.java
@@ -0,0 +1,41 @@
+package com.panzhihua.common.model.dtos.community.cluster.admin;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * 分页查询群团组织成员列表请求参数
+ */
+@Data
+@ApiModel("分页查询群团组织列表请求参数")
+public class EditClusterAdminDto {
+
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+
+    @ApiModelProperty(value = "组织名")
+    private String name;
+
+    @ApiModelProperty(value = "组织电话")
+    private String phone;
+
+    @ApiModelProperty(value = "组织地址")
+    private String address;
+
+    @ApiModelProperty(value = "状态(1.启用  2.禁用)")
+    private Integer status;
+
+    @ApiModelProperty(value = "组织logo")
+    private String logo;
+
+    @ApiModelProperty(value = "社区id",hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "经度")
+    private String lng;
+
+    @ApiModelProperty(value = "纬度")
+    private String lat;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/cluster/admin/EditClusterMemberAdminDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/cluster/admin/EditClusterMemberAdminDto.java
new file mode 100644
index 0000000..868afe7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/cluster/admin/EditClusterMemberAdminDto.java
@@ -0,0 +1,47 @@
+package com.panzhihua.common.model.dtos.community.cluster.admin;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * 分页查询群团组织成员列表请求参数
+ */
+@Data
+@ApiModel("分页查询群团组织列表请求参数")
+public class EditClusterMemberAdminDto {
+
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+
+    @ApiModelProperty(value = "社区id",hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty("群团组织成员名称")
+    private String name;
+
+    @ApiModelProperty("群团组织成员照片")
+    private String imageUrl;
+
+    @ApiModelProperty("群团组织成员职务")
+    private String job;
+
+    @ApiModelProperty("群团组织成员电话")
+    private String phone;
+
+    @ApiModelProperty("群团组织成员住址")
+    private String address;
+
+    @ApiModelProperty("群团组织成员身份证号码")
+    private String idCard;
+
+    @ApiModelProperty("所属群团组织id")
+    private Long clusterId;
+
+    @ApiModelProperty("状态(1.启用  2禁用)")
+    private Integer status;
+
+    @ApiModelProperty("民族code")
+    private String nationCode;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/cluster/admin/PageClusterAdminDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/cluster/admin/PageClusterAdminDto.java
new file mode 100644
index 0000000..d1ab2e0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/cluster/admin/PageClusterAdminDto.java
@@ -0,0 +1,29 @@
+package com.panzhihua.common.model.dtos.community.cluster.admin;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * 分页查询群团组织成员列表请求参数
+ */
+@Data
+@ApiModel("分页查询群团组织列表请求参数")
+public class PageClusterAdminDto {
+
+    @ApiModelProperty(value = "社区id",hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "分页-当前页数",example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数",example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+    @ApiModelProperty(value = "状态(1.启用  2.禁用)")
+    private Integer status;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/cluster/admin/PageClusterMemberAdminDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/cluster/admin/PageClusterMemberAdminDto.java
new file mode 100644
index 0000000..b49ae88
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/cluster/admin/PageClusterMemberAdminDto.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.dtos.community.cluster.admin;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * 分页查询群团组织成员列表请求参数
+ */
+@Data
+@ApiModel("分页查询群团组织成员列表请求参数")
+public class PageClusterMemberAdminDto {
+
+    @ApiModelProperty(value = "社区id",hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "分页-当前页数",example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数",example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+    @ApiModelProperty(value = "状态(1.启用  2.禁用)")
+    private Integer status;
+
+    @ApiModelProperty(value = "群团组织id")
+    private Long clusterId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/ConvenientElevatingPointDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/ConvenientElevatingPointDTO.java
new file mode 100644
index 0000000..3cbd305
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/ConvenientElevatingPointDTO.java
@@ -0,0 +1,75 @@
+package com.panzhihua.common.model.dtos.community.convenient;
+
+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;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * @ClassName: ConvenientElevatingPointDTO
+ * @Author: yh
+ * @Date: 2022/11/8 10:10
+ * @Description: 新增/编辑便民服务自提点
+ */
+@Data
+@ApiModel("新增/编辑便民服务自提点")
+public class ConvenientElevatingPointDTO {
+
+    @ApiModelProperty("自提点ID")
+    @NotNull(groups = {PutGroup.class}, message = "自提点ID不能为空")
+    private Long id;
+
+    @ApiModelProperty("自提点名称")
+    @NotBlank(groups = {AddGroup.class}, message = "自提点名称不能为空")
+    @Length(groups = {AddGroup.class}, max = 30, message = "自提点名称最多支持30个字符")
+    private String name;
+
+    @ApiModelProperty("联系人")
+    @NotBlank(groups = {AddGroup.class}, message = "联系人不能为空")
+    private String contacts;
+
+
+    @ApiModelProperty("联系电话")
+    @NotBlank(groups = {AddGroup.class}, message = "联系电话不能为空")
+    private String phone;
+
+    @ApiModelProperty("微信账号")
+    @NotBlank(groups = {AddGroup.class}, message = "微信账号不能为空")
+    private String wechatAccount;
+
+    @ApiModelProperty("详细地址")
+    @NotBlank(groups = {AddGroup.class}, message = "详细地址不能为空")
+    private String address;
+
+    @ApiModelProperty("纬度")
+    @NotBlank(groups = {AddGroup.class}, message = "纬度不能为空")
+    private String lat;
+
+    @ApiModelProperty("经度")
+    @NotBlank(groups = {AddGroup.class}, message = "经度不能为空")
+    private String lon;
+
+
+    @ApiModelProperty("状态,1.显示 2.隐藏")
+    @NotNull(groups = {AddGroup.class}, message = "状态不能为空")
+    private Integer businessStatus;
+
+
+    @ApiModelProperty(value = "所属社区id")
+    @NotNull(groups = {AddGroup.class}, message = "所属社区id不能为空")
+    private String communityId;
+
+    @ApiModelProperty(value = "创建人", hidden = true)
+    private Long createdBy;
+
+    @ApiModelProperty(value = "更新人", hidden = true)
+    private Long updatedBy;
+
+    @ApiModelProperty(value = "提货点详细地址")
+    private String detailAddress;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/ConvenientGoodsCategoryDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/ConvenientGoodsCategoryDTO.java
new file mode 100644
index 0000000..63f38ce
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/ConvenientGoodsCategoryDTO.java
@@ -0,0 +1,46 @@
+package com.panzhihua.common.model.dtos.community.convenient;
+
+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;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * @title: ConvenientGoodsCategoryDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 新增/编辑商品务分类
+ * @author: yh
+ * @date: 2022-10-21 09:36:09
+ */
+@Data
+@ApiModel("新增/编辑商品务分类")
+public class ConvenientGoodsCategoryDTO {
+
+    @ApiModelProperty("分类ID")
+    @NotNull(groups = {PutGroup.class}, message = "分类id不能为空")
+    private Long id;
+
+    @ApiModelProperty("分类名称")
+    @NotBlank(groups = {AddGroup.class}, message = "分类名称不能为空")
+    private String name;
+
+
+    @ApiModelProperty("备注")
+    private String remark;
+
+    @ApiModelProperty("权重")
+    @NotNull(groups = {AddGroup.class}, message = "权重不能为空")
+    private Integer weight;
+
+    @ApiModelProperty(value = "创建人", hidden = true)
+    private Long createdBy;
+
+    @ApiModelProperty(value = "更新人", hidden = true)
+    private Long updatedBy;
+
+    private String areaCode;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/ConvenientMerchantDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/ConvenientMerchantDTO.java
new file mode 100644
index 0000000..c711b1d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/ConvenientMerchantDTO.java
@@ -0,0 +1,140 @@
+package com.panzhihua.common.model.dtos.community.convenient;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+import javax.validation.constraints.Size;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.panzhihua.common.enums.MerchantBusinessPeriod;
+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;
+
+/**
+ * @title: ConvenientMerchantDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 新增/编辑便民服务商家
+ * @author: hans
+ * @date: 2021/09/15 17:18
+ */
+@Data
+@ApiModel("新增/编辑便民服务商家")
+public class ConvenientMerchantDTO {
+
+    @ApiModelProperty("便民服务商家ID")
+    @NotNull(groups = {PutGroup.class}, message = "便民服务商家ID不能为空")
+    private Long id;
+
+    @ApiModelProperty("商家名称")
+    @NotBlank(groups = {AddGroup.class}, message = "商家名称不能为空")
+    @Length(groups = {AddGroup.class}, max = 25, message = "商家名称最多支持25个字符")
+    private String name;
+
+    @ApiModelProperty("商家logo")
+    private String logo;
+
+    @ApiModelProperty("联系人")
+    @NotBlank(groups = {AddGroup.class}, message = "联系人不能为空")
+    private String contacts;
+
+    @ApiModelProperty("负责人身份证号")
+    @Pattern(groups = {AddGroup.class}, message = "请输入18位有效身份证号码", regexp = "(^\\d{18}$)|(^\\d{17}(\\d|X|x)$)")
+    private String idCard;
+
+    @ApiModelProperty("咨询电话")
+    private String phone;
+
+    @ApiModelProperty("商家地址")
+    @NotBlank(groups = {AddGroup.class}, message = "商家地址不能为空")
+    private String address;
+
+    @ApiModelProperty("纬度")
+    @NotBlank(groups = {AddGroup.class}, message = "纬度不能为空")
+    private String lat;
+
+    @ApiModelProperty("经度")
+    @NotBlank(groups = {AddGroup.class}, message = "经度不能为空")
+    private String lon;
+
+    @ApiModelProperty("营业开始时间")
+    @JsonFormat(pattern = "HH:mm:ss", timezone = "GMT+8")
+    @NotNull(groups = {AddGroup.class}, message = "营业开始时间不能为空")
+    private Date beginAt;
+
+    @ApiModelProperty("营业截至时间")
+    @JsonFormat(pattern = "HH:mm:ss", timezone = "GMT+8")
+    @NotNull(groups = {AddGroup.class}, message = "营业截至时间不能为空")
+    private Date endAt;
+
+    @ApiModelProperty(value = "营业周期", allowableValues = "EVERY_DAY,WEEKDAY,WEEKEND")
+    @NotNull(groups = {AddGroup.class}, message = "营业周期不能为空")
+    private MerchantBusinessPeriod period;
+
+    @ApiModelProperty("商家介绍")
+    @Size(max = 100)
+    private String introduction;
+
+    @ApiModelProperty("服务范围")
+    @NotEmpty(groups = {AddGroup.class}, message = "服务范围不能为空")
+    private List<Long> serviceIds;
+
+    @ApiModelProperty("是否营业中,1.在营 0.已关闭")
+    @NotNull(groups = {AddGroup.class}, message = "是否营业不能为空")
+    private Integer businessStatus;
+
+    @ApiModelProperty("管理账号")
+    @NotBlank(groups = {AddGroup.class}, message = "管理账号不能为空")
+    private String account;
+
+    @ApiModelProperty("登陆密码")
+    @Pattern(groups = {AddGroup.class}, message = "请输入8-12位登陆密码,由英文,数字和特殊符号组成",
+            regexp = "^(?=.*[A-Za-z])(?=(.*[\\d]){1,})(?=(.*[\\W]){1,})(?!.*\\s).{8,12}$")
+    private String password;
+
+    @ApiModelProperty(value = "所属社区id")
+    @NotNull(groups = {AddGroup.class}, message = "所属社区id不能为空")
+    private Long communityId;
+
+    @ApiModelProperty(value = "创建人", hidden = true)
+    private Long createdBy;
+
+    @ApiModelProperty(value = "更新人", hidden = true)
+    private Long updatedBy;
+
+    private String areaCode;
+
+    @ApiModelProperty("服务范围")
+    private Integer serviceRange;
+
+    @ApiModelProperty("微信手机号")
+    private String mobilePhone;
+
+    @ApiModelProperty("详细地址")
+    private String detailedAddress;
+
+    public String getPeriod() {
+        return period.name();
+    }
+
+    public void setPeriod(MerchantBusinessPeriod period) {
+        this.period = period;
+    }
+
+    public Boolean getBusinessStatus() {
+        return businessStatus.intValue() == 1;
+    }
+
+    public void setBusinessStatus(Boolean businessStatus) {
+        this.businessStatus = businessStatus ? 1 : 0;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/ConvenientProductCategoryDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/ConvenientProductCategoryDTO.java
new file mode 100644
index 0000000..79e9d62
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/ConvenientProductCategoryDTO.java
@@ -0,0 +1,46 @@
+package com.panzhihua.common.model.dtos.community.convenient;
+
+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;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+/**
+ * @title: ConvenientProductCategoryDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 新增/编辑产品分类
+ * @author: hans
+ * @date: 2021/09/20 10:32
+ */
+@Data
+@ApiModel("新增/编辑产品分类")
+public class ConvenientProductCategoryDTO {
+
+    @ApiModelProperty("分类ID")
+    @NotNull(groups = {PutGroup.class}, message = "分类id不能为空")
+    private Long id;
+
+    @ApiModelProperty("分类名称")
+    @NotBlank(groups = {AddGroup.class}, message = "分类名称不能为空")
+    private String name;
+
+    @ApiModelProperty("备注")
+    private String remark;
+
+    @ApiModelProperty("权重")
+    @NotNull(groups = {AddGroup.class}, message = "权重不能为空")
+    private Integer weight;
+
+    @ApiModelProperty(value = "创建人", hidden = true)
+    private Long createdBy;
+
+    @ApiModelProperty(value = "更新人", hidden = true)
+    private Long updatedBy;
+
+    @ApiModelProperty(value = "商家id", hidden = true)
+    private Long merchantId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/ConvenientProductDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/ConvenientProductDTO.java
new file mode 100644
index 0000000..7cf95ec
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/ConvenientProductDTO.java
@@ -0,0 +1,66 @@
+package com.panzhihua.common.model.dtos.community.convenient;
+
+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;
+import org.hibernate.validator.constraints.Length;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+ * @title: ConvenientProductDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 新增/编辑便民服务商家后台产品
+ * @author: hans
+ * @date: 2021/09/20 20:32
+ */
+@Data
+@ApiModel("新增/编辑便民服务商家后台产品")
+public class ConvenientProductDTO {
+
+    @ApiModelProperty("产品ID")
+    @NotNull(groups = {PutGroup.class}, message = "产品ID不能为空")
+    private Long id;
+
+    @ApiModelProperty("产品名称")
+    @NotBlank(groups = {AddGroup.class}, message = "产品名称不能为空")
+    @Length(groups = {AddGroup.class}, max = 20, message = "产品名称最多支持20个字符")
+    private String name;
+
+    @ApiModelProperty("产品介绍")
+    private String introduction;
+
+    @ApiModelProperty("所属分类")
+    @NotNull(groups = {AddGroup.class}, message = "所属分类不能为空")
+    private Long categoryId;
+
+    @ApiModelProperty("产品规格")
+    @NotEmpty(groups = {AddGroup.class}, message = "产品规格不能为空")
+    private List<ConvenientProductSpecificationDTO> productSpecificationDTOList;
+
+    @ApiModelProperty("上架状态,1.上架 0.下架")
+    @NotNull(groups = {AddGroup.class}, message = "上架状态不能为空")
+    private Integer onShelf;
+
+    @ApiModelProperty(value = "创建人", hidden = true)
+    private Long createdBy;
+
+    @ApiModelProperty(value = "更新人", hidden = true)
+    private Long updatedBy;
+
+    @ApiModelProperty(value = "所属商家", hidden = true)
+    private Long merchantId;
+
+    public Boolean getOnShelf() {
+        return onShelf.intValue() == 1;
+    }
+
+    public void setOnShelf(Boolean onShelf) {
+        this.onShelf = onShelf ? 1 : 0;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/ConvenientProductSpecificationDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/ConvenientProductSpecificationDTO.java
new file mode 100644
index 0000000..4b9d1fe
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/ConvenientProductSpecificationDTO.java
@@ -0,0 +1,48 @@
+package com.panzhihua.common.model.dtos.community.convenient;
+
+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;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+
+/**
+ * @title: ConvenientProductSpecificationDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 新增/编辑产品规格信息
+ * @author: hans
+ * @date: 2021/09/20 20:46
+ */
+@Data
+@ApiModel("新增/编辑产品规格信息")
+public class ConvenientProductSpecificationDTO {
+
+    @ApiModelProperty("规格ID")
+    @NotNull(message = "规格ID不能为空", groups = {PutGroup.class})
+    private Long id;
+
+    @ApiModelProperty("规格名称")
+    @NotBlank(message = "规格名称不能为空", groups = {AddGroup.class})
+    @Max(6)
+    private String name;
+
+    @ApiModelProperty("价格")
+    @NotNull(message = "价格不能为空", groups = {AddGroup.class})
+    @Min(0)
+    private BigDecimal price;
+
+    @ApiModelProperty("产品图片")
+    private String image;
+
+    @ApiModelProperty(value = "创建人", hidden = true)
+    private Long createdBy;
+
+    @ApiModelProperty(value = "更新人", hidden = true)
+    private Long updatedBy;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/ConvenientServiceCategoryDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/ConvenientServiceCategoryDTO.java
new file mode 100644
index 0000000..336d1f9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/ConvenientServiceCategoryDTO.java
@@ -0,0 +1,50 @@
+package com.panzhihua.common.model.dtos.community.convenient;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+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;
+
+/**
+ * @title: ConvenientServiceCategoryDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 新增/编辑便民服务分类
+ * @author: hans
+ * @date: 2021/09/16 9:49
+ */
+@Data
+@ApiModel("新增/编辑便民服务分类")
+public class ConvenientServiceCategoryDTO {
+
+    @ApiModelProperty("分类ID")
+    @NotNull(groups = {PutGroup.class}, message = "分类id不能为空")
+    private Long id;
+
+    @ApiModelProperty("分类名称")
+    @NotBlank(groups = {AddGroup.class}, message = "分类名称不能为空")
+    private String name;
+
+    @ApiModelProperty("分类图标")
+    @NotBlank(groups = {AddGroup.class}, message = "分类图标不能为空")
+    private String icon;
+
+    @ApiModelProperty("备注")
+    private String remark;
+
+    @ApiModelProperty("权重")
+    @NotNull(groups = {AddGroup.class}, message = "权重不能为空")
+    private Integer weight;
+
+    @ApiModelProperty(value = "创建人", hidden = true)
+    private Long createdBy;
+
+    @ApiModelProperty(value = "更新人", hidden = true)
+    private Long updatedBy;
+
+    private String areaCode;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/DeleteConvenientProductDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/DeleteConvenientProductDTO.java
new file mode 100644
index 0000000..30fb339
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/DeleteConvenientProductDTO.java
@@ -0,0 +1,27 @@
+package com.panzhihua.common.model.dtos.community.convenient;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+import java.util.List;
+
+/**
+ * @title: DeleteConvenientProductDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 删除便民服务商家后台产品请求参数
+ * @author: hans
+ * @date: 2021/09/21 16:25
+ */
+@Data
+@ApiModel("删除便民服务商家后台产品请求参数")
+public class DeleteConvenientProductDTO {
+
+    @ApiModelProperty(value = "需要删除的产品id集合", required = true)
+    @NotEmpty(message = "产品id不能为空")
+    private List<Long> ids;
+
+    @ApiModelProperty(value = "处理人", hidden = true)
+    private Long updatedBy;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/DisableOrEnableConvenientMerchantDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/DisableOrEnableConvenientMerchantDTO.java
new file mode 100644
index 0000000..54cca2b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/DisableOrEnableConvenientMerchantDTO.java
@@ -0,0 +1,36 @@
+package com.panzhihua.common.model.dtos.community.convenient;
+
+import java.util.List;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: DisableOrEnableConvenientMerchantDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 禁用/启用便民服务商家请求参数
+ * @author: hans
+ * @date: 2021/09/16 15:34
+ */
+@Data
+@ApiModel("禁用/启用便民服务商家请求参数")
+public class DisableOrEnableConvenientMerchantDTO {
+
+    @ApiModelProperty(value = "处理类型(1.启用 2.禁用)", required = true, allowableValues = "1,2")
+    @NotNull(message = "处理类型不能为空")
+    private Integer type;
+
+    @ApiModelProperty(value = "需要处理的id集合", required = true)
+    @NotEmpty(message = "处理id不能为空")
+    private List<Long> ids;
+
+    @ApiModelProperty(value = "处理人", hidden = true)
+    private Long updatedBy;
+
+    @ApiModelProperty(value = "被禁用商家关联用户id", hidden = true)
+    private List<Long> userIds;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/ExportMerchantDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/ExportMerchantDTO.java
new file mode 100644
index 0000000..3ab9804
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/ExportMerchantDTO.java
@@ -0,0 +1,37 @@
+package com.panzhihua.common.model.dtos.community.convenient;
+
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: ExportMerchantDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 商家导出请求参数
+ * @author: hans
+ * @date: 2021/09/23 15:23
+ */
+@Data
+@ApiModel("商家导出请求参数")
+public class ExportMerchantDTO {
+
+    @ApiModelProperty(value = "批量勾选时传参数组")
+    private List<Long> ids;
+
+    @ApiModelProperty("关键词")
+    private String keyword;
+
+    @ApiModelProperty("服务分类id")
+    private Long serviceId;
+
+    @ApiModelProperty("营业状态(1.在营 0.已关闭)")
+    private Integer businessStatus;
+
+    @ApiModelProperty("账号状态(1.启用 2.禁用)")
+    private Integer accountStatus;
+
+    @ApiModelProperty(value = "服务分类id", hidden = true)
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/JinhuiPageConvenientMerchantDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/JinhuiPageConvenientMerchantDTO.java
new file mode 100644
index 0000000..1d7a901
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/JinhuiPageConvenientMerchantDTO.java
@@ -0,0 +1,49 @@
+package com.panzhihua.common.model.dtos.community.convenient;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+
+/**
+ * @title: PageConvenientMerchantDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 分页查询便民服务商家请求参数
+ * @author: hans
+ * @date: 2021/09/16 15:03
+ */
+@Data
+@ApiModel("分页查询便民服务商家请求参数")
+public class JinhuiPageConvenientMerchantDTO {
+
+    @ApiModelProperty("关键词")
+    private String keyword;
+
+    @ApiModelProperty("社区id")
+    private String communityId;
+
+    @ApiModelProperty("服务分类id")
+    private String convenientType;
+
+    @ApiModelProperty("营业状态(1.在营 0.已关闭)")
+    private Integer businessStatus;
+
+    @ApiModelProperty("账号状态(1.启用 2.禁用)")
+    private Integer accountStatus;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    @NotNull(message = "分页参数不能为空")
+    @Min(value = 1)
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    @NotNull(message = "分页参数不能为空")
+    @Min(value = 1)
+    private Long pageSize;
+
+    private String areaCode;
+
+    private String auditType;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/OnShelfOrOffShelfProductDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/OnShelfOrOffShelfProductDTO.java
new file mode 100644
index 0000000..da97622
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/OnShelfOrOffShelfProductDTO.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.dtos.community.convenient;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+/**
+ * @title: OnShelfOrOffShelfProductDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 上架/下架便民服务商家后台产品请求参数
+ * @author: hans
+ * @date: 2021/09/21 16:42
+ */
+@Data
+@ApiModel("上架/下架便民服务商家后台产品请求参数")
+public class OnShelfOrOffShelfProductDTO {
+
+    @ApiModelProperty(value = "处理类型(1.上架 2.下架)", required = true, allowableValues = "1,2")
+    @NotNull(message = "处理类型不能为空")
+    private Integer type;
+
+    @ApiModelProperty(value = "需要上架/下架的产品id集合", required = true)
+    @NotEmpty(message = "需要上架/下架的产品id不能为空")
+    private List<Long> ids;
+
+    @ApiModelProperty(value = "处理人", hidden = true)
+    private Long updatedBy;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/PageClassifyMerchantDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/PageClassifyMerchantDTO.java
new file mode 100644
index 0000000..cb9e141
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/PageClassifyMerchantDTO.java
@@ -0,0 +1,43 @@
+package com.panzhihua.common.model.dtos.community.convenient;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: PageClassifyMerchantDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 分页获取服务类型下商家信息请求参数
+ * @author: hans
+ * @date: 2021/09/22 16:45
+ */
+@Data
+@ApiModel("分页获取服务类型下商家信息请求参数")
+public class PageClassifyMerchantDTO {
+
+    @ApiModelProperty(value = "商家服务分类id")
+    @NotNull(message = "商家服务分类id不能为空")
+    @Min(value = 1)
+    private Long serviceId;
+
+    @ApiModelProperty(value = "社区id")
+    @NotNull(message = "社区id不能为空")
+    @Min(value = 1)
+    private Long communityId;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    @NotNull(message = "分页参数不能为空")
+    @Min(value = 1)
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    @NotNull(message = "分页参数不能为空")
+    @Min(value = 1)
+    private Long pageSize;
+
+    private String areaCode;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/PageConvenientElevatingPointDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/PageConvenientElevatingPointDTO.java
new file mode 100644
index 0000000..892f83b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/PageConvenientElevatingPointDTO.java
@@ -0,0 +1,41 @@
+package com.panzhihua.common.model.dtos.community.convenient;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+
+/**
+ * @title: PageConvenientElevatingPointDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 分页查询便民服务自提点请求参数
+ * @author: yh
+ * @date: 2022-10-21 09:36:09
+ */
+@Data
+@ApiModel("分页查询便民服务自提点请求参数")
+public class PageConvenientElevatingPointDTO {
+
+    @ApiModelProperty("关键词")
+    private String keyword;
+
+    @ApiModelProperty("社区id")
+    private Long communityId;
+
+
+    @ApiModelProperty("营业状态(1.显示 2.隐藏)")
+    private Integer businessStatus;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    @NotNull(message = "分页参数不能为空")
+    @Min(value = 1)
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    @NotNull(message = "分页参数不能为空")
+    @Min(value = 1)
+    private Long pageSize;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/PageConvenientGoodsCategoryDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/PageConvenientGoodsCategoryDTO.java
new file mode 100644
index 0000000..4cc558f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/PageConvenientGoodsCategoryDTO.java
@@ -0,0 +1,28 @@
+package com.panzhihua.common.model.dtos.community.convenient;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: PageConvenientGoodsCategoryDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 分页查询商品分类请求参数
+ * @author: yh
+ * @date: 2022-10-21 09:36:09
+ */
+@Data
+@ApiModel("分页查询商品分类请求参数")
+public class PageConvenientGoodsCategoryDTO {
+
+    @ApiModelProperty("分类名称")
+    private String name;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize;
+
+    private String areaCode;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/PageConvenientMerchantDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/PageConvenientMerchantDTO.java
new file mode 100644
index 0000000..dc68734
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/PageConvenientMerchantDTO.java
@@ -0,0 +1,47 @@
+package com.panzhihua.common.model.dtos.community.convenient;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: PageConvenientMerchantDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 分页查询便民服务商家请求参数
+ * @author: hans
+ * @date: 2021/09/16 15:03
+ */
+@Data
+@ApiModel("分页查询便民服务商家请求参数")
+public class PageConvenientMerchantDTO {
+
+    @ApiModelProperty("关键词")
+    private String keyword;
+
+    @ApiModelProperty("社区id")
+    private Long communityId;
+
+    @ApiModelProperty("服务分类id")
+    private Long serviceId;
+
+    @ApiModelProperty("营业状态(1.在营 0.已关闭)")
+    private Integer businessStatus;
+
+    @ApiModelProperty("账号状态(1.启用 2.禁用)")
+    private Integer accountStatus;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    @NotNull(message = "分页参数不能为空")
+    @Min(value = 1)
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    @NotNull(message = "分页参数不能为空")
+    @Min(value = 1)
+    private Long pageSize;
+
+    private String areaCode;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/PageConvenientProductCategoryDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/PageConvenientProductCategoryDTO.java
new file mode 100644
index 0000000..c6f7c30
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/PageConvenientProductCategoryDTO.java
@@ -0,0 +1,29 @@
+package com.panzhihua.common.model.dtos.community.convenient;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: PageConvenientProductCategoryDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 分页查询产品分类请求参数
+ * @author: hans
+ * @date: 2021/09/20 15:23
+ */
+@Data
+@ApiModel("分页查询产品分类请求参数")
+public class PageConvenientProductCategoryDTO {
+
+    @ApiModelProperty("分类名称")
+    private String name;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize;
+
+    @ApiModelProperty(value = "商家id", hidden = true)
+    private Long merchantId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/PageConvenientProductDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/PageConvenientProductDTO.java
new file mode 100644
index 0000000..eb223b8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/PageConvenientProductDTO.java
@@ -0,0 +1,42 @@
+package com.panzhihua.common.model.dtos.community.convenient;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+
+/**
+ * @title: PageConvenientProductDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 分页查询便民服务商家后台产品信息请求参数
+ * @author: hans
+ * @date: 2021/09/21 16:12
+ */
+@Data
+@ApiModel("分页查询便民服务商家后台产品信息请求参数")
+public class PageConvenientProductDTO {
+
+    @ApiModelProperty("产品名称")
+    private String name;
+
+    @ApiModelProperty("产品分类id")
+    private Long categoryId;
+
+    @ApiModelProperty("上架状态(1.已上架 0.已下架)")
+    private Integer onShelf;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    @NotNull(message = "分页参数不能为空")
+    @Min(value = 1)
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    @NotNull(message = "分页参数不能为空")
+    @Min(value = 1)
+    private Long pageSize;
+
+    @ApiModelProperty(value = "所属商家", hidden = true)
+    private Long merchantId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/PageConvenientServiceCategoryDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/PageConvenientServiceCategoryDTO.java
new file mode 100644
index 0000000..b6d064a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/PageConvenientServiceCategoryDTO.java
@@ -0,0 +1,28 @@
+package com.panzhihua.common.model.dtos.community.convenient;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: PageConvenientServiceCategoryDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 分页查询便民服务分类请求参数
+ * @author: hans
+ * @date: 2021/09/16 10:16
+ */
+@Data
+@ApiModel("分页查询便民服务分类请求参数")
+public class PageConvenientServiceCategoryDTO {
+
+    @ApiModelProperty("分类名称")
+    private String name;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize;
+
+    private String areaCode;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/PagePopularMerchantDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/PagePopularMerchantDTO.java
new file mode 100644
index 0000000..bf940cc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/PagePopularMerchantDTO.java
@@ -0,0 +1,38 @@
+package com.panzhihua.common.model.dtos.community.convenient;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: PagePopularMerchantDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 分页查询热门商家请求参数
+ * @author: hans
+ * @date: 2021/09/22 16:29
+ */
+@Data
+@ApiModel("分页查询热门商家请求参数")
+public class PagePopularMerchantDTO {
+
+    @ApiModelProperty(value = "社区id")
+    @NotNull(message = "社区id不能为空")
+    @Min(value = 1)
+    private Long communityId;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    @NotNull(message = "分页参数不能为空")
+    @Min(value = 1)
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    @NotNull(message = "分页参数不能为空")
+    @Min(value = 1)
+    private Long pageSize;
+
+    private String areaCode;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/PageSearchDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/PageSearchDTO.java
new file mode 100644
index 0000000..65f0bfe
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/PageSearchDTO.java
@@ -0,0 +1,40 @@
+package com.panzhihua.common.model.dtos.community.convenient;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: PageSearchMerchantDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 分页搜索商家/商品信息请求参数
+ * @author: hans
+ * @date: 2021/09/23 12:34
+ */
+@Data
+@ApiModel("分页搜索商家/商品信息请求参数")
+public class PageSearchDTO {
+
+    @ApiModelProperty(value = "关键词")
+    @NotBlank(message = "关键词不能为空")
+    private String keyword;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    @NotNull(message = "分页参数不能为空")
+    @Min(value = 1)
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    @NotNull(message = "分页参数不能为空")
+    @Min(value = 1)
+    private Long pageSize;
+
+    @ApiModelProperty(value = "社区id")
+    @NotNull(message = "社区id不能为空")
+    @Min(value = 1)
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/ResetPasswordConvenientMerchantDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/ResetPasswordConvenientMerchantDTO.java
new file mode 100644
index 0000000..c7952d4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/convenient/ResetPasswordConvenientMerchantDTO.java
@@ -0,0 +1,36 @@
+package com.panzhihua.common.model.dtos.community.convenient;
+
+import java.util.List;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.Pattern;
+
+import com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: ResetPasswordConvenientMerchantDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 重置便民服务商家账号密码请求参数
+ * @author: hans
+ * @date: 2021/09/16 15:47
+ */
+@Data
+@ApiModel("重置便民服务商家账号密码请求参数")
+public class ResetPasswordConvenientMerchantDTO {
+
+    @ApiModelProperty(value = "需要处理的id集合", required = true)
+    @NotEmpty(message = "处理id不能为空")
+    private List<Long> ids;
+
+    @ApiModelProperty(value = "新密码", required = true)
+    @Pattern(groups = {AddGroup.class}, message = "请输入8-12位登陆密码,由英文,数字和特殊符号组成",
+            regexp = "^(?=.*[A-Za-z])(?=.*\\d)(?=.*[$@$!%*#?&])[A-Za-z\\d$@$!%*#?&]{8,12}$")
+    private String password;
+
+    @ApiModelProperty(value = "处理人", hidden = true)
+    private Long updatedBy;
+}
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/dpc/AddDpcDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/dpc/AddDpcDTO.java
new file mode 100644
index 0000000..c6ce6e0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/dpc/AddDpcDTO.java
@@ -0,0 +1,58 @@
+package com.panzhihua.common.model.dtos.community.dpc;
+
+import javax.validation.constraints.NotBlank;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: AddDpcDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 人大代表新增请求参数类
+ * @author: hans
+ * @date: 2022/06/07 11:00
+ */
+@Data
+@ApiModel("人大代表新增请求参数类")
+public class AddDpcDTO {
+
+    @ApiModelProperty("姓名")
+    @NotBlank(message = "姓名不能为空")
+    private String name;
+
+    @ApiModelProperty("手机号")
+    @NotBlank(message = "手机号不能为空")
+    private String phone;
+
+    @ApiModelProperty("民族")
+    private String nation;
+
+    @ApiModelProperty("性别(1.男 2.女 3.未知)")
+    private Integer sex;
+
+    @ApiModelProperty("选区")
+    @NotBlank(message = "选区不能为空")
+    private String area;
+
+    @ApiModelProperty("所属家/站")
+    private String belong;
+
+    @ApiModelProperty("代表类别")
+    private String category;
+
+    @ApiModelProperty("单位职务")
+    private String position;
+
+    @ApiModelProperty("照片")
+    private String photo;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "创建者", hidden = true)
+    private Long createdBy;
+
+    @ApiModelProperty(value = "由谁更新", hidden = true)
+    private Long updatedBy;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/dpc/EditDpcDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/dpc/EditDpcDTO.java
new file mode 100644
index 0000000..a03bada
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/dpc/EditDpcDTO.java
@@ -0,0 +1,60 @@
+package com.panzhihua.common.model.dtos.community.dpc;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: EditDpcDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 人大代表编辑请求参数类
+ * @author: hans
+ * @date: 2022/06/07 11:06
+ */
+@Data
+@ApiModel("人大代表编辑请求参数类")
+public class EditDpcDTO {
+
+    @ApiModelProperty("人大代表id")
+    @NotNull(message = "人大代表id不能为空")
+    private Long id;
+
+    @ApiModelProperty("姓名")
+    @NotBlank(message = "姓名不能为空")
+    private String name;
+
+    @ApiModelProperty("手机号")
+    @NotBlank(message = "手机号不能为空")
+    private String phone;
+
+    @ApiModelProperty("民族")
+    private String nation;
+
+    @ApiModelProperty("性别(1.男 2.女 3.未知)")
+    private Integer sex;
+
+    @ApiModelProperty("选区")
+    @NotBlank(message = "选区不能为空")
+    private String area;
+
+    @ApiModelProperty("所属家/站")
+    private String belong;
+
+    @ApiModelProperty("代表类别")
+    private String category;
+
+    @ApiModelProperty("单位职务")
+    private String position;
+
+    @ApiModelProperty("照片")
+    private String photo;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "由谁更新", hidden = true)
+    private Long updatedBy;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/dpc/PageDpcDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/dpc/PageDpcDTO.java
new file mode 100644
index 0000000..4a4665b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/dpc/PageDpcDTO.java
@@ -0,0 +1,33 @@
+package com.panzhihua.common.model.dtos.community.dpc;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: PageDpcDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 分页查询人大代表请求参数
+ * @author: hans
+ * @date: 2022/06/07 11:08
+ */
+@Data
+@ApiModel("分页查询人大代表请求参数")
+public class PageDpcDTO {
+
+    @ApiModelProperty(value = "关键字")
+    private String keyword;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    @NotNull(message = "分页参数不能为空")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    @NotNull(message = "分页参数不能为空")
+    private Long pageSize;
+
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/easyPhoto/AddEasyPhotoActivityDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/easyPhoto/AddEasyPhotoActivityDTO.java
new file mode 100644
index 0000000..a252b45
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/easyPhoto/AddEasyPhotoActivityDTO.java
@@ -0,0 +1,42 @@
+package com.panzhihua.common.model.dtos.community.easyPhoto;
+
+import java.math.BigDecimal;
+
+import org.hibernate.validator.constraints.Length;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("添加随手拍活动请求参数")
+public class AddEasyPhotoActivityDTO {
+
+    @ApiModelProperty(value = "社区主键", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty("活动开始时间")
+    private String activityStartAt;
+
+    @ApiModelProperty("活动结束时间")
+    private String activityEndAt;
+
+    @ApiModelProperty("活动简介")
+    @Length(max = 20)
+    private String content;
+
+    @ApiModelProperty("优质奖励金额")
+    private BigDecimal goodReward;
+
+    @ApiModelProperty("精良奖励金额")
+    private BigDecimal excellentReward;
+
+    @ApiModelProperty("普通奖励金额")
+    private BigDecimal ordinaryReward;
+
+    @ApiModelProperty("一般奖励金额")
+    private BigDecimal commonlyReward;
+
+    @ApiModelProperty("活动图片")
+    private String logo;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/easyPhoto/AddEasyPhotoClassifyDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/easyPhoto/AddEasyPhotoClassifyDTO.java
new file mode 100644
index 0000000..c01ff18
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/easyPhoto/AddEasyPhotoClassifyDTO.java
@@ -0,0 +1,33 @@
+package com.panzhihua.common.model.dtos.community.easyPhoto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("添加随手拍活动请求参数")
+public class AddEasyPhotoClassifyDTO {
+
+    @ApiModelProperty("随手拍分类id")
+    private Long id;
+
+    @ApiModelProperty("随手拍分类名称")
+    private String name;
+
+    @ApiModelProperty("权重")
+    private Integer weight;
+
+    @ApiModelProperty("备注")
+    private String remark;
+
+    @ApiModelProperty("1 随手拍   2网格治理")
+    private String addType;
+
+    @ApiModelProperty(value = "分页每页数量", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "分页当前记录数", example = "1")
+    private Long pageNum = 1L;
+
+    private String areaCode;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/easyPhoto/EditEasyPhotoActivityDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/easyPhoto/EditEasyPhotoActivityDTO.java
new file mode 100644
index 0000000..0e0df9d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/easyPhoto/EditEasyPhotoActivityDTO.java
@@ -0,0 +1,39 @@
+package com.panzhihua.common.model.dtos.community.easyPhoto;
+
+import java.math.BigDecimal;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("编辑随手拍活动请求参数")
+public class EditEasyPhotoActivityDTO {
+
+    @ApiModelProperty("随手拍活动id")
+    private Long id;
+
+    @ApiModelProperty("活动开始时间")
+    private String activityStartAt;
+
+    @ApiModelProperty("活动结束时间")
+    private String activityEndAt;
+
+    @ApiModelProperty("活动简介")
+    private String content;
+
+    @ApiModelProperty("优质奖励金额")
+    private BigDecimal goodReward;
+
+    @ApiModelProperty("精良奖励金额")
+    private BigDecimal excellentReward;
+
+    @ApiModelProperty("普通奖励金额")
+    private BigDecimal ordinaryReward;
+
+    @ApiModelProperty("一般奖励金额")
+    private BigDecimal commonlyReward;
+
+    @ApiModelProperty("活动图片")
+    private String logo;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/easyPhoto/ExportEasyPhotoDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/easyPhoto/ExportEasyPhotoDTO.java
new file mode 100644
index 0000000..da9c86b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/easyPhoto/ExportEasyPhotoDTO.java
@@ -0,0 +1,31 @@
+package com.panzhihua.common.model.dtos.community.easyPhoto;
+
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class ExportEasyPhotoDTO {
+    @ApiModelProperty(value = "批量勾选时传参数组")
+    private List<Integer> ids;
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+    @ApiModelProperty("社区id")
+    private Long communityId;
+    private Integer type;
+    @ApiModelProperty("处理人名字")
+    private String handlerName;
+    @ApiModelProperty("查询-创建开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createBegin;
+
+    @ApiModelProperty("查询-创建结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createEnd;
+    @ApiModelProperty("城管安排状态")
+    private Integer urbanStatus;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/easyPhoto/PageEasyPhotoActivityDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/easyPhoto/PageEasyPhotoActivityDTO.java
new file mode 100644
index 0000000..f74bf42
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/easyPhoto/PageEasyPhotoActivityDTO.java
@@ -0,0 +1,28 @@
+package com.panzhihua.common.model.dtos.community.easyPhoto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("随手拍活动列表请求参数")
+public class PageEasyPhotoActivityDTO {
+
+    @ApiModelProperty("活动状态(1.待开始 2.进行中 3.已结束  4.已取消)")
+    private Integer status;
+
+    @ApiModelProperty("活动开始时间")
+    private String startTime;
+
+    @ApiModelProperty("活动结束时间")
+    private String endTime;
+
+    @ApiModelProperty(value = "社区主键", hidden = true)
+    private Long communityId;
+
+    @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/easyPhoto/PageEasyPhotoActivityUserDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/easyPhoto/PageEasyPhotoActivityUserDTO.java
new file mode 100644
index 0000000..121a419
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/easyPhoto/PageEasyPhotoActivityUserDTO.java
@@ -0,0 +1,19 @@
+package com.panzhihua.common.model.dtos.community.easyPhoto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("随手拍活动列表请求参数")
+public class PageEasyPhotoActivityUserDTO {
+
+    @ApiModelProperty(value = "活动id")
+    private Long activityId;
+
+    @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/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/community/enterprise/AddEnterpriseDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/enterprise/AddEnterpriseDTO.java
new file mode 100644
index 0000000..4147f84
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/enterprise/AddEnterpriseDTO.java
@@ -0,0 +1,65 @@
+package com.panzhihua.common.model.dtos.community.enterprise;
+
+import java.util.Date;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: AddEnterpriseDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 社区企业新增请求参数类
+ * @author: hans
+ * @date: 2022/05/31 10:30
+ */
+@Data
+@ApiModel("社区企业新增请求参数类")
+public class AddEnterpriseDTO {
+
+    @ApiModelProperty("企业名称")
+    @NotBlank(message = "企业名称不能为空")
+    private String name;
+
+    @ApiModelProperty("统一社会信用代码")
+    @NotBlank(message = "统一社会信用代码不能为空")
+    private String agencyCode;
+
+    @ApiModelProperty("法定代表人")
+    @NotBlank(message = "法定代表人不能为空")
+    private String legalRepresentative;
+
+    @ApiModelProperty("联系电话")
+    @NotBlank(message = "联系电话不能为空")
+    private String phone;
+
+    @ApiModelProperty("注册时间")
+    private Date registeAt;
+
+    @ApiModelProperty("所属社区")
+    @NotNull(message = "所属社区不能为空")
+    private Long communityId;
+
+    @ApiModelProperty("地址")
+    @NotBlank(message = "地址不能为空")
+    private String address;
+
+    @ApiModelProperty("企业介绍")
+    private String introduct;
+
+    @ApiModelProperty("企业logo")
+    private String logo;
+
+    @ApiModelProperty("服务分类id")
+    @NotNull(message = "服务分类不能为空")
+    private Long type;
+
+    @ApiModelProperty(value = "创建者", hidden = true)
+    private Long createdBy;
+
+    @ApiModelProperty(value = "由谁更新", hidden = true)
+    private Long updatedBy;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/enterprise/AddEnterpriseTypeDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/enterprise/AddEnterpriseTypeDTO.java
new file mode 100644
index 0000000..6eef9f6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/enterprise/AddEnterpriseTypeDTO.java
@@ -0,0 +1,40 @@
+package com.panzhihua.common.model.dtos.community.enterprise;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: AddEnterpriseDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 社区企业服务分类新增请求参数类
+ * @author: hans
+ * @date: 2022/05/31 10:30
+ */
+@Data
+@ApiModel("社区企业服务分类新增请求参数类")
+public class AddEnterpriseTypeDTO {
+
+    @ApiModelProperty("服务分类名称")
+    @NotBlank(message = "服务分类名称不能为空")
+    private String name;
+
+    @ApiModelProperty("状态(1.启用 2.停用)")
+    @NotNull(message = "状态不能为空")
+    private Integer status;
+
+    @ApiModelProperty("描述")
+    private String description;
+
+    @ApiModelProperty(value = "创建者", hidden = true)
+    private Long createdBy;
+
+    @ApiModelProperty(value = "由谁更新", hidden = true)
+    private Long updatedBy;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/enterprise/EditEnterpriseDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/enterprise/EditEnterpriseDTO.java
new file mode 100644
index 0000000..c38b799
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/enterprise/EditEnterpriseDTO.java
@@ -0,0 +1,67 @@
+package com.panzhihua.common.model.dtos.community.enterprise;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @title: EditEnterpriseDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 社区企业编辑请求参数类
+ * @author: hans
+ * @date: 2022/05/31 10:45
+ */
+@Data
+@ApiModel("社区企业编辑请求参数类")
+public class EditEnterpriseDTO {
+
+    @ApiModelProperty("企业id")
+    @NotNull(message = "企业id不能为空")
+    private Long id;
+
+    @ApiModelProperty("企业名称")
+    @NotBlank(message = "企业名称不能为空")
+    private String name;
+
+    @ApiModelProperty("统一社会信用代码")
+    @NotBlank(message = "统一社会信用代码不能为空")
+    private String agencyCode;
+
+    @ApiModelProperty("法定代表人")
+    @NotBlank(message = "法定代表人不能为空")
+    private String legalRepresentative;
+
+    @ApiModelProperty("联系电话")
+    @NotBlank(message = "联系电话不能为空")
+    private String phone;
+
+    @ApiModelProperty("注册时间")
+    private Date registeAt;
+
+    @ApiModelProperty("所属社区")
+    @NotNull(message = "所属社区不能为空")
+    private Long communityId;
+
+    @ApiModelProperty("地址")
+    @NotBlank(message = "地址不能为空")
+    private String address;
+
+    @ApiModelProperty("企业介绍")
+    private String introduct;
+
+    @ApiModelProperty("企业logo")
+    private String logo;
+
+    @ApiModelProperty("服务分类id")
+    @NotNull(message = "服务分类不能为空")
+    private Long type;
+
+    @ApiModelProperty(value = "由谁更新", hidden = true)
+    private Long updatedBy;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/enterprise/EditEnterpriseTypeDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/enterprise/EditEnterpriseTypeDTO.java
new file mode 100644
index 0000000..e3378c7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/enterprise/EditEnterpriseTypeDTO.java
@@ -0,0 +1,41 @@
+package com.panzhihua.common.model.dtos.community.enterprise;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: EditEnterpriseDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 社区企业服务分类编辑请求参数类
+ * @author: hans
+ * @date: 2022/05/31 10:45
+ */
+@Data
+@ApiModel("社区企业服务分类编辑请求参数类")
+public class EditEnterpriseTypeDTO {
+
+    @ApiModelProperty("分类id")
+    @NotNull(message = "分类id不能为空")
+    private Long id;
+
+    @ApiModelProperty("服务分类名称")
+    @NotBlank(message = "服务分类名称不能为空")
+    private String name;
+
+    @ApiModelProperty("状态(1.启用 2.停用)")
+    @NotNull(message = "状态不能为空")
+    private Integer status;
+
+    @ApiModelProperty("描述")
+    private String description;
+
+    @ApiModelProperty(value = "由谁更新", hidden = true)
+    private Long updatedBy;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/enterprise/PageEnterpriseDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/enterprise/PageEnterpriseDTO.java
new file mode 100644
index 0000000..adaaa06
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/enterprise/PageEnterpriseDTO.java
@@ -0,0 +1,42 @@
+package com.panzhihua.common.model.dtos.community.enterprise;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: PageEnterpriseDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 分页查询社区企业请求参数
+ * @author: hans
+ * @date: 2022/05/31 13:31
+ */
+@Data
+@ApiModel("分页查询社区企业请求参数")
+public class PageEnterpriseDTO {
+
+    @ApiModelProperty(value = "关键字")
+    private String keyword;
+
+    @ApiModelProperty(value = "状态(1.启用 2.禁用)")
+    private Integer status;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    @NotNull(message = "分页参数不能为空")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    @NotNull(message = "分页参数不能为空")
+    private Long pageSize;
+
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    @ApiModelProperty("服务分类id")
+    private Long type;
+
+    @ApiModelProperty(value = "街道id", hidden = true)
+    private Long streetId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/enterprise/PageEnterpriseTypeDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/enterprise/PageEnterpriseTypeDTO.java
new file mode 100644
index 0000000..1407709
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/enterprise/PageEnterpriseTypeDTO.java
@@ -0,0 +1,36 @@
+package com.panzhihua.common.model.dtos.community.enterprise;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: PageEnterpriseDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 分页查询社区企业服务分类请求参数
+ * @author: hans
+ * @date: 2022/05/31 13:31
+ */
+@Data
+@ApiModel("分页查询社区企业服务分类请求参数")
+public class PageEnterpriseTypeDTO {
+
+    @ApiModelProperty(value = "关键字")
+    private String keyword;
+
+    @ApiModelProperty(value = "状态(1.启用 2.停用)")
+    private Integer status;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    @NotNull(message = "分页参数不能为空")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    @NotNull(message = "分页参数不能为空")
+    private Long pageSize;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/AddFmsClassroomAdminDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/AddFmsClassroomAdminDTO.java
new file mode 100644
index 0000000..4fe86af
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/AddFmsClassroomAdminDTO.java
@@ -0,0 +1,45 @@
+package com.panzhihua.common.model.dtos.community.fms;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: AddFmsServiceDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 后台新增微讲堂请求参数类
+ * @author: hans
+ * @date: 2022/02/16 11:22
+ */
+@Data
+@ApiModel("后台新增微讲堂请求参数类")
+public class AddFmsClassroomAdminDTO {
+
+    @ApiModelProperty("标题")
+    @NotBlank
+    @Size(min = 1, max = 30)
+    private String title;
+
+    @ApiModelProperty("参与学习人数")
+    private Integer scholars;
+
+    @ApiModelProperty("封面")
+    @NotBlank
+    private String cover;
+
+    @ApiModelProperty("内容")
+    @NotBlank
+    private String content;
+
+    @ApiModelProperty(value = "所属社区", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "创建者", hidden = true)
+    private Long createdBy;
+
+    @ApiModelProperty(value = "由谁更新", hidden = true)
+    private Long updatedBy;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/AddFmsServiceAdminDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/AddFmsServiceAdminDTO.java
new file mode 100644
index 0000000..f5d913e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/AddFmsServiceAdminDTO.java
@@ -0,0 +1,61 @@
+package com.panzhihua.common.model.dtos.community.fms;
+
+import java.util.Date;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: AddFmsServiceDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 后台新增微服务请求参数类
+ * @author: hans
+ * @date: 2022/02/16 11:22
+ */
+@Data
+@ApiModel("后台新增微服务请求参数类")
+public class AddFmsServiceAdminDTO {
+
+    @ApiModelProperty("服务用户")
+    private String userName;
+
+    @ApiModelProperty("联系电话")
+    private String phone;
+
+    @ApiModelProperty("服务时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @NotNull
+    private Date serviceAt;
+
+    @ApiModelProperty("服务内容")
+    @NotBlank(message = "服务内容不能为空")
+    private String serviceContent;
+
+    @ApiModelProperty("服务内容图片,多张逗号隔开")
+    private String serviceImage;
+
+    @ApiModelProperty("服务过程")
+    @NotBlank(message = "服务过程不能为空")
+    private String serviceProcess;
+
+    @ApiModelProperty("服务过程图片,多张逗号隔开")
+    private String processImage;
+
+    @ApiModelProperty("分派服务人员id")
+    private Long memberId;
+
+    @ApiModelProperty(value = "所属社区", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "创建者", hidden = true)
+    private Long createdBy;
+
+    @ApiModelProperty(value = "由谁更新", hidden = true)
+    private Long updatedBy;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/AddTeamDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/AddTeamDTO.java
new file mode 100644
index 0000000..177ae73
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/AddTeamDTO.java
@@ -0,0 +1,46 @@
+package com.panzhihua.common.model.dtos.community.fms;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: AddTeamTypeDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 新增团队请求参数类
+ * @author: hans
+ * @date: 2022/02/11 13:40
+ */
+@Data
+@ApiModel("新增团队请求参数类")
+public class AddTeamDTO {
+
+    @ApiModelProperty("团队名称")
+    @NotBlank
+    @Size(min = 1, max = 20)
+    private String name;
+
+    @ApiModelProperty("所属团队类型")
+    @NotNull
+    private Long teamType;
+
+    @ApiModelProperty("服务电话")
+    private String phone;
+
+    @ApiModelProperty("团队照片")
+    @NotBlank
+    private String image;
+
+    @ApiModelProperty(value = "所属社区", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "创建者", hidden = true)
+    private Long createdBy;
+
+    @ApiModelProperty(value = "由谁更新", hidden = true)
+    private Long updatedBy;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/AddTeamMemberDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/AddTeamMemberDTO.java
new file mode 100644
index 0000000..7327f04
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/AddTeamMemberDTO.java
@@ -0,0 +1,50 @@
+package com.panzhihua.common.model.dtos.community.fms;
+
+import java.util.List;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.Pattern;
+import javax.validation.constraints.Size;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: AddTeamTypeDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 新增团队成员请求参数类
+ * @author: hans
+ * @date: 2022/02/11 13:40
+ */
+@Data
+@ApiModel("新增团队成员请求参数类")
+public class AddTeamMemberDTO {
+
+    @ApiModelProperty("成员姓名")
+    @NotBlank
+    @Size(min = 1, max = 10)
+    private String name;
+
+    @ApiModelProperty("所属团队")
+    @NotEmpty
+    private List<Long> teamIds;
+
+    @ApiModelProperty("联系电话")
+    @NotBlank(message = "联系电话不能为空")
+    @Pattern(message = "联系电话格式错误", regexp = "^(13[0-9]|14[01456879]|15[0-3,5-9]|16[2567]|17[0-8]|18[0-9]|19[0-3,5-9])\\d{8}$")
+    private String phone;
+
+    @ApiModelProperty(value = "身份证号")
+    private String idCard;
+
+    @ApiModelProperty(value = "所属社区", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "创建者", hidden = true)
+    private Long createdBy;
+
+    @ApiModelProperty(value = "由谁更新", hidden = true)
+    private Long updatedBy;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/AddTeamTypeDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/AddTeamTypeDTO.java
new file mode 100644
index 0000000..1288dd3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/AddTeamTypeDTO.java
@@ -0,0 +1,34 @@
+package com.panzhihua.common.model.dtos.community.fms;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+
+/**
+ * @title: AddTeamTypeDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 团队类型新增请求参数类
+ * @author: hans
+ * @date: 2022/02/11 13:40
+ */
+@Data
+@ApiModel("团队类型新增请求参数类")
+public class AddTeamTypeDTO {
+
+    @ApiModelProperty("团队类型名称")
+    @NotBlank
+    @Size(min = 1, max = 10)
+    private String name;
+
+    @ApiModelProperty(value = "所属社区", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "创建者", hidden = true)
+    private Long createdBy;
+
+    @ApiModelProperty(value = "由谁更新", hidden = true)
+    private Long updatedBy;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/ApplyFmsServiceDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/ApplyFmsServiceDTO.java
new file mode 100644
index 0000000..1c9b2b1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/ApplyFmsServiceDTO.java
@@ -0,0 +1,33 @@
+package com.panzhihua.common.model.dtos.community.fms;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Size;
+
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: ApplyFmsServiceDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 申请微服务请求参数类
+ * @author: hans
+ * @date: 2022/02/19 13:42
+ */
+@Data
+@ApiModel("申请微服务请求参数类")
+public class ApplyFmsServiceDTO {
+
+    @ApiModelProperty("申请服务内容")
+    @NotBlank(message = "申请服务内容不能为空")
+    @Size(min = 1, max = 200)
+    private String serviceContent;
+
+    @ApiModelProperty("服务内容图片,多张逗号隔开")
+    private String serviceImage;
+
+    @ApiModelProperty(value = "创建者", hidden = true)
+    private LoginUserInfoVO userInfo;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/ApprovalFmsServiceAdminDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/ApprovalFmsServiceAdminDTO.java
new file mode 100644
index 0000000..3ed39bd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/ApprovalFmsServiceAdminDTO.java
@@ -0,0 +1,36 @@
+package com.panzhihua.common.model.dtos.community.fms;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @title: AddFmsServiceDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 后台核实微服务请求参数类
+ * @author: hans
+ * @date: 2022/02/16 11:22
+ */
+@Data
+@ApiModel("后台核实微服务请求参数类")
+public class ApprovalFmsServiceAdminDTO {
+
+    @ApiModelProperty("服务id")
+    @NotNull
+    private Long serviceId;
+
+    @ApiModelProperty("反馈内容")
+    private String content;
+
+    @ApiModelProperty("是否通过(TRUE-通过,FALSE-不通过)")
+    @NotNull
+    private Boolean isPass;
+
+    @ApiModelProperty("分派服务人员id")
+    private Long memberId;
+
+    @ApiModelProperty(value = "由谁更新", hidden = true)
+    private Long updatedBy;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/DeleteTeamMemberDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/DeleteTeamMemberDTO.java
new file mode 100644
index 0000000..9b6748d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/DeleteTeamMemberDTO.java
@@ -0,0 +1,30 @@
+package com.panzhihua.common.model.dtos.community.fms;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: AddTeamTypeDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 团队成员删除请求参数类
+ * @author: hans
+ * @date: 2022/02/11 13:40
+ */
+@Data
+@ApiModel("团队成员删除请求参数类")
+public class DeleteTeamMemberDTO {
+
+    @ApiModelProperty("成员id")
+    @NotNull
+    private Long id;
+
+    @ApiModelProperty("所属团队")
+    @NotNull
+    private Long teamId;
+
+    @ApiModelProperty(value = "所属社区", hidden = true)
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/EditFmsClassroomAdminDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/EditFmsClassroomAdminDTO.java
new file mode 100644
index 0000000..c5aca81
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/EditFmsClassroomAdminDTO.java
@@ -0,0 +1,44 @@
+package com.panzhihua.common.model.dtos.community.fms;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: AddFmsServiceDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 后台编辑微讲堂请求参数类
+ * @author: hans
+ * @date: 2022/02/16 11:22
+ */
+@Data
+@ApiModel("后台编辑微讲堂请求参数类")
+public class EditFmsClassroomAdminDTO {
+
+    @ApiModelProperty("讲堂id")
+    @NotNull
+    private Long id;
+
+    @ApiModelProperty("标题")
+    @NotBlank
+    @Size(min = 1, max = 30)
+    private String title;
+
+    @ApiModelProperty("参与学习人数")
+    private Integer scholars;
+
+    @ApiModelProperty("封面")
+    @NotBlank
+    private String cover;
+
+    @ApiModelProperty("内容")
+    @NotBlank
+    private String content;
+
+    @ApiModelProperty(value = "由谁更新", hidden = true)
+    private Long updatedBy;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/EditTeamDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/EditTeamDTO.java
new file mode 100644
index 0000000..1eee164
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/EditTeamDTO.java
@@ -0,0 +1,47 @@
+package com.panzhihua.common.model.dtos.community.fms;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: AddTeamTypeDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 团队信息编辑请求参数类
+ * @author: hans
+ * @date: 2022/02/11 13:40
+ */
+@Data
+@ApiModel("团队信息编辑请求参数类")
+public class EditTeamDTO {
+
+    @ApiModelProperty("团队id")
+    @NotNull
+    private Long id;
+
+    @ApiModelProperty("团队名称")
+    @NotBlank
+    @Size(min = 1, max = 20)
+    private String name;
+
+    @ApiModelProperty("所属团队类型")
+    @NotNull
+    private Long teamType;
+
+    @ApiModelProperty("服务电话")
+    private String phone;
+
+    @ApiModelProperty("团队照片")
+    @NotBlank
+    private String image;
+
+    @ApiModelProperty(value = "所属社区", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "由谁更新", hidden = true)
+    private Long updatedBy;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/EditTeamMemberDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/EditTeamMemberDTO.java
new file mode 100644
index 0000000..5fc0d27
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/EditTeamMemberDTO.java
@@ -0,0 +1,52 @@
+package com.panzhihua.common.model.dtos.community.fms;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+import javax.validation.constraints.Size;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @title: AddTeamTypeDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 团队成员编辑请求参数类
+ * @author: hans
+ * @date: 2022/02/11 13:40
+ */
+@Data
+@ApiModel("团队成员编辑请求参数类")
+public class EditTeamMemberDTO {
+
+    @ApiModelProperty("成员id")
+    @NotNull
+    private Long id;
+
+    @ApiModelProperty("成员姓名")
+    @NotBlank
+    @Size(min = 1, max = 10)
+    private String name;
+
+    @ApiModelProperty("所属团队")
+    @NotEmpty
+    private List<Long> teamIds;
+
+    @ApiModelProperty("联系电话")
+    @NotBlank(message = "联系电话不能为空")
+    @Pattern(message = "联系电话格式错误", regexp = "^(13[0-9]|14[01456879]|15[0-3,5-9]|16[2567]|17[0-8]|18[0-9]|19[0-3,5-9])\\d{8}$")
+    private String phone;
+
+    @ApiModelProperty(value = "身份证号")
+    private String idCard;
+
+    @ApiModelProperty(value = "所属社区", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "由谁更新", hidden = true)
+    private Long updatedBy;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/EditTeamTypeDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/EditTeamTypeDTO.java
new file mode 100644
index 0000000..856b250
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/EditTeamTypeDTO.java
@@ -0,0 +1,36 @@
+package com.panzhihua.common.model.dtos.community.fms;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: AddTeamTypeDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 团队类型编辑请求参数类
+ * @author: hans
+ * @date: 2022/02/11 13:40
+ */
+@Data
+@ApiModel("团队类型编辑请求参数类")
+public class EditTeamTypeDTO {
+
+    @ApiModelProperty("团队类型id")
+    @NotNull
+    private Long id;
+
+    @ApiModelProperty("团队类型名称")
+    @NotBlank
+    @Size(min = 1, max = 10)
+    private String name;
+
+    @ApiModelProperty(value = "所属社区", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "由谁更新", hidden = true)
+    private Long updatedBy;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/EvaluationFmsServiceDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/EvaluationFmsServiceDTO.java
new file mode 100644
index 0000000..40e68b0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/EvaluationFmsServiceDTO.java
@@ -0,0 +1,36 @@
+package com.panzhihua.common.model.dtos.community.fms;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: EvaluationFmsServiceDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 服务评价请求参数类
+ * @author: hans
+ * @date: 2022/02/19 14:19
+ */
+@Data
+@ApiModel("服务评价请求参数类")
+public class EvaluationFmsServiceDTO {
+
+    @ApiModelProperty("服务id")
+    @NotNull
+    private Long serviceId;
+
+    @ApiModelProperty("评分星级(1.非常差2.差3.一般4.满意5.非常满意)")
+    @NotNull
+    private Integer starLevel;
+
+    @ApiModelProperty("评价内容")
+    private String evaluateContent;
+
+    @ApiModelProperty("图片")
+    private String image;
+
+    @ApiModelProperty(value = "用户", hidden = true)
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/FeedbackFmsServiceDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/FeedbackFmsServiceDTO.java
new file mode 100644
index 0000000..b776bf8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/FeedbackFmsServiceDTO.java
@@ -0,0 +1,41 @@
+package com.panzhihua.common.model.dtos.community.fms;
+
+import javax.validation.constraints.NotNull;
+
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: FeedbackFmsServiceDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 服务反馈微服务信息请求参数
+ * @author: hans
+ * @date: 2022/02/19 14:52
+ */
+@Data
+@ApiModel("服务反馈微服务信息请求参数")
+public class FeedbackFmsServiceDTO {
+
+    @ApiModelProperty(value = "服务id")
+    @NotNull
+    private Long serviceId;
+
+    @ApiModelProperty(value = "反馈内容")
+    private String feedbackContent;
+
+    @ApiModelProperty(value = "反馈图片")
+    private String image;
+
+    @ApiModelProperty("结束服务(TRUE-是,FALSE-否)")
+    @NotNull
+    private Boolean isEnd;
+
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "用户信息", hidden = true)
+    private LoginUserInfoVO userInfo;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/PageFmsClassroomAdminDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/PageFmsClassroomAdminDTO.java
new file mode 100644
index 0000000..5a1ed1a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/PageFmsClassroomAdminDTO.java
@@ -0,0 +1,45 @@
+package com.panzhihua.common.model.dtos.community.fms;
+
+import java.util.Date;
+
+import javax.validation.constraints.NotNull;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: PageFmsClassroomAdminDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 后台分页查询微讲堂信息请求参数
+ * @author: hans
+ * @date: 2022/02/17 14:15
+ */
+@Data
+@ApiModel("后台分页查询微讲堂信息请求参数")
+public class PageFmsClassroomAdminDTO {
+
+    @ApiModelProperty(value = "关键字")
+    private String keyword;
+
+    @ApiModelProperty("发布时间-起")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createdAtBegin;
+
+    @ApiModelProperty("发布时间-止")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createdAtEnd;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    @NotNull(message = "分页参数不能为空")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    @NotNull(message = "分页参数不能为空")
+    private Long pageSize;
+
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/PageFmsEventAdminDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/PageFmsEventAdminDTO.java
new file mode 100644
index 0000000..ec59342
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/PageFmsEventAdminDTO.java
@@ -0,0 +1,43 @@
+package com.panzhihua.common.model.dtos.community.fms;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: PageFmsClassroomAdminDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 后台分页查询微调节/微防控信息请求参数
+ * @author: hans
+ * @date: 2022/02/17 14:15
+ */
+@Data
+@ApiModel("后台分页查询微调节/微防控信息请求参数")
+public class PageFmsEventAdminDTO {
+
+    @ApiModelProperty(value = "关键字")
+    private String keyword;
+
+    @ApiModelProperty(value = "事件类型")
+    private String eventClazz;
+
+    @ApiModelProperty(value = "状态(1.待处理2.已解决)")
+    private Integer eventProcessStatus;
+
+    @ApiModelProperty(value = "查询类型(1.微调节数据2.微防控数)")
+    @NotNull(message = "查询类型不能为空")
+    private Integer type;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    @NotNull(message = "分页参数不能为空")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    @NotNull(message = "分页参数不能为空")
+    private Long pageSize;
+
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/PageFmsServiceAdminDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/PageFmsServiceAdminDTO.java
new file mode 100644
index 0000000..8c70cf7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/PageFmsServiceAdminDTO.java
@@ -0,0 +1,36 @@
+package com.panzhihua.common.model.dtos.community.fms;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: PageFmsServiceAdminDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 后台分页查询微服务信息请求参数
+ * @author: hans
+ * @date: 2022/02/16 14:05
+ */
+@Data
+@ApiModel("后台分页查询微服务信息请求参数")
+public class PageFmsServiceAdminDTO {
+
+    @ApiModelProperty(value = "关键字")
+    private String keyword;
+
+    @ApiModelProperty(value = "服务状态(1.待核实2.进行中3.待评价4.已完成5.未通过)")
+    private Integer serviceStatus;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    @NotNull(message = "分页参数不能为空")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    @NotNull(message = "分页参数不能为空")
+    private Long pageSize;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/PageFmsServiceAppletsDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/PageFmsServiceAppletsDTO.java
new file mode 100644
index 0000000..608d299
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/PageFmsServiceAppletsDTO.java
@@ -0,0 +1,46 @@
+package com.panzhihua.common.model.dtos.community.fms;
+
+import javax.validation.constraints.NotNull;
+
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: PageFmsServiceAdminDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 小程序分页查询微服务信息请求参数
+ * @author: hans
+ * @date: 2022/02/16 14:05
+ */
+@Data
+@ApiModel("小程序分页查询微服务信息请求参数")
+public class PageFmsServiceAppletsDTO {
+
+    @ApiModelProperty(value = "此状态和服务状态不一致(1.已完成2.进行中)")
+    private Integer status;
+
+    @ApiModelProperty(value = "微服务处理状态(1.待我服务2.待核实3.已完成)")
+    private Integer dealStatus;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    @NotNull(message = "分页参数不能为空")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    @NotNull(message = "分页参数不能为空")
+    private Long pageSize;
+
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "用户信息", hidden = true)
+    private LoginUserInfoVO userInfo;
+
+    @ApiModelProperty(value = "成员id", hidden = true)
+    private Long memberId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/PageFmsTeamDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/PageFmsTeamDTO.java
new file mode 100644
index 0000000..f8e9075
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/PageFmsTeamDTO.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.dtos.community.fms;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: PageFmsTeamDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 分页查询团队信息请求参数
+ * @author: hans
+ * @date: 2022/02/18 10:16
+ */
+@Data
+@ApiModel("分页查询团队信息请求参数")
+public class PageFmsTeamDTO {
+
+    @ApiModelProperty(value = "关键字")
+    private String keyword;
+
+    @ApiModelProperty(value = "团队类型")
+    private Long teamType;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize;
+
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/PageTeamMemberDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/PageTeamMemberDTO.java
new file mode 100644
index 0000000..85b307d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/fms/PageTeamMemberDTO.java
@@ -0,0 +1,42 @@
+package com.panzhihua.common.model.dtos.community.fms;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: PageTeamMemberDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 分页查询团队成员信息请求参数
+ * @author: hans
+ * @date: 2022/02/14 15:28
+ */
+@Data
+@ApiModel("分页查询团队成员信息请求参数")
+public class PageTeamMemberDTO {
+
+    @ApiModelProperty(value = "关键字")
+    private String keyword;
+
+    @ApiModelProperty(value = "团队类型")
+    private Long teamType;
+
+    @ApiModelProperty(value = "所属团队")
+    private Long teamId;
+
+    @ApiModelProperty(value = "性别(1.男2.女3.未知)")
+    private Integer gender;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    @NotNull(message = "分页参数不能为空")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    @NotNull(message = "分页参数不能为空")
+    private Long pageSize;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/integral/ComActIntegralCommunityRankDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/integral/ComActIntegralCommunityRankDTO.java
new file mode 100644
index 0000000..2b9f012
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/integral/ComActIntegralCommunityRankDTO.java
@@ -0,0 +1,51 @@
+package com.panzhihua.common.model.dtos.community.integral;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("查询社区积分排行榜请求参数")
+public class ComActIntegralCommunityRankDTO {
+
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "交易身份类型(1.居民 2.党员 3.志愿者)", hidden = true)
+    private Integer identityType;
+
+    @ApiModelProperty("身份类型(1.全部 2.居民 3.志愿者 4.党员)")
+    private Integer type = 1;
+
+    @ApiModelProperty("变动类型(1.增加  2.减少)")
+    private Integer changeType;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    /**
+     * 身份类型(1.全部 2.居民 3.志愿者 4.党员)
+     */
+    public interface type {
+        int all = 1;
+        int resident = 2;
+        int party = 3;
+        int volunteer = 4;
+    }
+
+    /**
+     * 交易身份类型(1.居民 2.党员 3.志愿者)
+     */
+    public interface identityType {
+        int resident = 1;
+        int party = 2;
+        int volunteer = 3;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/integral/ComActIntegralCountDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/integral/ComActIntegralCountDTO.java
new file mode 100644
index 0000000..f77ad9f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/integral/ComActIntegralCountDTO.java
@@ -0,0 +1,29 @@
+package com.panzhihua.common.model.dtos.community.integral;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("查询用户积分交易记录条数请求参数")
+public class ComActIntegralCountDTO {
+
+    @ApiModelProperty("社区id")
+    private Long communityId;
+
+    @ApiModelProperty("用户id")
+    private Long userId;
+
+    @ApiModelProperty("查询开始时间")
+    private String startTime;
+
+    @ApiModelProperty("查询结束时间")
+    private String endTime;
+
+    @ApiModelProperty("变动类型(1.增加  2.减少)")
+    private Integer type;
+
+    @ApiModelProperty("交易业务类型(1.发布随手拍 2.发布微心愿 3.参与议事投票 4.社区活动-居民身份参与 \" +\n" +
+            "            \"5.社区活动-党员身份参与 6.社区活动-志愿者身份参与 7.参与调查问卷 8.取消活动 9.参与单位党员活动)")
+    private Integer serviceType;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/integral/admin/AddComActIntegralUserDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/integral/admin/AddComActIntegralUserDTO.java
new file mode 100644
index 0000000..2144f2f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/integral/admin/AddComActIntegralUserDTO.java
@@ -0,0 +1,63 @@
+package com.panzhihua.common.model.dtos.community.integral.admin;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("计算用户积分请求参数")
+public class AddComActIntegralUserDTO {
+
+    @ApiModelProperty("业务id")
+    private Long serviceId;
+
+    @ApiModelProperty("积分任务类型(1.发布随手拍 2.发布微心愿 3.参与议事投票 4.社区活动-居民身份参与 " +
+            "5.社区活动-党员身份参与 6.社区活动-志愿者身份参与 7.参与调查问卷 8.取消活动 9.参与单位党员活动)")
+    private Integer integralType;
+
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+
+    @ApiModelProperty(value = "是否是评论(1.是 2.否)")
+    private Integer isComment;
+
+    @ApiModelProperty(value = "签到类型 1居民 志愿者签到 2党员签到")
+    private Integer activityType;
+
+    @ApiModelProperty(value = "以什么身份报名(1.居民 2.党员 3.志愿者)")
+    private Integer signIdentity;
+
+    @ApiModelProperty(value = "积分")
+    private Integer integral;
+
+    private Integer integralPartyTime;
+
+    private String remark;
+
+    public AddComActIntegralUserDTO(Long serviceId, Integer integralType, Long communityId, Long userId) {
+        this.serviceId = serviceId;
+        this.integralType = integralType;
+        this.communityId = communityId;
+        this.userId = userId;
+    }
+
+    public AddComActIntegralUserDTO() {}
+
+    /**
+     * 积分任务类型(1.发布随手拍 2.发布微心愿 3.参与议事投票 4.社区活动-居民身份参与 " +
+     *             "5.社区活动-党员身份参与 6.社区活动-志愿者身份参与 7.参与调查问卷 8.取消活动 9.参与单位党员活动)
+     */
+    public interface integralType {
+        int fbssp = 1;
+        int fbwxy = 2;
+        int cyystp = 3;
+        int cyjmhd = 4;
+        int cyzyzhd = 5;
+        int cydyhd = 6;
+        int cydcwj = 7;
+        int qxhd = 8;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/integral/admin/EditComActIntegralRuleDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/integral/admin/EditComActIntegralRuleDTO.java
new file mode 100644
index 0000000..8ad1699
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/integral/admin/EditComActIntegralRuleDTO.java
@@ -0,0 +1,28 @@
+package com.panzhihua.common.model.dtos.community.integral.admin;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("编辑积分规则请求参数")
+public class EditComActIntegralRuleDTO {
+
+    @ApiModelProperty("社区积分规则id")
+    private Long id;
+
+    @ApiModelProperty("奖励积分金额")
+    private Integer amount;
+
+    @ApiModelProperty("是否限制(1.是 2.否)")
+    private Integer isRestrict;
+
+    @ApiModelProperty("限制类型(1.月 2.日)")
+    private Integer type;
+
+    @ApiModelProperty("限制次数")
+    private Integer count;
+
+    @ApiModelProperty("积分任务描述")
+    private String integralDescribe;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/integral/admin/PageComActIntegralRuleDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/integral/admin/PageComActIntegralRuleDTO.java
new file mode 100644
index 0000000..2c3cd9b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/integral/admin/PageComActIntegralRuleDTO.java
@@ -0,0 +1,20 @@
+package com.panzhihua.common.model.dtos.community.integral.admin;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("分页查询社区后台积分交易记录请求参数")
+public class PageComActIntegralRuleDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/integral/admin/PageComActIntegralTradeDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/integral/admin/PageComActIntegralTradeDTO.java
new file mode 100644
index 0000000..3b8f362
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/integral/admin/PageComActIntegralTradeDTO.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.dtos.community.integral.admin;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("分页查询社区后台积分交易记录请求参数")
+public class PageComActIntegralTradeDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty("姓名")
+    private String name;
+
+    @ApiModelProperty("手机号")
+    private String phone;
+
+    @ApiModelProperty("用户身份(1.居民 2.党员 3.志愿者)")
+    private Integer userIdentity;
+
+    @ApiModelProperty("交易身份类型(1.居民 2.党员 3.志愿者)")
+    private Integer identityType;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/large/AreaStreetDetail.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/large/AreaStreetDetail.java
new file mode 100644
index 0000000..6c03896
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/large/AreaStreetDetail.java
@@ -0,0 +1,16 @@
+package com.panzhihua.common.model.dtos.community.large;
+
+import com.panzhihua.common.model.vos.community.screen.event.EventPopulationSpecialStatisticsVO;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class AreaStreetDetail {
+
+
+    @ApiModelProperty("街道相关信息")
+    private AreaStreetDetailResp areaStreetDetailResp;
+
+    @ApiModelProperty("特殊人口数据")
+    private EventPopulationSpecialStatisticsVO eventPopulationVO;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/large/AreaStreetDetailResp.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/large/AreaStreetDetailResp.java
new file mode 100644
index 0000000..e55440c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/large/AreaStreetDetailResp.java
@@ -0,0 +1,31 @@
+package com.panzhihua.common.model.dtos.community.large;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class AreaStreetDetailResp {
+
+    @ApiModelProperty("街道 总和")
+    private Integer streetCount;
+
+    @ApiModelProperty("社区 总和")
+    private Integer actCount;
+
+    @ApiModelProperty("人口 总和")
+    private Integer populationCount;
+
+    @ApiModelProperty("小区 总和")
+    private Integer villageCount;
+
+    @ApiModelProperty("房屋 总和")
+    private Integer houseCount;
+
+    @ApiModelProperty("城市小区 总和")
+    private Integer cityVillageCount;
+
+    @ApiModelProperty("农村小区 总和")
+    private Integer countryVillageCount;
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/large/SumAreaStreetResp.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/large/SumAreaStreetResp.java
new file mode 100644
index 0000000..dd4c409
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/large/SumAreaStreetResp.java
@@ -0,0 +1,28 @@
+package com.panzhihua.common.model.dtos.community.large;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class SumAreaStreetResp {
+
+    @ApiModelProperty("区 总和")
+    private Integer areaCount;
+
+    @ApiModelProperty("街道 总和")
+    private Integer streetCount;
+
+    @ApiModelProperty("社区 总和")
+    private Integer actCount;
+
+    @ApiModelProperty("人口 总和")
+    private Integer populationCount;
+
+    @ApiModelProperty("小区 总和")
+    private Integer villageCount;
+
+    @ApiModelProperty("房屋 总和")
+    private Integer houseCount;
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/BindUserPhoneDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/BindUserPhoneDTO.java
new file mode 100644
index 0000000..0b381da
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/BindUserPhoneDTO.java
@@ -0,0 +1,33 @@
+package com.panzhihua.common.model.dtos.community.microCommercialStreet;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Pattern;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: BindUserPhoneDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 商业街用户绑定手机号
+ * @author: hans
+ * @date: 2022/01/13 10:58
+ */
+@Data
+@ApiModel("商业街用户绑定手机号")
+public class BindUserPhoneDTO {
+
+    @ApiModelProperty("手机号")
+    @NotBlank(message = "手机号不能为空")
+    @Pattern(message = "手机号格式错误", regexp = "^(13[0-9]|14[01456879]|15[0-3,5-9]|16[2567]|17[0-8]|18[0-9]|19[0-3,5-9])\\d{8}$")
+    private String phone;
+
+    @ApiModelProperty("验证码")
+    @NotBlank(message = "验证码不能为空")
+    private String code;
+
+    @ApiModelProperty("openId")
+    @NotBlank(message = "openId不能为空")
+    private String openId;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/DeleteProductDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/DeleteProductDTO.java
new file mode 100644
index 0000000..20cad4b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/DeleteProductDTO.java
@@ -0,0 +1,28 @@
+package com.panzhihua.common.model.dtos.community.microCommercialStreet;
+
+import java.util.List;
+
+import javax.validation.constraints.NotEmpty;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: DeleteProductDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 删除产品信息请求参数
+ * @author: hans
+ * @date: 2022/01/11 16:24
+ */
+@Data
+@ApiModel("删除产品信息请求参数")
+public class DeleteProductDTO {
+
+    @ApiModelProperty(value = "产品id列表", required = true)
+    @NotEmpty(message = "产品id列表不能为空")
+    private List<Long> productIds;
+
+    @ApiModelProperty(value = "处理人", hidden = true)
+    private Long updatedBy;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/DisableOrEnableMcsMerchantDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/DisableOrEnableMcsMerchantDTO.java
new file mode 100644
index 0000000..b69677b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/DisableOrEnableMcsMerchantDTO.java
@@ -0,0 +1,30 @@
+package com.panzhihua.common.model.dtos.community.microCommercialStreet;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: DisableOrEnableMcsMerchantDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 禁用/启用数字商业街商家请求参数
+ * @author: hans
+ * @date: 2021/12/29 14:35
+ */
+@Data
+@ApiModel("禁用/启用数字商业街商家请求参数")
+public class DisableOrEnableMcsMerchantDTO {
+
+    @ApiModelProperty(value = "处理类型(1.启用 2.禁用)", required = true, allowableValues = "1,2")
+    @NotNull(message = "处理类型不能为空")
+    private Integer type;
+
+    @ApiModelProperty(value = "商家id", required = true)
+    @NotNull(message = "商家id不能为空")
+    private Long merchantId;
+
+    @ApiModelProperty(value = "处理人", hidden = true)
+    private Long updatedBy;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/LoginWithPhoneDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/LoginWithPhoneDTO.java
new file mode 100644
index 0000000..445c4b5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/LoginWithPhoneDTO.java
@@ -0,0 +1,29 @@
+package com.panzhihua.common.model.dtos.community.microCommercialStreet;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Pattern;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: LoginWithPhoneDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 手机号登录请求参数
+ * @author: hans
+ * @date: 2022/01/06 16:40
+ */
+@Data
+@ApiModel("手机号登录请求参数")
+public class LoginWithPhoneDTO {
+
+    @ApiModelProperty("手机号")
+    @NotBlank(message = "手机号不能为空")
+    @Pattern(message = "手机号格式错误", regexp = "^(13[0-9]|14[01456879]|15[0-3,5-9]|16[2567]|17[0-8]|18[0-9]|19[0-3,5-9])\\d{8}$")
+    private String phone;
+
+    @ApiModelProperty("验证码")
+    @NotBlank(message = "验证码不能为空")
+    private String code;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/McsEvaluateDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/McsEvaluateDTO.java
new file mode 100644
index 0000000..e5bfebd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/McsEvaluateDTO.java
@@ -0,0 +1,41 @@
+package com.panzhihua.common.model.dtos.community.microCommercialStreet;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: McsEvaluateDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 评价记录请求
+ * @author: hans
+ * @date: 2022/01/08 13:13
+ */
+@Data
+@ApiModel("评价记录请求")
+public class McsEvaluateDTO {
+
+    @ApiModelProperty("戳戳券码id")
+    @NotNull(groups = {AddGroup.class}, message = "戳戳券码id不能为空")
+    private Long couponId;
+
+    @ApiModelProperty("评分(1.差 2.一般 3.还不错 4.很满意 5.强烈推荐)")
+    @NotNull(groups = {AddGroup.class}, message = "评分不能为空")
+    private Integer star;
+
+    @ApiModelProperty("评价内容")
+    @NotBlank(groups = {AddGroup.class}, message = "评价内容不能为空")
+    private String content;
+
+    @ApiModelProperty("评价图片(多张逗号隔开)")
+    @NotBlank(groups = {AddGroup.class}, message = "评价图片不能为空")
+    private String photos;
+
+    @ApiModelProperty(value = "创建人", hidden = true)
+    private Long userId;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/McsGameDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/McsGameDTO.java
new file mode 100644
index 0000000..d16c864
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/McsGameDTO.java
@@ -0,0 +1,85 @@
+package com.panzhihua.common.model.dtos.community.microCommercialStreet;
+
+import java.util.Date;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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;
+
+/**
+ * @title: McsGameDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 新增/编辑戳戳游戏
+ * @author: hans
+ * @date: 2021/12/31 15:42
+ */
+@Data
+@ApiModel("新增/编辑戳戳游戏")
+public class McsGameDTO {
+
+    @ApiModelProperty("游戏ID")
+    @NotNull(groups = {PutGroup.class}, message = "游戏ID不能为空")
+    private Long id;
+
+    @ApiModelProperty("游戏名称")
+    @NotBlank(groups = {AddGroup.class}, message = "游戏名称不能为空")
+    private String name;
+
+    @ApiModelProperty("戳戳卷数量")
+    @NotNull(groups = {AddGroup.class}, message = "戳戳卷数量不能为空")
+    private Integer coupons;
+
+    @ApiModelProperty("游戏类别(1.戳戳币游戏 2.体验游戏)")
+    @NotNull(groups = {AddGroup.class}, message = "游戏类别不能为空")
+    private Integer type;
+
+    @ApiModelProperty("奖励类型(1.免费领 2.产品试用 3.消费赠礼 4.优惠券)")
+    private Integer awardType;
+
+    @ApiModelProperty("戳戳币分配方式(1.随机分配 2.平均分配)")
+    private Integer allocation;
+
+    @ApiModelProperty("戳戳币数量")
+    private Integer coins;
+
+    @ApiModelProperty("地址")
+    @NotBlank(groups = {AddGroup.class}, message = "地址不能为空")
+    private String address;
+
+    @ApiModelProperty("纬度")
+    @NotBlank(groups = {AddGroup.class}, message = "纬度不能为空")
+    private String lat;
+
+    @ApiModelProperty("经度")
+    @NotBlank(groups = {AddGroup.class}, message = "经度不能为空")
+    private String lon;
+
+    @ApiModelProperty("失效时间")
+    @NotNull(groups = {AddGroup.class}, message = "失效时间不能为空")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date expireAt;
+
+    @ApiModelProperty("封面")
+    @NotBlank(groups = {AddGroup.class}, message = "封面不能为空")
+    private String cover;
+
+    @ApiModelProperty("其他图片(多张图片以逗号隔开)")
+    private String otherImages;
+
+    @ApiModelProperty("游戏介绍")
+    @NotBlank(groups = {AddGroup.class}, message = "游戏介绍不能为空")
+    private String introduction;
+
+    @ApiModelProperty(value = "创建人", hidden = true)
+    private Long createdBy;
+
+    @ApiModelProperty(value = "更新人", hidden = true)
+    private Long updatedBy;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/McsInfoDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/McsInfoDTO.java
new file mode 100644
index 0000000..5769158
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/McsInfoDTO.java
@@ -0,0 +1,57 @@
+package com.panzhihua.common.model.dtos.community.microCommercialStreet;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+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;
+
+/**
+ * @title: McsInfoDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 新增/编辑戳戳资讯
+ * @author: hans
+ * @date: 2022/01/05 10:06
+ */
+@Data
+@ApiModel("新增/编辑戳戳资讯")
+public class McsInfoDTO {
+
+    @ApiModelProperty("资讯ID")
+    @NotNull(groups = {PutGroup.class}, message = "资讯ID不能为空")
+    private Long id;
+
+    @ApiModelProperty("资讯标题")
+    @NotBlank(groups = {AddGroup.class}, message = "资讯标题不能为空")
+    private String name;
+
+    @ApiModelProperty("地址")
+    @NotBlank(groups = {AddGroup.class}, message = "地址不能为空")
+    private String address;
+
+    @ApiModelProperty("纬度")
+    @NotBlank(groups = {AddGroup.class}, message = "纬度不能为空")
+    private String lat;
+
+    @ApiModelProperty("经度")
+    @NotBlank(groups = {AddGroup.class}, message = "经度不能为空")
+    private String lon;
+
+    @ApiModelProperty("封面")
+    @NotBlank(groups = {AddGroup.class}, message = "封面不能为空")
+    private String cover;
+
+    @ApiModelProperty("资讯内容")
+    @NotBlank(groups = {AddGroup.class}, message = "资讯内容不能为空")
+    private String content;
+
+    @ApiModelProperty(value = "创建人", hidden = true)
+    private Long createdBy;
+
+    @ApiModelProperty(value = "更新人", hidden = true)
+    private Long updatedBy;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/McsMerchantDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/McsMerchantDTO.java
new file mode 100644
index 0000000..b4fc5b1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/McsMerchantDTO.java
@@ -0,0 +1,91 @@
+package com.panzhihua.common.model.dtos.community.microCommercialStreet;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+
+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;
+
+/**
+ * @title: McsMerchantDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description:
+ * @author: hans
+ * @date: 2021/12/28 14:32
+ */
+@Data
+@ApiModel("新增/编辑微商业街商家")
+public class McsMerchantDTO {
+
+    @ApiModelProperty("微商业街商家ID")
+    @NotNull(groups = {PutGroup.class}, message = "微商业街商家ID不能为空")
+    private Long id;
+
+    @ApiModelProperty("商家名称")
+    @NotBlank(groups = {AddGroup.class}, message = "商家名称不能为空")
+    private String name;
+
+    @ApiModelProperty("手机号")
+    @Pattern(groups = {AddGroup.class}, message = "手机号格式错误", regexp = "^(13[0-9]|14[01456879]|15[0-3,5-9]|16[2567]|17[0-8]|18[0-9]|19[0-3,5-9])\\d{8}$")
+    private String phone;
+
+    @ApiModelProperty("商家级别(1.临时商家 2.合作商家)")
+    @NotNull(groups = {AddGroup.class}, message = "商家级别不能为空")
+    private Integer level;
+
+    @ApiModelProperty("点亮天数")
+    @NotNull(groups = {AddGroup.class}, message = "点亮天数不能为空")
+    private Integer litDays;
+
+    @ApiModelProperty("商家账号")
+    @NotBlank(groups = {AddGroup.class}, message = "商家账号不能为空")
+    private String account;
+
+    @ApiModelProperty("密码")
+//    @Pattern(groups = {AddGroup.class}, message = "请输入8-12位密码,由英文,数字和特殊符号组成",
+//            regexp = "^(?=.*[A-Za-z])(?=(.*[\\d]){1,})(?=(.*[\\W]){1,})(?!.*\\s).{8,12}$")
+    @NotBlank(groups = {AddGroup.class}, message = "密码不能为空")
+    private String password;
+
+    @ApiModelProperty("账号状态(1.启用 2.禁用)")
+    @NotNull(groups = {AddGroup.class}, message = "账号状态不能为空")
+    private Integer accountStatus;
+
+    @ApiModelProperty("商家logo")
+    private String logo;
+
+    @ApiModelProperty("戳戳点亮上限(发布次数上限)")
+    private Integer publishLimit;
+
+    @ApiModelProperty("商家地址")
+    private String address;
+
+    @ApiModelProperty("纬度")
+    private String lat;
+
+    @ApiModelProperty("经度")
+    private String lon;
+
+    @ApiModelProperty("商家介绍")
+    private String introduction;
+
+    @ApiModelProperty(value = "创建人", hidden = true)
+    private Long createdBy;
+
+    @ApiModelProperty(value = "更新人", hidden = true)
+    private Long updatedBy;
+
+    @ApiModelProperty(value = "所属商家", hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "用户头像", hidden = true)
+    private String imageUrl;
+
+    @ApiModelProperty(value = "openId", hidden = true)
+    private String openId;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/McsProductDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/McsProductDTO.java
new file mode 100644
index 0000000..7cf3052
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/McsProductDTO.java
@@ -0,0 +1,48 @@
+package com.panzhihua.common.model.dtos.community.microCommercialStreet;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+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;
+
+import java.util.List;
+
+/**
+ * @title: McsProductDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 新增/编辑产品信息
+ * @author: hans
+ * @date: 2022/01/05 11:25
+ */
+@Data
+@ApiModel("新增/编辑产品信息")
+public class McsProductDTO {
+
+    @ApiModelProperty("产品ID")
+    @NotNull(groups = {PutGroup.class}, message = "产品ID不能为空")
+    private Long id;
+
+    @ApiModelProperty("产品名称")
+    @NotBlank(groups = {AddGroup.class}, message = "产品名称不能为空")
+    private String name;
+
+    @ApiModelProperty("产品图片")
+    private String image;
+
+    @ApiModelProperty("产品介绍")
+    private String introduction;
+
+    @ApiModelProperty("产品标签id列表")
+    private List<Long> labelIds;
+
+    @ApiModelProperty(value = "创建人", hidden = true)
+    private Long createdBy;
+
+    @ApiModelProperty(value = "更新人", hidden = true)
+    private Long updatedBy;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/PageJoinGameListDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/PageJoinGameListDTO.java
new file mode 100644
index 0000000..88964e8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/PageJoinGameListDTO.java
@@ -0,0 +1,36 @@
+package com.panzhihua.common.model.dtos.community.microCommercialStreet;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: PageMyCouponDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 分页查询我的评价-参与游戏列表
+ * @author: hans
+ * @date: 2022/01/08 12:34
+ */
+@Data
+@ApiModel("分页查询我的评价-参与游戏列表")
+public class PageJoinGameListDTO {
+
+    @ApiModelProperty("关键字")
+    private String keyword;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    @NotNull(message = "分页参数不能为空")
+    @Min(value = 1)
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    @NotNull(message = "分页参数不能为空")
+    @Min(value = 1)
+    private Long pageSize;
+
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/PageMcsEvaluateDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/PageMcsEvaluateDTO.java
new file mode 100644
index 0000000..5dbec26
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/PageMcsEvaluateDTO.java
@@ -0,0 +1,42 @@
+package com.panzhihua.common.model.dtos.community.microCommercialStreet;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: PageMcsEvaluateDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 分页查询戳戳评价记录请求参数
+ * @author: hans
+ * @date: 2021/12/31 13:22
+ */
+@Data
+@ApiModel("分页查询戳戳评价记录请求参数")
+public class PageMcsEvaluateDTO {
+
+    @ApiModelProperty("关键词")
+    private String keyword;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    @NotNull(message = "分页参数不能为空")
+    @Min(value = 1)
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    @NotNull(message = "分页参数不能为空")
+    @Min(value = 1)
+    private Long pageSize;
+
+    @ApiModelProperty("1.我的评价")
+    private Integer isMy;
+
+    @ApiModelProperty("戳戳游戏id")
+    private Long gameId;
+
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/PageMcsGameDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/PageMcsGameDTO.java
new file mode 100644
index 0000000..13fb057
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/PageMcsGameDTO.java
@@ -0,0 +1,54 @@
+package com.panzhihua.common.model.dtos.community.microCommercialStreet;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: PageMcsGameDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 分页查询戳戳游戏请求参数
+ * @author: hans
+ * @date: 2021/12/30 15:20
+ */
+@Data
+@ApiModel("分页查询戳戳游戏请求参数")
+public class PageMcsGameDTO {
+
+    @ApiModelProperty("关键词")
+    private String keyword;
+
+    @ApiModelProperty("游戏类别(1.戳戳币游戏 2.体验游戏)")
+    private Integer type;
+
+    @ApiModelProperty("状态(1.未发布 2.进行中 3.已下架 4.已结束)")
+    private Integer status;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    @NotNull(message = "分页参数不能为空")
+    @Min(value = 1)
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    @NotNull(message = "分页参数不能为空")
+    @Min(value = 1)
+    private Long pageSize;
+
+    @ApiModelProperty("纬度")
+    private String lat;
+
+    @ApiModelProperty("经度")
+    private String lon;
+
+    @ApiModelProperty("距离(千米)")
+    private Integer distance;
+
+    @ApiModelProperty("商家id")
+    private Long merchantId;
+
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/PageMcsInformationDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/PageMcsInformationDTO.java
new file mode 100644
index 0000000..5527a1a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/PageMcsInformationDTO.java
@@ -0,0 +1,51 @@
+package com.panzhihua.common.model.dtos.community.microCommercialStreet;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: PageMcsInformationDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 分页查询戳戳资讯请求参数
+ * @author: hans
+ * @date: 2021/12/30 17:44
+ */
+@Data
+@ApiModel("分页查询戳戳资讯请求参数")
+public class PageMcsInformationDTO {
+
+    @ApiModelProperty("关键词")
+    private String keyword;
+
+    @ApiModelProperty("状态(1.未发布 2.已发布 3.已下架)")
+    private Integer status;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    @NotNull(message = "分页参数不能为空")
+    @Min(value = 1)
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    @NotNull(message = "分页参数不能为空")
+    @Min(value = 1)
+    private Long pageSize;
+
+    @ApiModelProperty("纬度")
+    private String lat;
+
+    @ApiModelProperty("经度")
+    private String lon;
+
+    @ApiModelProperty("距离(千米)")
+    private Integer distance;
+
+    @ApiModelProperty("商家id")
+    private Long merchantId;
+
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/PageMcsMerchantDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/PageMcsMerchantDTO.java
new file mode 100644
index 0000000..fdf6777
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/PageMcsMerchantDTO.java
@@ -0,0 +1,54 @@
+package com.panzhihua.common.model.dtos.community.microCommercialStreet;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: PageMcsMerchantDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 分页查询微商业街商家请求参数
+ * @author: hans
+ * @date: 2021/12/29 14:31
+ */
+@Data
+@ApiModel("分页查询微商业街商家请求参数")
+public class PageMcsMerchantDTO {
+
+    @ApiModelProperty("关键词")
+    private String keyword;
+
+    @ApiModelProperty("账号状态(1.启用 2.禁用)")
+    private Integer accountStatus;
+
+    @ApiModelProperty("商家级别(1.临时商家 2.合作商家)")
+    private Integer level;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    @NotNull(message = "分页参数不能为空")
+    @Min(value = 1)
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    @NotNull(message = "分页参数不能为空")
+    @Min(value = 1)
+    private Long pageSize;
+
+    @ApiModelProperty("查询类型(1.戳戳游戏 2.戳戳资讯)")
+    private Integer type;
+
+    @ApiModelProperty("纬度")
+    private String lat;
+
+    @ApiModelProperty("经度")
+    private String lon;
+
+    @ApiModelProperty("距离,单位km")
+    private Integer distance;
+
+    @ApiModelProperty("x km以上时,此值为1")
+    private Integer isMore;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/PageMcsProductDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/PageMcsProductDTO.java
new file mode 100644
index 0000000..b435318
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/PageMcsProductDTO.java
@@ -0,0 +1,42 @@
+package com.panzhihua.common.model.dtos.community.microCommercialStreet;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: PageMcsProductDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 分页查询产品信息请求参数
+ * @author: hans
+ * @date: 2022/01/05 11:30
+ */
+@Data
+@ApiModel("分页查询产品信息请求参数")
+public class PageMcsProductDTO {
+
+    @ApiModelProperty("关键词")
+    private String keyword;
+
+    @ApiModelProperty("状态(1.上架中 2.已下架)")
+    private Integer status;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    @NotNull(message = "分页参数不能为空")
+    @Min(value = 1)
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    @NotNull(message = "分页参数不能为空")
+    @Min(value = 1)
+    private Long pageSize;
+
+    @ApiModelProperty(value = "商家id")
+    private Long merchantId;
+
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/PageVerifyRecordDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/PageVerifyRecordDTO.java
new file mode 100644
index 0000000..f9b2107
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/PageVerifyRecordDTO.java
@@ -0,0 +1,50 @@
+package com.panzhihua.common.model.dtos.community.microCommercialStreet;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @title: PageVerifyRecordDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 分页查询核销记录
+ * @author: hans
+ * @date: 2022/01/08 14:53
+ */
+@Data
+@ApiModel("分页查询核销记录")
+public class PageVerifyRecordDTO {
+
+    @ApiModelProperty("关键字")
+    private String keyword;
+
+    @ApiModelProperty("游戏类别(1.戳戳币游戏 2.体验游戏)")
+    private Integer type;
+
+    @ApiModelProperty("核销时间-起")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date verifiedBegin;
+
+    @ApiModelProperty("核销时间-止")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date verifiedEnd;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    @NotNull(message = "分页参数不能为空")
+    @Min(value = 1)
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    @NotNull(message = "分页参数不能为空")
+    @Min(value = 1)
+    private Long pageSize;
+
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/PutUserInfoDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/PutUserInfoDTO.java
new file mode 100644
index 0000000..d395b20
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/PutUserInfoDTO.java
@@ -0,0 +1,26 @@
+package com.panzhihua.common.model.dtos.community.microCommercialStreet;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: PutUserInfoDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 修改用戶信息请求参数
+ * @author: hans
+ * @date: 2022/01/08 16:24
+ */
+@Data
+@ApiModel("修改用戶信息请求参数")
+public class PutUserInfoDTO {
+
+    @ApiModelProperty("头像")
+    private String imageUrl;
+
+    @ApiModelProperty("昵称")
+    private String name;
+
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/SetPopularForGameDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/SetPopularForGameDTO.java
new file mode 100644
index 0000000..72ff4f7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/SetPopularForGameDTO.java
@@ -0,0 +1,30 @@
+package com.panzhihua.common.model.dtos.community.microCommercialStreet;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: SetPopularForGameDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 设为/取消游戏热门请求参数
+ * @author: hans
+ * @date: 2021/12/30 16:29
+ */
+@Data
+@ApiModel("设为/取消游戏热门请求参数")
+public class SetPopularForGameDTO {
+
+    @ApiModelProperty(value = "处理类型(1.设为热门 2.取消热门)", required = true, allowableValues = "1,2")
+    @NotNull(message = "处理类型不能为空")
+    private Integer type;
+
+    @ApiModelProperty(value = "游戏id", required = true)
+    @NotNull(message = "游戏id不能为空")
+    private Long gameId;
+
+    @ApiModelProperty(value = "处理人", hidden = true)
+    private Long updatedBy;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/SetShelfForGameDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/SetShelfForGameDTO.java
new file mode 100644
index 0000000..a4927c4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/SetShelfForGameDTO.java
@@ -0,0 +1,30 @@
+package com.panzhihua.common.model.dtos.community.microCommercialStreet;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: SetPopularForGameDTO1
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 上架/下架戳戳游戏请求参数
+ * @author: hans
+ * @date: 2021/12/30 16:43
+ */
+@Data
+@ApiModel("上架/下架戳戳游戏请求参数")
+public class SetShelfForGameDTO {
+
+    @ApiModelProperty(value = "处理类型(1.上架 2.下架)", required = true, allowableValues = "1,2")
+    @NotNull(message = "处理类型不能为空")
+    private Integer type;
+
+    @ApiModelProperty(value = "游戏id", required = true)
+    @NotNull(message = "游戏id不能为空")
+    private Long gameId;
+
+    @ApiModelProperty(value = "处理人", hidden = true)
+    private Long updatedBy;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/SetShelfForInfoDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/SetShelfForInfoDTO.java
new file mode 100644
index 0000000..30ddeb6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/SetShelfForInfoDTO.java
@@ -0,0 +1,30 @@
+package com.panzhihua.common.model.dtos.community.microCommercialStreet;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: SetShelfForInfoDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 上架/下架戳戳资讯请求参数
+ * @author: hans
+ * @date: 2021/12/30 17:45
+ */
+@Data
+@ApiModel("上架/下架戳戳资讯请求参数")
+public class SetShelfForInfoDTO {
+
+    @ApiModelProperty(value = "处理类型(1.上架 2.下架)", required = true, allowableValues = "1,2")
+    @NotNull(message = "处理类型不能为空")
+    private Integer type;
+
+    @ApiModelProperty(value = "资讯id", required = true)
+    @NotNull(message = "资讯id不能为空")
+    private Long infoId;
+
+    @ApiModelProperty(value = "处理人", hidden = true)
+    private Long updatedBy;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/SetShelfForProductDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/SetShelfForProductDTO.java
new file mode 100644
index 0000000..b8132b5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/microCommercialStreet/SetShelfForProductDTO.java
@@ -0,0 +1,33 @@
+package com.panzhihua.common.model.dtos.community.microCommercialStreet;
+
+import java.util.List;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: SetShelfForProductDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 上架/下架产品信息请求参数
+ * @author: hans
+ * @date: 2022/01/05 11:27
+ */
+@Data
+@ApiModel("上架/下架产品信息请求参数")
+public class SetShelfForProductDTO {
+
+    @ApiModelProperty(value = "处理类型(1.上架 2.下架)", required = true, allowableValues = "1,2")
+    @NotNull(message = "处理类型不能为空")
+    private Integer type;
+
+    @ApiModelProperty(value = "产品id列表", required = true)
+    @NotEmpty(message = "产品id列表不能为空")
+    private List<Long> productIds;
+
+    @ApiModelProperty(value = "处理人", hidden = true)
+    private Long updatedBy;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/questnaire/StatisticsSummaryDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/questnaire/StatisticsSummaryDTO.java
new file mode 100644
index 0000000..828d1b8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/questnaire/StatisticsSummaryDTO.java
@@ -0,0 +1,20 @@
+package com.panzhihua.common.model.dtos.community.questnaire;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("统计汇总请求参数")
+public class StatisticsSummaryDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "调查问卷id")
+    private Long questId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/rentingHouses/NearbyDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/rentingHouses/NearbyDTO.java
new file mode 100644
index 0000000..3629871
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/rentingHouses/NearbyDTO.java
@@ -0,0 +1,23 @@
+package com.panzhihua.common.model.dtos.community.rentingHouses;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel
+public class NearbyDTO {
+    @ApiModelProperty("经度")
+    private String longitude;
+    @ApiModelProperty("纬度")
+    private String latitude;
+    @ApiModelProperty("距离(千米)")
+    private Integer distance;
+    @ApiModelProperty("关键字")
+    private String keyword;
+    @ApiModelProperty("社区id")
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/rentingHouses/PageRentingHouseRegisterDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/rentingHouses/PageRentingHouseRegisterDTO.java
new file mode 100644
index 0000000..b54050f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/rentingHouses/PageRentingHouseRegisterDTO.java
@@ -0,0 +1,91 @@
+package com.panzhihua.common.model.dtos.community.rentingHouses;
+
+import javax.validation.constraints.NotNull;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @title: PageRentingHouseRegisterDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 分页查询房屋租赁信息
+ * @author: hans
+ * @date: 2021/11/24 16:07
+ */
+@Data
+@ApiModel("分页查询房屋租赁信息请求参数")
+public class PageRentingHouseRegisterDTO {
+
+    @ApiModelProperty(value = "关键字")
+    private String keyword;
+
+    @ApiModelProperty(value = "户型(室数量)")
+    private Integer brn;
+
+    @ApiModelProperty(value = "更多户型(x室以上此值应传入1)")
+    private Integer moreBrn;
+
+    @ApiModelProperty(value = "装修情况(1.毛坯房 2.简装 3.精装修)")
+    private Integer decoration;
+
+    @ApiModelProperty(value = "朝向(1.东 2.南 3.西 4.北 5.东南 6.东北 7.西南 8.西北 9.南北 10.东西)")
+    private Integer orientation;
+
+    @ApiModelProperty(value = "最小面积")
+    private BigDecimal minArea;
+
+    @ApiModelProperty(value = "最大面积")
+    private BigDecimal maxArea;
+
+    @ApiModelProperty(value = "最低租金")
+    private BigDecimal minRentMoney;
+
+    @ApiModelProperty(value = "最高租金")
+    private BigDecimal maxRentMoney;
+
+    @ApiModelProperty(value = "房屋状态(1、待发布 2、待出租 3、出租中 4、已退租")
+    @NotNull(message = "房屋状态不能为空")
+    private Integer status;
+
+    @ApiModelProperty(value = "1、待认证 2、待发布 3、待出租 4、保留中 5、出租中 6、已超时 7、已到期)")
+    private Integer detailStatus;
+
+    @ApiModelProperty(value = "到期时间-起")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date expireDateBegin;
+
+    @ApiModelProperty(value = "到期时间-止")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date expireDateEnd;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    @NotNull(message = "分页参数不能为空")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    @NotNull(message = "分页参数不能为空")
+    private Long pageSize;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty("排序条件 1距离远到近 2 近到远 3 租金高到低 4 租金低到高")
+    private Integer sort;
+
+    @ApiModelProperty(value = "房屋的经度")
+    private String longitude;
+
+    @ApiModelProperty(value = "房屋的纬度")
+    private String latitude;
+
+    @ApiModelProperty("我的房源时传入1")
+    private Integer isMy;
+
+    @ApiModelProperty(value = "当前用户id", hidden = true)
+    private Long currentUserId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/rentingHouses/PageRentingHousesConfigDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/rentingHouses/PageRentingHousesConfigDTO.java
new file mode 100644
index 0000000..87b2adc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/rentingHouses/PageRentingHousesConfigDTO.java
@@ -0,0 +1,27 @@
+package com.panzhihua.common.model.dtos.community.rentingHouses;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: PageRentingHousesConfigDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description:
+ * @author: hans
+ * @date: 2021/11/23 13:42
+ */
+@Data
+@ApiModel("分页查询房屋租赁配置请求参数")
+public class PageRentingHousesConfigDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    @NotNull(message = "分页参数不能为空")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    @NotNull(message = "分页参数不能为空")
+    private Long pageSize;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/rentingHouses/ReleaseOrCancelHouseDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/rentingHouses/ReleaseOrCancelHouseDTO.java
new file mode 100644
index 0000000..3653375
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/rentingHouses/ReleaseOrCancelHouseDTO.java
@@ -0,0 +1,31 @@
+package com.panzhihua.common.model.dtos.community.rentingHouses;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: ReleaseOrCancelHouseDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 发布/取消发布 房源信息请求参数
+ * @author: hans
+ * @date: 2021/11/25 11:10
+ */
+@Data
+@ApiModel("发布/取消发布 房源信息请求参数")
+public class ReleaseOrCancelHouseDTO {
+
+    @ApiModelProperty(value = "请求类型(1.发布 2.取消)", allowableValues = "1,2", required = true)
+    @NotNull(message = "请求类型不能为空")
+    @Min(1)
+    @Max(2)
+    private Integer type;
+
+    @ApiModelProperty(value = "房源登记id", required = true)
+    @NotNull(message = "房源登记id不能为空")
+    private Long registerId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/rentingHouses/RentingHouseRegisterDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/rentingHouses/RentingHouseRegisterDTO.java
new file mode 100644
index 0000000..68022ef
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/rentingHouses/RentingHouseRegisterDTO.java
@@ -0,0 +1,175 @@
+package com.panzhihua.common.model.dtos.community.rentingHouses;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+
+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;
+
+/**
+ * @title: RentingHouseRegisterDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 房源登记请求类
+ * @author: hans
+ * @date: 2021/11/24 10:26
+ */
+@Data
+@ApiModel("房源登记请求类")
+public class RentingHouseRegisterDTO {
+
+    @ApiModelProperty("id")
+    @NotNull(groups = PutGroup.class, message = "id不能为空")
+    private Long id;
+
+    @ApiModelProperty(value = "地址")
+    @NotBlank(groups = AddGroup.class, message = "地址不能为空")
+    private String address;
+
+    @ApiModelProperty(value = "小区名称")
+    @NotBlank(groups = AddGroup.class, message = "小区名称不能为空")
+    private String villageName;
+
+    @ApiModelProperty(value = "街/路/巷")
+    @NotBlank(groups = AddGroup.class, message = "街/路/巷不能为空")
+    private String alley;
+
+    @ApiModelProperty(value = "街/路/巷号")
+    @NotBlank(groups = AddGroup.class, message = "街/路/巷号不能为空")
+    private String houseNum;
+
+    @ApiModelProperty(value = "楼栋号")
+    private String buildingNo;
+
+    @ApiModelProperty(value = "单元号")
+    private String unitNo;
+
+    @ApiModelProperty(value = "楼层号")
+    private String floor;
+
+    @ApiModelProperty(value = "户室(房间号)")
+    private String houseNo;
+
+    @ApiModelProperty(value = "看房电话")
+    @Pattern(groups = {AddGroup.class}, message = "看房电话格式错误", regexp = "^(13[0-9]|14[01456879]|15[0-3,5-9]|16[2567]|17[0-8]|18[0-9]|19[0-3,5-9])\\d{8}$")
+    private String seeHourseTelephone;
+
+    @ApiModelProperty(value = "租房标题")
+    @NotBlank(groups = AddGroup.class, message = "租房标题不能为空")
+    private String title;
+
+    @ApiModelProperty(value = "室数量")
+    @NotNull(groups = {AddGroup.class}, message = "室数量不能为空")
+    private Integer brn;
+
+    @ApiModelProperty(value = "厅数量")
+    @NotNull(groups = {AddGroup.class}, message = "厅数量不能为空")
+    private Integer lrn;
+
+    @ApiModelProperty(value = "卫数量")
+    @NotNull(groups = {AddGroup.class}, message = "卫数量不能为空")
+    private Integer wcn;
+
+    @ApiModelProperty(value = "月租金")
+    @NotNull(groups = {AddGroup.class}, message = "月租金不能为空")
+    private BigDecimal monthlyRentMoney;
+
+    @ApiModelProperty(value = "保证金")
+    @NotNull(groups = {AddGroup.class}, message = "保证金不能为空")
+    private BigDecimal depositMoney;
+
+    @ApiModelProperty(value = "服务费")
+    @NotNull(groups = {AddGroup.class}, message = "服务费不能为空")
+    private BigDecimal serverCharge;
+
+    @ApiModelProperty(value = "定金")
+    @NotNull(groups = {AddGroup.class}, message = "定金不能为空")
+    private BigDecimal dingMoney;
+
+    @ApiModelProperty(value = "建筑面积")
+    private BigDecimal constructArea;
+
+    @ApiModelProperty(value = "总楼层")
+    @NotBlank(groups = AddGroup.class, message = "总楼层不能为空")
+    private String totalFloor;
+
+    @ApiModelProperty(value = "朝向(1东2南3西4北5东南6东北7西南8西北9南北10东西)")
+    private Integer orientation;
+
+    @ApiModelProperty(value = "装修情况(1.毛坯房 2.简装 3.精装修)")
+    @NotNull(groups = {AddGroup.class}, message = "装修情况不能为空")
+    private Integer decoration;
+
+    @ApiModelProperty(value = "看房时间(1.随时看房 2.提前预约)")
+    @NotNull(groups = {AddGroup.class}, message = "看房时间不能为空")
+    private Integer seeHourseDate;
+
+    @ApiModelProperty(value = "房源介绍")
+    private String hourseDescription;
+
+    @ApiModelProperty(value = "入住要求")
+    private String checkInRequirement;
+
+    @ApiModelProperty(value = "房内物品")
+    private String hourseItem;
+
+    @ApiModelProperty(value = "房屋标签(多个逗号隔开)")
+    private String label;
+
+    @ApiModelProperty(value = "房主姓名")
+    @NotBlank(groups = AddGroup.class, message = "房主姓名不能为空")
+    private String hourseOwnerName;
+
+    @ApiModelProperty(value = "房主身份证")
+    @NotBlank(groups = AddGroup.class, message = "房主身份证不能为空")
+    private String hourseIdCard;
+
+    @ApiModelProperty(value = "房主电话")
+    @Pattern(groups = {AddGroup.class}, message = "房主电话格式错误", regexp = "^(13[0-9]|14[01456879]|15[0-3,5-9]|16[2567]|17[0-8]|18[0-9]|19[0-3,5-9])\\d{8}$")
+    private String hoursePhone;
+
+    @ApiModelProperty(value = "房屋的经度")
+    @NotBlank(groups = AddGroup.class, message = "房屋的经度不能为空")
+    private String longitude;
+
+    @ApiModelProperty(value = "房屋的纬度")
+    @NotBlank(groups = AddGroup.class, message = "房屋的纬度不能为空")
+    private String latitude;
+
+    @ApiModelProperty(value = "房源图片")
+    private List<String> housePictures;
+
+    @ApiModelProperty(value = "产权证明")
+    @NotEmpty(groups = {AddGroup.class}, message = "产权证明不能为空")
+    private List<String> propertyPictures;
+
+    @ApiModelProperty(value = "证件照片")
+    @NotEmpty(groups = {AddGroup.class}, message = "证件照片不能为空")
+    private List<String> credentialsPictures;
+
+    @ApiModelProperty(value = "当前用户", hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "认证状态(1、未认证2、已认证)", hidden = true)
+    private Integer authStatus;
+
+    @ApiModelProperty(value = "1、待认证2、待发布3、待出租4、保留中 5出租中6、已超时7、已到期)", hidden = true)
+    private Integer detailStatus;
+
+    @ApiModelProperty(value = "房东的用户ID,用户表记录了房东的详细信息", hidden = true)
+    private Long hourseOwnerUserId;
+
+    @ApiModelProperty(value = "areaCode", hidden = true)
+    private String areaCode;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/rentingHouses/RentingHousesConfigDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/rentingHouses/RentingHousesConfigDTO.java
new file mode 100644
index 0000000..547a64a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/rentingHouses/RentingHousesConfigDTO.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.dtos.community.rentingHouses;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: RentingHousesConfigDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 房屋租赁配置请求参数
+ * @author: hans
+ * @date: 2021/11/23 13:54
+ */
+@Data
+@ApiModel("房屋租赁配置请求参数")
+public class RentingHousesConfigDTO {
+
+    @ApiModelProperty("id")
+    @NotNull(message = "id不能为空")
+    private Long id;
+
+    @ApiModelProperty("配置内容(标签类型用逗号隔开)")
+    @NotBlank(message = "配置内容为空")
+    private String value;
+
+    @ApiModelProperty(value = "当前用户", hidden = true)
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/AddReserveAdminDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/AddReserveAdminDTO.java
new file mode 100644
index 0000000..148c085
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/AddReserveAdminDTO.java
@@ -0,0 +1,49 @@
+package com.panzhihua.common.model.dtos.community.reserve;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel("新增预约登记请求参数")
+public class AddReserveAdminDTO {
+
+    @ApiModelProperty(value = "类型(1.预约 2.登记)")
+    private Integer type;
+
+    @ApiModelProperty(value = "主题")
+    private String title;
+
+    @ApiModelProperty(value = "数量上限数量(如果不限制数量,这里传0)")
+    private Integer joinAllCount;
+
+    @ApiModelProperty(value = "图标类型(1.预设1 2.预设2 3.预设3 4.预设4 5.用户自定义图片)")
+    private Integer imgType;
+
+    @ApiModelProperty(value = "图标url(当img_type为5时,此字段的值为图标url地址)")
+    private String imgUrl;
+
+    @ApiModelProperty("广告顶部(1.是   2.否)")
+    private Integer adverPositionTop;
+
+    @ApiModelProperty("广告应用(1.是   2.否)")
+    private Integer adverPositionApplication;
+
+    @ApiModelProperty(value = "社区id",hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "用户id",hidden = true)
+    private Long userId;
+
+    @ApiModelProperty("是否可重复提交(1.是 2.否)")
+    private Integer isRepeat;
+
+    @ApiModelProperty("组件json数据")
+    private String jsonObject;
+
+    @ApiModelProperty("是否发布(1.是 2.否)")
+    private Integer isPublish = 2;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/CancelReserveRecordDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/CancelReserveRecordDTO.java
new file mode 100644
index 0000000..fb2c74c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/CancelReserveRecordDTO.java
@@ -0,0 +1,21 @@
+package com.panzhihua.common.model.dtos.community.reserve;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel("取消预约登记请求参数")
+public class CancelReserveRecordDTO {
+
+    @ApiModelProperty(value = "需要取消的预约记录id集合")
+    private List<Long> ids;
+
+    @ApiModelProperty(value = "取消原因")
+    private String remark;
+
+    @ApiModelProperty(value = "用户id",hidden = true)
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/ComActReserveMakeStatisticsDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/ComActReserveMakeStatisticsDTO.java
new file mode 100644
index 0000000..4b55e05
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/ComActReserveMakeStatisticsDTO.java
@@ -0,0 +1,19 @@
+package com.panzhihua.common.model.dtos.community.reserve;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("查询预约统计汇总数据请求参数")
+public class ComActReserveMakeStatisticsDTO {
+
+    @ApiModelProperty(value = "开始时间查询")
+    private String startTime;
+
+    @ApiModelProperty(value = "结束时间查询")
+    private String endTime;
+
+    @ApiModelProperty(value = "社区id",hidden = true)
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/ComActReserveRegisterStatisticsDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/ComActReserveRegisterStatisticsDTO.java
new file mode 100644
index 0000000..16e0b1d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/ComActReserveRegisterStatisticsDTO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.dtos.community.reserve;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("查询登记统计汇总数据请求参数")
+public class ComActReserveRegisterStatisticsDTO {
+
+    @ApiModelProperty(value = "开始时间查询")
+    private String startTime;
+
+    @ApiModelProperty(value = "结束时间查询")
+    private String endTime;
+
+    @ApiModelProperty(value = "社区id",hidden = true)
+    private Long communityId;
+
+    @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/reserve/EditComActReserveInfoDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/EditComActReserveInfoDTO.java
new file mode 100644
index 0000000..9714f8d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/EditComActReserveInfoDTO.java
@@ -0,0 +1,49 @@
+package com.panzhihua.common.model.dtos.community.reserve;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 继续预约登记请求参数
+ */
+@Data
+@ApiModel("继续预约登记请求参数")
+public class EditComActReserveInfoDTO {
+    @ApiModelProperty(value = "预约登记id")
+    private Long id;
+    @ApiModelProperty(value = "用户id",hidden = true)
+    private Long userId;
+    @ApiModelProperty(value = "主题")
+    private String title;
+
+    @ApiModelProperty(value = "数量上限数量(如果不限制数量,这里传0)")
+    private Integer joinAllCount;
+
+    @ApiModelProperty(value = "图标类型(1.预设1 2.预设2 3.预设3 4.预设4 5.用户自定义图片)")
+    private Integer imgType;
+
+    @ApiModelProperty(value = "图标url(当img_type为5时,此字段的值为图标url地址)")
+    private String imgUrl;
+
+    @ApiModelProperty("广告顶部(1.是   2.否)")
+    private Integer adverPositionTop;
+
+    @ApiModelProperty("广告应用(1.是   2.否)")
+    private Integer adverPositionApplication;
+
+    @ApiModelProperty("是否可重复提交(1.是 2.否)")
+    private Integer isRepeat;
+
+    @ApiModelProperty("是否发布(1.是 2.否)")
+    private Integer isPublish;
+
+    /**
+     * 类型(1.继续 2.停止 3.发布)
+     */
+    public interface type{
+        int jx = 1;
+        int tz = 2;
+        int fb = 3;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/EditComActReserveStatusDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/EditComActReserveStatusDTO.java
new file mode 100644
index 0000000..a3b75b4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/EditComActReserveStatusDTO.java
@@ -0,0 +1,27 @@
+package com.panzhihua.common.model.dtos.community.reserve;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 修改预约登记状态请求参数
+ */
+@Data
+@ApiModel("修改预约登记状态请求参数")
+public class EditComActReserveStatusDTO {
+    @ApiModelProperty(value = "预约登记id")
+    private Long id;
+    @ApiModelProperty(value = "类型(1.停止 2.发布)")
+    private Integer type;
+    @ApiModelProperty(value = "用户id",hidden = true)
+    private Long userId;
+
+    /**
+     * 类型(1.停止 2.发布)
+     */
+    public interface type{
+        int tz = 1;
+        int fb = 2;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/EditDangerBatchDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/EditDangerBatchDTO.java
new file mode 100644
index 0000000..1bf69f5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/EditDangerBatchDTO.java
@@ -0,0 +1,22 @@
+package com.panzhihua.common.model.dtos.community.reserve;
+
+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;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel("批量设置排查时间")
+public class EditDangerBatchDTO {
+    @ApiModelProperty("id数组")
+    private List<Long> ids;
+    @ApiModelProperty("排查时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date screenTime;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/EditReserveAdminDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/EditReserveAdminDTO.java
new file mode 100644
index 0000000..3cae87d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/EditReserveAdminDTO.java
@@ -0,0 +1,50 @@
+package com.panzhihua.common.model.dtos.community.reserve;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("编辑预约登记请求参数")
+public class EditReserveAdminDTO {
+
+    @ApiModelProperty(value = "预约登记id")
+    private Long id;
+
+    @ApiModelProperty(value = "类型(1.预约 2.登记)")
+    private Integer type;
+
+    @ApiModelProperty(value = "主题")
+    private String title;
+
+    @ApiModelProperty(value = "数量上限数量(如果不限制数量,这里传0)")
+    private Integer joinAllCount;
+
+    @ApiModelProperty(value = "图标类型(1.预设1 2.预设2 3.预设3 4.预设4 5.用户自定义图片)")
+    private Integer imgType;
+
+    @ApiModelProperty(value = "图标url(当img_type为5时,此字段的值为图标url地址)")
+    private String imgUrl;
+
+    @ApiModelProperty("广告顶部(1.是   2.否)")
+    private Integer adverPositionTop;
+
+    @ApiModelProperty("广告应用(1.是   2.否)")
+    private Integer adverPositionApplication;
+
+    @ApiModelProperty(value = "社区id",hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "用户id",hidden = true)
+    private Long userId;
+
+    @ApiModelProperty("是否可重复提交(1.是 2.否)")
+    private Integer isRepeat;
+
+    @ApiModelProperty("组件json数据")
+    private String jsonObject;
+
+    @ApiModelProperty("是否发布(1.是 2.否)")
+    private Integer isPublish;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/MakeHandleAdminDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/MakeHandleAdminDTO.java
new file mode 100644
index 0000000..30d1e42
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/MakeHandleAdminDTO.java
@@ -0,0 +1,37 @@
+package com.panzhihua.common.model.dtos.community.reserve;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel("处理预约记录请求参数")
+public class MakeHandleAdminDTO {
+
+    @ApiModelProperty(value = "批量处理id集合")
+    private List<Long> ids;
+
+    @ApiModelProperty(value = "预约成功时间(格式:yyyy-MM-dd HH:mm:ss)")
+    private String makeTime;
+
+    @ApiModelProperty(value = "预约状态(1.同意 2.拒绝)")
+    private Integer isOk;
+
+    @ApiModelProperty(value = "处理备注")
+    private String remark;
+
+    @ApiModelProperty(value = "用户id",hidden = true)
+    private Long userId;
+
+    private String areaCode;
+
+    /**
+     * 预约状态(1.同意 2.拒绝)
+     */
+    public interface isOk{
+        int yes = 1;
+        int no = 2;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/PageReserveAdminDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/PageReserveAdminDTO.java
new file mode 100644
index 0000000..7b06149
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/PageReserveAdminDTO.java
@@ -0,0 +1,43 @@
+package com.panzhihua.common.model.dtos.community.reserve;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel("分页查询预约登记列表请求参数")
+public class PageReserveAdminDTO {
+
+    @ApiModelProperty(value = "分页-当前页数",example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数",example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "类型(1.预约 2.登记)")
+    private List<Integer> type;
+
+    @ApiModelProperty(value = "状态(1.进行中 2.已停止 3.待发布)")
+    private Integer status;
+
+    @ApiModelProperty(value = "广告位置(1.无 2.首页顶部 3.首页应用)")
+    private Integer advertType;
+
+    @ApiModelProperty(value = "开始时间查询")
+    private String startTime;
+
+    @ApiModelProperty(value = "结束时间查询")
+    private String endTime;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+    @ApiModelProperty(value = "社区id",hidden = true)
+    private Long communityId;
+
+    private String areaCode;
+
+    private Integer isWjw;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/PageReserveMakeAdminDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/PageReserveMakeAdminDTO.java
new file mode 100644
index 0000000..ce5ae30
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/PageReserveMakeAdminDTO.java
@@ -0,0 +1,30 @@
+package com.panzhihua.common.model.dtos.community.reserve;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel("分页查询预约登记列表请求参数")
+public class PageReserveMakeAdminDTO {
+
+    @ApiModelProperty(value = "分页-当前页数",example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数",example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "预约登记id")
+    private Long reserveId;
+
+    @ApiModelProperty(value = "开始时间查询")
+    private String startTime;
+
+    @ApiModelProperty(value = "结束时间查询")
+    private String endTime;
+
+    @ApiModelProperty(value = "需要导出id集合")
+    private List<Long> ids;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/PageReserveMakeHandleAdminDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/PageReserveMakeHandleAdminDTO.java
new file mode 100644
index 0000000..7870b19
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/PageReserveMakeHandleAdminDTO.java
@@ -0,0 +1,39 @@
+package com.panzhihua.common.model.dtos.community.reserve;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel("分页查询预约登记列表请求参数")
+public class PageReserveMakeHandleAdminDTO {
+
+    @ApiModelProperty(value = "分页-当前页数",example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数",example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+    @ApiModelProperty(value = "开始时间查询")
+    private String startTime;
+
+    @ApiModelProperty(value = "结束时间查询")
+    private String endTime;
+
+    @ApiModelProperty(value = "状态集合")
+    private List<Integer> status;
+
+    @ApiModelProperty(value = "预约登记id")
+    private Long reserveId;
+
+    @ApiModelProperty(value = "社区id",hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "需要导出的id集合")
+    private List<Long> ids;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/PageReserveRegisterDetailedAdminDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/PageReserveRegisterDetailedAdminDTO.java
new file mode 100644
index 0000000..bead420
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/reserve/PageReserveRegisterDetailedAdminDTO.java
@@ -0,0 +1,46 @@
+package com.panzhihua.common.model.dtos.community.reserve;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel("分页查询预约登记列表请求参数")
+public class PageReserveRegisterDetailedAdminDTO {
+
+    @ApiModelProperty(value = "分页-当前页数",example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数",example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "开始时间查询")
+    private String startTime;
+
+    @ApiModelProperty(value = "结束时间查询")
+    private String endTime;
+
+    @ApiModelProperty(value = "预约登记id")
+    private Long reserveId;
+
+    @ApiModelProperty(value = "关键字")
+    private String keyword;
+
+    @ApiModelProperty(value = "来攀/离攀开始时间")
+    private String beginTime;
+
+    @ApiModelProperty(value = "来攀/离攀结束时间")
+    private String stopTime;
+
+    @ApiModelProperty(value = "类型 1燃气 2防火")
+    private Integer pdfType;
+
+    @ApiModelProperty(value = "省市区")
+    private String area;
+
+    @ApiModelProperty(value = "出发地")
+    private String from;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/sanshuo/ComMediateTypeDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/sanshuo/ComMediateTypeDTO.java
new file mode 100644
index 0000000..c19e9a0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/sanshuo/ComMediateTypeDTO.java
@@ -0,0 +1,98 @@
+package com.panzhihua.common.model.dtos.community.sanshuo;
+
+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.util.Date;
+
+@Data
+@ApiModel("创建事件类型入参")
+public class ComMediateTypeDTO {
+    /**
+     * 主键
+     */
+    @ApiModelProperty("id,修改时传")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 类型名称
+     */
+    @ApiModelProperty("类型名称")
+    private String name;
+
+    /**
+     * code码
+     */
+    @ApiModelProperty("code码")
+    private String code;
+
+    /**
+     * 父id((根节点为0))
+     */
+    @ApiModelProperty("父id((根节点为0))")
+    private Long parentId;
+
+    /**
+     * 路径(格式 : `pid1`pid2`id` )
+     */
+    @ApiModelProperty("路径(格式 : `pid1`pid2`id` )")
+    private String pathId;
+
+    /**
+     * 所在层级
+     */
+    @ApiModelProperty("所在层级")
+    private Integer levelIndex;
+
+    /**
+     * 排序
+     */
+    @ApiModelProperty("排序")
+    private Integer sort;
+
+    /**
+     * 启用状态(0:停用,1:启用)
+     */
+    @ApiModelProperty("启用状态(false:停用,true:启用)")
+    private Boolean enabled;
+
+    /**
+     * 备注说明
+     */
+    @ApiModelProperty("备注说明")
+    private String remarks;
+
+    /**
+     * 创建者
+     */
+    @ApiModelProperty("创建者")
+    private Long createUser;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    private Date createDate;
+
+    /**
+     * 修改者
+     */
+    @ApiModelProperty("修改者")
+    private Long modifyUser;
+
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty("修改时间")
+    private Date modifyDate;
+
+    /**
+     * 删除标识(0:未删除,1:已删除)
+     */
+    @ApiModelProperty("false:未删除,true:已删除")
+    private Boolean deleteFlag;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/sanshuo/ComSanShuoIndustryCenterDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/sanshuo/ComSanShuoIndustryCenterDTO.java
new file mode 100644
index 0000000..41ab7b9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/sanshuo/ComSanShuoIndustryCenterDTO.java
@@ -0,0 +1,83 @@
+package com.panzhihua.common.model.dtos.community.sanshuo;
+
+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.util.Date;
+
+@Data
+@ApiModel("业务中心入参")
+public class ComSanShuoIndustryCenterDTO {
+    /**
+     * id
+     */
+    @ApiModelProperty("id,修改时传")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 行业分中心名称
+     */
+    @ApiModelProperty("行业分中心名称")
+    private String name;
+
+    /**
+     * 调解室电话
+     */
+    @ApiModelProperty("调解室电话")
+    private String phone;
+
+    /**
+     * 登录账号
+     */
+    @ApiModelProperty("登录账号")
+    private String account;
+
+    /**
+     * 创建人
+     */
+    @ApiModelProperty("创建人")
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty("修改时间")
+    private Date updateTime;
+
+    /**
+     * 状态0禁用1启用
+     */
+    @ApiModelProperty("状态0禁用1启用")
+    private Integer status;
+
+    /**
+     * 0删除1正常
+     */
+    @ApiModelProperty("0删除1正常")
+    private Integer delFlag;
+
+    /**
+     * 所属街道id
+     */
+    @ApiModelProperty("所属街道id")
+    private Long streetId;
+
+    @ApiModelProperty("密码")
+    private String password;
+
+    /**
+     * 所属社区id
+     */
+    @ApiModelProperty("所属社区id")
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/sanshuo/ComSanshuoEventDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/sanshuo/ComSanshuoEventDTO.java
new file mode 100644
index 0000000..cd6f5cd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/sanshuo/ComSanshuoEventDTO.java
@@ -0,0 +1,33 @@
+package com.panzhihua.common.model.dtos.community.sanshuo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+@Data
+@ApiModel("三说事件查询入参")
+public class ComSanshuoEventDTO {
+
+    /**
+     * 事件类型名称
+     */
+    @ApiModelProperty("事件类型名称")
+    private String name;
+
+    private Integer page;
+
+    private Integer size;
+
+    /**
+     * 0禁用1启用
+     */
+    @ApiModelProperty("0禁用1启用")
+    private Integer status;
+
+    /**
+     * 0删除1正常
+     */
+    @ApiModelProperty("0删除1正常")
+    private Integer delFlag;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/sanshuo/ComSanshuoExpertDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/sanshuo/ComSanshuoExpertDTO.java
new file mode 100644
index 0000000..a2c0389
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/sanshuo/ComSanshuoExpertDTO.java
@@ -0,0 +1,142 @@
+package com.panzhihua.common.model.dtos.community.sanshuo;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import javax.validation.Valid;
+import java.util.Date;
+
+@Data
+@ApiModel("添加或修改专家入参")
+@Valid
+public class ComSanshuoExpertDTO {
+    /**
+     * id
+     */
+    @ApiModelProperty("id,修改时传")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 专家级别(1三说会堂2行业分中心3街道4社区)
+     */
+    @ApiModelProperty("专家级别(1三说会堂2行业分中心3街道4社区)")
+    private Integer level;
+
+    /**
+     * 所属社区id
+     */
+    @ApiModelProperty("所属社区id")
+    private Long communityId;
+
+    /**
+     * 工作时间
+     */
+    @ApiModelProperty("工作时间")
+    private String workTime;
+
+    /**
+     * 擅长解决时间类型
+     */
+    @ApiModelProperty("擅长解决时间类型,多类型用,隔开")
+    private String goodAt;
+
+    /**
+     * 姓名
+     */
+    @ApiModelProperty("姓名")
+    private String name;
+
+    /**
+     * 头像
+     */
+    @ApiModelProperty("头像")
+    private String avatar;
+
+    /**
+     * 手机号
+     */
+    @ApiModelProperty("手机号")
+    private String phone;
+
+    /**
+     * 登陆账号
+     */
+    @ApiModelProperty("登陆账号")
+    private String account;
+
+    /**
+     * 登陆密码
+     */
+    @ApiModelProperty("登陆密码")
+    private String password;
+
+    /**
+     * 0禁用1启用
+     */
+    @ApiModelProperty("0禁用1启用默认1")
+    private Integer status;
+
+    /**
+     * 删除状态0已删除1正常
+     */
+    @ApiModelProperty("删除状态0已删除1正常默认1")
+    private Integer delFlag;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+
+    /**
+     * 创建人
+     */
+    @ApiModelProperty("创建人")
+    private String createBy;
+
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty("修改时间")
+    private Date updateTime;
+
+    /**
+     * 介绍信息
+     */
+    @ApiModelProperty("介绍信息")
+    private String introduction;
+
+    /**
+     * 所属街道id
+     */
+    @ApiModelProperty("所属街道id")
+    private Long streetId;
+
+    /**
+     * 行业分中心id
+     */
+    @ApiModelProperty("行业分中心id")
+    private Long industryCenterId;
+
+    /**
+     * 备用字段1
+     */
+    private String param1;
+
+    /**
+     * 所属单位
+     */
+    @ApiModelProperty("所属单位")
+    private String unit;
+    private String unitId;
+
+    @ApiModelProperty("appId,区分西区或花城")
+    private String appId;
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/sanshuo/IndexDateDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/sanshuo/IndexDateDTO.java
new file mode 100644
index 0000000..68f3cc0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/sanshuo/IndexDateDTO.java
@@ -0,0 +1,18 @@
+package com.panzhihua.common.model.dtos.community.sanshuo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import springfox.documentation.annotations.ApiIgnore;
+
+@Data
+@ApiModel("大屏事件入参(区三说会堂,行业分中心,街道,社区数据)")
+public class IndexDateDTO {
+    @ApiModelProperty("1区三说会堂,2行业分中心,3街道、镇,4社区/村,空为所有")
+    private Integer type;
+    @ApiModelProperty("行业分中心id或街道id或社区id(type=1不传,type=2传行业分中心id,type=3传街道id,type=4传社区id)")
+    private Long id;
+    @ApiModelProperty(hidden = true)
+    private Integer level;
+    private String appId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/social/HatchAuditProcessDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/social/HatchAuditProcessDTO.java
new file mode 100644
index 0000000..b213662
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/social/HatchAuditProcessDTO.java
@@ -0,0 +1,20 @@
+package com.panzhihua.common.model.dtos.community.social;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: HatchAuditProcessDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 孵化流程修改
+ * @author: hans
+ * @date: 2022/04/18 17:36
+ */
+@Data
+@ApiModel("孵化流程修改")
+public class HatchAuditProcessDTO {
+
+    @ApiModelProperty("孵化流程")
+    private String process;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/social/PageProjectDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/social/PageProjectDTO.java
new file mode 100644
index 0000000..690cd55
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/social/PageProjectDTO.java
@@ -0,0 +1,30 @@
+package com.panzhihua.common.model.dtos.community.social;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: PageProjectDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 分页查询项目数据请求参数
+ * @author: hans
+ * @date: 2022/04/19 15:23
+ */
+@Data
+@ApiModel("分页查询项目数据请求参数")
+public class PageProjectDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1", required = true)
+    @NotNull(message = "分页参数不能为空")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10", required = true)
+    @NotNull(message = "分页参数不能为空")
+    private Long pageSize;
+
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/social/PageProjectSignListDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/social/PageProjectSignListDTO.java
new file mode 100644
index 0000000..54e0876
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/social/PageProjectSignListDTO.java
@@ -0,0 +1,31 @@
+package com.panzhihua.common.model.dtos.community.social;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: PageProjectSignListDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 分页查询项目报名列表请求参数
+ * @author: hans
+ * @date: 2022/04/15 13:39
+ */
+@Data
+@ApiModel("分页查询项目报名列表请求参数")
+public class PageProjectSignListDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1", required = true)
+    @NotNull(message = "分页参数不能为空")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10", required = true)
+    @NotNull(message = "分页参数不能为空")
+    private Long pageSize;
+
+    @ApiModelProperty(value = "项目id", example = "1", required = true)
+    @NotNull(message = "项目id不能为空")
+    private Long projectId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/social/PageSocialOrgHatchAuditDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/social/PageSocialOrgHatchAuditDTO.java
new file mode 100644
index 0000000..fda6999
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/social/PageSocialOrgHatchAuditDTO.java
@@ -0,0 +1,35 @@
+package com.panzhihua.common.model.dtos.community.social;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: PageSocialOrgHatchAuditDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 分页查询孵化申请请求参数
+ * @author: hans
+ * @date: 2022/04/18 14:34
+ */
+@Data
+@ApiModel("分页查询孵化申请请求参数")
+public class PageSocialOrgHatchAuditDTO {
+
+    @ApiModelProperty(value = "关键字")
+    private String keyword;
+
+    @ApiModelProperty("孵化单位")
+    private Long hatchUnit;
+
+    @ApiModelProperty("孵化单位类型(1.街道 2.社区)")
+    private Integer hatchUnitType;
+
+    @ApiModelProperty("申请状态(1.待审核 2.审核通过 3.已驳回)")
+    private Integer status;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/social/PageSocialOrgHatchDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/social/PageSocialOrgHatchDTO.java
new file mode 100644
index 0000000..13e765b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/social/PageSocialOrgHatchDTO.java
@@ -0,0 +1,35 @@
+package com.panzhihua.common.model.dtos.community.social;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: PageSocialOrgHatchAuditDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 分页查询孵化申请请求参数
+ * @author: hans
+ * @date: 2022/04/18 14:34
+ */
+@Data
+@ApiModel("分页查询孵化申请请求参数")
+public class PageSocialOrgHatchDTO {
+
+    @ApiModelProperty(value = "关键字")
+    private String keyword;
+
+    @ApiModelProperty("孵化单位")
+    private Long hatchUnit;
+
+    @ApiModelProperty("孵化单位类型(1.街道 2.社区)")
+    private Integer hatchUnitType;
+
+    @ApiModelProperty("孵化状态(1.孵化中 2.孵化成功)")
+    private Integer status;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/social/SocialOrgHatchAuditDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/social/SocialOrgHatchAuditDTO.java
new file mode 100644
index 0000000..1ba7ccf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/social/SocialOrgHatchAuditDTO.java
@@ -0,0 +1,64 @@
+package com.panzhihua.common.model.dtos.community.social;
+
+import javax.validation.constraints.NotNull;
+
+import com.panzhihua.common.validated.PutGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: SocialOrgHatchAuditDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 新增/编辑孵化申请请求参数
+ * @author: hans
+ * @date: 2022/04/18 15:18
+ */
+@Data
+@ApiModel("新增/编辑孵化申请请求参数")
+public class SocialOrgHatchAuditDTO {
+
+    @ApiModelProperty("孵化申请id")
+    @NotNull(groups = {PutGroup.class}, message = "孵化申请id不能为空")
+    private Long id;
+
+    @ApiModelProperty("准社会组织名称")
+    private String name;
+
+    @ApiModelProperty("负责人")
+    private String responsibility;
+
+    @ApiModelProperty("联系电话")
+    private String phone;
+
+    @ApiModelProperty("孵化单位")
+    private Long hatchUnit;
+
+    @ApiModelProperty("孵化单位类型(1.街道 2.社区)")
+    private Integer hatchUnitType;
+
+    @ApiModelProperty("孵化单位名称")
+    private String hatchUnitName;
+
+    @ApiModelProperty("申请状态(1.待审核 2.审核通过 3.已驳回)")
+    private Integer status;
+
+    @ApiModelProperty("组织介绍")
+    private String introduction;
+
+    @ApiModelProperty("组织标识")
+    private String logo;
+
+    @ApiModelProperty("申请原因")
+    private String applyReason;
+
+    @ApiModelProperty("服务范围")
+    private String serviceScope;
+
+    @ApiModelProperty("驳回原因")
+    private String refuseReason;
+
+    @ApiModelProperty(value = "申请用户", hidden = true)
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/switchs/SearchCommunityDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/switchs/SearchCommunityDTO.java
new file mode 100644
index 0000000..edec834
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/switchs/SearchCommunityDTO.java
@@ -0,0 +1,23 @@
+package com.panzhihua.common.model.dtos.community.switchs;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("搜索社区请求参数")
+public class SearchCommunityDTO {
+
+    @ApiModelProperty(value = "纬度", required = true)
+    private String latitude;
+
+    @ApiModelProperty(value = "经度", required = true)
+    private String longitude;
+
+    @ApiModelProperty(value = "距离(千米)", required = true)
+    private Integer distance;
+
+    private String areaCode;
+
+    private String appId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/wallet/ComActWalletDetailDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/wallet/ComActWalletDetailDTO.java
new file mode 100644
index 0000000..6b76506
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/wallet/ComActWalletDetailDTO.java
@@ -0,0 +1,17 @@
+package com.panzhihua.common.model.dtos.community.wallet;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("钱包详情返回参数")
+public class ComActWalletDetailDTO {
+
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/wallet/ComActWalletSettlementAdminDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/wallet/ComActWalletSettlementAdminDTO.java
new file mode 100644
index 0000000..f25b783
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/wallet/ComActWalletSettlementAdminDTO.java
@@ -0,0 +1,24 @@
+package com.panzhihua.common.model.dtos.community.wallet;
+
+import java.math.BigDecimal;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("用户结算收益请求参数")
+public class ComActWalletSettlementAdminDTO {
+
+    @ApiModelProperty("钱包id")
+    private Long id;
+
+    @ApiModelProperty("结算金额")
+    private BigDecimal settlementAmount;
+
+    @ApiModelProperty("备注")
+    private String remark;
+
+    @ApiModelProperty(value = "登录用户id", hidden = true)
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/wallet/PageComActWalletAdminDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/wallet/PageComActWalletAdminDTO.java
new file mode 100644
index 0000000..b5d6e59
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/wallet/PageComActWalletAdminDTO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.dtos.community.wallet;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("收益结算列表请求参数")
+public class PageComActWalletAdminDTO {
+
+    @ApiModelProperty("用户名称")
+    private String name;
+
+    @ApiModelProperty("手机号")
+    private String phone;
+
+    @ApiModelProperty(value = "社区主键", hidden = true)
+    private Long communityId;
+
+    @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/wallet/PageComActWalletTradeAdminDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/wallet/PageComActWalletTradeAdminDTO.java
new file mode 100644
index 0000000..ec8977e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/wallet/PageComActWalletTradeAdminDTO.java
@@ -0,0 +1,57 @@
+package com.panzhihua.common.model.dtos.community.wallet;
+
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("收益结算列表请求参数")
+public class PageComActWalletTradeAdminDTO {
+
+    @ApiModelProperty("用户名称")
+    private String name;
+
+    @ApiModelProperty("手机号")
+    private String phone;
+
+    @ApiModelProperty(value = "社区主键", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty("交易类型(1.发布随手拍 2.结算)")
+    private Integer type;
+
+    @ApiModelProperty("开始时间")
+    private String startTime;
+
+    @ApiModelProperty("结束时间")
+    private String endTime;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty("排序(1.升序 2.降序)")
+    private Integer sort;
+
+    @ApiModelProperty("变动类型(1.增加  2.减少)")
+    private Integer changeType;
+
+    @ApiModelProperty("用户id")
+    private Long userId;
+
+    @ApiModelProperty("关键词")
+    private String keyWord;
+
+    @ApiModelProperty("关键词")
+    private String expenditureKeyWord;
+
+    @ApiModelProperty("奖励内容")
+    private String remark;
+
+    @ApiModelProperty("导出id集合")
+    private List<Long> tradeIds;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/wallet/PageComActWalletTradeDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/wallet/PageComActWalletTradeDTO.java
new file mode 100644
index 0000000..9998c47
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/wallet/PageComActWalletTradeDTO.java
@@ -0,0 +1,23 @@
+package com.panzhihua.common.model.dtos.community.wallet;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("钱包详情返回参数")
+public class PageComActWalletTradeDTO {
+
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @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/warehouse/ComActWarehouseApplyDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/warehouse/ComActWarehouseApplyDTO.java
new file mode 100644
index 0000000..61d21d3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/warehouse/ComActWarehouseApplyDTO.java
@@ -0,0 +1,54 @@
+package com.panzhihua.common.model.dtos.community.warehouse;
+
+import java.util.List;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.Pattern;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.panzhihua.common.model.vos.community.warehouse.ComActWarehouseApplyVO;
+import com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: ComActWarehouseApplyDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 后台物品领用信息
+ * @author: hans
+ * @date: 2021/10/13 14:33
+ */
+@Data
+@ApiModel("后台物品领用信息")
+public class ComActWarehouseApplyDTO {
+
+    @ApiModelProperty("领用人")
+    @Length(groups = {AddGroup.class}, max = 10, message = "领用人最多支持10个字符")
+    private String applyName;
+
+    @ApiModelProperty("联系电话")
+    @Pattern(groups = {AddGroup.class}, message = "联系电话格式错误", regexp = "^(13[0-9]|14[01456879]|15[0-3,5-9]|16[2567]|17[0-8]|18[0-9]|19[0-3,5-9])\\d{8}$")
+    private String applyPhone;
+
+    @ApiModelProperty("领用物品,传入goodsId,goodsNum即可")
+    @NotEmpty(groups = {AddGroup.class}, message = "领用物品不能为空")
+    private List<ComActWarehouseApplyVO> applyItems;
+
+    @ApiModelProperty("遇到的困难")
+    @NotBlank(groups = {AddGroup.class}, message = "困难描述不可为空")
+    @Length(groups = {AddGroup.class}, max = 100, message = "遇到的困难最多支持100个字符")
+    private String reason;
+
+    @ApiModelProperty("领用图片")
+    private String receiveUrl;
+
+    @ApiModelProperty(value = "操作人id", hidden = true)
+    private Long operateUserId;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/warehouse/ComActWarehouseDonatesDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/warehouse/ComActWarehouseDonatesDTO.java
new file mode 100644
index 0000000..85bacf3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/warehouse/ComActWarehouseDonatesDTO.java
@@ -0,0 +1,72 @@
+package com.panzhihua.common.model.dtos.community.warehouse;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+
+import org.hibernate.validator.constraints.Length;
+
+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;
+
+/**
+ * @title: ComActWarehouseDonatesDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 新增/编辑物品捐赠
+ * @author: hans
+ * @date: 2021/10/11 14:18
+ */
+@Data
+@ApiModel("新增/编辑物品捐赠")
+public class ComActWarehouseDonatesDTO {
+
+    @ApiModelProperty("捐赠物品ID")
+    @NotNull(groups = {PutGroup.class}, message = "捐赠物品ID不能为空")
+    private Long id;
+
+    @ApiModelProperty("捐赠用户")
+    @Length(groups = {AddGroup.class}, max = 10, message = "捐赠用户最多支持10个字符")
+    private String name;
+
+    @ApiModelProperty("联系电话")
+    private String phone;
+
+    @ApiModelProperty("捐赠物品")
+    @NotBlank(groups = {AddGroup.class}, message = "捐赠物品不能为空")
+    @Length(groups = {AddGroup.class}, max = 10, message = "捐赠物品名称最多支持10个字符")
+    private String item;
+
+    @ApiModelProperty("捐赠数量")
+    @NotNull(groups = {AddGroup.class}, message = "捐赠数量不能为空")
+    @Min(1)
+    private Integer quantity;
+
+    @ApiModelProperty("物品图片")
+    @NotBlank(groups = {AddGroup.class}, message = "物品图片不能为空")
+    private String image;
+
+    @ApiModelProperty("匿名捐赠(1.是 2.否)")
+    @NotNull(groups = {AddGroup.class}, message = "是否匿名捐赠不能为空")
+    private Integer isAnonymous;
+
+    @ApiModelProperty("留言信息")
+    @Length(groups = {AddGroup.class}, max = 100, message = "留言信息最多支持100个字符")
+    private String message;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "登记人", hidden = true)
+    private Long registerBy;
+
+    @ApiModelProperty(value = "捐赠人用户绑定id", hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "签收人", hidden = true)
+    private Long signingBy;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/warehouse/ExportDonatesDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/warehouse/ExportDonatesDTO.java
new file mode 100644
index 0000000..6380be4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/warehouse/ExportDonatesDTO.java
@@ -0,0 +1,44 @@
+package com.panzhihua.common.model.dtos.community.warehouse;
+
+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;
+
+/**
+ * @title: ExportDonatesDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 捐赠物品导出请求参数
+ * @author: hans
+ * @date: 2021/10/11 11:09
+ */
+@Data
+@ApiModel("捐赠物品导出请求参数")
+public class ExportDonatesDTO {
+
+    @ApiModelProperty(value = "批量勾选时传参数组")
+    private List<Long> ids;
+
+    @ApiModelProperty("关键词")
+    private String keyword;
+
+    @ApiModelProperty("捐赠状态(1.待签收 2.已签收 3.已取消)")
+    private Integer status;
+
+    @ApiModelProperty("是否匿名捐赠(1.是 2.否)")
+    private Integer isAnonymous;
+
+    @ApiModelProperty("签收时间-起")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date signingAtBegin;
+
+    @ApiModelProperty("签收时间-止")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date signingAtEnd;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/warehouse/PageDonatesDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/warehouse/PageDonatesDTO.java
new file mode 100644
index 0000000..5b90338
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/community/warehouse/PageDonatesDTO.java
@@ -0,0 +1,60 @@
+package com.panzhihua.common.model.dtos.community.warehouse;
+
+import java.util.Date;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: PageDonatesDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 分页查询捐赠物品请求参数
+ * @author: hans
+ * @date: 2021/10/11 13:56
+ */
+@Data
+@ApiModel("分页查询捐赠物品请求参数")
+public class PageDonatesDTO {
+
+    @ApiModelProperty("关键词")
+    private String keyword;
+
+    @ApiModelProperty("捐赠状态(1.待签收 2.已签收 3.已取消)")
+    private Integer status;
+
+    @ApiModelProperty("是否匿名捐赠(1.是 2.否)")
+    private Integer isAnonymous;
+
+    @ApiModelProperty("签收时间-起")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date signingAtBegin;
+
+    @ApiModelProperty("签收时间-止")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date signingAtEnd;
+
+    @ApiModelProperty("小程序使用,1.个人中心捐赠记录 2.捐赠物品管理 3.爱心义仓捐赠列表")
+    private Integer isWhich;
+
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    @NotNull(message = "分页参数不能为空")
+    @Min(value = 1)
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    @NotNull(message = "分页参数不能为空")
+    @Min(value = 1)
+    private Long pageSize;
+
+
+    @ApiModelProperty(value = "当前访问用户", hidden = true)
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/elders/ComEldersAuthGetResultDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/elders/ComEldersAuthGetResultDTO.java
new file mode 100644
index 0000000..68a2745
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/elders/ComEldersAuthGetResultDTO.java
@@ -0,0 +1,26 @@
+package com.panzhihua.common.model.dtos.elders;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("人脸核身获取结果请求参数")
+public class ComEldersAuthGetResultDTO {
+
+    @NotNull()
+    @ApiModelProperty(value = "用户eidToken")
+    private String eidToken;
+
+    @NotNull()
+    @ApiModelProperty(value = "老人id")
+    private Long authUserId;
+
+    @ApiModelProperty(value = "人脸核身结果数据", hidden = true)
+    private String verificationResult;
+
+    @ApiModelProperty(value = "当前登录用户id", hidden = true)
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/elders/ComEldersAuthPageDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/elders/ComEldersAuthPageDTO.java
new file mode 100644
index 0000000..e0a271f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/elders/ComEldersAuthPageDTO.java
@@ -0,0 +1,22 @@
+package com.panzhihua.common.model.dtos.elders;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("人脸核身获取结果请求参数")
+public class ComEldersAuthPageDTO {
+
+    @ApiModelProperty(value = "页数大小")
+    private Integer pageSize = 10;
+
+    @ApiModelProperty(value = "页数")
+    private Integer pageNum = 1;
+
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/elders/ComEldersAuthUserAddAppDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/elders/ComEldersAuthUserAddAppDTO.java
new file mode 100644
index 0000000..8688dc3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/elders/ComEldersAuthUserAddAppDTO.java
@@ -0,0 +1,33 @@
+package com.panzhihua.common.model.dtos.elders;
+
+import com.panzhihua.common.model.helper.encrypt.EncryptQuery;
+import com.panzhihua.common.model.helper.encrypt.EncryptQueryClass;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("人脸核身获取结果请求参数")
+@EncryptQueryClass
+public class ComEldersAuthUserAddAppDTO {
+
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    @ApiModelProperty(value = "身份证号码")
+    @EncryptQuery
+    private String idCard;
+
+    @ApiModelProperty(value = "与本人关系(1.父母 2.配偶 3.子女 4.兄弟姐妹 5.祖/外祖父母 6.本人 7.其他)")
+    private Integer relation;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "老人id")
+    private Long elderId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionExchangeRecordDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionExchangeRecordDto.java
new file mode 100644
index 0000000..70a537b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionExchangeRecordDto.java
@@ -0,0 +1,86 @@
+package com.panzhihua.common.model.dtos.equipment;
+
+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;
+
+@Data
+@ApiModel("兑换记录表")
+public class UnionExchangeRecordDto{
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private String id;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+    @ApiModelProperty(value = "订单号")
+    private String orderNum;
+
+    @ApiModelProperty(value = "商品id")
+    private String goodsId;
+
+    @ApiModelProperty(value = "订单状态(1待发货  2待收货   3待自提  4已完成   5已取消 )")
+    private String orderType;
+
+    @ApiModelProperty(value = "消费积分")
+    private String consumptionPoints;
+
+    @ApiModelProperty(value = "收件人")
+    private String consignee;
+
+    @ApiModelProperty(value = "收货人手机号")
+    private String consigneePhone;
+
+    @ApiModelProperty(value = "收货地址")
+    private String consigneeAddress;
+
+    @ApiModelProperty(value = "纬度")
+    private String lat;
+    @ApiModelProperty(value = "经度")
+    private String lng;
+
+    @ApiModelProperty(value = "购买数量")
+    private String goodsNum;
+
+    @ApiModelProperty(value = "物流公司")
+    private String logisticsCompany;
+
+    @ApiModelProperty(value = "物流单号")
+    private String logisticsNum;
+
+    @ApiModelProperty(value = "实际支付积分")
+    private String playIntegral;
+
+    @ApiModelProperty(value = "取货方式(1邮寄  2自提)")
+    private String pickUpMethod;
+
+    @ApiModelProperty(value = "自提地址")
+    private String pickUpAddress;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionInspectionDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionInspectionDto.java
new file mode 100644
index 0000000..ebd2efa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionInspectionDto.java
@@ -0,0 +1,109 @@
+package com.panzhihua.common.model.dtos.equipment;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+@Data
+@ApiModel("户外劳工站巡查表")
+public class UnionInspectionDto {
+
+    /**
+     * ,主键
+     */
+    @ApiModelProperty(value = "主键")
+    private Integer id;
+
+    /**
+     * 创建人户外劳工站id
+     */
+    @ApiModelProperty(value = "创建人户外劳工站id")
+    private Long createUnionUserId;
+
+    /**
+     * 站点id
+     */
+    @ApiModelProperty(value = "站点id")
+    private Integer siteId;
+
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createUserId;
+
+    /**
+     * 类型(1正常2异常)
+     */
+    @ApiModelProperty(value = "类型(1正常2异常)")
+    private Integer type;
+
+    /**
+     * 内容
+     */
+    @ApiModelProperty(value = "内容")
+    private String content;
+
+    /**
+     * 图片地址
+     */
+    @ApiModelProperty(value = "图片地址")
+    private String url;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private LocalDateTime createAt;
+
+    /**
+     * 标题
+     */
+    @ApiModelProperty(value = "标题")
+    private String title;
+
+    /**
+     * 处理人户外劳工站id
+     */
+    @ApiModelProperty(value = "处理人户外劳工站id")
+    private Integer disposeUnionUserId;
+
+    /**
+     * 处理内容
+     */
+    @ApiModelProperty(value = "处理内容")
+    private String disposeContent;
+
+    /**
+     * 处理时间
+     */
+    @ApiModelProperty(value = "处理时间")
+    private LocalDateTime disposeAt;
+
+    /**
+     * 处理照片地址
+     */
+    @ApiModelProperty(value = "处理照片地址")
+    private String disposeUrl;
+
+    /**
+     * 状态(1未回复2已回复)
+     */
+    @ApiModelProperty(value = "状态(1未接单2已接单3已解决)")
+    private Integer status;
+
+
+    /**
+     * 是否小程序
+     */
+    @ApiModelProperty(value = "是否小程序 1是 0否(后台) 3H5")
+    private Integer isApplets;
+
+    @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/equipment/UnionIntegralRecordDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionIntegralRecordDto.java
new file mode 100644
index 0000000..a71374e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionIntegralRecordDto.java
@@ -0,0 +1,76 @@
+package com.panzhihua.common.model.dtos.equipment;
+
+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;
+
+@Data
+@ApiModel("积分明细记录")
+public class UnionIntegralRecordDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private String id;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+
+    /**
+     * 积分状态(1开门    2兑换)
+     */
+    @ApiModelProperty(value = "积分状态(1开门    2兑换)")
+    private String integralType;
+
+    /**
+     * 增加1 减少 0
+     */
+    @ApiModelProperty(value = "增加1 减少 0")
+    private String type;
+
+    /**
+     * 积分状态(1开门    2兑换)
+     */
+    @ApiModelProperty(value = "积分")
+    private String integral;
+
+    /**
+     * 用户姓名
+     */
+    @ApiModelProperty(value = "用户姓名")
+    private String usserName;
+
+
+    /**
+     * 用户姓名
+     */
+    @ApiModelProperty(value = "用户手机号")
+    private String phone;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionIntegralSummarizeDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionIntegralSummarizeDto.java
new file mode 100644
index 0000000..6686c9c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionIntegralSummarizeDto.java
@@ -0,0 +1,52 @@
+package com.panzhihua.common.model.dtos.equipment;
+
+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;
+
+@Data
+@ApiModel("用户积分总表")
+public class UnionIntegralSummarizeDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private String id;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+
+
+    /**
+     * 积分
+     */
+    @ApiModelProperty(value = "积分")
+    private String allIntegral;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionOutdoorLaborDynamicDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionOutdoorLaborDynamicDto.java
new file mode 100644
index 0000000..0eda280
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionOutdoorLaborDynamicDto.java
@@ -0,0 +1,92 @@
+package com.panzhihua.common.model.dtos.equipment;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@ApiModel("总工会-户外劳工站-动态")
+@Data
+public class UnionOutdoorLaborDynamicDto {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * ,主键
+     */
+    @ApiModelProperty(value = "主键")
+    private Long id;
+
+    /**
+     * 标题
+     */
+    @ApiModelProperty(value = "标题")
+    private String title;
+
+    /**
+     * 状态 0 待发布 1 已发布
+     */
+    @ApiModelProperty(value = "状态 0 待发布 1 已发布")
+    private Integer status;
+
+    /**
+     * 是否置顶  0 否 1 是
+     */
+    @ApiModelProperty(value = "是否置顶  0 否 1 是")
+    private Integer isTopping;
+
+    /**
+     * 发布时间
+     */
+    @ApiModelProperty(value = " 发布时间")
+    private LocalDateTime publishAt;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private LocalDateTime createAt;
+
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty(value = "修改时间")
+    private LocalDateTime updateAt;
+
+    /**
+     * 动态内容 富文本
+     */
+    @ApiModelProperty(value = "动态内容 富文本")
+    private String content;
+
+    /**
+     * 封面
+     */
+    @ApiModelProperty(value = "封面")
+    private String cover;
+
+    /**
+     * 类型(1.通知公告 2.使用指南 3.工会信息)
+     */
+    @ApiModelProperty(value = "类型(1.通知公告 2.使用指南 3.工会信息)")
+    private Integer type;
+
+    /**
+     * 阅读量
+     */
+    @ApiModelProperty(value = "阅读量")
+    private Integer readNum;
+
+    /**
+     * 图片链接
+     */
+    @ApiModelProperty(value = "图片链接")
+    private String imageUrl;
+
+
+    @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/equipment/UnionOutdoorSiteDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionOutdoorSiteDto.java
new file mode 100644
index 0000000..4367726
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionOutdoorSiteDto.java
@@ -0,0 +1,184 @@
+package com.panzhihua.common.model.dtos.equipment;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+
+/**
+ * <p>
+ * 总工会户外劳工站
+ * </p>
+ *
+ * @author fengjin
+ * @since 2023-08-23
+ */
+@Data
+@ApiModel("总工会户外劳工站")
+public class UnionOutdoorSiteDto{
+
+    private static final long serialVersionUID = 1L;
+
+    private Integer id;
+
+    /**
+     * 商家名称
+     */
+    @ApiModelProperty(value = "商家名称")
+    private String name;
+
+    /**
+     * 商家logo
+     */
+    @ApiModelProperty(value = "商家logo")
+    private String logo;
+
+    /**
+     * 联系人
+     */
+    @ApiModelProperty(value = "联系人")
+    private String contacts;
+
+    /**
+     * 身份证号
+     */
+    @ApiModelProperty(value = "身份证号")
+    private String idCard;
+
+    /**
+     * 咨询电话
+     */
+    @ApiModelProperty(value = "咨询电话")
+    private String phone;
+
+    /**
+     * 商家地址
+     */
+    @ApiModelProperty(value = "商家地址")
+    private String address;
+
+    /**
+     * 详细地址
+     */
+    @ApiModelProperty(value = "详细地址")
+    private String detailedAddress;
+
+    /**
+     * 纬度
+     */
+    @ApiModelProperty(value = "主键")
+    private String lat;
+
+    /**
+     * 经度
+     */
+    @ApiModelProperty(value = "经度")
+    private String lon;
+
+    /**
+     * 营业开始时间
+     */
+    @ApiModelProperty(value = "营业开始时间")
+    private LocalTime beginAt;
+
+    /**
+     * 营业结束时间
+     */
+    @ApiModelProperty(value = "营业结束时间")
+    private LocalTime endAt;
+
+    /**
+     * 商家介绍
+     */
+    @ApiModelProperty(value = "商家介绍")
+    private String introduction;
+
+    /**
+     * 是否营业中
+     */
+    @ApiModelProperty(value = "是否营业中")
+    private Boolean businessStatus;
+
+    /**
+     * 商家绑定账户id
+     */
+    @ApiModelProperty(value = "商家绑定账户id")
+    private Long userId;
+
+    /**
+     * 咨询量
+     */
+    @ApiModelProperty(value = "咨询量")
+    private Integer consultationVolume;
+
+    /**
+     * 浏览量
+     */
+    @ApiModelProperty(value = "浏览量")
+    private Integer viewNum;
+
+    /**
+     * 是否删除
+     */
+    @ApiModelProperty(value = "是否删除")
+    private Boolean isDel;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private LocalDateTime createdAt;
+
+    /**
+     * 创建人
+     */
+    @ApiModelProperty(value = "创建人")
+    private Long createdBy;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(value = "更新时间")
+    private LocalDateTime updatedAt;
+
+    /**
+     * 更新人
+     */
+    @ApiModelProperty(value = "更新人")
+    private Long updatedBy;
+
+    /**
+     * 区域编码
+     */
+    @ApiModelProperty(value = "区域编码")
+    private String areaCode;
+
+    /**
+     * 手机号
+     */
+    @ApiModelProperty(value = "手机号")
+    private String mobilePhone;
+
+    /**
+     * 关键词
+     */
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+    /**
+     * 服务范围
+     */
+    @ApiModelProperty(value = "服务范围")
+    private String serviceRange;
+
+    @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/equipment/UnionReportDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionReportDto.java
new file mode 100644
index 0000000..03aedd9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionReportDto.java
@@ -0,0 +1,113 @@
+package com.panzhihua.common.model.dtos.equipment;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Data
+@ApiModel("户外劳工站上报表")
+public class UnionReportDto {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * ,主键
+     */
+    @ApiModelProperty(value = "主键")
+    private Integer id;
+
+    /**
+     * 创建人户外劳工站id
+     */
+    @ApiModelProperty(value = "创建人户外劳工站id")
+    private Long createUnionUserId;
+
+    /**
+     * 站点id
+     */
+    @ApiModelProperty(value = "站点id")
+    private Integer siteId;
+
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createUserId;
+
+
+    /**
+     * 类型(1意见反馈2故障保修)
+     */
+    @ApiModelProperty(value = "类型(1意见反馈2故障保修)")
+    private Integer type;
+
+    /**
+     * 内容
+     */
+    @ApiModelProperty(value = "内容")
+    private String content;
+
+    /**
+     * 图片地址
+     */
+    @ApiModelProperty(value = "图片地址")
+    private String url;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private LocalDateTime createAt;
+
+    /**
+     * 标题
+     */
+    @ApiModelProperty(value = "标题")
+    private String title;
+
+    /**
+     * 处理人户外劳工站id
+     */
+    @ApiModelProperty(value = "处理人户外劳工站id")
+    private Integer disposeUnionUserId;
+
+    /**
+     * 处理内容
+     */
+    @ApiModelProperty(value = "处理内容")
+    private String disposeContent;
+
+    /**
+     * 处理时间
+     */
+    @ApiModelProperty(value = "处理时间")
+    private LocalDateTime disposeAt;
+
+    /**
+     * 处理照片地址
+     */
+    @ApiModelProperty(value = "处理照片地址")
+    private String disposeUrl;
+
+    /**
+     * 是否小程序
+     */
+    @ApiModelProperty(value = "是否小程序或h5 1是 0否")
+    private Integer isApplets;
+
+    /**
+     * 状态(1未回复2已回复)
+     */
+    @ApiModelProperty(value = "状态(1未回复2已回复)")
+    private Integer  status;
+
+
+    @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/equipment/UnionShippingAddressDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionShippingAddressDto.java
new file mode 100644
index 0000000..e6c02bd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionShippingAddressDto.java
@@ -0,0 +1,72 @@
+package com.panzhihua.common.model.dtos.equipment;
+
+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;
+
+@Data
+@ApiModel("收货地址")
+public class UnionShippingAddressDto implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private String id;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+
+    @ApiModelProperty(value = "收货地址")
+    private String address;
+
+    @ApiModelProperty(value = "纬度")
+    private String lat;
+
+    @ApiModelProperty(value = "经度")
+    private String lng;
+
+    @ApiModelProperty(value = "收货人手机号")
+    private String phone;
+
+    @ApiModelProperty(value = "收货人姓名")
+    private String name;
+
+    @ApiModelProperty(value = "是否默认(0 不是    1是)")
+    private String isDefault;
+
+    @ApiModelProperty(value = "性别(0 女士    1先生)")
+    private String gender;
+
+    @ApiModelProperty(value = "楼号门牌")
+    private String houseNum;
+
+    @ApiModelProperty(value = "收货城市")
+    private String city;
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionStoreDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionStoreDto.java
new file mode 100644
index 0000000..e447c1e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionStoreDto.java
@@ -0,0 +1,108 @@
+package com.panzhihua.common.model.dtos.equipment;
+
+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;
+
+
+@Data
+@ApiModel("户外劳工站商品参数")
+public class UnionStoreDto  implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private String id;
+    /**
+     * 商品名称
+     */
+    @ApiModelProperty(value = "商品名称")
+    private String goodName;
+    /**
+     * 兑换价格
+     */
+    @ApiModelProperty(value = "兑换价格")
+    private String conversionPrice;
+    /**
+     * 库存
+     */
+    @ApiModelProperty(value = "库存")
+    private String stock;
+    /**
+     * 提货方式(1邮寄  2自提  3邮寄/自提)
+     */
+    @ApiModelProperty(value = "提货方式(1邮寄  2自提  3邮寄/自提)")
+    private String pickGoods;
+    /**
+     * 商品图片
+     */
+    @ApiModelProperty(value = "商品图片")
+    private String goodsUrl;
+    /**
+     * 提货地址
+     */
+    @ApiModelProperty(value = "提货地址")
+    private String pickGoodsAddress;
+    /**
+     * 纬度
+     */
+    @ApiModelProperty(value = "纬度")
+    private String lat;
+    /**
+     * 经度
+     */
+    @ApiModelProperty(value = "经度")
+    private String lng;
+    /**
+     * 商品内容
+     */
+    @ApiModelProperty(value = "商品内容")
+    private String content;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+    /**
+     * 商品状态(1待审核   2上架  3下架)
+     */
+    @ApiModelProperty(value = "商品状态(1待审核   2上架  3下架)")
+    private String goodsType;
+    /**
+     * 商品编号
+     */
+    @ApiModelProperty(value = "商品编号")
+    private String goodNum;
+
+    /**
+     * 发布人id
+     */
+    @ApiModelProperty(value = "发布人id")
+    private String userId;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    @ApiModelProperty(value = "自提时间")
+    private String openingHours;
+
+    @ApiModelProperty(value = "封面")
+    private String goodsCoverUrl;
+
+    @ApiModelProperty(value = "地区名字")
+    private String communityName;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionUserDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionUserDto.java
new file mode 100644
index 0000000..7ee1428
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/equipment/UnionUserDto.java
@@ -0,0 +1,170 @@
+package com.panzhihua.common.model.dtos.equipment;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.time.LocalDateTime;
+
+@Data
+@ApiModel("总工会户外劳工站")
+public class UnionUserDto {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+
+    /**
+     * ()
+     */
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    /**
+     *商家名称
+     */
+    @ApiModelProperty(value = "商家名称")
+    private String sex;
+
+    /**
+     * 联系方式
+     */
+    @ApiModelProperty(value = "联系方式")
+    private String phone;
+
+    /**
+     * 人员类型(1、普通工会用户 2、巡查人员 3、站点负责人
+     */
+    @ApiModelProperty(value = "人员类型(1、普通工会用户 2、巡查人员 3、站点负责人 ")
+    private String type;
+
+    /**
+     * 删除标识
+     */
+    @ApiModelProperty(value = "删除标识")
+    private Boolean deleteFlag;
+
+    /**
+     * 备注
+     */
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private LocalDateTime createAt;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(value = "更新时间")
+    private LocalDateTime updateAt;
+
+    /**
+     * 修改用户
+     */
+    @ApiModelProperty(value = "修改用户")
+    private Long updateBy;
+
+    /**
+     * 创建用户
+     */
+    @ApiModelProperty(value = "创建用户")
+    private Long createBy;
+
+    /**
+     * 认证照片地址
+     */
+    @ApiModelProperty(value = "认证照片地址")
+    private String certifiedPhotoUrl;
+
+    /**
+     * 微信小程序唯一标识
+     */
+    @ApiModelProperty(value = "微信小程序唯一标识")
+    private String openid;
+
+    /**
+     * 身份证号
+     */
+    @ApiModelProperty(value = "身份证号")
+    private String idCard;
+
+    /**
+     * 1 启用 2 禁用
+     */
+    @ApiModelProperty(value = "1 启用 2 禁用")
+    private Integer status;
+
+    /**
+     * 账号
+     */
+    @ApiModelProperty(value = "账号")
+    private String account;
+
+    /**
+     * 昵称
+     */
+    @ApiModelProperty(value = "昵称")
+    private String nickName;
+
+    /**
+     * 密码
+     */
+    @ApiModelProperty(value = "密码")
+    private String password;
+
+    /**
+     * 头像
+     */
+    @ApiModelProperty(value = "头像")
+    private String imageUrl;
+
+    /**
+     * 站点id(普通用户为空)
+     */
+    @ApiModelProperty(value = " 站点id(普通用户为空)")
+    private Integer siteId;
+
+    @ApiModelProperty("花城user_id")
+    private Long userId;
+
+
+    /**
+     * 区域编码
+     */
+    @ApiModelProperty(value = "区域编码")
+    private String areaCode;
+
+    /**
+     * 是否认证
+     */
+    @ApiModelProperty(value = " 是否认证0否1认证")
+    private Integer isAuthenticated;
+
+    /**
+     * 认证图片地址
+     */
+    @ApiModelProperty(value = " 认证图片地址")
+    private String authenticatedUrl;
+
+    /**
+     * 认证图片地址(base_64)
+     */
+    @ApiModelProperty(value = " 认证图片地址(base_64)")
+    private String authenticatedUrlBase;
+
+    /**
+     * 进入方式
+     */
+    @ApiModelProperty(value = "进入方式 1小程序 3H5")
+    private Integer isApplets;
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/AddComMngHousePopulationDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/AddComMngHousePopulationDTO.java
new file mode 100644
index 0000000..1c6fc32
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/AddComMngHousePopulationDTO.java
@@ -0,0 +1,38 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 向房屋添加人员请求参数
+ *
+ * @author lyq
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("向房屋添加人员请求参数")
+public class AddComMngHousePopulationDTO {
+
+    @ApiModelProperty(value = "房屋id", required = true)
+    private Long houseId;
+
+    @ApiModelProperty(value = "人员id集合", required = true)
+    private List<Long> populationIds;
+
+    @ApiModelProperty(value = "添加类型(1.户主 2.住户)", required = true)
+    private Integer type;
+
+    /**
+     * 添加类型(1.户主 2.住户)
+     */
+    public interface type {
+        int hz = 1;
+        int zh = 2;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComActEasyPhotoAddDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComActEasyPhotoAddDTO.java
new file mode 100644
index 0000000..e3cf5c2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComActEasyPhotoAddDTO.java
@@ -0,0 +1,112 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.Date;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 创建表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("创建社区活动 》随手拍请求参数")
+public class ComActEasyPhotoAddDTO {
+
+    @NotNull()
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "发起人id", hidden = false, example = "1")
+    private Long sponsorId;
+
+    @NotBlank()
+    @Length(max = 100)
+    @ApiModelProperty(value = "发生地址", hidden = false, example = "")
+    private String happenAddr;
+
+    @NotBlank(message = "地址备注不能为空")
+    @Length(max = 100)
+    @ApiModelProperty(value = "地址备注", hidden = false, example = "")
+    private String addrRemark;
+
+    @NotNull()
+    @Max(127)
+    @ApiModelProperty(value = "状态 1待处理 2已处理", hidden = false, example = "1")
+    private Integer status;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "处理人id", hidden = false, example = "1")
+    private Long handlerId;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "审核时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date examineAt;
+
+    @Length(max = 65535)
+    @ApiModelProperty(value = "详情", hidden = false, example = "")
+    private String detail;
+
+    @Length(max = 65535)
+    @ApiModelProperty(value = "图片路径列表,逗号分隔", hidden = false, example = "")
+    private String photoPathList;
+
+    @Length(max = 65535)
+    @ApiModelProperty(value = "处理结果", hidden = false, example = "")
+    private String handleResult;
+
+    @Length(max = 65535)
+    @ApiModelProperty(value = "处理结果,图片路径列表,逗号分隔", hidden = false, example = "")
+    private String handlePhotoList;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "社区id", hidden = false, example = "1")
+    private Long communityId;
+
+    @Max(127)
+    @ApiModelProperty(value = "是否匿名发布 0 否 1 是", hidden = false, example = "1")
+    private Integer isHide;
+
+    @Max(127)
+    @ApiModelProperty(value = "是否需要反馈 0 不需要 1 需要", hidden = false, example = "1")
+    private Integer isNeedFeedBack;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "反馈时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date feedbackAt;
+
+    @Length(max = 500)
+    @ApiModelProperty(value = "驳回原因", hidden = false, example = "")
+    private String rejectReason;
+
+    @Length(max = 65535)
+    @ApiModelProperty(value = "封面图片", hidden = false, example = "")
+    private String cover;
+
+    @Max(127)
+    @ApiModelProperty(value = "是否删除 0 否 1 是", hidden = false, example = "1")
+    private Integer delTag;
+
+    @Max(127)
+    @ApiModelProperty(value = "是否上报社区处理(0.否 1.是)", hidden = false, example = "1")
+    private Integer isReport;
+
+    @Max(127)
+    @ApiModelProperty(value = "是否公示(0.否 1.是)", hidden = false, example = "1")
+    private Integer isPublicity;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComActEasyPhotoDeleteDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComActEasyPhotoDeleteDTO.java
new file mode 100644
index 0000000..bfb14f9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComActEasyPhotoDeleteDTO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 删除表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("删除社区活动 》随手拍请求参数")
+public class ComActEasyPhotoDeleteDTO {
+
+    @ApiModelProperty(value = "自增id", hidden = false, example = "1")
+    private Long id;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComActEasyPhotoEditAdminDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComActEasyPhotoEditAdminDTO.java
new file mode 100644
index 0000000..2b08744
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComActEasyPhotoEditAdminDTO.java
@@ -0,0 +1,30 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 随手拍处理请求参数
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("后台管理随手拍批量操作请求参数")
+public class ComActEasyPhotoEditAdminDTO {
+
+    @ApiModelProperty(value = "随手拍id", required = true)
+    private List<Long> ids;
+
+    @ApiModelProperty(value = "是否公示(0.否 1.是)", hidden = false, example = "1")
+    private Integer isPublicity;
+
+    @ApiModelProperty(value = "1.切换公示状态 2.删除随手拍", required = true)
+    private Integer type;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComActEasyPhotoEditDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComActEasyPhotoEditDTO.java
new file mode 100644
index 0000000..8fca8e4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComActEasyPhotoEditDTO.java
@@ -0,0 +1,116 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.Date;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 编辑表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("编辑社区活动 》随手拍请求参数")
+public class ComActEasyPhotoEditDTO {
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "自增id", hidden = false, example = "1")
+    private Long id;
+
+    @NotNull()
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "发起人id", hidden = false, example = "1")
+    private Long sponsorId;
+
+    @NotBlank()
+    @Length(max = 100)
+    @ApiModelProperty(value = "发生地址", hidden = false, example = "")
+    private String happenAddr;
+
+    @NotBlank(message = "地址备注不能为空")
+    @Length(max = 100)
+    @ApiModelProperty(value = "地址备注", hidden = false, example = "")
+    private String addrRemark;
+
+    @NotNull()
+    @Max(127)
+    @ApiModelProperty(value = "状态 1待处理 2已处理", hidden = false, example = "1")
+    private Integer status;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "处理人id", hidden = false, example = "1")
+    private Long handlerId;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "审核时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date examineAt;
+
+    @Length(max = 65535)
+    @ApiModelProperty(value = "详情", hidden = false, example = "")
+    private String detail;
+
+    @Length(max = 65535)
+    @ApiModelProperty(value = "图片路径列表,逗号分隔", hidden = false, example = "")
+    private String photoPathList;
+
+    @Length(max = 65535)
+    @ApiModelProperty(value = "处理结果", hidden = false, example = "")
+    private String handleResult;
+
+    @Length(max = 65535)
+    @ApiModelProperty(value = "处理结果,图片路径列表,逗号分隔", hidden = false, example = "")
+    private String handlePhotoList;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "社区id", hidden = false, example = "1")
+    private Long communityId;
+
+    @Max(127)
+    @ApiModelProperty(value = "是否匿名发布 0 否 1 是", hidden = false, example = "1")
+    private Integer isHide;
+
+    @Max(127)
+    @ApiModelProperty(value = "是否需要反馈 0 不需要 1 需要", hidden = false, example = "1")
+    private Integer isNeedFeedBack;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "反馈时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date feedbackAt;
+
+    @Length(max = 500)
+    @ApiModelProperty(value = "驳回原因", hidden = false, example = "")
+    private String rejectReason;
+
+    @Length(max = 65535)
+    @ApiModelProperty(value = "封面图片", hidden = false, example = "")
+    private String cover;
+
+    @Max(127)
+    @ApiModelProperty(value = "是否删除 0 否 1 是", hidden = false, example = "1")
+    private Integer delTag;
+
+    @Max(127)
+    @ApiModelProperty(value = "是否上报社区处理(0.否 1.是)", hidden = false, example = "1")
+    private Integer isReport;
+
+    @Max(127)
+    @ApiModelProperty(value = "是否公示(0.否 1.是)", hidden = false, example = "1")
+    private Integer isPublicity;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComActEasyPhotoHandleDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComActEasyPhotoHandleDTO.java
new file mode 100644
index 0000000..295c1d4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComActEasyPhotoHandleDTO.java
@@ -0,0 +1,46 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.List;
+
+import javax.validation.constraints.Max;
+
+import org.hibernate.validator.constraints.Length;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 随手拍处理请求参数
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("随手拍处理请求参数")
+public class ComActEasyPhotoHandleDTO {
+
+    @ApiModelProperty(value = "随手拍id")
+    private Long id;
+
+    @Length(max = 65535)
+    @ApiModelProperty(value = "处理结果", hidden = false, example = "")
+    private String handleResult;
+
+    @Length(max = 65535)
+    @ApiModelProperty(value = "处理结果,图片路径列表,逗号分隔", hidden = false, example = "")
+    private String handlePhotoList;
+
+    @Max(127)
+    @ApiModelProperty(value = "是否公示(1.是 2.否)", hidden = false, example = "1")
+    private Integer isPublicity;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long handlerId;
+
+    @ApiModelProperty(value = "随手拍类型id集合")
+    private List<Long> easyTypeIds;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComActEasyPhotoTypeAddDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComActEasyPhotoTypeAddDTO.java
new file mode 100644
index 0000000..96ec399
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComActEasyPhotoTypeAddDTO.java
@@ -0,0 +1,28 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import org.hibernate.validator.constraints.Length;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 创建表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("创建随手拍类型请求参数")
+public class ComActEasyPhotoTypeAddDTO {
+
+    @Length(max = 50)
+    @ApiModelProperty(value = "随手拍类型名称", hidden = false, example = "")
+    private String name;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComActEasyPhotoTypeDeleteDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComActEasyPhotoTypeDeleteDTO.java
new file mode 100644
index 0000000..c000614
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComActEasyPhotoTypeDeleteDTO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 删除表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("删除随手拍类型请求参数")
+public class ComActEasyPhotoTypeDeleteDTO {
+
+    @ApiModelProperty(value = "主键id", hidden = false, example = "1")
+    private Long id;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComActEasyPhotoTypeEditDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComActEasyPhotoTypeEditDTO.java
new file mode 100644
index 0000000..b953821
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComActEasyPhotoTypeEditDTO.java
@@ -0,0 +1,34 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import javax.validation.constraints.Max;
+
+import org.hibernate.validator.constraints.Length;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 编辑表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("编辑随手拍类型请求参数")
+public class ComActEasyPhotoTypeEditDTO {
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "主键id", hidden = false, example = "1")
+    private Long id;
+
+    @Length(max = 50)
+    @ApiModelProperty(value = "随手拍类型名称", hidden = false, example = "")
+    private String name;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComMngVillageListAppDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComMngVillageListAppDTO.java
new file mode 100644
index 0000000..f790594
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/ComMngVillageListAppDTO.java
@@ -0,0 +1,66 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Pattern;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 小区列表-请求参数
+ *
+ * @author lyq
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("小区列表-请求参数")
+public class ComMngVillageListAppDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "小区名称")
+    private String name;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "社区id", hidden = true, example = "1")
+    private Long communityId;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+    @ApiModelProperty(value = "排序字段, 默认 创建时间:createAt(在住居民数:userSum,楼栋数:buildSum,总户数:houseNum,户籍人口:registerNum)",
+        example = "createAt")
+    private String sortAttr = "createAt";
+
+    @ApiModelProperty(value = "排序方式: asc/desc(默认)", example = "desc")
+    @Pattern(regexp = "asc|desc|ASC|DESC")
+    private String sortType = "desc";
+
+    @ApiModelProperty(value = "街路巷")
+    private String alley;
+
+    @ApiModelProperty(value = "门牌号")
+    private String houseNum;
+
+    @ApiModelProperty(value = "小区组")
+    private String groupAt;
+
+    @ApiModelProperty(value = "小区地址")
+    private String address;
+
+    @ApiModelProperty(value = "网格id")
+    private Long gridId;
+
+    public String getSortColumns() {
+        // String dbColumn = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sortAttr);
+        return sortAttr;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventAddDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventAddDTO.java
new file mode 100644
index 0000000..7c5c656
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventAddDTO.java
@@ -0,0 +1,123 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 创建表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("事件请求参数")
+public class CommonEventAddDTO {
+
+    @Max(127)
+    @ApiModelProperty(value = "事件分类:1治安隐患、2公共服务、3矛盾纠纷、4不稳定因素、5突发事件、6特殊人群上报", hidden = false, example = "1",
+        required = true)
+    @NotNull(message = "事件分类不能为空")
+    private Integer eventType;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "发生时间", hidden = false, example = "2021-05-01 18:05:50", required = true)
+    @NotNull(message = "发生时间不能为空")
+    private Date happenTime;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "发生的精度纬度信息(逗号隔开)", hidden = false, example = "41.40338,2.17403", required = true)
+    @NotNull(message = "发生的精度纬度信息不能为空")
+    private String happentLatLng;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "发生地点-位置备注", hidden = false, example = "")
+    private String happentAddress;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "事件发生地点", hidden = false, example = "", required = true)
+    private String happenAddress;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "发生区域-网格ID", hidden = false, example = "1", required = true)
+    @NotNull(message = "发生区域-网格ID不能为空")
+    private Long gridId;
+
+    @Length(max = 500, message = "事件描述长度不能超过500")
+    @ApiModelProperty(value = "事件描述", hidden = false, example = "", required = true)
+    @NotNull(message = "事件描述不能为空")
+    private String eventDes;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "事件类型,逗号隔开", hidden = false, example = "邻里纠纷,土地承包租赁", required = true)
+    @NotNull(message = "事件类型不能为空")
+    private String eventClazz;
+
+    @Max(127)
+    @ApiModelProperty(value = "危险级别:0 (无) 1(特别重大)、2(重大)、3(较大)、4(一般)", hidden = false, example = "1", required = true)
+    @NotNull(message = "危险级别不能为空")
+    private Integer dangerLevel;
+
+    @Max(9999999999L)
+    @Min(value = 0, message = "死亡人数不能为负数")
+    @ApiModelProperty(value = "死亡人数", hidden = false, example = "1", required = true)
+    @NotNull(message = "死亡人数不能为空")
+    private Integer deathsNumber;
+
+    @Max(9999999999L)
+    @Min(value = 0, message = "受伤人数不能为负数")
+    @ApiModelProperty(value = "受伤人数", hidden = false, example = "1", required = true)
+    @NotNull(message = "受伤人数不能为空")
+    private Integer injuriesNumber;
+
+    @ApiModelProperty(value = "是否紧急", hidden = false, example = "true", required = true)
+    @NotNull(message = "是否紧急不能为空")
+    private Boolean urgent;
+
+    @ApiModelProperty(value = "是否重大", hidden = false, example = "true", required = true)
+    @NotNull(message = "是否重大不能为空")
+    private Boolean major;
+
+    @ApiModelProperty(value = "音频(限1个)", hidden = false,
+        example = "http://image.panzhihua.nhys.cdnhxx.com/idcard/8f77d43e8bce47d38b63e2a8ceb0a7c6.mp3")
+    private String audio;
+
+    @ApiModelProperty(value = "音频时长(单位:秒)", hidden = false, example = "10")
+    private Integer audioTime;
+
+    @ApiModelProperty(value = "视频(限1个)", hidden = false,
+        example = "http://image.panzhihua.nhys.cdnhxx.com/idcard/8f77d43e8bce47d38b63e2a8ceb0a7c6.mp4")
+    private String video;
+
+    @ApiModelProperty(value = "视频时长(单位:秒)", hidden = false, example = "10")
+    private Integer videoTime;
+
+    @ApiModelProperty(value = "图片,逗号隔开(限9张)", hidden = false,
+        example = "http://image.panzhihua.nhys.cdnhxx.com/idcard/8f77d43e8bce47d38b63e2a8ceb0a7c6.jpg,http://image.panzhihua.nhys.cdnhxx.com/idcard/8f77d43e8bce47d38b63e2a8ceb0a7c6.jpg")
+    private String pics;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+    @ApiModelProperty(value = "(当前操作)用户姓名", hidden = true, example = "张三")
+    private String userName;
+    @ApiModelProperty(value = "(当前操作)用户电话", hidden = true, example = "18888888888")
+    @Length(max = 11)
+    private String phone;
+
+    @ApiModelProperty(value = "上报人口id列表,当事件类型为特殊人群上报时此字段不为空", hidden = false)
+    private List<Long> populationIds;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventBatchRepublishDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventBatchRepublishDTO.java
new file mode 100644
index 0000000..5afd11f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventBatchRepublishDTO.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.List;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 事件重新发布请求参表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("事件重新发布请求参数")
+public class CommonEventBatchRepublishDTO {
+
+    @ApiModelProperty(value = "事件id", hidden = false, example = "1", required = true)
+    @NotNull(message = "事件ID不能为空")
+    private List<String> id;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+    @ApiModelProperty(value = "(当前操作)用户姓名", hidden = true, example = "张三")
+    private String userName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventCommunityAddDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventCommunityAddDTO.java
new file mode 100644
index 0000000..5b853bf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventCommunityAddDTO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 创建表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("社区后台添加事件请求参数")
+public class CommonEventCommunityAddDTO extends CommonEventAddDTO {
+
+    @ApiModelProperty(value = "网格员ID", hidden = false, example = "1", required = true)
+    @NotNull(message = "网格员不能为空")
+    private Long gridMemberId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventDealDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventDealDTO.java
new file mode 100644
index 0000000..2ee9e7c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventDealDTO.java
@@ -0,0 +1,67 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotNull;
+
+import org.hibernate.validator.constraints.Length;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 创建表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("事件处理请求参数")
+public class CommonEventDealDTO {
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "事件id", hidden = false, example = "1", required = true)
+    @NotNull
+    private Long id;
+
+    @Length(max = 500, message = "办理意见不能超过500个字")
+    @ApiModelProperty(value = "办理意见", hidden = false, example = "", required = true)
+    @NotNull
+    private String processResult;
+
+    @ApiModelProperty(value = "音频(限1个)", hidden = false,
+        example = "http://image.panzhihua.nhys.cdnhxx.com/idcard/8f77d43e8bce47d38b63e2a8ceb0a7c6.mp3")
+    private String audio;
+
+    @ApiModelProperty(value = "音频时长(单位:秒)", hidden = false, example = "10")
+    private Integer audioTime;
+
+    @ApiModelProperty(value = "视频(限1个)", hidden = false,
+        example = "http://image.panzhihua.nhys.cdnhxx.com/idcard/8f77d43e8bce47d38b63e2a8ceb0a7c6.mp4")
+    private String video;
+
+    @ApiModelProperty(value = "视频时长(单位:秒)", hidden = false, example = "10")
+    private Integer videoTime;
+
+    @ApiModelProperty(value = "图片,逗号隔开(限9张)", hidden = false,
+        example = "http://image.panzhihua.nhys.cdnhxx.com/idcard/8f77d43e8bce47d38b63e2a8ceb0a7c6.jpg,http://image.panzhihua.nhys.cdnhxx.com/idcard/8f77d43e8bce47d38b63e2a8ceb0a7c6.jpg")
+    private String pics;
+
+    @ApiModelProperty(value = "是否验证:社区后台处理时必填", hidden = false, example = "true")
+    private Boolean needVerify;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+    @ApiModelProperty(value = "(当前操作)用户姓名", hidden = true, example = "张三")
+    private String userName;
+
+    @ApiModelProperty(value = "(当前操作)用户类型:0网格员 1 社区后台", hidden = true, example = "1")
+    private Integer operateType;
+    @ApiModelProperty(value = "(当前操作)用户社区ID", hidden = true, example = "1")
+    private Long communityId;
+    @ApiModelProperty(value = "(当前操作)用户社区名称", hidden = true, example = "学园社区")
+    private String communityName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventDeleteDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventDeleteDTO.java
new file mode 100644
index 0000000..c794b58
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventDeleteDTO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 删除表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("删除事件请求参数")
+public class CommonEventDeleteDTO {
+
+    @ApiModelProperty(value = "id", hidden = false, example = "1")
+    private Long id;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventDirectReportDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventDirectReportDTO.java
new file mode 100644
index 0000000..dfe1cbe
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventDirectReportDTO.java
@@ -0,0 +1,135 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.Date;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotNull;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 上报社区表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("上报社区请求参数")
+public class CommonEventDirectReportDTO {
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "事件ID", hidden = false, example = "1")
+    private Long eventId;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "办理意见", hidden = false, example = "", required = true)
+    @NotNull(message = "办理意见不能为空")
+    private String processResult;
+
+    // 事件下游机构或网格员
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "社区ID", hidden = false, example = "1", required = true)
+    @NotNull(message = "社区ID不能为空")
+    private Long toId;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+    @ApiModelProperty(value = "(当前操作)用户姓名", hidden = true, example = "张三")
+    private String userName;
+
+    @ApiModelProperty(value = "(当前操作)用户社区ID", hidden = true, example = "1")
+    private Long communityId;
+
+    @Max(127)
+    @ApiModelProperty(value = "事件分类:1治安隐患、2公共服务、3矛盾纠纷、4不稳定因素、5突发事件", hidden = false, example = "1", required = true)
+    @NotNull(message = "事件分类不能为空")
+    private Integer eventType;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "发生时间", hidden = false, example = "2021-05-01 18:05:50", required = true)
+    @NotNull(message = "发生时间不能为空")
+    private Date happenTime;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "发生的精度纬度信息(逗号隔开)", hidden = false, example = "41.40338,2.17403", required = true)
+    @NotNull(message = "发生的精度纬度信息不能为空")
+    private String happentLatLng;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "发生地点-位置备注", hidden = false, example = "")
+    private String happentAddress;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "事件发生地点", hidden = false, example = "", required = true)
+    private String happenAddress;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "发生区域-网格ID", hidden = false, example = "1", required = true)
+    @NotNull(message = "发生区域-网格ID不能为空")
+    private Long gridId;
+
+    @Length(max = 500)
+    @ApiModelProperty(value = "事件描述", hidden = false, example = "", required = true)
+    @NotNull(message = "事件描述不能为空")
+    private String eventDes;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "事件类型,逗号隔开", hidden = false, example = "邻里纠纷,土地承包租赁", required = true)
+    @NotNull(message = "事件类型不能为空")
+    private String eventClazz;
+
+    @Max(127)
+    @ApiModelProperty(value = "危险级别:0 (无) 1(特别重大)、2(重大)、3(较大)、4(一般)", hidden = false, example = "1", required = true)
+    @NotNull(message = "危险级别不能为空")
+    private Integer dangerLevel;
+
+    @Max(9999999999L)
+    @ApiModelProperty(value = "死亡人数", hidden = false, example = "1", required = true)
+    @NotNull(message = "死亡人数不能为空")
+    private Integer deathsNumber;
+
+    @Max(9999999999L)
+    @ApiModelProperty(value = "受伤人数", hidden = false, example = "1", required = true)
+    @NotNull(message = "受伤人数不能为空")
+    private Integer injuriesNumber;
+
+    @ApiModelProperty(value = "是否紧急", hidden = false, example = "true", required = true)
+    @NotNull(message = "是否紧急不能为空")
+    private Boolean urgent;
+
+    @ApiModelProperty(value = "是否重大", hidden = false, example = "true", required = true)
+    @NotNull(message = "是否重大不能为空")
+    private Boolean major;
+
+    @ApiModelProperty(value = "音频(限1个)", hidden = false,
+        example = "http://image.panzhihua.nhys.cdnhxx.com/idcard/8f77d43e8bce47d38b63e2a8ceb0a7c6.mp3")
+    private String audio;
+
+    @ApiModelProperty(value = "音频时长(单位:秒)", hidden = false, example = "10")
+    private Integer audioTime;
+
+    @ApiModelProperty(value = "视频(限1个)", hidden = false,
+        example = "http://image.panzhihua.nhys.cdnhxx.com/idcard/8f77d43e8bce47d38b63e2a8ceb0a7c6.mp4")
+    private String video;
+
+    @ApiModelProperty(value = "视频时长(单位:秒)", hidden = false, example = "10")
+    private Integer videoTime;
+
+    @ApiModelProperty(value = "图片,逗号隔开(限9张)", hidden = false,
+        example = "http://image.panzhihua.nhys.cdnhxx.com/idcard/8f77d43e8bce47d38b63e2a8ceb0a7c6.jpg,http://image.panzhihua.nhys.cdnhxx.com/idcard/8f77d43e8bce47d38b63e2a8ceb0a7c6.jpg")
+    private String pics;
+
+    @ApiModelProperty(value = "(当前操作)用户电话", hidden = true, example = "18888888888")
+    @Length(max = 11)
+    private String phone;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventEditDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventEditDTO.java
new file mode 100644
index 0000000..ef3ef57
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventEditDTO.java
@@ -0,0 +1,125 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotNull;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 创建表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("事件编辑请求参数")
+public class CommonEventEditDTO {
+
+    @Max(127)
+    @ApiModelProperty(value = "事件分类:1治安隐患、2公共服务、3矛盾纠纷、4不稳定因素、5突发事件、6特殊人群上报", hidden = false, example = "1",
+        required = true)
+    @NotNull(message = "事件分类不能为空")
+    private Integer eventType;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "id,如果是新增则不填", hidden = false, example = "1")
+    private Long id;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "发生时间", hidden = false, example = "2021-05-01 18:05:50", required = true)
+    @NotNull(message = "发生时间不能为空")
+    private Date happenTime;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "发生的精度纬度信息(逗号隔开)", hidden = false, example = "41.40338,2.17403", required = true)
+    @NotNull(message = "发生的精度纬度信息不能为空")
+    private String happentLatLng;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "发生地点-位置备注", hidden = false, example = "")
+    private String happentAddress;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "事件发生地点", hidden = false, example = "", required = true)
+    private String happenAddress;
+
+    // 位置备注
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "发生区域-网格ID", hidden = false, example = "1", required = true)
+    @NotNull(message = "发生区域-网格ID不能为空")
+    private Long gridId;
+
+    @Length(max = 500)
+    @ApiModelProperty(value = "事件描述", hidden = false, example = "", required = true)
+    @NotNull(message = "事件描述不能为空")
+    private String eventDes;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "事件类型,逗号隔开", hidden = false, example = "邻里纠纷,土地承包租赁", required = true)
+    @NotNull(message = "事件类型不能为空")
+    private String eventClazz;
+
+    @Max(127)
+    @ApiModelProperty(value = "危险级别:0 (无) 1(特别重大)、2(重大)、3(较大)、4(一般)", hidden = false, example = "1", required = true)
+    @NotNull(message = "危险级别不能为空")
+    private Integer dangerLevel;
+
+    @Max(9999999999L)
+    @ApiModelProperty(value = "死亡人数", hidden = false, example = "1", required = true)
+    @NotNull(message = "死亡人数不能为空")
+    private Integer deathsNumber;
+
+    @Max(9999999999L)
+    @ApiModelProperty(value = "受伤人数", hidden = false, example = "1", required = true)
+    @NotNull(message = "受伤人数不能为空")
+    private Integer injuriesNumber;
+
+    @ApiModelProperty(value = "是否紧急", hidden = false, example = "true", required = true)
+    @NotNull(message = "是否紧急不能为空")
+    private Boolean urgent;
+
+    @ApiModelProperty(value = "是否重大", hidden = false, example = "true", required = true)
+    @NotNull(message = "是否重大不能为空")
+    private Boolean major;
+
+    @ApiModelProperty(value = "音频(限1个)", hidden = false,
+        example = "http://image.panzhihua.nhys.cdnhxx.com/idcard/8f77d43e8bce47d38b63e2a8ceb0a7c6.mp3")
+    private String audio;
+
+    @ApiModelProperty(value = "音频时长(单位:秒)", hidden = false, example = "10")
+    private Integer audioTime;
+
+    @ApiModelProperty(value = "视频(限1个)", hidden = false,
+        example = "http://image.panzhihua.nhys.cdnhxx.com/idcard/8f77d43e8bce47d38b63e2a8ceb0a7c6.mp4")
+    private String video;
+
+    @ApiModelProperty(value = "视频时长(单位:秒)", hidden = false, example = "10")
+    private Integer videoTime;
+
+    @ApiModelProperty(value = "图片,逗号隔开(限9张)", hidden = false,
+        example = "http://image.panzhihua.nhys.cdnhxx.com/idcard/8f77d43e8bce47d38b63e2a8ceb0a7c6.jpg,http://image.panzhihua.nhys.cdnhxx.com/idcard/8f77d43e8bce47d38b63e2a8ceb0a7c6.jpg")
+    private String pics;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+    @ApiModelProperty(value = "(当前操作)用户姓名", hidden = true, example = "张三")
+    private String userName;
+    @ApiModelProperty(value = "(当前操作)用户电话", hidden = true, example = "18888888888")
+    @Length(max = 11)
+    private String phone;
+
+    @ApiModelProperty(value = "上报人口id列表,当事件类型为特殊人群上报时此字段不为空", hidden = false)
+    private List<Long> populationIds;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventPublicDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventPublicDTO.java
new file mode 100644
index 0000000..94f81ca
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventPublicDTO.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 事件重新发布请求参表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("事件重新发布请求参数")
+public class CommonEventPublicDTO {
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "事件id", hidden = false, example = "1", required = true)
+    @NotNull(message = "事件ID不能为空")
+    private Long id;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+    @ApiModelProperty(value = "(当前操作)用户姓名", hidden = true, example = "张三")
+    private String userName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventReportDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventReportDTO.java
new file mode 100644
index 0000000..6de8332
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventReportDTO.java
@@ -0,0 +1,49 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotNull;
+
+import org.hibernate.validator.constraints.Length;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 上报社区表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("上报社区请求参数")
+public class CommonEventReportDTO {
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "事件ID", hidden = false, example = "1", required = true)
+    @NotNull(message = "事件ID不能为空")
+    private Long eventId;
+
+    @Length(max = 255, message = "办理意见长度不能超过255")
+    @ApiModelProperty(value = "办理意见", hidden = false, example = "", required = true)
+    @NotNull(message = "办理意见不能为空")
+    private String processResult;
+
+    // 事件下游机构或网格员
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "社区ID", hidden = false, example = "1", required = true)
+    @NotNull(message = "社区ID不能为空")
+    private Long toId;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+    @ApiModelProperty(value = "(当前操作)用户姓名", hidden = true, example = "张三")
+    private String userName;
+
+    @ApiModelProperty(value = "(当前操作)用户社区ID", hidden = true, example = "1")
+    private Long communityId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventRepublishDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventRepublishDTO.java
new file mode 100644
index 0000000..229060f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventRepublishDTO.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 事件重新发布请求参表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("事件重新发布请求参数")
+public class CommonEventRepublishDTO {
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "事件id", hidden = false, example = "1", required = true)
+    @NotNull(message = "事件id不能为空")
+    private Long id;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+    @ApiModelProperty(value = "(当前操作)用户姓名", hidden = true, example = "张三")
+    private String userName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventVerifyDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventVerifyDTO.java
new file mode 100644
index 0000000..700a447
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommonEventVerifyDTO.java
@@ -0,0 +1,38 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotNull;
+
+import org.hibernate.validator.constraints.Length;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 创建表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("突发事件处理请求参数")
+public class CommonEventVerifyDTO {
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "事件id", hidden = false, example = "1")
+    private Long id;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "办理意见", hidden = false, example = "", required = true)
+    @NotNull
+    private String processResult;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+    @ApiModelProperty(value = "(当前操作)用户姓名", hidden = true, example = "张三")
+    private String userName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommunityRepublishEventDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommunityRepublishEventDTO.java
new file mode 100644
index 0000000..da24c66
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/CommunityRepublishEventDTO.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 事件重新发布请求参表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("事件重新发布请求参数")
+public class CommunityRepublishEventDTO {
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "事件id", hidden = false, example = "1", required = true)
+    @NotNull(message = "事件id不能为空")
+    private Long id;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+    @ApiModelProperty(value = "(当前操作)用户姓名", hidden = true, example = "张三")
+    private String userName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/DelComMngHousePopulationDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/DelComMngHousePopulationDTO.java
new file mode 100644
index 0000000..991558c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/DelComMngHousePopulationDTO.java
@@ -0,0 +1,33 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 向房屋删除人员请求参数
+ *
+ * @author lyq
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("向房屋删除人员请求参数")
+public class DelComMngHousePopulationDTO {
+
+    @ApiModelProperty(value = "房屋人员关联id", required = true)
+    private Long housePopulationId;
+
+    @ApiModelProperty(value = "添加类型(1.户主 2.住户)", required = true)
+    private Integer type;
+
+    /**
+     * 添加类型(1.户主 2.住户)
+     */
+    public interface type {
+        int hz = 1;
+        int zh = 2;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventApplicationAppReleaseAddDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventApplicationAppReleaseAddDTO.java
new file mode 100644
index 0000000..8bc2028
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventApplicationAppReleaseAddDTO.java
@@ -0,0 +1,46 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import javax.validation.constraints.Max;
+
+import org.hibernate.validator.constraints.Length;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 创建表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("创建APP应用版本信息请求参数")
+public class EventApplicationAppReleaseAddDTO {
+
+    @Max(32767)
+    @ApiModelProperty(value = "应用ID", hidden = false, example = "1")
+    private Integer productId;
+
+    @Length(max = 50)
+    @ApiModelProperty(value = "应用名称", hidden = false, example = "")
+    private String productName;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "版本编号", hidden = false, example = "")
+    private String releaseNumber;
+
+    @Max(32767)
+    @ApiModelProperty(value = "通知行为(1、强制更新2、提示更新)", hidden = false, example = "1")
+    private Integer action;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "版本地址", hidden = false, example = "")
+    private String url;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventApplicationAppReleaseDeleteDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventApplicationAppReleaseDeleteDTO.java
new file mode 100644
index 0000000..dabdbc3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventApplicationAppReleaseDeleteDTO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 删除表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("删除APP应用版本信息请求参数")
+public class EventApplicationAppReleaseDeleteDTO {
+
+    @ApiModelProperty(value = "id", hidden = false, example = "1")
+    private Long id;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventApplicationAppReleaseEditDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventApplicationAppReleaseEditDTO.java
new file mode 100644
index 0000000..23f95da
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventApplicationAppReleaseEditDTO.java
@@ -0,0 +1,50 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import javax.validation.constraints.Max;
+
+import org.hibernate.validator.constraints.Length;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 编辑表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("编辑APP应用版本信息请求参数")
+public class EventApplicationAppReleaseEditDTO {
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "id", hidden = false, example = "1")
+    private Long id;
+
+    @Max(32767)
+    @ApiModelProperty(value = "应用ID", hidden = false, example = "1")
+    private Integer productId;
+
+    @Length(max = 50)
+    @ApiModelProperty(value = "应用名称", hidden = false, example = "")
+    private String productName;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "版本编号", hidden = false, example = "")
+    private String releaseNumber;
+
+    @Max(32767)
+    @ApiModelProperty(value = "通知行为(1、强制更新2、提示更新)", hidden = false, example = "1")
+    private Integer action;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "版本地址", hidden = false, example = "")
+    private String url;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventApplicationUserNoticeAddDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventApplicationUserNoticeAddDTO.java
new file mode 100644
index 0000000..a5bdade
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventApplicationUserNoticeAddDTO.java
@@ -0,0 +1,42 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import javax.validation.constraints.Max;
+
+import org.hibernate.validator.constraints.Length;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 创建表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("创建用户协议和隐私政策信息请求参数")
+public class EventApplicationUserNoticeAddDTO {
+
+    @Max(32767)
+    @ApiModelProperty(value = "应用ID", hidden = false, example = "1")
+    private Integer productId;
+
+    @Length(max = 50)
+    @ApiModelProperty(value = "应用名称", hidden = false, example = "")
+    private String productName;
+
+    @Max(32767)
+    @ApiModelProperty(value = "通知行为(1、强制通知必须手段确定2、提示更新,自动消退)", hidden = false, example = "1")
+    private Integer action;
+
+    @Length(max = 1000)
+    @ApiModelProperty(value = "内容", hidden = false, example = "")
+    private String content;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventApplicationUserNoticeDeleteDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventApplicationUserNoticeDeleteDTO.java
new file mode 100644
index 0000000..54983bd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventApplicationUserNoticeDeleteDTO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 删除表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("删除用户协议和隐私政策信息请求参数")
+public class EventApplicationUserNoticeDeleteDTO {
+
+    @ApiModelProperty(value = "id", hidden = false, example = "1")
+    private Long id;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventApplicationUserNoticeEditDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventApplicationUserNoticeEditDTO.java
new file mode 100644
index 0000000..4ce0873
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventApplicationUserNoticeEditDTO.java
@@ -0,0 +1,46 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import javax.validation.constraints.Max;
+
+import org.hibernate.validator.constraints.Length;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 编辑表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("编辑用户协议和隐私政策信息请求参数")
+public class EventApplicationUserNoticeEditDTO {
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "id", hidden = false, example = "1")
+    private Long id;
+
+    @Max(32767)
+    @ApiModelProperty(value = "应用ID", hidden = false, example = "1")
+    private Integer productId;
+
+    @Length(max = 50)
+    @ApiModelProperty(value = "应用名称", hidden = false, example = "")
+    private String productName;
+
+    @Max(32767)
+    @ApiModelProperty(value = "通知行为(1、强制通知必须手段确定2、提示更新,自动消退)", hidden = false, example = "1")
+    private Integer action;
+
+    @Length(max = 1000)
+    @ApiModelProperty(value = "内容", hidden = false, example = "")
+    private String content;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventBatchRevokeDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventBatchRevokeDTO.java
new file mode 100644
index 0000000..3edfdfb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventBatchRevokeDTO.java
@@ -0,0 +1,45 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.List;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 编辑表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("撤销事件请求参数")
+public class EventBatchRevokeDTO {
+
+    @ApiModelProperty(value = "id", hidden = false, example = "1", required = true)
+    @NotNull(message = "事件ID不能为空")
+    private List<String> id;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+    @ApiModelProperty(value = "(当前操作)用户姓名", hidden = true, example = "李四")
+    private String userName;
+
+    @ApiModelProperty(value = "操作人所属社区", hidden = true, example = "学院社区")
+    private String communityName;
+
+    @ApiModelProperty(value = "操作人所属社区", hidden = true, example = "学院社区")
+    private Long communityId;
+
+    @ApiModelProperty(value = "撤销类型 1 网格员 2 社区", hidden = true, example = "1")
+    private Integer revokeType;
+
+    @ApiModelProperty(value = "撤销人/社区ID", hidden = true, example = "1")
+    private Long revokeId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventDeleteDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventDeleteDTO.java
new file mode 100644
index 0000000..c8dcdb5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventDeleteDTO.java
@@ -0,0 +1,30 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.List;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 删除表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-28
+ */
+@Data
+@ApiModel("删除事件请求参数")
+public class EventDeleteDTO {
+
+    @ApiModelProperty(value = "id", hidden = false, example = "1")
+    @NotNull(message = "事件ID不能为空")
+    private List<String> id;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventDeleteSingleDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventDeleteSingleDTO.java
new file mode 100644
index 0000000..9a96f43
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventDeleteSingleDTO.java
@@ -0,0 +1,28 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 删除表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-28
+ */
+@Data
+@ApiModel("删除事件请求参数")
+public class EventDeleteSingleDTO {
+
+    @ApiModelProperty(value = "id", hidden = false, example = "1")
+    @NotNull
+    private Long id;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridCascadeListDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridCascadeListDTO.java
new file mode 100644
index 0000000..43002bf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridCascadeListDTO.java
@@ -0,0 +1,27 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("网格列表级联请求参数")
+public class EventGridCascadeListDTO {
+
+    @ApiModelProperty(value = "类型(1.社区  2.网格)")
+    private Integer type;
+
+    @ApiModelProperty(value = "登陆用户id", hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    /**
+     * 类型(1.社区 2.网格)
+     */
+    public interface type {
+        int sq = 1;
+        int wg = 2;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridDataAddAdminDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridDataAddAdminDTO.java
new file mode 100644
index 0000000..e3cdf84
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridDataAddAdminDTO.java
@@ -0,0 +1,69 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.List;
+
+import javax.validation.constraints.NotBlank;
+
+import org.hibernate.validator.constraints.Length;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 新增网格请求参数
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("新增网格请求参数")
+public class EventGridDataAddAdminDTO {
+
+    @NotBlank()
+    @Length(max = 100)
+    @ApiModelProperty(value = "网格名称", hidden = false, example = "")
+    private String gridName;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "网格描述", hidden = false, example = "")
+    private String remarks;
+
+    @Length(max = 100)
+    @ApiModelProperty(value = "面积", hidden = false, example = "")
+    private String area;
+
+    @Length(max = 100)
+    @ApiModelProperty(value = "网格颜色", hidden = false, example = "")
+    private String fillColor;
+
+    @Length(max = 100)
+    @ApiModelProperty(value = "网格边框颜色", hidden = false, example = "")
+    private String lineColor;
+
+    @Length(max = 100)
+    @ApiModelProperty(value = "网格边框宽度", hidden = false, example = "")
+    private String lineBroadband;
+
+    @Length(max = 2147483647)
+    @ApiModelProperty(value = "围栏数据", hidden = false, example = "")
+    private String data;
+
+    @ApiModelProperty(value = "网格员id集合", hidden = false, example = "")
+    private List<Long> memberIds;
+
+    @ApiModelProperty(value = "网格所属社区ID", hidden = false, example = "1")
+    private Long gridCommunityId;
+
+    @ApiModelProperty(value = "市平台网格关联id", hidden = false, example = "")
+    private String lcGridId;
+
+    @ApiModelProperty(value = "市平台网格关联名称", hidden = false, example = "")
+    private String lcGridName;
+
+    @ApiModelProperty(value = "当前登录用户id", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridDataAddDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridDataAddDTO.java
new file mode 100644
index 0000000..16f2fce
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridDataAddDTO.java
@@ -0,0 +1,83 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.List;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import org.hibernate.validator.constraints.Length;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 创建表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("创建区县/街道/社区/网格员网格数据管理请求参数")
+public class EventGridDataAddDTO {
+
+    @NotNull()
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "类型,1、区县网格2街道网格3社区网格", hidden = false, example = "1")
+    private Long type;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "区/县ID", hidden = false, example = "1")
+    private Long zoneId;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格所属街道", hidden = false, example = "1")
+    private Long gridStreetId;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格所属社区ID", hidden = false, example = "1")
+    private Long gridCommunityId;
+
+    @NotBlank()
+    @Length(max = 100)
+    @ApiModelProperty(value = "网格名称", hidden = false, example = "")
+    private String gridName;
+
+    @Max(32767)
+    @ApiModelProperty(value = "所属图层", hidden = false, example = "1")
+    private Integer mapLevel;
+
+    @Length(max = 100)
+    @ApiModelProperty(value = "面积", hidden = false, example = "")
+    private String area;
+
+    @Length(max = 100)
+    @ApiModelProperty(value = "线条颜色", hidden = false, example = "")
+    private String lineColor;
+
+    @Length(max = 100)
+    @ApiModelProperty(value = "线条宽度", hidden = false, example = "")
+    private String lineBroadband;
+
+    @Length(max = 100)
+    @ApiModelProperty(value = "填充颜色", hidden = false, example = "")
+    private String fillColor;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "备注", hidden = false, example = "")
+    private String remarks;
+
+    @Length(max = 2147483647)
+    @ApiModelProperty(value = "围栏数据", hidden = false, example = "")
+    private String data;
+
+    @ApiModelProperty(value = "网格员ID", hidden = false, example = "[12,45]")
+    private List<Long> gridMemebers;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridDataDeleteDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridDataDeleteDTO.java
new file mode 100644
index 0000000..91eb7ac
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridDataDeleteDTO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 删除表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("删除区县/街道/社区/网格员网格数据管理请求参数")
+public class EventGridDataDeleteDTO {
+
+    @ApiModelProperty(value = "主键ID", hidden = false, example = "1")
+    private Long id;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridDataEditAdminDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridDataEditAdminDTO.java
new file mode 100644
index 0000000..ae008e0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridDataEditAdminDTO.java
@@ -0,0 +1,71 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.List;
+
+import javax.validation.constraints.NotBlank;
+
+import org.hibernate.validator.constraints.Length;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 新增网格请求参数
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("新增网格请求参数")
+public class EventGridDataEditAdminDTO {
+
+    @NotBlank()
+    @Length(max = 100)
+    @ApiModelProperty(value = "网格名称", hidden = false, example = "")
+    private String gridName;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "网格描述", hidden = false, example = "")
+    private String remarks;
+
+    @Length(max = 100)
+    @ApiModelProperty(value = "面积", hidden = false, example = "")
+    private String area;
+
+    @Length(max = 100)
+    @ApiModelProperty(value = "网格颜色", hidden = false, example = "")
+    private String fillColor;
+
+    @Length(max = 100)
+    @ApiModelProperty(value = "网格边框颜色", hidden = false, example = "")
+    private String lineColor;
+
+    @Length(max = 100)
+    @ApiModelProperty(value = "网格边框宽度", hidden = false, example = "")
+    private String lineBroadband;
+
+    @Length(max = 2147483647)
+    @ApiModelProperty(value = "围栏数据", hidden = false, example = "")
+    private String data;
+
+    @ApiModelProperty(value = "网格员id集合", hidden = false, example = "")
+    private List<Long> memberIds;
+
+    @ApiModelProperty(value = "网格id", hidden = false, example = "1")
+    private Long gridId;
+
+    @ApiModelProperty(value = "当前登录用户id", hidden = true, example = "1")
+    private Long userId;
+
+    @ApiModelProperty(value = "市平台网格关联id", hidden = false, example = "")
+    private String lcGridId;
+
+    @ApiModelProperty(value = "市平台网格关联名称", hidden = false, example = "")
+    private String lcGridName;
+
+    @ApiModelProperty(value = "网格所属社区ID", hidden = false, example = "1")
+    private Long gridCommunityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridDataEditDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridDataEditDTO.java
new file mode 100644
index 0000000..867d74f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridDataEditDTO.java
@@ -0,0 +1,87 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.List;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import org.hibernate.validator.constraints.Length;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 编辑表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("编辑区县/街道/社区/网格员网格数据管理请求参数")
+public class EventGridDataEditDTO {
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "主键ID", hidden = false, example = "1")
+    private Long id;
+
+    @NotNull()
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "类型,1、区县网格2街道网格3社区网格", hidden = false, example = "1")
+    private Long type;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "区/县ID", hidden = false, example = "1")
+    private Long zoneId;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格所属街道", hidden = false, example = "1")
+    private Long gridStreetId;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格所属社区ID", hidden = false, example = "1")
+    private Long gridCommunityId;
+
+    @NotBlank()
+    @Length(max = 100)
+    @ApiModelProperty(value = "网格名称", hidden = false, example = "")
+    private String gridName;
+
+    @Max(32767)
+    @ApiModelProperty(value = "所属图层", hidden = false, example = "1")
+    private Integer mapLevel;
+
+    @Length(max = 100)
+    @ApiModelProperty(value = "面积", hidden = false, example = "")
+    private String area;
+
+    @Length(max = 100)
+    @ApiModelProperty(value = "线条颜色", hidden = false, example = "")
+    private String lineColor;
+
+    @Length(max = 100)
+    @ApiModelProperty(value = "线条宽度", hidden = false, example = "")
+    private String lineBroadband;
+
+    @Length(max = 100)
+    @ApiModelProperty(value = "填充颜色", hidden = false, example = "")
+    private String fillColor;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "备注", hidden = false, example = "")
+    private String remarks;
+
+    @Length(max = 2147483647)
+    @ApiModelProperty(value = "围栏数据", hidden = false, example = "")
+    private String data;
+
+    @ApiModelProperty(value = "网格员ID", hidden = false, example = "[12,45]")
+    private List<Long> gridMemebers;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberAddDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberAddDTO.java
new file mode 100644
index 0000000..5b13375
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberAddDTO.java
@@ -0,0 +1,88 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.List;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import org.hibernate.validator.constraints.Length;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 创建表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("创建网格员请求参数")
+public class EventGridMemberAddDTO {
+
+    @NotBlank(message = "账号昵称不能为空")
+    @Length(max = 50)
+    @ApiModelProperty(value = "账号昵称", example = "")
+    private String nickName;
+
+    @NotBlank(message = "登录账号不能为空")
+    @Length(max = 50)
+    @ApiModelProperty(value = "登录账号", hidden = false, example = "")
+    private String account;
+
+    @NotBlank(message = "登录密码不能为空")
+    @Length(min = 8, max = 100)
+    @ApiModelProperty(value = "登录密码", hidden = false, example = "")
+    private String password;
+
+    @NotBlank(message = "联系电话不能为空")
+    @Length(max = 11)
+    @ApiModelProperty(value = "联系电话", hidden = false, example = "")
+    private String phone;
+
+    @NotNull(message = "工作开始时间不能为空")
+    @Max(24)
+    @ApiModelProperty(value = "工作开始时间", hidden = false, example = "")
+    private Integer workStartTime;
+
+    @NotNull(message = "工作结束时间不能为空")
+    @Max(24)
+    @ApiModelProperty(value = "工作结束时间", hidden = false, example = "")
+    private Integer workEndTime;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "头像", hidden = false, example = "")
+    private String imageUrl;
+
+    @ApiModelProperty(value = "账号状态", hidden = false, example = "")
+    private Integer status;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+    @ApiModelProperty(value = "(当前操作)用户姓名", hidden = true, example = "张三")
+    private String userName;
+
+    @ApiModelProperty(value = "社区ID", hidden = true, example = "1")
+    private Long communityId;
+
+    @ApiModelProperty(value = "网格员id", hidden = false, example = "")
+    private Long gridMemberId;
+
+    @ApiModelProperty(value = "市平台网格员关联id")
+    private String lcMemberId;
+
+    @ApiModelProperty(value = "市平台网格员关联名称")
+    private String lcMemberName;
+
+    @ApiModelProperty(value = "市平台网格员关联用户id")
+    private String lcBindUserId;
+
+    @ApiModelProperty(value = "楼栋id集合")
+    private List<Long> buildingIds;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberEditAdminDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberEditAdminDTO.java
new file mode 100644
index 0000000..f3b63e6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberEditAdminDTO.java
@@ -0,0 +1,83 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.List;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import org.hibernate.validator.constraints.Length;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 创建表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("创建网格员请求参数")
+public class EventGridMemberEditAdminDTO {
+
+    @NotBlank(message = "账号昵称不能为空")
+    @Length(max = 50)
+    @ApiModelProperty(value = "账号昵称", example = "")
+    private String nickName;
+
+    @NotBlank(message = "登录账号不能为空")
+    @Length(max = 50)
+    @ApiModelProperty(value = "登录账号", hidden = false, example = "")
+    private String account;
+
+    @NotBlank(message = "联系电话不能为空")
+    @Length(max = 11)
+    @ApiModelProperty(value = "联系电话", hidden = false, example = "")
+    private String phone;
+
+    @NotNull(message = "工作开始时间不能为空")
+    @Max(24)
+    @ApiModelProperty(value = "工作开始时间", hidden = false, example = "")
+    private Integer workStartTime;
+
+    @NotNull(message = "工作结束时间不能为空")
+    @Max(24)
+    @ApiModelProperty(value = "工作结束时间", hidden = false, example = "")
+    private Integer workEndTime;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "头像", hidden = false, example = "")
+    private String imageUrl;
+
+    @ApiModelProperty(value = "账号状态", hidden = false, example = "")
+    private Integer status;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+    @ApiModelProperty(value = "(当前操作)用户姓名", hidden = true, example = "张三")
+    private String userName;
+
+    @ApiModelProperty(value = "社区ID", hidden = true, example = "1")
+    private Long communityId;
+
+    @ApiModelProperty(value = "网格员id", hidden = false, example = "")
+    private Long gridMemberId;
+
+    @ApiModelProperty(value = "市平台网格员关联id")
+    private String lcMemberId;
+
+    @ApiModelProperty(value = "市平台网格员关联名称")
+    private String lcMemberName;
+
+    @ApiModelProperty(value = "市平台网格员关联用户id")
+    private String lcBindUserId;
+
+    @ApiModelProperty(value = "楼栋id集合")
+    private List<Long> buildingIds;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberEditDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberEditDTO.java
new file mode 100644
index 0000000..16d57d5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberEditDTO.java
@@ -0,0 +1,74 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import org.hibernate.validator.constraints.Length;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 编辑表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("编辑网格和网格员的关联关系请求参数")
+public class EventGridMemberEditDTO {
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "id,如果是新增则不填", hidden = false, example = "1")
+    private Long id;
+
+    @NotBlank()
+    @Length(max = 50)
+    @ApiModelProperty(value = "账号昵称", hidden = false, example = "")
+    private String nickName;
+
+    @NotBlank()
+    @Length(max = 50)
+    @ApiModelProperty(value = "登录账号", hidden = false, example = "")
+    private String account;
+
+    @NotBlank()
+    @Length(min = 8, max = 100)
+    @ApiModelProperty(value = "登录密码", hidden = false, example = "")
+    private String paswd;
+
+    @NotBlank()
+    @Length(max = 11)
+    @ApiModelProperty(value = "联系电话", hidden = false, example = "")
+    private String phone;
+
+    @NotNull()
+    @Max(24)
+    @ApiModelProperty(value = "工作开始时间", hidden = false, example = "")
+    private Integer workStart;
+
+    @NotNull()
+    @Max(24)
+    @ApiModelProperty(value = "工作结束时间", hidden = false, example = "")
+    private String workEnd;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "头像", hidden = false, example = "")
+    private String imageUrl;
+
+    @NotBlank()
+    @Length(max = 100)
+    @ApiModelProperty(value = "账号状态", hidden = false, example = "")
+    private String status;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+    @ApiModelProperty(value = "(当前操作)用户姓名", hidden = true, example = "张三")
+    private String userName;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberEditStatusDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberEditStatusDTO.java
new file mode 100644
index 0000000..27960a8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberEditStatusDTO.java
@@ -0,0 +1,27 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 创建表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("修改网格员状态请求参数")
+public class EventGridMemberEditStatusDTO {
+
+    @ApiModelProperty(value = "需要修改的网格员id集合", example = "")
+    private List<Long> ids;
+
+    @ApiModelProperty(value = "状态(1.启用  2.禁用)", example = "")
+    private Integer status;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberGpsLogAddDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberGpsLogAddDTO.java
new file mode 100644
index 0000000..9277cb9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberGpsLogAddDTO.java
@@ -0,0 +1,61 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import org.hibernate.validator.constraints.Length;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 创建表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("创建网格员定时上报地理信息请求参数")
+public class EventGridMemberGpsLogAddDTO {
+
+    @NotNull()
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格所属街道", hidden = false, example = "1")
+    private Long gridStreetId;
+
+    @NotNull()
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格所属社区ID", hidden = false, example = "1")
+    private Long gridCommunityId;
+
+    @NotNull()
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格ID", hidden = false, example = "1")
+    private Long gridId;
+
+    @NotBlank()
+    @Length(max = 100)
+    @ApiModelProperty(value = "网格名称", hidden = false, example = "")
+    private String gridName;
+
+    @NotNull()
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格员ID", hidden = false, example = "1")
+    private Long gridMemberId;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "精度维度信息,逗号分割", hidden = false, example = "")
+    private String lngLat;
+
+    @Max(127)
+    @ApiModelProperty(value = "位置信息状态(1、为判定2、正常3、是不正常)", hidden = false, example = "1")
+    private Integer positionStation;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberGpsLogDeleteDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberGpsLogDeleteDTO.java
new file mode 100644
index 0000000..e524f1b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberGpsLogDeleteDTO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 删除表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("删除网格员定时上报地理信息请求参数")
+public class EventGridMemberGpsLogDeleteDTO {
+
+    @ApiModelProperty(value = "主键ID", hidden = false, example = "1")
+    private Long id;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberGpsLogEditDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberGpsLogEditDTO.java
new file mode 100644
index 0000000..da058e3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberGpsLogEditDTO.java
@@ -0,0 +1,65 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import org.hibernate.validator.constraints.Length;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 编辑表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("编辑网格员定时上报地理信息请求参数")
+public class EventGridMemberGpsLogEditDTO {
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "主键ID", hidden = false, example = "1")
+    private Long id;
+
+    @NotNull()
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格所属街道", hidden = false, example = "1")
+    private Long gridStreetId;
+
+    @NotNull()
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格所属社区ID", hidden = false, example = "1")
+    private Long gridCommunityId;
+
+    @NotNull()
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格ID", hidden = false, example = "1")
+    private Long gridId;
+
+    @NotBlank()
+    @Length(max = 100)
+    @ApiModelProperty(value = "网格名称", hidden = false, example = "")
+    private String gridName;
+
+    @NotNull()
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格员ID", hidden = false, example = "1")
+    private Long gridMemberId;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "精度维度信息,逗号分割", hidden = false, example = "")
+    private String lngLat;
+
+    @Max(127)
+    @ApiModelProperty(value = "位置信息状态(1、为判定2、正常3、是不正常)", hidden = false, example = "1")
+    private Integer positionStation;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberPassResetDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberPassResetDTO.java
new file mode 100644
index 0000000..e430929
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberPassResetDTO.java
@@ -0,0 +1,33 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.List;
+
+import javax.validation.constraints.NotBlank;
+
+import org.hibernate.validator.constraints.Length;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 网格员密码重置请求参数
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("网格员密码重置请求参数")
+public class EventGridMemberPassResetDTO {
+
+    @NotBlank(message = "登录密码不能为空")
+    @Length(min = 8, max = 100)
+    @ApiModelProperty(value = "登录密码", hidden = false, example = "")
+    private String password;
+
+    @ApiModelProperty(value = "网格员id集合", hidden = false, example = "")
+    private List<Long> ids;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberRelationDeleteDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberRelationDeleteDTO.java
new file mode 100644
index 0000000..7a066ea
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberRelationDeleteDTO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 删除表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("删除网格和网格员的关联关系请求参数")
+public class EventGridMemberRelationDeleteDTO {
+
+    @ApiModelProperty(value = "主键ID", hidden = false, example = "1")
+    private Long id;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberWainDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberWainDTO.java
new file mode 100644
index 0000000..b90230a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberWainDTO.java
@@ -0,0 +1,34 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import org.hibernate.validator.constraints.Length;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 创建表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("网格员预警记录请求参数")
+public class EventGridMemberWainDTO {
+
+    @Length(max = 50)
+    @ApiModelProperty(value = "关键词", example = "")
+    private String keyWord;
+
+    @ApiModelProperty(value = "网格员id", hidden = false, example = "")
+    private Long gridMemberId;
+
+    @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/grid/EventGridMemberWarnLogAddDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberWarnLogAddDTO.java
new file mode 100644
index 0000000..ac2918c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberWarnLogAddDTO.java
@@ -0,0 +1,61 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import org.hibernate.validator.constraints.Length;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 创建表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("创建网格员定时上报地理预警记录请求参数")
+public class EventGridMemberWarnLogAddDTO {
+
+    @NotNull()
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格所属街道", hidden = false, example = "1")
+    private Long gridStreetId;
+
+    @NotNull()
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格所属社区ID", hidden = false, example = "1")
+    private Long gridCommunityId;
+
+    @NotNull()
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格ID", hidden = false, example = "1")
+    private Long gridId;
+
+    @NotBlank()
+    @Length(max = 100)
+    @ApiModelProperty(value = "网格名称", hidden = false, example = "")
+    private String gridName;
+
+    @NotNull()
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格员ID", hidden = false, example = "1")
+    private Long gridMemberId;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "精度维度信息,逗号分割", hidden = false, example = "")
+    private String lngLat;
+
+    @Length(max = 50)
+    @ApiModelProperty(value = "预警信息内容", hidden = false, example = "")
+    private String content;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberWarnLogDeleteDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberWarnLogDeleteDTO.java
new file mode 100644
index 0000000..1a21231
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberWarnLogDeleteDTO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 删除表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("删除网格员定时上报地理预警记录请求参数")
+public class EventGridMemberWarnLogDeleteDTO {
+
+    @ApiModelProperty(value = "主键ID", hidden = false, example = "1")
+    private Long id;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberWarnLogEditDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberWarnLogEditDTO.java
new file mode 100644
index 0000000..7a2acd9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberWarnLogEditDTO.java
@@ -0,0 +1,65 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import org.hibernate.validator.constraints.Length;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 编辑表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("编辑网格员定时上报地理预警记录请求参数")
+public class EventGridMemberWarnLogEditDTO {
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "主键ID", hidden = false, example = "1")
+    private Long id;
+
+    @NotNull()
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格所属街道", hidden = false, example = "1")
+    private Long gridStreetId;
+
+    @NotNull()
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格所属社区ID", hidden = false, example = "1")
+    private Long gridCommunityId;
+
+    @NotNull()
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格ID", hidden = false, example = "1")
+    private Long gridId;
+
+    @NotBlank()
+    @Length(max = 100)
+    @ApiModelProperty(value = "网格名称", hidden = false, example = "")
+    private String gridName;
+
+    @NotNull()
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格员ID", hidden = false, example = "1")
+    private Long gridMemberId;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "精度维度信息,逗号分割", hidden = false, example = "")
+    private String lngLat;
+
+    @Length(max = 50)
+    @ApiModelProperty(value = "预警信息内容", hidden = false, example = "")
+    private String content;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberWorkTrajectoryDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberWorkTrajectoryDTO.java
new file mode 100644
index 0000000..122632a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridMemberWorkTrajectoryDTO.java
@@ -0,0 +1,31 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 网格员工作轨迹请求参数
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("网格员工作轨迹请求参数")
+public class EventGridMemberWorkTrajectoryDTO {
+
+    @ApiModelProperty(value = "工作日期(格式:yyyy-MM-dd)", example = "")
+    private String time;
+
+    @ApiModelProperty(value = "网格员id", example = "")
+    private Long gridMemberId;
+
+    @ApiModelProperty(value = "查询开始时间", hidden = true, example = "")
+    private String startTime;
+
+    @ApiModelProperty(value = "查询结束时间", hidden = true, example = "")
+    private String endTime;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridStatisticsDataDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridStatisticsDataDTO.java
new file mode 100644
index 0000000..1fc99b7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridStatisticsDataDTO.java
@@ -0,0 +1,28 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 分页查询表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("查询网格统计信息请求参数")
+public class EventGridStatisticsDataDTO {
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+    @ApiModelProperty(value = "网格ID", hidden = true, example = "1", required = true)
+    @NotNull
+    private Long gridId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridTodoDataDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridTodoDataDTO.java
new file mode 100644
index 0000000..30d5286
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventGridTodoDataDTO.java
@@ -0,0 +1,28 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 分页查询表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("查询用户待处理请求参数")
+public class EventGridTodoDataDTO {
+
+    @ApiModelProperty(value = "网格ID", hidden = false, example = "1", required = true)
+    @NotNull(message = "网格ID不能为空")
+    private Long gridId;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventMainMemberAddDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventMainMemberAddDTO.java
new file mode 100644
index 0000000..fc54ad4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventMainMemberAddDTO.java
@@ -0,0 +1,127 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.Date;
+
+import javax.validation.constraints.Max;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 创建表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("创建重点人群记录请求参数")
+public class EventMainMemberAddDTO {
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格员所处的街道", hidden = false, example = "1")
+    private Long gridMemberStreet;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格员所处社区", hidden = false, example = "1")
+    private Long gridMemberCommunity;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格员", hidden = false, example = "1")
+    private Long gridMember;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "网格员名字", hidden = false, example = "")
+    private String gridMemberName;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "网格员联系方式", hidden = false, example = "")
+    private String gridMemberTele;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "需走访人ID", hidden = false, example = "1")
+    private Long visiterId;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "需走访人名字", hidden = false, example = "")
+    private String visiterName;
+
+    @Max(32767)
+    @ApiModelProperty(value = "需走访人员性别", hidden = false, example = "1")
+    private Integer visiterSex;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "需走访人电话", hidden = false, example = "")
+    private String visiterTele;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "需走访人居住地址", hidden = false, example = "")
+    private String visiterAddress;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "需走访人地址精度纬度信息(逗号隔开)", hidden = false, example = "")
+    private String visiterAddressLatLng;
+
+    @Max(9999999999L)
+    @ApiModelProperty(value = "人员类型1吸毒2严重精神障碍3刑释人员4社区矫正人员", hidden = false, example = "1")
+    private Integer visiterType;
+
+    @Max(127)
+    @ApiModelProperty(value = "社区处理(0是无需社区1是社区处理)", hidden = false, example = "1")
+    private Integer actOpara;
+
+    @Max(9999999999L)
+    @ApiModelProperty(value = "事件状态(1待处理2自己已解决3待验证4草稿箱5已撤销6异常)", hidden = false, example = "1")
+    private Integer eventStatus;
+
+    @Max(32767)
+    @ApiModelProperty(value = "上报状态", hidden = false, example = "1")
+    private Integer reporting;
+
+    @Max(32767)
+    @ApiModelProperty(value = "当前处理对象类型(1、网格员2、社区3、是街道)", hidden = false, example = "1")
+    private Integer dellType;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "处理人ID", hidden = false, example = "1")
+    private Long dellUserId;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "处理人名称", hidden = false, example = "")
+    private String dellUserName;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "处理时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date dellDate;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "解决人针对解决事件的处理描述", hidden = false, example = "")
+    private String dellDesc;
+
+    @ApiModelProperty(value = "是否有效", hidden = false, example = "true")
+    private Boolean invalid;
+
+    @ApiModelProperty(value = "是否紧急", hidden = false, example = "true")
+    private Boolean urgent;
+
+    @ApiModelProperty(value = "是否催办", hidden = false, example = "true")
+    private Boolean urgentDell;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "上报提交时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date submitDate;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "走访频率配置,一个月几次", hidden = false, example = "")
+    private String visiterConfig;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventMainMemberDeleteDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventMainMemberDeleteDTO.java
new file mode 100644
index 0000000..027d5d6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventMainMemberDeleteDTO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 删除表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("删除重点人群记录请求参数")
+public class EventMainMemberDeleteDTO {
+
+    @ApiModelProperty(value = "id", hidden = false, example = "1")
+    private Long id;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventMainMemberEditDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventMainMemberEditDTO.java
new file mode 100644
index 0000000..6a9eceb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventMainMemberEditDTO.java
@@ -0,0 +1,131 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.Date;
+
+import javax.validation.constraints.Max;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 编辑表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("编辑重点人群记录请求参数")
+public class EventMainMemberEditDTO {
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "id", hidden = false, example = "1")
+    private Long id;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格员所处的街道", hidden = false, example = "1")
+    private Long gridMemberStreet;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格员所处社区", hidden = false, example = "1")
+    private Long gridMemberCommunity;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格员", hidden = false, example = "1")
+    private Long gridMember;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "网格员名字", hidden = false, example = "")
+    private String gridMemberName;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "网格员联系方式", hidden = false, example = "")
+    private String gridMemberTele;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "需走访人ID", hidden = false, example = "1")
+    private Long visiterId;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "需走访人名字", hidden = false, example = "")
+    private String visiterName;
+
+    @Max(32767)
+    @ApiModelProperty(value = "需走访人员性别", hidden = false, example = "1")
+    private Integer visiterSex;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "需走访人电话", hidden = false, example = "")
+    private String visiterTele;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "需走访人居住地址", hidden = false, example = "")
+    private String visiterAddress;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "需走访人地址精度纬度信息(逗号隔开)", hidden = false, example = "")
+    private String visiterAddressLatLng;
+
+    @Max(9999999999L)
+    @ApiModelProperty(value = "人员类型1吸毒2严重精神障碍3刑释人员4社区矫正人员", hidden = false, example = "1")
+    private Integer visiterType;
+
+    @Max(127)
+    @ApiModelProperty(value = "社区处理(0是无需社区1是社区处理)", hidden = false, example = "1")
+    private Integer actOpara;
+
+    @Max(9999999999L)
+    @ApiModelProperty(value = "事件状态(1待处理2自己已解决3待验证4草稿箱5已撤销6异常)", hidden = false, example = "1")
+    private Integer eventStatus;
+
+    @Max(32767)
+    @ApiModelProperty(value = "上报状态", hidden = false, example = "1")
+    private Integer reporting;
+
+    @Max(32767)
+    @ApiModelProperty(value = "当前处理对象类型(1、网格员2、社区3、是街道)", hidden = false, example = "1")
+    private Integer dellType;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "处理人ID", hidden = false, example = "1")
+    private Long dellUserId;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "处理人名称", hidden = false, example = "")
+    private String dellUserName;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "处理时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date dellDate;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "解决人针对解决事件的处理描述", hidden = false, example = "")
+    private String dellDesc;
+
+    @ApiModelProperty(value = "是否有效", hidden = false, example = "true")
+    private Boolean invalid;
+
+    @ApiModelProperty(value = "是否紧急", hidden = false, example = "true")
+    private Boolean urgent;
+
+    @ApiModelProperty(value = "是否催办", hidden = false, example = "true")
+    private Boolean urgentDell;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "上报提交时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date submitDate;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "走访频率配置,一个月几次", hidden = false, example = "")
+    private String visiterConfig;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventResourceAddDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventResourceAddDTO.java
new file mode 100644
index 0000000..cb4d702
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventResourceAddDTO.java
@@ -0,0 +1,42 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import javax.validation.constraints.Max;
+
+import org.hibernate.validator.constraints.Length;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 创建表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("创建事件或者走访中关联的图片音频和视频文件请求参数")
+public class EventResourceAddDTO {
+
+    @Max(127)
+    @ApiModelProperty(value = "事件上传的资源类型(1是图片2是音频3是是视频)", hidden = false, example = "1")
+    private Integer type;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "资源名称", hidden = false, example = "")
+    private String resourceName;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "资源大小", hidden = false, example = "")
+    private String resourceSize;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "事件上传的资源URL地址", hidden = false, example = "")
+    private String url;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventResourceDeleteDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventResourceDeleteDTO.java
new file mode 100644
index 0000000..97a77c2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventResourceDeleteDTO.java
@@ -0,0 +1,27 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 删除表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("删除事件或者走访中关联的图片音频和视频文件请求参数")
+public class EventResourceDeleteDTO {
+
+    @ApiModelProperty(value = "分类(1、事件 2、走访)", hidden = false, example = "1")
+    private Integer classification;
+    @ApiModelProperty(value = "事件或者走访任务关联ID", hidden = false, example = "1")
+    private Long id;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventResourceEditDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventResourceEditDTO.java
new file mode 100644
index 0000000..9772da0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventResourceEditDTO.java
@@ -0,0 +1,50 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import javax.validation.constraints.Max;
+
+import org.hibernate.validator.constraints.Length;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 编辑表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("编辑事件或者走访中关联的图片音频和视频文件请求参数")
+public class EventResourceEditDTO {
+
+    @Max(127)
+    @ApiModelProperty(value = "分类(1、事件 2、走访)", hidden = false, example = "1")
+    private Integer classification;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "事件或者走访任务关联ID", hidden = false, example = "1")
+    private Long id;
+
+    @Max(127)
+    @ApiModelProperty(value = "事件上传的资源类型(1是图片2是音频3是是视频)", hidden = false, example = "1")
+    private Integer type;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "资源名称", hidden = false, example = "")
+    private String resourceName;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "资源大小", hidden = false, example = "")
+    private String resourceSize;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "事件上传的资源URL地址", hidden = false, example = "")
+    private String url;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventRevokeDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventRevokeDTO.java
new file mode 100644
index 0000000..0bd8b2c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventRevokeDTO.java
@@ -0,0 +1,45 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 编辑表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("撤销事件请求参数")
+public class EventRevokeDTO {
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "id", hidden = false, example = "1", required = true)
+    @NotNull
+    private Long id;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+    @ApiModelProperty(value = "(当前操作)用户姓名", hidden = true, example = "李四")
+    private String userName;
+
+    @ApiModelProperty(value = "操作人所属社区", hidden = true, example = "学院社区")
+    private String communityName;
+
+    @ApiModelProperty(value = "操作人所属社区", hidden = true, example = "学院社区")
+    private Long communityId;
+
+    @ApiModelProperty(value = "撤销类型 1 网格员 2 社区", hidden = true, example = "1")
+    private Integer revokeType;
+
+    @ApiModelProperty(value = "撤销人/社区ID", hidden = true, example = "1")
+    private Long revokeId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventTransferRecordAddDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventTransferRecordAddDTO.java
new file mode 100644
index 0000000..2356ae9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventTransferRecordAddDTO.java
@@ -0,0 +1,66 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.Date;
+
+import javax.validation.constraints.Max;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 创建表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("创建事件处理流转记录请求参数")
+public class EventTransferRecordAddDTO {
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "事件ID", hidden = false, example = "1")
+    private Long eventId;
+
+    @Max(127)
+    @ApiModelProperty(value = "来源类型(1、网格员2、社区3、是街道)", hidden = false, example = "1")
+    private Integer fromType;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "事件来源机构或网格员", hidden = false, example = "1")
+    private Long from;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "转交办理人路径名称", hidden = false, example = "")
+    private String fromName;
+
+    @Max(127)
+    @ApiModelProperty(value = "转交类型(1、网格员2、社区3、是街道)", hidden = false, example = "1")
+    private Integer toType;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "事件下游机构或网格员", hidden = false, example = "1")
+    private Long to;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "需要办理人路径名称", hidden = false, example = "")
+    private String toName;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "处理结果", hidden = false, example = "")
+    private String processResult;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "处理时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date processDate;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventTransferRecordDeleteDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventTransferRecordDeleteDTO.java
new file mode 100644
index 0000000..d49c580
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventTransferRecordDeleteDTO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 删除表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("删除事件处理流转记录请求参数")
+public class EventTransferRecordDeleteDTO {
+
+    @ApiModelProperty(value = "id", hidden = false, example = "1")
+    private Long id;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventTransferRecordEditDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventTransferRecordEditDTO.java
new file mode 100644
index 0000000..e768837
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventTransferRecordEditDTO.java
@@ -0,0 +1,70 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.Date;
+
+import javax.validation.constraints.Max;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 编辑表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("编辑事件处理流转记录请求参数")
+public class EventTransferRecordEditDTO {
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "id", hidden = false, example = "1")
+    private Long id;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "事件ID", hidden = false, example = "1")
+    private Long eventId;
+
+    @Max(127)
+    @ApiModelProperty(value = "来源类型(1、网格员2、社区3、是街道)", hidden = false, example = "1")
+    private Integer fromType;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "事件来源机构或网格员", hidden = false, example = "1")
+    private Long from;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "转交办理人路径名称", hidden = false, example = "")
+    private String fromName;
+
+    @Max(127)
+    @ApiModelProperty(value = "转交类型(1、网格员2、社区3、是街道)", hidden = false, example = "1")
+    private Integer toType;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "事件下游机构或网格员", hidden = false, example = "1")
+    private Long to;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "需要办理人路径名称", hidden = false, example = "")
+    private String toName;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "处理结果", hidden = false, example = "")
+    private String processResult;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "处理时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date processDate;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventVisitingTasksAddDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventVisitingTasksAddDTO.java
new file mode 100644
index 0000000..c87ed56
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventVisitingTasksAddDTO.java
@@ -0,0 +1,150 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.Date;
+
+import javax.validation.constraints.Max;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 创建表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("创建重点人群走访记录请求参数")
+public class EventVisitingTasksAddDTO {
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格员所处的街道", hidden = false, example = "1")
+    private Long gridMemberStreet;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格员所处社区", hidden = false, example = "1")
+    private Long gridMemberCommunity;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格员", hidden = false, example = "1")
+    private Long gridMember;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "网格员名字", hidden = false, example = "")
+    private String gridMemberName;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "网格员联系方式", hidden = false, example = "")
+    private String gridMenberTele;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "需走访人ID", hidden = false, example = "1")
+    private Long visiterId;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "需走访人名字", hidden = false, example = "")
+    private String visiterName;
+
+    @Max(32767)
+    @ApiModelProperty(value = "需走访人员性别", hidden = false, example = "1")
+    private Integer visiterSex;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "需走访人电话", hidden = false, example = "")
+    private String visiterTele;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "需走访人居住地址", hidden = false, example = "")
+    private String visiterAddress;
+
+    @Max(9999999999L)
+    @ApiModelProperty(value = "人员类型1吸毒2严重精神障碍3刑释人员4社区矫正人员", hidden = false, example = "1")
+    private Integer visiterType;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "事件标题", hidden = false, example = "")
+    private String eventTitle;
+
+    @Max(127)
+    @ApiModelProperty(value = "事件类型", hidden = false, example = "1")
+    private Integer eventType;
+
+    @Length(max = 500)
+    @ApiModelProperty(value = "事件描述", hidden = false, example = "")
+    private String eventDes;
+
+    @Max(127)
+    @ApiModelProperty(value = "社区处理(0是无需社区1是社区处理)", hidden = false, example = "1")
+    private Integer actOpara;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "发生时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date happenTime;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "发生地点", hidden = false, example = "")
+    private String happentAddress;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "发生的精度纬度信息(逗号隔开)", hidden = false, example = "")
+    private String happentLatLng;
+
+    @Max(127)
+    @ApiModelProperty(value = "事件状态(1待处理2自己已解决3待验证4草稿箱5已撤销6异常)", hidden = false, example = "1")
+    private Integer eventStatus;
+
+    @Max(32767)
+    @ApiModelProperty(value = "上报状态", hidden = false, example = "1")
+    private Integer reporting;
+
+    @Max(32767)
+    @ApiModelProperty(value = "当前处理对象类型(1、网格员2、社区3、是街道)", hidden = false, example = "1")
+    private Integer dellType;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "处理人ID", hidden = false, example = "1")
+    private Long dellUserId;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "处理人名称", hidden = false, example = "")
+    private String dellUserName;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "处理时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date dellDate;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "解决人针对解决事件的处理描述", hidden = false, example = "")
+    private String dellDesc;
+
+    @ApiModelProperty(value = "是否有效", hidden = false, example = "true")
+    private Boolean invalid;
+
+    @ApiModelProperty(value = "是否紧急", hidden = false, example = "true")
+    private Boolean urgent;
+
+    @ApiModelProperty(value = "是否催办", hidden = false, example = "true")
+    private Boolean urgentDell;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "上报提交时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date submitDate;
+
+    @ApiModelProperty(value = "是否异常行为", hidden = false, example = "true")
+    private Boolean exception;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "走访内容根据重点人员类型输入项不同,录入全部的表单内容数据", hidden = false, example = "")
+    private String tableContentJson;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventVisitingTasksDeleteDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventVisitingTasksDeleteDTO.java
new file mode 100644
index 0000000..5382949
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventVisitingTasksDeleteDTO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 删除表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("删除重点人群走访记录请求参数")
+public class EventVisitingTasksDeleteDTO {
+
+    @ApiModelProperty(value = "id", hidden = false, example = "1")
+    private Long id;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventVisitingTasksEditDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventVisitingTasksEditDTO.java
new file mode 100644
index 0000000..7f0894e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/EventVisitingTasksEditDTO.java
@@ -0,0 +1,154 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.Date;
+
+import javax.validation.constraints.Max;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 编辑表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("编辑重点人群走访记录请求参数")
+public class EventVisitingTasksEditDTO {
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "id", hidden = false, example = "1")
+    private Long id;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格员所处的街道", hidden = false, example = "1")
+    private Long gridMemberStreet;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格员所处社区", hidden = false, example = "1")
+    private Long gridMemberCommunity;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格员", hidden = false, example = "1")
+    private Long gridMember;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "网格员名字", hidden = false, example = "")
+    private String gridMemberName;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "网格员联系方式", hidden = false, example = "")
+    private String gridMenberTele;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "需走访人ID", hidden = false, example = "1")
+    private Long visiterId;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "需走访人名字", hidden = false, example = "")
+    private String visiterName;
+
+    @Max(32767)
+    @ApiModelProperty(value = "需走访人员性别", hidden = false, example = "1")
+    private Integer visiterSex;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "需走访人电话", hidden = false, example = "")
+    private String visiterTele;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "需走访人居住地址", hidden = false, example = "")
+    private String visiterAddress;
+
+    @Max(9999999999L)
+    @ApiModelProperty(value = "人员类型1吸毒2严重精神障碍3刑释人员4社区矫正人员", hidden = false, example = "1")
+    private Integer visiterType;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "事件标题", hidden = false, example = "")
+    private String eventTitle;
+
+    @Max(127)
+    @ApiModelProperty(value = "事件类型", hidden = false, example = "1")
+    private Integer eventType;
+
+    @Length(max = 500)
+    @ApiModelProperty(value = "事件描述", hidden = false, example = "")
+    private String eventDes;
+
+    @Max(127)
+    @ApiModelProperty(value = "社区处理(0是无需社区1是社区处理)", hidden = false, example = "1")
+    private Integer actOpara;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "发生时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date happenTime;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "发生地点", hidden = false, example = "")
+    private String happentAddress;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "发生的精度纬度信息(逗号隔开)", hidden = false, example = "")
+    private String happentLatLng;
+
+    @Max(127)
+    @ApiModelProperty(value = "事件状态(1待处理2自己已解决3待验证4草稿箱5已撤销6异常)", hidden = false, example = "1")
+    private Integer eventStatus;
+
+    @Max(32767)
+    @ApiModelProperty(value = "上报状态", hidden = false, example = "1")
+    private Integer reporting;
+
+    @Max(32767)
+    @ApiModelProperty(value = "当前处理对象类型(1、网格员2、社区3、是街道)", hidden = false, example = "1")
+    private Integer dellType;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "处理人ID", hidden = false, example = "1")
+    private Long dellUserId;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "处理人名称", hidden = false, example = "")
+    private String dellUserName;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "处理时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date dellDate;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "解决人针对解决事件的处理描述", hidden = false, example = "")
+    private String dellDesc;
+
+    @ApiModelProperty(value = "是否有效", hidden = false, example = "true")
+    private Boolean invalid;
+
+    @ApiModelProperty(value = "是否紧急", hidden = false, example = "true")
+    private Boolean urgent;
+
+    @ApiModelProperty(value = "是否催办", hidden = false, example = "true")
+    private Boolean urgentDell;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "上报提交时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date submitDate;
+
+    @ApiModelProperty(value = "是否异常行为", hidden = false, example = "true")
+    private Boolean exception;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "走访内容根据重点人员类型输入项不同,录入全部的表单内容数据", hidden = false, example = "")
+    private String tableContentJson;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/GridEventStatisticsDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/GridEventStatisticsDTO.java
new file mode 100644
index 0000000..b900dd1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/GridEventStatisticsDTO.java
@@ -0,0 +1,19 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("统计模块-网格事件统计请求参数")
+public class GridEventStatisticsDTO {
+
+    @ApiModelProperty("网格id")
+    private Long gridId;
+
+    @ApiModelProperty("查询开始时间")
+    private String startTime;
+
+    @ApiModelProperty("查询结束时间")
+    private String endTime;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/LcEventVisitingTasksListDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/LcEventVisitingTasksListDTO.java
new file mode 100644
index 0000000..2d314ec
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/LcEventVisitingTasksListDTO.java
@@ -0,0 +1,198 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.Date;
+import java.util.List;
+
+import com.panzhihua.common.model.vos.grid.EventResourceVO;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 浪潮上传走访内容对象
+ *
+ * @author manailin
+ * @version 1.0
+ * @date 2021-06-24
+ * @since 1.0
+ */
+@Data
+public class LcEventVisitingTasksListDTO {
+
+    /**
+     * id 列: id
+     */
+    private Long id;
+    /**
+     * 网格员所处的街道 列: grid_member_street
+     */
+    private Long gridMemberStreet;
+    /**
+     * 网格员所处社区 列: grid_member_community
+     */
+    private Long gridMemberCommunity;
+    /**
+     * 网格员 列: grid_member
+     */
+    private Long gridMember;
+    /**
+     * 网格员名字 列: grid_member_name
+     */
+    private String gridMemberName;
+    /**
+     * 网格员联系方式 列: grid_menber_tele
+     */
+    private String gridMenberTele;
+    /**
+     * 需走访人ID 列: visiter_id
+     */
+    private Long visiterId;
+    /**
+     * 需走访人名字 列: visiter_name
+     */
+    private String visiterName;
+    /**
+     * 需走访人员性别 列: visiter_sex
+     */
+    private Integer visiterSex;
+    /**
+     * 需走访人电话 列: visiter_tele
+     */
+    private String visiterTele;
+    /**
+     * 需走访人居住地址 列: visiter_address
+     */
+    private String visiterAddress;
+    /**
+     * 人员类型1吸毒2严重精神障碍3刑释人员4社区矫正人员 列: visiter_type
+     */
+    private Integer visiterType;
+    /**
+     * 事件标题 列: event_title
+     */
+    private String eventTitle;
+    /**
+     * 事件类型 列: event_type
+     */
+    private Integer eventType;
+    /**
+     * 事件描述 列: event_des
+     */
+    private String eventDes;
+    /**
+     * 社区处理(0是无需社区1是社区处理) 列: act_opara
+     */
+    private Integer actOpara;
+    /**
+     * 发生时间 列: happen_time
+     */
+    private Date happenTime;
+    /**
+     * 发生地点 列: happent_address
+     */
+    private String happentAddress;
+    /**
+     * 发生的精度纬度信息(逗号隔开) 列: happent_lat_lng
+     */
+    private String happentLatLng;
+    /**
+     * 事件状态(1待处理2自己已解决3待验证4草稿箱5已撤销6异常) 列: event_status
+     */
+    private Integer eventStatus;
+    /**
+     * 上报状态 列: reporting
+     */
+    private Integer reporting;
+    /**
+     * 当前处理对象类型(1、网格员2、社区3、是街道) 列: dell_type
+     */
+    private Integer dellType;
+    /**
+     * 处理人ID 列: dell_user_id
+     */
+    private Long dellUserId;
+    /**
+     * 处理人名称 列: dell_user_name
+     */
+    private String dellUserName;
+    /**
+     * 处理时间 列: dell_date
+     */
+    private Date dellDate;
+    /**
+     * 解决人针对解决事件的处理描述 列: dell_desc
+     */
+    private String dellDesc;
+    /**
+     * 是否有效 列: invalid
+     */
+    private Boolean invalid;
+    /**
+     * 是否紧急 列: urgent
+     */
+    private Boolean urgent;
+    /**
+     * 是否催办 列: urgent_dell
+     */
+    private Boolean urgentDell;
+    /**
+     * 上报提交时间 列: submit_date
+     */
+    private Date submitDate;
+    /**
+     * 是否异常行为 列: exception
+     */
+    private Integer exception;
+    /**
+     * 走访内容根据重点人员类型输入项不同,录入全部的表单内容数据 列: table_content_json
+     */
+    private String tableContentJson;
+    /**
+     * 创建人 列: create_by
+     */
+    private Long createBy;
+    /**
+     * 创建事件 列: create_at
+     */
+    /**
+     * 创建人 列: create_by
+     */
+    private Long gridId;
+
+    private Date createAt;
+    /**
+     * 修改人 列: update_by
+     */
+    private Long updateBy;
+    /**
+     * 修改时间 列: update_at
+     */
+    private Date updateAt;
+
+    /**
+     * 地址备注
+     */
+    private String addressRemark;
+    /**
+     * 家庭联系电话
+     */
+    private String familyPhone;
+
+    /**
+     * 家庭来源
+     */
+    private String familySource;
+    /**
+     * 是否已经上传浪潮服务器市平台
+     */
+    private Boolean lcUpload;
+
+    @ApiModelProperty(value = "音频")
+    private List<EventResourceVO> audios;
+
+    @ApiModelProperty(value = "视频")
+    private List<EventResourceVO> videos;
+
+    @ApiModelProperty(value = "图片")
+    private List<EventResourceVO> pics;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/MemberStatisticsAdminDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/MemberStatisticsAdminDTO.java
new file mode 100644
index 0000000..413310e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/MemberStatisticsAdminDTO.java
@@ -0,0 +1,28 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("分页查询网格员统计请求参数")
+public class MemberStatisticsAdminDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "查询开始时间")
+    private String startTime;
+
+    @ApiModelProperty(value = "查询结束时间")
+    private String endTime;
+
+    @ApiModelProperty(value = "网格员名称")
+    private String nickName;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageComActEasyPhotoDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageComActEasyPhotoDTO.java
new file mode 100644
index 0000000..e3b4c56
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageComActEasyPhotoDTO.java
@@ -0,0 +1,127 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.Date;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.google.common.base.CaseFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 分页查询表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("查询社区活动 》随手拍请求参数")
+public class PageComActEasyPhotoDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "排序字段, 默认createAt", example = "createAt")
+    private String sortAttr = "createAt";
+
+    @ApiModelProperty(value = "排序方式: asc/desc(默认)", example = "desc")
+    @Pattern(regexp = "asc|desc|ASC|DESC")
+    private String sortType = "desc";
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "自增id", hidden = false, example = "1")
+    private Long id;
+    @NotNull()
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "发起人id", hidden = false, example = "1")
+    private Long sponsorId;
+    @NotBlank()
+    @Length(max = 100)
+    @ApiModelProperty(value = "发生地址", hidden = false, example = "")
+    private String happenAddr;
+    @NotBlank(message = "地址备注不能为空")
+    @Length(max = 50)
+    @ApiModelProperty(value = "地址备注", hidden = false, example = "")
+    private String addrRemark;
+    @NotNull()
+    @Max(127)
+    @ApiModelProperty(value = "状态 1待处理 2已处理", hidden = false, example = "1")
+    private Integer status;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "处理人id", hidden = false, example = "1")
+    private Long handlerId;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间-开始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date createAtBegin;
+    @ApiModelProperty(value = "创建时间-结束时间", hidden = false, example = "2021-05-01 18:05:50")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAtEnd;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "审核时间-开始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date examineAtBegin;
+    @ApiModelProperty(value = "审核时间-结束时间", hidden = false, example = "2021-05-01 18:05:50")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date examineAtEnd;
+    @Length(max = 65535)
+    @ApiModelProperty(value = "详情", hidden = false, example = "")
+    private String detail;
+    @Length(max = 65535)
+    @ApiModelProperty(value = "图片路径列表,逗号分隔", hidden = false, example = "")
+    private String photoPathList;
+    @Length(max = 65535)
+    @ApiModelProperty(value = "处理结果", hidden = false, example = "")
+    private String handleResult;
+    @Length(max = 65535)
+    @ApiModelProperty(value = "处理结果,图片路径列表,逗号分隔", hidden = false, example = "")
+    private String handlePhotoList;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "社区id", hidden = false, example = "1")
+    private Long communityId;
+    @Max(127)
+    @ApiModelProperty(value = "是否匿名发布 0 否 1 是", hidden = false, example = "1")
+    private Integer isHide;
+    @Max(127)
+    @ApiModelProperty(value = "是否需要反馈 0 不需要 1 需要", hidden = false, example = "1")
+    private Integer isNeedFeedBack;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "反馈时间-开始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date feedbackAtBegin;
+    @ApiModelProperty(value = "反馈时间-结束时间", hidden = false, example = "2021-05-01 18:05:50")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date feedbackAtEnd;
+    @Length(max = 500)
+    @ApiModelProperty(value = "驳回原因", hidden = false, example = "")
+    private String rejectReason;
+    @Length(max = 65535)
+    @ApiModelProperty(value = "封面图片", hidden = false, example = "")
+    private String cover;
+    @Max(127)
+    @ApiModelProperty(value = "是否删除 0 否 1 是", hidden = false, example = "1")
+    private Integer delTag;
+    @Max(127)
+    @ApiModelProperty(value = "是否上报社区处理(0.否 1.是)", hidden = false, example = "1")
+    private Integer isReport;
+    @Max(127)
+    @ApiModelProperty(value = "是否公示(0.否 1.是)", hidden = false, example = "1")
+    private Integer isPublicity;
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+    public String getSortColumns() {
+        String dbColumn = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sortAttr);
+        return dbColumn;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageComActEasyPhotoTypeDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageComActEasyPhotoTypeDTO.java
new file mode 100644
index 0000000..0a987ca
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageComActEasyPhotoTypeDTO.java
@@ -0,0 +1,61 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.Date;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Pattern;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.google.common.base.CaseFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 分页查询表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("查询随手拍类型请求参数")
+public class PageComActEasyPhotoTypeDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "排序字段, 默认createAt", example = "createAt")
+    private String sortAttr = "createAt";
+
+    @ApiModelProperty(value = "排序方式: asc/desc(默认)", example = "desc")
+    @Pattern(regexp = "asc|desc|ASC|DESC")
+    private String sortType = "desc";
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "主键id", hidden = false, example = "1")
+    private Long id;
+    @Length(max = 50)
+    @ApiModelProperty(value = "随手拍类型名称", hidden = false, example = "")
+    private String name;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间-开始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date createAtBegin;
+    @ApiModelProperty(value = "创建时间-结束时间", hidden = false, example = "2021-05-01 18:05:50")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAtEnd;
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+    public String getSortColumns() {
+        String dbColumn = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sortAttr);
+        return dbColumn;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageComMngPopulationDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageComMngPopulationDTO.java
new file mode 100644
index 0000000..5a19dc9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageComMngPopulationDTO.java
@@ -0,0 +1,33 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 分页查询表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("查询人员列表请求参数")
+public class PageComMngPopulationDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+    @ApiModelProperty(value = "已选中实有人口id集合")
+    private List<Long> populationIds;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageComMngVillageBuildHouseAppDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageComMngVillageBuildHouseAppDTO.java
new file mode 100644
index 0000000..db62f03
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageComMngVillageBuildHouseAppDTO.java
@@ -0,0 +1,37 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 小区楼栋下房屋列表-请求参数
+ *
+ * @author lyq
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("小区楼栋下房屋列表-请求参数")
+public class PageComMngVillageBuildHouseAppDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "小区id", required = true)
+    private Long villageId;
+
+    @ApiModelProperty(value = "楼栋号", required = true)
+    private String floor;
+
+    @ApiModelProperty(value = "单元号", required = true)
+    private String unitNo;
+
+    @ApiModelProperty(value = "户室号")
+    private String houseNo;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEasyAdminDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEasyAdminDTO.java
new file mode 100644
index 0000000..4a37f16
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEasyAdminDTO.java
@@ -0,0 +1,46 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 随手拍列表请求参数
+ *
+ * @author lyq
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("随手拍列表请求参数")
+public class PageEasyAdminDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "状态 1.待处理 2.已处理")
+    private Integer handleStatus;
+
+    @ApiModelProperty(value = "是否公示(0.否 1.是)")
+    private Integer isPublicity;
+
+    @ApiModelProperty(value = "是否上报社区处理(0.否 1.是)")
+    private Integer isReport;
+
+    @ApiModelProperty(value = "随手拍类型id")
+    private Long easyPhotoTypeId;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    @ApiModelProperty(value = "街道id")
+    private Long streetId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEasyAppDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEasyAppDTO.java
new file mode 100644
index 0000000..d35226d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEasyAppDTO.java
@@ -0,0 +1,56 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import javax.validation.constraints.Pattern;
+
+import com.google.common.base.CaseFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 随手拍列表请求参数
+ *
+ * @author lyq
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("随手拍列表请求参数")
+public class PageEasyAppDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "排序字段, 默认createAt", example = "createAt", hidden = true)
+    private String sortAttr = "createAt";
+
+    @ApiModelProperty(value = "排序方式: asc/desc(默认)", example = "desc")
+    @Pattern(regexp = "asc|desc|ASC|DESC")
+    private String sortType = "desc";
+
+    @ApiModelProperty(value = "状态 1.待处理 2.已上报 3.已公示  4.未公示")
+    private Integer status;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "是否上报社区处理(0.否 1.是)", hidden = true)
+    private Integer isReport;
+
+    @ApiModelProperty(value = "是否公示(0.否 1.是)", hidden = true)
+    private Integer isPublicity;
+
+    @ApiModelProperty(value = "处理状态(1.待处理 2.已处理)", hidden = true)
+    private Integer handleStatus;
+
+    public String getSortColumns() {
+        String dbColumn = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sortAttr);
+        return dbColumn;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventApplicationAppReleaseDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventApplicationAppReleaseDTO.java
new file mode 100644
index 0000000..4fd8d7b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventApplicationAppReleaseDTO.java
@@ -0,0 +1,76 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.Date;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Pattern;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.google.common.base.CaseFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 分页查询表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("查询APP应用版本信息请求参数")
+public class PageEventApplicationAppReleaseDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "排序字段, 默认createAt", example = "createAt")
+    private String sortAttr = "createAt";
+
+    @ApiModelProperty(value = "排序方式: asc/desc(默认)", example = "desc")
+    @Pattern(regexp = "asc|desc|ASC|DESC")
+    private String sortType = "desc";
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "id", hidden = false, example = "1")
+    private Long id;
+    @Max(32767)
+    @ApiModelProperty(value = "应用ID", hidden = false, example = "1")
+    private Integer productId;
+    @Length(max = 50)
+    @ApiModelProperty(value = "应用名称", hidden = false, example = "")
+    private String productName;
+    @Length(max = 255)
+    @ApiModelProperty(value = "版本编号", hidden = false, example = "")
+    private String releaseNumber;
+    @Max(32767)
+    @ApiModelProperty(value = "通知行为(1、强制更新2、提示更新)", hidden = false, example = "1")
+    private Integer action;
+    @Length(max = 255)
+    @ApiModelProperty(value = "版本地址", hidden = false, example = "")
+    private String url;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间-开始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date createAtBegin;
+    @ApiModelProperty(value = "创建时间-结束时间", hidden = false, example = "2021-05-01 18:05:50")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAtEnd;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "创建人", hidden = false, example = "1")
+    private Long createBy;
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+    public String getSortColumns() {
+        String dbColumn = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sortAttr);
+        return dbColumn;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventApplicationUserNoticeDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventApplicationUserNoticeDTO.java
new file mode 100644
index 0000000..f52dab7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventApplicationUserNoticeDTO.java
@@ -0,0 +1,73 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.Date;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Pattern;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.google.common.base.CaseFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 分页查询表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("查询用户协议和隐私政策信息请求参数")
+public class PageEventApplicationUserNoticeDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "排序字段, 默认createAt", example = "createAt")
+    private String sortAttr = "createAt";
+
+    @ApiModelProperty(value = "排序方式: asc/desc(默认)", example = "desc")
+    @Pattern(regexp = "asc|desc|ASC|DESC")
+    private String sortType = "desc";
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "id", hidden = false, example = "1")
+    private Long id;
+    @Max(32767)
+    @ApiModelProperty(value = "应用ID", hidden = false, example = "1")
+    private Integer productId;
+    @Length(max = 50)
+    @ApiModelProperty(value = "应用名称", hidden = false, example = "")
+    private String productName;
+    @Max(32767)
+    @ApiModelProperty(value = "通知行为(1、强制通知必须手段确定2、提示更新,自动消退)", hidden = false, example = "1")
+    private Integer action;
+    @Length(max = 1000)
+    @ApiModelProperty(value = "内容", hidden = false, example = "")
+    private String content;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间-开始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date createAtBegin;
+    @ApiModelProperty(value = "创建时间-结束时间", hidden = false, example = "2021-05-01 18:05:50")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAtEnd;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "创建人", hidden = false, example = "1")
+    private Long createBy;
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+    public String getSortColumns() {
+        String dbColumn = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sortAttr);
+        return dbColumn;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventDTO.java
new file mode 100644
index 0000000..e207aa4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventDTO.java
@@ -0,0 +1,206 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.Date;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.google.common.base.CaseFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 分页查询表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("查询事件请求参数")
+public class PageEventDTO {
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格ID", hidden = false, example = "1", required = true)
+    @NotNull(message = "网格ID不能为空")
+    private Long gridId;
+
+    @Max(127)
+    @ApiModelProperty(value = "事件分类:1治安隐患、2公共服务、3矛盾纠纷、4不稳定因素、5突发事件、6特殊人群上报", hidden = false, example = "1",
+        required = true)
+    @NotNull(message = "事件分类不能为空")
+    private Integer eventType;
+
+    @Max(value = 6, message = "事件处理状态参数错误")
+    @ApiModelProperty(value = "事件处理状态(为空时查询全部):1 待处理、2 待验证、3 已上报、4 已解决、5 草稿箱、6已撤销", hidden = false, example = "1")
+    private Integer eventDealStatus;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "排序字段, 默认createAt", example = "createAt")
+    private String sortAttr = "createAt";
+
+    @ApiModelProperty(value = "排序方式: asc/desc(默认)", example = "desc")
+    @Pattern(regexp = "asc|desc|ASC|DESC", message = "排序方式参数错误")
+    private String sortType = "desc";
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "id", hidden = false, example = "1")
+    private Long id;
+    @Length(max = 20)
+    @ApiModelProperty(value = "服务单号", hidden = false, example = "")
+    private String orderSn;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "1、办件事件2是宣传事件3是阅读事件", hidden = false, example = "1")
+    private Long eventCategory;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格员所处的街道", hidden = false, example = "1")
+    private Long gridMemberStreet;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格员所处社区", hidden = false, example = "1")
+    private Long gridMemberCommunity;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格员", hidden = false, example = "1")
+    private Long gridMemberId;
+    @Length(max = 100)
+    @ApiModelProperty(value = "网格员名字", hidden = false, example = "")
+    private String gridMemberName;
+    @Length(max = 100)
+    @ApiModelProperty(value = "事件类型", hidden = false, example = "")
+    private String eventClazz;
+    @Length(max = 20)
+    @ApiModelProperty(value = "网格员联系方式", hidden = false, example = "")
+    private String gridMemberTelephone;
+    @Length(max = 255)
+    @ApiModelProperty(value = "事件标题", hidden = false, example = "")
+    private String eventTitle;
+    @Length(max = 255)
+    @ApiModelProperty(value = "宣传类型", hidden = false, example = "1")
+    private String propagandaType;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "宣传时间-开始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date propagandaTimeBegin;
+    @ApiModelProperty(value = "宣传时间-结束时间", hidden = false, example = "2021-05-01 18:05:50")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date propagandaTimeEnd;
+    @Length(max = 500)
+    @ApiModelProperty(value = "事件描述", hidden = false, example = "")
+    private String eventDes;
+    @Length(max = 50)
+    @ApiModelProperty(value = "宣传对象", hidden = false, example = "")
+    private String propagandaObject;
+    @Length(max = 8)
+    @ApiModelProperty(value = "宣传人数", hidden = false, example = "")
+    private String propagandaNum;
+    @Max(127)
+    @ApiModelProperty(value = "社区处理(0是无需社区1是社区处理)", hidden = false, example = "1")
+    private Integer communityProcess;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "发生时间-开始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date happenTimeBegin;
+    @ApiModelProperty(value = "发生时间-结束时间", hidden = false, example = "2021-05-01 18:05:50")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date happenTimeEnd;
+    @Length(max = 255)
+    @ApiModelProperty(value = "发生地点", hidden = false, example = "")
+    private String happentAddress;
+    @Length(max = 255)
+    @ApiModelProperty(value = "发生的精度纬度信息(逗号隔开)", hidden = false, example = "")
+    private String happentLatLng;
+    @Max(127)
+    @ApiModelProperty(value = "事件状态(1草稿箱2发布3逻辑删除4、撤销)", hidden = false, example = "1")
+    private Integer eventStatus;
+    @Max(127)
+    @ApiModelProperty(value = "1待处理2已解决3待验证", hidden = false, example = "1")
+    private Integer eventProcessStatus;
+    @Max(127)
+    @ApiModelProperty(value = "当前处理对象类型(1、网格员2、社区3、是街道)", hidden = false, example = "1")
+    private Integer processType;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "处理人ID", hidden = false, example = "1")
+    private Long processUserId;
+    @Length(max = 100)
+    @ApiModelProperty(value = "处理人名称", hidden = false, example = "")
+    private String processUserName;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "处理时间-开始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date processDateBegin;
+    @ApiModelProperty(value = "处理时间-结束时间", hidden = false, example = "2021-05-01 18:05:50")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date processDateEnd;
+    @Length(max = 255)
+    @ApiModelProperty(value = "解决人针对解决事件的处理描述", hidden = false, example = "")
+    private String processDesc;
+    @Length(max = 255)
+    @ApiModelProperty(value = "事件来源", hidden = false, example = "")
+    private String eventResource;
+    @Max(127)
+    @ApiModelProperty(value = "危险级别", hidden = false, example = "1")
+    private Integer dangerLevel;
+    @ApiModelProperty(value = "红牌", hidden = false, example = "true")
+    private Boolean redCard;
+    @ApiModelProperty(value = "黄牌", hidden = false, example = "true")
+    private Boolean yellowCard;
+    @ApiModelProperty(value = "是否有效", hidden = false, example = "true")
+    private Boolean invalid;
+    @ApiModelProperty(value = "是否重大", hidden = false, example = "true")
+    private Boolean major;
+    @Max(9999999999L)
+    @ApiModelProperty(value = "死亡人数", hidden = false, example = "1")
+    private Integer deathsNumber;
+    @Max(9999999999L)
+    @ApiModelProperty(value = "受伤人数", hidden = false, example = "1")
+    private Integer injuriesNumber;
+    @ApiModelProperty(value = "是否疑难事件", hidden = false, example = "true")
+    private Boolean difficult;
+    @ApiModelProperty(value = "是否紧急", hidden = false, example = "true")
+    private Boolean urgent;
+    @ApiModelProperty(value = "是否催办", hidden = false, example = "true")
+    private Boolean urgentDell;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "上报提交时间-开始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date submitDateBegin;
+    @ApiModelProperty(value = "上报提交时间-结束时间", hidden = false, example = "2021-05-01 18:05:50")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date submitDateEnd;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "创建人", hidden = false, example = "1")
+    private Long createBy;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间-开始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date createAtBegin;
+    @ApiModelProperty(value = "创建时间-结束时间", hidden = false, example = "2021-05-01 18:05:50")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAtEnd;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "修改人", hidden = false, example = "1")
+    private Long updateBy;
+    @ApiModelProperty(value = "撤销类型 1 网格员 2 社区", hidden = true, example = "1")
+    private Integer revokeType;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "修改时间-开始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date updateAtBegin;
+    @ApiModelProperty(value = "修改时间-结束时间", hidden = false, example = "2021-05-01 18:05:50")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAtEnd;
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+    @ApiModelProperty(value = "是否查询全部(1.是 2.否)", hidden = false, example = "true")
+    private Integer isAll;
+
+    public String getSortColumns() {
+        String dbColumn = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sortAttr);
+        return dbColumn;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventGridDataAdminDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventGridDataAdminDTO.java
new file mode 100644
index 0000000..ce8f054
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventGridDataAdminDTO.java
@@ -0,0 +1,40 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import javax.validation.constraints.Max;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 分页查询表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("查询网格数据管理请求参数")
+public class PageEventGridDataAdminDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格所属街道", hidden = false, example = "1")
+    private Long gridStreetId;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格所属社区ID", hidden = false, example = "1")
+    private Long gridCommunityId;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+    @ApiModelProperty(value = "关键字", example = "")
+    private String keyWord;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventGridDataDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventGridDataDTO.java
new file mode 100644
index 0000000..8796661
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventGridDataDTO.java
@@ -0,0 +1,113 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.Date;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.google.common.base.CaseFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 分页查询表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("查询网格数据管理请求参数")
+public class PageEventGridDataDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "排序字段, 默认createAt", example = "createAt")
+    private String sortAttr = "createAt";
+
+    @ApiModelProperty(value = "排序方式: asc/desc(默认)", example = "desc")
+    @Pattern(regexp = "asc|desc|ASC|DESC")
+    private String sortType = "desc";
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "主键ID", hidden = false, example = "1")
+    private Long id;
+    @NotNull()
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "类型,1、区县网格2街道网格3社区网格", hidden = false, example = "1")
+    private Long type;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "区/县ID", hidden = false, example = "1")
+    private Long zoneId;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格所属街道", hidden = false, example = "1")
+    private Long gridStreetId;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格所属社区ID", hidden = false, example = "1")
+    private Long gridCommunityId;
+    @NotBlank()
+    @Length(max = 100)
+    @ApiModelProperty(value = "网格名称", hidden = false, example = "")
+    private String gridName;
+    @Max(32767)
+    @ApiModelProperty(value = "所属图层", hidden = false, example = "1")
+    private Integer mapLevel;
+    @Length(max = 100)
+    @ApiModelProperty(value = "面积", hidden = false, example = "")
+    private String area;
+    @Length(max = 100)
+    @ApiModelProperty(value = "线条颜色", hidden = false, example = "")
+    private String lineColor;
+    @Length(max = 100)
+    @ApiModelProperty(value = "线条宽度", hidden = false, example = "")
+    private String lineBroadband;
+    @Length(max = 100)
+    @ApiModelProperty(value = "填充颜色", hidden = false, example = "")
+    private String fillColor;
+    @Length(max = 255)
+    @ApiModelProperty(value = "备注", hidden = false, example = "")
+    private String remarks;
+    @Length(max = 2147483647)
+    @ApiModelProperty(value = "围栏数据", hidden = false, example = "")
+    private String data;
+    @NotNull()
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "创建人", hidden = false, example = "1")
+    private Long createBy;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间-开始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date createAtBegin;
+    @ApiModelProperty(value = "创建时间-结束时间", hidden = false, example = "2021-05-01 18:05:50")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAtEnd;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "修改人", hidden = false, example = "1")
+    private Long updateBy;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "修改时间-开始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date updateAtBegin;
+    @ApiModelProperty(value = "修改时间-结束时间", hidden = false, example = "2021-05-01 18:05:50")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAtEnd;
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+    @ApiModelProperty(value = "关键字", example = "")
+    private String keyWord;
+
+    public String getSortColumns() {
+        String dbColumn = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sortAttr);
+        return dbColumn;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventGridMemberGpsLogDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventGridMemberGpsLogDTO.java
new file mode 100644
index 0000000..b11d026
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventGridMemberGpsLogDTO.java
@@ -0,0 +1,89 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.Date;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.google.common.base.CaseFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 分页查询表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("查询网格员定时上报地理信息请求参数")
+public class PageEventGridMemberGpsLogDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "排序字段, 默认createAt", example = "createAt")
+    private String sortAttr = "createAt";
+
+    @ApiModelProperty(value = "排序方式: asc/desc(默认)", example = "desc")
+    @Pattern(regexp = "asc|desc|ASC|DESC")
+    private String sortType = "desc";
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "主键ID", hidden = false, example = "1")
+    private Long id;
+    @NotNull()
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格所属街道", hidden = false, example = "1")
+    private Long gridStreetId;
+    @NotNull()
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格所属社区ID", hidden = false, example = "1")
+    private Long gridCommunityId;
+    @NotNull()
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格ID", hidden = false, example = "1")
+    private Long gridId;
+    @NotBlank()
+    @Length(max = 100)
+    @ApiModelProperty(value = "网格名称", hidden = false, example = "")
+    private String gridName;
+    @NotNull()
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格员ID", hidden = false, example = "1")
+    private Long gridMemberId;
+    @Length(max = 255)
+    @ApiModelProperty(value = "精度维度信息,逗号分割", hidden = false, example = "")
+    private String lngLat;
+    @Max(127)
+    @ApiModelProperty(value = "位置信息状态(1、为判定2、正常3、是不正常)", hidden = false, example = "1")
+    private Integer positionStation;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "创建人", hidden = false, example = "1")
+    private Long createBy;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间-开始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date createAtBegin;
+    @ApiModelProperty(value = "创建时间-结束时间", hidden = false, example = "2021-05-01 18:05:50")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAtEnd;
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+    public String getSortColumns() {
+        String dbColumn = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sortAttr);
+        return dbColumn;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventGridMemberRelationDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventGridMemberRelationDTO.java
new file mode 100644
index 0000000..b51e7da
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventGridMemberRelationDTO.java
@@ -0,0 +1,70 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import javax.validation.constraints.Max;
+
+import org.hibernate.validator.constraints.Length;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 分页查询表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("查询网格和网格员的关联关系请求参数")
+public class PageEventGridMemberRelationDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格所属街道id", hidden = false, example = "1")
+    private Long gridStreetId;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格所属社区id", hidden = false, example = "1")
+    private Long gridCommunityId;
+
+    @Length(max = 100)
+    @ApiModelProperty(value = "关键词", hidden = false, example = "")
+    private String keyWord;
+
+    @Length(max = 100)
+    @ApiModelProperty(value = "网格名称", hidden = false, example = "")
+    private String gridName;
+
+    @Length(max = 100)
+    @ApiModelProperty(value = "账号昵称", hidden = true, example = "")
+    private String nickName;
+
+    @Length(max = 100)
+    @ApiModelProperty(value = "登录账号", hidden = true, example = "")
+    private String account;
+
+    @Length(max = 100)
+    @ApiModelProperty(value = "联系电话", hidden = true, example = "")
+    private String phone;
+
+    @ApiModelProperty(value = "账号状态(1.启用 2.禁用)", example = "1")
+    private Integer status;
+
+    @ApiModelProperty(value = "网格员工作状态(1.在岗 2.脱岗 3.已下班)", example = "1")
+    private Integer workStatus;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格员ID", hidden = true, example = "1")
+    private String gridMemberId;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventGridMemberWarnLogDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventGridMemberWarnLogDTO.java
new file mode 100644
index 0000000..e6964db
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventGridMemberWarnLogDTO.java
@@ -0,0 +1,89 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.Date;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.google.common.base.CaseFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 分页查询表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("查询网格员定时上报地理预警记录请求参数")
+public class PageEventGridMemberWarnLogDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "排序字段, 默认createAt", example = "createAt")
+    private String sortAttr = "createAt";
+
+    @ApiModelProperty(value = "排序方式: asc/desc(默认)", example = "desc")
+    @Pattern(regexp = "asc|desc|ASC|DESC")
+    private String sortType = "desc";
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "主键ID", hidden = false, example = "1")
+    private Long id;
+    @NotNull()
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格所属街道", hidden = false, example = "1")
+    private Long gridStreetId;
+    @NotNull()
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格所属社区ID", hidden = false, example = "1")
+    private Long gridCommunityId;
+    @NotNull()
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格ID", hidden = false, example = "1")
+    private Long gridId;
+    @NotBlank()
+    @Length(max = 100)
+    @ApiModelProperty(value = "网格名称", hidden = false, example = "")
+    private String gridName;
+    @NotNull()
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格员ID", hidden = false, example = "1")
+    private Long gridMemberId;
+    @Length(max = 255)
+    @ApiModelProperty(value = "精度维度信息,逗号分割", hidden = false, example = "")
+    private String lngLat;
+    @Length(max = 50)
+    @ApiModelProperty(value = "预警信息内容", hidden = false, example = "")
+    private String content;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "创建人", hidden = false, example = "1")
+    private Long createBy;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间-开始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date createAtBegin;
+    @ApiModelProperty(value = "创建时间-结束时间", hidden = false, example = "2021-05-01 18:05:50")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAtEnd;
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+    public String getSortColumns() {
+        String dbColumn = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sortAttr);
+        return dbColumn;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventGridNearbyDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventGridNearbyDTO.java
new file mode 100644
index 0000000..a2a8e1f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventGridNearbyDTO.java
@@ -0,0 +1,53 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.google.common.base.CaseFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 分页查询表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("查询事件请求参数")
+public class PageEventGridNearbyDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "排序字段, 默认createAt", example = "createAt")
+    private String sortAttr = "createAt";
+
+    @ApiModelProperty(value = "排序方式: asc/desc(默认)", example = "desc")
+    @Pattern(regexp = "asc|desc|ASC|DESC", message = "排序方式参数错误")
+    private String sortType = "desc";
+    @Length(max = 255)
+    @ApiModelProperty(value = "发生的精度纬度信息(逗号隔开'经度,维度')", hidden = false, example = "104.060748,30.65769",
+        required = true)
+    @NotNull
+    private String happentLatLng;
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userName;
+
+    public String getSortColumns() {
+        String dbColumn = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sortAttr);
+        return dbColumn;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventMainMemberDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventMainMemberDTO.java
new file mode 100644
index 0000000..cc02778
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventMainMemberDTO.java
@@ -0,0 +1,148 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.Date;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Pattern;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.google.common.base.CaseFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 分页查询表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("查询重点人群记录请求参数")
+public class PageEventMainMemberDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "排序字段, 默认createAt", example = "createAt")
+    private String sortAttr = "createAt";
+
+    @ApiModelProperty(value = "排序方式: asc/desc(默认)", example = "desc")
+    @Pattern(regexp = "asc|desc|ASC|DESC")
+    private String sortType = "desc";
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "id", hidden = false, example = "1")
+    private Long id;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格员所处的街道", hidden = false, example = "1")
+    private Long gridMemberStreet;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格员所处社区", hidden = false, example = "1")
+    private Long gridMemberCommunity;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格员", hidden = false, example = "1")
+    private Long gridMember;
+    @Length(max = 255)
+    @ApiModelProperty(value = "网格员名字", hidden = false, example = "")
+    private String gridMemberName;
+    @Length(max = 255)
+    @ApiModelProperty(value = "网格员联系方式", hidden = false, example = "")
+    private String gridMemberTele;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "需走访人ID", hidden = false, example = "1")
+    private Long visiterId;
+    @Length(max = 255)
+    @ApiModelProperty(value = "需走访人名字", hidden = false, example = "")
+    private String visiterName;
+    @Max(32767)
+    @ApiModelProperty(value = "需走访人员性别", hidden = false, example = "1")
+    private Integer visiterSex;
+    @Length(max = 255)
+    @ApiModelProperty(value = "需走访人电话", hidden = false, example = "")
+    private String visiterTele;
+    @Length(max = 255)
+    @ApiModelProperty(value = "需走访人居住地址", hidden = false, example = "")
+    private String visiterAddress;
+    @Length(max = 255)
+    @ApiModelProperty(value = "需走访人地址精度纬度信息(逗号隔开)", hidden = false, example = "")
+    private String visiterAddressLatLng;
+    @Max(9999999999L)
+    @ApiModelProperty(value = "人员类型1吸毒2严重精神障碍3刑释人员4社区矫正人员", hidden = false, example = "1")
+    private Integer visiterType;
+    @Max(127)
+    @ApiModelProperty(value = "社区处理(0是无需社区1是社区处理)", hidden = false, example = "1")
+    private Integer actOpara;
+    @Max(9999999999L)
+    @ApiModelProperty(value = "事件状态(1待处理2自己已解决3待验证4草稿箱5已撤销6异常)", hidden = false, example = "1")
+    private Integer eventStatus;
+    @Max(32767)
+    @ApiModelProperty(value = "上报状态", hidden = false, example = "1")
+    private Integer reporting;
+    @Max(32767)
+    @ApiModelProperty(value = "当前处理对象类型(1、网格员2、社区3、是街道)", hidden = false, example = "1")
+    private Integer dellType;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "处理人ID", hidden = false, example = "1")
+    private Long dellUserId;
+    @Length(max = 255)
+    @ApiModelProperty(value = "处理人名称", hidden = false, example = "")
+    private String dellUserName;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "处理时间-开始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date dellDateBegin;
+    @ApiModelProperty(value = "处理时间-结束时间", hidden = false, example = "2021-05-01 18:05:50")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date dellDateEnd;
+    @Length(max = 255)
+    @ApiModelProperty(value = "解决人针对解决事件的处理描述", hidden = false, example = "")
+    private String dellDesc;
+    @ApiModelProperty(value = "是否有效", hidden = false, example = "true")
+    private Boolean invalid;
+    @ApiModelProperty(value = "是否紧急", hidden = false, example = "true")
+    private Boolean urgent;
+    @ApiModelProperty(value = "是否催办", hidden = false, example = "true")
+    private Boolean urgentDell;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "上报提交时间-开始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date submitDateBegin;
+    @ApiModelProperty(value = "上报提交时间-结束时间", hidden = false, example = "2021-05-01 18:05:50")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date submitDateEnd;
+    @Length(max = 255)
+    @ApiModelProperty(value = "走访频率配置,一个月几次", hidden = false, example = "")
+    private String visiterConfig;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "创建人", hidden = false, example = "1")
+    private Long createBy;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建事件-开始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date createAtBegin;
+    @ApiModelProperty(value = "创建事件-结束时间", hidden = false, example = "2021-05-01 18:05:50")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAtEnd;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "修改人", hidden = false, example = "1")
+    private Long updateBy;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "修改时间-开始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date updateAtBegin;
+    @ApiModelProperty(value = "修改时间-结束时间", hidden = false, example = "2021-05-01 18:05:50")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAtEnd;
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+    public String getSortColumns() {
+        String dbColumn = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sortAttr);
+        return dbColumn;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventManageDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventManageDTO.java
new file mode 100644
index 0000000..5e4fa72
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventManageDTO.java
@@ -0,0 +1,75 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Pattern;
+
+import com.google.common.base.CaseFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 事件管理分页查询表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("查询事件请求参数")
+public class PageEventManageDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "排序字段, 默认createAt", example = "createAt")
+    private String sortAttr = "createAt";
+
+    @ApiModelProperty(value = "排序方式: asc/desc(默认)", example = "desc")
+    @Pattern(regexp = "asc|desc|ASC|DESC", message = "排序方式参数错误")
+    private String sortType = "desc";
+    @ApiModelProperty(value = "撤销类型 1 网格员 2 社区", hidden = true, example = "1")
+    private Integer revokeType;
+    @ApiModelProperty(value = "搜索关键词", hidden = false, example = "1", required = true)
+    private String keyWord;
+    @ApiModelProperty(value = "上报社区处理: 0 否 1 是", hidden = false, example = "1")
+    private Integer communityProcess;
+    @Max(value = 6, message = "事件处理状态参数错误")
+    @ApiModelProperty(value = "事件处理状态(为空时查询全部):1 待处理、2 待验证、4 已解决、6 已失效", hidden = false, example = "1")
+    private Integer eventDealStatus;
+    @Max(127)
+    @ApiModelProperty(value = "事件分类:1治安隐患、2公共服务、3矛盾纠纷、4不稳定因素、5突发事件", hidden = false, example = "1")
+    // @NotNull(message = "事件分类不能为空")
+    private Integer eventType;
+    @ApiModelProperty(value = "事件类型")
+    private String eventClazz;
+    @Max(127)
+    @ApiModelProperty(value = "危险级别", hidden = false, example = "1")
+    private Integer dangerLevel;
+    @ApiModelProperty(value = "是否紧急", hidden = false, example = "true")
+    private Boolean urgent;
+    @ApiModelProperty(value = "是否重大", hidden = false, example = "true")
+    private Boolean major;
+    @ApiModelProperty(value = "红牌", hidden = false, example = "true")
+    private Boolean redCard;
+    @ApiModelProperty(value = "黄牌", hidden = false, example = "true")
+    private Boolean yellowCard;
+    @ApiModelProperty(value = "是否有效", hidden = false, example = "true")
+    private Boolean invalid;
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "社区ID", hidden = true, example = "1")
+    private Long communityId;
+
+    public String getSortColumns() {
+        String dbColumn = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sortAttr);
+        return dbColumn;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventResourceDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventResourceDTO.java
new file mode 100644
index 0000000..6d64304
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventResourceDTO.java
@@ -0,0 +1,76 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.Date;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Pattern;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.google.common.base.CaseFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 分页查询表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("查询事件或者走访中关联的图片音频和视频文件请求参数")
+public class PageEventResourceDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "排序字段, 默认createAt", example = "createAt")
+    private String sortAttr = "createAt";
+
+    @ApiModelProperty(value = "排序方式: asc/desc(默认)", example = "desc")
+    @Pattern(regexp = "asc|desc|ASC|DESC")
+    private String sortType = "desc";
+    @Max(127)
+    @ApiModelProperty(value = "分类(1、事件 2、走访)", hidden = false, example = "1")
+    private Integer classification;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "事件或者走访任务关联ID", hidden = false, example = "1")
+    private Long id;
+    @Max(127)
+    @ApiModelProperty(value = "事件上传的资源类型(1是图片2是音频3是是视频)", hidden = false, example = "1")
+    private Integer type;
+    @Length(max = 255)
+    @ApiModelProperty(value = "资源名称", hidden = false, example = "")
+    private String resourceName;
+    @Length(max = 255)
+    @ApiModelProperty(value = "资源大小", hidden = false, example = "")
+    private String resourceSize;
+    @Length(max = 255)
+    @ApiModelProperty(value = "事件上传的资源URL地址", hidden = false, example = "")
+    private String url;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "创建人", hidden = false, example = "1")
+    private Long createBy;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间-开始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date createAtBegin;
+    @ApiModelProperty(value = "创建时间-结束时间", hidden = false, example = "2021-05-01 18:05:50")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAtEnd;
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+    public String getSortColumns() {
+        String dbColumn = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sortAttr);
+        return dbColumn;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventSpecialPopulationDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventSpecialPopulationDTO.java
new file mode 100644
index 0000000..ff25cc7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventSpecialPopulationDTO.java
@@ -0,0 +1,31 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 分页查询表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("查询事件特殊人群请求参数")
+public class PageEventSpecialPopulationDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "社区id", hidden = true, example = "2")
+    private Long communityId;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventTransferRecordDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventTransferRecordDTO.java
new file mode 100644
index 0000000..2514ae0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventTransferRecordDTO.java
@@ -0,0 +1,88 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.Date;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Pattern;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.google.common.base.CaseFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 分页查询表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("查询事件处理流转记录请求参数")
+public class PageEventTransferRecordDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "排序字段, 默认createAt", example = "createAt")
+    private String sortAttr = "createAt";
+
+    @ApiModelProperty(value = "排序方式: asc/desc(默认)", example = "desc")
+    @Pattern(regexp = "asc|desc|ASC|DESC")
+    private String sortType = "desc";
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "id", hidden = false, example = "1")
+    private Long id;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "事件ID", hidden = false, example = "1")
+    private Long eventId;
+    @Max(127)
+    @ApiModelProperty(value = "来源类型(1、网格员2、社区3、是街道)", hidden = false, example = "1")
+    private Integer fromType;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "事件来源机构或网格员", hidden = false, example = "1")
+    private Long from;
+    @Length(max = 255)
+    @ApiModelProperty(value = "转交办理人路径名称", hidden = false, example = "")
+    private String fromName;
+    @Max(127)
+    @ApiModelProperty(value = "转交类型(1、网格员2、社区3、是街道)", hidden = false, example = "1")
+    private Integer toType;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "事件下游机构或网格员", hidden = false, example = "1")
+    private Long to;
+    @Length(max = 255)
+    @ApiModelProperty(value = "需要办理人路径名称", hidden = false, example = "")
+    private String toName;
+    @Length(max = 255)
+    @ApiModelProperty(value = "处理结果", hidden = false, example = "")
+    private String processResult;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "处理时间-开始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date processDateBegin;
+    @ApiModelProperty(value = "处理时间-结束时间", hidden = false, example = "2021-05-01 18:05:50")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date processDateEnd;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间-开始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date createAtBegin;
+    @ApiModelProperty(value = "创建时间-结束时间", hidden = false, example = "2021-05-01 18:05:50")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAtEnd;
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+    public String getSortColumns() {
+        String dbColumn = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sortAttr);
+        return dbColumn;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventVisitingTasksDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventVisitingTasksDTO.java
new file mode 100644
index 0000000..9890529
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PageEventVisitingTasksDTO.java
@@ -0,0 +1,168 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.Date;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Pattern;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.google.common.base.CaseFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 分页查询表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("查询重点人群走访记录请求参数")
+public class PageEventVisitingTasksDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "排序字段, 默认createAt", example = "createAt")
+    private String sortAttr = "createAt";
+
+    @ApiModelProperty(value = "排序方式: asc/desc(默认)", example = "desc")
+    @Pattern(regexp = "asc|desc|ASC|DESC")
+    private String sortType = "desc";
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "id", hidden = false, example = "1")
+    private Long id;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格员所处的街道", hidden = false, example = "1")
+    private Long gridMemberStreet;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格员所处社区", hidden = false, example = "1")
+    private Long gridMemberCommunity;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格员", hidden = false, example = "1")
+    private Long gridMember;
+    @Length(max = 255)
+    @ApiModelProperty(value = "网格员名字", hidden = false, example = "")
+    private String gridMemberName;
+    @Length(max = 255)
+    @ApiModelProperty(value = "网格员联系方式", hidden = false, example = "")
+    private String gridMenberTele;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "需走访人ID", hidden = false, example = "1")
+    private Long visiterId;
+    @Length(max = 255)
+    @ApiModelProperty(value = "需走访人名字", hidden = false, example = "")
+    private String visiterName;
+    @Max(32767)
+    @ApiModelProperty(value = "需走访人员性别", hidden = false, example = "1")
+    private Integer visiterSex;
+    @Length(max = 255)
+    @ApiModelProperty(value = "需走访人电话", hidden = false, example = "")
+    private String visiterTele;
+    @Length(max = 255)
+    @ApiModelProperty(value = "需走访人居住地址", hidden = false, example = "")
+    private String visiterAddress;
+    @Max(9999999999L)
+    @ApiModelProperty(value = "人员类型1吸毒2严重精神障碍3刑释人员4社区矫正人员", hidden = false, example = "1")
+    private Integer visiterType;
+    @Length(max = 255)
+    @ApiModelProperty(value = "事件标题", hidden = false, example = "")
+    private String eventTitle;
+    @Max(127)
+    @ApiModelProperty(value = "事件类型", hidden = false, example = "1")
+    private Integer eventType;
+    @Length(max = 500)
+    @ApiModelProperty(value = "事件描述", hidden = false, example = "")
+    private String eventDes;
+    @Max(127)
+    @ApiModelProperty(value = "社区处理(0是无需社区1是社区处理)", hidden = false, example = "1")
+    private Integer actOpara;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "发生时间-开始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date happenTimeBegin;
+    @ApiModelProperty(value = "发生时间-结束时间", hidden = false, example = "2021-05-01 18:05:50")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date happenTimeEnd;
+    @Length(max = 255)
+    @ApiModelProperty(value = "发生地点", hidden = false, example = "")
+    private String happentAddress;
+    @Length(max = 255)
+    @ApiModelProperty(value = "发生的精度纬度信息(逗号隔开)", hidden = false, example = "")
+    private String happentLatLng;
+    @Max(127)
+    @ApiModelProperty(value = "事件状态(1待处理2自己已解决3待验证4草稿箱5已撤销6异常)", hidden = false, example = "1")
+    private Integer eventStatus;
+    @Max(32767)
+    @ApiModelProperty(value = "上报状态", hidden = false, example = "1")
+    private Integer reporting;
+    @Max(32767)
+    @ApiModelProperty(value = "当前处理对象类型(1、网格员2、社区3、是街道)", hidden = false, example = "1")
+    private Integer dellType;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "处理人ID", hidden = false, example = "1")
+    private Long dellUserId;
+    @Length(max = 255)
+    @ApiModelProperty(value = "处理人名称", hidden = false, example = "")
+    private String dellUserName;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "处理时间-开始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date dellDateBegin;
+    @ApiModelProperty(value = "处理时间-结束时间", hidden = false, example = "2021-05-01 18:05:50")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date dellDateEnd;
+    @Length(max = 255)
+    @ApiModelProperty(value = "解决人针对解决事件的处理描述", hidden = false, example = "")
+    private String dellDesc;
+    @ApiModelProperty(value = "是否有效", hidden = false, example = "true")
+    private Boolean invalid;
+    @ApiModelProperty(value = "是否紧急", hidden = false, example = "true")
+    private Boolean urgent;
+    @ApiModelProperty(value = "是否催办", hidden = false, example = "true")
+    private Boolean urgentDell;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "上报提交时间-开始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date submitDateBegin;
+    @ApiModelProperty(value = "上报提交时间-结束时间", hidden = false, example = "2021-05-01 18:05:50")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date submitDateEnd;
+    @ApiModelProperty(value = "是否异常行为", hidden = false, example = "true")
+    private Boolean exception;
+    @Length(max = 255)
+    @ApiModelProperty(value = "走访内容根据重点人员类型输入项不同,录入全部的表单内容数据", hidden = false, example = "")
+    private String tableContentJson;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "创建人", hidden = false, example = "1")
+    private Long createBy;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建事件-开始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date createAtBegin;
+    @ApiModelProperty(value = "创建事件-结束时间", hidden = false, example = "2021-05-01 18:05:50")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAtEnd;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "修改人", hidden = false, example = "1")
+    private Long updateBy;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "修改时间-开始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date updateAtBegin;
+    @ApiModelProperty(value = "修改时间-结束时间", hidden = false, example = "2021-05-01 18:05:50")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAtEnd;
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+    public String getSortColumns() {
+        String dbColumn = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sortAttr);
+        return dbColumn;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PagePopulationListDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PagePopulationListDTO.java
new file mode 100644
index 0000000..b4abb0b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PagePopulationListDTO.java
@@ -0,0 +1,47 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 分页查询表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("查询事件请求参数")
+public class PagePopulationListDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "关键字", example = "1")
+    private String keyWord;
+
+    @ApiModelProperty(value = "社区ID", hidden = true, example = "1")
+    private Long communityId;
+
+    @ApiModelProperty(value = "特殊人员标签")
+    private String label;
+
+    @ApiModelProperty(value = "网格id")
+    private Long gridId;
+
+    private Integer outOrLocal;
+
+    /**
+     * 外地or本地(1.本地  2.外地)
+     */
+    public interface outOrLocal{
+        int bd = 1;
+        int wd = 2;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PagePublicityEventCommunityDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PagePublicityEventCommunityDTO.java
new file mode 100644
index 0000000..1571c01
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PagePublicityEventCommunityDTO.java
@@ -0,0 +1,57 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Pattern;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.google.common.base.CaseFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 分页查询表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("查询宣传教育事件请求参数")
+public class PagePublicityEventCommunityDTO {
+
+    @Max(value = 8, message = "事件处理状态参数错误")
+    @ApiModelProperty(value = "事件处理状态(为空时查询全部):1 已发布、5 草稿箱、6已撤销", hidden = false, example = "1")
+    private Integer eventDealStatus;
+
+    @Length(max = 50)
+    @ApiModelProperty(value = "关键词", example = "")
+    private String keyWord;
+
+    @ApiModelProperty(value = "分页-当前页数,默认1", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数,默认10", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "排序字段, 默认createAt", example = "createAt")
+    private String sortAttr = "createAt";
+
+    @ApiModelProperty(value = "排序方式: asc/desc(默认)", example = "desc")
+    @Pattern(regexp = "asc|desc|ASC|DESC", message = "排序方式参数错误")
+    private String sortType = "desc";
+    @ApiModelProperty(value = "撤销类型 1 网格员 2 社区", hidden = true, example = "1")
+    private Integer revokeType;
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+    @ApiModelProperty(value = "社区ID", hidden = true, example = "1")
+    private Long communityId;
+
+    public String getSortColumns() {
+        String dbColumn = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sortAttr);
+        return dbColumn;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PagePublicityEventDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PagePublicityEventDTO.java
new file mode 100644
index 0000000..66a8e4d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PagePublicityEventDTO.java
@@ -0,0 +1,197 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.Date;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.google.common.base.CaseFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 分页查询表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("查询宣传教育事件请求参数")
+public class PagePublicityEventDTO {
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格ID", hidden = false, example = "1", required = true)
+    @NotNull(message = "网格ID不能为空")
+    private Long gridId;
+
+    @Max(value = 8, message = "事件处理状态参数错误")
+    @ApiModelProperty(value = "事件处理状态(为空时查询全部):1 已发布、5 草稿箱、6已撤销", hidden = false, example = "1")
+    private Integer eventDealStatus;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "排序字段, 默认createAt", example = "createAt")
+    private String sortAttr = "createAt";
+
+    @ApiModelProperty(value = "排序方式: asc/desc(默认)", example = "desc")
+    @Pattern(regexp = "asc|desc|ASC|DESC", message = "排序方式参数错误")
+    private String sortType = "desc";
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "id", hidden = false, example = "1")
+    private Long id;
+    @Length(max = 20)
+    @ApiModelProperty(value = "服务单号", hidden = false, example = "")
+    private String orderSn;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "1、办件事件2是宣传事件3是阅读事件", hidden = false, example = "1")
+    private Long eventCategory;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格员所处的街道", hidden = false, example = "1")
+    private Long gridMemberStreet;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格员所处社区", hidden = false, example = "1")
+    private Long gridMemberCommunity;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "网格员", hidden = false, example = "1")
+    private Long gridMemberId;
+    @Length(max = 100)
+    @ApiModelProperty(value = "网格员名字", hidden = false, example = "")
+    private String gridMemberName;
+    @Length(max = 20)
+    @ApiModelProperty(value = "网格员联系方式", hidden = false, example = "")
+    private String gridMemberTelephone;
+    @Length(max = 255)
+    @ApiModelProperty(value = "事件标题", hidden = false, example = "")
+    private String eventTitle;
+    @Length(max = 255)
+    @ApiModelProperty(value = "宣传类型", hidden = false, example = "1")
+    private String propagandaType;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "宣传时间-开始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date propagandaTimeBegin;
+    @ApiModelProperty(value = "宣传时间-结束时间", hidden = false, example = "2021-05-01 18:05:50")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date propagandaTimeEnd;
+    @Length(max = 500)
+    @ApiModelProperty(value = "事件描述", hidden = false, example = "")
+    private String eventDes;
+    @Length(max = 50)
+    @ApiModelProperty(value = "宣传对象", hidden = false, example = "")
+    private String propagandaObject;
+    @Length(max = 8)
+    @ApiModelProperty(value = "宣传人数", hidden = false, example = "")
+    private String propagandaNum;
+    @Max(127)
+    @ApiModelProperty(value = "社区处理(0是无需社区1是社区处理)", hidden = false, example = "1")
+    private Integer communityProcess;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "发生时间-开始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date happenTimeBegin;
+    @ApiModelProperty(value = "发生时间-结束时间", hidden = false, example = "2021-05-01 18:05:50")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date happenTimeEnd;
+    @Length(max = 255)
+    @ApiModelProperty(value = "发生地点", hidden = false, example = "")
+    private String happentAddress;
+    @Length(max = 255)
+    @ApiModelProperty(value = "发生的精度纬度信息(逗号隔开)", hidden = false, example = "")
+    private String happentLatLng;
+    @Max(127)
+    @ApiModelProperty(value = "事件状态(1草稿箱2发布3逻辑删除4、撤销)", hidden = false, example = "1")
+    private Integer eventStatus;
+    @Max(127)
+    @ApiModelProperty(value = "1待处理2已解决3待验证", hidden = false, example = "1")
+    private Integer eventProcessStatus;
+    @Max(127)
+    @ApiModelProperty(value = "当前处理对象类型(1、网格员2、社区3、是街道)", hidden = false, example = "1")
+    private Integer processType;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "处理人ID", hidden = false, example = "1")
+    private Long processUserId;
+    @Length(max = 100)
+    @ApiModelProperty(value = "处理人名称", hidden = false, example = "")
+    private String processUserName;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "处理时间-开始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date processDateBegin;
+    @ApiModelProperty(value = "处理时间-结束时间", hidden = false, example = "2021-05-01 18:05:50")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date processDateEnd;
+    @Length(max = 255)
+    @ApiModelProperty(value = "解决人针对解决事件的处理描述", hidden = false, example = "")
+    private String processDesc;
+    @Length(max = 255)
+    @ApiModelProperty(value = "事件来源", hidden = false, example = "")
+    private String eventResource;
+    @Max(127)
+    @ApiModelProperty(value = "危险级别", hidden = false, example = "1")
+    private Integer dangerLevel;
+    @ApiModelProperty(value = "红牌", hidden = false, example = "true")
+    private Boolean redCard;
+    @ApiModelProperty(value = "黄牌", hidden = false, example = "true")
+    private Boolean yellowCard;
+    @ApiModelProperty(value = "是否有效", hidden = false, example = "true")
+    private Boolean invalid;
+    @ApiModelProperty(value = "是否重大", hidden = false, example = "true")
+    private Boolean major;
+    @Max(9999999999L)
+    @ApiModelProperty(value = "死亡人数", hidden = false, example = "1")
+    private Integer deathsNumber;
+    @Max(9999999999L)
+    @ApiModelProperty(value = "受伤人数", hidden = false, example = "1")
+    private Integer injuriesNumber;
+    @ApiModelProperty(value = "是否疑难事件", hidden = false, example = "true")
+    private Boolean difficult;
+    @ApiModelProperty(value = "是否紧急", hidden = false, example = "true")
+    private Boolean urgent;
+    @ApiModelProperty(value = "是否催办", hidden = false, example = "true")
+    private Boolean urgentDell;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "上报提交时间-开始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date submitDateBegin;
+    @ApiModelProperty(value = "上报提交时间-结束时间", hidden = false, example = "2021-05-01 18:05:50")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date submitDateEnd;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "创建人", hidden = false, example = "1")
+    private Long createBy;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间-开始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date createAtBegin;
+    @ApiModelProperty(value = "创建时间-结束时间", hidden = false, example = "2021-05-01 18:05:50")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAtEnd;
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "修改人", hidden = false, example = "1")
+    private Long updateBy;
+    @ApiModelProperty(value = "撤销类型 1 网格员 2 社区", hidden = true, example = "1")
+    private Integer revokeType;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "修改时间-开始时间", hidden = false, example = "2021-05-01 18:05:50")
+    private Date updateAtBegin;
+    @ApiModelProperty(value = "修改时间-结束时间", hidden = false, example = "2021-05-01 18:05:50")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAtEnd;
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+    @ApiModelProperty(value = "社区ID", hidden = true, example = "1")
+    private Long communityId;
+
+    public String getSortColumns() {
+        String dbColumn = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sortAttr);
+        return dbColumn;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PublicityEventAddDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PublicityEventAddDTO.java
new file mode 100644
index 0000000..85ee345
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PublicityEventAddDTO.java
@@ -0,0 +1,112 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.Date;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+
+import org.hibernate.validator.constraints.Length;
+import org.hibernate.validator.constraints.URL;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 创建表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("宣传教育事件请求参数")
+public class PublicityEventAddDTO {
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "宣传时间", hidden = false, example = "2021-05-01 18:05:50")
+    @NotNull(message = "宣传时间不能为空")
+    private Date propagandaTime;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "宣传地点-精度纬度信息(逗号隔开)", hidden = false, example = "41.40338,2.17403", required = true)
+    @NotNull(message = "宣传地点不能为空")
+    private String happentLatLng;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "发生地点-位置备注", hidden = false, example = "")
+    private String happentAddress;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "事件发生地点", hidden = false, example = "", required = true)
+    private String happenAddress;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "宣传区域-网格ID", hidden = false, example = "1", required = true)
+    @NotNull(message = "宣传区域不能为空")
+    private Long gridId;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "上报人ID", hidden = false, example = "1", required = true)
+    // @NotNull(message = "上报人不能为空")
+    private Long gridMemberId;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "宣传主题", hidden = false, example = "", required = true)
+    @NotNull(message = "宣传主题不能为空")
+    private String eventTitle;
+
+    @Length(max = 500)
+    @ApiModelProperty(value = "宣传内容", hidden = false, example = "", required = true)
+    @NotNull(message = "宣传内容不能为空")
+    private String eventDes;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "宣传类型", hidden = false, example = "1", required = true)
+    @NotNull(message = "宣传类型不能为空")
+    private String propagandaType;
+
+    @Length(max = 50)
+    @ApiModelProperty(value = "宣传对象", hidden = false, example = "", required = true)
+    @NotNull(message = "宣传对象不能为空")
+    private String propagandaObject;
+
+    @Min(1)
+    @Length(max = 8)
+    @ApiModelProperty(value = "宣传人数", hidden = false, example = "", required = true)
+    @NotNull(message = "宣传人数不能为空")
+    private String propagandaNum;
+
+    @ApiModelProperty(value = "音频(限1个)", hidden = false,
+        example = "http://image.panzhihua.nhys.cdnhxx.com/idcard/8f77d43e8bce47d38b63e2a8ceb0a7c6.mp3")
+    @URL
+    private String audio;
+
+    @ApiModelProperty(value = "音频时长(单位:秒)", hidden = false, example = "10")
+    private Integer audioTime;
+
+    @ApiModelProperty(value = "视频(限1个)", hidden = false,
+        example = "http://image.panzhihua.nhys.cdnhxx.com/idcard/8f77d43e8bce47d38b63e2a8ceb0a7c6.mp4")
+    @URL
+    private String video;
+
+    @ApiModelProperty(value = "视频时长(单位:秒)", hidden = false, example = "10")
+    private Integer videoTime;
+
+    @ApiModelProperty(value = "图片,逗号隔开(限9张)", hidden = false,
+        example = "http://image.panzhihua.nhys.cdnhxx.com/idcard/8f77d43e8bce47d38b63e2a8ceb0a7c6.jpg,http://image.panzhihua.nhys.cdnhxx.com/idcard/8f77d43e8bce47d38b63e2a8ceb0a7c6.jpg")
+    private String pics;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+    @ApiModelProperty(value = "(当前操作)用户姓名", hidden = true, example = "张三")
+    private String userName;
+    @ApiModelProperty(value = "(当前操作)用户电话", hidden = true, example = "18888888888")
+    @Length(max = 11)
+    private String phone;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PublicityEventEditDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PublicityEventEditDTO.java
new file mode 100644
index 0000000..6700f0f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/PublicityEventEditDTO.java
@@ -0,0 +1,114 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.Date;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotNull;
+
+import org.hibernate.validator.constraints.Length;
+import org.hibernate.validator.constraints.URL;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 编辑表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("宣传教育事件草稿请求参数")
+public class PublicityEventEditDTO {
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "id,如果是新增则不填", hidden = false, example = "1")
+    private Long id;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "宣传时间", hidden = false, example = "2021-05-01 18:05:50")
+    @NotNull(message = "宣传时间不能为空")
+    private Date propagandaTime;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "宣传地点-精度纬度信息(逗号隔开)", hidden = false, example = "41.40338,2.17403", required = true)
+    @NotNull(message = "宣传地点不能为空")
+    private String happentLatLng;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "发生地点-位置备注", hidden = false, example = "")
+    private String happentAddress;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "事件发生地点", hidden = false, example = "", required = true)
+    private String happenAddress;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "宣传区域-网格ID", hidden = false, example = "1", required = true)
+    @NotNull(message = "宣传区域不能为空")
+    private Long gridId;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "上报人ID", hidden = false, example = "1", required = true)
+    // @NotNull(message = "上报人不能为空")
+    private Long gridMemberId;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "宣传主题", hidden = false, example = "", required = true)
+    @NotNull(message = "宣传主题不能为空")
+    private String eventTitle;
+
+    @Length(max = 500)
+    @ApiModelProperty(value = "宣传内容", hidden = false, example = "", required = true)
+    @NotNull(message = "宣传内容不能为空")
+    private String eventDes;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "宣传类型", hidden = false, example = "1", required = true)
+    @NotNull(message = "宣传类型不能为空")
+    private String propagandaType;
+
+    @Length(max = 50)
+    @ApiModelProperty(value = "宣传对象", hidden = false, example = "", required = true)
+    @NotNull(message = "宣传对象不能为空")
+    private String propagandaObject;
+
+    @Length(max = 8)
+    @ApiModelProperty(value = "宣传人数", hidden = false, example = "", required = true)
+    @NotNull(message = "宣传人数不能为空")
+    private String propagandaNum;
+
+    @ApiModelProperty(value = "音频(限1个)", hidden = false,
+        example = "http://image.panzhihua.nhys.cdnhxx.com/idcard/8f77d43e8bce47d38b63e2a8ceb0a7c6.mp3")
+    @URL
+    private String audio;
+
+    @ApiModelProperty(value = "音频时长(单位:秒)", hidden = false, example = "10")
+    private Integer audioTime;
+
+    @ApiModelProperty(value = "视频(限1个)", hidden = false,
+        example = "http://image.panzhihua.nhys.cdnhxx.com/idcard/8f77d43e8bce47d38b63e2a8ceb0a7c6.mp4")
+    @URL
+    private String video;
+
+    @ApiModelProperty(value = "视频时长(单位:秒)", hidden = false, example = "10")
+    private Integer videoTime;
+
+    @ApiModelProperty(value = "图片,逗号隔开(限9张)", hidden = false,
+        example = "http://image.panzhihua.nhys.cdnhxx.com/idcard/8f77d43e8bce47d38b63e2a8ceb0a7c6.jpg,http://image.panzhihua.nhys.cdnhxx.com/idcard/8f77d43e8bce47d38b63e2a8ceb0a7c6.jpg")
+    private String pics;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+    @ApiModelProperty(value = "(当前操作)用户姓名", hidden = true, example = "张三")
+    private String userName;
+    @ApiModelProperty(value = "(当前操作)用户电话", hidden = true, example = "18888888888")
+    @Length(max = 11)
+    private String phone;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/SpecialEventAddDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/SpecialEventAddDTO.java
new file mode 100644
index 0000000..563df7a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/SpecialEventAddDTO.java
@@ -0,0 +1,111 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotNull;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 创建表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("特殊人群事件请求参数")
+public class SpecialEventAddDTO {
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "发生时间", hidden = false, example = "2021-05-01 18:05:50", required = true)
+    @NotNull(message = "发生时间不能为空")
+    private Date happenTime;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "发生的精度纬度信息(逗号隔开)", hidden = false, example = "41.40338,2.17403", required = true)
+    @NotNull(message = "发生的精度纬度信息不能为空")
+    private String happentLatLng;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "发生地点-位置备注", hidden = false, example = "")
+    private String happentAddress;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "发生区域-网格ID", hidden = false, example = "1", required = true)
+    @NotNull(message = "发生区域-网格ID不能为空")
+    private Long gridId;
+
+    @Length(max = 500)
+    @ApiModelProperty(value = "事件描述", hidden = false, example = "", required = true)
+    @NotNull(message = "事件描述不能为空")
+    private String eventDes;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "事件类型,逗号隔开", hidden = false, example = "邻里纠纷,土地承包租赁", required = true)
+    @NotNull(message = "事件类型不能为空")
+    private String eventClazz;
+
+    @Max(127)
+    @ApiModelProperty(value = "危险级别:0 (无) 1(特别重大)、2(重大)、3(较大)、4(一般)", hidden = false, example = "1", required = true)
+    @NotNull(message = "危险级别不能为空")
+    private Integer dangerLevel;
+
+    @Max(9999999999L)
+    @ApiModelProperty(value = "死亡人数", hidden = false, example = "1", required = true)
+    @NotNull(message = "死亡人数不能为空")
+    private Integer deathsNumber;
+
+    @Max(9999999999L)
+    @ApiModelProperty(value = "受伤人数", hidden = false, example = "1", required = true)
+    @NotNull(message = "受伤人数不能为空")
+    private Integer injuriesNumber;
+
+    @ApiModelProperty(value = "是否紧急", hidden = false, example = "true", required = true)
+    @NotNull(message = "是否紧急不能为空")
+    private Boolean urgent;
+
+    @ApiModelProperty(value = "是否重大", hidden = false, example = "true", required = true)
+    @NotNull(message = "是否重大不能为空")
+    private Boolean major;
+
+    @ApiModelProperty(value = "特殊人群", hidden = false, required = true)
+    @NotNull(message = "特殊人员信息不能为空")
+    private List<SpecialPopulationDTO> specialPopulation;
+
+    @ApiModelProperty(value = "音频(限1个)", hidden = false,
+        example = "http://image.panzhihua.nhys.cdnhxx.com/idcard/8f77d43e8bce47d38b63e2a8ceb0a7c6.mp3")
+    private String audio;
+
+    @ApiModelProperty(value = "音频时长(单位:秒)", hidden = false, example = "10")
+    private Integer audioTime;
+
+    @ApiModelProperty(value = "视频(限1个)", hidden = false,
+        example = "http://image.panzhihua.nhys.cdnhxx.com/idcard/8f77d43e8bce47d38b63e2a8ceb0a7c6.mp4")
+    private String video;
+
+    @ApiModelProperty(value = "视频时长(单位:秒)", hidden = false, example = "10")
+    private Integer videoTime;
+
+    @ApiModelProperty(value = "图片,逗号隔开(限9张)", hidden = false,
+        example = "http://image.panzhihua.nhys.cdnhxx.com/idcard/8f77d43e8bce47d38b63e2a8ceb0a7c6.jpg,http://image.panzhihua.nhys.cdnhxx.com/idcard/8f77d43e8bce47d38b63e2a8ceb0a7c6.jpg")
+    private String pics;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+    @ApiModelProperty(value = "(当前操作)用户姓名", hidden = true, example = "张三")
+    private String userName;
+    @ApiModelProperty(value = "(当前操作)用户电话", hidden = true, example = "18888888888")
+    @Length(max = 11)
+    private String phone;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/SpecialEventEditDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/SpecialEventEditDTO.java
new file mode 100644
index 0000000..93993b9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/SpecialEventEditDTO.java
@@ -0,0 +1,114 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotNull;
+
+import org.hibernate.validator.constraints.Length;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 创建表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("特殊人群事件请求参数")
+public class SpecialEventEditDTO {
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "id,如果是新增则不填", hidden = false, example = "1")
+    private Long id;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "发生时间", hidden = false, example = "2021-05-01 18:05:50", required = true)
+    @NotNull(message = "发生时间不能为空")
+    private Date happenTime;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "发生的精度纬度信息(逗号隔开)", hidden = false, example = "41.40338,2.17403", required = true)
+    @NotNull(message = "发生的精度纬度信息不能为空")
+    private String happentLatLng;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "发生地点-位置备注", hidden = false, example = "")
+    private String happentAddress;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "发生区域-网格ID", hidden = false, example = "1", required = true)
+    @NotNull(message = "发生区域-网格ID不能为空")
+    private Long gridId;
+
+    @Length(max = 500)
+    @ApiModelProperty(value = "事件描述", hidden = false, example = "", required = true)
+    @NotNull(message = "事件描述不能为空")
+    private String eventDes;
+
+    @Length(max = 255)
+    @ApiModelProperty(value = "事件类型,逗号隔开", hidden = false, example = "邻里纠纷,土地承包租赁", required = true)
+    @NotNull(message = "事件类型不能为空")
+    private String eventClazz;
+
+    @Max(127)
+    @ApiModelProperty(value = "危险级别:0 (无) 1(特别重大)、2(重大)、3(较大)、4(一般)", hidden = false, example = "1", required = true)
+    @NotNull(message = "危险级别不能为空")
+    private Integer dangerLevel;
+
+    @Max(9999999999L)
+    @ApiModelProperty(value = "死亡人数", hidden = false, example = "1", required = true)
+    @NotNull(message = "死亡人数不能为空")
+    private Integer deathsNumber;
+
+    @Max(9999999999L)
+    @ApiModelProperty(value = "受伤人数", hidden = false, example = "1", required = true)
+    @NotNull(message = "受伤人数不能为空")
+    private Integer injuriesNumber;
+
+    @ApiModelProperty(value = "是否紧急", hidden = false, example = "true", required = true)
+    @NotNull(message = "是否紧急不能为空")
+    private Boolean urgent;
+
+    @ApiModelProperty(value = "是否重大", hidden = false, example = "true", required = true)
+    @NotNull(message = "是否重大不能为空")
+    private Boolean major;
+
+    @ApiModelProperty(value = "特殊人群", hidden = false, required = true)
+    @NotNull(message = "特殊人员信息不能为空")
+    private List<SpecialPopulationDTO> specialPopulation;
+
+    @ApiModelProperty(value = "音频(限1个)", hidden = false,
+        example = "http://image.panzhihua.nhys.cdnhxx.com/idcard/8f77d43e8bce47d38b63e2a8ceb0a7c6.mp3")
+    private String audio;
+
+    @ApiModelProperty(value = "音频时长(单位:秒)", hidden = false, example = "10")
+    private Integer audioTime;
+
+    @ApiModelProperty(value = "视频(限1个)", hidden = false,
+        example = "http://image.panzhihua.nhys.cdnhxx.com/idcard/8f77d43e8bce47d38b63e2a8ceb0a7c6.mp4")
+    private String video;
+
+    @ApiModelProperty(value = "视频时长(单位:秒)", hidden = false, example = "10")
+    private Integer videoTime;
+
+    @ApiModelProperty(value = "图片,逗号隔开(限9张)", hidden = false,
+        example = "http://image.panzhihua.nhys.cdnhxx.com/idcard/8f77d43e8bce47d38b63e2a8ceb0a7c6.jpg,http://image.panzhihua.nhys.cdnhxx.com/idcard/8f77d43e8bce47d38b63e2a8ceb0a7c6.jpg")
+    private String pics;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+    @ApiModelProperty(value = "(当前操作)用户姓名", hidden = true, example = "张三")
+    private String userName;
+    @ApiModelProperty(value = "(当前操作)用户电话", hidden = true, example = "18888888888")
+    @Length(max = 11)
+    private String phone;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/SpecialPopulationDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/SpecialPopulationDTO.java
new file mode 100644
index 0000000..3e14d6b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/SpecialPopulationDTO.java
@@ -0,0 +1,26 @@
+package com.panzhihua.common.model.dtos.grid;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @ClasssName SpecialPopulationDTO
+ * @Description TODO
+ * @Author cedoo
+ * @Date 2021/5/28
+ * @Version 1.0
+ **/
+@Data
+@ApiModel("特殊人员信息")
+public class SpecialPopulationDTO {
+    @ApiModelProperty(value = "身份证", hidden = false, required = true)
+    @NotNull(message = "身份证不能为空")
+    private String idCard;
+    @ApiModelProperty(value = "姓名", hidden = false, required = true)
+    @NotNull(message = "姓名不能为空")
+    private String name;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngPopulationExportDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngPopulationExportDTO.java
new file mode 100644
index 0000000..be2f3db
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngPopulationExportDTO.java
@@ -0,0 +1,55 @@
+package com.panzhihua.common.model.dtos.grid.admin;
+
+import java.util.List;
+
+import javax.validation.constraints.Max;
+
+import org.hibernate.validator.constraints.Length;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 居民列表-请求参数
+ *
+ * @author lyq
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("居民列表-请求参数")
+public class ComMngPopulationExportDTO {
+
+    @ApiModelProperty(value = "走访状态(1待走访2已走访3待验证5已撤销)")
+    private Integer eventStatus;
+
+    @Length(max = 100)
+    @ApiModelProperty(value = "人员标签", hidden = false, example = "")
+    private String label;
+
+    @Max(127)
+    @ApiModelProperty(value = "性别 1.男 2.女", hidden = false, example = "1")
+    private Integer sex;
+
+    @Max(10)
+    @ApiModelProperty("政治面貌(1.中共党员2.中共预备党员3.共青团员4.民革党员5.民盟盟员6.民建会员7.8.农工党党员9.致公党党员10.九三学社社员11.台盟盟员12.无党派人士13.群众)")
+    private Integer politicalOutlook;
+
+    @Max(2)
+    @ApiModelProperty("关联实有房屋(1.是 2.否)")
+    private Integer isHouse;
+
+    @Length(max = 100)
+    @ApiModelProperty(value = "关键词", hidden = false, example = "")
+    private String keyWord;
+
+    @ApiModelProperty(value = "人口id集合")
+    private List<Long> populationIds;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "社区id", hidden = true, example = "1")
+    private Long communityId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngPopulationListDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngPopulationListDTO.java
new file mode 100644
index 0000000..3520e6f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngPopulationListDTO.java
@@ -0,0 +1,62 @@
+package com.panzhihua.common.model.dtos.grid.admin;
+
+import javax.validation.constraints.Max;
+
+import org.hibernate.validator.constraints.Length;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 居民列表-请求参数
+ *
+ * @author lyq
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("居民列表-请求参数")
+public class ComMngPopulationListDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "走访状态(1待走访2已走访3待验证5已撤销)")
+    private Integer eventStatus;
+
+    @Length(max = 100)
+    @ApiModelProperty(value = "人员标签", hidden = false, example = "")
+    private String label;
+
+    @Max(127)
+    @ApiModelProperty(value = "性别 1.男 2.女", hidden = false, example = "1")
+    private Integer sex;
+
+    @Max(10)
+    @ApiModelProperty("政治面貌(1.中共党员2.中共预备党员3.共青团员4.民革党员5.民盟盟员6.民建会员7.8.农工党党员9.致公党党员10.九三学社社员11.台盟盟员12.无党派人士13.群众)")
+    private Integer politicalOutlook;
+
+    @Max(2)
+    @ApiModelProperty("关联实有房屋(1.是 2.否)")
+    private Integer isHouse;
+
+    @Length(max = 100)
+    @ApiModelProperty(value = "关键词", hidden = false, example = "")
+    private String keyWord;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "社区id", hidden = true, example = "1")
+    private Long communityId;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+    @ApiModelProperty(value = "身份证号码", hidden = true, example = "1")
+    private String cardNo;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngPopulationRelationHouseDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngPopulationRelationHouseDTO.java
new file mode 100644
index 0000000..c3c725b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngPopulationRelationHouseDTO.java
@@ -0,0 +1,27 @@
+package com.panzhihua.common.model.dtos.grid.admin;
+
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 居民关联房屋-请求参数
+ *
+ * @author lyq
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("居民关联房屋-请求参数")
+public class ComMngPopulationRelationHouseDTO {
+
+    @ApiModelProperty(value = "居民id集合", required = true)
+    private List<Long> populationId;
+
+    @ApiModelProperty(value = "房屋id", required = true)
+    private Long houseId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngPopulationSubordinateDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngPopulationSubordinateDTO.java
new file mode 100644
index 0000000..b63c62d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngPopulationSubordinateDTO.java
@@ -0,0 +1,28 @@
+package com.panzhihua.common.model.dtos.grid.admin;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 居民列表筛选下级-请求参数
+ *
+ * @author lyq
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("居民列表筛选下级-请求参数")
+public class ComMngPopulationSubordinateDTO {
+
+    @ApiModelProperty(value = "1.楼栋 2.单元 3.门牌号", required = true)
+    private Integer type;
+
+    @ApiModelProperty(value = "小区id", required = true)
+    private Long villageId;
+
+    @ApiModelProperty(value = "房屋id")
+    private Long houseId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngVillageListExportAdminDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngVillageListExportAdminDTO.java
new file mode 100644
index 0000000..d42efbc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/ComMngVillageListExportAdminDTO.java
@@ -0,0 +1,68 @@
+package com.panzhihua.common.model.dtos.grid.admin;
+
+import java.util.List;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Pattern;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 小区列表导出-请求参数
+ *
+ * @author lyq
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("小区列表-请求参数")
+public class ComMngVillageListExportAdminDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "小区名称")
+    private String name;
+
+    @Max(9223372036854775807L)
+    @ApiModelProperty(value = "社区id", hidden = true, example = "1")
+    private Long communityId;
+
+    @ApiModelProperty(value = "(当前操作)用户ID", hidden = true, example = "1")
+    private Long userId;
+
+    @ApiModelProperty(value = "排序字段, 默认 创建时间:createAt(在住居民数:userSum,楼栋数:buildSum,总户数:houseNum,户籍人口:registerNum)",
+        example = "createAt")
+    private String sortAttr = "createAt";
+
+    @ApiModelProperty(value = "排序方式: asc/desc(默认)", example = "desc")
+    @Pattern(regexp = "asc|desc|ASC|DESC")
+    private String sortType = "desc";
+
+    @ApiModelProperty(value = "街路巷")
+    private String alley;
+
+    @ApiModelProperty(value = "门牌号")
+    private String houseNum;
+
+    @ApiModelProperty(value = "小区组")
+    private String groupAt;
+
+    @ApiModelProperty(value = "小区地址")
+    private String address;
+
+    @ApiModelProperty(value = "小区id集合")
+    private List<Long> villageIds;
+
+    public String getSortColumns() {
+        // String dbColumn = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sortAttr);
+        return sortAttr;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/EventGridMemberCascadeAddDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/EventGridMemberCascadeAddDTO.java
new file mode 100644
index 0000000..1a2349d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/EventGridMemberCascadeAddDTO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.dtos.grid.admin;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 添加网格员级联请求参数
+ *
+ * @author lyq
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("添加网格员级联请求参数")
+public class EventGridMemberCascadeAddDTO {
+
+    @ApiModelProperty(value = "类型(1.社区 2.小区 3.楼栋)")
+    private Integer type;
+
+    @ApiModelProperty(value = "上级id")
+    private Long superiorId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/LcGridMemberDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/LcGridMemberDTO.java
new file mode 100644
index 0000000..0234c26
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/LcGridMemberDTO.java
@@ -0,0 +1,28 @@
+package com.panzhihua.common.model.dtos.grid.admin;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 创建表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("修改网格员状态请求参数")
+public class LcGridMemberDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "工号或者名字", example = "")
+    private String param;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/PageComMngVillagePopulationDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/PageComMngVillagePopulationDTO.java
new file mode 100644
index 0000000..96a8da7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/PageComMngVillagePopulationDTO.java
@@ -0,0 +1,34 @@
+package com.panzhihua.common.model.dtos.grid.admin;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 分页查询表单
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("查询人员列表请求参数")
+public class PageComMngVillagePopulationDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "小区id", required = true)
+    private Long villageId;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+    @ApiModelProperty(value = "人员标签")
+    private String label;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/PageComMngVillagePopulationHouseDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/PageComMngVillagePopulationHouseDTO.java
new file mode 100644
index 0000000..8350e76
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/grid/admin/PageComMngVillagePopulationHouseDTO.java
@@ -0,0 +1,28 @@
+package com.panzhihua.common.model.dtos.grid.admin;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 查询人员房屋列表请求参数
+ *
+ * @author lyq
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("查询人员房屋列表请求参数")
+public class PageComMngVillagePopulationHouseDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "居民id", required = true)
+    private Long populationId;
+
+}
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
new file mode 100644
index 0000000..e9c8fad
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/AddComActNeighborCircleAppDTO.java
@@ -0,0 +1,64 @@
+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 AddComActNeighborCircleAppDTO {
+
+    @ApiModelProperty("邻里圈内容")
+    private String releaseContent;
+
+    @ApiModelProperty("邻里圈图片url")
+    private String releaseImages;
+
+    @ApiModelProperty("邻里圈话题id")
+    private Long topicId;
+
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "发布人电话", hidden = true)
+    private String phone;
+
+    @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("使用类型(1.邻里圈 2.问题清单 3.需求清单)")
+    private Integer belongType;
+
+    @ApiModelProperty("预计服务时长")
+    private String targetServiceTime;
+
+    private String topicName;
+
+    /**
+     * 使用类型(1.邻里圈 2.问题清单 3.需求清单)
+     */
+    public interface BelongType{
+        int LLQ = 1;
+        int WTQD = 2;
+        int XQQD = 3;
+    }
+
+    /**
+     * 是否需要审核(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/AddNeighborCircleTopicAdminDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/AddNeighborCircleTopicAdminDTO.java
new file mode 100644
index 0000000..94fc13a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/AddNeighborCircleTopicAdminDTO.java
@@ -0,0 +1,48 @@
+package com.panzhihua.common.model.dtos.neighbor;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @describe 邻里圈话题列表请求参数
+ */
+@Data
+@ApiModel("邻里圈话题列表请求参数")
+public class AddNeighborCircleTopicAdminDTO {
+
+    @ApiModelProperty("话题名称")
+    private String name;
+
+    @ApiModelProperty(value = "登录用户id", hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "发布状态(1.启用 2.禁用)")
+    private Integer status;
+
+    @ApiModelProperty("话题id")
+    private Long id;
+
+    @ApiModelProperty("使用类型(1.邻里圈 2.问题清单 3.需求清单)")
+    private Integer belongType;
+
+    @ApiModelProperty("话题logo")
+    private String logo;
+
+    @ApiModelProperty("排序")
+    private Integer sort;
+
+    private Long communityId;
+
+    /**
+     * 使用类型(1.邻里圈 2.问题清单 3.需求清单)
+     */
+    public interface BelongType{
+        int LLQ = 1;
+        int WTQD = 2;
+        int XQQD = 3;
+    }
+
+}
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..869a4ea
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/AddNeighborCircleTopicAppDTO.java
@@ -0,0 +1,36 @@
+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;
+
+    @ApiModelProperty("使用类型(1.邻里圈 2.问题清单 3.需求清单)")
+    private Integer belongType;
+
+    /**
+     * 使用类型(1.邻里圈 2.问题清单 3.需求清单)
+     */
+    public interface BelongType{
+        int LLQ = 1;
+        int WTQD = 2;
+        int XQQD = 3;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborAddBrowseAppDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborAddBrowseAppDTO.java
new file mode 100644
index 0000000..c1884b1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborAddBrowseAppDTO.java
@@ -0,0 +1,21 @@
+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 ComActNeighborAddBrowseAppDTO {
+
+    @ApiModelProperty("邻里圈id")
+    private Long circleId;
+
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+}
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
new file mode 100644
index 0000000..03f9fba
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborCircleAdminDTO.java
@@ -0,0 +1,58 @@
+package com.panzhihua.common.model.dtos.neighbor;
+
+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;
+
+/**
+ * @auther llming
+ * @describe 邻里圈请求参数
+ */
+@Data
+@ApiModel("邻里圈请求参数")
+public class ComActNeighborCircleAdminDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty("发布开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date startAt;
+
+    @ApiModelProperty("发布结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endAt;
+
+    @ApiModelProperty("议事主题")
+    private String releaseContent;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "发布状态(1.待审核 2.显示 3.隐藏 4.驳回)")
+    private Integer status;
+
+    @ApiModelProperty("话题名称")
+    private String topicName;
+
+    @ApiModelProperty("关键词")
+    private String keyWord;
+
+    @ApiModelProperty("使用类型(1.邻里圈 2.问题清单 3.需求清单)")
+    private Integer belongType;
+    @ApiModelProperty("话题id")
+    private Long topicId;
+
+    private Integer solveStatus;
+
+    @ApiModelProperty(value = "社区id集合", hidden = true)
+    private List<Long> communityIds;
+}
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
new file mode 100644
index 0000000..a215a90
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborCircleAppDTO.java
@@ -0,0 +1,72 @@
+package com.panzhihua.common.model.dtos.neighbor;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:14
+ * @describe 邻里圈请求参数
+ */
+@Data
+@ApiModel("邻里圈请求参数")
+public class ComActNeighborCircleAppDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty("邻里圈查询类型(1.热门 2.最新 3.精品)")
+    private Integer type = 1;
+
+    @ApiModelProperty("话题id")
+    private Long topicId;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+
+    @ApiModelProperty("关键词")
+    private String keyWord;
+
+    @ApiModelProperty("使用类型(1.邻里圈 2.问题清单 3.需求清单)")
+    private Integer belongType;
+
+    @ApiModelProperty(value = "处理状态 0 否 1是", example = "1")
+    private Integer solveStatus;
+
+    @ApiModelProperty(value = "接单人id", example = "1")
+    private Long solveId;
+
+    @ApiModelProperty(value = "查看求助列表 默认传1")
+    private Integer isHelp;
+
+    private String phone;
+
+    @ApiModelProperty("接单类型 1单位 2个人")
+    private Integer orderType;
+    @ApiModelProperty("清单状态")
+    private Integer status;
+
+    @ApiModelProperty(value = "单位id", hidden = true)
+    private Long checkUnitId;
+
+    @ApiModelProperty(value = "社区id集合", hidden = true)
+    private List<Long> communityIds;
+    /**
+     * 使用类型(1.邻里圈 2.问题清单 3.需求清单)
+     */
+    public interface BelongType{
+        int LLQ = 1;
+        int WTQD = 2;
+        int XQQD = 3;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborCircleDetailAppDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborCircleDetailAppDTO.java
new file mode 100644
index 0000000..910620b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborCircleDetailAppDTO.java
@@ -0,0 +1,31 @@
+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 ComActNeighborCircleDetailAppDTO {
+
+    @ApiModelProperty("邻里圈id")
+    private Long circleId;
+
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "评论分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "评论分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "评论排序方式(1.倒序 2.顺序)", example = "10")
+    private Integer order = 1;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborCircleTopicAdminDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborCircleTopicAdminDTO.java
new file mode 100644
index 0000000..59fbf28
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborCircleTopicAdminDTO.java
@@ -0,0 +1,40 @@
+package com.panzhihua.common.model.dtos.neighbor;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @describe 邻里圈话题列表请求参数
+ */
+@Data
+@ApiModel("邻里圈话题列表请求参数")
+public class ComActNeighborCircleTopicAdminDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty("话题名称")
+    private String name;
+
+    @ApiModelProperty("使用类型(1.邻里圈 2.问题清单 3.需求清单)")
+    private Integer belongType;
+
+    private Long communityId;
+
+    @ApiModelProperty(value = "发布状态(1.启用 2.禁用)")
+    private Integer status;
+    /**
+     * 使用类型(1.邻里圈 2.问题清单 3.需求清单)
+     */
+    public interface BelongType{
+        int LLQ = 1;
+        int WTQD = 2;
+        int XQQD = 3;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborCommentAppDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborCommentAppDTO.java
new file mode 100644
index 0000000..a06ecd4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborCommentAppDTO.java
@@ -0,0 +1,29 @@
+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 ComActNeighborCommentAppDTO {
+
+    @ApiModelProperty("邻里圈id")
+    private Long circleId;
+
+    @ApiModelProperty("邻里圈评论内容")
+    private String content;
+
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "用户手机号", hidden = true)
+    private String phone;
+
+    private String accessToken;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborCommentReplyAppDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborCommentReplyAppDTO.java
new file mode 100644
index 0000000..6b5a144
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborCommentReplyAppDTO.java
@@ -0,0 +1,27 @@
+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 ComActNeighborCommentReplyAppDTO {
+
+    @ApiModelProperty("评论id")
+    private Long commentId;
+
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+
+    @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/neighbor/ComActNeighborFabulousAppDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborFabulousAppDTO.java
new file mode 100644
index 0000000..f1b7269
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborFabulousAppDTO.java
@@ -0,0 +1,33 @@
+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 ComActNeighborFabulousAppDTO {
+
+    @ApiModelProperty("邻里圈点赞类型(1.邻里圈 2.评论 3.回复)")
+    private Integer type = 1;
+
+    @ApiModelProperty("邻里圈点赞业务id")
+    private Long serviceId;
+
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+
+    /**
+     * 邻里圈点赞类型(1.邻里圈 2.评论 3.回复)
+     */
+    public interface type {
+        int llq = 1;
+        int pl = 2;
+        int hf = 3;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborForwardAppDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborForwardAppDTO.java
new file mode 100644
index 0000000..8517cfe
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborForwardAppDTO.java
@@ -0,0 +1,21 @@
+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 ComActNeighborForwardAppDTO {
+
+    @ApiModelProperty("邻里圈id")
+    private Long circleId;
+
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborReplyAppDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborReplyAppDTO.java
new file mode 100644
index 0000000..01c8c30
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ComActNeighborReplyAppDTO.java
@@ -0,0 +1,41 @@
+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 ComActNeighborReplyAppDTO {
+
+    @ApiModelProperty("邻里圈id")
+    private Long circleId;
+
+    @ApiModelProperty("回复类型(1.评论  2.回复)")
+    private Integer type;
+
+    @ApiModelProperty("业务id(当type为1时,这里是评论的id,当type=2时,这里是回复的id)")
+    private Long serviceId;
+
+    @ApiModelProperty("邻里圈回复内容")
+    private String content;
+
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "用户手机号", hidden = true)
+    private String phone;
+
+    /**
+     * 回复类型(1.评论 2.回复)
+     */
+    public interface type {
+        int pl = 1;
+        int hf = 2;
+    }
+}
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/dtos/neighbor/DetailNeighborAllCommentByAdminDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/DetailNeighborAllCommentByAdminDTO.java
new file mode 100644
index 0000000..83cbe79
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/DetailNeighborAllCommentByAdminDTO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.dtos.neighbor;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther llming
+ * @describe
+ */
+@Data
+@ApiModel("邻里圈查看详情的评论列表")
+public class DetailNeighborAllCommentByAdminDTO {
+    @ApiModelProperty(value = "邻里圈id")
+    @NotNull(message = "邻里圈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/neighbor/DetailNeighborCommentReplyByAdminDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/DetailNeighborCommentReplyByAdminDTO.java
new file mode 100644
index 0000000..37b970c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/DetailNeighborCommentReplyByAdminDTO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.dtos.neighbor;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther llming
+ * @describe
+ */
+@Data
+@ApiModel("评论回复列表")
+public class DetailNeighborCommentReplyByAdminDTO {
+    @ApiModelProperty(value = "评论id")
+    @NotNull(message = "评论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/neighbor/ServiceStaticBackstageDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ServiceStaticBackstageDTO.java
new file mode 100644
index 0000000..14cc231
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ServiceStaticBackstageDTO.java
@@ -0,0 +1,22 @@
+package com.panzhihua.common.model.dtos.neighbor;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("社区后台双争统计传参")
+public class ServiceStaticBackstageDTO {
+    @ApiModelProperty("年份")
+    private String year;
+    @ApiModelProperty("单位归属")
+    private String beLongTo;
+    @ApiModelProperty("排序方式 1服务次数 2服务时长")
+    private Integer orderBy;
+    @ApiModelProperty("页数")
+    private Integer pageNum;
+    @ApiModelProperty("页数")
+    private Integer pageSize;
+    @ApiModelProperty("查询类型 1报道单位统计 2报道党员统计")
+    private Integer type;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ServiceStaticDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ServiceStaticDTO.java
new file mode 100644
index 0000000..2c50a22
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/neighbor/ServiceStaticDTO.java
@@ -0,0 +1,21 @@
+package com.panzhihua.common.model.dtos.neighbor;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel("服务统计参数")
+public class ServiceStaticDTO {
+    @ApiModelProperty("单位id")
+    private Long checkUnitId;
+    @ApiModelProperty("手机号")
+    private String phone;
+    @ApiModelProperty("年份")
+    private String year;
+    @ApiModelProperty("服务方式(1.承接清单 2.单位参与社区活动 3.报到服务活动 4.党员参与社区活动)")
+    private Integer serviceType;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/ActivitySignUpDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/ActivitySignUpDTO.java
new file mode 100644
index 0000000..8f02914
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/ActivitySignUpDTO.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.dtos.partybuilding;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 报名、取消报名党建活动
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-30 10:04
+ **/
+@Data
+@ApiModel("报名、取消报名党建活动")
+public class ActivitySignUpDTO {
+
+    @ApiModelProperty(value = "党建活动id", example = "3", required = true)
+    @Min(value = 1, message = "党建活动不能为空")
+    @NotNull(message = "党建活动不能为空")
+    private Long id;
+
+    @ApiModelProperty(value = "操作类型 0取消报名 1 报名", example = "1", required = true)
+    @Min(value = 0, message = "操作类型不能为空")
+    @NotNull(message = "操作类型不能为空")
+    private Integer type;
+
+    @ApiModelProperty(value = "登录用户id", hidden = true)
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/AllData.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/AllData.java
new file mode 100644
index 0000000..11adb5a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/AllData.java
@@ -0,0 +1,38 @@
+package com.panzhihua.common.model.dtos.partybuilding;
+
+import com.panzhihua.common.model.vos.partybuilding.PhotoMicroWishData;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Data
+public class AllData
+{
+    @ApiModelProperty(value = "议事投票数量")
+    int discussNum=0;
+
+    @ApiModelProperty(value = "问卷调查数量")
+    int questnaireNum=0;
+
+    @ApiModelProperty(value = "社区动态数量")
+    int nommunityDynNum=0;
+
+    @ApiModelProperty(value = "社区活动数量")
+    int nommunityActNum=0;
+
+    //议事投票
+    @ApiModelProperty(value = "议事投票")
+    List<PhotoMicroWishData> discussList;
+    //问卷调查
+    @ApiModelProperty(value = "问卷调查")
+    List<PhotoMicroWishData> questnaireNumList;
+    //社区动态
+    @ApiModelProperty(value = "社区动态")
+    List<PhotoMicroWishData> nommunityDynNumList;
+    //社区活动
+    @ApiModelProperty(value = "社区活动")
+    List<PhotoMicroWishData> nommunityActNumList;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/ComActDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/ComActDTO.java
new file mode 100644
index 0000000..57d0af3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/ComActDTO.java
@@ -0,0 +1,143 @@
+package com.panzhihua.common.model.dtos.partybuilding;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 社区表
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 14:12
+ **/
+@Data
+public class ComActDTO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * community_id
+     */
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+    /**
+     * 社区名字
+     */
+    @ApiModelProperty(value = "社区名字")
+    private String name;
+
+    /**
+     * 社区地址
+     */
+    @ApiModelProperty(value = "社区地址")
+    private String address;
+
+    /**
+     * 经度
+     */
+    @ApiModelProperty(value = "经度")
+    private String lng;
+
+    /**
+     * 维度
+     */
+    @ApiModelProperty(value = "维度")
+    private String lat;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    /**
+     * 省份地址编码
+     */
+    @ApiModelProperty(value = "省份地址编码")
+    private String provinceCode;
+
+    /**
+     * 市级地址编码
+     */
+    @ApiModelProperty(value = "经度")
+    private String cityCode;
+
+    /**
+     * 区级地址编码
+     */
+    @ApiModelProperty(value = "区级地址编码")
+    private String areaCode;
+
+    /**
+     * 社区面积
+     */
+    @ApiModelProperty(value = "社区面积")
+    private String square;
+
+    /**
+     * 联系人
+     */
+    @ApiModelProperty(value = "联系人")
+    private String contacts;
+
+    /**
+     * 联系人电话
+     */
+    @ApiModelProperty(value = "联系人电话")
+    private String contactsPhone;
+
+    /** 社区总人口 */
+    @ApiModelProperty(value = "社区总人口")
+    private String totalUser;
+    /** 社区书记-用户ID */
+    @ApiModelProperty(value = "社区书记-用户ID")
+    private String managerId;
+    /** 社区书记_名称 */
+    @ApiModelProperty(value = "社区书记_名称")
+    private String managerName;
+    /** 社区介绍 */
+    @ApiModelProperty(value = "社区介绍")
+    private String introduce;
+    /** 层次递归字段(省>市>区县>街道>社区) */
+    @ApiModelProperty(value = "层次递归字段(省>市>区县>街道>社区)")
+    private String path;
+    /**
+     * 超管账号
+     */
+    @ApiModelProperty(value = "超管账号")
+    private String account;
+
+    /**
+     * 账号密码
+     */
+    @ApiModelProperty(value = "账号密码")
+    private String password;
+
+    /**
+     * 状态 0 启用 1 禁用
+     */
+    @ApiModelProperty(value = "状态 0 启用 1 禁用")
+    private String state;
+
+    /**
+     * 街道ID
+     */
+    @ApiModelProperty(value = "街道ID")
+    private String streetId;
+
+    /**
+     * 明文密码
+     */
+    @ApiModelProperty(value = "明文密码")
+    private String plaintextPassword;
+
+
+    @ApiModelProperty(value = "经度")
+    private String appId;
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/ComDataStatisticsOrgDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/ComDataStatisticsOrgDto.java
new file mode 100644
index 0000000..db05ddc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/ComDataStatisticsOrgDto.java
@@ -0,0 +1,38 @@
+package com.panzhihua.common.model.dtos.partybuilding;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * 查询党建数据统计请求参数
+ */
+@Data
+@ApiModel("查询党建数据统计请求参数")
+public class ComDataStatisticsOrgDto {
+
+    @ApiModelProperty(value = "党员列表分页参数-当前页数")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "党员列表分页参数-每页记录数")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "党组织id",required = true)
+    private Long orgId;
+
+    @ApiModelProperty(value = "查询年份",required = true)
+    private Integer year;
+
+    @ApiModelProperty(value = "查询开始时间",hidden = true)
+    private String startTime;
+
+    @ApiModelProperty(value = "查询结束时间",hidden = true)
+    private String endTime;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "区域编码",hidden = true)
+    private String areaCode;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/ComListPartyDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/ComListPartyDTO.java
new file mode 100644
index 0000000..1fda6a1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/ComListPartyDTO.java
@@ -0,0 +1,22 @@
+package com.panzhihua.common.model.dtos.partybuilding;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 查询党组织列表请求参数
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-21 18:05
+ **/
+@Data
+@ApiModel("查询党组织列表请求参数")
+public class ComListPartyDTO {
+
+    @ApiModelProperty("姓名")
+    private String name;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/ComPbActivityDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/ComPbActivityDTO.java
new file mode 100644
index 0000000..8ec1330
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/ComPbActivityDTO.java
@@ -0,0 +1,89 @@
+package com.panzhihua.common.model.dtos.partybuilding;
+
+import java.util.Date;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党员活动
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-22 10:43
+ **/
+@Data
+@ApiModel("党员活动-小程序新增")
+public class ComPbActivityDTO {
+    @ApiModelProperty("id")
+    private Long id;
+
+    @ApiModelProperty(value = "活动名称", required = true)
+    @NotBlank(groups = {AddGroup.class}, message = "活动名称不能为空")
+    private String name;
+
+    @ApiModelProperty(value = "活动地点", required = true)
+    @NotBlank(groups = {AddGroup.class}, message = "活动地点不能为空")
+    private String address;
+
+    @ApiModelProperty(value = "活动最高参入人数", required = true)
+    @Min(value = 1, groups = {AddGroup.class}, message = "活动最高参入人数不能为空")
+    private Integer participationNum;
+
+    @ApiModelProperty(value = "活动最低参入人数-未达到到时间自动取消", required = true)
+    @Min(value = 0, groups = {AddGroup.class}, message = "活动最低参入人数不能为空")
+    private Integer participationLowestNum;
+
+    @ApiModelProperty(value = "活动封面", required = true)
+    @NotBlank(groups = {AddGroup.class}, message = "活动封面不能为空")
+    private String cover;
+
+    @ApiModelProperty(value = "活动内容-富文本", required = true)
+    @NotBlank(groups = {AddGroup.class}, message = "活动内容不能为空")
+    private String richText;
+
+    @ApiModelProperty("1 待发布 2 未开始 3 报名中 4 进行中 5 已结束 6 已取消")
+    private Integer status;
+
+    @ApiModelProperty("创建时间")
+    private Date createAt;
+
+    @ApiModelProperty(value = "活动开始时间", required = true, example = "2020-01-02 08:00:00")
+    @NotNull(groups = {AddGroup.class}, message = "活动开始时间不能为空")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date activityTimeBegin;
+
+    @ApiModelProperty(value = "活动结束时间", required = true, example = "2020-01-02 08:00:00")
+    @NotNull(groups = {AddGroup.class}, message = "活动结束时间不能为空")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date activityTimeEnd;
+
+    @ApiModelProperty(value = "报名开始时间", required = true, example = "2020-01-02 08:00:00")
+    @NotNull(groups = {AddGroup.class}, message = "报名开始时间不能为空")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date enrollTimeBegin;
+
+    @ApiModelProperty(value = "报名结束时间", required = true, example = "2020-01-02 08:00:00")
+    @NotNull(groups = {AddGroup.class}, message = "报名结束时间不能为空")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date enrollTimeEnd;
+
+    @ApiModelProperty("取消原因")
+    private String cancelReason;
+
+    @ApiModelProperty("发布人主键")
+    private Long createBy;
+
+    @ApiModelProperty("发布时间")
+    private Date releaseTime;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/ComPbCheckUserDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/ComPbCheckUserDTO.java
new file mode 100644
index 0000000..bb3cc7a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/ComPbCheckUserDTO.java
@@ -0,0 +1,13 @@
+package com.panzhihua.common.model.dtos.partybuilding;
+
+import lombok.Data;
+
+/**
+ * @author zzj
+ */
+@Data
+public class ComPbCheckUserDTO {
+    private String account;
+    private String password;
+    private Long checkUnitId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/ComPbServiceTeamDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/ComPbServiceTeamDTO.java
new file mode 100644
index 0000000..af2eab5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/ComPbServiceTeamDTO.java
@@ -0,0 +1,67 @@
+package com.panzhihua.common.model.dtos.partybuilding;
+
+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 lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 服务团队新增
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-21 17:42
+ **/
+@Data
+@ApiModel("服务团队")
+public class ComPbServiceTeamDTO {
+
+    @ApiModelProperty("id")
+    private Long id;
+
+    @ApiModelProperty("姓名")
+    @NotBlank(groups = AddGroup.class, message = "姓名不能为空")
+    private String name;
+
+    @ApiModelProperty("职位")
+    @NotBlank(groups = AddGroup.class, message = "职位不能为空")
+    private String job;
+
+    @ApiModelProperty("职位2")
+    private String jobTwo;
+
+    @ApiModelProperty("岗位职责")
+    @NotBlank(groups = AddGroup.class, message = "岗位职责不能为空")
+    private String jobResponsibilities;
+
+    @ApiModelProperty("照片")
+    @NotBlank(groups = AddGroup.class, message = "照片不能为空")
+    private String url;
+
+    @ApiModelProperty("电话")
+    @NotBlank(groups = AddGroup.class, message = "电话不能为空")
+    private String phone;
+
+    @ApiModelProperty("create_at")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("社区id")
+    private Long communityId;
+
+    @ApiModelProperty(value = "区域编码", hidden = true)
+    private String areaCode;
+
+    @ApiModelProperty(value = "appid", hidden = true)
+    private String appid;
+
+    @ApiModelProperty("物业公司id")
+    private Long propertyId;
+    @ApiModelProperty("1是社区团队 2党员先锋")
+    private Integer type;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/DoubleRegistrationData.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/DoubleRegistrationData.java
new file mode 100644
index 0000000..8d7d974
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/DoubleRegistrationData.java
@@ -0,0 +1,40 @@
+package com.panzhihua.common.model.dtos.partybuilding;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class DoubleRegistrationData implements Serializable
+{
+    private static final long serialVersionUID = 1L;
+
+    //报道需求统计数
+    @ApiModelProperty(value = "报道需求")
+    private Integer NeedNum=0;
+
+    //报道问题
+    @ApiModelProperty(value = "报道问题")
+    private Integer ProblemNum=0;
+
+    //获取旧双报道服务时间
+    @ApiModelProperty(value = "报道服务时间")
+    private Double times=0.0;
+
+    //党建动态数据
+    @ApiModelProperty(value = "党建动态数据")
+    private Integer PartyBuildingNum=0;
+
+    //报到单位总计数据
+    @ApiModelProperty(value = "报到单位总计数据")
+    private Integer UnitNum=0;
+
+    //报到党员总计数据
+    @ApiModelProperty(value = "报到党员总计数据")
+    private Integer MemberNum=0;
+
+    @ApiModelProperty(value = "报到服务次数")
+    private Integer allNum=0;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/NeedProblemClaimDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/NeedProblemClaimDTO.java
new file mode 100644
index 0000000..76d5b3d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/NeedProblemClaimDTO.java
@@ -0,0 +1,54 @@
+package com.panzhihua.common.model.dtos.partybuilding;
+
+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 NeedProblemClaimDTO
+{
+    @ApiModelProperty("主键")
+    private String id;
+
+    @ApiModelProperty("任务id")
+    private String taskId;
+
+    @ApiModelProperty("单位id")
+    private String unitId;
+
+    @ApiModelProperty("领取人员id")
+    private String userId;
+
+    @ApiModelProperty("领取人员姓名")
+    private String userName;
+
+    @ApiModelProperty("领取人员头像")
+    private String userImage;
+
+    @ApiModelProperty("服务时间")
+    private String serviceTime;
+
+    @ApiModelProperty("打卡开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date punchStartTime;
+
+    @ApiModelProperty("打卡结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date punchEndTime;
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/NeedProblemInventoryDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/NeedProblemInventoryDTO.java
new file mode 100644
index 0000000..e0cbb44
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/NeedProblemInventoryDTO.java
@@ -0,0 +1,116 @@
+package com.panzhihua.common.model.dtos.partybuilding;
+
+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 NeedProblemInventoryDTO
+{
+    @ApiModelProperty("主键")
+    private String id;
+
+    @ApiModelProperty("标题")
+    private String title;
+
+    @ApiModelProperty("社区id")
+    private String communityId;
+
+    @ApiModelProperty("分类名称")
+    private String classifyName;
+
+    @ApiModelProperty("分类id")
+    private String classifyId;
+
+    @ApiModelProperty("认领人数限制(-1 不限制) ")
+    private String claimNum;
+
+    @ApiModelProperty("认领人数")
+    private String joinNum;
+
+    @ApiModelProperty("需求地址")
+    private String address;
+
+    @ApiModelProperty("纬度")
+    private String lat;
+
+    @ApiModelProperty("经度")
+    private String lon;
+
+    @ApiModelProperty("认领开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date claimStartTime;
+
+    @ApiModelProperty("认领结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date claimEndTime;
+
+    @ApiModelProperty("需求开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date needStartTime;
+
+    @ApiModelProperty("需求结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date needEndTime;
+
+    @ApiModelProperty("联系人")
+    private String linkman;
+
+    @ApiModelProperty("电话")
+    private String phone;
+
+    @ApiModelProperty("签到范围")
+    private String signInScope;
+
+    @ApiModelProperty("签退范围")
+    private String signOutScope;
+
+    @ApiModelProperty("奖励")
+    private String award;
+
+    @ApiModelProperty("内容")
+    private String content;
+
+    @ApiModelProperty("图片")
+    private String imgsUrl;
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    @ApiModelProperty("1问题清单  2需求清单")
+    private String kind;
+
+    @ApiModelProperty("创建人id")
+    private String userId;
+
+    @ApiModelProperty("状态 (1认领中   2进行中   3已完成)")
+    private String status;
+
+    @ApiModelProperty("是否参加任务 0未参加  1参加")
+    private String isJoin;
+
+    @ApiModelProperty("服务时长 毫秒值")
+    private String serviceTime;
+
+    @ApiModelProperty("是否显示  1显示  0隐藏  默认显示")
+    private String isDisplay;
+
+    @ApiModelProperty("开始时间打卡")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date punchStartTime;
+
+    @ApiModelProperty("结束时间打卡")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date punchEndTime;
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/NeedProblemUnitTaskDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/NeedProblemUnitTaskDTO.java
new file mode 100644
index 0000000..54ef3cb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/NeedProblemUnitTaskDTO.java
@@ -0,0 +1,103 @@
+package com.panzhihua.common.model.dtos.partybuilding;
+
+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 NeedProblemUnitTaskDTO
+{
+    @ApiModelProperty("主键")
+    private String id;
+
+    @ApiModelProperty("标题")
+    private String title;
+
+    @ApiModelProperty("社区id")
+    private String communityId;
+
+    @ApiModelProperty("分类id")
+    private String classifyId;
+
+    @ApiModelProperty("分类名称")
+    private String classifyName;
+
+    @ApiModelProperty("认领人数")
+    private String claimNum;
+
+    @ApiModelProperty("需求地址")
+    private String address;
+
+    @ApiModelProperty("纬度")
+    private String lat;
+
+    @ApiModelProperty("经度")
+    private String lon;
+
+    @ApiModelProperty("认领开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date claimStartTime;
+
+    @ApiModelProperty("认领结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date claimEndTime;
+
+    @ApiModelProperty("需求开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date needStartTime;
+
+    @ApiModelProperty("需求结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date needEndTime;
+
+    @ApiModelProperty("联系人")
+    private String linkman;
+
+    @ApiModelProperty("电话")
+    private String phone;
+
+    @ApiModelProperty("联系电话")
+    private String signInScope;
+
+    @ApiModelProperty("签到范围")
+    private String signOutScope;
+
+    @ApiModelProperty("签退范围")
+    private String award;
+
+    @ApiModelProperty("奖励")
+    private String content;
+
+    @ApiModelProperty("图片")
+    private String imgsUrl;
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    @ApiModelProperty("1问题清单  2需求清单")
+    private String kind;
+
+    @ApiModelProperty("创建人id")
+    private String userId;
+
+    @ApiModelProperty("代单位接单人")
+    private String unitUserId;
+
+    @ApiModelProperty("任务id")
+    private String taskId;
+    @ApiModelProperty("公司id")
+    private String unitId;
+
+    @ApiModelProperty("状态 (1认领中   2进行中   3已完成)")
+    private String status;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/NewFightCommunityConstructionDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/NewFightCommunityConstructionDTO.java
new file mode 100644
index 0000000..8d9b702
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/NewFightCommunityConstructionDTO.java
@@ -0,0 +1,75 @@
+package com.panzhihua.common.model.dtos.partybuilding;
+
+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 NewFightCommunityConstructionDTO
+{
+    @ApiModelProperty("主键")
+    private String id;
+
+
+    @ApiModelProperty("项目封面")
+    private String itemCover;
+
+    @ApiModelProperty("项目标题")
+    private String itemTitle;
+
+    @ApiModelProperty("协议标题")
+    private String agreementTitle;
+
+
+    @ApiModelProperty("协议内容")
+    private String agreementContent;
+
+    @ApiModelProperty("共建社区id")
+    private String constructionCommunityId;
+
+    @ApiModelProperty("创建人id")
+    private String userId;
+
+    @ApiModelProperty("社区id")
+    private String communityId;
+
+    @ApiModelProperty("社区名字")
+    private String communityName;
+
+    @ApiModelProperty("是否参与0 未参与  1已参与")
+    private String isJoin="0";
+
+    @ApiModelProperty("状态(1已发布  2进行中 3已完成)")
+    private String status;
+
+    @ApiModelProperty("预计完工时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date estimatedTime;
+
+    @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 agreementCustomizationTime;
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+
+    @ApiModelProperty("项目规划内容")
+    private List<NewFightProjectPlanDTO> list;
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/NewFightIntegral.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/NewFightIntegral.java
new file mode 100644
index 0000000..aa84c63
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/NewFightIntegral.java
@@ -0,0 +1,53 @@
+package com.panzhihua.common.model.dtos.partybuilding;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+
+@Data
+@ApiModel("新双争双评积分参数")
+public class NewFightIntegral
+{
+    @ApiModelProperty(value = "用户id", required = true)
+    @Min(value = 1, message = "用户id不能为空")
+    @NotNull(message = "用户id不能为空")
+    private String userId;
+
+    @ApiModelProperty(value = "社区id",  required = true)
+    @Min(value = 1, message = "社区id不能为空")
+    @NotNull(message = "社区id不能为空")
+    private String communityId;
+
+
+    @ApiModelProperty(value = "增加还是减少  1增加   2减少")
+    private int addOrReduce=1;
+
+
+    @ApiModelProperty(value = "积分变动数量")
+    private String integralNum="0";
+
+    @ApiModelProperty(value = "商家id")
+    private String merchantId;
+
+    @ApiModelProperty(value = "变动备注")
+    private String remark;
+
+    @ApiModelProperty(value = "业务类型 9商城积分兑换  10商家线下积分兑换  11花城登录  12 查看问题清单   " +
+            "13查看需求清单  14 查看报道服务活动  15查看微心愿  16 查看随手拍   17 每日签到 18 上传“随手拍”或“微心愿",required = true)
+    private String type="9";
+
+    @ApiModelProperty(value = "交易身份类型(1.居民 2.党员 3.志愿者)")
+    private String identityType="1";
+
+    @ApiModelProperty(value = "交易业务id")
+    private String serviceId="0";
+
+    @ApiModelProperty(value = "完成任务领取积分奖励的任务id")
+    private String taskId="0";
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/NewFightProjectEvaluateDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/NewFightProjectEvaluateDTO.java
new file mode 100644
index 0000000..2474206
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/NewFightProjectEvaluateDTO.java
@@ -0,0 +1,45 @@
+package com.panzhihua.common.model.dtos.partybuilding;
+
+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 NewFightProjectEvaluateDTO
+{
+    @ApiModelProperty("主键")
+    private String id;
+
+
+    @ApiModelProperty("项目id")
+    private String projectId;
+
+
+    @ApiModelProperty("评价内容")
+    private String content;
+
+    @ApiModelProperty("评分")
+    private String score;
+
+    @ApiModelProperty("参与用户id")
+    private String userId;
+
+    @ApiModelProperty("参与用户姓名")
+    private String userName;
+
+    @ApiModelProperty("参与用户头像")
+    private String userImg;
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/NewFightProjectJoinDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/NewFightProjectJoinDTO.java
new file mode 100644
index 0000000..93f0182
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/NewFightProjectJoinDTO.java
@@ -0,0 +1,38 @@
+package com.panzhihua.common.model.dtos.partybuilding;
+
+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 NewFightProjectJoinDTO
+{
+    @ApiModelProperty("主键")
+    private String id;
+
+
+    @ApiModelProperty("项目id")
+    private String projectId;
+
+    @ApiModelProperty("参与用户id")
+    private String userId;
+
+    @ApiModelProperty("参与用户姓名")
+    private String userName;
+
+    @ApiModelProperty("参与用户头像")
+    private String userImg;
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/NewFightProjectPlanDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/NewFightProjectPlanDTO.java
new file mode 100644
index 0000000..4aed130
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/NewFightProjectPlanDTO.java
@@ -0,0 +1,46 @@
+package com.panzhihua.common.model.dtos.partybuilding;
+
+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 NewFightProjectPlanDTO
+{
+    @ApiModelProperty("主键")
+    private String id;
+
+
+    @ApiModelProperty("项目id")
+    private String projectId;
+
+    @ApiModelProperty("协议规划")
+    private String agreementPlan;
+
+    @ApiModelProperty("完工节点")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date completionTime;
+
+    @ApiModelProperty("规划内容")
+    private String planContent;
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    @ApiModelProperty("确认完工时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date affirmTime;
+
+    @ApiModelProperty("是否完成 0未完成    1完成")
+    private String accomplish;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/NewFightResourceSharingDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/NewFightResourceSharingDTO.java
new file mode 100644
index 0000000..9d71e08
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/NewFightResourceSharingDTO.java
@@ -0,0 +1,53 @@
+package com.panzhihua.common.model.dtos.partybuilding;
+
+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 NewFightResourceSharingDTO
+{
+    @ApiModelProperty("主键")
+    private String id;
+
+    @ApiModelProperty("服务项目名称")
+    private String title;
+
+    @ApiModelProperty("单位id")
+    private String unitId;
+
+    @ApiModelProperty("单位名称")
+    private String unitName;
+
+    @ApiModelProperty("项目id")
+    private String meritId;
+
+    @ApiModelProperty("图片")
+    private String imgUrl;
+
+    @ApiModelProperty("电话")
+    private String phone;
+
+    @ApiModelProperty("联系人姓名")
+    private String linkman;
+
+    @ApiModelProperty(" 社区id")
+    private String communityId;
+
+
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/PageComDataStatisticsMemberDto.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/PageComDataStatisticsMemberDto.java
new file mode 100644
index 0000000..6b1890c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/PageComDataStatisticsMemberDto.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.dtos.partybuilding;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * 分页查询党建数据统计请求参数
+ */
+@Data
+@ApiModel("分页查询党建数据统计请求参数")
+public class PageComDataStatisticsMemberDto {
+
+    @ApiModelProperty(value = "分页-当前页数")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+    @ApiModelProperty(value = "年份")
+    private Integer month;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "区域编码", hidden = true)
+    private String areaCode;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/PageComPbServiceTeamDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/PageComPbServiceTeamDTO.java
new file mode 100644
index 0000000..b04379e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/PageComPbServiceTeamDTO.java
@@ -0,0 +1,45 @@
+package com.panzhihua.common.model.dtos.partybuilding;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 分页查询团队成员
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-21 18:05
+ **/
+@Data
+@ApiModel("分页查询团队成员")
+public class PageComPbServiceTeamDTO {
+    @ApiModelProperty(value = "分页-当前页数", example = "1", required = true)
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10", required = true)
+    private Long pageSize;
+
+    @ApiModelProperty("姓名")
+    private String name;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+    @ApiModelProperty("照片")
+    private String url;
+    @ApiModelProperty("职位")
+    private String job;
+    @ApiModelProperty("岗位职责")
+    private String jobResponsibilities;
+    @ApiModelProperty("电话")
+    private String phone;
+    @ApiModelProperty("是否注册")
+    private Integer isReg;
+    @ApiModelProperty(value = "街道id", hidden = true)
+    private Long streetId;
+    @ApiModelProperty("关键字")
+    private String keyword;
+    @ApiModelProperty("物业公司id")
+    private Long propertyId;
+    @ApiModelProperty("1是社区团队 2党员先锋")
+    private Integer type;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/PhotoMicroWish.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/PhotoMicroWish.java
new file mode 100644
index 0000000..cb64984
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/PhotoMicroWish.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.dtos.partybuilding;
+
+import com.panzhihua.common.model.vos.partybuilding.PhotoMicroWishData;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Data
+@ApiModel("街道大屏随手拍-微心愿")
+public class PhotoMicroWish
+{
+
+    @ApiModelProperty(value = "随手拍数量")
+    int photoNum=0;
+
+    @ApiModelProperty(value = "微心愿数量")
+    int microWishNum=0;
+
+    @ApiModelProperty(value = "随手拍")
+    List<PhotoMicroWishData> photoList;
+
+    @ApiModelProperty(value = "微心愿")
+    List<PhotoMicroWishData> microWishList;
+
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/QryReportResp.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/QryReportResp.java
new file mode 100644
index 0000000..4988e13
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/QryReportResp.java
@@ -0,0 +1,17 @@
+package com.panzhihua.common.model.dtos.partybuilding;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class QryReportResp {
+
+    @ApiModelProperty("分类id")
+    private String categoryId;
+
+    @ApiModelProperty("分类名称")
+    private String categoryName;
+
+    @ApiModelProperty("数量")
+    private String sum;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/StreetCoreData.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/StreetCoreData.java
new file mode 100644
index 0000000..3a4faca
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/StreetCoreData.java
@@ -0,0 +1,27 @@
+package com.panzhihua.common.model.dtos.partybuilding;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ *
+ * 街道大屏核心数据
+ */
+@Data
+public class StreetCoreData implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "小程序用户")
+    private int userNum=0;
+
+    @ApiModelProperty(value = "实有人口总数")
+    private int ActualPopNum=0;
+
+    @ApiModelProperty(value = "小区总数")
+    private int VillageNum=0;
+
+    @ApiModelProperty(value = "志愿者总数")
+    private int VolunteerNum=0;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/ThreeNumData.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/ThreeNumData.java
new file mode 100644
index 0000000..bd04b3d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/ThreeNumData.java
@@ -0,0 +1,47 @@
+package com.panzhihua.common.model.dtos.partybuilding;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 街道大屏三资三务数据
+ */
+@Data
+public class ThreeNumData implements Serializable
+{
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "党务公开")
+    private int partyAffairsNum=0;
+
+    @ApiModelProperty(value = "服务公开")
+    private int serviceNum=0;
+
+    @ApiModelProperty(value = "财务公开")
+    private int financeNum=0;
+
+    @ApiModelProperty(value = "资金公开")
+    private int fundNum=0;
+
+    @ApiModelProperty(value = "资产公开")
+    private int propertyNum=0;
+
+
+    @ApiModelProperty(value = "资源公开")
+    private int naturalResourcesNum=0;
+
+    @ApiModelProperty(value = "村集体经济组织项目")
+    private int villageEconomyNum=0;
+
+
+    @ApiModelProperty(value = "三务总数量")
+    private int threeServiceNum=0;
+
+
+    @ApiModelProperty(value = "三资总数量")
+    private int threeFundNum=0;
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/UserRankDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/UserRankDTO.java
new file mode 100644
index 0000000..5944920
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/partybuilding/UserRankDTO.java
@@ -0,0 +1,38 @@
+package com.panzhihua.common.model.dtos.partybuilding;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("用户排序内容")
+public class UserRankDTO
+{
+    @ApiModelProperty("社区id")
+    private String communityId;
+
+    @ApiModelProperty("单位id")
+    private String checkUnitId;
+
+
+    @ApiModelProperty("头像")
+    private String imageUrl;
+
+    @ApiModelProperty("用户id")
+    private String userId;
+
+    @ApiModelProperty("用户名")
+    private String userName;
+
+    @ApiModelProperty("单位名")
+    private String unitName;
+
+    @ApiModelProperty("社区名")
+    private String communityName;
+
+    @ApiModelProperty("积分")
+    private String amount;
+
+    @ApiModelProperty("排名")
+    private String rank;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/property/CommonPage.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/property/CommonPage.java
new file mode 100644
index 0000000..d027a56
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/property/CommonPage.java
@@ -0,0 +1,82 @@
+package com.panzhihua.common.model.dtos.property;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel
+public class CommonPage {
+    @ApiModelProperty("页数")
+    private Integer page;
+    @ApiModelProperty("条数")
+    private Integer size;
+    @ApiModelProperty("名称条件")
+    private String name;
+    @ApiModelProperty("状态")
+    private Integer status;
+    @ApiModelProperty("用户姓名")
+    private String username;
+    @ApiModelProperty("手机号")
+    private String phone;
+    @ApiModelProperty("地址参数")
+    private String address;
+    @ApiModelProperty("创建开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date beginTime;
+    @ApiModelProperty("创建结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endTime;
+    @ApiModelProperty("系统用户姓名")
+    private Date systemName;
+    @ApiModelProperty("用户Id")
+    private Long userId;
+    @ApiModelProperty("参数id")
+    private Long paramId;
+    @ApiModelProperty("类型")
+    private Integer type;
+    @ApiModelProperty("状态开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date statusBeginTime;
+    @ApiModelProperty("状态结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date statusEndTime;
+    @ApiModelProperty("编号")
+    private String serialNo;
+    @ApiModelProperty("小区id")
+    private Long areaId;
+    @ApiModelProperty("关键字")
+    private String keyword;
+    @ApiModelProperty("职务")
+    private String position;
+    @ApiModelProperty("参数id2")
+    private Integer paramId2;
+    @ApiModelProperty("社区id")
+    private Long communityId;
+    @ApiModelProperty("商家id")
+    private Long merchantId;
+    @ApiModelProperty("街道id")
+    private Long streetId;
+    @ApiModelProperty("分类2")
+    private Integer type2;
+    @ApiModelProperty("一级分类")
+    private Integer columnId;
+    @ApiModelProperty("二级分类")
+    private Integer secondColumnId;
+    @ApiModelProperty(value = "是否公示(1.是 2.否)")
+    private Integer isPublicity;
+    @ApiModelProperty(value = "账号类型 1街道 2社区 3社会组织", hidden = true)
+    private Integer userType;
+    @ApiModelProperty(value = "社会组织id", hidden = true)
+    private Long orgId;
+    @ApiModelProperty("物业id")
+    private Long propertyId;
+    @ApiModelProperty("是否为物业查看报事报修")
+    private Integer propertyCheck;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/property/PagePropertyWorkerDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/property/PagePropertyWorkerDTO.java
new file mode 100644
index 0000000..bfa6662
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/property/PagePropertyWorkerDTO.java
@@ -0,0 +1,36 @@
+package com.panzhihua.common.model.dtos.property;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: PagePropertyWorkerDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 分页查询物业工作人员请求参数
+ * @author: hans
+ * @date: 2022/04/26 10:21
+ */
+@Data
+@ApiModel("分页查询物业工作人员请求参数")
+public class PagePropertyWorkerDTO {
+
+    @ApiModelProperty(value = "关键字")
+    private String keyword;
+
+    @ApiModelProperty(value = "物业公司关联id")
+    @NotNull
+    private Long refId;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    @NotNull
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    @NotNull
+    private Long pageSize;
+    @ApiModelProperty("物业id")
+    private Long propertyId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/property/PropertyWorkerDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/property/PropertyWorkerDTO.java
new file mode 100644
index 0000000..3b92d46
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/property/PropertyWorkerDTO.java
@@ -0,0 +1,46 @@
+package com.panzhihua.common.model.dtos.property;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+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;
+
+/**
+ * @title: PropertyWorkerDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 新增/编辑物业工作人员请求参数类
+ * @author: hans
+ * @date: 2022/04/26 10:06
+ */
+@Data
+@ApiModel("新增/编辑物业工作人员请求参数类")
+public class PropertyWorkerDTO {
+
+    @ApiModelProperty("物业工作人员id")
+    @NotNull(groups = {PutGroup.class}, message = "物业工作人员id不能为空")
+    private Long id;
+
+    @ApiModelProperty("工作人员姓名")
+    @NotBlank(groups = {AddGroup.class}, message = "工作人员姓名不能为空")
+    private String name;
+
+    @ApiModelProperty("手机号")
+    @NotBlank(groups = {AddGroup.class}, message = "手机号不能为空")
+    private String phone;
+
+    @ApiModelProperty("职务")
+    @NotBlank(groups = {AddGroup.class}, message = "职务不能为空")
+    private String position;
+
+    @ApiModelProperty("照片")
+    private String image;
+
+    @ApiModelProperty("物业公司关联id")
+    @NotNull(groups = {AddGroup.class}, message = "物业公司关联id不能为空")
+    private Long refId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopAddressDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopAddressDTO.java
new file mode 100644
index 0000000..f556140
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopAddressDTO.java
@@ -0,0 +1,52 @@
+package com.panzhihua.common.model.dtos.shop;
+
+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 ComShopAddressDTO {
+
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+
+    @ApiModelProperty("用户收货地址id")
+    private Long addressId;
+
+    @ApiModelProperty("收货人名称")
+    private String name;
+
+    @ApiModelProperty("收货人手机号")
+    private String phone;
+
+    @ApiModelProperty("收货人省份编码")
+    private String provinceCode;
+
+    @ApiModelProperty("收货人城市编码")
+    private String cityCode;
+
+    @ApiModelProperty("收货人区县编码")
+    private String districtCode;
+
+    @ApiModelProperty("收货人详细地址")
+    private String detailAddress;
+
+    @ApiModelProperty("是否是默认地址(1.是  2.否)")
+    private Integer isDefault;
+
+    @ApiModelProperty("收货人省份名称")
+    private String provinceName;
+
+    @ApiModelProperty("收货人城市名称")
+    private String cityName;
+
+    @ApiModelProperty("收货人区/县名称")
+    private String districtName;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopCartDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopCartDTO.java
new file mode 100644
index 0000000..5e0495d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopCartDTO.java
@@ -0,0 +1,39 @@
+package com.panzhihua.common.model.dtos.shop;
+
+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 ComShopCartDTO {
+
+    /**
+     * 商品id
+     */
+    @ApiModelProperty(value = "商品名称", required = true)
+    private Long goodsId;
+
+    /**
+     * 商品规格id
+     */
+    @ApiModelProperty(value = "商品规格id", required = true)
+    private Long goodsAttrId;
+
+    /**
+     * 数量
+     */
+    @ApiModelProperty(value = "数量", required = true)
+    private Integer number;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopEditNubCartDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopEditNubCartDTO.java
new file mode 100644
index 0000000..9cbbb22
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopEditNubCartDTO.java
@@ -0,0 +1,21 @@
+package com.panzhihua.common.model.dtos.shop;
+
+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 ComShopEditNubCartDTO {
+
+    @ApiModelProperty(value = "购物车id", required = true)
+    private Long cartId;
+
+    @ApiModelProperty(value = "购物车商品数量", required = true)
+    private Integer number;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopFlowerEvaluateDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopFlowerEvaluateDTO.java
new file mode 100644
index 0000000..62009ce
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopFlowerEvaluateDTO.java
@@ -0,0 +1,65 @@
+package com.panzhihua.common.model.dtos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @ClassName:  ComShopFlowerEvaluate
+ * @Author: yh
+ * @Date: 2022/11/9 16:46
+ * @Description: 评价表
+ */
+
+@Data
+@ApiModel("评价信息")
+public class ComShopFlowerEvaluateDTO{
+
+
+    /**
+     * 订单号
+     */
+    @ApiModelProperty(value = "订单号")
+    private String orderNo;
+
+    /**
+     * 商品id
+     */
+    @ApiModelProperty(value = "商品id")
+    private String goodsId;
+
+    /**
+     * 评价人id
+     */
+    @ApiModelProperty(value = "评价人id")
+    private Long userId;
+
+    /**
+     * 评价时间
+     */
+    @ApiModelProperty(value = "评价时间")
+    private Date evaluateTime;
+
+    /**
+     * 评价类型(5.非常满意 4.满意 3.一般 3.不满意 1.糟糕透了)
+     */
+    @ApiModelProperty(value = "评价类型(5.非常满意 4.满意 3.一般 3.不满意 1.糟糕透了)")
+    private Integer evaluateType;
+
+    /**
+     * 评价内容
+     */
+    @ApiModelProperty(value = "评价内容")
+    private String evaluateContent;
+
+    /**
+     * 评价图片
+     */
+    @ApiModelProperty(value = "评价图片")
+    private String evaluatePic;
+
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopFlowerGoodsDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopFlowerGoodsDTO.java
new file mode 100644
index 0000000..1d40636
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopFlowerGoodsDTO.java
@@ -0,0 +1,39 @@
+package com.panzhihua.common.model.dtos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther yh
+ * @create 2022-10-21 09:36:09
+ * @describe 查询商品请求参数
+ */
+@Data
+@ApiModel("查询商品请求参数")
+public class ComShopFlowerGoodsDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty("商品名称")
+    private String name;
+
+    @ApiModelProperty("店铺id")
+    private Long storeId;
+
+    @ApiModelProperty("商品状态(1.出售中  2.已下架  3.回收站)")
+    private Integer status;
+
+    @ApiModelProperty("配送方式(1.商家配送  2.快递物流)")
+    private Integer deliveryType;
+
+    @ApiModelProperty(hidden = true)
+    private Long userId;
+
+    @ApiModelProperty("商品分类id")
+    private Long categoriesId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopFlowerOrderDeliveryDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopFlowerOrderDeliveryDTO.java
new file mode 100644
index 0000000..a287e3d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopFlowerOrderDeliveryDTO.java
@@ -0,0 +1,62 @@
+package com.panzhihua.common.model.dtos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:14
+ * @describe 购物车
+ */
+@Data
+@ApiModel("配送单")
+public class ComShopFlowerOrderDeliveryDTO {
+
+    /**
+     * id
+     */
+    @ApiModelProperty(value = "配送单id")
+    private Long id;
+
+    /**
+     * 自提点id
+     */
+    @ApiModelProperty(value = "自提点id")
+    private Long pointId;
+
+    /**
+     * 自提点id
+     */
+    @ApiModelProperty(value = "自提点名称")
+    private String pointName;
+
+    /**
+     * 配送订单数量
+     */
+    @ApiModelProperty(value = "配送订单数量")
+    private Integer deliveryOrderNum;
+
+    /**
+     * 配送商品数量
+     */
+    @ApiModelProperty(value = "配送商品数量")
+    private Integer deliveryGoodsNum;
+
+    /**
+     * 价值
+     */
+    @ApiModelProperty(value = "价值")
+    private BigDecimal deliveryAmount;
+
+
+
+    @ApiModelProperty(value = "订单id集合")
+    private List<Long> orderIds;
+
+    @ApiModelProperty(value = "商品id")
+    private Long storeId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopFlowerRefundOrderDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopFlowerRefundOrderDTO.java
new file mode 100644
index 0000000..19f5782
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopFlowerRefundOrderDTO.java
@@ -0,0 +1,86 @@
+package com.panzhihua.common.model.dtos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @auther yh
+ * @create 2022-11-08 17:25:45
+ * @describe 退款申请
+ */
+@Data
+@ApiModel("退款申请")
+public class ComShopFlowerRefundOrderDTO {
+
+    /**
+     * 退款订单id
+     */
+    @ApiModelProperty(value = "退款订单id")
+    private Long id;
+
+    /**
+     * 店铺id
+     */
+    @ApiModelProperty(value = "店铺id")
+    private Long storeId;
+
+    /**
+     * 原始订单号
+     */
+    @ApiModelProperty(value = "原始订单号")
+    private String orderNo;
+
+
+    /**
+     * 原始订单id
+     */
+    @ApiModelProperty(value = "原始订单id")
+    private String orderId;
+
+    /**
+     * 支付总金额
+     */
+    @ApiModelProperty(value = "支付总金额")
+    private BigDecimal payAmount;
+
+    /**
+     * 申请退款金额
+     */
+    @ApiModelProperty(value = "申请退款金额")
+    private BigDecimal refundAmount;
+
+    /**
+     * 退款原因
+     */
+    @ApiModelProperty(value = "退款原因")
+    private String refundReason;
+
+    /**
+     * 退款照片
+     */
+    @ApiModelProperty(value = "退款照片")
+    private String refundPic;
+
+    /**
+     * 处理结果
+     */
+    @ApiModelProperty(value = "处理结果(1.同意 2.拒绝)")
+    private String handleResult;
+
+    /**
+     * 商家备注
+     */
+    @ApiModelProperty(value = "商家备注")
+    private String remark;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopFundsExportDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopFundsExportDTO.java
new file mode 100644
index 0000000..ef90879
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopFundsExportDTO.java
@@ -0,0 +1,34 @@
+package com.panzhihua.common.model.dtos.shop;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @ClasssName OrderShipDTO
+ * @Description TODO
+ * @Author cedoo
+ * @Date 2021/4/16
+ * @Version 1.0
+ **/
+@Data
+@ApiModel("订单导出信息")
+public class ComShopFundsExportDTO {
+
+    @ApiModelProperty(value = "订单编号", example = "316356541616")
+    private String orderNo;
+    @ApiModelProperty(value = "支付时间-开始", example = "2021-03-18 19:59:06")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date payTimeStart;
+    @ApiModelProperty(value = "支付时间-结束", example = "2021-04-18 19:59:14")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date payTimeEnd;
+    @ApiModelProperty(value = "订单ID-如果指定了订单ID,只导出指定订单,其它搜索条件将被忽略", notes = "如果指定了订单ID,其它搜索条件将被忽略,只导出指定订单")
+    private Long[] orderIds;
+    @ApiModelProperty(hidden = true)
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopGoodsDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopGoodsDTO.java
new file mode 100644
index 0000000..d47c37c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopGoodsDTO.java
@@ -0,0 +1,36 @@
+package com.panzhihua.common.model.dtos.shop;
+
+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 ComShopGoodsDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty("商品名称")
+    private String name;
+
+    @ApiModelProperty("店铺id")
+    private Long storeId;
+
+    @ApiModelProperty("商品状态(1.出售中  2.已下架  3.回收站)")
+    private Integer status;
+
+    @ApiModelProperty("配送方式(1.商家配送  2.快递物流)")
+    private Integer deliveryType;
+
+    @ApiModelProperty(hidden = true)
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderCreateDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderCreateDTO.java
new file mode 100644
index 0000000..c45e7a3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderCreateDTO.java
@@ -0,0 +1,59 @@
+package com.panzhihua.common.model.dtos.shop;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+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 ComShopOrderCreateDTO {
+
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "用户手机号", hidden = true)
+    private String phone;
+
+    @ApiModelProperty(value = "用户openId", hidden = true)
+    private String openId;
+
+    @ApiModelProperty(value = "用户收货地址id", required = true)
+    private Long receiverId;
+
+    @ApiModelProperty(value = "自提点地址id")
+    private Long pointId;
+
+    @ApiModelProperty(value = "订单备注")
+    private String remark;
+
+    @ApiModelProperty(value = "提交订单商品列表", required = true)
+    private List<ComShopOrderCreateGoodsDTO> orderGoodsList;
+
+    @ApiModelProperty(value = "提交类型(1.商品详情提交 2.购物车提交)", required = true)
+    private Integer submitType;
+
+    @ApiModelProperty(value = "购物车记录id集合(当提交类型为2时,此字段必填)")
+    private List<Long> cartIds;
+    /**
+     * 配送方式(1.自提 2.快递)
+     */
+    @ApiModelProperty(value = "配送方式(1.自提 2.快递)")
+    private Integer deliveryType;
+
+    /**
+     * 提交类型(1.商品详情提交 2.购物车提交)
+     */
+    public interface submitType {
+        int details = 1;
+        int cart = 2;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderCreateGoodsDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderCreateGoodsDTO.java
new file mode 100644
index 0000000..7db804d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderCreateGoodsDTO.java
@@ -0,0 +1,29 @@
+package com.panzhihua.common.model.dtos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:14
+ * @describe 创建订单商品信息请求参数
+ */
+@Data
+@ApiModel("创建订单商品信息请求参数")
+public class ComShopOrderCreateGoodsDTO {
+
+    @ApiModelProperty(value = "商品id")
+    private Long goodsId;
+
+    @ApiModelProperty(value = "商品规格id")
+    private Long goodsAttrId;
+
+    @ApiModelProperty(value = "购买数量")
+    private Integer num;
+
+    @ApiModelProperty(value = "价格")
+    private BigDecimal price;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderDeliverDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderDeliverDTO.java
new file mode 100644
index 0000000..a5cf949
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderDeliverDTO.java
@@ -0,0 +1,23 @@
+package com.panzhihua.common.model.dtos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @ClasssName OrderShipDTO
+ * @Description TODO
+ * @Author cedoo
+ * @Date 2021/4/16
+ * @Version 1.0
+ **/
+@Data
+@ApiModel("订单配送信息")
+public class ComShopOrderDeliverDTO {
+    @ApiModelProperty(value = "订单ID")
+    private Long orderId;
+    @ApiModelProperty(value = "操作账号", hidden = true)
+    private String operUserAccount;
+    @ApiModelProperty(value = "是否是管理员", hidden = true)
+    private Boolean isAdmin = false;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderExportDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderExportDTO.java
new file mode 100644
index 0000000..3b60105
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderExportDTO.java
@@ -0,0 +1,47 @@
+package com.panzhihua.common.model.dtos.shop;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @ClasssName OrderShipDTO
+ * @Description TODO
+ * @Author cedoo
+ * @Date 2021/4/16
+ * @Version 1.0
+ **/
+@Data
+@ApiModel("订单导出信息")
+public class ComShopOrderExportDTO {
+
+    @ApiModelProperty(value = "订单编号", example = "316356541616")
+    private String orderNo;
+    @ApiModelProperty(value = "用户账号")
+    private String userAccount;
+    @ApiModelProperty(value = "收货人", example = "张三")
+    private String receiverAccount;
+    @ApiModelProperty(value = "收货人电话", example = "13123456789")
+    private String receiverPhone;
+    @ApiModelProperty(value = "商品", example = "鞋")
+    private String goodsName;
+    @ApiModelProperty(value = "订单状态(1.待付款 2.代发货 3.待收货 4.待评价 5.已完成 6.已取消)", example = "1")
+    private Integer status;
+    @ApiModelProperty(value = "下单时间-开始", example = "2021-04-01 19:58:41")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private String createAtStart;
+    @ApiModelProperty(value = "下单时间-结束", example = "2021-04-18 19:58:54")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAtEnd;
+    @ApiModelProperty(value = "订单ID-如果指定了订单ID,只导出指定订单,其它搜索条件将被忽略", notes = "")
+    private Long[] orderIds;
+    @ApiModelProperty(hidden = true)
+    private Long userId;
+    @ApiModelProperty(hidden = true)
+    private Long storeUserId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderPreviewDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderPreviewDTO.java
new file mode 100644
index 0000000..b0b47ff
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderPreviewDTO.java
@@ -0,0 +1,62 @@
+package com.panzhihua.common.model.dtos.shop;
+
+import java.util.List;
+
+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 ComShopOrderPreviewDTO {
+
+    /**
+     * 提交类型(1.商品详情提交 2.购物车提交)
+     */
+    @ApiModelProperty(value = "提交类型(1.商品详情提交 2.购物车提交)", required = true)
+    private Integer submitType;
+
+    /**
+     * 商品id(当提交类型为1时,此字段必填)
+     */
+    @ApiModelProperty(value = "商品id(当提交类型为1时,此字段必填)")
+    private Long goodsId;
+
+    /**
+     * 商品规格id(当提交类型为1时,此字段必填)
+     */
+    @ApiModelProperty(value = "商品规格id(当提交类型为1时,此字段必填)")
+    private Long goodsAttrId;
+
+    /**
+     * 购买数量(当提交类型为1时,此字段必填)
+     */
+    @ApiModelProperty(value = "购买数量(当提交类型为1时,此字段必填)")
+    private Integer buyNum;
+
+    /**
+     * 购物车记录id集合(当提交类型为2时,此字段必填)
+     */
+    @ApiModelProperty(value = "提交类型(1.商品详情提交 2.购物车提交)")
+    private List<Long> cartIds;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+
+    /**
+     * 提交类型(1.商品详情提交 2.购物车提交)
+     */
+    public interface submitType {
+        int details = 1;
+        int cart = 2;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderQueryDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderQueryDTO.java
new file mode 100644
index 0000000..c6bce07
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderQueryDTO.java
@@ -0,0 +1,27 @@
+package com.panzhihua.common.model.dtos.shop;
+
+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 ComShopOrderQueryDTO {
+
+    @ApiModelProperty(value = "订单id")
+    private Long orderId;
+
+    @ApiModelProperty(value = "手机号", hidden = true)
+    private String phone;
+
+    @ApiModelProperty(value = "操作账号", hidden = true)
+    private String operUserAccount;
+
+    @ApiModelProperty(value = "是否是管理员", hidden = true)
+    private Boolean isAdmin = false;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderShipDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderShipDTO.java
new file mode 100644
index 0000000..a2bb2d3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopOrderShipDTO.java
@@ -0,0 +1,27 @@
+package com.panzhihua.common.model.dtos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @ClasssName OrderShipDTO
+ * @Description TODO
+ * @Author cedoo
+ * @Date 2021/4/16
+ * @Version 1.0
+ **/
+@Data
+@ApiModel("订单发货信息")
+public class ComShopOrderShipDTO {
+    @ApiModelProperty(value = "ID")
+    private Long orderId;
+    @ApiModelProperty(value = "物流公司")
+    private String logisticsCompany;
+    @ApiModelProperty(value = "物流单号")
+    private String logisticsNo;
+    @ApiModelProperty(value = "操作账号", hidden = true)
+    private String operUserAccount;
+    @ApiModelProperty(value = "是否是管理员", hidden = true)
+    private Boolean isAdmin;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopSysConfDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopSysConfDTO.java
new file mode 100644
index 0000000..7342bd6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ComShopSysConfDTO.java
@@ -0,0 +1,21 @@
+package com.panzhihua.common.model.dtos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @ClasssName ComShopSysConfDTO
+ * @Description 商家配置信息
+ * @Author cedoo
+ * @Date 2021/05/11
+ * @Version 1.0
+ **/
+@Data
+@ApiModel("商家系统配置")
+public class ComShopSysConfDTO {
+    @ApiModelProperty(value = "id", required = true)
+    private Long id;
+    @ApiModelProperty(value = "是否隐藏所有商家 0 否  1是", required = true)
+    private Integer hidden;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ExcelShopFundsDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ExcelShopFundsDTO.java
new file mode 100644
index 0000000..0addb59
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ExcelShopFundsDTO.java
@@ -0,0 +1,34 @@
+package com.panzhihua.common.model.dtos.shop;
+
+import java.math.BigDecimal;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.format.NumberFormat;
+
+import lombok.Data;
+
+/**
+ * @description: 商城订单导出
+ * @author: Null
+ * @date: 2021-4-18 16:13:21
+ */
+@Data
+public class ExcelShopFundsDTO {
+
+    @ExcelProperty("金额")
+    @NumberFormat("0.00")
+    private BigDecimal totalAmount;
+
+    @ExcelProperty("支付时间")
+    private String payTime;
+
+    @ExcelProperty("订单编号")
+    private String orderNo;
+
+    @ExcelProperty("支付方式")
+    private String payType;
+
+    @ExcelProperty("收支类型")
+    private String type;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ExcelShopOrderDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ExcelShopOrderDTO.java
new file mode 100644
index 0000000..00ff47d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/ExcelShopOrderDTO.java
@@ -0,0 +1,58 @@
+package com.panzhihua.common.model.dtos.shop;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.format.NumberFormat;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import lombok.Data;
+
+/**
+ * @description: 商城订单导出
+ * @author: cedoo
+ * @date: 2021-4-18 16:13:21
+ */
+@Data
+public class ExcelShopOrderDTO {
+
+    @ExcelProperty("商品总额")
+    @NumberFormat("0.00")
+    private BigDecimal goodsTotal;
+
+    @ExcelProperty("全部商品")
+    private String goodsName;
+
+    @ExcelProperty("数量总计")
+    private Integer goodsCount;
+
+    @ExcelProperty("用户账号")
+    private String account;
+
+    @ExcelProperty("收货人")
+    private String receiver;
+
+    @ExcelProperty("收货人电话")
+    private String receiverPhone;
+
+    @ExcelProperty("收货地址")
+    private String receiverAddress;
+
+    @ExcelProperty("店铺名称")
+    private String storeName;
+
+    @ExcelProperty("备注")
+    private String remark;
+
+    @ExcelProperty("订单状态")
+    private String status;
+
+    @ExcelProperty("下单时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ExcelProperty("付款时间")
+    private String payTime;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/OrderPayDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/OrderPayDTO.java
new file mode 100644
index 0000000..10892e6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/OrderPayDTO.java
@@ -0,0 +1,21 @@
+package com.panzhihua.common.model.dtos.shop;
+
+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 OrderPayDTO {
+
+    @ApiModelProperty(value = "订单号")
+    private String orderNo;
+
+    @ApiModelProperty(value = "订单号", hidden = true)
+    private String openId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComFlowerOrderDeliveryDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComFlowerOrderDeliveryDTO.java
new file mode 100644
index 0000000..46a958c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComFlowerOrderDeliveryDTO.java
@@ -0,0 +1,30 @@
+package com.panzhihua.common.model.dtos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther yh
+ * @create 2022-11-08 17:25:45
+ * @describe 分页查询配送单列表
+ */
+@Data
+@ApiModel("花城分页查询配送单列表")
+public class PageComFlowerOrderDeliveryDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "配送单状态(1.配送中 2.已送达)")
+    private Integer deliveryStatus;
+
+    @ApiModelProperty(value = "配送单号")
+    private String deliveryNo;
+
+    @ApiModelProperty(value = "商家id")
+    private Long storeId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComFlowerOrderListDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComFlowerOrderListDTO.java
new file mode 100644
index 0000000..b31b4a7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComFlowerOrderListDTO.java
@@ -0,0 +1,39 @@
+package com.panzhihua.common.model.dtos.shop;
+
+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 PageComFlowerOrderListDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "订单状态(1.等待配送 2.配送中 3.待收货 4.待评价 5.已完成 6.已取消 7.已退款)")
+    private Integer status;
+
+    @ApiModelProperty(value = "自提点id")
+    private Long pointId;
+
+    @ApiModelProperty(value = "商户id")
+    private Long storeId;
+
+    @ApiModelProperty(value = "配送单id")
+    private Long deliveryId;
+
+    @ApiModelProperty(value = "配送方式(1.自提 2.快递)")
+    private Integer deliveryType;
+
+
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComOrderListDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComOrderListDTO.java
new file mode 100644
index 0000000..0c1b533
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComOrderListDTO.java
@@ -0,0 +1,26 @@
+package com.panzhihua.common.model.dtos.shop;
+
+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 PageComOrderListDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "订单状态(1.待付款 2.代发货 3.待收货 4.待评价 5.已完成 6.已取消)")
+    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/shop/PageComOrderRefundDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComOrderRefundDTO.java
new file mode 100644
index 0000000..d88168f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComOrderRefundDTO.java
@@ -0,0 +1,35 @@
+package com.panzhihua.common.model.dtos.shop;
+
+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 PageComOrderRefundDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "订单状态(9.处理中 10.退款成功 11.退款失败 12.已取消 13.退款中)")
+    private Integer status;
+
+    @ApiModelProperty(value = "店铺id")
+    private Long storeId;
+
+    @ApiModelProperty(value = "关键字")
+    private String keyWord;
+
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "商家用户id", hidden = true)
+    private Long backstageUserId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopAddressDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopAddressDTO.java
new file mode 100644
index 0000000..a398b1b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopAddressDTO.java
@@ -0,0 +1,24 @@
+package com.panzhihua.common.model.dtos.shop;
+
+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 PageComShopAddressDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopFlowerEvaluateDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopFlowerEvaluateDTO.java
new file mode 100644
index 0000000..92afe27
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopFlowerEvaluateDTO.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.dtos.shop;
+
+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 PageComShopFlowerEvaluateDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "商品id")
+    private Long goodsId;
+
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+
+    @ApiModelProperty(value = "订单id")
+    private Long orderId;
+
+    @ApiModelProperty(value = "评价类型(5.非常满意 4.满意 3.一般 3.不满意 1.糟糕透了)")
+    private Integer evaluateType;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopFlowerGoodsDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopFlowerGoodsDTO.java
new file mode 100644
index 0000000..943292c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopFlowerGoodsDTO.java
@@ -0,0 +1,35 @@
+package com.panzhihua.common.model.dtos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther yh
+ * @describe 分页查询商品
+ */
+@ApiModel("分页查询商品")
+@Data
+public class PageComShopFlowerGoodsDTO {
+
+    @ApiModelProperty(value = "商品名称")
+    private String name;
+
+    @ApiModelProperty(value = "店铺名称")
+    private String storeName;
+    @ApiModelProperty(value = "店铺Id")
+    private Long storeId;
+    @ApiModelProperty(value = "商品分类id")
+    private Long categoryIds;
+
+    @ApiModelProperty(value = "商品状态(1.出售中  2.已下架  3.回收站)", example = "1")
+    private Integer status;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize;
+    @ApiModelProperty(value = "用户id",hidden = true)
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopFlowerOrderPayDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopFlowerOrderPayDTO.java
new file mode 100644
index 0000000..6090a00
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopFlowerOrderPayDTO.java
@@ -0,0 +1,26 @@
+package com.panzhihua.common.model.dtos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther yh
+ * @create 2022-11-08 17:25:45
+ * @describe 分页查询支付记录
+ */
+@Data
+@ApiModel("支付退款记录")
+public class PageComShopFlowerOrderPayDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "类型:1.入账 2 出账")
+    private Integer type;
+
+    @ApiModelProperty(value = "商户id")
+    private Long storeId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopFlowerStoreDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopFlowerStoreDTO.java
new file mode 100644
index 0000000..aa51371
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopFlowerStoreDTO.java
@@ -0,0 +1,34 @@
+package com.panzhihua.common.model.dtos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther yh
+ * @create 2022-10-21 09:36:09
+ * @describe 分页查询店铺
+ */
+@Data
+@ApiModel("分页查询店铺")
+public class PageComShopFlowerStoreDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+    @ApiModelProperty(value = "商家姓名")
+    private String contacts;
+    @ApiModelProperty(value = "商家账号")
+    private String account;
+    @ApiModelProperty(value = "店铺名称")
+    private String name;
+    @ApiModelProperty(value = "配送方式(1.自提  2.快递)")
+    private Integer deliveryType;
+    @ApiModelProperty(value = "店铺状态(1.启用  2.禁用)")
+    private Integer status;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty("店铺id")
+    private Long storeId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopFundsSearchDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopFundsSearchDTO.java
new file mode 100644
index 0000000..7999423
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopFundsSearchDTO.java
@@ -0,0 +1,35 @@
+package com.panzhihua.common.model.dtos.shop;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @ClasssName OrderSearchDTO
+ * @Description 资金管理DTO
+ * @Author cedoo
+ * @Date 2021/4/16
+ * @Version 1.0
+ **/
+@Data
+@ApiModel("资金管理查询参数")
+public class PageComShopFundsSearchDTO {
+    @ApiModelProperty(value = "订单编号", example = "316356541616")
+    private String orderNo;
+    @ApiModelProperty(value = "支付时间-开始", example = "2021-03-18 19:59:06")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date payTimeStart;
+    @ApiModelProperty(value = "支付时间-结束", example = "2021-04-18 19:59:14")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date payTimeEnd;
+    @ApiModelProperty(value = "分页-当前页数", example = "1", required = true)
+    private Long pageNum;
+    @ApiModelProperty(value = "分页-每页记录数", example = "10", required = true)
+    private Long pageSize;
+    @ApiModelProperty(hidden = true)
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopGoodsDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopGoodsDTO.java
new file mode 100644
index 0000000..4517409
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopGoodsDTO.java
@@ -0,0 +1,31 @@
+package com.panzhihua.common.model.dtos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther llming
+ * @describe 分页查询商品
+ */
+@ApiModel("分页查询商品")
+@Data
+public class PageComShopGoodsDTO {
+
+    @ApiModelProperty(value = "商品名称")
+    private String name;
+
+    @ApiModelProperty(value = "店铺名称")
+    private String storeName;
+    @ApiModelProperty(value = "店铺Id")
+    private Long storeId;
+
+    @ApiModelProperty(value = "商品状态(1.出售中  2.已下架  3.回收站)", example = "1")
+    private Integer status;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopOrderSearchDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopOrderSearchDTO.java
new file mode 100644
index 0000000..510add9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopOrderSearchDTO.java
@@ -0,0 +1,55 @@
+package com.panzhihua.common.model.dtos.shop;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @ClasssName OrderSearchDTO
+ * @Description 订单搜索DTO
+ * @Author cedoo
+ * @Date 2021/4/16
+ * @Version 1.0
+ **/
+@Data
+public class PageComShopOrderSearchDTO {
+    @ApiModelProperty(value = "订单编号", example = "316356541616")
+    private String orderNo;
+    @ApiModelProperty(value = "用户账号")
+    private String userAccount;
+    @ApiModelProperty(value = "收货人", example = "张三")
+    private String receiverAccount;
+    @ApiModelProperty(value = "收货人电话", example = "13123456789")
+    private String receiverPhone;
+    @ApiModelProperty(value = "商品", example = "鞋")
+    private String goodsName;
+    @ApiModelProperty(value = "店铺名称", example = "小二的店")
+    private String storeName;
+    @ApiModelProperty(value = "订单状态(1.等待配送 2.配送中 3.待收货 4.待评价 5.已完成 6.已取消 7.已退款)", example = "1")
+    private Integer status;
+    @ApiModelProperty(value = "下单时间-开始", example = "2021-4-10 10:38:25")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private String createAtStart;
+    @ApiModelProperty(value = "下单时间-结束", example = "2021-4-20 10:38:29")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAtEnd;
+    @ApiModelProperty(value = "分页-当前页数", example = "1", required = true)
+    private Long pageNum;
+    @ApiModelProperty(value = "分页-每页记录数", example = "10", required = true)
+    private Long pageSize;
+    @ApiModelProperty(hidden = true)
+    private Long userId;
+    @ApiModelProperty(hidden = true)
+    private Long storeId;
+    @ApiModelProperty(hidden = true)
+    private Long storeUserId;
+
+    @ApiModelProperty("配送方式(1.自提  2.快递)")
+    private Integer deliveryType;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopStoreDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopStoreDTO.java
new file mode 100644
index 0000000..88a5572
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopStoreDTO.java
@@ -0,0 +1,34 @@
+package com.panzhihua.common.model.dtos.shop;
+
+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 PageComShopStoreDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+    @ApiModelProperty(value = "商家姓名")
+    private String contacts;
+    @ApiModelProperty(value = "商家账号")
+    private String account;
+    @ApiModelProperty(value = "店铺名称")
+    private String name;
+    @ApiModelProperty(value = "配送方式(1.商家配送  2.快递物流)")
+    private Integer deliveryType;
+    @ApiModelProperty(value = "店铺状态(1.启用  2.禁用)")
+    private Integer status;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty("店铺id")
+    private Long storeId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopSysConfDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopSysConfDTO.java
new file mode 100644
index 0000000..c9037ab
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/PageComShopSysConfDTO.java
@@ -0,0 +1,19 @@
+package com.panzhihua.common.model.dtos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther llming
+ * @describe 分页查询商品
+ */
+@ApiModel("分页查询商品")
+@Data
+public class PageComShopSysConfDTO {
+    @ApiModelProperty(value = "分页-当前页数", example = "1", required = false)
+    private Long pageNum = 1l;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10", required = false)
+    private Long pageSize = 10l;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/WxPayNotifyOrderDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/WxPayNotifyOrderDTO.java
new file mode 100644
index 0000000..7ebfd50
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/shop/WxPayNotifyOrderDTO.java
@@ -0,0 +1,31 @@
+package com.panzhihua.common.model.dtos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("微信支付回调修改订单参数")
+public class WxPayNotifyOrderDTO {
+
+    @ApiModelProperty(value = "订单号")
+    private String orderTradeNo;
+
+    @ApiModelProperty(value = "微信交易订单号")
+    private String wxTradeNo;
+
+    @ApiModelProperty(value = "订单金额")
+    private String totalFee;
+
+    @ApiModelProperty(value = "支付完成时间")
+    private String payTime;
+
+    @ApiModelProperty(value = "现金支付金额")
+    private String cashFee;
+
+    @ApiModelProperty(value = "支付返回参数信息")
+    private String result;
+
+    @ApiModelProperty(value = "支付附加数据")
+    private String attach;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/ComMngUserTagDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/ComMngUserTagDTO.java
new file mode 100644
index 0000000..7838455
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/ComMngUserTagDTO.java
@@ -0,0 +1,28 @@
+package com.panzhihua.common.model.dtos.user;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 居民信息excel导入
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-02-04 16:06
+ **/
+@Data
+@ApiModel("特殊群体标签请求参数")
+public class ComMngUserTagDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize;
+
+    @ApiModelProperty("标签名称")
+    private String tagName;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/ConvenientResetPasswordDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/ConvenientResetPasswordDTO.java
new file mode 100644
index 0000000..48a4015
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/ConvenientResetPasswordDTO.java
@@ -0,0 +1,31 @@
+package com.panzhihua.common.model.dtos.user;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Pattern;
+
+import com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: ConvenientResetPasswordDTO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务商家修改密码
+ * @author: hans
+ * @date: 2021/09/17 17:27
+ */
+@Data
+@ApiModel("便民服务商家修改密码请求参数")
+public class ConvenientResetPasswordDTO {
+
+    @ApiModelProperty("旧密码")
+    @NotBlank(message = "旧密码不能为空")
+    private String oldPassword;
+
+    @ApiModelProperty("新密码")
+    @Pattern(groups = {AddGroup.class}, message = "请输入8-12位登陆密码,由英文,数字和特殊符号组成",
+            regexp = "^(?=.*[A-Za-z])(?=(.*[\\d]){1,})(?=(.*[\\W]){1,})(?!.*\\s).{8,12}$")
+    private String newPassword;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/EexcelUserDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/EexcelUserDTO.java
new file mode 100644
index 0000000..609e1cb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/EexcelUserDTO.java
@@ -0,0 +1,146 @@
+package com.panzhihua.common.model.dtos.user;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 居民信息excel导入
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-02-04 16:06
+ **/
+@Data
+public class EexcelUserDTO {
+
+    /**
+     * 序号
+     */
+    @ExcelProperty("序号")
+    private String order;
+
+    @ExcelProperty("小区")
+    private String areaName;
+
+    /**
+     * 门牌号
+     */
+    @ExcelProperty("门牌号")
+    private String doorNumber;
+    /**
+     * 是否租住
+     */
+    @ExcelProperty("是否租住")
+    private String isRent = "否";
+    /**
+     * 姓名
+     */
+    @ExcelProperty("姓名")
+    private String name;
+    /**
+     * 民族
+     */
+    @ExcelProperty("民族")
+    private String nation;
+    /**
+     * 政治面貌
+     */
+    @ExcelProperty("政治面貌")
+    private String politicalOutlook;
+    /**
+     * 婚姻状态
+     */
+    @ExcelProperty("婚姻状态")
+    private String maritalStatus = "否";
+    /**
+     * 联系方式
+     */
+    @ExcelProperty("联系方式")
+    private String phone;
+    /**
+     * 文化程度
+     */
+    @ExcelProperty("文化程度")
+    private String education;
+    /**
+     * 身份证
+     */
+    @ExcelProperty("身份证")
+    private String idCard;
+    /**
+     * 工作单位(学校)
+     */
+    @ExcelProperty("工作单位(学校)")
+    private String company;
+    /**
+     * 户口所在地
+     */
+    @ExcelProperty("户口所在地")
+    private String residence;
+    /**
+     * 目前是否在攀枝花
+     */
+    @ExcelProperty("目前是否在攀枝花")
+    private String isPanZhiHua = "否";
+    /**
+     * 近一个月离(返)攀情况
+     */
+    @ExcelProperty("近一个月离(返)攀情况")
+    private String situation = "否";
+    /**
+     * 是否有与疑似或确诊病例密切接触史
+     */
+    @ExcelProperty("是否有与疑似或确诊病例密切接触史")
+    private String isContact = "否";
+    /**
+     * 特殊情况(重大过往病史或者孕妇)
+     */
+    @ExcelProperty("特殊情况(重大过往病史或者孕妇")
+    private String major = "否";
+    /**
+     * 退役军人
+     */
+    @ExcelProperty("退役军人")
+    private String soldier = "否";
+    /**
+     * 残疾人
+     */
+    @ExcelProperty("残疾人")
+    private String disability = "否";
+    /**
+     * 低保户
+     */
+    @ExcelProperty("低保户")
+    private String lowIncomeHouseholds = "否";
+    /**
+     * 低收入人员
+     */
+    @ExcelProperty("低收入人员")
+    private String lowIncomePeople = "否";
+    /**
+     * 高龄老人
+     */
+    @ExcelProperty("高龄老人")
+    private String oldPeople = "否";
+    /**
+     * 特服家庭
+     */
+    @ExcelProperty("特服家庭")
+    private String specialServiceFamily = "否";
+    /**
+     * 重点人员
+     */
+    @ExcelProperty("重点人员")
+    private String keyPersonnel = "否";
+
+    @ExcelProperty("标签")
+    private String tags;
+
+    /**
+     * 房屋编码
+     */
+    @ExcelIgnore
+    private String houseCode;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/IndexDataDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/IndexDataDTO.java
new file mode 100644
index 0000000..10e83cb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/IndexDataDTO.java
@@ -0,0 +1,21 @@
+package com.panzhihua.common.model.dtos.user;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel(value = "首页数据查询入参")
+public class IndexDataDTO  implements Serializable {
+
+    @ApiModelProperty("数据范围,1:所有区县,2:所有街道,3:所有社区,4:跟据街道筛选")
+    private Integer range;
+
+    @ApiModelProperty("街道id")
+    private Long streetId;
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/InputUserTagsDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/InputUserTagsDTO.java
new file mode 100644
index 0000000..bea706d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/InputUserTagsDTO.java
@@ -0,0 +1,24 @@
+package com.panzhihua.common.model.dtos.user;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @description: 居民标签设置参数
+ * @author: Null
+ * @date: 2021/3/11 10:36
+ */
+@Data
+@ApiModel(value = "居民标签设置参数")
+public class InputUserTagsDTO implements Serializable {
+
+    @ApiModelProperty("用户编号")
+    private Long id;
+
+    @ApiModelProperty("设置用户标签多个用,分割")
+    private String tags;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/PageFeedBackDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/PageFeedBackDTO.java
new file mode 100644
index 0000000..d18e042
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/PageFeedBackDTO.java
@@ -0,0 +1,44 @@
+package com.panzhihua.common.model.dtos.user;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+
+import com.panzhihua.common.validated.PageGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 意见反馈
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-05 10:56
+ **/
+@Data
+@ApiModel(value = "意见反馈")
+public class PageFeedBackDTO {
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    @NotNull(groups = {PageGroup.class}, message = "分页-当前页数不能为空")
+    @Min(groups = {PageGroup.class}, value = 1, message = "分页-当前页数不能为空")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    @NotNull(groups = {PageGroup.class}, message = "分页-每页记录数不能为空")
+    @Min(groups = {PageGroup.class}, value = 1, message = "分页-每页记录数不能为空")
+    private Long pageSize;
+
+    @ApiModelProperty(value = "用户昵称", example = "")
+    private String nickName;
+
+    @ApiModelProperty(value = "用户名称", example = "")
+    private String name;
+    @ApiModelProperty(value = "手机号", example = "")
+    private String phone;
+
+    private String areaCode;
+
+    @ApiModelProperty("1投诉建议2问题留言")
+    private Integer type;
+    private Long propertyId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/PageInputUserDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/PageInputUserDTO.java
new file mode 100644
index 0000000..33d6b92
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/PageInputUserDTO.java
@@ -0,0 +1,41 @@
+package com.panzhihua.common.model.dtos.user;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 居民信息excel导入
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-02-04 16:06
+ **/
+@Data
+@ApiModel("居民管理分页列表请求参数")
+public class PageInputUserDTO {
+
+    @ApiModelProperty("姓名")
+    private String name;
+
+    @ApiModelProperty("联系方式")
+    private String phone;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty("小区名称")
+    private String areaName;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty("标签")
+    private String tags;
+
+    @ApiModelProperty("标签查询字段 ")
+    private String tagName;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/PageUserAppletsBackstageDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/PageUserAppletsBackstageDTO.java
new file mode 100644
index 0000000..be3d5f6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/PageUserAppletsBackstageDTO.java
@@ -0,0 +1,71 @@
+package com.panzhihua.common.model.dtos.user;
+
+import java.util.Date;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.panzhihua.common.validated.PageGroup;
+import com.panzhihua.common.validated.PutGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 运营后台分页查询小程序用户
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-30 11:27
+ **/
+@Data
+@ApiModel(value = "运营后台分页查询小程序用户")
+public class PageUserAppletsBackstageDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    @NotNull(groups = {PageGroup.class}, message = "分页-当前页数不能为空")
+    @Min(groups = {PageGroup.class}, value = 1, message = "分页-当前页数不能为空")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    @NotNull(groups = {PageGroup.class}, message = "分页-每页记录数不能为空")
+    @Min(groups = {PageGroup.class}, value = 1, message = "分页-每页记录数不能为空")
+    private Long pageSize;
+
+    @ApiModelProperty(value = "用户手机号", example = "")
+    private String phone;
+
+    @ApiModelProperty(value = "所属社区", example = "0")
+    private Long communityId;
+
+    @ApiModelProperty(value = "搜索-注册开始时间", example = "2020-01-02 00:00:00")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAtBegin;
+
+    @ApiModelProperty(value = "搜索-注册结束时间", example = "2020-12-28 00:00:00")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAtEnd;
+
+    @ApiModelProperty(value = "状态 1 启用 2 禁用", example = "0")
+    @NotNull(groups = {PutGroup.class}, message = "状态不能为空")
+    @Min(value = 1, groups = {PutGroup.class}, message = "状态不能为空")
+    private Integer status;
+
+    @ApiModelProperty(value = "搜索-最后登录时间开始", example = "2020-01-02 00:00:00")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date lastLoginTimeBegin;
+
+    @ApiModelProperty(value = "搜索-最后登录时间结束", example = "2020-12-28 00:00:00")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date lastLoginTimeEnd;
+
+    @ApiModelProperty(value = "编辑-用户主键", example = "2")
+    @NotNull(groups = {PutGroup.class}, message = "用户主键不能为空")
+    @Min(value = 1, groups = {PutGroup.class}, message = "用户主键不能为空")
+    private Long userId;
+
+    private String areaCode;
+
+    private String appId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/SysUserEditTipsDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/SysUserEditTipsDTO.java
new file mode 100644
index 0000000..e9b8bb7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/SysUserEditTipsDTO.java
@@ -0,0 +1,22 @@
+package com.panzhihua.common.model.dtos.user;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "修改用户首页活动提示请求参数")
+public class SysUserEditTipsDTO {
+
+    /**
+     * 小程序首页是否显示公告(1.是 2.否)
+     */
+    @ApiModelProperty("小程序首页是否显示公告(1.是 2.否)")
+    private Integer isTips;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/SysUserFeedbackDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/SysUserFeedbackDTO.java
new file mode 100644
index 0000000..84f04b9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/user/SysUserFeedbackDTO.java
@@ -0,0 +1,69 @@
+package com.panzhihua.common.model.dtos.user;
+
+import java.util.Date;
+
+import javax.validation.constraints.NotBlank;
+
+import com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 意见反馈
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-31 13:26
+ **/
+@Data
+@ApiModel(value = "意见反馈")
+public class SysUserFeedbackDTO {
+
+    @ApiModelProperty(value = "id", hidden = true)
+    private Long id;
+
+    @ApiModelProperty(value = "反馈内容", required = true)
+    @NotBlank(groups = {AddGroup.class}, message = "反馈内容不能为空")
+    private String content;
+
+    @ApiModelProperty("反馈图片,多个用逗号隔开")
+    private String photoPah;
+
+    @ApiModelProperty(value = "create_at", hidden = true)
+    private Date createAt;
+
+    @ApiModelProperty(value = "update_at", hidden = true)
+    private Date updateAt;
+
+    @ApiModelProperty(value = "用户的id", hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "小区id", hidden = true)
+    private Long areaId;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "状态 0", hidden = true)
+    private Integer status;
+
+    @ApiModelProperty("1投诉建议2问题留言")
+    private Integer type;
+
+    @ApiModelProperty("页数")
+    private Integer page;
+
+    @ApiModelProperty("每页大小")
+    private Integer size;
+
+    @ApiModelProperty("用户昵称")
+    private String nickName;
+
+    @ApiModelProperty("用户姓名")
+    private String name;
+
+    @ApiModelProperty("电话")
+    private String phone;
+    private Long propertyId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/vaccines/EnrollUserByAppDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/vaccines/EnrollUserByAppDTO.java
new file mode 100644
index 0000000..94201fa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/vaccines/EnrollUserByAppDTO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.dtos.vaccines;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("用户信息")
+public class EnrollUserByAppDTO {
+
+    @ApiModelProperty("用户id")
+    private Long userId;
+
+    @ApiModelProperty("是否是自己(1.是 2.否)")
+    private Integer isUser;
+
+    /**
+     * 是否是自己(1.是 2.否)
+     */
+    public interface isUser {
+        int yes = 1;
+        int no = 2;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/vaccines/VaccinesByAdminDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/vaccines/VaccinesByAdminDTO.java
new file mode 100644
index 0000000..ad95a6d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/vaccines/VaccinesByAdminDTO.java
@@ -0,0 +1,27 @@
+package com.panzhihua.common.model.dtos.vaccines;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("疫苗分类列表请求参数")
+public class VaccinesByAdminDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty("疫苗id")
+    private Long id;
+
+    @ApiModelProperty("疫苗类型名称")
+    private String name;
+
+    @ApiModelProperty("疫苗描述")
+    private String describe;
+
+    private String areaCode;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/vaccines/VaccinesEnrollByAdminDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/vaccines/VaccinesEnrollByAdminDTO.java
new file mode 100644
index 0000000..5b669aa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/vaccines/VaccinesEnrollByAdminDTO.java
@@ -0,0 +1,42 @@
+package com.panzhihua.common.model.dtos.vaccines;
+
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("疫苗分类列表请求参数")
+public class VaccinesEnrollByAdminDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty("姓名")
+    private String name;
+
+    @ApiModelProperty("身份证号")
+    private String idCard;
+
+    @ApiModelProperty("手机号")
+    private String phone;
+
+    @ApiModelProperty("登记时间开始")
+    private String startTime;
+
+    @ApiModelProperty("登记时间结束")
+    private String endTime;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty("疫苗名称")
+    private String vaccines;
+
+    @ApiModelProperty("导出id集合")
+    private List<Long> ids;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/vaccines/VaccinesEnrollByAppDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/vaccines/VaccinesEnrollByAppDTO.java
new file mode 100644
index 0000000..c9a38ea
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/vaccines/VaccinesEnrollByAppDTO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.dtos.vaccines;
+
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("用户报名疫苗请求参数")
+public class VaccinesEnrollByAppDTO {
+
+    @ApiModelProperty("疫苗类型id")
+    private Long vaccinesId;
+
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty("报名用户列表")
+    private List<EnrollUserByAppDTO> enrollUserList;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/vaccines/VaccinesEnrollUserByAppDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/vaccines/VaccinesEnrollUserByAppDTO.java
new file mode 100644
index 0000000..bc9bf50
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/vaccines/VaccinesEnrollUserByAppDTO.java
@@ -0,0 +1,22 @@
+package com.panzhihua.common.model.dtos.vaccines;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("查询疫苗类型下用户列表请求参数")
+public class VaccinesEnrollUserByAppDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty("疫苗类型id")
+    private Long vaccinesId;
+
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/vaccines/VaccinesInoculationByAdminDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/vaccines/VaccinesInoculationByAdminDTO.java
new file mode 100644
index 0000000..f54336d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/vaccines/VaccinesInoculationByAdminDTO.java
@@ -0,0 +1,42 @@
+package com.panzhihua.common.model.dtos.vaccines;
+
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("疫苗接种记录请求参数")
+public class VaccinesInoculationByAdminDTO {
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty("姓名")
+    private String name;
+
+    @ApiModelProperty("身份证号")
+    private String idCard;
+
+    @ApiModelProperty("手机号")
+    private String phone;
+
+    @ApiModelProperty("接种时间开始")
+    private String startTime;
+
+    @ApiModelProperty("接种时间结束")
+    private String endTime;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty("接种剂次")
+    private String dosage;
+
+    @ApiModelProperty("导出id集合")
+    private List<Long> ids;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/visit/EventVisitCompleteDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/visit/EventVisitCompleteDTO.java
new file mode 100644
index 0000000..ddc1a98
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/visit/EventVisitCompleteDTO.java
@@ -0,0 +1,60 @@
+package com.panzhihua.common.model.dtos.visit;
+
+import java.io.Serializable;
+import java.util.List;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+
+import com.panzhihua.common.model.dtos.EventResourceDTO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author xyh
+ * @date 2021/6/24 11:30
+ */
+@ApiModel("完成走访DTO")
+@Data
+public class EventVisitCompleteDTO implements Serializable {
+
+    @ApiModelProperty(value = "音频列表")
+    List<EventResourceDTO> vosList;
+    @ApiModelProperty(value = "图片列表")
+    List<EventResourceDTO> imgList;
+    @ApiModelProperty(value = "视频列表")
+    List<EventResourceDTO> videoList;
+    @NotNull(message = "id不能为空")
+    @ApiModelProperty("id")
+    private Long id;
+    @ApiModelProperty("经纬度(,隔开)")
+    @NotEmpty(message = "经纬度不能为空")
+    private String latLng;
+    @ApiModelProperty("地址")
+    @NotEmpty(message = "地址不能为空")
+    private String address;
+    @ApiModelProperty("地址备注")
+    private String addressRemark;
+    @ApiModelProperty("0正常,1异常")
+    private Integer exception;
+    @ApiModelProperty("异常描述")
+    private String dellDesc;
+    @ApiModelProperty("异常选择")
+    private String option;
+    @ApiModelProperty("家庭联系方式")
+    @NotEmpty(message = "家庭联系方式不能为空")
+    private String familyPhone;
+    @ApiModelProperty("生活来源")
+    @NotEmpty(message = "生活来源不能为空")
+    private String familySource;
+    private Integer eventStatus;
+    @ApiModelProperty("生活来源")
+    private String remark;
+    @ApiModelProperty("完成时间")
+    @NotEmpty(message = "完成时间不能为空")
+    private String submitDate;
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/wx/TemplateData.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/wx/TemplateData.java
new file mode 100644
index 0000000..05cf708
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/wx/TemplateData.java
@@ -0,0 +1,17 @@
+package com.panzhihua.common.model.dtos.wx;
+
+import lombok.Data;
+
+@Data
+public class TemplateData {
+
+    private String value;
+
+    public TemplateData(String value) {
+        this.value = value;
+    }
+
+    public TemplateData() {
+
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/wx/TemplateParam.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/wx/TemplateParam.java
new file mode 100644
index 0000000..f9db4f6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/wx/TemplateParam.java
@@ -0,0 +1,20 @@
+package com.panzhihua.common.model.dtos.wx;
+
+import lombok.Data;
+
+@Data
+public class TemplateParam {
+
+    private String key;
+    private String value;
+
+    public TemplateParam(String key, String value) {
+        this.key = key;
+        this.value = value;
+    }
+
+    public TemplateParam() {
+
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/wx/UnionpayCarWash.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/wx/UnionpayCarWash.java
new file mode 100644
index 0000000..65abc6d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/wx/UnionpayCarWash.java
@@ -0,0 +1,23 @@
+package com.panzhihua.common.model.dtos.wx;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@ApiModel("银联支付和洗车订单关联表")
+public class UnionpayCarWash
+{
+    @ApiModelProperty(value = "主键")
+    private String id;
+    @ApiModelProperty(value = "洗车id")
+    private String carWashId;
+    @ApiModelProperty(value = "银联id")
+    private String unionpayOrderId;
+    @ApiModelProperty(value = "交易金额")
+    private String money;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/wx/WxSubscribeDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/wx/WxSubscribeDTO.java
new file mode 100644
index 0000000..ed941e1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/dtos/wx/WxSubscribeDTO.java
@@ -0,0 +1,61 @@
+package com.panzhihua.common.model.dtos.wx;
+
+import java.util.List;
+
+import com.panzhihua.common.utlis.StringUtils;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@ApiModel("微信订阅消息请求参数")
+@Data
+public class WxSubscribeDTO {
+
+    @ApiModelProperty("用户在小程序的openid")
+    private String touser;
+
+    @ApiModelProperty("所需下发的订阅模板id")
+    private String template_id;
+
+    @ApiModelProperty("点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转。")
+    private String page;
+
+    @ApiModelProperty("模板内容,格式形如 { \"key1\": { \"value\": any }, \"key2\": { \"value\": any } }")
+    private Object data;
+
+    @ApiModelProperty("跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版")
+    private String miniprogram_state;
+
+    @ApiModelProperty("进入小程序查看”的语言类型,支持zh_CN(简体中文)、en_US(英文)、zh_HK(繁体中文)、zh_TW(繁体中文),默认为zh_CN")
+    private String lang;
+
+    private List<TemplateParam> templateParamList;
+
+    public String toJSON() {
+        StringBuffer buffer = new StringBuffer();
+        buffer.append("{");
+        buffer.append(String.format("\"touser\":\"%s\"", this.touser)).append(",");
+        buffer.append(String.format("\"template_id\":\"%s\"", this.template_id)).append(",");
+        if (StringUtils.isNotEmpty(this.page)) {
+            buffer.append(String.format("\"page\":\"%s\"", this.page)).append(",");
+        }
+        if (StringUtils.isNotEmpty(this.miniprogram_state)) {
+            buffer.append(String.format("\"miniprogram_state\":\"%s\"", this.miniprogram_state)).append(",");
+        }
+        buffer.append("\"data\":{");
+        TemplateParam param = null;
+        for (int i = 0; i < this.templateParamList.size(); i++) {
+            param = templateParamList.get(i);
+            // 判断是否追加逗号
+            if (i < this.templateParamList.size() - 1) {
+                buffer.append(String.format("\"%s\": {\"value\":\"%s\"},", param.getKey(), param.getValue()));
+            } else {
+                buffer.append(String.format("\"%s\": {\"value\":\"%s\"}", param.getKey(), param.getValue()));
+            }
+        }
+        buffer.append("}");
+        buffer.append("}");
+        return buffer.toString();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/AESUtil.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/AESUtil.java
new file mode 100644
index 0000000..b36bfc7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/AESUtil.java
@@ -0,0 +1,169 @@
+package com.panzhihua.common.model.helper;
+
+import java.io.UnsupportedEncodingException;
+import java.nio.charset.StandardCharsets;
+import java.security.InvalidKeyException;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.security.spec.KeySpec;
+import java.util.Arrays;
+import java.util.Base64;
+
+import javax.crypto.*;
+import javax.crypto.spec.IvParameterSpec;
+import javax.crypto.spec.PBEKeySpec;
+import javax.crypto.spec.SecretKeySpec;
+
+/**
+ * AES 工具类
+ */
+public class AESUtil {
+
+    private static SecretKeySpec secretKey;
+    private static byte[] key;
+
+    /**
+     * AES 256 加密
+     *
+     * @param strToEncrypt
+     *            要加密的字符串
+     * @param secKey
+     *            秘钥
+     * @param salt
+     *            盐
+     * @return 加密后的字符串
+     */
+    public static String encrypt256(String strToEncrypt, String secKey, String salt) {
+        try {
+            byte[] iv = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+            IvParameterSpec ivspec = new IvParameterSpec(iv);
+
+            SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256");
+            KeySpec spec = new PBEKeySpec(secKey.toCharArray(), salt.getBytes(), 65536, 256);
+            SecretKey tmp = factory.generateSecret(spec);
+            SecretKeySpec secretKey = new SecretKeySpec(tmp.getEncoded(), "AES");
+
+            Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
+            cipher.init(Cipher.ENCRYPT_MODE, secretKey, ivspec);
+            return Base64.getEncoder().encodeToString(cipher.doFinal(strToEncrypt.getBytes(StandardCharsets.UTF_8)));
+        } catch (Exception e) {
+            System.out.println("Error while encrypting: " + e.toString());
+        }
+        return null;
+    }
+
+    /**
+     * AES 256 解密
+     *
+     * @param strToDecrypt
+     *            要解密的字符串
+     * @param secKey
+     *            秘钥
+     * @param salt
+     *            盐
+     * @return 解密后的字符串
+     */
+    public static String decrypt256(String strToDecrypt, String secKey, String salt) {
+        try {
+            byte[] iv = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
+            IvParameterSpec ivspec = new IvParameterSpec(iv);
+
+            SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256");
+            KeySpec spec = new PBEKeySpec(secKey.toCharArray(), salt.getBytes(), 65536, 256);
+            SecretKey tmp = factory.generateSecret(spec);
+            SecretKeySpec secretKey = new SecretKeySpec(tmp.getEncoded(), "AES");
+
+            Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5PADDING");
+            cipher.init(Cipher.DECRYPT_MODE, secretKey, ivspec);
+            return new String(cipher.doFinal(Base64.getDecoder().decode(strToDecrypt)));
+        } catch (Exception e) {
+            System.out.println("Error while decrypting: " + e.toString());
+        }
+        return null;
+    }
+
+    public static void setKey(String myKey) {
+        MessageDigest sha = null;
+        try {
+            key = myKey.getBytes(StandardCharsets.UTF_8);
+            sha = MessageDigest.getInstance("SHA-1");
+            key = sha.digest(key);
+            key = Arrays.copyOf(key, 16);
+            secretKey = new SecretKeySpec(key, "AES");
+        } catch (NoSuchAlgorithmException e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * AES 128(base64)加密
+     * 
+     * @param strToEncrypt
+     *            要加密的字符串
+     * @param secret
+     *            秘钥
+     * @return 加密后的字符串
+     */
+    public static String encrypt128(String strToEncrypt, String secret)
+        throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidKeyException, UnsupportedEncodingException,
+        BadPaddingException, IllegalBlockSizeException {
+        setKey(secret);
+        Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
+        cipher.init(Cipher.ENCRYPT_MODE, secretKey);
+        return Base64.getEncoder().encodeToString(cipher.doFinal(strToEncrypt.getBytes(StandardCharsets.UTF_8)));
+    }
+
+    /**
+     * AES 128(base64) 解密
+     * 
+     * @param strToDecrypt
+     *            要解密的字符串
+     * @param secret
+     *            秘钥
+     * @return 解密后的字符串
+     */
+    public static String decrypt128(String strToDecrypt, String secret) throws NoSuchPaddingException,
+        NoSuchAlgorithmException, BadPaddingException, IllegalBlockSizeException, InvalidKeyException {
+        setKey(secret);
+        Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5PADDING");
+        cipher.init(Cipher.DECRYPT_MODE, secretKey);
+        return new String(cipher.doFinal(Base64.getDecoder().decode(strToDecrypt)));
+    }
+
+}
+
+class AES256Example {
+    public static void main(String[] args) {
+        String originalString = "howtodoinjava.com";
+
+        String secKey = "this is my super secrt key";
+        String salt = "salt for me!!!";
+        String encryptedString = AESUtil.encrypt256(originalString, secKey, salt);
+        String decryptedString = AESUtil.decrypt256(encryptedString, secKey, salt);
+
+        System.out.println(originalString);
+        System.out.println(encryptedString);
+        System.out.println(decryptedString);
+    }
+}
+
+class AES128Example {
+    public static void main(String[] args) {
+        String[] originalString = new String[] {"51011234567892013", "13612345678", "四川省成都市高新区", "四川省成都市高新"};
+
+        String key = "5165465461dsfas";
+
+        Arrays.stream(originalString).forEach(os -> {
+            try {
+                String encryptedString = AESUtil.encrypt128(os, key);
+                String decryptedString = AESUtil.decrypt128(encryptedString, key);
+
+                System.out.println(os);
+                System.out.println(encryptedString);
+                System.out.println(decryptedString);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        });
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/SerializerBigDecimal.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/SerializerBigDecimal.java
new file mode 100644
index 0000000..770367e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/SerializerBigDecimal.java
@@ -0,0 +1,72 @@
+package com.panzhihua.common.model.helper;
+
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.text.DecimalFormat;
+import java.util.Objects;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.databind.BeanProperty;
+import com.fasterxml.jackson.databind.JsonMappingException;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
+import com.fasterxml.jackson.databind.ser.ContextualSerializer;
+
+/**
+ * BigDecimal序列化(默认保留二位小数和四舍五入)
+ * 
+ * @author cedoo
+ * @date 2021-4-19 01:24:28
+ */
+public class SerializerBigDecimal extends JsonSerializer<BigDecimal> implements ContextualSerializer {
+
+    protected DecimalFormat decimalFormat;
+
+    public SerializerBigDecimal() {}
+
+    public SerializerBigDecimal(DecimalFormat decimalFormat) {
+        this.decimalFormat = decimalFormat;
+    }
+
+    @Override
+    public void serialize(BigDecimal value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
+
+        if (Objects.isNull(value)) {
+            gen.writeNull();
+        } else {
+            if (null != decimalFormat) {
+                gen.writeNumber(decimalFormat.format(value));
+            } else {
+                gen.writeNumber(value.setScale(2, BigDecimal.ROUND_HALF_UP));
+            }
+        }
+    }
+
+    @Override
+    public JsonSerializer<?> createContextual(SerializerProvider prov, BeanProperty property)
+        throws JsonMappingException {
+
+        JsonFormat.Value format = findFormatOverrides(prov, property, handledType());
+        if (format == null) {
+            return this;
+        }
+
+        if (format.hasPattern()) {
+            DecimalFormat decimalFormat = new DecimalFormat(format.getPattern());
+            decimalFormat.setRoundingMode(RoundingMode.HALF_UP);
+            return new SerializerBigDecimal(decimalFormat);
+        }
+
+        return this;
+    }
+
+    protected JsonFormat.Value findFormatOverrides(SerializerProvider provider, BeanProperty prop,
+        Class<?> typeForDefaults) {
+        if (prop != null) {
+            return prop.findPropertyFormat(provider.getConfig(), typeForDefaults);
+        }
+        return provider.getDefaultPropertyFormat(typeForDefaults);
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/encrypt/DoEncrytDecrypt.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/encrypt/DoEncrytDecrypt.java
new file mode 100644
index 0000000..4fd36d7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/encrypt/DoEncrytDecrypt.java
@@ -0,0 +1,81 @@
+package com.panzhihua.common.model.helper.encrypt;
+
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Field;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import com.panzhihua.common.model.helper.AESUtil;
+
+import lombok.extern.slf4j.Slf4j;
+
+/***
+ * 默认实现: AES 128 加密、解密 可自定义实现{@link IEncryptDecrypt }接口
+ *
+ * @author cedoo
+ * @since 2021-4-1 10:40:52
+ */
+@Slf4j
+@Component
+public class DoEncrytDecrypt implements IEncryptDecrypt {
+
+    @Value("${domain.aesKey:}")
+    private String aesKey;
+
+    @Override
+    public <T> T encrypt(Field[] declaredFields, T parameterObject) throws IllegalAccessException {
+        for (Field field : declaredFields) {
+            if (field.getType() == String.class) {
+                field.setAccessible(true);
+                for (Annotation annotation : field.getAnnotations()) {
+                    if (annotation.annotationType() == EncryptDecryptField.class
+                        || annotation.annotationType() == EncryptQuery.class) {
+                        log.debug("加密字段:" + field.getName());
+                        Object fieldVal = field.get(parameterObject);
+                        if (fieldVal != null) {
+                            try {
+                                String encryptedStr = AESUtil.encrypt128(fieldVal.toString(), aesKey);
+                                field.set(parameterObject, encryptedStr);
+                            } catch (Exception e) {
+                                log.debug("加密失败");
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        return parameterObject;
+    }
+
+    @Override
+    public <T> T decrypt(T result) throws IllegalAccessException {
+
+        for (Field field : result.getClass().getDeclaredFields()) {
+            try {
+                field.setAccessible(true);
+                if (field.get(result) != null) {
+                    for (Annotation annotation : field.getAnnotations()) {
+                        if (annotation.annotationType() == EncryptDecryptField.class) {
+                            log.debug("解密密字段:" + field.getName());
+                            String fieldVal = field.get(result).toString();
+                            try {
+                                String decryptVal = AESUtil.decrypt128(fieldVal, aesKey);
+                                field.set(result, decryptVal != null ? decryptVal : fieldVal);
+                            } catch (Exception e) {
+                                /**
+                                 * 兼容原始未加密数据
+                                 */
+                                field.set(result, fieldVal);
+                            }
+                        }
+                    }
+                }
+            } catch (IllegalAccessException e) {
+                throw e;
+            }
+        }
+        return result;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/encrypt/EncryptDecryptClass.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/encrypt/EncryptDecryptClass.java
new file mode 100644
index 0000000..02125a3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/encrypt/EncryptDecryptClass.java
@@ -0,0 +1,12 @@
+package com.panzhihua.common.model.helper.encrypt;
+
+import java.lang.annotation.*;
+
+/**
+ * 需要加解密的类注解
+ */
+@Documented
+@Inherited
+@Target({ElementType.TYPE})
+@Retention(RetentionPolicy.RUNTIME)
+public @interface EncryptDecryptClass {}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/encrypt/EncryptDecryptField.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/encrypt/EncryptDecryptField.java
new file mode 100644
index 0000000..826ffcf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/encrypt/EncryptDecryptField.java
@@ -0,0 +1,14 @@
+package com.panzhihua.common.model.helper.encrypt;
+
+import java.lang.annotation.*;
+
+/**
+ * 加密字段注解
+ */
+@Documented
+@Inherited
+@Target({ElementType.FIELD})
+@Retention(RetentionPolicy.RUNTIME)
+public @interface EncryptDecryptField {
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/encrypt/EncryptQuery.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/encrypt/EncryptQuery.java
new file mode 100644
index 0000000..1b02f64
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/encrypt/EncryptQuery.java
@@ -0,0 +1,14 @@
+package com.panzhihua.common.model.helper.encrypt;
+
+import java.lang.annotation.*;
+
+/**
+ * 加密字段搜索
+ */
+@Documented
+@Inherited
+@Target({ElementType.FIELD})
+@Retention(RetentionPolicy.RUNTIME)
+public @interface EncryptQuery {
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/encrypt/EncryptQueryClass.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/encrypt/EncryptQueryClass.java
new file mode 100644
index 0000000..7a0a285
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/encrypt/EncryptQueryClass.java
@@ -0,0 +1,14 @@
+package com.panzhihua.common.model.helper.encrypt;
+
+import java.lang.annotation.*;
+
+/**
+ * 加密字段搜索
+ */
+@Documented
+@Inherited
+@Target({ElementType.TYPE})
+@Retention(RetentionPolicy.RUNTIME)
+public @interface EncryptQueryClass {
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/encrypt/IEncryptDecrypt.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/encrypt/IEncryptDecrypt.java
new file mode 100644
index 0000000..d6955e0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/encrypt/IEncryptDecrypt.java
@@ -0,0 +1,29 @@
+package com.panzhihua.common.model.helper.encrypt;
+
+import java.lang.reflect.Field;
+
+public interface IEncryptDecrypt {
+
+    /**
+     * 加密方法
+     * 
+     * @param declaredFields
+     *            反射bean成员变量
+     * @param parameterObject
+     *            Mybatis入参
+     * @param <T>
+     * @return
+     */
+    <T> T encrypt(Field[] declaredFields, T parameterObject) throws IllegalAccessException;
+
+    /**
+     * 解密方法
+     * 
+     * @param result
+     *            Mybatis 返回值,需要判断是否是ArrayList类型
+     * @param <T>
+     * @return
+     */
+    <T> T decrypt(T result) throws IllegalAccessException;
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/sensitive/Desensitizer.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/sensitive/Desensitizer.java
new file mode 100644
index 0000000..1cf48a8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/sensitive/Desensitizer.java
@@ -0,0 +1,7 @@
+package com.panzhihua.common.model.helper.sensitive;
+
+import java.util.function.Function;
+
+public interface Desensitizer extends Function<String, String> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/sensitive/Sensitive.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/sensitive/Sensitive.java
new file mode 100644
index 0000000..5fa5179
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/sensitive/Sensitive.java
@@ -0,0 +1,12 @@
+package com.panzhihua.common.model.helper.sensitive;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.FIELD)
+public @interface Sensitive {
+    SensitiveStrategy strategy();
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/sensitive/SensitiveStrategy.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/sensitive/SensitiveStrategy.java
new file mode 100644
index 0000000..06449bd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/helper/sensitive/SensitiveStrategy.java
@@ -0,0 +1,51 @@
+package com.panzhihua.common.model.helper.sensitive;
+
+/**
+ * 脱敏策略.
+ *
+ * @author cedoo
+ * @since 2021-4-1 10:40:52
+ */
+public enum SensitiveStrategy {
+    /**
+     * Username sensitive strategy.
+     */
+    USERNAME(s -> s.replaceAll("(\\S)\\S(\\S*)", "$1*$2")),
+    /**
+     * Id card sensitive type.
+     */
+    ID_CARD(s -> s.replaceAll("(\\d{4})\\d{10}(\\w{4})", "$1****$2")),
+    /**
+     * Phone sensitive type.
+     */
+    PHONE(s -> s.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2")),
+
+    /**
+     * Address sensitive type.
+     */
+    ADDRESS(s -> s.replaceAll("(\\S{8})\\S{4}(\\S*)\\S{4}", "$1****$2****")),
+
+    /**
+     * 中文地址
+     */
+    ADDRESS_CN(s -> {
+        // List<Word> words = WordSegmenter.seg(s);
+        // Arrays.toString(words.toArray());
+        return s.replaceAll("(\\S{8})(\\S*)\\S{4}", "$1****$2****");
+    });
+
+    private final Desensitizer desensitizer;
+
+    SensitiveStrategy(Desensitizer desensitizer) {
+        this.desensitizer = desensitizer;
+    }
+
+    /**
+     * Gets desensitizer.
+     *
+     * @return the desensitizer
+     */
+    public Desensitizer getDesensitizer() {
+        return desensitizer;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/query/visit/EventTasksQuery.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/query/visit/EventTasksQuery.java
new file mode 100644
index 0000000..e55fa50
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/query/visit/EventTasksQuery.java
@@ -0,0 +1,46 @@
+package com.panzhihua.common.model.query.visit;
+
+import java.io.Serializable;
+
+import com.panzhihua.common.model.dtos.PageDTO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author xyh
+ * @date 2021/6/21 15:44
+ */
+@ApiModel("走访查询")
+@Data
+public class EventTasksQuery extends PageDTO implements Serializable {
+
+    @ApiModelProperty("走访任务状态,app:0全部,1待走访,2已完成 | 后台:0全部,1待走访 3正常,6已撤销,7异常")
+    private Integer status;
+
+    @ApiModelProperty("走访记录状态,app:0全部,3正常,7异常")
+    private Integer eventStatus;
+
+    @ApiModelProperty("人员标签")
+    private String tag;
+
+    @ApiModelProperty("是否异常")
+    private Integer isExp;
+
+    @ApiModelProperty("关键字")
+    private String keyWord;
+
+    @ApiModelProperty("需走访人ID")
+    private Long visiterId;
+
+    private Long communityId;
+
+    private Long userId;
+
+    @ApiModelProperty("网格id")
+    private Long gridId;
+
+    @ApiModelProperty("正常状态(0.正常 1.异常)")
+    private Integer exception;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/query/visit/EventVisitListQuery.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/query/visit/EventVisitListQuery.java
new file mode 100644
index 0000000..89b209b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/query/visit/EventVisitListQuery.java
@@ -0,0 +1,43 @@
+package com.panzhihua.common.model.query.visit;
+
+import java.io.Serializable;
+
+import com.panzhihua.common.model.dtos.PageDTO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 后台查询需走访人员
+ * 
+ * @author xyh
+ * @date 2021/6/21 15:44
+ */
+@ApiModel("需走访人员查询")
+@Data
+public class EventVisitListQuery extends PageDTO implements Serializable {
+
+    @ApiModelProperty("最近一次走访状态")
+    private Integer status;
+
+    @ApiModelProperty("人员标签")
+    private String tag;
+
+    @ApiModelProperty("性别")
+    private Integer sex;
+
+    @ApiModelProperty("政治面貌")
+    private Integer political;
+
+    @ApiModelProperty("户主")
+    private Integer houseHolder;
+
+    @ApiModelProperty("关联实有房屋")
+    private Integer relationHouse;
+
+    @ApiModelProperty("关键字")
+    private String keyWord;
+
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/AppletUserInfoVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/AppletUserInfoVO.java
new file mode 100644
index 0000000..71d7e0a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/AppletUserInfoVO.java
@@ -0,0 +1,133 @@
+package com.panzhihua.common.model.vos;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.Set;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.panzhihua.common.model.vos.community.ComActVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 小程序用户信息
+ */
+@Data
+@ApiModel(value = "小程序用户信息")
+public class AppletUserInfoVO {
+
+    @ApiModelProperty("user_id")
+    private Long userId;
+
+    @ApiModelProperty("手机号")
+    private String phone;
+
+    @ApiModelProperty("昵称")
+    private String nickName;
+
+    @ApiModelProperty("真实名字")
+    private String name;
+
+    @ApiModelProperty("社区id")
+    private Long communityId;
+
+    @ApiModelProperty("社区名字")
+    private String communityName;
+
+    @ApiModelProperty("性别 1 男 2 女")
+    private Integer sex;
+
+    @ApiModelProperty("生日")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date birthday;
+
+    @ApiModelProperty("头像")
+    private String imageUrl;
+
+    @ApiModelProperty("是否志愿者 0否 1 是")
+    private Integer isVolunteer;
+
+    @ApiModelProperty("是否党员 0 否 1 是")
+    private Integer isPartymember;
+
+    @ApiModelProperty("1 启用 2 禁用")
+    private Integer status;
+
+    @ApiModelProperty("创建时间")
+    private Date createAt;
+
+    @ApiModelProperty("最后登录时间")
+    private Date lastLoginTime;
+
+    @ApiModelProperty("角色集合")
+    private Set<String> roles;
+
+    @ApiModelProperty("权限集合")
+    private Set<String> permissions;
+
+    @ApiModelProperty("身份证号")
+    private String idCard;
+
+    @ApiModelProperty("标签 多个用,隔开")
+    private String tags;
+
+    @ApiModelProperty(value = "分页每页数量", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "分页当前记录数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty("人脸采集审核状态 0 待审核 1 审核通过 2驳回")
+    private Integer faceState;
+
+    @ApiModelProperty("操作类型 1通过 2驳回 3删除")
+    private Integer operationType;
+
+    @ApiModelProperty("用户小区id")
+    private Long areaId;
+
+    @ApiModelProperty("用户所在社区信息")
+    private ComActVO comActVO;
+
+    @ApiModelProperty("0 未申请 1 申请中 2 通过 3 驳回")
+    private Integer volunteerStatus;
+
+    @ApiModelProperty("是否注册 0 否 1 是")
+    private Integer isRegister;
+
+    @ApiModelProperty("年龄")
+    private Integer age;
+
+    @ApiModelProperty("政治面貌:1 - 党员;2 - 团员;3 - 群众")
+    private Integer politicalOutlook;
+
+    @ApiModelProperty("是否已实名(1.是 2.否)")
+    private Integer isRealNamed;
+
+    @ApiModelProperty("关键词")
+    private String keyWord;
+
+    @ApiModelProperty("钱包id")
+    private Long walletId;
+
+    @ApiModelProperty("钱包收益总金额")
+    private BigDecimal incomeAmount;
+
+    @ApiModelProperty("钱包可用金额")
+    private BigDecimal availableAmount;
+
+    @ApiModelProperty("钱包结算金额")
+    private BigDecimal settlementAmount;
+
+    @ApiModelProperty("积分总余额")
+    private Integer integralSum;
+
+    @ApiModelProperty("积分可用余额")
+    private Integer integralAvailableSum;
+
+    @ApiModelProperty("积分冻结金额")
+    private Integer integralFrozenSum;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/AppletesBackstageConfigVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/AppletesBackstageConfigVO.java
new file mode 100644
index 0000000..350fb9f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/AppletesBackstageConfigVO.java
@@ -0,0 +1,23 @@
+package com.panzhihua.common.model.vos;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.advertisement.ComOpsAdvJumpVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 运营后台编辑配置
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-28 17:45
+ **/
+@Data
+@ApiModel(value = "运营后台编辑配置")
+public class AppletesBackstageConfigVO {
+
+    @ApiModelProperty("广告配置参数集合")
+    private List<ComOpsAdvJumpVO> comOpsAdvJumpDTOS;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/BcDictionaryItemVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/BcDictionaryItemVO.java
new file mode 100644
index 0000000..f7ef6e3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/BcDictionaryItemVO.java
@@ -0,0 +1,30 @@
+package com.panzhihua.common.model.vos;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * @author manailin
+ * @date 2021/6/11 16:27
+ */
+@ApiModel("字典项")
+@Data
+public class BcDictionaryItemVO implements Serializable {
+
+    /**
+     * 字典项名
+     */
+    private String dictItemName;
+
+    /**
+     * 字典项值
+     */
+    private String dictValue;
+
+    /**
+     * 助记码
+     */
+    private String mnemonicCode;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/BcDictionaryVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/BcDictionaryVO.java
new file mode 100644
index 0000000..05dec7b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/BcDictionaryVO.java
@@ -0,0 +1,27 @@
+package com.panzhihua.common.model.vos;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author xyh
+ * @date 2021/6/11 16:27
+ */
+@ApiModel("字典项")
+@Data
+public class BcDictionaryVO implements Serializable {
+
+    @ApiModelProperty(value = "字典项名称")
+    private String dictName;
+    @ApiModelProperty(value = "字典项值")
+    private String dictValue;
+    @ApiModelProperty(value = "字典项助记码")
+    private String code;
+    /**
+     * 字典id
+     */
+    private Long dictId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/ComActSocialMemberVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/ComActSocialMemberVO.java
new file mode 100644
index 0000000..b22a87a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/ComActSocialMemberVO.java
@@ -0,0 +1,98 @@
+package com.panzhihua.common.model.vos;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel
+public class ComActSocialMemberVO {
+    private Long id;
+
+    /**
+     * 姓名
+     */
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    /**
+     * 手机号
+     */
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+
+    /**
+     * 社会组织id
+     */
+    @ApiModelProperty(value = "社会组织id")
+    private Long orgId;
+
+    /**
+     * 职位
+     */
+    @ApiModelProperty(value = "职位")
+    private String position;
+
+    /**
+     * 身份证号
+     */
+    @ApiModelProperty(value = "身份证号")
+    private String idCard;
+
+    /**
+     * 账号
+     */
+    @ApiModelProperty(value = "账号")
+    private String account;
+
+    /**
+     * 密码
+     */
+    @ApiModelProperty(value = "密码")
+    private String password;
+
+    /**
+     * 状态1启用 0停用
+     */
+    @ApiModelProperty(value = "状态1启用 0停用")
+    private Integer status;
+
+    /**
+     * 照片
+     */
+    @ApiModelProperty(value = "照片")
+    private String image;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    /**
+     * 街道id
+     */
+    @ApiModelProperty(value = "街道id")
+    private Long streetId;
+
+    /**
+     * 所属组织
+     */
+    @ApiModelProperty(value = "所属组织")
+    private String orgName;
+
+    @ApiModelProperty(value = "年龄")
+    private Integer age;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/DateVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/DateVO.java
new file mode 100644
index 0000000..c229755
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/DateVO.java
@@ -0,0 +1,19 @@
+package com.panzhihua.common.model.vos;
+
+import lombok.Data;
+
+/**
+ * @author Tuzi
+ * @date 2023年02月03日 17:55
+ */
+@Data
+public class DateVO {
+    private String now;
+    private String offset16;
+    private String offset27;
+    private String offset35;
+    private String offset45;
+    private String offset55;
+    private Long communityId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/DictionaryVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/DictionaryVO.java
new file mode 100644
index 0000000..1df6726
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/DictionaryVO.java
@@ -0,0 +1,29 @@
+package com.panzhihua.common.model.vos;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author manailin
+ * @date 2021/6/11 16:27
+ */
+@ApiModel("字典")
+@Data
+public class DictionaryVO implements Serializable {
+    private Long id;
+    @ApiModelProperty(value = "字典项名称")
+    private String dictName;
+    @ApiModelProperty(value = "字典项值")
+    private String dictKey;
+    @ApiModelProperty(value = "字典项助记码")
+    private Long parentId;
+
+    /**
+     * 层级
+     */
+    private Integer levelIndex;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/EditUserInfoAppDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/EditUserInfoAppDTO.java
new file mode 100644
index 0000000..bae042c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/EditUserInfoAppDTO.java
@@ -0,0 +1,17 @@
+package com.panzhihua.common.model.vos;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "用户修改信息")
+public class EditUserInfoAppDTO {
+
+    @ApiModelProperty("用户昵称")
+    private String nickName;
+
+    @ApiModelProperty("用户头像url")
+    private String imagesUrl;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/EditUserInfoPassAppDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/EditUserInfoPassAppDTO.java
new file mode 100644
index 0000000..175671c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/EditUserInfoPassAppDTO.java
@@ -0,0 +1,30 @@
+package com.panzhihua.common.model.vos;
+
+import javax.validation.constraints.NotBlank;
+
+import com.panzhihua.common.validated.PutGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "用户修改信息")
+public class EditUserInfoPassAppDTO {
+
+    @ApiModelProperty("原密码")
+    @NotBlank(groups = {PutGroup.class}, message = "原密码不能为空")
+    private String oldPassword;
+
+    @ApiModelProperty("新密码")
+    @NotBlank(groups = {PutGroup.class}, message = "新密码不能为空")
+    private String newPassword;
+
+    @ApiModelProperty("确认密码")
+    @NotBlank(groups = {PutGroup.class}, message = "确认密码不能为空")
+    private String confirmPassword;
+
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/IPageVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/IPageVO.java
new file mode 100644
index 0000000..7378073
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/IPageVO.java
@@ -0,0 +1,225 @@
+/*
+ * Copyright (c) 2011-2020, baomidou (jobob@qq.com). <p> Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License. You may obtain a copy of the License at <p>
+ * https://www.apache.org/licenses/LICENSE-2.0 <p> Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
+ * either express or implied. See the License for the specific language governing permissions and limitations under the
+ * License.
+ */
+package com.panzhihua.common.model.vos;
+
+import static java.util.stream.Collectors.toList;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
+
+/**
+ * 分页 Page 对象接口
+ *
+ * @author
+ * @since
+ */
+public class IPageVO<T> implements Serializable {
+
+    /**
+     * 获取排序信息,排序的字段和正反序
+     *
+     * @return 排序信息
+     */
+    List<Object> orders() {
+        return null;
+    }
+
+    /**
+     * KEY/VALUE 条件
+     *
+     * @return ignore
+     * @deprecated 3.4.0 @2020-06-30
+     */
+    @Deprecated
+    Map<Object, Object> condition() {
+        return null;
+    }
+
+    /**
+     * 自动优化 COUNT SQL【 默认:true 】
+     *
+     * @return true 是 / false 否
+     */
+    boolean optimizeCountSql() {
+        return true;
+    }
+
+    /**
+     * 进行 count 查询 【 默认: true 】
+     *
+     * @return true 是 / false 否
+     */
+    boolean isSearchCount() {
+        return true;
+    }
+
+    /**
+     * 计算当前分页偏移量
+     */
+    long offset() {
+        long current = getCurrent();
+        if (current <= 1L) {
+            return 0L;
+        }
+        return (current - 1) * getSize();
+    }
+
+    /**
+     * 最大每页分页数限制,优先级高于分页插件内的 maxLimit
+     *
+     * @since 3.4.0 @2020-07-17
+     */
+    Long maxLimit() {
+        return null;
+    }
+
+    /**
+     * 当前分页总页数
+     */
+    long getPages() {
+        if (getSize() == 0) {
+            return 0L;
+        }
+        long pages = getTotal() / getSize();
+        if (getTotal() % getSize() != 0) {
+            pages++;
+        }
+        return pages;
+    }
+
+    /**
+     * 内部什么也不干
+     * <p>
+     * 只是为了 json 反序列化时不报错
+     * </p>
+     */
+    IPageVO<T> setPages(long pages) {
+        // to do nothing
+        return this;
+    }
+
+    /**
+     * 设置是否命中count缓存
+     *
+     * @param hit
+     *            是否命中
+     * @since 3.3.1
+     * @deprecated 3.4.0 @2020-06-30 缓存遵循mybatis的一或二缓
+     */
+    @Deprecated
+    void hitCount(boolean hit) {
+
+    }
+
+    /**
+     * 是否命中count缓存
+     *
+     * @return 是否命中count缓存
+     * @since 3.3.1
+     * @deprecated 3.4.0 @2020-06-30 缓存遵循mybatis的一或二缓
+     */
+    @Deprecated
+    boolean isHitCount() {
+        return false;
+    }
+
+    /**
+     * 分页记录列表
+     *
+     * @return 分页对象记录列表
+     */
+    List<T> getRecords() {
+        return null;
+    }
+
+    /**
+     * 设置分页记录列表
+     */
+    IPageVO<T> setRecords(List<T> records) {
+        return null;
+    }
+
+    /**
+     * 当前满足条件总行数
+     *
+     * @return 总条数
+     */
+    long getTotal() {
+        return 0l;
+    }
+
+    /**
+     * 设置当前满足条件总行数
+     */
+    IPageVO<T> setTotal(long total) {
+        return null;
+    }
+
+    /**
+     * 获取每页显示条数
+     *
+     * @return 每页显示条数
+     */
+    long getSize() {
+        return 0;
+    }
+
+    /**
+     * 设置每页显示条数
+     */
+    IPageVO<T> setSize(long size) {
+        return null;
+    }
+
+    /**
+     * 当前页
+     *
+     * @return 当前页
+     */
+    long getCurrent() {
+        return 0l;
+    }
+
+    /**
+     * 设置当前页
+     */
+    IPageVO<T> setCurrent(long current) {
+        return null;
+    }
+
+    /**
+     * IPageVO 的泛型转换
+     *
+     * @param mapper
+     *            转换函数
+     * @param <R>
+     *            转换后的泛型
+     * @return 转换泛型后的 IPageVO
+     */
+    @SuppressWarnings("unchecked")
+    <R> IPageVO<R> convert(Function<? super T, ? extends R> mapper) {
+        List<R> collect = this.getRecords().stream().map(mapper).collect(toList());
+        return ((IPageVO<R>)this).setRecords(collect);
+    }
+
+    /**
+     * 老分页插件不支持
+     * <p>
+     * MappedStatement 的 id
+     *
+     * @return id
+     * @since 3.4.0 @2020-06-19
+     */
+    String countId() {
+        return null;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/IndexDataKanbanVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/IndexDataKanbanVO.java
new file mode 100644
index 0000000..0c9ff76
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/IndexDataKanbanVO.java
@@ -0,0 +1,37 @@
+package com.panzhihua.common.model.vos;
+
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 运营后台数据看板
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-05 15:23
+ **/
+@Data
+@ApiModel(value = "运营后台数据看板")
+public class IndexDataKanbanVO {
+
+    @ApiModelProperty("全部用户")
+    private Integer allUser;
+    @ApiModelProperty("新增用户")
+    private Integer addUser;
+    @ApiModelProperty("日活跃用户")
+    private Integer activeDayUser;
+    @ApiModelProperty("周活跃用户")
+    private Integer activeWeekUser;
+    @ApiModelProperty("社区用户量x轴")
+    private List<String> communityUserX;
+    @ApiModelProperty("社区用户量y轴")
+    private List<Integer> communityUserY;
+    @ApiModelProperty("社区活跃度x轴")
+    private List<String> communityActiveUserX;
+    @ApiModelProperty("用户新增数量y轴")
+    private List<Integer> communityAddUserY;
+    @ApiModelProperty("日活跃用户数量y轴")
+    private List<Integer> communityActiveUserY;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/IndexDataVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/IndexDataVO.java
new file mode 100644
index 0000000..c9daa3e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/IndexDataVO.java
@@ -0,0 +1,38 @@
+package com.panzhihua.common.model.vos;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.CommunityActivitiesVO;
+import com.panzhihua.common.model.vos.community.CommunityGovernanceTrendsVO;
+import com.panzhihua.common.model.vos.community.TodoEventsVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 社区管理后台数据看板
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-06 09:39
+ **/
+@Data
+@ApiModel(value = "社区管理后台数据看板")
+public class IndexDataVO {
+
+    @ApiModelProperty("全部用户")
+    private Integer allUser;
+    @ApiModelProperty("已登记房屋")
+    private Integer house;
+    @ApiModelProperty("志愿者人数")
+    private Integer volunteerUser;
+    @ApiModelProperty("党员人数")
+    private Integer partymemberUser;
+    @ApiModelProperty("代办事件")
+    private List<TodoEventsVO> todoEventsVOList;
+    @ApiModelProperty("社区治理动态")
+    private CommunityGovernanceTrendsVO communityGovernanceTrendsVO;
+    @ApiModelProperty("社区活动情况")
+    private List<CommunityActivitiesVO> communityActivitiesVOS;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/LiveVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/LiveVO.java
new file mode 100644
index 0000000..f10e007
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/LiveVO.java
@@ -0,0 +1,24 @@
+package com.panzhihua.common.model.vos;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 天气信息对象
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-8-17 12:55
+ **/
+@Data
+@ApiModel(value = "天气信息返回体")
+public class LiveVO {
+    private String adcode;
+    private String city;
+    private String humidity;
+    private String province;
+    private String reporttime;
+    private String temperature;
+    private String weather;
+    private String winddirection;
+    private String windpower;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/LoginReturnVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/LoginReturnVO.java
new file mode 100644
index 0000000..3d0d9c8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/LoginReturnVO.java
@@ -0,0 +1,31 @@
+package com.panzhihua.common.model.vos;
+
+import com.panzhihua.common.validated.AddGroup;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 登录返回
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-27 08:55
+ **/
+@Data
+@ApiModel(value = "登录返回体")
+public class LoginReturnVO {
+    @ApiModelProperty("接口请求令牌")
+    private String token;
+    @ApiModelProperty("刷新token有效期长")
+    private String refreshToken;
+    @ApiModelProperty("communityId")
+    private Long communityId;
+    @ApiModelProperty("openId")
+    private String openId;
+    @ApiModelProperty("社区经度")
+    private String lng;
+    @ApiModelProperty("社区维度")
+    private String lat;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/LoginReturnsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/LoginReturnsVO.java
new file mode 100644
index 0000000..8fd27c3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/LoginReturnsVO.java
@@ -0,0 +1,24 @@
+package com.panzhihua.common.model.vos;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 登录返回
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-27 08:55
+ **/
+@Data
+@ApiModel(value = "登录返回体")
+public class LoginReturnsVO {
+    @ApiModelProperty("接口请求令牌")
+    private String token;
+    @ApiModelProperty("刷新token有效期长")
+    private String refreshToken;
+    @ApiModelProperty("用户id")
+    private Long userId;
+    @ApiModelProperty("社区id")
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/LoginUserInfoVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/LoginUserInfoVO.java
new file mode 100644
index 0000000..bcc1f03
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/LoginUserInfoVO.java
@@ -0,0 +1,282 @@
+package com.panzhihua.common.model.vos;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Set;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+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.vos.community.ComActVO;
+import com.panzhihua.common.model.vos.community.ComMngStructAreaVO;
+import com.panzhihua.common.model.vos.community.ComMngStructHouseVO;
+import com.panzhihua.common.model.vos.shop.ComShopUserAddressVO;
+import com.panzhihua.common.model.vos.user.ComMngFamilyInfoVO;
+import com.panzhihua.common.model.vos.user.RoleVO;
+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: 登录用户信息
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-24 09:35
+ **/
+@Data
+@ApiModel(value = "用户信息")
+public class LoginUserInfoVO {
+
+    @ApiModelProperty("user_id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long userId;
+
+    @ApiModelProperty("微信会话密钥")
+    private String sessionKey;
+
+    @ApiModelProperty("用户在开放平台的唯一标识符")
+    private String unionid;
+
+    @ApiModelProperty("登录账户")
+    private String account;
+
+    @ApiModelProperty("登录密码")
+    private String password;
+
+    @ApiModelProperty("微信小程序唯一标识")
+    private String openid;
+
+    @ApiModelProperty("手机号")
+    private String phone;
+
+    @ApiModelProperty("昵称")
+    private String nickName;
+
+    @ApiModelProperty("真实名字")
+    @NotBlank(groups = {AddGroup.class}, message = "真实名字不能为空")
+    private String name;
+
+    @ApiModelProperty("社区id")
+    @Min(value = 1, groups = {PutGroup.class}, message = "社区id不能为空")
+    @NotNull(groups = {PutGroup.class}, message = "社区id不能为空")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long communityId;
+
+    @ApiModelProperty("社区名字")
+    private String communityName;
+
+    @ApiModelProperty("性别 1 男 2 女")
+    private Integer sex;
+
+    @ApiModelProperty("是否本社区的团队或者党委、或是系统管理人员 1 是 2 否")
+    private Integer ismemberrole;
+
+    @ApiModelProperty("生日")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date birthday;
+
+    @ApiModelProperty("头像")
+    private String imageUrl;
+
+    @ApiModelProperty(value = "用户类型 1 小程序 2 运营平台 3 社区平台 5 商家后台 6 网格综治APP 7 网格综治后台")
+    private Integer type;
+
+    @ApiModelProperty("职业")
+    private String job;
+
+    @ApiModelProperty("是否志愿者 0否 1 是")
+    private Integer isVolunteer;
+
+    @ApiModelProperty("是否党员 0 否 1 是")
+    private Integer isPartymember;
+
+    @ApiModelProperty("1 启用 2 禁用")
+    private Integer status;
+
+    @ApiModelProperty("创建时间")
+    private Date createAt;
+
+    @ApiModelProperty("最后登录时间")
+    private Date lastLoginTime;
+
+    @ApiModelProperty("角色集合")
+    private Set<String> roles;
+
+    @ApiModelProperty("权限集合")
+    private Set<String> permissions;
+
+    @ApiModelProperty("人脸采集照片url")
+    private String faceUrl;
+
+    @ApiModelProperty("驳回原因")
+    private String rejectReson;
+
+    @ApiModelProperty("身份证号")
+    @NotBlank(groups = {AddGroup.class}, message = "身份证号不能为空")
+    private String idCard;
+
+    @ApiModelProperty("标签 多个用,隔开")
+    private String tags;
+
+    @ApiModelProperty("家庭id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long familyId;
+
+    @ApiModelProperty(value = "分页每页数量", example = "10")
+    private Long pageSize;
+
+    @ApiModelProperty(value = "分页当前记录数", example = "1")
+    private Long pageNum;
+
+    @ApiModelProperty("人脸采集审核状态 0 待审核 1 审核通过 2驳回")
+    private Integer faceState;
+
+    @ApiModelProperty("操作类型 1通过 2驳回 3删除")
+    private Integer operationType;
+
+    @ApiModelProperty("家庭成员")
+    private List<ComMngFamilyInfoVO> comMngFamilyInfoVOS;
+
+    @ApiModelProperty("房屋信息")
+    private List<ComMngStructHouseVO> comMngStructHouseVOS;
+
+    @ApiModelProperty("用户小区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    // @Min(value = 1,groups = {PutGroup.class},message = "用户小区id不能为空")
+    // @NotNull(groups = {PutGroup.class},message = "用户小区id不能为空")
+    private Long areaId;
+
+    @ApiModelProperty("用户所在社区信息")
+    private ComActVO comActVO;
+
+    @ApiModelProperty("小区信息")
+    private ComMngStructAreaVO comMngStructAreaVO;
+
+    @ApiModelProperty("0 未申请 1 申请中 2 通过 3 驳回")
+    private Integer volunteerStatus;
+
+    @ApiModelProperty("是否注册 0 否 1 是")
+    private Integer isRegister;
+
+    @ApiModelProperty("年龄")
+    private Integer age;
+
+    @ApiModelProperty("政治面貌:1 - 党员;2 - 团员;3 - 群众")
+    private Integer politicalOutlook;
+
+    @ApiModelProperty("小程序首页是否显示公告(1.是 2.否)")
+    private Integer isTips;
+
+    @ApiModelProperty("是否已实名")
+    private Boolean isRealNamed;
+
+    @ApiModelProperty("上班时间")
+    private Integer workStartTime;
+
+    @ApiModelProperty("下班时间")
+    private Integer workEndTime;
+
+    @ApiModelProperty("高龄认证显示提示(1.是 2.否)")
+    private Integer bigAgeTips;
+
+    @ApiModelProperty("是否四长四员 1.是 2.否")
+    private Integer isFourMember;
+
+    @ApiModelProperty("是否社区工作人员 1.是 2.否")
+    private Integer isCommunityWorker;
+
+    @ApiModelProperty("是否社工 1.是 2.否")
+    private Integer isSocialWorker;
+
+    @ApiModelProperty("实名认证地址")
+    private String address;
+
+    @ApiModelProperty("是否物业工作人员 1.是 2.否")
+    private Integer isPropertyWorker;
+
+    @ApiModelProperty("是否微团队成员 1.是 2.否")
+    private Integer isFmsMember;
+    @ApiModelProperty("是否网格员 1.是 2.否")
+    private Integer isEasyPhotoMember;
+    @ApiModelProperty("是否社会组织联系人 1.是 2.否")
+    private Integer isOrgContactPeople;
+
+    @ApiModelProperty("是否人大代表成员 1.是 2.否")
+    private Integer isDpcMember;
+    @ApiModelProperty("appid")
+    private String appId;
+    @ApiModelProperty("appSecret")
+    private String appSecret;
+    @ApiModelProperty("areaCode")
+    private String areaCode;
+    @ApiModelProperty("街道id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long streetId;
+
+    @ApiModelProperty("账号类型 1街道 2社区 3社会组织")
+    private Integer userType;
+
+    @ApiModelProperty("社会组织Id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long orgId;
+
+    @ApiModelProperty("是否是防疫工作人员 1.是 2.否")
+    private Integer isAcidMember;
+
+    @ApiModelProperty("绑定单位")
+    private String relationName;
+
+    @ApiModelProperty("区域划分")
+    private String areaName;
+
+    @ApiModelProperty("爱心积分")
+    private String loveIntegral;
+    @ApiModelProperty("爱心积分密码")
+    private String playPwd;
+
+    @ApiModelProperty("是否单位管理员 1是 0否")
+    private Integer isCheckUnitAdmin;
+
+    @ApiModelProperty("报道单位id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long checkUnitId;
+
+    private Long bindingCheckUnitId;
+
+    @ApiModelProperty("后台账号类型")
+    private Integer backstageType;
+
+
+    public String retrieveRelationName() {
+        return this.type == 3 ? relationName : name;
+    }
+
+    @ApiModelProperty("权限等级1-5:超管-行业分中心-街道-社区-专家")
+    private Integer level;
+
+    @ApiModelProperty("物业公司id")
+    private Long propertyId;
+
+    @ApiModelProperty("商家后台账号id")
+    private Long backstageUserId;
+
+    @ApiModelProperty("是否为自提点")
+    private Boolean isPoint;
+
+    @ApiModelProperty("默认地址")
+    private ComShopUserAddressVO comShopUserAddressVO;
+
+    @ApiModelProperty("商家id")
+    private Long storeIdId;
+
+    @ApiModelProperty("角色id")
+    private String roleId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/MenuVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/MenuVO.java
new file mode 100644
index 0000000..e413e23
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/MenuVO.java
@@ -0,0 +1,21 @@
+package com.panzhihua.common.model.vos;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 菜单按钮权限
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-25 15:20
+ **/
+@Data
+public class MenuVO {
+    /**
+     * 菜单路径
+     */
+    private String url;
+    /**
+     * 对应角色标识
+     */
+    private String role;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/PageVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/PageVO.java
new file mode 100644
index 0000000..4cdc5c8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/PageVO.java
@@ -0,0 +1,27 @@
+package com.panzhihua.common.model.vos;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+@ApiModel(value = "分页工具类")
+public class PageVO<T> implements Serializable {
+
+    @ApiModelProperty("记录")
+    private T records;
+
+    @ApiModelProperty("总页数")
+    private Integer pages;
+
+    @ApiModelProperty("当前页")
+    private Integer page;
+
+    @ApiModelProperty("总记录数")
+    private Integer recordsCount;
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/PartyMemberListExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/PartyMemberListExcelVO.java
new file mode 100644
index 0000000..afcfdec
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/PartyMemberListExcelVO.java
@@ -0,0 +1,48 @@
+package com.panzhihua.common.model.vos;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author zzj
+ */
+@Data
+public class PartyMemberListExcelVO {
+    @ExcelProperty(value = "姓名",index = 1)
+    private String name;
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @ExcelProperty(value = "入党时间",index = 3)
+    private Date joinTime;
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @ExcelProperty(value = "转正时间",index = 4)
+    private Date employmentTime;
+    @ExcelProperty(value = "党组织名字",index = 5)
+    private String orgName;
+    @ExcelProperty(value = "手机号",index = 0)
+    private String phone;
+    @ExcelProperty(value = "党龄",index = 2)
+    private Integer partyAge;
+    @ExcelProperty(value = "状态",index = 8)
+    private String status;
+    @ExcelProperty(value = "活动时长",index = 6)
+    private Integer partyTime;
+    @ExcelProperty(value = "参与活动获得积分",index = 7)
+    private Integer partyInterval;
+
+    private String checkUnitName;
+
+    private String specialtyName;
+
+    @ExcelProperty(value = "常住社区",index = 1)
+    private String communityName;
+    @ExcelProperty(value = "小区院落",index = 2)
+    private String villageName;
+    @ExcelProperty(value = "工作单位归属",index = 5)
+    private String belongTo;
+    @ExcelProperty(value = "服务社区",index = 6)
+    private String helpCommunityName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/R.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/R.java
new file mode 100644
index 0000000..1e17bb6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/R.java
@@ -0,0 +1,110 @@
+package com.panzhihua.common.model.vos;
+
+import java.io.Serializable;
+import java.lang.reflect.Field;
+
+import org.springframework.util.ObjectUtils;
+
+import com.panzhihua.common.constants.Constants;
+
+import lombok.Data;
+
+/**
+ * 响应信息主体
+ *
+ * @author HUANGHONGFA
+ */
+@Data
+public class R<T> implements Serializable {
+    /**
+     * 成功
+     */
+    public static final int SUCCESS = Constants.SUCCESS;
+    /**
+     * 失败
+     */
+    public static final int FAIL = Constants.FAIL;
+    private static final long serialVersionUID = 1L;
+    private int code;
+
+    private String msg;
+
+    private T data;
+
+    public static <T> R<T> ok() {
+        return restResult(null, SUCCESS, "success");
+    }
+
+    public static <T> R<T> ok(T data) {
+        return restResult(data, SUCCESS, "success");
+    }
+
+    public static <T> R<T> ok(T data, String msg) {
+        return restResult(data, SUCCESS, msg);
+    }
+
+    public static <T> R<T> fail() {
+        return restResult(null, FAIL, null);
+    }
+
+    public static <T> R<T> fail(String msg) {
+        return restResult(null, FAIL, msg);
+    }
+
+    public static <T> R<T> fail(T data) {
+        return restResult(data, FAIL, null);
+    }
+
+    public static <T> R<T> fail(T data, String msg) {
+        return restResult(data, FAIL, msg);
+    }
+
+    public static <T> R<T> fail(int code, String msg) {
+        return restResult(null, code, msg);
+    }
+
+    public static <T> R<T> fail(int code) {
+        return restResult(null, code, null);
+    }
+
+    private static <T> R<T> restResult(T data, int code, String msg) {
+        R<T> apiResult = new R<>();
+        apiResult.setCode(code);
+        apiResult.setData(data);
+        if (ObjectUtils.isEmpty(msg)) {
+            apiResult.setMsg("失败");
+        } else {
+            apiResult.setMsg(msg);
+        }
+
+        return apiResult;
+    }
+
+    /**
+     * 请求是否成功
+     *
+     * @return
+     */
+    public static boolean isOk(R r) {
+        return r.code == Constants.SUCCESS.intValue();
+    }
+
+    /**
+     * code
+     *
+     * @return
+     */
+    public static Integer getCode(R r) {
+        String code = null;
+        try {
+            Field field = r.getData().getClass().getDeclaredField("code");
+            code = field.get("code").toString();
+        } catch (IllegalAccessException e) {
+            e.printStackTrace();
+        } catch (NoSuchFieldException e) {
+            e.printStackTrace();
+        }
+        return Integer.valueOf(code);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/ResultData.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/ResultData.java
new file mode 100644
index 0000000..6675a7f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/ResultData.java
@@ -0,0 +1,95 @@
+package com.panzhihua.common.model.vos;
+
+import com.panzhihua.common.constants.HttpStatus;
+
+public class ResultData<T> {
+    //返回状态码
+    private Integer code;
+    //返回数据
+    private String msg;
+    //返回消息
+    private T date;
+
+    public Integer getCode() {
+        return code;
+    }
+
+    public void setCode(Integer code) {
+        this.code = code;
+    }
+
+    public  T getDate() {
+        return date;
+    }
+
+    public void setDate( T success) {
+        this.date = success;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+
+    //Success结果
+    public static <T> ResultData<T> success(T data) {
+        ResultData<T> resultData = new ResultData<>();
+        resultData.setCode(HttpStatus.SUCCESS);
+        resultData.setDate(null);
+        resultData.setMsg("success");
+        return resultData;
+    }
+
+    //Success结果
+    public static <T> ResultData<T> success(T data,String msg) {
+        ResultData<T> resultData = new ResultData<>();
+        resultData.setCode(HttpStatus.SUCCESS);
+        resultData.setDate(null);
+        resultData.setMsg(msg);
+        return resultData;
+    }
+
+    public static <T> ResultData<T> normal(T data) {
+        ResultData<T> resultData = new ResultData<>();
+        resultData.setCode(HttpStatus.NORMAL);
+        resultData.setMsg("success");
+        resultData.setDate(data);
+        return resultData;
+    }
+
+    //Success结果
+    public static <T> ResultData<T> success() {
+        ResultData<T> resultData = new ResultData<>();
+        resultData.setCode(HttpStatus.SUCCESS);
+        resultData.setDate(null);
+        return resultData;
+    }
+
+
+    //Fail结果
+    public static <T> ResultData<T> fail(int code, String message) {
+        ResultData<T> resultData = new ResultData<>();
+        resultData.setCode(code);
+        resultData.setDate(null);
+        return resultData;
+    }
+
+    //Fail结果
+    public static <T> ResultData<T> error(String message) {
+        ResultData<T> resultData = new ResultData<>();
+        resultData.setCode(HttpStatus.ERROR);
+        resultData.setDate(null);
+        return resultData;
+    }
+
+    //Fail结果
+    public static <T> ResultData<T> error() {
+        ResultData<T> resultData = new ResultData<>();
+        resultData.setCode(HttpStatus.ERROR);
+        resultData.setDate(null);
+        return resultData;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/SanShuoMessageVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/SanShuoMessageVO.java
new file mode 100644
index 0000000..3f623b7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/SanShuoMessageVO.java
@@ -0,0 +1,17 @@
+package com.panzhihua.common.model.vos;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class SanShuoMessageVO {
+    private String touser;
+    private String thing5;
+    private String thing1;
+    private String thing2;
+    private String time3;
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/StreetVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/StreetVO.java
new file mode 100644
index 0000000..b755493
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/StreetVO.java
@@ -0,0 +1,11 @@
+package com.panzhihua.common.model.vos;
+
+import lombok.Data;
+
+@Data
+public class StreetVO {
+
+    private String streetId;
+
+    private String name;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/SystemmanagementConfigVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/SystemmanagementConfigVO.java
new file mode 100644
index 0000000..d55f6da
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/SystemmanagementConfigVO.java
@@ -0,0 +1,33 @@
+package com.panzhihua.common.model.vos;
+
+import java.util.List;
+
+import javax.validation.constraints.NotEmpty;
+
+import com.panzhihua.common.model.vos.community.ComMngStructBuildTypeVO;
+import com.panzhihua.common.model.vos.user.ComMngUserTagVO;
+import com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 系统配置
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-25 16:53
+ **/
+@Data
+@ApiModel(value = "系统配置")
+public class SystemmanagementConfigVO {
+    @ApiModelProperty("建筑类型")
+    @NotEmpty(groups = {AddGroup.class}, message = "建筑类型不能为空")
+    List<ComMngStructBuildTypeVO> comMngStructBuildTypeVOList;
+    @ApiModelProperty("用户标签")
+    @NotEmpty(groups = {AddGroup.class}, message = "用户标签不能为空")
+    List<ComMngUserTagVO> comMngUserTagVOList;
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/TreeListVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/TreeListVO.java
new file mode 100644
index 0000000..45e5ebb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/TreeListVO.java
@@ -0,0 +1,14 @@
+package com.panzhihua.common.model.vos;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class TreeListVO {
+
+    private String orgName;
+
+    private String name;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/UploadFilesVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/UploadFilesVO.java
new file mode 100644
index 0000000..9c6ee8f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/UploadFilesVO.java
@@ -0,0 +1,20 @@
+package com.panzhihua.common.model.vos;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@ApiModel("多文件上传返回参数")
+@Data
+public class UploadFilesVO {
+
+    @ApiModelProperty("图片上传url")
+    private String url;
+
+    @ApiModelProperty("描述")
+    private String alt;
+
+    @ApiModelProperty("链接")
+    private String href;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/WeatherVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/WeatherVO.java
new file mode 100644
index 0000000..62dc583
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/WeatherVO.java
@@ -0,0 +1,22 @@
+package com.panzhihua.common.model.vos;
+
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 天气信息对象
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-8-17 12:55
+ **/
+@Data
+@ApiModel(value = "天气信息返回体")
+public class WeatherVO {
+    private String count;
+    private String info;
+    private String infocode;
+    private String status;
+    private List<LiveVO> lives;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/advertisement/ComOpsAdvJumpVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/advertisement/ComOpsAdvJumpVO.java
new file mode 100644
index 0000000..c845862
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/advertisement/ComOpsAdvJumpVO.java
@@ -0,0 +1,29 @@
+package com.panzhihua.common.model.vos.advertisement;
+
+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;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 跳转内容
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-28 15:49
+ **/
+@Data
+@ApiModel(value = "跳转内容")
+public class ComOpsAdvJumpVO {
+
+    @ApiModelProperty("id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("跳转内容")
+    private String jumpContent;
+
+    @ApiModelProperty("是否默认  0 否 1 是")
+    private Integer isDefault;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/advertisement/ComOpsAdvPosVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/advertisement/ComOpsAdvPosVO.java
new file mode 100644
index 0000000..ef3f060
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/advertisement/ComOpsAdvPosVO.java
@@ -0,0 +1,24 @@
+package com.panzhihua.common.model.vos.advertisement;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 广告位置
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-28 15:52
+ **/
+@Data
+@ApiModel(value = "广告位置")
+public class ComOpsAdvPosVO {
+
+    @ApiModelProperty("自增id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("广告位置中文描述")
+    private String advDesc;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/advertisement/ComOpsAdvVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/advertisement/ComOpsAdvVO.java
new file mode 100644
index 0000000..8c79049
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/advertisement/ComOpsAdvVO.java
@@ -0,0 +1,63 @@
+package com.panzhihua.common.model.vos.advertisement;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 广告
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-28 15:42
+ **/
+@Data
+@ApiModel(value = "广告")
+public class ComOpsAdvVO {
+
+    @ApiModelProperty("自增id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("广告位置id 1 表示放在首页")
+    private Integer posId;
+
+    @ApiModelProperty("广告位置名字")
+    private String advDesc;
+
+    @ApiModelProperty("图片路径")
+    private String photoPath;
+
+    @ApiModelProperty("链接类型:0~ 外部链接;1 ~ 内部链接")
+    private Integer linkType;
+
+    @ApiModelProperty("上架时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date onAt;
+
+    @ApiModelProperty("下架时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date offAt;
+
+    @ApiModelProperty("跳转内容id 1 随手拍 2 人脸识别 3 政策文件")
+    private Long jumpId;
+
+    @ApiModelProperty("跳转url地址")
+    private String jumpUrl;
+
+    @ApiModelProperty("跳转内容")
+    private String jumpContent;
+
+    @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 updateAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/area/AreaAddressVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/area/AreaAddressVO.java
new file mode 100644
index 0000000..ce59261
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/area/AreaAddressVO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.vos.area;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "查询社区地址信息")
+public class AreaAddressVO {
+
+    /**
+     * 省份名称
+     */
+    private String province;
+
+    /**
+     * 城市名称
+     */
+    private String city;
+
+    /**
+     * 区域名称
+     */
+    private String district;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/area/AreaInfoVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/area/AreaInfoVo.java
new file mode 100644
index 0000000..3a67fc9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/area/AreaInfoVo.java
@@ -0,0 +1,22 @@
+package com.panzhihua.common.model.vos.area;
+
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Description: 区域信息
+ * @Author: llming
+ */
+@Data
+@ApiModel(value = "区域信息")
+public class AreaInfoVo {
+    @ApiModelProperty("Id")
+    private Long Id;
+    @ApiModelProperty("区域名称")
+    private Long name;
+    @ApiModelProperty("下一级区域信息")
+    private List<AreaInfoVo> AreaInfoVo;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/area/StreetAndBuildVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/area/StreetAndBuildVO.java
new file mode 100644
index 0000000..67e0bcc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/area/StreetAndBuildVO.java
@@ -0,0 +1,37 @@
+package com.panzhihua.common.model.vos.area;
+
+import com.panzhihua.common.model.vos.community.screen.event.EventPopulationSpecialStatisticsVO;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class StreetAndBuildVO {
+
+
+    /**
+     * 社区id
+     */
+    private String communityId;
+    /**
+     * 社区名称
+     */
+    private String name;
+
+    /**
+     * 人口数量
+     */
+    private Integer peopleNum = 0;
+
+    /**
+     * 小区数量
+     */
+    private Integer villageNum = 0;
+
+    /**
+     * 房屋数量
+     */
+    private Integer buildNum = 0;
+
+    @ApiModelProperty("特殊人口数据")
+    private EventPopulationSpecialStatisticsVO specialStatisticsVo;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/civil/ComActSocialWorkerDetailsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/civil/ComActSocialWorkerDetailsVO.java
new file mode 100644
index 0000000..6736868
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/civil/ComActSocialWorkerDetailsVO.java
@@ -0,0 +1,115 @@
+package com.panzhihua.common.model.vos.civil;
+
+import java.util.*;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.math.BigDecimal;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-06-03
+ * */
+@Data
+@ApiModel("社工详细返回参数")
+public class ComActSocialWorkerDetailsVO {
+
+    @ApiModelProperty(value = "ID")
+    private Long id;
+
+    @ApiModelProperty(value = "所属组织ID")
+    private Long socialOrgId;
+
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    @ApiModelProperty(value = "联系电话")
+    private String telephone;
+
+    @ApiModelProperty(value = "性别0女1男")
+    private Integer gen;
+
+    @ApiModelProperty(value = "所属街道")
+    private Long streetId;
+
+    @ApiModelProperty(value = "所属社区")
+    private Long communityId;
+
+    @ApiModelProperty(value = "创建人")
+    private Long createBy;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty(value = "更新人")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAt;
+
+    /**
+     * 身份证
+     */
+    @ApiModelProperty(value = "身份证")
+    private String idCard;
+
+    /**
+     * 分类id
+     */
+    @ApiModelProperty(value = "分类id")
+    private Long skillType;
+
+    /**
+     * 入职时间
+     */
+    @ApiModelProperty(value = "入职时间")
+    private Date joinTime;
+
+    /**
+     * 住址
+     */
+    @ApiModelProperty(value = "住址")
+    private String address;
+
+    /**
+     * 图片
+     */
+    @ApiModelProperty(value = "图片")
+    private String image;
+
+    /**
+     * 学历
+     */
+    @ApiModelProperty(value = "学历")
+    private String education;
+
+    /**
+     * 政治面貌
+     */
+    @ApiModelProperty(value = "政治面貌")
+    private String politicalOutlook;
+
+    /**
+     * 民族
+     */
+    @ApiModelProperty(value = "民族")
+    private String nation;
+
+    /**
+     * 是否证件 0否 1是
+     */
+    @ApiModelProperty(value = "是否证件 0否 1是")
+    private Integer credential;
+    /**
+     * 分类名称
+     */
+    @ApiModelProperty(value = "分类id")
+    private String skillTypeName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/civil/ComActSocialWorkerVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/civil/ComActSocialWorkerVO.java
new file mode 100644
index 0000000..978687a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/civil/ComActSocialWorkerVO.java
@@ -0,0 +1,119 @@
+package com.panzhihua.common.model.vos.civil;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-06-03
+ * */
+@Data
+@ApiModel("社工返回参数")
+public class ComActSocialWorkerVO {
+
+    @ApiModelProperty(value = "ID")
+    private Long id;
+
+    @ApiModelProperty(value = "所属组织ID")
+    private String socialOrgId;
+
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    @ApiModelProperty(value = "联系电话")
+    private String telephone;
+
+    @ApiModelProperty(value = "性别0女1男")
+    private String gen;
+
+    @ApiModelProperty(value = "所属街道")
+    private String streetId;
+
+    @ApiModelProperty(value = "所属社区")
+    private String communityId;
+
+    @ApiModelProperty(value = "创建人")
+    private Long createBy;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty(value = "更新人")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAt;
+
+    /**
+     * 身份证
+     */
+    @ApiModelProperty(value = "身份证")
+    private String idCard;
+
+    /**
+     * 分类id
+     */
+    @ApiModelProperty(value = "分类id")
+    private String skillType;
+
+    /**
+     * 入职时间
+     */
+    @ApiModelProperty(value = "入职时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date joinTime;
+
+    /**
+     * 住址
+     */
+    @ApiModelProperty(value = "住址")
+    private String address;
+
+    /**
+     * 图片
+     */
+    @ApiModelProperty(value = "图片")
+    private String image;
+
+    /**
+     * 学历
+     */
+    @ApiModelProperty(value = "学历")
+    private String education;
+
+    /**
+     * 政治面貌
+     */
+    @ApiModelProperty(value = "政治面貌")
+    private String politicalOutlook;
+
+    /**
+     * 民族
+     */
+    @ApiModelProperty(value = "民族")
+    private String nation;
+
+    /**
+     * 是否证件 0否 1是
+     */
+    @ApiModelProperty(value = "是否证件 0否 1是")
+    private Integer credential;
+
+    @ApiModelProperty(value = "分类名称")
+    private String skillTypeName;
+
+    @ApiModelProperty(value = "年龄")
+    private Integer age;
+
+    @ApiModelProperty(value = "社区名字")
+    private String communityName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComActEasyPhotoEvaluateVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComActEasyPhotoEvaluateVo.java
new file mode 100644
index 0000000..e588764
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComActEasyPhotoEvaluateVo.java
@@ -0,0 +1,68 @@
+package com.panzhihua.common.model.vos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 随手拍、微心愿评价表返回参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 随手拍、微心愿评价表返回参数
+ *
+ * @author lyq
+ * @date 2022-03-01 13:44:37
+ */
+@Data
+@ApiModel("随手拍、微心愿评价表返回参数")
+public class ComActEasyPhotoEvaluateVo {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+    /**
+     * 业务记录id
+     */
+    @ApiModelProperty(value = "业务记录id")
+    private Long serviceId;
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+    /**
+     * 评分
+     */
+    @ApiModelProperty(value = "评分")
+    private Integer score;
+    /**
+     * 评价内容
+     */
+    @ApiModelProperty(value = "评价内容")
+    private String content;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 业务分类(1.随手拍 2.微心愿)
+     */
+    @ApiModelProperty(value = "业务分类(1.随手拍 2.微心愿)")
+    private Integer serviceType;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComActEasyPhotoHandlerVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComActEasyPhotoHandlerVo.java
new file mode 100644
index 0000000..0aecba6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComActEasyPhotoHandlerVo.java
@@ -0,0 +1,83 @@
+package com.panzhihua.common.model.vos.common;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * title: 随手拍、微心愿处理人绑定表返回参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 随手拍、微心愿处理人绑定表返回参数
+ *
+ * @author lyq
+ * @date 2022-03-01 13:45:12
+ */
+@Data
+@ApiModel("随手拍、微心愿处理人绑定表返回参数")
+public class ComActEasyPhotoHandlerVo {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+    /**
+     * 处理人id
+     */
+    @ApiModelProperty(value = "处理人id")
+    private Long userId;
+    /**
+     * 业务id
+     */
+    @ApiModelProperty(value = "业务id")
+    private Long serviceId;
+    /**
+     * 人员类型(1.后台用户 2.党员 3.志愿者 4.社工 5.四长四员)
+     */
+    @ApiModelProperty(value = "人员类型(1.后台用户 2.党员 3.志愿者 4.社工 5.四长四员)")
+    private Integer type;
+    /**
+     * 业务类型(1.随手拍 2.微心愿)
+     */
+    @ApiModelProperty(value = "业务类型(1.随手拍 2.微心愿)")
+    private Integer serviceType;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    @ApiModelProperty(value = "状态")
+    private Integer status;
+
+    @ApiModelProperty(value = "发起人名称")
+    private String senderName;
+
+    @ApiModelProperty(value = "得分")
+    private Integer score;
+    /**
+     * 汇报内容
+     */
+    @ApiModelProperty(value = "汇报内容")
+    private String resultContent;
+    /**
+     * 汇报图片
+     */
+    @ApiModelProperty(value = "汇报图片")
+    private String resultUrl;
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryActivityTeamVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryActivityTeamVo.java
new file mode 100644
index 0000000..fcbd782
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryActivityTeamVo.java
@@ -0,0 +1,24 @@
+package com.panzhihua.common.model.vos.common;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+public class ComBatteryActivityTeamVo {
+
+    @ApiModelProperty(value = "是否可以开团(1.是 2.否)")
+    private Integer isOpen = 1;
+
+    @ApiModelProperty(value = "团队id")
+    private Long teamId;
+
+    @ApiModelProperty(value = "拼团结束时间")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date teamEndTime;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityActivityVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityActivityVo.java
new file mode 100644
index 0000000..f954386
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityActivityVo.java
@@ -0,0 +1,166 @@
+package com.panzhihua.common.model.vos.common;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 电动车商城-商家活动表返回参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商家活动表返回参数
+ *
+ * @author lyq
+ * @date 2022-03-29 13:17:41
+ */
+@Data
+@ApiModel("电动车商城-商家活动表返回参数")
+public class ComBatteryCommodityActivityVo {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 活动名称
+     */
+    @ApiModelProperty(value = "活动名称")
+    private String name;
+    /**
+     * 活动类型(1.拼团活动 2.砍价活动 3.限时秒杀)
+     */
+    @ApiModelProperty(value = "活动类型(1.拼团活动 2.砍价活动 3.限时秒杀)")
+    private Integer type;
+    /**
+     * 商品id
+     */
+    @ApiModelProperty(value = "商品id")
+    private Long commodityId;
+    /**
+     * 商家id
+     */
+    @ApiModelProperty(value = "商家id")
+    private Long storeId;
+    /**
+     * 状态(1.进行中 2.已下架 3.已结束)
+     */
+    @ApiModelProperty(value = "状态(1.进行中 2.已下架 3.已结束)")
+    private Integer status;
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是 2.否)")
+    private Integer isDel;
+    /**
+     * 活动价格
+     */
+    @ApiModelProperty(value = "活动价格")
+    private BigDecimal price;
+    /**
+     * 活动截止时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "活动截止时间")
+    private Date endTime;
+    /**
+     * 拼团总团数
+     */
+    @ApiModelProperty(value = "拼团总团数")
+    private Integer collageNum;
+    /**
+     * 拼团人数
+     */
+    @ApiModelProperty(value = "拼团人数")
+    private Integer collagePeopleNum;
+    /**
+     * 活动图片
+     */
+    @ApiModelProperty(value = "活动图片")
+    private String images;
+    /**
+     * 活动商品总数
+     */
+    @ApiModelProperty(value = "活动商品总数")
+    private Integer commodityNum;
+    /**
+     * 活动规则
+     */
+    @ApiModelProperty(value = "活动规则")
+    private String rule;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+    /**
+     * 更新时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "更新时间")
+    private Date updateAt;
+    /**
+     * 更新人id
+     */
+    @ApiModelProperty(value = "更新人id")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "活动商品信息")
+    private ComBatteryCommodityVo commodityVo;
+
+    @ApiModelProperty(value = "商品名称")
+    private String commodityName;
+
+    @ApiModelProperty(value = "商品编号")
+    private String commodityCode;
+
+    @ApiModelProperty(value = "商户名称")
+    private String storeName;
+
+    @ApiModelProperty(value = "商户规格id")
+    private Long specsId;
+
+    @ApiModelProperty(value = "商户规格名称")
+    private String specsName;
+
+    @ApiModelProperty(value = "活动已卖出数量")
+    private Integer commoditySaleNum;
+
+    @ApiModelProperty(value = "是否可以开团(1.是 2.否)")
+    private Integer isOpen = 1;
+
+    @ApiModelProperty(value = "团队id")
+    private Long teamId;
+
+    @ApiModelProperty(value = "拼团结束时间")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date teamEndTime;
+
+    @ApiModelProperty(value = "是否可以砍价(1.是 2.否)")
+    private Integer isBargain = 1;
+
+    @ApiModelProperty(value = "砍价记录id")
+    private Long bargainId;
+
+    @ApiModelProperty(value = "砍价结束时间")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date bargainEndTime;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityOrderBargainRecordVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityOrderBargainRecordVo.java
new file mode 100644
index 0000000..5e5d49f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityOrderBargainRecordVo.java
@@ -0,0 +1,69 @@
+package com.panzhihua.common.model.vos.common;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 电动车商城-订单砍价记录表返回参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-订单砍价记录表返回参数
+ *
+ * @author lyq
+ * @date 2022-03-29 16:06:49
+ */
+@Data
+@ApiModel("电动车商城-订单砍价记录表返回参数")
+public class ComBatteryCommodityOrderBargainRecordVo {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 砍价记录id
+     */
+    @ApiModelProperty(value = "砍价记录id")
+    private Long bargainId;
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+    /**
+     * 砍价金额
+     */
+    @ApiModelProperty(value = "砍价金额")
+    private BigDecimal amount;
+    /**
+     * 原砍价用户id
+     */
+    @ApiModelProperty(value = "原砍价用户id")
+    private Long oldUserId;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+
+    @ApiModelProperty(value = "用户头像")
+    private String imageUrl;
+
+    @ApiModelProperty(value = "用户昵称")
+    private String nickName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityOrderBargainVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityOrderBargainVo.java
new file mode 100644
index 0000000..9f23b47
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityOrderBargainVo.java
@@ -0,0 +1,107 @@
+package com.panzhihua.common.model.vos.common;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 电动车商城-砍价订单记录表返回参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-砍价订单记录表返回参数
+ *
+ * @author lyq
+ * @date 2022-03-29 16:06:37
+ */
+@Data
+@ApiModel("电动车商城-砍价订单记录表返回参数")
+public class ComBatteryCommodityOrderBargainVo {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+    /**
+     * 商品id
+     */
+    @ApiModelProperty(value = "商品id")
+    private Long commodityId;
+    /**
+     * 活动id
+     */
+    @ApiModelProperty(value = "活动id")
+    private Long activityId;
+    /**
+     * 订单id
+     */
+    @ApiModelProperty(value = "订单id")
+    private Long orderId;
+    /**
+     * 订单号
+     */
+    @ApiModelProperty(value = "订单号")
+    private String orderNo;
+    /**
+     * 商品原价
+     */
+    @ApiModelProperty(value = "商品原价")
+    private BigDecimal originalPrice;
+    /**
+     * 目标价格
+     */
+    @ApiModelProperty(value = "目标价格")
+    private BigDecimal targetPrice;
+    /**
+     * 当前价格
+     */
+    @ApiModelProperty(value = "当前价格")
+    private BigDecimal currentPrice;
+    /**
+     * 当前已砍价次数
+     */
+    @ApiModelProperty(value = "当前已砍价次数")
+    private Integer count;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+
+    @ApiModelProperty(value = "好友帮砍价记录列表")
+    private List<ComBatteryCommodityOrderBargainRecordVo> orderBargainRecordList;
+
+    @ApiModelProperty(value = "用户昵称")
+    private String nickName;
+
+    @ApiModelProperty(value = "用户头像")
+    private String imageUrl;
+
+    @ApiModelProperty(value = "商品名称")
+    private String commodityName;
+
+    @ApiModelProperty(value = "商品图片")
+    private String commodityImages;
+
+    @ApiModelProperty(value = "砍价状态(1.砍价中 2.砍价成功 3.砍价失败)")
+    private Integer bargainStatus;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityOrderCollageTeamPeopleVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityOrderCollageTeamPeopleVo.java
new file mode 100644
index 0000000..94be7e3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityOrderCollageTeamPeopleVo.java
@@ -0,0 +1,68 @@
+package com.panzhihua.common.model.vos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 电动车商城-拼团活动团队人员表返回参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-拼团活动团队人员表返回参数
+ *
+ * @author lyq
+ * @date 2022-03-29 16:07:11
+ */
+@Data
+@ApiModel("电动车商城-拼团活动团队人员表返回参数")
+public class ComBatteryCommodityOrderCollageTeamPeopleVo {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 拼团团队id
+     */
+    @ApiModelProperty(value = "拼团团队id")
+    private Long teamId;
+    /**
+     * 团长id
+     */
+    @ApiModelProperty(value = "团长id")
+    private Long headUserId;
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+    /**
+     * 参团类型(1.开团 2.参与拼团)
+     */
+    @ApiModelProperty(value = "参团类型(1.开团 2.参与拼团)")
+    private Integer type;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+
+    @ApiModelProperty(value = "用户头像")
+    private String images;
+
+    @ApiModelProperty(value = "用户昵称")
+    private String nickName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityOrderCollageTeamVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityOrderCollageTeamVo.java
new file mode 100644
index 0000000..c492183
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityOrderCollageTeamVo.java
@@ -0,0 +1,81 @@
+package com.panzhihua.common.model.vos.common;
+
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 电动车商城-拼团订单团队表返回参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-拼团订单团队表返回参数
+ *
+ * @author lyq
+ * @date 2022-03-29 16:06:59
+ */
+@Data
+@ApiModel("电动车商城-拼团订单团队表返回参数")
+public class ComBatteryCommodityOrderCollageTeamVo {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 活动id
+     */
+    @ApiModelProperty(value = "活动id")
+    private Long activityId;
+    /**
+     * 订单id
+     */
+    @ApiModelProperty(value = "订单id")
+    private Long orderId;
+    /**
+     * 订单号
+     */
+    @ApiModelProperty(value = "订单号")
+    private String orderNo;
+    /**
+     * 开团用户id
+     */
+    @ApiModelProperty(value = "开团用户id")
+    private Long userId;
+    /**
+     * 状态(1.等待拼团 2.拼团成功 3.拼团失败 4.已退款)
+     */
+    @ApiModelProperty(value = "状态(1.等待拼团 2.拼团成功 3.拼团失败 4.已退款)")
+    private Integer status;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+
+    @ApiModelProperty(value = "已拼人数")
+    private Integer spelledNum;
+
+    @ApiModelProperty(value = "成团人数")
+    private Integer collagePeopleNum;
+
+    @ApiModelProperty(value = "团长头像")
+    private String images;
+
+    @ApiModelProperty(value = "团长昵称")
+    private String nickName;
+
+    @ApiModelProperty(value = "拼团人员列表")
+    private List<ComBatteryCommodityOrderCollageTeamPeopleVo> orderCollageTeamPeopleList;
+
+    @ApiModelProperty(value = "是否可以参与(1.是 2.否)")
+    private Integer isPartake = 1;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityOrderVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityOrderVo.java
new file mode 100644
index 0000000..c209ae4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityOrderVo.java
@@ -0,0 +1,231 @@
+package com.panzhihua.common.model.vos.common;
+
+        import java.math.BigDecimal;
+        import java.util.Date;
+
+        import com.fasterxml.jackson.annotation.JsonFormat;
+        import org.springframework.format.annotation.DateTimeFormat;
+        import io.swagger.annotations.ApiModel;
+        import io.swagger.annotations.ApiModelProperty;
+        import lombok.Data;
+
+/**
+ * title: 电动车商城-订单表返回参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-订单表返回参数
+ *
+ * @author lyq
+ * @date 2022-03-29 13:18:46
+ */
+@Data
+@ApiModel("电动车商城-订单表返回参数")
+public class ComBatteryCommodityOrderVo {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+    /**
+     * 商家id
+     */
+    @ApiModelProperty(value = "商家id")
+    private Long storeId;
+    /**
+     * 收货地址id
+     */
+    @ApiModelProperty(value = "收货地址id")
+    private Long addressId;
+    /**
+     * 活动id
+     */
+    @ApiModelProperty(value = "活动id")
+    private Long activityId;
+    /**
+     * 商品id
+     */
+    @ApiModelProperty(value = "商品id")
+    private Long commodityId;
+    /**
+     * 商品规格id
+     */
+    @ApiModelProperty(value = "商品规格id")
+    private Long specsId;
+    /**
+     * 订单号
+     */
+    @ApiModelProperty(value = "订单号")
+    private String orderNo;
+    /**
+     * 活动状态(1.拼团活动 2.砍价活动 3.限时秒杀)
+     */
+    @ApiModelProperty(value = "活动状态(1.拼团活动 2.砍价活动 3.限时秒杀)")
+    private Integer activityType;
+    /**
+     * 订单状态(1.待付款 2.待发货 3.待收货 4.已完成 5.待拼团 6.待砍价 7.已退款 8.已关闭)
+     */
+    @ApiModelProperty(value = "订单状态(1.待付款 2.待发货 3.待收货 4.已完成 5.待拼团 6.待砍价 7.已退款 8.已关闭)")
+    private Integer status;
+    /**
+     * 拼团状态(1.拼团中 2.拼团成功 3.拼团失败)
+     */
+    @ApiModelProperty(value = "拼团状态(1.拼团中 2.拼团成功 3.拼团失败)")
+    private Integer collageStatus;
+    /**
+     * 砍价状态(1.砍价中 2.砍价成功 3.砍价失败)
+     */
+    @ApiModelProperty(value = "砍价状态(1.砍价中 2.砍价成功 3.砍价失败)")
+    private Integer bargainStatus;
+    /**
+     * 支付状态(1.未支付 2.已支付)
+     */
+    @ApiModelProperty(value = "支付状态(1.未支付 2.已支付)")
+    private Integer payStatus;
+    /**
+     * 是否已删除(1.是  2.否)
+     */
+    @ApiModelProperty(value = "是否已删除(1.是  2.否)")
+    private Integer isDel;
+    /**
+     * 支付方式(1.微信支付)
+     */
+    @ApiModelProperty(value = "支付方式(1.微信支付)")
+    private Integer payType;
+    /**
+     * 购买商品数量
+     */
+    @ApiModelProperty(value = "购买商品数量")
+    private Integer count;
+    /**
+     * 商品单价
+     */
+    @ApiModelProperty(value = "商品单价")
+    private BigDecimal price;
+    /**
+     * 订单金额
+     */
+    @ApiModelProperty(value = "订单金额")
+    private BigDecimal amount;
+    /**
+     * 运费
+     */
+    @ApiModelProperty(value = "运费")
+    private BigDecimal freight;
+    /**
+     * 物流单号
+     */
+    @ApiModelProperty(value = "物流单号")
+    private String logisticsNo;
+    /**
+     * 物流公司
+     */
+    @ApiModelProperty(value = "物流公司")
+    private String logisticsCompany;
+    /**
+     * 订单最终金额
+     */
+    @ApiModelProperty(value = "订单最终金额")
+    private BigDecimal finalAmount;
+    /**
+     * 支付单号
+     */
+    @ApiModelProperty(value = "支付单号")
+    private String payNo;
+    /**
+     * 支付总金额
+     */
+    @ApiModelProperty(value = "支付总金额")
+    private BigDecimal payAmount;
+    /**
+     * 订单备注
+     */
+    @ApiModelProperty(value = "订单备注")
+    private String remark;
+    /**
+     * 发货时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "发货时间")
+    private Date deliveryTime;
+    /**
+     * 收货时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "收货时间")
+    private Date receivingTime;
+    /**
+     * 下单时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "下单时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+    /**
+     * 修改时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+    /**
+     * 修改人id
+     */
+    @ApiModelProperty(value = "修改人id")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "商品名称")
+    private String commodityName;
+
+    @ApiModelProperty(value = "商品规格名称")
+    private String specsName;
+
+    @ApiModelProperty(value = "商户名称")
+    private String storeName;
+
+    @ApiModelProperty(value = "用户账号")
+    private String phone;
+
+    @ApiModelProperty(value = "订单商品信息")
+    private ComBatteryCommodityVo commodityVo;
+
+    @ApiModelProperty(value = "订单商品规格信息")
+    private ComBatteryCommoditySpecsVo commoditySpecsVo;
+
+    @ApiModelProperty(value = "用户绑定收货地址")
+    private ComBatteryUserAddressVo userAddressVo;
+
+    @ApiModelProperty(value = "收件人")
+    private String receivingName;
+
+    @ApiModelProperty(value = "收件人联系方式")
+    private String receivingPhone;
+
+    @ApiModelProperty(value = "收货人地区")
+    private String receivingRegion;
+
+    @ApiModelProperty(value = "收货人详细地址")
+    private String receivingAddress;
+
+    @ApiModelProperty(value = "商品规格图片")
+    private String commodityImages;
+
+    @ApiModelProperty(value = "收货地区编码")
+    private String receivingRegionCode;
+
+    @ApiModelProperty(value = "用户昵称")
+    private String nickName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommoditySpecsVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommoditySpecsVo.java
new file mode 100644
index 0000000..e295b84
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommoditySpecsVo.java
@@ -0,0 +1,96 @@
+package com.panzhihua.common.model.vos.common;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 电动车商城-商品规格表返回参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商品规格表返回参数
+ *
+ * @author lyq
+ * @date 2022-03-28 15:16:22
+ */
+@Data
+@ApiModel("电动车商城-商品规格表返回参数")
+public class ComBatteryCommoditySpecsVo {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 商家id
+     */
+    @ApiModelProperty(value = "商家id")
+    private Long storeId;
+    /**
+     * 商品id
+     */
+    @ApiModelProperty(value = "商品id")
+    private Long commodityId;
+    /**
+     * 规格名称
+     */
+    @ApiModelProperty(value = "规格名称")
+    private String name;
+    /**
+     * 规格库存数量
+     */
+    @ApiModelProperty(value = "规格库存数量")
+    private Integer stock;
+    /**
+     * 规格价格
+     */
+    @ApiModelProperty(value = "规格价格")
+    private BigDecimal price;
+    /**
+     * 规格图片
+     */
+    @ApiModelProperty(value = "规格图片")
+    private String images;
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是 2.否)")
+    private Integer isDel;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+    /**
+     * 更新时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "更新时间")
+    private Date updateAt;
+    /**
+     * 更新人id
+     */
+    @ApiModelProperty(value = "更新人id")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "商品名称")
+    private String commodityName;
+
+    @ApiModelProperty(value = "邮费")
+    private BigDecimal postage;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityVo.java
new file mode 100644
index 0000000..de44121
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryCommodityVo.java
@@ -0,0 +1,123 @@
+package com.panzhihua.common.model.vos.common;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 电动车商城-商品表返回参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商品表返回参数
+ *
+ * @author lyq
+ * @date 2022-03-28 15:00:00
+ */
+@Data
+@ApiModel("电动车商城-商品表返回参数")
+public class ComBatteryCommodityVo {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 商品名称
+     */
+    @ApiModelProperty(value = "商品名称")
+    private String name;
+    /**
+     * 商品编号
+     */
+    @ApiModelProperty(value = "商品编号")
+    private String code;
+    /**
+     * 商品价格
+     */
+    @ApiModelProperty(value = "商品价格")
+    private BigDecimal price;
+    /**
+     * 商家id
+     */
+    @ApiModelProperty(value = "商家id")
+    private Long storeId;
+    /**
+     * 状态(1.上架 2.下架)
+     */
+    @ApiModelProperty(value = "状态(1.上架 2.下架)")
+    private Integer status;
+    /**
+     * 商品分类id
+     */
+    @ApiModelProperty(value = "商品分类id")
+    private Long classId;
+    /**
+     * 商品简介
+     */
+    @ApiModelProperty(value = "商品简介")
+    private String introduce;
+    /**
+     * 邮费
+     */
+    @ApiModelProperty(value = "邮费")
+    private BigDecimal postage;
+    /**
+     * 商品图片
+     */
+    @ApiModelProperty(value = "商品图片")
+    private String images;
+    /**
+     * 商品详情
+     */
+    @ApiModelProperty(value = "商品详情")
+    private String detail;
+    /**
+     * 是否删除(1.是  2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是  2.否)")
+    private Integer isDel;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+    /**
+     * 更新时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "更新时间")
+    private Date updateAt;
+    /**
+     * 更新人id
+     */
+    @ApiModelProperty(value = "更新人id")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "商家名称")
+    private String storeName;
+
+    @ApiModelProperty(value = "商品分类名称")
+    private String className;
+
+    @ApiModelProperty(value = "商品规格列表")
+    private List<ComBatteryCommoditySpecsVo> commoditySpecsVoList;
+
+    @ApiModelProperty(value = "商品月销量")
+    private Integer monthSale;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryStoreClassVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryStoreClassVo.java
new file mode 100644
index 0000000..5f0dbfa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryStoreClassVo.java
@@ -0,0 +1,78 @@
+package com.panzhihua.common.model.vos.common;
+
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 电动车商城-商家分类表返回参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商家分类表返回参数
+ *
+ * @author lyq
+ * @date 2022-03-29 11:01:57
+ */
+@Data
+@ApiModel("电动车商城-商家分类表返回参数")
+public class ComBatteryStoreClassVo {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 分类名称
+     */
+    @ApiModelProperty(value = "分类名称")
+    private String name;
+    /**
+     * 商家id
+     */
+    @ApiModelProperty(value = "商家id")
+    private Long storeId;
+    /**
+     * 状态(1.启用 2.禁用)
+     */
+    @ApiModelProperty(value = "状态(1.启用 2.禁用)")
+    private Integer status;
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是 2.否)")
+    private Integer isDel;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+    /**
+     * 更新时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "更新时间")
+    private Date updateAt;
+    /**
+     * 更新人id
+     */
+    @ApiModelProperty(value = "更新人id")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "分类下商品列表")
+    private List<ComBatteryCommodityVo> commodityList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryStoreVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryStoreVo.java
new file mode 100644
index 0000000..67b4c1a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryStoreVo.java
@@ -0,0 +1,122 @@
+package com.panzhihua.common.model.vos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 电动车商城-商家表返回参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商家表返回参数
+ *
+ * @author lyq
+ * @date 2022-03-28 13:44:59
+ */
+@Data
+@ApiModel("电动车商城-商家表返回参数")
+public class ComBatteryStoreVo {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 商家名称
+     */
+    @ApiModelProperty(value = "商家名称")
+    private String name;
+    /**
+     * 注册手机
+     */
+    @ApiModelProperty(value = "注册手机")
+    private String regPhone;
+    /**
+     * 联系电话
+     */
+    @ApiModelProperty(value = "联系电话")
+    private String phone;
+    /**
+     * 商家账号
+     */
+    @ApiModelProperty(value = "商家账号")
+    private String account;
+    /**
+     * 商家密码
+     */
+    @ApiModelProperty(value = "商家密码")
+    private String password;
+    /**
+     * 状态(1.启用 2.禁用)
+     */
+    @ApiModelProperty(value = "状态(1.启用 2.禁用)")
+    private Integer status;
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是 2.否)")
+    private Integer isDel;
+    /**
+     * 商家logo
+     */
+    @ApiModelProperty(value = "商家logo")
+    private String logo;
+    /**
+     * 商家简介
+     */
+    @ApiModelProperty(value = "商家简介")
+    private String introduction;
+    /**
+     * 商家地址
+     */
+    @ApiModelProperty(value = "商家地址")
+    private String address;
+    /**
+     * 详细地址
+     */
+    @ApiModelProperty(value = "详细地址")
+    private String detailAddress;
+    /**
+     * 经度
+     */
+    @ApiModelProperty(value = "经度")
+    private String longitude;
+    /**
+     * 纬度
+     */
+    @ApiModelProperty(value = "纬度")
+    private String latitude;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+    /**
+     * 更新时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "更新时间")
+    private Date updateAt;
+    /**
+     * 更新人id
+     */
+    @ApiModelProperty(value = "更新人id")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "月销量")
+    private Integer monthSale;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryTradeOrderVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryTradeOrderVo.java
new file mode 100644
index 0000000..01f2b64
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryTradeOrderVo.java
@@ -0,0 +1,118 @@
+package com.panzhihua.common.model.vos.common;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 电动车商城-微信交易流水表返回参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-微信交易流水表返回参数
+ *
+ * @author lyq
+ * @date 2022-04-01 13:18:51
+ */
+@Data
+@ApiModel("电动车商城-微信交易流水表返回参数")
+public class ComBatteryTradeOrderVo {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+    /**
+     * 用户openid
+     */
+    @ApiModelProperty(value = "用户openid")
+    private String openId;
+    /**
+     * 订单号
+     */
+    @ApiModelProperty(value = "订单号")
+    private String orderNo;
+    /**
+     * 订单状态(1.待支付 2.已支付 3.申请退款 4.已退款 5.已关闭)
+     */
+    @ApiModelProperty(value = "订单状态(1.待支付 2.已支付 3.申请退款 4.已退款 5.已关闭)")
+    private Integer status;
+    /**
+     * 支付类型(1.微信 )
+     */
+    @ApiModelProperty(value = "支付类型(1.微信 )")
+    private Integer payType;
+    /**
+     * 订单支付状态(1.待支付 2.已支付)
+     */
+    @ApiModelProperty(value = "订单支付状态(1.待支付 2.已支付)")
+    private Integer payStatus;
+    /**
+     * 订单金额
+     */
+    @ApiModelProperty(value = "订单金额")
+    private BigDecimal orderAmount;
+    /**
+     * 实际支付金额
+     */
+    @ApiModelProperty(value = "实际支付金额")
+    private BigDecimal payAmount;
+    /**
+     * 支付单号
+     */
+    @ApiModelProperty(value = "支付单号")
+    private String payNo;
+    /**
+     * 支付时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "支付时间")
+    private Date payTime;
+    /**
+     * 交易类型(1.电动车商城购买商品)
+     */
+    @ApiModelProperty(value = "交易类型(1.电动车商城购买商品)")
+    private Integer tradeType;
+    /**
+     * 交易业务订单id
+     */
+    @ApiModelProperty(value = "交易业务订单id")
+    private Long tradeOrderId;
+    /**
+     * 交易业务订单号
+     */
+    @ApiModelProperty(value = "交易业务订单号")
+    private String tradeOrderNo;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人
+     */
+    @ApiModelProperty(value = "创建人")
+    private Long createBy;
+    /**
+     * 修改时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryUserAddressVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryUserAddressVo.java
new file mode 100644
index 0000000..9d012a7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComBatteryUserAddressVo.java
@@ -0,0 +1,107 @@
+package com.panzhihua.common.model.vos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 电动车商城-用户收货地址表返回参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-用户收货地址表返回参数
+ *
+ * @author lyq
+ * @date 2022-03-29 13:18:21
+ */
+@Data
+@ApiModel("电动车商城-用户收货地址表返回参数")
+public class ComBatteryUserAddressVo {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 姓名
+     */
+    @ApiModelProperty(value = "姓名")
+    private String name;
+    /**
+     * 手机号
+     */
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+    /**
+     * 详细地址
+     */
+    @ApiModelProperty(value = "详细地址")
+    private String address;
+    /**
+     * 是否是默认地址(1.是  2.否)
+     */
+    @ApiModelProperty(value = "是否是默认地址(1.是  2.否)")
+    private Integer isDefault;
+    /**
+     * 省份行政区划代码
+     */
+    @ApiModelProperty(value = "省份行政区划代码")
+    private String provinceAdcode;
+    /**
+     * 省份名称
+     */
+    @ApiModelProperty(value = "省份名称")
+    private String provinceName;
+    /**
+     * 城市行政区划代码
+     */
+    @ApiModelProperty(value = "城市行政区划代码")
+    private String cityAdcode;
+    /**
+     * 城市名称
+     */
+    @ApiModelProperty(value = "城市名称")
+    private String cityName;
+    /**
+     * 区县行政区划代码
+     */
+    @ApiModelProperty(value = "区县行政区划代码")
+    private String districtAdcode;
+    /**
+     * 区县名称
+     */
+    @ApiModelProperty(value = "区县名称")
+    private String districtName;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+    /**
+     * 修改时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+    /**
+     * 修改人id
+     */
+    @ApiModelProperty(value = "修改人id")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComChangeCarBrandVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComChangeCarBrandVo.java
new file mode 100644
index 0000000..a891dd3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComChangeCarBrandVo.java
@@ -0,0 +1,82 @@
+package com.panzhihua.common.model.vos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 换新车-品牌表返回参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-品牌表返回参数
+ *
+ * @author lyq
+ * @date 2022-04-07 13:37:25
+ */
+@Data
+@ApiModel("换新车-品牌表返回参数")
+public class ComChangeCarBrandVo {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 品牌编号
+     */
+    @ApiModelProperty(value = "品牌编号")
+    private String code;
+    /**
+     * 品牌名称
+     */
+    @ApiModelProperty(value = "品牌名称")
+    private String name;
+    /**
+     * 状态(1.启用 2.禁用)
+     */
+    @ApiModelProperty(value = "状态(1.启用 2.禁用)")
+    private Integer status;
+    /**
+     * 品牌logo
+     */
+    @ApiModelProperty(value = "品牌logo")
+    private String logo;
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是 2.否)")
+    private Integer isDel;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+    /**
+     * 修改时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+    /**
+     * 修改人id
+     */
+    @ApiModelProperty(value = "修改人id")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "创建人名称")
+    private String createByName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComChangeCarInquiryVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComChangeCarInquiryVo.java
new file mode 100644
index 0000000..56ebcb6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComChangeCarInquiryVo.java
@@ -0,0 +1,70 @@
+package com.panzhihua.common.model.vos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 换新车-分期询价表返回参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-分期询价表返回参数
+ *
+ * @author lyq
+ * @date 2022-04-07 13:39:07
+ */
+@Data
+@ApiModel("换新车-分期询价表返回参数")
+public class ComChangeCarInquiryVo {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+    /**
+     * 用户称呼
+     */
+    @ApiModelProperty(value = "用户称呼")
+    private String name;
+    /**
+     * 用户手机号
+     */
+    @ApiModelProperty(value = "用户手机号")
+    private String phone;
+    /**
+     * 类型(1.分期 2.询价)
+     */
+    @ApiModelProperty(value = "类型(1.分期 2.询价)")
+    private Integer type;
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是 2.否)")
+    private Integer isDel;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+
+    @ApiModelProperty(value = "用户昵称")
+    private String userName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComChangeCarModelRelationVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComChangeCarModelRelationVo.java
new file mode 100644
index 0000000..8972a14
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComChangeCarModelRelationVo.java
@@ -0,0 +1,63 @@
+package com.panzhihua.common.model.vos.common;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * title: 换新车-车型与规格关联表返回参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-车型与规格关联表返回参数
+ *
+ * @author lyq
+ * @date 2022-04-07 13:55:31
+ */
+@Data
+@ApiModel("换新车-车型与规格关联表返回参数")
+public class ComChangeCarModelRelationVo {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 车型id
+     */
+    @ApiModelProperty(value = "车型id")
+    private Long modelId;
+    /**
+     * 车型规格id
+     */
+    @ApiModelProperty(value = "车型规格id")
+    private Long modelSpecsId;
+    /**
+     * 车型子规格id
+     */
+    @ApiModelProperty(value = "车型子规格id")
+    private Long modelSpecsChildrenId;
+
+    @ApiModelProperty(value = "车型名称")
+    private String modelName;
+
+    @ApiModelProperty(value = "车型价格")
+    private BigDecimal minPrice;
+
+    @ApiModelProperty(value = "车型图片")
+    private String images;
+
+    @ApiModelProperty(value = "品牌名称")
+    private String brandName;
+
+    @ApiModelProperty(value = "车型规格名称")
+    private String specsName;
+
+    @ApiModelProperty(value = "车型规格下子规格名称")
+    private String specsChildrenName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComChangeCarModelSpecsChildrenVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComChangeCarModelSpecsChildrenVo.java
new file mode 100644
index 0000000..42f5d45
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComChangeCarModelSpecsChildrenVo.java
@@ -0,0 +1,44 @@
+package com.panzhihua.common.model.vos.common;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 换新车-车型子规格表返回参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-车型子规格表返回参数
+ *
+ * @author lyq
+ * @date 2022-04-07 13:55:35
+ */
+@Data
+@ApiModel("换新车-车型子规格表返回参数")
+public class ComChangeCarModelSpecsChildrenVo {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 主规格id
+     */
+    @ApiModelProperty(value = "主规格id")
+    private Long specsId;
+    /**
+     * 子规格名称
+     */
+    @ApiModelProperty(value = "子规格名称")
+    private String name;
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是 2.否)")
+    private Integer isDel;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComChangeCarModelSpecsVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComChangeCarModelSpecsVo.java
new file mode 100644
index 0000000..a839e13
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComChangeCarModelSpecsVo.java
@@ -0,0 +1,77 @@
+package com.panzhihua.common.model.vos.common;
+
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 换新车-车型规格表返回参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-车型规格表返回参数
+ *
+ * @author lyq
+ * @date 2022-04-07 13:55:32
+ */
+@Data
+@ApiModel("换新车-车型规格表返回参数")
+public class ComChangeCarModelSpecsVo {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 规格编号
+     */
+    @ApiModelProperty(value = "规格编号")
+    private String code;
+    /**
+     * 规格名称
+     */
+    @ApiModelProperty(value = "规格名称")
+    private String name;
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是 2.否)")
+    private Integer isDel;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+    /**
+     * 修改时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+    /**
+     * 修改人id
+     */
+    @ApiModelProperty(value = "修改人id")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "规格值")
+    private String specsString;
+
+    @ApiModelProperty(value = "规格下子规格列表")
+    private List<ComChangeCarModelSpecsChildrenVo> modelSpecsChildrenList;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComChangeCarModelVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComChangeCarModelVo.java
new file mode 100644
index 0000000..84f5dc6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComChangeCarModelVo.java
@@ -0,0 +1,97 @@
+package com.panzhihua.common.model.vos.common;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 换新车-车型管理表返回参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-车型管理表返回参数
+ *
+ * @author lyq
+ * @date 2022-04-07 13:41:56
+ */
+@Data
+@ApiModel("换新车-车型管理表返回参数")
+public class ComChangeCarModelVo {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+    /**
+     * 车型名称
+     */
+    @ApiModelProperty(value = "车型名称")
+    private String name;
+    /**
+     * 图片url,多张以,隔开
+     */
+    @ApiModelProperty(value = "图片url,多张以,隔开")
+    private String images;
+    /**
+     * 最低价格
+     */
+    @ApiModelProperty(value = "最低价格")
+    private BigDecimal minPrice;
+    /**
+     * 品牌id
+     */
+    @ApiModelProperty(value = "品牌id")
+    private Long brandId;
+
+    @ApiModelProperty(value = "品牌名称")
+    private String brandName;
+    /**
+     * 车辆详情
+     */
+    @ApiModelProperty(value = "车辆详情")
+    private String detail;
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    @ApiModelProperty(value = "是否删除(1.是 2.否)")
+    private Integer isDel;
+    /**
+     * 状态(1.上架 2.下架)
+     */
+    @ApiModelProperty(value = "状态(1.上架 2.下架)")
+    private Integer status;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+    /**
+     * 修改时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+    /**
+     * 修改人id
+     */
+    @ApiModelProperty(value = "修改人id")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "车型绑定规格列表")
+    private List<ComChangeCarModelRelationVo> carModelRelationList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComMngVolunteerOrgTeamVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComMngVolunteerOrgTeamVo.java
new file mode 100644
index 0000000..4c1ef06
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComMngVolunteerOrgTeamVo.java
@@ -0,0 +1,76 @@
+package com.panzhihua.common.model.vos.common;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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 org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 志愿者组织队伍表返回参数
+ *
+ * @author lyq
+ * @since 2021-10-30 16:06:57
+ */
+@Data
+@ApiModel("志愿者组织队伍表返回参数")
+public class ComMngVolunteerOrgTeamVo {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+    /**
+     * 名称
+     */
+    @ApiModelProperty(value = "名称")
+    private String name;
+    /**
+     * 父级id,为0时则为组织,不为0则为队伍
+     */
+    @ApiModelProperty(value = "父级id,为0时则为组织,不为0则为队伍")
+    private Long parentId;
+    /**
+     * 服务类型
+     */
+    @ApiModelProperty(value = "服务类型")
+    private Long serviceTypeId;
+    /**
+     * 服务类型名称
+     */
+    @ApiModelProperty(value = "服务类型名称")
+    private String serviceTypeName;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 修改时间
+     */
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+
+    @ApiModelProperty(value = "组织下队伍列表")
+    private List<ComMngVolunteerOrgTeamVo> childList;
+
+    @ApiModelProperty(value = "创建人名字")
+    private String createByName;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComMngVolunteerServiceTypeVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComMngVolunteerServiceTypeVo.java
new file mode 100644
index 0000000..bb5fe0d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComMngVolunteerServiceTypeVo.java
@@ -0,0 +1,74 @@
+package com.panzhihua.common.model.vos.common;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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 org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * 志愿者服务类型表返回参数
+ *
+ * @author lyq
+ * @since 2021-10-30 16:47:10
+ */
+@Data
+@ApiModel("志愿者服务类型表返回参数")
+public class ComMngVolunteerServiceTypeVo {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+    /**
+     * 名称
+     */
+    @ApiModelProperty(value = "名称")
+    private String name;
+    /**
+     * 备注
+     */
+    @ApiModelProperty(value = "备注")
+    private String remark;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+    /**
+     * 创建人名称
+     */
+    @ApiModelProperty(value = "创建人名称")
+    private String createByName;
+    /**
+     * 修改时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+    /**
+     * 修改人id
+     */
+    @ApiModelProperty(value = "修改人id")
+    private Long updateBy;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComMngVolunteerSkillVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComMngVolunteerSkillVo.java
new file mode 100644
index 0000000..342f0a7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComMngVolunteerSkillVo.java
@@ -0,0 +1,74 @@
+package com.panzhihua.common.model.vos.common;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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 org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * 志愿者技能表返回参数
+ *
+ * @author lyq
+ * @since 2021-10-30 16:47:37
+ */
+@Data
+@ApiModel("志愿者技能表返回参数")
+public class ComMngVolunteerSkillVo {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+    /**
+     * 名称
+     */
+    @ApiModelProperty(value = "名称")
+    private String name;
+    /**
+     * 备注
+     */
+    @ApiModelProperty(value = "备注")
+    private String remark;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+    /**
+     * 创建人名称
+     */
+    @ApiModelProperty(value = "创建人名称")
+    private String createByName;
+    /**
+     * 修改时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+    /**
+     * 修改人id
+     */
+    @ApiModelProperty(value = "修改人id")
+    private Long updateBy;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComMngVolunteerStatisticsVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComMngVolunteerStatisticsVo.java
new file mode 100644
index 0000000..e3cbf4a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComMngVolunteerStatisticsVo.java
@@ -0,0 +1,27 @@
+package com.panzhihua.common.model.vos.common;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+/**
+ * 志愿者组织统计返回参数
+ *
+ * @author lyq
+ * @since 2021-10-30 16:06:57
+ */
+@Data
+@ApiModel("志愿者组织统计返回参数")
+public class ComMngVolunteerStatisticsVo {
+
+    @ApiModelProperty(value = "组织数量")
+    private Integer orgTotal;
+
+    @ApiModelProperty(value = "队伍数量")
+    private Integer teamTotal;
+
+    @ApiModelProperty(value = "志愿者数量")
+    private Integer volunteerTotal;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComPbCheckUnitVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComPbCheckUnitVo.java
new file mode 100644
index 0000000..1b3f7f2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/ComPbCheckUnitVo.java
@@ -0,0 +1,134 @@
+package com.panzhihua.common.model.vos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 党建-报到单位返回参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 党建-报到单位返回参数
+ *
+ * @author lyq
+ * @date 2022-02-16 16:22:40
+ */
+@Data
+@ApiModel("党建-报到单位返回参数")
+public class ComPbCheckUnitVo {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+    /**
+     * 单位名称
+     */
+    @ApiModelProperty(value = "单位名称")
+    private String name;
+    /**
+     * 单位类别(1.国有企业 2.国有控股企业 3.外资企业 4.合资企业 5.私营企业 6.事业单位 7.国家行政机关 8.政府)
+     */
+    @ApiModelProperty(value = "单位类别(1.国有企业 2.国有控股企业 3.外资企业 4.合资企业 5.私营企业 6.事业单位 7.国家行政机关 8.政府)")
+    private Integer type;
+    /**
+     * 负责人
+     */
+    @ApiModelProperty(value = "负责人")
+    private String contacts;
+    /**
+     * 负责人联系电话
+     */
+    @ApiModelProperty(value = "负责人联系电话")
+    private String phone;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+    /**
+     * 修改时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+    /**
+     * 修改人id
+     */
+    @ApiModelProperty(value = "修改人id")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "社区id",hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "党组织名称")
+    private String orgName;
+
+    @ApiModelProperty(value = "党组织logo")
+    private String logo;
+
+    @ApiModelProperty(value = "所属社区名称")
+    private String communityName;
+
+    @ApiModelProperty(value = "党员人数")
+    private Integer count;
+
+    @ApiModelProperty(value = "区域")
+    private String areaName;
+
+    @ApiModelProperty(value = "区域编码")
+    private String areaCode;
+
+    @ApiModelProperty(value = "街道")
+    private String streetName;
+
+    @ApiModelProperty(value = "地址")
+    private String address;
+
+
+    @ApiModelProperty(value = "特长描述")
+    private String specialtyName;
+    @ApiModelProperty(value = "帮扶社区id")
+    private Long helpCommunityId;
+    @ApiModelProperty(value = "帮扶社区名字")
+    private String helpCommunityName;
+    @ApiModelProperty(value = "帮扶社区手机号")
+    private String helpCommunityContacts;
+    @ApiModelProperty(value = "帮扶社区联系人")
+    private String helpCommunityContactsName;
+    @ApiModelProperty(value = "小区id")
+    private Long villageId;
+    @ApiModelProperty(value = "小区名字")
+    private String villageName;
+
+    private String natureName;
+
+    private Integer natureId;
+    @ApiModelProperty(value = "管理员名称")
+    private String adminName;
+    @ApiModelProperty(value = "管理员电话")
+    private String adminPhone;
+    @ApiModelProperty(value = "其他")
+    private String otherRemark;
+    @ApiModelProperty(value = "单位所属")
+    private String belongTo;
+    @ApiModelProperty(value = "联系人json")
+    private String adminJson;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/PbCheckUnitStatisticsVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/PbCheckUnitStatisticsVo.java
new file mode 100644
index 0000000..6bdc868
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/PbCheckUnitStatisticsVo.java
@@ -0,0 +1,41 @@
+package com.panzhihua.common.model.vos.common;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+
+/**
+ * @title: PbCheckUnitStatisticsTopVo
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 报到单位统计返回参数
+ * @author: hans
+ * @date: 2022/07/25 10:51
+ */
+@Data
+@ApiModel("报到单位统计返回参数")
+public class PbCheckUnitStatisticsVo {
+
+    @ApiModelProperty(value = "单位归属")
+    private String belongTo;
+
+    @ApiModelProperty(value = "报到单位总数")
+    private Integer unitTotal;
+
+    @ApiModelProperty(value = "已报到机关单位")
+    private Integer organTotal;
+
+    @ApiModelProperty(value = "已报到企事业单位")
+    private Integer businessTotal;
+
+    @ApiModelProperty(value = "已报到党员")
+    private Integer partyMemberTotal;
+
+    @ApiModelProperty(value = "机关单位累计总积分")
+    private Integer organSumIntegral;
+
+    @ApiModelProperty(value = "服务时长")
+    private Double serviceTime;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/SysUserVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/SysUserVo.java
new file mode 100644
index 0000000..64d0672
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/common/SysUserVo.java
@@ -0,0 +1,217 @@
+package com.panzhihua.common.model.vos.common;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.springframework.format.annotation.DateTimeFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * title: 用户表 后台用户+小程序用户返回参数
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 用户表 后台用户+小程序用户返回参数
+ *
+ * @author lyq
+ * @date 2022-03-28 14:28:10
+ */
+@Data
+@ApiModel("用户表 后台用户+小程序用户返回参数")
+public class SysUserVo {
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    private Long userId;
+    /**
+     * 登录账户
+     */
+    @ApiModelProperty(value = "登录账户")
+    private String account;
+    /**
+     * 登录密码
+     */
+    @ApiModelProperty(value = "登录密码")
+    private String password;
+    /**
+     * 微信小程序唯一标识
+     */
+    @ApiModelProperty(value = "微信小程序唯一标识")
+    private String openid;
+    /**
+     * 会话密钥
+     */
+    @ApiModelProperty(value = "会话密钥")
+    private String sessionKey;
+    /**
+     * 用户在开放平台的唯一标识符
+     */
+    @ApiModelProperty(value = "用户在开放平台的唯一标识符")
+    private String unionid;
+    /**
+     * 手机号
+     */
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+    /**
+     * 昵称
+     */
+    @ApiModelProperty(value = "昵称")
+    private String nickName;
+    /**
+     * 真实名字
+     */
+    @ApiModelProperty(value = "真实名字")
+    private String name;
+    /**
+     * 社区ID
+     */
+    @ApiModelProperty(value = "社区ID")
+    private Long communityId;
+    /**
+     * 性别 1 男 2 女
+     */
+    @ApiModelProperty(value = "性别 1 男 2 女")
+    private Integer sex;
+    /**
+     * 身份证号
+     */
+    @ApiModelProperty(value = "身份证号")
+    private String idCard;
+    /**
+     * 生日
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "生日")
+    private Date birthday;
+    /**
+     * 头像
+     */
+    @ApiModelProperty(value = "头像")
+    private String imageUrl;
+    /**
+     * 用户类型 1 小程序 2 运营平台 3 社区平台 5 商家后台 6 网格综治APP 7 网格综治后台 8大屏 9城管后台 10一键报警app
+     */
+    @ApiModelProperty(value = "用户类型 1 小程序 2 运营平台 3 社区平台 5 商家后台 6 网格综治APP 7 网格综治后台 8大屏 9城管后台 10一键报警app")
+    private Integer type;
+    /**
+     * 职业
+     */
+    @ApiModelProperty(value = "职业")
+    private String job;
+    /**
+     * 是否志愿者 0 否 1 是
+     */
+    @ApiModelProperty(value = "是否志愿者 0 否 1 是")
+    private Integer isVolunteer;
+    /**
+     * 是否党员 0 否 1 是
+     */
+    @ApiModelProperty(value = "是否党员 0 否 1 是")
+    private Integer isPartymember;
+    /**
+     * 1 启用 2 禁用
+     */
+    @ApiModelProperty(value = "1 启用 2 禁用")
+    private Integer status;
+    /**
+     * 创建时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    /**
+     * 最后登录时间
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "最后登录时间")
+    private Date lastLoginTime;
+    /**
+     * 标签多个用,隔开
+     */
+    @ApiModelProperty(value = "标签多个用,隔开")
+    private String tags;
+    /**
+     * 家庭id
+     */
+    @ApiModelProperty(value = "家庭id")
+    private Long familyId;
+    /**
+     * 人脸采集照片url
+     */
+    @ApiModelProperty(value = "人脸采集照片url")
+    private String faceUrl;
+    /**
+     * 人脸采集审核状态 0 待审核 1 审核通过 2驳回
+     */
+    @ApiModelProperty(value = "人脸采集审核状态 0 待审核 1 审核通过 2驳回")
+    private Integer faceState;
+    /**
+     * 驳回原因
+     */
+    @ApiModelProperty(value = "驳回原因")
+    private String rejectReson;
+    /**
+     * 小区id
+     */
+    @ApiModelProperty(value = "小区id")
+    private Long areaId;
+    /**
+     * 证件照(人相面)照片
+     */
+    @ApiModelProperty(value = "证件照(人相面)照片")
+    private String cardPhotoFront;
+    /**
+     * 证件照(国徽面)照片
+     */
+    @ApiModelProperty(value = "证件照(国徽面)照片")
+    private String cardPhotoBack;
+    /**
+     * 户口本
+     */
+    @ApiModelProperty(value = "户口本")
+    private String familyBook;
+    /**
+     * 连续登陆天数 每天凌晨定时任务更新
+     */
+    @ApiModelProperty(value = "连续登陆天数 每天凌晨定时任务更新")
+    private Integer continuousLandingDays;
+    /**
+     * 小程序首页是否显示公告(1.是 2.否)
+     */
+    @ApiModelProperty(value = "小程序首页是否显示公告(1.是 2.否)")
+    private Integer isTips;
+    /**
+     * 网格员工作状态(1.在岗 2.脱岗 3.已下班)
+     */
+    @ApiModelProperty(value = "网格员工作状态(1.在岗 2.脱岗 3.已下班)")
+    private Integer workStatus;
+    /**
+     * 网格员上班开始时间
+     */
+    @ApiModelProperty(value = "网格员上班开始时间")
+    private Integer workStartTime;
+    /**
+     * 网格员上班结束时间
+     */
+    @ApiModelProperty(value = "网格员上班结束时间")
+    private Integer workEndTime;
+    /**
+     * 高龄认证显示提示(1.是 2.否)
+     */
+    @ApiModelProperty(value = "高龄认证显示提示(1.是 2.否)")
+    private Integer bigAgeTips;
+    /**
+     * 明文密码
+     */
+    @ApiModelProperty(value = "明文密码")
+    private String plaintextPassword;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ActivityInviteVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ActivityInviteVO.java
new file mode 100644
index 0000000..8c906f6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ActivityInviteVO.java
@@ -0,0 +1,49 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+
+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;
+
+/**
+ * @title: ActivityInviteVO
+ * @projectName:
+ * @description: 活动邀请信息
+ * @author: hans
+ * @date: 2022/08/02 10:54
+ */
+@Data
+@ApiModel("活动邀请信息")
+public class ActivityInviteVO {
+
+    @ApiModelProperty("自增id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("受邀活动id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long activityId;
+
+    @ApiModelProperty("受邀用户id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long userId;
+
+    @ApiModelProperty("受邀用户姓名")
+    private String name;
+
+    @ApiModelProperty("受邀用户电话")
+    private String phone;
+
+    @ApiModelProperty("是否报名,true-报名,false-未报名")
+    private Boolean isSign;
+
+    @ApiModelProperty("邀请人")
+    private Long createdBy;
+
+    @ApiModelProperty("邀请时间")
+    private Date createdAt;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ActivitySignInRecordVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ActivitySignInRecordVO.java
new file mode 100644
index 0000000..49a8276
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ActivitySignInRecordVO.java
@@ -0,0 +1,42 @@
+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;
+
+/**
+ * @title: ActivitySignInRecordVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 活动报名签到记录
+ * @author: hans
+ * @date: 2021/10/19 9:22
+ */
+@Data
+@ApiModel("活动报名签到记录")
+public class ActivitySignInRecordVO {
+
+    @ApiModelProperty("活动类型,1.居民/志愿者活动 2.党员活动")
+    private Integer type;
+
+    @ApiModelProperty("活动主键")
+    private Long activityId;
+
+    @ApiModelProperty("真实名字")
+    private String name;
+
+    @ApiModelProperty("报名时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("用户id")
+    private Long userId;
+
+    @ApiModelProperty("参与次数")
+    private Integer times;
+
+    @ApiModelProperty("活动限制次数")
+    private Integer limit;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ActivitySignVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ActivitySignVO.java
new file mode 100644
index 0000000..f087b23
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ActivitySignVO.java
@@ -0,0 +1,79 @@
+package com.panzhihua.common.model.vos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 社区活动报名名单
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-08 16:48
+ **/
+@Data
+@ApiModel("社区活动报名名单")
+public class ActivitySignVO {
+
+    @ApiModelProperty("活动主键")
+    private Long activityId;
+    @ApiModelProperty("表主键")
+    private Long id;
+    @ApiModelProperty("名字")
+    private String name;
+    @ApiModelProperty("用户昵称")
+    private String nickName;
+    @ApiModelProperty("身份")
+    private String identity;
+    @ApiModelProperty("人群标签")
+    private String tags;
+    @ApiModelProperty("手机号")
+    private String phone;
+    @ApiModelProperty("报名时间")
+    private String createAt;
+    @ApiModelProperty("人员头像")
+    private String imageUrl;
+    @ApiModelProperty("以什么身份报名(1.居民 2.党员 3.志愿者)")
+    private Integer signIdentity;
+    @ApiModelProperty(value = "列表人员类型 1 普通居民 2 志愿者", hidden = true)
+    private Integer type;
+    @ApiModelProperty("人员主键")
+    private Long userId;
+    @ApiModelProperty("用户openid")
+    private String openid;
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+    /**
+     * 报名状态 0 已取消 1已报名
+     */
+    @ApiModelProperty("报名状态 0 已取消 1已报名")
+    private Integer status;
+
+    /**
+     * 取消原因
+     */
+    @ApiModelProperty("取消原因")
+    private String reason;
+
+    /**
+     * 参与次数
+     */
+    @ApiModelProperty("参与次数")
+    private Integer times;
+
+    /**
+     * 获取奖励
+     */
+    @ApiModelProperty("获取奖励")
+    private Integer award;
+
+    /**
+     * 活动限制次数
+     */
+    @ApiModelProperty("活动限制次数")
+    private Integer limit;
+
+    @ApiModelProperty("是否邀请参与")
+    private Boolean isInvite;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/Base64File.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/Base64File.java
new file mode 100644
index 0000000..16babaf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/Base64File.java
@@ -0,0 +1,11 @@
+package com.panzhihua.common.model.vos.community;
+
+import lombok.Data;
+
+/**
+ * @author zzj
+ */
+@Data
+public class Base64File {
+    private String file;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/BatchhouseVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/BatchhouseVO.java
new file mode 100644
index 0000000..573d361
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/BatchhouseVO.java
@@ -0,0 +1,47 @@
+package com.panzhihua.common.model.vos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 批量建房
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-16 09:40
+ **/
+@Data
+@ApiModel("批量建房")
+public class BatchhouseVO {
+
+    @ApiModelProperty(value = "楼栋区间-开始", example = "1")
+    private Integer buildingBegin;
+    @ApiModelProperty(value = "楼栋区间-结束", example = "10")
+    private Integer buildingEnd;
+    @ApiModelProperty(value = "单元区间-结束", example = "3")
+    private Integer unitEnd;
+    @ApiModelProperty(value = "单元区间-开始", example = "1")
+    private Integer unitBegin;
+    @ApiModelProperty(value = "楼层区间-开始", example = "1")
+    private Integer floorBegin;
+    @ApiModelProperty(value = "楼层区间-结束", example = "30")
+    private Integer floorEnd;
+    @ApiModelProperty(value = "门牌号区间-结束", example = "6")
+    private Integer doorEnd;
+    @ApiModelProperty(value = "门牌号区间-开始", example = "1")
+    private Integer doorBegin;
+    @ApiModelProperty(value = "门牌号规则-楼层", example = "1")
+    private String ruleFloor;
+    @ApiModelProperty(value = "门牌号规则-连接符", example = "-")
+    private String ruleConnector;
+    @ApiModelProperty(value = "门牌号规则-门牌号", example = "001")
+    private String ruleDoor;
+    @ApiModelProperty(value = "门牌编号是否累加 0 否  1  是", example = "0")
+    private Integer isAccumulation;
+    @ApiModelProperty(value = "小区地址编码")
+    private String areaCode;
+    @ApiModelProperty(value = "添加同级-类型 2楼栋  3 单元 4楼层  5门牌号")
+    private Integer type;
+    @ApiModelProperty(value = "添加同级-上级地址编码")
+    private String parentCode;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/BuildingVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/BuildingVO.java
new file mode 100644
index 0000000..a9e32e9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/BuildingVO.java
@@ -0,0 +1,9 @@
+package com.panzhihua.common.model.vos.community;
+
+import lombok.Data;
+
+@Data
+public class BuildingVO {
+    private String label;
+    private String value;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActEvaluateExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActEvaluateExcelVO.java
new file mode 100644
index 0000000..e592068
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActEvaluateExcelVO.java
@@ -0,0 +1,41 @@
+package com.panzhihua.common.model.vos.community;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * title: ComActActEvaluateDO  社区活动评价表
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 记录和展示社区活动评价内容
+ *
+ * @author txb
+ * @date 2021/8/24 10:21
+ */
+
+@Data
+@ApiModel("社区活动评价表")
+public class ComActActEvaluateExcelVO {
+
+    @ExcelProperty(value = "姓名", index = 1)
+    private String name;
+
+    @ExcelProperty(value = "身份", index = 2)
+    private String identity;
+
+    @ExcelProperty(value = "电话", index = 3)
+    private String phone;
+
+    @ExcelProperty(value = "评价时间", index = 0)
+    private Date createAt;
+
+    @ExcelProperty(value = "评分星级", index = 4)
+    private String starLevel;
+
+    @ExcelProperty(value = "评价详情", index = 5)
+    private String evaluateContent;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActEvaluateVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActEvaluateVO.java
new file mode 100644
index 0000000..768e3a8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActEvaluateVO.java
@@ -0,0 +1,89 @@
+package com.panzhihua.common.model.vos.community;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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 org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * title: ComActActEvaluateDO  社区活动评价表
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 记录和展示社区活动评价内容
+ *
+ * @author txb
+ * @date 2021/8/24 10:21
+ */
+
+@Data
+@ApiModel("社区活动评价表")
+public class ComActActEvaluateVO{
+
+    @ApiModelProperty("自增id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("所属活动id")
+    private Long activityId;
+
+    @ApiModelProperty("用户id, 和用户信息表的相关id关联")
+    private Long userId;
+
+    @ApiModelProperty("名字")
+    private String name;
+
+    @ApiModelProperty("用户昵称")
+    private String nickName;
+
+    @ApiModelProperty("身份")
+    private String identity;
+
+    @ApiModelProperty("手机号")
+    private String phone;
+
+    @ApiModelProperty("人员头像")
+    private String imageUrl;
+
+    @ApiModelProperty(value = "列表人员类型 1 普通居民 2 志愿者", hidden = true)
+    private Integer type;
+
+    @ApiModelProperty("评价时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("评分星级1.差 2.一般 3.还不错 4.很满意 5.强烈推荐")
+    private Integer starLevel;
+
+    @ApiModelProperty("评价内容")
+    private String evaluateContent;
+
+    @ApiModelProperty("人群标签")
+    private String tags;
+
+    @ApiModelProperty("照片(多张以逗号隔开)")
+    private String photo;
+
+    @ApiModelProperty("用户openid")
+    private String openid;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty("开始时间")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    private Date startTime;
+
+    @ApiModelProperty("结束时间")
+    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
+    private Date endTime;
+}
\ No newline at end of file
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
new file mode 100644
index 0000000..114de51
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActPictureVO.java
@@ -0,0 +1,50 @@
+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 com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * title: ComActActPictureDO  社区》活动》历史上传图片实体类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 社区》活动》历史上传图片实体类
+ *
+ * @author txb
+ * @date 2021/8/27 14:21
+ */
+
+@Data
+@ApiModel("社区活动封面")
+public class ComActActPictureVO {
+
+    @ApiModelProperty("自增id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @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("上传图片")
+    private String uploadPicture;
+
+    @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/ComActActPrizeVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActPrizeVO.java
new file mode 100644
index 0000000..61a1119
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActPrizeVO.java
@@ -0,0 +1,33 @@
+package com.panzhihua.common.model.vos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 活动奖品
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 14:17
+ **/
+@Data
+@ApiModel("社区》活动》活动奖品")
+public class ComActActPrizeVO {
+
+    @ApiModelProperty("自增id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("所属活动id")
+    private Long activityId;
+
+    @ApiModelProperty("奖品名称")
+    private String prizeName;
+
+    @ApiModelProperty("奖品图片路径")
+    private String prizePhoto;
+
+    @ApiModelProperty("是否报名既有 1 是  0 不是")
+    private Integer type;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActRegistExcelNewVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActRegistExcelNewVO.java
new file mode 100644
index 0000000..3e892af
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActRegistExcelNewVO.java
@@ -0,0 +1,42 @@
+package com.panzhihua.common.model.vos.community;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * title: ComActActRegistExcelVO  社区活动签到表
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 记录和展示社区活动签到内容
+ *
+ * @author txb
+ * @date 2021/8/24 10:21
+ */
+
+@Data
+@ApiModel("社区活动签到表")
+public class ComActActRegistExcelNewVO {
+
+    @ExcelProperty(value = "姓名", index = 3)
+    private String name;
+
+    @ExcelProperty(value = "身份", index = 4)
+    private String identity;
+
+    @ExcelProperty(value = "电话", index = 6)
+    private String phone;
+
+    @ExcelProperty(value = "签到时间", index = 0)
+    private Date startTime;
+
+    @ExcelProperty(value = "人群标签", index = 5)
+    private String tags;
+
+    @ExcelProperty(value = "签到地点", index = 1)
+    private String position;
+
+    @ExcelProperty(value = "参加次数序号", index = 2)
+    private Integer times;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActRegistExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActRegistExcelVO.java
new file mode 100644
index 0000000..bfbfc8c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActRegistExcelVO.java
@@ -0,0 +1,45 @@
+package com.panzhihua.common.model.vos.community;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * title: ComActActRegistExcelVO  社区活动签到表
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 记录和展示社区活动签到内容
+ *
+ * @author txb
+ * @date 2021/8/24 10:21
+ */
+
+@Data
+@ApiModel("社区活动签到表")
+public class ComActActRegistExcelVO {
+
+    @ExcelProperty(value = "姓名", index = 4)
+    private String name;
+
+    @ExcelProperty(value = "身份", index = 5)
+    private String identity;
+
+    @ExcelProperty(value = "电话", index = 7)
+    private String phone;
+
+    @ExcelProperty(value = "签到时间", index = 0)
+    private Date startTime;
+
+    @ExcelProperty(value = "签退时间", index = 1)
+    private Date endTime;
+
+    @ExcelProperty(value = "人群标签", index = 6)
+    private String tags;
+
+    @ExcelProperty(value = "签到地点", index = 2)
+    private String position;
+
+    @ExcelProperty(value = "参加次数序号", index = 3)
+    private Integer times;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActRegistVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActRegistVO.java
new file mode 100644
index 0000000..458cfcc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActRegistVO.java
@@ -0,0 +1,104 @@
+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 com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import java.util.Date;
+
+/**
+ * title: ComActActEvaluateDO  社区活动签到表
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 记录和展示社区活动签到内容
+ *
+ * @author txb
+ * @date 2021/8/24 10:21
+ */
+
+@Data
+@ApiModel("社区活动签到表")
+public class ComActActRegistVO {
+
+    @ApiModelProperty("自增id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("所属活动id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long activityId;
+
+    @ApiModelProperty("用户id, 和用户信息表的相关id关联")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long userId;
+
+    @ApiModelProperty("名字")
+    private String name;
+
+    @ApiModelProperty("用户昵称")
+    private String nickName;
+
+    @ApiModelProperty("身份")
+    private String identity;
+
+    @ApiModelProperty("人群标签")
+    private String tags;
+
+    @ApiModelProperty("手机号")
+    private String phone;
+
+    @ApiModelProperty("人员头像")
+    private String imageUrl;
+
+    @ApiModelProperty(value = "列表人员类型 1 普通居民 2 志愿者", hidden = true)
+    private Integer type;
+
+    @ApiModelProperty("签到时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("以什么身份报名(1.居民 2.党员 3.志愿者)")
+    private Integer signIdentity;
+
+    @ApiModelProperty("用户openid")
+    private String openid;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "签到位置")
+    private String position;
+
+    @ApiModelProperty(value = "签到次数")
+    private Integer times;
+
+    @ApiModelProperty(value = "二维码id")
+    private Long codeId;
+
+    @ApiModelProperty(value = "本次签到获取的积分奖励")
+    private Integer award;
+
+    @ApiModelProperty(value = "活动类型 1居民,志愿者 2党员")
+    private Integer activityType;
+
+    @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("1签到 2签退")
+    private Integer signType;
+
+    @ApiModelProperty("时长")
+    private Integer duration;
+
+    @ApiModelProperty("活动状态 1 待发布 2 未开始 3 报名中 4 进行中 5 已结束 6 已取消")
+    private Integer status;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActSignExcelNewVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActSignExcelNewVO.java
new file mode 100644
index 0000000..8c31ea4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActSignExcelNewVO.java
@@ -0,0 +1,44 @@
+package com.panzhihua.common.model.vos.community;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * title: ComActActSignExcelVO  社区活动报名名单
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 记录和展示社区活动报名名单
+ *
+ * @author txb
+ * @date 2021/8/24 10:21
+ */
+
+@Data
+@ApiModel("社区活动签到表")
+public class ComActActSignExcelNewVO {
+
+    @ExcelProperty(value = "姓名", index = 1)
+    private String name;
+
+    @ExcelProperty(value = "身份", index = 2)
+    private String identity;
+
+    @ExcelProperty(value = "手机号", index = 3)
+    private String phone;
+
+    @ExcelProperty(value = "报名时间", index = 0)
+    private Date createAt;
+    @ExcelProperty(value = "报名状态",index = 4)
+    private String status;
+
+    @ExcelProperty(value = "取消原因", index = 5)
+    private String reason;
+
+    @ExcelProperty(value = "报名次数序号", index = 6)
+    private Integer times;
+
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActSignExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActSignExcelVO.java
new file mode 100644
index 0000000..981bc6a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActSignExcelVO.java
@@ -0,0 +1,59 @@
+package com.panzhihua.common.model.vos.community;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * title: ComActActSignExcelVO  社区活动报名名单
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 记录和展示社区活动报名名单
+ *
+ * @author txb
+ * @date 2021/8/24 10:21
+ */
+
+@Data
+@ApiModel("社区活动签到表")
+public class ComActActSignExcelVO {
+
+    @ExcelProperty(value = "姓名", index = 1)
+    private String name;
+
+    @ExcelProperty(value = "身份", index = 2)
+    private String identity;
+
+    @ExcelProperty(value = "电话", index = 4)
+    private String phone;
+
+    @ExcelProperty(value = "报名时间", index = 0)
+    private Date createAt;
+
+    @ExcelProperty(value = "人员标签", index = 3)
+    private String tags;
+
+    @ExcelProperty(value = "报名状态",index = 5)
+    private String status;
+
+    @ExcelProperty(value = "取消原因", index = 6)
+    private String reason;
+
+    @ExcelProperty(value = "参与情况", index = 7)
+    private String condition;
+
+    @ExcelProperty(value = "获得奖励", index = 8)
+    private String award;
+    @ExcelIgnore
+    private Integer times;
+    @ExcelIgnore
+    private Integer limit;
+
+    public void generateCondition() {
+        if(this.times!=null&&this.limit!=null){
+            this.condition = "("+times+"/"+ (limit.equals(-1) ? "无限" : limit) +")";
+        }
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActivityBigScreenVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActivityBigScreenVO.java
new file mode 100644
index 0000000..caba8d5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActivityBigScreenVO.java
@@ -0,0 +1,59 @@
+package com.panzhihua.common.model.vos.community;
+
+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.dtos.community.ActivityInviteDTO;
+import com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleDetailAppVO;
+import com.panzhihua.common.validated.AddGroup;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 社区活动
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 14:01
+ **/
+@Data
+@ApiModel("大屏-社区活动")
+public class ComActActivityBigScreenVO {
+
+    @ApiModelProperty("自增id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("活动封面")
+    private String cover;
+
+    @ApiModelProperty("活动类型")
+    private String activityType;
+
+    @ApiModelProperty("活动名称")
+    private String activityName;
+
+    @ApiModelProperty("活动状态 1 待发布 2 未开始 3 报名中 4 进行中 5 已结束 6 已取消")
+    private Integer status;
+
+    @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 endAt;
+
+    @ApiModelProperty("活动开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date beginAt;
+
+    @ApiModelProperty("参加人数")
+    private Integer personNum;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActivityStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActivityStatisticsVO.java
new file mode 100644
index 0000000..478c45f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActivityStatisticsVO.java
@@ -0,0 +1,91 @@
+package com.panzhihua.common.model.vos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 社区活动数据统计返回参数
+ */
+@Data
+@ApiModel("社区活动数据统计返回参数")
+public class ComActActivityStatisticsVO {
+
+    /**
+     * 应报名总人数
+     */
+    @ApiModelProperty("应报名总人数")
+    private Integer signTotal;
+    /**
+     * 应报名总人数Str
+     */
+    @ApiModelProperty("应报名总人数Str")
+    private String signTotalStr;
+    /**
+     * 实际报名总人数
+     */
+    @ApiModelProperty("实际报名总人数")
+    private Integer reallySignTotal;
+    /**
+     * 未报名报名总人数
+     */
+    @ApiModelProperty("未报名报名总人数")
+    private Integer noSignTotal;
+    /**
+     * 未报名报名总人数Str
+     */
+    @ApiModelProperty("未报名报名总人数Str")
+    private String noSignTotalStr;
+    /**
+     * 报名总人数百分比
+     */
+    @ApiModelProperty("报名总人数百分比")
+    private String signPersent;
+    /**
+     * 应签到总人数
+     */
+    @ApiModelProperty("应签到总人数")
+    private Integer registTotal;
+
+    /**
+     * 实际签到总人数
+     */
+    @ApiModelProperty("实际签到总人数")
+    private Integer reallyRegistTotal;
+
+    /**
+     * 未签到总人数
+     */
+    @ApiModelProperty("未签到总人数")
+    private Integer noRegistTotal;
+
+    /**
+     * 签到总人数百分比
+     */
+    @ApiModelProperty("签到总人数百分比")
+    private String registPersent;
+
+    /**
+     * 应评价总人数
+     */
+    @ApiModelProperty("应评价总人数")
+    private Integer evaluateTotal;
+
+    /**
+     * 实际评价总人数
+     */
+    @ApiModelProperty("实际评价总人数")
+    private Integer reallyEvaluateTotal;
+
+    /**
+     * 未评价总人数
+     */
+    @ApiModelProperty("未评价总人数")
+    private Integer noEvaluateTotal;
+
+    /**
+     * 评价人数百分比
+     */
+    @ApiModelProperty("评价人数百分比")
+    private String evaluatePersent;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActivityTypeVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActivityTypeVO.java
new file mode 100644
index 0000000..19f5ad3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActivityTypeVO.java
@@ -0,0 +1,40 @@
+package com.panzhihua.common.model.vos.community;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import com.panzhihua.common.validated.AddGroup;
+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;
+
+/**
+ * @title: ComActActivityTypeVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 活动分类vo
+ * @author: hans
+ * @date: 2021/10/21 11:11
+ */
+@Data
+@ApiModel("活动分类vo")
+public class ComActActivityTypeVO {
+
+    @ApiModelProperty("自增id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("类型名称")
+    @NotBlank(groups = AddGroup.class, message = "类型名称不能为空")
+    private String name;
+
+    @ApiModelProperty("活动类型(1.志愿者 2.居民 3.党员)")
+    @NotNull(groups = AddGroup.class, message = "活动类型不能为空")
+    private Integer type;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+}
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
new file mode 100644
index 0000000..01f822a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActActivityVO.java
@@ -0,0 +1,345 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.panzhihua.common.model.dtos.community.ActivityInviteDTO;
+import com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleDetailAppVO;
+import com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 社区活动
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 14:01
+ **/
+@Data
+@ApiModel("社区活动")
+public class ComActActivityVO {
+
+    @ApiModelProperty("自增id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("活动名称")
+    @NotBlank(groups = AddGroup.class, message = "活动名称不可为空")
+    private String activityName;
+
+    @ApiModelProperty("负责人userID")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long sponsorId;
+
+    @ApiModelProperty("负责人名字")
+    private String sponsorName;
+
+    @ApiModelProperty("活动地址")
+    @NotBlank(groups = AddGroup.class, message = "活动地址不可为空")
+    private String activityAddr;
+
+    @ApiModelProperty("纬度")
+    @NotBlank(groups = AddGroup.class, message = "纬度不可为空")
+    private String lat;
+
+    @ApiModelProperty("经度")
+    @NotBlank(groups = AddGroup.class, message = "经度不可为空")
+    private String lng;
+
+    @ApiModelProperty("活动状态 1 待发布 2 未开始 3 报名中 4 进行中 5 已结束 6 已取消")
+    private Integer status;
+
+    @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")
+    @NotNull(groups = AddGroup.class, message = "活动结束时间不可为空")
+    private Date endAt;
+
+    @ApiModelProperty("活动开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @NotNull(groups = AddGroup.class, message = "活动开始时间不可为空")
+    private Date beginAt;
+
+    @ApiModelProperty("报名开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @NotNull(groups = AddGroup.class, message = "报名开始时间不可为空")
+    private Date signUpBegin;
+
+    @ApiModelProperty("报名结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @NotNull(groups = AddGroup.class, message = "报名结束时间不可为空")
+    private Date signUpEnd;
+
+    @ApiModelProperty("参加人群(多个以逗号隔开)")
+    private String aattendPeople;
+
+    @ApiModelProperty("志愿者人数下线")
+    private Integer volunteerMin;
+
+    @ApiModelProperty("志愿者人数上限(不需要则不填写)")
+    private Integer volunteerMax;
+
+    @ApiModelProperty("当前志愿者数量")
+    private Integer volunteerNow;
+
+    @ApiModelProperty("居民人数下线")
+    private Integer participantMin;
+
+    @ApiModelProperty("居民人数上限(不填写则默认不限人数)")
+    private Integer participantMax;
+
+    @ApiModelProperty("当前居民数量")
+    private Integer participantNow;
+
+    @ApiModelProperty("活动封面")
+    @NotBlank(groups = AddGroup.class, message = "活动封面不可为空")
+    private String cover;
+
+    @ApiModelProperty("是否有奖品 1 有 0  无")
+    private Integer hasPrize;
+
+    @ApiModelProperty("是否二维码签到 1 是 0否")
+    private Integer isQrCode;
+
+    @ApiModelProperty("用户签到记录列表")
+    private List<ComActActRegistVO> activitySignInList;
+
+    @ApiModelProperty("联系人姓名")
+    private String contactName;
+
+    @ApiModelProperty("联系人电话")
+    private String contactPhone;
+
+    @ApiModelProperty("是否签到 1 是 0否")
+    private Integer isRegist;
+
+    @ApiModelProperty("是否顶部 1 是 0否")
+    private Integer isTop;
+
+    @ApiModelProperty("奖品备注")
+    private String prizeRemark;
+
+    @ApiModelProperty("奖励说明")
+    private String rewardDesc;
+
+    @ApiModelProperty("活动内容")
+    @NotBlank(groups = AddGroup.class, message = "活动内容不可为空")
+    private String content;
+
+    @ApiModelProperty("活动奖品集合")
+    private List<ComActActPrizeVO> comActActPrizeVOList;
+
+    @ApiModelProperty("活动评价集合")
+    private List<ComActActEvaluateVO> comActActEvaluateVOList;
+
+    @ApiModelProperty("活动评价总数")
+    private Long evaluateAmount;
+
+    @ApiModelProperty("活动评分星级平均数")
+    private BigDecimal evaluateLevel;
+
+    @ApiModelProperty("当前用户对活动的评分")
+    private Integer myRating;
+
+    @ApiModelProperty("活动是否已默认好评")
+    private Integer isDefaultPraise;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "社区id集合", hidden = true)
+    private List<Long> communityIds;
+
+    @ApiModelProperty(value = "社区名称")
+    private String communityName;
+
+    @ApiModelProperty(value = "当前页数", example = "1")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "每页记录数", example = "10")
+    private Long pageSize;
+
+    @ApiModelProperty(value = "取消原因")
+    private String cancelReason;
+
+    @ApiModelProperty(value = "是否已经报名 1 已报名 0 未报名")
+    private Integer isSign = 0;
+
+    @ApiModelProperty(value = "以什么身份报名(1.居民 2.党员 3.志愿者)")
+    private Integer signIdentity;
+
+    @ApiModelProperty(value = "当前登录者id", hidden = true)
+    private Long userId;
+
+    @ApiModelProperty("活动参加普通人员集合")
+    private List<ActivitySignVO> activitySignVOList;
+
+    @ApiModelProperty("活动参加志愿者人员集合")
+    private List<ActivitySignVO> activityVolunteerList;
+
+    @ApiModelProperty("活动参加党员人员集合")
+    private List<ActivitySignVO> activityPbList;
+
+    @ApiModelProperty("活动类型 1 社区活动 4项目活动 5服务活动")
+    private Integer type;
+
+    @ApiModelProperty("活动创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty(value = "是否是小程序访问 1 是 ", hidden = true)
+    private Integer isApplets;
+
+    @ApiModelProperty("活动积分")
+    private Integer integral;
+
+    @ApiModelProperty(value = "是不是请求进行中 1 是", hidden = true)
+    private Integer isIng;
+
+    @ApiModelProperty("用户实际报名时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date singDate;
+
+    @ApiModelProperty("党员活动是否个人发布  1 是 0 否")
+    private Integer isPerson;
+
+    @ApiModelProperty(value = "查询筛选:0-本小区 1-全部")
+    private Integer choice;
+
+    @ApiModelProperty("签到范围,默认0无限制")
+    @NotNull(groups = AddGroup.class, message = "签到范围不可为空")
+    private Integer range;
+
+    @ApiModelProperty("是否有积分奖励(1.是 2.否)")
+    @NotNull(groups = AddGroup.class, message = "是否有积分奖励不可为空")
+    private Integer haveIntegralReward;
+
+    @ApiModelProperty("居民积分奖励方式(1.按次奖励 2.记时奖励)")
+    private Integer participantRewardWay;
+
+    @ApiModelProperty("居民参与签到/打卡奖励积分")
+    private Integer participantRewardIntegral;
+
+    @ApiModelProperty("志愿者积分奖励方式(1.按次奖励 2.记时奖励)")
+    private Integer volunteerRewardWay;
+
+    @ApiModelProperty("志愿者参与签到/打卡奖励积分")
+    private Integer volunteerRewardIntegral;
+
+    @ApiModelProperty("党员积分奖励方式(1.按次奖励 2.记时奖励)")
+    private Integer pbRewardWay;
+
+    @ApiModelProperty("党员参与签到/打卡奖励积分")
+    private Integer pbRewardIntegral;
+
+    @ApiModelProperty("参与次数上限,按次奖励需传入,无次数限制-1")
+    private Integer limit;
+
+    @ApiModelProperty("是否允许取消(1.允许 2.不允许)")
+    @NotNull(groups = AddGroup.class, message = "是否允许取消不可为空")
+    private Integer canCancel;
+
+    @ApiModelProperty("取消活动扣除积分数目")
+    private Integer cancelDeduct;
+
+    @ApiModelProperty("用户已参与次数")
+    private Integer times;
+
+    @ApiModelProperty("已获取积分")
+    private Integer award;
+
+    @ApiModelProperty("二维码类型 1居民,志愿者 2党员")
+    private Integer codeType;
+
+    @ApiModelProperty("活动类型")
+    private String activityType;
+
+    private String areaCode;
+
+    @ApiModelProperty("单次活动时长(小时)")
+    private Integer duration;
+
+    @ApiModelProperty("项目Id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long projectId;
+
+    @ApiModelProperty("项目名称")
+    private String projectName;
+
+    @ApiModelProperty("社工数")
+    private Integer socialCount;
+
+
+    /**
+     * 党员参与者人数下线
+     */
+    @ApiModelProperty("党员参与者人数下线")
+    private Integer partyMemberMin;
+
+    /**
+     * 党员参与者人数上限
+     */
+    @ApiModelProperty("党员参与者人数上限")
+    private Integer partyMemberMax;
+
+    @ApiModelProperty("当前党员数量")
+    private Integer partyMemberNow;
+
+    /**
+     * 签退范围,默认0无限制
+     */
+    @ApiModelProperty("签退范围,默认0无限制")
+    private Integer signOutRange;
+
+    @ApiModelProperty("1签到 2签退")
+    private Integer signType;
+
+    @ApiModelProperty("是否可以评价 1是 0 否")
+    private Integer isComment;
+
+    private Integer signCount;
+
+    private Integer registerCount;
+
+    private Integer isArticle;
+
+    private String jumpArticleUrl;
+    @ApiModelProperty("关联服务id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long relationId;
+    @ApiModelProperty("关联手机")
+    private String phone;
+    @ApiModelProperty("单位id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long checkUnitId;
+
+    @ApiModelProperty("活动话题id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long topicId;
+
+    @ApiModelProperty("活动邀请人员")
+    private List<ActivityInviteDTO> activityInviteList;
+
+    @ApiModelProperty(value = "街道id", hidden = true)
+    private Long streetId;
+
+    @ApiModelProperty("清单信息")
+    private ComActNeighborCircleDetailAppVO listDetail;
+
+    @ApiModelProperty("奖励金汇币")
+    private String jinhuiCoinAward;
+
+    @ApiModelProperty("惩罚金汇币")
+    private String jinhuiCoinPunishment;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActAnnouncementVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActAnnouncementVO.java
new file mode 100644
index 0000000..26cdb62
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActAnnouncementVO.java
@@ -0,0 +1,65 @@
+package com.panzhihua.common.model.vos.community;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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.util.Date;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel
+public class ComActAnnouncementVO {
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 内容
+     */
+    @ApiModelProperty(value = "内容")
+    private String content;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date createTime;
+
+    /**
+     * 发布人id
+     */
+    @ApiModelProperty(value = "发布人id")
+    private Long userId;
+
+    /**
+     * 通知类型id
+     */
+    @ApiModelProperty(value = "通知类型id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long columnId;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    /**
+     * 发布人
+     */
+    @ApiModelProperty("发布人")
+    private String username;
+
+    @ApiModelProperty("分类名称")
+    private String columnName;
+
+    @ApiModelProperty("propertyId")
+    private Long propertyId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActColumnLevelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActColumnLevelVO.java
new file mode 100644
index 0000000..92ff55f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActColumnLevelVO.java
@@ -0,0 +1,69 @@
+package com.panzhihua.common.model.vos.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.util.Date;
+import java.util.List;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel
+public class ComActColumnLevelVO {
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 分类名称
+     */
+    @ApiModelProperty(value = "分类名称")
+    private String name;
+
+    /**
+     * 创建人
+     */
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    /**
+     * 修改人
+     */
+    @ApiModelProperty(value = "修改人")
+    private String updateBy;
+
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty(value = "修改时间")
+    private Date updateTime;
+
+    /**
+     * 状态 0禁用 1启用
+     */
+    @ApiModelProperty(value = "状态 0禁用 1启用")
+    private Integer status;
+
+    /**
+     * 分类类型 1服务类型分类 2技能分类 3通知公告 4项目分类
+     */
+    @ApiModelProperty(value = "分类类型 1服务类型分类 2技能分类 3通知公告 4项目分类")
+    private Integer type;
+
+    private Long communityId;
+
+    @ApiModelProperty(value = "父类id")
+    private Long parentId;
+    @ApiModelProperty(value = "二级目录集合")
+    List<ComActColumnVO> comActColumnVOList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActColumnVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActColumnVO.java
new file mode 100644
index 0000000..9a612aa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActColumnVO.java
@@ -0,0 +1,75 @@
+package com.panzhihua.common.model.vos.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.util.Date;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel
+public class ComActColumnVO {
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 分类名称
+     */
+    @ApiModelProperty(value = "分类名称")
+    private String name;
+
+    /**
+     * 创建人
+     */
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    /**
+     * 修改人
+     */
+    @ApiModelProperty(value = "修改人")
+    private String updateBy;
+
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty(value = "修改时间")
+    private Date updateTime;
+
+    /**
+     * 状态 0禁用 1启用
+     */
+    @ApiModelProperty(value = "状态 0禁用 1启用")
+    private Integer status;
+
+    /**
+     * 分类类型 1服务类型分类 2技能分类 3通知公告 4项目分类
+     */
+    @ApiModelProperty(value = "分类类型 1服务范围分类 2技能分类 3通知公告 4项目分类")
+    private Integer type;
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long communityId;
+
+    @ApiModelProperty(value = "父类id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long parentId;
+
+    @ApiModelProperty("街道id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long streetId;
+
+    private String description;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActCommiteeVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActCommiteeVO.java
new file mode 100644
index 0000000..5e556db
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActCommiteeVO.java
@@ -0,0 +1,73 @@
+package com.panzhihua.common.model.vos.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;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel("业主委员会实体")
+public class ComActCommiteeVO {
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 名称
+     */
+    @ApiModelProperty(value = "名称")
+    private String name;
+
+    /**
+     * 联系人
+     */
+    @ApiModelProperty(value = "联系人")
+    private String contactName;
+
+    /**
+     * 联系电话
+     */
+    @ApiModelProperty(value = "联系电话")
+    private String phone;
+
+    /**
+     * 小区id
+     */
+    @ApiModelProperty(value = "小区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long areaId;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long userId;
+
+    /**
+     * 社区id
+     */
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long communityId;
+
+    @ApiModelProperty("账号")
+    private String account;
+
+    @ApiModelProperty("密码")
+    private String password;
+
+    @ApiModelProperty("权限id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long roleId;
+
+    @ApiModelProperty("小区名称")
+    private String areaName;
+
+}
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
new file mode 100644
index 0000000..912d7ba
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDiscussCommentVO.java
@@ -0,0 +1,91 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+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;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 一起议评论详情
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-23 13:44
+ **/
+@Data
+@ApiModel("一起议评论详情")
+public class ComActDiscussCommentVO {
+    @ApiModelProperty("主键")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("一起议主键")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long discussId;
+
+    @ApiModelProperty("评论内容")
+    private String comment;
+
+    @ApiModelProperty("是否置顶 0 否 1 是")
+    private Integer isTopping;
+
+    @ApiModelProperty("评论时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("是否作者本人回复 0 否 1 是")
+    private Integer isAuthor;
+
+    @ApiModelProperty("上级评论id 默认0表示一级评论")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long parentId;
+
+    @ApiModelProperty("用户主键")
+    private Long userId;
+
+    @ApiModelProperty("评论人名字")
+    private String userName;
+
+    @ApiModelProperty("评论人昵称")
+    private String userNickName;
+
+    @ApiModelProperty("回复人名字")
+    private String userNameBack;
+
+    @ApiModelProperty("回复人昵称")
+    private String userNickNameBack;
+
+    @ApiModelProperty("评论人手机号")
+    private String phone;
+
+    @ApiModelProperty("评论人头像")
+    private String imageUrl;
+
+    @ApiModelProperty("点赞数量")
+    private Integer num;
+
+    @ApiModelProperty("是否点赞 1 是 0 否")
+    private Integer haveSign = 0;
+
+    @ApiModelProperty("回复内容")
+    private String commentBack;
+
+    @ApiModelProperty("回复时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date timeBack;
+
+    @ApiModelProperty("二级评论集合")
+    private List<ComActDiscussCommentVO> comActDiscussCommentVOList;
+
+    @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..47e2f6a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDiscussOptionUserVO.java
@@ -0,0 +1,60 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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;
+
+/**
+ * @title: ComActDiscussOptionUserVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 一起议投票记录详情
+ * @author: hans
+ * @date: 2021/09/08 16:14
+ */
+@Data
+@ApiModel("一起议投票记录详情")
+public class ComActDiscussOptionUserVO {
+
+    @ApiModelProperty("投票记录主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("一起议选项id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long discussOptionId;
+
+    @ApiModelProperty("投票人id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long userId;
+
+    @ApiModelProperty("投票时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("一起议id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long discussId;
+
+    @ApiModelProperty("投票人昵称")
+    private String userNickName;
+
+    @ApiModelProperty("投票人头像")
+    private String imageUrl;
+
+    @ApiModelProperty("签名")
+    private String signUrl;
+
+    @ApiModelProperty("投票原因")
+    private String reason;
+
+    @ApiModelProperty("选项内容")
+    private String optionContent;
+
+    @ApiModelProperty("选项图片url")
+    private String optionUrl;
+}
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
new file mode 100644
index 0000000..7f0b27b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDiscussOptionVO.java
@@ -0,0 +1,55 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+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;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 一起议选项
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-22 16:08
+ **/
+@Data
+@ApiModel("一起议选项")
+public class ComActDiscussOptionVO {
+    @ApiModelProperty("id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("一起议主键")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long discussId;
+
+    @ApiModelProperty("选项内容")
+    private String optionContent;
+
+    @ApiModelProperty("选项图片url")
+    private String optionUrl;
+
+    @ApiModelProperty("create_at")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("投票数量")
+    private Integer num;
+
+    @ApiModelProperty("投票总数量")
+    private Integer allNum;
+
+    @ApiModelProperty("是否已经投票 1 是 0 否")
+    private Integer haveVote = 0;
+
+    @ApiModelProperty("投票选项占比")
+    private BigDecimal percent;
+
+    @ApiModelProperty("是否需要填写原因")
+    private Boolean needReason;
+}
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
new file mode 100644
index 0000000..a417396
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDiscussVO.java
@@ -0,0 +1,153 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+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;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 一起议议详情
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-22 16:07
+ **/
+@Data
+@ApiModel("一起议议详情")
+public class ComActDiscussVO {
+    @ApiModelProperty("主键")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("主题")
+    private String discussSubject;
+
+    @ApiModelProperty("类型 1 议事 2 投票")
+    private Integer type;
+
+    @ApiModelProperty("图片地址 多个用逗号隔开")
+    private String photoPah;
+
+    @ApiModelProperty("地址")
+    private String address;
+
+    @ApiModelProperty("发布人主键")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long userId;
+
+    @ApiModelProperty("社区主键")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long communityId;
+
+    @ApiModelProperty("create_at")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("1 单选 2 多选")
+    private Integer discussOption;
+
+    @ApiModelProperty("投票标题")
+    private String voteTitle;
+
+    @ApiModelProperty("选项")
+    private List<ComActDiscussOptionVO> comActDiscussOptionVOS;
+
+    @ApiModelProperty("评论数量")
+    private Integer commentNum;
+
+    @ApiModelProperty("点赞数量")
+    private Integer signNum;
+
+    @ApiModelProperty("浏览量")
+    private Integer viewsNum;
+
+    @ApiModelProperty("发布人名字")
+    private String userName;
+
+    @ApiModelProperty("发布人昵称")
+    private String userNickName;
+
+    @ApiModelProperty("发布人头像")
+    private String imageUrl;
+
+    @ApiModelProperty("是否已经点赞 1 是 0 否")
+    private Integer haveSign = 0;
+
+    @ApiModelProperty("是否已经投票 1 是 0 否")
+    private Integer haveVote = 0;
+
+    @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("议事内容类型(1.社区议事 2.院落议事 3.党群议事 4.居民议事 5.其他)")
+    private Integer contentType;
+
+    @ApiModelProperty("已参与投票人数")
+    private Integer votedPersonNum;
+
+    @ApiModelProperty("投票范围(1.全部居民 2.志愿者 3.党员)")
+    private Integer voteScope;
+
+    @ApiModelProperty("是否需要签名")
+    private Boolean needSign;
+
+    /**
+     * 类型 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/ComActDpcVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDpcVO.java
new file mode 100644
index 0000000..4d54555
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDpcVO.java
@@ -0,0 +1,47 @@
+package com.panzhihua.common.model.vos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: ComActDpcVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 人大代表信息
+ * @author: hans
+ * @date: 2022/06/07 11:08
+ */
+@Data
+@ApiModel("人大代表信息")
+public class ComActDpcVO {
+
+    @ApiModelProperty("人大代表id")
+    private Long id;
+
+    @ApiModelProperty("姓名")
+    private String name;
+
+    @ApiModelProperty("手机号")
+    private String phone;
+
+    @ApiModelProperty("民族")
+    private String nation;
+
+    @ApiModelProperty("性别(1.男 2.女 3.未知)")
+    private Integer sex;
+
+    @ApiModelProperty("选区")
+    private String area;
+
+    @ApiModelProperty("所属家/站")
+    private String belong;
+
+    @ApiModelProperty("代表类别")
+    private String category;
+
+    @ApiModelProperty("单位职务")
+    private String position;
+
+    @ApiModelProperty("照片")
+    private String photo;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDynTypeVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDynTypeVO.java
new file mode 100644
index 0000000..18fbbdd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDynTypeVO.java
@@ -0,0 +1,48 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+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;
+
+/**
+ * 社区动态分类
+ */
+@Data
+@ApiModel("社区动态分类")
+public class ComActDynTypeVO {
+
+    @ApiModelProperty("主键(分类编码)")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("分类名称")
+    private String name;
+
+    @ApiModelProperty("分类字体颜色")
+    private String color;
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("创建人")
+    private String createBy;
+
+    @ApiModelProperty("修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAt;
+
+    @ApiModelProperty("修改人")
+    private String updateBy;
+
+    @ApiModelProperty("社区id,当此值为0时,该社区动态分类为系统预设,不可操作")
+    private Long communityId;
+
+    private String category;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDynVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDynVO.java
new file mode 100644
index 0000000..cc0aa1b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActDynVO.java
@@ -0,0 +1,139 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+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;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 社区动态
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-08 17:25
+ **/
+@Data
+@ApiModel("社区活动 》社区动态")
+public class ComActDynVO {
+
+    @ApiModelProperty("主键")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("标题")
+    private String title;
+
+    @ApiModelProperty("阅读数")
+    private Integer readNum;
+
+    @ApiModelProperty("状态 0 待发布 1 已发布")
+    private Integer status;
+
+    @ApiModelProperty("是否置顶 0 否 1 是")
+    private Integer isTopping;
+
+    @ApiModelProperty("街道id")
+    private Long streetId;
+
+    @ApiModelProperty(value = "发布时间")
+    @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 createAt;
+
+    @ApiModelProperty("修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAt;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private String communityId;
+
+    @ApiModelProperty(value = "当前页数", example = "1")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "每页记录数", example = "10")
+    private Long pageSize;
+
+    @ApiModelProperty("发布搜索开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date publishAtBegin;
+
+    @ApiModelProperty("发布搜索结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date publishAtEnd;
+
+    @ApiModelProperty("动态内容富文本")
+    private String content;
+
+    @ApiModelProperty("动态内容富文本--纯文本")
+    private String contentText;
+
+    @ApiModelProperty(value = "社区名字")
+    private String communityName;
+
+    @ApiModelProperty(value = "封面")
+    private String cover;
+
+    @ApiModelProperty(value = "是否增加 1 增加 0 不增加")
+    private Integer isAdd;
+
+    @ApiModelProperty(value = "社区动态分类id 1 2 3 4")
+    private String type;
+
+    @ApiModelProperty(value = "社区动态分类名称")
+    private String typeName;
+
+    @ApiModelProperty(value = "社区动态分类颜色")
+    private String typeColor;
+
+    @ApiModelProperty(value = "封面模式:1-小图展示 2-大图展示")
+    private Integer coverMode;
+
+    @ApiModelProperty(value = "查询筛选:0-本小区 1-全部")
+    private Integer choice;
+
+    @ApiModelProperty(value = "社区动态跳转链接")
+    private String jumpUrl;
+
+    @ApiModelProperty("跳转状态")
+    private Integer jumpType;
+
+    private String areaCode;
+
+    @ApiModelProperty("是否培训公共")
+    private Integer isOrgHatch;
+
+    @ApiModelProperty("类别(1.社区动态 2.招募公告 3.考察记录 4.评审公示 5.孵化培育 6.出壳成果 10.社区主题 11 花城金汇智慧党建)")
+    private Integer category;
+
+    @ApiModelProperty("显示时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date releaseTime;
+
+    /**
+     * 是否置顶
+     * */
+    @ApiModelProperty("广告是否置顶0否1是")
+    private Integer onTop;
+
+    /**
+     * 图片链接
+     * */
+    @ApiModelProperty("图片链接")
+    private String imageUrl;
+
+
+    private String typeS;
+
+    private List<String> typeList;
+
+    @ApiModelProperty("社区id集合")
+    private List<String> communityList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActEasyPhotoActivityVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActEasyPhotoActivityVO.java
new file mode 100644
index 0000000..d9f9590
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActEasyPhotoActivityVO.java
@@ -0,0 +1,57 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+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;
+
+@Data
+@ApiModel("随手拍活动返回参数")
+public class ComActEasyPhotoActivityVO {
+
+    @ApiModelProperty("活动id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("活动状态(1.待开始 2.进行中 3.已结束  4.已取消)")
+    private Integer status;
+
+    @ApiModelProperty("活动简介")
+    private String content;
+
+    @ApiModelProperty("活动开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date activityStartAt;
+
+    @ApiModelProperty("活动结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date activityEndAt;
+
+    @ApiModelProperty("优质奖励金额")
+    private BigDecimal goodReward;
+
+    @ApiModelProperty("精良奖励金额")
+    private BigDecimal excellentReward;
+
+    @ApiModelProperty("普通奖励金额")
+    private BigDecimal ordinaryReward;
+
+    @ApiModelProperty("一般奖励金额")
+    private BigDecimal commonlyReward;
+
+    @ApiModelProperty("活动图片")
+    private String logo;
+
+    @ApiModelProperty("发布时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date releaseAt;
+
+    @ApiModelProperty("随手拍参与次数")
+    private Integer count;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActEasyPhotoCommentVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActEasyPhotoCommentVO.java
new file mode 100644
index 0000000..bed94b6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActEasyPhotoCommentVO.java
@@ -0,0 +1,53 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+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;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 随手拍评论
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-21 14:03
+ **/
+@Data
+@ApiModel("随手拍评论")
+public class ComActEasyPhotoCommentVO {
+    @ApiModelProperty("id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("随手拍主键")
+    private Long easyPhotoId;
+
+    @ApiModelProperty("varchar(500)")
+    private String comment;
+
+    @ApiModelProperty("评论者id")
+    private Long userId;
+
+    @ApiModelProperty("评论时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("评论人名字")
+    private String name;
+
+    @ApiModelProperty("评论人昵称")
+    private String nickName;
+
+    @ApiModelProperty("评论人头像")
+    private String url;
+
+    @ApiModelProperty("点赞数量")
+    private Integer num;
+
+    @ApiModelProperty("会否已经点赞 1 是 0 否")
+    private Integer haveSign = 0;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActEasyPhotoFeedbackVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActEasyPhotoFeedbackVO.java
new file mode 100644
index 0000000..102d419
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActEasyPhotoFeedbackVO.java
@@ -0,0 +1,42 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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;
+
+/**
+ * 随手拍反馈信息
+ */
+@Data
+@ApiModel("随手拍反馈信息")
+public class ComActEasyPhotoFeedbackVO {
+
+    @ApiModelProperty("自增id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("随手拍id")
+    private Long easyId;
+
+    @ApiModelProperty("反馈内容")
+    private String feedbackContent;
+
+    @ApiModelProperty("反馈图片列表")
+    private String feedbackImg;
+
+    @ApiModelProperty("反馈时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("反馈人名字")
+    private String createByName;
+
+    @ApiModelProperty("反馈人头像")
+    private String createByImage;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActEasyPhotoRewardVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActEasyPhotoRewardVO.java
new file mode 100644
index 0000000..7fa8222
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActEasyPhotoRewardVO.java
@@ -0,0 +1,45 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.easyPhoto.BannerVO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 用户获得随手拍奖励返回参数
+ */
+@Data
+@ApiModel("用户获得随手拍奖励返回参数")
+public class ComActEasyPhotoRewardVO {
+
+    @ApiModelProperty("奖励金额")
+    private BigDecimal amount;
+
+    @ApiModelProperty("随手拍最新活动")
+    private ComActEasyPhotoActivityVO easyPhotoActivityVO;
+
+    @ApiModelProperty("正在进行中的弹窗问卷调查")
+    private ComActQuestnaireAppVO popupQuestnaireVO;
+
+    @ApiModelProperty("banner图位置问卷调查列表")
+    private List<ComActQuestnaireAppVO> bannerQuestnaireList;
+
+    @ApiModelProperty("banner图位置活动列表")
+    private List<ComActActivityVO> bannerActivityList;
+
+    @ApiModelProperty("应用位置问卷调查列表")
+    private List<ComActQuestnaireAppVO> applicationQuestnaireList;
+
+    @ApiModelProperty("banner预约/登记列表")
+    private List<ComActReserveIndexVo> comActReserveIndexBannerVos;
+
+    @ApiModelProperty("应用预约/登记列表")
+    private List<ComActReserveIndexVo> comActReserveIndexApplicationVos;
+
+    @ApiModelProperty("动态banner")
+    private List<BannerVO> bannerVOS;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActEasyPhotoVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActEasyPhotoVO.java
new file mode 100644
index 0000000..544127b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActEasyPhotoVO.java
@@ -0,0 +1,250 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotBlank;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.panzhihua.common.model.vos.common.ComActEasyPhotoEvaluateVo;
+import com.panzhihua.common.model.vos.common.ComActEasyPhotoHandlerVo;
+import com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 随手拍
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 14:19
+ **/
+@Data
+@ApiModel("社区活动 》随手拍")
+public class ComActEasyPhotoVO {
+
+    @ApiModelProperty("自增id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("发起人id")
+    private Long sponsorId;
+
+    @ApiModelProperty("发起人名字")
+    private String sponsorName;
+
+    @ApiModelProperty("发布人昵称")
+    private String userNickName;
+
+    @ApiModelProperty("发生地址")
+    @NotBlank(groups = {AddGroup.class}, message = "发生地址不能为空")
+    private String happenAddr;
+
+    @ApiModelProperty("发起人头像")
+    private String imageUrl;
+
+    @ApiModelProperty("状态 1待审核  2进行中 3已驳回 4待评价 5.已完成")
+    private Integer status;
+
+    @ApiModelProperty("处理人id")
+    private Long handlerId;
+
+    @ApiModelProperty("处理人名字")
+    private String handlerName;
+
+    @ApiModelProperty("查询-创建开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createBegin;
+
+    @ApiModelProperty("查询-创建结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createEnd;
+
+    @ApiModelProperty("详情")
+    @NotBlank(groups = {AddGroup.class}, message = "详情不能为空")
+    private String detail;
+
+    @ApiModelProperty("图片路径列表,逗号分隔")
+    @NotBlank(groups = {AddGroup.class}, message = "图片路径列表不能为空")
+    private String photoPathList;
+
+    @ApiModelProperty("处理结果")
+    private String handleResult;
+
+    @ApiModelProperty("处理结果,图片路径列表,逗号分隔")
+    private String handlePhotoList;
+
+    @ApiModelProperty("当前页数")
+    private Long pageNum;
+
+    @ApiModelProperty("每页记录数")
+    private Long pageSize;
+
+    @ApiModelProperty("审核时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date examineAt;
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("社区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long communityId;
+
+
+    @ApiModelProperty("社区名称")
+    private String communityName;
+
+    @ApiModelProperty("点赞数量")
+    private Integer giveThumbsUpNum;
+
+    @ApiModelProperty("评论数量")
+    private Integer commentNum;
+
+    @ApiModelProperty("是否匿名发布 0 否 1 是")
+    @Min(value = 0, groups = {AddGroup.class}, message = "是否匿名发布不能为空")
+    private Integer isHide;
+
+    @ApiModelProperty("是否点赞 0 否 1 是")
+    private Integer haveGiveThumbsUp = 0;
+
+    @ApiModelProperty(value = "是否需要反馈 1 是 0 不是", example = "0")
+    private Integer isNeedFeedBack;
+
+    @ApiModelProperty("操作类型 1处理随手拍 2驳回 3反馈 4.完成随手拍")
+    private Integer type;
+
+    @ApiModelProperty(value = "登录用户id", hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "登录用户id", hidden = true)
+    private Long logInUserId;
+
+    @ApiModelProperty("反馈时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date feedbackAt;
+
+    @ApiModelProperty("发起人手机号")
+    private String phone;
+
+    @ApiModelProperty("拒绝原因")
+    private String rejectReason;
+
+    @ApiModelProperty(value = "后台登录人员id", hidden = true)
+    private Long backUserId;
+
+    @ApiModelProperty(value = "地址备注")
+    private String addrRemark;
+
+    @ApiModelProperty(value = "是否上报社区处理(0.否 1.是)")
+    private Integer isReport;
+
+    @ApiModelProperty(value = "是否公示(0.否 1.是)")
+    private Integer isPublicity;
+
+    @ApiModelProperty(value = "处理状态(1.待处理 2.已处理)")
+    private Integer handleStatus;
+
+    @ApiModelProperty(value = "发生地址经纬度信息,逗号分割(长的在前面,短的在后面)")
+    private String lngLat;
+
+    @ApiModelProperty(value = "随手拍标签(1.优质 2.精良 3.普通 4.一般 5.无)")
+    private Integer activityType;
+
+    @ApiModelProperty(value = "参加活动奖励金额")
+    private BigDecimal activityAmount;
+
+    @ApiModelProperty(value = "活动奖励金额")
+    private BigDecimal activityMoney;
+
+    @ApiModelProperty(value = "随手拍活动id")
+    private Long activityId;
+
+    @ApiModelProperty(value = "类型(1.心情类 2.治理类)")
+    private Integer easyType;
+
+    @ApiModelProperty(value = "随手拍活动")
+    private ComActEasyPhotoActivityVO easyPhotoActivityVO;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+    @ApiModelProperty(value = "反馈信息列表")
+    private List<ComActEasyPhotoFeedbackVO> photoFeedbackList;
+
+    @ApiModelProperty(value = "人大代表反馈信息列表")
+    private List<ComActEasyPhotoFeedbackVO> photoFeedbackListForDpc;
+
+    @ApiModelProperty(value = "完成人名称")
+    private String completeName;
+
+    @ApiModelProperty(value = "是否上报到人大代表( 0未上报 1已上报)")
+    private Integer isReportDpc;
+
+    @ApiModelProperty(value = "是否上报城管 0未上报 1已上报 2已退回")
+    private Integer isReportUrban;
+
+    @ApiModelProperty(value = "城管移交说明(备注)")
+    private String transferReason;
+
+    @ApiModelProperty("移交时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date transferTime;
+
+    @ApiModelProperty(value = "城管安排状态 0未安排 1已安排 2已处理")
+    private Integer urbanStatus;
+
+    @ApiModelProperty(value = "随手拍分类id")
+    private Long classifyId;
+
+    @ApiModelProperty(value = "随手拍分类名称")
+    private String classifyName;
+
+    @ApiModelProperty(value = "1 随手拍    2网格治理")
+    private String addType;
+
+    /**
+     * 是否上报城管 0未上报 1已上报 2已退回
+     */
+    public interface isReportUrban {
+        int no = 0;
+        int yes = 1;
+        int ret = 2;
+    }
+    @ApiModelProperty(value = "单张图片宽度")
+    private BigDecimal imgWidth;
+
+    @ApiModelProperty(value = "单张图片高度")
+    private BigDecimal imgHeight;
+
+    @ApiModelProperty(value = "评价时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date evaluateDate;
+
+    @ApiModelProperty(value = "评价分数")
+    private Integer score;
+
+    @ApiModelProperty(value = "评价内容")
+    private String content;
+
+    @ApiModelProperty(value = "评价记录")
+    private List<ComActEasyPhotoEvaluateVo> evaluateList;
+
+    @ApiModelProperty(value = "微心愿分配人员集合")
+    private List<ComActMicroWishHandleVO> handleList;
+
+    @ApiModelProperty(value = "人大代表是否反馈(1.未反馈 2.已反馈)")
+    private Integer isFeedBackForDpc;
+
+    @ApiModelProperty(value = "是否人大代表成员 1.是 2.否", hidden = true)
+    private Integer isDpcMember;
+
+    @ApiModelProperty(value = "处理记录")
+    private List<ComActEasyPhotoHandlerVo> handleRecordList;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActEnterpriseTypeVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActEnterpriseTypeVO.java
new file mode 100644
index 0000000..edc16e2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActEnterpriseTypeVO.java
@@ -0,0 +1,47 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: ComActEnterpriseTypeVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 社区企业服务分类信息
+ * @author: hans
+ * @date: 2022/06/06 16:05
+ */
+@Data
+@ApiModel("社区企业服务分类信息")
+public class ComActEnterpriseTypeVO {
+
+    @ApiModelProperty("分类id")
+    private Long id;
+
+    @ApiModelProperty("服务分类名称")
+    private String name;
+
+    @ApiModelProperty("描述")
+    private String description;
+
+    @ApiModelProperty("状态(1.启用 2.停用)")
+    private Integer status;
+
+    @ApiModelProperty("创建人")
+    private String createdBy;
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createdAt;
+
+    @ApiModelProperty("由谁更新")
+    private String updatedBy;
+
+    @ApiModelProperty("最后更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updatedAt;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActEnterpriseVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActEnterpriseVO.java
new file mode 100644
index 0000000..3e31170
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActEnterpriseVO.java
@@ -0,0 +1,61 @@
+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: ComActEnterpriseVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 社区企业信息
+ * @author: hans
+ * @date: 2022/05/31 13:42
+ */
+@Data
+@ApiModel("社区企业信息")
+public class ComActEnterpriseVO {
+
+    @ApiModelProperty("企业id")
+    private Long id;
+
+    @ApiModelProperty("企业名称")
+    private String name;
+
+    @ApiModelProperty("统一社会信用代码")
+    private String agencyCode;
+
+    @ApiModelProperty("法定代表人")
+    private String legalRepresentative;
+
+    @ApiModelProperty("联系电话")
+    private String phone;
+
+    @ApiModelProperty("注册时间")
+    private Date registeAt;
+
+    @ApiModelProperty("所属社区")
+    private Long communityId;
+
+    @ApiModelProperty("所属社区名称")
+    private String communityName;
+
+    @ApiModelProperty("地址")
+    private String address;
+
+    @ApiModelProperty("企业介绍")
+    private String introduct;
+
+    @ApiModelProperty("企业logo")
+    private String logo;
+
+    @ApiModelProperty("服务类型id")
+    private Long type;
+
+    @ApiModelProperty("服务类型名称")
+    private String typeName;
+
+    @ApiModelProperty("状态(1.启用 2.禁用)")
+    private Integer status;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActFourMemberVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActFourMemberVO.java
new file mode 100644
index 0000000..f6e63c9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActFourMemberVO.java
@@ -0,0 +1,103 @@
+package com.panzhihua.common.model.vos.community;
+
+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.validated.AddGroup;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.Pattern;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel("四长四员实体")
+public class ComActFourMemberVO {
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long userId;
+
+    /**
+     * 职位
+     */
+    @ApiModelProperty(value = "职位")
+    private String position;
+
+    /**
+     * 管辖区域
+     */
+    @ApiModelProperty(value = "管辖区域")
+    private String jurisdiction;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long communityId;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    @ApiModelProperty("账户")
+    @Pattern(groups = {AddGroup.class}, message = "【账户】2-20个字符,英文,数字", regexp = "^[0-9A-Za-z]{2,20}$")
+    private String account;
+
+    @ApiModelProperty("密码")
+    @Pattern(groups = {AddGroup.class}, message = "【密码】格式为6-16个字符,英文,数字,且必须包含英文和数字",
+            regexp = "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,16}$")
+    private String password;
+
+    @ApiModelProperty("用户名称")
+    @Pattern(groups = {AddGroup.class}, message = "【用户名称】2-16个字符,英文,中文,数字", regexp = "^[0-9A-Za-z\u4e00-\u9fa5]{2,16}$")
+    private String name;
+
+    @ApiModelProperty("角色")
+    @Min(value = 1, groups = {AddGroup.class}, message = "角色不能为空")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long roleId;
+
+    @ApiModelProperty("手机号")
+    @Pattern(groups = {AddGroup.class}, message = "【手机号】格式错误", regexp = "1[3|4|5|7|8][0-9]\\d{8}")
+    private String phone;
+
+    @ApiModelProperty("状态 1 启用 2 禁用")
+    @Min(groups = {AddGroup.class}, value = 1, message = "账户状态不能为空")
+    private Integer status;
+
+    @ApiModelProperty("身份证号码")
+    private String idCard;
+
+    @ApiModelProperty("管辖区域内容")
+    private List<String> buildings;
+
+    @ApiModelProperty("图片")
+    private String url;
+
+    @ApiModelProperty("id数组")
+    private Integer[] ids;
+
+    @ApiModelProperty("管辖区域")
+    private String jurisdictionContent;
+
+    @ApiModelProperty("管辖区域数组")
+    private List<String> jurisdictionContentList;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActMessageBackVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActMessageBackVO.java
new file mode 100644
index 0000000..dbf0f2b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActMessageBackVO.java
@@ -0,0 +1,65 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+
+import javax.validation.constraints.NotBlank;
+
+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.validated.AddGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("留言回复")
+public class ComActMessageBackVO {
+    @ApiModelProperty("主键")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("留言id")
+    private Long msgId;
+
+    @ApiModelProperty("回复内容")
+    @NotBlank(groups = {AddGroup.class}, message = "回复内容不能为空")
+    private String msgContent;
+
+    @ApiModelProperty("图片地址 多个用逗号隔开")
+    private String photoPah;
+
+    @ApiModelProperty(value = "联系方式", hidden = true)
+    private String phone;
+
+    @ApiModelProperty(value = "留言人id", hidden = true)
+    private Long sendtoUserId;
+
+    @ApiModelProperty(value = "留言人姓名", hidden = true)
+    private String sendtoUserName;
+
+    @ApiModelProperty(value = "状态 1 待回复 2 已回复", hidden = true)
+    private Integer status;
+
+    @ApiModelProperty(value = "是否公开 1 公开 2 保密", hidden = true)
+    private Integer ispublic;
+
+    @ApiModelProperty(value = "回复人主键", hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "回复人账号", hidden = true)
+    private String userAccount;
+
+    @ApiModelProperty(value = "回复人姓名", hidden = true)
+    private String userName;
+
+    @ApiModelProperty(value = "回复人职位")
+    private String userJob;
+
+    @ApiModelProperty(value = "社区主键", hidden = true)
+    private Long communityId;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "回复时间", hidden = true)
+    private Date createAt;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActMessageVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActMessageVO.java
new file mode 100644
index 0000000..536a208
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActMessageVO.java
@@ -0,0 +1,74 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+
+import javax.validation.constraints.NotBlank;
+
+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.validated.AddGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("留言")
+public class ComActMessageVO {
+    @ApiModelProperty("主键")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("留言内容")
+    @NotBlank(groups = {AddGroup.class}, message = "留言内容不能为空")
+    private String msgContent;
+
+    @ApiModelProperty("图片地址 多个用逗号隔开")
+    private String photoPah;
+
+    @ApiModelProperty(value = "留言对象联系方式", hidden = true)
+    private String phone;
+
+    @ApiModelProperty("回复人id")
+    private Long sendtoUserId;
+
+    @ApiModelProperty(value = "留言对象姓名", hidden = false)
+    private String sendtoUserName;
+
+    @ApiModelProperty(value = "状态 1 待回复 2 已回复", hidden = false)
+    private Integer status;
+
+    @ApiModelProperty(value = "是否公开 1 公开 2 保密", hidden = false)
+    private Integer ispublic;
+
+    @ApiModelProperty(value = "留言人主键", hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "留言人账号", hidden = false)
+    private String userAccount;
+
+    @ApiModelProperty("留言人电话")
+    @NotBlank(groups = {AddGroup.class}, message = "联系方式不能为空")
+    private String userPhone;
+    @ApiModelProperty(value = "留言人姓名", hidden = false)
+    private String userName;
+
+    @ApiModelProperty(value = "社区主键", hidden = true)
+    private Long communityId;
+    @ApiModelProperty(value = "留言对象 1社区团队 2社区团委 3人大代表", hidden = false)
+    private Long type;
+    @ApiModelProperty(value = "回复时间", hidden = true)
+    private Date createAt;
+    @ApiModelProperty("当前页数")
+    private Long pageNum;
+
+    @ApiModelProperty("每页记录数")
+    private Long pageSize;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("发布开始时间")
+    private Date publishAtBegin;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("发布结束时间")
+    private Date publishAtEnd;
+}
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/ComActMicroWishHandleVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActMicroWishHandleVO.java
new file mode 100644
index 0000000..5edde10
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActMicroWishHandleVO.java
@@ -0,0 +1,21 @@
+package com.panzhihua.common.model.vos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * 微心愿处理人请求参数
+ */
+@Data
+@ApiModel("微心愿处理人请求参数")
+public class ComActMicroWishHandleVO {
+
+    @ApiModelProperty("用户id")
+    private Long userId;
+
+    @ApiModelProperty("处理人类型(1.后台用户  2.党员  3.志愿者 4.社工 5.四长四员 6普通居民)")
+    private Integer type;
+}
+
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
new file mode 100644
index 0000000..4f502ca
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActMicroWishVO.java
@@ -0,0 +1,180 @@
+package com.panzhihua.common.model.vos.community;
+
+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.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
+ * @description: 微心愿
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 14:25
+ **/
+@Data
+@ApiModel("社区活动 》微心愿")
+public class ComActMicroWishVO {
+
+    @ApiModelProperty("id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("发起人id")
+    private Long sponsorId;
+
+    @ApiModelProperty("发起人电话号码")
+    private String sponsorPhone;
+
+    @ApiModelProperty("发起人名字")
+    private String sponsorName;
+
+    @ApiModelProperty("发起人昵称")
+    private String userNickName;
+
+    @ApiModelProperty("发起人头像")
+    private String imageUrl;
+
+    @ApiModelProperty("微心愿名称")
+//    @NotBlank(groups = {AddGroup.class},message = "微心愿名称不能为空")
+    private String wishName;
+
+    @ApiModelProperty("状态 1待审核  2待分配 3进行中  4已驳回 5待确认6 已完成 7集心中")
+    private Integer status;
+
+    @ApiModelProperty("集星数")
+    private Integer starNum;
+
+    @ApiModelProperty("形式  1分配人员  2发起活动  3用户一键认领 ")
+    private Integer form;
+
+    @ApiModelProperty("责任人id")
+    private Long responsibleId;
+
+    @ApiModelProperty("责任人名字")
+    private String responsibleName;
+
+    @ApiModelProperty("查询-创建开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createBegin;
+
+    @ApiModelProperty("查询-创建结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createEnd;
+
+    @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 examineAt;
+
+    @ApiModelProperty("分配 时间")
+    @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 = "详情不能为空")
+    private String detail;
+
+    @ApiModelProperty("图片路径列表,逗号分隔")
+    //@NotBlank(groups = {AddGroup.class},message = "图片路径列表不能为空")
+    private String photoPathList;
+
+    @ApiModelProperty("当前页数")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty("每页记录数")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "社区id",hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty("用户评价")
+    private String evaluate;
+
+    @ApiModelProperty("用户评价时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date evaluateAt;
+
+    @ApiModelProperty("集心完成时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date feedbackAt;
+
+    @ApiModelProperty("完成情况图片列表,逗号分隔")
+    private String finishPhotoPathList;
+
+    @ApiModelProperty("完成情况描述")
+    private String finish;
+
+    @ApiModelProperty("驳回理由")
+    private String rejectReason;
+
+    @ApiModelProperty("反馈文字")
+    private String feedback;
+
+    @ApiModelProperty("反馈图片集合,逗号分隔")
+    private String feedbackPhotoPathList;
+
+    @ApiModelProperty(value = "操作类型 1 审核通过 2驳回 3分配人员 4发起活动 5反馈",example = "1")
+    private Integer type;
+
+    @ApiModelProperty(value = "小程序请求 1 是 0 不是",hidden = true)
+    private Integer isApplets;
+
+    @ApiModelProperty(value = "是否点赞 1 是 0 不是",example = "1")
+    private Integer haveGiveThumbsUp = 0;
+
+    @ApiModelProperty(value = "登录用户",hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "社区后台登录用户",hidden = true)
+    private Long backUserId;
+
+    @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;
+
+    @ApiModelProperty(value = "微心愿分配人id集合")
+    private List<Long> handleIds;
+
+    @ApiModelProperty(value = "微心愿分配人员集合")
+    private List<ComActMicroWishHandleVO> handleList;
+
+    @ApiModelProperty(value = "微心愿处理人id,多个以逗号隔开")
+    private String handleId;
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActPasswordVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActPasswordVo.java
new file mode 100644
index 0000000..320a576
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActPasswordVo.java
@@ -0,0 +1,20 @@
+package com.panzhihua.common.model.vos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * 社区账号密码返回参数
+ */
+@Data
+@ApiModel("社区账号密码返回参数")
+public class ComActPasswordVo {
+
+    @ApiModelProperty("账号")
+    private String account;
+
+    @ApiModelProperty("密码")
+    private String password;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActPictureLibraryVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActPictureLibraryVO.java
new file mode 100644
index 0000000..c9a0d22
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActPictureLibraryVO.java
@@ -0,0 +1,22 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: ComActPictureLibraryVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 公共预设图库信息
+ * @author: hans
+ * @date: 2021/11/23 17:16
+ */
+@Data
+@ApiModel("公共预设图库信息")
+public class ComActPictureLibraryVO {
+
+    @ApiModelProperty("操作内容")
+    private List<String> presetPictures;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActProceedingsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActProceedingsVO.java
new file mode 100644
index 0000000..2307d68
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActProceedingsVO.java
@@ -0,0 +1,81 @@
+package com.panzhihua.common.model.vos.community;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class ComActProceedingsVO implements Serializable {
+    /**
+     * 主键id
+     */
+    @ApiModelProperty("id")
+    private Long id;
+
+    /**
+     * 姓名
+     */
+    @ApiModelProperty("姓名")
+    private String name;
+
+    /**
+     * 所属单位名
+     */
+    @ApiModelProperty("所属单位名")
+    private String unitName;
+
+    /**
+     * 所属单位id
+     */
+    @ApiModelProperty("所属单位id")
+    private Long unitId;
+
+    /**
+     * 简介
+     */
+    @ApiModelProperty("简介")
+    private String introduce;
+
+    /**
+     * 是否删除0否1是
+     */
+    @ApiModelProperty("是否删除")
+    private Boolean delFlag;
+
+    /**
+     * 状态0可用1禁用
+     */
+    @ApiModelProperty("是否可用")
+    private Boolean status;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+
+    /**
+     * 创建人
+     */
+    private String createBy;
+
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+
+    /**
+     * 修改人
+     */
+    private Date updateBy;
+
+    @ApiModelProperty("工作时间")
+    private String workTime;
+    private String logo;
+
+    private static final long serialVersionUID = 1L;
+}
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
new file mode 100644
index 0000000..86856ae
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActQuestnaireAnswerContentVO.java
@@ -0,0 +1,44 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import com.panzhihua.common.model.vos.community.reserve.ComActReserveRegisterDetailedVO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("问卷回答记录内容")
+public class ComActQuestnaireAnswerContentVO {
+    @ApiModelProperty("问卷回答选项")
+    private String choice;
+    @ApiModelProperty("问卷回答内容")
+    private String answerContent;
+    @ApiModelProperty("问卷题目ID")
+    private Long subId;
+    @ApiModelProperty("用户Id")
+    private Long userId;
+    @ApiModelProperty("用户姓名")
+    private String userName;
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+    @ApiModelProperty("选项类型 0 固定选项 1 自定义选项")
+    private Integer type;
+    @ApiModelProperty("题目选项ID")
+    private Long selectionId;
+    @ApiModelProperty("答题记录id")
+    private Long reserveRecordId;
+    @ApiModelProperty("题目id")
+    private Long reserveSubId;
+    @ApiModelProperty("填报时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date time;
+    @ApiModelProperty("用户昵称")
+    private String nickName;
+    @ApiModelProperty("选项类型(0 单选  1 多选 2 输入框  3 手机号 4 身份证 5 文字描述 6 日期选择 7 时间选择 8 可换行的输入框 9姓名输入框 10图片选择 11文件上传 12签名)")
+    private Integer optionType;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActQuestnaireAppVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActQuestnaireAppVO.java
new file mode 100644
index 0000000..a9599d1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActQuestnaireAppVO.java
@@ -0,0 +1,40 @@
+package com.panzhihua.common.model.vos.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;
+
+@Data
+@ApiModel("正在进行中的调查问卷")
+public class ComActQuestnaireAppVO {
+
+    @ApiModelProperty("调查问卷id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+    @ApiModelProperty("组件唯一key")
+    private String projectKey;
+    @ApiModelProperty("标题(问卷调查主题)")
+    private String title;
+    @ApiModelProperty("问卷调查备注(应用名称)")
+    private String remark;
+    @ApiModelProperty("是否是封面(1.是 2.否)")
+    private Integer isCover;
+    @ApiModelProperty("是否强制调研(1.是 2.否)")
+    private Integer isForce;
+    @ApiModelProperty("广告弹窗(1.是 2.否 )")
+    private Integer adverPositionPopup;
+    @ApiModelProperty("广告顶部(1.是   2.否)")
+    private Integer adverPositionTop;
+    @ApiModelProperty("广告应用(1.是   2.否)")
+    private Integer adverPositionApplication;
+    @ApiModelProperty("是否显示提醒(1.是 2.否)")
+    private Integer isDisplay = 2;
+    @ApiModelProperty("提供居民(1.是 2.否 )")
+    private Integer forMasses;
+    @ApiModelProperty("提供党员(1.是 2.否 )")
+    private Integer forParty;
+    @ApiModelProperty("提供志愿者(1.是 2.否 )")
+    private Integer forVolunteer;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActQuestnaireSubSelectionVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActQuestnaireSubSelectionVO.java
new file mode 100644
index 0000000..c4702b3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActQuestnaireSubSelectionVO.java
@@ -0,0 +1,24 @@
+package com.panzhihua.common.model.vos.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;
+
+@Data
+@ApiModel("问卷题目选项")
+public class ComActQuestnaireSubSelectionVO {
+    @ApiModelProperty("ID")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+    @ApiModelProperty("问题题目ID")
+    private Long queSubId;
+    @ApiModelProperty("选项名")
+    private String optionName;
+    @ApiModelProperty("选项内容")
+    private String content;
+    @ApiModelProperty("选项类型 0 固定选项 1 自定义选项")
+    private Integer type;
+
+}
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
new file mode 100644
index 0000000..673665e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActQuestnaireSubVO.java
@@ -0,0 +1,23 @@
+package com.panzhihua.common.model.vos.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;
+
+@Data
+@ApiModel("问卷题目")
+public class ComActQuestnaireSubVO {
+    @ApiModelProperty("id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+    @ApiModelProperty("类型 0 单选  1 多选 2 输入框  3 手机号 4 身份证 5 文字描述 6 日期选择 7 时间选择 8 可换行的输入框 9姓名输入框")
+    private int type;
+    @ApiModelProperty("题目内容")
+    private String content;
+    @ApiModelProperty("序号")
+    private int sort;
+    @ApiModelProperty("调查问卷Id")
+    private Long queId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActQuestnaireVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActQuestnaireVO.java
new file mode 100644
index 0000000..9770588
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActQuestnaireVO.java
@@ -0,0 +1,30 @@
+package com.panzhihua.common.model.vos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("调查问卷 问卷表")
+public class ComActQuestnaireVO {
+    @ApiModelProperty("主键id")
+    private Long id;
+    @ApiModelProperty("标题")
+    private String title;
+    @ApiModelProperty("状态 1 待发布 2调研中 3已结束")
+    private int state;
+    @ApiModelProperty("参与人数")
+    private Integer joinCount;
+    @ApiModelProperty("社区ID")
+    private Long communityId;
+    @ApiModelProperty("是否封面(1.是 2.否)")
+    private Integer isCover;
+    @ApiModelProperty("填报项数量")
+    private Integer count;
+    @ApiModelProperty("浏览量")
+    private Long viewNum;
+    @ApiModelProperty("问卷调查备注(应用名称)")
+    private String remark;
+    @ApiModelProperty("问卷组件唯一key")
+    private String projectKey;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActReserveCommitVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActReserveCommitVO.java
new file mode 100644
index 0000000..2c841c6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActReserveCommitVO.java
@@ -0,0 +1,34 @@
+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 ComActReserveCommitVO {
+    @ApiModelProperty("记录id")
+    private Long id;
+    @ApiModelProperty("表单json")
+    private String jsonObject;
+    @ApiModelProperty("用户id")
+    private Long userId;
+    @ApiModelProperty("社区id")
+    private Long communityId;
+    @ApiModelProperty("手机号")
+    private String phone;
+    @ApiModelProperty("类型 1预约 2登记")
+    private Integer type;
+    @ApiModelProperty("预约时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date reserveTime;
+    @ApiModelProperty("姓名")
+    private String name;
+    @ApiModelProperty("预约内容")
+    private String content;
+    @ApiModelProperty("填报记录id")
+    private Long recordId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActReserveIndexVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActReserveIndexVo.java
new file mode 100644
index 0000000..fd13a06
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActReserveIndexVo.java
@@ -0,0 +1,28 @@
+package com.panzhihua.common.model.vos.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;
+
+@Data
+@ApiModel("预约/登记返回参数")
+public class ComActReserveIndexVo {
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+    @ApiModelProperty("标题")
+    private String title;
+    @ApiModelProperty("类型(1.预约 2.登记) ")
+    private Integer type;
+    @ApiModelProperty("图标类型(1.预设1 2.预设2 3.预设3 4.预设4 5.用户自定义图片)")
+    private Integer imgType;
+    @ApiModelProperty("图标url(当img_type为5时,此字段的值为图标url地址)")
+    private String imgUrl;
+    @ApiModelProperty("是否是首页顶部(1.是 2.否)")
+    private Integer adverPositionTop;
+    @ApiModelProperty("是否是首页应用(1.是 2.否)")
+    private Integer adverPositionApplication;
+    @ApiModelProperty("是否填报 1是2否")
+    private Integer isCommit;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActSocialOrgVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActSocialOrgVO.java
new file mode 100644
index 0000000..95c045c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActSocialOrgVO.java
@@ -0,0 +1,314 @@
+package com.panzhihua.common.model.vos.community;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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.util.Date;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel("社会组织实体参数")
+public class ComActSocialOrgVO {
+    /**
+     * ID
+     */
+    @ApiModelProperty(value = "ID")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 单位名称
+     */
+    @ApiModelProperty(value = "单位名称")
+    private String name;
+
+    /**
+     * 工商登记号
+     */
+    @ApiModelProperty(value = "工商登记号")
+    private String businessNumber;
+
+    /**
+     * 成立时间
+     */
+    @ApiModelProperty(value = "成立时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date buildDate;
+
+    /**
+     * 机构代码
+     */
+    @ApiModelProperty(value = "机构代码")
+    private String agencyCode;
+
+    /**
+     * 微信公众号
+     */
+    @ApiModelProperty(value = "微信公众号")
+    private String weixinOfficialAccounts;
+
+    /**
+     * 单位类别: 1 社会团体、2 民办非企业单位、3 基金会
+     */
+    @ApiModelProperty(value = "单位类别: 1 社会团体、2 民办非企业单位、3 基金会")
+    private Integer companyType;
+
+    /**
+     * 注册资金(万元)
+     */
+    @ApiModelProperty(value = "注册资金(万元)")
+    private Integer registFee;
+
+    /**
+     * 资产总额(万元)
+     */
+    @ApiModelProperty(value = "资产总额(万元)")
+    private Integer assetsTotal;
+
+    /**
+     * 净资产(万元)
+     */
+    @ApiModelProperty(value = "净资产(万元)")
+    private Integer assetsNet;
+
+    /**
+     * 销售额(万元)
+     */
+    @ApiModelProperty(value = "销售额(万元)")
+    private Double salesFee;
+
+    /**
+     * 上年纳税额(万元)
+     */
+    @ApiModelProperty(value = "上年纳税额(万元)")
+    private Double taxesLastYear;
+
+    /**
+     * 职工人数(人)
+     */
+    @ApiModelProperty(value = "职工人数(人)")
+    private Integer staffCount;
+
+    /**
+     * 通讯地址
+     */
+    @ApiModelProperty(value = "通讯地址")
+    private String maillingAddr;
+
+    /**
+     * 邮编
+     */
+    @ApiModelProperty(value = "邮编")
+    private String postCode;
+
+    /**
+     * 官方网址
+     */
+    @ApiModelProperty(value = "官方网址")
+    private String officialUrl;
+
+    /**
+     * 法人姓名
+     */
+    @ApiModelProperty(value = "法人姓名")
+    private String corporationName;
+
+    /**
+     * 法人性别0女1男
+     */
+    @ApiModelProperty(value = "法人性别0女1男")
+    private String corporationGen;
+
+    /**
+     * 法人工作电话
+     */
+    @ApiModelProperty(value = "法人工作电话")
+    private String corporationOfficePhone;
+
+    /**
+     * 法人职位
+     */
+    @ApiModelProperty(value = "法人职位")
+    private String corporationPosition;
+
+    /**
+     * 法人手机
+     */
+    @ApiModelProperty(value = "法人手机")
+    private String corporationPhone;
+
+    /**
+     * 法人邮箱
+     */
+    @ApiModelProperty(value = "法人邮箱")
+    private String corporationEmail;
+
+    /**
+     * 联系人姓名
+     */
+    @ApiModelProperty(value = "联系人姓名")
+    private String contactName;
+
+    /**
+     * 联系人性别0女1男
+     */
+    @ApiModelProperty(value = "联系人性别0女1男")
+    private String contactGen;
+
+    /**
+     * 联系人工作电话
+     */
+    @ApiModelProperty(value = "联系人工作电话")
+    private String contactOfficePhone;
+
+    /**
+     * 联系人职位
+     */
+    @ApiModelProperty(value = "联系人职位")
+    private String contactPosition;
+
+    /**
+     * 联系人手机
+     */
+    @ApiModelProperty(value = "联系人手机")
+    private String contactPhone;
+
+    /**
+     * 联系人邮箱
+     */
+    @ApiModelProperty(value = "联系人邮箱")
+    private String contactEmail;
+
+    /**
+     * 业务范围/专业领域
+     */
+    @ApiModelProperty(value = "业务范围/专业领域")
+    private String businessScope;
+
+    /**
+     * 运营情况及行业影响(含所获荣誉)
+     */
+    @ApiModelProperty(value = "运营情况及行业影响(含所获荣誉)")
+    private String businessImpact;
+
+    /**
+     * 附件(以逗号隔开)
+     */
+    @ApiModelProperty(value = "附件(以逗号隔开)")
+    private String attachUrl;
+
+    /**
+     * 创建人
+     */
+    @ApiModelProperty(value = "创建人")
+    private Long createBy;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date createAt;
+
+    /**
+     * 更新人
+     */
+    @ApiModelProperty(value = "更新人")
+    private Long updateBy;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date updateAt;
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long communityId;
+
+    /**
+     * 登录用户id
+     */
+    @ApiModelProperty(value = "登录用户id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long userId;
+
+    @ApiModelProperty("账号")
+    private String account;
+
+    @ApiModelProperty("密码")
+    private String password;
+
+    @ApiModelProperty("权限id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long roleId;
+
+    @ApiModelProperty("状态")
+    private Integer status;
+
+    @ApiModelProperty("成立方式 1社区孵化 2民政注册")
+    private Integer buildType;
+
+    @ApiModelProperty("经度")
+    private String longitude;
+
+    @ApiModelProperty("纬度")
+    private String latitude;
+
+    @ApiModelProperty("服务类型")
+    private String serviceType;
+
+    @ApiModelProperty("街道id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long streetId;
+
+    @ApiModelProperty("服务类型名称")
+    private String serviceName;
+
+    @ApiModelProperty("所属机构名称")
+    private String streetName;
+
+    @ApiModelProperty("是否三社 0否1是")
+    private Integer isSociety;
+
+    /**
+     * 描述
+     */
+    @ApiModelProperty("描述")
+    private String description;
+
+    @ApiModelProperty("社区名字")
+    private String communityName;
+
+    @ApiModelProperty("孵化单位")
+    private Long hatchUnit;
+
+    @ApiModelProperty("孵化单位类型(1.街道 2.社区)")
+    private Integer hatchUnitType;
+
+    @ApiModelProperty("孵化单位名称")
+    private String hatchUnitName;
+
+    @ApiModelProperty("挂靠单位")
+    private Long affiliatedUnit;
+
+    @ApiModelProperty("挂靠单位类型(1.街道 2.社区)")
+    private Integer affiliatedUnitType;
+
+    @ApiModelProperty("挂靠单位名称")
+    private String affiliatedUnitName;
+
+    @ApiModelProperty("承办项目数")
+    private Integer undertakeProjectNum;
+
+    @ApiModelProperty("开展活动数")
+    private Integer startActNum;
+
+    @ApiModelProperty("孵化进度(1.已进驻 2.孵化中 3.通过评估 4.出壳)")
+    private Integer hatchSchedule;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActUserWalletTradeExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActUserWalletTradeExcelVO.java
new file mode 100644
index 0000000..62bc354
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActUserWalletTradeExcelVO.java
@@ -0,0 +1,49 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import lombok.Data;
+
+/**
+ * @description: 批量导出钱包交易记录
+ * @author: Null
+ * @date: 2021/3/11 17:11
+ */
+@Data
+public class ComActUserWalletTradeExcelVO implements Serializable {
+    /**
+     * 金额
+     */
+    @ExcelProperty(value = "金额", index = 0)
+    private BigDecimal amount;
+    /**
+     * 姓名
+     */
+    @ExcelProperty(value = "姓名", index = 1)
+    private String userName;
+
+    /**
+     * 用户手机号
+     */
+    @ExcelProperty(value = "账号", index = 2)
+    private String phone;
+
+    /**
+     * 时间
+     */
+    @ExcelProperty(value = "时间", index = 3)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    /**
+     * 操作人
+     */
+    @ExcelProperty(value = "操作人", index = 4)
+    private String createBy;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActUserWalletTradeRewardExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActUserWalletTradeRewardExcelVO.java
new file mode 100644
index 0000000..cdea78d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActUserWalletTradeRewardExcelVO.java
@@ -0,0 +1,55 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import lombok.Data;
+
+/**
+ * @description: 批量导出奖励台账记录
+ * @author: Null
+ * @date: 2021/3/11 17:11
+ */
+@Data
+public class ComActUserWalletTradeRewardExcelVO implements Serializable {
+    /**
+     * 金额
+     */
+    @ExcelProperty(value = "金额", index = 0)
+    private BigDecimal amount;
+    /**
+     * 姓名
+     */
+    @ExcelProperty(value = "姓名", index = 1)
+    private String userName;
+
+    /**
+     * 用户手机号
+     */
+    @ExcelProperty(value = "用户手机号", index = 2)
+    private String phone;
+
+    @ExcelProperty(value = "奖励类别", index = 3)
+    private String type;
+
+    @ExcelProperty(value = "奖励内容", index = 4)
+    private String remark;
+
+    /**
+     * 时间
+     */
+    @ExcelProperty(value = "时间", index = 5)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    /**
+     * 操作人
+     */
+    @ExcelProperty(value = "操作人", index = 6)
+    private String createBy;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActVO.java
new file mode 100644
index 0000000..3331b0d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActVO.java
@@ -0,0 +1,101 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotBlank;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 社区
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-15 10:06
+ **/
+@Data
+@ApiModel("社区表")
+public class ComActVO {
+
+    @ApiModelProperty("社区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long communityId;
+
+    @ApiModelProperty("社区名字")
+    @NotBlank(groups = {AddGroup.class}, message = "社区名字不能为空")
+    private String name;
+
+    @ApiModelProperty("社区地址")
+    @NotBlank(groups = {AddGroup.class}, message = "社区地址不能为空")
+    private String address;
+
+    @ApiModelProperty("经度")
+    @NotBlank(groups = {AddGroup.class}, message = "经度不能为空")
+    private String lng;
+
+    @ApiModelProperty("维度")
+    @NotBlank(groups = {AddGroup.class}, message = "纬度不能为空")
+    private String lat;
+
+    @ApiModelProperty("创建时间")
+    private Date createAt;
+
+    @ApiModelProperty("省份地址编码")
+    @NotBlank(groups = {AddGroup.class}, message = "省份地址编码不能为空")
+    private String provinceCode;
+
+    @ApiModelProperty("市级地址编码")
+    @NotBlank(groups = {AddGroup.class}, message = "市级地址编码不能为空")
+    private String cityCode;
+
+    @ApiModelProperty("区级地址编码")
+    @NotBlank(groups = {AddGroup.class}, message = "区级地址编码不能为空")
+    private String areaCode;
+
+    @ApiModelProperty("区级地址编码-名字")
+    private String areaName;
+
+    @ApiModelProperty("社区面积")
+    @Min(value = 1, groups = {AddGroup.class}, message = "社区面积不能为空")
+    private Double square;
+
+    @ApiModelProperty("联系人")
+    @NotBlank(groups = {AddGroup.class}, message = "联系人不能为空")
+    private String contacts;
+
+    @ApiModelProperty("联系人电话")
+    @NotBlank(groups = {AddGroup.class}, message = "联系人电话不能为空")
+    private String contactsPhone;
+
+    @ApiModelProperty("超管账号")
+    @NotBlank(groups = {AddGroup.class}, message = "超管账号不能为空")
+    private String account;
+
+    @ApiModelProperty("账号密码")
+    @NotBlank(groups = {AddGroup.class}, message = "账号密码不能为空")
+    private String password;
+
+    @ApiModelProperty(value = "状态 0 启用 1 禁用", example = "0")
+    private Integer state;
+
+    @ApiModelProperty("距离-单位米")
+    private String distance;
+
+    @ApiModelProperty("街道Id")
+    private Long streetId;
+
+    @ApiModelProperty("行政区域")
+    private String administrativeRegions;
+
+    @ApiModelProperty("调解站电话")
+    private String solvePhone;
+
+    private String appId;
+
+}
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..d4d775a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActWorkGuideClassifyVO.java
@@ -0,0 +1,49 @@
+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 com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+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")
+    @JsonSerialize(using = ToStringSerializer.class)
+    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;
+
+    private String areaCode;
+}
\ 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..06c8eaf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActWorkGuideDetailAppletsVO.java
@@ -0,0 +1,58 @@
+package com.panzhihua.common.model.vos.community;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+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")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("办事指南标题")
+    private String title;
+
+    @ApiModelProperty("办事指南内容")
+    private String content;
+
+    @ApiModelProperty("所属分类")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long 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;
+
+    @ApiModelProperty(value = "组件json数据")
+    private String jsonObject;
+
+    @ApiModelProperty(value = "是否在线 (0 不在线   1在线)")
+    private String isOnLine;
+
+    private List<ComActWorkGuideMaterialVO> materials = Lists.newArrayList();
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActWorkGuideMaterialVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActWorkGuideMaterialVO.java
new file mode 100644
index 0000000..402816f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActWorkGuideMaterialVO.java
@@ -0,0 +1,18 @@
+package com.panzhihua.common.model.vos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther llming
+ * @describe
+ */
+@Data
+@ApiModel("办事指南材料")
+public class ComActWorkGuideMaterialVO {
+    @ApiModelProperty("办事指南材料id")
+    private Long id;
+    @ApiModelProperty("申报材料名称")
+    private String materialName;
+}
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
new file mode 100644
index 0000000..ae7dd15
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComActWorkGuideVO.java
@@ -0,0 +1,69 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.List;
+
+import javax.validation.constraints.NotBlank;
+
+import org.hibernate.validator.constraints.Length;
+
+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;
+
+/**
+ * @auther llming
+ * @describe 办事指南
+ */
+@Data
+@ApiModel("办事指南")
+public class ComActWorkGuideVO {
+    @ApiModelProperty("办事指南id")
+    private String id;
+
+    @ApiModelProperty("办事指南标题")
+    @NotBlank(groups = {AddGroup.class}, message = "标题不能为空")
+    @Length(groups = {AddGroup.class}, max = 35)
+    private String title;
+
+    @ApiModelProperty("办事指南内容")
+    @NotBlank(groups = {AddGroup.class}, message = "内容不能为空")
+    @Length(groups = {AddGroup.class}, max = 5000)
+    private String content;
+
+    @ApiModelProperty("所属分类")
+    private String classify;
+
+    @ApiModelProperty("所属分类名称")
+    private String classifyName;
+
+    @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 String areaCode;
+
+    @ApiModelProperty(value = "组件json数据")
+    private String jsonObject;
+
+    @ApiModelProperty(value = "是否在线 (0 不在线   1在线)")
+    private String isOnLine;
+
+    private List<ComActWorkGuideMaterialVO> materials = Lists.newArrayList();
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComAreaTownCommunityVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComAreaTownCommunityVO.java
new file mode 100644
index 0000000..48c434d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComAreaTownCommunityVO.java
@@ -0,0 +1,24 @@
+package com.panzhihua.common.model.vos.community;
+
+import lombok.Data;
+
+/**
+ * @title: ComAreaTownCommunityVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description:
+ * @author: hans
+ * @date: 2022/05/06 11:13
+ */
+@Data
+public class ComAreaTownCommunityVO {
+
+    private Long id;
+
+    private String area;
+
+    private String town;
+
+    private String community;
+
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComBasicDataVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComBasicDataVo.java
new file mode 100644
index 0000000..00e40f3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComBasicDataVo.java
@@ -0,0 +1,30 @@
+package com.panzhihua.common.model.vos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author yh
+ * 基础数据
+ */
+@Data
+@ApiModel("统计-基础数据")
+public class ComBasicDataVo {
+    @ApiModelProperty(value = "社区数")
+    Integer community;
+    @ApiModelProperty(value = "商家数")
+    Integer merchants;
+    @ApiModelProperty(value = "党员数")
+    Integer pbMember;
+    @ApiModelProperty(value = "报道单位")
+    Integer pbUnit;
+    @ApiModelProperty(value = "实有人口")
+    Integer population;
+    @ApiModelProperty(value = "实有房屋")
+    Integer populationHouse;
+    @ApiModelProperty(value = "社会组织")
+    Integer socialOrg;
+    @ApiModelProperty(value = "志愿者")
+    Integer volunteer;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComCorrectPopulationVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComCorrectPopulationVO.java
new file mode 100644
index 0000000..f8417d0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComCorrectPopulationVO.java
@@ -0,0 +1,286 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+
+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;
+
+/**
+ * @auther txb
+ * @create 2021-08-10 15:57:35
+ * @describe 社区矫正人员表实体类
+ */
+
+@Data
+@ApiModel("社区矫正表")
+@EncryptDecryptClass
+public class ComCorrectPopulationVO {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty("社区矫正人员id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 人口id
+     */
+    @ApiModelProperty("人口id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long populationId;
+
+    /**
+     * 街道id
+     */
+    @ApiModelProperty("街道id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long streetId;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty("社区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long communityId;
+
+    /**
+     * 名字
+     */
+    @ApiModelProperty("名字")
+    private String name;
+
+    /**
+     * 身份证号码
+     */
+    @ApiModelProperty("身份证号码")
+    @EncryptDecryptField
+    private String cardNo;
+
+    /**
+     * 联系电话
+     */
+    @ApiModelProperty("联系电话")
+    private String phone;
+
+    /**
+     * 矫正类别
+     */
+    @ApiModelProperty("矫正类别")
+    private String correctType;
+
+    /**
+     * 矫正开始时间
+     */
+    @ApiModelProperty("矫正开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date correctBegin;
+
+    /**
+     * 矫正结束时间
+     */
+    @ApiModelProperty("矫正结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date correctEnd;
+
+    /**
+     * 接收方式
+     */
+    @ApiModelProperty("接收方式")
+    private String receiveMethod;
+
+    /**
+     * 是否累惯犯(1.是 0.否)
+     */
+    @ApiModelProperty("是否累惯犯(1.是 0.否)")
+    private Integer isRecidivist;
+
+    /**
+     * 四史情况
+     */
+    @ApiModelProperty("四史情况")
+    private String fourHistory;
+
+    /**
+     * 三涉情况
+     */
+    @ApiModelProperty("三涉情况")
+    private String threeInvovle;
+
+    /**
+     * 是否建立矫正小组(1.是 0.否)
+     */
+    @ApiModelProperty("是否建立矫正小组(1.是 0.否)")
+    private Integer isCorrectGroup;
+
+    /**
+     * 矫正小组人员组成情况
+     */
+    @ApiModelProperty("矫正小组人员组成情况")
+    private String correctGroupConstitute;
+
+    /**
+     * 矫正解除(终止)类型
+     */
+    @ApiModelProperty("矫正解除(终止)类型")
+    private String correctRelieveType;
+
+    /**
+     * 是否有脱管(1.是 0.否)
+     */
+    @ApiModelProperty("是否有脱管(1.是 0.否)")
+    private Integer isOutControl;
+
+    /**
+     * 脱管原因
+     */
+    @ApiModelProperty("脱管原因")
+    private String outControlReason;
+
+    /**
+     * 脱管纠正情况
+     */
+    @ApiModelProperty("脱管纠正情况")
+    private String outControlCorrect;
+
+    /**
+     * 检察监督脱管情况
+     */
+    @ApiModelProperty("检察监督脱管情况")
+    private String inspectOutControl;
+
+    /**
+     * 是否有漏管(1.是 0.否)
+     */
+    @ApiModelProperty("是否有漏管(1.是 0.否)")
+    private Integer isMissControl;
+
+    /**
+     * 漏管原因
+     */
+    @ApiModelProperty("漏管原因")
+    private String missControlReason;
+
+    /**
+     * 漏管纠正情况
+     */
+    @ApiModelProperty("漏管纠正情况")
+    private String missControlCorrect;
+
+    /**
+     * 检察监督漏管
+     */
+    @ApiModelProperty("检察监督漏管")
+    private String inspectMissControl;
+
+    /**
+     * 奖惩情况
+     */
+    @ApiModelProperty("奖惩情况")
+    private String rewardAndPunishiment;
+
+    /**
+     * 是否重新犯罪(1.是 0.否)
+     */
+    @ApiModelProperty("是否重新犯罪(1.是 0.否)")
+    private Integer isAgainCrime;
+
+    /**
+     * 重新犯罪名称
+     */
+    @ApiModelProperty("重新犯罪名称")
+    private String againCrimeName;
+
+    /**
+     * 刑罚变更执行情况
+     */
+    @ApiModelProperty("刑罚变更执行情况")
+    private String pubishmentChange;
+
+    /**
+     * 案件类别
+     */
+    @ApiModelProperty("案件类别")
+    private String caseType;
+
+    /**
+     * 具体罪名
+     */
+    @ApiModelProperty("具体罪名")
+    private String specificCharge;
+
+    /**
+     * 原判刑期
+     */
+    @ApiModelProperty("原判刑期")
+    private String originalTerm;
+
+    /**
+     * 原判刑开始日期
+     */
+    @ApiModelProperty("原判刑开始日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date originalTermBegin;
+
+    /**
+     * 原判刑结束日期
+     */
+    @ApiModelProperty("原判刑结束日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date originalTermEnd;
+
+    /**
+     * 学历
+     */
+    @ApiModelProperty("学历")
+    private String cultureLevel;
+
+    /**
+     * 社区矫正人员编号
+     */
+    @ApiModelProperty("社区矫正人员编号")
+    private String correctPersonCode;
+
+    /**
+     * 原羁押场所
+     */
+    @ApiModelProperty("原羁押场所")
+    private String originalCustodyplace;
+
+    /**
+     * 备注
+     */
+    @ApiModelProperty("备注")
+    private String remark;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    private Date createAt;
+
+    /**
+     * 创建用户
+     */
+    @ApiModelProperty("创建用户")
+    private Long createBy;
+
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty("修改时间")
+    private Date updateAt;
+
+    /**
+     * 修改用户
+     */
+    @ApiModelProperty("修改用户")
+    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/ComCultPopulationVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComCultPopulationVO.java
new file mode 100644
index 0000000..56eda6a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComCultPopulationVO.java
@@ -0,0 +1,121 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+
+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;
+
+/**
+ * @auther txb
+ * @create 2021-08-10 15:58:07
+ * @describe 邪教人员表实体类
+ */
+
+@Data
+@ApiModel("邪教人员表")
+@EncryptDecryptClass
+public class ComCultPopulationVO {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty("邪教矫正人员id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 人口id
+     */
+    @ApiModelProperty("人口id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long populationId;
+
+    /**
+     * 街道id
+     */
+    @ApiModelProperty("街道id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long streetId;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty("社区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long communityId;
+
+    /**
+     * 名字
+     */
+    @ApiModelProperty("名字")
+    private String name;
+
+    /**
+     * 身份证号码
+     */
+    @ApiModelProperty("身份证号码")
+    @EncryptDecryptField
+    private String cardNo;
+
+    /**
+     * 邪教名称
+     */
+    @ApiModelProperty("邪教名称")
+    private String cultName;
+
+    /**
+     * 基本情况(参加邪教的活动情况)
+     */
+    @ApiModelProperty("基本情况(参加邪教的活动情况)")
+    private String basicSituation;
+
+    /**
+     * 参加邪教时间
+     */
+    @ApiModelProperty("参加邪教时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date joinCultDate;
+
+    /**
+     * 是否对外宣传(1.是 0.否)
+     */
+    @ApiModelProperty("是否对外宣传(1.是 0.否)")
+    private Integer isExternalPublicity;
+
+    /**
+     * 备注
+     */
+    @ApiModelProperty("备注")
+    private String remark;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    private Date createAt;
+
+    /**
+     * 创建用户
+     */
+    @ApiModelProperty("创建用户")
+    private Long createBy;
+
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty("修改时间")
+    private Date updateAt;
+
+    /**
+     * 修改用户
+     */
+    @ApiModelProperty("修改用户")
+    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/ComCvtBusinessCategoryServeVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComCvtBusinessCategoryServeVO.java
new file mode 100644
index 0000000..ba6a687
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComCvtBusinessCategoryServeVO.java
@@ -0,0 +1,26 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @description: 小程序便民服务商家服务分类
+ * @author: Null
+ * @date: 2021/3/12 13:36
+ */
+@Data
+@ApiModel("便民服务商家服务分类")
+public class ComCvtBusinessCategoryServeVO implements Serializable {
+
+    private static final long serialVersionUID = 925697143924235721L;
+
+    @ApiModelProperty("商家服务分类名称")
+    private String categoryName;
+
+    @ApiModelProperty("商家分类服务列表")
+    private List<ComCvtServeVO> comCvtServeVOS;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComCvtBusinessDetailVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComCvtBusinessDetailVO.java
new file mode 100644
index 0000000..96059b7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComCvtBusinessDetailVO.java
@@ -0,0 +1,46 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @description: 小程序便民服务商家详情信息
+ * @author: Null
+ * @date: 2021/3/12 13:36
+ */
+@Data
+@ApiModel("便民服务商家详情信息")
+public class ComCvtBusinessDetailVO implements Serializable {
+
+    private static final long serialVersionUID = 8381895998705845852L;
+    @ApiModelProperty("服务范围集合")
+    List<String> comActVOS;
+    @ApiModelProperty("分类服务")
+    List<ComCvtBusinessCategoryServeVO> categoryServeVOS;
+    @ApiModelProperty("商家ID")
+    private Long id;
+    @ApiModelProperty("商家名称")
+    private String name;
+    @ApiModelProperty("联系人")
+    private String contacts;
+    @ApiModelProperty("联系方式")
+    private String contactsPhone;
+    @ApiModelProperty("详细地址")
+    private String address;
+    @ApiModelProperty("主营业务")
+    private String busScope;
+    @ApiModelProperty("服务范围标记:1-全攀枝花市,2-部分地区")
+    private Integer areaFlag;
+    @ApiModelProperty("商家logo")
+    private String logo;
+    @ApiModelProperty(value = "社区主键", hidden = true)
+    private Long communityId;
+    @ApiModelProperty("商家介绍媒体文件类型:1-图片 2-视频")
+    private Integer mediaType;
+    @ApiModelProperty("介绍媒体文件集合")
+    private List<String> mediaPaths;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComCvtBusinessVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComCvtBusinessVO.java
new file mode 100644
index 0000000..8870316
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComCvtBusinessVO.java
@@ -0,0 +1,64 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+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 lombok.Data;
+
+/**
+ * @description: 便民服务 商家信息
+ * @author: Null
+ * @date: 2021/3/11 10:36
+ */
+@Data
+@ApiModel("商家信息")
+public class ComCvtBusinessVO implements Serializable {
+
+    @ApiModelProperty("服务范围集合")
+    List<ComActVO> comActVOS;
+    @ApiModelProperty("商家ID")
+    private Long id;
+    @ApiModelProperty("商家名称")
+    @NotBlank(groups = {AddGroup.class}, message = "商家名称不能为空")
+    private String name;
+    @ApiModelProperty("联系人")
+    @NotBlank(groups = {AddGroup.class}, message = "联系人不能为空")
+    private String contacts;
+    @ApiModelProperty("联系方式")
+    @NotBlank(groups = {AddGroup.class}, message = "联系方式不能为空")
+    private String contactsPhone;
+    @ApiModelProperty("详细地址")
+    @NotBlank(groups = {AddGroup.class}, message = "详细地址不能为空")
+    private String address;
+    @ApiModelProperty("主营业务")
+    @NotBlank(groups = {AddGroup.class}, message = "主营业务不能为空")
+    private String busScope;
+    @ApiModelProperty("服务范围标记:1-全攀枝花市,2-部分地区")
+    @NotBlank(groups = {AddGroup.class}, message = "主营业务不能为空")
+    private Integer areaFlag;
+    @ApiModelProperty("商家logo")
+    @NotBlank(groups = {AddGroup.class}, message = "商家logo不能为空")
+    private String logo;
+    @ApiModelProperty("创建人")
+    private String createBy;
+    @ApiModelProperty("创建人名称")
+    private String createByName;
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+    @ApiModelProperty(value = "社区主键", hidden = true)
+    private Long communityId;
+    @ApiModelProperty("商家介绍媒体文件类型:1-图片 2-视频")
+    private Integer mediaType;
+
+    @ApiModelProperty("介绍媒体文件集合")
+    private List<String> mediaPaths;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComCvtCategoryVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComCvtCategoryVO.java
new file mode 100644
index 0000000..94bd0c6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComCvtCategoryVO.java
@@ -0,0 +1,43 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import javax.validation.constraints.NotBlank;
+
+import com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @description: 便民服务 分类信息
+ * @author: Null
+ * @date: 2021/3/11 17:11
+ */
+@Data
+@ApiModel("分类信息")
+public class ComCvtCategoryVO implements Serializable {
+
+    @ApiModelProperty("分类ID")
+    private Long id;
+
+    @ApiModelProperty("分类名称")
+    @NotBlank(groups = {AddGroup.class}, message = "分类名称不能为空")
+    private String name;
+
+    @ApiModelProperty("备注")
+    private String remark;
+
+    @ApiModelProperty("权重")
+    @NotBlank(groups = {AddGroup.class}, message = "权重不能为空")
+    private Integer weight;
+
+    @ApiModelProperty("创建人")
+    private String createBy;
+
+    @ApiModelProperty("创建时间")
+    private Date createAt;
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComCvtServeExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComCvtServeExcelVO.java
new file mode 100644
index 0000000..107c94f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComCvtServeExcelVO.java
@@ -0,0 +1,47 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+
+import lombok.Data;
+
+/**
+ * @description: 批量导入便民服务
+ * @author: Null
+ * @date: 2021/3/11 17:11
+ */
+@Data
+public class ComCvtServeExcelVO implements Serializable {
+    /**
+     * 服务分类
+     */
+    @ExcelProperty(value = "服务分类", index = 0)
+    private String categoryName;
+    /**
+     * 服务名称
+     */
+    @ExcelProperty(value = "服务名称", index = 1)
+    private String serviceName;
+    /**
+     * 服务价格(元)
+     */
+    @ExcelProperty(value = "服务价格(元)", index = 2)
+    private BigDecimal servicePrice;
+    /**
+     * 服务描述
+     */
+    @ExcelProperty(value = "服务描述", index = 3)
+    private String serviceDesc;
+    /**
+     * 商家名称
+     */
+    @ExcelProperty(value = "商家名称", index = 4)
+    private String businessName;
+    /**
+     * 备注
+     */
+    @ExcelProperty(value = "备注", index = 5)
+    private String remark;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComCvtServeVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComCvtServeVO.java
new file mode 100644
index 0000000..a2c34a6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComCvtServeVO.java
@@ -0,0 +1,56 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @description: 便民服务列表
+ * @author: Null
+ * @date: 2021/3/11 10:52
+ */
+@Data
+@ApiModel("便民服务")
+public class ComCvtServeVO implements Serializable {
+
+    private static final long serialVersionUID = -7734682979200558948L;
+    @ApiModelProperty("服务主键ID")
+    private Long id;
+
+    @ApiModelProperty("服务名称")
+    private String serviceName;
+
+    @ApiModelProperty("服务价格")
+    private BigDecimal servicePrice;
+
+    @ApiModelProperty("服务分类ID")
+    private Long categoryId;
+
+    @ApiModelProperty("服务分类名称")
+    private String categoryName;
+
+    @ApiModelProperty("服务描述")
+    private String serviceDesc;
+
+    @ApiModelProperty("所属商家ID")
+    private Long businessId;
+
+    @ApiModelProperty("所属商家名称")
+    private String businessName;
+
+    @ApiModelProperty("备注")
+    private String remark;
+
+    @ApiModelProperty("创建人")
+    private Long createBy;
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComDisabilityPopulationVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComDisabilityPopulationVO.java
new file mode 100644
index 0000000..538a1a7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComDisabilityPopulationVO.java
@@ -0,0 +1,119 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+
+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;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 19:48:22
+ * @describe 实有人口导入》残疾人表实体类
+ */
+
+@Data
+@ApiModel("残疾人表")
+@EncryptDecryptClass
+public class ComDisabilityPopulationVO {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty("残疾人id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 人口id
+     */
+    @ApiModelProperty("人口id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long populationId;
+
+    /**
+     * 街道id
+     */
+    @ApiModelProperty("街道id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long streetId;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty("社区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long communityId;
+
+    /**
+     * 名字
+     */
+    @ApiModelProperty("名字")
+    private String name;
+
+    /**
+     * 身份证号码
+     */
+    @ApiModelProperty("身份证号码")
+    @EncryptDecryptField
+    private String cardNo;
+
+    /**
+     * 联系电话
+     */
+    @ApiModelProperty("联系电话")
+    private String phone;
+
+    /**
+     * 办证状况
+     */
+    @ApiModelProperty("办证状况")
+    private String certificateSituation;
+
+    /**
+     * 残疾类别
+     */
+    @ApiModelProperty("残疾类别")
+    private String disType;
+
+    /**
+     * 残疾等级
+     */
+    @ApiModelProperty("残疾等级")
+    private String disLevel;
+
+    /**
+     * 备注
+     */
+    @ApiModelProperty("备注")
+    private String remark;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    private Date createAt;
+
+    /**
+     * 创建用户
+     */
+    @ApiModelProperty("创建用户")
+    private Long createBy;
+
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty("修改时间")
+    private Date updateAt;
+
+    /**
+     * 修改用户
+     */
+    @ApiModelProperty("修改用户")
+    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/ComDrugPopulationVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComDrugPopulationVO.java
new file mode 100644
index 0000000..03e162d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComDrugPopulationVO.java
@@ -0,0 +1,169 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+
+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;
+
+/**
+ * @auther txb
+ * @create 2021-08-10 15:57:18
+ * @describe 吸毒人员表实体类
+ */
+
+@Data
+@ApiModel("吸毒人员表")
+@EncryptDecryptClass
+public class ComDrugPopulationVO {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty("吸毒人员id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 人口id
+     */
+    @ApiModelProperty("人口id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long populationId;
+
+    /**
+     * 街道id
+     */
+    @ApiModelProperty("街道id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long streetId;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty("社区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long communityId;
+
+    /**
+     * 名字
+     */
+    @ApiModelProperty("名字")
+    private String name;
+
+    /**
+     * 身份证号码
+     */
+    @EncryptDecryptField
+    @ApiModelProperty("身份证号码")
+    private String cardNo;
+
+    /**
+     * 联系电话
+     */
+    @ApiModelProperty("联系电话")
+    private String phone;
+
+    /**
+     * 初次发现日期
+     */
+    @ApiModelProperty("初次发现日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date firstDate;
+
+    /**
+     * 管控情况
+     */
+    @ApiModelProperty("管控情况")
+    private String controlSituation;
+
+    /**
+     * 管控人姓名
+     */
+    @ApiModelProperty("管控人姓名")
+    private String controlPerson;
+
+    /**
+     * 管控人联系方式
+     */
+    @ApiModelProperty("管控人联系方式")
+    private String controlPersonPhone;
+
+    /**
+     * 帮扶情况
+     */
+    @ApiModelProperty("帮扶情况")
+    private String helpSituation;
+
+    /**
+     * 帮扶人姓名
+     */
+    @ApiModelProperty("帮扶人姓名")
+    private String helpPerson;
+
+    /**
+     * 帮扶人联系方式
+     */
+    @ApiModelProperty("帮扶人联系方式")
+    private String helpPersonPhone;
+
+    /**
+     * 吸毒原因
+     */
+    @ApiModelProperty("吸毒原因")
+    private String drugReason;
+
+    /**
+     * 吸毒后果
+     */
+    @ApiModelProperty("吸毒后果")
+    private String drugResult;
+
+    /**
+     * 有无犯罪史
+     */
+    @ApiModelProperty("有无犯罪史")
+    private String haveCrime;
+
+    /**
+     * 违法犯罪情况
+     */
+    @ApiModelProperty("违法犯罪情况")
+    private String crimeSutiation;
+
+    /**
+     * 备注
+     */
+    @ApiModelProperty("备注")
+    private String remark;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    private Date createAt;
+
+    /**
+     * 创建用户
+     */
+    @ApiModelProperty("创建用户")
+    private Long createBy;
+
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty("修改时间")
+    private Date updateAt;
+
+    /**
+     * 修改用户
+     */
+    @ApiModelProperty("修改用户")
+    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/ComElderAuthElderliesVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthElderliesVO.java
new file mode 100644
index 0000000..f2664e0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthElderliesVO.java
@@ -0,0 +1,86 @@
+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: 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 = "高龄津贴开始领取日期")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date receiveAllowanceBegin;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty(value = "创建用户")
+    private Long createBy;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    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..26331c3
--- /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 HH:mm", 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..2b87c56
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComElderAuthRecordVO.java
@@ -0,0 +1,131 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+import java.util.List;
+
+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;
+
+/**
+ * @title: ComElderAuthRecordVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 高龄认证记录
+ * @author: hans
+ * @date: 2021/09/01 16:16
+ */
+@Data
+@ApiModel("高龄认证记录")
+@EncryptDecryptClass
+public class ComElderAuthRecordVO {
+
+    @ApiModelProperty(value = "自增id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    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", 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<String> nextIds;
+
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    private String areaCode;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthElderlyDetailsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthElderlyDetailsVO.java
new file mode 100644
index 0000000..19011b3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthElderlyDetailsVO.java
@@ -0,0 +1,76 @@
+package com.panzhihua.common.model.vos.community;
+
+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;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-06-09
+ */
+@Data
+@ApiModel("高龄老人库详细返回参数")
+public class ComEldersAuthElderlyDetailsVO {
+
+    @ApiModelProperty(value = "ID")
+    private Long id;
+
+    @ApiModelProperty(value = "创建人")
+    private Long createBy;
+
+    @ApiModelProperty(value = "认证时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty(value = "更新人")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "更新时间")
+    private Date updateAt;
+
+    @ApiModelProperty(value = "身份证")
+    private String idCard;
+
+    @ApiModelProperty(value = "认证人姓名")
+    private String authUserName;
+
+    @ApiModelProperty(value = "视频地址")
+    private String videoUrl;
+
+    @ApiModelProperty(value = "提交人")
+    private Long sumitUserId;
+
+    @ApiModelProperty(value = "户籍地")
+    private String domicile;
+
+    @ApiModelProperty(value = "状态")
+    private String status;
+
+    @ApiModelProperty(value = "出生日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date birthDay;
+
+    @ApiModelProperty(value = "家庭成员ID")
+    private Long familyUserId;
+
+    @ApiModelProperty(value = "年龄")
+    private Integer age;
+
+    @ApiModelProperty(value = "管辖社区")
+    private String communityName;
+
+    @ApiModelProperty(value = "核验类型(1.视频认证 2.人脸核验)")
+    private Integer type;
+
+    @ApiModelProperty(value = "反馈信息")
+    private List<EldersAuthFeedbackVO> feedback;
+
+}
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
new file mode 100644
index 0000000..e592081
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthElderlyVO.java
@@ -0,0 +1,72 @@
+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;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-06-09
+ */
+@Data
+@ApiModel("高龄老人库返回参数")
+@EncryptDecryptClass
+public class ComEldersAuthElderlyVO {
+
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+
+    @ApiModelProperty(value = "名称")
+    private String name;
+
+    @ApiModelProperty(value = "身份证号码")
+    @EncryptDecryptField
+    private String idCard;
+
+    @ApiModelProperty(value = "出生年月")
+    private String birthday;
+
+    @ApiModelProperty(value = "人员类别(1.80-89周岁 2.90-99周岁 3.100周岁(含)以上)")
+    private Integer level;
+
+    @ApiModelProperty(value = "户籍地")
+    private String domicile;
+
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    @ApiModelProperty(value = "是否健在(1.是  2.否)")
+    private Integer isExist;
+
+    @ApiModelProperty(value = "是否办理高龄津贴(1.是 2.否)")
+    private Integer isBigAge;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty(value = "创建用户")
+    private Long createBy;
+
+    @ApiModelProperty(value = "修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAt;
+
+    @ApiModelProperty(value = "修改用户")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "年龄")
+    private Integer age;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthHistoryRecordDetailsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthHistoryRecordDetailsVO.java
new file mode 100644
index 0000000..de6688d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthHistoryRecordDetailsVO.java
@@ -0,0 +1,50 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-06-10
+ */
+@Data
+@ApiModel("高龄老人认证记录详细返回参数")
+public class ComEldersAuthHistoryRecordDetailsVO {
+
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+
+    @ApiModelProperty(value = "老人用户id")
+    private Long userId;
+
+    @ApiModelProperty(value = "名称")
+    private String name;
+
+    @ApiModelProperty(value = "身份证号码")
+    private String idCard;
+
+    @ApiModelProperty(value = "出生年月")
+    private String brithday;
+
+    @ApiModelProperty(value = "年龄")
+    private Integer age;
+
+    @ApiModelProperty(value = "户籍地")
+    private String domicile;
+
+    @ApiModelProperty(value = "本月是否已认证(1.是 2.否)")
+    private Integer isAuth;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthHistoryRecordVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthHistoryRecordVO.java
new file mode 100644
index 0000000..e870e36
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthHistoryRecordVO.java
@@ -0,0 +1,50 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-06-10
+ */
+@Data
+@ApiModel("高龄老人认证记录返回参数")
+public class ComEldersAuthHistoryRecordVO {
+
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+
+    @ApiModelProperty(value = "老人用户id")
+    private Long userId;
+
+    @ApiModelProperty(value = "名称")
+    private String name;
+
+    @ApiModelProperty(value = "身份证号码")
+    private String idCard;
+
+    @ApiModelProperty(value = "出生年月")
+    private String brithday;
+
+    @ApiModelProperty(value = "年龄")
+    private Integer age;
+
+    @ApiModelProperty(value = "户籍地")
+    private String domicile;
+
+    @ApiModelProperty(value = "本月是否已认证(1.是 2.否)")
+    private Integer isAuth;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthHistoryVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthHistoryVO.java
new file mode 100644
index 0000000..7ed910f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthHistoryVO.java
@@ -0,0 +1,36 @@
+package com.panzhihua.common.model.vos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-06-09
+ */
+@Data
+@ApiModel("高龄老人报表记录返回参数")
+public class ComEldersAuthHistoryVO {
+
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+
+    @ApiModelProperty(value = "年份")
+    private Integer year;
+
+    @ApiModelProperty(value = "月份")
+    private Integer month;
+
+    @ApiModelProperty(value = "高龄老人总人数")
+    private Integer sum;
+
+    @ApiModelProperty(value = "已认证人数")
+    private Integer authSum;
+
+    @ApiModelProperty(value = "未认证人数")
+    private Integer noAuthSum;
+
+}
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
new file mode 100644
index 0000000..9c62f6e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthRecordForCommunityVO.java
@@ -0,0 +1,79 @@
+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;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-06-09
+ */
+@Data
+@ApiModel("高龄认证记录返回参数")
+@EncryptDecryptClass
+public class ComEldersAuthRecordForCommunityVO {
+
+    @ApiModelProperty(value = "ID")
+    private Long id;
+
+    @ApiModelProperty(value = "创建人")
+    private Long createBy;
+
+    @ApiModelProperty(value = "认证时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty(value = "更新人")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAt;
+
+    @ApiModelProperty(value = "身份证")
+    @EncryptDecryptField
+    private String idCard;
+
+    @ApiModelProperty(value = "年龄")
+    private Integer age;
+
+    @ApiModelProperty(value = "认证人姓名")
+    private String authUserName;
+
+    @ApiModelProperty(value = "视频地址")
+    private String videoUrl;
+
+    @ApiModelProperty(value = "申请人")
+    private Long sumitUserId;
+
+    @ApiModelProperty(value = "户籍地")
+    private String domicile;
+
+    @ApiModelProperty(value = "状态")
+    private String status;
+
+    @ApiModelProperty(value = "出生日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date birthDay;
+
+    @ApiModelProperty(value = "申请人姓名")
+    private String sumitUserName;
+
+    @ApiModelProperty(value = "认证方式(1.视频认证 2.人脸核验)")
+    private Integer type;
+
+    @ApiModelProperty(value = "申请人账号")
+    private String sumitUserAccount;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthRecordVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthRecordVO.java
new file mode 100644
index 0000000..619d388
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthRecordVO.java
@@ -0,0 +1,38 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-06-09
+ */
+@Data
+@ApiModel("高龄认证记录返回参数")
+public class ComEldersAuthRecordVO {
+
+    @ApiModelProperty(value = "id")
+    private Long id;
+
+    @ApiModelProperty(value = "年份")
+    private String yearMonth;
+
+    @ApiModelProperty(value = "核验类型(1.视频认证 2.人脸核验)")
+    private Integer type;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty(value = "有反馈")
+    private Boolean hasFeed;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthStatisticsDetailsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthStatisticsDetailsVO.java
new file mode 100644
index 0000000..53f55d7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthStatisticsDetailsVO.java
@@ -0,0 +1,44 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-06-10
+ */
+@Data
+@ApiModel("老人认证月统计详细返回参数")
+public class ComEldersAuthStatisticsDetailsVO {
+
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+
+    @ApiModelProperty(value = "年份")
+    private Integer year;
+
+    @ApiModelProperty(value = "月份")
+    private Integer month;
+
+    @ApiModelProperty(value = "总人数")
+    private Integer sum;
+
+    @ApiModelProperty(value = "认证人数")
+    private Integer authSum;
+
+    @ApiModelProperty(value = "未认证人数")
+    private Integer noAuthSum;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthStatisticsVO.java
new file mode 100644
index 0000000..810987d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthStatisticsVO.java
@@ -0,0 +1,44 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-06-10
+ */
+@Data
+@ApiModel("老人认证月统计返回参数")
+public class ComEldersAuthStatisticsVO {
+
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+
+    @ApiModelProperty(value = "年份")
+    private Integer year;
+
+    @ApiModelProperty(value = "月份")
+    private Integer month;
+
+    @ApiModelProperty(value = "总人数")
+    private Integer sum;
+
+    @ApiModelProperty(value = "认证人数")
+    private Integer authSum;
+
+    @ApiModelProperty(value = "未认证人数")
+    private Integer noAuthSum;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthUserVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthUserVO.java
new file mode 100644
index 0000000..5c3a842
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComEldersAuthUserVO.java
@@ -0,0 +1,42 @@
+package com.panzhihua.common.model.vos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-06-09
+ */
+@Data
+@ApiModel("用户绑定老人关系返回参数")
+public class ComEldersAuthUserVO {
+
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+
+    @ApiModelProperty(value = "与本人关系(1.父母 2.配偶 3.子女 4.兄弟姐妹 5.祖/外祖父母 6.本人 7.其他)")
+    private Integer relation;
+
+    @ApiModelProperty(value = "是否已认证(1.是 2.否)")
+    private Integer isAuth;
+
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    @ApiModelProperty(value = "身份证号码")
+    private String idCard;
+
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    @ApiModelProperty(value = "高龄老人库id")
+    private Long bigAgeId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComExServicemanVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComExServicemanVO.java
new file mode 100644
index 0000000..e5835a4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComExServicemanVO.java
@@ -0,0 +1,34 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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;
+
+/**
+ * 退役军人Vo
+ */
+@Data
+@ApiModel("退役军人")
+public class ComExServicemanVO {
+
+    /**
+     * 退役军人id
+     */
+    @ApiModelProperty("退役军人id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("姓名")
+    private String name;
+
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComKeyPopulationVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComKeyPopulationVO.java
new file mode 100644
index 0000000..abb95bf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComKeyPopulationVO.java
@@ -0,0 +1,101 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+
+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;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 17:41:05
+ * @describe 实体类
+ */
+
+@Data
+@ApiModel("重点上访人员表")
+@EncryptDecryptClass
+public class ComKeyPopulationVO {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty("重点上访人员id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 人口id
+     */
+    @ApiModelProperty("人口id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long populationId;
+
+    /**
+     * 街道id
+     */
+    @ApiModelProperty("街道id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long streetId;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty("社区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long communityId;
+
+    /**
+     * 名字
+     */
+    @ApiModelProperty("名字")
+    private String name;
+
+    /**
+     * 身份证号码
+     */
+    @ApiModelProperty("身份证号码")
+    @EncryptDecryptField
+    private String cardNo;
+
+    /**
+     * 联系电话
+     */
+    @ApiModelProperty("联系电话")
+    private String phone;
+
+    /**
+     * 备注
+     */
+    @ApiModelProperty("备注")
+    private String remark;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    private Date createAt;
+
+    /**
+     * 创建用户
+     */
+    @ApiModelProperty("创建用户")
+    private Long createBy;
+
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty("修改时间")
+    private Date updateAt;
+
+    /**
+     * 修改用户
+     */
+    @ApiModelProperty("修改用户")
+    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/ComLowSecurityPopulationVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComLowSecurityPopulationVO.java
new file mode 100644
index 0000000..52af852
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComLowSecurityPopulationVO.java
@@ -0,0 +1,285 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+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;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 19:48:38
+ * @describe 实有人口导入》低保户人员表实体类
+ */
+
+@Data
+@ApiModel("低保户人员表")
+@EncryptDecryptClass
+public class ComLowSecurityPopulationVO {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty("低保户人员id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 人口id
+     */
+    @ApiModelProperty("人口id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long populationId;
+
+    /**
+     * 街道id
+     */
+    @ApiModelProperty("街道id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long streetId;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty("社区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long communityId;
+
+    /**
+     * 名字
+     */
+    @ApiModelProperty("名字")
+    private String name;
+
+    /**
+     * 身份证号码
+     */
+    @ApiModelProperty("身份证号码")
+    @EncryptDecryptField
+    private String cardNo;
+
+    /**
+     * 联系电话
+     */
+    @ApiModelProperty("联系电话")
+    private String phone;
+
+    /**
+     * 地区
+     */
+    @ApiModelProperty("地区")
+    private String region;
+
+    /**
+     * 家庭编码
+     */
+    @ApiModelProperty("家庭编码")
+    private String familyCode;
+
+    /**
+     * 组名称
+     */
+    @ApiModelProperty("组名称")
+    private String groupName;
+
+    /**
+     * 分类救助类别
+     */
+    @ApiModelProperty("分类救助类别")
+    private String classifiedRescueCategory;
+
+    /**
+     * 申请日期
+     */
+    @ApiModelProperty("申请日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date applyDate;
+
+    /**
+     * 户主姓名
+     */
+    @ApiModelProperty("户主姓名")
+    private String houseHolderName;
+
+    /**
+     * 户主身份证
+     */
+    @ApiModelProperty("户主身份证")
+    private String houseHolderCardNo;
+
+    /**
+     * 户主编码
+     */
+    @ApiModelProperty("户主编码")
+    private String houseHolderCode;
+
+    /**
+     * 居住地邮编
+     */
+    @ApiModelProperty("居住地邮编")
+    private String residencePostalCode;
+
+    /**
+     * 救助证号
+     */
+    @ApiModelProperty("救助证号")
+    private String salvageCertificateNo;
+
+    /**
+     * 保障人口数
+     */
+    @ApiModelProperty("保障人口数")
+    private Integer guaranteedPopulationNumber;
+
+    /**
+     * 家庭人口数
+     */
+    @ApiModelProperty("家庭人口数")
+    private Integer familyPopulationNumber;
+
+    /**
+     * 开户人
+     */
+    @ApiModelProperty("开户人")
+    private String accountPerson;
+
+    /**
+     * 开户银行
+     */
+    @ApiModelProperty("开户银行")
+    private String accountBank;
+
+    /**
+     * 开户人身份证号
+     */
+    @ApiModelProperty("开户人身份证号")
+    private String accountCardNo;
+
+    /**
+     * 银行账号
+     */
+    @ApiModelProperty("银行账号")
+    private String bankAccount;
+
+    /**
+     * 供养机构
+     */
+    @ApiModelProperty("供养机构")
+    private String supportInstitutions;
+
+    /**
+     * 资金发放方式
+     */
+    @ApiModelProperty("资金发放方式")
+    private String distributionMethod;
+
+    /**
+     * 保障金额
+     */
+    @ApiModelProperty("保障金额")
+    private BigDecimal guaranteedAmount;
+
+    /**
+     * 调剂金额
+     */
+    @ApiModelProperty("调剂金额")
+    private BigDecimal reallocationAmount;
+
+    /**
+     * 差额救助金额
+     */
+    @ApiModelProperty("差额救助金额")
+    private BigDecimal differenceReliefAmount;
+
+    /**
+     * 分类施保金额
+     */
+    @ApiModelProperty("分类施保金额")
+    private BigDecimal classifiedInsuredAmount;
+
+    /**
+     * 家庭月总收入
+     */
+    @ApiModelProperty("家庭月总收入")
+    private BigDecimal totalMonthlyFamilyIncome;
+
+    /**
+     * 家庭月均收入
+     */
+    @ApiModelProperty("家庭月均收入")
+    private BigDecimal averageMonthlyFamilyIncome;
+
+    /**
+     * 家庭月支出
+     */
+    @ApiModelProperty("家庭月支出")
+    private BigDecimal totalMonthlyFamilyExpenditure;
+
+    /**
+     * 经度
+     */
+    @ApiModelProperty("经度")
+    private String lng;
+
+    /**
+     * 纬度
+     */
+    @ApiModelProperty("纬度")
+    private String lat;
+
+    /**
+     * 始发年月
+     */
+    @ApiModelProperty("始发年月")
+    private Date originateDate;
+
+    /**
+     * 护理费
+     */
+    @ApiModelProperty("护理费")
+    private BigDecimal nursingFee;
+
+    /**
+     * 申请理由
+     */
+    @ApiModelProperty("申请理由")
+    private String applyReason;
+
+    /**
+     * 审核意见
+     */
+    @ApiModelProperty("审核意见")
+    private String reviewComment;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    private Date createAt;
+
+    /**
+     * 创建用户
+     */
+    @ApiModelProperty("创建用户")
+    private Long createBy;
+
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty("修改时间")
+    private Date updateAt;
+
+    /**
+     * 修改用户
+     */
+    @ApiModelProperty("修改用户")
+    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/ComMajorPopulationVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMajorPopulationVO.java
new file mode 100644
index 0000000..ae9ef8e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMajorPopulationVO.java
@@ -0,0 +1,173 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+
+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;
+
+/**
+ * @auther txb
+ * @create 2021-08-10 15:57:54
+ * @describe 重精人员表实体类
+ */
+
+@Data
+@ApiModel("重精人员表")
+@EncryptDecryptClass
+public class ComMajorPopulationVO {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty("重精人员id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 人口id
+     */
+    @ApiModelProperty("人口id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long populationId;
+
+    /**
+     * 街道id
+     */
+    @ApiModelProperty("街道id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long streetId;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty("社区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long communityId;
+
+    /**
+     * 名字
+     */
+    @ApiModelProperty("名字")
+    private String name;
+
+    /**
+     * 身份证号码
+     */
+    @ApiModelProperty("身份证号码")
+    @EncryptDecryptField
+    private String cardNo;
+
+    /**
+     * 经济状况
+     */
+    @ApiModelProperty("经济状况")
+    private String economicCondition;
+
+    /**
+     * 人员类型
+     */
+    @ApiModelProperty("人员类型")
+    private String personType;
+
+    /**
+     * 家庭情况
+     */
+    @ApiModelProperty("家庭情况")
+    private String familySituation;
+
+    /**
+     * 监护人姓名
+     */
+    @ApiModelProperty("监护人姓名")
+    private String custodyPerson;
+
+    /**
+     * 与监护人关系
+     */
+    @ApiModelProperty("与监护人关系")
+    private String custodyRelation;
+
+    /**
+     * 监护人公民身份号码
+     */
+    @ApiModelProperty("监护人公民身份号码")
+    private String custodyCardNo;
+
+    /**
+     * 监护人联系方式
+     */
+    @ApiModelProperty("监护人联系方式")
+    private String custodyPersonPhone;
+
+    /**
+     * 监护人居住详址
+     */
+    @ApiModelProperty("监护人居住详址")
+    private String custodyAddress;
+
+    /**
+     * 帮扶人姓名
+     */
+    @ApiModelProperty("帮扶人姓名")
+    private String helpPerson;
+
+    /**
+     * 帮扶人联系方式
+     */
+    @ApiModelProperty("帮扶人联系方式")
+    private String helpPersonPhone;
+
+    /**
+     * 帮扶手段
+     */
+    @ApiModelProperty("帮扶手段")
+    private String helpMethod;
+
+    /**
+     * 帮扶情况
+     */
+    @ApiModelProperty("帮扶情况")
+    private String helpSituation;
+
+    /**
+     * 是否违法犯罪(1.是 0.否)
+     */
+    @ApiModelProperty("是否违法犯罪(1.是 0.否)")
+    private Integer isCrime;
+
+    /**
+     * 违法犯罪情况
+     */
+    @ApiModelProperty("违法犯罪情况")
+    private String crimeSutiation;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    private Date createAt;
+
+    /**
+     * 创建用户
+     */
+    @ApiModelProperty("创建用户")
+    private Long createBy;
+
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty("修改时间")
+    private Date updateAt;
+
+    /**
+     * 修改用户
+     */
+    @ApiModelProperty("修改用户")
+    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/ComMngAreaVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngAreaVO.java
new file mode 100644
index 0000000..48f9968
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngAreaVO.java
@@ -0,0 +1,41 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.List;
+
+import com.google.common.collect.Lists;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("区域tree信息")
+public class ComMngAreaVO {
+    /** 城市行政区划代码 */
+    @ApiModelProperty("城市行政区划代码")
+    private Integer code;
+
+    /** 城市行政区划代码 */
+    @ApiModelProperty("街道id")
+    private String streetId;
+
+    /** 城市名称 */
+    @ApiModelProperty("城市名称")
+    private String Name;
+
+    @ApiModelProperty("子级区域")
+    private List<ComMngAreaVO> Children = Lists.newArrayList();
+
+    public ComMngAreaVO(Integer code, String name) {
+        this.code = code;
+        Name = name;
+    }
+
+    public ComMngAreaVO(Integer code, String name,String streetId) {
+        this.code = code;
+        Name = name;
+        this.streetId = streetId;
+    }
+
+    public ComMngAreaVO() {}
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngBuildingExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngBuildingExcelVO.java
new file mode 100644
index 0000000..00dfe6d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngBuildingExcelVO.java
@@ -0,0 +1,65 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+
+import lombok.Data;
+
+/**
+ * @author xyh
+ * @date 2021/6/10 12:43
+ */
+@Data
+public class ComMngBuildingExcelVO implements Serializable {
+
+    private static final long serialVersionUID = 1719392023800643085L;
+
+    private Long id;
+//    @ExcelProperty(value = "楼房属性", index = 0)
+//    private String useType;
+//    @ExcelProperty(value = "建筑类型", index = 1)
+//    private String buildType;
+
+    @ExcelProperty(value = "街路巷", index = 0)
+    private String alley;
+
+    @ExcelProperty(value = "小区名称", index = 1)
+    private String villageName;
+
+    @ExcelProperty(value = "街路巷号", index = 2)
+    private String doorNo;
+
+    @ExcelProperty(value = "楼栋号", index = 3)
+    private String name;
+
+//    @ExcelProperty(value = "单元数", index = 6)
+//    private Integer unitTotal;
+//
+//    @ExcelProperty(value = "楼层数", index = 7)
+//    private Integer buildFloorSum;
+//
+//    @ExcelProperty(value = "每层户数", index = 8)
+//    private Integer everyFloorSum;
+//
+//    @ExcelProperty(value = "总户数", index = 9)
+//    private Integer buildUserSum;
+//
+//    @ExcelProperty(value = "电梯", index = 10)
+//    private Integer elevatorTotal;
+//
+//    @ExcelProperty(value = "物业公司名称", index = 11)
+//    private String propertyCompanyName;
+//
+//    @ExcelProperty(value = "建筑年代", index = 12)
+//    private Date buildDate;
+//
+//    @ExcelProperty(value = "备注", index = 13)
+//    private String remark;
+//
+//    @ExcelProperty(value = "网格划分", index = 14)
+//    private String gridId;
+
+    private String gridName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngCarExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngCarExcelVO.java
new file mode 100644
index 0000000..332327a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngCarExcelVO.java
@@ -0,0 +1,61 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+
+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;
+
+/**
+ * @description: 批量导入车辆管理
+ * @author: Null
+ * @date: 2021/3/11 17:11
+ */
+@Data
+@EncryptDecryptClass
+public class ComMngCarExcelVO implements Serializable {
+    /**
+     * 小区名称
+     */
+    @ExcelProperty(value = "小区名称", index = 0)
+    private String areaName;
+    /**
+     * 车主姓名
+     */
+    @ExcelProperty(value = "车主姓名", index = 1)
+    private String userName;
+
+    /**
+     * 车主身份证号码
+     */
+    @EncryptDecryptField
+    @ExcelProperty(value = "车主身份证号码", index = 2)
+    private String cardNo;
+
+    /**
+     * 品牌型号
+     */
+    @ExcelProperty(value = "品牌型号", index = 5)
+    private String brand;
+
+    /**
+     * 车牌号
+     */
+    @ExcelProperty(value = "车牌号", index = 4)
+    private String plateNum;
+
+    /**
+     * 车身颜色
+     */
+    @ExcelProperty(value = "颜色", index = 6)
+    private String color;
+
+    /**
+     * 联系方式
+     */
+    @ExcelProperty(value = "联系方式", index = 3)
+    private String mobile;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngCarVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngCarVO.java
new file mode 100644
index 0000000..a7277a1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngCarVO.java
@@ -0,0 +1,75 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+import java.util.Date;
+
+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;
+
+/**
+ * @description: 车辆管理
+ * @author: Null
+ * @date: 2021/3/16 14:28
+ */
+@Data
+@ApiModel("车辆管理")
+@EncryptDecryptClass
+public class ComMngCarVO implements Serializable {
+
+    @ApiModelProperty("主键")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("社区ID")
+    private Long communityId;
+
+    @ApiModelProperty("社区名称")
+    private String communityName;
+
+    @ApiModelProperty("小区名称")
+    private String areaName;
+
+    @ApiModelProperty("小区ID")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long areaId;
+
+    @ApiModelProperty("详细住址")
+    private String address;
+
+    @ApiModelProperty("车主姓名")
+    private String userName;
+
+    @ApiModelProperty("车主身份证号码")
+    @EncryptDecryptField
+    private String cardNo;
+
+    @ApiModelProperty("车主用户ID")
+    private Long userId;
+
+    @ApiModelProperty("车主手机号码")
+    private String mobile;
+
+    @ApiModelProperty("车牌号")
+    private String plateNum;
+
+    @ApiModelProperty("车辆品牌型号")
+    private String brand;
+
+    @ApiModelProperty("车身颜色")
+    private String color;
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("创建人")
+    private String createBy;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngCascadeHouseVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngCascadeHouseVO.java
new file mode 100644
index 0000000..5a23b42
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngCascadeHouseVO.java
@@ -0,0 +1,56 @@
+package com.panzhihua.common.model.vos.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;
+
+@Data
+@ApiModel("级联菜单返回参数")
+public class ComMngCascadeHouseVO {
+
+    /**
+     * 房屋id
+     */
+    @ApiModelProperty("房屋id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long houseId;
+
+    /**
+     * 街路巷
+     */
+    @ApiModelProperty("街路巷")
+    private String alley;
+
+    /**
+     * 门牌号
+     */
+    @ApiModelProperty("门牌号")
+    private String houseNum;
+
+    /**
+     * 楼排号
+     */
+    @ApiModelProperty("楼排号")
+    private String floor;
+
+    /**
+     * 单元号
+     */
+    @ApiModelProperty("单元号")
+    private String unitNo;
+
+    /**
+     * 户室(房间号)
+     */
+    @ApiModelProperty("户室(房间号)")
+    private String houseNo;
+
+    /**
+     * 公共显示字段
+     */
+    @ApiModelProperty("公共显示字段")
+    private String name;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngCityVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngCityVO.java
new file mode 100644
index 0000000..731f3d6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngCityVO.java
@@ -0,0 +1,18 @@
+package com.panzhihua.common.model.vos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("城市")
+public class ComMngCityVO {
+
+    /** 城市名称 */
+    @ApiModelProperty("城市名称")
+    private String cityName;
+
+    /** 城市行政区划代码 */
+    @ApiModelProperty("城市行政区划代码")
+    private Integer cityAdcode;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngDistrictVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngDistrictVO.java
new file mode 100644
index 0000000..7298410
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngDistrictVO.java
@@ -0,0 +1,17 @@
+package com.panzhihua.common.model.vos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("区县")
+public class ComMngDistrictVO {
+
+    @ApiModelProperty("区县名称")
+    private String districtName;
+
+    @ApiModelProperty("区县行政区划代码")
+    private Integer districtAdcode;
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationCarVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationCarVO.java
new file mode 100644
index 0000000..be606ff
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationCarVO.java
@@ -0,0 +1,34 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+
+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;
+
+/**
+ * @description: 实有人口详情车辆信息
+ * @author: lyq
+ * @date: 2021/5/19 12:28
+ */
+@Data
+@ApiModel("实有人口详情车辆信息")
+public class ComMngPopulationCarVO implements Serializable {
+
+    @ApiModelProperty("主键")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("车牌号")
+    private String plateNum;
+
+    @ApiModelProperty("车辆品牌型号")
+    private String brand;
+
+    @ApiModelProperty("车身颜色")
+    private String color;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationCommunityTagsVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationCommunityTagsVo.java
new file mode 100644
index 0000000..94e602e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationCommunityTagsVo.java
@@ -0,0 +1,38 @@
+package com.panzhihua.common.model.vos.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;
+
+
+/**
+ * 基础数据》人口社区特殊群体关系表
+ * @author lyq
+ */
+@Data
+@ApiModel
+public class ComMngPopulationCommunityTagsVo {
+    /**
+     * 实有人口id
+     */
+    @ApiModelProperty("实有人口id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long populationId;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty("社区id")
+    private Long communityId;
+    /**
+     * 社区标签
+     */
+    @ApiModelProperty("社区标签")
+    private String label;
+    /**
+     * 社区标签
+     */
+    @ApiModelProperty("社区名字")
+    private String communityName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationCorrectExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationCorrectExcelVO.java
new file mode 100644
index 0000000..ec99012
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationCorrectExcelVO.java
@@ -0,0 +1,195 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+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;
+
+/**
+ * @description: 批量导入社区矫正人员
+ * @author: txb
+ */
+@Data
+@EncryptDecryptClass
+public class ComMngPopulationCorrectExcelVO implements Serializable {
+
+    @ExcelProperty(value = "序号", index = 0)
+    private String serialNumber;
+
+    @ExcelProperty(value = "姓名", index = 1)
+    private String name;
+
+    @ExcelProperty(value = "身份证号码", index = 3)
+    @EncryptDecryptField
+    private String cardNo;
+
+    @ExcelProperty(value = "民族", index = 2)
+    private String nation;
+
+    @ExcelProperty(value = "联系电话", index = 4)
+    private String phone;
+
+    @ExcelProperty(value = "是否租住", index = 10)
+    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 = 11)
+    private Integer houseStatus;
+
+    @ExcelProperty(value = "房屋用途(1.住宅 2.公寓 3.宿舍 4.仓库 5.其他)", index = 12)
+    private Integer housePurpose;
+
+    @ExcelProperty(value = "管控状态(1.常规 2.关注 3.管控)", index = 13)
+    private Integer controlStatus;
+
+    @ExcelProperty(value = "外地/本地(1.本地  2.外地)", index = 14)
+    private Integer outOrLocal;
+
+    @ExcelProperty(value = "户口所在地", index = 15)
+    private String censusRegister;
+
+    @ExcelProperty(value = "学历", index = 16)
+    private String cultureLevel;
+
+    @ExcelProperty(value = "社区矫正人员编号", index = 17)
+    private String correctPersonCode;
+
+    @ExcelProperty(value = "原羁押场所", index = 18)
+    private String originalCustodyplace;
+
+    @ExcelProperty(value = "矫正类别", index = 19)
+    private String correctType;
+
+    @ExcelProperty(value = "案件类别", index = 20)
+    private String caseType;
+
+    @ExcelProperty(value = "具体罪名", index = 21)
+    private String specificCharge;
+
+    @ExcelProperty(value = "原判刑期", index = 22)
+    private String originalTerm;
+
+    @ExcelProperty(value = "原判刑开始日期", index = 23)
+    private Date originalTermBegin;
+
+    @ExcelProperty(value = "原判刑结束日期", index = 24)
+    private Date originalTermEnd;
+
+    @ExcelProperty(value = "矫正开始时间", index = 25)
+    private Date correctBegin;
+
+    @ExcelProperty(value = "矫正结束时间", index = 26)
+    private Date correctEnd;
+
+    @ExcelProperty(value = "接收方式", index = 27)
+    private String receiveMethod;
+
+    @ExcelProperty(value = "是否累惯犯(1.是 0.否)", index = 28)
+    private Integer isRecidivist;
+
+    @ExcelProperty(value = "四史情况", index = 29)
+    private String fourHistory;
+
+    @ExcelProperty(value = "三涉情况", index = 30)
+    private String threeInvovle;
+
+    @ExcelProperty(value = "是否建立矫正小组(1.是 0.否)", index = 31)
+    private Integer isCorrectGroup;
+
+    @ExcelProperty(value = "矫正小组人员组成情况", index = 32)
+    private String correctGroupConstitute;
+
+    @ExcelProperty(value = "矫正解除(终止)类型", index = 33)
+    private String correctRelieveType;
+
+    @ExcelProperty(value = "是否有脱管(1.是 0.否)", index = 34)
+    private Integer isOutControl;
+
+    @ExcelProperty(value = "脱管原因", index = 35)
+    private String outControlReason;
+
+    @ExcelProperty(value = "脱管纠正情况", index = 36)
+    private String outControlCorrect;
+
+    @ExcelProperty(value = "检察监督脱管情况", index = 37)
+    private String inspectOutControl;
+
+    @ExcelProperty(value = "是否有漏管(1.是 0.否)", index = 38)
+    private Integer isMissControl;
+
+    @ExcelProperty(value = "漏管原因", index = 39)
+    private String missControlReason;
+
+    @ExcelProperty(value = "漏管纠正情况", index = 40)
+    private String missControlCorrect;
+
+    @ExcelProperty(value = "检察监督漏管", index = 41)
+    private String inspectMissControl;
+
+    @ExcelProperty(value = "奖惩情况", index = 42)
+    private String rewardAndPunishiment;
+
+    @ExcelProperty(value = "是否重新犯罪(1.是 0.否)", index = 43)
+    private Integer isAgainCrime;
+
+    @ExcelProperty(value = "重新犯罪名称", index = 44)
+    private String againCrimeName;
+
+    @ExcelProperty(value = "刑罚变更执行情况", index = 45)
+    private String pubishmentChange;
+
+    @ExcelProperty(value = "备注", index = 46)
+    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/ComMngPopulationCorrectMistakeExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationCorrectMistakeExcelVO.java
new file mode 100644
index 0000000..85652f5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationCorrectMistakeExcelVO.java
@@ -0,0 +1,163 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+
+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;
+
+/**
+ * @description: 批量导入社区矫正人员
+ * @author: txb
+ */
+@Data
+@EncryptDecryptClass
+public class ComMngPopulationCorrectMistakeExcelVO implements Serializable {
+
+    @ExcelProperty(value = "序号", index = 0)
+    private String serialNumber;
+
+    @ExcelProperty(value = "姓名", index = 1)
+    private String name;
+
+    @ExcelProperty(value = "身份证号码", index = 3)
+    @EncryptDecryptField
+    private String cardNo;
+
+    @ExcelProperty(value = "民族", index = 2)
+    private String nation;
+
+    @ExcelProperty(value = "联系电话", index = 4)
+    private String phone;
+
+    @ExcelProperty(value = "是否租住", index = 10)
+    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 = 11)
+    private String houseStatus;
+
+    @ExcelProperty(value = "房屋用途(1.住宅 2.公寓 3.宿舍 4.仓库 5.其他)", index = 12)
+    private String housePurpose;
+
+    @ExcelProperty(value = "管控状态(1.常规 2.关注 3.管控)", index = 13)
+    private String controlStatus;
+
+    @ExcelProperty(value = "外地/本地(1.本地  2.外地)", index = 14)
+    private String outOrLocal;
+
+    @ExcelProperty(value = "户口所在地", index = 15)
+    private String censusRegister;
+
+    @ExcelProperty(value = "学历", index = 16)
+    private String cultureLevel;
+
+    @ExcelProperty(value = "社区矫正人员编号", index = 17)
+    private String correctPersonCode;
+
+    @ExcelProperty(value = "原羁押场所", index = 18)
+    private String originalCustodyplace;
+
+    @ExcelProperty(value = "矫正类别", index = 19)
+    private String correctType;
+
+    @ExcelProperty(value = "案件类别", index = 20)
+    private String caseType;
+
+    @ExcelProperty(value = "具体罪名", index = 21)
+    private String specificCharge;
+
+    @ExcelProperty(value = "原判刑期", index = 22)
+    private String originalTerm;
+
+    @ExcelProperty(value = "原判刑开始日期", index = 23)
+    private String originalTermBegin;
+
+    @ExcelProperty(value = "原判刑结束日期", index = 24)
+    private String originalTermEnd;
+
+    @ExcelProperty(value = "矫正开始时间", index = 25)
+    private String correctBegin;
+
+    @ExcelProperty(value = "矫正结束时间", index = 26)
+    private String correctEnd;
+
+    @ExcelProperty(value = "接收方式", index = 27)
+    private String receiveMethod;
+
+    @ExcelProperty(value = "是否累惯犯(1.是 0.否)", index = 28)
+    private String isRecidivist;
+
+    @ExcelProperty(value = "四史情况", index = 29)
+    private String fourHistory;
+
+    @ExcelProperty(value = "三涉情况", index = 30)
+    private String threeInvovle;
+
+    @ExcelProperty(value = "是否建立矫正小组(1.是 0.否)", index = 31)
+    private String isCorrectGroup;
+
+    @ExcelProperty(value = "矫正小组人员组成情况", index = 32)
+    private String correctGroupConstitute;
+
+    @ExcelProperty(value = "矫正解除(终止)类型", index = 33)
+    private String correctRelieveType;
+
+    @ExcelProperty(value = "是否有脱管(1.是 0.否)", index = 34)
+    private String isOutControl;
+
+    @ExcelProperty(value = "脱管原因", index = 35)
+    private String outControlReason;
+
+    @ExcelProperty(value = "脱管纠正情况", index = 36)
+    private String outControlCorrect;
+
+    @ExcelProperty(value = "检察监督脱管情况", index = 37)
+    private String inspectOutControl;
+
+    @ExcelProperty(value = "是否有漏管(1.是 0.否)", index = 38)
+    private String isMissControl;
+
+    @ExcelProperty(value = "漏管原因", index = 39)
+    private String missControlReason;
+
+    @ExcelProperty(value = "漏管纠正情况", index = 40)
+    private String missControlCorrect;
+
+    @ExcelProperty(value = "检察监督漏管", index = 41)
+    private String inspectMissControl;
+
+    @ExcelProperty(value = "奖惩情况", index = 42)
+    private String rewardAndPunishiment;
+
+    @ExcelProperty(value = "是否重新犯罪(1.是 0.否)", index = 43)
+    private String isAgainCrime;
+
+    @ExcelProperty(value = "重新犯罪名称", index = 44)
+    private String againCrimeName;
+
+    @ExcelProperty(value = "刑罚变更执行情况", index = 45)
+    private String pubishmentChange;
+
+    @ExcelProperty(value = "备注", index = 46)
+    private String remark;
+
+    @ExcelProperty(value = "错误信息", index = 47)
+    private String mistake;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationCultExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationCultExcelVO.java
new file mode 100644
index 0000000..cb05ad5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationCultExcelVO.java
@@ -0,0 +1,126 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+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;
+
+/**
+ * @description: 批量导入邪教人员
+ * @author: txb
+ */
+@Data
+@EncryptDecryptClass
+public class ComMngPopulationCultExcelVO implements Serializable {
+
+    @ExcelProperty(value = "序号", index = 0)
+    private String serialNumber;
+
+    @ExcelProperty(value = "姓名", index = 1)
+    private String name;
+
+    @ExcelProperty(value = "身份证号码", index = 2)
+    @EncryptDecryptField
+    private String cardNo;
+
+    @ExcelProperty(value = "民族", index = 3)
+    private String nation;
+
+    @ExcelProperty(value = "职业", index = 4)
+    private String profession;
+
+    @ExcelProperty(value = "婚姻状况(1.未婚 2.已婚 3.离异 4.丧偶 5.分居 6.其他)", index = 5)
+    private Integer marriage;
+
+    @ExcelProperty(value = "文化程度(1.小学 2.初中 3.高中 4.中专 5.大专 6.本科 7.硕士 8.博士 9.其他)", index = 6)
+    private Integer cultureLevel;
+
+    @ExcelProperty(value = "政治面貌", index = 7)
+    private Integer politicalOutlook;
+
+    @ExcelProperty(value = "街/路/巷", index = 8)
+    private String road;
+
+    @ExcelProperty(value = "小区号", index = 9)
+    private String doorNo;
+
+    @ExcelProperty(value = "楼排号", index = 10)
+    private String floor;
+
+    @ExcelProperty(value = "单元号", index = 11)
+    private String unitNo;
+
+    @ExcelProperty(value = "户室(房间号)", index = 12)
+    private String houseNo;
+
+    @ExcelProperty(value = "是否租住", index = 13)
+    private Integer isRent;
+
+    @ExcelProperty(value = "房屋状态(1.自住 2.租住 3.其他)", index = 14)
+    private Integer houseStatus;
+
+    @ExcelProperty(value = "房屋用途(1.住宅 2.公寓 3.宿舍 4.仓库 5.其他)", index = 15)
+    private Integer housePurpose;
+
+    @ExcelProperty(value = "管控状态(1.常规 2.关注 3.管控)", index = 16)
+    private Integer controlStatus;
+
+    @ExcelProperty(value = "外地/本地(1.本地  2.外地)", index = 17)
+    private Integer outOrLocal;
+
+    @ExcelProperty(value = "户口所在地", index = 18)
+    private String censusRegister;
+
+    @ExcelProperty(value = "邪教名称(涉邪组织)", index = 19)
+    private String cultName;
+
+    @ExcelProperty(value = "基本情况(参加邪教的活动情况)", index = 20)
+    private String basicSituation;
+
+    @ExcelProperty(value = "参加邪教时间", index = 21)
+    private Date joinCultDate;
+
+    @ExcelProperty(value = "是否对外宣传(1.是 0.否)", index = 22)
+    private Integer isExternalPublicity;
+
+    @ExcelProperty(value = "备注", index = 23)
+    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/ComMngPopulationCultMistakeExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationCultMistakeExcelVO.java
new file mode 100644
index 0000000..a045200
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationCultMistakeExcelVO.java
@@ -0,0 +1,94 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+
+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;
+
+/**
+ * @description: 批量导入邪教人员
+ * @author: txb
+ */
+@Data
+@EncryptDecryptClass
+public class ComMngPopulationCultMistakeExcelVO implements Serializable {
+
+    @ExcelProperty(value = "序号", index = 0)
+    private String serialNumber;
+
+    @ExcelProperty(value = "姓名", index = 1)
+    private String name;
+
+    @ExcelProperty(value = "身份证号码", index = 2)
+    @EncryptDecryptField
+    private String cardNo;
+
+    @ExcelProperty(value = "民族", index = 3)
+    private String nation;
+
+    @ExcelProperty(value = "职业", index = 4)
+    private String profession;
+
+    @ExcelProperty(value = "婚姻状况(1.未婚 2.已婚 3.离异 4.丧偶 5.分居 6.其他)", index = 5)
+    private String marriage;
+
+    @ExcelProperty(value = "文化程度(1.小学 2.初中 3.高中 4.中专 5.大专 6.本科 7.硕士 8.博士 9.其他)", index = 6)
+    private String cultureLevel;
+
+    @ExcelProperty(value = "政治面貌", index = 7)
+    private String politicalOutlook;
+
+    @ExcelProperty(value = "街/路/巷", index = 8)
+    private String road;
+
+    @ExcelProperty(value = "小区号", index = 9)
+    private String doorNo;
+
+    @ExcelProperty(value = "楼排号", index = 10)
+    private String floor;
+
+    @ExcelProperty(value = "单元号", index = 11)
+    private String unitNo;
+
+    @ExcelProperty(value = "户室(房间号)", index = 12)
+    private String houseNo;
+
+    @ExcelProperty(value = "是否租住", index = 13)
+    private String isRent;
+
+    @ExcelProperty(value = "房屋状态(1.自住 2.租住 3.其他)", index = 14)
+    private String houseStatus;
+
+    @ExcelProperty(value = "房屋用途(1.住宅 2.公寓 3.宿舍 4.仓库 5.其他)", index = 15)
+    private String housePurpose;
+
+    @ExcelProperty(value = "管控状态(1.常规 2.关注 3.管控)", index = 16)
+    private String controlStatus;
+
+    @ExcelProperty(value = "外地/本地(1.本地  2.外地)", index = 17)
+    private String outOrLocal;
+
+    @ExcelProperty(value = "户口所在地", index = 18)
+    private String censusRegister;
+
+    @ExcelProperty(value = "邪教名称(涉邪组织)", index = 19)
+    private String cultName;
+
+    @ExcelProperty(value = "基本情况(参加邪教的活动情况)", index = 20)
+    private String basicSituation;
+
+    @ExcelProperty(value = "参加邪教时间)", index = 21)
+    private String joinCultDate;
+
+    @ExcelProperty(value = "是否对外宣传(1.是 0.否)", index = 22)
+    private String isExternalPublicity;
+
+    @ExcelProperty(value = "备注", index = 23)
+    private String remark;
+
+    @ExcelProperty(value = "错误信息", index = 24)
+    private String mistake;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationDetailVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationDetailVO.java
new file mode 100644
index 0000000..651f6f1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationDetailVO.java
@@ -0,0 +1,187 @@
+package com.panzhihua.common.model.vos.community;
+
+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.EncryptDecryptField;
+import com.panzhihua.common.model.helper.sensitive.Sensitive;
+import com.panzhihua.common.model.helper.sensitive.SensitiveStrategy;
+import com.panzhihua.common.model.vos.user.ComHouseMemberVo;
+import com.panzhihua.common.model.vos.user.ComMngFamilyInfoVO;
+import com.panzhihua.common.model.vos.user.ComMngHouseVo;
+import com.panzhihua.common.model.vos.user.UserElectronicFileVO;
+import com.panzhihua.common.validated.AddGroup;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel
+public class ComMngPopulationDetailVO {
+    /**
+     * 自增 id
+     */
+    @ApiModelProperty("实有人口id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+    /**
+     * 街道id
+     */
+    @ApiModelProperty("街道id")
+    private Integer streetId;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty("社区id")
+    private Integer actId;
+    /**
+     * 小区id(实有房屋id)
+     */
+    @ApiModelProperty("小区id(实有房屋id)")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private long villageId;
+    /**
+     * 家庭成员(姓名)
+     */
+    @ApiModelProperty("家庭成员(姓名)")
+    @NotBlank(groups = {AddGroup.class}, message = "家庭成员(姓名)不可为空")
+    private String name;
+
+    @ApiModelProperty("性别(1.男 2.女 3.未知)")
+    @NotBlank(groups = {AddGroup.class}, message = "性别不可为空")
+    private Integer sex;
+
+    @ApiModelProperty("年龄")
+    @NotBlank(groups = {AddGroup.class}, message = "年龄不可为空")
+    private Integer age;
+
+    @ApiModelProperty("身份证号码")
+    @NotBlank(groups = {AddGroup.class}, message = "身份证号码不可为空")
+    private String cardNo;
+
+    @ApiModelProperty("出生年月")
+    private String birthday;
+
+    @ApiModelProperty("街路巷")
+    @NotBlank(groups = {AddGroup.class}, message = "街路巷不可为空")
+    private String road;
+
+    @ApiModelProperty("门牌号")
+    @NotBlank(groups = {AddGroup.class}, message = "门牌号不可为空")
+    private String doorNo;
+
+    @ApiModelProperty("楼排号")
+    @NotBlank(groups = {AddGroup.class}, message = "楼排号不可为空")
+    private String floor;
+
+    @ApiModelProperty("单元号")
+    @NotBlank(groups = {AddGroup.class}, message = "单元号不可为空")
+    private String unitNo;
+
+    @ApiModelProperty("户室(房间号)")
+    private String houseNo;
+
+    @ApiModelProperty("政治面貌(1.中共党员2.中共预备党员3.共青团员4.民革党员5.民盟盟员6.民建会员7.8.农工党党员9.致公党党员10.九三学社社员11.台盟盟员12.无党派人士13.群众)")
+    private Integer politicalOutlook;
+
+    @ApiModelProperty("政治面貌名称")
+    private String politicalOutlookName;
+
+    @ApiModelProperty("工作单位")
+    private String workCompany;
+
+    @ApiModelProperty("特殊情况")
+    private String specialSituation;
+
+    @ApiModelProperty("联系方式")
+    private String phone;
+
+    @ApiModelProperty("备注")
+    private String remark;
+
+    @ApiModelProperty("标签集合(多个标签以,隔开,如物业工作人员,物业")
+    private String label;
+
+    @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 updateAt;
+
+    @ApiModelProperty("籍贯")
+    private String nativePlace;
+
+    @ApiModelProperty("民族")
+    private String nationCode;
+
+    @ApiModelProperty("民族")
+    private String nation;
+
+    @ApiModelProperty("小区名字")
+    private String alley;
+
+    @ApiModelProperty("户主关系列表")
+    private List<ComHouseMemberVo> comMngFamilyInfoVOS;
+
+    @ApiModelProperty("家庭成员信息")
+    private List<ComMngFamilyInfoVO> familyInfoVOList;
+
+    @ApiModelProperty("用户电子档信息")
+    private UserElectronicFileVO userElectronicFileVO;
+
+    @ApiModelProperty("是否租住 是否租住(0.否 1.是)")
+    @NotBlank(groups = {AddGroup.class}, message = "是否租住不可为空")
+    private Integer isRent;
+
+    @ApiModelProperty("文化程度(1.小学 2.初中 3.高中 4.中专 5.大专 6.本科 7.硕士 8.博士 9.其他)")
+    private Integer cultureLevel;
+
+    @ApiModelProperty("文化程度名称")
+    private String cultureLevelName;
+
+    @ApiModelProperty("职业")
+    private String profession;
+
+    @ApiModelProperty("婚姻状况(10.未婚 20.已婚 21.初婚 22.再婚 23.复婚 30.丧偶 40.离婚 90.未说明的婚姻状况 60.其他)")
+    private Integer marriage;
+
+    @ApiModelProperty("婚姻状况名称")
+    private String marriageName;
+
+    @ApiModelProperty("健康状况")
+    private String healthy;
+
+    @ApiModelProperty("外地or本地(1.本地  2.外地)")
+    private Integer outOrLocal;
+
+    @ApiModelProperty("户口所在地")
+    private String censusRegister;
+
+    /**
+     * 居住地址
+     */
+    @ApiModelProperty("居住地址")
+    private String address;
+
+    @ApiModelProperty("与户主关系(1.户主 2.配偶 3.子女 4.孙女 5.父母 6.其他)")
+    private Integer relation;
+
+    @ApiModelProperty("与户主关系名称")
+    private String relationName;
+
+    @ApiModelProperty("身份证无加密字段")
+    private String cardNoStr;
+
+    @ApiModelProperty("房屋列表")
+    private List<ComMngHouseVo> houseList;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationDisabilityExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationDisabilityExcelVO.java
new file mode 100644
index 0000000..0dfba82
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationDisabilityExcelVO.java
@@ -0,0 +1,115 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+import java.util.List;
+
+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;
+
+/**
+ * @description: 批量导入残疾人
+ * @author: txb
+ */
+@Data
+@EncryptDecryptClass
+public class ComMngPopulationDisabilityExcelVO implements Serializable {
+
+    @ExcelProperty(value = "序号", index = 0)
+    private String serialNumber;
+
+    @ExcelProperty(value = "姓名", index = 1)
+    private String name;
+
+    @ExcelProperty(value = "身份证号码", index = 2)
+    @EncryptDecryptField
+    private String cardNo;
+
+    @ExcelProperty(value = "办证状况", index = 3)
+    private String certificateSituation;
+
+    @ExcelProperty(value = "文化程度", index = 4)
+    private Integer cultureLevel;
+
+    @ExcelProperty(value = "民族", index = 5)
+    private String nation;
+
+    @ExcelProperty(value = "残疾类别", index = 6)
+    private String disType;
+
+    @ExcelProperty(value = "残疾等级", index = 7)
+    private String disLevel;
+
+    @ExcelProperty(value = "联系电话", index = 8)
+    private String phone;
+
+    @ExcelProperty(value = "街/路/巷", index = 9)
+    private String road;
+
+    @ExcelProperty(value = "小区号", index = 10)
+    private String doorNo;
+
+    @ExcelProperty(value = "楼排号", index = 11)
+    private String floor;
+
+    @ExcelProperty(value = "单元号", index = 12)
+    private String unitNo;
+
+    @ExcelProperty(value = "户室(房间号)", index = 13)
+    private String houseNo;
+
+    @ExcelProperty(value = "是否租住", index = 14)
+    private Integer isRent;
+
+    @ExcelProperty(value = "房屋状态(1.自住 2.租住 3.其他)", index = 15)
+    private Integer houseStatus;
+
+    @ExcelProperty(value = "房屋用途(1.住宅 2.公寓 3.宿舍 4.仓库 5.其他)", index = 16)
+    private Integer housePurpose;
+
+    @ExcelProperty(value = "管控状态(1.常规 2.关注 3.管控)", index = 17)
+    private Integer controlStatus;
+
+    @ExcelProperty(value = "外地/本地(1.本地  2.外地)", index = 18)
+    private Integer outOrLocal;
+
+    @ExcelProperty(value = "户口所在地", index = 19)
+    private String censusRegister;
+
+    @ExcelProperty(value = "备注", index = 20)
+    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/ComMngPopulationDisabilityMistakeExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationDisabilityMistakeExcelVO.java
new file mode 100644
index 0000000..e155ded
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationDisabilityMistakeExcelVO.java
@@ -0,0 +1,85 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+
+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;
+
+/**
+ * @description: 批量导入残疾人
+ * @author: txb
+ */
+@Data
+@EncryptDecryptClass
+public class ComMngPopulationDisabilityMistakeExcelVO implements Serializable {
+
+    @ExcelProperty(value = "序号", index = 0)
+    private String serialNumber;
+
+    @ExcelProperty(value = "姓名", index = 1)
+    private String name;
+
+    @ExcelProperty(value = "身份证号码", index = 2)
+    @EncryptDecryptField
+    private String cardNo;
+
+    @ExcelProperty(value = "办证状况", index = 3)
+    private String certificateSituation;
+
+    @ExcelProperty(value = "文化程度", index = 4)
+    private String cultureLevel;
+
+    @ExcelProperty(value = "民族", index = 5)
+    private String nation;
+
+    @ExcelProperty(value = "残疾类别", index = 6)
+    private String disType;
+
+    @ExcelProperty(value = "残疾等级", index = 7)
+    private String disLevel;
+
+    @ExcelProperty(value = "联系电话", index = 8)
+    private String phone;
+
+    @ExcelProperty(value = "街/路/巷", index = 9)
+    private String road;
+
+    @ExcelProperty(value = "小区号", index = 10)
+    private String doorNo;
+
+    @ExcelProperty(value = "楼排号", index = 11)
+    private String floor;
+
+    @ExcelProperty(value = "单元号", index = 12)
+    private String unitNo;
+
+    @ExcelProperty(value = "户室(房间号)", index = 13)
+    private String houseNo;
+
+    @ExcelProperty(value = "是否租住", index = 14)
+    private String isRent;
+
+    @ExcelProperty(value = "房屋状态(1.自住 2.租住 3.其他)", index = 15)
+    private String houseStatus;
+
+    @ExcelProperty(value = "房屋用途(1.住宅 2.公寓 3.宿舍 4.仓库 5.其他)", index = 16)
+    private String housePurpose;
+
+    @ExcelProperty(value = "管控状态(1.常规 2.关注 3.管控)", index = 17)
+    private String controlStatus;
+
+    @ExcelProperty(value = "外地/本地(1.本地  2.外地)", index = 18)
+    private String outOrLocal;
+
+    @ExcelProperty(value = "户口所在地", index = 19)
+    private String censusRegister;
+
+    @ExcelProperty(value = "备注", index = 20)
+    private String remark;
+
+    @ExcelProperty(value = "错误信息", index = 21)
+    private String mistake;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationDrugExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationDrugExcelVO.java
new file mode 100644
index 0000000..2f01147
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationDrugExcelVO.java
@@ -0,0 +1,138 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+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;
+
+/**
+ * @description: 批量导入吸毒人员
+ * @author: txb
+ */
+@Data
+@EncryptDecryptClass
+public class ComMngPopulationDrugExcelVO implements Serializable {
+
+    @ExcelProperty(value = "序号", index = 0)
+    private String serialNumber;
+
+    @ExcelProperty(value = "姓名", index = 1)
+    private String name;
+
+    @ExcelProperty(value = "身份证号码", index = 3)
+    @EncryptDecryptField
+    private String cardNo;
+
+    @ExcelProperty(value = "民族", index = 2)
+    private String nation;
+
+    @ExcelProperty(value = "联系电话", index = 4)
+    private String phone;
+
+    @ExcelProperty(value = "是否租住", index = 10)
+    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 = 11)
+    private Integer houseStatus;
+
+    @ExcelProperty(value = "房屋用途(1.住宅 2.公寓 3.宿舍 4.仓库 5.其他)", index = 12)
+    private Integer housePurpose;
+
+    @ExcelProperty(value = "管控状态(1.常规 2.关注 3.管控)", index = 13)
+    private Integer controlStatus;
+
+    @ExcelProperty(value = "外地/本地(1.本地  2.外地)", index = 14)
+    private Integer outOrLocal;
+
+    @ExcelProperty(value = "户口所在地", index = 15)
+    private String censusRegister;
+
+    @ExcelProperty(value = "初次发现日期", index = 16)
+    private Date firstDate;
+
+    @ExcelProperty(value = "管控情况", index = 17)
+    private String controlSituation;
+
+    @ExcelProperty(value = "管控人姓名", index = 18)
+    private String controlPerson;
+
+    @ExcelProperty(value = "管控人联系方式", index = 19)
+    private String controlPersonPhone;
+
+    @ExcelProperty(value = "帮扶情况", index = 20)
+    private String helpSituation;
+
+    @ExcelProperty(value = "帮扶人姓名", index = 21)
+    private String helpPerson;
+
+    @ExcelProperty(value = "帮扶人联系方式", index = 22)
+    private String helpPersonPhone;
+
+    @ExcelProperty(value = "吸毒原因", index = 23)
+    private String drugReason;
+
+    @ExcelProperty(value = "吸毒后果", index = 24)
+    private String drugResult;
+
+    @ExcelProperty(value = "有无犯罪史", index = 25)
+    private String haveCrime;
+
+    @ExcelProperty(value = "违法犯罪情况", index = 26)
+    private String crimeSutiation;
+
+    @ExcelProperty(value = "备注", index = 27)
+    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/ComMngPopulationDrugMistakeExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationDrugMistakeExcelVO.java
new file mode 100644
index 0000000..fc01eb1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationDrugMistakeExcelVO.java
@@ -0,0 +1,106 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+
+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;
+
+/**
+ * @description: 批量导入吸毒人员
+ * @author: txb
+ */
+@Data
+@EncryptDecryptClass
+public class ComMngPopulationDrugMistakeExcelVO implements Serializable {
+
+    @ExcelProperty(value = "序号", index = 0)
+    private String serialNumber;
+
+    @ExcelProperty(value = "姓名", index = 1)
+    private String name;
+
+    @ExcelProperty(value = "身份证号码", index = 3)
+    @EncryptDecryptField
+    private String cardNo;
+
+    @ExcelProperty(value = "民族", index = 2)
+    private String nation;
+
+    @ExcelProperty(value = "联系电话", index = 4)
+    private String phone;
+
+    @ExcelProperty(value = "是否租住", index = 10)
+    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 = 11)
+    private String houseStatus;
+
+    @ExcelProperty(value = "房屋用途(1.住宅 2.公寓 3.宿舍 4.仓库 5.其他)", index = 12)
+    private String housePurpose;
+
+    @ExcelProperty(value = "管控状态(1.常规 2.关注 3.管控)", index = 13)
+    private String controlStatus;
+
+    @ExcelProperty(value = "外地/本地(1.本地  2.外地)", index = 14)
+    private String outOrLocal;
+
+    @ExcelProperty(value = "户口所在地", index = 15)
+    private String censusRegister;
+
+    @ExcelProperty(value = "初次发现日期", index = 16)
+    private String firstDate;
+
+    @ExcelProperty(value = "管控情况", index = 17)
+    private String controlSituation;
+
+    @ExcelProperty(value = "管控人姓名", index = 18)
+    private String controlPerson;
+
+    @ExcelProperty(value = "管控人联系方式", index = 19)
+    private String controlPersonPhone;
+
+    @ExcelProperty(value = "帮扶情况", index = 20)
+    private String helpSituation;
+
+    @ExcelProperty(value = "帮扶人姓名", index = 21)
+    private String helpPerson;
+
+    @ExcelProperty(value = "帮扶人联系方式", index = 22)
+    private String helpPersonPhone;
+
+    @ExcelProperty(value = "吸毒原因", index = 23)
+    private String drugReason;
+
+    @ExcelProperty(value = "吸毒后果", index = 24)
+    private String drugResult;
+
+    @ExcelProperty(value = "有无犯罪史", index = 25)
+    private String haveCrime;
+
+    @ExcelProperty(value = "违法犯罪情况", index = 26)
+    private String crimeSutiation;
+
+    @ExcelProperty(value = "备注", index = 27)
+    private String remark;
+
+    @ExcelProperty(value = "错误信息", index = 28)
+    private String mistake;
+}
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/ComMngPopulationExcelVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationExcelVo.java
new file mode 100644
index 0000000..627d12c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationExcelVo.java
@@ -0,0 +1,61 @@
+package com.panzhihua.common.model.vos.community;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class ComMngPopulationExcelVo {
+
+    @ExcelProperty(value = "姓名", index = 0)
+    private String name;
+
+    @ExcelProperty(value = "身份证号码", index = 1)
+    private String cardNo;
+
+    @ExcelProperty(value = "人员类型", index = 2)
+    private String personType;
+
+    @ExcelProperty(value = "人员标签", index = 3)
+    private String tags;
+
+    @ExcelProperty(value = "居住地址", index = 4)
+    private String address;
+
+    @ExcelProperty(value = "性别", index = 5)
+    private String sex;
+
+    @ExcelProperty(value = "民族", index = 6)
+    private String nation;
+
+    @ExcelProperty(value = "政治面貌", index = 7)
+    private String politicalOutlook;
+
+    @ExcelProperty(value = "出生年月日", index = 8)
+    private String birthday;
+
+    @ExcelProperty(value = "年龄", index = 9)
+    private Integer age;
+
+    @ExcelProperty(value = "联系方式", index = 10)
+    private String phone;
+
+    @ExcelProperty(value = "籍贯", index = 11)
+    private String nativePlace;
+
+    @ExcelProperty(value = "本地外地", index = 12)
+    private String outOrLacal;
+
+    @ExcelProperty(value = "文化程度", index = 13)
+    private String cultureLevel;
+
+    @ExcelProperty(value = "婚姻状况", index = 14)
+    private String marriage;
+
+    @ExcelProperty(value = "健康状况", index = 15)
+    private String healthy;
+
+    @ExcelProperty(value = "工作单位", index = 16)
+    private String workCompany;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationHouseAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationHouseAdminVO.java
new file mode 100644
index 0000000..65f0881
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationHouseAdminVO.java
@@ -0,0 +1,63 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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;
+
+/**
+ * 实有房屋Vo
+ */
+@Data
+@ApiModel("实有房屋")
+public class ComMngPopulationHouseAdminVO {
+
+    /**
+     * 实有房屋id
+     */
+    @ApiModelProperty("实有房屋id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+    /**
+     * 房屋地址
+     */
+    @ApiModelProperty("房屋地址")
+    private String address;
+    /**
+     * 街/路/巷
+     */
+    @ApiModelProperty("街/路/巷")
+    private String alley;
+    /**
+     * 门牌号
+     */
+    @ApiModelProperty("门牌号")
+    private String houseNum;
+    /**
+     * 小区/组
+     */
+    @ApiModelProperty("小区/组")
+    private String groupAt;
+
+    @ApiModelProperty("房屋状态(1.自住 2.租住 3.其他)")
+    private Integer status;
+
+    @ApiModelProperty("房屋用途(1.住宅 2.公寓 3.宿舍 4.仓库 5.其他)")
+    private Integer purpose;
+
+    @ApiModelProperty("管控状态(1.常规 2.关注 3.管控)")
+    private Integer controlStatus;
+
+    @ApiModelProperty("空户(1.是 2.否)")
+    private Integer isEmpty;
+
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationHouseDetailAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationHouseDetailAdminVO.java
new file mode 100644
index 0000000..ea2f6ab
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationHouseDetailAdminVO.java
@@ -0,0 +1,59 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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;
+
+/**
+ * 实有房屋Vo
+ */
+@Data
+@ApiModel("实有房屋详情")
+public class ComMngPopulationHouseDetailAdminVO {
+
+    /**
+     * 实有房屋id
+     */
+    @JsonSerialize(using = ToStringSerializer.class)
+    @ApiModelProperty("实有房屋id")
+    private Long id;
+    /**
+     * 房屋地址
+     */
+    @ApiModelProperty("房屋地址")
+    private String address;
+
+    @ApiModelProperty("房屋状态(1.自住 2.租住 3.其他)")
+    private Integer status;
+
+    @ApiModelProperty("房屋用途(1.住宅 2.公寓 3.宿舍 4.仓库 5.其他)")
+    private Integer purpose;
+
+    @ApiModelProperty("管控状态(1.常规 2.关注 3.管控)")
+    private Integer controlStatus;
+
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAt;
+
+    @ApiModelProperty("建筑面积")
+    private BigDecimal constructArea;
+
+    @ApiModelProperty("建筑用途")
+    private String constructPurpose;
+
+    @ApiModelProperty("房屋编号")
+    private String code;
+
+    @ApiModelProperty("实有房屋住户信息")
+    private List<ComMngPopulationHouseUserAdminVO> houseUserList;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationHouseTotalVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationHouseTotalVO.java
new file mode 100644
index 0000000..59f1f67
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationHouseTotalVO.java
@@ -0,0 +1,35 @@
+package com.panzhihua.common.model.vos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 实有房屋统计返回参数
+ */
+@Data
+@ApiModel("实有房屋统计返回参数")
+public class ComMngPopulationHouseTotalVO {
+
+    /**
+     * 房屋数量
+     */
+    @ApiModelProperty("房屋数量")
+    private Integer houseTotal = 0;
+    /**
+     * 空房屋数量
+     */
+    @ApiModelProperty("空房屋数量")
+    private Integer emptyTotal = 0;
+    /**
+     * 关注人口数量
+     */
+    @ApiModelProperty("关注人口数量")
+    private Integer followTotal = 0;
+    /**
+     * 管控人口数量
+     */
+    @ApiModelProperty("管控人口数量")
+    private Integer controlTotal = 0;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationHouseUserAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationHouseUserAdminVO.java
new file mode 100644
index 0000000..f9938f6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationHouseUserAdminVO.java
@@ -0,0 +1,34 @@
+package com.panzhihua.common.model.vos.community;
+
+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;
+
+/**
+ * 实有房屋内人口信息Vo
+ */
+@Data
+@ApiModel("实有房屋内住户信息")
+@EncryptDecryptClass
+public class ComMngPopulationHouseUserAdminVO {
+
+    @ApiModelProperty("实有人口id")
+    private String id;
+
+    @ApiModelProperty("姓名")
+    private String name;
+
+    @ApiModelProperty("身份证号码")
+    @EncryptDecryptField
+    private String cardNo;
+
+    @ApiModelProperty("手机号")
+    @EncryptDecryptField
+    private String phone;
+
+    @ApiModelProperty("住户来源(1.系统录入 2.小程序登记)")
+    private Integer source = 1;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationImportErrorVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationImportErrorVO.java
new file mode 100644
index 0000000..a383f61
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationImportErrorVO.java
@@ -0,0 +1,60 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+
+import lombok.Data;
+
+@Data
+public class ComMngPopulationImportErrorVO implements Serializable {
+
+//    @ExcelProperty(value = "楼房属性", index = 0)
+//    private String useType;
+//    @ExcelProperty(value = "建筑类型", index = 1)
+//    private String buildType;
+
+    @ExcelProperty(value = "街路巷", index = 0)
+    private String alley;
+
+    @ExcelProperty(value = "小区名称", index = 1)
+    private String villageName;
+
+    @ExcelProperty(value = "街路巷号", index = 2)
+    private String doorNo;
+
+    @ExcelProperty(value = "楼栋号", index = 3)
+    private String name;
+
+//    @ExcelProperty(value = "单元数", index = 6)
+//    private Integer unitTotal;
+//
+//    @ExcelProperty(value = "楼层数", index = 7)
+//    private Integer buildFloorSum;
+//
+//    @ExcelProperty(value = "每层户数", index = 8)
+//    private Integer everyFloorSum;
+//
+//    @ExcelProperty(value = "总户数", index = 9)
+//    private Integer buildUserSum;
+//
+//    @ExcelProperty(value = "电梯", index = 10)
+//    private Integer elevatorTotal;
+//
+//    @ExcelProperty(value = "物业公司名称", index = 11)
+//    private String propertyCompanyName;
+//
+//    @ExcelProperty(value = "建筑时间", index = 12)
+//    private Date buildDate;
+//
+//    @ExcelProperty(value = "备注", index = 13)
+//    private String remark;
+//
+//    @ExcelProperty(value = "网格划分", index = 14)
+//    private String gridId;
+
+    @ExcelProperty(value = "错误原因", index = 4)
+    private String errorMsg;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationKeyExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationKeyExcelVO.java
new file mode 100644
index 0000000..59c5309
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationKeyExcelVO.java
@@ -0,0 +1,106 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+import java.util.List;
+
+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;
+
+/**
+ * @description: 批量导入重点上访人员
+ * @author: txb
+ */
+@Data
+@EncryptDecryptClass
+public class ComMngPopulationKeyExcelVO implements Serializable {
+
+    @ExcelProperty(value = "序号", index = 0)
+    private String serialNumber;
+
+    @ExcelProperty(value = "姓名", index = 1)
+    private String name;
+
+    @ExcelProperty(value = "民族", index = 2)
+    private String nation;
+
+    @ExcelProperty(value = "身份证号码", index = 3)
+    @EncryptDecryptField
+    private String cardNo;
+
+    @ExcelProperty(value = "联系电话", index = 4)
+    private String phone;
+
+    @ExcelProperty(value = "籍贯", index = 5)
+    private String nativePlace;
+
+    @ExcelProperty(value = "街/路/巷", index = 6)
+    private String road;
+
+    @ExcelProperty(value = "小区号", index = 7)
+    private String doorNo;
+
+    @ExcelProperty(value = "楼排号", index = 8)
+    private String floor;
+
+    @ExcelProperty(value = "单元号", index = 9)
+    private String unitNo;
+
+    @ExcelProperty(value = "户室(房间号)", index = 10)
+    private String houseNo;
+
+    @ExcelProperty(value = "是否租住", index = 11)
+    private Integer isRent;
+
+    @ExcelProperty(value = "房屋状态(1.自住 2.租住 3.其他)", index = 12)
+    private Integer houseStatus;
+
+    @ExcelProperty(value = "房屋用途(1.住宅 2.公寓 3.宿舍 4.仓库 5.其他)", index = 13)
+    private Integer housePurpose;
+
+    @ExcelProperty(value = "管控状态(1.常规 2.关注 3.管控)", index = 14)
+    private Integer controlStatus;
+
+    @ExcelProperty(value = "外地/本地(1.本地  2.外地)", index = 15)
+    private Integer outOrLocal;
+
+    @ExcelProperty(value = "户口所在地", index = 16)
+    private String censusRegister;
+
+    @ExcelProperty(value = "备注", index = 17)
+    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/ComMngPopulationKeyMistakeExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationKeyMistakeExcelVO.java
new file mode 100644
index 0000000..ca540df
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationKeyMistakeExcelVO.java
@@ -0,0 +1,76 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+
+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;
+
+/**
+ * @description: 批量导入重点上访人员
+ * @author: txb
+ */
+@Data
+@EncryptDecryptClass
+public class ComMngPopulationKeyMistakeExcelVO implements Serializable {
+
+    @ExcelProperty(value = "序号", index = 0)
+    private String serialNumber;
+
+    @ExcelProperty(value = "姓名", index = 1)
+    private String name;
+
+    @ExcelProperty(value = "民族", index = 2)
+    private String nation;
+
+    @ExcelProperty(value = "身份证号码", index = 3)
+    @EncryptDecryptField
+    private String cardNo;
+
+    @ExcelProperty(value = "联系电话", index = 4)
+    private String phone;
+
+    @ExcelProperty(value = "籍贯", index = 5)
+    private String nativePlace;
+
+    @ExcelProperty(value = "街/路/巷", index = 6)
+    private String road;
+
+    @ExcelProperty(value = "小区号", index = 7)
+    private String doorNo;
+
+    @ExcelProperty(value = "楼排号", index = 8)
+    private String floor;
+
+    @ExcelProperty(value = "单元号", index = 9)
+    private String unitNo;
+
+    @ExcelProperty(value = "户室(房间号)", index = 10)
+    private String houseNo;
+
+    @ExcelProperty(value = "是否租住", index = 11)
+    private String isRent;
+
+    @ExcelProperty(value = "房屋状态(1.自住 2.租住 3.其他)", index = 12)
+    private String houseStatus;
+
+    @ExcelProperty(value = "房屋用途(1.住宅 2.公寓 3.宿舍 4.仓库 5.其他)", index = 13)
+    private String housePurpose;
+
+    @ExcelProperty(value = "管控状态(1.常规 2.关注 3.管控)", index = 14)
+    private String controlStatus;
+
+    @ExcelProperty(value = "外地/本地(1.本地  2.外地)", index = 15)
+    private String outOrLocal;
+
+    @ExcelProperty(value = "户口所在地", index = 16)
+    private String censusRegister;
+
+    @ExcelProperty(value = "备注", index = 17)
+    private String remark;
+
+    @ExcelProperty(value = "错误信息", index = 18)
+    private String mistake;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationLowSecurityExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationLowSecurityExcelVO.java
new file mode 100644
index 0000000..b9ba6e7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationLowSecurityExcelVO.java
@@ -0,0 +1,193 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+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;
+
+/**
+ * @description: 批量导入低保户
+ * @author: txb
+ */
+@Data
+@EncryptDecryptClass
+public class ComMngPopulationLowSecurityExcelVO implements Serializable {
+
+    @ExcelProperty(value = "序号", index = 0)
+    private String serialNumber;
+
+    @ExcelProperty(value = "姓名", index = 1)
+    private String name;
+
+    @ExcelProperty(value = "身份证号码", index = 2)
+    @EncryptDecryptField
+    private String cardNo;
+
+    @ExcelProperty(value = "联系电话", index = 3)
+    private String phone;
+
+    @ExcelProperty(value = "地区", index = 4)
+    private String region;
+
+    @ExcelProperty(value = "家庭编码", index = 5)
+    private String familyCode;
+
+    @ExcelProperty(value = "组名称", index = 6)
+    private String groupName;
+
+    @ExcelProperty(value = "分类救助类别", index = 7)
+    private String classifiedRescueCategory;
+
+    @ExcelProperty(value = "申请日期", index = 8)
+    private Date applyDate;
+
+    @ExcelProperty(value = "户主姓名", index = 9)
+    private String houseHolderName;
+
+    @ExcelProperty(value = "户主身份证", index = 10)
+    private String houseHolderCardNo;
+
+    @ExcelProperty(value = "户主编码", index = 11)
+    private String houseHolderCode;
+
+    @ExcelProperty(value = "街/路/巷", index = 12)
+    private String road;
+
+    @ExcelProperty(value = "小区号", index = 13)
+    private String doorNo;
+
+    @ExcelProperty(value = "楼排号", index = 14)
+    private String floor;
+
+    @ExcelProperty(value = "单元号", index = 15)
+    private String unitNo;
+
+    @ExcelProperty(value = "户室(房间号)", index = 16)
+    private String houseNo;
+
+    @ExcelProperty(value = "是否租住", index = 17)
+    private Integer isRent;
+
+    @ExcelProperty(value = "房屋状态(1.自住 2.租住 3.其他)", index = 18)
+    private Integer houseStatus;
+
+    @ExcelProperty(value = "房屋用途(1.住宅 2.公寓 3.宿舍 4.仓库 5.其他)", index = 19)
+    private Integer housePurpose;
+
+    @ExcelProperty(value = "管控状态(1.常规 2.关注 3.管控)", index = 20)
+    private Integer controlStatus;
+
+    @ExcelProperty(value = "外地/本地(1.本地  2.外地)", index = 21)
+    private Integer outOrLocal;
+
+    @ExcelProperty(value = "户口所在地", index = 22)
+    private String censusRegister;
+
+    @ExcelProperty(value = "居住地邮编", index = 23)
+    private String residencePostalCode;
+
+    @ExcelProperty(value = "救助证号", index = 24)
+    private String salvageCertificateNo;
+
+    @ExcelProperty(value = "保障人口数", index = 25)
+    private Integer guaranteedPopulationNumber;
+
+    @ExcelProperty(value = "家庭人口数", index = 26)
+    private Integer familyPopulationNumber;
+
+    @ExcelProperty(value = "开户人", index = 27)
+    private String accountPerson;
+
+    @ExcelProperty(value = "开户银行", index = 28)
+    private String accountBank;
+
+    @ExcelProperty(value = "开户人身份证号", index = 29)
+    private String accountCardNo;
+
+    @ExcelProperty(value = "银行账号", index = 30)
+    private String bankAccount;
+
+    @ExcelProperty(value = "供养机构", index = 31)
+    private String supportInstitutions;
+
+    @ExcelProperty(value = "资金发放方式", index = 32)
+    private String distributionMethod;
+
+    @ExcelProperty(value = "保障金额", index = 33)
+    private BigDecimal guaranteedAmount;
+
+    @ExcelProperty(value = "调剂金额", index = 34)
+    private BigDecimal reallocationAmount;
+
+    @ExcelProperty(value = "差额救助金额", index = 35)
+    private BigDecimal differenceReliefAmount;
+
+    @ExcelProperty(value = "分类施保金额", index = 36)
+    private BigDecimal classifiedInsuredAmount;
+
+    @ExcelProperty(value = "家庭月总收入", index = 37)
+    private BigDecimal totalMonthlyFamilyIncome;
+
+    @ExcelProperty(value = "家庭月均收入", index = 38)
+    private BigDecimal averageMonthlyFamilyIncome;
+
+    @ExcelProperty(value = "家庭月支出", index = 39)
+    private BigDecimal totalMonthlyFamilyExpenditure;
+
+    @ExcelProperty(value = "经度", index = 40)
+    private String lng;
+
+    @ExcelProperty(value = "纬度", index = 41)
+    private String lat;
+
+    @ExcelProperty(value = "始发年月", index = 42)
+    private String originateDate;
+
+    @ExcelProperty(value = "护理费", index = 43)
+    private BigDecimal nursingFee;
+
+    @ExcelProperty(value = "申请理由", index = 44)
+    private String applyReason;
+
+    @ExcelProperty(value = "审核意见", index = 45)
+    private String reviewComment;
+
+    /**
+     * 去重字段,使用(姓名+身份证号+街路巷+小区号+楼牌号+单元号+户室)组合字段进行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/ComMngPopulationLowSecurityMistakeExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationLowSecurityMistakeExcelVO.java
new file mode 100644
index 0000000..2fd18b6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationLowSecurityMistakeExcelVO.java
@@ -0,0 +1,160 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+
+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;
+
+/**
+ * @description: 批量导入低保户
+ * @author: txb
+ */
+@Data
+@EncryptDecryptClass
+public class ComMngPopulationLowSecurityMistakeExcelVO implements Serializable {
+
+    @ExcelProperty(value = "序号", index = 0)
+    private String serialNumber;
+
+    @ExcelProperty(value = "姓名", index = 1)
+    private String name;
+
+    @ExcelProperty(value = "身份证号码", index = 2)
+    @EncryptDecryptField
+    private String cardNo;
+
+    @ExcelProperty(value = "联系电话", index = 3)
+    private String phone;
+
+    @ExcelProperty(value = "地区", index = 4)
+    private String region;
+
+    @ExcelProperty(value = "家庭编码", index = 5)
+    private String familyCode;
+
+    @ExcelProperty(value = "组名称", index = 6)
+    private String groupName;
+
+    @ExcelProperty(value = "分类救助类别", index = 7)
+    private String classifiedRescueCategory;
+
+    @ExcelProperty(value = "申请日期", index = 8)
+    private String applyDate;
+
+    @ExcelProperty(value = "户主姓名", index = 9)
+    private String houseHolderName;
+
+    @ExcelProperty(value = "户主身份证", index = 10)
+    private String houseHolderCardNo;
+
+    @ExcelProperty(value = "户主编码", index = 11)
+    private String houseHolderCode;
+
+    @ExcelProperty(value = "街/路/巷", index = 12)
+    private String road;
+
+    @ExcelProperty(value = "小区号", index = 13)
+    private String doorNo;
+
+    @ExcelProperty(value = "楼排号", index = 14)
+    private String floor;
+
+    @ExcelProperty(value = "单元号", index = 15)
+    private String unitNo;
+
+    @ExcelProperty(value = "户室(房间号)", index = 16)
+    private String houseNo;
+
+    @ExcelProperty(value = "是否租住", index = 17)
+    private String isRent;
+
+    @ExcelProperty(value = "房屋状态(1.自住 2.租住 3.其他)", index = 18)
+    private String houseStatus;
+
+    @ExcelProperty(value = "房屋用途(1.住宅 2.公寓 3.宿舍 4.仓库 5.其他)", index = 19)
+    private String housePurpose;
+
+    @ExcelProperty(value = "管控状态(1.常规 2.关注 3.管控)", index = 20)
+    private String controlStatus;
+
+    @ExcelProperty(value = "外地/本地(1.本地  2.外地)", index = 21)
+    private String outOrLocal;
+
+    @ExcelProperty(value = "户口所在地", index = 22)
+    private String censusRegister;
+
+    @ExcelProperty(value = "居住地邮编", index = 23)
+    private String residencePostalCode;
+
+    @ExcelProperty(value = "救助证号", index = 24)
+    private String salvageCertificateNo;
+
+    @ExcelProperty(value = "保障人口数", index = 25)
+    private String guaranteedPopulationNumber;
+
+    @ExcelProperty(value = "家庭人口数", index = 26)
+    private String familyPopulationNumber;
+
+    @ExcelProperty(value = "开户人", index = 27)
+    private String accountPerson;
+
+    @ExcelProperty(value = "开户银行", index = 28)
+    private String accountBank;
+
+    @ExcelProperty(value = "开户人身份证号", index = 29)
+    private String accountCardNo;
+
+    @ExcelProperty(value = "银行账号", index = 30)
+    private String bankAccount;
+
+    @ExcelProperty(value = "供养机构", index = 31)
+    private String supportInstitutions;
+
+    @ExcelProperty(value = "资金发放方式", index = 32)
+    private String distributionMethod;
+
+    @ExcelProperty(value = "保障金额", index = 33)
+    private String guaranteedAmount;
+
+    @ExcelProperty(value = "调剂金额", index = 34)
+    private String reallocationAmount;
+
+    @ExcelProperty(value = "差额救助金额", index = 35)
+    private String differenceReliefAmount;
+
+    @ExcelProperty(value = "分类施保金额", index = 36)
+    private String classifiedInsuredAmount;
+
+    @ExcelProperty(value = "家庭月总收入", index = 37)
+    private String totalMonthlyFamilyIncome;
+
+    @ExcelProperty(value = "家庭月均收入", index = 38)
+    private String averageMonthlyFamilyIncome;
+
+    @ExcelProperty(value = "家庭月支出", index = 39)
+    private String totalMonthlyFamilyExpenditure;
+
+    @ExcelProperty(value = "经度", index = 40)
+    private String lng;
+
+    @ExcelProperty(value = "纬度", index = 41)
+    private String lat;
+
+    @ExcelProperty(value = "始发年月", index = 42)
+    private String originateDate;
+
+    @ExcelProperty(value = "护理费", index = 43)
+    private String nursingFee;
+
+    @ExcelProperty(value = "申请理由", index = 44)
+    private String applyReason;
+
+    @ExcelProperty(value = "审核意见", index = 45)
+    private String reviewComment;
+
+    @ExcelProperty(value = "错误信息", index = 46)
+    private String mistake;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationMajorExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationMajorExcelVO.java
new file mode 100644
index 0000000..2d983e9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationMajorExcelVO.java
@@ -0,0 +1,140 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+import java.util.List;
+
+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;
+
+/**
+ * @description: 批量导入重精人员
+ * @author: txb
+ */
+@Data
+@EncryptDecryptClass
+public class ComMngPopulationMajorExcelVO implements Serializable {
+
+    @ExcelProperty(value = "序号", index = 0)
+    private String serialNumber;
+
+    @ExcelProperty(value = "姓名", index = 1)
+    private String name;
+
+    @ExcelProperty(value = "身份证号码", index = 2)
+    @EncryptDecryptField
+    private String cardNo;
+
+    @ExcelProperty(value = "街/路/巷", index = 3)
+    private String road;
+
+    @ExcelProperty(value = "小区号", index = 4)
+    private String doorNo;
+
+    @ExcelProperty(value = "楼排号", index = 5)
+    private String floor;
+
+    @ExcelProperty(value = "单元号", index = 6)
+    private String unitNo;
+
+    @ExcelProperty(value = "户室(房间号)", index = 7)
+    private String houseNo;
+
+    @ExcelProperty(value = "是否租住", index = 8)
+    private Integer isRent;
+
+    @ExcelProperty(value = "房屋状态(1.自住 2.租住 3.其他)", index = 9)
+    private Integer houseStatus;
+
+    @ExcelProperty(value = "房屋用途(1.住宅 2.公寓 3.宿舍 4.仓库 5.其他)", index = 10)
+    private Integer housePurpose;
+
+    @ExcelProperty(value = "管控状态(1.常规 2.关注 3.管控)", index = 11)
+    private Integer controlStatus;
+
+    @ExcelProperty(value = "外地/本地(1.本地  2.外地)", index = 12)
+    private Integer outOrLocal;
+
+    @ExcelProperty(value = "户口所在地", index = 13)
+    private String censusRegister;
+
+    @ExcelProperty(value = "文化程度(1.小学 2.初中 3.高中 4.中专 5.大专 6.本科 7.硕士 8.博士 9.其他)", index = 14)
+    private Integer cultureLevel;
+
+    @ExcelProperty(value = "经济状况", index = 15)
+    private String economicCondition;
+
+    @ExcelProperty(value = "人员类型", index = 16)
+    private String personType;
+
+    @ExcelProperty(value = "家庭情况", index = 17)
+    private String familySituation;
+
+    @ExcelProperty(value = "监护人姓名", index = 18)
+    private String custodyPerson;
+
+    @ExcelProperty(value = "与监护人关系", index = 19)
+    private String custodyRelation;
+
+    @ExcelProperty(value = "监护人公民身份号码", index = 20)
+    private String custodyCardNo;
+
+    @ExcelProperty(value = "监护人联系方式", index = 21)
+    private String custodyPersonPhone;
+
+    @ExcelProperty(value = "监护人居住详址", index = 22)
+    private String custodyAddress;
+
+    @ExcelProperty(value = "帮扶人姓名", index = 23)
+    private String helpPerson;
+
+    @ExcelProperty(value = "帮扶人联系方式", index = 24)
+    private String helpPersonPhone;
+
+    @ExcelProperty(value = "帮扶手段", index = 25)
+    private String helpMethod;
+
+    @ExcelProperty(value = "帮扶情况", index = 26)
+    private String helpSituation;
+
+    @ExcelProperty(value = "是否违法犯罪(1.是 0.否)", index = 27)
+    private Integer isCrime;
+
+    @ExcelProperty(value = "违法犯罪情况", index = 28)
+    private String crimeSutiation;
+
+    /**
+     * 去重字段,使用(姓名+身份证号+街路巷+小区号+楼牌号+单元号+户室)组合字段进行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/ComMngPopulationMajorMistakeExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationMajorMistakeExcelVO.java
new file mode 100644
index 0000000..8675783
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationMajorMistakeExcelVO.java
@@ -0,0 +1,109 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+
+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;
+
+/**
+ * @description: 批量导入重精人员
+ * @author: txb
+ */
+@Data
+@EncryptDecryptClass
+public class ComMngPopulationMajorMistakeExcelVO implements Serializable {
+
+    @ExcelProperty(value = "序号", index = 0)
+    private String serialNumber;
+
+    @ExcelProperty(value = "姓名", index = 1)
+    private String name;
+
+    @ExcelProperty(value = "身份证号码", index = 2)
+    @EncryptDecryptField
+    private String cardNo;
+
+    @ExcelProperty(value = "街/路/巷", index = 3)
+    private String road;
+
+    @ExcelProperty(value = "小区号", index = 4)
+    private String doorNo;
+
+    @ExcelProperty(value = "楼排号", index = 5)
+    private String floor;
+
+    @ExcelProperty(value = "单元号", index = 6)
+    private String unitNo;
+
+    @ExcelProperty(value = "户室(房间号)", index = 7)
+    private String houseNo;
+
+    @ExcelProperty(value = "是否租住", index = 8)
+    private String isRent;
+
+    @ExcelProperty(value = "房屋状态(1.自住 2.租住 3.其他)", index = 9)
+    private String houseStatus;
+
+    @ExcelProperty(value = "房屋用途(1.住宅 2.公寓 3.宿舍 4.仓库 5.其他)", index = 10)
+    private String housePurpose;
+
+    @ExcelProperty(value = "管控状态(1.常规 2.关注 3.管控)", index = 11)
+    private String controlStatus;
+
+    @ExcelProperty(value = "外地/本地(1.本地  2.外地)", index = 12)
+    private String outOrLocal;
+
+    @ExcelProperty(value = "户口所在地", index = 13)
+    private String censusRegister;
+
+    @ExcelProperty(value = "文化程度(1.小学 2.初中 3.高中 4.中专 5.大专 6.本科 7.硕士 8.博士 9.其他)", index = 14)
+    private String cultureLevel;
+
+    @ExcelProperty(value = "经济状况", index = 15)
+    private String economicCondition;
+
+    @ExcelProperty(value = "人员类型", index = 16)
+    private String personType;
+
+    @ExcelProperty(value = "家庭情况", index = 17)
+    private String familySituation;
+
+    @ExcelProperty(value = "监护人姓名", index = 18)
+    private String custodyPerson;
+
+    @ExcelProperty(value = "与监护人关系", index = 19)
+    private String custodyRelation;
+
+    @ExcelProperty(value = "监护人公民身份号码", index = 20)
+    private String custodyCardNo;
+
+    @ExcelProperty(value = "监护人联系方式", index = 21)
+    private String custodyPersonPhone;
+
+    @ExcelProperty(value = "监护人居住详址", index = 22)
+    private String custodyAddress;
+
+    @ExcelProperty(value = "帮扶人姓名", index = 23)
+    private String helpPerson;
+
+    @ExcelProperty(value = "帮扶人联系方式", index = 24)
+    private String helpPersonPhone;
+
+    @ExcelProperty(value = "帮扶手段", index = 25)
+    private String helpMethod;
+
+    @ExcelProperty(value = "帮扶情况", index = 26)
+    private String helpSituation;
+
+    @ExcelProperty(value = "是否违法犯罪(1.是 0.否)", index = 27)
+    private String isCrime;
+
+    @ExcelProperty(value = "违法犯罪情况", index = 28)
+    private String crimeSutiation;
+
+    @ExcelProperty(value = "错误信息", index = 29)
+    private String mistake;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationMistakeExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationMistakeExcelVO.java
new file mode 100644
index 0000000..866223b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationMistakeExcelVO.java
@@ -0,0 +1,144 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+
+import lombok.Data;
+
+/**
+ * @description: 批量导入实有人口
+ * @author: llming
+ */
+@Data
+public class ComMngPopulationMistakeExcelVO implements Serializable {
+
+    @ExcelProperty(value = "姓名", index = 0)
+    private String name;
+
+    @ExcelProperty(value = "身份证号", index = 1)
+    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 relation;
+
+    @ExcelProperty(value = "街/路/巷", index = 6)
+    private String road;
+
+    @ExcelProperty(value = "小区号(政府对于每个小区都有特定编号)", index = 7)
+    private String doorNo;
+
+    @ExcelProperty(value = "楼排号", index = 8)
+    private String floor;
+
+    @ExcelProperty(value = "单元号", index = 9)
+    private String unitNo;
+
+    @ExcelProperty(value = "户室(四位数表示。前两位楼层,后两位户号)", index = 10)
+    private String houseNo;
+
+    @ExcelProperty(value = "建筑用途", index = 11)
+    private String buildPurpose;
+
+    @ExcelProperty(value = "建筑面积", index = 12)
+    private String buildArea;
+
+    @ExcelProperty(value = "房屋状态(自住/租住/其他)", index = 13)
+    private String houseStatus;
+
+    @ExcelProperty(value = "房屋用途(住宅/公寓/宿舍/仓库/其他)", index = 14)
+    private String housePurpose;
+
+    @ExcelProperty(value = "管控状态(常规/关注/管控)", index = 15)
+    private String controlStatus;
+
+    @ExcelProperty(value = "联系方式", index = 16)
+    private String phone;
+
+    @ExcelProperty(value = "籍贯", index = 17)
+    private String nativePlace;
+
+    @ExcelProperty(value = "文化程度(1.小学 2.初中 3.高中 4.中专 5.大专 6.本科 7.硕士 8.博士 9.其他)", index = 18)
+    private String cultureLevel;
+
+    @ExcelProperty(value = "婚姻状况(1.未婚 2.已婚 3.离异 4.丧偶 5.分居 6.其他)", index = 19)
+    private String marriage;
+
+    @ExcelProperty(value = "健康状况", index = 20)
+    private String healthy;
+
+    @ExcelProperty(value = "血型", index = 21)
+    private String bloodType;
+
+    @ExcelProperty(value = "宗教信仰", index = 22)
+    private String religion;
+
+    @ExcelProperty(value = "职业", index = 23)
+    private String profession;
+
+    @ExcelProperty(value = "工作单位/学校", index = 24)
+    private String workCompany;
+
+    @ExcelProperty(value = "本地/外地", index = 25)
+    private String outOrLocal;
+
+    @ExcelProperty(value = "户口所在地", index = 26)
+    private String censusRegister;
+
+    @ExcelProperty(value = "是否居住地(是/否)", index = 27)
+    private String residence;
+
+    // @ExcelProperty(value = "居住地址", index = 28)
+    // private String address;
+
+    @ExcelProperty(value = "人员类型(户籍人口/留守人员/外地人员/境外人员/流动人口/常住人口/暂住人口)", index = 28)
+    private String personType;
+
+    @ExcelProperty(value = "国家", index = 29)
+    private String country;
+
+    @ExcelProperty(value = "离开日期(境外人员填写)", index = 30)
+    private String StringOfDeparture;
+
+    @ExcelProperty(value = "人员状态(正常/失联/出国)", index = 31)
+    private String personStatus;
+
+    @ExcelProperty(value = "月收入情况", index = 32)
+    private String monthlyIncome;
+
+    @ExcelProperty(value = "家庭情况", index = 33)
+    private String familyStatus;
+
+    @ExcelProperty(value = "来华目的(境外人员填写)", index = 34)
+    private String goalInChina;
+
+    @ExcelProperty(value = "抵达日期(境外人员填写)", index = 35)
+    private String StringOfArrival;
+
+    @ExcelProperty(value = "备注", index = 36)
+    private String remark;
+
+    @ExcelProperty(value = "证件照(人面像)照片", index = 37)
+    private String idCardPositive;
+
+    @ExcelProperty(value = "证件照(国徽面)照片", index = 38)
+    private String idCardBack;
+
+    @ExcelProperty(value = "户口本照片", index = 39)
+    private String houseHold;
+
+    @ExcelProperty(value = "是否死亡(是/否)", index = 40)
+    private String death;
+
+    @ExcelProperty(value = "错误信息", index = 41)
+    private String mistake;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationNoSecretVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationNoSecretVO.java
new file mode 100644
index 0000000..0d26392
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationNoSecretVO.java
@@ -0,0 +1,253 @@
+package com.panzhihua.common.model.vos.community;
+
+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 com.panzhihua.common.model.helper.sensitive.Sensitive;
+import com.panzhihua.common.model.helper.sensitive.SensitiveStrategy;
+import com.panzhihua.common.model.vos.user.ComHouseMemberVo;
+import com.panzhihua.common.model.vos.user.ComMngFamilyInfoVO;
+import com.panzhihua.common.model.vos.user.ComMngHouseVo;
+import com.panzhihua.common.model.vos.user.UserElectronicFileVO;
+import com.panzhihua.common.validated.AddGroup;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 实有人口Vo
+ */
+@Data
+@ApiModel("实有人口表")
+@EncryptDecryptClass
+public class ComMngPopulationNoSecretVO {
+
+    /**
+     * 自增 id
+     */
+    @ApiModelProperty("实有人口id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+    /**
+     * 街道id
+     */
+    @ApiModelProperty("街道id")
+    private Integer streetId;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty("社区id")
+    private Integer actId;
+    /**
+     * 小区id(实有房屋id)
+     */
+    @ApiModelProperty("小区id(实有房屋id)")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private long villageId;
+    /**
+     * 家庭成员(姓名)
+     */
+    @ApiModelProperty("家庭成员(姓名)")
+    @NotBlank(groups = {AddGroup.class}, message = "家庭成员(姓名)不可为空")
+    private String name;
+
+    @ApiModelProperty("性别(1.男 2.女 3.未知)")
+    @NotBlank(groups = {AddGroup.class}, message = "性别不可为空")
+    private Integer sex;
+
+    @ApiModelProperty("年龄")
+    @NotBlank(groups = {AddGroup.class}, message = "年龄不可为空")
+    private Integer age;
+
+    @ApiModelProperty("身份证号码")
+    private String cardNo;
+
+    @ApiModelProperty("出生年月")
+    private String birthday;
+
+    @ApiModelProperty("街路巷")
+    @NotBlank(groups = {AddGroup.class}, message = "街路巷不可为空")
+    private String road;
+
+    @ApiModelProperty("门牌号")
+    @NotBlank(groups = {AddGroup.class}, message = "门牌号不可为空")
+    private String doorNo;
+
+    @ApiModelProperty("楼排号")
+    @NotBlank(groups = {AddGroup.class}, message = "楼排号不可为空")
+    private String floor;
+
+    @ApiModelProperty("单元号")
+    @NotBlank(groups = {AddGroup.class}, message = "单元号不可为空")
+    private String unitNo;
+
+    @ApiModelProperty("户室(房间号)")
+    @NotBlank(groups = {AddGroup.class}, message = "户室(房间号)不可为空")
+    private String houseNo;
+
+    @ApiModelProperty("政治面貌(1.中共党员2.中共预备党员3.共青团员4.民革党员5.民盟盟员6.民建会员7.8.农工党党员9.致公党党员10.九三学社社员11.台盟盟员12.无党派人士13.群众)")
+    @NotBlank(groups = {AddGroup.class}, message = "政治面貌不可为空")
+    private Integer politicalOutlook;
+
+    @ApiModelProperty("政治面貌名称")
+    private String politicalOutlookName;
+
+    @ApiModelProperty("工作单位")
+    private String workCompany;
+
+    @ApiModelProperty("特殊情况")
+    private String specialSituation;
+
+    @ApiModelProperty("联系方式")
+    @NotBlank(groups = {AddGroup.class}, message = "联系方式不可为空")
+    @EncryptDecryptField
+    private String phone;
+
+    @ApiModelProperty("备注")
+    private String remark;
+
+    @ApiModelProperty("标签集合(多个标签以,隔开,如物业工作人员,物业")
+    private String label;
+
+    @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 updateAt;
+
+    @ApiModelProperty("籍贯")
+    private String nativePlace;
+
+    @ApiModelProperty("民族")
+    private String nationCode;
+
+    @ApiModelProperty("民族")
+    private String nation;
+
+    @ApiModelProperty("小区名字")
+    private String alley;
+
+    @ApiModelProperty("户主关系列表")
+    private List<ComHouseMemberVo> comMngFamilyInfoVOS;
+
+    @ApiModelProperty("家庭成员信息")
+    private List<ComMngFamilyInfoVO> familyInfoVOList;
+
+    @ApiModelProperty("用户电子档信息")
+    private UserElectronicFileVO userElectronicFileVO;
+
+    @ApiModelProperty("是否租住 是否租住(0.否 1.是)")
+    @NotBlank(groups = {AddGroup.class}, message = "是否租住不可为空")
+    private Integer isRent;
+
+    @ApiModelProperty("文化程度(1.小学 2.初中 3.高中 4.中专 5.大专 6.本科 7.硕士 8.博士 9.其他)")
+    private Integer cultureLevel;
+
+    @ApiModelProperty("文化程度名称")
+    private String cultureLevelName;
+
+    @ApiModelProperty("职业")
+    private String profession;
+
+    @ApiModelProperty("婚姻状况(10.未婚 20.已婚 21.初婚 22.再婚 23.复婚 30.丧偶 40.离婚 90.未说明的婚姻状况 60.其他)")
+    private Integer marriage;
+
+    @ApiModelProperty("婚姻状况名称")
+    private String marriageName;
+
+    @ApiModelProperty("健康状况")
+    private String healthy;
+
+    @ApiModelProperty("外地or本地(1.本地  2.外地)")
+    private Integer outOrLocal;
+
+    @ApiModelProperty("户口所在地")
+    private String censusRegister;
+
+    /**
+     * 居住地址
+     */
+    @ApiModelProperty("居住地址")
+    private String address;
+
+    @ApiModelProperty("与户主关系(1.户主 2.配偶 3.子女 4.孙女 5.父母 6.其他)")
+    private Integer relation;
+
+    @ApiModelProperty("与户主关系名称")
+    private String relationName;
+
+    @ApiModelProperty("身份证无加密字段")
+    private String cardNoStr;
+
+    @ApiModelProperty("房屋列表")
+    private List<ComMngHouseVo> houseList;
+
+    @ApiModelProperty("车辆列表")
+    private List<ComMngPopulationCarVO> carList;
+
+    @ApiModelProperty("吸毒信息")
+    private List<ComDrugPopulationVO> comDrugPopulationVOs;
+
+    @ApiModelProperty("社区矫正信息")
+    private List<ComCorrectPopulationVO> comCorrectPopulationVOs;
+
+    @ApiModelProperty("精神障碍信息")
+    private List<ComMajorPopulationVO> comMajorPopulationVOs;
+
+    @ApiModelProperty("邪教信息")
+    private List<ComCultPopulationVO> comCultPopulationVOs;
+
+    @ApiModelProperty("刑释信息")
+    private List<ComRehabilitationPopulationVO> comRehabilitationPopulationVOs;
+
+    @ApiModelProperty("上访信息")
+    private List<ComKeyPopulationVO> comKeyPopulationVOs;
+
+    @ApiModelProperty("退役军人信息")
+    private List<ComVeteransPopulationVO> comVeteransPopulationVOs;
+
+    @ApiModelProperty("残疾人信息")
+    private List<ComDisabilityPopulationVO> comDisabilityPopulationVOs;
+
+    @ApiModelProperty("低保户信息")
+    private List<ComLowSecurityPopulationVO> comLowSecurityPopulationVOs;
+
+    @ApiModelProperty("高龄老人信息")
+    private List<ComElderAuthElderliesVO> comElderAuthElderliesVOList;
+
+    @ApiModelProperty("养老人员信息")
+    private List<ComPensionAuthPensionerVO> comPensionAuthPensionerVOList;
+
+    public interface sex {
+        int nan = 1;
+        int nv = 2;
+        int no = 3;
+    }
+
+    /**
+     * 是否租住
+     */
+    public interface isOk {
+        int yes = 1;
+        int no = 0;
+    }
+
+    /**
+     * 政治面貌
+     */
+    public interface politicalOutlook {
+        int dang = 1;
+        int tuan = 3;
+        int wu = 12;
+        int qun = 13;
+        int no = 13;
+    }
+}
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/ComMngPopulationRehabilitationExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationRehabilitationExcelVO.java
new file mode 100644
index 0000000..942caf3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationRehabilitationExcelVO.java
@@ -0,0 +1,171 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+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;
+
+/**
+ * @description: 批量导入刑释人员
+ * @author: txb
+ */
+@Data
+@EncryptDecryptClass
+public class ComMngPopulationRehabilitationExcelVO implements Serializable {
+
+    @ExcelProperty(value = "序号", index = 0)
+    private String serialNumber;
+
+    @ExcelProperty(value = "姓名", index = 1)
+    private String name;
+
+    @ExcelProperty(value = "民族", index = 2)
+    private String nation;
+
+    @ExcelProperty(value = "身份证号码", index = 3)
+    @EncryptDecryptField
+    private String cardNo;
+
+    @ExcelProperty(value = "联系电话", index = 4)
+    private String phone;
+
+    @ExcelProperty(value = "籍贯", index = 5)
+    private String nativePlace;
+
+    @ExcelProperty(value = "街/路/巷", index = 6)
+    private String road;
+
+    @ExcelProperty(value = "小区号", index = 7)
+    private String doorNo;
+
+    @ExcelProperty(value = "楼排号", index = 8)
+    private String floor;
+
+    @ExcelProperty(value = "单元号", index = 9)
+    private String unitNo;
+
+    @ExcelProperty(value = "户室(房间号)", index = 10)
+    private String houseNo;
+
+    @ExcelProperty(value = "是否租住", index = 11)
+    private Integer isRent;
+
+    @ExcelProperty(value = "房屋状态(1.自住 2.租住 3.其他)", index = 12)
+    private Integer houseStatus;
+
+    @ExcelProperty(value = "房屋用途(1.住宅 2.公寓 3.宿舍 4.仓库 5.其他)", index = 13)
+    private Integer housePurpose;
+
+    @ExcelProperty(value = "管控状态(1.常规 2.关注 3.管控)", index = 14)
+    private Integer controlStatus;
+
+    @ExcelProperty(value = "外地/本地(1.本地  2.外地)", index = 15)
+    private Integer outOrLocal;
+
+    @ExcelProperty(value = "户口所在地", index = 16)
+    private String censusRegister;
+
+    @ExcelProperty(value = "主要亲属", index = 17)
+    private String mainRelatives;
+
+    @ExcelProperty(value = "与人员关系", index = 18)
+    private String patientRelation;
+
+    @ExcelProperty(value = "列管原因及类型", index = 19)
+    private String rehabReasonAndType;
+
+    @ExcelProperty(value = "是否列管", index = 20)
+    private Integer isRehab;
+
+    @ExcelProperty(value = "是否累惯犯(1.是 0.否)", index = 21)
+    private Integer isRecidivist;
+
+    @ExcelProperty(value = "原判刑期", index = 22)
+    private String originalTerm;
+
+    @ExcelProperty(value = "服刑日期", index = 23)
+    private Date sentenceBegin;
+
+    @ExcelProperty(value = "原罪名", index = 24)
+    private String originalCharge;
+
+    @ExcelProperty(value = "释放日期", index = 25)
+    private Date sentenceEnd;
+
+    @ExcelProperty(value = "服刑场所", index = 26)
+    private String sentencePlace;
+
+    @ExcelProperty(value = "危险性评估", index = 27)
+    private String riskAssessment;
+
+    @ExcelProperty(value = "衔接日期", index = 28)
+    private Date joinDate;
+
+    @ExcelProperty(value = "衔接情况", index = 29)
+    private String joinSituation;
+
+    @ExcelProperty(value = "是否重新犯罪(1.是 0.否)", index = 30)
+    private Integer isAgainCrime;
+
+    @ExcelProperty(value = "重新犯罪名称", index = 31)
+    private String againCrimeName;
+
+    @ExcelProperty(value = "安置情况", index = 32)
+    private String placeSituation;
+
+    @ExcelProperty(value = "安置日期", index = 33)
+    private Date placeDate;
+
+    @ExcelProperty(value = "未安置原因", index = 34)
+    private String notPlaceReason;
+
+    @ExcelProperty(value = "帮教开始", index = 35)
+    private Date helpBegin;
+
+    @ExcelProperty(value = "帮教结束", index = 36)
+    private Date helpEnd;
+
+    @ExcelProperty(value = "帮教情况", index = 37)
+    private String helpSituation;
+
+    @ExcelProperty(value = "备注", index = 38)
+    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/ComMngPopulationRehabilitationMistakeExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationRehabilitationMistakeExcelVO.java
new file mode 100644
index 0000000..923018b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationRehabilitationMistakeExcelVO.java
@@ -0,0 +1,139 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+
+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;
+
+/**
+ * @description: 批量导入刑释人员
+ * @author: txb
+ */
+@Data
+@EncryptDecryptClass
+public class ComMngPopulationRehabilitationMistakeExcelVO implements Serializable {
+
+    @ExcelProperty(value = "序号", index = 0)
+    private String serialNumber;
+
+    @ExcelProperty(value = "姓名", index = 1)
+    private String name;
+
+    @ExcelProperty(value = "民族", index = 2)
+    private String nation;
+
+    @ExcelProperty(value = "身份证号码", index = 3)
+    @EncryptDecryptField
+    private String cardNo;
+
+    @ExcelProperty(value = "联系电话", index = 4)
+    private String phone;
+
+    @ExcelProperty(value = "籍贯", index = 5)
+    private String nativePlace;
+
+    @ExcelProperty(value = "街/路/巷", index = 6)
+    private String road;
+
+    @ExcelProperty(value = "小区号", index = 7)
+    private String doorNo;
+
+    @ExcelProperty(value = "楼排号", index = 8)
+    private String floor;
+
+    @ExcelProperty(value = "单元号", index = 9)
+    private String unitNo;
+
+    @ExcelProperty(value = "户室(房间号)", index = 10)
+    private String houseNo;
+
+    @ExcelProperty(value = "是否租住", index = 11)
+    private String isRent;
+
+    @ExcelProperty(value = "房屋状态(1.自住 2.租住 3.其他)", index = 12)
+    private String houseStatus;
+
+    @ExcelProperty(value = "房屋用途(1.住宅 2.公寓 3.宿舍 4.仓库 5.其他)", index = 13)
+    private String housePurpose;
+
+    @ExcelProperty(value = "管控状态(1.常规 2.关注 3.管控)", index = 14)
+    private String controlStatus;
+
+    @ExcelProperty(value = "外地/本地(1.本地  2.外地)", index = 15)
+    private String outOrLocal;
+
+    @ExcelProperty(value = "户口所在地", index = 16)
+    private String censusRegister;
+
+    @ExcelProperty(value = "主要亲属", index = 17)
+    private String mainRelatives;
+
+    @ExcelProperty(value = "与人员关系", index = 18)
+    private String patientRelation;
+
+    @ExcelProperty(value = "列管原因及类型", index = 19)
+    private String rehabReasonAndType;
+
+    @ExcelProperty(value = "是否列管", index = 20)
+    private String isRehab;
+
+    @ExcelProperty(value = "是否累惯犯(1.是 0.否)", index = 21)
+    private String isRecidivist;
+
+    @ExcelProperty(value = "原判刑期", index = 22)
+    private String originalTerm;
+
+    @ExcelProperty(value = "服刑日期", index = 23)
+    private String sentenceBegin;
+
+    @ExcelProperty(value = "原罪名", index = 24)
+    private String originalCharge;
+
+    @ExcelProperty(value = "释放日期", index = 25)
+    private String sentenceEnd;
+
+    @ExcelProperty(value = "服刑场所", index = 26)
+    private String sentencePlace;
+
+    @ExcelProperty(value = "危险性评估", index = 27)
+    private String riskAssessment;
+
+    @ExcelProperty(value = "衔接日期", index = 28)
+    private String joinDate;
+
+    @ExcelProperty(value = "衔接情况", index = 29)
+    private String joinSituation;
+
+    @ExcelProperty(value = "是否重新犯罪(1.是 0.否)", index = 30)
+    private String isAgainCrime;
+
+    @ExcelProperty(value = "重新犯罪名称", index = 31)
+    private String againCrimeName;
+
+    @ExcelProperty(value = "安置情况", index = 32)
+    private String placeSituation;
+
+    @ExcelProperty(value = "安置日期", index = 33)
+    private String placeDate;
+
+    @ExcelProperty(value = "未安置原因", index = 34)
+    private String notPlaceReason;
+
+    @ExcelProperty(value = "帮教开始", index = 35)
+    private String helpBegin;
+
+    @ExcelProperty(value = "帮教结束", index = 36)
+    private String helpEnd;
+
+    @ExcelProperty(value = "帮教情况", index = 37)
+    private String helpSituation;
+
+    @ExcelProperty(value = "备注", index = 38)
+    private String remark;
+
+    @ExcelProperty(value = "错误信息", index = 39)
+    private String mistake;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationSentenceExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationSentenceExcelVO.java
new file mode 100644
index 0000000..5308c7c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationSentenceExcelVO.java
@@ -0,0 +1,122 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+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;
+
+/**
+ * @description: 批量导入服刑人员
+ * @author: txb
+ */
+@Data
+@EncryptDecryptClass
+public class ComMngPopulationSentenceExcelVO implements Serializable {
+
+    @ExcelProperty(value = "序号", index = 0)
+    private String serialNumber;
+
+    @ExcelProperty(value = "姓名", index = 1)
+    private String name;
+
+    @ExcelProperty(value = "民族", index = 2)
+    private String nation;
+
+    @ExcelProperty(value = "身份证号码", index = 3)
+    @EncryptDecryptField
+    private String cardNo;
+
+    @ExcelProperty(value = "联系电话", index = 4)
+    private String phone;
+
+    @ExcelProperty(value = "配偶", index = 5)
+    private String spouse;
+
+    @ExcelProperty(value = "职业", index = 6)
+    private String profession;
+
+    @ExcelProperty(value = "街/路/巷", index = 7)
+    private String road;
+
+    @ExcelProperty(value = "小区号", index = 8)
+    private String doorNo;
+
+    @ExcelProperty(value = "楼排号", index = 9)
+    private String floor;
+
+    @ExcelProperty(value = "单元号", index = 10)
+    private String unitNo;
+
+    @ExcelProperty(value = "户室(房间号)", index = 11)
+    private String houseNo;
+
+    @ExcelProperty(value = "是否租住", index = 12)
+    private Integer isRent;
+
+    @ExcelProperty(value = "房屋状态(1.自住 2.租住 3.其他)", index = 13)
+    private Integer houseStatus;
+
+    @ExcelProperty(value = "房屋用途(1.住宅 2.公寓 3.宿舍 4.仓库 5.其他)", index = 14)
+    private Integer housePurpose;
+
+    @ExcelProperty(value = "管控状态(1.常规 2.关注 3.管控)", index = 15)
+    private Integer controlStatus;
+
+    @ExcelProperty(value = "外地/本地(1.本地  2.外地)", index = 16)
+    private Integer outOrLocal;
+
+    @ExcelProperty(value = "户口所在地", index = 17)
+    private String censusRegister;
+
+    @ExcelProperty(value = "服刑地", index = 18)
+    private String sentencePlace;
+
+    @ExcelProperty(value = "服刑开始时间", index = 19)
+    private Date sentenceBegin;
+
+    @ExcelProperty(value = "服刑结束时间", index = 20)
+    private Date sentenceEnd;
+
+    @ExcelProperty(value = "罪名", index = 21)
+    private String charge;
+
+    @ExcelProperty(value = "备注", index = 22)
+    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/ComMngPopulationSentenceMistakeExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationSentenceMistakeExcelVO.java
new file mode 100644
index 0000000..8e42346
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationSentenceMistakeExcelVO.java
@@ -0,0 +1,91 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+
+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;
+
+/**
+ * @description: 批量导入服刑人员
+ * @author: txb
+ */
+@Data
+@EncryptDecryptClass
+public class ComMngPopulationSentenceMistakeExcelVO implements Serializable {
+
+    @ExcelProperty(value = "序号", index = 0)
+    private String serialNumber;
+
+    @ExcelProperty(value = "姓名", index = 1)
+    private String name;
+
+    @ExcelProperty(value = "民族", index = 2)
+    private String nation;
+
+    @ExcelProperty(value = "身份证号码", index = 3)
+    @EncryptDecryptField
+    private String cardNo;
+
+    @ExcelProperty(value = "联系电话", index = 4)
+    private String phone;
+
+    @ExcelProperty(value = "配偶", index = 5)
+    private String spouse;
+
+    @ExcelProperty(value = "职业", index = 6)
+    private String profession;
+
+    @ExcelProperty(value = "街/路/巷", index = 7)
+    private String road;
+
+    @ExcelProperty(value = "小区号", index = 8)
+    private String doorNo;
+
+    @ExcelProperty(value = "楼排号", index = 9)
+    private String floor;
+
+    @ExcelProperty(value = "单元号", index = 10)
+    private String unitNo;
+
+    @ExcelProperty(value = "户室(房间号)", index = 11)
+    private String houseNo;
+
+    @ExcelProperty(value = "是否租住", index = 12)
+    private String isRent;
+
+    @ExcelProperty(value = "房屋状态(1.自住 2.租住 3.其他)", index = 13)
+    private String houseStatus;
+
+    @ExcelProperty(value = "房屋用途(1.住宅 2.公寓 3.宿舍 4.仓库 5.其他)", index = 14)
+    private String housePurpose;
+
+    @ExcelProperty(value = "管控状态(1.常规 2.关注 3.管控)", index = 15)
+    private String controlStatus;
+
+    @ExcelProperty(value = "外地/本地(1.本地  2.外地)", index = 16)
+    private String outOrLocal;
+
+    @ExcelProperty(value = "户口所在地", index = 17)
+    private String censusRegister;
+
+    @ExcelProperty(value = "服刑地", index = 18)
+    private String sentencePlace;
+
+    @ExcelProperty(value = "服刑开始时间", index = 19)
+    private String sentenceBegin;
+
+    @ExcelProperty(value = "服刑结束时间", index = 20)
+    private String sentenceEnd;
+
+    @ExcelProperty(value = "罪名", index = 21)
+    private String charge;
+
+    @ExcelProperty(value = "备注", index = 22)
+    private String remark;
+
+    @ExcelProperty(value = "错误信息", index = 23)
+    private String mistake;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationServeExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationServeExcelVO.java
new file mode 100644
index 0000000..7b48bd8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationServeExcelVO.java
@@ -0,0 +1,206 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+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;
+
+/**
+ * @description: 批量导入实有人口
+ * @author: llming
+ */
+@Data
+@EncryptDecryptClass
+public class ComMngPopulationServeExcelVO 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 = "与户主关系(1.户主 2.配偶 3.子女 4.孙女 5.父母 6.其他)", index = 5)
+    private Integer relation;
+    private String relationStr;
+
+    @ExcelProperty(value = "街/路/巷", index = 6)
+    private String road;
+
+    @ExcelProperty(value = "小区号", index = 7)
+    private String doorNo;
+
+    @ExcelProperty(value = "楼排号", index = 8)
+    private String floor;
+
+    @ExcelProperty(value = "单元号", index = 9)
+    private String unitNo;
+
+    @ExcelProperty(value = "户室(房间号)", index = 10)
+    private String houseNo;
+
+    @ExcelProperty(value = "建筑用途", index = 11)
+    private String buildPurpose;
+
+    @ExcelProperty(value = "建筑面积", index = 12)
+    private String buildArea;
+
+    @ExcelProperty(value = "房屋状态(1.自住 2.租住 3.其他)", index = 13)
+    private Integer houseStatus;
+
+    @ExcelProperty(value = "房屋用途(1.住宅 2.公寓 3.宿舍 4.仓库 5.其他)", index = 14)
+    private Integer housePurpose;
+
+    @ExcelProperty(value = "管控状态(1.常规 2.关注 3.管控)", index = 15)
+    private Integer controlStatus;
+
+    @ExcelProperty(value = "联系方式", index = 16)
+    private String phone;
+
+    @ExcelProperty(value = "籍贯", index = 17)
+    private String nativePlace;
+
+    @ExcelProperty(value = "文化程度(1.小学 2.初中 3.高中 4.中专 5.大专 6.本科 7.硕士 8.博士 9.其他)", index = 18)
+    private Integer cultureLevel;
+
+    @ExcelProperty(value = "婚姻状况(1.未婚 2.已婚 3.离异 4.丧偶 5.分居 6.其他)", index = 19)
+    private Integer marriage;
+
+    private String marriageStr;
+
+    @ExcelProperty(value = "健康状况", index = 20)
+    private String healthy;
+
+    @ExcelProperty(value = "血型", index = 21)
+    private String bloodType;
+
+    @ExcelProperty(value = "宗教信仰", index = 22)
+    private String religion;
+
+    @ExcelProperty(value = "职业", index = 23)
+    private String profession;
+
+    @ExcelProperty(value = "工作单位/学校", index = 24)
+    private String workCompany;
+
+    @ExcelProperty(value = "外地/本地(1.本地  2.外地)", index = 25)
+    private Integer outOrLocal;
+
+    @ExcelProperty(value = "户口所在地", index = 26)
+    private String censusRegister;
+
+    @ExcelProperty(value = "是否居住地 1是 、0否", index = 27)
+    private Integer residence;
+
+    @ExcelProperty(value = "居住地址", index = 28)
+    private String address;
+
+    @ExcelProperty(value = "人员类型(1、户籍人口2、留守人员3、外地人员4、境外人员5、流动人口6、常住人口7、暂住人口)", index = 29)
+    private Integer personType;
+
+    @ExcelProperty(value = "国家", index = 30)
+    private String country;
+
+    @ExcelProperty(value = "离开日期(境外人员填写)", index = 31)
+    private Date dateOfDeparture;
+
+    @ExcelProperty(value = "人员状态", index = 32)
+    private String personStatus;
+
+    @ExcelProperty(value = "月收入情况", index = 33)
+    private String monthlyIncome;
+
+    @ExcelProperty(value = "家庭情况", index = 34)
+    private String familyStatus;
+
+    @ExcelProperty(value = "来华目的(境外人员填写)", index = 35)
+    private String goalInChina;
+
+    @ExcelProperty(value = "抵达日期(境外人员填写)", index = 36)
+    private Date dateOfArrival;
+
+    @ExcelProperty(value = "备注", index = 37)
+    private String remark;
+
+    @ExcelProperty(value = "证件照(人面像)照片", index = 38)
+    private String idCardPositive;
+
+    @ExcelProperty(value = "证件照(国徽面)照片", index = 39)
+    private String idCardBack;
+
+    @ExcelProperty(value = "户口本照片", index = 40)
+    private String houseHold;
+
+    @ExcelProperty(value = "是否死亡(是/否)", index = 41)
+    private Integer death;
+
+    @ExcelProperty(value = "退役军人(是/否)", index = 42)
+    private Integer veterans;
+
+    @ExcelProperty(value = "残疾人(是/否)", index = 43)
+    private Integer disabled;
+
+    @ExcelProperty(value = "低保户(是/否)", index = 44)
+    private Integer lowIncomeHold;
+
+    @ExcelProperty(value = "低收入人员(是/否)", index = 45)
+    private Integer lowIncome;
+
+    @ExcelProperty(value = "高龄老人(是/否)", index = 46)
+    private Integer elder;
+
+    @ExcelProperty(value = "特服家庭(是/否)", index = 47)
+    private Integer specialFamily;
+
+    @ExcelProperty(value = "重点人员(是/否)", index = 48)
+    private Integer important;
+
+    @ExcelProperty(value = "特殊情况(重大病史/孕)(是/否)", index = 49)
+    private Integer specialCase;
+
+    @ExcelProperty(value = "错误信息", index = 50)
+    private Integer mistake;
+
+    /**
+     * 去重字段,使用(姓名+身份证号+街路巷+小区号+楼牌号+单元号+户室)组合字段进行MD5加密实现去重
+     */
+    private String distinctPass;
+
+    /**
+     * 年龄
+     */
+    private Integer age;
+
+    /**
+     * 性别(1.男 2.女)
+     */
+    private Integer sex;
+
+    /**
+     * 出生年月日
+     */
+    private String birthday;
+
+    /**
+     * 扩展字段用逗号隔开
+     */
+    private List<String> userTagStr = Lists.newArrayList();
+
+    private Long houseId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationSpecialExcelVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationSpecialExcelVo.java
new file mode 100644
index 0000000..ca8e011
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationSpecialExcelVo.java
@@ -0,0 +1,21 @@
+package com.panzhihua.common.model.vos.community;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+@Data
+public class ComMngPopulationSpecialExcelVo {
+
+    @ExcelProperty(value = "所在小区", index = 0)
+    private String areaName;
+
+    @ExcelProperty(value = "姓名", index = 1)
+    private String name;
+
+    @ExcelProperty(value = "人员标签", index = 2)
+    private String tags;
+
+    @ExcelProperty(value = "联系方式", index = 3)
+    private String phone;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationTotalVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationTotalVO.java
new file mode 100644
index 0000000..64487f6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationTotalVO.java
@@ -0,0 +1,123 @@
+package com.panzhihua.common.model.vos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 实有人口统计返回参数
+ */
+@Data
+@ApiModel("实有人口统计返回参数")
+public class ComMngPopulationTotalVO {
+
+    /**
+     * 人口总数
+     */
+    @ApiModelProperty("人口总数")
+    private Long populationTotal;
+    /**
+     * 本地人口
+     */
+    @ApiModelProperty("本地人口")
+    private Integer localTotal;
+    /**
+     * 外地人口
+     */
+    @ApiModelProperty("外地人口")
+    private Integer outTotal;
+    /**
+     * 特殊群体
+     */
+    @ApiModelProperty("特殊群体")
+    private Integer specialTotal;
+
+    /**
+     * 小区总数
+     */
+    @ApiModelProperty("小区总数")
+    private Integer villageTotal;
+
+    /**
+     * 吸毒人员
+     */
+    @ApiModelProperty("吸毒人员")
+    private Integer drugTotal;
+
+    /**
+     * 社区矫正人员
+     */
+    @ApiModelProperty("社区矫正人员")
+    private Integer correctTotal;
+
+    /**
+     * 重精人员
+     */
+    @ApiModelProperty("重精人员")
+    private Integer majorTotal;
+
+    /**
+     * 邪教人员
+     */
+    @ApiModelProperty("邪教人员")
+    private Integer cultTotal;
+
+    /**
+     * 刑释人员
+     */
+    @ApiModelProperty("刑释人员")
+    private Integer rehabilitationTotal;
+
+    /**
+     * 重点上访人员
+     */
+    @ApiModelProperty("重点上访人员")
+    private Integer keyTotal;
+
+    /**
+     * 退役军人
+     */
+    @ApiModelProperty("退役军人")
+    private Integer veteransTotal;
+    /**
+     * 残疾人
+     */
+    @ApiModelProperty("残疾人")
+    private Integer disabilityTotal;
+
+    /**
+     * 低保户
+     */
+    @ApiModelProperty("低保户")
+    private Integer LowSecurityTotal;
+
+    @ApiModelProperty("高龄老人")
+    private Integer elderTotal;
+
+    @ApiModelProperty("养老金人员")
+    private Integer pensionTotal;
+
+    @ApiModelProperty("楼栋数")
+    private Integer buildNum;
+
+    @ApiModelProperty("户籍人口")
+    private Integer houseRegTotal;
+
+    @ApiModelProperty("流动人口")
+    private Integer floatingTotal;
+
+    @ApiModelProperty("常住人口")
+    private Integer permanentTotal;
+
+    @ApiModelProperty("暂住人口")
+    private Integer temporaryTotal;
+
+    @ApiModelProperty("外地人员")
+    private Integer outOfTownTotal;
+
+    @ApiModelProperty("留守人员")
+    private Integer leftTotal;
+
+    @ApiModelProperty("境外人员")
+    private Integer overseasTotal;
+}
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
new file mode 100644
index 0000000..ff6a28f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationVO.java
@@ -0,0 +1,267 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.validation.constraints.NotBlank;
+
+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 com.panzhihua.common.model.helper.sensitive.Sensitive;
+import com.panzhihua.common.model.helper.sensitive.SensitiveStrategy;
+import com.panzhihua.common.model.vos.user.ComHouseMemberVo;
+import com.panzhihua.common.model.vos.user.ComMngFamilyInfoVO;
+import com.panzhihua.common.model.vos.user.ComMngHouseVo;
+import com.panzhihua.common.model.vos.user.UserElectronicFileVO;
+import com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 实有人口Vo
+ */
+@Data
+@ApiModel("实有人口表")
+@EncryptDecryptClass
+public class ComMngPopulationVO {
+
+    /**
+     * 自增 id
+     */
+    @ApiModelProperty("实有人口id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+    /**
+     * 街道id
+     */
+    @ApiModelProperty("街道id")
+    private Long streetId;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty("社区id")
+    private Long actId;
+    /**
+     * 小区id(实有房屋id)
+     */
+    @ApiModelProperty("小区id(实有房屋id)")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private long villageId;
+    /**
+     * 家庭成员(姓名)
+     */
+    @ApiModelProperty("家庭成员(姓名)")
+    @NotBlank(groups = {AddGroup.class}, message = "家庭成员(姓名)不可为空")
+    private String name;
+
+    @ApiModelProperty("性别(1.男 2.女 3.未知)")
+    @NotBlank(groups = {AddGroup.class}, message = "性别不可为空")
+    private Integer sex;
+
+    @ApiModelProperty("年龄")
+    @NotBlank(groups = {AddGroup.class}, message = "年龄不可为空")
+    private Integer age;
+
+    @ApiModelProperty("身份证号码")
+    @NotBlank(groups = {AddGroup.class}, message = "身份证号码不可为空")
+    @EncryptDecryptField
+    private String cardNo;
+
+    @ApiModelProperty("出生年月")
+    private String birthday;
+
+    @ApiModelProperty("街路巷")
+    @NotBlank(groups = {AddGroup.class}, message = "街路巷不可为空")
+    private String road;
+
+    @ApiModelProperty("门牌号")
+    @NotBlank(groups = {AddGroup.class}, message = "门牌号不可为空")
+    private String doorNo;
+
+    @ApiModelProperty("楼排号")
+    @NotBlank(groups = {AddGroup.class}, message = "楼排号不可为空")
+    private String floor;
+
+    @ApiModelProperty("单元号")
+    @NotBlank(groups = {AddGroup.class}, message = "单元号不可为空")
+    private String unitNo;
+
+    @ApiModelProperty("户室(房间号)")
+    @NotBlank(groups = {AddGroup.class}, message = "户室(房间号)不可为空")
+    private String houseNo;
+
+    @ApiModelProperty("政治面貌(1.中共党员2.中共预备党员3.共青团员4.民革党员5.民盟盟员6.民建会员7.8.农工党党员9.致公党党员10.九三学社社员11.台盟盟员12.无党派人士13.群众)")
+    @NotBlank(groups = {AddGroup.class}, message = "政治面貌不可为空")
+    private Integer politicalOutlook;
+
+    @ApiModelProperty("政治面貌名称")
+    private String politicalOutlookName;
+
+    @ApiModelProperty("工作单位")
+    private String workCompany;
+
+    @ApiModelProperty("特殊情况")
+    private String specialSituation;
+
+    @ApiModelProperty("联系方式")
+    @NotBlank(groups = {AddGroup.class}, message = "联系方式不可为空")
+    @EncryptDecryptField
+    @Sensitive(strategy = SensitiveStrategy.PHONE)
+    private String phone;
+
+    @ApiModelProperty("备注")
+    private String remark;
+
+    @ApiModelProperty("标签集合(多个标签以,隔开,如物业工作人员,物业")
+    private String label;
+
+    @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 updateAt;
+
+    @ApiModelProperty("籍贯")
+    private String nativePlace;
+
+    @ApiModelProperty("民族")
+    private String nationCode;
+
+    @ApiModelProperty("民族")
+    private String nation;
+
+    @ApiModelProperty("小区名字")
+    private String alley;
+
+    @ApiModelProperty("户主关系列表")
+    private List<ComHouseMemberVo> comMngFamilyInfoVOS;
+
+    @ApiModelProperty("家庭成员信息")
+    private List<ComMngFamilyInfoVO> familyInfoVOList;
+
+    @ApiModelProperty("用户电子档信息")
+    private UserElectronicFileVO userElectronicFileVO;
+
+    @ApiModelProperty("是否租住 是否租住(0.否 1.是)")
+    @NotBlank(groups = {AddGroup.class}, message = "是否租住不可为空")
+    private Integer isRent;
+
+    @ApiModelProperty("文化程度(1.小学 2.初中 3.高中 4.中专 5.大专 6.本科 7.硕士 8.博士 9.其他)")
+    private Integer cultureLevel;
+
+    @ApiModelProperty("文化程度名称")
+    private String cultureLevelName;
+
+    @ApiModelProperty("职业")
+    private String profession;
+
+    @ApiModelProperty("婚姻状况(10.未婚 20.已婚 21.初婚 22.再婚 23.复婚 30.丧偶 40.离婚 90.未说明的婚姻状况 60.其他)")
+    private Integer marriage;
+
+    @ApiModelProperty("婚姻状况名称")
+    private String marriageName;
+
+    @ApiModelProperty("健康状况")
+    private String healthy;
+
+    @ApiModelProperty("外地or本地(1.本地  2.外地)")
+    private Integer outOrLocal;
+
+    @ApiModelProperty("户口所在地")
+    private String censusRegister;
+
+    /**
+     * 居住地址
+     */
+    @ApiModelProperty("居住地址")
+    private String address;
+
+    @ApiModelProperty("与户主关系(1.户主 2.配偶 3.子女 4.孙女 5.父母 6.其他)")
+    private Integer relation;
+
+    @ApiModelProperty("与户主关系名称")
+    private String relationName;
+
+    @ApiModelProperty("身份证无加密字段")
+    private String cardNoStr;
+
+    @ApiModelProperty("是否健在 0是 、1否")
+    private Integer death;
+
+    @ApiModelProperty("人员类型 1   80-89  2 90-99 3  100以上")
+    private Integer type;
+
+    @ApiModelProperty("人员类型(1、户籍人口2、留守人员3、外地人员4、境外人员5、流动人口6、常住人口7、暂住人口)")
+    private String personType;
+
+    @ApiModelProperty("房屋列表")
+    private List<ComMngHouseVo> houseList;
+
+    @ApiModelProperty("车辆列表")
+    private List<ComMngPopulationCarVO> carList;
+
+    @ApiModelProperty("吸毒信息")
+    private List<ComDrugPopulationVO> comDrugPopulationVOs;
+
+    @ApiModelProperty("社区矫正信息")
+    private List<ComCorrectPopulationVO> comCorrectPopulationVOs;
+
+    @ApiModelProperty("精神障碍信息")
+    private List<ComMajorPopulationVO> comMajorPopulationVOs;
+
+    @ApiModelProperty("邪教信息")
+    private List<ComCultPopulationVO> comCultPopulationVOs;
+
+    @ApiModelProperty("刑释信息")
+    private List<ComRehabilitationPopulationVO> comRehabilitationPopulationVOs;
+
+    @ApiModelProperty("上访信息")
+    private List<ComKeyPopulationVO> comKeyPopulationVOs;
+
+    @ApiModelProperty("退役军人信息")
+    private List<ComVeteransPopulationVO> comVeteransPopulationVOs;
+
+    @ApiModelProperty("残疾人信息")
+    private List<ComDisabilityPopulationVO> comDisabilityPopulationVOs;
+
+    @ApiModelProperty("低保户信息")
+    private List<ComLowSecurityPopulationVO> comLowSecurityPopulationVOs;
+
+    @ApiModelProperty("高龄老人信息")
+    private List<ComElderAuthElderliesVO> comElderAuthElderliesVOList;
+
+    @ApiModelProperty("养老人员信息")
+    private List<ComPensionAuthPensionerVO> comPensionAuthPensionerVOList;
+
+    public interface sex {
+        int nan = 1;
+        int nv = 2;
+        int no = 3;
+    }
+
+    /**
+     * 是否租住
+     */
+    public interface isOk {
+        int yes = 1;
+        int no = 0;
+    }
+
+    /**
+     * 政治面貌
+     */
+    public interface politicalOutlook {
+        int dang = 1;
+        int tuan = 3;
+        int wu = 12;
+        int qun = 13;
+        int no = 13;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationVeteransExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationVeteransExcelVO.java
new file mode 100644
index 0000000..d87ac20
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationVeteransExcelVO.java
@@ -0,0 +1,240 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+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;
+
+/**
+ * @description: 批量导入退役军人
+ * @author: txb
+ */
+@Data
+@EncryptDecryptClass
+public class ComMngPopulationVeteransExcelVO implements Serializable {
+
+    @ExcelProperty(value = "序号", index = 0)
+    private String serialNumber;
+
+    @ExcelProperty(value = "人员状态:正常、失联、出国(取字典表)", index = 1)
+    private String personStatus;
+
+    @ExcelProperty(value = "机构", index = 2)
+    private String organization;
+
+    @ExcelProperty(value = "姓名", index = 3)
+    private String name;
+
+    @ExcelProperty(value = "身份证号码", index = 4)
+    @EncryptDecryptField
+    private String cardNo;
+
+    @ExcelProperty(value = "联系电话", index = 5)
+    private String phone;
+
+    @ExcelProperty(value = "照片", index = 6)
+    private String photo;
+
+    @ExcelProperty(value = "户籍性质", index = 7)
+    private String regiterNature;
+
+    @ExcelProperty(value = "户口所在地", index = 8)
+    private String censusRegister;
+
+    @ExcelProperty(value = "外地/本地(1.本地  2.外地)", index = 9)
+    private Integer outOrLocal;
+
+    @ExcelProperty(value = "街/路/巷", index = 10)
+    private String road;
+
+    @ExcelProperty(value = "小区号", index = 11)
+    private String doorNo;
+
+    @ExcelProperty(value = "楼排号", index = 12)
+    private String floor;
+
+    @ExcelProperty(value = "单元号", index = 13)
+    private String unitNo;
+
+    @ExcelProperty(value = "户室(房间号)", index = 14)
+    private String houseNo;
+
+    @ExcelProperty(value = "是否租住", index = 15)
+    private Integer isRent;
+
+    @ExcelProperty(value = "房屋状态(1.自住 2.租住 3.其他)", index = 16)
+    private Integer houseStatus;
+
+    @ExcelProperty(value = "房屋用途(1.住宅 2.公寓 3.宿舍 4.仓库 5.其他)", index = 17)
+    private Integer housePurpose;
+
+    @ExcelProperty(value = "管控状态(1.常规 2.关注 3.管控)", index = 18)
+    private Integer controlStatus;
+
+    @ExcelProperty(value = "入伍时间", index = 19)
+    private Date enlistDate;
+
+    @ExcelProperty(value = "退伍时间", index = 20)
+    private Date retireDate;
+
+    @ExcelProperty(value = "人员类别", index = 21)
+    private String personCategory;
+
+    @ExcelProperty(value = "民族", index = 22)
+    private String nation;
+
+    @ExcelProperty(value = "健康状况", index = 23)
+    private String healthy;
+
+    @ExcelProperty(value = "政治面貌", index = 24)
+    private Integer politicalOutlook;
+
+    @ExcelProperty(value = "婚姻状况", index = 25)
+    private Integer marriage;
+
+    @ExcelProperty(value = "住房状况", index = 26)
+    private String houseSituation;
+
+    @ExcelProperty(value = "住房状况其他", index = 27)
+    private String houseSituationOther;
+
+    @ExcelProperty(value = "建筑面积", index = 28)
+    private String buildArea;
+
+    @ExcelProperty(value = "现就业情况", index = 29)
+    private String employmentSituation;
+
+    @ExcelProperty(value = "在职情况类型", index = 30)
+    private String incumbencyType;
+
+    @ExcelProperty(value = "现就业情况其他", index = 31)
+    private String employmentSituationOther;
+
+    @ExcelProperty(value = "养老保险", index = 32)
+    private String endowmentInsurance;
+
+    @ExcelProperty(value = "医疗保险", index = 33)
+    private String medicalInsurance;
+
+    @ExcelProperty(value = "现个人年收入(单位:元)", index = 34)
+    private String annualIncome;
+
+    @ExcelProperty(value = "父亲健康状况", index = 35)
+    private String fatherHealthy;
+
+    @ExcelProperty(value = "母亲健康状况", index = 36)
+    private String motherHealthy;
+
+    @ExcelProperty(value = "配偶健康状况", index = 37)
+    private String spouseHealthy;
+
+    @ExcelProperty(value = "儿子健康状况", index = 38)
+    private String sonHealthy;
+
+    @ExcelProperty(value = "女儿健康状况", index = 39)
+    private String daughterHealthy;
+
+    @ExcelProperty(value = "主要困难", index = 40)
+    private String mainDifficulty;
+
+    @ExcelProperty(value = "其他困难", index = 41)
+    private String otherDifficulty;
+
+    @ExcelProperty(value = "主要诉求", index = 42)
+    private String mainDemand;
+
+    @ExcelProperty(value = "主要诉求其他事项问题(手填)", index = 43)
+    private String mainDemandOther;
+
+    @ExcelProperty(value = "需参加的学历培训", index = 44)
+    private String academicTraining;
+
+    @ExcelProperty(value = "是否已参加退役军人培训(政府性质)", index = 45)
+    private Integer isVeteransTraining;
+
+    @ExcelProperty(value = "入伍前学历", index = 46)
+    private String educationBeforeEnlistment;
+
+    @ExcelProperty(value = "再教育学历", index = 47)
+    private String reEducation;
+
+    @ExcelProperty(value = "所学专业", index = 48)
+    private String major;
+
+    @ExcelProperty(value = "所学专业其他", index = 49)
+    private String majorOther;
+
+    @ExcelProperty(value = "曾从事行业(含现从事行业)", index = 50)
+    private String onceEngagedIndustry;
+
+    @ExcelProperty(value = "曾从事行业(含现从事行业)其他(手填)", index = 51)
+    private String onceEngagedIndustryOther;
+
+    @ExcelProperty(value = "意向就业地点", index = 52)
+    private String intendedPlaceOfEmployment;
+
+    @ExcelProperty(value = "意向就业地点其他地区(手填)", index = 53)
+    private String intendedPlaceOfEmploymentOther;
+
+    @ExcelProperty(value = "待业期间的求职意向", index = 54)
+    private String unemploymedEngagedIndustry;
+
+    @ExcelProperty(value = "待业期间的求职意向其他(手填)", index = 55)
+    private String unemploymedEngagedIndustryOther;
+
+    @ExcelProperty(value = "是否有创业意愿", index = 56)
+    private Integer isBusiness;
+
+    @ExcelProperty(value = "创业意愿", index = 57)
+    private String businessDesire;
+
+    @ExcelProperty(value = "备注", index = 58)
+    private String remark;
+
+    @ExcelProperty(value = "填表单位", index = 59)
+    private String fillUnit;
+
+    @ExcelProperty(value = "填表人", index = 60)
+    private String fillPerson;
+
+    @ExcelProperty(value = "填表人联系电话", index = 61)
+    private String fillPersonPhone;
+
+    /**
+     * 去重字段,使用(姓名+身份证号+街路巷+小区号+楼牌号+单元号+户室)组合字段进行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/ComMngPopulationVeteransMistakeExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationVeteransMistakeExcelVO.java
new file mode 100644
index 0000000..6e6f902
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngPopulationVeteransMistakeExcelVO.java
@@ -0,0 +1,208 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+
+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;
+
+/**
+ * @description: 批量导入退役军人
+ * @author: txb
+ */
+@Data
+@EncryptDecryptClass
+public class ComMngPopulationVeteransMistakeExcelVO implements Serializable {
+
+    @ExcelProperty(value = "序号", index = 0)
+    private String serialNumber;
+
+    @ExcelProperty(value = "人员状态:正常、失联、出国(取字典表)", index = 1)
+    private String personStatus;
+
+    @ExcelProperty(value = "机构", index = 2)
+    private String organization;
+
+    @ExcelProperty(value = "姓名", index = 3)
+    private String name;
+
+    @ExcelProperty(value = "身份证号码", index = 4)
+    @EncryptDecryptField
+    private String cardNo;
+
+    @ExcelProperty(value = "联系电话", index = 5)
+    private String phone;
+
+    @ExcelProperty(value = "照片", index = 6)
+    private String photo;
+
+    @ExcelProperty(value = "户籍性质(1.城镇户口 2.农村户口)", index = 7)
+    private String regiterNature;
+
+    @ExcelProperty(value = "户口所在地", index = 8)
+    private String censusRegister;
+
+    @ExcelProperty(value = "外地/本地(1.本地  2.外地)", index = 9)
+    private String outOrLocal;
+
+    @ExcelProperty(value = "街/路/巷", index = 10)
+    private String road;
+
+    @ExcelProperty(value = "小区号", index = 11)
+    private String doorNo;
+
+    @ExcelProperty(value = "楼排号", index = 12)
+    private String floor;
+
+    @ExcelProperty(value = "单元号", index = 13)
+    private String unitNo;
+
+    @ExcelProperty(value = "户室(房间号)", index = 14)
+    private String houseNo;
+
+    @ExcelProperty(value = "是否租住", index = 15)
+    private String isRent;
+
+    @ExcelProperty(value = "房屋状态(1.自住 2.租住 3.其他)", index = 16)
+    private String houseStatus;
+
+    @ExcelProperty(value = "房屋用途(1.住宅 2.公寓 3.宿舍 4.仓库 5.其他)", index = 17)
+    private String housePurpose;
+
+    @ExcelProperty(value = "管控状态(1.常规 2.关注 3.管控)", index = 18)
+    private String controlStatus;
+
+    @ExcelProperty(value = "入伍时间", index = 19)
+    private String enlistDate;
+
+    @ExcelProperty(value = "入伍时间", index = 20)
+    private String retireDate;
+
+    @ExcelProperty(value = "人员类别", index = 21)
+    private String personCategory;
+
+    @ExcelProperty(value = "民族", index = 22)
+    private String nation;
+
+    @ExcelProperty(value = "健康状况", index = 23)
+    private String healthy;
+
+    @ExcelProperty(value = "政治面貌", index = 24)
+    private String politicalOutlook;
+
+    @ExcelProperty(value = "婚姻状况", index = 25)
+    private String marriage;
+
+    @ExcelProperty(value = "住房状况", index = 26)
+    private String houseSituation;
+
+    @ExcelProperty(value = "住房状况其他", index = 27)
+    private String houseSituationOther;
+
+    @ExcelProperty(value = "建筑面积", index = 28)
+    private String buildArea;
+
+    @ExcelProperty(value = "现就业情况", index = 29)
+    private String employmentSituation;
+
+    @ExcelProperty(value = "在职情况类型", index = 30)
+    private String incumbencyType;
+
+    @ExcelProperty(value = "现就业情况其他", index = 31)
+    private String employmentSituationOther;
+
+    @ExcelProperty(value = "养老保险", index = 32)
+    private String endowmentInsurance;
+
+    @ExcelProperty(value = "医疗保险", index = 33)
+    private String medicalInsurance;
+
+    @ExcelProperty(value = "现个人年收入(单位:元)", index = 34)
+    private String annualIncome;
+
+    @ExcelProperty(value = "父亲健康状况", index = 35)
+    private String fatherHealthy;
+
+    @ExcelProperty(value = "母亲健康状况", index = 36)
+    private String motherHealthy;
+
+    @ExcelProperty(value = "配偶健康状况", index = 37)
+    private String spouseHealthy;
+
+    @ExcelProperty(value = "儿子健康状况", index = 38)
+    private String sonHealthy;
+
+    @ExcelProperty(value = "女儿健康状况", index = 39)
+    private String daughterHealthy;
+
+    @ExcelProperty(value = "主要困难", index = 40)
+    private String mainDifficulty;
+
+    @ExcelProperty(value = "其他困难", index = 41)
+    private String otherDifficulty;
+
+    @ExcelProperty(value = "主要诉求", index = 42)
+    private String mainDemand;
+
+    @ExcelProperty(value = "主要诉求其他事项问题(手填)", index = 43)
+    private String mainDemandOther;
+
+    @ExcelProperty(value = "需参加的学历培训", index = 44)
+    private String academicTraining;
+
+    @ExcelProperty(value = "是否已参加退役军人培训(政府性质)", index = 45)
+    private String isVeteransTraining;
+
+    @ExcelProperty(value = "入伍前学历", index = 46)
+    private String educationBeforeEnlistment;
+
+    @ExcelProperty(value = "再教育学历", index = 47)
+    private String reEducation;
+
+    @ExcelProperty(value = "所学专业", index = 48)
+    private String major;
+
+    @ExcelProperty(value = "所学专业其他", index = 49)
+    private String majorOther;
+
+    @ExcelProperty(value = "曾从事行业(含现从事行业)", index = 50)
+    private String onceEngagedIndustry;
+
+    @ExcelProperty(value = "曾从事行业(含现从事行业)其他(手填)", index = 51)
+    private String onceEngagedIndustryOther;
+
+    @ExcelProperty(value = "意向就业地点", index = 52)
+    private String intendedPlaceOfEmployment;
+
+    @ExcelProperty(value = "意向就业地点其他地区(手填)", index = 53)
+    private String intendedPlaceOfEmploymentOther;
+
+    @ExcelProperty(value = "待业期间的求职意向", index = 54)
+    private String unemploymedEngagedIndustry;
+
+    @ExcelProperty(value = "待业期间的求职意向其他(手填)", index = 55)
+    private String unemploymedEngagedIndustryOther;
+
+    @ExcelProperty(value = "是否有创业意愿", index = 56)
+    private String isBusiness;
+
+    @ExcelProperty(value = "创业意愿", index = 57)
+    private String businessDesire;
+
+    @ExcelProperty(value = "备注", index = 58)
+    private String remark;
+
+    @ExcelProperty(value = "填表单位", index = 59)
+    private String fillUnit;
+
+    @ExcelProperty(value = "填表人", index = 60)
+    private String fillPerson;
+
+    @ExcelProperty(value = "填表人联系电话", index = 61)
+    private String fillPersonPhone;
+
+    @ExcelProperty(value = "错误信息", index = 62)
+    private String mistake;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngProvinceVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngProvinceVO.java
new file mode 100644
index 0000000..1cad9fa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngProvinceVO.java
@@ -0,0 +1,17 @@
+package com.panzhihua.common.model.vos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("省份")
+public class ComMngProvinceVO {
+
+    @ApiModelProperty("省份名称")
+    private String provinceName;
+
+    @ApiModelProperty("省份行政区划代码")
+    private Integer provinceAdcode;
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngRealAssetsExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngRealAssetsExcelVO.java
new file mode 100644
index 0000000..8d2c01b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngRealAssetsExcelVO.java
@@ -0,0 +1,39 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+
+import lombok.Data;
+
+/**
+ * @description: 实有单位
+ * @author: Null
+ * @date: 2021/3/19 12:02
+ */
+@Data
+public class ComMngRealAssetsExcelVO implements Serializable {
+
+    @ExcelProperty(value = "资产名称", index = 0)
+    private String name;
+
+    @ExcelProperty(value = "位置", index = 1)
+    private String address;
+
+    @ExcelProperty(value = "分类", index = 2)
+    private String category;
+
+    @ExcelProperty(value = "占地面积", index = 3)
+    private BigDecimal square;
+
+    @ExcelProperty(value = "数量", index = 4)
+    private Integer num;
+
+    @ExcelProperty(value = "建筑类型", index = 5)
+    private String buildTypeName;
+
+    @ExcelProperty(value = "楼层类型", index = 6)
+    private String floorType;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngRealAssetsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngRealAssetsVO.java
new file mode 100644
index 0000000..f4904b2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngRealAssetsVO.java
@@ -0,0 +1,68 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @description: 实有单位
+ * @author: Null
+ * @date: 2021/3/19 12:02
+ */
+@Data
+public class ComMngRealAssetsVO implements Serializable {
+
+    @ApiModelProperty("主键")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty(value = "社区ID", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty("资产名称")
+    private String name;
+
+    @ApiModelProperty("分类:1-建筑类 2-公共设施类")
+    private Integer category;
+
+    @ApiModelProperty("建筑类型ID")
+    private Long buildTypeId;
+
+    @ApiModelProperty("建筑类型名称")
+    private String buildTypeName;
+
+    @ApiModelProperty("楼层类型:1-高层 2-中层 3-底层")
+    private Integer floorType;
+
+    @ApiModelProperty("数量")
+    private Integer num;
+
+    @ApiModelProperty("面积")
+    private BigDecimal square;
+
+    @ApiModelProperty("省份行政区划代码")
+    private Integer provinceAdcode;
+
+    @ApiModelProperty("城市行政区划代码")
+    private Integer cityAdcode;
+
+    /** 区县行政区划代码 */
+    @ApiModelProperty("区县行政区划代码")
+    private Integer districtAdcode;
+
+    @ApiModelProperty("详细地址")
+    private String address;
+
+    /** 创建时间 */
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngRealCompanyBelongsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngRealCompanyBelongsVO.java
new file mode 100644
index 0000000..3f3a5bf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngRealCompanyBelongsVO.java
@@ -0,0 +1,47 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @description: 实有单位归属
+ * @author: Null
+ * @date: 2021/3/19 12:02
+ */
+@Data
+public class ComMngRealCompanyBelongsVO implements Serializable {
+
+    @ApiModelProperty("省份行政区划代码")
+    private Integer provinceAdcode;
+
+    @ApiModelProperty("省份行政区划名称")
+    private String provinceName;
+
+    @ApiModelProperty("城市行政区划代码")
+    private Integer cityAdcode;
+
+    @ApiModelProperty("城市行政区划名称")
+    private String cityName;
+
+    /** 区县行政区划代码 */
+    @ApiModelProperty("区县行政区划代码")
+    private Integer districtAdcode;
+
+    @ApiModelProperty("区县行政区划名称")
+    private String districtName;
+
+    @ApiModelProperty("街道标识")
+    private Long streetId;
+
+    @ApiModelProperty("街道名称")
+    private String streetName;
+
+    @ApiModelProperty("社区名称")
+    private String communityName;
+
+    @ApiModelProperty("社区id")
+    private Long communityId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngRealCompanyExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngRealCompanyExcelVO.java
new file mode 100644
index 0000000..150d370
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngRealCompanyExcelVO.java
@@ -0,0 +1,38 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+
+import lombok.Data;
+
+/**
+ * @description: 实有单位
+ * @author: Null
+ * @date: 2021/3/19 12:02
+ */
+@Data
+public class ComMngRealCompanyExcelVO implements Serializable {
+
+    @ExcelProperty(value = "单位名称", index = 0)
+    private String comName;
+
+    @ExcelProperty(value = "公司法人", index = 1)
+    private String legalPerson;
+
+    @ExcelProperty(value = "负责人", index = 2)
+    private String leader;
+
+    @ExcelProperty(value = "联系方式", index = 3)
+    private String contactsPhone;
+
+    @ExcelProperty(value = "人员规模", index = 4)
+    private Integer scope;
+
+    @ExcelProperty(value = "详细地址", index = 5)
+    private String address;
+
+    @ExcelProperty(value = "统一社会信用代码", index = 6)
+    private String creditCode;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngRealCompanyTotalVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngRealCompanyTotalVO.java
new file mode 100644
index 0000000..03a42d8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngRealCompanyTotalVO.java
@@ -0,0 +1,20 @@
+package com.panzhihua.common.model.vos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 实有单位统计返回参数
+ */
+@Data
+@ApiModel("实有单位统计返回参数")
+public class ComMngRealCompanyTotalVO {
+
+    /**
+     * 实有单位总数
+     */
+    @ApiModelProperty("实有单位总数")
+    private Long companyTotal;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngRealCompanyVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngRealCompanyVO.java
new file mode 100644
index 0000000..7fba1a2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngRealCompanyVO.java
@@ -0,0 +1,64 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @description: 实有单位
+ * @author: Null
+ * @date: 2021/3/19 12:02
+ */
+@Data
+public class ComMngRealCompanyVO implements Serializable {
+
+    @ApiModelProperty("主键")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty(value = "社区ID", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty("单位名称")
+    private String comName;
+
+    @ApiModelProperty("法人")
+    private String legalPerson;
+
+    @ApiModelProperty("负责人")
+    private String leader;
+
+    @ApiModelProperty("联系方式")
+    private String contactsPhone;
+
+    @ApiModelProperty("人员规模")
+    private Integer scope;
+
+    @ApiModelProperty("统一社会信用代码")
+    private String creditCode;
+
+    @ApiModelProperty("省份行政区划代码")
+    private Integer provinceAdcode;
+
+    @ApiModelProperty("城市行政区划代码")
+    private Integer cityAdcode;
+
+    /** 区县行政区划代码 */
+    @ApiModelProperty("区县行政区划代码")
+    private Integer districtAdcode;
+
+    @ApiModelProperty("详细地址")
+    private String address;
+
+    /** 创建时间 */
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngStructAreaCityVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngStructAreaCityVO.java
new file mode 100644
index 0000000..c0e07bb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngStructAreaCityVO.java
@@ -0,0 +1,39 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.List;
+
+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;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 城市
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-28 14:11
+ **/
+@Data
+@ApiModel("城市表")
+public class ComMngStructAreaCityVO {
+
+    @ApiModelProperty("自增 id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("城市名称")
+    private String cityName;
+
+    @ApiModelProperty("城市行政区划代码")
+    private Integer cityAdcode;
+
+    @ApiModelProperty("省份行政区划代码")
+    private Integer provinceAdcode;
+
+    @ApiModelProperty("省份 id")
+    private Long provinceId;
+
+    @ApiModelProperty("下属区县")
+    private List<ComMngStructAreaDistrictVO> comMngStructAreaDistrictVOS;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngStructAreaDistrictVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngStructAreaDistrictVO.java
new file mode 100644
index 0000000..73d307d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngStructAreaDistrictVO.java
@@ -0,0 +1,39 @@
+package com.panzhihua.common.model.vos.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;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 县区
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-27 15:05
+ **/
+@Data
+@ApiModel("区县")
+public class ComMngStructAreaDistrictVO {
+    @ApiModelProperty("自增 id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("区县名称")
+    private String districtName;
+
+    @ApiModelProperty("区县行政区划代码")
+    private Integer districtAdcode;
+
+    @ApiModelProperty("城市行政区划代码")
+    private Integer cityAdcode;
+
+    @ApiModelProperty("城市 id")
+    private Long cityId;
+
+    @ApiModelProperty("省份行政区划代码")
+    private Integer provinceAdcode;
+
+    @ApiModelProperty("省份 id")
+    private Long provinceId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngStructAreaProvinceVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngStructAreaProvinceVO.java
new file mode 100644
index 0000000..01ce1ed
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngStructAreaProvinceVO.java
@@ -0,0 +1,34 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.List;
+
+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;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 省份
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-28 14:10
+ **/
+@Data
+@ApiModel("省份表")
+public class ComMngStructAreaProvinceVO {
+
+    @ApiModelProperty("自增 id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("省份名称")
+    private String provinceName;
+
+    @ApiModelProperty("省份行政区划代码")
+    private Integer provinceAdcode;
+
+    @ApiModelProperty("下属城市")
+    private List<ComMngStructAreaCityVO> comMngStructAreaCityVOS;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngStructAreaVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngStructAreaVO.java
new file mode 100644
index 0000000..9a5520b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngStructAreaVO.java
@@ -0,0 +1,65 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+
+import javax.validation.constraints.NotBlank;
+
+import com.panzhihua.common.validated.AddGroup;
+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;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 小区
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-14 17:01
+ **/
+@Data
+@ApiModel("小区")
+public class ComMngStructAreaVO {
+
+    @ApiModelProperty("自增id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("社区id")
+    private Long communityId;
+
+    @ApiModelProperty("小区名称")
+    @NotBlank(groups = {AddGroup.class}, message = "小区名称不能为空")
+    private String areaName;
+
+    @ApiModelProperty("地址详情")
+    @NotBlank(groups = {AddGroup.class}, message = "地址详情不能为空")
+    private String addressDetail;
+
+    @ApiModelProperty("创建时间")
+    private Date createAt;
+
+    @ApiModelProperty("分页页数")
+    private Long pageNum;
+
+    @ApiModelProperty("每页记录数")
+    private Long pageSize;
+
+    @ApiModelProperty("地址编码")
+    private String areaCode;
+
+    @ApiModelProperty("楼层规则 1 01 001")
+    private String roleFloor;
+
+    @ApiModelProperty("连接符 空格 或者 -")
+    private String roleConnector;
+
+    @ApiModelProperty("门牌号规则 1 01 001")
+    private String roleDoor;
+
+    @ApiModelProperty("是否累加门牌号 0 否 1 是")
+    private Integer isAccumulation;
+
+    @ApiModelProperty("小区门牌号导入规则")
+    private String doorNum;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngStructBuildTypeVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngStructBuildTypeVO.java
new file mode 100644
index 0000000..9e2b255
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngStructBuildTypeVO.java
@@ -0,0 +1,27 @@
+package com.panzhihua.common.model.vos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 其他建筑
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-14 17:03
+ **/
+@Data
+@ApiModel("其他建筑-查询")
+public class ComMngStructBuildTypeVO {
+
+    @ApiModelProperty("自增id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("建筑类型名称")
+    private String name;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngStructHouseVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngStructHouseVO.java
new file mode 100644
index 0000000..9e10a6d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngStructHouseVO.java
@@ -0,0 +1,79 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotBlank;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 房屋
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-14 17:10
+ **/
+@Data
+@ApiModel("房屋地址")
+public class ComMngStructHouseVO {
+
+    @ApiModelProperty("id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("房屋地址编号")
+    @NotBlank(groups = {AddGroup.class}, message = "房屋地址编号不能为空")
+    private String houseCode;
+
+    @ApiModelProperty("房屋地址")
+    private String houseName;
+
+    @ApiModelProperty("房屋地址简称")
+    private String houseShortName;
+
+    @ApiModelProperty("父类地址编码")
+    private String parentCode;
+
+    @ApiModelProperty("地址类型 1小区  2楼栋  3 单元 4楼层  5房间")
+    private Integer type;
+
+    @ApiModelProperty("create_at")
+    private Date createAt;
+
+    @ApiModelProperty("update_at")
+    private Date updateAt;
+
+    @ApiModelProperty("房屋面积")
+    @Min(value = 1, groups = {AddGroup.class}, message = "房屋面积不能为空")
+    private Double square;
+
+    @ApiModelProperty("居住用户名字-多个用,隔开")
+    private String names;
+
+    @ApiModelProperty("居住用户手机号-多个用,隔开")
+    private String phones;
+
+    @ApiModelProperty("房屋状态 1 自主 2 租住 3 商用")
+    @Min(value = 1, groups = {AddGroup.class}, message = "房屋状态不能为空")
+    private Integer state;
+
+    @ApiModelProperty("身份 1租户 2房主")
+    @Min(value = 1, groups = {AddGroup.class}, message = "身份不能为空")
+    private Integer identity;
+
+    @ApiModelProperty(value = "登录用户id", hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "小区地址id", hidden = true)
+    private Long areaId;
+
+    @ApiModelProperty(value = "小区地址编码", hidden = true)
+    private String areaCode;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngStructOtherBuildVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngStructOtherBuildVO.java
new file mode 100644
index 0000000..2401b01
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngStructOtherBuildVO.java
@@ -0,0 +1,58 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 其他建筑
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-14 17:22
+ **/
+@Data
+@ApiModel("其他建筑-入参")
+public class ComMngStructOtherBuildVO {
+
+    @ApiModelProperty("自增id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("建筑名称")
+    private String name;
+
+    @ApiModelProperty("建筑类型id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long typeId;
+
+    @ApiModelProperty("面积")
+    private Double square;
+
+    @ApiModelProperty("建筑地址")
+    private String address;
+
+    @ApiModelProperty("建筑状态 1建筑中 2使用中")
+    private Integer state;
+
+    @ApiModelProperty("楼层类型 高层 中层 底层")
+    private String layerType;
+
+    @ApiModelProperty("创建时间")
+    private Date createAt;
+
+    @ApiModelProperty(value = "当前页数", example = "1")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "每页记录数", example = "10")
+    private Long pageSize;
+
+    @ApiModelProperty("建筑类型名字")
+    private String buileTypeName;
+
+    @ApiModelProperty("社区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngVillageRegionVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngVillageRegionVO.java
new file mode 100644
index 0000000..ba2f255
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngVillageRegionVO.java
@@ -0,0 +1,28 @@
+package com.panzhihua.common.model.vos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("查询社区的省市区")
+public class ComMngVillageRegionVO {
+
+    @ApiModelProperty("省份行政区划代码")
+    private Integer provinceAdcode;
+
+    @ApiModelProperty("省份行政区划名称")
+    private String provinceName;
+
+    @ApiModelProperty("城市行政区划代码")
+    private Integer cityAdcode;
+
+    @ApiModelProperty("城市行政区划名称")
+    private String cityName;
+
+    @ApiModelProperty("区县行政区划代码")
+    private Integer districtAdcode;
+
+    @ApiModelProperty("区县行政区划名称")
+    private String districtName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngVillageServeExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngVillageServeExcelVO.java
new file mode 100644
index 0000000..003fe15
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngVillageServeExcelVO.java
@@ -0,0 +1,57 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+
+import lombok.Data;
+
+/**
+ * @description: 批量导入实有房屋(小区)
+ * @author: llming
+ */
+@Data
+public class ComMngVillageServeExcelVO implements Serializable {
+    /**
+     * villageId
+     */
+    private Long villageId;
+    /**
+     * 服务分类
+     */
+    @ExcelProperty(value = "街路巷", index = 0)
+    private String alley;
+
+    @ExcelProperty(value = "门牌号", index = 1)
+    private String houseNum;
+
+    @ExcelProperty(value = "小区(组)", index = 2)
+    private String groupAt;
+    /**
+     * 小区类型(1.城镇 2.农村 3.未知)
+     */
+    @ExcelProperty(value = "小区类型", index = 3)
+    private String type;
+    /** 如果是城镇小区填写楼栋数量 */
+    @ExcelProperty(value = "小区(组)", index = 4)
+    private Integer buildSum;
+    /** (城镇)建筑年代 */
+    @ExcelProperty(value = "小区(组)", index = 5)
+    private Date buildYear;
+    /** (城镇)建筑类型 */
+    @ExcelProperty(value = "小区(组)", index = 6)
+    private Long buildType;
+    /** (城镇)是否存在物业公司 */
+    @ExcelProperty(value = "小区(组)", index = 7)
+    private String property;
+    /** (城镇)开发商 */
+    @ExcelProperty(value = "小区(组)", index = 8)
+    private String developers;
+    /** (城镇)小区总共居民数量/这户一共住了几口人 */
+    @ExcelProperty(value = "小区(组)", index = 9)
+    private Integer userSum;
+    private Date createAt;
+
+    private String address;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngVillageTotalVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngVillageTotalVO.java
new file mode 100644
index 0000000..ffc7278
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngVillageTotalVO.java
@@ -0,0 +1,30 @@
+package com.panzhihua.common.model.vos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 小区统计返回参数
+ */
+@Data
+@ApiModel("小区统计返回参数")
+public class ComMngVillageTotalVO {
+
+    /**
+     * 小区数量
+     */
+    @ApiModelProperty("小区数量")
+    private Integer villageTotal = 0;
+    /**
+     * 城镇小区数量
+     */
+    @ApiModelProperty("城镇小区数量")
+    private Integer townTotal = 0;
+    /**
+     * 农村小区数量
+     */
+    @ApiModelProperty("农村小区数量")
+    private Integer countrysideTotal = 0;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngVillageVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngVillageVO.java
new file mode 100644
index 0000000..cc51046
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngVillageVO.java
@@ -0,0 +1,70 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+
+import javax.validation.constraints.NotBlank;
+
+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.validated.AddGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author: llming
+ * @description: 实有房屋(小区)
+ **/
+@Data
+@ApiModel("实有房屋(小区)")
+public class ComMngVillageVO {
+
+    @ApiModelProperty("小区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long villageId;
+
+    @ApiModelProperty("街路巷")
+    @NotBlank(groups = {AddGroup.class}, message = "街路巷不能为空")
+    private String alley;
+
+    @ApiModelProperty("门牌号")
+    @NotBlank(groups = {AddGroup.class}, message = "门牌号不能为空")
+    private String houseNum;
+
+    @ApiModelProperty("小区(组)")
+    private String groupAt;
+
+    @ApiModelProperty("社区id")
+    private Long communityId;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("创建时间")
+    private Date createAt;
+
+    @ApiModelProperty("小区类型(1.城镇 2.农村 3.未知)")
+    private Integer type;
+
+    @ApiModelProperty("小区地址")
+    private String address;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("更新时间")
+    private Date updateAt;
+
+    @ApiModelProperty("栋数")
+    private Integer floorTotal = 0;
+
+    @ApiModelProperty("户数")
+    private Integer houseTotal = 0;
+
+    @ApiModelProperty("人口数")
+    private Integer populationTotal = 0;
+
+    @ApiModelProperty("车辆数")
+    private Integer carTotal = 0;
+
+    @ApiModelProperty("名称")
+    private String name;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngVolunteerMngAppletsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngVolunteerMngAppletsVO.java
new file mode 100644
index 0000000..63a71c7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngVolunteerMngAppletsVO.java
@@ -0,0 +1,41 @@
+package com.panzhihua.common.model.vos.community;
+
+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;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 支援者详情小程序
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-31 15:20
+ **/
+@Data
+@ApiModel("支援者详情小程序")
+public class ComMngVolunteerMngAppletsVO {
+
+    @ApiModelProperty("姓名")
+    private String name;
+
+    @ApiModelProperty("电话号码")
+    private String phone;
+
+    @ApiModelProperty("照片路径")
+    private String photoPath;
+
+    @ApiModelProperty("积分")
+    private Integer integral;
+
+    @ApiModelProperty("志愿者参加的已经完成的活动")
+    private List<ComActActivityVO> comActActivityVOList;
+
+    @ApiModelProperty("时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngVolunteerMngVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngVolunteerMngVO.java
new file mode 100644
index 0000000..87c6b66
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComMngVolunteerMngVO.java
@@ -0,0 +1,137 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotBlank;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.panzhihua.common.validated.AddGroup;
+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 org.hibernate.validator.constraints.Length;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 志愿者
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-15 09:51
+ **/
+@Data
+@ApiModel("社区》管理》志愿者服务 》志愿者管理")
+public class ComMngVolunteerMngVO {
+
+    @ApiModelProperty("自增id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("状态:1- 申请;2 - 通过;3 - 驳回")
+    private Integer state;
+
+    @ApiModelProperty("姓名")
+    @NotBlank(groups = {AddGroup.class}, message = "姓名不能为空")
+    private String name;
+
+    @ApiModelProperty("电话号码")
+    private String phone;
+
+    @ApiModelProperty("照片路径")
+    private String photoPath;
+
+    @ApiModelProperty("政治面貌:1 - 党员;2- 团员;3 - 群众")
+    @Min(value = 1, groups = {AddGroup.class}, message = "政治面貌不能为空")
+    private Integer politicalFace;
+
+    @ApiModelProperty("拒绝原因")
+    private String rejectReson;
+
+    @ApiModelProperty("申请原因")
+    @NotBlank(groups = {AddGroup.class}, message = "申请原因不能为空")
+    private String applyReson;
+
+    @ApiModelProperty("居住地址")
+    @NotBlank(groups = {AddGroup.class}, message = "居住地址不能为空")
+    private String address;
+
+    @ApiModelProperty("当前页数")
+    private Long pageNum;
+
+    @ApiModelProperty("每页记录数")
+    private Long pageSize;
+
+    @ApiModelProperty(value = "年龄", example = "15")
+    @Min(value = 1, groups = {AddGroup.class}, message = "年龄不能为空")
+    private Integer age;
+
+    @ApiModelProperty(value = "职业", example = "家庭主妇")
+    @NotBlank(groups = {AddGroup.class}, message = "职业不能为空")
+    private String job;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "积分", hidden = true)
+    private Integer integral;
+
+    @ApiModelProperty(value = "用户userid", hidden = true)
+    @Deprecated
+    private Long userId;
+
+    @ApiModelProperty(value = "申请提交人ID", hidden = true)
+    private Long submitUserId;
+
+    private Long streetId;
+
+    @ApiModelProperty(value = "身份证号")
+    private String idCard;
+
+    @ApiModelProperty(value = "组织id")
+    private Long orgId;
+
+    @ApiModelProperty(value = "队伍id")
+    private Long teamId;
+
+    @ApiModelProperty(value = "技能id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long skillId;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+    @ApiModelProperty(value = "组织名称")
+    private String orgName;
+
+    @ApiModelProperty(value = "队伍名称")
+    private String teamName;
+
+    @ApiModelProperty(value = "技能名称")
+    private String skillName;
+
+    @ApiModelProperty(value = "服务类型id")
+    private Long serviceTypeId;
+
+    @ApiModelProperty(value = "服务类型名称")
+    private String serviceTypeName;
+
+    @ApiModelProperty(value = "是否是在校大学生(1.是 2.否)")
+    private Integer isUniversity;
+
+    @Length(max = 30)
+    @ApiModelProperty(value = "大学名称")
+    private String universityName;
+
+    private String communityName;
+    @ApiModelProperty("物业公司Id")
+    private Long propertyId;
+
+    @ApiModelProperty("爱心积分")
+    private String loveIntegral;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComOpsHouseUndercarriageVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComOpsHouseUndercarriageVO.java
new file mode 100644
index 0000000..2705a59
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComOpsHouseUndercarriageVO.java
@@ -0,0 +1,35 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+
+import javax.validation.constraints.NotNull;
+
+import com.panzhihua.common.validated.PutGroup;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 房屋租售上下架请求对象
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-22 14:48
+ **/
+@Data
+public class ComOpsHouseUndercarriageVO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 房屋租售记录id
+     */
+    @ApiModelProperty(value = "房屋租售记录id")
+    @NotNull(groups = {PutGroup.class}, message = "租售记录id不能为空")
+    private Long id;
+    /**
+     * 状态 0待审核 1已上架 2已驳回 3已下架
+     */
+    @ApiModelProperty(value = "状态  0待审核 1已上架 2已驳回 3已下架")
+    @NotNull(groups = {PutGroup.class}, message = "状态不可为空")
+    private Integer status;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComOpsHouseVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComOpsHouseVO.java
new file mode 100644
index 0000000..499a4f2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComOpsHouseVO.java
@@ -0,0 +1,162 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 房屋租售
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-22 14:48
+ **/
+@Data
+public class ComOpsHouseVO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+    /**
+     * 状态 0待审核 1已上架 2已驳回 3已下架
+     */
+    @ApiModelProperty(value = "状态  0待审核 1已上架 2已驳回 3已下架")
+    private Integer status;
+    /**
+     * 房屋所在社区id
+     */
+    @ApiModelProperty(value = "房屋所在社区id")
+    private Long houseCommunityId;
+    /**
+     * 房屋所在社区名字
+     */
+    @ApiModelProperty(value = "房屋所在社区名字")
+    private String houseCommunityName;
+    /**
+     * 房屋标题
+     */
+    @ApiModelProperty(value = "房屋标题")
+    private String title;
+    /**
+     * 租售类型 1 出租 2 出售
+     */
+    @ApiModelProperty(value = "租售类型 1 出租 2 出售")
+    private Integer houseType;
+    /**
+     * 租房类型 1 整租 2 合租
+     */
+    @ApiModelProperty(value = "租房类型 1 整租 2 合租")
+    private Integer rentType;
+    /**
+     * 价格
+     */
+    @ApiModelProperty(value = "价格")
+    private Double amount;
+    /**
+     * 面积
+     */
+    @ApiModelProperty(value = "面积")
+    private Integer area;
+    /**
+     * 室数量
+     */
+    @ApiModelProperty(value = "室数量")
+    private Integer brn;
+    /**
+     * 厅数量
+     */
+    @ApiModelProperty(value = "厅数量")
+    private Integer lrn;
+    /**
+     * 卫数量
+     */
+    @ApiModelProperty(value = "卫数量")
+    private Integer wcn;
+    /**
+     * 所在楼层
+     */
+    @ApiModelProperty(value = "所在楼层")
+    private Integer floor;
+    /**
+     * 总楼层
+     */
+    @ApiModelProperty(value = "总楼层")
+    private Integer totalFloor;
+    /**
+     * 朝向 0无1东2南3西4北5东南6东北7西南8西北9南北10东西
+     */
+    @ApiModelProperty(value = "朝向 0无1东2南3西4北5东南6东北7西南8西北9南北10东西")
+    private Integer orient;
+    /**
+     * 装修情况
+     */
+    @ApiModelProperty(value = "装修情况")
+    private String decoration;
+    /**
+     * 房屋简介
+     */
+    @ApiModelProperty(value = "房屋简介")
+    private String introduction;
+    /**
+     * 联系方式
+     */
+    @ApiModelProperty(value = "联系方式")
+    private String mobile;
+    /**
+     * 拒绝原因
+     */
+    @ApiModelProperty(value = "拒绝原因")
+    private String reason;
+    /**
+     * 图片地址 多个用逗号隔开
+     */
+    @ApiModelProperty(value = "图片地址 多个用逗号隔开")
+    private String photoPah;
+    /**
+     * 发布人id
+     */
+    @ApiModelProperty(value = "发布人id")
+    private Long userId;
+    /**
+     * 用户类型 1 小程序 2 运营平台 3 社区平台
+     */
+    @ApiModelProperty(value = "用户类型 1 小程序 2 运营平台 3 社区平台")
+    private Integer userType;
+    /**
+     * 社区主键
+     */
+    @ApiModelProperty(value = "社区主键")
+    private Long communityId;
+    /**
+     *
+     */
+    @ApiModelProperty(value = "")
+    private LocalDateTime approveAt;
+    /**
+     * 审核人id
+     */
+    @ApiModelProperty(value = "审核人id")
+    private Long approveBy;
+
+    /**
+     * create_at
+     */
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+    @ApiModelProperty("发布人名字")
+    private String userName;
+
+}
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..8c65edc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthPensionerVO.java
@@ -0,0 +1,84 @@
+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: 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 = "养老金开始领取日期")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date receiveAllowanceBegin;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty(value = "创建用户")
+    private Long createBy;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    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..e646347
--- /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 HH:mm", 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..f403a07
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPensionAuthRecordVO.java
@@ -0,0 +1,122 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+import java.util.List;
+
+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;
+
+/**
+ * @title: ComPensionAuthRecordVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 养老认证记录
+ * @author: hans
+ * @date: 2021/09/01 16:59
+ */
+@Data
+@ApiModel("养老认证记录")
+@EncryptDecryptClass
+public class ComPensionAuthRecordVO {
+
+    @ApiModelProperty(value = "自增id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty(value = "养老金用户id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    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 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 = "待处理id集合")
+    private List<String> nextIds;
+
+    private Long communityId;
+
+    private String areaCode;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPopulationActVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPopulationActVO.java
new file mode 100644
index 0000000..9c53c53
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPopulationActVO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.vos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("通过社区id查询社区信息返回参数")
+public class ComPopulationActVO {
+
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+    @ApiModelProperty(value = "社区名称")
+    private String name;
+    @ApiModelProperty(value = "省份名称")
+    private String provinceName;
+    @ApiModelProperty(value = "城市名称")
+    private String cityName;
+    @ApiModelProperty(value = "区域名称")
+    private String districtName;
+    @ApiModelProperty(value = "街道id")
+    private Long streetId;
+    @ApiModelProperty(value = "街道名称")
+    private String streetName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPropertyPublicityVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPropertyPublicityVO.java
new file mode 100644
index 0000000..748181d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPropertyPublicityVO.java
@@ -0,0 +1,68 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: ComPropertyPublicityVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 物业宣传信息
+ * @author: hans
+ * @date: 2021/11/11 10:15
+ */
+@Data
+@ApiModel("物业宣传信息")
+public class ComPropertyPublicityVO {
+
+    @ApiModelProperty("物业宣传id")
+    private Long id;
+
+    @ApiModelProperty("宣传标题")
+    private String title;
+
+    @ApiModelProperty("宣传类型(0.其他 1.停水通知 2.停电通知 3.停气通知 4.物业公告 5.优秀业主)")
+    private Integer publicityType;
+
+    @ApiModelProperty("其他类型自定义名称")
+    private String other;
+
+    @ApiModelProperty("封面")
+    private String cover;
+
+    @ApiModelProperty("内容形式(1.文章链接 2.自定义内容)")
+    private Integer contentType;
+
+    @ApiModelProperty("文章链接")
+    private String articleUrl;
+
+    @ApiModelProperty("自定义内容")
+    private String diyContent;
+
+    @ApiModelProperty("物业公司id")
+    private Long propertyId;
+
+    @ApiModelProperty("物业公司名称")
+    private String propertyName;
+
+    @ApiModelProperty("所属小区")
+    private String villageName;
+
+    @ApiModelProperty("社区id")
+    private Long communityId;
+
+    @ApiModelProperty("浏览量")
+    private Integer viewNum;
+
+    @ApiModelProperty("发布时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createdAt;
+
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updatedAt;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPropertyVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPropertyVO.java
new file mode 100644
index 0000000..9683d9a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComPropertyVO.java
@@ -0,0 +1,100 @@
+package com.panzhihua.common.model.vos.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.util.Date;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel("物业公司实体")
+public class ComPropertyVO {
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 名称
+     */
+    @ApiModelProperty(value = "名称")
+    private String name;
+
+    /**
+     * 简介
+     */
+    @ApiModelProperty(value = "简介")
+    private String introduction;
+
+    /**
+     * 联系人姓名
+     */
+    @ApiModelProperty(value = "联系人姓名")
+    private String contactName;
+
+    /**
+     * 联系人手机
+     */
+    @ApiModelProperty(value = "联系人手机")
+    private String phone;
+
+    /**
+     * 地址
+     */
+    @ApiModelProperty(value = "地址")
+    private String address;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long userId;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long communityId;
+
+    @ApiModelProperty("账号")
+    private String account;
+
+    @ApiModelProperty("密码")
+    private String password;
+
+    @ApiModelProperty("权限id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long roleId;
+
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+
+    @ApiModelProperty("小区名称")
+    private String areaName;
+
+    @ApiModelProperty("小区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long areaId;
+
+    @ApiModelProperty("评价星级(1~5)")
+    private Integer star;
+
+    @ApiModelProperty("红色物业(1.是 2.否)")
+    private Integer isRed;
+
+    @ApiModelProperty("logo")
+    private String logo;
+
+    private String appId;
+
+    private Long createUserId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComRehabilitationPopulationVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComRehabilitationPopulationVO.java
new file mode 100644
index 0000000..26f688d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComRehabilitationPopulationVO.java
@@ -0,0 +1,229 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+
+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;
+
+/**
+ * @auther txb
+ * @create 2021-08-10 15:58:23
+ * @describe 实体类
+ */
+
+@Data
+@ApiModel("刑满释放人员表")
+@EncryptDecryptClass
+public class ComRehabilitationPopulationVO {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty("刑满释放人员id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 人口id
+     */
+    @ApiModelProperty("人口id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long populationId;
+
+    /**
+     * 街道id
+     */
+    @ApiModelProperty("街道id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long streetId;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty("社区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long communityId;
+
+    /**
+     * 名字
+     */
+    @ApiModelProperty("名字")
+    private String name;
+
+    /**
+     * 身份证号码
+     */
+    @ApiModelProperty("身份证号码")
+    @EncryptDecryptField
+    private String cardNo;
+
+    /**
+     * 联系电话
+     */
+    @ApiModelProperty("联系电话")
+    private String phone;
+
+    /**
+     * 与人员关系
+     */
+    @ApiModelProperty("与人员关系")
+    private String patientRelation;
+
+    /**
+     * 列管原因及类型
+     */
+    @ApiModelProperty("列管原因及类型")
+    private String rehabReasonAndType;
+
+    /**
+     * 是否列管(1.是 0.否)
+     */
+    @ApiModelProperty("是否列管(1.是 0.否)")
+    private Integer isRehab;
+
+    /**
+     * 是否累惯犯(1.是 0.否)
+     */
+    @ApiModelProperty("是否累惯犯(1.是 0.否)")
+    private Integer isRecidivist;
+
+    /**
+     * 原判刑期
+     */
+    @ApiModelProperty("原判刑期")
+    private String originalTerm;
+
+    /**
+     * 服刑日期
+     */
+    @ApiModelProperty("服刑日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date sentenceBegin;
+
+    /**
+     * 原罪名
+     */
+    @ApiModelProperty("原罪名")
+    private String originalCharge;
+
+    /**
+     * 释放日期
+     */
+    @ApiModelProperty("释放日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date sentenceEnd;
+
+    /**
+     * 服刑场所
+     */
+    @ApiModelProperty("服刑场所")
+    private String sentencePlace;
+
+    /**
+     * 危险性评估
+     */
+    @ApiModelProperty("危险性评估")
+    private String riskAssessment;
+
+    /**
+     * 衔接日期
+     */
+    @ApiModelProperty("衔接日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date joinDate;
+
+    /**
+     * 衔接情况
+     */
+    @ApiModelProperty("衔接情况")
+    private String joinSituation;
+
+    /**
+     * 是否重新犯罪(1.是 0.否)
+     */
+    @ApiModelProperty("是否重新犯罪(1.是 0.否)")
+    private Integer isAgainCrime;
+
+    /**
+     * 重新犯罪名称
+     */
+    @ApiModelProperty("重新犯罪名称")
+    private String againCrimeName;
+
+    /**
+     * 安置情况
+     */
+    @ApiModelProperty("安置情况")
+    private String placeSituation;
+
+    /**
+     * 安置日期
+     */
+    @ApiModelProperty("安置日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date placeDate;
+
+    /**
+     * 未安置原因
+     */
+    @ApiModelProperty("未安置原因")
+    private String notPlaceReason;
+
+    /**
+     * 帮教开始
+     */
+    @ApiModelProperty("帮教开始")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date helpBegin;
+
+    /**
+     * 帮教结束
+     */
+    @ApiModelProperty("帮教结束")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date helpEnd;
+
+    /**
+     * 帮教情况
+     */
+    @ApiModelProperty("帮教情况")
+    private String helpSituation;
+
+    /**
+     * 备注
+     */
+    @ApiModelProperty("备注")
+    private String remark;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    private Date createAt;
+
+    /**
+     * 创建用户
+     */
+    @ApiModelProperty("创建用户")
+    private Long createBy;
+
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty("修改时间")
+    private Date updateAt;
+
+    /**
+     * 修改用户
+     */
+    @ApiModelProperty("修改用户")
+    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/ComStreetVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComStreetVO.java
new file mode 100644
index 0000000..360fdb3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComStreetVO.java
@@ -0,0 +1,66 @@
+package com.panzhihua.common.model.vos.community;
+
+import javax.validation.constraints.NotBlank;
+
+import com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author: llming
+ * @description: 街道
+ **/
+@Data
+@ApiModel("街道表")
+public class ComStreetVO {
+
+    @ApiModelProperty("街道Id")
+    private Long streetId;
+
+    @ApiModelProperty("街道名字")
+    @NotBlank(groups = {AddGroup.class}, message = "社区名字不能为空")
+    private String name;
+
+    @ApiModelProperty("省份地址编码")
+    @NotBlank(groups = {AddGroup.class}, message = "省份地址编码不能为空")
+    private Integer provinceCode;
+
+    @ApiModelProperty("市级地址编码")
+    @NotBlank(groups = {AddGroup.class}, message = "市级地址编码不能为空")
+    private Integer cityCode;
+
+    @ApiModelProperty("区级地址编码")
+    @NotBlank(groups = {AddGroup.class}, message = "纬度不能为空")
+    private Integer areaCode;
+
+    @ApiModelProperty("街道地址")
+    @NotBlank(groups = {AddGroup.class}, message = "街道地址不能为空")
+    private String address;
+
+    @ApiModelProperty("经度")
+    @NotBlank(groups = {AddGroup.class}, message = "经度不能为空")
+    private String lng;
+
+    @ApiModelProperty("纬度")
+    @NotBlank(groups = {AddGroup.class}, message = "纬度不能为空")
+    private String lat;
+
+    @ApiModelProperty("超管账号")
+    @NotBlank(groups = {AddGroup.class}, message = "超管账号不能为空")
+    private String account;
+
+    @ApiModelProperty("账号密码")
+    @NotBlank(groups = {AddGroup.class}, message = "账号密码不能为空")
+    private String password;
+
+    @ApiModelProperty("行政区域")
+    private String administrativeRegions;
+
+    @ApiModelProperty("调节站电话")
+    private String solvePhone;
+
+    @ApiModelProperty("状态1启用0禁用")
+    private Integer status;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwDangerReportExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwDangerReportExcelVO.java
new file mode 100644
index 0000000..75963ac
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwDangerReportExcelVO.java
@@ -0,0 +1,88 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+
+import lombok.Data;
+
+/**
+ * @description: 批量导出隐患报告台账管理
+ * @author: Null
+ * @date: 2021/7/28 17:11
+ */
+@Data
+public class ComSwDangerReportExcelVO implements Serializable {
+    /**
+     * 小区名称
+     */
+    @ExcelProperty(value = "安全隐患地址", index = 0)
+    private String address;
+    /**
+     * 隐患简述
+     */
+    @ExcelProperty(value = "隐患简述", index = 1)
+    private String dagerDescription;
+
+    /**
+     * 隐患类型
+     */
+    @ExcelProperty(value = "隐患类型", index = 2)
+    private String dangerType;
+
+    /**
+     * 状态
+     */
+    @ExcelProperty(value = "状态", index = 3)
+    private String status;
+
+    /**
+     * 风险等级
+     */
+    @ExcelProperty(value = "风险等级", index = 4)
+    private String dangerLevel;
+
+    /**
+     * 巡查人员
+     */
+    @ExcelProperty(value = "巡查人员", index = 5)
+    private String ppersonName;
+
+    /**
+     * 联系电话
+     */
+    @ExcelProperty(value = "联系电话", index = 6)
+    private String ppersonPhone;
+
+    /**
+     * 填报时间
+     */
+    @ExcelProperty(value = "填报时间", index = 7)
+    private Date createAt;
+
+    /**
+     * 备注
+     */
+    @ExcelProperty(value = "备注", index = 8)
+    private String remark;
+
+    /**
+     * 整改人员
+     */
+    @ExcelProperty(value = "整改人员", index = 9)
+    private String dpersonName;
+
+    /**
+     * 联系电话
+     */
+    @ExcelProperty(value = "联系电话", index = 10)
+    private String dpersonPhone;
+
+    /**
+     * 整改时间
+     */
+    @ExcelProperty(value = "整改时间", index = 11)
+    private Date rectifyTime;
+
+}
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
new file mode 100644
index 0000000..6a6c500
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwDangerReportVO.java
@@ -0,0 +1,329 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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;
+
+/**
+ * @auther txb
+ * @create 2021-07-23 14:38:38
+ * @describe 社区》安全工作》巡查记录实体类
+ */
+
+@Data
+@ApiModel("隐患报告表")
+public class ComSwDangerReportVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 隐患报告id
+     */
+    @ApiModelProperty("隐患报告id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty("社区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long communityId;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty("社区名称")
+    private String communityName;
+
+    /**
+     * 巡查时间
+     */
+    @ApiModelProperty("巡查时间")
+    private String PatrolTime;
+
+    /**
+     * (取字典表国家标准编码)巡查类型(1.防火巡查2.防汛巡查3.防疫巡查)
+     */
+    @ApiModelProperty("巡查类型(1.防火巡查2.防汛巡查3.防疫巡查),多条以逗号隔开")
+    private String patrolType;
+
+    /**
+     * 巡查领导id
+     */
+    @ApiModelProperty("巡查领导id")
+    private String patrolLeader;
+
+    /**
+     * 巡查领导名字
+     */
+    @ApiModelProperty("巡查领导名字")
+    private String patrolLeaderName;
+
+    /**
+     * 巡查人员,多个以逗号隔开
+     */
+    @ApiModelProperty("巡查人员id,多个以逗号隔开")
+    private String patrolPerson;
+
+    /**
+     * 巡查人员名字,多个以逗号隔开
+     */
+    @ApiModelProperty("巡查人员名字,多个以逗号隔开")
+    private String pPersonName;
+
+    /**
+     * 巡查人员电话,多个以逗号隔开
+     */
+    @ApiModelProperty("巡查人员电话,多个以逗号隔开")
+    private String pPersonPhone;
+
+    /**
+     * 巡查地址
+     */
+    @ApiModelProperty("巡查地址")
+    private String address;
+
+    /**
+     * 巡查记录
+     */
+    @ApiModelProperty("巡查记录")
+    private String recordContent;
+
+    /**
+     * 发现记录
+     */
+    @ApiModelProperty("发现记录")
+    private String findRecord;
+
+    /**
+     * 记录照片
+     */
+    @ApiModelProperty("记录照片")
+    private String recordPhoto;
+
+    /**
+     * 备注
+     */
+    @ApiModelProperty("备注")
+    private String remark;
+
+    /**
+     * 是否存在隐患(1是 、0否)
+     */
+    @ApiModelProperty("是否存在隐患(1是 、0否)")
+    private Integer isHiddenDanger;
+
+    /**
+     * 隐患名称
+     */
+    @ApiModelProperty("隐患名称")
+    private String dangerName;
+
+    /**
+     * 排查时间
+     */
+    @ApiModelProperty("排查时间")
+    private String checkTime;
+
+    /**
+     * 主体部门、单位或个人全称
+     */
+    @ApiModelProperty("主体部门、单位或个人全称")
+    private String unitName;
+
+    /**
+     * 隐患简述
+     */
+    @ApiModelProperty("隐患简述")
+    private String dagerDescription;
+
+    /**
+     * 隐患编号
+     */
+    @ApiModelProperty("隐患编号")
+    private Integer dangerNo;
+
+    /**
+     * 隐患类型(1.火灾隐患 2.汛情隐患 3.疫情隐患)
+     */
+    @ApiModelProperty("隐患类型(1.火灾隐患 2.汛情隐患 3.疫情隐患)")
+    private String dangerType;
+
+    /**
+     * 状态(1.待查看 2.待处理 3.待整改 4.已整改)
+     */
+    @ApiModelProperty("状态(1.待处理 2.待整改 3.已整改)")
+    private String status;
+
+    /**
+     * 风险等级(1.红色预警 2.橙色预警 3.黄色预警 4.蓝色预警)
+     */
+    @ApiModelProperty("风险等级(1.红色预警 2.橙色预警 3.黄色预警 4.蓝色预警)")
+    private String dangerLevel;
+
+    /**
+     * 是否立即整改(1是 、0否)
+     */
+    @ApiModelProperty("是否立即整改(1是 、0否)")
+    private Integer isRectifyImmediately;
+
+    /**
+     * 采取措施
+     */
+    @ApiModelProperty("采取措施")
+    private String takeSteps;
+
+    /**
+     * 采取措施照片
+     */
+    @ApiModelProperty("采取措施照片")
+    private String stepsPhoto;
+
+    /**
+     * 整改人员
+     */
+    @ApiModelProperty("整改人员")
+    private String rectifyPerson;
+
+    /**
+     * 整改人员名字,多个以逗号隔开
+     */
+    @ApiModelProperty("整改人员名字,多个以逗号隔开")
+    private String dPersonName;
+
+    /**
+     * 整改人员电话,多个以逗号隔开
+     */
+    @ApiModelProperty("整改人员电话,多个以逗号隔开")
+    private String dPersonPhone;
+
+    /**
+     * 整改时间
+     */
+    @ApiModelProperty("整改时间")
+    private String rectifyTime;
+
+    /**
+     * 社区处理建议
+     */
+    @ApiModelProperty("社区处理建议")
+    private String communitySuggestion;
+
+    /**
+     * 街道安全人员管理建议
+     */
+    @ApiModelProperty("街道安全人员管理建议")
+    private String streetSuggestion;
+
+    /**
+     * 承办记录
+     */
+    @ApiModelProperty("承办记录")
+    private String undertakeRecord;
+
+    /**
+     * 领导意见
+     */
+    @ApiModelProperty("领导意见")
+    private String leaderSuggestion;
+
+    /**
+     * 指派人员
+     */
+    @ApiModelProperty("指派人员")
+    private String assignPerson;
+
+    @ApiModelProperty("指派人员名称")
+    private String assignPersonName;
+
+    /**
+     * 创建时间
+     */
+    @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 updateAt;
+
+    /**
+     * 创建人
+     */
+    @ApiModelProperty("创建人")
+    private Long createBy;
+
+    @ApiModelProperty("创建人姓名")
+    private String createName;
+
+    @ApiModelProperty("巡查人姓名")
+    private String personName;
+
+    /**
+     * 是否指派
+     */
+    @ApiModelProperty("是否指派(1.是 0.否)")
+    private Integer isAssign;
+
+    @ApiModelProperty("巡查人员名称")
+    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 {
+        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/vos/community/ComSwPatrolRecordStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwPatrolRecordStatisticsVO.java
new file mode 100644
index 0000000..0032158
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwPatrolRecordStatisticsVO.java
@@ -0,0 +1,105 @@
+package com.panzhihua.common.model.vos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 巡查记录统计返回参数
+ */
+@Data
+@ApiModel("巡查记录统计返回参数")
+public class ComSwPatrolRecordStatisticsVO {
+
+    /**
+     * 巡查记录总数
+     */
+    @ApiModelProperty("巡查记录总数")
+    private Long patrolRecordTotal;
+    /**
+     * 防火巡查
+     */
+    @ApiModelProperty("防火巡查")
+    private Integer huoTotal;
+    /**
+     * 防汛巡查
+     */
+    @ApiModelProperty("防汛巡查")
+    private Integer xunTotal;
+    /**
+     * 防疫巡查
+     */
+    @ApiModelProperty("防疫巡查")
+    private Integer yiTotal;
+    /**
+     * 安全工作记录总数
+     */
+    @ApiModelProperty("安全工作记录总数")
+    private Integer safetyWorkTotal;
+
+    /**
+     * 隐患报告总数
+     */
+    @ApiModelProperty("隐患报告总数")
+    private Integer dangerTotal;
+
+    /**
+     * 已处理隐患总数
+     */
+    @ApiModelProperty("已处理隐患数")
+    private Integer handledDangerTotal;
+
+    /**
+     * 火灾隐患总数
+     */
+    @ApiModelProperty("火灾隐患总数")
+    private Integer huoDangerTotal;
+
+    /**
+     * 汛情隐患总数
+     */
+    @ApiModelProperty("汛情隐患总数")
+    private Integer xunDangerTotal;
+
+    /**
+     * 疫情隐患总数
+     */
+    @ApiModelProperty("疫情隐患总数")
+    private Integer yiDangerTotal;
+
+    /**
+     * 已整改火灾隐患总数
+     */
+    @ApiModelProperty("已整改火灾隐患总数")
+    private Integer huoHandledDangerTotal;
+
+    /**
+     * 未整改火灾隐患总数
+     */
+    @ApiModelProperty("未整改火灾隐患总数")
+    private Integer huoHandlingDangerTotal;
+
+    /**
+     * 已整改汛情隐患总数
+     */
+    @ApiModelProperty("已整改汛情隐患总数")
+    private Integer xunHandledDangerTotal;
+
+    /**
+     * 未整改汛情隐患总数
+     */
+    @ApiModelProperty("未整改汛情隐患总数")
+    private Integer xunHandlingDangerTotal;
+
+    /**
+     * 已整改疫情隐患总数
+     */
+    @ApiModelProperty("已整改疫情隐患总数")
+    private Integer yiHandledDangerTotal;
+
+    /**
+     * 未整改疫情隐患总数
+     */
+    @ApiModelProperty("未整改疫情隐患总数")
+    private Integer yiHandlingDangerTotal;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwPatrolRecordVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwPatrolRecordVO.java
new file mode 100644
index 0000000..63b8ff1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwPatrolRecordVO.java
@@ -0,0 +1,246 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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;
+
+/**
+ * @auther txb
+ * @create 2021-07-23 14:38:38
+ * @describe 社区》安全工作》巡查记录实体类
+ */
+
+@Data
+@ApiModel("巡查记录表")
+public class ComSwPatrolRecordVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 巡查记录id
+     */
+    @ApiModelProperty("巡查记录id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty("社区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long communityId;
+
+    /**
+     * 报告id
+     */
+    @ApiModelProperty("报告id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long reportId;
+
+    /**
+     * 巡查时间
+     */
+    @ApiModelProperty("巡查时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date patrolTime;
+
+    /**
+     * (取字典表国家标准编码)巡查类型(1.防火巡查2.防汛巡查3.防疫巡查)
+     */
+    @ApiModelProperty("巡查类型(1.防火巡查2.防汛巡查3.防疫巡查),多条以逗号隔开")
+    private String patrolType;
+
+    /**
+     * 巡查领导
+     */
+    @ApiModelProperty("巡查领导")
+    private String patrolLeader;
+
+    /**
+     * 巡查人员
+     */
+    @ApiModelProperty("巡查人员")
+    private String patrolPerson;
+
+    /**
+     * 巡查人员名字,多个以逗号隔开
+     */
+    @ApiModelProperty("巡查人员名字,多个以逗号隔开")
+    private String personName;
+
+    /**
+     * 巡查人员电话,多个以逗号隔开
+     */
+    @ApiModelProperty("巡查人员电话,多个以逗号隔开")
+    private String personPhone;
+
+    /**
+     * 巡查地址
+     */
+    @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("接班时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date successionTime;
+
+    /**
+     * 是否存在隐患(1是 、0否)
+     */
+    @ApiModelProperty("是否存在隐患(1是 、0否)")
+    private Integer isHiddenDanger;
+
+    /**
+     * 隐患名称
+     */
+    @ApiModelProperty("隐患名称")
+    private String dagerName;
+
+    /**
+     * 排查时间
+     */
+    @ApiModelProperty("排查时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date checkTime;
+
+    /**
+     * 主体部门、单位或个人全称
+     */
+    @ApiModelProperty("主体部门、单位或个人全称")
+    private String unitName;
+
+    /**
+     * 隐患简述
+     */
+    @ApiModelProperty("隐患简述")
+    private String dagerDescription;
+
+    /**
+     * 是否立即整改(1是 、0否)
+     */
+    @ApiModelProperty("是否立即整改(1是 、0否)")
+    private Integer isRectifyImmediately;
+
+    /**
+     * 采取措施
+     */
+    @ApiModelProperty("采取措施")
+    private String takeSteps;
+
+    /**
+     * 采取措施照片
+     */
+    @ApiModelProperty("采取措施照片")
+    private String stepsPhoto;
+
+    /**
+     * 整改人员
+     */
+    @ApiModelProperty("整改人员")
+    private String rectifyPerson;
+
+    /**
+     * 创建时间
+     */
+    @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 updateAt;
+
+    /**
+     * 创建人
+     */
+    @ApiModelProperty("创建人")
+    private Long createBy;
+
+    @ApiModelProperty("填报人名称")
+    private String createName;
+
+    /**
+     * 安全记录/隐患报告显示按钮
+     */
+    @ApiModelProperty("安全记录/隐患报告显示按钮(1.查看安全工作记录 2.隐患报告待填写 3.查看隐患报告)")
+    private Integer displayButton;
+
+    @ApiModelProperty("隐患/安全记录id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long serviceId;
+
+    @ApiModelProperty("隐患or安全记录(1.隐患 2.安全记录)")
+    private Integer dangerOrRecord;
+
+    @ApiModelProperty("社区名字")
+    private String communityName;
+
+    @ApiModelProperty("隐患编号")
+    private Integer dagerNo;
+
+    /**
+     * 巡查类型
+     */
+    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/vos/community/ComSwRotaExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwRotaExcelVO.java
new file mode 100644
index 0000000..64c9a23
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwRotaExcelVO.java
@@ -0,0 +1,46 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+
+import lombok.Data;
+
+/**
+ * @description: 批量导入值班表
+ * @author: Null
+ * @date: 2021/7/31 11:11
+ */
+@Data
+public class ComSwRotaExcelVO implements Serializable {
+    /**
+     * 时间
+     */
+    @ExcelProperty(value = "时间", index = 0)
+    private String rotaDate;
+
+    /**
+     * 值班人员
+     */
+    @ExcelProperty(value = "值班人员", index = 1)
+    private String personName;
+
+    /**
+     * 值班人员联系电话
+     */
+    @ExcelProperty(value = "值班人员联系电话", index = 2)
+    private String personPhone;
+
+    /**
+     * 值班领导
+     */
+    @ExcelProperty(value = "值班领导(多个以逗号隔开)", index = 3)
+    private String leaderName;
+
+    /**
+     * 值班人员联系电话
+     */
+    @ExcelProperty(value = "值班领导联系电话(多个以逗号隔开)", index = 4)
+    private String leaderPhone;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwRotaPersonVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwRotaPersonVO.java
new file mode 100644
index 0000000..0664b8d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwRotaPersonVO.java
@@ -0,0 +1,45 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+
+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;
+
+/**
+ * @auther txb
+ * @create 2021-07-23 14:38:38
+ * @describe 社区》安全工作》值班人员信息
+ */
+
+@Data
+@ApiModel("值班人员信息")
+public class ComSwRotaPersonVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @ApiModelProperty("id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 值班人
+     */
+    @ApiModelProperty("值班人")
+    private String name;
+
+    /**
+     * 联系电话
+     */
+    @ApiModelProperty("联系电话")
+    private String phone;
+
+    @ApiModelProperty("头像url")
+    private String imageUrl;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwRotaVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwRotaVO.java
new file mode 100644
index 0000000..0ae2ed0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwRotaVO.java
@@ -0,0 +1,85 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+
+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;
+
+/**
+ * @auther txb
+ * @create 2021-07-23 14:38:38
+ * @describe 社区》安全工作》值班表
+ */
+
+@Data
+@ApiModel("值班表")
+public class ComSwRotaVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 值班表id
+     */
+    @ApiModelProperty("值班表id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty("社区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long communityId;
+
+    /**
+     * 星期
+     */
+    @ApiModelProperty("星期")
+    private String weekDay;
+
+    /**
+     * 值班时间
+     */
+    @ApiModelProperty("值班时间")
+    private String rotaDate;
+
+    /**
+     * 值班领导,多个以逗号隔开
+     */
+    @ApiModelProperty("值班领导,多个以逗号隔开")
+    private String rotaLeader;
+
+    /**
+     * 领导名字,多个以逗号隔开
+     */
+    @ApiModelProperty("领导名字,多个以逗号隔开")
+    private String leaderName;
+
+    /**
+     * 领导联系电话,多个以逗号隔开
+     */
+    @ApiModelProperty("领导联系电话,多个以逗号隔开")
+    private String leaderPhone;
+
+    /**
+     * 值班人员,多个以逗号隔开
+     */
+    @ApiModelProperty("值班人员,多个以逗号隔开")
+    private String rotaPerson;
+
+    /**
+     * 人员联系电话,多个以逗号隔开
+     */
+    @ApiModelProperty("人员联系电话,多个以逗号隔开")
+    private String personName;
+
+    /**
+     * 人员联系电话,多个以逗号隔开
+     */
+    @ApiModelProperty("人员联系电话,多个以逗号隔开")
+    private String personPhone;
+}
\ No newline at end of file
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
new file mode 100644
index 0000000..607c13a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComSwSafetyWorkRecordVO.java
@@ -0,0 +1,170 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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;
+
+/**
+ * @auther txb
+ * @create 2021-07-23 14:38:38
+ * @describe 社区》安全工作》巡查记录实体类
+ */
+
+@Data
+@ApiModel("安全工作记录表")
+public class ComSwSafetyWorkRecordVO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 安全工作记录id
+     */
+    @ApiModelProperty("安全工作记录id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty("社区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long communityId;
+
+    /**
+     * 社区名称
+     */
+    @ApiModelProperty("社区名称")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private String communityName;
+
+    /**
+     * 巡查时间
+     */
+    @ApiModelProperty("巡查时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date patrolTime;
+
+    /**
+     * (取字典表国家标准编码)巡查类型(1.防火巡查2.防汛巡查3.防疫巡查)
+     */
+    @ApiModelProperty("巡查类型(1.防火巡查2.防汛巡查3.防疫巡查),多条以逗号隔开")
+    private String patrolType;
+
+    /**
+     * 巡查领导id
+     */
+    @ApiModelProperty("巡查领导id")
+    private String patrolLeader;
+
+    /**
+     * 巡查人员
+     */
+    @ApiModelProperty("巡查人员")
+    private String patrolPerson;
+
+    /**
+     * 巡查地址
+     */
+    @ApiModelProperty("巡查地址")
+    private String address;
+
+    /**
+     * 巡查记录
+     */
+    @ApiModelProperty("巡查记录")
+    private String recordContent;
+
+    /**
+     * 发现记录
+     */
+    @ApiModelProperty("发现记录")
+    private String findRecord;
+
+    /**
+     * 记录照片
+     */
+    @ApiModelProperty("记录照片")
+    private String recordPhoto;
+
+    /**
+     * 备注
+     */
+    @ApiModelProperty("备注")
+    private String remark;
+
+    /**
+     * 创建时间
+     */
+    @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 updateAt;
+
+    /**
+     * 创建人
+     */
+    @ApiModelProperty("创建人")
+    private Long createBy;
+
+    @ApiModelProperty("填报人名字")
+    private String createName;
+
+    /**
+     * 巡查人员名字,多个以逗号隔开
+     */
+    @ApiModelProperty("巡查人员名字,多个以逗号隔开")
+    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 {
+        int huo = 1;
+        int xun = 2;
+        int yi = 3;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComVeteransPopulationVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComVeteransPopulationVO.java
new file mode 100644
index 0000000..c38ec3b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ComVeteransPopulationVO.java
@@ -0,0 +1,356 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+
+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;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 19:48:54
+ * @describe 实有人口导入》退役军人表实体类
+ */
+
+@Data
+@ApiModel("退役军人表")
+@EncryptDecryptClass
+public class ComVeteransPopulationVO {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty("退役军人id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 人口id
+     */
+    @ApiModelProperty("人口id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long populationId;
+
+    /**
+     * 街道id
+     */
+    @ApiModelProperty("街道id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long streetId;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty("社区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long communityId;
+
+    /**
+     * 名字
+     */
+    @ApiModelProperty("名字")
+    private String name;
+
+    /**
+     * 身份证号码
+     */
+    @ApiModelProperty("身份证号码")
+    @EncryptDecryptField
+    private String cardNo;
+
+    /**
+     * 联系电话
+     */
+    @ApiModelProperty("联系电话")
+    private String phone;
+
+    /**
+     * 人员状态:正常、失联、出国(取字典表)
+     */
+    @ApiModelProperty("人员状态:正常、失联、出国(取字典表)")
+    private String personStatus;
+
+    /**
+     * 机构
+     */
+    @ApiModelProperty("机构")
+    private String organization;
+
+    /**
+     * 照片
+     */
+    @ApiModelProperty("照片")
+    private String photo;
+
+    /**
+     * 户籍性质
+     */
+    @ApiModelProperty("户籍性质")
+    private String regiterNature;
+
+    /**
+     * 入伍时间
+     */
+    @ApiModelProperty("入伍时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date enlistDate;
+
+    /**
+     * 退伍时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @ApiModelProperty("退伍时间")
+    private Date retireDate;
+
+    /**
+     * 人员类别
+     */
+    @ApiModelProperty("人员类别")
+    private String personCategory;
+
+    /**
+     * 住房状况
+     */
+    @ApiModelProperty("住房状况")
+    private String houseSituation;
+
+    /**
+     * 住房状况其他
+     */
+    @ApiModelProperty("住房状况其他")
+    private String houseSituationOther;
+
+    /**
+     * 建筑面积
+     */
+    @ApiModelProperty("建筑面积")
+    private String buildArea;
+
+    /**
+     * 现就业情况
+     */
+    @ApiModelProperty("现就业情况")
+    private String employmentSituation;
+
+    /**
+     * 在职情况类型
+     */
+    @ApiModelProperty("在职情况类型")
+    private String incumbencyType;
+
+    /**
+     * 现就业情况其他
+     */
+    @ApiModelProperty("现就业情况其他")
+    private String employmentSituationOther;
+
+    /**
+     * 养老保险
+     */
+    @ApiModelProperty("养老保险")
+    private String endowmentInsurance;
+
+    /**
+     * 医疗保险
+     */
+    @ApiModelProperty("医疗保险")
+    private String medicalInsurance;
+
+    /**
+     * 现个人年收入(单位:元)
+     */
+    @ApiModelProperty("现个人年收入(单位:元)")
+    private String annualIncome;
+
+    /**
+     * 父亲健康状况
+     */
+    @ApiModelProperty("父亲健康状况")
+    private String fatherHealthy;
+
+    /**
+     * 母亲健康状况
+     */
+    @ApiModelProperty("母亲健康状况")
+    private String motherHealthy;
+
+    /**
+     * 配偶健康状况
+     */
+    @ApiModelProperty("配偶健康状况")
+    private String spouseHealthy;
+
+    /**
+     * 儿子健康状况
+     */
+    @ApiModelProperty("儿子健康状况")
+    private String sonHealthy;
+
+    /**
+     * 女儿健康状况
+     */
+    @ApiModelProperty("女儿健康状况")
+    private String daughterDealthy;
+
+    /**
+     * 主要困难
+     */
+    @ApiModelProperty("主要困难")
+    private String mainDifficulty;
+
+    /**
+     * 其他困难
+     */
+    @ApiModelProperty("其他困难")
+    private String otherDifficulty;
+
+    /**
+     * 主要诉求
+     */
+    @ApiModelProperty("主要诉求")
+    private String mainDemand;
+
+    /**
+     * 主要诉求其他事项问题(手填)
+     */
+    @ApiModelProperty("主要诉求其他事项问题(手填)")
+    private String mainDemandOther;
+
+    /**
+     * 需参加的学历培训
+     */
+    @ApiModelProperty("需参加的学历培训")
+    private String academicTraining;
+
+    /**
+     * 是否已参加退役军人培训(政府性质)1.是 2.否
+     */
+    @ApiModelProperty("是否已参加退役军人培训(政府性质)1.是 2.否")
+    private Integer isVeteransTraining;
+
+    /**
+     * 入伍前学历
+     */
+    @ApiModelProperty("入伍前学历")
+    private String educationBeforeEnlistment;
+
+    /**
+     * 再教育学历
+     */
+    @ApiModelProperty("再教育学历")
+    private String reEducation;
+
+    /**
+     * 所学专业
+     */
+    @ApiModelProperty("所学专业")
+    private String major;
+
+    /**
+     * 所学专业其他
+     */
+    @ApiModelProperty("所学专业其他")
+    private String majorOther;
+
+    /**
+     * 曾从事行业(含现从事行业)
+     */
+    @ApiModelProperty("曾从事行业(含现从事行业)")
+    private String onceEngagedIndustry;
+
+    /**
+     * 曾从事行业(含现从事行业)其他(手填)
+     */
+    @ApiModelProperty("曾从事行业(含现从事行业)其他(手填)")
+    private String onceEngagedIndustryOther;
+
+    /**
+     * 意向就业地点
+     */
+    @ApiModelProperty("意向就业地点")
+    private String intendedPlaceOfEmployment;
+
+    /**
+     * 意向就业地点其他地区(手填)
+     */
+    @ApiModelProperty("意向就业地点其他地区(手填)")
+    private String intendedPlaceOfEmploymentOther;
+
+    /**
+     * 待业期间的求职意向
+     */
+    @ApiModelProperty("待业期间的求职意向")
+    private String unemploymedEngagedIndustry;
+
+    /**
+     * 待业期间的求职意向其他(手填)
+     */
+    @ApiModelProperty("待业期间的求职意向其他(手填)")
+    private String unemploymedEngagedIndustryOther;
+
+    /**
+     * 是否有创业意愿(1.是 2.否)
+     */
+    @ApiModelProperty("是否有创业意愿(1.是 2.否)")
+    private Integer isBusiness;
+
+    /**
+     * 创业意愿
+     */
+    @ApiModelProperty("创业意愿")
+    private String businessDesire;
+
+    /**
+     * 备注
+     */
+    @ApiModelProperty("备注")
+    private String remark;
+
+    /**
+     * 填表单位
+     */
+    @ApiModelProperty("填表单位")
+    private String fillUnit;
+
+    /**
+     * 填表人
+     */
+    @ApiModelProperty("填表人")
+    private String fillPerson;
+
+    /**
+     * 填表人联系电话
+     */
+    @ApiModelProperty("填表人联系电话")
+    private String fillPersonPhone;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    private Date createAt;
+
+    /**
+     * 创建用户
+     */
+    @ApiModelProperty("创建用户")
+    private Long createBy;
+
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty("修改时间")
+    private Date updateAt;
+
+    /**
+     * 修改用户
+     */
+    @ApiModelProperty("修改用户")
+    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/CommunityActivitiesVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/CommunityActivitiesVO.java
new file mode 100644
index 0000000..ea74361
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/CommunityActivitiesVO.java
@@ -0,0 +1,33 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 社区活动情况
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-28 15:08
+ **/
+@Data
+@ApiModel("社区活动情况")
+public class CommunityActivitiesVO {
+    @ApiModelProperty("随手拍")
+    private Integer eashPhoto;
+    @ApiModelProperty("微心愿")
+    private Integer microWish;
+    @ApiModelProperty("社区活动")
+    private Integer actActivity;
+    @ApiModelProperty("党员活动")
+    private Integer pbActivity;
+    @ApiModelProperty("一起议")
+    private Integer discuss;
+    @ApiModelProperty("日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date date;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/CommunityGovernanceTrendsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/CommunityGovernanceTrendsVO.java
new file mode 100644
index 0000000..fb55942
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/CommunityGovernanceTrendsVO.java
@@ -0,0 +1,22 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 社区治理动态
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-28 15:04
+ **/
+@Data
+@ApiModel("社区治理动态")
+public class CommunityGovernanceTrendsVO {
+    @ApiModelProperty("治理类型")
+    private List<String> x;
+    @ApiModelProperty("动态条数")
+    private List<String> y;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/CommunityPublicityVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/CommunityPublicityVO.java
new file mode 100644
index 0000000..47b1da1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/CommunityPublicityVO.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.util.Date;
+
+@Data
+@ApiModel("社区宣传表")
+public class CommunityPublicityVO {
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+    /**
+     * 内容
+     */
+    @ApiModelProperty(value = "内容")
+    private String content;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/DataCount.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/DataCount.java
new file mode 100644
index 0000000..2fa7706
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/DataCount.java
@@ -0,0 +1,16 @@
+package com.panzhihua.common.model.vos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("问题清单、需求清单、报到服务活动数量")
+public class DataCount {
+    @ApiModelProperty("问题清单数")
+    private Integer questions;
+    @ApiModelProperty("需求清单数")
+    private Integer demands;
+    @ApiModelProperty("报道服务活动数")
+    private Integer activities;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/EditComMngPopulationVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/EditComMngPopulationVO.java
new file mode 100644
index 0000000..19674b2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/EditComMngPopulationVO.java
@@ -0,0 +1,153 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+
+import javax.validation.constraints.NotBlank;
+
+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 com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 实有人口Vo
+ */
+@Data
+@ApiModel("实有人口编辑表")
+@EncryptDecryptClass
+public class EditComMngPopulationVO implements Serializable {
+
+    /**
+     * 自增 id
+     */
+    @ApiModelProperty("实有人口id")
+    private Long id;
+    /**
+     * 小区id(实有房屋id)
+     */
+    @ApiModelProperty("小区id(实有房屋id)")
+    private Integer villageId;
+    /**
+     * 家庭成员(姓名)
+     */
+    @ApiModelProperty("家庭成员(姓名)")
+    @NotBlank(groups = {AddGroup.class}, message = "家庭成员(姓名)不可为空")
+    private String name;
+
+    @ApiModelProperty("性别(1.男 2.女 3.未知)")
+    @NotBlank(groups = {AddGroup.class}, message = "性别不可为空")
+    private Integer sex;
+
+    @ApiModelProperty("年龄")
+    @NotBlank(groups = {AddGroup.class}, message = "年龄不可为空")
+    private Integer age;
+
+    @NotBlank(groups = {AddGroup.class}, message = "身份证号码不可为空")
+    @ApiModelProperty("身份证号码")
+    @EncryptDecryptField
+    @Sensitive(strategy = SensitiveStrategy.ID_CARD)
+    private String cardNo;
+
+    @ApiModelProperty("街路巷")
+    @NotBlank(groups = {AddGroup.class}, message = "街路巷不可为空")
+    private String road;
+
+    @ApiModelProperty("门牌号")
+    @NotBlank(groups = {AddGroup.class}, message = "门牌号不可为空")
+    private String doorNo;
+
+    @ApiModelProperty("楼排号")
+    @NotBlank(groups = {AddGroup.class}, message = "楼排号不可为空")
+    private String floor;
+
+    @ApiModelProperty("单元号")
+    @NotBlank(groups = {AddGroup.class}, message = "单元号不可为空")
+    private String unitNo;
+
+    @ApiModelProperty("户室(房间号)")
+    @NotBlank(groups = {AddGroup.class}, message = "户室(房间号)不可为空")
+    private String houseNo;
+
+    @ApiModelProperty("政治面貌(1.中共党员2.中共预备党员3.共青团员4.民革党员5.民盟盟员6.民建会员7.8.农工党党员9.致公党党员10.九三学社社员11.台盟盟员12.无党派人士13.群众)")
+    @NotBlank(groups = {AddGroup.class}, message = "政治面貌不可为空")
+    private Integer politicalOutlook;
+
+    @ApiModelProperty("工作单位")
+    private String workCompany;
+
+    @ApiModelProperty("特殊情况")
+    private String specialSituation;
+
+    @ApiModelProperty("联系方式")
+    @NotBlank(groups = {AddGroup.class}, message = "联系方式不可为空")
+    @EncryptDecryptField
+    @Sensitive(strategy = SensitiveStrategy.ID_CARD)
+    private String phone;
+
+    @ApiModelProperty("备注")
+    private String remark;
+
+    @ApiModelProperty("标签集合(多个标签以,隔开,如物业工作人员,物业")
+    private String label;
+
+    @ApiModelProperty("籍贯")
+    private String nativePlace;
+
+    @ApiModelProperty("民族")
+    private String nation;
+
+    @ApiModelProperty("小区名字")
+    private String alley;
+
+    @ApiModelProperty("是否租住 是否租住(0.否 1.是)")
+    @NotBlank(groups = {AddGroup.class}, message = "是否租住不可为空")
+    private Integer isRent;
+
+    @ApiModelProperty("文化程度(1.小学 2.初中 3.高中 4.中专 5.大专 6.本科 7.硕士 8.博士 9.其他)")
+    private Integer cultureLevel;
+
+    @ApiModelProperty("婚姻状况(1.未婚 2.已婚 3.离异 4.丧偶 5.分居 6.其他)")
+    private Integer marriage;
+
+    @ApiModelProperty("健康状况")
+    private String healthy;
+
+    @ApiModelProperty("与户主关系(1.户主 2.配偶 3.子女 4.孙女 5.父母 6.其他)")
+    private Integer relation;
+
+    @ApiModelProperty("外地or本地(1.本地  2.外地)")
+    private Integer outOrLocal;
+
+    @ApiModelProperty("户口所在地")
+    private String censusRegister;
+
+    public interface sex {
+        int nan = 1;
+        int nv = 2;
+        int no = 3;
+    }
+
+    /**
+     * 是否租住
+     */
+    public interface isOk {
+        int yes = 1;
+        int no = 0;
+    }
+
+    /**
+     * 政治面貌
+     */
+    public interface politicalOutlook {
+        int dang = 1;
+        int tuan = 3;
+        int wu = 12;
+        int qun = 13;
+        int no = 13;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/EldersAuthDetailsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/EldersAuthDetailsVO.java
new file mode 100644
index 0000000..0ba505a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/EldersAuthDetailsVO.java
@@ -0,0 +1,86 @@
+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 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;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ */
+@Data
+@ApiModel("高龄认证返回参数")
+@EncryptDecryptClass
+public class EldersAuthDetailsVO {
+
+    @ApiModelProperty(value = "ID")
+    private Long id;
+
+    @ApiModelProperty(value = "创建人")
+    private Long createBy;
+
+    @ApiModelProperty(value = "认证时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty(value = "更新人")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAt;
+
+    @ApiModelProperty(value = "身份证")
+    @Sensitive(strategy = SensitiveStrategy.ID_CARD)
+    @EncryptDecryptField
+    private String idCard;
+
+    @ApiModelProperty(value = "认证人姓名")
+    private String authUserName;
+
+    @ApiModelProperty(value = "视频地址")
+    private String videoUrl;
+
+    @ApiModelProperty(value = "提交人")
+    private Long sumitUserId;
+
+    @ApiModelProperty(value = "户籍地")
+    private String domicile;
+
+    @ApiModelProperty(value = "状态")
+    private String status;
+
+    @ApiModelProperty(value = "出生日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date birthDay;
+
+    @ApiModelProperty(value = "申请人")
+    private String submitUserName;
+
+    @ApiModelProperty(value = "申请账号")
+    private String submitUserAccount;
+
+    @ApiModelProperty(value = "年龄")
+    private Integer age;
+
+    @ApiModelProperty(value = "社区反馈")
+    private List<EldersAuthFeedbackVO> eldersAuthFeedbackVOList;
+
+    @ApiModelProperty(value = "家庭成员ID")
+    private Long familyUserId;
+
+    @ApiModelProperty(value = "核验类型(1.视频认证 2.人脸核验)")
+    private Integer type;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/EldersAuthElderlyExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/EldersAuthElderlyExcelVO.java
new file mode 100644
index 0000000..688ca73
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/EldersAuthElderlyExcelVO.java
@@ -0,0 +1,36 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+
+import lombok.Data;
+
+/**
+ * @author xyh
+ * @date 2021/6/9 14:54
+ */
+@Data
+public class EldersAuthElderlyExcelVO implements Serializable {
+
+    private static final long serialVersionUID = -6256711519268125208L;
+
+    @ExcelProperty(value = "姓名", index = 0)
+    private String name;
+
+    @ExcelProperty(value = "身份证号", index = 1)
+    private String idCard;
+
+    @ExcelProperty(value = "是否健在", index = 2)
+    private String isExist;
+
+    @ExcelProperty(value = "是否登记", index = 3)
+    private String isBigAge;
+
+    private String birthday;
+    private Integer level;
+    private String domicile;
+    private Long communityId;
+    private Long createBy;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/EldersAuthFeedbackDetailsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/EldersAuthFeedbackDetailsVO.java
new file mode 100644
index 0000000..e6c3845
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/EldersAuthFeedbackDetailsVO.java
@@ -0,0 +1,44 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ */
+@Data
+@ApiModel("高龄认证社区反馈返回参数")
+public class EldersAuthFeedbackDetailsVO {
+
+    @ApiModelProperty(value = "ID")
+    private Long id;
+
+    @ApiModelProperty(value = "创建人")
+    private Long createBy;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty(value = "更新人")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAt;
+
+    @ApiModelProperty(value = "认证ID")
+    private Long authId;
+
+    @ApiModelProperty(value = "反馈结果")
+    private String feedBack;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/EldersAuthFeedbackVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/EldersAuthFeedbackVO.java
new file mode 100644
index 0000000..866e682
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/EldersAuthFeedbackVO.java
@@ -0,0 +1,44 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ */
+@Data
+@ApiModel("高龄认证社区反馈返回参数")
+public class EldersAuthFeedbackVO {
+
+    @ApiModelProperty(value = "ID")
+    private Long id;
+
+    @ApiModelProperty(value = "创建人")
+    private Long createBy;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty(value = "更新人")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAt;
+
+    @ApiModelProperty(value = "认证ID")
+    private Long authId;
+
+    @ApiModelProperty(value = "反馈结果")
+    private String feedBack;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/EldersAuthRecordExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/EldersAuthRecordExcelVO.java
new file mode 100644
index 0000000..e89d17e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/EldersAuthRecordExcelVO.java
@@ -0,0 +1,36 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.io.Serializable;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+
+import lombok.Data;
+
+/**
+ * @author xyh
+ * @date 2021/6/9 14:54
+ */
+@Data
+public class EldersAuthRecordExcelVO implements Serializable {
+
+    private static final long serialVersionUID = -6256711519268125208L;
+
+    @ExcelProperty(value = "姓名", index = 0)
+    private String name;
+
+    @ExcelProperty(value = "身份证号", index = 1)
+    private String idCard;
+
+    @ExcelProperty(value = "是否健在", index = 2)
+    private String isExist;
+
+    @ExcelProperty(value = "是否登记", index = 3)
+    private String isBigAge;
+
+    private String birthday;
+    private Integer level;
+    private String domicile;
+    private Long communityId;
+    private Long createBy;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/EldersAuthVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/EldersAuthVO.java
new file mode 100644
index 0000000..92d16f1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/EldersAuthVO.java
@@ -0,0 +1,85 @@
+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;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ */
+@Data
+@ApiModel("高龄认证返回参数")
+@EncryptDecryptClass
+public class EldersAuthVO {
+
+    @ApiModelProperty(value = "ID")
+    private Long id;
+
+    @ApiModelProperty(value = "创建人")
+    private Long createBy;
+
+    @ApiModelProperty(value = "申请时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty(value = "更新人")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAt;
+
+    @ApiModelProperty(value = "身份证")
+    @EncryptDecryptField
+    @Sensitive(strategy = SensitiveStrategy.ID_CARD)
+    private String idCard;
+
+    @ApiModelProperty(value = "认证人姓名")
+    private String authUserName;
+
+    @ApiModelProperty(value = "视频地址")
+    private String videoUrl;
+
+    @ApiModelProperty(value = "提交人")
+    private Long sumitUserId;
+
+    @ApiModelProperty(value = "申请人")
+    private String submitUserName;
+
+    @ApiModelProperty(value = "申请账号")
+    private String submitUserAccount;
+
+    @ApiModelProperty(value = "户籍地")
+    private String domicile;
+
+    @ApiModelProperty(value = "状态")
+    private String status;
+
+    @ApiModelProperty(value = "出生日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date birthDay;
+
+    @ApiModelProperty(value = "年龄")
+    private Integer age;
+
+    @ApiModelProperty(value = "家庭成员ID")
+    private Long familyUserId;
+
+    @ApiModelProperty(value = "核验类型(1.视频认证 2.人脸核验)")
+    private Integer type;
+
+    @ApiModelProperty(value = "人脸核验结果数据")
+    private Integer verificationResult;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/FourMemberDetailVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/FourMemberDetailVO.java
new file mode 100644
index 0000000..3fc7a5a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/FourMemberDetailVO.java
@@ -0,0 +1,19 @@
+package com.panzhihua.common.model.vos.community;
+
+import com.panzhihua.common.model.vos.partybuilding.ComPbMemberVO;
+import com.panzhihua.common.model.vos.partybuilding.PartyBuildingMemberVO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel
+public class FourMemberDetailVO {
+    @ApiModelProperty("基础数据及房屋数据")
+    private ComMngPopulationNoSecretVO comMngPopulationVO;
+    @ApiModelProperty("党员数据")
+    private ComPbMemberVO partyBuildingMemberVO;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/GrantIntegral.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/GrantIntegral.java
new file mode 100644
index 0000000..7253533
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/GrantIntegral.java
@@ -0,0 +1,35 @@
+package com.panzhihua.common.model.vos.community;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel
+public class GrantIntegral
+{
+    @ApiModelProperty("活动id")
+    private String activityId;
+
+    @ApiModelProperty("社区id")
+    private String communityId;
+
+    @ApiModelProperty("主键id")
+    private String id;
+
+    @ApiModelProperty("志愿者id")
+    private String volunteerId;
+
+    @ApiModelProperty("用户id")
+    private String userId;
+
+    @ApiModelProperty("发放积分")
+    private String grantIntegral="0";
+
+    @ApiModelProperty("活动id")
+    private List<GrantIntegral> peopleAndGranList;
+
+}
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/IndexUserCommunityVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/IndexUserCommunityVo.java
new file mode 100644
index 0000000..8d2b1e5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/IndexUserCommunityVo.java
@@ -0,0 +1,24 @@
+package com.panzhihua.common.model.vos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * 运营后台-首页社区通用户街道下社区统计汇总
+ */
+@Data
+@ApiModel("运营后台-首页社区通用户街道下社区统计汇总")
+public class IndexUserCommunityVo {
+
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    @ApiModelProperty(value = "社区下注册用户数量")
+    private Integer userNum;
+
+    @ApiModelProperty(value = "社区名称")
+    private String name;
+    
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/IndexUserStatisticsVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/IndexUserStatisticsVo.java
new file mode 100644
index 0000000..2ae5b4e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/IndexUserStatisticsVo.java
@@ -0,0 +1,19 @@
+package com.panzhihua.common.model.vos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author lyq
+ * 运营后台-首页社区通用户统计汇总
+ */
+@Data
+@ApiModel("运营后台-首页社区通用户统计汇总")
+public class IndexUserStatisticsVo {
+
+    @ApiModelProperty(value = "街道统计数据")
+    private List<IndexUserStreetVo> streetList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/IndexUserStreetExcelExportVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/IndexUserStreetExcelExportVo.java
new file mode 100644
index 0000000..8cf614d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/IndexUserStreetExcelExportVo.java
@@ -0,0 +1,30 @@
+package com.panzhihua.common.model.vos.community;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author lyq
+ * 运营后台-首页社区通用户街道统计汇总
+ */
+@Data
+@ApiModel("运营后台-首页社区通用户街道统计汇总")
+public class IndexUserStreetExcelExportVo {
+
+    @ExcelProperty(value = "街道名称", index = 0)
+    private String streetName;
+
+    @ExcelProperty(value = "社区名称", index = 1)
+    private String communityName;
+
+    @ExcelProperty(value = "街道下注册用户数量", index = 2)
+    private Integer streetNum;
+
+    @ExcelProperty(value = "社区下注册用户数量", index = 3)
+    private Integer userNum;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/IndexUserStreetVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/IndexUserStreetVo.java
new file mode 100644
index 0000000..2f5131d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/IndexUserStreetVo.java
@@ -0,0 +1,29 @@
+package com.panzhihua.common.model.vos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author lyq
+ * 运营后台-首页社区通用户街道统计汇总
+ */
+@Data
+@ApiModel("运营后台-首页社区通用户街道统计汇总")
+public class IndexUserStreetVo {
+
+    @ApiModelProperty(value = "街道下社区统计数据")
+    private List<IndexUserCommunityVo> communityList;
+
+    @ApiModelProperty(value = "街道id")
+    private Long streetId;
+
+    @ApiModelProperty(value = "街道下注册用户数量")
+    private Integer userNum;
+
+    @ApiModelProperty(value = "街道名称")
+    private String name;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/MostBeautifulVolunteerVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/MostBeautifulVolunteerVO.java
new file mode 100644
index 0000000..37fb296
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/MostBeautifulVolunteerVO.java
@@ -0,0 +1,60 @@
+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 MostBeautifulVolunteerVO {
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    private String id;
+    /**
+     * 志愿者姓名
+     */
+    @ApiModelProperty(value = "志愿者姓名")
+    private String name;
+    /**
+     * 志愿者证件url
+     */
+    @ApiModelProperty(value = "志愿者证件url")
+    private String certificateUrl;
+    /**
+     * 自我介绍
+     */
+    @ApiModelProperty(value = "自我介绍")
+    private String selfIntroduction;
+    /**
+     * 志愿者风采
+     */
+    @ApiModelProperty(value = "志愿者风采")
+    private String volunteerStyle;
+    /**
+     * 权重排序
+     */
+    @ApiModelProperty(value = "权重排序")
+    private String weightSorting;
+    /**
+     * 上下架状态( 0 下架    1 上架 )
+     */
+    @ApiModelProperty(value = "上下架状态( 0 下架    1 上架 )")
+    private String unmountType;
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/MyActivityEvaluateVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/MyActivityEvaluateVO.java
new file mode 100644
index 0000000..a6893e2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/MyActivityEvaluateVO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: MyActivityEvaluateVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 我的评价vo
+ * @author: hans
+ * @date: 2021/10/21 17:14
+ */
+@Data
+@ApiModel("我的评价vo")
+public class MyActivityEvaluateVO {
+
+    @ApiModelProperty("是否展示评价按钮(1.展示 0.不展示)")
+    private Integer isDisplay;
+
+    @ApiModelProperty("评论详情")
+    private List<ComActActEvaluateVO> myEvaluateList;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/PageComActMessageVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/PageComActMessageVO.java
new file mode 100644
index 0000000..d6f4789
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/PageComActMessageVO.java
@@ -0,0 +1,73 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.validation.constraints.NotBlank;
+
+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.validated.AddGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("留言")
+public class PageComActMessageVO {
+    @ApiModelProperty("主键")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("留言内容")
+    @NotBlank(groups = {AddGroup.class}, message = "留言内容不能为空")
+    private String msgContent;
+
+    @ApiModelProperty("图片地址 多个用逗号隔开")
+    private String photoPah;
+
+    @ApiModelProperty("留言对象联系方式")
+    private String phone;
+
+    @ApiModelProperty("回复人id")
+    private Long sendtoUserId;
+
+    @ApiModelProperty("回复人姓名")
+    private String sendtoUserName;
+
+    @ApiModelProperty("状态 1 待回复 2 已回复")
+    private Integer status;
+
+    @ApiModelProperty("是否公开 1 公开 2 保密")
+    private Integer ispublic;
+
+    @ApiModelProperty("留言人主键")
+    private Long userId;
+
+    @ApiModelProperty("留言人账号")
+    private String userAccount;
+
+    @ApiModelProperty("留言人电话")
+    @NotBlank(groups = {AddGroup.class}, message = "联系方式不能为空")
+    private String userPhone;
+    @ApiModelProperty("留言人姓名")
+    private String userName;
+
+    @ApiModelProperty("社区主键")
+    private Long communityId;
+    @ApiModelProperty("留言对象 1社区团队2社区团委")
+    private Long type;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("回复时间")
+    private Date createAt;
+
+    private List<ComActMessageBackVO> backList;
+
+    @ApiModelProperty("当前页数")
+    private Long pageNum;
+
+    @ApiModelProperty("每页记录数")
+    private Long pageSize;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/PartyActivityLine.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/PartyActivityLine.java
new file mode 100644
index 0000000..64f42be
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/PartyActivityLine.java
@@ -0,0 +1,17 @@
+package com.panzhihua.common.model.vos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel("党员活动柱状图")
+public class PartyActivityLine {
+    @ApiModelProperty("月份")
+    private String x;
+    @ApiModelProperty("数量")
+    private Integer y;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/PartyActivityStatics.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/PartyActivityStatics.java
new file mode 100644
index 0000000..85b6a1d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/PartyActivityStatics.java
@@ -0,0 +1,23 @@
+package com.panzhihua.common.model.vos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel("党员统计")
+public class PartyActivityStatics {
+    @ApiModelProperty("活动总数")
+    private Integer activityCount;
+    @ApiModelProperty("党员总数")
+    private Integer memberCount;
+    @ApiModelProperty("活动饼状图")
+    private List<PartyActivityTypeChart> partyActivityTypeChartList;
+    @ApiModelProperty("活动柱状图")
+    private List<PartyActivityLine> partyActivityLines;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/PartyActivityTypeChart.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/PartyActivityTypeChart.java
new file mode 100644
index 0000000..84d034c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/PartyActivityTypeChart.java
@@ -0,0 +1,19 @@
+package com.panzhihua.common.model.vos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel("党员活动类型饼状图")
+public class PartyActivityTypeChart {
+    @ApiModelProperty("名称")
+    private String name;
+    @ApiModelProperty("数量")
+    private Integer count;
+    @ApiModelProperty("百分比")
+    private Integer percent;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/PartyMemberDetailExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/PartyMemberDetailExcelVO.java
new file mode 100644
index 0000000..577e7e1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/PartyMemberDetailExcelVO.java
@@ -0,0 +1,43 @@
+package com.panzhihua.common.model.vos.community;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author zzj
+ */
+@Data
+public class PartyMemberDetailExcelVO {
+
+    @ExcelProperty("活动名称")
+    private String activityName;
+
+    @ExcelProperty("活动地址")
+    private String activityAddr;
+
+    @ExcelProperty("参与日期")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date beginAt;
+
+    @ExcelProperty(value = "签到地点")
+    private String position;
+
+    @ExcelProperty("签到时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date startTime;
+
+    @ExcelProperty("签退时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endTime;
+
+    @ExcelProperty("活动时长(小时)")
+    private Integer duration;
+
+    @ExcelProperty("获得积分")
+    private Integer rewardIntegral;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/PartyMemberDetailVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/PartyMemberDetailVO.java
new file mode 100644
index 0000000..ef0db21
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/PartyMemberDetailVO.java
@@ -0,0 +1,46 @@
+package com.panzhihua.common.model.vos.community;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.panzhihua.common.validated.AddGroup;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel
+public class PartyMemberDetailVO {
+
+    @ApiModelProperty("活动名称")
+    private String activityName;
+
+    @ApiModelProperty("活动地址")
+    private String activityAddr;
+
+    @ApiModelProperty("活动开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date beginAt;
+
+    @ApiModelProperty(value = "签到位置")
+    private String position;
+
+    @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 duration;
+
+    @ApiModelProperty("参与签到/打卡奖励积分")
+    private Integer rewardIntegral;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ProvinceCityReturnVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ProvinceCityReturnVO.java
new file mode 100644
index 0000000..7ad45e0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ProvinceCityReturnVO.java
@@ -0,0 +1,15 @@
+package com.panzhihua.common.model.vos.community;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zzj
+ */
+@Data
+public class ProvinceCityReturnVO {
+    private String name;
+    private String code;
+    private List<ProvinceCityReturnVO> provinceCityReturnVOList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/QRActivityCodeVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/QRActivityCodeVO.java
new file mode 100644
index 0000000..1794c16
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/QRActivityCodeVO.java
@@ -0,0 +1,23 @@
+package com.panzhihua.common.model.vos.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;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel
+public class QRActivityCodeVO {
+    @ApiModelProperty("数据主键id")
+    private String id;
+    @ApiModelProperty("二维码类型 1 支援者活动 2 普通社区活动 3 党建活动 4项目活动")
+    private Integer type;
+    @ApiModelProperty(value = "二维码id",example = "1")
+    private String codeId;
+    @ApiModelProperty("签到类型 1签到 2签退")
+    private Integer signType;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ResetComActMessageVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ResetComActMessageVO.java
new file mode 100644
index 0000000..cd6e270
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/ResetComActMessageVO.java
@@ -0,0 +1,17 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("留言-批量设置公开隐藏")
+public class ResetComActMessageVO {
+    @ApiModelProperty("主键集合")
+    private List<Long> ids;
+
+    @ApiModelProperty(value = "是否公开 1 公开 2 保密")
+    private Integer ispublic;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/SignactivityVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/SignactivityVO.java
new file mode 100644
index 0000000..a2a491c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/SignactivityVO.java
@@ -0,0 +1,37 @@
+package com.panzhihua.common.model.vos.community;
+
+import javax.validation.constraints.Min;
+
+import com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 报名活动
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-10 13:59
+ **/
+@Data
+@ApiModel("报名活动")
+public class SignactivityVO {
+
+    @ApiModelProperty(value = "类型 1 报名 2 取消报名", example = "1", required = true)
+    @Min(value = 1, groups = {AddGroup.class}, message = "操作类型不能为空")
+    private Integer type;
+    @ApiModelProperty(value = "以什么身份报名(1.居民 2.党员 3.志愿者)", example = "1", required = true)
+    @Min(value = 1, groups = {AddGroup.class}, message = "报名身份不能为空")
+    private Integer signIdentity;
+    @ApiModelProperty(value = "活动主键", required = true)
+    @Min(value = 1, groups = {AddGroup.class}, message = "活动主键不能为空")
+    private Long activityId;
+    @ApiModelProperty(value = "当前登录用户id", hidden = true)
+    private Long userId;
+    @ApiModelProperty(value = "单位id(党员以单位名义报名社区活动)")
+    private Long checkUnitId;
+    @ApiModelProperty("取消原因")
+    private String reason;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/StatisticsCommVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/StatisticsCommVO.java
new file mode 100644
index 0000000..5c96481
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/StatisticsCommVO.java
@@ -0,0 +1,35 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: StatisticsCommVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description:
+ * @author: hans
+ * @date: 2021/12/06 10:51
+ */
+@Data
+@ApiModel("统计通用信息")
+public class StatisticsCommVO {
+
+    @ApiModelProperty(value = "统计日期")
+    private String statisticsDate;
+
+    @ApiModelProperty(value = "统计项")
+    private String filed;
+
+    @ApiModelProperty(value = "数量")
+    private Integer num;
+
+    @ApiModelProperty("统计项占比")
+    private BigDecimal percent;
+
+    @ApiModelProperty("统计数据列表")
+    private List<StatisticsCommVO> statisticsCommVOS;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/StatisticsPhotoVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/StatisticsPhotoVO.java
new file mode 100644
index 0000000..c42f0e5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/StatisticsPhotoVO.java
@@ -0,0 +1,29 @@
+package com.panzhihua.common.model.vos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @title: StatisticsCommVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description:
+ * @author: hans
+ * @date: 2021/12/06 10:51
+ */
+@Data
+@ApiModel("统计随手拍")
+public class StatisticsPhotoVO {
+
+    @ApiModelProperty("数量")
+    private Integer countNum;
+    @ApiModelProperty("类型名称")
+    private String countName;
+    @ApiModelProperty("统计日期")
+    private String statisticsDate;
+    @ApiModelProperty("百分比")
+    private BigDecimal percent = BigDecimal.ZERO;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/SysConfVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/SysConfVO.java
new file mode 100644
index 0000000..8ba5342
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/SysConfVO.java
@@ -0,0 +1,47 @@
+package com.panzhihua.common.model.vos.community;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-06-09
+ */
+@Data
+@ApiModel("系统配置返回参数")
+public class SysConfVO {
+
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+
+    @ApiModelProperty(value = "参数名")
+    private String name;
+
+    @ApiModelProperty(value = "参数唯一编码")
+    private String code;
+
+    @ApiModelProperty(value = "参数值")
+    private String value;
+
+    @ApiModelProperty(value = "参数描述")
+    private String describe;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty(value = "创建用户")
+    private Long createBy;
+
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/TodoEventsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/TodoEventsVO.java
new file mode 100644
index 0000000..554b00d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/TodoEventsVO.java
@@ -0,0 +1,20 @@
+package com.panzhihua.common.model.vos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 代办事件
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-06 10:07
+ **/
+@Data
+@ApiModel("代办事件")
+public class TodoEventsVO {
+    @ApiModelProperty("数量")
+    private Integer num;
+    @ApiModelProperty("类型 1随手拍 2微心愿 3一起议 4志愿者审核")
+    private Integer type;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VillageVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VillageVO.java
new file mode 100644
index 0000000..f3565de
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VillageVO.java
@@ -0,0 +1,12 @@
+package com.panzhihua.common.model.vos.community;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class VillageVO {
+    private String value;
+    private String label;
+    List<BuildingVO> children;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerActivitiesPeopleVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerActivitiesPeopleVO.java
new file mode 100644
index 0000000..bf9bdd5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerActivitiesPeopleVO.java
@@ -0,0 +1,74 @@
+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 VolunteerActivitiesPeopleVO
+{
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    /**
+     * 活动id
+     */
+    @ApiModelProperty(value = "主键")
+    private String activityId;
+    /**
+     * 活动名称
+     */
+    @ApiModelProperty(value = "志愿者id")
+    private String volunteerId;
+
+    /**
+     * 活动名称
+     */
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+
+    /**
+     * 联系人姓名
+     */
+    @ApiModelProperty(value = "联系人姓名")
+    private String contactName;
+    /**
+     * 联系人电话
+     */
+    @ApiModelProperty(value = "联系人电话")
+    private String contactPhone;
+
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+    @ApiModelProperty(value = "奖励发放状态( 0 未发放   1已发放 )")
+    private String issueStatus;
+
+    @ApiModelProperty(value = "发放积分")
+    private String issuePoints;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerActivityVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerActivityVO.java
new file mode 100644
index 0000000..26158c9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerActivityVO.java
@@ -0,0 +1,140 @@
+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 VolunteerActivityVO
+{
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    private String id;
+    /**
+     * 活动名称
+     */
+    @ApiModelProperty(value = "活动名称")
+    private String name;
+
+    /**
+     * 活动状态
+     */
+    @ApiModelProperty(value = "活动状态")
+    private String acType;
+    /**
+     * 活动地址
+     */
+    @ApiModelProperty(value = "活动地址")
+    private String address;
+    /**
+     * 志愿者人数
+     */
+    @ApiModelProperty(value = "志愿者人数")
+    private String volunteerNum;
+    /**
+     * 活动状态
+     */
+    @ApiModelProperty(value = "活动状态")
+    private String acState;
+    /**
+     * 奖励发放状态
+     */
+    @ApiModelProperty(value = "奖励发放状态")
+    private String awardState;
+    /**
+     * 发布时间
+     */
+    @ApiModelProperty(value = "发布时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date issueTime;
+    /**
+     * 报名开始时间
+     */
+    @ApiModelProperty(value = "报名开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date applyBeginTime;
+    /**
+     * 报名结束时间
+     */
+    @ApiModelProperty(value = "报名结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date applyEndTime;
+    /**
+     * 活动开始时间
+     */
+    @ApiModelProperty(value = "活动开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date actityBeginTime;
+    /**
+     * 活动结束时间
+     */
+    @ApiModelProperty(value = "活动结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date actityEndTime;
+    /**
+     * 志愿者上限(0无限     大于0 就是限制)
+     */
+    @ApiModelProperty(value = "志愿者上限(0无限     大于0 就是限制)")
+    private String volunteerLimit;
+    /**
+     * 奖励积分
+     */
+    @ApiModelProperty(value = "奖励积分")
+    private String bonusPoints;
+    /**
+     * 是否可以报名后取消(0 不可以   1可以)
+     */
+    @ApiModelProperty(value = "是否可以报名后取消(0 不可以   1可以)")
+    private String isCancelled;
+    /**
+     * 联系人姓名
+     */
+    @ApiModelProperty(value = "联系人姓名")
+    private String contactName;
+    /**
+     * 联系人电话
+     */
+    @ApiModelProperty(value = "联系人电话")
+    private String contactPhone;
+    /**
+     * 活动封面
+     */
+    @ApiModelProperty(value = "活动封面")
+    private String activityCoverUrl;
+    /**
+     * 活动内容
+     */
+    @ApiModelProperty(value = "活动内容")
+    private String activityContent;
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+    @ApiModelProperty(value = "纬度")
+    private String lat;
+
+    @ApiModelProperty(value = "经度")
+    private String lng;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerCommunityConfigVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerCommunityConfigVO.java
new file mode 100644
index 0000000..a889d36
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerCommunityConfigVO.java
@@ -0,0 +1,63 @@
+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.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("志愿者社区商家配置")
+public class VolunteerCommunityConfigVO implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+    @ApiModelProperty(value = "折扣id")
+    private String discountId;
+
+    @ApiModelProperty(value = "兑换地址")
+    private String address;
+
+    @ApiModelProperty(value = "纬度")
+    private String lat;
+
+    @ApiModelProperty(value = "经度")
+    private String lng;
+
+    @ApiModelProperty(value = "是否开启提现 0不开  1开启")
+    private String isOpneWithdraw;
+
+    @ApiModelProperty(value = "兑换状态(1每天  2周一到周五   3周末)")
+    private String businessType;
+
+    @ApiModelProperty(value = "兑换开始时间")
+    private String businessStartTime;
+
+    @ApiModelProperty(value = "结束开始时间")
+    private String businessEndTime;
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerCommunityDiscountVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerCommunityDiscountVO.java
new file mode 100644
index 0000000..4cfcde7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerCommunityDiscountVO.java
@@ -0,0 +1,47 @@
+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 VolunteerCommunityDiscountVO {
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    private String id;
+    /**
+     * 折扣
+     */
+    @ApiModelProperty(value = "折扣")
+    private String discount;
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+    @ApiModelProperty(value = "积分")
+    private String integral;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerCreditsExchangeVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerCreditsExchangeVO.java
new file mode 100644
index 0000000..2bab390
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerCreditsExchangeVO.java
@@ -0,0 +1,110 @@
+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 VolunteerCreditsExchangeVO {
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    private String id;
+    /**
+     * 活动名称
+     */
+    @ApiModelProperty(value = "商品名称")
+    private String goodsName;
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date creationTime;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+    /**
+     * 订单号
+     */
+    @ApiModelProperty(value = "订单号")
+    private String orderNumber;
+    /**
+     * 商品id
+     */
+    @ApiModelProperty(value = "商品id")
+    private String goodsId;
+    /**
+     * 商品图片
+     */
+    @ApiModelProperty(value = "商品图片")
+    private String goodsUrl;
+    /**
+     * 所需积分
+     */
+    @ApiModelProperty(value = "所需积分")
+    private String needScore;
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+    /**
+     * 核销状态(0未核销  1已核销   2已取消)
+     */
+    @ApiModelProperty(value = "核销状态(0未核销  1已核销   2已取消)")
+    private String condition;
+    /**
+     * 核销时间
+     */
+    @ApiModelProperty(value = "核销时间")
+    private String disposeTime;
+
+    /**
+     * 商品数量
+     */
+    @ApiModelProperty(value = "1 社区兑换订单     2商家商品购买订单")
+    private String orderType;
+
+
+    /**
+     * 商品数量
+     */
+    @ApiModelProperty(value = "实际支付积分")
+    private String palyIntegral;
+
+    /**
+     * 商品数量
+     */
+    @ApiModelProperty(value = "商家id")
+    private String merchantId;
+
+    /**
+     * 商品购买数量
+     */
+    @ApiModelProperty(value = "商品购买数量")
+    private String palyNum;
+
+    /**
+     * 是否评价  0未评价  1已评价
+     */
+    @ApiModelProperty(value = "是否评价  0未评价  1已评价")
+    private String isEvaluate;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerIntegralMerchantVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerIntegralMerchantVO.java
new file mode 100644
index 0000000..142ffac
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerIntegralMerchantVO.java
@@ -0,0 +1,105 @@
+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.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("爱心积分商城商品")
+public class VolunteerIntegralMerchantVO implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    private String id;
+    /**
+     * 活动名称
+     */
+    @ApiModelProperty(value = "活动名称")
+    private String name;
+
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+
+    /**
+     * 商品价值
+     */
+    @ApiModelProperty(value = "商品价值")
+    private String commodityValue;
+
+
+    /**
+     * 所需积分
+     */
+    @ApiModelProperty(value = "所需积分")
+    private String integral;
+    /**
+     * 上架状态 0下架  1上架
+     */
+    @ApiModelProperty(value = "上架状态 0下架  1上架")
+    private String state;
+    /**
+     * 商品封面url
+     */
+    @ApiModelProperty(value = "商品封面url")
+    private String coverUrl;
+    /**
+     * 商品详情
+     */
+    @ApiModelProperty(value = "商品详情")
+    private String content;
+
+
+    @ApiModelProperty(value = "0 社区商品    1 商家商品")
+    private String goodType;
+
+    @ApiModelProperty(value = "商家id")
+    private String merchantId;
+
+
+    /**
+     * 商品数量
+     */
+    @ApiModelProperty(value = "商品数量")
+    private String goodNum;
+
+
+
+    /**
+     * 商品数量
+     */
+    @ApiModelProperty(value = "商品图片")
+    private String goodImgs;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerIntegralRecordVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerIntegralRecordVO.java
new file mode 100644
index 0000000..a54a952
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerIntegralRecordVO.java
@@ -0,0 +1,48 @@
+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.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("路北社区积分记录明细")
+public class VolunteerIntegralRecordVO implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "1志愿者活动   2 社区兑换  3商家抵扣")
+    private String iType;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private String creationTime;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private String updateTime;
+
+    @ApiModelProperty(value = "积分数量")
+    private String integral;
+
+    @ApiModelProperty(value = "志愿者id")
+    private String volunteerId;
+
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+
+
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerMerchantEvaluateVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerMerchantEvaluateVO.java
new file mode 100644
index 0000000..6256145
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerMerchantEvaluateVO.java
@@ -0,0 +1,95 @@
+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.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("志愿者商家商品评价")
+public class VolunteerMerchantEvaluateVO implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "商家id")
+    private String merchantId;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "评论人用户id")
+    private String userId;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "评价内容")
+    private String evaluateContent;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "评价图片")
+    private String evaluateUrl;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "商品id")
+    private String goodId;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "评价分数")
+    private String evaluateGrade;
+
+    /**
+     * 订单id
+     */
+    @ApiModelProperty(value = "订单id")
+    private String orderId;
+
+
+    @ApiModelProperty(value = "商家名称")
+    private String merchantName;
+
+    @ApiModelProperty(value = "用户名称")
+    private String userName;
+
+    @ApiModelProperty(value = "用户头像")
+    private String userUrl;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerMerchantVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerMerchantVO.java
new file mode 100644
index 0000000..21c8043
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerMerchantVO.java
@@ -0,0 +1,154 @@
+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.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("路北商家表")
+public class VolunteerMerchantVO implements Serializable
+{
+    private static final long serialVersionUID = -70884515430727555L;
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    private String id;
+    /**
+     * 活动名称
+     */
+    @ApiModelProperty(value = "活动名称")
+    private String name;
+
+    /**
+     * 商家类型
+     */
+    @ApiModelProperty(value = "商家类型")
+    private String merchantType;
+    /**
+     * 商家logo封面
+     */
+    @ApiModelProperty(value = "商家logo封面")
+    private String logoUrl;
+    /**
+     * 商家地址
+     */
+    @ApiModelProperty(value = "商家地址")
+    private String address;
+    /**
+     * 纬度
+     */
+    @ApiModelProperty(value = "纬度")
+    private String lat;
+    /**
+     * 经度
+     */
+    @ApiModelProperty(value = "经度")
+    private String lon;
+    /**
+     * 管理员id
+     */
+    @ApiModelProperty(value = "管理员id")
+    private String userId;
+    /**
+     * 对外服务电话
+     */
+    @ApiModelProperty(value = "对外服务电话")
+    private String serviceCall;
+    /**
+     * 商家简介
+     */
+    @ApiModelProperty(value = "商家简介")
+    private String merchantContent;
+    /**
+     * 商家图片
+     */
+    @ApiModelProperty(value = "商家图片")
+    private String merchantUrl;
+    /**
+     * 法人名字
+     */
+    @ApiModelProperty(value = "法人名字")
+    private String legalPersonName;
+    /**
+     * 法人联系电话
+     */
+    @ApiModelProperty(value = "法人联系电话")
+    private String legalPersonPhone;
+    /**
+     * 法人身份证
+     */
+    @ApiModelProperty(value = "法人身份证")
+    private String legalPersonIdCard;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+    /**
+     * 营业状态(1每天  2周一到周五   3周末)
+     */
+    @ApiModelProperty(value = "营业状态(1每天  2周一到周五   3周末)")
+    private String businessType;
+    /**
+     * 营业开始时间
+     */
+    @ApiModelProperty(value = "营业开始时间")
+    private String businessStartTime;
+    /**
+     * 营业结束时间
+     */
+    @ApiModelProperty(value = "营业结束时间")
+    private String businessEndTime;
+    /**
+     * 活动名称
+     */
+    @ApiModelProperty(value = "商家状态0禁用  1启用")
+    private String merchantState;
+    /**
+     * 活动名称
+     */
+    @ApiModelProperty(value = "商家折扣")
+    private String merchantDiscount;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+
+    @ApiModelProperty(value = "商家联系电话")
+    private String merchantPhone;
+
+    @ApiModelProperty(value = "商家联系人")
+    private String merchantLinkman;
+
+    @ApiModelProperty(value = "商家类型名称")
+    private String merchantTypeName;
+
+    @ApiModelProperty(value = "商家评分")
+    private String merchantGrade;
+
+    @ApiModelProperty(value = "商家积分")
+    private String merchantIntegral;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerMerchantWithdrawVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerMerchantWithdrawVO.java
new file mode 100644
index 0000000..0fea277
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerMerchantWithdrawVO.java
@@ -0,0 +1,54 @@
+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.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("路北社区商家提现")
+public class VolunteerMerchantWithdrawVO implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "商家id")
+    private String merchantId;
+
+    @ApiModelProperty(value = "商家名称")
+    private String merchantName;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+    @ApiModelProperty(value = "提取积分")
+    private String withdrawIntegral;
+
+    @ApiModelProperty(value = "处理时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date disposeTime;
+
+    @ApiModelProperty(value = "处理状态 0 待处理  1已处理")
+    private String disposeType;
+
+    @ApiModelProperty(value = "0 未删除    1 已删除")
+    private String isDelete;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerTypeVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerTypeVO.java
new file mode 100644
index 0000000..42dcaf8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/VolunteerTypeVO.java
@@ -0,0 +1,48 @@
+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 VolunteerTypeVO {
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    private String id;
+    /**
+     * 活动名称
+     */
+    @ApiModelProperty(value = "活动名称")
+    private String name;
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+    /**
+     * 状态类型
+     */
+    @ApiModelProperty(value = "1 志愿者活动    2 商家类型")
+    private String type;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/WeatherVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/WeatherVO.java
new file mode 100644
index 0000000..cbe7104
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/WeatherVO.java
@@ -0,0 +1,37 @@
+package com.panzhihua.common.model.vos.community;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("天气返回参数")
+public class WeatherVO {
+
+    @ApiModelProperty("省份名")
+    private String province;
+
+    @ApiModelProperty("城市名")
+    private String city;
+
+    @ApiModelProperty("区域编码")
+    private String adcode;
+
+    @ApiModelProperty("天气现象(汉字描述)")
+    private String weather;
+
+    @ApiModelProperty("实时气温,单位:摄氏度")
+    private String reporttime;
+
+    @ApiModelProperty("风向描述")
+    private String temperature;
+
+    @ApiModelProperty("风力级别,单位:级")
+    private String winddirection;
+
+    @ApiModelProperty("空气湿度")
+    private String windpower;
+
+    @ApiModelProperty("数据发布的时间")
+    private String humidity;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComAcidAreaVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComAcidAreaVO.java
new file mode 100644
index 0000000..4a01bb5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComAcidAreaVO.java
@@ -0,0 +1,12 @@
+package com.panzhihua.common.model.vos.community.acid;
+
+import lombok.Data;
+
+/**
+ * @author zzj
+ */
+@Data
+public class ComAcidAreaVO {
+    private String name;
+    private Integer count;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComAcidStaticVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComAcidStaticVO.java
new file mode 100644
index 0000000..bba132e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComAcidStaticVO.java
@@ -0,0 +1,15 @@
+package com.panzhihua.common.model.vos.community.acid;
+
+import com.panzhihua.common.model.vos.community.reserve.FiveCount;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zzj
+ */
+@Data
+public class ComAcidStaticVO extends FiveCount {
+    private String areaName;
+    private List<ComAcidAreaVO> comAcidAreaVOS;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidCharts.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidCharts.java
new file mode 100644
index 0000000..4997a96
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidCharts.java
@@ -0,0 +1,22 @@
+package com.panzhihua.common.model.vos.community.acid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel
+public class ComActAcidCharts {
+    @ApiModelProperty("报备人数")
+    private List<ComActAcidChartsVO> acidList;
+    @ApiModelProperty("风险人数")
+    private List<ComActAcidChartsVO> dangerList;
+    @ApiModelProperty("处理情况")
+    private List<ComActAcidChartsVO> checkList;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidChartsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidChartsVO.java
new file mode 100644
index 0000000..7888653
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidChartsVO.java
@@ -0,0 +1,23 @@
+package com.panzhihua.common.model.vos.community.acid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel
+public class ComActAcidChartsVO {
+    @ApiModelProperty("名字")
+    private String name;
+    @ApiModelProperty("数量一")
+    private Integer numOne;
+    @ApiModelProperty("数量二")
+    private Integer numTwo;
+    @ApiModelProperty("百分比")
+    private BigDecimal percent;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidCheckRecordVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidCheckRecordVO.java
new file mode 100644
index 0000000..b85244a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidCheckRecordVO.java
@@ -0,0 +1,68 @@
+package com.panzhihua.common.model.vos.community.acid;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 排查跟进表(ComActAcidCheckRecord)表实体类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 排查跟进表相关功能
+ *
+ * @author zzj
+ * @since 2022-04-24 16:14:25
+ */
+@Data
+@ApiModel("排查跟进表")
+public class ComActAcidCheckRecordVO implements Serializable {
+
+    private static final long serialVersionUID = 511018347419682300L;
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 人员id
+     */
+    @ApiModelProperty(value = "人员id")
+    private Long memberId;
+
+    /**
+     * 处理情况 1:集中隔离 2:居家隔离 3:健康监测 4:失联或尚需追踪 5:排除风险 6:暂未管控
+     */
+    @ApiModelProperty(value = "处理情况 1:集中隔离 2:居家隔离 3:健康监测 4:失联或尚需追踪 5:排除风险 6:暂未管控")
+    private Integer status;
+
+    /**
+     * 备注
+     */
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    /**
+     * 操作人
+     */
+    @ApiModelProperty(value = "操作人")
+    private String username;
+
+    @ApiModelProperty("记录时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date checkTime;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidColorChartsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidColorChartsVO.java
new file mode 100644
index 0000000..922de95
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidColorChartsVO.java
@@ -0,0 +1,23 @@
+package com.panzhihua.common.model.vos.community.acid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author yh
+ */
+@Data
+@ApiModel()
+public class ComActAcidColorChartsVO {
+    @ApiModelProperty("数量")
+    private Integer countNum;
+    @ApiModelProperty("类型名称")
+    private String countName;
+    @ApiModelProperty("健康码颜色")
+    private String colorMark;
+    @ApiModelProperty("百分比")
+    private BigDecimal percent = BigDecimal.ZERO;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidDangerMemberVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidDangerMemberVO.java
new file mode 100644
index 0000000..e38fd09
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidDangerMemberVO.java
@@ -0,0 +1,118 @@
+package com.panzhihua.common.model.vos.community.acid;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 风险人员表(ComActAcidDangerMember)表实体类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 风险人员表相关功能
+ *
+ * @author zzj
+ * @since 2022-04-24 16:12:09
+ */
+@Data
+@ApiModel("风险人员表")
+public class ComActAcidDangerMemberVO implements Serializable {
+
+    private static final long serialVersionUID = 889636932941876579L;
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    /**
+     * 填报记录id
+     */
+    @ApiModelProperty(value = "填报记录id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long recordId;
+
+    /**
+     * 姓名
+     */
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    /**
+     * 手机号
+     */
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+
+    /**
+     * 人员类型 1风险人员 2未填地址人员
+     */
+    @ApiModelProperty(value = "人员类型 1风险人员 2未填地址人员")
+    private Integer type;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(value = "更新时间")
+    private Date updateTime;
+
+    /**
+     * 数据来源
+     */
+    @ApiModelProperty(value = "数据来源 1系统")
+    private Integer source;
+
+    /**
+     * 处理情况 1:集中隔离 2:居家隔离 3:健康监测 4:失联或尚需追踪 5:排除风险 6:暂未管控
+     */
+    @ApiModelProperty(value = "当前处理情况 1:集中隔离 2:居家隔离 3:健康监测 4:失联或尚需追踪 5:排除风险 6:暂未管控")
+    private Integer status;
+
+    @ApiModelProperty(value = "健康码颜色")
+    private String colorMark;
+
+    @ApiModelProperty(value = "核酸检测")
+    private String acidTest;
+
+    @ApiModelProperty(value = "排查时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date checkTime;
+
+    @ApiModelProperty(value = "报备时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date reportTime;
+
+    /**
+     * 身份证
+     */
+    @ApiModelProperty(value = "身份证")
+    private String idCard;
+
+    /**
+     * 绑定单位
+     */
+    @ApiModelProperty(value = "绑定单位")
+    private String relationName;
+
+    @ApiModelProperty(value = "定位地址")
+    private String realAddress;
+
+    @ApiModelProperty(value = "风险类别")
+    private String riskType;
+
+    @ApiModelProperty(value = "在攀居住地")
+    private String localCity;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidMemberVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidMemberVO.java
new file mode 100644
index 0000000..007d105
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidMemberVO.java
@@ -0,0 +1,66 @@
+package com.panzhihua.common.model.vos.community.acid;
+
+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.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 防疫工作人员表(ComActAcidMember)表实体类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 防疫工作人员表相关功能
+ *
+ * @author zzj
+ * @since 2022-04-24 16:12:06
+ */
+@Data
+@ApiModel("防疫工作人员表")
+public class ComActAcidMemberVO implements Serializable {
+
+    private static final long serialVersionUID = -88592294208705755L;
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 姓名
+     */
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    /**
+     * 手机号
+     */
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+
+    /**
+     * 是否推送 1是 0否
+     */
+    @ApiModelProperty(value = "是否推送 1是 0否")
+    private Integer pushStatus;
+
+    /**
+     * 绑定单位
+     */
+    @ApiModelProperty(value = "绑定单位")
+    private String relationName;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    @ApiModelProperty(value = "关联小程序用户openid")
+    private String openid;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidRecordExcelReturn.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidRecordExcelReturn.java
new file mode 100644
index 0000000..a92e5d7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidRecordExcelReturn.java
@@ -0,0 +1,149 @@
+package com.panzhihua.common.model.vos.community.acid;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.format.DateTimeFormat;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.net.URL;
+import java.util.Date;
+
+/**
+ * @author zzj
+ */
+@Data
+public class ComActAcidRecordExcelReturn {
+
+    private Long id;
+    /**
+     * 姓名
+     */
+    @ExcelProperty(value = "姓名")
+    private String name;
+
+    /**
+     * 身份证
+     */
+    @ExcelProperty(value = "身份证")
+    private String idCard;
+
+    /**
+     * 手机号
+     */
+    @ExcelProperty(value = "手机号")
+    private String phone;
+
+    /**
+     * 出发城市
+     */
+    @ExcelProperty(value = "出发城市")
+    private String departureCity;
+
+
+    @ExcelProperty(value = "出发详细地址")
+    private String departureAddress;
+
+    /**
+     * 出发日期
+     */
+    @ExcelProperty(value = "出发日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @DateTimeFormat("yyyy-MM-dd")
+    private Date departureDate;
+
+    /**
+     * 旅居城市
+     */
+    @ExcelProperty(value = "中途旅居城市")
+    private String touristCity;
+
+    /**
+     * 在攀居住地
+     */
+    @ExcelProperty(value = "在攀居住地")
+    private String localCity;
+
+    /**
+     * 在攀地址
+     */
+    @ExcelProperty(value = "详细地址")
+    private String localAddress;
+
+    /**
+     * 到达日期
+     */
+    @ExcelProperty(value = "到达日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @DateTimeFormat("yyyy-MM-dd")
+    private Date arriveDate;
+
+    /**
+     * 健康码颜色
+     */
+    @ExcelProperty(value = "健康码状态")
+    private String colorMark;
+
+    /**
+     * 行程码
+     */
+    @ExcelProperty(value = "行程码是否带*")
+    private String travelCard;
+
+    /**
+     * 危险区
+     */
+    @ExcelProperty(value = "14天内是否到过中高风险地区")
+    private String dangerArea;
+
+    /**
+     * 境外城市
+     */
+    @ExcelProperty(value = "28天内是否到过境外或边境口岸城市")
+    private String outsideCity;
+
+    /**
+     * 疫苗接种
+     */
+    @ExcelProperty(value = "新冠疫苗接种情况")
+    private String vaccination;
+
+    /**
+     * 核酸检测
+     */
+    @ExcelProperty(value = "48小时内核酸检测")
+    private String acidTest;
+
+    @ExcelProperty("健康码截图")
+    private String colorImage;
+
+    @ExcelProperty("行程码截图")
+    private String travelImage;
+
+    @ExcelProperty("48小时核酸截图")
+    private String acidImage;
+
+    @ExcelProperty("疫苗接种截图")
+    private String vaccinationImage;
+
+    private Integer status;
+
+
+    @ApiModelProperty("交通方式")
+    private String transport;
+
+    @ApiModelProperty("行程信息")
+    private String transportInfo;
+
+
+    @ExcelProperty("是否核对")
+    private Integer checkStatus;
+
+    @ExcelProperty("是否特殊职业")
+    private String isSpecialJob;
+
+    @ExcelProperty("户籍地")
+    private String registerResidence;
+    @ExcelProperty("是否为入(返)川学生")
+    private String isStudent;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidRecordExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidRecordExcelVO.java
new file mode 100644
index 0000000..051ab79
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidRecordExcelVO.java
@@ -0,0 +1,140 @@
+package com.panzhihua.common.model.vos.community.acid;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.format.DateTimeFormat;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.net.URL;
+import java.util.Date;
+
+/**
+ * @author zzj
+ */
+@Data
+public class ComActAcidRecordExcelVO {
+    /**
+     * 姓名
+     */
+    @ExcelProperty(value = "姓名")
+    private String name;
+
+    /**
+     * 身份证
+     */
+    @ExcelProperty(value = "身份证")
+    private String idCard;
+
+    /**
+     * 手机号
+     */
+    @ExcelProperty(value = "手机号")
+    private String phone;
+
+    /**
+     * 出发城市
+     */
+    @ExcelProperty(value = "出发城市")
+    private String departureCity;
+
+    @ExcelProperty(value = "出发详细地址")
+    private String departureAddress;
+
+    /**
+     * 出发日期
+     */
+    @ExcelProperty(value = "出发日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @DateTimeFormat("yyyy-MM-dd")
+    private Date departureDate;
+
+    /**
+     * 旅居城市
+     */
+    @ExcelProperty(value = "中途旅居城市")
+    private String touristCity;
+
+    /**
+     * 在攀居住地
+     */
+    @ExcelProperty(value = "在攀居住地")
+    private String localCity;
+
+    /**
+     * 在攀地址
+     */
+    @ExcelProperty(value = "详细地址")
+    private String localAddress;
+
+    /**
+     * 到达日期
+     */
+    @ExcelProperty(value = "到达日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @DateTimeFormat("yyyy-MM-dd")
+    private Date arriveDate;
+
+    /**
+     * 健康码颜色
+     */
+    @ExcelProperty(value = "健康码状态")
+    private String colorMark;
+
+    /**
+     * 行程码
+     */
+    @ExcelProperty(value = "行程码是否带*")
+    private String travelCard;
+
+    /**
+     * 危险区
+     */
+    @ExcelProperty(value = "14天内是否到过中高风险地区")
+    private String dangerArea;
+
+    /**
+     * 境外城市
+     */
+    @ExcelProperty(value = "28天内是否到过境外或边境口岸城市")
+    private String outsideCity;
+
+    /**
+     * 疫苗接种
+     */
+    @ExcelProperty(value = "新冠疫苗接种情况")
+    private String vaccination;
+
+    /**
+     * 核酸检测
+     */
+    @ExcelProperty(value = "48小时内核酸检测")
+    private String acidTest;
+
+//    @ExcelProperty("健康码截图")
+//    private URL colorImage;
+//
+//    @ExcelProperty("行程码截图")
+//    private URL travelImage;
+//
+//    @ExcelProperty("48小时核酸截图")
+//    private URL acidImage;
+
+//    @ExcelProperty("疫苗接种截图")
+//    private URL vaccinationImage;
+
+    @ExcelProperty("交通工具")
+    private String transport;
+
+    @ExcelProperty("车次信息")
+    private String transportInfo;
+
+    @ExcelProperty("是否核对")
+    private String checkStatus;
+
+    @ExcelProperty("是否冷链、运输、海口等特殊行业从业者")
+    private String isSpecialJob;
+
+    @ExcelProperty("是否为入(返)川学生")
+    private String isStudent;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidRecordTimeVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidRecordTimeVO.java
new file mode 100644
index 0000000..c358f20
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidRecordTimeVO.java
@@ -0,0 +1,182 @@
+package com.panzhihua.common.model.vos.community.acid;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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;
+import java.util.Date;
+
+
+/**
+ * (ComActAcidRecord)表实体类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 相关功能
+ *
+ * @author zzj
+ * @since 2022-04-12 15:29:57
+ */
+@Data
+@ApiModel("防疫登记实体")
+public class ComActAcidRecordTimeVO implements Serializable {
+
+    private static final long serialVersionUID = 681488919320181854L;
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 姓名
+     */
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    /**
+     * 身份证
+     */
+    @ApiModelProperty(value = "身份证")
+    private String idCard;
+
+    /**
+     * 手机号
+     */
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+
+    /**
+     * 出发城市
+     */
+    @ApiModelProperty(value = "出发城市")
+    private String departureCity;
+
+    /**
+     * 出发地址
+     */
+    @ApiModelProperty(value = "出发地址")
+    private String departureAddress;
+
+    /**
+     * 出发日期
+     */
+    @ApiModelProperty(value = "出发日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date departureDate;
+
+    /**
+     * 旅居城市
+     */
+    @ApiModelProperty(value = "旅居城市")
+    private String touristCity;
+
+    /**
+     * 在攀居住地
+     */
+    @ApiModelProperty(value = "在攀居住地")
+    private String localCity;
+
+    /**
+     * 在攀地址
+     */
+    @ApiModelProperty(value = "在攀地址")
+    private String localAddress;
+
+    /**
+     * 到达日期
+     */
+    @ApiModelProperty(value = "到达日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date arriveDate;
+
+    /**
+     * 健康码颜色
+     */
+    @ApiModelProperty(value = "健康码颜色")
+    private String colorMark;
+
+    /**
+     * 行程码
+     */
+    @ApiModelProperty(value = "行程码")
+    private String travelCard;
+
+    /**
+     * 危险区
+     */
+    @ApiModelProperty(value = "危险区")
+    private String dangerArea;
+
+    /**
+     * 境外城市
+     */
+    @ApiModelProperty(value = "境外城市")
+    private String outsideCity;
+
+    /**
+     * 疫苗接种
+     */
+    @ApiModelProperty(value = "疫苗接种")
+    private String vaccination;
+
+    /**
+     * 核酸检测
+     */
+    @ApiModelProperty(value = "核酸检测")
+    private String acidTest;
+
+    /**
+     * 填报类型 1自己填报 2为他人填报
+     */
+    @ApiModelProperty(value = "填报类型 1自己填报 2为他人填报")
+    private Integer type;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+
+    @ApiModelProperty("定位地址")
+    private String realAddress;
+
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date createTime;
+
+    @ApiModelProperty("健康码截图")
+    private String colorImage;
+
+    @ApiModelProperty("行程码截图")
+    private String travelImage;
+
+    @ApiModelProperty("48小时核酸截图")
+    private String acidImage;
+
+    @ApiModelProperty("疫苗接种截图")
+    private String vaccinationImage;
+
+    @ApiModelProperty("交通方式")
+    private String transport;
+
+    @ApiModelProperty("行程信息")
+    private String transportInfo;
+
+    @ApiModelProperty("是否特殊职业")
+    private String isSpecialJob;
+
+    @ApiModelProperty("户籍地")
+    private String registerResidence;
+
+    @ApiModelProperty("是否学生")
+    private String isStudent;
+    @ApiModelProperty("证件类型")
+    private String cardType;
+
+
+    public interface type{
+        int zj=1;
+        int tr=2;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidRecordVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidRecordVO.java
new file mode 100644
index 0000000..2fbcdc2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidRecordVO.java
@@ -0,0 +1,206 @@
+package com.panzhihua.common.model.vos.community.acid;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * (ComActAcidRecord)表实体类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 相关功能
+ *
+ * @author zzj
+ * @since 2022-04-12 15:29:57
+ */
+@Data
+@ApiModel("防疫登记实体")
+public class ComActAcidRecordVO implements Serializable {
+
+    private static final long serialVersionUID = 681488919320181854L;
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 姓名
+     */
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    /**
+     * 身份证
+     */
+    @ApiModelProperty(value = "身份证")
+    private String idCard;
+
+    /**
+     * 手机号
+     */
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+
+    /**
+     * 出发城市
+     */
+    @ApiModelProperty(value = "出发城市")
+    private String departureCity;
+
+    /**
+     * 出发地址
+     */
+    @ApiModelProperty(value = "出发地址")
+    private String departureAddress;
+
+    /**
+     * 出发日期
+     */
+    @ApiModelProperty(value = "出发日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date departureDate;
+
+    /**
+     * 旅居城市
+     */
+    @ApiModelProperty(value = "旅居城市")
+    private String touristCity;
+
+    /**
+     * 在攀居住地
+     */
+    @ApiModelProperty(value = "在攀居住地")
+    private String localCity;
+
+    /**
+     * 在攀地址
+     */
+    @ApiModelProperty(value = "在攀地址")
+    private String localAddress;
+
+    /**
+     * 到达日期
+     */
+    @ApiModelProperty(value = "到达日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date arriveDate;
+
+    /**
+     * 健康码颜色
+     */
+    @ApiModelProperty(value = "健康码颜色")
+    private String colorMark;
+
+    /**
+     * 行程码
+     */
+    @ApiModelProperty(value = "行程码")
+    private String travelCard;
+
+    /**
+     * 危险区
+     */
+    @ApiModelProperty(value = "危险区")
+    private String dangerArea;
+
+    /**
+     * 境外城市
+     */
+    @ApiModelProperty(value = "境外城市")
+    private String outsideCity;
+
+    /**
+     * 疫苗接种
+     */
+    @ApiModelProperty(value = "疫苗接种")
+    private String vaccination;
+
+    /**
+     * 核酸检测
+     */
+    @ApiModelProperty(value = "核酸检测")
+    private String acidTest;
+
+    /**
+     * 填报类型 1自己填报 2为他人填报
+     */
+    @ApiModelProperty(value = "填报类型 1自己填报 2为他人填报")
+    private Integer type;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long userId;
+
+    @ApiModelProperty("定位地址")
+    private String realAddress;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date createTime;
+
+    @ApiModelProperty("健康码截图")
+    private String colorImage;
+
+    @ApiModelProperty("行程码截图")
+    private String travelImage;
+
+    @ApiModelProperty("48小时核酸截图")
+    private String acidImage;
+
+    @ApiModelProperty("疫苗接种截图")
+    private String vaccinationImage;
+
+    @ApiModelProperty("备注")
+    private String remark;
+
+    @ApiModelProperty("核对状态 0未核对 1已核对")
+    private Integer checkStatus;
+
+
+    @ApiModelProperty("交通方式")
+    private String transport;
+
+    @ApiModelProperty("行程信息")
+    private String transportInfo;
+
+    @ApiModelProperty("上一条id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long lastId;
+
+    @ApiModelProperty("下一条id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long nextId;
+
+
+    @ApiModelProperty("是否特殊职业")
+    private String isSpecialJob;
+
+    @ApiModelProperty("户籍地")
+    private String registerResidence;
+
+
+    @ApiModelProperty("是否学生")
+    private String isStudent;
+
+    @ApiModelProperty("证件类型")
+    private String cardType;
+
+    @ApiModelProperty("修改记录")
+    private List<ComActAcidUpdateRecordVO> comActAcidUpdateRecordVOList;
+
+    public interface type{
+        int zj=1;
+        int tr=2;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidUpdateRecordVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidUpdateRecordVO.java
new file mode 100644
index 0000000..0e38fb7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComActAcidUpdateRecordVO.java
@@ -0,0 +1,59 @@
+package com.panzhihua.common.model.vos.community.acid;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * (ComActAcidUpdateRecord)表实体类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 相关功能
+ *
+ * @author zzj
+ * @since 2022-05-30 14:57:03
+ */
+@Data
+@ApiModel("")
+public class ComActAcidUpdateRecordVO implements Serializable {
+
+    private static final long serialVersionUID = -90587224071702612L;
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 记录id
+     */
+    @ApiModelProperty(value = "记录id")
+    private Long recordId;
+
+    /**
+     * 修改人
+     */
+    @ApiModelProperty(value = "修改人")
+    private String name;
+
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty(value = "修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    /**
+     * 手机号
+     */
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComAreaCounty.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComAreaCounty.java
new file mode 100644
index 0000000..25c21a2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/acid/ComAreaCounty.java
@@ -0,0 +1,18 @@
+package com.panzhihua.common.model.vos.community.acid;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zzj
+ */
+@Data
+public class ComAreaCounty {
+    private String value;
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long communityId;
+    private List<ComAreaCounty> children;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BaseInfo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BaseInfo.java
new file mode 100644
index 0000000..f409221
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BaseInfo.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel("基础数据")
+public class BaseInfo {
+    @ApiModelProperty("人口数")
+    private Integer population;
+    @ApiModelProperty("注册用户量")
+    private Integer user;
+    @ApiModelProperty("入住小区")
+    private Integer village;
+    @ApiModelProperty("实有房屋")
+    private Integer house;
+    @ApiModelProperty("实有单位")
+    private Integer company;
+    @ApiModelProperty("党员数")
+    private Integer partyMember;
+    @ApiModelProperty("志愿者")
+    private Integer volunteer;
+    @ApiModelProperty("党组织")
+    private Integer partyOrg;
+    @ApiModelProperty("人大代表")
+    private Integer dpcNum;
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenActivityLine.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenActivityLine.java
new file mode 100644
index 0000000..dd9858b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenActivityLine.java
@@ -0,0 +1,21 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel("大屏党建活动折线图")
+public class BigScreenActivityLine {
+    @ApiModelProperty("月份")
+    private String x;
+    @ApiModelProperty("新增数")
+    private Integer y;
+    @ApiModelProperty("累计数")
+    private Integer countY;
+
+    private String year;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenActivityTop.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenActivityTop.java
new file mode 100644
index 0000000..2e02116
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenActivityTop.java
@@ -0,0 +1,21 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel("党员积分排名")
+public class BigScreenActivityTop {
+    @ApiModelProperty("姓名")
+    private String name;
+    @ApiModelProperty("党组织名")
+    private String orgName;
+    @ApiModelProperty("党员分数")
+    private Integer score;
+    @ApiModelProperty("头像")
+    private String url;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenAlarmStatisticsInfo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenAlarmStatisticsInfo.java
new file mode 100644
index 0000000..d7a6092
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenAlarmStatisticsInfo.java
@@ -0,0 +1,57 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: BigScreenAlarmStatisticsInfo
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 杨家坪定制-居家养老大屏统计数据
+ * @author: hans
+ * @date: 2022/02/28 17:23
+ */
+@Data
+@ApiModel("杨家坪定制-居家养老大屏统计数据")
+public class BigScreenAlarmStatisticsInfo {
+
+    @ApiModelProperty(value = "监测设备数量")
+    private Integer abnormalAlarmTotal;
+
+    @ApiModelProperty("服务设备数量")
+    private Integer oneKeyAlarmTotal;
+
+    @ApiModelProperty("异常总次数")
+    private Integer abnormalTotal;
+
+    @ApiModelProperty("服务总次数")
+    private Integer oneKeyTotal;
+
+    @ApiModelProperty("待处理异常总数")
+    private Integer pendingAbnormalTotal;
+
+    @ApiModelProperty("已处理异常总数")
+    private Integer completeAbnormalTotal;
+
+    @ApiModelProperty("待服务总数")
+    private Integer pendingServiceTotal;
+
+    @ApiModelProperty("已服务总数")
+    private Integer completeServiceTotal;
+
+    @ApiModelProperty(value = "异常新增折线数据")
+    private List<StatisticsCommVO> abnormalAddPolylineData;
+
+    @ApiModelProperty(value = "异常累计折线数据")
+    private List<StatisticsCommVO> abnormalTotalPolylineData;
+
+    @ApiModelProperty(value = "服务新增折线数据")
+    private List<StatisticsCommVO> serviceAddPolylineData;
+
+    @ApiModelProperty(value = "服务累计折线数据")
+    private List<StatisticsCommVO> serviceTotalPolylineData;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenCommunityStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenCommunityStatisticsVO.java
new file mode 100644
index 0000000..fe3f62d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenCommunityStatisticsVO.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
+import com.panzhihua.common.model.vos.community.screen.civil.CivilVillageStatisticsVO;
+import com.panzhihua.common.model.vos.community.screen.event.EventGridStatisticsVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: BigScreenCommunityStatisticsVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 大屏社区服务统计信息
+ * @author: hans
+ * @date: 2021/12/10 13:16
+ */
+@Data
+@ApiModel("大屏社区服务统计信息")
+public class BigScreenCommunityStatisticsVO {
+
+    @ApiModelProperty("大屏网格数据")
+    private List<EventGridStatisticsVO> gridStatisticsList;
+
+    @ApiModelProperty("小区列表数据")
+    private List<CivilVillageStatisticsVO> villageStatisticsList;
+
+    @ApiModelProperty("商家地图点位数据")
+    private List<ConvenientMerchantVO> merchantMapDataList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenCourtyardStatisticsInfo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenCourtyardStatisticsInfo.java
new file mode 100644
index 0000000..9ceecdf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenCourtyardStatisticsInfo.java
@@ -0,0 +1,36 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: BigScreenCourtyardStatisticsInfo
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 金沙定制页面-院落议事大屏统计数据
+ * @author: hans
+ * @date: 2022/03/10 10:04
+ */
+@Data
+@ApiModel("金沙定制页面-院落议事大屏统计数据")
+public class BigScreenCourtyardStatisticsInfo {
+
+    @ApiModelProperty("院落议事数量")
+    private Integer discussTotal;
+
+    @ApiModelProperty("议事类")
+    private Integer ysTotal;
+
+    @ApiModelProperty("投票类")
+    private Integer tpTotal;
+
+    @ApiModelProperty(value = "院落议事新增折线数据")
+    private List<StatisticsCommVO> discussAddPolylineData;
+
+    @ApiModelProperty(value = "院落议事累计折线数据")
+    private List<StatisticsCommVO> discussTotalPolylineData;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenDpcStatisticsInfo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenDpcStatisticsInfo.java
new file mode 100644
index 0000000..533649f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenDpcStatisticsInfo.java
@@ -0,0 +1,30 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: BigScreenEasyPhotoStatisticsInfo
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 随手拍大屏统计数据
+ * @author: hans
+ * @date: 2021/12/16 13:31
+ */
+@Data
+@ApiModel("随手拍大屏统计数据")
+public class BigScreenDpcStatisticsInfo {
+
+    @ApiModelProperty("人大个数")
+    private Integer dpcNum;
+
+    @ApiModelProperty(value = "随手拍新增折线数据")
+    private List<StatisticsCommVO> easyPhotoAddPolylineData;
+
+    @ApiModelProperty(value = "随手拍累计折线数据")
+    private List<StatisticsCommVO> easyPhotoTotalPolylineData;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenDynStatisticsInfo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenDynStatisticsInfo.java
new file mode 100644
index 0000000..08ccc22
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenDynStatisticsInfo.java
@@ -0,0 +1,33 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: BigScreenDynStatisticsInfo
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 社区动态大屏统计数据
+ * @author: hans
+ * @date: 2021/12/17 10:19
+ */
+@Data
+@ApiModel("社区动态大屏统计数据")
+public class BigScreenDynStatisticsInfo {
+
+    @ApiModelProperty("社区动态总数")
+    private Integer dynNum = 0;
+
+    @ApiModelProperty(value = "社区动态饼图数据")
+    private List<StatisticsCommVO> dynCircleData;
+
+    @ApiModelProperty(value = "社区动态新增折线数据")
+    private List<StatisticsCommVO> dynAddPolylineData;
+
+    @ApiModelProperty(value = "社区动态累计折线数据")
+    private List<StatisticsCommVO> dynTotalPolylineData;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenEasyPhotoStatisticsInfo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenEasyPhotoStatisticsInfo.java
new file mode 100644
index 0000000..e748e21
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenEasyPhotoStatisticsInfo.java
@@ -0,0 +1,51 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: BigScreenEasyPhotoStatisticsInfo
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 随手拍大屏统计数据
+ * @author: hans
+ * @date: 2021/12/16 13:31
+ */
+@Data
+@ApiModel("随手拍大屏统计数据")
+public class BigScreenEasyPhotoStatisticsInfo {
+
+    @ApiModelProperty("随手拍累计解决数量")
+    private Integer eventDealTotal = 0;
+
+    @ApiModelProperty("突发事件报告解决数")
+    private Integer eventTFDeal = 0;
+
+    @ApiModelProperty("治安防控事件解决数")
+    private Integer eventZADeal = 0;
+
+    @ApiModelProperty("矛盾劝解事件解决数")
+    private Integer eventMDDeal = 0;
+
+    @ApiModelProperty("特殊人群服务事件解决数")
+    private Integer eventTSDeal = 0;
+
+    @ApiModelProperty("民生服务事件解决数")
+    private Integer eventMSDeal = 0;
+
+    @ApiModelProperty("防灾减灾事件解决数")
+    private Integer eventFJDeal = 0;
+
+    @ApiModelProperty("其他事件解决数")
+    private Integer otherDeal = 0;
+
+    @ApiModelProperty(value = "随手拍新增折线数据")
+    private List<StatisticsCommVO> easyPhotoAddPolylineData;
+
+    @ApiModelProperty(value = "随手拍累计折线数据")
+    private List<StatisticsCommVO> easyPhotoTotalPolylineData;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenFiveAssociationsStatisticsInfo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenFiveAssociationsStatisticsInfo.java
new file mode 100644
index 0000000..cd29b50
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenFiveAssociationsStatisticsInfo.java
@@ -0,0 +1,48 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: BigScreenFiveAssociationsStatisticsInfo
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 五社联动大屏统计数据
+ * @author: hans
+ * @date: 2022/06/06 10:48
+ */
+@Data
+@ApiModel("五社联动大屏统计数据")
+public class BigScreenFiveAssociationsStatisticsInfo {
+
+    @ApiModelProperty("社区数")
+    private Integer communityNum;
+
+    @ApiModelProperty("社会组织数")
+    private Integer socialOrgNum;
+
+    @ApiModelProperty("社区企业数")
+    private Integer enterpriseNum;
+
+    @ApiModelProperty("社区工作者数")
+    private Integer socialWorkerNum;
+
+    @ApiModelProperty("社区志愿者数")
+    private Integer volunteerNum;
+
+    @ApiModelProperty("社会组织承接项目数")
+    private Integer acceptProjectTotal;
+
+    @ApiModelProperty(value = "社区企业服务分类占比圆形图数据")
+    private List<StatisticsCommVO> enterpriseServiceTypeCircleData;
+
+    @ApiModelProperty(value = "社区工作者年龄段占比圆形图数据")
+    private List<StatisticsCommVO> socialWorkerAgeStageCircleData;
+
+    @ApiModelProperty(value = "社区工作者服务分类占比圆形图数据")
+    private List<StatisticsCommVO> socialWorkerServiceTypeCircleData;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenFmsStatisticsInfo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenFmsStatisticsInfo.java
new file mode 100644
index 0000000..522a806
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenFmsStatisticsInfo.java
@@ -0,0 +1,72 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: BigScreenFmsStatisticsInfo
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 杨家坪定制-五微服务大屏统计数据
+ * @author: hans
+ * @date: 2022/02/26 14:57
+ */
+@Data
+@ApiModel("杨家坪定制-五微服务大屏统计数据")
+public class BigScreenFmsStatisticsInfo {
+
+    @ApiModelProperty(value = "团队/微团队总数")
+    private Integer teamTotal;
+
+    @ApiModelProperty("成员总数")
+    private Integer memberTotal;
+
+    @ApiModelProperty("服务/微服务总数")
+    private Integer serviceTotal;
+
+    @ApiModelProperty("已服务总数")
+    private Integer completeServiceTotal;
+
+    @ApiModelProperty("微讲堂/开课总数")
+    private Integer classroomTotal;
+
+    @ApiModelProperty("微调节")
+    private Integer adjustTotal;
+
+    @ApiModelProperty("微防控")
+    private Integer controlTotal;
+
+    @ApiModelProperty("参与学习人数")
+    private Integer learnTotal;
+
+    @ApiModelProperty("发现隐患数")
+    private Integer fxyhTotal;
+
+    @ApiModelProperty("解决隐患数")
+    private Integer jjyhTotal;
+
+    @ApiModelProperty(value = "团队类型占比圆形图数据")
+    private List<StatisticsCommVO> teamTypeCircleData;
+
+    @ApiModelProperty(value = "微服务新增折线数据")
+    private List<StatisticsCommVO> serviceAddPolylineData;
+
+    @ApiModelProperty(value = "微服务累计折线数据")
+    private List<StatisticsCommVO> serviceTotalPolylineData;
+
+    @ApiModelProperty(value = "微调节矛盾类型占比圆形图数据")
+    private List<StatisticsCommVO> adjustCircleData;
+
+    @ApiModelProperty(value = "新增解决矛盾折线数据")
+    private List<StatisticsCommVO> adjustAddPolylineData;
+
+    @ApiModelProperty(value = "累计解决矛盾折线数据")
+    private List<StatisticsCommVO> adjustTotalPolylineData;
+
+    @ApiModelProperty(value = "微防控防控类型占比圆形图数据")
+    private List<StatisticsCommVO> controlCircleData;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenFourMemberStatisticsInfo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenFourMemberStatisticsInfo.java
new file mode 100644
index 0000000..fbff3b0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenFourMemberStatisticsInfo.java
@@ -0,0 +1,70 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.ComActFourMemberVO;
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: BigScreenPartyBuildIngStatisticsInfo
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 金沙定制-四长四员大屏统计数据
+ * @author: hans
+ * @date: 2022/02/21 16:22
+ */
+@Data
+@ApiModel("金沙定制-四长四员大屏统计数据")
+public class BigScreenFourMemberStatisticsInfo {
+
+    @ApiModelProperty(value = "四长四员总数/群众线总数")
+    private Integer szsyTotal;
+
+    @ApiModelProperty("居民小组长")
+    private Integer jmxzzTotal;
+
+    @ApiModelProperty("妇女小组长")
+    private Integer fnxzzTotal;
+
+    @ApiModelProperty("楼栋党小组长")
+    private Integer dxzzTotal;
+
+    @ApiModelProperty("楼栋长")
+    private Integer ldzTotal;
+
+    @ApiModelProperty("调解员")
+    private Integer tjyTotal;
+
+    @ApiModelProperty("安全员")
+    private Integer aqyTotal;
+
+    @ApiModelProperty("宣传员")
+    private Integer xcyTotal;
+
+    @ApiModelProperty("监督员")
+    private Integer jdyTotal;
+
+    @ApiModelProperty("解决问题数")
+    private Integer jjwtTotal;
+
+    @ApiModelProperty("院落议事数")
+    private Integer ylysTotal;
+
+    @ApiModelProperty(value = "解决问题新增折线数据")
+    private List<StatisticsCommVO> jjwtAddPolylineData;
+
+    @ApiModelProperty(value = "解决问题累计折线数据")
+    private List<StatisticsCommVO> jjwtTotalPolylineData;
+
+    @ApiModelProperty(value = "院落议事新增折线数据")
+    private List<StatisticsCommVO> ylysAddPolylineData;
+
+    @ApiModelProperty(value = "院落议事累计折线数据")
+    private List<StatisticsCommVO> ylysTotalPolylineData;
+
+    @ApiModelProperty("四长四员组织列表")
+    private List<FourMemberOrgRelationVO> fourMemberOrgList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenGridStaticsReturn.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenGridStaticsReturn.java
new file mode 100644
index 0000000..0306808
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenGridStaticsReturn.java
@@ -0,0 +1,18 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @author zzj
+ */
+@Data
+public class BigScreenGridStaticsReturn {
+    private Integer count;
+    private Integer num;
+    private BigDecimal percent;
+    private String title;
+    private List<BigScreenGridStaticsReturn> bigScreenGridStaticsReturnList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenHatchStatisticsInfo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenHatchStatisticsInfo.java
new file mode 100644
index 0000000..3d76812
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenHatchStatisticsInfo.java
@@ -0,0 +1,39 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: BigScreenHatchStatisticsInfo
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 孵化中心大屏统计数据
+ * @author: hans
+ * @date: 2022/05/31 17:50
+ */
+@Data
+@ApiModel("孵化中心大屏统计数据")
+public class BigScreenHatchStatisticsInfo {
+
+    @ApiModelProperty("孵化中心数量/孵化进度数量")
+    private Integer hatchCenterTotal;
+
+    @ApiModelProperty("西区社区组织数量")
+    private Integer westAreaOrgTotal;
+
+    @ApiModelProperty("孵化成果数量")
+    private Integer hatchResultTotal;
+
+    @ApiModelProperty(value = "孵化进程占比圆形图数据")
+    private List<StatisticsCommVO> hatchScheduleCircleData;
+
+    @ApiModelProperty(value = "孵化状态占比柱形数据")
+    private List<StatisticsCommVO> hatchStatusColumnData;
+
+    @ApiModelProperty(value = "街道组织占比柱形数据")
+    private List<StatisticsCommVO> streetOrgColumnData;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenHmkBaseInfo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenHmkBaseInfo.java
new file mode 100644
index 0000000..48b57ab
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenHmkBaseInfo.java
@@ -0,0 +1,31 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel("大屏首页数据")
+public class BigScreenHmkBaseInfo {
+    @ApiModelProperty("项目管理")
+    private BigScreenHmkProjectInfo bigScreenHmkProjectInfo;
+    @ApiModelProperty("项目数")
+    private Integer projectCount;
+    @ApiModelProperty("活动数")
+    private Integer activityCount;
+    @ApiModelProperty("社工数")
+    private Integer socialWorkerCount;
+    @ApiModelProperty("居民数")
+    private Integer userCount;
+    @ApiModelProperty("社会组织数")
+    private Integer socialOrgCount;
+    @ApiModelProperty("服务次数")
+    private Integer serviceCount;
+    @ApiModelProperty("社会组织管理")
+    private BigScreenHmkSocialOrgInfo bigScreenHmkSocialOrgInfo;
+    @ApiModelProperty("社工分析数据")
+    private BigScreenHmkSocialWorkerInfo bigScreenHmkSocialWorkerInfo;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenHmkProjectInfo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenHmkProjectInfo.java
new file mode 100644
index 0000000..10e4de9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenHmkProjectInfo.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel("项目数据")
+public class BigScreenHmkProjectInfo {
+    @ApiModelProperty("项目数")
+    private Integer count;
+    @ApiModelProperty("项目类型饼状图")
+    private List<BigScreenHmkProjectTypeInfo> typeInfoList;
+    @ApiModelProperty("项目活动类型饼状图")
+    private List<BigScreenHmkProjectTypeInfo> activityTypeInfoList;
+    @ApiModelProperty("已分派")
+    private Integer assigned;
+    @ApiModelProperty("待分派")
+    private Integer assign;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenHmkProjectTypeInfo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenHmkProjectTypeInfo.java
new file mode 100644
index 0000000..81d2908
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenHmkProjectTypeInfo.java
@@ -0,0 +1,19 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel("项目饼状图")
+public class BigScreenHmkProjectTypeInfo {
+    @ApiModelProperty("名字")
+    private String name;
+    @ApiModelProperty("数量")
+    private Integer count;
+    @ApiModelProperty("百分比")
+    private Integer percent;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenHmkSocialOrgInfo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenHmkSocialOrgInfo.java
new file mode 100644
index 0000000..7c6d487
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenHmkSocialOrgInfo.java
@@ -0,0 +1,21 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel("社会组织饼状图")
+public class BigScreenHmkSocialOrgInfo {
+    @ApiModelProperty("总数")
+    private Integer count;
+    @ApiModelProperty("服务数")
+    private Integer serviceCount;
+    @ApiModelProperty("组织分类图")
+    List<BigScreenHmkProjectTypeInfo> typeInfoList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenHmkSocialWorkerInfo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenHmkSocialWorkerInfo.java
new file mode 100644
index 0000000..923cc01
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenHmkSocialWorkerInfo.java
@@ -0,0 +1,19 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel("社工基础数据")
+public class BigScreenHmkSocialWorkerInfo {
+    @ApiModelProperty("社工年龄分布")
+    private List<BigScreenHmkProjectTypeInfo> socialWorkerAge;
+    @ApiModelProperty("社工技能分析")
+    private List<BigScreenHmkProjectTypeInfo> socialWorkerSkill;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenMerchantStatisticsInfo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenMerchantStatisticsInfo.java
new file mode 100644
index 0000000..29e3c06
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenMerchantStatisticsInfo.java
@@ -0,0 +1,45 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: BigScreenMerchantStatisticsInfo
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民商家大屏统计数据
+ * @author: hans
+ * @date: 2021/12/17 15:05
+ */
+@Data
+@ApiModel("便民商家大屏统计数据")
+public class BigScreenMerchantStatisticsInfo {
+
+    @ApiModelProperty("资源类型数")
+    private Integer resourceTypeNum = 0;
+
+    @ApiModelProperty("服务类型数")
+    private Integer serviceTypeNum = 0;
+
+    @ApiModelProperty("商家数量")
+    private Integer merchantNum = 0;
+
+    @ApiModelProperty("已提供服务次数")
+    private Integer serviceTimes = 0;
+
+    @ApiModelProperty(value = "资源类型饼图数据")
+    private List<StatisticsCommVO> resourceTypeCircleData;
+
+    @ApiModelProperty(value = "服务类型饼图数据")
+    private List<StatisticsCommVO> serviceTypeCircleData;
+
+    @ApiModelProperty(value = "服务量新增折线数据")
+    private List<StatisticsCommVO> serviceTimesAddPolylineData;
+
+    @ApiModelProperty(value = "服务量累计折线数据")
+    private List<StatisticsCommVO> serviceTimesTotalPolylineData;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenMicroWishStatisticsInfo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenMicroWishStatisticsInfo.java
new file mode 100644
index 0000000..140cf72
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenMicroWishStatisticsInfo.java
@@ -0,0 +1,40 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.ComActMicroWishVO;
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: BigScreenMicroWishStatisticsInfo
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 微心愿大屏统计数据
+ * @author: hans
+ * @date: 2021/12/15 16:56
+ */
+@Data
+@ApiModel("微心愿大屏统计数据")
+public class BigScreenMicroWishStatisticsInfo {
+
+    @ApiModelProperty("心愿总数量")
+    private Integer microWishTotal;
+
+    @ApiModelProperty("心愿已实现数量")
+    private Integer microWishRealized;
+
+    @ApiModelProperty("心愿未实现数量")
+    private Integer microWishUnrealized;
+
+    @ApiModelProperty(value = "微心愿新增折线数据")
+    private List<StatisticsCommVO> microWishAddPolylineData;
+
+    @ApiModelProperty(value = "微心愿累计折线数据")
+    private List<StatisticsCommVO> microWishTotalPolylineData;
+
+    @ApiModelProperty(value = "微心愿展示列表")
+    private List<ComActMicroWishVO> microWishDisplayList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenNeighborStatisticsInfo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenNeighborStatisticsInfo.java
new file mode 100644
index 0000000..f36c04e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenNeighborStatisticsInfo.java
@@ -0,0 +1,36 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: BigScreenNeighborStatisticsInfo
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 邻里圈大屏统计数据
+ * @author: hans
+ * @date: 2021/12/17 13:19
+ */
+@Data
+@ApiModel("邻里圈大屏统计数据")
+public class BigScreenNeighborStatisticsInfo {
+
+    @ApiModelProperty("邻里圈发布内容数")
+    private Integer publishContentNum = 0;
+
+    @ApiModelProperty("邻里圈发布话题数")
+    private Integer publishTopicNum = 0;
+
+    @ApiModelProperty(value = "邻里圈饼图数据")
+    private List<StatisticsCommVO> neighborCircleData;
+
+    @ApiModelProperty(value = "邻里圈新增折线数据")
+    private List<StatisticsCommVO> neighborAddPolylineData;
+
+    @ApiModelProperty(value = "邻里圈累计折线数据")
+    private List<StatisticsCommVO> neighborTotalPolylineData;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenPartyBuildIngStatisticsInfo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenPartyBuildIngStatisticsInfo.java
new file mode 100644
index 0000000..38b2696
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenPartyBuildIngStatisticsInfo.java
@@ -0,0 +1,114 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.ComActDynVO;
+import com.panzhihua.common.model.vos.community.ComActEasyPhotoVO;
+import com.panzhihua.common.model.vos.community.ComSwPatrolRecordVO;
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: BigScreenPartyBuildIngStatisticsInfo
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 金沙定制-党建引领大屏统计数据
+ * @author: hans
+ * @date: 2022/02/21 16:22
+ */
+@Data
+@ApiModel("金沙定制-党建引领大屏统计数据")
+public class BigScreenPartyBuildIngStatisticsInfo {
+
+    @ApiModelProperty("党建动态数")
+    private Integer djdtTotal;
+
+    @ApiModelProperty("党建活动数")
+    private Integer djhdTotal;
+
+    @ApiModelProperty(value = "议事投票总数/议事线总数")
+    private Integer ystpTotal;
+
+    @ApiModelProperty(value = "议事投票总参与人数")
+    private Integer ystpcyTotal;
+
+    @ApiModelProperty(value = "议事总数")
+    private Integer ysTotal;
+
+    @ApiModelProperty(value = "投票总数")
+    private Integer tpTotal;
+
+    @ApiModelProperty(value = "院落议事总数")
+    private Integer ylysTotal = 0;
+
+    @ApiModelProperty(value = "社区议事总数")
+    private Integer sqysTotal = 0;
+
+    @ApiModelProperty(value = "党员线总数")
+    private Integer dyTotal;
+
+    @ApiModelProperty(value = "志愿线总数")
+    private Integer zyfwTotal;
+
+    @ApiModelProperty(value = "四长四员总数/群众线总数")
+    private Integer szsyTotal;
+
+    @ApiModelProperty(value = "安全线总数")
+    private Integer aqxTotal;
+
+    @ApiModelProperty("居民小组长")
+    private Integer jmxzzTotal;
+
+    @ApiModelProperty("妇女小组长")
+    private Integer fnxzzTotal;
+
+    @ApiModelProperty("楼栋党小组长")
+    private Integer dxzzTotal;
+
+    @ApiModelProperty("楼栋长")
+    private Integer ldzTotal;
+
+    @ApiModelProperty("调解员")
+    private Integer tjyTotal;
+
+    @ApiModelProperty("安全员")
+    private Integer aqyTotal;
+
+    @ApiModelProperty("宣传员")
+    private Integer xcyTotal;
+
+    @ApiModelProperty("监督员")
+    private Integer jdyTotal;
+
+    @ApiModelProperty("志愿线总服务次数")
+    private Integer zyxServiceTotal;
+
+    @ApiModelProperty("志愿线帮助群众次数")
+    private Integer zyxHelpTotal;
+
+    @ApiModelProperty("居民宣传次数")
+    private Integer jmxcTotal;
+
+    @ApiModelProperty("商户监督次数")
+    private Integer shjdTotal = 0;
+
+    @ApiModelProperty("辖区巡查次数")
+    private Integer xqxcTotal;
+
+    @ApiModelProperty("群众满意度分数")
+    private Double qzmydStar;
+
+    @ApiModelProperty("随手拍治安防控记录列表")
+    private List<ComActEasyPhotoVO> zafkList;
+
+    @ApiModelProperty("居民宣传记录列表")
+    private List<ComActDynVO> jmxcList;
+
+    @ApiModelProperty("商户监督记录列表")
+    private List shjdList;
+
+    @ApiModelProperty("辖区巡查记录列表")
+    private List<ComSwPatrolRecordVO> xqxcList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenQuestionnaireStatisticsInfo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenQuestionnaireStatisticsInfo.java
new file mode 100644
index 0000000..62fa308
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenQuestionnaireStatisticsInfo.java
@@ -0,0 +1,37 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.ComActQuestnaireVO;
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: BigScreenQuestionnaireStatisticsInfo
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 社区问卷大屏统计数据
+ * @author: hans
+ * @date: 2021/12/16 16:11
+ */
+@Data
+@ApiModel("社区问卷大屏统计数据")
+public class BigScreenQuestionnaireStatisticsInfo {
+
+    @ApiModelProperty("社区问卷发起总数")
+    private Integer questionnaireNum = 0;
+
+    @ApiModelProperty("社区问卷参与人数")
+    private Integer joinNum = 0;
+
+    @ApiModelProperty(value = "社区问卷新增折线数据")
+    private List<StatisticsCommVO> questionnaireAddPolylineData;
+
+    @ApiModelProperty(value = "社区问卷累计折线数据")
+    private List<StatisticsCommVO> questionnaireTotalPolylineData;
+
+    @ApiModelProperty(value = "社区问卷展示列表")
+    private List<ComActQuestnaireVO> questionnaireDisplayList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenResidentActStatisticsInfo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenResidentActStatisticsInfo.java
new file mode 100644
index 0000000..fe0a78b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenResidentActStatisticsInfo.java
@@ -0,0 +1,36 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: BigScreenResidentActStatisticsInfo
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 居民活动大屏统计数据
+ * @author: hans
+ * @date: 2021/12/24 15:06
+ */
+@Data
+@ApiModel("居民活动大屏统计数据")
+public class BigScreenResidentActStatisticsInfo {
+
+    @ApiModelProperty("居民活动发布次数")
+    private Integer publishNum = 0;
+
+    @ApiModelProperty("居民活动参与人数")
+    private Integer joinNum = 0;
+
+    @ApiModelProperty(value = "居民活动饼图数据")
+    private List<StatisticsCommVO> actCircleData;
+
+    @ApiModelProperty(value = "居民活动新增折线数据")
+    private List<StatisticsCommVO> actAddPolylineData;
+
+    @ApiModelProperty(value = "居民活动累计折线数据")
+    private List<StatisticsCommVO> actTotalPolylineData;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenServiceData.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenServiceData.java
new file mode 100644
index 0000000..d10698f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenServiceData.java
@@ -0,0 +1,41 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel("服务数据")
+public class BigScreenServiceData {
+    @ApiModelProperty("办事指南")
+    private Integer guide;
+    @ApiModelProperty("通知公告")
+    private Integer announcement;
+    @ApiModelProperty("高龄认证")
+    private Integer eldersAuth;
+    @ApiModelProperty("便民商家")
+    private Integer convenient;
+    @ApiModelProperty("房屋租赁")
+    private Integer rentingHouse;
+    @ApiModelProperty("一键服务")
+    private Integer oneButton;
+    @ApiModelProperty("社区工作者")
+    private Integer socialWorker = 0;
+    @ApiModelProperty("养老认证")
+    private Integer pensionAuth;
+    @ApiModelProperty("逝世申报")
+    private Integer death=0;
+    @ApiModelProperty("高龄补贴")
+    private Integer eldersAllowance=0;
+    @ApiModelProperty("服务咨询")
+    private Integer serviceConsultation=0;
+    @ApiModelProperty("政策文件")
+    private Integer partyDyn;
+    @ApiModelProperty("便民设施")
+    private Integer equipment=0;
+    @ApiModelProperty("物业公司")
+    private Integer property;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenServiceUser.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenServiceUser.java
new file mode 100644
index 0000000..7a20fa1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenServiceUser.java
@@ -0,0 +1,17 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel("服务居民")
+public class BigScreenServiceUser {
+    @ApiModelProperty("小区名")
+    private String villageName;
+    @ApiModelProperty("人数")
+    private Integer num;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStaticsReserve.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStaticsReserve.java
new file mode 100644
index 0000000..974e5ef
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStaticsReserve.java
@@ -0,0 +1,38 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel("安全防控")
+public class BigScreenStaticsReserve {
+    @ApiModelProperty("总数")
+    private Integer count;
+    @ApiModelProperty("防疫管控")
+    private Integer epidemicCount;
+    @ApiModelProperty("燃气登记")
+    private Integer gasCount;
+    @ApiModelProperty("防火登记")
+    private Integer fireCount;
+    @ApiModelProperty("返攀登记")
+    private Integer reserveCount;
+    @ApiModelProperty("居家隔离登记")
+    private Integer homeCount;
+    @ApiModelProperty("返攀登记百分比")
+    private BigDecimal reservePercent;
+    @ApiModelProperty("居家隔离百分比")
+    private BigDecimal homePercent;
+    @ApiModelProperty("燃气登记百分比")
+    private BigDecimal gasPercent;
+    @ApiModelProperty("防火登记百分比")
+    private BigDecimal firePercent;
+    @ApiModelProperty("折线图数据")
+    private List<BigScreenStaticsReserveMonth> bigScreenStaticsReserveMonthList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStaticsReserveMonth.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStaticsReserveMonth.java
new file mode 100644
index 0000000..55d4bb9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStaticsReserveMonth.java
@@ -0,0 +1,27 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel("每月安全防空数据")
+public class BigScreenStaticsReserveMonth {
+    @ApiModelProperty("x轴")
+    private String x;
+    @ApiModelProperty("燃气登记")
+    private Integer gasCount;
+    @ApiModelProperty("防火登记")
+    private Integer fireCount;
+    @ApiModelProperty("返攀登记")
+    private Integer reserveCount;
+    @ApiModelProperty("居家隔离登记")
+    private Integer homeCount;
+    @ApiModelProperty("总量")
+    private Integer count;
+
+    private String year;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticAgeGender.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticAgeGender.java
new file mode 100644
index 0000000..41df6ef
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticAgeGender.java
@@ -0,0 +1,40 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @ClasssName BigScreenStatisticParty
+ * @Description 大屏数据党建统计信息
+ * @Author cedoo
+ * @Date 2021/6/15
+ * @Version 1.0
+ **/
+@Data
+public class BigScreenStatisticAgeGender {
+
+    @ApiModelProperty(value = "男性占比")
+    private Double manPer;
+    @ApiModelProperty(value = "男性数量")
+    private Integer manTotal;
+    @ApiModelProperty(value = "女性占比")
+    private Double womenPer;
+    @ApiModelProperty(value = "女性数量")
+    private Integer womeTotal;
+
+    @ApiModelProperty(value = "年龄段总数 30以下")
+    private Double thirtyPer;
+    @ApiModelProperty(value = "年龄段占比 30以下")
+    private Integer thirtyTotal;
+
+    @ApiModelProperty(value = "年龄段总数 30-60")
+    private Double sixtyPer;
+    @ApiModelProperty(value = "年龄段占比 30-60")
+    private Integer sixtyTotal;
+
+    @ApiModelProperty(value = "年龄段总数 60以上")
+    private Double biggerPer;
+    @ApiModelProperty(value = "年龄段占比 60以上")
+    private Integer biggerTotal;
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticPartyActivity.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticPartyActivity.java
new file mode 100644
index 0000000..724b04b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticPartyActivity.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @ClasssName BigScreenStatisticParty
+ * @Description 大屏数据党建统计信息
+ * @Author cedoo
+ * @Date 2021/6/15
+ * @Version 1.0
+ **/
+@Data
+public class BigScreenStatisticPartyActivity {
+
+    @ApiModelProperty(value = "顺序")
+    private Integer idx;
+
+    @ApiModelProperty(value = "显示名称")
+    private String idxName;
+
+    @ApiModelProperty(value = "党员数量")
+    private Integer total;
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticPartyActivityTopUser.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticPartyActivityTopUser.java
new file mode 100644
index 0000000..9ae1411
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticPartyActivityTopUser.java
@@ -0,0 +1,23 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.partybuilding.PartyBuildingMemberVO;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @ClasssName BigScreenStatisticParty
+ * @Description 大屏数据党建统计信息
+ * @Author cedoo
+ * @Date 2021/6/15
+ * @Version 1.0
+ **/
+@Data
+public class BigScreenStatisticPartyActivityTopUser {
+
+    @ApiModelProperty(value = "党员活动排行榜")
+    List<PartyBuildingMemberVO> topUser;
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticPartyBuild.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticPartyBuild.java
new file mode 100644
index 0000000..baac2e5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticPartyBuild.java
@@ -0,0 +1,30 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @ClasssName BigScreenStatisticParty
+ * @Description 大屏数据党建统计信息
+ * @Author cedoo
+ * @Date 2021/6/15
+ * @Version 1.0
+ **/
+@Data
+public class BigScreenStatisticPartyBuild {
+
+    @ApiModelProperty(value = "党组织数")
+    private Integer orgCount;
+    @ApiModelProperty(value = "党员数")
+    private Integer memberCount;
+    @ApiModelProperty(value = "党员活动数")
+    private Integer activityCount;
+    @ApiModelProperty(value = "党建宣传数")
+    private Integer dynCount;// 党建动态
+    @ApiModelProperty(value = "社区党委")
+    private Integer committeeCount;
+    @ApiModelProperty("覆盖率")
+    private Integer coverPercent=0;
+    @ApiModelProperty("单位党组织")
+    private Integer orgPartyCount=0;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticPartyDyn.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticPartyDyn.java
new file mode 100644
index 0000000..c9d2aa9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticPartyDyn.java
@@ -0,0 +1,23 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @ClasssName BigScreenStatisticParty
+ * @Description 大屏数据党建统计信息
+ * @Author cedoo
+ * @Date 2021/6/15
+ * @Version 1.0
+ **/
+@Data
+public class BigScreenStatisticPartyDyn {
+
+    @ApiModelProperty(value = "党组织ID")
+    private Long id;
+    @ApiModelProperty(value = "党组织名称")
+    private String name;
+    @ApiModelProperty(value = "党员数量")
+    private Integer total;
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticPartyMemeber.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticPartyMemeber.java
new file mode 100644
index 0000000..7cbaef5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticPartyMemeber.java
@@ -0,0 +1,23 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @ClasssName BigScreenStatisticParty
+ * @Description 大屏数据党建统计信息
+ * @Author cedoo
+ * @Date 2021/6/15
+ * @Version 1.0
+ **/
+@Data
+public class BigScreenStatisticPartyMemeber {
+
+    @ApiModelProperty(value = "党组织ID")
+    private Long id;
+    @ApiModelProperty(value = "党组织名称")
+    private String name;
+    @ApiModelProperty(value = "党员数量")
+    private Integer total;
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticPartyOrg.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticPartyOrg.java
new file mode 100644
index 0000000..c803d70
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenStatisticPartyOrg.java
@@ -0,0 +1,23 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @ClasssName BigScreenStatisticParty
+ * @Description 大屏数据党建统计信息
+ * @Author cedoo
+ * @Date 2021/6/15
+ * @Version 1.0
+ **/
+@Data
+public class BigScreenStatisticPartyOrg {
+
+    @ApiModelProperty(value = "党组织ID")
+    private Long id;
+    @ApiModelProperty(value = "党组织名称")
+    private String name;
+    @ApiModelProperty(value = "党员数量")
+    private Integer total;
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenVolunteerActStatisticsInfo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenVolunteerActStatisticsInfo.java
new file mode 100644
index 0000000..e73ac08
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenVolunteerActStatisticsInfo.java
@@ -0,0 +1,36 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: BigScreenVolunteerActStatisticsInfo
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 志愿者活动大屏统计数据
+ * @author: hans
+ * @date: 2021/12/24 16:25
+ */
+@Data
+@ApiModel("志愿者活动大屏统计数据")
+public class BigScreenVolunteerActStatisticsInfo {
+
+    @ApiModelProperty("志愿者活动发布次数")
+    private Integer publishNum = 0;
+
+    @ApiModelProperty("志愿者活动参与人数")
+    private Integer joinNum = 0;
+
+    @ApiModelProperty(value = "志愿者活动饼图数据")
+    private List<StatisticsCommVO> actCircleData;
+
+    @ApiModelProperty(value = "志愿者活动新增折线数据")
+    private List<StatisticsCommVO> actAddPolylineData;
+
+    @ApiModelProperty(value = "志愿者活动累计折线数据")
+    private List<StatisticsCommVO> actTotalPolylineData;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenVolunteerStatisticsInfo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenVolunteerStatisticsInfo.java
new file mode 100644
index 0000000..ea25f1d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigScreenVolunteerStatisticsInfo.java
@@ -0,0 +1,45 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: BigScreenVolunteerStatisticsInfo
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 杨家坪定制-志愿服务大屏统计数据
+ * @author: hans
+ * @date: 2022/03/02 15:25
+ */
+@Data
+@ApiModel("杨家坪定制-志愿服务大屏统计数据")
+public class BigScreenVolunteerStatisticsInfo extends BigScreenVolunteerActStatisticsInfo {
+
+    @ApiModelProperty("志愿者人数")
+    private Integer volunteerNum = 0;
+
+    @ApiModelProperty("志愿者组织")
+    private Integer volunteerOrgNum = 0;
+
+    @ApiModelProperty("志愿者队伍")
+    private Integer volunteerTeamNum = 0;
+
+    @ApiModelProperty(value = "志愿者统计-组织人数直方图")
+    private List<StatisticsCommVO> volunteerOrgHistogram;
+
+    @ApiModelProperty(value = "志愿者服务类型占比圆形图")
+    private List<StatisticsCommVO> volunteerServiceTypeCircleData;
+
+    @ApiModelProperty(value = "志愿者年龄段占比圆形图")
+    private List<StatisticsCommVO> volunteerAgeCircleData;
+
+    @ApiModelProperty(value = "志愿者技能占比圆形图")
+    private List<StatisticsCommVO> volunteerSkillCircleData;
+
+    @ApiModelProperty(value = "志愿者组织关系")
+    private List<VolunteerOrgRelationVO> volunteerOrgRelationList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigscreenGridsGovernanceStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigscreenGridsGovernanceStatisticsVO.java
new file mode 100644
index 0000000..ccc09db
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/BigscreenGridsGovernanceStatisticsVO.java
@@ -0,0 +1,55 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+import com.panzhihua.common.model.vos.community.screen.civil.CivilVillageStatisticsVO;
+import com.panzhihua.common.model.vos.community.screen.event.EventGridIncidentStatisticsVO;
+import com.panzhihua.common.model.vos.community.screen.event.EventGridStatisticsVO;
+import com.panzhihua.common.model.vos.screen.ScreenDrawEventPopulationTotalVO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @title: GridsGovernanceStatisticsVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 清网治格统计信息
+ * @author: hans
+ * @date: 2021/12/08 14:38
+ */
+@Data
+@ApiModel("清网治格统计信息")
+public class BigscreenGridsGovernanceStatisticsVO {
+
+    @ApiModelProperty("事件总数")
+    private Integer eventTotal = 0;
+
+    @ApiModelProperty("突发事件报告总数")
+    private Integer eventTFTotal = 0;
+
+    @ApiModelProperty("治安防控事件总数")
+    private Integer eventZATotal = 0;
+
+    @ApiModelProperty("矛盾劝解事件总数")
+    private Integer eventMDTotal = 0;
+
+    @ApiModelProperty("特殊人群服务事件总数")
+    private Integer eventTSTotal = 0;
+
+    @ApiModelProperty("民生服务事件总数")
+    private Integer eventMSTotal = 0;
+
+    @ApiModelProperty("防灾减灾事件总数")
+    private Integer eventFJTotal = 0;
+
+    @ApiModelProperty("法规宣传事件总数")
+    private Integer eventFGTotal = 0;
+
+    @ApiModelProperty("安全巡查")
+    private Integer safety=0;
+
+    @ApiModelProperty("其他事件总数")
+    private Integer otherTotal = 0;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/EquipmentPointMapDataVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/EquipmentPointMapDataVO.java
new file mode 100644
index 0000000..4c55728
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/EquipmentPointMapDataVO.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.ComActFourMemberVO;
+
+import com.panzhihua.common.model.vos.property.ComPropertyEquipmentVO;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: EquipmentPointMapDataVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 设备点位图数据
+ * @author: hans
+ * @date: 2022/03/02 11:21
+ */
+@Data
+public class EquipmentPointMapDataVO {
+
+    @ApiModelProperty("经纬度位置")
+    private String position;
+
+    @ApiModelProperty("设备数")
+    private Integer equipmentNum;
+
+    @ApiModelProperty("点位展示颜色(1.红色 2.黄色 3.绿色)")
+    private Integer pointColor;
+
+    @ApiModelProperty("设备")
+    List<ComPropertyEquipmentVO> equipments;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/FourMemberOrgRelationVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/FourMemberOrgRelationVO.java
new file mode 100644
index 0000000..6ea6147
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/FourMemberOrgRelationVO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.ComActFourMemberVO;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: FourMemberOrgRelationVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 四长四员组织关系
+ * @author: hans
+ * @date: 2022/02/25 16:57
+ */
+@Data
+public class FourMemberOrgRelationVO {
+
+    @ApiModelProperty("关系")
+    private String relation;
+
+    @ApiModelProperty("成员")
+    List<ComActFourMemberVO> members;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/GridsGovernanceStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/GridsGovernanceStatisticsVO.java
new file mode 100644
index 0000000..d34a8c9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/GridsGovernanceStatisticsVO.java
@@ -0,0 +1,110 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+import com.panzhihua.common.model.vos.community.screen.civil.CivilVillageStatisticsVO;
+import com.panzhihua.common.model.vos.community.screen.event.EventGridStatisticsVO;
+import com.panzhihua.common.model.vos.screen.ScreenDrawEventPopulationTotalVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: GridsGovernanceStatisticsVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 清网治格统计信息
+ * @author: hans
+ * @date: 2021/12/08 14:38
+ */
+@Data
+@ApiModel("清网治格统计信息")
+public class GridsGovernanceStatisticsVO {
+
+    @ApiModelProperty("事件总数")
+    private Integer eventTotal = 0;
+
+    @ApiModelProperty("已处理事件总数")
+    private Integer dealTotal = 0;
+
+    @ApiModelProperty("待处理事件总数")
+    private Integer unDealTotal = 0;
+
+    @ApiModelProperty("突发事件报告总数")
+    private Integer eventTFTotal = 0;
+
+    @ApiModelProperty("治安防控事件总数")
+    private Integer eventZATotal = 0;
+
+    @ApiModelProperty("矛盾劝解事件总数")
+    private Integer eventMDTotal = 0;
+
+    @ApiModelProperty("特殊人群服务事件总数")
+    private Integer eventTSTotal = 0;
+
+    @ApiModelProperty("民生服务事件总数")
+    private Integer eventMSTotal = 0;
+
+    @ApiModelProperty("防灾减灾事件总数")
+    private Integer eventFJTotal = 0;
+
+    @ApiModelProperty("其他事件总数")
+    private Integer otherTotal = 0;
+
+    @ApiModelProperty("突发事件报告完成数")
+    private Integer eventTFDeal = 0;
+
+    @ApiModelProperty("治安防控事件完成数")
+    private Integer eventZADeal = 0;
+
+    @ApiModelProperty("矛盾劝解事件完成数")
+    private Integer eventMDDeal = 0;
+
+    @ApiModelProperty("特殊人群服务事件完成数")
+    private Integer eventTSDeal = 0;
+
+    @ApiModelProperty("民生服务事件完成数")
+    private Integer eventMSDeal = 0;
+
+    @ApiModelProperty("防灾减灾事件完成数")
+    private Integer eventFJDeal = 0;
+
+    @ApiModelProperty("其他事件完成数")
+    private Integer otherDeal = 0;
+
+    @ApiModelProperty("网格数")
+    private Integer gridTotal = 0;
+
+    @ApiModelProperty("调解员")
+    private Integer gridMemberTotal = 0;
+
+    @ApiModelProperty("大屏网格数据")
+    private List<EventGridStatisticsVO> gridStatisticsList;
+
+    @ApiModelProperty("小区列表数据")
+    private List<CivilVillageStatisticsVO> villageStatisticsList;
+
+    @ApiModelProperty("人口统计")
+    private ScreenDrawEventPopulationTotalVO drawEventPopulationTotalVO;
+
+    @ApiModelProperty("年龄段统计")
+    private List<StatisticsCommVO> ageGroupStatistics;
+
+    @ApiModelProperty("事件分析新增折线数据")
+    private List<StatisticsCommVO> eventAddPolylineData;
+
+    @ApiModelProperty("事件分析累计折线数据")
+    private List<StatisticsCommVO> eventTotalPolylineData;
+
+    @ApiModelProperty("绘制事件类型统计圆形图")
+    private List<StatisticsCommVO> eventTypeCircleDrawData;
+
+    public void generateStatisticsData() {
+        this.eventTotal = this.eventTFTotal + this.eventZATotal + this.eventMDTotal +
+                this.eventTSTotal + this.eventMSTotal + this.eventFJTotal + this.otherTotal;
+        this.dealTotal = this.eventTFDeal + this.eventZADeal + this.eventMDDeal +
+                this.eventTSDeal + this.eventMSDeal + this.eventFJDeal + this.otherDeal;
+        this.unDealTotal = this.eventTotal - this.dealTotal;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/IndexBackReserve.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/IndexBackReserve.java
new file mode 100644
index 0000000..e012e3f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/IndexBackReserve.java
@@ -0,0 +1,19 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel("返攀登记数据")
+public class IndexBackReserve {
+    @ApiModelProperty("总数")
+    private Integer count;
+    @ApiModelProperty("标题数量")
+    private List<IndexReserveSub> indexReserveSubList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/IndexDynamic.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/IndexDynamic.java
new file mode 100644
index 0000000..d555428
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/IndexDynamic.java
@@ -0,0 +1,31 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel("首页业务模块统计")
+public class IndexDynamic {
+    @ApiModelProperty("微心愿")
+    private Integer microWish;
+    @ApiModelProperty("随手拍")
+    private Integer easyPhoto;
+    @ApiModelProperty("居民活动")
+    private Integer residentActivity=0;
+    @ApiModelProperty("志愿服务")
+    private Integer volunteerActivity=0;
+    @ApiModelProperty("党员活动")
+    private Integer partyActivity;
+    @ApiModelProperty("社区问卷")
+    private Integer questionnaire;
+    @ApiModelProperty("社区动态")
+    private Integer dynamic;
+    @ApiModelProperty("邻里圈")
+    private Integer neighbor;
+    @ApiModelProperty("便民商家")
+    private Integer convenient;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/IndexHomeQuarantine.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/IndexHomeQuarantine.java
new file mode 100644
index 0000000..97e21d2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/IndexHomeQuarantine.java
@@ -0,0 +1,19 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel("居家隔离数据")
+public class IndexHomeQuarantine {
+    @ApiModelProperty("总数")
+    private Integer count;
+    @ApiModelProperty("标题数量")
+    private List<IndexReserveSub> indexReserveSubList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/IndexInfo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/IndexInfo.java
new file mode 100644
index 0000000..c49cf8a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/IndexInfo.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import com.panzhihua.common.model.vos.community.screen.index.IndexEventGridStatisticsVO;
+import com.panzhihua.common.model.vos.community.screen.index.IndexPopulationStatisticsVO;
+import com.panzhihua.common.model.vos.community.screen.index.IndexSpecialStatisticsVO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel("大屏首页返回数据")
+public class IndexInfo {
+    @ApiModelProperty("基础数据")
+    private BaseInfo baseInfo;
+    @ApiModelProperty("实有人口数据")
+    private IndexPopulationStatisticsVO indexPopulationStatisticsVO;
+    @ApiModelProperty("特殊人群统计模块数据")
+    private List<IndexSpecialStatisticsVO> specialStatisticsVOList;
+    @ApiModelProperty("网格化治理模块数据")
+    private IndexEventGridStatisticsVO eventGridStatisticsVO;
+    @ApiModelProperty("返攀登记居家隔离数据统计")
+    private IndexReserve indexReserve;
+    @ApiModelProperty("业务统计")
+    private IndexDynamic indexDynamic;
+    @ApiModelProperty("杨戬要求修改")
+    private BigScreenGridStaticsReturn bigScreenGridStaticsReturn;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/IndexReserve.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/IndexReserve.java
new file mode 100644
index 0000000..08b0786
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/IndexReserve.java
@@ -0,0 +1,17 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel("返攀登记居家隔离数据")
+public class IndexReserve {
+    @ApiModelProperty("返攀登记数据")
+    private IndexBackReserve indexBackReserve;
+    @ApiModelProperty("居家隔离数据")
+    private IndexHomeQuarantine indexHomeQuarantine;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/IndexReserveSub.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/IndexReserveSub.java
new file mode 100644
index 0000000..a5e0456
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/IndexReserveSub.java
@@ -0,0 +1,23 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel("返攀登记居家隔离数据标题数量")
+public class IndexReserveSub {
+    @ApiModelProperty("标题值")
+    private Integer key;
+    @ApiModelProperty("数量")
+    private Integer num;
+    @ApiModelProperty("总数")
+    private Integer allCount;
+    @ApiModelProperty("占比")
+    private BigDecimal percent;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/PagePartyOrganizationMemberVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/PagePartyOrganizationMemberVO.java
new file mode 100644
index 0000000..30d6a0d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/PagePartyOrganizationMemberVO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 分页党员
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 16:10
+ **/
+@Data
+@ApiModel(value = "分页查询党员")
+public class PagePartyOrganizationMemberVO {
+
+    @ApiModelProperty(value = "组织ID")
+    private Long orgId;
+
+    @ApiModelProperty(value = "当前页数,默认1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "每页记录数,默认10")
+    private Long pageSize = 10L;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/PartyBuildingMemberVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/PartyBuildingMemberVO.java
new file mode 100644
index 0000000..2cbccb7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/PartyBuildingMemberVO.java
@@ -0,0 +1,45 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党建
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 10:03
+ **/
+@Data
+@ApiModel("党员活动参加用户排行榜")
+public class PartyBuildingMemberVO {
+
+    @ApiModelProperty(value = "党员唯一标识id")
+    private Long id;
+
+    @ApiModelProperty(value = "党员活动id")
+    private Long activityId;
+
+    @ApiModelProperty(value = "党员id")
+    private Long memberId;
+
+    @ApiModelProperty(value = "用户ID")
+    private Long userId;
+
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    @ApiModelProperty(value = "头像图片路径")
+    private String photoPath;
+
+    @ApiModelProperty(value = "报名时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty(value = "参与活动数量")
+    private Integer total;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/ResidentAutonomyStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/ResidentAutonomyStatisticsVO.java
new file mode 100644
index 0000000..ee19ddc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/ResidentAutonomyStatisticsVO.java
@@ -0,0 +1,147 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: ResidentAutonomyStatisticsVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 居民自治统计信息
+ * @author: hans
+ * @date: 2021/12/06 14:27
+ */
+@Data
+@ApiModel("居民自治统计信息")
+public class ResidentAutonomyStatisticsVO {
+
+    @ApiModelProperty(value = "随手拍本月总数")
+    private Integer easyPhotoCurrentMonCount;
+
+    @ApiModelProperty(value = "随手拍总数")
+    private Integer easyPhotoTotalCount;
+
+    @ApiModelProperty(value = "随手拍分类柱状统计")
+    private List<StatisticsCommVO> easyPhotoHistogram;
+
+    @ApiModelProperty(value = "微心愿本月总数")
+    private Integer microWishCurrentMonCount;
+
+    @ApiModelProperty(value = "集心池")
+    private Integer aimNum;
+
+    @ApiModelProperty(value = "微心愿总数")
+    private Integer microWishTotal;
+
+    @ApiModelProperty(value = "微心愿待实现&已实现数目及占比")
+    private List<StatisticsCommVO> microWishRealizePercent;
+
+    @ApiModelProperty(value = "微心愿图片")
+    private List<String> microWishImages;
+
+    @ApiModelProperty(value = "业主委员会本月总数")
+    private Integer committeeCurrentMonCount;
+
+    @ApiModelProperty(value = "业主委员会总数")
+    private Integer committeeTotal;
+
+    @ApiModelProperty(value = "业主委员会小区覆盖率")
+    private BigDecimal areaCoverPercent;
+
+    @ApiModelProperty(value = "业主委员会党员占比大于50%数量")
+    private Integer committeeMostlyTotal = 0;
+
+    @ApiModelProperty(value = "业主委员会党员占比")
+    private List<StatisticsCommVO> committeePartyPercent;
+
+    @ApiModelProperty(value = "议事投票本月总数")
+    private Integer discussCurrentMonCount;
+
+    @ApiModelProperty(value = "议事投票总数")
+    private Integer discussTotal;
+
+    @ApiModelProperty(value = "议事参与人总数")
+    private Integer discussCount;
+
+    @ApiModelProperty(value = "投票参与人总数")
+    private Integer voteCount;
+
+    @ApiModelProperty(value = "议事标题")
+    private List<String> discussTitles;
+
+    @ApiModelProperty(value = "投票标题")
+    private List<String> voteTitles;
+
+    @ApiModelProperty(value = "议事投票类型占比")
+    private List<StatisticsCommVO> discussTypePercent;
+
+    @ApiModelProperty(value = "邻里圈本月总数")
+    private Integer neighborCurrentMonCount;
+
+    @ApiModelProperty(value = "邻里圈总数")
+    private Integer neighborTotal;
+
+    @ApiModelProperty(value = "邻里圈点赞量")
+    private Integer neighborFabulousNum;
+
+    @ApiModelProperty(value = "邻里圈分享量")
+    private Integer neighborForwardNum;
+
+    @ApiModelProperty(value = "邻里圈评论量")
+    private Integer neighborCommentNum;
+
+    @ApiModelProperty(value = "邻里圈图片")
+    private List<String> neighborImages;
+
+    @ApiModelProperty(value = "邻里圈文本内容")
+    private List<String> neighborContents;
+
+    @ApiModelProperty(value = "报事报修本月总数")
+    private Integer repairCurrentMonCount;
+
+    @ApiModelProperty(value = "报事报修总数")
+    private Integer repairTotal;
+
+    @ApiModelProperty(value = "报事报修新增折线数据")
+    private List<StatisticsCommVO> repairAddPolylineData;
+
+    @ApiModelProperty(value = "报事报修累计折线数据")
+    private List<StatisticsCommVO> repairTotalPolylineData;
+
+    @ApiModelProperty(value = "爱心义仓本月总数")
+    private Integer warehouseCurrentMonCount;
+
+    @ApiModelProperty(value = "爱心义仓总捐赠数")
+    private Integer warehouseTotal;
+
+    @ApiModelProperty(value = "爱心义仓剩余物品数")
+    private Integer warehouseSurplusTotal;
+
+    @ApiModelProperty(value = "爱心义仓已领取物品数")
+    private Integer warehouseApplyTotal;
+
+    @ApiModelProperty(value = "爱心义仓捐赠记录")
+    private List<String> warehouseDonateRecords;
+
+    @ApiModelProperty(value = "爱心义仓爱心传递")
+    private List<String> warehouseLoveTransfer;
+
+    @ApiModelProperty(value = "爱心义仓捐赠物品图片")
+    private List<String> warehouseImages;
+
+    @ApiModelProperty(value = "居民活动本月总数")
+    private Integer residentActCurrentMonCount;
+
+    @ApiModelProperty(value = "居民活动总数")
+    private Integer residentActTotalCount;
+
+    @ApiModelProperty(value = "居民活动分类柱状统计")
+    private List<StatisticsCommVO> residentActHistogram;
+
+    @ApiModelProperty(value = "居民自治组织数")
+    private Integer residentAutonomyOrgCount = 0;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/ScreenStatics.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/ScreenStatics.java
new file mode 100644
index 0000000..c2fd80b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/ScreenStatics.java
@@ -0,0 +1,64 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class ScreenStatics {
+    @ApiModelProperty("注册人数")
+    private Integer user;
+    @ApiModelProperty("日活跃")
+    private Integer dayUser;
+    @ApiModelProperty("月访问量")
+    private Integer countUser;
+    @ApiModelProperty("志愿者")
+    private Integer volunteer;
+    @ApiModelProperty("微心愿")
+    private Integer microWish;
+    @ApiModelProperty("社区活动")
+    private Integer activity;
+    @ApiModelProperty("随手拍")
+    private Integer neighbor;
+    @ApiModelProperty("党组织")
+    private Integer partyOrg;
+    @ApiModelProperty("党员")
+    private Integer partyMember;
+    @ApiModelProperty("红色物业")
+    private Integer red;
+    @ApiModelProperty("网格治理")
+    private Integer grid;
+    @ApiModelProperty("议事投票")
+    private Integer discuss;
+    @ApiModelProperty("共建协议")
+    private Integer agreement;
+    @ApiModelProperty("报道党员")
+    private Integer arrivePartyMember;
+
+    @ApiModelProperty("办事指南")
+    private Integer transactionEvent;
+
+    @ApiModelProperty("便民商家")
+    private Integer merchantsCount;
+
+    @ApiModelProperty("商家累计资询量")
+    private Integer consultationStatistics;
+    @ApiModelProperty("网格员")
+    private Integer gridMember;
+
+
+    @ApiModelProperty("随手拍完成率")
+    private Float easyPhotoPercentage;
+    @ApiModelProperty("微心愿成率")
+    private Float microWishPercentage;
+    @ApiModelProperty("会议完成率")
+    private Float discussPercentage;
+
+    @ApiModelProperty("志愿者队伍")
+    private Integer volunteerTeam;
+    @ApiModelProperty("志愿者组织")
+    private Integer volunteerOrg;
+    @ApiModelProperty("议事投票")
+    private Integer discussCount;
+    @ApiModelProperty("问卷调查")
+    private Integer questnaireCount;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/VolunteerOrgRelationVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/VolunteerOrgRelationVO.java
new file mode 100644
index 0000000..2d524a9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/VolunteerOrgRelationVO.java
@@ -0,0 +1,28 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.ComMngVolunteerMngVO;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: VolunteerOrgRelationVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 志愿者组织关系
+ * @author: hans
+ * @date: 2022/03/03 13:30
+ */
+@Data
+public class VolunteerOrgRelationVO {
+
+    @ApiModelProperty("组织")
+    private String org;
+
+    @ApiModelProperty("组织人数")
+    private Integer orgPersonNum;
+
+    @ApiModelProperty("志愿者")
+    List<ComMngVolunteerMngVO> volunteers;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/WestScreenStatics.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/WestScreenStatics.java
new file mode 100644
index 0000000..e686b39
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/bigscreen/WestScreenStatics.java
@@ -0,0 +1,37 @@
+package com.panzhihua.common.model.vos.community.bigscreen;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel("西区大屏治理数据")
+public class WestScreenStatics {
+    @ApiModelProperty("注册人数")
+    private Integer user;
+    @ApiModelProperty("党组织")
+    private Integer partyOrg;
+    @ApiModelProperty("党员")
+    private Integer partyMember;
+    @ApiModelProperty("志愿者")
+    private Integer volunteer;
+    @ApiModelProperty("微心愿")
+    private Integer microWish;
+    @ApiModelProperty("安全巡查")
+    private Integer safety;
+    @ApiModelProperty("社区活动")
+    private Integer activity;
+    @ApiModelProperty("疫情防控")
+    private Integer reserve;
+    @ApiModelProperty("随手拍")
+    private Integer neighbor;
+    @ApiModelProperty("一起议")
+    private Integer discuss;
+    @ApiModelProperty("日活跃")
+    private Integer dayUser;
+    @ApiModelProperty("累计用户")
+    private Integer countUser;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/BuildingVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/BuildingVO.java
new file mode 100644
index 0000000..5ebd807
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/BuildingVO.java
@@ -0,0 +1,9 @@
+package com.panzhihua.common.model.vos.community.building;
+
+import lombok.Data;
+
+@Data
+public class BuildingVO {
+    private String label;
+    private String value;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/IntegratingTaskVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/IntegratingTaskVO.java
new file mode 100644
index 0000000..a2253de
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/IntegratingTaskVO.java
@@ -0,0 +1,44 @@
+package com.panzhihua.common.model.vos.community.building;
+
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("用户积分任务表")
+public class IntegratingTaskVO
+{
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "是否领取1未领取   2完成")
+    private String isDraw;
+
+    @ApiModelProperty(value = "状态 11花城登录  12 查看问题清单 13查看需求清单  14 查看报道服务活动  15查看微心愿  16 查看随手拍  18 上传“随手拍”或“微心愿")
+    private String status;
+
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+
+    @ApiModelProperty(value = "积分")
+    private String num;
+
+
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/NewFightConfigVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/NewFightConfigVO.java
new file mode 100644
index 0000000..7c9d159
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/NewFightConfigVO.java
@@ -0,0 +1,58 @@
+package com.panzhihua.common.model.vos.community.building;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("社区商家配置")
+public class NewFightConfigVO implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+    @ApiModelProperty(value = "兑换地址")
+    private String address;
+
+    @ApiModelProperty(value = "纬度")
+    private String lat;
+
+    @ApiModelProperty(value = "经度")
+    private String lng;
+
+    @ApiModelProperty(value = "兑换状态(1每天  2周一到周五   3周末)")
+    private String businessType;
+
+    @ApiModelProperty(value = "兑换开始时间")
+    private String businessStartTime;
+
+    @ApiModelProperty(value = "兑换结束时间")
+    private String businessEndTime;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/NewFightConvenientMerchantVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/NewFightConvenientMerchantVO.java
new file mode 100644
index 0000000..188cc80
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/NewFightConvenientMerchantVO.java
@@ -0,0 +1,86 @@
+package com.panzhihua.common.model.vos.community.building;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @title: ConvenientMerchantVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务商家信息
+ * @author: hans
+ * @date: 2021/09/16 13:49
+ */
+@Data
+@ApiModel("便民服务商家信息")
+public class NewFightConvenientMerchantVO {
+
+    @ApiModelProperty("商家ID")
+    private String id;
+
+    @ApiModelProperty("商家名称")
+    private String name;
+
+    @ApiModelProperty("商家logo")
+    private String logo;
+
+    @ApiModelProperty("联系人")
+    private String contacts;
+
+    @ApiModelProperty("咨询电话")
+    private String phone;
+
+    @ApiModelProperty("商家地址")
+    private String address;
+
+    @ApiModelProperty("纬度")
+    private String lat;
+
+    @ApiModelProperty("经度")
+    private String lon;
+
+    @ApiModelProperty("商家详细地址")
+    private String detailedAddress;
+
+
+    @ApiModelProperty("商家介绍")
+    private String introduction;
+
+
+    @ApiModelProperty("是否删除")
+    private String isDel;
+
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "HH:mm:ss", timezone = "GMT+8")
+    private Date createdAt;
+
+
+    @ApiModelProperty("创建人")
+    private String createdBy;
+
+
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "HH:mm:ss", timezone = "GMT+8")
+    private Date updatedAt;
+
+    @ApiModelProperty("商家图片")
+    private String imgUrl;
+
+    @ApiModelProperty("1启用   2禁用")
+    private String status;
+
+
+    @ApiModelProperty("营业积分")
+    private String businessCredit;
+
+    @ApiModelProperty("社区id")
+    private String communityId;
+
+
+    @ApiModelProperty("绑定用户id")
+    private String userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/NewFightShoppingOrderVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/NewFightShoppingOrderVO.java
new file mode 100644
index 0000000..aeb1811
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/NewFightShoppingOrderVO.java
@@ -0,0 +1,104 @@
+package com.panzhihua.common.model.vos.community.building;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("商城订单表")
+public class NewFightShoppingOrderVO implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "订单号")
+    private String orderNumber;
+
+    @ApiModelProperty(value = "商品id")
+    private String goodsId;
+
+    @ApiModelProperty(value = "下单人id")
+    private String userId;
+
+    @ApiModelProperty(value = "核销状态(0待核销  1已核销  2订单已取消)")
+    private String cancelType;
+
+    @ApiModelProperty(value = "核销时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date cancelTime;
+
+    @ApiModelProperty(value = "支付金额")
+    private String palyMoney;
+
+    @ApiModelProperty(value = "创建时间(兑换时间)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    @ApiModelProperty(value = "取消时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date abolishTime;
+
+
+    @ApiModelProperty(value = "商品名称")
+    private String goodName;
+
+    @ApiModelProperty(value = "商品价格")
+    private String goodPrice;
+
+    @ApiModelProperty(value = "商品图片")
+    private String coverImgUrl;
+
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    @ApiModelProperty(value = "电话")
+    private String phone;
+
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+    @ApiModelProperty(value = "兑换地址")
+    private String address;
+
+    @ApiModelProperty(value = "纬度")
+    private String lat;
+
+    @ApiModelProperty(value = "经度")
+    private String lng;
+
+    @ApiModelProperty(value = "商家id")
+    private String merchantId;
+
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+    @ApiModelProperty(value = "订单类型  1 线上订单    2线下商家订单")
+    private String orderType;
+
+    @ApiModelProperty(value = "兑换状态(1每天  2周一到周五   3周末)")
+    private String businessType;
+
+    @ApiModelProperty(value = "兑换开始时间")
+    private String businessStartTime;
+
+    @ApiModelProperty(value = "兑换结束时间")
+    private String businessEndTime;
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/NewFightShoppingVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/NewFightShoppingVO.java
new file mode 100644
index 0000000..202ad9c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/NewFightShoppingVO.java
@@ -0,0 +1,70 @@
+package com.panzhihua.common.model.vos.community.building;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("商城商品表")
+public class NewFightShoppingVO implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "商品名称")
+    private String goodName;
+
+    @ApiModelProperty(value = "商品价格")
+    private String goodPrice;
+
+    @ApiModelProperty(value = "商品状态(0下架  1上架)")
+    private String goodType;
+
+    @ApiModelProperty(value = "商品封面")
+    private String coverImgUrl;
+
+    @ApiModelProperty(value = "商品详情内容")
+    private String content;
+
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    @ApiModelProperty(value = "地址")
+    private String address;
+
+    @ApiModelProperty(value = "纬度")
+    private String lat;
+
+    @ApiModelProperty(value = "经度")
+    private String lng;
+
+    @ApiModelProperty(value = "兑换状态(1每天  2周一到周五   3周末)")
+    private String businessType;
+
+    @ApiModelProperty(value = "兑换开始时间")
+    private String businessStartTime;
+
+    @ApiModelProperty(value = "兑换结束时间")
+    private String businessEndTime;
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/admin/BuildingDetailAdminVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/admin/BuildingDetailAdminVo.java
new file mode 100644
index 0000000..fedd9b6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/admin/BuildingDetailAdminVo.java
@@ -0,0 +1,49 @@
+package com.panzhihua.common.model.vos.community.building.admin;
+
+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;
+
+/**
+ * @author lyq
+ * 楼栋详情返回参数
+ */
+
+@Data
+@ApiModel("楼栋详情返回参数")
+public class BuildingDetailAdminVo {
+
+    @ApiModelProperty("楼栋主键")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("街路巷")
+    private String alley;
+
+    @ApiModelProperty("街路巷号")
+    private String doorNum;
+
+    @ApiModelProperty("楼栋号")
+    private String name;
+
+    @ApiModelProperty("小区名称")
+    private String villageName;
+
+    @ApiModelProperty("小区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long villageId;
+
+    @ApiModelProperty("房屋总户数")
+    private Integer houseNum;
+
+    @ApiModelProperty("自住房屋数量")
+    private Integer liveTotal;
+
+    @ApiModelProperty("出租房屋数量")
+    private Integer leaseTotal;
+
+    @ApiModelProperty("空置房屋数量")
+    private Integer vacantNum;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/admin/BuildingListHeaderStatisticsAdminVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/admin/BuildingListHeaderStatisticsAdminVo.java
new file mode 100644
index 0000000..b8e431b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/admin/BuildingListHeaderStatisticsAdminVo.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.vos.community.building.admin;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * 楼栋列表表头统计返回参数
+ */
+
+@Data
+@ApiModel("楼栋列表表头统计返回参数")
+public class BuildingListHeaderStatisticsAdminVo {
+
+    @ApiModelProperty("楼栋数")
+    private Integer buildNum;
+
+    @ApiModelProperty("总户数")
+    private Integer houseNum;
+
+    @ApiModelProperty("居民人数")
+    private Integer populationNum;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/admin/BuildingUnitHouseListAdminVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/admin/BuildingUnitHouseListAdminVo.java
new file mode 100644
index 0000000..f8eb0ee
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/admin/BuildingUnitHouseListAdminVo.java
@@ -0,0 +1,35 @@
+package com.panzhihua.common.model.vos.community.building.admin;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingHouseVO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author lyq
+ * 楼栋单元下房屋列表返回参数
+ */
+
+@Data
+@ApiModel("楼栋单元下房屋列表返回参数")
+public class BuildingUnitHouseListAdminVo {
+
+    @ApiModelProperty("楼栋单元下房屋列表")
+    private List<ComMngVillageBuildingHouseVO> houseList;
+
+    @ApiModelProperty("房屋总户数")
+    private Integer houseNum = 0;
+
+    @ApiModelProperty("自住房屋数量")
+    private Integer liveTotal = 0;
+
+    @ApiModelProperty("出租房屋数量")
+    private Integer leaseTotal = 0;
+
+    @ApiModelProperty("空置房屋数量")
+    private Integer vacantNum = 0;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/admin/PageBuildingListAdminVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/admin/PageBuildingListAdminVo.java
new file mode 100644
index 0000000..9ebdb03
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/building/admin/PageBuildingListAdminVo.java
@@ -0,0 +1,49 @@
+package com.panzhihua.common.model.vos.community.building.admin;
+
+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;
+
+/**
+ * @author lyq
+ * 分页查询楼栋列表返回参数
+ */
+
+@Data
+@ApiModel("分页查询楼栋列表返回参数")
+public class PageBuildingListAdminVo {
+
+    @ApiModelProperty("楼栋主键")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("街路巷")
+    private String alley;
+
+    @ApiModelProperty("楼栋号")
+    private String name;
+
+    @ApiModelProperty("小区名称")
+    private String villageName;
+
+    @ApiModelProperty("小区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long villageId;
+
+    @ApiModelProperty("单元数")
+    private Integer unitTotal;
+
+    @ApiModelProperty("楼层数")
+    private String buildFloorSum;
+
+    @ApiModelProperty("总户数")
+    private Integer houseNum;
+
+    @ApiModelProperty("居民人数")
+    private Integer populationNum;
+
+    @ApiModelProperty("门牌号")
+    private String doorNum;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/cluster/PageClusterMemberVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/cluster/PageClusterMemberVo.java
new file mode 100644
index 0000000..a9d0200
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/cluster/PageClusterMemberVo.java
@@ -0,0 +1,41 @@
+package com.panzhihua.common.model.vos.community.cluster;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * 分页查询群团组织成员返回参数
+ */
+@Data
+@ApiModel("分页查询群团组织成员返回参数")
+public class PageClusterMemberVo {
+
+    @ApiModelProperty("主键id")
+    private Long id;
+
+    @ApiModelProperty("群团组织成员名称")
+    private String name;
+
+    @ApiModelProperty("群团组织成员照片")
+    private String imageUrl;
+
+    @ApiModelProperty("群团组织成员职务")
+    private String job;
+
+    @ApiModelProperty("群团组织成员电话")
+    private String phone;
+
+    @ApiModelProperty("群团组织成员住址")
+    private String address;
+
+    @ApiModelProperty("群团组织成员身份证号码")
+    private String idCard;
+
+    @ApiModelProperty("所属群团组织id")
+    private Long clusterId;
+
+    @ApiModelProperty("所属群团组织名称")
+    private String clusterName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/cluster/PageClusterVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/cluster/PageClusterVo.java
new file mode 100644
index 0000000..f19c7af
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/cluster/PageClusterVo.java
@@ -0,0 +1,21 @@
+package com.panzhihua.common.model.vos.community.cluster;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * 分页查询群团组织成员返回参数
+ */
+@Data
+@ApiModel("分页查询群团组织成员返回参数")
+public class PageClusterVo {
+
+    @ApiModelProperty("主键id")
+    private Long id;
+
+    @ApiModelProperty("群团组织成员名称")
+    private String name;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/cluster/admin/ClusterDetailAdminVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/cluster/admin/ClusterDetailAdminVo.java
new file mode 100644
index 0000000..833e362
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/cluster/admin/ClusterDetailAdminVo.java
@@ -0,0 +1,39 @@
+package com.panzhihua.common.model.vos.community.cluster.admin;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * 群团组织详情返回参数
+ */
+@Data
+@ApiModel("群团组织详情返回参数")
+public class ClusterDetailAdminVo {
+
+    @ApiModelProperty("主键id")
+    private Long id;
+
+    @ApiModelProperty("群团组织成员名称")
+    private String name;
+
+    @ApiModelProperty("群团组织成员logo")
+    private String logo;
+
+    @ApiModelProperty("群团组织成员电话")
+    private String phone;
+
+    @ApiModelProperty("群团组织成员地址")
+    private String address;
+
+    @ApiModelProperty("状态(1.启用 2.禁用)")
+    private Integer status;
+
+    @ApiModelProperty("经度")
+    private String lng;
+
+    @ApiModelProperty("维度")
+    private String lat;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/cluster/admin/ClusterMemberNationVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/cluster/admin/ClusterMemberNationVo.java
new file mode 100644
index 0000000..6284ada
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/cluster/admin/ClusterMemberNationVo.java
@@ -0,0 +1,21 @@
+package com.panzhihua.common.model.vos.community.cluster.admin;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * 查询系统民族列表返回参数
+ */
+@Data
+@ApiModel("查询系统民族列表返回参数")
+public class ClusterMemberNationVo {
+
+    @ApiModelProperty("民族code")
+    private String nationCode;
+
+    @ApiModelProperty("民族名称")
+    private String nationName;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/cluster/admin/ComClusterMemberExcelErrorVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/cluster/admin/ComClusterMemberExcelErrorVO.java
new file mode 100644
index 0000000..2e45831
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/cluster/admin/ComClusterMemberExcelErrorVO.java
@@ -0,0 +1,38 @@
+package com.panzhihua.common.model.vos.community.cluster.admin;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @description: 批量导入群团组织成员
+ * @author : lyq
+ */
+@Data
+public class ComClusterMemberExcelErrorVO implements Serializable {
+
+    @ExcelProperty(value = "姓名", index = 0)
+    private String name;
+
+    @ExcelProperty(value = "组织名称", index = 1)
+    private String clusterName;
+
+    @ExcelProperty(value = "职务", index = 2)
+    private String job;
+
+    @ExcelProperty(value = "联系电话", index = 3)
+    private String phone;
+
+    @ExcelProperty(value = "民族", index = 4)
+    private String nation;
+
+    @ExcelProperty(value = "住址", index = 5)
+    private String address;
+
+    @ExcelProperty(value = "身份证号码", index = 6)
+    private String idCard;
+
+    @ExcelProperty(value = "错误信息", index = 7)
+    private String error;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/cluster/admin/ComClusterMemberExcelExportAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/cluster/admin/ComClusterMemberExcelExportAdminVO.java
new file mode 100644
index 0000000..34c06f3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/cluster/admin/ComClusterMemberExcelExportAdminVO.java
@@ -0,0 +1,26 @@
+package com.panzhihua.common.model.vos.community.cluster.admin;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author lyq
+ * title 群团组织导出对象
+ */
+@Data
+public class ComClusterMemberExcelExportAdminVO {
+
+    @ExcelProperty(value = "姓名" ,index = 0)
+    private String name;
+    @ExcelProperty(value = "所属组织" ,index = 1)
+    private String clusterName;
+    @ExcelProperty(value = "职务" ,index = 2)
+    private String job;
+    @ExcelProperty(value = "联系电话" ,index = 3)
+    private String phone;
+    @ExcelProperty(value = "状态" ,index = 4)
+    private String status;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/cluster/admin/ComClusterMemberExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/cluster/admin/ComClusterMemberExcelVO.java
new file mode 100644
index 0000000..01507dc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/cluster/admin/ComClusterMemberExcelVO.java
@@ -0,0 +1,35 @@
+package com.panzhihua.common.model.vos.community.cluster.admin;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @description: 批量导入群团组织成员
+ * @author : lyq
+ */
+@Data
+public class ComClusterMemberExcelVO implements Serializable {
+
+    @ExcelProperty(value = "姓名", index = 0)
+    private String name;
+
+    @ExcelProperty(value = "组织名称", index = 1)
+    private String clusterName;
+
+    @ExcelProperty(value = "职务", index = 2)
+    private String job;
+
+    @ExcelProperty(value = "联系电话", index = 3)
+    private String phone;
+
+    @ExcelProperty(value = "民族", index = 4)
+    private String nation;
+
+    @ExcelProperty(value = "住址", index = 5)
+    private String address;
+
+    @ExcelProperty(value = "身份证号码", index = 6)
+    private String idCard;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/cluster/admin/PageClusterAdminVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/cluster/admin/PageClusterAdminVo.java
new file mode 100644
index 0000000..db3ad06
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/cluster/admin/PageClusterAdminVo.java
@@ -0,0 +1,36 @@
+package com.panzhihua.common.model.vos.community.cluster.admin;
+
+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;
+
+/**
+ * @author lyq
+ * 分页查询群团组织成员返回参数
+ */
+@Data
+@ApiModel("分页查询群团组织返回参数")
+public class PageClusterAdminVo {
+
+    @ApiModelProperty("主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("群团组织名称")
+    private String name;
+
+    @ApiModelProperty("群团组织logo")
+    private String logo;
+
+    @ApiModelProperty("群团组织电话")
+    private String phone;
+
+    @ApiModelProperty("群团组织地址")
+    private String address;
+
+    @ApiModelProperty("状态(1.启用 2.禁用)")
+    private Integer status;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/cluster/admin/PageClusterMemberAdminVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/cluster/admin/PageClusterMemberAdminVo.java
new file mode 100644
index 0000000..a0db5b8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/cluster/admin/PageClusterMemberAdminVo.java
@@ -0,0 +1,52 @@
+package com.panzhihua.common.model.vos.community.cluster.admin;
+
+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;
+
+/**
+ * @author lyq
+ * 分页查询群团组织成员返回参数
+ */
+@Data
+@ApiModel("分页查询群团组织成员返回参数")
+public class PageClusterMemberAdminVo {
+
+    @ApiModelProperty("主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("群团组织成员名称")
+    private String name;
+
+    @ApiModelProperty("群团组织成员照片")
+    private String imageUrl;
+
+    @ApiModelProperty("群团组织成员职务")
+    private String job;
+
+    @ApiModelProperty("群团组织成员电话")
+    private String phone;
+
+    @ApiModelProperty("群团组织成员住址")
+    private String address;
+
+    @ApiModelProperty("群团组织成员身份证号码")
+    private String idCard;
+
+    @ApiModelProperty("所属群团组织id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long clusterId;
+
+    @ApiModelProperty("所属群团组织名称")
+    private String clusterName;
+
+    @ApiModelProperty("状态(1.启用  2禁用)")
+    private Integer status;
+
+    @ApiModelProperty("民族code")
+    private String nationCode;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientConsultationStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientConsultationStatisticsVO.java
new file mode 100644
index 0000000..f04d740
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientConsultationStatisticsVO.java
@@ -0,0 +1,20 @@
+package com.panzhihua.common.model.vos.community.convenient;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * @title: ConvenientConsultationStatisticsVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务商家咨询量
+ * @author: hans
+ * @date: 2021/09/16 13:49
+ */
+@Data
+@ApiModel("便民服务商家咨询量")
+public class ConvenientConsultationStatisticsVO {
+
+    private Long merchantId;
+
+    private Integer totalConsultationNum;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientElevatingPointOrderVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientElevatingPointOrderVO.java
new file mode 100644
index 0000000..d3e465d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientElevatingPointOrderVO.java
@@ -0,0 +1,21 @@
+package com.panzhihua.common.model.vos.community.convenient;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @ClassName: ConvenientElevatingPointVO
+ * @Author: yh
+ * @Date: 2022/11/8 9:54
+ * @Description: 便民服自提点
+ */
+@Data
+@ApiModel("开始配送/未配送详情")
+public class ConvenientElevatingPointOrderVO {
+
+    @ApiModelProperty("自提点信息")
+   private ConvenientElevatingPointVO convenientElevatingPointVO;
+    @ApiModelProperty("订单分页")
+    private Object iPage;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientElevatingPointVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientElevatingPointVO.java
new file mode 100644
index 0000000..51c117f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientElevatingPointVO.java
@@ -0,0 +1,115 @@
+package com.panzhihua.common.model.vos.community.convenient;
+
+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;
+
+/**
+ * @ClassName: ConvenientElevatingPointVO
+ * @Author: yh
+ * @Date: 2022/11/8 9:54
+ * @Description: 便民服自提点
+ */
+@Data
+@ApiModel("便民服自提点")
+public class ConvenientElevatingPointVO implements Comparable<ConvenientElevatingPointVO>{
+    /**
+     * 主键id
+     */
+    @ApiModelProperty("主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+    /**
+     * 自提点名称
+     */
+    @ApiModelProperty("自提点名称")
+    private String name;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty("社区id")
+    private String communityId;
+    /**
+     * 社区名称
+     */
+    @ApiModelProperty("社区名称")
+    private String communityName;
+    /**
+     * 提货点地址
+     */
+    @ApiModelProperty("提货点地址")
+    private String address;
+    /**
+     * 联系人
+     */
+    @ApiModelProperty("联系人")
+    private String contacts;
+    /**
+     * 纬度
+     */
+    @ApiModelProperty("纬度")
+    private String lat;
+    /**
+     * 经度
+     */
+    @ApiModelProperty("经度")
+    private String lon;
+    /**
+     * 联系电话
+     */
+    @ApiModelProperty("联系电话")
+    private String phone;
+    /**
+     * 微信账号
+     */
+    @ApiModelProperty("微信账号")
+    private String wechatAccount;
+    /**
+     * 状态,1:显示,2:隐藏
+     */
+    @ApiModelProperty("状态,1:显示,2:隐藏")
+    private Integer businessStatus;
+    /**
+     * 累计商品数量
+     */
+    @ApiModelProperty("累计商品数量")
+    private Long cumulativeGoodsNum;
+    /**
+     * 待提货数量
+     */
+    @ApiModelProperty("待提货数量")
+    private Long prepareGoodsNum;
+    /**
+     * 已提货数量
+     */
+    @ApiModelProperty("已提货数量")
+    private Long alreadyGoodsNum;
+
+    /**
+     * 距离手机定位距离
+     */
+    @ApiModelProperty("距离手机定位距离")
+    private Double distance;
+
+    /**
+     * 配送订单数量
+     */
+    @ApiModelProperty(value = "配送订单数量")
+    private Integer deliveryOrderNum;
+
+    /**
+     * 配送商品数量
+     */
+    @ApiModelProperty(value = "配送商品数量")
+    private Integer deliveryGoodsNum;
+
+    @ApiModelProperty(value = "提货点详细地址")
+    private String detailAddress;
+
+    @Override
+    public int compareTo(ConvenientElevatingPointVO o) {
+        return this.getDistance().compareTo(o.getDistance()); //定义你自己的排序规则
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientGoodsCategoryVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientGoodsCategoryVO.java
new file mode 100644
index 0000000..847f1b3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientGoodsCategoryVO.java
@@ -0,0 +1,40 @@
+package com.panzhihua.common.model.vos.community.convenient;
+
+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.util.Date;
+
+/**
+ * @title: ConvenientGoodsCategoryVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 商品分类信息
+ * @author: yh
+ * @date: 2022-10-21 09:36:09
+ */
+@Data
+@ApiModel("商品分类信息")
+public class ConvenientGoodsCategoryVO {
+
+    @ApiModelProperty("分类ID")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("分类名称")
+    private String name;
+
+    @ApiModelProperty("备注")
+    private String remark;
+
+    @ApiModelProperty("权重")
+    private Integer weight;
+
+    @ApiModelProperty("创建人")
+    private String createdBy;
+
+    @ApiModelProperty("创建时间")
+    private Date createdAt;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientMerchantVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientMerchantVO.java
new file mode 100644
index 0000000..162b304
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientMerchantVO.java
@@ -0,0 +1,135 @@
+package com.panzhihua.common.model.vos.community.convenient;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+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.enums.MerchantBusinessPeriod;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: ConvenientMerchantVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务商家信息
+ * @author: hans
+ * @date: 2021/09/16 13:49
+ */
+@Data
+@ApiModel("便民服务商家信息")
+public class ConvenientMerchantVO {
+
+    @ApiModelProperty("商家ID")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("商家名称")
+    private String name;
+
+    @ApiModelProperty("商家logo")
+    private String logo;
+
+    @ApiModelProperty("联系人")
+    private String contacts;
+
+    @ApiModelProperty("负责人身份证号码")
+    private String idCard;
+
+    @ApiModelProperty("咨询电话")
+    private String phone;
+
+    @ApiModelProperty("商家地址")
+    private String address;
+
+    @ApiModelProperty("纬度")
+    private String lat;
+
+    @ApiModelProperty("经度")
+    private String lon;
+
+    @ApiModelProperty("营业开始时间")
+    @JsonFormat(pattern = "HH:mm:ss", timezone = "GMT+8")
+    private Date beginAt;
+
+    @ApiModelProperty("营业截止时间")
+    @JsonFormat(pattern = "HH:mm:ss", timezone = "GMT+8")
+    private Date endAt;
+
+    @ApiModelProperty("营业周期")
+    private MerchantBusinessPeriod period;
+
+    @ApiModelProperty("商家介绍")
+    private String introduction;
+
+    @ApiModelProperty("营业状态")
+    private Integer businessStatus;
+
+    @ApiModelProperty("总咨询量")
+    private Integer consultationVolume;
+
+    @ApiModelProperty("月咨询量")
+    private Integer monthConsultationVolume;
+
+    @ApiModelProperty("日咨询量")
+    private Integer dayConsultationVolume;
+
+    @ApiModelProperty("总浏览量")
+    private Integer viewNum;
+
+    @ApiModelProperty("月浏览量")
+    private Integer monthViewNum;
+
+    @ApiModelProperty("日总浏览量")
+    private Integer dayViewNum;
+
+    @ApiModelProperty("商家绑定账户")
+    private String account;
+
+    @ApiModelProperty("商家账户状态(1.启用 2.禁用)")
+    private Integer accountStatus;
+
+    @ApiModelProperty("所属社区id")
+    private String communityId;
+
+    @ApiModelProperty("所属社区名称")
+    private String communityName;
+
+    @ApiModelProperty("服务范围,多个服务类型','拼接")
+    private String serviceScope;
+
+    @ApiModelProperty("服务类型id列表")
+    private List<String> serviceIds;
+
+    @ApiModelProperty("该商家存有商品,最多返回两条")
+    private List<ConvenientProductVO> productVOList;
+
+    @ApiModelProperty("服务范围")
+    private Integer serviceRange;
+
+    @ApiModelProperty("手机号")
+    private String mobilePhone;
+
+    @ApiModelProperty("店铺销量")
+    private Integer sale;
+
+    @ApiModelProperty("店铺销售额")
+    private BigDecimal saleVolume;
+
+    @ApiModelProperty("详细地址")
+    private String detailedAddress;
+
+    @ApiModelProperty("商家评分")
+    private BigDecimal score;
+
+    public void setPeriod(String period) {
+        this.period = MerchantBusinessPeriod.valueOf(period);
+    }
+
+    public void setBusinessStatus(Boolean businessStatus) {
+        this.businessStatus = businessStatus ? 1 : 0;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientProductCategoryVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientProductCategoryVO.java
new file mode 100644
index 0000000..25d4071
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientProductCategoryVO.java
@@ -0,0 +1,37 @@
+package com.panzhihua.common.model.vos.community.convenient;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @title: ConvenientProductCategoryVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 产品分类信息
+ * @author: hans
+ * @date: 2021/09/20 11:08
+ */
+@Data
+@ApiModel("产品分类信息")
+public class ConvenientProductCategoryVO {
+
+    @ApiModelProperty("分类ID")
+    private Long id;
+
+    @ApiModelProperty("分类名称")
+    private String name;
+
+    @ApiModelProperty("备注")
+    private String remark;
+
+    @ApiModelProperty("权重")
+    private Integer weight;
+
+    @ApiModelProperty("创建人")
+    private String createdBy;
+
+    @ApiModelProperty("创建时间")
+    private Date createdAt;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientProductLevelInfoVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientProductLevelInfoVO.java
new file mode 100644
index 0000000..e350d31
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientProductLevelInfoVO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.vos.community.convenient;
+
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: ConvenientProductLevelInfoVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 商品层级信息VO
+ * @author: hans
+ * @date: 2021/09/23 9:55
+ */
+@Data
+@ApiModel("商品层级信息VO")
+public class ConvenientProductLevelInfoVO {
+
+    @ApiModelProperty("商品分类名称")
+    private String categoryName;
+
+    @ApiModelProperty("该分类下商品")
+    private List<ConvenientProductVO> productVOList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientProductShelfVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientProductShelfVO.java
new file mode 100644
index 0000000..d9a87c4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientProductShelfVO.java
@@ -0,0 +1,23 @@
+package com.panzhihua.common.model.vos.community.convenient;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: ConvenientProductShelfVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务商家后台产品信息
+ * @author: hans
+ * @date: 2021/09/20 21:23
+ */
+@Data
+@ApiModel("便民服务商家后台产品信息")
+public class ConvenientProductShelfVO {
+
+    @ApiModelProperty("上架产品数量")
+    private Integer onShelfTotalNum;
+
+    @ApiModelProperty("下架产品数量")
+    private Integer offShelfTotalNum;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientProductSpecificationVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientProductSpecificationVO.java
new file mode 100644
index 0000000..f1153f8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientProductSpecificationVO.java
@@ -0,0 +1,38 @@
+package com.panzhihua.common.model.vos.community.convenient;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @title: ConvenientProductSpecificationVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 产品规格信息
+ * @author: hans
+ * @date: 2021/09/20 20:43
+ */
+@Data
+@ApiModel("产品规格信息")
+public class ConvenientProductSpecificationVO {
+
+    @ApiModelProperty("规格ID")
+    private Long id;
+
+    @ApiModelProperty("规格名称")
+    private String name;
+
+    @ApiModelProperty("价格")
+    private BigDecimal price;
+
+    @ApiModelProperty("产品图片")
+    private String image;
+
+    @ApiModelProperty("规格所属产品ID")
+    private Long productId;
+
+    @ApiModelProperty("创建时间")
+    private Date createdAt;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientProductVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientProductVO.java
new file mode 100644
index 0000000..b4711ed
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientProductVO.java
@@ -0,0 +1,57 @@
+package com.panzhihua.common.model.vos.community.convenient;
+
+import java.util.Date;
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: ConvenientProductVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务商家后台产品信息
+ * @author: hans
+ * @date: 2021/09/20 21:23
+ */
+@Data
+@ApiModel("便民服务商家后台产品信息")
+public class ConvenientProductVO {
+
+    @ApiModelProperty("产品ID")
+    private Long id;
+
+    @ApiModelProperty("产品名称")
+    private String name;
+
+    @ApiModelProperty("产品图片")
+    private String image;
+
+    @ApiModelProperty("产品介绍")
+    private String introduction;
+
+    @ApiModelProperty("所属分类")
+    private Long categoryId;
+
+    @ApiModelProperty("所属商家")
+    private Long merchantId;
+
+    @ApiModelProperty("所属分类名称")
+    private String categoryName;
+
+    @ApiModelProperty("产品规格")
+    private List<ConvenientProductSpecificationVO> productSpecificationVOList;
+
+    @ApiModelProperty("上架状态,1.上架 0.下架")
+    private Integer onShelf;
+
+    @ApiModelProperty("上架时间")
+    private Date onShelfAt;
+
+    @ApiModelProperty("浏览量")
+    private Integer viewNum;
+
+    public void setOnShelf(Boolean onShelf) {
+        this.onShelf = onShelf ? 1 : 0;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientServiceCategoryVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientServiceCategoryVO.java
new file mode 100644
index 0000000..36d32b4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientServiceCategoryVO.java
@@ -0,0 +1,43 @@
+package com.panzhihua.common.model.vos.community.convenient;
+
+import java.util.Date;
+
+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;
+
+/**
+ * @title: ConvenientServiceCategoryVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务分类信息
+ * @author: hans
+ * @date: 2021/09/16 10:06
+ */
+@Data
+@ApiModel("便民服务分类信息")
+public class ConvenientServiceCategoryVO {
+
+    @ApiModelProperty("分类ID")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("分类名称")
+    private String name;
+
+    @ApiModelProperty("分类图标")
+    private String icon;
+
+    @ApiModelProperty("备注")
+    private String remark;
+
+    @ApiModelProperty("权重")
+    private Integer weight;
+
+    @ApiModelProperty("创建人")
+    private String createdBy;
+
+    @ApiModelProperty("创建时间")
+    private Date createdAt;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientViewStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientViewStatisticsVO.java
new file mode 100644
index 0000000..ceb9561
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ConvenientViewStatisticsVO.java
@@ -0,0 +1,20 @@
+package com.panzhihua.common.model.vos.community.convenient;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * @title: ConvenientViewStatisticsVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务商家浏览量
+ * @author: hans
+ * @date: 2021/09/16 13:49
+ */
+@Data
+@ApiModel("便民服务商家浏览量")
+public class ConvenientViewStatisticsVO {
+
+    private Long merchantId;
+
+    private Integer totalViewNum;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ExportMerchantVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ExportMerchantVO.java
new file mode 100644
index 0000000..6bee3cc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/ExportMerchantVO.java
@@ -0,0 +1,85 @@
+package com.panzhihua.common.model.vos.community.convenient;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+
+import lombok.Data;
+
+/**
+ * @title: ExportMerchantVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 商家导出VO
+ * @author: hans
+ * @date: 2021/09/23 15:41
+ */
+@Data
+public class ExportMerchantVO {
+
+    private Long id;
+
+    @ExcelProperty("商家名称")
+    private String name;
+
+    @ExcelProperty("联系人")
+    private String contacts;
+
+    @ExcelProperty("负责人身份证号")
+    private String idCard;
+
+    @ExcelProperty("咨询电话")
+    private String phone;
+
+    @ExcelProperty("商家地址")
+    private String address;
+
+    @ExcelProperty("营业时间")
+    private String businessTime;
+
+    @ExcelProperty("商家介绍")
+    private String introduction;
+
+    @ExcelProperty("营业状态")
+    private String businessStatus;
+
+    @ExcelProperty("总咨询量")
+    private Integer consultationVolume;
+
+    @ExcelProperty("管理账号")
+    private String account;
+
+    @ExcelProperty("账户状态")
+    private String accountStatus;
+
+    @ExcelProperty("所属社区")
+    private String communityName;
+
+    @ExcelProperty("服务范围")
+    private String serviceScope;
+
+    public void setBusinessStatus(Boolean businessStatus) {
+        this.businessStatus = businessStatus ? "在营" : "已关闭";
+    }
+
+    public void setBusinessStatus(String businessStatus) {
+        this.businessStatus = businessStatus;
+    }
+
+    public void setAccountStatus(Integer accountStatus) {
+        this.accountStatus = accountStatus.intValue() == 1 ? "启用" : "禁用";
+    }
+
+    public void setAccountStatus(String accountStatus) {
+        this.accountStatus = accountStatus;
+    }
+
+    public void setBusinessTimeTime(String businessTime) {
+        if (businessTime.contains("EVERY_DAY")) {
+            this.businessTime = businessTime.replace("EVERY_DAY", "每天:");
+        } else if (businessTime.contains("WEEKDAY")) {
+            this.businessTime = businessTime.replace("WEEKDAY", "周一至周五:");
+        } else if (businessTime.contains("WEEKEND")) {
+            this.businessTime = businessTime.replace("WEEKEND", "周末:");
+        } else {
+            this.businessTime = businessTime;
+        }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/JinhuiConvenientMerchantVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/JinhuiConvenientMerchantVO.java
new file mode 100644
index 0000000..a46213a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/convenient/JinhuiConvenientMerchantVO.java
@@ -0,0 +1,89 @@
+package com.panzhihua.common.model.vos.community.convenient;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @title: ConvenientMerchantVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务商家信息
+ * @author: hans
+ * @date: 2021/09/16 13:49
+ */
+@Data
+@ApiModel("便民服务商家信息")
+public class JinhuiConvenientMerchantVO {
+
+    @ApiModelProperty("商家ID")
+    private String id;
+
+    @ApiModelProperty("商家名称")
+    private String name;
+
+    @ApiModelProperty("商家logo")
+    private String logo;
+
+    @ApiModelProperty("联系人")
+    private String contacts;
+
+    @ApiModelProperty("咨询电话")
+    private String phone;
+
+    @ApiModelProperty("商家地址")
+    private String address;
+
+    @ApiModelProperty("纬度")
+    private String lat;
+
+    @ApiModelProperty("经度")
+    private String lon;
+
+    @ApiModelProperty("商家详细地址")
+    private String detailedAddress;
+
+
+    @ApiModelProperty("商家介绍")
+    private String introduction;
+
+
+    @ApiModelProperty("是否删除")
+    private String isDel;
+
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "HH:mm:ss", timezone = "GMT+8")
+    private Date createdAt;
+
+
+    @ApiModelProperty("创建人")
+    private String createdBy;
+
+
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "HH:mm:ss", timezone = "GMT+8")
+    private Date updatedAt;
+
+
+    @ApiModelProperty("商家类型id")
+    private String convenientType;
+
+    @ApiModelProperty("商家类型名称")
+    private String convenientName;
+
+    @ApiModelProperty("商家图片")
+    private String imgUrl;
+
+    @ApiModelProperty("审核状态 (1待审核    2已通过   3未通过   )")
+    private String auditType;
+
+    @ApiModelProperty("审核意见")
+    private String auditOpinion;
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/easyPhoto/BannerVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/easyPhoto/BannerVO.java
new file mode 100644
index 0000000..6920ff9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/easyPhoto/BannerVO.java
@@ -0,0 +1,33 @@
+package com.panzhihua.common.model.vos.community.easyPhoto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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.util.Date;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel
+public class BannerVO {
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+    @ApiModelProperty("1社区动态、2居民活动、志愿者活动、3党员活动、4问卷调查、5党建动态、6预约登记、7随手拍活动")
+    private Integer type;
+    @ApiModelProperty("发布时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date showTime;
+    @ApiModelProperty("图片路径")
+    private String cover;
+    @ApiModelProperty("跳转地址")
+    private String jumpUrl;
+    @ApiModelProperty("跳转类型")
+    private String jumpType;
+    @ApiModelProperty("banner图片地址")
+    private String imageUrl;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/easyPhoto/ComActEasyPhotoActivityUserVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/easyPhoto/ComActEasyPhotoActivityUserVO.java
new file mode 100644
index 0000000..6ce7e1f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/easyPhoto/ComActEasyPhotoActivityUserVO.java
@@ -0,0 +1,43 @@
+package com.panzhihua.common.model.vos.community.easyPhoto;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("随手拍活动居民参与列表返回参数")
+public class ComActEasyPhotoActivityUserVO {
+
+    @ApiModelProperty("随手拍id")
+    private Long id;
+
+    @ApiModelProperty("用户昵称")
+    private String nickName;
+
+    @ApiModelProperty("用户姓名")
+    private String userName;
+
+    @ApiModelProperty("用户手机号")
+    private String phone;
+
+    @ApiModelProperty("随手拍内容")
+    private String detail;
+
+    @ApiModelProperty("随手拍标签(1.优质 2.精良 3.普通)")
+    private Integer activityType;
+
+    @ApiModelProperty("随手拍活动奖励金额")
+    private BigDecimal activityAmount;
+
+    @ApiModelProperty("随手拍状态(1待审核 2进行中 3已驳回 4已完成)")
+    private Integer status;
+
+    @ApiModelProperty("参与时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/easyPhoto/ComActEasyPhotoActivityVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/easyPhoto/ComActEasyPhotoActivityVO.java
new file mode 100644
index 0000000..6907ae6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/easyPhoto/ComActEasyPhotoActivityVO.java
@@ -0,0 +1,55 @@
+package com.panzhihua.common.model.vos.community.easyPhoto;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("随手拍活动返回参数")
+public class ComActEasyPhotoActivityVO {
+
+    @ApiModelProperty("活动id")
+    private Long id;
+
+    @ApiModelProperty("社区id")
+    private Long communityId;
+
+    @ApiModelProperty("活动状态(1.待开始 2.进行中 3.已结束  4.已取消)")
+    private Integer status;
+
+    @ApiModelProperty("活动简介")
+    private String content;
+
+    @ApiModelProperty("活动开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date activityStartAt;
+
+    @ApiModelProperty("活动结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date activityEndAt;
+
+    @ApiModelProperty("活动发布时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date releaseAt;
+
+    @ApiModelProperty("优质奖励金额")
+    private BigDecimal goodReward;
+
+    @ApiModelProperty("精良奖励金额")
+    private BigDecimal excellentReward;
+
+    @ApiModelProperty("普通奖励金额")
+    private BigDecimal ordinaryReward;
+
+    @ApiModelProperty("参与活动随手拍数量")
+    private Integer count;
+
+    @ApiModelProperty("活动图片地址")
+    private String logo;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/easyPhoto/ComActEasyPhotoClassifyVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/easyPhoto/ComActEasyPhotoClassifyVO.java
new file mode 100644
index 0000000..3cfbec6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/easyPhoto/ComActEasyPhotoClassifyVO.java
@@ -0,0 +1,26 @@
+package com.panzhihua.common.model.vos.community.easyPhoto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("随手拍分类返回参数")
+public class ComActEasyPhotoClassifyVO {
+
+    @ApiModelProperty("随手拍分类id")
+    private Long id;
+
+    @ApiModelProperty("随手拍分类名称")
+    private String name;
+
+    @ApiModelProperty("权重")
+    private Integer weight;
+
+    @ApiModelProperty("备注")
+    private String remark;
+
+    @ApiModelProperty("1 随手拍   2网格治理")
+    private String addType;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/easyPhoto/ComActEasyPhotoCountVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/easyPhoto/ComActEasyPhotoCountVO.java
new file mode 100644
index 0000000..0fae7a6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/easyPhoto/ComActEasyPhotoCountVO.java
@@ -0,0 +1,9 @@
+package com.panzhihua.common.model.vos.community.easyPhoto;
+
+import lombok.Data;
+
+@Data
+public class ComActEasyPhotoCountVO {
+    private Integer total;
+    private Integer today;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/easyPhoto/ComActEasyPhotoMemberVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/easyPhoto/ComActEasyPhotoMemberVO.java
new file mode 100644
index 0000000..35dffd3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/easyPhoto/ComActEasyPhotoMemberVO.java
@@ -0,0 +1,60 @@
+package com.panzhihua.common.model.vos.community.easyPhoto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 随手拍网格员(ComActEasyPhotoMember)表实体类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 随手拍网格员相关功能
+ *
+ * @author zzj
+ * @since 2022-04-12 10:33:24
+ */
+@Data
+@ApiModel("随手拍网格员")
+public class ComActEasyPhotoMemberVO implements Serializable {
+
+    private static final long serialVersionUID = 309168056104824588L;
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long communityId;
+
+    /**
+     * 姓名
+     */
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    /**
+     * 联系电话
+     */
+    @ApiModelProperty(value = "联系电话")
+    private String phone;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+}
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
new file mode 100644
index 0000000..27736d8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/easyPhoto/ComActEasyPhotoStatisticsVO.java
@@ -0,0 +1,57 @@
+package com.panzhihua.common.model.vos.community.easyPhoto;
+
+import java.math.BigDecimal;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("随手拍列表统计返回参数")
+public class ComActEasyPhotoStatisticsVO {
+
+    @ApiModelProperty("待处理数量")
+    private Integer examineNum = 0;
+
+    @ApiModelProperty("进行中数量")
+    private Integer verificationNum = 0;
+
+    @ApiModelProperty("已公示数量")
+    private Integer rejectNum = 0;
+
+    @ApiModelProperty("已完成数量")
+    private Integer completeNum = 0;
+
+    @ApiModelProperty("优质数量")
+    private Integer yzAllTotal = 0;
+
+    @ApiModelProperty("今日优质数量")
+    private Integer yzDayTotal = 0;
+
+    @ApiModelProperty("精良数量")
+    private Integer jlAllTotal = 0;
+
+    @ApiModelProperty("今日精良数量")
+    private Integer jlDayTotal = 0;
+
+    @ApiModelProperty("普通数量")
+    private Integer ptAllTotal = 0;
+
+    @ApiModelProperty("今日普通数量")
+    private Integer ptDayTotal = 0;
+
+    @ApiModelProperty("一般数量")
+    private Integer ybAllTotal = 0;
+
+    @ApiModelProperty("今日一般数量")
+    private Integer ybDayTotal = 0;
+
+    @ApiModelProperty("奖励总数量")
+    private BigDecimal allRewardAmount = BigDecimal.ZERO;
+
+    @ApiModelProperty("今日奖励数量")
+    private BigDecimal dayRewardAmount = BigDecimal.ZERO;
+
+    @ApiModelProperty("待评价数量")
+    private Integer commitAmount;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/easyPhoto/ExportEasyPhotoVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/easyPhoto/ExportEasyPhotoVO.java
new file mode 100644
index 0000000..196c798
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/easyPhoto/ExportEasyPhotoVO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.vos.community.easyPhoto;
+
+import java.util.Date;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+
+import lombok.Data;
+
+@Data
+public class ExportEasyPhotoVO {
+    @ExcelProperty("所属社区")
+    private String communityName;
+    @ExcelProperty("发起人")
+    private String sponsorName;
+    @ExcelProperty("事件详情")
+    private String detail;
+    @ExcelProperty("发生地点")
+    private String happenAddr;
+    @ExcelProperty("事件类型")
+    private String photoType;
+    @ExcelProperty("联系电话")
+    private String phone;
+    @ExcelProperty("创建时间")
+    private Date createAt;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/CascadeCommVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/CascadeCommVO.java
new file mode 100644
index 0000000..6d7e12b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/CascadeCommVO.java
@@ -0,0 +1,31 @@
+package com.panzhihua.common.model.vos.community.fms;
+
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: CascadeCommVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 级联数据公共类
+ * @author: hans
+ * @date: 2022/02/14 11:13
+ */
+@Data
+@ApiModel("级联数据公共类")
+public class CascadeCommVO {
+
+    @ApiModelProperty("value")
+    private Long value;
+
+    @ApiModelProperty("parentId")
+    private Long parentId;
+
+    @ApiModelProperty("label")
+    private String label;
+
+    @ApiModelProperty("children")
+    private List<CascadeCommVO> children;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsClassroomVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsClassroomVO.java
new file mode 100644
index 0000000..87fdd75
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsClassroomVO.java
@@ -0,0 +1,45 @@
+package com.panzhihua.common.model.vos.community.fms;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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;
+
+/**
+ * @title: ComFmsClassroomVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 五微服务-微讲堂信息
+ * @author: hans
+ * @date: 2022/02/17 14:16
+ */
+@Data
+@ApiModel("五微服务-微讲堂信息")
+public class ComFmsClassroomVO {
+
+    @ApiModelProperty("主键")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("标题")
+    private String title;
+
+    @ApiModelProperty("参与学习人数")
+    private Integer scholars;
+
+    @ApiModelProperty("封面")
+    private String cover;
+
+    @ApiModelProperty("内容")
+    private String content;
+
+    @ApiModelProperty("浏览量")
+    private Integer viewNum;
+
+    @ApiModelProperty("发布时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createdAt;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsServiceEvaluateVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsServiceEvaluateVO.java
new file mode 100644
index 0000000..264168a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsServiceEvaluateVO.java
@@ -0,0 +1,43 @@
+package com.panzhihua.common.model.vos.community.fms;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+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;
+
+/**
+ * @title: ComFmsServiceVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 五微服务-评论详情
+ * @author: hans
+ * @date: 2022/02/16 14:13
+ */
+@Data
+@ApiModel("五微服务-评论详情")
+public class ComFmsServiceEvaluateVO {
+
+    @ApiModelProperty("主键")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("服务关联id")
+    private Long serviceId;
+
+    @ApiModelProperty("评分星级(1.非常差2.差3.一般4.满意5.非常满意)")
+    private Integer starLevel;
+
+    @ApiModelProperty("内")
+    private String evaluateContent;
+
+    @ApiModelProperty("图片")
+    private String image;
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createdAt;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsServiceImportExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsServiceImportExcelVO.java
new file mode 100644
index 0000000..8ca2142
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsServiceImportExcelVO.java
@@ -0,0 +1,34 @@
+package com.panzhihua.common.model.vos.community.fms;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+
+import lombok.Data;
+
+/**
+ * @title: ComFmsTeamMemberImportExcelVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 五微服务-微服务导入信息
+ * @author: hans
+ * @date: 2022/02/15 10:36
+ */
+@Data
+public class ComFmsServiceImportExcelVO implements Serializable {
+
+    @ExcelProperty(value = "服务用户", index = 0)
+    private String userName;
+
+    @ExcelProperty(value = "联系电话", index = 1)
+    private String phone;
+
+    @ExcelProperty(value = "服务时间", index = 2)
+    private Date serviceAt;
+
+    @ExcelProperty(value = "服务内容", index = 3)
+    private String serviceContent;
+
+    @ExcelProperty(value = "服务过程", index = 4)
+    private String serviceProcess;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsServiceImportMistakeExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsServiceImportMistakeExcelVO.java
new file mode 100644
index 0000000..c48f451
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsServiceImportMistakeExcelVO.java
@@ -0,0 +1,37 @@
+package com.panzhihua.common.model.vos.community.fms;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+
+import lombok.Data;
+
+/**
+ * @title: ComFmsTeamMemberImportExcelVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 五微服务-微服务导入错误反馈信息
+ * @author: hans
+ * @date: 2022/02/15 10:36
+ */
+@Data
+public class ComFmsServiceImportMistakeExcelVO implements Serializable {
+
+    @ExcelProperty(value = "服务用户", index = 0)
+    private String userName;
+
+    @ExcelProperty(value = "联系电话", index = 1)
+    private String phone;
+
+    @ExcelProperty(value = "服务时间", index = 2)
+    private String serviceAt;
+
+    @ExcelProperty(value = "服务内容", index = 3)
+    private String serviceContent;
+
+    @ExcelProperty(value = "服务过程", index = 4)
+    private String serviceProcess;
+
+    @ExcelProperty(value = "错误信息", index = 5)
+    private String mistake;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsServiceRecordVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsServiceRecordVO.java
new file mode 100644
index 0000000..d219927
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsServiceRecordVO.java
@@ -0,0 +1,43 @@
+package com.panzhihua.common.model.vos.community.fms;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+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;
+
+/**
+ * @title: ComFmsServiceVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 五微服务-微服务记录
+ * @author: hans
+ * @date: 2022/02/16 14:13
+ */
+@Data
+@ApiModel("五微服务-微服务记录")
+public class ComFmsServiceRecordVO {
+
+    @ApiModelProperty("主键")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("服务关联id")
+    private Long serviceId;
+
+    @ApiModelProperty("服务阶段")
+    private String stage;
+
+    @ApiModelProperty("内容")
+    private String content;
+
+    @ApiModelProperty("图片")
+    private String image;
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createdAt;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsServiceVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsServiceVO.java
new file mode 100644
index 0000000..c7f7215
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsServiceVO.java
@@ -0,0 +1,104 @@
+package com.panzhihua.common.model.vos.community.fms;
+
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+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;
+
+/**
+ * @title: ComFmsServiceVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 五微服务-微服务信息
+ * @author: hans
+ * @date: 2022/02/16 14:13
+ */
+@Data
+@ApiModel("五微服务-微服务信息")
+public class ComFmsServiceVO {
+
+    @ApiModelProperty("主键")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("用户姓名")
+    private String userName;
+
+    @ApiModelProperty("真实姓名")
+    private String realName;
+
+    @ApiModelProperty("用户关联id")
+    private Long userId;
+
+    @ApiModelProperty("联系电话")
+    private String phone;
+
+    @ApiModelProperty("服务内容")
+    private String serviceContent;
+
+    @ApiModelProperty("服务内容图片")
+    private String serviceImage;
+
+    @ApiModelProperty("反馈内容")
+    private String approvalContent;
+
+    @ApiModelProperty("审核时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date approvalAt;
+
+    @ApiModelProperty("团队服务人员关联id")
+    private Long memberId;
+
+    @ApiModelProperty("服务人员")
+    private String serviceMember;
+
+    @ApiModelProperty("服务评价")
+    private Integer starLevel;
+
+    @ApiModelProperty("服务状态(1.待核实2.进行中3.待评价4.已完成5.未通过)")
+    private Integer serviceStatus;
+
+    @ApiModelProperty("服务时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date serviceAt;
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createdAt;
+
+    @ApiModelProperty("创建者")
+    private Long createdBy;
+
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updatedAt;
+
+    @ApiModelProperty("由谁更新")
+    private Long updatedBy;
+
+    @ApiModelProperty("所属社区")
+    private Long communityId;
+
+    @ApiModelProperty("服务进度")
+    private List<ComFmsServiceRecordVO> serviceRecords;
+
+    @ApiModelProperty("小程序用户昵称")
+    private String nickName;
+
+    @ApiModelProperty("小程序用户头像")
+    private String imageUrl;
+
+    @ApiModelProperty("服务评价")
+    private ComFmsServiceEvaluateVO evaluateVO;
+
+    @ApiModelProperty("是否本人")
+    private Boolean isMyself;
+
+    @ApiModelProperty("自动评价倒计时")
+    private Long autoEvaluateAt;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsTeamMemberExportExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsTeamMemberExportExcelVO.java
new file mode 100644
index 0000000..04a57b8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsTeamMemberExportExcelVO.java
@@ -0,0 +1,39 @@
+package com.panzhihua.common.model.vos.community.fms;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * @title: ComFmsTeamMemberExportExcleVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 五微服务-团队成员导出信息
+ * @author: hans
+ * @date: 2022/02/16 10:34
+ */
+@Data
+@ApiModel("五微服务-团队成员导出信息")
+public class ComFmsTeamMemberExportExcelVO {
+
+    @ExcelProperty(value = "团队类型", index = 0)
+    private String teamType;
+
+    @ExcelProperty(value = "团队名称", index = 1)
+    private String teamName;
+
+    @ExcelProperty(value = "团队成员", index = 2)
+    private String teamMember;
+
+    @ExcelProperty(value = "身份证号", index = 3)
+    private String idCard;
+
+    @ExcelProperty(value = "性别", index = 4)
+    private String gender;
+
+    @ExcelProperty(value = "年龄", index = 5)
+    private String age;
+
+    @ExcelProperty(value = "联系电话", index = 6)
+    private String phone;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsTeamMemberImportExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsTeamMemberImportExcelVO.java
new file mode 100644
index 0000000..ac87b0f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsTeamMemberImportExcelVO.java
@@ -0,0 +1,34 @@
+package com.panzhihua.common.model.vos.community.fms;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+
+import lombok.Data;
+
+/**
+ * @title: ComFmsTeamMemberImportExcelVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 五微服务-团队成员导入信息
+ * @author: hans
+ * @date: 2022/02/15 10:36
+ */
+@Data
+public class ComFmsTeamMemberImportExcelVO implements Serializable {
+
+    @ExcelProperty(value = "团队类型", index = 0)
+    private String teamType;
+
+    @ExcelProperty(value = "团队名称", index = 1)
+    private String teamName;
+
+    @ExcelProperty(value = "团队成员", index = 2)
+    private String teamMember;
+
+    @ExcelProperty(value = "身份证号(非必填)", index = 3)
+    private String idCard;
+
+    @ExcelProperty(value = "联系电话", index = 4)
+    private String phone;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsTeamMemberImportMistakeExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsTeamMemberImportMistakeExcelVO.java
new file mode 100644
index 0000000..fe21488
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsTeamMemberImportMistakeExcelVO.java
@@ -0,0 +1,37 @@
+package com.panzhihua.common.model.vos.community.fms;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+
+import lombok.Data;
+
+/**
+ * @title: ComFmsTeamMemberImportExcelVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 五微服务-团队成员导入错误反馈信息
+ * @author: hans
+ * @date: 2022/02/15 10:36
+ */
+@Data
+public class ComFmsTeamMemberImportMistakeExcelVO implements Serializable {
+
+    @ExcelProperty(value = "团队类型", index = 0)
+    private String teamType;
+
+    @ExcelProperty(value = "团队名称", index = 1)
+    private String teamName;
+
+    @ExcelProperty(value = "团队成员", index = 2)
+    private String teamMember;
+
+    @ExcelProperty(value = "身份证号(非必填)", index = 3)
+    private String idCard;
+
+    @ExcelProperty(value = "联系电话", index = 4)
+    private String phone;
+
+    @ExcelProperty(value = "错误信息", index = 5)
+    private String mistake;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsTeamMemberVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsTeamMemberVO.java
new file mode 100644
index 0000000..7895c67
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsTeamMemberVO.java
@@ -0,0 +1,50 @@
+package com.panzhihua.common.model.vos.community.fms;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: ComFmsTeamTypeVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 五微服务-团队成员信息
+ * @author: hans
+ * @date: 2022/02/11 14:54
+ */
+@Data
+@ApiModel("五微服务-团队成员信息")
+public class ComFmsTeamMemberVO {
+
+    @ApiModelProperty("团队成员id")
+    private Long id;
+
+    @ApiModelProperty("成员姓名")
+    private String name;
+
+    @ApiModelProperty("联系电话")
+    private String phone;
+
+    @ApiModelProperty("身份证号")
+    private String idCard;
+
+    @ApiModelProperty("所属团队类型")
+    private Long teamType;
+
+    @ApiModelProperty("所属团队类型名称")
+    private String teamTypeName;
+
+    @ApiModelProperty("所属团队")
+    private Long teamId;
+
+    @ApiModelProperty("所属团队名称")
+    private String teamName;
+
+    @ApiModelProperty("性别(1.男2.女3.未知)")
+    private Integer gender;
+
+    @ApiModelProperty("年龄")
+    private Integer age;
+
+    @ApiModelProperty("团队级联关系")
+    private String cascadeIds;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsTeamTypeVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsTeamTypeVO.java
new file mode 100644
index 0000000..cb6545c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsTeamTypeVO.java
@@ -0,0 +1,23 @@
+package com.panzhihua.common.model.vos.community.fms;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: ComFmsTeamTypeVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 五微服务-团队类型信息
+ * @author: hans
+ * @date: 2022/02/11 14:54
+ */
+@Data
+@ApiModel("五微服务-团队类型信息")
+public class ComFmsTeamTypeVO {
+
+    @ApiModelProperty("团队类型id")
+    private Long id;
+
+    @ApiModelProperty("团队类型名称")
+    private String name;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsTeamVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsTeamVO.java
new file mode 100644
index 0000000..56f2c04
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/ComFmsTeamVO.java
@@ -0,0 +1,45 @@
+package com.panzhihua.common.model.vos.community.fms;
+
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * @title: ComFmsTeamTypeVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 五微服务-团队信息
+ * @author: hans
+ * @date: 2022/02/11 14:54
+ */
+@Data
+@ApiModel("五微服务-团队信息")
+public class ComFmsTeamVO {
+
+    @ApiModelProperty("团队id")
+    private Long id;
+
+    @ApiModelProperty("团队名称")
+    private String name;
+
+    @ApiModelProperty("服务电话")
+    private String phone;
+
+    @ApiModelProperty("所属团队类型")
+    private Long teamType;
+
+    @ApiModelProperty("所属团队类型名")
+    private String teamTypeName;
+
+    @ApiModelProperty("团队照片")
+    private String image;
+
+    @ApiModelProperty("团队成员总数")
+    private Integer teamMemberTotal;
+
+    @ApiModelProperty("团队成员列表")
+    private List<ComFmsTeamMemberVO> memberList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/FmsClassroomTopStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/FmsClassroomTopStatisticsVO.java
new file mode 100644
index 0000000..03eabda
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/FmsClassroomTopStatisticsVO.java
@@ -0,0 +1,23 @@
+package com.panzhihua.common.model.vos.community.fms;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: FmsServiceTopStatisticsVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 五微服务-微讲堂顶部统计
+ * @author: hans
+ * @date: 2022/02/17 10:11
+ */
+@Data
+@ApiModel("五微服务-微讲堂顶部统计")
+public class FmsClassroomTopStatisticsVO {
+
+    @ApiModelProperty("开课次数")
+    private Integer classroomCount;
+
+    @ApiModelProperty("学习人数")
+    private Integer learnCount;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/FmsEventTopStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/FmsEventTopStatisticsVO.java
new file mode 100644
index 0000000..45fce79
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/FmsEventTopStatisticsVO.java
@@ -0,0 +1,23 @@
+package com.panzhihua.common.model.vos.community.fms;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: FmsServiceTopStatisticsVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 五微服务-微调节/微防控顶部统计
+ * @author: hans
+ * @date: 2022/02/17 10:11
+ */
+@Data
+@ApiModel("五微服务-微调节/微防控顶部统计")
+public class FmsEventTopStatisticsVO {
+
+    @ApiModelProperty("待处理")
+    private Integer unHandledCount;
+
+    @ApiModelProperty("已解决")
+    private Integer handledCount;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/FmsEventVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/FmsEventVO.java
new file mode 100644
index 0000000..08e15bf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/FmsEventVO.java
@@ -0,0 +1,55 @@
+package com.panzhihua.common.model.vos.community.fms;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+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;
+
+/**
+ * @title: ComFmsClassroomVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 五微服务-事件信息
+ * @author: hans
+ * @date: 2022/02/17 14:16
+ */
+@Data
+@ApiModel("五微服务-事件信息")
+public class FmsEventVO {
+
+    @ApiModelProperty("事件id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("事件类型")
+    private String eventClazz;
+
+    @ApiModelProperty("发生区域")
+    private String gridName;
+
+    @ApiModelProperty("发生地经纬度")
+    private String happentLatLng;
+
+    @ApiModelProperty("发生时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date happenTime;
+
+    @ApiModelProperty("事件描述")
+    private String eventDes;
+
+    @ApiModelProperty("危险级别")
+    private Integer dangerLevel;
+
+    @ApiModelProperty("是否紧急")
+    private Boolean urgent;
+
+    @ApiModelProperty("是否重大")
+    private Boolean major;
+
+    @ApiModelProperty("状态")
+    private Integer eventProcessStatus;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/FmsServiceTopStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/FmsServiceTopStatisticsVO.java
new file mode 100644
index 0000000..0748c0f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/FmsServiceTopStatisticsVO.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.vos.community.fms;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: FmsServiceTopStatisticsVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 五微服务-微服务顶部统计
+ * @author: hans
+ * @date: 2022/02/17 10:11
+ */
+@Data
+@ApiModel("五微服务-微服务顶部统计")
+public class FmsServiceTopStatisticsVO {
+
+    @ApiModelProperty("已完成")
+    private Integer completedCount;
+
+    @ApiModelProperty("待核实")
+    private Integer unVerifiedCount;
+
+    @ApiModelProperty("进行中")
+    private Integer inProgressCount;
+
+    @ApiModelProperty("待评价")
+    private Integer unEvaluateCount;
+
+    @ApiModelProperty("未通过")
+    private Integer unPassCount;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/TeamMemberTopStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/TeamMemberTopStatisticsVO.java
new file mode 100644
index 0000000..5789b35
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/fms/TeamMemberTopStatisticsVO.java
@@ -0,0 +1,23 @@
+package com.panzhihua.common.model.vos.community.fms;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: ComFmsTeamTypeVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 五微服务-微团队顶部统计
+ * @author: hans
+ * @date: 2022/02/11 14:54
+ */
+@Data
+@ApiModel("五微服务-微团队顶部统计")
+public class TeamMemberTopStatisticsVO {
+
+    @ApiModelProperty("团队数量")
+    private Integer teamCount;
+
+    @ApiModelProperty("团队成员")
+    private Integer memberCount;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/ComActIntegralCommunityRankVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/ComActIntegralCommunityRankVO.java
new file mode 100644
index 0000000..6db5356
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/ComActIntegralCommunityRankVO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.vos.community.integral;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("小程序-社区积分排行榜返回参数")
+public class ComActIntegralCommunityRankVO {
+
+    @ApiModelProperty("用户昵称")
+    private String nickName;
+
+    @ApiModelProperty("用户头像")
+    private String imageUrl;
+
+    @ApiModelProperty("积分账户金额")
+    private Integer amount;
+
+    @ApiModelProperty("是否党员(0.否  1.是)")
+    private Integer isPartymember;
+
+    @ApiModelProperty("是否志愿者(0.否  1.是)")
+    private Integer isVolunteer;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/ComActIntegralCommunityTradeVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/ComActIntegralCommunityTradeVO.java
new file mode 100644
index 0000000..358d9ae
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/ComActIntegralCommunityTradeVO.java
@@ -0,0 +1,43 @@
+package com.panzhihua.common.model.vos.community.integral;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+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;
+
+@Data
+@ApiModel("小程序-用户社区积分明细返回参数")
+public class ComActIntegralCommunityTradeVO {
+
+    @ApiModelProperty("积分明细id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("交易业务类型(1.发布随手拍 2.发布微心愿 3.参与议事投票 4.社区活动-居民身份参与 \" +\n" +
+            "            \"5.社区活动-党员身份参与 6.社区活动-志愿者身份参与 7.参与调查问卷 8.取消活动 9.参与单位党员活动")
+    private Integer serviceType;
+
+    @ApiModelProperty("交易数量")
+    private Integer amount;
+
+    @ApiModelProperty("交易备注")
+    private String remark;
+
+    @ApiModelProperty("交易时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("变动类型(1.增加  2.减少)")
+    private Integer changeType;
+
+    @ApiModelProperty("交易身份类型(1.居民 2.党员 3.志愿者)")
+    private Integer identityType;
+
+    @ApiModelProperty("社区名称")
+    private String communityName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/ComActIntegralUserListVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/ComActIntegralUserListVO.java
new file mode 100644
index 0000000..a5a01fe
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/ComActIntegralUserListVO.java
@@ -0,0 +1,20 @@
+package com.panzhihua.common.model.vos.community.integral;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("小程序-用户积分列表返回参数")
+public class ComActIntegralUserListVO {
+
+    @ApiModelProperty("社区名称")
+    private String communityName;
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+    @ApiModelProperty("积分总额")
+    private Integer amount;
+    @ApiModelProperty("社区积分排名")
+    private Integer rank;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/ComActIntegralUserRuleVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/ComActIntegralUserRuleVO.java
new file mode 100644
index 0000000..61f9fc8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/ComActIntegralUserRuleVO.java
@@ -0,0 +1,40 @@
+package com.panzhihua.common.model.vos.community.integral;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("小程序-社区领取积分列表")
+public class ComActIntegralUserRuleVO {
+
+    @ApiModelProperty("积分任务规则id")
+    private Long id;
+    @ApiModelProperty("积分任务规则名字")
+    private String name;
+    @ApiModelProperty("积分奖励金额")
+    private Integer amount;
+    @ApiModelProperty("积分任务描述")
+    private String integralDescribe;
+    @ApiModelProperty("是否限制(1.是 2.否)")
+    private Integer isRestrict;
+    @ApiModelProperty("限制类型(1.月 2.日)")
+    private Integer type;
+    @ApiModelProperty("限制次数")
+    private Integer count;
+    @ApiModelProperty("积分任务类型(1.发布随手拍 2.发布微心愿 3.参与议事投票 4.社区活动-居民身份参与 \" +\n" +
+            "            \"5.社区活动-党员身份参与 6.社区活动-志愿者身份参与 7.参与调查问卷 8.取消活动 9.参与单位党员活动)")
+    private Integer integralType;
+    @ApiModelProperty("积分任务备注")
+    private String remark;
+    @ApiModelProperty("是否已完成(1.是 2.否)")
+    private Integer isComplete;
+
+    /**
+     * 是否已完成(1.是 2.否)
+     */
+    public interface isComplete {
+        int yes = 1;
+        int no = 2;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/ComActIntegralUserVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/ComActIntegralUserVO.java
new file mode 100644
index 0000000..3908e1a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/ComActIntegralUserVO.java
@@ -0,0 +1,43 @@
+package com.panzhihua.common.model.vos.community.integral;
+
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: ComActIntegralUserVO
+ * @projectName:
+ * @description: 小程序-积分统计返回参数
+ * @author: hans
+ * @date: 2022/08/02 16:01
+ */
+@Data
+@ApiModel("小程序-积分统计返回参数")
+public class ComActIntegralUserVO {
+
+    @ApiModelProperty("用户积分总额")
+    private Integer amount;
+
+    @ApiModelProperty("用户绑定社区")
+    private String communityName;
+
+    @ApiModelProperty("社区活动已获积分")
+    private Integer actAmount;
+
+    @ApiModelProperty("居民积分总额")
+    private Integer residentAmount;
+
+    @ApiModelProperty("志愿者积分总额")
+    private Integer volunteerAmount;
+
+    @ApiModelProperty("党员积分总额")
+    private Integer partyMemberAmount;
+
+    @ApiModelProperty("单位党员活动已获积分")
+    private Integer unitPartyMemberAmount;
+
+    @ApiModelProperty("各社区已获积分统计")
+    private List<ComActIntegralUserListVO> integralUserList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/IntegralTradeVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/IntegralTradeVO.java
new file mode 100644
index 0000000..dde55f6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/IntegralTradeVO.java
@@ -0,0 +1,55 @@
+package com.panzhihua.common.model.vos.community.integral;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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;
+
+/**
+ * @title: IntegralTradeVO
+ * @projectName:
+ * @description: 积分明细信息
+ * @author: hans
+ * @date: 2022/08/03 10:28
+ */
+@Data
+@ApiModel("积分明细信息")
+public class IntegralTradeVO {
+
+    @ApiModelProperty("积分明细id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("交易积分数量")
+    private Integer amount;
+
+    @ApiModelProperty("交易业务类型(1.发布随手拍 2.发布微心愿 3.参与议事投票 4.社区活动-居民身份参与 \" +\n" +
+            "            \"5.社区活动-党员身份参与 6.社区活动-志愿者身份参与 7.参与调查问卷 8.取消活动 9.参与单位党员活动)")
+    private Integer serviceType;
+
+    @ApiModelProperty("交易业务id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long serviceId;
+
+    @ApiModelProperty("交易备注")
+    private String remark;
+
+    @ApiModelProperty("交易时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("变动类型(1.增加  2.减少)")
+    private Integer changeType;
+
+    @ApiModelProperty("交易身份类型(1.居民 2.党员 3.志愿者)")
+    private Integer identityType;
+
+    @ApiModelProperty("社区名称")
+    private String communityName;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/IntegralUserRankVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/IntegralUserRankVO.java
new file mode 100644
index 0000000..4299ba2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/IntegralUserRankVO.java
@@ -0,0 +1,16 @@
+package com.panzhihua.common.model.vos.community.integral;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("小程序-查询用户积分排名返回参数")
+public class IntegralUserRankVO {
+
+    @ApiModelProperty("用户id")
+    private Long userId;
+
+    @ApiModelProperty("排名")
+    private Integer rank;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/admin/ComActActivityPeopleVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/admin/ComActActivityPeopleVO.java
new file mode 100644
index 0000000..8433aec
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/admin/ComActActivityPeopleVO.java
@@ -0,0 +1,22 @@
+package com.panzhihua.common.model.vos.community.integral.admin;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("参加活动人员信息")
+public class ComActActivityPeopleVO {
+
+    @ApiModelProperty("用户id")
+    private Long userId;
+
+    @ApiModelProperty("活动id")
+    private Long activityId;
+
+    @ApiModelProperty("以什么身份报名(1.居民 2.党员 3.志愿者)")
+    private Integer signIdentity;
+
+    @ApiModelProperty("社区id")
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/admin/ComActIntegralUserRuleAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/admin/ComActIntegralUserRuleAdminVO.java
new file mode 100644
index 0000000..b415ac4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/admin/ComActIntegralUserRuleAdminVO.java
@@ -0,0 +1,43 @@
+package com.panzhihua.common.model.vos.community.integral.admin;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+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;
+
+@Data
+@ApiModel("管理后台-社区积分规则列表")
+public class ComActIntegralUserRuleAdminVO {
+
+    @ApiModelProperty("积分任务规则id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+    @ApiModelProperty("积分任务规则名字")
+    private String name;
+    @ApiModelProperty("积分奖励金额")
+    private Integer amount;
+    @ApiModelProperty("积分任务描述")
+    private String integralDescribe;
+    @ApiModelProperty("是否限制(1.是 2.否)")
+    private Integer isRestrict;
+    @ApiModelProperty("限制类型(1.月 2.日)")
+    private Integer type;
+    @ApiModelProperty("限制次数")
+    private Integer count;
+    @ApiModelProperty("积分任务类型(1.发布随手拍 2.发布微心愿 3.参与议事投票 4.社区活动-居民身份参与 \" +\n" +
+            "            \"5.社区活动-党员身份参与 6.社区活动-志愿者身份参与 7.参与调查问卷 8.取消活动 9.参与单位党员活动)")
+    private Integer integralType;
+    @ApiModelProperty("积分任务备注")
+    private String remark;
+    @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 updateAt;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/admin/ComActIntegralUserTradeAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/admin/ComActIntegralUserTradeAdminVO.java
new file mode 100644
index 0000000..56ff7a6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/admin/ComActIntegralUserTradeAdminVO.java
@@ -0,0 +1,55 @@
+package com.panzhihua.common.model.vos.community.integral.admin;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("管理后台-社区积分明细列表")
+public class ComActIntegralUserTradeAdminVO {
+
+    @ApiModelProperty("积分交易记录id")
+    private Long id;
+    @ApiModelProperty("交易人昵称")
+    private String nickName;
+    @ApiModelProperty("交易人手机号")
+    private String phone;
+    @ApiModelProperty("交易人姓名")
+    private String name;
+    @ApiModelProperty("用户身份")
+    private String identity;
+    @ApiModelProperty("交易积分金额")
+    private Integer amount;
+    @ApiModelProperty("交易积分时身份(1.居民 2.党员 3.志愿者)")
+    private Integer identityType;
+    @ApiModelProperty("交易备注")
+    private String remark;
+    @ApiModelProperty("交易时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+    @ApiModelProperty(value = "是否志愿者(0.否 1.是)", hidden = true)
+    private Integer isVolunteer;
+    @ApiModelProperty(value = "是否党员(0.否 1.是)", hidden = true)
+    private Integer isPartymember;
+
+    /**
+     * 是否志愿者(0.否 1.是)
+     */
+    public interface isVolunteer {
+        int no = 0;
+        int yes = 1;
+    }
+
+    /**
+     * 是否党员(0.否 1.是)
+     */
+    public interface isPartymember {
+        int no = 0;
+        int yes = 1;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/admin/IntegralUserVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/admin/IntegralUserVO.java
new file mode 100644
index 0000000..29fe742
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/integral/admin/IntegralUserVO.java
@@ -0,0 +1,56 @@
+package com.panzhihua.common.model.vos.community.integral.admin;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 小程序用户
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-30 11:22
+ **/
+@Data
+@ApiModel("小程序用户")
+public class IntegralUserVO {
+
+    @ApiModelProperty("主键")
+    private Long userId;
+
+    @ApiModelProperty("手机号")
+    private String phone;
+
+    @ApiModelProperty("昵称")
+    private String nickName;
+
+    @ApiModelProperty("身份证号码")
+    private String idCard;
+
+    @ApiModelProperty("真实名字")
+    private String name;
+
+    @ApiModelProperty("社区名字")
+    private String communityName;
+
+    @ApiModelProperty("1 启用 2 禁用")
+    private Integer status;
+
+    @ApiModelProperty("是否志愿者 0 否 1 是")
+    private Integer isVolunteer;
+
+    @ApiModelProperty("是否党员 0 否 1 是")
+    private Integer isPartymember;
+
+    @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 lastLoginTime;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/GameStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/GameStatisticsVO.java
new file mode 100644
index 0000000..f9add22
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/GameStatisticsVO.java
@@ -0,0 +1,37 @@
+package com.panzhihua.common.model.vos.community.microCommercialStreet;
+
+import java.math.BigDecimal;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: GameStatisticsVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 游戏统计信息
+ * @author: hans
+ * @date: 2022/01/08 15:12
+ */
+@Data
+@ApiModel("游戏统计信息")
+public class GameStatisticsVO {
+
+    @ApiModelProperty("游戏总数")
+    private Integer gameTotal;
+
+    @ApiModelProperty("发放核销码")
+    private Integer sendCouponTotal;
+
+    @ApiModelProperty("领取数占比")
+    private BigDecimal appliedPercent;
+
+    @ApiModelProperty("未领取数占比")
+    private BigDecimal unAppliedPercent;
+
+    @ApiModelProperty("核销人数占比")
+    private BigDecimal verifiedPercent;
+
+    @ApiModelProperty("未核销数占比")
+    private BigDecimal unVerifiedPercent;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/IndexTopStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/IndexTopStatisticsVO.java
new file mode 100644
index 0000000..a7404e3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/IndexTopStatisticsVO.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.vos.community.microCommercialStreet;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: IndexTopStatisticsVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 首页顶部数据
+ * @author: hans
+ * @date: 2022/01/07 14:04
+ */
+@Data
+@ApiModel("首页顶部数据")
+public class IndexTopStatisticsVO {
+
+    @ApiModelProperty("戳戳币总额")
+    private Integer coinTotal;
+
+    @ApiModelProperty("今日已领戳戳币")
+    private Integer appliedTotal;
+
+    @ApiModelProperty("游戏总数")
+    private Integer gameTotal;
+
+    @ApiModelProperty("全部资讯")
+    private Integer infoTotal;
+
+    @ApiModelProperty("热门戳戳")
+    private McsGameVO popularGame;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsConfigVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsConfigVO.java
new file mode 100644
index 0000000..f197969
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsConfigVO.java
@@ -0,0 +1,29 @@
+package com.panzhihua.common.model.vos.community.microCommercialStreet;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: McsConfigVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 数字商业街配置信息
+ * @author: hans
+ * @date: 2021/12/30 11:15
+ */
+@Data
+@ApiModel("数字商业街配置信息")
+public class McsConfigVO {
+
+    @ApiModelProperty("配置id")
+    private Long id;
+
+    @ApiModelProperty("配置名称")
+    private String name;
+
+    @ApiModelProperty("key")
+    private String key;
+
+    @ApiModelProperty("配置内容")
+    private String value;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsCouponVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsCouponVO.java
new file mode 100644
index 0000000..7554795
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsCouponVO.java
@@ -0,0 +1,64 @@
+package com.panzhihua.common.model.vos.community.microCommercialStreet;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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.util.Date;
+
+/**
+ * @title: CouponApplyReturnVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 戳戳卷信息
+ * @author: hans
+ * @date: 2022/01/07 17:27
+ */
+@Data
+@ApiModel("戳戳卷信息")
+public class McsCouponVO {
+
+    @ApiModelProperty("戳戳卷id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("优惠券包含奖励")
+    private String award;
+
+    @ApiModelProperty("戳戳卷二维码")
+    private String qrCode;
+
+    @ApiModelProperty("是否核验")
+    private Boolean isVerified;
+
+    @ApiModelProperty("游戏名称")
+    private String name;
+
+    @ApiModelProperty("游戏类别(1.戳戳币游戏 2.体验游戏)")
+    private Integer type;
+
+    @ApiModelProperty("是否评论(1.是 2.否)")
+    private Integer isEvaluate;
+
+    @ApiModelProperty("评论id")
+    private Long evaluateId;
+
+    @ApiModelProperty("游戏id")
+    private Long gameId;
+
+    @ApiModelProperty("失效时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date expireAt;
+
+    @ApiModelProperty("游戏封面")
+    private String cover;
+
+    @ApiModelProperty("奖励类型(1.免费领 2.产品试用 3.消费赠礼 4.优惠券)")
+    private Integer awardType;
+
+    @ApiModelProperty("戳戳币分配方式(1.随机分配 2.平均分配)")
+    private Integer allocation;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsEvaluateVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsEvaluateVO.java
new file mode 100644
index 0000000..c945ee9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsEvaluateVO.java
@@ -0,0 +1,48 @@
+package com.panzhihua.common.model.vos.community.microCommercialStreet;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: McsEvaluateVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 戳戳评价记录信息
+ * @author: hans
+ * @date: 2021/12/31 13:19
+ */
+@Data
+@ApiModel("戳戳评价记录信息")
+public class McsEvaluateVO {
+
+    @ApiModelProperty("评价记录id")
+    private Long id;
+
+    @ApiModelProperty("评分(1.差 2.一般 3.还不错 4.很满意 5.强烈推荐)")
+    private Integer star;
+
+    @ApiModelProperty("评价内容")
+    private String content;
+
+    @ApiModelProperty("评价图片(多张逗号隔开)")
+    private String photos;
+
+    @ApiModelProperty("评价时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createdAt;
+
+    @ApiModelProperty("用户")
+    private String nickName;
+
+    @ApiModelProperty("用户头像")
+    private String imageUrl;
+
+    @ApiModelProperty("手机号码")
+    private String phone;
+
+    @ApiModelProperty("评价游戏")
+    private String gameName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsGameVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsGameVO.java
new file mode 100644
index 0000000..da8f0de
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsGameVO.java
@@ -0,0 +1,92 @@
+package com.panzhihua.common.model.vos.community.microCommercialStreet;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: McsGameVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 戳戳游戏信息
+ * @author: hans
+ * @date: 2021/12/30 13:50
+ */
+@Data
+@ApiModel("戳戳游戏信息")
+public class McsGameVO {
+
+    @ApiModelProperty("游戏id")
+    private Long id;
+
+    @ApiModelProperty("游戏名称")
+    private String name;
+
+    @ApiModelProperty("戳戳卷数量")
+    private Integer coupons;
+
+    @ApiModelProperty("剩余戳戳卷数量")
+    private Integer surplusCoupons;
+
+    @ApiModelProperty("游戏类别(1.戳戳币游戏 2.体验游戏)")
+    private Integer type;
+
+    @ApiModelProperty("奖励类型(1.免费领 2.产品试用 3.消费赠礼 4.优惠券)")
+    private Integer awardType;
+
+    @ApiModelProperty("戳戳币分配方式(1.随机分配 2.平均分配)")
+    private Integer allocation;
+
+    @ApiModelProperty("戳戳币总额")
+    private Integer coins;
+
+    @ApiModelProperty("戳戳币剩余数量")
+    private Integer surplusCoins;
+
+    @ApiModelProperty("地址")
+    private String address;
+
+    @ApiModelProperty("纬度")
+    private String lat;
+
+    @ApiModelProperty("经度")
+    private String lon;
+
+    @ApiModelProperty("失效时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date expireAt;
+
+    @ApiModelProperty("封面")
+    private String cover;
+
+    @ApiModelProperty("其他图片(多张图片以逗号隔开)")
+    private String otherImages;
+
+    @ApiModelProperty("游戏介绍")
+    private String introduction;
+
+    @ApiModelProperty("状态(1.未发布 2.进行中 3.已下架 4.已结束)")
+    private Integer status;
+
+    @ApiModelProperty("是否热门")
+    private Boolean isPopular;
+
+    @ApiModelProperty("发布时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date publishAt;
+
+    @ApiModelProperty("所属商家")
+    private Long merchantId;
+
+    @ApiModelProperty("所属商家名称")
+    private String merchantName;
+
+    @ApiModelProperty("商家logo")
+    private String logo;
+
+    @ApiModelProperty("所属商家下游戏总数")
+    private Integer gameCount;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsInformationVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsInformationVO.java
new file mode 100644
index 0000000..a1fa9a0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsInformationVO.java
@@ -0,0 +1,57 @@
+package com.panzhihua.common.model.vos.community.microCommercialStreet;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: McsInformationVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 戳戳资讯信息
+ * @author: hans
+ * @date: 2021/12/30 17:43
+ */
+@Data
+@ApiModel("戳戳资讯信息")
+public class McsInformationVO {
+
+    @ApiModelProperty("资讯id")
+    private Long id;
+
+    @ApiModelProperty("资讯标题")
+    private String name;
+
+    @ApiModelProperty("地址")
+    private String address;
+
+    @ApiModelProperty("纬度")
+    private String lat;
+
+    @ApiModelProperty("经度")
+    private String lon;
+
+    @ApiModelProperty("封面")
+    private String cover;
+
+    @ApiModelProperty("资讯内容")
+    private String content;
+
+    @ApiModelProperty("状态(1.未发布 2.已发布 3.已下架)")
+    private Integer status;
+
+    @ApiModelProperty("发布时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date publishAt;
+
+    @ApiModelProperty("所属商家")
+    private Long merchantId;
+
+    @ApiModelProperty("资讯内容")
+    private String merchantName;
+
+    @ApiModelProperty("商家信息")
+    private McsMerchantVO merchantInfo;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsLabelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsLabelVO.java
new file mode 100644
index 0000000..f467bfb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsLabelVO.java
@@ -0,0 +1,26 @@
+package com.panzhihua.common.model.vos.community.microCommercialStreet;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: McsLabelVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 产品标签信息
+ * @author: hans
+ * @date: 2022/01/05 14:54
+ */
+@Data
+@ApiModel("产品标签信息")
+public class McsLabelVO {
+
+    @ApiModelProperty("标签id")
+    private Long id;
+
+    @ApiModelProperty("标签名称")
+    private String name;
+
+    @ApiModelProperty("说明")
+    private String introduction;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsLoginUserInfoVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsLoginUserInfoVO.java
new file mode 100644
index 0000000..77771bd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsLoginUserInfoVO.java
@@ -0,0 +1,24 @@
+package com.panzhihua.common.model.vos.community.microCommercialStreet;
+
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: McsLoginUserInfoVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 微商业街用户登录信息
+ * @author: hans
+ * @date: 2022/01/06 13:12
+ */
+@Data
+@ApiModel(value = "微商业街用户登录信息")
+public class McsLoginUserInfoVO extends LoginUserInfoVO {
+    @ApiModelProperty("商家信息")
+    private McsMerchantVO mcsMerchantVO;
+
+    private String plaintextPassword;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsMerchantVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsMerchantVO.java
new file mode 100644
index 0000000..8a46982
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsMerchantVO.java
@@ -0,0 +1,76 @@
+package com.panzhihua.common.model.vos.community.microCommercialStreet;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: McsMerchantVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 数字商业街商家信息
+ * @author: hans
+ * @date: 2021/12/29 10:37
+ */
+@Data
+@ApiModel("数字商业街商家信息")
+public class McsMerchantVO {
+
+    @ApiModelProperty("商家id")
+    private Long id;
+
+    @ApiModelProperty("商家名称")
+    private String name;
+
+    @ApiModelProperty("手机号")
+    private String phone;
+
+    @ApiModelProperty("商家账号")
+    private String account;
+
+    @ApiModelProperty("商家logo")
+    private String logo;
+
+    @ApiModelProperty("商家级别(1.临时商家 2.合作商家)")
+    private Integer level;
+
+    @ApiModelProperty("戳戳点亮上限(发布次数上限)")
+    private Integer publishLimit;
+
+    @ApiModelProperty("到期时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date expireAt;
+
+    @ApiModelProperty("商家地址")
+    private String address;
+
+    @ApiModelProperty("纬度")
+    private String lat;
+
+    @ApiModelProperty("经度")
+    private String lon;
+
+    @ApiModelProperty("商家简介")
+    private String introduction;
+
+    @ApiModelProperty("首次点亮时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date firstLitAt;
+
+    @ApiModelProperty("剩余点亮天数")
+    private Integer surplusLitDays;
+
+    @ApiModelProperty("账号状态(1.启用 2.禁用)")
+    private Integer accountStatus;
+
+    @ApiModelProperty("空闲戳戳点")
+    private Integer idleTotal;
+
+    @ApiModelProperty("距离")
+    private Double distance;
+
+    @ApiModelProperty("客服电话")
+    private String customPhone;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsOrderVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsOrderVO.java
new file mode 100644
index 0000000..9ee3897
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsOrderVO.java
@@ -0,0 +1,110 @@
+package com.panzhihua.common.model.vos.community.microCommercialStreet;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+@Data
+@ApiModel("商业街订单表")
+public class McsOrderVO {
+    private Long id;
+
+    /**
+     * 订单编号
+     */
+    @ApiModelProperty(value = "订单编号")
+    private String orderNo;
+
+    /**
+     * 支付配置id
+     */
+    @ApiModelProperty(value = "支付配置id")
+    private Long configId;
+
+    /**
+     * 数量
+     */
+    @ApiModelProperty(value = "数量")
+    private Integer num;
+
+    /**
+     * 支付状态 0 待支付 1已支付 2 已取消 3 已退款
+     */
+    @ApiModelProperty(value = "支付状态 0 待支付 1已支付 2 已取消 3 已退款")
+    private Integer status;
+
+    /**
+     * 支付金额
+     */
+    @ApiModelProperty(value = "支付金额")
+    private BigDecimal money;
+
+    /**
+     * 支付时间
+     */
+    @ApiModelProperty(value = "支付时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date payTime;
+
+    /**
+     * 商家id
+     */
+    @ApiModelProperty(value = "商家id")
+    private Long merchantId;
+
+    /**
+     * 支付流水号
+     */
+    @ApiModelProperty(value = "支付流水号")
+    private String payNo;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+    /**
+     * 商家名称
+     */
+    @ApiModelProperty("商家名称")
+    private String merchantName;
+    /**
+     * 付费名称
+     */
+    @ApiModelProperty("付费名称")
+    private String payName;
+    /**
+     * 商家账号
+     */
+    @ApiModelProperty("商家账号")
+    private String merchantAccount;
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+    @ApiModelProperty("交易类型   MWEB-->h5支付  NATIVE-->pc端支付  JSAPI-->小程序支付")
+    private String tradeType;
+
+    @ApiModelProperty("openid")
+    private String openId;
+
+    @ApiModelProperty("订单取消剩余倒计时")
+    private Long cancelCountdown;
+
+    @ApiModelProperty("支付方式")
+    private String paymentMethod;
+
+    @ApiModelProperty("商家地址")
+    private String address;
+
+    @ApiModelProperty("纬度")
+    private String lat;
+
+    @ApiModelProperty("经度")
+    private String lon;
+
+    @ApiModelProperty(value = "用户真实ip", hidden = true)
+    private String clientIp;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsProductVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsProductVO.java
new file mode 100644
index 0000000..fec9913
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsProductVO.java
@@ -0,0 +1,53 @@
+package com.panzhihua.common.model.vos.community.microCommercialStreet;
+
+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.util.List;
+
+/**
+ * @title: McsProductVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description:
+ * @author: hans
+ * @date: 2022/01/05 11:29
+ */
+@Data
+@ApiModel("产品信息")
+public class McsProductVO {
+
+    @ApiModelProperty("产品id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("产品名称")
+    private String name;
+
+    @ApiModelProperty("产品图片")
+    private String image;
+
+    @ApiModelProperty("产品介绍")
+    private String introduction;
+
+    @ApiModelProperty("浏览量")
+    private Integer viewNum;
+
+    @ApiModelProperty("状态(1.上架中 2.已下架)")
+    private Integer status;
+
+    @ApiModelProperty("产品标签")
+    private String productLabel;
+
+    @ApiModelProperty("所属商家")
+    private Long merchantId;
+
+    @ApiModelProperty("所属商家名称")
+    private Long merchantName;
+
+    @ApiModelProperty("产品标签ids")
+    private List<Long> labelIds;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsVerifyRecordVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsVerifyRecordVO.java
new file mode 100644
index 0000000..ad92844
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/McsVerifyRecordVO.java
@@ -0,0 +1,43 @@
+package com.panzhihua.common.model.vos.community.microCommercialStreet;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: McsVerifyRecordVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 戳戳卷核验记录信息
+ * @author: hans
+ * @date: 2022/01/08 14:56
+ */
+@Data
+@ApiModel("戳戳卷核验记录信息")
+public class McsVerifyRecordVO {
+
+    @ApiModelProperty("核验记录id")
+    private Long id;
+
+    @ApiModelProperty("核验码")
+    private Long couponId;
+
+    @ApiModelProperty("游戏名称")
+    private String name;
+
+    @ApiModelProperty("获得奖励")
+    private String award;
+
+    @ApiModelProperty("核验时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date verifiedAt;
+
+    @ApiModelProperty("用户昵称")
+    private String nickName;
+
+    @ApiModelProperty("游戏类别(1.戳戳币游戏 2.体验游戏)")
+    private Integer type;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/MyCouponVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/MyCouponVO.java
new file mode 100644
index 0000000..f4c6e8f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/MyCouponVO.java
@@ -0,0 +1,34 @@
+package com.panzhihua.common.model.vos.community.microCommercialStreet;
+
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: MyCouponVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 我的戳戳卷信息
+ * @author: hans
+ * @date: 2022/01/08 12:26
+ */
+@Data
+@ApiModel("我的戳戳卷信息")
+public class MyCouponVO {
+
+    @ApiModelProperty("已获得的戳戳币")
+    private Integer obtainedTotal;
+
+    @ApiModelProperty("免费体验次")
+    private Integer trialTotal;
+
+    @ApiModelProperty("参与游戏数")
+    private Integer joinGameTotal;
+
+    @ApiModelProperty("待核销券码")
+    private Integer unVerifiedTotal;
+
+    @ApiModelProperty("戳戳卷列表")
+    private List<McsCouponVO> couponList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/TopStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/TopStatisticsVO.java
new file mode 100644
index 0000000..7983bc0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/TopStatisticsVO.java
@@ -0,0 +1,37 @@
+package com.panzhihua.common.model.vos.community.microCommercialStreet;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: TopStatisticsVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 统计信息
+ * @author: hans
+ * @date: 2022/01/04 17:58
+ */
+@Data
+@ApiModel("统计信息")
+public class TopStatisticsVO {
+
+    @ApiModelProperty("到期时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date expireAt;
+
+    @ApiModelProperty("剩余点亮天数")
+    private Integer surplusLitDays;
+
+    @ApiModelProperty("领取人数")
+    private Integer appliedTotal;
+
+    @ApiModelProperty("核销人数")
+    private Integer verifiedTotal;
+
+    @ApiModelProperty("空闲戳戳点")
+    private Integer idleTotal;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/VerifiedReturnVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/VerifiedReturnVO.java
new file mode 100644
index 0000000..21f9a70
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/microCommercialStreet/VerifiedReturnVO.java
@@ -0,0 +1,46 @@
+package com.panzhihua.common.model.vos.community.microCommercialStreet;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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;
+
+/**
+ * @title: VerifiedReturnVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 戳戳卷核验返回参数
+ * @author: hans
+ * @date: 2022/01/08 14:37
+ */
+@Data
+@ApiModel("戳戳卷核验返回参数")
+public class VerifiedReturnVO {
+
+    @ApiModelProperty("用户")
+    private String nickName;
+
+    @ApiModelProperty("奖励")
+    private String award;
+
+    @ApiModelProperty("券码")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long couponId;
+
+    @ApiModelProperty("核销时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date verifiedAt;
+
+    @ApiModelProperty("游戏名称")
+    private String gameName;
+
+    @ApiModelProperty("游戏封面")
+    private String cover;
+
+    @ApiModelProperty("奖励类型(1.免费领 2.产品试用 3.消费赠礼 4.优惠券)")
+    private Integer awardType;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/EditComActQuestnaireVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/EditComActQuestnaireVo.java
new file mode 100644
index 0000000..575f26c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/EditComActQuestnaireVo.java
@@ -0,0 +1,29 @@
+package com.panzhihua.common.model.vos.community.questnaire;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Author: llming
+ * @Description:编辑问卷调查DO
+ */
+@Data
+public class EditComActQuestnaireVo {
+    @ApiModelProperty(value = "问卷调查Id")
+    private Long questId;
+    @ApiModelProperty(value = "类型(1.继续调研 2.停止调研 3.发布调研)")
+    private Integer type;
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+    @ApiModelProperty(value = "继续调研选择结束时间")
+    private String endTime;
+
+    /**
+     * 类型(1.继续调研 2.停止调研)
+     */
+    public interface type {
+        int jx = 1;
+        int tz = 2;
+        int fb = 3;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireAnswerStatVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireAnswerStatVO.java
new file mode 100644
index 0000000..be23cdf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireAnswerStatVO.java
@@ -0,0 +1,21 @@
+package com.panzhihua.common.model.vos.community.questnaire;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.ComActQuestnaireVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 用户答卷详细
+ */
+@Data
+@ApiModel("用户问卷回答统计信息")
+public class QuestnaireAnswerStatVO {
+    @ApiModelProperty(value = "问卷信息")
+    private ComActQuestnaireVO questnaire;
+    @ApiModelProperty(value = "用户调查问卷题目统计信息")
+    private List<UsersSubAnswerStatVO> usersSubAnswerStat;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireDetailAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireDetailAdminVO.java
new file mode 100644
index 0000000..33a5028
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireDetailAdminVO.java
@@ -0,0 +1,58 @@
+package com.panzhihua.common.model.vos.community.questnaire;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Author: llming
+ * @Description:
+ */
+@Data
+public class QuestnaireDetailAdminVO {
+
+    @ApiModelProperty(value = "问卷调查id")
+    private Long id;
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+    @ApiModelProperty(value = "问卷调查主题")
+    private String title;
+    @ApiModelProperty("广告顶部(1.是   2.否)")
+    private Integer adverPositionTop;
+    @ApiModelProperty("广告弹窗(1.是 2.否 )")
+    private Integer adverPositionPopup;
+    @ApiModelProperty("广告应用(1.是   2.否)")
+    private Integer adverPositionApplication;
+    @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("是否强制调研(1.是 2.否)")
+    private String isForce;
+    @ApiModelProperty("是否封面(1.是 2.否)")
+    private String isCover;
+    @ApiModelProperty("问卷调查备注(应用名称)")
+    private String remark;
+    @ApiModelProperty("组件json数据")
+    private String jsonObject;
+    @ApiModelProperty("发布时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date publishTime;
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("是否居民(1.是   2.否)")
+    private Integer forMasses;
+    @ApiModelProperty("是否党员(1.是   2.否)")
+    private Integer forParty;
+    @ApiModelProperty("是否志愿者(1.是   2.否)")
+    private Integer forVolunteer;
+    @ApiModelProperty("是否已填写(1.是   2.否)")
+    private Integer isOk = 2;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireListAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireListAdminVO.java
new file mode 100644
index 0000000..d64ba1d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireListAdminVO.java
@@ -0,0 +1,77 @@
+package com.panzhihua.common.model.vos.community.questnaire;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class QuestnaireListAdminVO {
+
+    @ApiModelProperty("id")
+    private String id;
+
+    @ApiModelProperty("标题")
+    private String title;
+
+    @ApiModelProperty("状态 1待发布 2调研中 3已停止")
+    private Integer state;
+
+    @ApiModelProperty("是否封面(1.是 2.否)")
+    private Integer isCover;
+
+    @ApiModelProperty("参与人数")
+    private Integer joinCount;
+
+    @ApiModelProperty("浏览量")
+    private Long viewNum;
+
+    @ApiModelProperty("填报项数量")
+    private Integer count;
+
+    @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 publishTime;
+
+    @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("是否提供居民填写(1.是 2.否)")
+    private Integer forMasses;
+
+    @ApiModelProperty("是否提供党员填写(1.是 2.否)")
+    private Integer forParty;
+
+    @ApiModelProperty("是否提供志愿者填写(1.是 2.否)")
+    private Integer forVolunteer;
+
+    @ApiModelProperty("广告顶部(1.是   2.否)")
+    private Integer adverPositionTop;
+
+    @ApiModelProperty("广告弹窗(1.是 2.否 )")
+    private Integer adverPositionPopup;
+
+    @ApiModelProperty("广告应用(1.是   2.否)")
+    private Integer adverPositionApplication;
+
+    @ApiModelProperty("组件库唯一key")
+    private String projectKey;
+
+    @ApiModelProperty("调研对象身份")
+    private String identity;
+
+    @ApiModelProperty("广告位置")
+    private String advertPosition;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireListVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireListVo.java
new file mode 100644
index 0000000..a0c9e1b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireListVo.java
@@ -0,0 +1,50 @@
+package com.panzhihua.common.model.vos.community.questnaire;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class QuestnaireListVo {
+
+    @ApiModelProperty("id")
+    private String id;
+
+    @ApiModelProperty("标题")
+    private String title;
+
+    @ApiModelProperty("状态 1待发布 2调研中 3已停止")
+    private Integer state;
+
+    @ApiModelProperty("参与人数")
+    private Integer joinCount;
+
+    @ApiModelProperty("浏览量")
+    private Long viewNum;
+
+    @ApiModelProperty("填报项数量")
+    private Integer count;
+
+    @ApiModelProperty("发布时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("是否已参与(1.是 2.否)")
+    private Integer isAnswer;
+
+    @ApiModelProperty("是否封面(1.是 2.否)")
+    private Integer isCover;
+
+    @ApiModelProperty("提供居民(1.是 2.否)")
+    private Integer forMasses;
+
+    @ApiModelProperty("提供党员(1.是 2.否)")
+    private Integer forParty;
+
+    @ApiModelProperty("提供志愿者(1.是 2.否)")
+    private Integer forVolunteer;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireStatisticsSummaryAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireStatisticsSummaryAdminVO.java
new file mode 100644
index 0000000..882d3cb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireStatisticsSummaryAdminVO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.vos.community.questnaire;
+
+import java.math.BigDecimal;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 统计汇总返回对象
+ */
+@Data
+public class QuestnaireStatisticsSummaryAdminVO {
+
+    @ApiModelProperty(value = "问卷调查题目")
+    private String subject;
+    @ApiModelProperty(value = "问卷调查选项")
+    private String option;
+    @ApiModelProperty("选择该选项人数")
+    private Integer count;
+    @ApiModelProperty("问卷调查题目参与总数")
+    private Integer allCount;
+    @ApiModelProperty("百分比")
+    private BigDecimal tag;
+
+}
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
new file mode 100644
index 0000000..f08c764
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireStatisticsSummaryExcelAdminVO.java
@@ -0,0 +1,26 @@
+package com.panzhihua.common.model.vos.community.questnaire;
+
+import java.math.BigDecimal;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+
+import lombok.Data;
+
+/**
+ * 统计汇总返回对象
+ */
+@Data
+public class QuestnaireStatisticsSummaryExcelAdminVO {
+
+    @ExcelProperty(value = "问卷调查题目", index = 0)
+    private String subject;
+    @ExcelProperty(value = "问卷调查选项", index = 1)
+    private String option;
+    @ExcelProperty(value = "参与人数百分比", index = 2)
+    private BigDecimal tag;
+    @ExcelProperty(value = "该选项选择总次数", index = 3)
+    private Integer count;
+    @ExcelProperty(value = "该题目选择总次数", index = 4)
+    private Integer allCount;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireStatisticsSummaryHeaderAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireStatisticsSummaryHeaderAdminVO.java
new file mode 100644
index 0000000..b4c598e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireStatisticsSummaryHeaderAdminVO.java
@@ -0,0 +1,33 @@
+package com.panzhihua.common.model.vos.community.questnaire;
+
+import java.math.BigDecimal;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 统计汇总表头返回数据
+ */
+@Data
+public class QuestnaireStatisticsSummaryHeaderAdminVO {
+
+    @ApiModelProperty(value = "填报志愿者数量")
+    private Integer volunteerCount = 0;
+    @ApiModelProperty(value = "填报党员")
+    private Integer partymemberCount = 0;
+    @ApiModelProperty("总填报量")
+    private Integer allCount = 0;
+    @ApiModelProperty("总浏览量")
+    private Integer viewNum = 0;
+    @ApiModelProperty("今日新增")
+    private Integer todayCount = 0;
+    @ApiModelProperty("未填报志愿者")
+    private Integer noVolunteerCount = 0;
+    @ApiModelProperty("未填报党员")
+    private Integer noPartymemberCount = 0;
+    @ApiModelProperty("填报率")
+    private BigDecimal tag = BigDecimal.ZERO;
+    @ApiModelProperty("社区小程序用户总人数")
+    private Integer userCount = 0;
+
+}
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
new file mode 100644
index 0000000..7bd915a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireVO.java
@@ -0,0 +1,54 @@
+package com.panzhihua.common.model.vos.community.questnaire;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Author: llming
+ * @Description:
+ */
+@Data
+public class QuestnaireVO {
+
+    @ApiModelProperty(value = "问卷调查id")
+    private Long id;
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+    @ApiModelProperty(value = "问卷调查主题")
+    private String title;
+    @ApiModelProperty(value = "问卷描述")
+    private String queDescribe;
+    @ApiModelProperty(value = "身份(1.全部居民 2.党员 3.志愿者)")
+    private Integer identity;
+    @ApiModelProperty("广告顶部(1.是   2.否)")
+    private Integer adverPositionTop;
+    @ApiModelProperty("广告弹窗(1.是 2.否 )")
+    private Integer adverPositionPopup;
+    @ApiModelProperty("广告应用(1.是   2.否)")
+    private Integer adverPositionApplication;
+    @ApiModelProperty("调研开始时间")
+    private String startTime;
+    @ApiModelProperty("调研结束时间")
+    private String endTime;
+    @ApiModelProperty("是否强制调研(1.是 2.否)")
+    private Integer isForce;
+    @ApiModelProperty("是否封面(1.是 2.否)")
+    private Integer isCover;
+    @ApiModelProperty("问卷调查备注(应用名称)")
+    private String remark;
+    @ApiModelProperty("组件json数据")
+    private String jsonObject;
+    @ApiModelProperty("是否发布(1.是 2.否)")
+    private Integer isRelease;
+
+    /**
+     * 身份(1.全部居民 2.党员 3.志愿者)
+     */
+    public interface identity {
+        int jm = 1;
+        int dy = 2;
+        int zyz = 3;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireWriteListAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireWriteListAdminVO.java
new file mode 100644
index 0000000..1bc24e6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaireWriteListAdminVO.java
@@ -0,0 +1,42 @@
+package com.panzhihua.common.model.vos.community.questnaire;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 调查问卷填报列表返回参数
+ */
+@Data
+public class QuestnaireWriteListAdminVO {
+
+    @ApiModelProperty(value = "问卷调查题目列表")
+    private List<String> subjectList;
+    @ApiModelProperty(value = "问卷调查选项")
+    private String option;
+    @ApiModelProperty("选择该选项人数")
+    private Integer count;
+    @ApiModelProperty("问卷调查题目参与总数")
+    private Integer allCount;
+    @ApiModelProperty("百分比")
+    private BigDecimal tag;
+
+    @ApiModelProperty("用户id")
+    private Long userId;
+
+    @ApiModelProperty("用户昵称")
+    private Long nickName;
+
+    @ApiModelProperty("提交时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("用户填报数据")
+    private List<QuestnaiteSubVO> list;
+
+}
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
new file mode 100644
index 0000000..2e2577b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaiteSubSelectionVO.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.vos.community.questnaire;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Author: llming
+ * @Description: 问卷题目选项
+ */
+@Data
+public class QuestnaiteSubSelectionVO {
+    @ApiModelProperty(value = "问卷题目选项Id")
+    private Long queSubSelectionId;
+
+    @ApiModelProperty(value = "选项排序")
+    private Integer sort;
+
+    @ApiModelProperty(value = "选项名")
+    private String optionName;
+
+    @ApiModelProperty(value = "选项内容")
+    private String label;
+
+    @ApiModelProperty(value = "选项类型 0 固定选项 1 自定义选项")
+    private Integer type = 0;
+
+    @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
new file mode 100644
index 0000000..933776a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/QuestnaiteSubVO.java
@@ -0,0 +1,46 @@
+package com.panzhihua.common.model.vos.community.questnaire;
+
+import java.util.List;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Author: llming
+ * @Description: 问卷题目
+ */
+@Data
+public class QuestnaiteSubVO {
+    @ApiModelProperty(value = "问卷题目Id")
+    private Long queSubId;
+    @ApiModelProperty(value = "序号")
+    private int sort;
+    @ApiModelProperty(value = "题目内容")
+    private String label;
+    @ApiModelProperty(value = "类型 0 单选  1 多选 2 输入框  3 手机号 4 身份证 5 文字描述 6 日期选择 7 时间选择 8 可换行的输入框 9姓名输入框 10图片选择", example = "0")
+    private Integer type;
+    @ApiModelProperty(value = "问卷题目选项")
+    private List<QuestnaiteSubSelectionVO> options;
+    @ApiModelProperty(value = "问卷题目题目key")
+    private String key;
+    @ApiModelProperty(value = "答题选项内容key")
+    private String values;
+
+    /**
+     * 类型 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;
+        int address=14;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UserAnswerContentVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UserAnswerContentVO.java
new file mode 100644
index 0000000..742b755
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UserAnswerContentVO.java
@@ -0,0 +1,29 @@
+package com.panzhihua.common.model.vos.community.questnaire;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Author: llming
+ * @Description:
+ */
+@ApiModel("用户填写选项情况")
+@Data
+public class UserAnswerContentVO {
+    @ApiModelProperty(value = "问卷题目Id")
+    private Long subId;
+
+    @ApiModelProperty(value = "问卷回答选项", example = "选项")
+    private String choice;
+
+    @ApiModelProperty(value = "问卷回答内容")
+    private String answerContent;
+
+    @ApiModelProperty(value = "选项类型 0 固定选项 1 自定义选项", example = "0")
+    private Integer type;
+
+    @ApiModelProperty(value = "题目选项ID", example = "0")
+    private Long selectionId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UserSubAnswerSelectionStatVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UserSubAnswerSelectionStatVO.java
new file mode 100644
index 0000000..cc99696
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UserSubAnswerSelectionStatVO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.vos.community.questnaire;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("用户调查问卷题目-选择项统计信息")
+public class UserSubAnswerSelectionStatVO {
+    @ApiModelProperty(value = "调查问卷题目ID", hidden = true)
+    @JsonIgnore
+    private Long subId;
+    @ApiModelProperty("选项")
+    private String optionName;
+    @ApiModelProperty("问卷回答内容")
+    private String answerContent;
+    @ApiModelProperty("小计")
+    private Integer total;
+    @ApiModelProperty("比例")
+    private String proportion;
+    @ApiModelProperty("选项类型 0 固定选项 1 自定义选项")
+    private Integer type;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UsersAnswerQuestnaireVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UsersAnswerQuestnaireVO.java
new file mode 100644
index 0000000..513eb03
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UsersAnswerQuestnaireVO.java
@@ -0,0 +1,26 @@
+package com.panzhihua.common.model.vos.community.questnaire;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @Author: llming
+ * @Description:
+ */
+@Data
+@ApiModel("用户填写问卷情况")
+public class UsersAnswerQuestnaireVO {
+
+    @ApiModelProperty(value = "调查问卷Id")
+    private Long questId;
+
+    @ApiModelProperty(value = "答题情况")
+    private String jsonObject;
+
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UsersAnswerVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UsersAnswerVO.java
new file mode 100644
index 0000000..d6370f8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UsersAnswerVO.java
@@ -0,0 +1,21 @@
+package com.panzhihua.common.model.vos.community.questnaire;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.ComActQuestnaireVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 用户答卷详细
+ */
+@Data
+@ApiModel("用户问卷回答信息")
+public class UsersAnswerVO {
+    @ApiModelProperty(value = "问卷信息")
+    private ComActQuestnaireVO questnaire;
+    @ApiModelProperty(value = "用户调查问卷题目信息")
+    private List<UsersSubAnswerVO> usersSubAnswer;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UsersSubAnswerStatVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UsersSubAnswerStatVO.java
new file mode 100644
index 0000000..c28e46a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UsersSubAnswerStatVO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.vos.community.questnaire;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.ComActQuestnaireSubVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 用户答卷详细
+ */
+@Data
+@ApiModel("用户调查问卷题目统计信息")
+public class UsersSubAnswerStatVO {
+    @ApiModelProperty(value = "调查问卷题目")
+    private ComActQuestnaireSubVO questSubVO;
+
+    @ApiModelProperty(value = "用户回答统计")
+    private List<UserSubAnswerSelectionStatVO> usersAnswer;
+
+    @ApiModelProperty(value = "本题答题人数")
+    private Integer total;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UsersSubAnswerVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UsersSubAnswerVO.java
new file mode 100644
index 0000000..fed2d2b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/questnaire/UsersSubAnswerVO.java
@@ -0,0 +1,27 @@
+package com.panzhihua.common.model.vos.community.questnaire;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.ComActQuestnaireAnswerContentVO;
+import com.panzhihua.common.model.vos.community.ComActQuestnaireSubSelectionVO;
+import com.panzhihua.common.model.vos.community.ComActQuestnaireSubVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 用户答卷详细
+ */
+@Data
+@ApiModel("用户调查问卷题目信息")
+public class UsersSubAnswerVO {
+    @ApiModelProperty(value = "调查问卷题目")
+    private ComActQuestnaireSubVO questSubVO;
+
+    @ApiModelProperty(value = "调查问卷题目选项")
+    private List<ComActQuestnaireSubSelectionVO> questSelectionList;
+
+    @ApiModelProperty(value = "用户回答")
+    private List<ComActQuestnaireAnswerContentVO> usersAnswer;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/raffle/ComActRafflePrizeCount.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/raffle/ComActRafflePrizeCount.java
new file mode 100644
index 0000000..d1431f3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/raffle/ComActRafflePrizeCount.java
@@ -0,0 +1,21 @@
+package com.panzhihua.common.model.vos.community.raffle;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel("礼品统计")
+public class ComActRafflePrizeCount {
+    @ApiModelProperty("总数")
+    private Integer total;
+    @ApiModelProperty("剩下")
+    private Integer surplus;
+    @ApiModelProperty("礼品列表")
+    private List<ComActRafflePrizeVO> comActRafflePrizeVOList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/raffle/ComActRafflePrizeVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/raffle/ComActRafflePrizeVO.java
new file mode 100644
index 0000000..b5c2d69
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/raffle/ComActRafflePrizeVO.java
@@ -0,0 +1,59 @@
+package com.panzhihua.common.model.vos.community.raffle;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+
+/**
+ * 抽奖活动奖品表(ComActRafflePrize)表实体类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 抽奖活动奖品表相关功能
+ *
+ * @author zzj
+ * @since 2022-02-18 14:31:45
+ */
+@Data
+@ApiModel("抽奖活动奖品表")
+public class ComActRafflePrizeVO implements Serializable {
+
+    private static final long serialVersionUID = 706879121724104929L;
+
+    private Long id;
+
+    /**
+     * 奖品名称
+     */
+    @ApiModelProperty(value = "奖品名称")
+    private String name;
+
+    /**
+     * 总数
+     */
+    @ApiModelProperty(value = "总数")
+    private Integer total;
+
+    /**
+     * 剩余
+     */
+    @ApiModelProperty(value = "剩余")
+    private Integer surplus;
+
+    /**
+     * 图片
+     */
+    @ApiModelProperty(value = "图片")
+    private String image;
+
+    /**
+     * 抽奖活动id
+     */
+    @ApiModelProperty(value = "抽奖活动id")
+    private Long raffleId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/raffle/ComActRaffleRecordExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/raffle/ComActRaffleRecordExcelVO.java
new file mode 100644
index 0000000..2a5144d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/raffle/ComActRaffleRecordExcelVO.java
@@ -0,0 +1,63 @@
+package com.panzhihua.common.model.vos.community.raffle;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.net.URL;
+import java.util.Date;
+
+/**
+ * @author zzj
+ */
+@Data
+public class ComActRaffleRecordExcelVO {
+    @ApiModelProperty(value = "昵称")
+    @ExcelProperty(value = "昵称",index = 0)
+    private String nickName;
+
+    @ApiModelProperty(value = "姓名")
+    @ExcelProperty(value = "姓名",index = 1)
+    private String username;
+
+    @ApiModelProperty(value = "联系电话")
+    @ExcelProperty(value = "联系电话",index = 2)
+    private String phone;
+    /**
+     * 创建时间
+     */
+    @ExcelProperty(value = "中奖时间",index = 3)
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    @ApiModelProperty(value = "奖品名称")
+    @ExcelProperty(value = "奖品名称",index = 4)
+    private String prizeName;
+
+    @ApiModelProperty(value = "核销人名称")
+    @ExcelProperty(value = "核销人",index = 5)
+    private String staffName;
+
+    @ApiModelProperty(value = "核销时间")
+    @ExcelProperty(value = "核销时间",index = 6)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date staffTime;
+
+    @ExcelProperty(value = "状态",index = 7)
+    private String status;
+
+    public String getStatus() {
+        if("1".equals(this.status)){
+            return "待兑奖";
+        }
+        if("2".equals(this.status)){
+            return "已兑奖";
+        }
+        if("3".equals(this.status)){
+            return "已失效";
+        }
+        return "";
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/raffle/ComActRaffleRecordVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/raffle/ComActRaffleRecordVO.java
new file mode 100644
index 0000000..f8a0912
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/raffle/ComActRaffleRecordVO.java
@@ -0,0 +1,99 @@
+package com.panzhihua.common.model.vos.community.raffle;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 抽奖活动中奖记录表(ComActRaffleRecord)表实体类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 抽奖活动中奖记录表相关功能
+ *
+ * @author zzj
+ * @since 2022-02-18 14:32:01
+ */
+@Data
+@ApiModel("抽奖活动中奖记录表")
+public class ComActRaffleRecordVO implements Serializable {
+
+    private static final long serialVersionUID = 201328912468431601L;
+
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    /**
+     * 奖品id
+     */
+    @ApiModelProperty(value = "奖品id")
+    private Long prizeId;
+
+    /**
+     * 核销人
+     */
+    @ApiModelProperty(value = "核销人")
+    private Long staffId;
+
+    /**
+     * 核销时间
+     */
+    @ApiModelProperty(value = "核销时间")
+    private Date staffTime;
+
+    @ApiModelProperty(value = "0 已参加 1待兑奖 2已兑奖 3已失效 4未中奖")
+    private Integer status;
+
+    @ApiModelProperty(value = "抽奖id")
+    private Long raffleId;
+
+    @ApiModelProperty(value = "核销人名称")
+    private String staffName;
+
+    @ApiModelProperty(value = "奖品名称")
+    private String prizeName;
+
+    @ApiModelProperty(value = "奖品图片")
+    private String image;
+
+    @ApiModelProperty(value = "昵称")
+    private String nickName;
+
+    @ApiModelProperty(value = "姓名")
+    private String username;
+
+    @ApiModelProperty(value = "联系电话")
+    private String phone;
+
+    /**
+     * 兑奖开始时间
+     */
+    @ApiModelProperty(value = "兑奖开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date raffleStartTime;
+
+    /**
+     * 兑奖结束时间
+     */
+    @ApiModelProperty(value = "兑奖结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date raffleStopTime;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/raffle/ComActRaffleVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/raffle/ComActRaffleVO.java
new file mode 100644
index 0000000..a744423
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/raffle/ComActRaffleVO.java
@@ -0,0 +1,162 @@
+package com.panzhihua.common.model.vos.community.raffle;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * 抽奖活动表(ComActRaffle)表实体类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 抽奖活动表相关功能
+ *
+ * @author zzj
+ * @since 2022-02-18 14:31:19
+ */
+@Data
+@ApiModel("抽奖活动表")
+public class ComActRaffleVO implements Serializable {
+
+    private static final long serialVersionUID = -19557136291047637L;
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 名称
+     */
+    @ApiModelProperty(value = "名称")
+    private String name;
+
+    /**
+     * 开始时间
+     */
+    @ApiModelProperty(value = "开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date startTime;
+
+    /**
+     * 结束时间
+     */
+    @ApiModelProperty(value = "结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date stopTime;
+
+    /**
+     * 开奖时间
+     */
+    @ApiModelProperty(value = "开奖时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date lotteryTime;
+
+    /**
+     * 兑奖开始时间
+     */
+    @ApiModelProperty(value = "兑奖开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date raffleStartTime;
+
+    /**
+     * 兑奖结束时间
+     */
+    @ApiModelProperty(value = "兑奖结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date raffleStopTime;
+
+    /**
+     * 工作时间
+     */
+    @ApiModelProperty(value = "工作时间")
+    private String workTime;
+
+    /**
+     * 地址
+     */
+    @ApiModelProperty(value = "地址")
+    private String address;
+
+    /**
+     * 经度
+     */
+    @ApiModelProperty(value = "经度")
+    private String longitude;
+
+    /**
+     * 纬度
+     */
+    @ApiModelProperty(value = "纬度")
+    private String latitude;
+
+    /**
+     * 联系方式
+     */
+    @ApiModelProperty(value = "联系方式")
+    private String phone;
+
+    /**
+     * 封面
+     */
+    @ApiModelProperty(value = "封面")
+    private String cover;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    /**
+     * 状态 0未开始 1报名中 2待开奖 3已开奖
+     */
+    @ApiModelProperty(value = "状态 0未开始 1报名中 2待开奖 3已开奖")
+    private Integer status;
+
+    /**
+     * 创建人
+     */
+    @ApiModelProperty(value = "创建人")
+    private Long createBy;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    @ApiModelProperty(value = "奖品数量")
+    private Integer prizeCount;
+
+    @ApiModelProperty(value = "参与人数")
+    private Integer joinCount;
+
+    @ApiModelProperty(value = "中奖人数")
+    private Integer raffleCount;
+
+    @ApiModelProperty(value = "待兑换奖品数量")
+    private Integer waitRaffleCount;
+
+    @ApiModelProperty(value = "创建人名称")
+    private String createName;
+
+    @ApiModelProperty(value = "奖品集合")
+    private List<ComActRafflePrizeVO> comActRafflePrizeVOList;
+
+    @ApiModelProperty(value = "中奖情况")
+    private ComActRaffleRecordVO comActRaffleRecordVO;
+
+    @ApiModelProperty(value = "参与状态 0 不可参与 1 可参与")
+    private Integer joinStatus;
+
+    @ApiModelProperty("是否参与  0参与 1没参与")
+    private Integer isJoin;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/rentHouse/OrderStatics.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/rentHouse/OrderStatics.java
new file mode 100644
index 0000000..bcf13c6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/rentHouse/OrderStatics.java
@@ -0,0 +1,28 @@
+package com.panzhihua.common.model.vos.community.rentHouse;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel
+public class OrderStatics {
+    @ApiModelProperty("总订单金额")
+    private BigDecimal allOrder;
+    @ApiModelProperty("租金总金额")
+    private BigDecimal allRent;
+    @ApiModelProperty("服务费总金额")
+    private BigDecimal allService;
+    @ApiModelProperty("保证金总金额")
+    private BigDecimal allBond;
+    @ApiModelProperty("服务费收益")
+    private BigDecimal serviceProfit;
+    @ApiModelProperty("保证金余额")
+    private BigDecimal bondProfit;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/rentHouse/PayOrderVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/rentHouse/PayOrderVO.java
new file mode 100644
index 0000000..7e5784b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/rentHouse/PayOrderVO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.vos.community.rentHouse;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel
+public class PayOrderVO {
+    @ApiModelProperty("订单支付类型 1.定金订单 2.退款订单 3.普通订单")
+    private Integer type;
+    private String orderNo;
+
+    /**
+     * 订单支付类型  1.定金订单 2.退款订单 3.普通订单
+     */
+    public interface type{
+        int dj=1;
+        int tk=2;
+        int pt=3;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/rentHouse/PreOrderStatics.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/rentHouse/PreOrderStatics.java
new file mode 100644
index 0000000..1d87eda
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/rentHouse/PreOrderStatics.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.vos.community.rentHouse;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel
+public class PreOrderStatics {
+    @ApiModelProperty("总定金金额")
+    private BigDecimal allOrder;
+    @ApiModelProperty("定金退款总额")
+    private BigDecimal allRefuse;
+    @ApiModelProperty("退款数")
+    private BigDecimal refuseNum;
+    @ApiModelProperty("已结算定金")
+    private BigDecimal settledOrder;
+    @ApiModelProperty("待抵扣定金")
+    private BigDecimal deductOrder;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/rentHouse/RentingHourseOrderVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/rentHouse/RentingHourseOrderVO.java
new file mode 100644
index 0000000..a2a7d75
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/rentHouse/RentingHourseOrderVO.java
@@ -0,0 +1,252 @@
+package com.panzhihua.common.model.vos.community.rentHouse;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel
+public class RentingHourseOrderVO {
+    private Long id;
+
+    /**
+     * 街道ID
+     */
+    @ApiModelProperty(value = "街道ID")
+    private Long streetId;
+
+    /**
+     * 小区id
+     */
+    @ApiModelProperty(value = "小区id")
+    private Long villageId;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    /**
+     * 小区名称
+     */
+    @ApiModelProperty(value = "小区名称")
+    private String villageName;
+
+    /**
+     * 订单类型(1、新订单2、续租订单)
+     */
+    @ApiModelProperty(value = "订单类型(1、新订单2、续租订单)")
+    private Integer orderType;
+
+    /**
+     * 续租订单的原订单号
+     */
+    @ApiModelProperty(value = "续租订单的原订单号")
+    private String originOrderSn;
+
+    /**
+     * 订单SN号
+     */
+    @ApiModelProperty(value = "订单SN号")
+    private String orderSn;
+
+    /**
+     * 交易流水号
+     */
+    @ApiModelProperty(value = "交易流水号")
+    private String paySn;
+
+    /**
+     * 租赁月数(多少个月)
+     */
+    @ApiModelProperty(value = "租赁月数(多少个月)")
+    private Integer rentingMonth;
+
+    /**
+     * 建筑面积
+     */
+    @ApiModelProperty(value = "建筑面积")
+    private String constructArea;
+
+    /**
+     * 房型
+     */
+    @ApiModelProperty(value = "房型")
+    private String roomType;
+
+    /**
+     * 月租金
+     */
+    @ApiModelProperty(value = "月租金")
+    private BigDecimal monthlyRentMoney;
+
+    /**
+     * 保证金
+     */
+    @ApiModelProperty(value = "保证金")
+    private BigDecimal depositAmount;
+
+    /**
+     * 服务费
+     */
+    @ApiModelProperty(value = "服务费")
+    private BigDecimal serverCharge;
+
+    /**
+     * 定金
+     */
+    @ApiModelProperty(value = "定金")
+    private BigDecimal dingAmount;
+
+    /**
+     * 支付定金的订单号
+     */
+    @ApiModelProperty(value = "支付定金的订单号")
+    private String preOrderSn;
+
+    /**
+     * 支付的定金的订单备注
+     */
+    @ApiModelProperty(value = "支付的定金的订单备注")
+    private String preOrderNote;
+
+    /**
+     * 订单是否已经平台结算
+     */
+    @ApiModelProperty(value = "订单是否已经平台结算")
+    private String settingFlag;
+
+    /**
+     * 结算金额
+     */
+    @ApiModelProperty(value = "结算金额")
+    private BigDecimal settingAmount;
+
+    /**
+     * 计算订单号
+     */
+    @ApiModelProperty(value = "计算订单号")
+    private String settingSn;
+
+    /**
+     * 平台结算时间
+     */
+    @ApiModelProperty(value = "平台结算时间")
+    private Date settingDate;
+
+    /**
+     * 总楼层
+     */
+    @ApiModelProperty(value = "总楼层")
+    private String totalFloor;
+
+    /**
+     * 朝向
+     */
+    @ApiModelProperty(value = "朝向")
+    private String orientation;
+
+    /**
+     * 装饰
+     */
+    @ApiModelProperty(value = "装饰")
+    private String decoration;
+
+    /**
+     * 房内物品
+     */
+    @ApiModelProperty(value = "房内物品")
+    private String hourseItem;
+
+    /**
+     * 房主姓名
+     */
+    @ApiModelProperty(value = "房主姓名")
+    private String hourseOwnerName;
+
+    /**
+     * 房主身份证
+     */
+    @ApiModelProperty(value = "房主身份证")
+    private String hourseIdCard;
+
+    /**
+     * 房主电话
+     */
+    @ApiModelProperty(value = "房主电话")
+    private String hoursePhone;
+
+    /**
+     * 租客的用户ID,微信用户类型
+     */
+    @ApiModelProperty(value = "租客的用户ID,微信用户类型")
+    private Long rentingUserId;
+
+    /**
+     * 租赁开始时间
+     */
+    @ApiModelProperty(value = "租赁开始时间")
+    private Date startDate;
+
+    /**
+     * 租赁结束时间
+     */
+    @ApiModelProperty(value = "租赁结束时间")
+    private Date endDate;
+
+    /**
+     * 合同内容
+     */
+    @ApiModelProperty(value = "合同内容")
+    private String contractText;
+
+    /**
+     * 已支付定金金额(已经下定金的金额)
+     */
+    @ApiModelProperty(value = "已支付定金金额(已经下定金的金额)")
+    private BigDecimal payedDingMoney;
+
+    /**
+     * 订单最终金额
+     */
+    @ApiModelProperty(value = "订单最终金额")
+    private BigDecimal totalAccount;
+
+    /**
+     * 1、订单未支付2、订单已支付3、待房东签约4、房东已签约,合同生效5、已退款
+     */
+    @ApiModelProperty(value = "1、订单未支付2、订单已支付3、待房东签约4、房东已签约,合同生效5、已退款")
+    private Integer status;
+
+    /**
+     * 创建者
+     */
+    @ApiModelProperty(value = "创建者")
+    private Long createUser;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createDate;
+
+    /**
+     * 房屋登记ID
+     */
+    @ApiModelProperty(value = "房屋登记ID")
+    private Long registerId;
+
+    /**
+     * 图片
+     */
+    @ApiModelProperty(value = "图片")
+    private String url;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/rentHouse/RentingHoursePreOrderVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/rentHouse/RentingHoursePreOrderVO.java
new file mode 100644
index 0000000..af9086c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/rentHouse/RentingHoursePreOrderVO.java
@@ -0,0 +1,102 @@
+package com.panzhihua.common.model.vos.community.rentHouse;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel
+public class RentingHoursePreOrderVO {
+    private Long id;
+
+    /**
+     * 订单SN号
+     */
+    @ApiModelProperty(value = "订单SN号")
+    private String orderSn;
+
+    /**
+     * 房屋登记ID
+     */
+    @ApiModelProperty(value = "房屋登记ID")
+    private Long registerId;
+
+    /**
+     * 定金
+     */
+    @ApiModelProperty(value = "定金")
+    private BigDecimal dingMoney;
+
+    /**
+     * 合同内容
+     */
+    @ApiModelProperty(value = "合同内容")
+    private String contractText;
+
+    /**
+     * 1 已缴纳定金,待抵扣 2、合同已签订,定金已抵扣 3、房东未按时处理,定金已退款  2、已退还定金 3、未按时去和房东签约订单过期,定金不退,已失效
+     */
+    @ApiModelProperty(value = "1 已缴纳定金,待抵扣 2、合同已签订,定金已抵扣 3、房东未按时处理,定金已退款  2、已退还定金 3、未按时去和房东签约订单过期,定金不退,已失效")
+    private Integer status;
+
+    /**
+     * 定金保留时间
+     */
+    @ApiModelProperty(value = "定金保留时间")
+    private Date expireDate;
+
+    /**
+     * 房东扫描的时候绑定微信APPID
+     */
+    @ApiModelProperty(value = "房东扫描的时候绑定微信APPID")
+    private String hourseOwnerWeixinAppid;
+
+    /**
+     * 房东的用户ID,用户表记录了房东的详细信息
+     */
+    @ApiModelProperty(value = "房东的用户ID,用户表记录了房东的详细信息")
+    private Long hourseOwnerUserId;
+
+    /**
+     * 租客的微信APPID
+     */
+    @ApiModelProperty(value = "租客的微信APPID")
+    private String tenantWeixinAppid;
+
+    /**
+     * 租客的用户ID,房东的用户ID,用户表记录了租客的详细信息
+     */
+    @ApiModelProperty(value = "租客的用户ID,房东的用户ID,用户表记录了租客的详细信息")
+    private Long tenantUserId;
+
+    /**
+     * 创建者
+     */
+    @ApiModelProperty(value = "创建者")
+    private Long createUser;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createDate;
+
+    @ApiModelProperty(value = "流水号")
+    private String paySn;
+
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    @ApiModelProperty(value = "房屋名称")
+    private String villageName;
+
+    @ApiModelProperty(value = "图片")
+    private String url;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/rentHouse/WxPayNotifyOrderVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/rentHouse/WxPayNotifyOrderVO.java
new file mode 100644
index 0000000..e00d9f9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/rentHouse/WxPayNotifyOrderVO.java
@@ -0,0 +1,42 @@
+package com.panzhihua.common.model.vos.community.rentHouse;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel
+public class WxPayNotifyOrderVO {
+    @ApiModelProperty("订单号")
+    private String orderSn;
+
+    /**
+     * 支付类型
+     */
+    @ApiModelProperty(value = "支付类型")
+    private String payType;
+
+    /**
+     * 支付时间
+     */
+    @ApiModelProperty(value = "支付时间")
+    private Date payDate;
+
+    /**
+     * 支付金额
+     */
+    @ApiModelProperty(value = "支付金额")
+    private BigDecimal payAmount;
+
+    /**
+     * 支付返回内容
+     */
+    @ApiModelProperty(value = "支付返回内容")
+    private String payReturnText;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/rentHouse/WxPayOrderVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/rentHouse/WxPayOrderVO.java
new file mode 100644
index 0000000..69fc3e4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/rentHouse/WxPayOrderVO.java
@@ -0,0 +1,17 @@
+package com.panzhihua.common.model.vos.community.rentHouse;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel
+public class WxPayOrderVO {
+    @ApiModelProperty("订单号")
+    private String orderSn;
+    @ApiModelProperty("openId")
+    private String openId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/rentingHouses/RentingHouseRegisterVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/rentingHouses/RentingHouseRegisterVO.java
new file mode 100644
index 0000000..afa6764
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/rentingHouses/RentingHouseRegisterVO.java
@@ -0,0 +1,157 @@
+package com.panzhihua.common.model.vos.community.rentingHouses;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.panzhihua.common.validated.AddGroup;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.Pattern;
+
+/**
+ * @title: RentingHousesConfigVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 房屋租赁配置信息
+ * @author: hans
+ * @date: 2021/11/23 14:13
+ */
+@Data
+@ApiModel("房屋租赁配置信息")
+public class RentingHouseRegisterVO {
+
+    @ApiModelProperty(value = "id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty(value = "楼层号")
+    private String floor;
+
+    @ApiModelProperty(value = "总楼层")
+    private String totalFloor;
+
+    @ApiModelProperty(value = "房屋地址")
+    private String address;
+
+    @ApiModelProperty(value = "认证状态(1、未认证2、已认证)")
+    private Integer authStatus;
+
+    @ApiModelProperty(value = "认证码")
+    private String authCode;
+
+    @ApiModelProperty(value = "房屋状态(1、待发布 2、已发布,待出租2、出租中3、已退租")
+    private Integer status;
+
+    @ApiModelProperty(value = "1、待认证2、待发布3、待出租4、保留中 5出租中6、已超时7、已到期)")
+    private Integer detailStatus;
+
+    @ApiModelProperty(value = "建筑面积")
+    private BigDecimal constructArea;
+
+    @ApiModelProperty(value = "租房标题")
+    private String title;
+
+    @ApiModelProperty(value = "室数量")
+    private Integer brn;
+
+    @ApiModelProperty(value = "厅数量")
+    private Integer lrn;
+
+    @ApiModelProperty(value = "卫数量")
+    private Integer wcn;
+
+    @ApiModelProperty(value = "月租金")
+    private BigDecimal monthlyRentMoney;
+
+    @ApiModelProperty(value = "朝向(1东2南3西4北5东南6东北7西南8西北9南北10东西)")
+    private Integer orientation;
+
+    @ApiModelProperty(value = "装修情况(1.毛坯房 2.简装 3.精装修)")
+    private Integer decoration;
+
+    @ApiModelProperty(value = "房屋标签")
+    private String label;
+
+    @ApiModelProperty(value = "看房时间(1.随时看房 2.提前预约)")
+    private Integer seeHourseDate;
+
+    @ApiModelProperty(value = "房屋介绍")
+    private String hourseDescription;
+
+    @ApiModelProperty(value = "入住要求")
+    private String checkInRequirement;
+
+    @ApiModelProperty(value = "房内物品")
+    private String hourseItem;
+
+    @ApiModelProperty(value = "房主姓名")
+    private String hourseOwnerName;
+
+    @ApiModelProperty(value = "房主身份证")
+    private String hourseIdCard;
+
+    @ApiModelProperty(value = "房主电话")
+    private String hoursePhone;
+
+    @ApiModelProperty(value = "保证金")
+    private BigDecimal depositMoney;
+
+    @ApiModelProperty(value = "服务费")
+    private BigDecimal serverCharge;
+
+    @ApiModelProperty(value = "定金")
+    private BigDecimal dingMoney;
+
+    @ApiModelProperty(value = "看房电话")
+    private String seeHourseTelephone;
+
+    @ApiModelProperty(value = "房源封面展示图片")
+    private String url;
+
+    @ApiModelProperty(value = "房源图片")
+    private List<String> housePictures;
+
+    @ApiModelProperty(value = "产权证明")
+    private List<String> propertyPictures;
+
+    @ApiModelProperty(value = "证件照片")
+    private List<String> credentialsPictures;
+
+    @ApiModelProperty(value = "房屋委托代理合同")
+    private String houseAgencyContract;
+
+    @ApiModelProperty(value = "小区名称")
+    private String villageName;
+
+    @ApiModelProperty(value = "街/路/巷")
+    private String alley;
+
+    @ApiModelProperty(value = "街/路/巷号")
+    private String houseNum;
+
+    @ApiModelProperty(value = "楼栋号")
+    private String buildingNo;
+
+    @ApiModelProperty(value = "单元号")
+    private String unitNo;
+
+    @ApiModelProperty(value = "户室(房间号)")
+    private String houseNo;
+
+    @ApiModelProperty(value = "房屋的经度")
+    private String longitude;
+
+    @ApiModelProperty(value = "房屋的纬度")
+    private String latitude;
+
+    @ApiModelProperty(value = "是否是房东(1.是 2.否)")
+    private Integer isLandlord;
+
+    @ApiModelProperty(value = "租客电话")
+    private String tenantTelephone;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/rentingHouses/RentingHousesConfigVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/rentingHouses/RentingHousesConfigVO.java
new file mode 100644
index 0000000..9d28676
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/rentingHouses/RentingHousesConfigVO.java
@@ -0,0 +1,40 @@
+package com.panzhihua.common.model.vos.community.rentingHouses;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+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;
+
+/**
+ * @title: RentingHousesConfigVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 房屋租赁配置信息
+ * @author: hans
+ * @date: 2021/11/23 14:13
+ */
+@Data
+@ApiModel("房屋租赁配置信息")
+public class RentingHousesConfigVO {
+
+    @ApiModelProperty("id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("配置名称")
+    private String name;
+
+    @ApiModelProperty("配置项目")
+    private String key;
+
+    @ApiModelProperty("配置内容")
+    private String value;
+
+    @ApiModelProperty("上次修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date modifyDate;
+}
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..c512ced
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveAppletsVO.java
@@ -0,0 +1,147 @@
+package com.panzhihua.common.model.vos.community.reserve;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+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
+     */
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 社区id
+     */
+    @JsonSerialize(using = ToStringSerializer.class)
+    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/ComActReserveDangerAreaVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveDangerAreaVO.java
new file mode 100644
index 0000000..9f83589
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveDangerAreaVO.java
@@ -0,0 +1,76 @@
+package com.panzhihua.common.model.vos.community.reserve;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * (ComActReserveDangerArea)表实体类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 相关功能
+ *
+ * @author zzj
+ * @since 2022-04-07 14:22:20
+ */
+@Data
+@ApiModel("风险区列表实体")
+public class ComActReserveDangerAreaVO implements Serializable {
+
+    private static final long serialVersionUID = -25840459480337775L;
+
+    private Long id;
+
+    /**
+     * 类型 1中风险 2高风险
+     */
+    @ApiModelProperty(value = "类型 1中风险 2高风险")
+    private Integer type;
+
+    /**
+     * 省市区全称
+     */
+    @ApiModelProperty(value = "省市区全称")
+    private String areaName;
+
+    /**
+     * 市
+     */
+    @ApiModelProperty(value = "市")
+    private String county;
+
+    /**
+     * 省
+     */
+    @ApiModelProperty(value = "省")
+    private String province;
+
+    /**
+     * 区
+     */
+    @ApiModelProperty(value = "区")
+    private String city;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date createTime;
+
+    /**
+     * 筛查时间
+     */
+    @ApiModelProperty(value = "筛查时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date screenTime;
+
+}
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
new file mode 100644
index 0000000..87f1ae5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveDetailAdminVO.java
@@ -0,0 +1,67 @@
+package com.panzhihua.common.model.vos.community.reserve;
+
+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 ComActReserveDetailAdminVO {
+
+    @ApiModelProperty("预约登记id")
+    private Long id;
+
+    @ApiModelProperty("社区id")
+    private Long communityId;
+
+    @ApiModelProperty("类型(1.预约 2.登记)")
+    private Integer type;
+
+    @ApiModelProperty("主题")
+    private String title;
+
+    @ApiModelProperty("浏览量")
+    private Integer viewNum;
+
+    @ApiModelProperty("限定参加人总数")
+    private Integer joinAllCount;
+
+    @ApiModelProperty("参加人数")
+    private Integer joinCount;
+
+    @ApiModelProperty("广告位置")
+    private String advertPosition;
+
+    @ApiModelProperty("状态(1.待发布 2.进行中 3.已停止)")
+    private Integer status;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("发布时间")
+    private Date publishTime;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("创建时间")
+    private Date createAt;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("结束时间")
+    private Date endTime;
+
+    @ApiModelProperty("是否是首页顶部(1.是 2.否)")
+    private Integer adverPositionTop;
+
+    @ApiModelProperty("是否是首页应用(1.是 2.否)")
+    private Integer adverPositionApplication;
+
+    @ApiModelProperty("组件json数据")
+    private String jsonObject;
+
+    @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/ComActReserveDetailVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveDetailVO.java
new file mode 100644
index 0000000..6be6238
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveDetailVO.java
@@ -0,0 +1,134 @@
+package com.panzhihua.common.model.vos.community.reserve;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class ComActReserveDetailVO {
+    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;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date reserveTime;
+
+    private Integer recordStatus;
+
+    /**
+     * 是否已删除(1.是 2.否)
+     */
+    private Integer isDel;
+
+    private Integer isOk;
+    /**
+     * 是否重复(1.是 2.否)
+     */
+    public interface isOk{
+        int y=1;
+        int n=2;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveListAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveListAdminVO.java
new file mode 100644
index 0000000..64226d9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveListAdminVO.java
@@ -0,0 +1,64 @@
+package com.panzhihua.common.model.vos.community.reserve;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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.util.Date;
+
+@Data
+@ApiModel("预约登记返回参数")
+public class ComActReserveListAdminVO {
+
+    @ApiModelProperty("预约登记id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("社区id")
+    private Long communityId;
+
+    @ApiModelProperty("类型(1.预约 2.登记)")
+    private Integer type;
+
+    @ApiModelProperty("主题")
+    private String title;
+
+    @ApiModelProperty("浏览量")
+    private Integer viewNum;
+
+    @ApiModelProperty("限定参加人总数")
+    private Integer joinAllCount;
+
+    @ApiModelProperty("参加人数")
+    private Integer joinCount;
+
+    @ApiModelProperty("广告位置")
+    private String advertPosition;
+
+    @ApiModelProperty("状态(1.待发布 2.进行中 3.已停止)")
+    private Integer status;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("发布时间")
+    private Date publishTime;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("创建时间")
+    private Date createAt;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("结束时间")
+    private Date endTime;
+
+    @ApiModelProperty("是否是首页顶部(1.是 2.否)")
+    private Integer adverPositionTop;
+
+    @ApiModelProperty("是否是首页应用(1.是 2.否)")
+    private Integer adverPositionApplication;
+
+    @ApiModelProperty("社区名称")
+    private String communityName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeDetailAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeDetailAdminVO.java
new file mode 100644
index 0000000..08969a2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeDetailAdminVO.java
@@ -0,0 +1,47 @@
+package com.panzhihua.common.model.vos.community.reserve;
+
+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 ComActReserveMakeDetailAdminVO {
+
+    @ApiModelProperty("用户昵称")
+    private String nickName;
+
+    @ApiModelProperty("预约人")
+    private String name;
+
+    @ApiModelProperty("联系电话")
+    private String phone;
+
+    @ApiModelProperty("预约时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date reserveTime;
+
+    @ApiModelProperty("预约内容")
+    private String content;
+
+    @ApiModelProperty("备注")
+    private String remark;
+
+    @ApiModelProperty("社区备注")
+    private String actRemark;
+
+    @ApiModelProperty("提交时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("操作记录")
+    private List<ComActReserveMakeOperationAdminVO> operationList;
+
+    @ApiModelProperty("处理人/备注人")
+    private String handleName;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeDetailedExcelAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeDetailedExcelAdminVO.java
new file mode 100644
index 0000000..7e7f05f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeDetailedExcelAdminVO.java
@@ -0,0 +1,37 @@
+package com.panzhihua.common.model.vos.community.reserve;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 预约明细导出返回对象
+ */
+@Data
+public class ComActReserveMakeDetailedExcelAdminVO {
+
+    @ExcelProperty(value = "用户昵称" ,index = 0)
+    private String nickName;
+    @ExcelProperty(value = "预约人" ,index = 1)
+    private String name;
+    @ExcelProperty(value = "联系电话" ,index = 2)
+    private String phone;
+    @ExcelProperty(value = "预约时间" ,index = 3)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date reserveTime;
+    @ExcelProperty(value = "预约内容" ,index = 4)
+    private String content;
+    @ExcelProperty(value = "备注人" ,index = 5)
+    private String handleName;
+    @ExcelProperty(value = "社区备注" ,index = 6)
+    private String actRemark;
+    @ExcelProperty(value = "提交时间" ,index = 7)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeHandleExcelAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeHandleExcelAdminVO.java
new file mode 100644
index 0000000..0b751ea
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeHandleExcelAdminVO.java
@@ -0,0 +1,49 @@
+package com.panzhihua.common.model.vos.community.reserve;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+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 ComActReserveMakeHandleExcelAdminVO {
+
+    @ExcelProperty(value = "用户昵称" ,index = 0)
+    private String nickName;
+
+    @ExcelProperty(value = "预约登记主题" ,index = 1)
+    private String title;
+
+    @ExcelProperty(value = "预约人" ,index = 2)
+    private String name;
+
+    @ExcelProperty(value = "联系电话" ,index = 3)
+    private String phone;
+
+    @ExcelProperty(value = "预约时间" ,index = 4)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date reserveTime;
+
+    @ExcelProperty(value = "预约内容" ,index = 5)
+    private String content;
+
+    @ExcelProperty(value = "备注人" ,index = 6)
+    private String handleName;
+
+    @ExcelProperty(value = "社区备注" ,index = 7)
+    private String actRemark;
+
+    @ExcelProperty(value = "提交时间" ,index = 8)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ExcelProperty(value = "状态" ,index = 9)
+    private String status;
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeHandleListAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeHandleListAdminVO.java
new file mode 100644
index 0000000..47923fe
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeHandleListAdminVO.java
@@ -0,0 +1,52 @@
+package com.panzhihua.common.model.vos.community.reserve;
+
+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 ComActReserveMakeHandleListAdminVO {
+
+    @ApiModelProperty("预约记录id")
+    private Long id;
+
+    @ApiModelProperty("用户昵称")
+    private String nickName;
+
+    @ApiModelProperty("预约人")
+    private String name;
+
+    @ApiModelProperty("联系电话")
+    private String phone;
+
+    @ApiModelProperty("预约时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date reserveTime;
+
+    @ApiModelProperty("预约内容")
+    private String content;
+
+    @ApiModelProperty("备注")
+    private String remark;
+
+    @ApiModelProperty("社区备注")
+    private String actRemark;
+
+    @ApiModelProperty("提交时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("状态(1.待处理 2.预约成功 3.预约失败 4.已取消)")
+    private Integer status;
+
+    @ApiModelProperty("预约登记主题")
+    private String title;
+
+    @ApiModelProperty("处理人/备注人")
+    private String handleName;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeLeftStatisticsAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeLeftStatisticsAdminVO.java
new file mode 100644
index 0000000..0c32ba2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeLeftStatisticsAdminVO.java
@@ -0,0 +1,17 @@
+package com.panzhihua.common.model.vos.community.reserve;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("预约统计左边返回参数")
+public class ComActReserveMakeLeftStatisticsAdminVO {
+
+    @ApiModelProperty("预约日期(格式:yyyy-MM-dd)")
+    private String reserveTime;
+
+    @ApiModelProperty("预约数量")
+    private Integer count;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeListAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeListAdminVO.java
new file mode 100644
index 0000000..623bfab
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeListAdminVO.java
@@ -0,0 +1,46 @@
+package com.panzhihua.common.model.vos.community.reserve;
+
+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 ComActReserveMakeListAdminVO {
+
+    @ApiModelProperty("预约记录id")
+    private Long id;
+
+    @ApiModelProperty("用户昵称")
+    private String nickName;
+
+    @ApiModelProperty("预约人")
+    private String name;
+
+    @ApiModelProperty("联系电话")
+    private String phone;
+
+    @ApiModelProperty("预约时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date reserveTime;
+
+    @ApiModelProperty("预约内容")
+    private String content;
+
+    @ApiModelProperty("备注")
+    private String remark;
+
+    @ApiModelProperty("社区备注")
+    private String actRemark;
+
+    @ApiModelProperty("提交时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("处理人/备注人")
+    private String handleName;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeOperationAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeOperationAdminVO.java
new file mode 100644
index 0000000..216906c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeOperationAdminVO.java
@@ -0,0 +1,50 @@
+package com.panzhihua.common.model.vos.community.reserve;
+
+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 ComActReserveMakeOperationAdminVO {
+
+    @ApiModelProperty("预约登记id")
+    private Long reserveId;
+
+    @ApiModelProperty("预约登记记录id")
+    private Long reserveRecordId;
+
+    @ApiModelProperty("用户id")
+    private Long userId;
+
+    @ApiModelProperty("类型(1.本人操作 2.社区操作)")
+    private Integer type;
+
+    @ApiModelProperty("预约人手机号")
+    private String phone;
+
+    @ApiModelProperty("操作内容")
+    private String reserveContent;
+
+    @ApiModelProperty("操作时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date reserveTime;
+
+    @ApiModelProperty("备注")
+    private String remark;
+
+    @ApiModelProperty("状态(1.提交 2.预约成功 3.预约失败 4.取消)")
+    private Integer status;
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("操作人")
+    private String createByName;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeRightExcelAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeRightExcelAdminVO.java
new file mode 100644
index 0000000..a290eda
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeRightExcelAdminVO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.vos.community.reserve;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * 预约统计汇总导出返回对象
+ */
+@Data
+public class ComActReserveMakeRightExcelAdminVO {
+
+    @ExcelProperty(value = "日期" ,index = 0)
+    private String reserveTime;
+    @ExcelProperty(value = "预约主题" ,index = 1)
+    private String title;
+    @ExcelProperty(value = "所占百分比" ,index = 2)
+    private BigDecimal tag;
+    @ExcelProperty(value = "预约量" ,index = 3)
+    private Integer count;
+    @ExcelProperty(value = "合计" ,index = 4)
+    private Integer allCount;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeRightStatisticsAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeRightStatisticsAdminVO.java
new file mode 100644
index 0000000..58fc633
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeRightStatisticsAdminVO.java
@@ -0,0 +1,28 @@
+package com.panzhihua.common.model.vos.community.reserve;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ApiModel("预约统计右边返回参数")
+public class ComActReserveMakeRightStatisticsAdminVO {
+
+    @ApiModelProperty("日期(格式:yyyy-MM-dd)")
+    private String reserveTime;
+
+    @ApiModelProperty("预约主题")
+    private String title;
+
+    @ApiModelProperty("所占百分比")
+    private BigDecimal tag;
+
+    @ApiModelProperty("预约数量")
+    private Integer count;
+
+    @ApiModelProperty("预约量合计")
+    private Integer allCount;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeStatisticsAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeStatisticsAdminVO.java
new file mode 100644
index 0000000..5e28f1a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveMakeStatisticsAdminVO.java
@@ -0,0 +1,18 @@
+package com.panzhihua.common.model.vos.community.reserve;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel("预约登记返回参数")
+public class ComActReserveMakeStatisticsAdminVO {
+
+    @ApiModelProperty("预约日期数量统计数据")
+    private List<ComActReserveMakeLeftStatisticsAdminVO> leftStatisticsList;
+
+    @ApiModelProperty("预约统计汇总-右边统计数据")
+    private List<ComActReserveMakeRightStatisticsAdminVO> rightStatisticsList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveRecordListVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveRecordListVO.java
new file mode 100644
index 0000000..0372d9d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveRecordListVO.java
@@ -0,0 +1,98 @@
+package com.panzhihua.common.model.vos.community.reserve;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class ComActReserveRecordListVO {
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 预约登记id
+     */
+    private Long reserveId;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 类型(1.预约 2.登记)
+     */
+    private Integer type;
+
+    /**
+     * 提交人名称
+     */
+    private String name;
+
+    /**
+     * 提交人手机号
+     */
+    private String phone;
+
+    /**
+     * 状态(1.待处理 2.预约成功 3.预约失败 4.已取消)
+     */
+    private Integer status;
+
+    /**
+     * 内容
+     */
+    private String content;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 社区备注
+     */
+    private String actRemark;
+
+    /**
+     * 预约时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date reserveTime;
+
+    /**
+     * 用户填报json数据
+     */
+    private String jsonObject;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    /**
+     * 创建人
+     */
+    private Long createBy;
+
+    /**
+     * 修改时间
+     */
+    private Date updateAt;
+
+    /**
+     * 修改人
+     */
+    private Long updateBy;
+
+    /**
+     * 标题
+     */
+    private String title;
+}
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
new file mode 100644
index 0000000..a343327
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveRegisterDetailedAnswerVO.java
@@ -0,0 +1,26 @@
+package com.panzhihua.common.model.vos.community.reserve;
+
+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 ComActReserveRegisterDetailedAnswerVO {
+
+    @ApiModelProperty("题目id")
+    private Long reserveSubId;
+
+    @ApiModelProperty("题目内容")
+    private String reserveSubContent;
+
+    @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/ComActReserveRegisterDetailedVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveRegisterDetailedVO.java
new file mode 100644
index 0000000..ef5601e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveRegisterDetailedVO.java
@@ -0,0 +1,36 @@
+package com.panzhihua.common.model.vos.community.reserve;
+
+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 ComActReserveRegisterDetailedVO {
+
+    @ApiModelProperty("流水号")
+    private Long id;
+
+    @ApiModelProperty("用户昵称")
+    private String nickName;
+
+    @ApiModelProperty("身份")
+    private String identity;
+
+    @ApiModelProperty("提交时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("是否是党员(0.否 1.是)")
+    private Integer isPartymember;
+
+    @ApiModelProperty("是否是志愿者(0.否 1.是)")
+    private Integer isVolunteer;
+
+    @ApiModelProperty("答案列表")
+    private List<ComActReserveRegisterDetailedAnswerVO> answerList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveRegisterExcelAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveRegisterExcelAdminVO.java
new file mode 100644
index 0000000..e0e01b8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveRegisterExcelAdminVO.java
@@ -0,0 +1,23 @@
+package com.panzhihua.common.model.vos.community.reserve;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 登记统计汇总导出返回对象
+ */
+@Data
+public class ComActReserveRegisterExcelAdminVO {
+
+    @ExcelProperty(value = "登记主题" ,index = 0)
+    private String title;
+    @ExcelProperty(value = "所占百分比" ,index = 1)
+    private BigDecimal tag;
+    @ExcelProperty(value = "登记量" ,index = 2)
+    private Integer count;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveRegisterStatisticsAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveRegisterStatisticsAdminVO.java
new file mode 100644
index 0000000..aea132c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveRegisterStatisticsAdminVO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.vos.community.reserve;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+@ApiModel("登记统计汇总返回参数")
+public class ComActReserveRegisterStatisticsAdminVO {
+
+    @ApiModelProperty("登记主题")
+    private String title;
+
+    @ApiModelProperty("所占百分比")
+    private BigDecimal tag;
+
+    @ApiModelProperty("登记量")
+    private Integer count;
+
+    @ApiModelProperty("登记总量")
+    private Integer allCount;
+}
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
new file mode 100644
index 0000000..eadc4c3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComActReserveSubListVO.java
@@ -0,0 +1,27 @@
+package com.panzhihua.common.model.vos.community.reserve;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("登记题目列表返回参数返回参数")
+public class ComActReserveSubListVO {
+
+    @ApiModelProperty("题目id")
+    private String id;
+
+    @ApiModelProperty("题目内容")
+    private String content;
+
+    @ApiModelProperty("类型 0 单选  1 多选 2 输入框  3 手机号 4 身份证 5 文字描述 6 日期选择 7 时间选择 8 可换行的输入框 9姓名输入框")
+    private Integer type;
+
+    public ComActReserveSubListVO() {
+    }
+
+    public ComActReserveSubListVO(String id, String content){
+        this.id = id;
+        this.content = content;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComOperationDetailVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComOperationDetailVO.java
new file mode 100644
index 0000000..9e81c39
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComOperationDetailVO.java
@@ -0,0 +1,15 @@
+package com.panzhihua.common.model.vos.community.reserve;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel
+public class ComOperationDetailVO {
+    private List<ComOperationListVO> list;
+    @ApiModelProperty("1可以继续 2不能继续")
+    private Integer isContinue =2;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComOperationListVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComOperationListVO.java
new file mode 100644
index 0000000..dfd5177
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ComOperationListVO.java
@@ -0,0 +1,68 @@
+package com.panzhihua.common.model.vos.community.reserve;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class ComOperationListVO {
+    private Long id;
+
+    /**
+     * 预约登记id
+     */
+    private Long reserveId;
+
+    /**
+     * 预约登记记录id
+     */
+    private Long reserveRecordId;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 类型(1.本人操作 2.社区操作)
+     */
+    private Integer type;
+
+    /**
+     * 操作人手机号
+     */
+    private String phone;
+
+    /**
+     * 操作时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date reserveTime;
+
+    /**
+     * 操作内容
+     */
+    private String reserveContent;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 状态(1.提交 2.预约成功 3.预约失败 4.取消)
+     */
+    private Integer status;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    /**
+     * 创建人
+     */
+    private Long createBy;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/DangerAreaStatics.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/DangerAreaStatics.java
new file mode 100644
index 0000000..fa52059
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/DangerAreaStatics.java
@@ -0,0 +1,17 @@
+package com.panzhihua.common.model.vos.community.reserve;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel("风险区数据统计")
+public class DangerAreaStatics {
+    @ApiModelProperty("中风险区")
+    private Integer middleCount;
+    @ApiModelProperty("高风险区")
+    private Integer highCount;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/FiveCount.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/FiveCount.java
new file mode 100644
index 0000000..3a829ad
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/FiveCount.java
@@ -0,0 +1,17 @@
+package com.panzhihua.common.model.vos.community.reserve;
+
+import lombok.Data;
+
+/**
+ * @author zzj
+ */
+@Data
+public class FiveCount {
+    private Integer allCount;
+    private Integer dangerCount;
+    private Integer redMark;
+    private Integer yellowMark;
+    private Integer greenMark;
+    private Integer travelCount;
+    private Integer outsideCount;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/HomeQuarantineRegisterExportVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/HomeQuarantineRegisterExportVO.java
new file mode 100644
index 0000000..23d6172
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/HomeQuarantineRegisterExportVO.java
@@ -0,0 +1,27 @@
+package com.panzhihua.common.model.vos.community.reserve;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.ComActQuestnaireSubVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: HomeQuarantineRegisterExportVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 居家隔离统计导出信息
+ * @author: hans
+ * @date: 2021/11/18 14:54
+ */
+@Data
+@ApiModel("居家隔离统计导出信息")
+public class HomeQuarantineRegisterExportVO {
+
+    @ApiModelProperty("题目列表")
+    private List<ComActQuestnaireSubVO> subs;
+
+    @ApiModelProperty("数据集")
+    private List<List<Object>> dataList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/HomeQuarantineRegisterStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/HomeQuarantineRegisterStatisticsVO.java
new file mode 100644
index 0000000..5fc9da8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/HomeQuarantineRegisterStatisticsVO.java
@@ -0,0 +1,46 @@
+package com.panzhihua.common.model.vos.community.reserve;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: HomeQuarantineRegisterStatisticsVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 居家隔离统计信息
+ * @author: hans
+ * @date: 2021/11/17 15:25
+ */
+@Data
+@ApiModel("居家隔离统计信息")
+public class HomeQuarantineRegisterStatisticsVO {
+
+    @ApiModelProperty("记录id")
+    private Long id;
+
+    @ApiModelProperty("用户id")
+    private Long userId;
+
+    @ApiModelProperty("开始登记时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("用户昵称")
+    private String nickName;
+
+    @ApiModelProperty("题目")
+    private String reserveSubContent;
+
+    @ApiModelProperty("答案")
+    private String answerContent;
+
+    @ApiModelProperty("题目id")
+    private Long reserveSubId;
+
+    @ApiModelProperty("选项类型(0 单选  1 多选 2 输入框  3 手机号 4 身份证 5 文字描述 6 日期选择 7 时间选择 8 可换行的输入框 9姓名输入框 10图片选择 11文件上传 12签名)")
+    private Integer optionType;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ReservePdfExportVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ReservePdfExportVO.java
new file mode 100644
index 0000000..ad1b99f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/reserve/ReservePdfExportVO.java
@@ -0,0 +1,13 @@
+package com.panzhihua.common.model.vos.community.reserve;
+
+import lombok.Data;
+
+@Data
+public class ReservePdfExportVO {
+    private String name;
+    private String time;
+    private String phone;
+    private String sign;
+    private String communityPhone;
+    private String address;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/civil/CivilConvenienceStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/civil/CivilConvenienceStatisticsVO.java
new file mode 100644
index 0000000..436bf52
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/civil/CivilConvenienceStatisticsVO.java
@@ -0,0 +1,34 @@
+package com.panzhihua.common.model.vos.community.screen.civil;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("民生统计便民服务返回参数")
+public class CivilConvenienceStatisticsVO {
+
+    @ApiModelProperty("办事指南")
+    private Integer guideNum;
+
+    @ApiModelProperty("疫情防控")
+    private Integer situationNum;
+
+    @ApiModelProperty("房屋租赁")
+    private Integer leaseNum;
+
+    @ApiModelProperty("报事报修")
+    private Integer repairNum;
+
+    @ApiModelProperty("养老认证")
+    private Integer pensionNum;
+
+    @ApiModelProperty("高龄认证")
+    private Integer eldersNum;
+
+    @ApiModelProperty("低保认证")
+    private Integer subsistenceNum;
+
+    @ApiModelProperty("高龄补贴")
+    private Integer allowanceNum;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/civil/CivilGovernmentStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/civil/CivilGovernmentStatisticsVO.java
new file mode 100644
index 0000000..be38481
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/civil/CivilGovernmentStatisticsVO.java
@@ -0,0 +1,34 @@
+package com.panzhihua.common.model.vos.community.screen.civil;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("民生统计社区治理返回参数")
+public class CivilGovernmentStatisticsVO {
+
+    @ApiModelProperty("通知公告")
+    private Integer noticeNum;
+
+    @ApiModelProperty("议事投票")
+    private Integer discussNum;
+
+    @ApiModelProperty("随手拍")
+    private Integer easyNum;
+
+    @ApiModelProperty("邻里圈")
+    private Integer neighborNum;
+
+    @ApiModelProperty("居民活动")
+    private Integer activityNum;
+
+    @ApiModelProperty("社区动态")
+    private Integer dynNum;
+
+    @ApiModelProperty("爱心义仓")
+    private Integer loveNum;
+
+    @ApiModelProperty("居民留言板")
+    private Integer messageNum;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/civil/CivilGridStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/civil/CivilGridStatisticsVO.java
new file mode 100644
index 0000000..31cdf0a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/civil/CivilGridStatisticsVO.java
@@ -0,0 +1,34 @@
+package com.panzhihua.common.model.vos.community.screen.civil;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("民生统计社区治理返回参数")
+public class CivilGridStatisticsVO {
+
+    @ApiModelProperty("今日突发事件")
+    private Integer tfTodayNum;
+
+    @ApiModelProperty("今日治安防控")
+    private Integer zaTodayNum;
+
+    @ApiModelProperty("今日民生服务")
+    private Integer msTodayNum;
+
+    @ApiModelProperty("今日矛盾劝解")
+    private Integer mdTodayNum;
+
+    @ApiModelProperty("今日特殊人群服务")
+    private Integer tsTodayNum;
+
+    @ApiModelProperty("累计事件")
+    private Integer eventNum;
+
+    @ApiModelProperty("电子巡查统计")
+    private Integer xcNum;
+
+    @ApiModelProperty("安全巡查")
+    private Integer securityNum;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/civil/CivilPartyStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/civil/CivilPartyStatisticsVO.java
new file mode 100644
index 0000000..2aad49a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/civil/CivilPartyStatisticsVO.java
@@ -0,0 +1,34 @@
+package com.panzhihua.common.model.vos.community.screen.civil;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("民生统计党建返回参数")
+public class CivilPartyStatisticsVO {
+
+    @ApiModelProperty("社区两委")
+    private Integer committeeNum;
+
+    @ApiModelProperty("党建动态")
+    private Integer dynNum;
+
+    @ApiModelProperty("党建活动")
+    private Integer activityNum;
+
+    @ApiModelProperty("微心愿")
+    private Integer wishNum;
+
+    @ApiModelProperty("双报道党员")
+    private Integer partyNum;
+
+    @ApiModelProperty("党组织")
+    private Integer organizationNum;
+
+    @ApiModelProperty("志愿者团队")
+    private Integer volunteerNum;
+
+    @ApiModelProperty("问卷调查")
+    private Integer questionnaireNum;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/civil/CivilPopulationStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/civil/CivilPopulationStatisticsVO.java
new file mode 100644
index 0000000..171bab7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/civil/CivilPopulationStatisticsVO.java
@@ -0,0 +1,17 @@
+package com.panzhihua.common.model.vos.community.screen.civil;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("民生统计返回参数")
+public class CivilPopulationStatisticsVO {
+
+    @ApiModelProperty("本月特殊人群数量")
+    private Integer specialTotal;
+
+    @ApiModelProperty("上月特殊人群数量")
+    private Integer toMonthSpecialTotal;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/civil/CivilStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/civil/CivilStatisticsVO.java
new file mode 100644
index 0000000..e07bbb3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/civil/CivilStatisticsVO.java
@@ -0,0 +1,44 @@
+package com.panzhihua.common.model.vos.community.screen.civil;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.screen.event.EventGridStatisticsVO;
+import com.panzhihua.common.model.vos.community.screen.index.IndexSpecialStatisticsVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("民生统计返回参数")
+public class CivilStatisticsVO {
+
+    @ApiModelProperty("大屏网格数据")
+    private List<EventGridStatisticsVO> gridStatisticsList;
+
+    @ApiModelProperty("特殊人群统计模块数据")
+    private List<IndexSpecialStatisticsVO> specialStatisticsList;
+
+    @ApiModelProperty("小区列表数据")
+    private List<CivilVillageStatisticsVO> villageStatisticsList;
+
+    @ApiModelProperty("特殊人群总数")
+    private Integer specialNum;
+
+    @ApiModelProperty("环比上月增长率")
+    private BigDecimal rate;
+
+    @ApiModelProperty("党建引领数据")
+    private CivilPartyStatisticsVO civilPartyStatisticsVO;
+
+    @ApiModelProperty("社区治理数据")
+    private CivilGovernmentStatisticsVO civilGovernmentStatisticsVO;
+
+    @ApiModelProperty("网格管理数据")
+    private CivilGridStatisticsVO civilGridStatisticsVO;
+
+    @ApiModelProperty("便民服务数据")
+    private CivilConvenienceStatisticsVO civilConvenienceStatisticsVO;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/civil/CivilVillageStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/civil/CivilVillageStatisticsVO.java
new file mode 100644
index 0000000..8c35d36
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/civil/CivilVillageStatisticsVO.java
@@ -0,0 +1,75 @@
+package com.panzhihua.common.model.vos.community.screen.civil;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+
+import com.panzhihua.common.model.vos.community.screen.index.IndexSpecialStatisticsVO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel("民生统计小区列表返回参数")
+public class CivilVillageStatisticsVO {
+
+    @ApiModelProperty("小区名字")
+    private String name;
+
+    @ApiModelProperty("小区居住人数")
+    private Integer userSum;
+
+    @ApiModelProperty("经度")
+    private String lng;
+
+    @ApiModelProperty("纬度")
+    private String lat;
+
+    @ApiModelProperty("小区图片")
+    private String villageImages;
+
+    @ApiModelProperty("小区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long villageId;
+
+    @ApiModelProperty("总户数")
+    private Integer houseNum;
+
+    @ApiModelProperty("总人数")
+    private Integer peopleNum;
+
+    @ApiModelProperty("户籍人数")
+    private Integer registerNum;
+
+    @ApiModelProperty("流动人数")
+    private Integer flowNum;
+
+    @ApiModelProperty("楼栋长数量")
+    private Integer buildingPeopleNum;
+
+    @ApiModelProperty("居民小组长数量")
+    private Integer smallHeadmanNum;
+
+    @ApiModelProperty("党小组长数量")
+    private Integer partyPeopleNum;
+
+    @ApiModelProperty("妇女小组长数量")
+    private Integer womanPeopleNum;
+
+    @ApiModelProperty("卫生员数量")
+    private Integer hygienePeopleNum;
+
+    @ApiModelProperty("安全员数量")
+    private Integer securityPeopleNum;
+
+    @ApiModelProperty("监督员数量")
+    private Integer supervisePeopleNum;
+
+    @ApiModelProperty("其他人员")
+    private Integer otherPeopleNum;
+
+    @ApiModelProperty("特殊人群统计模块数据")
+    private List<IndexSpecialStatisticsVO> specialStatisticsList;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventComprehensiveGovernanceStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventComprehensiveGovernanceStatisticsVO.java
new file mode 100644
index 0000000..5bab7cb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventComprehensiveGovernanceStatisticsVO.java
@@ -0,0 +1,43 @@
+package com.panzhihua.common.model.vos.community.screen.event;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: EventComprehensiveGovernanceStatisticsVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 西区大数据分析平台-综合治理信息
+ * @author: hans
+ * @date: 2021/12/14 9:16
+ */
+@Data
+@ApiModel("西区大数据分析平台-综合治理信息")
+public class EventComprehensiveGovernanceStatisticsVO {
+
+    @ApiModelProperty("综合治理总数")
+    private Integer governanceTotal = 0;
+
+    @ApiModelProperty("突发事件报告总数")
+    private Integer eventTFTotal = 0;
+
+    @ApiModelProperty("治安防控总数")
+    private Integer eventZATotal = 0;
+
+    @ApiModelProperty("矛盾劝解总数")
+    private Integer eventMDTotal = 0;
+
+    @ApiModelProperty("特殊人群服务总数")
+    private Integer eventTSTotal = 0;
+
+    @ApiModelProperty("民生服务总数")
+    private Integer eventMSTotal = 0;
+
+    @ApiModelProperty("居民随手拍总数")
+    private Integer eventSSPTotal = 0;
+
+    public void generateGovernanceTotal() {
+        this.governanceTotal = this.eventTFTotal + this.eventZATotal + this.eventMDTotal +
+                this.eventTSTotal + this.eventMSTotal + this.eventSSPTotal;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventGridIncidentStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventGridIncidentStatisticsVO.java
new file mode 100644
index 0000000..0205f4e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventGridIncidentStatisticsVO.java
@@ -0,0 +1,47 @@
+package com.panzhihua.common.model.vos.community.screen.event;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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.util.Date;
+
+@Data
+@ApiModel("大屏网格下事件统计返回参数")
+public class EventGridIncidentStatisticsVO {
+
+    @ApiModelProperty("事件id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long eventId;
+
+//    旧版参照@ApiModelProperty("事件状态(1治安隐患、2公共服务、3矛盾纠纷、4不稳定因素、5突发事件、6特殊人群上报、7随手拍处理)")
+    /**
+     * type不代表网格类型
+     */
+    @ApiModelProperty("事件状态(1治安防控、2民生服务、3矛盾劝解、4不稳定因素、5突发事件报告、6特殊人群服务、9防灾减灾、10其他)")
+    private Integer type;
+
+    @ApiModelProperty("事件类型(1、网格事件 2、随手拍事件)")
+    private Integer eventType;
+
+    @ApiModelProperty("事件发生经纬度")
+    private String latLng;
+
+    @ApiModelProperty("事件内容")
+    private String content;
+
+    @ApiModelProperty("事件封面")
+    private String cover;
+
+    @ApiModelProperty("处理状态(1.已处理 2.待处理)")
+    private Integer status;
+
+    @ApiModelProperty("事件创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date createAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventGridMemberVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventGridMemberVO.java
new file mode 100644
index 0000000..0d6c6e2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventGridMemberVO.java
@@ -0,0 +1,24 @@
+package com.panzhihua.common.model.vos.community.screen.event;
+
+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;
+
+@Data
+@ApiModel("网格员列表返回参数")
+public class EventGridMemberVO {
+
+    @ApiModelProperty("网格员id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long userId;
+
+    @ApiModelProperty("网格员名称")
+    private String nickName;
+
+    @ApiModelProperty("网格员联系方式")
+    private String phone;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventGridStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventGridStatisticsVO.java
new file mode 100644
index 0000000..bfc06c1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventGridStatisticsVO.java
@@ -0,0 +1,33 @@
+package com.panzhihua.common.model.vos.community.screen.event;
+
+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;
+
+@Data
+@ApiModel("大屏事件网格统计返回参数")
+public class EventGridStatisticsVO {
+
+    @ApiModelProperty("网格id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("网格名称")
+    private String gridName;
+
+    @ApiModelProperty("网格围栏数据")
+    private String data;
+
+    @ApiModelProperty("网格线条颜色")
+    private String lineColor;
+
+    @ApiModelProperty("网格线条宽度")
+    private String lineBroadband;
+
+    @ApiModelProperty("网格填充颜色")
+    private String fillColor;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventLeftDownStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventLeftDownStatisticsVO.java
new file mode 100644
index 0000000..8983242
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventLeftDownStatisticsVO.java
@@ -0,0 +1,53 @@
+package com.panzhihua.common.model.vos.community.screen.event;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("大屏事件左下统计返回参数")
+public class EventLeftDownStatisticsVO {
+
+    @ApiModelProperty("治安隐患事件总数")
+    private Integer eventZATotal = 0;
+
+    @ApiModelProperty("治安隐患已完成事件总数")
+    private Integer yesEventZATotal = 0;
+
+    @ApiModelProperty("突发事件总数")
+    private Integer eventTFTotal = 0;
+
+    @ApiModelProperty("突发事件已完成总数")
+    private Integer yesEventTFTotal = 0;
+
+    @ApiModelProperty("特殊人群信息上报总数")
+    private Integer eventTSTotal = 0;
+
+    @ApiModelProperty("特殊人群信息上报已完成事件总数")
+    private Integer yesEventTSTotal = 0;
+
+    @ApiModelProperty("矛盾纠纷事件总数")
+    private Integer eventMDTotal = 0;
+
+    @ApiModelProperty("矛盾纠纷已完成事件总数")
+    private Integer yesEventMDTotal = 0;
+
+    @ApiModelProperty("不稳定因素事件总数")
+    private Integer eventBWDTotal = 0;
+
+    @ApiModelProperty("不稳定因素已完成事件总数")
+    private Integer yesEventBWDTotal = 0;
+
+    @ApiModelProperty("公共服务事件总数")
+    private Integer eventGGTotal = 0;
+
+    @ApiModelProperty("公共服务已完成事件总数")
+    private Integer yesEventGGTotal = 0;
+
+    @ApiModelProperty("随手拍总数")
+    private Integer eventSSPTotal = 0;
+
+    @ApiModelProperty("随手拍已完成总数")
+    private Integer yesEventSSPTotal = 0;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventLeftStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventLeftStatisticsVO.java
new file mode 100644
index 0000000..d8606b5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventLeftStatisticsVO.java
@@ -0,0 +1,17 @@
+package com.panzhihua.common.model.vos.community.screen.event;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("大屏事件左边统计返回参数")
+public class EventLeftStatisticsVO {
+
+    @ApiModelProperty("大屏事件左上统计返回参数")
+    private EventLeftTopStatisticsVO leftTopStatisticsVO;
+
+    @ApiModelProperty("大屏事件左下统计返回参数")
+    private EventLeftDownStatisticsVO leftDownStatisticsVO;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventLeftTopStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventLeftTopStatisticsVO.java
new file mode 100644
index 0000000..9f9c398
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventLeftTopStatisticsVO.java
@@ -0,0 +1,31 @@
+package com.panzhihua.common.model.vos.community.screen.event;
+
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("大屏事件左上统计返回参数")
+public class EventLeftTopStatisticsVO {
+
+    @ApiModelProperty("网格数")
+    private Integer gridTotal;
+
+    @ApiModelProperty("网格员数")
+    private Integer gridMemberTotal;
+
+    @ApiModelProperty("事件数")
+    private Integer eventTotal;
+
+    @ApiModelProperty("未解决事件数")
+    private Integer noSolveEventTotal;
+
+    @ApiModelProperty("累计解决事件数")
+    private Integer solveEventTotal;
+
+    @ApiModelProperty("频发月份")
+    private List<Integer> oftenMonth;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventListVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventListVO.java
new file mode 100644
index 0000000..e628cab
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventListVO.java
@@ -0,0 +1,84 @@
+package com.panzhihua.common.model.vos.community.screen.event;
+
+import java.util.Date;
+import java.util.List;
+
+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.vos.grid.EventResourceVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("事件列表返回参数")
+public class EventListVO {
+
+    @ApiModelProperty("事件id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("发布人昵称")
+    private String userName;
+
+    @ApiModelProperty("发布人id")
+    private Long gridMemberId;
+
+    @ApiModelProperty("发布人头像")
+    private String imageUrl;
+
+    @ApiModelProperty("事件上报时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("事件描述")
+    private String eventDes;
+
+    @ApiModelProperty("危险级别:0 (无) 1(特别重大)、2(重大)、3(较大)、4(一般)")
+    private String dangerLevel;
+
+    @ApiModelProperty("是否紧急")
+    private Boolean urgent;
+
+    @ApiModelProperty("是否重大")
+    private Boolean major;
+
+    @ApiModelProperty("事件发生地点")
+    private String happenAddress;
+
+    @ApiModelProperty("事件发生地点备注")
+    private String happentAddress;
+
+    @ApiModelProperty("事件发生经纬度(长在前短在后)")
+    private String happentLatLng;
+
+    @ApiModelProperty("事件分类1治安隐患、2公共服务、3矛盾纠纷、4不稳定因素、5突发事件、6特殊人群信息上报")
+    private Integer eventType;
+
+    @ApiModelProperty("事件分类(1、办件事件2、宣传事件3、阅读事件)")
+    private Integer eventCategory;
+
+    @ApiModelProperty("事件处理状态(1待处理、2待验证、3已上报、4已解决、5草稿箱、6已撤销、7已失效 8 已发布)")
+    private Integer eventDealStatus;
+
+    @ApiModelProperty("事件类型")
+    private String eventClazz;
+
+    @ApiModelProperty("发生区域")
+    private String gridName;
+
+    @ApiModelProperty("处理意见")
+    private String processDesc;
+
+    @ApiModelProperty(value = "音频")
+    private List<EventResourceVO> audios;
+
+    @ApiModelProperty(value = "视频")
+    private List<EventResourceVO> videos;
+
+    @ApiModelProperty(value = "图片")
+    private List<EventResourceVO> pics;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventNewStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventNewStatisticsVO.java
new file mode 100644
index 0000000..7f832fe
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventNewStatisticsVO.java
@@ -0,0 +1,84 @@
+package com.panzhihua.common.model.vos.community.screen.event;
+
+import java.util.Date;
+import java.util.List;
+
+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.vos.grid.EventResourceVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("大屏事件播报统计返回参数")
+public class EventNewStatisticsVO {
+
+    @ApiModelProperty("事件id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("发布人昵称")
+    private String userName;
+
+    @ApiModelProperty("发布人头像")
+    private String imageUrl;
+
+    @ApiModelProperty("事件上报时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("事件描述")
+    private String eventDes;
+
+    @ApiModelProperty("危险级别:0 (无) 1(特别重大)、2(重大)、3(较大)、4(一般)")
+    private String dangerLevel;
+
+    @ApiModelProperty("是否紧急")
+    private Boolean urgent;
+
+    @ApiModelProperty("是否重大")
+    private Boolean major;
+
+    @ApiModelProperty("事件发生地点")
+    private String happenAddress;
+
+    @ApiModelProperty("事件发生经纬度(长在前短在后)")
+    private String happentLatLng;
+
+    @ApiModelProperty("事件分类1治安隐患、2公共服务、3矛盾纠纷、4不稳定因素、5突发事件、6特殊人群信息上报")
+    private Integer eventType;
+
+    @ApiModelProperty("事件分类(1、办事事件2、宣传事件3、阅读事件)")
+    private Integer eventCategory;
+
+    @ApiModelProperty("事件处理状态(1待处理、2待验证、3已上报、4已解决、5草稿箱、6已撤销、7已失效 8 已发布)")
+    private Integer eventDealStatus;
+
+    @ApiModelProperty("随手拍图片集合")
+    private String photoPathList;
+
+    @ApiModelProperty("事件类型")
+    private String eventClazz;
+
+    @ApiModelProperty("发生区域")
+    private String gridName;
+
+    @ApiModelProperty("处理意见")
+    private String processDesc;
+
+    @ApiModelProperty(value = "音频")
+    private List<EventResourceVO> audios;
+
+    @ApiModelProperty(value = "视频")
+    private List<EventResourceVO> videos;
+
+    @ApiModelProperty(value = "图片")
+    private List<EventResourceVO> pics;
+
+    @ApiModelProperty(value = "事件处理流转记录")
+    private List<EventTransferRecordVO> transferRecordList;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventPopulationBasicsStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventPopulationBasicsStatisticsVO.java
new file mode 100644
index 0000000..2f1e924
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventPopulationBasicsStatisticsVO.java
@@ -0,0 +1,33 @@
+package com.panzhihua.common.model.vos.community.screen.event;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: EventComprehensiveGovernanceStatisticsVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 西区大数据分析平台-综合治理信息
+ * @author: lyq
+ * @date: 2021/12/14 10:53
+ */
+@Data
+@ApiModel("西区大数据分析平台-一标三实基础信息")
+public class EventPopulationBasicsStatisticsVO {
+
+    @ApiModelProperty("社区id")
+    private Long communityId;
+
+    @ApiModelProperty("社区名称")
+    private String communityName;
+
+    @ApiModelProperty("人口数量")
+    private Integer populationNum = 0;
+
+    @ApiModelProperty("小区数量")
+    private Integer villageNum = 0;
+
+    @ApiModelProperty("房屋数量")
+    private Integer houseNum = 0;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventPopulationSpecialStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventPopulationSpecialStatisticsVO.java
new file mode 100644
index 0000000..7e5101f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventPopulationSpecialStatisticsVO.java
@@ -0,0 +1,63 @@
+package com.panzhihua.common.model.vos.community.screen.event;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: EventComprehensiveGovernanceStatisticsVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 西区大数据分析平台-综合治理信息
+ * @author: lyq
+ * @date: 2021/12/14 10:53
+ */
+@Data
+@ApiModel("西区大数据分析平台-一标三实特殊人群信息")
+public class EventPopulationSpecialStatisticsVO {
+
+    @ApiModelProperty("残疾人")
+    private Integer cjTotal = 0;
+
+    @ApiModelProperty("低保户")
+    private Integer dbTotal = 0;
+
+    @ApiModelProperty("高龄老人 》=80")
+    private Integer glTotal = 0;
+
+    @ApiModelProperty("特殊情况")
+    private Integer tsTotal = 0;
+
+    @ApiModelProperty("特扶家庭")
+    private Integer tfTotal = 0;
+
+    @ApiModelProperty("退役军人")
+    private Integer tyTotal = 0;
+
+    @ApiModelProperty("留守儿童")
+    private Integer lsTotal = 0;
+
+    @ApiModelProperty(value = "吸毒人员",hidden = true)
+    private Integer xdTotal = 0;
+
+    @ApiModelProperty(value = "社区矫正人员",hidden = true)
+    private Integer jzTotal = 0;
+
+    @ApiModelProperty(value = "邪教人员",hidden = true)
+    private Integer xjTotal = 0;
+
+    @ApiModelProperty(value = "刑释人员",hidden = true)
+    private Integer xsTotal = 0;
+
+    @ApiModelProperty(value = "上访人员",hidden = true)
+    private Integer sfTotal = 0;
+
+    @ApiModelProperty(value = "重精人员",hidden = true)
+    private Integer zjTotal = 0;
+
+    @ApiModelProperty("老年人(》=60)")
+    private Integer lnTotal = 0;
+
+    @ApiModelProperty("其他")
+    private Integer otherTotal = 0;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventPopulationStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventPopulationStatisticsVO.java
new file mode 100644
index 0000000..5d0bebe
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventPopulationStatisticsVO.java
@@ -0,0 +1,35 @@
+package com.panzhihua.common.model.vos.community.screen.event;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @title: EventComprehensiveGovernanceStatisticsVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 西区大数据分析平台-综合治理信息
+ * @author: lyq
+ * @date: 2021/12/14 10:53
+ */
+@Data
+@ApiModel("西区大数据分析平台-一标三实信息")
+public class EventPopulationStatisticsVO {
+
+    @ApiModelProperty("人口数据")
+    private List<EventPopulationBasicsStatisticsVO> basicsList;
+
+    @ApiModelProperty("特殊人口数据")
+    private EventPopulationSpecialStatisticsVO specialStatisticsVo;
+
+    @ApiModelProperty("人口数量")
+    private Integer populationNum = 0;
+
+    @ApiModelProperty("小区数量")
+    private Integer villageNum = 0;
+
+    @ApiModelProperty("房屋数量")
+    private Integer houseNum = 0;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventPopulationStreetVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventPopulationStreetVO.java
new file mode 100644
index 0000000..80b6c01
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventPopulationStreetVO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.vos.community.screen.event;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @title: EventComprehensiveGovernanceStatisticsVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 西区大数据分析平台-综合治理信息
+ * @author: lyq
+ * @date: 2021/12/14 10:53
+ */
+@Data
+@ApiModel("西区大数据分析平台-街道列表信息")
+public class EventPopulationStreetVO {
+
+    @ApiModelProperty("街道id")
+    private Long streetId;
+
+    @ApiModelProperty("街道名称")
+    private String name;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventStatisticsVO.java
new file mode 100644
index 0000000..5ece1dd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventStatisticsVO.java
@@ -0,0 +1,34 @@
+package com.panzhihua.common.model.vos.community.screen.event;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.ComMngPopulationTotalVO;
+import com.panzhihua.common.model.vos.community.screen.civil.CivilVillageStatisticsVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("大屏事件统计返回参数")
+public class EventStatisticsVO {
+
+    @ApiModelProperty("大屏网格数据")
+    private List<EventGridStatisticsVO> gridStatisticsList;
+
+    @ApiModelProperty("大屏左边数据")
+    private EventLeftStatisticsVO leftStatisticsVO;
+
+    @ApiModelProperty("事件播报数据")
+    private EventNewStatisticsVO newStatisticsVO;
+
+    @ApiModelProperty("社区事件数据")
+    private List<EventGridIncidentStatisticsVO> gridIncidentList;
+
+    @ApiModelProperty("小区列表数据")
+    private List<CivilVillageStatisticsVO> villageStatisticsList;
+
+    @ApiModelProperty("人口统计数据")
+    private ComMngPopulationTotalVO populationTotalVO;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventTransferRecordDetailVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventTransferRecordDetailVO.java
new file mode 100644
index 0000000..770a67e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventTransferRecordDetailVO.java
@@ -0,0 +1,18 @@
+package com.panzhihua.common.model.vos.community.screen.event;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("大屏事件播报流转记录详情返回参数")
+public class EventTransferRecordDetailVO {
+
+    @ApiModelProperty("街道名称")
+    private String streetName;
+    @ApiModelProperty("社区名称")
+    private String communityName;
+    @ApiModelProperty("网格名称")
+    private String gridName;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventTransferRecordVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventTransferRecordVO.java
new file mode 100644
index 0000000..7c321e9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/event/EventTransferRecordVO.java
@@ -0,0 +1,48 @@
+package com.panzhihua.common.model.vos.community.screen.event;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("大屏事件播报流转记录返回参数")
+public class EventTransferRecordVO {
+
+    @ApiModelProperty("事件处理时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date processDate;
+
+    @ApiModelProperty("事件处理结果")
+    private String processResult;
+
+    @ApiModelProperty("业务处理类型 1 网格员处理 2 派发到社区 3 社区处理 4 社区标为无效 5 标为无效后处理 6 验证 7 撤销 8 重新发布已撤销事件 9 社区重新发布已标为无效的事件")
+    private Integer processType;
+
+    @ApiModelProperty("事件处理人")
+    private String fromName;
+
+    @ApiModelProperty(value = "来源类型(1、网格员2、社区3、是街道)", hidden = true)
+    private Integer fromType;
+
+    @ApiModelProperty(value = "事件来源机构或网格员", hidden = true)
+    private Long fromId;
+
+    @ApiModelProperty("上级关系")
+    private String superiorRelationship;
+
+    @ApiModelProperty(value = "事件id", hidden = true)
+    private Long eventId;
+
+    /**
+     * 来源类型(1、网格员2、社区3、是街道)
+     */
+    public interface fromType {
+        int wgy = 1;
+        int sq = 2;
+        int jd = 3;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexBasicsStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexBasicsStatisticsVO.java
new file mode 100644
index 0000000..75fa4eb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexBasicsStatisticsVO.java
@@ -0,0 +1,22 @@
+package com.panzhihua.common.model.vos.community.screen.index;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("大屏首页基础数据统计返回参数")
+public class IndexBasicsStatisticsVO {
+
+    @ApiModelProperty("人口数量")
+    private Integer populationTotal;
+
+    @ApiModelProperty("房屋数量")
+    private Integer houseTotal;
+
+    @ApiModelProperty("单位数量")
+    private Integer companyTotal;
+
+    @ApiModelProperty("小区数量")
+    private Integer villageTotal;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexDynamicStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexDynamicStatisticsVO.java
new file mode 100644
index 0000000..29a9796
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexDynamicStatisticsVO.java
@@ -0,0 +1,35 @@
+package com.panzhihua.common.model.vos.community.screen.index;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("大屏首页社区治理动态数据统计返回参数")
+public class IndexDynamicStatisticsVO {
+
+    @ApiModelProperty("微心愿")
+    private Integer microWishTotal;
+
+    @ApiModelProperty("随手拍")
+    private Integer easyPhotoTotal;
+
+    @ApiModelProperty("回复留言数量")
+    private Integer replyTotal;
+
+    @ApiModelProperty("开展文化活动")
+    private Integer cultureActivityTotal;
+
+    @ApiModelProperty(value = "党员活动数量", hidden = true)
+    private Integer pbTotal;
+
+    @ApiModelProperty(value = "社区活动数量", hidden = true)
+    private Integer actTotal;
+
+    @ApiModelProperty("发起民意调查")
+    private Integer investigationTotal;
+
+    @ApiModelProperty("社区宣传")
+    private Integer propagandaTotal;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexEventGridStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexEventGridStatisticsVO.java
new file mode 100644
index 0000000..c643e79
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexEventGridStatisticsVO.java
@@ -0,0 +1,22 @@
+package com.panzhihua.common.model.vos.community.screen.index;
+
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("大屏首页网格化治理数据统计返回参数")
+public class IndexEventGridStatisticsVO {
+
+    @ApiModelProperty("网格化治理事件数据")
+    private IndexGridEventStatisticsVO gridEventStatisticsList;
+
+    @ApiModelProperty("网格化治理事件总和")
+    private Integer gridEventTotal = 0;
+
+    @ApiModelProperty("网格化治理网格数据")
+    private List<IndexGridStatisticsVO> gridStatisticsList;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexEventListStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexEventListStatisticsVO.java
new file mode 100644
index 0000000..089dbff
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexEventListStatisticsVO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.vos.community.screen.index;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("大屏首页实时治理信息数据统计返回参数")
+public class IndexEventListStatisticsVO {
+
+    @ApiModelProperty("事件上报时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("事件状态(1.待处理  4.已处理)")
+    private Integer eventDealStatus;
+
+    @ApiModelProperty("事件描述")
+    private String eventDes;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexGridEventStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexGridEventStatisticsVO.java
new file mode 100644
index 0000000..2cb2c40
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexGridEventStatisticsVO.java
@@ -0,0 +1,40 @@
+package com.panzhihua.common.model.vos.community.screen.index;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ApiModel("大屏首页网格化治理事件数据统计返回参数")
+public class IndexGridEventStatisticsVO {
+
+    @ApiModelProperty("突发事件数量")
+    private Integer eventTFTotal;
+    @ApiModelProperty("突发事件占比")
+    private BigDecimal tfPercent;
+    @ApiModelProperty("治安隐患事件数量")
+    private Integer eventZATotal;
+    @ApiModelProperty("治安隐患事件占比")
+    private BigDecimal zaPercent;
+
+    @ApiModelProperty("矛盾纠纷事件数量")
+    private Integer eventMDTotal;
+    @ApiModelProperty("矛盾纠纷事件占比")
+    private BigDecimal mdPercent;
+
+    @ApiModelProperty("特殊人员上报数量")
+    private Integer eventTSTotal;
+    @ApiModelProperty("特殊人员上报占比")
+    private BigDecimal tsPercent;
+
+    @ApiModelProperty("不稳定因素事件数量")
+    private Integer eventBWDTotal;
+    @ApiModelProperty("不稳定因素事件占比")
+    private BigDecimal bwdPercent;
+    @ApiModelProperty("公共服务数量")
+    private Integer eventGGTotal;
+    @ApiModelProperty("公共服务占比")
+    private BigDecimal ggPercent;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexGridStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexGridStatisticsVO.java
new file mode 100644
index 0000000..c7ca9cf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexGridStatisticsVO.java
@@ -0,0 +1,17 @@
+package com.panzhihua.common.model.vos.community.screen.index;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("大屏首页网格化治理事件数据统计返回参数")
+public class IndexGridStatisticsVO {
+
+    @ApiModelProperty("网格名称")
+    private String eventData;
+
+    @ApiModelProperty("网格事件数据")
+    private IndexGridEventStatisticsVO gridEventStatisticsList;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexPopulationAgeStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexPopulationAgeStatisticsVO.java
new file mode 100644
index 0000000..7eb8a98
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexPopulationAgeStatisticsVO.java
@@ -0,0 +1,22 @@
+package com.panzhihua.common.model.vos.community.screen.index;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ApiModel("大屏首页实有人口年龄段数据统计返回参数")
+public class IndexPopulationAgeStatisticsVO {
+
+    @ApiModelProperty("年龄段(1、0-18  2、19-30 3、31-40 4、41-50 5、51-59 7、60-79 8.80-89 6.89以上)")
+    private Integer type;
+
+    @ApiModelProperty("数量")
+    private Integer sum = 0;
+
+    @ApiModelProperty("占比")
+    private BigDecimal percent;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexPopulationSexStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexPopulationSexStatisticsVO.java
new file mode 100644
index 0000000..9d138a4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexPopulationSexStatisticsVO.java
@@ -0,0 +1,20 @@
+package com.panzhihua.common.model.vos.community.screen.index;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("大屏首页实有人口性别数据统计返回参数")
+public class IndexPopulationSexStatisticsVO {
+
+    @ApiModelProperty("性别(1.男  2.女)")
+    private Integer type;
+
+    @ApiModelProperty("数量")
+    private Integer sum;
+
+    @ApiModelProperty("占比")
+    private Integer percent;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexPopulationStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexPopulationStatisticsVO.java
new file mode 100644
index 0000000..6f6c9b0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexPopulationStatisticsVO.java
@@ -0,0 +1,22 @@
+package com.panzhihua.common.model.vos.community.screen.index;
+
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("大屏首页实有人口数据统计返回参数")
+public class IndexPopulationStatisticsVO {
+
+    @ApiModelProperty("人口总数量")
+    private Integer populationTotal = 0;
+
+    @ApiModelProperty("大屏首页实有人口性别数据统计返回参数")
+    private List<IndexPopulationSexStatisticsVO> sexPopulationList;
+
+    @ApiModelProperty("大屏首页实有人口年龄段数据统计返回参数")
+    private List<IndexPopulationAgeStatisticsVO> agePopulationList;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexSpecialStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexSpecialStatisticsVO.java
new file mode 100644
index 0000000..4ac7e24
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexSpecialStatisticsVO.java
@@ -0,0 +1,22 @@
+package com.panzhihua.common.model.vos.community.screen.index;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ApiModel("大屏首页特殊人群统计数据返回参数")
+public class IndexSpecialStatisticsVO {
+
+    @ApiModelProperty("特殊人群标签")
+    private String title;
+
+    @ApiModelProperty("人口数量")
+    private Integer sum;
+
+    @ApiModelProperty("占比")
+    private BigDecimal percent;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexStatisticsVO.java
new file mode 100644
index 0000000..e14b2df
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/index/IndexStatisticsVO.java
@@ -0,0 +1,35 @@
+package com.panzhihua.common.model.vos.community.screen.index;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenStatisticPartyBuild;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("大屏首页统计返回参数")
+public class IndexStatisticsVO {
+
+    @ApiModelProperty("基础模块数据")
+    private IndexBasicsStatisticsVO basicsStatistics;
+
+    @ApiModelProperty("实有人口统计模块数据")
+    private IndexPopulationStatisticsVO populationStatisticsVO;
+
+    @ApiModelProperty("实时治理信息统计模块数据")
+    private List<IndexEventListStatisticsVO> eventListStatisticsList;
+
+    @ApiModelProperty("社区治理动态模块数据")
+    private IndexDynamicStatisticsVO dynamicStatisticsVO;
+
+    @ApiModelProperty("网格化治理模块数据")
+    private IndexEventGridStatisticsVO eventGridStatisticsVO;
+
+    @ApiModelProperty("特殊人群统计模块数据")
+    private List<IndexSpecialStatisticsVO> specialStatisticsVOList;
+
+    @ApiModelProperty("党建模块数据")
+    private BigScreenStatisticPartyBuild statisticPartyBuild;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/work/ActActivityListVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/work/ActActivityListVO.java
new file mode 100644
index 0000000..6518010
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/work/ActActivityListVO.java
@@ -0,0 +1,80 @@
+package com.panzhihua.common.model.vos.community.screen.work;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("大屏社区活动列表返回参数")
+public class ActActivityListVO {
+
+    @ApiModelProperty("主键id")
+    private Long id;
+
+    @ApiModelProperty("负责人姓名")
+    private String userName;
+
+    @ApiModelProperty("负责人id")
+    private Long sponsorId;
+
+    @ApiModelProperty("负责人头像")
+    private String imageUrl;
+
+    @ApiModelProperty("活动状态 1 待发布 2 未开始 3 报名中 4 进行中 5 已结束 6 已取消")
+    private Integer status;
+
+    @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 beginAt;
+
+    @ApiModelProperty("活动结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endAt;
+
+    @ApiModelProperty("报名开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date signUpBegin;
+
+    @ApiModelProperty("报名结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date signUpEnd;
+
+    @ApiModelProperty("志愿者人数下限")
+    private Integer volunteerMin;
+
+    @ApiModelProperty("志愿者人数上限")
+    private Integer volunteerMax;
+
+    @ApiModelProperty("参与者人数下限")
+    private Integer participantMin;
+
+    @ApiModelProperty("参与者人数上限")
+    private Integer participantMax;
+
+    @ApiModelProperty("活动名称")
+    private String activityName;
+
+    @ApiModelProperty("活动内容")
+    private String content;
+
+    @ApiModelProperty("活动封面")
+    private String cover;
+
+    @ApiModelProperty("活动地址")
+    private String activityAddr;
+
+    @ApiModelProperty("居民参加人数")
+    private Integer participantCount;
+
+    @ApiModelProperty("志愿者参加人数")
+    private Integer volunteerCount;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/work/ActActivityPeopleListVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/work/ActActivityPeopleListVO.java
new file mode 100644
index 0000000..918a538
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/work/ActActivityPeopleListVO.java
@@ -0,0 +1,31 @@
+package com.panzhihua.common.model.vos.community.screen.work;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("大屏社区活动报名详情返回参数")
+public class ActActivityPeopleListVO {
+
+    @ApiModelProperty("用户id")
+    private Long userId;
+
+    @ApiModelProperty("姓名")
+    private String name;
+
+    @ApiModelProperty("身份")
+    private String identity;
+
+    @ApiModelProperty("手机号")
+    private String phone;
+
+    @ApiModelProperty("报名时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/work/DiscussListVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/work/DiscussListVO.java
new file mode 100644
index 0000000..067e7d4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/work/DiscussListVO.java
@@ -0,0 +1,54 @@
+package com.panzhihua.common.model.vos.community.screen.work;
+
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.panzhihua.common.model.vos.community.ComActDiscussOptionVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("大屏一起议列表返回参数")
+public class DiscussListVO {
+
+    @ApiModelProperty("主键id")
+    private Long id;
+
+    @ApiModelProperty("发布人昵称")
+    private String userName;
+
+    @ApiModelProperty("发布人id")
+    private Long userId;
+
+    @ApiModelProperty("发布人头像")
+    private String imageUrl;
+
+    @ApiModelProperty("发布类型 1 图文 2 投票")
+    private Integer type;
+
+    @ApiModelProperty("发布时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("发布主题")
+    private String discussSubject;
+
+    @ApiModelProperty("投票标题")
+    private String voteTitle;
+
+    @ApiModelProperty("图片地址 多个用逗号隔开")
+    private String photoPah;
+
+    @ApiModelProperty("评论数量")
+    private Integer commentCount;
+
+    @ApiModelProperty("点赞数量")
+    private Integer fabulousCount;
+
+    @ApiModelProperty("投票选项列表")
+    private List<ComActDiscussOptionVO> discussOptionList;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/work/MicroListVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/work/MicroListVO.java
new file mode 100644
index 0000000..9db23a1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/screen/work/MicroListVO.java
@@ -0,0 +1,72 @@
+package com.panzhihua.common.model.vos.community.screen.work;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("大屏微心愿列表返回参数")
+public class MicroListVO {
+
+    @ApiModelProperty("主键id")
+    private Long id;
+
+    @ApiModelProperty("发起人姓名")
+    private String userName;
+
+    @ApiModelProperty("发起人id")
+    private Long sponsorId;
+
+    @ApiModelProperty("发起人头像")
+    private String imageUrl;
+
+    @ApiModelProperty("发起人手机号")
+    private String phone;
+
+    @ApiModelProperty("状态 1待审核  2待分配 3进行中  4已驳回 5待确认6 已完成")
+    private Integer status;
+
+    @ApiModelProperty("发起时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("微心愿名称")
+    private String wishName;
+
+    @ApiModelProperty("微心愿内容")
+    private String detail;
+
+    @ApiModelProperty("活动封面")
+    private String photoPathList;
+
+    @ApiModelProperty("集星数")
+    private Integer starNum;
+
+    @ApiModelProperty("评价时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date evaluateAt;
+
+    @ApiModelProperty("评价星数")
+    private Integer score;
+
+    @ApiModelProperty("负责人名字")
+    private String responsibleName;
+
+    @ApiModelProperty("形式  1分配人员  2发起活动")
+    private Integer form;
+
+    @ApiModelProperty("分配时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date distributionAt;
+
+    @ApiModelProperty("完成情况描述")
+    private String finish;
+
+    @ApiModelProperty("完成情况图片列表,逗号分隔")
+    private String finishPhotoPathList;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/social/ComActSocialProjectMemberVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/social/ComActSocialProjectMemberVO.java
new file mode 100644
index 0000000..b536bda
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/social/ComActSocialProjectMemberVO.java
@@ -0,0 +1,82 @@
+package com.panzhihua.common.model.vos.community.social;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * 项目人员(ComActSocialProjectMember)表实体类
+ *
+ * @author makejava
+ * @since 2021-12-23 15:16:42
+ */
+@Data
+@ApiModel("项目人员")
+public class ComActSocialProjectMemberVO implements Serializable {
+
+    private Long id;
+
+    /**
+     * 姓名
+     */
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    /**
+     * 年龄
+     */
+    @ApiModelProperty(value = "年龄")
+    private Integer age;
+
+    /**
+     * 照片
+     */
+    @ApiModelProperty(value = "照片")
+    private String image;
+
+    /**
+     * 手机号
+     */
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+
+    /**
+     * 类型 1社工 2志愿者
+     */
+    @ApiModelProperty(value = "类型 1社工 2志愿者")
+    private Integer type;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    /**
+     * 项目id
+     */
+    @ApiModelProperty(value = "项目id")
+    private Long projectId;
+
+    /**
+     * 所属社区
+     */
+    @ApiModelProperty(value = "社区名称")
+    private String communityName;
+
+    @ApiModelProperty(value = "人员Id")
+    private Long paramId;
+
+    @ApiModelProperty(value = "ids")
+    private List<Long> ids;
+
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/social/ComActSocialProjectPublicityVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/social/ComActSocialProjectPublicityVO.java
new file mode 100644
index 0000000..1439498
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/social/ComActSocialProjectPublicityVO.java
@@ -0,0 +1,80 @@
+package com.panzhihua.common.model.vos.community.social;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 项目宣传表(ComActSocialProjectPublicity)表实体类
+ *
+ * @author makejava
+ * @since 2021-12-23 14:30:54
+ */
+@Data
+@ApiModel("项目宣传表")
+public class ComActSocialProjectPublicityVO {
+
+
+    private Long id;
+
+    /**
+     * 标题
+     */
+    @ApiModelProperty(value = "标题")
+    private String title;
+
+    /**
+     * 封面图
+     */
+    @ApiModelProperty(value = "封面图")
+    private String image;
+
+    /**
+     * 内容
+     */
+    @ApiModelProperty(value = "内容")
+    private String content;
+
+    /**
+     * 项目id
+     */
+    @ApiModelProperty(value = "项目id")
+    private Long projectId;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    /**
+     * 浏览量
+     */
+    @ApiModelProperty(value = "浏览量")
+    private Integer views;
+
+    /**
+     * 是否置顶 0否 1是
+     */
+    @ApiModelProperty(value = "是否置顶")
+    private Integer isTop;
+
+    @ApiModelProperty(value = "项目名称")
+    private String name;
+
+    @ApiModelProperty(value="责任方")
+    private String responsibility;
+
+    @ApiModelProperty(value = "街道名字")
+    private String streetName;
+
+    @ApiModelProperty("发布人")
+    private String releaseName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/social/ComActSocialProjectScheduleVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/social/ComActSocialProjectScheduleVO.java
new file mode 100644
index 0000000..fe19606
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/social/ComActSocialProjectScheduleVO.java
@@ -0,0 +1,50 @@
+package com.panzhihua.common.model.vos.community.social;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 项目进度表(ComActSocialProjectSchedule)表实体类
+ *
+ * @author makejava
+ * @since 2021-12-23 14:31:15
+ */
+@Data
+@ApiModel("项目进度表")
+public class ComActSocialProjectScheduleVO{
+
+    private Long id;
+
+    /**
+     * 标题
+     */
+    @ApiModelProperty(value = "标题")
+    private String title;
+
+    /**
+     * 内容
+     */
+    @ApiModelProperty(value = "内容")
+    private String content;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    /**
+     * 项目id
+     */
+    @ApiModelProperty(value = "项目id")
+    private Long projectId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/social/ComActSocialWorkerServiceVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/social/ComActSocialWorkerServiceVO.java
new file mode 100644
index 0000000..5fbdddd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/social/ComActSocialWorkerServiceVO.java
@@ -0,0 +1,84 @@
+package com.panzhihua.common.model.vos.community.social;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 社工服务表(ComActSocialWorkerService)表实体类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 社工服务表相关功能
+ *
+ * @author zzj
+ * @since 2022-02-16 15:59:41
+ */
+@Data
+@ApiModel("社工服务表")
+public class ComActSocialWorkerServiceVO implements Serializable {
+
+    private Long id;
+
+    /**
+     * 社工id
+     */
+    @ApiModelProperty(value = "社工id")
+    private Long workerId;
+
+    /**
+     * 发起人id
+     */
+    @ApiModelProperty(value = "发起人id")
+    private Long senderId;
+
+    /**
+     * 服务状态 0待执行 1已完成
+     */
+    @ApiModelProperty(value = "服务状态 0待执行 1已完成")
+    private Integer status;
+
+    /**
+     * 内容id
+     */
+    @ApiModelProperty(value = "内容id")
+    private Long serviceId;
+
+    /**
+     * 服务类型 1微心愿 2随手拍
+     */
+    @ApiModelProperty(value = "服务类型 1微心愿 2随手拍")
+    private Integer serviceType;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    /**
+     * 汇报内容
+     */
+    @ApiModelProperty(value = "汇报内容")
+    private String resultContent;
+
+    /**
+     * 汇报图片
+     */
+    @ApiModelProperty(value = "汇报图片")
+    private String resultUrl;
+
+    /**
+     * 得分
+     */
+    @ApiModelProperty(value = "得分")
+    private Integer score;
+
+    @ApiModelProperty("发起人姓名")
+    private String senderName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/social/SocialOrgHatchAuditScheduleVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/social/SocialOrgHatchAuditScheduleVO.java
new file mode 100644
index 0000000..3f94b32
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/social/SocialOrgHatchAuditScheduleVO.java
@@ -0,0 +1,37 @@
+package com.panzhihua.common.model.vos.community.social;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: SocialOrgHatchAuditScheduleVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 社会组织孵化审核进度信息
+ * @author: hans
+ * @date: 2022/04/19 10:25
+ */
+@Data
+@ApiModel("社会组织孵化审核进度信息")
+public class SocialOrgHatchAuditScheduleVO {
+
+    @ApiModelProperty("审核进度id")
+    private Long id;
+
+    @ApiModelProperty("社会组织孵化申请关联id")
+    private Long auditId;
+
+    @ApiModelProperty("审核阶段")
+    private String stage;
+
+    @ApiModelProperty("阶段详情")
+    private String detail;
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createdAt;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/social/SocialOrgHatchAuditVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/social/SocialOrgHatchAuditVO.java
new file mode 100644
index 0000000..6c9d202
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/social/SocialOrgHatchAuditVO.java
@@ -0,0 +1,70 @@
+package com.panzhihua.common.model.vos.community.social;
+
+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;
+
+/**
+ * @title: SocialOrgHatchAuditVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 社会组织孵化申请信息
+ * @author: hans
+ * @date: 2022/04/18 14:33
+ */
+@Data
+@ApiModel("社会组织孵化申请信息")
+public class SocialOrgHatchAuditVO {
+
+    @ApiModelProperty("孵化申请id")
+    private Long id;
+
+    @ApiModelProperty("准社会组织名称")
+    private String name;
+
+    @ApiModelProperty("负责人")
+    private String responsibility;
+
+    @ApiModelProperty("联系电话")
+    private String phone;
+
+    @ApiModelProperty("孵化单位")
+    private Long hatchUnit;
+
+    @ApiModelProperty("孵化单位类型(1.街道 2.社区)")
+    private Integer hatchUnitType;
+
+    @ApiModelProperty("孵化单位名称")
+    private String hatchUnitName;
+
+    @ApiModelProperty("申请用户")
+    private Long userId;
+
+    @ApiModelProperty("申请状态(1.待审核 2.审核通过 3.已驳回)")
+    private Integer status;
+
+    @ApiModelProperty("申请时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createdAt;
+
+    @ApiModelProperty("组织介绍")
+    private String introduction;
+
+    @ApiModelProperty("组织标识")
+    private String logo;
+
+    @ApiModelProperty("申请原因")
+    private String applyReason;
+
+    @ApiModelProperty("服务范围")
+    private String serviceScope;
+
+    @ApiModelProperty("服务范围名称")
+    private String serviceScopeName;
+
+    @ApiModelProperty("审核进度")
+    private List<SocialOrgHatchAuditScheduleVO> scheduleVOList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/social/SocialOrgHatchVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/social/SocialOrgHatchVO.java
new file mode 100644
index 0000000..fd9ae90
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/social/SocialOrgHatchVO.java
@@ -0,0 +1,64 @@
+package com.panzhihua.common.model.vos.community.social;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: SocialOrgHatchAuditVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 社会组织孵化申请信息
+ * @author: hans
+ * @date: 2022/04/18 14:33
+ */
+@Data
+@ApiModel("社会组织孵化申请信息")
+public class SocialOrgHatchVO {
+
+    @ApiModelProperty("孵化申请id")
+    private Long id;
+
+    @ApiModelProperty("准社会组织名称")
+    private String name;
+
+    @ApiModelProperty("负责人")
+    private String responsibility;
+
+    @ApiModelProperty("联系电话")
+    private String phone;
+
+    @ApiModelProperty("孵化单位")
+    private Long hatchUnit;
+
+    @ApiModelProperty("孵化单位类型(1.街道 2.社区)")
+    private Integer hatchUnitType;
+
+    @ApiModelProperty("孵化单位名称")
+    private String hatchUnitName;
+
+    @ApiModelProperty("孵化状态(1.孵化中 2.孵化成功)")
+    private Integer status;
+
+    @ApiModelProperty("开始孵化日期")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createdAt;
+
+    @ApiModelProperty("组织介绍")
+    private String introduction;
+
+    @ApiModelProperty("组织标识")
+    private String logo;
+
+    @ApiModelProperty("申请原因")
+    private String applyReason;
+
+    @ApiModelProperty("服务范围")
+    private String serviceScope;
+
+    @ApiModelProperty("服务范围名称")
+    private String serviceScopeName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/social/SocialProjectVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/social/SocialProjectVO.java
new file mode 100644
index 0000000..d826f6b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/social/SocialProjectVO.java
@@ -0,0 +1,172 @@
+package com.panzhihua.common.model.vos.community.social;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel("项目实体")
+public class SocialProjectVO {
+
+    private Long id;
+
+    /**
+     * 项目名称
+     */
+    @ApiModelProperty(value = "项目名称")
+    private String name;
+
+    /**
+     * 项目类型 1公共文化 2社会组织参与 3 社会企业带动 4其他
+     */
+    @ApiModelProperty(value = "项目类型 1公共文化 2社会组织参与 3 社会企业带动 4其他")
+    private Integer type;
+
+    /**
+     * 项目状态  1初创项目 2公开发布 3运作中 4 已结束
+     */
+    @ApiModelProperty(value = "项目状态  1待发布 2公示中 3实施中 4 已完成")
+    private Integer status;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    /**
+     * 街道id
+     */
+    @ApiModelProperty(value = "街道id")
+    private Long streetId;
+
+    /**
+     * 责任方
+     */
+    @ApiModelProperty(value = "责任方")
+    private String responsibility;
+
+    /**
+     * 父项目id
+     */
+    @ApiModelProperty(value = "父项目id")
+    private Long parentId;
+
+    /**
+     * 附件
+     */
+    @ApiModelProperty(value = "附件")
+    private String url;
+
+    /**
+     * 封面
+     */
+    @ApiModelProperty(value = "封面")
+    private String image;
+
+    /**
+     * 介绍
+     */
+    @ApiModelProperty(value = "介绍")
+    private String content;
+
+    /**
+     * 项目等级
+     */
+    @ApiModelProperty(value = "项目等级")
+    private Integer level;
+
+    /**
+     * 浏览量
+     */
+    @ApiModelProperty(value = "浏览量")
+    private Integer views;
+
+    /**
+     * 社区名字
+     */
+    @ApiModelProperty(value = "社区名字")
+    private String communityName;
+
+    /**
+     * 街道名字
+     */
+    @ApiModelProperty(value = "街道名字")
+    private String streetName;
+
+    /**
+     * 街道电话
+     */
+    @ApiModelProperty(value = "街道电话")
+    private String streetPhone;
+
+    /**
+     * 社区电话
+     */
+    @ApiModelProperty(value = "社区电话")
+    private String communityPhone;
+
+    /**
+     * 分类id
+     */
+    @ApiModelProperty(value = "分类id")
+    private Long columnId;
+
+    /**
+     * 二级分类id
+     */
+    @ApiModelProperty(value = "二级分类id")
+    private Long secondColumnId;
+
+    /**
+     * 分类名称
+     */
+    @ApiModelProperty(value = "分类名称")
+    private String columnName;
+
+    /**
+     * 二级分类
+     */
+    @ApiModelProperty(value = "分类名称")
+    private String secondColumnName;
+
+    @ApiModelProperty(value = "责任方类型 1街道 2社区 3社会组织")
+    private Integer responsibilityType;
+
+    @ApiModelProperty(value = "责任方id")
+    private Long responsibilityId;
+
+    @ApiModelProperty(value = "项目联系电话")
+    private String phone;
+
+    @ApiModelProperty(value = "项目资金")
+    private BigDecimal funds;
+
+    @ApiModelProperty(value = "项目报名截止时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date signUpEnd;
+
+    @ApiModelProperty(value = "公示状态 1报名中 2报名截止 3结果公布")
+    private Integer signUpStatus;
+
+    @ApiModelProperty(value = "是否可以进行报名 1是 2否")
+    private Integer isCouldSign;
+
+    @ApiModelProperty(value = "是否公示(1.是 2.否)")
+    private Integer isPublicity;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/switchs/CommunitySwitchAllAppletsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/switchs/CommunitySwitchAllAppletsVO.java
new file mode 100644
index 0000000..1c681df
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/switchs/CommunitySwitchAllAppletsVO.java
@@ -0,0 +1,27 @@
+package com.panzhihua.common.model.vos.community.switchs;
+
+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;
+
+@Data
+@ApiModel("切换社区模块-所有社区数据")
+public class CommunitySwitchAllAppletsVO {
+
+    @ApiModelProperty("街道id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long streetId;
+
+    @ApiModelProperty("社区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long communityId;
+
+    @ApiModelProperty("社区名称")
+    private String name;
+
+    @ApiModelProperty("街道名称")
+    private String streetName;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/switchs/StreetAllAppletsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/switchs/StreetAllAppletsVO.java
new file mode 100644
index 0000000..cba3fbf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/switchs/StreetAllAppletsVO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.vos.community.switchs;
+
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("切换社区模块-所有社区数据")
+public class StreetAllAppletsVO {
+
+    @ApiModelProperty("街道id")
+    private Long streetId;
+
+    @ApiModelProperty("街道名称")
+    private String name;
+
+    @ApiModelProperty("街道下社区列表")
+    private List<CommunitySwitchAllAppletsVO> childList;
+
+    @ApiModelProperty("街道下社区数量")
+    private Integer count = 0;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/volunteer/ComMngVolunteerErrorExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/volunteer/ComMngVolunteerErrorExcelVO.java
new file mode 100644
index 0000000..e685ac1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/volunteer/ComMngVolunteerErrorExcelVO.java
@@ -0,0 +1,39 @@
+package com.panzhihua.common.model.vos.community.volunteer;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @description: 批量导入志愿者请求参数
+ * @author : lyq
+ */
+@Data
+public class ComMngVolunteerErrorExcelVO implements Serializable {
+
+    @ExcelProperty(value = "志愿者名称", index = 0)
+    private String name;
+
+    @ExcelProperty(value = "志愿者手机号", index = 1)
+    private String phone;
+
+    @ExcelProperty(value = "志愿者身份证", index = 2)
+    private String idCard;
+
+    @ExcelProperty(value = "志愿者组织", index = 3)
+    private String orgName;
+
+    @ExcelProperty(value = "志愿者队伍", index = 4)
+    private String teamName;
+
+    @ExcelProperty(value = "技能", index = 5)
+    private String skillName;
+
+    @ExcelProperty(value = "是否是大学生", index = 6)
+    private Integer isUniversity;
+
+    @ExcelProperty(value = "错误信息", index = 7)
+    private String error;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/volunteer/ComMngVolunteerExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/volunteer/ComMngVolunteerExcelVO.java
new file mode 100644
index 0000000..e2f21d6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/volunteer/ComMngVolunteerExcelVO.java
@@ -0,0 +1,40 @@
+package com.panzhihua.common.model.vos.community.volunteer;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @description: 批量导入志愿者请求参数
+ * @author : lyq
+ */
+@Data
+public class ComMngVolunteerExcelVO implements Serializable {
+
+    @ExcelProperty(value = "志愿者名称", index = 0)
+    private String name;
+
+    @ExcelProperty(value = "志愿者手机号", index = 1)
+    private String phone;
+
+    @ExcelProperty(value = "志愿者身份证", index = 2)
+    private String idCard;
+
+    @ExcelProperty(value = "志愿者组织", index = 3)
+    private String orgName;
+
+    @ExcelProperty(value = "志愿者队伍", index = 4)
+    private String teamName;
+
+    @ExcelProperty(value = "技能", index = 5)
+    private String skillName;
+
+    @ExcelProperty(value = "在读大学名称", index = 6)
+    private String universityName;
+
+    @ExcelIgnore
+    private Integer isUniversity;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/wallet/ComActWalletAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/wallet/ComActWalletAdminVO.java
new file mode 100644
index 0000000..0772c5a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/wallet/ComActWalletAdminVO.java
@@ -0,0 +1,36 @@
+package com.panzhihua.common.model.vos.community.wallet;
+
+import java.math.BigDecimal;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("收益结算列表返回参数")
+public class ComActWalletAdminVO {
+
+    @ApiModelProperty("钱包id")
+    private Long id;
+
+    @ApiModelProperty("用户id")
+    private Long userId;
+
+    @ApiModelProperty("收益总金额")
+    private BigDecimal incomeAmount;
+
+    @ApiModelProperty("可用金额(未结算金额)")
+    private BigDecimal availableAmount;
+
+    @ApiModelProperty("结算金额")
+    private BigDecimal settlementAmount;
+
+    @ApiModelProperty("用户昵称")
+    private String nickName;
+
+    @ApiModelProperty("用户姓名")
+    private String userName;
+
+    @ApiModelProperty("手机号")
+    private String phone;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/wallet/ComActWalletRankingVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/wallet/ComActWalletRankingVO.java
new file mode 100644
index 0000000..c6161c5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/wallet/ComActWalletRankingVO.java
@@ -0,0 +1,31 @@
+package com.panzhihua.common.model.vos.community.wallet;
+
+import java.math.BigDecimal;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("用户收益排行榜返回参数")
+public class ComActWalletRankingVO {
+
+    @ApiModelProperty("钱包id")
+    private Long id;
+
+    @ApiModelProperty("昵称")
+    private String nickName;
+
+    @ApiModelProperty("姓名")
+    private String userName;
+
+    @ApiModelProperty("用户头像")
+    private String imageUrl;
+
+    @ApiModelProperty("收益总金额")
+    private BigDecimal incomeAmount;
+
+    @ApiModelProperty("累计随手拍奖励数量")
+    private BigDecimal easyCount;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/wallet/ComActWalletTradeAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/wallet/ComActWalletTradeAdminVO.java
new file mode 100644
index 0000000..8f54bf3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/wallet/ComActWalletTradeAdminVO.java
@@ -0,0 +1,53 @@
+package com.panzhihua.common.model.vos.community.wallet;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("交易记录列表返回参数")
+public class ComActWalletTradeAdminVO {
+
+    @ApiModelProperty("交易记录id")
+    private Long id;
+
+    @ApiModelProperty("用户id")
+    private Long userId;
+
+    @ApiModelProperty("用户昵称")
+    private String nickName;
+
+    @ApiModelProperty("用户姓名")
+    private String userName;
+
+    @ApiModelProperty("用户手机号")
+    private String phone;
+
+    @ApiModelProperty("变动类型(1.增加  2.减少)")
+    private Integer changeType;
+
+    @ApiModelProperty("交易金额")
+    private BigDecimal amount;
+
+    @ApiModelProperty("交易类型(1.发布随手拍 2.结算)")
+    private Integer type;
+
+    @ApiModelProperty("交易时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("操作人")
+    private String operationUserName;
+
+    @ApiModelProperty("交易备注")
+    private String remark;
+
+    @ApiModelProperty("交易业务id")
+    private Long serviceId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/wallet/ComActWalletTradeStatisticsAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/wallet/ComActWalletTradeStatisticsAdminVO.java
new file mode 100644
index 0000000..be81f7b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/wallet/ComActWalletTradeStatisticsAdminVO.java
@@ -0,0 +1,21 @@
+package com.panzhihua.common.model.vos.community.wallet;
+
+import java.math.BigDecimal;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("交易记录统计返回参数")
+public class ComActWalletTradeStatisticsAdminVO {
+
+    @ApiModelProperty("今日交易金额")
+    private BigDecimal dayTotal = BigDecimal.ZERO;
+
+    @ApiModelProperty("本月交易金额")
+    private BigDecimal monthTotal = BigDecimal.ZERO;
+
+    @ApiModelProperty("累计交易金额")
+    private BigDecimal total = BigDecimal.ZERO;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/wallet/ComActWalletTradeVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/wallet/ComActWalletTradeVO.java
new file mode 100644
index 0000000..a353cdd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/wallet/ComActWalletTradeVO.java
@@ -0,0 +1,37 @@
+package com.panzhihua.common.model.vos.community.wallet;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("用户钱包收支记录返回参数")
+public class ComActWalletTradeVO {
+
+    @ApiModelProperty("记录id")
+    private Long id;
+
+    @ApiModelProperty("社区名称")
+    private String communityName;
+
+    @ApiModelProperty("交易金额")
+    private BigDecimal amount;
+
+    @ApiModelProperty("交易类型(1.发布随手拍 2.收益结算)")
+    private Integer type;
+
+    @ApiModelProperty("变动类型(1.增加 2.减少)")
+    private Integer changeType;
+
+    @ApiModelProperty("交易备注")
+    private String remark;
+
+    @ApiModelProperty("交易时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/wallet/ComActWalletVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/wallet/ComActWalletVO.java
new file mode 100644
index 0000000..d4363ae
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/wallet/ComActWalletVO.java
@@ -0,0 +1,44 @@
+package com.panzhihua.common.model.vos.community.wallet;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("用户钱包返回参数")
+public class ComActWalletVO {
+
+    @ApiModelProperty("钱包id")
+    private Long id;
+
+    @ApiModelProperty("社区名称")
+    private String communityName;
+
+    @ApiModelProperty("收益金额")
+    private BigDecimal incomeAmount;
+
+    @ApiModelProperty("可用金额")
+    private BigDecimal availableAmount;
+
+    @ApiModelProperty("结算金额")
+    private BigDecimal settlementAmount;
+
+    @ApiModelProperty("累计随手拍奖励数量")
+    private Integer easyCount;
+
+    @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 updateAt;
+
+    @ApiModelProperty("收益说明")
+    private String agreement;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/ApplyStatistics.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/ApplyStatistics.java
new file mode 100644
index 0000000..c115aeb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/ApplyStatistics.java
@@ -0,0 +1,42 @@
+package com.panzhihua.common.model.vos.community.warehouse;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel("申领统计")
+public class ApplyStatistics {
+    /**
+     * 待处理
+     */
+    @ApiModelProperty("待处理")
+    private Integer pending;
+
+    /**
+     * 待领取
+     */
+    @ApiModelProperty("待领取")
+    private Integer unclaimed;
+
+    /**
+     * 已领取
+     */
+    @ApiModelProperty("已领取")
+    private Integer received;
+
+    /**
+     *已取消
+     */
+    @ApiModelProperty("已取消")
+    private Integer cancelled;
+
+    /**
+     * 已驳回
+     */
+    @ApiModelProperty("已驳回")
+    private Integer rejected;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/ComActWarehouseApplyExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/ComActWarehouseApplyExcelVO.java
new file mode 100644
index 0000000..bd6b698
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/ComActWarehouseApplyExcelVO.java
@@ -0,0 +1,123 @@
+package com.panzhihua.common.model.vos.community.warehouse;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.converters.string.StringImageConverter;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.panzhihua.common.utlis.StringUtils;
+import lombok.Data;
+
+import java.net.URL;
+import java.util.Date;
+
+/**
+ * @author zzj
+ */
+@Data
+public class ComActWarehouseApplyExcelVO {
+
+    @ExcelProperty(value = "申领流水",index = 10)
+    private Integer id;
+
+    /**
+     * 物品数量
+     */
+    @ExcelProperty(value = "物品数量",index = 6)
+    private Integer goodsNum;
+
+    /**
+     * 预约时间
+     */
+    @ExcelProperty(value = "预约领用时间",index = 7)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date reserveTime;
+
+    /**
+     * 实际时间
+     */
+    @ExcelProperty(value = "实际领用时间",index = 8)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date actualTime;
+
+    /**
+     * 理由
+     */
+    @ExcelProperty(value = "主要困难",index = 9)
+    private String reason;
+
+    /**
+     * 领取图片
+     */
+    @ExcelIgnore
+    private URL receiveUrl;
+
+    /**
+     * 提交时间
+     */
+    @ExcelProperty(value = "提交时间",index = 13)
+    private Date createTime;
+
+    /**
+     * 状态 0待处理 1 待领取 2已拒绝 3已领取 -1已取消
+     */
+    @ExcelProperty(value = "状态",index =14)
+    private String status;
+    @ExcelProperty(value = "核销人",index = 12)
+    private String writeOffUserName;
+
+    /**
+     * 申请人
+     */
+    @ExcelProperty(value = "申请人",index = 0)
+    private String applyName;
+
+    /**
+     * 申请人联系电话
+     */
+    @ExcelProperty(value = "申请人联系电话",index = 1)
+    private String applyPhone;
+
+    /**
+     * 申请物品
+     */
+    @ExcelProperty(value = "申请物品",index = 2)
+    private String item;
+
+    /**
+     * 捐赠人
+     */
+    @ExcelProperty(value = "捐赠人",index = 3)
+    private String donateName;
+
+    /**
+     * 捐赠人联系方式
+     */
+    @ExcelProperty(value = "捐赠人联系方式",index = 4)
+    private String donatePhone;
+
+    /**
+     * 物品图片
+     */
+    @ExcelIgnore
+    private URL image;
+
+    public void setStatus(String status) {
+        if(StringUtils.isNotEmpty(status)){
+            if("-1".equals(status)){
+                status="已取消";
+            }else if("0".equals(status)){
+                status="待处理";
+            }
+            else if("1".equals(status)){
+                status="待领取";
+            }
+            else if("2".equals(status)){
+                status="已驳回";
+            }
+            else if("3".equals(status)){
+                status="已领取";
+            }
+            this.status=status;
+        }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/ComActWarehouseApplyVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/ComActWarehouseApplyVO.java
new file mode 100644
index 0000000..58a0d11
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/ComActWarehouseApplyVO.java
@@ -0,0 +1,179 @@
+package com.panzhihua.common.model.vos.community.warehouse;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel("义仓物品申领记录实体")
+public class ComActWarehouseApplyVO {
+    private Long id;
+
+    /**
+     * 物品id
+     */
+    @ApiModelProperty(value = "物品id")
+    private Long goodsId;
+
+    /**
+     * 物品数量
+     */
+    @ApiModelProperty(value = "物品数量")
+    private Integer goodsNum;
+
+    /**
+     * 预约时间
+     */
+    @ApiModelProperty(value = "预约时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date reserveTime;
+
+    /**
+     * 实际时间
+     */
+    @ApiModelProperty(value = "实际时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date actualTime;
+
+    /**
+     * 理由
+     */
+    @ApiModelProperty(value = "理由")
+    private String reason;
+
+    /**
+     * 领取图片
+     */
+    @ApiModelProperty(value = "领取图片")
+    private String receiveUrl;
+
+    /**
+     * 提交时间
+     */
+    @ApiModelProperty(value = "提交时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    /**
+     * 状态 0待处理 1 待领取 2已拒绝 3已领取 -1已取消
+     */
+    @ApiModelProperty(value = "状态 0待处理 1 待领取 2已拒绝 3已领取 -1已取消")
+    private Integer status;
+
+    /**
+     * 申请人id
+     */
+    @ApiModelProperty("申请人id")
+    private Long applyUserId;
+
+    /**
+     * 处理人id
+     */
+    @ApiModelProperty(value = "处理人id")
+    private Long solveUserId;
+
+    /**
+     * 处理人时间
+     */
+    @ApiModelProperty(value = "处理人时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date solveTime;
+
+    /**
+     * 处理人备注
+     */
+    @ApiModelProperty(value = "处理人备注")
+    private String solveContent;
+
+    /**
+     * 处理人
+     */
+    @ApiModelProperty(value = "处理人")
+    private String solveName;
+
+    /**
+     * 核销人id
+     */
+    @ApiModelProperty(value = "核销人id")
+    private Long writeOffUserId;
+
+    /**
+     * 取消时间
+     */
+    @ApiModelProperty(value = "取消时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date cancelTime;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    /**
+     * 申请人
+     */
+    @ApiModelProperty("申请人")
+    private String applyName;
+
+    /**
+     * 申请人联系电话
+     */
+    @ApiModelProperty("申请人联系电话")
+    private String applyPhone;
+
+    /**
+     * 申请物品
+     */
+    @ApiModelProperty("申请物品")
+    private String item;
+
+    /**
+     * 捐赠人
+     */
+    @ApiModelProperty("捐赠人")
+    private String donateName;
+
+    /**
+     * 捐赠人联系方式
+     */
+    @ApiModelProperty("捐赠人联系方式")
+    private String donatePhone;
+
+    /**
+     * 物品图片
+     */
+    @ApiModelProperty("物品图片")
+    private String image;
+
+    /**
+     * 核销人
+     */
+    @ApiModelProperty("核销人")
+    private String writeOffUserName;
+
+    /**
+     *剩下数量
+     */
+    @ApiModelProperty("剩下数量")
+    private Integer surplusQuantity;
+
+    /**
+     * 状态 0待处理 1 待领取 2已拒绝 3已领取 -1已取消
+     */
+    public interface  status{
+        int dcl=0;
+        int dlq=1;
+        int ybh=2;
+        int ylq=3;
+        int yqx=-1;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/ComActWarehouseBaseVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/ComActWarehouseBaseVO.java
new file mode 100644
index 0000000..acc25a7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/ComActWarehouseBaseVO.java
@@ -0,0 +1,66 @@
+package com.panzhihua.common.model.vos.community.warehouse;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel("义仓基础设置实体")
+public class ComActWarehouseBaseVO {
+    private Integer id;
+
+    /**
+     * 义仓说明
+     */
+    @ApiModelProperty(value = "义仓说明")
+    private String warehouseExplain;
+
+    /**
+     * 工作时间
+     */
+    @ApiModelProperty(value = "工作时间")
+    private String warehouseWorkTime;
+
+    /**
+     * 联系电话
+     */
+    @ApiModelProperty(value = "联系电话")
+    private String warehouseContact;
+
+    /**
+     * 接收地点
+     */
+    @ApiModelProperty(value = "接收地点")
+    private String receivePosition;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    /**
+     *经度
+     */
+    @ApiModelProperty("经度")
+    private String longitude;
+
+    /**
+     *纬度
+     */
+    @ApiModelProperty("纬度")
+    private String latitude;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/ComActWarehouseDonatesVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/ComActWarehouseDonatesVO.java
new file mode 100644
index 0000000..4b42121
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/ComActWarehouseDonatesVO.java
@@ -0,0 +1,85 @@
+package com.panzhihua.common.model.vos.community.warehouse;
+
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+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;
+
+/**
+ * @title: ComActWarehouseDonatesVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 爱心义仓/物品捐赠信息
+ * @author: hans
+ * @date: 2021/10/11 14:06
+ */
+@Data
+@ApiModel("爱心义仓/物品捐赠信息")
+public class ComActWarehouseDonatesVO {
+
+    @ApiModelProperty("捐赠物品id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("捐赠人")
+    private String name;
+
+    @ApiModelProperty("联系电话")
+    private String phone;
+
+    @ApiModelProperty("捐赠物品")
+    private String item;
+
+    @ApiModelProperty("物品图片")
+    private String image;
+
+    @ApiModelProperty("捐赠数量")
+    private Integer quantity;
+
+    @ApiModelProperty("剩余数量")
+    private Integer surplusQuantity;
+
+    @ApiModelProperty("是否匿名(1.是 2.否)")
+    private Integer isAnonymous;
+
+    @ApiModelProperty("留言信息")
+    private String message;
+
+    @ApiModelProperty("物品登记时间/捐赠时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date registerAt;
+
+    @ApiModelProperty("物品签收时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date signingAt;
+
+    @ApiModelProperty("捐赠状态(1.待签收 2.已签收 3.已取消)")
+    private Integer status;
+
+    @ApiModelProperty("签收人")
+    private String signingBy;
+
+    @ApiModelProperty("物品捐赠操作记录")
+    private List<ComActWarehouseOperationVO> operationList;
+
+    @ApiModelProperty("捐赠用户")
+    @JsonIgnore
+    private Long userId;
+
+    public interface isAnonymous {
+        int yes =  1;
+        int no = 2;
+    }
+
+    public interface status {
+        int dqs = 1;
+        int yqs = 2;
+        int yqx = 3;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/ComActWarehouseOperationVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/ComActWarehouseOperationVO.java
new file mode 100644
index 0000000..913edf0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/ComActWarehouseOperationVO.java
@@ -0,0 +1,90 @@
+package com.panzhihua.common.model.vos.community.warehouse;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.panzhihua.common.utlis.StringUtils;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @title: ComActWarehouseOperationVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 爱心义仓操作记录vo
+ * @author: hans
+ * @date: 2021/10/11 16:32
+ */
+
+@Data
+@ApiModel("爱心义仓操作记录vo")
+public class ComActWarehouseOperationVO {
+
+    @ApiModelProperty(value = "操作记录id")
+    private Long id;
+
+    @ApiModelProperty(value = "物品id")
+    private Long goodsId;
+
+    @ApiModelProperty(value = "操作内容")
+    private String content;
+
+    @ApiModelProperty(value = "操作时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    @ApiModelProperty(value = "操作人")
+    private Long userId;
+
+    @ApiModelProperty("申请人姓名")
+    private String applyName;
+
+    @ApiModelProperty("捐赠人名称")
+    private String donateName;
+
+    @ApiModelProperty("捐赠物品名称")
+    private String item;
+
+    @ApiModelProperty("捐赠物品图片")
+    private String image;
+
+    @ApiModelProperty("捐赠物品数量")
+    private Integer goodsNum;
+
+    /**
+     * 实际时间
+     */
+    @ApiModelProperty(value = "实际时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date actualTime;
+
+    @ApiModelProperty("是否匿名(1.是 2.否)")
+    private Integer isAnonymous;
+
+    /**
+     * 理由
+     */
+    @ApiModelProperty("理由")
+    private String reason;
+
+    /**
+     * 领取图片
+     */
+    @ApiModelProperty("领取图片")
+    private String receiveUrl;
+
+    @ApiModelProperty("类型 1 content 2其他")
+    private Integer type;
+
+    public void setDonateName(String donateName) {
+        if (StringUtils.isNotEmpty(donateName)) {
+            this.donateName = donateName.charAt(0) + "**";
+        }
+    }
+
+    public void setApplyName(String applyName) {
+        if (StringUtils.isNotEmpty(applyName)) {
+            this.applyName = applyName.charAt(0) + "**";
+        }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/DonatesStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/DonatesStatisticsVO.java
new file mode 100644
index 0000000..a86b9d6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/DonatesStatisticsVO.java
@@ -0,0 +1,44 @@
+package com.panzhihua.common.model.vos.community.warehouse;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: DonatesStatisticsVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 爱心义仓/物品捐赠统计信息
+ * @author: hans
+ * @date: 2021/10/12 15:56
+ */
+@Data
+@ApiModel("爱心义仓/物品捐赠统计信息")
+public class DonatesStatisticsVO {
+
+    @ApiModelProperty("累计物品数量")
+    private Integer totalInc;
+
+    @ApiModelProperty("当前剩余物品")
+    private Integer surplus;
+
+    @ApiModelProperty("今日新增")
+    private Integer dayInc;
+
+    @ApiModelProperty("本月新增")
+    private Integer mothInc;
+
+    @ApiModelProperty("本年新增")
+    private Integer yearInc;
+
+    @ApiModelProperty("累计领用物品")
+    private Integer totalDec;
+
+    @ApiModelProperty("今日领用")
+    private Integer dayDec;
+
+    @ApiModelProperty("本月领用")
+    private Integer mothDec;
+
+    @ApiModelProperty("本年领用")
+    private Integer yearDec;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/ExportDonatesVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/ExportDonatesVO.java
new file mode 100644
index 0000000..ee6ee4a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/ExportDonatesVO.java
@@ -0,0 +1,79 @@
+package com.panzhihua.common.model.vos.community.warehouse;
+
+import static java.util.Objects.nonNull;
+
+import java.util.Date;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.panzhihua.common.utlis.StringUtils;
+
+import lombok.Data;
+
+/**
+ * @title: ExportDonatesVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 爱心义仓捐赠物品导出VO
+ * @author: hans
+ * @date: 2021/10/11 11:20
+ */
+@Data
+public class ExportDonatesVO {
+
+    private Long id;
+
+    @ExcelProperty("捐赠用户")
+    private String name;
+
+    @ExcelProperty("联系电话")
+    private String phone;
+
+    @ExcelProperty("捐赠物品")
+    private String item;
+
+    @ExcelProperty("捐赠数量")
+    private Integer quantity;
+
+    @ExcelProperty("剩余数量")
+    private Integer surplusQuantity;
+
+    @ExcelProperty("匿名捐赠")
+    private String isAnonymous;
+
+    @ExcelProperty("留言信息")
+    private String message;
+
+    @ExcelProperty("物品登记时间")
+    private Date registerAt;
+
+    @ExcelProperty("物品签收时间")
+    private Date signingAt;
+
+    @ExcelProperty("状态")
+    private String status;
+
+    public void setIsAnonymous(String isAnonymous) {
+        if (StringUtils.isNumber(isAnonymous)) {
+            this.isAnonymous = nonNull(isAnonymous) && isAnonymous.equals("1") ? "是" : "否";
+        } else {
+            this.isAnonymous = isAnonymous;
+        }
+    }
+
+    public void setStatus(String status) {
+        if (StringUtils.isNumber(status)) {
+            switch (status) {
+                case "1":
+                    this.status = "待签收";
+                    break;
+                case "2":
+                    this.status = "已签收";
+                    break;
+                default:
+                    this.status = "已取消";
+                    break;
+            }
+        } else {
+            this.status = status;
+        }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/QRCodeVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/QRCodeVO.java
new file mode 100644
index 0000000..3e79a2b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/QRCodeVO.java
@@ -0,0 +1,17 @@
+package com.panzhihua.common.model.vos.community.warehouse;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel("生成二维码传参")
+public class QRCodeVO {
+    @ApiModelProperty("数据主键id")
+    private Integer id;
+    @ApiModelProperty("二维码类型 1签收 2核销")
+    private Integer type;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/WarehouseDonatesExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/WarehouseDonatesExcelVO.java
new file mode 100644
index 0000000..f28a6a4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/community/warehouse/WarehouseDonatesExcelVO.java
@@ -0,0 +1,71 @@
+package com.panzhihua.common.model.vos.community.warehouse;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: WarehouseDonatesExcelVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 捐赠物品ExcelVO
+ * @author: hans
+ * @date: 2021/10/09 17:42
+ */
+@Data
+public class WarehouseDonatesExcelVO implements Serializable {
+
+    private static final long serialVersionUID = -7026869907781559301L;
+
+    @ExcelProperty(value = "捐赠用户", index = 0)
+    private String name;
+
+    @ExcelProperty(value = "联系电话", index = 1)
+    private String phone;
+
+    @ExcelProperty(value = "捐赠物品", index = 2)
+    private String item;
+
+    @ExcelProperty(value = "捐赠数量", index = 3)
+    private Integer quantity;
+
+    @ExcelProperty(value = "匿名捐赠", index = 4)
+    private String isAnonymous;
+
+    @ExcelProperty(value = "留言信息", index = 5)
+    private String message;
+
+    @ExcelProperty(value = "物品签收时间", index = 6)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date signingAt;
+
+    /**
+     * 剩余数量
+     */
+    private Integer surplusQuantity;
+    /**
+     * 捐赠状态
+     */
+    private Integer status;
+    /**
+     * 社区id
+     */
+    private Long communityId;
+    /**
+     * 物品登记时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date registerAt;
+    /**
+     * 登记人
+     */
+    private Long registerBy;
+    /**
+     * 签收人
+     */
+    private Long signingBy;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/elders/ComElderAuthUserAppVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/elders/ComElderAuthUserAppVO.java
new file mode 100644
index 0000000..6531cfc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/elders/ComElderAuthUserAppVO.java
@@ -0,0 +1,46 @@
+package com.panzhihua.common.model.vos.elders;
+
+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;
+
+@Data
+@ApiModel("高龄老人用户信息")
+@EncryptDecryptClass
+public class ComElderAuthUserAppVO {
+
+    @ApiModelProperty(value = "老人id")
+    private String elderId;
+
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    @ApiModelProperty(value = "身份证")
+    @Sensitive(strategy = SensitiveStrategy.ID_CARD)
+    @EncryptDecryptField
+    private String idCard;
+
+    @ApiModelProperty(value = "与本人关系(1.父母 2.配偶 3.子女 4.兄弟姐妹 5.祖/外祖父母 6.本人 7.其他)")
+    private String relation;
+
+    @ApiModelProperty(value = "是否有反馈(1.是 2.否)")
+    private Integer isFeedback = 2;
+
+    @ApiModelProperty(value = "年龄")
+    private Integer age;
+
+    @ApiModelProperty(value = "管辖社区")
+    private String communityName;
+
+    @ApiModelProperty(value = "本月是否已认证(1.是 2.否)")
+    private Integer isAuth;
+
+    @ApiModelProperty(value = "是否健在", example = "1是,2否")
+    private Integer isExist;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/elders/ComElderAuthUserDetailVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/elders/ComElderAuthUserDetailVO.java
new file mode 100644
index 0000000..09eb517
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/elders/ComElderAuthUserDetailVO.java
@@ -0,0 +1,16 @@
+package com.panzhihua.common.model.vos.elders;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("高龄认证用户信息")
+public class ComElderAuthUserDetailVO {
+
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    @ApiModelProperty(value = "身份证")
+    private String idCard;
+}
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/grid/ComActEasyPhotoAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComActEasyPhotoAdminVO.java
new file mode 100644
index 0000000..1a2c533
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComActEasyPhotoAdminVO.java
@@ -0,0 +1,80 @@
+package com.panzhihua.common.model.vos.grid;
+
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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;
+
+/**
+ * 随手拍列表
+ */
+@Data
+@ApiModel("社区活动 》随手拍")
+public class ComActEasyPhotoAdminVO {
+
+    @ApiModelProperty("自增id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("随手拍内容")
+    private String detail;
+
+    @ApiModelProperty("发布人昵称")
+    private String userNickName;
+
+    @ApiModelProperty("发布时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty(value = "是否上报社区处理(0.否 1.是)")
+    private Integer isReport;
+
+    @ApiModelProperty(value = "是否公示(0.否 1.是)")
+    private Integer isPublicity;
+
+    @ApiModelProperty(value = "处理状态(1.待处理 2.已处理)")
+    private Integer handleStatus;
+
+    @ApiModelProperty("发起人头像")
+    private String imageUrl;
+
+    @ApiModelProperty("图片路径列表,逗号分隔")
+    private String photoPathList;
+
+    @ApiModelProperty("发生地址")
+    private String happenAddr;
+
+    @ApiModelProperty(value = "地址备注")
+    private String addrRemark;
+
+    @ApiModelProperty(value = "发生地址经纬度信息,逗号分割")
+    private String lngLat;
+
+    @ApiModelProperty(value = "随手拍类型集合")
+    private List<String> photoTypeList;
+
+    @ApiModelProperty(value = "随手拍处理意见")
+    private String handleResult;
+
+    @ApiModelProperty(value = "处理结果,图片路径列表,逗号分隔")
+    private String handlePhotoList;
+
+    @ApiModelProperty("处理人名字")
+    private String handlerName;
+
+    @ApiModelProperty("处理人id")
+    private Long handlerId;
+
+    @ApiModelProperty("处理时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date feedbackAt;
+
+    @ApiModelProperty("随手拍类型id")
+    private Long classifyId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComActEasyPhotoDetailsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComActEasyPhotoDetailsVO.java
new file mode 100644
index 0000000..912aa6e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComActEasyPhotoDetailsVO.java
@@ -0,0 +1,88 @@
+package com.panzhihua.common.model.vos.grid;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("社区活动 》随手拍详细返回参数")
+public class ComActEasyPhotoDetailsVO {
+
+    @ApiModelProperty(value = "自增id")
+    private Long id;
+
+    @ApiModelProperty(value = "发起人id")
+    private Long sponsorId;
+
+    @ApiModelProperty(value = "发生地址")
+    private String happenAddr;
+
+    @ApiModelProperty(value = "地址备注")
+    private String addrRemark;
+
+    @ApiModelProperty(value = "状态 1待处理 2已处理")
+    private Integer status;
+
+    @ApiModelProperty(value = "处理人id")
+    private Long handlerId;
+
+    @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 examineAt;
+
+    @ApiModelProperty(value = "详情")
+    private String detail;
+
+    @ApiModelProperty(value = "图片路径列表,逗号分隔")
+    private String photoPathList;
+
+    @ApiModelProperty(value = "处理结果")
+    private String handleResult;
+
+    @ApiModelProperty(value = "处理结果,图片路径列表,逗号分隔")
+    private String handlePhotoList;
+
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    @ApiModelProperty(value = "是否匿名发布 0 否 1 是")
+    private Integer isHide;
+
+    @ApiModelProperty(value = "是否需要反馈 0 不需要 1 需要")
+    private Integer isNeedFeedBack;
+
+    @ApiModelProperty(value = "反馈时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date feedbackAt;
+
+    @ApiModelProperty(value = "驳回原因")
+    private String rejectReason;
+
+    @ApiModelProperty(value = "封面图片")
+    private String cover;
+
+    @ApiModelProperty(value = "是否删除 0 否 1 是")
+    private Integer delTag;
+
+    @ApiModelProperty(value = "是否上报社区处理(0.否 1.是)")
+    private Integer isReport;
+
+    @ApiModelProperty(value = "是否公示(0.否 1.是)")
+    private Integer isPublicity;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComActEasyPhotoTypeDetailsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComActEasyPhotoTypeDetailsVO.java
new file mode 100644
index 0000000..a09f845
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComActEasyPhotoTypeDetailsVO.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.vos.grid;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("随手拍类型详细返回参数")
+public class ComActEasyPhotoTypeDetailsVO {
+
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+
+    @ApiModelProperty(value = "随手拍类型名称")
+    private String name;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComActEasyPhotoTypeVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComActEasyPhotoTypeVO.java
new file mode 100644
index 0000000..2fbdc31
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComActEasyPhotoTypeVO.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.vos.grid;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("随手拍类型返回参数")
+public class ComActEasyPhotoTypeVO {
+
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+
+    @ApiModelProperty(value = "随手拍类型名称")
+    private String name;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComActEasyPhotoVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComActEasyPhotoVO.java
new file mode 100644
index 0000000..51616bf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComActEasyPhotoVO.java
@@ -0,0 +1,94 @@
+package com.panzhihua.common.model.vos.grid;
+
+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;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("社区活动 》随手拍返回参数")
+public class ComActEasyPhotoVO {
+
+    @ApiModelProperty(value = "自增id")
+    private Long id;
+
+    @ApiModelProperty(value = "发起人id")
+    private Long sponsorId;
+
+    @ApiModelProperty(value = "发生地址")
+    private String happenAddr;
+
+    @ApiModelProperty(value = "地址备注")
+    private String addrRemark;
+
+    @ApiModelProperty(value = "状态 1待处理 2已处理")
+    private Integer handleStatus;
+
+    @ApiModelProperty(value = "处理人id")
+    private Long handlerId;
+
+    @ApiModelProperty(value = "处理人名字")
+    private String handlerName;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty(value = "详情")
+    private String detail;
+
+    @ApiModelProperty(value = "图片路径列表,逗号分隔")
+    private String photoPathList;
+
+    @ApiModelProperty(value = "处理结果")
+    private String handleResult;
+
+    @ApiModelProperty(value = "处理结果,图片路径列表,逗号分隔")
+    private String handlePhotoList;
+
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    @ApiModelProperty(value = "是否匿名发布 0 否 1 是")
+    private Integer isHide;
+
+    @ApiModelProperty(value = "处理时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date feedbackAt;
+
+    // @ApiModelProperty(value = "封面图片")
+    // private String cover;
+
+    @ApiModelProperty(value = "是否删除 0 否 1 是")
+    private Integer delTag;
+
+    @ApiModelProperty(value = "是否上报社区处理(0.否 1.是)")
+    private Integer isReport;
+
+    @ApiModelProperty(value = "是否公示(0.否 1.是)")
+    private Integer isPublicity;
+
+    @ApiModelProperty(value = "发布人名称")
+    private String nickName;
+
+    @ApiModelProperty(value = "发布人头像")
+    private String imageUrl;
+
+    @ApiModelProperty(value = "发生地址经纬度信息,逗号分割(长的在前面,短的在后面)")
+    private String lngLat;
+
+    @ApiModelProperty(value = "随手拍类型列表")
+    private List<String> easyPhotoList;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComGridActVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComGridActVO.java
new file mode 100644
index 0000000..b710c82
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComGridActVO.java
@@ -0,0 +1,92 @@
+package com.panzhihua.common.model.vos.grid;
+
+import java.util.Date;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotBlank;
+
+import com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 社区
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-15 10:06
+ **/
+@Data
+@ApiModel("网格社区表")
+public class ComGridActVO {
+
+    @ApiModelProperty("社区id")
+    private Long communityId;
+
+    @ApiModelProperty("社区名字")
+    @NotBlank(groups = {AddGroup.class}, message = "社区名字不能为空")
+    private String name;
+
+    @ApiModelProperty("社区地址")
+    @NotBlank(groups = {AddGroup.class}, message = "社区地址不能为空")
+    private String address;
+
+    @ApiModelProperty("经度")
+    @NotBlank(groups = {AddGroup.class}, message = "经度不能为空")
+    private String lng;
+
+    @ApiModelProperty("维度")
+    @NotBlank(groups = {AddGroup.class}, message = "纬度不能为空")
+    private String lat;
+
+    @ApiModelProperty("创建时间")
+    private Date createAt;
+
+    @ApiModelProperty("省份地址编码")
+    @NotBlank(groups = {AddGroup.class}, message = "省份地址编码不能为空")
+    private String provinceCode;
+
+    @ApiModelProperty("市级地址编码")
+    @NotBlank(groups = {AddGroup.class}, message = "市级地址编码不能为空")
+    private String cityCode;
+
+    @ApiModelProperty("区级地址编码")
+    @NotBlank(groups = {AddGroup.class}, message = "区级地址编码不能为空")
+    private String areaCode;
+
+    @ApiModelProperty("区级地址编码-名字")
+    private String areaName;
+
+    @ApiModelProperty("社区面积")
+    @Min(value = 1, groups = {AddGroup.class}, message = "社区面积不能为空")
+    private Double square;
+
+    @ApiModelProperty("联系人")
+    @NotBlank(groups = {AddGroup.class}, message = "联系人不能为空")
+    private String contacts;
+
+    @ApiModelProperty("联系人电话")
+    @NotBlank(groups = {AddGroup.class}, message = "联系人电话不能为空")
+    private String contactsPhone;
+
+    @ApiModelProperty("超管账号")
+    @NotBlank(groups = {AddGroup.class}, message = "超管账号不能为空")
+    private String account;
+
+    @ApiModelProperty("账号密码")
+    @NotBlank(groups = {AddGroup.class}, message = "账号密码不能为空")
+    private String password;
+
+    @ApiModelProperty(value = "状态 0 启用 1 禁用", example = "0")
+    private Integer state;
+
+    @ApiModelProperty("距离-单位米")
+    private String distance;
+
+    @ApiModelProperty("街道Id")
+    private Long streetId;
+
+    @ApiModelProperty("是否默认")
+    private Boolean isGridUserDefault = false;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComMapGridDetailVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComMapGridDetailVO.java
new file mode 100644
index 0000000..52555b1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComMapGridDetailVO.java
@@ -0,0 +1,42 @@
+package com.panzhihua.common.model.vos.grid;
+
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 地图模块-网格详细信息
+ */
+@Data
+@ApiModel("地图模块-网格详细信息")
+public class ComMapGridDetailVO {
+
+    @ApiModelProperty("网格id")
+    private Long id;
+
+    @ApiModelProperty("网格名称")
+    private String gridName;
+
+    @ApiModelProperty("网格面积")
+    private String area;
+
+    @ApiModelProperty("线条颜色")
+    private String lineColor;
+
+    @ApiModelProperty("线条宽度")
+    private String lineBroadband;
+
+    @ApiModelProperty("填充颜色")
+    private String fillColor;
+
+    @ApiModelProperty("备注")
+    private String remarks;
+
+    @ApiModelProperty("围栏数据")
+    private String data;
+
+    @ApiModelProperty("网格员待处理事件列表")
+    private List<ComMapGridEventVO> gridEventList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComMapGridEventVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComMapGridEventVO.java
new file mode 100644
index 0000000..77a1006
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComMapGridEventVO.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.vos.grid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 地图模块-事件信息
+ */
+@Data
+@ApiModel("地图模块-事件信息")
+public class ComMapGridEventVO {
+
+    @ApiModelProperty("事件id")
+    private Long id;
+
+    @ApiModelProperty("事件类型(1.治安隐患 2.公共服务 3.矛盾纠纷 4.不稳定因素 5.突发事件 6.特殊人员上报 7.走访任务)")
+    private String type;
+
+    @ApiModelProperty("事件标题")
+    private String eventTitle;
+
+    @ApiModelProperty("发生地点备注")
+    private String happentAddress;
+
+    @ApiModelProperty("发生地点位置")
+    private String happenAddress;
+
+    @ApiModelProperty("发生的精度纬度信息(逗号隔开)")
+    private String happentLatLng;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComMngVillageBuildingHouseDetailVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComMngVillageBuildingHouseDetailVO.java
new file mode 100644
index 0000000..49d1713
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComMngVillageBuildingHouseDetailVO.java
@@ -0,0 +1,56 @@
+package com.panzhihua.common.model.vos.grid;
+
+import java.util.List;
+
+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;
+
+/**
+ * 小区下楼栋单元房间详情返回参数
+ */
+@Data
+@ApiModel("小区下楼栋单元房间详情返回参数")
+public class ComMngVillageBuildingHouseDetailVO {
+
+    @ApiModelProperty("房屋id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("小区名称")
+    private String villageName;
+
+    @ApiModelProperty("楼栋号")
+    private String floor;
+
+    @ApiModelProperty("单元号")
+    private String unitNo;
+
+    @ApiModelProperty("楼层数")
+    private String buildingNum;
+
+    @ApiModelProperty("户室号")
+    private String houseNo;
+
+    @ApiModelProperty("房屋地址")
+    private String address;
+
+    @ApiModelProperty("房屋状态(1.自住 2.租住 3.其他)")
+    private Integer status;
+
+    @ApiModelProperty("纬度")
+    private String lat;
+
+    @ApiModelProperty("经度")
+    private String lng;
+
+    @ApiModelProperty("户主列表")
+    private List<PopulationListVO> householderList;
+
+    @ApiModelProperty("居民列表")
+    private List<PopulationListVO> populationList;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComMngVillageBuildingHouseVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComMngVillageBuildingHouseVO.java
new file mode 100644
index 0000000..65b7882
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComMngVillageBuildingHouseVO.java
@@ -0,0 +1,33 @@
+package com.panzhihua.common.model.vos.grid;
+
+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;
+
+/**
+ * 小区下楼栋单元列表返回参数
+ */
+@Data
+@ApiModel("小区下楼栋单元房间列表返回参数")
+public class ComMngVillageBuildingHouseVO {
+
+    @ApiModelProperty("房屋id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("户室号")
+    private String houseNo;
+
+    @ApiModelProperty("房屋状态(1.自住 2.租住 3.空置 4.其他)")
+    private Integer status;
+
+    @ApiModelProperty("在住居民数")
+    private Integer userNum;
+
+    @ApiModelProperty("楼层数")
+    private String buildingNum;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComMngVillageBuildingVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComMngVillageBuildingVO.java
new file mode 100644
index 0000000..7117dd7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/ComMngVillageBuildingVO.java
@@ -0,0 +1,33 @@
+package com.panzhihua.common.model.vos.grid;
+
+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;
+
+/**
+ * 小区下楼栋单元列表返回参数
+ */
+@Data
+@ApiModel("小区下楼栋单元列表返回参数")
+public class ComMngVillageBuildingVO {
+
+    @ApiModelProperty("自增id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long villageId;
+
+    @ApiModelProperty("楼栋号")
+    private String floor;
+
+    @ApiModelProperty("单元号")
+    private String unitNo;
+
+    @ApiModelProperty("拼接好楼栋号")
+    private String floorString;
+
+    @ApiModelProperty("拼接好单元号")
+    private String unitNoString;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventApplicationAppReleaseDetailsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventApplicationAppReleaseDetailsVO.java
new file mode 100644
index 0000000..18ff976
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventApplicationAppReleaseDetailsVO.java
@@ -0,0 +1,47 @@
+package com.panzhihua.common.model.vos.grid;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("APP应用版本信息详细返回参数")
+public class EventApplicationAppReleaseDetailsVO {
+
+    @ApiModelProperty(value = "id")
+    private Long id;
+
+    @ApiModelProperty(value = "应用ID")
+    private Integer productId;
+
+    @ApiModelProperty(value = "应用名称")
+    private String productName;
+
+    @ApiModelProperty(value = "版本编号")
+    private String releaseNumber;
+
+    @ApiModelProperty(value = "通知行为(1、强制更新2、提示更新)")
+    private Integer action;
+
+    @ApiModelProperty(value = "版本地址")
+    private String url;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty(value = "创建人")
+    private Long createBy;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventApplicationAppReleaseVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventApplicationAppReleaseVO.java
new file mode 100644
index 0000000..be1e433
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventApplicationAppReleaseVO.java
@@ -0,0 +1,47 @@
+package com.panzhihua.common.model.vos.grid;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("APP应用版本信息返回参数")
+public class EventApplicationAppReleaseVO {
+
+    @ApiModelProperty(value = "id")
+    private Long id;
+
+    @ApiModelProperty(value = "应用ID")
+    private Integer productId;
+
+    @ApiModelProperty(value = "应用名称")
+    private String productName;
+
+    @ApiModelProperty(value = "版本编号")
+    private String releaseNumber;
+
+    @ApiModelProperty(value = "通知行为(1、强制更新2、提示更新)")
+    private Integer action;
+
+    @ApiModelProperty(value = "版本地址")
+    private String url;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty(value = "创建人")
+    private Long createBy;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventApplicationUserNoticeDetailsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventApplicationUserNoticeDetailsVO.java
new file mode 100644
index 0000000..637a387
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventApplicationUserNoticeDetailsVO.java
@@ -0,0 +1,44 @@
+package com.panzhihua.common.model.vos.grid;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("用户协议和隐私政策信息详细返回参数")
+public class EventApplicationUserNoticeDetailsVO {
+
+    @ApiModelProperty(value = "id")
+    private Long id;
+
+    @ApiModelProperty(value = "应用ID")
+    private Integer productId;
+
+    @ApiModelProperty(value = "应用名称")
+    private String productName;
+
+    @ApiModelProperty(value = "通知行为(1、强制通知必须手段确定2、提示更新,自动消退)")
+    private Integer action;
+
+    @ApiModelProperty(value = "内容")
+    private String content;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty(value = "创建人")
+    private Long createBy;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventApplicationUserNoticeVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventApplicationUserNoticeVO.java
new file mode 100644
index 0000000..f8a7a0d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventApplicationUserNoticeVO.java
@@ -0,0 +1,44 @@
+package com.panzhihua.common.model.vos.grid;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("用户协议和隐私政策信息返回参数")
+public class EventApplicationUserNoticeVO {
+
+    @ApiModelProperty(value = "id")
+    private Long id;
+
+    @ApiModelProperty(value = "应用ID")
+    private Integer productId;
+
+    @ApiModelProperty(value = "应用名称")
+    private String productName;
+
+    @ApiModelProperty(value = "通知行为(1、强制通知必须手段确定2、提示更新,自动消退)")
+    private Integer action;
+
+    @ApiModelProperty(value = "内容")
+    private String content;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty(value = "创建人")
+    private Long createBy;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventDetailsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventDetailsVO.java
new file mode 100644
index 0000000..c85c0d2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventDetailsVO.java
@@ -0,0 +1,206 @@
+package com.panzhihua.common.model.vos.grid;
+
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("事件详细返回参数")
+public class EventDetailsVO {
+
+    @ApiModelProperty(value = "id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty(value = "事件处理状态")
+    private Integer eventDealStatus;
+
+    @ApiModelProperty(value = "服务单号")
+    private String orderSn;
+
+    @ApiModelProperty(value = "事件类型")
+    private String EventClazz;
+
+    @ApiModelProperty(value = "1、办件事件2是宣传事件3是阅读事件")
+    private Long eventCategory;
+
+    @ApiModelProperty(value = "网格员所处的街道")
+    private Long gridMemberStreet;
+
+    @ApiModelProperty(value = "网格员所处社区")
+    private Long gridMemberCommunity;
+
+    @ApiModelProperty(value = "网格ID")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long gridId;
+
+    @ApiModelProperty(value = "网格名称")
+    private String gridName;
+
+    @ApiModelProperty(value = "网格员")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long gridMemberId;
+
+    @ApiModelProperty(value = "网格员名字")
+    private String gridMemberName;
+
+    @ApiModelProperty(value = "网格员头像")
+    private String gridMemberImageUrl;
+
+    @ApiModelProperty(value = "网格员联系方式")
+    private String gridMemberTelephone;
+
+    @ApiModelProperty(value = "事件标题")
+    private String eventTitle;
+
+    @ApiModelProperty(value = "宣传类型")
+    private String propagandaType;
+
+    @ApiModelProperty(value = "宣传时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date propagandaTime;
+
+    @ApiModelProperty(value = "当event_type_category是1填写事件类型1治安隐患、2公共服务、3矛盾纠纷、4不稳定因素、5突发事件、6特殊人群信息上报")
+    private Integer eventType;
+
+    @ApiModelProperty(value = "事件描述")
+    private String eventDes;
+
+    @ApiModelProperty(value = "宣传对象")
+    private String propagandaObject;
+
+    @ApiModelProperty(value = "宣传人数")
+    private String propagandaNum;
+
+    @ApiModelProperty(value = "社区处理(0是无需社区1是社区处理)")
+    private Integer communityProcess;
+
+    @ApiModelProperty(value = "发生时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date happenTime;
+
+    @ApiModelProperty(value = "事件发生地点备注")
+    private String happentAddress;
+
+    @ApiModelProperty(value = "事件发生地点")
+    private String happenAddress;
+
+    @ApiModelProperty(value = "发生的精度纬度信息(逗号隔开)")
+    private String happentLatLng;
+
+    @ApiModelProperty(value = "事件状态(1草稿箱2发布3逻辑删除4、撤销)")
+    private Integer eventStatus;
+
+    @ApiModelProperty(value = "1待处理2已解决3待验证")
+    private Integer eventProcessStatus;
+
+    @ApiModelProperty(value = "当前处理对象类型(1、网格员2、社区3、是街道)")
+    private Integer processType;
+
+    @ApiModelProperty(value = "处理人ID")
+    private Long processUserId;
+
+    @ApiModelProperty(value = "处理流程记录ID")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long processRecordId;
+
+    @ApiModelProperty(value = "处理人名称")
+    private String processUserName;
+
+    @ApiModelProperty(value = "处理时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date processDate;
+
+    @ApiModelProperty(value = "解决人针对解决事件的处理描述")
+    private String processDesc;
+
+    @ApiModelProperty(value = "事件来源")
+    private String eventResource;
+
+    @ApiModelProperty(value = "危险级别")
+    private Integer dangerLevel;
+
+    @ApiModelProperty(value = "红牌")
+    private Boolean redCard;
+
+    @ApiModelProperty(value = "黄牌")
+    private Boolean yellowCard;
+
+    @ApiModelProperty(value = "是否有效")
+    private Boolean invalid;
+
+    @ApiModelProperty(value = "是否重大")
+    private Boolean major;
+
+    @ApiModelProperty(value = "死亡人数")
+    private Integer deathsNumber;
+
+    @ApiModelProperty(value = "受伤人数")
+    private Integer injuriesNumber;
+
+    @ApiModelProperty(value = "是否疑难事件")
+    private Boolean difficult;
+
+    @ApiModelProperty(value = "是否紧急")
+    private Boolean urgent;
+
+    @ApiModelProperty(value = "是否催办")
+    private Boolean urgentDell;
+
+    @ApiModelProperty(value = "上报提交时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date submitDate;
+
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+
+    @ApiModelProperty(value = "创建人姓名")
+    private String creator;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty(value = "修改人")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAt;
+
+    @ApiModelProperty(value = "音频")
+    private List<EventResourceVO> audios;
+
+    @ApiModelProperty(value = "视频")
+    private List<EventResourceVO> videos;
+
+    @ApiModelProperty(value = "图片")
+    private List<EventResourceVO> pics;
+
+    @ApiModelProperty(value = "事件处理数据")
+    private List<EventTransferRecordVO> trans;
+
+    @ApiModelProperty(value = "特殊人群列表")
+    private List<EventSpecialPopulationDetailsVO> populationList;
+
+    @ApiModelProperty(value = "网格绑定社区id")
+    private Long communityId;
+
+    @ApiModelProperty(value = "撤销人")
+    private String revoke;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridAdminVO.java
new file mode 100644
index 0000000..f13f274
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridAdminVO.java
@@ -0,0 +1,51 @@
+package com.panzhihua.common.model.vos.grid;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+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;
+
+@Data
+@ApiModel("管理后台-网格返回参数")
+public class EventGridAdminVO {
+
+    @ApiModelProperty(value = "网格id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+    @ApiModelProperty(value = "网格名称")
+    private String gridName;
+    @ApiModelProperty(value = "网格员")
+    private List<GridMemberAdminVO> gridMembers;
+    @ApiModelProperty(value = "网格描述")
+    private String remarks;
+    @ApiModelProperty(value = "网格面积")
+    private BigDecimal area;
+    @ApiModelProperty(value = "居住人口")
+    private Integer populationTotal = 0;
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+    @ApiModelProperty(value = "线条颜色")
+    private String lineColor;
+    @ApiModelProperty(value = "线条宽度")
+    private String lineBroadband;
+    @ApiModelProperty(value = "填充颜色")
+    private String fillColor;
+    @ApiModelProperty(value = "围栏数据")
+    private String data;
+    @ApiModelProperty(value = "所在社区")
+    private String communityName;
+    @ApiModelProperty(value = "关联市平台id")
+    private String lcGirdId;
+    @ApiModelProperty(value = "关联市平台网格")
+    private String lcGirdName;
+    @ApiModelProperty(value = "网格所属社区id")
+    private Long gridCommunityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridCommunityAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridCommunityAdminVO.java
new file mode 100644
index 0000000..d662fbe
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridCommunityAdminVO.java
@@ -0,0 +1,26 @@
+package com.panzhihua.common.model.vos.grid;
+
+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;
+
+@Data
+@ApiModel("管理后台-社区返回参数")
+public class EventGridCommunityAdminVO {
+
+    @ApiModelProperty(value = "社区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long communityId;
+
+    @ApiModelProperty(value = "社区名称")
+    private String name;
+
+    @ApiModelProperty(value = "经度")
+    private String lng;
+
+    @ApiModelProperty(value = "维度")
+    private String lat;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridDataAreaVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridDataAreaVO.java
new file mode 100644
index 0000000..9eff6a3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridDataAreaVO.java
@@ -0,0 +1,87 @@
+package com.panzhihua.common.model.vos.grid;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("网格数据")
+public class EventGridDataAreaVO {
+
+    @ApiModelProperty(value = "主键ID")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty(value = "类型,1、区县网格2街道网格3社区网格")
+    private Long type;
+
+    @ApiModelProperty(value = "区/县ID")
+    private Long zoneId;
+
+    @ApiModelProperty(value = "区/县名称")
+    private String zoneName;
+
+    @ApiModelProperty(value = "网格所属街道")
+    private Long gridStreetId;
+
+    @ApiModelProperty(value = "网格所属街道名称")
+    private String gridStreetName;
+
+    @ApiModelProperty(value = "网格所属社区ID")
+    private Long gridCommunityId;
+
+    @ApiModelProperty(value = "网格所属社区名称")
+    private String gridCommunityName;
+
+    @ApiModelProperty(value = "网格名称")
+    private String gridName;
+
+    @ApiModelProperty(value = "所属图层")
+    private Integer mapLevel;
+
+    @ApiModelProperty(value = "面积")
+    private String area;
+
+    @ApiModelProperty(value = "线条颜色")
+    private String lineColor;
+
+    @ApiModelProperty(value = "线条宽度")
+    private String lineBroadband;
+
+    @ApiModelProperty(value = "填充颜色")
+    private String fillColor;
+
+    @ApiModelProperty(value = "备注")
+    private String remarks;
+
+    @ApiModelProperty(value = "围栏数据")
+    private String data;
+
+    @ApiModelProperty(value = "创建人")
+    private Long createBy;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty(value = "修改人")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridDataDetailsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridDataDetailsVO.java
new file mode 100644
index 0000000..c5242bf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridDataDetailsVO.java
@@ -0,0 +1,75 @@
+package com.panzhihua.common.model.vos.grid;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("区县/街道/社区/网格员网格数据管理详细返回参数")
+public class EventGridDataDetailsVO {
+
+    @ApiModelProperty(value = "主键ID")
+    private Long id;
+
+    @ApiModelProperty(value = "类型,1、区县网格2街道网格3社区网格")
+    private Long type;
+
+    @ApiModelProperty(value = "区/县ID")
+    private Long zoneId;
+
+    @ApiModelProperty(value = "网格所属街道")
+    private Long gridStreetId;
+
+    @ApiModelProperty(value = "网格所属社区ID")
+    private Long gridCommunityId;
+
+    @ApiModelProperty(value = "网格名称")
+    private String gridName;
+
+    @ApiModelProperty(value = "所属图层")
+    private Integer mapLevel;
+
+    @ApiModelProperty(value = "面积")
+    private String area;
+
+    @ApiModelProperty(value = "线条颜色")
+    private String lineColor;
+
+    @ApiModelProperty(value = "线条宽度")
+    private String lineBroadband;
+
+    @ApiModelProperty(value = "填充颜色")
+    private String fillColor;
+
+    @ApiModelProperty(value = "备注")
+    private String remarks;
+
+    @ApiModelProperty(value = "围栏数据")
+    private String data;
+
+    @ApiModelProperty(value = "创建人")
+    private Long createBy;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty(value = "修改人")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridDataVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridDataVO.java
new file mode 100644
index 0000000..42f6baa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridDataVO.java
@@ -0,0 +1,78 @@
+package com.panzhihua.common.model.vos.grid;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("区县/街道/社区/网格员网格数据管理返回参数")
+public class EventGridDataVO {
+
+    @ApiModelProperty(value = "主键ID")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty(value = "类型,1、区县网格2街道网格3社区网格")
+    private Long type;
+
+    @ApiModelProperty(value = "区/县ID")
+    private Long zoneId;
+
+    @ApiModelProperty(value = "网格所属街道")
+    private Long gridStreetId;
+
+    @ApiModelProperty(value = "网格所属社区ID")
+    private Long gridCommunityId;
+
+    @ApiModelProperty(value = "网格名称")
+    private String gridName;
+
+    @ApiModelProperty(value = "所属图层")
+    private Integer mapLevel;
+
+    @ApiModelProperty(value = "面积")
+    private String area;
+
+    @ApiModelProperty(value = "线条颜色")
+    private String lineColor;
+
+    @ApiModelProperty(value = "线条宽度")
+    private String lineBroadband;
+
+    @ApiModelProperty(value = "填充颜色")
+    private String fillColor;
+
+    @ApiModelProperty(value = "备注")
+    private String remarks;
+
+    @ApiModelProperty(value = "围栏数据")
+    private String data;
+
+    @ApiModelProperty(value = "创建人")
+    private Long createBy;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty(value = "修改人")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridMemberAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridMemberAdminVO.java
new file mode 100644
index 0000000..32e3ec6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridMemberAdminVO.java
@@ -0,0 +1,15 @@
+package com.panzhihua.common.model.vos.grid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("管理后台-网格员返回参数")
+public class EventGridMemberAdminVO {
+
+    @ApiModelProperty(value = "网格id")
+    private Long userId;
+    @ApiModelProperty(value = "网格名称")
+    private String nickName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridMemberGpsLogDetailsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridMemberGpsLogDetailsVO.java
new file mode 100644
index 0000000..7073969
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridMemberGpsLogDetailsVO.java
@@ -0,0 +1,53 @@
+package com.panzhihua.common.model.vos.grid;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("网格员定时上报地理信息详细返回参数")
+public class EventGridMemberGpsLogDetailsVO {
+
+    @ApiModelProperty(value = "主键ID")
+    private Long id;
+
+    @ApiModelProperty(value = "网格所属街道")
+    private Long gridStreetId;
+
+    @ApiModelProperty(value = "网格所属社区ID")
+    private Long gridCommunityId;
+
+    @ApiModelProperty(value = "网格ID")
+    private Long gridId;
+
+    @ApiModelProperty(value = "网格名称")
+    private String gridName;
+
+    @ApiModelProperty(value = "网格员ID")
+    private Long gridMemberId;
+
+    @ApiModelProperty(value = "精度维度信息,逗号分割")
+    private String lngLat;
+
+    @ApiModelProperty(value = "位置信息状态(1、为判定2、正常3、是不正常)")
+    private Integer positionStation;
+
+    @ApiModelProperty(value = "创建人")
+    private Long createBy;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridMemberGpsLogVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridMemberGpsLogVO.java
new file mode 100644
index 0000000..90e7bb4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridMemberGpsLogVO.java
@@ -0,0 +1,53 @@
+package com.panzhihua.common.model.vos.grid;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("网格员定时上报地理信息返回参数")
+public class EventGridMemberGpsLogVO {
+
+    @ApiModelProperty(value = "主键ID")
+    private Long id;
+
+    @ApiModelProperty(value = "网格所属街道")
+    private Long gridStreetId;
+
+    @ApiModelProperty(value = "网格所属社区ID")
+    private Long gridCommunityId;
+
+    @ApiModelProperty(value = "网格ID")
+    private Long gridId;
+
+    @ApiModelProperty(value = "网格名称")
+    private String gridName;
+
+    @ApiModelProperty(value = "网格员ID")
+    private Long gridMemberId;
+
+    @ApiModelProperty(value = "精度维度信息,逗号分割")
+    private String lngLat;
+
+    @ApiModelProperty(value = "位置信息状态(1、为判定2、正常3、是不正常)")
+    private Integer positionStation;
+
+    @ApiModelProperty(value = "创建人")
+    private Long createBy;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridMemberRelationDetailsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridMemberRelationDetailsVO.java
new file mode 100644
index 0000000..04a2b5e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridMemberRelationDetailsVO.java
@@ -0,0 +1,47 @@
+package com.panzhihua.common.model.vos.grid;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("网格和网格员的关联关系详细返回参数")
+public class EventGridMemberRelationDetailsVO {
+
+    @ApiModelProperty(value = "主键ID")
+    private Long id;
+
+    @ApiModelProperty(value = "网格所属街道")
+    private Long gridStreetId;
+
+    @ApiModelProperty(value = "网格所属社区ID")
+    private Long gridCommunityId;
+
+    @ApiModelProperty(value = "网格ID")
+    private Long gridId;
+
+    @ApiModelProperty(value = "网格名称")
+    private String gridName;
+
+    @ApiModelProperty(value = "网格员ID")
+    private Long gridMemberId;
+
+    @ApiModelProperty(value = "创建人")
+    private Long createBy;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridMemberRelationVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridMemberRelationVO.java
new file mode 100644
index 0000000..526330a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridMemberRelationVO.java
@@ -0,0 +1,47 @@
+package com.panzhihua.common.model.vos.grid;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("网格和网格员的关联关系返回参数")
+public class EventGridMemberRelationVO {
+
+    @ApiModelProperty(value = "主键ID")
+    private Long id;
+
+    @ApiModelProperty(value = "网格所属街道")
+    private Long gridStreetId;
+
+    @ApiModelProperty(value = "网格所属社区ID")
+    private Long gridCommunityId;
+
+    @ApiModelProperty(value = "网格ID")
+    private Long gridId;
+
+    @ApiModelProperty(value = "网格名称")
+    private String gridName;
+
+    @ApiModelProperty(value = "网格员ID")
+    private Long gridMemberId;
+
+    @ApiModelProperty(value = "创建人")
+    private Long createBy;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridMemberWarnLogAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridMemberWarnLogAdminVO.java
new file mode 100644
index 0000000..b955f42
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridMemberWarnLogAdminVO.java
@@ -0,0 +1,33 @@
+package com.panzhihua.common.model.vos.grid;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("网格员预警记录返回参数")
+public class EventGridMemberWarnLogAdminVO {
+
+    @ApiModelProperty(value = "主键ID")
+    private Long id;
+
+    @ApiModelProperty(value = "地点")
+    private String positionAddress;
+
+    @ApiModelProperty(value = "内容")
+    private String content;
+
+    @ApiModelProperty(value = "预警发生时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private String happenAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridMemberWarnLogDetailsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridMemberWarnLogDetailsVO.java
new file mode 100644
index 0000000..561799d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridMemberWarnLogDetailsVO.java
@@ -0,0 +1,53 @@
+package com.panzhihua.common.model.vos.grid;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("网格员定时上报地理预警记录详细返回参数")
+public class EventGridMemberWarnLogDetailsVO {
+
+    @ApiModelProperty(value = "主键ID")
+    private Long id;
+
+    @ApiModelProperty(value = "网格所属街道")
+    private Long gridStreetId;
+
+    @ApiModelProperty(value = "网格所属社区ID")
+    private Long gridCommunityId;
+
+    @ApiModelProperty(value = "网格ID")
+    private Long gridId;
+
+    @ApiModelProperty(value = "网格名称")
+    private String gridName;
+
+    @ApiModelProperty(value = "网格员ID")
+    private Long gridMemberId;
+
+    @ApiModelProperty(value = "精度维度信息,逗号分割")
+    private String lngLat;
+
+    @ApiModelProperty(value = "预警信息内容")
+    private String content;
+
+    @ApiModelProperty(value = "创建人")
+    private Long createBy;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridMemberWarnLogVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridMemberWarnLogVO.java
new file mode 100644
index 0000000..ba47e8c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventGridMemberWarnLogVO.java
@@ -0,0 +1,53 @@
+package com.panzhihua.common.model.vos.grid;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("网格员定时上报地理预警记录返回参数")
+public class EventGridMemberWarnLogVO {
+
+    @ApiModelProperty(value = "主键ID")
+    private Long id;
+
+    @ApiModelProperty(value = "网格所属街道")
+    private Long gridStreetId;
+
+    @ApiModelProperty(value = "网格所属社区ID")
+    private Long gridCommunityId;
+
+    @ApiModelProperty(value = "网格ID")
+    private Long gridId;
+
+    @ApiModelProperty(value = "网格名称")
+    private String gridName;
+
+    @ApiModelProperty(value = "网格员ID")
+    private Long gridMemberId;
+
+    @ApiModelProperty(value = "精度维度信息,逗号分割")
+    private String lngLat;
+
+    @ApiModelProperty(value = "预警信息内容")
+    private String content;
+
+    @ApiModelProperty(value = "创建人")
+    private Long createBy;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventLcGridAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventLcGridAdminVO.java
new file mode 100644
index 0000000..dcbb2de
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventLcGridAdminVO.java
@@ -0,0 +1,20 @@
+package com.panzhihua.common.model.vos.grid;
+
+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;
+
+@Data
+@ApiModel("管理后台-市平台网格返回参数")
+public class EventLcGridAdminVO {
+
+    @ApiModelProperty(value = "市平台网格关联id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty(value = "浪潮市平台网格名称")
+    private String lcGridName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventMainMemberDetailsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventMainMemberDetailsVO.java
new file mode 100644
index 0000000..709626c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventMainMemberDetailsVO.java
@@ -0,0 +1,116 @@
+package com.panzhihua.common.model.vos.grid;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("重点人群记录详细返回参数")
+public class EventMainMemberDetailsVO {
+
+    @ApiModelProperty(value = "id")
+    private Long id;
+
+    @ApiModelProperty(value = "网格员所处的街道")
+    private Long gridMemberStreet;
+
+    @ApiModelProperty(value = "网格员所处社区")
+    private Long gridMemberCommunity;
+
+    @ApiModelProperty(value = "网格员")
+    private Long gridMember;
+
+    @ApiModelProperty(value = "网格员名字")
+    private String gridMemberName;
+
+    @ApiModelProperty(value = "网格员联系方式")
+    private String gridMemberTele;
+
+    @ApiModelProperty(value = "需走访人ID")
+    private Long visiterId;
+
+    @ApiModelProperty(value = "需走访人名字")
+    private String visiterName;
+
+    @ApiModelProperty(value = "需走访人员性别")
+    private Integer visiterSex;
+
+    @ApiModelProperty(value = "需走访人电话")
+    private String visiterTele;
+
+    @ApiModelProperty(value = "需走访人居住地址")
+    private String visiterAddress;
+
+    @ApiModelProperty(value = "需走访人地址精度纬度信息(逗号隔开)")
+    private String visiterAddressLatLng;
+
+    @ApiModelProperty(value = "人员类型1吸毒2严重精神障碍3刑释人员4社区矫正人员")
+    private Integer visiterType;
+
+    @ApiModelProperty(value = "社区处理(0是无需社区1是社区处理)")
+    private Integer actOpara;
+
+    @ApiModelProperty(value = "事件状态(1待处理2自己已解决3待验证4草稿箱5已撤销6异常)")
+    private Integer eventStatus;
+
+    @ApiModelProperty(value = "上报状态")
+    private Integer reporting;
+
+    @ApiModelProperty(value = "当前处理对象类型(1、网格员2、社区3、是街道)")
+    private Integer dellType;
+
+    @ApiModelProperty(value = "处理人ID")
+    private Long dellUserId;
+
+    @ApiModelProperty(value = "处理人名称")
+    private String dellUserName;
+
+    @ApiModelProperty(value = "处理时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date dellDate;
+
+    @ApiModelProperty(value = "解决人针对解决事件的处理描述")
+    private String dellDesc;
+
+    @ApiModelProperty(value = "是否有效")
+    private Boolean invalid;
+
+    @ApiModelProperty(value = "是否紧急")
+    private Boolean urgent;
+
+    @ApiModelProperty(value = "是否催办")
+    private Boolean urgentDell;
+
+    @ApiModelProperty(value = "上报提交时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date submitDate;
+
+    @ApiModelProperty(value = "走访频率配置,一个月几次")
+    private String visiterConfig;
+
+    @ApiModelProperty(value = "创建人")
+    private Long createBy;
+
+    @ApiModelProperty(value = "创建事件")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty(value = "修改人")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventMainMemberVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventMainMemberVO.java
new file mode 100644
index 0000000..6e06206
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventMainMemberVO.java
@@ -0,0 +1,116 @@
+package com.panzhihua.common.model.vos.grid;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("重点人群记录返回参数")
+public class EventMainMemberVO {
+
+    @ApiModelProperty(value = "id")
+    private Long id;
+
+    @ApiModelProperty(value = "网格员所处的街道")
+    private Long gridMemberStreet;
+
+    @ApiModelProperty(value = "网格员所处社区")
+    private Long gridMemberCommunity;
+
+    @ApiModelProperty(value = "网格员")
+    private Long gridMember;
+
+    @ApiModelProperty(value = "网格员名字")
+    private String gridMemberName;
+
+    @ApiModelProperty(value = "网格员联系方式")
+    private String gridMemberTele;
+
+    @ApiModelProperty(value = "需走访人ID")
+    private Long visiterId;
+
+    @ApiModelProperty(value = "需走访人名字")
+    private String visiterName;
+
+    @ApiModelProperty(value = "需走访人员性别")
+    private Integer visiterSex;
+
+    @ApiModelProperty(value = "需走访人电话")
+    private String visiterTele;
+
+    @ApiModelProperty(value = "需走访人居住地址")
+    private String visiterAddress;
+
+    @ApiModelProperty(value = "需走访人地址精度纬度信息(逗号隔开)")
+    private String visiterAddressLatLng;
+
+    @ApiModelProperty(value = "人员类型1吸毒2严重精神障碍3刑释人员4社区矫正人员")
+    private Integer visiterType;
+
+    @ApiModelProperty(value = "社区处理(0是无需社区1是社区处理)")
+    private Integer actOpara;
+
+    @ApiModelProperty(value = "事件状态(1待处理2自己已解决3待验证4草稿箱5已撤销6异常)")
+    private Integer eventStatus;
+
+    @ApiModelProperty(value = "上报状态")
+    private Integer reporting;
+
+    @ApiModelProperty(value = "当前处理对象类型(1、网格员2、社区3、是街道)")
+    private Integer dellType;
+
+    @ApiModelProperty(value = "处理人ID")
+    private Long dellUserId;
+
+    @ApiModelProperty(value = "处理人名称")
+    private String dellUserName;
+
+    @ApiModelProperty(value = "处理时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date dellDate;
+
+    @ApiModelProperty(value = "解决人针对解决事件的处理描述")
+    private String dellDesc;
+
+    @ApiModelProperty(value = "是否有效")
+    private Boolean invalid;
+
+    @ApiModelProperty(value = "是否紧急")
+    private Boolean urgent;
+
+    @ApiModelProperty(value = "是否催办")
+    private Boolean urgentDell;
+
+    @ApiModelProperty(value = "上报提交时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date submitDate;
+
+    @ApiModelProperty(value = "走访频率配置,一个月几次")
+    private String visiterConfig;
+
+    @ApiModelProperty(value = "创建人")
+    private Long createBy;
+
+    @ApiModelProperty(value = "创建事件")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty(value = "修改人")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventMapGridCascadeVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventMapGridCascadeVO.java
new file mode 100644
index 0000000..f95de6f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventMapGridCascadeVO.java
@@ -0,0 +1,28 @@
+package com.panzhihua.common.model.vos.grid;
+
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 地图模块-网格员绑定的网格信息
+ */
+@Data
+@ApiModel("地图模块-网格员绑定的网格信息")
+public class EventMapGridCascadeVO {
+
+    @ApiModelProperty("网格id")
+    private Long gridId;
+
+    @ApiModelProperty("网格名字")
+    private String gridName;
+
+    @ApiModelProperty("网格所属社区id")
+    private Long gridCommunityId;
+
+    @ApiModelProperty("社区下网格列表")
+    private List<EventMapGridCascadeVO> childList;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventMapGridVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventMapGridVO.java
new file mode 100644
index 0000000..57d0071
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventMapGridVO.java
@@ -0,0 +1,23 @@
+package com.panzhihua.common.model.vos.grid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 地图模块-网格员绑定的网格信息
+ */
+@Data
+@ApiModel("地图模块-网格员绑定的网格信息")
+public class EventMapGridVO {
+
+    @ApiModelProperty("网格id")
+    private Long gridId;
+
+    @ApiModelProperty("网格名字")
+    private String gridName;
+
+    @ApiModelProperty("网格社区id")
+    private Long gridCommunityId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventMapTrajectoryVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventMapTrajectoryVO.java
new file mode 100644
index 0000000..a04e62b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventMapTrajectoryVO.java
@@ -0,0 +1,20 @@
+package com.panzhihua.common.model.vos.grid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 地图模块-网格员运动轨迹返回参数
+ */
+@Data
+@ApiModel("地图模块-网格员运动轨迹返回参数")
+public class EventMapTrajectoryVO {
+
+    @ApiModelProperty("运动轨迹id")
+    private Long id;
+
+    @ApiModelProperty("运动轨迹经纬度")
+    private String lngLat;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventResourceDetailsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventResourceDetailsVO.java
new file mode 100644
index 0000000..6715e97
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventResourceDetailsVO.java
@@ -0,0 +1,47 @@
+package com.panzhihua.common.model.vos.grid;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("事件或者走访中关联的图片音频和视频文件详细返回参数")
+public class EventResourceDetailsVO {
+
+    @ApiModelProperty(value = "分类(1、事件 2、走访)")
+    private Integer classification;
+
+    @ApiModelProperty(value = "事件或者走访任务关联ID")
+    private Long id;
+
+    @ApiModelProperty(value = "事件上传的资源类型(1是图片2是音频3是是视频)")
+    private Integer type;
+
+    @ApiModelProperty(value = "资源名称")
+    private String resourceName;
+
+    @ApiModelProperty(value = "资源大小")
+    private String resourceSize;
+
+    @ApiModelProperty(value = "事件上传的资源URL地址")
+    private String url;
+
+    @ApiModelProperty(value = "创建人")
+    private Long createBy;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventResourceVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventResourceVO.java
new file mode 100644
index 0000000..960be3f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventResourceVO.java
@@ -0,0 +1,53 @@
+package com.panzhihua.common.model.vos.grid;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("事件或者走访中关联的图片音频和视频文件返回参数")
+public class EventResourceVO {
+
+    @ApiModelProperty(value = "分类(1、事件 2、走访 3、事件流转))")
+    private Integer classification;
+
+    @ApiModelProperty(value = "事件或者走访任务关联ID")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty(value = "事件上传的资源类型(1是图片2是音频3是是视频)")
+    private Integer type;
+
+    @ApiModelProperty(value = "资源名称")
+    private String resourceName;
+
+    @ApiModelProperty(value = "资源大小")
+    private String resourceSize;
+
+    @ApiModelProperty(value = "资源时长")
+    private Integer resourceTime;
+
+    @ApiModelProperty(value = "事件上传的资源URL地址")
+    private String url;
+
+    @ApiModelProperty(value = "创建人")
+    private Long createBy;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventSpecialPopulationDetailsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventSpecialPopulationDetailsVO.java
new file mode 100644
index 0000000..bcec63f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventSpecialPopulationDetailsVO.java
@@ -0,0 +1,52 @@
+package com.panzhihua.common.model.vos.grid;
+
+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;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@EncryptDecryptClass
+@ApiModel("特殊人群信息返回参数")
+public class EventSpecialPopulationDetailsVO {
+
+    @ApiModelProperty(value = "id")
+    private Long id;
+
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    @ApiModelProperty(value = "手机号")
+    @EncryptDecryptField
+    private String phone;
+
+    @ApiModelProperty(value = "身份证号码")
+    @EncryptDecryptField
+    private String idCard;
+
+    @ApiModelProperty(value = "标签")
+    private String label;
+
+    @ApiModelProperty(value = "居住地址")
+    private String address;
+
+    @ApiModelProperty(value = "民族")
+    private String nation;
+
+    @ApiModelProperty(value = "年龄")
+    private Integer age;
+
+    @ApiModelProperty(
+        value = "政治面貌(1.中共党员2.中共预备党员3.共青团员4.民革党员5.民盟盟员6.民建会员7.8.农工党党员9.致公党党员10.九三学社社员11.台盟盟员12.无党派人士13.群众)")
+    private Integer politicalOutlook;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventSpecialPopulationVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventSpecialPopulationVO.java
new file mode 100644
index 0000000..68e97b0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventSpecialPopulationVO.java
@@ -0,0 +1,47 @@
+package com.panzhihua.common.model.vos.grid;
+
+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;
+
+@Data
+@ApiModel("特殊人群上报-人口数据返回参数")
+@EncryptDecryptClass
+public class EventSpecialPopulationVO {
+
+    @ApiModelProperty("实有人口id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("姓名")
+    private String name;
+
+    @ApiModelProperty("身份证号")
+    @EncryptDecryptField
+    private String idCard;
+
+    @ApiModelProperty("人员标签")
+    private String label;
+
+    @ApiModelProperty("居住地址")
+    private String address;
+
+    @ApiModelProperty("政治面貌(1.中共党员2.中共预备党员3.共青团员4.民革党员5.民盟盟员6.民建会员7.8.农工党党员9.致公党党员10.九三学社社员11.台盟盟员12.无党派人士13.群众)")
+    private Integer politicalOutlook;
+
+    @ApiModelProperty("年龄")
+    private Integer age;
+
+    @ApiModelProperty("手机号")
+    @EncryptDecryptField
+    private String phone;
+
+    @ApiModelProperty("性别(1.男 2.女 3.保密)")
+    private Integer sex;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventStatisticsAllAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventStatisticsAllAdminVO.java
new file mode 100644
index 0000000..5f63d0b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventStatisticsAllAdminVO.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.vos.grid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("管理后台统计网格所有事件返回参数")
+public class EventStatisticsAllAdminVO {
+
+    @ApiModelProperty(value = "发布事件总数")
+    private Integer eventTotal;
+
+    @ApiModelProperty(value = "处理事件总数")
+    private Integer handleEventTotal;
+
+    @ApiModelProperty(value = "发布宣传教育总数")
+    private Integer propagandaEducationTotal;
+
+    @ApiModelProperty(value = "随手拍处理总数")
+    private Integer easyPhotoTotal;
+
+    @ApiModelProperty(value = "新增居民数")
+    private Integer addResidentTotal = 0;
+
+    @ApiModelProperty(value = "新增实有房屋数")
+    private Integer addHouseTotal = 0;
+
+    @ApiModelProperty(value = "完成走访数")
+    private Integer finishVisitTotal = 0;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventStatisticsMemberAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventStatisticsMemberAdminVO.java
new file mode 100644
index 0000000..c28032c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventStatisticsMemberAdminVO.java
@@ -0,0 +1,65 @@
+package com.panzhihua.common.model.vos.grid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("管理后台统计网格员返回参数")
+public class EventStatisticsMemberAdminVO {
+
+    @ApiModelProperty(value = "网格员名称")
+    private String nickName;
+
+    @ApiModelProperty(value = "发布突发事件")
+    private Integer addTFTotal;
+
+    @ApiModelProperty(value = "处理突发事件")
+    private Integer handleTFTotal;
+
+    @ApiModelProperty(value = "发布矛盾纠纷")
+    private Integer addMDTotal;
+
+    @ApiModelProperty(value = "处理矛盾纠纷")
+    private Integer handleMDTotal;
+
+    @ApiModelProperty(value = "发布治安隐患")
+    private Integer addZATotal;
+
+    @ApiModelProperty(value = "处理治安隐患")
+    private Integer handleZATotal;
+
+    @ApiModelProperty(value = "发布不稳定因素")
+    private Integer addBWDTotal;
+
+    @ApiModelProperty(value = "处理不稳定因素")
+    private Integer handleBWDTotal;
+
+    @ApiModelProperty(value = "发布公共服务")
+    private Integer addGGTotal;
+
+    @ApiModelProperty(value = "处理公共服务")
+    private Integer handleGGTotal;
+
+    @ApiModelProperty(value = "发布特殊人群")
+    private Integer addTSTotal;
+
+    @ApiModelProperty(value = "处理特殊人群")
+    private Integer handleTSTotal;
+
+    @ApiModelProperty(value = "完成走访任务")
+    private Integer handleZFTotal;
+
+    @ApiModelProperty(value = "处理随手拍")
+    private Integer easyPhotoTotal;
+
+    @ApiModelProperty(value = "发布宣传教育")
+    private Integer propagandaEducationTotal;
+
+    @ApiModelProperty(value = "新增居民数")
+    private Integer addResidentTotal = 0;
+
+    @ApiModelProperty(value = "新增实有房屋数")
+    private Integer addHouseTotal = 0;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventTransferRecordDetailsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventTransferRecordDetailsVO.java
new file mode 100644
index 0000000..54dccc0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventTransferRecordDetailsVO.java
@@ -0,0 +1,57 @@
+package com.panzhihua.common.model.vos.grid;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("事件处理流转记录详细返回参数")
+public class EventTransferRecordDetailsVO {
+
+    @ApiModelProperty(value = "id")
+    private Long id;
+
+    @ApiModelProperty(value = "事件ID")
+    private Long eventId;
+
+    @ApiModelProperty(value = "来源类型(1、网格员2、社区3、是街道)")
+    private Integer fromType;
+
+    @ApiModelProperty(value = "事件来源机构或网格员")
+    private Long from;
+
+    @ApiModelProperty(value = "转交办理人路径名称")
+    private String fromName;
+
+    @ApiModelProperty(value = "转交类型(1、网格员2、社区3、是街道)")
+    private Integer toType;
+
+    @ApiModelProperty(value = "事件下游机构或网格员")
+    private Long to;
+
+    @ApiModelProperty(value = "需要办理人路径名称")
+    private String toName;
+
+    @ApiModelProperty(value = "处理结果")
+    private String processResult;
+
+    @ApiModelProperty(value = "处理时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date processDate;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventTransferRecordVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventTransferRecordVO.java
new file mode 100644
index 0000000..287a921
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventTransferRecordVO.java
@@ -0,0 +1,80 @@
+package com.panzhihua.common.model.vos.grid;
+
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("事件处理流转记录返回参数")
+public class EventTransferRecordVO {
+
+    @ApiModelProperty(value = "id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty(value = "事件ID")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long eventId;
+
+    @ApiModelProperty(value = "来源类型(1、网格员2、社区3、是街道)")
+    private Integer fromType;
+
+    @ApiModelProperty(value = "事件来源机构或网格员")
+    private Long from;
+
+    @ApiModelProperty(value = "转交办理人路径名称")
+    private String fromName;
+
+    @ApiModelProperty(value = "转交类型(1、网格员2、社区3、是街道)")
+    private Integer toType;
+
+    @ApiModelProperty(value = "事件下游机构或网格员")
+    private Long toId;
+
+    @ApiModelProperty(value = "需要办理人路径名称")
+    private String toName;
+
+    @ApiModelProperty(value = "处理结果")
+    private String processResult;
+
+    @ApiModelProperty(value = "处理时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date processDate;
+
+    @ApiModelProperty(value = "处理人或社区")
+    private Long processBy;
+
+    @ApiModelProperty(value = "处理人名或社区名")
+    private String processByName;
+
+    @ApiModelProperty(value = "业务处理类型")
+    private Integer processType;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty(value = "音频")
+    private List<EventResourceVO> audios;
+
+    @ApiModelProperty(value = "视频")
+    private List<EventResourceVO> videos;
+
+    @ApiModelProperty(value = "图片")
+    private List<EventResourceVO> pics;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventVO.java
new file mode 100644
index 0000000..293b68e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventVO.java
@@ -0,0 +1,187 @@
+package com.panzhihua.common.model.vos.grid;
+
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("事件返回参数")
+public class EventVO {
+
+    @ApiModelProperty(value = "id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty(value = "事件处理状态")
+    private Integer eventDealStatus;
+
+    @ApiModelProperty(value = "服务单号")
+    private String orderSn;
+
+    @ApiModelProperty(value = "1、办件事件2是宣传事件3是阅读事件")
+    private Long eventCategory;
+
+    @ApiModelProperty(value = "网格员所处的街道")
+    private Long gridMemberStreet;
+
+    @ApiModelProperty(value = "网格员所处社区")
+    private Long gridMemberCommunity;
+
+    @ApiModelProperty(value = "网格ID")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long gridId;
+
+    @ApiModelProperty(value = "网格名称")
+    private String gridName;
+
+    @ApiModelProperty(value = "网格员")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long gridMemberId;
+
+    @ApiModelProperty(value = "网格员名字")
+    private String gridMemberName;
+
+    @ApiModelProperty(value = "网格员头像url")
+    private String gridMemberImageUrl;
+
+    @ApiModelProperty(value = "网格员联系方式")
+    private String gridMemberTelephone;
+
+    @ApiModelProperty(value = "事件标题")
+    private String eventTitle;
+
+    @ApiModelProperty(value = "宣传类型")
+    private String propagandaType;
+
+    @ApiModelProperty(value = "宣传时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date propagandaTime;
+
+    @ApiModelProperty(value = "当event_type_category是1填写事件类型1治安隐患、2公共服务、3矛盾纠纷、4不稳定因素、5突发事件、6特殊人群信息上报")
+    private Integer eventType;
+
+    @ApiModelProperty(value = "事件描述")
+    private String eventDes;
+
+    @ApiModelProperty(value = "宣传对象")
+    private String propagandaObject;
+
+    @ApiModelProperty(value = "宣传人数")
+    private String propagandaNum;
+
+    @ApiModelProperty(value = "社区处理(0是无需社区1是社区处理)")
+    private Integer communityProcess;
+
+    @ApiModelProperty(value = "发生时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date happenTime;
+
+    @ApiModelProperty(value = "事件发生地点备注")
+    private String happentAddress;
+
+    @ApiModelProperty(value = "发生的精度纬度信息(逗号隔开)")
+    private String happentLatLng;
+
+    @ApiModelProperty(value = "事件状态(1草稿箱2发布3逻辑删除4、撤销)")
+    private Integer eventStatus;
+
+    @ApiModelProperty(value = "事件类型")
+    private String eventClazz;
+
+    @ApiModelProperty(value = "1待处理2已解决3待验证")
+    private Integer eventProcessStatus;
+
+    @ApiModelProperty(value = "当前处理对象类型(1、网格员2、社区3、是街道)")
+    private Integer processType;
+
+    @ApiModelProperty(value = "处理人ID")
+    private Long processUserId;
+
+    @ApiModelProperty(value = "处理人名称")
+    private String processUserName;
+
+    @ApiModelProperty(value = "处理时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date processDate;
+
+    @ApiModelProperty(value = "解决人针对解决事件的处理描述")
+    private String processDesc;
+
+    @ApiModelProperty(value = "事件来源")
+    private String eventResource;
+
+    @ApiModelProperty(value = "事件发生地点")
+    private String happenAddress;
+
+    @ApiModelProperty(value = "危险级别")
+    private Integer dangerLevel;
+
+    @ApiModelProperty(value = "红牌")
+    private Boolean redCard;
+
+    @ApiModelProperty(value = "黄牌")
+    private Boolean yellowCard;
+
+    @ApiModelProperty(value = "是否有效")
+    private Boolean invalid;
+
+    @ApiModelProperty(value = "是否重大")
+    private Boolean major;
+
+    @ApiModelProperty(value = "死亡人数")
+    private Integer deathsNumber;
+
+    @ApiModelProperty(value = "受伤人数")
+    private Integer injuriesNumber;
+
+    @ApiModelProperty(value = "是否疑难事件")
+    private Boolean difficult;
+
+    @ApiModelProperty(value = "是否紧急")
+    private Boolean urgent;
+
+    @ApiModelProperty(value = "是否催办")
+    private Boolean urgentDell;
+
+    @ApiModelProperty(value = "上报提交时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date submitDate;
+
+    @ApiModelProperty(value = "创建人")
+    private Long createBy;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty(value = "修改人")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAt;
+
+    @ApiModelProperty(value = "音频")
+    private List<EventResourceVO> audios;
+
+    @ApiModelProperty(value = "视频")
+    private List<EventResourceVO> videos;
+
+    @ApiModelProperty(value = "图片")
+    private List<EventResourceVO> pics;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventVisitingTasksDetailsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventVisitingTasksDetailsVO.java
new file mode 100644
index 0000000..f8a2497
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventVisitingTasksDetailsVO.java
@@ -0,0 +1,135 @@
+package com.panzhihua.common.model.vos.grid;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("重点人群走访记录详细返回参数")
+public class EventVisitingTasksDetailsVO {
+
+    @ApiModelProperty(value = "id")
+    private Long id;
+
+    @ApiModelProperty(value = "网格员所处的街道")
+    private Long gridMemberStreet;
+
+    @ApiModelProperty(value = "网格员所处社区")
+    private Long gridMemberCommunity;
+
+    @ApiModelProperty(value = "网格员")
+    private Long gridMember;
+
+    @ApiModelProperty(value = "网格员名字")
+    private String gridMemberName;
+
+    @ApiModelProperty(value = "网格员联系方式")
+    private String gridMenberTele;
+
+    @ApiModelProperty(value = "需走访人ID")
+    private Long visiterId;
+
+    @ApiModelProperty(value = "需走访人名字")
+    private String visiterName;
+
+    @ApiModelProperty(value = "需走访人员性别")
+    private Integer visiterSex;
+
+    @ApiModelProperty(value = "需走访人电话")
+    private String visiterTele;
+
+    @ApiModelProperty(value = "需走访人居住地址")
+    private String visiterAddress;
+
+    @ApiModelProperty(value = "人员类型1吸毒2严重精神障碍3刑释人员4社区矫正人员")
+    private Integer visiterType;
+
+    @ApiModelProperty(value = "事件标题")
+    private String eventTitle;
+
+    @ApiModelProperty(value = "事件类型")
+    private Integer eventType;
+
+    @ApiModelProperty(value = "事件描述")
+    private String eventDes;
+
+    @ApiModelProperty(value = "社区处理(0是无需社区1是社区处理)")
+    private Integer actOpara;
+
+    @ApiModelProperty(value = "发生时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date happenTime;
+
+    @ApiModelProperty(value = "发生地点")
+    private String happentAddress;
+
+    @ApiModelProperty(value = "发生的精度纬度信息(逗号隔开)")
+    private String happentLatLng;
+
+    @ApiModelProperty(value = "事件状态(1待处理2自己已解决3待验证4草稿箱5已撤销6异常)")
+    private Integer eventStatus;
+
+    @ApiModelProperty(value = "上报状态")
+    private Integer reporting;
+
+    @ApiModelProperty(value = "当前处理对象类型(1、网格员2、社区3、是街道)")
+    private Integer dellType;
+
+    @ApiModelProperty(value = "处理人ID")
+    private Long dellUserId;
+
+    @ApiModelProperty(value = "处理人名称")
+    private String dellUserName;
+
+    @ApiModelProperty(value = "处理时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date dellDate;
+
+    @ApiModelProperty(value = "解决人针对解决事件的处理描述")
+    private String dellDesc;
+
+    @ApiModelProperty(value = "是否有效")
+    private Boolean invalid;
+
+    @ApiModelProperty(value = "是否紧急")
+    private Boolean urgent;
+
+    @ApiModelProperty(value = "是否催办")
+    private Boolean urgentDell;
+
+    @ApiModelProperty(value = "上报提交时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date submitDate;
+
+    @ApiModelProperty(value = "是否异常行为")
+    private Boolean exception;
+
+    @ApiModelProperty(value = "走访内容根据重点人员类型输入项不同,录入全部的表单内容数据")
+    private String tableContentJson;
+
+    @ApiModelProperty(value = "创建人")
+    private Long createBy;
+
+    @ApiModelProperty(value = "创建事件")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty(value = "修改人")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventVisitingTasksVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventVisitingTasksVO.java
new file mode 100644
index 0000000..5060c29
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/EventVisitingTasksVO.java
@@ -0,0 +1,135 @@
+package com.panzhihua.common.model.vos.grid;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("重点人群走访记录返回参数")
+public class EventVisitingTasksVO {
+
+    @ApiModelProperty(value = "id")
+    private Long id;
+
+    @ApiModelProperty(value = "网格员所处的街道")
+    private Long gridMemberStreet;
+
+    @ApiModelProperty(value = "网格员所处社区")
+    private Long gridMemberCommunity;
+
+    @ApiModelProperty(value = "网格员")
+    private Long gridMember;
+
+    @ApiModelProperty(value = "网格员名字")
+    private String gridMemberName;
+
+    @ApiModelProperty(value = "网格员联系方式")
+    private String gridMenberTele;
+
+    @ApiModelProperty(value = "需走访人ID")
+    private Long visiterId;
+
+    @ApiModelProperty(value = "需走访人名字")
+    private String visiterName;
+
+    @ApiModelProperty(value = "需走访人员性别")
+    private Integer visiterSex;
+
+    @ApiModelProperty(value = "需走访人电话")
+    private String visiterTele;
+
+    @ApiModelProperty(value = "需走访人居住地址")
+    private String visiterAddress;
+
+    @ApiModelProperty(value = "人员类型1吸毒2严重精神障碍3刑释人员4社区矫正人员")
+    private Integer visiterType;
+
+    @ApiModelProperty(value = "事件标题")
+    private String eventTitle;
+
+    @ApiModelProperty(value = "事件类型")
+    private Integer eventType;
+
+    @ApiModelProperty(value = "事件描述")
+    private String eventDes;
+
+    @ApiModelProperty(value = "社区处理(0是无需社区1是社区处理)")
+    private Integer actOpara;
+
+    @ApiModelProperty(value = "发生时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date happenTime;
+
+    @ApiModelProperty(value = "发生地点")
+    private String happentAddress;
+
+    @ApiModelProperty(value = "发生的精度纬度信息(逗号隔开)")
+    private String happentLatLng;
+
+    @ApiModelProperty(value = "事件状态(1待处理2自己已解决3待验证4草稿箱5已撤销6异常)")
+    private Integer eventStatus;
+
+    @ApiModelProperty(value = "上报状态")
+    private Integer reporting;
+
+    @ApiModelProperty(value = "当前处理对象类型(1、网格员2、社区3、是街道)")
+    private Integer dellType;
+
+    @ApiModelProperty(value = "处理人ID")
+    private Long dellUserId;
+
+    @ApiModelProperty(value = "处理人名称")
+    private String dellUserName;
+
+    @ApiModelProperty(value = "处理时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date dellDate;
+
+    @ApiModelProperty(value = "解决人针对解决事件的处理描述")
+    private String dellDesc;
+
+    @ApiModelProperty(value = "是否有效")
+    private Boolean invalid;
+
+    @ApiModelProperty(value = "是否紧急")
+    private Boolean urgent;
+
+    @ApiModelProperty(value = "是否催办")
+    private Boolean urgentDell;
+
+    @ApiModelProperty(value = "上报提交时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date submitDate;
+
+    @ApiModelProperty(value = "是否异常行为")
+    private Boolean exception;
+
+    @ApiModelProperty(value = "走访内容根据重点人员类型输入项不同,录入全部的表单内容数据")
+    private String tableContentJson;
+
+    @ApiModelProperty(value = "创建人")
+    private Long createBy;
+
+    @ApiModelProperty(value = "创建事件")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty(value = "修改人")
+    private Long updateBy;
+
+    @ApiModelProperty(value = "修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/GridEventStatisticsDetailVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/GridEventStatisticsDetailVO.java
new file mode 100644
index 0000000..48d4d5b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/GridEventStatisticsDetailVO.java
@@ -0,0 +1,71 @@
+package com.panzhihua.common.model.vos.grid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 地图模块-网格事件统计数据
+ */
+@Data
+@ApiModel("统计模块-网格事件统计数据")
+public class GridEventStatisticsDetailVO {
+
+    @ApiModelProperty("总完成数量")
+    private Integer sum = 0;
+
+    @ApiModelProperty("总未完成数量")
+    private Integer noSum = 0;
+
+    @ApiModelProperty("突发事件完成数量")
+    private Integer eventTFTotal = 0;
+
+    @ApiModelProperty("突发事件未完成数量")
+    private Integer noEventTFTotal = 0;
+
+    @ApiModelProperty("矛盾纠纷完成数量")
+    private Integer eventMDTotal = 0;
+
+    @ApiModelProperty("矛盾纠纷未完成数量")
+    private Integer noEventMDTotal = 0;
+
+    @ApiModelProperty("治安隐患完成数量")
+    private Integer eventZATotal = 0;
+
+    @ApiModelProperty("治安隐患未完成数量")
+    private Integer noEventZATotal = 0;
+
+    @ApiModelProperty("不稳定因素完成数量")
+    private Integer eventBWDTotal = 0;
+
+    @ApiModelProperty("不稳定因素未完成数量")
+    private Integer noEventBWDTotal = 0;
+
+    @ApiModelProperty("特殊人员上报完成数量")
+    private Integer eventTSTotal = 0;
+
+    @ApiModelProperty("特殊人员上报未完成数量")
+    private Integer noEventTSTotal = 0;
+
+    @ApiModelProperty("公共服务完成数量")
+    private Integer eventGGTotal = 0;
+
+    @ApiModelProperty("公共服务未完成数量")
+    private Integer noEventGGTotal = 0;
+
+    @ApiModelProperty("走访任务完成数量")
+    private Integer eventZFTotal = 0;
+
+    @ApiModelProperty("走访任务未完成数量")
+    private Integer noEventZFTotal = 0;
+
+    @ApiModelProperty("随手拍完成数量")
+    private Integer eventSSPTotal = 0;
+
+    @ApiModelProperty("随手拍未完成数量")
+    private Integer noEventSSPTotal = 0;
+
+    @ApiModelProperty("宣传教育发布数量")
+    private Integer eventXCTotal = 0;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/GridEventStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/GridEventStatisticsVO.java
new file mode 100644
index 0000000..65de503
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/GridEventStatisticsVO.java
@@ -0,0 +1,47 @@
+package com.panzhihua.common.model.vos.grid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 地图模块-网格详细信息
+ */
+@Data
+@ApiModel("统计模块-网格统计数据")
+public class GridEventStatisticsVO {
+
+    @ApiModelProperty("今日完成")
+    private Integer todayNum = 0;
+
+    @ApiModelProperty("本月完成")
+    private Integer monthNum = 0;
+
+    @ApiModelProperty("今日发布宣传教育")
+    private Integer todayEducationNum = 0;
+
+    @ApiModelProperty("总发布宣传教育")
+    private Integer educationNum = 0;
+
+    @ApiModelProperty("今日特殊人群上报")
+    private Integer todaySpecialTotal = 0;
+
+    @ApiModelProperty("总特殊人群上报")
+    private Integer specialTotal = 0;
+
+    @ApiModelProperty("实有房屋总数")
+    private Integer houseTotal = 0;
+
+    @ApiModelProperty("走访任务当日完成数量")
+    private Integer zfTodayNum = 0;
+
+    @ApiModelProperty("走访任务当月完成数量")
+    private Integer zfMonthNum = 0;
+
+    @ApiModelProperty("随手拍当日完成数量")
+    private Integer sspTodayNum = 0;
+
+    @ApiModelProperty("随手拍当月完成数量")
+    private Integer sspMonthNum = 0;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/GridMemberAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/GridMemberAdminVO.java
new file mode 100644
index 0000000..046d66c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/GridMemberAdminVO.java
@@ -0,0 +1,16 @@
+package com.panzhihua.common.model.vos.grid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("管理后台-网格员返回参数")
+public class GridMemberAdminVO {
+
+    @ApiModelProperty(value = "网格员id")
+    private Long userId;
+    @ApiModelProperty(value = "账号昵称")
+    private String nickName;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/GridMemberPositionDTO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/GridMemberPositionDTO.java
new file mode 100644
index 0000000..77738d0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/GridMemberPositionDTO.java
@@ -0,0 +1,26 @@
+package com.panzhihua.common.model.vos.grid;
+
+import javax.validation.constraints.NotBlank;
+
+import com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "网格员定时上报请求参数")
+public class GridMemberPositionDTO {
+
+    @ApiModelProperty("经纬度,以,隔开")
+    @NotBlank(groups = {AddGroup.class}, message = "经纬度不能为空")
+    private String lngLat;
+
+    @ApiModelProperty("经纬度定位地址")
+    @NotBlank(groups = {AddGroup.class}, message = "经纬度定位地址不能为空")
+    private String positionAddress;
+
+    @ApiModelProperty(value = "网格员id", hidden = true)
+    private Long gridMemberId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/GridMemberVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/GridMemberVO.java
new file mode 100644
index 0000000..a495352
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/GridMemberVO.java
@@ -0,0 +1,44 @@
+package com.panzhihua.common.model.vos.grid;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.grid.admin.GridMemberBuildingVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("管理后台-网格员返回参数")
+public class GridMemberVO {
+
+    @ApiModelProperty(value = "网格员id")
+    private Long userId;
+    @ApiModelProperty(value = "网格员头像")
+    private String imageUrl;
+    @ApiModelProperty(value = "账号昵称")
+    private String nickName;
+    @ApiModelProperty(value = "登录账号")
+    private String account;
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+    @ApiModelProperty(value = "网格员工作状态(1.在岗 2.脱岗 3.已下班)")
+    private String workStatus;
+    @ApiModelProperty(value = "账号状态(1 启用 2 禁用)")
+    private String status;
+    @ApiModelProperty(value = "所属社区")
+    private String communityName;
+    @ApiModelProperty(value = "网格员上班开始时间")
+    private Integer workStartTime;
+    @ApiModelProperty(value = "网格员上班结束时间")
+    private Integer workEndTime;
+    @ApiModelProperty(value = "市平台网格员关联id")
+    private String lcMemberId;
+    @ApiModelProperty(value = "市平台网格员关联名称")
+    private String lcMemberName;
+    @ApiModelProperty(value = "浪潮网格员绑定的用户ID")
+    private String lcBindUserId;
+    @ApiModelProperty(value = "网格员关联楼栋信息")
+    private List<GridMemberBuildingVO> memberBuildingList;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/LatLngVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/LatLngVO.java
new file mode 100644
index 0000000..5c5f171
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/LatLngVO.java
@@ -0,0 +1,13 @@
+package com.panzhihua.common.model.vos.grid;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+
+@Data
+@AllArgsConstructor
+public class LatLngVO {
+
+    private Double lng;
+
+    private Double lat;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/PageComMngVillageVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/PageComMngVillageVO.java
new file mode 100644
index 0000000..94d67cd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/PageComMngVillageVO.java
@@ -0,0 +1,50 @@
+package com.panzhihua.common.model.vos.grid;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 居民管理-列表返回参数
+ */
+@Data
+@ApiModel("居民管理列表返回参数")
+@EncryptDecryptClass
+public class PageComMngVillageVO {
+
+    @ApiModelProperty("自增id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long villageId;
+
+    @ApiModelProperty("姓名")
+    private String userName;
+
+    @ApiModelProperty("楼栋数")
+    private Integer buildSum;
+
+    @ApiModelProperty("地址")
+    private String address;
+
+    @ApiModelProperty("用户数")
+    private Integer userSum;
+
+    @ApiModelProperty("房屋数")
+    private Integer houseNum;
+
+    @ApiModelProperty("户籍人口数")
+    private Integer registerNum;
+
+    @ApiModelProperty("租户数量")
+    private Integer rentNum;
+
+    @ApiModelProperty("纬度")
+    private String lat;
+
+    @ApiModelProperty("经度")
+    private String lng;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/PopulationDetailVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/PopulationDetailVO.java
new file mode 100644
index 0000000..e3f726f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/PopulationDetailVO.java
@@ -0,0 +1,103 @@
+package com.panzhihua.common.model.vos.grid;
+
+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;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("居民详情返回参数")
+@EncryptDecryptClass
+public class PopulationDetailVO {
+
+    @ApiModelProperty(value = "主键ID")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    @ApiModelProperty(value = "手机号")
+    @EncryptDecryptField
+    private String phone;
+
+    @ApiModelProperty(value = "身份证号码")
+    @EncryptDecryptField
+    private String cardNo;
+
+    @ApiModelProperty(value = "标签")
+    private String label;
+
+    @ApiModelProperty(value = "居住地址")
+    private String address;
+
+    @ApiModelProperty(value = "民族")
+    private String nation;
+
+    @ApiModelProperty(value = "年龄")
+    private Integer age;
+
+    @ApiModelProperty(
+        value = "政治面貌(1.中共党员2.中共预备党员3.共青团员4.民革党员5.民盟盟员6.民建会员7.8.农工党党员9.致公党党员10.九三学社社员11.台盟盟员12.无党派人士13.群众)")
+    private Integer politicalOutlook;
+
+    @ApiModelProperty(value = "性别(1.男 2.女)")
+    private String sex;
+
+    @ApiModelProperty(value = "出生年月")
+    private String birthday;
+
+    @ApiModelProperty(value = "籍贯")
+    private String nativePlace;
+
+    @ApiModelProperty(value = "婚姻状况")
+    private String marriage;
+
+    @ApiModelProperty(value = "文化程度")
+    private String cultureLevel;
+
+    @ApiModelProperty(value = "健康状况")
+    private String healthy;
+
+    @ApiModelProperty(value = "是否租住(0.否 1.是)")
+    private Integer isRent;
+
+    @ApiModelProperty("街路巷")
+    private String road;
+
+    @ApiModelProperty("门牌号")
+    private String doorNo;
+
+    @ApiModelProperty("楼排号")
+    private String floor;
+
+    @ApiModelProperty("单元号")
+    private String unitNo;
+
+    @ApiModelProperty("户室(房间号)")
+    private String houseNo;
+
+    @ApiModelProperty("工作单位")
+    private String workCompany;
+
+    @ApiModelProperty("户口所在地")
+    private String censusRegister;
+
+    @ApiModelProperty("外地or本地(1.本地  2.外地)")
+    private Integer outOrLocal;
+
+    @ApiModelProperty("备注")
+    private String remark;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/PopulationListVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/PopulationListVO.java
new file mode 100644
index 0000000..a9ce1c8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/PopulationListVO.java
@@ -0,0 +1,80 @@
+package com.panzhihua.common.model.vos.grid;
+
+import java.util.Date;
+
+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;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("居民列表返回参数")
+@EncryptDecryptClass
+public class PopulationListVO {
+
+    @ApiModelProperty(value = "主键ID")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    @ApiModelProperty(value = "手机号")
+    @EncryptDecryptField
+    private String phone;
+
+    @ApiModelProperty(value = "身份证号码")
+    @EncryptDecryptField
+    private String cardNo;
+
+    @ApiModelProperty(value = "标签")
+    private String label;
+
+    @ApiModelProperty(value = "居住地址")
+    private String address;
+
+    @ApiModelProperty(value = "民族")
+    private String nation;
+
+    @ApiModelProperty(value = "年龄")
+    private Integer age;
+
+    @ApiModelProperty(
+        value = "政治面貌(1.中共党员2.中共预备党员3.共青团员4.民革党员5.民盟盟员6.民建会员7.8.农工党党员9.致公党党员10.九三学社社员11.台盟盟员12.无党派人士13.群众)")
+    private Integer politicalOutlook;
+
+    @ApiModelProperty(value = "性别(1.男 2.女)")
+    private String sex;
+
+    @ApiModelProperty(value = "时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty(value = "房屋人口关联id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long housePopulationId;
+
+    @ApiModelProperty(value = "经度")
+    private String lng;
+
+    @ApiModelProperty(value = "纬度")
+    private String lat;
+
+    @ApiModelProperty(value = "政治面貌文字描述")
+    private String outlook;
+
+    @ApiModelProperty(value = "人和房屋关系(1.业主 2.业主家属 3.租户)")
+    private Integer relationId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/UserEventGridDataVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/UserEventGridDataVO.java
new file mode 100644
index 0000000..c05e00d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/UserEventGridDataVO.java
@@ -0,0 +1,23 @@
+package com.panzhihua.common.model.vos.grid;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("用户网格待处理数据统计信息")
+public class UserEventGridDataVO {
+
+    @ApiModelProperty(value = "事件分类 1治安隐患、2公共服务、3矛盾纠纷、4不稳定因素、5突发事件、6特殊人群信息上报、7宣传教育")
+    private Integer eventType;
+    @ApiModelProperty(value = "待处理事件数")
+    private Integer todoNums;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngPopulationListVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngPopulationListVO.java
new file mode 100644
index 0000000..9b9a89b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngPopulationListVO.java
@@ -0,0 +1,72 @@
+package com.panzhihua.common.model.vos.grid.admin;
+
+import java.util.Date;
+
+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;
+
+/**
+ * 居民管理-列表返回参数
+ */
+@Data
+@ApiModel("居民管理列表返回参数")
+@EncryptDecryptClass
+public class ComMngPopulationListVO {
+
+    @ApiModelProperty("自增id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("姓名")
+    private String userName;
+
+    @ApiModelProperty("标签")
+    private String label;
+
+    @ApiModelProperty("走访时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty(value = "身份证号码")
+    @EncryptDecryptField
+    private String cardNo;
+
+    @ApiModelProperty(value = "性别(1.男 2.女)")
+    private Integer sex;
+
+    @ApiModelProperty(value = "现居住地址")
+    private String address;
+
+    @ApiModelProperty("政治面貌(1.中共党员2.中共预备党员3.共青团员4.民革党员5.民盟盟员6.民建会员7.8.农工党党员9.致公党党员10.九三学社社员11.台盟盟员12.无党派人士13.群众)")
+    private Integer politicalOutlook;
+
+    @ApiModelProperty("联系方式")
+    @EncryptDecryptField
+    private String phone;
+
+    @ApiModelProperty("关联实有房屋(0.否 1.是)")
+    private Long isHouse;
+
+    @ApiModelProperty(value = "走访状态(1待走访2已走访3待验证5已撤销)")
+    private Integer eventStatus;
+
+    @ApiModelProperty(value = "户口所在地")
+    private String censusRegister;
+
+    @ApiModelProperty(value = "年龄")
+    private Integer age;
+
+    @ApiModelProperty(value = "是否是户主(1.是 2.否)")
+    private Integer isRelation;
+
+    @ApiModelProperty(value = "居住地房屋id")
+    private Long houseId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngPopulationVillageVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngPopulationVillageVO.java
new file mode 100644
index 0000000..0effdb9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngPopulationVillageVO.java
@@ -0,0 +1,21 @@
+package com.panzhihua.common.model.vos.grid.admin;
+
+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;
+
+@Data
+@ApiModel("居民管理关联房屋小区列表返回参数")
+public class ComMngPopulationVillageVO {
+
+    @ApiModelProperty("小区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long villageId;
+
+    @ApiModelProperty("小区名字")
+    private String name;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngSubordinateVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngSubordinateVO.java
new file mode 100644
index 0000000..2afdc6b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngSubordinateVO.java
@@ -0,0 +1,44 @@
+package com.panzhihua.common.model.vos.grid.admin;
+
+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;
+
+@Data
+@ApiModel("级联菜单返回参数")
+public class ComMngSubordinateVO {
+
+    /**
+     * 房屋id
+     */
+    @ApiModelProperty("房屋id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long houseId;
+
+    /**
+     * 楼排号
+     */
+    @ApiModelProperty("楼排号")
+    private String floor;
+
+    /**
+     * 单元号
+     */
+    @ApiModelProperty("单元号")
+    private String unitNo;
+
+    /**
+     * 户室(房间号)
+     */
+    @ApiModelProperty("户室(房间号)")
+    private String houseNo;
+
+    /**
+     * 公共显示字段
+     */
+    @ApiModelProperty("公共显示字段")
+    private String name;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngVillagePopulationHouseListVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngVillagePopulationHouseListVO.java
new file mode 100644
index 0000000..0b4da01
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngVillagePopulationHouseListVO.java
@@ -0,0 +1,36 @@
+package com.panzhihua.common.model.vos.grid.admin;
+
+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;
+
+@Data
+@ApiModel("小区管理-居民房屋返回参数")
+public class ComMngVillagePopulationHouseListVO {
+
+    @ApiModelProperty("房屋id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("小区名称")
+    private String villageName;
+
+    @ApiModelProperty("小区地址")
+    private String address;
+
+    @ApiModelProperty("楼栋号")
+    private String floor;
+
+    @ApiModelProperty("单元号")
+    private String unitNo;
+
+    @ApiModelProperty("户室号")
+    private String houseNo;
+
+    @ApiModelProperty("与户主关系(1.户主 2.配偶 3.子女 4.孙女 5.父母 6.其他)")
+    private Integer relation;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngVillagePopulationListVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngVillagePopulationListVO.java
new file mode 100644
index 0000000..ddf2483
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngVillagePopulationListVO.java
@@ -0,0 +1,31 @@
+package com.panzhihua.common.model.vos.grid.admin;
+
+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;
+
+@Data
+@ApiModel("小区管理-居民列表返回参数")
+@EncryptDecryptClass
+public class ComMngVillagePopulationListVO {
+
+    @ApiModelProperty("居民id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("姓名")
+    private String name;
+
+    @ApiModelProperty("身份证号")
+    @EncryptDecryptField
+    private String cardNo;
+
+    @ApiModelProperty("人员标签")
+    private String label;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngVillageStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngVillageStatisticsVO.java
new file mode 100644
index 0000000..84f7b7a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/ComMngVillageStatisticsVO.java
@@ -0,0 +1,34 @@
+package com.panzhihua.common.model.vos.grid.admin;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("小区列表统计返回参数")
+public class ComMngVillageStatisticsVO {
+
+    /**
+     * 小区数量
+     */
+    @ApiModelProperty("小区数量")
+    private Integer villageNum = 0;
+
+    /**
+     * 楼栋数量
+     */
+    @ApiModelProperty("楼栋数量")
+    private Integer floorNum = 0;
+
+    /**
+     * 总户数
+     */
+    @ApiModelProperty("总户数")
+    private Integer houseNum = 0;
+
+    /**
+     * 居住人数
+     */
+    @ApiModelProperty("居住人数")
+    private Integer userNum = 0;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/GridMemberBuildingVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/GridMemberBuildingVO.java
new file mode 100644
index 0000000..f5e598d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/GridMemberBuildingVO.java
@@ -0,0 +1,30 @@
+package com.panzhihua.common.model.vos.grid.admin;
+
+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;
+
+@Data
+@ApiModel("管理后台-网格员与楼栋关联关系返回参数")
+public class GridMemberBuildingVO {
+
+    @ApiModelProperty(value = "社区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long communityId;
+    @ApiModelProperty(value = "社区名字")
+    private String communityName;
+    @ApiModelProperty(value = "小区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long villageId;
+    @ApiModelProperty(value = "小区名字")
+    private String villageName;
+    @ApiModelProperty(value = "楼栋id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long buildingId;
+    @ApiModelProperty(value = "楼栋名字")
+    private String buildingName;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/GridMemberCascadeVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/GridMemberCascadeVO.java
new file mode 100644
index 0000000..d7d81c7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/GridMemberCascadeVO.java
@@ -0,0 +1,20 @@
+package com.panzhihua.common.model.vos.grid.admin;
+
+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;
+
+@Data
+@ApiModel("管理后台-添加网格员级联返回参数")
+public class GridMemberCascadeVO {
+
+    @ApiModelProperty(value = "主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+    @ApiModelProperty(value = "名称")
+    private String name;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/GridMemberLcListVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/GridMemberLcListVO.java
new file mode 100644
index 0000000..6f0cb37
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/GridMemberLcListVO.java
@@ -0,0 +1,24 @@
+package com.panzhihua.common.model.vos.grid.admin;
+
+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;
+
+@Data
+@ApiModel("管理后台-市平台网格员列表返回参数")
+public class GridMemberLcListVO {
+
+    @ApiModelProperty(value = "主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+    @ApiModelProperty(value = "市平台网格员id")
+    private String lcGridMemberId;
+    @ApiModelProperty(value = "市平台网格员名称")
+    private String lcGridMemberName;
+    @ApiModelProperty(value = "浪潮网格员绑定的用户ID")
+    private String lcBindUserId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/PopulationStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/PopulationStatisticsVO.java
new file mode 100644
index 0000000..9acf6d9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/PopulationStatisticsVO.java
@@ -0,0 +1,26 @@
+package com.panzhihua.common.model.vos.grid.admin;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ *
+ * @author lyq
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("居民统计返回参数")
+public class PopulationStatisticsVO {
+
+    @ApiModelProperty(value = "本地人口")
+    private Integer localNum = 0;
+
+    @ApiModelProperty(value = "流动人口")
+    private Integer flowNum = 0;
+
+    @ApiModelProperty(value = "特殊人口")
+    private Integer specialNum = 0;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/excel/ComMngPopulationExportExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/excel/ComMngPopulationExportExcelVO.java
new file mode 100644
index 0000000..987c829
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/excel/ComMngPopulationExportExcelVO.java
@@ -0,0 +1,84 @@
+package com.panzhihua.common.model.vos.grid.admin.excel;
+
+import java.io.Serializable;
+import java.util.Date;
+
+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 lombok.Data;
+
+/**
+ * @description: 综治后台-居民导出
+ * @author: lyq
+ * @date: 2021/7/1 13:56
+ */
+@Data
+@EncryptDecryptClass
+public class ComMngPopulationExportExcelVO implements Serializable {
+    /**
+     * 姓名
+     */
+    @ExcelProperty(value = "姓名", index = 0)
+    private String userName;
+    /**
+     * 身份证号
+     */
+    @ExcelProperty(value = "身份证号", index = 1)
+    @EncryptDecryptField
+    private String cardNo;
+    /**
+     * 年龄
+     */
+    @ExcelProperty(value = "年龄", index = 2)
+    private Integer age;
+    /**
+     * 性别
+     */
+    @ExcelProperty(value = "性别", index = 3)
+    private String sex = "暂无";
+    /**
+     * 现居住地址
+     */
+    @ExcelProperty(value = "现居住地址", index = 4)
+    private String address;
+    /**
+     * 政治面貌
+     */
+    @ExcelProperty(value = "政治面貌", index = 5)
+    private String politicalOutlook = "暂无";
+    /**
+     * 联系方式
+     */
+    @ExcelProperty(value = "联系方式", index = 6)
+    @EncryptDecryptField
+    private String phone;
+    /**
+     * 户籍地址
+     */
+    @ExcelProperty(value = "户籍地址", index = 7)
+    private String censusRegister;
+    /**
+     * 是否关联实有房屋
+     */
+    @ExcelProperty(value = "关联实有房屋", index = 8)
+    private String isHouse = "暂无";
+    /**
+     * 人员标签
+     */
+    @ExcelProperty(value = "人员标签", index = 9)
+    private String label;
+    /**
+     * 最后一次走访时间
+     */
+    @ExcelProperty(value = "最后一次走访时间", index = 10)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+    /**
+     * 最近一次走访状态
+     */
+    @ExcelProperty(value = "最近一次走访状态", index = 11)
+    private String eventStatus = "暂无";
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/excel/ComMngVillageExportExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/excel/ComMngVillageExportExcelVO.java
new file mode 100644
index 0000000..43defaa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/excel/ComMngVillageExportExcelVO.java
@@ -0,0 +1,40 @@
+package com.panzhihua.common.model.vos.grid.admin.excel;
+
+import java.io.Serializable;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * 小区列表Excel导出
+ */
+@Data
+@ApiModel("小区列表Excel导出")
+@EncryptDecryptClass
+public class ComMngVillageExportExcelVO implements Serializable {
+
+    @ExcelProperty(value = "小区名字", index = 0)
+    private String userName;
+
+    @ExcelProperty(value = "街路巷", index = 1)
+    private String alley;
+
+    @ExcelProperty(value = "门牌号", index = 2)
+    private String doorNum;
+
+    @ExcelProperty(value = "小区地址", index = 3)
+    private String address;
+
+    @ExcelProperty(value = "小区楼栋数", index = 4)
+    private Integer buildSum;
+
+    @ExcelProperty(value = "小区户数", index = 5)
+    private Integer houseNum;
+
+    @ExcelProperty(value = "小区居民人数", index = 6)
+    private Integer userSum;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/excel/GridMemberWorkExportExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/excel/GridMemberWorkExportExcelVO.java
new file mode 100644
index 0000000..daf8877
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/grid/admin/excel/GridMemberWorkExportExcelVO.java
@@ -0,0 +1,70 @@
+package com.panzhihua.common.model.vos.grid.admin.excel;
+
+import java.io.Serializable;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * 网格员工作汇总Excel导出
+ */
+@Data
+@ApiModel("网格员工作汇总Excel导出")
+public class GridMemberWorkExportExcelVO implements Serializable {
+
+    @ExcelProperty(value = "网格员名称", index = 0)
+    private String nickName;
+
+    @ExcelProperty(value = "发布突发事件", index = 1)
+    private Integer addTFTotal;
+
+    @ExcelProperty(value = "处理突发事件", index = 2)
+    private Integer handleTFTotal;
+
+    @ExcelProperty(value = "发布矛盾纠纷", index = 3)
+    private Integer addMDTotal;
+
+    @ExcelProperty(value = "处理矛盾纠纷", index = 4)
+    private Integer handleMDTotal;
+
+    @ExcelProperty(value = "发布治安隐患", index = 5)
+    private Integer addZATotal;
+
+    @ExcelProperty(value = "小区名字", index = 6)
+    private Integer handleZATotal;
+
+    @ExcelProperty(value = "发布不稳定因素", index = 7)
+    private Integer addBWDTotal;
+
+    @ExcelProperty(value = "处理不稳定因素", index = 8)
+    private Integer handleBWDTotal;
+
+    @ExcelProperty(value = "发布公共服务", index = 9)
+    private Integer addGGTotal;
+
+    @ExcelProperty(value = "处理公共服务", index = 10)
+    private Integer handleGGTotal;
+
+    @ExcelProperty(value = "发布特殊人群", index = 11)
+    private Integer addTSTotal;
+
+    @ExcelProperty(value = "处理特殊人群", index = 12)
+    private Integer handleTSTotal;
+
+    @ExcelProperty(value = "完成走访任务", index = 13)
+    private Integer handleZFTotal;
+
+    @ExcelProperty(value = "处理随手拍", index = 14)
+    private Integer easyPhotoTotal;
+
+    @ExcelProperty(value = "发布宣传教育", index = 15)
+    private Integer propagandaEducationTotal;
+
+    @ExcelProperty(value = "新增居民数", index = 16)
+    private Integer addResidentTotal = 0;
+
+    @ExcelProperty(value = "新增实有房屋数", index = 17)
+    private Integer addHouseTotal = 0;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/integral/ComOpsAccRuleFuncVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/integral/ComOpsAccRuleFuncVO.java
new file mode 100644
index 0000000..0856454
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/integral/ComOpsAccRuleFuncVO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.vos.integral;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 积分功能
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-28 16:08
+ **/
+@Data
+@ApiModel("》运营 》积分 》积分功能")
+public class ComOpsAccRuleFuncVO {
+
+    @ApiModelProperty("自增id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("积分功能描述")
+    private String desc;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/integral/ComOpsAccRuleVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/integral/ComOpsAccRuleVO.java
new file mode 100644
index 0000000..26c710b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/integral/ComOpsAccRuleVO.java
@@ -0,0 +1,37 @@
+package com.panzhihua.common.model.vos.integral;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 积分规则
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-28 16:00
+ **/
+@Data
+@ApiModel("》运营 》积分 》规则")
+public class ComOpsAccRuleVO {
+
+    @ApiModelProperty("自增id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("积分功能id")
+    private Integer funcId;
+
+    @ApiModelProperty("积分项目")
+    private String accItem;
+
+    @ApiModelProperty("获得积分")
+    private Integer score;
+
+    @ApiModelProperty("每日上限")
+    private Integer max;
+
+    @ApiModelProperty("备注")
+    private String appendix;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/integral/ComOpsAccUserVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/integral/ComOpsAccUserVO.java
new file mode 100644
index 0000000..1b44f3c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/integral/ComOpsAccUserVO.java
@@ -0,0 +1,38 @@
+package com.panzhihua.common.model.vos.integral;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 积分用户关系
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-28 16:14
+ **/
+@Data
+@ApiModel("》运营 》积分 》用户关系")
+public class ComOpsAccUserVO {
+
+    @ApiModelProperty("自增id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("用户id,可以关联出名称、手机、社区等信息")
+    private Integer userId;
+
+    @ApiModelProperty("积分规则id,可以关联积分功能,积分项目")
+    private Integer ruleId;
+
+    @ApiModelProperty("积分变化,可正可负")
+    private Integer scoreChange;
+
+    @ApiModelProperty("积分变化时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date changeAt;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinghuiMerchantEvaluateVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinghuiMerchantEvaluateVO.java
new file mode 100644
index 0000000..103bd7d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinghuiMerchantEvaluateVO.java
@@ -0,0 +1,57 @@
+package com.panzhihua.common.model.vos.jinhui;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇商家评价表")
+public class JinghuiMerchantEvaluateVO implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+
+    @ApiModelProperty(value = "主键id")
+    private String id;
+
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+
+    @ApiModelProperty(value = "商家id")
+    private String merchantId;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    @ApiModelProperty(value = "内容")
+    private String content;
+
+    @ApiModelProperty(value = "图片url")
+    private String imgUrl;
+
+    @ApiModelProperty(value = "评论人姓名")
+    private String userName;
+
+    @ApiModelProperty(value = "评论人头像")
+    private String userUrl;
+
+
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiAllOldManVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiAllOldManVO.java
new file mode 100644
index 0000000..b00b4d8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiAllOldManVO.java
@@ -0,0 +1,52 @@
+package com.panzhihua.common.model.vos.jinhui;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇老人手环大屏")
+public class JinhuiAllOldManVO implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "已处理数量")
+    private String processedNum="0";
+
+    @ApiModelProperty(value = "未处理数量")
+    private String untreatedNum="0";
+
+    @ApiModelProperty(value = "已处理列表")
+    private List<JinhuiOldManVO> processedList;
+
+    @ApiModelProperty(value = "未处理列表")
+    private List<JinhuiOldManVO> untreatedList;
+
+    //总数
+    @ApiModelProperty(value = "总数")
+    private String braceletUserNum="0";
+    //男
+    @ApiModelProperty(value = "男人数量")
+    private String braceletUserManNum="0";
+    //女
+    @ApiModelProperty(value = "女人数量")
+    private String braceletUserWomanNum="0";
+
+
+    @ApiModelProperty(value = "折线统计")
+    private List<JinhuiOldManBrokenLineVO> lsit;
+
+    @ApiModelProperty(value = "用户位置以及状态信息")
+    private List<JinhuiOldManUserDateVO> oldManUserDates;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiApplyExperienceVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiApplyExperienceVO.java
new file mode 100644
index 0000000..853fc8d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiApplyExperienceVO.java
@@ -0,0 +1,60 @@
+package com.panzhihua.common.model.vos.jinhui;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇报名体验表")
+public class JinhuiApplyExperienceVO implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "参加人id")
+    private String userId;
+
+    @ApiModelProperty(value = "体验内容")
+    private String experienceContent;
+
+    @ApiModelProperty(value = "活动id")
+    private String activityId;
+
+    @ApiModelProperty(value = "体验提交时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date uploadingTime;
+
+
+    @ApiModelProperty(value = "是否反馈(0没有  1有)")
+    private String isFeedback;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    @ApiModelProperty(value = "活动标题")
+    private String title;
+
+    @ApiModelProperty(value = "活动封面")
+    private String coverImgUrl;
+
+    @ApiModelProperty(value = "活动状态(1待开始  2报名中  3已开始  4已结束 5已取消)")
+    private String activityType;
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiArticleManagementVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiArticleManagementVO.java
new file mode 100644
index 0000000..781685c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiArticleManagementVO.java
@@ -0,0 +1,49 @@
+package com.panzhihua.common.model.vos.jinhui;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇文章管理")
+public class JinhuiArticleManagementVO implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+    
+    @ApiModelProperty(value = "标题")
+    private String title;
+
+    @ApiModelProperty(value = "封面")
+    private String coverUrl;
+
+    @ApiModelProperty(value = "状态 0下架  1上架")
+    private String articleType;
+
+    @ApiModelProperty(value = "详情内容")
+    private String content;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+
+    @ApiModelProperty(value = "状态(1 金汇文章   2 金汇家园)")
+    private String conditionType;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiCharityVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiCharityVO.java
new file mode 100644
index 0000000..8f09f92
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiCharityVO.java
@@ -0,0 +1,53 @@
+package com.panzhihua.common.model.vos.jinhui;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇慈善公益")
+public class JinhuiCharityVO implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "标题")
+    private String title;
+
+    @ApiModelProperty(value = "封面")
+    private String coverImgUrl;
+
+    @ApiModelProperty(value = "简语")
+    private String simpleStatement;
+
+    @ApiModelProperty(value = "标签")
+    private String label;
+
+    @ApiModelProperty(value = "内容")
+    private String content;
+
+    @ApiModelProperty(value = "二维码")
+    private String qrCodeUrl;
+
+    @ApiModelProperty(value = "状态(1 进心中  2已结束)")
+    private String state;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiCoinGeneralTableVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiCoinGeneralTableVO.java
new file mode 100644
index 0000000..437b8a3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiCoinGeneralTableVO.java
@@ -0,0 +1,44 @@
+package com.panzhihua.common.model.vos.jinhui;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇社区用户金汇币总表")
+public class JinhuiCoinGeneralTableVO
+{
+    private static final long serialVersionUID = -70884515430727555L;
+
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+
+    @ApiModelProperty(value = "金币总额")
+    private String goldCoin="0";
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiComConvenientServiceCategoriesVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiComConvenientServiceCategoriesVO.java
new file mode 100644
index 0000000..57bb75e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiComConvenientServiceCategoriesVO.java
@@ -0,0 +1,50 @@
+package com.panzhihua.common.model.vos.jinhui;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 商家分类表
+ */
+
+@Data
+public class JinhuiComConvenientServiceCategoriesVO implements Serializable
+{
+
+    private static final long serialVersionUID = 1L;
+
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "分类名称")
+    private String name;
+
+    @ApiModelProperty(value = "分类图标")
+    private String icon;
+
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+    @ApiModelProperty(value = "排序  默认1")
+    private String weight;
+
+    @ApiModelProperty(value = "是否删除(0未删除 1已删除 )")
+    private String isDel;
+
+    @ApiModelProperty(value = "创建时间")
+    private String createdAt;
+
+    @ApiModelProperty(value = "创建人")
+    private String createdBy;
+
+    @ApiModelProperty(value = "更新时间")
+    private String updatedAt;
+
+    @ApiModelProperty(value = "父级id")
+    private String parentId;
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiCommunityServicesVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiCommunityServicesVO.java
new file mode 100644
index 0000000..7cc0e9d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiCommunityServicesVO.java
@@ -0,0 +1,70 @@
+package com.panzhihua.common.model.vos.jinhui;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇大屏社区服务")
+public class JinhuiCommunityServicesVO
+{
+    @ApiModelProperty("党员数")
+    private String partyMember;
+    @ApiModelProperty("志愿者")
+    private String volunteer;
+
+
+    /**
+     * 便民服务商家  审核状态 (1待审核 2已通过 3未通过 )
+     * @return
+     */
+    @ApiModelProperty("便民服务商家")
+    private String convenientMerchantsNum="0";
+
+    /**
+     * 办事直指南
+     * @return
+     */
+    @ApiModelProperty("办事指南")
+    private String workGuideNum="0";
+
+    /**
+     * 空间预约 `state` 状态(1待处理  2未通过  3已通过)',
+     * @return
+     */
+    @ApiModelProperty("空间预约")
+    private String interspaceApplyNum="0";
+
+
+    /**
+     * 商城订单
+     * @param cancelType `cancel_type` '核销状态(0待核销  1已核销  2订单已取消)
+     * @return
+     */
+    @ApiModelProperty("商城订单")
+    private String shoppingOrderNum="0";
+
+    /**
+     * 获取社区工作者
+     * @param communityId `type`  '1社区工作人员2物业',
+     * @return
+     */
+    @ApiModelProperty("获取社区工作者")
+    private String serviceTeam="0";
+
+    @ApiModelProperty("通知公告")
+    private String announcement="0";
+
+
+
+    @ApiModelProperty("商家分类")
+    List<JinhuiMerchantTypeVO> list;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiConfigVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiConfigVO.java
new file mode 100644
index 0000000..2c9a4ff
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiConfigVO.java
@@ -0,0 +1,58 @@
+package com.panzhihua.common.model.vos.jinhui;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇社区商家配置")
+public class JinhuiConfigVO implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+    @ApiModelProperty(value = "兑换地址")
+    private String address;
+
+    @ApiModelProperty(value = "纬度")
+    private String lat;
+
+    @ApiModelProperty(value = "经度")
+    private String lng;
+
+    @ApiModelProperty(value = "兑换状态(1每天  2周一到周五   3周末)")
+    private String businessType;
+
+    @ApiModelProperty(value = "兑换开始时间")
+    private String businessStartTime;
+
+    @ApiModelProperty(value = "兑换结束时间")
+    private String businessEndTime;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiExperienceActivityVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiExperienceActivityVO.java
new file mode 100644
index 0000000..2cba436
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiExperienceActivityVO.java
@@ -0,0 +1,89 @@
+package com.panzhihua.common.model.vos.jinhui;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇商城商品表")
+public class JinhuiExperienceActivityVO implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "活动标题")
+    private String title;
+
+    @ApiModelProperty(value = "活动地址")
+    private String address;
+
+    @ApiModelProperty(value = "纬度")
+    private String lat;
+
+    @ApiModelProperty(value = "经度")
+    private String lon;
+
+    @ApiModelProperty(value = "报名开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date applyStartTime;
+
+    @ApiModelProperty(value = "报名结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date applyEndTime;
+
+    @ApiModelProperty(value = "活动开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date activityStartTime;
+
+    @ApiModelProperty(value = "活动结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date activityEndTime;
+
+    @ApiModelProperty(value = "参加人数 (不限传-1)")
+    private String peopleNumber;
+
+    @ApiModelProperty(value = "负责人电话")
+    private String phone;
+
+    @ApiModelProperty(value = "奖励")
+    private String award;
+
+    @ApiModelProperty(value = "活动状态")
+    private String activityType;
+
+    @ApiModelProperty(value = "封面")
+    private String coverImgUrl;
+
+
+    @ApiModelProperty(value = "内容")
+    private String content;
+
+    @ApiModelProperty(value = "是否反馈(0没有  1有)")
+    private String isFeedback;
+
+    @ApiModelProperty(value = "是否参加(0 未参加   1已参加)")
+    private String isJoin;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiGoldCoinRecordVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiGoldCoinRecordVO.java
new file mode 100644
index 0000000..c60cae7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiGoldCoinRecordVO.java
@@ -0,0 +1,53 @@
+package com.panzhihua.common.model.vos.jinhui;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇币明细")
+public class JinhuiGoldCoinRecordVO
+{
+    private static final long serialVersionUID = -70884515430727555L;
+
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+
+    @ApiModelProperty(value = "金币总额")
+    private String goldCoin="0";
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+    @ApiModelProperty(value = "标题")
+    private String title;
+
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+    @ApiModelProperty(value = "状态")
+    private String type;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiIndexInfoVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiIndexInfoVO.java
new file mode 100644
index 0000000..17d38bf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiIndexInfoVO.java
@@ -0,0 +1,50 @@
+package com.panzhihua.common.model.vos.jinhui;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇大屏")
+public class JinhuiIndexInfoVO
+{
+    /**
+     * 获取金汇风采数量
+     * @param
+     * @return
+     */
+    @ApiModelProperty(value = "金汇风采数量")
+    private String mienNum="0";
+
+    /**
+     * 获取志愿者服务
+     * @return
+     */
+    @ApiModelProperty(value = "志愿者服务")
+    private String volunteerServeNum="0";
+
+    /**
+     * 获取微心愿数量
+     * @param
+     * @return
+     */
+    @ApiModelProperty(value = "微心愿数量")
+    private String microVolunteeringNum="0";
+
+
+    /**
+     * 便民服务商家
+     * @return
+     */
+    @ApiModelProperty(value = "便民服务商家数量")
+    private String convenientMerchantsNum="0";
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiInterspaceApplyForVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiInterspaceApplyForVO.java
new file mode 100644
index 0000000..e46589e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiInterspaceApplyForVO.java
@@ -0,0 +1,76 @@
+package com.panzhihua.common.model.vos.jinhui;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("空间预约申请")
+public class JinhuiInterspaceApplyForVO implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+
+    @ApiModelProperty(value = "空间场地id")
+    private String interspaceId;
+
+    @ApiModelProperty(value = "空间场地名称")
+    private String interspaceName;
+
+    @ApiModelProperty(value = "预约时间(哪一天)")
+    private String interspaceTime;
+
+    @ApiModelProperty(value = "预约时段")
+    private String subscribeTimeFrame;
+
+    @ApiModelProperty(value = "预约人姓名")
+    private String userName;
+
+    @ApiModelProperty(value = "预约人id")
+    private String userId;
+
+    @ApiModelProperty(value = "预约人电话")
+    private String userPhone;
+
+    @ApiModelProperty(value = "状态(1待处理  2未通过  3已通过)")
+    private String state;
+
+    @ApiModelProperty(value = "用处")
+    private String content;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    @ApiModelProperty(value = "回复")
+    private String reply;
+
+    @ApiModelProperty(value = "图片")
+    private String imgUrl;
+
+    @ApiModelProperty(value = "空间地址")
+    private String address;
+
+    @ApiModelProperty(value = "经度")
+    private String lon;
+
+    @ApiModelProperty(value = "纬度")
+    private String lat;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiInterspaceTypeVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiInterspaceTypeVO.java
new file mode 100644
index 0000000..82a0230
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiInterspaceTypeVO.java
@@ -0,0 +1,49 @@
+package com.panzhihua.common.model.vos.jinhui;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇空间管理")
+public class JinhuiInterspaceTypeVO implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "空间名称")
+    private String title;
+
+
+
+    @ApiModelProperty(value = "空间分类")
+    private String intendantName;
+
+
+    @ApiModelProperty(value = "创建人id")
+    private String userId;
+
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiInterspaceVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiInterspaceVO.java
new file mode 100644
index 0000000..301e3e6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiInterspaceVO.java
@@ -0,0 +1,71 @@
+package com.panzhihua.common.model.vos.jinhui;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇空间管理")
+public class JinhuiInterspaceVO implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "空间名称")
+    private String title;
+
+    @ApiModelProperty(value = "管理员")
+    private String intendant;
+
+    @ApiModelProperty(value = "管理员电话")
+    private String intendantPhone;
+
+    @ApiModelProperty(value = "空间分类")
+    private String intendantType;
+
+
+    @ApiModelProperty(value = "空间分类名称")
+    private String intendantName;
+
+    @ApiModelProperty(value = "空间介绍")
+    private String content;
+
+    @ApiModelProperty(value = "空间地址")
+    private String address;
+
+    @ApiModelProperty(value = "经度")
+    private String lon;
+
+    @ApiModelProperty(value = "纬度")
+    private String lat;
+
+    @ApiModelProperty(value = "空间图片")
+    private String imgUrl;
+
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    @ApiModelProperty(value = "费用")
+    private String price;
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiMerchantTypeVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiMerchantTypeVO.java
new file mode 100644
index 0000000..ad302c4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiMerchantTypeVO.java
@@ -0,0 +1,35 @@
+package com.panzhihua.common.model.vos.jinhui;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇商家分类")
+public class JinhuiMerchantTypeVO
+{
+    /**
+     * 获取金汇风采数量
+     * @param
+     * @return
+     */
+    @ApiModelProperty(value = "分类名称")
+    private String name="0";
+
+    /**
+     * 获取志愿者服务
+     * @return
+     */
+    @ApiModelProperty(value = "分类商家数量")
+    private String number="0";
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiMicroVolunteeringTypeVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiMicroVolunteeringTypeVO.java
new file mode 100644
index 0000000..151f81c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiMicroVolunteeringTypeVO.java
@@ -0,0 +1,45 @@
+package com.panzhihua.common.model.vos.jinhui;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇微心愿分类")
+public class JinhuiMicroVolunteeringTypeVO implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "名字")
+    private String title;
+
+
+    @ApiModelProperty(value = "创建人id")
+    private String userId;
+
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiMicroVolunteeringVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiMicroVolunteeringVO.java
new file mode 100644
index 0000000..95c628f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiMicroVolunteeringVO.java
@@ -0,0 +1,67 @@
+package com.panzhihua.common.model.vos.jinhui;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇微心愿")
+public class JinhuiMicroVolunteeringVO implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "内容")
+    private String content;
+
+    @ApiModelProperty(value = "提交人id")
+    private String userId;
+
+    @ApiModelProperty(value = "心愿类型id")
+    private String wishTypeId;
+
+    @ApiModelProperty(value = "心愿类型名字")
+    private String wishTypeName;
+
+    @ApiModelProperty(value = "姓名")
+    private String userName;
+
+    @ApiModelProperty(value = "电话")
+    private String userPhone;
+
+    @ApiModelProperty(value = "图片")
+    private String imgUrl;
+
+    @ApiModelProperty(value = "回复")
+    private String reply;
+
+    @ApiModelProperty(value = "回复图片")
+    private String replyImgUrl;
+
+    @ApiModelProperty(value = "状态(1待处理   2已处理)")
+    private String state;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiOldManBrokenLineVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiOldManBrokenLineVO.java
new file mode 100644
index 0000000..ed3d9e1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiOldManBrokenLineVO.java
@@ -0,0 +1,30 @@
+package com.panzhihua.common.model.vos.jinhui;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇老人手环大屏折线统计图")
+public class JinhuiOldManBrokenLineVO implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "月份")
+    private String filed;
+
+    @ApiModelProperty(value = "新增数量")
+    private String num;
+
+    @ApiModelProperty(value = "累计数量")
+    private String totalNum;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiOldManUserDateVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiOldManUserDateVO.java
new file mode 100644
index 0000000..09a9826
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiOldManUserDateVO.java
@@ -0,0 +1,38 @@
+package com.panzhihua.common.model.vos.jinhui;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇老人手环定位详情大屏")
+public class JinhuiOldManUserDateVO implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "设备id")
+    private String deviceId;
+
+    @ApiModelProperty(value = "用户姓名")
+    private String userName;
+
+    @ApiModelProperty(value = "经度")
+    private String lng;
+
+    @ApiModelProperty(value = "纬度")
+    private String lat;
+
+    @ApiModelProperty(value = "是否正常 (0 正常   1异常  2 待服务)")
+    private String isAbnormal;
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiOldManVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiOldManVO.java
new file mode 100644
index 0000000..ed3ffce
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiOldManVO.java
@@ -0,0 +1,52 @@
+package com.panzhihua.common.model.vos.jinhui;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇老人手环大屏")
+public class JinhuiOldManVO implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+
+    @ApiModelProperty(value = "处理状态(1 未处理   2 已处理   3处理中  4 忽略)")
+    private String disposeType;
+
+
+    @ApiModelProperty(value = "地址")
+    private String address;
+
+    @ApiModelProperty(value = "详细地址")
+    private String detailAddress;
+
+    @ApiModelProperty(value = "用户名")
+    private String userName;
+
+    @ApiModelProperty(value = "设备手机号码")
+    private String mobile;
+
+    @ApiModelProperty(value = "设备绑定手机号")
+    private String binPhone;
+
+    @ApiModelProperty(value = "紧急联系人")
+    private String emergencyContact;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty(value = "处理时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date disposeTime;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiQuestnaireUserAnswerVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiQuestnaireUserAnswerVO.java
new file mode 100644
index 0000000..4f30b7d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiQuestnaireUserAnswerVO.java
@@ -0,0 +1,68 @@
+package com.panzhihua.common.model.vos.jinhui;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇办事记录用户答题记录")
+public class JinhuiQuestnaireUserAnswerVO implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "办事指南id")
+    private String questnaireId;
+
+    @ApiModelProperty(value = "办事指南标题")
+    private String questnaireName;
+
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+
+    @ApiModelProperty(value = "用户答题json数据")
+    private String jsonObject;
+
+
+    @ApiModelProperty(value = "办理状态(0待处理  1已通过 2未通过 )")
+    private String transactType;
+
+    @ApiModelProperty(value = "回复")
+    private String reply;
+
+    @ApiModelProperty(value = "用户名")
+    private String userName;
+
+    @ApiModelProperty(value = "电话")
+    private String phone;
+
+    @ApiModelProperty(value = "身份证")
+    private String idCard;
+
+    @ApiModelProperty(value = "处理时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date processingTime;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiReseauPeopleVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiReseauPeopleVO.java
new file mode 100644
index 0000000..fd169a4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiReseauPeopleVO.java
@@ -0,0 +1,45 @@
+package com.panzhihua.common.model.vos.jinhui;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇网格员")
+public class JinhuiReseauPeopleVO implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+
+    @ApiModelProperty(value = "绑定用户id")
+    private String userId;
+
+    @ApiModelProperty(value = "网格员名称")
+    private String reseauName;
+
+    @ApiModelProperty(value = "负责网格")
+    private String reseauIds;
+
+    @ApiModelProperty(value = "联系电话")
+    private String phone;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiReseauVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiReseauVO.java
new file mode 100644
index 0000000..942fd8d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiReseauVO.java
@@ -0,0 +1,60 @@
+package com.panzhihua.common.model.vos.jinhui;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇网格")
+public class JinhuiReseauVO implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+
+    @ApiModelProperty(value = "网格名称")
+    private String reseauName;
+
+    @ApiModelProperty(value = "图层")
+    private String coverage;
+
+    @ApiModelProperty(value = "面积")
+    private String acreage;
+
+    @ApiModelProperty(value = "名称")
+    private String designation;
+
+    @ApiModelProperty(value = "线条颜色")
+    private String linellae;
+
+    @ApiModelProperty(value = "线条宽度")
+    private String broad;
+
+    @ApiModelProperty(value = "填充颜色")
+    private String fill;
+
+    @ApiModelProperty(value = "围栏坐标")
+    private String rail;
+
+    @ApiModelProperty(value = "网格员id")
+    private String reseauId;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiShoppingOrderVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiShoppingOrderVO.java
new file mode 100644
index 0000000..58286a3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiShoppingOrderVO.java
@@ -0,0 +1,93 @@
+package com.panzhihua.common.model.vos.jinhui;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇商城订单表")
+public class JinhuiShoppingOrderVO implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "订单号")
+    private String orderNumber;
+
+    @ApiModelProperty(value = "商品id")
+    private String goodsId;
+
+    @ApiModelProperty(value = "下单人id")
+    private String userId;
+
+    @ApiModelProperty(value = "核销状态(0待核销  1已核销  2订单已取消)")
+    private String cancelType;
+
+    @ApiModelProperty(value = "核销时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date cancelTime;
+
+    @ApiModelProperty(value = "支付金额")
+    private String palyMoney;
+
+    @ApiModelProperty(value = "创建时间(兑换时间)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    @ApiModelProperty(value = "取消时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date abolishTime;
+
+
+    @ApiModelProperty(value = "商品名称")
+    private String goodName;
+
+    @ApiModelProperty(value = "商品价格")
+    private String goodPrice;
+
+    @ApiModelProperty(value = "商品图片")
+    private String coverImgUrl;
+
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    @ApiModelProperty(value = "电话")
+    private String phone;
+
+
+    @ApiModelProperty(value = "兑换地址")
+    private String address;
+
+    @ApiModelProperty(value = "纬度")
+    private String lat;
+
+    @ApiModelProperty(value = "经度")
+    private String lng;
+
+    @ApiModelProperty(value = "兑换状态(1每天  2周一到周五   3周末)")
+    private String businessType;
+
+    @ApiModelProperty(value = "兑换开始时间")
+    private String businessStartTime;
+
+    @ApiModelProperty(value = "兑换结束时间")
+    private String businessEndTime;
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiShoppingVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiShoppingVO.java
new file mode 100644
index 0000000..01a3afd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiShoppingVO.java
@@ -0,0 +1,67 @@
+package com.panzhihua.common.model.vos.jinhui;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇商城商品表")
+public class JinhuiShoppingVO implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "商品名称")
+    private String goodName;
+
+    @ApiModelProperty(value = "商品价格")
+    private String goodPrice;
+
+    @ApiModelProperty(value = "商品状态(0下架  1上架)")
+    private String goodType;
+
+    @ApiModelProperty(value = "商品封面")
+    private String coverImgUrl;
+
+    @ApiModelProperty(value = "商品详情内容")
+    private String content;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    @ApiModelProperty(value = "兑换地址")
+    private String address;
+
+    @ApiModelProperty(value = "纬度")
+    private String lat;
+
+    @ApiModelProperty(value = "经度")
+    private String lng;
+
+    @ApiModelProperty(value = "兑换状态(1每天  2周一到周五   3周末)")
+    private String businessType;
+
+    @ApiModelProperty(value = "兑换开始时间")
+    private String businessStartTime;
+
+    @ApiModelProperty(value = "兑换结束时间")
+    private String businessEndTime;
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiSnapshotClassifyVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiSnapshotClassifyVO.java
new file mode 100644
index 0000000..6831394
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiSnapshotClassifyVO.java
@@ -0,0 +1,39 @@
+package com.panzhihua.common.model.vos.jinhui;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇随手拍分类")
+public class JinhuiSnapshotClassifyVO implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "分类名称")
+    private String classifyName;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiSnapshotVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiSnapshotVO.java
new file mode 100644
index 0000000..832a739
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/jinhui/JinhuiSnapshotVO.java
@@ -0,0 +1,67 @@
+package com.panzhihua.common.model.vos.jinhui;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇随手拍分类")
+public class JinhuiSnapshotVO implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "分类名称")
+    private String classifyName;
+
+    @ApiModelProperty(value = "提交人员id")
+    private String userId;
+
+    @ApiModelProperty(value = "网格员id")
+    private String reseauId;
+
+
+    @ApiModelProperty(value = "内容")
+    private String content;
+
+
+    @ApiModelProperty(value = "图片或视频url")
+    private String imgUrl;
+
+    @ApiModelProperty(value = "地址")
+    private String address;
+
+    @ApiModelProperty(value = "纬度")
+    private String lat;
+
+    @ApiModelProperty(value = "经度")
+    private String lon;
+
+    @ApiModelProperty(value = "地址备注")
+    private String addressRemark;
+
+    @ApiModelProperty(value = "分类id")
+    private String classifyId;
+
+    @ApiModelProperty(value = "是否上报(0 否 1是)")
+    private String isApply;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ActivityAnalysisVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ActivityAnalysisVO.java
new file mode 100644
index 0000000..4cd15e0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ActivityAnalysisVO.java
@@ -0,0 +1,44 @@
+package com.panzhihua.common.model.vos.neighbor;
+
+import com.panzhihua.common.model.vos.PageVO;
+import com.panzhihua.common.model.vos.common.PbCheckUnitStatisticsVo;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ActivityAnalysisVO {
+    @ApiModelProperty("机关单位总数")
+    private Integer unitCount;
+
+    @ApiModelProperty("党员总数")
+    private Integer partyMemberCount;
+
+    @ApiModelProperty("单位统计数据列表(时长倒序)")
+    private PageVO<List<UnitActivityAnalysisVO>> unitList;
+
+    @ApiModelProperty("党员统计数据列表(时长倒序)")
+    private PageVO<List<PartyMemberAnalysisVO>> partyMemberList;
+
+    @ApiModelProperty("机关单位服务总次数")
+    private Integer unitServiceTotalCount;
+
+    @ApiModelProperty("机关单位服务总时长")
+    private Double unitServiceTotalTime;
+
+    @ApiModelProperty("党员服务总次数")
+    private Integer partyMemberServiceTotalCount;
+
+    @ApiModelProperty("党员服务总时长")
+    private Double partyMemberServiceTotalTime;
+
+    @ApiModelProperty("报道单位累计总积分")
+    private Long awardSumCount;
+
+    @ApiModelProperty("报道党员累计总积分")
+    private Long partySumCount;
+
+    @ApiModelProperty("党员数据--聚合")
+    private List<PbCheckUnitStatisticsVo> groupPartyCount;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/AddNeighborCircleAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/AddNeighborCircleAdminVO.java
new file mode 100644
index 0000000..7bb7aad
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/AddNeighborCircleAdminVO.java
@@ -0,0 +1,35 @@
+package com.panzhihua.common.model.vos.neighbor;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther llming
+ * @describe
+ */
+@Data
+@ApiModel("新增邻里圈")
+public class AddNeighborCircleAdminVO {
+
+    @ApiModelProperty("发布内容")
+    private String releaseContent;
+
+    @ApiModelProperty("发布图片")
+    private String releaseImages;
+
+    @ApiModelProperty("使用类型(1.邻里圈 2.问题清单 3.需求清单)")
+    private Integer belongType;
+
+    /**
+     * 使用类型(1.邻里圈 2.问题清单 3.需求清单)
+     */
+    public interface BelongType{
+        int LLQ = 1;
+        int WTQD = 2;
+        int XQQD = 3;
+    }
+
+    @ApiModelProperty(value = "当前登陆人id", hidden = true)
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ChangeCommentReplyStatusByAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ChangeCommentReplyStatusByAdminVO.java
new file mode 100644
index 0000000..ed7c159
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ChangeCommentReplyStatusByAdminVO.java
@@ -0,0 +1,22 @@
+package com.panzhihua.common.model.vos.neighbor;
+
+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;
+
+/**
+ * @auther llming
+ * @describe
+ */
+@Data
+@ApiModel("修改评论回复状态")
+public class ChangeCommentReplyStatusByAdminVO {
+    @ApiModelProperty("回复id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("状态(1.显示 2.隐藏)")
+    private Integer status;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ChangeCommentStatusByAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ChangeCommentStatusByAdminVO.java
new file mode 100644
index 0000000..f41cd9d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ChangeCommentStatusByAdminVO.java
@@ -0,0 +1,24 @@
+package com.panzhihua.common.model.vos.neighbor;
+
+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;
+
+/**
+ * @auther llming
+ * @describe
+ */
+@Data
+@ApiModel("修改评论状态")
+public class ChangeCommentStatusByAdminVO {
+
+    @ApiModelProperty("评论id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("状态(1.显示 2.隐藏)")
+    private Integer status;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleAdminVO.java
new file mode 100644
index 0000000..b7102b0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleAdminVO.java
@@ -0,0 +1,87 @@
+package com.panzhihua.common.model.vos.neighbor;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+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;
+
+/**
+ * @auther llming
+ * @describe 邻里圈VO
+ */
+@Data
+@ApiModel("邻里圈")
+public class ComActNeighborCircleAdminVO {
+
+    @ApiModelProperty("id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("发布人id")
+    private Long releaseId;
+
+    @ApiModelProperty("发布人头像url")
+    private String imageUrl;
+
+    @ApiModelProperty("发布人")
+    private String releaseName;
+
+    @ApiModelProperty("话题名称")
+    private String topicName;
+
+    @ApiModelProperty(value = "用户类型 1 小程序 2 运营平台 3 社区平台", hidden = true)
+    private Integer userType;
+
+    @ApiModelProperty("发布人电话")
+    private String releasePhone;
+
+    @ApiModelProperty("社区")
+    private String communityName;
+
+    @ApiModelProperty("详情")
+    private String releaseContent;
+
+    @ApiModelProperty("发布图片")
+    private String releaseImages;
+
+    @ApiModelProperty("发布状态(1.待审核 2.显示 3.隐藏 4.驳回)")
+    private Integer status;
+
+    @ApiModelProperty("驳回原因")
+    private String refuseReason;
+
+    @ApiModelProperty("评论数")
+    private Integer commentNum;
+
+    @ApiModelProperty("点赞数")
+    private Integer fabulousNum;
+
+    @ApiModelProperty("转发数")
+    private Integer forwardNum;
+
+    @ApiModelProperty("浏览量")
+    private Integer viewsNum;
+
+    @ApiModelProperty("发布时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("评论数")
+    private Integer lastCommentNum;
+
+    @ApiModelProperty("点赞数")
+    private Integer lastFabulousNum;
+
+    @ApiModelProperty("使用类型(1.邻里圈 2.问题清单 3.需求清单)")
+    private Integer belongType;
+    @ApiModelProperty("处理状态 0待接收 1正在求助 2待处理 3待评价 4已评价")
+    private Integer solveStatus;
+
+    @ApiModelProperty("预计服务时长")
+    private String targetServiceTime;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleAnalysisVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleAnalysisVO.java
new file mode 100644
index 0000000..99cd501
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleAnalysisVO.java
@@ -0,0 +1,43 @@
+package com.panzhihua.common.model.vos.neighbor;
+
+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;
+/**
+ * @author zts
+ * @decribe
+ * */
+@Data
+@ApiModel("机关单位服务统计返回类")
+public class ComActNeighborCircleAnalysisVO  {
+    @ApiModelProperty("社区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long communityId;
+
+    @ApiModelProperty("机关单位报道社区")
+    private String communityName;
+
+    @ApiModelProperty("机关单位名称")
+    private String unitName;
+
+    @ApiModelProperty("服务时间统计")
+    private String serviceTime;
+
+    @ApiModelProperty("服务次数统计")
+    private Integer serviceTimes;
+
+    @ApiModelProperty("机关单位总数")
+    private Integer unitCount;
+
+    @ApiModelProperty("机关单位id")
+    private Long unitId;
+
+
+//    @ApiModelProperty("活动id")
+//    private Long neighborCircleId;
+
+
+
+}
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
new file mode 100644
index 0000000..f7c0a14
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleAppVO.java
@@ -0,0 +1,150 @@
+package com.panzhihua.common.model.vos.neighbor;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+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;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:14
+ * @describe 邻里圈VO
+ */
+@Data
+@ApiModel("邻里圈")
+public class ComActNeighborCircleAppVO {
+
+    @ApiModelProperty("邻里圈id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("邻里圈发布人名字")
+    private String name;
+
+    @ApiModelProperty("邻里圈发布人头像url地址")
+    private String headUrl;
+
+    @ApiModelProperty("发布内容")
+    private String releaseContent;
+
+    @ApiModelProperty("发布图片")
+    private String releaseImages;
+
+    @ApiModelProperty("评论数")
+    private Integer commentNum;
+
+    @ApiModelProperty("点赞数")
+    private Integer fabulousNum;
+
+    @ApiModelProperty("转发数")
+    private Integer forwardNum;
+
+    @ApiModelProperty("浏览量")
+    private Integer viewsNum;
+
+    @ApiModelProperty("是否为精品帖(1.是 2.否)")
+    private Integer isBoutique;
+
+    @ApiModelProperty("发布时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("最后回复时间")
+    private Date replyAt;
+
+    /**
+     * 近3天评论数
+     */
+    @ApiModelProperty("近3天评论数")
+    private Integer lastCommentNum;
+
+    /**
+     * 近3天点赞数
+     */
+    @ApiModelProperty("近3天点赞数")
+    private Integer lastFabulousNum;
+
+    /**
+     * 近3天浏览量
+     */
+    @ApiModelProperty("近3天浏览量")
+    private Integer lastViewsNum;
+
+    /**
+     * 驳回原因
+     */
+    @ApiModelProperty("驳回原因")
+    private String refuseReason;
+
+    /**
+     * 是否已经点赞 1 是 2 否
+     */
+    @ApiModelProperty("是否已经点赞 1 是 2 否")
+    private Integer haveSign = 2;
+
+    /**
+     * 发布类型(1.小程序发布 2.后台发布)
+     */
+    @ApiModelProperty("发布类型(1.小程序发布  2.后台发布)")
+    private Integer type;
+
+    /**
+     * 发布状态(1.待审核 2.显示 3.隐藏 4.驳回)
+     */
+    @ApiModelProperty("发布状态(1.待审核 2.显示 3.隐藏 4.驳回)")
+    private Integer status;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty("社区id")
+    private Long communityId;
+
+    @ApiModelProperty("话题名称")
+    private String topicName;
+
+    @ApiModelProperty("话题id")
+    private String topicId;
+
+    @ApiModelProperty("热度")
+    private Long hotNum;
+
+    @ApiModelProperty("社区名称")
+    private String communityName;
+    @ApiModelProperty("处理状态 0待接收 1正在求助 2待处理 3待评价 4已评价")
+    private Integer solveStatus;
+    @ApiModelProperty("接单类型 1单位 2个人")
+    private Integer orderType;
+    @ApiModelProperty("接单状态 0 否 1是")
+    private Integer orderStatus;
+    @ApiModelProperty("接单人id")
+    private Long solveId;
+    @ApiModelProperty("反馈内容")
+    private String solveContent;
+    @ApiModelProperty("反馈图片")
+    private String solveUrl;
+    @ApiModelProperty("预计服务时长")
+    private String targetServiceTime;
+    @ApiModelProperty("实际服务时长")
+    private String realServiceTime;
+    @ApiModelProperty("评价内容")
+    private String comment;
+    @ApiModelProperty("评价时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date commentTime;
+    @ApiModelProperty("说明")
+    private String instruction;
+    @ApiModelProperty("求助党员类型 1全部 2指定")
+    private Integer helpMemberType;
+    @ApiModelProperty("求助指定党员数组")
+    private String helpMemberContent;
+    @ApiModelProperty("求助党组织类型 1全部 2指定")
+    private Integer helpOrgType;
+    @ApiModelProperty("求助指定党组织数组")
+    private String helpOrgContent;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleCommentAppVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleCommentAppVO.java
new file mode 100644
index 0000000..e217e1c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleCommentAppVO.java
@@ -0,0 +1,66 @@
+package com.panzhihua.common.model.vos.neighbor;
+
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+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;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:14
+ * @describe 邻里圈评论返回参数
+ */
+@Data
+@ApiModel("邻里圈评论返回参数")
+public class ComActNeighborCircleCommentAppVO {
+
+    @ApiModelProperty("邻里圈评论id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("邻里圈id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long circleId;
+
+    @ApiModelProperty("用户id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long userId;
+
+    @ApiModelProperty("评论用户名字")
+    private String userName;
+
+    @ApiModelProperty("评论用户头像")
+    private String userHeadUrl;
+
+    @ApiModelProperty("评论内容")
+    private String content;
+
+    @ApiModelProperty("点赞数")
+    private Integer fabulousNum;
+
+    @ApiModelProperty("评论时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("是否是作者评论(1.是 2.否)")
+    private Integer isRelease;
+
+    @ApiModelProperty("邻里圈评论回复列表(默认展示2条)")
+    private List<ComActNeighborCircleCommentReplyAppVO> circleCommentReplyAppList;
+
+    @ApiModelProperty("邻里圈评论回复数量")
+    private Integer commentReplyNum;
+
+    /**
+     * 是否已经点赞 1 是 2 否
+     */
+    @ApiModelProperty("是否已经点赞 1 是 2 否")
+    private Integer haveSign = 2;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleCommentReplyAppVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleCommentReplyAppVO.java
new file mode 100644
index 0000000..7577dba
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleCommentReplyAppVO.java
@@ -0,0 +1,57 @@
+package com.panzhihua.common.model.vos.neighbor;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+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;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:14
+ * @describe 邻里圈评论返回参数
+ */
+@Data
+@ApiModel("邻里圈评论回复返回参数")
+public class ComActNeighborCircleCommentReplyAppVO {
+
+    @ApiModelProperty("邻里圈评论回复id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("评论id")
+    private Long commentId;
+
+    @ApiModelProperty("上级回复用户名称")
+    private String parentUserName;
+
+    @ApiModelProperty("回复用户名称")
+    private String userName;
+
+    @ApiModelProperty("回复用户头像url")
+    private String userHeadUrl;
+
+    @ApiModelProperty("回复内容")
+    private String replyContent;
+
+    @ApiModelProperty("点赞数")
+    private Integer fabulousNum;
+
+    @ApiModelProperty("评论时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("是否是作者回复(1.是 2.否)")
+    private Integer isRelease;
+
+    /**
+     * 是否已经点赞 1 是 2 否
+     */
+    @ApiModelProperty("是否已经点赞 1 是 2 否")
+    private Integer haveSign = 2;
+
+}
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
new file mode 100644
index 0000000..d27df45
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleDetailAppVO.java
@@ -0,0 +1,143 @@
+package com.panzhihua.common.model.vos.neighbor;
+
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:14
+ * @describe 邻里圈详情返回参数
+ */
+@Data
+@ApiModel("邻里圈详情返回参数")
+public class ComActNeighborCircleDetailAppVO {
+
+    @ApiModelProperty("邻里圈id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("邻里圈发布人名字")
+    private String name;
+
+    @ApiModelProperty("邻里圈发布人头像url地址")
+    private String headUrl;
+
+    @ApiModelProperty("发布内容")
+    private String releaseContent;
+
+    @ApiModelProperty("发布图片")
+    private String releaseImages;
+
+    @ApiModelProperty("评论数")
+    private Integer commentNum;
+
+    @ApiModelProperty("点赞数")
+    private Integer fabulousNum;
+
+    @ApiModelProperty("转发数")
+    private Integer forwardNum;
+
+    @ApiModelProperty("浏览量")
+    private Integer viewsNum;
+
+    @ApiModelProperty("是否为精品帖(1.是 2.否)")
+    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("邻里圈评论列表")
+    private List<ComActNeighborCircleCommentAppVO> circleCommentAppList;
+
+    /**
+     * 是否已经点赞 1 是 2 否
+     */
+    @ApiModelProperty("是否已经点赞 1 是 2 否")
+    private Integer haveSign = 2;
+
+    /**
+     * 发布类型(1.小程序发布 2.后台发布)
+     */
+    @ApiModelProperty("发布类型(1.小程序发布  2.后台发布)")
+    private Integer type;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty("社区id")
+    private Long communityId;
+
+    @ApiModelProperty("邻里圈话题名字")
+    private String topicName;
+
+    @ApiModelProperty("驳回原因")
+    private String refuseReason;
+
+    @ApiModelProperty("处理状态 0 否 1是")
+    private Integer solveStatus;
+    @ApiModelProperty("接单状态 0 否 1是")
+    private Integer orderStatus;
+    @ApiModelProperty("接单人id")
+    private Long solveId;
+    @ApiModelProperty("反馈内容")
+    private String solveContent;
+    @ApiModelProperty("反馈图片")
+    private String solveUrl;
+    @ApiModelProperty("接单人名称")
+    private String solveName;
+    @ApiModelProperty("接单时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date orderTime;
+    @ApiModelProperty("处理时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date solveTime;
+
+    private Long topicId;
+
+    private Long releaseId;
+
+    private Integer status;
+    @ApiModelProperty("接单类型 1单位 2个人")
+    private Integer orderType;
+    @ApiModelProperty("预计服务时长")
+    private String targetServiceTime;
+    @ApiModelProperty("实际服务时长")
+    private String realServiceTime;
+    @ApiModelProperty("评价内容")
+    private String comment;
+    @ApiModelProperty("评价时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date commentTime;
+    @ApiModelProperty("说明")
+    private String instruction;
+    @ApiModelProperty("求助党员类型 1全部 2指定")
+    private Integer helpMemberType;
+    @ApiModelProperty("求助指定党员数组")
+    private String helpMemberContent;
+    @ApiModelProperty("求助党组织类型 1全部 2指定")
+    private Integer helpOrgType;
+    @ApiModelProperty("求助指定党组织数组")
+    private String helpOrgContent;
+    @ApiModelProperty("使用类型(1.邻里圈 2.问题清单 3.需求清单)")
+    private Integer belongType;
+    private Long solveUnitId;
+
+    private String activityName;
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long activityId;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date activityDate;
+
+}
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
new file mode 100644
index 0000000..c2be8a2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleTopicAdminVO.java
@@ -0,0 +1,40 @@
+package com.panzhihua.common.model.vos.neighbor;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+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;
+
+/**
+ * @auther lyq
+ * @describe 邻里圈话题返回参数
+ */
+@Data
+@ApiModel("邻里圈话题返回参数")
+public class ComActNeighborCircleTopicAdminVO {
+
+    @ApiModelProperty("id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("话题名字")
+    private String name;
+
+    @ApiModelProperty(value = "状态(1.启用  2.禁用)")
+    private Integer status;
+
+    @ApiModelProperty("发布人")
+    private String createBy;
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("排序")
+    private Integer sort;
+}
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
new file mode 100644
index 0000000..0979342
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCircleTopicAppVO.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.vos.neighbor;
+
+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;
+
+/**
+ * @auther lyq
+ * @describe 邻里圈话题返回参数
+ */
+@Data
+@ApiModel("邻里圈话题返回参数")
+public class ComActNeighborCircleTopicAppVO {
+
+    @ApiModelProperty("id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("话题名字")
+    private String name;
+
+    @ApiModelProperty("热度")
+    private Long hotNum;
+
+    @ApiModelProperty("邻里圈数量")
+    private Integer count;
+
+    @ApiModelProperty("话题logo")
+    private String logo;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCommentByAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCommentByAdminVO.java
new file mode 100644
index 0000000..edc8845
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCommentByAdminVO.java
@@ -0,0 +1,41 @@
+package com.panzhihua.common.model.vos.neighbor;
+
+import java.util.Date;
+
+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;
+
+/**
+ * @auther llming
+ * @describe
+ */
+@Data
+@ApiModel("邻里圈评论")
+public class ComActNeighborCommentByAdminVO {
+
+    @ApiModelProperty("评论id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("评论内容")
+    private String content;
+
+    @ApiModelProperty("点赞数")
+    private Integer fabulousNum;
+
+    @ApiModelProperty("评论用户")
+    private String userName;
+
+    @ApiModelProperty("评论用户手机号")
+    private String userPhone;
+
+    @ApiModelProperty("评论时间")
+    private Date createAt;
+
+    @ApiModelProperty("状态(1.显示 2.隐藏)")
+    private Integer status;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCommentReplyAppVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCommentReplyAppVO.java
new file mode 100644
index 0000000..f5504af
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCommentReplyAppVO.java
@@ -0,0 +1,57 @@
+package com.panzhihua.common.model.vos.neighbor;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+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;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:14
+ * @describe 邻里圈评论回复
+ */
+@Data
+@ApiModel("邻里圈评论回复")
+public class ComActNeighborCommentReplyAppVO {
+
+    @ApiModelProperty("邻里圈回复id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("评论id")
+    private String commentId;
+
+    @ApiModelProperty("回复人名称")
+    private String userName;
+
+    @ApiModelProperty("回复人头像")
+    private String userHeadUrl;
+
+    @ApiModelProperty("被回复人名称")
+    private String oldUserName;
+
+    @ApiModelProperty("回复内容")
+    private String replyContent;
+
+    @ApiModelProperty("点赞数")
+    private Integer fabulousNum;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("回复时间")
+    private Date createAt;
+
+    @ApiModelProperty("是否是作者回复(1.是 2.否)")
+    private Integer isRelease;
+
+    /**
+     * 是否已经点赞 1 是 2 否
+     */
+    @ApiModelProperty("是否已经点赞 1 是 2 否")
+    private Integer haveSign = 2;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCommentReplyByAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCommentReplyByAdminVO.java
new file mode 100644
index 0000000..4b2fee8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ComActNeighborCommentReplyByAdminVO.java
@@ -0,0 +1,46 @@
+package com.panzhihua.common.model.vos.neighbor;
+
+import java.util.Date;
+
+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;
+
+/**
+ * @auther llming
+ * @describe
+ */
+@Data
+@ApiModel("邻里圈评论的回复")
+public class ComActNeighborCommentReplyByAdminVO {
+
+    @ApiModelProperty("评论id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("邻里圈id")
+    private Long circleId;
+
+    @ApiModelProperty("评论用户")
+    private String userName;
+
+    @ApiModelProperty("用户昵称")
+    private String userNickName;
+
+    @ApiModelProperty("评论用户手机号")
+    private String userPhone;
+
+    @ApiModelProperty("内容")
+    private String replyContent;
+
+    @ApiModelProperty("点赞数")
+    private Integer fabulousNum;
+
+    @ApiModelProperty("状态(1.显示 2.隐藏)")
+    private Integer status;
+    @ApiModelProperty("评论时间")
+    private Date createAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/DetailNeighborCircleAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/DetailNeighborCircleAdminVO.java
new file mode 100644
index 0000000..b0b5968
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/DetailNeighborCircleAdminVO.java
@@ -0,0 +1,85 @@
+package com.panzhihua.common.model.vos.neighbor;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+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;
+
+/**
+ * @auther llming
+ * @describe
+ */
+@Data
+@ApiModel("邻里圈详情")
+public class DetailNeighborCircleAdminVO {
+
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("发布人")
+    private String releaseName;
+
+    @ApiModelProperty("发布人电话")
+    private String releasePhone;
+
+    @ApiModelProperty("发布内容")
+    private String releaseContent;
+
+    @ApiModelProperty("发布图片")
+    private String releaseImages;
+
+    @ApiModelProperty("发布状态(1.待审核 2.显示 3.隐藏 4.驳回)")
+    private Integer status;
+
+    @ApiModelProperty("驳回原因")
+    private String refuseReason;
+
+    @ApiModelProperty("评论数")
+    private Integer commentNum;
+
+    @ApiModelProperty("点赞数")
+    private Integer fabulousNum;
+
+    @ApiModelProperty("转发数")
+    private Integer forwardNum;
+
+    @ApiModelProperty("浏览量")
+    private Integer viewsNum;
+
+    @ApiModelProperty("是否为精品帖(1.是 2.否)")
+    private Integer isBoutique;
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("话题名称")
+    private String topicName;
+
+    @ApiModelProperty("头像")
+    private String imageUrl;
+
+    @ApiModelProperty("处理状态 0 否 1是")
+    private Integer solveStatus;
+    @ApiModelProperty("接单状态 0 否 1是")
+    private Integer orderStatus;
+    @ApiModelProperty("接单人id")
+    private Long solveId;
+    @ApiModelProperty("反馈内容")
+    private String solveContent;
+    @ApiModelProperty("反馈图片")
+    private String solveUrl;
+    @ApiModelProperty("接单人名称")
+    private String solveName;
+    @ApiModelProperty("接单时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date orderTime;
+    @ApiModelProperty("处理时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date solveTime;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/EditNeighborCircleAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/EditNeighborCircleAdminVO.java
new file mode 100644
index 0000000..a3b294b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/EditNeighborCircleAdminVO.java
@@ -0,0 +1,82 @@
+package com.panzhihua.common.model.vos.neighbor;
+
+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;
+
+/**
+ * @auther llming
+ * @describe
+ */
+@Data
+@ApiModel("修改邻里圈状态")
+public class EditNeighborCircleAdminVO {
+
+    @ApiModelProperty("邻里圈Id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("发布状态(1.待审核 2.显示 3.隐藏 4.驳回)")
+    private Integer status;
+
+    @ApiModelProperty(value = "当前用户Id", hidden = true)
+    private Long userId;
+
+    @ApiModelProperty("驳回原因")
+    private String refuseReason;
+
+    @ApiModelProperty("使用类型(1.邻里圈 2.问题清单 3.需求清单)")
+    private Integer belongType;
+
+    @ApiModelProperty("接单状态 0 否 1是")
+    private Integer orderStatus;
+    @ApiModelProperty("接单类型 1单位 2个人")
+    private Integer orderType;
+    @ApiModelProperty("处理状态 0待接收 1正在求助 2待处理 3待评价 4已评价")
+    private Integer solveStatus;
+    @ApiModelProperty("接单人id")
+    private Long solveId;
+    @ApiModelProperty("接单单位id")
+    private Long solveUnitId;
+    @ApiModelProperty("反馈内容")
+    private String solveContent;
+    @ApiModelProperty("反馈图片")
+    private String solveUrl;
+    @ApiModelProperty("预计服务时长")
+    private String targetServiceTime;
+    @ApiModelProperty("实际服务时长")
+    private String realServiceTime;
+    @ApiModelProperty("评价内容")
+    private String comment;
+    @ApiModelProperty("说明")
+    private String instruction;
+    @ApiModelProperty("求助党员类型 1全部 2指定")
+    private Integer helpMemberType;
+    @ApiModelProperty("求助指定党员数组")
+    private String helpMemberContent;
+    @ApiModelProperty("求助党组织类型 1全部 2指定")
+    private Integer helpOrgType;
+    @ApiModelProperty("求助指定党组织数组")
+    private String helpOrgContent;
+
+    /**
+     * 使用类型(1.邻里圈 2.问题清单 3.需求清单)
+     */
+    public interface BelongType{
+        int LLQ = 1;
+        int WTQD = 2;
+        int XQQD = 3;
+    }
+
+    /**
+     * 发布状态(1.待审核 2.显示 3.隐藏 4.驳回)
+     */
+    public interface status {
+        int dsh = 1;
+        int xs = 2;
+        int yc = 3;
+        int bh = 4;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/PartyMemberAnalysisVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/PartyMemberAnalysisVO.java
new file mode 100644
index 0000000..026f44e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/PartyMemberAnalysisVO.java
@@ -0,0 +1,43 @@
+package com.panzhihua.common.model.vos.neighbor;
+
+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;
+
+@Data
+@ApiModel
+public class PartyMemberAnalysisVO {
+
+    @ApiModelProperty("党员姓名")
+    private String memberName;
+
+    @ApiModelProperty("所属单位")
+    private String belongUnit;
+
+    @ApiModelProperty("所属社区")
+    private String belongCommunity;
+
+    @ApiModelProperty("单位归属")
+    private String belongTo;
+
+    @ApiModelProperty("所属党组织")
+    private String orgName;
+
+    @ApiModelProperty("单位名称")
+    private String unitName;
+
+    @ApiModelProperty("服务次数")
+    private Integer serviceTimes;
+
+    @ApiModelProperty("服务时长")
+    private Double serviceTime;
+
+    @ApiModelProperty("党员id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long memberId;
+
+    @ApiModelProperty("党员积分")
+    private Long partyCount=0l;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ServiceDetailStaticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ServiceDetailStaticsVO.java
new file mode 100644
index 0000000..ae4358d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ServiceDetailStaticsVO.java
@@ -0,0 +1,35 @@
+package com.panzhihua.common.model.vos.neighbor;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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;
+
+/**
+ * @title: ServiceDetailStaticsVO
+ * @projectName:
+ * @description: 服务明细
+ * @author: hans
+ * @date: 2022/08/15 9:53
+ */
+@Data
+@ApiModel("服务明细")
+public class ServiceDetailStaticsVO {
+    @ApiModelProperty("关联id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long serviceId;
+    @ApiModelProperty("服务时长")
+    private double serviceTime;
+    @ApiModelProperty("服务时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date serviceAt;
+    @ApiModelProperty("服务方式(1.承接清单 2.单位参与社区活动 3.报到服务活动 4.党员参与社区活动)")
+    private Integer serviceType;
+
+    @ApiModelProperty("是否是问题清单(1.不是   2是)")
+    private String isNew="1";
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ServiceStaticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ServiceStaticsVO.java
new file mode 100644
index 0000000..9d17e4f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/ServiceStaticsVO.java
@@ -0,0 +1,29 @@
+package com.panzhihua.common.model.vos.neighbor;
+
+import com.panzhihua.common.model.vos.community.ComActActivityVO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel("服务统计返回")
+public class ServiceStaticsVO {
+    @ApiModelProperty("次数")
+    private Integer times;
+    @ApiModelProperty("时长")
+    private double hours;
+    @ApiModelProperty("服务项目列表")
+    private List<ComActNeighborCircleAppVO> serviceProjecList;
+    @ApiModelProperty("服务活动列表")
+    private List<ComActActivityVO> serviceActivityList;
+    @ApiModelProperty("单位活动列表")
+    private List<ComActActivityVO> workActivityList;
+    @ApiModelProperty("服务明细列表")
+    private List<ServiceDetailStaticsVO> serviceDetailStaticsList;
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/UnitActivityAnalysisVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/UnitActivityAnalysisVO.java
new file mode 100644
index 0000000..0ed5e5f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/neighbor/UnitActivityAnalysisVO.java
@@ -0,0 +1,43 @@
+package com.panzhihua.common.model.vos.neighbor;
+
+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;
+
+@Data
+@ApiModel
+public class UnitActivityAnalysisVO implements Serializable {
+
+    @ApiModelProperty("单位归属")
+    private String belongTo;
+
+    @ApiModelProperty("所属党组织")
+    private String orgName;
+
+    @ApiModelProperty("单位名称")
+    private String unitName;
+
+    @ApiModelProperty("报道社区名称")
+    private String communityName;
+
+    @ApiModelProperty("服务次数")
+    private Integer serviceTimes;
+
+    @ApiModelProperty("服务时长")
+    private Double serviceTime;
+
+    @ApiModelProperty("单位id'")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long unitId;
+
+    @ApiModelProperty("报道社区id")
+    private String communityId;
+
+    @ApiModelProperty("累计积分")
+    private Long awardSum=0l;
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ActivityManagerVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ActivityManagerVO.java
new file mode 100644
index 0000000..8415ebb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ActivityManagerVO.java
@@ -0,0 +1,22 @@
+package com.panzhihua.common.model.vos.partybuilding;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 负责人
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 14:45
+ **/
+@Data
+@ApiModel("负责人")
+public class ActivityManagerVO {
+
+    @ApiModelProperty("负责人id")
+    private Long managerId;
+
+    @ApiModelProperty("负责人名字")
+    private String name;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComDataStatisticsHeaderOrgVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComDataStatisticsHeaderOrgVo.java
new file mode 100644
index 0000000..260d359
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComDataStatisticsHeaderOrgVo.java
@@ -0,0 +1,29 @@
+package com.panzhihua.common.model.vos.partybuilding;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @author lyq
+ * 查询党建数据统计党组织返回参数
+ */
+@Data
+@ApiModel("查询党建数据统计党组织返回参数")
+public class ComDataStatisticsHeaderOrgVo {
+
+    @ApiModelProperty(value = "党组织数量")
+    private Integer orgNum = 0;
+
+    @ApiModelProperty(value = "党组织绑定小区数量")
+    private Integer areaNum = 0;
+
+    @ApiModelProperty(value = "社区下小区数量")
+    private Integer villageNum = 0;
+
+    @ApiModelProperty(value = "小区覆盖率")
+    private BigDecimal villageRate = BigDecimal.ZERO;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComDataStatisticsMemberVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComDataStatisticsMemberVo.java
new file mode 100644
index 0000000..958e7bd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComDataStatisticsMemberVo.java
@@ -0,0 +1,108 @@
+package com.panzhihua.common.model.vos.partybuilding;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * 分页查询党建数据统计返回参数
+ */
+@Data
+@ApiModel("分页查询党建数据统计返回参数")
+public class ComDataStatisticsMemberVo {
+
+    @ApiModelProperty(value = "党员id")
+    private Long id;
+
+    @ApiModelProperty(value = "党员姓名")
+    private String name;
+
+    @ApiModelProperty(value = "党员头像url")
+    private String photoPath;
+
+    @ApiModelProperty(value = "是否是党委(1.是 2.否)")
+    private Integer isRole;
+
+    @ApiModelProperty(value = "党员类型(1.预备党员 2.正式党员)")
+    private Integer type;
+
+    @ApiModelProperty(value = "性别(1.是 2.否)")
+    private Integer sex;
+
+    @ApiModelProperty(value = "年龄")
+    private Integer age;
+
+    @ApiModelProperty(value = "党龄")
+    private Integer partyAge;
+
+    @ApiModelProperty(value = "职能")
+    private String function;
+
+    @ApiModelProperty(value = "特长类别(1.体育类 2.舞蹈类 3.音乐类 4.美术类 5.其他)")
+    private Integer specialtyCategory;
+
+    @ApiModelProperty(value = "特长描述")
+    private String specialtyName;
+
+    @ApiModelProperty(value = "职位")
+    private String position;
+
+    @ApiModelProperty(value = "职位2")
+    private String positionTwo;
+
+    @ApiModelProperty(value = "身份证号")
+    private String idCard;
+
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+
+    @ApiModelProperty(value = "报道单位id")
+    private Long checkUnitId;
+
+    @ApiModelProperty(value = "报道单位名称")
+    private String checkUnitName;
+
+    @ApiModelProperty(value = "所属党组织id")
+    private Long orgId;
+
+    @ApiModelProperty(value = "所属党组织名称")
+    private String orgName;
+
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    @ApiModelProperty(value = "总活动次数")
+    private Integer activityCount;
+
+    @ApiModelProperty(value = "总活动时长(小时)")
+    private Integer activityDuration;
+
+    @ApiModelProperty(value = "党员活动次数")
+    private Integer partyActivityCount;
+
+    @ApiModelProperty(value = "党员活动时长(小时)")
+    private Integer partyActivityDuration = 0;
+
+    @ApiModelProperty(value = "党员活动积分数量")
+    private Integer partyActivityIntegral;
+
+    @ApiModelProperty(value = "志愿者活动次数")
+    private Integer volunteerActivityCount;
+
+    @ApiModelProperty(value = "志愿者活动时长(小时)")
+    private Integer volunteerActivityDuration;
+
+    @ApiModelProperty(value = "志愿者活动积分数量")
+    private Integer volunteerActivityIntegral;
+
+    @ApiModelProperty(value = "完成微心愿数量")
+    private Integer wishCount;
+
+    @ApiModelProperty(value = "完成随手拍数量")
+    private Integer easyCount;
+
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComDataStatisticsOrgVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComDataStatisticsOrgVo.java
new file mode 100644
index 0000000..a7288a4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComDataStatisticsOrgVo.java
@@ -0,0 +1,122 @@
+package com.panzhihua.common.model.vos.partybuilding;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @author lyq
+ * 查询党建数据统计党组织返回参数
+ */
+@Data
+@ApiModel("查询党建数据统计党组织返回参数")
+public class ComDataStatisticsOrgVo {
+
+    @ApiModelProperty(value = "党员人数")
+    private Integer partyMemberNum;
+
+    @ApiModelProperty(value = "正式党员人数")
+    private Integer formalPartyMemberNum;
+
+    @ApiModelProperty(value = "正式党员人数百分比")
+    private BigDecimal formalPartyMemberNumPercent = new BigDecimal(0);
+
+    @ApiModelProperty(value = "预备党员人数")
+    private Integer preparePartyMemberNum;
+
+    @ApiModelProperty(value = "预备党员人数百分比")
+    private BigDecimal preparePartyMemberNumPercent = new BigDecimal(0);
+
+    @ApiModelProperty(value = "体育类党员人数")
+    private Integer tyNum;
+
+    @ApiModelProperty(value = "体育类党员人数百分比")
+    private BigDecimal tyNumPercent = new BigDecimal(0);
+
+    @ApiModelProperty(value = "美术类党员人数")
+    private Integer msNum;
+
+    @ApiModelProperty(value = "美术类党员人数百分比")
+    private BigDecimal msNumPercent = new BigDecimal(0);
+
+    @ApiModelProperty(value = "音乐类党员人数")
+    private Integer yyNum;
+
+    @ApiModelProperty(value = "音乐类党员人数百分比")
+    private BigDecimal yyNumPercent = new BigDecimal(0);
+
+    @ApiModelProperty(value = "舞蹈类党员人数")
+    private Integer wdNum;
+
+    @ApiModelProperty(value = "舞蹈类党员人数百分比")
+    private BigDecimal wdNumPercent = new BigDecimal(0);
+
+    @ApiModelProperty(value = "其他类党员人数")
+    private Integer qtNum;
+
+    @ApiModelProperty(value = "其他类党员人数百分比")
+    private BigDecimal qtNumPercent = new BigDecimal(0);
+
+    @ApiModelProperty(value = "无类型党员人数")
+    private Integer wuNum;
+
+    @ApiModelProperty(value = "无类型党员人数百分比")
+    private BigDecimal wuNumPercent = new BigDecimal(0);
+
+    @ApiModelProperty(value = "党员列表")
+    private List<PartyBuildingMemberVO> partyMemberList;
+
+    @ApiModelProperty(value = "参与活动次数")
+    private Integer participateActivityNum;
+
+    @ApiModelProperty(value = "参与活动时长")
+    private Integer participateActivityDuration;
+
+    @ApiModelProperty(value = "参与志愿者活动次数")
+    private Integer participateVolunteerActivityNum;
+
+    @ApiModelProperty(value = "参与志愿者活动次数百分比")
+    private BigDecimal participateVolunteerActivityNumPercent = new BigDecimal(0);
+
+    @ApiModelProperty(value = "参与志愿者活动时长")
+    private Integer participateVolunteerActivityDuration;
+
+    @ApiModelProperty(value = "参与志愿者活动时长百分比")
+    private BigDecimal participateVolunteerActivityDurationPercent = new BigDecimal(0);
+
+    @ApiModelProperty(value = "参与党员活动次数")
+    private Integer participatePartyActivityNum;
+
+    @ApiModelProperty(value = "参与党员活动次数百分比")
+    private BigDecimal participatePartyActivityNumPercent = new BigDecimal(0);
+
+    @ApiModelProperty(value = "参与党员活动时长")
+    private Integer participatePartyActivityDuration;
+
+    @ApiModelProperty(value = "参与党员活动时长百分比")
+    private BigDecimal participatePartyActivityDurationPercent = new BigDecimal(0);
+
+    @ApiModelProperty(value = "月份统计list")
+    private List<String> monthList;
+
+    @ApiModelProperty(value = "完成微心愿折线统计数据")
+    private List<String> completeWishList;
+
+    @ApiModelProperty(value = "累计微心愿折线统计数据")
+    private List<String> cumulativeWishList;
+
+    @ApiModelProperty(value = "完成随手拍折线统计数据")
+    private List<String> completeEasyList;
+
+    @ApiModelProperty(value = "累计随手拍折线统计数据")
+    private List<String> cumulativeEasyList;
+
+    @ApiModelProperty(value = "完成微心愿数量")
+    private String wishNum = "0";
+
+    @ApiModelProperty(value = "完成随手拍数量")
+    private String easyNum = "0";
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComEldersAuthHistoryExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComEldersAuthHistoryExcelVO.java
new file mode 100644
index 0000000..b2b54e4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComEldersAuthHistoryExcelVO.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.vos.partybuilding;
+
+import java.util.Date;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+
+import lombok.Data;
+
+/**
+ * @description: 党员信息导出
+ * @author: lyq
+ * @date: 2021/5/6 17:48
+ */
+@Data
+public class ComEldersAuthHistoryExcelVO {
+
+    @ExcelProperty(value = "姓名", index = 0)
+    private String name;
+
+    @ExcelProperty(value = "身份证号", index = 1)
+    private String idCard;
+
+    @ExcelProperty(value = "出生年月", index = 2)
+    private String brithday;
+
+    @ExcelProperty(value = "年龄", index = 3)
+    private Date age;
+
+    @ExcelProperty(value = "户籍地", index = 4)
+    private Date domicile;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComPbDynUserVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComPbDynUserVO.java
new file mode 100644
index 0000000..3ec1d64
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComPbDynUserVO.java
@@ -0,0 +1,33 @@
+package com.panzhihua.common.model.vos.partybuilding;
+
+import java.util.Date;
+
+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;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 动态、政策文件、阅读记录
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-02 17:17
+ **/
+@Data
+@ApiModel("党员动态阅读记录表")
+public class ComPbDynUserVO {
+
+    @ApiModelProperty("id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("党员动态、政策文件id")
+    private Long dynId;
+
+    @ApiModelProperty("小程序用户id")
+    private Long userId;
+
+    @ApiModelProperty("阅读时间")
+    private Date createAt;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComPbMemberExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComPbMemberExcelVO.java
new file mode 100644
index 0000000..7f92136
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComPbMemberExcelVO.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.vos.partybuilding;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+/**
+ * @description: 党员信息导出
+ * @author: lyq
+ * @date: 2021/5/6 17:48
+ */
+@Data
+public class ComPbMemberExcelVO {
+
+    @ExcelProperty(value = "姓名",index = 0)
+    private String name;
+    @ExcelProperty(value = "常住社区",index = 1)
+    private String communityName;
+    @ExcelProperty(value = "小区院落",index = 2)
+    private String villageName;
+    @ExcelProperty(value = "工作单位",index = 4)
+    private String checkUnitName;
+    @ExcelProperty(value = "职能特长及服务意愿",index = 3)
+    private String specialtyName;
+    @ExcelProperty(value = "工作单位归属",index = 5)
+    private String belongTo;
+    @ExcelProperty(value = "服务社区",index = 6)
+    private String helpCommunityName;
+
+    @ExcelProperty(value = "电话号码",index = 7)
+    private String phone;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComPbMemberTypeVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComPbMemberTypeVO.java
new file mode 100644
index 0000000..9d491d2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComPbMemberTypeVO.java
@@ -0,0 +1,27 @@
+package com.panzhihua.common.model.vos.partybuilding;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther yh
+ * @create 2022-11-08 17:25:45
+ * @describe 统计党员类型VO
+ */
+@Data
+@ApiModel("统计党员类型VO")
+public class ComPbMemberTypeVO {
+
+    /**
+     * 人数
+     */
+    @ApiModelProperty("人数")
+    private Integer countNum;
+
+    /**
+     * 类型
+     */
+    @ApiModelProperty("类型")
+    private String countName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComPbMemberVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComPbMemberVO.java
new file mode 100644
index 0000000..30e48dc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComPbMemberVO.java
@@ -0,0 +1,103 @@
+package com.panzhihua.common.model.vos.partybuilding;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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.util.Date;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel
+public class ComPbMemberVO {
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 所属党组织id
+     */
+    @ApiModelProperty("所属党组织id")
+    private Long orgId;
+
+    /**
+     * 身份证号
+     */
+    @ApiModelProperty("身份证号")
+    private String idCard;
+
+    /**
+     * 姓名
+     */
+    @ApiModelProperty("姓名")
+    private String name;
+
+    /**
+     * 头像图片路径
+     */
+    @ApiModelProperty("头像图片路径")
+    private String photoPath;
+
+    /**
+     * 入党时间
+     */
+    @ApiModelProperty("入党时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date joinTime;
+
+    /**
+     * 转正时间
+     */
+    @ApiModelProperty("转正时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date employmentTime;
+
+    /**
+     * 党员审查结果
+     */
+    private Integer auditResult;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date createAt;
+
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty("修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date updateAt;
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 驳回原因
+     */
+    private String refuseReason;
+    @ApiModelProperty("手机号")
+    private String phone;
+
+    @ApiModelProperty("党组织")
+    private String orgName;
+
+    @ApiModelProperty("时长")
+    private Long duration;
+
+    @ApiModelProperty("积分")
+    private Long partyInterval;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComPbServiceTeamVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComPbServiceTeamVO.java
new file mode 100644
index 0000000..52fa7c0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComPbServiceTeamVO.java
@@ -0,0 +1,55 @@
+package com.panzhihua.common.model.vos.partybuilding;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+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;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 服务团队人员
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-21 18:11
+ **/
+@Data
+@ApiModel("服务团队人员")
+public class ComPbServiceTeamVO {
+
+    @ApiModelProperty("id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("姓名")
+    private String name;
+
+    @ApiModelProperty("职位")
+    private String job;
+
+    @ApiModelProperty("职位2")
+    private String jobTwo;
+
+    @ApiModelProperty("岗位职责")
+    private String jobResponsibilities;
+
+    @ApiModelProperty("照片")
+    private String url;
+
+    @ApiModelProperty("create_at")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("社区id")
+    private Long communityId;
+    @ApiModelProperty("电话")
+    private String phone;
+    @ApiModelProperty("是否注册")
+    private Integer isReg;
+
+    @ApiModelProperty("社区名称")
+    private String communityName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComPbServiceTeamWishVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComPbServiceTeamWishVO.java
new file mode 100644
index 0000000..8a4362b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ComPbServiceTeamWishVO.java
@@ -0,0 +1,23 @@
+package com.panzhihua.common.model.vos.partybuilding;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 微心愿服务团队人员
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-21 18:11
+ **/
+@Data
+@ApiModel("微心愿服务团队人员")
+public class ComPbServiceTeamWishVO {
+
+    @ApiModelProperty("managerId")
+    private Long managerId;
+
+    @ApiModelProperty("姓名")
+    private String name;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PageActivityMembersVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PageActivityMembersVO.java
new file mode 100644
index 0000000..a3427fa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PageActivityMembersVO.java
@@ -0,0 +1,33 @@
+package com.panzhihua.common.model.vos.partybuilding;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 分页活动人员
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-01 09:50
+ **/
+@Data
+@ApiModel(value = "分页活动人员")
+public class PageActivityMembersVO {
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+    @ApiModelProperty(value = "姓名")
+    private String name;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "报名时间")
+    private String registrationTime;
+    @ApiModelProperty(value = "人员主键")
+    private Long id;
+    @ApiModelProperty(value = "当前页数")
+    private Long pageNum;
+    @ApiModelProperty(value = "每页记录数")
+    private Long pageSize;
+    @ApiModelProperty(value = "活动id", required = true)
+    private Long activityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PagePartyBuildingMemberVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PagePartyBuildingMemberVO.java
new file mode 100644
index 0000000..354fac8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PagePartyBuildingMemberVO.java
@@ -0,0 +1,35 @@
+package com.panzhihua.common.model.vos.partybuilding;
+
+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;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 分页党员认证
+ * @author: cedoo
+ * @create: 2021-4-7
+ **/
+@Data
+@ApiModel(value = "分页党员认证")
+public class PagePartyBuildingMemberVO {
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+    @ApiModelProperty(value = "姓名")
+    private String name;
+    @ApiModelProperty(value = "状态")
+    private Integer auditStatus;
+
+    @ApiModelProperty(value = "当前页数")
+    private Long pageNum;
+    @ApiModelProperty(value = "每页记录数")
+    private Long pageSize;
+    @ApiModelProperty(value = "社区id", hidden = true)
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long communityId;
+
+    @ApiModelProperty(value = "区域编码", hidden = true)
+    private String areaCode;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PagePartyOrganizationVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PagePartyOrganizationVO.java
new file mode 100644
index 0000000..9c9851c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PagePartyOrganizationVO.java
@@ -0,0 +1,84 @@
+package com.panzhihua.common.model.vos.partybuilding;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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.util.Date;
+import java.util.List;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 分页党员
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 16:10
+ **/
+@Data
+@ApiModel(value = "分页查询党员")
+public class PagePartyOrganizationVO {
+
+    @ApiModelProperty(value = "组织名字")
+    private String orgName;
+
+    @ApiModelProperty(value = "组织ID")
+    private Long orgId;
+
+    @ApiModelProperty(value = "账户")
+    private String account;
+
+    @ApiModelProperty(value = "党员姓名")
+    private String name;
+
+    @ApiModelProperty(value = "当前页数")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "每页记录数")
+    private Long pageSize;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private List<Long> communityIds;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+    @ApiModelProperty(value = "党员类型(1.预备党员 2.正式党员)")
+    private Integer type;
+
+    @ApiModelProperty(value = "报道单位id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long checkUnitId;
+
+    @ApiModelProperty(value = "特长类别(1.体育类 2.舞蹈类 3.音乐类 4.美术类 5.其他)")
+    private Long specialtyCategory;
+
+    @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(value = "特长类别")
+    private String specialtyName;
+
+    @ApiModelProperty("归属区")
+    private String belongTo;
+
+    private String areaCode;
+
+    @ApiModelProperty("单位性质")
+    private String natureName;
+
+    @ApiModelProperty("是否注册小程序(1.是 0.否)")
+    private Integer isRegister;
+
+    @ApiModelProperty(value = "农行单位id集合")
+    private Long[] ids;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PartyBuildingActivityVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PartyBuildingActivityVO.java
new file mode 100644
index 0000000..c9072be
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PartyBuildingActivityVO.java
@@ -0,0 +1,113 @@
+package com.panzhihua.common.model.vos.partybuilding;
+
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+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;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 活动
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-01 09:08
+ **/
+@Data
+@ApiModel("党员活动")
+public class PartyBuildingActivityVO {
+    @ApiModelProperty("党员活动id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("活动名称")
+    private String name;
+
+    @ApiModelProperty("活动地点")
+    private String address;
+
+    @ApiModelProperty("1 待发布 2 未开始 3 报名中 4 进行中 5 已结束 6 已取消")
+    private Integer status;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("发布时间")
+    private Date releaseTime;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("发布开始时间")
+    private Date releaseTimeBegin;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("发布结束时间")
+    private Date releaseTimeEnd;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("活动开始时间")
+    private Date activityTimeBegin;
+    @ApiModelProperty("活动开始时间-格式化后的")
+    private String activityTimeBeginFormat;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("活动结束时间")
+    private Date activityTimeEnd;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("报名开始时间")
+    private Date enrollTimeBegin;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("报名结束时间")
+    private Date enrollTimeEnd;
+
+    @ApiModelProperty("当前页数")
+    private Long pageNum;
+
+    @ApiModelProperty("每页记录数")
+    private Long pageSize;
+
+    @ApiModelProperty("活动最多参入人数")
+    private Integer participationNum;
+
+    @ApiModelProperty("活动最低参入人数-未达到到时间自动取消")
+    private Integer participationLowestNum;
+
+    @ApiModelProperty("活动已经参与人数")
+    private Integer participationActualNum;
+
+    @ApiModelProperty("活动封面")
+    private String cover;
+
+    @ApiModelProperty("活动内容-富文本")
+    private String richText;
+
+    @ApiModelProperty("取消原因")
+    private String cancelReason;
+
+    @ApiModelProperty("发布人id")
+    private Long createBy;
+
+    @ApiModelProperty("发布人名字")
+    private String createByName;
+
+    @ApiModelProperty("社区id")
+    private Long communityId;
+
+    @ApiModelProperty("社区名称")
+    private String communityName;
+
+    @ApiModelProperty("活动党员列表")
+    private List<PartyBuildingMemberVO> partyBuildingMemberVOS;
+
+    @ApiModelProperty("是否已经报名")
+    private Integer isSign;
+
+    @ApiModelProperty(value = "活动报名人员id集合", hidden = true)
+    private List<Long> userIds;
+
+    @ApiModelProperty("是否是小程序请求")
+    private Integer isAppliets;
+
+    @ApiModelProperty("是否是个人发起 1 是 0 否")
+    private Integer isPerson;
+
+    @ApiModelProperty("二维码类型 1居民,志愿者 2党员")
+    private Integer codeType;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PartyBuildingComPbDynVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PartyBuildingComPbDynVO.java
new file mode 100644
index 0000000..c9b2c35
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PartyBuildingComPbDynVO.java
@@ -0,0 +1,106 @@
+package com.panzhihua.common.model.vos.partybuilding;
+
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+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;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党建动态
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-01 15:53
+ **/
+@Data
+@ApiModel("社区管理》党建》党员动态/政策文件")
+public class PartyBuildingComPbDynVO {
+
+    @ApiModelProperty("党建动态/政策文件id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("标题")
+    private String title;
+
+    @ApiModelProperty("状态 1 待发布 2 已发布")
+    private Integer status;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("发布时间")
+    private Date publishAt;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("发布开始时间")
+    private Date publishAtBegin;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("发布结束时间")
+    private Date publishAtEnd;
+
+    @ApiModelProperty("封面url")
+    private String cover;
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("内容")
+    private String content;
+
+    @ApiModelProperty("发布人id")
+    private Long createBy;
+
+    @ApiModelProperty("发布人名字")
+    private String createByName;
+
+    @ApiModelProperty("阅读量")
+    private Integer readingVolume;
+
+    @ApiModelProperty("当前页数")
+    private Long pageNum;
+
+    @ApiModelProperty("每页记录数")
+    private Long pageSize;
+
+    @ApiModelProperty("1动态 2政策文件")
+    private Integer type;
+
+    @ApiModelProperty("社区id")
+    private Long communityId;
+
+    @ApiModelProperty("社区id集合")
+    private List<Long> communityIds;
+
+    @ApiModelProperty("动态内容富文本--纯文本")
+    private String contentText;
+
+    @ApiModelProperty(value = "是否增加 1 增加 0 不增加")
+    private Integer isAdd;
+
+    @ApiModelProperty("动态分类:1-党建动态 2-党员帮扶 3-党员示范")
+    private Integer dynType;
+
+    @ApiModelProperty("封面模式:1-小图展示 2-大图展示")
+    private Integer coverMode;
+
+    @ApiModelProperty("社区名称")
+    private String communityName;
+
+    @ApiModelProperty("跳转链接")
+    private String jumpUrl;
+
+    @ApiModelProperty("跳转状态")
+    private Integer jumpType;
+
+    @ApiModelProperty("政策分类: 1-社工人才政策 2-社会组织培育政策 3-其他政策")
+    private Integer policyType;
+    @ApiModelProperty(value = "查询筛选:0-本小区 1-全部")
+    private Integer choice;
+    @ApiModelProperty("排序方式 正序 ASC")
+    private String sort;
+
+    private String appId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PartyBuildingMemberExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PartyBuildingMemberExcelVO.java
new file mode 100644
index 0000000..222adf4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PartyBuildingMemberExcelVO.java
@@ -0,0 +1,34 @@
+package com.panzhihua.common.model.vos.partybuilding;
+
+import java.io.Serializable;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 批量党员
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 14:57
+ **/
+@Data
+public class PartyBuildingMemberExcelVO implements Serializable {
+    /**
+     * 党员姓名
+     */
+    @ExcelProperty(value = "党员姓名", index = 0)
+    private String name;
+    /**
+     * 所属党组织
+     */
+    @ExcelProperty(value = "所属党组织", index = 2)
+    private String orgName;
+
+    @ExcelProperty(value = "联系电话",index = 1)
+    private String phone;
+
+    @ExcelIgnore
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PartyBuildingMemberVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PartyBuildingMemberVO.java
new file mode 100644
index 0000000..7d1faa6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PartyBuildingMemberVO.java
@@ -0,0 +1,142 @@
+package com.panzhihua.common.model.vos.partybuilding;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+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;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党建
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 10:03
+ **/
+@Data
+@ApiModel("社区管理》党建》党员信息")
+public class PartyBuildingMemberVO {
+    @ApiModelProperty(value = "姓名")
+    private String name;
+    @ApiModelProperty(value = "身份证")
+    private String idCard;
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @ApiModelProperty(value = "入党时间")
+    private Date joinTime;
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @ApiModelProperty(value = "转正时间")
+    private Date employmentTime;
+    @ApiModelProperty(value = "所属党组织id")
+    private Long orgId;
+    @ApiModelProperty(value = "头像图片路径")
+    private String photoPath;
+    @ApiModelProperty(value = "社区ID", hidden = true)
+    private Long communityId;
+    @ApiModelProperty(value = "社区名字")
+    private String communityName;
+    @ApiModelProperty(value = "党组织名字")
+    private String orgName;
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+    @ApiModelProperty(value = "党龄")
+    private Integer partyAge;
+    @ApiModelProperty(value = "状态")
+    private String status;
+    @ApiModelProperty(value = "党员唯一标识id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+    @ApiModelProperty(value = "报名时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+    @ApiModelProperty(value = "用户ID")
+    private Long userId;
+    @ApiModelProperty(value = "党员审查结果: 0 待审核 1 已审核 2 自动认证 3 已驳回")
+    private Integer auditResult;
+    @ApiModelProperty(value = "驳回原因")
+    private String refuseReason;
+    @ApiModelProperty(value = "是否党员 1是 2否")
+    private Integer isPb;
+
+    @ApiModelProperty(value = "党员报道类型(1.在职干部 2.机关单位)")
+    private Integer type;
+
+    @ApiModelProperty(value = "职位")
+    private String position;
+
+    @ApiModelProperty(value = "报道单位id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long checkUnitId;
+
+    @ApiModelProperty(value = "报道单位名称")
+    private String checkUnitName;
+
+    @ApiModelProperty(value = "报道单位管理员电话")
+    private String adminPhone;
+
+    @ApiModelProperty(value = "职能")
+    private String function;
+
+    @ApiModelProperty(value = "特长类别(1.统计调查 2.法律援助 3.志愿活动 4.尊老爱幼 5.宣讲宣教 6.心理关爱 7.设施维修 8.其他)")
+    private Integer specialtyCategory;
+
+    @ApiModelProperty(value = "特长描述")
+    private String specialtyName;
+
+    @ApiModelProperty(value = "职位2")
+    private String positionTwo;
+
+    @ApiModelProperty(value = "活动时长")
+    private Integer partyTime;
+
+    @ApiModelProperty(value = "活动积分")
+    private Integer partyInterval;
+
+    @ApiModelProperty(value = "帮扶社区id")
+    private Long helpCommunityId;
+    @ApiModelProperty(value = "帮扶社区名字")
+    private String helpCommunityName;
+    @ApiModelProperty(value = "帮扶社区手机号")
+    private String helpCommunityContacts;
+    @ApiModelProperty(value = "帮扶社区联系人")
+    private String helpCommunityContactsName;
+    @ApiModelProperty(value = "小区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long villageId;
+    @ApiModelProperty(value = "小区名字")
+    private String villageName;
+    @ApiModelProperty(value = "报道单位联系人手机号")
+    private String contacts;
+    @ApiModelProperty(value = "报道单位联系人")
+    private String contactsName;
+
+    private String natureName;
+
+    private Integer natureId;
+
+    private String address;
+
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+
+    @ApiModelProperty(value = "其他备注")
+    private String otherRemark;
+    @ApiModelProperty(value = "报道单位下沉小区")
+    private String unitVillageName;
+    @ApiModelProperty(value = "报道单位服务社区")
+    private String unitHelpCommunityName;
+    @ApiModelProperty(value = "报道单位社区电话")
+    private String unitHelpCommunityContacts;
+    @ApiModelProperty(value = "帮扶社区联系人")
+    private String unitHelpCommunityContactsName;
+    @ApiModelProperty("区级")
+    private String belongTo;
+    @ApiModelProperty("微信昵称")
+    private String nickName;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PartyCommitteeVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PartyCommitteeVO.java
new file mode 100644
index 0000000..b49c4e8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PartyCommitteeVO.java
@@ -0,0 +1,114 @@
+package com.panzhihua.common.model.vos.partybuilding;
+
+import java.util.Date;
+
+import javax.validation.constraints.NotBlank;
+
+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.validated.AddGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党委
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-01 14:15
+ **/
+@Data
+@ApiModel("党委")
+public class PartyCommitteeVO {
+
+    @ApiModelProperty("主键")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("电话")
+    @NotBlank(groups = {AddGroup.class}, message = "电话不能为空")
+    private String phone;
+
+    @ApiModelProperty("是否注册")
+    private Integer isReg;
+
+    @ApiModelProperty("姓名")
+    @NotBlank(groups = {AddGroup.class}, message = "姓名不能为空")
+    private String name;
+
+    @ApiModelProperty("性别")
+    private Integer sex;
+
+    @ApiModelProperty("出生日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date birthTime;
+
+    @ApiModelProperty(value = "年龄")
+    private Integer age;
+
+    @ApiModelProperty("职位")
+    @NotBlank(groups = {AddGroup.class}, message = "职位不能为空")
+    private String position;
+
+    @ApiModelProperty("职位2")
+    private String positionTwo;
+
+    @ApiModelProperty("岗位职责")
+    @NotBlank(groups = {AddGroup.class}, message = "岗位职责不能为空")
+    private String jobResponsibilities;
+
+    @ApiModelProperty("头像图片路径")
+    @NotBlank(groups = {AddGroup.class}, message = "头像不能为空")
+    private String photoPath;
+
+    @ApiModelProperty("社区id")
+    private Long communityId;
+
+    @ApiModelProperty(value = "当前页数")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "每页记录数")
+    private Long pageSize;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+    @ApiModelProperty(value = "党委标签(1.社区党委 2.区域党委委员)")
+    private Integer type;
+
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @ApiModelProperty(value = "入党时间")
+    private Date joinTime;
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @ApiModelProperty(value = "转正时间")
+    private Date employmentTime;
+
+    @ApiModelProperty(value = "职能")
+    private String function;
+
+    @ApiModelProperty(value = "特长类别(1.体育类 2.舞蹈类 3.音乐类 4.美术类 5.其他)")
+    private Integer specialtyCategory;
+
+    @ApiModelProperty(value = "特长描述")
+    private String specialtyName;
+
+    @ApiModelProperty(value = "报道单位id")
+    private Long checkUnitId;
+
+    @ApiModelProperty(value = "报道单位名称")
+    private String checkUnitName;
+
+    @ApiModelProperty(value = "负责党组织id")
+    private Long orgId;
+
+    @ApiModelProperty(value = "负责党组织名字")
+    private String orgName;
+
+    @ApiModelProperty(value = "身份证")
+    private String idCard;
+
+    @ApiModelProperty(value = "区域编码", hidden = true)
+    private String areaCode;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PartyOrganizationVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PartyOrganizationVO.java
new file mode 100644
index 0000000..0ade530
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PartyOrganizationVO.java
@@ -0,0 +1,78 @@
+package com.panzhihua.common.model.vos.partybuilding;
+
+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.util.List;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党组织
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 11:15
+ **/
+@Data
+@ApiModel("党组织")
+public class PartyOrganizationVO {
+    @ApiModelProperty(value = "党组织id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+    @ApiModelProperty(value = "党组织名字")
+    private String name;
+    @ApiModelProperty(value = "状态")
+    private Integer status;
+    @ApiModelProperty(value = "党员人数")
+    private Integer countPerson;
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+    @ApiModelProperty(value = "上级id")
+    private Long parentId;
+    @ApiModelProperty(value = "组织类别(1.基层党委 2.二级基层党委 3.党总支 4.党支部 5.党小组)")
+    private Integer type;
+    @ApiModelProperty(value = "组织隶属(1.乡镇 2.机关 3.域市街道 3.域市社区(居委会) 4.农村社区居委会 5.建制村 6.国有经济控制 7.集体经济控制 8.非公有经济控制 9.事业单位 10.社会组织 11.其他)")
+    private Integer subjection;
+    @ApiModelProperty(value = "小区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long areaId;
+    @ApiModelProperty(value = "楼栋id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long buildId;
+    @ApiModelProperty(value = "楼栋名称")
+    private String buildName;
+    @ApiModelProperty(value = "所属小区名字")
+    private String areaName;
+    @ApiModelProperty(value = "组织地址")
+    private String address;
+    @ApiModelProperty(value = "经度")
+    private String longitude;
+    @ApiModelProperty(value = "纬度")
+    private String latitude;
+    @ApiModelProperty(value = "一级id")
+    private Long oneId;
+    @ApiModelProperty(value = "二级id")
+    private Long twoId;
+    @ApiModelProperty(value = "三级id")
+    private Long thirdId;
+    @ApiModelProperty(value = "四级id")
+    private Long fourId;
+    @ApiModelProperty(value = "五级id")
+    private Long fiveId;
+
+    @ApiModelProperty(value = "党组织负责人名称")
+    private String userName;
+    @ApiModelProperty(value = "党组织负责人联系电话")
+    private String phone;
+
+    @ApiModelProperty(value = "党组织下子组织")
+    private List<PartyOrganizationVO> childList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PhotoMicroWishData.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PhotoMicroWishData.java
new file mode 100644
index 0000000..317430e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/PhotoMicroWishData.java
@@ -0,0 +1,22 @@
+package com.panzhihua.common.model.vos.partybuilding;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@ApiModel("街道大屏子类")
+@Data
+public class PhotoMicroWishData
+{
+    @ApiModelProperty(value = "数量")
+    Integer num=0;
+
+
+    @ApiModelProperty(value = "时间")
+    String tiems;
+
+    @ApiModelProperty(value = "排序时间")
+    Date createAt;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ProjectVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ProjectVO.java
new file mode 100644
index 0000000..787f3f9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/ProjectVO.java
@@ -0,0 +1,51 @@
+package com.panzhihua.common.model.vos.partybuilding;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class ProjectVO {
+    /**
+     * 项目id
+     */
+    private Long id;
+
+    /**
+     * 单位id
+     */
+    private Long unitId;
+
+    /**
+     * 单位名称
+     */
+    private String unitName;
+
+    /**
+     * 特长
+     */
+    private String speciality;
+
+    /**
+     * 项目名称
+     */
+    private String project;
+
+    /**
+     * 电话号码
+     */
+    private String phone;
+
+    /**
+     * 图片地址
+     */
+    private String image;
+
+    private List<Long> ids;
+
+    /**
+     * 社区id
+     */
+    private String communityId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/excel/ComDataStatisticsMemberExcelVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/excel/ComDataStatisticsMemberExcelVo.java
new file mode 100644
index 0000000..4c4d40b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/excel/ComDataStatisticsMemberExcelVo.java
@@ -0,0 +1,77 @@
+package com.panzhihua.common.model.vos.partybuilding.excel;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * 分页查询党建数据统计返回参数
+ */
+@Data
+@ApiModel("分页查询党建数据统计返回参数")
+public class ComDataStatisticsMemberExcelVo {
+
+    @ExcelProperty(value = "序号", index = 0)
+    private Long id;
+
+    @ExcelProperty(value = "党员姓名", index = 1)
+    private String name;
+
+    @ExcelProperty(value = "党龄", index = 2)
+    private Integer partyAge;
+
+    @ExcelProperty(value = "联系电话", index = 3)
+    private String phone;
+
+    @ExcelProperty(value = "身份证号", index = 4)
+    private String idCard;
+
+    @ExcelProperty(value = "职能", index = 5)
+    private String function;
+
+    @ExcelProperty(value = "特长", index = 6)
+    private String specialtyName;
+
+    @ExcelProperty(value = "双报到单位", index = 7)
+    private String checkUnitName;
+
+    @ExcelProperty(value = "总参与活动次数", index = 8)
+    private Integer activityCount;
+
+    @ExcelProperty(value = "总参与活动时长(小时)", index = 9)
+    private Integer activityDuration;
+
+    @ExcelProperty(value = "参与党员活动次数", index = 10)
+    private Integer partyActivityCount;
+
+    @ExcelProperty(value = "参与党员活动时长(小时)", index = 11)
+    private Integer partyActivityDuration;
+
+    @ExcelProperty(value = "参与党员活动积分", index = 12)
+    private Integer partyActivityIntegral;
+
+    @ExcelProperty(value = "参与志愿者活动次数", index = 13)
+    private Integer volunteerActivityCount;
+
+    @ExcelProperty(value = "参与志愿者活动时长(小时)", index = 14)
+    private Integer volunteerActivityDuration;
+
+    @ExcelProperty(value = "参与志愿者活动积分", index = 15)
+    private Integer volunteerActivityIntegral;
+
+    @ExcelProperty(value = "完成微心愿数量", index = 16)
+    private Integer wishCount;
+
+    @ExcelProperty(value = "完成随手拍数量", index = 17)
+    private Integer easyCount;
+
+    @ExcelIgnore
+    private Long communityId;
+
+    @ExcelIgnore
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/excel/ComPbCheckUnitErrorExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/excel/ComPbCheckUnitErrorExcelVO.java
new file mode 100644
index 0000000..b6858c4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/excel/ComPbCheckUnitErrorExcelVO.java
@@ -0,0 +1,29 @@
+package com.panzhihua.common.model.vos.partybuilding.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @description: 批量导入党员双报道单位
+ * @author : lyq
+ */
+@Data
+public class ComPbCheckUnitErrorExcelVO implements Serializable {
+
+    @ExcelProperty(value = "单位名称", index = 0)
+    private String name;
+
+    @ExcelProperty(value = "单位类别", index = 1)
+    private String type;
+
+    @ExcelProperty(value = "单位负责人", index = 2)
+    private String contacts;
+
+    @ExcelProperty(value = "负责人联系电话", index = 3)
+    private String phone;
+
+    @ExcelProperty(value = "错误信息", index = 4)
+    private String error;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/excel/ComPbCheckUnitExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/excel/ComPbCheckUnitExcelVO.java
new file mode 100644
index 0000000..7b772cd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/excel/ComPbCheckUnitExcelVO.java
@@ -0,0 +1,29 @@
+package com.panzhihua.common.model.vos.partybuilding.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @description: 批量导入党员双报道单位
+ * @author : lyq
+ */
+@Data
+public class ComPbCheckUnitExcelVO implements Serializable {
+
+    @ExcelProperty(value = "单位名称", index = 0)
+    private String name;
+
+    @ExcelProperty(value = "单位类别", index = 1)
+    private String type;
+
+    @ExcelProperty(value = "单位负责人", index = 2)
+    private String contacts;
+
+    @ExcelProperty(value = "负责人联系电话", index = 3)
+    private String phone;
+
+    @ExcelProperty(value = "党组织名称",index = 4)
+    private String orgName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/excel/ComPbMemberRoleErrorExcelVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/excel/ComPbMemberRoleErrorExcelVo.java
new file mode 100644
index 0000000..294e59e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/excel/ComPbMemberRoleErrorExcelVo.java
@@ -0,0 +1,43 @@
+package com.panzhihua.common.model.vos.partybuilding.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * 分页查询党建数据统计返回参数
+ */
+@Data
+@ApiModel("分页查询党建数据统计返回参数")
+public class ComPbMemberRoleErrorExcelVo {
+
+
+    @ExcelProperty(value = "*党员姓名", index = 0)
+    private String name;
+
+    @ExcelProperty(value = "*身份证号", index = 1)
+    private String idCard;
+
+    @ExcelProperty(value = "*手机号", index = 2)
+    private String phone;
+
+    @ExcelProperty(value = "党委标签(社区党委/区域党委委员)", index = 3)
+    private String typeName;
+
+    @ExcelProperty(value = "*入党日期(格式:年-月-日)", index = 4)
+    private String joinTime;
+
+    @ExcelProperty(value = "转正日期(格式:年-月-日)", index = 5)
+    private String employmentTime;
+
+    @ExcelProperty(value = "职位", index = 6)
+    private String position;
+
+    @ExcelProperty(value = "岗位职责", index = 7)
+    private String jobResponsibilities;
+
+    @ExcelProperty(value = "错误信息", index = 8)
+    private String error;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/excel/ComPbMemberRoleExcelVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/excel/ComPbMemberRoleExcelVo.java
new file mode 100644
index 0000000..f35aba6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/excel/ComPbMemberRoleExcelVo.java
@@ -0,0 +1,42 @@
+package com.panzhihua.common.model.vos.partybuilding.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * 分页查询党建数据统计返回参数
+ */
+@Data
+@ApiModel("分页查询党建数据统计返回参数")
+public class ComPbMemberRoleExcelVo {
+
+
+    @ExcelProperty(value = "党员姓名", index = 0)
+    private String name;
+
+    @ExcelProperty(value = "身份证号", index = 1)
+    private String idCard;
+
+    @ExcelProperty(value = "手机号", index = 2)
+    private String phone;
+
+    @ExcelProperty(value = "党委标签(社区党委/区域党委委员)", index = 3)
+    private String typeName;
+
+    @ExcelProperty(value = "入党日期", index = 4)
+    private String joinTime;
+
+    @ExcelProperty(value = "转正日期", index = 5)
+    private String employmentTime;
+
+    @ExcelProperty(value = "职位", index = 6)
+    private String position;
+
+    @ExcelProperty(value = "岗位职责", index = 7)
+    private String jobResponsibilities;
+
+    @ExcelProperty(value = "负责党组织", index = 8)
+    private String org;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ActivityManagerVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ActivityManagerVO.java
new file mode 100644
index 0000000..b1e574f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ActivityManagerVO.java
@@ -0,0 +1,22 @@
+package com.panzhihua.common.model.vos.partybuilding.west;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 负责人
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 14:45
+ **/
+@Data
+@ApiModel("负责人")
+public class ActivityManagerVO {
+
+    @ApiModelProperty("负责人id")
+    private Long managerId;
+
+    @ApiModelProperty("负责人名字")
+    private String name;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ComDataStatisticsHeaderOrgVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ComDataStatisticsHeaderOrgVo.java
new file mode 100644
index 0000000..8cb05a0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ComDataStatisticsHeaderOrgVo.java
@@ -0,0 +1,28 @@
+package com.panzhihua.common.model.vos.partybuilding.west;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author lyq
+ * 查询党建数据统计党组织返回参数
+ */
+@Data
+@ApiModel("查询党建数据统计党组织返回参数")
+public class ComDataStatisticsHeaderOrgVo {
+
+    @ApiModelProperty(value = "党组织数量")
+    private Integer orgNum = 0;
+
+    @ApiModelProperty(value = "党组织绑定小区数量")
+    private Integer areaNum = 0;
+
+    @ApiModelProperty(value = "社区下小区数量")
+    private Integer villageNum = 0;
+
+    @ApiModelProperty(value = "小区覆盖率")
+    private BigDecimal villageRate = BigDecimal.ZERO;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ComDataStatisticsMemberVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ComDataStatisticsMemberVo.java
new file mode 100644
index 0000000..176514e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ComDataStatisticsMemberVo.java
@@ -0,0 +1,108 @@
+package com.panzhihua.common.model.vos.partybuilding.west;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * 分页查询党建数据统计返回参数
+ */
+@Data
+@ApiModel("分页查询党建数据统计返回参数")
+public class ComDataStatisticsMemberVo {
+
+    @ApiModelProperty(value = "党员id")
+    private Long id;
+
+    @ApiModelProperty(value = "党员姓名")
+    private String name;
+
+    @ApiModelProperty(value = "党员头像url")
+    private String photoPath;
+
+    @ApiModelProperty(value = "是否是党委(1.是 2.否)")
+    private Integer isRole;
+
+    @ApiModelProperty(value = "党员类型(1.预备党员 2.正式党员)")
+    private Integer type;
+
+    @ApiModelProperty(value = "性别(1.是 2.否)")
+    private Integer sex;
+
+    @ApiModelProperty(value = "年龄")
+    private Integer age;
+
+    @ApiModelProperty(value = "党龄")
+    private Integer partyAge;
+
+    @ApiModelProperty(value = "职能")
+    private String function;
+
+    @ApiModelProperty(value = "特长类别(1.体育类 2.舞蹈类 3.音乐类 4.美术类 5.其他)")
+    private Integer specialtyCategory;
+
+    @ApiModelProperty(value = "特长描述")
+    private String specialtyName;
+
+    @ApiModelProperty(value = "职位")
+    private String position;
+
+    @ApiModelProperty(value = "职位2")
+    private String positionTwo;
+
+    @ApiModelProperty(value = "身份证号")
+    private String idCard;
+
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+
+    @ApiModelProperty(value = "报道单位id")
+    private Long checkUnitId;
+
+    @ApiModelProperty(value = "报道单位名称")
+    private String checkUnitName;
+
+    @ApiModelProperty(value = "所属党组织id")
+    private Long orgId;
+
+    @ApiModelProperty(value = "所属党组织名称")
+    private String orgName;
+
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    @ApiModelProperty(value = "总活动次数")
+    private Integer activityCount;
+
+    @ApiModelProperty(value = "总活动时长(小时)")
+    private Integer activityDuration;
+
+    @ApiModelProperty(value = "党员活动次数")
+    private Integer partyActivityCount;
+
+    @ApiModelProperty(value = "党员活动时长(小时)")
+    private Integer partyActivityDuration = 0;
+
+    @ApiModelProperty(value = "党员活动积分数量")
+    private Integer partyActivityIntegral;
+
+    @ApiModelProperty(value = "志愿者活动次数")
+    private Integer volunteerActivityCount;
+
+    @ApiModelProperty(value = "志愿者活动时长(小时)")
+    private Integer volunteerActivityDuration;
+
+    @ApiModelProperty(value = "志愿者活动积分数量")
+    private Integer volunteerActivityIntegral;
+
+    @ApiModelProperty(value = "完成微心愿数量")
+    private Integer wishCount;
+
+    @ApiModelProperty(value = "完成随手拍数量")
+    private Integer easyCount;
+
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ComDataStatisticsOrgVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ComDataStatisticsOrgVo.java
new file mode 100644
index 0000000..dafe506
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ComDataStatisticsOrgVo.java
@@ -0,0 +1,122 @@
+package com.panzhihua.common.model.vos.partybuilding.west;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @author lyq
+ * 查询党建数据统计党组织返回参数
+ */
+@Data
+@ApiModel("查询党建数据统计党组织返回参数")
+public class ComDataStatisticsOrgVo {
+
+    @ApiModelProperty(value = "党员人数")
+    private Integer partyMemberNum;
+
+    @ApiModelProperty(value = "正式党员人数")
+    private Integer formalPartyMemberNum;
+
+    @ApiModelProperty(value = "正式党员人数百分比")
+    private BigDecimal formalPartyMemberNumPercent = new BigDecimal(0);
+
+    @ApiModelProperty(value = "预备党员人数")
+    private Integer preparePartyMemberNum;
+
+    @ApiModelProperty(value = "预备党员人数百分比")
+    private BigDecimal preparePartyMemberNumPercent = new BigDecimal(0);
+
+    @ApiModelProperty(value = "体育类党员人数")
+    private Integer tyNum;
+
+    @ApiModelProperty(value = "体育类党员人数百分比")
+    private BigDecimal tyNumPercent = new BigDecimal(0);
+
+    @ApiModelProperty(value = "美术类党员人数")
+    private Integer msNum;
+
+    @ApiModelProperty(value = "美术类党员人数百分比")
+    private BigDecimal msNumPercent = new BigDecimal(0);
+
+    @ApiModelProperty(value = "音乐类党员人数")
+    private Integer yyNum;
+
+    @ApiModelProperty(value = "音乐类党员人数百分比")
+    private BigDecimal yyNumPercent = new BigDecimal(0);
+
+    @ApiModelProperty(value = "舞蹈类党员人数")
+    private Integer wdNum;
+
+    @ApiModelProperty(value = "舞蹈类党员人数百分比")
+    private BigDecimal wdNumPercent = new BigDecimal(0);
+
+    @ApiModelProperty(value = "其他类党员人数")
+    private Integer qtNum;
+
+    @ApiModelProperty(value = "其他类党员人数百分比")
+    private BigDecimal qtNumPercent = new BigDecimal(0);
+
+    @ApiModelProperty(value = "无类型党员人数")
+    private Integer wuNum;
+
+    @ApiModelProperty(value = "无类型党员人数百分比")
+    private BigDecimal wuNumPercent = new BigDecimal(0);
+
+    @ApiModelProperty(value = "党员列表")
+    private List<PartyBuildingMemberVO> partyMemberList;
+
+    @ApiModelProperty(value = "参与活动次数")
+    private Integer participateActivityNum;
+
+    @ApiModelProperty(value = "参与活动时长")
+    private Integer participateActivityDuration;
+
+    @ApiModelProperty(value = "参与志愿者活动次数")
+    private Integer participateVolunteerActivityNum;
+
+    @ApiModelProperty(value = "参与志愿者活动次数百分比")
+    private BigDecimal participateVolunteerActivityNumPercent = new BigDecimal(0);
+
+    @ApiModelProperty(value = "参与志愿者活动时长")
+    private Integer participateVolunteerActivityDuration;
+
+    @ApiModelProperty(value = "参与志愿者活动时长百分比")
+    private BigDecimal participateVolunteerActivityDurationPercent = new BigDecimal(0);
+
+    @ApiModelProperty(value = "参与党员活动次数")
+    private Integer participatePartyActivityNum;
+
+    @ApiModelProperty(value = "参与党员活动次数百分比")
+    private BigDecimal participatePartyActivityNumPercent = new BigDecimal(0);
+
+    @ApiModelProperty(value = "参与党员活动时长")
+    private Integer participatePartyActivityDuration;
+
+    @ApiModelProperty(value = "参与党员活动时长百分比")
+    private BigDecimal participatePartyActivityDurationPercent = new BigDecimal(0);
+
+    @ApiModelProperty(value = "月份统计list")
+    private List<String> monthList;
+
+    @ApiModelProperty(value = "完成微心愿折线统计数据")
+    private List<String> completeWishList;
+
+    @ApiModelProperty(value = "累计微心愿折线统计数据")
+    private List<String> cumulativeWishList;
+
+    @ApiModelProperty(value = "完成随手拍折线统计数据")
+    private List<String> completeEasyList;
+
+    @ApiModelProperty(value = "累计随手拍折线统计数据")
+    private List<String> cumulativeEasyList;
+
+    @ApiModelProperty(value = "完成微心愿数量")
+    private String wishNum = "0";
+
+    @ApiModelProperty(value = "完成随手拍数量")
+    private String easyNum = "0";
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ComEldersAuthHistoryExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ComEldersAuthHistoryExcelVO.java
new file mode 100644
index 0000000..39722f5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ComEldersAuthHistoryExcelVO.java
@@ -0,0 +1,31 @@
+package com.panzhihua.common.model.vos.partybuilding.west;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @description: 党员信息导出
+ * @author: lyq
+ * @date: 2021/5/6 17:48
+ */
+@Data
+public class ComEldersAuthHistoryExcelVO {
+
+    @ExcelProperty(value = "姓名", index = 0)
+    private String name;
+
+    @ExcelProperty(value = "身份证号", index = 1)
+    private String idCard;
+
+    @ExcelProperty(value = "出生年月", index = 2)
+    private String brithday;
+
+    @ExcelProperty(value = "年龄", index = 3)
+    private Date age;
+
+    @ExcelProperty(value = "户籍地", index = 4)
+    private Date domicile;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ComPbDynUserVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ComPbDynUserVO.java
new file mode 100644
index 0000000..1fea7fc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ComPbDynUserVO.java
@@ -0,0 +1,33 @@
+package com.panzhihua.common.model.vos.partybuilding.west;
+
+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.util.Date;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 动态、政策文件、阅读记录
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-02 17:17
+ **/
+@Data
+@ApiModel("党员动态阅读记录表")
+public class ComPbDynUserVO {
+
+    @ApiModelProperty("id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("党员动态、政策文件id")
+    private Long dynId;
+
+    @ApiModelProperty("小程序用户id")
+    private Long userId;
+
+    @ApiModelProperty("阅读时间")
+    private Date createAt;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ComPbMemberExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ComPbMemberExcelVO.java
new file mode 100644
index 0000000..a100202
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ComPbMemberExcelVO.java
@@ -0,0 +1,39 @@
+package com.panzhihua.common.model.vos.partybuilding.west;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @description: 党员信息导出
+ * @author: lyq
+ * @date: 2021/5/6 17:48
+ */
+@Data
+public class ComPbMemberExcelVO {
+
+    @ExcelProperty(value = "账号", index = 0)
+    private String phone;
+
+    @ExcelProperty(value = "党员姓名", index = 1)
+    private String name;
+
+    @ExcelProperty(value = "所属党组织", index = 2)
+    private String orgName;
+
+    @ExcelProperty(value = "入党日期", index = 3)
+    private Date joinTime;
+
+    @ExcelProperty(value = "转正日期", index = 4)
+    private Date employmentTime;
+
+    @ExcelProperty(value = "报道单位", index = 5)
+    private String checkUnitName;
+
+    @ExcelProperty(value = "党龄", index = 6)
+    private Integer partyAge;
+
+    @ExcelProperty(value = "状态",index = 7)
+    private String status;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ComPbMemberVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ComPbMemberVO.java
new file mode 100644
index 0000000..5bfb2a1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ComPbMemberVO.java
@@ -0,0 +1,97 @@
+package com.panzhihua.common.model.vos.partybuilding.west;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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.util.Date;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel
+public class ComPbMemberVO {
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 所属党组织id
+     */
+    @ApiModelProperty("所属党组织id")
+    private Long orgId;
+
+    /**
+     * 身份证号
+     */
+    @ApiModelProperty("身份证号")
+    private String idCard;
+
+    /**
+     * 姓名
+     */
+    @ApiModelProperty("姓名")
+    private String name;
+
+    /**
+     * 头像图片路径
+     */
+    @ApiModelProperty("头像图片路径")
+    private String photoPath;
+
+    /**
+     * 入党时间
+     */
+    @ApiModelProperty("入党时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date joinTime;
+
+    /**
+     * 转正时间
+     */
+    @ApiModelProperty("转正时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date employmentTime;
+
+    /**
+     * 党员审查结果
+     */
+    private Integer auditResult;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date createAt;
+
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty("修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
+    private Date updateAt;
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 驳回原因
+     */
+    private String refuseReason;
+    @ApiModelProperty("手机号")
+    private String phone;
+
+    @ApiModelProperty("党组织")
+    private String orgName;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ComPbServiceTeamVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ComPbServiceTeamVO.java
new file mode 100644
index 0000000..7d3e0fa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ComPbServiceTeamVO.java
@@ -0,0 +1,54 @@
+package com.panzhihua.common.model.vos.partybuilding.west;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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.util.Date;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 服务团队人员
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-21 18:11
+ **/
+@Data
+@ApiModel("服务团队人员")
+public class ComPbServiceTeamVO {
+
+    @ApiModelProperty("id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("姓名")
+    private String name;
+
+    @ApiModelProperty("职位")
+    private String job;
+
+    @ApiModelProperty("职位2")
+    private String jobTwo;
+
+    @ApiModelProperty("岗位职责")
+    private String jobResponsibilities;
+
+    @ApiModelProperty("照片")
+    private String url;
+
+    @ApiModelProperty("create_at")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("社区id")
+    private Long communityId;
+    @ApiModelProperty("电话")
+    private String phone;
+    @ApiModelProperty("是否注册")
+    private Integer isReg;
+
+    @ApiModelProperty("社区名称")
+    private String communityName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ComPbServiceTeamWishVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ComPbServiceTeamWishVO.java
new file mode 100644
index 0000000..2187f86
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/ComPbServiceTeamWishVO.java
@@ -0,0 +1,23 @@
+package com.panzhihua.common.model.vos.partybuilding.west;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 微心愿服务团队人员
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-21 18:11
+ **/
+@Data
+@ApiModel("微心愿服务团队人员")
+public class ComPbServiceTeamWishVO {
+
+    @ApiModelProperty("managerId")
+    private Long managerId;
+
+    @ApiModelProperty("姓名")
+    private String name;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/PageActivityMembersVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/PageActivityMembersVO.java
new file mode 100644
index 0000000..b97a89b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/PageActivityMembersVO.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.vos.partybuilding.west;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 分页活动人员
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-01 09:50
+ **/
+@Data
+@ApiModel(value = "分页活动人员")
+public class PageActivityMembersVO {
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+    @ApiModelProperty(value = "姓名")
+    private String name;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty(value = "报名时间")
+    private String registrationTime;
+    @ApiModelProperty(value = "人员主键")
+    private Long id;
+    @ApiModelProperty(value = "当前页数")
+    private Long pageNum;
+    @ApiModelProperty(value = "每页记录数")
+    private Long pageSize;
+    @ApiModelProperty(value = "活动id", required = true)
+    private Long activityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/PagePartyBuildingMemberVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/PagePartyBuildingMemberVO.java
new file mode 100644
index 0000000..e6054ce
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/PagePartyBuildingMemberVO.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.vos.partybuilding.west;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 分页党员认证
+ * @author: cedoo
+ * @create: 2021-4-7
+ **/
+@Data
+@ApiModel(value = "分页党员认证")
+public class PagePartyBuildingMemberVO {
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+    @ApiModelProperty(value = "姓名")
+    private String name;
+    @ApiModelProperty(value = "状态")
+    private Integer auditStatus;
+
+    @ApiModelProperty(value = "当前页数")
+    private Long pageNum;
+    @ApiModelProperty(value = "每页记录数")
+    private Long pageSize;
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "区域编码", hidden = true)
+    private String areaCode;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/PagePartyOrganizationVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/PagePartyOrganizationVO.java
new file mode 100644
index 0000000..4e0a360
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/PagePartyOrganizationVO.java
@@ -0,0 +1,69 @@
+package com.panzhihua.common.model.vos.partybuilding.west;
+
+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;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 分页党员
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 16:10
+ **/
+@Data
+@ApiModel(value = "分页查询党员")
+public class PagePartyOrganizationVO {
+
+    @ApiModelProperty(value = "组织名字")
+    private String orgName;
+
+    @ApiModelProperty(value = "组织ID")
+    private Long orgId;
+
+    @ApiModelProperty(value = "账户")
+    private String account;
+
+    @ApiModelProperty(value = "党员姓名")
+    private String name;
+
+    @ApiModelProperty(value = "当前页数")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "每页记录数")
+    private Long pageSize;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "社区id集合", hidden = true)
+    private List<Long> communityIds;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+    @ApiModelProperty(value = "党员类型(1.预备党员 2.正式党员)")
+    private Integer type;
+
+    @ApiModelProperty(value = "报道单位id")
+    private Long checkUnitId;
+
+    @ApiModelProperty(value = "特长类别(1.体育类 2.舞蹈类 3.音乐类 4.美术类 5.其他)")
+    private Long specialtyCategory;
+
+    @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(value = "区域编码", hidden = true)
+    private String areaCode;
+
+    private String specialtyName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/PartyBuildingActivityVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/PartyBuildingActivityVO.java
new file mode 100644
index 0000000..068ff47
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/PartyBuildingActivityVO.java
@@ -0,0 +1,109 @@
+package com.panzhihua.common.model.vos.partybuilding.west;
+
+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;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 活动
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-01 09:08
+ **/
+@Data
+@ApiModel("党员活动")
+public class PartyBuildingActivityVO {
+    @ApiModelProperty("党员活动id")
+    private Long id;
+
+    @ApiModelProperty("活动名称")
+    private String name;
+
+    @ApiModelProperty("活动地点")
+    private String address;
+
+    @ApiModelProperty("1 待发布 2 未开始 3 报名中 4 进行中 5 已结束 6 已取消")
+    private Integer status;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("发布时间")
+    private Date releaseTime;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("发布开始时间")
+    private Date releaseTimeBegin;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("发布结束时间")
+    private Date releaseTimeEnd;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("活动开始时间")
+    private Date activityTimeBegin;
+    @ApiModelProperty("活动开始时间-格式化后的")
+    private String activityTimeBeginFormat;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("活动结束时间")
+    private Date activityTimeEnd;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("报名开始时间")
+    private Date enrollTimeBegin;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("报名结束时间")
+    private Date enrollTimeEnd;
+
+    @ApiModelProperty("当前页数")
+    private Long pageNum;
+
+    @ApiModelProperty("每页记录数")
+    private Long pageSize;
+
+    @ApiModelProperty("活动最多参入人数")
+    private Integer participationNum;
+
+    @ApiModelProperty("活动最低参入人数-未达到到时间自动取消")
+    private Integer participationLowestNum;
+
+    @ApiModelProperty("活动已经参与人数")
+    private Integer participationActualNum;
+
+    @ApiModelProperty("活动封面")
+    private String cover;
+
+    @ApiModelProperty("活动内容-富文本")
+    private String richText;
+
+    @ApiModelProperty("取消原因")
+    private String cancelReason;
+
+    @ApiModelProperty("发布人id")
+    private Long createBy;
+
+    @ApiModelProperty("发布人名字")
+    private String createByName;
+
+    @ApiModelProperty("社区id")
+    private Long communityId;
+
+    @ApiModelProperty("社区名称")
+    private String communityName;
+
+    @ApiModelProperty("活动党员列表")
+    private List<PartyBuildingMemberVO> partyBuildingMemberVOS;
+
+    @ApiModelProperty("是否已经报名")
+    private Integer isSign;
+
+    @ApiModelProperty(value = "活动报名人员id集合", hidden = true)
+    private List<Long> userIds;
+
+    @ApiModelProperty("是否是小程序请求")
+    private Integer isAppliets;
+
+    @ApiModelProperty("是否是个人发起 1 是 0 否")
+    private Integer isPerson;
+
+    @ApiModelProperty("二维码类型 1居民,志愿者 2党员")
+    private Integer codeType;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/PartyBuildingComPbDynVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/PartyBuildingComPbDynVO.java
new file mode 100644
index 0000000..bf16d5a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/PartyBuildingComPbDynVO.java
@@ -0,0 +1,107 @@
+package com.panzhihua.common.model.vos.partybuilding.west;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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.util.Date;
+import java.util.List;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党建动态
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-01 15:53
+ **/
+@Data
+@ApiModel("社区管理》党建》党员动态/政策文件")
+public class PartyBuildingComPbDynVO {
+
+    @ApiModelProperty("党建动态/政策文件id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("标题")
+    private String title;
+
+    @ApiModelProperty("状态 1 待发布 2 已发布")
+    private Integer status;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("发布时间")
+    private Date publishAt;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("发布开始时间")
+    private Date publishAtBegin;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("发布结束时间")
+    private Date publishAtEnd;
+
+    @ApiModelProperty("封面url")
+    private String cover;
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("内容")
+    private String content;
+
+    @ApiModelProperty("发布人id")
+    private Long createBy;
+
+    @ApiModelProperty("发布人名字")
+    private String createByName;
+
+    @ApiModelProperty("阅读量")
+    private Integer readingVolume;
+
+    @ApiModelProperty("当前页数")
+    private Long pageNum;
+
+    @ApiModelProperty("每页记录数")
+    private Long pageSize;
+
+    @ApiModelProperty("1动态 2政策文件")
+    private Integer type;
+
+    @ApiModelProperty("社区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long communityId;
+
+
+    @ApiModelProperty("社区id集合")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private List<Long> communityIds;
+
+    @ApiModelProperty("动态内容富文本--纯文本")
+    private String contentText;
+
+    @ApiModelProperty(value = "是否增加 1 增加 0 不增加")
+    private Integer isAdd;
+
+    @ApiModelProperty("动态分类:1-党建动态 2-党员帮扶 3-党员示范")
+    private Integer dynType;
+
+    @ApiModelProperty("封面模式:1-小图展示 2-大图展示")
+    private Integer coverMode;
+
+    @ApiModelProperty("社区名称")
+    private String communityName;
+
+    @ApiModelProperty("跳转链接")
+    private String jumpUrl;
+
+    @ApiModelProperty("跳转状态")
+    private Integer jumpType;
+
+    @ApiModelProperty("政策分类: 1-社工人才政策 2-社会组织培育政策 3-其他政策")
+    private Integer policyType;
+
+    @ApiModelProperty("排序方式 正序 ASC")
+    private String sort;
+
+    private String appId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/PartyBuildingMemberExcelVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/PartyBuildingMemberExcelVO.java
new file mode 100644
index 0000000..653afea
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/PartyBuildingMemberExcelVO.java
@@ -0,0 +1,46 @@
+package com.panzhihua.common.model.vos.partybuilding.west;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 批量党员
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 14:57
+ **/
+@Data
+public class PartyBuildingMemberExcelVO implements Serializable {
+    /**
+     * 党员姓名
+     */
+    @ExcelProperty(value = "党员姓名", index = 0)
+    private String name;
+    /**
+     * 身份证号
+     */
+    @ExcelProperty(value = "身份证号", index = 1)
+    private String idCard;
+    /**
+     * 所属党组织
+     */
+    @ExcelProperty(value = "所属党组织", index = 2)
+    private String orgName;
+    /**
+     * 入党日期
+     */
+    @ExcelProperty(value = "入党日期", index = 3)
+    private String joinTime;
+    /**
+     * 转正日期
+     */
+    @ExcelProperty(value = "转正日期", index = 4)
+    private String employmentTime;
+    /**
+     * 所属社区
+     */
+    @ExcelProperty(value = "所属社区", index = 5)
+    private String communityName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/PartyBuildingMemberVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/PartyBuildingMemberVO.java
new file mode 100644
index 0000000..722e70c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/PartyBuildingMemberVO.java
@@ -0,0 +1,94 @@
+package com.panzhihua.common.model.vos.partybuilding.west;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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.util.Date;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党建
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 10:03
+ **/
+@Data
+@ApiModel("社区管理》党建》党员信息")
+public class PartyBuildingMemberVO {
+    @ApiModelProperty(value = "姓名")
+    private String name;
+    @ApiModelProperty(value = "身份证")
+    private String idCard;
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @ApiModelProperty(value = "入党时间")
+    private Date joinTime;
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @ApiModelProperty(value = "转正时间")
+    private Date employmentTime;
+    @ApiModelProperty(value = "所属党组织id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long orgId;
+    @ApiModelProperty(value = "头像图片路径")
+    private String photoPath;
+    @ApiModelProperty(value = "社区ID", hidden = true)
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long communityId;
+    @ApiModelProperty(value = "社区名字")
+    private String communityName;
+    @ApiModelProperty(value = "党组织名字")
+    private String orgName;
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+    @ApiModelProperty(value = "党龄")
+    private Integer partyAge;
+    @ApiModelProperty(value = "状态")
+    private String status;
+    @ApiModelProperty(value = "党员唯一标识id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+    @ApiModelProperty(value = "报名时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+    @ApiModelProperty(value = "用户ID", hidden = true)
+    private Long userId;
+    @ApiModelProperty(value = "党员审查结果: 0 待审核 1 已审核 2 自动认证 3 已驳回")
+    private Integer auditResult;
+    @ApiModelProperty(value = "驳回原因")
+    private String refuseReason;
+    @ApiModelProperty(value = "是否党员 1是 2否")
+    private Integer isPb;
+
+    @ApiModelProperty(value = "党员类型(1.预备党员 2.正式党员)")
+    private Integer type;
+
+    @ApiModelProperty(value = "职位")
+    private String position;
+
+    @ApiModelProperty(value = "报道单位id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long checkUnitId;
+
+    @ApiModelProperty(value = "报道单位名称")
+    private String checkUnitName;
+
+    @ApiModelProperty(value = "职能")
+    private String function;
+
+    @ApiModelProperty(value = "特长类别(1.体育类 2.舞蹈类 3.音乐类 4.美术类 5.其他)")
+    private Integer specialtyCategory;
+
+    @ApiModelProperty(value = "特长描述")
+    private String specialtyName;
+
+    @ApiModelProperty(value = "职位2")
+    private String positionTwo;
+
+    @ApiModelProperty(value = "活动时长")
+    private Integer partyTime;
+
+    @ApiModelProperty(value = "活动积分")
+    private Integer partyInterval;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/PartyCommitteeVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/PartyCommitteeVO.java
new file mode 100644
index 0000000..e842685
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/PartyCommitteeVO.java
@@ -0,0 +1,112 @@
+package com.panzhihua.common.model.vos.partybuilding.west;
+
+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.validated.AddGroup;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.util.Date;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党委
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-01 14:15
+ **/
+@Data
+@ApiModel("党委")
+public class PartyCommitteeVO {
+
+    @ApiModelProperty("主键")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("电话")
+    @NotBlank(groups = {AddGroup.class}, message = "电话不能为空")
+    private String phone;
+
+    @ApiModelProperty("是否注册")
+    private Integer isReg;
+
+    @ApiModelProperty("姓名")
+    @NotBlank(groups = {AddGroup.class}, message = "姓名不能为空")
+    private String name;
+
+    @ApiModelProperty("性别")
+    private Integer sex;
+
+    @ApiModelProperty("出生日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date birthTime;
+
+    @ApiModelProperty(value = "年龄")
+    private Integer age;
+
+    @ApiModelProperty("职位")
+    @NotBlank(groups = {AddGroup.class}, message = "职位不能为空")
+    private String position;
+
+    @ApiModelProperty("职位2")
+    private String positionTwo;
+
+    @ApiModelProperty("岗位职责")
+    @NotBlank(groups = {AddGroup.class}, message = "岗位职责不能为空")
+    private String jobResponsibilities;
+
+    @ApiModelProperty("头像图片路径")
+    @NotBlank(groups = {AddGroup.class}, message = "头像不能为空")
+    private String photoPath;
+
+    @ApiModelProperty("社区id")
+    private Long communityId;
+
+    @ApiModelProperty(value = "当前页数")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "每页记录数")
+    private Long pageSize;
+
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+    @ApiModelProperty(value = "党委标签(1.社区党委 2.区域党委委员)")
+    private Integer type;
+
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @ApiModelProperty(value = "入党时间")
+    private Date joinTime;
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @ApiModelProperty(value = "转正时间")
+    private Date employmentTime;
+
+    @ApiModelProperty(value = "职能")
+    private String function;
+
+    @ApiModelProperty(value = "特长类别(1.体育类 2.舞蹈类 3.音乐类 4.美术类 5.其他)")
+    private Integer specialtyCategory;
+
+    @ApiModelProperty(value = "特长描述")
+    private String specialtyName;
+
+    @ApiModelProperty(value = "报道单位id")
+    private Long checkUnitId;
+
+    @ApiModelProperty(value = "报道单位名称")
+    private String checkUnitName;
+
+    @ApiModelProperty(value = "负责党组织id")
+    private Long orgId;
+
+    @ApiModelProperty(value = "负责党组织名字")
+    private String orgName;
+
+    @ApiModelProperty(value = "身份证")
+    private String idCard;
+
+    @ApiModelProperty(value = "区域编码", hidden = true)
+    private String areaCode;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/PartyOrganizationVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/PartyOrganizationVO.java
new file mode 100644
index 0000000..3f45390
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/partybuilding/west/PartyOrganizationVO.java
@@ -0,0 +1,78 @@
+package com.panzhihua.common.model.vos.partybuilding.west;
+
+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.util.List;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党组织
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 11:15
+ **/
+@Data
+@ApiModel("党组织")
+public class PartyOrganizationVO {
+    @ApiModelProperty(value = "党组织id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+    @ApiModelProperty(value = "党组织名字")
+    private String name;
+    @ApiModelProperty(value = "状态")
+    private Integer status;
+    @ApiModelProperty(value = "党员人数")
+    private Integer countPerson;
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+    @ApiModelProperty(value = "分页-当前页数", example = "1")
+    private Long pageNum = 1L;
+    @ApiModelProperty(value = "分页-每页记录数", example = "10")
+    private Long pageSize = 10L;
+    @ApiModelProperty(value = "关键词")
+    private String keyWord;
+
+    @ApiModelProperty(value = "上级id")
+    private Long parentId;
+    @ApiModelProperty(value = "组织类别(1.基层党委 2.二级基层党委 3.党总支 4.党支部 5.党小组)")
+    private Integer type;
+    @ApiModelProperty(value = "组织隶属(1.乡镇 2.机关 3.域市街道 3.域市社区(居委会) 4.农村社区居委会 5.建制村 6.国有经济控制 7.集体经济控制 8.非公有经济控制 9.事业单位 10.社会组织 11.其他)")
+    private Integer subjection;
+    @ApiModelProperty(value = "小区id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long areaId;
+    @ApiModelProperty(value = "楼栋id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long buildId;
+    @ApiModelProperty(value = "楼栋名称")
+    private String buildName;
+    @ApiModelProperty(value = "所属小区名字")
+    private String areaName;
+    @ApiModelProperty(value = "组织地址")
+    private String address;
+    @ApiModelProperty(value = "经度")
+    private String longitude;
+    @ApiModelProperty(value = "纬度")
+    private String latitude;
+    @ApiModelProperty(value = "一级id")
+    private Long oneId;
+    @ApiModelProperty(value = "二级id")
+    private Long twoId;
+    @ApiModelProperty(value = "三级id")
+    private Long thirdId;
+    @ApiModelProperty(value = "四级id")
+    private Long fourId;
+    @ApiModelProperty(value = "五级id")
+    private Long fiveId;
+
+    @ApiModelProperty(value = "党组织负责人名称")
+    private String userName;
+    @ApiModelProperty(value = "党组织负责人联系电话")
+    private String phone;
+
+    @ApiModelProperty(value = "党组织下子组织")
+    private List<PartyOrganizationVO> childList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/property/ComPropertyAlarmDetailVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/property/ComPropertyAlarmDetailVO.java
new file mode 100644
index 0000000..21c5c47
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/property/ComPropertyAlarmDetailVO.java
@@ -0,0 +1,10 @@
+package com.panzhihua.common.model.vos.property;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+@Data
+@ApiModel("详情")
+public class ComPropertyAlarmDetailVO {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/property/ComPropertyAlarmSettingVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/property/ComPropertyAlarmSettingVO.java
new file mode 100644
index 0000000..78f58cb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/property/ComPropertyAlarmSettingVO.java
@@ -0,0 +1,31 @@
+package com.panzhihua.common.model.vos.property;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@ApiModel
+public class ComPropertyAlarmSettingVO {
+    private Integer id;
+
+    /**
+     * 触发间隔
+     */
+    @ApiModelProperty(value = "触发间隔")
+    private Integer triggerTime;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/property/ComPropertyAlarmVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/property/ComPropertyAlarmVO.java
new file mode 100644
index 0000000..c297102
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/property/ComPropertyAlarmVO.java
@@ -0,0 +1,111 @@
+package com.panzhihua.common.model.vos.property;
+
+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 ComPropertyAlarmVO {
+    private String id;
+
+    /**
+     * 设备号
+     */
+    @ApiModelProperty(value = "设备号")
+    private String serialNo;
+
+    /**
+     * 报警类型 1一键报警 2长时间无应答报警
+     */
+    @ApiModelProperty(value = "报警类型 1一键报警 2长时间无应答报警")
+    private Integer type;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+    /**
+     * 位置信息
+     */
+    @ApiModelProperty(value = "位置信息")
+    private String position;
+
+    /**
+     * 手机号
+     */
+    @ApiModelProperty("手机号")
+    private String phone;
+
+    /**
+     *居民姓名
+     */
+    @ApiModelProperty("居民姓名")
+    private String name;
+
+    /**
+     * 报警处理状态 0待处理 1已办结
+     */
+    @ApiModelProperty("处理状态")
+    private Integer status;
+
+    /**
+     * 处理人
+     */
+    @ApiModelProperty("处理人")
+    private String solveName;
+
+    /**
+     * 处理时间
+     */
+    @ApiModelProperty(value = "处理时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date solveTime;
+
+    /**
+     * 处理内容
+     */
+    @ApiModelProperty(value = "处理内容")
+    private String solveContent;
+
+    /**
+     * 处理人id
+     */
+    @ApiModelProperty("处理人id")
+    private Long solveId;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty("社区id")
+    private Long communityId;
+
+    /**
+     * 处理图片
+     */
+    @ApiModelProperty("处理图片")
+    private String solveUrl;
+
+    /**
+     * 经度
+     */
+    @ApiModelProperty("经度")
+    private String longitude;
+
+    /**
+     * 纬度
+     */
+    @ApiModelProperty("纬度")
+    private String latitude;
+
+    /**
+     * 接收人
+     */
+    @ApiModelProperty("接收人")
+    private String receiveName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/property/ComPropertyEquipmentVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/property/ComPropertyEquipmentVO.java
new file mode 100644
index 0000000..17c76c6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/property/ComPropertyEquipmentVO.java
@@ -0,0 +1,79 @@
+package com.panzhihua.common.model.vos.property;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@ApiModel("设备实体")
+public class ComPropertyEquipmentVO {
+    private String id;
+
+    /**
+     * 设备编号
+     */
+    @ApiModelProperty(value = "设备编号")
+    private String serialNo;
+
+    /**
+     * 报警位置
+     */
+    @ApiModelProperty(value = "报警位置")
+    private String position;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    /**
+     * 经度
+     */
+    @ApiModelProperty(value = "经度")
+    private String longitude;
+
+    /**
+     * 纬度
+     */
+    @ApiModelProperty(value = "纬度")
+    private String latitude;
+
+    /**
+     * 设备名称
+     */
+    @ApiModelProperty(value = "设备名称")
+    private String name;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    /**
+     * 居民名称
+     */
+    @ApiModelProperty(value = "居民名称")
+    private String username;
+
+    /**
+     * 设备类型
+     */
+    @ApiModelProperty(value = "设备类型 1一键报警 2异常报警 ")
+    private Integer type;
+
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+
+    @ApiModelProperty(value = "街路巷id")
+    private Long villageId;
+
+    @ApiModelProperty(value = "回显路径")
+    private String path;
+
+    @ApiModelProperty(value = "设备状态(1.待服务 2.有异常报警 3.正常)")
+    private Integer equipmentStatus;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/property/ComPropertyHelpVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/property/ComPropertyHelpVO.java
new file mode 100644
index 0000000..f2c9046
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/property/ComPropertyHelpVO.java
@@ -0,0 +1,53 @@
+package com.panzhihua.common.model.vos.property;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel("一件求助人员实体")
+public class ComPropertyHelpVO {
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    private Integer id;
+
+    /**
+     * 姓名
+     */
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    /**
+     * 照片
+     */
+    @ApiModelProperty(value = "照片")
+    private String imgUrl;
+
+    /**
+     * 手机号
+     */
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+
+    /**
+     * 状态 0 禁用 1启用
+     */
+    @ApiModelProperty(value = "状态 0 禁用 1启用")
+    private Integer status;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/property/ComPropertyRepairVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/property/ComPropertyRepairVO.java
new file mode 100644
index 0000000..9759400
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/property/ComPropertyRepairVO.java
@@ -0,0 +1,134 @@
+package com.panzhihua.common.model.vos.property;
+
+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.util.Date;
+
+@Data
+@ApiModel
+public class ComPropertyRepairVO {
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 报修内容
+     */
+    @ApiModelProperty(value = "报修内容")
+    private String repairContent;
+
+    /**
+     * 报修人
+     */
+    @ApiModelProperty(value = "报修人")
+    private String repairName;
+
+    /**
+     * 报修手机
+     */
+    @ApiModelProperty(value = "报修手机")
+    private String repairPhone;
+
+    /**
+     * 报修位置
+     */
+    @ApiModelProperty(value = "报修位置")
+    private String repairPosition;
+
+    /**
+     * 状态 0 待处理 1待评价 2已结束
+     */
+    @ApiModelProperty(value = "状态 0 待处理 1待评价 2已结束")
+    private Integer repairStatus;
+
+    /**
+     * 报修时间
+     */
+    @ApiModelProperty(value = "报修时间")
+    private Date createTime;
+
+    /**
+     * 报修图片url
+     */
+    @ApiModelProperty(value = "报修图片url")
+    private String repairUrl;
+
+    /**
+     * 评价内容
+     */
+    @ApiModelProperty(value = "评价内容")
+    private String replyContent;
+
+    /**
+     * 评价图片url
+     */
+    @ApiModelProperty(value = "评价图片url")
+    private String replyUrl;
+
+    /**
+     * 评价时间
+     */
+    @ApiModelProperty(value = "评价时间")
+    private Date replyTime;
+
+    /**
+     * 报修人id
+     */
+    @ApiModelProperty(value = "报修人id")
+    private Long createBy;
+
+    /**
+     * 反馈人id
+     */
+    @ApiModelProperty(value = "反馈人id")
+    private Long feedbackBy;
+
+    /**
+     * 反馈内容
+     */
+    @ApiModelProperty(value = "反馈内容")
+    private String feedbackContent;
+
+    /**
+     * 反馈图片
+     */
+    @ApiModelProperty(value = "反馈图片")
+    private String feedbackUrl;
+
+    /**
+     * 反馈时间
+     */
+    @ApiModelProperty(value = "反馈时间")
+    private Date feedbackTime;
+
+    /**
+     * 评价星级
+     */
+    @ApiModelProperty(value = "评价星级")
+    private Integer replyScore;
+
+    /**
+     * 物业id
+     */
+    @ApiModelProperty(value = "物业id")
+    private Long propertyId;
+    /**
+     * 反馈人
+     */
+    @ApiModelProperty(value = "反馈人名称")
+    private String feedback;
+    @ApiModelProperty(value = "小区名称")
+    private String areaName;
+
+    /**
+     * 状态 0 待处理 1待评价 2已结束
+     */
+    public interface status{
+        int dcl=0;
+        int dpj=1;
+        int yjs=2;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/property/ComPropertyWorkerVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/property/ComPropertyWorkerVO.java
new file mode 100644
index 0000000..92b3ee2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/property/ComPropertyWorkerVO.java
@@ -0,0 +1,39 @@
+package com.panzhihua.common.model.vos.property;
+
+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;
+
+/**
+ * @title: ComPropertyWorkerVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 物业工作人员信息
+ * @author: hans
+ * @date: 2022/04/26 10:35
+ */
+@Data
+@ApiModel("物业工作人员信息")
+public class ComPropertyWorkerVO {
+
+    @ApiModelProperty(value = "物业工作人员id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty(value = "工作人员姓名")
+    private String name;
+
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+
+    @ApiModelProperty(value = "职务")
+    private String position;
+
+    @ApiModelProperty(value = "照片")
+    private String image;
+
+    @ApiModelProperty(value = "物业公司关联id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long refId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/puda/BasicDataVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/puda/BasicDataVO.java
new file mode 100644
index 0000000..39302a5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/puda/BasicDataVO.java
@@ -0,0 +1,22 @@
+package com.panzhihua.common.model.vos.puda;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author Tuzi
+ * @date 2023年02月03日 14:11
+ */
+@Data
+@ApiModel("基础数据")
+public class BasicDataVO {
+    @ApiModelProperty("小区建筑")
+    private Integer village;
+    @ApiModelProperty("居民人数")
+    private Integer people;
+    @ApiModelProperty("房屋总数")
+    private Integer buildings;
+    @ApiModelProperty("单位总数")
+    private Integer unit;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/puda/CitizenInfoVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/puda/CitizenInfoVO.java
new file mode 100644
index 0000000..276c61b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/puda/CitizenInfoVO.java
@@ -0,0 +1,39 @@
+package com.panzhihua.common.model.vos.puda;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author Tuzi
+ * @date 2023年02月03日 13:52
+ */
+@ApiModel("居民信息")
+@Data
+public class CitizenInfoVO {
+    @ApiModelProperty("男性数量")
+    private Integer maleNum;
+    @ApiModelProperty("女性数量")
+    private Integer femaleNum;
+    @ApiModelProperty("0-16数量")
+    private Integer count1;
+    @ApiModelProperty("16-27")
+    private Integer count2;
+    @ApiModelProperty("27-35")
+    private Integer count3;
+    @ApiModelProperty("35-45")
+    private Integer count4;
+    @ApiModelProperty("45-55")
+    private Integer count5;
+    @ApiModelProperty("55以上")
+    private Integer count6;
+    @ApiModelProperty("男性占比")
+    private BigDecimal maleRate;
+    @ApiModelProperty("女性占比")
+    private BigDecimal femaleRate;
+    @ApiModelProperty("总人口")
+    private Integer total;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/puda/DynamicVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/puda/DynamicVO.java
new file mode 100644
index 0000000..017e1ea
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/puda/DynamicVO.java
@@ -0,0 +1,26 @@
+package com.panzhihua.common.model.vos.puda;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author Tuzi
+ * @date 2023年02月03日 13:44
+ */
+@ApiModel("自治动态")
+@Data
+public class DynamicVO {
+    @ApiModelProperty("微心愿")
+    private Integer microWish;
+    @ApiModelProperty("随手拍")
+    private Integer easyPhoto;
+    @ApiModelProperty("通知公告")
+    private Integer announcement;
+    @ApiModelProperty("社区咨询")
+    private Integer communityInfo;
+    @ApiModelProperty("问题清单")
+    private Integer questions;
+    @ApiModelProperty("需求清单")
+    private Integer demands;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/puda/PartyDataVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/puda/PartyDataVO.java
new file mode 100644
index 0000000..db07e72
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/puda/PartyDataVO.java
@@ -0,0 +1,22 @@
+package com.panzhihua.common.model.vos.puda;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author Tuzi
+ * @date 2023年02月03日 13:48
+ */
+@ApiModel("党建数据")
+@Data
+public class PartyDataVO {
+    @ApiModelProperty("社区两委")
+    private Integer committee;
+    @ApiModelProperty("报到单位")
+    private Integer unit;
+    @ApiModelProperty("报到党员")
+    private Integer partyMembers;
+    @ApiModelProperty("党建活动")
+    private Integer partyActivity;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/puda/PropertyVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/puda/PropertyVO.java
new file mode 100644
index 0000000..470826f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/puda/PropertyVO.java
@@ -0,0 +1,18 @@
+package com.panzhihua.common.model.vos.puda;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author Tuzi
+ * @date 2023年02月03日 13:47
+ */
+@ApiModel("红色物业")
+@Data
+public class PropertyVO {
+    @ApiModelProperty("物业公司名称")
+    private String propertyName;
+    @ApiModelProperty("党员数量")
+    private Integer partyMembers;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/puda/SpecialPeopleVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/puda/SpecialPeopleVO.java
new file mode 100644
index 0000000..57c8ffd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/puda/SpecialPeopleVO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.vos.puda;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @author Tuzi
+ * @date 2023年02月03日 14:13
+ */
+@Data
+@ApiModel("特殊人口统计")
+public class SpecialPeopleVO {
+    @ApiModelProperty("标签")
+    private String label;
+    @ApiModelProperty("人数")
+    private Integer count;
+    @ApiModelProperty("特殊人群占比")
+    private BigDecimal rate;
+    private Integer total;
+    private List<SpecialPeopleVO> childList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/puda/YardVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/puda/YardVO.java
new file mode 100644
index 0000000..d7c74b4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/puda/YardVO.java
@@ -0,0 +1,19 @@
+package com.panzhihua.common.model.vos.puda;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author Tuzi
+ * @date 2023年02月03日 14:03
+ */
+@Data
+@ApiModel("小区院落'")
+public class YardVO {
+    @ApiModelProperty("院落总数")
+    private Integer count;
+    @ApiModelProperty("城镇院落")
+    private Integer cityYard;
+    @ApiModelProperty("农村院落")
+    private Integer countryYard;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventArchiveVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventArchiveVO.java
new file mode 100644
index 0000000..1f8bfc8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventArchiveVO.java
@@ -0,0 +1,38 @@
+package com.panzhihua.common.model.vos.sanshuo;
+
+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.util.List;
+
+/**
+ * Description 三说会堂事件归档对象
+ * ClassName   ComEventArchiveVO
+ *
+ * @author manailin
+ * @date 2022-09-07 11:23:52
+ */
+@Data
+@ApiModel(value = "三说会堂事件归档对象")
+public class ComEventArchiveVO {
+    private static final long serialVersionUID = 1L;
+    /**
+     * 主键
+     */
+    @ApiModelProperty(name = "id", value = "主键")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+    /**
+     * 归档结论
+     */
+    @ApiModelProperty(name = "result", value = "归档结论")
+    private String result;
+    /**
+     * 调解上传图片地址列表,逗号进行分割
+     */
+    @ApiModelProperty(name = "images", value = "调解上传图片地址列表,逗号进行分割")
+    private List<ComEventRequestImageVO> images;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventCalculateVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventCalculateVO.java
new file mode 100644
index 0000000..7f91c0c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventCalculateVO.java
@@ -0,0 +1,24 @@
+package com.panzhihua.common.model.vos.sanshuo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * Description 三说会堂事件表
+ * ClassName   ComEventVO
+ * @author     manailin
+ * @date       2022-09-07 11:23:51
+ */
+@Data
+@ApiModel(value = "三说会堂事件表")
+public class ComEventCalculateVO {
+	private static final long serialVersionUID = 1L;
+
+	private String status;
+
+	private String  sum;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventConciliationVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventConciliationVO.java
new file mode 100644
index 0000000..9b4d3c2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventConciliationVO.java
@@ -0,0 +1,45 @@
+package com.panzhihua.common.model.vos.sanshuo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * Description 三说会堂事件调解对象
+ * ClassName   ComEventResourceVO
+ * @author     manailin
+ * @date       2022-09-07 11:23:52
+ */
+@Data
+@ApiModel(value = "三说会堂事件调解对象")
+public class ComEventConciliationVO {
+	private static final long serialVersionUID = 1L;
+	/**主键*/
+	@ApiModelProperty(name = "id", value = "主键")
+	private Long id;
+	/**工作人员的事件处理状态1待处理2待验证3专家已受理4专家未受理,拒绝5调解中6已结案归档7调解取消*/
+	@ApiModelProperty(name = "eventProcessStatus", value = "工作人员的事件处理状态1待处理2待验证3专家已受理4专家未受理,拒绝5调解中6已结案7已归档8调解取消9已删除")
+	private Integer eventProcessStatus;
+	/**事件结果(1、调解失败2、调解成功)*/
+	@ApiModelProperty(name = "eventResult", value = "事件结果(1、调解失败2、调解成功)")
+	private Integer eventResult;
+	/**当前处理人是否上报上级单位处理*/
+	@ApiModelProperty(name = "reportSuperior", value = "当前处理人是否上报上级单位处理")
+	private Boolean reportSuperior;
+	/**当前调解处理结果*/
+	@ApiModelProperty(name = "currentEventProcessResult", value = "当前调解处理结果")
+	private String currentEventProcessResult;
+	/**调解是否成果1未成功2已成功*/
+	@ApiModelProperty(name = "eventSucceed", value = "调解是否成果1未成果2已成果")
+	private Integer eventSucceed;
+	/**调解上传图片地址列表,逗号进行分割*/
+	@ApiModelProperty(name = "images", value = "调解上传图片地址列表,逗号进行分割")
+	private List<ComEventRequestImageVO> images;
+	@ApiModelProperty("处理人")
+	private String solver;
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventDetailVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventDetailVO.java
new file mode 100644
index 0000000..5c9d8c1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventDetailVO.java
@@ -0,0 +1,140 @@
+package com.panzhihua.common.model.vos.sanshuo;
+
+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;
+
+/**
+ * Description 三说会堂事件调解对象
+ * ClassName   ComEventResourceVO
+ * @author     manailin
+ * @date       2022-09-07 11:23:52
+ */
+@Data
+@ApiModel(value = "三说会堂事件调解对象")
+public class ComEventDetailVO {
+	private static final long serialVersionUID = 1L;
+	/**主键*/
+	@ApiModelProperty(name = "id", value = "主键")
+	private Long id;
+	/**服务单号(流水号)按照日期时间+数字*/
+	@ApiModelProperty(name = "orderSn", value = "服务单号(流水号)按照日期时间+数字")
+	private String orderSn;
+	/**调解发起人ID*/
+	@ApiModelProperty(name = "requestUserId", value = "调解发起人ID")
+	private Long requestUserId;
+	/**调解发起人操作事件状态(1草稿箱2发布3逻辑删除4、撤销)*/
+	@ApiModelProperty(name = "userEventStatus", value = "调解发起人操作事件状态(1草稿箱2发布3逻辑删除4、撤销)")
+	private Integer userEventStatus;
+	/**调解发起人诉求事件描述*/
+	@ApiModelProperty(name = "requestUserEventDes", value = "调解发起人诉求事件描述")
+	private String requestUserEventDes;
+	/**调解发起人姓名*/
+	@ApiModelProperty(name = "requestUserName", value = "调解发起人姓名")
+	private String requestUserName;
+	/**调解发起人电话*/
+	@ApiModelProperty(name = "requestUserTel", value = "调解发起人电话")
+	private String requestUserTel;
+	/**调解事件类型*/
+	@ApiModelProperty(name = "eventCategory", value = "调解事件类型")
+	private Long eventCategory;
+	/**调解类型(1、行业分中心调解2、村社区调解3、是街道调解4、区)*/
+	@ApiModelProperty(name = "type", value = "调解类型(1、行业分中心调解2、村社区调解3、是街道调解4、区)")
+	private String type;
+	/**上报提交时间*/
+	@ApiModelProperty(name = "submitDate", value = "上报提交时间")
+	private Date submitDate;
+	/**选择预约调解时间*/
+	@ApiModelProperty(name = "appointmentTime", value = "选择预约调解时间")
+	private Date appointmentTime;
+	/**申请人选择的社区ID*/
+	@ApiModelProperty(name = "requestUserCommunity", value = "申请人选择的社区ID")
+	private Long requestUserCommunity;
+	/**行业分中心ID*/
+	@ApiModelProperty(name = "centerId", value = "行业分中心ID")
+	private String centerId;
+	/**行业分中心调解室电话*/
+	@ApiModelProperty(name = "centerTel", value = "行业分中心调解室电话")
+	private String centerTel;
+	/**调解专家所属单位*/
+	@ApiModelProperty(name = "specialistOrg", value = "调解专家所属单位")
+	private String specialistOrg;
+	/**调解专家级别*/
+	@ApiModelProperty(name = "specialistLevel", value = "调解专家级别")
+	private String specialistLevel;
+	/**选择调解专家ID*/
+	@ApiModelProperty(name = "specialistId", value = "选择调解专家ID")
+	private Long specialistId;
+	/**调解专家名字*/
+	@ApiModelProperty(name = "specialistName", value = "调解专家名字")
+	private String specialistName;
+	/**调解专家联系方式*/
+	@ApiModelProperty(name = "specialistTel", value = "调解专家联系方式")
+	private String specialistTel;
+	/**专家受理时间*/
+	@ApiModelProperty(name = "specialistAcceptTime", value = "专家受理时间")
+	@JsonFormat(pattern = "yyy-MM-dd HH:mm:ss")
+	private Date specialistAcceptTime;
+	/**撤销类型 1 用户 2 社区3、街道4、行业分中心*/
+	@ApiModelProperty(name = "revokeType", value = "撤销类型 1 用户 2 社区3、街道4、行业分中心")
+	private Integer revokeType;
+	/**工作人员的事件处理状态1待处理2待验证3专家已受理4专家未受理,拒绝5调解中6已结案归档7调解取消*/
+	@ApiModelProperty(name = "eventProcessStatus", value = "工作人员的事件处理状态1待处理2待验证3专家已受理4专家未受理,拒绝5调解中6已结案归档7调解取消")
+	private Integer eventProcessStatus;
+	/**当前处理对象类型(1、行业分中心2、社区3、是街道4、区)*/
+	@ApiModelProperty(name = "currentProcessType", value = "当前处理对象类型(1、行业分中心2、社区3、是街道4、区)")
+	private Integer currentProcessType;
+	/**当前处理机构ID*/
+	@ApiModelProperty(name = "currentOrgId", value = "当前处理机构ID")
+	private String currentOrgId;
+	/**当前机构下处理人ID*/
+	@ApiModelProperty(name = "currentProcessUserId", value = "当前机构下处理人ID")
+	private Long currentProcessUserId;
+	/**当前机构下处理人名称*/
+	@ApiModelProperty(name = "currentProcessUserName", value = "当前机构下处理人名称")
+	private String currentProcessUserName;
+	/**当前调解处理结果*/
+	@ApiModelProperty(name = "currentEventProcessResult", value = "当前调解处理结果")
+	private String currentEventProcessResult;
+	/**调解是否成果1未成果2已成果*/
+	@ApiModelProperty(name = "eventSucceed", value = "调解是否成果1未成果2已成果")
+	private Integer eventSucceed;
+	/**撤销描述*/
+	@ApiModelProperty(name = "revokeDes", value = "撤销描述")
+	private String revokeDes;
+	/**事件结果(1、调解失败2、调解成功)*/
+	@ApiModelProperty(name = "eventResult", value = "事件结果(1、调解失败2、调解成功)")
+	private Integer eventResult;
+	/**当前处理人是否上报上级单位处理*/
+	@ApiModelProperty(name = "reportSuperior", value = "当前处理人是否上报上级单位处理")
+	private Boolean reportSuperior;
+	/**归档结案报告*/
+	@ApiModelProperty(name = "result", value = "归档结案报告")
+	private String result;
+	/**已归档处理完毕时间*/
+	@JsonFormat(pattern = "yyy-MM-dd HH:mm:ss")
+	@ApiModelProperty(name = "resultDate", value = "已归档处理完毕时间")
+	private Date resultDate;
+	/**创建时间*/
+	@JsonFormat(pattern = "yyy-MM-dd HH:mm:ss")
+	@ApiModelProperty(name = "createAt", value = "创建时间")
+	private Date createAt;
+
+	/**调解上传图片地址列表,逗号进行分割*/
+	@ApiModelProperty(name = "images", value = "调解上传图片地址列表,逗号进行分割")
+	private List<ComEventRequestImageVO> images;
+
+	@ApiModelProperty("时间类型名称")
+	private String categoryName;
+	@ApiModelProperty("当前调解部门")
+	private String currentOrgName;
+	@ApiModelProperty("用户取消时间")
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date revokeDate;
+	@ApiModelProperty("调解站电话")
+	private String contact;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventPageRequestVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventPageRequestVO.java
new file mode 100644
index 0000000..2c958af
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventPageRequestVO.java
@@ -0,0 +1,64 @@
+package com.panzhihua.common.model.vos.sanshuo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * Description 三说会堂事件表
+ * ClassName   ComEventPageRequestVO
+ * @author     manailin
+ * @date       2022-09-07 11:23:51
+ */
+@Data
+@ApiModel(value = "三说会堂事件表分页列表数据")
+public class ComEventPageRequestVO {
+
+	/**主键*/
+	@ApiModelProperty(name = "id", value = "主键")
+	private Long id;
+	/**服务单号(流水号)按照日期时间+数字*/
+	@ApiModelProperty(name = "orderSn", value = "服务单号(流水号)按照日期时间+数字")
+	private String orderSn;
+	/**调解发起人ID*/
+	@ApiModelProperty(name = "requestUserId", value = "调解发起人ID")
+	private Long requestUserId;
+	/**调解事件类型*/
+	@ApiModelProperty(name = "eventCategory", value = "调解事件类型")
+	private Long eventCategory;
+	/**调解类型(1、行业分中心调解2、村社区调解3、是街道调解4、区)*/
+	@ApiModelProperty(name = "type", value = "调解类型(1、行业分中心调解2、村社区调解3、是街道调解4、区)")
+	private String type;
+	/**选择调解专家ID*/
+	@ApiModelProperty(name = "specialistId", value = "选择调解专家ID")
+	private Long specialistId;
+	/**工作人员的事件处理状态1待处理2待验证3专家已受理4专家未受理,拒绝5调解中6已结案归档7调解取消*/
+	@ApiModelProperty(name = "eventProcessStatus", value = "工作人员的事件处理状态1待处理2待验证3专家已受理4专家未受理,拒绝5调解中6已结案7已归档8调解取消9已删除")
+	private Integer eventProcessStatus;
+	/**当前处理对象类型(1、行业分中心2、社区3、是街道4、区)*/
+	@ApiModelProperty(name = "currentProcessType", value = "当前处理对象类型(1、行业分中心2、社区3、是街道4、区)")
+	private Integer currentProcessType;
+	/**当前处理机构ID*/
+	@ApiModelProperty(name = "currentOrgId", value = "当前处理机构ID")
+	private String currentOrgId;
+	/**当前机构下处理人ID*/
+	@ApiModelProperty(name = "currentProcessUserId", value = "当前机构下处理人ID")
+	private Long currentProcessUserId;
+	private Long createBy;
+	private Long pageNo;
+	private Long pageSize;
+	@ApiModelProperty("搜索关键字")
+	private String keyword;
+	@ApiModelProperty(value = "查看类型1用户查看自己的调解事件申请2专家查看自己受理的调解事件")
+	private Integer userType;
+	@ApiModelProperty("appId")
+	private String appId;
+	@ApiModelProperty("开始时间")
+	private String startTime;
+	@ApiModelProperty("结束时间")
+	private String endTime;
+	private Integer level;
+	private Long searchId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventRequestImageVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventRequestImageVO.java
new file mode 100644
index 0000000..6ffacc6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventRequestImageVO.java
@@ -0,0 +1,30 @@
+package com.panzhihua.common.model.vos.sanshuo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * Description 三说会堂事件表
+ * ClassName   ComEventVO
+ *
+ * @author manailin
+ * @date 2022-09-07 11:23:51
+ */
+@Data
+@ApiModel(value = "三说会堂事件图片对象")
+public class ComEventRequestImageVO {
+    /**
+     * name
+     */
+    @ApiModelProperty(name = "name", value = "图片name")
+    private String name;
+    /**
+     * 图片大小
+     */
+    @ApiModelProperty(name = "size", value = "图片大小")
+    private String size;
+    @ApiModelProperty(name = "url", value = "图片地址")
+    private String url;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventResourceVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventResourceVO.java
new file mode 100644
index 0000000..1257f1c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventResourceVO.java
@@ -0,0 +1,55 @@
+package com.panzhihua.common.model.vos.sanshuo;
+
+import lombok.Data;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.util.Date;
+
+/**
+ * Description 三说会堂事件关联图片资源表
+ * ClassName   ComEventResourceVO
+ * @author     manailin
+ * @date       2022-09-07 11:23:52
+ */
+@Data
+@ApiModel(value = "三说会堂事件关联图片资源表")
+public class ComEventResourceVO{
+	private static final long serialVersionUID = 1L;
+	/**主键*/
+	@ApiModelProperty(name = "id", value = "主键")
+	private Long id;
+	/**事件关联ID*/
+	@ApiModelProperty(name = "refId", value = "事件关联ID")
+	private Long refId;
+	/**事件流转ID*/
+	@ApiModelProperty(name = "transferId", value = "事件流转ID")
+	private Long transferId;
+	/**1待处理2已受理3专家未受理4调解中5已归档6调解取消*/
+	@ApiModelProperty(name = "status", value = "1待处理2已受理3专家未受理4调解中5已归档6调解取消")
+	private Integer status;
+	/**事件上传的资源类型(1是图片2是音频3是是视频)*/
+	@ApiModelProperty(name = "type", value = "事件上传的资源类型(1是图片2是音频3是是视频)")
+	private Integer type;
+	/**资源名称*/
+	@ApiModelProperty(name = "resourceName", value = "资源名称")
+	private String resourceName;
+	/**资源大小*/
+	@ApiModelProperty(name = "resourceSize", value = "资源大小")
+	private String resourceSize;
+	/**视频或音频时长*/
+	@ApiModelProperty(name = "resourceTime", value = "视频或音频时长")
+	private Integer resourceTime;
+	/**事件上传的资源URL地址*/
+	@ApiModelProperty(name = "url", value = "事件上传的资源URL地址")
+	private String url;
+	/**上传人*/
+	@ApiModelProperty(name = "createBy", value = "上传人")
+	private Long createBy;
+	/**创建时间*/
+	@ApiModelProperty(name = "createAt", value = "创建时间")
+	private Date createAt;
+	/**删除标识(0:未删除,1:已删除)*/
+	@ApiModelProperty(name = "deleteFlag", value = "删除标识(0:未删除,1:已删除)")
+	private Boolean deleteFlag;
+   
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventTransferRecordVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventTransferRecordVO.java
new file mode 100644
index 0000000..7fac7c5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventTransferRecordVO.java
@@ -0,0 +1,94 @@
+package com.panzhihua.common.model.vos.sanshuo;
+
+import lombok.Data;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.util.Date;
+
+/**
+ * Description 三说会堂事件流转表
+ * ClassName   ComEventTransferRecordVO
+ * @author     manailin
+ * @date       2022-09-07 11:23:52
+ */
+@Data
+@ApiModel(value = "三说会堂事件流转表")
+public class ComEventTransferRecordVO{
+	private static final long serialVersionUID = 1L;
+	/**主键*/
+	@ApiModelProperty(name = "id", value = "主键")
+	private Long id;
+	/**事件ID*/
+	@ApiModelProperty(name = "eventId", value = "事件ID")
+	private Long eventId;
+	/**父级流转事件ID*/
+	@ApiModelProperty(name = "parentsTransferEventId", value = "父级流转事件ID")
+	private Long parentsTransferEventId;
+	/**来源类型(1、行业分中心2、社区3、是街道4、区)*/
+	@ApiModelProperty(name = "fromType", value = "来源类型(1、行业分中心2、社区3、是街道4、区)")
+	private Integer fromType;
+	/**(1、行业分中心2、社区3、是街道4、区)ID*/
+	@ApiModelProperty(name = "fromId", value = "(1、行业分中心2、社区3、是街道4、区)ID")
+	private Long fromId;
+	/**(1、行业分中心2、社区3、是街道4、区)名称*/
+	@ApiModelProperty(name = "fromName", value = "(1、行业分中心2、社区3、是街道4、区)名称")
+	private String fromName;
+	/**来源类型操作人ID*/
+	@ApiModelProperty(name = "fromUserId", value = "来源类型操作人ID")
+	private Long fromUserId;
+	/**转交类型(1、行业分中心2、社区3、是街道4、区)*/
+	@ApiModelProperty(name = "toType", value = "转交类型(1、行业分中心2、社区3、是街道4、区)")
+	private Integer toType;
+	/**接收(1、行业分中心2、社区3、是街道4、区)ID*/
+	@ApiModelProperty(name = "toId", value = "接收(1、行业分中心2、社区3、是街道4、区)ID")
+	private Long toId;
+	/**接收(1、行业分中心2、社区3、是街道4、区)名称*/
+	@ApiModelProperty(name = "toName", value = "接收(1、行业分中心2、社区3、是街道4、区)名称")
+	private String toName;
+	/**接收类型操作人ID(直接指派专家)*/
+	@ApiModelProperty(name = "toUserId", value = "接收类型操作人ID(直接指派专家)")
+	private Long toUserId;
+	/**是否已归档*/
+	@ApiModelProperty(name = "save", value = "是否已归档")
+	private Boolean save;
+	/**处理结果内容*/
+	@ApiModelProperty(name = "processResult", value = "处理结果内容")
+	private String processResult;
+	/**处理结果时间*/
+	@ApiModelProperty(name = "processResultData", value = "处理结果时间")
+	private String processResultData;
+	/**处理时间*/
+	@ApiModelProperty(name = "processDate", value = "处理时间")
+	private Date processDate;
+	/**(1、行业分中心2、社区3、是街道4、区)下的处理人ID*/
+	@ApiModelProperty(name = "processBy", value = "(1、行业分中心2、社区3、是街道4、区)下的处理人ID")
+	private Long processBy;
+	/**(1、行业分中心2、社区3、是街道4、区)下的处理人名称*/
+	@ApiModelProperty(name = "processByName", value = "(1、行业分中心2、社区3、是街道4、区)下的处理人名称")
+	private String processByName;
+	/**业务处理类型 1 自处理 2 上报 3 社区标为无效4 撤销 5 重新发布已撤销事件6 重新发布已标为无效的事件*/
+	@ApiModelProperty(name = "processType", value = "业务处理类型 1 自处理 2 上报 3 社区标为无效4 撤销 5 重新发布已撤销事件6 重新发布已标为无效的事件")
+	private Integer processType;
+	/**创建时间*/
+	@ApiModelProperty(name = "createAt", value = "创建时间")
+	private Date createAt;
+	/**选择调解专家ID*/
+	@ApiModelProperty(name = "specialistId", value = "选择调解专家ID")
+	private Long specialistId;
+	/**调解专家所属单位*/
+	@ApiModelProperty(name = "specialistOrg", value = "调解专家所属单位")
+	private String specialistOrg;
+	/**调解专家级别*/
+	@ApiModelProperty(name = "specialistLevel", value = "调解专家级别")
+	private String specialistLevel;
+	/**调解专家名字*/
+	@ApiModelProperty(name = "specialistName", value = "调解专家名字")
+	private String specialistName;
+	/**调解结果(1、调解失败2、调解成功)*/
+	@ApiModelProperty(name = "eventResult", value = "调解结果(1、调解失败2、调解成功)")
+	private Integer eventResult;
+	/**调解状态(1、调解未完成2、调解完成)*/
+	@ApiModelProperty(name = "eventStatus", value = "调解状态(1、调解未完成2、调解完成)")
+	private Integer eventStatus;
+   
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventVO.java
new file mode 100644
index 0000000..475e3ee
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComEventVO.java
@@ -0,0 +1,592 @@
+package com.panzhihua.common.model.vos.sanshuo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import java.util.Date;
+
+/**
+ * Description 三说会堂事件表
+ * ClassName   ComEventVO
+ * @author     manailin
+ * @date       2022-09-07 11:23:51
+ */
+@Data
+@ApiModel(value = "三说会堂事件表")
+public class ComEventVO{
+	private static final long serialVersionUID = 1L;
+	/**主键*/
+	@ApiModelProperty(name = "id", value = "主键")
+	private Long id;
+	/**服务单号(流水号)按照日期时间+数字*/
+	@ApiModelProperty(name = "orderSn", value = "服务单号(流水号)按照日期时间+数字")
+	private String orderSn;
+	/**调解发起人ID*/
+	@ApiModelProperty(name = "requestUserId", value = "调解发起人ID")
+	private Long requestUserId;
+	/**调解发起人操作事件状态(1草稿箱2发布3逻辑删除4、撤销)*/
+	@ApiModelProperty(name = "userEventStatus", value = "调解发起人操作事件状态(1草稿箱2发布3逻辑删除4、撤销)")
+	private Integer userEventStatus;
+	/**调解发起人诉求事件描述*/
+	@ApiModelProperty(name = "requestUserEventDes", value = "调解发起人诉求事件描述")
+	private String requestUserEventDes;
+	/**调解发起人姓名*/
+	@ApiModelProperty(name = "requestUserName", value = "调解发起人姓名")
+	private String requestUserName;
+	/**调解发起人电话*/
+	@ApiModelProperty(name = "requestUserTel", value = "调解发起人电话")
+	private String requestUserTel;
+	/**调解事件类型*/
+	@ApiModelProperty(name = "eventCategory", value = "调解事件类型")
+	private Long eventCategory;
+	/**调解类型(1、行业分中心调解2、村社区调解3、是街道调解4、区)*/
+	@ApiModelProperty(name = "type", value = "调解类型(1、行业分中心调解2、村社区调解3、是街道调解4、区)")
+	private String type;
+	/**上报提交时间*/
+	@ApiModelProperty(name = "submitDate", value = "上报提交时间")
+	private Date submitDate;
+	/**选择预约调解时间*/
+	@ApiModelProperty(name = "appointmentTime", value = "选择预约调解时间")
+	private Date appointmentTime;
+	/**申请人选择的社区ID*/
+	@ApiModelProperty(name = "requestUserCommunity", value = "申请人选择的社区ID")
+	private Long requestUserCommunity;
+	/**行业分中心ID*/
+	@ApiModelProperty(name = "centerId", value = "行业分中心ID")
+	private String centerId;
+	/**行业分中心调解室电话*/
+	@ApiModelProperty(name = "centerTel", value = "行业分中心调解室电话")
+	private String centerTel;
+	/**调解专家所属单位*/
+	@ApiModelProperty(name = "specialistOrg", value = "调解专家所属单位")
+	private String specialistOrg;
+	/**调解专家级别*/
+	@ApiModelProperty(name = "specialistLevel", value = "调解专家级别")
+	private String specialistLevel;
+	/**选择调解专家ID*/
+	@ApiModelProperty(name = "specialistId", value = "选择调解专家ID")
+	private Long specialistId;
+	/**调解专家名字*/
+	@ApiModelProperty(name = "specialistName", value = "调解专家名字")
+	private String specialistName;
+	/**调解专家联系方式*/
+	@ApiModelProperty(name = "specialistTel", value = "调解专家联系方式")
+	private String specialistTel;
+	/**专家受理时间*/
+	@ApiModelProperty(name = "specialistAcceptTime", value = "专家受理时间")
+	private Date specialistAcceptTime;
+	/**撤销类型 1 用户 2 社区3、街道4、行业分中心*/
+	@ApiModelProperty(name = "revokeType", value = "撤销类型 1 用户 2 社区3、街道4、行业分中心")
+	private Integer revokeType;
+	/**工作人员的事件处理状态1待处理2待验证3专家已受理4专家未受理,拒绝5调解中6已结案归档7调解取消*/
+	@ApiModelProperty(name = "eventProcessStatus", value = "工作人员的事件处理状态1待处理2待验证3专家已受理4专家未受理,拒绝5调解中6已结案7已归档8调解取消9已删除")
+	private Integer eventProcessStatus;
+	/**当前处理对象类型(1、行业分中心2、社区3、是街道4、区)*/
+	@ApiModelProperty(name = "currentProcessType", value = "当前处理对象类型(1、行业分中心2、社区3、是街道4、区)")
+	private Integer currentProcessType;
+	/**当前处理机构ID*/
+	@ApiModelProperty(name = "currentOrgId", value = "当前处理机构ID")
+	private String currentOrgId;
+	/**当前机构下处理人ID*/
+	@ApiModelProperty(name = "currentProcessUserId", value = "当前机构下处理人ID")
+	private Long currentProcessUserId;
+	/**当前机构下处理人名称*/
+	@ApiModelProperty(name = "currentProcessUserName", value = "当前机构下处理人名称")
+	private String currentProcessUserName;
+	/**当前调解处理结果*/
+	@ApiModelProperty(name = "currentEventProcessResult", value = "当前调解处理结果")
+	private String currentEventProcessResult;
+	/**调解是否成果1未成果2已成果*/
+	@ApiModelProperty(name = "eventSucceed", value = "调解是否成果1未成果2已成果")
+	private Integer eventSucceed;
+
+	/**撤销描述*/
+	@ApiModelProperty(name = "revokeDes", value = "撤销描述")
+	private String revokeDes;
+	/**事件结果(1、调解失败2、调解成功)*/
+	@ApiModelProperty(name = "eventResult", value = "事件结果(1、调解失败2、调解成功)")
+	private Integer eventResult;
+	/**当前处理人是否上报上级单位处理*/
+	@ApiModelProperty(name = "reportSuperior", value = "当前处理人是否上报上级单位处理")
+	private Boolean reportSuperior;
+	/**归档结案报告*/
+	@ApiModelProperty(name = "result", value = "归档结案报告")
+	private String result;
+	/**已归档处理完毕时间*/
+	@ApiModelProperty(name = "resultDate", value = "已归档处理完毕时间")
+	private Date resultDate;
+	/**是否紧急*/
+	@ApiModelProperty(name = "urgent", value = "是否紧急")
+	private Boolean urgent;
+	/**是否疑难事件*/
+	@ApiModelProperty(name = "difficult", value = "是否疑难事件")
+	private Boolean difficult;
+	/**是否催办*/
+	@ApiModelProperty(name = "urgentDell", value = "是否催办")
+	private Boolean urgentDell;
+	/**是否有效*/
+	@ApiModelProperty(name = "invalid", value = "是否有效")
+	private Boolean invalid;
+	/**是否重大*/
+	@ApiModelProperty(name = "major", value = "是否重大")
+	private Boolean major;
+	/**解决人针对解决事件的处理反馈描述*/
+	@ApiModelProperty(name = "requestUserResponse", value = "解决人针对解决事件的处理反馈描述")
+	private String requestUserResponse;
+	/**创建人*/
+	@ApiModelProperty(name = "createBy", value = "创建人")
+	private Long createBy;
+	/**创建时间*/
+	@ApiModelProperty(name = "createAt", value = "创建时间")
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date createAt;
+	/**修改人*/
+	@ApiModelProperty(name = "updateBy", value = "修改人")
+	private Long updateBy;
+	/**修改时间*/
+	@ApiModelProperty(name = "updateAt", value = "修改时间")
+	private Date updateAt;
+
+	private Long pageNo;
+	private Long pageSize;
+	private String keyword;
+	@ApiModelProperty(value = "查看类型1用户查看自己的调解事件申请2专家查看自己受理的调解事件,3后台查看")
+	private Integer userType;
+	private Integer usertype;
+	private String appId;
+	@ApiModelProperty("开始时间")
+	private String startTime;
+	@ApiModelProperty("结束时间")
+	private String endTime;
+	private Integer level;
+	private Long searchId;
+
+	public String getStartTime() {
+		return startTime;
+	}
+
+	public void setStartTime(String startTime) {
+		this.startTime = startTime;
+	}
+
+	public String getEndTime() {
+		return endTime;
+	}
+
+	public void setEndTime(String endTime) {
+		this.endTime = endTime;
+	}
+
+	public Integer getLevel() {
+		return level;
+	}
+
+	public void setLevel(Integer level) {
+		this.level = level;
+	}
+
+	public Long getSearchId() {
+		return searchId;
+	}
+
+	public void setSearchId(Long searchId) {
+		this.searchId = searchId;
+	}
+
+	public String getAppId() {
+		return appId;
+	}
+
+	public void setAppId(String appId) {
+		this.appId = appId;
+	}
+
+	public static long getSerialVersionUID() {
+		return serialVersionUID;
+	}
+
+	public Long getId() {
+		return id;
+	}
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public String getOrderSn() {
+		return orderSn;
+	}
+
+	public void setOrderSn(String orderSn) {
+		this.orderSn = orderSn;
+	}
+
+	public Long getRequestUserId() {
+		return requestUserId;
+	}
+
+	public void setRequestUserId(Long requestUserId) {
+		this.requestUserId = requestUserId;
+	}
+
+	public Integer getUserEventStatus() {
+		return userEventStatus;
+	}
+
+	public void setUserEventStatus(Integer userEventStatus) {
+		this.userEventStatus = userEventStatus;
+	}
+
+	public String getRequestUserEventDes() {
+		return requestUserEventDes;
+	}
+
+	public void setRequestUserEventDes(String requestUserEventDes) {
+		this.requestUserEventDes = requestUserEventDes;
+	}
+
+	public String getRequestUserName() {
+		return requestUserName;
+	}
+
+	public void setRequestUserName(String requestUserName) {
+		this.requestUserName = requestUserName;
+	}
+
+	public String getRequestUserTel() {
+		return requestUserTel;
+	}
+
+	public void setRequestUserTel(String requestUserTel) {
+		this.requestUserTel = requestUserTel;
+	}
+
+	public Long getEventCategory() {
+		return eventCategory;
+	}
+
+	public void setEventCategory(Long eventCategory) {
+		this.eventCategory = eventCategory;
+	}
+
+	public String getType() {
+		return type;
+	}
+
+	public void setType(String type) {
+		this.type = type;
+	}
+
+	public Date getSubmitDate() {
+		return submitDate;
+	}
+
+	public void setSubmitDate(Date submitDate) {
+		this.submitDate = submitDate;
+	}
+
+	public Date getAppointmentTime() {
+		return appointmentTime;
+	}
+
+	public void setAppointmentTime(Date appointmentTime) {
+		this.appointmentTime = appointmentTime;
+	}
+
+	public Long getRequestUserCommunity() {
+		return requestUserCommunity;
+	}
+
+	public void setRequestUserCommunity(Long requestUserCommunity) {
+		this.requestUserCommunity = requestUserCommunity;
+	}
+
+	public String getCenterId() {
+		return centerId;
+	}
+
+	public void setCenterId(String centerId) {
+		this.centerId = centerId;
+	}
+
+	public String getCenterTel() {
+		return centerTel;
+	}
+
+	public void setCenterTel(String centerTel) {
+		this.centerTel = centerTel;
+	}
+
+	public String getSpecialistOrg() {
+		return specialistOrg;
+	}
+
+	public void setSpecialistOrg(String specialistOrg) {
+		this.specialistOrg = specialistOrg;
+	}
+
+	public String getSpecialistLevel() {
+		return specialistLevel;
+	}
+
+	public void setSpecialistLevel(String specialistLevel) {
+		this.specialistLevel = specialistLevel;
+	}
+
+	public Long getSpecialistId() {
+		return specialistId;
+	}
+
+	public void setSpecialistId(Long specialistId) {
+		this.specialistId = specialistId;
+	}
+
+	public String getSpecialistName() {
+		return specialistName;
+	}
+
+	public void setSpecialistName(String specialistName) {
+		this.specialistName = specialistName;
+	}
+
+	public String getSpecialistTel() {
+		return specialistTel;
+	}
+
+	public void setSpecialistTel(String specialistTel) {
+		this.specialistTel = specialistTel;
+	}
+
+	public Date getSpecialistAcceptTime() {
+		return specialistAcceptTime;
+	}
+
+	public void setSpecialistAcceptTime(Date specialistAcceptTime) {
+		this.specialistAcceptTime = specialistAcceptTime;
+	}
+
+	public Integer getRevokeType() {
+		return revokeType;
+	}
+
+	public void setRevokeType(Integer revokeType) {
+		this.revokeType = revokeType;
+	}
+
+	public Integer getEventProcessStatus() {
+		return eventProcessStatus;
+	}
+
+	public void setEventProcessStatus(Integer eventProcessStatus) {
+		this.eventProcessStatus = eventProcessStatus;
+	}
+
+	public Integer getCurrentProcessType() {
+		return currentProcessType;
+	}
+
+	public void setCurrentProcessType(Integer currentProcessType) {
+		this.currentProcessType = currentProcessType;
+	}
+
+	public String getCurrentOrgId() {
+		return currentOrgId;
+	}
+
+	public void setCurrentOrgId(String currentOrgId) {
+		this.currentOrgId = currentOrgId;
+	}
+
+	public Long getCurrentProcessUserId() {
+		return currentProcessUserId;
+	}
+
+	public void setCurrentProcessUserId(Long currentProcessUserId) {
+		this.currentProcessUserId = currentProcessUserId;
+	}
+
+	public String getCurrentProcessUserName() {
+		return currentProcessUserName;
+	}
+
+	public void setCurrentProcessUserName(String currentProcessUserName) {
+		this.currentProcessUserName = currentProcessUserName;
+	}
+
+	public String getCurrentEventProcessResult() {
+		return currentEventProcessResult;
+	}
+
+	public void setCurrentEventProcessResult(String currentEventProcessResult) {
+		this.currentEventProcessResult = currentEventProcessResult;
+	}
+
+	public Integer getEventSucceed() {
+		return eventSucceed;
+	}
+
+	public void setEventSucceed(Integer eventSucceed) {
+		this.eventSucceed = eventSucceed;
+	}
+
+	public String getRevokeDes() {
+		return revokeDes;
+	}
+
+	public void setRevokeDes(String revokeDes) {
+		this.revokeDes = revokeDes;
+	}
+
+	public Integer getEventResult() {
+		return eventResult;
+	}
+
+	public void setEventResult(Integer eventResult) {
+		this.eventResult = eventResult;
+	}
+
+	public Boolean getReportSuperior() {
+		return reportSuperior;
+	}
+
+	public void setReportSuperior(Boolean reportSuperior) {
+		this.reportSuperior = reportSuperior;
+	}
+
+	public String getResult() {
+		return result;
+	}
+
+	public void setResult(String result) {
+		this.result = result;
+	}
+
+	public Date getResultDate() {
+		return resultDate;
+	}
+
+	public void setResultDate(Date resultDate) {
+		this.resultDate = resultDate;
+	}
+
+	public Boolean getUrgent() {
+		return urgent;
+	}
+
+	public void setUrgent(Boolean urgent) {
+		this.urgent = urgent;
+	}
+
+	public Boolean getDifficult() {
+		return difficult;
+	}
+
+	public void setDifficult(Boolean difficult) {
+		this.difficult = difficult;
+	}
+
+	public Boolean getUrgentDell() {
+		return urgentDell;
+	}
+
+	public void setUrgentDell(Boolean urgentDell) {
+		this.urgentDell = urgentDell;
+	}
+
+	public Boolean getInvalid() {
+		return invalid;
+	}
+
+	public void setInvalid(Boolean invalid) {
+		this.invalid = invalid;
+	}
+
+	public Boolean getMajor() {
+		return major;
+	}
+
+	public void setMajor(Boolean major) {
+		this.major = major;
+	}
+
+	public String getRequestUserResponse() {
+		return requestUserResponse;
+	}
+
+	public void setRequestUserResponse(String requestUserResponse) {
+		this.requestUserResponse = requestUserResponse;
+	}
+
+	public Long getCreateBy() {
+		return createBy;
+	}
+
+	public void setCreateBy(Long createBy) {
+		this.createBy = createBy;
+	}
+
+	public Date getCreateAt() {
+		return createAt;
+	}
+
+	public void setCreateAt(Date createAt) {
+		this.createAt = createAt;
+	}
+
+	public Long getUpdateBy() {
+		return updateBy;
+	}
+
+	public void setUpdateBy(Long updateBy) {
+		this.updateBy = updateBy;
+	}
+
+	public Date getUpdateAt() {
+		return updateAt;
+	}
+
+	public void setUpdateAt(Date updateAt) {
+		this.updateAt = updateAt;
+	}
+
+	public Long getPageNo() {
+		return pageNo;
+	}
+
+	public void setPageNo(Long pageNo) {
+		this.pageNo = pageNo;
+	}
+
+	public Long getPageSize() {
+		return pageSize;
+	}
+
+	public void setPageSize(Long pageSize) {
+		this.pageSize = pageSize;
+	}
+
+	public String getKeyword() {
+		return keyword;
+	}
+
+	public void setKeyword(String keyword) {
+		this.keyword = keyword;
+	}
+
+	public Integer getUserType() {
+		return userType;
+	}
+
+	public void setUserType(Integer userType) {
+		this.userType = userType;
+	}
+
+	public Integer getUsertype() {
+		return usertype;
+	}
+
+	public void setUsertype(Integer usertype) {
+		this.usertype = usertype;
+	}
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComMediaTypeVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComMediaTypeVO.java
new file mode 100644
index 0000000..8d1e356
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComMediaTypeVO.java
@@ -0,0 +1,97 @@
+package com.panzhihua.common.model.vos.sanshuo;
+
+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.util.Date;
+@Data
+@ApiModel("创建事件类型")
+public class ComMediaTypeVO {
+    /**
+     * 主键
+     */
+    @ApiModelProperty("id,修改时传")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 类型名称
+     */
+    @ApiModelProperty("类型名称")
+    private String name;
+
+    /**
+     * code码
+     */
+    @ApiModelProperty("code码")
+    private String key;
+
+    /**
+     * 父id((根节点为0))
+     */
+    @ApiModelProperty("父id((根节点为0))")
+    private Long parentId;
+
+    /**
+     * 路径(格式 : `pid1`pid2`id` )
+     */
+    @ApiModelProperty("路径(格式 : `pid1`pid2`id` )")
+    private String pathId;
+
+    /**
+     * 所在层级
+     */
+    @ApiModelProperty("所在层级")
+    private Integer levelIndex;
+
+    /**
+     * 排序
+     */
+    @ApiModelProperty("排序")
+    private Integer sort;
+
+    /**
+     * 启用状态(0:停用,1:启用)
+     */
+    @ApiModelProperty("启用状态(0:停用,1:启用)")
+    private Boolean enabled;
+
+    /**
+     * 备注说明
+     */
+    @ApiModelProperty("备注说明")
+    private String remarks;
+
+    /**
+     * 创建者
+     */
+    @ApiModelProperty("创建者")
+    private Long createUser;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    private Date createDate;
+
+    /**
+     * 修改者
+     */
+    @ApiModelProperty("修改者")
+    private Long modifyUser;
+
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty("修改时间")
+    private Date modifyDate;
+
+    /**
+     * 删除标识(0:未删除,1:已删除)
+     */
+    @ApiModelProperty("0:未删除,1:已删除")
+    private Boolean deleteFlag;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComSanRequestVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComSanRequestVO.java
new file mode 100644
index 0000000..b756df6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComSanRequestVO.java
@@ -0,0 +1,47 @@
+package com.panzhihua.common.model.vos.sanshuo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.hibernate.validator.constraints.Length;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * Description 三说会堂事件表
+ * ClassName   ComEventRequestVO
+ * @author     manailin
+ * @date       2022-09-07 11:23:51
+ */
+@Data
+@ApiModel(value = "新增三说会堂事件表")
+public class ComSanRequestVO {
+
+	/**调解发起人诉求事件描述*/
+	@ApiModelProperty(name = "requestUserEventDes", value = "调解发起人诉求事件描述")
+	@Length(max = 1000)
+	private String requestUserEventDes;
+	/**调解事件类型*/
+	@ApiModelProperty(name = "eventCategory", value = "调解事件类型")
+	private Long eventCategory;
+	/**调解类型(1、行业分中心调解2、村社区调解3、是街道调解4、区)*/
+	@ApiModelProperty(name = "type", value = "调解类型(1、行业分中心调解2、村社区调解3、是街道调解4、区)")
+	private String type;
+	/**选择预约调解时间*/
+	@ApiModelProperty(name = "appointmentTime", value = "选择预约调解时间")
+	private Date appointmentTime;
+	/**申请人选择的社区ID*/
+	@ApiModelProperty(name = "requestUserCommunity", value = "申请人选择的社区ID")
+	private Long requestUserCommunity;
+	/**行业分中心ID*/
+	@ApiModelProperty(name = "centerId", value = "行业分中心ID")
+	private String centerId;
+	/**选择调解专家ID*/
+	@ApiModelProperty(name = "specialistId", value = "选择调解专家ID")
+	private Long specialistId;
+	/**调解上传图片地址列表,逗号进行分割*/
+	@ApiModelProperty(name = "images", value = "调解上传图片地址列表,逗号进行分割")
+	private List<ComEventRequestImageVO> images;
+	private String appId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComSanShuoEventVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComSanShuoEventVO.java
new file mode 100644
index 0000000..3ac2fc4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComSanShuoEventVO.java
@@ -0,0 +1,56 @@
+package com.panzhihua.common.model.vos.sanshuo;
+
+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.math.BigDecimal;
+import java.util.Date;
+@Data
+@ApiModel("事件类型")
+public class ComSanShuoEventVO {
+    /**
+     * id
+     */
+    @ApiModelProperty("id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Integer id;
+
+    /**
+     * 事件类型名称
+     */
+    @ApiModelProperty("事件类型名称")
+    private String name;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty("修改时间")
+    private Date updateTime;
+
+    /**
+     * 0禁用1启用
+     */
+    @ApiModelProperty("0禁用1启用")
+    private Integer status;
+
+    /**
+     * 0删除1正常
+     */
+    @ApiModelProperty("0删除1正常")
+    private Integer delFlag;
+
+    @ApiModelProperty("调解成功次数")
+    private Integer success;
+
+    @ApiModelProperty("调解成功率")
+    private BigDecimal rate;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComSanShuoIndustryCenterVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComSanShuoIndustryCenterVO.java
new file mode 100644
index 0000000..802af79
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComSanShuoIndustryCenterVO.java
@@ -0,0 +1,80 @@
+package com.panzhihua.common.model.vos.sanshuo;
+
+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.util.Date;
+
+@Data
+@ApiModel("业务中心")
+public class ComSanShuoIndustryCenterVO {
+    /**
+     * id
+     */
+    @ApiModelProperty("id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Integer id;
+
+    /**
+     * 行业分中心名称
+     */
+    @ApiModelProperty("行业分中心名称")
+    private String name;
+
+    /**
+     * 调解室电话
+     */
+    @ApiModelProperty("调解室电话")
+    private String phone;
+
+    /**
+     * 登录账号
+     */
+    @ApiModelProperty("登录账号")
+    private String account;
+
+    /**
+     * 创建人
+     */
+    @ApiModelProperty("创建人")
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty("修改时间")
+    private Date updateTime;
+
+    /**
+     * 状态0禁用1启用
+     */
+    @ApiModelProperty("状态0禁用1启用")
+    private Integer status;
+
+    /**
+     * 0删除1正常
+     */
+    @ApiModelProperty("0删除1正常")
+    private Integer delFlag;
+
+    /**
+     * 所属街道id
+     */
+    @ApiModelProperty("所属街道id")
+    private Long streetId;
+
+    /**
+     * 所属社区id
+     */
+    @ApiModelProperty("所属社区id")
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComSanshuoExpertVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComSanshuoExpertVO.java
new file mode 100644
index 0000000..809786a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ComSanshuoExpertVO.java
@@ -0,0 +1,149 @@
+package com.panzhihua.common.model.vos.sanshuo;
+
+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.math.BigDecimal;
+import java.util.Date;
+
+@Data
+@ApiModel("专家列表返回列")
+public class ComSanshuoExpertVO {
+    /**
+     * id
+     */
+    @ApiModelProperty("id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 专家级别(1三说会堂2行业分中心3街道4社区)
+     */
+    @ApiModelProperty("专家级别(1三说会堂2行业分中心3街道4社区)")
+    private Integer level;
+
+    /**
+     * 所属社区id
+     */
+    @ApiModelProperty("所属社区id")
+    private Long communityId;
+
+    /**
+     * 工作时间
+     */
+    @ApiModelProperty("工作时间")
+    private String workTime;
+
+    /**
+     * 擅长解决时间类型
+     */
+    @ApiModelProperty("擅长解决时间类型,多类型已,隔开")
+    private String goodAt;
+
+    /**
+     * 姓名
+     */
+    @ApiModelProperty("姓名")
+    private String name;
+
+    /**
+     * 头像
+     */
+    @ApiModelProperty("头像")
+    private String avatar;
+
+    /**
+     * 手机号
+     */
+    @ApiModelProperty("手机号")
+    private String phone;
+
+    /**
+     * 登陆账号
+     */
+    @ApiModelProperty("登陆账号")
+    private String account;
+
+    /**
+     * 登陆密码
+     */
+    @ApiModelProperty("登陆密码")
+    private String password;
+
+    /**
+     * 0禁用1启用
+     */
+    @ApiModelProperty("0禁用1启用默认1")
+    private Integer status;
+
+    /**
+     * 删除状态0已删除1正常
+     */
+    @ApiModelProperty("删除状态0已删除1正常默认1")
+    private Integer delFlag;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+
+    /**
+     * 创建人
+     */
+    @ApiModelProperty("创建人")
+    private String createBy;
+
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty("修改时间")
+    private Date updateTime;
+
+    /**
+     * 介绍信息
+     */
+    @ApiModelProperty("介绍信息")
+    private String introduction;
+
+    /**
+     * 所属街道id
+     */
+    @ApiModelProperty("所属街道id")
+    private Long streetId;
+
+    /**
+     * 行业分中心id
+     */
+    @ApiModelProperty("行业分中心id")
+    private String industryCenterId;
+
+    /**
+     * 备用字段1
+     */
+    private String param1;
+
+    /**
+     * 所属单位
+     */
+    @ApiModelProperty("所属单位")
+    private String unit;
+
+    @ApiModelProperty("办结事项")
+    private String solveEvents;
+
+    @ApiModelProperty("调解次数")
+    private Integer count;
+
+    @ApiModelProperty("调解成功率")
+    private BigDecimal rate;
+    @ApiModelProperty("调解成功次数")
+    private Integer successCount;
+
+
+}
+
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/EventRateVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/EventRateVO.java
new file mode 100644
index 0000000..4fd2a00
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/EventRateVO.java
@@ -0,0 +1,20 @@
+package com.panzhihua.common.model.vos.sanshuo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ApiModel("事件级别占比统计")
+public class EventRateVO {
+    @ApiModelProperty("级别")
+    private String name;
+    @ApiModelProperty("占比")
+    private BigDecimal rate;
+    @ApiModelProperty("数量")
+    private Integer count;
+    private Integer currentProcessType;
+    private Integer type;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ExpertRangeVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ExpertRangeVO.java
new file mode 100644
index 0000000..a5cbb5e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ExpertRangeVO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.vos.sanshuo;
+
+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 org.apache.poi.ss.formula.functions.T;
+
+import java.util.List;
+import java.util.Map;
+
+@Data
+@ApiModel("当前账号可选择添加专家范围")
+public class ExpertRangeVO {
+    @ApiModelProperty("级别")
+    private Integer level;
+    @ApiModelProperty("单位id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+    @ApiModelProperty("单位名称")
+    private String name;
+    @ApiModelProperty("单位列表")
+    private List<ExpertRangeVO>  childList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ExpertShowVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ExpertShowVO.java
new file mode 100644
index 0000000..cafdcf6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/ExpertShowVO.java
@@ -0,0 +1,29 @@
+package com.panzhihua.common.model.vos.sanshuo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+@ApiModel("专家风采列表")
+public class ExpertShowVO {
+
+    @ApiModelProperty("级别1三说会堂2行业分中心3街道4社区")
+    private Integer level;
+
+    @ApiModelProperty("名称")
+    private String name;
+
+    @ApiModelProperty("专家数量")
+    private Integer count;
+
+    @ApiModelProperty("对应的行业分中心或街道/社区id")
+    private Long id;
+
+    @ApiModelProperty("子列表")
+    List<ExpertShowVO> childList;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/IndexDateVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/IndexDateVO.java
new file mode 100644
index 0000000..c9ac3f5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/IndexDateVO.java
@@ -0,0 +1,41 @@
+package com.panzhihua.common.model.vos.sanshuo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+@ApiModel("大屏事件数据统计(三说会堂,行业分中心,街道,社区)")
+public class IndexDateVO {
+    @ApiModelProperty("受理案件")
+    private Integer accept;
+    @ApiModelProperty("正在调解")
+    private Integer accepting;
+    @ApiModelProperty("经验积累")
+    private Integer expirences;
+    @ApiModelProperty("已完成调解")
+    private Integer accepted;
+    @ApiModelProperty("经验累计")
+    private Integer total;
+    @ApiModelProperty("调解专家")
+    private Integer expert;
+    @ApiModelProperty("调解成功")
+    private Integer success;
+    @ApiModelProperty("调解失败")
+    private Integer fail;
+    @ApiModelProperty("成功率")
+    private BigDecimal successRate;
+    @ApiModelProperty("本月新增")
+    private Integer monthIncrease;
+    @ApiModelProperty("本月办结")
+    private Integer monthFinish;
+    @ApiModelProperty("X轴")
+    private List<String> X;
+    @ApiModelProperty("Y轴:新增案件")
+    private List<Integer> Y1;
+    @ApiModelProperty("Y轴:办结案件")
+    private List<Integer> Y2;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/MediateTypeVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/MediateTypeVO.java
new file mode 100644
index 0000000..6e6887c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/sanshuo/MediateTypeVO.java
@@ -0,0 +1,18 @@
+package com.panzhihua.common.model.vos.sanshuo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ApiModel("事件类型统计")
+public class MediateTypeVO {
+    @ApiModelProperty("事件类型")
+    private String name;
+    @ApiModelProperty("数量")
+    private Integer count;
+    @ApiModelProperty("占比")
+    private BigDecimal rate;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ActWorkCountVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ActWorkCountVO.java
new file mode 100644
index 0000000..1cd968e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ActWorkCountVO.java
@@ -0,0 +1,20 @@
+package com.panzhihua.common.model.vos.screen;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author xyh
+ * @date 2021/6/16 18:03
+ */
+@ApiModel("工作情况汇报详细")
+@Data
+public class ActWorkCountVO {
+
+    @ApiModelProperty("名称")
+    private String name;
+
+    @ApiModelProperty("数量")
+    private Integer num;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/CarouselInfoVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/CarouselInfoVO.java
new file mode 100644
index 0000000..1da2fa9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/CarouselInfoVO.java
@@ -0,0 +1,26 @@
+package com.panzhihua.common.model.vos.screen;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author xyh
+ * @date 2021/6/16 10:17
+ */
+@ApiModel("轮播信息")
+@Data
+public class CarouselInfoVO implements Serializable {
+
+    private static final long serialVersionUID = -2716493758092750696L;
+
+    @ApiModelProperty(value = "id")
+    private Long id;
+    @ApiModelProperty(value = "类型名称")
+    private String typeName;
+    @ApiModelProperty(value = "内容")
+    private String content;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActActivityScreenVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActActivityScreenVO.java
new file mode 100644
index 0000000..8a527a5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActActivityScreenVO.java
@@ -0,0 +1,44 @@
+package com.panzhihua.common.model.vos.screen;
+
+import java.io.Serializable;
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author xyh
+ * @date 2021/6/16 11:01
+ */
+@ApiModel("大屏-人口-社区活动")
+@Data
+public class ComActActivityScreenVO implements Serializable {
+
+    private static final long serialVersionUID = 8892577774827785315L;
+
+    @ApiModelProperty("微心愿轮播图")
+    private List<String> imgs;
+
+    @ApiModelProperty("总共发起")
+    private Long totalNum;
+
+    @ApiModelProperty(value = "本月新增")
+    private Long currentNum;
+
+    @ApiModelProperty(value = "居民活动")
+    private Long commonNum;
+
+    @ApiModelProperty(value = "居民活动参与人数")
+    private Long commonPeopleNum;
+
+    @ApiModelProperty(value = "志愿者活动")
+    private Long volunteerNum;
+
+    @ApiModelProperty(value = "志愿者活动参与人数")
+    private Long volunteerPeopleNum;
+
+    @ApiModelProperty("活动轮播列表")
+    private List<CarouselInfoVO> list;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActDiscussScreenVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActDiscussScreenVO.java
new file mode 100644
index 0000000..026dd39
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActDiscussScreenVO.java
@@ -0,0 +1,38 @@
+package com.panzhihua.common.model.vos.screen;
+
+import java.io.Serializable;
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author xyh
+ * @date 2021/6/16 13:16
+ */
+@ApiModel("大屏-人口-一起议")
+@Data
+public class ComActDiscussScreenVO implements Serializable {
+
+    @ApiModelProperty("总共发起")
+    private Long totalNum;
+
+    @ApiModelProperty("本月新增")
+    private Long currentNum;
+
+    @ApiModelProperty("图文")
+    private Long imgNum;
+
+    @ApiModelProperty("图文参与人数")
+    private Long imgPeopleNum;
+
+    @ApiModelProperty("投票")
+    private Long voteNum;
+
+    @ApiModelProperty("投票参与人数")
+    private Long votePeopleNum;
+
+    @ApiModelProperty("一起议轮播列表")
+    private List<CarouselInfoVO> list;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActEasyPhotoScreenVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActEasyPhotoScreenVO.java
new file mode 100644
index 0000000..07b9397
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActEasyPhotoScreenVO.java
@@ -0,0 +1,42 @@
+package com.panzhihua.common.model.vos.screen;
+
+import java.io.Serializable;
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author xyh
+ * @date 2021/6/16 16:05
+ */
+@ApiModel("大屏-人口-随手拍")
+@Data
+public class ComActEasyPhotoScreenVO implements Serializable {
+
+    @ApiModelProperty("本月新增")
+    private Long currentNum;
+
+    @ApiModelProperty("已处理随手拍")
+    private List<EastPhotoTypeVO> deal;
+
+    @ApiModelProperty("已公示随手拍")
+    private List<EastPhotoTypeVO> pub;
+
+    @ApiModelProperty("已审核随手拍")
+    private List<EastPhotoTypeVO> approved;
+
+    @ApiModelProperty("未处理")
+    private Long noneDeal;
+
+    @ApiModelProperty("公示比例")
+    private Integer pubPoint;
+
+    @ApiModelProperty("平均耗时")
+    private Integer dealTime;
+
+    @ApiModelProperty("随手拍线形列表")
+    private List<EastPhotoVO> list;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActMicroWishScreenVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActMicroWishScreenVO.java
new file mode 100644
index 0000000..e0fa034
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActMicroWishScreenVO.java
@@ -0,0 +1,29 @@
+package com.panzhihua.common.model.vos.screen;
+
+import java.io.Serializable;
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author xyh
+ * @date 2021/6/16 10:14
+ */
+@ApiModel("大屏-工作-心愿单")
+@Data
+public class ComActMicroWishScreenVO implements Serializable {
+
+    @ApiModelProperty("微心愿轮播图")
+    private List<String> imgs;
+
+    @ApiModelProperty(value = "本月新增")
+    private Long currentNum;
+
+    @ApiModelProperty(value = "等待实现")
+    private Long willNum;
+
+    @ApiModelProperty(value = "累计实现")
+    private Long completedNum;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActNeighborCircleScreenVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActNeighborCircleScreenVO.java
new file mode 100644
index 0000000..6352025
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActNeighborCircleScreenVO.java
@@ -0,0 +1,41 @@
+package com.panzhihua.common.model.vos.screen;
+
+import java.io.Serializable;
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author xyh
+ * @date 2021/6/15 14:36
+ */
+@Data
+@ApiModel("大屏-工作-邻里圈")
+public class ComActNeighborCircleScreenVO implements Serializable {
+
+    private static final long serialVersionUID = 8407169650740659312L;
+
+    @ApiModelProperty(value = "邻里圈图片轮播")
+    private List<String> imgs;
+
+    @ApiModelProperty(value = "邻里圈轮播列表")
+    private List<CarouselInfoVO> list;
+
+    @ApiModelProperty(value = "本月新增")
+    private Long currentNum;
+
+    @ApiModelProperty(value = "总发表")
+    private Long totalNum;
+
+    @ApiModelProperty(value = "点赞量")
+    private Long fabulousNum;
+
+    @ApiModelProperty(value = "评论量")
+    private Long commentNum;
+
+    @ApiModelProperty(value = "分享量")
+    private Long sharedNum;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActPopulationCultureVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActPopulationCultureVO.java
new file mode 100644
index 0000000..3611559
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActPopulationCultureVO.java
@@ -0,0 +1,23 @@
+package com.panzhihua.common.model.vos.screen;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author xyh
+ * @date 2021/6/15 14:36
+ */
+@Data
+@ApiModel("实有人口文化程度统计")
+public class ComActPopulationCultureVO implements Serializable {
+
+    @ApiModelProperty(value = "文化程度")
+    private String level;
+
+    @ApiModelProperty(value = "人口数")
+    private Long num;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActPopulationScreenVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActPopulationScreenVO.java
new file mode 100644
index 0000000..299ba89
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActPopulationScreenVO.java
@@ -0,0 +1,58 @@
+package com.panzhihua.common.model.vos.screen;
+
+import java.io.Serializable;
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.screen.civil.CivilVillageStatisticsVO;
+import com.panzhihua.common.model.vos.community.screen.event.EventGridStatisticsVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author xyh
+ * @date 2021/6/15 14:36
+ */
+@Data
+@ApiModel("大屏-人口")
+public class ComActPopulationScreenVO implements Serializable {
+
+    @ApiModelProperty(value = "总人口数")
+    private Long totalNum;
+
+    @ApiModelProperty(value = "户籍人口数")
+    private Long localNum;
+
+    @ApiModelProperty(value = "流动人口数")
+    private Long outNum;
+
+    @ApiModelProperty(value = "特殊人口数")
+    private Long specialNum;
+
+    @ApiModelProperty(value = "已使用社区同人口数")
+    private Long usedCommunityNum;
+
+    @ApiModelProperty(value = "男性数量")
+    private Long manNum;
+    @ApiModelProperty(value = "男性占比")
+    private Integer manPoint;
+
+    @ApiModelProperty(value = "女性数量")
+    private Long woman;
+    @ApiModelProperty(value = "女性占比")
+    private Integer womanPoint;
+
+    @ApiModelProperty("实有人口年龄结构")
+    private List<ComMngPopulationAgeVO> ageGroup;
+
+    @ApiModelProperty("实有人口文化程度统计")
+    private List<ComActPopulationCultureVO> cultureGroup;
+
+    @ApiModelProperty("大屏网格数据")
+    private List<EventGridStatisticsVO> gridStatisticsList;
+
+    @ApiModelProperty("小区列表数据")
+    private List<CivilVillageStatisticsVO> villageStatisticsList;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActWorkScreenVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActWorkScreenVO.java
new file mode 100644
index 0000000..e42a128
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComActWorkScreenVO.java
@@ -0,0 +1,38 @@
+package com.panzhihua.common.model.vos.screen;
+
+import java.io.Serializable;
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author xyh
+ * @date 2021/6/16 18:00
+ */
+@ApiModel("大屏-工作-工作情况汇报")
+@Data
+public class ComActWorkScreenVO implements Serializable {
+
+    private static final long serialVersionUID = 5969567628890256231L;
+
+    @ApiModelProperty("平均耗时")
+    private String avgTime;
+
+    @ApiModelProperty("每天完成")
+    private String everyDayNum;
+
+    @ApiModelProperty("完成总数")
+    private Integer totalCompleted;
+
+    @ApiModelProperty("未完成总数")
+    private Integer totalNoneCompleted;
+
+    @ApiModelProperty("已完成")
+    private List<PieElementVO> completetList;
+
+    @ApiModelProperty("未完成")
+    private List<PieElementVO> noneList;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComDynamicWorkScreenVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComDynamicWorkScreenVO.java
new file mode 100644
index 0000000..6f7bf75
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComDynamicWorkScreenVO.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.vos.screen;
+
+import java.io.Serializable;
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * @date 2021/6/16 14:38
+ */
+@ApiModel("大屏-工作-社区动态")
+@Data
+public class ComDynamicWorkScreenVO implements Serializable {
+
+    @ApiModelProperty("全部动态")
+    private Long totalNum;
+
+    @ApiModelProperty("本月新增")
+    private Long currentNum;
+
+    @ApiModelProperty("平均每天动态")
+    private Integer currentAvgNum = 0;
+
+    @ApiModelProperty("最新动态列表")
+    private List<String> dynList;
+
+    @ApiModelProperty("动态柱状图列表数据")
+    private List<DynamicWorkVO> list;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComMngPopulationAgeVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComMngPopulationAgeVO.java
new file mode 100644
index 0000000..f5d8bc6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComMngPopulationAgeVO.java
@@ -0,0 +1,24 @@
+package com.panzhihua.common.model.vos.screen;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author xyh
+ * @date 2021/6/15 16:42
+ */
+@Data
+@ApiModel("年龄段结构统计")
+public class ComMngPopulationAgeVO implements Serializable {
+
+    private static final long serialVersionUID = 1562369303787355841L;
+
+    @ApiModelProperty("年龄段")
+    private String group;
+
+    @ApiModelProperty("数量")
+    private Long num;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComPbWorkScreenVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComPbWorkScreenVO.java
new file mode 100644
index 0000000..b43d5ff
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ComPbWorkScreenVO.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.vos.screen;
+
+import java.io.Serializable;
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author xyh
+ * @date 2021/6/16 14:38
+ */
+@ApiModel("大屏-人口-党建工作")
+@Data
+public class ComPbWorkScreenVO implements Serializable {
+
+    @ApiModelProperty("总共发起")
+    private Long totalNum;
+
+    @ApiModelProperty("本月新增")
+    private Long currentNum;
+
+    @ApiModelProperty("党建宣传")
+    private Long dynNum;
+
+    @ApiModelProperty("党员活动")
+    private Long activityNum;
+
+    @ApiModelProperty("党建工作柱状图列表数据")
+    private List<PbWorkVO> list;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/DateScreenVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/DateScreenVO.java
new file mode 100644
index 0000000..8fb9fcc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/DateScreenVO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.vos.screen;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+@Data
+@ApiModel("事件格式化类")
+public class DateScreenVO {
+
+    /**
+     * 开始时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date startTime;
+
+    /**
+     * 结束时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endTime;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/DynamicWorkVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/DynamicWorkVO.java
new file mode 100644
index 0000000..7eefd7e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/DynamicWorkVO.java
@@ -0,0 +1,30 @@
+package com.panzhihua.common.model.vos.screen;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * @date 2021/6/16 14:45
+ */
+@Data
+@ApiModel("累计动态、新增动态")
+public class DynamicWorkVO implements Serializable {
+
+    @ApiModelProperty("月份")
+    private String month;
+
+    @ApiModelProperty("累计动态")
+    private Long dynTotal;
+
+    @ApiModelProperty("新增动态")
+    private Long dynAdd;
+
+    @ApiModelProperty(hidden = true)
+    private String start;
+    @ApiModelProperty(hidden = true)
+    private String end;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/EastPhotoTypeVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/EastPhotoTypeVO.java
new file mode 100644
index 0000000..71186c9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/EastPhotoTypeVO.java
@@ -0,0 +1,23 @@
+package com.panzhihua.common.model.vos.screen;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author xyh
+ * @date 2021/6/16 14:45
+ */
+@Data
+@ApiModel("随手拍类型饼图")
+public class EastPhotoTypeVO implements Serializable {
+
+    @ApiModelProperty("类型名称")
+    private String name;
+
+    @ApiModelProperty("数量")
+    private Long num;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/EastPhotoVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/EastPhotoVO.java
new file mode 100644
index 0000000..21c382b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/EastPhotoVO.java
@@ -0,0 +1,28 @@
+package com.panzhihua.common.model.vos.screen;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author xyh
+ * @date 2021/6/16 14:45
+ */
+@Data
+@ApiModel("随手拍线型数据")
+public class EastPhotoVO implements Serializable {
+
+    @ApiModelProperty("月份")
+    private String month;
+
+    @ApiModelProperty("随手拍数量")
+    private Long total;
+
+    @ApiModelProperty("新增随手拍数量")
+    private Long adds;
+
+    @ApiModelProperty("处理手拍数量")
+    private Long deal;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/EasyPhotoDataVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/EasyPhotoDataVO.java
new file mode 100644
index 0000000..b3ad908
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/EasyPhotoDataVO.java
@@ -0,0 +1,27 @@
+package com.panzhihua.common.model.vos.screen;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author xyh
+ * @date 2021/6/16 16:27
+ */
+@ApiModel("随手拍线形图")
+@Data
+public class EasyPhotoDataVO {
+
+    @ApiModelProperty("月份")
+    private String month;
+
+    @ApiModelProperty("随手拍数量")
+    private Long total;
+
+    @ApiModelProperty("新增随手拍")
+    private Long adds;
+
+    @ApiModelProperty("处理随手拍")
+    private Long deal;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/EasyPhotoPointVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/EasyPhotoPointVO.java
new file mode 100644
index 0000000..9f4cbd0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/EasyPhotoPointVO.java
@@ -0,0 +1,20 @@
+package com.panzhihua.common.model.vos.screen;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author xyh
+ * @date 2021/6/16 16:21
+ */
+@ApiModel("随手拍饼状图")
+@Data
+public class EasyPhotoPointVO {
+
+    @ApiModelProperty("类型名")
+    private String typeName;
+
+    @ApiModelProperty("占比")
+    private Integer point;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/EventDetailWorkVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/EventDetailWorkVO.java
new file mode 100644
index 0000000..552319e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/EventDetailWorkVO.java
@@ -0,0 +1,68 @@
+package com.panzhihua.common.model.vos.screen;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+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;
+
+/**
+ * @author lyq
+ * @date 2021/6/16 14:45
+ */
+@Data
+@ApiModel("工作-事件管理-事件播报数据")
+public class EventDetailWorkVO implements Serializable {
+
+    @ApiModelProperty("事件id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("发布人昵称")
+    private String userName;
+
+    @ApiModelProperty("发布人头像")
+    private String imageUrl;
+
+    @ApiModelProperty("事件上报时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("事件描述")
+    private String eventDes;
+
+    @ApiModelProperty("危险级别:0 (无) 1(特别重大)、2(重大)、3(较大)、4(一般)")
+    private String dangerLevel;
+
+    @ApiModelProperty("是否紧急")
+    private Boolean urgent;
+
+    @ApiModelProperty("是否重大")
+    private Boolean major;
+
+    @ApiModelProperty("事件发生地点")
+    private String happenAddress;
+
+    @ApiModelProperty("事件发生地点备注")
+    private String happentAddress;
+
+    @ApiModelProperty("事件发生经纬度(长在前短在后)")
+    private String happentLatLng;
+
+    @ApiModelProperty("事件分类1治安隐患、2公共服务、3矛盾纠纷、4不稳定因素、5突发事件、6特殊人群信息上报")
+    private Integer eventType;
+
+    @ApiModelProperty("事件处理状态(1待处理、2待验证、3已上报、4已解决、5草稿箱、6已撤销、7已失效 8 已发布)")
+    private Integer eventDealStatus;
+
+    @ApiModelProperty(value = "是否红牌")
+    private Boolean redCard;
+
+    @ApiModelProperty(value = "是否黄牌")
+    private Boolean yellowCard;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/EventTypeWorkVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/EventTypeWorkVO.java
new file mode 100644
index 0000000..975200e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/EventTypeWorkVO.java
@@ -0,0 +1,38 @@
+package com.panzhihua.common.model.vos.screen;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * @date 2021/6/16 14:45
+ */
+@Data
+@ApiModel("解决事件、新增事件、事件数量")
+public class EventTypeWorkVO implements Serializable {
+
+    @ApiModelProperty("治安隐患")
+    private Integer zaTotal;
+
+    @ApiModelProperty("公共服务")
+    private Integer ggTotal;
+
+    @ApiModelProperty("矛盾纠纷")
+    private Integer mdTotal;
+
+    @ApiModelProperty("不稳定因素")
+    private Integer bwdTotal;
+
+    @ApiModelProperty("突发事件")
+    private Integer tfTotal;
+
+    @ApiModelProperty("特殊人群上报")
+    private Integer tsTotal;
+
+    @ApiModelProperty("随手拍")
+    private Integer sspTotal;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/EventWorkScreenVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/EventWorkScreenVO.java
new file mode 100644
index 0000000..b4c31b2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/EventWorkScreenVO.java
@@ -0,0 +1,44 @@
+package com.panzhihua.common.model.vos.screen;
+
+import java.io.Serializable;
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * @date 2021/6/16 14:38
+ */
+@ApiModel("大屏-工作-事件管理")
+@Data
+public class EventWorkScreenVO implements Serializable {
+
+    @ApiModelProperty("已解决事件")
+    private Long resolvedNum = 0L;
+
+    @ApiModelProperty("待处理事件")
+    private Long pendingNum = 0L;
+
+    @ApiModelProperty("本月新增")
+    private Long currentNum = 0L;
+
+    @ApiModelProperty("平均耗时")
+    private Integer avgCost = 0;
+
+    @ApiModelProperty("宣传教育")
+    private Long propagandaNum = 0L;
+
+    @ApiModelProperty("事件最新动态列表")
+    private List<EventDetailWorkVO> eventList;
+
+    @ApiModelProperty("动态柱状图列表数据")
+    private List<EventWorkVO> list;
+
+    @ApiModelProperty("已完成事件数据")
+    private EventTypeWorkVO complete;
+
+    @ApiModelProperty("未完成事件数据")
+    private EventTypeWorkVO noComplete;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/EventWorkVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/EventWorkVO.java
new file mode 100644
index 0000000..06990f4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/EventWorkVO.java
@@ -0,0 +1,42 @@
+package com.panzhihua.common.model.vos.screen;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * @date 2021/6/16 14:45
+ */
+@Data
+@ApiModel("解决事件、新增事件、事件数量")
+public class EventWorkVO implements Serializable {
+
+    @ApiModelProperty("月份")
+    private String month;
+
+    @ApiModelProperty("事件数量")
+    private Long eventTotal;
+
+    @ApiModelProperty("新增事件")
+    private Long eventAdd;
+
+    @ApiModelProperty("解决事件")
+    private Long eventSolve;
+
+    @ApiModelProperty("随手拍数量")
+    private Long sspTotal = 0L;
+
+    @ApiModelProperty("新增随手拍数量")
+    private Long sspAdd = 0L;
+
+    @ApiModelProperty("解决随手拍数量")
+    private Long sspSolve = 0L;
+
+    @ApiModelProperty(hidden = true)
+    private String start;
+    @ApiModelProperty(hidden = true)
+    private String end;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/GridMemberTrajectoryVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/GridMemberTrajectoryVo.java
new file mode 100644
index 0000000..ae294e8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/GridMemberTrajectoryVo.java
@@ -0,0 +1,28 @@
+package com.panzhihua.common.model.vos.screen;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author lyq
+ * @date 2021/6/16 14:45
+ */
+@Data
+@ApiModel("网格员运动轨迹返回参数")
+public class GridMemberTrajectoryVo {
+
+    @ApiModelProperty("用户id")
+    private Long userId;
+
+    @ApiModelProperty("网格员名字")
+    private String name;
+
+    @ApiModelProperty("网格员手机号")
+    private String phone;
+
+    @ApiModelProperty("网格员运动轨迹经纬度列表")
+    private List<String> lngLatList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/PbWorkVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/PbWorkVO.java
new file mode 100644
index 0000000..098bc5e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/PbWorkVO.java
@@ -0,0 +1,30 @@
+package com.panzhihua.common.model.vos.screen;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author xyh
+ * @date 2021/6/16 14:45
+ */
+@Data
+@ApiModel("党建宣传、党员活动")
+public class PbWorkVO implements Serializable {
+
+    @ApiModelProperty("月份")
+    private String month;
+
+    @ApiModelProperty("党建宣传")
+    private Long dyn;
+
+    @ApiModelProperty("党员活动")
+    private Long activity;
+
+    @ApiModelProperty(hidden = true)
+    private String start;
+    @ApiModelProperty(hidden = true)
+    private String end;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/PieElementVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/PieElementVO.java
new file mode 100644
index 0000000..17fbb4c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/PieElementVO.java
@@ -0,0 +1,22 @@
+package com.panzhihua.common.model.vos.screen;
+
+import java.io.Serializable;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author xyh
+ * @date 2021/6/17 15:30
+ */
+@ApiModel("饼图元素")
+@Data
+public class PieElementVO implements Serializable {
+
+    @ApiModelProperty("名称")
+    private String name;
+
+    @ApiModelProperty("数量")
+    private Integer num;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ScreenDrawEventPopulationTotalVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ScreenDrawEventPopulationTotalVO.java
new file mode 100644
index 0000000..df3b6b8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ScreenDrawEventPopulationTotalVO.java
@@ -0,0 +1,98 @@
+package com.panzhihua.common.model.vos.screen;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 实有人口统计返回参数
+ */
+@Data
+@ApiModel("实有人口统计返回参数")
+public class ScreenDrawEventPopulationTotalVO {
+
+    @ApiModelProperty("居民总数")
+    private Integer populationTotal = 0;
+
+    @ApiModelProperty("户籍人口")
+    private Integer localTotal = 0;
+
+    @ApiModelProperty("流动人口")
+    private Integer outTotal = 0;
+
+    @ApiModelProperty("其他人员")
+    private Integer specialTotal = 0;
+
+    @ApiModelProperty("小区数")
+    private Integer villageTotal = 0;
+
+    @ApiModelProperty("楼栋数")
+    private Integer buildTotal = 0;
+
+    @ApiModelProperty("居民小组长")
+    private Integer JMXZZTotal = 8;
+
+    @ApiModelProperty("楼栋长")
+    private Integer LDZTotal = 28;
+
+    @ApiModelProperty("党小组长")
+    private Integer DXZZTotal = 10;
+
+    @ApiModelProperty("妇女小组长")
+    private Integer FNXZZTotal = 7;
+
+    @ApiModelProperty("卫生员")
+    private Integer WSYTotal = 7;
+
+    @ApiModelProperty("监督员")
+    private Integer JDYTotal = 7;
+
+    @ApiModelProperty("安全员")
+    private Integer AQYTotal = 7;
+
+    @ApiModelProperty("网格员")
+    private Integer WGYTotal = 6;
+
+    @ApiModelProperty("总户数")
+    private Integer houseTotal = 0;
+
+    @ApiModelProperty("残疾人")
+    private Integer disabilityTotal = 0;
+
+    @ApiModelProperty("低保户")
+    private Integer lowSecurityTotal = 0;
+
+    @ApiModelProperty("高龄老人")
+    private Integer elderTotal = 0;
+
+    @ApiModelProperty("特殊情况")
+    private Integer specialSituationTotal = 0;
+
+    @ApiModelProperty("其他")
+    private Integer otherTotal = 0;
+
+    @ApiModelProperty("特扶家庭")
+    private Integer specialHelpTotal = 0;
+
+    @ApiModelProperty("退役军人")
+    private Integer veteransTotal = 0;
+
+    @ApiModelProperty("老年人")
+    private Integer oldTotal = 0;
+
+    @ApiModelProperty("养老人员")
+    private Integer pensionTotal = 0;
+
+    @ApiModelProperty("出租房源")
+    private Integer rentingHouseTotal = 0;
+
+    @ApiModelProperty("社会工作者")
+    private Integer socialWorkerTotal = 0;
+
+    @ApiModelProperty("志愿者")
+    private Integer volunteerTotal = 0;
+
+    @ApiModelProperty("平均年龄")
+    private Integer averageAge = 0;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ScreenDrawEventVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ScreenDrawEventVO.java
new file mode 100644
index 0000000..c2c92aa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/screen/ScreenDrawEventVO.java
@@ -0,0 +1,29 @@
+package com.panzhihua.common.model.vos.screen;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.screen.civil.CivilVillageStatisticsVO;
+import com.panzhihua.common.model.vos.community.screen.event.EventGridIncidentStatisticsVO;
+import com.panzhihua.common.model.vos.community.screen.event.EventLeftDownStatisticsVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("大屏绘制多边形返回参数")
+public class ScreenDrawEventVO {
+
+    @ApiModelProperty("社区事件数据")
+    private List<EventGridIncidentStatisticsVO> gridIncidentList;
+
+    @ApiModelProperty("小区列表数据")
+    private List<CivilVillageStatisticsVO> villageStatisticsList;
+
+    @ApiModelProperty("人数统计数据")
+    private ScreenDrawEventPopulationTotalVO drawEventPopulationTotalVO;
+
+    @ApiModelProperty("事件数量统计数据")
+    private EventLeftDownStatisticsVO leftDownStatisticsVO;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/AddShopFlowerGoodsAttrVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/AddShopFlowerGoodsAttrVO.java
new file mode 100644
index 0000000..afbb722
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/AddShopFlowerGoodsAttrVO.java
@@ -0,0 +1,47 @@
+package com.panzhihua.common.model.vos.shop;
+
+import com.panzhihua.common.validated.AddGroup;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.Digits;
+import javax.validation.constraints.Min;
+import java.math.BigDecimal;
+
+/**
+ * @auther yh
+ * @describe
+ */
+@Data
+@ApiModel("商品规格")
+public class AddShopFlowerGoodsAttrVO {
+
+    @ApiModelProperty("商品规格Id:编辑必传")
+    private Long id;
+
+    @ApiModelProperty("商品规格")
+    private String goodsAttrName;
+
+    @ApiModelProperty("原价")
+    @Min(groups = {AddGroup.class}, value = 0, message = "原价最小值为0")
+    @Digits(groups = {AddGroup.class}, integer = 8, fraction = 2)
+    private BigDecimal price;
+
+    @ApiModelProperty("包邮价")
+//    @Min(groups = {AddGroup.class}, value = 0, message = "包邮价最小值为0")
+//    @Digits(groups = {AddGroup.class}, integer = 8, fraction = 2)
+    private BigDecimal freeShippingPrice;
+
+    @ApiModelProperty("拼单价")
+//    @Min(groups = {AddGroup.class}, value = 0, message = "拼单价最小值为0")
+//    @Digits(groups = {AddGroup.class}, integer = 8, fraction = 2)
+    private BigDecimal collatePrice;
+
+    @ApiModelProperty("商品规格图")
+    private String attrPic;
+
+    @ApiModelProperty("库存")
+    private Integer stock;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/AddShopFlowerGoodsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/AddShopFlowerGoodsVO.java
new file mode 100644
index 0000000..ecbbc53
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/AddShopFlowerGoodsVO.java
@@ -0,0 +1,65 @@
+package com.panzhihua.common.model.vos.shop;
+
+import com.panzhihua.common.validated.AddGroup;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.Valid;
+import javax.validation.constraints.Digits;
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotEmpty;
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @auther yh
+ * @describe 商品
+ */
+@Data
+@ApiModel("添加商品")
+public class AddShopFlowerGoodsVO {
+
+    @ApiModelProperty("店铺id")
+    private Long storeId;
+
+    @ApiModelProperty("商品名称")
+    private String name;
+
+    @ApiModelProperty("商品现价")
+    @Min(groups = {AddGroup.class}, value = 0, message = "价格最小值为0")
+    @Digits(groups = {AddGroup.class}, integer = 8, fraction = 2)
+    private BigDecimal price;
+
+    @ApiModelProperty("商品单位")
+    private String unit;
+
+    @ApiModelProperty("商品状态(1.出售中  2.已下架  3.回收站)")
+    private Integer status;
+
+    @ApiModelProperty("商品主图")
+    private String goodsPic;
+
+    @ApiModelProperty("商品图片")
+    private String images;
+
+    @ApiModelProperty("商品详情")
+    private String details;
+
+    @ApiModelProperty("商品详情()富文本")
+    private String goodsDescribe;
+
+    /**
+     * 配送方式(1.商家配送 2.快递物流)
+     */
+    @ApiModelProperty(value = "配送方式(1.自提  2.快递)")
+    private String deliveryType;
+
+    @ApiModelProperty("商品规格")
+    @Valid
+    private List<AddShopFlowerGoodsAttrVO> goodsAttrVOList;
+
+    @ApiModelProperty("商品分类")
+    @NotEmpty(groups = {AddGroup.class}, message = "商品分类不能为空")
+    private List<Long> categoryIds;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/AddShopGoodsAttrVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/AddShopGoodsAttrVO.java
new file mode 100644
index 0000000..ea98ac5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/AddShopGoodsAttrVO.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.vos.shop;
+
+import java.math.BigDecimal;
+
+import javax.validation.constraints.Digits;
+import javax.validation.constraints.Min;
+
+import com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther llming
+ * @describe
+ */
+@Data
+@ApiModel("商品规格")
+public class AddShopGoodsAttrVO {
+
+    @ApiModelProperty("商品规格Id:编辑必传")
+    private Long goodsAttrId;
+
+    @ApiModelProperty("商品规格")
+    private String goodsAttr;
+
+    @ApiModelProperty("规格价格")
+    @Min(groups = {AddGroup.class}, value = 0, message = "价格最小值为0")
+    @Digits(groups = {AddGroup.class}, integer = 8, fraction = 2)
+    private BigDecimal attrPrice;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/AddShopGoodsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/AddShopGoodsVO.java
new file mode 100644
index 0000000..7513455
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/AddShopGoodsVO.java
@@ -0,0 +1,59 @@
+package com.panzhihua.common.model.vos.shop;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+import javax.validation.Valid;
+import javax.validation.constraints.Digits;
+import javax.validation.constraints.Min;
+
+import com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther llming
+ * @describe 商品
+ */
+@Data
+@ApiModel("添加商品")
+public class AddShopGoodsVO {
+
+    @ApiModelProperty("店铺id")
+    private Long storeId;
+
+    @ApiModelProperty("商品名称")
+    private String name;
+
+    @ApiModelProperty("商品现价")
+    @Min(groups = {AddGroup.class}, value = 0, message = "价格最小值为0")
+    @Digits(groups = {AddGroup.class}, integer = 8, fraction = 2)
+    private BigDecimal price;
+
+    @ApiModelProperty("商品单位")
+    private String unit;
+
+    @ApiModelProperty("商品状态(1.出售中  2.已下架  3.回收站)")
+    private Integer status;
+
+    @ApiModelProperty("商品主图")
+    private String goodsPic;
+
+    @ApiModelProperty("商品图片")
+    private String images;
+
+    @ApiModelProperty("商品详情")
+    private String details;
+
+    /**
+     * 配送方式(1.商家配送 2.快递物流)
+     */
+    @ApiModelProperty(value = "配送方式(1.商家配送  2.快递物流)", hidden = true)
+    private Integer deliveryType;
+
+    @ApiModelProperty("商品规格")
+    @Valid
+    private List<AddShopGoodsAttrVO> goodsAttrVOList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/CapitalDetailVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/CapitalDetailVO.java
new file mode 100644
index 0000000..ffcbb74
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/CapitalDetailVO.java
@@ -0,0 +1,33 @@
+package com.panzhihua.common.model.vos.shop;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther llming
+ * @describe 商家订单资金详情
+ */
+@Data
+public class CapitalDetailVO {
+    @ApiModelProperty(value = "商家账号")
+    private String storeAccount;
+    @ApiModelProperty(value = "商家姓名")
+    private String contacts;
+    @ApiModelProperty(value = "店铺名称")
+    private String storeName;
+    @ApiModelProperty(value = "金额(元)")
+    private BigDecimal totalAmount;
+    @ApiModelProperty("支付方式(1.微信支付)")
+    private Integer payType;
+    @ApiModelProperty("类型")
+    private String type;
+    @ApiModelProperty("支付时间")
+    private Date payTime;
+    @ApiModelProperty("下单时间")
+    private Date createAt;
+    @ApiModelProperty("订单号")
+    private String orderNo;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/CapitalPageVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/CapitalPageVO.java
new file mode 100644
index 0000000..ae064d7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/CapitalPageVO.java
@@ -0,0 +1,31 @@
+package com.panzhihua.common.model.vos.shop;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther llming
+ * @describe 商家订单资金列表
+ */
+@Data
+public class CapitalPageVO {
+    @ApiModelProperty(value = "商家账号")
+    private String storeAccount;
+    @ApiModelProperty(value = "商家姓名")
+    private String contacts;
+    @ApiModelProperty(value = "店铺名称")
+    private String storeName;
+    @ApiModelProperty(value = "金额(元)")
+    private BigDecimal payAmount;
+    @ApiModelProperty(value = "订单Id")
+    private Long orderId;
+    @ApiModelProperty("支付方式(1.微信支付)")
+    private Integer payType;
+    @ApiModelProperty("类型")
+    private String type = "订单收入";
+    @ApiModelProperty("支付时间")
+    private Date payTime;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopCartListVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopCartListVO.java
new file mode 100644
index 0000000..392c8e4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopCartListVO.java
@@ -0,0 +1,29 @@
+package com.panzhihua.common.model.vos.shop;
+
+import java.util.List;
+
+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 ComShopCartListVO {
+
+    /**
+     * 有效宝贝购物车信息
+     */
+    @ApiModelProperty("有效宝贝购物车信息")
+    private List<ComShopCartStoreVO> cartList;
+
+    /**
+     * 失效宝贝购物车信息
+     */
+    @ApiModelProperty("失效宝贝购物车信息")
+    private List<ComShopCartVO> invalidCartList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopCartStoreVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopCartStoreVO.java
new file mode 100644
index 0000000..75f9fd0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopCartStoreVO.java
@@ -0,0 +1,42 @@
+package com.panzhihua.common.model.vos.shop;
+
+import java.util.List;
+
+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 ComShopCartStoreVO {
+
+    /**
+     * 店铺id
+     */
+    @ApiModelProperty("店铺id")
+    private Long storeId;
+
+    /**
+     * 店铺名称
+     */
+    @ApiModelProperty("店铺名称")
+    private String storeName;
+
+    /**
+     * 店铺logo
+     */
+    @ApiModelProperty("店铺logo")
+    private String storeLogo;
+
+    /**
+     * 店铺下购物车信息
+     */
+    @ApiModelProperty("店铺下购物车信息")
+    private List<ComShopCartVO> cartList;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopCartVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopCartVO.java
new file mode 100644
index 0000000..0aee8c9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopCartVO.java
@@ -0,0 +1,71 @@
+package com.panzhihua.common.model.vos.shop;
+
+import java.math.BigDecimal;
+
+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 ComShopCartVO {
+
+    /**
+     * 购物车id
+     */
+    @ApiModelProperty("购物车id")
+    private Long id;
+
+    /**
+     * 商品id
+     */
+    @ApiModelProperty("商品id")
+    private Long goodsId;
+
+    /**
+     * 商品名字
+     */
+    @ApiModelProperty("商品名字")
+    private String goodsName;
+
+    /**
+     * 店铺id
+     */
+    @ApiModelProperty("店铺id")
+    private Long storeId;
+
+    /**
+     * 商品规格id
+     */
+    @ApiModelProperty("商品规格id")
+    private Long goodsAttrId;
+
+    /**
+     * 商品规格信息
+     */
+    @ApiModelProperty("商品规格信息")
+    private String goodsAttr;
+
+    /**
+     * 商品规格图
+     */
+    @ApiModelProperty("商品规格图")
+    private String goodsAttrPic;
+
+    /**
+     * 商品数量
+     */
+    @ApiModelProperty("商品数量")
+    private Integer amount;
+
+    /**
+     * 商品价格
+     */
+    @ApiModelProperty("商品价格")
+    private BigDecimal price;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerEvaluateVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerEvaluateVO.java
new file mode 100644
index 0000000..b8a9d9c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerEvaluateVO.java
@@ -0,0 +1,82 @@
+package com.panzhihua.common.model.vos.shop;
+
+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;
+
+/**
+ * @ClassName:  ComShopFlowerEvaluate
+ * @Author: yh
+ * @Date: 2022/11/9 16:46
+ * @Description: 评价表
+ */
+
+@Data
+@ApiModel("评价信息")
+public class ComShopFlowerEvaluateVO{
+    private static final long serialVersionUID = 1L;
+    /**
+     * ,主键
+     */
+    @ApiModelProperty("评价id")
+    private Long id;
+
+    /**
+     * 订单号
+     */
+    @ApiModelProperty("订单号")
+    private String orderNo;
+
+    /**
+     * 商品id
+     */
+    @ApiModelProperty("商品id")
+    private String goodsId;
+
+    /**
+     * 评价人id
+     */
+    @ApiModelProperty("评价人id")
+    private Long userId;
+
+    /**
+     * 评价时间
+     */
+    @ApiModelProperty("评价时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date evaluateTime;
+
+    /**
+     * 评价类型(5.非常满意 4.满意 3.一般 3.不满意 1.糟糕透了)
+     */
+    @ApiModelProperty("评价类型(5.非常满意 4.满意 3.一般 3.不满意 1.糟糕透了)")
+    private Integer evaluateType;
+
+    /**
+     * 评价内容
+     */
+    @ApiModelProperty("评价内容")
+    private String evaluateContent;
+
+    /**
+     * 评价图片
+     */
+    @ApiModelProperty("评价图片")
+    private String evaluatePic;
+
+    /**
+     * 用户昵称
+     */
+    @ApiModelProperty("用户昵称")
+    private String nickName;
+    /**
+     * 用户头像
+     */
+    @ApiModelProperty("用户头像")
+    private String imageUrl;
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerGoodsAttrVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerGoodsAttrVO.java
new file mode 100644
index 0000000..1f0d6f3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerGoodsAttrVO.java
@@ -0,0 +1,89 @@
+package com.panzhihua.common.model.vos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @auther yh
+ * @create 2022-10-21 09:36:09
+ * @describe 商品规格信息
+ */
+@Data
+@ApiModel("商品规格信息")
+public class ComShopFlowerGoodsAttrVO {
+
+    /**
+     * 商品规格id
+     */
+    @ApiModelProperty("商品规格id")
+    private Long id;
+
+    /**
+     * 商品id
+     */
+    @ApiModelProperty("商品id")
+    private Long goodsId;
+
+    /**
+     * 店铺id
+     */
+    @ApiModelProperty("店铺id")
+    private Long storeId;
+
+    /**
+     * 商品名称
+     */
+    @ApiModelProperty("商品名称")
+    private String goodsName;
+
+    /**
+     * 商品规格
+     */
+    @ApiModelProperty("商品规格")
+    private String goodsAttrName;
+
+    /**
+     * 商品规格库存
+     */
+    @ApiModelProperty("商品规格库存")
+    private Integer stock;
+
+    /**
+     * 商品规格销量
+     */
+    @ApiModelProperty("商品规格销量")
+    private Integer sale;
+
+    /**
+     * 商品规格图
+     */
+    @ApiModelProperty("商品规格图")
+    private String attrPic;
+
+    /**
+     * 是否是默认规格(1.是 2.否)
+     */
+    @ApiModelProperty("是否是默认规格(1.是  2.否)")
+    private Integer isDefault;
+
+    /**
+     * 规格价格
+     */
+    @ApiModelProperty("规格价格")
+    private BigDecimal price;
+
+
+    /**
+     * 包邮价
+     */
+    @ApiModelProperty("包邮价")
+    private BigDecimal freeShippingPrice;
+    /**
+     * 拼单价
+     */
+    @ApiModelProperty("拼单价")
+    private BigDecimal collatePrice;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerGoodsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerGoodsVO.java
new file mode 100644
index 0000000..98b34a9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerGoodsVO.java
@@ -0,0 +1,163 @@
+package com.panzhihua.common.model.vos.shop;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
+import com.panzhihua.common.validated.AddGroup;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotEmpty;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @auther yh
+ * @create 2022-10-21 09:36:09
+ * @describe 商品信息
+ */
+@Data
+@ApiModel("商品信息")
+public class ComShopFlowerGoodsVO {
+
+    /**
+     * 商品id
+     */
+    @ApiModelProperty("商品id")
+    private Long id;
+
+    /**
+     * 商品名称
+     */
+    @ApiModelProperty("商品名称")
+    private String name;
+
+    /**
+     * 店铺id
+     */
+    @ApiModelProperty("店铺id")
+    private Long storeId;
+
+    /**
+     * 商品主图
+     */
+    @ApiModelProperty("商品主图")
+    private String goodsPic;
+
+    /**
+     * 商品展示图
+     */
+    @ApiModelProperty("商品展示图")
+    private String images;
+
+    /**
+     * 商品状态(1.出售中 2.已下架 3.回收站)
+     */
+    @ApiModelProperty("商品状态(1.出售中  2.已下架  3.回收站)")
+    private Integer status;
+
+    /**
+     * 商品销量
+     */
+    @ApiModelProperty("商品销量")
+    private Integer sale;
+
+    /**
+     * 商品原价
+     */
+    @ApiModelProperty("商品原价")
+    private BigDecimal originalPrice;
+
+    /**
+     * 包邮价
+     */
+    @ApiModelProperty("包邮价")
+    private BigDecimal freeShippingPrice;
+    /**
+     * 拼单价
+     */
+    @ApiModelProperty("拼单价")
+    private BigDecimal collatePrice;
+
+    /**
+     * 商品单位
+     */
+    @ApiModelProperty("商品单位")
+    private String unit;
+
+    /**
+     * 商品排序
+     */
+    @ApiModelProperty("商品排序")
+    private Integer order;
+
+    /**
+     * 商品总库存
+     */
+    @ApiModelProperty("商品总库存")
+    private Integer stock;
+
+    /**
+     * 商品详情
+     */
+    @ApiModelProperty("商品详情")
+    private String details;
+
+    /**
+     * 配送方式(1.商家配送 2.快递物流)
+     */
+    @ApiModelProperty("配送方式(1.商家配送  2.快递物流)")
+    private String deliveryType;
+
+    /**
+     * 商品规格列表
+     */
+    @ApiModelProperty("商品规格列表")
+    private List<ComShopFlowerGoodsAttrVO> goodsAttrList;
+
+    /**
+     * 店铺信息
+     */
+    @ApiModelProperty("商品店铺信息")
+    private ConvenientMerchantVO convenientMerchantVO;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("创建时间")
+    private Date createAt;
+
+    /**
+     * 配送方式(1.商家配送 2.快递物流)
+     */
+    @ApiModelProperty("订单数量(拼单数量、买过数量)")
+    private Integer orderNum;
+
+    /**
+     * 浏览量
+     */
+    @ApiModelProperty("浏览量")
+    private Integer viewNum;
+
+
+    /**
+     * 评价数量
+     */
+    @ApiModelProperty("评价数量")
+    private Integer evaluateNum;
+
+    /**
+     * 商品规格列表
+     */
+    @ApiModelProperty("评价列表,最新三条")
+    private List<ComShopFlowerEvaluateVO> shopFlowerEvaluateVOList;
+
+    @ApiModelProperty("商品分类")
+    @NotEmpty(groups = {AddGroup.class}, message = "商品分类不能为空")
+    private List<Long> categoryIds;
+
+
+    @ApiModelProperty("商品描述")
+    private String goodsDescribe;
+}
+
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderDeliveryNoListVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderDeliveryNoListVO.java
new file mode 100644
index 0000000..ba1c66b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderDeliveryNoListVO.java
@@ -0,0 +1,16 @@
+package com.panzhihua.common.model.vos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("商家配送单订单VO")
+public class ComShopFlowerOrderDeliveryNoListVO {
+
+    @ApiModelProperty(value = "配送单VO")
+    private ComShopFlowerOrderDeliveryVO comShopFlowerOrderDeliveryVO;
+
+    @ApiModelProperty(value = "分页数据")
+    private Object page;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderDeliveryVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderDeliveryVO.java
new file mode 100644
index 0000000..e2b4e44
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderDeliveryVO.java
@@ -0,0 +1,121 @@
+package com.panzhihua.common.model.vos.shop;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientElevatingPointVO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @ClassName: ComShopFlowerOrderDelivery
+ * @Author: yh
+ * @Date: 2022/11/15 14:36
+ * @Description: 花城订单配送表
+ */
+@Data
+@ApiModel("订单配送表")
+public class ComShopFlowerOrderDeliveryVO {
+
+    /**
+     * 配送单id
+     */
+    @ApiModelProperty(value = "配送单id")
+    private Long id;
+
+    /**
+     * 店铺id
+     */
+    @ApiModelProperty(value = "店铺id")
+    private Long storeId;
+
+    /**
+     * 配送单号
+     */
+    @ApiModelProperty(value = "配送单号")
+    private String deliveryNo;
+
+    /**
+     * 配送单状态(1.配送中 2.已送达)
+     */
+    @ApiModelProperty(value = "配送单状态(1.配送中 2.已送达)")
+    private Integer deliveryStatus;
+
+    /**
+     * 删除状态(1.未删除 2.已删除)
+     */
+    @ApiModelProperty(value = "删除状态(1.未删除 2.已删除)")
+    private Integer deleteStatus;
+
+    /**
+     * 配送时间
+     */
+    @ApiModelProperty(value = "配送时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date deliveryTime;
+
+    /**
+     * 送达时间
+     */
+    @ApiModelProperty(value = "送达时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date serviceTime;
+
+    /**
+     * 配送方式(1.自提  2.快递)
+     */
+    @ApiModelProperty(value = " 配送方式(1.自提  2.快递)")
+    private Integer deliveryType;
+
+    /**
+     * 自提点id
+     */
+    @ApiModelProperty(value = "自提点id")
+    private Long pointId;
+
+    /**
+     * 自提点名称
+     */
+    @ApiModelProperty(value = "自提点名称")
+    private String pointName;
+
+    /**
+     * 配送订单数量
+     */
+    @ApiModelProperty(value = "配送订单数量")
+    private Integer deliveryOrderNum;
+
+    /**
+     * 配送商品数量
+     */
+    @ApiModelProperty(value = "配送商品数量")
+    private Integer deliveryGoodsNum;
+
+    /**
+     * 价值
+     */
+    @ApiModelProperty(value = "价值")
+    private BigDecimal deliveryAmount;
+
+    /**
+     * 创建时间
+     */
+    @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 ConvenientElevatingPointVO convenientElevatingPointVO;
+
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderGoodsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderGoodsVO.java
new file mode 100644
index 0000000..c9b263d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderGoodsVO.java
@@ -0,0 +1,75 @@
+package com.panzhihua.common.model.vos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:14
+ * @describe 订单预览商品参数
+ */
+@Data
+@ApiModel("订单预览商品参数")
+public class ComShopFlowerOrderGoodsVO {
+
+    /**
+     * 商品名称
+     */
+    @ApiModelProperty(value = "商品名称")
+    private String goodsName;
+
+    /**
+     * 商品图片
+     */
+    @ApiModelProperty(value = "商品图片")
+    private String goodsPic;
+
+    /**
+     * 商品价格
+     */
+    @ApiModelProperty(value = "商品价格")
+    private BigDecimal price;
+
+    /**
+     * 商品数量
+     */
+    @ApiModelProperty(value = "商品数量")
+    private Integer num;
+
+    /**
+     * 商品id
+     */
+    @ApiModelProperty(value = "商品id")
+    private Long goodsId;
+
+    /**
+     * 商品规格id
+     */
+    @ApiModelProperty(value = "商品规格id")
+    private Long goodsAttrId;
+
+    /**
+     * 商品规格
+     */
+    @ApiModelProperty(value = "商品规格")
+    private String goodsAttr;
+
+    /**
+     * 商品状态(1.出售中 2.已下架 3.已删除)
+     */
+    @ApiModelProperty(value = "商品状态(1.出售中  2.已下架 3.已删除)")
+    private Integer goodsStatus = 1;
+
+    /**
+     * 商品状态(1.出售中 2.已下架 3.已删除)
+     */
+    public interface goodsStatus {
+        int csz = 1;
+        int yxj = 2;
+        int ysc = 3;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderOperateVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderOperateVO.java
new file mode 100644
index 0000000..2afec20
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderOperateVO.java
@@ -0,0 +1,30 @@
+package com.panzhihua.common.model.vos.shop;
+
+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 ComShopFlowerOrderOperateVO {
+
+    @ApiModelProperty(value = "订单号")
+    private String orderNo;
+
+    @ApiModelProperty(value = "操作人")
+    private String operationBy;
+
+    @ApiModelProperty(value = "操作时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date operationTime;
+
+    @ApiModelProperty(value = "操作类型(1.创建订单 2.取消订单 3.订单支付 4.订单发货 5.订单完成)")
+    private Integer operationType;
+
+    @ApiModelProperty(value = "操作内容")
+    private String operationContent;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderPageVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderPageVO.java
new file mode 100644
index 0000000..6d1f54b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderPageVO.java
@@ -0,0 +1,138 @@
+package com.panzhihua.common.model.vos.shop;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientElevatingPointVO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+@Data
+@ApiModel("订单信息")
+public class ComShopFlowerOrderPageVO {
+
+    @ApiModelProperty(value = "订单id")
+    private Long orderId;
+
+    @ApiModelProperty(value = "订单号")
+    private String orderNo;
+
+    @ApiModelProperty(value = "订单金额")
+    private BigDecimal orderTotal;
+
+    @ApiModelProperty(value = "店铺id")
+    private Long storeId;
+
+    @ApiModelProperty(value = "订单状态(1.等待配送 2.配送中 3.待收货 4.待评价 5.已完成 6.已取消 7.已退款)")
+    private Integer status;
+
+    @ApiModelProperty(value = "支付状态(1.未支付 2.已支付)")
+    private Integer payStatus;
+
+    @ApiModelProperty(value = "用户收货地址id")
+    private Long receiverId;
+
+    @ApiModelProperty(value = "支付金额")
+    private BigDecimal payAmount;
+
+    @ApiModelProperty(value = "配送方式")
+    private Integer deliveryType;
+
+    @ApiModelProperty(value = "订单备注")
+    private String remark;
+
+    @ApiModelProperty(value = "支付方式(1.微信支付)")
+    private Integer payType;
+
+    @ApiModelProperty(value = "支付时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date payTime;
+
+    @ApiModelProperty(value = "订单发货状态(1.未发货  2.已发货)")
+    private Integer deliveryStatus;
+
+    @ApiModelProperty(value = "物流公司")
+    private String logisticsCompany;
+
+    @ApiModelProperty(value = "物流单号")
+    private String logisticsNo;
+
+    @ApiModelProperty(value = "下单时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty(value = "支付单号")
+    private String payNo;
+
+    @ApiModelProperty(value = "收货时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date receivingTime;
+
+    @ApiModelProperty(value = "订单下商品信息")
+    private List<ComShopFlowerOrderGoodsVO> orderGoodsVOList;
+
+    @ApiModelProperty(value = "订单下店铺信息")
+    private ConvenientMerchantVO convenientMerchantVO;
+
+    @ApiModelProperty(value = "用户收货地址id")
+    private ComShopUserAddressVO userAddressVO;
+
+    @ApiModelProperty(value = "商品名称")
+    private String goodsName;
+
+    @ApiModelProperty(value = "订单日志")
+    private List<ComShopFlowerOrderOperateVO> logs;
+
+    @ApiModelProperty(value = "自提点信息")
+    private ConvenientElevatingPointVO convenientElevatingPointVO;
+
+    @ApiModelProperty(value = "评价")
+    private ComShopFlowerEvaluateVO comShopFlowerEvaluateVO;
+
+    @ApiModelProperty(value = "配送单id")
+    private Long deliveryId;
+
+    @ApiModelProperty(value = "配送单号")
+    private String deliveryNo;
+
+    @ApiModelProperty(value = "退款时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date refundTime;
+
+    @ApiModelProperty(value = "退款金额")
+    private BigDecimal refundAmount;
+
+    @ApiModelProperty(value = "规格名称")
+    private String goodsAttrName;
+
+    @ApiModelProperty(value = "购买数量")
+    private Integer amount;
+
+    @ApiModelProperty(value = "商品规格价格")
+    private BigDecimal goodsAttrPrice;
+
+    @ApiModelProperty(value = "商品规格图")
+    private String goodsAttrPic;
+
+    @ApiModelProperty(value = "取消时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date cancelTime;
+
+    @ApiModelProperty(value = "配送时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date deliveryTime;
+
+    @ApiModelProperty(value = "送达时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date serviceTime;
+
+    @ApiModelProperty(value = "是否可退款按钮显示  1.可退款 2.不可退款")
+    private Integer refundable = 1;
+
+    @ApiModelProperty(value = "微信交易单号")
+    private String wxTardeNo;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderPayVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderPayVO.java
new file mode 100644
index 0000000..c909fa4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderPayVO.java
@@ -0,0 +1,101 @@
+package com.panzhihua.common.model.vos.shop;
+
+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.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @ClassName: ComShopFlowerOrderPay
+ * @Author: yh
+ * @Date: 2022/11/9 16:46
+ * @Description: 花城订单支付记录表
+ */
+@Data
+@ApiModel("花城订单支付记录")
+public class ComShopFlowerOrderPayVO {
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+
+    /**
+     * 订单号
+     */
+    @ApiModelProperty(value = "订单号")
+    private String orderNo;
+
+    /**
+     * 支付单号
+     */
+    @ApiModelProperty(value = "支付单号")
+    private String payNo;
+
+    /**
+     * 微信交易号
+     */
+    @ApiModelProperty(value = "微信交易号")
+    private String wxTradeNo;
+
+    /**
+     * 支付状态(1.未支付  2.已支付)
+     */
+    @ApiModelProperty(value = "支付状态(1.未支付  2.已支付)")
+    private Integer payStatus;
+
+    /**
+     * 订单金额
+     */
+    @ApiModelProperty(value = "订单金额")
+    private BigDecimal orderAmount;
+
+    /**
+     * 支付金额
+     */
+    @ApiModelProperty(value = "支付金额")
+    private BigDecimal payAmount;
+
+    /**
+     * 支付时间
+     */
+    @ApiModelProperty(value = "支付时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date payTime;
+
+    /**
+     * 商家id
+     */
+    @ApiModelProperty(value = "商家id")
+    private Long storeId;
+    /**
+     * 配送方式(1.自提  2.快递)
+     */
+    @ApiModelProperty(value = "配送方式(1.自提  2.快递)")
+    private Integer deliveryType;
+    /**
+     * 原始订单id
+     */
+    @ApiModelProperty(value = "原始订单id")
+    private Long orderId;
+    /**
+     * 退款订单号
+     */
+    @ApiModelProperty(value = "退款订单号")
+    private String refundOrderNo;
+    /**
+     * 退款状态(1.处理中 2.退款成功 3.退款失败 4.已取消 5.退款中)
+     */
+    @ApiModelProperty(value = "退款状态(1.处理中 2.退款成功 3.退款失败 4.已取消 5.退款中)")
+    private Integer refundStatus;
+    /**
+     * 类型(1.支付 2.退款 3.取消)
+     */
+    @ApiModelProperty(value = "类型(1.支付 2.退款 3.取消)")
+    private Integer payType;
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderPreviewVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderPreviewVO.java
new file mode 100644
index 0000000..04f235b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderPreviewVO.java
@@ -0,0 +1,44 @@
+package com.panzhihua.common.model.vos.shop;
+
+import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:14
+ * @describe 订单预览返回参数
+ */
+@Data
+@ApiModel("订单预览返回参数")
+public class ComShopFlowerOrderPreviewVO {
+
+    /**
+     * 用户默认收货地址
+     */
+    @ApiModelProperty(value = "用户默认收货地址")
+    private ComShopUserAddressVO userAddressVO;
+
+    /**
+     * 店铺信息
+     */
+    @ApiModelProperty(value = "店铺信息")
+    private ConvenientMerchantVO convenientMerchantVO;
+
+
+    /**
+     * 订单总金额
+     */
+    @ApiModelProperty(value = "订单总金额")
+    private BigDecimal orderTotal;
+
+    /**
+     * 订单商品总数量
+     */
+    @ApiModelProperty(value = "订单商品总数量")
+    private Integer orderGoodsTotal;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderStoreListVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderStoreListVO.java
new file mode 100644
index 0000000..9e871d6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderStoreListVO.java
@@ -0,0 +1,73 @@
+package com.panzhihua.common.model.vos.shop;
+
+import com.panzhihua.common.model.vos.community.convenient.ConvenientElevatingPointVO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ApiModel("商家订单列表VO")
+public class ComShopFlowerOrderStoreListVO {
+
+    @ApiModelProperty(value = "订单id")
+    private Long orderId;
+
+    @ApiModelProperty(value = "订单号")
+    private String orderNo;
+
+    @ApiModelProperty(value = "订单状态(1.等待配送 2.配送中 3.待收货 4.待评价 5.已完成 6.已取消 7.已退款)")
+    private Integer status;
+
+    @ApiModelProperty(value = "配送方式")
+    private Integer deliveryType;
+
+    @ApiModelProperty(value = "商品名称")
+    private String goodsName;
+
+    @ApiModelProperty(value = "规格名称")
+    private String goodsAttrName;
+
+    @ApiModelProperty(value = "购买数量")
+    private Integer amount;
+
+    @ApiModelProperty(value = "商品规格价格")
+    private BigDecimal goodsAttrPrice;
+
+    @ApiModelProperty(value = "商品规格图")
+    private String goodsAttrPic;
+
+    @ApiModelProperty(value = "订单金额")
+    private BigDecimal totalAmount;
+
+
+    @ApiModelProperty(value = "收货人名称")
+    private String name;
+
+    @ApiModelProperty(value = "发货时间")
+    private String phone;
+
+    @ApiModelProperty(value = "收货人省份名称")
+    private String provinceName;
+
+    @ApiModelProperty(value = "收货人城市名称")
+    private String cityName;
+
+    @ApiModelProperty(value = "收货人区县名称")
+    private String districtName;
+
+    @ApiModelProperty(value = "收货人详细地址")
+    private String detailAddress;
+    @ApiModelProperty(value = "自提点id")
+    private Long pointId;
+    @ApiModelProperty(value = "自提点信息")
+    private ConvenientElevatingPointVO convenientElevatingPointVO;
+
+    @ApiModelProperty(value = "物流单号")
+    private String logisticsNo;
+
+    @ApiModelProperty(value = "物流公司")
+    private String logisticsCompany;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderVO.java
new file mode 100644
index 0000000..310b649
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerOrderVO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.vos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ApiModel("订单创建返回参数")
+public class ComShopFlowerOrderVO {
+
+    @ApiModelProperty(value = "订单号")
+    private String orderNo;
+
+    @ApiModelProperty(value = "订单ID")
+    private Long orderId;
+
+    @ApiModelProperty(value = "订单金额")
+    private BigDecimal orderTotal;
+
+    @ApiModelProperty(value = "请求支付返回参数")
+    private String payResult;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerRefundOrderVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerRefundOrderVO.java
new file mode 100644
index 0000000..b0ab080
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFlowerRefundOrderVO.java
@@ -0,0 +1,166 @@
+package com.panzhihua.common.model.vos.shop;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @ClassName: ComShopFlowerRefundOrderVO
+ * @Author: yh
+ * @Date: 2022/11/16 15:05
+ * @Description: TODO
+ */
+@Data
+public class ComShopFlowerRefundOrderVO {
+
+    /**
+     * 订单id
+     */
+    @ApiModelProperty("退款订单id")
+    private Long id;
+
+    /**
+     * 店铺id
+     */
+    @ApiModelProperty("店铺id")
+    private Long storeId;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty("用户id")
+    private Long userId;
+
+    /**
+     * 原始订单号
+     */
+    @ApiModelProperty("原始订单号")
+    private String orderNo;
+
+    /**
+     * 原始订单id
+     */
+    @ApiModelProperty("原始订单id")
+    private String orderId;
+
+    /**
+     * 退款订单号
+     */
+    @ApiModelProperty("退款订单号")
+    private String refundOrderNo;
+
+    /**
+     * 订单状态(9.处理中 10.退款成功 11.退款失败 12.已取消 13.退款中)
+     */
+    @ApiModelProperty("订单状态(9.处理中 10.退款成功 11.退款失败 12.已取消 13.退款中)")
+    private Integer status;
+
+    /**
+     * 删除状态(1.未删除 2.已删除)
+     */
+    @ApiModelProperty("删除状态(1.未删除 2.已删除)")
+    private Integer deleteStatus;
+
+    /**
+     * 支付总金额
+     */
+    @ApiModelProperty("支付总金额")
+    private BigDecimal payAmount;
+
+    /**
+     * 申请退款金额
+     */
+    @ApiModelProperty("申请退款金额")
+    private BigDecimal refundAmount;
+
+    /**
+     * 退款原因
+     */
+    @ApiModelProperty("退款原因")
+    private String refundReason;
+
+    /**
+     * 退款照片
+     */
+    @ApiModelProperty("退款照片")
+    private String refundPic;
+
+    /**
+     * 申请时间
+     */
+    @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 updateAt;
+
+    /**
+     * 处理时间
+     */
+    @ApiModelProperty("处理时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date handleTime;
+
+    /**
+     * 退款时间
+     */
+    @ApiModelProperty("退款时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date refundTime;
+
+    /**
+     * 取消时间
+     */
+    @ApiModelProperty("取消时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date cancelTime;
+
+    /**
+     * 处理结果
+     */
+    @ApiModelProperty("处理结果(1.同意 2.拒绝)")
+    private String handleResult;
+
+    /**
+     * 商家备注
+     */
+    @ApiModelProperty("商家备注")
+    private String remark;
+
+    @ApiModelProperty(value = "订单下店铺信息")
+    private ConvenientMerchantVO convenientMerchantVO;
+
+    @ApiModelProperty(value = "订单下商品信息")
+    private List<ComShopFlowerOrderGoodsVO> orderGoodsVOList;
+
+    /**
+     * 商品名称
+     */
+    @ApiModelProperty("商品名称")
+    private String goodsName;
+
+    /**
+     * 商品规格名称
+     */
+    @ApiModelProperty("商品规格名称")
+    private String goodsAttrName;
+
+    @ApiModelProperty(value = "店铺名称")
+    private String storeName;
+
+    @ApiModelProperty(value = "订单金额")
+    private BigDecimal totalAmount;
+
+    @ApiModelProperty(value = "自提点名称")
+    private String pointName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFundsOrderVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFundsOrderVO.java
new file mode 100644
index 0000000..84c0a67
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFundsOrderVO.java
@@ -0,0 +1,33 @@
+package com.panzhihua.common.model.vos.shop;
+
+import java.math.BigDecimal;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("商户资金订单信息")
+public class ComShopFundsOrderVO {
+
+    @ApiModelProperty("金额")
+    // @JsonFormat(pattern = "0.00", shape = JsonFormat.Shape.STRING)
+    // @JsonSerialize(using = SerializerBigDecimal.class)
+    private BigDecimal totalAmount;
+
+    @ApiModelProperty("支付时间")
+    private String payTime;
+
+    @ApiModelProperty("订单编号")
+    private String orderNo;
+
+    @ApiModelProperty("支付方式")
+    private String payType;
+
+    @ApiModelProperty("收支类型")
+    private String type;
+
+    @ApiModelProperty("订单ID")
+    private long id;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFundsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFundsVO.java
new file mode 100644
index 0000000..75edfde
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopFundsVO.java
@@ -0,0 +1,27 @@
+package com.panzhihua.common.model.vos.shop;
+
+import java.math.BigDecimal;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("商户资金统计信息")
+public class ComShopFundsVO {
+
+    @ApiModelProperty(value = "当日收入")
+    private BigDecimal todayTotal;
+
+    @ApiModelProperty(value = "本周收入")
+    private BigDecimal weekTotal;
+
+    @ApiModelProperty(value = "本月收入")
+    private BigDecimal monthTotal;
+
+    @JsonIgnore
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopGoodsAttrVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopGoodsAttrVO.java
new file mode 100644
index 0000000..af5f793
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopGoodsAttrVO.java
@@ -0,0 +1,77 @@
+package com.panzhihua.common.model.vos.shop;
+
+import java.math.BigDecimal;
+
+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 ComShopGoodsAttrVO {
+
+    /**
+     * 商品规格id
+     */
+    @ApiModelProperty("商品规格id")
+    private Long id;
+
+    /**
+     * 商品id
+     */
+    @ApiModelProperty("商品id")
+    private Long goodsId;
+
+    /**
+     * 店铺id
+     */
+    @ApiModelProperty("店铺id")
+    private Long storeId;
+
+    /**
+     * 商品名称
+     */
+    @ApiModelProperty("商品名称")
+    private String goodsName;
+
+    /**
+     * 商品规格
+     */
+    @ApiModelProperty("商品规格")
+    private String goodsAttr;
+
+    /**
+     * 商品规格库存
+     */
+    @ApiModelProperty("商品规格库存")
+    private Integer stock;
+
+    /**
+     * 商品规格销量
+     */
+    @ApiModelProperty("商品规格销量")
+    private Integer sale;
+
+    /**
+     * 商品规格图
+     */
+    @ApiModelProperty("商品规格图")
+    private String attrPic;
+
+    /**
+     * 是否是默认规格(1.是 2.否)
+     */
+    @ApiModelProperty("是否是默认规格(1.是  2.否)")
+    private Integer isDefault;
+
+    /**
+     * 规格价格
+     */
+    @ApiModelProperty("规格价格")
+    private BigDecimal price;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopGoodsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopGoodsVO.java
new file mode 100644
index 0000000..19a862f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopGoodsVO.java
@@ -0,0 +1,121 @@
+package com.panzhihua.common.model.vos.shop;
+
+import java.math.BigDecimal;
+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;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:14
+ * @describe 商品信息
+ */
+@Data
+@ApiModel("商品信息")
+public class ComShopGoodsVO {
+
+    /**
+     * 商品id
+     */
+    @ApiModelProperty("商品id")
+    private Long id;
+
+    /**
+     * 商品名称
+     */
+    @ApiModelProperty("商品名称")
+    private String name;
+
+    /**
+     * 店铺id
+     */
+    @ApiModelProperty("店铺id")
+    private Long storeId;
+
+    /**
+     * 商品主图
+     */
+    @ApiModelProperty("商品主图")
+    private String goodsPic;
+
+    /**
+     * 商品展示图
+     */
+    @ApiModelProperty("商品展示图")
+    private String images;
+
+    /**
+     * 商品状态(1.出售中 2.已下架 3.回收站)
+     */
+    @ApiModelProperty("商品状态(1.出售中  2.已下架  3.回收站)")
+    private Integer status;
+
+    /**
+     * 商品销量
+     */
+    @ApiModelProperty("商品销量")
+    private Integer sale;
+
+    /**
+     * 商品原价
+     */
+    @ApiModelProperty("商品原价")
+    private BigDecimal originalPrice;
+
+    /**
+     * 商品现价
+     */
+    @ApiModelProperty("商品现价")
+    private BigDecimal price;
+
+    /**
+     * 商品单位
+     */
+    @ApiModelProperty("商品单位")
+    private String unit;
+
+    /**
+     * 商品排序
+     */
+    @ApiModelProperty("商品排序")
+    private Integer order;
+
+    /**
+     * 商品总库存
+     */
+    @ApiModelProperty("商品总库存")
+    private Integer stock;
+
+    /**
+     * 商品详情
+     */
+    @ApiModelProperty("商品详情")
+    private String details;
+
+    /**
+     * 配送方式(1.商家配送 2.快递物流)
+     */
+    @ApiModelProperty("配送方式(1.商家配送  2.快递物流)")
+    private Integer deliveryType;
+
+    /**
+     * 商品规格列表
+     */
+    @ApiModelProperty("商品规格列表")
+    private List<ComShopGoodsAttrVO> goodsAttrList;
+
+    /**
+     * 店铺信息
+     */
+    @ApiModelProperty("商品店铺信息")
+    private PageShopStoreVO shopStoreVO;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("创建时间")
+    private Date createAt;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopHiddenConfVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopHiddenConfVO.java
new file mode 100644
index 0000000..780443c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopHiddenConfVO.java
@@ -0,0 +1,16 @@
+package com.panzhihua.common.model.vos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("订单创建返回参数")
+public class ComShopHiddenConfVO {
+
+    @ApiModelProperty(value = "id")
+    private Long id;
+    @ApiModelProperty(value = "是否隐藏所有商家 0 否  1是")
+    private String hidden;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderCountVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderCountVO.java
new file mode 100644
index 0000000..815ea72
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderCountVO.java
@@ -0,0 +1,31 @@
+package com.panzhihua.common.model.vos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @auther yh
+ * @create 2022-11-08 17:25:45
+ * @describe 统计订单数VO
+ */
+@Data
+@ApiModel("统计订单数VO")
+public class ComShopOrderCountVO {
+
+
+
+    /**
+     * 订单状态(1.等待配送 2.配送中 3.待收货 4.待评价 5.已完成 6.已取消 7.已退款)
+     */
+    @ApiModelProperty("订单状态(1.等待配送 2.配送中 3.待收货 4.待评价 5.已完成 6.已取消 7.已退款 8.总订单)")
+    private Integer status;
+
+    /**
+     * 订单数量
+     */
+    @ApiModelProperty("订单数量")
+    private Integer amount;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderGoodsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderGoodsVO.java
new file mode 100644
index 0000000..a154e36
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderGoodsVO.java
@@ -0,0 +1,75 @@
+package com.panzhihua.common.model.vos.shop;
+
+import java.math.BigDecimal;
+
+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 ComShopOrderGoodsVO {
+
+    /**
+     * 商品名称
+     */
+    @ApiModelProperty(value = "商品名称")
+    private String goodsName;
+
+    /**
+     * 商品图片
+     */
+    @ApiModelProperty(value = "商品图片")
+    private String goodsPic;
+
+    /**
+     * 商品价格
+     */
+    @ApiModelProperty(value = "商品价格")
+    private BigDecimal price;
+
+    /**
+     * 商品数量
+     */
+    @ApiModelProperty(value = "商品数量")
+    private Integer num;
+
+    /**
+     * 商品id
+     */
+    @ApiModelProperty(value = "商品id")
+    private Long goodsId;
+
+    /**
+     * 商品规格id
+     */
+    @ApiModelProperty(value = "商品规格id")
+    private Long goodsAttrId;
+
+    /**
+     * 商品规格
+     */
+    @ApiModelProperty(value = "商品规格")
+    private String goodsAttr;
+
+    /**
+     * 商品状态(1.出售中 2.已下架 3.已删除)
+     */
+    @ApiModelProperty(value = "商品状态(1.出售中  2.已下架 3.已删除)")
+    private Integer goodsStatus = 1;
+
+    /**
+     * 商品状态(1.出售中 2.已下架 3.已删除)
+     */
+    public interface goodsStatus {
+        int csz = 1;
+        int yxj = 2;
+        int ysc = 3;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderOperateVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderOperateVO.java
new file mode 100644
index 0000000..70328f6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderOperateVO.java
@@ -0,0 +1,31 @@
+package com.panzhihua.common.model.vos.shop;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("订单操作日志")
+public class ComShopOrderOperateVO {
+
+    @ApiModelProperty(value = "订单号")
+    private String orderNo;
+
+    @ApiModelProperty(value = "操作人")
+    private String operationBy;
+
+    @ApiModelProperty(value = "操作时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date operationTime;
+
+    @ApiModelProperty(value = "操作类型(1.创建订单 2.取消订单 3.订单支付 4.订单发货 5.订单完成)")
+    private Integer operationType;
+
+    @ApiModelProperty(value = "操作内容")
+    private String operationContent;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderPageVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderPageVO.java
new file mode 100644
index 0000000..0d831c9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderPageVO.java
@@ -0,0 +1,93 @@
+package com.panzhihua.common.model.vos.shop;
+
+import java.math.BigDecimal;
+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;
+
+@Data
+@ApiModel("订单信息")
+public class ComShopOrderPageVO {
+
+    @ApiModelProperty(value = "订单id")
+    private Long orderId;
+
+    @ApiModelProperty(value = "订单号")
+    private String orderNo;
+
+    @ApiModelProperty(value = "订单金额")
+    private BigDecimal orderTotal;
+
+    @ApiModelProperty(value = "店铺id")
+    private Long storeId;
+
+    @ApiModelProperty(value = "订单状态(1.待付款 2.代发货 3.待收货 4.待评价 5.已完成 6.已取消)")
+    private Integer status;
+
+    @ApiModelProperty(value = "支付状态(1.未支付 2.已支付)")
+    private Integer payStatus;
+
+    @ApiModelProperty(value = "用户收货地址id")
+    private Long receiverId;
+
+    @ApiModelProperty(value = "支付金额")
+    private BigDecimal payAmount;
+
+    @ApiModelProperty(value = "配送方式")
+    private Integer deliveryType;
+
+    @ApiModelProperty(value = "订单备注")
+    private String remark;
+
+    @ApiModelProperty(value = "支付方式(1.微信支付)")
+    private Integer payType;
+
+    @ApiModelProperty(value = "支付时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date payTime;
+
+    @ApiModelProperty(value = "订单发货状态(1.未发货  2.已发货)")
+    private Integer deliveryStatus;
+
+    @ApiModelProperty(value = "物流公司")
+    private String logisticsCompany;
+
+    @ApiModelProperty(value = "物流单号")
+    private String logisticsNo;
+
+    @ApiModelProperty(value = "下单时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty(value = "支付单号")
+    private String payNo;
+
+    @ApiModelProperty(value = "发货时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date deliveryTime;
+
+    @ApiModelProperty(value = "收货时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date receivingTime;
+
+    @ApiModelProperty(value = "订单下商品信息")
+    private List<ComShopOrderGoodsVO> orderGoodsVOList;
+
+    @ApiModelProperty(value = "订单下店铺信息")
+    private PageShopStoreVO shopStoreVO;
+
+    @ApiModelProperty(value = "用户收货地址id")
+    private ComShopUserAddressVO userAddressVO;
+
+    @ApiModelProperty(value = "商品名称")
+    private String goodsName;
+
+    @ApiModelProperty(value = "订单日志")
+    private List<ComShopOrderOperateVO> logs;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderPreviewVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderPreviewVO.java
new file mode 100644
index 0000000..5938545
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderPreviewVO.java
@@ -0,0 +1,48 @@
+package com.panzhihua.common.model.vos.shop;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+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 ComShopOrderPreviewVO {
+
+    /**
+     * 用户默认收货地址
+     */
+    @ApiModelProperty(value = "用户默认收货地址")
+    private ComShopUserAddressVO userAddressVO;
+
+    /**
+     * 店铺信息
+     */
+    @ApiModelProperty(value = "店铺信息")
+    private PageShopStoreVO shopStoreVO;
+
+    /**
+     * 待购买商品列表
+     */
+    @ApiModelProperty(value = "待购买商品列表")
+    private List<ComShopOrderGoodsVO> orderGoodsList;
+
+    /**
+     * 订单总金额
+     */
+    @ApiModelProperty(value = "订单总金额")
+    private BigDecimal orderTotal;
+
+    /**
+     * 订单商品总数量
+     */
+    @ApiModelProperty(value = "订单商品总数量")
+    private Integer orderGoodsTotal;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderSearchVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderSearchVO.java
new file mode 100644
index 0000000..a1ac37f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderSearchVO.java
@@ -0,0 +1,103 @@
+package com.panzhihua.common.model.vos.shop;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther cedoo
+ * @create 2021-4-17 17:54:27
+ * @describe 订单表搜索结果类
+ */
+
+@Data
+@ApiModel("商品订单")
+public class ComShopOrderSearchVO implements Serializable {
+
+    @ApiModelProperty("订单id")
+    private Long id;
+
+    @ApiModelProperty("店铺id")
+    private Long storeId;
+
+    @ApiModelProperty("店铺名称")
+    private String storeName;
+
+    @ApiModelProperty("用户id")
+    private Long userId;
+
+    @ApiModelProperty("用户账号")
+    private Long userName;
+
+    @ApiModelProperty("订单号")
+    private String orderNo;
+
+    @ApiModelProperty("支付单号")
+    private String payNo;
+
+    @ApiModelProperty("微信交易单号")
+    private String wxTardeNo;
+
+    @ApiModelProperty(value = "订单状态(1.等待配送 2.配送中 3.待收货 4.待评价 5.已完成 6.已取消 7.已退款)")
+    private Integer status;
+
+    @ApiModelProperty("支付状态(1.未支付 2.已支付)")
+    private Integer payStatus;
+
+    @ApiModelProperty("订单收货人id")
+    private Long receiverId;
+
+    @ApiModelProperty("收货人")
+    private String receiverName;
+
+    @ApiModelProperty("电话")
+    private String receiverPhone;
+
+    @ApiModelProperty("商品")
+    private String goodsName;
+
+    @ApiModelProperty("订单总金额")
+    private BigDecimal totalAmount;
+
+    @ApiModelProperty("优惠总金额")
+    private BigDecimal discountAmount;
+
+    @ApiModelProperty("支付总金额")
+    private BigDecimal payAmount;
+
+    @ApiModelProperty("支付方式(1.微信支付)")
+    private Integer payType;
+
+    @ApiModelProperty("支付时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date payTime;
+
+    @ApiModelProperty("配送方式(1.商家配送  2.快递物流)")
+    private Integer deliveryType;
+
+    @ApiModelProperty("订单发货状态(1.未发货  2.已发货)")
+    private Integer deliveryStatus;
+
+    @ApiModelProperty("物流公司")
+    private String logisticsCompany;
+
+    @ApiModelProperty("物流单号")
+    private String logisticsNo;
+
+    @ApiModelProperty("下单时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("自提点地址")
+    private String address;
+
+    @ApiModelProperty("自提点名称")
+    private String pointName;
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderStoreIdCountVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderStoreIdCountVO.java
new file mode 100644
index 0000000..39b0725
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderStoreIdCountVO.java
@@ -0,0 +1,29 @@
+package com.panzhihua.common.model.vos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther yh
+ * @create 2022-11-08 17:25:45
+ * @describe 统计订单数VO
+ */
+@Data
+@ApiModel("根据商品统计日、月、年、累计订单量")
+public class ComShopOrderStoreIdCountVO {
+
+
+
+    /**
+     * 订
+     */
+    @ApiModelProperty("订单数量")
+    private Integer countNum;
+
+    /**
+     * 统计名称
+     */
+    @ApiModelProperty("统计名称")
+    private String countName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderStoreIdNumVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderStoreIdNumVO.java
new file mode 100644
index 0000000..f18f40a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderStoreIdNumVO.java
@@ -0,0 +1,31 @@
+package com.panzhihua.common.model.vos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @auther yh
+ * @create 2022-11-08 17:25:45
+ * @describe 商家后台经营数据统计
+ */
+@Data
+@ApiModel("商家后台经营数据统计")
+public class ComShopOrderStoreIdNumVO {
+
+
+
+    /**
+     * 订
+     */
+    @ApiModelProperty("订单数量")
+    private BigDecimal countNum;
+
+    /**
+     * 统计名称
+     */
+    @ApiModelProperty("统计名称")
+    private String countName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderVO.java
new file mode 100644
index 0000000..5dc03cf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopOrderVO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.vos.shop;
+
+import java.math.BigDecimal;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("订单创建返回参数")
+public class ComShopOrderVO {
+
+    @ApiModelProperty(value = "订单号")
+    private String orderNo;
+
+    @ApiModelProperty(value = "订单ID")
+    private Long orderId;
+
+    @ApiModelProperty(value = "订单金额")
+    private BigDecimal orderTotal;
+
+    @ApiModelProperty(value = "请求支付返回参数")
+    private String payResult;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopSysConfVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopSysConfVO.java
new file mode 100644
index 0000000..489f19f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopSysConfVO.java
@@ -0,0 +1,22 @@
+package com.panzhihua.common.model.vos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("订单创建返回参数")
+public class ComShopSysConfVO {
+
+    @ApiModelProperty(value = "id")
+    private Long id;
+    @ApiModelProperty(value = "配置名称")
+    private String name;
+    @ApiModelProperty(value = "配置备注")
+    private String note;
+    @ApiModelProperty(value = "配置值")
+    private String val;
+    @ApiModelProperty(value = "是否生效(0 否 1 是)")
+    private String enabled;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopUserAddressVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopUserAddressVO.java
new file mode 100644
index 0000000..6f4806b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ComShopUserAddressVO.java
@@ -0,0 +1,88 @@
+package com.panzhihua.common.model.vos.shop;
+
+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 ComShopUserAddressVO {
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty("用户收获地址id")
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty("用户id")
+    private Long userId;
+
+    /**
+     * 收货人名称
+     */
+    @ApiModelProperty("收货人名称")
+    private String name;
+
+    /**
+     * 收货人手机号
+     */
+    @ApiModelProperty("收货人手机号")
+    private String phone;
+
+    /**
+     * 收货人省份编码
+     */
+    @ApiModelProperty("收货人省份编码")
+    private String provinceCode;
+
+    /**
+     * 收货人省份名称
+     */
+    @ApiModelProperty("收货人省份名称")
+    private String provinceName;
+
+    /**
+     * 收货人城市编码
+     */
+    @ApiModelProperty("收货人城市编码")
+    private String cityCode;
+
+    /**
+     * 收货人城市名称
+     */
+    @ApiModelProperty("收货人城市名称")
+    private String cityName;
+
+    /**
+     * 收货人区县编码
+     */
+    @ApiModelProperty("收货人区县编码")
+    private String districtCode;
+
+    /**
+     * 收货人区县名称
+     */
+    @ApiModelProperty("收货人区县名称")
+    private String districtName;
+
+    /**
+     * 收货人详细地址
+     */
+    @ApiModelProperty("收货人详细地址")
+    private String detailAddress;
+
+    /**
+     * 是否是默认地址(1.是 2.否)
+     */
+    @ApiModelProperty("是否是默认地址(1.是  2.否)")
+    private Integer isDefault;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/LoginMerchantUserInfoVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/LoginMerchantUserInfoVO.java
new file mode 100644
index 0000000..be9798f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/LoginMerchantUserInfoVO.java
@@ -0,0 +1,22 @@
+package com.panzhihua.common.model.vos.shop;
+
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @title: LoginMerchantUserInfoVO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务商家登录信息
+ * @author: hans
+ * @date: 2021/09/17 18:46
+ */
+@Data
+@ApiModel(value = "便民服务商家登录信息")
+public class LoginMerchantUserInfoVO extends LoginUserInfoVO {
+    @ApiModelProperty("用户商铺信息")
+    private ConvenientMerchantVO merchantInfo;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/LoginStoreUserInfoVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/LoginStoreUserInfoVO.java
new file mode 100644
index 0000000..5f5a5fb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/LoginStoreUserInfoVO.java
@@ -0,0 +1,169 @@
+package com.panzhihua.common.model.vos.shop;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Set;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.panzhihua.common.model.vos.community.ComActVO;
+import com.panzhihua.common.model.vos.community.ComMngStructAreaVO;
+import com.panzhihua.common.model.vos.community.ComMngStructHouseVO;
+import com.panzhihua.common.model.vos.user.ComMngFamilyInfoVO;
+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: 登录用户信息
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-24 09:35
+ **/
+@Data
+@ApiModel(value = "用户信息")
+public class LoginStoreUserInfoVO {
+
+    @ApiModelProperty("user_id")
+    private Long userId;
+
+    @ApiModelProperty("微信会话密钥")
+    private String sessionKey;
+
+    @ApiModelProperty("用户在开放平台的唯一标识符")
+    private String unionid;
+
+    @ApiModelProperty("登录账户")
+    private String account;
+
+    @ApiModelProperty("登录密码")
+    private String password;
+
+    @ApiModelProperty("微信小程序唯一标识")
+    private String openid;
+
+    @ApiModelProperty("手机号")
+    private String phone;
+
+    @ApiModelProperty("昵称")
+    private String nickName;
+
+    @ApiModelProperty("真实名字")
+    @NotBlank(groups = {AddGroup.class}, message = "真实名字不能为空")
+    private String name;
+
+    @ApiModelProperty("社区id")
+    @Min(value = 1, groups = {PutGroup.class}, message = "社区id不能为空")
+    @NotNull(groups = {PutGroup.class}, message = "社区id不能为空")
+    private Long communityId;
+
+    @ApiModelProperty("社区名字")
+    private String communityName;
+
+    @ApiModelProperty("性别 1 男 2 女")
+    private Integer sex;
+
+    @ApiModelProperty("是否社区团队或者党委或系统管理人员 1 是 2 否")
+    private Integer ismemberrole;
+
+    @ApiModelProperty("生日")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date birthday;
+
+    @ApiModelProperty("头像")
+    private String imageUrl;
+
+    @ApiModelProperty(value = "用户类型 1 小程序 2 运营平台 3 社区平台")
+    private Integer type;
+
+    @ApiModelProperty("职业")
+    private String job;
+
+    @ApiModelProperty("是否志愿者 0否 1 是")
+    private Integer isVolunteer;
+
+    @ApiModelProperty("是否党员 0 否 1 是")
+    private Integer isPartymember;
+
+    @ApiModelProperty("1 启用 2 禁用")
+    private Integer status;
+
+    @ApiModelProperty("创建时间")
+    private Date createAt;
+
+    @ApiModelProperty("最后登录时间")
+    private Date lastLoginTime;
+
+    @ApiModelProperty("角色集合")
+    private Set<String> roles;
+
+    @ApiModelProperty("权限集合")
+    private Set<String> permissions;
+
+    @ApiModelProperty("人脸采集照片url")
+    private String faceUrl;
+
+    @ApiModelProperty("驳回原因")
+    private String rejectReson;
+
+    @ApiModelProperty("身份证号")
+    @NotBlank(groups = {AddGroup.class}, message = "身份证号不能为空")
+    private String idCard;
+
+    @ApiModelProperty("标签 多个用,隔开")
+    private String tags;
+
+    @ApiModelProperty("家庭id")
+    private Long familyId;
+
+    @ApiModelProperty(value = "分页每页数量", example = "10")
+    private Long pageSize;
+
+    @ApiModelProperty(value = "分页当前记录数", example = "1")
+    private Long pageNum;
+
+    @ApiModelProperty("人脸采集审核状态 0 待审核 1 审核通过 2驳回")
+    private Integer faceState;
+
+    @ApiModelProperty("操作类型 1通过 2驳回 3删除")
+    private Integer operationType;
+
+    @ApiModelProperty("家庭成员")
+    private List<ComMngFamilyInfoVO> comMngFamilyInfoVOS;
+
+    @ApiModelProperty("房屋信息")
+    private List<ComMngStructHouseVO> comMngStructHouseVOS;
+
+    @ApiModelProperty("用户小区id")
+    @Min(value = 1, groups = {PutGroup.class}, message = "用户小区id不能为空")
+    @NotNull(groups = {PutGroup.class}, message = "用户小区id不能为空")
+    private Long areaId;
+
+    @ApiModelProperty("用户所在社区信息")
+    private ComActVO comActVO;
+
+    @ApiModelProperty("小区信息")
+    private ComMngStructAreaVO comMngStructAreaVO;
+
+    @ApiModelProperty("0 未申请 1 申请中 2 通过 3 驳回")
+    private Integer volunteerStatus;
+
+    @ApiModelProperty("是否注册 0 否 1 是")
+    private Integer isRegister;
+
+    @ApiModelProperty("年龄")
+    private Integer age;
+
+    @ApiModelProperty("政治面貌:1 - 党员;2 - 团员;3 - 群众")
+    private Integer politicalOutlook;
+
+    @ApiModelProperty("用户商铺信息")
+    private ShopStoreVO storeInfo;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/OrderStatisticsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/OrderStatisticsVO.java
new file mode 100644
index 0000000..5926d6a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/OrderStatisticsVO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.vos.shop;
+
+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 OrderStatisticsVO {
+
+    @ApiModelProperty(value = "待付款订单数")
+    private Integer paymentNum = 0;
+
+    @ApiModelProperty(value = "待发货订单数")
+    private Integer deliverNum = 0;
+
+    @ApiModelProperty(value = "待收货订单数")
+    private Integer receivingNum = 0;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/PageShopFlowerGoodsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/PageShopFlowerGoodsVO.java
new file mode 100644
index 0000000..23c6958
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/PageShopFlowerGoodsVO.java
@@ -0,0 +1,98 @@
+package com.panzhihua.common.model.vos.shop;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @auther yh
+ * @describe * @describe 商品VO
+ */
+@Data
+@ApiModel("商品")
+public class PageShopFlowerGoodsVO {
+
+    @ApiModelProperty("商品id")
+    private Long id;
+
+    @ApiModelProperty("商品分类id")
+    private Long typeId;
+
+    @ApiModelProperty("商品名称")
+    private String name;
+
+    @ApiModelProperty("商铺名称")
+    private String storeName;
+
+    @ApiModelProperty("店铺id")
+    private Long storeId;
+
+    @ApiModelProperty("商品主图")
+    private String goodsPic;
+
+    @ApiModelProperty("商品展示图")
+    private String images;
+
+    @ApiModelProperty("商品状态(1.上架  2.已下架  3.回收站)")
+    private Integer status;
+
+    @ApiModelProperty("商品销量")
+    private Integer sale;
+
+    @ApiModelProperty("商品原价")
+    private BigDecimal originalPrice;
+
+    @ApiModelProperty("商品现价")
+    private BigDecimal price;
+
+    @ApiModelProperty("商品单位")
+    private String unit;
+
+    @ApiModelProperty("商品排序")
+    private Integer order;
+
+    @ApiModelProperty("商品总库存")
+    private Integer stock;
+
+    @ApiModelProperty("商品详情")
+    private String details;
+
+    @ApiModelProperty("商品备注")
+    private String remark;
+
+    @ApiModelProperty("商品描述")
+    private String goodsDescribe;
+
+    @ApiModelProperty("配送方式(1.自提  2.快递)")
+    private String deliveryType;
+
+    @ApiModelProperty("删除状态(1.未删除  2.已删除)")
+    private Integer deleteStatus;
+
+    @ApiModelProperty("创建时间")
+    private Date createAt;
+
+    @ApiModelProperty("修改时间")
+    private Date updateAt;
+
+    @ApiModelProperty("规格")
+    private List<AddShopFlowerGoodsAttrVO> goodsAttrs;
+
+    @ApiModelProperty("所属分类")
+    private String categoryName;
+    /**
+     * 浏览量
+     */
+    @ApiModelProperty("浏览量")
+    private Integer viewNum;
+
+    /**
+     * 规格名称
+     */
+    @ApiModelProperty("规格名称")
+    private String goodsAttrName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/PageShopGoodsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/PageShopGoodsVO.java
new file mode 100644
index 0000000..1744571
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/PageShopGoodsVO.java
@@ -0,0 +1,84 @@
+package com.panzhihua.common.model.vos.shop;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther llming
+ * @describe * @describe 商品VO
+ */
+@Data
+@ApiModel("商品")
+public class PageShopGoodsVO {
+
+    @ApiModelProperty("商品id")
+    private Long id;
+
+    @ApiModelProperty("商品分类id")
+    private Long typeId;
+
+    @ApiModelProperty("商品名称")
+    private String name;
+
+    @ApiModelProperty("商铺名称")
+    private String storeName;
+
+    @ApiModelProperty("店铺id")
+    private Long storeId;
+
+    @ApiModelProperty("商品主图")
+    private String goodsPic;
+
+    @ApiModelProperty("商品展示图")
+    private String images;
+
+    @ApiModelProperty("商品状态(1.出售中  2.已下架  3.回收站)")
+    private Integer status;
+
+    @ApiModelProperty("商品销量")
+    private Integer sale;
+
+    @ApiModelProperty("商品原价")
+    private BigDecimal originalPrice;
+
+    @ApiModelProperty("商品现价")
+    private BigDecimal price;
+
+    @ApiModelProperty("商品单位")
+    private String unit;
+
+    @ApiModelProperty("商品排序")
+    private Integer order;
+
+    @ApiModelProperty("商品总库存")
+    private Integer stock;
+
+    @ApiModelProperty("商品详情")
+    private String details;
+
+    @ApiModelProperty("商品备注")
+    private String remark;
+
+    @ApiModelProperty("商品描述")
+    private String goodsDescribe;
+
+    @ApiModelProperty("配送方式(1.商家配送  2.快递物流)")
+    private Integer deliveryType;
+
+    @ApiModelProperty("删除状态(1.未删除  2.已删除)")
+    private Integer deleteStatus;
+
+    @ApiModelProperty("创建时间")
+    private Date createAt;
+
+    @ApiModelProperty("修改时间")
+    private Date updateAt;
+
+    @ApiModelProperty("规格")
+    private List<AddShopGoodsAttrVO> goodsAttts;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/PageShopStoreVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/PageShopStoreVO.java
new file mode 100644
index 0000000..e652994
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/PageShopStoreVO.java
@@ -0,0 +1,73 @@
+package com.panzhihua.common.model.vos.shop;
+
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+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;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:14
+ * @describe 店铺VO
+ */
+@Data
+@ApiModel("商城店铺")
+public class PageShopStoreVO {
+
+    @ApiModelProperty("商家、联系人")
+    private String contacts;
+
+    @ApiModelProperty("店铺登陆账号")
+    private String storeAccount;
+
+    @ApiModelProperty("联系方式")
+    private String phone;
+
+    @ApiModelProperty("店铺状态(1.启用  2.禁用)")
+    private Integer status;
+
+    @ApiModelProperty("店铺id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("店铺名称")
+    private String name;
+
+    @ApiModelProperty("店铺logo")
+    private String logo;
+
+    @ApiModelProperty("配送方式(1.商家配送  2.快递物流)")
+    private Integer deliveryType;
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("店铺详情")
+    private String storeDetail;
+
+    @ApiModelProperty("店铺描述")
+    private String storeDescribe;
+
+    @ApiModelProperty("店铺销量")
+    private Integer sale;
+
+    @ApiModelProperty("店铺登陆密码")
+    private String storePassword;
+
+    @ApiModelProperty("店内商品列表")
+    private List<ComShopGoodsVO> goodsList;
+
+    @ApiModelProperty("该商家是否订单完成")
+    private Boolean orderDone;
+
+    @ApiModelProperty("删除状态(1.未删除  2.已删除)")
+    private Integer deleteStatus;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ShopOperLogVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ShopOperLogVO.java
new file mode 100644
index 0000000..d0e18b1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ShopOperLogVO.java
@@ -0,0 +1,85 @@
+package com.panzhihua.common.model.vos.shop;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 商城后台操作日志
+ * @author: cedoo
+ * @create: 2021-4-17 10:11:45
+ **/
+@Data
+@ApiModel("操作日志")
+public class ShopOperLogVO {
+
+    @ApiModelProperty("日志主键")
+    private Long operId;
+
+    @ApiModelProperty("模块标题")
+    private String title;
+
+    @ApiModelProperty("业务类型")
+    private Integer businessType;
+
+    @ApiModelProperty("业务类型名称")
+    private String businessName;
+
+    @ApiModelProperty("方法名称")
+    private String method;
+
+    @ApiModelProperty("请求方式")
+    private String requestMethod;
+
+    @ApiModelProperty("操作类别(0其它 1后台用户 2手机端用户)")
+    private Integer operatorType;
+
+    @ApiModelProperty("操作人员")
+    private String operName;
+
+    @ApiModelProperty("部门名称")
+    private String deptName;
+
+    @ApiModelProperty("请求url")
+    private String operUrl;
+
+    @ApiModelProperty("主机地址")
+    private String operIp;
+
+    @ApiModelProperty("操作地点")
+    private String operLocation;
+
+    @ApiModelProperty("请求参数")
+    private String operParam;
+
+    @ApiModelProperty("返回参数")
+    private String jsonResult;
+
+    @ApiModelProperty("操作状态(0正常 1异常)")
+    private Integer status;
+
+    @ApiModelProperty("错误消息")
+    private String errorMsg;
+
+    @ApiModelProperty("操作时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date operTime;
+
+    @ApiModelProperty("社区id")
+    private Long communityId;
+
+    @ApiModelProperty("操作账户")
+    private String account;
+
+    @ApiModelProperty("用户ID")
+    private Long userId;
+
+    @ApiModelProperty("用户名")
+    private String userName;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ShopStoreVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ShopStoreVO.java
new file mode 100644
index 0000000..2af296c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/shop/ShopStoreVO.java
@@ -0,0 +1,80 @@
+package com.panzhihua.common.model.vos.shop;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Pattern;
+import javax.validation.constraints.Size;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import org.hibernate.validator.constraints.Length;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther llming
+ * @describe
+ */
+@Data
+@ApiModel("商家")
+public class ShopStoreVO {
+
+    @ApiModelProperty("商家姓名")
+    private String contacts;
+
+    @ApiModelProperty("店铺名称")
+    @NotBlank(message = "店铺名称不能为空")
+    @Size(max = 15, min = 1, message = "限制15字")
+    private String name;
+
+    @ApiModelProperty("联系方式")
+    @NotBlank(message = "手机号码不能为空")
+    @NotNull(message = "手机号不能为空")
+    @Length(min = 11, max = 11, message = "手机号只能为11位")
+    @Pattern(regexp = "^[1][3,4,5,6,7,8,9][0-9]{9}$", message = "手机号格式有误")
+    private String phone;
+
+    @ApiModelProperty("店铺登陆账号")
+    // @Pattern(message="【密码】格式为6-16个字符,英文,数字,且必须包含英文和数字",regexp="^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,16}$")
+    @NotBlank(message = "店铺登陆账号不能为空")
+    private String storeAccount;
+
+    @ApiModelProperty("店铺登陆密码")
+    @NotBlank(message = "店铺登陆密码不能为空")
+    @Pattern(message = "【密码】格式为6-16个字符,英文,数字,且必须包含英文和数字", regexp = "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,16}$")
+    private String storePassword;
+
+    @ApiModelProperty("配送方式(1.商家配送  2.快递物流)")
+    @NotNull(message = "配送方式(1.商家配送  2.快递物流)不能为空")
+    private Integer deliveryType;
+
+    @ApiModelProperty("店铺logo")
+    private String logo;
+    /**
+     * 保存时添加sys_user所需
+     */
+    @ApiModelProperty("sysUserId")
+    private Long sysUserId;
+
+    @ApiModelProperty(" 店铺状态(1.启用  2.禁用)")
+    private Integer status;
+
+    /**
+     * 当前登陆用户Id
+     */
+    @JsonIgnore
+    private Long loginUserId;
+
+    @ApiModelProperty("id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("商家简介")
+    @Size(max = 25, min = 0, message = "简介长度不符合!")
+    private String storeDescribe;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/union/StructuredVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/union/StructuredVO.java
new file mode 100644
index 0000000..70aec17
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/union/StructuredVO.java
@@ -0,0 +1,89 @@
+package com.panzhihua.common.model.vos.union;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@ApiModel("结构化数据类")
+@Data
+public class StructuredVO {
+
+    @ApiModelProperty("跟踪 ID")
+    private String traceId;
+
+    @ApiModelProperty("结构化 ID")
+    private String structuredId;
+
+    @ApiModelProperty("外部设备 ID")
+    private String extDeviceId;
+
+    @ApiModelProperty("设备编码")
+    private String deviceCode;
+
+    @ApiModelProperty("平台编码")
+    private String platformCode;
+
+    @ApiModelProperty("应用密钥")
+    private String appKey;
+
+    @ApiModelProperty("能力编码")
+    private String abilityCode;
+
+    @ApiModelProperty("能力版本")
+    private String abilityVersion;
+
+    @ApiModelProperty("API ID")
+    private Long apiId;
+
+    @ApiModelProperty("创建时间")
+    private Long gmtCreate;
+
+    @ApiModelProperty("设备名称")
+    private String deviceName;
+
+    @ApiModelProperty("设备 ID")
+    private Long deviceId;
+
+    @ApiModelProperty("组织 ID")
+    private Long orgId;
+
+    @ApiModelProperty("结构化数据")
+    private String structuredData;
+
+    @ApiModelProperty("图片路径")
+    private String picPath;
+
+    @ApiModelProperty("图片 Base64")
+    private String imageBase64;
+
+    @ApiModelProperty("视频 Base64")
+    private String videoBase64;
+
+    @ApiModelProperty("视频路径")
+    private String videoPath;
+
+    @ApiModelProperty("能力名称")
+    private String abilityName;
+
+    @ApiModelProperty("能力 ID")
+    private Long abilityId;
+
+    @ApiModelProperty("识别结果")
+    private String recognitionResult;
+
+    @ApiModelProperty("帧时间")
+    private String frameTime;
+
+    @ApiModelProperty("API 参数")
+    private String apiParams;
+
+    @ApiModelProperty("平台代码")
+    private String  plaformCode;
+
+    @ApiModelProperty("预设图像路径")
+    private String presetImagePath;
+
+    @ApiModelProperty("事件临时名称")
+    private String eventTempName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/AdministratorsUserVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/AdministratorsUserVO.java
new file mode 100644
index 0000000..ddebd08
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/AdministratorsUserVO.java
@@ -0,0 +1,116 @@
+package com.panzhihua.common.model.vos.user;
+
+import java.util.Date;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.Pattern;
+
+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.validated.AddGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 管理员账户
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-24 09:31
+ **/
+@Data
+@ApiModel("管理员账户")
+public class AdministratorsUserVO {
+
+    @ApiModelProperty("账户")
+    @Pattern(groups = {AddGroup.class}, message = "【账户】2-20个字符,英文,数字", regexp = "^[0-9A-Za-z]{2,20}$")
+    private String account;
+
+    @ApiModelProperty("密码")
+    @Pattern(groups = {AddGroup.class}, message = "密码强度过低,请将密码长度设置为8-16位,且包含字母、数字、字符。",
+        regexp = "^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\\W_!@#$%^&*.`~()-+=]+$)(?![a-z0-9]+$)(?![a-z\\W_!@#$%^&.*`~()-+=]+$)(?![0-9\\W_!@#$%^.&*`~()-+=]+$)[a-zA-Z0-9\\W_!@#$%^&.*`~()-+=]{8,16}$")
+    private String password;
+
+    @ApiModelProperty("用户名称")
+    @Pattern(groups = {AddGroup.class}, message = "【用户名称】2-16个字符,英文,中文,数字", regexp = "^[0-9A-Za-z\u4e00-\u9fa5]{2,16}$")
+    private String name;
+
+    @ApiModelProperty("角色")
+    @JsonSerialize(using = ToStringSerializer.class)
+    @Min(value = 1, groups = {AddGroup.class}, message = "角色不能为空")
+    private Long roleId;
+
+    @ApiModelProperty("手机号")
+    @Pattern(groups = {AddGroup.class}, message = "【手机号】格式错误", regexp = "1[3|4|5|7|8][0-9]\\d{8}")
+    private String phone;
+
+    @ApiModelProperty("状态 1 启用 2 禁用")
+    @Min(groups = {AddGroup.class}, value = 1, message = "账户状态不能为空")
+    private Integer status;
+
+    @ApiModelProperty(value = "人员所在平台 用户类型 1 小程序 2 运营平台 3 社区平台 4 街道平台 5 商家", hidden = true)
+    private Integer type;
+
+    @ApiModelProperty(value = "小区id", hidden = true)
+    private Long areaId;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty(value = "用户主键")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long userId;
+
+    @ApiModelProperty(value = "当前页数")
+    private Long pageNum;
+
+    @ApiModelProperty(value = "每页记录数")
+    private Long pageSize;
+
+    @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 lastLoginTime;
+
+    @ApiModelProperty(value = "角色名字")
+    private String roleName;
+
+    @ApiModelProperty(value = "商铺名称")
+    private String shopStoreName;
+
+    @ApiModelProperty(value = "商铺Id")
+    private String shopStorePhone;
+
+    @ApiModelProperty(value = "用户昵称")
+    private String nickName;
+
+    @ApiModelProperty(value = "身份证")
+    private String idCard;
+
+    @ApiModelProperty("头像")
+    private String imageUrl;
+
+    private String areaCode;
+
+    @ApiModelProperty(value = "街道id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long streetId;
+
+    @ApiModelProperty(value = "三社账户类型  1街道 2社会组织 3社会组织成员")
+    private Integer socialType;
+
+    @ApiModelProperty("社会组织id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long orgId;
+
+    @ApiModelProperty("绑定单位")
+    private String relationName;
+
+    private String appid;
+    private String loveIntegral;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/AreaVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/AreaVO.java
new file mode 100644
index 0000000..88ed712
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/AreaVO.java
@@ -0,0 +1,26 @@
+package com.panzhihua.common.model.vos.user;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.annotations.ApiOperation;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+@ApiModel
+public class AreaVO implements Serializable {
+
+    @ApiModelProperty("区县名")
+    private String name;
+
+    @ApiModelProperty("区县code")
+    private Integer id;
+
+    @ApiModelProperty("下属街道列表")
+    private List<StreetVO> streetList;
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/AreaVOS.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/AreaVOS.java
new file mode 100644
index 0000000..ffc9c4e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/AreaVOS.java
@@ -0,0 +1,21 @@
+package com.panzhihua.common.model.vos.user;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+@Data
+@ApiModel
+public class AreaVOS implements Serializable {
+    @ApiModelProperty("区县名")
+    private String name;
+
+    @ApiModelProperty("区县code")
+    private Integer id;
+
+    @ApiModelProperty("下属街道列表")
+    private List<StreetVOS> childList;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/AreaVOStr.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/AreaVOStr.java
new file mode 100644
index 0000000..dab06ba
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/AreaVOStr.java
@@ -0,0 +1,22 @@
+package com.panzhihua.common.model.vos.user;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+@ApiModel
+public class AreaVOStr implements Serializable {
+    @ApiModelProperty("区县名")
+    private String name;
+
+    @ApiModelProperty("区县code")
+    private String id;
+
+    @ApiModelProperty("下属街道列表")
+    private List<StreetVOStr> childList;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/ChangePasswordVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/ChangePasswordVO.java
new file mode 100644
index 0000000..3c08b43
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/ChangePasswordVO.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.vos.user;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.Pattern;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 修改密码
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 10:23
+ **/
+@Data
+@ApiModel("修改密码")
+public class ChangePasswordVO {
+
+    @ApiModelProperty("旧密码")
+    @NotEmpty(message = "旧密码不能为空")
+    private String oldPassword;
+
+    @ApiModelProperty("新密码")
+    @NotBlank(message = "新密码不能为空")
+    @Pattern(message = "密码强度过低,请将密码长度设置为12-16位,且包含字母、数字、字符。", regexp = "^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\\W_!@#$%^&*.`~()-+=]+$)(?![a-z0-9]+$)(?![a-z\\W_!@#$%^&.*`~()-+=]+$)(?![0-9\\W_!@#$%^.&*`~()-+=]+$)[a-zA-Z0-9\\W_!@#$%^&.*`~()-+=]{12,16}$")
+    private String newPassword;
+
+    @ApiModelProperty(hidden = true, value = "当前登录用户id")
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/ComHouseMemberVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/ComHouseMemberVo.java
new file mode 100644
index 0000000..8a00d59
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/ComHouseMemberVo.java
@@ -0,0 +1,48 @@
+package com.panzhihua.common.model.vos.user;
+
+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;
+
+@Data
+@ApiModel("户主关系对象")
+@EncryptDecryptClass
+public class ComHouseMemberVo {
+
+    @ApiModelProperty("房屋成员用户id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long populId;
+
+    @ApiModelProperty("姓名")
+    private String name;
+
+    @ApiModelProperty("手机号")
+    @EncryptDecryptField
+    // @Sensitive(strategy = SensitiveStrategy.PHONE)
+    private String phone;
+
+    @ApiModelProperty("与户主关系(1.户主 2.配偶 3.子女 4.孙女 5.父母 6.其他)")
+    private String relation;
+
+    @ApiModelProperty("年龄")
+    private Integer age;
+
+    @ApiModelProperty("出生年月")
+    private String birthDay;
+
+    @ApiModelProperty("健康状况")
+    private String healthy;
+
+    @ApiModelProperty("身份证号")
+    @EncryptDecryptField
+    private String cardNo;
+
+    @ApiModelProperty("工作单位")
+    private String workCompany;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/ComMngFamilyInfoVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/ComMngFamilyInfoVO.java
new file mode 100644
index 0000000..95e8791
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/ComMngFamilyInfoVO.java
@@ -0,0 +1,76 @@
+package com.panzhihua.common.model.vos.user;
+
+import java.util.Date;
+
+import javax.validation.constraints.NotBlank;
+
+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.validated.AddGroup;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 家庭
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-14 16:53
+ **/
+@Data
+@ApiModel("社区》社区管理》家庭信息")
+public class ComMngFamilyInfoVO {
+
+    @ApiModelProperty("自增id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("本人id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long userId;
+
+    @ApiModelProperty("与本人关系")
+    @NotBlank(groups = {AddGroup.class}, message = "与本人关系不能为空")
+    private String relationship;
+
+    @ApiModelProperty("名字")
+    @NotBlank(groups = {AddGroup.class}, message = "名字不能为空")
+    private String name;
+
+    @ApiModelProperty("身份证号")
+    @NotBlank(groups = {AddGroup.class}, message = "身份证号不能为空")
+    private String idCard;
+
+    @ApiModelProperty("手机号")
+    @NotBlank(groups = {AddGroup.class}, message = "手机号不能为空")
+    private String phone;
+
+    @ApiModelProperty(value = "年龄", hidden = true)
+    private Integer age;
+
+    @ApiModelProperty("健康状况")
+    private String health;
+
+    @ApiModelProperty("工作")
+    private String job;
+
+    @ApiModelProperty("证件照(人像面)照片")
+    private String cardPhotoFront;
+
+    @ApiModelProperty("证件照(国徽面)照片")
+    private String cardPhotoBack;
+
+    @ApiModelProperty("户口本照片 逗号隔开")
+    private String familyBook;
+
+    @ApiModelProperty(value = "create_at", hidden = true)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty(value = "update_at", hidden = true)
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/ComMngHouseVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/ComMngHouseVo.java
new file mode 100644
index 0000000..0339f91
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/ComMngHouseVo.java
@@ -0,0 +1,48 @@
+package com.panzhihua.common.model.vos.user;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("实有人口详情房屋信息")
+@EncryptDecryptClass
+public class ComMngHouseVo {
+
+    @ApiModelProperty("房屋id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long houseId;
+
+    @ApiModelProperty("人口id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long populId;
+
+    @ApiModelProperty("人和房屋关系’ (1.自住2、租住)(取字典表国家标准编码)")
+    private Integer relationId;
+
+    @ApiModelProperty("与户主关系(1.户主 2.配偶 3.子女 4.孙女 5.父母 6.其他)(取字典表国家标准编码)")
+    private Integer relation;
+
+    @ApiModelProperty("房屋地址")
+    private String address;
+
+    @ApiModelProperty("房屋状态(1.自住 2.租住 3.其他)(取字典表国家标准编码)")
+    private Integer status;
+
+    @ApiModelProperty("是否居住地 1.是 0.否")
+    private Integer residence;
+
+    @ApiModelProperty("房屋用途(1.住宅 2.公寓 3.宿舍 4.仓库 5.其他)(取字典表国家标准编码)")
+    private Integer purpose;
+
+    @ApiModelProperty("管控状态(1.常规 2.关注 3.管控)(取字典表国家标准编码)")
+    private Integer controlStatus;
+
+    @ApiModelProperty("关系主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/ComMngJobSetVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/ComMngJobSetVO.java
new file mode 100644
index 0000000..94f1748
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/ComMngJobSetVO.java
@@ -0,0 +1,24 @@
+package com.panzhihua.common.model.vos.user;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 工作类型
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-14 16:55
+ **/
+@Data
+@ApiModel("社区》社区管理》工作类型")
+public class ComMngJobSetVO {
+
+    @ApiModelProperty("自增id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("工作名称")
+    private String jobName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/ComMngTagVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/ComMngTagVO.java
new file mode 100644
index 0000000..53d35ca
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/ComMngTagVO.java
@@ -0,0 +1,41 @@
+package com.panzhihua.common.model.vos.user;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+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;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 小程序用户
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-30 11:22
+ **/
+@Data
+@ApiModel("特殊群体标签管理")
+public class ComMngTagVO implements Serializable {
+
+    @ApiModelProperty("主键")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("标签名称")
+    private String tagName;
+
+    @ApiModelProperty("社区id")
+    private Long communityId;
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("系统预置:1-是(不可编辑删除) 0-否")
+    private Integer sysFlag;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/ComMngUserTagVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/ComMngUserTagVO.java
new file mode 100644
index 0000000..d78591c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/ComMngUserTagVO.java
@@ -0,0 +1,30 @@
+package com.panzhihua.common.model.vos.user;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 用户标签
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-14 17:27
+ **/
+@Data
+@ApiModel("社区》社区管理》用户标签")
+public class ComMngUserTagVO {
+
+    @ApiModelProperty("自增id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("标签名称")
+    private String tagName;
+
+    @ApiModelProperty(value = "社区id", hidden = true)
+    private Long communityId;
+
+    @ApiModelProperty("系统预置:1-是(不可编辑删除) 0-否")
+    private Integer sysFlag;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/CommunityUserInfoVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/CommunityUserInfoVO.java
new file mode 100644
index 0000000..c94bc05
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/CommunityUserInfoVO.java
@@ -0,0 +1,110 @@
+package com.panzhihua.common.model.vos.user;
+
+import java.util.Date;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.panzhihua.common.model.vos.community.ComMngStructHouseVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 社区人员详情
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-02-18 09:43
+ **/
+@Data
+@ApiModel("社区人员详情")
+public class CommunityUserInfoVO {
+
+    @ApiModelProperty("真实名字")
+    private String name;
+
+    @ApiModelProperty("性别 1 男 2 女")
+    private Integer sex;
+
+    @ApiModelProperty("民族")
+    private String nation;
+
+    @ApiModelProperty("手机号")
+    private String phone;
+
+    @ApiModelProperty("0 未婚 1 已婚")
+    private Integer maritalStatus;
+
+    @ApiModelProperty("身份证号")
+    private String idCard;
+
+    @ApiModelProperty("工作单位(学校)")
+    private String company;
+
+    @ApiModelProperty("user_id")
+    private Long userId;
+
+    @ApiModelProperty("年龄")
+    private Integer age;
+
+    @ApiModelProperty("生日")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date birthday;
+
+    @ApiModelProperty("户口所在地")
+    private String residence;
+
+    @ApiModelProperty("政治面貌:1 - 党员;2 - 团员;3 - 群众")
+    private Integer politicalOutlook;
+
+    @ApiModelProperty("文化程度")
+    private String education;
+
+    @ApiModelProperty("专享政策")
+    private String tags;
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("是否志愿者 0否 1 是")
+    private Integer isVolunteer;
+
+    @ApiModelProperty("志愿者申请时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date volunteerCreateAt;
+
+    @ApiModelProperty("家庭成员")
+    private List<ComMngFamilyInfoVO> comMngFamilyInfoVOS;
+
+    @ApiModelProperty("房屋信息")
+    private List<ComMngStructHouseVO> comMngStructHouseVOS;
+
+    @ApiModelProperty("目前是否在攀枝花 0 否 1 是")
+    private Integer isPanzhiHua;
+
+    @ApiModelProperty("是否有与疑似或确诊病例密切接触史 0 否 1 是")
+    private Integer isContact;
+
+    @ApiModelProperty("近一个月离(返)攀情况")
+    private String situation;
+
+    /**
+     * 证件照(人面像)照片
+     */
+    @ApiModelProperty("证件照(人面像)照片")
+    private String cardPhotoFront;
+
+    /**
+     * 证件照(国徽面)照片
+     */
+    @ApiModelProperty("证件照(国徽面)照片")
+    private String cardPhotoBack;
+
+    /**
+     * 户口本照片(多张以,号隔开)
+     */
+    @ApiModelProperty("户口本照片(多张以,号隔开)")
+    private String familyBook;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/CommunityVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/CommunityVO.java
new file mode 100644
index 0000000..8d9a380
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/CommunityVO.java
@@ -0,0 +1,18 @@
+package com.panzhihua.common.model.vos.user;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+@ApiModel
+public class CommunityVO implements Serializable {
+
+    @ApiModelProperty("社区/村落名")
+    private String name;
+
+    @ApiModelProperty("社区/村落id")
+    private String id;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/IndexDataAnalysisVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/IndexDataAnalysisVO.java
new file mode 100644
index 0000000..573bc2c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/IndexDataAnalysisVO.java
@@ -0,0 +1,70 @@
+package com.panzhihua.common.model.vos.user;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+@Data
+@ApiModel("首页统计结果")
+public class IndexDataAnalysisVO implements Serializable {
+
+    @ApiModelProperty("用户总数")
+    private Integer allUser;
+
+    @ApiModelProperty("新增用户")
+    private Integer addUser;
+
+    @ApiModelProperty("日活跃用户")
+    private Integer activeDayUser;
+
+    @ApiModelProperty("周活跃用户")
+    private Integer activeWeekUser;
+
+//    @ApiModelProperty("其他用户数(按街道,社区划分时使用)")
+//    private Integer otherUser;
+//
+//    @ApiModelProperty("其他用户占比(按街道,社区划分时使用)")
+//    private Double otherUserRate;
+//
+//    @ApiModelProperty("用户占比(累计)")
+//    private List<UserProportion> userProportionTotal;
+//
+//    @ApiModelProperty("用户占比(本月)")
+//    private List<UserProportion> userProportionMonth;
+//
+//    @ApiModelProperty("实名用户(累计)")
+//    private List<RealUser> realUsersTotal;
+//
+//    @ApiModelProperty("实名用户(本月)")
+//    private List<RealUser> realUsersMonth;
+//
+//    @ApiModelProperty("用户行为X轴(累计过去20天)")
+//    private List<String> userActivityXAll;
+//
+//    @ApiModelProperty("用户行为X轴(本月)")
+//    private List<String> userActivityXMonth;
+//
+//    @ApiModelProperty("新增用户Y轴(累计过去20天)")
+//    private List<String> addUserYAll;
+//
+//    @ApiModelProperty("新增用户Y轴(本月)")
+//    private List<String> addUserYWeek;
+//
+//    @ApiModelProperty("日活用户Y轴(累计过去20天)")
+//    private List<String> activeUserYAll;
+//
+//    @ApiModelProperty("日活用户Y轴(本月)")
+//    private List<String> activeUserYMonth;
+//      @ApiModelProperty("实名用户总数")
+//      private Integer realUser;
+//
+//      @ApiModelProperty("实名用户占比")
+//      private Double realUserRate;
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/InputUserInfoVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/InputUserInfoVO.java
new file mode 100644
index 0000000..0ffc9ce
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/InputUserInfoVO.java
@@ -0,0 +1,146 @@
+package com.panzhihua.common.model.vos.user;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+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 com.panzhihua.common.model.helper.sensitive.Sensitive;
+import com.panzhihua.common.model.helper.sensitive.SensitiveStrategy;
+import com.panzhihua.common.model.vos.community.ComMngStructHouseVO;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @description: 居民数据信息
+ * @author: Null
+ * @date: 2021/3/11 10:36
+ */
+@Data
+@ApiModel(value = "居民数据信息")
+@EncryptDecryptClass
+public class InputUserInfoVO implements Serializable {
+
+    @ApiModelProperty("用户编号")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("生日")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date birthday;
+
+    @ApiModelProperty("门牌号")
+    private String doorNumber;
+
+    @ApiModelProperty("是否租住 0 不是 1 是")
+    private Integer isRent;
+
+    @ApiModelProperty("姓名")
+    private String name;
+
+    @ApiModelProperty("民族")
+    private String nation;
+
+    @ApiModelProperty("政治面貌:1 - 党员;2 - 团员;3 - 群众")
+    private Integer politicalOutlook;
+
+    @ApiModelProperty("0 未婚 1 已婚")
+    private Integer maritalStatus;
+
+    @ApiModelProperty("联系方式")
+    @EncryptDecryptField
+    @Sensitive(strategy = SensitiveStrategy.PHONE)
+    private String phone;
+
+    @ApiModelProperty("文化程度")
+    private String education;
+
+    @ApiModelProperty("身份证")
+    private String idCard;
+
+    @ApiModelProperty("工作单位(学校)")
+    private String company;
+
+    @ApiModelProperty("户口所在地")
+    private String residence;
+
+    @ApiModelProperty("目前是否在攀枝花 0 否 1 是")
+    private Integer isPanzhihua;
+
+    @ApiModelProperty("近一个月离(返)攀情况")
+    private String situation;
+
+    @ApiModelProperty("是否有与疑似或确诊病例密切接触史 0 否 1 是")
+    private Integer isContact;
+
+    @ApiModelProperty("是否特殊情况(重大过往病史或者孕妇) 0 否 1是")
+    private Integer major;
+
+    @ApiModelProperty("是否退伍军人 0 否 1是")
+    private Integer soldier;
+
+    @ApiModelProperty("是否低保户 0 否 1是")
+    private Integer lowincomeHouseholds;
+
+    @ApiModelProperty("是否低收入人员 0否 1是")
+    private Integer lowincomePeople;
+
+    @ApiModelProperty("是否高龄老人 0否 1是")
+    private Integer oldPeople;
+
+    @ApiModelProperty("是否特服家庭 0 否 1是")
+    private Integer specialServiceFamily;
+
+    @ApiModelProperty("是否重点人员 0 否 1是")
+    private Integer keyPersonnel;
+
+    @ApiModelProperty("社区id")
+    private Long communityId;
+
+    @ApiModelProperty("小区id")
+    private Long areaId;
+
+    @ApiModelProperty("小区名称")
+    private String areaName;
+
+    @ApiModelProperty("详细地址")
+    private String address;
+
+    @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 updateAt;
+
+    @ApiModelProperty("是否残疾人 0 否 1是")
+    private Integer disability;
+
+    @ApiModelProperty("专享政策")
+    private String tags;
+
+    @ApiModelProperty("年龄")
+    private Integer age;
+
+    @ApiModelProperty("性别")
+    private Integer sex;
+
+    @ApiModelProperty("家庭成员")
+    private List<ComMngFamilyInfoVO> comMngFamilyInfoVOS;
+
+    @ApiModelProperty("房屋信息")
+    private List<ComMngStructHouseVO> comMngStructHouseVOS;
+
+    @ApiModelProperty("街路巷")
+    private String alley;
+
+    @ApiModelProperty("地区号")
+    private String houseNum;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/MenuRoleVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/MenuRoleVO.java
new file mode 100644
index 0000000..8373950
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/MenuRoleVO.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.vos.user;
+
+import java.util.List;
+
+import javax.validation.constraints.NotNull;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 设置角色权限
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-25 09:29
+ **/
+@Data
+@ApiModel("新增角色-设置角色权限")
+public class MenuRoleVO {
+    @ApiModelProperty("是否全选 1 是 0 否 ")
+    @NotNull(message = "是否全选不能为空")
+    private Integer isAll;
+    @ApiModelProperty("所有菜单id集合")
+    private List<Long> menuIds;
+    @ApiModelProperty(value = "被操作的角色id-编辑时使用")
+    private Long roleId;
+    @ApiModelProperty(value = "角色名字")
+    private String roleName;
+    @ApiModelProperty(value = "所在社区", hidden = true)
+    private Long communityId;
+    private String areaCode;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/NoticeUnReadVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/NoticeUnReadVO.java
new file mode 100644
index 0000000..f892f45
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/NoticeUnReadVO.java
@@ -0,0 +1,34 @@
+package com.panzhihua.common.model.vos.user;
+
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 通知未读汇总
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-05 11:20
+ **/
+@Data
+@ApiModel("通知未读汇总")
+public class NoticeUnReadVO {
+    // {
+    // activityUnread:3,
+    // serviceUnread:4,
+    // systemUnread:5,
+    // scoreUnread:6
+    // }
+    @ApiModelProperty("活动通知未读数量")
+    private Long activityUnread;
+    @ApiModelProperty("服务变动未读数量")
+    private Long serviceUnread;
+    @ApiModelProperty("系统审核未读数量")
+    private Long systemUnread;
+    @ApiModelProperty("积分通知未读数量")
+    private Long scoreUnread;
+    @ApiModelProperty("四种通知最新四条数据")
+    private List<SysUserNoticeVO> sysUserNoticeVOList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/RealUser.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/RealUser.java
new file mode 100644
index 0000000..e6d58f1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/RealUser.java
@@ -0,0 +1,27 @@
+package com.panzhihua.common.model.vos.user;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "实名用户统计")
+public class RealUser {
+
+    @ApiModelProperty("名称")
+    private String name;
+
+    @ApiModelProperty("人数")
+    private Integer count;
+
+    @ApiModelProperty("社区名")
+    private String communityName;
+
+    @ApiModelProperty("街道名")
+    private String streetName;
+
+    @ApiModelProperty("区域code")
+    private String areaCode;
+
+    private String communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/RealUserAnalysisVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/RealUserAnalysisVO.java
new file mode 100644
index 0000000..eedc1e4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/RealUserAnalysisVO.java
@@ -0,0 +1,17 @@
+package com.panzhihua.common.model.vos.user;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("真实用户统计")
+public class RealUserAnalysisVO {
+
+    @ApiModelProperty("区域,街道,社区名")
+    private String name;
+
+    @ApiModelProperty("实名人数")
+    private Integer count;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/RealUserVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/RealUserVO.java
new file mode 100644
index 0000000..f99981e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/RealUserVO.java
@@ -0,0 +1,22 @@
+package com.panzhihua.common.model.vos.user;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+@ApiModel("真实用户统计")
+public class RealUserVO implements Serializable {
+
+    @ApiModelProperty("实名用户数")
+    private Integer realUserCount;
+
+    @ApiModelProperty("实名用户占比")
+    private Double realUserRate;
+
+    @ApiModelProperty("真实用户统计")
+    private List<RealUserAnalysisVO> realUserList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/RoleVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/RoleVO.java
new file mode 100644
index 0000000..48b3993
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/RoleVO.java
@@ -0,0 +1,66 @@
+package com.panzhihua.common.model.vos.user;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 角色
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-01 13:55
+ **/
+@Data
+@ApiModel("角色信息")
+public class RoleVO {
+
+    @ApiModelProperty("角色id")
+    private Long roleId;
+
+    @ApiModelProperty("角色名称")
+    private String roleName;
+
+    @ApiModelProperty("角色权限字符串")
+    private String roleKey;
+
+    @ApiModelProperty("显示顺序")
+    private Integer roleSort;
+
+    @ApiModelProperty("数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限 )")
+    private String dataScope;
+
+    @ApiModelProperty("菜单树选择项是否关联显示")
+    private boolean menuCheckStrictly;
+
+    @ApiModelProperty("部门树选择项是否关联显示")
+    private boolean deptCheckStrictly;
+
+    @ApiModelProperty("角色状态(0正常 1停用)")
+    private Integer status;
+
+    @ApiModelProperty("创建者")
+    private Long createBy;
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("更新者")
+    private Long updateBy;
+
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAt;
+
+    @ApiModelProperty("备注")
+    private String remark;
+
+    @ApiModelProperty("社区id")
+    private Long communityId;
+
+    private String areaCode;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/StreetVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/StreetVO.java
new file mode 100644
index 0000000..be63eb2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/StreetVO.java
@@ -0,0 +1,22 @@
+package com.panzhihua.common.model.vos.user;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+@ApiModel
+public class StreetVO implements Serializable {
+
+    @ApiModelProperty("街道id")
+    private Long id;
+
+    @ApiModelProperty("街道名")
+    private String name;
+
+    @ApiModelProperty("下属社区列表")
+    private List<CommunityVO> communityList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/StreetVOS.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/StreetVOS.java
new file mode 100644
index 0000000..0b13fb7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/StreetVOS.java
@@ -0,0 +1,20 @@
+package com.panzhihua.common.model.vos.user;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel
+public class StreetVOS {
+    @ApiModelProperty("街道id")
+    private Long id;
+
+    @ApiModelProperty("街道名")
+    private String name;
+
+    @ApiModelProperty("下属社区列表")
+    private List<CommunityVO> childList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/StreetVOStr.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/StreetVOStr.java
new file mode 100644
index 0000000..8f33d0e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/StreetVOStr.java
@@ -0,0 +1,20 @@
+package com.panzhihua.common.model.vos.user;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel
+public class StreetVOStr {
+    @ApiModelProperty("街道id")
+    private String id;
+
+    @ApiModelProperty("街道名")
+    private String name;
+
+    @ApiModelProperty("下属社区列表")
+    private List<CommunityVO> childList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/SysAppConfigVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/SysAppConfigVO.java
new file mode 100644
index 0000000..f8c7ffe
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/SysAppConfigVO.java
@@ -0,0 +1,50 @@
+package com.panzhihua.common.model.vos.user;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+
+/**
+ * (SysAppConfig)表实体类
+ *
+ * @author makejava
+ * @since 2022-01-13 10:10:15
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("")
+public class SysAppConfigVO implements Serializable {
+
+    private static final long serialVersionUID = -90981038076389842L;
+
+    private Long id;
+
+    /**
+     * appid
+     */
+    @ApiModelProperty(value = "appid")
+    private String appId;
+
+    /**
+     * secret
+     */
+    @ApiModelProperty(value = "secret")
+    private String secret;
+
+    /**
+     * 小程序名字
+     */
+    @ApiModelProperty(value = "小程序名字")
+    private String name;
+
+    private String areaCode;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/SysMenuVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/SysMenuVO.java
new file mode 100644
index 0000000..8b7f580
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/SysMenuVO.java
@@ -0,0 +1,76 @@
+package com.panzhihua.common.model.vos.user;
+
+import java.util.Date;
+import java.util.List;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 菜单权限
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-24 16:50
+ **/
+@Data
+@ApiModel("菜单")
+public class SysMenuVO {
+
+    @ApiModelProperty("菜单id")
+    private Long menuId;
+
+    @ApiModelProperty("菜单名称")
+    private String menuName;
+
+    @ApiModelProperty("父菜单id")
+    private Long parentId;
+
+    @ApiModelProperty("显示顺序")
+    private Integer orderNum;
+
+    @ApiModelProperty("路由地址")
+    private String path;
+
+    @ApiModelProperty("组件路径")
+    private String component;
+
+    @ApiModelProperty("是否为外链(0是 1否)")
+    private Integer isFrame;
+
+    @ApiModelProperty("是否缓存(0缓存 1不缓存)")
+    private Integer isCache;
+
+    @ApiModelProperty("菜单类型(m目录 c菜单 f按钮)")
+    private String menuType;
+
+    @ApiModelProperty("菜单状态(0显示 1隐藏)")
+    private Integer visible;
+
+    @ApiModelProperty("菜单状态(0正常 1停用)")
+    private Integer status;
+
+    @ApiModelProperty("权限标识")
+    private String perms;
+
+    @ApiModelProperty("菜单图标")
+    private String icon;
+
+    @ApiModelProperty("创建者")
+    private String createBy;
+
+    @ApiModelProperty("创建时间")
+    private Date createAt;
+
+    @ApiModelProperty("更新者")
+    private String updateBy;
+
+    @ApiModelProperty("更新时间")
+    private Date updateAt;
+
+    @ApiModelProperty("备注")
+    private String remark;
+
+    @ApiModelProperty("子菜单")
+    private List<SysMenuVO> sysMenuVOList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/SysOperLogVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/SysOperLogVO.java
new file mode 100644
index 0000000..3114ddc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/SysOperLogVO.java
@@ -0,0 +1,93 @@
+package com.panzhihua.common.model.vos.user;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 操作日志
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-25 10:52
+ **/
+@Data
+@ApiModel("操作日志")
+public class SysOperLogVO {
+
+    @ApiModelProperty("日志主键")
+    private Long operId;
+
+    @ApiModelProperty("模块标题")
+    private String title;
+
+    @ApiModelProperty("业务类型(0其它 1新增 2修改 3删除)")
+    private Integer businessType;
+
+    @ApiModelProperty("方法名称")
+    private String method;
+
+    @ApiModelProperty("请求方式")
+    private String requestMethod;
+
+    @ApiModelProperty("操作类别(0其它 1后台用户 2手机端用户)")
+    private Integer operatorType;
+
+    @ApiModelProperty("操作人员")
+    private String operName;
+
+    @ApiModelProperty("部门名称")
+    private String deptName;
+
+    @ApiModelProperty("请求url")
+    private String operUrl;
+
+    @ApiModelProperty("主机地址")
+    private String operIp;
+
+    @ApiModelProperty("操作地点")
+    private String operLocation;
+
+    @ApiModelProperty("请求参数")
+    private String operParam;
+
+    @ApiModelProperty("返回参数")
+    private String jsonResult;
+
+    @ApiModelProperty("操作状态(0正常 1异常)")
+    private Integer status;
+
+    @ApiModelProperty("错误消息")
+    private String errorMsg;
+
+    @ApiModelProperty("操作时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date operTime;
+
+    @ApiModelProperty("社区id")
+    private Long communityId;
+
+    @ApiModelProperty("操作账户")
+    private String account;
+
+    @ApiModelProperty("当前页数")
+    private Long pageNum;
+
+    @ApiModelProperty("每页记录数")
+    private Long pageSize;
+
+    private String areaCode;
+
+    @ApiModelProperty("如果是修改操作,记录修改前的记录")
+    private String beforeUpdateData;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty("开始时间")
+    private String startTime;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty("截止时间")
+    private String endTime;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/SysTemplateConfigVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/SysTemplateConfigVO.java
new file mode 100644
index 0000000..97dc6cf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/SysTemplateConfigVO.java
@@ -0,0 +1,48 @@
+package com.panzhihua.common.model.vos.user;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+
+/**
+ * (SysTemplateConfig)表实体类
+ *
+ * @author makejava
+ * @since 2022-01-13 14:29:55
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("")
+public class SysTemplateConfigVO implements Serializable {
+
+    private static final long serialVersionUID = -29178409799302189L;
+
+    private Long id;
+
+    /**
+     * 模板id
+     */
+    @ApiModelProperty(value = "模板id")
+    private String templateId;
+
+    /**
+     * 模板类型 1活动变更 2留言回复 3活动取消 4审核状态 5认证审核 6调研问卷 7奖励发放 8报名成功 9活动即将开始 10预约提醒
+     */
+    @ApiModelProperty(value = "模板类型 1活动变更 2留言回复 3活动取消 4审核状态 5认证审核 6调研问卷 7奖励发放 8报名成功 9活动即将开始 10预约提醒 ")
+    private Integer type;
+
+    /**
+     * 区域编码
+     */
+    @ApiModelProperty(value = "区域编码")
+    private String areaCode;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/SysUserAgreementVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/SysUserAgreementVO.java
new file mode 100644
index 0000000..fcd0126
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/SysUserAgreementVO.java
@@ -0,0 +1,43 @@
+package com.panzhihua.common.model.vos.user;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+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;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 用户协议
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-25 15:49
+ **/
+@Data
+@ApiModel("用户协议")
+public class SysUserAgreementVO {
+
+    @ApiModelProperty("id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("所属app 1居民端app 2网格员端app 3商家端app 4隐私政策 5随手拍说明")
+    private Integer type;
+
+    @ApiModelProperty("协议内容")
+    private String content;
+
+    @ApiModelProperty("create_at")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("update_at")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAt;
+
+    @ApiModelProperty("协议名字")
+    private String name;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/SysUserFeedbackVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/SysUserFeedbackVO.java
new file mode 100644
index 0000000..9916756
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/SysUserFeedbackVO.java
@@ -0,0 +1,70 @@
+package com.panzhihua.common.model.vos.user;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+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;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 用户意见反馈
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-05 14:32
+ **/
+@Data
+@ApiModel("用户意见反馈")
+public class SysUserFeedbackVO {
+
+    @ApiModelProperty("id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("反馈内容")
+    private String content;
+
+    @ApiModelProperty("反馈图片,多个用逗号隔开")
+    private String photoPath;
+
+    @ApiModelProperty("反馈时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("update_at")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAt;
+
+    @ApiModelProperty("用户的id")
+    private Long userId;
+
+    @ApiModelProperty("小区id")
+    private Long areaId;
+
+    @ApiModelProperty("社区id")
+    private Long communityId;
+
+    @ApiModelProperty("社区名字")
+    private String communityName;
+
+    @ApiModelProperty("状态 0")
+    private Integer status;
+
+    @ApiModelProperty("昵称")
+    private String nickName;
+
+    @ApiModelProperty("用户名称")
+    private String name;
+
+    @ApiModelProperty("手机号")
+    private String phone;
+
+    @ApiModelProperty("回复内容")
+    private String reply;
+
+    private Long propertyId;
+    private Integer type;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/SysUserNoticeVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/SysUserNoticeVO.java
new file mode 100644
index 0000000..85d01b1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/SysUserNoticeVO.java
@@ -0,0 +1,69 @@
+package com.panzhihua.common.model.vos.user;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+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;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 系统通知
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-04 17:07
+ **/
+@Data
+@ApiModel("系统通知")
+public class SysUserNoticeVO {
+
+    @ApiModelProperty("id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("用户id")
+    private Long userId;
+
+    @ApiModelProperty("类型 1活动 2 服务 3系统 4积分消息")
+    private Integer type;
+
+    @ApiModelProperty("消息标题")
+    private String title;
+
+    @ApiModelProperty("具体业务类型 1 社区活动 2党建活动 3微心愿通知 4随手拍服务通知 5支援者申请 6实名制审核 7人脸识别审核 8积分获取和消耗 9积分点击直接跳转积分列表 10 房屋审核通知 11 党员认证审核通知 12邻里圈审核通知 13 高龄认证社区反馈通知   14线下商家订单")
+    private Integer businessType;
+
+    @ApiModelProperty("业务标题")
+    private String businessTitle;
+
+    @ApiModelProperty("业务内容")
+    private String businessContent;
+
+    @ApiModelProperty("业务发生时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date businessTime;
+
+    @ApiModelProperty("业务状态 1未通过、取消  2 成功")
+    private Integer businessStatus;
+
+    @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 updateAt;
+
+    @ApiModelProperty("消息状态 0 未读 1 已读")
+    private Integer status;
+
+    @ApiModelProperty("业务主键 用于跳转")
+    private Long businessId;
+
+    @ApiModelProperty("社区活动类型 1志愿者活动 2居民活动 3党建活动 4 商家线下积分兑换")
+    private Integer activityType;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/SysUserVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/SysUserVO.java
new file mode 100644
index 0000000..e5f7d54
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/SysUserVO.java
@@ -0,0 +1,87 @@
+package com.panzhihua.common.model.vos.user;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+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;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 小程序用户
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-30 11:22
+ **/
+@Data
+@ApiModel("小程序用户")
+public class SysUserVO {
+
+    @ApiModelProperty("主键")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long userId;
+
+    @ApiModelProperty("手机号")
+    private String phone;
+
+    @ApiModelProperty("昵称")
+    private String nickName;
+
+    @ApiModelProperty("身份证号码")
+    private String idCard;
+
+    @ApiModelProperty("真实名字")
+    private String name;
+
+    @ApiModelProperty("社区名字")
+    private String communityName;
+
+    @ApiModelProperty("1 启用 2 禁用")
+    private Integer status;
+
+    @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 lastLoginTime;
+
+    @ApiModelProperty("用户类型(用户类型 1 小程序 2 运营平台 3 社区平台 5 商家后台 6 网格综治APP 7 网格综治后台 8大屏 9城管后台 10一键报警app)")
+    private Integer type;
+
+    @ApiModelProperty("是否是志愿者(0.否  1.是)")
+    private Integer isVolunteer;
+
+    @ApiModelProperty("是否是党员(0.否  1.是)")
+    private Integer isPartymember;
+
+    private String imageUrl;
+    @ApiModelProperty(value = "微信小程序唯一标识")
+    private String openid;
+
+
+    private String loveIntegral;
+
+
+    /**
+     * 用户类型(用户类型 1 小程序 2 运营平台 3 社区平台 5 商家后台 6 网格综治APP 7 网格综治后台 8大屏 9城管后台 10一键报警app)
+     */
+    public interface type{
+        int xcx = 1;
+        int yyht = 2;
+        int sqht = 3;
+    }
+
+    /**
+     * 是否枚举(0.否  1.是)
+     */
+    public interface isOk{
+        int yes = 1;
+        int no = 0;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/UpdateUserArchivesVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/UpdateUserArchivesVO.java
new file mode 100644
index 0000000..a19104c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/UpdateUserArchivesVO.java
@@ -0,0 +1,28 @@
+package com.panzhihua.common.model.vos.user;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther llming
+ * @describe
+ */
+@ApiModel("修改用户电子档案")
+@Data
+public class UpdateUserArchivesVO {
+    @ApiModelProperty(value = "用户id", hidden = true)
+    private Long userId;
+
+    @ApiModelProperty("证件照(人像面)照片")
+    private String cardPhotoFront;
+
+    @ApiModelProperty("证件照(国徽面)照片")
+    private String cardPhotoBack;
+
+    @ApiModelProperty("户口本照片 逗号隔开")
+    private String familyBook;
+
+    @ApiModelProperty("职业")
+    private String job;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/UserActivityAnalysisVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/UserActivityAnalysisVO.java
new file mode 100644
index 0000000..7a43769
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/UserActivityAnalysisVO.java
@@ -0,0 +1,23 @@
+package com.panzhihua.common.model.vos.user;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+@ApiModel("用户行为分析")
+public class UserActivityAnalysisVO implements Serializable {
+
+    @ApiModelProperty("X轴")
+    private List<String> userX;
+
+    @ApiModelProperty("活跃用户y轴")
+    private List<String> activeUserY;
+
+    @ApiModelProperty("新增用户y轴")
+    private List<String> addUserY;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/UserArchivesVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/UserArchivesVO.java
new file mode 100644
index 0000000..9f2e5c2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/UserArchivesVO.java
@@ -0,0 +1,45 @@
+package com.panzhihua.common.model.vos.user;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther llming
+ * @describe 用户电子档案
+ */
+@ApiModel("用户电子档案")
+@Data
+public class UserArchivesVO {
+    @ApiModelProperty("用户id")
+    private Long userId;
+
+    @ApiModelProperty("真实名字")
+    private String name;
+
+    @ApiModelProperty("身份证号")
+    private String idCard;
+
+    @ApiModelProperty("性别 1 男 2 女")
+    private Integer sex;
+
+    @ApiModelProperty("出生年月")
+    @JsonFormat(timezone = "GMT+8")
+    private Date birthday;
+
+    @ApiModelProperty("职业")
+    private String job;
+
+    @ApiModelProperty("证件照(人像面)照片")
+    private String cardPhotoFront;
+
+    @ApiModelProperty("证件照(国徽面)照片")
+    private String cardPhotoBack;
+
+    @ApiModelProperty("户口本照片 逗号隔开")
+    private String familyBook;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/UserElectronicFileVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/UserElectronicFileVO.java
new file mode 100644
index 0000000..0d3a028
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/UserElectronicFileVO.java
@@ -0,0 +1,34 @@
+package com.panzhihua.common.model.vos.user;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("电子档用户信息")
+public class UserElectronicFileVO {
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+
+    /**
+     * 证件照(人面像)照片
+     */
+    @ApiModelProperty("证件照(人面像)照片")
+    private String cardPhotoFront;
+
+    /**
+     * 证件照(国徽面)照片
+     */
+    @ApiModelProperty("证件照(国徽面)照片")
+    private String cardPhotoBack;
+
+    /**
+     * 户口本照片(多张以,号隔开)
+     */
+    @ApiModelProperty("户口本照片(多张以,号隔开)")
+    private String familyBook;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/UserPhoneVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/UserPhoneVO.java
new file mode 100644
index 0000000..fe96fe6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/UserPhoneVO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.model.vos.user;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 修改手机号
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-17 15:25
+ **/
+@Data
+@ApiModel("修改手机号")
+public class UserPhoneVO {
+
+    @ApiModelProperty("老手机号")
+    private String oldPhone;
+    @ApiModelProperty("新手机号")
+    private String newPhone;
+    @ApiModelProperty("短信验证码")
+    private String smsCode;
+    @ApiModelProperty(value = "当前登录用户id", hidden = true)
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/UserProportion.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/UserProportion.java
new file mode 100644
index 0000000..db5bbac
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/UserProportion.java
@@ -0,0 +1,30 @@
+package com.panzhihua.common.model.vos.user;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel(value = "用户占比统计")
+public class UserProportion {
+
+    @ApiModelProperty("区县code(所有区县时使用)")
+    private Long areaCode;
+
+    @ApiModelProperty("用户数")
+    private Integer user;
+
+    @ApiModelProperty("用户占比")
+    private Double rate;
+
+    @ApiModelProperty("街道名(按街道分组时使用)")
+    private String streetName;
+
+    @ApiModelProperty("社区名(按社区分组或指定街道时使用)")
+    private String communityName;
+
+    private String communityId;
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/UserRateAnalysisVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/UserRateAnalysisVO.java
new file mode 100644
index 0000000..f464567
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/UserRateAnalysisVO.java
@@ -0,0 +1,20 @@
+package com.panzhihua.common.model.vos.user;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("用户占比详情")
+public class UserRateAnalysisVO {
+
+    @ApiModelProperty("社区,街道,区县名称")
+    private String name;
+
+    @ApiModelProperty("占比")
+    private Integer rate;
+
+    @ApiModelProperty("人数")
+    private Integer count;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/UserRateVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/UserRateVO.java
new file mode 100644
index 0000000..e7f1b30
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/UserRateVO.java
@@ -0,0 +1,16 @@
+package com.panzhihua.common.model.vos.user;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+@ApiModel("用户占比")
+public class UserRateVO implements Serializable {
+
+    @ApiModelProperty("用户来源,用户数及占比")
+    private List<UserRateAnalysisVO> userList;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/UuLoginVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/UuLoginVO.java
new file mode 100644
index 0000000..976868a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/user/UuLoginVO.java
@@ -0,0 +1,24 @@
+package com.panzhihua.common.model.vos.user;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel
+public class UuLoginVO {
+    @ApiModelProperty("省")
+    private String province;
+    @ApiModelProperty("市")
+    private String city;
+    @ApiModelProperty("区")
+    private String area;
+    private String appid;
+    private String timestamp;
+    private String sign;
+    private String mobile;
+    private String couponId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/vaccines/ComMngVaccinesEnrollExcelVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/vaccines/ComMngVaccinesEnrollExcelVo.java
new file mode 100644
index 0000000..b85790a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/vaccines/ComMngVaccinesEnrollExcelVo.java
@@ -0,0 +1,35 @@
+package com.panzhihua.common.model.vos.vaccines;
+
+import java.util.Date;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import lombok.Data;
+
+@Data
+public class ComMngVaccinesEnrollExcelVo {
+
+    @ExcelProperty(value = "姓名", index = 0)
+    private String name;
+
+    @ExcelProperty(value = "性别", index = 1)
+    private String sex;
+
+    @ExcelProperty(value = "年龄", index = 2)
+    private Integer age;
+
+    @ExcelProperty(value = "手机号", index = 3)
+    private String phone;
+
+    @ExcelProperty(value = "身份证号", index = 4)
+    private String idCard;
+
+    @ExcelProperty(value = "登记时间", index = 5)
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date createAt;
+
+    @ExcelProperty(value = "疫苗分类", index = 6)
+    private String vaccines;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/vaccines/ComMngVaccinesInoculationExcelVo.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/vaccines/ComMngVaccinesInoculationExcelVo.java
new file mode 100644
index 0000000..487137a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/vaccines/ComMngVaccinesInoculationExcelVo.java
@@ -0,0 +1,47 @@
+package com.panzhihua.common.model.vos.vaccines;
+
+import java.util.Date;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import lombok.Data;
+
+@Data
+public class ComMngVaccinesInoculationExcelVo {
+
+    @ExcelProperty(value = "姓名", index = 0)
+    private String name;
+
+    @ExcelProperty(value = "性别", index = 1)
+    private String sex;
+
+    @ExcelProperty(value = "年龄", index = 2)
+    private Integer age;
+
+    @ExcelProperty(value = "手机号", index = 3)
+    private String phone;
+
+    @ExcelProperty(value = "身份证号", index = 4)
+    private String idCard;
+
+    @ExcelProperty(value = "接种时间", index = 5)
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date inoculationAt;
+
+    @ExcelProperty(value = "接种剂次", index = 6)
+    private String dosage;
+
+    @ExcelProperty(value = "医疗机构", index = 7)
+    private String medicalInstitution;
+
+    @ExcelProperty(value = "疫苗批号", index = 8)
+    private String vaccinesCode;
+
+    @ExcelProperty(value = "疫苗名称", index = 9)
+    private String vaccines;
+
+    @ExcelProperty(value = "备注", index = 10)
+    private String remark;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/vaccines/VaccinesByAppVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/vaccines/VaccinesByAppVO.java
new file mode 100644
index 0000000..b04ca86
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/vaccines/VaccinesByAppVO.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.model.vos.vaccines;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @describe 疫苗分类信息
+ */
+@Data
+@ApiModel("疫苗分类信息")
+public class VaccinesByAppVO {
+
+    @ApiModelProperty("疫苗id")
+    private Long id;
+
+    @ApiModelProperty("疫苗名称")
+    private String name;
+
+    @ApiModelProperty("疫苗描述")
+    private String describe;
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/vaccines/VaccinesEnrollByAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/vaccines/VaccinesEnrollByAdminVO.java
new file mode 100644
index 0000000..210951d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/vaccines/VaccinesEnrollByAdminVO.java
@@ -0,0 +1,47 @@
+package com.panzhihua.common.model.vos.vaccines;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @describe 疫苗登记记录
+ */
+@Data
+@ApiModel("疫苗登记记录")
+public class VaccinesEnrollByAdminVO {
+
+    @ApiModelProperty("疫苗登记记录id")
+    private Long id;
+
+    @ApiModelProperty("姓名")
+    private String name;
+
+    @ApiModelProperty("年龄")
+    private Integer age;
+
+    @ApiModelProperty("职业")
+    private String job;
+
+    @ApiModelProperty("手机号")
+    private String phone;
+
+    @ApiModelProperty("身份证号码")
+    private String idCard;
+
+    @ApiModelProperty("登记时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("性别(1.男 2.女 3.未知)")
+    private Integer sex;
+
+    @ApiModelProperty("疫苗分类")
+    private String vaccines;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/vaccines/VaccinesEnrollUserByAppVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/vaccines/VaccinesEnrollUserByAppVO.java
new file mode 100644
index 0000000..d525ad7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/vaccines/VaccinesEnrollUserByAppVO.java
@@ -0,0 +1,55 @@
+package com.panzhihua.common.model.vos.vaccines;
+
+import java.util.Date;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @describe 疫苗分类信息
+ */
+@Data
+@ApiModel("家庭成员接种信息")
+public class VaccinesEnrollUserByAppVO {
+
+    @ApiModelProperty("用户id")
+    private Long userId;
+
+    @ApiModelProperty("姓名")
+    private String name;
+
+    @ApiModelProperty("年龄")
+    private Integer age;
+
+    @ApiModelProperty("职业")
+    private String job;
+
+    @ApiModelProperty("手机号")
+    private String phone;
+
+    @ApiModelProperty("身份证号码")
+    private String idCard;
+
+    @ApiModelProperty("性别(1.男  2.女)")
+    private Integer sex;
+
+    @ApiModelProperty("是否已报名(1.是  2.否)")
+    private Integer isEnroll;
+
+    @ApiModelProperty("是否是自己(1.是 2.否)")
+    private Integer isUser;
+
+    @ApiModelProperty("创建时间")
+    private Date createAt;
+
+    /**
+     * 是否已报名(1.是 2.否)
+     */
+    public interface isEnroll {
+        int yes = 1;
+        int no = 2;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/vaccines/VaccinesInoculationByAdminVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/vaccines/VaccinesInoculationByAdminVO.java
new file mode 100644
index 0000000..6f87d32
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/vaccines/VaccinesInoculationByAdminVO.java
@@ -0,0 +1,56 @@
+package com.panzhihua.common.model.vos.vaccines;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @describe 疫苗接种记录
+ */
+@Data
+@ApiModel("疫苗接种记录")
+public class VaccinesInoculationByAdminVO {
+
+    @ApiModelProperty("疫苗接种记录id")
+    private Long id;
+
+    @ApiModelProperty("姓名")
+    private String name;
+
+    @ApiModelProperty("性别(1.男 2.女)")
+    private Integer sex;
+
+    @ApiModelProperty("年龄")
+    private Integer age;
+
+    @ApiModelProperty("手机号")
+    private String phone;
+
+    @ApiModelProperty("身份证号码")
+    private String idCard;
+
+    @ApiModelProperty("接种时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date inoculationAt;
+
+    @ApiModelProperty("接种剂次")
+    private String dosage;
+
+    @ApiModelProperty("医疗机构")
+    private String medicalInstitution;
+
+    @ApiModelProperty("疫苗批号")
+    private String vaccinesCode;
+
+    @ApiModelProperty("疫苗名称")
+    private String vaccines;
+
+    @ApiModelProperty("备注")
+    private String remark;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/vaccines/VaccinesUserInoculationByAppVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/vaccines/VaccinesUserInoculationByAppVO.java
new file mode 100644
index 0000000..69817bb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/vaccines/VaccinesUserInoculationByAppVO.java
@@ -0,0 +1,41 @@
+package com.panzhihua.common.model.vos.vaccines;
+
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @describe 疫苗接种记录信息
+ */
+@Data
+@ApiModel("疫苗接种记录信息")
+public class VaccinesUserInoculationByAppVO {
+
+    @ApiModelProperty("接种记录id")
+    private Long id;
+
+    @ApiModelProperty("接种疫苗类型")
+    private String vaccines;
+
+    @ApiModelProperty("受种人")
+    private String name;
+
+    @ApiModelProperty("接种日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date inoculationAt;
+
+    @ApiModelProperty("疫苗批号")
+    private String vaccinesCode;
+
+    @ApiModelProperty("医疗机构")
+    private String medicalInstitution;
+
+    @ApiModelProperty("剂次")
+    private String dosage;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/AppVisitTasksVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/AppVisitTasksVO.java
new file mode 100644
index 0000000..f90945f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/AppVisitTasksVO.java
@@ -0,0 +1,87 @@
+package com.panzhihua.common.model.vos.visit;
+
+import java.io.Serializable;
+import java.util.Date;
+
+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.enums.EventTasksStatusEnum;
+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;
+
+/**
+ * @author xyh
+ * @date 2021/6/23 9:03
+ */
+@ApiModel("app走访任务VO")
+@Data
+@EncryptDecryptClass
+public class AppVisitTasksVO implements Serializable {
+    private static final long serialVersionUID = -5758072851661612412L;
+
+    @ApiModelProperty("id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("需走访人id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long visiterId;
+
+    @ApiModelProperty("需走访人姓名")
+    private String visiterName;
+
+    @ApiModelProperty("网格员id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long gridMember;
+
+    @ApiModelProperty("网格员")
+    private String gridMemberName;
+
+    @ApiModelProperty("网格员联系方式")
+    private String gridMenberTele;
+
+    @ApiModelProperty("处理人id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long dellUserId;
+
+    @ApiModelProperty("处理人")
+    private String dellUserName;
+
+    @ApiModelProperty("需走访人电话")
+    @EncryptDecryptField
+    private String visiterTele;
+
+    @ApiModelProperty("完成时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date submitDate;
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty("创建人")
+    private String creator;
+
+    @ApiModelProperty("撤销时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date cancelTime;
+
+    private Integer eventStatus;
+
+    @ApiModelProperty("状态")
+    private String eventStatusName;
+
+    @ApiModelProperty("正常状态(0.正常 1.异常)")
+    private Integer exception;
+
+    public String getEventStatusName() {
+
+        return EventTasksStatusEnum.getName(eventStatus);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitCountVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitCountVO.java
new file mode 100644
index 0000000..7c61462
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitCountVO.java
@@ -0,0 +1,26 @@
+package com.panzhihua.common.model.vos.visit;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 后台走访统计
+ * 
+ * @author xyh
+ * @date 2021/6/21 14:34
+ */
+@ApiModel("走访统计VO")
+@Data
+public class EventVisitCountVO {
+
+    @ApiModelProperty("待走访")
+    private Long visit;
+
+    @ApiModelProperty("已走访")
+    private Long visited;
+
+    @ApiModelProperty("已撤销")
+    private Long canceled;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitListVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitListVO.java
new file mode 100644
index 0000000..30b1bc0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitListVO.java
@@ -0,0 +1,82 @@
+package com.panzhihua.common.model.vos.visit;
+
+import java.util.Date;
+
+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.enums.EventTasksStatusEnum;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 后台需走访人员VO
+ * 
+ * @author xyh
+ * @date 2021/6/21 14:34
+ */
+@ApiModel("需走访人员VO")
+@Data
+public class EventVisitListVO {
+
+    @ApiModelProperty("id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty("真实姓名")
+    private String name;
+
+    @ApiModelProperty("身份证号码")
+    private String cardNoStr;
+
+    @ApiModelProperty(value = "人员标签")
+    private String label;
+
+    @ApiModelProperty(value = "年龄")
+    private Integer age;
+
+    @ApiModelProperty(value = "性别")
+    private String sex;
+
+    @ApiModelProperty(value = "性别名称")
+    private String sexName;
+
+    @ApiModelProperty(value = "现居地址")
+    private String address;
+
+    private String politicalOutlook;
+
+    @ApiModelProperty(value = "政治面貌")
+    private String politicalOutlookName;
+
+    @ApiModelProperty("联系方式")
+    private String phone;
+
+    @ApiModelProperty("户籍地址")
+    private String censusRegister;
+
+    @ApiModelProperty("户主")
+    private String houseHolder;
+
+    @ApiModelProperty("关联实有房屋")
+    private String relationHouse;
+
+    @ApiModelProperty("最近一次走访任务时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    private Integer eventStatus;
+
+    @ApiModelProperty("最近一次走访任务状态")
+    private String eventStatusName;
+
+    public String getEventStatusName() {
+        if (eventStatus != null) {
+            return EventTasksStatusEnum.getName(eventStatus);
+        }
+        return null;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitingTasksDetailsVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitingTasksDetailsVO.java
new file mode 100644
index 0000000..70291c6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitingTasksDetailsVO.java
@@ -0,0 +1,144 @@
+package com.panzhihua.common.model.vos.visit;
+
+import java.util.Date;
+import java.util.List;
+
+import com.alibaba.fastjson.JSONObject;
+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.dtos.EventResourceDTO;
+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;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("重点人群走访记录详细返回参数")
+@EncryptDecryptClass
+public class EventVisitingTasksDetailsVO {
+
+    @ApiModelProperty(value = "音频列表")
+    List<EventResourceDTO> vosList;
+    @ApiModelProperty(value = "图片列表")
+    List<EventResourceDTO> imgList;
+    @ApiModelProperty(value = "视频列表")
+    List<EventResourceDTO> videoList;
+    @ApiModelProperty(value = "id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+    @ApiModelProperty(value = "网格员所处的街道")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long gridMemberStreet;
+    @ApiModelProperty(value = "网格员所处社区")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long gridMemberCommunity;
+    @ApiModelProperty(value = "网格员")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long gridMember;
+    @ApiModelProperty(value = "网格员名字")
+    private String gridMemberName;
+    @ApiModelProperty(value = "网格员联系方式")
+    private String gridMenberTele;
+    @ApiModelProperty(value = "需走访人ID")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long visiterId;
+    @ApiModelProperty(value = "需走访人名字")
+    private String visiterName;
+    @ApiModelProperty(value = "需走访人员性别")
+    private Integer visiterSex;
+    @ApiModelProperty(value = "需走访人电话")
+    @EncryptDecryptField
+    private String visiterTele;
+    @ApiModelProperty(value = "需走访人电话")
+    private String visiterPhone;
+    @ApiModelProperty(value = "需走访人居住地址")
+    private String visiterAddress;
+    @ApiModelProperty(value = "人员类型1吸毒2严重精神障碍3刑释人员4社区矫正人员")
+    private Integer visiterType;
+    @ApiModelProperty(value = "事件标题")
+    private String eventTitle;
+    @ApiModelProperty(value = "事件类型")
+    private Integer eventType;
+    @ApiModelProperty(value = "事件描述")
+    private String eventDes;
+    @ApiModelProperty(value = "社区处理(0是无需社区1是社区处理)")
+    private Integer actOpara;
+    @ApiModelProperty(value = "发生时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date happenTime;
+    @ApiModelProperty(value = "发生地点")
+    private String happentAddress;
+    @ApiModelProperty(value = "发生的精度纬度信息(逗号隔开)")
+    private String happentLatLng;
+    @ApiModelProperty(value = "事件状态(1待处理2自己已解决3待验证4草稿箱5已撤销6异常)")
+    private Integer eventStatus;
+    @ApiModelProperty(value = "上报状态")
+    private Integer reporting;
+    @ApiModelProperty(value = "当前处理对象类型(1、网格员2、社区3、是街道)")
+    private Integer dellType;
+    @ApiModelProperty(value = "处理人ID")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long dellUserId;
+    @ApiModelProperty(value = "处理人名称")
+    private String dellUserName;
+    @ApiModelProperty(value = "处理时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date dellDate;
+    @ApiModelProperty(value = "异常描述")
+    private String dellDesc;
+    @ApiModelProperty(value = "是否有效")
+    private Boolean invalid;
+    @ApiModelProperty(value = "是否紧急")
+    private Boolean urgent;
+    @ApiModelProperty(value = "是否催办")
+    private Boolean urgentDell;
+    @ApiModelProperty(value = "上报提交时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date submitDate;
+    @ApiModelProperty(value = "是否异常行为:0否,1是")
+    private Integer exception;
+    @ApiModelProperty(value = "走访内容根据重点人员类型输入项不同,录入全部的表单内容数据")
+    private JSONObject tableContentJson;
+    @ApiModelProperty(value = "创建人")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long createBy;
+    @ApiModelProperty(value = "创建事件")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+    @ApiModelProperty(value = "修改人")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long updateBy;
+    @ApiModelProperty(value = "修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAt;
+    @ApiModelProperty(value = "异常选项")
+    private List<String> optionList;
+    @ApiModelProperty(value = "家庭联系方式")
+    private String familyPhone;
+
+    @ApiModelProperty(value = "生活来源")
+    private String familySource;
+
+    @ApiModelProperty(value = "地址备注")
+    private String addressRemark;
+
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+    @ApiModelProperty("异常选择")
+    private String option;
+
+    @ApiModelProperty("走访后的经纬度(,隔开)")
+    private String latLng;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitingTasksVO.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitingTasksVO.java
new file mode 100644
index 0000000..8ee2240
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/model/vos/visit/EventVisitingTasksVO.java
@@ -0,0 +1,197 @@
+package com.panzhihua.common.model.vos.visit;
+
+import java.util.Date;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+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.enums.EventTasksStatusEnum;
+import com.panzhihua.common.enums.EventTasksVisitorTypeEnum;
+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;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@ApiModel("重点人群走访记录返回参数")
+@ExcelIgnoreUnannotated
+@EncryptDecryptClass
+public class EventVisitingTasksVO {
+
+    @ApiModelProperty(value = "id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    // @ExcelProperty(value = "序号",index = 0)
+    // private Integer rowNum;
+
+    @ExcelProperty(value = "创建时间", index = 0)
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ExcelProperty(value = "创建人", index = 1)
+    @ApiModelProperty(value = "创建人")
+    private String creator;
+
+    @ExcelProperty(value = "走访对象", index = 2)
+    @ApiModelProperty(value = "需走访人名字")
+    private String visiterName;
+
+    @ExcelProperty(value = "身份证号码", index = 3)
+    @ApiModelProperty(value = "身份证号码")
+    @EncryptDecryptField
+    private String cardNoStr;
+
+    @ExcelProperty(value = "走访地址", index = 4)
+    @ApiModelProperty(value = "走访地址")
+    private String visiterAddress;
+
+    @ExcelProperty(value = "人员标签", index = 5)
+    @ApiModelProperty(value = "人员标签")
+    private String visiterTypeName;
+
+    @ExcelProperty(value = "走访人", index = 6)
+    @ApiModelProperty(value = "走访人")
+    private String dellUserName;
+
+    @ExcelProperty(value = "完成走访时间", index = 7)
+    @ApiModelProperty(value = "完成走访时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date submitDate;
+
+    @ExcelProperty(value = "撤销时间", index = 8)
+    @ApiModelProperty(value = "撤销时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date cancelTime;
+
+    @ExcelProperty(value = "状态", index = 9)
+    @ApiModelProperty(value = "状态")
+    private String eventStatusName;
+
+    @ApiModelProperty(value = "需走访人ID")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long visiterId;
+
+    @ApiModelProperty(value = "网格员所处的街道")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long gridMemberStreet;
+
+    @ApiModelProperty(value = "网格员所处社区")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long gridMemberCommunity;
+
+    @ApiModelProperty(value = "网格员")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long gridMember;
+
+    @ApiModelProperty(value = "网格员名字")
+    private String gridMemberName;
+
+    @ApiModelProperty(value = "网格员联系方式")
+    private String gridMenberTele;
+
+    @ApiModelProperty(value = "所属网格")
+    private String gridName;
+
+    @ApiModelProperty(value = "需走访人员性别")
+    private Integer visiterSex;
+
+    @ApiModelProperty(value = "需走访人电话")
+    @EncryptDecryptField
+    private String visiterTele;
+
+    private Integer visiterType;
+
+    @ApiModelProperty(value = "事件标题")
+    private String eventTitle;
+
+    @ApiModelProperty(value = "事件类型")
+    private Integer eventType;
+
+    @ApiModelProperty(value = "事件描述")
+    private String eventDes;
+
+    @ApiModelProperty(value = "社区处理(0是无需社区1是社区处理)")
+    private Integer actOpara;
+
+    @ApiModelProperty(value = "发生时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date happenTime;
+
+    @ApiModelProperty(value = "发生地点")
+    private String happentAddress;
+
+    @ApiModelProperty(value = "发生的精度纬度信息(逗号隔开)")
+    private String happentLatLng;
+    private Integer eventStatus;
+    @ApiModelProperty(value = "上报状态")
+    private Integer reporting;
+    @ApiModelProperty(value = "当前处理对象类型(1、网格员2、社区3、是街道)")
+    private Integer dellType;
+    @ApiModelProperty(value = "处理人ID")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long dellUserId;
+    @ApiModelProperty(value = "处理时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date dellDate;
+    @ApiModelProperty(value = "解决人针对解决事件的处理描述")
+    private String dellDesc;
+    @ApiModelProperty(value = "是否有效")
+    private Boolean invalid;
+    @ApiModelProperty(value = "是否紧急")
+    private Boolean urgent;
+    @ApiModelProperty(value = "是否催办")
+    private Boolean urgentDell;
+    @ApiModelProperty(value = "是否异常行为(1.是   0.否)")
+    private Integer exception;
+    @ApiModelProperty(value = "走访内容根据重点人员类型输入项不同,录入全部的表单内容数据")
+    private String tableContentJson;
+    @ApiModelProperty(value = "创建人id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long createBy;
+    @ApiModelProperty(value = "修改人")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long updateBy;
+    @ApiModelProperty(value = "修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAt;
+    @ApiModelProperty(value = "标签")
+    private String label;
+    @ApiModelProperty(value = "年龄")
+    private Integer age;
+    @ApiModelProperty(value = "电话")
+    private String phone;
+    private Integer nationCode;
+    @ApiModelProperty(value = "民族")
+    private String nation;
+    @ApiModelProperty(
+        value = "政治面貌(1.中共党员2.中共预备党员3.共青团员4.民革党员5.民盟盟员6.民建会员7.8.农工党党员9.致公党党员10.九三学社社员11.台盟盟员12.无党派人士13.群众)")
+    private Integer politicalOutlook;
+
+    public String getEventStatusName() {
+        if (eventStatus == null) {
+            return null;
+        }
+        return EventTasksStatusEnum.getName(eventStatus);
+    }
+
+    public String getVisiterTypeName() {
+        if (visiterType == null) {
+            return null;
+        }
+        return EventTasksVisitorTypeEnum.getName(visiterType);
+    }
+
+}
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..e449b75
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/redis/CacheConfig.java
@@ -0,0 +1,79 @@
+package com.panzhihua.common.redis;
+
+import java.time.Duration;
+
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+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);
+
+        objectMapper.activateDefaultTyping(
+                objectMapper.getPolymorphicTypeValidator(),
+                ObjectMapper.DefaultTyping.NON_FINAL,
+                JsonTypeInfo.As.PROPERTY);
+
+        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/RedisTokenManager.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/redis/RedisTokenManager.java
new file mode 100644
index 0000000..28739f9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/redis/RedisTokenManager.java
@@ -0,0 +1,170 @@
+package com.panzhihua.common.redis;
+
+import com.panzhihua.common.utlis.JWTTokenUtil;
+import com.panzhihua.common.redis.TokenManager;
+import com.panzhihua.common.utlis.Constant;
+import io.jsonwebtoken.Claims;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.core.script.DigestUtils;
+import org.springframework.data.redis.serializer.JdkSerializationRedisSerializer;
+import org.springframework.stereotype.Component;
+import org.springframework.util.ObjectUtils;
+
+import javax.annotation.Resource;
+import java.util.Set;
+import java.util.UUID;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * 通过Redis存储和验证token的实现类
+ */
+@Component
+public class RedisTokenManager implements TokenManager
+{
+//    @Resource
+    private RedisTemplate<String,String> redis;
+
+//    @Resource
+//    private RedisTemplate<String,Object> redis1;
+
+    @Resource
+    RedisTemplate<String, Object> redisTemplate;
+    
+    @Resource
+    private RedisUtils redisUtils;
+
+    @Qualifier("redisTemplate")
+    @Autowired
+    public void setRedis(RedisTemplate redis) {
+        this.redis = redis;
+        //泛型设置成Long后必须更改对应的序列化方案
+        redis.setKeySerializer(new JdkSerializationRedisSerializer());
+    }
+
+    @Override
+    public String createToken(String userId, String userRole) {
+        //使用uuid作为源token
+        String uuid = UUID.randomUUID().toString().replace("-", "");
+        String token = DigestUtils.sha1DigestAsHex(uuid + userId + "e23ktjsdf") + "-" + userRole;
+        //存储到redis并设置过期时间
+        redis.boundValueOps(token).set(String.valueOf(userId), Constant.TOKEN_EXPIRES_HOUR, TimeUnit.HOURS);
+        redis.boundValueOps(String.valueOf(userId)).set(token, Constant.TOKEN_EXPIRES_HOUR, TimeUnit.HOURS);
+        return token;
+    }
+
+
+    public boolean checkToken(String token) {
+//        redis.multi(); // 开启事务
+//
+//        if (StringUtils.isEmpty(token)) {
+//            return false;
+//        }
+//        // 获取Redis服务器的地址
+//
+//        System.out.println("Redis服务器地址: " + redisTemplate.getConnectionFactory().getConnection());
+//
+//        // 获取Redis服务器的端口
+//        System.out.println("Redis服务器端口: " + redisTemplate.getConnectionFactory().getConnection());
+//        Set<String> keys = redisTemplate.keys("*");
+//
+//        // 打印所有的键(key)
+//        for (String key : keys) {
+//            System.out.println(key);
+//        }
+//        Object login_user_info = redisUtils.get("login_user_info");
+//        Object userId2 = redisUtils.get("08839375c14aebe729fb0fb25defdea123782abc-2");
+////        String userId = redisTemplate.boundValueOps("2").get().toString();
+//        Object o = redisTemplate.opsForValue().get("08839375c14aebe729fb0fb25defdea123782abc-2");
+//        String s = redis.boundValueOps("2").get();
+////        String s = o;
+////        Object auxiliaryPoints =redisTemplate.opsForValue().get("auxiliaryPoints");
+//
+//        if (userId2 == null) {
+//            return false;
+//        }
+//        redis.exec();
+//        //如果验证成功,说明此用户进行了一次有效操作,延长token的过期时间
+//        redis.boundValueOps(token).expire(Constant.TOKEN_EXPIRES_HOUR, TimeUnit.HOURS);
+//        return true;
+        if (StringUtils.isEmpty(token)) {
+            return false;
+        }
+        String userId = redis.boundValueOps(token).get();
+        if (userId == null) {
+            return false;
+        }
+        //如果验证成功,说明此用户进行了一次有效操作,延长token的过期时间
+        redis.boundValueOps(token).expire(Constant.TOKEN_EXPIRES_HOUR, TimeUnit.HOURS);
+        return true;
+    }
+
+
+    /**
+     * 验证花城token
+     * @param token
+     * @return
+     */
+    @Override
+    public boolean checkHCToken(String token) {
+        if (StringUtils.isEmpty(token)) {
+            return false;
+        }
+        // token解析
+        Claims claims = JWTTokenUtil.getClaimsFromToken(token);
+        if (ObjectUtils.isEmpty(claims)) {
+            return false;
+        }
+        String userId = claims.getSubject();
+        if (ObjectUtils.isEmpty(userId))
+        {
+            return false;
+        }
+        return true;
+    }
+
+
+    @Override
+    public long getUserId(String token) {
+        if (token == null) {
+            return -1;
+        }
+        String userId = redis.boundValueOps(token).get();
+        return Long.parseLong(userId);
+    }
+
+    /**
+     * 获取花城e+的 UserId
+     * @param token
+     * @return
+     */
+    @Override
+    public long getHCUserId(String token) {
+        if (token == null) {
+            return -1;
+        }
+        // token解析
+        Claims claims = JWTTokenUtil.getClaimsFromToken(token);
+        if (ObjectUtils.isEmpty(claims)) {
+            return -1;
+        }
+        String userId = claims.getSubject();
+        if (ObjectUtils.isEmpty(userId))
+        {
+            return -1;
+        }
+        return Long.parseLong(userId);
+    }
+
+    public void deleteToken(String token) {
+        redis.delete(token);
+    }
+
+    @Override
+    public String getTokenByUserId(String userId) {
+        return redis.boundValueOps(userId).get();
+    }
+
+}
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/redis/TokenManager.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/redis/TokenManager.java
new file mode 100644
index 0000000..e102be3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/redis/TokenManager.java
@@ -0,0 +1,36 @@
+package com.panzhihua.common.redis;
+
+import org.springframework.stereotype.Component;
+
+//@Component
+public interface TokenManager {
+    /**
+     * 创建一个token关联上指定用户
+     *
+     * @param userId 指定用户的id
+     * @return 生成的token
+     */
+    public String createToken(String userId, String role);
+
+    /**
+     * 检查token是否有效
+     *
+     * @param token
+     * @return 是否有效
+     */
+    public boolean checkToken(String token);
+
+    /**
+     * 检查花城token是否有效
+     * @param token
+     * @return
+     */
+    public boolean checkHCToken(String token);
+
+    public long getUserId(String token);
+    public long getHCUserId(String token);
+
+    public void deleteToken(String token);
+
+    public String getTokenByUserId(String userId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/HanyuPinyinHelper.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/HanyuPinyinHelper.java
new file mode 100644
index 0000000..f1a422c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/HanyuPinyinHelper.java
@@ -0,0 +1,128 @@
+package com.panzhihua.common.service;
+
+import net.sourceforge.pinyin4j.PinyinHelper;
+import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
+import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
+import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
+import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
+import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
+
+public class HanyuPinyinHelper {
+
+    public static String getFirstLettersUp(String ChineseLanguage) {
+        return getFirstLetters(ChineseLanguage, HanyuPinyinCaseType.UPPERCASE);
+    }
+
+    public static String getFirstLettersLo(String ChineseLanguage) {
+        return getFirstLetters(ChineseLanguage, HanyuPinyinCaseType.LOWERCASE);
+    }
+
+    public static String getFirstLetters(String ChineseLanguage, HanyuPinyinCaseType caseType) {
+        char[] cl_chars = ChineseLanguage.trim().toCharArray();
+        String hanyupinyin = "";
+        HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
+        defaultFormat.setCaseType(caseType);// 输出拼音全部大写
+        defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// 不带声调
+        try {
+            for (int i = 0; i < cl_chars.length; i++) {
+                String str = String.valueOf(cl_chars[i]);
+                if (str.matches("[\u4e00-\u9fa5]+")) {// 如果字符是中文,则将中文转为汉语拼音,并取第一个字母
+                    hanyupinyin += PinyinHelper.toHanyuPinyinStringArray(cl_chars[i], defaultFormat)[0].substring(0, 1);
+                } else if (str.matches("[0-9]+")) {// 如果字符是数字,取数字
+                    hanyupinyin += cl_chars[i];
+                } else if (str.matches("[a-zA-Z]+")) {// 如果字符是字母,取字母
+                    hanyupinyin += cl_chars[i];
+                } else {// 否则不转换
+                    hanyupinyin += cl_chars[i];// 如果是标点符号的话,带着
+                }
+            }
+        } catch (BadHanyuPinyinOutputFormatCombination e) {
+            System.out.println("字符不能转成汉语拼音");
+        }
+        return hanyupinyin;
+    }
+
+    public static String getPinyinString(String ChineseLanguage) {
+        char[] cl_chars = ChineseLanguage.trim().toCharArray();
+        String hanyupinyin = "";
+        HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
+        defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);// 输出拼音全部大写
+        defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// 不带声调
+        try {
+            for (int i = 0; i < cl_chars.length; i++) {
+                String str = String.valueOf(cl_chars[i]);
+                if (str.matches("[\u4e00-\u9fa5]+")) {// 如果字符是中文,则将中文转为汉语拼音,并取第一个字母
+                    hanyupinyin += PinyinHelper.toHanyuPinyinStringArray(cl_chars[i], defaultFormat)[0];
+                } else if (str.matches("[0-9]+")) {// 如果字符是数字,取数字
+                    hanyupinyin += cl_chars[i];
+                } else if (str.matches("[a-zA-Z]+")) {// 如果字符是字母,取字母
+
+                    hanyupinyin += cl_chars[i];
+                } else {// 否则不转换
+                }
+            }
+        } catch (BadHanyuPinyinOutputFormatCombination e) {
+            System.out.println("字符不能转成汉语拼音");
+        }
+        return hanyupinyin;
+    }
+
+    /**
+     * 取第一个汉字的第一个字符 @Title: getFirstLetter @Description: @return String @throws
+     */
+    public static String getFirstLetter(String ChineseLanguage) {
+        char[] cl_chars = ChineseLanguage.trim().toCharArray();
+        String hanyupinyin = "";
+        HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
+        defaultFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);// 输出拼音全部大写
+        defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// 不带声调
+        try {
+            String str = String.valueOf(cl_chars[0]);
+            if (str.matches("[\u4e00-\u9fa5]+")) {// 如果字符是中文,则将中文转为汉语拼音,并取第一个字母
+                hanyupinyin = PinyinHelper.toHanyuPinyinStringArray(cl_chars[0], defaultFormat)[0].substring(0, 1);
+            } else if (str.matches("[0-9]+")) {// 如果字符是数字,取数字
+                hanyupinyin += cl_chars[0];
+            } else if (str.matches("[a-zA-Z]+")) {// 如果字符是字母,取字母
+
+                hanyupinyin += cl_chars[0];
+            } else {// 否则不转换
+
+            }
+        } catch (BadHanyuPinyinOutputFormatCombination e) {
+            System.out.println("字符不能转成汉语拼音");
+        }
+        return hanyupinyin;
+    }
+
+    public static void main(String[] args) {
+        HanyuPinyinHelper hanyuPinyinHelper = new HanyuPinyinHelper();
+        System.out.println(hanyuPinyinHelper.toHanyuPinyin("多发的发独守空房阿道夫打发第三方"));
+    }
+
+    /**
+     * 将文字转为汉语拼音
+     *
+     * @param chineselanguage
+     *            要转成拼音的中文
+     */
+    public String toHanyuPinyin(String ChineseLanguage) {
+        char[] cl_chars = ChineseLanguage.trim().toCharArray();
+        String hanyupinyin = "";
+        HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
+        defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);// 输出拼音全部小写
+        defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// 不带声调
+        defaultFormat.setVCharType(HanyuPinyinVCharType.WITH_V);
+        try {
+            for (int i = 0; i < cl_chars.length; i++) {
+                if (String.valueOf(cl_chars[i]).matches("[\u4e00-\u9fa5]+")) {// 如果字符是中文,则将中文转为汉语拼音
+                    hanyupinyin += PinyinHelper.toHanyuPinyinStringArray(cl_chars[i], defaultFormat)[0];
+                } else {// 如果字符不是中文,则不转换
+                    hanyupinyin += cl_chars[i];
+                }
+            }
+        } catch (BadHanyuPinyinOutputFormatCombination e) {
+            System.out.println("字符不能转成汉语拼音");
+        }
+        return hanyupinyin;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/api/ApiServiceFeign.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/api/ApiServiceFeign.java
new file mode 100644
index 0000000..2278cbd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/api/ApiServiceFeign.java
@@ -0,0 +1,92 @@
+package com.panzhihua.common.service.api;
+
+import org.springframework.cloud.openfeign.FeignClient;
+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;
+
+import com.panzhihua.common.model.dtos.api.EventFile;
+import com.panzhihua.common.model.dtos.api.EventInfo;
+import com.panzhihua.common.model.vos.R;
+
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * @author manailin desc 主要是提供给浪潮服务器上传事件
+ * @version 1.0
+ * @date 2021-05-26
+ * @since 1.0
+ */
+@FeignClient(name = "serviceApi")
+public interface ApiServiceFeign {
+
+    /**
+     * description 生成或更新redis里面的对接浪潮所需的token信息
+     *
+     * @param name
+     *            账号
+     * @param password
+     *            密码
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @GetMapping("get/token")
+    void getToken(@RequestParam("name") String name, @RequestParam("password") String password);
+
+    /**
+     * description 向浪潮服务器提交网格事件登记 *
+     *
+     * @param eventInfo
+     *            事件信息对象
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @PostMapping("lc/event/upload")
+    void automationUpload(@RequestBody EventInfo eventInfo);
+
+    /**
+     * description 提交事件登记关联的文件或者图片信息
+     *
+     * @param eventFile
+     *            文件对象
+     * @return R 上传结果
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @PostMapping("lc/event/upload/file")
+    R automationUploadFile(@RequestBody EventFile eventFile);
+
+    /**
+     * description 提交事件登记关联的文件或者图片信息
+     *
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @ApiOperation(value = "提交事件登记关联的文件或者图片信息")
+    @PostMapping("lc/event/upload/event_and_file")
+    void automationUploadEventAndFile();
+
+    /**
+     * description 自动上传重点人员和流动人员走访记录
+     *
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @ApiOperation(value = "自动上传重点人员和流动人员走访记录")
+    @GetMapping("lc/auto/upload/visit_record")
+    void automationUploadVisitRecord();
+
+    @ApiOperation(value = "获取所有或者根据姓名和工号查询,分页")
+    @GetMapping("lc/event/getGridMemberListByAreaIdOrName")
+    R getGridMemberListByAreaIdOrName(@RequestParam("areaId") String areaId, @RequestParam("param") String param,
+        @RequestParam("pageNum") Long pageNum, @RequestParam("pageSize") Long pageSize);
+
+    @ApiOperation(value = "获取指定区域网格树形列表,不包括具体的网格数据")
+    @GetMapping("lc/grid/tree")
+    R getGridTreeByAreaId(@RequestParam("areaId") String areaId);
+
+    @ApiOperation(value = "获取指定区域网格列表")
+    @GetMapping("lc/grid/list")
+    R getGridDataListByAreaId(@RequestParam("areaId") String areaId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/auth/TokenService.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/auth/TokenService.java
new file mode 100644
index 0000000..559d4a0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/auth/TokenService.java
@@ -0,0 +1,186 @@
+package com.panzhihua.common.service.auth;
+
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import org.springframework.cloud.openfeign.FeignClient;
+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;
+
+import com.panzhihua.common.model.vos.R;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 认证授权
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-24 09:18
+ **/
+@FeignClient(name = "huacheng-auth")
+public interface TokenService {
+    /**
+     * 小程序用户登录
+     * 
+     * @param openId
+     *            小程序唯一标识
+     * @return 登录结果
+     */
+    @PostMapping("/loginApplets")
+    R loginApplets(@RequestParam("openId") String openId,@RequestParam("appid")String appid);
+
+    /**
+     * 用户登出
+     * 
+     * @param token
+     *            登录用户token
+     * @return 登出结果
+     */
+    @PostMapping("/logout")
+    R logout(@RequestParam("token") String token);
+
+    /**
+     * 社区后台登录
+     * 
+     * @param account
+     *            账户
+     * @param password
+     *            密码
+     * @return 登录结果
+     */
+    @PostMapping("/loginCommunityBackage")
+    R loginCommunityBackage(@RequestParam("account") String account, @RequestParam("password") String password,@RequestParam("appid")String appid);
+
+    /**
+     * 小程序后台登录
+     * 
+     * @param account
+     *            账户
+     * @param password
+     *            密码
+     * @return 登录结果
+     */
+    @PostMapping("/loginAppletsBackStage")
+    R loginAppletsBackStage(@RequestParam("account") String account, @RequestParam("password") String password,@RequestParam("appid")String appid);
+
+    /**
+     * 认证中心刷新token
+     * 
+     * @param refreshToken
+     *            用户端保存的刷新token
+     * @return 新的token 和刷新token
+     */
+    @PostMapping("/refreshToken")
+    R refreshToken(@RequestParam("refreshToken") String refreshToken);
+
+
+
+    @PostMapping("/getNewToken")
+    public R getNewToken(@RequestBody LoginUserInfoVO loginUserInfoVO);
+
+    /**
+     * 商家后台登录
+     * 
+     * @param account
+     *            账户
+     * @param password
+     *            密码
+     * @return 登录结果
+     */
+    @PostMapping("/loginShopBackStage")
+    R loginShopBackStage(@RequestParam("account") String account, @RequestParam("password") String password,@RequestParam("appid")String appid);
+
+    /**
+     * 网格综治APP登录
+     * 
+     * @param account
+     *            账户
+     * @param password
+     *            密码
+     * @return 登录结果
+     */
+    @PostMapping("/loginGridApp")
+    R loginGridApp(@RequestParam("account") String account, @RequestParam("password") String password,@RequestParam("appid")String appid);
+
+    /**
+     * 网格综治后台登录
+     * 
+     * @param account
+     *            账户
+     * @param password
+     *            密码
+     * @return 登录结果
+     */
+    @PostMapping("/loginGridBackstage")
+    R loginGridBackstage(@RequestParam("account") String account, @RequestParam("password") String password,@RequestParam("appid")String appid);
+
+    /**
+     * 城管后台登录
+     * @param account   账号
+     * @param password  密码
+     * @return  登录结果
+     */
+    @PostMapping("/loginCgBackage")
+    R loginCgBackage(@RequestParam("account") String account, @RequestParam("password") String password,@RequestParam("appid")String appid);
+
+    /**
+     * 一键报警APP登录
+     * @param account   账号
+     * @param password  密码
+     * @return  登录结果
+     */
+    @PostMapping("/loginAlarmApp")
+    R loginAlarmApp(@RequestParam("account") String account, @RequestParam("password") String password,@RequestParam("appid")String appid);
+
+    /**
+     * 便民服务商家后台登录
+     *
+     * @param account
+     *            账户
+     * @param password
+     *            密码
+     * @return 登录结果
+     */
+    @PostMapping("/loginMerchantBackStage")
+    R loginMerchantBackStage(@RequestParam("account") String account, @RequestParam("password") String password,@RequestParam("appid")String appid);
+
+    /**
+     * 西区大屏登录
+     * @param account   账号
+     * @param password  密码
+     * @return  登录结果
+     */
+    @PostMapping("/loginXQDP")
+    R loginXQDP(@RequestParam("account") String account, @RequestParam("password") String password,@RequestParam("appid")String appid);
+
+    /**
+     * 微商业街用户登录
+     *
+     * @param account
+     *            账户
+     * @param password
+     *            密码
+     * @return 登录结果
+     */
+    @PostMapping("/loginMcsUser")
+    R loginMcsUser(@RequestParam("account") String account, @RequestParam("password") String password,@RequestParam("appid")String appid);
+
+    /**
+     * 天府通办登录
+     * @param account
+     * @param password
+     * @param appid
+     * @return
+     */
+    @GetMapping("/tfLogin")
+    R tfLogin(@RequestParam("account")String account,@RequestParam("password")String password,@RequestParam("appid")String appid);
+    /**
+     * 电动车商城后台用户登录
+     *
+     * @param account
+     *            账户
+     * @param password
+     *            密码
+     * @return 登录结果
+     */
+    @PostMapping("/loginBatteryUser")
+    R loginBatteryUser(@RequestParam("account") String account, @RequestParam("password") String password,@RequestParam("appid")String appid);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/bracelet/CommunityBraceletService.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/bracelet/CommunityBraceletService.java
new file mode 100644
index 0000000..5a15a91
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/bracelet/CommunityBraceletService.java
@@ -0,0 +1,133 @@
+package com.panzhihua.common.service.bracelet;
+
+import com.panzhihua.common.model.dtos.bracelet.BraceletEarlyWarningDO;
+import com.panzhihua.common.model.dtos.bracelet.BraceletUserDataDO;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.*;
+
+@FeignClient(name = "bracelet")
+public interface CommunityBraceletService
+{
+    @PostMapping("/braceletApi/addBracelet")
+    R addBracelet(@RequestBody BraceletUserDataDO braceletUserDataDO);
+
+
+    @PostMapping("/braceletApi/upBracelet")
+    R upBracelet(@RequestBody BraceletUserDataDO braceletUserDataDO);
+
+
+    @DeleteMapping("/braceletApi/delectData")
+    R delectData(@RequestParam("id") String id);
+
+    @GetMapping("/braceletApi/getData")
+    R getData(@RequestParam("pageNum") Integer pageNum,
+              @RequestParam("pageSize") Integer pageSize,
+              @RequestParam(value = "communityId",required = false)  String communityId,
+              @RequestParam(value = "userName",required = false) String userName,
+              @RequestParam(value = "phone",required = false) String phone);
+
+    /**
+     * 设备用户详情数据
+     * @return
+     */
+    @GetMapping("/braceletApi/getDetails")
+    R getDetails(@RequestParam("deviceID") String deviceID);
+
+
+
+
+    /**
+     * 编辑手环预警数据
+     * @param braceletEarlyWarningDO
+     * @return
+     */
+    @PostMapping("/braceletApi/upEarlyWarning")
+    R upEarlyWarning(@RequestBody BraceletEarlyWarningDO braceletEarlyWarningDO) ;
+
+    /**
+     * 删除预警数据
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/braceletApi/delectEarlyWarning")
+    R delectEarlyWarning(@RequestParam("id") String id);
+
+    /**
+     * 获取预警数据
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/braceletApi/getEarlyWarningList")
+    R getList(@RequestParam("pageNum") Integer pageNum,
+              @RequestParam("pageSize") Integer pageSize,
+              @RequestParam(value = "communityId",required = false)  String communityId,
+              @RequestParam(value = "equipmentNumber",required = false)  String equipmentNumber,
+              @RequestParam(value = "disposeUserId",required = false)  String disposeUserId,
+              @RequestParam(value = "type",required = false)  String type,
+              @RequestParam(value = "userName",required = false)  String userName,
+              @RequestParam(value = "phone",required = false)  String phone);
+
+    /**
+     * 获取单个预警信息详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/braceletApi/getEarlyWarningDetails")
+    R getEarlyWarningDetails(@RequestParam("id") String id);
+
+    /**
+     * 后台处理接口
+     * @return
+     */
+    @PostMapping("/braceletApi/dispose")
+    R dispose(@RequestBody BraceletEarlyWarningDO braceletEarlyWarningDO);
+
+
+    /**
+     * 微信处理接口
+     * @param braceletEarlyWarningDO
+     * @return
+     */
+    @PostMapping("/braceletApi/WXdispose")
+    R  WXdispose(@RequestBody BraceletEarlyWarningDO braceletEarlyWarningDO);
+
+
+
+    /**
+     * 处理人
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/braceletApi/conductorList")
+    R conductorList(@RequestParam("communityId") String communityId);
+
+
+    /******************************************************************************************************************************
+     *
+     *                                              大屏居家养老
+     *
+     *****************************************************************************************************************************/
+    /**
+     * 手环人数
+     * @return
+     */
+    @GetMapping("/braceletApi/getUserNum")
+    public R getUserNum(@RequestParam("communityId") String communityId);
+
+    /**
+     * 手环定位数据
+     */
+    @GetMapping("/braceletApi/getUserList")
+    public R  getUserList(@RequestParam("communityId") String communityId);
+
+    /**
+     * 获取手环预警次数
+     * @return
+     */
+    @GetMapping("/braceletApi/getWarningNum")
+    public R getWarningNum(@RequestParam("communityId") String communityId,
+                           @RequestParam(value = "disposeType",required = false) String disposeType);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComActEasyPhotoEvaluateFeign.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComActEasyPhotoEvaluateFeign.java
new file mode 100644
index 0000000..c86b569
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComActEasyPhotoEvaluateFeign.java
@@ -0,0 +1,85 @@
+package com.panzhihua.common.service.community;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.*;
+import com.panzhihua.common.constants.Constants;
+import org.springframework.cloud.openfeign.FeignClient;
+
+/**
+ * title: 随手拍、微心愿评价表业务层接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 随手拍、微心愿评价表业务层接口
+ *
+ * @author lyq
+ * @date 2022-03-01 13:44:43
+ */
+@FeignClient(name = "huacheng-community", contextId = "comActEasyPhotoEvaluate", path = "comActEasyPhotoEvaluate")
+public interface ComActEasyPhotoEvaluateFeign {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comActEasyPhotoEvaluate 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-01 13:44:43
+     */
+    @PostMapping("/page")
+    R queryByPage(@RequestBody PageComActEasyPhotoEvaluateDto comActEasyPhotoEvaluate);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comActEasyPhotoEvaluate 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-01 13:44:43
+     */
+    @PostMapping("/add")
+    R insert(@RequestBody AddComActEasyPhotoEvaluateDto comActEasyPhotoEvaluate);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comActEasyPhotoEvaluate 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-01 13:44:43
+     */
+    @PutMapping("/edit")
+    R update(@RequestBody EditComActEasyPhotoEvaluateDto comActEasyPhotoEvaluate);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-01 13:44:43
+     */
+    @GetMapping("/delete")
+    R deleteById(@RequestParam("id") Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-01 13:44:43
+     */
+    @GetMapping("/detail")
+    R detailById(@RequestParam("id") Long id);
+
+    /**
+     * 随手拍评价
+     * @param whistleDto    请求参数
+     * @return  评价结果
+     */
+    @PostMapping("/easy/evaluate")
+    R evaluateEasyApplets(@RequestBody EvaluateEasyDto whistleDto);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComActEasyPhotoHandlerFeign.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComActEasyPhotoHandlerFeign.java
new file mode 100644
index 0000000..744a2f1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComActEasyPhotoHandlerFeign.java
@@ -0,0 +1,77 @@
+package com.panzhihua.common.service.community;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.*;
+import com.panzhihua.common.constants.Constants;
+import org.springframework.cloud.openfeign.FeignClient;
+
+/**
+ * title: 随手拍、微心愿处理人绑定表业务层接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 随手拍、微心愿处理人绑定表业务层接口
+ *
+ * @author lyq
+ * @date 2022-03-01 13:45:12
+ */
+@FeignClient(name = "huacheng-community", contextId = "comActEasyPhotoHandler", path = "comActEasyPhotoHandler")
+public interface ComActEasyPhotoHandlerFeign {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comActEasyPhotoHandler 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-01 13:45:12
+     */
+    @PostMapping("/page")
+    R queryByPage(@RequestBody PageComActEasyPhotoHandlerDto comActEasyPhotoHandler);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comActEasyPhotoHandler 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-01 13:45:12
+     */
+    @PostMapping("/add")
+    R insert(@RequestBody AddComActEasyPhotoHandlerDto comActEasyPhotoHandler);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comActEasyPhotoHandler 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-01 13:45:12
+     */
+    @PutMapping("/edit")
+    R update(@RequestBody EditComActEasyPhotoHandlerDto comActEasyPhotoHandler);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-01 13:45:12
+     */
+    @GetMapping("/delete")
+    R deleteById(@RequestParam("id") Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-01 13:45:12
+     */
+    @GetMapping("/detail")
+    R detailById(@RequestParam("id") Long id);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryCommodityActivityFeign.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryCommodityActivityFeign.java
new file mode 100644
index 0000000..8e48190
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryCommodityActivityFeign.java
@@ -0,0 +1,136 @@
+package com.panzhihua.common.service.community;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.*;
+import com.panzhihua.common.constants.Constants;
+import org.springframework.cloud.openfeign.FeignClient;
+
+/**
+ * title: 电动车商城-商家活动表业务层接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商家活动表业务层接口
+ *
+ * @author lyq
+ * @date 2022-03-29 13:17:41
+ */
+@FeignClient(name = Constants.SERVICE_COMMUNITY, contextId = "comBatteryCommodityActivity", path = "comBatteryCommodityActivity")
+public interface ComBatteryCommodityActivityFeign {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommodityActivity 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-29 13:17:41
+     */
+    @PostMapping("/page")
+    R queryByPage(@RequestBody PageComBatteryCommodityActivityDto comBatteryCommodityActivity);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comBatteryCommodityActivity 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-29 13:17:41
+     */
+    @PostMapping("/add")
+    R insert(@RequestBody AddComBatteryCommodityActivityDto comBatteryCommodityActivity);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comBatteryCommodityActivity 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-29 13:17:41
+     */
+    @PutMapping("/edit")
+    R update(@RequestBody EditComBatteryCommodityActivityDto comBatteryCommodityActivity);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-29 13:17:41
+     */
+    @GetMapping("/delete")
+    R deleteById(@RequestParam("id") Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 13:17:41
+     */
+    @GetMapping("/detail")
+    R detailById(@RequestParam("id") Long id,@RequestParam("userId") Long userId);
+
+    /**
+     * description  queryByList  查询列表
+     *
+     * @param comBatteryCommodityActivity 请求参数
+     * @return 查询列表数据
+     * @author lyq
+     * @date 2022-03-29 13:17:41
+     */
+    @PostMapping("/list")
+    R queryByList(@RequestBody PageComBatteryCommodityActivityDto comBatteryCommodityActivity);
+
+    /**
+     * 修改活动状态
+     * @param id    活动id
+     * @param status    状态
+     * @return  修改结果
+     */
+    @GetMapping("/updateStatus")
+    R updateStatus(@RequestParam("id") Long id,@RequestParam("status") Integer status);
+
+    /**
+     * 创建拼团订单
+     * @param orderDto  请求参数
+     * @return  创建订单结果
+     */
+    @PostMapping("/start/fight")
+    R startFight(@RequestBody StartFightOrderDto orderDto);
+
+    /**
+     * 创建砍价订单
+     * @param orderDto  请求参数
+     * @return  创建订单结果
+     */
+    @PostMapping("/start/bargain")
+    R startBargain(@RequestBody StartBargainOrderDto orderDto);
+
+    /**
+     * 帮好友砍价
+     * @param orderDto  请求参数
+     * @return  创建订单结果
+     */
+    @PostMapping("/start/user/bargain")
+    R startUserBargain(@RequestBody StartUserBargainOrderDto orderDto);
+
+    /**
+     * 查询砍价记录详情
+     * @param id  砍价记录id
+     * @return  创建订单结果
+     */
+    @GetMapping("/user/bargain")
+    R getUserBargain(@RequestParam("id") Long id);
+
+    /**
+     * 创建秒杀订单
+     * @param orderDto  请求参数
+     * @return  创建订单结果
+     */
+    @PostMapping("/start/seckill")
+    R startSeckill(@RequestBody StartSeckillOrderDto orderDto);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryCommodityFeign.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryCommodityFeign.java
new file mode 100644
index 0000000..f1ad19a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryCommodityFeign.java
@@ -0,0 +1,104 @@
+package com.panzhihua.common.service.community;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.*;
+import com.panzhihua.common.constants.Constants;
+import org.springframework.cloud.openfeign.FeignClient;
+
+/**
+ * title: 电动车商城-商品表业务层接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商品表业务层接口
+ *
+ * @author lyq
+ * @date 2022-03-28 15:00:00
+ */
+@FeignClient(name = Constants.SERVICE_COMMUNITY, contextId = "comBatteryCommodity", path = "comBatteryCommodity")
+public interface ComBatteryCommodityFeign {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommodity 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-28 15:00:00
+     */
+    @PostMapping("/page")
+    R queryByPage(@RequestBody PageComBatteryCommodityDto comBatteryCommodity);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comBatteryCommodity 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-28 15:00:00
+     */
+    @PostMapping("/add")
+    R insert(@RequestBody AddComBatteryCommodityDto comBatteryCommodity);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comBatteryCommodity 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-28 15:00:00
+     */
+    @PutMapping("/edit")
+    R update(@RequestBody EditComBatteryCommodityDto comBatteryCommodity);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-28 15:00:00
+     */
+    @GetMapping("/delete")
+    R deleteById(@RequestParam("id") Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-28 15:00:00
+     */
+    @GetMapping("/detail")
+    R detailById(@RequestParam("id") Long id);
+
+    /**
+     * description  queryByList  查询列表
+     *
+     * @param comBatteryCommodity 请求参数
+     * @return 查询列表数据
+     * @author lyq
+     * @date 2022-03-28 15:00:00
+     */
+    @PostMapping("/list")
+    R queryByList(@RequestBody PageComBatteryCommodityDto comBatteryCommodity);
+
+    /**
+     * 修改商品状态
+     * @param id    商品id
+     * @param status    商品状态
+     * @return  修改结果
+     */
+    @GetMapping("/updateStatus")
+    R updateStatus(@RequestParam("id") Long id,@RequestParam("status") Integer status);
+
+    /**
+     * 小程序查询商品列表
+     * @param comBatteryCommodity   请求参数
+     * @return  商品列表
+     */
+    @PostMapping("/applets/page")
+    R queryByAppletsPage(@RequestBody PageComBatteryCommodityDto comBatteryCommodity);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryCommodityOrderBargainFeign.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryCommodityOrderBargainFeign.java
new file mode 100644
index 0000000..9461e61
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryCommodityOrderBargainFeign.java
@@ -0,0 +1,87 @@
+package com.panzhihua.common.service.community;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.*;
+import com.panzhihua.common.constants.Constants;
+import org.springframework.cloud.openfeign.FeignClient;
+
+/**
+ * title: 电动车商城-砍价订单记录表业务层接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-砍价订单记录表业务层接口
+ *
+ * @author lyq
+ * @date 2022-03-29 16:06:38
+ */
+@FeignClient(name = Constants.SERVICE_COMMUNITY, contextId = "comBatteryCommodityOrderBargain", path = "comBatteryCommodityOrderBargain")
+public interface ComBatteryCommodityOrderBargainFeign {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommodityOrderBargain 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-29 16:06:38
+     */
+    @PostMapping("/page")
+    R queryByPage(@RequestBody PageComBatteryCommodityOrderBargainDto comBatteryCommodityOrderBargain);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comBatteryCommodityOrderBargain 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-29 16:06:38
+     */
+    @PostMapping("/add")
+    R insert(@RequestBody AddComBatteryCommodityOrderBargainDto comBatteryCommodityOrderBargain);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comBatteryCommodityOrderBargain 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-29 16:06:38
+     */
+    @PutMapping("/edit")
+    R update(@RequestBody EditComBatteryCommodityOrderBargainDto comBatteryCommodityOrderBargain);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-29 16:06:38
+     */
+    @GetMapping("/delete")
+    R deleteById(@RequestParam("id") Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 16:06:38
+     */
+    @GetMapping("/detail")
+    R detailById(@RequestParam("id") Long id);
+
+    /**
+     * description  queryByList  查询列表
+     *
+     * @param comBatteryCommodityOrderBargain 请求参数
+     * @return 查询列表数据
+     * @author lyq
+     * @date 2022-03-29 16:06:38
+     */
+    @PostMapping("/list")
+    R queryByList(@RequestBody PageComBatteryCommodityOrderBargainDto comBatteryCommodityOrderBargain);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryCommodityOrderBargainRecordFeign.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryCommodityOrderBargainRecordFeign.java
new file mode 100644
index 0000000..7cf2710
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryCommodityOrderBargainRecordFeign.java
@@ -0,0 +1,87 @@
+package com.panzhihua.common.service.community;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.*;
+import com.panzhihua.common.constants.Constants;
+import org.springframework.cloud.openfeign.FeignClient;
+
+/**
+ * title: 电动车商城-订单砍价记录表业务层接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-订单砍价记录表业务层接口
+ *
+ * @author lyq
+ * @date 2022-03-29 16:06:49
+ */
+@FeignClient(name = Constants.SERVICE_COMMUNITY, contextId = "comBatteryCommodityOrderBargainRecord", path = "comBatteryCommodityOrderBargainRecord")
+public interface ComBatteryCommodityOrderBargainRecordFeign {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommodityOrderBargainRecord 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-29 16:06:49
+     */
+    @PostMapping("/page")
+    R queryByPage(@RequestBody PageComBatteryCommodityOrderBargainRecordDto comBatteryCommodityOrderBargainRecord);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comBatteryCommodityOrderBargainRecord 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-29 16:06:49
+     */
+    @PostMapping("/add")
+    R insert(@RequestBody AddComBatteryCommodityOrderBargainRecordDto comBatteryCommodityOrderBargainRecord);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comBatteryCommodityOrderBargainRecord 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-29 16:06:49
+     */
+    @PutMapping("/edit")
+    R update(@RequestBody EditComBatteryCommodityOrderBargainRecordDto comBatteryCommodityOrderBargainRecord);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-29 16:06:49
+     */
+    @GetMapping("/delete")
+    R deleteById(@RequestParam("id") Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 16:06:49
+     */
+    @GetMapping("/detail")
+    R detailById(@RequestParam("id") Long id);
+
+    /**
+     * description  queryByList  查询列表
+     *
+     * @param comBatteryCommodityOrderBargainRecord 请求参数
+     * @return 查询列表数据
+     * @author lyq
+     * @date 2022-03-29 16:06:49
+     */
+    @PostMapping("/list")
+    R queryByList(@RequestBody PageComBatteryCommodityOrderBargainRecordDto comBatteryCommodityOrderBargainRecord);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryCommodityOrderCollageTeamFeign.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryCommodityOrderCollageTeamFeign.java
new file mode 100644
index 0000000..df41692
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryCommodityOrderCollageTeamFeign.java
@@ -0,0 +1,87 @@
+package com.panzhihua.common.service.community;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.*;
+import com.panzhihua.common.constants.Constants;
+import org.springframework.cloud.openfeign.FeignClient;
+
+/**
+ * title: 电动车商城-拼团订单团队表业务层接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-拼团订单团队表业务层接口
+ *
+ * @author lyq
+ * @date 2022-03-29 16:07:00
+ */
+@FeignClient(name = Constants.SERVICE_COMMUNITY, contextId = "comBatteryCommodityOrderCollageTeam", path = "comBatteryCommodityOrderCollageTeam")
+public interface ComBatteryCommodityOrderCollageTeamFeign {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommodityOrderCollageTeam 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-29 16:07:00
+     */
+    @PostMapping("/page")
+    R queryByPage(@RequestBody PageComBatteryCommodityOrderCollageTeamDto comBatteryCommodityOrderCollageTeam);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comBatteryCommodityOrderCollageTeam 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-29 16:07:00
+     */
+    @PostMapping("/add")
+    R insert(@RequestBody AddComBatteryCommodityOrderCollageTeamDto comBatteryCommodityOrderCollageTeam);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comBatteryCommodityOrderCollageTeam 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-29 16:07:00
+     */
+    @PutMapping("/edit")
+    R update(@RequestBody EditComBatteryCommodityOrderCollageTeamDto comBatteryCommodityOrderCollageTeam);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-29 16:07:00
+     */
+    @GetMapping("/delete")
+    R deleteById(@RequestParam("id") Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 16:07:00
+     */
+    @GetMapping("/detail")
+    R detailById(@RequestParam("id") Long id,@RequestParam("userId") Long userId);
+
+    /**
+     * description  queryByList  查询列表
+     *
+     * @param comBatteryCommodityOrderCollageTeam 请求参数
+     * @return 查询列表数据
+     * @author lyq
+     * @date 2022-03-29 16:07:00
+     */
+    @PostMapping("/list")
+    R queryByList(@RequestBody PageComBatteryCommodityOrderCollageTeamDto comBatteryCommodityOrderCollageTeam);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryCommodityOrderCollageTeamPeopleFeign.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryCommodityOrderCollageTeamPeopleFeign.java
new file mode 100644
index 0000000..ad990b0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryCommodityOrderCollageTeamPeopleFeign.java
@@ -0,0 +1,87 @@
+package com.panzhihua.common.service.community;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.*;
+import com.panzhihua.common.constants.Constants;
+import org.springframework.cloud.openfeign.FeignClient;
+
+/**
+ * title: 电动车商城-拼团活动团队人员表业务层接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-拼团活动团队人员表业务层接口
+ *
+ * @author lyq
+ * @date 2022-03-29 16:07:12
+ */
+@FeignClient(name = Constants.SERVICE_COMMUNITY, contextId = "comBatteryCommodityOrderCollageTeamPeople", path = "comBatteryCommodityOrderCollageTeamPeople")
+public interface ComBatteryCommodityOrderCollageTeamPeopleFeign {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommodityOrderCollageTeamPeople 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-29 16:07:12
+     */
+    @PostMapping("/page")
+    R queryByPage(@RequestBody PageComBatteryCommodityOrderCollageTeamPeopleDto comBatteryCommodityOrderCollageTeamPeople);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comBatteryCommodityOrderCollageTeamPeople 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-29 16:07:12
+     */
+    @PostMapping("/add")
+    R insert(@RequestBody AddComBatteryCommodityOrderCollageTeamPeopleDto comBatteryCommodityOrderCollageTeamPeople);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comBatteryCommodityOrderCollageTeamPeople 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-29 16:07:12
+     */
+    @PutMapping("/edit")
+    R update(@RequestBody EditComBatteryCommodityOrderCollageTeamPeopleDto comBatteryCommodityOrderCollageTeamPeople);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-29 16:07:12
+     */
+    @GetMapping("/delete")
+    R deleteById(@RequestParam("id") Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 16:07:12
+     */
+    @GetMapping("/detail")
+    R detailById(@RequestParam("id") Long id);
+
+    /**
+     * description  queryByList  查询列表
+     *
+     * @param comBatteryCommodityOrderCollageTeamPeople 请求参数
+     * @return 查询列表数据
+     * @author lyq
+     * @date 2022-03-29 16:07:12
+     */
+    @PostMapping("/list")
+    R queryByList(@RequestBody PageComBatteryCommodityOrderCollageTeamPeopleDto comBatteryCommodityOrderCollageTeamPeople);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryCommodityOrderFeign.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryCommodityOrderFeign.java
new file mode 100644
index 0000000..206bbef
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryCommodityOrderFeign.java
@@ -0,0 +1,152 @@
+package com.panzhihua.common.service.community;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.dtos.shop.WxPayNotifyOrderDTO;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.*;
+import com.panzhihua.common.constants.Constants;
+import org.springframework.cloud.openfeign.FeignClient;
+
+/**
+ * title: 电动车商城-订单表业务层接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-订单表业务层接口
+ *
+ * @author lyq
+ * @date 2022-03-29 13:18:46
+ */
+@FeignClient(name = Constants.SERVICE_COMMUNITY, contextId = "comBatteryCommodityOrder", path = "comBatteryCommodityOrder")
+public interface ComBatteryCommodityOrderFeign {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommodityOrder 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-29 13:18:46
+     */
+    @PostMapping("/page")
+    R queryByPage(@RequestBody PageComBatteryCommodityOrderDto comBatteryCommodityOrder);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comBatteryCommodityOrder 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-29 13:18:46
+     */
+    @PostMapping("/add")
+    R insert(@RequestBody AddComBatteryCommodityOrderDto comBatteryCommodityOrder);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comBatteryCommodityOrder 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-29 13:18:46
+     */
+    @PutMapping("/edit")
+    R update(@RequestBody EditComBatteryCommodityOrderDto comBatteryCommodityOrder);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-29 13:18:46
+     */
+    @GetMapping("/delete")
+    R deleteById(@RequestParam("id") Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 13:18:46
+     */
+    @GetMapping("/detail")
+    R detailById(@RequestParam("id") Long id);
+
+    /**
+     * description  queryByList  查询列表
+     *
+     * @param comBatteryCommodityOrder 请求参数
+     * @return 查询列表数据
+     * @author lyq
+     * @date 2022-03-29 13:18:46
+     */
+    @PostMapping("/list")
+    R queryByList(@RequestBody PageComBatteryCommodityOrderDto comBatteryCommodityOrder);
+
+    /**
+     * 修改订单收货地址
+     * @param editOrderAddressDto   请求参数
+     * @return  修改结果
+     */
+    @PutMapping("/update/address")
+    R updateOrderAddress(@RequestBody EditOrderAddressDto editOrderAddressDto);
+
+    /**
+     * 修改订单物流信息
+     * @param editOrderLogisticsDto 请求参数
+     * @return  修改结果
+     */
+    @PutMapping("/update/logistics")
+    R updateOrderLogistics(@RequestBody EditOrderLogisticsDto editOrderLogisticsDto);
+
+    /**
+     * 小程序用户创建订单
+     * @param createOrderDto    请求参数
+     * @return  创建结果
+     */
+    @PostMapping("/applets/create")
+    R appletsOrderCreate(@RequestBody UserCreateOrderDto createOrderDto);
+
+    /**
+     * 电动车商城购买商品支付回调
+     * @param notifyOrderDTO    请求参数
+     * @return  购买商品支付回调
+     */
+    @PostMapping("/batteryPayNotify")
+    R batteryPayNotify(@RequestBody WxPayNotifyOrderDTO notifyOrderDTO);
+
+    /**
+     * 定时关闭5分钟未支付订单
+     * @return  操作结果
+     */
+    @GetMapping("/sync/close/order")
+    R syncCloseOrder();
+
+    /**
+     * 用户确认收货
+     * @param id    订单id
+     * @param userId    用户id
+     * @return  确认结果
+     */
+    @GetMapping("/applets/receiving")
+    R appletsOrderReceiving(@RequestParam("id") Long id,@RequestParam("userId") Long userId);
+
+    /**
+     * 后台订单发货
+     * @param deliverAdminDto   请求参数
+     * @return  发货结果
+     */
+    @PostMapping("/deliver")
+    R orderDeliver(@RequestBody OrderDeliverAdminDto deliverAdminDto);
+
+    /**
+     * 电动车商城购买活动商品支付回调
+     * @param notifyOrderDTO    请求参数
+     * @return  购买商品支付回调
+     */
+    @PostMapping("/batteryActivityPayNotify")
+    R batteryActivityPayNotify(@RequestBody WxPayNotifyOrderDTO notifyOrderDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryCommoditySpecsFeign.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryCommoditySpecsFeign.java
new file mode 100644
index 0000000..8205357
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryCommoditySpecsFeign.java
@@ -0,0 +1,87 @@
+package com.panzhihua.common.service.community;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.*;
+import com.panzhihua.common.constants.Constants;
+import org.springframework.cloud.openfeign.FeignClient;
+
+/**
+ * title: 电动车商城-商品规格表业务层接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商品规格表业务层接口
+ *
+ * @author lyq
+ * @date 2022-03-28 15:16:22
+ */
+@FeignClient(name = Constants.SERVICE_COMMUNITY, contextId = "comBatteryCommoditySpecs", path = "comBatteryCommoditySpecs")
+public interface ComBatteryCommoditySpecsFeign {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommoditySpecs 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-28 15:16:22
+     */
+    @PostMapping("/page")
+    R queryByPage(@RequestBody PageComBatteryCommoditySpecsDto comBatteryCommoditySpecs);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comBatteryCommoditySpecs 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-28 15:16:22
+     */
+    @PostMapping("/add")
+    R insert(@RequestBody AddComBatteryCommoditySpecsDto comBatteryCommoditySpecs);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comBatteryCommoditySpecs 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-28 15:16:22
+     */
+    @PutMapping("/edit")
+    R update(@RequestBody EditComBatteryCommoditySpecsDto comBatteryCommoditySpecs);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-28 15:16:22
+     */
+    @GetMapping("/delete")
+    R deleteById(@RequestParam("id") Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-28 15:16:22
+     */
+    @GetMapping("/detail")
+    R detailById(@RequestParam("id") Long id);
+
+    /**
+     * description  queryByList  查询列表
+     *
+     * @param comBatteryCommoditySpecs 请求参数
+     * @return 查询列表数据
+     * @author lyq
+     * @date 2022-03-28 15:16:22
+     */
+    @PostMapping("/list")
+    R queryByList(@RequestBody PageComBatteryCommoditySpecsDto comBatteryCommoditySpecs);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryStoreClassFeign.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryStoreClassFeign.java
new file mode 100644
index 0000000..9462a74
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryStoreClassFeign.java
@@ -0,0 +1,104 @@
+package com.panzhihua.common.service.community;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.*;
+import com.panzhihua.common.constants.Constants;
+import org.springframework.cloud.openfeign.FeignClient;
+
+/**
+ * title: 电动车商城-商家分类表业务层接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商家分类表业务层接口
+ *
+ * @author lyq
+ * @date 2022-03-29 11:01:57
+ */
+@FeignClient(name = Constants.SERVICE_COMMUNITY, contextId = "comBatteryStoreClass", path = "comBatteryStoreClass")
+public interface ComBatteryStoreClassFeign {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryStoreClass 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-29 11:01:57
+     */
+    @PostMapping("/page")
+    R queryByPage(@RequestBody PageComBatteryStoreClassDto comBatteryStoreClass);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comBatteryStoreClass 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-29 11:01:57
+     */
+    @PostMapping("/add")
+    R insert(@RequestBody AddComBatteryStoreClassDto comBatteryStoreClass);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comBatteryStoreClass 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-29 11:01:57
+     */
+    @PutMapping("/edit")
+    R update(@RequestBody EditComBatteryStoreClassDto comBatteryStoreClass);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-29 11:01:57
+     */
+    @GetMapping("/delete")
+    R deleteById(@RequestParam("id") Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 11:01:57
+     */
+    @GetMapping("/detail")
+    R detailById(@RequestParam("id") Long id);
+
+    /**
+     * description  queryByList  查询列表
+     *
+     * @param comBatteryStoreClass 请求参数
+     * @return 查询列表数据
+     * @author lyq
+     * @date 2022-03-29 11:01:57
+     */
+    @PostMapping("/list")
+    R queryByList(@RequestBody PageComBatteryStoreClassDto comBatteryStoreClass);
+
+    /**
+     * 修改分类状态
+     * @param id    分类id
+     * @param status    状态
+     * @return  修改结果
+     */
+    @GetMapping("/updateStatus")
+    R updateStatus(@RequestParam("id") Long id,@RequestParam("status") Integer status);
+
+    /**
+     * 小程序查询商家分类列表以及分类下商品列表
+     * @param comBatteryStoreClass  请求参数
+     * @return  商家分类列表以及分类下商品列表
+     */
+    @PostMapping("/applets/list")
+    R queryByAppletsList(@RequestBody PageComBatteryStoreClassDto comBatteryStoreClass);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryStoreFeign.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryStoreFeign.java
new file mode 100644
index 0000000..771a6e9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryStoreFeign.java
@@ -0,0 +1,96 @@
+package com.panzhihua.common.service.community;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.*;
+import com.panzhihua.common.constants.Constants;
+import org.springframework.cloud.openfeign.FeignClient;
+
+/**
+ * title: 电动车商城-商家表业务层接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商家表业务层接口
+ *
+ * @author lyq
+ * @date 2022-03-28 13:45:06
+ */
+@FeignClient(name = Constants.SERVICE_COMMUNITY, contextId = "comBatteryStore", path = "comBatteryStore")
+public interface ComBatteryStoreFeign {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryStore 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-28 13:45:06
+     */
+    @PostMapping("/page")
+    R queryByPage(@RequestBody PageComBatteryStoreDto comBatteryStore);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comBatteryStore 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-28 13:45:06
+     */
+    @PostMapping("/add")
+    R insert(@RequestBody AddComBatteryStoreDto comBatteryStore);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comBatteryStore 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-28 13:45:06
+     */
+    @PutMapping("/edit")
+    R update(@RequestBody EditComBatteryStoreDto comBatteryStore);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-28 13:45:06
+     */
+    @GetMapping("/delete")
+    R deleteById(@RequestParam("id") Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-28 13:45:06
+     */
+    @GetMapping("/detail")
+    R detailById(@RequestParam("id") Long id);
+
+    /**
+     * description  queryByList  查询列表
+     *
+     * @param comBatteryStore 请求参数
+     * @return 查询列表数据
+     * @author lyq
+     * @date 2022-03-28 13:45:06
+     */
+    @PostMapping("/list")
+    R queryByList(@RequestBody PageComBatteryStoreDto comBatteryStore);
+
+    /**
+     * 修改电动车商家后台用户密码
+     * @param storeId  商家后台用户id
+     * @param passWord  用户需要修改的密码
+     * @return  重置密码结果
+     */
+    @GetMapping("/resetPassword")
+    R resetPassword(@RequestParam("storeId") Long storeId,@RequestParam("passWord") String passWord);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryUserAddressFeign.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryUserAddressFeign.java
new file mode 100644
index 0000000..3652f86
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComBatteryUserAddressFeign.java
@@ -0,0 +1,95 @@
+package com.panzhihua.common.service.community;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.*;
+import com.panzhihua.common.constants.Constants;
+import org.springframework.cloud.openfeign.FeignClient;
+
+/**
+ * title: 电动车商城-用户收货地址表业务层接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-用户收货地址表业务层接口
+ *
+ * @author lyq
+ * @date 2022-03-29 13:18:21
+ */
+@FeignClient(name = Constants.SERVICE_COMMUNITY, contextId = "comBatteryUserAddress", path = "comBatteryUserAddress")
+public interface ComBatteryUserAddressFeign {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryUserAddress 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-29 13:18:21
+     */
+    @PostMapping("/page")
+    R queryByPage(@RequestBody PageComBatteryUserAddressDto comBatteryUserAddress);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comBatteryUserAddress 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-29 13:18:21
+     */
+    @PostMapping("/add")
+    R insert(@RequestBody AddComBatteryUserAddressDto comBatteryUserAddress);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comBatteryUserAddress 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-29 13:18:21
+     */
+    @PutMapping("/edit")
+    R update(@RequestBody EditComBatteryUserAddressDto comBatteryUserAddress);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-29 13:18:21
+     */
+    @GetMapping("/delete")
+    R deleteById(@RequestParam("id") Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 13:18:21
+     */
+    @GetMapping("/detail")
+    R detailById(@RequestParam("id") Long id);
+
+    /**
+     * description  queryByList  查询列表
+     *
+     * @param comBatteryUserAddress 请求参数
+     * @return 查询列表数据
+     * @author lyq
+     * @date 2022-03-29 13:18:21
+     */
+    @PostMapping("/list")
+    R queryByList(@RequestBody PageComBatteryUserAddressDto comBatteryUserAddress);
+
+    /**
+     * 查询用户默认收货地址
+     * @param userId    用户id
+     * @return  用户默认收货地址
+     */
+    @PostMapping("/default/address")
+    R getDefaultAddress(@RequestParam("userId") Long userId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComChangeCarBrandFeign.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComChangeCarBrandFeign.java
new file mode 100644
index 0000000..e9b5b1a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComChangeCarBrandFeign.java
@@ -0,0 +1,87 @@
+package com.panzhihua.common.service.community;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.*;
+import com.panzhihua.common.constants.Constants;
+import org.springframework.cloud.openfeign.FeignClient;
+
+/**
+ * title: 换新车-品牌表业务层接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-品牌表业务层接口
+ *
+ * @author lyq
+ * @date 2022-04-07 13:37:25
+ */
+@FeignClient(name = Constants.SERVICE_COMMUNITY, contextId = "comChangeCarBrand", path = "comChangeCarBrand")
+public interface ComChangeCarBrandFeign {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comChangeCarBrand 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-04-07 13:37:25
+     */
+    @PostMapping("/page")
+    R queryByPage(@RequestBody PageComChangeCarBrandDto comChangeCarBrand);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comChangeCarBrand 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-04-07 13:37:25
+     */
+    @PostMapping("/add")
+    R insert(@RequestBody AddComChangeCarBrandDto comChangeCarBrand);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comChangeCarBrand 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-04-07 13:37:25
+     */
+    @PutMapping("/edit")
+    R update(@RequestBody EditComChangeCarBrandDto comChangeCarBrand);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-04-07 13:37:25
+     */
+    @GetMapping("/delete")
+    R deleteById(@RequestParam("id") Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-07 13:37:25
+     */
+    @GetMapping("/detail")
+    R detailById(@RequestParam("id") Long id);
+
+    /**
+     * description  queryByList  查询列表
+     *
+     * @param comChangeCarBrand 请求参数
+     * @return 查询列表数据
+     * @author lyq
+     * @date 2022-04-07 13:37:25
+     */
+    @PostMapping("/list")
+    R queryByList(@RequestBody PageComChangeCarBrandDto comChangeCarBrand);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComChangeCarInquiryFeign.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComChangeCarInquiryFeign.java
new file mode 100644
index 0000000..f830209
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComChangeCarInquiryFeign.java
@@ -0,0 +1,87 @@
+package com.panzhihua.common.service.community;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.*;
+import com.panzhihua.common.constants.Constants;
+import org.springframework.cloud.openfeign.FeignClient;
+
+/**
+ * title: 换新车-分期询价表业务层接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-分期询价表业务层接口
+ *
+ * @author lyq
+ * @date 2022-04-07 13:39:07
+ */
+@FeignClient(name = Constants.SERVICE_COMMUNITY, contextId = "comChangeCarInquiry", path = "comChangeCarInquiry")
+public interface ComChangeCarInquiryFeign {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comChangeCarInquiry 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-04-07 13:39:07
+     */
+    @PostMapping("/page")
+    R queryByPage(@RequestBody PageComChangeCarInquiryDto comChangeCarInquiry);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comChangeCarInquiry 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-04-07 13:39:07
+     */
+    @PostMapping("/add")
+    R insert(@RequestBody AddComChangeCarInquiryDto comChangeCarInquiry);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comChangeCarInquiry 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-04-07 13:39:07
+     */
+    @PutMapping("/edit")
+    R update(@RequestBody EditComChangeCarInquiryDto comChangeCarInquiry);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-04-07 13:39:07
+     */
+    @GetMapping("/delete")
+    R deleteById(@RequestParam("id") Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-07 13:39:07
+     */
+    @GetMapping("/detail")
+    R detailById(@RequestParam("id") Long id);
+
+    /**
+     * description  queryByList  查询列表
+     *
+     * @param comChangeCarInquiry 请求参数
+     * @return 查询列表数据
+     * @author lyq
+     * @date 2022-04-07 13:39:07
+     */
+    @PostMapping("/list")
+    R queryByList(@RequestBody PageComChangeCarInquiryDto comChangeCarInquiry);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComChangeCarModelFeign.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComChangeCarModelFeign.java
new file mode 100644
index 0000000..a10465b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComChangeCarModelFeign.java
@@ -0,0 +1,96 @@
+package com.panzhihua.common.service.community;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.*;
+import com.panzhihua.common.constants.Constants;
+import org.springframework.cloud.openfeign.FeignClient;
+
+/**
+ * title: 换新车-车型管理表业务层接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-车型管理表业务层接口
+ *
+ * @author lyq
+ * @date 2022-04-07 13:41:57
+ */
+@FeignClient(name = Constants.SERVICE_COMMUNITY, contextId = "comChangeCarModel", path = "comChangeCarModel")
+public interface ComChangeCarModelFeign {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comChangeCarModel 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-04-07 13:41:57
+     */
+    @PostMapping("/page")
+    R queryByPage(@RequestBody PageComChangeCarModelDto comChangeCarModel);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comChangeCarModel 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-04-07 13:41:57
+     */
+    @PostMapping("/add")
+    R insert(@RequestBody AddComChangeCarModelDto comChangeCarModel);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comChangeCarModel 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-04-07 13:41:57
+     */
+    @PutMapping("/edit")
+    R update(@RequestBody EditComChangeCarModelDto comChangeCarModel);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-04-07 13:41:57
+     */
+    @GetMapping("/delete")
+    R deleteById(@RequestParam("id") Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-07 13:41:57
+     */
+    @GetMapping("/detail")
+    R detailById(@RequestParam("id") Long id);
+
+    /**
+     * description  queryByList  查询列表
+     *
+     * @param comChangeCarModel 请求参数
+     * @return 查询列表数据
+     * @author lyq
+     * @date 2022-04-07 13:41:57
+     */
+    @PostMapping("/list")
+    R queryByList(@RequestBody PageComChangeCarModelDto comChangeCarModel);
+
+    /**
+     * 修改车型状态
+     * @param id    车型id
+     * @param status    车型状态
+     * @return  修改结果
+     */
+    @GetMapping("/updateStatus")
+    R updateStatus(@RequestParam("id") Long id,@RequestParam("status") Integer status);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComChangeCarModelRelationFeign.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComChangeCarModelRelationFeign.java
new file mode 100644
index 0000000..b0d9a74
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComChangeCarModelRelationFeign.java
@@ -0,0 +1,98 @@
+package com.panzhihua.common.service.community;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.*;
+import com.panzhihua.common.constants.Constants;
+import org.springframework.cloud.openfeign.FeignClient;
+
+/**
+ * title: 换新车-车型与规格关联表业务层接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-车型与规格关联表业务层接口
+ *
+ * @author lyq
+ * @date 2022-04-07 13:55:31
+ */
+@FeignClient(name = Constants.SERVICE_COMMUNITY, contextId = "comChangeCarModelRelation", path = "comChangeCarModelRelation")
+public interface ComChangeCarModelRelationFeign {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comChangeCarModelRelation 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-04-07 13:55:31
+     */
+    @PostMapping("/page")
+    R queryByPage(@RequestBody PageComChangeCarModelRelationDto comChangeCarModelRelation);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comChangeCarModelRelation 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-04-07 13:55:31
+     */
+    @PostMapping("/add")
+    R insert(@RequestBody AddComChangeCarModelRelationDto comChangeCarModelRelation);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comChangeCarModelRelation 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-04-07 13:55:31
+     */
+    @PutMapping("/edit")
+    R update(@RequestBody EditComChangeCarModelRelationDto comChangeCarModelRelation);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-04-07 13:55:31
+     */
+    @GetMapping("/delete")
+    R deleteById(@RequestParam("id") Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-07 13:55:31
+     */
+    @GetMapping("/detail")
+    R detailById(@RequestParam("id") Long id);
+
+    /**
+     * description  queryByList  查询列表
+     *
+     * @param comChangeCarModelRelation 请求参数
+     * @return 查询列表数据
+     * @author lyq
+     * @date 2022-04-07 13:55:31
+     */
+    @PostMapping("/list")
+    R queryByList(@RequestBody PageComChangeCarModelRelationDto comChangeCarModelRelation);
+
+    /**
+     * description  queryByPage  小程序分页查询
+     *
+     * @param comChangeCarModelRelation 请求参数
+     * @return 小程序分页查询列表数据
+     * @author lyq
+     * @date 2022-04-07 13:41:57
+     */
+    @PostMapping("/applets/page")
+    R queryByAppletsPage(@RequestBody PageComChangeCarModelRelationDto comChangeCarModelRelation);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComChangeCarModelSpecsChildrenFeign.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComChangeCarModelSpecsChildrenFeign.java
new file mode 100644
index 0000000..65b8b4f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComChangeCarModelSpecsChildrenFeign.java
@@ -0,0 +1,87 @@
+package com.panzhihua.common.service.community;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.*;
+import com.panzhihua.common.constants.Constants;
+import org.springframework.cloud.openfeign.FeignClient;
+
+/**
+ * title: 换新车-车型子规格表业务层接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-车型子规格表业务层接口
+ *
+ * @author lyq
+ * @date 2022-04-07 13:55:35
+ */
+@FeignClient(name = Constants.SERVICE_COMMUNITY, contextId = "comChangeCarModelSpecsChildren", path = "comChangeCarModelSpecsChildren")
+public interface ComChangeCarModelSpecsChildrenFeign {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comChangeCarModelSpecsChildren 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-04-07 13:55:35
+     */
+    @PostMapping("/page")
+    R queryByPage(@RequestBody PageComChangeCarModelSpecsChildrenDto comChangeCarModelSpecsChildren);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comChangeCarModelSpecsChildren 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-04-07 13:55:35
+     */
+    @PostMapping("/add")
+    R insert(@RequestBody AddComChangeCarModelSpecsChildrenDto comChangeCarModelSpecsChildren);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comChangeCarModelSpecsChildren 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-04-07 13:55:35
+     */
+    @PutMapping("/edit")
+    R update(@RequestBody EditComChangeCarModelSpecsChildrenDto comChangeCarModelSpecsChildren);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-04-07 13:55:35
+     */
+    @GetMapping("/delete")
+    R deleteById(@RequestParam("id") Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-07 13:55:35
+     */
+    @GetMapping("/detail")
+    R detailById(@RequestParam("id") Long id);
+
+    /**
+     * description  queryByList  查询列表
+     *
+     * @param comChangeCarModelSpecsChildren 请求参数
+     * @return 查询列表数据
+     * @author lyq
+     * @date 2022-04-07 13:55:35
+     */
+    @PostMapping("/list")
+    R queryByList(@RequestBody PageComChangeCarModelSpecsChildrenDto comChangeCarModelSpecsChildren);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComChangeCarModelSpecsFeign.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComChangeCarModelSpecsFeign.java
new file mode 100644
index 0000000..d158562
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComChangeCarModelSpecsFeign.java
@@ -0,0 +1,87 @@
+package com.panzhihua.common.service.community;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.*;
+import com.panzhihua.common.constants.Constants;
+import org.springframework.cloud.openfeign.FeignClient;
+
+/**
+ * title: 换新车-车型规格表业务层接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-车型规格表业务层接口
+ *
+ * @author lyq
+ * @date 2022-04-07 13:55:33
+ */
+@FeignClient(name = Constants.SERVICE_COMMUNITY, contextId = "comChangeCarModelSpecs", path = "comChangeCarModelSpecs")
+public interface ComChangeCarModelSpecsFeign {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comChangeCarModelSpecs 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-04-07 13:55:33
+     */
+    @PostMapping("/page")
+    R queryByPage(@RequestBody PageComChangeCarModelSpecsDto comChangeCarModelSpecs);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comChangeCarModelSpecs 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-04-07 13:55:33
+     */
+    @PostMapping("/add")
+    R insert(@RequestBody AddComChangeCarModelSpecsDto comChangeCarModelSpecs);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comChangeCarModelSpecs 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-04-07 13:55:33
+     */
+    @PutMapping("/edit")
+    R update(@RequestBody EditComChangeCarModelSpecsDto comChangeCarModelSpecs);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-04-07 13:55:33
+     */
+    @GetMapping("/delete")
+    R deleteById(@RequestParam("id") Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-07 13:55:33
+     */
+    @GetMapping("/detail")
+    R detailById(@RequestParam("id") Long id);
+
+    /**
+     * description  queryByList  查询列表
+     *
+     * @param comChangeCarModelSpecs 请求参数
+     * @return 查询列表数据
+     * @author lyq
+     * @date 2022-04-07 13:55:33
+     */
+    @PostMapping("/list")
+    R queryByList(@RequestBody PageComChangeCarModelSpecsDto comChangeCarModelSpecs);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComEquipmentUnionInspectionFeign.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComEquipmentUnionInspectionFeign.java
new file mode 100644
index 0000000..032ace6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComEquipmentUnionInspectionFeign.java
@@ -0,0 +1,34 @@
+package com.panzhihua.common.service.community;
+
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.model.dtos.equipment.UnionInspectionDto;
+import com.panzhihua.common.model.dtos.equipment.UnionReportDto;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+
+@FeignClient(name = Constants.SERVICE_EQUIPMENT, contextId = "unionInspection", path = "unionInspection")
+public interface ComEquipmentUnionInspectionFeign {
+
+
+    /**
+     * 新增户外劳工站巡查
+     *
+     * @param unionInspectionDto
+     * @return 新增结果
+     */
+    @PostMapping("/add")
+    R add(UnionInspectionDto unionInspectionDto);
+
+
+    /**
+     * 分页户外劳工站巡查
+     *
+     * @param unionInspectionDto
+     * @return 动态结果
+     */
+    @PostMapping("/query")
+    R query(UnionInspectionDto unionInspectionDto);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComEquipmentUnionOutdoorLaborDynamicFeign.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComEquipmentUnionOutdoorLaborDynamicFeign.java
new file mode 100644
index 0000000..90735b4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComEquipmentUnionOutdoorLaborDynamicFeign.java
@@ -0,0 +1,33 @@
+package com.panzhihua.common.service.community;
+
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.model.dtos.equipment.UnionOutdoorLaborDynamicDto;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+
+@FeignClient(name = Constants.SERVICE_EQUIPMENT, contextId = "unionOutdoorLaborDynamic", path = "unionOutdoorLaborDynamic")
+public interface ComEquipmentUnionOutdoorLaborDynamicFeign {
+
+    /**
+     * 分页总工会-户外劳工站-动态
+     *
+     * @param unionOutdoorLaborDynamicDto
+     * @return 动态结果
+     */
+    @PostMapping("/page")
+    R query(UnionOutdoorLaborDynamicDto unionOutdoorLaborDynamicDto);
+
+
+    /**
+     * 查询总工会-户外劳工站-动态
+     *
+     * @param id
+     *            动态 id
+     * @return 查找结果
+     */
+    @GetMapping("{id}")
+    R unionOutdoorLaborDynamicDetail(@PathVariable("id") Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComEquipmentUnionOutdoorSiteFeign.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComEquipmentUnionOutdoorSiteFeign.java
new file mode 100644
index 0000000..6c84c1d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComEquipmentUnionOutdoorSiteFeign.java
@@ -0,0 +1,34 @@
+package com.panzhihua.common.service.community;
+
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.model.dtos.equipment.UnionOutdoorLaborDynamicDto;
+import com.panzhihua.common.model.dtos.equipment.UnionOutdoorSiteDto;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+
+@FeignClient(name = Constants.SERVICE_EQUIPMENT, contextId = "unionOutdoorSite", path = "unionOutdoorSite")
+public interface ComEquipmentUnionOutdoorSiteFeign {
+
+    /**
+     * 分页总工会户外劳工站
+     *
+     * @param unionOutdoorSiteDto
+     * @return 动态结果
+     */
+    @PostMapping("/page")
+    R query(UnionOutdoorSiteDto unionOutdoorSiteDto);
+
+    /**
+     * 查询总工会户外劳工站
+     *
+     * @param id
+     *            户外劳工站 id
+     * @return 查找结果
+     */
+    @GetMapping("{id}")
+    R unionOutdoorSiteDetail(@PathVariable("id") Long id);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComEquipmentUnionRePortFeign.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComEquipmentUnionRePortFeign.java
new file mode 100644
index 0000000..19fa7a7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComEquipmentUnionRePortFeign.java
@@ -0,0 +1,33 @@
+package com.panzhihua.common.service.community;
+
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.model.dtos.equipment.UnionReportDto;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+
+@FeignClient(name = Constants.SERVICE_EQUIPMENT, contextId = "unionReport", path = "unionReport")
+public interface ComEquipmentUnionRePortFeign {
+
+    /**
+     * 总工会户外劳登录
+     *
+     * @param unionReportDto
+     * @return 总工会户外劳工上报
+     */
+    @PostMapping("/add")
+    R add(UnionReportDto unionReportDto);
+
+
+    /**
+     * 分页户外劳工站上报表
+     *
+     * @param unionReportDto
+     * @return 动态结果
+     */
+    @PostMapping("/query")
+    R query(UnionReportDto unionReportDto);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComEquipmentUnionStoreLDD.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComEquipmentUnionStoreLDD.java
new file mode 100644
index 0000000..9dd45e0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComEquipmentUnionStoreLDD.java
@@ -0,0 +1,39 @@
+package com.panzhihua.common.service.community;
+
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.model.dtos.equipment.UnionStoreDto;
+import com.panzhihua.common.model.dtos.equipment.UnionUserDto;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.*;
+
+@FeignClient(name = Constants.SERVICE_EQUIPMENT, contextId = "UnionStore", path = "UnionStore")
+public interface ComEquipmentUnionStoreLDD {
+
+    @GetMapping("/getList")
+    public R getList(@RequestParam("pageNum") int pageNum,
+                     @RequestParam("pageSize") int pageSize,
+                     @RequestParam(value = "communityId",required = false) String communityId,
+                     @RequestParam(value = "goodsType",required = false) String goodsType,
+                     @RequestParam(value = "nameOrNum",required = false) String nameOrNum);
+
+
+    @GetMapping("/getData")
+    public R getData(@RequestParam("id")String id);
+
+    @PostMapping("/insert")
+    public R insert(@RequestBody UnionStoreDto item);
+
+    @PostMapping("/update")
+    public R update(@RequestBody UnionStoreDto item);
+
+    /**
+     * 删除接口
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/delete")
+    public R delete(@RequestParam("id") String id);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComEquipmentUnionUserFeign.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComEquipmentUnionUserFeign.java
new file mode 100644
index 0000000..6941739
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/ComEquipmentUnionUserFeign.java
@@ -0,0 +1,46 @@
+package com.panzhihua.common.service.community;
+
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.model.dtos.equipment.UnionOutdoorSiteDto;
+import com.panzhihua.common.model.dtos.equipment.UnionUserDto;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+@FeignClient(name = Constants.SERVICE_EQUIPMENT, contextId = "unionUser", path = "unionUser")
+public interface ComEquipmentUnionUserFeign {
+
+    /**
+     * 总工会户外劳登录
+     *
+     * @param loginUserInfoVO
+     * @return 总工会户外劳共用户
+     */
+    @PostMapping("/login")
+    R login(LoginUserInfoVO loginUserInfoVO);
+
+    /**
+     * 总工会户外劳工站用户认证
+     *
+     * @param unionUserDto
+     * @return 总工会户外劳共用户
+     */
+    @PostMapping("/authentication")
+    R authentication(UnionUserDto unionUserDto);
+
+
+    /**
+     * 使用id查找用户
+     *
+     * @param id
+     * @return 总工会户外劳共用户
+     */
+    @PostMapping("/selectById")
+    UnionUserDto  selectById(@RequestParam(value = "id") Long id);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunitySanShuoService.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunitySanShuoService.java
new file mode 100644
index 0000000..9917858
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunitySanShuoService.java
@@ -0,0 +1,191 @@
+package com.panzhihua.common.service.community;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.sanshuo.ComEventArchiveVO;
+import com.panzhihua.common.model.vos.sanshuo.ComEventConciliationVO;
+import com.panzhihua.common.model.vos.sanshuo.ComEventVO;
+import com.panzhihua.common.model.vos.sanshuo.ComSanRequestVO;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.HashMap;
+import java.util.List;
+
+@FeignClient(name = "huacheng-community", contextId = "CommunitySanShuoService", path = "/sanshuo/comEvent")
+public interface CommunitySanShuoService {
+
+    /**
+     * description 新增三说会堂事件表
+     *
+     * @param comEventVO 对象
+     * @return R  新增结果对象
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @PostMapping("/add")
+    R insertComEvent(@RequestBody ComSanRequestVO comEventVO);
+
+    /**
+     * description 更新三说会堂事件表
+     *
+     * @param comEventVO 对象
+     * @return R  修改结果对象
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @PostMapping("/update")
+    R updateComEvent(@RequestBody ComEventVO comEventVO);
+
+    /**
+     * description 根据ID获取三说会堂事件表信息
+     *
+     * @param id 主键id
+     * @return R<ComEvent> comEvent 对象
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @GetMapping("/get/{id}")
+    R<ComEventVO> get(@PathVariable(value = "id") String id);
+
+    /**
+     * description 根据ID获取三说会堂事件表信息
+     *
+     * @param id 主键id
+     * @return R<ComEvent> comEvent 对象
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @GetMapping("/detail/{id}")
+    R<HashMap> detail(@PathVariable(value = "id") String id);
+
+    /**
+     * description 查询返回列表数据
+     *
+     * @param comEventVO 三说会堂事件表对象
+     * @return R<List < ComEventVO>>  comEventVO对象列表
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @PostMapping("/list")
+    R<List<ComEventVO>> listByComEvent(@RequestBody ComEventVO comEventVO);
+
+    /**
+     * description page   三说会堂事件表分页列表数据
+     * params   [pageNo, pageSize]
+     *
+     * @param comEventVO 对象
+     * @param pageNo     当前页码
+     * @param pageSize   每页显示数量
+     * @return PageResult<List < ComEvent>>  三说会堂事件表分页列表数据
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @PostMapping("/page")
+    R page(@RequestBody ComEventVO comEventVO, @RequestParam("pageNo") Long pageNo, @RequestParam("pageSize") Long pageSize);
+
+
+    /**
+     * description 根据ID删除三说会堂事件表
+     *
+     * @param id 主键id
+     * @return R 删除结果
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @DeleteMapping("/remove/{id}")
+    R remove(@PathVariable(value = "id") Long id);
+
+    /**
+     * description 修改三说会堂事件表状态
+     *
+     * @param id 主键id
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @PutMapping("/updateEnabled")
+    R updateEnabled(@RequestParam("id") Long id, @RequestParam("enabled") Boolean enabled);
+
+    /**
+     * description 修改三说会堂事件表状态
+     *
+     * @param id 主键id
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @PutMapping("/cancelRequest")
+    R cancelRequest(@RequestParam("id") Long id);
+
+
+    /**
+     * description 修改三说会堂事件表状态
+     *
+     * @param id 主键id
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @PutMapping("/accept/Request")
+    R acceptRequest(@RequestParam("id") Long id, @RequestParam("specterId") Long specterId);
+
+    /**
+     * description 修改三说会堂事件表状态
+     *
+     * @param id 主键id
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @PutMapping("/reject/Request")
+    R rejectRequest(@RequestParam("id") Long id);
+
+    /**
+     * description 修改三说会堂事件表状态
+     *
+     * @param id 主键id
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @PutMapping("/reappoint/Request")
+    R reappoint(@RequestParam("id") Long id, @RequestParam("specialistId") Long specialistId);
+
+    /**
+     * description 专家调解处理
+     *
+     * @param comEventConciliationVO 主键id
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @PutMapping("/conciliation/Request")
+    R conciliationRequest(@RequestBody ComEventConciliationVO comEventConciliationVO);
+
+    /**
+     * description 专家归档
+     *
+     * @param comEventArchiveVO 归档对象
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @PutMapping("/archive/Request")
+    R archiveRequest(@RequestBody ComEventArchiveVO comEventArchiveVO);
+
+    /**
+     * description 事件各种状态(处理状态1待处理2待验证3专家已受理4专家未受理,拒绝5调解中6已结案归档7调解取消8 已删除)数据统计
+     *
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @GetMapping("/status/calculate")
+    R calculate(@RequestParam(value = "level",required = false)Integer level,@RequestParam(value = "id",required = false)Long  id);
+
+    /**
+     * 事件范围筛选列表
+     * */
+    @GetMapping("/rangeList")
+    R eventRangeList();
+}
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
new file mode 100644
index 0000000..60a2e85
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityService.java
@@ -0,0 +1,11951 @@
+package com.panzhihua.common.service.community;
+
+import java.util.Date;
+import java.util.List;
+
+import com.panzhihua.common.model.dtos.*;
+import com.panzhihua.common.model.dtos.community.*;
+import com.panzhihua.common.model.dtos.community.acid.*;
+import com.panzhihua.common.model.dtos.community.building.BuildingDto;
+import com.panzhihua.common.model.dtos.community.convenient.*;
+import com.panzhihua.common.model.dtos.community.dpc.AddDpcDTO;
+import com.panzhihua.common.model.dtos.community.dpc.EditDpcDTO;
+import com.panzhihua.common.model.dtos.community.dpc.PageDpcDTO;
+import com.panzhihua.common.model.dtos.community.enterprise.*;
+import com.panzhihua.common.model.dtos.community.large.AreaStreetDetail;
+import com.panzhihua.common.model.dtos.community.large.SumAreaStreetResp;
+import com.panzhihua.common.model.dtos.community.reserve.*;
+import com.panzhihua.common.model.dtos.community.sanshuo.*;
+import com.panzhihua.common.model.dtos.community.warehouse.ComActWarehouseApplyDTO;
+import com.panzhihua.common.model.dtos.community.cluster.PageClusterMemberDto;
+import com.panzhihua.common.model.dtos.partybuilding.QryReportResp;
+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.dtos.property.PagePropertyWorkerDTO;
+import com.panzhihua.common.model.dtos.property.PropertyWorkerDTO;
+import com.panzhihua.common.model.dtos.shop.*;
+import com.panzhihua.common.model.vos.*;
+import com.panzhihua.common.model.vos.civil.ComActSocialWorkerVO;
+import com.panzhihua.common.model.vos.community.*;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidCheckRecordVO;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidMemberVO;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidRecordVO;
+import com.panzhihua.common.model.vos.community.cluster.admin.ComClusterMemberExcelVO;
+import com.panzhihua.common.model.vos.community.easyPhoto.ComActEasyPhotoMemberVO;
+import com.panzhihua.common.model.vos.community.raffle.ComActRaffleRecordVO;
+import com.panzhihua.common.model.vos.community.raffle.ComActRaffleVO;
+import com.panzhihua.common.model.vos.community.reserve.ComActReserveDangerAreaVO;
+import com.panzhihua.common.model.vos.shop.AddShopFlowerGoodsVO;
+import com.panzhihua.common.utlis.StringUtils;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+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.RequestParam;
+
+import com.panzhihua.common.model.dtos.advertisement.ComOpsAdvDTO;
+import com.panzhihua.common.model.dtos.advertisement.PageComOpsAdvDTO;
+import com.panzhihua.common.model.dtos.civil.ComActSocialWorkerAddDTO;
+import com.panzhihua.common.model.dtos.civil.ComActSocialWorkerDeleteDTO;
+import com.panzhihua.common.model.dtos.civil.ComActSocialWorkerEditDTO;
+import com.panzhihua.common.model.dtos.civil.ComActSocialWorkerExcelVO;
+import com.panzhihua.common.model.dtos.civil.PageComActSocialWorkerDTO;
+import com.panzhihua.common.model.dtos.common.AddComMngVolunteerOrgTeamDto;
+import com.panzhihua.common.model.dtos.common.AddComMngVolunteerServiceTypeDto;
+import com.panzhihua.common.model.dtos.common.AddComMngVolunteerSkillDto;
+import com.panzhihua.common.model.dtos.common.EditComActEasyPhotoHandlerDto;
+import com.panzhihua.common.model.dtos.common.EditComMngVolunteerOrgTeamDto;
+import com.panzhihua.common.model.dtos.common.EditComMngVolunteerServiceTypeDto;
+import com.panzhihua.common.model.dtos.common.EditComMngVolunteerSkillDto;
+import com.panzhihua.common.model.dtos.common.PageComActEasyPhotoHandlerDto;
+import com.panzhihua.common.model.dtos.common.PageComMngVolunteerOrgTeamDto;
+import com.panzhihua.common.model.dtos.common.PageComMngVolunteerServiceTypeDto;
+import com.panzhihua.common.model.dtos.common.PageComMngVolunteerSkillDto;
+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;
+import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenStatisticPartyActivityDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.PageBigScreenStatisticPartyOrg;
+import com.panzhihua.common.model.dtos.community.bigscreen.work.ScreenActActivityListDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.work.ScreenActActivityPeopleListDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.work.ScreenDiscussListDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.work.ScreenMicroListDTO;
+import com.panzhihua.common.model.dtos.community.building.admin.AddBuildingHouseDto;
+import com.panzhihua.common.model.dtos.community.building.admin.AddBuildingUnitDto;
+import com.panzhihua.common.model.dtos.community.building.admin.DeleteBuildingHousePopulationDto;
+import com.panzhihua.common.model.dtos.community.building.admin.EditBuildingHouseDto;
+import com.panzhihua.common.model.dtos.community.building.admin.EditBuildingUnitDto;
+import com.panzhihua.common.model.dtos.community.building.admin.PageBuildingListDto;
+import com.panzhihua.common.model.dtos.community.building.admin.PageBuildingUnitHouseListDto;
+import com.panzhihua.common.model.dtos.community.cluster.admin.AddClusterAdminDto;
+import com.panzhihua.common.model.dtos.community.cluster.admin.AddClusterMemberAdminDto;
+import com.panzhihua.common.model.dtos.community.cluster.admin.EditClusterAdminDto;
+import com.panzhihua.common.model.dtos.community.cluster.admin.EditClusterMemberAdminDto;
+import com.panzhihua.common.model.dtos.community.cluster.admin.PageClusterAdminDto;
+import com.panzhihua.common.model.dtos.community.cluster.admin.PageClusterMemberAdminDto;
+import com.panzhihua.common.model.dtos.community.easyPhoto.AddEasyPhotoActivityDTO;
+import com.panzhihua.common.model.dtos.community.easyPhoto.AddEasyPhotoClassifyDTO;
+import com.panzhihua.common.model.dtos.community.easyPhoto.EditEasyPhotoActivityDTO;
+import com.panzhihua.common.model.dtos.community.easyPhoto.ExportEasyPhotoDTO;
+import com.panzhihua.common.model.dtos.community.easyPhoto.PageEasyPhotoActivityDTO;
+import com.panzhihua.common.model.dtos.community.easyPhoto.PageEasyPhotoActivityUserDTO;
+import com.panzhihua.common.model.dtos.community.fms.AddFmsClassroomAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.AddFmsServiceAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.AddTeamDTO;
+import com.panzhihua.common.model.dtos.community.fms.AddTeamMemberDTO;
+import com.panzhihua.common.model.dtos.community.fms.AddTeamTypeDTO;
+import com.panzhihua.common.model.dtos.community.fms.ApplyFmsServiceDTO;
+import com.panzhihua.common.model.dtos.community.fms.ApprovalFmsServiceAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.DeleteTeamMemberDTO;
+import com.panzhihua.common.model.dtos.community.fms.EditFmsClassroomAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.EditTeamDTO;
+import com.panzhihua.common.model.dtos.community.fms.EditTeamMemberDTO;
+import com.panzhihua.common.model.dtos.community.fms.EditTeamTypeDTO;
+import com.panzhihua.common.model.dtos.community.fms.EvaluationFmsServiceDTO;
+import com.panzhihua.common.model.dtos.community.fms.FeedbackFmsServiceDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageFmsClassroomAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageFmsEventAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageFmsServiceAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageFmsServiceAppletsDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageFmsTeamDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageTeamMemberDTO;
+import com.panzhihua.common.model.dtos.community.integral.ComActIntegralCommunityRankDTO;
+import com.panzhihua.common.model.dtos.community.integral.admin.AddComActIntegralUserDTO;
+import com.panzhihua.common.model.dtos.community.integral.admin.EditComActIntegralRuleDTO;
+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.microCommercialStreet.DeleteProductDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.DisableOrEnableMcsMerchantDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.LoginWithPhoneDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.McsEvaluateDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.McsGameDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.McsInfoDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.McsMerchantDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.McsProductDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageJoinGameListDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageMcsEvaluateDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageMcsGameDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageMcsInformationDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageMcsMerchantDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageMcsProductDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageVerifyRecordDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PutUserInfoDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.SetPopularForGameDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.SetShelfForGameDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.SetShelfForInfoDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.SetShelfForProductDTO;
+import com.panzhihua.common.model.dtos.community.questnaire.StatisticsSummaryDTO;
+import com.panzhihua.common.model.dtos.community.rentingHouses.NearbyDTO;
+import com.panzhihua.common.model.dtos.community.rentingHouses.PageRentingHouseRegisterDTO;
+import com.panzhihua.common.model.dtos.community.rentingHouses.PageRentingHousesConfigDTO;
+import com.panzhihua.common.model.dtos.community.rentingHouses.ReleaseOrCancelHouseDTO;
+import com.panzhihua.common.model.dtos.community.rentingHouses.RentingHouseRegisterDTO;
+import com.panzhihua.common.model.dtos.community.rentingHouses.RentingHousesConfigDTO;
+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.social.HatchAuditProcessDTO;
+import com.panzhihua.common.model.dtos.community.social.PageProjectDTO;
+import com.panzhihua.common.model.dtos.community.social.PageProjectSignListDTO;
+import com.panzhihua.common.model.dtos.community.social.PageSocialOrgHatchAuditDTO;
+import com.panzhihua.common.model.dtos.community.social.PageSocialOrgHatchDTO;
+import com.panzhihua.common.model.dtos.community.social.SocialOrgHatchAuditDTO;
+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;
+import com.panzhihua.common.model.dtos.community.wallet.PageComActWalletAdminDTO;
+import com.panzhihua.common.model.dtos.community.wallet.PageComActWalletTradeAdminDTO;
+import com.panzhihua.common.model.dtos.community.wallet.PageComActWalletTradeDTO;
+import com.panzhihua.common.model.dtos.community.warehouse.ComActWarehouseDonatesDTO;
+import com.panzhihua.common.model.dtos.community.warehouse.ExportDonatesDTO;
+import com.panzhihua.common.model.dtos.community.warehouse.PageDonatesDTO;
+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.dtos.grid.AddComMngHousePopulationDTO;
+import com.panzhihua.common.model.dtos.grid.ComMngVillageListAppDTO;
+import com.panzhihua.common.model.dtos.grid.DelComMngHousePopulationDTO;
+import com.panzhihua.common.model.dtos.grid.PageComMngPopulationDTO;
+import com.panzhihua.common.model.dtos.grid.PageComMngVillageBuildHouseAppDTO;
+import com.panzhihua.common.model.dtos.grid.PagePopulationListDTO;
+import com.panzhihua.common.model.dtos.grid.admin.ComMngPopulationExportDTO;
+import com.panzhihua.common.model.dtos.grid.admin.ComMngPopulationListDTO;
+import com.panzhihua.common.model.dtos.grid.admin.ComMngPopulationRelationHouseDTO;
+import com.panzhihua.common.model.dtos.grid.admin.ComMngPopulationSubordinateDTO;
+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.AddNeighborCircleTopicAppDTO;
+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.DeleteNeighborCircleAppDTO;
+import com.panzhihua.common.model.dtos.neighbor.DetailNeighborAllCommentByAdminDTO;
+import com.panzhihua.common.model.dtos.neighbor.DetailNeighborCommentReplyByAdminDTO;
+import com.panzhihua.common.model.dtos.user.PageInputUserDTO;
+import com.panzhihua.common.model.dtos.vaccines.VaccinesByAdminDTO;
+import com.panzhihua.common.model.dtos.vaccines.VaccinesEnrollByAdminDTO;
+import com.panzhihua.common.model.dtos.vaccines.VaccinesEnrollByAppDTO;
+import com.panzhihua.common.model.dtos.vaccines.VaccinesEnrollUserByAppDTO;
+import com.panzhihua.common.model.dtos.vaccines.VaccinesInoculationByAdminDTO;
+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;
+import com.panzhihua.common.model.vos.community.bigscreen.PartyBuildingMemberVO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
+import com.panzhihua.common.model.vos.community.fms.ComFmsServiceImportExcelVO;
+import com.panzhihua.common.model.vos.community.fms.ComFmsTeamMemberImportExcelVO;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsConfigVO;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsOrderVO;
+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.rentHouse.RentingHourseOrderVO;
+import com.panzhihua.common.model.vos.community.rentHouse.RentingHoursePreOrderVO;
+import com.panzhihua.common.model.vos.community.rentHouse.WxPayNotifyOrderVO;
+import com.panzhihua.common.model.vos.community.rentHouse.WxPayOrderVO;
+import com.panzhihua.common.model.vos.community.reserve.ComActReserveDetailAdminVO;
+import com.panzhihua.common.model.vos.community.social.ComActSocialProjectMemberVO;
+import com.panzhihua.common.model.vos.community.social.ComActSocialProjectPublicityVO;
+import com.panzhihua.common.model.vos.community.social.ComActSocialProjectScheduleVO;
+import com.panzhihua.common.model.vos.community.social.ComActSocialWorkerServiceVO;
+import com.panzhihua.common.model.vos.community.social.SocialProjectVO;
+import com.panzhihua.common.model.vos.community.volunteer.ComMngVolunteerExcelVO;
+import com.panzhihua.common.model.vos.community.warehouse.ComActWarehouseApplyVO;
+import com.panzhihua.common.model.vos.community.warehouse.ComActWarehouseBaseVO;
+import com.panzhihua.common.model.vos.community.warehouse.QRCodeVO;
+import com.panzhihua.common.model.vos.community.warehouse.WarehouseDonatesExcelVO;
+import com.panzhihua.common.model.vos.neighbor.AddNeighborCircleAdminVO;
+import com.panzhihua.common.model.vos.neighbor.ChangeCommentReplyStatusByAdminVO;
+import com.panzhihua.common.model.vos.neighbor.ChangeCommentStatusByAdminVO;
+import com.panzhihua.common.model.vos.neighbor.EditNeighborCircleAdminVO;
+import com.panzhihua.common.model.vos.shop.AddShopGoodsVO;
+import com.panzhihua.common.model.vos.shop.ShopOperLogVO;
+import com.panzhihua.common.model.vos.shop.ShopStoreVO;
+import com.panzhihua.common.model.vos.user.UserElectronicFileVO;
+import com.panzhihua.common.model.vos.user.UserPhoneVO;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 社区
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 15:59
+ **/
+@FeignClient(name = "huacheng-community")
+public interface CommunityService {
+    /**
+     * 新增社区活动
+     *
+     * @param comActActivityVO
+     *            新增信息
+     * @return 新增结果
+     */
+    @PostMapping("/addactivity")
+    R addActivity(@RequestBody ComActActivityVO comActActivityVO);
+
+    /**
+     * 编辑社区活动
+     *
+     * @param comActActivityVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("/putactivity")
+    R putActivity(@RequestBody ComActActivityVO comActActivityVO);
+
+    /**
+     * 删除社区活动
+     *
+     * @param comActActivityVO
+     *            活动主键
+     * @return 删除结果
+     */
+    @PostMapping("deleteactivity")
+    R deleteActivity(@RequestBody ComActActivityVO comActActivityVO);
+
+    /**
+     * 分页查询社区活动
+     *
+     * @param comActActivityVO
+     *            查询参数
+     * @return 分页集合
+     */
+    @PostMapping("pageactivity")
+    R pageActivity(@RequestBody ComActActivityVO comActActivityVO);
+
+    /**
+     * 发布活动
+     *
+     * @param comActActivityVO
+     *            主键id 发布时间
+     * @return 发布结果
+     */
+    @PostMapping("releaseactivity")
+    R releaseActivity(@RequestBody ComActActivityVO comActActivityVO);
+
+    /**
+     * 取消活动
+     *
+     * @param comActActivityVO
+     *            取消原因
+     * @return 取消结果
+     */
+    @PostMapping("cancelactivity")
+    R cancelActivity(@RequestBody ComActActivityVO comActActivityVO);
+
+    /**
+     * 活动详情
+     *
+     * @param id
+     *            活动id
+     * @param userId
+     *            当前登录者id
+     * @return 详情
+     */
+    @PostMapping("detailactivity")
+    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);
+
+    /**
+     * 分页活动报名名单
+     *
+     * @param activitySignVO
+     *            查询参数
+     * @return 报名人员集合
+     */
+    @PostMapping("listactivitysign")
+    R listActivitySign(@RequestBody ActivitySignVO activitySignVO);
+
+    /**
+     * description  getSignLists  查询活动报名名单
+     * @param    activitySignVO  查询参数
+     * @return    R   查询结果
+     * @author txb
+     * @date 2021/8/24 14:03
+     */
+    @PostMapping("/activity/sign/getList")
+    R getSignLists(@RequestBody ActivitySignVO activitySignVO);
+
+    /**
+     * description  listActivityRegists  分页查询活动评价
+     * @param    comActActEvaluateVO  活动评价vo
+     * @return    R   分页查询结果
+     * @author txb
+     * @date 2021/8/24 14:03
+     */
+    @PostMapping("/activity/evaluate/page")
+    R pageActivityEvaluates(@RequestBody ComActActEvaluateVO comActActEvaluateVO);
+
+    /**
+     * description  getEvaluateLists  查询活动评价
+     * @param    comActActEvaluateVO  查询参数
+     * @return    R   查询结果
+     * @author txb
+     * @date 2021/8/24 14:03
+     */
+    @PostMapping("/activity/evaluate/getList")
+    R getEvaluateLists(@RequestBody ComActActEvaluateVO comActActEvaluateVO);
+
+    /**
+     * description  pageActivityRegists  分页查询活动签到
+     * @param    comActActRegistVO  活动签到vo
+     * @return    R   分页查询结果
+     * @author txb
+     * @date 2021/8/24 14:03
+     */
+    @PostMapping("/activity/regist/page")
+    R pageActivityRegists(@RequestBody ComActActRegistVO comActActRegistVO);
+
+    /**
+     * description  getRegistLists  查询活动签到
+     * @param    comActActRegistVO  查询参数
+     * @return    R   查询结果
+     * @author txb
+     * @date 2021/8/25 9:33
+     */
+    @PostMapping("/activity/regist/getList")
+    R getRegistLists(@RequestBody ComActActRegistVO comActActRegistVO);
+
+    /**
+     * description  getRegistLists  查询活动未签到
+     * @param    comActActRegistVO  查询参数
+     * @return    R   查询结果
+     * @author txb
+     * @date 2021/8/25 9:33
+     */
+    @PostMapping("/activity/noRegist/getList")
+    R getNoRegistLists(@RequestBody ComActActRegistVO comActActRegistVO);
+
+    /**
+     * description  activityStagistics  活动数据统计
+     * @param activityId 活动id
+     * @return    R   统计结果
+     * @author txb
+     * @date 2021/8/25 13:33
+     */
+    @GetMapping("/activity/statistics")
+    R activityStatistics(@RequestParam("activityId") Long activityId);
+
+    /**
+     * 获取活动历史封面  getPictureList
+     * @param userId 用户id
+     * @return    R   统计结果
+     * @author txb
+     * @date 2021/8/27 13:33
+     */
+    @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);
+
+    /**
+     * 活动报名名单
+     *
+     * @param activitySignVO
+     *            查询参数
+     * @return 报名人员集合
+     */
+    @PostMapping("listactivitysigns")
+    R listActivitySigns(@RequestBody ActivitySignVO activitySignVO);
+
+    /**
+     * 新增社区动态
+     *
+     * @param comActDynVO
+     *            新增信息
+     * @return 新增结果
+     */
+    @PostMapping("adddynamic")
+    R addDynamic(@RequestBody ComActDynVO comActDynVO);
+
+    /**
+     * 编辑社区动态
+     *
+     * @param comActDynVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("putdynamic")
+    R putDynamic(@RequestBody ComActDynVO comActDynVO);
+
+    /**
+     * 删除社区动态
+     *
+     * @param comActDynVO
+     *            动态id
+     * @return 删除结果
+     */
+    @PostMapping("deletedynamic")
+    R deleteDynamic(@RequestBody ComActDynVO comActDynVO);
+
+    /**
+     * 分页查询社区动态
+     *
+     * @param comActDynVO
+     *            查询参数
+     * @return 动态集合
+     */
+    @PostMapping("pagedynamic")
+    R pageDynamic(@RequestBody ComActDynVO comActDynVO);
+
+    /**
+     * 管理后台分页查询社区动态
+     *
+     * @param comActDynVO
+     *            查询参数
+     * @return 动态集合
+     */
+    @PostMapping("pagedynamicByAdmin")
+    R pageDynamicByAdmin(@RequestBody ComActDynVO comActDynVO);
+
+    /**
+     * 社区动态详情
+     *
+     * @param id
+     *            动态id
+     * @return 详情
+     */
+    @PostMapping("detaildynamic")
+    R detailDynamic(@RequestParam("id") Long id);
+
+    /**
+     * 分页查询随手拍
+     *
+     * @param comActEasyPhotoVO
+     *            查询参数
+     * @return 心愿列表
+     */
+    @PostMapping("pageeasyphoto")
+    R pageEasyPhoto(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO);
+
+    /**
+     * 分页查询随手拍   浪潮专用
+     *
+     * @param comActEasyPhotoVO
+     *            查询参数
+     * @return 心愿列表
+     */
+    @GetMapping("pageEasyPhotoAdminLC")
+    R pageEasyPhotoAdminLC(@RequestParam("pageNum") Long pageNum,@RequestParam("pageSize") Long pageSize);
+
+    /**
+     * 随手拍详情
+     *
+     * @param id
+     *            随手拍主键
+     * @param userId
+     *            登录用户id
+     * @return 详情内容
+     */
+    @PostMapping("detaileasyphoto")
+    R detailEasyPhoto(@RequestParam("id") Long id, @RequestParam("userId") Long userId);
+
+    /**
+     * 随手拍详情
+     *
+     * @param id
+     *            随手拍主键
+     * @param userId
+     *            登录用户id
+     * @return 详情内容
+     */
+    @PostMapping("detaileasyphotodesensitize")
+    R detailEasyPhotoDesensitize(@RequestParam("id") Long id, @RequestParam("userId") Long userId);
+
+
+    /**
+     * 随手拍删除
+     *
+     * @param id
+     *            随手拍主键
+     * @param userId
+     *            登录用户id
+     * @return 详情内容
+     */
+    @PostMapping("deleteEasyPhoto")
+    R deleteEasyPhoto(@RequestParam("id") Long id, @RequestParam("userId") Long userId);
+
+    /**
+     * 分页查询微心愿
+     *
+     * @param comActMicroWishVO
+     *            查询参数
+     * @return 分页集合
+     */
+    @PostMapping("pagemicrowish")
+    R pageMicroWish(@RequestBody ComActMicroWishVO comActMicroWishVO);
+
+    /**
+     * 小程序分页查询微心愿
+     *
+     * @param comActMicroWishVO
+     *            查询参数
+     * @return 分页集合
+     */
+    @PostMapping("pagemicrowish/applets")
+    R pageMicroWishApplets(@RequestBody ComActMicroWishVO comActMicroWishVO);
+    /**
+     * 小程序分页查询微心愿
+     *
+     * @param comActMicroWishVO
+     *            查询参数
+     * @return 分页集合
+     */
+    @PostMapping("pagemicrowish/appletsDesensitize")
+    R pageMicroWishAppletsDesensitize(@RequestBody ComActMicroWishVO comActMicroWishVO);
+
+    /**
+     * 心愿详情
+     *
+     * @param id
+     *            查询主键
+     * @param userId
+     *            登录用户id
+     * @return 心愿内容
+     */
+    @PostMapping("detailmicrowish")
+    R detailMicroWish(@RequestParam("id") Long id, @RequestParam("userId") Long userId);
+    /**
+     * 心愿详情
+     *
+     * @param id
+     *            查询主键
+     * @param userId
+     *            登录用户id
+     * @return 心愿内容
+     */
+    @PostMapping("detailmicrowishdesensitize")
+    R detailMicroWishDesensitize(@RequestParam("id") Long id, @RequestParam("userId") Long userId);
+
+    /**
+     * 审核、分配、反馈心愿
+     *
+     * @param comActMicroWishVO
+     *            具体操作
+     * @return 操作结果
+     */
+    @PostMapping("putlmicrowish")
+    R putlMicroWish(@RequestBody ComActMicroWishVO comActMicroWishVO);
+
+    /**
+     * 分页展示我的所有活动 时间倒序排列
+     *
+     * @param comActActivityVO
+     *            分页参数
+     * @return 分页集合
+     */
+    @PostMapping("pagemyactivity")
+    R pageMyActivity(@RequestBody ComActActivityVO comActActivityVO);
+
+    /**
+     * 报名/取消报名社区活动
+     *
+     * @param signactivityVO
+     *            报名参数
+     * @return 报名 取消报名 结果
+     */
+    @PostMapping("signactivity")
+    R signActivity(@RequestBody SignactivityVO signactivityVO);
+
+    /**
+     * 上传随手拍
+     *
+     * @param comActEasyPhotoVO
+     *            上传数据
+     * @return 上传结果
+     */
+    @PostMapping("addeasyphoto")
+    R addEasyPhoto(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO);
+
+    /**
+     * 查询随手拍是否有活动
+     *
+     * @return 活动详情
+     */
+    @PostMapping("getEasyPhotoActivity")
+    R getEasyPhotoActivity(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 发布微心愿
+     *
+     * @param comActMicroWishVO
+     *            发布内容
+     * @return 发布结果
+     */
+    @PostMapping("addmicrowish")
+    R addMicroWish(@RequestBody ComActMicroWishVO comActMicroWishVO);
+
+    /**
+     * 点赞/取消点赞随手拍
+     *
+     * @param comActEasyPhotoVO
+     *            操作参数
+     * @return 操作结果
+     */
+    @PostMapping("puteasyphoto")
+    R putEasyPhoto(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO);
+
+    /**
+     * 点赞/取消点赞微心愿
+     *
+     * @param comActMicroWishVO
+     *            操作参数
+     * @return 操作结果
+     */
+    @PostMapping("putmicrowish")
+    R putMicroWish(@RequestBody ComActMicroWishVO comActMicroWishVO);
+
+    /**
+     * 新增社区动态浏览记录
+     *
+     * @param id
+     *            动态主键
+     * @param userId
+     *            登录用户id
+     * @return 新增结果
+     */
+    @PostMapping("adddynamicuser")
+    R addDynamicUser(@RequestParam("id") Long id, @RequestParam("userId") Long userId);
+
+    /**
+     * 审核、反馈随手拍
+     *
+     * @param comActEasyPhotoVO
+     *            操作参数
+     * @return 操作结果
+     */
+    @PostMapping("puteasyphotostatus")
+    R putEasypHotoStatus(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO);
+
+    /**
+     * 城管随手拍统计
+     */
+    @PostMapping("/esayPhotoCount")
+    R esayphotoCount(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO);
+
+    /**
+     *
+     * 城管安排
+     */
+    @PostMapping("updatePageeasyphoto")
+    R updatePageeasyphoto(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO);
+
+    /**
+     *
+     * 随手拍城管导出
+     */
+    @PostMapping("exportEasyPhoto")
+    R exportEasyPhoto(@RequestBody ExportEasyPhotoDTO exportEasyPhotoDTO);
+
+    /**
+     * 新增社区
+     *
+     * @param comActVO
+     *            社区信息
+     * @return 新增结果
+     */
+    @PostMapping("addcommunity")
+    R addCommunity(@RequestBody ComActVO comActVO);
+
+    /**
+     * 编辑社区
+     *
+     * @param comActVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("putCommunity")
+    R putCommunity(@RequestBody ComActVO comActVO);
+
+    /**
+     * 房屋信息
+     *
+     * @param userId
+     *            用户id
+     * @return 房屋信息
+     */
+    @PostMapping("detailhouse")
+    R detailHouse(@RequestParam("userId") Long userId);
+
+    /**
+     * 新增小区
+     *
+     * @param comMngStructAreaVO
+     *            小区信息
+     * @return 新增结果
+     */
+    @PostMapping("addarea")
+    R addArea(@RequestBody ComMngStructAreaVO comMngStructAreaVO);
+
+    /**
+     * 分页查询小区
+     *
+     * @param comMngStructAreaVO
+     *            查询参数
+     * @return 分页结果
+     */
+    @PostMapping("pagearea")
+    R pageArea(@RequestBody ComMngStructAreaVO comMngStructAreaVO);
+
+    /**
+     * 编辑小区
+     *
+     * @param comMngStructAreaVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("putarea")
+    R putArea(@RequestBody ComMngStructAreaVO comMngStructAreaVO);
+
+    /**
+     * 删除小区
+     *
+     * @param comMngStructAreaVO
+     *            地址编码
+     * @return 删除结果
+     */
+    @PostMapping("deletearea")
+    R deleteArea(@RequestBody ComMngStructAreaVO comMngStructAreaVO);
+
+    /**
+     * 小区批量建房
+     *
+     * @param batchhouseVO
+     *            建房参数
+     * @return 建房结果
+     */
+    @PostMapping("batchhouse")
+    R batchHouse(@RequestBody BatchhouseVO batchhouseVO);
+
+    /**
+     * 展示下级建筑
+     *
+     * @param houseCode
+     *            房屋编号
+     * @return 下级建筑列表
+     */
+    @PostMapping("listsubordinatebuilding")
+    R listSubordinatebuilding(@RequestParam("houseCode") String houseCode);
+
+    /**
+     * 实有单位归属地
+     *
+     * @param comMngRealCompanyBelongsDTO
+     * @return
+     */
+    @PostMapping("/common/data/company/belongs")
+    R belongsComMngRealCompany(@RequestBody ComMngRealCompanyBelongsDTO comMngRealCompanyBelongsDTO);
+
+    /**
+     * 添加同级地址
+     *
+     * @param comMngStructHouseVO
+     *            同级参数
+     * @return 添加结果
+     */
+    @PostMapping("addhouse")
+    R addHouse(@RequestBody BatchhouseVO comMngStructHouseVO);
+
+    /**
+     * 编辑地址
+     *
+     * @param comMngStructHouseVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("addhouse")
+    R putHouse(@RequestBody ComMngStructHouseVO comMngStructHouseVO);
+
+    /**
+     * 删除地址
+     *
+     * @param comMngStructHouseVO
+     *            删除指定地址和所有下级
+     * @return 删除结果
+     */
+    @PostMapping("deletehouse")
+    R deleteHouse(@RequestBody ComMngStructHouseVO comMngStructHouseVO);
+
+    /**
+     * 新增其他建筑
+     *
+     * @param comMngStructOtherBuildVO
+     *            建筑参数
+     * @return 新增结果
+     */
+    @PostMapping("addotherbuild")
+    R addOtherbuild(@RequestBody ComMngStructOtherBuildVO comMngStructOtherBuildVO);
+
+    /**
+     * 查询所有建筑类型
+     *
+     * @return 类型列表
+     */
+    @PostMapping("listbuildtype")
+    R listBuildType(@RequestParam("communityId")Long communityId);
+
+    /**
+     * 分页查询 其他建筑
+     *
+     * @param comMngStructOtherBuildVO
+     *            分页查询参数
+     * @return 查询结果
+     */
+    @PostMapping("pageotherbuild")
+    R pageOtherBuild(@RequestBody ComMngStructOtherBuildVO comMngStructOtherBuildVO);
+
+    /**
+     * 获取志愿者详情
+     *
+     * @param id
+     *            志愿者信息
+     * @return 增加结果
+     */
+    @GetMapping("getVolunteerById")
+    R getVolunteerById(@RequestParam("id") Long id);
+
+    /**
+     * 增加志愿者
+     *
+     * @param comMngVolunteerMngVO
+     *            志愿者信息
+     * @return 增加结果
+     */
+    @PostMapping("addvolunteer")
+    R addVolunteer(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO);
+
+    /**
+     * 删除志愿者
+     *
+     * @param comMngVolunteerMngVO
+     *            手机号
+     * @return 删除结果
+     */
+    @PostMapping("deletevolunteer")
+    R deleteVolunteer(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO);
+
+    /**
+     * 编辑志愿者
+     *
+     * @param comMngVolunteerMngVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("putvolunteer")
+    R putVolunteer(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO);
+
+    /**
+     * 分页展示志愿者
+     *
+     * @param comMngVolunteerMngVO
+     *            查询参数
+     * @return 分页集合返回
+     */
+    @PostMapping("pagevolunteer")
+    R pageVolunteer(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO);
+
+    /**
+     * 分页展示志愿者审核
+     *
+     * @param comMngVolunteerMngVO
+     *            查询参数
+     * @return 查询结果
+     */
+    @PostMapping("pagevolunteerexamine")
+    R pageVolunteerExamine(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO);
+
+    /**
+     * 志愿者审核详情
+     *
+     * @param id
+     *            主键
+     * @return 详情
+     */
+    @PostMapping("detailvolunteerexamine")
+    R detailVolunteerExamine(@RequestParam("id") Long id);
+
+    /**
+     * 志愿者审核
+     *
+     * @param comMngVolunteerMngVO
+     *            审核操作
+     * @return 审核结果
+     */
+    @PostMapping("putvolunteerexamine")
+    R putVolunteerExamine(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO);
+
+    /**
+     * 删除志愿者审核
+     *
+     * @param comMngVolunteerMngVO
+     *            主键
+     * @return 删除结果
+     */
+    @PostMapping("deletevolunteerexamine")
+    R deleteVolunteerExamine(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO);
+
+    /**
+     * 查询区域
+     *
+     * @param comActVO
+     *            登录人的经纬度、或者指定区域的社区
+     * @return 10个社区
+     */
+    @PostMapping("listcommunity")
+    R listCommunity(@RequestBody ComActVO comActVO);
+
+    /**
+     * 用户修改手机号对应的志愿者手机号也要修改
+     *
+     * @param userPhoneVO
+     *            新旧手机号
+     * @return 修改结果
+     */
+    @PostMapping("putvolunteerphone")
+    R putVolunteerPhone(@RequestBody UserPhoneVO userPhoneVO);
+
+    /**
+     * 房屋地址下拉列表
+     *
+     * @param parentCode
+     *            父级编码
+     * @param areaId
+     *            小区id
+     * @return 下级列表
+     */
+    @PostMapping("listhouses")
+    R listHouses(@RequestParam("parentCode") String parentCode, @RequestParam("areaId") Long areaId);
+
+    /**
+     * 新增房屋
+     *
+     * @param comMngStructHouseVO
+     *            房屋信息
+     * @return 新增结果
+     */
+    @PostMapping("addhouses")
+    R addHouses(@RequestBody ComMngStructHouseVO comMngStructHouseVO);
+
+    /**
+     * 查询小区
+     *
+     * @param communityId
+     *            社区id
+     * @return 小区集合
+     */
+    @PostMapping("listarea")
+    R listArea(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 用户参加的所有社区活动
+     *
+     * @param userId
+     *            用户id
+     * @param status
+     * @return 活动列表
+     */
+    @PostMapping("listactivity")
+    R listActivity(@RequestParam("userId") Long userId, @RequestParam(value = "status", required = false) Integer status,@RequestParam(value = "type",required = false)Integer type);
+
+    /**
+     * 用户确认心愿
+     *
+     * @param comActMicroWishVO
+     *            用户评价
+     * @return 确认结果
+     */
+    @PostMapping("putmicrowishconfirm")
+    R putMicroWishConfirm(@RequestBody ComActMicroWishVO comActMicroWishVO);
+
+    /**
+     * 建筑类型
+     *
+     * @param communityId
+     *            社区id
+     * @return 建筑集合
+     */
+    @PostMapping("listcommngstructbuildtype")
+    R listComMngStructBuildType(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 增加删除建筑类型
+     *
+     * @param systemmanagementConfigVO
+     *            操作内容
+     * @return 操作结果
+     */
+    @PostMapping("putcommngstructbuildtype")
+    R putComMngStructBuildType(@RequestBody SystemmanagementConfigVO systemmanagementConfigVO);
+
+    /**
+     * 获取广告跳转内容配置
+     *
+     * @return 跳转内容集合
+     */
+    @PostMapping("getjumpcontent")
+    R getJumpContent();
+
+    /**
+     * 编辑运营后台系统配置
+     *
+     * @param appletesBackstageConfigDTO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("putjumpcontent")
+    R putJumpContent(@RequestBody AppletesBackstageConfigDTO appletesBackstageConfigDTO);
+
+    /**
+     * 社区详情
+     *
+     * @param communityId
+     *            社区id
+     * @return 社区详情
+     */
+    @PostMapping("detailcommunity")
+    R detailCommunity(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 小区详情
+     *
+     * @param areaId
+     *            小区id
+     * @return 小区信息
+     */
+    @PostMapping("detailarea")
+    R detailArea(@RequestParam("areaId") Long areaId);
+
+    /**
+     * 分页查询社区
+     *
+     * @param pageComActDTO
+     *            查询参数
+     * @return 分页集合
+     */
+    @PostMapping("pagecommunity")
+    R pageCommunity(@RequestBody PageComActDTO pageComActDTO);
+
+    /**
+     * 志愿者详情
+     *
+     * @param id
+     *            主键
+     * @return
+     */
+    @PostMapping("detailvolunteer")
+    R detailVolunteer(@RequestParam("id") Long id);
+
+    /**
+     * 查询平台所有的社区
+     *
+     * @return 社区集合 按照创建顺序倒序排列
+     */
+    @PostMapping("listcommunityall")
+    R listCommunityAll(@RequestParam("areaCode")String areaCode);
+
+    /**
+     * 首页广告banner
+     *
+     * @return
+     */
+    @PostMapping("listadvertisement")
+    R listAdvertisement(@RequestParam("type") Integer type);
+
+    /**
+     * 新增广告
+     *
+     * @param comOpsAdvDTO
+     * @return
+     */
+    @PostMapping("addadvertisement")
+    R addAdvertisement(@RequestBody ComOpsAdvDTO comOpsAdvDTO);
+
+    /**
+     * 编辑广告
+     *
+     * @param comOpsAdvDTO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("putadvertisement")
+    R putAdvertisement(@RequestBody ComOpsAdvDTO comOpsAdvDTO);
+
+    /**
+     * 广告位置下拉列表
+     *
+     * @return 位置集合
+     */
+    @PostMapping("listadvpos")
+    R listAdvpos();
+
+    /**
+     * 跳转内容下拉列表
+     *
+     * @return 跳转内容集合
+     */
+    @PostMapping("listadvjump")
+    R listAdvjump();
+
+    /**
+     * 社区管理后台数据看板 代办事件
+     *
+     * @param communityId
+     *            社区id
+     * @param userId
+     * @return 代办事件列表
+     */
+    @PostMapping("indexdatacommunitybackstage")
+    R indexDataCommunityBackstage(@RequestParam("communityId") Long communityId, @RequestParam("userId") Long userId);
+
+    /**
+     * 删除社区
+     *
+     * @param communityId
+     *            社区id
+     * @return 删除结果
+     */
+    @PostMapping("delectcommunity")
+    R delectCommunity(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 定时任务刷新社区动态置顶状态
+     *
+     * @return
+     */
+    @PostMapping("timedtaskdynistopping")
+    R timedTaskDynIstopping();
+
+    /**
+     * 定时任务刷新社区动态发布状态
+     *
+     * @return
+     */
+    @PostMapping("timedtaskdynstatus")
+    R timedTaskDynStatus();
+
+    /**
+     * 定时任务查询所有要取消的社区活动
+     *
+     * @return 社区活动集合
+     */
+    @PostMapping("timedtaskactactivity")
+    R timedTaskActActivity();
+
+    /**
+     * 定时任务刷新社区活动的各个状态 除取消外
+     *
+     * @return
+     */
+    @PostMapping("timedtaskactactivityall")
+    R timedTaskActActivityAll();
+
+    /**
+     * 定时任务刷新社区活动的各个状态 除取消外
+     *
+     * @return
+     */
+    @PostMapping("timedtaskactmicrowish")
+    R timedTaskActMicroWishAll();
+
+    /**
+     * 其他建筑详情
+     *
+     * @param id
+     *            主键id
+     * @return 建筑内容
+     */
+    @PostMapping("detailotherbuild")
+    R detailOtherbuild(@RequestParam("id") Long id);
+
+    /**
+     * 编辑其他建筑
+     *
+     * @param comMngStructOtherBuildVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("putotherbuild")
+    R putOtherbuild(@RequestBody ComMngStructOtherBuildVO comMngStructOtherBuildVO);
+
+    /**
+     * 删除其他建筑
+     *
+     * @param id
+     *            主键
+     * @return 删除结果
+     */
+    @PostMapping("deleteotherbuild")
+    R deleteOtherbuild(@RequestParam("id") Long id);
+
+    /**
+     * 社区后台分页查询社区活动
+     *
+     * @param comActActivityVO
+     *            查询参数
+     * @return 返回结果
+     */
+    @PostMapping("pageactivitycommunityback")
+    R pageActivityCommunityBack(@RequestBody ComActActivityVO comActActivityVO);
+
+    /**
+     * 小程序分页查询随手拍
+     *
+     * @param comActEasyPhotoVO
+     *            查询参数
+     * @return 返回结果
+     */
+    @PostMapping("pageeasyphotoapplets")
+    R pageEasyPhotoApplets(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO);
+
+    /**
+     * 小程序分页查询随手拍
+     *
+     * @param comActEasyPhotoVO
+     *            查询参数
+     * @return 返回结果
+     */
+    @PostMapping("pageeasyphotoappletsdesensitize")
+    R pageEasyPhotoAppletsDesensitize(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO);
+
+
+    /**
+     * 随手拍评论分页查询
+     *
+     * @param pageComActEasyPhotoCommentDTO
+     *            查询参数
+     * @return 查询结果
+     */
+    @PostMapping("pagecomacteasyphotocomment")
+    R pageComActEasyPhotoComment(@RequestBody PageComActEasyPhotoCommentDTO pageComActEasyPhotoCommentDTO);
+
+    /**
+     * 随手拍评论分页查询 - 脱敏
+     *
+     * @param pageComActEasyPhotoCommentDTO
+     *            查询参数
+     * @return 查询结果
+     */
+    @PostMapping("pagecomacteasyphotocommentdesensitize")
+    R pageComActEasyPhotoCommentDesensitize(@RequestBody PageComActEasyPhotoCommentDTO pageComActEasyPhotoCommentDTO);
+
+    /**
+     * 评论点赞/取消点赞
+     *
+     * @param comActEasyPhotoCommentUserDTO
+     *            操作
+     * @return 操作结果
+     */
+    @PostMapping("commentsign")
+    R commentSign(@RequestBody ComActEasyPhotoCommentUserDTO comActEasyPhotoCommentUserDTO);
+
+    /**
+     * 随手拍--评论--新增评论
+     *
+     * @param comActEasyPhotoCommentDTO
+     *            新增内容
+     * @return 新增结果
+     */
+    @PostMapping("addcomacteasyphotocomment")
+    R addComActEasyPhotoComment(@RequestBody ComActEasyPhotoCommentDTO comActEasyPhotoCommentDTO);
+
+    /**
+     * 议事投票-新增
+     *
+     * @param comActDiscussDTO
+     *            新增参数
+     * @return 新增结果
+     */
+    @PostMapping("adddiscuss")
+    R addDiscuss(@RequestBody ComActDiscussDTO comActDiscussDTO);
+
+    /**
+     * 议事投票-新增
+     *
+     * @param comActDiscussDTO
+     *            新增参数
+     * @return 新增结果
+     */
+    @PostMapping("editdiscuss")
+    R editDiscuss(@RequestBody ComActDiscussDTO comActDiscussDTO);
+
+    /**
+     * 议事投票-详情
+     *
+     * @param discussDetailDTO
+     *            请求参数
+     * @return ComActDiscussVO
+     */
+    @PostMapping("detaildiscuss")
+    R detailDiscuss(@RequestBody ComActDiscussDetailDTO discussDetailDTO);
+
+    /**
+     * 分页查询评论下回复列表
+     * @param discussDetailDTO  请求参数
+     * @return  回复列表
+     */
+    @PostMapping("discussCommentReplyAdmin")
+    R discussCommentReplyAdmin(@RequestBody ComActDiscussDetailDTO discussDetailDTO);
+
+    /**
+     * 议事投票-删除
+     *
+     * @param id
+     *            主键
+     * @return 删除结果
+     */
+    @PostMapping("deletediscuss")
+    R deleteDiscuss(@RequestParam("id") Long id);
+
+    /**
+     * 议事投票-回复
+     *
+     * @param comActDiscussCommentDTO
+     *            评论内容
+     * @return 回复结果
+     */
+    @PostMapping("adddiscusscomment")
+    R addDiscussComment(@RequestBody ComActDiscussCommentDTO comActDiscussCommentDTO);
+
+    /**
+     * 议事投票-分页查询
+     *
+     * @param pageComActDiscussDTO
+     *            查询参数
+     * @return ComActDiscussVO
+     */
+    @PostMapping("pagediscuss")
+    R pageDiscuss(@RequestBody PageComActDiscussDTO pageComActDiscussDTO);
+
+    /**
+     * 议事投票-后台分页查询
+     *
+     * @param pageComActDiscussDTO
+     *            查询参数
+     * @return ComActDiscussVO
+     */
+    @PostMapping("pagediscussAdmin")
+    R pageDiscussAdmin(@RequestBody PageComActDiscussDTO pageComActDiscussDTO);
+
+    /**
+     * 议事投票-评论-查看
+     *
+     * @param id
+     *            主键
+     * @return 详情
+     */
+    @PostMapping("detaildiscusscomment")
+    R detailDiscussComment(@RequestParam("id") Long id);
+
+    /**
+     * 议事投票评论详情
+     * @param pageComActDiscussCommentDTO   请求参数
+     * @return  议事投票详情
+     */
+    @PostMapping("detaildiscusscommentAdmin")
+    R detailDiscussCommentAdmin(@RequestBody PageComActDiscussCommentDTO pageComActDiscussCommentDTO);
+
+    /**
+     * 议事投票-评论-置顶
+     *
+     * @param id
+     *            主键
+     * @return 置顶结果
+     */
+    @PostMapping("putdiscusscommenttop")
+    R putDiscussCommentTop(@RequestParam("id") Long id);
+
+    /**
+     * 议事投票-评论-回复
+     *
+     * @param comActDiscussCommentDTO
+     *            回复内容
+     * @return 回复结果
+     */
+    @PostMapping("adddiscusscommentback")
+    R addDiscussCommentBack(@RequestBody ComActDiscussCommentDTO comActDiscussCommentDTO);
+
+    /**
+     * 议事投票-评论-分页查询
+     *
+     * @param pageComActDiscussCommentDTO
+     *            分页查询参数
+     * @return ComActDiscussCommentVO
+     */
+    @PostMapping("pagediscusscomment")
+    R pageDiscussComment(@RequestBody PageComActDiscussCommentDTO pageComActDiscussCommentDTO);
+
+    /**
+     * 议事投票-评论-后台分页查询
+     *
+     * @param pageComActDiscussCommentDTO
+     *            分页查询参数
+     * @return ComActDiscussCommentVO
+     */
+    @PostMapping("pagediscusscommentAdmin")
+    R pageDiscussCommentAdmin(@RequestBody PageComActDiscussCommentDTO pageComActDiscussCommentDTO);
+
+    /**
+     * 议事投票-分页查询 小程序
+     *
+     * @param pageComActDiscussDTO
+     *            查询参数
+     * @return ComActDiscussVO 分页
+     */
+    @PostMapping("pagediscussapplets")
+    R pageDiscussApplets(@RequestBody PageComActDiscussDTO pageComActDiscussDTO);
+    /**
+     * 议事投票-分页查询 小程序 -脱敏
+     *
+     * @param pageComActDiscussDTO
+     *            查询参数
+     * @return ComActDiscussVO 分页
+     */
+    @PostMapping("pagediscussappletsdesensitize")
+    R pageDiscussAppletsDesensitize(@RequestBody PageComActDiscussDTO pageComActDiscussDTO);
+
+    /**
+     * 议事投票-点赞、取消点赞
+     *
+     * @param comActDiscussUserDTO
+     *            操作类型
+     * @return 操作结果
+     */
+    @PostMapping("putdiscussuser")
+    R putDiscussUser(@RequestBody ComActDiscussUserDTO comActDiscussUserDTO);
+
+    /**
+     * 议事投票-评论-分页查询 小程序
+     *
+     * @param pageComActDiscussCommentDTO
+     *            分页参数
+     * @return ComActDiscussCommentVO
+     */
+    @PostMapping("pagediscusscommentapplets")
+    R pageDiscussCommentApplets(@RequestBody PageComActDiscussCommentDTO pageComActDiscussCommentDTO);
+
+
+    /**
+     * 议事投票-评论-删除 小程序
+     *
+     *            分页参数
+     * @return ComActDiscussCommentVO
+     */
+    @GetMapping("deleteCommentApplets")
+    R deleteCommentApplets(@RequestParam("id") String id);
+
+    /**
+     * 议事投票-评论-分页查询 小程序 脱敏
+     *
+     * @param pageComActDiscussCommentDTO
+     *            分页参数
+     * @return ComActDiscussCommentVO
+     */
+    @PostMapping("pagediscusscommentappletsdesensitize")
+    R pageDiscussCommentAppletsDesensitize(@RequestBody PageComActDiscussCommentDTO pageComActDiscussCommentDTO);
+
+    /**
+     * 议事投票-详情 小程序
+     *
+     * @param id
+     *            主键
+     * @param userId
+     *            登录用户主键
+     * @return ComActDiscussVO
+     */
+    @PostMapping("detaildiscussapplets")
+    R detailDiscussApplets(@RequestParam("id") Long id, @RequestParam("userId") Long userId);
+    /**
+     * 议事投票-详情 小程序
+     *
+     * @param id
+     *            主键
+     * @param userId
+     *            登录用户主键
+     * @return ComActDiscussVO
+     */
+    @PostMapping("detaildiscussappletsdesensitize")
+    R detailDiscussAppletsDesensitize(@RequestParam("id") Long id, @RequestParam("userId") Long userId);
+
+    /**
+     * 议事投票-投票
+     *
+     * @param discussVoteOptionDTO
+     *            投票信息
+     * @return 投票结果
+     */
+    @PostMapping("adddiscussoptionuser")
+    R addDiscussOptionUser(@RequestBody DiscussVoteOptionDTO discussVoteOptionDTO);
+
+    /**
+     * 议事投票-评论-点赞、取消点赞
+     *
+     * @param comActDiscussUserDTO
+     *            评论点赞
+     * @return 点赞结果
+     */
+    @PostMapping("putdiscusscommentuser")
+    R putDiscussCommentUser(@RequestBody ComActDiscussCommentUserDTO comActDiscussUserDTO);
+
+    /**
+     * 分页查询广告
+     *
+     * @param pageComOpsAdvDTO
+     *            查询内容
+     * @return 查询结果 ComOpsAdvVO
+     */
+    @PostMapping("pageadvertisement")
+    R pageAdvertisement(@RequestBody PageComOpsAdvDTO pageComOpsAdvDTO);
+
+    /**
+     * 广告详情
+     *
+     * @param id
+     *            主键
+     * @return 广告内容
+     */
+    @PostMapping("detailadvertisement")
+    R detailAdvertisement(@RequestParam("id") Long id);
+
+    /**
+     * 删除广告
+     *
+     * @param id
+     *            主键
+     * @return 删除结果
+     */
+    @PostMapping("deleteadvertisement")
+    R deleteAdvertisement(@RequestParam("id") Long id);
+
+    /**
+     * 查询城市下属所有地区列表
+     *
+     * @param cityAdcode
+     *            城市地址编码
+     * @return 地区列表
+     */
+    @PostMapping("listareadistrict")
+    R listAreaDistrict(@RequestParam("cityAdcode") Long cityAdcode);
+
+    /**
+     * 首页图表数据汇总
+     *
+     * @param communityId
+     *            社区id
+     * @return 图表数据
+     */
+    @PostMapping("indexdatacommunitybackstageechart")
+    R indexDataCommunityBackstageEchart(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 选择导入的小区
+     *
+     * @param param
+     *            小区名字 模糊查询
+     * @param communityId
+     *            社区id
+     * @return 小区集合 ComMngStructAreaVO
+     */
+    @PostMapping("listareas")
+    R listAreas(@RequestParam("param") String param, @RequestParam("communityId") Long communityId);
+
+    /**
+     * 检查小区是否已经批量设置过房屋并且返回小区房屋门号规则
+     *
+     * @param id
+     *            小区id
+     * @return ComMngStructAreaVO
+     */
+    @PostMapping("checkAreaHouse")
+    R checkAreaHouse(@RequestParam("id") Long id);
+
+    /**
+     * 新增留言
+     *
+     * @param comActMessageVO
+     *            新增留言信息
+     * @return 发布结果
+     */
+    @PostMapping("addmessage")
+    R addMessage(@RequestBody ComActMessageVO comActMessageVO);
+
+    /**
+     * 我的留言
+     *
+     * @param comActMessageVO
+     *            留言信息
+     * @return 发布结果
+     */
+    @PostMapping("pagemymessage")
+    R pageMyMessageApplets(@RequestBody ComActMessageVO comActMessageVO);
+
+    /**
+     * 给我的留言
+     *
+     * @param comActMessageVO
+     *            留言信息
+     * @return 发布结果
+     */
+    @PostMapping("pagesendtomemessage")
+    R pageSendToMessageApplets(@RequestBody ComActMessageVO comActMessageVO);
+
+    /**
+     * 新增留言回复
+     *
+     * @param comActMessageBackVO
+     *            保存留言回复信息
+     * @return 发布结果
+     */
+    @PostMapping("addmessageback")
+    R addMessageBack(@RequestBody ComActMessageBackVO comActMessageBackVO);
+
+    /**
+     * 根据id查询留言列表
+     *
+     * @return 发布结果
+     */
+    @PostMapping("pagemessagebyuser")
+    R pageMessageByUser(@RequestBody ComActMessageVO comActMessageVO);
+
+    /**
+     * 根据id删除留言
+     *
+     * @return 删除结果
+     */
+    @PostMapping("deletemessage")
+    R deleteMessage(@RequestBody ComActMessageVO comActMessageVO);
+
+    /**
+     * 根据id集合批量设置是否公开
+     *
+     * @return 删除结果
+     */
+    @PostMapping("resetmessagepublic")
+    R resetMessagePublic(@RequestBody ResetComActMessageVO resetComActMessageVO);
+
+    /**
+     * 分页显示社区所有留言
+     *
+     * @param comActMessageVO
+     *            留言信息
+     * @return 结果集合
+     */
+    @PostMapping("pagemycommunitymessage")
+    R pageMyCommunityMessage(@RequestBody ComActMessageVO comActMessageVO);
+
+    /**
+     * 根据id查找留言详情
+     *
+     * @param id
+     * @return
+     */
+    @PostMapping("detailmessage")
+    R detailMessage(@RequestParam("id") Long id);
+
+    /**
+     * 小程序通过便民服务区域分页查询便民服务商家
+     *
+     * @param comCvtBusinessAppletsDTO
+     *            查询参数
+     * @return 返回结果
+     */
+    @PostMapping("/convenient/business/area/page")
+    R pageComCvtBusinessByServiceArea(@RequestBody PageComCvtBusinessAppletsDTO comCvtBusinessAppletsDTO);
+
+    /**
+     * 议事投票-新增
+     *
+     * @param comOpsHouseDTO
+     *            新增参数
+     * @return 新增结果
+     */
+    @PostMapping("addOpsHouse")
+    R addOpsHouse(@RequestBody ComOpsHouseDTO comOpsHouseDTO);
+
+    /**
+     * 议事投票-详情
+     *
+     * @param id
+     *            主键
+     * @return ComOpsHouseVO
+     */
+    @PostMapping("detailOpsHouse")
+    R detailOpsHouse(@RequestParam("id") Long id);
+
+    /**
+     * 房屋租售-修改
+     *
+     * @param comOpsHouseVO
+     *            修改参数
+     * @return 修改结果
+     */
+    @PostMapping("/putOpsHouse")
+    R putOpsHouse(@RequestBody ComOpsHouseVO comOpsHouseVO);
+
+    /**
+     * 房屋租售-小程序修改
+     *
+     * @param comOpsHouseVO
+     *            修改参数
+     * @return 修改结果
+     */
+    @PostMapping("/putOpsHouseByApplets")
+    R putOpsHouseByApplets(@RequestBody ComOpsHouseVO comOpsHouseVO);
+
+    /**
+     * 房屋租售-上下架
+     *
+     * @param comOpsHouseVO
+     *            上下架参数
+     * @return 上下架结果
+     */
+    @PostMapping("/undercarriageHouse")
+    R undercarriageHouse(@RequestBody ComOpsHouseUndercarriageVO comOpsHouseVO);
+
+    /**
+     * 议事投票-删除
+     *
+     * @param id
+     *            主键
+     * @return 删除结果
+     */
+    @PostMapping("deleteOpsHouse")
+    R deleteOpsHouse(@RequestParam("id") Long id);
+
+    /**
+     * 房屋租售-分页查询
+     *
+     * @param pageComOpsHouseDTO
+     *            查询参数
+     * @return ComOpsHouseVO
+     */
+    @PostMapping("pageOpsHouse")
+    R pageOpsHouse(@RequestBody PageComOpsHouseDTO pageComOpsHouseDTO);
+
+    /**
+     * 社区后台分页查询便民服务商家
+     *
+     * @param pageComCvtBusinessDTO
+     *            查询参数
+     * @return 返回结果
+     */
+    @PostMapping("/convenient/business/page")
+    R pageComCvtBusiness(@RequestBody PageComCvtBusinessDTO pageComCvtBusinessDTO);
+
+    /**
+     * 添加便民服务商家信息
+     *
+     * @param comCvtBusinessDTO
+     * @return
+     */
+    @PostMapping("/convenient/business/add")
+    R addComCvtBusiness(ComCvtBusinessDTO comCvtBusinessDTO);
+
+    /**
+     * 编辑便民服务商家
+     *
+     * @param comCvtBusinessDTO
+     *            商家参数
+     * @return 返回结果
+     */
+    @PutMapping("/convenient/business/put")
+    R putComCvtBusiness(@RequestBody ComCvtBusinessDTO comCvtBusinessDTO);
+
+    /**
+     * 查询便民服务商家详情
+     *
+     * @param id
+     *            商家主键
+     * @return 返回结果
+     */
+    @GetMapping("/convenient/business/get")
+    R getComCvtBusiness(@RequestParam("id") Long id);
+
+    /**
+     * 删除便民服务商家信息
+     *
+     * @param id
+     *            商家主键
+     * @return 返回结果
+     */
+    @DeleteMapping("/convenient/business/delete")
+    R deleteComCvtBusiness(@RequestParam("id") Long id);
+
+    /**
+     * 社区后台分页查询便民服务分类
+     *
+     * @param pageComCvtCategoryDTO
+     *            查询参数
+     * @return 返回结果
+     */
+    @PostMapping("/convenient/category/page")
+    R pageComCvtCategory(@RequestBody PageComCvtCategoryDTO pageComCvtCategoryDTO);
+
+    /**
+     * 社区后台分页查询便民服务分类
+     *
+     * @return 返回结果
+     */
+    @PostMapping("/convenient/category/all")
+    R allComCvtCategory();
+
+    /**
+     * 新增便民服务分类
+     *
+     * @param comCvtCategoryDTO
+     *            分类参数
+     * @return 返回结果
+     */
+    @PostMapping("/convenient/category/add")
+    R addComCvtCategory(@RequestBody ComCvtCategoryDTO comCvtCategoryDTO);
+
+    /**
+     * 编辑便民服务分类
+     *
+     * @param comCvtCategoryDTO
+     *            分类参数
+     * @return 返回结果
+     */
+    @PutMapping("/convenient/category/put")
+    R putComCvtCategory(@RequestBody ComCvtCategoryDTO comCvtCategoryDTO);
+
+    /**
+     * 查询便民服务分类详情
+     *
+     * @param id
+     *            分类主键
+     * @return 返回结果
+     */
+    @GetMapping("/convenient/category/get")
+    R getComCvtCategory(@RequestParam("id") Long id);
+
+    /**
+     * 删除便民服务分类信息
+     *
+     * @param id
+     *            分类主键
+     * @return 返回结果
+     */
+    @DeleteMapping("/convenient/category/delete")
+    R deleteComCvtCategory(@RequestParam("id") Long id);
+
+    /**
+     * 社区后台分页查询便民服务
+     *
+     * @param pageComCvtServeDTO
+     *            查询参数
+     * @return 返回结果
+     */
+    @PostMapping("/convenient/serve/page")
+    R pageComCvtServe(@RequestBody PageComCvtServeDTO pageComCvtServeDTO);
+
+    /**
+     * 新增便民服务
+     *
+     * @param comCvtServeDTO
+     *            参数
+     * @return 返回结果
+     */
+    @PostMapping("/convenient/serve/add")
+    R addComCvtServe(@RequestBody ComCvtServeDTO comCvtServeDTO);
+
+    /**
+     * 编辑便民服务
+     *
+     * @param comCvtServeDTO
+     *            分类参数
+     * @return 返回结果
+     */
+    @PutMapping("/convenient/serve/put")
+    R putComCvtServe(@RequestBody ComCvtServeDTO comCvtServeDTO);
+
+    /**
+     * 查询便民服务详情
+     *
+     * @param id
+     *            服务主键
+     * @return 返回结果
+     */
+    @GetMapping("/convenient/serve/get")
+    R getComCvtServe(@RequestParam("id") Long id);
+
+    /**
+     * 删除便民服务信息
+     *
+     * @param id
+     *            服务主键
+     * @return 返回结果
+     */
+    @DeleteMapping("/convenient/serve/delete")
+    R deleteComCvtServe(@RequestParam("id") Long id);
+
+    /**
+     * 小程序便民服务商家详情
+     *
+     * @param id
+     *            商家ID
+     * @return
+     */
+    @GetMapping("/convenient/business/serve/get")
+    R getComCvtBusinessServeDetail(@RequestParam("id") Long id);
+
+    /**
+     * 批量导入便民服务
+     *
+     * @param list
+     *            便民服务集合
+     */
+    @PostMapping("/convenient/serve/import")
+    R listSaveConvenientServeExcelVO(@RequestBody List<ComCvtServeExcelVO> list,
+                                     @RequestParam(value = "communityId", required = false) Long communityId);
+
+    /**
+     * 导出房屋信息
+     *
+     * @param areaId
+     * @return
+     */
+    @PostMapping("/house/export")
+    R houseExport(@RequestParam("areaId") Long areaId);
+
+    /**
+     * 小程序添加车辆信息
+     *
+     * @param comCvtBusinessDTO
+     * @return
+     */
+    @PostMapping("/common/data/car/user/register")
+    R addComMngCarApplet(@RequestBody ComMngCarAppletDTO comCvtBusinessDTO);
+
+    /**
+     * 小程序用户登记车辆列表
+     *
+     * @param userId
+     * @return
+     */
+    @GetMapping("/common/data/car/user/list")
+    R userComMngCarList(@RequestParam("userId") Long userId);
+
+    @PostMapping("/common/data/car/page")
+    R pageQueryComMngCar(@RequestBody PageComMngCarDTO pageComMngCarDTO);
+
+    @PostMapping("/common/data/car/save")
+    R saveComMngCar(@RequestBody ComMngCarSaveDTO comMngCarSaveDTO);
+
+    /**
+     * 删除车辆信息
+     *
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/common/data/car/delete")
+    R deleteComMngCar(@RequestParam(value = "id") Long id);
+
+    /**
+     * 批量导入便民服务
+     *
+     * @param list
+     *            便民服务集合
+     */
+    @PostMapping("/common/data/car/import")
+    R listSaveMngCarExcelVO(@RequestBody List<ComMngCarExcelVO> list, @RequestParam("communityId") Long communityId);
+
+    /**
+     * 车辆导出
+     *
+     * @param exportComMngCarExcelDTO
+     * @return
+     */
+    @PostMapping("/common/data/car/export")
+    R exportRealCar(@RequestBody ExportComMngCarExcelDTO exportComMngCarExcelDTO);
+
+    /**
+     * 社区后台实有单位管理列表
+     *
+     * @param pageComMngRealCompanyDTO
+     * @return
+     */
+    @PostMapping("/common/data/company/page")
+    R pageQueryComMngRealCompany(@RequestBody PageComMngRealCompanyDTO pageComMngRealCompanyDTO);
+
+    /**
+     * 社区后台实有单位统计
+     *
+     * @param communityId
+     *            社区id
+     * @return 统计结果
+     */
+    @PostMapping("/common/data/company/statistics")
+    R getComMngRealCompanyTotalByAdmin(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 社区后台添加修改实有单位
+     *
+     * @param comMngRealCompanyVO
+     * @return
+     */
+    @PostMapping("/common/data/company/save")
+    R saveComMngRealCompany(@RequestBody ComMngRealCompanyVO comMngRealCompanyVO);
+
+    /**
+     * 社区后台删除实有单位
+     *
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/common/data/company/delete")
+    R deleteComMngRealCompany(@RequestParam(value = "id") Long id);
+
+    /**
+     * 实有单位详情
+     *
+     * @param id
+     * @return
+     */
+    @GetMapping("/common/data/company/detail")
+    R detailComMngRealCompany(@RequestParam(value = "id") Long id);
+
+    /**
+     * 批量导入实有单位
+     *
+     * @param list
+     *            实有单位集合
+     */
+    @PostMapping("/common/data/company/import")
+    R listSaveMngRealCompanyExcelVO(@RequestBody List<ComMngRealCompanyExcelVO> list,
+                                    @RequestParam("communityId") Long communityId);
+
+    /**
+     * 实有单位导出
+     *
+     * @param exportRealCompanyExcelDTO
+     * @return
+     */
+    @PostMapping("/common/data/company/export")
+    R exportRealCompany(ExportRealCompanyExcelDTO exportRealCompanyExcelDTO);
+
+    /**
+     * 社区后台实有单位管理列表
+     *
+     * @param pageComMngRealAssetsDTO
+     * @return
+     */
+    @PostMapping("/common/data/assets/page")
+    R pageQueryComMngRealAssets(@RequestBody PageComMngRealAssetsDTO pageComMngRealAssetsDTO);
+
+    /**
+     * 社区后台添加修改实有单位
+     *
+     * @param comMngRealAssetsVO
+     * @return
+     */
+    @PostMapping("/common/data/assets/save")
+    R saveComMngRealAssets(@RequestBody ComMngRealAssetsVO comMngRealAssetsVO);
+
+    /**
+     * 社区后台删除实有单位
+     *
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/common/data/assets/delete")
+    R deleteComMngRealAssets(@RequestParam(value = "id") Long id);
+
+    /**
+     * 实有单位详情
+     *
+     * @param id
+     * @return
+     */
+    @GetMapping("/common/data/assets/detail")
+    R detailComMngRealAssets(@RequestParam(value = "id") Long id);
+
+    /**
+     * 批量导入实有单位
+     *
+     * @param list
+     *            实有单位集合
+     */
+    @PostMapping("/common/data/assets/import")
+    R listSaveMngRealAssetsExcelVO(@RequestBody List<ComMngRealAssetsExcelVO> list,
+                                   @RequestParam("communityId") Long communityId);
+
+    /**
+     * 实有单位导出
+     *
+     * @param exportRealAssetsExcelDTO
+     * @return
+     */
+    @PostMapping("/common/data/assets/export")
+    R exportRealAssets(ExportRealAssetsExcelDTO exportRealAssetsExcelDTO);
+
+    /**
+     * 查询所有省份
+     *
+     * @return
+     */
+    @GetMapping("/common/data/province")
+    R getProvince();
+
+    /**
+     * 查询省份下所有的城市
+     *
+     * @param provinceAdcode
+     * @return
+     */
+    @GetMapping("/common/data/city")
+    R getCityByProvinceCode(@RequestParam(value = "provinceAdcode") Integer provinceAdcode);
+
+    /**
+     * 查询城市下所有的区县
+     *
+     * @param cityAdcode
+     * @return
+     */
+    @GetMapping("/common/data/district")
+    R getDistrictByCityCode(@RequestParam(value = "cityAdcode") Integer cityAdcode);
+
+    /**
+     * 查询省下所有区域 tree结构
+     *
+     * @param provinceAdcode
+     *            省份code
+     * @param areaCode
+     * @return 查询结果
+     */
+    @GetMapping("/common/data/area/all")
+    R getCityTreeByProvinceCode(@RequestParam(value = "provinceAdcode") Integer provinceAdcode, @RequestParam(value = "areaCode", required = false) String areaCode);
+
+    /**
+     * 查询省下所有区域 tree结构
+     *
+     * @param provinceAdcode
+     *            省份code
+     * @param areaCode
+     * @return 查询结果
+     */
+    @GetMapping("/common/data/area/basiclevel")
+    R getCityTreeByCode(@RequestParam(value = "provinceAdcode") Integer provinceAdcode,
+                        @RequestParam(value = "areaCode", required = false) String areaCode,
+                        @RequestParam(value = "appId", required = false) String appId);
+
+    /**
+     * 分页查询街道
+     *
+     * @param pageComStreetDTO
+     *            查询条件
+     * @return 查询结果
+     */
+    @PostMapping("/pagestreet")
+    R pageStreet(@RequestBody PageComStreetDTO pageComStreetDTO);
+
+    /**
+     * 新增街道
+     *
+     * @param comStreetVOO
+     *            需要新增的街道数据
+     * @return 新增结果
+     */
+    @PostMapping("/addstreet")
+    R addStreet(@RequestBody ComStreetVO comStreetVOO);
+
+    /**
+     * 删除街道
+     *
+     * @param Ids
+     *            需要删除街道id集合
+     * @return 删除结果
+     */
+    @PostMapping("/deletestreet")
+    R delectStreat(@RequestBody List<Long> Ids);
+
+    /**
+     * 查询街道
+     *
+     * @param comStreetVO
+     *            查询条件
+     * @return 返回结果
+     */
+    @PostMapping("/liststreet")
+    R listStreet(ComStreetVO comStreetVO);
+
+    /**
+     * 分页查询实有房屋
+     *
+     * @param pageComMngVillageDTO
+     *            查询条件
+     * @return 返回结果
+     */
+    @PostMapping("/pagevillage")
+    R pageVillage(@RequestBody PageComMngVillageDTO pageComMngVillageDTO);
+
+    /**
+     * 新增实有房屋
+     *
+     * @param comMngVillageVO
+     *            新增的实有房屋数据
+     * @return 新增结果
+     */
+    @PostMapping("/addvillage")
+    R addVillage(@RequestBody ComMngVillageVO comMngVillageVO);
+
+    /**
+     * 删除实有房屋
+     *
+     * @param Ids
+     *            需要删除的id集合
+     * @return 删除结果
+     */
+    @PostMapping("/deletevillage")
+    R delectVillage(@RequestBody List<Long> Ids);
+
+    /**
+     * 查询实有房屋
+     *
+     * @param comMngVillageVO
+     *            查询条件
+     * @return 查询结果
+     */
+    @PostMapping("/listvillage")
+    R listVillage(ComMngVillageVO comMngVillageVO);
+
+    /**
+     * 根据房屋id查询实有房屋
+     *
+     * @param villageId
+     *            查询条件
+     * @return 查询结果
+     */
+    @PostMapping("/getVillageById")
+    R getVillageById(@RequestParam(value = "villageId") Long villageId);
+
+    /**
+     * 批量导入实有房屋
+     *
+     * @param list
+     *            实有房屋数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    @PostMapping("/village/import")
+    R listSaveVillageServeExcelVO(@RequestBody List<ComMngVillageServeExcelVO> list,
+                                  @RequestParam(value = "communityId") Long communityId);
+
+    /**
+     * 批量导入实有人口
+     *
+     * @param list
+     *            实有人口数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    @PostMapping("/common/data/population/import")
+    R listSavePopulationServeExcelVO(@RequestBody List<ComMngPopulationServeExcelVO> list,
+                                     @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
+
+    /**
+     * 批量导入吸毒人员
+     *
+     * @param list
+     *            吸毒人员数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    @PostMapping("/common/data/population/importDrug")
+    R listSavePopulationDrugExcelVO(@RequestBody List<ComMngPopulationDrugExcelVO> list,
+                                    @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
+
+    /**
+     * 批量导入社区矫正人员
+     *
+     * @param list
+     *            社区矫正人员数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    @PostMapping("/common/data/population/importCorrect")
+    R listSavePopulationCorrectExcelVO(@RequestBody List<ComMngPopulationCorrectExcelVO> list,
+                                       @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
+
+    /**
+     * 批量导入重精人员
+     *
+     * @param list
+     *            重精人员数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    @PostMapping("/common/data/population/importMajor")
+    R listSavePopulationMajorExcelVO(@RequestBody List<ComMngPopulationMajorExcelVO> list,
+                                     @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
+
+    /**
+     * 批量导入邪教人员
+     *
+     * @param list
+     *            邪教人员数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    @PostMapping("/common/data/population/importCult")
+    R listSavePopulationCultExcelVO(@RequestBody List<ComMngPopulationCultExcelVO> list,
+                                    @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
+
+    /**
+     * 批量导入刑释人员
+     *
+     * @param list
+     *            刑释人员数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    @PostMapping("/common/data/population/importRehabilitation")
+    R listSavePopulationRehabilitationExcelVO(@RequestBody List<ComMngPopulationRehabilitationExcelVO> list,
+                                              @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
+
+    /**
+     * 批量导入重点上访人员
+     *
+     * @param list
+     *            重点上访人员数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    @PostMapping("/common/data/population/importKey")
+    R listSavePopulationKeyExcelVO(@RequestBody List<ComMngPopulationKeyExcelVO> list,
+                                   @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
+
+    /**
+     * 批量导入服刑人员
+     *
+     * @param list
+     *            服刑人员数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    @PostMapping("/common/data/population/importSentence")
+    R listSavePopulationSentenceExcelVO(@RequestBody List<ComMngPopulationSentenceExcelVO> list,
+                                        @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
+
+    /**
+     * 批量导入退役军人
+     *
+     * @param list
+     *            退役军人数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    @PostMapping("/common/data/population/importVeterans")
+    R listSavePopulationVeteransExcelVO(@RequestBody List<ComMngPopulationVeteransExcelVO> list,
+                                        @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
+
+    /**
+     * 批量导入残疾人
+     *
+     * @param list
+     *            残疾人数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    @PostMapping("/common/data/population/importDisability")
+    R listSavePopulationDisabilityExcelVO(@RequestBody List<ComMngPopulationDisabilityExcelVO> list,
+                                          @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
+
+    /**
+     * 批量导入低保户
+     *
+     * @param list
+     *            低保户数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    @PostMapping("/common/data/population/importLowSecurity")
+    R listSavePopulationLowSecurityExcelVO(@RequestBody List<ComMngPopulationLowSecurityExcelVO> list,
+                                           @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);
+
+    /**
+     * 确认导入实有人口(有则更新,无则新建)
+     *
+     * @param list
+     *            用户信息
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    @PostMapping("/common/data/population/import/confirm")
+    R listSavePopulationConfirm(@RequestBody List<ComMngPopulationServeExcelVO> list,
+                                @RequestParam(value = "communityId") Long communityId);
+
+    /**
+     * 分页查询实有人口
+     *
+     * @param comMngPopulationVO
+     *            查询参数
+     * @return 分页集合
+     */
+    @PostMapping("/common/data/population/page")
+    R pagePopulation(ComMngPopulationDTO comMngPopulationVO);
+
+    /**
+     * 导出老人
+     *
+     * @param comMngPopulationVO
+     *            查询参数
+     * @return 分页集合
+     */
+    @PostMapping("/common/data/population/exportOld")
+    R exportOld(ComMngPopulationDTO comMngPopulationVO);
+
+
+    /**
+     * 根据身份证查询实有人口信息
+     */
+    @GetMapping("/common/data/population/selectByIdCard")
+    R selectByIdCard(@RequestParam("idCard") String idCard);
+
+    /**
+     * 根据id实有人口详细信息
+     *
+     * @param populationId
+     *            实有人口id
+     * @return 实有人口详细信息
+     */
+    @PostMapping("/common/data/population/detail")
+    R<ComMngPopulationVO> detailPopulation(@RequestParam(value = "populationId") Long populationId, @RequestParam(value = "communityId") Long communityId);
+
+    /**
+     * 根据id查询实有人口电子档案信息
+     *
+     * @param populationId
+     *            实有人口id
+     * @return 实有人口电子档信息
+     */
+    @PostMapping("/common/data/population/electronicArchives")
+    R electronicArchivesPopulation(@RequestParam(value = "populationId") Long populationId);
+
+    /**
+     * 根据id修改实有人口标签列表
+     *
+     * @param populationTagDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    @PostMapping("/common/data/population/editTag")
+    R editTagPopulation(ComMngPopulationTagDTO populationTagDTO);
+
+    /**
+     * 批量删除实有人口
+     *
+     * @param ids
+     *            实有人口id集合
+     * @return 删除结果
+     */
+    @PostMapping("/common/data/population/delete")
+    R deletePopulations(@RequestBody List<Long> ids,@RequestParam("communityId") Long communityId);
+
+    /**
+     * 根据社区id查询所有实有人口
+     *
+     * @param communityId
+     *            社区id
+     * @return 查询结果
+     */
+    @PostMapping("/common/data/population/getAll")
+    R getPopulationListByCommunityId(@RequestParam(value = "communityId") Long communityId);
+
+    /**
+     * 根据id集合查询实有人口
+     *
+     * @param Ids
+     *            实有人口id集合
+     * @return 查询结果
+     */
+    @PostMapping("/common/data/population/getList")
+    R getPopulationLists(@RequestBody List<Long> Ids);
+
+    /**
+     * 根据小区id查询实有人口
+     *
+     * @param villageId
+     *            小区id
+     * @return 查询结果
+     */
+    @PostMapping("/common/data/population/getListByVillageId")
+    R getPopulationListByVillageId(@RequestParam("villageId") Long villageId);
+
+    /**
+     * 创建调查问卷
+     *
+     * @param questnaireVO
+     * @return
+     */
+    @PostMapping("/questnaire/addquestnaire")
+    R addQuestnaire(@RequestBody QuestnaireVO questnaireVO);
+
+    /**
+     * 小程序-社区问卷列表
+     *
+     * @param pageQuestnaireDTO
+     *            请求参数
+     * @return 社区问卷列表
+     */
+    @PostMapping("/questnaire/pagequestnaire")
+    R pageQuestnaire(@RequestBody PageQuestnaireDTO pageQuestnaireDTO);
+
+    /**
+     * 社区后台-社区问卷列表
+     *
+     * @param pageQuestnaireDTO
+     *            请求参数
+     * @return 社区问卷列表
+     */
+    @PostMapping("/questnaire/admin/pagequestnaire")
+    R pageQuestnaireAdmin(@RequestBody PageQuestnaireDTO pageQuestnaireDTO);
+
+    /**
+     * 编辑问卷——问卷、题目、选项
+     *
+     * @param questnaireVO
+     * @return
+     */
+    @PostMapping("/questnaire/editquestnaire")
+    R editQuestnaire(@RequestBody QuestnaireVO questnaireVO);
+
+    /**
+     * 修改问卷状态
+     *
+     * @param editComActQuestnaireVo
+     * @return
+     */
+    @PostMapping("/questnaire/editquestnairedo")
+    R editQuestnaireDO(@RequestBody EditComActQuestnaireVo editComActQuestnaireVo);
+
+    /**
+     * 删除问卷 ——隐藏
+     *
+     * @param questId
+     *            调查问卷Id
+     * @return
+     */
+    @PostMapping("/questnaire/deletequestnaire")
+    R editQuestnaireDO(@RequestParam("questId") Long questId, @RequestParam("userId") Long userId);
+
+    /**
+     * 问卷答题结果
+     *
+     * @param questId
+     *            问卷ID
+     */
+    @PostMapping("/questnaire/answerslist")
+    R answerResultList(@RequestParam("questId") Long questId);
+
+    /**
+     * 问卷调查详细
+     *
+     * @param questId
+     *            问卷ID
+     * @return 用户问卷调查详细
+     */
+    @GetMapping("/questnaire/view")
+    R view(@RequestParam("userId") Long userId, @RequestParam("questId") Long questId);
+
+    /**
+     * 小程序-问卷调查详情
+     *
+     * @param userId
+     *            用户id
+     * @param questId
+     *            问卷id
+     * @return 问卷调查详情
+     */
+    @GetMapping("/questnaire/view/detail")
+    R viewDetail( @RequestParam("questId") Long questId,@RequestParam("userId") Long userId);
+
+    /**
+     * 小程序-新增问卷调查浏览数量
+     *
+     * @param questId
+     *            问卷调查id
+     * @return 增加结果
+     */
+    @GetMapping("/questnaire/add/view")
+    R addView(@RequestParam("questId") Long questId);
+
+    /**
+     * 小程序-用户弹窗添加不在提醒接口
+     *
+     * @param questId
+     *            问卷id
+     * @param userId
+     *            用户id
+     * @return 添加结果
+     */
+    @GetMapping("/questnaire/add/noNotice")
+    R addNoNotice(@RequestParam("questId") Long questId, @RequestParam("userId") Long userId);
+
+    /**
+     * 社区后台-查询问卷调查详情
+     *
+     * @param questId
+     *            问卷id
+     * @return 问卷调查详情
+     */
+    @GetMapping("/questnaire/admin/detail")
+    R QuesDetail(@RequestParam("questId") Long questId);
+
+    /**
+     * 用户问卷调查详细
+     *
+     * @param userId
+     *            用户ID
+     * @param questId
+     *            问卷ID
+     * @return 用户问卷调查详细
+     */
+    @GetMapping("/questnaire/usersanswer")
+    R answerInfoQuestnaire(@RequestParam("userId") Long userId, @RequestParam("questId") Long questId);
+
+    /**
+     * 查看用户问卷调查统计信息
+     *
+     * @param questId
+     *            问卷ID
+     * @return 用户问卷调查统计信息
+     */
+    @GetMapping("/questnaire/stat")
+    R statistics(@RequestParam("questId") Long questId);
+
+    /**
+     * 问卷题目 答卷信息
+     *
+     * @param pageQuestnaireSubDetailsDTO
+     *            问卷ID
+     */
+    @PostMapping("/questnaire/qaqeustanswerdetails")
+    R qaQeustAnswerDetails(@RequestBody PageQuestnaireSubDetailsDTO pageQuestnaireSubDetailsDTO);
+
+    /**
+     * 社区问卷分页
+     *
+     * @param pageQuestnaireAnswerDTO
+     *            社区问卷分页参数
+     * @return 分页数据
+     */
+    @PostMapping("/questnaire/pagequestnaireanswer")
+    R pageQuestnaireAnswer(@RequestBody PageQuestnaireAnswerDTO pageQuestnaireAnswerDTO);
+
+    /**
+     * 居民填写问卷调查问卷
+     *
+     * @param usersAnswerQuestnaireVO
+     *            填写情况
+     */
+    @PostMapping("/questnaire/usersanswequestnaire")
+    R usersAnsweQuestnaire(@RequestBody UsersAnswerQuestnaireVO usersAnswerQuestnaireVO);
+
+    /**
+     * 店铺列表-分页查询
+     *
+     * @param pageComShopStoreDTO
+     *            分页条件
+     */
+    @PostMapping("/shop/pageShopStore")
+    R pageStoreList(@RequestBody PageComShopStoreDTO pageComShopStoreDTO);
+
+    /**
+     * 保存店铺
+     *
+     * @param storeVO
+     *            数据
+     */
+    @PostMapping("/shop/saveStore")
+    R saveStore(@RequestBody ShopStoreVO storeVO);
+
+    /**
+     * 新增店铺
+     *
+     * @param storeVO
+     *            店铺信息
+     * @return 新增结果
+     */
+    @PostMapping("/shop/addStore")
+    R addStore(@RequestBody ShopStoreVO storeVO);
+
+    /**
+     * 编辑店铺、启用、禁用
+     *
+     * @param storeVO
+     *            数据
+     * @param id
+     *            商铺id
+     */
+    @PostMapping("/shop/editStore/{id}")
+    R editStore(@RequestBody ShopStoreVO storeVO, @PathVariable("id") Long id);
+
+    /**
+     * 删除店铺
+     *
+     * @param id
+     *            商铺id
+     */
+    @PostMapping("/shop/deleteStore")
+    R deleteStore(@RequestBody Long[] id);
+
+    /**
+     * 获取详情
+     *
+     * @param id
+     *            商铺id
+     */
+    @GetMapping("/shop/getStoreInfo")
+    R getStoreInfo(@RequestParam("id") Long id);
+
+    /**
+     * 商品列表-分页查询
+     *
+     * @param pageComShopGoodsDTO
+     *            添加数据
+     */
+    @PostMapping("/shop/pageGoods")
+    R pageGoodsList(@RequestBody PageComShopGoodsDTO pageComShopGoodsDTO);
+
+    /**
+     * 新增商品
+     *
+     * @param addShopGoodsVO
+     * @return
+     */
+    @PostMapping("/shop/saveShopGoods")
+    R saveShopGoods(@RequestBody AddShopGoodsVO addShopGoodsVO);
+
+    /**
+     * 编辑商品
+     *
+     * @param id
+     * @param addShopGoodsVO
+     * @return
+     */
+    @PostMapping("/shop/editShopGoods/{id}")
+    R editShopGoods(@PathVariable("id") Long id, @RequestBody AddShopGoodsVO addShopGoodsVO);
+
+    /**
+     * 删除商品
+     *
+     * @param id
+     * @return
+     */
+    @PostMapping("/shop/deleteShopGoods")
+    R deleteShopGoods(@RequestBody Long[] id);
+
+    /**
+     * 修改商品状态
+     *
+     * @param id
+     * @return
+     */
+    @GetMapping("/shop/changeShopGoodsStatus")
+    R changeStatus(@RequestParam("id") Long id, @RequestParam("status") Integer status);
+
+    /**
+     * 商品列表-分页查询
+     *
+     * @param pageComShopGoodsDTO
+     *            添加数据
+     */
+    @PostMapping("/shopFlower/pageGoods")
+    R pageFlowerGoodsList(@RequestBody PageComShopFlowerGoodsDTO pageComShopGoodsDTO);
+
+    /**
+     * 商品列表-分页查询
+     *
+     * @param comShopFlowerGoodsDTO
+     *            添加数据
+     */
+    @PostMapping("/shopFlower/pageShopFlowerGoodsByApp")
+    R pageShopFlowerGoodsByApp(@RequestBody  ComShopFlowerGoodsDTO comShopFlowerGoodsDTO);
+
+
+    /**
+     * 新增商品
+     *
+     * @param addShopGoodsVO
+     * @return
+     */
+    @PostMapping("/shopFlower/saveShopGoods")
+    R saveFlowerShopGoods(@RequestBody AddShopFlowerGoodsVO addShopGoodsVO);
+
+    /**
+     * 编辑商品
+     *
+     * @param id
+     * @param addShopGoodsVO
+     * @return
+     */
+    @PostMapping("/shopFlower/editShopGoods/{id}")
+    R editFlowerShopGoods(@PathVariable("id") Long id, @RequestBody AddShopFlowerGoodsVO addShopGoodsVO);
+
+    /**
+     * 删除商品
+     *
+     * @param goodsId
+     * @return
+     */
+    @DeleteMapping("/shopFlower/deleteShopGoods")
+    R deleteFlowerShopGoods(@RequestParam("goodsId") Long goodsId);
+
+    /**
+     * 修改商品状态
+     *
+     * @param id
+     * @return
+     */
+    @GetMapping("/shopFlower/changeShopGoodsStatus")
+    R changeFlowerStatus(@RequestParam("id") Long id, @RequestParam("status") Integer status);
+
+    /**
+     * 商品详情
+     *
+     * @param goodsId
+     * @return
+     */
+    @GetMapping("/shopFlower/shopGoodsDetail")
+    R shopFlowerGoodsDetail(@RequestParam("goodsId") Long goodsId);
+
+
+
+    /**
+     * 结果
+     *
+     * @param shopOperlog
+     *            商城后台操作日志
+     */
+    @PostMapping("/shop/addShopOperLog")
+    R addShopOperLog(@RequestBody ShopOperLogVO shopOperlog);
+
+    /**
+     * 分页查询 商家后台操作日志
+     *
+     * @param pageDTO
+     *            分页数据
+     * @return 分页日志
+     */
+    @PostMapping("/shop/pageShopOperLog")
+    R pageShopOperLog(@RequestBody PageDTO pageDTO);
+
+    /**
+     * 订单分页查询
+     *
+     * @param pageComShopOrderSearchDTO
+     *            分页数据
+     * @return 订单分页查询
+     */
+    @PostMapping("/shop/order/page")
+    R pageShopOrder(@RequestBody PageComShopOrderSearchDTO pageComShopOrderSearchDTO);
+
+    /**
+     * 分页查询店铺列表
+     *
+     * @param comShopStoreDTO
+     *            请求参数
+     * @return 店铺列表
+     */
+    @PostMapping("/shop/pageShopStore")
+    R pageShopStore(@RequestBody PageComShopStoreDTO comShopStoreDTO);
+
+    /**
+     * 根据id查询店铺详情
+     *
+     * @param comShopStoreDTO
+     *            请求参数
+     * @return 店铺详情
+     */
+    @PostMapping("/shop/shopStoreDetail")
+    R shopStoreDetail(@RequestBody PageComShopStoreDTO comShopStoreDTO);
+
+    /**
+     * 分页查询商品列表
+     *
+     * @param comShopGoodsDTO
+     *            请求参数
+     * @return 商品列表
+     */
+    @PostMapping("/shop/pageShopGoods")
+    R pageShopGoods(@RequestBody ComShopGoodsDTO comShopGoodsDTO);
+
+    /**
+     * 根据商品id查询商品信息
+     *
+     * @param goodsId
+     *            商品id
+     * @return 商品信息
+     */
+    @PostMapping("/shop/shopGoodsDetail")
+    R shopGoodsDetail(@RequestParam("goodsId") Long goodsId);
+
+    /**
+     * 查询用户购物车列表
+     *
+     * @param userId
+     *            用户id
+     * @return 购物车列表
+     */
+    @PostMapping("/shop/shopCartList")
+    R shopCartList(@RequestParam("userId") Long userId);
+
+    /**
+     * 查询用户购物车数量
+     *
+     * @param userId
+     *            用户id
+     * @return 用户购物车商品数量
+     */
+    @PostMapping("/shop/shopCartUserTotal")
+    R shopCartUserTotal(@RequestParam("userId") Long userId);
+
+    /**
+     * 购物车添加
+     *
+     * @param comShopCartDTO
+     *            请求参数
+     * @return 购物车列表
+     */
+    @PostMapping("/shop/shopAddCart")
+    R shopAddCart(@RequestBody ComShopCartDTO comShopCartDTO);
+
+    /**
+     * 购物车内商品数量修改
+     *
+     * @param shopEditNubCartDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    @PostMapping("/shop/shopEditNubCart")
+    R shopEditNubCart(@RequestBody ComShopEditNubCartDTO shopEditNubCartDTO);
+
+    /**
+     * 删除购物车记录
+     *
+     * @param Ids
+     *            购物车id集合
+     * @return 删除结果
+     */
+    @PostMapping("/shop/shopDelCart")
+    R shopDelCart(@RequestBody List<Long> Ids);
+
+    /**
+     * 分页查询用户收货地址列表
+     *
+     * @param comShopAddressDTO
+     *            请求参数
+     * @return 用户收货地址列表
+     */
+    @PostMapping("/shop/shopUserAddressList")
+    R shopUserAddressList(@RequestBody PageComShopAddressDTO comShopAddressDTO);
+
+    /**
+     * 用户添加收货地址
+     *
+     * @param comShopAddressDTO
+     *            请求参数
+     * @return 添加结果
+     */
+    @PostMapping("/shop/shopAddUserAddress")
+    R shopAddUserAddress(@RequestBody ComShopAddressDTO comShopAddressDTO);
+
+    /**
+     * 用户修改收货地址
+     *
+     * @param comShopAddressDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    @PostMapping("/shop/shopEditUserAddress")
+    R shopEditUserAddress(@RequestBody ComShopAddressDTO comShopAddressDTO);
+
+    /**
+     * 用户删除收货地址
+     *
+     * @param addressId
+     *            收货地址id
+     * @return 删除结果
+     */
+    @PostMapping("/shop/shopDelUserAddress")
+    R shopDelUserAddress(@RequestParam("addressId") Long addressId);
+
+    /**
+     * 订单预览
+     *
+     * @param orderPreviewDTO
+     *            请求参数
+     * @return 订单预览数据
+     */
+    @PostMapping("/shop/orderPreview")
+    R orderPreview(@RequestBody ComShopOrderPreviewDTO orderPreviewDTO);
+
+    /**
+     * 创建订单
+     *
+     * @param orderCreateDTO
+     *            创建订单请求参数
+     * @return 创建结果
+     */
+    @PostMapping("/shop/orderCreate")
+    R orderCreate(@RequestBody ComShopOrderCreateDTO orderCreateDTO);
+
+    /**
+     * 分页查询用户订单列表
+     *
+     * @param comOrderListDTO
+     *            请求参数
+     * @return 查询结果
+     */
+    @PostMapping("/shop/pageOrderList")
+    R pageOrderList(@RequestBody PageComOrderListDTO comOrderListDTO);
+
+    /**
+     * 根据订单id查询订单详情
+     *
+     * @param orderId
+     *            订单id
+     * @return 订单详情
+     */
+    @PostMapping("/shop/orderDetail")
+    R orderDetail(@RequestParam("orderId") Long orderId);
+
+    /**
+     * 根据订单id取消订单
+     *
+     * @param comShopOrderQueryDTO
+     *            请求参数
+     * @return 取消结果
+     */
+    @PostMapping("/shop/orderCancel")
+    R orderCancel(@RequestBody ComShopOrderQueryDTO comShopOrderQueryDTO);
+
+    /**
+     * 根据订单id删除订单
+     *
+     * @param orderId
+     *            订单id
+     * @return 删除结果
+     */
+    @PostMapping("/shop/orderDelete")
+    R orderDelete(@RequestParam("orderId") Long orderId);
+
+    /**
+     * 根据订单id确认收货
+     *
+     * @param comShopOrderQueryDTO
+     *            请求参数
+     * @return 确认结果
+     */
+    @PostMapping("/shop/orderConfirm")
+    R orderConfirm(@RequestBody ComShopOrderQueryDTO comShopOrderQueryDTO);
+
+    /**
+     * 统计用户订单数量
+     *
+     * @param userId
+     *            用户id
+     * @return 统计结果
+     */
+    @PostMapping("/shop/orderStatistics")
+    R orderStatistics(@RequestParam("userId") Long userId);
+
+    /**
+     * 商家资金的订单详情
+     *
+     * @param id
+     * @return
+     */
+    @GetMapping("/shop/capitalDetailByStore")
+    R capitalDetailByStore(@RequestParam("id") Long id);
+
+    /**
+     * 订单发货
+     *
+     * @param orderShipDTO
+     *            商城订单发货信息
+     * @return 发货结果
+     */
+    @PostMapping("/shop/shipOrder")
+    R shipOrder(@RequestBody ComShopOrderShipDTO orderShipDTO);
+
+    /**
+     * 订单配送
+     *
+     * @param deliverDTO
+     *            订单信息
+     * @return 配送结果
+     */
+    @PostMapping("/shop/deliverOrder")
+    R deliverOrder(@RequestBody ComShopOrderDeliverDTO deliverDTO);
+
+    /**
+     * 订单完成配送
+     *
+     * @param deliverDTO
+     *            订单信息
+     * @return 配送完成结果
+     */
+    @PostMapping("/shop/finishDeliverOrder")
+    R finishDeliverOrder(@RequestBody ComShopOrderDeliverDTO deliverDTO);
+
+    /**
+     * 获取用户商户详情
+     *
+     * @param userId
+     *            用户ID
+     */
+    @GetMapping("/shop/getUserStoreInfo")
+    R getUserStoreInfo(@RequestParam("userId") Long userId);
+
+    /**
+     * 获取用户商户详情
+     *
+     * @param account
+     *            用户账号
+     */
+    @GetMapping("/shop/getUserStoreInfoByAccount")
+    R<ShopStoreVO> getUserStoreInfoByAccount(@RequestParam("account") String account);
+
+    /**
+     * 订单导出信息
+     *
+     * @param comShopOrderExportDTO
+     *            订单导出信息
+     * @return 订单导出信息
+     */
+    @PostMapping("/shop/shopOrderExportData")
+    R shopOrderExportData(@RequestBody ComShopOrderExportDTO comShopOrderExportDTO);
+
+    /**
+     * 资金管理导出信息
+     *
+     * @param comShopFundsExportDTO
+     *            资金管理导出信息
+     * @return 资金管理导出信息
+     */
+    @PostMapping("/shop/shopOrderFundsExportData")
+    R shopOrderFundsExportData(@RequestBody ComShopFundsExportDTO comShopFundsExportDTO);
+
+    /**
+     * 店铺资金统计信息
+     *
+     * @param userId
+     *            用户ID
+     * @return 店铺资金统计信息
+     */
+    @GetMapping("/shop/getFundsStat")
+    R getFundsStat(@RequestParam("userId") Long userId);
+
+    /**
+     * 店铺资金统计信息
+     *
+     * @param pageComShopFundsSearchDTO
+     *            店铺资金
+     * @return 店铺资金统计信息
+     */
+    @PostMapping("/shop/pageShopFunds")
+    R pageShopFunds(@RequestBody PageComShopFundsSearchDTO pageComShopFundsSearchDTO);
+
+    /**
+     * 微信支付订单回调
+     *
+     * @param wxPayNotifyOrderDTO
+     *            订单支付回调参数
+     */
+    @PostMapping("/shop/wxOrderPayNotify")
+    void wxOrderPayNotify(@RequestBody WxPayNotifyOrderDTO wxPayNotifyOrderDTO);
+
+    /**
+     * 点击去支付订单
+     *
+     * @param orderPayDTO
+     *            请求参数
+     * @return 支付对象
+     */
+    @PostMapping("/shop/wxPay")
+    R wxPay(@RequestBody OrderPayDTO orderPayDTO);
+
+    /**
+     * 编辑实有人口
+     *
+     * @param populationEditDTO
+     * @return
+     */
+    @PostMapping("/common/data/population/edit")
+    R editPopulation(@RequestBody ComMngPopulationEditDTO populationEditDTO,
+                     @RequestParam("communityId") Long communityId);
+
+    /**
+     * 微心愿删除
+     *
+     * @param id
+     *            微心愿id
+     */
+    @PostMapping("deletemicrowish")
+    R deletemicrowish(@RequestParam("id") Long id);
+
+    /**
+     * 基础数据》特殊群体》分页查询
+     *
+     * @param pageInputUserDTO
+     * @return
+     */
+    @PostMapping("common/data/special/page")
+    R specialInputUser(@RequestBody PageInputUserDTO pageInputUserDTO);
+
+    /**
+     * 删除特殊群体人员
+     *
+     * @param id
+     *            特殊群体id
+     * @return 删除结果
+     */
+    @PostMapping("common/data/special/delete")
+    R deleteSpecialInputUser(@RequestParam(value = "id") Long id,@RequestParam("communityId") Long communityId);
+
+    /**
+     * 办事指南_新增
+     *
+     * @param workGuideVO
+     *            新增信息
+     * @return 新增结果
+     */
+    @PostMapping("/addworkguide")
+    R addWorkGuide(@RequestBody ComActWorkGuideVO workGuideVO, @RequestParam("userId") Long userId);
+
+    /**
+     * 办事指南_编辑
+     *
+     * @param workGuideVO
+     * @return 编辑结果
+     */
+    @PostMapping("/editworkguide")
+    R editWorkGuide(@RequestBody ComActWorkGuideVO workGuideVO, @RequestParam("userId") Long userId);
+
+    /**
+     * 办事指南_详情
+     *
+     * @param workGuideId
+     * @return 详情
+     */
+    @GetMapping("/detailworkguide")
+    R detailWorkGuide(@RequestParam("workGuideId") String workGuideId, @RequestParam("communityId") String communityId);
+
+    /**
+     * 办事指南_分页
+     *
+     * @param pageActWorkGuideDTO
+     *            查询参数
+     * @return 分页集合
+     */
+    @PostMapping("/pageworkguide")
+    R pageWorkGuide(@RequestBody PageActWorkGuideDTO pageActWorkGuideDTO);
+
+    /**
+     * 办事指南_删除
+     *
+     * @param workGuideId
+     *            办事指南id
+     * @return 删除结果
+     */
+    @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(@RequestParam("areaCode")String areaCode);
+
+    /**
+     * 分页查询邻里圈
+     *
+     * @param neighborCircleAppDTO
+     *            请求参数
+     * @return 邻里圈列表
+     */
+    @PostMapping("/neighbor/pageNeighborByApp")
+    R pageNeighborByApp(@RequestBody ComActNeighborCircleAppDTO neighborCircleAppDTO);
+
+    /**
+     * 用户发布邻里圈审核
+     *
+     * @param addNeighborCircleAppDTO
+     *            邻里圈请求参数
+     * @return 发布结果
+     */
+    @PostMapping("/neighbor/addNeighborByApp")
+    R addNeighborByApp(@RequestBody AddComActNeighborCircleAppDTO addNeighborCircleAppDTO);
+
+    /**
+     * 用户查看邻里圈详情
+     *
+     * @param neighborCircleAppDTO
+     *            请求参数
+     * @return 邻里圈详情
+     */
+    @PostMapping("/neighbor/neighborDetailByApp")
+    R neighborDetailByApp(@RequestBody ComActNeighborCircleDetailAppDTO neighborCircleAppDTO);
+
+    /**
+     * 管理后台查询邻里圈列表
+     *
+     * @param comActNeighborCircleAdminDTO
+     *            请求参数
+     * @return 邻里圈列表
+     */
+    @PostMapping("/neighbor/pageNeighborByAdmin")
+    R pageNeighborByAdmin(@RequestBody ComActNeighborCircleAdminDTO comActNeighborCircleAdminDTO);
+
+    /**
+     * 统计大屏查询清单列表
+     *
+     * @param comActNeighborCircleAdminDTO
+     *            请求参数
+     * @return 邻里圈列表
+     */
+    @PostMapping("/neighbor/pageNeighborByBigScreen")
+    R pageNeighborByBigScreen(@RequestBody ComActNeighborCircleAdminDTO comActNeighborCircleAdminDTO);
+    /**
+     * 后台修改邻里圈
+     *
+     * @param editNeighborCircleAdminVO
+     *            请求参数
+     */
+    @PostMapping("/neighbor/changeStatusByAdmin")
+    R changeStatusByAdmin(@RequestBody EditNeighborCircleAdminVO editNeighborCircleAdminVO);
+
+    /**
+     * 邻里圈_后台删除
+     *
+     * @param id
+     *            邻里圈id
+     * @return 邻里圈列表
+     */
+    @PostMapping("/neighbor/deleteByAdmin")
+    R deleteByAdmin(@RequestParam("id") Long id);
+
+    /**
+     * 查看邻里圈基础_详情
+     *
+     * @param id
+     *            邻里圈id
+     * @return 邻里圈列表
+     */
+    @GetMapping("/neighbor/detailNeighborByAdmin")
+    R detailNeighborByAdmin(@RequestParam("id") Long id);
+
+    /**
+     * 邻里圈的所有评论_分页
+     *
+     * @param dto
+     *            请求参数
+     * @return 评论列表
+     */
+    @PostMapping("/neighbor/detailNeighborAllCommentByAdmin")
+    R detailNeighborAllCommentByAdmin(@RequestBody DetailNeighborAllCommentByAdminDTO dto);
+
+    /**
+     * 评论的状态_修改
+     *
+     * @param vo
+     *            请求参数
+     */
+    @PostMapping("/neighbor/changeCommentStatusByAdmin")
+    R changeCommentStatusByAdmin(@RequestBody ChangeCommentStatusByAdminVO vo);
+
+    /**
+     * 邻里圈评论_详情
+     *
+     * @param id
+     *            评论id
+     */
+    @GetMapping("/neighbor/detailNeighborCommentByAdmin")
+    R detailNeighborCommentByAdmin(@RequestParam("id") Long id);
+
+    /**
+     * 用户查询邻里圈列表
+     *
+     * @param neighborCircleAppDTO
+     *            请求参数
+     * @return 邻里圈列表
+     */
+    @PostMapping("/neighbor/neighborExamineByApp")
+    R neighborExamineByApp(@RequestBody ComActNeighborCircleAppDTO neighborCircleAppDTO);
+
+    /**
+     * 邻里圈点赞
+     *
+     * @param fabulousAppDTO
+     *            请求参数
+     * @return 点赞结果
+     */
+    @PostMapping("/neighbor/neighborFabulousByApp")
+    R neighborFabulousByApp(@RequestBody ComActNeighborFabulousAppDTO fabulousAppDTO);
+
+    /**
+     * 邻里圈转发
+     *
+     * @param forwardAppDTO
+     *            请求参数
+     * @return 转发结果
+     */
+    @PostMapping("/neighbor/neighborForwardByApp")
+    R neighborForwardByApp(@RequestBody ComActNeighborForwardAppDTO forwardAppDTO);
+
+    /**
+     * 邻里圈评论
+     *
+     * @param commentAppDTO
+     *            请求参数
+     * @return 评论结果
+     */
+    @PostMapping("/neighbor/neighborCommentByApp")
+    R neighborCommentByApp(@RequestBody ComActNeighborCommentAppDTO commentAppDTO);
+
+    /**
+     * 邻里圈回复
+     *
+     * @param replyAppDTO
+     *            请求参数
+     * @return 回复结果
+     */
+    @PostMapping("/neighbor/neighborReplyByApp")
+    R neighborReplyByApp(@RequestBody ComActNeighborReplyAppDTO replyAppDTO);
+
+    /**
+     * 定时任务更新邻里圈近3天评论数/点赞数/浏览量
+     *
+     * @return 执行结果
+     */
+    @PostMapping("/neighbor/timeTaskCircleFlow")
+    R timedTaskNeighborCircleRecord();
+
+    /**
+     * 邻里圈评论回复_分页
+     *
+     * @param dto
+     *            参数
+     */
+    @PostMapping("/neighbor/detailNeighborCommentAllReply")
+    R detailNeighborCommentAllReply(@RequestBody DetailNeighborCommentReplyByAdminDTO dto);
+
+    /**
+     * 邻里圈评论回复_基本详情
+     *
+     * @param id
+     *            参数
+     */
+    @GetMapping("/neighbor/detailNeighborCommentReply")
+    R detailNeighborCommentReply(@RequestParam("id") Long id);
+
+    /**
+     * 评论回复状态_修改
+     *
+     * @param changeStatusReplyVO
+     *            参数
+     */
+    @PostMapping("/neighbor/changeCommentReplyStatusByAdmin")
+    R changeCommentReplyStatusByAdmin(@RequestBody ChangeCommentReplyStatusByAdminVO changeStatusReplyVO);
+
+    /**
+     * 邻里圈取消点赞
+     *
+     * @param fabulousAppDTO
+     *            请求参数
+     * @return 取消点赞结果
+     */
+    @PostMapping("/neighbor/neighborFabulousCancelByApp")
+    R neighborFabulousCancelByApp(@RequestBody ComActNeighborFabulousAppDTO fabulousAppDTO);
+
+    /**
+     * 添加邻里圈浏览记录
+     *
+     * @param addBrowseAppDTO
+     *            请求参数
+     * @return 返回参数
+     */
+    @PostMapping("/neighbor/neighborAddBrowseByApp")
+    R neighborAddBrowseByApp(@RequestBody ComActNeighborAddBrowseAppDTO addBrowseAppDTO);
+
+    /**
+     * 邻里圈_添加
+     *
+     * @param addNeighborCircleAdminVO
+     *            参数
+     */
+    @PostMapping("/neighbor/addNeighborByAdmin")
+    R addNeighborByAdmin(@RequestBody AddNeighborCircleAdminVO addNeighborCircleAdminVO);
+
+    /**
+     * 分页查询评论下所有回复
+     *
+     * @param commentReplyAppDTO
+     *            请求参数
+     * @return 回复列表
+     */
+    @PostMapping("/neighbor/neighborCommentReplyByApp")
+    R neighborCommentReplyByApp(@RequestBody ComActNeighborCommentReplyAppDTO commentReplyAppDTO);
+
+    /**
+     * 实有房屋_编辑
+     *
+     * @param villageId
+     *            实有房屋id
+     * @param comMngVillageVO
+     *            请求参数
+     * @return
+     */
+    @PostMapping("/editvillage/{villageId}")
+    R editvillage(@PathVariable("villageId") Long villageId, @RequestBody ComMngVillageVO comMngVillageVO);
+
+    /**
+     * 商城系统配置
+     *
+     * @param comShopSysConfDTO
+     * @return
+     */
+    @PostMapping("/shop/conf/edit")
+    R editShopSysConf(@RequestBody ComShopSysConfDTO comShopSysConfDTO);
+
+    /**
+     * 商城系统配置查询
+     *
+     * @param pageComShopSysConfDTO
+     * @return
+     */
+    @PostMapping("/shop/conf/get")
+    R pageShopSysConf(@RequestBody PageComShopSysConfDTO pageComShopSysConfDTO);
+
+    /**
+     * 编辑实有人口_电子档案
+     *
+     * @param userElectronicFileVO
+     * @return
+     */
+    @PostMapping("/common/data/population/edit/electronicArchives")
+    R editUserElectronicFile(@RequestBody UserElectronicFileVO userElectronicFileVO);
+
+    /**
+     * 实有人口统计
+     *
+     * @param communityId
+     *            社区id
+     * @return 统计结果
+     */
+    @PostMapping("/common/data/population/statistics")
+    R getPopulationTotalByAdmin(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 查询房屋级联菜单
+     *
+     * @param cascadeHouseDTO
+     *            请求参数
+     * @return 菜单列表
+     */
+    @PostMapping("/common/data/population/cascade/list")
+    R getCascadeHouseAddress(@RequestBody CascadeHouseDTO cascadeHouseDTO);
+
+    /**
+     * 分页查询房屋列表
+     *
+     * @param populationHouseAdminDTO
+     *            请求参数
+     * @return 房屋列表
+     */
+    @PostMapping("/common/data/population/page/house")
+    R pageHouse(@RequestBody ComMngPopulationHouseAdminDTO populationHouseAdminDTO);
+
+    /**
+     * 根据id查询实有房屋信息
+     *
+     * @param houseId
+     *            房屋id
+     * @return 房屋信息
+     */
+    @PostMapping("/common/data/population/house/detail")
+    R getHouseDetail(@RequestParam(value = "houseId") Long houseId);
+
+    /**
+     * 编辑实有房屋信息
+     *
+     * @param houseEditAdminDTO
+     *            请求参数
+     * @return 编辑结果
+     */
+    @PostMapping("/common/data/population/house/edit")
+    R editHouse(@RequestBody ComMngPopulationHouseEditAdminDTO houseEditAdminDTO);
+
+    /**
+     * 根据房屋id列表删除房屋信息
+     *
+     * @param Ids
+     *            请求参数
+     * @return 删除结果
+     */
+    @PostMapping("/common/data/population/house/delete")
+    R deleteHouses(@RequestBody List<Long> Ids);
+
+    /**
+     * 新增实有房屋信息
+     *
+     * @param houseEditAdminDTO
+     *            请求参数
+     * @return 编辑结果
+     */
+    @PostMapping("/common/data/population/house/insert")
+    R insertHouse(@RequestBody ComMngPopulationHouseInsertAdminDTO houseEditAdminDTO);
+
+    /**
+     * 实有房屋统计
+     *
+     * @param communityId
+     *            社区id
+     * @return 统计结果
+     */
+    @PostMapping("/common/data/population/house/statistics")
+    R getHouseTotalByAdmin(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 根据社区id查询社区所有省市区
+     *
+     * @param communityId
+     *            社区id
+     * @return 社区所在省市区
+     */
+    @PostMapping("/common/data/village/getRegion")
+    R getRegion(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 统计社区内小区数量
+     *
+     * @param communityId
+     *            社区id
+     * @return 统计小区数量
+     */
+    @PostMapping("/common/data/village/statistics")
+    R villageStatistics(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 小区详情
+     *
+     * @param villageId
+     *            小区id
+     * @return 小区详情
+     */
+    @PostMapping("/village/getVillage")
+    R getVillage(@RequestParam("villageId") Long villageId);
+
+    /**
+     * 新增高龄认证
+     *
+     * @param eldersAuthAddDTO
+     * @return 新增结果
+     */
+    @PostMapping("/eldersauth/add")
+    R add(@RequestBody EldersAuthAddDTO eldersAuthAddDTO);
+
+    /**
+     * 修改高龄认证
+     *
+     * @param eldersAuthEditDTO
+     * @return 维护结果
+     */
+    @PostMapping("/eldersauth/edit")
+    R edit(@RequestBody EldersAuthEditDTO eldersAuthEditDTO);
+
+    /**
+     * 分页查找高龄认证
+     *
+     * @param pageEldersAuthDTO
+     * @return 维护结果
+     */
+    @PostMapping("/eldersauth/page")
+    R query(@RequestBody PageEldersAuthDTO pageEldersAuthDTO);
+
+    /**
+     * 删除高龄认证
+     *
+     * @param eldersAuthDeleteDTO
+     * @return 平台用户信息
+     */
+    @PostMapping("/eldersauth/delete")
+    R delete(@RequestBody EldersAuthDeleteDTO eldersAuthDeleteDTO);
+
+    /**
+     * 查询高龄认证详细信息
+     *
+     * @param id
+     *            高龄认证 id
+     * @return 查找结果
+     */
+    @PostMapping("/eldersauth/{id}")
+    R<EldersAuthDetailsVO> eldersAuthDetails(@PathVariable("id") Long id);
+
+    /**
+     * 获取用户家庭成员
+     *
+     * @param userId
+     *            用户ID
+     * @return
+     */
+    @PostMapping("/eldersauth/getMyfamilyElders/{userId}")
+    R getMyfamilyElders(@PathVariable("userId") Long userId);
+
+    /**
+     * 查询导出高龄老人
+     *
+     * @param pageEldersAuthDTO
+     * @return
+     */
+    @PostMapping("/eldersauth/eldersAuthQuery")
+    R eldersAuthQuery(@RequestBody PageEldersAuthDTO pageEldersAuthDTO);
+
+    /**
+     * 通过家庭成员ID添加
+     *
+     * @param eldersAuthAddByFamilyDTO
+     *            添加信息
+     * @return
+     */
+    @PostMapping("/eldersauth/addByFamilyUser")
+    R addByFamilyUser(@RequestBody EldersAuthAddByFamilyDTO eldersAuthAddByFamilyDTO);
+
+    /**
+     * 添加高龄认证反馈
+     *
+     * @param eldersAuthFeedbackAddDTO
+     * @return
+     */
+    @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);
+
+    /**
+     * 导出高龄认证记录 exportElderAuthRecords  导出高龄认证记录
+     * @param    pageElderAuthRecordsDTO   查询参数
+     * @return    R  查询结果
+     * @date 2021/9/02 11:03
+     */
+    @PostMapping("/elders/authRecords/export")
+    R exportElderAuthRecords(@RequestBody PageElderAuthRecordsDTO 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);
+
+    /**
+     * 小程序-查询疫苗分类列表
+     *
+     * @return 疫苗分类列表
+     */
+    @PostMapping("/vaccines/app/list")
+    R getVaccinesListByApp();
+
+    /**
+     * 小程序-疫苗类型对应家庭成员接种列表
+     *
+     * @return 疫苗类型对应家庭成员接种列表
+     */
+    @PostMapping("/vaccines/app/user/list")
+    R getVaccinesUserListByApp(@RequestBody VaccinesEnrollUserByAppDTO enrollUserByAppDTO);
+
+    /**
+     * 小程序-报名疫苗
+     *
+     * @param enrollByAppDTO
+     *            请求参数
+     * @return 报名结果
+     */
+    @PostMapping("/vaccines/app/enroll")
+    R VaccinesEnrollByApp(@RequestBody VaccinesEnrollByAppDTO enrollByAppDTO);
+
+    /**
+     * 小程序-查询用户家庭成员接种记录
+     *
+     * @param userId
+     *            用户id
+     * @return 用户家庭成员接种记录
+     */
+    @PostMapping("/vaccines/app/user/inoculation/list")
+    R getVaccinesUserInoculationListByApp(@RequestParam("userId") Long userId);
+
+    /**
+     * 后台管理-查询疫苗分类列表
+     *
+     * @param vaccinesByAdminDTO
+     *            请求参数
+     * @return 疫苗分类列表
+     */
+    @PostMapping("/vaccines/admin/list")
+    R getVaccinesListByAdmin(@RequestBody VaccinesByAdminDTO vaccinesByAdminDTO);
+
+    /**
+     * 修改疫苗分类信息
+     *
+     * @param vaccinesByAdminDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    @PostMapping("/vaccines/admin/edit")
+    R editVaccinesByAdmin(@RequestBody VaccinesByAdminDTO vaccinesByAdminDTO);
+
+    /**
+     * 新增疫苗分类信息
+     *
+     * @param vaccinesByAdminDTO
+     *            请求参数
+     * @return 新增结果
+     */
+    @PostMapping("/vaccines/admin/add")
+    R addVaccinesByAdmin(@RequestBody VaccinesByAdminDTO vaccinesByAdminDTO);
+
+    /**
+     * 查询疫苗登记列表
+     *
+     * @param vaccinesByAdminDTO
+     *            请求参数
+     * @return 登记列表
+     */
+    @PostMapping("/vaccines/admin/enroll/list")
+    R getVaccinesEnrollListByAdmin(@RequestBody VaccinesEnrollByAdminDTO vaccinesByAdminDTO);
+
+    /**
+     * 删除疫苗分类信息
+     *
+     * @param id
+     *            疫苗分类id
+     * @return 删除结果
+     */
+    @PostMapping("/vaccines/admin/enroll/delete")
+    R deleteVaccinesByAdmin(@RequestParam("id") Long id);
+
+    /**
+     * 根据条件导出登记列表
+     *
+     * @param vaccinesByAdminDTO
+     *            请求参数
+     * @return 登记列表
+     */
+    @PostMapping("/vaccines/admin/enroll/export")
+    R exportVaccinesEnrollListByAdmin(@RequestBody VaccinesEnrollByAdminDTO vaccinesByAdminDTO);
+
+    /**
+     * 查询接种记录列表
+     *
+     * @param inoculationByAdminDTO
+     *            请求参数
+     * @return 接种记录列表
+     */
+    @PostMapping("/vaccines/admin/inoculation/list")
+    R getVaccinesInoculationListByAdmin(@RequestBody VaccinesInoculationByAdminDTO inoculationByAdminDTO);
+
+    /**
+     * 接种记录信息导出
+     *
+     * @param inoculationByAdminDTO
+     *            请求参数
+     * @return 导出结果
+     */
+    @PostMapping("/vaccines/admin/inoculation/export")
+    R exportVaccinesInoculationListByAdmin(@RequestBody VaccinesInoculationByAdminDTO inoculationByAdminDTO);
+
+    /**
+     * 查询疫苗分类列表
+     *
+     * @return 疫苗分类列表
+     */
+    @PostMapping("/vaccines/admin/enroll/type/list")
+    R getEnrollTypeListByAdmin();
+
+    /**
+     * 查询老龄认证记录
+     *
+     * @param pageComEldersRecordsDTO
+     * @return
+     */
+    @PostMapping("/elders/records")
+    R queryEldersRecord(@RequestBody PageComEldersRecordsDTO pageComEldersRecordsDTO);
+
+    /**
+     * 查询老龄认证记录详细
+     *
+     * @param id
+     * @return
+     */
+    @PostMapping("/elders/records/deatils")
+    R<ComEldersAuthElderlyDetailsVO> comEldersAuthElderlyDetails(@RequestParam("id") Long id);
+
+    /**
+     * 查询老龄认证社区认证方式
+     *
+     * @param eldersAuthTypeQueryDTO
+     * @return
+     */
+    @PostMapping("/elders/authType")
+    R communityElderAuthType(@RequestBody EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO);
+
+    /**
+     * 分页查询高领老人列表
+     *
+     * @param pageEldersAuthElderlyDTO
+     * @return
+     */
+    @PostMapping("/eldersauthelderly/page")
+    R pageQueryEldersAuthElderly(@RequestBody PageEldersAuthElderlyDTO pageEldersAuthElderlyDTO);
+
+    /**
+     * 批量保存高龄老人
+     *
+     * @param newVoList
+     * @param communityId
+     * @return
+     */
+    @PostMapping("/eldersauthelderly/batchSave")
+    R listSaveEldersAuthElderlyExcelVO(@RequestBody List<EldersAuthElderlyExcelVO> newVoList,
+                                       @RequestParam("communityId") Long communityId, @RequestParam("createBy") Long createBy);
+
+    /**
+     * 批量保存楼栋
+     *
+     * @param newVoList
+     * @param communityId
+     * @return
+     */
+    @PostMapping("/building/batchSave")
+    R listSaveBuildingExcelVO(@RequestBody List<ComMngBuildingExcelVO> newVoList,
+                              @RequestParam("communityId") Long communityId);
+
+    /**
+     * 插入字典
+     *
+     * @param dictionaryVO
+     *            字典数据
+     * @return R 是否保存成功
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @PostMapping("/dictionary/insertDiction")
+    R insertDiction(@RequestBody DictionaryVO dictionaryVO);
+
+    /**
+     * 插入字典项
+     *
+     * @param dictionaryVO
+     *            字典数据
+     * @return R 是否保存成功
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @PostMapping("/dictionary/insertDictionItem")
+    R insertDictionItem(@RequestBody BcDictionaryVO dictionaryVO);
+
+    /**
+     * 根据字典key查询字典项
+     *
+     * @param key
+     * @return
+     */
+    @GetMapping("/dictionary/listDictionaryByKey")
+    R<List<BcDictionaryVO>> listDictionaryByKey(@RequestParam("key") String key);
+
+    /**
+     * description 根据字典code查询自典项
+     *
+     * @param code
+     *            入参参数
+     * @return BcDictionaryVO 字典
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @GetMapping("/dictionary/getByCode")
+    BcDictionaryItemVO getByCode(@RequestParam("dictId") String dictId, @RequestParam("code") String code);
+
+    /**
+     * 查看高龄老人详情
+     *
+     * @param id
+     * @return
+     */
+    @GetMapping("/eldersauthelderly/{id}")
+    R getEldersAuthElderlyById(@PathVariable("id") Long id);
+
+    /**
+     * 修改高龄老人信息
+     *
+     * @param eldersAuthElderlyDTO
+     * @return
+     */
+    @PostMapping("/eldersauthelderly/update")
+    R updateEldersAuthElderly(@RequestBody EldersAuthElderlyDTO eldersAuthElderlyDTO);
+
+    /**
+     * 删除高领老人
+     *
+     * @param id
+     * @return
+     */
+    @PostMapping("/eldersauthelderly/delete")
+    R deleteEldersAuthElderly(@RequestParam("id") Long id);
+
+    /**
+     * 通过老人用户id获取老人信息
+     *
+     * @param authUserId
+     *            老人用户id
+     * @return 老人信息
+     */
+    @PostMapping("/elders/getAuth")
+    R getEldersAuthUserByApp(@RequestParam("authUserId") Long authUserId);
+
+    /**
+     * 人脸核验新增高龄认证记录
+     *
+     * @param authGetResultDTO
+     *            请求参数
+     * @return 新增结果
+     */
+    @PostMapping("/elders/add/auth")
+    R addEldersAuthByApp(@RequestBody ComEldersAuthGetResultDTO authGetResultDTO);
+
+    /**
+     * 高龄认证分页接口
+     *
+     * @param authPageDTO
+     *            请求参数
+     * @return 查询结果
+     */
+    @PostMapping("/elders/page/auth")
+    R pageEldersByApp(@RequestBody ComEldersAuthPageDTO authPageDTO);
+
+    /**
+     * 添加高龄老人接口
+     *
+     * @param authUserAddAppDTO
+     *            请求参数
+     * @return 添加结果
+     */
+    @PostMapping("/elders/add")
+    R addEldersByApp(@RequestBody ComEldersAuthUserAddAppDTO authUserAddAppDTO);
+
+    /**
+     * 修改高龄老人接口
+     *
+     * @param authUserAddAppDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    @PostMapping("/elders/edit")
+    R editEldersByApp(@RequestBody ComEldersAuthUserAddAppDTO authUserAddAppDTO);
+
+    /**
+     * 分页查询生存认证记录
+     *
+     * @param pageEldersAuthElderlyDTO
+     * @return
+     */
+    @PostMapping("/elders/records/page")
+    R pageQueryEldersAuthRecord(@RequestBody PageEldersAuthRecordDTO pageEldersAuthElderlyDTO);
+
+    /**
+     * description 批量保存重点人群人员信息
+     *
+     * @param list
+     *            重点人群信息
+     * @return R 保存结果
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @PostMapping("/key_person/batch/save")
+    R saveBatchKeyPerson(@RequestBody List<KeyPersonInfoDTO> list);
+
+    @GetMapping("/screen/population/statistic")
+    R statistic(@RequestParam("communityId") Long communityId);
+
+    /**
+     * @param communityId
+     * @param type
+     * @return
+     */
+    @PostMapping("/elders/setCommunityAuthType")
+    R setCommunityAuthType(@RequestParam("communityId") Long communityId, @RequestParam("type") Integer type);
+
+    @PostMapping("/elders/getAuthHistoryList")
+    R getAuthHistoryList(@RequestBody PageEldersAuthHistoryDTO pageEldersAuthElderlyDTO);
+
+    @PostMapping("/elders/getAuthHistoryExport")
+    R getAuthHistoryExport(@RequestBody PageEldersAuthHistoryDTO pageEldersAuthElderlyDTO);
+
+    @GetMapping("/screen/work/neighborCircle")
+    R statisticNeighborCircle(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 党员党支部统计信息
+     *
+     * @return
+     */
+    @PostMapping("/bigscreen/party/orgmembers")
+    R bigscreenPartyOrgmembers(@RequestBody PageBigScreenStatisticPartyOrg pageBigScreenStatisticPartyOrg);
+
+    /**
+     * 党员年龄占比、男女占比
+     *
+     * @return
+     */
+    @PostMapping("/bigscreen/party/ageGender")
+    R<BigScreenStatisticAgeGender>
+    ageGender(@RequestBody BigScreenStatisticAgeGenderDTO bigScreenStatisticAgeGenderDTO);
+
+    /**
+     * 党建数据概览
+     *
+     * @return
+     */
+    @PostMapping("/bigscreen/party/partybuild/{communityId}")
+    R<BigScreenStatisticPartyBuild> bigscreenPartybuild(@PathVariable("communityId") Long communityId);
+
+    /**
+     * 党员活动参加用户排行榜-TOP3
+     *
+     * @return
+     */
+    @PostMapping("/bigscreen/party/activitytopuser/{communityId}")
+    R<List<PartyBuildingMemberVO>> bigscreenPartyactivitytopuser(@PathVariable("communityId") Long communityId);
+
+    /**
+     * 党员活动
+     *
+     * @return
+     */
+    @PostMapping("/bigscreen/party/bigscreenPartyactivity")
+    R<List<BigScreenStatisticPartyActivity>>
+    bigscreenPartyactivity(BigScreenStatisticPartyActivityDTO bigScreenStatisticPartyActivityDTO);
+
+    /**
+     * 首页大屏统计接口
+     *
+     * @param communityId
+     *            社区id
+     * @return 统计结果
+     */
+    @GetMapping("/screen/getScreenIndex")
+    R getScreenIndex(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 事件大屏统计接口
+     *
+     * @param screenEventDTO
+     *            请求参数
+     * @return 统计结果
+     */
+    @PostMapping("/screen/getScreenEvent")
+    R getScreenEvent(@RequestBody BigScreenEventDTO screenEventDTO);
+
+    /**
+     * 民生大屏统计接口
+     *
+     * @param communityId
+     *            社区id
+     * @return 统计结果
+     */
+    @GetMapping("/screen/getScreenCivil")
+    R getScreenCivil(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 大屏统计邻里圈
+     */
+    @GetMapping("/screen/work/wish")
+    R wish(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 大屏统计社区-活动
+     *
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/work/activity")
+    R activity(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 大屏统计议事投票
+     *
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/work/discuss")
+    R discuss(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 大屏统计党建工作
+     *
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/work/pbWork")
+    R pbWork(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 大屏统计随手拍
+     *
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/work/easyPhoto")
+    R easyPhoto(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 大屏统计工作情况
+     *
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/work/workCount")
+    R workCount(@RequestParam("communityId") Long communityId);
+
+    /**
+     * description 批量保存残疾人人员信息
+     *
+     * @param list
+     *            疾人信息列表
+     * @return R 保存结果
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @PostMapping("/disable_person/batch/save")
+    R saveBatchDisabledPersons(@RequestBody List<DisabledPersonsDTO> list);
+
+    /**
+     * 获取社区网格
+     *
+     * @param communityId
+     *            社区id
+     * @return 网格数据
+     */
+    @GetMapping("/screen/getScreenGirds")
+    R getScreenGirds(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 事件大屏查询事件详情
+     *
+     * @param eventDetailDTO
+     *            请求参数
+     * @return 事件详情
+     */
+    @PostMapping("/screen/getScreenEventDetail")
+    R getScreenEventDetail(@RequestBody BigScreenEventDetailDTO eventDetailDTO);
+
+    /**
+     * 工作大屏-议事投票列表
+     *
+     * @param discussListDTO
+     *            请求参数
+     * @return 议事投票列表
+     */
+    @PostMapping("/screen/work/getScreenDiscussList")
+    R getScreenDiscussList(@RequestBody ScreenDiscussListDTO discussListDTO);
+
+    /**
+     * 工作大屏-社区活动列表
+     *
+     * @param actActivityListDTO
+     *            请求参数
+     * @return 活动列表
+     */
+    @PostMapping("/screen/work/getScreenActActivityList")
+    R getScreenActActivityList(@RequestBody ScreenActActivityListDTO actActivityListDTO);
+
+    /**
+     * 工作大屏-社区活动报名人员列表
+     *
+     * @param activityPeopleListDTO
+     *            请求参数
+     * @return 社区活动报名人员列表
+     */
+    @PostMapping("/screen/work/getActActivityPeopleList")
+    R getActActivityPeopleList(@RequestBody ScreenActActivityPeopleListDTO activityPeopleListDTO);
+
+    /**
+     * 工作大屏-微心愿列表
+     *
+     * @param microListDTO
+     *            请求参数
+     * @return 微心愿列表
+     */
+    @PostMapping("/screen/work/getScreenMicroList")
+    R getScreenMicroList(@RequestBody ScreenMicroListDTO microListDTO);
+
+    /**
+     * 获取系统参数接口
+     *
+     * @param code
+     *            参数code
+     * @return 系统参数
+     */
+    @GetMapping("/sys/conf/get")
+    R getConf(@RequestParam("code") String code);
+
+    /**
+     * 获取人口数据信息
+     *
+     * @param populationListDTO
+     *            请求参数
+     * @return 人口数据
+     */
+    @PostMapping("/population/list/app")
+    R getPopulationListByApp(@RequestBody PagePopulationListDTO populationListDTO);
+
+    /**
+     * 根据人口id获取人口详情
+     *
+     * @param populationId
+     *            人口id
+     * @return 人口详情
+     */
+    @GetMapping("/population/detail/app")
+    R getPopulationDetailByApp(@RequestParam("populationId") Long populationId);
+
+    /**
+     * 修复人口加密问题
+     *
+     * @return 修复结果
+     */
+    @GetMapping("/population/repair")
+    R getPopulationRepairByApp();
+
+    /**
+     * 工作大屏-社区动态模块数据统计
+     *
+     * @param communityId
+     *            社区id
+     * @return 社区动态数据统计
+     */
+    @GetMapping("/screen/work/dynamic")
+    R dynamicWork(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 查询用户钱包信息
+     *
+     * @param walletDetailDTO
+     *            请求参数
+     * @return 用户钱包信息
+     */
+    @PostMapping("/wallet/get/my")
+    R getUserWalletDetail(@RequestBody ComActWalletDetailDTO walletDetailDTO);
+
+    /**
+     * 查询用户收支记录列表
+     *
+     * @param walletTradeDTO
+     *            请求参数
+     * @return 收支记录
+     */
+    @PostMapping("/wallet/get/trade")
+    R getUserWalletTrade(@RequestBody PageComActWalletTradeDTO walletTradeDTO);
+
+    /**
+     * 查询用户绑定的社区收益排行榜
+     *
+     * @param walletTradeDTO
+     *            请求参数
+     * @return 社区收益排行榜
+     */
+    @PostMapping("/wallet/get/ranking")
+    R getWalletRanking(@RequestBody PageComActWalletTradeDTO walletTradeDTO);
+
+    /**
+     * 综治后台-居民列表
+     *
+     * @param populationListDTO
+     *            请求参数
+     * @return 居民列表
+     */
+    @PostMapping("/population/grid/list")
+    R getGridPopulationList(@RequestBody ComMngPopulationListDTO populationListDTO);
+
+    /**
+     * 综治后台-删除居民
+     *
+     * @param ids
+     *            居民id集合
+     * @return 删除结果
+     */
+    @PostMapping("/population/grid/del")
+    R delGridPopulation(@RequestBody List<Long> ids);
+
+    /**
+     * 综治后台-居民详情
+     *
+     * @param populationId
+     *            居民id
+     * @return 居民详情
+     */
+    @GetMapping("/population/grid/get")
+    R getGridPopulationDetail(@RequestParam("populationId") Long populationId);
+
+    /**
+     * 综治app-小区列表
+     *
+     * @param villageListAppDTO
+     *            请求参数
+     * @return 小区列表
+     */
+    @PostMapping("/village/grid/list")
+    R getGridVillageList(@RequestBody ComMngVillageListAppDTO villageListAppDTO);
+
+    /**
+     * 综治app-根据小区id查询小区下楼栋列表
+     *
+     * @param villageId
+     *            小区id
+     * @return 楼栋列表
+     */
+    @PostMapping("/village/grid/building/list")
+    R getGridVillageBuildingList(@RequestParam("villageId") Long villageId);
+
+    /**
+     * 小区楼栋下房屋列表
+     *
+     * @param buildHouseAppDTO
+     *            请求参数
+     * @return 房屋列表
+     */
+    @PostMapping("/village/grid/building/house/list")
+    R getGridVillageBuildingHouseList(@RequestBody PageComMngVillageBuildHouseAppDTO buildHouseAppDTO);
+
+    /**
+     * 小区楼栋下房屋信息
+     *
+     * @param houseId
+     *            房屋id
+     * @return 房屋信息
+     */
+    @PostMapping("/village/grid/building/house/detail")
+    R getGridVillageBuildingHouseDetail(@RequestParam("houseId") Long houseId);
+
+    /**
+     * 查询平台人口列表
+     *
+     * @param populationDTO
+     *            请求参数
+     * @return 人口列表
+     */
+    @PostMapping("/village/grid/building/house/population/list")
+    R getBuildingHousePopulationList(@RequestBody PageComMngPopulationDTO populationDTO);
+
+    /**
+     * 批量向房屋新增人员
+     *
+     * @param housePopulationDTO
+     *            请求参数
+     * @return 添加结果
+     */
+    @PostMapping("/village/grid/building/house/add/population")
+    R addBuildingHousePopulation(@RequestBody AddComMngHousePopulationDTO housePopulationDTO);
+
+    /**
+     * 批量删除房屋内人员
+     *
+     * @param housePopulationDTO
+     *            请求参数
+     * @return 删除结果
+     */
+    @PostMapping("/village/grid/building/house/del/population")
+    R delBuildingHousePopulation(@RequestBody DelComMngHousePopulationDTO housePopulationDTO);
+
+    /**
+     * 综治后台-居民标签栏统计
+     *
+     * @return 居民统计
+     */
+    @GetMapping("/population/grid/statistics")
+    R getGridPopulationStatistics(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 综治后台-居民导出查询居民数据
+     *
+     * @param populationExportDTO
+     *            请求参数
+     * @return 导出结果
+     */
+    @PostMapping("/population/grid/export")
+    R getGridPopulationExport(@RequestBody ComMngPopulationExportDTO populationExportDTO);
+
+    /**
+     * 综治后台-居民管理小区列表
+     *
+     * @param name
+     *            小区名字
+     * @return 小区列表
+     */
+    @GetMapping("/population/village/relation")
+    R relationVillage(@RequestParam("name") String name);
+
+    /**
+     * 综治后台-居民管理-级联列表
+     *
+     * @param subordinateDTO
+     *            请求参数
+     * @return 级联列表
+     */
+    @PostMapping("/population/subordinate")
+    R subordinate(@RequestBody ComMngPopulationSubordinateDTO subordinateDTO);
+
+    /**
+     * 综治后台-居民关联房屋
+     *
+     * @param relationHouseDTO
+     *            请求参数
+     * @return 关联结果
+     */
+    @PostMapping("/population/relation/house")
+    R populationRelationHouse(@RequestBody ComMngPopulationRelationHouseDTO relationHouseDTO);
+
+    /**
+     * 综治后台-批量删除小区
+     *
+     * @param villageIds
+     *            小区id集合
+     * @return 删除结果
+     */
+    @PostMapping("/village/admin/del")
+    R delGridVillage(@RequestBody List<Long> villageIds);
+
+    /**
+     * 综治后台-小区内居民列表
+     *
+     * @param villagePopulationDTO
+     *            请求参数
+     * @return 居民列表
+     */
+    @PostMapping("/village/admin/population/list")
+    R getVillagePopulationAdmin(@RequestBody PageComMngVillagePopulationDTO villagePopulationDTO);
+
+    /**
+     * 综治后台-居民下房屋列表
+     *
+     * @param villagePopulationHouseDTO
+     *            请求参数
+     * @return 房屋列表
+     */
+    @PostMapping("/village/admin/population/house/list")
+    R getVillagePopulationHouseAdmin(@RequestBody PageComMngVillagePopulationHouseDTO villagePopulationHouseDTO);
+
+    /**
+     * 综治后台-小区统计
+     *
+     * @return 小区统计结果
+     */
+    @GetMapping("/village/admin/statistics")
+    R getGridVillageStatistics();
+
+    /**
+     * 综治后台-小区列表导出
+     *
+     * @param villageListAppDTO
+     *            请求参数
+     * @return 小区列表
+     */
+    @PostMapping("/village/admin/export")
+    R getGridVillageListExport(@RequestBody ComMngVillageListExportAdminDTO villageListAppDTO);
+
+    /**
+     * 社区后台-分页查询随手拍活动列表
+     *
+     * @param pageEasyPhotoActivityDTO
+     *            请求参数
+     * @return 随手拍活动列表
+     */
+    @PostMapping("/easy/photo/activity/page")
+    R pageEasyPhotoActivity(@RequestBody PageEasyPhotoActivityDTO pageEasyPhotoActivityDTO);
+
+    /**
+     * 社区后台-添加随手拍活动
+     *
+     * @param addEasyPhotoActivityDTO
+     *            请求参数
+     * @return 添加结果
+     */
+    @PostMapping("/easy/photo/activity/add")
+    R addEasyPhotoActivity(@RequestBody AddEasyPhotoActivityDTO addEasyPhotoActivityDTO);
+
+    /**
+     * 社区后台-编辑随手拍活动
+     *
+     * @param editEasyPhotoActivityDTO
+     *            请求参数
+     * @return 编辑结果
+     */
+    @PostMapping("/easy/photo/activity/edit")
+    R editEasyPhotoActivity(@RequestBody EditEasyPhotoActivityDTO editEasyPhotoActivityDTO);
+
+    /**
+     * 社区后台-取消随手拍活动
+     *
+     * @param id
+     *            随手拍活动id
+     * @return 取消结果
+     */
+    @GetMapping("/easy/photo/activity/cancel")
+    R cancelEasyPhotoActivity(@RequestParam("id") Long id);
+
+    /**
+     * 分页查询随手拍活动下居民参与记录
+     *
+     * @param pageEasyPhotoActivityUserDTO
+     *            请求参数
+     * @return 居民参与记录
+     */
+    @PostMapping("/easy/photo/activity/page/user")
+    R pageEasyPhotoActivityUser(@RequestBody PageEasyPhotoActivityUserDTO pageEasyPhotoActivityUserDTO);
+
+    /**
+     * 随手拍活动定时任务
+     *
+     * @return 执行结果
+     */
+    @PostMapping("timeTaskEasyPhotoActivity")
+    R timedTaskEasyPhotoActivity();
+
+    /**
+     * 分页查询收益结算列表
+     *
+     * @param pageWalletAdminDTO
+     *            请求参数
+     * @return 收益结算列表
+     */
+    @PostMapping("/user/wallet/page")
+    R pageUserWalletAdmin(@RequestBody PageComActWalletAdminDTO pageWalletAdminDTO);
+
+    /**
+     * 用户结算收益
+     *
+     * @param settlementAdminDTO
+     *            请求参数
+     * @return 结算结果
+     */
+    @PostMapping("/user/wallet/settlement")
+    R userWalletSettlementAdmin(@RequestBody ComActWalletSettlementAdminDTO settlementAdminDTO);
+
+    /**
+     * 分页查询交易记录
+     *
+     * @param pageTradeAdminDTO
+     *            请求参数
+     * @return 交易记录列表
+     */
+    @PostMapping("/user/wallet/trade/page")
+    R pageUserWalletTradeAdmin(@RequestBody PageComActWalletTradeAdminDTO pageTradeAdminDTO);
+
+    /**
+     * 查询用户交易记录总额
+     *
+     * @param pageTradeAdminDTO
+     *            请求参数
+     * @return 交易记录总额
+     */
+    @PostMapping("/user/wallet/trade/total")
+    R getTradeUserTotalWalletTradeAdmin(@RequestBody PageComActWalletTradeAdminDTO pageTradeAdminDTO);
+
+    /**
+     * 查询用户导出数据
+     *
+     * @param pageTradeAdminDTO
+     *            请求参数
+     * @return 用户导出数据
+     */
+    @PostMapping("/user/wallet/trade/export")
+    R getTradeUserTotalWalletTradeExportAdmin(@RequestBody PageComActWalletTradeAdminDTO pageTradeAdminDTO);
+
+    /**
+     * 导出奖励台账数据
+     *
+     * @param pageTradeAdminDTO
+     *            请求参数
+     * @return 奖励台账数据
+     */
+    @PostMapping("/user/wallet/trade/reward/export")
+    R getTradeUserTotalJLWalletTradeExportAdmin(@RequestBody PageComActWalletTradeAdminDTO pageTradeAdminDTO);
+
+    /**
+     * 查询社区统计数据
+     *
+     * @param pageTradeAdminDTO
+     *            查询社区统计数据
+     * @return 社区统计数据
+     */
+    @PostMapping("/user/wallet/trade/statistics")
+    R getTradeUserStatisticsAdmin(@RequestBody PageComActWalletTradeAdminDTO pageTradeAdminDTO);
+
+    /**
+     * 社区随手拍列表统计
+     *
+     * @param communityId
+     *            社区id
+     * @return 统计结果
+     */
+    @GetMapping("/easyphoto/statistics")
+    R easyPhotoStatistics(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 分页查询邻里圈话题列表
+     *
+     * @param circleTopicAdminDTO
+     *            请求参数
+     * @return 邻里圈话题列表
+     */
+    @PostMapping("/neighbor/pageNeighborTopicByAdmin")
+    R pageNeighborTopicByAdmin(@RequestBody ComActNeighborCircleTopicAdminDTO circleTopicAdminDTO);
+
+    /**
+     * 添加邻里圈话题
+     *
+     * @param addCircleTopicAdminDTO
+     *            请求参数
+     * @return 添加结果
+     */
+    @PostMapping("/neighbor/addNeighborTopicByAdmin")
+    R addNeighborTopicByAdmin(@RequestBody AddNeighborCircleTopicAdminDTO addCircleTopicAdminDTO);
+
+    /**
+     * 编辑邻里圈话题
+     *
+     * @param addCircleTopicAdminDTO
+     *            请求参数
+     * @return 编辑结果
+     */
+    @PostMapping("/neighbor/editNeighborTopicByAdmin")
+    R editNeighborTopicByAdmin(@RequestBody AddNeighborCircleTopicAdminDTO addCircleTopicAdminDTO);
+
+    /**
+     * 小程序查询邻里圈话题列表
+     *
+     *            社区id
+     * @return 邻里圈话题列表
+     */
+    @GetMapping("/neighbor/getNeighborTopicByApp")
+    R getNeighborTopicByApp(@RequestParam("name") String name);
+
+    @GetMapping("/neighbor/getNeighborTopicByAppNew")
+    R getNeighborTopicByAppNew(@RequestParam("name") String name);
+    /**
+     * 删除话题
+     * @param id
+     * @return
+     */
+    @GetMapping("/neighbor/deleteNeighborTopic")
+    R deleteNeighborTopic(@RequestParam("id") Long id);
+
+    /**
+     * 综治后台-查询社区列表
+     *
+     * @return 社区列表
+     */
+    @GetMapping("/eventgrid/community/list")
+    R getCommunityLists();
+
+    /**
+     * 查询西区社区列表
+     *
+     * @return 社区列表
+     */
+    @GetMapping("/eventgrid/community/westList")
+    R getWestCommunityLists(@RequestParam(value = "areaCode",required = false)String areaCode);
+
+    /**
+     * 综治app-小区列表
+     * @param villageListAppDTO 请求参数
+     * @return  小区列表
+     */
+    @PostMapping("/village/grid/list/app")
+    R getGridVillageListApp(@RequestBody ComMngVillageListAppDTO villageListAppDTO);
+
+    /**
+     * 分页查询退役军人列表
+     *
+     * @param comExServicemanDTO
+     *            请求参数
+     * @return 退役军人列表
+     */
+    @PostMapping("/population/page/exServiceman")
+    R pageExServiceman(@RequestBody ComExServicemanDTO comExServicemanDTO);
+
+    /**
+     * 分页查询社区动态分类列表
+     *
+     * @param comActDynTypeDTO
+     *            请求参数
+     * @return 动态分类列表
+     */
+    @PostMapping("/dyn/type/page")
+    R pageDynTypeByAdmin(@RequestBody PageComActDynTypeDTO comActDynTypeDTO);
+
+    /**
+     * 查询社区下所有动态分类列表
+     *
+     * @param comActDynTypeDTO
+     *            请求参数
+     * @return 动态分类列表
+     */
+    @PostMapping("/dyn/type/list")
+    R getDynTypeListByAdmin(@RequestBody PageComActDynTypeDTO comActDynTypeDTO);
+
+    /**
+     * 添加社区动态分类
+     *
+     * @param comActDynTypeDTO
+     *            请求参数
+     * @return 添加结果
+     */
+    @PostMapping("/dyn/type/add")
+    R addDynTypeByAdmin(@RequestBody AddComActDynTypeDTO comActDynTypeDTO);
+
+    /**
+     * 编辑社区动态分类
+     *
+     * @param comActDynTypeDTO
+     *            请求参数
+     * @return 编辑结果
+     */
+    @PostMapping("/dyn/type/edit")
+    R editDynTypeByAdmin(@RequestBody EditComActDynTypeDTO comActDynTypeDTO);
+
+    /**
+     * 删除社区动态分类
+     *
+     * @param ids
+     *            社区动态分类id集合
+     * @return 删除结果
+     */
+    @PostMapping("/dyn/type/delete")
+    R deleteDynTypeByAdmin(@RequestBody List<Long> ids);
+
+    /**
+     * 随手拍发放奖励
+     *
+     * @param grantRewardDTO
+     *            请求参数
+     * @return 发放结果
+     */
+    @PostMapping("/easyphoto/grantReward")
+    R grantReward(@RequestBody GrantRewardDTO grantRewardDTO);
+
+    /**
+     * 获取最新活动和用户最新收益
+     *
+     * @param userId
+     *            用户id
+     * @param communityId
+     *            社区id
+     * @return 最新活动和用户最新收益
+     */
+    @PostMapping("/easyphoto/getUserReward")
+    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
+     *            用户id
+     * @return 读取结果
+     */
+    @PostMapping("/easyphoto/readUserReward")
+    R readUserReward(@RequestParam("userId") Long userId, @RequestParam("communityId") Long communityId);
+
+    /**
+     * 分页查询巡查记录
+     *
+     * @param comSwPatrolRecordPageDTO
+     *            查询参数
+     * @return 分页集合
+     */
+    @PostMapping("/patrolRecord/page")
+    R pagePatrolRecord(@RequestBody ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO);
+
+    /**
+     * 新增巡查记录
+     *
+     * @param comSwPatrolRecordAddDTO
+     *            新增参数
+     * @return 新增结果
+     */
+    @PostMapping("/patrolRecord/addPatrolRecord")
+    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
+     *            巡查记录id
+     * @return 巡查记录详情查询结果
+     */
+    @GetMapping("/patrolRecord/detail")
+    R detailPatrolRecord(@RequestParam("patrolRecordId") Long patrolRecordId);
+
+    /**
+     * 分页查询安全工作记录
+     *
+     * @param comSwPatrolRecordPageDTO
+     *            查询参数
+     * @return 安全工作记录分页集合
+     */
+    @PostMapping("/patrolRecord/safetyWorkRecord/page")
+    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
+     *            安全工作记录
+     * @return 安全工作记录详情查询结果
+     */
+    @GetMapping("/patrolRecord/safetyWorkRecord/detail")
+    R detailSafetyWorkRecord(@RequestParam(value = "safetyWorkRecordId") Long safetyWorkRecordId,
+                             @RequestParam(value = "communityId", required = false) Long communityId);
+
+    /**
+     * 根据巡查记录id查询安全工作记录详情
+     *
+     * @param patrolRecordId
+     *            巡查记录id
+     * @return 安全工作记录详情查询结果
+     */
+    @GetMapping("/patrolRecord/safetyWorkRecord/detailByPrId")
+    R detailSafetyWorkRecordByPrId(@RequestParam(value = "patrolRecordId") Long patrolRecordId,
+                                   @RequestParam(value = "communityId", required = false) Long communityId);
+
+    /**
+     * 分页查询隐患报告
+     *
+     * @param comSwPatrolRecordPageDTO
+     *            查询参数
+     * @return 隐患报告分页集合
+     */
+    @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查询详情
+     *
+     * @param dangerReportId
+     *            隐患报告id
+     * @return 隐患报告详情查询结果
+     */
+    @GetMapping("/patrolRecord/dangerReport/detail")
+    R detailDangerReport(@RequestParam(value = "dangerReportId") Long dangerReportId);
+
+    /**
+     * 根据巡查记录id查询隐患报告详情
+     *
+     * @param patrolRecordId
+     *            巡查记录id
+     * @return 隐患报告详情查询结果
+     */
+    @GetMapping("/patrolRecord/dangerReport/detailByPrId")
+    R detailDangerReportByPrId(@RequestParam(value = "patrolRecordId") Long patrolRecordId);
+
+    /**
+     * 处理隐患报告
+     *
+     * @param comSwDangerReportHandleDTO
+     *            隐患报告处理参数
+     * @return 处理结果
+     */
+    @PostMapping("/patrolRecord/dangerReport/handle")
+    R handleDangerReport(@RequestBody ComSwDangerReportHandleDTO comSwDangerReportHandleDTO);
+
+    /**
+     * 整改隐患报告
+     *
+     * @param comSwDangerReportRectifyDTO
+     *            隐患报告整改参数
+     * @return 整改结果
+     */
+    @PostMapping("/patrolRecord/dangerReport/rectify")
+    R rectifyDangerReport(@RequestBody ComSwDangerReportRectifyDTO comSwDangerReportRectifyDTO);
+
+    /**
+     * 隐患报告台账导出
+     *
+     * @param dangerReportIds
+     * @return
+     */
+    @PostMapping("/patrolRecord/dangerReport/export")
+    R exportDangerReport(@RequestBody List<Long> dangerReportIds);
+
+    /**
+     * 巡查记录统计接口
+     *
+     * @return 统计结果
+     */
+    @GetMapping("/patrolRecord/statistics")
+    R patrolRecordStatistics(@RequestParam(value = "communityId") Long communityId);
+
+    /**
+     * 小程序-查询积分说明
+     *
+     * @return 积分说明
+     */
+    @GetMapping("/integral/explain/applets")
+    R getIntegralExplainApplets();
+
+    /**
+     * 小程序-用户查询当前社区可领取积分规则列表
+     *
+     * @param userId
+     *            用户id
+     * @param communityId
+     *            社区id
+     * @return 可领取积分规则列表
+     */
+    @PostMapping("/integral/receive/applets")
+    R getIntegralReceiveApplets(@RequestParam("userId") Long userId, @RequestParam("communityId") Long communityId);
+
+    /**
+     * 小程序-积分统计
+     *
+     * @param userId
+     *            用户id
+     * @return 用户积分列表
+     */
+    @GetMapping("/integral/user/statistics")
+    R getIntegralUserListApplets(@RequestParam("userId") Long userId, @RequestParam(value = "communityId", required = false) Long communityId);
+
+    /**
+     * 查询我的积分余额
+     * @param userId
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/integral/user/balance")
+    R getUserIntegralBalance(@RequestParam("userId") Long userId, @RequestParam("communityId") Long communityId);
+
+    /**
+     * 小程序-查询社区积分账户排行榜
+     *
+     * @param communityRankDTO
+     *            请求参数
+     * @return 社区积分账户排行榜
+     */
+    @PostMapping("/integral/community/rank/applets")
+    R getIntegralCommunityRankApplets(@RequestBody ComActIntegralCommunityRankDTO communityRankDTO);
+
+    /**
+     * 小程序-查询用户社区积分明细
+     *
+     * @param communityTradeDTO
+     *            请求参数
+     * @return 用户社区积分明细
+     */
+    @PostMapping("/integral/community/trade/applets")
+    R getIntegralCommunityTradeApplets(@RequestBody ComActIntegralCommunityRankDTO communityTradeDTO);
+
+    /**
+     * 社区后台-根据社区id查询社区下积分规则列表
+     *
+     * @param integralRuleDTO
+     *            请求参数
+     * @return 社区下积分规则列表
+     */
+    @PostMapping("/integral/rule/list/admin")
+    R getIntegralRuleAdminList(@RequestBody PageComActIntegralRuleDTO integralRuleDTO);
+
+    /**
+     * 社区后台-编辑社区积分规则
+     *
+     * @param integralRuleDTO
+     *            请求参数
+     * @return 编辑结果
+     */
+    @PostMapping("/integral/rule/edit/admin")
+    R editIntegralRuleAdmin(@RequestBody EditComActIntegralRuleDTO integralRuleDTO);
+
+    /**
+     * 社区后台-分页查询社区下积分明细记录
+     *
+     * @param integralRuleDTO
+     *            请求参数
+     * @return 社区下积分明细记录
+     */
+    @PostMapping("/integral/user/trade/page/admin")
+    R getIntegralTradeListAdmin(@RequestBody PageComActIntegralTradeDTO integralRuleDTO);
+
+    /**
+     * 给用户添加积分
+     *
+     * @param integralUserDTO
+     *            请求参数
+     * @return 添加积分结果
+     */
+    @PostMapping("/integral/user/add/admin")
+    R addIntegralTradeAdmin(@RequestBody AddComActIntegralUserDTO integralUserDTO);
+
+    /**
+     * 根据社区活动id查询社区活动报名且未参与人员列表
+     *
+     * @param activityId
+     *            活动id
+     * @return 社区活动报名且未参与人员列表
+     */
+    @PostMapping("/integral/act/activity/admin")
+    R getTaskActivityPeopleList(@RequestParam("activityId") Long activityId);
+
+    /**
+     * 分页查询值班表
+     *
+     * @param comSwRotaPageDTO
+     *            查询参数
+     * @return 值班表分页集合
+     */
+    @PostMapping("/patrolRecord/rota/page")
+    R pageRota(@RequestBody ComSwRotaPageDTO comSwRotaPageDTO);
+
+    /**
+     * 根据id查询值班表
+     *
+     * @param rotaId
+     *            值班表id
+     * @return 值班表详情
+     */
+    @GetMapping("/patrolRecord/rota/detail")
+    R detailRota(@RequestParam("rotaId") Long rotaId);
+
+    /**
+     * 新增值班表
+     *
+     * @param comSwRotaSaveDTOs
+     *            新增参数
+     * @return 新增结果
+     */
+    @PostMapping("/patrolRecord/rota/add")
+    R addRota(@RequestBody List<ComSwRotaSaveDTO> comSwRotaSaveDTOs);
+
+    /**
+     * 批量删除值班表
+     *
+     * @param rotaIds
+     *            值班ids
+     * @return 删除结果
+     */
+    @PostMapping("/patrolRecord/rota/delete")
+    R deleteRota(@RequestBody List<Long> rotaIds);
+
+    /**
+     * 根据日期查询值班人员
+     *
+     * @return 查询结果
+     */
+    @GetMapping("/patrolRecord/rota/getRotaPersonByDate")
+    R getRotaPersonByDate(@RequestParam(value = "rotaDate") String rotaDate,@RequestParam("communityId")Long communityId);
+
+    /**
+     * 根据日期查询值班领导
+     *
+     * @return 查询结果
+     */
+    @GetMapping("/patrolRecord/rota/getRotaLeaderByDate")
+    R getRotaLeaderByDate(@RequestParam(value = "rotaDate") String rotaDate,@RequestParam("communityId")Long communityId);
+
+    /**
+     * 批量导入值班表
+     *
+     * @param list
+     *            值班表集合
+     */
+    @PostMapping("/patrolRecord/rota/import")
+    R listSaveSwRotaExcelVO(@RequestBody List<ComSwRotaExcelVO> list, @RequestParam("communityId") Long communityId);
+
+    /**
+     * 定时任务检测即将开始的社区活动,并使用订阅消息通知用户
+     */
+    @PostMapping("timedTaskActivityNotice")
+    R timedTaskActivityNotice();
+
+    /**
+     * 定时任务检测待发布,调研中的问卷调查状态
+     */
+    @PostMapping("timedTaskQuestionnaire")
+    R timedTaskQuestionnaire();
+
+    /**
+     * 查询社区所有列表
+     *
+     * @return 社区列表
+     */
+    @GetMapping("/switch/community/all/list")
+    R communitySwitchList(@RequestParam("appId") String appId);
+
+    /**
+     * 根据名字查询所有社区列表
+     *
+     * @param name
+     *            社区名字
+     * @return 社区列表
+     */
+    @GetMapping("/switch/community/search/list")
+    R communitySwitchSearchList(@RequestParam(value = "name") String name,@RequestParam(value = "appId") String appId);
+
+    /**
+     * 根据经纬度以及距离搜索附近社区列表
+     *
+     * @param communityDTO
+     *            请求参数
+     * @return 社区列表
+     */
+    @PostMapping("/switch/community/search/distance/list")
+    R communitySwitchSearchDistanceList(@RequestBody SearchCommunityDTO communityDTO);
+
+    /**
+     * 问卷调查统计汇总
+     *
+     * @param summaryDTO
+     *            请求参数
+     * @return 统计汇总
+     */
+    @PostMapping("/questnaire/statisticsSummary")
+    R statisticsSummary(@RequestBody StatisticsSummaryDTO summaryDTO);
+
+    /**
+     * 问卷调查统计汇总导出数据查询
+     *
+     * @param questId
+     *            调查问卷id
+     * @return 调查统计汇总导出数据
+     */
+    @GetMapping("/questnaire/statisticsSummary/export")
+    R statisticsSummaryExport(@RequestParam("questId") Long questId);
+
+    /**
+     * 问卷调查统计汇总表头统计
+     *
+     * @param questId
+     *            调查问卷id
+     * @return 问卷调查统计汇总表头统计数据
+     */
+    @GetMapping("/questnaire/statisticsSummary/header")
+    R statisticsSummaryHeader(@RequestParam("questId") Long questId, @RequestParam("communityId") Long communityId);
+
+    /**
+     * 运营后台-新增随手拍分类
+     *
+     * @param addPhotoClassify
+     *            请求参数
+     * @return 新增结果
+     */
+    @PostMapping("/classify/admin/add")
+    R addPhotoClassify(@RequestBody AddEasyPhotoClassifyDTO addPhotoClassify);
+
+    /**
+     * 运营后台-编辑随手拍分类
+     *
+     * @param addPhotoClassify
+     *            请求参数
+     * @return 编辑结果
+     */
+    @PostMapping("/classify/admin/edit")
+    R editPhotoClassify(@RequestBody AddEasyPhotoClassifyDTO addPhotoClassify);
+
+    /**
+     * 运营后台-分页查询随手拍分类
+     *
+     * @param addPhotoClassify
+     *            请求参数
+     * @return 随手拍分类列表
+     */
+    @PostMapping("/classify/admin/page")
+    R pagePhotoClassify(@RequestBody AddEasyPhotoClassifyDTO addPhotoClassify);
+
+    /**
+     * 运营后台-随手拍分类详情
+     *
+     * @param id
+     *            随手拍分类id
+     * @return 随手拍分类
+     */
+    @GetMapping("/classify/admin/detail")
+    R detailPhotoClassify(@RequestParam("id") Long id);
+
+    /**
+     * 运营后台-随手拍分类删除
+     *
+     * @param id
+     *            随手拍分类id
+     * @return 删除结果
+     */
+    @GetMapping("/classify/admin/delete")
+    R deletePhotoClassify(@RequestParam("id") Long id);
+
+    /**
+     * 运营后台-查询随手拍分类列表
+     *
+     * @return 随手拍分类列表
+     */
+    @GetMapping("/classify/admin/list")
+    R listPhotoClassify(@RequestParam("areaCode") String areaCode);
+
+    /**
+     * 社区后台-切换随手拍公示状态
+     *
+     * @param comActEasyPhotoVO
+     *            请求参数
+     * @return 切换结果
+     */
+    @PostMapping("/easyphoto/switch/publicity")
+    R easyPhotoSwitchPublicity(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO);
+
+    /**
+     * 查询社区待处理随手拍id集合
+     *
+     * @param communityId
+     *            社区id
+     * @return 社区待处理随手拍id集合
+     */
+    @GetMapping("/easyphoto/noHandle/list")
+    R easyPhotoNoHandleList(@RequestParam("communityId") Long communityId);
+
+    @GetMapping("/reserve/detail")
+    R reserveDetail(@RequestParam("id") Long id,@RequestParam("userId") Long userId,@RequestParam("recordId") Long recordId,@RequestParam("isBack") Integer isBack);
+
+    @PostMapping("/reserve/commit")
+    R reserveCommit(@RequestBody ComActReserveCommitVO comActReserveCommitVO);
+
+    @PostMapping("/reserve/commitNoToken")
+    R reserveCommitNoToken(@RequestBody ComActReserveCommitVO comActReserveCommitVO);
+
+    @PostMapping("/reserve/homeQuarantine/commitNoToken")
+    R homeQuarantineCommitNoToken(@RequestBody ComActReserveCommitVO comActReserveCommitVO);
+    /**
+     * 我的预约/登记
+     * @param pageUserReserveDTO
+     * @return
+     */
+    @PostMapping("/reserve/userReserveList")
+    R userReserveList(@RequestBody PageUserReserveDTO pageUserReserveDTO);
+
+    /**
+     * 取消预约/登记
+     */
+    @PostMapping("/reserve/cancelReserve")
+    R userCancelReserve(@RequestBody CancelRecordDTO comActReserveRecordDO);
+
+    /**
+     * 预约详情操作记录
+     */
+    @PostMapping("/reserve/detailOperation")
+    R reserveOperation(@RequestBody OperationDetailDTO comActReserveOperationRecordDO);
+
+    /**
+     * 社区后台-分页查询预约登记列表
+     * @param pageReserveDTO    请求参数
+     * @return  预约登记列表
+     */
+    @PostMapping("/reserve/admin/page")
+    R pageReserveAdmin(@RequestBody PageReserveAdminDTO pageReserveDTO);
+
+    /**
+     * 社区后台-新增预约登记信息
+     * @param addReserveDTO 请求参数
+     * @return  新增结果
+     */
+    @PostMapping("/reserve/admin/add")
+    R addReserveAdmin(@RequestBody AddReserveAdminDTO addReserveDTO);
+
+    /**
+     * 社区后台-编辑预约登记信息
+     * @param editReserveDTO 请求参数
+     * @return  新增结果
+     */
+    @PostMapping("/reserve/admin/edit")
+    R editReserveAdmin(@RequestBody EditReserveAdminDTO editReserveDTO);
+
+    /**
+     * 社区后台-修改预约登记状态
+     * @param editReserveDTO    请求参数
+     * @return  修改结果
+     */
+    @PostMapping("/reserve/admin/edit/status")
+    R editReserveStatusAdmin(@RequestBody EditComActReserveStatusDTO editReserveDTO);
+
+    /**
+     * 社区后台-继续预约登记
+     * @param editReserveDTO    请求参数
+     * @return  修改结果
+     */
+    @PostMapping("/reserve/admin/edit/info")
+    R editReserveInfoAdmin(@RequestBody EditComActReserveInfoDTO editReserveDTO);
+
+    /**
+     * 社区后台-根据预约登记id查询详情
+     * @param reserveId 预约登记id
+     * @return  预约登记详情
+     */
+    @GetMapping("/reserve/admin/detail")
+    R<ComActReserveDetailAdminVO> detailReserveAdmin(@RequestParam("reserveId") Long reserveId);
+
+    /**
+     * 社区后台-根据社区id统计预约类数据
+     * @param makeStatisticsDTO   请求参数
+     * @return  统计预约类数据
+     */
+    @PostMapping("/reserve/admin/make/statistics")
+    R makeStatisticsAdmin(@RequestBody ComActReserveMakeStatisticsDTO makeStatisticsDTO);
+
+    /**
+     * 社区后台-查询导出预约统计汇总数据
+     * @param makeStatisticsDTO   请求参数
+     * @return  统计预约类数据
+     */
+    @PostMapping("/reserve/admin/make/statistics/export")
+    R makeStatisticsExportAdmin(@RequestBody ComActReserveMakeStatisticsDTO makeStatisticsDTO);
+
+    /**
+     * 社区后台-根据预约id查询预约明细
+     * @param pageMakeDTO   请求参数
+     * @return  预约明细
+     */
+    @PostMapping("/reserve/admin/make/page")
+    R pageMakeAdmin(@RequestBody PageReserveMakeAdminDTO pageMakeDTO);
+
+    /**
+     * 根据预约记录id查询预约明细操作记录
+     * @param reserveRecordId   预约记录id
+     * @return  预约明细操作记录
+     */
+    @GetMapping("/reserve/admin/make/detail")
+    R detailMakeAdmin(@RequestParam("reserveRecordId") Long reserveRecordId);
+
+    /**
+     * 批量取消预约记录
+     * @param reserveRecordDTO   请求参数
+     * @return  取消结果
+     */
+    @PostMapping("/reserve/admin/make/cancel")
+    R makeCancelAdmin(@RequestBody CancelReserveRecordDTO reserveRecordDTO);
+
+    /**
+     * 预约明细导出数据查询
+     * @param pageMakeDTO   请求参数
+     * @return  预约明细数据
+     */
+    @PostMapping("/reserve/admin/make/list/export")
+    R exportMakeAdmin(@RequestBody PageReserveMakeAdminDTO pageMakeDTO);
+
+    /**
+     * 分页查询登记统计汇总
+     * @param registerStatisticsDTO 请求参数
+     * @return  登记统计汇总
+     */
+    @PostMapping("/reserve/admin/register/page")
+    R registerStatisticsAdmin(@RequestBody ComActReserveRegisterStatisticsDTO registerStatisticsDTO);
+
+    /**
+     * 导出登记统计汇总
+     * @param registerStatisticsDTO 请求参数
+     * @return  登记统计汇总
+     */
+    @PostMapping("/reserve/admin/register/export")
+    R registerStatisticsExportAdmin(@RequestBody ComActReserveRegisterStatisticsDTO registerStatisticsDTO);
+
+    /**
+     * 分页查询预约处理列表
+     * @param pageMakeHandleDTO 请求参数
+     * @return  预约处理列表
+     */
+    @PostMapping("/reserve/admin/make/handle/page")
+    R pageMakeHandleAdmin(@RequestBody PageReserveMakeHandleAdminDTO pageMakeHandleDTO);
+
+    /**
+     * 批量处理预约记录
+     * @param makeHandleDTO 请求参数
+     * @return  处理结果
+     */
+    @PostMapping("/reserve/admin/make/handle")
+    R makeHandleAdmin(@RequestBody MakeHandleAdminDTO makeHandleDTO);
+
+    /**
+     * 导出预约处理列表数据查询
+     * @param pageMakeHandleDTO 请求参数
+     * @return  预约处理列表
+     */
+    @PostMapping("/reserve/admin/make/handle/export")
+    R exportMakeHandleAdmin(@RequestBody PageReserveMakeHandleAdminDTO pageMakeHandleDTO);
+
+    /**
+     * 删除预约登记信息
+     * @param reserveId 预约登记id
+     * @return  删除结果
+     */
+    @GetMapping("/reserve/admin/delete")
+    R deleteReserveAdmin(@RequestParam("reserveId") Long reserveId);
+
+    /**
+     * 查询社区所有预约信息列表
+     * @param communityId   社区id
+     * @return  预约信息列表
+     */
+    @GetMapping("/reserve/admin/list")
+    R listReserveAdmin(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 导出登记明细数据
+     *
+     * @param pageReserveRegisterDetailedAdminDTO
+     * @return 登记明细数据
+     */
+    @PostMapping("/reserve/admin/register/list/export")
+    R exportRegisterAdmin(@RequestBody PageReserveRegisterDetailedAdminDTO pageReserveRegisterDetailedAdminDTO);
+
+    /**
+     * 查询预约登记题目下属选择项列表
+     *
+     * @param reserveSubId
+     *            预约登记id
+     * @return 查询预约登记题目下属选择项列表
+     */
+    @GetMapping("/reserve/admin/subject/selection/list")
+    List<String> subjectSelectionListAdmin(@RequestParam("reserveSubId") Long reserveSubId);
+    /**
+     * 查询预约登记题目列表
+     * @param reserveId 预约登记id
+     * @return  约登记题目列表
+     */
+    @GetMapping("/reserve/admin/subject/list")
+    R subjectListAdmin(@RequestParam("reserveId") Long reserveId);
+
+    /**
+     * 分页查询登记明细列表
+     * @param detailedAdminDTO  请求参数
+     * @return  登记明细列表
+     */
+    @PostMapping("/reserve/admin/register/detailed/list")
+    R registerDetailedListAdmin(@RequestBody PageReserveRegisterDetailedAdminDTO detailedAdminDTO);
+
+    /**
+     * 导出登记明细列表
+     * @param detailedAdminDTO  请求参数
+     * @return  登记明细列表
+     */
+    @PostMapping("/reserve/admin/register/detailed/list/export")
+    R registerDetailedListAdminExport(@RequestBody PageReserveRegisterDetailedAdminDTO detailedAdminDTO);
+
+    /**
+     * 查询登记详情记录
+     * @param reserveRecordId   登记记录id
+     * @return  登记详情记录
+     */
+    @GetMapping("/reserve/admin/register/detailed/detail")
+    R registerDetailedDetailAdmin(@RequestParam("reserveRecordId") Long reserveRecordId);
+    /**
+     * 活动签到
+     *
+     * @param comActActRegistVO 请求参数
+     * @return 签到结果
+     */
+    @PostMapping("/activity/sign-in")
+    R activitySignIn(@RequestBody ComActActRegistVO comActActRegistVO);
+
+    /**
+     * 用户签到列表
+     *
+     * @param userId 用户id
+     * @return 用户签到记录列表
+     */
+    @GetMapping("/sign-in/user/list")
+    R listSignInActivity(@RequestParam("userId") Long userId);
+
+    /**
+     * 社区活动评价
+     *
+     * @param comActActEvaluateVO 社区评价VO
+     * @return 评价结果
+     */
+    @PostMapping("/activity/evaluate")
+    R activityEvaluate(@RequestBody ComActActEvaluateVO comActActEvaluateVO);
+
+    /**
+     * 用户评价列表
+     *
+     * @param userId 用户id
+     * @return 当前用户对所有活动的评价列表
+     */
+    @GetMapping("/evaluate/user/list")
+    R listEvaluate(@RequestParam("userId") Long userId);
+
+    /**
+     * 定时任务针对活动结束后7天还未评价的用户默认好评
+     */
+    @PostMapping("/activity/default-praise")
+    R timedTaskActivityDefaultPraise();
+
+    /**
+     * 小程序-用户新增话题
+     * @param circleTopicAppDTO 请求参数
+     * @return  新增结果
+     */
+    @PostMapping("/neighbor/addNeighborTopicByApp")
+    R addNeighborTopicByApp(@RequestBody AddNeighborCircleTopicAppDTO circleTopicAppDTO);
+
+    /**
+     * 小程序-删除邻里圈
+     * @param circleTopicAppDTO 请求参数
+     * @return  删除结果
+     */
+    @PostMapping("/neighbor/deleteNeighborByApp")
+    R deleteNeighborByApp(@RequestBody DeleteNeighborCircleAppDTO circleTopicAppDTO);
+
+
+    /**
+     * 分页查询邻里圈列表
+     *
+     * @param neighborCircleAppDTO
+     *            请求参数
+     * @return 邻里圈列表
+     */
+    @PostMapping("/neighbor/selectSolve")
+    R selectSolve(@RequestBody ComActNeighborCircleAppDTO neighborCircleAppDTO);
+
+
+    /**
+     * 修改数据
+     * @param editNeighborCircleAdminVO
+     * @return
+     */
+    @PostMapping("/neighbor/update")
+    R order(@RequestBody EditNeighborCircleAdminVO editNeighborCircleAdminVO);
+
+    @PostMapping("/neighbor/serviceStatic")
+    R serviceStatic(@RequestBody ServiceStaticDTO serviceStaticDTO);
+
+    /**
+     * 求助我的问题数量统计
+     * @param type
+     * @param phone
+     * @return
+     */
+    @GetMapping("/neighbor/selectCount")
+    R selectCount(@RequestParam("type")Integer type,@RequestParam(value = "phone",required = false)String phone,@RequestParam("communityId")Long communityId);
+
+    /**
+     * 获取系统配置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();
+
+    /**
+     * 身份认证定时任务
+     * @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 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/comActSocialOrg/queryAll")
+    R comActSocialOrgSelectAll(CommonPage commonPage);
+
+    /**
+     * 新增数据
+     *
+     * @param comActSocialOrg 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/comActSocialOrg")
+    R comActSocialOrgInsert(@RequestBody ComActSocialOrgVO comActSocialOrg);
+
+    /**
+     * 修改数据
+     *
+     * @param comActSocialOrg 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/comActSocialOrg/update")
+    R comActSocialOrgUpdate(@RequestBody ComActSocialOrgVO comActSocialOrg);
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("/comActSocialOrg/del")
+    R comActSocialOrgDelete(@RequestParam("id") Long id);
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/comActCommittee/queryAll")
+    R comActCommitteeSelectAll(@RequestBody CommonPage commonPage);
+    /**
+     * 新增数据
+     *
+     * @param comActCommittee 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/comActCommittee")
+    R comActCommitteeInsert(@RequestBody ComActCommiteeVO comActCommittee);
+    /**
+     * 修改数据
+     *
+     * @param comActCommittee 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/comActCommittee/update")
+    R comActCommitteeUpdate(@RequestBody ComActCommiteeVO comActCommittee);
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("/comActCommittee/del")
+    R comActCommitteeDelete(@RequestParam("id") Long id);
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/comProperty/queryAll")
+    R comPropertySelectAll(@RequestBody CommonPage commonPage);
+    /**
+     * 新增数据
+     *
+     * @param comPropertyVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/comProperty")
+    R comPropertyInsert(@RequestBody ComPropertyVO comPropertyVO);
+    /**
+     * 修改数据
+     *
+     * @param comPropertyVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/comProperty/update")
+    R comPropertyUpdate(@RequestBody ComPropertyVO comPropertyVO);
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("/comProperty/del")
+    R comPropertyDelete(@RequestParam("id") Long id);
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/comActFourMember/queryAll")
+    R comActFourMemberSelectAll(@RequestBody CommonPage commonPage);
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/comActFourMember/{id}")
+    R comActFourMemberSelectOne(@PathVariable("id") Long id);
+
+    /**
+     * 新增数据
+     *
+     * @param comActFourMember 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/comActFourMember")
+    R comActFourMemberInsert(@RequestBody ComActFourMemberVO comActFourMember);
+
+    /**
+     * 修改数据
+     *
+     * @param comActFourMember 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/comActFourMember/update")
+    R comActFourMemberUpdate(@RequestBody ComActFourMemberVO comActFourMember);
+
+    /**
+     * 删除数据
+     *
+     * @param comActFourMember 主键结合
+     * @return 删除结果
+     */
+    @PostMapping("/comActFourMember/del")
+    R comActFourMemberDelete(@RequestBody ComActFourMemberVO comActFourMember);
+
+    /**
+     * 楼栋查询
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/building/query")
+    R comActFourMemberQueryBuilding(@RequestParam("communityId")Long communityId);
+
+    /**
+     * 查询房屋二级级联菜单
+     *
+     * @param cascadeHouseDTO
+     *            请求参数
+     * @return 菜单列表
+     */
+    @PostMapping("/common/data/population/second/list")
+    R getSecondHouseAddress(@RequestBody CascadeHouseDTO cascadeHouseDTO);
+
+    /**
+     * 查询房屋二级级联菜单后台
+     *
+     * @param cascadeHouseDTO
+     *            请求参数
+     * @return 菜单列表
+     */
+    @PostMapping("/common/data/population/second/listBack")
+    R getSecondHouse(@RequestBody CascadeHouseDTO cascadeHouseDTO);
+
+    /**
+     * 微心愿处理人列表
+     * @param communityId   社区id
+     * @param type  处理人类型(1.后台用户  2.党员  3.志愿者)
+     * @return  处理人列表
+     */
+    @GetMapping("/wish/handle/list/admin")
+    R wishHandleListAdmin(@RequestParam(value = "communityId") Long communityId,@RequestParam("type") Integer type);
+
+    /**
+     * 便民服务新增分类
+     * @param convenientServiceCategoryDTO
+     * @return
+     */
+    @PostMapping("/convenient/service-category/add")
+    R addServiceCategory(@RequestBody ConvenientServiceCategoryDTO convenientServiceCategoryDTO);
+
+    /**
+     * 便民服务分类编辑
+     * @param convenientServiceCategoryDTO
+     * @return
+     */
+    @PutMapping("/convenient/service-category/put")
+    R putServiceCategory(@RequestBody ConvenientServiceCategoryDTO convenientServiceCategoryDTO);
+
+    /**
+     * 便民服务分类删除
+     * @param categoryId
+     * @return
+     */
+    @DeleteMapping("/convenient/service-category/delete")
+    R deleteServiceCategory(@RequestParam("categoryId") Long categoryId, @RequestParam("operator") Long operator);
+
+    /**
+     * 获取便民服务分类详情
+     * @param categoryId
+     * @return
+     */
+    @GetMapping("/convenient/service-category/get")
+    R getServiceCategory(@RequestParam("categoryId") Long categoryId);
+
+    /**
+     * 分页查询便民服务分类
+     * @param pageConvenientServiceCategoryDTO
+     * @return
+     */
+    @PostMapping("/convenient/service-category/page")
+    R pageServiceCategory(@RequestBody PageConvenientServiceCategoryDTO pageConvenientServiceCategoryDTO);
+
+    /**
+     * 便民服务新增商家
+     * @param convenientMerchantDTO
+     * @return
+     */
+    @PostMapping("/convenient/merchant/add")
+    R addMerchant(@RequestBody ConvenientMerchantDTO convenientMerchantDTO);
+
+    /**
+     * 编辑便民服务商家
+     * @param convenientMerchantDTO
+     * @return
+     */
+    @PutMapping("/convenient/merchant/put")
+    R putMerchant(@RequestBody ConvenientMerchantDTO convenientMerchantDTO);
+
+    /**
+     * 删除便民服务商家
+     * @param merchantId
+     * @param operator
+     * @return
+     */
+    @DeleteMapping("/convenient/merchant/delete")
+    R deleteMerchant(@RequestParam("merchantId") Long merchantId, @RequestParam("operator") Long operator);
+
+    /**
+     * 分页查询便民服务商家
+     * @param pageConvenientMerchantDTO
+     * @return
+     */
+    @PostMapping("/convenient/merchant/page")
+    R pageMerchant(@RequestBody PageConvenientMerchantDTO pageConvenientMerchantDTO);
+
+    /**
+     * 获取便民服务商家详情
+     * @param merchantId
+     * @return
+     */
+    @GetMapping("/convenient/merchant/get")
+    R getMerchant(@RequestParam("merchantId") Long merchantId);
+
+    /**
+     * 获取便民服务商家详情
+     * @param userId
+     * @return
+     */
+    @GetMapping("/convenient/merchant/getMerchantByUserId")
+    R getMerchantByUserId(@RequestParam("userId") Long userId);
+
+    /**
+     * 禁用/启用便民服务商家
+     * @param disableOrEnableConvenientMerchantDTO
+     * @return
+     */
+    @PutMapping("/convenient/merchant/disable-or-enable")
+    R disableOrEnableMerchant(@RequestBody DisableOrEnableConvenientMerchantDTO disableOrEnableConvenientMerchantDTO);
+
+    /**
+     * 重置便民服务商家账号密码
+     * @param resetPasswordConvenientMerchantDTO
+     * @return
+     */
+    @PutMapping("/convenient/merchant/reset-password")
+    R resetPasswordMerchant(@RequestBody ResetPasswordConvenientMerchantDTO resetPasswordConvenientMerchantDTO);
+
+    /**
+     * 获取所有便民服务分类
+     * @return
+     */
+    @GetMapping("/convenient/service-category/all")
+    R getAllServiceCategories(@RequestParam("areaCode") String areaCode);
+
+    /**
+     * 获取用户便民服务商家详情
+     * @param account 商家绑定账号
+     * @return
+     */
+    @GetMapping("/convenient/getUserMerchantInfoByAccount")
+    R<ConvenientMerchantVO> getUserMerchantInfoByAccount(@RequestParam("account") String account);
+
+    /**
+     * 获取用户便民服务商家详情
+     * @param account 商家绑定账号
+     * @return
+     */
+    @GetMapping("/convenient/getMerchantInfoByAccount")
+    R<ConvenientMerchantVO> getMerchantInfoByAccount(@RequestParam("account") String account);
+
+    /**
+     * 获取商便民服务商家信息
+     * @param userId
+     * @return
+     */
+    @GetMapping("/convenient/merchantInfo")
+    R<ConvenientMerchantVO> getUserConvenientMerchantInfo(@RequestParam("userId") Long userId);
+
+    /**
+     * 新增便民服务产品分类信息
+     * @param convenientProductCategoryDTO
+     * @return
+     */
+    @PostMapping("/convenient/product-category/add")
+    R addProductCategory(@RequestBody ConvenientProductCategoryDTO convenientProductCategoryDTO);
+
+    /**
+     * 编辑便民服务产品分类信息
+     * @param convenientProductCategoryDTO
+     * @return
+     */
+    @PutMapping("/convenient/product-category/put")
+    R putProductCategory(@RequestBody ConvenientProductCategoryDTO convenientProductCategoryDTO);
+
+    /**
+     * 删除便民服务产品分类信息
+     * @param categoryId
+     * @param operator
+     * @return
+     */
+    @DeleteMapping("/convenient/product-category/delete")
+    R deleteProductCategory(@RequestParam("categoryId") Long categoryId, @RequestParam("operator") Long operator);
+
+    /**
+     * 获取便民服务产品分类详情
+     * @param categoryId
+     * @return
+     */
+    @GetMapping("/convenient/product-category/get")
+    R getProductCategory(@RequestParam("categoryId") Long categoryId);
+
+    /**
+     * 分页查询便民服务产品分类信息
+     * @param pageConvenientProductCategoryDTO
+     * @return
+     */
+    @PostMapping("/convenient/product-category/page")
+    R pageProductCategory(@RequestBody PageConvenientProductCategoryDTO pageConvenientProductCategoryDTO);
+
+    /**
+     * 便民服务商家后台新增产品
+     * @param convenientProductDTO
+     * @return
+     */
+    @PostMapping("/convenient/product/add")
+    R addProduct(@RequestBody ConvenientProductDTO convenientProductDTO);
+
+    /**
+     * 便民服务商家后台编辑产品
+     * @param convenientProductDTO
+     * @return
+     */
+    @PutMapping("/convenient/product/put")
+    R putProduct(@RequestBody ConvenientProductDTO convenientProductDTO);
+
+    /**
+     * 便民服务商家后台获取产品详情
+     * @param productId
+     * @return
+     */
+    @GetMapping("/convenient/product/get")
+    R getProduct(@RequestParam("productId") Long productId);
+
+    /**
+     * 便民服务商家后台分页获取产品信息
+     * @param pageConvenientProductDTO
+     * @return
+     */
+    @PostMapping("/convenient/product/page")
+    R pageProduct(@RequestBody PageConvenientProductDTO pageConvenientProductDTO);
+
+    /**
+     * 便民服务商家后台删除产品信息
+     * @param deleteConvenientProductDTO
+     * @return
+     */
+    @DeleteMapping("/convenient/product/delete")
+    R deleteProduct(@RequestBody DeleteConvenientProductDTO deleteConvenientProductDTO);
+
+    /**
+     * 便民服务商家后台上架/下架产品
+     * @param onShelfOrOffShelfProductDTO
+     * @return
+     */
+    @PutMapping("/convenient/product/onShelf-or-offShelf")
+    R onShelfOrOffShelfProduct(@RequestBody OnShelfOrOffShelfProductDTO onShelfOrOffShelfProductDTO);
+
+    /**
+     * 获取所有产品分类
+     * @return
+     * @param merchantId
+     */
+    @GetMapping("/convenient/product-category/all")
+    R getAllProductCategory(@RequestParam("merchantId") Long merchantId);
+
+    /**
+     * 获取该社区商家数量大于0的分类
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/convenient/service-category/suitable")
+    R getSuitableServiceCategories(@RequestParam("communityId") Long communityId,@RequestParam("areaCode")String areaCode);
+
+    /**
+     * 获取该社区下的热门商家
+     * @param pagePopularMerchantDTO
+     * @return
+     */
+    @PostMapping("/convenient/merchant/popular")
+    R getPopularMerchants(@RequestBody PagePopularMerchantDTO pagePopularMerchantDTO);
+
+    /**
+     * 分页获取服务类型下商家信息
+     * @param pageClassifyMerchantDTO
+     * @return
+     */
+    @PostMapping("/convenient/merchant/classify")
+    R getClassifyMerchants(@RequestBody PageClassifyMerchantDTO pageClassifyMerchantDTO);
+
+    /**
+     * 获取商家详情
+     * @param merchantId
+     * @return
+     */
+    @GetMapping("/convenient/merchant/detail")
+    R getMerchantDetail(@RequestParam("merchantId") Long merchantId);
+
+    /**
+     * 获取商家产品
+     * @param merchantId
+     * @return
+     */
+    @GetMapping("/convenient/product/list")
+    R getMerchantProduct(@RequestParam("merchantId") Long merchantId);
+
+    /**
+     * 获取产品详情
+     * @param productId
+     * @return
+     */
+    @GetMapping("/convenient/product/detail")
+    R getProductDetail(@RequestParam("productId") Long productId);
+
+    /**
+     * 搜索商家信息
+     * @param pageSearchDTO
+     * @return
+     */
+    @PostMapping("/convenient/merchant/search")
+    R pageSearchMerchant(@RequestBody PageSearchDTO pageSearchDTO);
+
+    /**
+     * 搜索商品信息
+     * @param pageSearchDTO
+     * @return
+     */
+    @PostMapping("/convenient/product/search")
+    R pageSearchProduct(@RequestBody PageSearchDTO pageSearchDTO);
+
+    /**
+     * 增加商家店铺咨询量
+     * @param merchantId
+     * @return
+     */
+    @GetMapping("/convenient/merchant/consult")
+    R consultMerchant(@RequestParam("merchantId") Long merchantId);
+
+    /**
+     * 增加产品浏览量
+     * @param productId
+     * @return
+     */
+    @GetMapping("/convenient/product/incr-view")
+    R incrProductView(@RequestParam("productId") Long productId);
+
+    /**
+     * 获取商家导出数据
+     * @param exportMerchantDTO
+     * @return
+     */
+    @PostMapping("/convenient/merchant/export")
+    R exportMerchant(@RequestBody ExportMerchantDTO exportMerchantDTO);
+
+    /**
+     * 增加商家店铺浏览量
+     * @param merchantId
+     * @return
+     */
+    @GetMapping("/convenient/merchant/incr-view")
+    R incrMerchantView(@RequestParam("merchantId") Long merchantId);
+
+    /**
+     * 定时任务每隔半小时将商家浏览量和咨询量总值计入指定商家数据中
+     * @return
+     */
+    @PostMapping("/convenient/timedTaskWriteDataToMerchantJobHandler")
+    R timedTaskWriteDataToMerchantJobHandler();
+
+    /**
+     * 获取商家上下架产品数量
+     * @param merchantId
+     * @return
+     */
+    @GetMapping("/convenient/product/shelf-num")
+    R getProductShelfNum(@RequestParam("merchantId") Long merchantId);
+
+    /**
+     * 群团组织成员列表-小程序分页查询
+     * @param pageClusterMemberDto  请求参数
+     * @return  群团组织成员列表
+     */
+    @PostMapping("/cluster/member/page/applets")
+    R pageClusterMemberApplets(@RequestBody PageClusterMemberDto pageClusterMemberDto);
+
+    /**
+     * 群团组织列表-小程序查询社区群团组织列表
+     * @param communityId   社区id
+     * @return  社区群团组织列表
+     */
+    @GetMapping("/cluster/list/applets")
+    R listClusterApplets(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 分页查询群团组织列表
+     * @param pageClusterAdminDto  请求参数
+     * @return  群团组织列表
+     */
+    @PostMapping("/cluster/page/admin")
+    R pageClusterAdmin(@RequestBody PageClusterAdminDto pageClusterAdminDto);
+
+    /**
+     * 新增群团组织
+     * @param addClusterAdminDto    请求参数
+     * @return  新增结果
+     */
+    @PostMapping("/cluster/add/admin")
+    R addClusterAdmin(@RequestBody AddClusterAdminDto addClusterAdminDto);
+
+    /**
+     * 修改群团组织
+     * @param editClusterAdminDto   请求参数
+     * @return  修改结果
+     */
+    @PostMapping("/cluster/edit/admin")
+    R editClusterAdmin(@RequestBody EditClusterAdminDto editClusterAdminDto);
+
+    /**
+     * 删除群团组织
+     * @param id    组织id
+     * @return  删除结果
+     */
+    @GetMapping("/cluster/delete/admin")
+    R deleteClusterAdmin(@RequestParam("id") Long id);
+
+    /**
+     * 群团组织详情
+     * @param id    组织id
+     * @return  群团组织详情
+     */
+    @GetMapping("/cluster/detail/admin")
+    R detailClusterAdmin(@RequestParam("id") Long id);
+
+    /**
+     * 分页查询群团组织成员列表
+     * @param pageClusterMemberAdminDto 请求参数
+     * @return  群团组织成员列表
+     */
+    @PostMapping("/cluster/member/page/admin")
+    R pageClusterMemberAdmin(@RequestBody PageClusterMemberAdminDto pageClusterMemberAdminDto);
+
+    /**
+     * 新增群团组织成员
+     * @param addClusterMemberAdminDto  请求参数
+     * @return  新增结果
+     */
+    @PostMapping("/cluster/member/add/admin")
+    R addClusterMemberAdmin(@RequestBody AddClusterMemberAdminDto addClusterMemberAdminDto);
+
+    /**
+     * 编辑群团组织成员
+     * @param editClusterMemberAdminDto 请求参数
+     * @return  编辑结果
+     */
+    @PostMapping("/cluster/member/edit/admin")
+    R editClusterMemberAdmin(@RequestBody EditClusterMemberAdminDto editClusterMemberAdminDto);
+
+    /**
+     * 删除群团组织成员
+     * @param id    组织成员id
+     * @return  删除结果
+     */
+    @GetMapping("/cluster/member/delete/admin")
+    R deleteClusterMemberAdmin(@RequestParam("id") Long id);
+
+    /**
+     * 群团组织成员详情
+     * @param id    组织成员id
+     * @return  群团组织成员详情
+     */
+    @GetMapping("/cluster/member/detail/admin")
+    R detailClusterMemberAdmin(@RequestParam("id") Long id);
+
+    /**
+     * 查询系统民族列表
+     * @return  民族列表
+     */
+    @GetMapping("/cluster/member/nation/list/admin")
+    R memberNationListAdmin();
+
+    /**
+     * 群团组织成员导入
+     * @param list  导入数据
+     * @param communityId   社区id
+     * @param userId    操作用户id
+     * @return  导入结果
+     */
+    @PostMapping("/cluster/member/import/admin")
+    R importClusterMember(@RequestBody List<ComClusterMemberExcelVO> list,
+                                     @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
+
+    /**
+     * 群团组织导出数据查询
+     * @param pageClusterMemberAdminDto 请求参数
+     * @return  导出数据结果集
+     */
+    @PostMapping("/cluster/member/export/admin")
+    R exportClusterMember(@RequestBody PageClusterMemberAdminDto pageClusterMemberAdminDto);
+
+    /**
+     * 社区后台分页查询微心愿
+     * @param comActMicroWishVO 请求参数
+     * @return  微心愿列表
+     */
+    @PostMapping("pagemicrowishAdmin")
+    R pageMicroWishAdmin(@RequestBody ComActMicroWishVO comActMicroWishVO);
+
+    /**
+     * 小程序四长四员查询居民列表
+     */
+    @PostMapping("/comActFourMember/member")
+    R comActFourMemberQueryMember(@RequestBody CommonPage commonPage);
+
+    /**
+     *居民数据详情
+     */
+    @GetMapping("/comActFourMember/memberDetail")
+    R comActFourMemberMemberDetail(@RequestParam("id")Long id);
+
+    /**
+     * 根据房屋id列表删除房屋信息
+     *
+     * @param comMngPopulationHouseUserVO
+     *            请求参数
+     * @return 删除结果
+     */
+    @PostMapping("/common/data/population/house/user/delete")
+    R deleteHousesUser(@RequestBody ComMngPopulationHouseUserVO comMngPopulationHouseUserVO);
+
+    /**
+     * 新增实有房屋信息
+     *
+     * @param comMngPopulationHouseUserVO
+     *            请求参数
+     * @return 编辑结果
+     */
+    @PostMapping("/common/data/population/house/user/insert")
+    public R insertHouseUser(@RequestBody ComMngPopulationHouseUserVO comMngPopulationHouseUserVO);
+
+    /**
+     * 编辑实有房屋信息
+     *
+     * @param comMngPopulationHouseUserVO
+     *            请求参数
+     * @return 编辑结果
+     */
+    @PostMapping("/common/data/population/house/user/edit")
+    public R editHouseUser(@RequestBody ComMngPopulationHouseUserVO comMngPopulationHouseUserVO);
+
+    /**
+     * 根据id查询
+     *
+     * @param id
+     *            请求参数
+     * @return 删除结果
+     */
+    @GetMapping("/common/data/population/house/user/detail")
+    public R detailHousesUser(@RequestParam("id") Long id);
+
+    /**
+     * 社区后台-分页查询楼栋列表
+     * @param pageBuildingListDto   请求参数
+     * @return  楼栋列表
+     */
+    @PostMapping("/building/page/admin/")
+    R pageBuildingAdmin(@RequestBody PageBuildingListDto pageBuildingListDto);
+
+    /**
+     * 社区后台-查询楼栋列表表头统计数据
+     * @param communityId   社区id
+     * @return  楼栋列表表头统计数据
+     */
+    @GetMapping("/building/header/statistics/")
+    R buildingListHeaderStatisticsAdmin(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 社区后台-查询楼栋详情
+     * @param id    楼栋id
+     * @return  楼栋详情
+     */
+    @GetMapping("/building/detail/admin/")
+    R detailBuildAdmin(@RequestParam("id") Long id);
+
+    /**
+     * 查询楼栋下单元列表
+     * @param id    楼栋id
+     * @return  单元列表
+     */
+    @GetMapping("/building/unit/list/admin")
+    R buildingUnitListAdmin(@RequestParam("id") Long id);
+
+    /**
+     * 查询楼栋单元下房屋列表
+     * @param unitHouseListDto    请求参数
+     * @return  单元列表
+     */
+    @PostMapping("/building/unit/house/list/admin")
+    R buildingUnitHouseListAdmin(@RequestBody PageBuildingUnitHouseListDto unitHouseListDto);
+
+    /**
+     * 查询楼栋单元下房屋详情
+     * @param houseId   房屋id
+     * @param communityId   社区id
+     * @return  房屋详情
+     */
+    @GetMapping("/building/unit/house/detail/admin")
+    R unitHouseDetailAdmin(@RequestParam("houseId") Long houseId,@RequestParam("communityId") Long communityId);
+
+    /**
+     * 查询社区下小区列表
+     * @param communityId   社区id
+     * @return  小区列表
+     */
+    @GetMapping("/building/village/list/admin")
+    R buildingVillageListAdmin(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 添加楼栋下单元
+     * @param addBuildingUnitDto  请求参数
+     * @return  添加结果
+     */
+    @PostMapping("/building/unit/add/admin")
+    R addBuildingUnitAdmin(@RequestBody AddBuildingUnitDto addBuildingUnitDto);
+
+    /**
+     * 修改楼栋下单元
+     * @param editBuildingUnitDto  请求参数
+     * @return  修改结果
+     */
+    @PostMapping("/building/unit/edit/admin")
+    R editBuildingUnitAdmin(@RequestBody EditBuildingUnitDto editBuildingUnitDto);
+
+    /**
+     * 添加户室
+     * @param addBuildingHouseDto    请求参数
+     * @return  添加结果
+     */
+    @PostMapping("/building/house/add/admin")
+    R addBuildingHouseAdmin(@RequestBody AddBuildingHouseDto addBuildingHouseDto);
+
+    /**
+     * 修改户室
+     * @param editBuildingHouseDto   请求参数
+     * @return  修改结果
+     */
+    @PostMapping("/building/house/edit/admin")
+    R editBuildingHouseAdmin(@RequestBody EditBuildingHouseDto editBuildingHouseDto);
+
+    /**
+     * 删除户室下人员关联信息
+     * @param housePopulationDto    请求参数
+     * @return  删除结果
+     */
+    @PostMapping("/building/house/population/delete/admin")
+    R deleteBuildingHousePopulationAdmin(@RequestBody DeleteBuildingHousePopulationDto housePopulationDto);
+
+    /**
+     * 删除楼栋
+     * @param id
+     * @return
+     */
+    @GetMapping("/building/delete")
+    R buildingDelete(@RequestParam("id")Long id);
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/comActWarehouseApply/queryAll")
+    public R comActWarehouseApplySelectAll(@RequestBody CommonPage commonPage);
+
+    /**
+     * 统计查询
+     *
+     * @param communityId
+     * @return 所有数据
+     */
+    @GetMapping("/comActWarehouseApply/selectStatics")
+    public R comActWarehouseApplySelectAll(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/comActWarehouseApply/{id}")
+    public R comActWarehouseApplySelectOne(@PathVariable("id") Integer id);
+
+    /**
+     * 新增数据
+     *
+     * @param comActWarehouseApply 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/comActWarehouseApply")
+    public R comActWarehouseApplyInsert(@RequestBody ComActWarehouseApplyVO comActWarehouseApply);
+
+    /**
+     * 修改数据
+     *
+     * @param comActWarehouseApply 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/comActWarehouseApply/update")
+    public R comActWarehouseApplyUpdate(@RequestBody ComActWarehouseApplyVO comActWarehouseApply);
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("/comActWarehouseApply/del")
+    public R comActWarehouseApplyDelete(@RequestParam("id") Long id);
+
+    /**
+     * 生成二维码
+     * @param qrCodeVO
+     * @return
+     */
+    @PostMapping("/comActWarehouseApply/getQRCode")
+    public R comActWarehouseApplyGetQRCode(@RequestBody QRCodeVO qrCodeVO);
+
+    /**
+     * 社区Id查询基础配置
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/comActWarehouseBase")
+    public R comActWarehouseBaseSelectOne(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 新增数据
+     *
+     * @param comActWarehouseBase 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/comActWarehouseBase")
+    public R comActWarehouseBaseInsert(@RequestBody ComActWarehouseBaseVO comActWarehouseBase);
+
+    /**
+     * 导出数据
+     */
+    @PostMapping("/comActWarehouseApply/export")
+    public R comActWarehouseApplyExport(@RequestBody CommonPage commonPage);
+
+    /**
+     * 后台导入捐赠物品
+     * @param list
+     * @return
+     */
+    @PostMapping("/comActWarehouseDonates/import")
+    R batchImportWarehouseDonates(@RequestBody List<WarehouseDonatesExcelVO> list);
+
+    /**
+     * 后台导出捐赠物品表格
+     * @param exportDonatesDTO
+     * @return
+     */
+    @PostMapping("/comActWarehouseDonates/donates/export")
+    R exportDonates(@RequestBody ExportDonatesDTO exportDonatesDTO);
+
+    /**
+     * 分页查询捐赠物品
+     * @param pageDonatesDTO
+     * @return
+     */
+    @PostMapping("/comActWarehouseDonates/donates/page")
+    R pageDonates(@RequestBody PageDonatesDTO pageDonatesDTO);
+
+    /**
+     * 新增物品捐赠
+     * @param comActWarehouseDonatesDTO
+     * @return
+     */
+    @PostMapping("/comActWarehouseDonates/donates/add")
+    R addDonates(@RequestBody ComActWarehouseDonatesDTO comActWarehouseDonatesDTO);
+
+    /**
+     * 查看物品捐赠详情
+     * @param donatesId
+     * @param isWhich
+     * @param userId
+     * @return
+     */
+    @GetMapping("/comActWarehouseDonates/donates/get")
+    R getDonates(@RequestParam("donatesId") Long donatesId, @RequestParam("isWhich") Integer isWhich, @RequestParam("userId") Long userId);
+
+    /**
+     * 捐赠物品后台签收
+     * @param comActWarehouseDonatesDTO
+     * @return
+     */
+    @PostMapping("/comActWarehouseDonates/donates/signing")
+    R signingDonates(@RequestBody ComActWarehouseDonatesDTO comActWarehouseDonatesDTO);
+
+    /**
+     * 用户取消捐赠
+     * @param donatesId
+     * @param currentUser
+     * @return
+     */
+    @GetMapping("/comActWarehouseDonates/donates/cancel")
+    R cancelDonates(@RequestParam("donatesId") Long donatesId, @RequestParam("currentUser") Long currentUser);
+
+    /**
+     * 捐赠物品统计查询
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/comActWarehouseDonates/donates/statistics")
+    R getDonatesStatistics(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/comActWarehouseOperation/queryAll")
+    public R comActWarehouseOperationSelectAll(@RequestBody CommonPage commonPage);
+
+    /**
+     * 物品领用
+     * @param comActWarehouseApplyDTO
+     * @return
+     */
+    @PostMapping("/comActWarehouseDonates/donates/apply")
+    R applyDonates(@RequestBody ComActWarehouseApplyDTO comActWarehouseApplyDTO);
+
+    /**
+     * 生成二维码
+     * @param qrCodeVO
+     * @return
+     */
+    @PostMapping("/comActActivityCode/getQRCode")
+    public R getQRCode(@RequestBody QRActivityCodeVO qrCodeVO);
+
+    /**
+     * 重置二维码
+     * @param qrCodeVO
+     * @return
+     */
+    @PostMapping("/comActActivityCode/resetQRCode")
+    public R resetQRCode(@RequestBody QRActivityCodeVO qrCodeVO);
+
+    /**
+     * 实有房屋数据修复定时任务
+     * @return  实有房屋数据修复定时任务
+     */
+    @GetMapping("/population/house/status/task")
+    R timedTaskHouseJobHandler();
+
+    /**
+     * 导出特殊群体
+     *
+     * @param pageInputUserDTO 请求参数
+     * @return 特殊群体列表
+     */
+    @PostMapping("common/data/special/export")
+    R specialInputUserExport(@RequestBody PageInputUserDTO pageInputUserDTO);
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/comActAnnouncement/queryAll")
+    R comActAnnouncementSelectAll(@RequestBody CommonPage commonPage);
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/comActAnnouncement/{id}")
+    R comActAnnouncementSelectOne(@PathVariable("id") Long id);
+
+    /**
+     * 新增数据
+     *
+     * @param comActAnnouncementVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/comActAnnouncement")
+    R comActAnnouncementInsert(@RequestBody ComActAnnouncementVO comActAnnouncementVO);
+
+    /**
+     * 修改数据
+     *
+     * @param comActAnnouncementVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/comActAnnouncement/update")
+    R comActAnnouncementUpdate(@RequestBody ComActAnnouncementVO comActAnnouncementVO);
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("/comActAnnouncement/del")
+    R comActAnnouncementDelete(@RequestParam("id") Long id);
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/comActColumn/queryAll")
+    R comActColumnSelectAll(@RequestBody CommonPage commonPage);
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/comActColumn/{id}")
+    R comActColumnSelectOne(@PathVariable("id") Long id);
+
+    /**
+     * 新增数据
+     *
+     * @param comActColumn 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/comActColumn")
+    R comActColumnInsert(@RequestBody ComActColumnVO comActColumn);
+
+    /**
+     * 修改数据
+     *
+     * @param comActColumn 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/comActColumn/update")
+    R comActColumnUpdate(@RequestBody ComActColumnVO comActColumn);
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("/comActColumn/del")
+    R comActColumnDelete(@RequestParam("id") Long id);
+
+    /**
+     * 高龄认证添加
+     *
+     * @param comElderAuthRecordVO
+     * @return
+     */
+    @PostMapping("/elders/authRecord/add")
+    R addAuthRecord(@RequestBody ComElderAuthRecordVO comElderAuthRecordVO);
+
+    /**
+     * 养老认证添加
+     *
+     * @param comElderAuthRecordVO
+     * @return
+     */
+    @PostMapping("/elders/pensionAuthRecord/add")
+    R addPensionAuthRecordVO(@RequestBody ComElderAuthRecordVO comElderAuthRecordVO);
+    /**
+     * 活动报名签到情况
+     * @param id 活动主键id
+     * @return
+     */
+    @GetMapping("/activity/sign-in/list")
+    R listSignInRecord(@RequestParam("id") Long id);
+
+    /**
+     * 活动签到记录
+     * @param id 活动主键
+     * @param userId 用户id
+     * @return
+     */
+    @GetMapping("/activity/regist/list")
+    R listRegistRecord(@RequestParam("id")  Long id, @RequestParam("userId") Long userId);
+
+    /**
+     * 获取活动类型(目前只有志愿者活动需要获取)
+     * @param communityId
+     * @param type
+     * @return
+     */
+    @GetMapping("/activity/type/list")
+    R listActivityType(@RequestParam("communityId") Long communityId, @RequestParam("type") Integer type);
+
+    /**
+     * 添加活动类型
+     * @param comActActivityTypeVO
+     * @return
+     */
+    @PostMapping("/activity/type/add")
+    R addActivityType(@RequestBody ComActActivityTypeVO comActActivityTypeVO);
+
+    /**
+     * 我的评价
+     * @param userId
+     * @param activityId
+     * @return
+     */
+    @GetMapping("/activity/my-evaluate")
+    R listMyActivityEvaluate(@RequestParam("userId") Long userId, @RequestParam("activityId") Long activityId);
+
+    /**
+     * 分页查询居家隔离统计
+     * @param detailedAdminDTO
+     * @return
+     */
+    @PostMapping("/reserve/admin/register/homeQuarantine/page")
+    R pageRegisterHomeQuarantine(PageReserveRegisterDetailedAdminDTO detailedAdminDTO);
+
+    /**
+     * 居家隔离导出
+     * @param pageReserveRegisterDetailedAdminDTO
+     * @return
+     */
+    @PostMapping("/reserve/admin/homeQuarantine/export")
+    R exportHomeQuarantine(@RequestBody PageReserveRegisterDetailedAdminDTO pageReserveRegisterDetailedAdminDTO);
+
+    /**
+     * 分页查询物业宣传
+     * @param pageComPropertyPublicityDTO
+     * @return
+     */
+    @PostMapping("/property/publicity/page")
+    R pageComPropertyPublicity(@RequestBody PageComPropertyPublicityDTO pageComPropertyPublicityDTO);
+
+    /**
+     * 新增物业宣传
+     * @param comPropertyPublicityDTO
+     * @return
+     */
+    @PostMapping("/property/publicity/add")
+    R addComPropertyPublicity(@RequestBody ComPropertyPublicityDTO comPropertyPublicityDTO);
+
+    /**
+     * 修改物业宣传
+     * @param comPropertyPublicityDTO
+     * @return
+     */
+    @PostMapping("/property/publicity/update")
+    R updateComPropertyPublicity(@RequestBody ComPropertyPublicityDTO comPropertyPublicityDTO);
+
+    /**
+     * 查看物业宣传信息
+     * @param id
+     * @return
+     */
+    @GetMapping("/property/publicity/get")
+    R getComPropertyPublicity(@RequestParam("id") Long id);
+
+    /**
+     * 删除物业宣传
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/property/publicity/delete")
+    R deleteComPropertyPublicity(@RequestParam("id") Long id);
+
+    /**
+     * 物业公司列表
+     *
+     * @param villageId
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/property/publicity/list/property")
+    R listProperty(@RequestParam(value = "villageId", required = false) Long villageId, @RequestParam("communityId") Long communityId);
+
+    /**
+     * 分页查询物业宣传-小程序
+     * @param pageComPropertyPublicityDTO
+     * @return
+     */
+    @PostMapping("/property/publicity/page/applet")
+    R pageComPropertyPublicityApplet(@RequestBody PageComPropertyPublicityDTO pageComPropertyPublicityDTO);
+
+    /**
+     * 增加物业宣传浏览量
+     * @param id
+     * @return
+     */
+    @GetMapping("/property/publicity/incr-view")
+    R incrPropertyPublicityView(@RequestParam("id") Long id);
+
+    /**
+     * 获取预设图片
+     * @param type
+     * @param subtype
+     * @return
+     */
+    @GetMapping("/picture/library/get")
+    R getPresetPictureLibrary(@RequestParam("type") Integer type, @RequestParam("subtype") Integer subtype);
+
+    /**
+     * 分页查询房屋租赁基础配置
+     * @param pageRentingHousesConfigDTO
+     * @return
+     */
+    @PostMapping("/rentingHousesConfig/page")
+    R pageRentingHousesConfig(@RequestBody PageRentingHousesConfigDTO pageRentingHousesConfigDTO);
+
+    /**
+     * 更新配置信息
+     * @param rentingHousesConfigDTO
+     * @return
+     */
+    @PutMapping("/rentingHousesConfig/update")
+    R updateRentingHousesConfig(@RequestBody RentingHousesConfigDTO rentingHousesConfigDTO);
+
+    /**
+     * 新增房源信息
+     * @param registerDTO
+     * @return
+     */
+    @PostMapping("/rentingHourseRegister/register")
+    R registerRentingHouse(@RequestBody RentingHouseRegisterDTO registerDTO);
+
+    /**
+     * 编辑房源信息
+     * @param registerDTO
+     * @return
+     */
+    @PostMapping("/rentingHourseRegister/update")
+    R updateRentingHouse(@RequestBody RentingHouseRegisterDTO registerDTO);
+
+    /**
+     * 分页获取房源信息
+     * @param pageRegisterDTO
+     * @return
+     */
+    @PostMapping("/rentingHourseRegister/page")
+    R pageRentingHouse(@RequestBody PageRentingHouseRegisterDTO pageRegisterDTO);
+
+    /**
+     * 发布/取消发布 房源信
+     * @param releaseOrCancelHouseDTO
+     * @return
+     */
+    @PutMapping("/rentingHourseRegister/releaseOrCancel")
+    R releaseOrCancelHouse(@RequestBody ReleaseOrCancelHouseDTO releaseOrCancelHouseDTO);
+
+    /**
+     * 删除房源信息
+     * @param registerId
+     * @return
+     */
+    @DeleteMapping("/rentingHourseRegister/delete")
+    R deleteRentingHouse(@RequestParam("registerId") Long registerId);
+
+    /**
+     * 获取详情-房源信息
+     * @param registerId
+     * @return
+     */
+    @GetMapping("/rentingHourseRegister/get")
+    R getRentingHouse(@RequestParam("registerId") Long registerId);
+
+    /**
+     * 附近的房源
+     */
+    @PostMapping("/rentingHourseRegister/nearby")
+    R nearby(@RequestBody NearbyDTO nearbyDTO);
+
+    /**
+     * 小程序分页获取房源信息
+     * @param pageRegisterDTO
+     * @return
+     */
+    @PostMapping("/rentingHourseRegister/houseList")
+    R pageRentingHouseApplet(@RequestBody PageRentingHouseRegisterDTO pageRegisterDTO);
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/rentingHourseOrder/queryAll")
+    R selectRentingHourseOrderAll(@RequestBody CommonPage commonPage);
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/rentingHourseOrder/{id}")
+    R selectRentingHourseOrderOne(@PathVariable("id") Long id);
+
+    /**
+     * 新增数据
+     *
+     * @param rentingHourseOrder 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/rentingHourseOrder")
+    R insertRentingHourseOrder(@RequestBody RentingHourseOrderVO rentingHourseOrder);
+
+    /**
+     * 修改数据
+     *
+     * @param rentingHourseOrdervo 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/rentingHourseOrder/update")
+    R updateRentingHourseOrder(@RequestBody RentingHourseOrderVO rentingHourseOrdervo);
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("/rentingHourseOrder/del")
+    R deleteRentingHourseOrder(@RequestParam("id") Long id);
+
+    /**
+     * 支付回调处理订单状态以及房屋状态
+     */
+    @PostMapping("/rentingHourseOrder/wxNotify")
+    R wxNotifyRentingHourseOrder(@RequestBody WxPayNotifyOrderVO wxPayNotifyOrderVO);
+
+    /**
+     * 支付付款
+     */
+    @PostMapping("/rentingHourseOrder/wxPay")
+    R wxPayRentingHourseOrder(@RequestBody WxPayOrderVO wxPayOrderVO);
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/rentingHoursePreOrder/queryAll")
+    R selectAllRentingHoursePreOrder(@RequestBody CommonPage commonPage);
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/rentingHoursePreOrder/{id}")
+    R selectOneRentingHoursePreOrder(@PathVariable("id") Long id);
+
+    /**
+     * 新增数据
+     *
+     * @param rentingHoursePreOrderVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/rentingHoursePreOrder")
+    R insertRentingHoursePreOrder(@RequestBody RentingHoursePreOrderVO rentingHoursePreOrderVO);
+
+    /**
+     * 修改数据
+     *
+     * @param rentingHoursePreOrderVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/rentingHoursePreOrder/update")
+    R updateRentingHoursePreOrder(@RequestBody RentingHoursePreOrderVO rentingHoursePreOrderVO);
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("/rentingHoursePreOrder/del")
+    R deleteRentingHoursePreOrder(@RequestParam("id") Long id);
+
+    /**
+     * 普通订单统计
+     */
+    @PostMapping("/rentingHourseOrder/statics")
+    R staticsRentingHourseOrder(@RequestBody RentingHourseOrderVO rentingHourseOrderVO);
+
+    /**
+     * 定金订单统计
+     */
+    @PostMapping("/rentingHoursePreOrder/statics")
+    R staticsRentingHoursePreOrder(@RequestBody RentingHoursePreOrderVO rentingHoursePreOrderVO);
+
+    /**
+     * 获取房屋租赁配置
+     * @return
+     * @param type
+     */
+    @GetMapping("/rentingHousesConfig/getConfig")
+    R getRentingHouseConfig(@RequestParam("type") Integer type);
+
+    @GetMapping("/rentingHourseRegister/updateAllHouseUnionAppCode")
+    @Async
+    void updateAllHouseUnionAppCode(@RequestParam("areaCode") String areaCode);
+
+    /**
+     * 西区大屏治理数据
+     */
+    @GetMapping("/screen/getWestScreenStatics")
+    R westScreenStatics();
+
+    /**
+     * 西区大屏一标三实数据
+     * @return  西区大屏一标三实数据
+     */
+    @GetMapping("/screen/getComprehensivePopulationStatics")
+    R getComprehensivePopulationStatics(@RequestParam("streetId") Long streetId);
+
+    @GetMapping("/screen/getComprehensiveStreetList")
+    R getComprehensiveStreetList();
+
+    /**
+     * 通过社区id查询社区账号密码
+     * @param communityId   社区id
+     * @return  查询社区账号密码
+     */
+    @GetMapping("/screen/getCommunityPassword")
+    R getCommunityPassword(@RequestParam("communityId") Long communityId);
+
+    @GetMapping("/reserve/bigScreenStaticsReserve")
+    R bigScreenStaticsReserve(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 党员活动折线图
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/bigscreen/party/partyActivityLine")
+    R partyActivityLine(@RequestParam("communityId")Long communityId);
+
+    /**
+     * 党员积分前3
+     * @param pageBigScreenStatisticPartyOrg
+     * @return
+     */
+    @PostMapping("/bigscreen/party/partyActivityTop")
+    R partyActivityTop(@RequestBody PageBigScreenStatisticPartyOrg pageBigScreenStatisticPartyOrg);
+
+    /**
+     * 社区服务大屏数据分析接口
+     */
+    @GetMapping("/screen/serviceData")
+    R serviceData(@RequestParam("communityId")Long communityId);
+
+    /**
+     * 服务居民接口
+     */
+    @GetMapping("/screen/serviceUser")
+    R serviceUser(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 大数据分析平台-居民自治
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/resident/autonomy")
+    R getResidentAutonomy(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 大数据分析平台-清网治格
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/grids/governance")
+    R getGridsGovernance(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 大数据分析平台-社区服务
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/community/service")
+    R getCommunityServiceStatistics(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 分页获取热度排行商家
+     * @param pagePopularMerchantDTO
+     * @return
+     */
+    @PostMapping("/screen/merchant/popular")
+    R getScreenPopularMerchants(@RequestBody PagePopularMerchantDTO pagePopularMerchantDTO);
+
+    /**
+     * 新版大屏首页接口
+     */
+    @GetMapping("/screen/indexInfo")
+    R indexInfo(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 首页二级页面-微心愿
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/index/microWish")
+    R indexMicroWish(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 首页二级页面-随手拍
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/index/easyPhoto")
+    R indexEasyPhoto(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 首页二级页面-随手拍展示列表
+     * @return
+     */
+    @PostMapping("/screen/index/easyPhotoList")
+    R indexEasyPhotoList(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 首页二级页面-社区问卷
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/index/questionnaire")
+    R indexQuestionnaire(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 首页二级页面-社区动态
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/index/dyn")
+    R indexDyn(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 首页二级页面-社区动态展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/screen/index/dynList")
+    R indexDynList(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 首页二级页面-邻里圈
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/index/neighbor")
+    R indexNeighbor(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 首页二级页面-邻里圈展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/screen/index/neighborList")
+    R indexNeighborList(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 首页二级页面-便民商家
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/index/merchant")
+    R indexMerchant(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 首页二级页面-商家展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/screen/index/merchantList")
+    R indexMerchantList(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 首页二级页面-微心愿展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/screen/index/microWishList")
+    R indexMicroWishList(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 首页二级页面-社区问卷展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/screen/index/questionnaireList")
+    R indexQuestionnaireList(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 首页二级页面-居民活动
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/index/residentAct")
+    R indexResidentAct(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 首页二级页面-居民活动展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/screen/index/residentActList")
+    R indexResidentActList(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 首页二级页面-志愿者活动
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/index/volunteerAct")
+    R indexVolunteerAct(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 首页二级页面-志愿者活动展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/screen/index/volunteerActList")
+    R indexVolunteerActList(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 清网治格-根据事件分类获取近1月的社区事件数据
+     * @param type
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/event/list")
+    R getEventList(@RequestParam(value = "type") Integer type, @RequestParam(value = "communityId") Long communityId);
+
+    /**
+     * 清网治格-社区事件数据分页
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/screen/event/page")
+    R pageEventList(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 新增数字商业街商家
+     * @param mcsMerchantDTO
+     * @return
+     */
+    @PostMapping("/microcommercialstreet/merchant/add")
+    R addMcsMerchant(@RequestBody McsMerchantDTO mcsMerchantDTO);
+
+    /**
+     * 编辑数字商业街商家
+     * @param mcsMerchantDTO
+     * @return
+     */
+    @PutMapping("/microcommercialstreet/merchant/put")
+    R putMcsMerchant(@RequestBody McsMerchantDTO mcsMerchantDTO);
+
+    /**
+     * 查询数字商业街商家详情
+     * @param merchantId
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/merchant/get")
+    R getMcsMerchant(@RequestParam("merchantId") Long merchantId);
+
+    /**
+     * 删除数字商业街商家
+     * @param merchantId
+     * @param userId
+     * @return
+     */
+    @DeleteMapping("/microcommercialstreet/merchant/delete")
+    R deleteMcsMerchant(@RequestParam("merchantId") Long merchantId, @RequestParam("userId") Long userId);
+
+    /**
+     * 分页查询数字商业街商家
+     * @param pageMcsMerchantDTO
+     * @return
+     */
+    @PostMapping("/microcommercialstreet/merchant/page")
+    R pageMcsMerchant(@RequestBody PageMcsMerchantDTO pageMcsMerchantDTO);
+
+    /**
+     * 禁用/启用数字商业街商家
+     * @param disableOrEnableMcsMerchantDTO
+     * @return
+     */
+    @PutMapping("/microcommercialstreet/merchant/disable-or-enable")
+    R disableOrEnableMcsMerchant(@RequestBody DisableOrEnableMcsMerchantDTO disableOrEnableMcsMerchantDTO);
+
+    /**
+     * 获取所有数字商业街配置
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/config/all")
+    R getAllMcsConfig();
+
+    /**
+     * 修改数字商业街配置
+     * @param configs
+     * @return
+     */
+    @PutMapping("/microcommercialstreet/config/put")
+    R putMcsConfig(@RequestBody List<McsConfigVO> configs);
+
+    /**
+     * 分页查询戳戳游戏
+     * @param pageMcsGameDTO
+     * @return
+     */
+    @PostMapping("/microcommercialstreet/game/page")
+    R pageMcsGame(@RequestBody PageMcsGameDTO pageMcsGameDTO);
+
+    /**
+     * 设为/取消游戏热门
+     * @param setPopularForGameDTO
+     * @return
+     */
+    @PutMapping("/microcommercialstreet/game/setPopular")
+    R setPopularForGame(@RequestBody SetPopularForGameDTO setPopularForGameDTO);
+
+    /**
+     * 上架/下架戳戳游戏
+     * @param setShelfForGameDTO
+     * @return
+     */
+    @PutMapping("/microcommercialstreet/game/setShelf")
+    R setShelfForGame(@RequestBody SetShelfForGameDTO setShelfForGameDTO);
+
+    /**
+     * 删除戳戳游戏
+     * @param gameId
+     * @param userId
+     * @return
+     */
+    @DeleteMapping("/microcommercialstreet/game/delete")
+    R deleteMcsGame(@RequestParam("gameId") Long gameId, @RequestParam("userId") Long userId);
+
+    /**
+     * 分页查询戳戳资讯
+     * @param pageMcsInformationDTO
+     * @return
+     */
+    @PostMapping("/microcommercialstreet/information/page")
+    R pageMcsInfo(@RequestBody PageMcsInformationDTO pageMcsInformationDTO);
+
+    /**
+     * 上架/下架戳戳资讯
+     * @param setShelfForInfoDTO
+     * @return
+     */
+    @PutMapping("/microcommercialstreet/information/setShelf")
+    R setShelfForMcsInfo(@RequestBody SetShelfForInfoDTO setShelfForInfoDTO);
+
+    /**
+     * 删除戳戳资讯
+     * @param infoId
+     * @param userId
+     * @return
+     */
+    @DeleteMapping("/microcommercialstreet/information/delete")
+    R deleteMcsInfo(@RequestParam("infoId") Long infoId, @RequestParam("userId") Long userId);
+
+    /**
+     * 分页查询评价记录
+     * @param pageMcsEvaluateDTO
+     * @return
+     */
+    @PostMapping("/microcommercialstreet/evaluate/page")
+    R pageMcsEvaluate(@RequestBody PageMcsEvaluateDTO pageMcsEvaluateDTO);
+
+    /**
+     * 查询评价记录详情
+     * @param evaluateId
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/evaluate/get")
+    R getMcsEvaluate(@RequestParam("evaluateId") Long evaluateId);
+
+    /**
+     * 删除评价记录
+     * @param evaluateId
+     * @return
+     */
+    @DeleteMapping("/microcommercialstreet/evaluate/delete")
+    R deleteMcsEvaluate(@RequestParam("evaluateId") Long evaluateId);
+
+    /**
+     * 新增戳戳游戏
+     * @param mcsGameDTO
+     * @return
+     */
+    @PostMapping("/microcommercialstreet/game/add")
+    R addMcsGame(@RequestBody McsGameDTO mcsGameDTO);
+
+    /**
+     * 编辑戳戳游戏
+     * @param mcsGameDTO
+     * @return
+     */
+    @PutMapping("/microcommercialstreet/game/put")
+    R putMcsGame(@RequestBody McsGameDTO mcsGameDTO);
+
+    /**
+     * 发布戳戳游戏
+     * @param gameId
+     * @param userId
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/game/publish")
+    R publishMcsGame(@RequestParam("gameId") Long gameId, @RequestParam("userId") Long userId);
+
+    /**
+     * 结束戳戳游戏
+     * @param gameId
+     * @param userId
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/game/finish")
+    R finishMcsGame(@RequestParam("gameId") Long gameId, @RequestParam("userId") Long userId);
+
+    /**
+     * 戳戳游戏/资讯顶部统计数据
+     * @param type
+     * @param userId
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/statistics/top")
+    R getTopStatistics(@RequestParam("type") Integer type, @RequestParam("userId") Long userId);
+
+    /**
+     * 新增戳戳资讯
+     * @param mcsInfoDTO
+     * @return
+     */
+    @PostMapping("/microcommercialstreet/information/add")
+    R addMcsInfo(@RequestBody McsInfoDTO mcsInfoDTO);
+
+    /**
+     * 编辑戳戳资讯
+     * @param mcsInfoDTO
+     * @return
+     */
+    @PutMapping("/microcommercialstreet/information/put")
+    R putMcsInfo(@RequestBody McsInfoDTO mcsInfoDTO);
+
+    /**
+     * 发布戳戳资讯
+     * @param infoId
+     * @param userId
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/information/publish")
+    R publishMcsInfo(@RequestParam("infoId") Long infoId, @RequestParam("userId") Long userId);
+
+    /**
+     * 新增产品信息
+     * @param mcsProductDTO
+     * @return
+     */
+    @PostMapping("/microcommercialstreet/product/add")
+    R addMcsProduct(@RequestBody McsProductDTO mcsProductDTO);
+
+    /**
+     * 编辑产品信息
+     * @param mcsProductDTO
+     * @return
+     */
+    @PutMapping("/microcommercialstreet/product/put")
+    R putMcsProduct(@RequestBody McsProductDTO mcsProductDTO);
+
+    /**
+     * 删除产品信息
+     * @param deleteProductDTO
+     * @return
+     */
+    @PostMapping("/microcommercialstreet/product/delete")
+    R deleteMcsProduct(@RequestBody DeleteProductDTO deleteProductDTO);
+
+    /**
+     * 上架/下架产品信息
+     * @param setShelfForProductDTO
+     * @return
+     */
+    @PutMapping("/microcommercialstreet/product/setShelf")
+    R setShelfForMcsProduct(@RequestBody SetShelfForProductDTO setShelfForProductDTO);
+
+    /**
+     * 分页查询产品信息
+     * @param pageMcsProductDTO
+     * @return
+     */
+    @PostMapping("/microcommercialstreet/product/page")
+    R pageMcsProduct(@RequestBody PageMcsProductDTO pageMcsProductDTO);
+
+    /**
+     * 获取产品标签列表
+     * @param userId
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/label/list")
+    R getMcsLabelList(@RequestParam("userId") Long userId);
+
+    /**
+     * check商家/店铺是否有效
+     * @param userId
+     * @return
+     */
+    @GetMapping("/shop/checkStoreIsValid")
+    R checkStoreIsValid(@RequestParam("userId") Long userId);
+
+    /**
+     * 根据account查询微商业街商家信息
+     * @param account
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/getMcsMerchantByAccount")
+    R getMcsMerchantByAccount(@RequestParam("account") String account);
+
+    /**
+     * 完成订单更新/新增商家信息
+     * @param merchantName
+     * @param configId
+     * @param userId
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/updateAfterOrder")
+    R updateMcsMerchantAfterOrder(@RequestParam(value = "merchantName", required = false) String merchantName,
+                                  @RequestParam("configId") Long configId, @RequestParam("userId") Long userId);
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/mcsOrder/queryAll")
+    R selectAllMscOrder(@RequestBody CommonPage commonPage);
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/mcsOrder/{id}")
+    R selectOneMscOrder(@PathVariable("id") Long id);
+
+    /**
+     * 新增数据
+     *
+     * @param mcsOrderVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/mcsOrder")
+    R insertMscOrder(@RequestBody McsOrderVO mcsOrderVO);
+
+    /**
+     * 修改数据
+     *
+     * @param mcsOrderVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/mcsOrder/update")
+    R updateMscOrder(@RequestBody McsOrderVO mcsOrderVO);
+
+    /**
+     * 微信支付
+     * @param mcsOrderVO
+     * @return
+     */
+    @PostMapping("/mcsOrder/wxPay")
+    R wxPayMscOrder(McsOrderVO mcsOrderVO);
+
+    /**
+     * 发送提醒短信
+     * @param id
+     * @return
+     */
+    @GetMapping("/mcsOrder/sendContent")
+    R sendContentMcsOrder(@RequestParam("id") Long id);
+
+    /**
+     *微信支付回调
+     * @param mcsOrderVO
+     * @return
+     */
+    @PostMapping("/mcsOrder/notify")
+    R notifyMcsOrder(@RequestBody McsOrderVO mcsOrderVO);
+
+    /**
+     * 验证码登录
+     * @param loginDTO
+     * @return
+     */
+    @PostMapping("/microcommercialstreet/loginWithPhone")
+    R loginWithPhone(@RequestBody LoginWithPhoneDTO loginDTO);
+
+    /**
+     * 首页顶部数据
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/index/topData")
+    R getMcsIndexTopData();
+
+    /**
+     * 戳戳卷领取
+     * @param gameId
+     * @param userId
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/coupon/apply")
+    R applyMcsCoupon(@RequestParam("gameId") Long gameId, @RequestParam("userId") Long userId);
+
+    /**
+     * h5分页查询戳戳资讯
+     * @param pageMcsInformationDTO
+     * @return
+     */
+    @PostMapping("/microcommercialstreet/information/pageH5")
+    R pageH5McsInfo(@RequestBody PageMcsInformationDTO pageMcsInformationDTO);
+
+    /**
+     * h5分页查询戳戳游戏
+     * @param pageMcsGameDTO
+     * @return
+     */
+    @PostMapping("/microcommercialstreet/game/pageH5")
+    R pageH5McsGame(@RequestBody PageMcsGameDTO pageMcsGameDTO);
+
+    /**
+     * 游戏详情
+     * @param gameId
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/game/get")
+    R getMcsGame(@RequestParam("gameId") Long gameId);
+
+    /**
+     * 资讯详情
+     * @param infoId
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/info/get")
+    R getMcsInfo(@RequestParam("infoId") Long infoId);
+
+    /**
+     * H5分页查询数字商业街商家
+     * @param pageMcsMerchantDTO
+     * @return
+     */
+    @PostMapping("/microcommercialstreet/merchant/pageH5")
+    R pageH5McsMerchant(@RequestBody PageMcsMerchantDTO pageMcsMerchantDTO);
+
+    /**
+     * 我的戳戳卷
+     * @param type
+     * @param userId
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/myCoupon")
+    R getMyCoupon(@RequestParam(value = "type", required = false) Integer type, @RequestParam("userId") Long userId);
+
+    /**
+     * 新增评价记录
+     * @param mcsEvaluateDTO
+     * @return
+     */
+    @PostMapping("/microcommercialstreet/evaluate/add")
+    R addMcsEvaluate(@RequestBody McsEvaluateDTO mcsEvaluateDTO);
+
+    /**
+     * 我的评价-参与游戏列表
+     * @param pageJoinGameListDTO
+     * @return
+     */
+    @PostMapping("/microcommercialstreet/joinGame/page")
+    R getJoinGameList(@RequestBody PageJoinGameListDTO pageJoinGameListDTO);
+
+    /**
+     * 戳戳卷核销
+     * @param couponId
+     * @param userId
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/coupon/verify")
+    R verifyMcsCoupon(@RequestParam("couponId") Long couponId, @RequestParam("userId") Long userId);
+
+    /**
+     * 分页查询核销记录
+     * @param pageVerifyRecordDTO
+     * @return
+     */
+    @PostMapping("/microcommercialstreet/verifyRecord/page")
+    R pageMcsVerifyRecord(@RequestBody PageVerifyRecordDTO pageVerifyRecordDTO);
+
+    /**
+     * 游戏统计
+     * @param userId
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/game/statistics")
+    R getMcsGameStatistics(@RequestParam("userId") Long userId);
+
+    /**
+     * 修改用戶信息
+     * @param putUserInfoDTO
+     * @return
+     */
+    @PutMapping("/microcommercialstreet/putUserInfo")
+    R putUserInfo(@RequestBody PutUserInfoDTO putUserInfoDTO);
+
+    /**
+     * 根据userId获取商家信息
+     * @param userId
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/retrieveMcsMerchantInfoByUserId")
+    R retrieveMcsMerchantInfoByUserId(@RequestParam("userId") Long userId);
+
+    /**
+     * 定时任务-每隔5分钟执行一次,将已到期的微商业街商家旗下所有的游戏/资讯全部下架
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/offResourceForMcsMerchant")
+    R offResourceForMcsMerchant();
+
+    /**
+     * 获取产品信息详情
+     * @param productId
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/product/get")
+    R getMcsProduct(@RequestParam("productId") Long productId);
+
+    /**
+     * 定时任务-每隔5分钟执行一次,将已到期的微商业街游戏结束
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/endStatusForMcsGame")
+    R endStatusForMcsGame();
+
+    @GetMapping("/reserve/record/delete")
+    R deleteRecord(@RequestParam("recordId")Long recordId);
+
+    /**
+     * 历史数据人员类型填充
+     * @param newVoList
+     * @param communityId
+     * @param userId
+     * @return
+     */
+    @PostMapping("/common/data/history/filled")
+    R filledPopulationPersonType(@RequestBody List<ComMngPopulationServeExcelVO> newVoList,
+                                 @RequestParam("communityId") Long communityId, @RequestParam("userId") Long userId);
+
+    /**
+     * 社区后台-分页查询志愿者组织队伍
+     *
+     * @param orgTeamDto 请求参数
+     * @return 志愿者组织队伍
+     */
+    @PostMapping("/comMngVolunteerOrgTeam/page")
+    R pageVolunteerOrgAdmin(@RequestBody PageComMngVolunteerOrgTeamDto orgTeamDto);
+
+    /**
+     * 社区后台-新增志愿者组织队伍
+     *
+     * @param orgTeamDto 请求参数
+     * @return 新增结果
+     */
+    @PostMapping("/comMngVolunteerOrgTeam/add")
+    R addVolunteerOrgAdmin(@RequestBody AddComMngVolunteerOrgTeamDto orgTeamDto);
+
+    /**
+     * 社区后台-编辑志愿者组织队伍
+     *
+     * @param orgTeamDto 请求参数
+     * @return 编辑结果
+     */
+    @PutMapping("/comMngVolunteerOrgTeam/edit")
+    R editVolunteerOrgAdmin(@RequestBody EditComMngVolunteerOrgTeamDto orgTeamDto);
+
+    /**
+     * 社区后台-删除志愿者组织队伍
+     *
+     * @param id 主键id
+     * @return 删除结果
+     */
+    @GetMapping("/comMngVolunteerOrgTeam/delete")
+    R deleteVolunteerOrgAdmin(@RequestParam("id") Long id);
+
+    /**
+     * 社区后台-查询志愿者组织列表
+     *
+     * @param orgTeamDto 请求参数
+     * @return 志愿者组织列表
+     */
+    @PostMapping("/comMngVolunteerOrgTeam/list")
+    R listVolunteerOrgAdmin(@RequestBody PageComMngVolunteerOrgTeamDto orgTeamDto);
+
+    /**
+     * 社区后台-分页查询服务类型
+     *
+     * @param serviceTypeDto 请求参数
+     * @return 服务类型列表
+     */
+    @PostMapping("/comMngVolunteerServiceType/page")
+    R pageServiceTypeAdmin(@RequestBody PageComMngVolunteerServiceTypeDto serviceTypeDto);
+
+    /**
+     * 社区后台-新增服务类型
+     *
+     * @param serviceTypeDto 请求参数
+     * @return 新增结果
+     */
+    @PostMapping("/comMngVolunteerServiceType/add")
+    R addServiceTypeAdmin(@RequestBody AddComMngVolunteerServiceTypeDto serviceTypeDto);
+
+    /**
+     * 社区后台-编辑服务类型
+     *
+     * @param serviceTypeDto 请求参数
+     * @return 编辑结果
+     */
+    @PutMapping("/comMngVolunteerServiceType/edit")
+    R editServiceTypeAdmin(@RequestBody EditComMngVolunteerServiceTypeDto serviceTypeDto);
+
+    /**
+     * 社区后台-删除服务类型
+     *
+     * @param id 主键id
+     * @return 删除结果
+     */
+    @GetMapping("/comMngVolunteerServiceType/delete")
+    R deleteServiceTypeAdmin(@RequestParam("id") Long id);
+
+    /**
+     * 社区后台-分页查询志愿者技能列表
+     *
+     * @param volunteerSkillDto 请求参数
+     * @return 志愿者技能列表
+     */
+    @PostMapping("/comMngVolunteerSkill/page")
+    R pageVolunteerSkillAdmin(@RequestBody PageComMngVolunteerSkillDto volunteerSkillDto);
+
+    /**
+     * 社区后台-新增志愿者技能
+     *
+     * @param volunteerSkillDto 请求参数
+     * @return 新增结果
+     */
+    @PostMapping("/comMngVolunteerSkill/add")
+    R addVolunteerSkillAdmin(@RequestBody AddComMngVolunteerSkillDto volunteerSkillDto);
+
+    /**
+     * 社区后台-编辑志愿者技能
+     *
+     * @param volunteerSkillDto 请求参数
+     * @return 编辑结果
+     */
+    @PutMapping("/comMngVolunteerSkill/edit")
+    R editVolunteerSkillAdmin(@RequestBody EditComMngVolunteerSkillDto volunteerSkillDto);
+
+    /**
+     * 社区后台-删除志愿者技能
+     *
+     * @param id 主键id
+     * @return 删除结果
+     */
+    @GetMapping("/comMngVolunteerSkill/delete")
+    R deleteVolunteerSkillAdmin(@RequestParam("id") Long id);
+
+    /**
+     * 社区后台-查询志愿者服务类型列表
+     *
+     * @param serviceTypeDto 请求参数
+     * @return 志愿者服务列表
+     */
+    @PostMapping("/comMngVolunteerServiceType/list")
+    R listServiceTypeAdmin(@RequestBody PageComMngVolunteerServiceTypeDto serviceTypeDto);
+
+    /**
+     * 社区后台-查询志愿者技能列表
+     *
+     * @param volunteerSkillDto 请求参数
+     * @return 志愿者技能列表
+     */
+    @PostMapping("/comMngVolunteerSkill/list")
+    R listVolunteerSkillAdmin(@RequestBody PageComMngVolunteerSkillDto volunteerSkillDto);
+
+    /**
+     * 社区后台-志愿者组织统计
+     *
+     * @param communityId 社区id
+     * @return 志愿者组织统计
+     */
+    @GetMapping("/comMngVolunteerOrgTeam/statistics")
+    R statisticsVolunteerOrgAdmin(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 志愿者导入
+     *
+     * @param list        志愿者数据列表
+     * @param communityId 社区id
+     * @param userId      用户id
+     * @return 导入结果
+     */
+    @PostMapping("/volunteer/import/admin")
+    R importVolunteerAdmin(@RequestBody List<ComMngVolunteerExcelVO> list,
+                           @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
+
+    @PostMapping("/screen/hmk/baseInfo")
+    R hmkBaseInfo(@RequestBody CommonPage commonPage);
+
+    @GetMapping("/screen/hmk/partyProjectActivityLine")
+    R partyProjectActivityLine();
+
+    @PostMapping("/screen/hmk/projectActivityTop")
+    R projectActivityProject(@RequestBody CommonPage commonPage);
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/comActSocialOrg/{id}")
+    R comActSocialOrgSelectOne(@PathVariable("id") Long id);
+
+
+    /**
+     * 通过userId查询
+     *
+     * @param userId 主键
+     * @return 单条数据
+     */
+    @GetMapping("/comActSocialOrg/selectByUserId")
+    R selectOneByUserId(@RequestParam("userId") Long userId);
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/comActSocialMember/queryAll")
+    public R comActSocialMemberSelectAll(@RequestBody CommonPage commonPage);
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/comActSocialMember/{id}")
+    public R comActSocialMemberSelectOne(@PathVariable("id") Long id);
+
+    /**
+     * 新增数据
+     *
+     * @param comActSocialMember 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/comActSocialMember")
+    public R comActSocialMemberInsert(@RequestBody ComActSocialMemberVO comActSocialMember);
+
+    /**
+     * 批量新增数据
+     *
+     * @param comActSocialMember 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/comActSocialProjectMember/batch")
+    public R comActSocialMemberInsertBatch(@RequestBody ComActSocialProjectMemberVO comActSocialMember);
+
+    /**
+     * 修改数据
+     *
+     * @param comActSocialMember 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/comActSocialMember/update")
+    public R comActSocialMemberUpdate(@RequestBody ComActSocialMemberVO comActSocialMember);
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("/comActSocialMember/del")
+    public R comActSocialMemberDelete(@RequestParam("id") Long id);
+
+    /**
+     * 新增社工
+     * @param comActSocialWorkerAddDTO
+     * @return 新增结果
+     */
+    @PostMapping("/comActSocialWorker/add")
+    R addComactsocialworker(@RequestBody ComActSocialWorkerAddDTO comActSocialWorkerAddDTO);
+
+    /**
+     * 修改社工
+     * @param comActSocialWorkerEditDTO
+     * @return 维护结果
+     */
+    @PostMapping("/comActSocialWorker/edit")
+    R editComactsocialworker(@RequestBody ComActSocialWorkerEditDTO comActSocialWorkerEditDTO);
+
+    /**
+     * 分页查找社工
+     * @param pageComActSocialWorkerDTO
+     * @return 维护结果
+     */
+    @PostMapping("/comActSocialWorker/page")
+    R queryComactsocialworker(@RequestBody PageComActSocialWorkerDTO pageComActSocialWorkerDTO);//返回 R<IPage<ComActSocialWorkerVO>>
+
+    /**
+     * 删除社工
+     * @param comActSocialWorkerDeleteDTO
+     * @return 平台用户信息
+     */
+    @PostMapping("/comActSocialWorker/delete")
+    R deleteComactsocialworker(@RequestBody ComActSocialWorkerDeleteDTO comActSocialWorkerDeleteDTO);
+
+    /**
+     * 查询社工详细信息
+     * @param id 社工 id
+     * @return 查找结果
+     */
+    @PostMapping("/comActSocialWorker/{id}")
+    R<ComActSocialWorkerVO> comActSocialWorkerDetails(@PathVariable("id") Long id);
+
+    /**
+     * 批量导入社工
+     *
+     * @param list 社工集合
+     */
+    @PostMapping("/comActSocialWorker/input")
+    R listSaveSocialWorkerExcelVO(@RequestBody List<ComActSocialWorkerExcelVO> list, @RequestParam("communityId") Long communityId);
+
+    /**
+     *活动查询社工列表
+     * @param commonPage
+     * @return
+     */
+    @PostMapping("/comActSocialWorker/activity")
+    R activity(@RequestBody CommonPage commonPage);
+
+    /**
+     * 社工查询活动
+     * @param commonPage
+     * @return
+     */
+    @PostMapping("/comActSocialWorker/activityList")
+    R activityList(@RequestBody CommonPage commonPage);
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/comActSocialWorkerService/queryAll")
+    R selectAllComActSocialWorkerService(@RequestBody CommonPage commonPage);
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/comActSocialWorkerService/{id}")
+    R selectOneComActSocialWorkerService(@PathVariable("id") Long id);
+
+    /**
+     * 修改数据
+     *
+     * @param comActSocialWorkerServiceVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/comActSocialWorkerService/update")
+    R updateComActSocialWorkerService(@RequestBody ComActSocialWorkerServiceVO comActSocialWorkerServiceVO);
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/comActSocialProject/queryAll")
+    R selectAllComActSocialProject(@RequestBody CommonPage commonPage);
+
+    /**
+     * 平台详情接口
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/comActSocialProject/{id}")
+    R selectOneComActSocialProject(@PathVariable("id") Long id);
+
+    /**
+     * 根据项目id分页获取关联项目
+     */
+    @PostMapping("/comActSocialProject/getRelation")
+    R getRelationComActSocialProject(@RequestBody CommonPage commonPage);
+
+    /**
+     * 新增数据
+     *
+     * @param socialProjectVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/comActSocialProject")
+    R insertComActSocialProject(@RequestBody SocialProjectVO socialProjectVO);
+    /**
+     * 修改数据
+     *
+     * @param socialProjectVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/comActSocialProject/update")
+    R updateComActSocialProject(@RequestBody SocialProjectVO socialProjectVO);
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("/comActSocialProject/del")
+    R deleteComActSocialProject(@RequestParam("id") Long id);
+    /**
+     * 小程序详情接口
+     * @param id
+     * @param userId
+     * @return
+     */
+    @GetMapping("/comActSocialProject/getApplet")
+    R getAppletComActSocialProject(@RequestParam("id") Long id, @RequestParam(value = "userId", required = false) Long userId);
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/comActSocialProjectMember/queryAll")
+    public R selectAllComActSocialProjectMember(@RequestBody CommonPage commonPage);
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/comActSocialProjectMember/{id}")
+    public R selectOneComActSocialProjectMember(@PathVariable("id") Long id);
+
+    /**
+     * 新增数据
+     *
+     * @param comActSocialProjectMemberVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/comActSocialProjectMember")
+    public R insertComActSocialProjectMember(@RequestBody ComActSocialProjectMemberVO comActSocialProjectMemberVO);
+
+    /**
+     * 修改数据
+     *
+     * @param comActSocialProjectMemberVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/comActSocialProjectMember/update")
+    public R updateComActSocialProjectMember(@RequestBody ComActSocialProjectMemberVO comActSocialProjectMemberVO);
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("/comActSocialProjectMember/del")
+    public R deleteComActSocialProjectMember(@RequestParam("id") Long id);
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/comActSocialProjectPublicity/queryAll")
+    public R selectAllComActSocialProjectPublicity(@RequestBody CommonPage commonPage);
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/comActSocialProjectPublicity/getByApplet/{id}")
+    public R selectOneComActSocialProjectPublicity(@PathVariable("id") Long id);
+
+
+    /**
+     * 新增数据
+     *
+     * @param comActSocialProjectPublicityVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/comActSocialProjectPublicity")
+    public R insertComActSocialProjectPublicity(@RequestBody ComActSocialProjectPublicityVO comActSocialProjectPublicityVO);
+
+    /**
+     * 修改数据
+     *
+     * @param comActSocialProjectPublicityVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/comActSocialProjectPublicity/update")
+    public R updateComActSocialProjectPublicity(@RequestBody ComActSocialProjectPublicityVO comActSocialProjectPublicityVO);
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("/comActSocialProjectPublicity/del")
+    public R deleteComActSocialProjectPublicity(@RequestParam("id") Long id);
+    /**
+     * 多条删除数据
+     *
+     * @param ids 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("/comActSocialProjectPublicity/delBatch")
+    public R delBatchComActSocialProjectPublicity(@RequestParam("ids") List<Long> ids);
+
+    /**
+     * 根据projectId查询所有进度
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/comActSocialProjectSchedule/queryAll")
+    public R selectAllComActSocialProjectSchedule(@RequestBody CommonPage commonPage);
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/comActSocialProjectSchedule/{id}")
+    public R selectOneComActSocialProjectSchedule(@PathVariable("id") Long id);
+
+    /**
+     * 新增数据
+     *
+     * @param comActSocialProjectScheduleVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/comActSocialProjectSchedule")
+    public R insertComActSocialProjectSchedule(@RequestBody ComActSocialProjectScheduleVO comActSocialProjectScheduleVO);
+
+    /**
+     * 修改数据
+     *
+     * @param comActSocialProjectScheduleVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/comActSocialProjectSchedule/update")
+    public R updateComActSocialProjectSchedule(@RequestBody ComActSocialProjectScheduleVO comActSocialProjectScheduleVO);
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("/comActSocialProjectSchedule/del")
+    public R deleteComActSocialProjectSchedule(@RequestParam("id") Long id);
+
+    /**
+     * 项目分类级联
+     * @param comActColumnVO
+     * @return
+     */
+    @PostMapping("/comActColumn/queryLevel")
+    public R queryLevel(@RequestBody ComActColumnVO comActColumnVO);
+
+    @PostMapping("/comActRaffle/queryAll")
+    R selectAllComActRaffle(@RequestBody CommonPage commonPage);
+
+    @GetMapping("/comActRaffle/detail")
+    R selectOneComActRaffle(@RequestParam("id") Long id,@RequestParam("userId")Long userId);
+
+    @PostMapping("/comActRaffle")
+    R insertComActRaffle(@RequestBody ComActRaffleVO comActRaffleVO);
+
+    @PostMapping("/comActRaffle/update")
+    R updateComActRaffle(@RequestBody ComActRaffleVO comActRaffleVO);
+
+    @GetMapping("/comActRaffle/del")
+    R deleteComActRaffle(@RequestParam("id") Long id);
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/comActRaffleRecord/queryAll")
+    R selectAllComActRaffleRecord(@RequestBody CommonPage commonPage);
+
+    @GetMapping("/comActRaffleRecord/queryPrize")
+    R queryPrize(@RequestParam("id")Long id);
+
+    /**
+     * 生成二维码
+     * @param qrCodeVO
+     * @return
+     */
+    @PostMapping("/comActRaffleRecord/getQRCode")
+    R getRaffleQRCode(@RequestBody QRCodeVO qrCodeVO);
+
+    /**
+     * 修改数据
+     *
+     * @param comActRaffleRecordVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/comActRaffleRecord/update")
+    R updateRaffleRecord(@RequestBody ComActRaffleRecordVO comActRaffleRecordVO);
+
+    @PostMapping("/comActRaffleRecord")
+    R insertRaffleRecord(@RequestBody ComActRaffleRecordVO comActRaffleRecordVO);
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/comActRaffleRecord/{id}")
+    R selectOneRaffleRecord(@PathVariable("id") Long id);
+    /**
+     * 导出
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/comActRaffleRecord/export")
+    R exportComActRaffleRecord(@RequestBody CommonPage commonPage);
+
+    /**
+     * [方法描述] 根据社区ID查询所属城市所在区区域代码,
+     *
+     * @param communityId
+     *            社区ID
+     * @return String 区域code
+     * @author manailin
+     * @date 2022/2/17 10:09
+     */
+    @GetMapping("act/getActBelongRegionCode")
+    String getActBelongRegionCode(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 新增团队类型
+     * @param addTeamTypeDTO
+     * @return
+     */
+    @PostMapping("/fms/teamType/add")
+    R addFmsTeamType(@RequestBody AddTeamTypeDTO addTeamTypeDTO);
+
+    /**
+     * 修改团队类型
+     * @param editTeamTypeDTO
+     * @return
+     */
+    @PostMapping("/fms/teamType/edit")
+    R editFmsTeamType(@RequestBody EditTeamTypeDTO editTeamTypeDTO);
+
+    /**
+     * 删除团队类型
+     * @param teamTypeId
+     * @param communityId
+     * @return
+     */
+    @DeleteMapping("/fms/teamType/delete")
+    R deleteFmsTeamType(@RequestParam("teamTypeId") Long teamTypeId,
+                        @RequestParam("communityId") Long communityId);
+
+    /**
+     * 获取团队类型列表
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/fms/teamType/list")
+    R listFmsTeamType(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 新增团队
+     * @param addTeamDTO
+     * @return
+     */
+    @PostMapping("/fms/team/add")
+    R addFmsTeam(@RequestBody AddTeamDTO addTeamDTO);
+
+    /**
+     * 修改团队信息
+     * @param editTeamDTO
+     * @return
+     */
+    @PostMapping("/fms/team/edit")
+    R editFmsTeam(@RequestBody EditTeamDTO editTeamDTO);
+
+    /**
+     * 删除团队
+     * @param teamId
+     * @return
+     */
+    @DeleteMapping("/fms/team/delete")
+    R deleteFmsTeam(@RequestParam("teamId") Long teamId);
+
+    /**
+     * 获取团队列表
+     * @param teamTypeId
+     * @return
+     */
+    @GetMapping("/fms/team/list")
+    R listFmsTeam(@RequestParam("teamTypeId") Long teamTypeId);
+
+    /**
+     * 获取团队详情
+     * @param teamId
+     * @return
+     */
+    @GetMapping("/fms/team/detail")
+    R detailFmsTeam(@RequestParam("teamId") Long teamId);
+
+    /**
+     * 级联查询团队数据
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/fms/team/cascade")
+    R retrieveFmsTeamCascade(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 新增团队成员
+     * @param addTeamMemberDTO
+     * @return
+     */
+    @PostMapping("/fms/teamMember/add")
+    R addFmsTeamMember(@RequestBody AddTeamMemberDTO addTeamMemberDTO);
+
+    /**
+     * 编辑团队成员
+     * @param editTeamMemberDTO
+     * @return
+     */
+    @PostMapping("/fms/teamMember/edit")
+    R editFmsTeamMember(@RequestBody EditTeamMemberDTO editTeamMemberDTO);
+
+    /**
+     * 删除团队成员
+     * @param deleteTeamMemberDTO
+     * @return
+     */
+    @PostMapping("/fms/teamMember/delete")
+    R deleteFmsTeamMember(@RequestBody DeleteTeamMemberDTO deleteTeamMemberDTO);
+
+    /**
+     * 分页查询团队成员
+     * @param pageTeamMemberDTO
+     * @return
+     */
+    @PostMapping("/fms/teamMember/page")
+    R pageFmsTeamMember(@RequestBody PageTeamMemberDTO pageTeamMemberDTO);
+
+    /**
+     * 微团队顶部统计
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/fms/teamMember/statistics")
+    R statisticsFmsTeamMember(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 批量导入团队成员
+     * @param voList
+     * @param communityId
+     * @param userId
+     * @return
+     */
+    @PostMapping("/fms/teamMember/import")
+    R listSaveFmsTeamMemberExcelVO(@RequestBody List<ComFmsTeamMemberImportExcelVO> voList,
+                                   @RequestParam("communityId") Long communityId, @RequestParam("userId") Long userId);
+
+    /**
+     * 团队人员导出
+     * @param pageTeamMemberDTO
+     * @return
+     */
+    @PostMapping("/fms/teamMember/export")
+    R exportTeamMember(@RequestBody PageTeamMemberDTO pageTeamMemberDTO);
+
+    /**
+     * 后台新增微服务
+     * @param adminDTO
+     * @return
+     */
+    @PostMapping("/fms/service/adminAdd")
+    R addFmsServiceAdmin(@RequestBody AddFmsServiceAdminDTO adminDTO);
+
+    /**
+     * 后台分页查询微服务
+     * @param adminDTO
+     * @return
+     */
+    @PostMapping("/fms/service/adminPage")
+    R pageFmsServiceAdmin(@RequestBody PageFmsServiceAdminDTO adminDTO);
+
+    /**
+     * 后台核实微服务
+     * @param adminDTO
+     * @return
+     */
+    @PostMapping("/fms/service/approval")
+    R approvalFmsService(@RequestBody ApprovalFmsServiceAdminDTO adminDTO);
+
+    /**
+     * 级联查询团队服务人员
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/fms/teamMember/cascade")
+    R retrieveFmsTeamMemberCascade(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 后台查看微服务详情
+     * @param serviceId
+     * @return
+     */
+    @GetMapping("/fms/service/detailAdmin")
+    R detailFmsServiceAdmin(@RequestParam("serviceId") Long serviceId);
+
+    /**
+     * 后台删除微服务
+     * @param serviceId
+     * @return
+     */
+    @DeleteMapping("/fms/service/delete")
+    R deleteFmsServiceAdmin(@RequestParam("serviceId") Long serviceId);
+
+    /**
+     * 微服务顶部统计
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/fms/service/statistics")
+    R statisticsFmsService(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 后台导入微服务数据
+     * @param voList
+     * @param communityId
+     * @param userId
+     * @return
+     */
+    @PostMapping("/fms/service/import")
+    R listSaveFmsServiceExcelVO(@RequestBody List<ComFmsServiceImportExcelVO> voList,
+                                @RequestParam("communityId") Long communityId,
+                                @RequestParam("userId") Long userId);
+
+    /**
+     * 后台新增微讲堂
+     * @param adminDTO
+     * @return
+     */
+    @PostMapping("/fms/classroom/add")
+    R addFmsClassroom(@RequestBody AddFmsClassroomAdminDTO adminDTO);
+
+    /**
+     * 后台编辑微讲堂
+     * @param adminDTO
+     * @return
+     */
+    @PostMapping("/fms/classroom/edit")
+    R editFmsClassroom(@RequestBody EditFmsClassroomAdminDTO adminDTO);
+
+    /**
+     * 后台删除微讲堂
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/fms/classroom/delete")
+    R deleteFmsClassroom(@RequestParam("id") Long id);
+
+    /**
+     * 后台获取微讲堂详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/fms/classroom/detail")
+    R detailFmsClassroom(@RequestParam("id") Long id);
+
+    /**
+     * 后台分页查询微讲堂
+     * @param adminDTO
+     * @return
+     */
+    @PostMapping("/fms/classroom/pageAdmin")
+    R pageFmsClassroomAdmin(@RequestBody PageFmsClassroomAdminDTO adminDTO);
+
+    /**
+     * 微讲堂顶部统计
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/fms/classroom/statistics")
+    R statisticsFmsClassroom(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 后台分页查询微调节/微防控
+     * @param adminDTO
+     * @return
+     */
+    @PostMapping("/fms/event/page")
+    R pageFmsEvent(@RequestBody PageFmsEventAdminDTO adminDTO);
+
+    /**
+     * 微调节/微防控顶部统计
+     * @param type
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/fms/event/statistics")
+    R statisticsFmsEvent(@RequestParam("type") Integer type, @RequestParam("communityId") Long communityId);
+
+    /**
+     * 微调节/微防控事件详情
+     * @param eventId
+     * @return
+     */
+    @GetMapping("/fms/event/detail")
+    R detailFmsEvent(@RequestParam("eventId") Long eventId);
+
+    /**
+     * 小程序分页查询团队信息
+     * @param pageFmsTeamDTO
+     * @return
+     */
+    @PostMapping("/fms/team/pageApplets")
+    R pageFmsTeamApplets(@RequestBody PageFmsTeamDTO pageFmsTeamDTO);
+
+    /**
+     * 获取微讲堂详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/fms/classroom/detailApplets")
+    R detailFmsClassroomApplets(@RequestParam("id") Long id);
+
+    /**
+     * 小程序分页查询微调节/微防控
+     * @param adminDTO
+     * @return
+     */
+    @PostMapping("/fms/event/pageApplets")
+    R pageFmsEventApplets(@RequestBody PageFmsEventAdminDTO adminDTO);
+
+    /**
+     * 小程序分页查询微服务
+     * @param adminDTO
+     * @return
+     */
+    @PostMapping("/fms/service/pageApplets")
+    R pageFmsServiceApplets(@RequestBody PageFmsServiceAppletsDTO adminDTO);
+
+    /**
+     * 小程序查看微服务详情
+     * @param serviceId
+     * @param userId
+     * @return
+     */
+    @GetMapping("/fms/service/detailApplets")
+    R detailFmsServiceApplets(@RequestParam("serviceId") Long serviceId, @RequestParam(value = "userId", required = false) Long userId);
+
+    /**
+     * 微服务申请
+     * @param adminDTO
+     * @return
+     */
+    @PostMapping("/fms/service/apply")
+    R applyFmsService(@RequestBody ApplyFmsServiceDTO adminDTO);
+
+    /**
+     * 分页查询我的微服务
+     * @param adminDTO
+     * @return
+     */
+    @PostMapping("/fms/service/pageMy")
+    R pageMyFmsService(@RequestBody PageFmsServiceAppletsDTO adminDTO);
+
+    /**
+     * 微服务评价
+     * @param evaluationFmsServiceDTO
+     * @return
+     */
+    @PostMapping("/fms/service/evaluate")
+    R evaluateFmsService(@RequestBody EvaluationFmsServiceDTO evaluationFmsServiceDTO);
+
+    /**
+     * 微团队成员分页查询服务处理
+     * @param adminDTO
+     * @return
+     */
+    @PostMapping("/fms/service/pageDeal")
+    R pageDealFmsService(@RequestBody PageFmsServiceAppletsDTO adminDTO);
+
+    /**
+     * 微团队成员服务反馈
+     * @param adminDTO
+     * @return
+     */
+    @PostMapping("/fms/service/feedback")
+    R feedbackFmsService(@RequestBody FeedbackFmsServiceDTO adminDTO);
+
+    /**
+     * 定时任务针对服务结束后3天还未评价的用户默认好评
+     * @return
+     */
+    @PostMapping("/fms/service/defaultPraise")
+    R timedTaskFmsServiceDefaultPraise();
+
+    @GetMapping("/activity/partyMemberCount")
+    R partyMemberCount(@RequestParam("communityId")Long communityId,@RequestParam("year")String year);
+
+    /**
+     * 根据小区id查询楼栋列表
+     * @param villageId 小区id
+     * @return  查询楼栋列表
+     */
+    @GetMapping("/building/getBuildListByVillageId")
+    R getBuildListByVillageId(@RequestParam(value = "villageId") Long villageId);
+    /**
+     * 党员活动详情数据
+     * @return
+     */
+    @PostMapping("/activity/partyMemberDetail")
+    R partyMemberDetail(@RequestBody CommonPage commonPage);
+    /**
+     * 导出党员活动详情数据
+     * @return
+     */
+    @PostMapping("/activity/exportPartyMemberDetail")
+    R exportPartyMemberDetail(@RequestBody CommonPage commonPage);
+
+    /**
+     * 金沙定制页面-党建引领基础数据
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/partyBuildIng/base")
+    R getPartyBuildIngBaseData(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 党员活动展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/screen/partyBuildIng/partyAct")
+    R pagePartyBuildIngAct(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 议事投票展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/screen/partyBuildIng/discuss")
+    R pagePartyBuildIngDiscuss(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 金沙定制页面-四长四员
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/fourMember/base")
+    R getFourMemberBaseData(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 杨家坪定制页面-五微服务
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/fms/base")
+    R getFmsBaseData(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 杨家坪定制页面-微团队展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/screen/fms/team")
+    R pageFmsTeam(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 杨家坪定制页面-居家养老基础数据
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/alarm/base")
+    R getAlarmBaseData(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 杨家坪定制页面-报警记录展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/screen/alarm/record")
+    R pageAlarmRecord(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 杨家坪定制页面-报警设备点位图
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/alarm/pointMap")
+    R getAlarmPointMap(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 杨家坪定制页面-志愿服务
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/volunteer/base")
+    R getVolunteerBaseData(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 金沙定制页面-志愿线展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/screen/partyBuildIng/microWish")
+    R pagePartyBuildIngMicroWish(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 金沙定制页面-四长四员解决问题展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/screen/fourMember/resolve")
+    R pageFourMemberResolve(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 金沙定制页面-四长四员院落议事展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/screen/courtyard/list")
+    R pageCourtyardDiscuss(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 金沙定制页面-院落议事
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/courtyard/base")
+    R getCourtyardBaseData(@RequestParam("communityId") Long communityId);
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comActEasyPhotoHandler 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-03-01 13:45:10
+     */
+    @PostMapping("/comActEasyPhotoHandler/page")
+    R queryEasyPhotoHandler(@RequestBody PageComActEasyPhotoHandlerDto comActEasyPhotoHandler);
+
+    /**
+     * description  edit  编辑数据
+     *
+     * @param comActEasyPhotoHandler 请求参数
+     * @return 编辑结果
+     * @author lyq
+     * @date 2022-03-01 13:45:10
+     */
+    @PostMapping("/comActEasyPhotoHandler/edit")
+    R editEasyPhotoHandler(@RequestBody EditComActEasyPhotoHandlerDto comActEasyPhotoHandler);
+
+    @GetMapping("/reserve/fiveCount")
+    R fiveCount(@RequestParam("reserveId") Long reserveId);
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("/comActEasyPhotoMember/del")
+    R comActEasyPhotoMemberDelete(@RequestParam("id") Long id);
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/comActEasyPhotoMember/queryAll")
+    R comActEasyPhotoMemberSelectAll(@RequestBody CommonPage commonPage);
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/comActEasyPhotoMember/{id}")
+    R comActEasyPhotoMemberSelectOne(@PathVariable("id") Long id);
+
+    /**
+     * 新增数据
+     *
+     * @param comActEasyPhotoMemberVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/comActEasyPhotoMember")
+    R comActEasyPhotoMemberInsert(@RequestBody ComActEasyPhotoMemberVO comActEasyPhotoMemberVO);
+
+    /**
+     * 修改数据
+     *
+     * @param comActEasyPhotoMemberVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/comActEasyPhotoMember/update")
+    R comActEasyPhotoMemberUpdate(@RequestBody ComActEasyPhotoMemberVO comActEasyPhotoMemberVO);
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param comActAcidRecordDTO 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/comActAcidRecord/queryAll")
+    R selectAllComActAcidRecord(@RequestBody ComActAcidRecordDTO comActAcidRecordDTO);
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/comActAcidRecord/{id}")
+    R selectOneComActAcidRecord(@PathVariable("id") Long id);
+
+    /**
+     * 新增数据
+     *
+     * @param comActAcidRecordVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/comActAcidRecord")
+    R insertComActAcidRecord(@RequestBody ComActAcidRecordVO comActAcidRecordVO);
+
+    /**
+     * 修改数据
+     *
+     * @param comActAcidRecordVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/comActAcidRecord/update")
+    R updateComActAcidRecord(@RequestBody ComActAcidRecordVO comActAcidRecordVO);
+
+
+    /**
+     * 小程序修改填报记录
+     *
+     * @param comActAcidRecordVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/comActAcidRecord/updateApplets")
+    R updateApplets(@RequestBody ComActAcidRecordVO comActAcidRecordVO);
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("/comActAcidRecord/del")
+    R deleteComActAcidRecord(@RequestParam("id") Long id);
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("/comActAcidRecord/detailByApp")
+    R detailByApp(@RequestParam("id") Long id,@RequestParam("localCity")String localCity);
+
+    @GetMapping("/comActAcidRecord/charts")
+    R charts(@RequestParam("date")String date,@RequestParam("localCity")String localCity);
+
+    @PostMapping("/comActAcidRecord/export")
+    R exportComActAcidRecord(@RequestBody ComActAcidRecordDTO comActAcidRecordDTO);
+
+    @GetMapping("/comActAcidRecord/checkCommit")
+    R checkCommit(@RequestParam(value = "userId",required = false)Long userId);
+
+
+    /**
+     * 5项常规统计
+     * @return
+     */
+    @GetMapping("/comActAcidRecord/fiveCount")
+    R comActAcidRecordFiveCount(@RequestParam("localCity")String localCity);
+
+    /**
+     * 7项常规统计
+     * @return
+     */
+    @GetMapping("/comActAcidRecord/fiveCountPlus")
+    R comActAcidRecordFiveCountPlus(@RequestParam("date")String date,@RequestParam("localCity")String localCity,@RequestParam(value = "loginAccount",required = false)String loginAccount);
+
+    @GetMapping("/comActAcidRecord/statics")
+    R comActAcidRecordStatics(@RequestParam("date")String date);
+
+    @GetMapping("/comActAcidRecord/test")
+    R test();
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/comActReserveDangerArea/queryAll")
+    R selectAllComActReserveDangerArea(@RequestBody CommonPage commonPage);
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/comActReserveDangerArea/{id}")
+    R selectOneComActReserveDangerArea(@PathVariable("id") Long id);
+
+    /**
+     * 修改数据
+     *
+     * @param comActReserveDangerAreaVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/comActReserveDangerArea/update")
+    R updateComActReserveDangerArea(@RequestBody ComActReserveDangerAreaVO comActReserveDangerAreaVO);
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("/comActReserveDangerArea/del")
+    R deleteComActReserveDangerArea(@RequestParam("id") Long id);
+
+    /**
+     * 风险区数据统计
+     * @return
+     */
+    @GetMapping("/comActReserveDangerArea/statics")
+    R staticsComActReserveDangerArea();
+
+    /**
+     * 批量设置起始时间
+     * @param editDangerBatchDTO
+     * @return
+     */
+    @PostMapping("/comActReserveDangerArea/updateBatch")
+    R updateBatchComActReserveDangerArea(@RequestBody EditDangerBatchDTO editDangerBatchDTO);
+
+    @GetMapping("/comAreaTownCommunity/areaTownCommunity")
+    R areaTownCommunity(@RequestParam("name")String name,@RequestParam("userId")Long userId);
+
+    /**
+     * 物业公司详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/comProperty/detail")
+    R detailProperty(@RequestParam("id") Long id);
+
+    /**
+     * 添加物业工作人员
+     * @param propertyWorkerDTO
+     * @return
+     */
+    @PostMapping("/comPropertyWorker/add")
+    R addPropertyWorker(@RequestBody PropertyWorkerDTO propertyWorkerDTO);
+
+    /**
+     * 编辑物业工作人员
+     * @param propertyWorkerDTO
+     * @return
+     */
+    @PutMapping("/comPropertyWorker/update")
+    R updatePropertyWorker(@RequestBody PropertyWorkerDTO propertyWorkerDTO);
+
+    /**
+     * 删除物业工作人员
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/comPropertyWorker/delete")
+    R deletePropertyWorker(@RequestParam("id") Long id);
+
+    /**
+     * 分页查询物业工作人员
+     * @param pagePropertyWorkerDTO
+     * @return
+     */
+    @PostMapping("/comPropertyWorker/page")
+    R pagePropertyWorker(@RequestBody PagePropertyWorkerDTO pagePropertyWorkerDTO);
+
+    /**
+     * 物业工作人员详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/comPropertyWorker/detail")
+    R detailPropertyWorker(@RequestParam("id") Long id);
+
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/comActAcidMember/queryAll")
+    R selectAllComActAcidMember(@RequestBody ComActAcidMemberDTO commonPage);
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/comActAcidMember/{id}")
+    R selectOneComActAcidMember(@PathVariable("id") Long id);
+
+    /**
+     * 新增数据
+     *
+     * @param comActAcidMemberVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/comActAcidMember")
+    R insertComActAcidMember(@RequestBody ComActAcidMemberVO comActAcidMemberVO);
+
+    /**
+     * 修改数据
+     *
+     * @param comActAcidMemberVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/comActAcidMember/update")
+    R updateComActAcidMember(@RequestBody ComActAcidMemberVO comActAcidMemberVO);
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("/comActAcidMember/del")
+    R deleteComActAcidMember(@RequestParam("id") Long id);
+
+    /**
+     * 分页查询风险人员
+     * @param pageDangerMemberDTO
+     * @return
+     */
+    @PostMapping("/comActAcidDangerMember/page")
+    R pageDangerMember(@RequestBody PageDangerMemberDTO pageDangerMemberDTO);
+
+    /**
+     * 后台分页查询风险人员
+     * @param pageDangerMemberDTO
+     * @return
+     */
+    @PostMapping("/comActAcidDangerMember/queryAll")
+    R pageDangerMemberAdmin(@RequestBody ComActAcidDangerMemberDTO pageDangerMemberDTO);
+
+    /**
+     * 列表查询
+     *
+     * @param comActAcidCheckRecordDTO 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/comActAcidCheckRecord/queryAll")
+    R selectAllComActAcidCheckRecord(@RequestBody ComActAcidCheckRecordDTO comActAcidCheckRecordDTO);
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/comActAcidCheckRecord/{id}")
+    R selectOneComActAcidCheckRecord(@PathVariable("id") Long id);
+
+    /**
+     * 新增数据
+     *
+     * @param comActAcidCheckRecordVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/comActAcidCheckRecord")
+    R insertComActAcidCheckRecord(@RequestBody ComActAcidCheckRecordVO comActAcidCheckRecordVO);
+
+    /**
+     * 修改数据
+     *
+     * @param comActAcidCheckRecordVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/comActAcidCheckRecord/update")
+    R updateComActAcidCheckRecord(@RequestBody ComActAcidCheckRecordVO comActAcidCheckRecordVO);
+
+    @GetMapping("/bcRegion/levelList")
+    R levelList(@RequestParam("level")Integer level,@RequestParam("code")String code);
+
+    @GetMapping("/bcRegion/levelListBackstage")
+    R levelListBackstage();
+
+    /**
+     * 单位活动统计
+     */
+    @GetMapping("/neighbor/activityAnalysis")
+    R institutionalUnitServiceAnalysis(@RequestParam(value = "year",required = false) Integer year,
+                                       @RequestParam(value = "type",required = false) Integer type,
+                                       @RequestParam(value = "range",required = false)Integer range,
+                                       @RequestParam(value = "communityId",required = false) Long communityId,
+                                       @RequestParam(value = "page",required = false) Integer page,
+                                       @RequestParam(value = "size",required = false) Integer size,
+                                       @RequestParam(value = "belongTo",required = false) String  belongTo,
+                                       @RequestParam(value = "unitId",required = false) Long unitId,
+                                       @RequestParam(value = "loginAccount",required = false) String loginAccount,
+                                       @RequestParam(value = "searchContent",required = false) String searchContent);
+
+    @GetMapping("/neighbor/export")
+    public List<ExcelDO> export(@RequestParam(value = "year",required = false) Integer year,
+                                @RequestParam(value = "belongTo",required = false) String belongTo,
+                                @RequestParam(value = "communityId",required = false) Long communityId);
+
+    @GetMapping("/neighbor/partyExcel")
+    public List<PartyExcelDO> partyExcel(@RequestParam(value = "year",required = false) Integer year,
+                                         @RequestParam(value = "belongTo",required = false) String belongTo,
+                                         @RequestParam(value = "communityId",required = false) Long communityId,
+                                         @RequestParam(value = "unitId",required = false) Long unitId);
+
+    /**
+     * 批量删除活动
+     * @param ids
+     * @return
+     */
+    @PostMapping("batchDel")
+    R deleteActivities(@RequestBody List<Long> ids);
+
+    /**
+     * 街道详情
+     * @param id
+     * @return
+     */
+    @GetMapping("detailStreet")
+    R detailStreet(@RequestParam("id") Long id);
+
+    /**
+     * 分页查询项目报名列表
+     * @param pageProjectSignListDTO
+     * @return
+     */
+    @PostMapping("/comActSocialProject/signList")
+    R pageProjectSignList(@RequestBody PageProjectSignListDTO pageProjectSignListDTO);
+
+    /**
+     * 分页查询孵化申请
+     * @param pageHatchAuditDTO
+     * @return
+     */
+    @PostMapping("/comActSocialOrgHatchAudit/page")
+    R pageHatchAudit(@RequestBody PageSocialOrgHatchAuditDTO pageHatchAuditDTO);
+
+    /**
+     * 查看孵化申请详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/comActSocialOrgHatchAudit/detail")
+    R detailHatchAudit(@RequestParam("id") Long id);
+
+    /**
+     * 修改孵化申请
+     * @param hatchAuditDTO
+     * @return
+     */
+    @PostMapping("/comActSocialOrgHatchAudit/update")
+    R updateHatchAudit(@RequestBody SocialOrgHatchAuditDTO hatchAuditDTO);
+
+    /**
+     * 分页查询孵化数据
+     * @param pageHatchDTO
+     * @return
+     */
+    @PostMapping("/comActSocialOrgHatch/page")
+    R pageOrgHatch(@RequestBody PageSocialOrgHatchDTO pageHatchDTO);
+
+    /**
+     * 查看孵化数据详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/comActSocialOrgHatch/detail")
+    R detailOrgHatch(@RequestParam("id") Long id);
+
+    /**
+     * 修改孵化状态
+     * @param id
+     * @param status
+     * @return
+     */
+    @PutMapping("/comActSocialOrgHatch/updateStatus")
+    R updateOrgHatchStatus(@RequestParam("id") Long id, @RequestParam("status") Integer status);
+
+    /**
+     * 获取孵化流程配置
+     * @return
+     */
+    @GetMapping("/comActSocialOrgHatchAudit/process")
+    R getHatchAuditProcess();
+
+    /**
+     * 修改孵化流程配置
+     * @param processDTO
+     * @return
+     */
+    @PutMapping("/comActSocialOrgHatchAudit/process")
+    R putHatchAuditProcess(@RequestBody HatchAuditProcessDTO processDTO);
+
+    /**
+     * 新增孵化申请
+     * @param hatchAuditDTO
+     * @return
+     */
+    @PostMapping("/comActSocialOrgHatchAudit/add")
+    R addHatchAudit(@RequestBody SocialOrgHatchAuditDTO hatchAuditDTO);
+
+    /**
+     * 查看孵化申请审核进度
+     * @param userId
+     * @return
+     */
+    @GetMapping("/comActSocialOrgHatchAudit/schedule")
+    R getHatchAuditSchedule(@RequestParam("userId") Long userId);
+
+    /**
+     * 项目公开报名
+     * @param projectId
+     * @param userId
+     * @return
+     */
+    @GetMapping("/comActSocialProject/sign")
+    R signProject(@RequestParam("projectId") Long projectId, @RequestParam("userId") Long userId);
+
+    /**
+     * 分页查询用户报名的项目
+     * @param pageProjectDTO
+     * @return
+     */
+    @PostMapping("/comActSocialProject/project")
+    R pageProjectWhichIsSignedByUser(@RequestBody PageProjectDTO pageProjectDTO);
+
+    /**
+     * 删除孵化申请详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/comActSocialOrgHatchAudit/delete")
+    R deleteHatchAudit(@RequestParam("id") Long id);
+
+    /**
+     * 删除孵化数据
+     * @param id
+     * @return
+     */
+    @GetMapping("/comActSocialOrgHatch/delete")
+    R deleteOrgHatch(@RequestParam("id") Long id);
+
+    /**
+     * 新增社区企业
+     * @param addEnterpriseDTO
+     * @return
+     */
+    @PostMapping("/enterprise/add")
+    R addEnterprise(@RequestBody AddEnterpriseDTO addEnterpriseDTO);
+
+    /**
+     * 修改社区企业
+     * @param editEnterpriseDTO
+     * @return
+     */
+    @PostMapping("/enterprise/edit")
+    R editEnterprise(@RequestBody EditEnterpriseDTO editEnterpriseDTO);
+
+    /**
+     * 删除社区企业
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/enterprise/delete")
+    R deleteEnterprise(@RequestParam("id") Long id);
+
+    /**
+     * 获取社区企业详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/enterprise/detail")
+    R detailEnterprise(@RequestParam("id") Long id);
+
+    /**
+     * 分页查询社区企业
+     * @param pageEnterpriseDTO
+     * @return
+     */
+    @PostMapping("/enterprise/page")
+    R pageEnterprise(@RequestBody PageEnterpriseDTO pageEnterpriseDTO);
+
+    /**
+     * 孵化中心-基础数据
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/hatch/base")
+    R getHatchBaseData(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 孵化中心-孵化成果展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/screen/hatchResult/list")
+    R pageHatchResult(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 孵化中心-孵化进度展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/screen/hatchSchedule/list")
+    R pageHatchSchedule(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 五社联动基础数据
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/fiveAssociations/base")
+    R getFiveAssociationsBaseData(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 五社联动项目展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/screen/socialProject/list")
+    R pageSocialProjectList(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 五社联动社会组织展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/screen/socialOrg/list")
+    R pageSocialOrgList(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 新增服务分类
+     * @param addEnterpriseTypeDTO
+     * @return
+     */
+    @PostMapping("/enterpriseType/add")
+    R addEnterpriseType(@RequestBody AddEnterpriseTypeDTO addEnterpriseTypeDTO);
+
+    /**
+     * 修改服务分类
+     * @param enterpriseTypeDTO
+     * @return
+     */
+    @PostMapping("/enterpriseType/edit")
+    R editEnterpriseType(@RequestBody EditEnterpriseTypeDTO enterpriseTypeDTO);
+
+    /**
+     * 删除服务分类
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/enterpriseType/delete")
+    R deleteEnterpriseType(@RequestParam("id") Long id);
+
+    /**
+     * 获取服务分类详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/enterpriseType/detail")
+    R detailEnterpriseType(@RequestParam("id") Long id);
+    /**
+     * 分页查询服务分类
+     * @param pageEnterpriseTypeDTO
+     * @return
+     */
+    @PostMapping("/enterpriseType/page")
+    R pageEnterpriseType(@RequestBody PageEnterpriseTypeDTO pageEnterpriseTypeDTO);
+
+    /**
+     * 获取服务分类列表
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/enterpriseType/list")
+    R getEnterpriseTypeList(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 新增人大代表
+     * @param addDpcDTO
+     * @return
+     */
+    @PostMapping("/dpc/add")
+    R addDpc(@RequestBody AddDpcDTO addDpcDTO);
+
+    /**
+     * 修改人大代表
+     * @param editDpcDTO
+     * @return
+     */
+    @PostMapping("/dpc/edit")
+    R editDpc(@RequestBody EditDpcDTO editDpcDTO);
+
+    /**
+     * 删除人大代表
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/dpc/delete")
+    R deleteDpc(@RequestParam("id") Long id);
+
+    /**
+     * 获取人大代表详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/dpc/detail")
+    R detailDpc(@RequestParam("id") Long id);
+
+    /**
+     * 分页查询人大代表
+     * @param pageDpcDTO
+     * @return
+     */
+    @PostMapping("/dpc/page")
+    R pageDpc(@RequestBody PageDpcDTO pageDpcDTO);
+
+    /**
+     * 获取人大代表反馈记录
+     * @param id
+     * @return
+     */
+    @GetMapping("/dpc/feedback")
+    R getFeedbackList(@RequestParam("id") Long id);
+
+    /**
+     * 人大代表反馈随手拍
+     * @param comActEasyPhotoVO
+     * @return
+     */
+    @PostMapping("/dpc/feedback")
+    R addEasyPhotoFeedbackForDpc(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO);
+
+    /**
+     * 人大代表
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/dpc/base")
+    R dpcBase(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 人大代表-随手拍展示列表
+     * @return
+     */
+    @PostMapping("/screen/dpc/easyPhotoList")
+    R dpcEasyPhotoList(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 查询详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/comActEasyPhotoHandler/detail")
+    R detailEasyPhotoHandler(@RequestParam("id") Long id);
+
+    /**
+     * 活动邀请列表
+     * @param pageActivityInviteDTO
+     * @return
+     */
+    @PostMapping("/activity/invite/list")
+    R pageActivityInviteList(@RequestBody PageActivityInviteDTO pageActivityInviteDTO);
+
+    /**
+     * 添加邀请人员
+     * @param list
+     * @return
+     */
+    @PostMapping("/activity/invite/add")
+    R activityInviteAdd(@RequestBody List<ActivityInviteDTO> list);
+
+    /**
+     * 删除邀请人员
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/activity/invite/delete")
+    R activityInviteDelete(@RequestParam("id") Long id);
+
+    /**
+     * 获取积分详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/integral/user/detail")
+    R getUserIntegralDetail(@RequestParam("id") Long id);
+
+    /**
+     * 分页查询可关联清单列表
+     * @param neighborCircleAppDTO
+     * @return
+     */
+    @PostMapping("/neighbor/pageRelationList")
+    R pageRelationList(@RequestBody ComActNeighborCircleAppDTO neighborCircleAppDTO);
+
+    /**
+     * 投票情况-分页查询
+     * @param pageVoteSituationDTO
+     * @return
+     */
+    @PostMapping("pageVoteSituation")
+    R pageVoteSituation(@RequestBody PageVoteSituationDTO pageVoteSituationDTO);
+
+    /**
+     * 投票情况详情
+     * @param optionUserId
+     * @return
+     */
+    @GetMapping("detailVoteSituation")
+    R detailVoteSituation(@RequestParam("optionUserId") Long optionUserId);
+
+    /**
+     * 批量核对防疫信息数据
+     * @param batchCheckAcidRecordDTO
+     * @return
+     */
+    @PostMapping("/comActAcidRecord/batchCheck")
+    R batchCheck(@RequestBody BatchCheckAcidRecordDTO batchCheckAcidRecordDTO);
+
+    /**
+     * 小程序获取可用的行业中心列表
+     * @return
+     * */
+    @GetMapping("/sanshuo/industryCenter/appletsList")
+    R    industryCenterAppList();
+
+    /**
+     * 后台获取行业中心列表
+     * */
+    @GetMapping("/sanshuo/industryCenter/list")
+    R backIndustrytList(@RequestParam(value = "keyWord",required = false)String keyWord,
+                       @RequestParam(value = "page",required = false)Integer page,
+                       @RequestParam(value = "size",required = false)Integer size);
+
+    /**
+     * 添加业务中心
+     * */
+    @PostMapping("/sanshuo/industryCenter")
+    R addIndustry(@RequestBody ComSanShuoIndustryCenterDTO comSanShuoIndustryCenterDTO);
+
+    /**
+     * 修改业务中心
+     * */
+    @PutMapping("/sanshuo/industryCenter")
+    R updateIndustry(@RequestBody ComSanShuoIndustryCenterDTO comSanShuoIndustryCenterDTO);
+
+    /**
+     * 删除业务中心
+     * */
+    @DeleteMapping("/sanshuo/industryCenter/remove")
+    R removeIndustry(@RequestParam("id") Long id);
+
+    /**
+     * 重置业务中心密码
+     * */
+    @PostMapping("/sanshuo/industryCenter/resetPass")
+    R resetIndustryPassword(@RequestBody ComSanShuoIndustryCenterDTO comSanShuoIndustryCenterDTO);
+
+    /**
+     * 业务中心详情
+     * */
+    @GetMapping("/sanshuo/industryCenter/detail")
+    R industryCenterDetail(@RequestParam("id") Long id);
+
+    /**
+     * 后台获取专家列表
+     * */
+    @GetMapping("/sanshuo/expert/backstageList")
+    R backExpertList(@RequestParam(value = "keyWord",required = false)@ApiParam("搜索关键字") String keyWord,
+                     @RequestParam(value = "page",required = false)Integer page,
+                     @RequestParam(value = "size",required = false)Integer size,
+                     @RequestParam(value = "level",required = false)Integer level);
+
+    /**
+     * 添加专家
+     * */
+    @PostMapping("/sanshuo/expert")
+    R addExpert(@RequestBody ComSanshuoExpertDTO comSanshuoExpertDTO);
+
+    /**
+     * 修改专家
+     * */
+    @PutMapping("/sanshuo/expert")
+    R updateExpert(@RequestBody ComSanshuoExpertDTO comSanshuoExpertDTO);
+
+    /**
+     * 删除专家
+     * */
+    @DeleteMapping("/sanshuo/expert/remove")
+    R removeExpert(@RequestParam("id")Long id);
+
+    /**
+     * 重置专家登陆密码
+     * */
+    @PostMapping("/sanshuo/expert/resetPassword")
+    R resetExpertPassword(@RequestBody ComSanshuoExpertDTO comSanshuoExpertDTO);
+
+    /**
+     * 小程序获取可选择专家列表
+     * */
+    @GetMapping("/sanshuo/expert/appletsList")
+    R expertAppList(@RequestParam (value = "type",required = false)Integer type,@RequestParam(value = "id",required = false)Long id);
+
+    /**
+     * 获取专家详情
+     * */
+    @GetMapping("/sanshuo/expert/detail")
+    R expertDetail(@RequestParam("id") Long id);
+
+    /**
+     * 后台事件列表
+     * */
+    @GetMapping("/sanshuo/event/list")
+    R backEventList(@RequestParam(value = "keyWord",required = false)String keyWord,
+                    @RequestParam(value = "page",required = false)Integer page,
+                    @RequestParam(value = "size",required = false)Integer size);
+
+    /**
+     * 事件详情
+     * */
+    @GetMapping("/sanshuo/event/detail")
+    R eventDetail(@RequestParam(value = "id",required = false)Long id);
+
+    /**
+     * 小程序获取事件列表
+     * */
+    @GetMapping("/sanshuo/event/appletsList")
+    R eventAppList();
+
+    /**
+     * 新增事件类型
+     * */
+    @PostMapping("/sanshuo/event")
+    R addEvent(@RequestBody ComMediateTypeDTO comSanshuoEventDTO);
+
+    /**
+     * 新增事件类型
+     * */
+    @PutMapping("/sanshuo/event")
+    R updateEvent(@RequestBody ComMediateTypeDTO comSanshuoEventDTO);
+
+    /**
+     * 删除事件类型
+     * */
+    @DeleteMapping("/sanshuo/event/remove")
+    R removeEvent(@RequestParam(value = "id",required = false)Long id);
+
+    /**
+     * 专家风采
+     * */
+    @GetMapping("/sanshuo/expert/expertShow")
+    R expertShow();
+
+
+    @GetMapping("/sanshuo/expert/expertRange")
+    R expertRange();
+
+    /**
+     * 大屏事件统计
+     * */
+    @PostMapping("/sanshuo/comEvent/indexData")
+    R sanshuoIndexDate(IndexDateDTO indexDateDTO);
+
+    /**
+     * 事件占比统计饼图
+     * */
+    @GetMapping("sanshuo/comEvent/indexData/event")
+    R eventIndexData(@RequestParam("type") Integer type);
+
+    /**
+     * 专家风采列表
+     * */
+    @GetMapping("/sanshuo/expert/expertShowList")
+    R expertShowList(@RequestParam(value = "level",required = false)Integer level,@RequestParam(value = "id",required = false)Long id);
+
+    /**
+     * 修改街道信息
+     * */
+    @PostMapping("/updateStreet")
+    R updateStreet(@RequestBody ComStreetVO comStreetVO);
+
+    /**
+     * 删除街道
+     * */
+    @GetMapping("/removeStreet")
+    R removeStreet(@RequestParam(value = "id",required = false)Long id);
+
+    /***
+     * 删除社区
+     * */
+    @GetMapping("/removeCommunity")
+    R removeCommunity(@RequestParam(value = "id",required = false)Long id);
+
+    @PostMapping("/repassCommunity")
+    R repassCommunity(@RequestBody ComActVO comActVO);
+
+    @PostMapping("/repassStreet")
+    R repassStreet(@RequestBody ComStreetVO comActVO);
+
+    /**
+     * 是否有绑定手机号码的专家账号
+     * */
+    @GetMapping("/sanshuo/expert/checkExpert")
+    R isExpert(@RequestParam(value = "number",required = false) String number);
+
+    @GetMapping("/sanshuo/comEvent/streetList")
+    R streetList();
+
+    @PostMapping("/sanshuo/expert/importExpert")
+    R importExpert(@RequestBody MultipartFile file);
+
+    @GetMapping("/sanshuo/comEvent/communityList")
+    R westList();
+
+    @GetMapping("/sanshuo/expert/backstageList2")
+    R expertBackStageList(@RequestParam(value = "level",required = false)Integer level,@RequestParam(value = "page",required = false)Integer page,
+                          @RequestParam(value = "size",required = false)Integer size,@RequestParam(value = "keyWord",required = false)String  keyWord);
+
+    /**
+     * 查询社区id集合
+     * @param id
+     * @return
+     */
+    @GetMapping("selectCommunityIds")
+    R selectCommunityIds(@RequestParam("id") Long id);
+
+    /**
+     * 查询社区id集合
+     * @param id
+     * @return
+     */
+    @GetMapping("selectAutomessageSysUserById")
+    R selectAutomessageSysUserById(@RequestParam("id") Long id);
+
+    /**
+     * 分页查询议事委员会列表
+     * */
+    @GetMapping("/proceedings/list")
+    R proceedingsList(@RequestParam(value = "page",required = false) Integer page,
+                      @RequestParam(value = "size",required = false) Integer size,
+                      @RequestParam(value = "keyWord",required = false) String keyWord);
+    /**
+     * 添加或修改议事委员会
+     * */
+    @PostMapping("/proceedings")
+    R addOrUpdateProceedings(@RequestBody ComActProceedingsDTO comActProceedingsDTO);
+
+    /**
+     * 自提点分页查询
+     * @param pageConvenientElevatingPointDTO
+     * @return
+     */
+    @PostMapping("/convenient/point/page")
+    R pagePoint(PageConvenientElevatingPointDTO pageConvenientElevatingPointDTO);
+
+    /**
+     * 新增自提点
+     * @param convenientElevatingPointDTO
+     * @return
+     */
+    @PostMapping("/convenient/point/add")
+    R addPoint(ConvenientElevatingPointDTO convenientElevatingPointDTO);
+
+    /**
+     * 编辑自提点
+     * @param convenientElevatingPointDTO
+     * @return
+     */
+    @PutMapping("/convenient/point/put")
+    R putPoint(ConvenientElevatingPointDTO convenientElevatingPointDTO);
+
+    /**
+     * 删除便民服务 自提点
+     * @param pointId
+     * @param operator
+     * @return
+     */
+    @DeleteMapping("/convenient/point/delete")
+    R deletePoint(@RequestParam("pointId") Long pointId, @RequestParam("operator") Long operator);
+
+    /**
+     * 便民服务详情 自提点
+     * @param pointId
+     * @return
+     */
+    @GetMapping("/convenient/point/detail")
+    R detailPoint(@RequestParam("pointId") Long pointId);
+
+    /**
+     * 新增商品分类
+     * @param convenientGoodsCategoryDTO
+     * @return
+     */
+    @PostMapping("/convenient/goodsCategory/add")
+    R addGoodsCategory(@RequestBody ConvenientGoodsCategoryDTO convenientGoodsCategoryDTO);
+
+    /**
+     * 编辑
+     * @param convenientGoodsCategoryDTO
+     * @return
+     */
+    @PutMapping("/convenient/goodsCategory/put")
+    R putGoodsCategory(@RequestBody ConvenientGoodsCategoryDTO convenientGoodsCategoryDTO);
+
+    /**
+     * 删除商品分类
+     * @param categoryId
+     * @return
+     */
+    @DeleteMapping("/convenient/goodsCategory/delete")
+    R deleteGoodsCategory(@RequestParam("categoryId") Long categoryId, @RequestParam("operator") Long operator);
+
+    /**
+     * 获取商品分类详情
+     * @param categoryId
+     * @return
+     */
+    @GetMapping("/convenient/goodsCategory/get")
+    R getGoodsCategory(@RequestParam("categoryId") Long categoryId);
+
+    /**
+     * 分页查询商品分类
+     * @param pageConvenientGoodsCategoryDTO
+     * @return
+     */
+    @PostMapping("/convenient/goodsCategory/page")
+     R pageGoodsCategory(@RequestBody PageConvenientGoodsCategoryDTO pageConvenientGoodsCategoryDTO);
+
+    @GetMapping("/dataCount")
+    R dataCount();
+
+    @DeleteMapping("/proceedings/remove")
+    R removeProceedings(@RequestParam("id") Long id);
+
+    /**
+     * 获取物业公司通知公告列表
+     * */
+    @GetMapping("comProperty/noticeList")
+    R noticeList(@RequestParam("page")Integer page,@RequestParam("size")Integer size,@RequestParam("propertyId")Long propertyId);
+
+    /**
+     * 获取所有商品分类
+     * @return
+     */
+    @GetMapping("/convenient/goodsCategory/getAllGoodsCategories")
+    R getAllGoodsCategories();
+
+    /**
+     * 分页查询用户收货地址列表
+     *
+     * @param comShopAddressDTO
+     *            请求参数
+     * @return 用户收货地址列表
+     */
+    @PostMapping("/shopFlower/shopUserAddressList")
+    R shopFlowerUserAddressList(@RequestBody PageComShopAddressDTO comShopAddressDTO);
+
+    /**
+     * 用户添加收货地址
+     *
+     * @param comShopAddressDTO
+     *            请求参数
+     * @return 添加结果
+     */
+    @PostMapping("/shopFlower/shopAddUserAddress")
+    R shopFlowerAddUserAddress(@RequestBody ComShopAddressDTO comShopAddressDTO);
+
+    /**
+     * 用户修改收货地址
+     *
+     * @param comShopAddressDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    @PostMapping("/shopFlower/shopEditUserAddress")
+    R shopFlowerEditUserAddress(@RequestBody ComShopAddressDTO comShopAddressDTO);
+
+    /**
+     * 用户删除收货地址
+     *
+     * @param addressId
+     *            收货地址id
+     * @return 删除结果
+     */
+    @DeleteMapping("/shopFlower/shopDelUserAddress")
+    R shopFlowerDelUserAddress(@RequestParam("addressId") Long addressId);
+
+    /**
+     * 订单预览
+     *
+     * @param orderPreviewDTO 请求参数
+     * @return 订单预览数据
+     */
+    @PostMapping("/shopFlower/orderPreview")
+    R orderPreviewFlower(@RequestBody ComShopOrderPreviewDTO orderPreviewDTO);
+
+    /**
+     * 创建订单
+     *
+     * @param orderCreateDTO 创建订单请求参数
+     * @return 创建结果
+     */
+    @PostMapping("/shopFlower/orderCreate")
+    R orderCreateFlower(@RequestBody ComShopOrderCreateDTO orderCreateDTO);
+
+    /**
+     * 分页查询用户订单列表
+     *
+     * @param comOrderListDTO 请求参数
+     * @return 查询结果
+     */
+    @PostMapping("/shopFlower/pageOrderList")
+    R pageOrderListFlower(@RequestBody PageComFlowerOrderListDTO comOrderListDTO);
+
+    /**
+     * 根据订单id查询订单详情
+     *
+     * @param orderId 订单id
+     * @return 订单详情
+     */
+    @GetMapping("/shopFlower/orderDetail")
+    R orderDetailFlower(@RequestParam("orderId") Long orderId,@RequestParam(value = "phone",required = false) String phone);
+
+    /**
+     * 根据订单id取消订单
+     *
+     * @param comShopOrderQueryDTO 请求参数
+     * @return 取消结果
+     */
+    @PostMapping("/shopFlower/orderCancel")
+    R orderCancelFlower(@RequestBody ComShopOrderQueryDTO comShopOrderQueryDTO);
+
+    /**
+     * 根据订单id删除订单
+     *
+     * @param orderId 订单id
+     * @return 删除结果
+     */
+    @DeleteMapping("/shopFlower/orderDelete")
+    R orderDeleteFlower(@RequestParam("orderId") Long orderId);
+
+    /**
+     * 根据订单id确认收货
+     *
+     * @param comShopOrderQueryDTO 请求参数
+     * @return 确认结果
+     */
+    @PostMapping("/shopFlower/orderConfirm")
+    R orderConfirmFlower(@RequestBody ComShopOrderQueryDTO comShopOrderQueryDTO);
+
+    /**
+     * 分页查询 商家订单
+     *
+     * @param pageComShopOrderSearchDTO 分页数据
+     * @return 分页订单
+     */
+    @PostMapping("/shopFlower/order/page")
+    R pageShopOrderFlower(@RequestBody PageComShopOrderSearchDTO pageComShopOrderSearchDTO);
+    /**
+     * 订单发货
+     *
+     * @param orderShipDTO 发货信息
+     * @return 发货结果
+     */
+    @PostMapping("/shopFlower/shipOrder")
+    R shipOrderFlower(@RequestBody ComShopOrderShipDTO orderShipDTO);
+
+    /**
+     * 订单配送
+     *
+     * @param deliverDTO 订单ID
+     * @return 配送结果
+     */
+    @PostMapping("/shopFlower/deliverOrder")
+    R deliverOrderFlower(@RequestBody ComShopOrderDeliverDTO deliverDTO);
+
+    /**
+     * 订单配送
+     *
+     * @param deliverDTO 订单ID
+     * @return 配送完成
+     */
+    @PostMapping("/shopFlower/finishDeliverOrder")
+    R finishDeliverOrderFlower(@RequestBody ComShopOrderDeliverDTO deliverDTO);
+
+    /**
+     * 获取当前商铺周围的自提点信息以及距离手机距离
+     *
+     * @param merchantId
+     * @return
+     */
+    @GetMapping("/convenient/point/findPointByMerchantId")
+    R findPointByMerchantId(@RequestParam("merchantId") Long merchantId, @RequestParam("lat") String lat, @RequestParam("lng") String lng);
+
+    /**
+     * 保存评价
+     * @param comShopFlowerEvaluateDTO
+     * @return
+     */
+    @PostMapping("/shopFlower/saveEvaluate")
+    R saveEvaluate(@RequestBody ComShopFlowerEvaluateDTO comShopFlowerEvaluateDTO);
+
+    /**
+     * 分页查询评价
+     * @param pageComShopFlowerEvaluateDTO
+     * @return
+     */
+    @PostMapping("/shopFlower/pageEvaluate")
+    R pageEvaluate(@RequestBody PageComShopFlowerEvaluateDTO pageComShopFlowerEvaluateDTO);
+
+    /**
+     * 评价详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/shopFlower/detailEvaluate")
+    R detailEvaluate(@RequestParam("id") Long id);
+
+    /**
+     * 删除评价
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/shopFlower/deleteEvaluate")
+    R deleteEvaluate(@RequestParam("id") Long id);
+
+    /**
+     * 取货码
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "取货码")
+    @GetMapping("/shopFlower/getQRCode")
+    R getQRCode(@RequestParam("id") Long id);
+
+    /**
+     * 保存配送单
+     * @param comShopFlowerOrderDeliveryDTO
+     */
+    @PostMapping("/shopFlower/saveDelivery")
+    R saveDelivery(@RequestBody ComShopFlowerOrderDeliveryDTO comShopFlowerOrderDeliveryDTO);
+
+    /**
+     * 更新配送单
+     * @param comShopFlowerOrderDeliveryDTO
+     */
+    @PostMapping("/shopFlower/updateDelivery")
+    R updateDelivery(@RequestBody ComShopFlowerOrderDeliveryDTO comShopFlowerOrderDeliveryDTO);
+
+    /**
+     * 已配送、已送达 分页查询
+     * @param pageComFlowerOrderDeliveryDTO
+     * @return
+     */
+    @PostMapping("/shopFlower/pageDelivery")
+    R pageDelivery(@RequestBody PageComFlowerOrderDeliveryDTO pageComFlowerOrderDeliveryDTO);
+
+    /**
+     * 未配送 分页查询
+     * @param pageComFlowerOrderDeliveryDTO
+     * @return
+     */
+    @PostMapping("/shopFlower/pageNoDelivery")
+    R pageNoDelivery(@RequestBody PageComFlowerOrderDeliveryDTO pageComFlowerOrderDeliveryDTO);
+
+    /**
+     * 未配送-开始配送-订单列表
+     * @param pageComFlowerOrderListDTO
+     * @return
+     */
+    @PostMapping("/shopFlower/pageNoDeliveryOrderList")
+    R pageNoDeliveryOrderList(@RequestBody PageComFlowerOrderListDTO pageComFlowerOrderListDTO);
+
+    /**
+     * 根据商家id查询商家的订单
+     * @param pageComFlowerOrderListDTO
+     * @return
+     */
+    @PostMapping("/shopFlower/pageOrderByStoreId")
+    R pageOrderByStoreId(@RequestBody PageComFlowerOrderListDTO pageComFlowerOrderListDTO);
+
+    /**
+     * 微信支付订单回调
+     *
+     * @param wxPayNotifyOrderDTO
+     *            订单支付回调参数
+     */
+    @PostMapping("/shopFlower/wxOrderPayNotify")
+    void wxOrderPayNotifyFlower(@RequestBody WxPayNotifyOrderDTO wxPayNotifyOrderDTO);
+
+    /**
+     * 点击去支付订单
+     *
+     * @param orderPayDTO
+     *            请求参数
+     * @return 支付对象
+     */
+    @PostMapping("/shopFlower/wxPay")
+    R wxPayFlower(@RequestBody OrderPayDTO orderPayDTO);
+
+    /**
+     * 获取社区动态置顶banner
+     * @param communityId  社区id
+     * */
+    @PostMapping("/easyphoto/getUserRewardsNew")
+    R getUserRewardsNew(@RequestParam("userId") Long userId, @RequestParam("communityId") Long communityId);
+
+    /**
+     * 统计查询订单数量
+     * @param deliveryType
+     * @param userId
+     * @return
+     */
+    @GetMapping("/shopFlower/selectCountByDeliveryType")
+    R selectCountByDeliveryType(@RequestParam("deliveryType") Integer deliveryType,@RequestParam("userId")  Long userId);
+
+    /**
+     * 查询我的店铺各类统计数据
+     * @param userId
+     * @return
+     */
+    @GetMapping("/shopFlower/selectCountByUserId")
+    R selectCountByUserId(@RequestParam("userId") Long userId);
+
+
+    /**
+     * 创建退款订单
+     * @param comShopFlowerRefundOrderDTO
+     * @return
+     */
+    @PostMapping("/shopFlower/createRefundOrder")
+    R createRefundOrder(@RequestBody ComShopFlowerRefundOrderDTO comShopFlowerRefundOrderDTO);
+
+    /**
+     * 分页查询
+     * @param pageComOrderRefundDTO
+     * @return
+     */
+    @PostMapping("/shopFlower/pageRefundOrder")
+    R pageRefundOrder(@RequestBody PageComOrderRefundDTO pageComOrderRefundDTO);
+
+    /**
+     * 修改退款订单
+     * @param comShopFlowerRefundOrderDTO
+     * @return
+     */
+    @PostMapping("/shopFlower/updateRefundOrder")
+    R updateRefundOrder(@RequestBody ComShopFlowerRefundOrderDTO comShopFlowerRefundOrderDTO);
+
+
+    /**
+     * 商家后台-退款申请统计
+     * @param storeId
+     * @return
+     */
+    @GetMapping("/shopFlower/selectCountGroupStatus")
+    R selectCountGroupStatus(@RequestParam("storeId") Long storeId);
+
+    /**
+     * 新增商品浏览量
+     * @param goodsId
+     * @return
+     */
+    @GetMapping("/shopFlower/incrGoodsView")
+    R incrGoodsView(@RequestParam("goodsId") Long goodsId);
+
+    /**
+     * 出入账分页
+     * @param pageComShopFlowerOrderPayDTO
+     * @return
+     */
+    @PostMapping("/shopFlower/pageOrderPay")
+    R pageOrderPay(@RequestBody PageComShopFlowerOrderPayDTO pageComShopFlowerOrderPayDTO);
+
+    /**
+     * 获取商家的营业额和可结算金额
+     * @param storeId
+     * @return
+     */
+    @GetMapping("/shopFlower/getQuota")
+    R getQuota(@RequestParam("storeId") Long storeId);
+
+    /**
+     * 取消退款
+     * @param id
+     * @return
+     */
+    @GetMapping("/shopFlower/refundOrderCancel")
+    R refundOrderCancel(@RequestParam("id") Long id);
+
+    /**
+     * 退款订单详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/shopFlower/refundOrderDetail")
+    R refundOrderDetail(@RequestParam("id") Long id);
+
+    /**
+     * 清点商品 确认送达详情
+     * @param pageComFlowerOrderListDTO
+     * @return
+     */
+    @PostMapping("/shopFlower/pageOrderByDeliveryNo")
+    R pageOrderByDeliveryNo(@RequestBody PageComFlowerOrderListDTO pageComFlowerOrderListDTO);
+
+    /**
+     * 商家后台经营数据统计-上
+     * @param storeId
+     * @return
+     */
+    @GetMapping("/shopFlower/selectSumOrderAndAmountByStoreId")
+    R selectSumOrderAndAmountByStoreId(@RequestParam("storeId") Long storeId);
+
+    /**
+     * 统计时间区域的订单量 15天 30天 一年
+     * @param storeId
+     * @param type
+     * @return
+     */
+    @GetMapping("/shopFlower/selectOrderLineChart") R selectOrderLineChart(@RequestParam("storeId") Long storeId,@RequestParam("type")  Integer type,@RequestParam("tab")  Integer tab);
+
+    /**
+     * 统计上架的上下架商品数量
+     * @param userId
+     * @return
+     */
+    @GetMapping("/shopFlower/countSaleByUserId")
+    R countSaleByUserId(@RequestParam("userId") Long userId);
+
+    /**
+     * 查询统计基础数据
+     * @return
+     */
+    @GetMapping("/selectBasicData")
+    R selectBasicData();
+
+    /**
+     * 统计在职干部特长
+     * @return
+     */
+    @GetMapping("/statisticsPbMemberType")
+    R statisticsPbMemberType();
+
+
+    /**
+     * 统计单位
+     * @return
+     */
+    @GetMapping("/selectUnitByNatureName")
+    R selectUnitByNatureName();
+
+    /**
+     * 大屏-社区活动分页
+     * @return
+     */
+    @PostMapping("pageActivityBigScreen")
+    R pageActivityBigScreen(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 疫情防控 健康码统计
+     * @return
+     */
+    @GetMapping("/comActAcidRecord/selectColorMarkGroup")
+    R selectColorMarkGroup();
+
+
+    @GetMapping("easyphoto/selectStatisticsPhoto")
+    R selectStatisticsPhoto();
+
+    /**
+     * 获取商家周围 n(km)的自提点数量
+     *
+     * @param distance
+     * @return
+     */
+    @GetMapping("/convenient/point/findPointNumByDistance")
+    R findPointNumByDistance(@RequestParam("distance") Integer distance, @RequestParam("lat") String lat, @RequestParam("lng") String lng);
+
+
+    /**
+     * 普达大屏-自治动态
+     * */
+    @GetMapping("/pudaScreen/autonomyDynamic")
+    R autonomyDynamic();
+
+    /**
+     * 普达大屏-红色物业
+     * */
+    @GetMapping("/pudaScreen/propertyDynamic")
+    R propertyDynamic();
+
+    /**
+     * 普达大屏-党建数据
+     **/
+    @GetMapping("/pudaScreen/partyData")
+    R partyData();
+
+    /**
+     *
+     * 普达大屏-居民信息
+     * */
+    @GetMapping("/pudaScreen/peopleInfo")
+    R peopleInfo();
+
+
+    /**
+     * 普达大屏-小区院落
+     * */
+    @GetMapping("/pudaScreen/countryard")
+    R countryard();
+
+    /**
+     * 普达大屏-基础数据
+     * */
+    @GetMapping("/pudaScreen/basicData")
+    R basicData();
+
+    /**
+     * 普达大屏-特殊人群
+     * */
+    @GetMapping("/pudaScreen/specialPeople")
+    R specialPeople();
+
+
+
+    /**
+     * 通过洗车订单查询银联订单
+     *
+     * @return
+     */
+    @GetMapping("/unionpay/detail")
+    R queryById(@RequestParam("Id") String id);
+
+
+    /**
+     * 通过银联订单查询洗车订单
+     *
+     * @return
+     */
+    @GetMapping("/unionpay/unionpayDetail")
+    R carWashById(@RequestParam("Id") String id);
+
+    /**
+     * 新增洗车订单和银联订单关系
+     * @param carWashId
+     * @param unionpayOrderId
+     * @param money
+     * @return
+     */
+    @PostMapping("/unionpay/add")
+    int add(@RequestParam("carWashId") String carWashId,
+          @RequestParam("unionpayOrderId") String unionpayOrderId,
+          @RequestParam("money") String money);
+
+
+
+
+
+
+    /*********************************************************************************************************
+     *
+     *
+     *                   最美志愿者
+     *
+     *
+     * *********************************************************************************************************/
+    @GetMapping("/MostBeautifu/queryById")
+    public R queryById2(@RequestParam("id") String Id);
+
+
+    /**
+     * 分页查询
+     * @param name
+     * @param unmountType
+     * @return
+     */
+    @GetMapping("/MostBeautifu/getqueryList")
+    public R queryList(@RequestParam("pageNum") int pageNum,
+                       @RequestParam("pageSize")int pageSize,
+                       @RequestParam(value = "name", required = false) String name,
+                       @RequestParam(value = "unmountType", required = false) String unmountType);
+
+
+
+    /**
+     * 新增
+     * @param mostBeautifulVolunteerVO
+     * @return
+     */
+    @PostMapping("/MostBeautifu/addMostBeautiful")
+    public R insertMostBeautifulVolunteer(@RequestBody MostBeautifulVolunteerVO mostBeautifulVolunteerVO);
+
+
+    /**
+     * 更新
+     * @param mostBeautifulVolunteerVO
+     * @return
+     */
+    @PostMapping("/MostBeautifu/upMostBeautiful")
+    public R updateById(@RequestBody MostBeautifulVolunteerVO mostBeautifulVolunteerVO);
+
+
+    /**
+     * 删除
+     * @param Id
+     * @return
+     */
+    @DeleteMapping("/MostBeautifu/delectVuId")
+    public R deleteById(@RequestParam("id")  String Id);
+
+
+    /********************************************************************************************************************
+     *
+     *
+     *        志愿者活动
+     *
+     *
+     *******************************************************************************************************************/
+    /**
+     * 获取单个详情
+     * @param id
+     * @return
+     */
+    @GetMapping("Volunteer/queryById")
+    R volunteerQueryById(@RequestParam("id") String id);
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("Volunteer/queryList")
+    R volunteerQueryList(@RequestParam("pageNum") int pageNum,
+                                       @RequestParam("pageSize") int pageSize,
+                                       @RequestParam(value = "name", required = false) String name,
+                                       @RequestParam(value = "acState", required = false) String acState,
+                                       @RequestParam(value = "acType", required = false) String acType,
+                                       @RequestParam(value = "actityBeginTime", required = false) Date actityBeginTime,
+                                       @RequestParam(value = "actityEndTime", required = false) Date actityEndTime);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("Volunteer/insertVolunteer")
+    R insertVolunteer(@RequestBody VolunteerActivityVO volunteerActivityVO);
+
+
+    @PostMapping("Volunteer/updateById")
+    R volunteerUpdateById(@RequestBody VolunteerActivityVO volunteerActivityVO);
+
+
+    @DeleteMapping("Volunteer/deleteById")
+    R volunteerDeleteById(@RequestParam("id") String id);
+
+
+
+    /**
+     * 定时刷新活动状态
+     * @return
+     */
+    @GetMapping("/Volunteer/timedTaskVolunteerActivitiesJobHandler")
+    public R  timedTaskVolunteerActivitiesJobHandler();
+
+
+    /*******************************************************************************************************************
+     *
+     *
+     *                             志愿者活动类型
+     *
+     *
+     *******************************************************************************************************************/
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/VolunteerType/volunteerTypeGetList")
+    public R volunteerTypeGetList(@RequestParam("pageNum")  int pageNum,
+                                  @RequestParam("pageSize")  int pageSize,
+                                  @RequestParam("type")   String type);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/VolunteerType/insertvolunteerType")
+    public R insertvolunteerType(@RequestBody VolunteerTypeVO volunteerTypeVO);
+
+    /**
+     * 更新
+     * @param volunteerTypeVO
+     * @return
+     */
+    @PostMapping("/VolunteerType/volunteerTypeUpdate")
+    public R volunteerTypeUpdate(@RequestBody VolunteerTypeVO volunteerTypeVO);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/VolunteerType/volunteerTypeDelete")
+    public R volunteerTypeDelete(@RequestParam("id") String id);
+
+    /*****************************************************************************************************************
+     *
+     *
+     *                                      志愿者参加活动
+     *
+     *
+     ****************************************************************************************************************/
+    /**
+     * 志愿者单个详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/VolunteerActivitiesPeople/vapGetById")
+    public R vapGetById(@RequestParam("id") String id);
+
+    /**
+     * 参与人员列表
+     * @param activityId
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/VolunteerActivitiesPeople/vapGetList")
+    public R  vapGetList(@RequestParam("activityId") String activityId,
+                         @RequestParam("communityId") String communityId);
+
+    /**
+     * 添加参与人员
+     * @param volunteerActivitiesPeopleVO
+     * @return
+     */
+    @PostMapping("/VolunteerActivitiesPeople/vapInsert")
+    public R  vapInsert(@RequestBody VolunteerActivitiesPeopleVO volunteerActivitiesPeopleVO);
+
+    /**
+     * 修改参与人员
+     * @param volunteerActivitiesPeopleVO
+     * @return
+     */
+    @PostMapping("/VolunteerActivitiesPeople/vapUpdate")
+    public R  vapUpdate(@RequestBody VolunteerActivitiesPeopleVO volunteerActivitiesPeopleVO);
+
+    /**
+     * 删除参与人员
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/VolunteerActivitiesPeople/vapDelete")
+    public R vapDelete(@RequestParam("id") String id);
+
+
+    /**
+     * 志愿者活动  奖励发放
+     * @param grantIntegral
+     * @return
+     */
+    @PostMapping("/VolunteerActivitiesPeople/grantIntegral")
+    public R grantIntegral(@RequestBody GrantIntegral grantIntegral);
+
+    /**************************************************************************************************************
+     *
+     *
+     *                      积分明细记录
+     *
+     *****************************************************************************************************************/
+    /**
+     * 获取单个详情
+     *
+     * @param id
+     * @return
+     */
+    @GetMapping("/VolunteerIntegralRecord/getId")
+    public R VolunteerIntegralRecordGetId(@RequestParam("id") String id);
+
+    /**
+     * 分页查询
+     *
+     * @param
+     * @return
+     */
+    @GetMapping("/VolunteerIntegralRecord/getList")
+    public R VolunteerIntegralRecordGetList(@RequestParam("pageNum") int pageNum,
+                                            @RequestParam("pageSize")  int pageSize,
+                                            @RequestParam("userId") String userId);
+
+    /**
+     * 新增
+     *
+     * @param
+     * @return
+     */
+    @PostMapping("/VolunteerIntegralRecord/insertVolunteer")
+    public R VolunteerIntegralRecordInsertVolunteer(@RequestBody() VolunteerIntegralRecordVO volunteerIntegralRecordVO);
+
+    /**
+     * 便捷
+     * @param
+     * @return
+     */
+    @PostMapping("/VolunteerIntegralRecord/updateId")
+    public R VolunteerIntegralRecordUpdateId(@RequestBody() VolunteerIntegralRecordVO volunteerIntegralRecordVO);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/VolunteerIntegralRecord/deleteId")
+    public R VolunteerIntegralRecordDeleteId(@RequestParam("id") String id);
+
+    /*************************************************************************************************************
+     *
+     *
+     *                            路北社区积分商城
+     *
+     *
+     ****************************************************************************************************************/
+
+    /**
+     * 获取单个详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/VolunteerIntegralMerchant/queryById")
+    public R VolunteerIntegralMerchantQueryById(@RequestParam("id") String id);
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/VolunteerIntegralMerchant/queryList")
+    public R VolunteerIntegralMerchantQueryList(@RequestParam("pageNum") int pageNum,
+                       @RequestParam("pageSize")  int pageSize,
+                       @RequestParam(value = "name", required = false) String name,
+                       @RequestParam(value = "state", required = false) String state,
+                        @RequestParam(value = "goodType", required = false) String goodType,
+                        @RequestParam(value = "merchantId", required = false) String merchantId);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/VolunteerIntegralMerchant/insertVolunteer")
+    public R VolunteerIntegralMerchantInsertVolunteer(@RequestBody VolunteerIntegralMerchantVO vimVO);
+
+    @PostMapping("/VolunteerIntegralMerchant/updateById")
+    public R  VolunteerIntegralMerchantUpdateById(@RequestBody VolunteerIntegralMerchantVO vimVO);
+
+
+    @PostMapping("/VolunteerIntegralMerchant/unmount")
+    public R  VolunteerIntegralMerchantUnmount(@RequestBody VolunteerIntegralMerchantVO vimVO);
+
+    @DeleteMapping("/VolunteerIntegralMerchant/deleteById")
+    public R  VolunteerIntegralMerchantDeleteById(@RequestParam("id") String id);
+
+
+    /***********************************************************************************************************
+     *
+     *
+     *                   订单兑换
+     *
+     *
+     ***********************************************************************************************************/
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/VolunteerIntegralMerchant/order/getList")
+    public R getList(@RequestParam("pageNum") int pageNum,
+                     @RequestParam("pageSize")  int pageSize,
+                     @RequestParam(value = "goodsId", required = false) String goodsId,
+                     @RequestParam(value = "orderNumber", required = false) String orderNumber,
+                     @RequestParam(value = "goodsName", required = false) String goodsName,
+                     @RequestParam(value = "condition", required = false) String condition,
+                     @RequestParam(value = "userName", required = false) String userName,
+                     @RequestParam(value = "communityId", required = false) String communityId,
+                     @RequestParam(value = "userId", required = false) String userId,
+                     @RequestParam(value = "orderType", required = false) String orderType,
+                     @RequestParam(value = "merchantId", required = false) String merchantId);
+
+    /**
+     * 查询详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/VolunteerIntegralMerchant/order/getData")
+    public R getData(@RequestParam("id") String id);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/VolunteerIntegralMerchant/order/insertData")
+    public R insertData(@RequestBody VolunteerCreditsExchangeVO item);
+
+    /**
+     * 新增用户购买商家商品记录
+     * @param
+     * @return
+     */
+    @PostMapping("/VolunteerIntegralMerchant/order/insertMerchantData")
+    public R insertMerchantData(@RequestBody VolunteerCreditsExchangeVO item);
+
+    /**
+     * 更新
+     * @param item
+     * @return
+     */
+    @PostMapping("/VolunteerIntegralMerchant/order/update")
+    public R update(@RequestBody VolunteerCreditsExchangeVO item);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/VolunteerIntegralMerchant/order/delete")
+    public R delete(@RequestParam("id") String id);
+
+    /**
+     * 核销
+     * @param id
+     * @return
+     */
+    @GetMapping("/VolunteerIntegralMerchant/order/conditionData")
+    public R conditionData(@RequestParam("id") String id);
+
+    /*****************************************************************************************************************
+     *
+     *
+     *                        路北社区商家管理
+     *
+     *
+     *****************************************************************************************************************/
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/VolunteerMerchant/getList")
+    public R volunteerMerchantGetList(@RequestParam("pageNum") int pageNum,
+                                      @RequestParam("pageSize") int pageSize,
+                                      @RequestParam(value = "merchantState", required = false) String merchantState,
+                                      @RequestParam(value = "merchantType", required = false) String merchantType,
+                                      @RequestParam(value = "name", required = false) String name,
+                                      @RequestParam(value = "communityId", required = false) String communityId);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/VolunteerMerchant/insert")
+    public R insertVolunteerMerchant(@RequestBody VolunteerMerchantVO vtvo);
+
+
+    @PostMapping("/VolunteerMerchant/update")
+    public R updateVolunteerMerchant(@RequestBody VolunteerMerchantVO vtvo);
+
+
+    @DeleteMapping("/VolunteerMerchant/delete")
+    public R deleteVolunteerMerchant(@RequestParam("id") String id);
+
+    @GetMapping("/VolunteerMerchant/getUser")
+    public R volunteerMerchantGetUser(@RequestParam("communityId") String communityId,
+                                      @RequestParam(value = "userName", required = false) String userName,
+                                      @RequestParam(value = "userPhone", required = false)String userPhone);
+
+
+    @GetMapping("/VolunteerMerchant/getById")
+    public R volunteerMerchantGetById(@RequestParam("id") String id);
+
+    /**
+     * 是否是商家
+     * @param userId
+     * @return
+     */
+    @GetMapping("/VolunteerMerchant/isMerchant")
+    public R isMerchant(@RequestParam("userId") String userId);
+
+
+    /**
+     * 社区取消订单
+     * @param id
+     * @return
+     */
+    @GetMapping("/VolunteerIntegralMerchant/order/communityCancellation")
+    public R communityCancellation(@RequestParam("id") String id);
+
+
+
+
+
+    /****************************************************************************************************************
+     *
+     *                      商家评论
+     *
+     ***************************************************************************************************************/
+
+    /**
+     * 商家评论分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/VolunteerMerchant/evaluate/getList")
+    public R volunteerMerchantGetList(@RequestParam("pageNum") int pageNum,
+                                     @RequestParam("pageSize") int pageSize,
+                                     @RequestParam("communityId") String communityId,
+                                     @RequestParam("merchantId") String merchantId);
+
+    /**
+     * 商家评论获取详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/VolunteerMerchant/evaluate/getData")
+    public R volunteerMerchantGetData(@RequestParam("id") String id);
+
+    /**
+     * 商家评论新增评价
+     * @return
+     */
+    @PostMapping("/VolunteerMerchant/evaluate/insert")
+    public R volunteerMerchantInsert(@RequestBody VolunteerMerchantEvaluateVO item);
+
+    /**
+     * 商家评论更新评价
+     * @return
+     */
+    @PostMapping("/VolunteerMerchant/evaluate/update")
+    public R volunteerMerchantUpdate(@RequestBody VolunteerMerchantEvaluateVO item);
+
+
+    /**
+     * 商家评论删除评价
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/VolunteerMerchant/evaluate/delete")
+    public R volunteerMerchantDelete(@RequestParam("id") String id);
+
+
+
+    /***************************************************************************************************************
+     *
+     *                               路北社区商家提现
+     *
+     ****************************************************************************************************************/
+
+    /**
+     * 商家提现列表啊
+     * @param disposeType
+     * @return
+     */
+    @GetMapping("/VolunteerMerchant/withdraw/getList")
+    public R WithdrawGetList(@RequestParam("pageNum") int pageNum,
+                             @RequestParam("pageSize") int pageSize,
+                             @RequestParam(value = "disposeType", required = false) String disposeType,
+                             @RequestParam(value = "merchantName", required = false) String merchantName,
+                             @RequestParam(value = "merchantId", required = false) String  merchantId,
+                             @RequestParam(value = "communityId", required = false) String communityId);
+
+    /**
+     * 新增商家提现
+     * @param item
+     * @return
+     */
+    @PostMapping("/VolunteerMerchant/withdraw/insert")
+    public R WithdrawInsert(@RequestBody VolunteerMerchantWithdrawVO item);
+
+    /**
+     * 编辑商家提现
+     * @param item
+     * @return
+     */
+    @PostMapping("/VolunteerMerchant/withdraw/update")
+    public R WithdrawUpdate(@RequestBody VolunteerMerchantWithdrawVO item);
+
+    /**
+     * 删除商家提现
+     * @param id
+     * @return
+     */
+    @GetMapping("/VolunteerMerchant/withdraw/delete")
+    public R WithdrawDelete(@RequestParam("id") String id);
+
+    /**
+     * 处理商家提现
+     * @param id
+     * @return
+     */
+    @GetMapping("/VolunteerMerchant/withdraw/dispose")
+    public R WithdrawDispose(@RequestParam("id") String id);
+
+
+
+
+    /***************************************************************************************************************
+     *
+     *                               路北社区系统配置   商家折扣      兑换地点信息
+     *
+     ****************************************************************************************************************/
+
+    /**
+     * 详情
+     * @param
+     * @return
+     */
+    @GetMapping("/VolunteerMerchant/Community/Config/getData")
+    public R ConfiggetData(@RequestParam("communityId") String communityId);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/VolunteerMerchant/Community/Config/insertvo")
+    public R Configinsertvo(@RequestBody VolunteerCommunityConfigVO item);
+
+
+
+    /*******************************************************************************************************************
+     *
+     *
+     *                         社区折扣
+     *
+     *
+     ******************************************************************************************************************/
+
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/VolunteerMerchant/community/discount/getList")
+    public R CommunityDiscountgetList(@RequestParam("communityId") String communityId);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/VolunteerMerchant/community/discount/insert")
+    public R CommunityDiscountinsert(@RequestBody VolunteerCommunityDiscountVO item);
+
+
+    @PostMapping("/VolunteerMerchant/community/discount/update")
+    public R CommunityDiscountupdate(@RequestBody VolunteerCommunityDiscountVO item);
+
+
+    @DeleteMapping("/VolunteerMerchant/community/discount/delete")
+    public R CommunityDiscountdelete(@RequestParam("id") String id);
+
+
+
+
+    /**
+     * 报名/取消报名社区活动
+     * 金汇社区专用
+     * @param signactivityVO
+     *            报名参数
+     * @return 报名 取消报名 结果
+     */
+    @PostMapping("/jinhui/jinhuiSignActivity")
+    public R jinhuiSignActivity(@RequestBody SignactivityVO signactivityVO);
+
+
+
+    /**
+     * 用户签到
+     * 金汇社区专用
+     * @param comActActRegistVO 签到参数
+     * @return 签到结果
+     */
+    @PostMapping("/jinhui/jinhuiActivitySignIn")
+    public R jinhuiActivitySignIn(@RequestBody ComActActRegistVO comActActRegistVO);
+
+
+
+
+    @GetMapping("/integral/user/getIntegralUserRank")
+    public R  getIntegralUserRank(@RequestParam("communityId") Long communityId,
+                                  @RequestParam("userId") Long userId);
+
+
+    @GetMapping("/largeScreen/panzhihuaMap")
+    public R panzhihuaMap(@RequestParam("areaCode")String areaCode);
+
+    @GetMapping("/largeScreen/oneTagThreeReal")
+    public R oneTagThreeReal(@RequestParam("streetId") Long streetId);
+
+    @PostMapping("/largeScreen/searchStreet")
+    public R searchStreet(@RequestBody BuildingDto buildingDto);
+
+    @PostMapping("/largeScreen/huachengDyn")
+    public R huachengDyn(@RequestBody ComActDynVO comActDynVO);
+
+    @GetMapping("/largeScreen/getScreenStatics")
+    public R getScreenStatics();
+
+    @GetMapping("/largeScreen/populationStatics")
+    public R populationStatics(@RequestParam("streetId") Long streetId);
+
+    @GetMapping("/largeScreen/probably")
+    public R probably(@RequestParam("year") Integer year,@RequestParam("belongTo") String belongTo);
+    /**
+     * 查询 一标三实 数据
+     */
+    @GetMapping("/largeScreen/sumAreaStreet")
+     R<SumAreaStreetResp> sumAreaStreet();
+
+
+    /**
+     *  下拉 明细
+     */
+    @GetMapping(("/largeScreen/areaStreetDetail"))
+     R<AreaStreetDetail> areaStreetDetail(@RequestParam("code") String code,
+                                          @RequestParam("type") String type);
+
+    @GetMapping("/largeScreen/qryReport")
+    R<List<QryReportResp>> qryReport(@RequestParam(value = "yearTime",required = false) String yearTime);
+
+
+    /*****************************************************************************************************************
+     *
+     *                                         社区宣传
+     *
+     ******************************************************************************************************************/
+    @GetMapping("/sys/conf/getCommunityPublicityData")
+    public R getCommunityPublicityData(@RequestParam("communityId") String communityId);
+
+    @PostMapping("/sys/conf/addCommunityPublicityDate")
+    public R addCommunityPublicityDate(@RequestBody CommunityPublicityVO item);
+
+    @PostMapping("/sys/conf/editCommunityPublicityDate")
+    public R editCommunityPublicityDate(@RequestBody CommunityPublicityVO item);
+
+    @DeleteMapping("/sys/conf/deleteCommunityPublicityData")
+    public R deleteCommunityPublicityData(@RequestParam("communityId") String communityId);
+
+
+
+    /**
+     * 社区活动自动定时更新用户未签退时间
+     * @return
+     */
+    @GetMapping("/comActAcidRecord/comActActRegistUpdateEndTime")
+    public R comActActRegistUpdateEndTime();
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityUnionService.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityUnionService.java
new file mode 100644
index 0000000..33fd506
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityUnionService.java
@@ -0,0 +1,297 @@
+package com.panzhihua.common.service.community;
+
+import com.panzhihua.common.model.dtos.equipment.*;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.ResultData;
+import com.panzhihua.common.model.vos.union.StructuredVO;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 川工之家
+ */
+@FeignClient(name = "equipment")
+public interface CommunityUnionService
+{
+
+    /**
+     * 新闻基本面,技术面相关接口
+     * @param structureds
+     * @return
+     */
+    @PostMapping("/roomck-web/roomck/ivsCommomEventController")
+    public ResultData ivsCommomEventController(@RequestBody List<StructuredVO> structureds);
+
+
+    /**
+     * 新增户外劳工站巡查
+     *
+     * @param unionInspectionDto
+     * @return 新增结果
+     */
+    @PostMapping("/unionInspection/add")
+    public R add(@RequestBody UnionInspectionDto unionInspectionDto);
+
+
+    /**
+     * 分页户外劳工站巡查
+     *
+     * @param unionInspectionDto
+     * @return 动态结果
+     */
+    @PostMapping("/unionInspection/query")
+    public R query(@RequestBody UnionInspectionDto unionInspectionDto);
+
+
+    /**
+     * 分页总工会-户外劳工站-动态
+     *
+     * @param unionOutdoorLaborDynamicDto
+     * @return 动态结果
+     */
+    @PostMapping("/unionOutdoorLaborDynamic/page")
+    R unionOutdoorLaborDynamicQuery(@RequestBody UnionOutdoorLaborDynamicDto unionOutdoorLaborDynamicDto);
+
+    /**
+     * 查询总工会-户外劳工站-动态
+     *
+     * @param id
+     *            动态 id
+     * @return 查找结果
+     */
+    @GetMapping("/unionOutdoorLaborDynamic/{id}")
+    R unionOutdoorLaborDynamicDetail(@PathVariable("id") Long id) ;
+
+
+
+    /**
+     * 分页总工会户外劳工站
+     *
+     * @param unionOutdoorSiteDto
+     * @return 动态结果
+     */
+    @PostMapping("/unionOutdoorSite/page")
+    R unionOutdoorSitequery(@RequestBody UnionOutdoorSiteDto unionOutdoorSiteDto);
+
+    /**
+     * 查询总工会户外劳工站
+     *
+     * @param id
+     *            户外劳工站 id
+     * @return 查找结果
+     */
+    @GetMapping("/unionOutdoorSite/{id}")
+    R unionOutdoorSiteDetail(@PathVariable("id") Long id);
+
+
+
+
+
+    /**
+     * 户外劳工站上报表
+     *
+     * @param unionReportDto
+     * @return 新增结果
+     */
+    @PostMapping("/unionReport/add")
+    public R unionReportAdd(@RequestBody UnionReportDto unionReportDto);
+
+    /**
+     * 分页户外劳工站上报表
+     *
+     * @param unionReportDto
+     * @return 动态结果
+     */
+    @PostMapping("/unionReport/query")
+    public R unionReportQuery(@RequestBody UnionReportDto unionReportDto);
+
+
+
+
+
+    /**
+     * 总工会户外劳登录
+     *
+     * @param loginUserInfoVO
+     * @return 总工会户外劳共用户
+     */
+    @PostMapping("/unionUser/login")
+    public R unionUserLogin(@RequestBody LoginUserInfoVO loginUserInfoVO);
+
+
+
+    /**
+     * 登录(H5)
+     *
+     * @param phone
+     * @return 总工会户外劳共用户
+     */
+    @GetMapping("/unionUser/loginH5")
+    R unionUserLoginH5(@RequestParam(value = "phone") String phone);
+
+    /**
+     * 总工会户外劳工站用户认证
+     *
+     * @param unionUserDto
+     * @return 总工会户外劳共用户
+     */
+    @PostMapping("/unionUser/authentication")
+    R unionUserAuthentication(@RequestBody UnionUserDto unionUserDto);
+
+    /**
+     * 用户开门
+     * @param qRCode 二维码字符串
+     * @return 总工会户外劳共用户
+     */
+    @GetMapping("/unionUser/openDoor")
+    R openDoor(@RequestParam(value = "qRCode")  String qRCode);
+
+
+    /**
+     * 查询城市下属所有地区列表
+     *
+     * @param cityAdcode
+     *            城市地址编码
+     * @return 地区列表
+     */
+    @PostMapping("listareadistrict")
+    R listAreaDistrict(@RequestParam("cityAdcode") Long cityAdcode);
+
+
+    /******************************************************************************************************************
+     *
+     *        积分明细记录
+     *
+     ****************************************************************************************************************/
+
+    @GetMapping("/UnionIntegralRecord/getList")
+    public R unionIntegralRecordGetList(@RequestParam("pageNum") int pageNum,
+                     @RequestParam("pageSize") int pageSize,
+                     @RequestParam(value = "communityId",required = false) String communityId,
+                     @RequestParam(value = "integralType",required = false) String integralType,
+                     @RequestParam(value = "nameOrNum",required = false) String nameOrNum);
+
+    @GetMapping("/UnionIntegralRecord/getData")
+    public R unionIntegralRecordGetData(@RequestParam("id") String id);
+
+    @PostMapping("/UnionIntegralRecord/insert")
+    public R unionIntegralRecordInsert(@RequestBody UnionIntegralRecordDto item);
+
+    @PostMapping("/UnionIntegralRecord/update")
+    public R unionIntegralRecordUpdate(@RequestBody UnionIntegralRecordDto item);
+
+    /**
+     * 删除接口
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/UnionIntegralRecord/delete")
+    public R unionIntegralRecordDelete(@RequestParam("id") String id);
+
+
+    /***************************************************************************************************************
+     *
+     *
+     *    积分总表
+     *
+     * *************************************************************************************************************/
+
+    @GetMapping("/UnionIntegralSummarize/getList")
+    public R unionIntegralSummarizeGetList(@RequestParam("pageNum") int pageNum,
+                                           @RequestParam("pageSize") int pageSize,
+                                           @RequestParam(value = "communityId",required = false) String communityId);
+
+
+    @GetMapping("/UnionIntegralSummarize/getData")
+    public R unionIntegralSummarizeGetData(@RequestParam("id") String id);
+
+
+    @GetMapping("/UnionIntegralSummarize/getUserData")
+    public R unionIntegralSummarizeGetUserData();
+
+    @PostMapping("/UnionIntegralSummarize/insert")
+    public R unionIntegralSummarizeInsert(@RequestBody UnionIntegralSummarizeDto item);
+
+    @PostMapping("/UnionIntegralSummarize/update")
+    public R unionIntegralSummarizeUpdate(@RequestBody UnionIntegralSummarizeDto item);
+
+    /**
+     * 删除接口
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/UnionIntegralSummarize/delete")
+    public R unionIntegralSummarizeDelete(@RequestParam("id") String id);
+
+
+    /*******************************************************************************************************************
+     *
+     *
+     *                        兑换记录
+     *
+     *
+     ******************************************************************************************************************/
+
+
+    @GetMapping("/UnionExchangeRecord/getList")
+    public R unionExchangeRecordGetList(@RequestParam("pageNum") int pageNum,
+                                        @RequestParam("pageSize") int pageSize,
+                                        @RequestParam(value = "communityId",required = false) String communityId,
+                                        @RequestParam(value = "orderType",required = false) String orderType);
+
+
+    @GetMapping("/UnionExchangeRecord/getData")
+    public R unionExchangeRecordGetData(@RequestParam("id") String id);
+
+    @PostMapping("/UnionExchangeRecord/insert")
+    public R unionExchangeRecordInsert(@RequestBody UnionExchangeRecordDto item);
+
+    @PostMapping("/UnionExchangeRecord/update")
+    public R unionExchangeRecordUpdate(@RequestBody UnionExchangeRecordDto item);
+
+    /**
+     * 删除接口
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/UnionExchangeRecord/delete")
+    public R unionExchangeRecordDelete(@RequestParam("id") String id);
+
+    /**********************************************************************************************************
+     *
+     *
+     *                      收货地址
+     *
+     *
+     ************************************************************************************************************/
+
+    @GetMapping("/UnionShippingAddress/getList")
+    public R unionShippingAddressGetList(@RequestParam("pageNum") int pageNum,
+                                         @RequestParam("pageSize") int pageSize,
+                                         @RequestParam(value = "communityId",required = false) String communityId);
+
+
+    @GetMapping("/UnionShippingAddress/getData")
+    public R unionShippingAddressGetData(@RequestParam("id") String id);
+
+
+    @GetMapping("/UnionShippingAddress/getDefaultData")
+    public R unionShippingAddressGetDefaultData();
+
+    @PostMapping("/UnionShippingAddress/insert")
+    public R unionShippingAddressInsert(@RequestBody UnionShippingAddressDto item);
+
+    @PostMapping("/UnionShippingAddress/update")
+    public R unionShippingAddressUpdate(@RequestBody UnionShippingAddressDto item);
+
+    /**
+     * 删除接口
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/UnionShippingAddress/delete")
+    public R unionShippingAddressDelete(@RequestParam("id") String id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityWestService.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityWestService.java
new file mode 100644
index 0000000..7bb5a12
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/community/CommunityWestService.java
@@ -0,0 +1,9858 @@
+package com.panzhihua.common.service.community;
+
+import java.util.List;
+
+import com.panzhihua.common.model.dtos.community.dpc.AddDpcDTO;
+import com.panzhihua.common.model.dtos.community.dpc.EditDpcDTO;
+import com.panzhihua.common.model.dtos.community.dpc.PageDpcDTO;
+import com.panzhihua.common.model.dtos.community.enterprise.*;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+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.RequestParam;
+
+import com.panzhihua.common.model.dtos.AppletesBackstageConfigDTO;
+import com.panzhihua.common.model.dtos.PageBaseDTO;
+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.civil.ComActSocialWorkerAddDTO;
+import com.panzhihua.common.model.dtos.civil.ComActSocialWorkerDeleteDTO;
+import com.panzhihua.common.model.dtos.civil.ComActSocialWorkerEditDTO;
+import com.panzhihua.common.model.dtos.civil.ComActSocialWorkerExcelVO;
+import com.panzhihua.common.model.dtos.civil.PageComActSocialWorkerDTO;
+import com.panzhihua.common.model.dtos.common.AddComMngVolunteerOrgTeamDto;
+import com.panzhihua.common.model.dtos.common.AddComMngVolunteerServiceTypeDto;
+import com.panzhihua.common.model.dtos.common.AddComMngVolunteerSkillDto;
+import com.panzhihua.common.model.dtos.common.EditComActEasyPhotoHandlerDto;
+import com.panzhihua.common.model.dtos.common.EditComMngVolunteerOrgTeamDto;
+import com.panzhihua.common.model.dtos.common.EditComMngVolunteerServiceTypeDto;
+import com.panzhihua.common.model.dtos.common.EditComMngVolunteerSkillDto;
+import com.panzhihua.common.model.dtos.common.PageComActEasyPhotoHandlerDto;
+import com.panzhihua.common.model.dtos.common.PageComMngVolunteerOrgTeamDto;
+import com.panzhihua.common.model.dtos.common.PageComMngVolunteerServiceTypeDto;
+import com.panzhihua.common.model.dtos.common.PageComMngVolunteerSkillDto;
+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.ComMngPopulationHouseInsertAdminDTO;
+import com.panzhihua.common.model.dtos.community.ComMngPopulationHouseUserVO;
+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.ComPropertyPublicityDTO;
+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.ComSwPatrolRecordAddDTO;
+import com.panzhihua.common.model.dtos.community.ComSwPatrolRecordEditDTO;
+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.ComSwSafetyWorkEditDTO;
+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.GetIdentityEidTokenDTO;
+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.PageComPropertyPublicityDTO;
+import com.panzhihua.common.model.dtos.community.PageComStreetDTO;
+import com.panzhihua.common.model.dtos.community.PageElderAuthRecordsDTO;
+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;
+import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenStatisticPartyActivityDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.PageBigScreenStatisticPartyOrg;
+import com.panzhihua.common.model.dtos.community.bigscreen.work.ScreenActActivityListDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.work.ScreenActActivityPeopleListDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.work.ScreenDiscussListDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.work.ScreenMicroListDTO;
+import com.panzhihua.common.model.dtos.community.building.admin.AddBuildingHouseDto;
+import com.panzhihua.common.model.dtos.community.building.admin.AddBuildingUnitDto;
+import com.panzhihua.common.model.dtos.community.building.admin.DeleteBuildingHousePopulationDto;
+import com.panzhihua.common.model.dtos.community.building.admin.EditBuildingHouseDto;
+import com.panzhihua.common.model.dtos.community.building.admin.EditBuildingUnitDto;
+import com.panzhihua.common.model.dtos.community.building.admin.PageBuildingListDto;
+import com.panzhihua.common.model.dtos.community.building.admin.PageBuildingUnitHouseListDto;
+import com.panzhihua.common.model.dtos.community.cluster.PageClusterMemberDto;
+import com.panzhihua.common.model.dtos.community.cluster.admin.AddClusterAdminDto;
+import com.panzhihua.common.model.dtos.community.cluster.admin.AddClusterMemberAdminDto;
+import com.panzhihua.common.model.dtos.community.cluster.admin.EditClusterAdminDto;
+import com.panzhihua.common.model.dtos.community.cluster.admin.EditClusterMemberAdminDto;
+import com.panzhihua.common.model.dtos.community.cluster.admin.PageClusterAdminDto;
+import com.panzhihua.common.model.dtos.community.cluster.admin.PageClusterMemberAdminDto;
+import com.panzhihua.common.model.dtos.community.convenient.ConvenientMerchantDTO;
+import com.panzhihua.common.model.dtos.community.convenient.ConvenientProductCategoryDTO;
+import com.panzhihua.common.model.dtos.community.convenient.ConvenientProductDTO;
+import com.panzhihua.common.model.dtos.community.convenient.ConvenientServiceCategoryDTO;
+import com.panzhihua.common.model.dtos.community.convenient.DeleteConvenientProductDTO;
+import com.panzhihua.common.model.dtos.community.convenient.DisableOrEnableConvenientMerchantDTO;
+import com.panzhihua.common.model.dtos.community.convenient.ExportMerchantDTO;
+import com.panzhihua.common.model.dtos.community.convenient.OnShelfOrOffShelfProductDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PageClassifyMerchantDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PageConvenientMerchantDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PageConvenientProductCategoryDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PageConvenientProductDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PageConvenientServiceCategoryDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PagePopularMerchantDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PageSearchDTO;
+import com.panzhihua.common.model.dtos.community.convenient.ResetPasswordConvenientMerchantDTO;
+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.easyPhoto.AddEasyPhotoActivityDTO;
+import com.panzhihua.common.model.dtos.community.easyPhoto.AddEasyPhotoClassifyDTO;
+import com.panzhihua.common.model.dtos.community.easyPhoto.EditEasyPhotoActivityDTO;
+import com.panzhihua.common.model.dtos.community.easyPhoto.ExportEasyPhotoDTO;
+import com.panzhihua.common.model.dtos.community.easyPhoto.PageEasyPhotoActivityDTO;
+import com.panzhihua.common.model.dtos.community.easyPhoto.PageEasyPhotoActivityUserDTO;
+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.community.fms.AddFmsClassroomAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.AddFmsServiceAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.AddTeamDTO;
+import com.panzhihua.common.model.dtos.community.fms.AddTeamMemberDTO;
+import com.panzhihua.common.model.dtos.community.fms.AddTeamTypeDTO;
+import com.panzhihua.common.model.dtos.community.fms.ApplyFmsServiceDTO;
+import com.panzhihua.common.model.dtos.community.fms.ApprovalFmsServiceAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.DeleteTeamMemberDTO;
+import com.panzhihua.common.model.dtos.community.fms.EditFmsClassroomAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.EditTeamDTO;
+import com.panzhihua.common.model.dtos.community.fms.EditTeamMemberDTO;
+import com.panzhihua.common.model.dtos.community.fms.EditTeamTypeDTO;
+import com.panzhihua.common.model.dtos.community.fms.EvaluationFmsServiceDTO;
+import com.panzhihua.common.model.dtos.community.fms.FeedbackFmsServiceDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageFmsClassroomAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageFmsEventAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageFmsServiceAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageFmsServiceAppletsDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageFmsTeamDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageTeamMemberDTO;
+import com.panzhihua.common.model.dtos.community.integral.ComActIntegralCommunityRankDTO;
+import com.panzhihua.common.model.dtos.community.integral.admin.AddComActIntegralUserDTO;
+import com.panzhihua.common.model.dtos.community.integral.admin.EditComActIntegralRuleDTO;
+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.microCommercialStreet.DeleteProductDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.DisableOrEnableMcsMerchantDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.LoginWithPhoneDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.McsEvaluateDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.McsGameDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.McsInfoDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.McsMerchantDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.McsProductDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageJoinGameListDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageMcsEvaluateDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageMcsGameDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageMcsInformationDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageMcsMerchantDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageMcsProductDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageVerifyRecordDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PutUserInfoDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.SetPopularForGameDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.SetShelfForGameDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.SetShelfForInfoDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.SetShelfForProductDTO;
+import com.panzhihua.common.model.dtos.community.questnaire.StatisticsSummaryDTO;
+import com.panzhihua.common.model.dtos.community.rentingHouses.NearbyDTO;
+import com.panzhihua.common.model.dtos.community.rentingHouses.PageRentingHouseRegisterDTO;
+import com.panzhihua.common.model.dtos.community.rentingHouses.PageRentingHousesConfigDTO;
+import com.panzhihua.common.model.dtos.community.rentingHouses.ReleaseOrCancelHouseDTO;
+import com.panzhihua.common.model.dtos.community.rentingHouses.RentingHouseRegisterDTO;
+import com.panzhihua.common.model.dtos.community.rentingHouses.RentingHousesConfigDTO;
+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.social.HatchAuditProcessDTO;
+import com.panzhihua.common.model.dtos.community.social.PageProjectDTO;
+import com.panzhihua.common.model.dtos.community.social.PageProjectSignListDTO;
+import com.panzhihua.common.model.dtos.community.social.PageSocialOrgHatchAuditDTO;
+import com.panzhihua.common.model.dtos.community.social.PageSocialOrgHatchDTO;
+import com.panzhihua.common.model.dtos.community.social.SocialOrgHatchAuditDTO;
+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;
+import com.panzhihua.common.model.dtos.community.wallet.PageComActWalletAdminDTO;
+import com.panzhihua.common.model.dtos.community.wallet.PageComActWalletTradeAdminDTO;
+import com.panzhihua.common.model.dtos.community.wallet.PageComActWalletTradeDTO;
+import com.panzhihua.common.model.dtos.community.warehouse.ComActWarehouseApplyDTO;
+import com.panzhihua.common.model.dtos.community.warehouse.ComActWarehouseDonatesDTO;
+import com.panzhihua.common.model.dtos.community.warehouse.ExportDonatesDTO;
+import com.panzhihua.common.model.dtos.community.warehouse.PageDonatesDTO;
+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.dtos.grid.AddComMngHousePopulationDTO;
+import com.panzhihua.common.model.dtos.grid.ComMngVillageListAppDTO;
+import com.panzhihua.common.model.dtos.grid.DelComMngHousePopulationDTO;
+import com.panzhihua.common.model.dtos.grid.PageComMngPopulationDTO;
+import com.panzhihua.common.model.dtos.grid.PageComMngVillageBuildHouseAppDTO;
+import com.panzhihua.common.model.dtos.grid.PagePopulationListDTO;
+import com.panzhihua.common.model.dtos.grid.admin.ComMngPopulationExportDTO;
+import com.panzhihua.common.model.dtos.grid.admin.ComMngPopulationListDTO;
+import com.panzhihua.common.model.dtos.grid.admin.ComMngPopulationRelationHouseDTO;
+import com.panzhihua.common.model.dtos.grid.admin.ComMngPopulationSubordinateDTO;
+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.AddNeighborCircleTopicAppDTO;
+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.DeleteNeighborCircleAppDTO;
+import com.panzhihua.common.model.dtos.neighbor.DetailNeighborAllCommentByAdminDTO;
+import com.panzhihua.common.model.dtos.neighbor.DetailNeighborCommentReplyByAdminDTO;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.dtos.shop.ComShopAddressDTO;
+import com.panzhihua.common.model.dtos.shop.ComShopCartDTO;
+import com.panzhihua.common.model.dtos.shop.ComShopEditNubCartDTO;
+import com.panzhihua.common.model.dtos.shop.ComShopFundsExportDTO;
+import com.panzhihua.common.model.dtos.shop.ComShopGoodsDTO;
+import com.panzhihua.common.model.dtos.shop.ComShopOrderCreateDTO;
+import com.panzhihua.common.model.dtos.shop.ComShopOrderDeliverDTO;
+import com.panzhihua.common.model.dtos.shop.ComShopOrderExportDTO;
+import com.panzhihua.common.model.dtos.shop.ComShopOrderPreviewDTO;
+import com.panzhihua.common.model.dtos.shop.ComShopOrderQueryDTO;
+import com.panzhihua.common.model.dtos.shop.ComShopOrderShipDTO;
+import com.panzhihua.common.model.dtos.shop.ComShopSysConfDTO;
+import com.panzhihua.common.model.dtos.shop.OrderPayDTO;
+import com.panzhihua.common.model.dtos.shop.PageComOrderListDTO;
+import com.panzhihua.common.model.dtos.shop.PageComShopAddressDTO;
+import com.panzhihua.common.model.dtos.shop.PageComShopFundsSearchDTO;
+import com.panzhihua.common.model.dtos.shop.PageComShopGoodsDTO;
+import com.panzhihua.common.model.dtos.shop.PageComShopOrderSearchDTO;
+import com.panzhihua.common.model.dtos.shop.PageComShopStoreDTO;
+import com.panzhihua.common.model.dtos.shop.PageComShopSysConfDTO;
+import com.panzhihua.common.model.dtos.shop.WxPayNotifyOrderDTO;
+import com.panzhihua.common.model.dtos.user.PageInputUserDTO;
+import com.panzhihua.common.model.dtos.vaccines.VaccinesByAdminDTO;
+import com.panzhihua.common.model.dtos.vaccines.VaccinesEnrollByAdminDTO;
+import com.panzhihua.common.model.dtos.vaccines.VaccinesEnrollByAppDTO;
+import com.panzhihua.common.model.dtos.vaccines.VaccinesEnrollUserByAppDTO;
+import com.panzhihua.common.model.dtos.vaccines.VaccinesInoculationByAdminDTO;
+import com.panzhihua.common.model.vos.BcDictionaryItemVO;
+import com.panzhihua.common.model.vos.BcDictionaryVO;
+import com.panzhihua.common.model.vos.ComActSocialMemberVO;
+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.civil.ComActSocialWorkerVO;
+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.ComActActivityTypeVO;
+import com.panzhihua.common.model.vos.community.ComActActivityVO;
+import com.panzhihua.common.model.vos.community.ComActAnnouncementVO;
+import com.panzhihua.common.model.vos.community.ComActColumnVO;
+import com.panzhihua.common.model.vos.community.ComActCommiteeVO;
+import com.panzhihua.common.model.vos.community.ComActDynVO;
+import com.panzhihua.common.model.vos.community.ComActEasyPhotoVO;
+import com.panzhihua.common.model.vos.community.ComActFourMemberVO;
+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.ComActSocialOrgVO;
+import com.panzhihua.common.model.vos.community.ComActVO;
+import com.panzhihua.common.model.vos.community.ComActWorkGuideClassifyVO;
+import com.panzhihua.common.model.vos.community.ComActWorkGuideVO;
+import com.panzhihua.common.model.vos.community.ComCvtServeExcelVO;
+import com.panzhihua.common.model.vos.community.ComElderAuthRecordImportExcelVO;
+import com.panzhihua.common.model.vos.community.ComElderAuthRecordVO;
+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.ComMngPopulationElderExcelVO;
+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.ComMngPopulationPensionExcelVO;
+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.ComPensionAuthRecordImportExcelVO;
+import com.panzhihua.common.model.vos.community.ComPensionAuthRecordVO;
+import com.panzhihua.common.model.vos.community.ComPropertyVO;
+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.QRActivityCodeVO;
+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;
+import com.panzhihua.common.model.vos.community.bigscreen.PartyBuildingMemberVO;
+import com.panzhihua.common.model.vos.community.cluster.admin.ComClusterMemberExcelVO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
+import com.panzhihua.common.model.vos.community.fms.ComFmsServiceImportExcelVO;
+import com.panzhihua.common.model.vos.community.fms.ComFmsTeamMemberImportExcelVO;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsConfigVO;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsOrderVO;
+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.raffle.ComActRaffleRecordVO;
+import com.panzhihua.common.model.vos.community.raffle.ComActRaffleVO;
+import com.panzhihua.common.model.vos.community.rentHouse.RentingHourseOrderVO;
+import com.panzhihua.common.model.vos.community.rentHouse.RentingHoursePreOrderVO;
+import com.panzhihua.common.model.vos.community.rentHouse.WxPayNotifyOrderVO;
+import com.panzhihua.common.model.vos.community.rentHouse.WxPayOrderVO;
+import com.panzhihua.common.model.vos.community.reserve.ComActReserveDetailAdminVO;
+import com.panzhihua.common.model.vos.community.social.ComActSocialProjectMemberVO;
+import com.panzhihua.common.model.vos.community.social.ComActSocialProjectPublicityVO;
+import com.panzhihua.common.model.vos.community.social.ComActSocialProjectScheduleVO;
+import com.panzhihua.common.model.vos.community.social.ComActSocialWorkerServiceVO;
+import com.panzhihua.common.model.vos.community.social.SocialProjectVO;
+import com.panzhihua.common.model.vos.community.volunteer.ComMngVolunteerExcelVO;
+import com.panzhihua.common.model.vos.community.warehouse.ComActWarehouseApplyVO;
+import com.panzhihua.common.model.vos.community.warehouse.ComActWarehouseBaseVO;
+import com.panzhihua.common.model.vos.community.warehouse.QRCodeVO;
+import com.panzhihua.common.model.vos.community.warehouse.WarehouseDonatesExcelVO;
+import com.panzhihua.common.model.vos.neighbor.AddNeighborCircleAdminVO;
+import com.panzhihua.common.model.vos.neighbor.ChangeCommentReplyStatusByAdminVO;
+import com.panzhihua.common.model.vos.neighbor.ChangeCommentStatusByAdminVO;
+import com.panzhihua.common.model.vos.neighbor.EditNeighborCircleAdminVO;
+import com.panzhihua.common.model.vos.shop.AddShopGoodsVO;
+import com.panzhihua.common.model.vos.shop.ShopOperLogVO;
+import com.panzhihua.common.model.vos.shop.ShopStoreVO;
+import com.panzhihua.common.model.vos.user.UserElectronicFileVO;
+import com.panzhihua.common.model.vos.user.UserPhoneVO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 社区
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 15:59
+ **/
+@FeignClient(name = "huacheng-community", contextId = "community1")
+public interface CommunityWestService {
+    /**
+     * 新增社区活动
+     *
+     * @param comActActivityVO
+     *            新增信息
+     * @return 新增结果
+     */
+    @PostMapping("/addactivity")
+    R addActivity(@RequestBody ComActActivityVO comActActivityVO);
+
+    /**
+     * 编辑社区活动
+     *
+     * @param comActActivityVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("/putactivity")
+    R putActivity(@RequestBody ComActActivityVO comActActivityVO);
+
+    /**
+     * 删除社区活动
+     *
+     * @param comActActivityVO
+     *            活动主键
+     * @return 删除结果
+     */
+    @PostMapping("deleteactivity")
+    R deleteActivity(@RequestBody ComActActivityVO comActActivityVO);
+
+    /**
+     * 分页查询社区活动
+     *
+     * @param comActActivityVO
+     *            查询参数
+     * @return 分页集合
+     */
+    @PostMapping("pageactivity")
+    R pageActivity(@RequestBody ComActActivityVO comActActivityVO);
+
+    /**
+     * 发布活动
+     *
+     * @param comActActivityVO
+     *            主键id 发布时间
+     * @return 发布结果
+     */
+    @PostMapping("releaseactivity")
+    R releaseActivity(@RequestBody ComActActivityVO comActActivityVO);
+
+    /**
+     * 取消活动
+     *
+     * @param comActActivityVO
+     *            取消原因
+     * @return 取消结果
+     */
+    @PostMapping("cancelactivity")
+    R cancelActivity(@RequestBody ComActActivityVO comActActivityVO);
+
+    /**
+     * 活动详情
+     *
+     * @param id
+     *            活动id
+     * @param userId
+     *            当前登录者id
+     * @return 详情
+     */
+    @PostMapping("detailactivity")
+    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);
+
+    /**
+     * 分页活动报名名单
+     *
+     * @param activitySignVO
+     *            查询参数
+     * @return 报名人员集合
+     */
+    @PostMapping("listactivitysign")
+    R listActivitySign(@RequestBody ActivitySignVO activitySignVO);
+
+    /**
+     * description  getSignLists  查询活动报名名单
+     * @param    activitySignVO  查询参数
+     * @return    R   查询结果
+     * @author txb
+     * @date 2021/8/24 14:03
+     */
+    @PostMapping("/activity/sign/getList")
+    R getSignLists(@RequestBody ActivitySignVO activitySignVO);
+
+    /**
+     * description  listActivityRegists  分页查询活动评价
+     * @param    comActActEvaluateVO  活动评价vo
+     * @return    R   分页查询结果
+     * @author txb
+     * @date 2021/8/24 14:03
+     */
+    @PostMapping("/activity/evaluate/page")
+    R pageActivityEvaluates(@RequestBody ComActActEvaluateVO comActActEvaluateVO);
+
+    /**
+     * description  getEvaluateLists  查询活动评价
+     * @param    comActActEvaluateVO  查询参数
+     * @return    R   查询结果
+     * @author txb
+     * @date 2021/8/24 14:03
+     */
+    @PostMapping("/activity/evaluate/getList")
+    R getEvaluateLists(@RequestBody ComActActEvaluateVO comActActEvaluateVO);
+
+    /**
+     * description  pageActivityRegists  分页查询活动签到
+     * @param    comActActRegistVO  活动签到vo
+     * @return    R   分页查询结果
+     * @author txb
+     * @date 2021/8/24 14:03
+     */
+    @PostMapping("/activity/regist/page")
+    R pageActivityRegists(@RequestBody ComActActRegistVO comActActRegistVO);
+
+    /**
+     * description  getRegistLists  查询活动签到
+     * @param    comActActRegistVO  查询参数
+     * @return    R   查询结果
+     * @author txb
+     * @date 2021/8/25 9:33
+     */
+    @PostMapping("/activity/regist/getList")
+    R getRegistLists(@RequestBody ComActActRegistVO comActActRegistVO);
+
+    /**
+     * description  getRegistLists  查询活动未签到
+     * @param    comActActRegistVO  查询参数
+     * @return    R   查询结果
+     * @author txb
+     * @date 2021/8/25 9:33
+     */
+    @PostMapping("/activity/noRegist/getList")
+    R getNoRegistLists(@RequestBody ComActActRegistVO comActActRegistVO);
+
+    /**
+     * description  activityStagistics  活动数据统计
+     * @param activityId 活动id
+     * @return    R   统计结果
+     * @author txb
+     * @date 2021/8/25 13:33
+     */
+    @GetMapping("/activity/statistics")
+    R activityStatistics(@RequestParam("activityId") Long activityId);
+
+    /**
+     * 获取活动历史封面  getPictureList
+     * @param userId 用户id
+     * @return    R   统计结果
+     * @author txb
+     * @date 2021/8/27 13:33
+     */
+    @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);
+
+    /**
+     * 活动报名名单
+     *
+     * @param activitySignVO
+     *            查询参数
+     * @return 报名人员集合
+     */
+    @PostMapping("listactivitysigns")
+    R listActivitySigns(@RequestBody ActivitySignVO activitySignVO);
+
+    /**
+     * 新增社区动态
+     *
+     * @param comActDynVO
+     *            新增信息
+     * @return 新增结果
+     */
+    @PostMapping("adddynamic")
+    R addDynamic(@RequestBody ComActDynVO comActDynVO);
+
+    /**
+     * 编辑社区动态
+     *
+     * @param comActDynVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("putdynamic")
+    R putDynamic(@RequestBody ComActDynVO comActDynVO);
+
+    /**
+     * 删除社区动态
+     *
+     * @param comActDynVO
+     *            动态id
+     * @return 删除结果
+     */
+    @PostMapping("deletedynamic")
+    R deleteDynamic(@RequestBody ComActDynVO comActDynVO);
+
+    /**
+     * 分页查询社区动态
+     *
+     * @param comActDynVO
+     *            查询参数
+     * @return 动态集合
+     */
+    @PostMapping("pagedynamic")
+    R pageDynamic(@RequestBody ComActDynVO comActDynVO);
+
+    /**
+     * 管理后台分页查询社区动态
+     *
+     * @param comActDynVO
+     *            查询参数
+     * @return 动态集合
+     */
+    @PostMapping("pagedynamicByAdmin")
+    R pageDynamicByAdmin(@RequestBody ComActDynVO comActDynVO);
+
+    /**
+     * 社区动态详情
+     *
+     * @param id
+     *            动态id
+     * @return 详情
+     */
+    @PostMapping("detaildynamic")
+    R detailDynamic(@RequestParam("id") Long id);
+
+    /**
+     * 分页查询随手拍
+     *
+     * @param comActEasyPhotoVO
+     *            查询参数
+     * @return 心愿列表
+     */
+    @PostMapping("pageeasyphoto")
+    R pageEasyPhoto(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO);
+
+    /**
+     * 随手拍详情
+     *
+     * @param id
+     *            随手拍主键
+     * @param userId
+     *            登录用户id
+     * @return 详情内容
+     */
+    @PostMapping("detaileasyphoto")
+    R detailEasyPhoto(@RequestParam("id") Long id, @RequestParam("userId") Long userId);
+
+    /**
+     * 随手拍删除
+     *
+     * @param id
+     *            随手拍主键
+     * @param userId
+     *            登录用户id
+     * @return 详情内容
+     */
+    @PostMapping("deleteEasyPhoto")
+    R deleteEasyPhoto(@RequestParam("id") Long id, @RequestParam("userId") Long userId);
+
+    /**
+     * 分页查询微心愿
+     *
+     * @param comActMicroWishVO
+     *            查询参数
+     * @return 分页集合
+     */
+    @PostMapping("pagemicrowish")
+    R pageMicroWish(@RequestBody ComActMicroWishVO comActMicroWishVO);
+
+    /**
+     * 小程序分页查询微心愿
+     *
+     * @param comActMicroWishVO
+     *            查询参数
+     * @return 分页集合
+     */
+    @PostMapping("pagemicrowish/applets")
+    R pageMicroWishApplets(@RequestBody ComActMicroWishVO comActMicroWishVO);
+
+    /**
+     * 心愿详情
+     *
+     * @param id
+     *            查询主键
+     * @param userId
+     *            登录用户id
+     * @return 心愿内容
+     */
+    @PostMapping("detailmicrowish")
+    R detailMicroWish(@RequestParam("id") Long id, @RequestParam("userId") Long userId);
+
+    /**
+     * 审核、分配、反馈心愿
+     *
+     * @param comActMicroWishVO
+     *            具体操作
+     * @return 操作结果
+     */
+    @PostMapping("putlmicrowish")
+    R putlMicroWish(@RequestBody ComActMicroWishVO comActMicroWishVO);
+
+    /**
+     * 分页展示我的所有活动 时间倒序排列
+     *
+     * @param comActActivityVO
+     *            分页参数
+     * @return 分页集合
+     */
+    @PostMapping("pagemyactivity")
+    R pageMyActivity(@RequestBody ComActActivityVO comActActivityVO);
+
+    /**
+     * 报名/取消报名社区活动
+     *
+     * @param signactivityVO
+     *            报名参数
+     * @return 报名 取消报名 结果
+     */
+    @PostMapping("signactivity")
+    R signActivity(@RequestBody SignactivityVO signactivityVO);
+
+    /**
+     * 上传随手拍
+     *
+     * @param comActEasyPhotoVO
+     *            上传数据
+     * @return 上传结果
+     */
+    @PostMapping("addeasyphoto")
+    R addEasyPhoto(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO);
+
+    /**
+     * 查询随手拍是否有活动
+     *
+     * @return 活动详情
+     */
+    @PostMapping("getEasyPhotoActivity")
+    R getEasyPhotoActivity(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 发布微心愿
+     *
+     * @param comActMicroWishVO
+     *            发布内容
+     * @return 发布结果
+     */
+    @PostMapping("addmicrowish")
+    R addMicroWish(@RequestBody ComActMicroWishVO comActMicroWishVO);
+
+    /**
+     * 点赞/取消点赞随手拍
+     *
+     * @param comActEasyPhotoVO
+     *            操作参数
+     * @return 操作结果
+     */
+    @PostMapping("puteasyphoto")
+    R putEasyPhoto(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO);
+
+    /**
+     * 点赞/取消点赞微心愿
+     *
+     * @param comActMicroWishVO
+     *            操作参数
+     * @return 操作结果
+     */
+    @PostMapping("putmicrowish")
+    R putMicroWish(@RequestBody ComActMicroWishVO comActMicroWishVO);
+
+    /**
+     * 新增社区动态浏览记录
+     *
+     * @param id
+     *            动态主键
+     * @param userId
+     *            登录用户id
+     * @return 新增结果
+     */
+    @PostMapping("adddynamicuser")
+    R addDynamicUser(@RequestParam("id") Long id, @RequestParam("userId") Long userId);
+
+    /**
+     * 审核、反馈随手拍
+     *
+     * @param comActEasyPhotoVO
+     *            操作参数
+     * @return 操作结果
+     */
+    @PostMapping("puteasyphotostatus")
+    R putEasypHotoStatus(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO);
+
+    /**
+     * 城管随手拍统计
+     */
+    @PostMapping("/esayPhotoCount")
+    R esayphotoCount(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO);
+
+    /**
+     *
+     * 城管安排
+     */
+    @PostMapping("updatePageeasyphoto")
+    R updatePageeasyphoto(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO);
+
+    /**
+     *
+     * 随手拍城管导出
+     */
+    @PostMapping("exportEasyPhoto")
+    R exportEasyPhoto(@RequestBody ExportEasyPhotoDTO exportEasyPhotoDTO);
+
+    /**
+     * 新增社区
+     *
+     * @param comActVO
+     *            社区信息
+     * @return 新增结果
+     */
+    @PostMapping("addcommunity")
+    R addCommunity(@RequestBody ComActVO comActVO);
+
+    /**
+     * 编辑社区
+     *
+     * @param comActVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("putCommunity")
+    R putCommunity(@RequestBody ComActVO comActVO);
+
+    /**
+     * 房屋信息
+     *
+     * @param userId
+     *            用户id
+     * @return 房屋信息
+     */
+    @PostMapping("detailhouse")
+    R detailHouse(@RequestParam("userId") Long userId);
+
+    /**
+     * 新增小区
+     *
+     * @param comMngStructAreaVO
+     *            小区信息
+     * @return 新增结果
+     */
+    @PostMapping("addarea")
+    R addArea(@RequestBody ComMngStructAreaVO comMngStructAreaVO);
+
+    /**
+     * 分页查询小区
+     *
+     * @param comMngStructAreaVO
+     *            查询参数
+     * @return 分页结果
+     */
+    @PostMapping("pagearea")
+    R pageArea(@RequestBody ComMngStructAreaVO comMngStructAreaVO);
+
+    /**
+     * 编辑小区
+     *
+     * @param comMngStructAreaVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("putarea")
+    R putArea(@RequestBody ComMngStructAreaVO comMngStructAreaVO);
+
+    /**
+     * 删除小区
+     *
+     * @param comMngStructAreaVO
+     *            地址编码
+     * @return 删除结果
+     */
+    @PostMapping("deletearea")
+    R deleteArea(@RequestBody ComMngStructAreaVO comMngStructAreaVO);
+
+    /**
+     * 小区批量建房
+     *
+     * @param batchhouseVO
+     *            建房参数
+     * @return 建房结果
+     */
+    @PostMapping("batchhouse")
+    R batchHouse(@RequestBody BatchhouseVO batchhouseVO);
+
+    /**
+     * 展示下级建筑
+     *
+     * @param houseCode
+     *            房屋编号
+     * @return 下级建筑列表
+     */
+    @PostMapping("listsubordinatebuilding")
+    R listSubordinatebuilding(@RequestParam("houseCode") String houseCode);
+
+    /**
+     * 实有单位归属地
+     *
+     * @param comMngRealCompanyBelongsDTO
+     * @return
+     */
+    @PostMapping("/common/data/company/belongs")
+    R belongsComMngRealCompany(@RequestBody ComMngRealCompanyBelongsDTO comMngRealCompanyBelongsDTO);
+
+    /**
+     * 添加同级地址
+     *
+     * @param comMngStructHouseVO
+     *            同级参数
+     * @return 添加结果
+     */
+    @PostMapping("addhouse")
+    R addHouse(@RequestBody BatchhouseVO comMngStructHouseVO);
+
+    /**
+     * 编辑地址
+     *
+     * @param comMngStructHouseVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("addhouse")
+    R putHouse(@RequestBody ComMngStructHouseVO comMngStructHouseVO);
+
+    /**
+     * 删除地址
+     *
+     * @param comMngStructHouseVO
+     *            删除指定地址和所有下级
+     * @return 删除结果
+     */
+    @PostMapping("deletehouse")
+    R deleteHouse(@RequestBody ComMngStructHouseVO comMngStructHouseVO);
+
+    /**
+     * 新增其他建筑
+     *
+     * @param comMngStructOtherBuildVO
+     *            建筑参数
+     * @return 新增结果
+     */
+    @PostMapping("addotherbuild")
+    R addOtherbuild(@RequestBody ComMngStructOtherBuildVO comMngStructOtherBuildVO);
+
+    /**
+     * 查询所有建筑类型
+     *
+     * @return 类型列表
+     */
+    @PostMapping("listbuildtype")
+    R listBuildType();
+
+    /**
+     * 分页查询 其他建筑
+     *
+     * @param comMngStructOtherBuildVO
+     *            分页查询参数
+     * @return 查询结果
+     */
+    @PostMapping("pageotherbuild")
+    R pageOtherBuild(@RequestBody ComMngStructOtherBuildVO comMngStructOtherBuildVO);
+
+    /**
+     * 获取志愿者详情
+     *
+     * @param id
+     *            志愿者信息
+     * @return 增加结果
+     */
+    @GetMapping("getVolunteerById")
+    R getVolunteerById(@RequestParam("id") Long id);
+
+    /**
+     * 增加志愿者
+     *
+     * @param comMngVolunteerMngVO
+     *            志愿者信息
+     * @return 增加结果
+     */
+    @PostMapping("addvolunteer")
+    R addVolunteer(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO);
+
+    /**
+     * 删除志愿者
+     *
+     * @param comMngVolunteerMngVO
+     *            手机号
+     * @return 删除结果
+     */
+    @PostMapping("deletevolunteer")
+    R deleteVolunteer(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO);
+
+    /**
+     * 编辑志愿者
+     *
+     * @param comMngVolunteerMngVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("putvolunteer")
+    R putVolunteer(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO);
+
+    /**
+     * 分页展示志愿者
+     *
+     * @param comMngVolunteerMngVO
+     *            查询参数
+     * @return 分页集合返回
+     */
+    @PostMapping("pagevolunteer")
+    R pageVolunteer(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO);
+
+    /**
+     * 分页展示志愿者审核
+     *
+     * @param comMngVolunteerMngVO
+     *            查询参数
+     * @return 查询结果
+     */
+    @PostMapping("pagevolunteerexamine")
+    R pageVolunteerExamine(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO);
+
+    /**
+     * 志愿者审核详情
+     *
+     * @param id
+     *            主键
+     * @return 详情
+     */
+    @PostMapping("detailvolunteerexamine")
+    R detailVolunteerExamine(@RequestParam("id") Long id);
+
+    /**
+     * 志愿者审核
+     *
+     * @param comMngVolunteerMngVO
+     *            审核操作
+     * @return 审核结果
+     */
+    @PostMapping("putvolunteerexamine")
+    R putVolunteerExamine(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO);
+
+    /**
+     * 删除志愿者审核
+     *
+     * @param comMngVolunteerMngVO
+     *            主键
+     * @return 删除结果
+     */
+    @PostMapping("deletevolunteerexamine")
+    R deleteVolunteerExamine(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO);
+
+    /**
+     * 查询区域
+     *
+     * @param comActVO
+     *            登录人的经纬度、或者指定区域的社区
+     * @return 10个社区
+     */
+    @PostMapping("listcommunity")
+    R listCommunity(@RequestBody ComActVO comActVO);
+
+    /**
+     * 用户修改手机号对应的志愿者手机号也要修改
+     *
+     * @param userPhoneVO
+     *            新旧手机号
+     * @return 修改结果
+     */
+    @PostMapping("putvolunteerphone")
+    R putVolunteerPhone(@RequestBody UserPhoneVO userPhoneVO);
+
+    /**
+     * 房屋地址下拉列表
+     *
+     * @param parentCode
+     *            父级编码
+     * @param areaId
+     *            小区id
+     * @return 下级列表
+     */
+    @PostMapping("listhouses")
+    R listHouses(@RequestParam("parentCode") String parentCode, @RequestParam("areaId") Long areaId);
+
+    /**
+     * 新增房屋
+     *
+     * @param comMngStructHouseVO
+     *            房屋信息
+     * @return 新增结果
+     */
+    @PostMapping("addhouses")
+    R addHouses(@RequestBody ComMngStructHouseVO comMngStructHouseVO);
+
+    /**
+     * 查询小区
+     *
+     * @param communityId
+     *            社区id
+     * @return 小区集合
+     */
+    @PostMapping("listarea")
+    R listArea(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 用户参加的所有社区活动
+     *
+     * @param userId
+     *            用户id
+     * @param status
+     * @return 活动列表
+     */
+    @PostMapping("listactivity")
+    R listActivity(@RequestParam("userId") Long userId, @RequestParam(value = "status", required = false) Integer status,@RequestParam(value = "type",required = false)Integer type);
+
+    /**
+     * 用户确认心愿
+     *
+     * @param comActMicroWishVO
+     *            用户评价
+     * @return 确认结果
+     */
+    @PostMapping("putmicrowishconfirm")
+    R putMicroWishConfirm(@RequestBody ComActMicroWishVO comActMicroWishVO);
+
+    /**
+     * 建筑类型
+     *
+     * @param communityId
+     *            社区id
+     * @return 建筑集合
+     */
+    @PostMapping("listcommngstructbuildtype")
+    R listComMngStructBuildType(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 增加删除建筑类型
+     *
+     * @param systemmanagementConfigVO
+     *            操作内容
+     * @return 操作结果
+     */
+    @PostMapping("putcommngstructbuildtype")
+    R putComMngStructBuildType(@RequestBody SystemmanagementConfigVO systemmanagementConfigVO);
+
+    /**
+     * 获取广告跳转内容配置
+     *
+     * @return 跳转内容集合
+     */
+    @PostMapping("getjumpcontent")
+    R getJumpContent();
+
+    /**
+     * 编辑运营后台系统配置
+     *
+     * @param appletesBackstageConfigDTO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("putjumpcontent")
+    R putJumpContent(@RequestBody AppletesBackstageConfigDTO appletesBackstageConfigDTO);
+
+    /**
+     * 社区详情
+     *
+     * @param communityId
+     *            社区id
+     * @return 社区详情
+     */
+    @PostMapping("detailcommunity")
+    R detailCommunity(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 小区详情
+     *
+     * @param areaId
+     *            小区id
+     * @return 小区信息
+     */
+    @PostMapping("detailarea")
+    R detailArea(@RequestParam("areaId") Long areaId);
+
+    /**
+     * 分页查询社区
+     *
+     * @param pageComActDTO
+     *            查询参数
+     * @return 分页集合
+     */
+    @PostMapping("pagecommunity")
+    R pageCommunity(@RequestBody PageComActDTO pageComActDTO);
+
+    /**
+     * 志愿者详情
+     *
+     * @param id
+     *            主键
+     * @return
+     */
+    @PostMapping("detailvolunteer")
+    R detailVolunteer(@RequestParam("id") Long id);
+
+    /**
+     * 查询平台所有的社区
+     *
+     * @return 社区集合 按照创建顺序倒序排列
+     */
+    @PostMapping("listcommunityall")
+    R listCommunityAll(@RequestParam("areaCode")String areaCode);
+
+    /**
+     * 首页广告banner
+     *
+     * @return
+     */
+    @PostMapping("listadvertisement")
+    R listAdvertisement();
+
+    /**
+     * 新增广告
+     *
+     * @param comOpsAdvDTO
+     * @return
+     */
+    @PostMapping("addadvertisement")
+    R addAdvertisement(@RequestBody ComOpsAdvDTO comOpsAdvDTO);
+
+    /**
+     * 编辑广告
+     *
+     * @param comOpsAdvDTO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("putadvertisement")
+    R putAdvertisement(@RequestBody ComOpsAdvDTO comOpsAdvDTO);
+
+    /**
+     * 广告位置下拉列表
+     *
+     * @return 位置集合
+     */
+    @PostMapping("listadvpos")
+    R listAdvpos();
+
+    /**
+     * 跳转内容下拉列表
+     *
+     * @return 跳转内容集合
+     */
+    @PostMapping("listadvjump")
+    R listAdvjump();
+
+    /**
+     * 社区管理后台数据看板 代办事件
+     *
+     * @param communityId
+     *            社区id
+     * @param userId
+     * @return 代办事件列表
+     */
+    @PostMapping("indexdatacommunitybackstage")
+    R indexDataCommunityBackstage(@RequestParam("communityId") Long communityId, @RequestParam("userId") Long userId);
+
+    /**
+     * 删除社区
+     *
+     * @param communityId
+     *            社区id
+     * @return 删除结果
+     */
+    @PostMapping("delectcommunity")
+    R delectCommunity(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 定时任务刷新社区动态置顶状态
+     *
+     * @return
+     */
+    @PostMapping("timedtaskdynistopping")
+    R timedTaskDynIstopping();
+
+    /**
+     * 定时任务刷新社区动态发布状态
+     *
+     * @return
+     */
+    @PostMapping("timedtaskdynstatus")
+    R timedTaskDynStatus();
+
+    /**
+     * 定时任务查询所有要取消的社区活动
+     *
+     * @return 社区活动集合
+     */
+    @PostMapping("timedtaskactactivity")
+    R timedTaskActActivity();
+
+    /**
+     * 定时任务刷新社区活动的各个状态 除取消外
+     *
+     * @return
+     */
+    @PostMapping("timedtaskactactivityall")
+    R timedTaskActActivityAll();
+
+    /**
+     * 定时任务刷新社区活动的各个状态 除取消外
+     *
+     * @return
+     */
+    @PostMapping("timedtaskactmicrowish")
+    R timedTaskActMicroWishAll();
+
+    /**
+     * 其他建筑详情
+     *
+     * @param id
+     *            主键id
+     * @return 建筑内容
+     */
+    @PostMapping("detailotherbuild")
+    R detailOtherbuild(@RequestParam("id") Long id);
+
+    /**
+     * 编辑其他建筑
+     *
+     * @param comMngStructOtherBuildVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("putotherbuild")
+    R putOtherbuild(@RequestBody ComMngStructOtherBuildVO comMngStructOtherBuildVO);
+
+    /**
+     * 删除其他建筑
+     *
+     * @param id
+     *            主键
+     * @return 删除结果
+     */
+    @PostMapping("deleteotherbuild")
+    R deleteOtherbuild(@RequestParam("id") Long id);
+
+    /**
+     * 社区后台分页查询社区活动
+     *
+     * @param comActActivityVO
+     *            查询参数
+     * @return 返回结果
+     */
+    @PostMapping("pageactivitycommunityback")
+    R pageActivityCommunityBack(@RequestBody ComActActivityVO comActActivityVO);
+
+    /**
+     * 小程序分页查询随手拍
+     *
+     * @param comActEasyPhotoVO
+     *            查询参数
+     * @return 返回结果
+     */
+    @PostMapping("pageeasyphotoapplets")
+    R pageEasyPhotoApplets(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO);
+
+    /**
+     * 随手拍评论分页查询
+     *
+     * @param pageComActEasyPhotoCommentDTO
+     *            查询参数
+     * @return 查询结果
+     */
+    @PostMapping("pagecomacteasyphotocomment")
+    R pageComActEasyPhotoComment(@RequestBody PageComActEasyPhotoCommentDTO pageComActEasyPhotoCommentDTO);
+
+    /**
+     * 评论点赞/取消点赞
+     *
+     * @param comActEasyPhotoCommentUserDTO
+     *            操作
+     * @return 操作结果
+     */
+    @PostMapping("commentsign")
+    R commentSign(@RequestBody ComActEasyPhotoCommentUserDTO comActEasyPhotoCommentUserDTO);
+
+    /**
+     * 随手拍--评论--新增评论
+     *
+     * @param comActEasyPhotoCommentDTO
+     *            新增内容
+     * @return 新增结果
+     */
+    @PostMapping("addcomacteasyphotocomment")
+    R addComActEasyPhotoComment(@RequestBody ComActEasyPhotoCommentDTO comActEasyPhotoCommentDTO);
+
+    /**
+     * 议事投票-新增
+     *
+     * @param comActDiscussDTO
+     *            新增参数
+     * @return 新增结果
+     */
+    @PostMapping("adddiscuss")
+    R addDiscuss(@RequestBody ComActDiscussDTO comActDiscussDTO);
+
+    /**
+     * 议事投票-新增
+     *
+     * @param comActDiscussDTO
+     *            新增参数
+     * @return 新增结果
+     */
+    @PostMapping("editdiscuss")
+    R editDiscuss(@RequestBody ComActDiscussDTO comActDiscussDTO);
+
+    /**
+     * 议事投票-详情
+     *
+     * @param discussDetailDTO
+     *            请求参数
+     * @return ComActDiscussVO
+     */
+    @PostMapping("detaildiscuss")
+    R detailDiscuss(@RequestBody ComActDiscussDetailDTO discussDetailDTO);
+
+    /**
+     * 分页查询评论下回复列表
+     * @param discussDetailDTO  请求参数
+     * @return  回复列表
+     */
+    @PostMapping("discussCommentReplyAdmin")
+    R discussCommentReplyAdmin(@RequestBody ComActDiscussDetailDTO discussDetailDTO);
+
+    /**
+     * 议事投票-删除
+     *
+     * @param id
+     *            主键
+     * @return 删除结果
+     */
+    @PostMapping("deletediscuss")
+    R deleteDiscuss(@RequestParam("id") Long id);
+
+    /**
+     * 议事投票-回复
+     *
+     * @param comActDiscussCommentDTO
+     *            评论内容
+     * @return 回复结果
+     */
+    @PostMapping("adddiscusscomment")
+    R addDiscussComment(@RequestBody ComActDiscussCommentDTO comActDiscussCommentDTO);
+
+    /**
+     * 议事投票-分页查询
+     *
+     * @param pageComActDiscussDTO
+     *            查询参数
+     * @return ComActDiscussVO
+     */
+    @PostMapping("pagediscuss")
+    R pageDiscuss(@RequestBody PageComActDiscussDTO pageComActDiscussDTO);
+
+    /**
+     * 议事投票-后台分页查询
+     *
+     * @param pageComActDiscussDTO
+     *            查询参数
+     * @return ComActDiscussVO
+     */
+    @PostMapping("pagediscussAdmin")
+    R pageDiscussAdmin(@RequestBody PageComActDiscussDTO pageComActDiscussDTO);
+
+    /**
+     * 议事投票-评论-查看
+     *
+     * @param id
+     *            主键
+     * @return 详情
+     */
+    @PostMapping("detaildiscusscomment")
+    R detailDiscussComment(@RequestParam("id") Long id);
+
+    /**
+     * 议事投票评论详情
+     * @param pageComActDiscussCommentDTO   请求参数
+     * @return  议事投票详情
+     */
+    @PostMapping("detaildiscusscommentAdmin")
+    R detailDiscussCommentAdmin(@RequestBody PageComActDiscussCommentDTO pageComActDiscussCommentDTO);
+
+    /**
+     * 议事投票-评论-置顶
+     *
+     * @param id
+     *            主键
+     * @return 置顶结果
+     */
+    @PostMapping("putdiscusscommenttop")
+    R putDiscussCommentTop(@RequestParam("id") Long id);
+
+    /**
+     * 议事投票-评论-回复
+     *
+     * @param comActDiscussCommentDTO
+     *            回复内容
+     * @return 回复结果
+     */
+    @PostMapping("adddiscusscommentback")
+    R addDiscussCommentBack(@RequestBody ComActDiscussCommentDTO comActDiscussCommentDTO);
+
+    /**
+     * 议事投票-评论-分页查询
+     *
+     * @param pageComActDiscussCommentDTO
+     *            分页查询参数
+     * @return ComActDiscussCommentVO
+     */
+    @PostMapping("pagediscusscomment")
+    R pageDiscussComment(@RequestBody PageComActDiscussCommentDTO pageComActDiscussCommentDTO);
+
+    /**
+     * 议事投票-评论-后台分页查询
+     *
+     * @param pageComActDiscussCommentDTO
+     *            分页查询参数
+     * @return ComActDiscussCommentVO
+     */
+    @PostMapping("pagediscusscommentAdmin")
+    R pageDiscussCommentAdmin(@RequestBody PageComActDiscussCommentDTO pageComActDiscussCommentDTO);
+
+    /**
+     * 议事投票-分页查询 小程序
+     *
+     * @param pageComActDiscussDTO
+     *            查询参数
+     * @return ComActDiscussVO 分页
+     */
+    @PostMapping("pagediscussapplets")
+    R pageDiscussApplets(@RequestBody PageComActDiscussDTO pageComActDiscussDTO);
+
+    /**
+     * 议事投票-点赞、取消点赞
+     *
+     * @param comActDiscussUserDTO
+     *            操作类型
+     * @return 操作结果
+     */
+    @PostMapping("putdiscussuser")
+    R putDiscussUser(@RequestBody ComActDiscussUserDTO comActDiscussUserDTO);
+
+    /**
+     * 议事投票-评论-分页查询 小程序
+     *
+     * @param pageComActDiscussCommentDTO
+     *            分页参数
+     * @return ComActDiscussCommentVO
+     */
+    @PostMapping("pagediscusscommentapplets")
+    R pageDiscussCommentApplets(@RequestBody PageComActDiscussCommentDTO pageComActDiscussCommentDTO);
+
+    /**
+     * 议事投票-详情 小程序
+     *
+     * @param id
+     *            主键
+     * @param userId
+     *            登录用户主键
+     * @return ComActDiscussVO
+     */
+    @PostMapping("detaildiscussapplets")
+    R detailDiscussApplets(@RequestParam("id") Long id, @RequestParam("userId") Long userId);
+
+    /**
+     * 议事投票-投票
+     *
+     * @param comActDiscussOptionUserDTO
+     *            投票信息
+     * @return 投票结果
+     */
+    @PostMapping("adddiscussoptionuser")
+    R addDiscussOptionUser(@RequestBody ComActDiscussOptionUserDTO comActDiscussOptionUserDTO);
+
+    /**
+     * 议事投票-评论-点赞、取消点赞
+     *
+     * @param comActDiscussUserDTO
+     *            评论点赞
+     * @return 点赞结果
+     */
+    @PostMapping("putdiscusscommentuser")
+    R putDiscussCommentUser(@RequestBody ComActDiscussCommentUserDTO comActDiscussUserDTO);
+
+    /**
+     * 分页查询广告
+     *
+     * @param pageComOpsAdvDTO
+     *            查询内容
+     * @return 查询结果 ComOpsAdvVO
+     */
+    @PostMapping("pageadvertisement")
+    R pageAdvertisement(@RequestBody PageComOpsAdvDTO pageComOpsAdvDTO);
+
+    /**
+     * 广告详情
+     *
+     * @param id
+     *            主键
+     * @return 广告内容
+     */
+    @PostMapping("detailadvertisement")
+    R detailAdvertisement(@RequestParam("id") Long id);
+
+    /**
+     * 删除广告
+     *
+     * @param id
+     *            主键
+     * @return 删除结果
+     */
+    @PostMapping("deleteadvertisement")
+    R deleteAdvertisement(@RequestParam("id") Long id);
+
+    /**
+     * 查询城市下属所有地区列表
+     *
+     * @param cityAdcode
+     *            城市地址编码
+     * @return 地区列表
+     */
+    @PostMapping("listareadistrict")
+    R listAreaDistrict(@RequestParam("cityAdcode") Long cityAdcode);
+
+    /**
+     * 首页图表数据汇总
+     *
+     * @param communityId
+     *            社区id
+     * @return 图表数据
+     */
+    @PostMapping("indexdatacommunitybackstageechart")
+    R indexDataCommunityBackstageEchart(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 选择导入的小区
+     *
+     * @param param
+     *            小区名字 模糊查询
+     * @param communityId
+     *            社区id
+     * @return 小区集合 ComMngStructAreaVO
+     */
+    @PostMapping("listareas")
+    R listAreas(@RequestParam("param") String param, @RequestParam("communityId") Long communityId);
+
+    /**
+     * 检查小区是否已经批量设置过房屋并且返回小区房屋门号规则
+     *
+     * @param id
+     *            小区id
+     * @return ComMngStructAreaVO
+     */
+    @PostMapping("checkAreaHouse")
+    R checkAreaHouse(@RequestParam("id") Long id);
+
+    /**
+     * 新增留言
+     *
+     * @param comActMessageVO
+     *            新增留言信息
+     * @return 发布结果
+     */
+    @PostMapping("addmessage")
+    R addMessage(@RequestBody ComActMessageVO comActMessageVO);
+
+    /**
+     * 我的留言
+     *
+     * @param comActMessageVO
+     *            留言信息
+     * @return 发布结果
+     */
+    @PostMapping("pagemymessage")
+    R pageMyMessageApplets(@RequestBody ComActMessageVO comActMessageVO);
+
+    /**
+     * 给我的留言
+     *
+     * @param comActMessageVO
+     *            留言信息
+     * @return 发布结果
+     */
+    @PostMapping("pagesendtomemessage")
+    R pageSendToMessageApplets(@RequestBody ComActMessageVO comActMessageVO);
+
+    /**
+     * 新增留言回复
+     *
+     * @param comActMessageBackVO
+     *            保存留言回复信息
+     * @return 发布结果
+     */
+    @PostMapping("addmessageback")
+    R addMessageBack(@RequestBody ComActMessageBackVO comActMessageBackVO);
+
+    /**
+     * 根据id查询留言列表
+     *
+     * @return 发布结果
+     */
+    @PostMapping("pagemessagebyuser")
+    R pageMessageByUser(@RequestBody ComActMessageVO comActMessageVO);
+
+    /**
+     * 根据id删除留言
+     *
+     * @return 删除结果
+     */
+    @PostMapping("deletemessage")
+    R deleteMessage(@RequestBody ComActMessageVO comActMessageVO);
+
+    /**
+     * 根据id集合批量设置是否公开
+     *
+     * @return 删除结果
+     */
+    @PostMapping("resetmessagepublic")
+    R resetMessagePublic(@RequestBody ResetComActMessageVO resetComActMessageVO);
+
+    /**
+     * 分页显示社区所有留言
+     *
+     * @param comActMessageVO
+     *            留言信息
+     * @return 结果集合
+     */
+    @PostMapping("pagemycommunitymessage")
+    R pageMyCommunityMessage(@RequestBody ComActMessageVO comActMessageVO);
+
+    /**
+     * 根据id查找留言详情
+     *
+     * @param id
+     * @return
+     */
+    @PostMapping("detailmessage")
+    R detailMessage(@RequestParam("id") Long id);
+
+    /**
+     * 小程序通过便民服务区域分页查询便民服务商家
+     *
+     * @param comCvtBusinessAppletsDTO
+     *            查询参数
+     * @return 返回结果
+     */
+    @PostMapping("/convenient/business/area/page")
+    R pageComCvtBusinessByServiceArea(@RequestBody PageComCvtBusinessAppletsDTO comCvtBusinessAppletsDTO);
+
+    /**
+     * 议事投票-新增
+     *
+     * @param comOpsHouseDTO
+     *            新增参数
+     * @return 新增结果
+     */
+    @PostMapping("addOpsHouse")
+    R addOpsHouse(@RequestBody ComOpsHouseDTO comOpsHouseDTO);
+
+    /**
+     * 议事投票-详情
+     *
+     * @param id
+     *            主键
+     * @return ComOpsHouseVO
+     */
+    @PostMapping("detailOpsHouse")
+    R detailOpsHouse(@RequestParam("id") Long id);
+
+    /**
+     * 房屋租售-修改
+     *
+     * @param comOpsHouseVO
+     *            修改参数
+     * @return 修改结果
+     */
+    @PostMapping("/putOpsHouse")
+    R putOpsHouse(@RequestBody ComOpsHouseVO comOpsHouseVO);
+
+    /**
+     * 房屋租售-小程序修改
+     *
+     * @param comOpsHouseVO
+     *            修改参数
+     * @return 修改结果
+     */
+    @PostMapping("/putOpsHouseByApplets")
+    R putOpsHouseByApplets(@RequestBody ComOpsHouseVO comOpsHouseVO);
+
+    /**
+     * 房屋租售-上下架
+     *
+     * @param comOpsHouseVO
+     *            上下架参数
+     * @return 上下架结果
+     */
+    @PostMapping("/undercarriageHouse")
+    R undercarriageHouse(@RequestBody ComOpsHouseUndercarriageVO comOpsHouseVO);
+
+    /**
+     * 议事投票-删除
+     *
+     * @param id
+     *            主键
+     * @return 删除结果
+     */
+    @PostMapping("deleteOpsHouse")
+    R deleteOpsHouse(@RequestParam("id") Long id);
+
+    /**
+     * 房屋租售-分页查询
+     *
+     * @param pageComOpsHouseDTO
+     *            查询参数
+     * @return ComOpsHouseVO
+     */
+    @PostMapping("pageOpsHouse")
+    R pageOpsHouse(@RequestBody PageComOpsHouseDTO pageComOpsHouseDTO);
+
+    /**
+     * 社区后台分页查询便民服务商家
+     *
+     * @param pageComCvtBusinessDTO
+     *            查询参数
+     * @return 返回结果
+     */
+    @PostMapping("/convenient/business/page")
+    R pageComCvtBusiness(@RequestBody PageComCvtBusinessDTO pageComCvtBusinessDTO);
+
+    /**
+     * 添加便民服务商家信息
+     *
+     * @param comCvtBusinessDTO
+     * @return
+     */
+    @PostMapping("/convenient/business/add")
+    R addComCvtBusiness(ComCvtBusinessDTO comCvtBusinessDTO);
+
+    /**
+     * 编辑便民服务商家
+     *
+     * @param comCvtBusinessDTO
+     *            商家参数
+     * @return 返回结果
+     */
+    @PutMapping("/convenient/business/put")
+    R putComCvtBusiness(@RequestBody ComCvtBusinessDTO comCvtBusinessDTO);
+
+    /**
+     * 查询便民服务商家详情
+     *
+     * @param id
+     *            商家主键
+     * @return 返回结果
+     */
+    @GetMapping("/convenient/business/get")
+    R getComCvtBusiness(@RequestParam("id") Long id);
+
+    /**
+     * 删除便民服务商家信息
+     *
+     * @param id
+     *            商家主键
+     * @return 返回结果
+     */
+    @DeleteMapping("/convenient/business/delete")
+    R deleteComCvtBusiness(@RequestParam("id") Long id);
+
+    /**
+     * 社区后台分页查询便民服务分类
+     *
+     * @param pageComCvtCategoryDTO
+     *            查询参数
+     * @return 返回结果
+     */
+    @PostMapping("/convenient/category/page")
+    R pageComCvtCategory(@RequestBody PageComCvtCategoryDTO pageComCvtCategoryDTO);
+
+    /**
+     * 社区后台分页查询便民服务分类
+     *
+     * @return 返回结果
+     */
+    @PostMapping("/convenient/category/all")
+    R allComCvtCategory();
+
+    /**
+     * 新增便民服务分类
+     *
+     * @param comCvtCategoryDTO
+     *            分类参数
+     * @return 返回结果
+     */
+    @PostMapping("/convenient/category/add")
+    R addComCvtCategory(@RequestBody ComCvtCategoryDTO comCvtCategoryDTO);
+
+    /**
+     * 编辑便民服务分类
+     *
+     * @param comCvtCategoryDTO
+     *            分类参数
+     * @return 返回结果
+     */
+    @PutMapping("/convenient/category/put")
+    R putComCvtCategory(@RequestBody ComCvtCategoryDTO comCvtCategoryDTO);
+
+    /**
+     * 查询便民服务分类详情
+     *
+     * @param id
+     *            分类主键
+     * @return 返回结果
+     */
+    @GetMapping("/convenient/category/get")
+    R getComCvtCategory(@RequestParam("id") Long id);
+
+    /**
+     * 删除便民服务分类信息
+     *
+     * @param id
+     *            分类主键
+     * @return 返回结果
+     */
+    @DeleteMapping("/convenient/category/delete")
+    R deleteComCvtCategory(@RequestParam("id") Long id);
+
+    /**
+     * 社区后台分页查询便民服务
+     *
+     * @param pageComCvtServeDTO
+     *            查询参数
+     * @return 返回结果
+     */
+    @PostMapping("/convenient/serve/page")
+    R pageComCvtServe(@RequestBody PageComCvtServeDTO pageComCvtServeDTO);
+
+    /**
+     * 新增便民服务
+     *
+     * @param comCvtServeDTO
+     *            参数
+     * @return 返回结果
+     */
+    @PostMapping("/convenient/serve/add")
+    R addComCvtServe(@RequestBody ComCvtServeDTO comCvtServeDTO);
+
+    /**
+     * 编辑便民服务
+     *
+     * @param comCvtServeDTO
+     *            分类参数
+     * @return 返回结果
+     */
+    @PutMapping("/convenient/serve/put")
+    R putComCvtServe(@RequestBody ComCvtServeDTO comCvtServeDTO);
+
+    /**
+     * 查询便民服务详情
+     *
+     * @param id
+     *            服务主键
+     * @return 返回结果
+     */
+    @GetMapping("/convenient/serve/get")
+    R getComCvtServe(@RequestParam("id") Long id);
+
+    /**
+     * 删除便民服务信息
+     *
+     * @param id
+     *            服务主键
+     * @return 返回结果
+     */
+    @DeleteMapping("/convenient/serve/delete")
+    R deleteComCvtServe(@RequestParam("id") Long id);
+
+    /**
+     * 小程序便民服务商家详情
+     *
+     * @param id
+     *            商家ID
+     * @return
+     */
+    @GetMapping("/convenient/business/serve/get")
+    R getComCvtBusinessServeDetail(@RequestParam("id") Long id);
+
+    /**
+     * 批量导入便民服务
+     *
+     * @param list
+     *            便民服务集合
+     */
+    @PostMapping("/convenient/serve/import")
+    R listSaveConvenientServeExcelVO(@RequestBody List<ComCvtServeExcelVO> list,
+                                     @RequestParam(value = "communityId", required = false) Long communityId);
+
+    /**
+     * 导出房屋信息
+     *
+     * @param areaId
+     * @return
+     */
+    @PostMapping("/house/export")
+    R houseExport(@RequestParam("areaId") Long areaId);
+
+    /**
+     * 小程序添加车辆信息
+     *
+     * @param comCvtBusinessDTO
+     * @return
+     */
+    @PostMapping("/common/data/car/user/register")
+    R addComMngCarApplet(@RequestBody ComMngCarAppletDTO comCvtBusinessDTO);
+
+    /**
+     * 小程序用户登记车辆列表
+     *
+     * @param userId
+     * @return
+     */
+    @GetMapping("/common/data/car/user/list")
+    R userComMngCarList(@RequestParam("userId") Long userId);
+
+    @PostMapping("/common/data/car/page")
+    R pageQueryComMngCar(@RequestBody PageComMngCarDTO pageComMngCarDTO);
+
+    @PostMapping("/common/data/car/save")
+    R saveComMngCar(@RequestBody ComMngCarSaveDTO comMngCarSaveDTO);
+
+    /**
+     * 删除车辆信息
+     *
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/common/data/car/delete")
+    R deleteComMngCar(@RequestParam(value = "id") Long id);
+
+    /**
+     * 批量导入便民服务
+     *
+     * @param list
+     *            便民服务集合
+     */
+    @PostMapping("/common/data/car/import")
+    R listSaveMngCarExcelVO(@RequestBody List<ComMngCarExcelVO> list, @RequestParam("communityId") Long communityId);
+
+    /**
+     * 车辆导出
+     *
+     * @param exportComMngCarExcelDTO
+     * @return
+     */
+    @PostMapping("/common/data/car/export")
+    R exportRealCar(@RequestBody ExportComMngCarExcelDTO exportComMngCarExcelDTO);
+
+    /**
+     * 社区后台实有单位管理列表
+     *
+     * @param pageComMngRealCompanyDTO
+     * @return
+     */
+    @PostMapping("/common/data/company/page")
+    R pageQueryComMngRealCompany(@RequestBody PageComMngRealCompanyDTO pageComMngRealCompanyDTO);
+
+    /**
+     * 社区后台实有单位统计
+     *
+     * @param communityId
+     *            社区id
+     * @return 统计结果
+     */
+    @PostMapping("/common/data/company/statistics")
+    R getComMngRealCompanyTotalByAdmin(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 社区后台添加修改实有单位
+     *
+     * @param comMngRealCompanyVO
+     * @return
+     */
+    @PostMapping("/common/data/company/save")
+    R saveComMngRealCompany(@RequestBody ComMngRealCompanyVO comMngRealCompanyVO);
+
+    /**
+     * 社区后台删除实有单位
+     *
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/common/data/company/delete")
+    R deleteComMngRealCompany(@RequestParam(value = "id") Long id);
+
+    /**
+     * 实有单位详情
+     *
+     * @param id
+     * @return
+     */
+    @GetMapping("/common/data/company/detail")
+    R detailComMngRealCompany(@RequestParam(value = "id") Long id);
+
+    /**
+     * 批量导入实有单位
+     *
+     * @param list
+     *            实有单位集合
+     */
+    @PostMapping("/common/data/company/import")
+    R listSaveMngRealCompanyExcelVO(@RequestBody List<ComMngRealCompanyExcelVO> list,
+                                    @RequestParam("communityId") Long communityId);
+
+    /**
+     * 实有单位导出
+     *
+     * @param exportRealCompanyExcelDTO
+     * @return
+     */
+    @PostMapping("/common/data/company/export")
+    R exportRealCompany(ExportRealCompanyExcelDTO exportRealCompanyExcelDTO);
+
+    /**
+     * 社区后台实有单位管理列表
+     *
+     * @param pageComMngRealAssetsDTO
+     * @return
+     */
+    @PostMapping("/common/data/assets/page")
+    R pageQueryComMngRealAssets(@RequestBody PageComMngRealAssetsDTO pageComMngRealAssetsDTO);
+
+    /**
+     * 社区后台添加修改实有单位
+     *
+     * @param comMngRealAssetsVO
+     * @return
+     */
+    @PostMapping("/common/data/assets/save")
+    R saveComMngRealAssets(@RequestBody ComMngRealAssetsVO comMngRealAssetsVO);
+
+    /**
+     * 社区后台删除实有单位
+     *
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/common/data/assets/delete")
+    R deleteComMngRealAssets(@RequestParam(value = "id") Long id);
+
+    /**
+     * 实有单位详情
+     *
+     * @param id
+     * @return
+     */
+    @GetMapping("/common/data/assets/detail")
+    R detailComMngRealAssets(@RequestParam(value = "id") Long id);
+
+    /**
+     * 批量导入实有单位
+     *
+     * @param list
+     *            实有单位集合
+     */
+    @PostMapping("/common/data/assets/import")
+    R listSaveMngRealAssetsExcelVO(@RequestBody List<ComMngRealAssetsExcelVO> list,
+                                   @RequestParam("communityId") Long communityId);
+
+    /**
+     * 实有单位导出
+     *
+     * @param exportRealAssetsExcelDTO
+     * @return
+     */
+    @PostMapping("/common/data/assets/export")
+    R exportRealAssets(ExportRealAssetsExcelDTO exportRealAssetsExcelDTO);
+
+    /**
+     * 查询所有省份
+     *
+     * @return
+     */
+    @GetMapping("/common/data/province")
+    R getProvince();
+
+    /**
+     * 查询省份下所有的城市
+     *
+     * @param provinceAdcode
+     * @return
+     */
+    @GetMapping("/common/data/city")
+    R getCityByProvinceCode(@RequestParam(value = "provinceAdcode") Integer provinceAdcode);
+
+    /**
+     * 查询城市下所有的区县
+     *
+     * @param cityAdcode
+     * @return
+     */
+    @GetMapping("/common/data/district")
+    R getDistrictByCityCode(@RequestParam(value = "cityAdcode") Integer cityAdcode);
+
+    /**
+     * 查询省下所有区域 tree结构
+     *
+     * @param provinceAdcode
+     *            省份code
+     * @param areaCode
+     * @return 查询结果
+     */
+    @GetMapping("/common/data/area/all")
+    R getCityTreeByProvinceCode(@RequestParam(value = "provinceAdcode") Integer provinceAdcode, @RequestParam(value = "areaCode", required = false) String areaCode);
+
+    /**
+     * 分页查询街道
+     *
+     * @param pageComStreetDTO
+     *            查询条件
+     * @return 查询结果
+     */
+    @PostMapping("/pagestreet")
+    R pageStreet(@RequestBody PageComStreetDTO pageComStreetDTO);
+
+    /**
+     * 新增街道
+     *
+     * @param comStreetVOO
+     *            需要新增的街道数据
+     * @return 新增结果
+     */
+    @PostMapping("/addstreet")
+    R addStreet(@RequestBody ComStreetVO comStreetVOO);
+
+    /**
+     * 删除街道
+     *
+     * @param Ids
+     *            需要删除街道id集合
+     * @return 删除结果
+     */
+    @PostMapping("/deletestreet")
+    R delectStreat(@RequestBody List<Long> Ids);
+
+    /**
+     * 查询街道
+     *
+     * @param comStreetVO
+     *            查询条件
+     * @return 返回结果
+     */
+    @PostMapping("/liststreet")
+    R listStreet(ComStreetVO comStreetVO);
+
+    /**
+     * 分页查询实有房屋
+     *
+     * @param pageComMngVillageDTO
+     *            查询条件
+     * @return 返回结果
+     */
+    @PostMapping("/pagevillage")
+    R pageVillage(@RequestBody PageComMngVillageDTO pageComMngVillageDTO);
+
+    /**
+     * 新增实有房屋
+     *
+     * @param comMngVillageVO
+     *            新增的实有房屋数据
+     * @return 新增结果
+     */
+    @PostMapping("/addvillage")
+    R addVillage(@RequestBody ComMngVillageVO comMngVillageVO);
+
+    /**
+     * 删除实有房屋
+     *
+     * @param Ids
+     *            需要删除的id集合
+     * @return 删除结果
+     */
+    @PostMapping("/deletevillage")
+    R delectVillage(@RequestBody List<Long> Ids);
+
+    /**
+     * 查询实有房屋
+     *
+     * @param comMngVillageVO
+     *            查询条件
+     * @return 查询结果
+     */
+    @PostMapping("/listvillage")
+    R listVillage(ComMngVillageVO comMngVillageVO);
+
+    /**
+     * 根据房屋id查询实有房屋
+     *
+     * @param villageId
+     *            查询条件
+     * @return 查询结果
+     */
+    @PostMapping("/getVillageById")
+    R getVillageById(@RequestParam(value = "villageId") Long villageId);
+
+    /**
+     * 批量导入实有房屋
+     *
+     * @param list
+     *            实有房屋数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    @PostMapping("/village/import")
+    R listSaveVillageServeExcelVO(@RequestBody List<ComMngVillageServeExcelVO> list,
+                                  @RequestParam(value = "communityId") Long communityId);
+
+    /**
+     * 批量导入实有人口
+     *
+     * @param list
+     *            实有人口数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    @PostMapping("/common/data/population/import")
+    R listSavePopulationServeExcelVO(@RequestBody List<ComMngPopulationServeExcelVO> list,
+                                     @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
+
+    /**
+     * 批量导入吸毒人员
+     *
+     * @param list
+     *            吸毒人员数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    @PostMapping("/common/data/population/importDrug")
+    R listSavePopulationDrugExcelVO(@RequestBody List<ComMngPopulationDrugExcelVO> list,
+                                    @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
+
+    /**
+     * 批量导入社区矫正人员
+     *
+     * @param list
+     *            社区矫正人员数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    @PostMapping("/common/data/population/importCorrect")
+    R listSavePopulationCorrectExcelVO(@RequestBody List<ComMngPopulationCorrectExcelVO> list,
+                                       @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
+
+    /**
+     * 批量导入重精人员
+     *
+     * @param list
+     *            重精人员数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    @PostMapping("/common/data/population/importMajor")
+    R listSavePopulationMajorExcelVO(@RequestBody List<ComMngPopulationMajorExcelVO> list,
+                                     @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
+
+    /**
+     * 批量导入邪教人员
+     *
+     * @param list
+     *            邪教人员数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    @PostMapping("/common/data/population/importCult")
+    R listSavePopulationCultExcelVO(@RequestBody List<ComMngPopulationCultExcelVO> list,
+                                    @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
+
+    /**
+     * 批量导入刑释人员
+     *
+     * @param list
+     *            刑释人员数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    @PostMapping("/common/data/population/importRehabilitation")
+    R listSavePopulationRehabilitationExcelVO(@RequestBody List<ComMngPopulationRehabilitationExcelVO> list,
+                                              @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
+
+    /**
+     * 批量导入重点上访人员
+     *
+     * @param list
+     *            重点上访人员数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    @PostMapping("/common/data/population/importKey")
+    R listSavePopulationKeyExcelVO(@RequestBody List<ComMngPopulationKeyExcelVO> list,
+                                   @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
+
+    /**
+     * 批量导入服刑人员
+     *
+     * @param list
+     *            服刑人员数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    @PostMapping("/common/data/population/importSentence")
+    R listSavePopulationSentenceExcelVO(@RequestBody List<ComMngPopulationSentenceExcelVO> list,
+                                        @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
+
+    /**
+     * 批量导入退役军人
+     *
+     * @param list
+     *            退役军人数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    @PostMapping("/common/data/population/importVeterans")
+    R listSavePopulationVeteransExcelVO(@RequestBody List<ComMngPopulationVeteransExcelVO> list,
+                                        @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
+
+    /**
+     * 批量导入残疾人
+     *
+     * @param list
+     *            残疾人数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    @PostMapping("/common/data/population/importDisability")
+    R listSavePopulationDisabilityExcelVO(@RequestBody List<ComMngPopulationDisabilityExcelVO> list,
+                                          @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
+
+    /**
+     * 批量导入低保户
+     *
+     * @param list
+     *            低保户数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    @PostMapping("/common/data/population/importLowSecurity")
+    R listSavePopulationLowSecurityExcelVO(@RequestBody List<ComMngPopulationLowSecurityExcelVO> list,
+                                           @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);
+
+    /**
+     * 确认导入实有人口(有则更新,无则新建)
+     *
+     * @param list
+     *            用户信息
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    @PostMapping("/common/data/population/import/confirm")
+    R listSavePopulationConfirm(@RequestBody List<ComMngPopulationServeExcelVO> list,
+                                @RequestParam(value = "communityId") Long communityId);
+
+    /**
+     * 分页查询实有人口
+     *
+     * @param comMngPopulationVO
+     *            查询参数
+     * @return 分页集合
+     */
+    @PostMapping("/common/data/population/page")
+    R pagePopulation(ComMngPopulationDTO comMngPopulationVO);
+
+    /**
+     * 导出老人
+     *
+     * @param comMngPopulationVO
+     *            查询参数
+     * @return 分页集合
+     */
+    @PostMapping("/common/data/population/exportOld")
+    R exportOld(ComMngPopulationDTO comMngPopulationVO);
+
+
+    /**
+     * 根据身份证查询实有人口信息
+     */
+    @GetMapping("/common/data/population/selectByIdCard")
+    R selectByIdCard(@RequestParam("idCard") String idCard);
+
+    /**
+     * 根据id实有人口详细信息
+     *
+     * @param populationId
+     *            实有人口id
+     * @return 实有人口详细信息
+     */
+    @PostMapping("/common/data/population/detail")
+    R<ComMngPopulationVO> detailPopulation(@RequestParam(value = "populationId") Long populationId, @RequestParam(value = "communityId") Long communityId);
+
+    /**
+     * 根据id查询实有人口电子档案信息
+     *
+     * @param populationId
+     *            实有人口id
+     * @return 实有人口电子档信息
+     */
+    @PostMapping("/common/data/population/electronicArchives")
+    R electronicArchivesPopulation(@RequestParam(value = "populationId") Long populationId);
+
+    /**
+     * 根据id修改实有人口标签列表
+     *
+     * @param populationTagDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    @PostMapping("/common/data/population/editTag")
+    R editTagPopulation(ComMngPopulationTagDTO populationTagDTO);
+
+    /**
+     * 批量删除实有人口
+     *
+     * @param ids
+     *            实有人口id集合
+     * @return 删除结果
+     */
+    @PostMapping("/common/data/population/delete")
+    R deletePopulations(@RequestBody List<Long> ids,@RequestParam("communityId") Long communityId);
+
+    /**
+     * 根据社区id查询所有实有人口
+     *
+     * @param communityId
+     *            社区id
+     * @return 查询结果
+     */
+    @PostMapping("/common/data/population/getAll")
+    R getPopulationListByCommunityId(@RequestParam(value = "communityId") Long communityId);
+
+    /**
+     * 根据id集合查询实有人口
+     *
+     * @param Ids
+     *            实有人口id集合
+     * @return 查询结果
+     */
+    @PostMapping("/common/data/population/getList")
+    R getPopulationLists(@RequestBody List<Long> Ids);
+
+    /**
+     * 根据小区id查询实有人口
+     *
+     * @param villageId
+     *            小区id
+     * @return 查询结果
+     */
+    @PostMapping("/common/data/population/getListByVillageId")
+    R getPopulationListByVillageId(@RequestParam("villageId") Long villageId);
+
+    /**
+     * 创建调查问卷
+     *
+     * @param questnaireVO
+     * @return
+     */
+    @PostMapping("/questnaire/addquestnaire")
+    R addQuestnaire(@RequestBody QuestnaireVO questnaireVO);
+
+    /**
+     * 小程序-社区问卷列表
+     *
+     * @param pageQuestnaireDTO
+     *            请求参数
+     * @return 社区问卷列表
+     */
+    @PostMapping("/questnaire/pagequestnaire")
+    R pageQuestnaire(@RequestBody PageQuestnaireDTO pageQuestnaireDTO);
+
+    /**
+     * 社区后台-社区问卷列表
+     *
+     * @param pageQuestnaireDTO
+     *            请求参数
+     * @return 社区问卷列表
+     */
+    @PostMapping("/questnaire/admin/pagequestnaire")
+    R pageQuestnaireAdmin(@RequestBody PageQuestnaireDTO pageQuestnaireDTO);
+
+    /**
+     * 编辑问卷——问卷、题目、选项
+     *
+     * @param questnaireVO
+     * @return
+     */
+    @PostMapping("/questnaire/editquestnaire")
+    R editQuestnaire(@RequestBody QuestnaireVO questnaireVO);
+
+    /**
+     * 修改问卷状态
+     *
+     * @param editComActQuestnaireVo
+     * @return
+     */
+    @PostMapping("/questnaire/editquestnairedo")
+    R editQuestnaireDO(@RequestBody EditComActQuestnaireVo editComActQuestnaireVo);
+
+    /**
+     * 删除问卷 ——隐藏
+     *
+     * @param questId
+     *            调查问卷Id
+     * @return
+     */
+    @PostMapping("/questnaire/deletequestnaire")
+    R editQuestnaireDO(@RequestParam("questId") Long questId, @RequestParam("userId") Long userId);
+
+    /**
+     * 问卷答题结果
+     *
+     * @param questId
+     *            问卷ID
+     */
+    @PostMapping("/questnaire/answerslist")
+    R answerResultList(@RequestParam("questId") Long questId);
+
+    /**
+     * 问卷调查详细
+     *
+     * @param questId
+     *            问卷ID
+     * @return 用户问卷调查详细
+     */
+    @GetMapping("/questnaire/view")
+    R view(@RequestParam("userId") Long userId, @RequestParam("questId") Long questId);
+
+    /**
+     * 小程序-问卷调查详情
+     *
+     * @param userId
+     *            用户id
+     * @param questId
+     *            问卷id
+     * @return 问卷调查详情
+     */
+    @GetMapping("/questnaire/view/detail")
+    R viewDetail(@RequestParam("userId") Long userId, @RequestParam("questId") Long questId);
+
+    /**
+     * 小程序-新增问卷调查浏览数量
+     *
+     * @param questId
+     *            问卷调查id
+     * @return 增加结果
+     */
+    @GetMapping("/questnaire/add/view")
+    R addView(@RequestParam("questId") Long questId);
+
+    /**
+     * 小程序-用户弹窗添加不在提醒接口
+     *
+     * @param questId
+     *            问卷id
+     * @param userId
+     *            用户id
+     * @return 添加结果
+     */
+    @GetMapping("/questnaire/add/noNotice")
+    R addNoNotice(@RequestParam("questId") Long questId, @RequestParam("userId") Long userId);
+
+    /**
+     * 社区后台-查询问卷调查详情
+     *
+     * @param questId
+     *            问卷id
+     * @return 问卷调查详情
+     */
+    @GetMapping("/questnaire/admin/detail")
+    R QuesDetail(@RequestParam("questId") Long questId);
+
+    /**
+     * 用户问卷调查详细
+     *
+     * @param userId
+     *            用户ID
+     * @param questId
+     *            问卷ID
+     * @return 用户问卷调查详细
+     */
+    @GetMapping("/questnaire/usersanswer")
+    R answerInfoQuestnaire(@RequestParam("userId") Long userId, @RequestParam("questId") Long questId);
+
+    /**
+     * 查看用户问卷调查统计信息
+     *
+     * @param questId
+     *            问卷ID
+     * @return 用户问卷调查统计信息
+     */
+    @GetMapping("/questnaire/stat")
+    R statistics(@RequestParam("questId") Long questId);
+
+    /**
+     * 问卷题目 答卷信息
+     *
+     * @param pageQuestnaireSubDetailsDTO
+     *            问卷ID
+     */
+    @PostMapping("/questnaire/qaqeustanswerdetails")
+    R qaQeustAnswerDetails(@RequestBody PageQuestnaireSubDetailsDTO pageQuestnaireSubDetailsDTO);
+
+    /**
+     * 社区问卷分页
+     *
+     * @param pageQuestnaireAnswerDTO
+     *            社区问卷分页参数
+     * @return 分页数据
+     */
+    @PostMapping("/questnaire/pagequestnaireanswer")
+    R pageQuestnaireAnswer(@RequestBody PageQuestnaireAnswerDTO pageQuestnaireAnswerDTO);
+
+    /**
+     * 居民填写问卷调查问卷
+     *
+     * @param usersAnswerQuestnaireVO
+     *            填写情况
+     */
+    @PostMapping("/questnaire/usersanswequestnaire")
+    R usersAnsweQuestnaire(@RequestBody UsersAnswerQuestnaireVO usersAnswerQuestnaireVO);
+
+    /**
+     * 店铺列表-分页查询
+     *
+     * @param pageComShopStoreDTO
+     *            分页条件
+     */
+    @PostMapping("/shop/pageShopStore")
+    R pageStoreList(@RequestBody PageComShopStoreDTO pageComShopStoreDTO);
+
+    /**
+     * 保存店铺
+     *
+     * @param storeVO
+     *            数据
+     */
+    @PostMapping("/shop/saveStore")
+    R saveStore(@RequestBody ShopStoreVO storeVO);
+
+    /**
+     * 新增店铺
+     *
+     * @param storeVO
+     *            店铺信息
+     * @return 新增结果
+     */
+    @PostMapping("/shop/addStore")
+    R addStore(@RequestBody ShopStoreVO storeVO);
+
+    /**
+     * 编辑店铺、启用、禁用
+     *
+     * @param storeVO
+     *            数据
+     * @param id
+     *            商铺id
+     */
+    @PostMapping("/shop/editStore/{id}")
+    R editStore(@RequestBody ShopStoreVO storeVO, @PathVariable("id") Long id);
+
+    /**
+     * 删除店铺
+     *
+     * @param id
+     *            商铺id
+     */
+    @PostMapping("/shop/deleteStore")
+    R deleteStore(@RequestBody Long[] id);
+
+    /**
+     * 获取详情
+     *
+     * @param id
+     *            商铺id
+     */
+    @GetMapping("/shop/getStoreInfo")
+    R getStoreInfo(@RequestParam("id") Long id);
+
+    /**
+     * 商品列表-分页查询
+     *
+     * @param pageComShopGoodsDTO
+     *            添加数据
+     */
+    @PostMapping("/shop/pageGoods")
+    R pageGoodsList(@RequestBody PageComShopGoodsDTO pageComShopGoodsDTO);
+
+    /**
+     * 新增商品
+     *
+     * @param addShopGoodsVO
+     * @return
+     */
+    @PostMapping("/shop/saveShopGoods")
+    R saveShopGoods(@RequestBody AddShopGoodsVO addShopGoodsVO);
+
+    /**
+     * 编辑商品
+     *
+     * @param id
+     * @param addShopGoodsVO
+     * @return
+     */
+    @PostMapping("/shop/editShopGoods/{id}")
+    R editShopGoods(@PathVariable("id") Long id, @RequestBody AddShopGoodsVO addShopGoodsVO);
+
+    /**
+     * 删除商品
+     *
+     * @param id
+     * @return
+     */
+    @PostMapping("/shop/deleteShopGoods")
+    R deleteShopGoods(@RequestBody Long[] id);
+
+    /**
+     * 修改商品状态
+     *
+     * @param id
+     * @return
+     */
+    @GetMapping("/shop/changeShopGoodsStatus")
+    R changeStatus(@RequestParam("id") Long id, @RequestParam("status") Integer status);
+
+    /**
+     * 结果
+     *
+     * @param shopOperlog
+     *            商城后台操作日志
+     */
+    @PostMapping("/shop/addShopOperLog")
+    R addShopOperLog(@RequestBody ShopOperLogVO shopOperlog);
+
+    /**
+     * 分页查询 商家后台操作日志
+     *
+     * @param pageDTO
+     *            分页数据
+     * @return 分页日志
+     */
+    @PostMapping("/shop/pageShopOperLog")
+    R pageShopOperLog(@RequestBody PageDTO pageDTO);
+
+    /**
+     * 订单分页查询
+     *
+     * @param pageComShopOrderSearchDTO
+     *            分页数据
+     * @return 订单分页查询
+     */
+    @PostMapping("/shop/order/page")
+    R pageShopOrder(@RequestBody PageComShopOrderSearchDTO pageComShopOrderSearchDTO);
+
+    /**
+     * 分页查询店铺列表
+     *
+     * @param comShopStoreDTO
+     *            请求参数
+     * @return 店铺列表
+     */
+    @PostMapping("/shop/pageShopStore")
+    R pageShopStore(@RequestBody PageComShopStoreDTO comShopStoreDTO);
+
+    /**
+     * 根据id查询店铺详情
+     *
+     * @param comShopStoreDTO
+     *            请求参数
+     * @return 店铺详情
+     */
+    @PostMapping("/shop/shopStoreDetail")
+    R shopStoreDetail(@RequestBody PageComShopStoreDTO comShopStoreDTO);
+
+    /**
+     * 分页查询商品列表
+     *
+     * @param comShopGoodsDTO
+     *            请求参数
+     * @return 商品列表
+     */
+    @PostMapping("/shop/pageShopGoods")
+    R pageShopGoods(@RequestBody ComShopGoodsDTO comShopGoodsDTO);
+
+    /**
+     * 根据商品id查询商品信息
+     *
+     * @param goodsId
+     *            商品id
+     * @return 商品信息
+     */
+    @PostMapping("/shop/shopGoodsDetail")
+    R shopGoodsDetail(@RequestParam("goodsId") Long goodsId);
+
+    /**
+     * 查询用户购物车列表
+     *
+     * @param userId
+     *            用户id
+     * @return 购物车列表
+     */
+    @PostMapping("/shop/shopCartList")
+    R shopCartList(@RequestParam("userId") Long userId);
+
+    /**
+     * 查询用户购物车数量
+     *
+     * @param userId
+     *            用户id
+     * @return 用户购物车商品数量
+     */
+    @PostMapping("/shop/shopCartUserTotal")
+    R shopCartUserTotal(@RequestParam("userId") Long userId);
+
+    /**
+     * 购物车添加
+     *
+     * @param comShopCartDTO
+     *            请求参数
+     * @return 购物车列表
+     */
+    @PostMapping("/shop/shopAddCart")
+    R shopAddCart(@RequestBody ComShopCartDTO comShopCartDTO);
+
+    /**
+     * 购物车内商品数量修改
+     *
+     * @param shopEditNubCartDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    @PostMapping("/shop/shopEditNubCart")
+    R shopEditNubCart(@RequestBody ComShopEditNubCartDTO shopEditNubCartDTO);
+
+    /**
+     * 删除购物车记录
+     *
+     * @param Ids
+     *            购物车id集合
+     * @return 删除结果
+     */
+    @PostMapping("/shop/shopDelCart")
+    R shopDelCart(@RequestBody List<Long> Ids);
+
+    /**
+     * 分页查询用户收货地址列表
+     *
+     * @param comShopAddressDTO
+     *            请求参数
+     * @return 用户收货地址列表
+     */
+    @PostMapping("/shop/shopUserAddressList")
+    R shopUserAddressList(@RequestBody PageComShopAddressDTO comShopAddressDTO);
+
+    /**
+     * 用户添加收货地址
+     *
+     * @param comShopAddressDTO
+     *            请求参数
+     * @return 添加结果
+     */
+    @PostMapping("/shop/shopAddUserAddress")
+    R shopAddUserAddress(@RequestBody ComShopAddressDTO comShopAddressDTO);
+
+    /**
+     * 用户修改收货地址
+     *
+     * @param comShopAddressDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    @PostMapping("/shop/shopEditUserAddress")
+    R shopEditUserAddress(@RequestBody ComShopAddressDTO comShopAddressDTO);
+
+    /**
+     * 用户删除收货地址
+     *
+     * @param addressId
+     *            收货地址id
+     * @return 删除结果
+     */
+    @PostMapping("/shop/shopDelUserAddress")
+    R shopDelUserAddress(@RequestParam("addressId") Long addressId);
+
+    /**
+     * 订单预览
+     *
+     * @param orderPreviewDTO
+     *            请求参数
+     * @return 订单预览数据
+     */
+    @PostMapping("/shop/orderPreview")
+    R orderPreview(@RequestBody ComShopOrderPreviewDTO orderPreviewDTO);
+
+    /**
+     * 创建订单
+     *
+     * @param orderCreateDTO
+     *            创建订单请求参数
+     * @return 创建结果
+     */
+    @PostMapping("/shop/orderCreate")
+    R orderCreate(@RequestBody ComShopOrderCreateDTO orderCreateDTO);
+
+    /**
+     * 分页查询用户订单列表
+     *
+     * @param comOrderListDTO
+     *            请求参数
+     * @return 查询结果
+     */
+    @PostMapping("/shop/pageOrderList")
+    R pageOrderList(@RequestBody PageComOrderListDTO comOrderListDTO);
+
+    /**
+     * 根据订单id查询订单详情
+     *
+     * @param orderId
+     *            订单id
+     * @return 订单详情
+     */
+    @PostMapping("/shop/orderDetail")
+    R orderDetail(@RequestParam("orderId") Long orderId);
+
+    /**
+     * 根据订单id取消订单
+     *
+     * @param comShopOrderQueryDTO
+     *            请求参数
+     * @return 取消结果
+     */
+    @PostMapping("/shop/orderCancel")
+    R orderCancel(@RequestBody ComShopOrderQueryDTO comShopOrderQueryDTO);
+
+    /**
+     * 根据订单id删除订单
+     *
+     * @param orderId
+     *            订单id
+     * @return 删除结果
+     */
+    @PostMapping("/shop/orderDelete")
+    R orderDelete(@RequestParam("orderId") Long orderId);
+
+    /**
+     * 根据订单id确认收货
+     *
+     * @param comShopOrderQueryDTO
+     *            请求参数
+     * @return 确认结果
+     */
+    @PostMapping("/shop/orderConfirm")
+    R orderConfirm(@RequestBody ComShopOrderQueryDTO comShopOrderQueryDTO);
+
+    /**
+     * 统计用户订单数量
+     *
+     * @param userId
+     *            用户id
+     * @return 统计结果
+     */
+    @PostMapping("/shop/orderStatistics")
+    R orderStatistics(@RequestParam("userId") Long userId);
+
+    /**
+     * 商家资金的订单详情
+     *
+     * @param id
+     * @return
+     */
+    @GetMapping("/shop/capitalDetailByStore")
+    R capitalDetailByStore(@RequestParam("id") Long id);
+
+    /**
+     * 订单发货
+     *
+     * @param orderShipDTO
+     *            商城订单发货信息
+     * @return 发货结果
+     */
+    @PostMapping("/shop/shipOrder")
+    R shipOrder(@RequestBody ComShopOrderShipDTO orderShipDTO);
+
+    /**
+     * 订单配送
+     *
+     * @param deliverDTO
+     *            订单信息
+     * @return 配送结果
+     */
+    @PostMapping("/shop/deliverOrder")
+    R deliverOrder(@RequestBody ComShopOrderDeliverDTO deliverDTO);
+
+    /**
+     * 订单完成配送
+     *
+     * @param deliverDTO
+     *            订单信息
+     * @return 配送完成结果
+     */
+    @PostMapping("/shop/finishDeliverOrder")
+    R finishDeliverOrder(@RequestBody ComShopOrderDeliverDTO deliverDTO);
+
+    /**
+     * 获取用户商户详情
+     *
+     * @param userId
+     *            用户ID
+     */
+    @GetMapping("/shop/getUserStoreInfo")
+    R getUserStoreInfo(@RequestParam("userId") Long userId);
+
+    /**
+     * 获取用户商户详情
+     *
+     * @param account
+     *            用户账号
+     */
+    @GetMapping("/shop/getUserStoreInfoByAccount")
+    R<ShopStoreVO> getUserStoreInfoByAccount(@RequestParam("account") String account);
+
+    /**
+     * 订单导出信息
+     *
+     * @param comShopOrderExportDTO
+     *            订单导出信息
+     * @return 订单导出信息
+     */
+    @PostMapping("/shop/shopOrderExportData")
+    R shopOrderExportData(@RequestBody ComShopOrderExportDTO comShopOrderExportDTO);
+
+    /**
+     * 资金管理导出信息
+     *
+     * @param comShopFundsExportDTO
+     *            资金管理导出信息
+     * @return 资金管理导出信息
+     */
+    @PostMapping("/shop/shopOrderFundsExportData")
+    R shopOrderFundsExportData(@RequestBody ComShopFundsExportDTO comShopFundsExportDTO);
+
+    /**
+     * 店铺资金统计信息
+     *
+     * @param userId
+     *            用户ID
+     * @return 店铺资金统计信息
+     */
+    @GetMapping("/shop/getFundsStat")
+    R getFundsStat(@RequestParam("userId") Long userId);
+
+    /**
+     * 店铺资金统计信息
+     *
+     * @param pageComShopFundsSearchDTO
+     *            店铺资金
+     * @return 店铺资金统计信息
+     */
+    @PostMapping("/shop/pageShopFunds")
+    R pageShopFunds(@RequestBody PageComShopFundsSearchDTO pageComShopFundsSearchDTO);
+
+    /**
+     * 微信支付订单回调
+     *
+     * @param wxPayNotifyOrderDTO
+     *            订单支付回调参数
+     */
+    @PostMapping("/shop/wxOrderPayNotify")
+    void wxOrderPayNotify(@RequestBody WxPayNotifyOrderDTO wxPayNotifyOrderDTO);
+
+    /**
+     * 点击去支付订单
+     *
+     * @param orderPayDTO
+     *            请求参数
+     * @return 支付对象
+     */
+    @PostMapping("/shop/wxPay")
+    R wxPay(@RequestBody OrderPayDTO orderPayDTO);
+
+    /**
+     * 编辑实有人口
+     *
+     * @param populationEditDTO
+     * @return
+     */
+    @PostMapping("/common/data/population/edit")
+    R editPopulation(@RequestBody ComMngPopulationEditDTO populationEditDTO,
+                     @RequestParam("communityId") Long communityId);
+
+    /**
+     * 微心愿删除
+     *
+     * @param id
+     *            微心愿id
+     */
+    @PostMapping("deletemicrowish")
+    R deletemicrowish(@RequestParam("id") Long id);
+
+    /**
+     * 基础数据》特殊群体》分页查询
+     *
+     * @param pageInputUserDTO
+     * @return
+     */
+    @PostMapping("common/data/special/page")
+    R specialInputUser(@RequestBody PageInputUserDTO pageInputUserDTO);
+
+    /**
+     * 删除特殊群体人员
+     *
+     * @param id
+     *            特殊群体id
+     * @return 删除结果
+     */
+    @PostMapping("common/data/special/delete")
+    R deleteSpecialInputUser(@RequestParam(value = "id") Long id,@RequestParam("communityId") Long communityId);
+
+    /**
+     * 办事指南_新增
+     *
+     * @param workGuideVO
+     *            新增信息
+     * @return 新增结果
+     */
+    @PostMapping("/addworkguide")
+    R addWorkGuide(@RequestBody ComActWorkGuideVO workGuideVO, @RequestParam("userId") Long userId);
+
+    /**
+     * 办事指南_编辑
+     *
+     * @param workGuideVO
+     * @return 编辑结果
+     */
+    @PostMapping("/editworkguide")
+    R editWorkGuide(@RequestBody ComActWorkGuideVO workGuideVO, @RequestParam("userId") Long userId);
+
+    /**
+     * 办事指南_详情
+     *
+     * @param workGuideId
+     * @return 详情
+     */
+    @GetMapping("/detailworkguide")
+    R detailWorkGuide(@RequestParam("workGuideId") Long workGuideId, @RequestParam("communityId") Long communityId);
+
+    /**
+     * 办事指南_分页
+     *
+     * @param pageActWorkGuideDTO
+     *            查询参数
+     * @return 分页集合
+     */
+    @PostMapping("/pageworkguide")
+    R pageWorkGuide(@RequestBody PageActWorkGuideDTO pageActWorkGuideDTO);
+
+    /**
+     * 办事指南_删除
+     *
+     * @param workGuideId
+     *            办事指南id
+     * @return 删除结果
+     */
+    @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(@RequestParam("areaCode")String areaCode);
+
+    /**
+     * 分页查询邻里圈
+     *
+     * @param neighborCircleAppDTO
+     *            请求参数
+     * @return 邻里圈列表
+     */
+    @PostMapping("/neighborWest/pageNeighborByApp")
+    R pageNeighborByApp(@RequestBody ComActNeighborCircleAppDTO neighborCircleAppDTO);
+
+    /**
+     * 用户发布邻里圈审核
+     *
+     * @param addNeighborCircleAppDTO
+     *            邻里圈请求参数
+     * @return 发布结果
+     */
+    @PostMapping("/neighborWest/addNeighborByApp")
+    R addNeighborByApp(@RequestBody AddComActNeighborCircleAppDTO addNeighborCircleAppDTO);
+
+    /**
+     * 用户查看邻里圈详情
+     *
+     * @param neighborCircleAppDTO
+     *            请求参数
+     * @return 邻里圈详情
+     */
+    @PostMapping("/neighborWest/neighborDetailByApp")
+    R neighborDetailByApp(@RequestBody ComActNeighborCircleDetailAppDTO neighborCircleAppDTO);
+
+    /**
+     * 管理后台查询邻里圈列表
+     *
+     * @param comActNeighborCircleAdminDTO
+     *            请求参数
+     * @return 邻里圈列表
+     */
+    @PostMapping("/neighborWest/pageNeighborByAdmin")
+    R pageNeighborByAdmin(@RequestBody ComActNeighborCircleAdminDTO comActNeighborCircleAdminDTO);
+
+    /**
+     * 后台修改邻里圈
+     *
+     * @param editNeighborCircleAdminVO
+     *            请求参数
+     */
+    @PostMapping("/neighborWest/changeStatusByAdmin")
+    R changeStatusByAdmin(@RequestBody EditNeighborCircleAdminVO editNeighborCircleAdminVO);
+
+    /**
+     * 邻里圈_后台删除
+     *
+     * @param id
+     *            邻里圈id
+     * @return 邻里圈列表
+     */
+    @PostMapping("/neighborWest/deleteByAdmin")
+    R deleteByAdmin(@RequestParam("id") Long id);
+
+    /**
+     * 查看邻里圈基础_详情
+     *
+     * @param id
+     *            邻里圈id
+     * @return 邻里圈列表
+     */
+    @GetMapping("/neighborWest/detailNeighborByAdmin")
+    R detailNeighborByAdmin(@RequestParam("id") Long id);
+
+    /**
+     * 邻里圈的所有评论_分页
+     *
+     * @param dto
+     *            请求参数
+     * @return 评论列表
+     */
+    @PostMapping("/neighborWest/detailNeighborAllCommentByAdmin")
+    R detailNeighborAllCommentByAdmin(@RequestBody DetailNeighborAllCommentByAdminDTO dto);
+
+    /**
+     * 评论的状态_修改
+     *
+     * @param vo
+     *            请求参数
+     */
+    @PostMapping("/neighborWest/changeCommentStatusByAdmin")
+    R changeCommentStatusByAdmin(@RequestBody ChangeCommentStatusByAdminVO vo);
+
+    /**
+     * 邻里圈评论_详情
+     *
+     * @param id
+     *            评论id
+     */
+    @GetMapping("/neighborWest/detailNeighborCommentByAdmin")
+    R detailNeighborCommentByAdmin(@RequestParam("id") Long id);
+
+    /**
+     * 用户查询邻里圈列表
+     *
+     * @param neighborCircleAppDTO
+     *            请求参数
+     * @return 邻里圈列表
+     */
+    @PostMapping("/neighborWest/neighborExamineByApp")
+    R neighborExamineByApp(@RequestBody ComActNeighborCircleAppDTO neighborCircleAppDTO);
+
+    /**
+     * 邻里圈点赞
+     *
+     * @param fabulousAppDTO
+     *            请求参数
+     * @return 点赞结果
+     */
+    @PostMapping("/neighborWest/neighborFabulousByApp")
+    R neighborFabulousByApp(@RequestBody ComActNeighborFabulousAppDTO fabulousAppDTO);
+
+    /**
+     * 邻里圈转发
+     *
+     * @param forwardAppDTO
+     *            请求参数
+     * @return 转发结果
+     */
+    @PostMapping("/neighborWest/neighborForwardByApp")
+    R neighborForwardByApp(@RequestBody ComActNeighborForwardAppDTO forwardAppDTO);
+
+    /**
+     * 邻里圈评论
+     *
+     * @param commentAppDTO
+     *            请求参数
+     * @return 评论结果
+     */
+    @PostMapping("/neighborWest/neighborCommentByApp")
+    R neighborCommentByApp(@RequestBody ComActNeighborCommentAppDTO commentAppDTO);
+
+    /**
+     * 邻里圈回复
+     *
+     * @param replyAppDTO
+     *            请求参数
+     * @return 回复结果
+     */
+    @PostMapping("/neighborWest/neighborReplyByApp")
+    R neighborReplyByApp(@RequestBody ComActNeighborReplyAppDTO replyAppDTO);
+
+    /**
+     * 定时任务更新邻里圈近3天评论数/点赞数/浏览量
+     *
+     * @return 执行结果
+     */
+    @PostMapping("/neighborWest/timeTaskCircleFlow")
+    R timedTaskNeighborCircleRecord();
+
+    /**
+     * 邻里圈评论回复_分页
+     *
+     * @param dto
+     *            参数
+     */
+    @PostMapping("/neighborWest/detailNeighborCommentAllReply")
+    R detailNeighborCommentAllReply(@RequestBody DetailNeighborCommentReplyByAdminDTO dto);
+
+    /**
+     * 邻里圈评论回复_基本详情
+     *
+     * @param id
+     *            参数
+     */
+    @GetMapping("/neighborWest/detailNeighborCommentReply")
+    R detailNeighborCommentReply(@RequestParam("id") Long id);
+
+    /**
+     * 评论回复状态_修改
+     *
+     * @param changeStatusReplyVO
+     *            参数
+     */
+    @PostMapping("/neighborWest/changeCommentReplyStatusByAdmin")
+    R changeCommentReplyStatusByAdmin(@RequestBody ChangeCommentReplyStatusByAdminVO changeStatusReplyVO);
+
+    /**
+     * 邻里圈取消点赞
+     *
+     * @param fabulousAppDTO
+     *            请求参数
+     * @return 取消点赞结果
+     */
+    @PostMapping("/neighborWest/neighborFabulousCancelByApp")
+    R neighborFabulousCancelByApp(@RequestBody ComActNeighborFabulousAppDTO fabulousAppDTO);
+
+    /**
+     * 添加邻里圈浏览记录
+     *
+     * @param addBrowseAppDTO
+     *            请求参数
+     * @return 返回参数
+     */
+    @PostMapping("/neighborWest/neighborAddBrowseByApp")
+    R neighborAddBrowseByApp(@RequestBody ComActNeighborAddBrowseAppDTO addBrowseAppDTO);
+
+    /**
+     * 邻里圈_添加
+     *
+     * @param addNeighborCircleAdminVO
+     *            参数
+     */
+    @PostMapping("/neighborWest/addNeighborByAdmin")
+    R addNeighborByAdmin(@RequestBody AddNeighborCircleAdminVO addNeighborCircleAdminVO);
+
+    /**
+     * 分页查询评论下所有回复
+     *
+     * @param commentReplyAppDTO
+     *            请求参数
+     * @return 回复列表
+     */
+    @PostMapping("/neighborWest/neighborCommentReplyByApp")
+    R neighborCommentReplyByApp(@RequestBody ComActNeighborCommentReplyAppDTO commentReplyAppDTO);
+
+    /**
+     * 实有房屋_编辑
+     *
+     * @param villageId
+     *            实有房屋id
+     * @param comMngVillageVO
+     *            请求参数
+     * @return
+     */
+    @PostMapping("/editvillage/{villageId}")
+    R editvillage(@PathVariable("villageId") Long villageId, @RequestBody ComMngVillageVO comMngVillageVO);
+
+    /**
+     * 商城系统配置
+     *
+     * @param comShopSysConfDTO
+     * @return
+     */
+    @PostMapping("/shop/conf/edit")
+    R editShopSysConf(@RequestBody ComShopSysConfDTO comShopSysConfDTO);
+
+    /**
+     * 商城系统配置查询
+     *
+     * @param pageComShopSysConfDTO
+     * @return
+     */
+    @PostMapping("/shop/conf/get")
+    R pageShopSysConf(@RequestBody PageComShopSysConfDTO pageComShopSysConfDTO);
+
+    /**
+     * 编辑实有人口_电子档案
+     *
+     * @param userElectronicFileVO
+     * @return
+     */
+    @PostMapping("/common/data/population/edit/electronicArchives")
+    R editUserElectronicFile(@RequestBody UserElectronicFileVO userElectronicFileVO);
+
+    /**
+     * 实有人口统计
+     *
+     * @param communityId
+     *            社区id
+     * @return 统计结果
+     */
+    @PostMapping("/common/data/population/statistics")
+    R getPopulationTotalByAdmin(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 查询房屋级联菜单
+     *
+     * @param cascadeHouseDTO
+     *            请求参数
+     * @return 菜单列表
+     */
+    @PostMapping("/common/data/population/cascade/list")
+    R getCascadeHouseAddress(@RequestBody CascadeHouseDTO cascadeHouseDTO);
+
+    /**
+     * 分页查询房屋列表
+     *
+     * @param populationHouseAdminDTO
+     *            请求参数
+     * @return 房屋列表
+     */
+    @PostMapping("/common/data/population/page/house")
+    R pageHouse(@RequestBody ComMngPopulationHouseAdminDTO populationHouseAdminDTO);
+
+    /**
+     * 根据id查询实有房屋信息
+     *
+     * @param houseId
+     *            房屋id
+     * @return 房屋信息
+     */
+    @PostMapping("/common/data/population/house/detail")
+    R getHouseDetail(@RequestParam(value = "houseId") Long houseId);
+
+    /**
+     * 编辑实有房屋信息
+     *
+     * @param houseEditAdminDTO
+     *            请求参数
+     * @return 编辑结果
+     */
+    @PostMapping("/common/data/population/house/edit")
+    R editHouse(@RequestBody ComMngPopulationHouseEditAdminDTO houseEditAdminDTO);
+
+    /**
+     * 根据房屋id列表删除房屋信息
+     *
+     * @param Ids
+     *            请求参数
+     * @return 删除结果
+     */
+    @PostMapping("/common/data/population/house/delete")
+    R deleteHouses(@RequestBody List<Long> Ids);
+
+    /**
+     * 新增实有房屋信息
+     *
+     * @param houseEditAdminDTO
+     *            请求参数
+     * @return 编辑结果
+     */
+    @PostMapping("/common/data/population/house/insert")
+    R insertHouse(@RequestBody ComMngPopulationHouseInsertAdminDTO houseEditAdminDTO);
+
+    /**
+     * 实有房屋统计
+     *
+     * @param communityId
+     *            社区id
+     * @return 统计结果
+     */
+    @PostMapping("/common/data/population/house/statistics")
+    R getHouseTotalByAdmin(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 根据社区id查询社区所有省市区
+     *
+     * @param communityId
+     *            社区id
+     * @return 社区所在省市区
+     */
+    @PostMapping("/common/data/village/getRegion")
+    R getRegion(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 统计社区内小区数量
+     *
+     * @param communityId
+     *            社区id
+     * @return 统计小区数量
+     */
+    @PostMapping("/common/data/village/statistics")
+    R villageStatistics(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 小区详情
+     *
+     * @param villageId
+     *            小区id
+     * @return 小区详情
+     */
+    @PostMapping("/village/getVillage")
+    R getVillage(@RequestParam("villageId") Long villageId);
+
+    /**
+     * 新增高龄认证
+     *
+     * @param eldersAuthAddDTO
+     * @return 新增结果
+     */
+    @PostMapping("/eldersauth/add")
+    R add(@RequestBody EldersAuthAddDTO eldersAuthAddDTO);
+
+    /**
+     * 修改高龄认证
+     *
+     * @param eldersAuthEditDTO
+     * @return 维护结果
+     */
+    @PostMapping("/eldersauth/edit")
+    R edit(@RequestBody EldersAuthEditDTO eldersAuthEditDTO);
+
+    /**
+     * 分页查找高龄认证
+     *
+     * @param pageEldersAuthDTO
+     * @return 维护结果
+     */
+    @PostMapping("/eldersauth/page")
+    R query(@RequestBody PageEldersAuthDTO pageEldersAuthDTO);
+
+    /**
+     * 删除高龄认证
+     *
+     * @param eldersAuthDeleteDTO
+     * @return 平台用户信息
+     */
+    @PostMapping("/eldersauth/delete")
+    R delete(@RequestBody EldersAuthDeleteDTO eldersAuthDeleteDTO);
+
+    /**
+     * 查询高龄认证详细信息
+     *
+     * @param id
+     *            高龄认证 id
+     * @return 查找结果
+     */
+    @PostMapping("/eldersauth/{id}")
+    R<EldersAuthDetailsVO> eldersAuthDetails(@PathVariable("id") Long id);
+
+    /**
+     * 获取用户家庭成员
+     *
+     * @param userId
+     *            用户ID
+     * @return
+     */
+    @PostMapping("/eldersauth/getMyfamilyElders/{userId}")
+    R getMyfamilyElders(@PathVariable("userId") Long userId);
+
+    /**
+     * 查询导出高龄老人
+     *
+     * @param pageEldersAuthDTO
+     * @return
+     */
+    @PostMapping("/eldersauth/eldersAuthQuery")
+    R eldersAuthQuery(@RequestBody PageEldersAuthDTO pageEldersAuthDTO);
+
+    /**
+     * 通过家庭成员ID添加
+     *
+     * @param eldersAuthAddByFamilyDTO
+     *            添加信息
+     * @return
+     */
+    @PostMapping("/eldersauth/addByFamilyUser")
+    R addByFamilyUser(@RequestBody EldersAuthAddByFamilyDTO eldersAuthAddByFamilyDTO);
+
+    /**
+     * 添加高龄认证反馈
+     *
+     * @param eldersAuthFeedbackAddDTO
+     * @return
+     */
+    @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);
+
+    /**
+     * 导出高龄认证记录 exportElderAuthRecords  导出高龄认证记录
+     * @param    pageElderAuthRecordsDTO   查询参数
+     * @return    R  查询结果
+     * @date 2021/9/02 11:03
+     */
+    @PostMapping("/elders/authRecords/export")
+    R exportElderAuthRecords(@RequestBody PageElderAuthRecordsDTO 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);
+
+    /**
+     * 小程序-查询疫苗分类列表
+     *
+     * @return 疫苗分类列表
+     */
+    @PostMapping("/vaccines/app/list")
+    R getVaccinesListByApp();
+
+    /**
+     * 小程序-疫苗类型对应家庭成员接种列表
+     *
+     * @return 疫苗类型对应家庭成员接种列表
+     */
+    @PostMapping("/vaccines/app/user/list")
+    R getVaccinesUserListByApp(@RequestBody VaccinesEnrollUserByAppDTO enrollUserByAppDTO);
+
+    /**
+     * 小程序-报名疫苗
+     *
+     * @param enrollByAppDTO
+     *            请求参数
+     * @return 报名结果
+     */
+    @PostMapping("/vaccines/app/enroll")
+    R VaccinesEnrollByApp(@RequestBody VaccinesEnrollByAppDTO enrollByAppDTO);
+
+    /**
+     * 小程序-查询用户家庭成员接种记录
+     *
+     * @param userId
+     *            用户id
+     * @return 用户家庭成员接种记录
+     */
+    @PostMapping("/vaccines/app/user/inoculation/list")
+    R getVaccinesUserInoculationListByApp(@RequestParam("userId") Long userId);
+
+    /**
+     * 后台管理-查询疫苗分类列表
+     *
+     * @param vaccinesByAdminDTO
+     *            请求参数
+     * @return 疫苗分类列表
+     */
+    @PostMapping("/vaccines/admin/list")
+    R getVaccinesListByAdmin(@RequestBody VaccinesByAdminDTO vaccinesByAdminDTO);
+
+    /**
+     * 修改疫苗分类信息
+     *
+     * @param vaccinesByAdminDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    @PostMapping("/vaccines/admin/edit")
+    R editVaccinesByAdmin(@RequestBody VaccinesByAdminDTO vaccinesByAdminDTO);
+
+    /**
+     * 新增疫苗分类信息
+     *
+     * @param vaccinesByAdminDTO
+     *            请求参数
+     * @return 新增结果
+     */
+    @PostMapping("/vaccines/admin/add")
+    R addVaccinesByAdmin(@RequestBody VaccinesByAdminDTO vaccinesByAdminDTO);
+
+    /**
+     * 查询疫苗登记列表
+     *
+     * @param vaccinesByAdminDTO
+     *            请求参数
+     * @return 登记列表
+     */
+    @PostMapping("/vaccines/admin/enroll/list")
+    R getVaccinesEnrollListByAdmin(@RequestBody VaccinesEnrollByAdminDTO vaccinesByAdminDTO);
+
+    /**
+     * 删除疫苗分类信息
+     *
+     * @param id
+     *            疫苗分类id
+     * @return 删除结果
+     */
+    @PostMapping("/vaccines/admin/enroll/delete")
+    R deleteVaccinesByAdmin(@RequestParam("id") Long id);
+
+    /**
+     * 根据条件导出登记列表
+     *
+     * @param vaccinesByAdminDTO
+     *            请求参数
+     * @return 登记列表
+     */
+    @PostMapping("/vaccines/admin/enroll/export")
+    R exportVaccinesEnrollListByAdmin(@RequestBody VaccinesEnrollByAdminDTO vaccinesByAdminDTO);
+
+    /**
+     * 查询接种记录列表
+     *
+     * @param inoculationByAdminDTO
+     *            请求参数
+     * @return 接种记录列表
+     */
+    @PostMapping("/vaccines/admin/inoculation/list")
+    R getVaccinesInoculationListByAdmin(@RequestBody VaccinesInoculationByAdminDTO inoculationByAdminDTO);
+
+    /**
+     * 接种记录信息导出
+     *
+     * @param inoculationByAdminDTO
+     *            请求参数
+     * @return 导出结果
+     */
+    @PostMapping("/vaccines/admin/inoculation/export")
+    R exportVaccinesInoculationListByAdmin(@RequestBody VaccinesInoculationByAdminDTO inoculationByAdminDTO);
+
+    /**
+     * 查询疫苗分类列表
+     *
+     * @return 疫苗分类列表
+     */
+    @PostMapping("/vaccines/admin/enroll/type/list")
+    R getEnrollTypeListByAdmin();
+
+    /**
+     * 查询老龄认证记录
+     *
+     * @param pageComEldersRecordsDTO
+     * @return
+     */
+    @PostMapping("/elders/records")
+    R queryEldersRecord(@RequestBody PageComEldersRecordsDTO pageComEldersRecordsDTO);
+
+    /**
+     * 查询老龄认证记录详细
+     *
+     * @param id
+     * @return
+     */
+    @PostMapping("/elders/records/deatils")
+    R<ComEldersAuthElderlyDetailsVO> comEldersAuthElderlyDetails(@RequestParam("id") Long id);
+
+    /**
+     * 查询老龄认证社区认证方式
+     *
+     * @param eldersAuthTypeQueryDTO
+     * @return
+     */
+    @PostMapping("/elders/authType")
+    R communityElderAuthType(@RequestBody EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO);
+
+    /**
+     * 分页查询高领老人列表
+     *
+     * @param pageEldersAuthElderlyDTO
+     * @return
+     */
+    @PostMapping("/eldersauthelderly/page")
+    R pageQueryEldersAuthElderly(@RequestBody PageEldersAuthElderlyDTO pageEldersAuthElderlyDTO);
+
+    /**
+     * 批量保存高龄老人
+     *
+     * @param newVoList
+     * @param communityId
+     * @return
+     */
+    @PostMapping("/eldersauthelderly/batchSave")
+    R listSaveEldersAuthElderlyExcelVO(@RequestBody List<EldersAuthElderlyExcelVO> newVoList,
+                                       @RequestParam("communityId") Long communityId, @RequestParam("createBy") Long createBy);
+
+    /**
+     * 批量保存楼栋
+     *
+     * @param newVoList
+     * @param communityId
+     * @return
+     */
+    @PostMapping("/building/batchSave")
+    R listSaveBuildingExcelVO(@RequestBody List<ComMngBuildingExcelVO> newVoList,
+                              @RequestParam("communityId") Long communityId);
+
+    /**
+     * 插入字典
+     *
+     * @param dictionaryVO
+     *            字典数据
+     * @return R 是否保存成功
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @PostMapping("/dictionary/insertDiction")
+    R insertDiction(@RequestBody DictionaryVO dictionaryVO);
+
+    /**
+     * 插入字典项
+     *
+     * @param dictionaryVO
+     *            字典数据
+     * @return R 是否保存成功
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @PostMapping("/dictionary/insertDictionItem")
+    R insertDictionItem(@RequestBody BcDictionaryVO dictionaryVO);
+
+    /**
+     * 根据字典key查询字典项
+     *
+     * @param key
+     * @return
+     */
+    @GetMapping("/dictionary/listDictionaryByKey")
+    R<List<BcDictionaryVO>> listDictionaryByKey(@RequestParam("key") String key);
+
+    /**
+     * description 根据字典code查询自典项
+     *
+     * @param code
+     *            入参参数
+     * @return BcDictionaryVO 字典
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @GetMapping("/dictionary/getByCode")
+    BcDictionaryItemVO getByCode(@RequestParam("dictId") String dictId, @RequestParam("code") String code);
+
+    /**
+     * 查看高龄老人详情
+     *
+     * @param id
+     * @return
+     */
+    @GetMapping("/eldersauthelderly/{id}")
+    R getEldersAuthElderlyById(@PathVariable("id") Long id);
+
+    /**
+     * 修改高龄老人信息
+     *
+     * @param eldersAuthElderlyDTO
+     * @return
+     */
+    @PostMapping("/eldersauthelderly/update")
+    R updateEldersAuthElderly(@RequestBody EldersAuthElderlyDTO eldersAuthElderlyDTO);
+
+    /**
+     * 删除高领老人
+     *
+     * @param id
+     * @return
+     */
+    @PostMapping("/eldersauthelderly/delete")
+    R deleteEldersAuthElderly(@RequestParam("id") Long id);
+
+    /**
+     * 通过老人用户id获取老人信息
+     *
+     * @param authUserId
+     *            老人用户id
+     * @return 老人信息
+     */
+    @PostMapping("/elders/getAuth")
+    R getEldersAuthUserByApp(@RequestParam("authUserId") Long authUserId);
+
+    /**
+     * 人脸核验新增高龄认证记录
+     *
+     * @param authGetResultDTO
+     *            请求参数
+     * @return 新增结果
+     */
+    @PostMapping("/elders/add/auth")
+    R addEldersAuthByApp(@RequestBody ComEldersAuthGetResultDTO authGetResultDTO);
+
+    /**
+     * 高龄认证分页接口
+     *
+     * @param authPageDTO
+     *            请求参数
+     * @return 查询结果
+     */
+    @PostMapping("/elders/page/auth")
+    R pageEldersByApp(@RequestBody ComEldersAuthPageDTO authPageDTO);
+
+    /**
+     * 添加高龄老人接口
+     *
+     * @param authUserAddAppDTO
+     *            请求参数
+     * @return 添加结果
+     */
+    @PostMapping("/elders/add")
+    R addEldersByApp(@RequestBody ComEldersAuthUserAddAppDTO authUserAddAppDTO);
+
+    /**
+     * 修改高龄老人接口
+     *
+     * @param authUserAddAppDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    @PostMapping("/elders/edit")
+    R editEldersByApp(@RequestBody ComEldersAuthUserAddAppDTO authUserAddAppDTO);
+
+    /**
+     * 分页查询生存认证记录
+     *
+     * @param pageEldersAuthElderlyDTO
+     * @return
+     */
+    @PostMapping("/elders/records/page")
+    R pageQueryEldersAuthRecord(@RequestBody PageEldersAuthRecordDTO pageEldersAuthElderlyDTO);
+
+    /**
+     * description 批量保存重点人群人员信息
+     *
+     * @param list
+     *            重点人群信息
+     * @return R 保存结果
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @PostMapping("/key_person/batch/save")
+    R saveBatchKeyPerson(@RequestBody List<KeyPersonInfoDTO> list);
+
+    @GetMapping("/screen/population/statistic")
+    R statistic(@RequestParam("communityId") Long communityId);
+
+    /**
+     * @param communityId
+     * @param type
+     * @return
+     */
+    @PostMapping("/elders/setCommunityAuthType")
+    R setCommunityAuthType(@RequestParam("communityId") Long communityId, @RequestParam("type") Integer type);
+
+    @PostMapping("/elders/getAuthHistoryList")
+    R getAuthHistoryList(@RequestBody PageEldersAuthHistoryDTO pageEldersAuthElderlyDTO);
+
+    @PostMapping("/elders/getAuthHistoryExport")
+    R getAuthHistoryExport(@RequestBody PageEldersAuthHistoryDTO pageEldersAuthElderlyDTO);
+
+    @GetMapping("/screen/work/neighborCircle")
+    R statisticNeighborCircle(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 党员党支部统计信息
+     *
+     * @return
+     */
+    @PostMapping("/bigscreen/party/orgmembers")
+    R bigscreenPartyOrgmembers(@RequestBody PageBigScreenStatisticPartyOrg pageBigScreenStatisticPartyOrg);
+
+    /**
+     * 党员年龄占比、男女占比
+     *
+     * @return
+     */
+    @PostMapping("/bigscreen/party/ageGender")
+    R<BigScreenStatisticAgeGender>
+    ageGender(@RequestBody BigScreenStatisticAgeGenderDTO bigScreenStatisticAgeGenderDTO);
+
+    /**
+     * 党建数据概览
+     *
+     * @return
+     */
+    @PostMapping("/bigscreen/party/partybuild/{communityId}")
+    R<BigScreenStatisticPartyBuild> bigscreenPartybuild(@PathVariable("communityId") Long communityId);
+
+    /**
+     * 党员活动参加用户排行榜-TOP3
+     *
+     * @return
+     */
+    @PostMapping("/bigscreen/party/activitytopuser/{communityId}")
+    R<List<PartyBuildingMemberVO>> bigscreenPartyactivitytopuser(@PathVariable("communityId") Long communityId);
+
+    /**
+     * 党员活动
+     *
+     * @return
+     */
+    @PostMapping("/bigscreen/party/bigscreenPartyactivity")
+    R<List<BigScreenStatisticPartyActivity>>
+    bigscreenPartyactivity(BigScreenStatisticPartyActivityDTO bigScreenStatisticPartyActivityDTO);
+
+    /**
+     * 首页大屏统计接口
+     *
+     * @param communityId
+     *            社区id
+     * @return 统计结果
+     */
+    @GetMapping("/screen/getScreenIndex")
+    R getScreenIndex(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 事件大屏统计接口
+     *
+     * @param screenEventDTO
+     *            请求参数
+     * @return 统计结果
+     */
+    @PostMapping("/screen/getScreenEvent")
+    R getScreenEvent(@RequestBody BigScreenEventDTO screenEventDTO);
+
+    /**
+     * 民生大屏统计接口
+     *
+     * @param communityId
+     *            社区id
+     * @return 统计结果
+     */
+    @GetMapping("/screen/getScreenCivil")
+    R getScreenCivil(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 大屏统计邻里圈
+     */
+    @GetMapping("/screen/work/wish")
+    R wish(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 大屏统计社区-活动
+     *
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/work/activity")
+    R activity(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 大屏统计议事投票
+     *
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/work/discuss")
+    R discuss(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 大屏统计党建工作
+     *
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/work/pbWork")
+    R pbWork(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 大屏统计随手拍
+     *
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/work/easyPhoto")
+    R easyPhoto(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 大屏统计工作情况
+     *
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/work/workCount")
+    R workCount(@RequestParam("communityId") Long communityId);
+
+    /**
+     * description 批量保存残疾人人员信息
+     *
+     * @param list
+     *            疾人信息列表
+     * @return R 保存结果
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @PostMapping("/disable_person/batch/save")
+    R saveBatchDisabledPersons(@RequestBody List<DisabledPersonsDTO> list);
+
+    /**
+     * 获取社区网格
+     *
+     * @param communityId
+     *            社区id
+     * @return 网格数据
+     */
+    @GetMapping("/screen/getScreenGirds")
+    R getScreenGirds(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 事件大屏查询事件详情
+     *
+     * @param eventDetailDTO
+     *            请求参数
+     * @return 事件详情
+     */
+    @PostMapping("/screen/getScreenEventDetail")
+    R getScreenEventDetail(@RequestBody BigScreenEventDetailDTO eventDetailDTO);
+
+    /**
+     * 工作大屏-议事投票列表
+     *
+     * @param discussListDTO
+     *            请求参数
+     * @return 议事投票列表
+     */
+    @PostMapping("/screen/work/getScreenDiscussList")
+    R getScreenDiscussList(@RequestBody ScreenDiscussListDTO discussListDTO);
+
+    /**
+     * 工作大屏-社区活动列表
+     *
+     * @param actActivityListDTO
+     *            请求参数
+     * @return 活动列表
+     */
+    @PostMapping("/screen/work/getScreenActActivityList")
+    R getScreenActActivityList(@RequestBody ScreenActActivityListDTO actActivityListDTO);
+
+    /**
+     * 工作大屏-社区活动报名人员列表
+     *
+     * @param activityPeopleListDTO
+     *            请求参数
+     * @return 社区活动报名人员列表
+     */
+    @PostMapping("/screen/work/getActActivityPeopleList")
+    R getActActivityPeopleList(@RequestBody ScreenActActivityPeopleListDTO activityPeopleListDTO);
+
+    /**
+     * 工作大屏-微心愿列表
+     *
+     * @param microListDTO
+     *            请求参数
+     * @return 微心愿列表
+     */
+    @PostMapping("/screen/work/getScreenMicroList")
+    R getScreenMicroList(@RequestBody ScreenMicroListDTO microListDTO);
+
+    /**
+     * 获取系统参数接口
+     *
+     * @param code
+     *            参数code
+     * @return 系统参数
+     */
+    @GetMapping("/sys/conf/get")
+    R getConf(@RequestParam("code") String code);
+
+    /**
+     * 获取人口数据信息
+     *
+     * @param populationListDTO
+     *            请求参数
+     * @return 人口数据
+     */
+    @PostMapping("/population/list/app")
+    R getPopulationListByApp(@RequestBody PagePopulationListDTO populationListDTO);
+
+    /**
+     * 根据人口id获取人口详情
+     *
+     * @param populationId
+     *            人口id
+     * @return 人口详情
+     */
+    @GetMapping("/population/detail/app")
+    R getPopulationDetailByApp(@RequestParam("populationId") Long populationId);
+
+    /**
+     * 修复人口加密问题
+     *
+     * @return 修复结果
+     */
+    @GetMapping("/population/repair")
+    R getPopulationRepairByApp();
+
+    /**
+     * 工作大屏-社区动态模块数据统计
+     *
+     * @param communityId
+     *            社区id
+     * @return 社区动态数据统计
+     */
+    @GetMapping("/screen/work/dynamic")
+    R dynamicWork(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 查询用户钱包信息
+     *
+     * @param walletDetailDTO
+     *            请求参数
+     * @return 用户钱包信息
+     */
+    @PostMapping("/wallet/get/my")
+    R getUserWalletDetail(@RequestBody ComActWalletDetailDTO walletDetailDTO);
+
+    /**
+     * 查询用户收支记录列表
+     *
+     * @param walletTradeDTO
+     *            请求参数
+     * @return 收支记录
+     */
+    @PostMapping("/wallet/get/trade")
+    R getUserWalletTrade(@RequestBody PageComActWalletTradeDTO walletTradeDTO);
+
+    /**
+     * 查询用户绑定的社区收益排行榜
+     *
+     * @param walletTradeDTO
+     *            请求参数
+     * @return 社区收益排行榜
+     */
+    @PostMapping("/wallet/get/ranking")
+    R getWalletRanking(@RequestBody PageComActWalletTradeDTO walletTradeDTO);
+
+    /**
+     * 综治后台-居民列表
+     *
+     * @param populationListDTO
+     *            请求参数
+     * @return 居民列表
+     */
+    @PostMapping("/population/grid/list")
+    R getGridPopulationList(@RequestBody ComMngPopulationListDTO populationListDTO);
+
+    /**
+     * 综治后台-删除居民
+     *
+     * @param ids
+     *            居民id集合
+     * @return 删除结果
+     */
+    @PostMapping("/population/grid/del")
+    R delGridPopulation(@RequestBody List<Long> ids);
+
+    /**
+     * 综治后台-居民详情
+     *
+     * @param populationId
+     *            居民id
+     * @return 居民详情
+     */
+    @GetMapping("/population/grid/get")
+    R getGridPopulationDetail(@RequestParam("populationId") Long populationId);
+
+    /**
+     * 综治app-小区列表
+     *
+     * @param villageListAppDTO
+     *            请求参数
+     * @return 小区列表
+     */
+    @PostMapping("/village/grid/list")
+    R getGridVillageList(@RequestBody ComMngVillageListAppDTO villageListAppDTO);
+
+    /**
+     * 综治app-根据小区id查询小区下楼栋列表
+     *
+     * @param villageId
+     *            小区id
+     * @return 楼栋列表
+     */
+    @PostMapping("/village/grid/building/list")
+    R getGridVillageBuildingList(@RequestParam("villageId") Long villageId);
+
+    /**
+     * 小区楼栋下房屋列表
+     *
+     * @param buildHouseAppDTO
+     *            请求参数
+     * @return 房屋列表
+     */
+    @PostMapping("/village/grid/building/house/list")
+    R getGridVillageBuildingHouseList(@RequestBody PageComMngVillageBuildHouseAppDTO buildHouseAppDTO);
+
+    /**
+     * 小区楼栋下房屋信息
+     *
+     * @param houseId
+     *            房屋id
+     * @return 房屋信息
+     */
+    @PostMapping("/village/grid/building/house/detail")
+    R getGridVillageBuildingHouseDetail(@RequestParam("houseId") Long houseId);
+
+    /**
+     * 查询平台人口列表
+     *
+     * @param populationDTO
+     *            请求参数
+     * @return 人口列表
+     */
+    @PostMapping("/village/grid/building/house/population/list")
+    R getBuildingHousePopulationList(@RequestBody PageComMngPopulationDTO populationDTO);
+
+    /**
+     * 批量向房屋新增人员
+     *
+     * @param housePopulationDTO
+     *            请求参数
+     * @return 添加结果
+     */
+    @PostMapping("/village/grid/building/house/add/population")
+    R addBuildingHousePopulation(@RequestBody AddComMngHousePopulationDTO housePopulationDTO);
+
+    /**
+     * 批量删除房屋内人员
+     *
+     * @param housePopulationDTO
+     *            请求参数
+     * @return 删除结果
+     */
+    @PostMapping("/village/grid/building/house/del/population")
+    R delBuildingHousePopulation(@RequestBody DelComMngHousePopulationDTO housePopulationDTO);
+
+    /**
+     * 综治后台-居民标签栏统计
+     *
+     * @return 居民统计
+     */
+    @GetMapping("/population/grid/statistics")
+    R getGridPopulationStatistics(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 综治后台-居民导出查询居民数据
+     *
+     * @param populationExportDTO
+     *            请求参数
+     * @return 导出结果
+     */
+    @PostMapping("/population/grid/export")
+    R getGridPopulationExport(@RequestBody ComMngPopulationExportDTO populationExportDTO);
+
+    /**
+     * 综治后台-居民管理小区列表
+     *
+     * @param name
+     *            小区名字
+     * @return 小区列表
+     */
+    @GetMapping("/population/village/relation")
+    R relationVillage(@RequestParam("name") String name);
+
+    /**
+     * 综治后台-居民管理-级联列表
+     *
+     * @param subordinateDTO
+     *            请求参数
+     * @return 级联列表
+     */
+    @PostMapping("/population/subordinate")
+    R subordinate(@RequestBody ComMngPopulationSubordinateDTO subordinateDTO);
+
+    /**
+     * 综治后台-居民关联房屋
+     *
+     * @param relationHouseDTO
+     *            请求参数
+     * @return 关联结果
+     */
+    @PostMapping("/population/relation/house")
+    R populationRelationHouse(@RequestBody ComMngPopulationRelationHouseDTO relationHouseDTO);
+
+    /**
+     * 综治后台-批量删除小区
+     *
+     * @param villageIds
+     *            小区id集合
+     * @return 删除结果
+     */
+    @PostMapping("/village/admin/del")
+    R delGridVillage(@RequestBody List<Long> villageIds);
+
+    /**
+     * 综治后台-小区内居民列表
+     *
+     * @param villagePopulationDTO
+     *            请求参数
+     * @return 居民列表
+     */
+    @PostMapping("/village/admin/population/list")
+    R getVillagePopulationAdmin(@RequestBody PageComMngVillagePopulationDTO villagePopulationDTO);
+
+    /**
+     * 综治后台-居民下房屋列表
+     *
+     * @param villagePopulationHouseDTO
+     *            请求参数
+     * @return 房屋列表
+     */
+    @PostMapping("/village/admin/population/house/list")
+    R getVillagePopulationHouseAdmin(@RequestBody PageComMngVillagePopulationHouseDTO villagePopulationHouseDTO);
+
+    /**
+     * 综治后台-小区统计
+     *
+     * @return 小区统计结果
+     */
+    @GetMapping("/village/admin/statistics")
+    R getGridVillageStatistics();
+
+    /**
+     * 综治后台-小区列表导出
+     *
+     * @param villageListAppDTO
+     *            请求参数
+     * @return 小区列表
+     */
+    @PostMapping("/village/admin/export")
+    R getGridVillageListExport(@RequestBody ComMngVillageListExportAdminDTO villageListAppDTO);
+
+    /**
+     * 社区后台-分页查询随手拍活动列表
+     *
+     * @param pageEasyPhotoActivityDTO
+     *            请求参数
+     * @return 随手拍活动列表
+     */
+    @PostMapping("/easy/photo/activity/page")
+    R pageEasyPhotoActivity(@RequestBody PageEasyPhotoActivityDTO pageEasyPhotoActivityDTO);
+
+    /**
+     * 社区后台-添加随手拍活动
+     *
+     * @param addEasyPhotoActivityDTO
+     *            请求参数
+     * @return 添加结果
+     */
+    @PostMapping("/easy/photo/activity/add")
+    R addEasyPhotoActivity(@RequestBody AddEasyPhotoActivityDTO addEasyPhotoActivityDTO);
+
+    /**
+     * 社区后台-编辑随手拍活动
+     *
+     * @param editEasyPhotoActivityDTO
+     *            请求参数
+     * @return 编辑结果
+     */
+    @PostMapping("/easy/photo/activity/edit")
+    R editEasyPhotoActivity(@RequestBody EditEasyPhotoActivityDTO editEasyPhotoActivityDTO);
+
+    /**
+     * 社区后台-取消随手拍活动
+     *
+     * @param id
+     *            随手拍活动id
+     * @return 取消结果
+     */
+    @GetMapping("/easy/photo/activity/cancel")
+    R cancelEasyPhotoActivity(@RequestParam("id") Long id);
+
+    /**
+     * 分页查询随手拍活动下居民参与记录
+     *
+     * @param pageEasyPhotoActivityUserDTO
+     *            请求参数
+     * @return 居民参与记录
+     */
+    @PostMapping("/easy/photo/activity/page/user")
+    R pageEasyPhotoActivityUser(@RequestBody PageEasyPhotoActivityUserDTO pageEasyPhotoActivityUserDTO);
+
+    /**
+     * 随手拍活动定时任务
+     *
+     * @return 执行结果
+     */
+    @PostMapping("timeTaskEasyPhotoActivity")
+    R timedTaskEasyPhotoActivity();
+
+    /**
+     * 分页查询收益结算列表
+     *
+     * @param pageWalletAdminDTO
+     *            请求参数
+     * @return 收益结算列表
+     */
+    @PostMapping("/user/wallet/page")
+    R pageUserWalletAdmin(@RequestBody PageComActWalletAdminDTO pageWalletAdminDTO);
+
+    /**
+     * 用户结算收益
+     *
+     * @param settlementAdminDTO
+     *            请求参数
+     * @return 结算结果
+     */
+    @PostMapping("/user/wallet/settlement")
+    R userWalletSettlementAdmin(@RequestBody ComActWalletSettlementAdminDTO settlementAdminDTO);
+
+    /**
+     * 分页查询交易记录
+     *
+     * @param pageTradeAdminDTO
+     *            请求参数
+     * @return 交易记录列表
+     */
+    @PostMapping("/user/wallet/trade/page")
+    R pageUserWalletTradeAdmin(@RequestBody PageComActWalletTradeAdminDTO pageTradeAdminDTO);
+
+    /**
+     * 查询用户交易记录总额
+     *
+     * @param pageTradeAdminDTO
+     *            请求参数
+     * @return 交易记录总额
+     */
+    @PostMapping("/user/wallet/trade/total")
+    R getTradeUserTotalWalletTradeAdmin(@RequestBody PageComActWalletTradeAdminDTO pageTradeAdminDTO);
+
+    /**
+     * 查询用户导出数据
+     *
+     * @param pageTradeAdminDTO
+     *            请求参数
+     * @return 用户导出数据
+     */
+    @PostMapping("/user/wallet/trade/export")
+    R getTradeUserTotalWalletTradeExportAdmin(@RequestBody PageComActWalletTradeAdminDTO pageTradeAdminDTO);
+
+    /**
+     * 导出奖励台账数据
+     *
+     * @param pageTradeAdminDTO
+     *            请求参数
+     * @return 奖励台账数据
+     */
+    @PostMapping("/user/wallet/trade/reward/export")
+    R getTradeUserTotalJLWalletTradeExportAdmin(@RequestBody PageComActWalletTradeAdminDTO pageTradeAdminDTO);
+
+    /**
+     * 查询社区统计数据
+     *
+     * @param pageTradeAdminDTO
+     *            查询社区统计数据
+     * @return 社区统计数据
+     */
+    @PostMapping("/user/wallet/trade/statistics")
+    R getTradeUserStatisticsAdmin(@RequestBody PageComActWalletTradeAdminDTO pageTradeAdminDTO);
+
+    /**
+     * 社区随手拍列表统计
+     *
+     * @param communityId
+     *            社区id
+     * @return 统计结果
+     */
+    @GetMapping("/easyphoto/statistics")
+    R easyPhotoStatistics(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 分页查询邻里圈话题列表
+     *
+     * @param circleTopicAdminDTO
+     *            请求参数
+     * @return 邻里圈话题列表
+     */
+    @PostMapping("/neighborWest/pageNeighborTopicByAdmin")
+    R pageNeighborTopicByAdmin(@RequestBody ComActNeighborCircleTopicAdminDTO circleTopicAdminDTO);
+
+    /**
+     * 添加邻里圈话题
+     *
+     * @param addCircleTopicAdminDTO
+     *            请求参数
+     * @return 添加结果
+     */
+    @PostMapping("/neighborWest/addNeighborTopicByAdmin")
+    R addNeighborTopicByAdmin(@RequestBody AddNeighborCircleTopicAdminDTO addCircleTopicAdminDTO);
+
+    /**
+     * 编辑邻里圈话题
+     *
+     * @param addCircleTopicAdminDTO
+     *            请求参数
+     * @return 编辑结果
+     */
+    @PostMapping("/neighborWest/editNeighborTopicByAdmin")
+    R editNeighborTopicByAdmin(@RequestBody AddNeighborCircleTopicAdminDTO addCircleTopicAdminDTO);
+
+    /**
+     * 小程序查询邻里圈话题列表
+     *
+     * @param communityId
+     *            社区id
+     * @return 邻里圈话题列表
+     */
+    @GetMapping("/neighborWest/getNeighborTopicByApp")
+    R getNeighborTopicByApp(@RequestParam("communityId") Long communityId,@RequestParam("isZero") Integer isZero,@RequestParam("name") String name);
+
+    /**
+     * 综治后台-查询社区列表
+     *
+     * @return 社区列表
+     */
+    @GetMapping("/eventgrid/community/list")
+    R getCommunityLists();
+
+    /**
+     * 查询西区社区列表
+     *
+     * @return 社区列表
+     */
+    @GetMapping("/eventgrid/community/westList")
+    R getWestCommunityLists(@RequestParam("areaCode")String areaCode);
+
+    /**
+     * 综治app-小区列表
+     * @param villageListAppDTO 请求参数
+     * @return  小区列表
+     */
+    @PostMapping("/village/grid/list/app")
+    R getGridVillageListApp(@RequestBody ComMngVillageListAppDTO villageListAppDTO);
+
+    /**
+     * 分页查询退役军人列表
+     *
+     * @param comExServicemanDTO
+     *            请求参数
+     * @return 退役军人列表
+     */
+    @PostMapping("/population/page/exServiceman")
+    R pageExServiceman(@RequestBody ComExServicemanDTO comExServicemanDTO);
+
+    /**
+     * 分页查询社区动态分类列表
+     *
+     * @param comActDynTypeDTO
+     *            请求参数
+     * @return 动态分类列表
+     */
+    @PostMapping("/dyn/type/page")
+    R pageDynTypeByAdmin(@RequestBody PageComActDynTypeDTO comActDynTypeDTO);
+
+    /**
+     * 查询社区下所有动态分类列表
+     *
+     * @param comActDynTypeDTO
+     *            请求参数
+     * @return 动态分类列表
+     */
+    @PostMapping("/dyn/type/list")
+    R getDynTypeListByAdmin(@RequestBody PageComActDynTypeDTO comActDynTypeDTO);
+
+    /**
+     * 添加社区动态分类
+     *
+     * @param comActDynTypeDTO
+     *            请求参数
+     * @return 添加结果
+     */
+    @PostMapping("/dyn/type/add")
+    R addDynTypeByAdmin(@RequestBody AddComActDynTypeDTO comActDynTypeDTO);
+
+    /**
+     * 编辑社区动态分类
+     *
+     * @param comActDynTypeDTO
+     *            请求参数
+     * @return 编辑结果
+     */
+    @PostMapping("/dyn/type/edit")
+    R editDynTypeByAdmin(@RequestBody EditComActDynTypeDTO comActDynTypeDTO);
+
+    /**
+     * 删除社区动态分类
+     *
+     * @param ids
+     *            社区动态分类id集合
+     * @return 删除结果
+     */
+    @PostMapping("/dyn/type/delete")
+    R deleteDynTypeByAdmin(@RequestBody List<Long> ids);
+
+    /**
+     * 随手拍发放奖励
+     *
+     * @param grantRewardDTO
+     *            请求参数
+     * @return 发放结果
+     */
+    @PostMapping("/easyphoto/grantReward")
+    R grantReward(@RequestBody GrantRewardDTO grantRewardDTO);
+
+    /**
+     * 获取最新活动和用户最新收益
+     *
+     * @param userId
+     *            用户id
+     * @param communityId
+     *            社区id
+     * @return 最新活动和用户最新收益
+     */
+    @PostMapping("/easyphoto/getUserReward")
+    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
+     *            用户id
+     * @return 读取结果
+     */
+    @PostMapping("/easyphoto/readUserReward")
+    R readUserReward(@RequestParam("userId") Long userId, @RequestParam("communityId") Long communityId);
+
+    /**
+     * 分页查询巡查记录
+     *
+     * @param comSwPatrolRecordPageDTO
+     *            查询参数
+     * @return 分页集合
+     */
+    @PostMapping("/patrolRecord/page")
+    R pagePatrolRecord(@RequestBody ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO);
+
+    /**
+     * 新增巡查记录
+     *
+     * @param comSwPatrolRecordAddDTO
+     *            新增参数
+     * @return 新增结果
+     */
+    @PostMapping("/patrolRecord/addPatrolRecord")
+    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
+     *            巡查记录id
+     * @return 巡查记录详情查询结果
+     */
+    @GetMapping("/patrolRecord/detail")
+    R detailPatrolRecord(@RequestParam("patrolRecordId") Long patrolRecordId);
+
+    /**
+     * 分页查询安全工作记录
+     *
+     * @param comSwPatrolRecordPageDTO
+     *            查询参数
+     * @return 安全工作记录分页集合
+     */
+    @PostMapping("/patrolRecord/safetyWorkRecord/page")
+    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
+     *            安全工作记录
+     * @return 安全工作记录详情查询结果
+     */
+    @GetMapping("/patrolRecord/safetyWorkRecord/detail")
+    R detailSafetyWorkRecord(@RequestParam(value = "safetyWorkRecordId") Long safetyWorkRecordId,
+                             @RequestParam(value = "communityId", required = false) Long communityId);
+
+    /**
+     * 根据巡查记录id查询安全工作记录详情
+     *
+     * @param patrolRecordId
+     *            巡查记录id
+     * @return 安全工作记录详情查询结果
+     */
+    @GetMapping("/patrolRecord/safetyWorkRecord/detailByPrId")
+    R detailSafetyWorkRecordByPrId(@RequestParam(value = "patrolRecordId") Long patrolRecordId,
+                                   @RequestParam(value = "communityId", required = false) Long communityId);
+
+    /**
+     * 分页查询隐患报告
+     *
+     * @param comSwPatrolRecordPageDTO
+     *            查询参数
+     * @return 隐患报告分页集合
+     */
+    @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查询详情
+     *
+     * @param dangerReportId
+     *            隐患报告id
+     * @return 隐患报告详情查询结果
+     */
+    @GetMapping("/patrolRecord/dangerReport/detail")
+    R detailDangerReport(@RequestParam(value = "dangerReportId") Long dangerReportId);
+
+    /**
+     * 根据巡查记录id查询隐患报告详情
+     *
+     * @param patrolRecordId
+     *            巡查记录id
+     * @return 隐患报告详情查询结果
+     */
+    @GetMapping("/patrolRecord/dangerReport/detailByPrId")
+    R detailDangerReportByPrId(@RequestParam(value = "patrolRecordId") Long patrolRecordId);
+
+    /**
+     * 处理隐患报告
+     *
+     * @param comSwDangerReportHandleDTO
+     *            隐患报告处理参数
+     * @return 处理结果
+     */
+    @PostMapping("/patrolRecord/dangerReport/handle")
+    R handleDangerReport(@RequestBody ComSwDangerReportHandleDTO comSwDangerReportHandleDTO);
+
+    /**
+     * 整改隐患报告
+     *
+     * @param comSwDangerReportRectifyDTO
+     *            隐患报告整改参数
+     * @return 整改结果
+     */
+    @PostMapping("/patrolRecord/dangerReport/rectify")
+    R rectifyDangerReport(@RequestBody ComSwDangerReportRectifyDTO comSwDangerReportRectifyDTO);
+
+    /**
+     * 隐患报告台账导出
+     *
+     * @param dangerReportIds
+     * @return
+     */
+    @PostMapping("/patrolRecord/dangerReport/export")
+    R exportDangerReport(@RequestBody List<Long> dangerReportIds);
+
+    /**
+     * 巡查记录统计接口
+     *
+     * @return 统计结果
+     */
+    @GetMapping("/patrolRecord/statistics")
+    R patrolRecordStatistics(@RequestParam(value = "communityId") Long communityId);
+
+    /**
+     * 小程序-查询积分说明
+     *
+     * @return 积分说明
+     */
+    @GetMapping("/integral/explain/applets")
+    R getIntegralExplainApplets();
+
+    /**
+     * 小程序-用户查询当前社区可领取积分规则列表
+     *
+     * @param userId
+     *            用户id
+     * @param communityId
+     *            社区id
+     * @return 可领取积分规则列表
+     */
+    @PostMapping("/integral/receive/applets")
+    R getIntegralReceiveApplets(@RequestParam("userId") Long userId, @RequestParam("communityId") Long communityId);
+
+    /**
+     * 小程序-查询用户积分列表
+     *
+     * @param userId
+     *            用户id
+     * @return 用户积分列表
+     */
+    @PostMapping("/integral/user/list/applets")
+    R getIntegralUserListApplets(@RequestParam("userId") Long userId, @RequestParam("communityId") Long communityId);
+
+    /**
+     * 小程序-查询社区积分账户排行榜
+     *
+     * @param communityRankDTO
+     *            请求参数
+     * @return 社区积分账户排行榜
+     */
+    @PostMapping("/integral/community/rank/applets")
+    R getIntegralCommunityRankApplets(@RequestBody ComActIntegralCommunityRankDTO communityRankDTO);
+
+    /**
+     * 小程序-查询用户社区积分明细
+     *
+     * @param communityTradeDTO
+     *            请求参数
+     * @return 用户社区积分明细
+     */
+    @PostMapping("/integral/community/trade/applets")
+    R getIntegralCommunityTradeApplets(@RequestBody ComActIntegralCommunityRankDTO communityTradeDTO);
+
+    /**
+     * 社区后台-根据社区id查询社区下积分规则列表
+     *
+     * @param integralRuleDTO
+     *            请求参数
+     * @return 社区下积分规则列表
+     */
+    @PostMapping("/integral/rule/list/admin")
+    R getIntegralRuleAdminList(@RequestBody PageComActIntegralRuleDTO integralRuleDTO);
+
+    /**
+     * 社区后台-编辑社区积分规则
+     *
+     * @param integralRuleDTO
+     *            请求参数
+     * @return 编辑结果
+     */
+    @PostMapping("/integral/rule/edit/admin")
+    R editIntegralRuleAdmin(@RequestBody EditComActIntegralRuleDTO integralRuleDTO);
+
+    /**
+     * 社区后台-分页查询社区下积分明细记录
+     *
+     * @param integralRuleDTO
+     *            请求参数
+     * @return 社区下积分明细记录
+     */
+    @PostMapping("/integral/user/trade/page/admin")
+    R getIntegralTradeListAdmin(@RequestBody PageComActIntegralTradeDTO integralRuleDTO);
+
+    /**
+     * 给用户添加积分
+     *
+     * @param integralUserDTO
+     *            请求参数
+     * @return 添加积分结果
+     */
+    @PostMapping("/integral/user/add/admin")
+    R addIntegralTradeAdmin(@RequestBody AddComActIntegralUserDTO integralUserDTO);
+
+    /**
+     * 根据社区活动id查询社区活动报名且未参与人员列表
+     *
+     * @param activityId
+     *            活动id
+     * @return 社区活动报名且未参与人员列表
+     */
+    @PostMapping("/integral/act/activity/admin")
+    R getTaskActivityPeopleList(@RequestParam("activityId") Long activityId);
+
+    /**
+     * 分页查询值班表
+     *
+     * @param comSwRotaPageDTO
+     *            查询参数
+     * @return 值班表分页集合
+     */
+    @PostMapping("/patrolRecord/rota/page")
+    R pageRota(@RequestBody ComSwRotaPageDTO comSwRotaPageDTO);
+
+    /**
+     * 根据id查询值班表
+     *
+     * @param rotaId
+     *            值班表id
+     * @return 值班表详情
+     */
+    @GetMapping("/patrolRecord/rota/detail")
+    R detailRota(@RequestParam("rotaId") Long rotaId);
+
+    /**
+     * 新增值班表
+     *
+     * @param comSwRotaSaveDTOs
+     *            新增参数
+     * @return 新增结果
+     */
+    @PostMapping("/patrolRecord/rota/add")
+    R addRota(@RequestBody List<ComSwRotaSaveDTO> comSwRotaSaveDTOs);
+
+    /**
+     * 批量删除值班表
+     *
+     * @param rotaIds
+     *            值班ids
+     * @return 删除结果
+     */
+    @PostMapping("/patrolRecord/rota/delete")
+    R deleteRota(@RequestBody List<Long> rotaIds);
+
+    /**
+     * 根据日期查询值班人员
+     *
+     * @return 查询结果
+     */
+    @GetMapping("/patrolRecord/rota/getRotaPersonByDate")
+    R getRotaPersonByDate(@RequestParam(value = "rotaDate") String rotaDate,@RequestParam("communityId")Long communityId);
+
+    /**
+     * 根据日期查询值班领导
+     *
+     * @return 查询结果
+     */
+    @GetMapping("/patrolRecord/rota/getRotaLeaderByDate")
+    R getRotaLeaderByDate(@RequestParam(value = "rotaDate") String rotaDate,@RequestParam("communityId")Long communityId);
+
+    /**
+     * 批量导入值班表
+     *
+     * @param list
+     *            值班表集合
+     */
+    @PostMapping("/patrolRecord/rota/import")
+    R listSaveSwRotaExcelVO(@RequestBody List<ComSwRotaExcelVO> list, @RequestParam("communityId") Long communityId);
+
+    /**
+     * 定时任务检测即将开始的社区活动,并使用订阅消息通知用户
+     */
+    @PostMapping("timedTaskActivityNotice")
+    R timedTaskActivityNotice();
+
+    /**
+     * 定时任务检测待发布,调研中的问卷调查状态
+     */
+    @PostMapping("timedTaskQuestionnaire")
+    R timedTaskQuestionnaire();
+
+    /**
+     * 查询社区所有列表
+     *
+     * @return 社区列表
+     */
+    @GetMapping("/switch/community/all/list")
+    R communitySwitchList(@RequestParam("areaCode") String areaCode);
+
+    /**
+     * 根据名字查询所有社区列表
+     *
+     * @param name
+     *            社区名字
+     * @return 社区列表
+     */
+    @GetMapping("/switch/community/search/list")
+    R communitySwitchSearchList(@RequestParam(value = "name") String name,@RequestParam(value = "areaCode") String areaCode);
+
+    /**
+     * 根据经纬度以及距离搜索附近社区列表
+     *
+     * @param communityDTO
+     *            请求参数
+     * @return 社区列表
+     */
+    @PostMapping("/switch/community/search/distance/list")
+    R communitySwitchSearchDistanceList(@RequestBody SearchCommunityDTO communityDTO);
+
+    /**
+     * 问卷调查统计汇总
+     *
+     * @param summaryDTO
+     *            请求参数
+     * @return 统计汇总
+     */
+    @PostMapping("/questnaire/statisticsSummary")
+    R statisticsSummary(@RequestBody StatisticsSummaryDTO summaryDTO);
+
+    /**
+     * 问卷调查统计汇总导出数据查询
+     *
+     * @param questId
+     *            调查问卷id
+     * @return 调查统计汇总导出数据
+     */
+    @GetMapping("/questnaire/statisticsSummary/export")
+    R statisticsSummaryExport(@RequestParam("questId") Long questId);
+
+    /**
+     * 问卷调查统计汇总表头统计
+     *
+     * @param questId
+     *            调查问卷id
+     * @return 问卷调查统计汇总表头统计数据
+     */
+    @GetMapping("/questnaire/statisticsSummary/header")
+    R statisticsSummaryHeader(@RequestParam("questId") Long questId, @RequestParam("communityId") Long communityId);
+
+    /**
+     * 运营后台-新增随手拍分类
+     *
+     * @param addPhotoClassify
+     *            请求参数
+     * @return 新增结果
+     */
+    @PostMapping("/classify/admin/add")
+    R addPhotoClassify(@RequestBody AddEasyPhotoClassifyDTO addPhotoClassify);
+
+    /**
+     * 运营后台-编辑随手拍分类
+     *
+     * @param addPhotoClassify
+     *            请求参数
+     * @return 编辑结果
+     */
+    @PostMapping("/classify/admin/edit")
+    R editPhotoClassify(@RequestBody AddEasyPhotoClassifyDTO addPhotoClassify);
+
+    /**
+     * 运营后台-分页查询随手拍分类
+     *
+     * @param addPhotoClassify
+     *            请求参数
+     * @return 随手拍分类列表
+     */
+    @PostMapping("/classify/admin/page")
+    R pagePhotoClassify(@RequestBody AddEasyPhotoClassifyDTO addPhotoClassify);
+
+    /**
+     * 运营后台-随手拍分类详情
+     *
+     * @param id
+     *            随手拍分类id
+     * @return 随手拍分类
+     */
+    @GetMapping("/classify/admin/detail")
+    R detailPhotoClassify(@RequestParam("id") Long id);
+
+    /**
+     * 运营后台-随手拍分类删除
+     *
+     * @param id
+     *            随手拍分类id
+     * @return 删除结果
+     */
+    @GetMapping("/classify/admin/delete")
+    R deletePhotoClassify(@RequestParam("id") Long id);
+
+    /**
+     * 运营后台-查询随手拍分类列表
+     *
+     * @return 随手拍分类列表
+     */
+    @GetMapping("/classify/admin/list")
+    R listPhotoClassify(@RequestParam("areaCode") String areaCode);
+
+    /**
+     * 社区后台-切换随手拍公示状态
+     *
+     * @param comActEasyPhotoVO
+     *            请求参数
+     * @return 切换结果
+     */
+    @PostMapping("/easyphoto/switch/publicity")
+    R easyPhotoSwitchPublicity(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO);
+
+    /**
+     * 查询社区待处理随手拍id集合
+     *
+     * @param communityId
+     *            社区id
+     * @return 社区待处理随手拍id集合
+     */
+    @GetMapping("/easyphoto/noHandle/list")
+    R easyPhotoNoHandleList(@RequestParam("communityId") Long communityId);
+
+    @GetMapping("/reserve/detail")
+    R reserveDetail(@RequestParam("id") Long id,@RequestParam("userId") Long userId,@RequestParam("recordId") Long recordId,@RequestParam("isBack") Integer isBack);
+
+    @PostMapping("/reserve/commit")
+    R reserveCommit(@RequestBody ComActReserveCommitVO comActReserveCommitVO);
+
+    @PostMapping("/reserve/commitNoToken")
+    R reserveCommitNoToken(@RequestBody ComActReserveCommitVO comActReserveCommitVO);
+    /**
+     * 我的预约/登记
+     * @param pageUserReserveDTO
+     * @return
+     */
+    @PostMapping("/reserve/userReserveList")
+    R userReserveList(@RequestBody PageUserReserveDTO pageUserReserveDTO);
+
+    /**
+     * 取消预约/登记
+     */
+    @PostMapping("/reserve/cancelReserve")
+    R userCancelReserve(@RequestBody CancelRecordDTO comActReserveRecordDO);
+
+    /**
+     * 预约详情操作记录
+     */
+    @PostMapping("/reserve/detailOperation")
+    R reserveOperation(@RequestBody OperationDetailDTO comActReserveOperationRecordDO);
+
+    /**
+     * 社区后台-分页查询预约登记列表
+     * @param pageReserveDTO    请求参数
+     * @return  预约登记列表
+     */
+    @PostMapping("/reserve/admin/page")
+    R pageReserveAdmin(@RequestBody PageReserveAdminDTO pageReserveDTO);
+
+    /**
+     * 社区后台-新增预约登记信息
+     * @param addReserveDTO 请求参数
+     * @return  新增结果
+     */
+    @PostMapping("/reserve/admin/add")
+    R addReserveAdmin(@RequestBody AddReserveAdminDTO addReserveDTO);
+
+    /**
+     * 社区后台-编辑预约登记信息
+     * @param editReserveDTO 请求参数
+     * @return  新增结果
+     */
+    @PostMapping("/reserve/admin/edit")
+    R editReserveAdmin(@RequestBody EditReserveAdminDTO editReserveDTO);
+
+    /**
+     * 社区后台-修改预约登记状态
+     * @param editReserveDTO    请求参数
+     * @return  修改结果
+     */
+    @PostMapping("/reserve/admin/edit/status")
+    R editReserveStatusAdmin(@RequestBody EditComActReserveStatusDTO editReserveDTO);
+
+    /**
+     * 社区后台-继续预约登记
+     * @param editReserveDTO    请求参数
+     * @return  修改结果
+     */
+    @PostMapping("/reserve/admin/edit/info")
+    R editReserveInfoAdmin(@RequestBody EditComActReserveInfoDTO editReserveDTO);
+
+    /**
+     * 社区后台-根据预约登记id查询详情
+     * @param reserveId 预约登记id
+     * @return  预约登记详情
+     */
+    @GetMapping("/reserve/admin/detail")
+    R<ComActReserveDetailAdminVO> detailReserveAdmin(@RequestParam("reserveId") Long reserveId);
+
+    /**
+     * 社区后台-根据社区id统计预约类数据
+     * @param makeStatisticsDTO   请求参数
+     * @return  统计预约类数据
+     */
+    @PostMapping("/reserve/admin/make/statistics")
+    R makeStatisticsAdmin(@RequestBody ComActReserveMakeStatisticsDTO makeStatisticsDTO);
+
+    /**
+     * 社区后台-查询导出预约统计汇总数据
+     * @param makeStatisticsDTO   请求参数
+     * @return  统计预约类数据
+     */
+    @PostMapping("/reserve/admin/make/statistics/export")
+    R makeStatisticsExportAdmin(@RequestBody ComActReserveMakeStatisticsDTO makeStatisticsDTO);
+
+    /**
+     * 社区后台-根据预约id查询预约明细
+     * @param pageMakeDTO   请求参数
+     * @return  预约明细
+     */
+    @PostMapping("/reserve/admin/make/page")
+    R pageMakeAdmin(@RequestBody PageReserveMakeAdminDTO pageMakeDTO);
+
+    /**
+     * 根据预约记录id查询预约明细操作记录
+     * @param reserveRecordId   预约记录id
+     * @return  预约明细操作记录
+     */
+    @GetMapping("/reserve/admin/make/detail")
+    R detailMakeAdmin(@RequestParam("reserveRecordId") Long reserveRecordId);
+
+    /**
+     * 批量取消预约记录
+     * @param reserveRecordDTO   请求参数
+     * @return  取消结果
+     */
+    @PostMapping("/reserve/admin/make/cancel")
+    R makeCancelAdmin(@RequestBody CancelReserveRecordDTO reserveRecordDTO);
+
+    /**
+     * 预约明细导出数据查询
+     * @param pageMakeDTO   请求参数
+     * @return  预约明细数据
+     */
+    @PostMapping("/reserve/admin/make/list/export")
+    R exportMakeAdmin(@RequestBody PageReserveMakeAdminDTO pageMakeDTO);
+
+    /**
+     * 分页查询登记统计汇总
+     * @param registerStatisticsDTO 请求参数
+     * @return  登记统计汇总
+     */
+    @PostMapping("/reserve/admin/register/page")
+    R registerStatisticsAdmin(@RequestBody ComActReserveRegisterStatisticsDTO registerStatisticsDTO);
+
+    /**
+     * 导出登记统计汇总
+     * @param registerStatisticsDTO 请求参数
+     * @return  登记统计汇总
+     */
+    @PostMapping("/reserve/admin/register/export")
+    R registerStatisticsExportAdmin(@RequestBody ComActReserveRegisterStatisticsDTO registerStatisticsDTO);
+
+    /**
+     * 分页查询预约处理列表
+     * @param pageMakeHandleDTO 请求参数
+     * @return  预约处理列表
+     */
+    @PostMapping("/reserve/admin/make/handle/page")
+    R pageMakeHandleAdmin(@RequestBody PageReserveMakeHandleAdminDTO pageMakeHandleDTO);
+
+    /**
+     * 批量处理预约记录
+     * @param makeHandleDTO 请求参数
+     * @return  处理结果
+     */
+    @PostMapping("/reserve/admin/make/handle")
+    R makeHandleAdmin(@RequestBody MakeHandleAdminDTO makeHandleDTO);
+
+    /**
+     * 导出预约处理列表数据查询
+     * @param pageMakeHandleDTO 请求参数
+     * @return  预约处理列表
+     */
+    @PostMapping("/reserve/admin/make/handle/export")
+    R exportMakeHandleAdmin(@RequestBody PageReserveMakeHandleAdminDTO pageMakeHandleDTO);
+
+    /**
+     * 删除预约登记信息
+     * @param reserveId 预约登记id
+     * @return  删除结果
+     */
+    @GetMapping("/reserve/admin/delete")
+    R deleteReserveAdmin(@RequestParam("reserveId") Long reserveId);
+
+    /**
+     * 查询社区所有预约信息列表
+     * @param communityId   社区id
+     * @return  预约信息列表
+     */
+    @GetMapping("/reserve/admin/list")
+    R listReserveAdmin(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 导出登记明细数据
+     *
+     * @param pageReserveRegisterDetailedAdminDTO
+     * @return 登记明细数据
+     */
+    @PostMapping("/reserve/admin/register/list/export")
+    R exportRegisterAdmin(@RequestBody PageReserveRegisterDetailedAdminDTO pageReserveRegisterDetailedAdminDTO);
+
+    /**
+     * 查询预约登记题目下属选择项列表
+     *
+     * @param reserveSubId
+     *            预约登记id
+     * @return 查询预约登记题目下属选择项列表
+     */
+    @GetMapping("/reserve/admin/subject/selection/list")
+    List<String> subjectSelectionListAdmin(@RequestParam("reserveSubId") Long reserveSubId);
+    /**
+     * 查询预约登记题目列表
+     * @param reserveId 预约登记id
+     * @return  约登记题目列表
+     */
+    @GetMapping("/reserve/admin/subject/list")
+    R subjectListAdmin(@RequestParam("reserveId") Long reserveId);
+
+    /**
+     * 分页查询登记明细列表
+     * @param detailedAdminDTO  请求参数
+     * @return  登记明细列表
+     */
+    @PostMapping("/reserve/admin/register/detailed/list")
+    R registerDetailedListAdmin(@RequestBody PageReserveRegisterDetailedAdminDTO detailedAdminDTO);
+
+    /**
+     * 导出登记明细列表
+     * @param detailedAdminDTO  请求参数
+     * @return  登记明细列表
+     */
+    @PostMapping("/reserve/admin/register/detailed/list/export")
+    R registerDetailedListAdminExport(@RequestBody PageReserveRegisterDetailedAdminDTO detailedAdminDTO);
+
+    /**
+     * 查询登记详情记录
+     * @param reserveRecordId   登记记录id
+     * @return  登记详情记录
+     */
+    @GetMapping("/reserve/admin/register/detailed/detail")
+    R registerDetailedDetailAdmin(@RequestParam("reserveRecordId") Long reserveRecordId);
+    /**
+     * 活动签到
+     *
+     * @param comActActRegistVO 请求参数
+     * @return 签到结果
+     */
+    @PostMapping("/activity/sign-in")
+    R activitySignIn(@RequestBody ComActActRegistVO comActActRegistVO);
+
+    /**
+     * 用户签到列表
+     *
+     * @param userId 用户id
+     * @return 用户签到记录列表
+     */
+    @GetMapping("/sign-in/user/list")
+    R listSignInActivity(@RequestParam("userId") Long userId);
+
+    /**
+     * 社区活动评价
+     *
+     * @param comActActEvaluateVO 社区评价VO
+     * @return 评价结果
+     */
+    @PostMapping("/activity/evaluate")
+    R activityEvaluate(@RequestBody ComActActEvaluateVO comActActEvaluateVO);
+
+    /**
+     * 用户评价列表
+     *
+     * @param userId 用户id
+     * @return 当前用户对所有活动的评价列表
+     */
+    @GetMapping("/evaluate/user/list")
+    R listEvaluate(@RequestParam("userId") Long userId);
+
+    /**
+     * 定时任务针对活动结束后7天还未评价的用户默认好评
+     */
+    @PostMapping("/activity/default-praise")
+    R timedTaskActivityDefaultPraise();
+
+    /**
+     * 小程序-用户新增话题
+     * @param circleTopicAppDTO 请求参数
+     * @return  新增结果
+     */
+    @PostMapping("/neighborWest/addNeighborTopicByApp")
+    R addNeighborTopicByApp(@RequestBody AddNeighborCircleTopicAppDTO circleTopicAppDTO);
+
+    /**
+     * 小程序-删除邻里圈
+     * @param circleTopicAppDTO 请求参数
+     * @return  删除结果
+     */
+    @PostMapping("/neighborWest/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();
+
+    /**
+     * 身份认证定时任务
+     * @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 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/comActSocialOrg/queryAll")
+    R comActSocialOrgSelectAll(CommonPage commonPage);
+
+    /**
+     * 新增数据
+     *
+     * @param comActSocialOrg 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/comActSocialOrg")
+    R comActSocialOrgInsert(@RequestBody ComActSocialOrgVO comActSocialOrg);
+
+    /**
+     * 修改数据
+     *
+     * @param comActSocialOrg 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/comActSocialOrg/update")
+    R comActSocialOrgUpdate(@RequestBody ComActSocialOrgVO comActSocialOrg);
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("/comActSocialOrg/del")
+    R comActSocialOrgDelete(@RequestParam("id") Long id);
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/comActCommittee/queryAll")
+    R comActCommitteeSelectAll(@RequestBody CommonPage commonPage);
+    /**
+     * 新增数据
+     *
+     * @param comActCommittee 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/comActCommittee")
+    R comActCommitteeInsert(@RequestBody ComActCommiteeVO comActCommittee);
+    /**
+     * 修改数据
+     *
+     * @param comActCommittee 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/comActCommittee/update")
+    R comActCommitteeUpdate(@RequestBody ComActCommiteeVO comActCommittee);
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("/comActCommittee/del")
+    R comActCommitteeDelete(@RequestParam("id") Long id);
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/comProperty/queryAll")
+    R comPropertySelectAll(@RequestBody CommonPage commonPage);
+    /**
+     * 新增数据
+     *
+     * @param comPropertyVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/comProperty")
+    R comPropertyInsert(@RequestBody ComPropertyVO comPropertyVO);
+    /**
+     * 修改数据
+     *
+     * @param comPropertyVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/comProperty/update")
+    R comPropertyUpdate(@RequestBody ComPropertyVO comPropertyVO);
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("/comProperty/del")
+    R comPropertyDelete(@RequestParam("id") Long id);
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/comActFourMember/queryAll")
+    R comActFourMemberSelectAll(@RequestBody CommonPage commonPage);
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/comActFourMember/{id}")
+    R comActFourMemberSelectOne(@PathVariable("id") Integer id);
+
+    /**
+     * 新增数据
+     *
+     * @param comActFourMember 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/comActFourMember")
+    R comActFourMemberInsert(@RequestBody ComActFourMemberVO comActFourMember);
+
+    /**
+     * 修改数据
+     *
+     * @param comActFourMember 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/comActFourMember/update")
+    R comActFourMemberUpdate(@RequestBody ComActFourMemberVO comActFourMember);
+
+    /**
+     * 删除数据
+     *
+     * @param comActFourMember 主键结合
+     * @return 删除结果
+     */
+    @PostMapping("/comActFourMember/del")
+    R comActFourMemberDelete(@RequestBody ComActFourMemberVO comActFourMember);
+
+    /**
+     * 楼栋查询
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/building/query")
+    R comActFourMemberQueryBuilding(@RequestParam("communityId")Long communityId);
+
+    /**
+     * 查询房屋二级级联菜单
+     *
+     * @param cascadeHouseDTO
+     *            请求参数
+     * @return 菜单列表
+     */
+    @PostMapping("/common/data/population/second/list")
+    R getSecondHouseAddress(@RequestBody CascadeHouseDTO cascadeHouseDTO);
+
+    /**
+     * 查询房屋二级级联菜单后台
+     *
+     * @param cascadeHouseDTO
+     *            请求参数
+     * @return 菜单列表
+     */
+    @PostMapping("/common/data/population/second/listBack")
+    R getSecondHouse(@RequestBody CascadeHouseDTO cascadeHouseDTO);
+
+    /**
+     * 微心愿处理人列表
+     * @param communityId   社区id
+     * @param type  处理人类型(1.后台用户  2.党员  3.志愿者)
+     * @return  处理人列表
+     */
+    @GetMapping("/wish/handle/list/admin")
+    R wishHandleListAdmin(@RequestParam(value = "communityId") Long communityId,@RequestParam("type") Integer type);
+
+    /**
+     * 便民服务新增分类
+     * @param convenientServiceCategoryDTO
+     * @return
+     */
+    @PostMapping("/convenient/service-category/add")
+    R addServiceCategory(@RequestBody ConvenientServiceCategoryDTO convenientServiceCategoryDTO);
+
+    /**
+     * 便民服务分类编辑
+     * @param convenientServiceCategoryDTO
+     * @return
+     */
+    @PutMapping("/convenient/service-category/put")
+    R putServiceCategory(@RequestBody ConvenientServiceCategoryDTO convenientServiceCategoryDTO);
+
+    /**
+     * 便民服务分类删除
+     * @param categoryId
+     * @return
+     */
+    @DeleteMapping("/convenient/service-category/delete")
+    R deleteServiceCategory(@RequestParam("categoryId") Long categoryId, @RequestParam("operator") Long operator);
+
+    /**
+     * 获取便民服务分类详情
+     * @param categoryId
+     * @return
+     */
+    @GetMapping("/convenient/service-category/get")
+    R getServiceCategory(@RequestParam("categoryId") Long categoryId);
+
+    /**
+     * 分页查询便民服务分类
+     * @param pageConvenientServiceCategoryDTO
+     * @return
+     */
+    @PostMapping("/convenient/service-category/page")
+    R pageServiceCategory(@RequestBody PageConvenientServiceCategoryDTO pageConvenientServiceCategoryDTO);
+
+    /**
+     * 便民服务新增商家
+     * @param convenientMerchantDTO
+     * @return
+     */
+    @PostMapping("/convenient/merchant/add")
+    R addMerchant(@RequestBody ConvenientMerchantDTO convenientMerchantDTO);
+
+    /**
+     * 编辑便民服务商家
+     * @param convenientMerchantDTO
+     * @return
+     */
+    @PutMapping("/convenient/merchant/put")
+    R putMerchant(@RequestBody ConvenientMerchantDTO convenientMerchantDTO);
+
+    /**
+     * 删除便民服务商家
+     * @param merchantId
+     * @param operator
+     * @return
+     */
+    @DeleteMapping("/convenient/merchant/delete")
+    R deleteMerchant(@RequestParam("merchantId") Long merchantId, @RequestParam("operator") Long operator);
+
+    /**
+     * 分页查询便民服务商家
+     * @param pageConvenientMerchantDTO
+     * @return
+     */
+    @PostMapping("/convenient/merchant/page")
+    R pageMerchant(@RequestBody PageConvenientMerchantDTO pageConvenientMerchantDTO);
+
+    /**
+     * 获取便民服务商家详情
+     * @param merchantId
+     * @return
+     */
+    @GetMapping("/convenient/merchant/get")
+    R getMerchant(@RequestParam("merchantId") Long merchantId);
+
+    /**
+     * 禁用/启用便民服务商家
+     * @param disableOrEnableConvenientMerchantDTO
+     * @return
+     */
+    @PutMapping("/convenient/merchant/disable-or-enable")
+    R disableOrEnableMerchant(@RequestBody DisableOrEnableConvenientMerchantDTO disableOrEnableConvenientMerchantDTO);
+
+    /**
+     * 重置便民服务商家账号密码
+     * @param resetPasswordConvenientMerchantDTO
+     * @return
+     */
+    @PutMapping("/convenient/merchant/reset-password")
+    R resetPasswordMerchant(@RequestBody ResetPasswordConvenientMerchantDTO resetPasswordConvenientMerchantDTO);
+
+    /**
+     * 获取所有便民服务分类
+     * @return
+     */
+    @GetMapping("/convenient/service-category/all")
+    R getAllServiceCategories(@RequestParam("areaCode") String areaCode);
+
+    /**
+     * 获取用户便民服务商家详情
+     * @param account 商家绑定账号
+     * @return
+     */
+    @GetMapping("/convenient/getUserMerchantInfoByAccount")
+    R<ConvenientMerchantVO> getUserMerchantInfoByAccount(@RequestParam("account") String account);
+
+    /**
+     * 获取商便民服务商家信息
+     * @param userId
+     * @return
+     */
+    @GetMapping("/convenient/merchantInfo")
+    R<ConvenientMerchantVO> getUserConvenientMerchantInfo(@RequestParam("userId") Long userId);
+
+    /**
+     * 新增便民服务产品分类信息
+     * @param convenientProductCategoryDTO
+     * @return
+     */
+    @PostMapping("/convenient/product-category/add")
+    R addProductCategory(@RequestBody ConvenientProductCategoryDTO convenientProductCategoryDTO);
+
+    /**
+     * 编辑便民服务产品分类信息
+     * @param convenientProductCategoryDTO
+     * @return
+     */
+    @PutMapping("/convenient/product-category/put")
+    R putProductCategory(@RequestBody ConvenientProductCategoryDTO convenientProductCategoryDTO);
+
+    /**
+     * 删除便民服务产品分类信息
+     * @param categoryId
+     * @param operator
+     * @return
+     */
+    @DeleteMapping("/convenient/product-category/delete")
+    R deleteProductCategory(@RequestParam("categoryId") Long categoryId, @RequestParam("operator") Long operator);
+
+    /**
+     * 获取便民服务产品分类详情
+     * @param categoryId
+     * @return
+     */
+    @GetMapping("/convenient/product-category/get")
+    R getProductCategory(@RequestParam("categoryId") Long categoryId);
+
+    /**
+     * 分页查询便民服务产品分类信息
+     * @param pageConvenientProductCategoryDTO
+     * @return
+     */
+    @PostMapping("/convenient/product-category/page")
+    R pageProductCategory(@RequestBody PageConvenientProductCategoryDTO pageConvenientProductCategoryDTO);
+
+    /**
+     * 便民服务商家后台新增产品
+     * @param convenientProductDTO
+     * @return
+     */
+    @PostMapping("/convenient/product/add")
+    R addProduct(@RequestBody ConvenientProductDTO convenientProductDTO);
+
+    /**
+     * 便民服务商家后台编辑产品
+     * @param convenientProductDTO
+     * @return
+     */
+    @PutMapping("/convenient/product/put")
+    R putProduct(@RequestBody ConvenientProductDTO convenientProductDTO);
+
+    /**
+     * 便民服务商家后台获取产品详情
+     * @param productId
+     * @return
+     */
+    @GetMapping("/convenient/product/get")
+    R getProduct(@RequestParam("productId") Long productId);
+
+    /**
+     * 便民服务商家后台分页获取产品信息
+     * @param pageConvenientProductDTO
+     * @return
+     */
+    @PostMapping("/convenient/product/page")
+    R pageProduct(@RequestBody PageConvenientProductDTO pageConvenientProductDTO);
+
+    /**
+     * 便民服务商家后台删除产品信息
+     * @param deleteConvenientProductDTO
+     * @return
+     */
+    @DeleteMapping("/convenient/product/delete")
+    R deleteProduct(@RequestBody DeleteConvenientProductDTO deleteConvenientProductDTO);
+
+    /**
+     * 便民服务商家后台上架/下架产品
+     * @param onShelfOrOffShelfProductDTO
+     * @return
+     */
+    @PutMapping("/convenient/product/onShelf-or-offShelf")
+    R onShelfOrOffShelfProduct(@RequestBody OnShelfOrOffShelfProductDTO onShelfOrOffShelfProductDTO);
+
+    /**
+     * 获取所有产品分类
+     * @return
+     * @param merchantId
+     */
+    @GetMapping("/convenient/product-category/all")
+    R getAllProductCategory(@RequestParam("merchantId") Long merchantId);
+
+    /**
+     * 获取该社区商家数量大于0的分类
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/convenient/service-category/suitable")
+    R getSuitableServiceCategories(@RequestParam("communityId") Long communityId,@RequestParam("areaCode")String areaCode);
+
+    /**
+     * 获取该社区下的热门商家
+     * @param pagePopularMerchantDTO
+     * @return
+     */
+    @PostMapping("/convenient/merchant/popular")
+    R getPopularMerchants(@RequestBody PagePopularMerchantDTO pagePopularMerchantDTO);
+
+    /**
+     * 分页获取服务类型下商家信息
+     * @param pageClassifyMerchantDTO
+     * @return
+     */
+    @PostMapping("/convenient/merchant/classify")
+    R getClassifyMerchants(@RequestBody PageClassifyMerchantDTO pageClassifyMerchantDTO);
+
+    /**
+     * 获取商家详情
+     * @param merchantId
+     * @return
+     */
+    @GetMapping("/convenient/merchant/detail")
+    R getMerchantDetail(@RequestParam("merchantId") Long merchantId);
+
+    /**
+     * 获取商家产品
+     * @param merchantId
+     * @return
+     */
+    @GetMapping("/convenient/product/list")
+    R getMerchantProduct(@RequestParam("merchantId") Long merchantId);
+
+    /**
+     * 获取产品详情
+     * @param productId
+     * @return
+     */
+    @GetMapping("/convenient/product/detail")
+    R getProductDetail(@RequestParam("productId") Long productId);
+
+    /**
+     * 搜索商家信息
+     * @param pageSearchDTO
+     * @return
+     */
+    @PostMapping("/convenient/merchant/search")
+    R pageSearchMerchant(@RequestBody PageSearchDTO pageSearchDTO);
+
+    /**
+     * 搜索商品信息
+     * @param pageSearchDTO
+     * @return
+     */
+    @PostMapping("/convenient/product/search")
+    R pageSearchProduct(@RequestBody PageSearchDTO pageSearchDTO);
+
+    /**
+     * 增加商家店铺咨询量
+     * @param merchantId
+     * @return
+     */
+    @GetMapping("/convenient/merchant/consult")
+    R consultMerchant(@RequestParam("merchantId") Long merchantId);
+
+    /**
+     * 增加产品浏览量
+     * @param productId
+     * @return
+     */
+    @GetMapping("/convenient/product/incr-view")
+    R incrProductView(@RequestParam("productId") Long productId);
+
+    /**
+     * 获取商家导出数据
+     * @param exportMerchantDTO
+     * @return
+     */
+    @PostMapping("/convenient/merchant/export")
+    R exportMerchant(@RequestBody ExportMerchantDTO exportMerchantDTO);
+
+    /**
+     * 增加商家店铺浏览量
+     * @param merchantId
+     * @return
+     */
+    @GetMapping("/convenient/merchant/incr-view")
+    R incrMerchantView(@RequestParam("merchantId") Long merchantId);
+
+    /**
+     * 定时任务每隔半小时将商家浏览量和咨询量总值计入指定商家数据中
+     * @return
+     */
+    @PostMapping("/convenient/timedTaskWriteDataToMerchantJobHandler")
+    R timedTaskWriteDataToMerchantJobHandler();
+
+    /**
+     * 获取商家上下架产品数量
+     * @param merchantId
+     * @return
+     */
+    @GetMapping("/convenient/product/shelf-num")
+    R getProductShelfNum(@RequestParam("merchantId") Long merchantId);
+
+    /**
+     * 群团组织成员列表-小程序分页查询
+     * @param pageClusterMemberDto  请求参数
+     * @return  群团组织成员列表
+     */
+    @PostMapping("/cluster/member/page/applets")
+    R pageClusterMemberApplets(@RequestBody PageClusterMemberDto pageClusterMemberDto);
+
+    /**
+     * 群团组织列表-小程序查询社区群团组织列表
+     * @param communityId   社区id
+     * @return  社区群团组织列表
+     */
+    @GetMapping("/cluster/list/applets")
+    R listClusterApplets(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 分页查询群团组织列表
+     * @param pageClusterAdminDto  请求参数
+     * @return  群团组织列表
+     */
+    @PostMapping("/cluster/page/admin")
+    R pageClusterAdmin(@RequestBody PageClusterAdminDto pageClusterAdminDto);
+
+    /**
+     * 新增群团组织
+     * @param addClusterAdminDto    请求参数
+     * @return  新增结果
+     */
+    @PostMapping("/cluster/add/admin")
+    R addClusterAdmin(@RequestBody AddClusterAdminDto addClusterAdminDto);
+
+    /**
+     * 修改群团组织
+     * @param editClusterAdminDto   请求参数
+     * @return  修改结果
+     */
+    @PostMapping("/cluster/edit/admin")
+    R editClusterAdmin(@RequestBody EditClusterAdminDto editClusterAdminDto);
+
+    /**
+     * 删除群团组织
+     * @param id    组织id
+     * @return  删除结果
+     */
+    @GetMapping("/cluster/delete/admin")
+    R deleteClusterAdmin(@RequestParam("id") Long id);
+
+    /**
+     * 群团组织详情
+     * @param id    组织id
+     * @return  群团组织详情
+     */
+    @GetMapping("/cluster/detail/admin")
+    R detailClusterAdmin(@RequestParam("id") Long id);
+
+    /**
+     * 分页查询群团组织成员列表
+     * @param pageClusterMemberAdminDto 请求参数
+     * @return  群团组织成员列表
+     */
+    @PostMapping("/cluster/member/page/admin")
+    R pageClusterMemberAdmin(@RequestBody PageClusterMemberAdminDto pageClusterMemberAdminDto);
+
+    /**
+     * 新增群团组织成员
+     * @param addClusterMemberAdminDto  请求参数
+     * @return  新增结果
+     */
+    @PostMapping("/cluster/member/add/admin")
+    R addClusterMemberAdmin(@RequestBody AddClusterMemberAdminDto addClusterMemberAdminDto);
+
+    /**
+     * 编辑群团组织成员
+     * @param editClusterMemberAdminDto 请求参数
+     * @return  编辑结果
+     */
+    @PostMapping("/cluster/member/edit/admin")
+    R editClusterMemberAdmin(@RequestBody EditClusterMemberAdminDto editClusterMemberAdminDto);
+
+    /**
+     * 删除群团组织成员
+     * @param id    组织成员id
+     * @return  删除结果
+     */
+    @GetMapping("/cluster/member/delete/admin")
+    R deleteClusterMemberAdmin(@RequestParam("id") Long id);
+
+    /**
+     * 群团组织成员详情
+     * @param id    组织成员id
+     * @return  群团组织成员详情
+     */
+    @GetMapping("/cluster/member/detail/admin")
+    R detailClusterMemberAdmin(@RequestParam("id") Long id);
+
+    /**
+     * 查询系统民族列表
+     * @return  民族列表
+     */
+    @GetMapping("/cluster/member/nation/list/admin")
+    R memberNationListAdmin();
+
+    /**
+     * 群团组织成员导入
+     * @param list  导入数据
+     * @param communityId   社区id
+     * @param userId    操作用户id
+     * @return  导入结果
+     */
+    @PostMapping("/cluster/member/import/admin")
+    R importClusterMember(@RequestBody List<ComClusterMemberExcelVO> list,
+                                     @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
+
+    /**
+     * 群团组织导出数据查询
+     * @param pageClusterMemberAdminDto 请求参数
+     * @return  导出数据结果集
+     */
+    @PostMapping("/cluster/member/export/admin")
+    R exportClusterMember(@RequestBody PageClusterMemberAdminDto pageClusterMemberAdminDto);
+
+    /**
+     * 社区后台分页查询微心愿
+     * @param comActMicroWishVO 请求参数
+     * @return  微心愿列表
+     */
+    @PostMapping("pagemicrowishAdmin")
+    R pageMicroWishAdmin(@RequestBody ComActMicroWishVO comActMicroWishVO);
+
+    /**
+     * 小程序四长四员查询居民列表
+     */
+    @PostMapping("/comActFourMember/member")
+    R comActFourMemberQueryMember(@RequestBody CommonPage commonPage);
+
+    /**
+     *居民数据详情
+     */
+    @GetMapping("/comActFourMember/memberDetail")
+    R comActFourMemberMemberDetail(@RequestParam("id")Long id);
+
+    /**
+     * 根据房屋id列表删除房屋信息
+     *
+     * @param comMngPopulationHouseUserVO
+     *            请求参数
+     * @return 删除结果
+     */
+    @PostMapping("/common/data/population/house/user/delete")
+    R deleteHousesUser(@RequestBody ComMngPopulationHouseUserVO comMngPopulationHouseUserVO);
+
+    /**
+     * 新增实有房屋信息
+     *
+     * @param comMngPopulationHouseUserVO
+     *            请求参数
+     * @return 编辑结果
+     */
+    @PostMapping("/common/data/population/house/user/insert")
+    public R insertHouseUser(@RequestBody ComMngPopulationHouseUserVO comMngPopulationHouseUserVO);
+
+    /**
+     * 编辑实有房屋信息
+     *
+     * @param comMngPopulationHouseUserVO
+     *            请求参数
+     * @return 编辑结果
+     */
+    @PostMapping("/common/data/population/house/user/edit")
+    public R editHouseUser(@RequestBody ComMngPopulationHouseUserVO comMngPopulationHouseUserVO);
+
+    /**
+     * 根据id查询
+     *
+     * @param id
+     *            请求参数
+     * @return 删除结果
+     */
+    @GetMapping("/common/data/population/house/user/detail")
+    public R detailHousesUser(@RequestParam("id") Long id);
+
+    /**
+     * 社区后台-分页查询楼栋列表
+     * @param pageBuildingListDto   请求参数
+     * @return  楼栋列表
+     */
+    @PostMapping("/building/page/admin/")
+    R pageBuildingAdmin(@RequestBody PageBuildingListDto pageBuildingListDto);
+
+    /**
+     * 社区后台-查询楼栋列表表头统计数据
+     * @param communityId   社区id
+     * @return  楼栋列表表头统计数据
+     */
+    @GetMapping("/building/header/statistics/")
+    R buildingListHeaderStatisticsAdmin(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 社区后台-查询楼栋详情
+     * @param id    楼栋id
+     * @return  楼栋详情
+     */
+    @GetMapping("/building/detail/admin/")
+    R detailBuildAdmin(@RequestParam("id") Long id);
+
+    /**
+     * 查询楼栋下单元列表
+     * @param id    楼栋id
+     * @return  单元列表
+     */
+    @GetMapping("/building/unit/list/admin")
+    R buildingUnitListAdmin(@RequestParam("id") Long id);
+
+    /**
+     * 查询楼栋单元下房屋列表
+     * @param unitHouseListDto    请求参数
+     * @return  单元列表
+     */
+    @PostMapping("/building/unit/house/list/admin")
+    R buildingUnitHouseListAdmin(@RequestBody PageBuildingUnitHouseListDto unitHouseListDto);
+
+    /**
+     * 查询楼栋单元下房屋详情
+     * @param houseId   房屋id
+     * @param communityId   社区id
+     * @return  房屋详情
+     */
+    @GetMapping("/building/unit/house/detail/admin")
+    R unitHouseDetailAdmin(@RequestParam("houseId") Long houseId,@RequestParam("communityId") Long communityId);
+
+    /**
+     * 查询社区下小区列表
+     * @param communityId   社区id
+     * @return  小区列表
+     */
+    @GetMapping("/building/village/list/admin")
+    R buildingVillageListAdmin(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 添加楼栋下单元
+     * @param addBuildingUnitDto  请求参数
+     * @return  添加结果
+     */
+    @PostMapping("/building/unit/add/admin")
+    R addBuildingUnitAdmin(@RequestBody AddBuildingUnitDto addBuildingUnitDto);
+
+    /**
+     * 修改楼栋下单元
+     * @param editBuildingUnitDto  请求参数
+     * @return  修改结果
+     */
+    @PostMapping("/building/unit/edit/admin")
+    R editBuildingUnitAdmin(@RequestBody EditBuildingUnitDto editBuildingUnitDto);
+
+    /**
+     * 添加户室
+     * @param addBuildingHouseDto    请求参数
+     * @return  添加结果
+     */
+    @PostMapping("/building/house/add/admin")
+    R addBuildingHouseAdmin(@RequestBody AddBuildingHouseDto addBuildingHouseDto);
+
+    /**
+     * 修改户室
+     * @param editBuildingHouseDto   请求参数
+     * @return  修改结果
+     */
+    @PostMapping("/building/house/edit/admin")
+    R editBuildingHouseAdmin(@RequestBody EditBuildingHouseDto editBuildingHouseDto);
+
+    /**
+     * 删除户室下人员关联信息
+     * @param housePopulationDto    请求参数
+     * @return  删除结果
+     */
+    @PostMapping("/building/house/population/delete/admin")
+    R deleteBuildingHousePopulationAdmin(@RequestBody DeleteBuildingHousePopulationDto housePopulationDto);
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/comActWarehouseApply/queryAll")
+    public R comActWarehouseApplySelectAll(@RequestBody CommonPage commonPage);
+
+    /**
+     * 统计查询
+     *
+     * @param communityId
+     * @return 所有数据
+     */
+    @GetMapping("/comActWarehouseApply/selectStatics")
+    public R comActWarehouseApplySelectAll(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/comActWarehouseApply/{id}")
+    public R comActWarehouseApplySelectOne(@PathVariable("id") Integer id);
+
+    /**
+     * 新增数据
+     *
+     * @param comActWarehouseApply 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/comActWarehouseApply")
+    public R comActWarehouseApplyInsert(@RequestBody ComActWarehouseApplyVO comActWarehouseApply);
+
+    /**
+     * 修改数据
+     *
+     * @param comActWarehouseApply 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/comActWarehouseApply/update")
+    public R comActWarehouseApplyUpdate(@RequestBody ComActWarehouseApplyVO comActWarehouseApply);
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("/comActWarehouseApply/del")
+    public R comActWarehouseApplyDelete(@RequestParam("id") Long id);
+
+    /**
+     * 生成二维码
+     * @param qrCodeVO
+     * @return
+     */
+    @PostMapping("/comActWarehouseApply/getQRCode")
+    public R comActWarehouseApplyGetQRCode(@RequestBody QRCodeVO qrCodeVO);
+
+    /**
+     * 社区Id查询基础配置
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/comActWarehouseBase")
+    public R comActWarehouseBaseSelectOne(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 新增数据
+     *
+     * @param comActWarehouseBase 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/comActWarehouseBase")
+    public R comActWarehouseBaseInsert(@RequestBody ComActWarehouseBaseVO comActWarehouseBase);
+
+    /**
+     * 导出数据
+     */
+    @PostMapping("/comActWarehouseApply/export")
+    public R comActWarehouseApplyExport(@RequestBody CommonPage commonPage);
+
+    /**
+     * 后台导入捐赠物品
+     * @param list
+     * @return
+     */
+    @PostMapping("/comActWarehouseDonates/import")
+    R batchImportWarehouseDonates(@RequestBody List<WarehouseDonatesExcelVO> list);
+
+    /**
+     * 后台导出捐赠物品表格
+     * @param exportDonatesDTO
+     * @return
+     */
+    @PostMapping("/comActWarehouseDonates/donates/export")
+    R exportDonates(@RequestBody ExportDonatesDTO exportDonatesDTO);
+
+    /**
+     * 分页查询捐赠物品
+     * @param pageDonatesDTO
+     * @return
+     */
+    @PostMapping("/comActWarehouseDonates/donates/page")
+    R pageDonates(@RequestBody PageDonatesDTO pageDonatesDTO);
+
+    /**
+     * 新增物品捐赠
+     * @param comActWarehouseDonatesDTO
+     * @return
+     */
+    @PostMapping("/comActWarehouseDonates/donates/add")
+    R addDonates(@RequestBody ComActWarehouseDonatesDTO comActWarehouseDonatesDTO);
+
+    /**
+     * 查看物品捐赠详情
+     * @param donatesId
+     * @param isWhich
+     * @param userId
+     * @return
+     */
+    @GetMapping("/comActWarehouseDonates/donates/get")
+    R getDonates(@RequestParam("donatesId") Long donatesId, @RequestParam("isWhich") Integer isWhich, @RequestParam("userId") Long userId);
+
+    /**
+     * 捐赠物品后台签收
+     * @param comActWarehouseDonatesDTO
+     * @return
+     */
+    @PostMapping("/comActWarehouseDonates/donates/signing")
+    R signingDonates(@RequestBody ComActWarehouseDonatesDTO comActWarehouseDonatesDTO);
+
+    /**
+     * 用户取消捐赠
+     * @param donatesId
+     * @param currentUser
+     * @return
+     */
+    @GetMapping("/comActWarehouseDonates/donates/cancel")
+    R cancelDonates(@RequestParam("donatesId") Long donatesId, @RequestParam("currentUser") Long currentUser);
+
+    /**
+     * 捐赠物品统计查询
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/comActWarehouseDonates/donates/statistics")
+    R getDonatesStatistics(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/comActWarehouseOperation/queryAll")
+    public R comActWarehouseOperationSelectAll(@RequestBody CommonPage commonPage);
+
+    /**
+     * 物品领用
+     * @param comActWarehouseApplyDTO
+     * @return
+     */
+    @PostMapping("/comActWarehouseDonates/donates/apply")
+    R applyDonates(@RequestBody ComActWarehouseApplyDTO comActWarehouseApplyDTO);
+
+    /**
+     * 生成二维码
+     * @param qrCodeVO
+     * @return
+     */
+    @PostMapping("/comActActivityCode/getQRCode")
+    public R getQRCode(@RequestBody QRActivityCodeVO qrCodeVO);
+
+    /**
+     * 重置二维码
+     * @param qrCodeVO
+     * @return
+     */
+    @PostMapping("/comActActivityCode/resetQRCode")
+    public R resetQRCode(@RequestBody QRActivityCodeVO qrCodeVO);
+
+    /**
+     * 实有房屋数据修复定时任务
+     * @return  实有房屋数据修复定时任务
+     */
+    @GetMapping("/population/house/status/task")
+    R timedTaskHouseJobHandler();
+
+    /**
+     * 导出特殊群体
+     *
+     * @param pageInputUserDTO 请求参数
+     * @return 特殊群体列表
+     */
+    @PostMapping("common/data/special/export")
+    R specialInputUserExport(@RequestBody PageInputUserDTO pageInputUserDTO);
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/comActAnnouncement/queryAll")
+    R comActAnnouncementSelectAll(@RequestBody CommonPage commonPage);
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/comActAnnouncement/{id}")
+    R comActAnnouncementSelectOne(@PathVariable("id") Long id);
+
+    /**
+     * 新增数据
+     *
+     * @param comActAnnouncementVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/comActAnnouncement")
+    R comActAnnouncementInsert(@RequestBody ComActAnnouncementVO comActAnnouncementVO);
+
+    /**
+     * 修改数据
+     *
+     * @param comActAnnouncementVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/comActAnnouncement/update")
+    R comActAnnouncementUpdate(@RequestBody ComActAnnouncementVO comActAnnouncementVO);
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("/comActAnnouncement/del")
+    R comActAnnouncementDelete(@RequestParam("id") Long id);
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/comActColumn/queryAll")
+    R comActColumnSelectAll(@RequestBody CommonPage commonPage);
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/comActColumn/{id}")
+    R comActColumnSelectOne(@PathVariable("id") Long id);
+
+    /**
+     * 新增数据
+     *
+     * @param comActColumn 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/comActColumn")
+    R comActColumnInsert(@RequestBody ComActColumnVO comActColumn);
+
+    /**
+     * 修改数据
+     *
+     * @param comActColumn 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/comActColumn/update")
+    R comActColumnUpdate(@RequestBody ComActColumnVO comActColumn);
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("/comActColumn/del")
+    R comActColumnDelete(@RequestParam("id") Long id);
+
+    /**
+     * 高龄认证添加
+     *
+     * @param comElderAuthRecordVO
+     * @return
+     */
+    @PostMapping("/elders/authRecord/add")
+    R addAuthRecord(@RequestBody ComElderAuthRecordVO comElderAuthRecordVO);
+
+    /**
+     * 养老认证添加
+     *
+     * @param comElderAuthRecordVO
+     * @return
+     */
+    @PostMapping("/elders/pensionAuthRecord/add")
+    R addPensionAuthRecordVO(@RequestBody ComElderAuthRecordVO comElderAuthRecordVO);
+    /**
+     * 活动报名签到情况
+     * @param id 活动主键id
+     * @return
+     */
+    @GetMapping("/activity/sign-in/list")
+    R listSignInRecord(@RequestParam("id") Long id);
+
+    /**
+     * 活动签到记录
+     * @param id 活动主键
+     * @param userId 用户id
+     * @return
+     */
+    @GetMapping("/activity/regist/list")
+    R listRegistRecord(@RequestParam("id")  Long id, @RequestParam("userId") Long userId);
+
+    /**
+     * 获取活动类型(目前只有志愿者活动需要获取)
+     * @param communityId
+     * @param type
+     * @return
+     */
+    @GetMapping("/activity/type/list")
+    R listActivityType(@RequestParam("communityId") Long communityId, @RequestParam("type") Integer type);
+
+    /**
+     * 添加活动类型
+     * @param comActActivityTypeVO
+     * @return
+     */
+    @PostMapping("/activity/type/add")
+    R addActivityType(@RequestBody ComActActivityTypeVO comActActivityTypeVO);
+
+    /**
+     * 我的评价
+     * @param userId
+     * @param activityId
+     * @return
+     */
+    @GetMapping("/activity/my-evaluate")
+    R listMyActivityEvaluate(@RequestParam("userId") Long userId, @RequestParam("activityId") Long activityId);
+
+    /**
+     * 分页查询居家隔离统计
+     * @param detailedAdminDTO
+     * @return
+     */
+    @PostMapping("/reserve/admin/register/homeQuarantine/page")
+    R pageRegisterHomeQuarantine(PageReserveRegisterDetailedAdminDTO detailedAdminDTO);
+
+    /**
+     * 居家隔离导出
+     * @param pageReserveRegisterDetailedAdminDTO
+     * @return
+     */
+    @PostMapping("/reserve/admin/homeQuarantine/export")
+    R exportHomeQuarantine(@RequestBody PageReserveRegisterDetailedAdminDTO pageReserveRegisterDetailedAdminDTO);
+
+    /**
+     * 分页查询物业宣传
+     * @param pageComPropertyPublicityDTO
+     * @return
+     */
+    @PostMapping("/property/publicity/page")
+    R pageComPropertyPublicity(@RequestBody PageComPropertyPublicityDTO pageComPropertyPublicityDTO);
+
+    /**
+     * 新增物业宣传
+     * @param comPropertyPublicityDTO
+     * @return
+     */
+    @PostMapping("/property/publicity/add")
+    R addComPropertyPublicity(@RequestBody ComPropertyPublicityDTO comPropertyPublicityDTO);
+
+    /**
+     * 修改物业宣传
+     * @param comPropertyPublicityDTO
+     * @return
+     */
+    @PostMapping("/property/publicity/update")
+    R updateComPropertyPublicity(@RequestBody ComPropertyPublicityDTO comPropertyPublicityDTO);
+
+    /**
+     * 查看物业宣传信息
+     * @param id
+     * @return
+     */
+    @GetMapping("/property/publicity/get")
+    R getComPropertyPublicity(@RequestParam("id") Long id);
+
+    /**
+     * 删除物业宣传
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/property/publicity/delete")
+    R deleteComPropertyPublicity(@RequestParam("id") Long id);
+
+    /**
+     * 物业公司列表
+     *
+     * @param villageId
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/property/publicity/list/property")
+    R listProperty(@RequestParam(value = "villageId", required = false) Long villageId, @RequestParam("communityId") Long communityId);
+
+    /**
+     * 分页查询物业宣传-小程序
+     * @param pageComPropertyPublicityDTO
+     * @return
+     */
+    @PostMapping("/property/publicity/page/applet")
+    R pageComPropertyPublicityApplet(@RequestBody PageComPropertyPublicityDTO pageComPropertyPublicityDTO);
+
+    /**
+     * 增加物业宣传浏览量
+     * @param id
+     * @return
+     */
+    @GetMapping("/property/publicity/incr-view")
+    R incrPropertyPublicityView(@RequestParam("id") Long id);
+
+    /**
+     * 获取预设图片
+     * @param type
+     * @param subtype
+     * @return
+     */
+    @GetMapping("/picture/library/get")
+    R getPresetPictureLibrary(@RequestParam("type") Integer type, @RequestParam("subtype") Integer subtype);
+
+    /**
+     * 分页查询房屋租赁基础配置
+     * @param pageRentingHousesConfigDTO
+     * @return
+     */
+    @PostMapping("/rentingHousesConfig/page")
+    R pageRentingHousesConfig(@RequestBody PageRentingHousesConfigDTO pageRentingHousesConfigDTO);
+
+    /**
+     * 更新配置信息
+     * @param rentingHousesConfigDTO
+     * @return
+     */
+    @PutMapping("/rentingHousesConfig/update")
+    R updateRentingHousesConfig(@RequestBody RentingHousesConfigDTO rentingHousesConfigDTO);
+
+    /**
+     * 新增房源信息
+     * @param registerDTO
+     * @return
+     */
+    @PostMapping("/rentingHourseRegister/register")
+    R registerRentingHouse(@RequestBody RentingHouseRegisterDTO registerDTO);
+
+    /**
+     * 编辑房源信息
+     * @param registerDTO
+     * @return
+     */
+    @PostMapping("/rentingHourseRegister/update")
+    R updateRentingHouse(@RequestBody RentingHouseRegisterDTO registerDTO);
+
+    /**
+     * 分页获取房源信息
+     * @param pageRegisterDTO
+     * @return
+     */
+    @PostMapping("/rentingHourseRegister/page")
+    R pageRentingHouse(@RequestBody PageRentingHouseRegisterDTO pageRegisterDTO);
+
+    /**
+     * 发布/取消发布 房源信
+     * @param releaseOrCancelHouseDTO
+     * @return
+     */
+    @PutMapping("/rentingHourseRegister/releaseOrCancel")
+    R releaseOrCancelHouse(@RequestBody ReleaseOrCancelHouseDTO releaseOrCancelHouseDTO);
+
+    /**
+     * 删除房源信息
+     * @param registerId
+     * @return
+     */
+    @DeleteMapping("/rentingHourseRegister/delete")
+    R deleteRentingHouse(@RequestParam("registerId") Long registerId);
+
+    /**
+     * 获取详情-房源信息
+     * @param registerId
+     * @return
+     */
+    @GetMapping("/rentingHourseRegister/get")
+    R getRentingHouse(@RequestParam("registerId") Long registerId);
+
+    /**
+     * 附近的房源
+     */
+    @PostMapping("/rentingHourseRegister/nearby")
+    R nearby(@RequestBody NearbyDTO nearbyDTO);
+
+    /**
+     * 小程序分页获取房源信息
+     * @param pageRegisterDTO
+     * @return
+     */
+    @PostMapping("/rentingHourseRegister/houseList")
+    R pageRentingHouseApplet(@RequestBody PageRentingHouseRegisterDTO pageRegisterDTO);
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/rentingHourseOrder/queryAll")
+    R selectRentingHourseOrderAll(@RequestBody CommonPage commonPage);
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/rentingHourseOrder/{id}")
+    R selectRentingHourseOrderOne(@PathVariable("id") Long id);
+
+    /**
+     * 新增数据
+     *
+     * @param rentingHourseOrder 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/rentingHourseOrder")
+    R insertRentingHourseOrder(@RequestBody RentingHourseOrderVO rentingHourseOrder);
+
+    /**
+     * 修改数据
+     *
+     * @param rentingHourseOrdervo 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/rentingHourseOrder/update")
+    R updateRentingHourseOrder(@RequestBody RentingHourseOrderVO rentingHourseOrdervo);
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("/rentingHourseOrder/del")
+    R deleteRentingHourseOrder(@RequestParam("id") Long id);
+
+    /**
+     * 支付回调处理订单状态以及房屋状态
+     */
+    @PostMapping("/rentingHourseOrder/wxNotify")
+    R wxNotifyRentingHourseOrder(@RequestBody WxPayNotifyOrderVO wxPayNotifyOrderVO);
+
+    /**
+     * 支付付款
+     */
+    @PostMapping("/rentingHourseOrder/wxPay")
+    R wxPayRentingHourseOrder(@RequestBody WxPayOrderVO wxPayOrderVO);
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/rentingHoursePreOrder/queryAll")
+    R selectAllRentingHoursePreOrder(@RequestBody CommonPage commonPage);
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/rentingHoursePreOrder/{id}")
+    R selectOneRentingHoursePreOrder(@PathVariable("id") Long id);
+
+    /**
+     * 新增数据
+     *
+     * @param rentingHoursePreOrderVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/rentingHoursePreOrder")
+    R insertRentingHoursePreOrder(@RequestBody RentingHoursePreOrderVO rentingHoursePreOrderVO);
+
+    /**
+     * 修改数据
+     *
+     * @param rentingHoursePreOrderVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/rentingHoursePreOrder/update")
+    R updateRentingHoursePreOrder(@RequestBody RentingHoursePreOrderVO rentingHoursePreOrderVO);
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("/rentingHoursePreOrder/del")
+    R deleteRentingHoursePreOrder(@RequestParam("id") Long id);
+
+    /**
+     * 普通订单统计
+     */
+    @PostMapping("/rentingHourseOrder/statics")
+    R staticsRentingHourseOrder(@RequestBody RentingHourseOrderVO rentingHourseOrderVO);
+
+    /**
+     * 定金订单统计
+     */
+    @PostMapping("/rentingHoursePreOrder/statics")
+    R staticsRentingHoursePreOrder(@RequestBody RentingHoursePreOrderVO rentingHoursePreOrderVO);
+
+    /**
+     * 获取房屋租赁配置
+     * @return
+     * @param type
+     */
+    @GetMapping("/rentingHousesConfig/getConfig")
+    R getRentingHouseConfig(@RequestParam("type") Integer type);
+
+    @GetMapping("/rentingHourseRegister/updateAllHouseUnionAppCode")
+    @Async
+    void updateAllHouseUnionAppCode(@RequestParam("areaCode") String areaCode);
+
+    /**
+     * 西区大屏治理数据
+     */
+    @GetMapping("/screen/getWestScreenStatics")
+    R westScreenStatics();
+
+    /**
+     * 西区大屏一标三实数据
+     * @return  西区大屏一标三实数据
+     */
+    @GetMapping("/screen/getComprehensivePopulationStatics")
+    R getComprehensivePopulationStatics(@RequestParam("streetId") Long streetId);
+
+    @GetMapping("/screen/getComprehensiveStreetList")
+    R getComprehensiveStreetList();
+
+    /**
+     * 通过社区id查询社区账号密码
+     * @param communityId   社区id
+     * @return  查询社区账号密码
+     */
+    @GetMapping("/screen/getCommunityPassword")
+    R getCommunityPassword(@RequestParam("communityId") Long communityId);
+
+    @GetMapping("/reserve/bigScreenStaticsReserve")
+    R bigScreenStaticsReserve(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 党员活动折线图
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/bigscreen/party/partyActivityLine")
+    R partyActivityLine(@RequestParam("communityId")Long communityId);
+
+    /**
+     * 党员积分前3
+     * @param pageBigScreenStatisticPartyOrg
+     * @return
+     */
+    @PostMapping("/bigscreen/party/partyActivityTop")
+    R partyActivityTop(@RequestBody PageBigScreenStatisticPartyOrg pageBigScreenStatisticPartyOrg);
+
+    /**
+     * 社区服务大屏数据分析接口
+     */
+    @GetMapping("/screen/serviceData")
+    R serviceData(@RequestParam("communityId")Long communityId);
+
+    /**
+     * 服务居民接口
+     */
+    @GetMapping("/screen/serviceUser")
+    R serviceUser(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 大数据分析平台-居民自治
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/resident/autonomy")
+    R getResidentAutonomy(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 大数据分析平台-清网治格
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/grids/governance")
+    R getGridsGovernance(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 大数据分析平台-社区服务
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/community/service")
+    R getCommunityServiceStatistics(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 分页获取热度排行商家
+     * @param pagePopularMerchantDTO
+     * @return
+     */
+    @PostMapping("/screen/merchant/popular")
+    R getScreenPopularMerchants(@RequestBody PagePopularMerchantDTO pagePopularMerchantDTO);
+
+    /**
+     * 新版大屏首页接口
+     */
+    @GetMapping("/screen/indexInfo")
+    R indexInfo(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 首页二级页面-微心愿
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/index/microWish")
+    R indexMicroWish(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 首页二级页面-随手拍
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/index/easyPhoto")
+    R indexEasyPhoto(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 首页二级页面-随手拍展示列表
+     * @return
+     */
+    @PostMapping("/screen/index/easyPhotoList")
+    R indexEasyPhotoList(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 首页二级页面-社区问卷
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/index/questionnaire")
+    R indexQuestionnaire(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 首页二级页面-社区动态
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/index/dyn")
+    R indexDyn(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 首页二级页面-社区动态展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/screen/index/dynList")
+    R indexDynList(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 首页二级页面-邻里圈
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/index/neighbor")
+    R indexNeighbor(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 首页二级页面-邻里圈展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/screen/index/neighborList")
+    R indexNeighborList(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 首页二级页面-便民商家
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/index/merchant")
+    R indexMerchant(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 首页二级页面-商家展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/screen/index/merchantList")
+    R indexMerchantList(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 首页二级页面-微心愿展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/screen/index/microWishList")
+    R indexMicroWishList(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 首页二级页面-社区问卷展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/screen/index/questionnaireList")
+    R indexQuestionnaireList(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 首页二级页面-居民活动
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/index/residentAct")
+    R indexResidentAct(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 首页二级页面-居民活动展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/screen/index/residentActList")
+    R indexResidentActList(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 首页二级页面-志愿者活动
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/index/volunteerAct")
+    R indexVolunteerAct(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 首页二级页面-志愿者活动展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/screen/index/volunteerActList")
+    R indexVolunteerActList(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 清网治格-根据事件分类获取近1月的社区事件数据
+     * @param type
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/event/list")
+    R getEventList(@RequestParam(value = "type") Integer type, @RequestParam(value = "communityId") Long communityId);
+
+    /**
+     * 清网治格-社区事件数据分页
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/screen/event/page")
+    R pageEventList(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 新增数字商业街商家
+     * @param mcsMerchantDTO
+     * @return
+     */
+    @PostMapping("/microcommercialstreet/merchant/add")
+    R addMcsMerchant(@RequestBody McsMerchantDTO mcsMerchantDTO);
+
+    /**
+     * 编辑数字商业街商家
+     * @param mcsMerchantDTO
+     * @return
+     */
+    @PutMapping("/microcommercialstreet/merchant/put")
+    R putMcsMerchant(@RequestBody McsMerchantDTO mcsMerchantDTO);
+
+    /**
+     * 查询数字商业街商家详情
+     * @param merchantId
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/merchant/get")
+    R getMcsMerchant(@RequestParam("merchantId") Long merchantId);
+
+    /**
+     * 删除数字商业街商家
+     * @param merchantId
+     * @param userId
+     * @return
+     */
+    @DeleteMapping("/microcommercialstreet/merchant/delete")
+    R deleteMcsMerchant(@RequestParam("merchantId") Long merchantId, @RequestParam("userId") Long userId);
+
+    /**
+     * 分页查询数字商业街商家
+     * @param pageMcsMerchantDTO
+     * @return
+     */
+    @PostMapping("/microcommercialstreet/merchant/page")
+    R pageMcsMerchant(@RequestBody PageMcsMerchantDTO pageMcsMerchantDTO);
+
+    /**
+     * 禁用/启用数字商业街商家
+     * @param disableOrEnableMcsMerchantDTO
+     * @return
+     */
+    @PutMapping("/microcommercialstreet/merchant/disable-or-enable")
+    R disableOrEnableMcsMerchant(@RequestBody DisableOrEnableMcsMerchantDTO disableOrEnableMcsMerchantDTO);
+
+    /**
+     * 获取所有数字商业街配置
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/config/all")
+    R getAllMcsConfig();
+
+    /**
+     * 修改数字商业街配置
+     * @param configs
+     * @return
+     */
+    @PutMapping("/microcommercialstreet/config/put")
+    R putMcsConfig(@RequestBody List<McsConfigVO> configs);
+
+    /**
+     * 分页查询戳戳游戏
+     * @param pageMcsGameDTO
+     * @return
+     */
+    @PostMapping("/microcommercialstreet/game/page")
+    R pageMcsGame(@RequestBody PageMcsGameDTO pageMcsGameDTO);
+
+    /**
+     * 设为/取消游戏热门
+     * @param setPopularForGameDTO
+     * @return
+     */
+    @PutMapping("/microcommercialstreet/game/setPopular")
+    R setPopularForGame(@RequestBody SetPopularForGameDTO setPopularForGameDTO);
+
+    /**
+     * 上架/下架戳戳游戏
+     * @param setShelfForGameDTO
+     * @return
+     */
+    @PutMapping("/microcommercialstreet/game/setShelf")
+    R setShelfForGame(@RequestBody SetShelfForGameDTO setShelfForGameDTO);
+
+    /**
+     * 删除戳戳游戏
+     * @param gameId
+     * @param userId
+     * @return
+     */
+    @DeleteMapping("/microcommercialstreet/game/delete")
+    R deleteMcsGame(@RequestParam("gameId") Long gameId, @RequestParam("userId") Long userId);
+
+    /**
+     * 分页查询戳戳资讯
+     * @param pageMcsInformationDTO
+     * @return
+     */
+    @PostMapping("/microcommercialstreet/information/page")
+    R pageMcsInfo(@RequestBody PageMcsInformationDTO pageMcsInformationDTO);
+
+    /**
+     * 上架/下架戳戳资讯
+     * @param setShelfForInfoDTO
+     * @return
+     */
+    @PutMapping("/microcommercialstreet/information/setShelf")
+    R setShelfForMcsInfo(@RequestBody SetShelfForInfoDTO setShelfForInfoDTO);
+
+    /**
+     * 删除戳戳资讯
+     * @param infoId
+     * @param userId
+     * @return
+     */
+    @DeleteMapping("/microcommercialstreet/information/delete")
+    R deleteMcsInfo(@RequestParam("infoId") Long infoId, @RequestParam("userId") Long userId);
+
+    /**
+     * 分页查询评价记录
+     * @param pageMcsEvaluateDTO
+     * @return
+     */
+    @PostMapping("/microcommercialstreet/evaluate/page")
+    R pageMcsEvaluate(@RequestBody PageMcsEvaluateDTO pageMcsEvaluateDTO);
+
+    /**
+     * 查询评价记录详情
+     * @param evaluateId
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/evaluate/get")
+    R getMcsEvaluate(@RequestParam("evaluateId") Long evaluateId);
+
+    /**
+     * 删除评价记录
+     * @param evaluateId
+     * @return
+     */
+    @DeleteMapping("/microcommercialstreet/evaluate/delete")
+    R deleteMcsEvaluate(@RequestParam("evaluateId") Long evaluateId);
+
+    /**
+     * 新增戳戳游戏
+     * @param mcsGameDTO
+     * @return
+     */
+    @PostMapping("/microcommercialstreet/game/add")
+    R addMcsGame(@RequestBody McsGameDTO mcsGameDTO);
+
+    /**
+     * 编辑戳戳游戏
+     * @param mcsGameDTO
+     * @return
+     */
+    @PutMapping("/microcommercialstreet/game/put")
+    R putMcsGame(@RequestBody McsGameDTO mcsGameDTO);
+
+    /**
+     * 发布戳戳游戏
+     * @param gameId
+     * @param userId
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/game/publish")
+    R publishMcsGame(@RequestParam("gameId") Long gameId, @RequestParam("userId") Long userId);
+
+    /**
+     * 结束戳戳游戏
+     * @param gameId
+     * @param userId
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/game/finish")
+    R finishMcsGame(@RequestParam("gameId") Long gameId, @RequestParam("userId") Long userId);
+
+    /**
+     * 戳戳游戏/资讯顶部统计数据
+     * @param type
+     * @param userId
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/statistics/top")
+    R getTopStatistics(@RequestParam("type") Integer type, @RequestParam("userId") Long userId);
+
+    /**
+     * 新增戳戳资讯
+     * @param mcsInfoDTO
+     * @return
+     */
+    @PostMapping("/microcommercialstreet/information/add")
+    R addMcsInfo(@RequestBody McsInfoDTO mcsInfoDTO);
+
+    /**
+     * 编辑戳戳资讯
+     * @param mcsInfoDTO
+     * @return
+     */
+    @PutMapping("/microcommercialstreet/information/put")
+    R putMcsInfo(@RequestBody McsInfoDTO mcsInfoDTO);
+
+    /**
+     * 发布戳戳资讯
+     * @param infoId
+     * @param userId
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/information/publish")
+    R publishMcsInfo(@RequestParam("infoId") Long infoId, @RequestParam("userId") Long userId);
+
+    /**
+     * 新增产品信息
+     * @param mcsProductDTO
+     * @return
+     */
+    @PostMapping("/microcommercialstreet/product/add")
+    R addMcsProduct(@RequestBody McsProductDTO mcsProductDTO);
+
+    /**
+     * 编辑产品信息
+     * @param mcsProductDTO
+     * @return
+     */
+    @PutMapping("/microcommercialstreet/product/put")
+    R putMcsProduct(@RequestBody McsProductDTO mcsProductDTO);
+
+    /**
+     * 删除产品信息
+     * @param deleteProductDTO
+     * @return
+     */
+    @PostMapping("/microcommercialstreet/product/delete")
+    R deleteMcsProduct(@RequestBody DeleteProductDTO deleteProductDTO);
+
+    /**
+     * 上架/下架产品信息
+     * @param setShelfForProductDTO
+     * @return
+     */
+    @PutMapping("/microcommercialstreet/product/setShelf")
+    R setShelfForMcsProduct(@RequestBody SetShelfForProductDTO setShelfForProductDTO);
+
+    /**
+     * 分页查询产品信息
+     * @param pageMcsProductDTO
+     * @return
+     */
+    @PostMapping("/microcommercialstreet/product/page")
+    R pageMcsProduct(@RequestBody PageMcsProductDTO pageMcsProductDTO);
+
+    /**
+     * 获取产品标签列表
+     * @param userId
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/label/list")
+    R getMcsLabelList(@RequestParam("userId") Long userId);
+
+    /**
+     * check商家/店铺是否有效
+     * @param userId
+     * @return
+     */
+    @GetMapping("/shop/checkStoreIsValid")
+    R checkStoreIsValid(@RequestParam("userId") Long userId);
+
+    /**
+     * 根据account查询微商业街商家信息
+     * @param account
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/getMcsMerchantByAccount")
+    R getMcsMerchantByAccount(@RequestParam("account") String account);
+
+    /**
+     * 完成订单更新/新增商家信息
+     * @param merchantName
+     * @param configId
+     * @param userId
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/updateAfterOrder")
+    R updateMcsMerchantAfterOrder(@RequestParam(value = "merchantName", required = false) String merchantName,
+                                  @RequestParam("configId") Long configId, @RequestParam("userId") Long userId);
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/mcsOrder/queryAll")
+    R selectAllMscOrder(@RequestBody CommonPage commonPage);
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/mcsOrder/{id}")
+    R selectOneMscOrder(@PathVariable("id") Long id);
+
+    /**
+     * 新增数据
+     *
+     * @param mcsOrderVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/mcsOrder")
+    R insertMscOrder(@RequestBody McsOrderVO mcsOrderVO);
+
+    /**
+     * 修改数据
+     *
+     * @param mcsOrderVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/mcsOrder/update")
+    R updateMscOrder(@RequestBody McsOrderVO mcsOrderVO);
+
+    /**
+     * 微信支付
+     * @param mcsOrderVO
+     * @return
+     */
+    @PostMapping("/mcsOrder/wxPay")
+    R wxPayMscOrder(McsOrderVO mcsOrderVO);
+
+    /**
+     * 发送提醒短信
+     * @param id
+     * @return
+     */
+    @GetMapping("/mcsOrder/sendContent")
+    R sendContentMcsOrder(@RequestParam("id") Long id);
+
+    /**
+     *微信支付回调
+     * @param mcsOrderVO
+     * @return
+     */
+    @PostMapping("/mcsOrder/notify")
+    R notifyMcsOrder(@RequestBody McsOrderVO mcsOrderVO);
+
+    /**
+     * 验证码登录
+     * @param loginDTO
+     * @return
+     */
+    @PostMapping("/microcommercialstreet/loginWithPhone")
+    R loginWithPhone(@RequestBody LoginWithPhoneDTO loginDTO);
+
+    /**
+     * 首页顶部数据
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/index/topData")
+    R getMcsIndexTopData();
+
+    /**
+     * 戳戳卷领取
+     * @param gameId
+     * @param userId
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/coupon/apply")
+    R applyMcsCoupon(@RequestParam("gameId") Long gameId, @RequestParam("userId") Long userId);
+
+    /**
+     * h5分页查询戳戳资讯
+     * @param pageMcsInformationDTO
+     * @return
+     */
+    @PostMapping("/microcommercialstreet/information/pageH5")
+    R pageH5McsInfo(@RequestBody PageMcsInformationDTO pageMcsInformationDTO);
+
+    /**
+     * h5分页查询戳戳游戏
+     * @param pageMcsGameDTO
+     * @return
+     */
+    @PostMapping("/microcommercialstreet/game/pageH5")
+    R pageH5McsGame(@RequestBody PageMcsGameDTO pageMcsGameDTO);
+
+    /**
+     * 游戏详情
+     * @param gameId
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/game/get")
+    R getMcsGame(@RequestParam("gameId") Long gameId);
+
+    /**
+     * 资讯详情
+     * @param infoId
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/info/get")
+    R getMcsInfo(@RequestParam("infoId") Long infoId);
+
+    /**
+     * H5分页查询数字商业街商家
+     * @param pageMcsMerchantDTO
+     * @return
+     */
+    @PostMapping("/microcommercialstreet/merchant/pageH5")
+    R pageH5McsMerchant(@RequestBody PageMcsMerchantDTO pageMcsMerchantDTO);
+
+    /**
+     * 我的戳戳卷
+     * @param type
+     * @param userId
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/myCoupon")
+    R getMyCoupon(@RequestParam(value = "type", required = false) Integer type, @RequestParam("userId") Long userId);
+
+    /**
+     * 新增评价记录
+     * @param mcsEvaluateDTO
+     * @return
+     */
+    @PostMapping("/microcommercialstreet/evaluate/add")
+    R addMcsEvaluate(@RequestBody McsEvaluateDTO mcsEvaluateDTO);
+
+    /**
+     * 我的评价-参与游戏列表
+     * @param pageJoinGameListDTO
+     * @return
+     */
+    @PostMapping("/microcommercialstreet/joinGame/page")
+    R getJoinGameList(@RequestBody PageJoinGameListDTO pageJoinGameListDTO);
+
+    /**
+     * 戳戳卷核销
+     * @param couponId
+     * @param userId
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/coupon/verify")
+    R verifyMcsCoupon(@RequestParam("couponId") Long couponId, @RequestParam("userId") Long userId);
+
+    /**
+     * 分页查询核销记录
+     * @param pageVerifyRecordDTO
+     * @return
+     */
+    @PostMapping("/microcommercialstreet/verifyRecord/page")
+    R pageMcsVerifyRecord(@RequestBody PageVerifyRecordDTO pageVerifyRecordDTO);
+
+    /**
+     * 游戏统计
+     * @param userId
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/game/statistics")
+    R getMcsGameStatistics(@RequestParam("userId") Long userId);
+
+    /**
+     * 修改用戶信息
+     * @param putUserInfoDTO
+     * @return
+     */
+    @PutMapping("/microcommercialstreet/putUserInfo")
+    R putUserInfo(@RequestBody PutUserInfoDTO putUserInfoDTO);
+
+    /**
+     * 根据userId获取商家信息
+     * @param userId
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/retrieveMcsMerchantInfoByUserId")
+    R retrieveMcsMerchantInfoByUserId(@RequestParam("userId") Long userId);
+
+    /**
+     * 定时任务-每隔5分钟执行一次,将已到期的微商业街商家旗下所有的游戏/资讯全部下架
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/offResourceForMcsMerchant")
+    R offResourceForMcsMerchant();
+
+    /**
+     * 获取产品信息详情
+     * @param productId
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/product/get")
+    R getMcsProduct(@RequestParam("productId") Long productId);
+
+    /**
+     * 定时任务-每隔5分钟执行一次,将已到期的微商业街游戏结束
+     * @return
+     */
+    @GetMapping("/microcommercialstreet/endStatusForMcsGame")
+    R endStatusForMcsGame();
+
+    @GetMapping("/reserve/record/delete")
+    R deleteRecord(@RequestParam("recordId")Long recordId);
+
+    /**
+     * 历史数据人员类型填充
+     * @param newVoList
+     * @param communityId
+     * @param userId
+     * @return
+     */
+    @PostMapping("/common/data/history/filled")
+    R filledPopulationPersonType(@RequestBody List<ComMngPopulationServeExcelVO> newVoList,
+                                 @RequestParam("communityId") Long communityId, @RequestParam("userId") Long userId);
+
+    /**
+     * 社区后台-分页查询志愿者组织队伍
+     *
+     * @param orgTeamDto 请求参数
+     * @return 志愿者组织队伍
+     */
+    @PostMapping("/comMngVolunteerOrgTeam/page")
+    R pageVolunteerOrgAdmin(@RequestBody PageComMngVolunteerOrgTeamDto orgTeamDto);
+
+    /**
+     * 社区后台-新增志愿者组织队伍
+     *
+     * @param orgTeamDto 请求参数
+     * @return 新增结果
+     */
+    @PostMapping("/comMngVolunteerOrgTeam/add")
+    R addVolunteerOrgAdmin(@RequestBody AddComMngVolunteerOrgTeamDto orgTeamDto);
+
+    /**
+     * 社区后台-编辑志愿者组织队伍
+     *
+     * @param orgTeamDto 请求参数
+     * @return 编辑结果
+     */
+    @PutMapping("/comMngVolunteerOrgTeam/edit")
+    R editVolunteerOrgAdmin(@RequestBody EditComMngVolunteerOrgTeamDto orgTeamDto);
+
+    /**
+     * 社区后台-删除志愿者组织队伍
+     *
+     * @param id 主键id
+     * @return 删除结果
+     */
+    @GetMapping("/comMngVolunteerOrgTeam/delete")
+    R deleteVolunteerOrgAdmin(@RequestParam("id") Long id);
+
+    /**
+     * 社区后台-查询志愿者组织列表
+     *
+     * @param orgTeamDto 请求参数
+     * @return 志愿者组织列表
+     */
+    @PostMapping("/comMngVolunteerOrgTeam/list")
+    R listVolunteerOrgAdmin(@RequestBody PageComMngVolunteerOrgTeamDto orgTeamDto);
+
+    /**
+     * 社区后台-分页查询服务类型
+     *
+     * @param serviceTypeDto 请求参数
+     * @return 服务类型列表
+     */
+    @PostMapping("/comMngVolunteerServiceType/page")
+    R pageServiceTypeAdmin(@RequestBody PageComMngVolunteerServiceTypeDto serviceTypeDto);
+
+    /**
+     * 社区后台-新增服务类型
+     *
+     * @param serviceTypeDto 请求参数
+     * @return 新增结果
+     */
+    @PostMapping("/comMngVolunteerServiceType/add")
+    R addServiceTypeAdmin(@RequestBody AddComMngVolunteerServiceTypeDto serviceTypeDto);
+
+    /**
+     * 社区后台-编辑服务类型
+     *
+     * @param serviceTypeDto 请求参数
+     * @return 编辑结果
+     */
+    @PutMapping("/comMngVolunteerServiceType/edit")
+    R editServiceTypeAdmin(@RequestBody EditComMngVolunteerServiceTypeDto serviceTypeDto);
+
+    /**
+     * 社区后台-删除服务类型
+     *
+     * @param id 主键id
+     * @return 删除结果
+     */
+    @GetMapping("/comMngVolunteerServiceType/delete")
+    R deleteServiceTypeAdmin(@RequestParam("id") Long id);
+
+    /**
+     * 社区后台-分页查询志愿者技能列表
+     *
+     * @param volunteerSkillDto 请求参数
+     * @return 志愿者技能列表
+     */
+    @PostMapping("/comMngVolunteerSkill/page")
+    R pageVolunteerSkillAdmin(@RequestBody PageComMngVolunteerSkillDto volunteerSkillDto);
+
+    /**
+     * 社区后台-新增志愿者技能
+     *
+     * @param volunteerSkillDto 请求参数
+     * @return 新增结果
+     */
+    @PostMapping("/comMngVolunteerSkill/add")
+    R addVolunteerSkillAdmin(@RequestBody AddComMngVolunteerSkillDto volunteerSkillDto);
+
+    /**
+     * 社区后台-编辑志愿者技能
+     *
+     * @param volunteerSkillDto 请求参数
+     * @return 编辑结果
+     */
+    @PutMapping("/comMngVolunteerSkill/edit")
+    R editVolunteerSkillAdmin(@RequestBody EditComMngVolunteerSkillDto volunteerSkillDto);
+
+    /**
+     * 社区后台-删除志愿者技能
+     *
+     * @param id 主键id
+     * @return 删除结果
+     */
+    @GetMapping("/comMngVolunteerSkill/delete")
+    R deleteVolunteerSkillAdmin(@RequestParam("id") Long id);
+
+    /**
+     * 社区后台-查询志愿者服务类型列表
+     *
+     * @param serviceTypeDto 请求参数
+     * @return 志愿者服务列表
+     */
+    @PostMapping("/comMngVolunteerServiceType/list")
+    R listServiceTypeAdmin(@RequestBody PageComMngVolunteerServiceTypeDto serviceTypeDto);
+
+    /**
+     * 社区后台-查询志愿者技能列表
+     *
+     * @param volunteerSkillDto 请求参数
+     * @return 志愿者技能列表
+     */
+    @PostMapping("/comMngVolunteerSkill/list")
+    R listVolunteerSkillAdmin(@RequestBody PageComMngVolunteerSkillDto volunteerSkillDto);
+
+    /**
+     * 社区后台-志愿者组织统计
+     *
+     * @param communityId 社区id
+     * @return 志愿者组织统计
+     */
+    @GetMapping("/comMngVolunteerOrgTeam/statistics")
+    R statisticsVolunteerOrgAdmin(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 志愿者导入
+     *
+     * @param list        志愿者数据列表
+     * @param communityId 社区id
+     * @param userId      用户id
+     * @return 导入结果
+     */
+    @PostMapping("/volunteer/import/admin")
+    R importVolunteerAdmin(@RequestBody List<ComMngVolunteerExcelVO> list,
+                           @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId);
+
+    @PostMapping("/screen/hmk/baseInfo")
+    R hmkBaseInfo(@RequestBody CommonPage commonPage);
+
+    @GetMapping("/screen/hmk/partyProjectActivityLine")
+    R partyProjectActivityLine();
+
+    @PostMapping("/screen/hmk/projectActivityTop")
+    R projectActivityProject(@RequestBody CommonPage commonPage);
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/comActSocialOrg/{id}")
+    R comActSocialOrgSelectOne(@PathVariable("id") Long id);
+
+
+    /**
+     * 通过userId查询
+     *
+     * @param userId 主键
+     * @return 单条数据
+     */
+    @GetMapping("/comActSocialOrg/selectByUserId")
+    R selectOneByUserId(@RequestParam("userId") Long userId);
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/comActSocialMember/queryAll")
+    public R comActSocialMemberSelectAll(@RequestBody CommonPage commonPage);
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/comActSocialMember/{id}")
+    public R comActSocialMemberSelectOne(@PathVariable("id") Long id);
+
+    /**
+     * 新增数据
+     *
+     * @param comActSocialMember 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/comActSocialMember")
+    public R comActSocialMemberInsert(@RequestBody ComActSocialMemberVO comActSocialMember);
+
+    /**
+     * 批量新增数据
+     *
+     * @param comActSocialMember 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/comActSocialProjectMember/batch")
+    public R comActSocialMemberInsertBatch(@RequestBody ComActSocialProjectMemberVO comActSocialMember);
+
+    /**
+     * 修改数据
+     *
+     * @param comActSocialMember 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/comActSocialMember/update")
+    public R comActSocialMemberUpdate(@RequestBody ComActSocialMemberVO comActSocialMember);
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("/comActSocialMember/del")
+    public R comActSocialMemberDelete(@RequestParam("id") Long id);
+
+    /**
+     * 新增社工
+     * @param comActSocialWorkerAddDTO
+     * @return 新增结果
+     */
+    @PostMapping("/comActSocialWorker/add")
+    R addComactsocialworker(@RequestBody ComActSocialWorkerAddDTO comActSocialWorkerAddDTO);
+
+    /**
+     * 修改社工
+     * @param comActSocialWorkerEditDTO
+     * @return 维护结果
+     */
+    @PostMapping("/comActSocialWorker/edit")
+    R editComactsocialworker(@RequestBody ComActSocialWorkerEditDTO comActSocialWorkerEditDTO);
+
+    /**
+     * 分页查找社工
+     * @param pageComActSocialWorkerDTO
+     * @return 维护结果
+     */
+    @PostMapping("/comActSocialWorker/page")
+    R queryComactsocialworker(@RequestBody PageComActSocialWorkerDTO pageComActSocialWorkerDTO);//返回 R<IPage<ComActSocialWorkerVO>>
+
+    /**
+     * 删除社工
+     * @param comActSocialWorkerDeleteDTO
+     * @return 平台用户信息
+     */
+    @PostMapping("/comActSocialWorker/delete")
+    R deleteComactsocialworker(@RequestBody ComActSocialWorkerDeleteDTO comActSocialWorkerDeleteDTO);
+
+    /**
+     * 查询社工详细信息
+     * @param id 社工 id
+     * @return 查找结果
+     */
+    @PostMapping("/comActSocialWorker/{id}")
+    R<ComActSocialWorkerVO> comActSocialWorkerDetails(@PathVariable("id") Long id);
+
+    /**
+     * 批量导入社工
+     *
+     * @param list 社工集合
+     */
+    @PostMapping("/comActSocialWorker/input")
+    R listSaveSocialWorkerExcelVO(@RequestBody List<ComActSocialWorkerExcelVO> list, @RequestParam("communityId") Long communityId);
+
+    /**
+     *活动查询社工列表
+     * @param commonPage
+     * @return
+     */
+    @PostMapping("/comActSocialWorker/activity")
+    R activity(@RequestBody CommonPage commonPage);
+
+    /**
+     * 社工查询活动
+     * @param commonPage
+     * @return
+     */
+    @PostMapping("/comActSocialWorker/activityList")
+    R activityList(@RequestBody CommonPage commonPage);
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/comActSocialWorkerService/queryAll")
+    R selectAllComActSocialWorkerService(@RequestBody CommonPage commonPage);
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/comActSocialWorkerService/{id}")
+    R selectOneComActSocialWorkerService(@PathVariable("id") Long id);
+
+    /**
+     * 修改数据
+     *
+     * @param comActSocialWorkerServiceVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/comActSocialWorkerService/update")
+    R updateComActSocialWorkerService(@RequestBody ComActSocialWorkerServiceVO comActSocialWorkerServiceVO);
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/comActSocialProject/queryAll")
+    R selectAllComActSocialProject(@RequestBody CommonPage commonPage);
+
+    /**
+     * 平台详情接口
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/comActSocialProject/{id}")
+    R selectOneComActSocialProject(@PathVariable("id") Long id);
+
+    /**
+     * 根据项目id分页获取关联项目
+     */
+    @PostMapping("/comActSocialProject/getRelation")
+    R getRelationComActSocialProject(@RequestBody CommonPage commonPage);
+
+    /**
+     * 新增数据
+     *
+     * @param socialProjectVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/comActSocialProject")
+    R insertComActSocialProject(@RequestBody SocialProjectVO socialProjectVO);
+    /**
+     * 修改数据
+     *
+     * @param socialProjectVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/comActSocialProject/update")
+    R updateComActSocialProject(@RequestBody SocialProjectVO socialProjectVO);
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("/comActSocialProject/del")
+    R deleteComActSocialProject(@RequestParam("id") Long id);
+    /**
+     * 小程序详情接口
+     * @param id
+     * @param userId
+     * @return
+     */
+    @GetMapping("/comActSocialProject/getApplet")
+    R getAppletComActSocialProject(@RequestParam("id") Long id, @RequestParam(value = "userId", required = false) Long userId);
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/comActSocialProjectMember/queryAll")
+    public R selectAllComActSocialProjectMember(@RequestBody CommonPage commonPage);
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/comActSocialProjectMember/{id}")
+    public R selectOneComActSocialProjectMember(@PathVariable("id") Long id);
+
+    /**
+     * 新增数据
+     *
+     * @param comActSocialProjectMemberVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/comActSocialProjectMember")
+    public R insertComActSocialProjectMember(@RequestBody ComActSocialProjectMemberVO comActSocialProjectMemberVO);
+
+    /**
+     * 修改数据
+     *
+     * @param comActSocialProjectMemberVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/comActSocialProjectMember/update")
+    public R updateComActSocialProjectMember(@RequestBody ComActSocialProjectMemberVO comActSocialProjectMemberVO);
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("/comActSocialProjectMember/del")
+    public R deleteComActSocialProjectMember(@RequestParam("id") Long id);
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/comActSocialProjectPublicity/queryAll")
+    public R selectAllComActSocialProjectPublicity(@RequestBody CommonPage commonPage);
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/comActSocialProjectPublicity/getByApplet/{id}")
+    public R selectOneComActSocialProjectPublicity(@PathVariable("id") Long id);
+
+
+    /**
+     * 新增数据
+     *
+     * @param comActSocialProjectPublicityVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/comActSocialProjectPublicity")
+    public R insertComActSocialProjectPublicity(@RequestBody ComActSocialProjectPublicityVO comActSocialProjectPublicityVO);
+
+    /**
+     * 修改数据
+     *
+     * @param comActSocialProjectPublicityVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/comActSocialProjectPublicity/update")
+    public R updateComActSocialProjectPublicity(@RequestBody ComActSocialProjectPublicityVO comActSocialProjectPublicityVO);
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("/comActSocialProjectPublicity/del")
+    public R deleteComActSocialProjectPublicity(@RequestParam("id") Long id);
+    /**
+     * 多条删除数据
+     *
+     * @param ids 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("/comActSocialProjectPublicity/delBatch")
+    public R delBatchComActSocialProjectPublicity(@RequestParam("ids") List<Long> ids);
+
+    /**
+     * 根据projectId查询所有进度
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/comActSocialProjectSchedule/queryAll")
+    public R selectAllComActSocialProjectSchedule(@RequestBody CommonPage commonPage);
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/comActSocialProjectSchedule/{id}")
+    public R selectOneComActSocialProjectSchedule(@PathVariable("id") Long id);
+
+    /**
+     * 新增数据
+     *
+     * @param comActSocialProjectScheduleVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/comActSocialProjectSchedule")
+    public R insertComActSocialProjectSchedule(@RequestBody ComActSocialProjectScheduleVO comActSocialProjectScheduleVO);
+
+    /**
+     * 修改数据
+     *
+     * @param comActSocialProjectScheduleVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/comActSocialProjectSchedule/update")
+    public R updateComActSocialProjectSchedule(@RequestBody ComActSocialProjectScheduleVO comActSocialProjectScheduleVO);
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("/comActSocialProjectSchedule/del")
+    public R deleteComActSocialProjectSchedule(@RequestParam("id") Long id);
+
+    /**
+     * 项目分类级联
+     * @param comActColumnVO
+     * @return
+     */
+    @PostMapping("/comActColumn/queryLevel")
+    public R queryLevel(@RequestBody ComActColumnVO comActColumnVO);
+
+    @PostMapping("/comActRaffle/queryAll")
+    R selectAllComActRaffle(@RequestBody CommonPage commonPage);
+
+    @GetMapping("/comActRaffle/detail")
+    R selectOneComActRaffle(@RequestParam("id") Long id,@RequestParam("userId")Long userId);
+
+    @PostMapping("/comActRaffle")
+    R insertComActRaffle(@RequestBody ComActRaffleVO comActRaffleVO);
+
+    @PostMapping("/comActRaffle/update")
+    R updateComActRaffle(@RequestBody ComActRaffleVO comActRaffleVO);
+
+    @GetMapping("/comActRaffle/del")
+    R deleteComActRaffle(@RequestParam("id") Long id);
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/comActRaffleRecord/queryAll")
+    R selectAllComActRaffleRecord(@RequestBody CommonPage commonPage);
+
+    @GetMapping("/comActRaffleRecord/queryPrize")
+    R queryPrize(@RequestParam("id")Long id);
+
+    /**
+     * 生成二维码
+     * @param qrCodeVO
+     * @return
+     */
+    @PostMapping("/comActRaffleRecord/getQRCode")
+    R getRaffleQRCode(@RequestBody QRCodeVO qrCodeVO);
+
+    /**
+     * 修改数据
+     *
+     * @param comActRaffleRecordVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/comActRaffleRecord/update")
+    R updateRaffleRecord(@RequestBody ComActRaffleRecordVO comActRaffleRecordVO);
+
+    @PostMapping("/comActRaffleRecord")
+    R insertRaffleRecord(@RequestBody ComActRaffleRecordVO comActRaffleRecordVO);
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/comActRaffleRecord/{id}")
+    R selectOneRaffleRecord(@PathVariable("id") Long id);
+    /**
+     * 导出
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/comActRaffleRecord/export")
+    R exportComActRaffleRecord(@RequestBody CommonPage commonPage);
+
+    /**
+     * [方法描述] 根据社区ID查询所属城市所在区区域代码,
+     *
+     * @param communityId
+     *            社区ID
+     * @return String 区域code
+     * @author manailin
+     * @date 2022/2/17 10:09
+     */
+    @GetMapping("act/getActBelongRegionCode")
+    String getActBelongRegionCode(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 新增团队类型
+     * @param addTeamTypeDTO
+     * @return
+     */
+    @PostMapping("/fms/teamType/add")
+    R addFmsTeamType(@RequestBody AddTeamTypeDTO addTeamTypeDTO);
+
+    /**
+     * 修改团队类型
+     * @param editTeamTypeDTO
+     * @return
+     */
+    @PostMapping("/fms/teamType/edit")
+    R editFmsTeamType(@RequestBody EditTeamTypeDTO editTeamTypeDTO);
+
+    /**
+     * 删除团队类型
+     * @param teamTypeId
+     * @param communityId
+     * @return
+     */
+    @DeleteMapping("/fms/teamType/delete")
+    R deleteFmsTeamType(@RequestParam("teamTypeId") Long teamTypeId,
+                        @RequestParam("communityId") Long communityId);
+
+    /**
+     * 获取团队类型列表
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/fms/teamType/list")
+    R listFmsTeamType(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 新增团队
+     * @param addTeamDTO
+     * @return
+     */
+    @PostMapping("/fms/team/add")
+    R addFmsTeam(@RequestBody AddTeamDTO addTeamDTO);
+
+    /**
+     * 修改团队信息
+     * @param editTeamDTO
+     * @return
+     */
+    @PostMapping("/fms/team/edit")
+    R editFmsTeam(@RequestBody EditTeamDTO editTeamDTO);
+
+    /**
+     * 删除团队
+     * @param teamId
+     * @return
+     */
+    @DeleteMapping("/fms/team/delete")
+    R deleteFmsTeam(@RequestParam("teamId") Long teamId);
+
+    /**
+     * 获取团队列表
+     * @param teamTypeId
+     * @return
+     */
+    @GetMapping("/fms/team/list")
+    R listFmsTeam(@RequestParam("teamTypeId") Long teamTypeId);
+
+    /**
+     * 获取团队详情
+     * @param teamId
+     * @return
+     */
+    @GetMapping("/fms/team/detail")
+    R detailFmsTeam(@RequestParam("teamId") Long teamId);
+
+    /**
+     * 级联查询团队数据
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/fms/team/cascade")
+    R retrieveFmsTeamCascade(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 新增团队成员
+     * @param addTeamMemberDTO
+     * @return
+     */
+    @PostMapping("/fms/teamMember/add")
+    R addFmsTeamMember(@RequestBody AddTeamMemberDTO addTeamMemberDTO);
+
+    /**
+     * 编辑团队成员
+     * @param editTeamMemberDTO
+     * @return
+     */
+    @PostMapping("/fms/teamMember/edit")
+    R editFmsTeamMember(@RequestBody EditTeamMemberDTO editTeamMemberDTO);
+
+    /**
+     * 删除团队成员
+     * @param deleteTeamMemberDTO
+     * @return
+     */
+    @PostMapping("/fms/teamMember/delete")
+    R deleteFmsTeamMember(@RequestBody DeleteTeamMemberDTO deleteTeamMemberDTO);
+
+    /**
+     * 分页查询团队成员
+     * @param pageTeamMemberDTO
+     * @return
+     */
+    @PostMapping("/fms/teamMember/page")
+    R pageFmsTeamMember(@RequestBody PageTeamMemberDTO pageTeamMemberDTO);
+
+    /**
+     * 微团队顶部统计
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/fms/teamMember/statistics")
+    R statisticsFmsTeamMember(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 批量导入团队成员
+     * @param voList
+     * @param communityId
+     * @param userId
+     * @return
+     */
+    @PostMapping("/fms/teamMember/import")
+    R listSaveFmsTeamMemberExcelVO(@RequestBody List<ComFmsTeamMemberImportExcelVO> voList,
+                                   @RequestParam("communityId") Long communityId, @RequestParam("userId") Long userId);
+
+    /**
+     * 团队人员导出
+     * @param pageTeamMemberDTO
+     * @return
+     */
+    @PostMapping("/fms/teamMember/export")
+    R exportTeamMember(@RequestBody PageTeamMemberDTO pageTeamMemberDTO);
+
+    /**
+     * 后台新增微服务
+     * @param adminDTO
+     * @return
+     */
+    @PostMapping("/fms/service/adminAdd")
+    R addFmsServiceAdmin(@RequestBody AddFmsServiceAdminDTO adminDTO);
+
+    /**
+     * 后台分页查询微服务
+     * @param adminDTO
+     * @return
+     */
+    @PostMapping("/fms/service/adminPage")
+    R pageFmsServiceAdmin(@RequestBody PageFmsServiceAdminDTO adminDTO);
+
+    /**
+     * 后台核实微服务
+     * @param adminDTO
+     * @return
+     */
+    @PostMapping("/fms/service/approval")
+    R approvalFmsService(@RequestBody ApprovalFmsServiceAdminDTO adminDTO);
+
+    /**
+     * 级联查询团队服务人员
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/fms/teamMember/cascade")
+    R retrieveFmsTeamMemberCascade(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 后台查看微服务详情
+     * @param serviceId
+     * @return
+     */
+    @GetMapping("/fms/service/detailAdmin")
+    R detailFmsServiceAdmin(@RequestParam("serviceId") Long serviceId);
+
+    /**
+     * 后台删除微服务
+     * @param serviceId
+     * @return
+     */
+    @DeleteMapping("/fms/service/delete")
+    R deleteFmsServiceAdmin(@RequestParam("serviceId") Long serviceId);
+
+    /**
+     * 微服务顶部统计
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/fms/service/statistics")
+    R statisticsFmsService(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 后台导入微服务数据
+     * @param voList
+     * @param communityId
+     * @param userId
+     * @return
+     */
+    @PostMapping("/fms/service/import")
+    R listSaveFmsServiceExcelVO(@RequestBody List<ComFmsServiceImportExcelVO> voList,
+                                @RequestParam("communityId") Long communityId,
+                                @RequestParam("userId") Long userId);
+
+    /**
+     * 后台新增微讲堂
+     * @param adminDTO
+     * @return
+     */
+    @PostMapping("/fms/classroom/add")
+    R addFmsClassroom(@RequestBody AddFmsClassroomAdminDTO adminDTO);
+
+    /**
+     * 后台编辑微讲堂
+     * @param adminDTO
+     * @return
+     */
+    @PostMapping("/fms/classroom/edit")
+    R editFmsClassroom(@RequestBody EditFmsClassroomAdminDTO adminDTO);
+
+    /**
+     * 后台删除微讲堂
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/fms/classroom/delete")
+    R deleteFmsClassroom(@RequestParam("id") Long id);
+
+    /**
+     * 后台获取微讲堂详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/fms/classroom/detail")
+    R detailFmsClassroom(@RequestParam("id") Long id);
+
+    /**
+     * 后台分页查询微讲堂
+     * @param adminDTO
+     * @return
+     */
+    @PostMapping("/fms/classroom/pageAdmin")
+    R pageFmsClassroomAdmin(@RequestBody PageFmsClassroomAdminDTO adminDTO);
+
+    /**
+     * 微讲堂顶部统计
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/fms/classroom/statistics")
+    R statisticsFmsClassroom(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 后台分页查询微调节/微防控
+     * @param adminDTO
+     * @return
+     */
+    @PostMapping("/fms/event/page")
+    R pageFmsEvent(@RequestBody PageFmsEventAdminDTO adminDTO);
+
+    /**
+     * 微调节/微防控顶部统计
+     * @param type
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/fms/event/statistics")
+    R statisticsFmsEvent(@RequestParam("type") Integer type, @RequestParam("communityId") Long communityId);
+
+    /**
+     * 微调节/微防控事件详情
+     * @param eventId
+     * @return
+     */
+    @GetMapping("/fms/event/detail")
+    R detailFmsEvent(@RequestParam("eventId") Long eventId);
+
+    /**
+     * 小程序分页查询团队信息
+     * @param pageFmsTeamDTO
+     * @return
+     */
+    @PostMapping("/fms/team/pageApplets")
+    R pageFmsTeamApplets(@RequestBody PageFmsTeamDTO pageFmsTeamDTO);
+
+    /**
+     * 获取微讲堂详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/fms/classroom/detailApplets")
+    R detailFmsClassroomApplets(@RequestParam("id") Long id);
+
+    /**
+     * 小程序分页查询微调节/微防控
+     * @param adminDTO
+     * @return
+     */
+    @PostMapping("/fms/event/pageApplets")
+    R pageFmsEventApplets(@RequestBody PageFmsEventAdminDTO adminDTO);
+
+    /**
+     * 小程序分页查询微服务
+     * @param adminDTO
+     * @return
+     */
+    @PostMapping("/fms/service/pageApplets")
+    R pageFmsServiceApplets(@RequestBody PageFmsServiceAppletsDTO adminDTO);
+
+    /**
+     * 小程序查看微服务详情
+     * @param serviceId
+     * @param userId
+     * @return
+     */
+    @GetMapping("/fms/service/detailApplets")
+    R detailFmsServiceApplets(@RequestParam("serviceId") Long serviceId, @RequestParam(value = "userId", required = false) Long userId);
+
+    /**
+     * 微服务申请
+     * @param adminDTO
+     * @return
+     */
+    @PostMapping("/fms/service/apply")
+    R applyFmsService(@RequestBody ApplyFmsServiceDTO adminDTO);
+
+    /**
+     * 分页查询我的微服务
+     * @param adminDTO
+     * @return
+     */
+    @PostMapping("/fms/service/pageMy")
+    R pageMyFmsService(@RequestBody PageFmsServiceAppletsDTO adminDTO);
+
+    /**
+     * 微服务评价
+     * @param evaluationFmsServiceDTO
+     * @return
+     */
+    @PostMapping("/fms/service/evaluate")
+    R evaluateFmsService(@RequestBody EvaluationFmsServiceDTO evaluationFmsServiceDTO);
+
+    /**
+     * 微团队成员分页查询服务处理
+     * @param adminDTO
+     * @return
+     */
+    @PostMapping("/fms/service/pageDeal")
+    R pageDealFmsService(@RequestBody PageFmsServiceAppletsDTO adminDTO);
+
+    /**
+     * 微团队成员服务反馈
+     * @param adminDTO
+     * @return
+     */
+    @PostMapping("/fms/service/feedback")
+    R feedbackFmsService(@RequestBody FeedbackFmsServiceDTO adminDTO);
+
+    /**
+     * 定时任务针对服务结束后3天还未评价的用户默认好评
+     * @return
+     */
+    @PostMapping("/fms/service/defaultPraise")
+    R timedTaskFmsServiceDefaultPraise();
+
+    @GetMapping("/activity/partyMemberCount")
+    R partyMemberCount(@RequestParam("communityId")Long communityId,@RequestParam("year")String year);
+
+    /**
+     * 根据小区id查询楼栋列表
+     * @param villageId 小区id
+     * @return  查询楼栋列表
+     */
+    @GetMapping("/building/getBuildListByVillageId")
+    R getBuildListByVillageId(@RequestParam(value = "villageId") Long villageId);
+    /**
+     * 党员活动详情数据
+     * @return
+     */
+    @PostMapping("/activity/partyMemberDetail")
+    R partyMemberDetail(@RequestBody CommonPage commonPage);
+    /**
+     * 导出党员活动详情数据
+     * @return
+     */
+    @PostMapping("/activity/exportPartyMemberDetail")
+    R exportPartyMemberDetail(@RequestBody CommonPage commonPage);
+
+    /**
+     * 金沙定制页面-党建引领基础数据
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/partyBuildIng/base")
+    R getPartyBuildIngBaseData(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 党员活动展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/screen/partyBuildIng/partyAct")
+    R pagePartyBuildIngAct(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 议事投票展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/screen/partyBuildIng/discuss")
+    R pagePartyBuildIngDiscuss(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 金沙定制页面-四长四员
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/fourMember/base")
+    R getFourMemberBaseData(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 杨家坪定制页面-五微服务
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/fms/base")
+    R getFmsBaseData(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 杨家坪定制页面-微团队展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/screen/fms/team")
+    R pageFmsTeam(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 杨家坪定制页面-居家养老基础数据
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/alarm/base")
+    R getAlarmBaseData(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 杨家坪定制页面-报警记录展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/screen/alarm/record")
+    R pageAlarmRecord(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 杨家坪定制页面-报警设备点位图
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/alarm/pointMap")
+    R getAlarmPointMap(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 杨家坪定制页面-志愿服务
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/volunteer/base")
+    R getVolunteerBaseData(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 金沙定制页面-志愿线展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/screen/partyBuildIng/microWish")
+    R pagePartyBuildIngMicroWish(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 金沙定制页面-四长四员解决问题展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/screen/fourMember/resolve")
+    R pageFourMemberResolve(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 金沙定制页面-四长四员院落议事展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/screen/courtyard/list")
+    R pageCourtyardDiscuss(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 金沙定制页面-院落议事
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/courtyard/base")
+    R getCourtyardBaseData(@RequestParam("communityId") Long communityId);
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comActEasyPhotoHandler 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-03-01 13:45:10
+     */
+    @PostMapping("/comActEasyPhotoHandler/page")
+    R queryEasyPhotoHandler(@RequestBody PageComActEasyPhotoHandlerDto comActEasyPhotoHandler);
+
+    /**
+     * description  edit  编辑数据
+     *
+     * @param comActEasyPhotoHandler 请求参数
+     * @return 编辑结果
+     * @author lyq
+     * @date 2022-03-01 13:45:10
+     */
+    @PostMapping("/comActEasyPhotoHandler/edit")
+    R editEasyPhotoHandler(@RequestBody EditComActEasyPhotoHandlerDto comActEasyPhotoHandler);
+
+    @GetMapping("/reserve/fiveCount")
+    R fiveCount(@RequestParam("reserveId") Long reserveId);
+
+    /**
+     * 批量删除活动
+     * @param ids
+     * @return
+     */
+    @PostMapping("batchDel")
+    R deleteActivities(@RequestBody List<Long> ids);
+
+    /**
+     * 街道详情
+     * @param id
+     * @return
+     */
+    @GetMapping("detailStreet")
+    R detailStreet(@RequestParam("id") Long id);
+
+    /**
+     * 分页查询项目报名列表
+     * @param pageProjectSignListDTO
+     * @return
+     */
+    @PostMapping("/comActSocialProject/signList")
+    R pageProjectSignList(@RequestBody PageProjectSignListDTO pageProjectSignListDTO);
+
+    /**
+     * 分页查询孵化申请
+     * @param pageHatchAuditDTO
+     * @return
+     */
+    @PostMapping("/comActSocialOrgHatchAudit/page")
+    R pageHatchAudit(@RequestBody PageSocialOrgHatchAuditDTO pageHatchAuditDTO);
+
+    /**
+     * 查看孵化申请详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/comActSocialOrgHatchAudit/detail")
+    R detailHatchAudit(@RequestParam("id") Long id);
+
+    /**
+     * 修改孵化申请
+     * @param hatchAuditDTO
+     * @return
+     */
+    @PostMapping("/comActSocialOrgHatchAudit/update")
+    R updateHatchAudit(@RequestBody SocialOrgHatchAuditDTO hatchAuditDTO);
+
+    /**
+     * 分页查询孵化数据
+     * @param pageHatchDTO
+     * @return
+     */
+    @PostMapping("/comActSocialOrgHatch/page")
+    R pageOrgHatch(@RequestBody PageSocialOrgHatchDTO pageHatchDTO);
+
+    /**
+     * 查看孵化数据详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/comActSocialOrgHatch/detail")
+    R detailOrgHatch(@RequestParam("id") Long id);
+
+    /**
+     * 修改孵化状态
+     * @param id
+     * @param status
+     * @return
+     */
+    @PutMapping("/comActSocialOrgHatch/updateStatus")
+    R updateOrgHatchStatus(@RequestParam("id") Long id, @RequestParam("status") Integer status);
+
+    /**
+     * 获取孵化流程配置
+     * @return
+     */
+    @GetMapping("/comActSocialOrgHatchAudit/process")
+    R getHatchAuditProcess();
+
+    /**
+     * 修改孵化流程配置
+     * @param processDTO
+     * @return
+     */
+    @PutMapping("/comActSocialOrgHatchAudit/process")
+    R putHatchAuditProcess(@RequestBody HatchAuditProcessDTO processDTO);
+
+    /**
+     * 新增孵化申请
+     * @param hatchAuditDTO
+     * @return
+     */
+    @PostMapping("/comActSocialOrgHatchAudit/add")
+    R addHatchAudit(@RequestBody SocialOrgHatchAuditDTO hatchAuditDTO);
+
+    /**
+     * 查看孵化申请审核进度
+     * @param userId
+     * @return
+     */
+    @GetMapping("/comActSocialOrgHatchAudit/schedule")
+    R getHatchAuditSchedule(@RequestParam("userId") Long userId);
+
+    /**
+     * 项目公开报名
+     * @param projectId
+     * @param userId
+     * @return
+     */
+    @GetMapping("/comActSocialProject/sign")
+    R signProject(@RequestParam("projectId") Long projectId, @RequestParam("userId") Long userId);
+
+    /**
+     * 分页查询用户报名的项目
+     * @param pageProjectDTO
+     * @return
+     */
+    @PostMapping("/comActSocialProject/project")
+    R pageProjectWhichIsSignedByUser(@RequestBody PageProjectDTO pageProjectDTO);
+
+    /**
+     * 删除孵化申请详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/comActSocialOrgHatchAudit/delete")
+    R deleteHatchAudit(@RequestParam("id") Long id);
+
+    /**
+     * 删除孵化数据
+     * @param id
+     * @return
+     */
+    @GetMapping("/comActSocialOrgHatch/delete")
+    R deleteOrgHatch(@RequestParam("id") Long id);
+
+    /**
+     * 新增社区企业
+     * @param addEnterpriseDTO
+     * @return
+     */
+    @PostMapping("/enterprise/add")
+    R addEnterprise(@RequestBody AddEnterpriseDTO addEnterpriseDTO);
+
+    /**
+     * 修改社区企业
+     * @param editEnterpriseDTO
+     * @return
+     */
+    @PostMapping("/enterprise/edit")
+    R editEnterprise(@RequestBody EditEnterpriseDTO editEnterpriseDTO);
+
+    /**
+     * 删除社区企业
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/enterprise/delete")
+    R deleteEnterprise(@RequestParam("id") Long id);
+
+    /**
+     * 获取社区企业详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/enterprise/detail")
+    R detailEnterprise(@RequestParam("id") Long id);
+
+    /**
+     * 分页查询社区企业
+     * @param pageEnterpriseDTO
+     * @return
+     */
+    @PostMapping("/enterprise/page")
+    R pageEnterprise(@RequestBody PageEnterpriseDTO pageEnterpriseDTO);
+
+    /**
+     * 孵化中心-基础数据
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/hatch/base")
+    R getHatchBaseData(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 孵化中心-孵化成果展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/screen/hatchResult/list")
+    R pageHatchResult(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 孵化中心-孵化进度展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/screen/hatchSchedule/list")
+    R pageHatchSchedule(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 五社联动基础数据
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/fiveAssociations/base")
+    R getFiveAssociationsBaseData(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 五社联动项目展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/screen/socialProject/list")
+    R pageSocialProjectList(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 五社联动社会组织展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/screen/socialOrg/list")
+    R pageSocialOrgList(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 新增服务分类
+     * @param addEnterpriseTypeDTO
+     * @return
+     */
+    @PostMapping("/enterpriseType/add")
+    R addEnterpriseType(@RequestBody AddEnterpriseTypeDTO addEnterpriseTypeDTO);
+
+    /**
+     * 修改服务分类
+     * @param enterpriseTypeDTO
+     * @return
+     */
+    @PostMapping("/enterpriseType/edit")
+    R editEnterpriseType(@RequestBody EditEnterpriseTypeDTO enterpriseTypeDTO);
+
+    /**
+     * 删除服务分类
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/enterpriseType/delete")
+    R deleteEnterpriseType(@RequestParam("id") Long id);
+
+    /**
+     * 获取服务分类详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/enterpriseType/detail")
+    R detailEnterpriseType(@RequestParam("id") Long id);
+
+    /**
+     * 分页查询服务分类
+     * @param pageEnterpriseTypeDTO
+     * @return
+     */
+    @PostMapping("/enterpriseType/page")
+    R pageEnterpriseType(@RequestBody PageEnterpriseTypeDTO pageEnterpriseTypeDTO);
+
+    /**
+     * 获取服务分类列表
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/enterpriseType/list")
+    R getEnterpriseTypeList(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 新增人大代表
+     * @param addDpcDTO
+     * @return
+     */
+    @PostMapping("/dpc/add")
+    R addDpc(@RequestBody AddDpcDTO addDpcDTO);
+
+    /**
+     * 修改人大代表
+     * @param editDpcDTO
+     * @return
+     */
+    @PostMapping("/dpc/edit")
+    R editDpc(@RequestBody EditDpcDTO editDpcDTO);
+
+    /**
+     * 删除人大代表
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/dpc/delete")
+    R deleteDpc(@RequestParam("id") Long id);
+
+    /**
+     * 获取人大代表详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/dpc/detail")
+    R detailDpc(@RequestParam("id") Long id);
+
+    /**
+     * 分页查询人大代表
+     * @param pageDpcDTO
+     * @return
+     */
+    @PostMapping("/dpc/page")
+    R pageDpc(@RequestBody PageDpcDTO pageDpcDTO);
+
+    /**
+     * 获取人大代表反馈记录
+     * @param id
+     * @return
+     */
+    @GetMapping("/dpc/feedback")
+    R getFeedbackList(@RequestParam("id") Long id);
+
+    /**
+     * 人大代表反馈随手拍
+     * @param comActEasyPhotoVO
+     * @return
+     */
+    @PostMapping("/dpc/feedback")
+    R addEasyPhotoFeedbackForDpc(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO);
+
+    /**
+     * 人大代表
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/screen/dpc/base")
+    R dpcBase(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 人大代表-随手拍展示列表
+     * @return
+     */
+    @PostMapping("/screen/dpc/easyPhotoList")
+    R dpcEasyPhotoList(@RequestBody PageBaseDTO pageBaseDTO);
+
+    /**
+     * 查询详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/comActEasyPhotoHandler/detail")
+    R detailEasyPhotoHandler(@RequestParam("id") Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/grid/GridService.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/grid/GridService.java
new file mode 100644
index 0000000..d2956e4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/grid/GridService.java
@@ -0,0 +1,1381 @@
+package com.panzhihua.common.service.grid;
+
+import java.util.List;
+
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.model.dtos.IdDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.event.ScreenDrawEventListDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.event.ScreenEventListDTO;
+import com.panzhihua.common.model.dtos.grid.*;
+import com.panzhihua.common.model.dtos.grid.admin.EventGridMemberCascadeAddDTO;
+import com.panzhihua.common.model.dtos.visit.EventVisitCompleteDTO;
+import com.panzhihua.common.model.query.visit.EventTasksQuery;
+import com.panzhihua.common.model.query.visit.EventVisitListQuery;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.*;
+import com.panzhihua.common.model.vos.visit.EventVisitingTasksVO;
+
+/**
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @date 2021-05-26
+ * @since 1.0
+ */
+@FeignClient(name = "grid")
+public interface GridService {
+
+    /**
+     * 分页查找事件
+     *
+     * @param pageEventDTO
+     * @return 维护结果
+     */
+    @PostMapping("/event/page")
+    R query(@RequestBody PageEventDTO pageEventDTO);
+
+    /**
+     * 删除事件
+     *
+     * @param CommonEventDeleteDTO
+     * @return 平台用户信息
+     */
+    @PostMapping("/event/delete")
+    R delete(@RequestBody CommonEventDeleteDTO CommonEventDeleteDTO);
+
+    /**
+     * 查询事件详细信息
+     * 
+     * @param id
+     *            事件 id
+     * @return 查找结果
+     */
+    @PostMapping("/event/{id}")
+    R<EventDetailsVO> eventDetails(@PathVariable("id") Long id);
+
+    /**
+     * 新增网格和网格员的关联关系
+     * 
+     * @param eventGridMemberAddDTO
+     * @return 新增结果
+     */
+    @PostMapping("/eventgridmemberrelation/add")
+    R add(@RequestBody EventGridMemberAddDTO eventGridMemberAddDTO);
+
+    /**
+     * 修改网格和网格员的关联关系
+     * 
+     * @param eventGridMemberEditDTO
+     * @return 维护结果
+     */
+    @PostMapping("/eventgridmemberrelation/edit")
+    R edit(@RequestBody EventGridMemberEditDTO eventGridMemberEditDTO);
+
+    /**
+     * 分页查找网格和网格员的关联关系
+     * 
+     * @param pageEventGridMemberRelationDTO
+     * @return 维护结果
+     */
+    @PostMapping("/eventgridmemberrelation/page")
+    R query(@RequestBody PageEventGridMemberRelationDTO pageEventGridMemberRelationDTO);
+
+    /**
+     * 删除网格和网格员的关联关系
+     *
+     * @param eventGridMemberRelationDeleteDTO
+     * @return 平台用户信息
+     */
+    @PostMapping("/eventgridmemberrelation/delete")
+    R delete(@RequestBody EventGridMemberRelationDeleteDTO eventGridMemberRelationDeleteDTO);
+
+    /**
+     * 查询网格和网格员的关联关系详细信息
+     *
+     * @param id
+     *            网格和网格员的关联关系 id
+     * @return 查找结果
+     */
+    @PostMapping("/eventgridmemberrelation/{id}")
+    R<EventGridMemberRelationDetailsVO> eventGridMemberRelationDetails(@PathVariable("id") Long id);
+
+    /**
+     * 新增网格员定时上报地理预警记录
+     * 
+     * @param eventGridMemberWarnLogAddDTO
+     * @return 新增结果
+     */
+    @PostMapping("/eventgridmemberwarnlog/add")
+    R add(@RequestBody EventGridMemberWarnLogAddDTO eventGridMemberWarnLogAddDTO);
+
+    /**
+     * 修改网格员定时上报地理预警记录
+     *
+     * @param eventGridMemberWarnLogEditDTO
+     * @return 维护结果
+     */
+    @PostMapping("/eventgridmemberwarnlog/edit")
+    R edit(@RequestBody EventGridMemberWarnLogEditDTO eventGridMemberWarnLogEditDTO);
+
+    /**
+     * 分页查找网格员定时上报地理预警记录
+     *
+     * @param pageEventGridMemberWarnLogDTO
+     * @return 维护结果
+     */
+    @PostMapping("/eventgridmemberwarnlog/page")
+    R query(@RequestBody PageEventGridMemberWarnLogDTO pageEventGridMemberWarnLogDTO);
+
+    /**
+     * 删除网格员定时上报地理预警记录
+     *
+     * @param eventGridMemberWarnLogDeleteDTO
+     * @return 平台用户信息
+     */
+    @PostMapping("/eventgridmemberwarnlog/delete")
+    R delete(@RequestBody EventGridMemberWarnLogDeleteDTO eventGridMemberWarnLogDeleteDTO);
+
+    /**
+     * 查询网格员定时上报地理预警记录详细信息
+     *
+     * @param id
+     *            网格员定时上报地理预警记录 id
+     * @return 查找结果
+     */
+    @PostMapping("/eventgridmemberwarnlog/{id}")
+    R<EventGridMemberWarnLogDetailsVO> eventGridMemberWarnLogDetails(@PathVariable("id") Long id);
+
+    /**
+     * 新增重点人群记录
+     *
+     * @param eventMainMemberAddDTO
+     * @return 新增结果
+     */
+    @PostMapping("/eventmainmember/add")
+    R add(@RequestBody EventMainMemberAddDTO eventMainMemberAddDTO);
+
+    /**
+     * 修改重点人群记录
+     *
+     * @param eventMainMemberEditDTO
+     * @return 维护结果
+     */
+    @PostMapping("/eventmainmember/edit")
+    R edit(@RequestBody EventMainMemberEditDTO eventMainMemberEditDTO);
+
+    /**
+     * 分页查找重点人群记录
+     *
+     * @param pageEventMainMemberDTO
+     * @return 维护结果
+     */
+    @PostMapping("/eventmainmember/page")
+    R query(@RequestBody PageEventMainMemberDTO pageEventMainMemberDTO);
+
+    /**
+     * 删除重点人群记录
+     * 
+     * @param eventMainMemberDeleteDTO
+     * @return 平台用户信息
+     */
+    @PostMapping("/eventmainmember/delete")
+    R delete(@RequestBody EventMainMemberDeleteDTO eventMainMemberDeleteDTO);
+
+    /**
+     * 查询重点人群记录详细信息
+     * 
+     * @param id
+     *            重点人群记录 id
+     * @return 查找结果
+     */
+    @PostMapping("/eventmainmember/{id}")
+    R<EventMainMemberDetailsVO> eventMainMemberDetails(@PathVariable("id") Long id);
+
+    /**
+     * 新增事件或者走访中关联的图片音频和视频文件
+     * 
+     * @param eventResourceAddDTO
+     * @return 新增结果
+     */
+    @PostMapping("/eventresource/add")
+    R add(@RequestBody EventResourceAddDTO eventResourceAddDTO);
+
+    /**
+     * 修改事件或者走访中关联的图片音频和视频文件
+     * 
+     * @param eventResourceEditDTO
+     * @return 维护结果
+     */
+    @PostMapping("/eventresource/edit")
+    R edit(@RequestBody EventResourceEditDTO eventResourceEditDTO);
+
+    /**
+     * 分页查找事件或者走访中关联的图片音频和视频文件
+     * 
+     * @param pageEventResourceDTO
+     * @return 维护结果
+     */
+    @PostMapping("/eventresource/page")
+    R query(@RequestBody PageEventResourceDTO pageEventResourceDTO);
+
+    /**
+     * 删除事件或者走访中关联的图片音频和视频文件
+     * 
+     * @param eventResourceDeleteDTO
+     * @return 平台用户信息
+     */
+    @PostMapping("/eventresource/delete")
+    R delete(@RequestBody EventResourceDeleteDTO eventResourceDeleteDTO);
+
+    /**
+     * 查询事件或者走访中关联的图片音频和视频文件详细信息
+     * 
+     * @param id
+     *            事件或者走访中关联的图片音频和视频文件 id
+     * @return 查找结果
+     */
+    @PostMapping("/eventresource/{id}")
+    R<EventResourceDetailsVO> eventResourceDetails(@PathVariable("id") Long id);
+
+    /**
+     * 新增事件处理流转记录
+     * 
+     * @param eventTransferRecordAddDTO
+     * @return 新增结果
+     */
+    @PostMapping("/eventtransferrecord/add")
+    R add(@RequestBody EventTransferRecordAddDTO eventTransferRecordAddDTO);
+
+    /**
+     * 修改事件处理流转记录
+     * 
+     * @param eventTransferRecordEditDTO
+     * @return 维护结果
+     */
+    @PostMapping("/eventtransferrecord/edit")
+    R edit(@RequestBody EventTransferRecordEditDTO eventTransferRecordEditDTO);
+
+    /**
+     * 分页查找事件处理流转记录
+     * 
+     * @param pageEventTransferRecordDTO
+     * @return 维护结果
+     */
+    @PostMapping("/eventtransferrecord/page")
+    R query(@RequestBody PageEventTransferRecordDTO pageEventTransferRecordDTO);
+
+    /**
+     * 删除事件处理流转记录
+     * 
+     * @param eventTransferRecordDeleteDTO
+     * @return 平台用户信息
+     */
+    @PostMapping("/eventtransferrecord/delete")
+    R delete(@RequestBody EventTransferRecordDeleteDTO eventTransferRecordDeleteDTO);
+
+    /**
+     * 查询事件处理流转记录详细信息
+     *
+     * @param id
+     *            事件处理流转记录 id
+     * @return 查找结果
+     */
+    @PostMapping("/eventtransferrecord/{id}")
+    R<EventTransferRecordDetailsVO> eventTransferRecordDetails(@PathVariable("id") Long id);
+
+    /**
+     * 新增重点人群走访记录
+     *
+     * @param eventVisitingTasksAddDTO
+     * @return 新增结果
+     */
+    @PostMapping("/eventvisitingtasks/add")
+    R add(@RequestBody EventVisitingTasksAddDTO eventVisitingTasksAddDTO);
+
+    /**
+     * 修改重点人群走访记录
+     *
+     * @param eventVisitingTasksEditDTO
+     * @return 维护结果
+     */
+    @PostMapping("/eventvisitingtasks/edit")
+    R edit(@RequestBody EventVisitingTasksEditDTO eventVisitingTasksEditDTO);
+
+    /**
+     * 分页查找重点人群走访记录
+     *
+     * @param pageEventVisitingTasksDTO
+     * @return 维护结果
+     */
+    @PostMapping("/eventvisitingtasks/page")
+    R query(@RequestBody PageEventVisitingTasksDTO pageEventVisitingTasksDTO);
+
+    /**
+     * 删除重点人群走访记录
+     *
+     * @param eventVisitingTasksDeleteDTO
+     * @return 平台用户信息
+     */
+    @PostMapping("/eventvisitingtasks/delete")
+    R delete(@RequestBody EventVisitingTasksDeleteDTO eventVisitingTasksDeleteDTO);
+
+    /**
+     * 查询重点人群走访记录详细信息
+     *
+     * @param id
+     *            重点人群走访记录 id
+     * @return 查找结果
+     */
+    @PostMapping("/eventvisitingtasks/{id}")
+    R<EventVisitingTasksDetailsVO> eventVisitingTasksDetails(@PathVariable("id") Long id);
+
+    /**
+     * 新增APP应用版本信息
+     *
+     * @param eventApplicationAppReleaseAddDTO
+     * @return 新增结果
+     */
+    @PostMapping("/eventapplicationapprelease/add")
+    R add(@RequestBody EventApplicationAppReleaseAddDTO eventApplicationAppReleaseAddDTO);
+
+    /**
+     * 修改APP应用版本信息
+     *
+     * @param eventApplicationAppReleaseEditDTO
+     * @return 维护结果
+     */
+    @PostMapping("/eventapplicationapprelease/edit")
+    R edit(@RequestBody EventApplicationAppReleaseEditDTO eventApplicationAppReleaseEditDTO);
+
+    /**
+     * 分页查找APP应用版本信息
+     *
+     * @param pageEventApplicationAppReleaseDTO
+     * @return 维护结果
+     */
+    @PostMapping("/eventapplicationapprelease/page")
+    R query(@RequestBody PageEventApplicationAppReleaseDTO pageEventApplicationAppReleaseDTO);
+
+    /**
+     * 删除APP应用版本信息
+     *
+     * @param eventApplicationAppReleaseDeleteDTO
+     * @return 平台用户信息
+     */
+    @PostMapping("/eventapplicationapprelease/delete")
+    R delete(@RequestBody EventApplicationAppReleaseDeleteDTO eventApplicationAppReleaseDeleteDTO);
+
+    /**
+     * 查询APP应用版本信息详细信息
+     *
+     * @param id
+     *            APP应用版本信息 id
+     * @return 查找结果
+     */
+    @PostMapping("/eventapplicationapprelease/{id}")
+    R<EventApplicationAppReleaseDetailsVO> eventApplicationAppReleaseDetails(@PathVariable("id") Long id);
+
+    /**
+     * 新增用户协议和隐私政策信息
+     *
+     * @param eventApplicationUserNoticeAddDTO
+     * @return 新增结果
+     */
+    @PostMapping("/eventapplicationusernotice/add")
+    R add(@RequestBody EventApplicationUserNoticeAddDTO eventApplicationUserNoticeAddDTO);
+
+    /**
+     * 修改用户协议和隐私政策信息
+     *
+     * @param eventApplicationUserNoticeEditDTO
+     * @return 维护结果
+     */
+    @PostMapping("/eventapplicationusernotice/edit")
+    R edit(@RequestBody EventApplicationUserNoticeEditDTO eventApplicationUserNoticeEditDTO);
+
+    /**
+     * 分页查找用户协议和隐私政策信息
+     *
+     * @param pageEventApplicationUserNoticeDTO
+     * @return 维护结果
+     */
+    @PostMapping("/eventapplicationusernotice/page")
+    R query(@RequestBody PageEventApplicationUserNoticeDTO pageEventApplicationUserNoticeDTO);
+
+    /**
+     * 删除用户协议和隐私政策信息
+     *
+     * @param eventApplicationUserNoticeDeleteDTO
+     * @return 平台用户信息
+     */
+    @PostMapping("/eventapplicationusernotice/delete")
+    R delete(@RequestBody EventApplicationUserNoticeDeleteDTO eventApplicationUserNoticeDeleteDTO);
+
+    /**
+     * 查询用户协议和隐私政策信息详细信息
+     *
+     * @param id
+     *            用户协议和隐私政策信息 id
+     * @return 查找结果
+     */
+    @PostMapping("/eventapplicationusernotice/{id}")
+    R<EventApplicationUserNoticeDetailsVO> eventApplicationUserNoticeDetails(@PathVariable("id") Long id);
+
+    /**
+     * 新增区县/街道/社区/网格员网格数据管理
+     *
+     * @param eventGridDataAddDTO
+     * @return 新增结果
+     */
+    @PostMapping("/eventgriddata/add")
+    R add(@RequestBody EventGridDataAddDTO eventGridDataAddDTO);
+
+    /**
+     * 修改区县/街道/社区/网格员网格数据管理
+     *
+     * @param eventGridDataEditDTO
+     * @return 维护结果
+     */
+    @PostMapping("/eventgriddata/edit")
+    R edit(@RequestBody EventGridDataEditDTO eventGridDataEditDTO);
+
+    /**
+     * 分页查找区县/街道/社区/网格员网格数据管理
+     *
+     * @param pageEventGridDataDTO
+     * @return 维护结果
+     */
+    @PostMapping("/eventgriddata/page")
+    R query(@RequestBody PageEventGridDataDTO pageEventGridDataDTO);
+
+    /**
+     * 删除区县/街道/社区/网格员网格数据管理
+     *
+     * @param eventGridDataDeleteDTO
+     * @return 平台用户信息
+     */
+    @PostMapping("/eventgriddata/delete")
+    R delete(@RequestBody EventGridDataDeleteDTO eventGridDataDeleteDTO);
+
+    /**
+     * 查询区县/街道/社区/网格员网格数据管理详细信息
+     *
+     * @param id
+     *            区县/街道/社区/网格员网格数据管理 id
+     * @return 查找结果
+     */
+    @PostMapping("/eventgriddata/{id}")
+    R<EventGridDataDetailsVO> eventGridDataDetails(@PathVariable("id") Long id);
+
+    /**
+     * 新增网格员定时上报地理信息
+     *
+     * @param eventGridMemberGpsLogAddDTO
+     * @return 新增结果
+     */
+    @PostMapping("/eventgridmembergpslog/add")
+    R add(@RequestBody EventGridMemberGpsLogAddDTO eventGridMemberGpsLogAddDTO);
+
+    /**
+     * 修改网格员定时上报地理信息
+     *
+     * @param eventGridMemberGpsLogEditDTO
+     * @return 维护结果
+     */
+    @PostMapping("/eventgridmembergpslog/edit")
+    R edit(@RequestBody EventGridMemberGpsLogEditDTO eventGridMemberGpsLogEditDTO);
+
+    /**
+     * 分页查找网格员定时上报地理信息
+     *
+     * @param pageEventGridMemberGpsLogDTO
+     * @return 维护结果
+     */
+    @PostMapping("/eventgridmembergpslog/page")
+    R query(@RequestBody PageEventGridMemberGpsLogDTO pageEventGridMemberGpsLogDTO);
+
+    /**
+     * 删除网格员定时上报地理信息
+     *
+     * @param eventGridMemberGpsLogDeleteDTO
+     * @return 平台用户信息
+     */
+    @PostMapping("/eventgridmembergpslog/delete")
+    R delete(@RequestBody EventGridMemberGpsLogDeleteDTO eventGridMemberGpsLogDeleteDTO);
+
+    /**
+     * 查询网格员定时上报地理信息详细信息
+     *
+     * @param id
+     *            网格员定时上报地理信息 id
+     * @return 查找结果
+     */
+    @PostMapping("/eventgridmembergpslog/{id}")
+    R<EventGridMemberGpsLogDetailsVO> eventGridMemberGpsLogDetails(@PathVariable("id") Long id);
+
+    /**
+     * 添加事件
+     *
+     * @param commonEventAddDTO
+     * @return
+     */
+    @PostMapping("/event/addCommon")
+    R addCommon(@RequestBody CommonEventAddDTO commonEventAddDTO);
+
+    /**
+     * 保存事件草稿
+     *
+     * @param commonEventEditDTO
+     * @return
+     */
+    @PostMapping("/event/saveDraft")
+    R saveDraft(@RequestBody CommonEventEditDTO commonEventEditDTO);
+
+    /**
+     * 突发事件上报社区
+     *
+     * @param commonEventReportDTO
+     * @return
+     */
+    @PostMapping("/event/report")
+    R report(@RequestBody CommonEventReportDTO commonEventReportDTO);
+
+    /**
+     * 突发事件撤销
+     *
+     * @param eventRevokeDTO
+     * @return
+     */
+    @PostMapping("/event/emergenciesRevoke")
+    R emergenciesRevoke(@RequestBody EventRevokeDTO eventRevokeDTO);
+
+    /**
+     * 处理事件
+     *
+     * @param commonEventDealDTO
+     * @return
+     */
+    @PostMapping("/event/dealEvent")
+    R dealEvent(@RequestBody CommonEventDealDTO commonEventDealDTO);
+
+    /**
+     * 处理事件
+     *
+     * @param commonEventVerifyDTO
+     * @return
+     */
+    @PostMapping("/event/verify")
+    R verifyEvent(@RequestBody CommonEventVerifyDTO commonEventVerifyDTO);
+
+    /**
+     * 处理事件
+     *
+     * @param commonEventRepublishDTO
+     * @return
+     */
+    @PostMapping("/event/republish")
+    R republishEvent(@RequestBody CommonEventRepublishDTO commonEventRepublishDTO);
+
+    /**
+     * 网格数据待处理统计信息
+     *
+     * @param eventGridStatisticsDataDTO
+     * @return
+     */
+    @PostMapping("/eventgriddata/getGridStatisticsdData")
+    R getGridStatisticsdData(@RequestBody EventGridStatisticsDataDTO eventGridStatisticsDataDTO);
+
+    /**
+     * 查询用户网格
+     *
+     * @param pageEventGridDataDTO
+     * @return
+     */
+    @PostMapping("/eventgriddata/userGrid")
+    R userGrid(@RequestBody PageEventGridDataDTO pageEventGridDataDTO);
+
+    /**
+     * 特殊人员信息上报
+     *
+     * @param specialEventAddDTO
+     * @return
+     */
+    @PostMapping("/event/addSpecial")
+    R addSpecial(@RequestBody SpecialEventAddDTO specialEventAddDTO);
+
+    /**
+     * 获取指定特殊人员信息
+     *
+     * @param idCard
+     * @return
+     */
+    @PostMapping("/event/getSpecialPopulation")
+    R getSpecialPopulation(String idCard);
+
+    /**
+     * 保存殊人群事件上报草稿
+     *
+     * @param specialEventEditDTO
+     * @return
+     */
+    @PostMapping("/event/saveSpecialDraft")
+    R saveSpecialDraft(@RequestBody SpecialEventEditDTO specialEventEditDTO);
+
+    /**
+     * 草稿发布
+     *
+     * @param commonEventPublicDTO
+     * @return
+     */
+    @PostMapping("/event/draftRelease")
+    R draftRelease(@RequestBody CommonEventPublicDTO commonEventPublicDTO);
+
+    /**
+     * 查询随手拍列表
+     *
+     * @param easyAppDTO
+     *            请求参数
+     * @return 随手拍列表
+     */
+    @PostMapping("/easy/list")
+    R easyList(@RequestBody PageEasyAppDTO easyAppDTO);
+
+    /**
+     * 查询随手拍详情
+     *
+     * @param easyId
+     *            随手拍id
+     * @return 随手拍详情
+     */
+    @PostMapping("/easy/detail")
+    R easyDetailByApp(@RequestParam("easyId") Long easyId);
+
+    /**
+     * 查询随手拍类型列表
+     *
+     * @return 类型列表
+     */
+    @PostMapping("/easy/type/list")
+    R easyTypeListByApp();
+
+    /**
+     * 随手拍处理
+     *
+     * @param photoHandleDTO
+     *            请求参数
+     * @return 处理结果
+     */
+    @PostMapping("/easy/handle")
+    R easyHandle(@RequestBody ComActEasyPhotoHandleDTO photoHandleDTO);
+
+    /**
+     * 随手拍公示状态切换
+     *
+     * @param photoHandleDTO
+     *            请求参数
+     * @return 切换结果
+     */
+    @PostMapping("/easy/publicity")
+    R easyPublicity(@RequestBody ComActEasyPhotoHandleDTO photoHandleDTO);
+
+    /**
+     * 随手拍上报社区
+     *
+     * @param photoHandleDTO
+     *            请求参数
+     * @return 上报结果
+     */
+    @PostMapping("/easy/report")
+    R easyReport(@RequestBody ComActEasyPhotoHandleDTO photoHandleDTO);
+
+    /**
+     * 添加发布宣传教育事件
+     *
+     * @param publicityEventAddDTO
+     *            请求参数
+     * @return 添加发布结果
+     */
+    @PostMapping("/event/addPublicity")
+    R addPublicity(@RequestBody PublicityEventAddDTO publicityEventAddDTO);
+
+    /**
+     * 保存宣传教育事件草稿
+     *
+     * @param publicityEventEditDTO
+     *            请求参数
+     * @return 保存结果
+     */
+    @PostMapping("/event/savePublicityDraft")
+    R savePublicityDraft(@RequestBody PublicityEventEditDTO publicityEventEditDTO);
+
+    /**
+     * 分页查询宣传教育事件
+     *
+     * @param pagePublicityEventDTO
+     *            请求参数
+     * @return 结果
+     */
+    @PostMapping("/event/queryPublicity")
+    R queryPublicity(@RequestBody PagePublicityEventDTO pagePublicityEventDTO);
+
+    /**
+     * 分页查询宣传教育事件
+     *
+     * @param pagePublicityEventDTO
+     *            请求参数
+     * @return 结果
+     */
+    @PostMapping("/event/queryPublicityCommunity")
+    R queryPublicityCommunity(@RequestBody PagePublicityEventCommunityDTO pagePublicityEventDTO);
+
+    /**
+     * 分页查询社区列表
+     *
+     * @return 结果
+     */
+    @PostMapping("/event/actList")
+    R actList();
+
+    /**
+     * 地图模块-根据网格id查询网格详细信息
+     *
+     * @param gridId
+     *            网格id
+     * @return 网格详细信息
+     */
+    @PostMapping("/map/getGridDetail")
+    R getGridDetail(@RequestParam("gridId") Long gridId);
+
+    /**
+     * 地图模块-根据网格员id查询今日运动轨迹
+     *
+     * @param userId
+     *            网格员id
+     * @return 运动轨迹
+     */
+    @PostMapping("/map/getTrajectoryByApp")
+    R getTrajectoryByApp(@RequestParam("userId") Long userId);
+
+    /**
+     * 地图模块-根据网格员id查询关联网格列表
+     *
+     * @param userId
+     *            网格员id
+     * @return 网格列表
+     */
+    @PostMapping("/map/getMapGridListByApp")
+    R getMapGridListByApp(@RequestParam("userId") Long userId);
+
+    /**
+     * 获取最新版本信息
+     *
+     * @return 版本信息
+     */
+    @GetMapping("/eventapplicationapprelease/edition")
+    R editionUpdate();
+
+    /**
+     * 首页待处理
+     *
+     * @param eventGridTodoDataDTO
+     * @return
+     */
+    @PostMapping("/eventgriddata/getGridTodoData")
+    R getGridTodoData(@RequestBody EventGridTodoDataDTO eventGridTodoDataDTO);
+
+    /**
+     * 后台获取网格员运动轨迹
+     *
+     * @param workTrajectoryDTO
+     *            请求参数
+     * @return 运动轨迹
+     */
+    @PostMapping("/map/gridMemberWorkTrajectory")
+    R gridMemberWorkTrajectory(@RequestBody EventGridMemberWorkTrajectoryDTO workTrajectoryDTO);
+
+    /**
+     * 后台获取网格员预警记录
+     *
+     * @param gridMemberWainDTO
+     *            请求参数
+     * @return 预警记录
+     */
+    @PostMapping("/map/gridMemberWorkWarning")
+    R gridMemberWorkWarning(@RequestBody EventGridMemberWainDTO gridMemberWainDTO);
+
+    /**
+     * 分页查询网格
+     *
+     * @param eventGridDataDTO
+     *            请求参数
+     * @return 网格列表
+     */
+    @PostMapping("/eventgriddata/data/list")
+    R getGridDataList(@RequestBody PageEventGridDataAdminDTO eventGridDataDTO);
+
+    /**
+     * 查询社区下所有网格员
+     *
+     * @param communityId
+     *            社区id
+     * @return 网格员列表
+     */
+    @PostMapping("/eventgriddata/member/list")
+    R getGridMemberLists(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 查询管理事件
+     *
+     * @param pageEventManageDTO
+     * @return
+     */
+    @PostMapping("/event/manage/list")
+    R queryEventToManage(@RequestBody PageEventManageDTO pageEventManageDTO);
+
+    /**
+     * 社区网格后台标记事件无效
+     *
+     * @param eventRevokeDTO
+     * @return
+     */
+    @PostMapping("/event/markInvalid")
+    R markEventInvalid(@RequestBody EventRevokeDTO eventRevokeDTO);
+
+    /**
+     * 社区网格后台重新发布已标记无效的事件
+     *
+     * @param commonEventRepublishDTO
+     * @return
+     */
+    @PostMapping("/event/republishInvalid")
+    R republishInvalidEvent(@RequestBody CommonEventRepublishDTO commonEventRepublishDTO);
+
+    /**
+     * 后台新增网格
+     *
+     * @param eventGridDataDTO
+     *            请求参数
+     * @return 新增结果
+     */
+    @PostMapping("/eventgriddata/data/add")
+    R addGridDataByAdmin(@RequestBody EventGridDataAddAdminDTO eventGridDataDTO);
+
+    /**
+     * 后台修改网格
+     *
+     * @param eventGridDataDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    @PostMapping("/eventgriddata/data/edit")
+    R editGridDataByAdmin(@RequestBody EventGridDataEditAdminDTO eventGridDataDTO);
+
+    /**
+     * 后台管理-分页查询随手拍列表
+     *
+     * @param easyAppDTO
+     *            请求参数
+     * @return 随手拍列表
+     */
+    @PostMapping("/easy/admin/list")
+    R easyListByAdmin(@RequestBody PageEasyAdminDTO easyAppDTO);
+
+    /**
+     * 后台管理-随手拍详情
+     *
+     * @param easyId
+     *            随手拍id
+     * @return 随手拍详情
+     */
+    @PostMapping("/easy/admin/detail")
+    R easyDetailByAdmin(@RequestParam("easyId") Long easyId);
+
+    /**
+     * 后台管理-随手拍处理
+     *
+     * @param photoHandleDTO
+     *            请求参数
+     * @return 处理结果
+     */
+    @PostMapping("/easy/admin/handle")
+    R easyHandleByAdmin(@RequestBody ComActEasyPhotoHandleDTO photoHandleDTO);
+
+    /**
+     * 后台管理-批量修改随手拍公示状态/删除随手拍
+     *
+     * @param photoHandleDTO
+     *            请求参数
+     * @return 修改/删除结果
+     */
+    @PostMapping("/easy/admin/publicity")
+    R easyPublicityByAdmin(@RequestBody ComActEasyPhotoEditAdminDTO photoHandleDTO);
+
+    /**
+     * 查询网格下所有网格员
+     *
+     * @param gridId
+     * @return
+     */
+    @PostMapping("/eventgriddata/grid/member")
+    R getGridMemberListsByGrid(@RequestParam("gridId") Long gridId);
+
+    /**
+     * 查询网格下所有网格员
+     *
+     * @param communityId
+     * @return
+     */
+    @PostMapping("/eventgriddata/communitygrid")
+    R getGridDataListByCommunity(@RequestParam("gridId") Long communityId);
+
+    /**
+     * 后台管理-统计模块
+     *
+     * @param communityId
+     *            社区id
+     * @return 统计信息
+     */
+    @GetMapping("/statistics/admin/eventStatistics")
+    R eventStatistics(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 后台管理-删除网格
+     *
+     * @param Ids
+     *            网格id集合
+     * @return 删除结果
+     */
+    @PostMapping("/eventgriddata/data/delete")
+    R deleteGridData(@RequestBody List<Long> Ids);
+
+    /**
+     * 后台管理-网格员统计
+     *
+     * @param statisticsAdminDTO
+     *            请求参数
+     * @return 网格员统计信息
+     */
+    @PostMapping("/statistics/admin/gridMemberStatistics")
+    R gridMemberStatistics(@RequestBody MemberStatisticsAdminDTO statisticsAdminDTO);
+
+    /**
+     * 批量删除
+     *
+     * @param eventDeleteDTO
+     * @return
+     */
+    @PostMapping("/event/deleteEventBatch")
+    R deleteEventBatch(@RequestBody EventDeleteDTO eventDeleteDTO);
+
+    /**
+     * 批量发布事件
+     *
+     * @param commonEventBatchRepublishDTO
+     * @return
+     */
+    @PostMapping("/event/batchRepublishEvent")
+    R batchRepublishEvent(@RequestBody CommonEventBatchRepublishDTO commonEventBatchRepublishDTO);
+
+    /**
+     * 批量事件标为无效
+     *
+     * @param eventBatchRevokeDTO
+     * @return
+     */
+    @PostMapping("/event/batchMarkInvalid")
+    R batchMarkEventInvalid(@RequestBody EventBatchRevokeDTO eventBatchRevokeDTO);
+
+    /**
+     * 批量事件标为无效
+     *
+     * @param pageEventGridNearbyDTO
+     * @return
+     */
+    @PostMapping("/event/grid/nearby")
+    R getNearByGrid(PageEventGridNearbyDTO pageEventGridNearbyDTO);
+
+    /**
+     * 根据网格id查询网格统计数据
+     *
+     * @param gridId
+     *            网格id
+     * @return 网格统计数据
+     */
+    @PostMapping("/statistics/getGridEventStatistics")
+    R getGridEventStatisticsByApp(@RequestParam("gridId") Long gridId, @RequestParam("userId") Long userId);
+
+    /**
+     * 查询网格事件统计数据
+     *
+     * @param statisticsDTO
+     *            请求参数
+     * @return 网格事件统计数据
+     */
+    @PostMapping("/statistics/event/getGridEventStatistics")
+    R getGridEventDetailStatisticsByApp(@RequestBody GridEventStatisticsDTO statisticsDTO);
+
+    /**
+     * 网格员上报地理位置
+     *
+     * @param memberPositionDTO
+     *            请求参数
+     * @return 上报结果
+     */
+    @PostMapping("/eventgridmembergpslog/add")
+    R gridReportPosition(@RequestBody GridMemberPositionDTO memberPositionDTO);
+
+    /**
+     * 直接上报社区
+     *
+     * @param commonEventDirectReportDTO
+     * @return
+     */
+    @PostMapping("/event/reportDirect")
+    R reportDirect(@RequestBody CommonEventDirectReportDTO commonEventDirectReportDTO);
+
+    /**
+     * 定时任务扫描网格员工作状态
+     *
+     * @return 定时任务扫描结果
+     */
+    @PostMapping("/eventgridmemberwarnlog/judge")
+    R timedTaskGridMember();
+
+    /**
+     * 事件大屏查询事件列表
+     *
+     * @param eventListDTO
+     *            请求参数
+     * @return 事件列表
+     */
+    @PostMapping("/screen/event/list")
+    R getScreenEventList(@RequestBody ScreenEventListDTO eventListDTO);
+
+    /**
+     * 特殊人群上报-社区人口数据列表
+     *
+     * @param specialPopulationDTO
+     *            请求参数
+     * @return 社区人口数据列表
+     */
+    @PostMapping("/event/special/population/list")
+    R specialPopulationList(@RequestBody PageEventSpecialPopulationDTO specialPopulationDTO);
+
+    /**
+     * description 根据本地网格ID,查询对于的浪潮市平台对应的ID
+     *
+     * @param id
+     *            本地网格ID
+     * @return String 浪潮市平台对应的ID
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @GetMapping("/lc_compare/{id}")
+    String getLcGridIdByLocal(@PathVariable("id") Long id);
+
+    /**
+     * description 根据本地网格ID,查询对于的浪潮市平台对应的ID
+     *
+     * @param localUserId
+     *            本地网格员ID
+     * @return String 浪潮市平台对应的ID
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @GetMapping("/lc_compare/getLcUserId")
+    String getLcUserIdByLocalUserId(@RequestParam("localUserId") String localUserId);
+
+    /**
+     * description 获取所有未上传到浪潮平台的事件列表
+     *
+     * @return String 事件列表
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @GetMapping("/event/getUnUploadEvent")
+    List<EventDetailsVO> getUnUploadEvent();
+
+    /**
+     * description 更新上传是否成功标识
+     *
+     * @param id
+     *            事件主键ID
+     * @return Boolean 上传是否成功
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @GetMapping("/event/updateLcUploadFlag")
+    Boolean updateLcUploadFlag(@RequestParam("id") Long id);
+
+    /**
+     * 工作大屏-事件管理模块数据统计
+     * 
+     * @param communityId
+     *            社区id
+     * @return 事件管理数据统计
+     */
+    @GetMapping("/screen/work/event")
+    R eventWork(@RequestParam("communityId") Long communityId);
+
+    /**
+     * description 获取所有未上传到浪潮平台的走访事件列表
+     *
+     * @return String 事件列表
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @GetMapping("/eventvisitingtasks/getUnUploadVisitingTask")
+    List<LcEventVisitingTasksListDTO> getUnUploadVisitingTask();
+
+    /**
+     * description 更新走访任务上传是否成功标识
+     *
+     * @param id
+     *            事件主键ID
+     * @return Boolean 上传是否成功
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @PostMapping("/eventvisitingtasks/updateLcUploadFlagVisitingTask")
+    Boolean updateLcUploadFlagVisitingTask(@RequestParam("id") Long id);
+
+    /**
+     * 后台统计走访任务
+     *
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/eventvisitingtasks/count")
+    R countVisit(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 查询走访记录
+     *
+     * @param query
+     * @return
+     */
+    @PostMapping("/eventvisitingtasks/list")
+    R list(@RequestBody EventTasksQuery query);
+
+    /**
+     * 走访任务列表
+     *
+     * app走访任务列表
+     * 
+     * @param query
+     * @return
+     */
+    @PostMapping("/eventvisitingtasks/appTaskList")
+    R appTaskList(@RequestBody EventTasksQuery query);
+
+    /**
+     * 后台走访任务列表
+     * 
+     * @param query
+     * @return
+     */
+    @PostMapping("/eventvisitingtasks/taskList")
+    R taskList(@RequestBody EventTasksQuery query);
+
+    /**
+     * 导出
+     *
+     * @param query
+     * @return
+     */
+    @PostMapping("/eventvisitingtasks/exportTaskList")
+    List<EventVisitingTasksVO> exportTaskList(@RequestBody EventTasksQuery query);
+
+    /**
+     * 删除走访任务
+     *
+     * @param idDTO
+     * @param communityId
+     * @return
+     */
+    @PostMapping("/eventvisitingtasks/delete")
+    R delete(@RequestBody IdDTO idDTO, @RequestParam("communityId") Long communityId);
+
+    /**
+     * 被走访人员列表
+     *
+     * @param query
+     * @return
+     */
+    @PostMapping("/eventvisitingtasks/visitorList")
+    R visitorList(@RequestBody EventVisitListQuery query);
+
+    /**
+     * 走访详情
+     *
+     * @param id
+     * @return
+     */
+    @GetMapping("/eventvisitingtasks/detail/{id}")
+    R detail(@PathVariable("id") Long id);
+
+    /**
+     * 撤销走访
+     *
+     * @param idDTO
+     * @return
+     */
+    @PostMapping("/eventvisitingtasks/cancel")
+    R cancel(@RequestBody IdDTO idDTO);
+
+    /**
+     * 恢复走访
+     *
+     * @param idDTO
+     * @return
+     */
+    @PostMapping("/eventvisitingtasks/reset")
+    R reset(@RequestBody IdDTO idDTO);
+
+    /**
+     * 新增走访
+     *
+     * @param idDTO
+     * @param communityId
+     * @param userId
+     * @return
+     */
+    @PostMapping("/eventvisitingtasks/add")
+    R addVisitingTask(@RequestBody IdDTO idDTO, @RequestParam("communityId") Long communityId,
+        @RequestParam("userId") Long userId);
+
+    /**
+     * 开始走访
+     *
+     * @param id
+     * @return
+     */
+    @PostMapping("/eventvisitingtasks/start")
+    R start(@RequestParam("id") Long id, @RequestParam("userId") Long userId);
+
+    /**
+     * 完成走访记录
+     *
+     * @param taskCompleteDTO
+     * @return
+     */
+    @PostMapping("/eventvisitingtasks/complete")
+    R complete(@RequestBody EventVisitCompleteDTO taskCompleteDTO);
+
+    /**
+     * 查询市平台网格员列表
+     * 
+     * @return 市平台网格员列表
+     */
+    @GetMapping("/eventgridmemberrelation/lc/list")
+    R gridMemberLcList();
+
+    /**
+     * 综治后台-添加网格员级联列表
+     * 
+     * @param memberCascadeAddDTO
+     *            请求参数
+     * @return 级联列表
+     */
+    @PostMapping("/eventgridmemberrelation/cascade/list")
+    R gridMemberCascadeList(@RequestBody EventGridMemberCascadeAddDTO memberCascadeAddDTO);
+
+    /**
+     * 综治后台-查询所有市平台网格列表
+     * 
+     * @return 市平台网格列表
+     */
+    @GetMapping("/eventgriddata/lc/list")
+    R getLcGridLists();
+
+    /**
+     * 首页查询网格级联列表
+     * 
+     * @param cascadeListDTO
+     *            请求参数
+     * @return 网格列表
+     */
+    @PostMapping("/map/getMapGridListsByApp")
+    R getMapGridListsByApp(@RequestBody EventGridCascadeListDTO cascadeListDTO);
+
+    /**
+     * 首页查询网格级联列表2
+     * 
+     * @param userId
+     *            用户id
+     * @return 网格列表
+     */
+    @PostMapping("/map/getMapGridsListsByApp")
+    R getMapGridsListsByApp(@RequestParam("userId") Long userId);
+
+    /**
+     * 绘制多边形统计数据
+     * 
+     * @param eventListDTO
+     *            请求参数
+     * @return 统计数据
+     */
+    @PostMapping("/screen/getCivilDrawList")
+    R getCivilDrawList(@RequestBody ScreenDrawEventListDTO eventListDTO);
+
+    /**
+     * 新版绘制多边形统计数据
+     * @param eventListDTO
+     * @return
+     */
+    @PostMapping("/screen/getCivilDrawListNew")
+    R getCivilDrawListNew(@RequestBody ScreenDrawEventListDTO eventListDTO);
+
+    /**
+     * 大屏-根据小区id查询小区统计人数
+     * 
+     * @param villageId
+     *            小区id
+     * @return 小区统计数据
+     */
+    @GetMapping("/screen/village/statistics")
+    R civilVillageStatistics(@RequestParam("villageId") Long villageId);
+
+    /**
+     * 查询所有网格员工作汇总数据
+     * 
+     * @param statisticsAdminDTO
+     *            请求参数
+     * @return 网格员工作汇总数据
+     */
+    @PostMapping("/statistics/admin/gridMemberStatisticsAll")
+    R gridMemberStatisticsAll(@RequestBody MemberStatisticsAdminDTO statisticsAdminDTO);
+
+    /**
+     * 定时任务-给上月已走访的人员创建定时任务
+     * @return  执行结果
+     */
+    @PostMapping("/eventvisitingtasks/timedTaskVisitingJobHandler")
+    R timedTaskVisitingJobHandler();
+
+    /**
+     * 查询社区网格员运动轨迹
+     * @param communityId   社区id
+     * @return  社区网格员运动轨迹
+     */
+    @GetMapping("/screen/member/trajectory")
+    R getGridsMemberTrajectory(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 西区大数据分析平台-综合治理栏
+     * @return
+     */
+    @GetMapping("/screen/comprehensive/governance")
+    R getComprehensiveGovernanceStatics();
+
+    /**
+     * 大屏-新根据小区id查询小区统计人数
+     *
+     * @param villageId
+     *            小区id
+     * @return 小区统计数据
+     */
+    @GetMapping("/screen/village/statistics-new")
+    R civilVillageStatisticsNew(@RequestParam("villageId") Long villageId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/jinhui/JinhuiCommunityService.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/jinhui/JinhuiCommunityService.java
new file mode 100644
index 0000000..0b0b1a6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/jinhui/JinhuiCommunityService.java
@@ -0,0 +1,1156 @@
+package com.panzhihua.common.service.jinhui;
+
+import com.panzhihua.common.model.dtos.community.ComActWorkGuideDTO;
+import com.panzhihua.common.model.dtos.community.PageActWorkGuideDTO;
+import com.panzhihua.common.model.dtos.community.convenient.JinhuiPageConvenientMerchantDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PageConvenientMerchantDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActWorkGuideClassifyVO;
+import com.panzhihua.common.model.vos.community.convenient.JinhuiConvenientMerchantVO;
+import com.panzhihua.common.model.vos.jinhui.*;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 金汇社区
+ */
+@FeignClient(name = "huacheng-jinhui-community")
+public interface JinhuiCommunityService
+{
+    /****************************************************************************************************
+     *
+     *
+     *                                   金汇币总币
+     *
+     *
+     *****************************************************************************************************/
+
+
+    @GetMapping("/jinhuiCoinTable/getList")
+    public R coinTableGetList(@RequestParam("pageNum")  int pageNum,
+                              @RequestParam("pageSize")  int pageSize,
+                              @RequestParam("type")   String type);
+
+    @GetMapping("/jinhuiCoinTable/getDetails")
+    public R coinTableGetDetails(@RequestParam("userId") String userId);
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/jinhuiCoinTable/addData")
+    public R coinTableAddData(@RequestBody JinhuiCoinGeneralTableVO jinhuiGoldCoinRecordVO);
+
+    @PostMapping("/jinhuiCoinTable/editData")
+    public R coinTableEditData(@RequestBody JinhuiCoinGeneralTableVO jinhuiGoldCoinRecordVO);
+
+    @PostMapping("/jinhuiCoinTable/expurgateData")
+    public R coinTableExpurgateData(@RequestParam("id") String id);
+
+
+
+
+
+
+    /****************************************************************************************************
+     *
+     *
+     *                                   金汇币记录
+     *
+     *
+     *****************************************************************************************************/
+
+    @GetMapping("/jinhuiRecord/getList")
+    public R recordGetList(@RequestParam("pageNum")  int pageNum,
+                           @RequestParam("pageSize")  int pageSize,
+                           @RequestParam("userId")   String userId);
+
+    @GetMapping("/jinhuiRecord/getDetails")
+    public R recordGetDetails(@RequestParam("id") String id);
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/jinhuiRecord/addData")
+    public R recordAddData(@RequestBody JinhuiGoldCoinRecordVO jinhuiGoldCoinRecordVO);
+
+    @PostMapping("/jinhuiRecord/editData")
+    public R recordEditData(@RequestBody JinhuiGoldCoinRecordVO jinhuiGoldCoinRecordVO);
+
+    @PostMapping("/jinhuiRecord/expurgateData")
+    public R recordExpurgateData(@RequestParam("id") String id);
+
+
+    /*************************************************************************************************
+     *
+     *                                  办事指南
+     *
+     ***************************************************************************************************/
+
+    /**
+     * 办事指南_新增
+     *
+     * @param workGuideDTO
+     *            新增信息
+     * @return 新增结果
+     */
+    @PostMapping("/JinhuiWorkGuide/addworkguide")
+    @Transactional(rollbackFor = Exception.class)
+    public R addWorkGuide(@RequestBody ComActWorkGuideDTO workGuideDTO, @RequestParam("userId") String userId);
+
+    /**
+     * 办事指南_编辑
+     *
+     * @param workGuideDTO
+     * @return 编辑结果
+     */
+    @PostMapping("/JinhuiWorkGuide/editworkguide")
+    @Transactional(rollbackFor = Exception.class)
+    public R putWorkGuide(@RequestBody ComActWorkGuideDTO workGuideDTO, @RequestParam("userId") String userId) ;
+
+    /**
+     * 办事指南_详情
+     *
+     * @param workGuideId
+     * @return 详情
+     */
+    @GetMapping("/JinhuiWorkGuide/detailworkguide")
+    public R detailWorkGuide(@RequestParam("workGuideId") String workGuideId,
+                             @RequestParam("communityId") String communityId) ;
+
+    /**
+     * 办事指南_分页
+     *
+     * @param pageActWorkGuideDTO
+     *            查询参数
+     * @return 分页集合
+     */
+    @PostMapping("/JinhuiWorkGuide/pageworkguide")
+    public R pageWorkGuide(@RequestBody PageActWorkGuideDTO pageActWorkGuideDTO) ;
+
+    /**
+     * 办事指南_删除
+     *
+     * @param workGuideId
+     *            办事指南id
+     * @return 删除结果
+     */
+    @PostMapping("/JinhuiWorkGuide/delectworkguide")
+    R delectWorkGuide(@RequestParam("workGuideId") String workGuideId) ;
+
+    /**
+     * 分页查询办事执念-分类管理 addWorkGuideClassify  分页查询办事执念-分类管理
+     * @param    comActWorkGuideClassifyVO   查询参数
+     * @return    R   返回结果
+     * @author txb
+     * @date 2021/8/31 15:03
+     */
+    @PostMapping("/JinhuiWorkGuide/workGuide/classify/apage")
+    public R pageWorkGuideClassify(@RequestBody ComActWorkGuideClassifyVO comActWorkGuideClassifyVO) ;
+
+    /**
+     * 办事执念-分类管理新增或修改  addWorkGuideClassify  办事执念-分类管理新增或修改
+     * @param    comActWorkGuideClassifyVO   新增或修改参数
+     * @return    R   返回结果
+     * @author txb
+     * @date 2021/8/31 15:03
+     */
+    @PostMapping("/JinhuiWorkGuide/workGuide/classify/add")
+    public R addWorkGuideClassify(@RequestBody ComActWorkGuideClassifyVO comActWorkGuideClassifyVO) ;
+
+    /**
+     * 办事执念-分类管理删除  addWorkGuideClassify  办事执念-分类管理删除
+     * @param    workGuideClassifyId    办事执念-分类管理id
+     * @return    R   返回结果
+     * @author txb
+     * @date 2021/8/31 15:03
+     */
+    @GetMapping("/JinhuiWorkGuide/workGuide/classify/delete")
+    public R deleteWorkGuideClassify(@RequestParam("workGuideClassifyId") String workGuideClassifyId) ;
+
+    /**
+     * 办事指南-分类管理列表查询  getWorkGuideClassifyList  办事指南-分类管理列表查询
+     * @return    R   返回结果
+     * @author txb
+     * @date 2021/8/31 15:03
+     */
+    @GetMapping("/JinhuiWorkGuide/workGuide/classify/getList")
+    public R getWorkGuideClassifyList(@RequestParam("areaCode")String areaCode) ;
+
+    /**
+     * 办事指南列表-按分类查询
+     * @param pageActWorkGuideDTO   请求参数
+     * @return  办事指南分类列表
+     */
+    @PostMapping("/JinhuiWorkGuide/listworkguide")
+    public R listWorkGuide(@RequestBody PageActWorkGuideDTO pageActWorkGuideDTO) ;
+
+    /**
+     * 根据办事指南分类id查询办事指南列表
+     * @param classifyId   办事指南分类id
+     * @return  办事指南列表数据
+     */
+    @GetMapping("/JinhuiWorkGuide/listworkguide/classify")
+    public R listWorkGuideByClassifyId(@RequestParam("classifyId") String classifyId) ;
+
+
+    /**********************************************************************************************
+     *
+     *
+     *                            便民服务
+     *
+     *
+     ************************************************************************************************/
+
+    /**
+     * 删除便民服务商家
+     *
+     * @param merchantId
+     * @return
+     */
+    @DeleteMapping("/jinhuiMerchant/delete")
+    public R deleteMerchant(@RequestParam("merchantId") String merchantId);
+
+    /**
+     * 分页查询便民服务商家 运营后台
+     *
+     * @param pageConvenientMerchantDTO
+     * @return
+     */
+    @PostMapping("/jinhuiMerchant/page")
+    public R pageMerchant(@RequestBody JinhuiPageConvenientMerchantDTO pageConvenientMerchantDTO);
+
+    /**
+     * 获取便民服务商家详情
+     *
+     * @param merchantId
+     * @return
+     */
+    @GetMapping("/jinhuiMerchant/get")
+    public R getMerchant(@RequestParam("merchantId") String merchantId);
+
+
+    /**
+     * 分页查询 商家类别
+     * @param
+     * @return
+     */
+    @GetMapping("/jinhuiMerchant/getCategories")
+    public R getListCategories(@RequestParam("pageNum") int pageNum,
+                               @RequestParam("pageSize") int pageSize);
+
+
+
+    @PostMapping("/jinhuiMerchant/addData")
+    public R merchantAddData(@RequestBody JinhuiConvenientMerchantVO item);
+
+    @PostMapping("/jinhuiMerchant/editData")
+    public R merchantEditData(@RequestBody JinhuiConvenientMerchantVO item);
+
+    /**************************************************************************************************************
+     *
+     *
+     *                                      商家评论
+     *
+     *
+     *************************************************************************************************************/
+    /**
+     * 商家评论列表
+     * @param pageNum
+     * @param pageSize
+     * @param merchantId
+     * @return
+     */
+    @GetMapping("/jinghuiMerchantEvaluate/getList")
+    public R merchantEvaluateGetList(@RequestParam("pageNum")  int pageNum,
+                                     @RequestParam("pageSize")  int pageSize,
+                                     @RequestParam("merchantId")   String merchantId);
+
+    /**
+     * 商家评论列单个详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/jinghuiMerchantEvaluate/getDetails")
+    public R merchantEvaluateGetDetails(@RequestParam("id") String id);
+    /**
+     * 商家评论列添加
+     * @param
+     * @return
+     */
+    @PostMapping("/jinghuiMerchantEvaluate/addData")
+    public R merchantEvaluateAddData(@RequestBody JinghuiMerchantEvaluateVO item);
+
+    /**
+     * 商家评论列编辑
+     * @param item
+     * @return
+     */
+    @PostMapping("/jinghuiMerchantEvaluate/editData")
+    public R merchantEvaluateEditData(@RequestBody JinghuiMerchantEvaluateVO item);
+
+    /**
+     * 商家评论列删除
+     * @param id
+     * @return
+     */
+    @PostMapping("/jinghuiMerchantEvaluate/expurgateData")
+    public R merchantEvaluateExpurgateData(@RequestParam("id") String id);
+
+
+    /*********************************************************************************************************
+     *
+     *
+     *                                金汇预约空间
+     *
+     *
+     *********************************************************************************************************/
+    /**
+     * 金汇空间预约模块分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/JinhuiInterspace/interspaceGetList")
+    public R interspaceGetList(@RequestParam("pageNum") int pageNum,
+                               @RequestParam("pageSize") int pageSize,
+                               @RequestParam(value = "intendantType",required = false) String intendantType);
+
+    /**
+     * 金汇空间预约模块单个详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/JinhuiInterspace/interspaceGetDetails")
+    public R interspaceGetDetails(@RequestParam("id") String id);
+
+    /**
+     * 金汇空间预约模块新增
+     * @param
+     * @return
+     */
+    @PostMapping("/JinhuiInterspace/interspaceAddData")
+    public R interspaceAddData(@RequestBody JinhuiInterspaceVO item);
+
+
+    /**
+     * 金汇空间预约模块编辑
+     * @return
+     */
+    @PostMapping("/JinhuiInterspace/interspaceEditData")
+    public R interspaceEditData(@RequestBody JinhuiInterspaceVO item);
+
+
+    /**
+     * 金汇空间预约模块删除
+     * @param id
+     * @return
+     */
+    @GetMapping("/JinhuiInterspace/interspaceExpurgateData")
+    public R interspaceExpurgateData(@RequestParam("id") String id);
+
+
+    /****************************************************************************************************
+     *
+     *
+     *                                     空间预约分类
+     *
+     *
+     ******************************************************************************************************/
+    /**
+     * 空间预约分类分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/JinhuiInterspace/interspaceTypeGetList")
+    public R interspaceTypeGetList(@RequestParam("pageNum") int pageNum,
+                                   @RequestParam("pageSize") int pageSize);
+
+    /**
+     * 空间预约分类单个详情
+     * @param
+     * @return
+     */
+    @GetMapping("/JinhuiInterspace/interspaceTypeGetDetails")
+    public R interspaceTypeGetDetails(@RequestParam("id") String id);
+
+    /**
+     * 空间预约分类新增
+     * @param
+     * @return
+     */
+    @PostMapping("/JinhuiInterspace/interspaceTypeAddData")
+    public R interspaceTypeAddData(@RequestBody JinhuiInterspaceTypeVO item);
+
+    /**
+     * 空间预约分类编辑
+     * @param
+     * @return
+     */
+    @PostMapping("/JinhuiInterspace/interspaceTypeEditData")
+    public R interspaceTypeEditData(@RequestBody JinhuiInterspaceTypeVO item);
+
+
+    /**
+     * 空间预约分类删除
+     * @param
+     * @return
+     */
+    @DeleteMapping("/JinhuiInterspace/interspaceTypeExpurgateData")
+    public R interspaceTypeExpurgateData(@RequestParam("id") String id);
+
+
+
+    /***************************************************************************************************************
+     *
+     *
+     *                                       空间预约申请
+     *
+     *
+     **************************************************************************************************************/
+    /**
+     * 空间预约申请分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/JinhuiInterspace/applyFor/getList")
+    public R applyForGetList(@RequestParam("pageNum") int pageNum,
+                             @RequestParam("pageSize") int pageSize,
+                             @RequestParam(value = "intendantType",required = false) String intendantType,
+                             @RequestParam(value = "state",required = false) String state,
+                             @RequestParam(value = "interspaceTime",required = false) String interspaceTime,
+                             @RequestParam(value = "subscribeTimeFrame",required = false) String subscribeTimeFrame,
+                             @RequestParam(value = "interspaceId",required = false) String interspaceId,
+                             @RequestParam(value = "userId",required = false) String userId);
+
+    /**
+     * 空间预约申请详情
+     * @param
+     * @return
+     */
+    @GetMapping("/JinhuiInterspace/applyFor/getDetails")
+    public R applyForGetDetails(@RequestParam("id") String id);
+
+    /**
+     * 空间预约申请新增
+     * @param
+     * @return
+     */
+    @PostMapping("/JinhuiInterspace/applyFor/addData")
+    public R applyForAddData(@RequestBody JinhuiInterspaceApplyForVO item);
+
+    /**
+     * 空间预约申请编辑
+     * @param
+     * @return
+     */
+    @PostMapping("/JinhuiInterspace/applyFor/editData")
+    public R applyForEditData(@RequestBody JinhuiInterspaceApplyForVO item);
+
+    /**
+     * 空间预约申请删除
+     * @param
+     * @return
+     */
+    @DeleteMapping("/JinhuiInterspace/applyFor/expurgateData")
+    public R applyForExpurgateData(@RequestParam("id") String id);
+
+
+    /**************************************************************************************************************
+     *
+     *
+     *                               金汇微心愿
+     *
+     *
+     ***************************************************************************************************************/
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/micro/volunteering/getList")
+    public R volunteeringGetList(@RequestParam("pageNum") int pageNum,
+                                 @RequestParam("pageSize") int pageSize,
+                                 @RequestParam(value = "userId", required = false)String userId,
+                                 @RequestParam(value = "state", required = false)String state);
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/micro/volunteering/getDetails")
+    public R volunteeringGetDetails(@RequestParam("id") String id);
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/micro/volunteering/addData")
+    public R volunteeringAddData(@RequestBody JinhuiMicroVolunteeringVO item);
+
+    /**
+     * 编辑
+     * @param item
+     * @return
+     */
+    @PostMapping("/micro/volunteering/editData")
+    public R volunteeringEditData(@RequestBody JinhuiMicroVolunteeringVO item);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/micro/volunteering/expurgateData")
+    public R volunteeringExpurgateData(@RequestParam("id") String id);
+
+
+
+    /***************************************************************************************************************
+     *
+     *
+     *                        金汇微心愿分类
+     *
+     *
+     *****************************************************************************************************************/
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/micro/type/getList")
+    public R volunteeringTypeGetList(@RequestParam("pageNum") int pageNum,
+                                     @RequestParam("pageSize") int pageSize);
+
+
+    /**
+     * 详情
+     * @param
+     * @return
+     */
+    @GetMapping("/micro/type/getDetails")
+    public R volunteeringTypeGetDetails(@RequestParam("id") String id);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/micro/type/addData")
+    public R volunteeringTypeAddData(@RequestBody JinhuiMicroVolunteeringTypeVO item);
+
+    /**
+     * 编辑
+     * @param
+     * @return
+     */
+    @PostMapping("/micro/type/editData")
+    public R volunteeringTypeEditData(@RequestBody JinhuiMicroVolunteeringTypeVO item);
+
+    /**
+     * 删除
+     * @param
+     * @return
+     */
+    @DeleteMapping("/micro/type/expurgateData")
+    public R volunteeringTypeExpurgateData(@RequestParam("id") String id);
+
+
+    /*********************************************************************************************************
+     *
+     *
+     *            金汇商城商品
+     *
+     *
+     *********************************************************************************************************/
+    /**
+     * 分页查询
+     *
+     * @param
+     * @return
+     */
+    @GetMapping("/jinhuiShopping/shoppingGetList")
+    public R shoppingGetList(@RequestParam("pageNum") int pageNum,
+                             @RequestParam("pageSize") int pageSize,
+                             @RequestParam(value = "goodName", required = false) String goodName,
+                             @RequestParam(value = "goodType", required = false) String goodType,
+                             @RequestParam(value = "id", required = false) String id);
+
+
+    @GetMapping("/jinhuiShopping/shoppingGetDetails")
+    public R shoppingGetDetails(@RequestParam("id") String id,@RequestParam("communityId") String communityId);
+
+    /**
+     * 新增
+     *
+     * @param
+     * @return
+     */
+    @PostMapping("/jinhuiShopping/shoppingAddData")
+    public R shoppingAddData(@RequestBody JinhuiShoppingVO item);
+
+
+    @PostMapping("/jinhuiShopping/shoppingEditData")
+    public R shoppingEditData(@RequestBody JinhuiShoppingVO item);
+
+    @DeleteMapping("/jinhuiShopping/shoppingExpurgateData")
+    public R shoppingExpurgateData(@RequestParam("id") String id);
+
+
+    /********************************************************************************************************
+     *
+     *
+     *                         金汇商城商品订单
+     *
+     *
+     ********************************************************************************************************/
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/jinhuiShopping/orderGetList")
+    public R orderGetList(@RequestParam("pageNum") int pageNum,
+                          @RequestParam("pageSize") int pageSize,
+                          @RequestParam(value = "userId", required = false)String userId,
+                          @RequestParam(value = "goodsId", required = false)String goodsId,
+                          @RequestParam(value = "orderNumber", required = false)String orderNumber,
+                          @RequestParam(value = "goodName", required = false)String goodName,
+                          @RequestParam(value = "name", required = false)String name,
+                          @RequestParam(value = "cancelType", required = false)String cancelType);
+
+    /**
+     * 分页详情
+     * @param
+     * @return
+     */
+    @GetMapping("/jinhuiShopping/orderGetDetails")
+    public R orderGetDetails(@RequestParam("id") String id);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/jinhuiShopping/orderAddData")
+    public R orderAddData(@RequestBody JinhuiShoppingOrderVO item);
+
+
+    /**
+     * 编辑
+     * @param
+     * @return
+     */
+    @PostMapping("/jinhuiShopping/orderEditData")
+    public R orderEditData(@RequestBody JinhuiShoppingOrderVO item);
+
+
+    /**
+     * 取消
+     * @param
+     * @return
+     */
+    @GetMapping("/jinhuiShopping/orderCancelOrder")
+    public R orderCancelOrder(@RequestParam("orderId") String orderId);
+
+
+    /**
+     * 删除
+     * @param
+     * @return
+     */
+    @DeleteMapping("/jinhuiShopping/orderExpurgateData")
+    public R orderExpurgateData(@RequestParam("id") String id);
+
+
+    /***************************************************************************************************************
+     *
+     *
+     *                            社区配置兑换地址 时间
+     *
+     * *******************************************************************************************************
+     * @return
+     */
+
+    @GetMapping("/jinhuiConfig/configGetDetails")
+    public R configGetDetails(@RequestParam("communityId") String communityId);
+
+
+    @PostMapping("/jinhuiConfig/configAddData")
+    public R configAddData(@RequestBody JinhuiConfigVO item);
+
+    @PostMapping("/jinhuiConfig/configEditData")
+    public R configEditData(@RequestBody JinhuiConfigVO item);
+
+    @DeleteMapping("/jinhuiConfig/configExpurgateData")
+    public R configExpurgateData(@RequestParam("communityId") String communityId);
+
+
+
+    /*************************************************************************************************************
+     *
+     *
+     *                                       商家分类
+     *
+     *
+     **************************************************************************************************************/
+
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/jinhuiMerchant/getDetailsCategories")
+    public R getDetailsCategories(@RequestParam("id") String id);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/jinhuiMerchant/addDataCategories")
+    public R addDataCategories(@RequestBody JinhuiComConvenientServiceCategoriesVO item);
+
+
+    /**
+     * 编辑
+     * @param item
+     * @return
+     */
+    @PostMapping("/jinhuiMerchant/editDataCategories")
+    public R editDataCategories(@RequestBody JinhuiComConvenientServiceCategoriesVO item);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    @GetMapping("/jinhuiMerchant/expurgateDataCategories")
+    public R expurgateDataCategories(@RequestParam("id") String id);
+
+
+    /*********************************************************************************************************
+     *
+     *
+     *                           金汇体验活动
+     *
+     *
+     **********************************************************************************************************/
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    /**
+     * 分页查询
+     *
+     * @param
+     * @return
+     */
+    @GetMapping("/JinhuiExperience/experienceGetList")
+    public R experienceGetList(@RequestParam("pageNum") int pageNum,
+                               @RequestParam("pageSize")  int pageSize,
+                               @RequestParam(value = "activityName", required = false) String activityName,
+                               @RequestParam(value = "activityType", required = false) String activityType,
+                               @RequestParam(value = "starTime", required = false) Date starTime,
+                               @RequestParam(value = "endTime", required = false) Date endTime);
+
+    /**
+     * 单个详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/JinhuiExperience/experienceGetDetails")
+    public R experienceGetDetails(@RequestParam("id") String id,
+                                  @RequestParam(value = "userId", required = false) String userId);
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/JinhuiExperience/experienceAddData")
+    public R experienceAddData(@RequestBody JinhuiExperienceActivityVO item);
+
+    /**
+     * 编辑
+     * @param item
+     * @return
+     */
+    @PostMapping("/JinhuiExperience/experienceEditData")
+    public R experienceEditData(@RequestBody JinhuiExperienceActivityVO item);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    @GetMapping("/JinhuiExperience/experienceExpurgateData")
+    public R experienceExpurgateData(@RequestParam("id") String id);
+
+
+    /******************************************************************************************************
+     *
+     *                    金汇文章
+     *
+     *******************************************************************************************************/
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/JinhuiArticle/articleGetList")
+    public R articleGetList(@RequestParam("pageNum") int pageNum,
+                            @RequestParam("pageSize")  int pageSize,
+                            @RequestParam(value = "articleType", required = false) String articleType,
+                            @RequestParam(value = "conditionType", required = false) String conditionType);
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/JinhuiArticle/articleGetDetails")
+    public R articleGetDetails(@RequestParam("id") String id);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/JinhuiArticle/articleAddData")
+    public R articleAddData(@RequestBody JinhuiArticleManagementVO item);
+
+    /**
+     * 编辑
+     * @param item
+     * @return
+     */
+    @PostMapping("/JinhuiArticle/articleEditData")
+    public R articleEditData(@RequestBody JinhuiArticleManagementVO item);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    @GetMapping("/JinhuiArticle/articleExpurgateData")
+    public R articleExpurgateData(@RequestParam("id") String id);
+
+
+
+    /*******************************************************************************************************
+     *
+     *                           金汇报名体验
+     *
+     *******************************************************************************************************/
+    /**
+     * 分页查询
+     *
+     * @param
+     * @return
+     */
+    @GetMapping("/JinhuiExperience/applyExperienceGetList")
+    public R applyExperienceGetList(@RequestParam("pageNum") int pageNum,
+                                    @RequestParam("pageSize") int pageSize,
+                                    @RequestParam(value = "userId", required = false) String userId,
+                                    @RequestParam(value = "isFeedback", required = false) String isFeedback,
+                                    @RequestParam(value = "activityId", required = false) String activityId);
+
+
+    @GetMapping("/JinhuiExperience/applyExperienceGetDetails")
+    public R applyExperienceGetDetails(@RequestParam(value = "id", required = false) String id,
+                                       @RequestParam(value = "userId", required = false) String userId,
+                                       @RequestParam(value = "activityId", required = false) String activityId);
+
+    /**
+     * 新增
+     *
+     * @param
+     * @return
+     */
+    @PostMapping("/JinhuiExperience/applyExperienceAddData")
+    public R applyExperienceAddData(@RequestBody JinhuiApplyExperienceVO item);
+
+    @PostMapping("/JinhuiExperience/applyExperienceEditData")
+    public R applyExperienceEditData(@RequestBody JinhuiApplyExperienceVO item);
+
+    @DeleteMapping("/JinhuiExperience/applyExperienceExpurgateData")
+    public R applyExperienceExpurgateData(@RequestParam("id") String id);
+
+
+    /**
+     * 填写反馈接口
+     * @return
+     */
+    @GetMapping("/JinhuiExperience/applyExperienceFilIn")
+    public R filIn(@RequestParam("userId") String userId,
+                   @RequestParam("activityId") String activityId,
+                   @RequestParam("content") String content);
+
+
+
+    /**************************************************************************************************************
+     *
+     *
+     *                                       定时任务
+     *
+     *
+     *******************************************************************************************************************/
+
+    //金汇社区定时任务
+    @GetMapping("/JinhuiExperience/timedTaskJinhuiActivitiesJobHandler")
+    public R timedTaskJinhuiActivitiesJobHandler();
+
+
+
+    /************************************************************************************************************
+     *
+     *
+     *                         用户提交办理 /JinhuiWorkGuide/
+     *
+     *
+     *******************************************************************************************************/
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/JinhuiWorkGuide/answer/getList")
+    public R answerGetList(@RequestParam("pageNum") int pageNum,
+                     @RequestParam("pageSize") int pageSize,
+                     @RequestParam(value = "userId", required = false) String userId,
+                     @RequestParam(value = "transactType", required = false) String transactType);
+
+    /**
+     * 获取详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/JinhuiWorkGuide/answer/getDetails")
+    public R answerGetDetails(@RequestParam("id") String id);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/JinhuiWorkGuide/answer/addData")
+    public R answerAddData(@RequestBody JinhuiQuestnaireUserAnswerVO item);
+
+    /**
+     * 编辑
+     * @param item
+     * @return
+     */
+    @PostMapping("/JinhuiWorkGuide/answer/editData")
+    public R answerEditData(@RequestBody JinhuiQuestnaireUserAnswerVO item);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/JinhuiWorkGuide/answer/expurgateData")
+    public R answerExpurgateData(@RequestParam("id") String id);
+
+
+
+
+    /********************************************************************************************************
+     *
+     *
+     *                             金汇网格
+     *
+     *
+     ****************************************************************************************************/
+
+    /**
+     * 分页查询
+     *
+     * @param
+     * @return
+     */
+    @GetMapping("/jinhuiReseau/getReseauList")
+    public R getReseauList(@RequestParam("pageNum") int pageNum,
+                           @RequestParam("pageSize") int pageSize);
+
+
+    @GetMapping("/jinhuiReseau/getReseauDetails")
+    public R getReseauDetails(@RequestParam("id")String id);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/jinhuiReseau/addReseauData")
+    public R addReseauData(@RequestBody JinhuiReseauVO item);
+
+
+    @PostMapping("/jinhuiReseau/editReseauData")
+    public R editReseauData(@RequestBody JinhuiReseauVO item);
+
+    @PostMapping("/jinhuiReseau/expurgateReseauData")
+    public R expurgateReseauData(@RequestParam("id") String id);
+
+
+    /**
+     * 获取未绑定人员的网格
+     * @return
+     */
+    @GetMapping("/jinhuiReseau/getReseauBoxList")
+    public R getReseauBoxList();
+
+    /********************************************************************************************************
+     *
+     *
+     *                             金汇网格员
+     *
+     *
+     ****************************************************************************************************/
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/jinhuiReseau/getPeopleList")
+    public R getPeopleList(@RequestParam("pageNum") int pageNum,
+                           @RequestParam("pageSize") int pageSize);
+
+
+    /**
+     * 分页查询
+     * 获取本社区用户
+     * @param
+     * @return
+     */
+    @GetMapping("/jinhuiReseau/getPeopleUserList")
+    public R getPeopleUserList(@RequestParam("pageNum") int pageNum,
+                               @RequestParam("pageSize") int pageSize,
+                               @RequestParam(value = "nameAndPhone", required = false) String nameAndPhone);
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/jinhuiReseau/getPeopleDetails")
+    public R getPeopleDetails(@RequestParam("id") String id);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/jinhuiReseau/addPeopleData")
+    public R addPeopleData(@RequestBody JinhuiReseauPeopleVO item);
+
+
+    /**
+     * 编辑
+     * @param item
+     * @return
+     */
+    @PostMapping("/jinhuiReseau/editPeopleData")
+    public R editPeopleData(@RequestBody JinhuiReseauPeopleVO item);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/jinhuiReseau/expurgatePeopleData")
+    public R expurgatePeopleData(@RequestParam("id") String id);
+
+
+    /****************************************************************************************************************
+     *
+     *
+     *                                  金汇慈善公益
+     *
+     *
+     ******************************************************************************************************************/
+    /**
+     * 分页查询
+     *
+     * @param
+     * @return
+     */
+    @GetMapping("/JinhuiCharity/getCharityList")
+    public R getCharityList(@RequestParam("pageNum") int pageNum,
+                            @RequestParam("pageSize") int pageSize,
+                            @RequestParam(value = "title", required = false) String title,
+                            @RequestParam(value = "label", required = false) String label,
+                            @RequestParam(value = "state", required = false) String state);
+
+    /**
+     * 金汇大屏用
+     *
+     * @param
+     * @return
+     */
+    @GetMapping("/JinhuiCharity/getJinhuiCharityList")
+    public R getJinhuiCharityList();
+
+    /**
+     * 获取详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/JinhuiCharity/getCharityDetails")
+    public R getCharityDetails(@RequestParam("id") String id);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/JinhuiCharity/addCharityData")
+    public R addCharityData(@RequestBody JinhuiCharityVO item);
+
+    @PostMapping("/JinhuiCharity/editCharityData")
+    public R editCharityData(@RequestBody JinhuiCharityVO item);
+
+    @DeleteMapping("/JinhuiCharity/expurgateCharityData")
+    public R expurgateCharityData(@RequestParam("id") String id);
+
+
+    /***************************************************************************************************************
+     *
+     *                 金汇大屏
+     *
+     **************************************************************************************************************/
+    /**
+     * 金汇首页数据
+     * @return
+     */
+    @GetMapping("/JinhuiLargeScreen/getIndexInfo")
+    public R getIndexInfo();
+
+
+    /**
+     * 金汇大屏社区服务
+     * @return
+     */
+    @GetMapping("/JinhuiLargeScreen/getCommunityServices")
+    public R getCommunityServices();
+
+    /**
+     * 金汇居家养老
+     * @return
+     */
+    @GetMapping("/JinhuiLargeScreen/getOldMan")
+    public R getOldMan();
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/partybuilding/ComDataStatisticsFeign.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/partybuilding/ComDataStatisticsFeign.java
new file mode 100644
index 0000000..8d1219c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/partybuilding/ComDataStatisticsFeign.java
@@ -0,0 +1,38 @@
+package com.panzhihua.common.service.partybuilding;
+
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.model.dtos.common.AddComPbCheckUnitDto;
+import com.panzhihua.common.model.dtos.common.EditComPbCheckUnitDto;
+import com.panzhihua.common.model.dtos.common.PageComPbCheckUnitDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.partybuilding.excel.ComPbCheckUnitExcelVO;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * title: 党建-数据统计业务层接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 党建-数据统计业务层接口
+ *
+ * @author lyq
+ * @date 2022-02-16 16:22:48
+ */
+@FeignClient(name = "huacheng-partybuilding", contextId = "comDataStatistics", path = "comDataStatistics")
+public interface ComDataStatisticsFeign {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comPbCheckUnit 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-02-16 16:22:48
+     */
+    @PostMapping("/page")
+    R pageDataStatisticsMember(@RequestBody PageComPbCheckUnitDto comPbCheckUnit);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/partybuilding/ComPbCheckUnitFeign.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/partybuilding/ComPbCheckUnitFeign.java
new file mode 100644
index 0000000..fba49df
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/partybuilding/ComPbCheckUnitFeign.java
@@ -0,0 +1,161 @@
+package com.panzhihua.common.service.partybuilding;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.TreeListVO;
+import com.panzhihua.common.model.vos.partybuilding.excel.ComPbCheckUnitExcelVO;
+import org.springframework.web.bind.annotation.*;
+import com.panzhihua.common.constants.Constants;
+import org.springframework.cloud.openfeign.FeignClient;
+
+import java.util.List;
+
+/**
+ * title: 党建-报到单位业务层接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 党建-报到单位业务层接口
+ *
+ * @author lyq
+ * @date 2022-02-16 16:22:48
+ */
+@FeignClient(name =  "huacheng-partybuilding", contextId = "comPbCheckUnit", path = "comPbCheckUnit")
+public interface ComPbCheckUnitFeign {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comPbCheckUnit 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-02-16 16:22:48
+     */
+    @PostMapping("/page")
+    R queryByPage(@RequestBody PageComPbCheckUnitDto comPbCheckUnit);
+
+    @PostMapping("/treeList")
+    R treeList(@RequestBody TreeListVO treeListVO);
+
+    @GetMapping("/orgList")
+    public R orgList();
+    /**
+     * description  insert  新增数据
+     *
+     * @param comPbCheckUnit 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-02-16 16:22:48
+     */
+    @PostMapping("/add")
+    R insert(@RequestBody AddComPbCheckUnitDto comPbCheckUnit);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comPbCheckUnit 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-02-16 16:22:48
+     */
+    @PutMapping("/edit")
+    R update(@RequestBody EditComPbCheckUnitDto comPbCheckUnit);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-02-16 16:22:48
+     */
+    @GetMapping("/delete")
+    R deleteById(@RequestParam("id") Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-02-16 16:22:48
+     */
+    @GetMapping("/detail")
+    R detailById(@RequestParam("id") Long id);
+
+    /**
+     * description  queryByList  查询列表
+     *
+     * @param comPbCheckUnit 请求参数
+     * @return 查询列表数据
+     * @author lyq
+     * @date 2022-02-16 16:22:48
+     */
+    @PostMapping("/list")
+    R queryByList(@RequestBody PageComPbCheckUnitDto comPbCheckUnit);
+
+    /**
+     * 批量导入报道单位
+     * @param list  导入数据
+     * @param communityId   社区id
+     * @param userId    用户id
+     * @return  导入结果
+     */
+    @PostMapping("/importCheckUnit")
+    R importCheckUnit(@RequestBody List<ComPbCheckUnitExcelVO> list,@RequestParam(value = "communityId") Long communityId
+            ,@RequestParam(value = "userId") Long userId);
+
+    /**
+     * 报到单位统计-顶部数据
+     * @param communityId
+     * @param belongTo
+     * @param choice
+     * @return
+     */
+    @GetMapping("/statistics/top")
+    R unitStatisticsTop(@RequestParam(value = "communityId", required = false) Long communityId,
+                        @RequestParam(value = "belongTo") String belongTo,
+                        @RequestParam(value = "choice", required = false) String choice,
+                        @RequestParam(value = "unitIds", required = false) Long[] unitIds,
+                        @RequestParam(value = "yearTime",required = false) String yearTime);
+
+    /**
+     * 报到单位统计
+     * @param commonDto
+     * @return
+     */
+    @PostMapping("/statistics")
+    R unitStatistics(@RequestBody PagePbCheckUnitCommonDto commonDto);
+
+    /**
+     * 报到党员统计-顶部数据
+     * @param communityId
+     * @param belongTo
+     * @param choice
+     * @param checkUnitId
+     * @return
+     */
+    @GetMapping("/pbStatistics/top")
+    R pbStatisticsTop(@RequestParam(value = "communityId", required = false) Long communityId,
+                      @RequestParam(value = "belongTo") String belongTo,
+                      @RequestParam(value = "choice", required = false) String choice,
+                      @RequestParam(value = "checkUnitId", required = false) Long checkUnitId,
+                      @RequestParam(value = "unitIds", required = false) Long[] unitIds,
+                      @RequestParam(value = "yearTime",required = false) String yearTime);
+
+    /**
+     * 报到党员统计-按单位归属统计
+     * @param commonDto
+     * @return
+     */
+    @PostMapping("/pbStatistics/belong")
+    R pbStatisticsBelong(@RequestBody PagePbCheckUnitCommonDto commonDto);
+
+    /**
+     * 报到党员统计-按单位统计
+     * @param commonDto
+     * @return
+     */
+    @PostMapping("/pbStatistics/unit")
+    R pbStatisticsUnit(@RequestBody PagePbCheckUnitCommonDto commonDto);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/partybuilding/NewStriveForFeign.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/partybuilding/NewStriveForFeign.java
new file mode 100644
index 0000000..372cf63
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/partybuilding/NewStriveForFeign.java
@@ -0,0 +1,651 @@
+package com.panzhihua.common.service.partybuilding;
+
+import com.panzhihua.common.model.dtos.partybuilding.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.building.*;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+/**
+ *
+ */
+@FeignClient(name = "huacheng-partybuilding", contextId = "NewStriveForFeign")
+public interface NewStriveForFeign
+{
+
+
+    /************************************************************************************************************
+     *
+     *                           党员排序
+     *
+     ************************************************************************************************************/
+
+    @GetMapping("/NewStriveFor/getUserRank")
+    public R getUserRank(@RequestParam("userId") String userId);
+
+    @GetMapping("/NewStriveFor/getUserRankList")
+    public R getUserRankList(@RequestParam("pageNum") int pageNum,
+                             @RequestParam("pageSize") int pageSize,
+                             @RequestParam("userId") String userId);
+
+    @GetMapping("/NewStriveFor/getAllintegral")
+    public R getAllintegral(@RequestParam("type") String type,
+                            @RequestParam("userId") String userId);
+
+
+
+
+    /************************************************************************************************************
+     *
+     *                           问题需求清单
+     *
+     ************************************************************************************************************/
+
+
+    @GetMapping("/NeedProblem/getList")
+    public R getNeedProblemList(@RequestParam("pageNum") int pageNum,
+                                @RequestParam("pageSize") int pageSize,
+                                @RequestParam(value = "search", required = false)String search,
+                                @RequestParam(value = "classifyId", required = false)String classifyId,
+                                @RequestParam(value = "status", required = false)String status,
+                                @RequestParam(value = "kind", required = false)String kind,
+                                @RequestParam(value = "userId", required = false)String userId,
+                                @RequestParam(value = "userIds", required = false)String userIds,
+                                @RequestParam(value = "communityId", required = false)String communityId,
+                                @RequestParam(value = "isDisplay", required = false)String isDisplay,
+                                @RequestParam(value = "startTime", required = false) Date startTime,
+                                @RequestParam(value = "endTime", required = false) Date endTime);
+
+    @GetMapping("/NeedProblem/getMyJoinNeedProblemList")
+    public R getMyJoinNeedProblemList(@RequestParam("pageNum") int pageNum,
+                                      @RequestParam("pageSize") int pageSize,
+                                      @RequestParam(value = "search", required = false)String search,
+                                      @RequestParam(value = "status", required = false)String status,
+                                      @RequestParam(value = "kind", required = false)String kind,
+                                      @RequestParam(value = "userIds", required = false)String userIds,
+                                      @RequestParam(value = "userId", required = false)String userId,
+                                      @RequestParam(value = "isDisplay", required = false)String isDisplay,
+                                      @RequestParam(value = "startTime", required = false) Date startTime,
+                                      @RequestParam(value = "endTime", required = false) Date endTime);
+
+
+    @GetMapping("/NeedProblem/getDetails")
+    public R getNeedProblemDetails(@RequestParam("id") String id,@RequestParam("userIds") String userIds);
+
+    @PostMapping("/NeedProblem/addData")
+    public R addNeedProblemData(@RequestBody NeedProblemInventoryDTO item);
+
+    @PostMapping("/NeedProblem/editData")
+    public R editNeedProblemData(@RequestBody NeedProblemInventoryDTO item);
+
+    @DeleteMapping("/NeedProblem/expurgateData")
+    public R expurgateNeedProblemData(@RequestParam("id") String id);
+
+
+    /*******************************************************************************************************
+     *
+     *         任务需求报名
+     *
+     *******************************************************************************************************/
+    @GetMapping("/NeedClaim/getNeedClaimList")
+    public R getNeedClaimList(@RequestParam(value = "taskId", required = false) String taskId,
+                              @RequestParam(value = "userId", required = false) String userId,
+                              @RequestParam(value = "unitId", required = false) String unitId);
+
+    @GetMapping("/NeedClaim/getNeedClaimDetails")
+    public R getNeedClaimDetails(@RequestParam(value = "id", required = false) String id,
+                                 @RequestParam(value = "taskId", required = false) String taskId,
+                                 @RequestParam(value = "userId", required = false) String userId);
+
+    @PostMapping("/NeedClaim/addNeedClaimData")
+    public R addNeedClaimData(@RequestBody NeedProblemClaimDTO item);
+
+    @PostMapping("/NeedClaim/editNeedClaimData")
+    public R editNeedClaimData(@RequestBody NeedProblemClaimDTO item);
+
+    @DeleteMapping("/NeedClaim/expurgateNeedClaimData")
+    public R expurgateNeedClaimData(@RequestParam(value = "id", required = false) String id,
+                                    @RequestParam(value = "taskId", required = false) String taskId,
+                                    @RequestParam(value = "userId", required = false) String userId);
+
+
+    @GetMapping("/NeedClaim/needClaimSignIn")
+    public R needClaimSignIn(@RequestParam("taskId") String taskId,
+                             @RequestParam("userId") String userId,
+                             @RequestParam("type") String type);
+
+
+    /***************************************************************************************************************
+     *
+     *                 代单位接受
+     *
+     *************************************************************************************************************/
+
+    @GetMapping("/NeedTask/getNeedTaskList")
+    public R getNeedTaskList(@RequestParam("pageNum") int pageNum,
+                             @RequestParam("pageSize") int pageSize,
+                             @RequestParam(value = "unitId", required = false) String unitId,
+                             @RequestParam(value = "kind", required = false) String kind,
+                             @RequestParam(value = "status", required = false) String status);
+
+    @GetMapping("/NeedTask/getNeedTaskDetails")
+    public R  getNeedTaskDetails(@RequestParam("id") String id);
+
+    @PostMapping("/NeedTask/addNeedTaskData")
+    public R  addNeedTaskData(@RequestBody NeedProblemUnitTaskDTO item);
+
+    @PostMapping("/NeedTask/editNeedTaskData")
+    public R  editNeedTaskData(@RequestBody NeedProblemUnitTaskDTO item);
+
+    @DeleteMapping("/NeedTask/expurgateNeedTaskData")
+    public R  expurgateNeedTaskData(@RequestParam("id") String id);
+
+
+    /*******************************************************************************************************************
+     *
+     *                              新双争双评社区共建
+     *
+     ****************************************************************************************************************/
+    @GetMapping("/NewFightCommunity/getNeedClaimList")
+    public R getNewFightCommunityList(@RequestParam("pageNum") int pageNum,
+                                      @RequestParam("pageSize") int pageSize,
+                                      @RequestParam(value = "communityId", required = false)  String communityId,
+                                      @RequestParam(value = "userId", required = false)  String userId);
+
+    @GetMapping("/NewFightCommunity/getNeedClaimDetails")
+    public R getNewFightCommunityDetails(@RequestParam("id") String id,
+                                         @RequestParam(value = "userId", required = false)  String userId);
+
+    @PostMapping("/NewFightCommunity/addNeedClaimData")
+    public R addNewFightCommunityData(@RequestBody NewFightCommunityConstructionDTO item);
+
+    @PostMapping("/NewFightCommunity/editNeedClaimData")
+    public R editNewFightCommunityData(@RequestBody NewFightCommunityConstructionDTO item);
+
+    @DeleteMapping("/NewFightCommunity/expurgateNeedClaimData")
+    public R expurgateNewFightCommunityData(@RequestParam(value = "id", required = false) String id);
+
+
+    /**************************************************************************************************************
+     *
+     *                                            项目规划
+     *
+     ****************************************************************************************************************/
+
+    @GetMapping("/NewFightCommunity/getProjectPlanList")
+    public R  getProjectPlanList(@RequestParam("pageNum") int pageNum,
+                                 @RequestParam("pageSize") int pageSize,
+                                 @RequestParam("projectId") String projectId);
+
+    @GetMapping("/NewFightCommunity/getProjectPlanDetails")
+    public R  getProjectPlanDetails(@RequestParam("id") String id);
+
+    @PostMapping("/NewFightCommunity/addProjectPlanData")
+    public R addProjectPlanData(@RequestBody NewFightProjectPlanDTO item);
+
+    @PostMapping("/NewFightCommunity/editProjectPlanData")
+    public R editProjectPlanData(@RequestBody NewFightProjectPlanDTO item);
+
+    @DeleteMapping("/NewFightCommunity/expurgateProjectPlanData")
+    public R expurgateProjectPlanData(@RequestParam("id") String id);
+
+
+    @GetMapping("/NewFightCommunity/editProjectPlanAccomplish")
+    public R  editProjectPlanAccomplish(@RequestParam("id") String id);
+
+
+    /********************************************************************************************************
+     *
+     *                           项目参与
+     *
+     ******************************************************************************************************/
+
+
+    @GetMapping("/NewFightCommunity/getJoinList")
+    public R  getJoinList(@RequestParam("pageNum") int pageNum,
+                          @RequestParam("pageSize") int pageSize,
+                          @RequestParam("projectId") String projectId);
+
+    @GetMapping("/NewFightCommunity/getJoinDetails")
+    public R  getJoinDetails(@RequestParam("id") String id);
+
+    @PostMapping("/NewFightCommunity/addJoinData")
+    public R addJoinData(@RequestBody NewFightProjectJoinDTO item);
+
+    @PostMapping("/NewFightCommunity/editJoinData")
+    public R editJoinData(@RequestBody NewFightProjectJoinDTO item);
+
+    @DeleteMapping("/NewFightCommunity/expurgateJoinData")
+    public R expurgateJoinData(@RequestParam(value = "id", required = false) String id,
+                               @RequestParam(value = "projectId", required = false) String projectId,
+                               @RequestParam(value = "userId", required = false) String userId);
+
+
+
+    /********************************************************************************************************
+     *
+     *                           项目评论
+     *
+     ******************************************************************************************************/
+    @GetMapping("/NewFightCommunity/getEvaluateList")
+    public R getEvaluateList(@RequestParam("pageNum") int pageNum,
+                             @RequestParam("pageSize") int pageSize,
+                             @RequestParam("projectId") String projectId);
+
+    @GetMapping("/NewFightCommunity/getEvaluateDetails")
+    public R  getEvaluateDetails(@RequestParam("id") String id);
+
+
+    @PostMapping("/NewFightCommunity/addEvaluateData")
+    public R  addEvaluateData(@RequestBody NewFightProjectEvaluateDTO item);
+
+    @PostMapping("/NewFightCommunity/editEvaluateData")
+    public R  editEvaluateData(@RequestBody NewFightProjectEvaluateDTO item);
+
+    @DeleteMapping("/NewFightCommunity/expurgateEvaluateData")
+    public R  expurgateEvaluateData(@RequestParam("id") String id);
+
+
+    /************************************************************************************************************
+     *
+     *                       资源共享
+     *
+     *************************************************************************************************************/
+
+    @GetMapping("/ResourceSharing/getResourceSharingList")
+    public R getResourceSharingList(@RequestParam("pageNum") int pageNum,
+                                    @RequestParam("pageSize") int pageSize,
+                                    @RequestParam(value = "communityId", required = false)String communityId,
+                                    @RequestParam(value = "unitId", required = false)String unitId,
+                                    @RequestParam(value = "meritId", required = false) String meritId);
+
+    @GetMapping("/ResourceSharing/getResourceSharingDetails")
+    public R getResourceSharingDetails(@RequestParam("id") String id);
+
+    @PostMapping("/ResourceSharing/addResourceSharingData")
+    public R addResourceSharingData(@RequestBody NewFightResourceSharingDTO item);
+
+    @PostMapping("/ResourceSharing/editResourceSharingData")
+    public R editResourceSharingData(@RequestBody NewFightResourceSharingDTO item);
+
+    @DeleteMapping("/ResourceSharing/expurgateResourceSharingData")
+    public R expurgateResourceSharingData(@RequestParam("id") String id);
+
+
+    /************************************************************************************************************
+     *
+     *                               社区设置兑换时间地点
+     *
+     ******************************************************************************************************************/
+    @GetMapping("/FightConfig/getConfigDetails")
+    public R getConfigDetails(@RequestParam("communityId") String communityId);
+
+
+    @PostMapping("/FightConfig/addConfigData")
+    public R addConfigData(@RequestBody NewFightConfigVO item);
+
+    @PostMapping("/FightConfig/editConfigData")
+    public R editConfigData(@RequestBody NewFightConfigVO item);
+
+
+    @DeleteMapping("/FightConfig/expurgateConfigData")
+    public R expurgateConfigData(@RequestParam("communityId") String communityId);
+
+
+    /*******************************************************************************************************
+     *
+     *                   积分商城
+     *
+     *******************************************************************************************************/
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/FightShopping/getFightShoppingList")
+    public R getFightShoppingList(@RequestParam("pageNum") int pageNum,
+                                  @RequestParam("pageSize") int pageSize,
+                                  @RequestParam("communityId") String communityId,
+                                  @RequestParam(value = "goodName", required = false)String goodName,
+                                  @RequestParam(value = "goodType", required = false)String goodType,
+                                  @RequestParam(value = "id", required = false)String id);
+
+
+    @GetMapping("/FightShopping/getFightShoppingDetails")
+    public R getFightShoppingDetails(@RequestParam("id") String id);
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/FightShopping/addFightShoppingData")
+    public R addFightShoppingData(@RequestBody NewFightShoppingVO item);
+
+
+    @PostMapping("/FightShopping/editFightShoppingData")
+    public R editFightShoppingData(@RequestBody NewFightShoppingVO item);
+
+    @DeleteMapping("/FightShopping/expurgateFightShoppingData")
+    public R expurgateFightShoppingData(@RequestParam("id") String id);
+
+
+    /*******************************************************************************************************
+     *
+     *             商家模块
+     *
+     * ********************************************************************************************************/
+
+    /**
+     * 删除便民服务商家
+     *
+     * @param merchantId
+     * @param operator
+     * @return
+     */
+    @DeleteMapping("/FightConvenient/deleteMerchantById")
+    public R deleteMerchantById(@RequestParam("communityId") String merchantId);
+
+    /**
+     * 编辑状态
+     *
+     * @param merchantId
+     * @param status
+     * @return
+     */
+    @GetMapping("/FightConvenient/editMerchantStatus")
+    public R editMerchantStatus(@RequestParam("communityId") String merchantId,
+                                @RequestParam("status") String status);
+
+    /**
+     * 分页查询便民服务商家 运营后台
+     *
+     * @return
+     */
+    @GetMapping("/FightConvenient/pageMerchant")
+    public R pageMerchant(@RequestParam("pageNum") int pageNum,
+                          @RequestParam("pageSize") int pageSize,
+                          @RequestParam("communityId") String communityId,
+                          @RequestParam(value = "isDel", required = false) String isDel,
+                          @RequestParam(value = "keyword", required = false)String keyword,
+                          @RequestParam(value = "status", required = false)String status) ;
+
+    /**
+     * 查询商家信息
+     *
+     * @param merchantId
+     * @return
+     */
+    @GetMapping("/FightConvenient/selectMerchantById")
+    public R selectMerchantById(@RequestParam("merchantId") String merchantId);
+
+    @PostMapping("/FightConvenient/addMerchantData")
+    public R addMerchantData(@RequestBody NewFightConvenientMerchantVO item) ;
+
+    @PostMapping("/FightConvenient/editMerchantData")
+    public R editMerchantData(@RequestBody NewFightConvenientMerchantVO item);
+
+
+    @GetMapping("/FightConvenient/selectUserList")
+    public R selectUserList(@RequestParam("communityId") String communityId,
+                            @RequestParam("phoneOrname") String phoneOrname);
+
+
+
+    @GetMapping("/FightConvenient/selectUserListB")
+    public R selectUserListB(@RequestParam("communityId") String communityId,
+                             @RequestParam("phoneOrname") String phoneOrname);
+
+
+
+    @GetMapping("/FightConvenient/selectUserBind")
+    public R selectUserBind(@RequestParam("communityId") String communityId,
+                            @RequestParam("userId") String userId);
+
+    /*****************************************************************************************************
+     *
+     *                                       用户积分任务完成情况
+     *
+     *******************************************************************************************************/
+    /**
+     * 列表
+     * @param
+     * @return
+     */
+    @GetMapping("/IntegratingTask/getTaskList")
+    public R getIntegratingTaskList(@RequestParam("userId") String userId,
+                                    @RequestParam("communityId") String communityId);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/IntegratingTask/addIntegratingTaskData")
+    public R addIntegratingTaskData(@RequestBody IntegratingTaskVO item);
+
+
+    /**
+     * 添加或者修改积分
+     * @param item
+     * @return
+     */
+    @PostMapping("/IntegratingTask/upIntegral")
+    public R upIntegral(@RequestBody NewFightIntegral item);
+
+
+    /**
+     * 每日签到记录列表  前15条
+     * @param userId
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/IntegratingTask/getEverydayList")
+    public R  getEverydayList(@RequestParam("userId") String userId,
+                              @RequestParam("communityId") String communityId);
+
+
+    /*******************************************************************************************************************
+
+     *
+     *                                        商品订单
+     *
+     ****************************************************************************************************************/
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/NewFightOrder/orderGetList")
+    public R orderGetList(@RequestParam("pageNum") int pageNum,
+                          @RequestParam("pageSize") int pageSize,
+                          @RequestParam(value = "userId", required = false)String userId,
+                          @RequestParam(value = "goodsId", required = false)String goodsId,
+                          @RequestParam(value = "orderNumber", required = false)String orderNumber,
+                          @RequestParam(value = "goodName", required = false)String goodName,
+                          @RequestParam(value = "name", required = false)String name,
+                          @RequestParam(value = "cancelType", required = false)String cancelType,
+                          @RequestParam(value = "communityId", required = false)String communityId,
+                          @RequestParam(value = "merchantId", required = false) String merchantId,
+                          @RequestParam(value = "orderType", required = false) String orderType);
+
+    /**
+     * 分页详情
+     * @param
+     * @return
+     */
+    @GetMapping("/NewFightOrder/orderGetDetails")
+    public R orderGetDetails(@RequestParam("id") String id,
+                             @RequestParam(value = "communityId") String communityId);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/NewFightOrder/orderAddData")
+    public R orderAddData(@RequestBody NewFightShoppingOrderVO item);
+
+
+    /**
+     * 编辑
+     * @param
+     * @return
+     */
+    @PostMapping("/NewFightOrder/orderEditData")
+    public R orderEditData(@RequestBody NewFightShoppingOrderVO item);
+
+
+    /**
+     * 取消
+     * @param
+     * @return
+     */
+    @GetMapping("/NewFightOrder/orderCancelOrder")
+    public R orderCancelOrder(@RequestParam("orderId") String orderId,
+                              @RequestParam(value = "communityId") String communityId);
+
+
+    /**
+     * 删除
+     * @param
+     * @return
+     */
+    @DeleteMapping("/NewFightOrder/orderExpurgateData")
+    public R orderExpurgateData(@RequestParam("id") String id,
+                                @RequestParam(value = "communityId") String communityId);
+
+
+
+
+
+
+
+
+
+
+
+    /**
+     *  每日定时清空  定时任务
+     */
+    @GetMapping("/IntegratingTask/everydaYtruncateData")
+    public R truncateData();
+
+
+    /**
+     * 新双争双评需求问题清单  任务认领  开始  结束  定时任务
+     * @return
+     */
+    @PostMapping("/NeedProblem/timedNewFightNeedProblemInventoryHandler")
+    public R timedNewFightNeedProblemInventoryHandler();
+
+
+    //定时任务  社区组织共建  定时更新项目进度
+    @PostMapping("/NewFightCommunity/taskTimed/getListTime")
+    public R taskTimedGetListTime();
+
+
+    /******************************************************************************************************************
+     *
+     *                            街道大屏
+     *
+     *****************************************************************************************************************/
+
+
+    @GetMapping("/StreetBigScreen/getCommunityId")
+    public R getCommunityId(@RequestParam("streetId") String streetId);
+
+
+    /**
+     * 获取核心指标数据
+     * @param streetId
+     * @return
+     */
+    @GetMapping("/StreetBigScreen/getCoreData")
+    public R getCoreData(@RequestParam(value = "streetId", required = false) String streetId,
+                         @RequestParam(value = "communityId", required = false)String communityId,
+                         @RequestParam(value = "type", required = false)String type,
+                         @RequestParam(value = "starTime", required = false)String starTime,
+                         @RequestParam(value = "endTime", required = false)String endTime);
+
+
+    /**
+     * 获取三务三资数据
+     * @param streetId
+     * @param communityId
+     * @param type
+     * @param starTime
+     * @param endTime
+     * @return
+     */
+    @GetMapping("/StreetBigScreen/getThreeNum")
+    public R getThreeNum(@RequestParam(value = "streetId", required = false) String streetId,
+                         @RequestParam(value = "communityId", required = false)String communityId,
+                         @RequestParam(value = "type", required = false)String type,
+                         @RequestParam(value = "starTime", required = false)String starTime,
+                         @RequestParam(value = "endTime", required = false)String endTime);
+
+
+
+    /**
+     * 双报到双服务
+     * @param streetId
+     * @param communityId
+     * @param type
+     * @param starTime
+     * @param endTime
+     * @return
+     */
+    @GetMapping("/StreetBigScreen/getDoubleRegistration")
+    public R getDoubleRegistration(@RequestParam(value = "streetId", required = false) String streetId,
+                                   @RequestParam(value = "communityId", required = false)String communityId,
+                                   @RequestParam(value = "type", required = false)String type,
+                                   @RequestParam(value = "starTime", required = false)String starTime,
+                                   @RequestParam(value = "endTime", required = false)String endTime);
+
+    /**
+     * 随手拍  微心愿
+     * @param streetId
+     * @param communityId
+     * @param type
+     * @param starTime
+     * @param endTime
+     * @return
+     */
+    @GetMapping("/StreetBigScreen/getPhotoMicroWish")
+    public R getPhotoMicroWish(@RequestParam(value = "streetId", required = false) String streetId,
+                               @RequestParam(value = "communityId", required = false)String communityId,
+                               @RequestParam(value = "type", required = false)String type,
+                               @RequestParam(value = "starTime", required = false)String starTime,
+                               @RequestParam(value = "endTime", required = false)String endTime);
+
+
+
+    /**
+     * 社区活动、议事投票、问卷调查、社区动态发布趋势
+     * @param streetId
+     * @param communityId
+     * @param type
+     * @param starTime
+     * @param endTime
+     * @return
+     */
+    @GetMapping("/StreetBigScreen/getAllData")
+    public R getAllData(@RequestParam(value = "streetId", required = false) String streetId,
+                        @RequestParam(value = "communityId", required = false)String communityId,
+                        @RequestParam(value = "type", required = false)String type,
+                        @RequestParam(value = "starTime", required = false)String starTime,
+                        @RequestParam(value = "endTime", required = false)String endTime);
+
+
+    /**
+     * 新双争双评需求问题清单 签退时间更新
+     * @return
+     */
+    @GetMapping("/NeedClaim/upNewFightNeedProblemClaimEndTime")
+    public R upNewFightNeedProblemClaimEndTime();
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/partybuilding/PartyBuildingService.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/partybuilding/PartyBuildingService.java
new file mode 100644
index 0000000..a3b57c5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/partybuilding/PartyBuildingService.java
@@ -0,0 +1,650 @@
+package com.panzhihua.common.service.partybuilding;
+
+import java.util.List;
+
+import com.panzhihua.common.model.dtos.community.PageMemberForInviteDTO;
+import com.panzhihua.common.model.vos.partybuilding.excel.ComPbMemberRoleExcelVo;
+import org.springframework.cloud.openfeign.FeignClient;
+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;
+
+import com.panzhihua.common.model.dtos.partybuilding.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.partybuilding.*;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党建
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 09:50
+ **/
+@FeignClient(value =  "huacheng-partybuilding")
+public interface PartyBuildingService {
+    /**
+     * 新增党员
+     *
+     * @param partyBuildingMemberVO
+     *            党员基本信息
+     * @return 新增结果
+     */
+    @PostMapping("/partybuildIng/addpartybuildingmember")
+    R addPartyBuildingMember(@RequestBody PartyBuildingMemberVO partyBuildingMemberVO);
+
+    /**
+     * 社区所有启用的党组织列表
+     *
+     * @return 党组织集合
+     */
+    @PostMapping("/partybuildIng/listpartyorganization")
+    R listPartyOrganization(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 分页查询所有的党组织列表
+     *
+     * @return 党组织集合
+     */
+    @PostMapping("/partybuildIng/listpartyorganizationAll")
+    R listPartyOrganizationAll(@RequestBody PartyOrganizationVO partyOrganizationVO);
+
+    /**
+     * 查询所有党组织列表
+     * @param partyOrganizationVO   请求参数
+     * @return  党组织列表
+     */
+    @PostMapping("/partybuildIng/getPbOrgAllList")
+    R getPbOrgAllList(@RequestBody PartyOrganizationVO partyOrganizationVO);
+
+    /**
+     * 新增党支部
+     *
+     * @param partyOrganizationVO
+     *            党支部基本信息
+     * @return 新增结果
+     */
+    @PostMapping("/partybuildIng/addpartyorganization")
+    R addPartyOrganization(@RequestBody PartyOrganizationVO partyOrganizationVO);
+
+    /**
+     * 编辑党支部
+     *
+     * @param partyOrganizationVO
+     *            党支部基本信息
+     * @return 编辑结果
+     */
+    @PostMapping("/partybuildIng/updatepartyorganization")
+    R updatePartyOrganization(@RequestBody PartyOrganizationVO partyOrganizationVO);
+
+    /**
+     * 启用,禁用党支部
+     *
+     * @param partyOrganizationVO
+     *            党支部基本信息
+     * @return 编辑结果
+     */
+    @PostMapping("/partybuildIng/resetpartyorganization")
+    R resetPartyOrganization(@RequestBody PartyOrganizationVO partyOrganizationVO);
+
+    /**
+     * 删除党支部
+     *
+     * @param partyOrganizationVO
+     *            党支部基本信息
+     * @return 删除结果
+     */
+    @PostMapping("/partybuildIng/deletepartyorganization")
+    R deletePartyOrganization(@RequestBody PartyOrganizationVO partyOrganizationVO);
+
+    /**
+     * 批量新增党员
+     *
+     * @param list
+     *            党员集合
+     */
+    @PostMapping("/partybuildIng/listsavepartybuildingmemberexcelvo")
+    R listSavePartyBuildingMemberExcelVO(@RequestBody List<PartyBuildingMemberExcelVO> list);
+
+    /**
+     * 分页查询党员信息
+     *
+     * @param pagePartyOrganizationVO
+     *            查询信息
+     * @return 分页数据
+     */
+    @PostMapping("/partybuildIng/pagepartyorganization")
+    R pagePartyOrganization(@RequestBody PagePartyOrganizationVO pagePartyOrganizationVO);
+
+    /**
+     * 导出党员信息
+     *
+     * @param pagePartyOrganizationVO
+     *            查询信息
+     * @return 分页数据
+     */
+    @PostMapping("/partybuildIng/exportPartyMember")
+    R exportPartyMember(@RequestBody PagePartyOrganizationVO pagePartyOrganizationVO);
+
+    /**
+     * 党员活动
+     *
+     * @param partyBuildingActivityVO
+     *            党员活动查询参数
+     * @return 参加的所有活动
+     */
+    @PostMapping("/partybuildIng/listpartymemberactivities")
+    R listPartyMemberActivities(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO);
+
+    /**
+     * 活动报名名单分页查询
+     *
+     * @param pageActivityMembersVO
+     *            查询参数 手机号 名字
+     * @return 分页数据
+     */
+    @PostMapping("/partybuildIng/pageactivitymembers")
+    R pageActivityMembers(@RequestBody PageActivityMembersVO pageActivityMembersVO);
+
+    /**
+     * 编辑党员信息 新增字段均可编辑
+     *
+     * @param partyBuildingMemberVO
+     *            编辑字段
+     * @return 编辑结果
+     */
+    @PostMapping("/partybuildIng/updatepartybuildingmember")
+    R updatePartyBuildingMember(@RequestBody PartyBuildingMemberVO partyBuildingMemberVO);
+
+    /**
+     * 党员活动详情
+     *
+     * @param id
+     *            活动id
+     * @return 活动详情内容
+     */
+    @PostMapping("/partybuildIng/activityinfo")
+    R activityinfo(@RequestParam("id") Long id, @RequestParam("userId") Long userId);
+
+    /**
+     * 查询指定社区的所有党员
+     *
+     * @param communityId
+     *            社区id
+     * @return 党员列表
+     */
+    @PostMapping("/partybuildIng/listPartyMember")
+    R listPartyMember(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 社区下拉选择身份
+     *
+     * @return 身份集合
+     */
+    @PostMapping("/partybuildIng/listidentity")
+    R listIdentity();
+
+    /**
+     * 新增党委
+     *
+     * @param partyCommitteeVO
+     *            新增信息
+     * @return 新增结果
+     */
+    @PostMapping("/partybuildIng/addpartycommittee")
+    R addPartyCommittee(@RequestBody PartyCommitteeVO partyCommitteeVO);
+
+    /**
+     * 编辑党委
+     *
+     * @param partyCommitteeVO
+     *            编辑信息
+     * @return 编辑结果
+     */
+    @PostMapping("/partybuildIng/updatepartycommittee")
+    R updatePartyCommittee(@RequestBody PartyCommitteeVO partyCommitteeVO);
+
+    /**
+     * 删除党委
+     *
+     * @param partyCommitteeVO
+     *            删除id
+     * @return 删除结果
+     */
+    @PostMapping("/partybuildIng/deletepartycommittee")
+    R deletePartyCommittee(@RequestBody PartyCommitteeVO partyCommitteeVO);
+
+    /**
+     * 分页社区党委查询
+     *
+     * @param partyCommitteeVO
+     *            查询参数
+     * @return 分页集合
+     */
+    @PostMapping("/partybuildIng/pagepartycommittee")
+    R pagePartyCommittee(@RequestBody PartyCommitteeVO partyCommitteeVO);
+
+    /**
+     * 新建党建动态
+     *
+     * @param partyCommitteeVO
+     *            动态内容
+     * @return 新增结果
+     */
+    @PostMapping("/partybuildIng/adddynamic")
+    R adddYnamic(@RequestBody PartyBuildingComPbDynVO partyCommitteeVO);
+
+    /**
+     * 编辑动态
+     *
+     * @param partyCommitteeVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("/partybuildIng/updatedynamic")
+    R updateYnamic(@RequestBody PartyBuildingComPbDynVO partyCommitteeVO);
+
+    /**
+     * 动态详情
+     *
+     * @param id
+     *            动态主键
+     * @return 详情
+     */
+    @PostMapping("/partybuildIng/infodynamic")
+    R infoYnamic(@RequestParam("id") Long id);
+
+    /**
+     * 分页查询党员动态/政策文件
+     *
+     * @param partyBuildingComPbDynVO
+     *            查询参数
+     * @return 分页数据
+     */
+    @PostMapping("/partybuildIng/pagedynamic")
+    R pageYnamic(@RequestBody PartyBuildingComPbDynVO partyBuildingComPbDynVO);
+
+    /**
+     * 删除动态
+     *
+     * @param id
+     *            动态主键
+     * @return 删除结果
+     */
+    @PostMapping("/partybuildIng/deletedynamic")
+    R deleteYnamic(@RequestParam("id") Long id);
+
+    /**
+     * 新增党员活动
+     *
+     * @param partyBuildingActivityVO
+     *            参数
+     * @return 新增结果
+     */
+    @PostMapping("/partybuildIng/addactivity")
+    R addactivity(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO);
+
+    /**
+     * 编辑党员活动
+     *
+     * @param partyBuildingActivityVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("/partybuildIng/updateactivity")
+    R updateActivity(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO);
+
+    /**
+     * 发布党员活动
+     *
+     * @param id
+     *            主键id
+     * @return 发布结果
+     */
+    @PostMapping("/partybuildIng/releaseactivity")
+    R releaseActivity(@RequestParam("id") Long id);
+
+    /**
+     * 删除党员活动
+     *
+     * @param id
+     *            主键id
+     * @return 删除结果
+     */
+    @PostMapping("/partybuildIng/deleteactivity")
+    R deleteActivity(@RequestParam("id") Long id);
+
+    /**
+     * 分页查询党员活动
+     *
+     * @param partyBuildingActivityVO
+     *            查询条件
+     * @return 查询结果
+     */
+    @PostMapping("/partybuildIng/pageactivity")
+    R pageActivity(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO);
+
+    /**
+     * 增加阅读记录
+     *
+     * @param comPbDynUserVO
+     *            记录内容
+     * @return 增加结果
+     */
+    @PostMapping("/partybuildIng/adddynuser")
+    R addDynUser(@RequestBody ComPbDynUserVO comPbDynUserVO);
+
+    /**
+     * 删除党员
+     *
+     * @param id
+     *            党员主键
+     * @return 删除结果
+     */
+    @PostMapping("/partybuildIng/deletepartybuildingmember")
+    R deleteDynUser(@RequestParam("id") Long id);
+
+    /**
+     * 取消活动
+     *
+     * @param partyBuildingActivityVO
+     *            取消原因
+     * @return 操作结果
+     */
+    @PostMapping("/partybuildIng/cancelactivity")
+    R cancelActivity(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO);
+
+    /**
+     * 用户的所有党建活动
+     *
+     * @param userId
+     *            用户id
+     * @param communityId
+     *            社区id 同一用户在不同社区都是党员
+     * @param status
+     * @return 党建活动列表
+     */
+    @PostMapping("/partybuildIng/listactivity")
+    R listActivity(@RequestParam("userId") Long userId, @RequestParam("communityId") Long communityId,
+                   @RequestParam(value = "status", required = false) Integer status);
+
+    /**
+     * 党员活动人员参入列表
+     *
+     * @param id
+     *            活动id
+     * @return 党员集合
+     */
+    @PostMapping("/partybuildIng/listpartybuildingmember")
+    R listPartyBuildingMember(@RequestParam("id") Long id);
+
+    /**
+     * 报名、取消报名党员活动
+     *
+     * @param activitySignUpDTO
+     *            操作参数
+     * @return 操作结果
+     */
+    @PostMapping("/partybuildIng/putactivitysignup")
+    R putActivitySignUp(@RequestBody ActivitySignUpDTO activitySignUpDTO);
+
+    /**
+     * 获取党建活动所有参入人员的id集合
+     *
+     * @param id
+     *            党建活动id
+     * @return 人员id集合
+     */
+    @PostMapping("/partybuildIng/selectallpartybuildingactivitymembers")
+    R selectAllPartyBuildingActivityMembers(@RequestParam("id") Long id);
+
+    /**
+     * 定时任务刷新党建动态发布状态
+     *
+     * @return 刷新数据数量
+     */
+    @PostMapping("/partybuildIng/timedtaskpartybuildingstatus")
+    R timedTaskPartyBuildingStatus();
+
+    /**
+     * 定时任务取消党建活动
+     *
+     * @return 需要取消的所有党建活动
+     */
+    @PostMapping("/partybuildIng/timedtaskpartybuildingactivity")
+    R timedTaskPartyBuildingActivity();
+
+    /**
+     * 定时任务刷新党建活动的各个状态 除取消外
+     *
+     * @return 修改结果
+     */
+    @PostMapping("/partybuildIng/timedtaskpartybuildingactivityall")
+    R timedTaskPartyBuildingActivityAll();
+
+    /**
+     * 新增服务团队人员
+     *
+     * @param comPbServiceTeamDTO
+     *            新增内容
+     * @return 新增结果
+     */
+    @PostMapping("/partybuildIng/addserviceteam")
+    R addServiceTeam(@RequestBody ComPbServiceTeamDTO comPbServiceTeamDTO);
+
+    /**
+     * 编辑团队人员
+     *
+     * @param comPbServiceTeamDTO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("/partybuildIng/putserviceteam")
+    R putServiceTeam(@RequestBody ComPbServiceTeamDTO comPbServiceTeamDTO);
+
+    /**
+     * 删除服务团队人员
+     *
+     * @param comPbServiceTeamDTO
+     *            删除主键
+     * @return 删除结果
+     */
+    @PostMapping("/partybuildIng/deleteserviceteam")
+    R deleteServiceTeam(@RequestBody ComPbServiceTeamDTO comPbServiceTeamDTO);
+
+    /**
+     * 分页查询服务团队成员
+     *
+     * @param pageComPbServiceTeamDTO
+     *            查询参数
+     * @return 查询结果
+     */
+    @PostMapping("/partybuildIng/pageserviceteam")
+    R pageServiceTeam(@RequestBody PageComPbServiceTeamDTO pageComPbServiceTeamDTO);
+
+
+    @GetMapping("/partybuildIng/getComPbServiceTeamData")
+    public R getComPbServiceTeamData(@RequestParam("communityId") String communityId,
+                                     @RequestParam("phone") String phone);
+
+
+    /**
+     * 创建党员活动 小程序创建党员活动
+     *
+     * @param comPbActivityDTO
+     *            创建内容
+     * @return 创建结果
+     */
+    @PostMapping("/partybuildIng/addactivityinfo")
+    R addActivityApplets(@RequestBody ComPbActivityDTO comPbActivityDTO);
+
+    /**
+     * 查询用户党员认证信息
+     *
+     * @param id
+     * @param communityId
+     *            用户ID
+     * @return 查询结果
+     */
+    @GetMapping("/partybuildIng/usercertification")
+    R userCertification(@RequestParam("id") Long id,@RequestParam("communityId")Long communityId);
+
+    /**
+     * 查询待认证党员信息
+     *
+     * @param pagePartyBuildingMemberVO
+     *            查询参数
+     * @return 查询结果
+     */
+    @PostMapping("/partybuildIng/pageusercertification")
+    R pagePrePartybuildingmember(@RequestBody PagePartyBuildingMemberVO pagePartyBuildingMemberVO);
+
+    /**
+     * 根据身份证号码查询党员信息
+     *
+     * @param idCard
+     *            身份证号码
+     * @return 党员信息
+     */
+    @PostMapping("/partybuildIng/getPartyBuildingByIdCard")
+    R getPartyBuildingByIdCard(@RequestParam("idCard") String idCard);
+
+    /**
+     * 社区所有启用的党组织列表
+     *
+     * @return 党组织集合
+     */
+    @PostMapping("/partybuildIng/listpartyorganizationByApp")
+    R listPartyOrganizationByApp(@RequestBody ComListPartyDTO comListPartyDTO);
+
+    /**
+     * 根据id删除党员认证
+     *
+     * @param id
+     *            党员认证id
+     * @return 党员认证id
+     */
+    @PostMapping("/partybuildIng/deleteprepartybuildingmember")
+    R deleteprepartybuildingmember(@RequestParam("id") Long id);
+
+    /**
+     * 导出党员信息
+     *
+     * @param organizationVO
+     *            请求参数
+     * @return 党员信息列表
+     */
+    @PostMapping("/partybuildIng/exportPbMember")
+    R exportPbMember(@RequestBody PagePartyOrganizationVO organizationVO);
+
+    /**
+     * 选择人员
+     *
+     * @param param
+     *            查询条件
+     * @param communityId
+     *            社区id
+     * @return 查询结果
+     */
+    @PostMapping("/partybuildIng/getTotlePerson")
+    R getTotlePerson(@RequestParam(value = "param", required = false) String param,
+        @RequestParam(value = "communityId") Long communityId);
+
+    /**
+     * 根据党员活动id查询活动下报名人员
+     *
+     * @param activityId
+     *            党员活动id
+     * @return 活动下报名人员
+     */
+    @PostMapping("/partybuildIng/getTaskPbActivityPeopleList")
+    R getTaskPbActivityPeopleList(@RequestParam("activityId") Long activityId);
+
+    /**
+     * 分页查询党员数据统计
+     * @param statisticsMemberDto   请求参数
+     * @return  党员数据统计
+     */
+    @PostMapping("/partybuildIng/pageDataStatisticsMember")
+    R pageDataStatisticsMember(@RequestBody PageComDataStatisticsMemberDto statisticsMemberDto);
+
+    /**
+     * 根据组织id查询组织下统计数据
+     * @param statisticsOrgDto  请求参数
+     * @return  组织下统计数据
+     */
+    @PostMapping("/partybuildIng/getOrgDataStatistics")
+    R getOrgDataStatistics(@RequestBody ComDataStatisticsOrgDto statisticsOrgDto);
+
+    /**
+     * 查询党组织表头统计数据
+     * @param communityId
+     *            社区id
+     * @return  党组织表头统计数据
+     */
+    @GetMapping("/partybuildIng/getHeaderOrgDataStatistics")
+    R getHeaderOrgDataStatistics(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 党员数据统计-党员导出数据查询
+     * @param statisticsMemberDto   请求参数
+     * @return  党员导出数据
+     */
+    @PostMapping("/partybuildIng/exportDataStatisticsMember")
+    R exportDataStatisticsMember(@RequestBody PageComDataStatisticsMemberDto statisticsMemberDto);
+
+    /**
+     * 党委导入接口
+     * @param memberRoleExcelVoList 数据列表
+     * @param communityId   社区id
+     * @param userId    用户id
+     * @return  导入结果
+     */
+    @PostMapping("/partybuildIng/importPbMemberRole")
+    R importPbMemberRole(@RequestBody List<ComPbMemberRoleExcelVo> memberRoleExcelVoList,@RequestParam("communityId") Long communityId,@RequestParam("userId") Long userId);
+
+    /**
+     * 身份证查询是否党员
+     * @param idCard
+     * @return
+     */
+    @GetMapping("/partybuildIng/checkMember")
+    R checkMember(@RequestParam("idCard")String idCard);
+
+    /**
+     * 小程序分页查询党员列表
+     * @param partyBuildingMemberVO 请求参数
+     * @return  党员列表
+     */
+    @PostMapping("/partybuildIng/getPagePbMember")
+    R getPagePbMember(@RequestBody PartyBuildingMemberVO partyBuildingMemberVO);
+
+
+    @PostMapping("/partybuildIng/getProject")
+    public R getProjectList(@RequestBody ProjectVO projectVO);
+
+    @PostMapping("/partybuildIng/addProject")
+    public R addProject(@RequestBody ProjectVO projectVO);
+
+    @PostMapping("/partybuildIng/updateProject")
+    public R updateProject(@RequestBody ProjectVO projectVO);
+
+    @PostMapping("/partybuildIng/deleteProject")
+    public R deleteProject(@RequestBody ProjectVO projectVO);
+
+    @GetMapping("/partybuildIng/getPartyMember")
+    public R getPartyMember(@RequestParam("phone")String phone,@RequestParam("type")Integer type);
+
+    @GetMapping("/partybuildIng/memberDetail")
+    public R memberDetail(@RequestParam("id")Long id);
+
+    @GetMapping("/comPbCheckUnit/detailByPhone")
+    public R detailByPhone(@RequestParam("phone") String phone);
+
+    /**
+     * 分页查询注册党员列表
+     * @param pageMemberForInviteDTO
+     * @return
+     */
+    @PostMapping("/partybuildIng/page/registerMember")
+    R pageRegisterMember(@RequestBody PageMemberForInviteDTO pageMemberForInviteDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/partybuilding/PartyBuildingWestService.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/partybuilding/PartyBuildingWestService.java
new file mode 100644
index 0000000..5100235
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/partybuilding/PartyBuildingWestService.java
@@ -0,0 +1,605 @@
+package com.panzhihua.common.service.partybuilding;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.partybuilding.*;
+import com.panzhihua.common.model.vos.partybuilding.excel.ComPbMemberRoleExcelVo;
+import org.springframework.cloud.openfeign.FeignClient;
+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;
+
+import com.panzhihua.common.model.dtos.partybuilding.*;
+import com.panzhihua.common.model.vos.R;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党建
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 09:50
+ **/
+@FeignClient(value = "huacheng-partybuilding", contextId = "partybuilding1")
+public interface PartyBuildingWestService {
+    /**
+     * 新增党员
+     *
+     * @param partyBuildingMemberVO
+     *            党员基本信息
+     * @return 新增结果
+     */
+    @PostMapping("/partybuildIngWest/addpartybuildingmember")
+    R addPartyBuildingMember(@RequestBody PartyBuildingMemberVO partyBuildingMemberVO);
+
+    /**
+     * 社区所有启用的党组织列表
+     *
+     * @return 党组织集合
+     */
+    @PostMapping("/partybuildIngWest/listpartyorganization")
+    R listPartyOrganization(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 分页查询所有的党组织列表
+     *
+     * @return 党组织集合
+     */
+    @PostMapping("/partybuildIngWest/listpartyorganizationAll")
+    R listPartyOrganizationAll(@RequestBody PartyOrganizationVO partyOrganizationVO);
+
+    /**
+     * 查询所有党组织列表
+     * @param partyOrganizationVO   请求参数
+     * @return  党组织列表
+     */
+    @PostMapping("/partybuildIngWest/getPbOrgAllList")
+    R getPbOrgAllList(@RequestBody PartyOrganizationVO partyOrganizationVO);
+
+    /**
+     * 新增党支部
+     *
+     * @param partyOrganizationVO
+     *            党支部基本信息
+     * @return 新增结果
+     */
+    @PostMapping("/partybuildIngWest/addpartyorganization")
+    R addPartyOrganization(@RequestBody PartyOrganizationVO partyOrganizationVO);
+
+    /**
+     * 编辑党支部
+     *
+     * @param partyOrganizationVO
+     *            党支部基本信息
+     * @return 编辑结果
+     */
+    @PostMapping("/partybuildIngWest/updatepartyorganization")
+    R updatePartyOrganization(@RequestBody PartyOrganizationVO partyOrganizationVO);
+
+    /**
+     * 启用,禁用党支部
+     *
+     * @param partyOrganizationVO
+     *            党支部基本信息
+     * @return 编辑结果
+     */
+    @PostMapping("/partybuildIngWest/resetpartyorganization")
+    R resetPartyOrganization(@RequestBody PartyOrganizationVO partyOrganizationVO);
+
+    /**
+     * 删除党支部
+     *
+     * @param partyOrganizationVO
+     *            党支部基本信息
+     * @return 删除结果
+     */
+    @PostMapping("/partybuildIngWest/deletepartyorganization")
+    R deletePartyOrganization(@RequestBody PartyOrganizationVO partyOrganizationVO);
+
+    /**
+     * 批量新增党员
+     *
+     * @param list
+     *            党员集合
+     */
+    @PostMapping("/partybuildIngWest/listsavepartybuildingmemberexcelvo")
+    R listSavePartyBuildingMemberExcelVO(@RequestBody List<PartyBuildingMemberExcelVO> list);
+
+    /**
+     * 分页查询党员信息
+     *
+     * @param pagePartyOrganizationVO
+     *            查询信息
+     * @return 分页数据
+     */
+    @PostMapping("/partybuildIngWest/pagepartyorganization")
+    R pagePartyOrganization(@RequestBody PagePartyOrganizationVO pagePartyOrganizationVO);
+
+    /**
+     * 导出党员信息
+     *
+     * @param pagePartyOrganizationVO
+     *            查询信息
+     * @return 分页数据
+     */
+    @PostMapping("/partybuildIngWest/exportPartyMember")
+    R exportPartyMember(@RequestBody PagePartyOrganizationVO pagePartyOrganizationVO);
+
+    /**
+     * 党员活动
+     *
+     * @param partyBuildingActivityVO
+     *            党员活动查询参数
+     * @return 参加的所有活动
+     */
+    @PostMapping("/partybuildIngWest/listpartymemberactivities")
+    R listPartyMemberActivities(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO);
+
+    /**
+     * 活动报名名单分页查询
+     *
+     * @param pageActivityMembersVO
+     *            查询参数 手机号 名字
+     * @return 分页数据
+     */
+    @PostMapping("/partybuildIngWest/pageactivitymembers")
+    R pageActivityMembers(@RequestBody PageActivityMembersVO pageActivityMembersVO);
+
+    /**
+     * 编辑党员信息 新增字段均可编辑
+     *
+     * @param partyBuildingMemberVO
+     *            编辑字段
+     * @return 编辑结果
+     */
+    @PostMapping("/partybuildIngWest/updatepartybuildingmember")
+    R updatePartyBuildingMember(@RequestBody PartyBuildingMemberVO partyBuildingMemberVO);
+
+    /**
+     * 党员活动详情
+     *
+     * @param id
+     *            活动id
+     * @return 活动详情内容
+     */
+    @PostMapping("/partybuildIngWest/activityinfo")
+    R activityinfo(@RequestParam("id") Long id, @RequestParam("userId") Long userId);
+
+    /**
+     * 查询指定社区的所有党员
+     *
+     * @param communityId
+     *            社区id
+     * @return 党员列表
+     */
+    @PostMapping("/partybuildIngWest/listPartyMember")
+    R listPartyMember(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 社区下拉选择身份
+     *
+     * @return 身份集合
+     */
+    @PostMapping("/partybuildIngWest/listidentity")
+    R listIdentity();
+
+    /**
+     * 新增党委
+     *
+     * @param partyCommitteeVO
+     *            新增信息
+     * @return 新增结果
+     */
+    @PostMapping("/partybuildIngWest/addpartycommittee")
+    R addPartyCommittee(@RequestBody PartyCommitteeVO partyCommitteeVO);
+
+    /**
+     * 编辑党委
+     *
+     * @param partyCommitteeVO
+     *            编辑信息
+     * @return 编辑结果
+     */
+    @PostMapping("/partybuildIngWest/updatepartycommittee")
+    R updatePartyCommittee(@RequestBody PartyCommitteeVO partyCommitteeVO);
+
+    /**
+     * 删除党委
+     *
+     * @param partyCommitteeVO
+     *            删除id
+     * @return 删除结果
+     */
+    @PostMapping("/partybuildIngWest/deletepartycommittee")
+    R deletePartyCommittee(@RequestBody PartyCommitteeVO partyCommitteeVO);
+
+    /**
+     * 分页社区党委查询
+     *
+     * @param partyCommitteeVO
+     *            查询参数
+     * @return 分页集合
+     */
+    @PostMapping("/partybuildIngWest/pagepartycommittee")
+    R pagePartyCommittee(@RequestBody PartyCommitteeVO partyCommitteeVO);
+
+    /**
+     * 新建党建动态
+     *
+     * @param partyCommitteeVO
+     *            动态内容
+     * @return 新增结果
+     */
+    @PostMapping("/partybuildIngWest/adddynamic")
+    R adddYnamic(@RequestBody PartyBuildingComPbDynVO partyCommitteeVO);
+
+    /**
+     * 编辑动态
+     *
+     * @param partyCommitteeVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("/partybuildIngWest/updatedynamic")
+    R updateYnamic(@RequestBody PartyBuildingComPbDynVO partyCommitteeVO);
+
+    /**
+     * 动态详情
+     *
+     * @param id
+     *            动态主键
+     * @return 详情
+     */
+    @PostMapping("/partybuildIngWest/infodynamic")
+    R infoYnamic(@RequestParam("id") Long id);
+
+    /**
+     * 分页查询党员动态/政策文件
+     *
+     * @param partyBuildingComPbDynVO
+     *            查询参数
+     * @return 分页数据
+     */
+    @PostMapping("/partybuildIngWest/pagedynamic")
+    R pageYnamic(@RequestBody PartyBuildingComPbDynVO partyBuildingComPbDynVO);
+
+    /**
+     * 删除动态
+     *
+     * @param id
+     *            动态主键
+     * @return 删除结果
+     */
+    @PostMapping("/partybuildIngWest/deletedynamic")
+    R deleteYnamic(@RequestParam("id") Long id);
+
+    /**
+     * 新增党员活动
+     *
+     * @param partyBuildingActivityVO
+     *            参数
+     * @return 新增结果
+     */
+    @PostMapping("/partybuildIngWest/addactivity")
+    R addactivity(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO);
+
+    /**
+     * 编辑党员活动
+     *
+     * @param partyBuildingActivityVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("/partybuildIngWest/updateactivity")
+    R updateActivity(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO);
+
+    /**
+     * 发布党员活动
+     *
+     * @param id
+     *            主键id
+     * @return 发布结果
+     */
+    @PostMapping("/partybuildIngWest/releaseactivity")
+    R releaseActivity(@RequestParam("id") Long id);
+
+    /**
+     * 删除党员活动
+     *
+     * @param id
+     *            主键id
+     * @return 删除结果
+     */
+    @PostMapping("/partybuildIngWest/deleteactivity")
+    R deleteActivity(@RequestParam("id") Long id);
+
+    /**
+     * 分页查询党员活动
+     *
+     * @param partyBuildingActivityVO
+     *            查询条件
+     * @return 查询结果
+     */
+    @PostMapping("/partybuildIngWest/pageactivity")
+    R pageActivity(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO);
+
+    /**
+     * 增加阅读记录
+     *
+     * @param comPbDynUserVO
+     *            记录内容
+     * @return 增加结果
+     */
+    @PostMapping("/partybuildIngWest/adddynuser")
+    R addDynUser(@RequestBody ComPbDynUserVO comPbDynUserVO);
+
+    /**
+     * 删除党员
+     *
+     * @param id
+     *            党员主键
+     * @return 删除结果
+     */
+    @PostMapping("/partybuildIngWest/deletepartybuildingmember")
+    R deleteDynUser(@RequestParam("id") Long id);
+
+    /**
+     * 取消活动
+     *
+     * @param partyBuildingActivityVO
+     *            取消原因
+     * @return 操作结果
+     */
+    @PostMapping("/partybuildIngWest/cancelactivity")
+    R cancelActivity(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO);
+
+    /**
+     * 用户的所有党建活动
+     *
+     * @param userId
+     *            用户id
+     * @param communityId
+     *            社区id 同一用户在不同社区都是党员
+     * @param status
+     * @return 党建活动列表
+     */
+    @PostMapping("/partybuildIngWest/listactivity")
+    R listActivity(@RequestParam("userId") Long userId, @RequestParam("communityId") Long communityId,
+                   @RequestParam(value = "status", required = false) Integer status);
+
+    /**
+     * 党员活动人员参入列表
+     *
+     * @param id
+     *            活动id
+     * @return 党员集合
+     */
+    @PostMapping("/partybuildIngWest/listpartybuildingmember")
+    R listPartyBuildingMember(@RequestParam("id") Long id);
+
+    /**
+     * 报名、取消报名党员活动
+     *
+     * @param activitySignUpDTO
+     *            操作参数
+     * @return 操作结果
+     */
+    @PostMapping("/partybuildIngWest/putactivitysignup")
+    R putActivitySignUp(@RequestBody ActivitySignUpDTO activitySignUpDTO);
+
+    /**
+     * 获取党建活动所有参入人员的id集合
+     *
+     * @param id
+     *            党建活动id
+     * @return 人员id集合
+     */
+    @PostMapping("/partybuildIngWest/selectallpartybuildingactivitymembers")
+    R selectAllPartyBuildingActivityMembers(@RequestParam("id") Long id);
+
+    /**
+     * 定时任务刷新党建动态发布状态
+     *
+     * @return 刷新数据数量
+     */
+    @PostMapping("/partybuildIngWest/timedtaskpartybuildingstatus")
+    R timedTaskPartyBuildingStatus();
+
+    /**
+     * 定时任务取消党建活动
+     *
+     * @return 需要取消的所有党建活动
+     */
+    @PostMapping("/partybuildIngWest/timedtaskpartybuildingactivity")
+    R timedTaskPartyBuildingActivity();
+
+    /**
+     * 定时任务刷新党建活动的各个状态 除取消外
+     *
+     * @return 修改结果
+     */
+    @PostMapping("/partybuildIngWest/timedtaskpartybuildingactivityall")
+    R timedTaskPartyBuildingActivityAll();
+
+    /**
+     * 新增服务团队人员
+     *
+     * @param comPbServiceTeamDTO
+     *            新增内容
+     * @return 新增结果
+     */
+    @PostMapping("/partybuildIngWest/addserviceteam")
+    R addServiceTeam(@RequestBody ComPbServiceTeamDTO comPbServiceTeamDTO);
+
+    /**
+     * 编辑团队人员
+     *
+     * @param comPbServiceTeamDTO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("/partybuildIngWest/putserviceteam")
+    R putServiceTeam(@RequestBody ComPbServiceTeamDTO comPbServiceTeamDTO);
+
+    /**
+     * 删除服务团队人员
+     *
+     * @param comPbServiceTeamDTO
+     *            删除主键
+     * @return 删除结果
+     */
+    @PostMapping("/partybuildIngWest/deleteserviceteam")
+    R deleteServiceTeam(@RequestBody ComPbServiceTeamDTO comPbServiceTeamDTO);
+
+    /**
+     * 分页查询服务团队成员
+     *
+     * @param pageComPbServiceTeamDTO
+     *            查询参数
+     * @return 查询结果
+     */
+    @PostMapping("/partybuildIngWest/pageserviceteam")
+    R pageServiceTeam(@RequestBody PageComPbServiceTeamDTO pageComPbServiceTeamDTO);
+
+    /**
+     * 创建党员活动 小程序创建党员活动
+     *
+     * @param comPbActivityDTO
+     *            创建内容
+     * @return 创建结果
+     */
+    @PostMapping("/partybuildIngWest/addactivityinfo")
+    R addActivityApplets(@RequestBody ComPbActivityDTO comPbActivityDTO);
+
+    /**
+     * 查询用户党员认证信息
+     *
+     * @param id
+     * @param communityId
+     *            用户ID
+     * @return 查询结果
+     */
+    @GetMapping("/partybuildIngWest/usercertification")
+    R userCertification(@RequestParam("id") Long id,@RequestParam("communityId")Long communityId);
+
+    /**
+     * 查询待认证党员信息
+     *
+     * @param pagePartyBuildingMemberVO
+     *            查询参数
+     * @return 查询结果
+     */
+    @PostMapping("/partybuildIngWest/pageusercertification")
+    R pagePrePartybuildingmember(@RequestBody PagePartyBuildingMemberVO pagePartyBuildingMemberVO);
+
+    /**
+     * 根据身份证号码查询党员信息
+     *
+     * @param idCard
+     *            身份证号码
+     * @return 党员信息
+     */
+    @PostMapping("/partybuildIngWest/getPartyBuildingByIdCard")
+    R getPartyBuildingByIdCard(@RequestParam("idCard") String idCard);
+
+    /**
+     * 社区所有启用的党组织列表
+     *
+     * @return 党组织集合
+     */
+    @PostMapping("/partybuildIngWest/listpartyorganizationByApp")
+    R listPartyOrganizationByApp(@RequestBody ComListPartyDTO comListPartyDTO);
+
+    /**
+     * 根据id删除党员认证
+     *
+     * @param id
+     *            党员认证id
+     * @return 党员认证id
+     */
+    @PostMapping("/partybuildIngWest/deleteprepartybuildingmember")
+    R deleteprepartybuildingmember(@RequestParam("id") Long id);
+
+    /**
+     * 导出党员信息
+     *
+     * @param organizationVO
+     *            请求参数
+     * @return 党员信息列表
+     */
+    @PostMapping("/partybuildIngWest/exportPbMember")
+    R exportPbMember(@RequestBody PagePartyOrganizationVO organizationVO);
+
+    /**
+     * 选择人员
+     *
+     * @param param
+     *            查询条件
+     * @param communityId
+     *            社区id
+     * @return 查询结果
+     */
+    @PostMapping("/partybuildIngWest/getTotlePerson")
+    R getTotlePerson(@RequestParam(value = "param", required = false) String param,
+        @RequestParam(value = "communityId") Long communityId);
+
+    /**
+     * 根据党员活动id查询活动下报名人员
+     *
+     * @param activityId
+     *            党员活动id
+     * @return 活动下报名人员
+     */
+    @PostMapping("/partybuildIngWest/getTaskPbActivityPeopleList")
+    R getTaskPbActivityPeopleList(@RequestParam("activityId") Long activityId);
+
+    /**
+     * 分页查询党员数据统计
+     * @param statisticsMemberDto   请求参数
+     * @return  党员数据统计
+     */
+    @PostMapping("/partybuildIngWest/pageDataStatisticsMember")
+    R pageDataStatisticsMember(@RequestBody PageComDataStatisticsMemberDto statisticsMemberDto);
+
+    /**
+     * 根据组织id查询组织下统计数据
+     * @param statisticsOrgDto  请求参数
+     * @return  组织下统计数据
+     */
+    @PostMapping("/partybuildIngWest/getOrgDataStatistics")
+    R getOrgDataStatistics(@RequestBody ComDataStatisticsOrgDto statisticsOrgDto);
+
+    /**
+     * 查询党组织表头统计数据
+     * @param communityId
+     *            社区id
+     * @return  党组织表头统计数据
+     */
+    @GetMapping("/partybuildIngWest/getHeaderOrgDataStatistics")
+    R getHeaderOrgDataStatistics(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 党员数据统计-党员导出数据查询
+     * @param statisticsMemberDto   请求参数
+     * @return  党员导出数据
+     */
+    @PostMapping("/partybuildIngWest/exportDataStatisticsMember")
+    R exportDataStatisticsMember(@RequestBody PageComDataStatisticsMemberDto statisticsMemberDto);
+
+    /**
+     * 党委导入接口
+     * @param memberRoleExcelVoList 数据列表
+     * @param communityId   社区id
+     * @param userId    用户id
+     * @return  导入结果
+     */
+    @PostMapping("/partybuildIngWest/importPbMemberRole")
+    R importPbMemberRole(@RequestBody List<ComPbMemberRoleExcelVo> memberRoleExcelVoList,@RequestParam("communityId") Long communityId,@RequestParam("userId") Long userId);
+
+    /**
+     * 身份证查询是否党员
+     * @param idCard
+     * @return
+     */
+    @GetMapping("/partybuildIngWest/checkMember")
+    R checkMember(@RequestParam("idCard")String idCard);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/property/PropertyService.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/property/PropertyService.java
new file mode 100644
index 0000000..2c46c6d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/property/PropertyService.java
@@ -0,0 +1,225 @@
+package com.panzhihua.common.service.property;
+
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.property.*;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.*;
+
+import java.io.Serializable;
+
+/**
+ * 物业接口
+ */
+@FeignClient(name = "huacheng-property")
+public interface PropertyService {
+    /**
+     * 分页查询所有数据
+     * @return 所有数据
+     */
+    @PostMapping("/comPropertyRepair/queryAll")
+    R comPropertyRepairSelectAll(@RequestBody CommonPage commonPage);
+
+    /**
+     * 分页查询所有数据 脱敏
+     * @return 所有数据
+     */
+    @PostMapping("/comPropertyRepair/queryAllDesensitize")
+    R comPropertyRepairSelectAllDesensitize(@RequestBody CommonPage commonPage);
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/comPropertyRepair/{id}")
+    R comPropertyRepairSelectOne(@PathVariable("id") Long id);
+
+    /**
+     * 通过主键查询单条数据 脱敏
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/comPropertyRepair/desensitize/{id}")
+    R comPropertyRepairSelectOneDesensitize(@PathVariable("id") Long id);
+
+    /**
+     * 新增数据
+     *
+     * @param comPropertyRepair 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/comPropertyRepair")
+    R comPropertyRepairInsert(@RequestBody ComPropertyRepairVO comPropertyRepair);
+
+    /**
+     * 修改数据
+     *
+     * @param comPropertyRepair 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/comPropertyRepair/update")
+    R comPropertyRepairUpdate(@RequestBody ComPropertyRepairVO comPropertyRepair);
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("/comPropertyRepair/del")
+    R comPropertyRepairDelete(@RequestParam("id") Long id);
+
+    /**
+     * 查询报警列表
+     * @param commonPage
+     * @return
+     */
+    @PostMapping("/comPropertyAlarm/queryAll")
+    R comPropertyAlarmSelectAll(@RequestBody CommonPage commonPage);
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/comPropertyAlarm/{id}")
+    R comPropertyAlarmSelectOne(@PathVariable("id") Integer id);
+
+    /**
+     * 新增数据
+     *
+     * @param comPropertyAlarm 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/comPropertyAlarm")
+    R comPropertyAlarmInsert(@RequestBody ComPropertyAlarmVO comPropertyAlarm);
+
+    /**
+     * 修改数据
+     *
+     * @param comPropertyAlarm 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/comPropertyAlarm/update")
+    R comPropertyAlarmUpdate(@RequestBody ComPropertyAlarmVO comPropertyAlarm);
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("/comPropertyAlarm/del")
+    R comPropertyAlarmDelete(@RequestParam("id") Long id);
+
+    /**
+     * 分页查询所有数据
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/comPropertyEquipment/queryAll")
+    R comPropertyEquipmentSelectAll(@RequestBody CommonPage commonPage);
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/comPropertyEquipment/{id}")
+    R comPropertyEquipmentSelectOne(@PathVariable("id") Integer id);
+
+    /**
+     * 新增数据
+     *
+     * @param comPropertyEquipment 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/comPropertyEquipment")
+    R comPropertyEquipmentInsert(@RequestBody ComPropertyEquipmentVO comPropertyEquipment);
+
+    /**
+     * 修改数据
+     *
+     * @param comPropertyEquipment 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/comPropertyEquipment/update")
+    R comPropertyEquipmentUpdate(@RequestBody ComPropertyEquipmentVO comPropertyEquipment);
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("/comPropertyEquipment/del")
+    R comPropertyEquipmentDelete(@RequestParam("id") Long id);
+
+    /**
+     * 新增数据
+     *
+     * @param comPropertyAlarmSettingVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/comPropertyAlarmSetting")
+    R comPropertyAlarmSettingInsert(@RequestBody ComPropertyAlarmSettingVO comPropertyAlarmSettingVO);
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param communityId 主键
+     * @return 单条数据
+     */
+    @GetMapping("/comPropertyAlarmSetting")
+    R comPropertyAlarmSettingSelectOne(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/comPropertyHelp/queryAll")
+    R comPropertyHelpSelectAll(@RequestBody CommonPage commonPage);
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/comPropertyHelp/{id}")
+    R comPropertyHelpSelectOne(@PathVariable("id") Serializable id);
+
+    /**
+     * 新增数据
+     *
+     * @param comPropertyHelp 实体对象
+     * @return 新增结果
+     */
+    @PostMapping("/comPropertyHelp")
+    R comPropertyHelpInsert(@RequestBody ComPropertyHelpVO comPropertyHelp);
+
+    /**
+     * 修改数据
+     *
+     * @param comPropertyHelp 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/comPropertyHelp/update")
+    R comPropertyHelpUpdate(@RequestBody ComPropertyHelpVO comPropertyHelp);
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("/comPropertyHelp/del")
+    R comPropertyHelpDelete(@RequestParam("id") Long id);
+}
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
new file mode 100644
index 0000000..ee3fca6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/service/user/UserService.java
@@ -0,0 +1,1339 @@
+package com.panzhihua.common.service.user;
+
+import java.util.List;
+
+import com.panzhihua.common.model.dtos.DataKanBansDto;
+import com.panzhihua.common.model.dtos.community.convenient.ConvenientMerchantDTO;
+import com.panzhihua.common.model.dtos.community.convenient.DisableOrEnableConvenientMerchantDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.BindUserPhoneDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.LoginWithPhoneDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.McsMerchantDTO;
+import com.panzhihua.common.model.dtos.partybuilding.ComPbCheckUserDTO;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.model.dtos.PageDTO;
+import com.panzhihua.common.model.dtos.community.ExportSpecialUserDTO;
+import com.panzhihua.common.model.dtos.community.ExportUserDTO;
+import com.panzhihua.common.model.dtos.community.NoticeReadDTO;
+import com.panzhihua.common.model.dtos.grid.*;
+import com.panzhihua.common.model.dtos.user.*;
+import com.panzhihua.common.model.vos.*;
+import com.panzhihua.common.model.vos.shop.ShopStoreVO;
+import com.panzhihua.common.model.vos.user.*;
+
+import javax.validation.Valid;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: feign-userservice
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-24 08:58
+ **/
+@FeignClient(name = "huacheng-user")
+public interface UserService {
+
+    /**
+     * 新增微信用户
+     *
+     * @param openid
+     *            微信小程序标志
+     * @param sessionKey
+     *            会话密钥
+     * @param unionid
+     *            微信平台唯一ID
+     * @return 新增结果
+     */
+    @PostMapping("/addOrUpdate")
+    R addOrUpdate(@RequestParam("openid") String openid, @RequestParam("sessionKey") String sessionKey,
+        @RequestParam("unionid") String unionid,@RequestParam("appId")String appId);
+
+    /**
+     * 维护小程序用户基本信息 头像 昵称 性别
+     *
+     * @param userId
+     *            数据库用户ID
+     * @param nickName
+     *            昵称
+     * @param gender
+     *            性别
+     * @param avatarUrl
+     *            头像
+     * @return 维护结果
+     */
+    @PostMapping("/updateUserWeiXinInfo")
+    R updateUserWeiXinInfo(@RequestParam("userId") Long userId, @RequestParam("nickName") String nickName,
+        @RequestParam("gender") int gender, @RequestParam("avatarUrl") String avatarUrl);
+
+    /**
+     * 维护微信用户手机号
+     *
+     * @param userId
+     *            数据库ID
+     * @param purePhoneNumber
+     *            没有区号的手机号
+     * @return 维护结果
+     */
+    @PostMapping("/updateUserWeiXinPhone")
+    R updateUserWeiXinPhone(@RequestParam("userId") Long userId,
+        @RequestParam("purePhoneNumber") String purePhoneNumber);
+
+    /**
+     * 获取平台用户
+     *
+     * @param userId
+     *            用户ID
+     * @return 平台用户信息
+     */
+    @PostMapping("/getUserInfoUserId")
+    R<LoginUserInfoVO> getUserInfoByUserId(@RequestParam("userId") String userId);
+
+    /**
+     * 获取平台用户
+     *
+     * @param userName
+     *            登录账户+_type
+     * @return 平台用户信息
+     */
+    @PostMapping(value = "/getUserInfo")
+    R<LoginUserInfoVO> getUserInfo(@RequestParam("userName") String userName);
+
+    /**
+     * 获取平台所有权限路径url
+     *
+     * @return 所有url
+     */
+    @PostMapping("/role/getAllMenu")
+    R<List<MenuVO>> getAllMenu();
+
+    /**
+     *
+     * @param username
+     *            用户的ID
+     * @return 用户所有角色
+     */
+    @PostMapping("/role/getUserRoles")
+    R<List<String>> getUserRoles(@RequestParam("username") String username);
+
+    /**
+     * 查询社区的党委角色
+     *
+     * @param communityId
+     *            社区id
+     * @return 党委角色列表
+     */
+    @PostMapping("/role/listidentity")
+    R listIdentity(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 修改用户登录密码
+     *
+     * @param changePasswordVO
+     *            新密码
+     * @return 修改结果
+     */
+    @PostMapping("changepassword")
+    R changePassword(@RequestBody ChangePasswordVO changePasswordVO);
+
+    /**
+     * 重置密码用户登录密码默认admin123456
+     *
+     * @param userId
+     *            新密码
+     * @return 修改结果
+     */
+    @GetMapping("resetPassword")
+    R resetPassword(@RequestParam("userId") Long userId);
+
+    @GetMapping("/resetPasswordAccount")
+    R resetPasswordAccount(@RequestParam("type")Integer type,@RequestParam("account")String account,@RequestParam("appId")String appId);
+
+    /**
+     * 批量重置密码用户登录密码默认admin123456
+     *
+     * @param userIds
+     *            新密码
+     * @return 修改结果
+     */
+    @GetMapping("resetPasswordPatch")
+    R resetPasswordPatch(@RequestParam("userIds") Long[] userIds,@RequestParam("password") String password);
+
+    /**
+     * 某社区后台人员查询
+     *
+     * @param param
+     *            名字
+     * @param communityId
+     *            社区id
+     * @return 人员集合
+     */
+    @PostMapping("listactivitymanager")
+    R listActivityManager(@RequestParam("param") String param, @RequestParam("communityId") Long communityId);
+
+    /**
+     * 微心愿搜索社区团队人员列表
+     *
+     * @param param
+     *            请求参数
+     * @param communityId
+     *            社区id
+     * @return 社区团队人员列表
+     */
+    @PostMapping("listactivitymanager2")
+    R listActivityManager2(@RequestParam("param") String param, @RequestParam("communityId") Long communityId);
+
+    /**
+     * 分页查询人脸识别
+     *
+     * @param loginUserInfoVO
+     *            查询参数
+     * @return 分页集合
+     */
+    @PostMapping("pageuserface")
+    R pageUserFace(@RequestBody LoginUserInfoVO loginUserInfoVO);
+
+    /**
+     * 编辑人脸采集数据通过、驳回、删除
+     *
+     * @param loginUserInfoVO
+     *            操作信息
+     * @return 操作结果
+     */
+    @PostMapping("putuserface")
+    R putUserFace(@RequestBody LoginUserInfoVO loginUserInfoVO);
+
+    /**
+     * 分页查询人口管理
+     *
+     * @param userInfoVO
+     *            查询参数
+     * @return 分页数据
+     */
+    @PostMapping("pageuser")
+    R pageUser(@RequestBody AppletUserInfoVO userInfoVO);
+
+    /**
+     * 查询所有人员标签
+     *
+     * @return 标签集合
+     */
+    @PostMapping("listtag")
+    R listTag();
+
+    /**
+     * 人员详情
+     *
+     * @param userId
+     *            用户id
+     * @return 人员详情
+     */
+    @PostMapping("detailuser")
+    R<LoginUserInfoVO> detailUser(@RequestParam("userId") Long userId);
+
+    /**
+     * 设置用户标签
+     *
+     * @param loginUserInfoVO
+     *            标签信息
+     * @return 设置结果
+     */
+    @PostMapping("putusertag")
+    R putUserTag(@RequestBody LoginUserInfoVO loginUserInfoVO);
+
+    /**
+     * 修改用户志愿者状态
+     *
+     * @param phone
+     *            志愿者手机号
+     * @param type
+     *            1 支援者 0不是志愿者
+     */
+    @PostMapping("putuserisvolunteer")
+    R putUserIsVolunteer(@RequestParam("phone") String phone, @RequestParam("type") int type);
+
+    /**
+     * 修改用户志愿者状态
+     *
+     * @param userId
+     *            用户ID
+     * @param type
+     *            1 支援者 0不是志愿者
+     */
+    @PostMapping("putuserisvolunteerbyid")
+    R putUserIsVolunteerById(@RequestParam("userId") Long userId, @RequestParam("type") int type);
+
+    /**
+     * 用户绑定社区、小区
+     *
+     * @param loginUserInfoVO
+     *            社区小区数据
+     * @return 绑定结果
+     */
+    @PostMapping("putusercommunityarea")
+    R putUserCommunityArea(@RequestBody LoginUserInfoVO loginUserInfoVO);
+
+    /**
+     * 用户实名认证
+     *
+     * @param loginUserInfoVO
+     *            认证数据
+     * @return 认证结果
+     */
+    @PostMapping("putuserauthentication")
+    R putUserAuthentication(@RequestBody LoginUserInfoVO loginUserInfoVO);
+
+    /**
+     * 修改用户手机号
+     *
+     * @param userPhoneVO
+     *            手机号信息
+     * @return 修改结果
+     */
+    @PostMapping("putuserphone")
+    R putUserphone(@RequestBody UserPhoneVO userPhoneVO);
+
+    /**
+     * 修改用户信息
+     *
+     * @param loginUserInfoVO
+     *            修改内容
+     * @return 修改结果
+     */
+    @PostMapping("putuser")
+    R putUser(@RequestBody LoginUserInfoVO loginUserInfoVO);
+
+    /**
+     * 家庭成员列表
+     *
+     * @param userId
+     *            登录用户
+     * @return 成员集合
+     */
+    @PostMapping("listfamily")
+    R listFamily(@RequestParam("userId") Long userId, @RequestParam(value = "pageNum") Long pageNum,
+        @RequestParam("pageSize") Long pageSize);
+
+    /**
+     * 新增家庭成员
+     *
+     * @param comMngFamilyInfoVO
+     *            家庭成员基本信息
+     * @return 增加结果
+     */
+    @PostMapping("addFamily")
+    R addFamily(@RequestBody ComMngFamilyInfoVO comMngFamilyInfoVO);
+
+    /**
+     * 编辑家庭成员
+     *
+     * @param comMngFamilyInfoVO
+     *            家庭成员信息
+     * @return 编辑结果
+     */
+    @PostMapping("putfamily")
+    R putFamily(@RequestBody ComMngFamilyInfoVO comMngFamilyInfoVO);
+
+    /**
+     * 新增运营、社区后台账户
+     *
+     * @param administratorsUserVO
+     *            账户信息
+     * @return 新增结果
+     */
+    @PostMapping("adduserbackstage")
+    R addUserBackstage(@RequestBody AdministratorsUserVO administratorsUserVO);
+
+    /**
+     * 新增社区后台物业,社会组织,业主委员会账户
+     *
+     * @param administratorsUserVO
+     *            账户信息
+     * @return 新增结果
+     */
+    @PostMapping("adduserbackstageproperty")
+    R addUserBackstageProperty(@RequestBody AdministratorsUserVO administratorsUserVO);
+
+
+    /**
+     * 更新
+     *
+     * @param administratorsUserVO
+     *            编辑账户内容
+     * @return 编辑结果
+     */
+    @PostMapping("updateStreet")
+    R updateStreet(@RequestBody AdministratorsUserVO administratorsUserVO);
+
+    /**
+     * 编辑运营、社区后台账户
+     *
+     * @param administratorsUserVO
+     *            编辑账户内容
+     * @return 编辑结果
+     */
+    @PostMapping("putuserbackstage")
+    R putUserBackstage(@RequestBody AdministratorsUserVO administratorsUserVO);
+
+    /**
+     * 删除后台用户
+     *
+     * @param administratorsUserVO
+     *            用户主键
+     * @return 删除结果
+     */
+    @PostMapping("deleteuserbackstage")
+    R deleteUserBackstage(@RequestBody AdministratorsUserVO administratorsUserVO);
+
+    /**
+     * 角色下拉列表
+     *
+     * @param communityId
+     *            对应社区 0 表示运营后台
+     * @return 角色集合
+     */
+    @PostMapping("/role/listrolebackstage")
+    R listRoleBackstage(@RequestParam("communityId") Long communityId,@RequestParam("pageNum")Integer pageNum,@RequestParam("pageSize")Integer pageSize,@RequestParam("areaCode")String areaCode);
+
+    /**
+     * 分页查询后台用户
+     *
+     * @param administratorsUserVO
+     *            查询参数
+     * @return 后台用户
+     */
+    @PostMapping("pageuserbackstage")
+    R pageUserBackstage(@RequestBody AdministratorsUserVO administratorsUserVO);
+
+    /**
+     * 新增角色
+     *
+     * @param roleVO
+     *            角色信息
+     * @return 新增结果
+     */
+    @PostMapping("/role/addrolebackstage")
+    R addRoleBackstage(@RequestBody RoleVO roleVO);
+
+    /**
+     * 删除角色
+     *
+     * @param roleVO
+     *            角色主键
+     * @return 删除结果
+     */
+    @PostMapping("/role/deleterolebackstage")
+    R deleteRoleBackstage(@RequestBody RoleVO roleVO);
+
+    /**
+     * 平台菜单列表
+     *
+     * @param communityId
+     *            社区id 0 运营平台
+     * @return 菜单集合
+     */
+    @PostMapping("/role/listmenubackstage")
+    R listMenuBackstage(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 设置角色的权限
+     *
+     * @param menuRoleVO
+     *            用户设置的权限id
+     * @return 设置结果
+     */
+    @PostMapping("/role/putmenurole")
+    R putMenuRole(@RequestBody MenuRoleVO menuRoleVO);
+
+    /**
+     * 保存操作日志
+     *
+     * @param operlog
+     *            日志内容
+     * @return 保存结果
+     */
+    @PostMapping("addoperlog")
+    R addOperLog(@RequestBody SysOperLogVO operlog);
+
+    /**
+     * 分页展示操作日志
+     *
+     * @param sysOperLogVO
+     *            分页参数
+     * @return 分页集合
+     */
+    @PostMapping("pageoperlog")
+    R pageOperLog(@RequestBody SysOperLogVO sysOperLogVO);
+
+    /**
+     * 用户协议
+     *
+     * @return 协议集合
+     */
+    @PostMapping("listagreement")
+    R listAgreement(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 编辑用户协议
+     *
+     * @param sysUserAgreementVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("putagreement")
+    R putAgreement(@RequestBody SysUserAgreementVO sysUserAgreementVO);
+
+    /**
+     * 用户标签
+     *
+     * @param communityId
+     *            社区id
+     * @return 标签集合
+     */
+    @PostMapping("listcommngusertag")
+    R listComMngUserTag(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 新增删除用户标签
+     *
+     * @param systemmanagementConfigVO
+     *            操作内容
+     * @return 操作结果
+     */
+    @PostMapping("putcommngusertag")
+    R putComMngUserTag(@RequestBody SystemmanagementConfigVO systemmanagementConfigVO);
+
+    /**
+     * 分页查询小程序用户
+     *
+     * @param pageUserAppletsBackstageDTO
+     *            查询参数
+     * @return 分页集合
+     */
+    @PostMapping("pageuserappletsbackstage")
+    R pageUserAppletsBackstage(@RequestBody PageUserAppletsBackstageDTO pageUserAppletsBackstageDTO);
+
+    /**
+     * 编辑用户状态
+     *
+     * @param pageUserAppletsBackstageDTO
+     *            启用或者禁用 1 启用 2 禁用
+     * @return 编辑结果
+     */
+    @PostMapping("putuserappletsbackstage")
+    R putUserAppletsBackstage(@RequestBody PageUserAppletsBackstageDTO pageUserAppletsBackstageDTO);
+
+    /**
+     * 调试接口--清除昵称、社区、小区
+     *
+     * @param userId
+     *            登录用户id
+     * @return 清除结果
+     */
+    @PostMapping("deleteusertest")
+    R deleteUserTest(@RequestParam("userId") Long userId);
+
+    /**
+     * 用户协议和隐私政策
+     *
+     * @param type
+     *            所属app 1居民端app 2网格员端app 3商家端app
+     * @return 协议内容
+     */
+    @PostMapping("useragreement")
+    R userAgreement(@RequestParam("type") int type,@RequestParam("appid")String appId);
+
+    /**
+     * uu洗车登录
+     * @param uuLoginVO
+     * @return
+     */
+    @PostMapping("uuLogin")
+    R uuLogin(@RequestBody UuLoginVO uuLoginVO);
+
+    /**
+     * 意见反馈
+     *
+     * @param sysUserFeedbackDTO
+     *            反馈内容
+     * @return 反馈结果
+     */
+    @PostMapping("addfeedback")
+    R addFeedback(@RequestBody SysUserFeedbackDTO sysUserFeedbackDTO);
+
+    /**
+     * 分页通知列表
+     *
+     * @param pageDTO
+     *            分页参数
+     * @return 分页结果
+     */
+    @PostMapping("pagenotice")
+    R pageNotice(@RequestBody PageDTO pageDTO);
+
+    /**
+     * 通知已读
+     *
+     * @param noticeReadDTO
+     *            通知已读
+     * @return 修改状态
+     */
+    @PostMapping("putnotice")
+    R putNotice(@RequestBody NoticeReadDTO noticeReadDTO);
+
+    /**
+     * 分页查询用户意见反馈
+     *
+     * @param pageFeedBackDTO
+     *            分页查询参数
+     * @return 意见集合
+     */
+    @PostMapping("pagefeedback")
+    R pageFeedback(@RequestBody PageFeedBackDTO pageFeedBackDTO);
+
+    /**
+     * 未读消息汇总
+     *
+     * @param userId
+     *            登录用户信息
+     * @return 未读汇总
+     */
+    @PostMapping("noticeunreadnum")
+    R noticeUnreadNum(@RequestParam("userId") Long userId);
+
+    /**
+     * 反馈意见详情
+     *
+     * @param id
+     *            反馈主键
+     * @return 反馈详情
+     */
+    @PostMapping("detailfeedback")
+    R detailFeedback(@RequestParam("id") Long id);
+
+    /**
+     * 数据看板
+     *
+     * @return 运营后台数据看板
+     */
+    @PostMapping("datakanban")
+    R dataKanban(@RequestParam("areaCode")String areaCode);
+
+    /**
+     * 用户菜单获取
+     *
+     * @param userId
+     *            登录用户id
+     * @return 用户菜单
+     */
+    @PostMapping("/role/listmenu")
+    R listmenu(@RequestParam("userId") Long userId);
+
+    /**
+     * 社区管理后台数据看板
+     *
+     * @param communityId
+     *            社区id
+     * @return 看板用户数据
+     */
+    @PostMapping("indexdatacommunitybackstage")
+    R indexDataCommunityBackstage(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 定时任务维护用户持续登录时间
+     *
+     * @return 维护结果
+     */
+    @PostMapping("timedtaskcontinuouslandingdays")
+    R timedTaskContinuousLandingDays();
+
+    /**
+     * 新增用户通知
+     *
+     * @param sysUserNoticeVO
+     *            通知内容
+     * @return 新增结果
+     */
+    @PostMapping("addnotice")
+    R addNotice(@RequestBody SysUserNoticeVO sysUserNoticeVO);
+
+    /**
+     * 修改用户的党员状态
+     *
+     * @param idCard
+     *            身份证号
+     * @return 修改结果
+     */
+    @PostMapping("updateuserispartymember")
+    R updateUserIsPartymember(@RequestParam("idCard") String idCard);
+
+    /**
+     * 修改党员状态
+     * @param phone
+     * @return
+     */
+    @PostMapping("updateuserispartymemberByPhone")
+    R updateUserIsPartymemberByPhone(@RequestParam("phone") String phone);
+    /**
+     * 修改用户的为非党员状态
+     *
+     * @param idCard
+     *            身份证号
+     * @return 修改结果
+     */
+    @PostMapping("updateusernotpartymember")
+    R updateUserNotPartymember(@RequestParam("idCard") String idCard);
+
+    /**
+     * 获取角色的权限配置列表
+     *
+     * @param roleId
+     *            角色id
+     * @return 菜单列表
+     */
+    @PostMapping("/role/listmenubackstagebyrole")
+    R listMenuBackstageByRole(@RequestParam("roleId") Long roleId);
+
+    /**
+     * 获取各种协议
+     *
+     * @param type
+     *            1居民端app协议 2网格员端app协议 3商家端app协议 4隐私政策
+     * @return 协议内容
+     */
+    @PostMapping("agreement")
+    R agreement(@RequestParam("type") Integer type,@RequestParam("appId")String appId);
+
+    /**
+     * 维护用户最后登录时间
+     *
+     * @param userId
+     *            用户主键
+     * @return 维护结果
+     */
+    @PostMapping("putuserlastlogintime")
+    R putUserLastLoginTime(@RequestParam("userId") Long userId);
+
+    /**
+     * 删除意见反馈
+     *
+     * @param id
+     *            主键
+     * @return 删除结果
+     */
+    @PostMapping("deletefeedback")
+    R deleteFeedback(@RequestParam("id") Long id);
+
+    /**
+     * 批量导入居民用户
+     *
+     * @param list
+     *            居民用户集合
+     * @param areaName
+     *            小区名字
+     * @return 导入结果
+     */
+    @PostMapping("batchsaveuser")
+    R batchSaveUser(@RequestBody List<EexcelUserDTO> list, @RequestParam("areaName") StringBuffer areaName);
+
+    /**
+     * 校验小区是否存在
+     *
+     * @param areaName
+     *            小区名字
+     * @return 校验结果
+     */
+    @PostMapping("checkaereaname")
+    R checkAereaName(@RequestParam("areaName") String areaName);
+
+    /**
+     * 社区人员详情包括导入人员
+     *
+     * @param userId
+     *            人员id
+     * @return CommunityUserInfoVO
+     */
+    @PostMapping("detailusercomunity")
+    R detailUserComunity(@RequestParam("userId") Long userId);
+
+    /**
+     * 用户搜索了就下载搜索的用户否则下载所有用户
+     *
+     * @param exportUserDTO
+     *            用户搜索内容
+     * @return List<EexcelUserDTO> excel内容
+     */
+    @PostMapping("export")
+    R export(@RequestBody ExportUserDTO exportUserDTO);
+
+    /**
+     * 通过手机号码查询用户信息
+     *
+     * @param phone
+     * @return
+     */
+    @GetMapping("getUserByPhone")
+    R getSysUserVOByPhone(@RequestParam(value = "phone") String phone);
+
+    /**
+     * 通过账号查询用户信息
+     *
+     * @param account
+     * @return
+     */
+    @GetMapping("getUserByAccount")
+    R getSysUserVOByAccountAndType(@RequestParam(value = "account") String account,
+        @RequestParam(value = "type") Integer type);
+
+    /**
+     * 基础数据》居民管理》居民列表
+     *
+     * @param pageInputUserDTO
+     *            查询参数
+     * @return 分页数据
+     */
+    @PostMapping("common/data/user/page")
+    R pageInputUser(@RequestBody PageInputUserDTO pageInputUserDTO);
+
+    /**
+     * 基础数据》居民管理》设置用户标签
+     *
+     * @param inputUserTagsDTO
+     *            标签信息
+     * @return 设置结果
+     */
+    @PostMapping("common/data/user/tags")
+    R setInputUserTag(@RequestBody InputUserTagsDTO inputUserTagsDTO);
+
+    /**
+     * 基础数据》居民管理》批量导入居民用户
+     *
+     * @param list
+     *            居民用户集合
+     * @param areaName
+     *            小区名字
+     * @return 导入结果
+     */
+    @PostMapping("common/data/user/import")
+    R batchSaveInputUser(@RequestBody List<EexcelUserDTO> list, @RequestParam("areaName") StringBuffer areaName);
+
+    /**
+     * 基础数据》居民管理》 居民详情
+     *
+     * @param id
+     *            人员id
+     * @return CommunityUserInfoVO
+     */
+    @PostMapping("/common/data/user/detail")
+    R inputUserDetail(@RequestParam("id") Long id);
+
+    /**
+     * 基础数据》居民管理》 导出居民信息
+     *
+     * @param exportUserDTO
+     *            用户搜索内容
+     * @return List<EexcelUserDTO> excel内容
+     */
+    @PostMapping("/common/data/user/export")
+    R inputUserExport(@RequestBody ExportUserDTO exportUserDTO);
+
+    /**
+     * 基础数据》特殊群体》分页查询
+     *
+     * @param pageInputUserDTO
+     * @return
+     */
+    @PostMapping("common/data/special/page")
+    R specialInputUser(@RequestBody PageInputUserDTO pageInputUserDTO);
+
+    /**
+     * 删除特殊群体用户
+     *
+     * @param id
+     * @return
+     */
+    @DeleteMapping("common/data/special/delete1")
+    R deleteSpecialInputUser(@RequestParam(value = "id") Long id);
+
+    /**
+     * 基础数据》特殊群体》分页查询标签列表
+     *
+     * @param comMngUserTagDTO
+     * @return
+     */
+    @PostMapping("common/data/special/tags/page")
+    R specialInputUserTags(@RequestBody PageInputUserDTO comMngUserTagDTO);
+
+    /**
+     * 新增或修改特殊群体标签
+     *
+     * @param comMngTagVO
+     * @return
+     */
+    @PostMapping("common/data/special/tags/save")
+    R saveSpecialInputUserTags(@RequestBody ComMngTagVO comMngTagVO);
+
+    /**
+     * 删除特殊群体标签
+     *
+     * @param id
+     * @return
+     */
+    @DeleteMapping("common/data/special/tags/delete")
+    R deleteSpecialInputUserTags(@RequestParam(value = "id") Long id);
+
+    /**
+     * 特殊群体导出
+     *
+     * @param exportSpecialUserDTO
+     * @return
+     */
+    @PostMapping("/common/data/special/export")
+    R specialUserExport(@RequestBody ExportSpecialUserDTO exportSpecialUserDTO);
+
+    /**
+     * 查询所有人员标签
+     *
+     * @return 标签集合
+     */
+    @PostMapping("listtag/getTag")
+    R listTags();
+
+    /**
+     * 添加SysUser信息
+     *
+     * @param storeVO
+     *            sysUser信息
+     * @return 添加sysUser结果
+     */
+    @PostMapping("addSysUser")
+    R addSysUser(@RequestBody ShopStoreVO storeVO);
+
+    /**
+     * 修改SysUser信息
+     *
+     * @param storeVO
+     *            sysUser信息
+     * @return 修改结果
+     */
+    @PostMapping("editSysUser")
+    R editSysUser(@RequestBody ShopStoreVO storeVO);
+
+    /**
+     * 修改用户小程序首页活动提示
+     *
+     * @param userEditTipsDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    @PostMapping("editUserTips")
+    R editUserTips(@RequestBody SysUserEditTipsDTO userEditTipsDTO);
+
+    /**
+     * 获取用户电子档案
+     *
+     * @param userId
+     *            家庭成员信息
+     * @return 结果
+     */
+    @GetMapping("getUserArchives")
+    R getUserArchives(@RequestParam("userId") Long userId);
+
+    /**
+     * 编辑用户电子档案
+     *
+     * @param userArchivesVO
+     *            编辑的信息
+     * @return 编辑结果
+     */
+    @PostMapping("updateUserArchives")
+    R updateUserArchives(@RequestBody UpdateUserArchivesVO userArchivesVO);
+
+    /**
+     * 修改app用户密码
+     *
+     * @param userInfoAppDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    @PutMapping("updateUserPassByApp")
+    R updateUserPassByApp(@RequestBody EditUserInfoPassAppDTO userInfoAppDTO);
+
+    /**
+     * 添加网格员
+     *
+     * @param eventGridMemberAddDTO
+     *            请求参数
+     * @return 结果
+     */
+    @PostMapping("addGridUser")
+    R addGridUser(@RequestBody EventGridMemberAddDTO eventGridMemberAddDTO);
+
+    /**
+     * 分页查询网格员
+     *
+     * @param memberRelationDTO
+     *            请求参数
+     * @return 结果
+     */
+    @PostMapping("member/list")
+    R getGridMemberList(@RequestBody PageEventGridMemberRelationDTO memberRelationDTO);
+
+    /**
+     * 修改网格员信息
+     *
+     * @param eventGridMemberAddDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    @PostMapping("editGridUser")
+    R editGridUser(@RequestBody EventGridMemberEditAdminDTO eventGridMemberAddDTO);
+
+    /**
+     * 重置网格员密码
+     *
+     * @param gridMemberDTO
+     *            请求参数
+     * @return 重置结果
+     */
+    @PostMapping("passResetUser")
+    R gridMemberPassReset(@RequestBody EventGridMemberPassResetDTO gridMemberDTO);
+
+    /**
+     * 批量删除网格员
+     *
+     * @param Ids
+     *            网格员id集合
+     * @return 删除结果
+     */
+    @PostMapping("deleteMembers")
+    R deleteMembers(@RequestBody List<Long> Ids);
+
+    /**
+     * 批量修改网格员状态
+     *
+     * @param gridMemberEditDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    @PostMapping("gridMemberEditStatus")
+    R gridMemberEditStatus(@RequestBody EventGridMemberEditStatusDTO gridMemberEditDTO);
+
+    @GetMapping("big/no/tip")
+    R noTips(@RequestParam("userId") Long userId);
+
+    /**
+     * 查询社区的收益说明
+     *
+     * @param communityId
+     *            社区id
+     * @return 收益说明
+     */
+    @PostMapping("listagreements")
+    R listAgreements(@RequestParam("communityId") Long communityId);
+
+    @PostMapping("user/getUserGrids")
+    R getGridIsOk(@RequestParam("userId") Long userId);
+
+    @GetMapping("getGridsMemberList")
+    R getGridsMemberList(@RequestParam("communityId") Long communityId);
+
+    /**
+     * 根据用户id查询用户openid
+     *
+     * @param userId
+     *            用户id
+     * @return openid
+     */
+    @GetMapping("getUserOpenId")
+    R getUserOpenId(@RequestParam("userId") Long userId);
+
+    /**
+     * 查询社区后台工作人员列表
+     *
+     * @param communityId
+     *            社区id
+     * @return 社区后台工作人员列表
+     */
+    @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);
+
+    /**
+     * 便民服务新增商家账号
+     * @param convenientMerchantDTO
+     * @return 商家用户id
+     */
+    @PostMapping("insertMerchantAccount")
+    R addConvenientMerchantUser(@RequestBody ConvenientMerchantDTO convenientMerchantDTO);
+
+    /**
+     * 修改便民服务商家绑定账号
+     * @param userId
+     * @param account
+     * @return
+     */
+    @PutMapping("putMerchantUserAccount")
+    R putUserAccount(@RequestParam("userId") Long userId, @RequestParam("account") String account);
+
+    /**
+     * 禁用/启用便民服务商家用户
+     * @param disableOrEnableConvenientMerchantDTO
+     * @return
+     */
+    @PutMapping("disableOrEnableMerchantUsers")
+    R disableOrEnableMerchantUsers(@RequestBody DisableOrEnableConvenientMerchantDTO disableOrEnableConvenientMerchantDTO);
+
+    /**
+     * 根据openid维护社区团队里是否注册
+     * @param openid    用户微信唯一标识
+     */
+    @GetMapping("judgeCommunityTeam")
+    void judgeCommunityTeam(@RequestParam("openid") String openid);
+
+    /**
+     * 数据看板升级版
+     *
+     * @return 运营后台数据看板升级版
+     */
+    @PostMapping("datakanbans")
+    R dataKanBans(@RequestBody DataKanBansDto dataKanBansDto);
+
+    /**
+     * 运营后台-用户数据统计汇总
+     * @return  用户数据统计汇总
+     */
+    @GetMapping("community/statistics")
+    R communityStatistics(@RequestParam("areaCode") String areaCode);
+
+    /**
+     * 运营后台-用户数据统计导出
+     * @return  用户数据
+     */
+    @GetMapping("community/statistics/export")
+    R communityStatisticsExport(@RequestParam("areaCode") String areaCode);
+
+    /**
+     * 通过UnionId获取用户信息
+     * @param unionId
+     * @return
+     */
+    @GetMapping("/getByUnionId")
+    R getUserInfoByUnionId(@RequestParam("unionId") String unionId);
+
+    /**
+     * 小程序id获取相关信息
+     * @param appId
+     * @return
+     */
+    @GetMapping("/sysAppConfig/selectByAppid")
+    R<SysAppConfigVO> selectByAppid(@RequestParam("appId")String appId);
+
+    /**
+     * 通过区域编码 类型获取动态模板id
+     * @param areaCode
+     * @param type
+     * @return
+     */
+    @GetMapping("/sysTemplateConfig/selectTemplate")
+    R<SysTemplateConfigVO> selectTemplate(@RequestParam("areaCode")String areaCode,@RequestParam("type")Integer type);
+
+    /**
+     * 微商业街新增商家账号
+     * @param mcsMerchantDTO
+     * @return 商家用户id
+     */
+    @PostMapping("insertMcsMerchantAccount")
+    R addMcsMerchantUser(@RequestBody McsMerchantDTO mcsMerchantDTO);
+
+    /**
+     * 微商业街修改商家账号
+     * @param mcsMerchantDTO
+     * @return
+     */
+    @PutMapping("putMcsMerchantUser")
+    R putMcsMerchantUser(@RequestBody McsMerchantDTO mcsMerchantDTO);
+
+    /**
+     * 检查用户是否有效
+     * @param userId
+     * @param type
+     * @return
+     */
+    @PutMapping("checkUserIsValid")
+    Boolean checkUserIsValid(@RequestParam("userId") Long userId, @RequestParam("type") Integer type);
+
+    /**
+     * 根据手机号、用户类型查询用户
+     * @param phone
+     * @param type
+     * @return
+     */
+    @GetMapping("/getSysUserByPhone")
+    R getSysUserByPhone(@RequestParam("phone") String phone, @RequestParam("type") Integer type);
+
+    /**
+     * 发送验证码
+     * @param phone 手机号
+     * @param clientIP 用户ip
+     * @param prefixKey redis Key 前缀
+     * @param limit 获取次数限制
+     * @param timeout 超次数获取时间等待
+     * @return
+     */
+    @GetMapping("/sendMessageCode")
+    R sendMessageCode(@RequestParam("phone") String phone,
+                              @RequestParam(value = "clientIP", required = false) String clientIP,
+                              @RequestParam("prefixKey") String prefixKey,
+                              @RequestParam("limit") Integer limit,
+                              @RequestParam("timeout") Integer timeout);
+
+    /**
+     * 根据openId获取微商业街用户
+     * @param openid
+     * @return
+     */
+    @GetMapping("/getMcsUserByOpenId")
+    R getMcsUserByOpenId(@RequestParam("openid") String openid);
+
+    /**
+     * 商业街用户微信授权-绑定手机号
+     * @param bindUserPhoneDTO
+     * @return
+     */
+    @PostMapping("/mcs/bindPhone")
+    R bindOrAddMcsUser(@RequestBody @Valid BindUserPhoneDTO bindUserPhoneDTO);
+
+    /**
+     * 删除用户信息缓存
+     * @param phone
+     */
+    @DeleteMapping("/deleteUserCashByPhone")
+    R deleteUserCashByPhone(@RequestParam("phone") String phone);
+
+    /**
+     * 修改用户党员状态
+     * @param userId  用户id
+     * @return  修改结果
+     */
+    @PostMapping("/update/user/party/status")
+    R updateUserPartyStatus(@RequestParam("userId") Long userId);
+
+    /**
+     *导出验证密码
+     */
+    @GetMapping("/checkExport")
+    R checkExport(@RequestParam("account")String account,@RequestParam("password")String password,@RequestParam("oldPassword")String oldPassword);
+
+    @GetMapping("/indexData/totalData")
+    R newIndexData(@RequestParam(value = "type",required = false) Integer type,
+                   @RequestParam(value = "type",required = false) Long streetId,
+                   @RequestParam(value = "areaCode",required = false) Long areaCode,@RequestParam("appId")String appId);
+
+    @GetMapping("/indexData/userRate")
+    R userRate(@RequestParam(value = "type",required = false) Integer type,
+               @RequestParam(value = "streetId",required = false) Long streetId,
+               @RequestParam(value = "areaCode",required = false) Long areaCode,
+               @RequestParam(value = "range",required = false) Integer range,@RequestParam(value = "appId",required = false) String appId);
+
+
+    @GetMapping("/indexData/realUser")
+    R realUser(@RequestParam(value = "type",required = false) Integer type,
+               @RequestParam(value = "streetId",required = false) Long streetId,
+               @RequestParam(value = "areaCode",required = false) Long areaCode,
+               @RequestParam(value = "range",required = false) Integer range,@RequestParam(value = "appId",required = false) String appId);
+
+    @GetMapping("/indexData/userActivity")
+    R userActivity(@RequestParam(value = "type", required = false) Integer type,
+                   @RequestParam(value = "streetId", required = false) Long streetId,
+                   @RequestParam(value = "areaCode", required = false) Long areaCode,
+                   @RequestParam(value = "range", required = false) Integer range, @RequestParam(value = "appId",required = false) String appId);
+
+    @GetMapping("/indexData/getAreaAndStreet")
+    R getAreaAndStreet();
+    /**
+     * uu洗车推送
+     * @param washPhone
+     * @param phone
+     * @param washName
+     * @param orderStatus
+     * @return
+     */
+    @GetMapping("/uuPush")
+    R uuPush(@RequestParam("washPhone")String washPhone,@RequestParam("phone")String phone,@RequestParam("washName")String washName,@RequestParam("orderStatus")Integer orderStatus);
+    /**
+     * 无水洗车推送
+     * @param washPhone
+     * @param phone
+     * @param washName
+     * @param orderStatus
+     * @return
+     */
+    @GetMapping("/wsPush")
+    R wsPush(@RequestParam("washPhone")String washPhone,@RequestParam("phone")String phone,@RequestParam("washName")String washName,@RequestParam("orderStatus")Integer orderStatus);
+    @GetMapping("/communityList")
+    R communityList(@RequestParam("name") String name, @RequestParam("id") Long  id);
+
+
+    @PostMapping("/tfLogin")
+    R tfLogin(@RequestBody UuLoginVO uuLoginVO);
+
+    /**
+     * 三说会堂添加后台账户
+     * */
+    @PostMapping("/sanshuoAddUser")
+    R sanShuoAddUser(@RequestBody AdministratorsUserVO administratorsUserVO);
+
+    /**
+     * 三说会堂重置密码
+     * */
+    @GetMapping("/sanshuoResetPassword")
+    R sanShuoResetPassword(@RequestParam("account") String account,@RequestParam("pass")String password);
+
+
+    @GetMapping("/accept")
+     R accept(@RequestParam("userId")Long userId);
+
+    @PostMapping("/addComPbCheckUser")
+     R addComPbCheckUser(@RequestBody ComPbCheckUserDTO comPbCheckUserDTO);
+
+
+    /**
+     * 是否为专家登陆小程序
+     * */
+    @GetMapping("/isSanShuoExpert")
+    R isExpert(@RequestParam("number") String number);
+
+    /**
+     * 删除用户专家权限
+     * */
+    @GetMapping("/removeExpertRole")
+    R removeExpertRole(@RequestParam(value = "phone",required = false) String phone);
+
+    /**
+     *回复反馈意见或修改返回意见的回复
+     * */
+    @PostMapping("/feedBackReply")
+    R updateFeedBack(@RequestBody SysUserFeedbackVO sysUserFeedbackVO);
+
+    @GetMapping("/myFeedBack")
+    R myFeedBack(@RequestParam("userId") Long userId,@RequestParam(value = "type",required = false)Integer type,@RequestParam("propertyId")Long propertyId);
+
+    /**
+     * 获取所有社区等
+     * @return
+     */
+    @GetMapping("/getAllCommunityList")
+    R getAllCommunityList();
+
+    @GetMapping("/propertyCheck")
+    R propertyCheck(@RequestParam("phone") String phone);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AES.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AES.java
new file mode 100644
index 0000000..f1f4374
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AES.java
@@ -0,0 +1,174 @@
+package com.panzhihua.common.utlis;
+
+import java.io.UnsupportedEncodingException;
+import java.nio.charset.StandardCharsets;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+import java.security.SecureRandom;
+
+import javax.crypto.*;
+import javax.crypto.spec.SecretKeySpec;
+
+public class AES {
+    /**
+     * 加密
+     *
+     * @param content
+     *            需要加密的内容
+     * @param password
+     *            加密密码
+     * @return
+     */
+    public static byte[] encrypt(String content, String password) {
+        try {
+            KeyGenerator kgen = KeyGenerator.getInstance("AES");
+
+            SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");
+            secureRandom.setSeed(password.getBytes());
+            kgen.init(128, secureRandom);
+
+            SecretKey secretKey = kgen.generateKey();
+            byte[] enCodeFormat = secretKey.getEncoded();
+            SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES");
+            Cipher cipher = Cipher.getInstance("AES");// 创建密码器
+            byte[] byteContent = content.getBytes(StandardCharsets.UTF_8);
+            cipher.init(Cipher.ENCRYPT_MODE, key);// 初始化
+            byte[] result = cipher.doFinal(byteContent);
+            return result; // 加密
+        } catch (NoSuchAlgorithmException e) {
+            e.printStackTrace();
+        } catch (NoSuchPaddingException e) {
+            e.printStackTrace();
+        } catch (InvalidKeyException e) {
+            e.printStackTrace();
+        } catch (IllegalBlockSizeException e) {
+            e.printStackTrace();
+        } catch (BadPaddingException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    /**
+     * 解密
+     *
+     * @param content
+     *            待解密内容
+     * @param password
+     *            解密密钥
+     * @return
+     */
+    public static byte[] decrypt(byte[] content, String password) {
+        try {
+            String charset = "utf-8";
+            KeyGenerator kgen = KeyGenerator.getInstance("AES");
+
+            SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");
+            secureRandom.setSeed(password.getBytes());
+            kgen.init(128, secureRandom);
+
+            SecretKey secretKey = kgen.generateKey();
+            byte[] enCodeFormat = secretKey.getEncoded();
+            SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES");
+            Cipher cipher = Cipher.getInstance("AES");// 创建密码器
+            cipher.init(Cipher.DECRYPT_MODE, key);// 初始化
+            byte[] result = cipher.doFinal(content);
+            return result; // 加密
+        } catch (NoSuchAlgorithmException e) {
+            e.printStackTrace();
+        } catch (NoSuchPaddingException e) {
+            e.printStackTrace();
+        } catch (InvalidKeyException e) {
+            e.printStackTrace();
+        } catch (IllegalBlockSizeException e) {
+            e.printStackTrace();
+        } catch (BadPaddingException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    /**
+     * 将二进制转换成16进制
+     *
+     * @param buf
+     * @return
+     */
+    public static String parseByte2HexStr(byte[] buf) {
+        StringBuffer sb = new StringBuffer();
+        for (int i = 0; i < buf.length; i++) {
+            String hex = Integer.toHexString(buf[i] & 0xFF);
+            if (hex.length() == 1) {
+                hex = '0' + hex;
+            }
+            sb.append(hex.toUpperCase());
+        }
+        return sb.toString();
+    }
+
+    /**
+     * 将16进制转换为二进制
+     *
+     * @param hexStr
+     * @return
+     */
+    public static byte[] parseHexStr2Byte(String hexStr) {
+        if (hexStr.length() < 1)
+            return null;
+        byte[] result = new byte[hexStr.length() / 2];
+        for (int i = 0; i < hexStr.length() / 2; i++) {
+            int high = Integer.parseInt(hexStr.substring(i * 2, i * 2 + 1), 16);
+            int low = Integer.parseInt(hexStr.substring(i * 2 + 1, i * 2 + 2), 16);
+            result[i] = (byte)(high * 16 + low);
+        }
+        return result;
+    }
+
+    /**
+     * 加密
+     *
+     * @param content
+     *            需要加密的内容
+     * @param password
+     *            加密密码
+     * @return
+     */
+    public static byte[] encrypt2(String content, String password) {
+        try {
+            SecretKeySpec key = new SecretKeySpec(password.getBytes(), "AES");
+            Cipher cipher = Cipher.getInstance("AES/ECB/NoPadding");
+            byte[] byteContent = content.getBytes(StandardCharsets.UTF_8);
+            cipher.init(Cipher.ENCRYPT_MODE, key);// 初始化
+            byte[] result = cipher.doFinal(byteContent);
+            return result; // 加密
+        } catch (NoSuchAlgorithmException e) {
+            e.printStackTrace();
+        } catch (NoSuchPaddingException e) {
+            e.printStackTrace();
+        } catch (InvalidKeyException e) {
+            e.printStackTrace();
+        } catch (IllegalBlockSizeException e) {
+            e.printStackTrace();
+        } catch (BadPaddingException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    public static void main(String[] args) throws UnsupportedEncodingException {
+        String content = "我是shoneworn";
+        String password = "12345678";
+        // 加密
+        System.out.println("加密前:" + content);
+        byte[] encode = encrypt(content, password);
+
+        // 传输过程,不转成16进制的字符串,就等着程序崩溃掉吧
+        String code = parseByte2HexStr(encode);
+        System.out.println("密文字符串:" + code);
+        byte[] decode = parseHexStr2Byte(code);
+        // 解密
+        byte[] decryptResult = decrypt(decode, password);
+        System.out.println("解密后:" + new String(decryptResult, StandardCharsets.UTF_8)); // 不转码会乱码
+
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AddressUtils.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AddressUtils.java
new file mode 100644
index 0000000..b9b1861
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AddressUtils.java
@@ -0,0 +1,45 @@
+package com.panzhihua.common.utlis;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.constants.Constants;
+
+/**
+ * 获取地址类
+ * 
+ * @author ruoyi
+ */
+public class AddressUtils {
+    // IP地址查询
+    public static final String IP_URL = "http://whois.pconline.com.cn/ipJson.jsp";
+    // 未知地址
+    public static final String UNKNOWN = "XX XX";
+    private static final Logger log = LoggerFactory.getLogger(AddressUtils.class);
+
+    public static String getRealAddressByIP(String ip) {
+        String address = UNKNOWN;
+        // 内网不查询
+        if (IpUtils.internalIp(ip)) {
+            return "内网IP";
+        }
+        // if (RuoYiConfig.isAddressEnabled())
+        if (true) {
+            try {
+                String rspStr = HttpUtils.sendGet(IP_URL, "ip=" + ip + "&json=true", Constants.GBK);
+                if (StringUtils.isEmpty(rspStr)) {
+                    log.error("获取地理位置异常 {}", ip);
+                    return UNKNOWN;
+                }
+                JSONObject obj = JSONObject.parseObject(rspStr);
+                String region = obj.getString("pro");
+                String city = obj.getString("city");
+                return String.format("%s %s", region, city);
+            } catch (Exception e) {
+                log.error("获取地理位置异常 {}", ip);
+            }
+        }
+        return address;
+    }
+}
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
new file mode 100644
index 0000000..d55983e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AgeUtils.java
@@ -0,0 +1,159 @@
+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;
+
+/**
+ * Created by qing on 2017/3/28.
+ */
+public class AgeUtils {
+    // 根据年月日计算年龄,birthTimeString:"1994-11-14"
+    public static int getAgeFromBirthTime(String birthTimeString) {
+        // 先截取到字符串中的年、月、日
+        int selectYear = Integer.parseInt(birthTimeString.substring(0, 4));
+        int selectMonth = Integer.parseInt(birthTimeString.substring(4, 6));
+        int selectDay = Integer.parseInt(birthTimeString.substring(6, 8));
+        // 得到当前时间的年、月、日
+        Calendar cal = Calendar.getInstance();
+        int yearNow = cal.get(Calendar.YEAR);
+        int monthNow = cal.get(Calendar.MONTH) + 1;
+        int dayNow = cal.get(Calendar.DATE);
+
+        // 用当前年月日减去生日年月日
+        int yearMinus = yearNow - selectYear;
+        int monthMinus = monthNow - selectMonth;
+        int dayMinus = dayNow - selectDay;
+
+        int age = yearMinus;// 先大致赋值
+        if (yearMinus < 0) {// 选了未来的年份
+            age = 0;
+        } else if (yearMinus == 0) {// 同年的,要么为1,要么为0
+            if (monthMinus < 0) {// 选了未来的月份
+                age = 0;
+            } else if (monthMinus == 0) {// 同月份的
+                if (dayMinus < 0) {// 选了未来的日期
+                    age = 0;
+                } else if (dayMinus >= 0) {
+                    age = 1;
+                }
+            } else if (monthMinus > 0) {
+                age = 1;
+            }
+        } else if (yearMinus > 0) {
+            if (monthMinus < 0) {// 当前月>生日月
+            } else if (monthMinus == 0) {// 同月份的,再根据日期计算年龄
+                if (dayMinus < 0) {
+                } else if (dayMinus >= 0) {
+                    age = age + 1;
+                }
+            } else if (monthMinus > 0) {
+                age = age + 1;
+            }
+        }
+        return age;
+    }
+
+    // 根据时间戳计算年龄
+    public static int getAgeFromBirthTime(long birthTimeLong) {
+        Date date = new Date(birthTimeLong * 1000l);
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+        String birthTimeString = format.format(date);
+        return getAgeFromBirthTime(birthTimeString);
+    }
+
+    public static String getAgeFormatBirthday(String brithday) {
+        if (StringUtils.isEmpty(brithday)) {
+            return "";
+        }
+        String year = brithday.substring(0, 4);
+        String month = brithday.substring(4, 6);
+        String ri = brithday.substring(6, 8);
+        return year + "-" + month + "-" + ri;
+    }
+
+    public static int getAgeFromBirthTimes(String birthTimeString) {
+        // 先截取到字符串中的年、月、日
+        int selectYear = Integer.parseInt(birthTimeString.substring(0, 4));
+        int selectMonth = Integer.parseInt(birthTimeString.substring(5, 7));
+        int selectDay = Integer.parseInt(birthTimeString.substring(8, 10));
+        // 得到当前时间的年、月、日
+        Calendar cal = Calendar.getInstance();
+        int yearNow = cal.get(Calendar.YEAR);
+        int monthNow = cal.get(Calendar.MONTH) + 1;
+        int dayNow = cal.get(Calendar.DATE);
+
+        // 用当前年月日减去生日年月日
+        int yearMinus = yearNow - selectYear;
+        int monthMinus = monthNow - selectMonth;
+        int dayMinus = dayNow - selectDay;
+
+        int age = yearMinus;// 先大致赋值
+        if (yearMinus < 0) {// 选了未来的年份
+            age = 0;
+        } else if (yearMinus == 0) {// 同年的,要么为1,要么为0
+            if (monthMinus < 0) {// 选了未来的月份
+                age = 0;
+            } else if (monthMinus == 0) {// 同月份的
+                if (dayMinus < 0) {// 选了未来的日期
+                    age = 0;
+                } else if (dayMinus >= 0) {
+                    age = 1;
+                }
+            } else if (monthMinus > 0) {
+                age = 1;
+            }
+        } else if (yearMinus > 0) {
+            if (monthMinus < 0) {// 当前月>生日月
+            } else if (monthMinus == 0) {// 同月份的,再根据日期计算年龄
+                if (dayMinus < 0) {
+                } else if (dayMinus >= 0) {
+                    age = age + 1;
+                }
+            } else if (monthMinus > 0) {
+                age = age + 1;
+            }
+        }
+        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");
+        String birthTimeString = format.format(date);
+        return getAgeFromBirthTimes(birthTimeString);
+    }
+
+    public static void main(String[] args) {
+        String yese = "19980516";
+        String year = yese.substring(0, 4);
+        String month = yese.substring(4, 6);
+        String ri = yese.substring(6, 8);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AssemblyUtils.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AssemblyUtils.java
new file mode 100644
index 0000000..8e2fda9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/AssemblyUtils.java
@@ -0,0 +1,417 @@
+package com.panzhihua.common.utlis;
+
+import com.panzhihua.common.model.vos.community.ComActQuestnaireAnswerContentVO;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.imageio.ImageIO;
+import javax.xml.bind.DatatypeConverter;
+import java.awt.image.BufferedImage;
+import java.io.*;
+import java.net.URL;
+import java.nio.file.Files;
+import java.util.ArrayList;
+import java.util.Base64;
+import java.util.List;
+import java.util.UUID;
+
+/**
+ * @author lyq
+ *  前端H5组件库工具类
+ */
+@Slf4j
+public class AssemblyUtils {
+
+    /**
+     * 数据转换--登记明细用户填写答案导出数据格式转换
+     *
+     * @param answerContentVOList 用户答题记录
+     * @return 用户填写答案数据
+     */
+    public static List<List<Object>> ReserveData(List<ComActQuestnaireAnswerContentVO> answerContentVOList) {
+        //结果数据集合
+        List<List<Object>> resultList = new ArrayList<>();
+        //构建单个用户数据
+        List<Object> userData = new ArrayList<>();
+
+        String noExport = "本人对信息内容";
+        //遍历答案列表
+        Long reserveRecordId = 0L;
+        Long reserveSubId = 0L;
+        Boolean isOldDuo = false;
+        StringBuffer sb = new StringBuffer();
+        if (answerContentVOList != null && answerContentVOList.size() > 0) {
+            int a=0;
+            for (ComActQuestnaireAnswerContentVO userAnswers : answerContentVOList) {
+                a++;
+                if(answerContentVOList.size()==26&&a==9){
+                   userData.add(" ");
+                }
+                //判断是文字描述直接跳过
+                if (userAnswers.getOptionType().equals(5)
+                        || (StringUtils.isNotEmpty(userAnswers.getAnswerContent()) && userAnswers.getAnswerContent().contains(noExport))) {
+                    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;
+
+                    if(isOldDuo){
+                        String answer = sb.toString();
+                        userData.add(answer.substring(0, answer.length() - 1));
+                        sb = new StringBuffer();
+                        isOldDuo = false;
+                    }
+                    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(StringUtils.isNotEmpty(userAnswers.getAnswerContent()) && userAnswers.getAnswerContent().contains(noExport)){
+                            continue;
+                        }
+
+                        //判断当前的组件类型是否是图片上传,导出时需要导出图片
+                        if(userAnswers.getOptionType().equals(11)){
+                            reserveSubId = userAnswers.getReserveSubId();
+                            try {
+                                if(StringUtils.isNotEmpty(userAnswers.getAnswerContent())){
+                                    if(userAnswers.getAnswerContent().contains("_compress")){
+                                        userData.add(new URL(userAnswers.getAnswerContent()));
+                                    }
+                                    else {
+                                        URL url=new URL(userAnswers.getAnswerContent().substring(0,userAnswers.getAnswerContent().lastIndexOf("."))+"_compress.jpg");
+                                        if(url.getContent()!=null){
+                                            userData.add(url);
+                                        }
+                                        else {
+                                            userData.add(userAnswers.getAnswerContent());
+                                        }
+                                    }
+                                    //userData.add(new File("/workspace/minio/data/files/"+userAnswers.getAnswerContent().substring(userAnswers.getAnswerContent().indexOf("files/")+6)));
+                                }
+                                else {
+                                    userData.add(" ");
+                                }
+                            }catch (Exception e){
+                                userData.add(" ");
+                                e.printStackTrace();
+                                log.error("导出转换图片失败!");
+                            }
+                            continue;
+                        }
+                        //判断当前组件类型是否签名
+                        if(userAnswers.getOptionType().equals(12)){
+                            reserveSubId = userAnswers.getReserveSubId();
+                            try {
+                                userData.add(DatatypeConverter.parseBase64Binary(userAnswers.getAnswerContent().substring(userAnswers.getAnswerContent().indexOf(",") + 1)));
+                            }catch (Exception e){
+                                userData.add(" ");
+                                log.error("导出转换图片失败!");
+                            }
+                            continue;
+                        }
+
+                        if(userAnswers.getOptionType().equals(1)){
+                            isOldDuo = true;
+                            sb.append(userAnswers.getAnswerContent()==null?"无":userAnswers.getAnswerContent() + ",");
+                            continue;
+                        }else{
+                            if(isOldDuo){
+                                String answer = sb.toString();
+                                userData.add(answer.substring(0, answer.length() - 1));
+                                sb = new StringBuffer();
+                            }
+                            isOldDuo = false;
+                        }
+                        sb.append(userAnswers.getAnswerContent()==null?"无":userAnswers.getAnswerContent() + ",");
+                        String answer = sb.toString();
+                        userData.add(answer.substring(0, answer.length() - 1));
+                        sb = new StringBuffer();
+                    }else{
+                        //如果是承诺字段则不导出
+                        if(StringUtils.isNotEmpty(userAnswers.getAnswerContent()) && userAnswers.getAnswerContent().contains(noExport)){
+                            continue;
+                        }
+                        //判断当前的组件类型是否是图片上传,导出时需要导出图片
+                        if(userAnswers.getOptionType().equals(11)){
+                            reserveSubId = userAnswers.getReserveSubId();
+                            try {
+                                if(StringUtils.isNotEmpty(userAnswers.getAnswerContent())){
+                                    if(userAnswers.getAnswerContent().contains("_compress")){
+                                        userData.add(new URL(userAnswers.getAnswerContent()));
+                                    }
+                                    else {
+                                        URL url=new URL(userAnswers.getAnswerContent().substring(0,userAnswers.getAnswerContent().lastIndexOf("."))+"_compress.jpg");
+                                        if(url.getContent()!=null){
+                                            userData.add(url);
+                                        }
+                                        else {
+                                            userData.add(userAnswers.getAnswerContent());
+                                        }
+
+                                    }
+                                    //userData.add(new File("/workspace/minio/data/files/"+userAnswers.getAnswerContent().substring(userAnswers.getAnswerContent().indexOf("files/")+6)));
+                                }
+                                else {
+                                    userData.add(" ");
+                                }
+                            }catch (Exception e){
+                                userData.add(" ");
+                                log.error("导出转换图片失败!");
+                            }
+                            continue;
+                        }
+                        //判断当前组件类型是否签名
+                        if(userAnswers.getOptionType().equals(12)){
+                            reserveSubId = userAnswers.getReserveSubId();
+                            try {
+                                //userData.add(new URL("http://image.panzhihua.nhys.cdnhxx.com//idcard/967dbdef3ef3465a9169fbea204f9aa7.jpg"));
+                                userData.add(DatatypeConverter.parseBase64Binary(userAnswers.getAnswerContent().substring(userAnswers.getAnswerContent().indexOf(",") + 1)));
+                            }catch (Exception e){
+                                userData.add(" ");
+                                log.error("导出转换图片失败!");
+                            }
+                            continue;
+                        }
+                        if(userAnswers.getOptionType().equals(1)){
+                            isOldDuo = true;
+                            sb.append(userAnswers.getAnswerContent()==null?"无":userAnswers.getAnswerContent() + ",");
+                            continue;
+                        }else{
+                            if(isOldDuo){
+                                String answer = sb.toString();
+                                userData.add(answer.substring(0, answer.length() - 1));
+                                sb = new StringBuffer();
+                            }
+                            isOldDuo = false;
+                        }
+                        sb.append(userAnswers.getAnswerContent()==null?"无":userAnswers.getAnswerContent() + ",");
+                        String answer = sb.toString();
+                        userData.add(answer.substring(0, answer.length() - 1));
+                        sb = new StringBuffer();
+                    }
+                }
+            }
+            if(isOldDuo){
+                String answer = sb.toString();
+                userData.add(answer.substring(0, answer.length() - 1));
+            }
+            resultList.add(userData);
+        }
+        return resultList;
+    }
+
+    public static List<List<Object>> ReserveDataNoImage(List<ComActQuestnaireAnswerContentVO> answerContentVOList) {
+        //结果数据集合
+        List<List<Object>> resultList = new ArrayList<>();
+        //构建单个用户数据
+        List<Object> userData = new ArrayList<>();
+
+        String noExport = "以上信息仅用于";
+        //遍历答案列表
+        Long reserveRecordId = 0L;
+        Long reserveSubId = 0L;
+        Boolean isOldDuo = false;
+        StringBuffer sb = new StringBuffer();
+        if (answerContentVOList != null && answerContentVOList.size() > 0) {
+            int a=0;
+            for (ComActQuestnaireAnswerContentVO userAnswers : answerContentVOList) {
+                a++;
+                if(answerContentVOList.size()==26&&a==9){
+                    userData.add(" ");
+                }
+                //判断是文字描述直接跳过
+                if (userAnswers.getOptionType().equals(5) ||userAnswers.getOptionType().equals(11)
+                        || (StringUtils.isNotEmpty(userAnswers.getAnswerContent()) && userAnswers.getAnswerContent().contains(noExport))) {
+                    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;
+
+                    if(isOldDuo){
+                        String answer = sb.toString();
+                        userData.add(answer.substring(0, answer.length() - 1));
+                        sb = new StringBuffer();
+                        isOldDuo = false;
+                    }
+                    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(StringUtils.isNotEmpty(userAnswers.getAnswerContent()) && userAnswers.getAnswerContent().contains(noExport)){
+                            continue;
+                        }
+
+                        //判断当前的组件类型是否是图片上传,导出时需要导出图片
+                        if(userAnswers.getOptionType().equals(11)){
+                            reserveSubId = userAnswers.getReserveSubId();
+                            try {
+                                if(StringUtils.isNotEmpty(userAnswers.getAnswerContent())){
+                                    if(userAnswers.getAnswerContent().contains("_compress")){
+                                        userData.add(new URL(userAnswers.getAnswerContent()));
+                                    }
+                                    else {
+                                        URL url=new URL(userAnswers.getAnswerContent().substring(0,userAnswers.getAnswerContent().lastIndexOf("."))+"_compress.jpg");
+                                        if(url.getContent()!=null){
+                                            userData.add(url);
+                                        }
+                                        else {
+                                            userData.add(userAnswers.getAnswerContent());
+                                        }
+                                    }
+                                    //userData.add(new File("/workspace/minio/data/files/"+userAnswers.getAnswerContent().substring(userAnswers.getAnswerContent().indexOf("files/")+6)));
+                                }
+                                else {
+                                    userData.add(" ");
+                                }
+                            }catch (Exception e){
+                                userData.add(" ");
+                                e.printStackTrace();
+                                log.error("导出转换图片失败!");
+                            }
+                            continue;
+                        }
+                        //判断当前组件类型是否签名
+                        if(userAnswers.getOptionType().equals(12)){
+                            reserveSubId = userAnswers.getReserveSubId();
+                            try {
+                                userData.add(DatatypeConverter.parseBase64Binary(userAnswers.getAnswerContent().substring(userAnswers.getAnswerContent().indexOf(",") + 1)));
+                            }catch (Exception e){
+                                userData.add(" ");
+                                log.error("导出转换图片失败!");
+                            }
+                            continue;
+                        }
+
+                        if(userAnswers.getOptionType().equals(1)){
+                            isOldDuo = true;
+                            sb.append(userAnswers.getAnswerContent()==null?"无":userAnswers.getAnswerContent() + ",");
+                            continue;
+                        }else{
+                            if(isOldDuo){
+                                String answer = sb.toString();
+                                userData.add(answer.substring(0, answer.length() - 1));
+                                sb = new StringBuffer();
+                            }
+                            isOldDuo = false;
+                        }
+                        sb.append(userAnswers.getAnswerContent()==null?"无":userAnswers.getAnswerContent() + ",");
+                        String answer = sb.toString();
+                        userData.add(answer.substring(0, answer.length() - 1));
+                        sb = new StringBuffer();
+                    }else{
+                        //如果是承诺字段则不导出
+                        if(StringUtils.isNotEmpty(userAnswers.getAnswerContent()) && userAnswers.getAnswerContent().contains(noExport)){
+                            continue;
+                        }
+                        //判断当前的组件类型是否是图片上传,导出时需要导出图片
+                        if(userAnswers.getOptionType().equals(11)){
+                            reserveSubId = userAnswers.getReserveSubId();
+                            try {
+                                if(StringUtils.isNotEmpty(userAnswers.getAnswerContent())){
+                                    if(userAnswers.getAnswerContent().contains("_compress")){
+                                        userData.add(new URL(userAnswers.getAnswerContent()));
+                                    }
+                                    else {
+                                        URL url=new URL(userAnswers.getAnswerContent().substring(0,userAnswers.getAnswerContent().lastIndexOf("."))+"_compress.jpg");
+                                        if(url.getContent()!=null){
+                                            userData.add(url);
+                                        }
+                                        else {
+                                            userData.add(userAnswers.getAnswerContent());
+                                        }
+
+                                    }
+                                    //userData.add(new File("/workspace/minio/data/files/"+userAnswers.getAnswerContent().substring(userAnswers.getAnswerContent().indexOf("files/")+6)));
+                                }
+                                else {
+                                    userData.add(" ");
+                                }
+                            }catch (Exception e){
+                                userData.add(" ");
+                                log.error("导出转换图片失败!");
+                            }
+                            continue;
+                        }
+                        //判断当前组件类型是否签名
+                        if(userAnswers.getOptionType().equals(12)){
+                            reserveSubId = userAnswers.getReserveSubId();
+                            try {
+                                //userData.add(new URL("http://image.panzhihua.nhys.cdnhxx.com//idcard/967dbdef3ef3465a9169fbea204f9aa7.jpg"));
+                                userData.add(DatatypeConverter.parseBase64Binary(userAnswers.getAnswerContent().substring(userAnswers.getAnswerContent().indexOf(",") + 1)));
+                            }catch (Exception e){
+                                userData.add(" ");
+                                log.error("导出转换图片失败!");
+                            }
+                            continue;
+                        }
+                        if(userAnswers.getOptionType().equals(1)){
+                            isOldDuo = true;
+                            sb.append(userAnswers.getAnswerContent()==null?"无":userAnswers.getAnswerContent() + ",");
+                            continue;
+                        }else{
+                            if(isOldDuo){
+                                String answer = sb.toString();
+                                userData.add(answer.substring(0, answer.length() - 1));
+                                sb = new StringBuffer();
+                            }
+                            isOldDuo = false;
+                        }
+                        sb.append(userAnswers.getAnswerContent()==null?"无":userAnswers.getAnswerContent() + ",");
+                        String answer = sb.toString();
+                        userData.add(answer.substring(0, answer.length() - 1));
+                        sb = new StringBuffer();
+                    }
+                }
+            }
+            if(isOldDuo){
+                String answer = sb.toString();
+                userData.add(answer.substring(0, answer.length() - 1));
+            }
+            resultList.add(userData);
+        }
+        return resultList;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/CharsetKit.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/CharsetKit.java
new file mode 100644
index 0000000..6063a11
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/CharsetKit.java
@@ -0,0 +1,84 @@
+package com.panzhihua.common.utlis;
+
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
+
+/**
+ * 字符集工具类
+ * 
+ * @author ruoyi
+ */
+public class CharsetKit {
+    /** ISO-8859-1 */
+    public static final String ISO_8859_1 = "ISO-8859-1";
+    /** UTF-8 */
+    public static final String UTF_8 = "UTF-8";
+    /** GBK */
+    public static final String GBK = "GBK";
+
+    /** ISO-8859-1 */
+    public static final Charset CHARSET_ISO_8859_1 = StandardCharsets.ISO_8859_1;
+    /** UTF-8 */
+    public static final Charset CHARSET_UTF_8 = StandardCharsets.UTF_8;
+    /** GBK */
+    public static final Charset CHARSET_GBK = Charset.forName(GBK);
+
+    /**
+     * 转换为Charset对象
+     * 
+     * @param charset
+     *            字符集,为空则返回默认字符集
+     * @return Charset
+     */
+    public static Charset charset(String charset) {
+        return StringUtils.isEmpty(charset) ? Charset.defaultCharset() : Charset.forName(charset);
+    }
+
+    /**
+     * 转换字符串的字符集编码
+     * 
+     * @param source
+     *            字符串
+     * @param srcCharset
+     *            源字符集,默认ISO-8859-1
+     * @param destCharset
+     *            目标字符集,默认UTF-8
+     * @return 转换后的字符集
+     */
+    public static String convert(String source, String srcCharset, String destCharset) {
+        return convert(source, Charset.forName(srcCharset), Charset.forName(destCharset));
+    }
+
+    /**
+     * 转换字符串的字符集编码
+     * 
+     * @param source
+     *            字符串
+     * @param srcCharset
+     *            源字符集,默认ISO-8859-1
+     * @param destCharset
+     *            目标字符集,默认UTF-8
+     * @return 转换后的字符集
+     */
+    public static String convert(String source, Charset srcCharset, Charset destCharset) {
+        if (null == srcCharset) {
+            srcCharset = StandardCharsets.ISO_8859_1;
+        }
+
+        if (null == destCharset) {
+            srcCharset = StandardCharsets.UTF_8;
+        }
+
+        if (StringUtils.isEmpty(source) || srcCharset.equals(destCharset)) {
+            return source;
+        }
+        return new String(source.getBytes(srcCharset), destCharset);
+    }
+
+    /**
+     * @return 系统字符集编码
+     */
+    public static String systemCharset() {
+        return Charset.defaultCharset().name();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ClazzUtils.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ClazzUtils.java
new file mode 100644
index 0000000..b087ce9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ClazzUtils.java
@@ -0,0 +1,53 @@
+package com.panzhihua.common.utlis;
+
+import java.lang.reflect.Field;
+import java.text.DecimalFormat;
+import java.util.Arrays;
+
+import com.panzhihua.common.model.dtos.shop.PageComShopOrderSearchDTO;
+
+/**
+ * 工具类
+ */
+public class ClazzUtils {
+
+    /**
+     * 如果string属性为“”, 则将其设置为NULL
+     * 
+     * @param o
+     */
+    public static void setIfStringIsEmpty(Object o) {
+        if (o == null) {
+            return;
+        }
+        Class clazz = o.getClass();
+        Field[] fields = clazz.getDeclaredFields();
+        Arrays.stream(fields).forEach(field -> {
+            if (String.class == field.getType()) {
+                try {
+                    field.setAccessible(true);
+                    if (field.get(o) != null) {
+                        String oVal = (String)field.get(o);
+                        if ("".equals(oVal)) {
+                            field.set(o, null);
+                        }
+                    }
+                } catch (IllegalAccessException e) {
+                }
+            }
+        });
+    }
+
+    public static void main(String[] args) {
+        PageComShopOrderSearchDTO dto = new PageComShopOrderSearchDTO();
+        dto.setGoodsName("");
+        dto.setOrderNo("123");
+        setIfStringIsEmpty(dto);
+        System.out.println(dto);
+
+        double d = 1234.200;
+        DecimalFormat df = new DecimalFormat("0.00");
+        System.out.println(df.format(d));
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/Constant.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/Constant.java
new file mode 100644
index 0000000..888fb0a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/Constant.java
@@ -0,0 +1,82 @@
+package com.panzhihua.common.utlis;
+
+public class Constant {
+
+    /**
+     * 存储当前登录用户id的字段名
+     */
+    public static final String CURRENT_USER_ID = "CURRENT_USER_ID";
+
+    /**
+     * 存储当前登录用户id的字段名
+     */
+    public static final String CURRENT_USER_NAME = "CURRENT_USER_NAME";
+
+    /**
+     * 存储当前登录用户的角色
+     */
+    public static final String CURRENT_USER_ROLE = "CURRENT_USER_ROLE";
+
+    /**
+     * 存储当前登录用户的deptId
+     */
+    public static final String CURRENT_USER_DEPT_ID = "CURRENT_USER_DEPT_Id";
+    public static final String CURRENT_USER_ORG_ID = "CURRENT_USER_ORG_Id";
+    public static final String CURRENT_USER_PHONE = "CURRENT_USER_PHONE";
+    /**
+     * 存放OpLogContent的header字段
+     */
+    public static final String OP_LOG_CONTENT = "OP_LOG_CONTENT";
+
+    /**
+     * token有效期(小时)
+     */
+    public static final int TOKEN_EXPIRES_HOUR = 168;
+
+    /**
+     * redis存储手机验证码过期时间(10分钟)
+     */
+    public static final long AUTH_CODE_EXPIRED_SECONDS =  60 * 10;
+
+    /**
+     * 验证码长度
+     */
+    public static final int AUTH_CODE_LENGTH = 6;
+
+
+    /**
+     * 登录用户 redis key
+     */
+    public static final String LOGIN_TOKEN_KEY = "login_tokens:";
+    /**
+     * 令牌
+     */
+    public static final String TOKEN = "token";
+
+    /**
+     * 令牌前缀
+     */
+    public static final String TOKEN_PREFIX = "admin:";
+
+    /**
+     * 令牌前缀
+     */
+    public static final String LOGIN_USER_KEY = "login_user_key";
+
+    /**
+     * 存放Authorization的header字段
+     */
+    public static final String AUTHORIZATION = "Authorization";
+
+    /**
+     * 小程序  花城e+token
+     */
+    public static final String HCAUTHORIZATION = "HCAuthorization";
+
+
+    /**
+     * 小程序  花城e+token
+     */
+    public static final String UNION_AUTHORIZATION = "Union_Authorization";
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/Convert.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/Convert.java
new file mode 100644
index 0000000..3ec7b94
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/Convert.java
@@ -0,0 +1,918 @@
+package com.panzhihua.common.utlis;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.nio.ByteBuffer;
+import java.nio.charset.Charset;
+import java.text.NumberFormat;
+import java.util.Set;
+
+/**
+ * 类型转换器
+ * 
+ * @author ruoyi
+ */
+public class Convert {
+    /**
+     * 转换为字符串<br>
+     * 如果给定的值为null,或者转换失败,返回默认值<br>
+     * 转换失败不会报错
+     * 
+     * @param value
+     *            被转换的值
+     * @param defaultValue
+     *            转换错误时的默认值
+     * @return 结果
+     */
+    public static String toStr(Object value, String defaultValue) {
+        if (null == value) {
+            return defaultValue;
+        }
+        if (value instanceof String) {
+            return (String)value;
+        }
+        return value.toString();
+    }
+
+    /**
+     * 转换为字符串<br>
+     * 如果给定的值为<code>null</code>,或者转换失败,返回默认值<code>null</code><br>
+     * 转换失败不会报错
+     * 
+     * @param value
+     *            被转换的值
+     * @return 结果
+     */
+    public static String toStr(Object value) {
+        return toStr(value, null);
+    }
+
+    /**
+     * 转换为字符<br>
+     * 如果给定的值为null,或者转换失败,返回默认值<br>
+     * 转换失败不会报错
+     * 
+     * @param value
+     *            被转换的值
+     * @param defaultValue
+     *            转换错误时的默认值
+     * @return 结果
+     */
+    public static Character toChar(Object value, Character defaultValue) {
+        if (null == value) {
+            return defaultValue;
+        }
+        if (value instanceof Character) {
+            return (Character)value;
+        }
+
+        final String valueStr = toStr(value, null);
+        return StringUtils.isEmpty(valueStr) ? defaultValue : valueStr.charAt(0);
+    }
+
+    /**
+     * 转换为字符<br>
+     * 如果给定的值为<code>null</code>,或者转换失败,返回默认值<code>null</code><br>
+     * 转换失败不会报错
+     * 
+     * @param value
+     *            被转换的值
+     * @return 结果
+     */
+    public static Character toChar(Object value) {
+        return toChar(value, null);
+    }
+
+    /**
+     * 转换为byte<br>
+     * 如果给定的值为<code>null</code>,或者转换失败,返回默认值<br>
+     * 转换失败不会报错
+     * 
+     * @param value
+     *            被转换的值
+     * @param defaultValue
+     *            转换错误时的默认值
+     * @return 结果
+     */
+    public static Byte toByte(Object value, Byte defaultValue) {
+        if (value == null) {
+            return defaultValue;
+        }
+        if (value instanceof Byte) {
+            return (Byte)value;
+        }
+        if (value instanceof Number) {
+            return ((Number)value).byteValue();
+        }
+        final String valueStr = toStr(value, null);
+        if (StringUtils.isEmpty(valueStr)) {
+            return defaultValue;
+        }
+        try {
+            return Byte.parseByte(valueStr);
+        } catch (Exception e) {
+            return defaultValue;
+        }
+    }
+
+    /**
+     * 转换为byte<br>
+     * 如果给定的值为<code>null</code>,或者转换失败,返回默认值<code>null</code><br>
+     * 转换失败不会报错
+     * 
+     * @param value
+     *            被转换的值
+     * @return 结果
+     */
+    public static Byte toByte(Object value) {
+        return toByte(value, null);
+    }
+
+    /**
+     * 转换为Short<br>
+     * 如果给定的值为<code>null</code>,或者转换失败,返回默认值<br>
+     * 转换失败不会报错
+     * 
+     * @param value
+     *            被转换的值
+     * @param defaultValue
+     *            转换错误时的默认值
+     * @return 结果
+     */
+    public static Short toShort(Object value, Short defaultValue) {
+        if (value == null) {
+            return defaultValue;
+        }
+        if (value instanceof Short) {
+            return (Short)value;
+        }
+        if (value instanceof Number) {
+            return ((Number)value).shortValue();
+        }
+        final String valueStr = toStr(value, null);
+        if (StringUtils.isEmpty(valueStr)) {
+            return defaultValue;
+        }
+        try {
+            return Short.parseShort(valueStr.trim());
+        } catch (Exception e) {
+            return defaultValue;
+        }
+    }
+
+    /**
+     * 转换为Short<br>
+     * 如果给定的值为<code>null</code>,或者转换失败,返回默认值<code>null</code><br>
+     * 转换失败不会报错
+     * 
+     * @param value
+     *            被转换的值
+     * @return 结果
+     */
+    public static Short toShort(Object value) {
+        return toShort(value, null);
+    }
+
+    /**
+     * 转换为Number<br>
+     * 如果给定的值为空,或者转换失败,返回默认值<br>
+     * 转换失败不会报错
+     * 
+     * @param value
+     *            被转换的值
+     * @param defaultValue
+     *            转换错误时的默认值
+     * @return 结果
+     */
+    public static Number toNumber(Object value, Number defaultValue) {
+        if (value == null) {
+            return defaultValue;
+        }
+        if (value instanceof Number) {
+            return (Number)value;
+        }
+        final String valueStr = toStr(value, null);
+        if (StringUtils.isEmpty(valueStr)) {
+            return defaultValue;
+        }
+        try {
+            return NumberFormat.getInstance().parse(valueStr);
+        } catch (Exception e) {
+            return defaultValue;
+        }
+    }
+
+    /**
+     * 转换为Number<br>
+     * 如果给定的值为空,或者转换失败,返回默认值<code>null</code><br>
+     * 转换失败不会报错
+     * 
+     * @param value
+     *            被转换的值
+     * @return 结果
+     */
+    public static Number toNumber(Object value) {
+        return toNumber(value, null);
+    }
+
+    /**
+     * 转换为int<br>
+     * 如果给定的值为空,或者转换失败,返回默认值<br>
+     * 转换失败不会报错
+     * 
+     * @param value
+     *            被转换的值
+     * @param defaultValue
+     *            转换错误时的默认值
+     * @return 结果
+     */
+    public static Integer toInt(Object value, Integer defaultValue) {
+        if (value == null) {
+            return defaultValue;
+        }
+        if (value instanceof Integer) {
+            return (Integer)value;
+        }
+        if (value instanceof Number) {
+            return ((Number)value).intValue();
+        }
+        final String valueStr = toStr(value, null);
+        if (StringUtils.isEmpty(valueStr)) {
+            return defaultValue;
+        }
+        try {
+            return Integer.parseInt(valueStr.trim());
+        } catch (Exception e) {
+            return defaultValue;
+        }
+    }
+
+    /**
+     * 转换为int<br>
+     * 如果给定的值为<code>null</code>,或者转换失败,返回默认值<code>null</code><br>
+     * 转换失败不会报错
+     * 
+     * @param value
+     *            被转换的值
+     * @return 结果
+     */
+    public static Integer toInt(Object value) {
+        return toInt(value, null);
+    }
+
+    /**
+     * 转换为Integer数组<br>
+     * 
+     * @param str
+     *            被转换的值
+     * @return 结果
+     */
+    public static Integer[] toIntArray(String str) {
+        return toIntArray(",", str);
+    }
+
+    /**
+     * 转换为Long数组<br>
+     * 
+     * @param str
+     *            被转换的值
+     * @return 结果
+     */
+    public static Long[] toLongArray(String str) {
+        return toLongArray(",", str);
+    }
+
+    /**
+     * 转换为Integer数组<br>
+     * 
+     * @param split
+     *            分隔符
+     * @param split
+     *            被转换的值
+     * @return 结果
+     */
+    public static Integer[] toIntArray(String split, String str) {
+        if (StringUtils.isEmpty(str)) {
+            return new Integer[] {};
+        }
+        String[] arr = str.split(split);
+        final Integer[] ints = new Integer[arr.length];
+        for (int i = 0; i < arr.length; i++) {
+            final Integer v = toInt(arr[i], 0);
+            ints[i] = v;
+        }
+        return ints;
+    }
+
+    /**
+     * 转换为Long数组<br>
+     * 
+     * @param split
+     *            分隔符
+     * @param str
+     *            被转换的值
+     * @return 结果
+     */
+    public static Long[] toLongArray(String split, String str) {
+        if (StringUtils.isEmpty(str)) {
+            return new Long[] {};
+        }
+        String[] arr = str.split(split);
+        final Long[] longs = new Long[arr.length];
+        for (int i = 0; i < arr.length; i++) {
+            final Long v = toLong(arr[i], null);
+            longs[i] = v;
+        }
+        return longs;
+    }
+
+    /**
+     * 转换为String数组<br>
+     * 
+     * @param str
+     *            被转换的值
+     * @return 结果
+     */
+    public static String[] toStrArray(String str) {
+        return toStrArray(",", str);
+    }
+
+    /**
+     * 转换为String数组<br>
+     * 
+     * @param split
+     *            分隔符
+     * @param split
+     *            被转换的值
+     * @return 结果
+     */
+    public static String[] toStrArray(String split, String str) {
+        return str.split(split);
+    }
+
+    /**
+     * 转换为long<br>
+     * 如果给定的值为空,或者转换失败,返回默认值<br>
+     * 转换失败不会报错
+     * 
+     * @param value
+     *            被转换的值
+     * @param defaultValue
+     *            转换错误时的默认值
+     * @return 结果
+     */
+    public static Long toLong(Object value, Long defaultValue) {
+        if (value == null) {
+            return defaultValue;
+        }
+        if (value instanceof Long) {
+            return (Long)value;
+        }
+        if (value instanceof Number) {
+            return ((Number)value).longValue();
+        }
+        final String valueStr = toStr(value, null);
+        if (StringUtils.isEmpty(valueStr)) {
+            return defaultValue;
+        }
+        try {
+            // 支持科学计数法
+            return new BigDecimal(valueStr.trim()).longValue();
+        } catch (Exception e) {
+            return defaultValue;
+        }
+    }
+
+    /**
+     * 转换为long<br>
+     * 如果给定的值为<code>null</code>,或者转换失败,返回默认值<code>null</code><br>
+     * 转换失败不会报错
+     * 
+     * @param value
+     *            被转换的值
+     * @return 结果
+     */
+    public static Long toLong(Object value) {
+        return toLong(value, null);
+    }
+
+    /**
+     * 转换为double<br>
+     * 如果给定的值为空,或者转换失败,返回默认值<br>
+     * 转换失败不会报错
+     * 
+     * @param value
+     *            被转换的值
+     * @param defaultValue
+     *            转换错误时的默认值
+     * @return 结果
+     */
+    public static Double toDouble(Object value, Double defaultValue) {
+        if (value == null) {
+            return defaultValue;
+        }
+        if (value instanceof Double) {
+            return (Double)value;
+        }
+        if (value instanceof Number) {
+            return ((Number)value).doubleValue();
+        }
+        final String valueStr = toStr(value, null);
+        if (StringUtils.isEmpty(valueStr)) {
+            return defaultValue;
+        }
+        try {
+            // 支持科学计数法
+            return new BigDecimal(valueStr.trim()).doubleValue();
+        } catch (Exception e) {
+            return defaultValue;
+        }
+    }
+
+    /**
+     * 转换为double<br>
+     * 如果给定的值为空,或者转换失败,返回默认值<code>null</code><br>
+     * 转换失败不会报错
+     * 
+     * @param value
+     *            被转换的值
+     * @return 结果
+     */
+    public static Double toDouble(Object value) {
+        return toDouble(value, null);
+    }
+
+    /**
+     * 转换为Float<br>
+     * 如果给定的值为空,或者转换失败,返回默认值<br>
+     * 转换失败不会报错
+     * 
+     * @param value
+     *            被转换的值
+     * @param defaultValue
+     *            转换错误时的默认值
+     * @return 结果
+     */
+    public static Float toFloat(Object value, Float defaultValue) {
+        if (value == null) {
+            return defaultValue;
+        }
+        if (value instanceof Float) {
+            return (Float)value;
+        }
+        if (value instanceof Number) {
+            return ((Number)value).floatValue();
+        }
+        final String valueStr = toStr(value, null);
+        if (StringUtils.isEmpty(valueStr)) {
+            return defaultValue;
+        }
+        try {
+            return Float.parseFloat(valueStr.trim());
+        } catch (Exception e) {
+            return defaultValue;
+        }
+    }
+
+    /**
+     * 转换为Float<br>
+     * 如果给定的值为空,或者转换失败,返回默认值<code>null</code><br>
+     * 转换失败不会报错
+     * 
+     * @param value
+     *            被转换的值
+     * @return 结果
+     */
+    public static Float toFloat(Object value) {
+        return toFloat(value, null);
+    }
+
+    /**
+     * 转换为boolean<br>
+     * String支持的值为:true、false、yes、ok、no,1,0 如果给定的值为空,或者转换失败,返回默认值<br>
+     * 转换失败不会报错
+     * 
+     * @param value
+     *            被转换的值
+     * @param defaultValue
+     *            转换错误时的默认值
+     * @return 结果
+     */
+    public static Boolean toBool(Object value, Boolean defaultValue) {
+        if (value == null) {
+            return defaultValue;
+        }
+        if (value instanceof Boolean) {
+            return (Boolean)value;
+        }
+        String valueStr = toStr(value, null);
+        if (StringUtils.isEmpty(valueStr)) {
+            return defaultValue;
+        }
+        valueStr = valueStr.trim().toLowerCase();
+        switch (valueStr) {
+            case "true":
+                return true;
+            case "false":
+                return false;
+            case "yes":
+                return true;
+            case "ok":
+                return true;
+            case "no":
+                return false;
+            case "1":
+                return true;
+            case "0":
+                return false;
+            default:
+                return defaultValue;
+        }
+    }
+
+    /**
+     * 转换为boolean<br>
+     * 如果给定的值为空,或者转换失败,返回默认值<code>null</code><br>
+     * 转换失败不会报错
+     * 
+     * @param value
+     *            被转换的值
+     * @return 结果
+     */
+    public static Boolean toBool(Object value) {
+        return toBool(value, null);
+    }
+
+    /**
+     * 转换为Enum对象<br>
+     * 如果给定的值为空,或者转换失败,返回默认值<br>
+     * 
+     * @param clazz
+     *            Enum的Class
+     * @param value
+     *            值
+     * @param defaultValue
+     *            默认值
+     * @return Enum
+     */
+    public static <E extends Enum<E>> E toEnum(Class<E> clazz, Object value, E defaultValue) {
+        if (value == null) {
+            return defaultValue;
+        }
+        if (clazz.isAssignableFrom(value.getClass())) {
+            @SuppressWarnings("unchecked")
+            E myE = (E)value;
+            return myE;
+        }
+        final String valueStr = toStr(value, null);
+        if (StringUtils.isEmpty(valueStr)) {
+            return defaultValue;
+        }
+        try {
+            return Enum.valueOf(clazz, valueStr);
+        } catch (Exception e) {
+            return defaultValue;
+        }
+    }
+
+    /**
+     * 转换为Enum对象<br>
+     * 如果给定的值为空,或者转换失败,返回默认值<code>null</code><br>
+     * 
+     * @param clazz
+     *            Enum的Class
+     * @param value
+     *            值
+     * @return Enum
+     */
+    public static <E extends Enum<E>> E toEnum(Class<E> clazz, Object value) {
+        return toEnum(clazz, value, null);
+    }
+
+    /**
+     * 转换为BigInteger<br>
+     * 如果给定的值为空,或者转换失败,返回默认值<br>
+     * 转换失败不会报错
+     * 
+     * @param value
+     *            被转换的值
+     * @param defaultValue
+     *            转换错误时的默认值
+     * @return 结果
+     */
+    public static BigInteger toBigInteger(Object value, BigInteger defaultValue) {
+        if (value == null) {
+            return defaultValue;
+        }
+        if (value instanceof BigInteger) {
+            return (BigInteger)value;
+        }
+        if (value instanceof Long) {
+            return BigInteger.valueOf((Long)value);
+        }
+        final String valueStr = toStr(value, null);
+        if (StringUtils.isEmpty(valueStr)) {
+            return defaultValue;
+        }
+        try {
+            return new BigInteger(valueStr);
+        } catch (Exception e) {
+            return defaultValue;
+        }
+    }
+
+    /**
+     * 转换为BigInteger<br>
+     * 如果给定的值为空,或者转换失败,返回默认值<code>null</code><br>
+     * 转换失败不会报错
+     * 
+     * @param value
+     *            被转换的值
+     * @return 结果
+     */
+    public static BigInteger toBigInteger(Object value) {
+        return toBigInteger(value, null);
+    }
+
+    /**
+     * 转换为BigDecimal<br>
+     * 如果给定的值为空,或者转换失败,返回默认值<br>
+     * 转换失败不会报错
+     * 
+     * @param value
+     *            被转换的值
+     * @param defaultValue
+     *            转换错误时的默认值
+     * @return 结果
+     */
+    public static BigDecimal toBigDecimal(Object value, BigDecimal defaultValue) {
+        if (value == null) {
+            return defaultValue;
+        }
+        if (value instanceof BigDecimal) {
+            return (BigDecimal)value;
+        }
+        if (value instanceof Long) {
+            return new BigDecimal((Long)value);
+        }
+        if (value instanceof Double) {
+            return new BigDecimal((Double)value);
+        }
+        if (value instanceof Integer) {
+            return new BigDecimal((Integer)value);
+        }
+        final String valueStr = toStr(value, null);
+        if (StringUtils.isEmpty(valueStr)) {
+            return defaultValue;
+        }
+        try {
+            return new BigDecimal(valueStr);
+        } catch (Exception e) {
+            return defaultValue;
+        }
+    }
+
+    /**
+     * 转换为BigDecimal<br>
+     * 如果给定的值为空,或者转换失败,返回默认值<br>
+     * 转换失败不会报错
+     * 
+     * @param value
+     *            被转换的值
+     * @return 结果
+     */
+    public static BigDecimal toBigDecimal(Object value) {
+        return toBigDecimal(value, null);
+    }
+
+    /**
+     * 将对象转为字符串<br>
+     * 1、Byte数组和ByteBuffer会被转换为对应字符串的数组 2、对象数组会调用Arrays.toString方法
+     * 
+     * @param obj
+     *            对象
+     * @return 字符串
+     */
+    public static String utf8Str(Object obj) {
+        return str(obj, CharsetKit.CHARSET_UTF_8);
+    }
+
+    /**
+     * 将对象转为字符串<br>
+     * 1、Byte数组和ByteBuffer会被转换为对应字符串的数组 2、对象数组会调用Arrays.toString方法
+     * 
+     * @param obj
+     *            对象
+     * @param charsetName
+     *            字符集
+     * @return 字符串
+     */
+    public static String str(Object obj, String charsetName) {
+        return str(obj, Charset.forName(charsetName));
+    }
+
+    /**
+     * 将对象转为字符串<br>
+     * 1、Byte数组和ByteBuffer会被转换为对应字符串的数组 2、对象数组会调用Arrays.toString方法
+     * 
+     * @param obj
+     *            对象
+     * @param charset
+     *            字符集
+     * @return 字符串
+     */
+    public static String str(Object obj, Charset charset) {
+        if (null == obj) {
+            return null;
+        }
+
+        if (obj instanceof String) {
+            return (String)obj;
+        } else if (obj instanceof byte[] || obj instanceof Byte[]) {
+            return str(obj, charset);
+        } else if (obj instanceof ByteBuffer) {
+            return str((ByteBuffer)obj, charset);
+        }
+        return obj.toString();
+    }
+
+    /**
+     * 将byte数组转为字符串
+     * 
+     * @param bytes
+     *            byte数组
+     * @param charset
+     *            字符集
+     * @return 字符串
+     */
+    public static String str(byte[] bytes, String charset) {
+        return str(bytes, StringUtils.isEmpty(charset) ? Charset.defaultCharset() : Charset.forName(charset));
+    }
+
+    /**
+     * 解码字节码
+     * 
+     * @param data
+     *            字符串
+     * @param charset
+     *            字符集,如果此字段为空,则解码的结果取决于平台
+     * @return 解码后的字符串
+     */
+    public static String str(byte[] data, Charset charset) {
+        if (data == null) {
+            return null;
+        }
+
+        if (null == charset) {
+            return new String(data);
+        }
+        return new String(data, charset);
+    }
+
+    /**
+     * 将编码的byteBuffer数据转换为字符串
+     * 
+     * @param data
+     *            数据
+     * @param charset
+     *            字符集,如果为空使用当前系统字符集
+     * @return 字符串
+     */
+    public static String str(ByteBuffer data, String charset) {
+        if (data == null) {
+            return null;
+        }
+
+        return str(data, Charset.forName(charset));
+    }
+
+    /**
+     * 将编码的byteBuffer数据转换为字符串
+     * 
+     * @param data
+     *            数据
+     * @param charset
+     *            字符集,如果为空使用当前系统字符集
+     * @return 字符串
+     */
+    public static String str(ByteBuffer data, Charset charset) {
+        if (null == charset) {
+            charset = Charset.defaultCharset();
+        }
+        return charset.decode(data).toString();
+    }
+
+    // ----------------------------------------------------------------------- 全角半角转换
+    /**
+     * 半角转全角
+     * 
+     * @param input
+     *            String.
+     * @return 全角字符串.
+     */
+    public static String toSBC(String input) {
+        return toSBC(input, null);
+    }
+
+    /**
+     * 半角转全角
+     * 
+     * @param input
+     *            String
+     * @param notConvertSet
+     *            不替换的字符集合
+     * @return 全角字符串.
+     */
+    public static String toSBC(String input, Set<Character> notConvertSet) {
+        char[] c = input.toCharArray();
+        for (int i = 0; i < c.length; i++) {
+            if (null != notConvertSet && notConvertSet.contains(c[i])) {
+                // 跳过不替换的字符
+                continue;
+            }
+
+            if (c[i] == ' ') {
+                c[i] = '\u3000';
+            } else if (c[i] < '\177') {
+                c[i] = (char)(c[i] + 65248);
+
+            }
+        }
+        return new String(c);
+    }
+
+    /**
+     * 全角转半角
+     * 
+     * @param input
+     *            String.
+     * @return 半角字符串
+     */
+    public static String toDBC(String input) {
+        return toDBC(input, null);
+    }
+
+    /**
+     * 替换全角为半角
+     * 
+     * @param text
+     *            文本
+     * @param notConvertSet
+     *            不替换的字符集合
+     * @return 替换后的字符
+     */
+    public static String toDBC(String text, Set<Character> notConvertSet) {
+        char[] c = text.toCharArray();
+        for (int i = 0; i < c.length; i++) {
+            if (null != notConvertSet && notConvertSet.contains(c[i])) {
+                // 跳过不替换的字符
+                continue;
+            }
+
+            if (c[i] == '\u3000') {
+                c[i] = ' ';
+            } else if (c[i] > '\uFF00' && c[i] < '\uFF5F') {
+                c[i] = (char)(c[i] - 65248);
+            }
+        }
+        String returnString = new String(c);
+
+        return returnString;
+    }
+
+    /**
+     * 数字金额大写转换 先写个完整的然后将如零拾替换成零
+     * 
+     * @param n
+     *            数字
+     * @return 中文大写数字
+     */
+    public static String digitUppercase(double n) {
+        String[] fraction = {"角", "分"};
+        String[] digit = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
+        String[][] unit = {{"元", "万", "亿"}, {"", "拾", "佰", "仟"}};
+
+        String head = n < 0 ? "负" : "";
+        n = Math.abs(n);
+
+        String s = "";
+        for (int i = 0; i < fraction.length; i++) {
+            s += (digit[(int)(Math.floor(n * 10 * Math.pow(10, i)) % 10)] + fraction[i]).replaceAll("(零.)+", "");
+        }
+        if (s.length() < 1) {
+            s = "整";
+        }
+        int integerPart = (int)Math.floor(n);
+
+        for (int i = 0; i < unit[0].length && integerPart > 0; i++) {
+            String p = "";
+            for (int j = 0; j < unit[1].length && n > 0; j++) {
+                p = digit[integerPart % 10] + unit[1][j] + p;
+                integerPart = integerPart / 10;
+            }
+            s = p.replaceAll("(零.)*零$", "").replaceAll("^$", "零") + unit[0][i] + s;
+        }
+        return head
+            + s.replaceAll("(零.)*零元", "元").replaceFirst("(零.)+", "").replaceAll("(零.)+", "零").replaceAll("^整$", "零元整");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/CopyUtil.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/CopyUtil.java
new file mode 100644
index 0000000..a2c41ed
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/CopyUtil.java
@@ -0,0 +1,299 @@
+package com.panzhihua.common.utlis;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
+import org.springframework.util.StringUtils;
+
+import com.alibaba.fastjson.JSONObject;
+import com.esotericsoftware.reflectasm.MethodAccess;
+
+import cn.hutool.core.bean.BeanUtil;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 通用情况拷贝
+ *
+ * @author tkq
+ * @date 14:36 2019/4/10
+ */
+@Slf4j
+public class CopyUtil {
+    private static final Logger logger = LoggerFactory.getLogger(CopyUtil.class);
+
+    @SuppressWarnings("rawtypes")
+    private static Map<Class, MethodAccess> methodMap = new ConcurrentHashMap<>();
+
+    private static Map<String, Integer> methodIndexMap = new ConcurrentHashMap<>();
+
+    @SuppressWarnings("rawtypes")
+    private static Map<Class, List<String>> fieldMap = new ConcurrentHashMap<>();
+
+    private CopyUtil() {
+
+    }
+
+    /**
+     * <p>
+     * 对数组进行拷贝
+     * </p>
+     *
+     * @author tkq
+     * @date 2018年12月19日
+     */
+    public static <T> List<T> copyList(List<?> desc, Class<T> targetClass) {
+        if (desc == null) {
+            return new ArrayList<>();
+        }
+        if (desc.isEmpty()) {
+            return new ArrayList<>();
+        }
+        // 创建返回对象
+        List<T> targetList = new ArrayList<>(desc.size());
+        for (Object des : desc) {
+            if (null != des) {
+                try {
+                    T newInstance = targetClass.newInstance();
+                    copyProperties(des, newInstance);
+                    targetList.add(newInstance);
+                } catch (InstantiationException | IllegalAccessException e) {
+                    logger.error(e.getMessage(), e);
+                }
+            }
+        }
+        return targetList;
+    }
+
+    /**
+     * <p>
+     * 对数组进行拷贝
+     * </p>
+     *
+     * @author manailin
+     * @date 2018年12月19日
+     */
+    public static <T> List<T> beanCopyList(List<?> desc, Class<T> targetClass) {
+        if (desc == null) {
+            return new ArrayList<>();
+        }
+        if (desc.isEmpty()) {
+            return new ArrayList<>();
+        }
+        // 创建返回对象
+        List<T> targetList = new ArrayList<>(desc.size());
+        for (Object des : desc) {
+            if (null != des) {
+                try {
+                    T newInstance = targetClass.newInstance();
+                    BeanUtil.copyProperties(des, newInstance);
+                    targetList.add(newInstance);
+                } catch (InstantiationException | IllegalAccessException e) {
+                    logger.error(e.getMessage(), e);
+                }
+            }
+        }
+        return targetList;
+    }
+
+    /**
+     * @Title:
+     * @Description: 根据目标对象类型进行拷贝
+     * @author tkq
+     * @date:2019/1/2
+     * @Copyright: 2018 All rights reserved. 注意:禁止外泄以及用于其他的商业目
+     */
+    public static <T> T copyPropertiesByClass(Object desc, Class<T> targetClass) {
+        if (desc != null) {
+            try {
+                T newInstance = targetClass.newInstance();
+                copyProperties(desc, newInstance);
+                return newInstance;
+            } catch (Exception e) {
+                logger.error(e.getMessage(), e);
+            }
+        }
+        return null;
+    }
+
+    /**
+     * 进行复制方法
+     *
+     * @param dataSource
+     *            源目标对象
+     * @param target
+     *            目标对象
+     * @author tkq
+     * @date 14:37 2019-11-13
+     */
+    public static void copyProperties(Object dataSource, Object target) {
+        if (target == null) {
+            return;
+        }
+        if (dataSource == null) {
+            return;
+        }
+        MethodAccess descMethodAccess = methodMap.get(target.getClass());
+        if (descMethodAccess == null) {
+            descMethodAccess = cache(target);
+        }
+        MethodAccess orgiMethodAccess = methodMap.get(dataSource.getClass());
+        if (orgiMethodAccess == null) {
+            orgiMethodAccess = cache(dataSource);
+        }
+
+        List<String> fieldList = fieldMap.get(dataSource.getClass());
+        for (String field : fieldList) {
+            String getKey = dataSource.getClass().getName() + "." + "get" + field;
+            String setkey = target.getClass().getName() + "." + "set" + field;
+            Integer setIndex = methodIndexMap.get(setkey);
+            if (setIndex != null) {
+                int getIndex = methodIndexMap.get(getKey);
+                // 参数一需要反射的对象
+                // 参数二class.getDeclaredMethods 对应方法的index
+                // 参数对三象集合
+                try {
+                    descMethodAccess.invoke(target, setIndex.intValue(), orgiMethodAccess.invoke(dataSource, getIndex));
+                } catch (Exception e) {
+                    log.info("field:" + field);
+                    throw e;
+                }
+            }
+        }
+    }
+
+    /**
+     * 单例模式
+     *
+     * @param object
+     *            实体对象
+     * @return MethodAccess
+     * @author tkq
+     * @date 14:36 2019/4/10
+     */
+    private static MethodAccess cache(Object object) {
+        Class<?> name = object.getClass();
+        synchronized (name) {
+            MethodAccess methodAccess = MethodAccess.get(name);
+            Class<?> className = object.getClass();
+            Set<Field> fields = new HashSet<>();
+            for (; className != Object.class; className = className.getSuperclass()) {
+                fields.addAll(Arrays.asList(className.getDeclaredFields()));
+            }
+            List<String> fieldList = new ArrayList<>(fields.size());
+            for (Field field : fields) {
+                // 是否是私有的,是否是静态的
+                if (Modifier.isPrivate(field.getModifiers()) && !Modifier.isStatic(field.getModifiers())) {
+                    // 非公共私有变量
+                    // 获取属性名称
+                    String fieldName = StringUtils.capitalize(field.getName());
+                    // 获取get方法的下标
+                    int getIndex = methodAccess.getIndex("get" + fieldName);
+                    // 获取set方法的下标
+                    int setIndex = methodAccess.getIndex("set" + fieldName);
+                    // 将类名get方法名,方法下标注册到map中
+                    methodIndexMap.put(object.getClass().getName() + "." + "get" + fieldName, getIndex);
+                    // 将类名set方法名,方法下标注册到map中
+                    methodIndexMap.put(object.getClass().getName() + "." + "set" + fieldName, setIndex);
+                    // 将属性名称放入集合里
+                    fieldList.add(fieldName);
+                }
+            }
+            // 将类名,属性名称注册到map中
+            fieldMap.put(name, fieldList);
+            methodMap.put(name, methodAccess);
+            return methodAccess;
+        }
+    }
+
+    /**
+     * @description 复制属性
+     * @param source
+     *            源数据
+     * @param targetClass
+     *            目标对象类型
+     * @return
+     * @author weifei
+     * @date 2020/8/20 10:38
+     */
+    public static <T, K> K copyProperties(T source, Class<K> targetClass) {
+        if (source == null || targetClass == null) {
+            return null;
+        }
+        // 创建对象
+        try {
+            K k = targetClass.newInstance();
+            // 复制对象
+            BeanUtils.copyProperties(source, k);
+            return k;
+        } catch (Exception e) {
+            throw new RuntimeException(e.getMessage());
+        }
+    }
+
+    /**
+     * @description 复制属性
+     * @param source
+     *            源数据
+     * @param targetClass
+     *            目标对象类型
+     * @return
+     * @author weifei
+     * @date 2020/12/16 10:12
+     */
+    public static <T, K> List<K> copyProperties(List<T> source, Class<K> targetClass) {
+        if (source == null || targetClass == null) {
+            return null;
+        }
+        List<K> returnValue = new ArrayList<>();
+        try {
+            source.forEach(s -> {
+                K k = copyProperties(s, targetClass);
+                if (k != null) {
+                    returnValue.add(k);
+                }
+            });
+        } catch (Exception e) {
+            throw new RuntimeException(e.getMessage());
+        }
+        return returnValue;
+    }
+
+    /**
+     * @description 深度复制对象
+     * @param source
+     *            元数据
+     * @param targetClass
+     *            目标对象类型
+     * @return
+     * @author weifei
+     * @date 2021/3/1 14:21
+     */
+    public static <T, K> K deepCopyObject(T source, Class<K> targetClass) {
+        if (source == null || targetClass == null) {
+            return null;
+        }
+        return JSONObject.parseObject(JSONObject.toJSONBytes(source), targetClass);
+    }
+
+    /**
+     * @description 深度复制list对象
+     * @param source
+     *            元数据
+     * @param targetClass
+     *            目标对象类型
+     * @return
+     * @author weifei
+     * @date 2021/3/1 14:26
+     */
+    public static <T, K> List<K> deepCopyListObject(List<T> source, Class<K> targetClass) {
+        if (source == null || targetClass == null) {
+            return null;
+        }
+        return JSONObject.parseArray(JSONObject.toJSONString(source), targetClass);
+    }
+}
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
new file mode 100644
index 0000000..71bfc6d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/DateUtils.java
@@ -0,0 +1,1222 @@
+package com.panzhihua.common.utlis;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.time.*;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
+
+import cn.hutool.core.date.DateUnit;
+import cn.hutool.core.date.DateUtil;
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+public class DateUtils {
+
+    public static DateTimeFormatter format_ymdhms = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+    public static DateTimeFormatter format_ymd = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+    public static DateTimeFormatter format_ymdhms_string = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
+    public static DateTimeFormatter format_ymdhms_yyyyMMddmmHHssSSS = DateTimeFormatter.ofPattern("yyyyMMddmmHHssSSS");
+    public static DateTimeFormatter format_ymdhms_no_signal = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
+    public static SimpleDateFormat yyyyMMdd_format = new SimpleDateFormat("yyyy-MM-dd");
+    public static SimpleDateFormat yyyy_MM_dd_format = new SimpleDateFormat("yyyy/MM/ddHH:mm:ss");
+    public static SimpleDateFormat ymdhms_format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+    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");
+    public static SimpleDateFormat format_yyyy = new SimpleDateFormat("yyyy");
+    public static SimpleDateFormat format_yyyyMMddHHmmss = new SimpleDateFormat("yyyyMMddHHmmss");
+    private static DateTimeFormatter format_ymdhmssss = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
+    private static DateTimeFormatter format_ymds = DateTimeFormatter.ofPattern("yyyyMMdd");
+    private static DateTimeFormatter format_yms = DateTimeFormatter.ofPattern("yyyyMM");
+    private static DateTimeFormatter format_y = DateTimeFormatter.ofPattern("yyyy");
+
+    /**
+     * 将日期对象格式化成指定的字符串格式
+     *
+     * @param date
+     *            日期对象
+     * @param formatString
+     *            格式化字符串
+     * @return String
+     */
+    public static String getDateFormatString(Date date, String formatString) {
+
+        String dateString = "";
+        SimpleDateFormat format = new SimpleDateFormat(formatString);
+        if (date != null) {
+            dateString = format.format(date);
+        }
+        return dateString;
+    }
+
+    /**
+     * 字符串转date
+     *
+     * @param date
+     *            时间戳
+     * @param format
+     *            format
+     * @return 时间
+     */
+    public static Date stringToDate(String date, SimpleDateFormat format) {
+        try {
+            if (StringUtils.isBlank(date)) {
+                return null;
+            }
+            return format.parse(date);
+        } catch (ParseException e) {
+            log.error(e.getMessage(), e);
+        }
+        return null;
+    }
+
+    /**
+     * 字符串转date
+     *
+     * @param date
+     *            时间戳
+     * @return 时间
+     */
+    public static Date stringToDateStandard(String date) {
+        SimpleDateFormat format = ymdhms_format;
+        if (StringUtils.isNotBlank(date)) {
+            if (date.split("-").length == 3) {
+                if (date.split(":").length != 3) {
+                    format = yyyyMMdd_format;
+                }
+            } else if (date.split("-").length == 2) {
+                format = new SimpleDateFormat("yyyy-MM");
+            }
+            try {
+                return format.parse(date);
+            } catch (ParseException e) {
+                log.error(e.getMessage(), e);
+            }
+        }
+        return null;
+    }
+
+    /**
+     * 字符串转date
+     *
+     * @param date
+     *            时间戳
+     * @return 时间
+     */
+    public static Date stringToDateStandardByYYYY_MM_dd(String date) {
+        SimpleDateFormat format = yyyy_MM_dd_format;
+        if (StringUtils.isNotBlank(date)) {
+            try {
+                return format.parse(date);
+            } catch (ParseException e) {
+                log.error(e.getMessage(), e);
+            }
+        }
+        return null;
+    }
+
+    /**
+     * 获取当前时间
+     *
+     * @return
+     * @throws Exception
+     */
+    public static LocalDateTime getCurrentDate() {
+        LocalDateTime now = LocalDateTime.now();
+        return now;
+    }
+
+    /**
+     * 返回当前事件的时间戳
+     *
+     * @return
+     */
+    public static Long getCurrentDateTimeStamp() {
+        return LocalDateTime.now().toInstant(ZoneOffset.of("+8")).toEpochMilli();
+    }
+
+    /**
+     * 获取当前时间字符串,格式为yyyy-MM-dd HH:mm:ss
+     *
+     * @return
+     */
+    public static String getCurrentDateStr() {
+        String nowtime = getCurrentDate().format(format_ymdhms);
+        return nowtime;
+    }
+
+    public static String getCurrentDateymd() {
+        String nowtime = getCurrentDate().format(format_ymdhms_string);
+        return nowtime;
+    }
+
+    public static String getCurrentDateyymd() {
+        String nowtime = getCurrentDate().format(format_ymd_String);
+        return nowtime;
+    }
+
+    /**
+     * 获取当前时间字符串,格式为yyyyMMdd
+     *
+     * @return
+     */
+    public static String getCurrentDateString() {
+        String nowtime = getCurrentDate().format(format_ymds);
+        return nowtime;
+    }
+
+    /**
+     * 获取当前时间字符串,格式为yyyy-MM-dd
+     *
+     * @return
+     */
+    public static String getCurrentDateStrymd() {
+        String nowtime = getCurrentDate().format(format_ymd);
+        return nowtime;
+    }
+
+    public static String getCurrentDateStr_MS() {
+        String nowtime = getCurrentDate().format(format_ymdhmssss);
+        return nowtime;
+    }
+
+    /**
+     * 获取当前时间long值
+     *
+     * @return
+     */
+    public static long getCurrentDataLong() {
+        return new Date().getTime();
+    }
+
+    /**
+     * 获取当前时间
+     *
+     * @param format
+     * @return
+     * @throws Exception
+     */
+    public static Date getCurrentDate(SimpleDateFormat format) {
+        String tempDate = format.format(new Date());
+        try {
+            return format.parse(tempDate);
+        } catch (ParseException e) {
+            log.error(e.getMessage(), e);
+        }
+        return null;
+    }
+
+    /**
+     * @param date
+     * @param newFormat
+     * @return
+     * @throws Exception
+     */
+    public static Date getDate(Date date, SimpleDateFormat newFormat) {
+        String tempDate = newFormat.format(date);
+        try {
+            return newFormat.parse(tempDate);
+        } catch (ParseException e) {
+            log.error(e.getMessage(), e);
+        }
+        return null;
+    }
+
+    public static String format(Date date, SimpleDateFormat format) {
+        if (null == date) {
+            return "";
+        }
+        return format.format(date);
+    }
+
+    /**
+     * 将给定的时间秒转换为中文格式的时分秒
+     *
+     * @param second
+     * @return
+     */
+    public static String formatSecond_ZH_HMS(Integer second) {
+        String result = "0秒";
+        if (null != second) {
+            int hours = second / (60 * 60);
+            int minutes = second / 60 - hours * 60;
+            int seconds = second - minutes * 60 - hours * 60 * 60;
+
+            String format;
+            Object[] array;
+
+            if (hours > 0) {
+                format = "%1$,d时%2$,d分%3$,d秒";
+                array = new Object[] {hours, minutes, seconds};
+            } else if (minutes > 0) {
+                format = "%1$,d分%2$,d秒";
+                array = new Object[] {minutes, seconds};
+            } else {
+                format = "%1$,d秒";
+                array = new Object[] {seconds};
+            }
+            result = String.format(format, array);
+        }
+        return result;
+    }
+
+    /**
+     * 对日期进行加法操作
+     *
+     * @param date
+     * @param days
+     * @return
+     */
+    public static Date addDay(Date date, Integer days) {
+        if (null != date) {
+            Calendar cal = Calendar.getInstance();
+            cal.setTime(date);
+            cal.add(Calendar.DATE, days);
+            return cal.getTime();
+        }
+        return null;
+    }
+
+    /**
+     * 对日期进行加法操作
+     *
+     * @param date
+     * @param month
+     * @return
+     */
+    public static Date addMonth(Date date, Integer month) {
+        if (null != date) {
+            Calendar cal = Calendar.getInstance();
+            cal.setTime(date);
+            cal.add(Calendar.MONTH, month);
+            return cal.getTime();
+        }
+        return null;
+    }
+
+    /**
+     * 对日期进行加法操作
+     *
+     * @param date
+     * @param hours
+     * @return
+     */
+    public static Date addHours(Date date, Integer hours) {
+        if (null != date) {
+            Calendar cal = Calendar.getInstance();
+            cal.setTime(date);
+            cal.add(Calendar.HOUR_OF_DAY, hours);
+            return cal.getTime();
+        }
+        return null;
+    }
+
+    /**
+     * 对日期的分钟进行加法操作
+     *
+     * @param date
+     * @param minutes
+     * @return
+     */
+    public static Date addMinutes(Date date, Integer minutes) {
+        if (null != date) {
+            Calendar cal = Calendar.getInstance();
+            cal.setTime(date);
+            cal.add(Calendar.MINUTE, minutes);
+            return cal.getTime();
+        }
+        return null;
+    }
+
+    /**
+     * 比较两个日期的大小
+     *
+     * @param date1
+     * @param date2
+     * @return 日期相等,返回0;前者大,返回1;后者大,返回-1;
+     */
+    public static int dateCompare(Date date1, Date date2) {
+        Calendar c1 = Calendar.getInstance();
+        c1.setTime(date1);
+
+        Calendar c2 = Calendar.getInstance();
+        c2.setTime(date2);
+
+        return c1.compareTo(c2);
+    }
+
+    /**
+     * 判断当前日期是否在指定日期区域内(包含起止日期) [startDate,endDate]
+     * <p/>
+     * [null,null] --> return 1;
+     *
+     * @param now
+     * @param startDate
+     * @param endDate
+     * @return -1:超出并小于startDate;0:在范围内;1:超出并大于endDate;
+     */
+    public static int validateDate(Date now, Date startDate, Date endDate) {
+        if (null == startDate && null == endDate) {
+            return 0;
+        }
+        if (null == startDate) {
+            // 当前时间大于endDate
+            if (dateCompare(now, endDate) == 1) {
+                return 1;
+            } else {
+                return 0;
+            }
+        } else {
+            if (null == endDate) {
+                // 当前时间小于startDate
+                if (dateCompare(startDate, now) == 1) {
+                    return -1;
+                } else {
+                    return 0;
+                }
+            } else {
+                if (dateCompare(startDate, now) == 1) {
+                    return -1;
+                } else if (dateCompare(now, endDate) == 1) {
+                    return 1;
+                } else {
+                    return 0;
+                }
+            }
+        }
+    }
+
+    /**
+     * 计算两个日期先差多少秒
+     *
+     * @param pre
+     *            前一个日期
+     * @param after
+     *            后一个日期
+     * @return
+     */
+    public static long calTimeDifference(Date pre, Date after) {
+        return (after.getTime() - pre.getTime()) / 1000;
+    }
+
+    /**
+     * 计算两个时间相差的天数
+     *
+     * @param stardate
+     * @param enddate
+     * @return
+     */
+    public static int getHour(Date stardate, Date enddate) {
+        long nd = 1000 * 24 * 60 * 60;
+        long nh = 1000 * 60 * 60;
+        long nm = 1000 * 60;
+        long diff = enddate.getTime() - stardate.getTime();
+
+        long day = diff / nd;
+
+        long hour = diff / nh;
+
+        long min = diff / nm;
+
+        return (int)hour;
+    }
+
+    /**
+     * 结束时间与当前时间计算相差的月数
+     *
+     * @param enddate
+     * @return
+     */
+    public static int getMonthSpace(String enddate, DateTimeFormatter format) {
+        LocalDate formatted = LocalDate.parse(enddate, format);
+        LocalDate today = LocalDate.now();
+        Period per = Period.between(today, formatted);
+        if (per.getYears() == 0) {
+            return per.getMonths();
+        } else if (per.getYears() > 0) {
+            return (per.getYears() * 12) + per.getMonths();
+        }
+
+        return (per.getYears() * 12) + per.getMonths();
+    }
+
+    /**
+     * 获取某个时间段之前的时间点
+     *
+     * @return
+     */
+    public static String getSomeTimeStapStr(String sign) {
+        LocalDateTime beginDateTime = null;
+        if (sign.equals("day")) {// 一天前时间
+            beginDateTime = LocalDateTime.now().minusDays(1L);
+        } else if (sign.equals("week")) {
+            beginDateTime = LocalDateTime.now().minusWeeks(1L);
+        } else if (sign.equals("month")) {
+            beginDateTime = LocalDateTime.now().minusMonths(1L);
+        } else if (sign.equals("year")) {
+            beginDateTime = LocalDateTime.now().minusYears(1L);
+        }
+        String beginTime = beginDateTime.format(format_ymdhms);
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        try {
+            long timestap = sdf.parse(beginTime).getTime();
+            beginTime = timestap + "";
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return beginTime;
+    }
+
+    public static String getSomeTimeDateStr(String sign) {
+        String beginTime = "";
+        LocalDateTime beginDateTime = null;
+        if (sign.equals("day")) {// 一天前时间
+            beginDateTime = LocalDateTime.now().minusDays(1L);
+        } else if (sign.equals("week")) {
+            beginDateTime = LocalDateTime.now().minusWeeks(1L);
+        } else if (sign.equals("month")) {
+            beginDateTime = LocalDateTime.now().minusMonths(1L);
+        } else if (sign.equals("year")) {
+            beginDateTime = LocalDateTime.now().minusYears(1L);
+        }
+        if (beginDateTime != null) {
+            beginTime = beginDateTime.format(format_ymdhms);
+        }
+        return beginTime;
+    }
+
+    /**
+     * 获取失效时间点(在什么时间失效)
+     *
+     * @param minutes
+     *            有效分钟数
+     * @return
+     */
+    public static LocalDateTime getInvalidLocalDateTime(Long minutes) {
+        return LocalDateTime.now().minusMinutes(minutes);
+    }
+
+    /**
+     * 获取当前年份
+     *
+     * @return
+     */
+    public static String getCurrentYear() {
+        Calendar instance = Calendar.getInstance();
+        return instance.get(Calendar.YEAR) + "";
+    }
+
+    /**
+     * 获取当前月份
+     *
+     * @return
+     */
+    public static String getCurrentMonth() {
+        Calendar instance = Calendar.getInstance();
+        int month = instance.get(Calendar.MONTH);
+        String result;
+        if (month < 10) {
+            result = "0" + month;
+        } else {
+            result = month + "";
+        }
+        return result;
+    }
+
+    /**
+     * 获取无符号的当前时间
+     *
+     * @return
+     */
+    public static String getCurrentDateStrNoSignal() {
+        return getCurrentDate().format(format_ymdhms_no_signal);
+    }
+
+    /**
+     * 获取前几个小时的时间
+     *
+     * @param hours
+     * @return
+     */
+    public static String getNextHourDateStrNoSignal(long hours) {
+        return LocalDateTime.now().plusHours(hours).format(format_ymdhms_no_signal);
+    }
+
+    public static Date localDateTimeToDate(LocalDateTime localDateTime) {
+        ZoneId zone = ZoneId.systemDefault();
+        Instant instant = localDateTime.atZone(zone).toInstant();
+        return Date.from(instant);
+    }
+
+    /**
+     * 小时取整
+     *
+     * @param date
+     * @param hour
+     * @return
+     */
+    public static Date integralHour(Date date, Integer hour) {
+        if (date == null || hour == null) {
+            return null;
+        }
+        long l = date.getTime() - 1;
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:00:00");
+        try {
+            Date parse = sdf.parse(sdf.format(new Date(l)));
+            return addHours(parse, hour);
+        } catch (ParseException e) {
+            return null;
+        }
+    }
+
+    /**
+     * 分钟取整 以十分钟为单位 ,去除尾端,加上 参数 46->40+minutes*10
+     *
+     * @param date
+     * @param minutes
+     * @return
+     */
+    public static Date integral10Min(Date date, Integer minutes) {
+        if (date == null || minutes == null) {
+            return null;
+        }
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(date);
+        int i = cal.get(Calendar.MINUTE);// 获取分钟
+        if (i % 10 == 0) {
+            minutes--;
+        }
+        minutes = minutes * 10 - i % 10;
+        long l = date.getTime() - 1;
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:00");
+        try {
+            Date parse = sdf.parse(sdf.format(new Date(l)));
+            return addMinutes(parse, minutes);
+        } catch (ParseException e) {
+            return null;
+        }
+    }
+
+    /**
+     * 天数取整
+     *
+     * @param date
+     * @param day
+     * @return
+     */
+    public static Date integralDay(Date date, Integer day) {
+        if (date == null || day == null) {
+            return null;
+        }
+        long l = date.getTime() - 1;
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
+        try {
+            Date parse = sdf.parse(sdf.format(new Date(l)));
+            return addDay(parse, day);
+        } catch (ParseException e) {
+            return null;
+        }
+    }
+
+    /**
+     * 日期相加减
+     *
+     * @param time
+     *            时间字符串 yyyy-MM-dd HH:mm:ss
+     * @param num
+     *            加的数,-num就是减去
+     * @return 减去相应的数量的年的日期
+     * @throws ParseException
+     */
+    public static Date yearAddNum(Date time, Integer num) {
+        // SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        // Date date = format.parse(time);
+
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(time);
+        calendar.add(Calendar.YEAR, num);
+        Date newTime = calendar.getTime();
+        return newTime;
+    }
+
+    public static boolean isValidDate(String str) {
+        boolean convertSuccess = true;
+        SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd");
+        try {
+            format.setLenient(false);
+            format.parse(str);
+        } catch (ParseException e) {
+            convertSuccess = false;
+        }
+        return convertSuccess;
+    }
+
+    public static Date toValidDate(String str) {
+        Date date = null;
+        SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd");
+        try {
+            format.setLenient(false);
+            date = format.parse(str);
+        } catch (ParseException e) {
+            log.error("党员导入日期格式错误");
+            date = new Date();
+        }
+        return date;
+    }
+
+    /**
+     * 将日期对象格式化成yyyy-MM-dd格式的字符串
+     *
+     * @param date
+     *            日期对象
+     * @return String
+     */
+    public static String getDateStringYMD(Date date) {
+
+        String dateString = "";
+        if (date != null) {
+            dateString = yyyyMMdd_format.format(date);
+        }
+        return dateString;
+    }
+
+    /**
+     * 获取当前月第一天
+     *
+     * @return
+     */
+    public static Date getFirstDayOfMonth() {
+        Calendar cal = Calendar.getInstance();
+        cal.add(Calendar.MONTH, 0);
+        int actualMinimum = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), actualMinimum, 00, 00, 00);
+        return cal.getTime();
+    }
+
+    /**
+     * 获取当前年月的第一天时间
+     *
+     * @param year
+     *            年份
+     * @param month
+     *            月份
+     * @return 时间
+     */
+    public static Date getYearMonthStart(Integer year, Integer month) {
+        Calendar cal = Calendar.getInstance();
+        // 设置年份
+        cal.set(Calendar.YEAR, year);
+        // 设置月份
+        cal.set(Calendar.MONTH, month - 1);
+        // 获取某月最小天数
+        int firstDay = cal.getMinimum(Calendar.DATE);
+        // 设置日历中月份的最小天数
+        cal.set(Calendar.DAY_OF_MONTH, firstDay);
+        int actualMinimum = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), actualMinimum, 00, 00, 00);
+        return cal.getTime();
+    }
+
+    /**
+     * 获取当前年月的最后一天时间
+     *
+     * @param year
+     *            年份
+     * @param month
+     *            月份
+     * @return 时间
+     */
+    public static Date getYearMonthEnd(Integer year, Integer month) {
+        Calendar cal = Calendar.getInstance();
+        // 设置年份
+        cal.set(Calendar.YEAR, year);
+        // 设置月份
+        cal.set(Calendar.MONTH, month - 1);
+        // 获取某月最大天数
+        int lastDay = cal.getMaximum(Calendar.DATE);
+        // 设置日历中月份的最大天数
+        cal.set(Calendar.DAY_OF_MONTH, lastDay);
+        int actualMinimum = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
+        cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), actualMinimum, 00, 00, 00);
+        return cal.getTime();
+    }
+
+    public static Date getDateM(Date start, int min) {
+        Calendar date1 = Calendar.getInstance();
+        date1.setTime(start);
+        date1.add(Calendar.MONTH, min);
+        return date1.getTime();
+    }
+
+    public static Date parseDateYM(String str) {
+        try {
+            return yyyyMM_format.parse(str);
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    public static int getMonth(Date date) {
+        Calendar instance = Calendar.getInstance();
+        instance.setTime(date);
+        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);
+        Calendar date2 = Calendar.getInstance();
+        date2.setTime(end);
+        return date1.before(date2);
+    }
+
+    /**
+     * date2比date1多的天数
+     *
+     * @param date1
+     * @param date2
+     * @return
+     */
+    public static int differentDays(Date date1, Date date2) {
+        Calendar cal1 = Calendar.getInstance();
+        cal1.setTime(date1);
+
+        Calendar cal2 = Calendar.getInstance();
+        cal2.setTime(date2);
+        int day1 = cal1.get(Calendar.DAY_OF_YEAR);
+        int day2 = cal2.get(Calendar.DAY_OF_YEAR);
+
+        int year1 = cal1.get(Calendar.YEAR);
+        int year2 = cal2.get(Calendar.YEAR);
+        if (year1 != year2) // 同一年
+        {
+            int timeDistance = 0;
+            for (int i = year1; i < year2; i++) {
+                if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) // 闰年
+                {
+                    timeDistance += 366;
+                } else // 不是闰年
+                {
+                    timeDistance += 365;
+                }
+            }
+
+            return timeDistance + (day2 - day1);
+        } else // 不同年
+        {
+            // System.out.println("判断day2 - day1 : " + (day2-day1));
+            return day2 - day1;
+        }
+    }
+
+    /**
+     * 计算剩余天数,不足一天按一天算
+     * @param expireDate
+     * @return
+     */
+    public static int retrieveRemainingDays(Date expireDate) {
+        Date nowDate = new Date();
+        Calendar startDate = Calendar.getInstance();
+        startDate.setTime(nowDate);
+        Calendar endDate = Calendar.getInstance();
+        endDate.setTime(expireDate);
+        Calendar date = (Calendar) startDate.clone();
+        int daysBetween = 0;
+        while (date.before(endDate)) {
+            date.add(Calendar.DAY_OF_MONTH, 1);
+            daysBetween++;
+        }
+        return daysBetween;
+    }
+
+    /**
+     * 获取当前月第一天
+     *
+     * @return
+     */
+    public static String getFirstDayOfMonthString() {
+        Calendar calendar = Calendar.getInstance();
+
+        calendar.add(Calendar.MONTH, 0);
+
+        calendar.set(Calendar.DAY_OF_MONTH, 1);
+        // 格式化日期
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        return sdf.format(calendar.getTime()) + " 00:00:00";
+    }
+
+    /**
+     * 获取当前月最后一天
+     *
+     * @return
+     */
+    public static String getLastDayOfMonthString() {
+        Calendar calendar = Calendar.getInstance();
+
+        calendar.add(Calendar.MONTH, 1);
+
+        calendar.set(Calendar.DAY_OF_MONTH, 0);
+        // 格式化日期
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        return sdf.format(calendar.getTime()) + " 23:59:59";
+    }
+    /**
+     * 获取当前月最后一天
+     *
+     * @return
+     */
+    public static Date getLastDayOfMonth() {
+        Calendar calendar = Calendar.getInstance();
+
+        calendar.add(Calendar.MONTH, 1);
+
+        calendar.set(Calendar.DAY_OF_MONTH, 0);
+        // 格式化日期
+
+        return calendar.getTime();
+    }
+
+    /**
+     * 获取当前时间(年月日)
+     *
+     * @return
+     */
+    public static String getDayOfMonthString() {
+        Calendar today = Calendar.getInstance();
+        today.set(Calendar.HOUR, 0);
+        today.set(Calendar.MINUTE, 0);
+        today.set(Calendar.SECOND, 0);
+        today.set(Calendar.MILLISECOND, 0);
+        // 格式化日期
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        return sdf.format(today.getTime());
+    }
+
+    /**
+     * 日期转周
+     *
+     * @param datetime
+     * @return
+     */
+    public static String dateToWeek(String datetime) {
+        SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
+        String[] weekDays = {"周日", "周一", "周二", "周三", "周四", "周五", "周六"};
+        Calendar cal = Calendar.getInstance(); // 获得一个日历
+        Date datet = null;
+        try {
+            if (StringUtils.isNotEmpty(datetime)) {
+                datet = f.parse(datetime);
+                cal.setTime(datet);
+            }
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        int w = cal.get(Calendar.DAY_OF_WEEK) - 1; // 指示一个周中的某天。
+        if (w < 0)
+            w = 0;
+        return weekDays[w];
+    }
+
+    public static void main(String[] args) throws Exception {
+//        List<String> beforeDays = getBeforeDays(15);
+//        System.out.println(beforeDays);
+        List<String> yearMonths = getYearMonths();
+        System.out.println(yearMonths);
+        List<String> latest12Month = getLatest12Month(LocalDate.now(), 10);
+        System.out.println(latest12Month);
+
+    }
+
+    /**
+     * 获取当前年月字符串
+     * @return  年月字符串
+     */
+    public static String getCurrentDateString_YYYY_MM() {
+        String nowtime = getCurrentDate().format(format_yms);
+        return nowtime;
+    }
+
+    /**
+     * 获取当前年字符串
+     * @return
+     */
+    public static String getCurrentDateString_YYYY() {
+        String nowtime = getCurrentDate().format(format_y);
+        return nowtime;
+    }
+
+    /**
+     * 获取当前年第一天
+     * @return  当前年第一天时间
+     */
+    public static Date getFirstDayOfYear() {
+        Calendar currCal=Calendar.getInstance();
+        int currentYear = currCal.get(Calendar.YEAR);
+        return getYearFirst(currentYear);
+    }
+
+    /**
+     * 获取某年第一天日期
+     * @param year 年份
+     * @return Date
+     */
+    public static Date getYearFirst(int year){
+        Calendar calendar = Calendar.getInstance();
+        calendar.clear();
+        calendar.set(Calendar.YEAR, year);
+        Date currYearFirst = calendar.getTime();
+        return currYearFirst;
+    }
+
+    /**
+     * 获取上月第一天时间
+     * @return  上月第一天时间
+     */
+    public static Date getLastMonthFirst(){
+        // 上月起始
+        Calendar lastMonthFirstDateCal = Calendar.getInstance();
+        lastMonthFirstDateCal.add(Calendar.MONTH,-1);
+        lastMonthFirstDateCal.set(Calendar.DAY_OF_MONTH, 1);
+        String lastMonthFirstTime = yyyyMMdd_format.format(lastMonthFirstDateCal.getTime()) + " 00:00:00";
+        return stringToDateStandard(lastMonthFirstTime);
+    }
+
+    /**
+     * 获取上月最后一天时间
+     * @return  最后一天时间
+     */
+    public static Date getLastMonthEnd(){
+        // 上月末尾
+        Calendar lastMonthEndDateCal = Calendar.getInstance();
+        lastMonthEndDateCal.add(Calendar.MONTH,-1);
+        lastMonthEndDateCal.set(Calendar.DAY_OF_MONTH, lastMonthEndDateCal.getActualMaximum(Calendar.DAY_OF_MONTH));
+        String lastMonthEndTime = yyyyMMdd_format.format(lastMonthEndDateCal.getTime()) + " 23:59:59";
+        return stringToDateStandard(lastMonthEndTime);
+    }
+
+    /**
+     * 获取近20天日期
+     * @return  近20天日期
+     */
+    public static List<Date> getOldDays() {
+        List<Date> dates = new ArrayList<>();
+        Date date = new Date();
+        for (int i = 19; i >= 0; i--) {
+            Date date1 = DateUtils.addDay(date, -i);
+            dates.add(date1);
+        }
+        return dates;
+    }
+
+    /**
+     * 获取上月最后一天时间
+     * @return  上月最后一天时间
+     */
+    public static String getOldMonthLastDay(){
+        Calendar calendar=Calendar.getInstance();
+        int month=calendar.get(Calendar.MONTH);
+        calendar.set(Calendar.MONTH, month-1);
+        calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
+        return format_yyymmdd.format(calendar.getTime());
+    }
+
+    /**
+     * 获取上月第一天时间
+     * @return  上月第一天时间
+     */
+    public static String getOldMonthFirstDay(){
+        Calendar calendar=Calendar.getInstance();
+        calendar.add(Calendar.MONTH, -1);
+        calendar.set(Calendar.DAY_OF_MONTH, 1);
+        return format_yyymmdd.format(calendar.getTime());
+    }
+
+    /**
+     * 获取某年的月份最后一天时间
+     * @param year  年份
+     * @return  月份list
+     */
+    public static List<String> getYearLastMonths(Integer year){
+        List<String> list = new ArrayList<>();
+        list.add(getLastDayOfMonth(year,1));
+        list.add(getLastDayOfMonth(year,2));
+        list.add(getLastDayOfMonth(year,3));
+        list.add(getLastDayOfMonth(year,4));
+        list.add(getLastDayOfMonth(year,5));
+        list.add(getLastDayOfMonth(year,6));
+        list.add(getLastDayOfMonth(year,7));
+        list.add(getLastDayOfMonth(year,8));
+        list.add(getLastDayOfMonth(year,9));
+        list.add(getLastDayOfMonth(year,10));
+        list.add(getLastDayOfMonth(year,11));
+        list.add(getLastDayOfMonth(year,12));
+        return list;
+    }
+
+    /**
+     * 获取某年的月份第一天时间
+     * @param year  年份
+     * @return  月份list
+     */
+    public static List<String> getYearFirstMonths(Integer year){
+        List<String> list = new ArrayList<>();
+        list.add(getFirstDayOfMonth(year,1));
+        list.add(getFirstDayOfMonth(year,2));
+        list.add(getFirstDayOfMonth(year,3));
+        list.add(getFirstDayOfMonth(year,4));
+        list.add(getFirstDayOfMonth(year,5));
+        list.add(getFirstDayOfMonth(year,6));
+        list.add(getFirstDayOfMonth(year,7));
+        list.add(getFirstDayOfMonth(year,8));
+        list.add(getFirstDayOfMonth(year,9));
+        list.add(getFirstDayOfMonth(year,10));
+        list.add(getFirstDayOfMonth(year,11));
+        list.add(getFirstDayOfMonth(year,12));
+        return list;
+    }
+
+    /**
+     * 获取某年某月最后一天
+     * @param year  年份
+     * @param month 月份
+     * @return  某年某月最后一天
+     */
+    public static String getLastDayOfMonth(int year,int month)
+    {
+        Calendar cal = Calendar.getInstance();
+        //设置年份
+        cal.set(Calendar.YEAR,year);
+        //设置月份
+        cal.set(Calendar.MONTH, month-1);
+        //获取某月最大天数
+        int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
+        //设置日历中月份的最大天数
+        cal.set(Calendar.DAY_OF_MONTH, lastDay);
+        //格式化日期
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        String lastDayOfMonth = sdf.format(cal.getTime());
+        return lastDayOfMonth;
+    }
+
+    /**
+     *  获取某年某月的第一天
+     * @param year  年份
+     * @param month 月份
+     * @return  某年某月第一天
+     */
+    public static String getFirstDayOfMonth(int year,int month)
+    {
+        Calendar cal = Calendar.getInstance();
+        //设置年份
+        cal.set(Calendar.YEAR,year);
+        //设置月份
+        cal.set(Calendar.MONTH, month-1);
+        //获取某月最小天数
+        int firstDay = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
+        //设置日历中月份的最小天数
+        cal.set(Calendar.DAY_OF_MONTH, firstDay);
+        //格式化日期
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        String firstDayOfMonth = sdf.format(cal.getTime());
+
+        return firstDayOfMonth;
+    }
+
+    /**
+     * 获取20天前那天时间
+     *
+     * @return
+     */
+    public static String getTwentyDay() {
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(new Date());
+        cal.add(Calendar.DATE, -20);
+
+        return DateUtil.format(cal.getTime(),"yyyy-MM-dd");
+    }
+
+    /**
+     * 获取之前的日期
+     *
+     * @return
+     */
+    public static String getBeforeDay(Integer amount) {
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(new Date());
+        cal.add(Calendar.DATE, -amount);
+        return DateUtil.format(cal.getTime(),"yyyy-MM-dd");
+    }
+
+    /**
+     * 获取最近本月20天数据
+     *
+     * @return
+     */
+    public static String getMonthTwentyDay() {
+        Date date = new Date();
+        Long offset = DateUtil.between(new Date(), DateUtil.beginOfMonth(date), DateUnit.DAY);
+        if (offset >= 20) {
+            return getTwentyDay();
+        } else {
+            //距离月初不足20天
+            Calendar calendar = new GregorianCalendar();
+            calendar.setTime(date);
+            //获得本月第一天
+            calendar.add(Calendar.MONTH, 0);
+            calendar.set(Calendar.DAY_OF_MONTH, 1);
+            return DateUtil.format(calendar.getTime(),"yyyy-MM-dd");
+        }
+
+    }
+
+    public static List<String> getBeforeDays(int before) {
+        List<String> dates = new ArrayList<>();
+        for (int i = before; i >= 0; i--) {
+            dates.add(getBeforeDay(i));
+        }
+        return dates;
+    }
+
+    /**
+     * 获取当年所有月份
+     *
+     * @return
+     */
+    public static List<String> getYearMonths() {
+        Calendar instance = Calendar.getInstance();
+        int year = instance.get(Calendar.YEAR);
+        List<String> months = new ArrayList<>();
+        for (int i = 1; i <= 12; i++) {
+            String result = String.valueOf(year);
+            if (i < 10) {
+                result = result + "-0" +i;
+            } else {
+                result = result + "-"+i;
+            }
+            months.add(result);
+        }
+        return months;
+    }
+
+    //获取当前12个月
+    public static List<String> getLatest12Month(LocalDate date,int num){
+        List<String> monthList = new ArrayList<>();
+        for(int i = 0;i <= num-1; i++){
+            LocalDate localDate = date.minusMonths(i);
+            String month = localDate.toString().substring(0,7);
+            monthList.add(month);
+        }
+        return monthList;
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/DifferentLongListUtil.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/DifferentLongListUtil.java
new file mode 100644
index 0000000..36dcba8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/DifferentLongListUtil.java
@@ -0,0 +1,50 @@
+package com.panzhihua.common.utlis;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @Author: llming
+ * @Description: 获取不同两个list不同元素
+ */
+public class DifferentLongListUtil {
+    public static List<Long> getDiffrent(List<Long> list1, List<Long> list2) {
+        Map<Long, Integer> map = new HashMap<Long, Integer>(list1.size() + list2.size());
+        List<Long> diff = new ArrayList<Long>();
+        List<Long> maxList = list1;
+        List<Long> minList = list2;
+        if (list2.size() > list1.size()) {
+            maxList = list2;
+            minList = list1;
+        }
+
+        for (Long Long : maxList) {
+            map.put(Long, 1);
+        }
+
+        for (Long Long : minList) {
+            Integer cc = map.get(Long);
+            if (cc != null) {
+                map.put(Long, ++cc);
+                continue;
+            }
+            map.put(Long, 1);
+        }
+
+        for (Map.Entry<Long, Integer> entry : map.entrySet()) {
+            if (entry.getValue() == 1) {
+                diff.add(entry.getKey());
+            }
+        }
+        return diff;
+    }
+
+    public static void main(Long[] args) {
+        // List<Long> Longs1 = Arrays.asList(1L, 2L, 2L, 3L, 4L);
+        // List<Long> Longs2 = Arrays.asList(1L, 2L, 5L, 6L, 4L);
+        // List<Long> diffrent = getDiffrent(Longs1, Longs2);
+        // System.out.println(diffrent);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/EasyExcel.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/EasyExcel.java
new file mode 100644
index 0000000..d21efdc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/EasyExcel.java
@@ -0,0 +1,84 @@
+package com.panzhihua.common.utlis;
+
+import com.alibaba.excel.support.ExcelTypeEnum;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.io.IOUtils;
+
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletResponse;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.util.List;
+
+@Slf4j
+public class EasyExcel {
+
+    /**
+     * 导出Excel(07版.xlsx)到指定路径下
+     *
+     * @param path      路径
+     * @param excelName Excel名称
+     * @param sheetName sheet页名称
+     * @param clazz     Excel要转换的类型
+     * @param data      要导出的数据
+     */
+    public static void export2File(String path, String excelName, String sheetName, Class clazz, List data) {
+        String fileName = path.concat(excelName).concat(ExcelTypeEnum.XLSX.getValue());
+        com.alibaba.excel.EasyExcel.write(fileName, clazz).sheet(sheetName).doWrite(data);
+    }
+
+    /**
+     * 导出Excel(07版.xlsx)到web
+     *
+     * @param response  响应
+     * @param excelName Excel名称
+     * @param sheetName sheet页名称
+     * @param clazz     Excel要转换的类型
+     * @param data      要导出的数据
+     * @throws Exception
+     */
+    public static void export2Web(HttpServletResponse response, String excelName, String sheetName, Class clazz, List data) throws Exception {
+        response.setContentType("application/vnd.ms-excel");
+        response.setCharacterEncoding("utf-8");
+        // 这里URLEncoder.encode可以防止中文乱码
+        excelName = URLEncoder.encode(excelName, "UTF-8");
+        response.setHeader("Content-disposition", "attachment;filename=" + excelName + ExcelTypeEnum.XLSX.getValue());
+        com.alibaba.excel.EasyExcel.write(response.getOutputStream(), clazz).sheet(sheetName).doWrite(data);
+    }
+
+    /**
+     * 将指定位置指定名称的Excel导出到web
+     *
+     * @param response  响应
+     * @param path      文件路径
+     * @param excelName 文件名称
+     * @return
+     * @throws UnsupportedEncodingException
+     */
+    public static String export2Web4File(HttpServletResponse response, String path, String excelName) throws UnsupportedEncodingException {
+        File file = new File(path.concat(excelName).concat(ExcelTypeEnum.XLSX.getValue()));
+        if (!file.exists()) {
+            return "文件不存在!";
+        }
+
+        response.setContentType("application/vnd.ms-excel");
+        response.setCharacterEncoding("utf-8");
+        // 这里URLEncoder.encode可以防止中文乱码
+        excelName = URLEncoder.encode(excelName, "UTF-8");
+        response.setHeader("Content-disposition", "attachment;filename=" + excelName + ExcelTypeEnum.XLSX.getValue());
+
+        try (
+                FileInputStream in = new FileInputStream(file);
+                ServletOutputStream out = response.getOutputStream();
+        ) {
+            IOUtils.copy(in, out);
+            return "导出成功!";
+        } catch (Exception e) {
+            log.error("导出文件异常:", e);
+        }
+
+        return "导出失败!";
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/EscapeUtil.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/EscapeUtil.java
new file mode 100644
index 0000000..c3688b9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/EscapeUtil.java
@@ -0,0 +1,133 @@
+package com.panzhihua.common.utlis;
+
+/**
+ * 转义和反转义工具类
+ * 
+ * @author ruoyi
+ */
+public class EscapeUtil {
+    public static final String RE_HTML_MARK = "(<[^<]*?>)|(<[\\s]*?/[^<]*?>)|(<[^<]*?/[\\s]*?>)";
+
+    private static final char[][] TEXT = new char[64][];
+
+    static {
+        for (int i = 0; i < 64; i++) {
+            TEXT[i] = new char[] {(char)i};
+        }
+
+        // special HTML characters
+        TEXT['\''] = "&#039;".toCharArray(); // 单引号
+        TEXT['"'] = "&#34;".toCharArray(); // 单引号
+        TEXT['&'] = "&#38;".toCharArray(); // &符
+        TEXT['<'] = "&#60;".toCharArray(); // 小于号
+        TEXT['>'] = "&#62;".toCharArray(); // 大于号
+    }
+
+    /**
+     * 转义文本中的HTML字符为安全的字符
+     * 
+     * @param text
+     *            被转义的文本
+     * @return 转义后的文本
+     */
+    public static String escape(String text) {
+        return encode(text);
+    }
+
+    /**
+     * 还原被转义的HTML特殊字符
+     * 
+     * @param content
+     *            包含转义符的HTML内容
+     * @return 转换后的字符串
+     */
+    public static String unescape(String content) {
+        return decode(content);
+    }
+
+    /**
+     * 清除所有HTML标签,但是不删除标签内的内容
+     * 
+     * @param content
+     *            文本
+     * @return 清除标签后的文本
+     */
+    public static String clean(String content) {
+        return new HTMLFilter().filter(content);
+    }
+
+    /**
+     * Escape编码
+     * 
+     * @param text
+     *            被编码的文本
+     * @return 编码后的字符
+     */
+    private static String encode(String text) {
+        int len;
+        if ((text == null) || ((len = text.length()) == 0)) {
+            return StringUtils.EMPTY;
+        }
+        StringBuilder buffer = new StringBuilder(len + (len >> 2));
+        char c;
+        for (int i = 0; i < len; i++) {
+            c = text.charAt(i);
+            if (c < 64) {
+                buffer.append(TEXT[c]);
+            } else {
+                buffer.append(c);
+            }
+        }
+        return buffer.toString();
+    }
+
+    /**
+     * Escape解码
+     * 
+     * @param content
+     *            被转义的内容
+     * @return 解码后的字符串
+     */
+    public static String decode(String content) {
+        if (StringUtils.isEmpty(content)) {
+            return content;
+        }
+
+        StringBuilder tmp = new StringBuilder(content.length());
+        int lastPos = 0, pos = 0;
+        char ch;
+        while (lastPos < content.length()) {
+            pos = content.indexOf("%", lastPos);
+            if (pos == lastPos) {
+                if (content.charAt(pos + 1) == 'u') {
+                    ch = (char)Integer.parseInt(content.substring(pos + 2, pos + 6), 16);
+                    tmp.append(ch);
+                    lastPos = pos + 6;
+                } else {
+                    ch = (char)Integer.parseInt(content.substring(pos + 1, pos + 3), 16);
+                    tmp.append(ch);
+                    lastPos = pos + 3;
+                }
+            } else {
+                if (pos == -1) {
+                    tmp.append(content.substring(lastPos));
+                    lastPos = content.length();
+                } else {
+                    tmp.append(content, lastPos, pos);
+                    lastPos = pos;
+                }
+            }
+        }
+        return tmp.toString();
+    }
+
+    public static void main(String[] args) {
+        String html = "<script>alert(1);</script>";
+        // String html = "<scr<script>ipt>alert(\"XSS\")</scr<script>ipt>";
+        // String html = "<123";
+        // String html = "123>";
+        System.out.println(EscapeUtil.clean(html));
+        System.out.println(EscapeUtil.escape(html));
+        System.out.println(EscapeUtil.unescape(html));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ExcelSelectListUtil.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ExcelSelectListUtil.java
new file mode 100644
index 0000000..5957f55
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ExcelSelectListUtil.java
@@ -0,0 +1,64 @@
+package com.panzhihua.common.utlis;
+
+import org.apache.poi.hssf.usermodel.DVConstraint;
+import org.apache.poi.hssf.usermodel.HSSFDataValidation;
+import org.apache.poi.ss.usermodel.Name;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.ss.util.CellRangeAddressList;
+
+public final class ExcelSelectListUtil {
+    private ExcelSelectListUtil() {
+        throw new IllegalStateException("Utility class");
+    }
+
+    /**
+     * firstRow 開始行號 根据此项目,默认为2(下标0开始) lastRow 根据此项目,默认为最大65535 firstCol 区域中第一个单元格的列号 (下标0开始) lastCol 区域中最后一个单元格的列号
+     * strings 下拉内容
+     */
+    public static void selectList(Workbook workbook, int firstCol, int lastCol, String[] strings) {
+        int charLenth = stringArrayLength(strings);
+        int arraylLenth = strings.length;
+        if (charLenth + arraylLenth >= 255) {
+            Sheet sheet = workbook.getSheetAt(0);
+            // 解决下拉超过255个字符的问题
+            String hiddenSheet = "hidden" + firstCol;
+            Sheet category1Hidden = workbook.createSheet(hiddenSheet);
+            for (int i = 0, length = strings.length; i < length; i++) {
+                // 循环赋值(为了防止下拉框的行数与隐藏域的行数相对应来获取>=选中行数的数组,将隐藏域加到结束行之后)
+                category1Hidden.createRow(i).createCell(0).setCellValue(strings[i]);
+            }
+            Name category1Name = workbook.createName();
+            category1Name.setNameName(hiddenSheet);
+            category1Name.setRefersToFormula(hiddenSheet + "!$A$1:$A$" + strings.length);
+            // A1:A代表隐藏域创建第?列createCell(?)时。以A1列开始A行数据获取下拉数组
+            // 生成下拉列表
+            // 只对(x,x)单元格有效
+            CellRangeAddressList cellRangeAddressList = new CellRangeAddressList(2, 65535, firstCol, lastCol);
+            // 生成下拉框内容
+            DVConstraint dvConstraint = DVConstraint.createFormulaListConstraint(hiddenSheet);
+            HSSFDataValidation dataValidation = new HSSFDataValidation(cellRangeAddressList, dvConstraint);
+            // 对sheet页生效
+            workbook.setSheetHidden(1, true);
+            sheet.addValidationData(dataValidation);
+        } else {
+            Sheet sheet = workbook.getSheetAt(0);
+            // 生成下拉列表
+            // 只对(x,x)单元格有效
+            CellRangeAddressList cellRangeAddressList = new CellRangeAddressList(2, 65535, firstCol, lastCol);
+            // 生成下拉框内容
+            DVConstraint dvConstraint = DVConstraint.createExplicitListConstraint(strings);
+            HSSFDataValidation dataValidation = new HSSFDataValidation(cellRangeAddressList, dvConstraint);
+            // 对sheet页生效
+            sheet.addValidationData(dataValidation);
+        }
+    }
+
+    private static int stringArrayLength(String[] args) {
+        int rs = 0;
+        for (int i = 0; i < args.length; i++) {
+            rs += args[i].length();
+        }
+        return rs;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ExcelSelectObject.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ExcelSelectObject.java
new file mode 100644
index 0000000..e5c615c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ExcelSelectObject.java
@@ -0,0 +1,32 @@
+package com.panzhihua.common.utlis;
+
+import lombok.Data;
+
+/**
+ * description ExcelSelectObject Excel 下拉类别传递对象
+ *
+ * @author manailin
+ * @date 2019/7/10 10:03
+ */
+@Data
+public class ExcelSelectObject {
+
+    /**
+     * firstCol 区域中第一个单元格的列号 (下标0开始)
+     */
+    private int firstCol;
+    /**
+     * lastCol 区域中最后一个单元格的列号
+     */
+    private int lastCol;
+    /**
+     * strings 下拉内容
+     */
+    private String[] strings;
+
+    public ExcelSelectObject(final int firstCol, final int lastCol, final String[] strings) {
+        this.firstCol = firstCol;
+        this.lastCol = lastCol;
+        this.strings = strings;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ExcelUtil.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ExcelUtil.java
new file mode 100644
index 0000000..1045404
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ExcelUtil.java
@@ -0,0 +1,177 @@
+package com.panzhihua.common.utlis;
+
+import java.io.File;
+import java.io.IOException;
+import java.net.URLEncoder;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.ss.usermodel.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import cn.afterturn.easypoi.excel.ExcelExportUtil;
+import cn.afterturn.easypoi.excel.ExcelImportUtil;
+import cn.afterturn.easypoi.excel.entity.ExportParams;
+import cn.afterturn.easypoi.excel.entity.ImportParams;
+import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * Excel工具类
+ *
+ * @author manailin
+ * @date 2019/1/6
+ */
+@Slf4j
+public class ExcelUtil {
+    private ExcelUtil() {
+        throw new IllegalStateException("Utility class");
+    }
+
+    /**
+     * 导出
+     *
+     * @param list
+     *            数据列表
+     * @param title
+     *            标题
+     * @param sheetName
+     *            sheet名称
+     * @param pojoClass
+     *            元素类型
+     * @param fileName
+     *            文件名
+     * @param isCreateHeader
+     *            是否创建列头
+     * @param response
+     * @throws IOException
+     */
+    public static void exportExcel(List<?> list, String title, String sheetName, Class<?> pojoClass, String fileName,
+        boolean isCreateHeader, HttpServletResponse response) throws IOException {
+        ExportParams exportParams = new ExportParams(title, sheetName);
+        exportParams.setCreateHeadRows(isCreateHeader);
+        defaultExport(list, pojoClass, fileName, response, exportParams);
+
+    }
+
+    /**
+     * 导出
+     *
+     * @param list
+     *            数据列表
+     * @param title
+     *            标题
+     * @param sheetName
+     *            sheet名称
+     * @param pojoClass
+     *            元素类型
+     * @param fileName
+     *            文件名
+     * @param response
+     * @throws IOException
+     */
+    public static void exportExcel(List<?> list, String title, String sheetName, Class<?> pojoClass, String fileName,
+        HttpServletResponse response) throws IOException {
+        defaultExport(list, pojoClass, fileName, response, new ExportParams(title, sheetName));
+    }
+
+    /**
+     * 导出excel 带下拉列表的
+     *
+     * @param list
+     *            数据列表
+     * @param title
+     *            标题
+     * @param sheetName
+     *            sheet名称
+     * @param pojoClass
+     *            元素类型
+     * @param fileName
+     *            文件名
+     * @param response
+     * @throws IOException
+     */
+    public static void exportExcelForSelectList(List<?> list, String title, String sheetName, Class<?> pojoClass,
+        String fileName, List<ExcelSelectObject> selectListObject, HttpServletResponse response) throws IOException {
+        Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(title, sheetName), pojoClass, list);
+        // 这里是自己加的 带下拉框的代码
+        selectListObject.forEach(selectList -> ExcelSelectListUtil.selectList(workbook, selectList.getFirstCol(),
+            selectList.getLastCol(), selectList.getStrings()));
+        for (int i = 2; i < selectListObject.size(); i++) {
+            Sheet sheet = workbook.getSheetAt(0);
+            Row row = sheet.createRow(i);
+            CellStyle style = workbook.createCellStyle();
+            DataFormat format = workbook.createDataFormat();
+            style.setDataFormat(format.getFormat("@"));
+            row.setRowStyle(style);
+        }
+        if (workbook != null) {
+            downLoadExcel(fileName, response, workbook);
+        }
+    }
+
+    /**
+     * 导出
+     *
+     * @param list
+     *            数据列表(元素是Map)
+     * @param fileName
+     *            文件名
+     * @param response
+     * @throws IOException
+     */
+    public static void exportExcel(List<Map<String, Object>> list, String fileName, HttpServletResponse response)
+        throws IOException {
+        defaultExport(list, fileName, response);
+    }
+
+    private static void defaultExport(List<?> list, Class<?> pojoClass, String fileName, HttpServletResponse response,
+        ExportParams exportParams) throws IOException {
+        Workbook workbook = ExcelExportUtil.exportExcel(exportParams, pojoClass, list);
+        if (workbook != null) {
+            downLoadExcel(fileName, response, workbook);
+        }
+    }
+
+    private static void defaultExport(List<Map<String, Object>> list, String fileName, HttpServletResponse response)
+        throws IOException {
+        Workbook workbook = ExcelExportUtil.exportExcel(list, ExcelType.XSSF);
+        if (workbook != null) {
+            downLoadExcel(fileName, response, workbook);
+        }
+    }
+
+    private static void downLoadExcel(String fileName, HttpServletResponse response, Workbook workbook)
+        throws IOException {
+        response.setCharacterEncoding("UTF-8");
+        response.setHeader("content-Type", "application/vnd.ms-excel");
+        response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
+        workbook.write(response.getOutputStream());
+    }
+
+    public static <T> List<T> importExcel(String filePath, Integer titleRows, Integer headerRows, Class<T> pojoClass) {
+        if (StringUtils.isBlank(filePath)) {
+            return Collections.emptyList();
+        }
+        ImportParams params = new ImportParams();
+        params.setTitleRows(titleRows);
+        params.setHeadRows(headerRows);
+        return ExcelImportUtil.importExcel(new File(filePath), pojoClass, params);
+    }
+
+    public static <T> List<T> importExcel(MultipartFile file, Integer titleRows, Integer headerRows, Class<T> pojoClass)
+        throws Exception {
+        if (file == null) {
+            return Collections.emptyList();
+        }
+        ImportParams params = new ImportParams();
+        params.setTitleRows(titleRows);
+        params.setHeadRows(headerRows);
+        return ExcelImportUtil.importExcel(file.getInputStream(), pojoClass, params);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ExcelUtils.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ExcelUtils.java
new file mode 100644
index 0000000..b8aeb94
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ExcelUtils.java
@@ -0,0 +1,79 @@
+package com.panzhihua.common.utlis;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.metadata.style.WriteCellStyle;
+import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.panzhihua.common.excel.CustomSheetWriteHandler;
+import com.panzhihua.common.model.dtos.FtpConfig;
+import lombok.extern.slf4j.Slf4j;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.util.List;
+
+/**
+ * @author lyq
+ * excel工具类
+ */
+@Slf4j
+public class ExcelUtils {
+
+    public static String adminExport(FtpConfig config, String name, List<List<String>> headList
+            , List<List<Object>> datalist, String sheetName, Object obj) {
+        String ftpUrl = "/mnt/data/web/excel/";
+        try {
+            SFTPUtil sftp = new SFTPUtil(config.getUserName(), config.getPassword(), config.getHost(), config.getPort());
+            sftp.login();
+            boolean existDir = sftp.isExistDir(ftpUrl + name);
+            if (!existDir) {
+                String property = System.getProperty("user.dir");
+                String fileName = property + File.separator + name;
+                ExcelWriter excelWriter = null;
+                InputStream inputStream = null;
+                try {
+                    WriteCellStyle headWriteCellStyle = new WriteCellStyle();
+                    WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
+
+                    contentWriteCellStyle.setWrapped(true);
+                    HorizontalCellStyleStrategy horizontalCellStyleStrategy =
+                            new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
+                    LongestMatchColumnWidthStyleStrategy longestMatchColumnWidthStyleStrategy = new LongestMatchColumnWidthStyleStrategy();
+
+                    excelWriter = EasyExcel.write(fileName, Object.class)
+                            .registerWriteHandler(horizontalCellStyleStrategy)
+                            .registerWriteHandler(longestMatchColumnWidthStyleStrategy)
+                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                    WriteSheet writeSheet = EasyExcel.writerSheet(sheetName).head(headList).build();
+                    excelWriter.write(datalist, 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 config.getExcelUrl() + name;
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return null;
+        }
+        return null;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/FeignConfig.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/FeignConfig.java
new file mode 100644
index 0000000..7029497
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/FeignConfig.java
@@ -0,0 +1,47 @@
+package com.panzhihua.common.utlis;
+
+import feign.RequestInterceptor;
+import feign.RequestTemplate;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Enumeration;
+
+/**
+ * @author zzj
+ */
+@Configuration
+public class FeignConfig {
+    //配置feign拦截器,解决请求头问题
+    @Bean("requestInterceptor")
+    public RequestInterceptor requestInterceptor() {
+        return new RequestInterceptor() {
+            //获取所有浏览器发送的请求属性,请求头赋值到feign
+            @Override
+            public void apply(RequestTemplate requestTemplate) {
+                //请求属性
+                ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
+                if (attributes != null) {
+                    HttpServletRequest request = attributes.getRequest();
+                    //获取浏览器发起的请求头
+                    Enumeration<String> headerNames = request.getHeaderNames();
+                    if (headerNames != null) {
+                        while (headerNames.hasMoreElements()) {
+                            String name = headerNames.nextElement(); //请求头名称 Authorization
+                            String value = request.getHeader(name);//请求头数据 "Bearer b1dbb4cf-7de6-41e5-99e2-0e8b7e8fe6ee"
+                            // 跳过 content-length,解决too many bites written的问题
+                            if (name.equalsIgnoreCase("content-length")){
+                                continue;
+                            }
+                            requestTemplate.header(name, value);
+                        }
+                    }
+                }
+
+            }
+        };
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/FeignHystrixConcurrencyStrategy.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/FeignHystrixConcurrencyStrategy.java
new file mode 100644
index 0000000..3b145f9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/FeignHystrixConcurrencyStrategy.java
@@ -0,0 +1,128 @@
+package com.panzhihua.common.utlis;
+
+import com.netflix.hystrix.HystrixThreadPoolKey;
+import com.netflix.hystrix.HystrixThreadPoolProperties;
+import com.netflix.hystrix.strategy.HystrixPlugins;
+import com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy;
+import com.netflix.hystrix.strategy.concurrency.HystrixRequestVariable;
+import com.netflix.hystrix.strategy.concurrency.HystrixRequestVariableLifecycle;
+import com.netflix.hystrix.strategy.eventnotifier.HystrixEventNotifier;
+import com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook;
+import com.netflix.hystrix.strategy.metrics.HystrixMetricsPublisher;
+import com.netflix.hystrix.strategy.properties.HystrixPropertiesStrategy;
+import com.netflix.hystrix.strategy.properties.HystrixProperty;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+import org.springframework.web.context.request.RequestAttributes;
+import org.springframework.web.context.request.RequestContextHolder;
+
+import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.Callable;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+
+@Component
+public class FeignHystrixConcurrencyStrategy extends HystrixConcurrencyStrategy {
+
+    private static final Logger log = LoggerFactory.getLogger(FeignHystrixConcurrencyStrategy.class);
+
+    private HystrixConcurrencyStrategy delegate;
+
+    public FeignHystrixConcurrencyStrategy() {
+        try {
+            this.delegate = HystrixPlugins.getInstance().getConcurrencyStrategy();
+            if (this.delegate instanceof FeignHystrixConcurrencyStrategy) {
+                // Welcome to singleton hell...
+                return;
+            }
+            HystrixCommandExecutionHook commandExecutionHook = HystrixPlugins
+                    .getInstance().getCommandExecutionHook();
+            HystrixEventNotifier eventNotifier = HystrixPlugins.getInstance()
+                    .getEventNotifier();
+            HystrixMetricsPublisher metricsPublisher = HystrixPlugins.getInstance()
+                    .getMetricsPublisher();
+            HystrixPropertiesStrategy propertiesStrategy = HystrixPlugins.getInstance()
+                    .getPropertiesStrategy();
+            this.logCurrentStateOfHystrixPlugins(eventNotifier, metricsPublisher,
+                    propertiesStrategy);
+            HystrixPlugins.reset();
+            HystrixPlugins.getInstance().registerConcurrencyStrategy(this);
+            HystrixPlugins.getInstance()
+                    .registerCommandExecutionHook(commandExecutionHook);
+            HystrixPlugins.getInstance().registerEventNotifier(eventNotifier);
+            HystrixPlugins.getInstance().registerMetricsPublisher(metricsPublisher);
+            HystrixPlugins.getInstance().registerPropertiesStrategy(propertiesStrategy);
+        }
+        catch (Exception e) {
+            log.error("Failed to register Sleuth Hystrix Concurrency Strategy", e);
+        }
+    }
+
+    private void logCurrentStateOfHystrixPlugins(HystrixEventNotifier eventNotifier,
+                                                 HystrixMetricsPublisher metricsPublisher,
+                                                 HystrixPropertiesStrategy propertiesStrategy) {
+        if (log.isDebugEnabled()) {
+            log.debug("Current Hystrix plugins configuration is ["
+                    + "concurrencyStrategy [" + this.delegate + "]," + "eventNotifier ["
+                    + eventNotifier + "]," + "metricPublisher [" + metricsPublisher + "],"
+                    + "propertiesStrategy [" + propertiesStrategy + "]," + "]");
+            log.debug("Registering Sleuth Hystrix Concurrency Strategy.");
+        }
+    }
+
+    @Override
+    public <T> Callable<T> wrapCallable(Callable<T> callable) {
+        RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
+        return new WrappedCallable<>(callable, requestAttributes);
+    }
+
+    @Override
+    public ThreadPoolExecutor getThreadPool(HystrixThreadPoolKey threadPoolKey,
+                                            HystrixProperty<Integer> corePoolSize,
+                                            HystrixProperty<Integer> maximumPoolSize,
+                                            HystrixProperty<Integer> keepAliveTime, TimeUnit unit,
+                                            BlockingQueue<Runnable> workQueue) {
+        return this.delegate.getThreadPool(threadPoolKey, corePoolSize, maximumPoolSize,
+                keepAliveTime, unit, workQueue);
+    }
+
+    @Override
+    public ThreadPoolExecutor getThreadPool(HystrixThreadPoolKey threadPoolKey,
+                                            HystrixThreadPoolProperties threadPoolProperties) {
+        return this.delegate.getThreadPool(threadPoolKey, threadPoolProperties);
+    }
+
+    @Override
+    public BlockingQueue<Runnable> getBlockingQueue(int maxQueueSize) {
+        return this.delegate.getBlockingQueue(maxQueueSize);
+    }
+
+    @Override
+    public <T> HystrixRequestVariable<T> getRequestVariable(
+            HystrixRequestVariableLifecycle<T> rv) {
+        return this.delegate.getRequestVariable(rv);
+    }
+
+    static class WrappedCallable<T> implements Callable<T> {
+
+        private final Callable<T> target;
+        private final RequestAttributes requestAttributes;
+
+        public WrappedCallable(Callable<T> target, RequestAttributes requestAttributes) {
+            this.target = target;
+            this.requestAttributes = requestAttributes;
+        }
+
+        @Override
+        public T call() throws Exception {
+            try {
+                RequestContextHolder.setRequestAttributes(requestAttributes);
+                return target.call();
+            }
+            finally {
+                RequestContextHolder.resetRequestAttributes();
+            }
+        }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/FileType.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/FileType.java
new file mode 100644
index 0000000..accda4e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/FileType.java
@@ -0,0 +1,91 @@
+package com.panzhihua.common.utlis;
+
+import java.io.FileInputStream;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * FileType 应用模块名称
+ * <p>
+ * 代码描述 文件类型判断工具类
+ * <p>
+ * Copyright: Copyright (C) 2021 XXX, Inc. All rights reserved.
+ * <p>
+ * Company: 成都呐喊信息技术有限公司
+ * <p>
+ *
+ * @author manailin
+ * @since 2021/10/8 10:52
+ */
+@Slf4j
+public class FileType {
+
+    private static final String NOT_IMAGE_FILE_TYPE = "0000";
+
+    private static String bytesToHexString(byte[] src) {
+        StringBuilder stringBuilder = new StringBuilder();
+        if (src == null || src.length <= 0) {
+            return null;
+        }
+        for (int i = 0; i < src.length; i++) {
+            int v = src[i] & 0xFF;
+            String hv = Integer.toHexString(v);
+            if (hv.length() < 2) {
+                stringBuilder.append(0);
+            }
+            stringBuilder.append(hv);
+        }
+        return stringBuilder.toString();
+    }
+
+    /**
+     * [方法描述] 判断上传的文件是否是规定的文件文件,通过文件头标识确定
+     *
+     * @param is
+     * @return boolean
+     * @author manailin
+     * @date 2021/10/28 16:50
+     */
+    public static Boolean checkFileType(FileInputStream is) throws Exception {
+        byte[] b = new byte[3];
+        is.read(b, 0, b.length);
+        String photo = bytesToHexString(b);
+        photo = photo.toUpperCase();
+        String fileHeadCode = TypeDict.checkFileType(photo);
+        log.info("上传的文件类型{}", fileHeadCode);
+        return !fileHeadCode.equals(NOT_IMAGE_FILE_TYPE);
+    }
+
+    /**
+     * [方法描述] 判断上传的文件是否是图片文件,通过文件头标识确定
+     * 
+     * @param is
+     * @return boolean
+     * @author manailin
+     * @date 2021/10/28 16:50
+     */
+    public static Boolean checkImageType(FileInputStream is) throws Exception {
+        byte[] b = new byte[3];
+        is.read(b, 0, b.length);
+        String photo = bytesToHexString(b);
+        photo = photo.toUpperCase();
+        String fileHeadCode = TypeDict.checkImageType(photo);
+        log.info("上传的文件类型{}", fileHeadCode);
+        return !fileHeadCode.equals(NOT_IMAGE_FILE_TYPE);
+    }
+    /**
+     * [方法描述] 方法参照流程
+     * 
+     * @param args
+     */
+//     public static void main(String[] args) throws Exception {
+//     FileInputStream is = new FileInputStream("D:\\Pictures\\3.mp4");
+//     byte[] b = new byte[3];
+//     is.read(b, 0, b.length);
+//     String photo = bytesToHexString(b);
+//     photo = photo.toUpperCase();
+//     System.out.println("头文件是:" + photo);
+//    String ooo = TypeDict.checkFileType(photo);
+//     System.out.println("后缀名是:" + ooo);
+//     }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/FileTypeUploadUtils.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/FileTypeUploadUtils.java
new file mode 100644
index 0000000..8765a6e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/FileTypeUploadUtils.java
@@ -0,0 +1,94 @@
+package com.panzhihua.common.utlis;
+
+import com.panzhihua.common.exceptions.FileSizeLimitExceededException;
+import com.panzhihua.common.exceptions.InvalidExtensionException;
+import org.apache.commons.io.FilenameUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.Objects;
+
+/**
+ * 文件上传工具类
+ *
+ * @author
+ */
+public class FileTypeUploadUtils {
+    /**
+     * 默认大小 50M
+     */
+    public static final long DEFAULT_MAX_SIZE = 50 * 1024 * 1024;
+
+    /**
+     * 默认的文件名最大长度 100
+     */
+    public static final int DEFAULT_FILE_NAME_LENGTH = 100;
+
+
+    /**
+     * 文件大小校验
+     *
+     * @param file 上传的文件
+     * @return
+     * @throws FileSizeLimitExceededException 如果超出最大大小
+     * @throws InvalidExtensionException
+     */
+    public static final void assertAllowed(MultipartFile file, String[] allowedExtension)
+            throws FileSizeLimitExceededException, InvalidExtensionException {
+        long size = file.getSize();
+        if (size > DEFAULT_MAX_SIZE) {
+            throw new FileSizeLimitExceededException(DEFAULT_MAX_SIZE / 1024 / 1024);
+        }
+
+        String fileName = file.getOriginalFilename();
+        String extension = getExtension(file);
+        if (allowedExtension != null && !isAllowedExtension(extension, allowedExtension)) {
+            if (allowedExtension == MimeTypeUtils.IMAGE_EXTENSION) {
+                throw new InvalidExtensionException.InvalidImageExtensionException(allowedExtension, extension,
+                        fileName);
+            } else if (allowedExtension == MimeTypeUtils.FLASH_EXTENSION) {
+                throw new InvalidExtensionException.InvalidFlashExtensionException(allowedExtension, extension,
+                        fileName);
+            } else if (allowedExtension == MimeTypeUtils.MEDIA_EXTENSION) {
+                throw new InvalidExtensionException.InvalidMediaExtensionException(allowedExtension, extension,
+                        fileName);
+            } else if (allowedExtension == MimeTypeUtils.VIDEO_EXTENSION) {
+                throw new InvalidExtensionException.InvalidVideoExtensionException(allowedExtension, extension,
+                        fileName);
+            } else {
+                throw new InvalidExtensionException(allowedExtension, extension, fileName);
+            }
+        }
+
+    }
+
+    /**
+     * 判断MIME类型是否是允许的MIME类型
+     *
+     * @param extension
+     * @param allowedExtension
+     * @return
+     */
+    public static final boolean isAllowedExtension(String extension, String[] allowedExtension) {
+        for (String str : allowedExtension) {
+            if (str.equalsIgnoreCase(extension)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /**
+     * 获取文件名的后缀
+     *
+     * @param file 表单文件
+     * @return 后缀名
+     */
+    public static final String getExtension(MultipartFile file) {
+        String extension = FilenameUtils.getExtension(file.getOriginalFilename());
+        if (StringUtils.isEmpty(extension)) {
+            extension = MimeTypeUtils.getExtension(Objects.requireNonNull(file.getContentType()));
+        }
+        return extension;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/FileUtil.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/FileUtil.java
new file mode 100644
index 0000000..f7690d1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/FileUtil.java
@@ -0,0 +1,115 @@
+package com.panzhihua.common.utlis;
+
+import java.io.*;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipOutputStream;
+
+public class FileUtil {
+
+    public static InputStream getResourcesFileInputStream(String fileName) {
+        return Thread.currentThread().getContextClassLoader().getResourceAsStream("" + fileName);
+    }
+
+    public static String getPath() {
+        return FileUtil.class.getResource("/").getPath();
+    }
+
+    public static File createNewFile(String pathName) {
+        File file = new File(getPath() + pathName);
+        if (file.exists()) {
+            file.delete();
+        } else {
+            if (!file.getParentFile().exists()) {
+                file.getParentFile().mkdirs();
+            }
+        }
+        return file;
+    }
+
+    public static File readFile(String pathName) {
+        return new File(getPath() + pathName);
+    }
+
+    public static File readUserHomeFile(String pathName) {
+        return new File(System.getProperty("user.home") + File.separator + pathName);
+    }
+
+    /**
+     * 压缩文件
+     *
+     * @param sourceFilePath 源文件路径
+     * @param zipFilePath    压缩后文件存储路径
+     * @param zipFilename    压缩文件名
+     */
+    public static void compressToZip(String sourceFilePath, String zipFilePath, String zipFilename) {
+        File sourceFile = new File(sourceFilePath);
+        File zipPath = new File(zipFilePath);
+        if (!zipPath.exists()) {
+            zipPath.mkdirs();
+        }
+        File zipFile = new File(zipPath + File.separator + zipFilename);
+        try (ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipFile))) {
+            writeZip(sourceFile, "", zos);
+            //文件压缩完成后,删除被压缩文件
+            boolean flag = deleteDir(sourceFile);
+        } catch (Exception e) {
+            e.printStackTrace();
+            throw new RuntimeException(e.getMessage(), e.getCause());
+        }
+    }
+
+    /**
+     * 遍历所有文件,压缩
+     *
+     * @param file       源文件目录
+     * @param parentPath 压缩文件目录
+     * @param zos        文件流
+     */
+    private static void writeZip(File file, String parentPath, ZipOutputStream zos) {
+        if (file.isDirectory()) {
+            //目录
+            parentPath += file.getName() + File.separator;
+            File[] files = file.listFiles();
+            for (File f : files) {
+                writeZip(f, parentPath, zos);
+            }
+        } else {
+            //文件
+            try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file))) {
+                //指定zip文件夹
+                ZipEntry zipEntry = new ZipEntry(parentPath + file.getName());
+                zos.putNextEntry(zipEntry);
+                int len;
+                byte[] buffer = new byte[1024 * 10];
+                while ((len = bis.read(buffer, 0, buffer.length)) != -1) {
+                    zos.write(buffer, 0, len);
+                    zos.flush();
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+                throw new RuntimeException(e.getMessage(), e.getCause());
+            }
+        }
+
+        /**
+         * 删除文件夹
+         *
+         * @param dir
+         * @return
+         */
+
+    }
+    private static boolean deleteDir (File dir){
+        if (dir.isDirectory()) {
+            String[] children = dir.list();
+            for (int i = 0; i < children.length; i++) {
+                boolean success = deleteDir(new File(dir, children[i]));
+                if (!success) {
+                    return false;
+                }
+            }
+        }
+        //删除空文件夹
+        return dir.delete();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ForEachUtils.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ForEachUtils.java
new file mode 100644
index 0000000..92af70b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ForEachUtils.java
@@ -0,0 +1,52 @@
+package com.panzhihua.common.utlis;
+
+/**
+ * 应用模块名称
+ * <p>
+ * 代码描述
+ * <p>
+ * Copyright: Copyright (C) 2022 XXX, Inc. All rights reserved.
+ * <p>
+ * Company: 成都呐喊信息技术有限公司
+ * <p>
+ *
+ * @author manailin
+ * @since 2022/2/17 14:33
+ */
+import java.util.Objects;
+import java.util.function.BiConsumer;
+
+/**
+ *
+ * @author yangzhilong
+ * @date 7/15/2019
+ */
+public class ForEachUtils {
+
+    /**
+     *
+     * @param <T>
+     * @param startIndex
+     *            开始遍历的索引
+     * @param elements
+     *            集合
+     * @param action
+     */
+    public static <T> void forEach(int startIndex, Iterable<? extends T> elements,
+        BiConsumer<Integer, ? super T> action) {
+        Objects.requireNonNull(elements);
+        Objects.requireNonNull(action);
+        if (startIndex < 0) {
+            startIndex = 0;
+        }
+        int index = 0;
+        for (T element : elements) {
+            index++;
+            if (index <= startIndex) {
+                continue;
+            }
+
+            action.accept(index - 1, element);
+        }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/GisPointUtil.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/GisPointUtil.java
new file mode 100644
index 0000000..bc737fe
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/GisPointUtil.java
@@ -0,0 +1,123 @@
+package com.panzhihua.common.utlis;
+
+import java.awt.*;
+import java.awt.geom.Point2D;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.panzhihua.common.model.dtos.community.bigscreen.event.ScreenDrawLngLatDTO;
+
+/**
+ * 判断坐标点位置状态
+ */
+public class GisPointUtil {
+
+    private static double EARTH_RADIUS = 6378137d;
+
+    private static double rad(double d) {
+        return d * Math.PI / 180.0;
+    }
+
+    /**
+     * 通过经纬度获取距离(单位:米)
+     *
+     * @param lat1
+     * @param lng1
+     * @param lat2
+     * @param lng2
+     * @return
+     */
+    public static double getDistance(double lat1, double lng1, double lat2, double lng2) {
+        double radLat1 = rad(lat1);
+        double radLat2 = rad(lat2);
+        double a = radLat1 - radLat2;
+        double b = rad(lng1) - rad(lng2);
+        double s = 2 * Math.asin(Math
+            .sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
+        s = s * EARTH_RADIUS;
+        s = Math.round(s * 10000d) / 10000d;
+        return s;
+    }
+
+    /**
+     * 判断一个点是否在圆形区域内
+     * 
+     * @param radius
+     *            半径
+     * @param lat1
+     *            圆心纬度
+     * @param lng1
+     *            圆心经度
+     * @param lat2
+     *            坐标纬度
+     * @param lng2
+     *            坐标经度
+     */
+    public static boolean isInCircle(double lng1, double lat1, double lng2, double lat2, String radius) {
+        return getDistance(lat1, lng1, lat2, lng2) < Double.parseDouble(radius);
+    }
+
+    /**
+     * 判断是否在多边形区域内
+     *
+     * @param pointLon
+     *            要判断的点的纵坐标
+     * @param pointLat
+     *            要判断的点的横坐标 // * @param lon 区域各顶点的纵坐标数组 // * @param lat 区域各顶点的横坐标数组
+     * @return
+     */
+    public static boolean isInPolygon(double pointLon, double pointLat, List<ScreenDrawLngLatDTO> lngLatList) {
+        // 将要判断的横纵坐标组成一个点
+        Point2D.Double point = new Point.Double(pointLon, pointLat);
+        // 将区域各顶点的横纵坐标放到一个点集合里面
+        List<Point2D.Double> pointList = new ArrayList<Point2D.Double>();
+        double polygonPoint_x = 0.0, polygonPoint_y = 0.0;
+        int len = lngLatList.size();
+        for (int i = 0; i < len; i++) {
+            polygonPoint_x = lngLatList.get(i).getLng();
+            polygonPoint_y = lngLatList.get(i).getLat();
+            Point2D.Double polygonPoint = new Point2D.Double(polygonPoint_x, polygonPoint_y);
+            pointList.add(polygonPoint);
+        }
+        return check(point, pointList);
+    }
+
+    /**
+     * 一个点是否在多边形内
+     *
+     * @param point
+     *            要判断的点的横纵坐标
+     * @param polygon
+     *            组成的顶点坐标集合
+     * @return
+     */
+    private static boolean check(Point2D.Double point, List<Point2D.Double> polygon) {
+        java.awt.geom.GeneralPath peneralPath = new java.awt.geom.GeneralPath();
+
+        Point2D.Double first = polygon.get(0);
+        // 通过移动到指定坐标(以双精度指定),将一个点添加到路径中
+        peneralPath.moveTo(first.x, first.y);
+        polygon.remove(0);
+        for (Point2D.Double d : polygon) {
+            // 通过绘制一条从当前坐标到新指定坐标(以双精度指定)的直线,将一个点添加到路径中。
+            peneralPath.lineTo(d.x, d.y);
+        }
+        // 将几何多边形封闭
+        peneralPath.lineTo(first.x, first.y);
+        peneralPath.closePath();
+        // 测试指定的 Point2D 是否在 Shape 的边界内。
+        return peneralPath.contains(point);
+    }
+
+    public static void main(String[] args) {
+        // String points =
+        // "[{\"sets\":[{\"name\":\"sswg\",\"value\":\"402881f6681232c00168129b896e0078\"}],\"where\":[{\"name\":\"id\",\"value\":3231735,\"type\":\"=\"}]},{\"sets\":[{\"name\":\"sswg\",\"value\":\"000000006817dd6f0168313b9b89049a\"}],\"where\":[{\"name\":\"id\",\"value\":3231735,\"type\":\"=\"}]}]";
+        // JSONArray pointArray = (JSONArray)JSONArray.parse(points);
+        // System.out.println(isInPolygon(120.636514,31.341752, pointArray));
+        // String points =
+        // "[{\"x\":120.61123416,\"y\":31.32889074,\"z\":137.05},{\"x\":120.61312695,\"y\":31.31892631,\"z\":128.61},{\"x\":120.61455616,\"y\":31.30808702,\"z\":43.66},{\"x\":120.62127327,\"y\":31.30899876,\"z\":62.21},{\"x\":120.63003506,\"y\":31.31057071,\"z\":29.43},{\"x\":120.63726235,\"y\":31.31203339,\"z\":92.90},{\"x\":120.64536616,\"y\":31.31334188,\"z\":78.36},{\"x\":120.64402082,\"y\":31.31947999,\"z\":13.19},{\"x\":120.64136126,\"y\":31.32757908,\"z\":87.36},{\"x\":120.63689776,\"y\":31.33287239,\"z\":60.62},{\"x\":120.63502091,\"y\":31.33742080,\"z\":114.21},{\"x\":120.63071787,\"y\":31.33793104,\"z\":32.99},{\"x\":120.62952446,\"y\":31.34483170,\"z\":164.79},{\"x\":120.62710968,\"y\":31.34801804,\"z\":164.15},{\"x\":120.62731359,\"y\":31.34823458,\"z\":189.53},{\"x\":120.62700980,\"y\":31.34894193,\"z\":194.24},{\"x\":120.62700980,\"y\":31.34894193,\"z\":194.24},{\"x\":120.62700980,\"y\":31.34894193,\"z\":194.24},{\"x\":120.62665860,\"y\":31.34861797,\"z\":155.41},{\"x\":120.61706620,\"y\":31.34846463,\"z\":200.05},{\"x\":120.61854348,\"y\":31.34267516,\"z\":138.68},{\"x\":120.62111689,\"y\":31.33313042,\"z\":154.61}]";
+        // JSONArray pointArray = (JSONArray)JSONArray.parse(points);
+        // System.out.println(isInPolygon(120.66615036,31.33525453, pointArray));//不在范围内
+        // System.out.println(isInPolygon(120.62171413,31.32044689, pointArray));//在范围内
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HTMLFilter.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HTMLFilter.java
new file mode 100644
index 0000000..0d05739
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HTMLFilter.java
@@ -0,0 +1,499 @@
+package com.panzhihua.common.utlis;
+
+import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * HTML过滤器,用于去除XSS漏洞隐患。
+ *
+ * @author ruoyi
+ */
+public final class HTMLFilter {
+    /**
+     * regex flag union representing /si modifiers in php
+     **/
+    private static final int REGEX_FLAGS_SI = Pattern.CASE_INSENSITIVE | Pattern.DOTALL;
+    private static final Pattern P_COMMENTS = Pattern.compile("<!--(.*?)-->", Pattern.DOTALL);
+    private static final Pattern P_COMMENT = Pattern.compile("^!--(.*)--$", REGEX_FLAGS_SI);
+    private static final Pattern P_TAGS = Pattern.compile("<(.*?)>", Pattern.DOTALL);
+    private static final Pattern P_END_TAG = Pattern.compile("^/([a-z0-9]+)", REGEX_FLAGS_SI);
+    private static final Pattern P_START_TAG = Pattern.compile("^([a-z0-9]+)(.*?)(/?)$", REGEX_FLAGS_SI);
+    private static final Pattern P_QUOTED_ATTRIBUTES = Pattern.compile("([a-z0-9]+)=([\"'])(.*?)\\2", REGEX_FLAGS_SI);
+    private static final Pattern P_UNQUOTED_ATTRIBUTES = Pattern.compile("([a-z0-9]+)(=)([^\"\\s']+)", REGEX_FLAGS_SI);
+    private static final Pattern P_PROTOCOL = Pattern.compile("^([^:]+):", REGEX_FLAGS_SI);
+    private static final Pattern P_ENTITY = Pattern.compile("&#(\\d+);?");
+    private static final Pattern P_ENTITY_UNICODE = Pattern.compile("&#x([0-9a-f]+);?");
+    private static final Pattern P_ENCODE = Pattern.compile("%([0-9a-f]{2});?");
+    private static final Pattern P_VALID_ENTITIES = Pattern.compile("&([^&;]*)(?=(;|&|$))");
+    private static final Pattern P_VALID_QUOTES = Pattern.compile("(>|^)([^<]+?)(<|$)", Pattern.DOTALL);
+    private static final Pattern P_END_ARROW = Pattern.compile("^>");
+    private static final Pattern P_BODY_TO_END = Pattern.compile("<([^>]*?)(?=<|$)");
+    private static final Pattern P_XML_CONTENT = Pattern.compile("(^|>)([^<]*?)(?=>)");
+    private static final Pattern P_STRAY_LEFT_ARROW = Pattern.compile("<([^>]*?)(?=<|$)");
+    private static final Pattern P_STRAY_RIGHT_ARROW = Pattern.compile("(^|>)([^<]*?)(?=>)");
+    private static final Pattern P_AMP = Pattern.compile("&");
+    private static final Pattern P_QUOTE = Pattern.compile("\"");
+    private static final Pattern P_LEFT_ARROW = Pattern.compile("<");
+    private static final Pattern P_RIGHT_ARROW = Pattern.compile(">");
+    private static final Pattern P_BOTH_ARROWS = Pattern.compile("<>");
+
+    // @xxx could grow large... maybe use sesat's ReferenceMap
+    private static final ConcurrentMap<String, Pattern> P_REMOVE_PAIR_BLANKS = new ConcurrentHashMap<>();
+    private static final ConcurrentMap<String, Pattern> P_REMOVE_SELF_BLANKS = new ConcurrentHashMap<>();
+
+    /**
+     * set of allowed html elements, along with allowed attributes for each element
+     **/
+    private final Map<String, List<String>> vAllowed;
+    /**
+     * counts of open tags for each (allowable) html element
+     **/
+    private final Map<String, Integer> vTagCounts = new HashMap<>();
+
+    /**
+     * html elements which must always be self-closing (e.g. "<img />")
+     **/
+    private final String[] vSelfClosingTags;
+    /**
+     * html elements which must always have separate opening and closing tags (e.g. "<b></b>")
+     **/
+    private final String[] vNeedClosingTags;
+    /**
+     * set of disallowed html elements
+     **/
+    private final String[] vDisallowed;
+    /**
+     * attributes which should be checked for valid protocols
+     **/
+    private final String[] vProtocolAtts;
+    /**
+     * allowed protocols
+     **/
+    private final String[] vAllowedProtocols;
+    /**
+     * tags which should be removed if they contain no content (e.g. "<b></b>" or "<b />")
+     **/
+    private final String[] vRemoveBlanks;
+    /**
+     * entities allowed within html markup
+     **/
+    private final String[] vAllowedEntities;
+    /**
+     * flag determining whether comments are allowed in input String.
+     */
+    private final boolean stripComment;
+    private final boolean encodeQuotes;
+    /**
+     * flag determining whether to try to make tags when presented with "unbalanced" angle brackets (e.g. "<b text </b>"
+     * becomes "<b> text </b>"). If set to false, unbalanced angle brackets will be html escaped.
+     */
+    private final boolean alwaysMakeTags;
+
+    /**
+     * Default constructor.
+     */
+    public HTMLFilter() {
+        vAllowed = new HashMap<>();
+
+        final ArrayList<String> a_atts = new ArrayList<>();
+        a_atts.add("href");
+        a_atts.add("target");
+        vAllowed.put("a", a_atts);
+
+        final ArrayList<String> img_atts = new ArrayList<>();
+        img_atts.add("src");
+        img_atts.add("width");
+        img_atts.add("height");
+        img_atts.add("alt");
+        vAllowed.put("img", img_atts);
+
+        final ArrayList<String> no_atts = new ArrayList<>();
+        vAllowed.put("b", no_atts);
+        vAllowed.put("strong", no_atts);
+        vAllowed.put("i", no_atts);
+        vAllowed.put("em", no_atts);
+
+        vSelfClosingTags = new String[] {"img"};
+        vNeedClosingTags = new String[] {"a", "b", "strong", "i", "em"};
+        vDisallowed = new String[] {};
+        vAllowedProtocols = new String[] {"http", "mailto", "https"}; // no ftp.
+        vProtocolAtts = new String[] {"src", "href"};
+        vRemoveBlanks = new String[] {"a", "b", "strong", "i", "em"};
+        vAllowedEntities = new String[] {"amp", "gt", "lt", "quot"};
+        stripComment = true;
+        encodeQuotes = true;
+        alwaysMakeTags = false;
+    }
+
+    /**
+     * Map-parameter configurable constructor.
+     *
+     * @param conf
+     *            map containing configuration. keys match field names.
+     */
+    @SuppressWarnings("unchecked")
+    public HTMLFilter(final Map<String, Object> conf) {
+
+        assert conf.containsKey("vAllowed") : "configuration requires vAllowed";
+        assert conf.containsKey("vSelfClosingTags") : "configuration requires vSelfClosingTags";
+        assert conf.containsKey("vNeedClosingTags") : "configuration requires vNeedClosingTags";
+        assert conf.containsKey("vDisallowed") : "configuration requires vDisallowed";
+        assert conf.containsKey("vAllowedProtocols") : "configuration requires vAllowedProtocols";
+        assert conf.containsKey("vProtocolAtts") : "configuration requires vProtocolAtts";
+        assert conf.containsKey("vRemoveBlanks") : "configuration requires vRemoveBlanks";
+        assert conf.containsKey("vAllowedEntities") : "configuration requires vAllowedEntities";
+
+        vAllowed = Collections.unmodifiableMap((HashMap<String, List<String>>)conf.get("vAllowed"));
+        vSelfClosingTags = (String[])conf.get("vSelfClosingTags");
+        vNeedClosingTags = (String[])conf.get("vNeedClosingTags");
+        vDisallowed = (String[])conf.get("vDisallowed");
+        vAllowedProtocols = (String[])conf.get("vAllowedProtocols");
+        vProtocolAtts = (String[])conf.get("vProtocolAtts");
+        vRemoveBlanks = (String[])conf.get("vRemoveBlanks");
+        vAllowedEntities = (String[])conf.get("vAllowedEntities");
+        stripComment = conf.containsKey("stripComment") ? (Boolean)conf.get("stripComment") : true;
+        encodeQuotes = conf.containsKey("encodeQuotes") ? (Boolean)conf.get("encodeQuotes") : true;
+        alwaysMakeTags = conf.containsKey("alwaysMakeTags") ? (Boolean)conf.get("alwaysMakeTags") : true;
+    }
+
+    // ---------------------------------------------------------------
+    // my versions of some PHP library functions
+    public static String chr(final int decimal) {
+        return String.valueOf((char)decimal);
+    }
+
+    public static String htmlSpecialChars(final String s) {
+        String result = s;
+        result = regexReplace(P_AMP, "&amp;", result);
+        result = regexReplace(P_QUOTE, "&quot;", result);
+        result = regexReplace(P_LEFT_ARROW, "&lt;", result);
+        result = regexReplace(P_RIGHT_ARROW, "&gt;", result);
+        return result;
+    }
+
+    private static String regexReplace(final Pattern regex_pattern, final String replacement, final String s) {
+        Matcher m = regex_pattern.matcher(s);
+        return m.replaceAll(replacement);
+    }
+
+    // ---------------------------------------------------------------
+
+    private static boolean inArray(final String s, final String[] array) {
+        for (String item : array) {
+            if (item != null && item.equals(s)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    private void reset() {
+        vTagCounts.clear();
+    }
+
+    /**
+     * given a user submitted input String, filter out any invalid or restricted html.
+     *
+     * @param input
+     *            text (i.e. submitted by a user) than may contain html
+     * @return "clean" version of input, with only valid, whitelisted html elements allowed
+     */
+    public String filter(final String input) {
+        reset();
+        String s = input;
+
+        s = escapeComments(s);
+
+        s = balanceHTML(s);
+
+        s = checkTags(s);
+
+        s = processRemoveBlanks(s);
+
+        // s = validateEntities(s);
+
+        return s;
+    }
+
+    public boolean isAlwaysMakeTags() {
+        return alwaysMakeTags;
+    }
+
+    public boolean isStripComments() {
+        return stripComment;
+    }
+
+    private String escapeComments(final String s) {
+        final Matcher m = P_COMMENTS.matcher(s);
+        final StringBuffer buf = new StringBuffer();
+        if (m.find()) {
+            final String match = m.group(1); // (.*?)
+            m.appendReplacement(buf, Matcher.quoteReplacement("<!--" + htmlSpecialChars(match) + "-->"));
+        }
+        m.appendTail(buf);
+
+        return buf.toString();
+    }
+
+    private String balanceHTML(String s) {
+        if (alwaysMakeTags) {
+            //
+            // try and form html
+            //
+            s = regexReplace(P_END_ARROW, "", s);
+            // 不追加结束标签
+            s = regexReplace(P_BODY_TO_END, "<$1>", s);
+            s = regexReplace(P_XML_CONTENT, "$1<$2", s);
+
+        } else {
+            //
+            // escape stray brackets
+            //
+            s = regexReplace(P_STRAY_LEFT_ARROW, "&lt;$1", s);
+            s = regexReplace(P_STRAY_RIGHT_ARROW, "$1$2&gt;<", s);
+
+            //
+            // the last regexp causes '<>' entities to appear
+            // (we need to do a lookahead assertion so that the last bracket can
+            // be used in the next pass of the regexp)
+            //
+            s = regexReplace(P_BOTH_ARROWS, "", s);
+        }
+
+        return s;
+    }
+
+    private String checkTags(String s) {
+        Matcher m = P_TAGS.matcher(s);
+
+        final StringBuffer buf = new StringBuffer();
+        while (m.find()) {
+            String replaceStr = m.group(1);
+            replaceStr = processTag(replaceStr);
+            m.appendReplacement(buf, Matcher.quoteReplacement(replaceStr));
+        }
+        m.appendTail(buf);
+
+        // these get tallied in processTag
+        // (remember to reset before subsequent calls to filter method)
+        final StringBuilder sBuilder = new StringBuilder(buf.toString());
+        for (String key : vTagCounts.keySet()) {
+            for (int ii = 0; ii < vTagCounts.get(key); ii++) {
+                sBuilder.append("</").append(key).append(">");
+            }
+        }
+        s = sBuilder.toString();
+
+        return s;
+    }
+
+    private String processRemoveBlanks(final String s) {
+        String result = s;
+        for (String tag : vRemoveBlanks) {
+            if (!P_REMOVE_PAIR_BLANKS.containsKey(tag)) {
+                P_REMOVE_PAIR_BLANKS.putIfAbsent(tag, Pattern.compile("<" + tag + "(\\s[^>]*)?></" + tag + ">"));
+            }
+            result = regexReplace(P_REMOVE_PAIR_BLANKS.get(tag), "", result);
+            if (!P_REMOVE_SELF_BLANKS.containsKey(tag)) {
+                P_REMOVE_SELF_BLANKS.putIfAbsent(tag, Pattern.compile("<" + tag + "(\\s[^>]*)?/>"));
+            }
+            result = regexReplace(P_REMOVE_SELF_BLANKS.get(tag), "", result);
+        }
+
+        return result;
+    }
+
+    private String processTag(final String s) {
+        // ending tags
+        Matcher m = P_END_TAG.matcher(s);
+        if (m.find()) {
+            final String name = m.group(1).toLowerCase();
+            if (allowed(name)) {
+                if (false == inArray(name, vSelfClosingTags)) {
+                    if (vTagCounts.containsKey(name)) {
+                        vTagCounts.put(name, vTagCounts.get(name) - 1);
+                        return "</" + name + ">";
+                    }
+                }
+            }
+        }
+
+        // starting tags
+        m = P_START_TAG.matcher(s);
+        if (m.find()) {
+            final String name = m.group(1).toLowerCase();
+            final String body = m.group(2);
+            String ending = m.group(3);
+
+            // debug( "in a starting tag, name='" + name + "'; body='" + body + "'; ending='" + ending + "'" );
+            if (allowed(name)) {
+                final StringBuilder params = new StringBuilder();
+
+                final Matcher m2 = P_QUOTED_ATTRIBUTES.matcher(body);
+                final Matcher m3 = P_UNQUOTED_ATTRIBUTES.matcher(body);
+                final List<String> paramNames = new ArrayList<>();
+                final List<String> paramValues = new ArrayList<>();
+                while (m2.find()) {
+                    paramNames.add(m2.group(1)); // ([a-z0-9]+)
+                    paramValues.add(m2.group(3)); // (.*?)
+                }
+                while (m3.find()) {
+                    paramNames.add(m3.group(1)); // ([a-z0-9]+)
+                    paramValues.add(m3.group(3)); // ([^\"\\s']+)
+                }
+
+                String paramName, paramValue;
+                for (int ii = 0; ii < paramNames.size(); ii++) {
+                    paramName = paramNames.get(ii).toLowerCase();
+                    paramValue = paramValues.get(ii);
+
+                    // debug( "paramName='" + paramName + "'" );
+                    // debug( "paramValue='" + paramValue + "'" );
+                    // debug( "allowed? " + vAllowed.get( name ).contains( paramName ) );
+
+                    if (allowedAttribute(name, paramName)) {
+                        if (inArray(paramName, vProtocolAtts)) {
+                            paramValue = processParamProtocol(paramValue);
+                        }
+                        params.append(' ').append(paramName).append("=\"").append(paramValue).append("\"");
+                    }
+                }
+
+                if (inArray(name, vSelfClosingTags)) {
+                    ending = " /";
+                }
+
+                if (inArray(name, vNeedClosingTags)) {
+                    ending = "";
+                }
+
+                if (ending == null || ending.length() < 1) {
+                    if (vTagCounts.containsKey(name)) {
+                        vTagCounts.put(name, vTagCounts.get(name) + 1);
+                    } else {
+                        vTagCounts.put(name, 1);
+                    }
+                } else {
+                    ending = " /";
+                }
+                return "<" + name + params + ending + ">";
+            } else {
+                return "";
+            }
+        }
+
+        // comments
+        m = P_COMMENT.matcher(s);
+        if (!stripComment && m.find()) {
+            return "<" + m.group() + ">";
+        }
+
+        return "";
+    }
+
+    private String processParamProtocol(String s) {
+        s = decodeEntities(s);
+        final Matcher m = P_PROTOCOL.matcher(s);
+        if (m.find()) {
+            final String protocol = m.group(1);
+            if (!inArray(protocol, vAllowedProtocols)) {
+                // bad protocol, turn into local anchor link instead
+                s = "#" + s.substring(protocol.length() + 1);
+                if (s.startsWith("#//")) {
+                    s = "#" + s.substring(3);
+                }
+            }
+        }
+
+        return s;
+    }
+
+    private String decodeEntities(String s) {
+        StringBuffer buf = new StringBuffer();
+
+        Matcher m = P_ENTITY.matcher(s);
+        while (m.find()) {
+            final String match = m.group(1);
+            final int decimal = Integer.decode(match).intValue();
+            m.appendReplacement(buf, Matcher.quoteReplacement(chr(decimal)));
+        }
+        m.appendTail(buf);
+        s = buf.toString();
+
+        buf = new StringBuffer();
+        m = P_ENTITY_UNICODE.matcher(s);
+        while (m.find()) {
+            final String match = m.group(1);
+            final int decimal = Integer.valueOf(match, 16).intValue();
+            m.appendReplacement(buf, Matcher.quoteReplacement(chr(decimal)));
+        }
+        m.appendTail(buf);
+        s = buf.toString();
+
+        buf = new StringBuffer();
+        m = P_ENCODE.matcher(s);
+        while (m.find()) {
+            final String match = m.group(1);
+            final int decimal = Integer.valueOf(match, 16).intValue();
+            m.appendReplacement(buf, Matcher.quoteReplacement(chr(decimal)));
+        }
+        m.appendTail(buf);
+        s = buf.toString();
+
+        s = validateEntities(s);
+        return s;
+    }
+
+    private String validateEntities(final String s) {
+        StringBuffer buf = new StringBuffer();
+
+        // validate entities throughout the string
+        Matcher m = P_VALID_ENTITIES.matcher(s);
+        while (m.find()) {
+            final String one = m.group(1); // ([^&;]*)
+            final String two = m.group(2); // (?=(;|&|$))
+            m.appendReplacement(buf, Matcher.quoteReplacement(checkEntity(one, two)));
+        }
+        m.appendTail(buf);
+
+        return encodeQuotes(buf.toString());
+    }
+
+    private String encodeQuotes(final String s) {
+        if (encodeQuotes) {
+            StringBuffer buf = new StringBuffer();
+            Matcher m = P_VALID_QUOTES.matcher(s);
+            while (m.find()) {
+                final String one = m.group(1); // (>|^)
+                final String two = m.group(2); // ([^<]+?)
+                final String three = m.group(3); // (<|$)
+                // 不替换双引号为&quot;,防止json格式无效 regexReplace(P_QUOTE, "&quot;", two)
+                m.appendReplacement(buf, Matcher.quoteReplacement(one + two + three));
+            }
+            m.appendTail(buf);
+            return buf.toString();
+        } else {
+            return s;
+        }
+    }
+
+    private String checkEntity(final String preamble, final String term) {
+
+        return ";".equals(term) && isValidEntity(preamble) ? '&' + preamble : "&amp;" + preamble;
+    }
+
+    private boolean isValidEntity(final String entity) {
+        return inArray(entity, vAllowedEntities);
+    }
+
+    private boolean allowed(final String name) {
+        return (vAllowed.isEmpty() || vAllowed.containsKey(name)) && !inArray(name, vDisallowed);
+    }
+
+    private boolean allowedAttribute(final String name, final String paramName) {
+        return allowed(name) && (vAllowed.isEmpty() || vAllowed.get(name).contains(paramName));
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HomeQuarantineUtil.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HomeQuarantineUtil.java
new file mode 100644
index 0000000..47a4947
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HomeQuarantineUtil.java
@@ -0,0 +1,220 @@
+package com.panzhihua.common.utlis;
+
+import cn.hutool.core.date.DateUtil;
+import com.panzhihua.common.model.vos.community.ComActQuestnaireAnswerContentVO;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.xml.bind.DatatypeConverter;
+import java.net.URL;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author zzj
+ */
+@Slf4j
+public class HomeQuarantineUtil {
+    /**
+     * 数据转换--登记明细用户填写答案导出数据格式转换
+     *
+     * @param answerContentVOList 用户答题记录
+     * @return 用户填写答案数据
+     */
+    public static List<List<Object>> ReserveData(List<ComActQuestnaireAnswerContentVO> answerContentVOList) {
+        //结果数据集合
+        List<List<Object>> resultList = new ArrayList<>();
+        //构建单个用户数据
+        List<Object> userData = new ArrayList<>();
+
+        String noExport = "以上信息仅用于";
+        //遍历答案列表
+        Long reserveRecordId = 0L;
+        Long reserveSubId = 0L;
+        Integer count=0;
+        StringBuffer conditions=new StringBuffer();
+        Boolean isOldDuo = false;
+        StringBuffer sb = new StringBuffer();
+        if (answerContentVOList != null && answerContentVOList.size() > 0) {
+            for (ComActQuestnaireAnswerContentVO userAnswers : answerContentVOList) {
+                if(count%16==0){
+                   conditions.append(DateUtils.format(userAnswers.getTime(),new SimpleDateFormat("yyyy-MM-dd")) +" "+"上午体温"+userAnswers.getAnswerContent()+"℃"+"\n");
+                   count++;
+                   continue;
+                }
+                if(count%16==1){
+                    conditions.append(DateUtils.format(userAnswers.getTime(),new SimpleDateFormat("yyyy-MM-dd"))+" "+"下午体温"+userAnswers.getAnswerContent()+"℃"+"\n");
+                    count++;
+                    continue;
+                }
+                if(count%16==2){
+                    conditions.append(DateUtils.format(userAnswers.getTime(),new SimpleDateFormat("yyyy-MM-dd"))+" "+"当日隔离情况:"+userAnswers.getAnswerContent()+"\n");
+                    conditions.append("————————"+"\n");
+                    count++;
+                    continue;
+                }
+                count++;
+                //判断是文字描述直接跳过
+                if (userAnswers.getOptionType().equals(5) || userAnswers.getOptionType().equals(11)
+                        || (StringUtils.isNotEmpty(userAnswers.getAnswerContent()) && userAnswers.getAnswerContent().contains(noExport))) {
+                    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;
+
+                    if(isOldDuo){
+                        String answer = sb.toString();
+                        userData.add(answer.substring(0, answer.length() - 1));
+                        sb = new StringBuffer();
+                        isOldDuo = false;
+                    }
+                    for(List<Object> result:resultList){
+                            if(result.get(4).equals(userData.get(4))){
+                                String condition=result.get(result.size()-1)+userData.get(userData.size()-1).toString();
+                                result.set(result.size()-1,condition);
+                                userData.set(userData.size()-1,null);
+                            break;
+                        }
+                    }
+                    if(userData.get(userData.size()-1)!=null){
+                        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(StringUtils.isNotEmpty(userAnswers.getAnswerContent()) && userAnswers.getAnswerContent().contains(noExport)){
+                            continue;
+                        }
+
+                        //判断当前的组件类型是否是图片上传,导出时需要导出图片
+                        if(userAnswers.getOptionType().equals(11)){
+                            reserveSubId = userAnswers.getReserveSubId();
+                            try {
+                                userData.add(new URL(userAnswers.getAnswerContent()));
+                            }catch (Exception e){
+                                userData.add(" ");
+                                log.error("导出转换图片失败!");
+                            }
+                            continue;
+                        }
+                        //判断当前组件类型是否签名
+                        if(userAnswers.getOptionType().equals(12)){
+                            reserveSubId = userAnswers.getReserveSubId();
+                            try {
+                                userData.add(DatatypeConverter.parseBase64Binary(userAnswers.getAnswerContent().substring(userAnswers.getAnswerContent().indexOf(",") + 1)));
+                            }catch (Exception e){
+                                userData.add(" ");
+                                log.error("导出转换图片失败!");
+                            }
+                            continue;
+                        }
+
+                        if(userAnswers.getOptionType().equals(1)){
+                            isOldDuo = true;
+                            sb.append(userAnswers.getAnswerContent()==null?"无":userAnswers.getAnswerContent() + ",");
+                            continue;
+                        }else{
+                            if(isOldDuo){
+                                String answer = sb.toString();
+                                userData.add(answer.substring(0, answer.length() - 1));
+                                sb = new StringBuffer();
+                            }
+                            isOldDuo = false;
+                        }
+                        sb.append(userAnswers.getAnswerContent()==null?"无":userAnswers.getAnswerContent() + ",");
+                        String answer = sb.toString();
+                        userData.add(answer.substring(0, answer.length() - 1));
+                        sb = new StringBuffer();
+                    }else{
+                        //如果是承诺字段则不导出
+                        if(StringUtils.isNotEmpty(userAnswers.getAnswerContent()) && userAnswers.getAnswerContent().contains(noExport)){
+                            continue;
+                        }
+                        //判断当前的组件类型是否是图片上传,导出时需要导出图片
+                        if(userAnswers.getOptionType().equals(11)){
+                            reserveSubId = userAnswers.getReserveSubId();
+                            try {
+                                userData.add(new URL(userAnswers.getAnswerContent()));
+                            }catch (Exception e){
+                                userData.add(" ");
+                                log.error("导出转换图片失败!");
+                            }
+                            continue;
+                        }
+                        //判断当前组件类型是否签名
+                        if(userAnswers.getOptionType().equals(12)){
+                            reserveSubId = userAnswers.getReserveSubId();
+                            try {
+                                //userData.add(new URL("http://image.panzhihua.nhys.cdnhxx.com//idcard/967dbdef3ef3465a9169fbea204f9aa7.jpg"));
+                                userData.add(DatatypeConverter.parseBase64Binary(userAnswers.getAnswerContent().substring(userAnswers.getAnswerContent().indexOf(",") + 1)));
+                            }catch (Exception e){
+                                userData.add(" ");
+                                log.error("导出转换图片失败!");
+                            }
+                            continue;
+                        }
+                        if(userAnswers.getOptionType().equals(1)){
+                            isOldDuo = true;
+                            sb.append(userAnswers.getAnswerContent()==null?"无":userAnswers.getAnswerContent() + ",");
+                            continue;
+                        }else{
+                            if(isOldDuo){
+                                String answer = sb.toString();
+                                userData.add(answer.substring(0, answer.length() - 1));
+                                sb = new StringBuffer();
+                            }
+                            isOldDuo = false;
+                        }
+                        sb.append(userAnswers.getAnswerContent()==null?"无":userAnswers.getAnswerContent() + ",");
+                        String answer = sb.toString();
+                        userData.add(answer.substring(0, answer.length() - 1));
+                        sb = new StringBuffer();
+                    }
+                }
+                if(count%16==0){
+                    userData.add(conditions.toString());
+                    conditions=new StringBuffer();
+                }
+            }
+            if(isOldDuo){
+                String answer = sb.toString();
+                userData.add(answer.substring(0, answer.length() - 1));
+            }
+            for(List<Object> result:resultList){
+                if(result.get(4).equals(userData.get(4))){
+                    String condition=result.get(result.size()-1)+userData.get(userData.size()-1).toString();
+                    result.set(result.size()-1,condition);
+                    userData.set(userData.size()-1,null);
+                    break;
+                }
+            }
+            if(userData.get(userData.size()-1)!=null){
+                resultList.add(userData);
+            }
+        }
+        return resultList;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpClientFactory.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpClientFactory.java
new file mode 100644
index 0000000..aef2799
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpClientFactory.java
@@ -0,0 +1,116 @@
+package com.panzhihua.common.utlis;
+
+import java.security.NoSuchAlgorithmException;
+
+import javax.net.ssl.SSLContext;
+
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.config.RequestConfig;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.config.Registry;
+import org.apache.http.config.RegistryBuilder;
+import org.apache.http.conn.socket.ConnectionSocketFactory;
+import org.apache.http.conn.socket.LayeredConnectionSocketFactory;
+import org.apache.http.conn.socket.PlainConnectionSocketFactory;
+import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
+
+import com.panzhihua.common.constants.HttpConstant;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description:
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-08 10:26
+ **/
+public class HttpClientFactory {
+
+    private static HttpClientFactory instance = null;
+
+    private HttpClientFactory() {}
+
+    public synchronized static HttpClientFactory getInstance() {
+        if (instance == null) {
+            instance = new HttpClientFactory();
+        }
+        return instance;
+    }
+
+    public synchronized HttpClient getHttpClient() {
+        HttpClient httpClient = null;
+        if (HttpConstant.IS_KEEP_ALIVE) {
+            // 获取长连接
+            httpClient = new KeepAliveHttpClientBuilder().getKeepAliveHttpClient();
+        } else {
+            // 获取短连接
+            httpClient = new HttpClientBuilder().getHttpClient();
+        }
+        return httpClient;
+    }
+
+    public HttpPost httpPost(String httpUrl) {
+        HttpPost httpPost = null;
+        httpPost = new HttpPost(httpUrl);
+        if (HttpConstant.IS_KEEP_ALIVE) {
+            // 设置为长连接,服务端判断有此参数就不关闭连接。
+            httpPost.setHeader("Connection", "Keep-Alive");
+        }
+        return httpPost;
+    }
+
+    private static class KeepAliveHttpClientBuilder {
+
+        private static HttpClient httpClient;
+
+        /**
+         * 获取http长连接
+         */
+        private synchronized HttpClient getKeepAliveHttpClient() {
+            if (httpClient == null) {
+                LayeredConnectionSocketFactory sslsf = null;
+                try {
+                    sslsf = new SSLConnectionSocketFactory(SSLContext.getDefault());
+                } catch (NoSuchAlgorithmException e) {
+                    e.printStackTrace();
+                }
+
+                Registry<ConnectionSocketFactory> socketFactoryRegistry =
+                    RegistryBuilder.<ConnectionSocketFactory>create().register("https", sslsf)
+                        .register("http", new PlainConnectionSocketFactory()).build();
+                PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager(socketFactoryRegistry);
+                cm.setMaxTotal(HttpConstant.MAX_TOTAL);
+                cm.setDefaultMaxPerRoute(HttpConstant.MAX_CONN_PER_ROUTE);
+
+                RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(HttpConstant.CONNECT_TIMEOUT)
+                    .setSocketTimeout(HttpConstant.SOCKET_TIMEOUT).build();
+                // 创建连接
+                httpClient =
+                    HttpClients.custom().setDefaultRequestConfig(requestConfig).setConnectionManager(cm).build();
+            }
+
+            return httpClient;
+        }
+    }
+
+    private static class HttpClientBuilder {
+        private HttpClient httpClient;
+
+        /**
+         * 获取http短连接
+         */
+        private synchronized HttpClient getHttpClient() {
+            if (httpClient == null) {
+                RequestConfig requestConfig = RequestConfig.custom()
+                    // 设置请求超时时间
+                    .setConnectTimeout(HttpConstant.CONNECT_TIMEOUT)
+                    // 设置响应超时时间
+                    .setSocketTimeout(HttpConstant.SOCKET_TIMEOUT).build();
+                // 创建连接
+                httpClient = HttpClients.custom().setDefaultRequestConfig(requestConfig).build();
+            }
+            return httpClient;
+        }
+    }
+
+}
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
new file mode 100644
index 0000000..0472925
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpClientUtil.java
@@ -0,0 +1,580 @@
+package com.panzhihua.common.utlis;
+
+import java.io.*;
+import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.security.KeyManagementException;
+import java.security.KeyStore;
+import java.security.KeyStoreException;
+import java.security.NoSuchAlgorithmException;
+import java.security.cert.CertificateException;
+import java.security.cert.X509Certificate;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import com.alibaba.fastjson.JSONObject;
+import org.apache.http.Header;
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpResponse;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.config.RequestConfig;
+import org.apache.http.client.methods.CloseableHttpResponse;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.client.methods.HttpUriRequest;
+import org.apache.http.conn.ssl.NoopHostnameVerifier;
+import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
+import org.apache.http.conn.ssl.TrustStrategy;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.DefaultHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.message.BasicHeader;
+import org.apache.http.ssl.SSLContexts;
+import org.apache.http.util.EntityUtils;
+import org.springframework.util.ObjectUtils;
+
+import com.panzhihua.common.constants.HttpConstant;
+
+import lombok.extern.slf4j.Slf4j;
+
+import javax.net.ssl.SSLContext;
+
+import static com.panzhihua.common.utlis.wx.WXPayConstants.USER_AGENT;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description:
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-08 10:23
+ **/
+@Slf4j
+public class HttpClientUtil {
+    /**
+     * 通过post方式调用http接口
+     * 
+     * @param url
+     *            url路径
+     * @param jsonParam
+     *            json格式的参数
+     * @param reSend
+     *            重发次数
+     * @param headerKey
+     *            header键值
+     * @param headerValue
+     *            headervalue
+     * @return
+     * @throws Exception
+     */
+    public static String sendPostByJson(String url, String jsonParam, int reSend, String headerKey,
+        String headerValue) {
+        // 声明返回结果
+        String result = "";
+        // 开始请求API接口时间
+        long startTime = System.currentTimeMillis();
+        // 请求API接口的响应时间
+        long endTime = 0L;
+        HttpEntity httpEntity = null;
+        HttpResponse httpResponse = null;
+        HttpClient httpClient = null;
+        try {
+            // 创建连接
+            httpClient = HttpClientFactory.getInstance().getHttpClient();
+            // 设置请求头和报文
+            HttpPost httpPost = HttpClientFactory.getInstance().httpPost(url);
+            Header header = new BasicHeader("Accept-Encoding", null);
+            httpPost.setHeader(header);
+            if (!ObjectUtils.isEmpty(headerKey)) {
+                httpPost.setHeader(headerKey, headerValue);
+            }
+            // 设置报文和通讯格式
+            StringEntity stringEntity = new StringEntity(jsonParam, HttpConstant.UTF8_ENCODE);
+            stringEntity.setContentEncoding(HttpConstant.UTF8_ENCODE);
+            stringEntity.setContentType(HttpConstant.APPLICATION_JSON);
+            httpPost.setEntity(stringEntity);
+//            log.info("请求{}接口的参数为{}", url, jsonParam);
+            // 执行发送,获取相应结果
+            httpResponse = httpClient.execute(httpPost);
+            httpEntity = httpResponse.getEntity();
+            result = EntityUtils.toString(httpEntity);
+        } catch (Exception e) {
+            log.error("请求{}接口出现异常", url, e);
+            if (reSend > 0) {
+                log.info("请求{}出现异常:{},进行重发。进行第{}次重发", url, e.getMessage(), (HttpConstant.REQ_TIMES - reSend + 1));
+                result = sendPostByJson(url, jsonParam, reSend - 1, headerKey, headerValue);
+                if (result != null && !"".equals(result)) {
+                    return result;
+                }
+            }
+        } finally {
+            try {
+                EntityUtils.consume(httpEntity);
+            } catch (IOException e) {
+                log.error("http请求释放资源异常", e);
+            }
+        }
+        // 请求接口的响应时间
+        endTime = System.currentTimeMillis();
+//        log.info("请求{}接口的响应报文内容为{},本次请求API接口的响应时间为:{}毫秒", url, result, (endTime - startTime));
+        return result;
+
+    }
+
+    /**
+     * 使用http请求调用接口,参数类型为xml
+     * 
+     * @param urlStr
+     *            请求地址
+     * @param data
+     *            请求参数
+     * @return 调用结果
+     */
+    public static String httpsRequest(String urlStr, String data) {
+        try {
+            URL url = new URL(urlStr);
+            URLConnection con = url.openConnection();
+            con.setDoOutput(true);
+            // con.setRequestProperty("Pragma:", "no-cache");
+            con.setRequestProperty("Cache-Control", "no-cache");
+            con.setRequestProperty("Content-Type", "text/xml");
+
+            OutputStreamWriter out = new OutputStreamWriter(con.getOutputStream());
+            log.info("urlStr=" + urlStr);
+            log.info("xmlInfo=" + data);
+            out.write(new String(data.getBytes("UTF-8")));
+            out.flush();
+            out.close();
+            BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream()));
+            String line = "";
+            StringBuffer sb = new StringBuffer();
+            for (line = br.readLine(); line != null; line = br.readLine()) {
+                sb.append(line);
+            }
+            return sb.toString();
+        } catch (MalformedURLException e) {
+            e.printStackTrace();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return "";
+    }
+
+    /**
+     * http请求工具类,get请求
+     *
+     * @param url
+     * @param params
+     * @param resonseCharSet
+     * @return
+     * @throws Exception
+     */
+    public static String httpGet(String url, Map<String, Object> params, String... resonseCharSet) throws Exception {
+        DefaultHttpClient defaultHttpClient = null;
+        BufferedReader bufferedReader = null;
+        try {
+            defaultHttpClient = new DefaultHttpClient();
+            if (params != null) {
+                StringBuilder stringBuilder = new StringBuilder();
+                Iterator<String> iterator = params.keySet().iterator();
+                String key;
+                while (iterator.hasNext()) {
+                    key = iterator.next();
+                    Object val = params.get(key);
+                    if (val instanceof List) {
+                        List v = (List)val;
+                        for (Object o : v) {
+                            stringBuilder.append(key).append("=").append(o.toString()).append("&");
+                        }
+                    } else {
+                        stringBuilder.append(key).append("=").append(val.toString()).append("&");
+                    }
+                }
+                stringBuilder.deleteCharAt(stringBuilder.length() - 1);
+                url = url + "?" + stringBuilder.toString();
+                log.info("url:{}", url);
+            }
+            HttpGet httpGet = new HttpGet(url);
+            httpGet.setHeader("Content-Type", "application/json;charset=ut-8");
+            HttpResponse httpResponse = defaultHttpClient.execute(httpGet);
+            if (httpResponse.getStatusLine().getStatusCode() != 200) {
+                String errorLog = "请求失败,errorCode:" + httpResponse.getStatusLine().getStatusCode();
+                log.info("errorLog:{}"+errorLog);
+                throw new Exception(url + errorLog);
+            }
+            // 读取返回信息
+            String charSet = "utf-8";
+            if (resonseCharSet != null && resonseCharSet.length > 0)
+                charSet = resonseCharSet[0];
+            String output;
+            bufferedReader = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent(), charSet));
+
+            StringBuilder dataBuilder = new StringBuilder();
+            while ((output = bufferedReader.readLine()) != null) {
+                dataBuilder.append(output);
+            }
+            return dataBuilder.toString();
+        } catch (IOException e) {
+            e.printStackTrace();
+            throw e;
+        } finally {
+            if (defaultHttpClient != null)
+                defaultHttpClient.getConnectionManager().shutdown();
+            if (bufferedReader != null)
+                bufferedReader.close();
+        }
+    }
+
+
+
+    /**
+     * http请求工具类,post请求
+     *
+     * @param url
+     *            url
+     * @param param
+     *            参数值 仅支持String
+     * @return
+     * @throws Exception
+     */
+    public static String httpPost(String url, String param) throws Exception {
+        DefaultHttpClient defaultHttpClient = null;
+        BufferedReader bufferedReader = null;
+        try {
+            defaultHttpClient = new DefaultHttpClient();
+            HttpPost httpPost = new HttpPost(url);
+            httpPost.setHeader("Content-Type", "application/json;charset=utf-8");
+            if (StringUtils.isNotBlank(param)) {
+                log.info("参数值:{}", param);
+                HttpEntity httpEntity = new StringEntity(param, "utf-8");
+                httpPost.setEntity(httpEntity);
+            }
+            HttpResponse httpResponse = defaultHttpClient.execute(httpPost);
+            if (httpResponse.getStatusLine().getStatusCode() != 200) {
+                String errorLog = "请求失败,errorCode:" + httpResponse.getStatusLine().getStatusCode();
+                log.info(errorLog);
+                throw new Exception(url + errorLog);
+            }
+            // 读取返回信息
+            String output;
+            bufferedReader = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent(), "utf-8"));
+            StringBuilder stringBuilder = new StringBuilder();
+            while ((output = bufferedReader.readLine()) != null) {
+                stringBuilder.append(output);
+            }
+            log.info("调用微信接口返回的参数:" + stringBuilder.toString());
+            return stringBuilder.toString();
+        } catch (IOException e) {
+            e.printStackTrace();
+            throw e;
+        } finally {
+            if (defaultHttpClient != null)
+                defaultHttpClient.getConnectionManager().shutdown();
+            if (bufferedReader != null)
+                bufferedReader.close();
+        }
+    }
+
+
+
+    // HTTP GET请求
+    public static String sendGet(String url) throws Exception {
+        URL obj = new URL(url);
+        HttpURLConnection con = (HttpURLConnection) obj.openConnection();
+        //默认值GET
+        con.setRequestMethod("GET");
+        //添加请求头
+        con.setRequestProperty("User-Agent", USER_AGENT);
+        int responseCode = con.getResponseCode();
+        log.info("发送 'GET' 请求到 URL:{}" + url);
+        log.info("Response Code:{}" + responseCode);
+        BufferedReader in = new BufferedReader(
+                new InputStreamReader(con.getInputStream()));
+        String inputLine;
+        StringBuffer response = new StringBuffer();
+        while ((inputLine = in.readLine()) != null) {
+            response.append(inputLine);
+        }
+        in.close();
+        //打印结果
+        log.info("uu洗车返回:{}"+response.toString());
+        return response.toString();
+    }
+
+    /**
+     * http请求工具类,post请求
+     *
+     * @param url
+     *            url
+     * @param param
+     *            参数值 仅支持String
+     * @return
+     * @throws Exception
+     */
+    public static String httpPostAndToken(String url, String param,Map headerMap) throws Exception {
+        DefaultHttpClient defaultHttpClient = null;
+        BufferedReader bufferedReader = null;
+        try {
+            defaultHttpClient = new DefaultHttpClient();
+            HttpPost httpPost = new HttpPost(url);
+            httpPost.setHeader("Content-Type", "application/json;charset=utf-8");
+//            httpPost.setHeader("Authorization", headerMap.get("Authorization").toString());
+//            httpPost.setHeader("Host", headerMap.get("Host").toString());
+
+            for (Object key : headerMap.keySet()) {
+                httpPost.setHeader(key.toString(), headerMap.get(key).toString());
+            }
+            if (StringUtils.isNotBlank(param)) {
+                log.info("参数值:{}", param);
+                HttpEntity httpEntity = new StringEntity(param, "utf-8");
+                httpPost.setEntity(httpEntity);
+//                httpPost.setHeader("Content-Length", String.valueOf(httpEntity.getContentLength()));
+            }
+            HttpResponse httpResponse = defaultHttpClient.execute(httpPost);
+            if (httpResponse.getStatusLine().getStatusCode() != 200) {
+                int statusCode = httpResponse.getStatusLine().getStatusCode();
+                String errorLog = "请求失败,errorCode:" + httpResponse.getStatusLine().getStatusCode();
+                log.info(errorLog);
+                throw new Exception(url + errorLog);
+            }
+            // 读取返回信息
+            String output;
+            bufferedReader = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent(), "utf-8"));
+            StringBuilder stringBuilder = new StringBuilder();
+            while ((output = bufferedReader.readLine()) != null) {
+                stringBuilder.append(output);
+            }
+            log.info("调用接口返回的参数:" + stringBuilder.toString());
+            return stringBuilder.toString();
+        } catch (IOException e) {
+            e.printStackTrace();
+            throw e;
+        } finally {
+            if (defaultHttpClient != null)
+                defaultHttpClient.getConnectionManager().shutdown();
+            if (bufferedReader != null)
+                bufferedReader.close();
+        }
+    }
+
+    public static void main(String[] args) throws IOException {
+        DefaultHttpClient  defaultHttpClient = new DefaultHttpClient();
+        HttpPost httpPost = new HttpPost("https://dptest.d-power.com.cn:14404/v1/face");
+//        httpPost.setHeader("Content-Type", "application/json;charset=utf-8");
+        httpPost.setHeader("Authorization", "DpToken P3JHgjLbyljfLrFnS9OZbATRJmacdt4b");
+        httpPost.setHeader("Host", "123.60.2.66");
+//        httpPost.setHeader("Content-Length", String.valueOf(entity.getContentLength()));
+
+//        httpPost.setHeader("User-Agent", "Apache-HttpClient/4.5.12 (Java/1.8.0_162)[\\r][\\n]");
+        httpPost.setEntity(new StringEntity("{\"positions\":[{\"role\":\"occupant\",\"communityId\":\"64f99b2ed26106d4f0fe93f4\",\"unitId\":\"64f99b2ed26106d4f0fe93f7\"}],\"tel\":\"15696695118\",\"name\":\"四月里3\",\"timeout\":10,\"image\":\"fsdfsdfsdf\"}", "utf-8"));
+//        httpPost.setHeader("Content-Length", String.valueOf(entity.getContentLength()));
+        HttpResponse httpResponse = defaultHttpClient.execute(httpPost);
+        System.out.println(httpResponse.getEntity());
+    }
+
+    /**
+     * get请求
+     * 
+     * @param url
+     *            请求地址(get请求时参数自己组装到url上)
+     * @param headerMap
+     *            请求头
+     * @return 响应文本
+     */
+    public static String get(String url, Map<String, String> headerMap, String param) {
+        // 请求地址,以及参数设置
+        HttpPost post = new HttpPost(url);
+        if (headerMap != null) {
+            for (Map.Entry<String, String> entry : headerMap.entrySet()) {
+                post.setHeader(entry.getKey(), entry.getValue());
+            }
+        }
+        if (StringUtils.isNotBlank(param)) {
+            log.info("参数值:{}", param);
+            HttpEntity httpEntity = new StringEntity(param, "utf-8");
+            post.setEntity(httpEntity);
+        }
+        // 执行请求,获取相应
+        return getRespString(post);
+    }
+
+    /**
+     * get请求
+     *
+     * @param url
+     *            请求地址(get请求时参数自己组装到url上)
+     * @param headerMap
+     *            请求头
+     * @return 响应文本
+     */
+    public static String getUU(String url, Map<String, String> headerMap, String param) {
+        // 请求地址,以及参数设置
+        HttpPost post = new HttpPost(url);
+
+        SSLContext sslContext = null;
+        try {
+            sslContext = SSLContexts.custom().loadTrustMaterial(null, new TrustStrategy() {
+                @Override
+                public boolean isTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {
+                    return true;
+                }
+            }).build();
+        } catch (NoSuchAlgorithmException e) {
+            e.printStackTrace();
+        } catch (KeyManagementException e) {
+            e.printStackTrace();
+        } catch (KeyStoreException e) {
+            e.printStackTrace();
+        }
+
+        CloseableHttpClient client = HttpClients.custom().setSslcontext(sslContext).
+                setSSLHostnameVerifier(new NoopHostnameVerifier()).build();
+
+
+        //请求超时时间设置
+        post.setConfig(RequestConfig.custom()// 连接超时时间
+                .setConnectTimeout(5000)
+        // 请求超时时间
+                .setConnectionRequestTimeout(5000)
+        // Socket读取超时时间
+                .setSocketTimeout(5000)
+        // 是否允许重定向
+                .setRedirectsEnabled(false)
+                .build());
+
+         //发送请求
+        CloseableHttpResponse response = null;
+        try {
+            response = client.execute(post);
+        } catch (IOException e) {
+            e.printStackTrace();
+            log.error("request error. ");
+
+        }
+        HttpEntity entity = response.getEntity();
+        try {
+            if (entity != null) {
+                //按指定编码转换结果实体为String类型
+                return EntityUtils.toString(entity, "UTF-8");
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+
+        return null;
+    }
+
+
+
+    /**
+     * 获取响应信息(String)
+     */
+    public static String getRespString(HttpUriRequest request) {
+        // 获取响应流
+        InputStream in = getRespInputStream(request);
+
+        StringBuilder sb = new StringBuilder();
+        String line;
+
+        BufferedReader br = new BufferedReader(new InputStreamReader(in));
+        try {
+            while ((line = br.readLine()) != null) {
+                sb.append(line);
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        String str = sb.toString();
+        return str;
+    }
+
+    /**
+     * 获取响应信息(InputStream)
+     */
+    public static InputStream getRespInputStream(HttpUriRequest request) {
+        // 获取响应对象
+        HttpResponse response = null;
+        try {
+            response = HttpClients.createDefault().execute(request);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        if (response == null) {
+            return null;
+        }
+        // 获取Entity对象
+        HttpEntity entity = response.getEntity();
+        // 获取响应信息流
+        InputStream in = null;
+        if (entity != null) {
+            try {
+                in = entity.getContent();
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+        }
+        return in;
+    }
+
+    /**
+     * 退款请求微信
+     * @param url   请求地址
+     * @param data  请求数据
+     * @param mchId 商户id
+     * @param isTest    是否是测试
+     * @return  退款结果
+     * @throws Exception    抛出异常
+     */
+    public static String doRefund(String url, String data,String mchId,Boolean isTest) throws Exception{
+        KeyStore keyStore  = KeyStore.getInstance("PKCS12");
+        //P12文件目录 证书路径,这里需要你自己修改,linux下还是windows下的根路径
+        String filepath = "/mnt/data/refund/huacheng/";
+
+        System.out.println("filepath->"+filepath);
+        FileInputStream instream = new FileInputStream(filepath+"apiclient_cert.p12");
+        try {
+            keyStore.load(instream, mchId.toCharArray());//这里写密码..默认是你的MCHID
+        } finally {
+            instream.close();
+        }
+
+        // Trust own CA and all self-signed certs
+        SSLContext sslcontext = SSLContexts.custom()
+                .loadKeyMaterial(keyStore, mchId.toCharArray())//这里也是写密码的
+                .build();
+        // Allow TLSv1 protocol only
+        SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(
+                sslcontext,
+                SSLConnectionSocketFactory.getDefaultHostnameVerifier());
+        CloseableHttpClient httpclient = HttpClients.custom()
+                .setSSLSocketFactory(sslsf)
+                .build();
+        try {
+            HttpPost httpost = new HttpPost(url); // 设置响应头信息
+            httpost.addHeader("Connection", "keep-alive");
+            httpost.addHeader("Accept", "*/*");
+            httpost.addHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
+            httpost.addHeader("Host", "api.mch.weixin.qq.com");
+            httpost.addHeader("X-Requested-With", "XMLHttpRequest");
+            httpost.addHeader("Cache-Control", "max-age=0");
+            httpost.addHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0) ");
+            httpost.setEntity(new StringEntity(data, "UTF-8"));
+            CloseableHttpResponse response = httpclient.execute(httpost);
+            try {
+                HttpEntity entity = response.getEntity();
+
+                String jsonStr = EntityUtils.toString(response.getEntity(), "UTF-8");
+                log.info("请求微信退款接口返回结果:" + JSONObject.toJSONString(jsonStr));
+                EntityUtils.consume(entity);
+                return jsonStr;
+            } finally {
+                response.close();
+            }
+        } finally {
+            httpclient.close();
+        }
+
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpHelper.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpHelper.java
new file mode 100644
index 0000000..130a39b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpHelper.java
@@ -0,0 +1,45 @@
+package com.panzhihua.common.utlis;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.nio.charset.StandardCharsets;
+
+import javax.servlet.ServletRequest;
+
+import org.apache.commons.lang3.exception.ExceptionUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * 通用http工具封装
+ * 
+ * @author huanghongfa
+ */
+public class HttpHelper {
+    private static final Logger LOGGER = LoggerFactory.getLogger(HttpHelper.class);
+
+    public static String getBodyString(ServletRequest request) {
+        StringBuilder sb = new StringBuilder();
+        BufferedReader reader = null;
+        try (InputStream inputStream = request.getInputStream()) {
+            reader = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8));
+            String line = "";
+            while ((line = reader.readLine()) != null) {
+                sb.append(line);
+            }
+        } catch (IOException e) {
+            LOGGER.warn("getBodyString出现问题!");
+        } finally {
+            if (reader != null) {
+                try {
+                    reader.close();
+                } catch (IOException e) {
+                    LOGGER.error(ExceptionUtils.getMessage(e));
+                }
+            }
+        }
+        return sb.toString();
+    }
+}
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
new file mode 100644
index 0000000..f009376
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/HttpUtils.java
@@ -0,0 +1,160 @@
+package com.panzhihua.common.utlis;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.ConnectException;
+import java.net.SocketTimeoutException;
+import java.net.URL;
+import java.net.URLConnection;
+import java.nio.charset.StandardCharsets;
+import java.security.cert.X509Certificate;
+
+import javax.net.ssl.*;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.model.dtos.wx.WxSubscribeDTO;
+
+/**
+ * 通用http发送方法
+ * 
+ * @author ruoyi
+ */
+public class HttpUtils {
+    private static final Logger log = LoggerFactory.getLogger(HttpUtils.class);
+
+    /**
+     * 向指定 URL 发送GET方法的请求
+     *
+     * @param url
+     *            发送请求的 URL
+     * @param param
+     *            请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
+     * @return 所代表远程资源的响应结果
+     */
+    public static String sendGet(String url, String param) {
+        return sendGet(url, param, Constants.UTF8);
+    }
+
+    /**
+     * 向指定 URL 发送GET方法的请求
+     *
+     * @param url
+     *            发送请求的 URL
+     * @param param
+     *            请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
+     * @param contentType
+     *            编码类型
+     * @return 所代表远程资源的响应结果
+     */
+    public static String sendGet(String url, String param, String contentType) {
+        StringBuilder result = new StringBuilder();
+        BufferedReader in = null;
+        try {
+            String urlNameString = url + "?" + param;
+//            log.info("sendGet - {}", urlNameString);
+            URL realUrl = new URL(urlNameString);
+            URLConnection connection = realUrl.openConnection();
+            connection.setRequestProperty("accept", "*/*");
+            connection.setRequestProperty("connection", "Keep-Alive");
+            connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
+            connection.connect();
+            in = new BufferedReader(new InputStreamReader(connection.getInputStream(), contentType));
+            String line;
+            while ((line = in.readLine()) != null) {
+                result.append(line);
+            }
+//            log.info("recv - {}", result);
+        } catch (ConnectException e) {
+            log.error("调用HttpUtils.sendGet ConnectException, url=" + url + ",param=" + param, e);
+        } catch (SocketTimeoutException e) {
+            log.error("调用HttpUtils.sendGet SocketTimeoutException, url=" + url + ",param=" + param, e);
+        } catch (IOException e) {
+            log.error("调用HttpUtils.sendGet IOException, url=" + url + ",param=" + param, e);
+        } catch (Exception e) {
+            log.error("调用HttpsUtil.sendGet Exception, url=" + url + ",param=" + param, e);
+        } finally {
+            try {
+                if (in != null) {
+                    in.close();
+                }
+            } catch (Exception ex) {
+                log.error("调用in.close Exception, url=" + url + ",param=" + param, ex);
+            }
+        }
+        return result.toString();
+    }
+
+    public static String wxMessageModeSendUrl(String token, WxSubscribeDTO subscribeDTO) throws Exception {
+        String tmpurl = "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=ACCESS_TOKEN";
+        String url = tmpurl.replace("ACCESS_TOKEN", token);
+        return HttpClientUtil.httpPost(url, subscribeDTO.toJSON());
+    }
+
+    public static String sendSSLPost(String url, String param) {
+        StringBuilder result = new StringBuilder();
+        String urlNameString = url + "?" + param;
+        try {
+            log.info("sendSSLPost - {}", urlNameString);
+            SSLContext sc = SSLContext.getInstance("SSL");
+            sc.init(null, new TrustManager[] {new TrustAnyTrustManager()}, new java.security.SecureRandom());
+            URL console = new URL(urlNameString);
+            HttpsURLConnection conn = (HttpsURLConnection)console.openConnection();
+            conn.setRequestProperty("accept", "*/*");
+            conn.setRequestProperty("connection", "Keep-Alive");
+            conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
+            conn.setRequestProperty("Accept-Charset", "utf-8");
+            conn.setRequestProperty("contentType", "utf-8");
+            conn.setDoOutput(true);
+            conn.setDoInput(true);
+
+            conn.setSSLSocketFactory(sc.getSocketFactory());
+            conn.setHostnameVerifier(new TrustAnyHostnameVerifier());
+            conn.connect();
+            InputStream is = conn.getInputStream();
+            BufferedReader br = new BufferedReader(new InputStreamReader(is));
+            String ret = "";
+            while ((ret = br.readLine()) != null) {
+                if (ret != null && !"".equals(ret.trim())) {
+                    result.append(new String(ret.getBytes(StandardCharsets.ISO_8859_1), StandardCharsets.UTF_8));
+                }
+            }
+            log.info("recv - {}", result);
+            conn.disconnect();
+            br.close();
+        } catch (ConnectException e) {
+            log.error("调用HttpUtils.sendSSLPost ConnectException, url=" + url + ",param=" + param, e);
+        } catch (SocketTimeoutException e) {
+            log.error("调用HttpUtils.sendSSLPost SocketTimeoutException, url=" + url + ",param=" + param, e);
+        } catch (IOException e) {
+            log.error("调用HttpUtils.sendSSLPost IOException, url=" + url + ",param=" + param, e);
+        } catch (Exception e) {
+            log.error("调用HttpsUtil.sendSSLPost Exception, url=" + url + ",param=" + param, e);
+        }
+        return result.toString();
+    }
+
+    private static class TrustAnyTrustManager implements X509TrustManager {
+        @Override
+        public void checkClientTrusted(X509Certificate[] chain, String authType) {}
+
+        @Override
+        public void checkServerTrusted(X509Certificate[] chain, String authType) {}
+
+        @Override
+        public X509Certificate[] getAcceptedIssuers() {
+            return new X509Certificate[] {};
+        }
+    }
+
+    private static class TrustAnyHostnameVerifier implements HostnameVerifier {
+        @Override
+        public boolean verify(String hostname, SSLSession session) {
+            return true;
+        }
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/IPUtil.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/IPUtil.java
new file mode 100644
index 0000000..1ae4e98
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/IPUtil.java
@@ -0,0 +1,170 @@
+package com.panzhihua.common.utlis;
+
+import com.alibaba.fastjson.JSONObject;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.servlet.http.HttpServletRequest;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
+
+/**
+ * @author huaping hu
+ * @version 1.0
+ * @ClassName: IPUtil
+ * @Desc: Ip工具类
+ * @date 2016年6月1日下午5:26:56
+ * @history v1.0
+ */
+@Slf4j
+public class IPUtil {
+
+    /**
+     * 描述:获取IP地址
+     *
+     * @param request
+     * @return
+     * @author huaping hu
+     * @date 2016年6月1日下午5:25:44
+     */
+    public static String getIpAddress(HttpServletRequest request) {
+        if (request == null) {
+            return "unknown";
+        }
+        String ip = request.getHeader("x-forwarded-for");
+        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+            ip = request.getHeader("Proxy-Client-IP");
+        }
+        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+            ip = request.getHeader("X-Forwarded-For");
+        }
+        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+            ip = request.getHeader("WL-Proxy-Client-IP");
+        }
+        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+            ip = request.getHeader("X-Real-IP");
+        }
+
+        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+            ip = request.getRemoteAddr();
+        }
+
+        return "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : ip;
+    }
+
+
+    /**
+     * 描述:获取IP+[IP所属地址]
+     *
+     * @param request
+     * @return
+     * @author huaping hu
+     * @date 2016年6月1日下午6:01:09
+     */
+    public static String getIpBelongAddress(HttpServletRequest request) {
+
+        String ip = getIpAddress(request);
+        String belongIp = getIPbelongAddress(ip);
+
+        return ip + belongIp;
+    }
+
+    /**
+     * 描述:获取IP所属地址
+     *
+     * @param ip
+     * @return
+     * @author huaping hu
+     * @date 2016年6月1日下午5:59:43
+     */
+    public static String getIPbelongAddress(String ip) {
+
+        String ipAddress = "[]";
+        try {
+            // 淘宝提供的服务地址
+            String context = call("http://ip.taobao.com/service/getIpInfo.php?ip=" + ip);
+            JSONObject fromObject = JSONObject.parseObject(context);
+            String code = fromObject.getString("code");
+            if (code.equals("0")) {
+                JSONObject jsonObject = fromObject.getJSONObject("data");
+                ipAddress = "[" + jsonObject.get("country") + "/" + jsonObject.get("city") + "]";
+            }
+        } catch (Exception e) {
+            log.error("获取IP所属地址出错");
+            // e.printStackTrace();
+        }
+        return ipAddress;
+    }
+
+    /**
+     * 描述:获取Ip所属地址
+     *
+     * @param urlStr
+     * @return
+     * @author huaping hu
+     * @date 2016年6月1日下午5:38:55
+     */
+    public static String call(String urlStr) {
+
+        try {
+
+            URL url = new URL(urlStr);
+            HttpURLConnection httpCon = (HttpURLConnection) url.openConnection();
+
+            httpCon.setConnectTimeout(3000);
+            httpCon.setDoInput(true);
+            httpCon.setRequestMethod("GET");
+
+            int code = httpCon.getResponseCode();
+
+            if (code == 200) {
+                return streamConvertToSting(httpCon.getInputStream());
+            }
+        } catch (Exception e) {
+            log.error("获取IP所属地址出错", e);
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    /**
+     * 描述:将InputStream转换成String
+     *
+     * @param is
+     * @return
+     * @author huaping hu
+     * @date 2016年6月1日下午5:51:53
+     */
+    public static String streamConvertToSting(InputStream is) {
+
+        String tempStr = "";
+        try {
+
+            if (is == null)
+                return null;
+            ByteArrayOutputStream arrayOut = new ByteArrayOutputStream();
+            byte[] by = new byte[1024];
+            int len = 0;
+            while ((len = is.read(by)) != -1) {
+                arrayOut.write(by, 0, len);
+            }
+            tempStr = new String(arrayOut.toByteArray());
+
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return tempStr;
+    }
+
+    public static void main(String[] args) {
+
+        String context = call("http://ip.taobao.com/service/getIpInfo.php?ip=120.192.182.1");
+
+        JSONObject fromObject = JSONObject.parseObject(context);
+        JSONObject jsonObject = fromObject.getJSONObject("data");
+        System.out.println(fromObject);
+        System.err.println(jsonObject.get("city"));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/IdCard.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/IdCard.java
new file mode 100644
index 0000000..1b49c03
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/IdCard.java
@@ -0,0 +1,64 @@
+package com.panzhihua.common.utlis;
+
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 年龄
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-02-06 17:27
+ **/
+public class IdCard {
+
+    public static int IdNOToAge(String IdNO) {
+        int leh = IdNO.length();
+        String dates = "";
+        int age = 0;
+        if (leh == 18) {
+            dates = IdNO.substring(6, 10);
+            SimpleDateFormat df = new SimpleDateFormat("yyyy");
+            String year = df.format(new Date());
+            age = Integer.parseInt(year) - Integer.parseInt(dates);
+        } else {
+            System.out.println("出错!身份证长度不是18位!");
+        }
+        return age;
+    }
+
+    public static Date birthDay(String Id) {
+        /*从身份证截取生日信息
+        
+         * author:huangjy 2016-07-15    Date转换成String,只需将parse方法换成format方法
+         * */
+        String year = Id.substring(6, 10);// 调用substring方法返回相关字段,注意索引从0开始
+        String month = Id.substring(10, 12);
+        String day = Id.substring(12, 14);
+        String birthday = year + "-" + month + "-" + day;
+        DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");// 定义一个时间转换格式“年-月-日”
+        Date date = null;
+        try { // 捕获类型转换(解析)异常
+            date = fmt.parse(birthday);
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return date;
+    }
+
+    public static Integer sex(String id) {
+        Integer sex;
+        if (Integer.parseInt(id.substring(16).substring(0, 1)) % 2 == 0) {// 判断性别
+            sex = 2;
+        } else {
+            sex = 1;
+        }
+        return sex;
+    }
+
+    public static void main(String[] args) {
+        System.out.println(birthDay("120000197802150561"));
+        System.out.println(birthDay("32000019951110538X"));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/IdCardUtil.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/IdCardUtil.java
new file mode 100644
index 0000000..893e74d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/IdCardUtil.java
@@ -0,0 +1,168 @@
+package com.panzhihua.common.utlis;
+
+import java.util.HashSet;
+import java.util.regex.Pattern;
+
+/**
+ * 身份证正则校验工具类
+ */
+public class IdCardUtil {
+    /** 大陆地区地域编码最大值 **/
+    public static final int MAX_MAINLAND_AREACODE = 659004;
+    /** 大陆地区地域编码最小值 **/
+    public static final int MIN_MAINLAND_AREACODE = 110000;
+    /** 香港地域编码值 **/
+    public static final int HONGKONG_AREACODE = 810000; // 香港地域编码值
+    /** 台湾地域编码值 **/
+    public static final int TAIWAN_AREACODE = 710000;
+    /** 澳门地域编码值 **/
+    public static final int MACAO_AREACODE = 820000;
+
+    /** 数字正则 **/
+    public static final String regexNum = "^[0-9]*$";
+    /** 闰年生日正则 **/
+    public static final String regexBirthdayInLeapYear =
+        "^((19[0-9]{2})|(200[0-9])|(201[0-5]))((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))$";
+    /** 平年生日正则 **/
+    public static final String regexBirthdayInCommonYear =
+        "^((19[0-9]{2})|(200[0-9])|(201[0-5]))((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))$";
+
+    private static final HashSet<String> BLACK_SET = new HashSet<String>() {
+
+        private static final long serialVersionUID = 48136604486603324L;
+        {
+            add("111111111111111");
+        }
+    };
+
+    /**
+     * <p>
+     * 身份证格式强校验
+     * </p>
+     * <p>
+     * 1、号码的结构 公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码, 八位数字出生日期码,三位数字顺序码和一位数字校验码。
+     * </p>
+     * <p>
+     * 2、地址码(前六位数)表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行。
+     * </p>
+     * <p>
+     * 3、出生日期码(第七位至十四位)表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日代码之间不用分隔符。
+     * </p>
+     * <p>
+     * 4、顺序码(第十五位至十七位)表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号, 顺序码的奇数分配给男性,偶数分配给女性。
+     * </p>
+     * <p>
+     * 5、校验码(第十八位数) (1)十七位数字本体码加权求和公式 S = Sum(Ai * Wi), i = 0, ... , 16 ,先对前17位数字的权求和 Ai:表示第i位置上的身份证号码数字值
+     * Wi:表示第i位置上的加权因子 Wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 (2)计算模 Y = mod(S, 11) (3)通过模得到对应的校验码 Y: 0 1 2 3 4 5 6 7 8
+     * 9 10 校验码: 1 0 X 9 8 7 6 5 4 3 2
+     * </p>
+     */
+    public static final boolean strongVerifyIdNumber(String idNumber) {
+        if (StringUtils.isBlank(idNumber)) {
+            return false;
+        }
+        idNumber = idNumber.trim();
+
+        if (BLACK_SET.contains(idNumber)) {
+            return false;
+        }
+        if (!checkIdNumberRegex(idNumber)) {
+            return false;
+        }
+        if (!checkIdNumberArea(idNumber.substring(0, 6))) {
+            return false;
+        }
+        idNumber = convertFifteenToEighteen(idNumber);
+        if (!checkBirthday(idNumber.substring(6, 14))) {
+            return false;
+        }
+        return checkIdNumberVerifyCode(idNumber);
+    }
+
+    /**
+     * 身份证正则校验
+     */
+    private static boolean checkIdNumberRegex(String idNumber) {
+        return Pattern.matches("^([0-9]{17}[0-9Xx])|([0-9]{15})$", idNumber);
+    }
+
+    /**
+     * 身份证地区码检查
+     */
+    private static boolean checkIdNumberArea(String idNumberArea) {
+        int areaCode = Integer.parseInt(idNumberArea);
+        if (areaCode == HONGKONG_AREACODE || areaCode == MACAO_AREACODE || areaCode == TAIWAN_AREACODE) {
+            return true;
+        }
+        return areaCode <= MAX_MAINLAND_AREACODE && areaCode >= MIN_MAINLAND_AREACODE;
+    }
+
+    /**
+     * 将15位身份证转换为18位
+     */
+    private static String convertFifteenToEighteen(String idNumber) {
+        if (15 != idNumber.length()) {
+            return idNumber;
+        }
+        idNumber = idNumber.substring(0, 6) + "19" + idNumber.substring(6, 15);
+        idNumber = idNumber + getVerifyCode(idNumber);
+        return idNumber;
+    }
+
+    /**
+     * 根据身份证前17位计算身份证校验码
+     */
+    private static String getVerifyCode(String idNumber) {
+        if (!Pattern.matches(regexNum, idNumber.substring(0, 17))) {
+            return null;
+        }
+        String[] ValCodeArr = {"1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2"};
+        String[] Wi = {"7", "9", "10", "5", "8", "4", "2", "1", "6", "3", "7", "9", "10", "5", "8", "4", "2"};
+
+        int sum = 0;
+        for (int i = 0; i < 17; i++) {
+            sum = sum + Integer.parseInt(String.valueOf(idNumber.charAt(i))) * Integer.parseInt(Wi[i]);
+        }
+        return ValCodeArr[sum % 11];
+    }
+
+    /**
+     * 身份证出生日期嘛检查
+     */
+    private static boolean checkBirthday(String idNumberBirthdayStr) {
+        Integer year = null;
+        try {
+            year = Integer.valueOf(idNumberBirthdayStr.substring(0, 4));
+        } catch (Exception e) {
+        }
+        if (null == year) {
+            return false;
+        }
+        if (isLeapYear(year)) {
+            return Pattern.matches(regexBirthdayInLeapYear, idNumberBirthdayStr);
+        } else {
+            return Pattern.matches(regexBirthdayInCommonYear, idNumberBirthdayStr);
+        }
+    }
+
+    /**
+     * 判断是否为闰年
+     */
+    private static boolean isLeapYear(int year) {
+        return (year % 400 == 0) || (year % 100 != 0 && year % 4 == 0);
+    }
+
+    /**
+     * 身份证校验码检查
+     */
+    private static boolean checkIdNumberVerifyCode(String idNumber) {
+        return getVerifyCode(idNumber).equalsIgnoreCase(idNumber.substring(17));
+    }
+
+    public static void main(String[] args) {
+        String cardNo = "510403201602230324";
+        Boolean isok = strongVerifyIdNumber(cardNo);
+        System.out.println();
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/IpUtils.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/IpUtils.java
new file mode 100644
index 0000000..2789a49
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/IpUtils.java
@@ -0,0 +1,165 @@
+package com.panzhihua.common.utlis;
+
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * 获取IP方法
+ * 
+ * @author huanghongfa
+ */
+public class IpUtils {
+    public static String getIpAddr(HttpServletRequest request) {
+        if (request == null) {
+            return "unknown";
+        }
+        String ip = request.getHeader("x-forwarded-for");
+        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+            ip = request.getHeader("Proxy-Client-IP");
+        }
+        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+            ip = request.getHeader("X-Forwarded-For");
+        }
+        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+            ip = request.getHeader("WL-Proxy-Client-IP");
+        }
+        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+            ip = request.getHeader("X-Real-IP");
+        }
+
+        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+            ip = request.getRemoteAddr();
+        }
+        return "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : EscapeUtil.clean(ip);
+    }
+
+    public static boolean internalIp(String ip) {
+        byte[] addr = textToNumericFormatV4(ip);
+        return internalIp(addr) || "127.0.0.1".equals(ip);
+    }
+
+    private static boolean internalIp(byte[] addr) {
+        if (StringUtils.isNull(addr) || addr.length < 2) {
+            return true;
+        }
+        final byte b0 = addr[0];
+        final byte b1 = addr[1];
+        // 10.x.x.x/8
+        final byte SECTION_1 = 0x0A;
+        // 172.16.x.x/12
+        final byte SECTION_2 = (byte)0xAC;
+        final byte SECTION_3 = (byte)0x10;
+        final byte SECTION_4 = (byte)0x1F;
+        // 192.168.x.x/16
+        final byte SECTION_5 = (byte)0xC0;
+        final byte SECTION_6 = (byte)0xA8;
+        switch (b0) {
+            case SECTION_1:
+                return true;
+            case SECTION_2:
+                if (b1 >= SECTION_3 && b1 <= SECTION_4) {
+                    return true;
+                }
+            case SECTION_5:
+                switch (b1) {
+                    case SECTION_6:
+                        return true;
+                }
+            default:
+                return false;
+        }
+    }
+
+    /**
+     * 将IPv4地址转换成字节
+     * 
+     * @param text
+     *            IPv4地址
+     * @return byte 字节
+     */
+    public static byte[] textToNumericFormatV4(String text) {
+        if (text.length() == 0) {
+            return null;
+        }
+
+        byte[] bytes = new byte[4];
+        String[] elements = text.split("\\.", -1);
+        try {
+            long l;
+            int i;
+            switch (elements.length) {
+                case 1:
+                    l = Long.parseLong(elements[0]);
+                    if ((l < 0L) || (l > 4294967295L)) {
+                        return null;
+                    }
+                    bytes[0] = (byte)(int)(l >> 24 & 0xFF);
+                    bytes[1] = (byte)(int)((l & 0xFFFFFF) >> 16 & 0xFF);
+                    bytes[2] = (byte)(int)((l & 0xFFFF) >> 8 & 0xFF);
+                    bytes[3] = (byte)(int)(l & 0xFF);
+                    break;
+                case 2:
+                    l = Integer.parseInt(elements[0]);
+                    if ((l < 0L) || (l > 255L)) {
+                        return null;
+                    }
+                    bytes[0] = (byte)(int)(l & 0xFF);
+                    l = Integer.parseInt(elements[1]);
+                    if ((l < 0L) || (l > 16777215L)) {
+                        return null;
+                    }
+                    bytes[1] = (byte)(int)(l >> 16 & 0xFF);
+                    bytes[2] = (byte)(int)((l & 0xFFFF) >> 8 & 0xFF);
+                    bytes[3] = (byte)(int)(l & 0xFF);
+                    break;
+                case 3:
+                    for (i = 0; i < 2; ++i) {
+                        l = Integer.parseInt(elements[i]);
+                        if ((l < 0L) || (l > 255L)) {
+                            return null;
+                        }
+                        bytes[i] = (byte)(int)(l & 0xFF);
+                    }
+                    l = Integer.parseInt(elements[2]);
+                    if ((l < 0L) || (l > 65535L)) {
+                        return null;
+                    }
+                    bytes[2] = (byte)(int)(l >> 8 & 0xFF);
+                    bytes[3] = (byte)(int)(l & 0xFF);
+                    break;
+                case 4:
+                    for (i = 0; i < 4; ++i) {
+                        l = Integer.parseInt(elements[i]);
+                        if ((l < 0L) || (l > 255L)) {
+                            return null;
+                        }
+                        bytes[i] = (byte)(int)(l & 0xFF);
+                    }
+                    break;
+                default:
+                    return null;
+            }
+        } catch (NumberFormatException e) {
+            return null;
+        }
+        return bytes;
+    }
+
+    public static String getHostIp() {
+        try {
+            return InetAddress.getLocalHost().getHostAddress();
+        } catch (UnknownHostException e) {
+        }
+        return "127.0.0.1";
+    }
+
+    public static String getHostName() {
+        try {
+            return InetAddress.getLocalHost().getHostName();
+        } catch (UnknownHostException e) {
+        }
+        return "未知";
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/JWTTokenUtil.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/JWTTokenUtil.java
new file mode 100644
index 0000000..73fd123
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/JWTTokenUtil.java
@@ -0,0 +1,173 @@
+package com.panzhihua.common.utlis;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.springframework.stereotype.Component;
+
+import com.panzhihua.common.constants.TokenConstant;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+
+import io.jsonwebtoken.Claims;
+import io.jsonwebtoken.Jwts;
+import io.jsonwebtoken.SignatureAlgorithm;
+
+/**
+ * token验证处理
+ *
+ * @author ruoyi
+ */
+@Component
+public class JWTTokenUtil implements Serializable {
+    /**
+     * 从数据声明生成令牌
+     *
+     * @param claims
+     *            数据声明
+     * @return 令牌
+     */
+    private static String generateToken(Map<String, Object> claims) {
+        Date expirationDate = new Date(System.currentTimeMillis() + TokenConstant.EXPIRETIME_LONG * 60 * 1000 * 72);
+        return Jwts.builder().setClaims(claims).setExpiration(expirationDate)
+            .signWith(SignatureAlgorithm.HS512, TokenConstant.SECRET).compact();
+    }
+
+    /**
+     * 生成刷新token
+     * 
+     * @param claims
+     *            tokenbody
+     * @return refreshtoken
+     */
+    private static String generateTokenRefreshToken(Map<String, Object> claims) {
+        Date expirationDate = new Date(System.currentTimeMillis() + TokenConstant.EXPIRETIME_REFRESH * 60 * 60 * 1000);
+        return Jwts.builder().setClaims(claims).setExpiration(expirationDate)
+            .signWith(SignatureAlgorithm.HS512, TokenConstant.SECRET).compact();
+    }
+
+    /**
+     * 从令牌中获取数据声明
+     *
+     * @param token
+     *            令牌
+     * @return 数据声明
+     */
+    public static Claims getClaimsFromToken(String token) {
+        Claims claims;
+        try {
+            claims = Jwts.parser().setSigningKey(TokenConstant.SECRET).parseClaimsJws(token).getBody();
+        } catch (Exception e) {
+            claims = null;
+        }
+        return claims;
+    }
+
+    /**
+     * 生成令牌
+     *
+     * @param loginUserInfoVO
+     *            用户
+     * @return 令牌
+     */
+    public static String generateToken(LoginUserInfoVO loginUserInfoVO) {
+        Map<String, Object> claims = new HashMap<>(2);
+        claims.put("sub", loginUserInfoVO.getUserId());
+        claims.put("created", new Date());
+        claims.put("type", loginUserInfoVO.getType());
+        return generateToken(claims);
+    }
+
+    /**
+     * 从令牌中获取用户名
+     *
+     * @param token
+     *            令牌
+     * @return 用户名
+     */
+    public static String getUsernameFromToken(String token) {
+        String username;
+        try {
+            Claims claims = getClaimsFromToken(token);
+            username = claims.getSubject();
+        } catch (Exception e) {
+            username = null;
+        }
+        return username;
+    }
+
+    /**
+     * 判断令牌是否过期
+     *
+     * @param token
+     *            令牌
+     * @return 是否过期
+     */
+    public static Boolean isTokenExpired(String token) {
+        try {
+            Claims claims = getClaimsFromToken(token);
+            Date expiration = claims.getExpiration();
+            return expiration.before(new Date());
+        } catch (Exception e) {
+            return true;
+        }
+    }
+
+    /**
+     * 刷新令牌
+     *
+     * @param token
+     *            原令牌
+     * @return 新令牌
+     */
+    public static String refreshToken(String token) {
+        String refreshedToken;
+        try {
+            Claims claims = getClaimsFromToken(token);
+            claims.put("created", new Date());
+            refreshedToken = generateToken(claims);
+        } catch (Exception e) {
+            refreshedToken = null;
+        }
+        return refreshedToken;
+    }
+
+    /**
+     * 验证令牌
+     *
+     * @param token
+     *            令牌
+     * @param loginUserInfoVO
+     *            用户
+     * @return 是否有效
+     */
+    public static Boolean validateToken(String token, LoginUserInfoVO loginUserInfoVO) {
+        String username = getUsernameFromToken(token);
+        return (username.equals(loginUserInfoVO.getUserId()) && !isTokenExpired(token));
+    }
+
+    public static void main(String[] args) {
+        Claims claims = JWTTokenUtil.getClaimsFromToken(
+            "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOjIsInR5cGUiOjEsImV4cCI6MTYwNjM1NzkzOSwiY3JlYXRlZCI6MTYwNjM1NjEzOTEzN30.zIj31TLHk4B9F45OszrJWfOlhZL5CWviP2RgsFP6LZuci6MlPn0iVbekioP01DRsu59mWd5FMyhd9WLvMtfxMg");
+        Boolean tokenExpired = JWTTokenUtil.isTokenExpired(
+            "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOjIsInR5cGUiOjEsImV4cCI6MTYwNjM2MDQzNSwiY3JlYXRlZCI6MTYwNjM1ODYzNTI3MX0.7R3SG6hu-sr_KiPpgepubl_1FdaooCNJ0URHWv6Jynr7m8JIar2kUAnhHfWOfHrNILQb5Q-nqxceXdavcuVOXg");
+        System.out.println(claims);
+    }
+
+    /**
+     * 生成刷新token
+     * 
+     * @param loginUserInfoVO
+     *            登录用户基本信息
+     * @return refreshtoken
+     */
+    public static String generateRefeshToken(LoginUserInfoVO loginUserInfoVO) {
+        Map<String, Object> claims = new HashMap<>(2);
+        claims.put("sub", loginUserInfoVO.getUserId());
+        claims.put("created", new Date());
+        claims.put("type", loginUserInfoVO.getType());
+        return generateTokenRefreshToken(claims);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/LabelUtils.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/LabelUtils.java
new file mode 100644
index 0000000..45efa5f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/LabelUtils.java
@@ -0,0 +1,35 @@
+package com.panzhihua.common.utlis;
+
+import com.panzhihua.common.model.vos.community.ComMngPopulationCommunityTagsVo;
+
+import java.util.List;
+
+/**
+ * @author lyq
+ * 社区标签工具类
+ */
+public class LabelUtils {
+
+    /**
+     * 社区标签转换
+     * @param communityTagsList 社区标签列表
+     * @return  社区标签
+     */
+    public static String assembleLabel(List<ComMngPopulationCommunityTagsVo> communityTagsList){
+        //创建用户拼接字符串
+        StringBuilder sb = new StringBuilder();
+        communityTagsList.forEach(tag -> {
+            if(StringUtils.isNotEmpty(tag.getLabel())){
+                sb.append(tag.getCommunityName());
+                sb.append(":");
+                sb.append(tag.getLabel());
+                sb.append(";");
+            }
+        });
+        String result = sb.toString();
+        if(StringUtils.isNotEmpty(result)){
+            result = result.substring(0,result.length() - 1);
+        }
+        return result;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ListUtils.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ListUtils.java
new file mode 100644
index 0000000..5fd33bd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ListUtils.java
@@ -0,0 +1,14 @@
+package com.panzhihua.common.utlis;
+
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.function.Function;
+import java.util.function.Predicate;
+
+public class ListUtils {
+
+    public static <T> Predicate<T> distinctByKey(Function<? super T, Object> keyExtractor) {
+        Map<Object, Boolean> seen = new ConcurrentHashMap<>();
+        return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/LngLatUtils.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/LngLatUtils.java
new file mode 100644
index 0000000..56eec9c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/LngLatUtils.java
@@ -0,0 +1,74 @@
+package com.panzhihua.common.utlis;
+
+import java.awt.geom.Point2D;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.panzhihua.common.model.vos.grid.LatLngVO;
+
+public class LngLatUtils {
+
+    public static boolean check(Point2D.Double _point, List<Point2D.Double> polygon) {
+        java.awt.geom.GeneralPath peneralPath = new java.awt.geom.GeneralPath();
+
+        Point2D.Double first = polygon.get(0);
+        peneralPath.moveTo(first.x, first.y);
+        polygon.remove(0);
+
+        for (Point2D.Double d : polygon) {
+            peneralPath.lineTo(d.x, d.y);
+        }
+
+        peneralPath.lineTo(first.x, first.y);
+        peneralPath.closePath();
+
+        return peneralPath.contains(_point);
+    }
+
+    /**
+     *
+     * @param bound
+     *            经纬度数组
+     * @param pointlng
+     *            短
+     * @param pointLat
+     *            长
+     * @return
+     */
+    public static boolean isInPolygon(List<LatLngVO> bound, double pointlng, double pointLat) {
+        Point2D.Double point = new Point2D.Double(pointlng, pointLat);
+        List<Point2D.Double> pointList = new ArrayList<>();
+        for (int i = 0; i < bound.size(); i++) {
+            pointList.add(new Point2D.Double(bound.get(i).getLng(), bound.get(i).getLat()));
+        }
+        return check(point, pointList);
+    }
+
+    /**
+     * 从txt数据中获取经纬度
+     * 
+     * @param lngLatTxt
+     * @return
+     */
+    public static List<LatLngVO> getLatLngFromText(String lngLatTxt) {
+        List<LatLngVO> rtResult = new ArrayList<>();
+        String str = lngLatTxt.replace("[[", "");
+
+        str = str.replace("]]", "");
+        String[] loca = str.split("],\\[");
+        for (int i = 0; i < loca.length; i++) {
+            String[] loca1 = loca[i].split(",");
+            rtResult.add(new LatLngVO(Double.valueOf(loca1[0]), Double.valueOf(loca1[1])));
+        }
+        return rtResult;
+    }
+
+    public static void main(String[] args) {
+        String latLngTxt =
+            "[[104.066974,30.660293],[104.053394,30.658114],[104.059921,30.657076],[104.065231,30.657086]]";
+        List<LatLngVO> latLngList = getLatLngFromText(latLngTxt);
+
+        System.out.println(isInPolygon(latLngList, 104.063398, 30.657929));
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/LogUtils.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/LogUtils.java
new file mode 100644
index 0000000..bfd6dbc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/LogUtils.java
@@ -0,0 +1,15 @@
+package com.panzhihua.common.utlis;
+
+/**
+ * 处理并记录日志文件
+ * 
+ * @author huanghongfa
+ */
+public class LogUtils {
+    public static String getBlock(Object msg) {
+        if (msg == null) {
+            msg = "";
+        }
+        return "[" + msg.toString() + "]";
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/MathUtils.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/MathUtils.java
new file mode 100644
index 0000000..4b58fd8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/MathUtils.java
@@ -0,0 +1,24 @@
+package com.panzhihua.common.utlis;
+
+import java.math.BigDecimal;
+
+/**
+ * @author lyq
+ * 数学计算公式工具类
+ */
+public class MathUtils {
+
+    /**
+     * 生成区间随机数
+     * @param max   最大值
+     * @param min   最小值
+     * @return  随机数
+     */
+    public static BigDecimal getRandomNumber(BigDecimal max, BigDecimal min){
+        float minF = min.floatValue();
+        float maxF = max.floatValue();
+        //生成随机数
+        BigDecimal db = new BigDecimal(Math.random() * (maxF - minF) + minF);
+        return db.setScale(2,BigDecimal.ROUND_DOWN);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/MessageUtils.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/MessageUtils.java
new file mode 100644
index 0000000..9e63c85
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/MessageUtils.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.utlis;
+
+import org.springframework.context.MessageSource;
+import org.springframework.context.i18n.LocaleContextHolder;
+
+/**
+ * 获取i18n资源文件
+ * 
+ * @author ruoyi
+ */
+public class MessageUtils {
+    /**
+     * 根据消息键和参数 获取消息 委托给spring messageSource
+     *
+     * @param code
+     *            消息键
+     * @param args
+     *            参数
+     * @return 获取国际化翻译值
+     */
+    public static String message(String code, Object... args) {
+        MessageSource messageSource = SpringUtils.getBean(MessageSource.class);
+        return messageSource.getMessage(code, args, LocaleContextHolder.getLocale());
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/MimeTypeUtils.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/MimeTypeUtils.java
new file mode 100644
index 0000000..34e1a5a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/MimeTypeUtils.java
@@ -0,0 +1,59 @@
+package com.panzhihua.common.utlis;
+
+/**
+ * 媒体类型工具类
+ * 
+ * @author
+ */
+public class MimeTypeUtils
+{
+    public static final String IMAGE_PNG = "image/png";
+
+    public static final String IMAGE_JPG = "image/jpg";
+
+    public static final String IMAGE_JPEG = "image/jpeg";
+
+    public static final String IMAGE_BMP = "image/bmp";
+
+    public static final String IMAGE_GIF = "image/gif";
+    
+    public static final String[] IMAGE_EXTENSION = { "bmp", "gif", "jpg", "jpeg", "png" };
+
+    public static final String[] FLASH_EXTENSION = { "swf", "flv" };
+
+    public static final String[] MEDIA_EXTENSION = { "swf", "flv", "mp3", "wav", "wma", "wmv", "mid", "avi", "mpg",
+            "asf", "rm", "rmvb" };
+
+    public static final String[] VIDEO_EXTENSION = { "mp4", "avi", "rmvb" };
+
+    public static final String[] DEFAULT_ALLOWED_EXTENSION = {
+            // 图片
+            "bmp", "gif", "jpg", "jpeg", "png",
+            // word excel powerpoint
+            "doc", "docx", "xls", "xlsx", "ppt", "pptx", "html", "htm", "txt",
+            // 压缩文件
+            "rar", "zip", "gz", "bz2",
+            // 视频格式
+            "mp4", "avi", "rmvb",
+            // pdf
+            "pdf" };
+
+    public static String getExtension(String prefix)
+    {
+        switch (prefix)
+        {
+            case IMAGE_PNG:
+                return "png";
+            case IMAGE_JPG:
+                return "jpg";
+            case IMAGE_JPEG:
+                return "jpeg";
+            case IMAGE_BMP:
+                return "bmp";
+            case IMAGE_GIF:
+                return "gif";
+            default:
+                return "";
+        }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/OrderNoUtils.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/OrderNoUtils.java
new file mode 100644
index 0000000..dcc28a9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/OrderNoUtils.java
@@ -0,0 +1,76 @@
+package com.panzhihua.common.utlis;
+
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+public class OrderNoUtils {
+    private static int sn = 0;
+
+    // 防止创建类的实例
+    private OrderNoUtils() {
+    }
+
+    public static String NextOrderNo(Long userId) {
+        if (sn == 999)
+            sn = 0;
+        else
+            sn++;
+        DateFormat df = new SimpleDateFormat("MMddHHmmss");
+        return df.format(new Date()) + padRight(String.valueOf(userId), 5, '0') + padRight(String.valueOf(sn), 3, '0')
+                + getRandomNumber();
+    }
+
+    public static String NextOrderNoFlower(Long userId) {
+        DateFormat df = new SimpleDateFormat("MMddHHmmss");
+        return df.format(new Date()) + padRight(String.valueOf(userId), 3, '0')
+                + getRandomNumber();
+    }
+
+    public static String nextDeliveryNo() {
+        if (sn == 999)
+            sn = 0;
+        else
+            sn++;
+        DateFormat df = new SimpleDateFormat("MMddHHmmss");
+        return "PS" + df.format(new Date()) + padRight(String.valueOf(sn), 3, '0')
+                + getRandomNumber();
+    }
+
+    public static String padLeft(String src, int len, char ch) {
+        int diff = len - src.length();
+        if (diff <= 0) {
+            return src;
+        }
+
+        char[] charr = new char[len];
+        System.arraycopy(src.toCharArray(), 0, charr, 0, src.length());
+        for (int i = src.length(); i < len; i++) {
+            charr[i] = ch;
+        }
+        return new String(charr);
+    }
+
+    public static String padRight(String src, int len, char ch) {
+        int diff = len - src.length();
+        if (diff <= 0) {
+            return src;
+        }
+
+        char[] charr = new char[len];
+        System.arraycopy(src.toCharArray(), 0, charr, diff, src.length());
+        for (int i = 0; i < diff; i++) {
+            charr[i] = ch;
+        }
+        return new String(charr);
+    }
+
+    /**
+     * 获取三位随机数
+     *
+     * @return 三位随机数
+     */
+    private static String getRandomNumber() {
+        return String.valueOf(new Double((Math.random() * 9 + 1) * (Math.pow(10, 3 - 1))).intValue());
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ParamRegularUtil.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ParamRegularUtil.java
new file mode 100644
index 0000000..bd39ffb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ParamRegularUtil.java
@@ -0,0 +1,25 @@
+package com.panzhihua.common.utlis;
+
+import java.util.regex.Pattern;
+
+/**
+ * @Author: llming
+ * @Description:参数正则匹配工具类
+ */
+public class ParamRegularUtil {
+    /**
+     * 车牌号校验
+     * 
+     * @param carNum
+     */
+    public static boolean carNumRegular(String carNum) {
+        String pattern =
+            "([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼]{1}(([A-HJ-Z]{1}[A-HJ-NP-Z0-9]{5})|([A-HJ-Z]{1}(([DF]{1}[A-HJ-NP-Z0-9]{1}[0-9]{4})|([0-9]{5}[DF]{1})))|([A-HJ-Z]{1}[A-D0-9]{1}[0-9]{3}警)))|([0-9]{6}使)|((([沪粤川云桂鄂陕蒙藏黑辽渝]{1}A)|鲁B|闽D|蒙E|蒙H)[0-9]{4}领)|(WJ[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼·•]{1}[0-9]{4}[TDSHBXJ0-9]{1})|([VKHBSLJNGCE]{1}[A-DJ-PR-TVY]{1}[0-9]{5})";
+        return Pattern.matches(pattern, carNum);
+    }
+
+    public static void main(String[] args) {
+        boolean cdsaf = carNumRegular("粤B12345");
+        System.out.println(cdsaf);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/PayUtil.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/PayUtil.java
new file mode 100644
index 0000000..152b4b9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/PayUtil.java
@@ -0,0 +1,202 @@
+package com.panzhihua.common.utlis;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.math.BigDecimal;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+import java.nio.charset.StandardCharsets;
+import java.security.MessageDigest;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+import org.jdom2.input.SAXBuilder;
+
+public class PayUtil {
+
+    /**
+     * 获取当前机器的ip
+     */
+    public static String getLocalIp() {
+        InetAddress ia = null;
+        String localip = null;
+        try {
+            ia = InetAddress.getLocalHost();
+            localip = ia.getHostAddress();
+        } catch (UnknownHostException e) {
+            e.printStackTrace();
+        }
+        return localip;
+    }
+
+    @SuppressWarnings("rawtypes")
+    public static String getRequestXml(SortedMap<Object, Object> parameters) {
+        StringBuffer sb = new StringBuffer();
+        sb.append("<xml>");
+        Set es = parameters.entrySet();
+        Iterator it = es.iterator();
+        while (it.hasNext()) {
+            Map.Entry entry = (Map.Entry)it.next();
+            String k = (String)entry.getKey();
+            String v = (String)entry.getValue();
+            if ("attach".equalsIgnoreCase(k) || "body".equalsIgnoreCase(k) || "sign".equalsIgnoreCase(k)) {
+                sb.append("<" + k + ">" + "<![CDATA[" + v + "]]></" + k + ">");
+            } else {
+                sb.append("<" + k + ">" + v + "</" + k + ">");
+            }
+        }
+        sb.append("</xml>");
+        return sb.toString();
+    }
+
+    /**
+     * 创建签名Sign
+     */
+    @SuppressWarnings("rawtypes")
+    public static String createSign(String characterEncoding, SortedMap<Object, Object> parameters, String key) {
+        StringBuffer sb = new StringBuffer();
+        Set es = parameters.entrySet();
+        Iterator<?> it = es.iterator();
+        while (it.hasNext()) {
+            Map.Entry entry = (Map.Entry)it.next();
+            String k = (String)entry.getKey();
+            if (entry.getValue() != null || !"".equals(entry.getValue())) {
+                String v = String.valueOf(entry.getValue());
+                if (null != v && !"".equals(v) && !"sign".equals(k) && !"key".equals(k)) {
+                    sb.append(k + "=" + v + "&");
+                }
+            }
+        }
+        sb.append("key=" + key);
+        String sign = "";
+        try {
+            sign = MD5(sb.toString());
+        } catch (Exception e) {
+            return e.getMessage();
+        }
+        return sign;
+    }
+
+    /**
+     * 生成随机数
+     */
+    public static String makeUUID(int len) {
+        return UUID.randomUUID().toString().replaceAll("-", "").substring(0, len);
+    }
+
+    /**
+     * 生成订单号
+     */
+    public static String generateOrderNo() {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyMMdd");
+        return sdf.format(new Date()) + makeUUID(16);
+    }
+
+    /**
+     * 解析xml
+     */
+    public static Map doXMLParse(String strxml) throws Exception {
+        strxml = strxml.replaceFirst("encoding=\".*\"", "encoding=\"UTF-8\"");
+        if (StringUtils.isNotEmpty(strxml)) {
+            return null;
+        }
+        Map m = new HashMap();
+        InputStream in = new ByteArrayInputStream(strxml.getBytes(StandardCharsets.UTF_8));
+        SAXBuilder builder = new SAXBuilder();
+        org.jdom2.Document doc = builder.build(in);
+        org.jdom2.Element root = doc.getRootElement();
+        List list = root.getChildren();
+        Iterator it = list.iterator();
+        while (it.hasNext()) {
+            org.jdom2.Element e = (org.jdom2.Element)it.next();
+            String k = e.getName();
+            String v = "";
+            List children = e.getChildren();
+            if (children.isEmpty()) {
+                v = e.getTextNormalize();
+            } else {
+                v = getChildrenText(children);
+            }
+            m.put(k, v);
+        }
+        // 关闭流
+        in.close();
+        return m;
+    }
+
+    /**
+     * 获取子节点的xml
+     */
+    public static String getChildrenText(List children) {
+        StringBuffer sb = new StringBuffer();
+        if (!children.isEmpty()) {
+            Iterator it = children.iterator();
+            while (it.hasNext()) {
+                org.jdom2.Element e = (org.jdom2.Element)it.next();
+                String name = e.getName();
+                String value = e.getTextNormalize();
+                List list = e.getChildren();
+                sb.append("<" + name + ">");
+                if (!list.isEmpty()) {
+                    sb.append(getChildrenText(list));
+                }
+                sb.append(value);
+                sb.append("</" + name + ">");
+            }
+        }
+        return sb.toString();
+    }
+
+    /**
+     * 转换金额到整型
+     */
+    public static String moneyToIntegerStr(BigDecimal money) {
+        int amount = money.multiply(new BigDecimal((100))).setScale(0, BigDecimal.ROUND_HALF_UP).intValue();
+        return String.valueOf(amount);
+    }
+
+    /**
+     * 微信下单,map to xml
+     * 
+     * @param params
+     *            参数
+     * @return String
+     */
+    public static String mapToXml(Map<String, String> params) {
+        StringBuilder xml = new StringBuilder();
+        xml.append("<xml>");
+        for (Map.Entry<String, String> entry : params.entrySet()) {
+            String key = entry.getKey();
+            String value = entry.getValue();
+            // 略过空值
+            if (StringUtils.isEmpty(value))
+                continue;
+            xml.append("<").append(key).append("><![CDATA[");
+            xml.append(entry.getValue());
+            xml.append("]]></").append(key).append(">");
+        }
+        xml.append("</xml>");
+        return xml.toString();
+    }
+
+    /**
+     * 生成 MD5
+     *
+     * @param data
+     *            待处理数据
+     * @return MD5结果
+     */
+    public static String MD5(String data) throws Exception {
+        java.security.MessageDigest md = MessageDigest.getInstance("MD5");
+        byte[] array = md.digest(data.getBytes(StandardCharsets.UTF_8));
+        StringBuilder sb = new StringBuilder();
+        for (byte item : array) {
+            sb.append(Integer.toHexString((item & 0xFF) | 0x100), 1, 3);
+        }
+        return sb.toString().toUpperCase();
+    }
+
+    public static String create_timestamp() {
+        return Long.toString(System.currentTimeMillis() / 1000);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/QRCodeUtils.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/QRCodeUtils.java
new file mode 100644
index 0000000..fb808cf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/QRCodeUtils.java
@@ -0,0 +1,264 @@
+package com.panzhihua.common.utlis;
+
+import java.awt.BasicStroke;
+import java.awt.Graphics;
+import java.awt.Graphics2D;
+import java.awt.Image;
+import java.awt.Shape;
+import java.awt.geom.RoundRectangle2D;
+import java.awt.image.BufferedImage;
+import java.io.File;
+import java.io.OutputStream;
+import java.util.Hashtable;
+import java.util.Random;
+
+import javax.imageio.ImageIO;
+
+import com.google.zxing.BarcodeFormat;
+import com.google.zxing.BinaryBitmap;
+import com.google.zxing.DecodeHintType;
+import com.google.zxing.EncodeHintType;
+import com.google.zxing.MultiFormatReader;
+import com.google.zxing.MultiFormatWriter;
+import com.google.zxing.Result;
+import com.google.zxing.client.j2se.BufferedImageLuminanceSource;
+import com.google.zxing.common.BitMatrix;
+import com.google.zxing.common.HybridBinarizer;
+import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
+
+public class QRCodeUtils {
+    private static final String CHARSET = "utf-8";
+    private static final String FORMAT_NAME = "JPG";
+    // 二维码尺寸
+    private static final int QRCODE_SIZE = 300;
+    // LOGO宽度
+    private static final int WIDTH = 60;
+    // LOGO高度
+    private static final int HEIGHT = 60;
+
+    private static BufferedImage createImage(String content, String imgPath,
+                                             boolean needCompress) throws Exception {
+        Hashtable<EncodeHintType, Object> hints = new Hashtable<EncodeHintType, Object>();
+        hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);
+        hints.put(EncodeHintType.CHARACTER_SET, CHARSET);
+        hints.put(EncodeHintType.MARGIN, 1);
+        BitMatrix bitMatrix = new MultiFormatWriter().encode(content,
+                BarcodeFormat.QR_CODE, QRCODE_SIZE, QRCODE_SIZE, hints);
+        int width = bitMatrix.getWidth();
+        int height = bitMatrix.getHeight();
+        BufferedImage image = new BufferedImage(width, height,
+                BufferedImage.TYPE_INT_RGB);
+        for (int x = 0; x < width; x++) {
+            for (int y = 0; y < height; y++) {
+                image.setRGB(x, y, bitMatrix.get(x, y) ? 0xFF000000
+                        : 0xFFFFFFFF);
+            }
+        }
+        if (imgPath == null || "".equals(imgPath)) {
+            return image;
+        }
+        // 插入图片
+        QRCodeUtils.insertImage(image, imgPath, needCompress);
+        return image;
+    }
+
+    /**
+     * 插入LOGO
+     *
+     * @param source
+     *            二维码图片
+     * @param imgPath
+     *            LOGO图片地址
+     * @param needCompress
+     *            是否压缩
+     * @throws Exception
+     */
+    private static void insertImage(BufferedImage source, String imgPath,
+                                    boolean needCompress) throws Exception {
+        File file = new File(imgPath);
+        if (!file.exists()) {
+            System.err.println(""+imgPath+"   该文件不存在!");
+            return;
+        }
+        Image src = ImageIO.read(new File(imgPath));
+        int width = src.getWidth(null);
+        int height = src.getHeight(null);
+        if (needCompress) { // 压缩LOGO
+            if (width > WIDTH) {
+                width = WIDTH;
+            }
+            if (height > HEIGHT) {
+                height = HEIGHT;
+            }
+            Image image = src.getScaledInstance(width, height,
+                    Image.SCALE_SMOOTH);
+            BufferedImage tag = new BufferedImage(width, height,
+                    BufferedImage.TYPE_INT_RGB);
+            Graphics g = tag.getGraphics();
+            g.drawImage(image, 0, 0, null); // 绘制缩小后的图
+            g.dispose();
+            src = image;
+        }
+        // 插入LOGO
+        Graphics2D graph = source.createGraphics();
+        int x = (QRCODE_SIZE - width) / 2;
+        int y = (QRCODE_SIZE - height) / 2;
+        graph.drawImage(src, x, y, width, height, null);
+        Shape shape = new RoundRectangle2D.Float(x, y, width, width, 6, 6);
+        graph.setStroke(new BasicStroke(3f));
+        graph.draw(shape);
+        graph.dispose();
+    }
+
+    /**
+     * 生成二维码(内嵌LOGO)
+     *
+     * @param content
+     *            内容
+     * @param imgPath
+     *            LOGO地址
+     * @param destPath
+     *            存放目录
+     * @param needCompress
+     *            是否压缩LOGO
+     * @throws Exception
+     */
+    public static String encode(String content, String imgPath, String destPath,
+                                boolean needCompress) throws Exception {
+        BufferedImage image = QRCodeUtils.createImage(content, imgPath,
+                needCompress);
+        mkdirs(destPath);
+        String file = Snowflake.getId() + ".jpg";
+        ImageIO.write(image, FORMAT_NAME, new File(destPath+"/"+file));
+        return file;
+    }
+
+    /**
+     * 当文件夹不存在时,mkdirs会自动创建多层目录,区别于mkdir.(mkdir如果父目录不存在则会抛出异常)
+     * @date 2013-12-11 上午10:16:36
+     * @param destPath 存放目录
+     */
+    public static void mkdirs(String destPath) {
+        File file =new File(destPath);
+        //当文件夹不存在时,mkdirs会自动创建多层目录,区别于mkdir.(mkdir如果父目录不存在则会抛出异常)
+        if (!file.exists() && !file.isDirectory()) {
+            file.mkdirs();
+        }
+    }
+
+    /**
+     * 生成二维码(内嵌LOGO)
+     *
+     * @param content
+     *            内容
+     * @param imgPath
+     *            LOGO地址
+     * @param destPath
+     *            存储地址
+     * @throws Exception
+     */
+    public static void encode(String content, String imgPath, String destPath)
+            throws Exception {
+        QRCodeUtils.encode(content, imgPath, destPath, false);
+    }
+
+    /**
+     * 生成二维码
+     *
+     * @param content
+     *            内容
+     * @param destPath
+     *            存储地址
+     * @param needCompress
+     *            是否压缩LOGO
+     * @throws Exception
+     */
+    public static void encode(String content, String destPath,
+                              boolean needCompress) throws Exception {
+        QRCodeUtils.encode(content, null, destPath, needCompress);
+    }
+
+    /**
+     * 生成二维码
+     *
+     * @param content
+     *            内容
+     * @param destPath
+     *            存储地址
+     * @throws Exception
+     */
+    public static void encode(String content, String destPath) throws Exception {
+        QRCodeUtils.encode(content, null, destPath, false);
+    }
+
+    /**
+     * 生成二维码(内嵌LOGO)
+     *
+     * @param content
+     *            内容
+     * @param imgPath
+     *            LOGO地址
+     * @param output
+     *            输出流
+     * @param needCompress
+     *            是否压缩LOGO
+     * @throws Exception
+     */
+    public static void encode(String content, String imgPath,
+                              OutputStream output, boolean needCompress) throws Exception {
+        BufferedImage image = QRCodeUtils.createImage(content, imgPath,
+                needCompress);
+        ImageIO.write(image, FORMAT_NAME, output);
+    }
+
+    /**
+     * 生成二维码
+     *
+     * @param content
+     *            内容
+     * @param output
+     *            输出流
+     * @throws Exception
+     */
+    public static void encode(String content, OutputStream output)
+            throws Exception {
+        QRCodeUtils.encode(content, null, output, false);
+    }
+
+    /**
+     * 解析二维码
+     *
+     * @param file
+     *            二维码图片
+     * @return
+     * @throws Exception
+     */
+    public static String decode(File file) throws Exception {
+        BufferedImage image;
+        image = ImageIO.read(file);
+        if (image == null) {
+            return null;
+        }
+        BufferedImageLuminanceSource source = new BufferedImageLuminanceSource(
+                image);
+        BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
+        Result result;
+        Hashtable<DecodeHintType, Object> hints = new Hashtable<DecodeHintType, Object>();
+        hints.put(DecodeHintType.CHARACTER_SET, CHARSET);
+        result = new MultiFormatReader().decode(bitmap, hints);
+        String resultStr = result.getText();
+        return resultStr;
+    }
+
+    /**
+     * 解析二维码
+     *
+     * @param path
+     *            二维码图片地址
+     * @return
+     * @throws Exception
+     */
+    public static String decode(String path) throws Exception {
+        return QRCodeUtils.decode(new File(path));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/RSAUtils.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/RSAUtils.java
new file mode 100644
index 0000000..6ea45b0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/RSAUtils.java
@@ -0,0 +1,153 @@
+package com.panzhihua.common.utlis;
+
+import org.apache.commons.codec.binary.Base64;
+import org.jsoup.internal.StringUtil;
+
+import javax.crypto.Cipher;
+import java.security.*;
+import java.security.interfaces.RSAPrivateKey;
+import java.security.interfaces.RSAPublicKey;
+import java.security.spec.PKCS8EncodedKeySpec;
+import java.security.spec.X509EncodedKeySpec;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+
+
+public class RSAUtils {
+
+	private static Map<Integer, String> keyMap = new HashMap<Integer, String>(); // 用于封装随机产生的公钥与私钥
+
+	
+	/**
+	 * 随机生成密钥对
+	 * 
+	 * @throws NoSuchAlgorithmException
+	 */
+	public static void genKeyPair() throws NoSuchAlgorithmException {
+		// KeyPairGenerator类用于生成公钥和私钥对,基于RSA算法生成对象
+		KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("RSA");
+		// 初始化密钥对生成器,密钥大小为96-1024位
+		keyPairGen.initialize(1024, new SecureRandom());
+		// 生成一个密钥对,保存在keyPair中
+		KeyPair keyPair = keyPairGen.generateKeyPair();
+		RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate(); // 得到私钥
+		RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic(); // 得到公钥
+		String publicKeyString = new String(Base64.encodeBase64(publicKey.getEncoded()));
+		// 得到私钥字符串
+		String privateKeyString = new String(Base64.encodeBase64((privateKey.getEncoded())));
+		// 将公钥和私钥保存到Map
+		System.out.println("publicKeyString:" + publicKeyString);
+		System.out.println("privateKeyString:" + privateKeyString);
+		keyMap.put(0, publicKeyString); // 0表示公钥
+		keyMap.put(1, privateKeyString); // 1表示私钥
+	}
+
+	/**
+	 * RSA公钥加密
+	 *
+	 * @param str       加密字符串
+	 * @param publicKey 公钥
+	 * @return 密文
+	 * @throws Exception 加密过程中的异常信息
+	 */
+	public static String encrypt(String str, String publicKey) throws Exception {
+		if (StringUtil.isBlank(str)) {
+			return "";
+		}
+		// base64编码的公钥
+		byte[] decoded = Base64.decodeBase64(publicKey);
+		RSAPublicKey pubKey = (RSAPublicKey) KeyFactory.getInstance("RSA")
+				.generatePublic(new X509EncodedKeySpec(decoded));
+		// RSA加密
+		Cipher cipher = Cipher.getInstance("RSA");
+		cipher.init(Cipher.ENCRYPT_MODE, pubKey);
+		String outStr = Base64.encodeBase64String(cipher.doFinal(str.getBytes("UTF-8")));
+		return outStr;
+	}
+
+	/**
+	 * RSA私钥解密
+	 *
+	 * @param str        加密字符串
+	 * @param privateKey 私钥
+	 * @return 铭文
+	 * @throws Exception 解密过程中的异常信息
+	 */
+	public static String decrypt(String str, String privateKey) throws Exception {
+		// 64位解码加密后的字符串
+		byte[] inputByte = Base64.decodeBase64(str.getBytes("UTF-8"));
+		// base64编码的私钥
+		byte[] decoded = Base64.decodeBase64(privateKey);
+		RSAPrivateKey priKey = (RSAPrivateKey) KeyFactory.getInstance("RSA")
+				.generatePrivate(new PKCS8EncodedKeySpec(decoded));
+		// RSA解密
+		Cipher cipher = Cipher.getInstance("RSA");
+		cipher.init(Cipher.DECRYPT_MODE, priKey);
+		String outStr = new String(cipher.doFinal(inputByte));
+		return outStr;
+	}
+
+	/**
+	 * RSA私钥解密
+	 *
+	 * @param str        加密字符串
+	 * @param privateKey 私钥
+	 * @return 铭文
+	 * @throws Exception 解密过程中的异常信息
+	 */
+	public static String decrypt2(String str, String privateKey) throws Exception {
+		str = str.replace(" ", "+");
+		// 64位解码加密后的字符串
+		byte[] inputByte = Base64.decodeBase64(str.getBytes("UTF-8"));
+		// base64编码的私钥
+		byte[] decoded = Base64.decodeBase64(privateKey);
+		RSAPrivateKey priKey = (RSAPrivateKey) KeyFactory.getInstance("RSA")
+				.generatePrivate(new PKCS8EncodedKeySpec(decoded));
+		// RSA解密
+		Cipher cipher = Cipher.getInstance("RSA");
+		cipher.init(Cipher.DECRYPT_MODE, priKey);
+		String outStr = new String(cipher.doFinal(inputByte));
+		return outStr;
+	}
+
+	public static String rsaEncrypt(String input, String rsaPublicKey) {
+		String result = "";
+		try {
+			// 将Base64编码后的公钥转换成PublicKey对象
+			byte[] buffer = Base64.decodeBase64(rsaPublicKey);
+			KeyFactory keyFactory = KeyFactory.getInstance("RSA");
+			X509EncodedKeySpec keySpec = new X509EncodedKeySpec(buffer);
+			PublicKey publicKey = keyFactory.generatePublic(keySpec);
+			// 加密
+			Cipher cipher = Cipher.getInstance("RSA");
+			cipher.init(Cipher.ENCRYPT_MODE, publicKey);// ubli
+			byte[] inputArray = input.getBytes();
+			int inputLength = inputArray.length;
+			// System.out.println("加密字节数:" + inputLength);
+			// 最大加密字节数,超出最大字节数需要分组加密
+			int MAX_ENCRYPT_BLOCK = 117;
+			// 标识
+			int offSet = 0;
+			byte[] resultBytes = {};
+			byte[] cache = {};
+			while (inputLength - offSet > 0) {
+				if (inputLength - offSet > MAX_ENCRYPT_BLOCK) {
+					cache = cipher.doFinal(inputArray, offSet, MAX_ENCRYPT_BLOCK);
+					offSet += MAX_ENCRYPT_BLOCK;
+				} else {
+					cache = cipher.doFinal(inputArray, offSet, inputLength - offSet);
+					offSet = inputLength;
+				}
+				resultBytes = Arrays.copyOf(resultBytes, resultBytes.length + cache.length);
+				System.arraycopy(cache, 0, resultBytes, resultBytes.length - cache.length, cache.length);
+			}
+			result = Base64.encodeBase64String(resultBytes);
+		} catch (Exception e) {
+			System.out.println("rsaEncrypt error:" + e.getMessage());
+		}
+		// System.out.println("加密的结果:" + result);
+		return result;
+	}
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/RealNameUtil.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/RealNameUtil.java
new file mode 100644
index 0000000..0a350fa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/RealNameUtil.java
@@ -0,0 +1,65 @@
+package com.panzhihua.common.utlis;
+
+import java.util.Base64;
+
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.exceptions.ServiceException;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 实名认证工具
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-08 09:45
+ **/
+@Slf4j
+public class RealNameUtil {
+    private static final String CLIENT_ID = "2092261934651932672";
+    private static final String SECRET = "de1c0dbb-9197-4724-9cc2-aa94e30a072f";
+    private static final String URL = "http://118.121.56.56:18080/users/auth/policeMatch";
+
+    /**
+     * 实名认证
+     * 
+     * @param idcard
+     *            身份证
+     * @param name
+     *            名字
+     * @return 认证结果 true false
+     */
+    public static boolean authentication(String idcard, String name) {
+        boolean result = false;
+        String headerkey = "Authorization";
+        String headervalue = "Basic ";
+        String basicStr = CLIENT_ID + ":" + SECRET + ":" + System.currentTimeMillis();
+        String encodeToString = Base64.getEncoder().encodeToString(basicStr.getBytes());
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.put("idNumber", idcard);
+        jsonObject.put("realName", name);
+        String param = jsonObject.toJSONString();
+        log.info("请求公安实名认证接口,请求地址:" + URL);
+        log.info("请求公安实名认证接口,请求参数:" + param);
+        log.info("请求公安实名认证接口,请求头参数:" + headervalue + encodeToString);
+        String postByJson = HttpClientUtil.sendPostByJson(URL, param, 2, headerkey, headervalue + encodeToString);
+        log.info("请求公安实名认证接口,返回参数:" + postByJson);
+        if (postByJson != null && StringUtils.isNotEmpty(postByJson)) {
+            JSONObject obj = JSONObject.parseObject(postByJson);
+            if (obj != null) {
+                int code = JSONObject.parseObject(postByJson).getIntValue("code");
+                if (0 == code) {
+                    result = true;
+                }
+            }
+        } else {
+            throw new ServiceException("公安实名认证接口超时,请重试");
+        }
+        return result;
+    }
+
+    public static void main(String[] args) {
+        boolean b = RealNameUtil.authentication("340823199112282557", "黄宏发");
+        System.out.println(b);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ResultUtil.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ResultUtil.java
new file mode 100644
index 0000000..32b41a0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ResultUtil.java
@@ -0,0 +1,29 @@
+package com.panzhihua.common.utlis;
+
+import java.io.IOException;
+
+import javax.servlet.http.HttpServletResponse;
+
+import com.alibaba.fastjson.JSONObject;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 返回json
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-24 16:03
+ **/
+@Slf4j
+public class ResultUtil {
+
+    public static void responseJson(HttpServletResponse httpServletResponse, Object object) {
+        try {
+            httpServletResponse.setContentType("application/json;charset=utf-8");
+            httpServletResponse.getWriter().write(JSONObject.toJSONString(object));
+        } catch (IOException e) {
+            e.printStackTrace();
+            log.error("返回数据到前端失败");
+        }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/RichTextUtil.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/RichTextUtil.java
new file mode 100644
index 0000000..03a029c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/RichTextUtil.java
@@ -0,0 +1,55 @@
+package com.panzhihua.common.utlis;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 富文本提取
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-26 11:18
+ **/
+public class RichTextUtil {
+    private static Pattern p_image = Pattern.compile("<img.*src\\s*=\\s*(.*?)[^>]*?>", Pattern.CASE_INSENSITIVE);
+    private static Pattern r_image = Pattern.compile("src\\s*=\\s*\"?(.*?)(\"|>|\\s+)");
+
+    /**
+     * 提取富文本中纯文本
+     */
+    public static String getText(String richText) {
+        String regx = "(<.+?>)|(</.+?>)";
+        Matcher matcher = Pattern.compile(regx).matcher(richText);
+        while (matcher.find()) {
+            // 替换图片
+            richText = matcher.replaceAll("").replace(" ", "");
+        }
+        return richText;
+    }
+
+    /**
+     * 提取富文本中图片地址
+     */
+    public static List<String> getImgStr(String richText) {
+        List<String> list = new ArrayList<>();
+        Matcher pMatcher = p_image.matcher(richText);
+        while (pMatcher.find()) {
+            // 得到<img />数据
+            String img = pMatcher.group();
+            // 匹配<img>中的src数据
+            Matcher rMatcher = r_image.matcher(img);
+            while (rMatcher.find()) {
+                list.add(rMatcher.group(1));
+            }
+        }
+        return list;
+    }
+
+    public static void main(String[] args) {
+        String s =
+            "<p class=\"ql-align-justify\">新年伊始,兴华办湖东社区党委开展了新年送福活动。2020年是不平凡的一年,一场突如其来的新冠肺炎开启了新年的第一天。在经历了疫情、双城创建、人口普查、疫情......更加彰显了党组织的凝聚力和战斗力。辖区党员在疫情防控阻击战中无私奉献、积极捐款、双城创建广大党员积极投身到创建一线、协助人口普查员入户走访、引导广大市民按时参加集中核酸检测......每一个战斗的场面都有共产党员的身影。湖东社区党委为了表达党组织对广大党员积极参与的感谢,激励广大党员不忘初心、牢记使命,为实现新时代党的历史使命不谢奋斗,在新年来临之际以“碗净福至”的含义为辖区党员送上新年祝福。此次送祝福活动共为辖区270名党员送去精美纪念品,收到纪念品的党员激动地说“2020年是我们共同的考验,感谢党组织的认可,我们也会继续发挥党员先锋模范作用。”</p><p class=\"ql-align-justify\"><img src=\"http://image.panzhihua.nhys.cdnhxx.com//idcard/f31fbe096b63f624ebcdee7a844009ff1b4ca3c7.jpg\"></p><p><br></p>";
+        String text = RichTextUtil.getText(s);
+        System.out.println(text);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/SFTPUtil.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/SFTPUtil.java
new file mode 100644
index 0000000..890157d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/SFTPUtil.java
@@ -0,0 +1,376 @@
+package com.panzhihua.common.utlis;
+
+import java.io.*;
+import java.util.Properties;
+import java.util.Vector;
+
+import org.apache.commons.io.IOUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.jcraft.jsch.*;
+import com.panzhihua.common.constants.FtpConstants;
+
+/**
+ * @version 1.0.0
+ * @ClassName: SFTPUtil
+ * @Description: sftp连接工具类
+ */
+public class SFTPUtil {
+    private transient Logger log = LoggerFactory.getLogger(this.getClass());
+
+    private ChannelSftp sftp;
+
+    private Session session;
+
+    // FTP 登录用户名
+    private String userName;
+    // FTP 登录密码
+    private String password;
+    // FTP 服务器地址IP地址
+    private String host;
+    // FTP 端口
+    private int port;
+
+    /**
+     * 构造基于密码认证的sftp对象
+     *
+     * @param userName
+     * @param password
+     * @param host
+     * @param port
+     */
+    public SFTPUtil(String userName, String password, String host, int port) {
+        this.userName = userName;
+        this.password = password;
+        this.host = host;
+        this.port = port;
+    }
+
+    public SFTPUtil() {
+        this.userName = FtpConstants.FTPUSERNAME;
+        this.password = FtpConstants.FTPPASSWORD;
+        this.host = FtpConstants.FTPHOST;
+        this.port = FtpConstants.FTPPORT;
+    }
+    public static void main(String[] args) throws SftpException, IOException {
+//        SFTPUtil sftp = new SFTPUtil("root", "evanN7F2K5M6", "47.104.148.185", 22);
+        SFTPUtil sftp = new SFTPUtil("root", "Wpkl#&%!698", "172.192.3.2", 22);
+        sftp.login();
+        File file = new File("F:\\settings.xml");
+        InputStream is = new FileInputStream(file);
+        // 多级目录创建并上传
+        sftp.uploadMore("/mnt/data/ftp/ss", "settings.xml", is);
+        sftp.logout();
+    }
+
+    /**
+     * 连接sftp服务器
+     *
+     * @throws Exception
+     */
+    public void login() {
+        try {
+            JSch jsch = new JSch();
+            log.info("sftp connect by host:{} username:{}", host, userName);
+
+            session = jsch.getSession(userName, host, port);
+            log.info("Session is build");
+            if (password != null) {
+                session.setPassword(password);
+            }
+            Properties config = new Properties();
+            config.put("StrictHostKeyChecking", "no");
+
+            session.setConfig(config);
+            session.connect();
+            log.info("Session is connected");
+
+            Channel channel = session.openChannel("sftp");
+            channel.connect();
+            log.info("channel is connected");
+
+            sftp = (ChannelSftp)channel;
+            log.info(String.format("sftp server host:[%s] port:[%s] is connect successfull", host, port));
+        } catch (JSchException e) {
+            log.error("Cannot connect to specified sftp server : {}:{} \n Exception message is: {}", host, port,
+                e.getMessage());
+        }
+    }
+
+    /**
+     * 关闭连接 server
+     */
+    public void logout() {
+        if (sftp != null) {
+            if (sftp.isConnected()) {
+                sftp.disconnect();
+                log.info("sftp is closed already");
+            }
+        }
+        if (session != null) {
+            if (session.isConnected()) {
+                session.disconnect();
+                log.info("sshSession is closed already");
+            }
+        }
+    }
+
+    /**
+     * 递归根据路径创建文件夹
+     *
+     * @param dirs
+     *            根据 / 分隔后的数组文件夹名称
+     * @param tempPath
+     *            拼接路径
+     * @param length
+     *            文件夹的格式
+     * @param index
+     *            数组下标
+     * @return
+     */
+    public void mkdirDir(String[] dirs, String tempPath, int length, int index) {
+        // 以"/a/b/c/d"为例按"/"分隔后,第0位是"";顾下标从1开始
+        index++;
+        if (index < length) {
+            // 目录不存在,则创建文件夹
+            tempPath += "/" + dirs[index];
+        }
+        try {
+            log.info("检测目录[" + tempPath + "]");
+            sftp.cd(tempPath);
+            if (index < length) {
+                mkdirDir(dirs, tempPath, length, index);
+            }
+        } catch (SftpException ex) {
+            log.warn("创建目录[" + tempPath + "]");
+            try {
+                sftp.mkdir(tempPath);
+                sftp.cd(tempPath);
+            } catch (SftpException e) {
+                e.printStackTrace();
+                log.error("创建目录[" + tempPath + "]失败,异常信息[" + e.getMessage() + "]");
+
+            }
+            log.info("进入目录[" + tempPath + "]");
+            mkdirDir(dirs, tempPath, length, index);
+        }
+    }
+
+    /**
+     * 将输入流的数据上传到sftp作为文件(多层目录)
+     *
+     * @param directory
+     *            上传到该目录(多层目录)
+     * @param sftpFileName
+     *            sftp端文件名
+     * @param input
+     *            输入流
+     * @throws SftpException
+     * @throws Exception
+     */
+    public void uploadMore(String directory, String sftpFileName, InputStream input) throws SftpException {
+        try {
+            sftp.cd(directory);
+        } catch (SftpException e) {
+            // 目录不存在,则创建文件夹
+            String[] dirs = directory.split("/");
+            String tempPath = "";
+            int index = 0;
+            mkdirDir(dirs, tempPath, dirs.length, index);
+        }
+        sftp.put(input, sftpFileName);// 上传文件
+    }
+
+    /**
+     * 将输入流的数据上传到sftp作为文件
+     *
+     * @param directory
+     *            上传到该目录(单层目录)
+     * @param sftpFileName
+     *            sftp端文件名
+     * @param input
+     *            输入流
+     * @throws SftpException
+     * @throws Exception
+     */
+    public void upload(String directory, String sftpFileName, InputStream input) throws SftpException {
+        try {
+            sftp.cd(directory);
+        } catch (SftpException e) {
+            log.warn("directory is not exist");
+            sftp.mkdir(directory);
+            sftp.cd(directory);
+        }
+        sftp.put(input, sftpFileName);
+        log.info("file:{} is upload successful", sftpFileName);
+    }
+
+    /**
+     * 上传单个文件
+     *
+     * @param directory
+     *            上传到sftp目录
+     * @param uploadFile
+     *            要上传的文件,包括路径
+     * @throws FileNotFoundException
+     * @throws SftpException
+     * @throws Exception
+     */
+    public void upload(String directory, String uploadFile) throws FileNotFoundException, SftpException {
+        File file = new File(uploadFile);
+        upload(directory, file.getName(), new FileInputStream(file));
+    }
+
+    /**
+     * 将byte[]上传到sftp,作为文件。注意:从String生成byte[]是,要指定字符集。
+     *
+     * @param directory
+     *            上传到sftp目录
+     * @param sftpFileName
+     *            文件在sftp端的命名
+     * @param byteArr
+     *            要上传的字节数组
+     * @throws SftpException
+     * @throws Exception
+     */
+    public void upload(String directory, String sftpFileName, byte[] byteArr) throws SftpException {
+        upload(directory, sftpFileName, new ByteArrayInputStream(byteArr));
+    }
+
+    /**
+     * 将字符串按照指定的字符编码上传到sftp
+     *
+     * @param directory
+     *            上传到sftp目录
+     * @param sftpFileName
+     *            文件在sftp端的命名
+     * @param dataStr
+     *            待上传的数据
+     * @param charsetName
+     *            sftp上的文件,按该字符编码保存
+     * @throws UnsupportedEncodingException
+     * @throws SftpException
+     * @throws Exception
+     */
+    public void upload(String directory, String sftpFileName, String dataStr, String charsetName)
+        throws UnsupportedEncodingException, SftpException {
+        upload(directory, sftpFileName, new ByteArrayInputStream(dataStr.getBytes(charsetName)));
+    }
+
+    /**
+     * 下载文件
+     *
+     * @param directory
+     *            下载目录
+     * @param downloadFile
+     *            下载的文件
+     * @param saveFile
+     *            存在本地的路径
+     * @throws SftpException
+     * @throws FileNotFoundException
+     * @throws Exception
+     */
+    public void download(String directory, String downloadFile, String saveFile)
+        throws SftpException, FileNotFoundException {
+        if (directory != null && !"".equals(directory)) {
+            sftp.cd(directory);
+        }
+        File file = new File(saveFile);
+        sftp.get(downloadFile, new FileOutputStream(file));
+        log.info("file:{} is download successful", downloadFile);
+    }
+
+    /**
+     * 下载文件
+     *
+     * @param directory
+     *            下载目录
+     * @param downloadFile
+     *            下载的文件名
+     * @return 字节数组
+     * @throws SftpException
+     * @throws IOException
+     * @throws Exception
+     */
+    public byte[] download(String directory, String downloadFile) throws SftpException, IOException {
+        if (directory != null && !"".equals(directory)) {
+            sftp.cd(directory);
+        }
+        InputStream is = sftp.get(downloadFile);
+        byte[] fileData = IOUtils.toByteArray(is);
+        log.info("file:{} is download successful", downloadFile);
+        return fileData;
+    }
+
+    /**
+     * 下载文件
+     *
+     * @param directory
+     *            下载目录
+     * @param downloadFile
+     *            下载的文件名
+     * @return 字节数组
+     * @throws SftpException
+     * @throws IOException
+     * @throws Exception
+     */
+    public InputStream downloadInputStream(String directory, String downloadFile) throws SftpException, IOException {
+        if (directory != null && !"".equals(directory)) {
+            sftp.cd(directory);
+        }
+        InputStream is = sftp.get(downloadFile);
+        // byte[] fileData = IOUtils.toByteArray(is);
+        // log.info("file:{} is download successful", downloadFile);
+        return is;
+    }
+
+    /**
+     * 删除文件
+     *
+     * @param directory
+     *            要删除文件所在目录
+     * @param deleteFile
+     *            要删除的文件
+     * @throws SftpException
+     * @throws Exception
+     */
+    public void delete(String directory, String deleteFile) throws SftpException {
+        sftp.cd(directory);
+        sftp.rm(deleteFile);
+    }
+
+    /**
+     * 列出目录下的文件
+     *
+     * @param directory
+     *            要列出的目录
+     * @return
+     * @throws SftpException
+     */
+    public Vector<?> listFiles(String directory) throws SftpException {
+        return sftp.ls(directory);
+    }
+
+    /**
+     * 判断文件或者目录是否存在
+     *
+     * @param path
+     *            目录或者文件的路径
+     * @return 存在结果
+     */
+    public boolean isExistDir(String path) {
+        boolean isExist = false;
+        try {
+            SftpATTRS sftpATTRS = sftp.lstat(path);
+            isExist = true;
+            return sftpATTRS.isDir();
+        } catch (Exception e) {
+            if (e.getMessage().toLowerCase().equals("no such file")) {
+                isExist = false;
+            }
+        }
+        return isExist;
+
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/SensitiveUtil.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/SensitiveUtil.java
new file mode 100644
index 0000000..f6278fb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/SensitiveUtil.java
@@ -0,0 +1,56 @@
+package com.panzhihua.common.utlis;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * @description: 身份证手机号脱敏处理
+ * @author: Null
+ * @date: 2021/3/16 15:53
+ */
+public class SensitiveUtil {
+
+    /**
+     * 手机号码脱敏处理
+     *
+     * @param phoneNumber
+     * @return
+     */
+    public static String desensitizedPhoneNumber(String phoneNumber) {
+        if (StringUtils.isNotEmpty(phoneNumber)) {
+            phoneNumber = phoneNumber.replaceAll("(\\w{3})\\w*(\\w{4})", "$1****$2");
+        }
+        return phoneNumber;
+    }
+
+    /**
+     * 身份证号码脱敏处理
+     *
+     * @param idNumber
+     * @return
+     */
+    public static String desensitizedIdNumber(String idNumber) {
+        if (!StringUtils.isEmpty(idNumber)) {
+            if (idNumber.length() == 15) {
+                idNumber = idNumber.replaceAll("(\\w{6})\\w*(\\w{3})", "$1******$2");
+            }
+            if (idNumber.length() == 18) {
+                idNumber = idNumber.replaceAll("(\\w{6})\\w*(\\w{4})", "$1********$2");
+            }
+        }
+        return idNumber;
+    }
+
+
+    public static String replaceName(String str) {
+        if(StringUtils.isNotEmpty(str)){
+            if(str.length()==2){
+                str=str.replace(str.substring(1),"*");
+            }
+            if(str.length()>2) {
+                str=str.replace(str.substring(1,str.length()-1),"*");
+            }
+        }
+        return str;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ServletUtils.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ServletUtils.java
new file mode 100644
index 0000000..1d559ef
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ServletUtils.java
@@ -0,0 +1,118 @@
+package com.panzhihua.common.utlis;
+
+import java.io.IOException;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+
+import org.springframework.web.context.request.RequestAttributes;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+/**
+ * 客户端工具类
+ * 
+ * @author huanghongfa
+ */
+public class ServletUtils {
+    /**
+     * 获取String参数
+     */
+    public static String getParameter(String name) {
+        return getRequest().getParameter(name);
+    }
+
+    /**
+     * 获取String参数
+     */
+    public static String getParameter(String name, String defaultValue) {
+        return Convert.toStr(getRequest().getParameter(name), defaultValue);
+    }
+
+    /**
+     * 获取Integer参数
+     */
+    public static Integer getParameterToInt(String name) {
+        return Convert.toInt(getRequest().getParameter(name));
+    }
+
+    /**
+     * 获取Integer参数
+     */
+    public static Integer getParameterToInt(String name, Integer defaultValue) {
+        return Convert.toInt(getRequest().getParameter(name), defaultValue);
+    }
+
+    /**
+     * 获取request
+     */
+    public static HttpServletRequest getRequest() {
+        return getRequestAttributes().getRequest();
+    }
+
+    /**
+     * 获取response
+     */
+    public static HttpServletResponse getResponse() {
+        return getRequestAttributes().getResponse();
+    }
+
+    /**
+     * 获取session
+     */
+    public static HttpSession getSession() {
+        return getRequest().getSession();
+    }
+
+    public static ServletRequestAttributes getRequestAttributes() {
+        RequestAttributes attributes = RequestContextHolder.getRequestAttributes();
+        return (ServletRequestAttributes)attributes;
+    }
+
+    /**
+     * 将字符串渲染到客户端
+     * 
+     * @param response
+     *            渲染对象
+     * @param string
+     *            待渲染的字符串
+     * @return null
+     */
+    public static String renderString(HttpServletResponse response, String string) {
+        try {
+            response.setStatus(200);
+            response.setContentType("application/json");
+            response.setCharacterEncoding("utf-8");
+            response.getWriter().print(string);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    /**
+     * 是否是Ajax异步请求
+     * 
+     * @param request
+     */
+    public static boolean isAjaxRequest(HttpServletRequest request) {
+        String accept = request.getHeader("accept");
+        if (accept != null && accept.indexOf("application/json") != -1) {
+            return true;
+        }
+
+        String xRequestedWith = request.getHeader("X-Requested-With");
+        if (xRequestedWith != null && xRequestedWith.indexOf("XMLHttpRequest") != -1) {
+            return true;
+        }
+
+        String uri = request.getRequestURI();
+        if (StringUtils.inStringIgnoreCase(uri, ".json", ".xml")) {
+            return true;
+        }
+
+        String ajax = request.getParameter("__ajax");
+        return StringUtils.inStringIgnoreCase(ajax, "json", "xml");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/SmsUtil.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/SmsUtil.java
new file mode 100644
index 0000000..8c95ef1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/SmsUtil.java
@@ -0,0 +1,44 @@
+package com.panzhihua.common.utlis;
+
+import org.json.JSONObject;
+import org.json.XML;
+public class SmsUtil {
+
+    private final static String URL = "https://106.ihuyi.com/webservice/sms.php?method=Submit";
+    private final static String ACCOUNT="C87595580";
+    private final static String PASSWORD="b66d918a598ad126b85b13e82a38e165";
+    private final static String CONTENT="您有一笔订单还未付款,超时未付款订单将自动取消。";
+    public static int sendCode(String mobile, String code){
+        try {
+            String requestUrl=URL+"&account="+ACCOUNT+"&password="+PayUtil.MD5(PASSWORD)+"&mobile="+mobile+"&content="+"您的验证码是:"+code+"。请不要把验证码泄露给其他人。";
+            String res=HttpClientUtil.httpGet(requestUrl, null,null);
+            JSONObject jsonObject=XML.toJSONObject(res);
+            if(jsonObject.get("SubmitResult")!=null){
+                JSONObject result= (JSONObject) jsonObject.get("SubmitResult");
+                if(result.get("code").equals(2)){
+                    return 1;
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return 0;
+    }
+
+    public int sendContent(String mobile){
+        try {
+            String requestUrl=URL+"&account="+ACCOUNT+"&password="+PayUtil.MD5(PASSWORD)+"&mobile="+mobile+"&content="+CONTENT;
+            String res=HttpClientUtil.httpGet(requestUrl, null,null);
+            JSONObject jsonObject=XML.toJSONObject(res);
+            if(jsonObject.get("SubmitResult")!=null){
+                JSONObject result= (JSONObject) jsonObject.get("SubmitResult");
+                if(result.get("code").equals(2)){
+                    return 1;
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return 0;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/Snowflake.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/Snowflake.java
new file mode 100644
index 0000000..fb2990b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/Snowflake.java
@@ -0,0 +1,15 @@
+package com.panzhihua.common.utlis;
+
+import cn.hutool.core.util.IdUtil;
+
+/**
+ * @author xyh
+ * @date 2021/6/10 15:29
+ */
+public class Snowflake {
+    public static long getId() {
+        cn.hutool.core.lang.Snowflake snowflake = IdUtil.getSnowflake(1, 1);
+        long id = snowflake.nextId();
+        return id;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/SpringUtils.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/SpringUtils.java
new file mode 100644
index 0000000..52a5da4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/SpringUtils.java
@@ -0,0 +1,137 @@
+package com.panzhihua.common.utlis;
+
+import org.springframework.aop.framework.AopContext;
+import org.springframework.beans.BeansException;
+import org.springframework.beans.factory.NoSuchBeanDefinitionException;
+import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
+import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.stereotype.Component;
+import org.springframework.util.ObjectUtils;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * spring工具类 方便在非spring管理环境中获取bean
+ * 
+ * @author huanghongfa
+ */
+@Slf4j
+@Component
+public final class SpringUtils implements BeanFactoryPostProcessor, ApplicationContextAware {
+    /** Spring应用上下文环境 */
+    private static ConfigurableListableBeanFactory beanFactory;
+
+    private static ApplicationContext applicationContext;
+
+    /**
+     * 获取对象
+     *
+     * @param name
+     * @return Object 一个以所给名字注册的bean的实例
+     * @throws org.springframework.beans.BeansException
+     *
+     */
+    @SuppressWarnings("unchecked")
+    public static <T> T getBean(String name) throws BeansException {
+        return (T)beanFactory.getBean(name);
+    }
+
+    /**
+     * 获取类型为requiredType的对象
+     *
+     * @param clz
+     * @return
+     * @throws org.springframework.beans.BeansException
+     *
+     */
+    public static <T> T getBean(Class<T> clz) throws BeansException {
+        T result = beanFactory.getBean(clz);
+        return result;
+    }
+
+    /**
+     * 如果BeanFactory包含一个与所给名称匹配的bean定义,则返回true
+     *
+     * @param name
+     * @return boolean
+     */
+    public static boolean containsBean(String name) {
+        return beanFactory.containsBean(name);
+    }
+
+    /**
+     * 判断以给定名字注册的bean定义是一个singleton还是一个prototype。 如果与给定名字相应的bean定义没有被找到,将会抛出一个异常(NoSuchBeanDefinitionException)
+     *
+     * @param name
+     * @return boolean
+     * @throws org.springframework.beans.factory.NoSuchBeanDefinitionException
+     *
+     */
+    public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException {
+        return beanFactory.isSingleton(name);
+    }
+
+    /**
+     * @param name
+     * @return Class 注册对象的类型
+     * @throws org.springframework.beans.factory.NoSuchBeanDefinitionException
+     *
+     */
+    public static Class<?> getType(String name) throws NoSuchBeanDefinitionException {
+        return beanFactory.getType(name);
+    }
+
+    /**
+     * 如果给定的bean名字在bean定义中有别名,则返回这些别名
+     *
+     * @param name
+     * @return
+     * @throws org.springframework.beans.factory.NoSuchBeanDefinitionException
+     *
+     */
+    public static String[] getAliases(String name) throws NoSuchBeanDefinitionException {
+        return beanFactory.getAliases(name);
+    }
+
+    /**
+     * 获取aop代理对象
+     *
+     * @param invoker
+     * @return
+     */
+    @SuppressWarnings("unchecked")
+    public static <T> T getAopProxy(T invoker) {
+        return (T)AopContext.currentProxy();
+    }
+
+    /**
+     * 获取当前的环境配置,无配置返回null
+     *
+     * @return 当前的环境配置
+     */
+    public static String[] getActiveProfiles() {
+        return applicationContext.getEnvironment().getActiveProfiles();
+    }
+
+    /**
+     * 获取当前的环境配置,当有多个环境配置时,只获取第一个
+     *
+     * @return 当前的环境配置
+     */
+    public static String getActiveProfile() {
+        final String[] activeProfiles = getActiveProfiles();
+        return !ObjectUtils.isEmpty(activeProfiles) ? activeProfiles[0] : null;
+    }
+
+    @Override
+    public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
+        SpringUtils.beanFactory = beanFactory;
+    }
+
+    @Override
+    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
+        SpringUtils.applicationContext = applicationContext;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/StrFormatter.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/StrFormatter.java
new file mode 100644
index 0000000..ebda6fc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/StrFormatter.java
@@ -0,0 +1,76 @@
+package com.panzhihua.common.utlis;
+
+/**
+ * 字符串格式化
+ * 
+ * @author ruoyi
+ */
+public class StrFormatter {
+    public static final String EMPTY_JSON = "{}";
+    public static final char C_BACKSLASH = '\\';
+    public static final char C_DELIM_START = '{';
+    public static final char C_DELIM_END = '}';
+
+    /**
+     * 格式化字符串<br>
+     * 此方法只是简单将占位符 {} 按照顺序替换为参数<br>
+     * 如果想输出 {} 使用 \\转义 { 即可,如果想输出 {} 之前的 \ 使用双转义符 \\\\ 即可<br>
+     * 例:<br>
+     * 通常使用:format("this is {} for {}", "a", "b") -> this is a for b<br>
+     * 转义{}: format("this is \\{} for {}", "a", "b") -> this is \{} for a<br>
+     * 转义\: format("this is \\\\{} for {}", "a", "b") -> this is \a for b<br>
+     * 
+     * @param strPattern
+     *            字符串模板
+     * @param argArray
+     *            参数列表
+     * @return 结果
+     */
+    public static String format(final String strPattern, final Object... argArray) {
+        if (StringUtils.isEmpty(strPattern) || StringUtils.isEmpty(argArray)) {
+            return strPattern;
+        }
+        final int strPatternLength = strPattern.length();
+
+        // 初始化定义好的长度以获得更好的性能
+        StringBuilder sbuf = new StringBuilder(strPatternLength + 50);
+
+        int handledPosition = 0;
+        int delimIndex;// 占位符所在位置
+        for (int argIndex = 0; argIndex < argArray.length; argIndex++) {
+            delimIndex = strPattern.indexOf(EMPTY_JSON, handledPosition);
+            if (delimIndex == -1) {
+                if (handledPosition == 0) {
+                    return strPattern;
+                } else { // 字符串模板剩余部分不再包含占位符,加入剩余部分后返回结果
+                    sbuf.append(strPattern, handledPosition, strPatternLength);
+                    return sbuf.toString();
+                }
+            } else {
+                if (delimIndex > 0 && strPattern.charAt(delimIndex - 1) == C_BACKSLASH) {
+                    if (delimIndex > 1 && strPattern.charAt(delimIndex - 2) == C_BACKSLASH) {
+                        // 转义符之前还有一个转义符,占位符依旧有效
+                        sbuf.append(strPattern, handledPosition, delimIndex - 1);
+                        sbuf.append(Convert.utf8Str(argArray[argIndex]));
+                        handledPosition = delimIndex + 2;
+                    } else {
+                        // 占位符被转义
+                        argIndex--;
+                        sbuf.append(strPattern, handledPosition, delimIndex - 1);
+                        sbuf.append(C_DELIM_START);
+                        handledPosition = delimIndex + 1;
+                    }
+                } else {
+                    // 正常占位符
+                    sbuf.append(strPattern, handledPosition, delimIndex);
+                    sbuf.append(Convert.utf8Str(argArray[argIndex]));
+                    handledPosition = delimIndex + 2;
+                }
+            }
+        }
+        // 加入最后一个占位符后所有的字符
+        sbuf.append(strPattern, handledPosition, strPattern.length());
+
+        return sbuf.toString();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/StringUtils.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/StringUtils.java
new file mode 100644
index 0000000..cb0209e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/StringUtils.java
@@ -0,0 +1,428 @@
+package com.panzhihua.common.utlis;
+
+import java.util.*;
+import java.util.regex.Pattern;
+
+/**
+ * 字符串工具类
+ * 
+ * @author ruoyi
+ */
+public class StringUtils extends org.apache.commons.lang3.StringUtils {
+    /** 空字符串 */
+    private static final String NULLSTR = "";
+
+    /** 下划线 */
+    private static final char SEPARATOR = '_';
+
+    /**
+     * 获取参数不为空值
+     * 
+     * @param value
+     *            defaultValue 要判断的value
+     * @return value 返回值
+     */
+    public static <T> T nvl(T value, T defaultValue) {
+        return value != null ? value : defaultValue;
+    }
+
+    /**
+     * * 判断一个Collection是否为空, 包含List,Set,Queue
+     * 
+     * @param coll
+     *            要判断的Collection
+     * @return true:为空 false:非空
+     */
+    public static boolean isEmpty(Collection<?> coll) {
+        return isNull(coll) || coll.isEmpty();
+    }
+
+    /**
+     * * 判断一个Collection是否非空,包含List,Set,Queue
+     * 
+     * @param coll
+     *            要判断的Collection
+     * @return true:非空 false:空
+     */
+    public static boolean isNotEmpty(Collection<?> coll) {
+        return !isEmpty(coll);
+    }
+
+    /**
+     * * 判断一个对象数组是否为空
+     * 
+     * @param objects
+     *            要判断的对象数组
+     ** @return true:为空 false:非空
+     */
+    public static boolean isEmpty(Object[] objects) {
+        return isNull(objects) || (objects.length == 0);
+    }
+
+    /**
+     * * 判断一个对象数组是否非空
+     * 
+     * @param objects
+     *            要判断的对象数组
+     * @return true:非空 false:空
+     */
+    public static boolean isNotEmpty(Object[] objects) {
+        return !isEmpty(objects);
+    }
+
+    /**
+     * * 判断一个Map是否为空
+     * 
+     * @param map
+     *            要判断的Map
+     * @return true:为空 false:非空
+     */
+    public static boolean isEmpty(Map<?, ?> map) {
+        return isNull(map) || map.isEmpty();
+    }
+
+    /**
+     * * 判断一个Map是否为空
+     * 
+     * @param map
+     *            要判断的Map
+     * @return true:非空 false:空
+     */
+    public static boolean isNotEmpty(Map<?, ?> map) {
+        return !isEmpty(map);
+    }
+
+    /**
+     * * 判断一个字符串是否为空串
+     * 
+     * @param str
+     *            String
+     * @return true:为空 false:非空
+     */
+    public static boolean isEmpty(String str) {
+        return isNull(str) || NULLSTR.equals(str.trim());
+    }
+
+    /**
+     * * 判断一个字符串是否为非空串
+     * 
+     * @param str
+     *            String
+     * @return true:非空串 false:空串
+     */
+    public static boolean isNotEmpty(String str) {
+        return !isEmpty(str);
+    }
+
+    /**
+     * * 判断一个对象是否为空
+     * 
+     * @param object
+     *            Object
+     * @return true:为空 false:非空
+     */
+    public static boolean isNull(Object object) {
+        return object == null;
+    }
+
+    /**
+     * * 判断一个对象是否非空
+     * 
+     * @param object
+     *            Object
+     * @return true:非空 false:空
+     */
+    public static boolean isNotNull(Object object) {
+        return !isNull(object);
+    }
+
+    /**
+     * * 判断一个对象是否是数组类型(Java基本型别的数组)
+     * 
+     * @param object
+     *            对象
+     * @return true:是数组 false:不是数组
+     */
+    public static boolean isArray(Object object) {
+        return isNotNull(object) && object.getClass().isArray();
+    }
+
+    /**
+     * 去空格
+     */
+    public static String trim(String str) {
+        return (str == null ? "" : str.trim());
+    }
+
+    /**
+     * 截取字符串
+     * 
+     * @param str
+     *            字符串
+     * @param start
+     *            开始
+     * @return 结果
+     */
+    public static String substring(final String str, int start) {
+        if (str == null) {
+            return NULLSTR;
+        }
+
+        if (start < 0) {
+            start = str.length() + start;
+        }
+
+        if (start < 0) {
+            start = 0;
+        }
+        if (start > str.length()) {
+            return NULLSTR;
+        }
+
+        return str.substring(start);
+    }
+
+    /**
+     * 截取字符串
+     * 
+     * @param str
+     *            字符串
+     * @param start
+     *            开始
+     * @param end
+     *            结束
+     * @return 结果
+     */
+    public static String substring(final String str, int start, int end) {
+        if (str == null) {
+            return NULLSTR;
+        }
+
+        if (end < 0) {
+            end = str.length() + end;
+        }
+        if (start < 0) {
+            start = str.length() + start;
+        }
+
+        if (end > str.length()) {
+            end = str.length();
+        }
+
+        if (start > end) {
+            return NULLSTR;
+        }
+
+        if (start < 0) {
+            start = 0;
+        }
+        if (end < 0) {
+            end = 0;
+        }
+
+        return str.substring(start, end);
+    }
+
+    /**
+     * 格式化文本, {} 表示占位符<br>
+     * 此方法只是简单将占位符 {} 按照顺序替换为参数<br>
+     * 如果想输出 {} 使用 \\转义 { 即可,如果想输出 {} 之前的 \ 使用双转义符 \\\\ 即可<br>
+     * 例:<br>
+     * 通常使用:format("this is {} for {}", "a", "b") -> this is a for b<br>
+     * 转义{}: format("this is \\{} for {}", "a", "b") -> this is \{} for a<br>
+     * 转义\: format("this is \\\\{} for {}", "a", "b") -> this is \a for b<br>
+     * 
+     * @param template
+     *            文本模板,被替换的部分用 {} 表示
+     * @param params
+     *            参数值
+     * @return 格式化后的文本
+     */
+    public static String format(String template, Object... params) {
+        if (isEmpty(params) || isEmpty(template)) {
+            return template;
+        }
+        return StrFormatter.format(template, params);
+    }
+
+    /**
+     * 字符串转set
+     * 
+     * @param str
+     *            字符串
+     * @param sep
+     *            分隔符
+     * @return set集合
+     */
+    public static final Set<String> str2Set(String str, String sep) {
+        return new HashSet<String>(str2List(str, sep, true, false));
+    }
+
+    /**
+     * 字符串转list
+     * 
+     * @param str
+     *            字符串
+     * @param sep
+     *            分隔符
+     * @param filterBlank
+     *            过滤纯空白
+     * @param trim
+     *            去掉首尾空白
+     * @return list集合
+     */
+    public static final List<String> str2List(String str, String sep, boolean filterBlank, boolean trim) {
+        List<String> list = new ArrayList<String>();
+        if (StringUtils.isEmpty(str)) {
+            return list;
+        }
+
+        // 过滤空白字符串
+        if (filterBlank && StringUtils.isBlank(str)) {
+            return list;
+        }
+        String[] split = str.split(sep);
+        for (String string : split) {
+            if (filterBlank && StringUtils.isBlank(string)) {
+                continue;
+            }
+            if (trim) {
+                string = string.trim();
+            }
+            list.add(string);
+        }
+
+        return list;
+    }
+
+    /**
+     * 下划线转驼峰命名
+     */
+    public static String toUnderScoreCase(String str) {
+        if (str == null) {
+            return null;
+        }
+        StringBuilder sb = new StringBuilder();
+        // 前置字符是否大写
+        boolean preCharIsUpperCase = true;
+        // 当前字符是否大写
+        boolean curreCharIsUpperCase = true;
+        // 下一字符是否大写
+        boolean nexteCharIsUpperCase = true;
+        for (int i = 0; i < str.length(); i++) {
+            char c = str.charAt(i);
+            if (i > 0) {
+                preCharIsUpperCase = Character.isUpperCase(str.charAt(i - 1));
+            } else {
+                preCharIsUpperCase = false;
+            }
+
+            curreCharIsUpperCase = Character.isUpperCase(c);
+
+            if (i < (str.length() - 1)) {
+                nexteCharIsUpperCase = Character.isUpperCase(str.charAt(i + 1));
+            }
+
+            if (preCharIsUpperCase && curreCharIsUpperCase && !nexteCharIsUpperCase) {
+                sb.append(SEPARATOR);
+            } else if ((i != 0 && !preCharIsUpperCase) && curreCharIsUpperCase) {
+                sb.append(SEPARATOR);
+            }
+            sb.append(Character.toLowerCase(c));
+        }
+
+        return sb.toString();
+    }
+
+    /**
+     * 是否包含字符串
+     * 
+     * @param str
+     *            验证字符串
+     * @param strs
+     *            字符串组
+     * @return 包含返回true
+     */
+    public static boolean inStringIgnoreCase(String str, String... strs) {
+        if (str != null && strs != null) {
+            for (String s : strs) {
+                if (str.equalsIgnoreCase(trim(s))) {
+                    return true;
+                }
+            }
+        }
+        return false;
+    }
+
+    /**
+     * 将下划线大写方式命名的字符串转换为驼峰式。如果转换前的下划线大写方式命名的字符串为空,则返回空字符串。 例如:HELLO_WORLD->HelloWorld
+     * 
+     * @param name
+     *            转换前的下划线大写方式命名的字符串
+     * @return 转换后的驼峰式命名的字符串
+     */
+    public static String convertToCamelCase(String name) {
+        StringBuilder result = new StringBuilder();
+        // 快速检查
+        if (name == null || name.isEmpty()) {
+            // 没必要转换
+            return "";
+        } else if (!name.contains("_")) {
+            // 不含下划线,仅将首字母大写
+            return name.substring(0, 1).toUpperCase() + name.substring(1);
+        }
+        // 用下划线将原始字符串分割
+        String[] camels = name.split("_");
+        for (String camel : camels) {
+            // 跳过原始字符串中开头、结尾的下换线或双重下划线
+            if (camel.isEmpty()) {
+                continue;
+            }
+            // 首字母大写
+            result.append(camel.substring(0, 1).toUpperCase());
+            result.append(camel.substring(1).toLowerCase());
+        }
+        return result.toString();
+    }
+
+    /**
+     * 驼峰式命名法 例如:user_name->userName
+     */
+    public static String toCamelCase(String s) {
+        if (s == null) {
+            return null;
+        }
+        s = s.toLowerCase();
+        StringBuilder sb = new StringBuilder(s.length());
+        boolean upperCase = false;
+        for (int i = 0; i < s.length(); i++) {
+            char c = s.charAt(i);
+
+            if (c == SEPARATOR) {
+                upperCase = true;
+            } else if (upperCase) {
+                sb.append(Character.toUpperCase(c));
+                upperCase = false;
+            } else {
+                sb.append(c);
+            }
+        }
+        return sb.toString();
+    }
+
+    @SuppressWarnings("unchecked")
+    public static <T> T cast(Object obj) {
+        return (T)obj;
+    }
+
+    /**
+     * 判断是否为数字格式不限制位数
+     * 
+     * @param o
+     *            待校验参数
+     * @return 如果全为数字,返回true;否则,返回false
+     */
+    public static boolean isNumber(Object o) {
+        return (Pattern.compile("[0-9]*")).matcher(String.valueOf(o)).matches();
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/TencentUtils.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/TencentUtils.java
new file mode 100644
index 0000000..8d48cba
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/TencentUtils.java
@@ -0,0 +1,88 @@
+package com.panzhihua.common.utlis;
+
+import com.tencentcloudapi.common.Credential;
+import com.tencentcloudapi.common.exception.TencentCloudSDKException;
+import com.tencentcloudapi.common.profile.ClientProfile;
+import com.tencentcloudapi.common.profile.HttpProfile;
+import com.tencentcloudapi.faceid.v20180301.FaceidClient;
+import com.tencentcloudapi.faceid.v20180301.models.*;
+
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+public class TencentUtils {
+
+    private static final String secretId = "AKIDCG5h4EArJVTCesseAQQCiyzlIZicHgpk";
+    private static final String secretKey = "jCPM5appZ4KK4YrvjHaeS0JNCl5C4g5E";
+    /**
+     * 商户id
+     */
+    private static final String merchantId = "0NSJ2106041331155797";
+    /**
+     * 请求地址
+     */
+    private static final String url = "faceid.tencentcloudapi.com";
+
+    /**
+     * 获取用户EidToken接口
+     * 
+     * @param name
+     *            姓名
+     * @param idCard
+     *            身份证号
+     * @return 调用结果
+     */
+    public static String getEidToken(String name, String idCard) {
+        try {
+            Credential cred = new Credential(secretId, secretKey);
+
+            HttpProfile httpProfile = new HttpProfile();
+            httpProfile.setEndpoint(url);
+
+            ClientProfile clientProfile = new ClientProfile();
+            clientProfile.setHttpProfile(httpProfile);
+
+            FaceidClient client = new FaceidClient(cred, "", clientProfile);
+
+            GetEidTokenRequest req = new GetEidTokenRequest();
+            req.setIdCard(idCard);
+            req.setName(name);
+            GetEidTokenConfig getEidTokenConfig1 = new GetEidTokenConfig();
+            getEidTokenConfig1.setInputType("4");
+            req.setConfig(getEidTokenConfig1);
+
+            req.setMerchantId(merchantId);
+            GetEidTokenResponse resp = client.GetEidToken(req);
+            return GetEidTokenResponse.toJsonString(resp);
+        } catch (TencentCloudSDKException e) {
+            log.error("人脸核身获取Token接口调用失败,错误信息:" + e.toString());
+        }
+        return "";
+    }
+
+    /**
+     * 获取用户核身结果接口
+     * 
+     * @param eidToken
+     *            用户token
+     * @return 调用结果
+     */
+    public static String getEidResult(String eidToken) {
+        try {
+            Credential cred = new Credential(secretId, secretKey);
+            HttpProfile httpProfile = new HttpProfile();
+            httpProfile.setEndpoint(url);
+            ClientProfile clientProfile = new ClientProfile();
+            clientProfile.setHttpProfile(httpProfile);
+            FaceidClient client = new FaceidClient(cred, "", clientProfile);
+            GetEidResultRequest req = new GetEidResultRequest();
+            req.setEidToken(eidToken);
+            GetEidResultResponse resp = client.GetEidResult(req);
+            return GetEidTokenResponse.toJsonString(resp);
+        } catch (TencentCloudSDKException e) {
+            log.error("人脸核身获取结果接口调用失败,错误信息:" + e.toString());
+        }
+        return "";
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/Threads.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/Threads.java
new file mode 100644
index 0000000..2e87dfe
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/Threads.java
@@ -0,0 +1,69 @@
+package com.panzhihua.common.utlis;
+
+import java.util.concurrent.*;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 线程相关工具类.
+ *
+ * @author huanghongfa
+ */
+@Slf4j
+public class Threads {
+    /**
+     * sleep等待,单位为毫秒
+     */
+    public static void sleep(long milliseconds) {
+        try {
+            Thread.sleep(milliseconds);
+        } catch (InterruptedException e) {
+            return;
+        }
+    }
+
+    /**
+     * 停止线程池 先使用shutdown, 停止接收新任务并尝试完成所有已存在任务. 如果超时, 则调用shutdownNow, 取消在workQueue中Pending的任务,并中断所有阻塞函数. 如果仍人超時,則強制退出.
+     * 另对在shutdown时线程本身被调用中断做了处理.
+     */
+    public static void shutdownAndAwaitTermination(ExecutorService pool) {
+        if (pool != null && !pool.isShutdown()) {
+            pool.shutdown();
+            try {
+                if (!pool.awaitTermination(120, TimeUnit.SECONDS)) {
+                    pool.shutdownNow();
+                    if (!pool.awaitTermination(120, TimeUnit.SECONDS)) {
+                        // log.info("Pool did not terminate");
+
+                    }
+                }
+            } catch (InterruptedException ie) {
+                pool.shutdownNow();
+                Thread.currentThread().interrupt();
+            }
+        }
+    }
+
+    /**
+     * 打印线程异常信息
+     */
+    public static void printException(Runnable r, Throwable t) {
+        if (t == null && r instanceof Future<?>) {
+            try {
+                Future<?> future = (Future<?>)r;
+                if (future.isDone()) {
+                    future.get();
+                }
+            } catch (CancellationException ce) {
+                t = ce;
+            } catch (ExecutionException ee) {
+                t = ee.getCause();
+            } catch (InterruptedException ie) {
+                Thread.currentThread().interrupt();
+            }
+        }
+        if (t != null) {
+            // log.error(t.getMessage(), t);
+        }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/TypeDict.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/TypeDict.java
new file mode 100644
index 0000000..0e13ab1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/TypeDict.java
@@ -0,0 +1,64 @@
+package com.panzhihua.common.utlis;
+
+/**
+ * 应用模块名称
+ * <p>
+ * 代码描述
+ * <p>
+ * Copyright: Copyright (C) 2021 XXX, Inc. All rights reserved.
+ * <p>
+ * Company: 成都呐喊信息技术有限公司
+ * <p>
+ *
+ * @author manailin
+ * @since 2021/10/8 10:51
+ */
+public class TypeDict {
+    /**
+     * 常用文件的文件头如下:(以前六位为准) JPEG (jpg),文件头:FFD8FF PNG (png),文件头:89504E47 GIF (gif),文件头:47494638 TIFF (tif),文件头:49492A00
+     * Windows Bitmap (bmp),文件头:424D CAD (dwg),文件头:41433130 Adobe Photoshop (psd),文件头:38425053 Rich Text Format
+     * (rtf),文件头:7B5C727466 XML (xml),文件头:3C3F786D6C HTML (html),文件头:68746D6C3E Email [thorough only]
+     * (eml),文件头:44656C69766572792D646174653A Outlook Express (dbx),文件头:CFAD12FEC5FD746F Outlook (pst),文件头:2142444E MS
+     * Word/Excel (xls.or.doc),文件头:D0CF11E0 MS Access (mdb),文件头:5374616E64617264204A WordPerfect (wpd),文件头:FF575043
+     * Postscript (eps.or.ps),文件头:252150532D41646F6265 Adobe Acrobat (pdf),文件头:255044462D312E Quicken (qdf),文件头:AC9EBD8F
+     * Windows Password (pwl),文件头:E3828596 ZIP Archive (zip),文件头:504B0304 RAR Archive (rar),文件头:52617221 Wave
+     * (wav),文件头:57415645 AVI (avi),文件头:41564920 Real Audio (ram),文件头:2E7261FD Real Media (rm),文件头:2E524D46 MPEG
+     * (mpg),文件头:000001BA MPEG (mpg),文件头:000001B3 Quicktime (mov),文件头:6D6F6F76 Windows Media (asf),文件头:3026B2758E66CF11
+     * MIDI (mid),文件头:4D546864,文件头:FFF328(满添加mp3),文件头:000000(满添加mp4)
+     */
+    public static String checkImageType(String type) {
+
+        switch (type) {
+            case "FFD8FF":
+                return "jpg";
+            case "89504E":
+                return "png";
+            case "474946":
+                return "gif";
+            default:
+                return "0000";
+        }
+    }
+
+    public static String checkFileType(String fileType) {
+
+        switch (fileType) {
+            case "FFD8FF":
+                return "jpg";
+            case "89504E":
+                return "png";
+            case "474946":
+                return "gif";
+            case "574156":
+                return "wav";
+            case "415649":
+                return "avi";
+            case "FFF328":
+                return "mp3";
+            case "000000":
+                return "mp4";
+            default:
+                return "0000";
+        }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ValidableList.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ValidableList.java
new file mode 100644
index 0000000..dc5e183
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ValidableList.java
@@ -0,0 +1,132 @@
+package com.panzhihua.common.utlis;
+
+import java.util.*;
+
+import javax.validation.Valid;
+
+import lombok.Data;
+
+/**
+ * @author manailin
+ */
+@Data
+public class ValidableList<E> implements List<E> {
+
+    @Valid
+    private List<E> list = new LinkedList<>();
+
+    @Override
+    public int size() {
+        return list.size();
+    }
+
+    @Override
+    public boolean isEmpty() {
+        return list.isEmpty();
+    }
+
+    @Override
+    public boolean contains(Object o) {
+        return list.contains(o);
+    }
+
+    @Override
+    public Iterator<E> iterator() {
+        return list.iterator();
+    }
+
+    @Override
+    public Object[] toArray() {
+        return list.toArray();
+    }
+
+    @Override
+    public <T> T[] toArray(T[] a) {
+        return list.toArray(a);
+    }
+
+    @Override
+    public boolean add(E e) {
+        return list.add(e);
+    }
+
+    @Override
+    public boolean remove(Object o) {
+        return list.remove(o);
+    }
+
+    @Override
+    public boolean containsAll(Collection<?> c) {
+        return list.containsAll(c);
+    }
+
+    @Override
+    public boolean addAll(Collection<? extends E> c) {
+        return list.addAll(c);
+    }
+
+    @Override
+    public boolean addAll(int index, Collection<? extends E> c) {
+        return list.addAll(index, c);
+    }
+
+    @Override
+    public boolean removeAll(Collection<?> c) {
+        return list.removeAll(c);
+    }
+
+    @Override
+    public boolean retainAll(Collection<?> c) {
+        return list.retainAll(c);
+    }
+
+    @Override
+    public void clear() {
+        list.clear();
+    }
+
+    @Override
+    public E get(int index) {
+        return list.get(index);
+    }
+
+    @Override
+    public E set(int index, E element) {
+        return list.set(index, element);
+    }
+
+    @Override
+    public void add(int index, E element) {
+        list.add(index, element);
+    }
+
+    @Override
+    public E remove(int index) {
+        return list.remove(index);
+    }
+
+    @Override
+    public int indexOf(Object o) {
+        return list.indexOf(o);
+    }
+
+    @Override
+    public int lastIndexOf(Object o) {
+        return list.lastIndexOf(o);
+    }
+
+    @Override
+    public ListIterator<E> listIterator() {
+        return list.listIterator();
+    }
+
+    @Override
+    public ListIterator<E> listIterator(int index) {
+        return list.listIterator(index);
+    }
+
+    @Override
+    public List<E> subList(int fromIndex, int toIndex) {
+        return list.subList(fromIndex, toIndex);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ValidateUtils.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ValidateUtils.java
new file mode 100644
index 0000000..e0f6380
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/ValidateUtils.java
@@ -0,0 +1,19 @@
+package com.panzhihua.common.utlis;
+
+import java.util.regex.Pattern;
+
+/**
+ * @title: ValidateUtils
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 验证相关工具类
+ * @author: hans
+ * @date: 2022/02/11 15:16
+ */
+public class ValidateUtils {
+
+    private static final String PHONE_REGEX = "^(13[0-9]|14[01456879]|15[0-3,5-9]|16[2567]|17[0-8]|18[0-9]|19[0-3,5-9])\\d{8}$";
+
+    public static Boolean assertPhoneIsValid(String phone) {
+        return Pattern.matches(PHONE_REGEX, phone);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxPayUtils.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxPayUtils.java
new file mode 100644
index 0000000..9cade45
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxPayUtils.java
@@ -0,0 +1,161 @@
+package com.panzhihua.common.utlis;
+
+import java.math.BigDecimal;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.SortedMap;
+import java.util.TreeMap;
+
+import com.panzhihua.common.utlis.wx.WXPayUtil;
+import org.json.XML;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.constants.PayCpmstant;
+
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+public class WxPayUtils {
+
+    public static String getUnifiedorder(String appid, String mchId, String payKey, String notifyUrl, String body,
+        String openid, String outTradeNo, BigDecimal money,String attach) {
+        String nonceStr = PayUtil.makeUUID(32);
+        SortedMap<Object, Object> params = new TreeMap<>();
+        params.put("appid", appid);
+        params.put("body", body);
+        params.put("mch_id", mchId);
+        params.put("nonce_str", nonceStr);
+        params.put("notify_url", notifyUrl);
+        params.put("openid", openid);
+        //附加数据
+        if(StringUtils.isNotEmpty(attach)){
+            params.put("attach", attach);
+        }
+        params.put("out_trade_no", outTradeNo);// 商品订单号
+        params.put("spbill_create_ip", PayUtil.getLocalIp());// 服务部署的ip
+        params.put("total_fee", PayUtil.moneyToIntegerStr(money));// 费用的参数转型
+        params.put("trade_type", "JSAPI");// 对接类型
+        params.put("sign", PayUtil.createSign(PayCpmstant.DEFAULT_ENCODING, params, payKey));// MD5签名
+        // 转换成xml
+        String xmlData = PayUtil.getRequestXml(params);
+        // 请求微信后台,获取支付id
+        String resXml = HttpClientUtil.httpsRequest(PayCpmstant.UNIFIEDORDER_URL, xmlData);
+        log.info("请求微信支付返回参数:" + resXml);
+
+        org.json.JSONObject resultData = XML.toJSONObject(resXml);
+        JSONObject data = JSON.parseObject(resultData.get("xml").toString());
+        JSONObject result = new JSONObject();
+        if (data.get("return_msg").equals(PayCpmstant.RETURN_MSG)
+            && data.get("return_code").equals(PayCpmstant.RETURN_CODE)) {
+            // 将微信统一下单成功的参数拼接再签名
+            // 统一下单返回prepay_id
+            String prepayId = "prepay_id=" + data.getString("prepay_id");
+            // 时间戳
+            Long timeStamp = System.currentTimeMillis() / 1000;
+            // 封装需要签名的字段
+            SortedMap<Object, Object> payParams = new TreeMap<>();
+            payParams.put("appId", appid);
+            payParams.put("nonceStr", nonceStr);
+            payParams.put("package", prepayId);
+            payParams.put("signType", PayCpmstant.SIGN_TYPE);
+            payParams.put("timeStamp", timeStamp);
+            // 将参数以及签名计算完成封装返回给前端
+            result.put("timeStamp", timeStamp);
+            result.put("nonceStr", nonceStr);
+            result.put("package", prepayId);
+            result.put("signType", PayCpmstant.SIGN_TYPE);
+            result.put("paySign", PayUtil.createSign(PayCpmstant.DEFAULT_ENCODING, payParams, payKey));
+        }
+        return result.toJSONString();
+    }
+
+    public static SortedMap<Object, Object> prepayId(Map<String, String> map) {
+        SortedMap<Object, Object> parameters = new TreeMap<>();
+        parameters.put("appId", "");
+        parameters.put("timeStamp", PayUtil.create_timestamp());
+        parameters.put("nonceStr", map.get("nonce_str"));
+        parameters.put("package", "prepay_id=" + map.get("prepay_id"));
+        parameters.put("signType", "MD5");
+        String sign = PayUtil.createSign("UTF-8", parameters, "商户秘钥");
+        parameters.put("prepay_id", "prepay_id=" + map.get("prepay_id"));
+        parameters.put("paySign", sign);
+        return parameters;
+    }
+    public static String h5pay(String appid, String mchId, String payKey, String notifyUrl, String body,
+                               String openid, String outTradeNo, BigDecimal money, String tradeType, String clientIp) {
+        String nonceStr = PayUtil.makeUUID(32);
+        SortedMap<Object, Object> params = new TreeMap<>();
+        params.put("appid", appid);
+        params.put("body", body);
+        params.put("mch_id", mchId);
+        params.put("nonce_str", nonceStr);
+        params.put("notify_url", notifyUrl);
+        params.put("openid", openid);
+        params.put("out_trade_no", outTradeNo);// 商品订单号
+        params.put("spbill_create_ip", clientIp);// 用户真实ip
+        params.put("total_fee", PayUtil.moneyToIntegerStr(money));// 费用的参数转型
+        params.put("trade_type", tradeType);// 对接类型
+        params.put("sign", PayUtil.createSign(PayCpmstant.DEFAULT_ENCODING, params, payKey));// MD5签名
+        // 转换成xml
+        String xmlData = PayUtil.getRequestXml(params);
+        // 请求微信后台,获取支付id
+        String resXml = HttpClientUtil.httpsRequest(PayCpmstant.UNIFIEDORDER_URL, xmlData);
+        log.info("请求微信支付返回参数:" + resXml);
+
+        org.json.JSONObject resultData = XML.toJSONObject(resXml);
+        JSONObject data = JSON.parseObject(resultData.get("xml").toString());
+        JSONObject result = new JSONObject();
+
+            if (data.get("return_msg").equals(PayCpmstant.RETURN_MSG)
+                    && data.get("return_code").equals(PayCpmstant.RETURN_CODE)) {
+                // 将微信统一下单成功的参数拼接再签名
+                // 统一下单返回prepay_id
+                if(tradeType.equals("JSAPI")) {
+                    String prepayId = "prepay_id=" + data.getString("prepay_id");
+                    // 时间戳
+                    Long timeStamp = System.currentTimeMillis() / 1000;
+                    // 封装需要签名的字段
+                    SortedMap<Object, Object> payParams = new TreeMap<>();
+                    payParams.put("appId", appid);
+                    payParams.put("nonceStr", nonceStr);
+                    payParams.put("package", prepayId);
+                    payParams.put("signType", PayCpmstant.SIGN_TYPE);
+                    payParams.put("timeStamp", timeStamp);
+                    // 将参数以及签名计算完成封装返回给前端
+                    result.put("timeStamp", timeStamp);
+                    result.put("nonceStr", nonceStr);
+                    result.put("package", prepayId);
+                    result.put("signType", PayCpmstant.SIGN_TYPE);
+                    result.put("paySign", PayUtil.createSign(PayCpmstant.DEFAULT_ENCODING, payParams, payKey));
+                }
+                else if(tradeType.equals("NATIVE")) {
+                    result.put("codeUrl",data.getString("code_url"));
+                } else if(tradeType.equals("MWEB")) {
+                    result.put("mWebUrl",data.getString("mweb_url"));
+                }
+            }
+
+
+
+        return result.toJSONString();
+    }
+
+    public static String refund(String appid,String mchId,String orderNo,BigDecimal totalFee,BigDecimal refundFee,String refundNo,Boolean isTest) throws Exception {
+        //创建请求地址
+        String url = PayCpmstant.REFUND_URL;
+        Map<String, String> paramMap = new LinkedHashMap<>();
+        paramMap.put("appid",appid);
+        paramMap.put("mch_id",mchId);
+        paramMap.put("nonce_str", WXPayUtil.generateNonceStr());
+        paramMap.put("out_refund_no",refundNo);
+        paramMap.put("out_trade_no",orderNo);
+        paramMap.put("refund_fee",String.valueOf(refundFee.multiply(BigDecimal.valueOf(100)).longValue()));
+        paramMap.put("total_fee",String.valueOf(totalFee.multiply(BigDecimal.valueOf(100)).longValue()));
+        paramMap.put("sign",WXPayUtil.generateSignature(paramMap,PayCpmstant.REFUND_KEY));
+        log.info("微信退款请求参数:{},{},{},{}",url,WXPayUtil.mapToXml(paramMap),mchId,isTest);
+        //接收请求返回值
+        return HttpClientUtil.doRefund(url,WXPayUtil.mapToXml(paramMap),mchId,isTest);
+
+    }
+}
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
new file mode 100644
index 0000000..9c55423
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxUtil.java
@@ -0,0 +1,839 @@
+package com.panzhihua.common.utlis;
+
+import java.math.BigDecimal;
+import java.util.*;
+
+import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.constants.WxSubscribeConstants;
+import com.panzhihua.common.model.dtos.wx.TemplateParam;
+import com.panzhihua.common.model.dtos.wx.WxSubscribeDTO;
+
+import com.panzhihua.common.model.vos.community.acid.ComActAcidDangerMemberVO;
+import com.panzhihua.common.model.vos.community.reserve.FiveCount;
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+public class WxUtil {
+
+    // 客服消息推送地址
+    public final static String kf_url = "https://api.weixin.qq.com/cgi-bin/message/custom/send";
+
+    public static String sendKfLinkMessage(String openid, String url, String thumbUrl, String access_token)
+        throws Exception {
+        Map<String, Object> map_content = new HashMap<>();
+        map_content.put("title", "社区福利一分购");
+        map_content.put("description", "点击参与社区一分钱抢购活动");
+        map_content.put("url", url);// 跳转地址
+        map_content.put("thumb_url", thumbUrl);// 图片地址
+        Map<String, Object> map = new HashMap<>();
+        map.put("touser", openid);
+        map.put("msgtype", "link");
+        map.put("link", map_content);
+        String content = JSON.toJSONString(map);
+        return HttpClientUtil.httpPost(kf_url + "?access_token=" + access_token, content);
+    }
+
+    public static String sendKfConetntMessage(String openid, String access_token) throws Exception {
+        Map<String, Object> map_content = new HashMap<>();
+        map_content.put("content", "社区福利一分购");
+        Map<String, Object> map = new HashMap<>();
+        map.put("touser", openid);
+        map.put("msgtype", "text");
+        map.put("text", map_content);
+        String content = JSON.toJSONString(map);
+        return HttpClientUtil.httpPost(kf_url + "?access_token=" + access_token, content);
+    }
+
+    public static String sendKfImagesMessage(String openid, String access_token, String mediaId) throws Exception {
+        Map<String, Object> map_content = new HashMap<>();
+        map_content.put("media_id", mediaId);
+        Map<String, Object> map = new HashMap<>();
+        map.put("touser", openid);
+        map.put("msgtype", "image");
+        map.put("image", map_content);
+        String content = JSON.toJSONString(map);
+        return HttpClientUtil.httpPost(kf_url + "?access_token=" + access_token, content);
+    }
+
+    /**
+     * 订阅消息推送
+     * 
+     * @param accessToken
+     *            获取会话token
+     * @return 消息推送结果
+     */
+    static void sendSubscribe(String accessToken, WxSubscribeDTO subscribeDTO) throws Exception {
+        String resultString = HttpUtils.wxMessageModeSendUrl(accessToken, subscribeDTO);
+        JSONObject jsonResult = JSON.parseObject(resultString);
+        if (jsonResult != null) {
+            log.info("订阅消息推送返回参数" + jsonResult.toJSONString());
+            int errorCode = jsonResult.getIntValue("errcode");
+            String errorMessage = jsonResult.getString("errmsg");
+            if (errorCode == 0) {
+                log.info("订阅消息推送成功,openId:" + subscribeDTO.getTouser());
+            } else {
+                log.error(
+                    "订阅消息发送失败,错误码:" + errorCode + ",错误信息:" + errorMessage + "用户openid:" + subscribeDTO.getTouser());
+            }
+        }
+    }
+
+    /**
+     * 随手拍奖励到账订阅消息推送
+     * 
+     * @param openId
+     *            用户openid
+     * @param accessToken
+     *            token会话标识
+     * @param name
+     *            随手拍活动标题
+     * @param amount
+     *            奖励金额
+     * @param remark
+     *            备注说明
+     */
+    public static void sendSubscribeJLDZ(String openId, String accessToken, String name, BigDecimal amount,
+        String remark,String templateId) {
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        List<TemplateParam> paras = new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("thing1", name));// 活动名称
+        paras.add(new TemplateParam("amount3", amount.toString()));// 奖励金额
+        paras.add(new TemplateParam("thing7", remark));// 备注说明
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken, subscribeDTO);
+        } catch (Exception e) {
+            log.error("随手拍奖励到账订阅消息推送失败,失败原因:" + e.getMessage());
+        }
+    }
+
+    /**
+     * 活动报名成功订阅消息推送
+     * 
+     * @param openId
+     *            用户openid
+     * @param accessToken
+     *            token会话标识
+     * @param name
+     *            活动名称
+     * @param address
+     *            活动地址
+     * @param activityTime
+     *            活动时间
+     * @param signTime
+     *            报名时间
+     */
+    public static void sendSubscribeSQHD(String openId, String accessToken, String name, String address,
+        String activityTime, String signTime) {
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(WxSubscribeConstants.BMCG_ID);
+        List<TemplateParam> paras = new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("thing1", name));// 活动名称
+        paras.add(new TemplateParam("thing2", address));// 活动地址
+        paras.add(new TemplateParam("date3", activityTime));// 活动时间
+        paras.add(new TemplateParam("time8", signTime));// 报名时间
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken, subscribeDTO);
+        } catch (Exception e) {
+            log.error("活动报名成功订阅消息推送失败,失败原因:" + e.getMessage());
+        }
+    }
+
+    /**
+     * 新问卷调查订阅消息通知
+     * 
+     * @param openId
+     *            用户openid
+     * @param accessToken
+     *            token会话标识
+     * @param name
+     *            活动名称
+     * @param questionnaireName
+     *            问卷名称
+     */
+    public static void sendSubscribeDYWJ(String openId, String accessToken, String name, String questionnaireName) {
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(WxSubscribeConstants.DYWJ_ID);
+        List<TemplateParam> paras = new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("thing1", name));// 活动名称
+        paras.add(new TemplateParam("thing2", questionnaireName));// 问卷名称
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken, subscribeDTO);
+        } catch (Exception e) {
+            log.error("新问卷调查订阅消息推送失败,失败原因:" + e.getMessage());
+        }
+    }
+
+    /**
+     * 认证审核订阅消息通知
+     * 
+     * @param openId
+     *            用户openid
+     * @param accessToken
+     *            token会话标识
+     * @param name
+     *            认证内容
+     * @param applyTime
+     *            申请时间
+     * @param result
+     *            审核结果
+     */
+    public static void sendSubscribeRZSH(String openId, String accessToken, String name, String applyTime,
+        String result,String templateId) {
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        List<TemplateParam> paras = new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("thing2", name));// 认证内容
+        paras.add(new TemplateParam("phrase1", result));// 审核结果
+        paras.add(new TemplateParam("date3", applyTime));// 申请时间
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken, subscribeDTO);
+        } catch (Exception e) {
+            log.error("认证审核订阅消息推送失败,失败原因:" + e.getMessage());
+        }
+    }
+
+    /**
+     * 随手拍、邻里圈、微心愿、房源审核状态进度通知
+     * 
+     * @param openId
+     *            用户openid
+     * @param accessToken
+     *            token会话标识
+     * @param name
+     *            审核项目
+     * @param applyTime
+     *            审核状态
+     * @param result
+     *            审核时间
+     */
+    public static void sendSubscribeSHZT(String openId, String accessToken, String name, String applyTime,
+        String result,String templateId) {
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        List<TemplateParam> paras = new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("thing1", name));// 审核项目
+        paras.add(new TemplateParam("phrase2", result));// 审核状态
+        paras.add(new TemplateParam("time3", applyTime));// 审核时间
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken, subscribeDTO);
+        } catch (Exception e) {
+            log.error("审核状态订阅消息推送失败,失败原因:" + e.getMessage());
+        }
+    }
+
+    /**
+     * 社区活动取消通知
+     * 
+     * @param openId
+     *            用户openid
+     * @param accessToken
+     *            token会话标识
+     * @param name
+     *            活动名称
+     * @param time
+     *            活动时间
+     */
+    public static void sendSubscribeHDQX(String openId, String accessToken, String name, String time,String templateId) {
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        List<TemplateParam> paras = new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("thing1", name));// 活动标题
+        paras.add(new TemplateParam("date2", time));// 活动时间
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken, subscribeDTO);
+        } catch (Exception e) {
+            log.error("活动取消订阅消息推送失败,失败原因:" + e.getMessage());
+        }
+    }
+
+    /**
+     * 留言回复订阅消息通知
+     * 
+     * @param openId
+     *            用户openid
+     * @param accessToken
+     *            token会话标识
+     * @param name
+     *            回复人名称
+     * @param time
+     *            回复时间
+     * @param content
+     *            回复内容
+     */
+    public static void sendSubscribeLYHF(String openId, String accessToken, String name, String time, String content,String templateId) {
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        List<TemplateParam> paras = new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("thing3", content));// 回复内容
+        paras.add(new TemplateParam("name1", name));// 回复者
+        paras.add(new TemplateParam("date2", time));// 回复时间
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken, subscribeDTO);
+        } catch (Exception e) {
+            log.error("留言回复订阅消息推送失败,失败原因:" + e.getMessage());
+        }
+    }
+
+    /**
+     * 活动变更订阅消息通知
+     * 
+     * @param openId
+     *            用户openid
+     * @param accessToken
+     *            token会话标识
+     * @param name
+     *            活动名称
+     * @param changeTime
+     *            活动时间变更
+     * @param changeAddress
+     *            活动地点变更
+     * @param time
+     *            活动时间
+     * @param address
+     *            活动地点
+     */
+    public static void sendSubscribeHDBG(String openId, String accessToken, String name, String changeTime,
+        String changeAddress, String time, String address,String templateId) {
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        List<TemplateParam> paras = new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("thing1", name));// 活动名称
+        paras.add(new TemplateParam("time2", changeTime));// 活动时间变更
+        paras.add(new TemplateParam("thing3", changeAddress));// 地址变更
+        paras.add(new TemplateParam("time5", time));// 活动时间
+        paras.add(new TemplateParam("thing6", address));// 活动地点
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken, subscribeDTO);
+        } catch (Exception e) {
+            log.error("留言回复订阅消息推送失败,失败原因:" + e.getMessage());
+        }
+    }
+
+    /**
+     * 活动即将开始订阅消息通知
+     * 
+     * @param openId
+     *            用户openid
+     * @param accessToken
+     *            token会话标识
+     * @param name
+     *            活动名称
+     * @param time
+     *            活动时间
+     * @param address
+     *            活动地点
+     * @param num
+     *            活动参加人数
+     */
+    public static void sendSubscribeHDJJKS(String openId, String accessToken, String name, String time, String address,
+        String num,String templateId) {
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        List<TemplateParam> paras = new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("thing1", name));// 活动名称
+        paras.add(new TemplateParam("date2", time));// 活动时间
+        paras.add(new TemplateParam("number3", num));// 参与人数
+        paras.add(new TemplateParam("thing4", address));// 活动地点
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken, subscribeDTO);
+        } catch (Exception e) {
+            log.error("活动即将开始订阅消息推送失败,失败原因:" + e.getMessage());
+        }
+    }
+
+    /**
+     * 预约提醒订阅消息通知
+     * @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,String templateId){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        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());
+        }
+    }
+
+    /**
+     * 预约提醒订阅消息通知
+     * @param openId    用户openid
+     * @param accessToken   token会话标识
+     */
+    public static void sendSubscribeTXTZ(String openId, String accessToken, String templateId){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        List<TemplateParam> paras=new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("time2",DateUtils.getCurrentDateStr()));
+        paras.add(new TemplateParam("thing3","请尽快完善返攀报备,填报当前居住地。"));
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken,subscribeDTO);
+        }catch (Exception e){
+            log.error("预约提醒订阅消息推送失败,失败原因:" + e.getMessage());
+        }
+    }
+
+    /**
+     * 推送危险人员订阅消息通知
+     * @param openId    用户openid
+     * @param accessToken   token会话标识
+     * @param dangerMember 风险人员
+     */
+    public static void sendSubscribeDanger(String openId, String accessToken, ComActAcidDangerMemberVO dangerMember, String templateId){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        List<TemplateParam> paras=new ArrayList<TemplateParam>();
+        Integer type = dangerMember.getType();
+        paras.add(new TemplateParam("thing2", (type == 1 ? "当前风险人员 " : "当前未填住址人员 ") + dangerMember.getName()));
+        paras.add(new TemplateParam("time3", DateUtils.getCurrentDateStr()));
+        paras.add(new TemplateParam("thing1","新冠疫情"));
+        paras.add(new TemplateParam("thing4", type == 1 ? "新增风险人员" : "新增未填住址人员"));
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken,subscribeDTO);
+        }catch (Exception e){
+            log.error("危险人员订阅消息推送失败,失败原因:" + e.getMessage());
+        }
+    }
+
+
+    /**
+     * 推送危险人员订阅消息通知
+     * @param openId    用户openid
+     * @param accessToken   token会话标识
+     * @param fiveCount 统计数据
+     */
+    public static void sendSubscribeStatics(String openId, String accessToken, FiveCount fiveCount, String templateId){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        subscribeDTO.setPage("/packageB/pages/register/reportingStatistics/reportingStatistics");
+        List<TemplateParam> paras=new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("thing2", "报备总数"+fiveCount.getAllCount()+";"+"风险人员"+fiveCount.getDangerCount()));
+        paras.add(new TemplateParam("time3", DateUtils.getDateFormatString(DateUtils.addDay(new Date(),-1),"yyyy-MM-dd")+"0点到24点"));
+        paras.add(new TemplateParam("thing1","新冠疫情"));
+        paras.add(new TemplateParam("thing4", "社区报备数据统计"));
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken,subscribeDTO);
+        }catch (Exception e){
+            log.error("危险人员订阅消息推送失败,失败原因:" + e.getMessage());
+        }
+    }
+
+    /**
+     * uu洗车订单状态更改
+     * @param openId
+     * @param accessToken
+     * @param status
+     * @param washerName
+     * @param washerMobile
+     * @param phone
+     * @param templateId
+     */
+    public static void sendUuWash(String openId, String accessToken, String status,String washerName,String washerMobile,String phone,String templateId){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        subscribeDTO.setPage("packageD/pages/washer/order/index");
+        List<TemplateParam> paras=new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("thing1", "上门洗车"));
+        paras.add(new TemplateParam("thing4", phone));
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken,subscribeDTO);
+        }catch (Exception e){
+            log.error(e.getMessage());
+        }
+    }
+
+    /**
+     * ws洗车订单状态更改
+     * @param openId
+     * @param accessToken
+     * @param status
+     * @param washerName
+     * @param washerMobile
+     * @param phone
+     * @param templateId
+     */
+    public static void sendWsWash(String openId, String accessToken, String status,String washerName,String washerMobile,String phone,String templateId){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        subscribeDTO.setPage("pages/washer/order/index");
+        List<TemplateParam> paras=new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("thing2", "上门洗车"));
+        paras.add(new TemplateParam("thing5", phone));
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            log.info(subscribeDTO.toString());
+            sendSubscribe(accessToken,subscribeDTO);
+        }catch (Exception e){
+            log.error(e.getMessage());
+        }
+    }
+    /**
+     * uu洗车订单状态更改
+     * @param openId
+     * @param accessToken
+     * @param status
+     * @param washerName
+     * @param washerMobile
+     * @param phone
+     * @param templateId
+     */
+    public static void sendUuWash3(String openId, String accessToken, String status,String washerName,String washerMobile,String phone,String templateId){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        subscribeDTO.setPage("packageD/pages/washer/order/index");
+        List<TemplateParam> paras=new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("thing9", StrUtil.isBlank(washerName) ? "无":washerName));
+        paras.add(new TemplateParam("phone_number10",StrUtil.isBlank(washerMobile) ? "0":washerMobile));
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken,subscribeDTO);
+        }catch (Exception e){
+            log.error(e.getMessage());
+        }
+    }
+    /**
+     * ws洗车订单状态更改
+     * @param openId
+     * @param accessToken
+     * @param status
+     * @param washerName
+     * @param washerMobile
+     * @param phone
+     * @param templateId
+     */
+    public static void sendWsWash3(String openId, String accessToken, String status,String washerName,String washerMobile,String phone,String templateId){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        subscribeDTO.setPage("pages/washer/order/index");
+        List<TemplateParam> paras=new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("thing9", StrUtil.isBlank(washerName) ? "无":washerName));
+        paras.add(new TemplateParam("phone_number10",StrUtil.isBlank(washerMobile) ? "0" :washerMobile));
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken,subscribeDTO);
+        }catch (Exception e){
+            log.error(e.getMessage());
+        }
+    }
+    /**
+     * uu洗车订单状态更改
+     * @param openId
+     * @param accessToken
+     * @param status
+     * @param washerName
+     * @param washerMobile
+     * @param phone
+     * @param templateId
+     */
+    public static void sendUuWash4(String openId, String accessToken, String status,String washerName,String washerMobile,String phone,String templateId){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        subscribeDTO.setPage("packageD/pages/washer/order/index");
+        List<TemplateParam> paras=new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("thing4", status));
+        paras.add(new TemplateParam("thing3", StrUtil.isBlank(washerName) ? "无":washerName));
+        paras.add(new TemplateParam("thing6",StrUtil.isBlank(washerMobile) ? "无":washerMobile));
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken,subscribeDTO);
+        }catch (Exception e){
+            log.error(e.getMessage());
+        }
+    }
+    /**
+     * ws洗车订单状态更改
+     * @param openId
+     * @param accessToken
+     * @param status
+     * @param washerName
+     * @param washerMobile
+     * @param phone
+     * @param templateId
+     */
+    public static void sendWsWash4(String openId, String accessToken, String status,String washerName,String washerMobile,String phone,String templateId){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        subscribeDTO.setPage("pages/washer/order/index");
+        List<TemplateParam> paras=new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("thing4", status));
+        paras.add(new TemplateParam("thing3", StrUtil.isBlank(washerName) ? "无":washerName));
+        paras.add(new TemplateParam("thing6",StrUtil.isBlank(washerMobile) ? "无":washerMobile));
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken,subscribeDTO);
+        }catch (Exception e){
+            log.error(e.getMessage());
+        }
+    }
+    /**
+     * uu洗车订单状态更改
+     * @param openId
+     * @param accessToken
+     * @param status
+     * @param washerName
+     * @param washerMobile
+     * @param phone
+     * @param templateId
+     */
+    public static void sendUuWash6(String openId, String accessToken, String status,String washerName,String washerMobile,String phone,String templateId){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        subscribeDTO.setPage("packageD/pages/washer/order/index");
+        List<TemplateParam> paras=new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("phrase14", status));
+        paras.add(new TemplateParam("name3", StrUtil.isBlank(washerName) ? "无":washerName));
+        paras.add(new TemplateParam("thing5",StrUtil.isBlank(washerMobile) ? "无":washerMobile));
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken,subscribeDTO);
+        }catch (Exception e){
+            log.error(e.getMessage());
+        }
+    }
+    /**
+     * ws洗车订单状态更改
+     * @param openId
+     * @param accessToken
+     * @param status
+     * @param washerName
+     * @param washerMobile
+     * @param phone
+     * @param templateId
+     */
+    public static void sendWsWash6(String openId, String accessToken, String status,String washerName,String washerMobile,String phone,String templateId){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id(templateId);
+        subscribeDTO.setPage("pages/washer/order/index");
+        List<TemplateParam> paras=new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("phrase14", status));
+        paras.add(new TemplateParam("name3", StrUtil.isBlank(washerName) ? "无":washerName));
+        paras.add(new TemplateParam("thing5",StrUtil.isBlank(washerMobile) ? "无":washerMobile));
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken,subscribeDTO);
+        }catch (Exception e){
+            log.error(e.getMessage());
+        }
+    }
+    /**
+     * 长期订阅模板消息推送
+     * @param openId
+     * @param accessToken
+     */
+    public static void sendLongTimeTemplate(String openId, String accessToken, String word,String content,String page) {
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id("5f-xcy4lrWy_0kc5H4dj5bgBM-MwsvTwPApA-u3fqsQ");
+        subscribeDTO.setPage(page);
+        List<TemplateParam> paras = new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("thing3", word));
+        paras.add(new TemplateParam("thing6", content));
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken, subscribeDTO);
+        } catch (Exception e) {
+            log.error(e.getMessage());
+        }
+    }
+
+    /**
+     * 推送 商家开始配送后 订单配送通知
+     * @param openId    用户openid
+     * @param accessToken   token会话标识
+     */
+    public static void sendStartShipping(String openId, String accessToken, String orderNo){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id("ezwzGs3R5DMuKxTyW8xOIQOIsLpW2sS61ZXsfyll7rw");
+        List<TemplateParam> paras=new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("character_string2", orderNo));
+        paras.add(new TemplateParam("phrase5", "配送中"));
+        paras.add(new TemplateParam("thing8","您的订单已开始配送"));
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken,subscribeDTO);
+        }catch (Exception e){
+            log.error("商家开始配送后订阅消息推送失败,失败原因:" + e.getMessage());
+        }
+    }
+
+    /**
+     * 推送 商家送达后 用取货通知
+     * @param openId    用户openid
+     * @param accessToken   token会话标识
+     */
+    public static void sendService(String openId, String accessToken, String pointName){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id("6RGbNmRrmGNWyeK7UDodYTItNqEnIIdtlgyzeGLI2w8");
+        List<TemplateParam> paras=new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("phrase3", "待收货"));
+        paras.add(new TemplateParam("thing7", "您有一个订单已到达自提点,请及时取货"));
+        paras.add(new TemplateParam("thing5",pointName));
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken,subscribeDTO);
+        }catch (Exception e){
+            log.error("取货通知订阅消息推送失败,失败原因:" + e.getMessage());
+        }
+    }
+    /**
+     * 推送 商家发货后 发货通知
+     * @param openId    用户openid
+     * @param accessToken   token会话标识
+     */
+    public static void sendDeliverGoodsNotice(String openId, String accessToken, String logisticsCompany , String logisticsNo, String orderNo,String deliverTime){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id("PuE0cYU9xUW7Y6XpW-wqz4Hlj1w2mnI_LprsUByJnGg");
+        List<TemplateParam> paras=new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("thing2", "您有一个订单已发货"));
+        paras.add(new TemplateParam("thing3", logisticsCompany));
+        paras.add(new TemplateParam("character_string4",logisticsNo));
+        paras.add(new TemplateParam("character_string5",orderNo));
+        paras.add(new TemplateParam("time6",deliverTime));
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken,subscribeDTO);
+        }catch (Exception e){
+            log.error("商家发货后订阅消息推送失败,失败原因:" + e.getMessage());
+        }
+    }
+
+    /**
+     * 推送 商家处理完退款申请后 订单退款通知
+     * @param openId    用户openid
+     * @param accessToken   token会话标识
+     */
+    public static void sendRefundNotice(String openId, String accessToken, String refundNo , String refundAmount, String result){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id("GxFV_Oj1Pri4NnPkvKGPIPJsPryG8M6DW9mTHTbIrjE");
+        List<TemplateParam> paras=new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("character_string6", refundNo));
+        paras.add(new TemplateParam("amount9", refundAmount));
+        paras.add(new TemplateParam("phrase11",result));
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken,subscribeDTO);
+        }catch (Exception e){
+            log.error("订单退款通知 订阅消息推送失败,失败原因:" + e.getMessage());
+        }
+    }
+
+    /**
+     * 推送 新订单提醒 商家收到一个新的订单
+     * @param openId    用户openid
+     * @param accessToken   token会话标识
+     */
+    public static void sendNewOrderNotice(String openId, String accessToken, String orderNo , String type, String goodsName,String amount,String orderTime){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id("3EwAKLw2Xe2o-GDnH-NUGa4nNwqPXsn01hBX8Xp2PbU");
+        List<TemplateParam> paras=new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("character_string1", orderNo));
+        paras.add(new TemplateParam("thing5", type));
+        paras.add(new TemplateParam("thing3",goodsName));
+        paras.add(new TemplateParam("amount4",amount));
+        paras.add(new TemplateParam("time2",orderTime));
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken,subscribeDTO);
+        }catch (Exception e){
+            log.error("新订单提醒 订阅消息推送失败,失败原因:" + e.getMessage());
+        }
+    }
+
+    /**
+     * 推送 退款申请通知 商家收到一个退款申请
+     * @param openId    用户openid
+     * @param accessToken   token会话标识
+     */
+    public static void sendNewRefundOrderNotice(String openId, String accessToken, String refundNo , String refundAmount,String orderTime){
+        WxSubscribeDTO subscribeDTO = new WxSubscribeDTO();
+        subscribeDTO.setTouser(openId);
+        subscribeDTO.setTemplate_id("3EwAKLw2Xe2o-GDnH-NUGa4nNwqPXsn01hBX8Xp2PbU");
+        List<TemplateParam> paras=new ArrayList<TemplateParam>();
+        paras.add(new TemplateParam("thing5", "您有一个退款订单"));
+        paras.add(new TemplateParam("character_string2", refundNo));
+        paras.add(new TemplateParam("amount3",refundAmount));
+        paras.add(new TemplateParam("time4",orderTime));
+        subscribeDTO.setTemplateParamList(paras);
+        try {
+            sendSubscribe(accessToken,subscribeDTO);
+        }catch (Exception e){
+            log.error("退款申请通知 订阅消息推送失败,失败原因:" + e.getMessage());
+        }
+    }
+
+
+
+    public static void main(String[] args) {
+
+        WxXCXTempSend util = new WxXCXTempSend();
+        try {
+            // String openId = "oMIR-5S9rpsWAVUUrNKoVDQbn5Mw";//zj的openid
+            String openId = "oMIR-5dWyNyWCCKMl7-kYzvyHOjs";// lyq的openid
+            String accessToken = util.getAccessToken();
+            // sendSubscribeHDJJKS(openId,accessToken,"测试活动即将开始标题","2021-08-04 13:00:00","成都市","50");//活动即将开始
+            // sendSubscribeHDQX(openId,accessToken,"取消活动测试标题","2021-08-04 13:00:00");//活动取消
+            // sendSubscribeHDBG(openId,accessToken,"活动名称","2021-08-05","活动变更地址","2021-08-06","活动地址");//活动变更
+            // sendSubscribeRZSH(openId,accessToken,"用户认证审核通知","2021-08-04","通过");//认证审核
+            // sendSubscribeJLDZ(openId,accessToken,"随手拍活动DDD",BigDecimal.TEN,"用户参加随手拍活动奖励");//奖励到账
+            // sendSubscribeLYHF(openId,accessToken,"社区管理员","2021-08-04 11:26:20","勇敢牛牛 不怕困难!");//留言回复
+            // sendSubscribeSHZT(openId,accessToken,"随手拍审核!!","2021-08-04 11:20:00","通过了");//审核状态
+        } catch (Exception e) {
+            System.out.println("错误错误!!!");
+        }
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxXCXTempSend.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxXCXTempSend.java
new file mode 100644
index 0000000..904c51c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxXCXTempSend.java
@@ -0,0 +1,328 @@
+package com.panzhihua.common.utlis;
+
+import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.constants.SecurityConstants;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.redis.RedisUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.fileupload.FileItem;
+import org.apache.commons.fileupload.FileItemFactory;
+import org.apache.commons.fileupload.disk.DiskFileItemFactory;
+import org.apache.http.entity.ContentType;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+import org.springframework.stereotype.Component;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.commons.CommonsMultipartFile;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.io.*;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.nio.charset.StandardCharsets;
+import java.text.MessageFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+@Slf4j
+@Component
+public class WxXCXTempSend extends BaseController {
+
+    public static final String APP_ID = "wx118de8a734d269f0";
+    private static final String APP_SECRET = "0264342daefde5cd70a6adada09ee5b1";
+    private static String ACCESS_TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential";
+    private static String APP_IMAGE_URL = "https://www.psciio.com//idcard/8fa82cfba258498eab2fa818220fb592.jpg";
+    private static String APP_IMAGE_NAME = "5.jpg";
+    private static String WX_CALL_BACK = "https://api.weixin.qq.com/cgi-bin/getcallbackip?access_token=";
+    //2小时
+    private static final Long EXPIRE_TIME = 2L;
+    @Resource
+    private RedisTemplate redisTemplate;
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+    @Resource
+    private RedisUtils redisUtils;
+
+    private static WxXCXTempSend wxXCXTempSend;
+
+    /**
+     * url转变为 MultipartFile对象
+     *
+     * @param url
+     * @param fileName
+     * @return
+     * @throws Exception
+     */
+    private static MultipartFile createFileItem(String url, String fileName) throws Exception {
+        FileItem item = null;
+        try {
+            HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection();
+            conn.setReadTimeout(30000);
+            conn.setConnectTimeout(30000);
+            // 设置应用程序要从网络连接读取数据
+            conn.setDoInput(true);
+            conn.setRequestMethod("GET");
+            if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) {
+                InputStream is = conn.getInputStream();
+
+                FileItemFactory factory = new DiskFileItemFactory(16, null);
+                String textFieldName = "uploadfile";
+                item =
+                        factory.createItem(textFieldName, ContentType.APPLICATION_OCTET_STREAM.toString(), false, fileName);
+                OutputStream os = item.getOutputStream();
+
+                int bytesRead = 0;
+                byte[] buffer = new byte[8192];
+                while ((bytesRead = is.read(buffer, 0, 8192)) != -1) {
+                    os.write(buffer, 0, bytesRead);
+                }
+                os.close();
+                is.close();
+            }
+        } catch (IOException e) {
+            throw new RuntimeException("文件下载失败", e);
+        }
+
+        return new CommonsMultipartFile(item);
+    }
+
+    /**
+     * 获取小程序token,(ps:0=token获取失败)
+     *
+     * @return
+     */
+    public String getAccessToken() throws Exception {
+        String accessToken = "";
+        String appId = this.getAppId();
+        accessToken = wxXCXTempSend.stringRedisTemplate.boundValueOps("access_token:access_token:" + appId).get();
+        return accessToken;
+    }
+
+
+    public String getAccessToken(String appId) throws Exception {
+        String accessToken = "";
+        accessToken = wxXCXTempSend.stringRedisTemplate.boundValueOps("access_token:access_token:" + appId).get();
+        return accessToken;
+    }
+
+    private String validAccessToken(String accessToken, String appId, String appSecret) throws Exception {
+        if (StrUtil.isEmpty(accessToken)) {
+            //重新获取并设置到缓存 该方法暂时只用在花城
+            accessToken = getAppAccessToken(appId, appSecret);
+            wxXCXTempSend.stringRedisTemplate.opsForValue().set("access_token:access_token:" + appId, accessToken, EXPIRE_TIME, TimeUnit.HOURS);
+        } else {
+            String accessTokenUrl = WX_CALL_BACK + accessToken;
+            String result = HttpClientUtil.httpGet(accessTokenUrl, null, null);
+            Map<String, Object> resultMap = JSON.parseObject(result, Map.class);
+            //如果Access_token过期也重新获取
+            if (resultMap.containsKey("errcode")) {
+                accessToken = getAppAccessToken(appId, appSecret);
+                wxXCXTempSend.stringRedisTemplate.opsForValue().set("access_token:access_token:" + appId, accessToken, EXPIRE_TIME, TimeUnit.HOURS);
+            }
+        }
+        return accessToken;
+    }
+
+    public String getAppAccessToken(String appId, String appSecret) throws Exception {
+        String accessToken = "0";
+        try {
+            log.info("获取微信token参数:appid=" + appId + ",appSecret=" + appSecret);
+            String accessTokenUrl = ACCESS_TOKEN_URL + "&appid=" + appId + "&secret=" + appSecret;
+            String result = HttpClientUtil.httpGet(accessTokenUrl, null, null);
+            Map<String, Object> resultMap = JSON.parseObject(result, Map.class);
+            StringRedisTemplate redisTemplate = wxXCXTempSend.stringRedisTemplate;
+            if (resultMap.containsKey("access_token")) {
+                accessToken = resultMap.get("access_token").toString();
+                redisTemplate.opsForValue().set("access_token:access_token:" + appId, accessToken);
+            }
+            HttpServletRequest request = ServletUtils.getRequest();
+            String requestURI = request.getRequestURI();
+            //加上时间戳
+            String datetime = new SimpleDateFormat("yyyyMMdd").format(new Date());
+            //这里是 Redis key的前缀,如: sys:tabieId:表名  如果不需要去掉表名也可以
+            String key = MessageFormat.format("{0}:{1}:{2}",  "access_token_request_incr",datetime,requestURI);
+            //查询 key 是否存在, 不存在返回 1 ,存在的话则自增加1
+            redisTemplate.opsForValue().increment(key, 1);
+
+        } catch (IOException ioe) {
+            log.error("小程序http请求异常");
+            ioe.printStackTrace();
+        }
+        return accessToken;
+    }
+
+    public String getWsAccessToken() throws Exception {
+        String accessToken = "0";
+        try {
+//            log.info("获取微信token参数:appid=" + APP_ID + ",appSecret=" + APP_SECRET);
+            String accessTokenUrl = ACCESS_TOKEN_URL + "&appid=wx98d62711dfbd8425" + "&secret=97a2a10b990c2774ed279724337b5337";
+            String result = HttpClientUtil.httpGet(accessTokenUrl, null, null);
+            Map<String, Object> resultMap = JSON.parseObject(result, Map.class);
+            if (resultMap.containsKey("access_token")) {
+                accessToken = resultMap.get("access_token").toString();
+            }
+        } catch (IOException ioe) {
+            log.error("小程序http请求异常");
+            ioe.printStackTrace();
+        }
+        return accessToken;
+    }
+
+    /**
+     * 获取西区社区通微信token
+     *
+     * @return 西区社区通微信token
+     * @throws Exception 异常
+     */
+    public String getXQAppAccessToken() throws Exception {
+        String accessToken = "0";
+        try {
+            // 此处APP_ID APP_SECRET 在微信小程序后端可见
+            // String accessTokenUrl = String.format(TEMP_URL, APP_ID, APP_SECRET);
+            String accessTokenUrl = ACCESS_TOKEN_URL + "&appid=" + APP_ID + "&secret=" + APP_SECRET;
+            String result = HttpClientUtil.httpGet(accessTokenUrl, null, null);
+            Map<String, Object> resultMap = JSON.parseObject(result, Map.class);
+            if (resultMap.containsKey("access_token")) {
+                accessToken = resultMap.get("access_token").toString();
+            }
+        } catch (IOException ioe) {
+            log.error("小程序http请求异常");
+            ioe.printStackTrace();
+        }
+        return accessToken;
+    }
+
+    public String getMediaId(String accessToken) {
+        String mediaId = "";
+        Boolean aBoolean = redisTemplate.hasKey(SecurityConstants.APPLETS_ACCESS_MEDIA_ID);
+        ValueOperations<String, String> valueOperations = redisTemplate.opsForValue();
+        if (aBoolean) {
+            Long expireTime = Long.parseLong(valueOperations.get(SecurityConstants.APPLETS_ACCESS_MEDIA_ID_TIME));
+            if (expireTime <= System.currentTimeMillis()) {
+                redisTemplate.delete(SecurityConstants.APPLETS_ACCESS_MEDIA_ID);// 如果过期则删除
+                redisTemplate.delete(SecurityConstants.APPLETS_ACCESS_MEDIA_ID_TIME);// 如果过期则删除
+                mediaId = getAppMediaId(accessToken);
+                valueOperations.set(SecurityConstants.APPLETS_ACCESS_MEDIA_ID, mediaId);
+                valueOperations.set(SecurityConstants.APPLETS_ACCESS_MEDIA_ID_TIME,
+                        System.currentTimeMillis() + 259000000 + "");
+            } else {
+                mediaId = valueOperations.get(SecurityConstants.APPLETS_ACCESS_MEDIA_ID);
+            }
+        } else {
+            mediaId = getAppMediaId(accessToken);
+            valueOperations.set(SecurityConstants.APPLETS_ACCESS_MEDIA_ID, mediaId);
+            valueOperations.set(SecurityConstants.APPLETS_ACCESS_MEDIA_ID_TIME,
+                    System.currentTimeMillis() + 259000000 + "");
+        }
+        return mediaId;
+    }
+
+    private String getAppMediaId(String accessToken) {
+        String appMediaId = "";
+        try {
+            MultipartFile file = createFileItem(APP_IMAGE_URL, APP_IMAGE_NAME);
+            appMediaId = uploadFile(file, accessToken);
+        } catch (Exception e) {
+            log.error("上传临时图片素材失败,错误原因:" + e.getMessage());
+        }
+        return appMediaId;
+    }
+
+    /**
+     * 微信小程序临时素材上传
+     *
+     * @param file
+     * @return
+     * @throws Exception
+     * @author yixiu
+     */
+    public String uploadFile(MultipartFile file, String access_token) throws Exception {
+        String url = "https://api.weixin.qq.com/cgi-bin/media/upload?access_token=" + access_token + "&type=image";
+        String result = null;
+        String fileName = file.getOriginalFilename();
+        URL urlObj = new URL(url);
+        HttpURLConnection con = (HttpURLConnection) urlObj.openConnection();
+        con.setRequestMethod("POST");
+        con.setDoInput(true);
+        con.setDoOutput(true);
+        con.setUseCaches(false);
+        // 设置请求头信息
+        con.setRequestProperty("Connection", "Keep-Alive");
+        con.setRequestProperty("Charset", "UTF-8");
+        // 设置边界
+        String BOUNDARY = "----------" + System.currentTimeMillis();
+        con.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + BOUNDARY);
+        // 请求正文信息
+        // 第一部分:
+        StringBuilder sb = new StringBuilder();
+        sb.append("--"); // 必须多两道线
+        sb.append(BOUNDARY);
+        sb.append("\r\n");
+        sb.append("Content-Disposition: form-data;name=\"media\";filename=\"" + fileName + "\"\r\n");
+        sb.append("Content-Type:application/octet-stream\r\n\r\n");
+        byte[] head = sb.toString().getBytes(StandardCharsets.UTF_8);
+        // 获得输出流
+        OutputStream out = new DataOutputStream(con.getOutputStream());
+        // 输出表头
+        out.write(head);
+        // 文件正文部分
+        // 把文件已流文件的方式 推入到url中
+        DataInputStream in = new DataInputStream(file.getInputStream());
+        int bytes = 0;
+        byte[] bufferOut = new byte[1024];
+        while ((bytes = in.read(bufferOut)) != -1) {
+            out.write(bufferOut, 0, bytes);
+        }
+        in.close();
+        // 结尾部分
+        byte[] foot = ("\r\n--" + BOUNDARY + "--\r\n").getBytes(StandardCharsets.UTF_8);// 定义最后数据分隔线
+        out.write(foot);
+        out.flush();
+        out.close();
+        StringBuffer buffer = new StringBuffer();
+        BufferedReader reader = null;
+        try {
+            // 定义BufferedReader输入流来读取URL的响应
+            reader = new BufferedReader(new InputStreamReader(con.getInputStream()));
+            String line = null;
+            while ((line = reader.readLine()) != null) {
+                buffer.append(line);
+            }
+            if (result == null) {
+                result = buffer.toString();
+            }
+        } catch (IOException e) {
+            System.out.println("发送POST请求出现异常! {}");
+            e.printStackTrace();
+            throw new IOException("数据读取异常");
+        } finally {
+            if (reader != null) {
+                reader.close();
+            }
+        }
+        // 获取到返回HTTP结果
+        Map<String, Object> map = JSONObject.parseObject(result, Map.class);
+        if (map.containsKey("media_id")) {
+            return map.get("media_id").toString();
+        }
+        System.out.println("小程序上传临时素材出错,返回信息为:    " + result);
+        return null;
+    }
+
+    @PostConstruct
+    public void init() {
+        wxXCXTempSend = this;
+        wxXCXTempSend.redisTemplate = this.redisTemplate;
+        wxXCXTempSend.stringRedisTemplate = this.stringRedisTemplate;
+        wxXCXTempSend.redisUtils = this.redisUtils;
+
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/wx/WXPayConstants.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/wx/WXPayConstants.java
new file mode 100644
index 0000000..ba798dd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/wx/WXPayConstants.java
@@ -0,0 +1,59 @@
+package com.panzhihua.common.utlis.wx;
+
+import org.apache.http.client.HttpClient;
+
+/**
+ * 常量
+ */
+public class WXPayConstants {
+
+    public enum SignType {
+        MD5, HMACSHA256
+    }
+
+    public static final String DOMAIN_API = "api.mch.weixin.qq.com";
+    public static final String DOMAIN_API2 = "api2.mch.weixin.qq.com";
+    public static final String DOMAIN_APIHK = "apihk.mch.weixin.qq.com";
+    public static final String DOMAIN_APIUS = "apius.mch.weixin.qq.com";
+
+
+    public static final String FAIL     = "FAIL";
+    public static final String SUCCESS  = "SUCCESS";
+    public static final String HMACSHA256 = "HMAC-SHA256";
+    public static final String MD5 = "MD5";
+
+    public static final String FIELD_SIGN = "sign";
+    public static final String FIELD_SIGN_TYPE = "sign_type";
+
+    public static final String WXPAYSDK_VERSION = "WXPaySDK/3.0.9";
+    public static final String USER_AGENT = WXPAYSDK_VERSION +
+            " (" + System.getProperty("os.arch") + " " + System.getProperty("os.name") + " " + System.getProperty("os.version") +
+            ") Java/" + System.getProperty("java.version") + " HttpClient/" + HttpClient.class.getPackage().getImplementationVersion();
+
+    public static final String MICROPAY_URL_SUFFIX     = "/pay/micropay";
+    public static final String UNIFIEDORDER_URL_SUFFIX = "/pay/unifiedorder";
+    public static final String ORDERQUERY_URL_SUFFIX   = "/pay/orderquery";
+    public static final String REVERSE_URL_SUFFIX      = "/secapi/pay/reverse";
+    public static final String CLOSEORDER_URL_SUFFIX   = "/pay/closeorder";
+    public static final String REFUND_URL_SUFFIX       = "/secapi/pay/refund";
+    public static final String REFUNDQUERY_URL_SUFFIX  = "/pay/refundquery";
+    public static final String DOWNLOADBILL_URL_SUFFIX = "/pay/downloadbill";
+    public static final String REPORT_URL_SUFFIX       = "/payitil/report";
+    public static final String SHORTURL_URL_SUFFIX     = "/tools/shorturl";
+    public static final String AUTHCODETOOPENID_URL_SUFFIX = "/tools/authcodetoopenid";
+
+    // sandbox
+    public static final String SANDBOX_MICROPAY_URL_SUFFIX     = "/sandboxnew/pay/micropay";
+    public static final String SANDBOX_UNIFIEDORDER_URL_SUFFIX = "/sandboxnew/pay/unifiedorder";
+    public static final String SANDBOX_ORDERQUERY_URL_SUFFIX   = "/sandboxnew/pay/orderquery";
+    public static final String SANDBOX_REVERSE_URL_SUFFIX      = "/sandboxnew/secapi/pay/reverse";
+    public static final String SANDBOX_CLOSEORDER_URL_SUFFIX   = "/sandboxnew/pay/closeorder";
+    public static final String SANDBOX_REFUND_URL_SUFFIX       = "/sandboxnew/secapi/pay/refund";
+    public static final String SANDBOX_REFUNDQUERY_URL_SUFFIX  = "/sandboxnew/pay/refundquery";
+    public static final String SANDBOX_DOWNLOADBILL_URL_SUFFIX = "/sandboxnew/pay/downloadbill";
+    public static final String SANDBOX_REPORT_URL_SUFFIX       = "/sandboxnew/payitil/report";
+    public static final String SANDBOX_SHORTURL_URL_SUFFIX     = "/sandboxnew/tools/shorturl";
+    public static final String SANDBOX_AUTHCODETOOPENID_URL_SUFFIX = "/sandboxnew/tools/authcodetoopenid";
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/wx/WXPayUtil.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/wx/WXPayUtil.java
new file mode 100644
index 0000000..c5e33c6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/wx/WXPayUtil.java
@@ -0,0 +1,297 @@
+package com.panzhihua.common.utlis.wx;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.io.StringWriter;
+import java.security.MessageDigest;
+import java.security.SecureRandom;
+import java.util.*;
+
+import javax.crypto.Mac;
+import javax.crypto.spec.SecretKeySpec;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+import com.panzhihua.common.utlis.wx.WXPayConstants.SignType;
+
+
+public class WXPayUtil {
+
+    private static final String SYMBOLS = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
+
+    private static final Random RANDOM = new SecureRandom();
+
+    /**
+     * XML格式字符串转换为Map
+     *
+     * @param strXML XML字符串
+     * @return XML数据转换后的Map
+     * @throws Exception
+     */
+    public static Map<String, String> xmlToMap(String strXML) throws Exception {
+        try {
+            Map<String, String> data = new HashMap<String, String>();
+            DocumentBuilder documentBuilder = WXPayXmlUtil.newDocumentBuilder();
+            InputStream stream = new ByteArrayInputStream(strXML.getBytes("UTF-8"));
+            org.w3c.dom.Document doc = documentBuilder.parse(stream);
+            doc.getDocumentElement().normalize();
+            NodeList nodeList = doc.getDocumentElement().getChildNodes();
+            for (int idx = 0; idx < nodeList.getLength(); ++idx) {
+                Node node = nodeList.item(idx);
+                if (node.getNodeType() == Node.ELEMENT_NODE) {
+                    org.w3c.dom.Element element = (org.w3c.dom.Element) node;
+                    data.put(element.getNodeName(), element.getTextContent());
+                }
+            }
+            try {
+                stream.close();
+            } catch (Exception ex) {
+                // do nothing
+            }
+            return data;
+        } catch (Exception ex) {
+            WXPayUtil.getLogger().warn("Invalid XML, can not convert to map. Error message: {}. XML content: {}", ex.getMessage(), strXML);
+            throw ex;
+        }
+
+    }
+
+    /**
+     * 将Map转换为XML格式的字符串
+     *
+     * @param data Map类型数据
+     * @return XML格式的字符串
+     * @throws Exception
+     */
+    public static String mapToXml(Map<String, String> data) throws Exception {
+        org.w3c.dom.Document document = WXPayXmlUtil.newDocument();
+        org.w3c.dom.Element root = document.createElement("xml");
+        document.appendChild(root);
+        for (String key: data.keySet()) {
+            String value = data.get(key);
+            if (value == null) {
+                value = "";
+            }
+            value = value.trim();
+            org.w3c.dom.Element filed = document.createElement(key);
+            filed.appendChild(document.createTextNode(value));
+            root.appendChild(filed);
+        }
+        TransformerFactory tf = TransformerFactory.newInstance();
+        Transformer transformer = tf.newTransformer();
+        DOMSource source = new DOMSource(document);
+        transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
+        transformer.setOutputProperty(OutputKeys.INDENT, "yes");
+        StringWriter writer = new StringWriter();
+        StreamResult result = new StreamResult(writer);
+        transformer.transform(source, result);
+        String output = writer.getBuffer().toString(); //.replaceAll("\n|\r", "");
+        try {
+            writer.close();
+        }
+        catch (Exception ex) {
+        }
+        return output;
+    }
+
+
+    /**
+     * 生成带有 sign 的 XML 格式字符串
+     *
+     * @param data Map类型数据
+     * @param key API密钥
+     * @return 含有sign字段的XML
+     */
+    public static String generateSignedXml(final Map<String, String> data, String key) throws Exception {
+        return generateSignedXml(data, key, SignType.MD5);
+    }
+
+    /**
+     * 生成带有 sign 的 XML 格式字符串
+     *
+     * @param data Map类型数据
+     * @param key API密钥
+     * @param signType 签名类型
+     * @return 含有sign字段的XML
+     */
+    public static String generateSignedXml(final Map<String, String> data, String key, SignType signType) throws Exception {
+        String sign = generateSignature(data, key, signType);
+        data.put(WXPayConstants.FIELD_SIGN, sign);
+        return mapToXml(data);
+    }
+
+
+    /**
+     * 判断签名是否正确
+     *
+     * @param xmlStr XML格式数据
+     * @param key API密钥
+     * @return 签名是否正确
+     * @throws Exception
+     */
+    public static boolean isSignatureValid(String xmlStr, String key) throws Exception {
+        Map<String, String> data = xmlToMap(xmlStr);
+        if (!data.containsKey(WXPayConstants.FIELD_SIGN) ) {
+            return false;
+        }
+        String sign = data.get(WXPayConstants.FIELD_SIGN);
+        return generateSignature(data, key).equals(sign);
+    }
+
+    /**
+     * 判断签名是否正确,必须包含sign字段,否则返回false。使用MD5签名。
+     *
+     * @param data Map类型数据
+     * @param key API密钥
+     * @return 签名是否正确
+     * @throws Exception
+     */
+    public static boolean isSignatureValid(Map<String, String> data, String key) throws Exception {
+        return isSignatureValid(data, key, SignType.MD5);
+    }
+
+    /**
+     * 判断签名是否正确,必须包含sign字段,否则返回false。
+     *
+     * @param data Map类型数据
+     * @param key API密钥
+     * @param signType 签名方式
+     * @return 签名是否正确
+     * @throws Exception
+     */
+    public static boolean isSignatureValid(Map<String, String> data, String key, SignType signType) throws Exception {
+        if (!data.containsKey(WXPayConstants.FIELD_SIGN) ) {
+            return false;
+        }
+        String sign = data.get(WXPayConstants.FIELD_SIGN);
+        return generateSignature(data, key, signType).equals(sign);
+    }
+
+    /**
+     * 生成签名
+     *
+     * @param data 待签名数据
+     * @param key API密钥
+     * @return 签名
+     */
+    public static String generateSignature(final Map<String, String> data, String key) throws Exception {
+        return generateSignature(data, key, SignType.MD5);
+    }
+
+    /**
+     * 生成签名. 注意,若含有sign_type字段,必须和signType参数保持一致。
+     *
+     * @param data 待签名数据
+     * @param key API密钥
+     * @param signType 签名方式
+     * @return 签名
+     */
+    public static String generateSignature(final Map<String, String> data, String key, SignType signType) throws Exception {
+        Set<String> keySet = data.keySet();
+        String[] keyArray = keySet.toArray(new String[keySet.size()]);
+        Arrays.sort(keyArray);
+        StringBuilder sb = new StringBuilder();
+        for (String k : keyArray) {
+            if (k.equals(WXPayConstants.FIELD_SIGN)) {
+                continue;
+            }
+            if (data.get(k).trim().length() > 0) // 参数值为空,则不参与签名
+                sb.append(k).append("=").append(data.get(k).trim()).append("&");
+        }
+        sb.append("key=").append(key);
+        if (SignType.MD5.equals(signType)) {
+            return MD5(sb.toString()).toUpperCase();
+        }
+        else if (SignType.HMACSHA256.equals(signType)) {
+            return HMACSHA256(sb.toString(), key);
+        }
+        else {
+            throw new Exception(String.format("Invalid sign_type: %s", signType));
+        }
+    }
+
+
+    /**
+     * 获取随机字符串 Nonce Str
+     *
+     * @return String 随机字符串
+     */
+    public static String generateNonceStr() {
+        char[] nonceChars = new char[32];
+        for (int index = 0; index < nonceChars.length; ++index) {
+            nonceChars[index] = SYMBOLS.charAt(RANDOM.nextInt(SYMBOLS.length()));
+        }
+        return new String(nonceChars);
+    }
+
+
+    /**
+     * 生成 MD5
+     *
+     * @param data 待处理数据
+     * @return MD5结果
+     */
+    public static String MD5(String data) throws Exception {
+        MessageDigest md = MessageDigest.getInstance("MD5");
+        byte[] array = md.digest(data.getBytes("UTF-8"));
+        StringBuilder sb = new StringBuilder();
+        for (byte item : array) {
+            sb.append(Integer.toHexString((item & 0xFF) | 0x100).substring(1, 3));
+        }
+        return sb.toString().toUpperCase();
+    }
+
+    /**
+     * 生成 HMACSHA256
+     * @param data 待处理数据
+     * @param key 密钥
+     * @return 加密结果
+     * @throws Exception
+     */
+    public static String HMACSHA256(String data, String key) throws Exception {
+        Mac sha256_HMAC = Mac.getInstance("HmacSHA256");
+        SecretKeySpec secret_key = new SecretKeySpec(key.getBytes("UTF-8"), "HmacSHA256");
+        sha256_HMAC.init(secret_key);
+        byte[] array = sha256_HMAC.doFinal(data.getBytes("UTF-8"));
+        StringBuilder sb = new StringBuilder();
+        for (byte item : array) {
+            sb.append(Integer.toHexString((item & 0xFF) | 0x100).substring(1, 3));
+        }
+        return sb.toString().toUpperCase();
+    }
+
+    /**
+     * 日志
+     * @return
+     */
+    public static Logger getLogger() {
+        Logger logger = LoggerFactory.getLogger("wxpay java sdk");
+        return logger;
+    }
+
+    /**
+     * 获取当前时间戳,单位秒
+     * @return
+     */
+    public static long getCurrentTimestamp() {
+        return System.currentTimeMillis()/1000;
+    }
+
+    /**
+     * 获取当前时间戳,单位毫秒
+     * @return
+     */
+    public static long getCurrentTimestampMs() {
+        return System.currentTimeMillis();
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/wx/WXPayXmlUtil.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/wx/WXPayXmlUtil.java
new file mode 100644
index 0000000..a2e34bd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/wx/WXPayXmlUtil.java
@@ -0,0 +1,30 @@
+package com.panzhihua.common.utlis.wx;
+
+import javax.xml.XMLConstants;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.w3c.dom.Document;
+
+/**
+ * 2018/7/3
+ */
+public final class WXPayXmlUtil {
+    public static DocumentBuilder newDocumentBuilder() throws ParserConfigurationException {
+        DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
+        documentBuilderFactory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
+        documentBuilderFactory.setFeature("http://xml.org/sax/features/external-general-entities", false);
+        documentBuilderFactory.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
+        documentBuilderFactory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
+        documentBuilderFactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
+        documentBuilderFactory.setXIncludeAware(false);
+        documentBuilderFactory.setExpandEntityReferences(false);
+
+        return documentBuilderFactory.newDocumentBuilder();
+    }
+
+    public static Document newDocument() throws ParserConfigurationException {
+        return newDocumentBuilder().newDocument();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/validated/AddGroup.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/validated/AddGroup.java
new file mode 100644
index 0000000..f903244
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/validated/AddGroup.java
@@ -0,0 +1,9 @@
+package com.panzhihua.common.validated;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 新增校验组
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-18 17:35
+ **/
+public interface AddGroup {}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/validated/PageGroup.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/validated/PageGroup.java
new file mode 100644
index 0000000..4bc32fb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/validated/PageGroup.java
@@ -0,0 +1,9 @@
+package com.panzhihua.common.validated;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 分页校验
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-30 13:47
+ **/
+public interface PageGroup {}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/validated/PutGroup.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/validated/PutGroup.java
new file mode 100644
index 0000000..9f72a66
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/validated/PutGroup.java
@@ -0,0 +1,9 @@
+package com.panzhihua.common.validated;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 修改
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-23 15:02
+ **/
+public interface PutGroup {}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/.gitignore b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/.gitignore
new file mode 100644
index 0000000..549e00a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/.gitignore
@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/.mvn/wrapper/MavenWrapperDownloader.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/.mvn/wrapper/MavenWrapperDownloader.java
new file mode 100644
index 0000000..a45eb6b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/.mvn/wrapper/MavenWrapperDownloader.java
@@ -0,0 +1,118 @@
+/*
+ * Copyright 2007-present the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.net.*;
+import java.io.*;
+import java.nio.channels.*;
+import java.util.Properties;
+
+public class MavenWrapperDownloader {
+
+    private static final String WRAPPER_VERSION = "0.5.6";
+    /**
+     * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
+     */
+    private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
+            + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
+
+    /**
+     * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
+     * use instead of the default one.
+     */
+    private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
+            ".mvn/wrapper/maven-wrapper.properties";
+
+    /**
+     * Path where the maven-wrapper.jar will be saved to.
+     */
+    private static final String MAVEN_WRAPPER_JAR_PATH =
+            ".mvn/wrapper/maven-wrapper.jar";
+
+    /**
+     * Name of the property which should be used to override the default download url for the wrapper.
+     */
+    private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
+
+    public static void main(String args[]) {
+        System.out.println("- Downloader started");
+        File baseDirectory = new File(args[0]);
+        System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
+
+        // If the maven-wrapper.properties exists, read it and check if it contains a custom
+        // wrapperUrl parameter.
+        File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
+        String url = DEFAULT_DOWNLOAD_URL;
+        if (mavenWrapperPropertyFile.exists()) {
+            FileInputStream mavenWrapperPropertyFileInputStream = null;
+            try {
+                mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
+                Properties mavenWrapperProperties = new Properties();
+                mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
+                url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
+            } catch (IOException e) {
+                System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
+            } finally {
+                try {
+                    if (mavenWrapperPropertyFileInputStream != null) {
+                        mavenWrapperPropertyFileInputStream.close();
+                    }
+                } catch (IOException e) {
+                    // Ignore ...
+                }
+            }
+        }
+        System.out.println("- Downloading from: " + url);
+
+        File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
+        if (!outputFile.getParentFile().exists()) {
+            if (!outputFile.getParentFile().mkdirs()) {
+                System.out.println(
+                        "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
+            }
+        }
+        System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
+        try {
+            downloadFileFromURL(url, outputFile);
+            System.out.println("Done");
+            System.exit(0);
+        } catch (Throwable e) {
+            System.out.println("- Error downloading");
+            e.printStackTrace();
+            System.exit(1);
+        }
+    }
+
+    private static void downloadFileFromURL(String urlString, File destination) throws Exception {
+        if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
+            String username = System.getenv("MVNW_USERNAME");
+            char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
+            Authenticator.setDefault(new Authenticator() {
+                @Override
+                protected PasswordAuthentication getPasswordAuthentication() {
+                    return new PasswordAuthentication(username, password);
+                }
+            });
+        }
+        URL website = new URL(urlString);
+        ReadableByteChannel rbc;
+        rbc = Channels.newChannel(website.openStream());
+        FileOutputStream fos = new FileOutputStream(destination);
+        fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
+        fos.close();
+        rbc.close();
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/.mvn/wrapper/maven-wrapper.jar b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/.mvn/wrapper/maven-wrapper.jar
new file mode 100644
index 0000000..2cc7d4a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/.mvn/wrapper/maven-wrapper.jar
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/.mvn/wrapper/maven-wrapper.properties b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/.mvn/wrapper/maven-wrapper.properties
new file mode 100644
index 0000000..642d572
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/.mvn/wrapper/maven-wrapper.properties
@@ -0,0 +1,2 @@
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip
+wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/mvnw b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/mvnw
new file mode 100644
index 0000000..a16b543
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/mvnw
@@ -0,0 +1,310 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#    https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Maven Start Up Batch script
+#
+# Required ENV vars:
+# ------------------
+#   JAVA_HOME - location of a JDK home dir
+#
+# Optional ENV vars
+# -----------------
+#   M2_HOME - location of maven2's installed home dir
+#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
+#     e.g. to debug Maven itself, use
+#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+# ----------------------------------------------------------------------------
+
+if [ -z "$MAVEN_SKIP_RC" ] ; then
+
+  if [ -f /etc/mavenrc ] ; then
+    . /etc/mavenrc
+  fi
+
+  if [ -f "$HOME/.mavenrc" ] ; then
+    . "$HOME/.mavenrc"
+  fi
+
+fi
+
+# OS specific support.  $var _must_ be set to either true or false.
+cygwin=false;
+darwin=false;
+mingw=false
+case "`uname`" in
+  CYGWIN*) cygwin=true ;;
+  MINGW*) mingw=true;;
+  Darwin*) darwin=true
+    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
+    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
+    if [ -z "$JAVA_HOME" ]; then
+      if [ -x "/usr/libexec/java_home" ]; then
+        export JAVA_HOME="`/usr/libexec/java_home`"
+      else
+        export JAVA_HOME="/Library/Java/Home"
+      fi
+    fi
+    ;;
+esac
+
+if [ -z "$JAVA_HOME" ] ; then
+  if [ -r /etc/gentoo-release ] ; then
+    JAVA_HOME=`java-config --jre-home`
+  fi
+fi
+
+if [ -z "$M2_HOME" ] ; then
+  ## resolve links - $0 may be a link to maven's home
+  PRG="$0"
+
+  # need this for relative symlinks
+  while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+      PRG="$link"
+    else
+      PRG="`dirname "$PRG"`/$link"
+    fi
+  done
+
+  saveddir=`pwd`
+
+  M2_HOME=`dirname "$PRG"`/..
+
+  # make it fully qualified
+  M2_HOME=`cd "$M2_HOME" && pwd`
+
+  cd "$saveddir"
+  # echo Using m2 at $M2_HOME
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --unix "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+fi
+
+# For Mingw, ensure paths are in UNIX format before anything is touched
+if $mingw ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME="`(cd "$M2_HOME"; pwd)`"
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
+fi
+
+if [ -z "$JAVA_HOME" ]; then
+  javaExecutable="`which javac`"
+  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
+    # readlink(1) is not available as standard on Solaris 10.
+    readLink=`which readlink`
+    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
+      if $darwin ; then
+        javaHome="`dirname \"$javaExecutable\"`"
+        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
+      else
+        javaExecutable="`readlink -f \"$javaExecutable\"`"
+      fi
+      javaHome="`dirname \"$javaExecutable\"`"
+      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
+      JAVA_HOME="$javaHome"
+      export JAVA_HOME
+    fi
+  fi
+fi
+
+if [ -z "$JAVACMD" ] ; then
+  if [ -n "$JAVA_HOME"  ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+      # IBM's JDK on AIX uses strange locations for the executables
+      JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+      JAVACMD="$JAVA_HOME/bin/java"
+    fi
+  else
+    JAVACMD="`which java`"
+  fi
+fi
+
+if [ ! -x "$JAVACMD" ] ; then
+  echo "Error: JAVA_HOME is not defined correctly." >&2
+  echo "  We cannot execute $JAVACMD" >&2
+  exit 1
+fi
+
+if [ -z "$JAVA_HOME" ] ; then
+  echo "Warning: JAVA_HOME environment variable is not set."
+fi
+
+CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
+
+# traverses directory structure from process work directory to filesystem root
+# first directory with .mvn subdirectory is considered project base directory
+find_maven_basedir() {
+
+  if [ -z "$1" ]
+  then
+    echo "Path not specified to find_maven_basedir"
+    return 1
+  fi
+
+  basedir="$1"
+  wdir="$1"
+  while [ "$wdir" != '/' ] ; do
+    if [ -d "$wdir"/.mvn ] ; then
+      basedir=$wdir
+      break
+    fi
+    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
+    if [ -d "${wdir}" ]; then
+      wdir=`cd "$wdir/.."; pwd`
+    fi
+    # end of workaround
+  done
+  echo "${basedir}"
+}
+
+# concatenates all lines of a file
+concat_lines() {
+  if [ -f "$1" ]; then
+    echo "$(tr -s '\n' ' ' < "$1")"
+  fi
+}
+
+BASE_DIR=`find_maven_basedir "$(pwd)"`
+if [ -z "$BASE_DIR" ]; then
+  exit 1;
+fi
+
+##########################################################################################
+# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+# This allows using the maven wrapper in projects that prohibit checking in binary data.
+##########################################################################################
+if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Found .mvn/wrapper/maven-wrapper.jar"
+    fi
+else
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
+    fi
+    if [ -n "$MVNW_REPOURL" ]; then
+      jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    else
+      jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    fi
+    while IFS="=" read key value; do
+      case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
+      esac
+    done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Downloading from: $jarUrl"
+    fi
+    wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
+    if $cygwin; then
+      wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
+    fi
+
+    if command -v wget > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found wget ... using wget"
+        fi
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+            wget "$jarUrl" -O "$wrapperJarPath"
+        else
+            wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
+        fi
+    elif command -v curl > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found curl ... using curl"
+        fi
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+            curl -o "$wrapperJarPath" "$jarUrl" -f
+        else
+            curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
+        fi
+
+    else
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Falling back to using Java to download"
+        fi
+        javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
+        # For Cygwin, switch paths to Windows format before running javac
+        if $cygwin; then
+          javaClass=`cygpath --path --windows "$javaClass"`
+        fi
+        if [ -e "$javaClass" ]; then
+            if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Compiling MavenWrapperDownloader.java ..."
+                fi
+                # Compiling the Java class
+                ("$JAVA_HOME/bin/javac" "$javaClass")
+            fi
+            if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                # Running the downloader
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Running MavenWrapperDownloader.java ..."
+                fi
+                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
+            fi
+        fi
+    fi
+fi
+##########################################################################################
+# End of extension
+##########################################################################################
+
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
+if [ "$MVNW_VERBOSE" = true ]; then
+  echo $MAVEN_PROJECTBASEDIR
+fi
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --path --windows "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
+    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
+fi
+
+# Provide a "standardized" way to retrieve the CLI args that will
+# work with both Windows and non-Windows executions.
+MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
+export MAVEN_CMD_LINE_ARGS
+
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+exec "$JAVACMD" \
+  $MAVEN_OPTS \
+  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
+  "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
+  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/mvnw.cmd b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/mvnw.cmd
new file mode 100644
index 0000000..c8d4337
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/mvnw.cmd
@@ -0,0 +1,182 @@
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements.  See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership.  The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License.  You may obtain a copy of the License at
+@REM
+@REM    https://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied.  See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Maven Start Up Batch script
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM M2_HOME - location of maven2's installed home dir
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
+@REM     e.g. to debug Maven itself, use
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+@REM ----------------------------------------------------------------------------
+
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
+@echo off
+@REM set title of command window
+title %0
+@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
+@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
+
+@REM set %HOME% to equivalent of $HOME
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
+
+@REM Execute a user defined script before this one
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
+if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
+:skipRcPre
+
+@setlocal
+
+set ERROR_CODE=0
+
+@REM To isolate internal variables from possible post scripts, we use another setlocal
+@setlocal
+
+@REM ==== START VALIDATION ====
+if not "%JAVA_HOME%" == "" goto OkJHome
+
+echo.
+echo Error: JAVA_HOME not found in your environment. >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:OkJHome
+if exist "%JAVA_HOME%\bin\java.exe" goto init
+
+echo.
+echo Error: JAVA_HOME is set to an invalid directory. >&2
+echo JAVA_HOME = "%JAVA_HOME%" >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+@REM ==== END VALIDATION ====
+
+:init
+
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
+@REM Fallback to current working directory if not found.
+
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
+
+set EXEC_DIR=%CD%
+set WDIR=%EXEC_DIR%
+:findBaseDir
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
+cd ..
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
+set WDIR=%CD%
+goto findBaseDir
+
+:baseDirFound
+set MAVEN_PROJECTBASEDIR=%WDIR%
+cd "%EXEC_DIR%"
+goto endDetectBaseDir
+
+:baseDirNotFound
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
+cd "%EXEC_DIR%"
+
+:endDetectBaseDir
+
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
+
+@setlocal EnableExtensions EnableDelayedExpansion
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
+
+:endReadAdditionalConfig
+
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+
+FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
+    IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
+)
+
+@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
+if exist %WRAPPER_JAR% (
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Found %WRAPPER_JAR%
+    )
+) else (
+    if not "%MVNW_REPOURL%" == "" (
+        SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    )
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Couldn't find %WRAPPER_JAR%, downloading it ...
+        echo Downloading from: %DOWNLOAD_URL%
+    )
+
+    powershell -Command "&{"^
+		"$webclient = new-object System.Net.WebClient;"^
+		"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
+		"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
+		"}"^
+		"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
+		"}"
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Finished downloading %WRAPPER_JAR%
+    )
+)
+@REM End of extension
+
+@REM Provide a "standardized" way to retrieve the CLI args that will
+@REM work with both Windows and non-Windows executions.
+set MAVEN_CMD_LINE_ARGS=%*
+
+%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
+if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
+:skipRcPost
+
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
+if "%MAVEN_BATCH_PAUSE%" == "on" pause
+
+if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
+
+exit /B %ERROR_CODE%
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/pom.xml
new file mode 100644
index 0000000..27f0c0e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/pom.xml
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.panzhihua</groupId>
+        <artifactId>zhihuishequ</artifactId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <groupId>com.panzhihua</groupId>
+    <artifactId>community_backstage</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>community_backstage</name>
+    <description>社区后台</description>
+
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-config</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>com.panzhihua</groupId>
+            <artifactId>common</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.netflix.hystrix</groupId>
+            <artifactId>hystrix-javanica</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.github.xiaoymin</groupId>
+            <artifactId>swagger-bootstrap-ui</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.github.kmood</groupId>
+            <artifactId>officeexport-java</artifactId>
+            <version>1.0.1.6-RELEASE</version>
+        </dependency>
+        <!--添加监控依赖包-->
+        <dependency>
+            <groupId>io.micrometer</groupId>
+            <artifactId>micrometer-registry-prometheus</artifactId>
+        </dependency>
+        <dependency>
+            <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>
+<!--        <dependency>-->
+<!--            <groupId>org.jxls</groupId>-->
+<!--            <artifactId>jxls</artifactId>-->
+<!--            <version>2.6.0</version>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>org.jxls</groupId>-->
+<!--            <artifactId>jxls-poi</artifactId>-->
+<!--            <version>1.1.0</version>-->
+<!--        </dependency>-->
+        <!-- 图片验证码 -->
+        <dependency>
+            <groupId>com.github.penggle</groupId>
+            <artifactId>kaptcha</artifactId>
+            <version>2.3.2</version>
+        </dependency>
+
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>2.5.0</version>
+                <configuration>
+                    <mainClass>com.panzhihua.community_backstage.CommunityBackstageApplication</mainClass>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>docker-maven-plugin</artifactId>
+                <version>1.2.0</version>
+                <configuration>
+                    <imageName>registry.cn-chengdu.aliyuncs.com/panzhihua/community_backstage:v1</imageName>
+                    <serverId></serverId>
+                    <baseImage>java</baseImage>
+                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
+                    <resources>
+                        <resource>
+                            <targetPath>/</targetPath>
+                            <directory>${project.build.directory}</directory>
+                            <include>${project.build.finalName}.jar</include>
+                        </resource>
+                    </resources>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <repositories>
+        <repository>
+            <id>spring-snapshots</id>
+            <name>Spring Snapshots</name>
+            <url>https://repo.spring.io/snapshot</url>
+            <snapshots>
+                <enabled>true</enabled>
+            </snapshots>
+        </repository>
+        <repository>
+            <id>spring-milestones</id>
+            <name>Spring Milestones</name>
+            <url>https://repo.spring.io/milestone</url>
+        </repository>
+    </repositories>
+
+</project>
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
new file mode 100644
index 0000000..8397884
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/CommunityBackstageApplication.java
@@ -0,0 +1,28 @@
+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;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.ComponentScan;
+
+import org.springframework.scheduling.annotation.EnableAsync;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+@EnableCaching
+@EnableSwagger2
+@SpringCloudApplication
+@EnableCircuitBreaker
+@EnableEurekaClient
+@EnableFeignClients(basePackages = {"com.panzhihua.common.service"})
+@ComponentScan({"com.panzhihua.community_backstage", "com.panzhihua.common"})
+@EnableAsync
+public class CommunityBackstageApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(CommunityBackstageApplication.class, args);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/aop/OperLogAspect.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/aop/OperLogAspect.java
new file mode 100644
index 0000000..9072a12
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/aop/OperLogAspect.java
@@ -0,0 +1,308 @@
+package com.panzhihua.community_backstage.aop;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.lang.reflect.Method;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.annotation.AfterReturning;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Before;
+import org.aspectj.lang.annotation.Pointcut;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.springframework.stereotype.Component;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.context.request.RequestAttributes;
+import org.springframework.web.context.request.RequestContextHolder;
+
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.constants.TokenConstant;
+import com.panzhihua.common.interfaces.OperLog;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.user.SysOperLogVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.AES;
+import com.panzhihua.common.utlis.IPUtil;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * 切面处理类,操作日志异常日志记录处理
+ *
+ * @author wu
+ * @date 2019/03/21
+ */
+@Slf4j
+@Aspect
+@Component
+public class OperLogAspect {
+
+    @Resource
+    private UserService userService;
+
+    /**
+     * 设置操作日志切入点 记录操作日志 在注解的位置切入代码
+     */
+    @Pointcut("@annotation(com.panzhihua.common.interfaces.OperLog)")
+    public void operLogPoinCut() {}
+
+    // /**
+    // * 设置操作异常切入点记录异常日志 扫描所有controller包下操作
+    // */
+    // @Pointcut("execution(* com.hyd.zcar.cms.controller..*.*(..))")
+    // public void operExceptionLogPoinCut() {
+    // }
+
+    /**
+     * 正常返回通知,拦截用户操作日志,连接点正常执行完成后执行, 如果连接点抛出异常,则不会执行
+     *
+     * @param joinPoint
+     *            切入点
+     * @param keys
+     *            返回结果
+     */
+    @AfterReturning(value = "operLogPoinCut()", returning = "keys")
+    public void saveOperLog(JoinPoint joinPoint, Object keys) {
+        log.info("进入切面");
+        // 获取RequestAttributes
+        RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
+        // 从获取RequestAttributes中获取HttpServletRequest的信息
+        HttpServletRequest request =
+            (HttpServletRequest)requestAttributes.resolveReference(RequestAttributes.REFERENCE_REQUEST);
+        // 登录对象信息
+        String userInfo = request.getHeader(TokenConstant.TOKEN_USERINFO);
+        boolean empty = ObjectUtils.isEmpty(userInfo);
+        if (empty) {
+            log.error("操作日志获取登录用户信息失败【{}】", joinPoint);
+            return;
+        }
+        byte[] bytes = AES.parseHexStr2Byte(userInfo);
+        byte[] decrypt = AES.decrypt(bytes, Constants.AES_KEY);
+        userInfo = new String(decrypt);
+        LoginUserInfoVO loginUserInfoVO = JSONObject.parseObject(userInfo, LoginUserInfoVO.class);
+        SysOperLogVO operlog = new SysOperLogVO();
+        try {
+
+            // 从切面织入点处通过反射机制获取织入点处的方法
+            MethodSignature signature = (MethodSignature)joinPoint.getSignature();
+            // 获取切入点所在的方法
+            Method method = signature.getMethod();
+            // 获取操作
+            OperLog opLog = method.getAnnotation(OperLog.class);
+            if (opLog != null) {
+                String operModul = opLog.operModul();
+                int operType = opLog.operType();
+                operlog.setTitle(operModul); // 操作模块
+                operlog.setBusinessType(operType); // 操作类型
+            }
+            // 获取请求的类名
+            String className = joinPoint.getTarget().getClass().getName();
+            // 获取请求的方法名
+            String methodName = method.getName();
+            methodName = className + "." + methodName;
+
+            operlog.setMethod(methodName); // 请求方法
+
+            if (joinPoint.getArgs().length > 0) {
+                for (Object o : joinPoint.getArgs()) {
+                    if (o instanceof HttpServletRequest || o instanceof HttpServletResponse|| o instanceof MultipartFile) {
+                        continue;
+                    }
+                    operlog.setOperParam(JSONObject.toJSONString(o)); // 请求参数
+                }
+            }
+
+            operlog.setJsonResult(JSONObject.toJSONString(keys)); // 返回结果
+            operlog.setAccount(loginUserInfoVO.getAccount());
+            operlog.setOperName(loginUserInfoVO.getName()); // 请求用户名称
+            operlog.setOperIp(IPUtil.getIpAddress(request)); // 请求IP
+            operlog.setOperUrl(request.getRequestURI()); // 请求URI
+            operlog.setRequestMethod(request.getMethod());
+            operlog.setOperLocation(IPUtil.getIpBelongAddress(request));
+            operlog.setOperTime(new Date()); // 创建时间
+            operlog.setAccount(loginUserInfoVO.getAccount());
+            Long communityId = loginUserInfoVO.getCommunityId();
+            operlog.setCommunityId(null == communityId ? 0 : communityId);
+            userService.addOperLog(operlog);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    // /**
+    // * 异常返回通知,用于拦截异常日志信息 连接点抛出异常后执行
+    // *
+    // * @param joinPoint 切入点
+    // * @param e 异常信息
+    // */
+    // @AfterThrowing(pointcut = "operExceptionLogPoinCut()", throwing = "e")
+    // public void saveExceptionLog(JoinPoint joinPoint, Throwable e) {
+    // // 获取RequestAttributes
+    // RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
+    // // 从获取RequestAttributes中获取HttpServletRequest的信息
+    // HttpServletRequest request = (HttpServletRequest) requestAttributes
+    // .resolveReference(RequestAttributes.REFERENCE_REQUEST);
+    //
+    // ExceptionLog excepLog = new ExceptionLog();
+    // try {
+    // // 从切面织入点处通过反射机制获取织入点处的方法
+    // MethodSignature signature = (MethodSignature) joinPoint.getSignature();
+    // // 获取切入点所在的方法
+    // Method method = signature.getMethod();
+    // excepLog.setExcId(UuidUtil.get32UUID());
+    // // 获取请求的类名
+    // String className = joinPoint.getTarget().getClass().getName();
+    // // 获取请求的方法名
+    // String methodName = method.getName();
+    // methodName = className + "." + methodName;
+    // // 请求的参数
+    // Map<String, String> rtnMap = converMap(request.getParameterMap());
+    // // 将参数所在的数组转换成json
+    // String params = JSON.toJSONString(rtnMap);
+    // excepLog.setExcRequParam(params); // 请求参数
+    // excepLog.setOperMethod(methodName); // 请求方法名
+    // excepLog.setExcName(e.getClass().getName()); // 异常名称
+    // excepLog.setExcMessage(stackTraceToString(e.getClass().getName(), e.getMessage(), e.getStackTrace())); // 异常信息
+    // excepLog.setOperUserId(UserShiroUtil.getCurrentUserLoginName()); // 操作员ID
+    // excepLog.setOperUserName(UserShiroUtil.getCurrentUserName()); // 操作员名称
+    // excepLog.setOperUri(request.getRequestURI()); // 操作URI
+    // excepLog.setOperIp(IPUtil.getRemortIP(request)); // 操作员IP
+    // excepLog.setOperVer(operVer); // 操作版本号
+    // excepLog.setOperCreateTime(new Date()); // 发生异常时间
+    //
+    // exceptionLogService.insert(excepLog);
+    //
+    // } catch (Exception e2) {
+    // e2.printStackTrace();
+    // }
+    //
+    // }
+
+    /**
+     * 转换request 请求参数
+     *
+     * @param paramMap
+     *            request获取的参数数组
+     */
+    public Map<String, String> converMap(Map<String, String[]> paramMap) {
+        Map<String, String> rtnMap = new HashMap<String, String>();
+        for (String key : paramMap.keySet()) {
+            rtnMap.put(key, paramMap.get(key)[0]);
+        }
+        return rtnMap;
+    }
+
+    private String getPostData(HttpServletRequest request) {
+        StringBuffer data = new StringBuffer();
+        String line = null;
+        BufferedReader reader = null;
+        try {
+            reader = request.getReader();
+            while (null != (line = reader.readLine()))
+                data.append(line);
+        } catch (IOException e) {
+        } finally {
+        }
+        return data.toString();
+    }
+
+    /**
+     * 转换异常信息为字符串
+     *
+     * @param exceptionName
+     *            异常名称
+     * @param exceptionMessage
+     *            异常信息
+     * @param elements
+     *            堆栈信息
+     */
+    public String stackTraceToString(String exceptionName, String exceptionMessage, StackTraceElement[] elements) {
+        StringBuffer strbuff = new StringBuffer();
+        for (StackTraceElement stet : elements) {
+            strbuff.append(stet + "\n");
+        }
+        String message = exceptionName + ":" + exceptionMessage + "\n\t" + strbuff.toString();
+        return message;
+    }
+
+    /**
+     * 前置通知,仅在修改防疫相关数据时生成日志记录
+     * */
+    @Before(value = "operLogPoinCut()")
+    public void  saveUpdateOperLog(JoinPoint joinPoint){
+        log.info("进入切面---前置通知");
+        // 获取RequestAttributes
+        RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
+        // 从获取RequestAttributes中获取HttpServletRequest的信息
+        HttpServletRequest request =
+                (HttpServletRequest)requestAttributes.resolveReference(RequestAttributes.REFERENCE_REQUEST);
+        // 登录对象信息
+        String userInfo = request.getHeader(TokenConstant.TOKEN_USERINFO);
+        boolean empty = ObjectUtils.isEmpty(userInfo);
+        if (empty) {
+            log.error("操作日志获取登录用户信息失败【{}】", joinPoint);
+            return;
+        }
+        byte[] bytes = AES.parseHexStr2Byte(userInfo);
+        byte[] decrypt = AES.decrypt(bytes, Constants.AES_KEY);
+        userInfo = new String(decrypt);
+        LoginUserInfoVO loginUserInfoVO = JSONObject.parseObject(userInfo, LoginUserInfoVO.class);
+        SysOperLogVO operlog = new SysOperLogVO();
+        try {
+            // 从切面织入点处通过反射机制获取织入点处的方法
+            MethodSignature signature = (MethodSignature)joinPoint.getSignature();
+            // 获取切入点所在的方法
+            Method method = signature.getMethod();
+            OperLog opLog = method.getAnnotation(OperLog.class);
+            // 获取操作
+            if (opLog != null) {
+                if (opLog.businessType().equals("")){
+                    return;
+                }
+                String operModul = opLog.operModul();
+                int operType = opLog.operType();
+                operlog.setTitle(operModul); // 操作模块
+                operlog.setBusinessType(operType); // 操作类型
+            }
+            // 获取请求的类名
+            String className = joinPoint.getTarget().getClass().getName();
+            // 获取请求的方法名
+            String methodName = method.getName();
+            methodName = className + "." + methodName;
+
+            operlog.setMethod(methodName); // 请求方法
+
+            if (joinPoint.getArgs().length > 0) {
+                for (Object o : joinPoint.getArgs()) {
+                    if (o instanceof HttpServletRequest || o instanceof HttpServletResponse || o instanceof MultipartFile) {
+                        continue;
+                    }
+                    operlog.setOperParam(JSONObject.toJSONString(o)); // 请求参数
+                }
+            }
+            //operlog.setJsonResult(JSONObject.toJSONString(keys)); // 返回结果
+            operlog.setAccount(loginUserInfoVO.getAccount());
+            operlog.setOperName(loginUserInfoVO.getName()); // 请求用户名称
+            operlog.setOperIp(IPUtil.getIpAddress(request)); // 请求IP
+            operlog.setOperUrl(request.getRequestURI()); // 请求URI
+            operlog.setRequestMethod(request.getMethod());
+            operlog.setOperLocation(IPUtil.getIpBelongAddress(request));
+            operlog.setOperTime(new Date()); // 创建时间
+            operlog.setAccount(loginUserInfoVO.getAccount());
+            Long communityId = loginUserInfoVO.getCommunityId();
+            operlog.setCommunityId(null == communityId ? 0 : communityId);
+            userService.addOperLog(operlog);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/aop/RenheAssemblyUtils.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/aop/RenheAssemblyUtils.java
new file mode 100644
index 0000000..5d9f019
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/aop/RenheAssemblyUtils.java
@@ -0,0 +1,275 @@
+package com.panzhihua.community_backstage.aop;
+
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.bind.DatatypeConverter;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import com.panzhihua.common.model.vos.community.ComActQuestnaireAnswerContentVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.StringUtils;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @author lyq 前端H5组件库工具类
+ */
+@Slf4j
+@Component
+public class RenheAssemblyUtils {
+
+    @Autowired
+    private CommunityService communityService;
+
+    private static List<String> automaticDataCompletion(List<String> chooseList, String selected) {
+        if (chooseList == null) {
+            chooseList = new ArrayList<>();
+            chooseList.add("是");
+            chooseList.add("否");
+        }
+        List<String> list = new ArrayList<>();
+        for (String item : chooseList) {
+            if (item.equals(selected)) {
+                list.add("√");
+            } else {
+                list.add("");
+            }
+        }
+        return list;
+    }
+
+    /**
+     * 数据转换--登记明细用户填写答案导出数据格式转换
+     *
+     * @param answerContentVOList
+     *            用户答题记录
+     * @return 用户填写答案数据
+     */
+    public List<List<Object>> ReserveData(List<ComActQuestnaireAnswerContentVO> answerContentVOList) {
+        // 结果数据集合
+        List<List<Object>> resultList = new ArrayList<>();
+        // 构建单个用户数据
+        List<Object> userData = new ArrayList<>();
+
+        String noExport = "以上信息仅用于";
+        // 遍历答案列表
+        Long reserveRecordId = 0L;
+        Long reserveSubId = 0L;
+        Boolean isOldDuo = false;
+        StringBuffer sb = new StringBuffer();
+        if (answerContentVOList != null && answerContentVOList.size() > 0) {
+            int a = 0;
+            for (ComActQuestnaireAnswerContentVO userAnswers : answerContentVOList) {
+                a++;
+                if (answerContentVOList.size() == 26 && a == 9) {
+                    userData.add(" ");
+                }
+                // 判断是文字描述直接跳过
+                if (userAnswers.getOptionType().equals(5) || (StringUtils.isNotEmpty(userAnswers.getAnswerContent())
+                    && userAnswers.getAnswerContent().contains(noExport))) {
+                    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;
+
+                    if (isOldDuo) {
+                        String answer = sb.toString();
+                        userData.add(answer.substring(0, answer.length() - 1));
+                        sb = new StringBuffer();
+                        isOldDuo = false;
+                    }
+                    userData.add(0, " ");
+                    userData.add(1, " ");
+                    userData.add(2, " ");
+                    userData.add(28, " ");
+                    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 (StringUtils.isNotEmpty(userAnswers.getAnswerContent())
+                            && userAnswers.getAnswerContent().contains(noExport)) {
+                            continue;
+                        }
+
+                        // 判断当前的组件类型是否是图片上传,导出时需要导出图片
+                        if (userAnswers.getOptionType().equals(11)) {
+                            reserveSubId = userAnswers.getReserveSubId();
+                            try {
+                                if (StringUtils.isNotEmpty(userAnswers.getAnswerContent())) {
+                                    userData.add(new URL(userAnswers.getAnswerContent()));
+                                    // userData.add(new
+                                    // File("/workspace/minio/data/files/"+userAnswers.getAnswerContent().substring(userAnswers.getAnswerContent().indexOf("files/")+6)));
+                                } else {
+                                    userData.add(" ");
+                                }
+                            } catch (Exception e) {
+                                e.printStackTrace();
+                                userData.add(" ");
+                                log.error("导出转换图片失败!" + "/workspace/minio/data/files/" + userAnswers.getAnswerContent()
+                                    .substring(userAnswers.getAnswerContent().indexOf("files/") + 6));
+                            }
+                            continue;
+                        }
+                        // 如果是多选
+                        if (userAnswers.getOptionType().equals(1)) {
+                            List<String> selectionList =
+                                communityService.subjectSelectionListAdmin(userAnswers.getReserveSubId());
+                            List<String> completionList =
+                                automaticDataCompletion(selectionList, userAnswers.getAnswerContent());
+                            userData.addAll(completionList);
+                            continue;
+                        }
+                        // 如果是单选
+                        if (userAnswers.getOptionType().equals(0)) {
+                            if (userAnswers.getAnswerContent().equals("男")
+                                || userAnswers.getAnswerContent().equals("女")) {
+
+                            } else {
+                                List<String> completionList =
+                                    automaticDataCompletion(null, userAnswers.getAnswerContent());
+                                userData.addAll(completionList);
+                                continue;
+                            }
+                        }
+                        // 判断当前组件类型是否签名
+                        if (userAnswers.getOptionType().equals(12)) {
+                            reserveSubId = userAnswers.getReserveSubId();
+                            try {
+                                userData.add(DatatypeConverter.parseBase64Binary(userAnswers.getAnswerContent()
+                                    .substring(userAnswers.getAnswerContent().indexOf(",") + 1)));
+                            } catch (Exception e) {
+                                userData.add(" ");
+                                log.error("导出转换图片失败!");
+                            }
+                            continue;
+                        }
+
+                        if (userAnswers.getOptionType().equals(1)) {
+                            isOldDuo = true;
+                            sb.append(
+                                userAnswers.getAnswerContent() == null ? "无" : userAnswers.getAnswerContent() + ",");
+                            continue;
+                        } else {
+                            if (isOldDuo) {
+                                String answer = sb.toString();
+                                userData.add(answer.substring(0, answer.length() - 1));
+                                sb = new StringBuffer();
+                            }
+                            isOldDuo = false;
+                        }
+                        sb.append(userAnswers.getAnswerContent() == null ? "无" : userAnswers.getAnswerContent() + ",");
+                        String answer = sb.toString();
+                        userData.add(answer.substring(0, answer.length() - 1));
+                        sb = new StringBuffer();
+                    } else {
+                        // 如果是承诺字段则不导出
+                        if (StringUtils.isNotEmpty(userAnswers.getAnswerContent())
+                            && userAnswers.getAnswerContent().contains(noExport)) {
+                            continue;
+                        }
+                        // 判断当前的组件类型是否是图片上传,导出时需要导出图片
+                        if (userAnswers.getOptionType().equals(11)) {
+                            reserveSubId = userAnswers.getReserveSubId();
+                            try {
+                                userData.add(new URL(userAnswers.getAnswerContent()));
+                            } catch (Exception e) {
+                                userData.add(" ");
+                                log.error("导出转换图片失败!");
+                            }
+                            continue;
+                        }
+                        // 如果是多选
+                        if (userAnswers.getOptionType().equals(1)) {
+                            List<String> selectionList =
+                                communityService.subjectSelectionListAdmin(userAnswers.getReserveSubId());
+                            List<String> completionList =
+                                automaticDataCompletion(selectionList, userAnswers.getAnswerContent());
+                            userData.addAll(completionList);
+                            continue;
+                        }
+                        // 如果是单选
+                        if (userAnswers.getOptionType().equals(0)) {
+                            if (userAnswers.getAnswerContent().equals("男")
+                                || userAnswers.getAnswerContent().equals("女")) {
+
+                            } else {
+                                List<String> completionList =
+                                    automaticDataCompletion(null, userAnswers.getAnswerContent());
+                                userData.addAll(completionList);
+                                continue;
+                            }
+                        }
+                        // 判断当前组件类型是否签名
+                        if (userAnswers.getOptionType().equals(12)) {
+                            reserveSubId = userAnswers.getReserveSubId();
+                            try {
+                                // userData.add(new
+                                // URL("http://image.panzhihua.nhys.cdnhxx.com//idcard/967dbdef3ef3465a9169fbea204f9aa7.jpg"));
+                                userData.add(DatatypeConverter.parseBase64Binary(userAnswers.getAnswerContent()
+                                    .substring(userAnswers.getAnswerContent().indexOf(",") + 1)));
+                            } catch (Exception e) {
+                                userData.add(" ");
+                                log.error("导出转换图片失败!");
+                            }
+                            continue;
+                        }
+                        if (userAnswers.getOptionType().equals(1)) {
+                            isOldDuo = true;
+                            sb.append(
+                                userAnswers.getAnswerContent() == null ? "无" : userAnswers.getAnswerContent() + ",");
+                            continue;
+                        } else {
+                            if (isOldDuo) {
+                                String answer = sb.toString();
+                                userData.add(answer.substring(0, answer.length() - 1));
+                                sb = new StringBuffer();
+                            }
+                            isOldDuo = false;
+                        }
+                        sb.append(userAnswers.getAnswerContent() == null ? "无" : userAnswers.getAnswerContent() + ",");
+                        String answer = sb.toString();
+                        userData.add(answer.substring(0, answer.length() - 1));
+                        sb = new StringBuffer();
+                    }
+                }
+            }
+            if (isOldDuo) {
+                String answer = sb.toString();
+                userData.add(answer.substring(0, answer.length() - 1));
+            }
+
+            userData.add(0, " ");
+            userData.add(1, " ");
+            userData.add(2, " ");
+            userData.add(28, " ");
+            resultList.add(userData);
+        }
+        return resultList;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ActDynTypeApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ActDynTypeApi.java
new file mode 100644
index 0000000..6a87c46
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ActDynTypeApi.java
@@ -0,0 +1,86 @@
+package com.panzhihua.community_backstage.api;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.validation.annotation.Validated;
+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.RestController;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.AddComActDynTypeDTO;
+import com.panzhihua.common.model.dtos.community.EditComActDynTypeDTO;
+import com.panzhihua.common.model.dtos.community.PageComActDynTypeDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActDynTypeVO;
+import com.panzhihua.common.service.community.CommunityService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+import static java.util.Objects.isNull;
+
+@Slf4j
+@Api(tags = {"社区动态分类模块"})
+@RestController
+@RequestMapping("/dyn/type/")
+public class ActDynTypeApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "分页查询社区动态列表", response = ComActDynTypeVO.class)
+    @PostMapping("/page")
+    public R page(@RequestBody PageComActDynTypeDTO comActDynTypeDTO) {
+        if (isNull(comActDynTypeDTO.getCommunityId())) {
+            comActDynTypeDTO.setCommunityId(this.getCommunityId()+"");
+        }
+
+        return communityService.pageDynTypeByAdmin(comActDynTypeDTO);
+    }
+
+    @ApiOperation(value = "查询社区动态分类列表", response = ComActDynTypeVO.class)
+    @PostMapping("/list")
+    public R list(@RequestBody PageComActDynTypeDTO comActDynTypeDTO)
+    {
+        if(StringUtils.isEmpty(comActDynTypeDTO.getCommunityId()))
+        {
+            Long communityId = this.getCommunityId();
+            comActDynTypeDTO.setCommunityId(communityId+"");
+        }
+        return communityService.getDynTypeListByAdmin(comActDynTypeDTO);
+    }
+
+    @ApiOperation(value = "新增社区动态分类")
+    @PostMapping("/add")
+    public R add(@Validated @RequestBody AddComActDynTypeDTO comActDynTypeDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        comActDynTypeDTO.setCommunityId(loginUserInfo.getCommunityId());
+        comActDynTypeDTO.setUserId(loginUserInfo.getUserId());
+        return communityService.addDynTypeByAdmin(comActDynTypeDTO);
+    }
+
+    @ApiOperation(value = "编辑社区动态分类")
+    @PostMapping("/edit")
+    public R add(@Validated @RequestBody EditComActDynTypeDTO comActDynTypeDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        comActDynTypeDTO.setUserId(loginUserInfo.getUserId());
+        return communityService.editDynTypeByAdmin(comActDynTypeDTO);
+    }
+
+    @ApiOperation(value = "删除社区动态分类")
+    @PostMapping("/delete")
+    public R delete(@RequestBody List<Long> ids) {
+        if (ids == null || ids.size() <= 0) {
+            return R.fail("参数错误");
+        }
+        return communityService.deleteDynTypeByAdmin(ids);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BasicScreenApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BasicScreenApi.java
new file mode 100644
index 0000000..5896939
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BasicScreenApi.java
@@ -0,0 +1,166 @@
+package com.panzhihua.community_backstage.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.PageBaseDTO;
+import com.panzhihua.common.model.dtos.neighbor.ComActNeighborCircleAdminDTO;
+import com.panzhihua.common.model.dtos.neighbor.DetailNeighborAllCommentByAdminDTO;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.*;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidColorChartsVO;
+import com.panzhihua.common.model.vos.neighbor.ActivityAnalysisVO;
+import com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleAdminVO;
+import com.panzhihua.common.model.vos.neighbor.ComActNeighborCommentByAdminVO;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * @ClasssName BasicScreenApi
+ * @Description TODO
+ * @Author yh
+ * @Date 2022-11-08 17:25:45
+ * @Version 1.0
+ **/
+@Slf4j
+@RestController
+@RequestMapping("/basicScreen")
+@Api(tags = {"攀枝花市可视化大屏"})
+public class BasicScreenApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+
+    /**
+     * 查询统计基础数据
+     *
+     * @return
+     */
+    @GetMapping("selectBasicData")
+    @ApiOperation(value = "统计基础数据", response = ComBasicDataVo.class)
+    public R selectBasicData() {
+        return communityService.selectBasicData();
+    }
+
+    /**
+     * 统计在职干部特长
+     *
+     * @return
+     */
+    @GetMapping("statisticsPbMemberType")
+    @ApiOperation(value = "在职干部特长")
+    public R statisticsPbMemberType() {
+        return communityService.statisticsPbMemberType();
+    }
+
+
+    /**
+     * 统计大屏查询清单列表
+     *
+     * @param comActNeighborCircleAdminDTO 请求参数
+     * @return 邻里圈列表
+     */
+    @PostMapping("pageNeighborByAdmin")
+    @ApiOperation(value = "清单列表分页", response = ComActNeighborCircleAdminVO.class)
+    public R pageNeighborByBigScreen(@RequestBody ComActNeighborCircleAdminDTO comActNeighborCircleAdminDTO) {
+        return communityService.pageNeighborByBigScreen(comActNeighborCircleAdminDTO);
+    }
+
+    /**
+     * 单位统计
+     *
+     * @return
+     */
+    @GetMapping("selectUnitByNatureName")
+    @ApiOperation(value = "单位统计")
+    public R selectUnitByNatureName() {
+        return communityService.selectUnitByNatureName();
+    }
+
+    /**
+     * 大屏-社区活动分页
+     *
+     * @return
+     */
+    @PostMapping("pageActivityBigScreen")
+    @ApiOperation(value = "大屏-社区活动分页", response = ComActActivityBigScreenVO.class)
+    public R pageActivityBigScreen(@RequestBody PageBaseDTO pageBaseDTO) {
+        return communityService.pageActivityBigScreen(pageBaseDTO);
+    }
+
+    @ApiOperation(value = "单位活动统计 range,year", response = ActivityAnalysisVO.class)
+    @GetMapping("activity/analysis")
+    public R activityUnitAnalysis(@RequestParam(value = "year", required = false) Integer year,
+                                  @RequestParam(value = "type", required = false) Integer type,
+                                  @RequestParam(value = "range", required = false) Integer range,
+                                  @RequestParam(value = "communityId", required = false) Long communityId,
+                                  @RequestParam(value = "page", required = false) Integer page,
+                                  @RequestParam(value = "size", required = false) Integer size,
+                                  @RequestParam(value = "belongTo", required = false) String belongTo,
+                                  @RequestParam(value = "unitId", required = false) Long unitId,
+                                  @RequestParam(value = "searchContent", required = false) String searchContent
+                                  ) {
+        return communityService.institutionalUnitServiceAnalysis(year, type, range, communityId, page, size, belongTo,
+                unitId, null,searchContent);
+    }
+
+    /**
+     * 疫情防控 健康码统计
+     *
+     * @return
+     */
+    @GetMapping("selectColorMarkGroup")
+    @ApiOperation(value = "疫情防控 健康码统计", response = ComActAcidColorChartsVO.class)
+    public R selectColorMarkGroup() {
+        return communityService.selectColorMarkGroup();
+    }
+
+    @ApiOperation(value = "清单详情接口", response = ComActNeighborCircleAdminVO.class)
+    @GetMapping("/neighbor/detail")
+    public R neighborDetail(@RequestParam("id") Long id) {
+        return communityService.detailNeighborByAdmin(id);
+    }
+
+    @ApiOperation(value = "清单详情的所有评论接口", response = ComActNeighborCommentByAdminVO.class)
+    @PostMapping("/neighbor/detail/comment")
+    public R detailNeighborAllCommentByAdmin(@RequestBody DetailNeighborAllCommentByAdminDTO dto) {
+        return communityService.detailNeighborAllCommentByAdmin(dto);
+    }
+
+    @ApiOperation(value = "活动详情", response = ComActActivityVO.class)
+    @GetMapping("detailactivity")
+    public R detailActivity(@RequestParam("id") Long id, @RequestParam(value = "pageNum", required = false) Long pageNum, @RequestParam(value = "pageSize", required = false) Long pageSize) {
+        return communityService.detailActivity(id, null, pageNum, pageSize);
+    }
+
+    @ApiOperation(value = "网格治理", response = StatisticsPhotoVO.class)
+    @GetMapping("easyphoto/selectStatisticsPhoto")
+    public R selectStatisticsPhoto() {
+        return communityService.selectStatisticsPhoto();
+    }
+
+    @ApiOperation(value = "分页展示社区随手拍", response = ComActEasyPhotoVO.class)
+    @PostMapping("pageeasyphoto")
+    public R pageEasyPhoto(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfoSureNoLogin();
+        if (loginUserInfo != null) {
+            comActEasyPhotoVO.setCommunityId(loginUserInfo.getCommunityId());
+            comActEasyPhotoVO.setLogInUserId(loginUserInfo.getUserId());
+            comActEasyPhotoVO.setIsDpcMember(loginUserInfo.getIsDpcMember());
+        }
+        return communityService.pageEasyPhotoApplets(comActEasyPhotoVO);
+    }
+
+    @ApiOperation(value = "随手拍详情", response = ComActEasyPhotoVO.class)
+    @GetMapping("easyphoto")
+    public R detailEasyPhoto(@RequestParam("id") Long id) {
+//        Long userId = this.getUserId();
+        return communityService.detailEasyPhoto(id, 0L);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BcRegionApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BcRegionApi.java
new file mode 100644
index 0000000..cd4259c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BcRegionApi.java
@@ -0,0 +1,39 @@
+package com.panzhihua.community_backstage.api;
+
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+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;
+
+/**
+ * 行政区划表(BcRegion)表控制层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 行政区划表相关功能
+ *
+ * @author zzj
+ * @since 2022-04-20 14:26:14
+ */
+@Api(tags = {"行政区划"})
+@RestController
+@RequestMapping("bcRegion")
+public class BcRegionApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation("四级联动接口")
+    @GetMapping("levelList")
+    public R levelList(){
+        return this.communityService.levelListBackstage();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BigScreenApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BigScreenApi.java
new file mode 100644
index 0000000..a6b3ecf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BigScreenApi.java
@@ -0,0 +1,159 @@
+package com.panzhihua.community_backstage.api;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenStatisticAgeGenderDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenStatisticPartyActivityDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.PageBigScreenStatisticPartyOrg;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.bigscreen.*;
+import com.panzhihua.common.model.vos.partybuilding.PagePartyOrganizationVO;
+import com.panzhihua.common.model.vos.partybuilding.PartyBuildingComPbDynVO;
+import com.panzhihua.common.model.vos.partybuilding.PartyCommitteeVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.partybuilding.PartyBuildingService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @ClasssName BigScreenApi
+ * @Description TODO
+ * @Author cedoo
+ * @Date 2021/6/15
+ * @Version 1.0
+ **/
+@Slf4j
+@RestController
+@RequestMapping("/bigscreen/party")
+@Api(tags = {"网格大屏/党建"})
+public class BigScreenApi extends BaseController {
+    @Resource
+    private PartyBuildingService partyBuildingService;
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "党员党支部统计信息", response = BigScreenStatisticPartyOrg.class)
+    @PostMapping("/orgmembers")
+    public R<BigScreenStatisticPartyOrg>
+        orgmembers(@Validated @RequestBody PageBigScreenStatisticPartyOrg pageBigScreenStatisticPartyOrg) {
+        Long id = this.getCommunityId();
+        if (id == null) {
+            return R.fail(401, "请先登录");
+        }
+        pageBigScreenStatisticPartyOrg.setCommunityId(id);
+        return communityService.bigscreenPartyOrgmembers(pageBigScreenStatisticPartyOrg);
+    }
+
+    @ApiOperation(value = "党员年龄占比、男女占比", response = BigScreenStatisticAgeGender.class)
+    @GetMapping("/agegender")
+    public R<BigScreenStatisticAgeGender> agegender() {
+        BigScreenStatisticAgeGenderDTO bigScreenStatisticAgeGenderDTO = new BigScreenStatisticAgeGenderDTO();
+        Long id = this.getCommunityId();
+        if (id == null) {
+            return R.fail(401, "请先登录");
+        }
+        bigScreenStatisticAgeGenderDTO.setCommunityId(id);
+        return communityService.ageGender(bigScreenStatisticAgeGenderDTO);
+    }
+
+    @ApiOperation(value = "党建数据概览", response = BigScreenStatisticPartyBuild.class)
+    @GetMapping("/partybuild")
+    public R<BigScreenStatisticPartyBuild> partybuild() {
+        Long id = this.getCommunityId();
+        if (id == null) {
+            return R.fail(401, "请先登录");
+        }
+        return communityService.bigscreenPartybuild(id);
+    }
+
+    @ApiOperation(value = "党员活动(按月-最近12个月)", response = BigScreenStatisticPartyActivity.class)
+    @PostMapping("/partyactivity")
+    public R<List<BigScreenStatisticPartyActivity>>
+        partyactivity(@Validated @RequestBody BigScreenStatisticPartyActivityDTO bigScreenStatisticPartyActivityDTO) {
+        Long id = this.getCommunityId();
+        if (id == null) {
+            return R.fail(401, "请先登录");
+        }
+        bigScreenStatisticPartyActivityDTO.setCommunityId(id);
+        return communityService.bigscreenPartyactivity(bigScreenStatisticPartyActivityDTO);
+    }
+
+    @ApiOperation(value = "党员活动参加用户排行榜-TOP3", response = PartyBuildingMemberVO.class)
+    @GetMapping("/partyactivitytopuser")
+    public R<List<PartyBuildingMemberVO>> partyactivitytopuser() {
+        Long id = this.getCommunityId();
+        if (id == null) {
+            return R.fail(401, "请先登录");
+        }
+        return communityService.bigscreenPartyactivitytopuser(id);
+    }
+
+    @ApiOperation(value = "党建动态", response = BigScreenStatisticPartyOrg.class)
+    @PostMapping("/partydyn")
+    public R<BigScreenStatisticPartyOrg> partydyn(@RequestBody PartyBuildingComPbDynVO partyBuildingComPbDynVO) {
+        // Integer type = 1;
+        // Long communityId = 2L;
+        Long id = this.getCommunityId();
+        if (id == null) {
+            return R.fail(401, "请先登录");
+        }
+        partyBuildingComPbDynVO.setType(1);
+        partyBuildingComPbDynVO.setCommunityId(id);
+        return partyBuildingService.pageYnamic(partyBuildingComPbDynVO);
+    }
+
+    @ApiOperation(value = "社区党委", response = BigScreenStatisticPartyMemeber.class)
+    @PostMapping("/pagePartyCommittee")
+    public R<BigScreenStatisticPartyMemeber> pagePartyCommittee(@RequestBody PartyCommitteeVO partyCommitteeVO) {
+        Long id = this.getCommunityId();
+        if (id == null) {
+            return R.fail(401, "请先登录");
+        }
+        partyCommitteeVO.setCommunityId(id);
+        return partyBuildingService.pagePartyCommittee(partyCommitteeVO);
+    }
+
+    @ApiOperation(value = "党员分页查询", response = com.panzhihua.common.model.vos.partybuilding.PartyBuildingMemberVO.class)
+    @PostMapping("/pagepartyorganization")
+    public R pagePartyOrganization(@RequestBody PagePartyOrganizationMemberVO pagePartyOrganizationMemberVO) {
+        Long id = this.getCommunityId();
+        if (id == null) {
+            return R.fail(401, "请先登录");
+        }
+        PagePartyOrganizationVO pagePartyOrganizationVO = new PagePartyOrganizationVO();
+        BeanUtils.copyProperties(pagePartyOrganizationMemberVO, pagePartyOrganizationVO);
+        pagePartyOrganizationVO.setCommunityId(id);
+        pagePartyOrganizationVO.setAreaCode(this.getAreaCode());
+        return partyBuildingService.pagePartyOrganization(pagePartyOrganizationVO);
+    }
+
+    /**
+     * 党员活动折线图
+     * @return
+     */
+    @ApiOperation(value = "党员活动折线图", response = BigScreenActivityLine.class)
+    @GetMapping("/partyActivityLine")
+    public R partyActivityLine(){
+        return communityService.partyActivityLine(this.getCommunityId());
+    }
+
+    /**
+     * 党员积分前3
+     * @return
+     */
+    @ApiOperation(value = "党员积分前3", response = BigScreenActivityTop.class)
+    @PostMapping("/partyActivityTop")
+    public R partyActivityTop(@RequestBody PageBigScreenStatisticPartyOrg pageBigScreenStatisticPartyOrg){
+        pageBigScreenStatisticPartyOrg.setCommunityId(this.getCommunityId());
+        return communityService.partyActivityTop(pageBigScreenStatisticPartyOrg);
+    }
+}
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
new file mode 100644
index 0000000..4dcb6ce
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BigScreenStatisticsApi.java
@@ -0,0 +1,815 @@
+package com.panzhihua.community_backstage.api;
+
+import static java.util.Objects.isNull;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.dtos.community.building.BuildingDto;
+import com.panzhihua.common.model.dtos.community.large.AreaStreetDetail;
+import com.panzhihua.common.model.dtos.community.large.SumAreaStreetResp;
+import com.panzhihua.common.model.dtos.partybuilding.QryReportResp;
+import com.panzhihua.common.model.vos.community.ComActSocialOrgVO;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenCourtyardStatisticsInfo;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenDpcStatisticsInfo;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenFiveAssociationsStatisticsInfo;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenHatchStatisticsInfo;
+import com.panzhihua.common.model.vos.community.bigscreen.EquipmentPointMapDataVO;
+import com.panzhihua.common.model.vos.community.social.SocialProjectVO;
+import com.panzhihua.common.model.vos.partybuilding.PartyBuildingComPbDynVO;
+import com.panzhihua.common.service.partybuilding.PartyBuildingWestService;
+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.panzhihua.common.constants.HttpConstant;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.PageBaseDTO;
+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.event.ScreenDrawEventListDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.event.ScreenEventListDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PagePopularMerchantDTO;
+import com.panzhihua.common.model.dtos.community.integral.ComActIntegralCommunityRankDTO;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActActivityVO;
+import com.panzhihua.common.model.vos.community.ComActDiscussVO;
+import com.panzhihua.common.model.vos.community.ComActDynVO;
+import com.panzhihua.common.model.vos.community.ComActEasyPhotoVO;
+import com.panzhihua.common.model.vos.community.ComActMicroWishVO;
+import com.panzhihua.common.model.vos.community.ComActQuestnaireVO;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenActivityLine;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenAlarmStatisticsInfo;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenCommunityStatisticsVO;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenDynStatisticsInfo;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenEasyPhotoStatisticsInfo;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenFmsStatisticsInfo;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenFourMemberStatisticsInfo;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenHmkBaseInfo;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenMerchantStatisticsInfo;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenMicroWishStatisticsInfo;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenNeighborStatisticsInfo;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenPartyBuildIngStatisticsInfo;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenQuestionnaireStatisticsInfo;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenResidentActStatisticsInfo;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenServiceData;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenServiceUser;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenStatisticPartyOrg;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenVolunteerActStatisticsInfo;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenVolunteerStatisticsInfo;
+import com.panzhihua.common.model.vos.community.bigscreen.GridsGovernanceStatisticsVO;
+import com.panzhihua.common.model.vos.community.bigscreen.IndexInfo;
+import com.panzhihua.common.model.vos.community.bigscreen.ResidentAutonomyStatisticsVO;
+import com.panzhihua.common.model.vos.community.bigscreen.WestScreenStatics;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
+import com.panzhihua.common.model.vos.community.fms.ComFmsTeamVO;
+import com.panzhihua.common.model.vos.community.integral.ComActIntegralCommunityRankVO;
+import com.panzhihua.common.model.vos.community.screen.civil.CivilStatisticsVO;
+import com.panzhihua.common.model.vos.community.screen.event.EventComprehensiveGovernanceStatisticsVO;
+import com.panzhihua.common.model.vos.community.screen.event.EventGridIncidentStatisticsVO;
+import com.panzhihua.common.model.vos.community.screen.event.EventGridMemberVO;
+import com.panzhihua.common.model.vos.community.screen.event.EventGridStatisticsVO;
+import com.panzhihua.common.model.vos.community.screen.event.EventListVO;
+import com.panzhihua.common.model.vos.community.screen.event.EventNewStatisticsVO;
+import com.panzhihua.common.model.vos.community.screen.event.EventPopulationStatisticsVO;
+import com.panzhihua.common.model.vos.community.screen.event.EventPopulationStreetVO;
+import com.panzhihua.common.model.vos.community.screen.event.EventStatisticsVO;
+import com.panzhihua.common.model.vos.community.screen.index.IndexStatisticsVO;
+import com.panzhihua.common.model.vos.community.switchs.StreetAllAppletsVO;
+import com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleAdminVO;
+import com.panzhihua.common.model.vos.partybuilding.PartyBuildingActivityVO;
+import com.panzhihua.common.model.vos.property.ComPropertyAlarmVO;
+import com.panzhihua.common.model.vos.screen.ScreenDrawEventPopulationTotalVO;
+import com.panzhihua.common.model.vos.screen.ScreenDrawEventVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.grid.GridService;
+import com.panzhihua.common.service.partybuilding.PartyBuildingService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.HttpClientUtil;
+import com.panzhihua.common.utlis.HttpUtils;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.List;
+
+@Slf4j
+@Api(tags = {"大屏统计数据模块"})
+@RestController
+@RequestMapping("/screen/")
+public class BigScreenStatisticsApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private GridService gridService;
+    @Resource
+    private UserService userService;
+    @Resource
+    private PartyBuildingService partyBuildingService;
+    @Resource
+    private PartyBuildingWestService partyBuildingWestService;
+
+    @ApiOperation(value = "大屏测试接口")
+    @GetMapping("/test/noToken")
+    public R test(@RequestParam("communityId") Long communityId) {
+        return R.ok("测试,测试社区id" + communityId);
+    }
+
+    @ApiOperation(value = "首页大屏统计接口@lyq", response = IndexStatisticsVO.class)
+    @GetMapping("/index")
+    public R index(@RequestParam("communityId") Long communityId) {
+        Long id = this.getCommunityId();
+        if (id == null) {
+            return R.fail(401, "请先登录");
+        }
+        return communityService.getScreenIndex(id);
+    }
+
+    @ApiOperation(value = "事件大屏统计接口@lyq", response = EventStatisticsVO.class)
+    @PostMapping("/event")
+    public R event(@RequestBody BigScreenEventDTO screenEventDTO) {
+        Long id = this.getCommunityId();
+        if (id == null) {
+            return R.fail(401, "请先登录");
+        }
+        screenEventDTO.setCommunityId(id);
+        return communityService.getScreenEvent(screenEventDTO);
+    }
+
+    @ApiOperation(value = "事件大屏详情接口@lyq", response = EventNewStatisticsVO.class)
+    @PostMapping("/event/detail")
+    public R eventDetail(@RequestBody BigScreenEventDetailDTO eventDetailDTO) {
+        if (eventDetailDTO.getEventId() == null || eventDetailDTO.getType() == null) {
+            return R.fail("参数错误");
+        }
+        return communityService.getScreenEventDetail(eventDetailDTO);
+    }
+
+    @ApiOperation(value = "民生大屏统计接口@lyq", response = CivilStatisticsVO.class)
+    @GetMapping("/civil")
+    public R civil(@RequestParam("communityId") Long communityId) {
+        Long id = this.getCommunityId();
+        if (id == null) {
+            return R.fail(401, "请先登录");
+        }
+        return communityService.getScreenCivil(id);
+    }
+
+    @ApiOperation(value = "获取社区网格接口@lyq", response = EventGridStatisticsVO.class)
+    @GetMapping("/event/grids")
+    public R grids(@RequestParam("communityId") Long communityId) {
+        Long id = this.getCommunityId();
+        if (id == null) {
+            return R.fail(401, "请先登录");
+        }
+        return communityService.getScreenGirds(id);
+    }
+
+    @ApiOperation(value = "事件大屏事件列表接口@lyq", response = EventListVO.class)
+    @PostMapping("/civil/list")
+    public R eventList(@RequestBody ScreenEventListDTO eventListDTO) {
+//         if(eventListDTO.getCommunityId() == null){
+//            return R.fail("参数错误");
+//         }
+
+//        Long id = this.getCommunityId();
+//        if (id == null) {
+//            return R.fail(401, "请先登录");
+//        }
+//        eventListDTO.setCommunityId(id);
+        if(eventListDTO.getCommunityId()==2)
+        {
+            eventListDTO.setCommunityId(null);
+        }
+        return gridService.getScreenEventList(eventListDTO);
+    }
+
+    @ApiOperation(value = "事件大屏画圈展示事件坐标点接口@lyq", response = ScreenDrawEventVO.class)
+    @PostMapping("/civil/draw/list")
+    public R civilDrawList(@RequestBody ScreenDrawEventListDTO eventListDTO) {
+        // if(eventListDTO.getCommunityId() == null){
+        // return R.fail("参数错误");
+        // }
+        Long id = this.getCommunityId();
+        if (id == null) {
+            return R.fail(401, "请先登录");
+        }
+        eventListDTO.setCommunityId(id);
+        return gridService.getCivilDrawList(eventListDTO);
+    }
+
+    @ApiOperation(value = "根据小区id获取小区信息@lyq", response = ScreenDrawEventPopulationTotalVO.class)
+    @GetMapping("/civil/village/statistics")
+    public R civilVillageStatistics(@RequestParam("villageId") Long villageId) {
+        if (villageId == null) {
+            return R.fail("参数错误");
+        }
+        return gridService.civilVillageStatistics(villageId);
+    }
+
+    @ApiOperation(value = "获取社区网格员列表接口@lyq", response = EventGridMemberVO.class)
+    @GetMapping("/grids/member")
+    public R getGridsMemberList(@RequestParam("communityId") Long communityId) {
+        // if(communityId == null){
+        // return R.fail("参数错误");
+        // }
+        Long id = this.getCommunityId();
+        if (id == null) {
+            return R.fail(401, "请先登录");
+        }
+        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"));
+    }
+
+    @ApiOperation(value = "获取社区网格员移动轨迹接口@lyq", response = EventGridMemberVO.class)
+    @GetMapping("/grids/member/trajectory")
+    public R getGridsMemberTrajectory() {
+        Long communityId = this.getCommunityId();
+        if (communityId == null) {
+            return R.fail(401, "请先登录");
+        }
+        return gridService.getGridsMemberTrajectory(communityId);
+    }
+
+    /**
+     * 西区大屏治理数据
+     */
+    @ApiOperation(value = "西区大屏治理数据@lyq", response = WestScreenStatics.class)
+    @GetMapping("/getWestScreenStatics")
+    public R westScreenStatics(){
+        return communityService.westScreenStatics();
+    }
+
+
+    @ApiOperation(value = "西区大数据分析平台-综合治理栏", response = EventComprehensiveGovernanceStatisticsVO.class)
+    @GetMapping("/comprehensive/governance")
+    public R getComprehensiveGovernanceStatics() {
+        return gridService.getComprehensiveGovernanceStatics();
+    }
+
+    @ApiOperation(value = "西区大数据分析平台-一标三实栏", response = EventPopulationStatisticsVO.class)
+    @GetMapping("/comprehensive/population")
+    public R getComprehensivePopulationStatics(@RequestParam(value = "streetId",required = false,defaultValue = "0") Long streetId) {
+        return communityService.getComprehensivePopulationStatics(streetId);
+    }
+    /**
+     * 新版大屏首页接口
+     */
+    @ApiOperation(value = "新版大屏首页接口", response = IndexInfo.class)
+    @GetMapping("/indexInfo")
+    public R indexInfo(){
+        return communityService.indexInfo(this.getCommunityId());
+    }
+
+    /**
+     * 首页二级页面-微心愿
+     */
+    @ApiOperation(value = "首页二级页面-微心愿", response = BigScreenMicroWishStatisticsInfo.class)
+    @GetMapping("/index/microWish")
+    public R indexMicroWish() {
+        return communityService.indexMicroWish(this.getCommunityId());
+    }
+
+    /**
+     * 首页二级页面-微心愿展示列表
+     */
+    @ApiOperation(value = "首页二级页面-微心愿展示列表", response = ComActMicroWishVO.class)
+    @PostMapping("/index/microWishList")
+    public R indexMicroWishList(@RequestBody PageBaseDTO pageBaseDTO) {
+        pageBaseDTO.setCommunityId(this.getCommunityId());
+        return communityService.indexMicroWishList(pageBaseDTO);
+    }
+
+    /**
+     * 首页二级页面-随手拍
+     */
+    @ApiOperation(value = "首页二级页面-随手拍", response = BigScreenEasyPhotoStatisticsInfo.class)
+    @GetMapping("/index/easyPhoto")
+    public R indexEasyPhoto() {
+        return communityService.indexEasyPhoto(this.getCommunityId());
+    }
+
+    /**
+     * 首页二级页面-随手拍展示列表
+     */
+    @ApiOperation(value = "首页二级页面-随手拍展示列表", response = ComActEasyPhotoVO.class)
+    @PostMapping("/index/easyPhotoList")
+    public R indexEasyPhotoList(@RequestBody PageBaseDTO pageBaseDTO) {
+        pageBaseDTO.setCommunityId(this.getCommunityId());
+        return communityService.indexEasyPhotoList(pageBaseDTO);
+    }
+
+    /**
+     * 首页二级页面-社区问卷
+     */
+    @ApiOperation(value = "首页二级页面-社区问卷", response = BigScreenQuestionnaireStatisticsInfo.class)
+    @GetMapping("/index/questionnaire")
+    public R indexQuestionnaire() {
+        return communityService.indexQuestionnaire(this.getCommunityId());
+    }
+
+    /**
+     * 首页二级页面-社区问卷展示列表
+     */
+    @ApiOperation(value = "首页二级页面-社区问卷展示列表", response = ComActQuestnaireVO.class)
+    @PostMapping("/index/questionnaireList")
+    public R indexQuestionnaireList(@RequestBody PageBaseDTO pageBaseDTO) {
+        pageBaseDTO.setCommunityId(this.getCommunityId());
+        return communityService.indexQuestionnaireList(pageBaseDTO);
+    }
+
+    /**
+     * 首页二级页面-社区动态
+     */
+    @ApiOperation(value = "首页二级页面-社区动态", response = BigScreenDynStatisticsInfo.class)
+    @GetMapping("/index/dyn")
+    public R indexDyn() {
+        return communityService.indexDyn(this.getCommunityId());
+    }
+
+    /**
+     * 首页二级页面-社区动态展示列表
+     */
+    @ApiOperation(value = "首页二级页面-社区动态展示列表", response = ComActDynVO.class)
+    @PostMapping("/index/dynList")
+    public R indexDynList(@RequestBody PageBaseDTO pageBaseDTO) {
+        if (isNull(pageBaseDTO.getCommunityId())) {
+            pageBaseDTO.setCommunityId(this.getCommunityId());
+        }
+        return communityService.indexDynList(pageBaseDTO);
+    }
+
+    /**
+     * 首页二级页面-邻里圈
+     */
+    @ApiOperation(value = "首页二级页面-邻里圈", response = BigScreenNeighborStatisticsInfo.class)
+    @GetMapping("/index/neighbor")
+    public R indexNeighbor() {
+        return communityService.indexNeighbor(this.getCommunityId());
+    }
+
+    @ApiOperation(value = "西区大数据分析平台-西区街道列表", response = EventPopulationStreetVO.class)
+    @GetMapping("/comprehensive/street/list")
+    public R getComprehensiveStreetList() {
+        return communityService.getComprehensiveStreetList();
+    }
+    /**
+     * 首页二级页面-邻里圈展示列表
+     */
+    @ApiOperation(value = "首页二级页面-邻里圈展示列表", response = ComActNeighborCircleAdminVO.class)
+    @PostMapping("/index/neighborList")
+    public R indexNeighborList(@RequestBody PageBaseDTO pageBaseDTO) {
+        if (isNull(pageBaseDTO.getCommunityId())) {
+            pageBaseDTO.setCommunityId(this.getCommunityId());
+        }
+        return communityService.indexNeighborList(pageBaseDTO);
+    }
+
+    @ApiOperation(value = "分页获取党建动态", response = BigScreenStatisticPartyOrg.class)
+    @PostMapping("/comprehensive/partydyn")
+    public R<BigScreenStatisticPartyOrg> partydyn(@RequestBody PartyBuildingComPbDynVO partyBuildingComPbDynVO) {
+        partyBuildingComPbDynVO.setType(1);
+        partyBuildingComPbDynVO.setAppId(this.getAppId());
+        return partyBuildingWestService.pageYnamic(partyBuildingComPbDynVO);
+    }
+    /**
+     * 首页二级页面-便民商家
+     */
+    @ApiOperation(value = "首页二级页面-便民商家", response = BigScreenMerchantStatisticsInfo.class)
+    @GetMapping("/index/merchant")
+    public R indexMerchant() {
+        return communityService.indexMerchant(this.getCommunityId());
+    }
+
+    @ApiOperation(value = "分页获取社区动态", response = ComActDynVO.class)
+    @PostMapping("/comprehensive/pagedynamic")
+    public R pageDynamic(@RequestBody ComActDynVO comActDynVO) {
+        comActDynVO.setIsTopping(null);
+        comActDynVO.setStatus(1);
+        return communityService.pageDynamic(comActDynVO);
+    }
+
+    @ApiOperation(value = "通过社区id查询社区账号密码")
+    @PostMapping("/get/community/password")
+    public R getCommunityPassword(@RequestParam("communityId") Long communityId) {
+        if(communityId == null){
+            return R.fail("参数错误");
+        }
+        return communityService.getCommunityPassword(communityId);
+    }
+    /**
+     * 首页二级页面-商家展示列表
+     */
+    @ApiOperation(value = "首页二级页面-商家展示列表", response = ConvenientMerchantVO.class)
+    @PostMapping("/index/merchantList")
+    public R indexMerchantList(@RequestBody PageBaseDTO pageBaseDTO) {
+        pageBaseDTO.setCommunityId(this.getCommunityId());
+        return communityService.indexMerchantList(pageBaseDTO);
+    }
+
+    /**
+     * 社区服务大屏数据分析接口
+     */
+    @ApiOperation(value = "社区服务大屏数据分析接口", response = BigScreenServiceData.class)
+    @GetMapping("/serviceData")
+    public R serviceData(){
+        return this.communityService.serviceData(this.getCommunityId());
+    }
+
+    /**
+     * 服务居民接口
+     */
+    @ApiOperation(value = "社区服务大屏服务居民接口", response = BigScreenServiceUser.class)
+    @GetMapping("/serviceUser")
+    public R serviceUser(){
+        return this.communityService.serviceUser(this.getCommunityId());
+    }
+
+    @ApiOperation(value = "大数据分析平台-居民自治", response = ResidentAutonomyStatisticsVO.class)
+    @GetMapping("/resident/autonomy")
+    public R getResidentAutonomy() {
+        Long communityId = this.getCommunityId();
+        if (communityId == null) {
+            return R.fail(401, "请先登录");
+        }
+        return communityService.getResidentAutonomy(communityId);
+    }
+
+    @ApiOperation(value = "大数据分析平台-清网治格", response = GridsGovernanceStatisticsVO.class)
+    @GetMapping("/grids/governance")
+    public R getGridsGovernance() {
+        Long communityId = this.getCommunityId();
+        if (communityId == null) {
+            return R.fail(401, "请先登录");
+        }
+        return communityService.getGridsGovernance(communityId);
+    }
+
+    @ApiOperation(value = "新版事件大屏画圈展示事件坐标点接口", response = GridsGovernanceStatisticsVO.class)
+    @PostMapping("/civil/draw/list-new")
+    public R civilDrawListNew(@RequestBody ScreenDrawEventListDTO eventListDTO) {
+        Long id = this.getCommunityId();
+        if (id == null) {
+            return R.fail(401, "请先登录");
+        }
+        eventListDTO.setCommunityId(id);
+        return gridService.getCivilDrawListNew(eventListDTO);
+    }
+
+    @ApiOperation(value = "新版根据小区id获取小区信息", response = GridsGovernanceStatisticsVO.class)
+    @GetMapping("/civil/village/statistics-new")
+    public R civilVillageStatisticsNew(@RequestParam("villageId") Long villageId) {
+        if (villageId == null) {
+            return R.fail("参数错误");
+        }
+        return gridService.civilVillageStatisticsNew(villageId);
+    }
+
+    @ApiOperation(value = "大数据分析平台-社区服务", response = BigScreenCommunityStatisticsVO.class)
+    @GetMapping("/community/service")
+    public R getCommunityServiceStatistics() {
+        Long communityId = this.getCommunityId();
+        if (communityId == null) {
+            return R.fail(401, "请先登录");
+        }
+        return communityService.getCommunityServiceStatistics(communityId);
+    }
+
+    @ApiOperation(value = "分页获取热度排行商家", response = ConvenientMerchantVO.class)
+    @PostMapping("/merchant/popular")
+    public R getScreenPopularMerchants(@RequestBody PagePopularMerchantDTO pagePopularMerchantDTO) {
+        Long communityId = this.getCommunityId();
+        if (communityId == null) {
+            return R.fail(401, "请先登录");
+        }
+        pagePopularMerchantDTO.setCommunityId(communityId);
+        pagePopularMerchantDTO.setAreaCode(this.getAreaCode());
+        return communityService.getScreenPopularMerchants(pagePopularMerchantDTO);
+    }
+
+    /**
+     * 首页二级页面-居民活动
+     */
+    @ApiOperation(value = "首页二级页面-居民活动", response = BigScreenResidentActStatisticsInfo.class)
+    @GetMapping("/index/residentAct")
+    public R indexResidentAct() {
+        return communityService.indexResidentAct(this.getCommunityId());
+    }
+
+    /**
+     * 首页二级页面-居民活动展示列表
+     */
+    @ApiOperation(value = "首页二级页面-居民活动展示列表", response = ComActActivityVO.class)
+    @PostMapping("/index/residentActList")
+    public R indexResidentActList(@RequestBody PageBaseDTO pageBaseDTO) {
+        if (isNull(pageBaseDTO.getCommunityId())) {
+            pageBaseDTO.setCommunityId(this.getCommunityId());
+        }
+        return communityService.indexResidentActList(pageBaseDTO);
+    }
+
+    /**
+     * 首页二级页面-志愿者活动
+     */
+    @ApiOperation(value = "首页二级页面-志愿者活动", response = BigScreenVolunteerActStatisticsInfo.class)
+    @GetMapping("/index/volunteerAct")
+    public R indexVolunteerAct() {
+        return communityService.indexVolunteerAct(this.getCommunityId());
+    }
+
+    /**
+     * 首页二级页面-志愿者活动展示列表
+     */
+    @ApiOperation(value = "首页二级页面-志愿者活动展示列表", response = ComActActivityVO.class)
+    @PostMapping("/index/volunteerActList")
+    public R indexVolunteerActList(@RequestBody PageBaseDTO pageBaseDTO) {
+        if (isNull(pageBaseDTO.getCommunityId())) {
+            pageBaseDTO.setCommunityId(this.getCommunityId());
+        }
+        return communityService.indexVolunteerActList(pageBaseDTO);
+    }
+
+    @ApiOperation(value = "查询所有社区", response = StreetAllAppletsVO.class)
+    @GetMapping("/list/act")
+    public R list() {
+        return communityService.communitySwitchList(this.getAppId());
+    }
+
+    @ApiOperation(value = "清网治格-根据事件分类获取近1月的社区事件数据", response = EventGridIncidentStatisticsVO.class)
+    @ApiImplicitParam(name = "type", value = "事件状态(1治安防控、2民生服务、3矛盾劝解、4不稳定因素、5突发事件报告、6特殊人群服务、9防灾减灾、10其他", required = true)
+    @GetMapping("/event/list")
+    public R getEventList(@RequestParam(value = "type") Integer type) {
+        return communityService.getEventList(type, this.getCommunityId());
+    }
+
+    @ApiOperation(value = "清网治格-社区事件数据分页", response = EventGridIncidentStatisticsVO.class)
+    @PostMapping("/event/page")
+    public R pageEventList(@RequestBody PageBaseDTO pageBaseDTO) {
+        if (isNull(pageBaseDTO.getCommunityId())) {
+            pageBaseDTO.setCommunityId(this.getCommunityId());
+        }
+        return communityService.pageEventList(pageBaseDTO);
+    }
+    @ApiOperation(value = "河门口大屏首页", response = BigScreenHmkBaseInfo.class)
+    @PostMapping("/hmk/baseInfo")
+    public R getHmkBaseInfo(@RequestBody CommonPage commonPage){
+        return communityService.hmkBaseInfo(commonPage);
+    }
+
+    @ApiOperation(value = "河门口大屏折线图", response = BigScreenActivityLine.class)
+    @GetMapping("/hmk/partyProjectActivityLine")
+    public R partyActivityLine(){
+        return communityService.partyProjectActivityLine();
+    }
+    @ApiOperation(value = "河门口活动积分排行", response = ComActActivityVO.class)
+    @PostMapping("/hmk/projectActivityTop")
+    public R projectActivityTop(@RequestBody CommonPage commonPage){
+        return communityService.projectActivityProject(commonPage);
+    }
+
+    @ApiOperation(value = "金沙定制页面-党建引领基础数据", response = BigScreenPartyBuildIngStatisticsInfo.class)
+    @GetMapping("/partyBuildIng/base")
+    public R getPartyBuildIngBaseData() {
+        return communityService.getPartyBuildIngBaseData(this.getCommunityId());
+    }
+
+    @ApiOperation(value = "金沙定制页面-党员活动展示列表", response = PartyBuildingActivityVO.class)
+    @PostMapping("/partyBuildIng/partyAct")
+    public R pagePartyAct(@RequestBody PageBaseDTO pageBaseDTO) {
+        pageBaseDTO.setCommunityId(this.getCommunityId());
+        return communityService.pagePartyBuildIngAct(pageBaseDTO);
+    }
+
+    @ApiOperation(value = "金沙定制页面-议事投票展示列表", response = ComActDiscussVO.class)
+    @PostMapping("/partyBuildIng/discuss")
+    public R pageDiscuss(@RequestBody PageBaseDTO pageBaseDTO) {
+        pageBaseDTO.setCommunityId(this.getCommunityId());
+        return communityService.pagePartyBuildIngDiscuss(pageBaseDTO);
+    }
+
+    @ApiOperation(value = "金沙定制页面-志愿线展示列表", response = ComActMicroWishVO.class)
+    @PostMapping("/partyBuildIng/microWish")
+    public R pagePartyBuildIngMicroWish(@RequestBody PageBaseDTO pageBaseDTO) {
+        pageBaseDTO.setCommunityId(this.getCommunityId());
+        return communityService.pagePartyBuildIngMicroWish(pageBaseDTO);
+    }
+
+    @ApiOperation(value = "金沙定制页面-四长四员", response = BigScreenFourMemberStatisticsInfo.class)
+    @GetMapping("/fourMember/base")
+    public R getFourMemberBaseData() {
+        return communityService.getFourMemberBaseData(this.getCommunityId());
+    }
+
+    @ApiOperation(value = "金沙定制页面-四长四员解决问题展示列表", response = ComActMicroWishVO.class)
+    @PostMapping("/fourMember/resolve")
+    public R pageFourMemberResolve(@RequestBody PageBaseDTO pageBaseDTO) {
+        pageBaseDTO.setCommunityId(this.getCommunityId());
+        return communityService.pageFourMemberResolve(pageBaseDTO);
+    }
+
+    @ApiOperation(value = "杨家坪定制页面-五微服务", response = BigScreenFmsStatisticsInfo.class)
+    @GetMapping("/fms/base")
+    public R getFmsBaseData() {
+        return communityService.getFmsBaseData(this.getCommunityId());
+    }
+
+    @ApiOperation(value = "杨家坪定制页面-微团队展示列表", response = ComFmsTeamVO.class)
+    @PostMapping("/fms/team")
+    public R pageFmsTeam(@RequestBody PageBaseDTO pageBaseDTO) {
+        pageBaseDTO.setCommunityId(this.getCommunityId());
+        return communityService.pageFmsTeam(pageBaseDTO);
+    }
+
+    @ApiOperation(value = "杨家坪定制页面-居家养老", response = BigScreenAlarmStatisticsInfo.class)
+    @GetMapping("/alarm/base")
+    public R getAlarmBaseData() {
+        return communityService.getAlarmBaseData(this.getCommunityId());
+    }
+
+    @ApiOperation(value = "杨家坪定制页面-报警记录展示列表,参数param3(1.待处理异常 2.已处理 3.待服务 4.已服务)", response = ComPropertyAlarmVO.class)
+    @PostMapping("/alarm/record")
+    public R pageAlarmRecord(@RequestBody PageBaseDTO pageBaseDTO) {
+        if (isNull(pageBaseDTO.getParam3())) {
+            return R.fail("缺少参数");
+        }
+        pageBaseDTO.setCommunityId(this.getCommunityId());
+        return communityService.pageAlarmRecord(pageBaseDTO);
+    }
+
+    @ApiOperation(value = "杨家坪定制页面-报警设备点位图", response = EquipmentPointMapDataVO.class)
+    @GetMapping("/alarm/pointMap")
+    public R getAlarmPointMap() {
+        return communityService.getAlarmPointMap(this.getCommunityId());
+    }
+
+    @ApiOperation(value = "杨家坪定制页面-志愿服务", response = BigScreenVolunteerStatisticsInfo.class)
+    @GetMapping("/volunteer/base")
+    public R getVolunteerBaseData() {
+        return communityService.getVolunteerBaseData(this.getCommunityId());
+    }
+
+    @ApiOperation(value = "杨家坪定制页面-志愿者积分排行榜", response = ComActIntegralCommunityRankVO.class)
+    @PostMapping("/volunteer/rank")
+    public R getIntegralCommunityRank(@RequestBody ComActIntegralCommunityRankDTO communityRankDTO) {
+        communityRankDTO.setType(3);
+        communityRankDTO.setCommunityId(this.getCommunityId());
+        return communityService.getIntegralCommunityRankApplets(communityRankDTO);
+    }
+
+    @ApiOperation(value = "金沙定制页面-四长四员院落议事展示列表,param3(1.议事 2.投票)", response = ComActDiscussVO.class)
+    @PostMapping("/courtyard/list")
+    public R pageCourtyardDiscuss(@RequestBody PageBaseDTO pageBaseDTO) {
+        pageBaseDTO.setCommunityId(this.getCommunityId());
+        return communityService.pageCourtyardDiscuss(pageBaseDTO);
+    }
+
+    @ApiOperation(value = "金沙定制页面-院落议事", response = BigScreenCourtyardStatisticsInfo.class)
+    @GetMapping("/courtyard/base")
+    public R getCourtyardBaseData() {
+        return communityService.getCourtyardBaseData(this.getCommunityId());
+    }
+
+    @ApiOperation(value = "孵化中心-基础数据", response = BigScreenHatchStatisticsInfo.class)
+    @GetMapping("/hatch/base")
+    public R getHatchBaseData() {
+        return communityService.getHatchBaseData(this.getCommunityId());
+    }
+
+    @ApiOperation(value = "孵化中心-孵化成果展示列表", response = ComActSocialOrgVO.class)
+    @PostMapping("/hatchResult/list")
+    public R pageHatchResult(@RequestBody PageBaseDTO pageBaseDTO) {
+        pageBaseDTO.setCommunityId(this.getCommunityId());
+        return communityService.pageHatchResult(pageBaseDTO);
+    }
+
+    @ApiOperation(value = "孵化中心-孵化进度展示列表", response = ComActSocialOrgVO.class)
+    @PostMapping("/hatchSchedule/list")
+    public R pageHatchSchedule(@RequestBody PageBaseDTO pageBaseDTO) {
+        pageBaseDTO.setCommunityId(this.getCommunityId());
+        return communityService.pageHatchSchedule(pageBaseDTO);
+    }
+
+    @ApiOperation(value = "五社联动基础数据", response = BigScreenFiveAssociationsStatisticsInfo.class)
+    @GetMapping("/fiveAssociations/base")
+    public R getFiveAssociationsBaseData() {
+        return communityService.getFiveAssociationsBaseData(this.getCommunityId());
+    }
+
+    @ApiOperation(value = "五社联动项目展示列表", response = SocialProjectVO.class)
+    @PostMapping("/socialProject/list")
+    public R pageSocialProjectList(@RequestBody PageBaseDTO pageBaseDTO) {
+        pageBaseDTO.setCommunityId(this.getCommunityId());
+        return communityService.pageSocialProjectList(pageBaseDTO);
+    }
+
+    @ApiOperation(value = "五社联动社会组织展示列表", response = ComActSocialOrgVO.class)
+    @PostMapping("/socialOrg/list")
+    public R pageSocialOrgList(@RequestBody PageBaseDTO pageBaseDTO) {
+        pageBaseDTO.setCommunityId(this.getCommunityId());
+        return communityService.pageSocialOrgList(pageBaseDTO);
+    }
+
+    @ApiOperation(value = "人大代表", response = BigScreenDpcStatisticsInfo.class)
+    @GetMapping("/dpc/base")
+    public R dpcBase() {
+        return communityService.dpcBase(this.getCommunityId());
+    }
+
+    @ApiOperation(value = "人大代表-随手拍展示列表", response = ComActEasyPhotoVO.class)
+    @PostMapping("/dpc/easyPhotoList")
+    public R dpcEasyPhotoList(@RequestBody PageBaseDTO pageBaseDTO) {
+        pageBaseDTO.setCommunityId(this.getCommunityId());
+        return communityService.dpcEasyPhotoList(pageBaseDTO);
+    }
+
+    @GetMapping("/panzhihuaMap")
+    public R panzhihuaMap(@RequestParam("areaCode")String areaCode){
+        return communityService.panzhihuaMap(areaCode);
+    }
+
+    @GetMapping("/oneTagThreeReal")
+    public R oneTagThreeReal(@RequestParam("streetId") Long streetId){
+        return communityService.oneTagThreeReal(streetId);
+    }
+
+    @PostMapping("/searchStreet")
+    public R searchStreet(@RequestBody BuildingDto buildingDto){
+        return communityService.searchStreet(buildingDto);
+    }
+
+    @PostMapping("/huachengDyn")
+    public R huachengDyn(@RequestBody ComActDynVO comActDynVO){
+        return communityService.huachengDyn(comActDynVO);
+    }
+
+    @GetMapping("/getScreenStatics")
+    public R getScreenStatics(){
+        return communityService.getScreenStatics();
+    }
+
+    @GetMapping("/populationStatics")
+    public R populationStatics(@RequestParam("streetId") Long streetId){
+        return communityService.populationStatics(streetId);
+    }
+
+    @GetMapping("/probably")
+    public R probably(@RequestParam("year") Integer year,@RequestParam("belongTo") String belongTo){
+        return communityService.probably(year,belongTo);
+    }
+    /**
+     * 查询 一标三实 数据
+     */
+    @GetMapping("/sumAreaStreet")
+    public R<SumAreaStreetResp> sumAreaStreet(){
+        return communityService.sumAreaStreet();
+    }
+
+    /**
+     *  下拉 明细
+     */
+    @GetMapping(("/areaStreetDetail"))
+    private R<AreaStreetDetail> areaStreetDetail(@RequestParam("code") String code,
+                                                 @RequestParam("type") String type){
+        return communityService.areaStreetDetail(code, type);
+    }
+
+    /**
+     *   双报到双服务
+     */
+    @GetMapping("/qryReport")
+    public R<List<QryReportResp>> qryReport(@RequestParam(value = "yearTime",required = false) String yearTime){
+        return communityService.qryReport(yearTime);
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BraceletApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BraceletApi.java
new file mode 100644
index 0000000..4e5d0ec
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BraceletApi.java
@@ -0,0 +1,377 @@
+package com.panzhihua.community_backstage.api;
+
+/**
+ * 西区手环接口
+ */
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.model.dtos.bracelet.BraceletEarlyWarningDO;
+import com.panzhihua.common.model.dtos.bracelet.BraceletUserDataDO;
+import com.panzhihua.common.model.dtos.bracelet.SetSOS;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.bracelet.CommunityBraceletService;
+import com.panzhihua.common.utlis.HttpClientUtil;
+import com.panzhihua.community_backstage.model.vos.PutmessageBody;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.Map;
+
+@Slf4j
+@Api(tags = {"西区手环接口"})
+@RestController
+@RequestMapping("/braceletApi/")
+public class BraceletApi
+{
+
+    @Resource
+    private CommunityBraceletService communityBraceletService;
+
+
+    /**
+     * 用户手环参数变化  更新数据
+     * @param putmessageBody
+     * @return
+     */
+    @ApiOperation(value = "用户手环推送信息接口", response = PutmessageBody.class)
+    @PostMapping("putmessage")
+    public R putmessage(@RequestBody PutmessageBody putmessageBody)
+    {
+        BraceletUserDataDO dataDO=new BraceletUserDataDO();
+        dataDO.setDeviceType(putmessageBody.getDeviceType());
+        dataDO.setDeviceModel(putmessageBody.getDeviceModel());
+        dataDO.setDeviceId(putmessageBody.getDeviceID());
+        dataDO.setMobile(putmessageBody.getMobile());
+        dataDO.setDataType(putmessageBody.getDataType());
+        if(putmessageBody.getDataInfo()!=null)
+        {
+            dataDO.setDataId(putmessageBody.getDataInfo().getId());
+            dataDO.setTime(putmessageBody.getDataInfo().getTime());
+            dataDO.setPm(putmessageBody.getDataInfo().getPm());
+            dataDO.setPcp(putmessageBody.getDataInfo().getPcp());
+            dataDO.setPdp(putmessageBody.getDataInfo().getPdp());
+            dataDO.setEtg(putmessageBody.getDataInfo().getEtg());
+            dataDO.setStep(putmessageBody.getDataInfo().getStep());
+            dataDO.setLng(putmessageBody.getDataInfo().getLng());
+            dataDO.setLat(putmessageBody.getDataInfo().getLat());
+            dataDO.setMode(putmessageBody.getDataInfo().getMode());
+            dataDO.setElec(putmessageBody.getDataInfo().getElec());
+            dataDO.setOnoff(putmessageBody.getDataInfo().getOnoff());
+        }
+
+        log.info("用户手环 putmessage : "+putmessageBody.toString());
+        return communityBraceletService.addBracelet(dataDO);
+//        return R.ok(dataDO);
+    }
+
+    /**
+     * 手环数据获取
+     * @param pageNum
+     * @param pageSize
+     * @param communityId
+     * @return
+     */
+    @ApiOperation(value = "手环数据获取")
+    @GetMapping("getData")
+    public R getData(@RequestParam("pageNum") Integer pageNum,
+                     @RequestParam("pageSize") Integer pageSize,
+                     @RequestParam(value = "communityId",required = false)  String communityId,
+                     @RequestParam(value = "userName",required = false) String userName,
+                     @RequestParam(value = "phone",required = false) String phone)
+    {
+        return communityBraceletService.getData(pageNum,pageSize,communityId,userName,phone);
+    }
+
+
+    /**
+     * 手环数据编辑接口
+     * @return
+     */
+    @ApiOperation(value = "手环数据编辑接口")
+    @PostMapping("upBracelet")
+    public R upBracelet(@RequestBody BraceletUserDataDO braceletUserDataDO)
+    {
+        if(StringUtils.isEmpty(braceletUserDataDO.getDeviceId()))
+        {
+            return R.fail("设备id不能为空");
+        }
+        return communityBraceletService.upBracelet(braceletUserDataDO);
+    }
+
+    /**
+     * 删除设备
+     * @param id   设备id
+     * @return
+     */
+    @ApiOperation(value = "删除设备")
+    @DeleteMapping("delectData")
+    public R delectData(@RequestParam("id") String id)
+    {
+        return communityBraceletService.delectData(id);
+    }
+
+    /**
+     * 用户手环参数变化  新增数据
+     * @param braceletUserDataDO
+     * @return
+     */
+    @ApiOperation(value = "用户手环新增用户接口")
+    @PostMapping("addBraceletUser")
+    public R addBraceletUser(@RequestBody BraceletUserDataDO braceletUserDataDO)
+    {
+        if(braceletUserDataDO==null)
+        {
+            return R.fail("参数不能为空");
+        }
+
+        if(StringUtils.isEmpty(braceletUserDataDO.getDeviceId()))
+        {
+            return R.fail("设备ID 不能为空");
+        }
+
+//        log.info("用户手环 putmessage : "+braceletUserDataDO.toString());
+        return communityBraceletService.addBracelet(braceletUserDataDO);
+    }
+
+
+    /**
+     * 用户手环参数变化  更新数据
+     * @return
+     */
+    @ApiOperation(value = "手环设置SOS联系人")
+    @PostMapping("setSOS")
+    public R setSOS(@RequestBody SetSOS setSOS)
+    {
+        if(setSOS==null)
+        {
+            return R.fail("参数不能为空");
+        }
+
+        if(StringUtils.isEmpty(setSOS.getDeviceId()))
+        {
+            return R.fail("设备ID 不能为空");
+        }
+
+        if(StringUtils.isEmpty(setSOS.getEmergencyContact1()) && StringUtils.isEmpty(setSOS.getEmergencyContact2())
+                && StringUtils.isEmpty(setSOS.getEmergencyContact3()))
+        {
+            return R.fail("联系人不能全部为空");
+        }
+
+
+//        3 W11 智能手表
+//        2 W5 智能手环
+//        1 W6 智能手表
+        Map allMap=new HashMap();
+        Map phone=new HashMap();
+
+//        if(StringUtils.equals(braceletUserDataDO.getDeviceModel(),"W11"))
+//        {
+//            allMap.put("deviceModelId",3);
+//        }
+//        else if(StringUtils.equals(braceletUserDataDO.getDeviceModel(),"W5"))
+//        {
+//            allMap.put("deviceModelId",2);
+//        }
+//        else
+//        {
+//            allMap.put("deviceModelId",1);
+//        }
+        allMap.put("deviceModelId",3);
+
+
+        BraceletUserDataDO dataDO=new BraceletUserDataDO();
+        dataDO.setDeviceId(setSOS.getDeviceId());
+        dataDO.setOnoff("1");
+        phone.put("sgtel1",setSOS.getEmergencyContact1());
+        dataDO.setSgtel1(setSOS.getEmergencyContact1());
+
+        phone.put("sgtel2",setSOS.getEmergencyContact2());
+        dataDO.setSgtel2(setSOS.getEmergencyContact2());
+
+        phone.put("sgtel3",setSOS.getEmergencyContact3());
+        dataDO.setSgtel3(setSOS.getEmergencyContact3());
+
+
+        allMap.put("deviceID",setSOS.getDeviceId());
+        allMap.put("apiKey","C71584EDE98983A1976AAE8DBCF6B9CF");
+        allMap.put("type",1);
+        allMap.put("dataInfo",phone);
+
+
+//        String resultJson = HttpClientUtil.sendPostByJson("http://apps.jkez.net/openapi/mobile/saveDeviceSet", JSON.toJSONString(allMap),
+        String resultJson = HttpClientUtil.sendPostByJson("http://v3frame.jkez.cn/v3openapi/mobile/saveDeviceSet", JSON.toJSONString(allMap),
+                0,null,null);
+        JSONObject result = JSON.parseObject(resultJson);
+
+
+        if(!StringUtils.isEmpty(dataDO.getSgtel1()) || !StringUtils.isEmpty(dataDO.getSgtel2()) ||
+                !StringUtils.isEmpty(dataDO.getSgtel3()))
+        {
+            communityBraceletService.upBracelet(dataDO);
+        }
+
+        R r=new R();
+        int code=result.getIntValue("code");
+        if(code==400)
+        {
+            dataDO.setOnoff("0");
+        }
+        communityBraceletService.upBracelet(dataDO);
+        r.setCode(code);
+        r.setMsg(result.getString("message"));
+        return r;
+    }
+
+
+    /**
+     * 获取用户  手环数据详情
+     * @param deviceID
+     * @return
+     */
+    @ApiOperation(value = "获取用户  手环数据详情")
+    @GetMapping("getDetails")
+    public R getDetails(@RequestParam("deviceID") String deviceID)
+    {
+        return communityBraceletService.getDetails(deviceID);
+    }
+
+
+
+
+
+    /**
+     * 编辑手环预警数据
+     * @param braceletEarlyWarningDO
+     * @return
+     */
+    @ApiOperation(value = "编辑手环预警数据")
+    @PostMapping("upEarlyWarning")
+    public R upEarlyWarning(@RequestBody BraceletEarlyWarningDO braceletEarlyWarningDO) {
+        return communityBraceletService.upEarlyWarning(braceletEarlyWarningDO);
+    }
+
+    /**
+     * 删除预警数据
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "删除预警数据")
+    @DeleteMapping("delectEarlyWarning")
+    public R delectEarlyWarning(@RequestParam("id") String id) {
+        return communityBraceletService.delectEarlyWarning(id);
+    }
+
+    /**
+     * 获取预警数据
+     * @param communityId
+     * @return
+     */
+    @ApiOperation(value = "获取预警数据")
+    @GetMapping("getEarlyWarningList")
+    public R getList(@RequestParam("pageNum") Integer pageNum,
+                     @RequestParam("pageSize") Integer pageSize,
+                     @RequestParam(value = "communityId",required = false)  String communityId,
+                     @RequestParam(value = "equipmentNumber",required = false)  String equipmentNumber,
+                     @RequestParam(value = "type",required = false)  String type,
+                     @RequestParam(value = "userName",required = false)  String userName,
+                     @RequestParam(value = "phone",required = false)  String phone)
+    {
+        return communityBraceletService.getList(pageNum,pageSize,communityId,equipmentNumber,"",type,userName,phone);
+    }
+
+    /**
+     * 获取单个预警信息详情
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "获取单个预警信息详情")
+    @GetMapping("getEarlyWarningDetails")
+    public R getEarlyWarningDetails(@RequestParam("id") String id)
+    {
+        return communityBraceletService.getEarlyWarningDetails(id);
+    }
+
+    /**
+     * 处理接口
+     * @return
+     */
+    @ApiOperation(value = "处理接口")
+    @PostMapping("dispose")
+    public R dispose(@RequestBody BraceletEarlyWarningDO braceletEarlyWarningDO)
+    {
+        return communityBraceletService.dispose(braceletEarlyWarningDO);
+    }
+
+
+    /**
+     * 处理人
+     * @param communityId
+     * @return
+     */
+    @ApiOperation(value = "处理人")
+    @GetMapping("conductorList")
+    public R conductorList(@RequestParam("communityId") String communityId)
+    {
+        return communityBraceletService.conductorList(communityId);
+    }
+
+
+    /**********************************************************************************************************************************************
+     *
+     *                                   大屏居家养老
+     *
+     **********************************************************************************************************************************************/
+
+    /**
+     * 手环人数
+     * @return
+     */
+    @ApiOperation(value = "手环人数")
+    @GetMapping("/getUserNum")
+    public R getUserNum(@RequestParam("communityId") String communityId)
+    {
+        return communityBraceletService.getUserNum(communityId);
+    }
+
+
+    /**
+     * 手环定位数据
+     */
+    @ApiOperation(value = "手环定位数据")
+    @GetMapping("/getUserList")
+    public R  getUserList(@RequestParam("communityId") String communityId)
+    {
+        return communityBraceletService.getUserList(communityId);
+    }
+
+
+
+    /**
+     * 获取手环预警次数
+     * @return
+     */
+    @ApiOperation(value = "获取手环预警次数")
+    @GetMapping("/getWarningNum")
+    public R getWarningNum(@RequestParam("communityId") String communityId,
+                           @RequestParam(value = "disposeType",required = false) String disposeType)
+    {
+        return communityBraceletService.getWarningNum(communityId,disposeType);
+    }
+
+
+
+
+
+
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BuildingApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BuildingApi.java
new file mode 100644
index 0000000..645df9c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/BuildingApi.java
@@ -0,0 +1,343 @@
+package com.panzhihua.community_backstage.api;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.alibaba.fastjson.JSONArray;
+import com.panzhihua.common.interfaces.OperLog;
+import com.panzhihua.common.model.dtos.community.building.admin.*;
+import com.panzhihua.common.model.vos.community.ComMngPopulationImportErrorVO;
+import com.panzhihua.common.model.vos.community.ComMngVillageVO;
+import com.panzhihua.common.model.vos.community.building.admin.BuildingDetailAdminVo;
+import com.panzhihua.common.model.vos.community.building.admin.BuildingListHeaderStatisticsAdminVo;
+import com.panzhihua.common.model.vos.community.building.admin.BuildingUnitHouseListAdminVo;
+import com.panzhihua.common.model.vos.community.building.admin.PageBuildingListAdminVo;
+import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingHouseDetailVO;
+import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingVO;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.SFTPUtil;
+import com.panzhihua.community_backstage.excel.CustomSheetWriteHandler;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.listen.ComMngBuildingExcelListen;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.community.CommunityService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @author xyh
+ * @date 2021/6/10 12:34
+ */
+@Slf4j
+@Api(tags = {"楼栋管理"})
+@RestController
+@RequestMapping("/building")
+public class BuildingApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+    @Value("${excel.userurl}")
+    private String excelUrl;
+
+    @ApiOperation(value = "excel导入楼栋信息--注:以前的接口,不需要对接")
+    @PostMapping(value = "/import", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    @OperLog(operModul = "房屋信息管理-导入楼栋信息", operType = 0, businessType = "导入楼栋信息")
+    public R downloadPopulationTemplate(@RequestParam MultipartFile file) {
+        InputStream inputStream;
+        try {
+            inputStream = file.getInputStream();
+            ComMngBuildingExcelListen comMngBuildingExcelListen =
+                new ComMngBuildingExcelListen(communityService, this.getCommunityId(),stringRedisTemplate);
+            EasyExcel.read(inputStream, null, comMngBuildingExcelListen).sheet().doRead();
+        } catch (IOException e) {
+            log.error("导入模板失败【{}】", e.getMessage());
+            e.printStackTrace();
+        }
+        return R.ok();
+    }
+
+    @ApiOperation(value = "分页查询楼栋列表", response = PageBuildingListAdminVo.class)
+    @PostMapping("/page")
+    public R page(@RequestBody PageBuildingListDto pageBuildingListDto) {
+        // 获取登陆用户绑定社区id
+        Long communityId = this.getLoginUserInfo().getCommunityId();
+        pageBuildingListDto.setCommunityId(communityId);
+        return communityService.pageBuildingAdmin(pageBuildingListDto);
+    }
+
+    @ApiOperation(value = "根据小区id查询楼栋列表")
+    @GetMapping("/getBuildList")
+    public R getBuildListByVillageId(@RequestParam(value = "villageId") Long villageId) {
+        return communityService.getBuildListByVillageId(villageId);
+    }
+
+    @ApiOperation(value = "楼栋列表表头统计", response = BuildingListHeaderStatisticsAdminVo.class)
+    @GetMapping("/header/statistics")
+    public R headerStatistics() {
+        // 获取登陆用户绑定社区id
+        Long communityId = this.getLoginUserInfo().getCommunityId();
+        return communityService.buildingListHeaderStatisticsAdmin(communityId);
+    }
+
+    @ApiOperation(value = "楼栋详情", response = BuildingDetailAdminVo.class)
+    @GetMapping("/detail")
+    public R detail(@RequestParam("id") Long id) {
+        return communityService.detailBuildAdmin(id);
+    }
+
+    @ApiOperation(value = "查询楼栋下单元列表", response = ComMngVillageBuildingVO.class)
+    @GetMapping("/unit/list")
+    public R unitList(@RequestParam("id") Long id) {
+        return communityService.buildingUnitListAdmin(id);
+    }
+
+    @ApiOperation(value = "查询单元下房屋列表", response = BuildingUnitHouseListAdminVo.class)
+    @PostMapping("/unit/house/list")
+    public R unitHouseList(@RequestBody PageBuildingUnitHouseListDto unitHouseListDto) {
+        return communityService.buildingUnitHouseListAdmin(unitHouseListDto);
+    }
+
+    @ApiOperation(value = "查询房屋详情", response = ComMngVillageBuildingHouseDetailVO.class)
+    @GetMapping("/unit/house/detail")
+    public R unitHouseDetail(@RequestParam("houseId") Long houseId) {
+        // 获取登陆用户绑定社区id
+        Long communityId = this.getLoginUserInfo().getCommunityId();
+        return communityService.unitHouseDetailAdmin(houseId,communityId);
+    }
+
+    @ApiOperation(value = "查询小区列表", response = ComMngVillageVO.class)
+    @GetMapping("/village/list")
+    public R villageList() {
+        // 获取登陆用户绑定社区id
+        Long communityId = this.getLoginUserInfo().getCommunityId();
+        return communityService.buildingVillageListAdmin(communityId);
+    }
+
+    @ApiOperation(value = "添加单元")
+    @PostMapping("/add/unit")
+    @OperLog(operModul = "房屋信息管理-添加单元", operType = 1, businessType = "添加单元")
+    public R addUnit(@RequestBody AddBuildingUnitDto addBuildingUnitDto) {
+        // 获取登陆用户绑定社区id
+        Long communityId = this.getLoginUserInfo().getCommunityId();
+        addBuildingUnitDto.setCommunityId(communityId);
+
+        if(addBuildingUnitDto.getId() == null || addBuildingUnitDto.getUnitNo() == null){
+            return R.fail("参数有误");
+        }
+        return communityService.addBuildingUnitAdmin(addBuildingUnitDto);
+    }
+
+    @ApiOperation(value = "修改单元")
+    @PostMapping("/edit/unit")
+    @OperLog(operModul = "房屋信息管理-修改单元", operType = 2, businessType = "修改单元")
+    public R editUnit(@RequestBody EditBuildingUnitDto editBuildingUnitDto) {
+        // 获取登陆用户绑定社区id
+        Long communityId = this.getLoginUserInfo().getCommunityId();
+        editBuildingUnitDto.setCommunityId(communityId);
+
+        if(editBuildingUnitDto.getId() == null || editBuildingUnitDto.getOldUnitNo() == null || editBuildingUnitDto.getNewUnitNo() == null){
+            return R.fail("参数有误");
+        }
+        return communityService.editBuildingUnitAdmin(editBuildingUnitDto);
+    }
+
+    @ApiOperation(value = "添加户室")
+    @PostMapping("/add/house")
+    public R addHouse(@RequestBody AddBuildingHouseDto addBuildingHouseDto) {
+        // 获取登陆用户绑定社区id
+        Long communityId = this.getLoginUserInfo().getCommunityId();
+        addBuildingHouseDto.setCommunityId(communityId);
+
+        if(addBuildingHouseDto.getId() == null || addBuildingHouseDto.getHouseNo() == null || addBuildingHouseDto.getUnitNo() == null){
+            return R.fail("参数有误");
+        }
+        return communityService.addBuildingHouseAdmin(addBuildingHouseDto);
+    }
+
+    @ApiOperation(value = "修改户室")
+    @PostMapping("/edit/house")
+    public R editHouse(@RequestBody EditBuildingHouseDto editBuildingHouseDto) {
+        // 获取登陆用户绑定社区id
+        Long communityId = this.getLoginUserInfo().getCommunityId();
+        editBuildingHouseDto.setCommunityId(communityId);
+
+        if(editBuildingHouseDto.getHouseId() == null || editBuildingHouseDto.getHouseNo() == null){
+            return R.fail("参数有误");
+        }
+        return communityService.editBuildingHouseAdmin(editBuildingHouseDto);
+    }
+
+    @ApiOperation(value = "删除户室下人员")
+    @PostMapping("/delete/population")
+    public R deletePopulation(@RequestBody DeleteBuildingHousePopulationDto housePopulationDto) {
+        // 获取登陆用户绑定社区id
+        Long communityId = this.getLoginUserInfo().getCommunityId();
+        housePopulationDto.setCommunityId(communityId);
+
+        if(housePopulationDto.getHouseId() == null || housePopulationDto.getPopulationId() == null || housePopulationDto.getType() == null){
+            return R.fail("参数有误");
+        }
+        return communityService.deleteBuildingHousePopulationAdmin(housePopulationDto);
+    }
+
+    @ApiOperation(value = "下载导入楼栋模板")
+    @GetMapping("/export/template")
+    public R exportTemplate() {
+        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 = headDrugDataFilling();
+//                    List<List<Object>> dataList = new ArrayList<>();
+
+                    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 + "楼栋导入模板.xlsx");
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    /**
+     * 楼栋导入模板拼接
+     * @return  导入模板
+     */
+    private List<List<String>> headDrugDataFilling() {
+        List<List<String>> list = new ArrayList<List<String>>();
+        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.add(head2);
+        list.add(head3);
+        list.add(head4);
+        list.add(head5);
+        return list;
+    }
+
+    @ApiOperation(value = "下载导入失败楼栋数据")
+    @PostMapping("/download/error")
+    public R downloadError(@RequestParam(value = "key") String key) {
+        List<ComMngPopulationImportErrorVO> 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, ComMngPopulationImportErrorVO.class);
+        }
+        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, ComMngPopulationImportErrorVO.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("删除楼栋")
+    @GetMapping("/delete")
+    @OperLog(operModul = "房屋信息管理-删除", operType = 3, businessType = "删除")
+    public R delete(@RequestParam("id")Long id){
+        return communityService.buildingDelete(id);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ClusterApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ClusterApi.java
new file mode 100644
index 0000000..6502b01
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ClusterApi.java
@@ -0,0 +1,291 @@
+package com.panzhihua.community_backstage.api;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.alibaba.fastjson.JSONArray;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.listen.ComClusterMemberExcelListen;
+import com.panzhihua.common.model.dtos.community.cluster.*;
+import com.panzhihua.common.model.dtos.community.cluster.admin.*;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.cluster.*;
+import com.panzhihua.common.model.vos.community.cluster.admin.*;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.SFTPUtil;
+import com.panzhihua.community_backstage.excel.CustomSheetWriteHandler;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+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.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * title: 群团组织接口类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 群团组织接口类
+ *
+ * @author lyq
+ * @date 2021/9/23 16:12
+ */
+@Slf4j
+@Api(tags = {"群团组织"})
+@RestController
+@RequestMapping("/cluster/")
+public class ClusterApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+    @Value("${ftp.url}")
+    private String url;
+    @Value("${excel.userurl}")
+    private String excelUrl;
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+
+    @ApiOperation(value = "群团组织列表",response = PageClusterVo.class)
+    @GetMapping("list")
+    public R listClusterApplets() {
+        return communityService.listClusterApplets(this.getCommunityId());
+    }
+
+    @ApiOperation(value = "分页查询群团组织列表",response = PageClusterAdminVo.class)
+    @PostMapping("/page")
+    public R pageClusterAdmin(@RequestBody PageClusterAdminDto pageClusterAdminDto) {
+        pageClusterAdminDto.setCommunityId(this.getCommunityId());
+        return communityService.pageClusterAdmin(pageClusterAdminDto);
+    }
+
+    @ApiOperation(value = "新增群团组织")
+    @PostMapping("/add")
+    public R addClusterAdmin(@RequestBody AddClusterAdminDto addClusterAdminDto) {
+        addClusterAdminDto.setCommunityId(this.getCommunityId());
+        return communityService.addClusterAdmin(addClusterAdminDto);
+    }
+
+    @ApiOperation(value = "编辑群团组织")
+    @PostMapping("/edit")
+    public R editClusterAdmin(@RequestBody EditClusterAdminDto editClusterAdminDto) {
+        editClusterAdminDto.setCommunityId(this.getCommunityId());
+        return communityService.editClusterAdmin(editClusterAdminDto);
+    }
+
+    @ApiOperation(value = "删除群团组织")
+    @GetMapping("/delete")
+    public R deleteClusterAdmin(@RequestParam("id") Long id) {
+        return communityService.deleteClusterAdmin(id);
+    }
+
+    @ApiOperation(value = "群团组织详情",response = ClusterDetailAdminVo.class)
+    @GetMapping("/detail")
+    public R detailClusterAdmin(@RequestParam("id") Long id) {
+        return communityService.detailClusterAdmin(id);
+    }
+
+    @ApiOperation(value = "分页查询群团组织成员列表",response = PageClusterMemberAdminVo.class)
+    @PostMapping("/member/page")
+    public R pageClusterMemberAdmin(@RequestBody PageClusterMemberAdminDto pageClusterMemberAdminDto) {
+        pageClusterMemberAdminDto.setCommunityId(this.getCommunityId());
+        return communityService.pageClusterMemberAdmin(pageClusterMemberAdminDto);
+    }
+
+    @ApiOperation(value = "新增群团组织成员")
+    @PostMapping("/member/add")
+    public R addClusterMemberAdmin(@RequestBody AddClusterMemberAdminDto addClusterMemberAdminDto) {
+        addClusterMemberAdminDto.setCommunityId(this.getCommunityId());
+        return communityService.addClusterMemberAdmin(addClusterMemberAdminDto);
+    }
+
+    @ApiOperation(value = "编辑群团组织成员")
+    @PostMapping("/member/edit")
+    public R editClusterMemberAdmin(@RequestBody EditClusterMemberAdminDto editClusterMemberAdminDto) {
+        editClusterMemberAdminDto.setCommunityId(this.getCommunityId());
+        return communityService.editClusterMemberAdmin(editClusterMemberAdminDto);
+    }
+
+    @ApiOperation(value = "删除群团组织成员")
+    @GetMapping("/member/delete")
+    public R deleteClusterMemberAdmin(@RequestParam("id") Long id) {
+        return communityService.deleteClusterMemberAdmin(id);
+    }
+
+    @ApiOperation(value = "群团组织成员详情",response = PageClusterMemberAdminVo.class)
+    @GetMapping("/member/detail")
+    public R detailClusterMemberAdmin(@RequestParam("id") Long id) {
+        return communityService.detailClusterMemberAdmin(id);
+    }
+
+    @ApiOperation(value = "群团组织民族列表",response = PageClusterVo.class)
+    @GetMapping("/member/nation/list")
+    public R memberNationListAdmin() {
+        return communityService.memberNationListAdmin();
+    }
+
+    @ApiOperation(value = "群团组织成员导入模板下载")
+    @GetMapping("/member/import/download")
+    public R clusterMemberDownload(){
+        return R.ok(this.excelUrl + "群团组织成员导入模板.xlsx");
+    }
+
+    @ApiOperation(value = "群团组织成员导入")
+    @PostMapping(value = "/member/import", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R importClusterMember(@RequestParam MultipartFile file, HttpServletRequest request) {
+        // 获取文件名
+        String fileName = file.getOriginalFilename();
+        log.info("传入文件名字【{}】", fileName);
+        InputStream inputStream = null;
+        try {
+            inputStream = file.getInputStream();
+            ComClusterMemberExcelListen clusterMemberExcelListen = new ComClusterMemberExcelListen(
+                    communityService, this.getCommunityId(), this.getUserId(), stringRedisTemplate);
+            EasyExcel.read(inputStream, null, clusterMemberExcelListen).sheet().doRead();
+        } catch (IOException e) {
+            log.error("导入模板失败【{}】", e.getMessage());
+            e.printStackTrace();
+        }
+        return R.ok();
+    }
+
+    @ApiOperation(value = "下载导入失败群团组织成员数据")
+    @PostMapping("/member/download/error")
+    public R downloadErrorClusterMember(@RequestParam(value = "key") String key) {
+        List<ComClusterMemberExcelErrorVO> 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, ComClusterMemberExcelErrorVO.class);
+        }
+        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, ComClusterMemberExcelErrorVO.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("/member/export")
+    public R exportClusterMember(@RequestBody PageClusterMemberAdminDto pageClusterMemberAdminDto) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        pageClusterMemberAdminDto.setCommunityId(loginUserInfo.getCommunityId());
+        String name = "群团组织成员导出数据.xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+        R r = communityService.exportClusterMember(pageClusterMemberAdminDto);
+        if (R.isOk(r)) {
+            List<ComClusterMemberExcelExportAdminVO> resultList = JSONArray.parseArray(
+                    JSONArray.toJSONString(r.getData()), ComClusterMemberExcelExportAdminVO.class);
+            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, ComClusterMemberExcelExportAdminVO.class)
+                                .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                                .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet("群团组织成员导出数据").build();
+                        excelWriter.write(resultList, 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();
+            }
+        }
+        return r;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActAcidCheckRecordApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActAcidCheckRecordApi.java
new file mode 100644
index 0000000..d8be243
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActAcidCheckRecordApi.java
@@ -0,0 +1,91 @@
+package com.panzhihua.community_backstage.api;
+
+
+import cn.hutool.core.lang.Snowflake;
+import cn.hutool.core.util.IdUtil;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.interfaces.OperLog;
+import com.panzhihua.common.model.dtos.community.acid.ComActAcidCheckRecordDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidCheckRecordVO;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * 排查跟进表(ComActAcidCheckRecord)表控制层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 排查跟进表相关功能
+ *
+ * @author zzj
+ * @since 2022-04-24 16:14:27
+ */
+@Api(tags = {"排查跟进"})
+@RestController
+@RequestMapping("comActAcidCheckRecord")
+public class ComActAcidCheckRecordApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 列表查询
+     *
+     * @param comActAcidCheckRecordDTO 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "分页查询",response = ComActAcidCheckRecordVO.class)
+    //@OperLog(operModul = "分页查询排查数据",operType = 1)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody ComActAcidCheckRecordDTO comActAcidCheckRecordDTO) {
+        return this.communityService.selectAllComActAcidCheckRecord(comActAcidCheckRecordDTO);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    //@OperLog(operModul = "查询单条排查数据",operType = 1)
+    @ApiOperation(value = "通过主键查询单条数据",response = ComActAcidCheckRecordVO.class)
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return this.communityService.selectOneComActAcidCheckRecord(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActAcidCheckRecordVO 实体对象
+     * @return 新增结果
+     */
+    //@OperLog(operModul = "新增排查数据",operType = 1)
+    @ApiOperation(value = "新增数据")
+    @PostMapping
+    public R insert(@RequestBody ComActAcidCheckRecordVO comActAcidCheckRecordVO) {
+        comActAcidCheckRecordVO.setUsername(this.getLoginUserInfo().getName());
+        return this.communityService.insertComActAcidCheckRecord(comActAcidCheckRecordVO);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActAcidCheckRecordVO 实体对象
+     * @return 修改结果
+     */
+    //@OperLog(operModul = "修改排查数据",operType = 1,businessType = Constants.UPDATE)
+    @ApiOperation(value = "修改数据")
+    @PostMapping("/update")
+    public R update(@RequestBody ComActAcidCheckRecordVO comActAcidCheckRecordVO) {
+        return this.communityService.updateComActAcidCheckRecord(comActAcidCheckRecordVO);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActAcidDangerMemberApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActAcidDangerMemberApi.java
new file mode 100644
index 0000000..11353e0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActAcidDangerMemberApi.java
@@ -0,0 +1,51 @@
+package com.panzhihua.community_backstage.api;
+
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+
+import com.panzhihua.common.interfaces.OperLog;
+import com.panzhihua.common.model.dtos.community.acid.ComActAcidDangerMemberDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+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.RestController;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.acid.PageDangerMemberDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidDangerMemberVO;
+import com.panzhihua.common.service.community.CommunityService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @title: ComActAcidDangerMemberApi
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description:
+ * @author: hans
+ * @date: 2022/04/27 15:54
+ */
+@Slf4j
+@Api(tags = {"风险人员"})
+@RestController
+@RequestMapping("comActAcidDangerMember")
+public class ComActAcidDangerMemberApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    //@OperLog(operModul = "后台查询风险人员",operType = 1)
+    @ApiOperation(value = "后台分页查询风险人员", response = ComActAcidDangerMemberVO.class)
+    @PostMapping("/queryAll")
+    public R pageDangerMember(@RequestBody @Valid ComActAcidDangerMemberDTO pageDangerMemberDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        pageDangerMemberDTO.setRelationName(loginUserInfo.retrieveRelationName());
+        return communityService.pageDangerMemberAdmin(pageDangerMemberDTO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActAcidMemberApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActAcidMemberApi.java
new file mode 100644
index 0000000..9dfa4c4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActAcidMemberApi.java
@@ -0,0 +1,106 @@
+package com.panzhihua.community_backstage.api;
+
+
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.interfaces.OperLog;
+import com.panzhihua.common.model.dtos.community.acid.ComActAcidMemberDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidMemberVO;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * 防疫工作人员表(ComActAcidMember)表控制层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 防疫工作人员表相关功能
+ *
+ * @author zzj
+ * @since 2022-04-24 16:12:08
+ */
+@Slf4j
+@Api(tags = {"防疫工作人员"})
+@RestController
+@RequestMapping("comActAcidMember")
+public class ComActAcidMemberApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    //@OperLog(operModul = "分页查询防疫工作人员列表",operType = 1)
+    @ApiOperation(value = "分页查询列表",response = ComActAcidMemberVO.class)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody ComActAcidMemberDTO commonPage) {
+        commonPage.setRelationName(this.getLoginUserInfo().retrieveRelationName());
+        return this.communityService.selectAllComActAcidMember(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    //@OperLog(operModul = "查询单条防疫工作人员信息",operType = 1)
+    @ApiOperation("通过主键查询单条数据")
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return communityService.selectOneComActAcidMember(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActAcidMemberVO 实体对象
+     * @return 新增结果
+     */
+    //@OperLog(operModul = "新增防疫工作人员记录",operType = 1)
+    @ApiOperation("新增数据")
+    @PostMapping
+    public R insert(@RequestBody ComActAcidMemberVO comActAcidMemberVO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        comActAcidMemberVO.setRelationName(loginUserInfo.retrieveRelationName());
+        return communityService.insertComActAcidMember(comActAcidMemberVO);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActAcidMemberVO 实体对象
+     * @return 修改结果
+     */
+    //@OperLog(operModul = "修改防疫工作人员信息",operType = 1,businessType = Constants.UPDATE)
+    @ApiOperation("修改数据")
+    @PostMapping("/update")
+    public R update(@RequestBody ComActAcidMemberVO comActAcidMemberVO) {
+        return communityService.updateComActAcidMember(comActAcidMemberVO);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    //@OperLog(operModul = "删除防疫工作人员信息",operType = 1)
+    @ApiOperation("删除数据")
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return communityService.deleteComActAcidMember(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActAcidRecordApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActAcidRecordApi.java
new file mode 100644
index 0000000..e961726
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActAcidRecordApi.java
@@ -0,0 +1,428 @@
+package com.panzhihua.community_backstage.api;
+
+
+import cn.hutool.core.util.ArrayUtil;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.alibaba.fastjson.JSONArray;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.interfaces.OperLog;
+import com.panzhihua.common.model.dtos.community.acid.BatchCheckAcidRecordDTO;
+import com.panzhihua.common.model.dtos.community.acid.ComActAcidRecordDTO;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.acid.ComAcidStaticVO;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidRecordExcelReturn;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidRecordExcelVO;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidRecordVO;
+import com.panzhihua.common.model.vos.community.reserve.FiveCount;
+import com.panzhihua.common.model.vos.community.warehouse.ComActWarehouseApplyExcelVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.FileUtil;
+import com.panzhihua.common.utlis.SFTPUtil;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.community_backstage.excel.CustomSheetWriteHandler;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.io.FileUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+
+import static org.apache.commons.lang3.ObjectUtils.isEmpty;
+
+/**
+ * (ComActAcidRecord)表控制层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 相关功能
+ *
+ * @author zzj
+ * @since 2022-04-12 15:29:59
+ */
+@Slf4j
+@Api(tags = {"防疫登记"})
+@RestController
+@RequestMapping("comActAcidRecord")
+public class ComActAcidRecordApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+    @Value("${excel.userurl}")
+    private String excelUrl;
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param comActAcidRecordDTO 查询实体
+     * @return 所有数据
+     */
+    @OperLog(operModul = "查询防疫登记信息列表",operType = 1)
+    @ApiOperation(value = "分页查询",response = ComActAcidRecordVO.class)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody ComActAcidRecordDTO comActAcidRecordDTO) {
+        if(StringUtils.isEmpty(comActAcidRecordDTO.getLocalCity())){
+            comActAcidRecordDTO.setLocalCity(this.getLoginUserInfo().getName());
+        }
+        else {
+            String[] area={"东区","西区","仁和区","米易县","盐边县","钒钛新区"};
+            if(!ArrayUtil.contains(area,comActAcidRecordDTO.getLocalCity())){
+                if(!comActAcidRecordDTO.getLocalCity().contains(",")&&this.getLoginUserInfo().getType()==9){
+                    comActAcidRecordDTO.setLocalCity(this.getLoginUserInfo().getName()+","+comActAcidRecordDTO.getLocalCity());
+                }
+            }
+
+        }
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        comActAcidRecordDTO.setLoginAccount(loginUserInfo.getAccount());
+        return this.communityService.selectAllComActAcidRecord(comActAcidRecordDTO);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @OperLog(operModul = "查询单条防疫信息",operType = 1)
+    @ApiOperation(value = "通过主键查询单条数据",response = ComActAcidRecordVO.class)
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return this.communityService.selectOneComActAcidRecord(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActAcidRecordVO 实体对象
+     * @return 新增结果
+     */
+    @OperLog(operModul = "新增防疫信息数据",operType = 1)
+    @ApiOperation(value = "新增数据")
+    @PostMapping
+    public R insert(@RequestBody ComActAcidRecordVO comActAcidRecordVO) {
+        return this.communityService.insertComActAcidRecord(comActAcidRecordVO);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActAcidRecordVO 实体对象
+     * @return 修改结果
+     */
+    @OperLog(operModul = "修改防疫信息数据",operType = 1,businessType = Constants.UPDATE)
+    @ApiOperation(value = "修改数据")
+    @PostMapping("/update")
+    public R update(@RequestBody ComActAcidRecordVO comActAcidRecordVO) {
+        comActAcidRecordVO.setUserId(this.getUserId());
+        return this.communityService.updateComActAcidRecord(comActAcidRecordVO);
+    }
+
+
+    @OperLog(operModul = "批量核对防疫信息数据", operType = 1)
+    @ApiOperation(value = "批量核对防疫信息数据")
+    @PostMapping("/batchCheck")
+    public R batchCheck(@RequestBody @Valid BatchCheckAcidRecordDTO batchCheckAcidRecordDTO) {
+        return this.communityService.batchCheck(batchCheckAcidRecordDTO);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @OperLog(operModul = "删除防疫信息数据",operType = 1)
+    @ApiOperation(value = "删除数据")
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return this.communityService.deleteComActAcidRecord(id);
+    }
+
+    @OperLog(operModul = "导出防疫信息",operType = 1)
+    @ApiOperation(value = "导出")
+    @PostMapping("/export")
+    public R export(@RequestBody ComActAcidRecordDTO comActAcidRecordDTO) {
+        String name = "防疫登记信息导出"+System.currentTimeMillis()+".xlsx";
+        String property = System.getProperty("user.dir");
+        String sourceFile =property+File.separator+"acid"+File.separator+System.currentTimeMillis()+File.separator;
+        String zipFile=property+File.separator+"zip"+File.separator;
+        String ftpUrl = "/mnt/data/web/excel/";
+        // 用户搜索了就下载搜索的用户否则下载所有用户
+        if(StringUtils.isEmpty(comActAcidRecordDTO.getLocalCity())){
+            comActAcidRecordDTO.setLocalCity(this.getLoginUserInfo().getName());
+        }
+        R r = communityService.exportComActAcidRecord(comActAcidRecordDTO);
+        if (R.isOk(r)) {
+            File directory=new File(sourceFile);
+            if(!directory.exists()){
+                directory.mkdirs();
+            }
+            List<ComActAcidRecordExcelVO> excelVOS=new ArrayList<>();
+            List<ComActAcidRecordExcelReturn> list= JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComActAcidRecordExcelReturn.class);
+            if(!CollectionUtils.isEmpty(list)){
+                list.forEach(li->{
+                    ComActAcidRecordExcelVO comActAcidRecordExcelVO=new ComActAcidRecordExcelVO();
+                    BeanUtils.copyProperties(li,comActAcidRecordExcelVO);
+                    if(StringUtils.isNotEmpty(li.getTravelImage())){
+                        try {
+                            File image=new File(sourceFile+"/"+li.getName()+"行程码.jpg");
+                            FileUtils.copyURLToFile(new URL(li.getTravelImage()),image);
+                            //comActAcidRecordExcelVO.setAcidImage(new URL(li.getAcidImage()));
+                            //comActAcidRecordExcelVO.setTravelImage(new URL(li.getTravelImage()));
+                            //comActAcidRecordExcelVO.setVaccinationImage(new URL(li.getVaccinationImage()));
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                    }
+                    if(StringUtils.isNotEmpty(li.getColorImage())){
+                        try {
+                            File image=new File(sourceFile+"/"+li.getName()+"健康码.jpg");
+                            FileUtils.copyURLToFile(new URL(li.getColorImage()),image);
+                            //comActAcidRecordExcelVO.setAcidImage(new URL(li.getAcidImage()));
+                            //comActAcidRecordExcelVO.setColorImage(new URL(li.getColorImage()));
+                            //comActAcidRecordExcelVO.setVaccinationImage(new URL(li.getVaccinationImage()));
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                    }
+                    if(StringUtils.isNotEmpty(li.getAcidImage())&&li.getLocalCity().contains("仁和区")){
+                        try {
+                            File image=new File(sourceFile+"/"+li.getName()+"核酸截图.jpg");
+                            FileUtils.copyURLToFile(new URL(li.getAcidImage()),image);
+                            //comActAcidRecordExcelVO.setAcidImage(new URL(li.getAcidImage()));
+                            //comActAcidRecordExcelVO.setColorImage(new URL(li.getColorImage()));
+                            //comActAcidRecordExcelVO.setVaccinationImage(new URL(li.getVaccinationImage()));
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                    }
+                    if(li.getCheckStatus()==0){
+                        comActAcidRecordExcelVO.setCheckStatus("否");
+                    }
+                    else{
+                        comActAcidRecordExcelVO.setCheckStatus("是");
+                    }
+                    excelVOS.add(comActAcidRecordExcelVO);
+                });
+            }
+            try {
+                SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+                sftp.login();
+                boolean existDir = sftp.isExistDir(ftpUrl + name);
+                if (!existDir) {
+                    String fileName = sourceFile + File.separator + name;
+                    // 这里 需要指定写用哪个class去写
+                    ExcelWriter excelWriter = null;
+                    InputStream inputStream = null;
+                    try {
+                        excelWriter = EasyExcel.write(fileName, ComActAcidRecordExcelVO.class)
+                                .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                                .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet( "导出").build();
+                        excelWriter.write(excelVOS, writeSheet);
+                        excelWriter.finish();
+                    } finally {
+                        // 千万别忘记finish 会帮忙关闭流
+                        if (inputStream != null) {
+                            inputStream.close();
+                        }
+                        if (excelWriter != null) {
+                            excelWriter.finish();
+                        }
+                    }
+                }
+                FileUtil.compressToZip(sourceFile,zipFile,"防疫登记信息.zip");
+                String currentDateString = String.valueOf(System.currentTimeMillis());
+                String zipName = "防疫登记信息_"+ currentDateString+".zip";
+                InputStream input=new FileInputStream(zipFile+"防疫登记信息.zip");
+                sftp.uploadMore(ftpUrl, zipName , input);
+                sftp.logout();
+                input.close();
+                return R.ok(excelUrl + zipName);
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error("文件传输失败【{}】", e.getMessage());
+                return R.fail();
+            }
+        }
+        return r;
+    }
+
+    @ApiOperation(value = "导出不带截图")
+    @PostMapping("/exportNoImage")
+    public R exportNoImage(@RequestBody ComActAcidRecordDTO comActAcidRecordDTO) {
+        String name = "防疫登记信息导出"+System.currentTimeMillis()+".xlsx";
+        String property = System.getProperty("user.dir");
+        String sourceFile =property+File.separator+"acid"+File.separator+System.currentTimeMillis()+File.separator;
+        String zipFile=property+File.separator+"zip"+File.separator;
+        String ftpUrl = "/mnt/data/web/excel/";
+        // 用户搜索了就下载搜索的用户否则下载所有用户
+        if(StringUtils.isEmpty(comActAcidRecordDTO.getLocalCity())){
+            comActAcidRecordDTO.setLocalCity(this.getLoginUserInfo().getName());
+        }
+        R r = communityService.exportComActAcidRecord(comActAcidRecordDTO);
+        if (R.isOk(r)) {
+            File directory=new File(sourceFile);
+            if(!directory.exists()){
+                directory.mkdirs();
+            }
+            List<ComActAcidRecordExcelVO> excelVOS=new ArrayList<>();
+            List<ComActAcidRecordExcelReturn> list= JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComActAcidRecordExcelReturn.class);
+            if(!CollectionUtils.isEmpty(list)){
+                list.forEach(li->{
+                    ComActAcidRecordExcelVO comActAcidRecordExcelVO=new ComActAcidRecordExcelVO();
+                    BeanUtils.copyProperties(li,comActAcidRecordExcelVO);
+//                    if(StringUtils.isNotEmpty(li.getTravelImage())){
+//                        try {
+//                            File image=new File(sourceFile+"/"+li.getName()+"行程码.jpg");
+//                            FileUtils.copyURLToFile(new URL(li.getTravelImage()),image);
+//                            //comActAcidRecordExcelVO.setAcidImage(new URL(li.getAcidImage()));
+//                            //comActAcidRecordExcelVO.setTravelImage(new URL(li.getTravelImage()));
+//                            //comActAcidRecordExcelVO.setVaccinationImage(new URL(li.getVaccinationImage()));
+//                        } catch (Exception e) {
+//                            e.printStackTrace();
+//                        }
+//                    }
+//                    if(StringUtils.isNotEmpty(li.getColorImage())){
+//                        try {
+//                            File image=new File(sourceFile+"/"+li.getName()+"健康码.jpg");
+//                            FileUtils.copyURLToFile(new URL(li.getColorImage()),image);
+//                            //comActAcidRecordExcelVO.setAcidImage(new URL(li.getAcidImage()));
+//                            //comActAcidRecordExcelVO.setColorImage(new URL(li.getColorImage()));
+//                            //comActAcidRecordExcelVO.setVaccinationImage(new URL(li.getVaccinationImage()));
+//                        } catch (Exception e) {
+//                            e.printStackTrace();
+//                        }
+//                    }
+//                    if(StringUtils.isNotEmpty(li.getAcidImage())&&li.getLocalCity().contains("仁和区")){
+//                        try {
+//                            File image=new File(sourceFile+"/"+li.getName()+"核酸截图.jpg");
+//                            FileUtils.copyURLToFile(new URL(li.getAcidImage()),image);
+//                            //comActAcidRecordExcelVO.setAcidImage(new URL(li.getAcidImage()));
+//                            //comActAcidRecordExcelVO.setColorImage(new URL(li.getColorImage()));
+//                            //comActAcidRecordExcelVO.setVaccinationImage(new URL(li.getVaccinationImage()));
+//                        } catch (Exception e) {
+//                            e.printStackTrace();
+//                        }
+//                    }
+                    if(li.getCheckStatus()==0){
+                        comActAcidRecordExcelVO.setCheckStatus("否");
+                    }
+                    else{
+                        comActAcidRecordExcelVO.setCheckStatus("是");
+                    }
+                    excelVOS.add(comActAcidRecordExcelVO);
+                });
+            }
+            try {
+                SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+                sftp.login();
+                boolean existDir = sftp.isExistDir(ftpUrl + name);
+                if (!existDir) {
+                    String fileName = sourceFile + File.separator + name;
+                    // 这里 需要指定写用哪个class去写
+                    ExcelWriter excelWriter = null;
+                    InputStream inputStream = null;
+                    try {
+                        excelWriter = EasyExcel.write(fileName, ComActAcidRecordExcelVO.class)
+                                .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                                .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet( "导出").build();
+                        excelWriter.write(excelVOS, writeSheet);
+                        excelWriter.finish();
+                    } finally {
+                        // 千万别忘记finish 会帮忙关闭流
+                        if (inputStream != null) {
+                            inputStream.close();
+                        }
+                        if (excelWriter != null) {
+                            excelWriter.finish();
+                        }
+                    }
+                }
+                FileUtil.compressToZip(sourceFile,zipFile,"防疫登记信息.zip");
+                String currentDateString = String.valueOf(System.currentTimeMillis());
+                String zipName = "防疫登记信息_"+ currentDateString+".zip";
+                InputStream input=new FileInputStream(zipFile+"防疫登记信息.zip");
+                sftp.uploadMore(ftpUrl, zipName , input);
+                sftp.logout();
+                input.close();
+                return R.ok(excelUrl + zipName);
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error("文件传输失败【{}】", e.getMessage());
+                return R.fail();
+            }
+        }
+        return r;
+    }
+
+
+    /**
+     * 5项常规统计
+     * @return
+     */
+    @OperLog(operModul = "防疫信息五项常规统计",operType = 1)
+    @ApiOperation(value = "5项常规统计",response = FiveCount.class)
+    @GetMapping("fiveCount")
+    public R fiveCount(@RequestParam("localCity")String localCity){
+        return this.communityService.comActAcidRecordFiveCount(localCity);
+    }
+
+    /**
+     * 5项常规统计
+     * @return
+     */
+    @OperLog(operModul = "防疫信息7项常规统计",operType = 1)
+    @ApiOperation(value = "7项常规统计",response = FiveCount.class)
+    @GetMapping("fiveCountPlus")
+    public R fiveCountPlus(@RequestParam("date")String date,@RequestParam(value = "localCity",required = false)String localCity){
+        if(StringUtils.isNotEmpty(localCity)){
+            return this.communityService.comActAcidRecordFiveCountPlus(date,localCity,this.getLoginUserInfo().getAccount());
+        }
+        return this.communityService.comActAcidRecordFiveCountPlus(date,this.getLoginUserInfo().getName(),this.getLoginUserInfo().getAccount());
+    }
+
+
+    @OperLog(operModul = "防疫信息报表统计",operType = 1)
+    @ApiOperation(value = "报表统计",response = ComAcidStaticVO.class)
+    @GetMapping("/statics")
+    public R statics(@RequestParam("date")String date){
+        return this.communityService.comActAcidRecordStatics(date);
+    }
+
+    @GetMapping("/test")
+    public R test(){
+        return this.communityService.test();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActActivityCodeApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActActivityCodeApi.java
new file mode 100644
index 0000000..3928435
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActActivityCodeApi.java
@@ -0,0 +1,56 @@
+package com.panzhihua.community_backstage.api;
+
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.QRActivityCodeVO;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+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.RestController;
+
+import javax.annotation.Resource;
+
+/**
+ * 签到二维码表(ComActActivityCode)表控制层
+ *
+ * @author makejava
+ * @since 2021-10-15 15:23:10
+ */
+@Slf4j
+@Api(tags = {"活动二维码"})
+@RestController
+@RequestMapping("comActActivityCode")
+public class ComActActivityCodeApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 查看二维码
+     * @param qrCodeVO
+     * @return
+     */
+    @ApiOperation("查看二维码")
+    @PostMapping("/getQRCode")
+    public R getQRCode(@RequestBody QRActivityCodeVO qrCodeVO){
+        return this.communityService.getQRCode(qrCodeVO);
+    }
+
+    /**
+     * 重置二维码
+     * @param qrCodeVO
+     * @return
+     */
+    @ApiOperation("重置二维码")
+    @PostMapping("/resetQRCode")
+    public R resetQRCode(@RequestBody QRActivityCodeVO qrCodeVO){
+        return this.communityService.resetQRCode(qrCodeVO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActAnnouncementApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActAnnouncementApi.java
new file mode 100644
index 0000000..c980643
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActAnnouncementApi.java
@@ -0,0 +1,133 @@
+package com.panzhihua.community_backstage.api;
+
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActAnnouncementVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.user.UserService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * (ComActAnnouncement)表控制层
+ *
+ * @author makejava
+ * @since 2021-11-01 13:45:55
+ */
+@Slf4j
+@Api(tags = {"通知公告"})
+@RestController
+@RequestMapping("comActAnnouncement")
+public class ComActAnnouncementApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private UserService userService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "分页查询所有数据",response = ComActAnnouncementVO.class)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        commonPage.setCommunityId(this.getCommunityId());
+        return this.communityService.comActAnnouncementSelectAll(commonPage);
+    }
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "分页查询所有数据(物业公告)",response = ComActAnnouncementVO.class)
+    @PostMapping("queryAllProperty")
+    public R selectAllProperty(@RequestBody CommonPage commonPage) {
+        //commonPage.setCommunityId(this.getCommunityId());
+        commonPage.setPropertyId(userService.detailUser(this.getLoginUserInfo().getUserId()).getData().getPropertyId());
+        return this.communityService.comActAnnouncementSelectAll(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation("通过主键查询单条数据")
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return this.communityService.comActAnnouncementSelectOne(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActAnnouncementVO 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation("新增数据")
+    @PostMapping
+    public R insert(@RequestBody ComActAnnouncementVO comActAnnouncementVO) {
+        comActAnnouncementVO.setCreateTime(new Date());
+        comActAnnouncementVO.setCommunityId(this.getCommunityId());
+        comActAnnouncementVO.setUserId(this.getUserId());
+       return this.communityService.comActAnnouncementInsert(comActAnnouncementVO);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActAnnouncementVO 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation("新增物业公告")
+    @PostMapping("/addPropertyAnnouncement")
+    public R insertProperty(@RequestBody ComActAnnouncementVO comActAnnouncementVO) {
+        comActAnnouncementVO.setCreateTime(new Date());
+        //comActAnnouncementVO.setCommunityId(this.getCommunityId());
+        comActAnnouncementVO.setUserId(this.getUserId());
+        comActAnnouncementVO.setPropertyId(userService.detailUser(this.getLoginUserInfo().getUserId()).getData().getPropertyId());
+        return this.communityService.comActAnnouncementInsert(comActAnnouncementVO);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActAnnouncementVO 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation("修改数据")
+    @PostMapping("/update")
+    public R update(@RequestBody ComActAnnouncementVO comActAnnouncementVO) {
+        return this.communityService.comActAnnouncementUpdate(comActAnnouncementVO);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @ApiOperation("删除数据")
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return this.communityService.comActAnnouncementDelete(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActColumnApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActColumnApi.java
new file mode 100644
index 0000000..fbc3b2e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActColumnApi.java
@@ -0,0 +1,134 @@
+package com.panzhihua.community_backstage.api;
+
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActColumnVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.StringUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * 分类列表(ComActColumn)表控制层
+ *
+ * @author makejava
+ * @since 2021-10-20 17:28:14
+ */
+@Slf4j
+@Api(tags = {"分类管理"})
+@RestController
+@RequestMapping("comActColumn")
+public class ComActColumnApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "分页查询所有数据",response = ComActColumnVO.class)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        if(this.getLoginUserInfo().getStreetId()!=null){
+            commonPage.setStreetId(this.getLoginUserInfo().getStreetId());
+        }
+        else {
+            commonPage.setCommunityId(this.getCommunityId());
+        }
+        return this.communityService.comActColumnSelectAll(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation("通过主键查询单条数据")
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return this.communityService.comActColumnSelectOne(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActColumnVO 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation("新增数据")
+    @PostMapping
+    public R insert(@RequestBody ComActColumnVO comActColumnVO) {
+        if(this.getLoginUserInfo().getStreetId()!=null){
+            comActColumnVO.setStreetId(this.getLoginUserInfo().getStreetId());
+        }
+        else {
+            comActColumnVO.setCommunityId(this.getCommunityId());
+        }
+        if(comActColumnVO.getStatus()==null){
+            comActColumnVO.setStatus(1);
+        }
+        comActColumnVO.setCreateTime(new Date());
+        if(StringUtils.isNotEmpty(this.getLoginUserInfo().getName())){
+            comActColumnVO.setCreateBy(this.getLoginUserInfo().getName());
+        }
+        return communityService.comActColumnInsert(comActColumnVO);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActColumnVO 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation("修改数据")
+    @PostMapping("/update")
+    public R update(@RequestBody ComActColumnVO comActColumnVO) {
+        comActColumnVO.setUpdateTime(new Date());
+        if(StringUtils.isNotEmpty(this.getLoginUserInfo().getName())){
+            comActColumnVO.setUpdateBy(this.getLoginUserInfo().getName());
+        }
+        return this.communityService.comActColumnUpdate(comActColumnVO);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @ApiOperation("删除数据")
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return this.communityService.comActColumnDelete(id);
+    }
+
+    /**
+     * 项目分类级联查询
+     */
+    @ApiOperation("项目分类级联查询")
+    @PostMapping("/queryLevel")
+    public R queryLevel(@RequestBody ComActColumnVO comActColumnVO){
+        if(this.getLoginUserInfo().getStreetId()!=null){
+            comActColumnVO.setStreetId(this.getLoginUserInfo().getStreetId());
+        }
+        else {
+            comActColumnVO.setCommunityId(this.getCommunityId());
+        }
+        return this.communityService.queryLevel(comActColumnVO);
+    }
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActCommitteeApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActCommitteeApi.java
new file mode 100644
index 0000000..6af0bdf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActCommitteeApi.java
@@ -0,0 +1,75 @@
+package com.panzhihua.community_backstage.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActCommiteeVO;
+import com.panzhihua.common.model.vos.community.ComActSocialOrgVO;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * @author zzj
+ */
+@Slf4j
+@Api(tags = {"业主委员会"})
+@RestController
+@RequestMapping("/comActCommittee")
+public class ComActCommitteeApi extends BaseController {
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "业主委员会列表",response = ComActCommiteeVO.class)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        commonPage.setParamId(this.getCommunityId());
+        return this.communityService.comActCommitteeSelectAll(commonPage);
+    }
+    /**
+     * 新增数据
+     *
+     * @param comActCommiteeVO 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation("新增业主委员会")
+    @PostMapping
+    public R insert(@RequestBody ComActCommiteeVO comActCommiteeVO) {
+        comActCommiteeVO.setCommunityId(this.getCommunityId());
+        return this.communityService.comActCommitteeInsert(comActCommiteeVO);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActCommiteeVO 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation("修改业主委员会")
+    @PostMapping("/update")
+    public R update(@RequestBody ComActCommiteeVO comActCommiteeVO) {
+        return this.communityService.comActCommitteeUpdate(comActCommiteeVO);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @ApiOperation("删除业主委员会")
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return this.communityService.comActCommitteeDelete(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActDpcApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActDpcApi.java
new file mode 100644
index 0000000..9d49495
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActDpcApi.java
@@ -0,0 +1,83 @@
+package com.panzhihua.community_backstage.api;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+
+import org.springframework.web.bind.annotation.DeleteMapping;
+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.dpc.AddDpcDTO;
+import com.panzhihua.common.model.dtos.community.dpc.EditDpcDTO;
+import com.panzhihua.common.model.dtos.community.dpc.PageDpcDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActDpcVO;
+import com.panzhihua.common.service.community.CommunityService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @title: ComActDpcApi
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 人大代表
+ * @author: hans
+ * @date: 2022/06/07 10:57
+ */
+@Slf4j
+@Api(tags = {"人大代表相关"})
+@RestController
+@RequestMapping("/dpc")
+public class ComActDpcApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation("新增人大代表")
+    @PostMapping("/add")
+    public R addDpc(@RequestBody @Valid AddDpcDTO addDpcDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        addDpcDTO.setCreatedBy(loginUserInfo.getUserId());
+        addDpcDTO.setUpdatedBy(loginUserInfo.getUserId());
+        addDpcDTO.setCommunityId(loginUserInfo.getCommunityId());
+        return communityService.addDpc(addDpcDTO);
+    }
+
+    @ApiOperation("修改人大代表")
+    @PostMapping("/edit")
+    public R editDpc(@RequestBody @Valid EditDpcDTO editDpcDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        editDpcDTO.setUpdatedBy(loginUserInfo.getUserId());
+        return communityService.editDpc(editDpcDTO);
+    }
+
+    @ApiOperation("删除人大代表")
+    @ApiImplicitParam(name = "id", value = "人大代表id", required = true)
+    @DeleteMapping("/delete")
+    public R deleteDpc(@RequestParam("id") Long id) {
+        return communityService.deleteDpc(id);
+    }
+
+    @ApiOperation(value = "获取人大代表详情", response = ComActDpcVO.class)
+    @ApiImplicitParam(name = "id", value = "人大代表id", required = true)
+    @GetMapping("/detail")
+    public R detailDpc(@RequestParam("id") Long id) {
+        return communityService.detailDpc(id);
+    }
+
+    @ApiOperation(value = "分页查询人大代表", response = ComActDpcVO.class)
+    @PostMapping("/page")
+    public R pageDpc(@RequestBody @Valid PageDpcDTO pageDpcDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        pageDpcDTO.setCommunityId(loginUserInfo.getCommunityId());
+        return communityService.pageDpc(pageDpcDTO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActEasyPhotoMemberApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActEasyPhotoMemberApi.java
new file mode 100644
index 0000000..7afb14a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActEasyPhotoMemberApi.java
@@ -0,0 +1,97 @@
+package com.panzhihua.community_backstage.api;
+
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.easyPhoto.ComActEasyPhotoMemberVO;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * 随手拍网格员(ComActEasyPhotoMember)表控制层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 随手拍网格员相关功能
+ *
+ * @author zzj
+ * @since 2022-04-12 10:33:26
+ */
+@Slf4j
+@Api(tags = {"随手拍网格员"})
+@RestController
+@RequestMapping("comActEasyPhotoMember")
+public class ComActEasyPhotoMemberApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "分页查询",response = ComActEasyPhotoMemberVO.class)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        commonPage.setCommunityId(this.getCommunityId());
+        return this.communityService.comActEasyPhotoMemberSelectAll(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation(value = "详情",response = ComActEasyPhotoMemberVO.class)
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return communityService.comActEasyPhotoMemberSelectOne(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActEasyPhotoMemberVO 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation("新增数据")
+    @PostMapping
+    public R insert(@RequestBody ComActEasyPhotoMemberVO comActEasyPhotoMemberVO) {
+        comActEasyPhotoMemberVO.setCommunityId(this.getCommunityId());
+       return communityService.comActEasyPhotoMemberInsert(comActEasyPhotoMemberVO);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActEasyPhotoMemberVO 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation("修改数据")
+    @PostMapping("/update")
+    public R update(@RequestBody ComActEasyPhotoMemberVO comActEasyPhotoMemberVO) {
+        return communityService.comActEasyPhotoMemberUpdate(comActEasyPhotoMemberVO);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @ApiOperation("删除数据")
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return communityService.comActEasyPhotoMemberDelete(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActEnterpriseApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActEnterpriseApi.java
new file mode 100644
index 0000000..9fb69f4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActEnterpriseApi.java
@@ -0,0 +1,93 @@
+package com.panzhihua.community_backstage.api;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+
+import com.panzhihua.common.model.dtos.community.enterprise.AddEnterpriseDTO;
+import com.panzhihua.common.model.dtos.community.enterprise.EditEnterpriseDTO;
+import com.panzhihua.common.model.dtos.community.enterprise.PageEnterpriseDTO;
+import com.panzhihua.common.model.vos.community.ComActEnterpriseVO;
+import org.springframework.web.bind.annotation.DeleteMapping;
+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.fms.AddTeamTypeDTO;
+import com.panzhihua.common.model.dtos.community.fms.EditTeamTypeDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageTeamMemberDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.fms.ComFmsTeamMemberVO;
+import com.panzhihua.common.model.vos.community.fms.ComFmsTeamTypeVO;
+import com.panzhihua.common.service.community.CommunityService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+import static java.util.Objects.nonNull;
+
+/**
+ * @title: ComActEnterpriseApi
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 社区企业管理
+ * @author: hans
+ * @date: 2022/05/31 10:22
+ */
+@Slf4j
+@Api(tags = {"社区企业管理"})
+@RestController
+@RequestMapping("/enterprise")
+public class ComActEnterpriseApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation("新增社区企业")
+    @PostMapping("/add")
+    public R addEnterprise(@RequestBody @Valid AddEnterpriseDTO addEnterpriseDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        addEnterpriseDTO.setCreatedBy(loginUserInfo.getUserId());
+        addEnterpriseDTO.setUpdatedBy(loginUserInfo.getUserId());
+        return communityService.addEnterprise(addEnterpriseDTO);
+    }
+
+    @ApiOperation("修改社区企业")
+    @PostMapping("/edit")
+    public R editEnterprise(@RequestBody @Valid EditEnterpriseDTO editEnterpriseDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        editEnterpriseDTO.setUpdatedBy(loginUserInfo.getUserId());
+        return communityService.editEnterprise(editEnterpriseDTO);
+    }
+
+    @ApiOperation("删除社区企业")
+    @ApiImplicitParam(name = "id", value = "社区企业id", required = true)
+    @DeleteMapping("/delete")
+    public R deleteEnterprise(@RequestParam("id") Long id) {
+        return communityService.deleteEnterprise(id);
+    }
+
+    @ApiOperation(value = "获取社区企业详情", response = ComActEnterpriseVO.class)
+    @ApiImplicitParam(name = "id", value = "社区企业id", required = true)
+    @GetMapping("/detail")
+    public R detailEnterprise(@RequestParam("id") Long id) {
+        return communityService.detailEnterprise(id);
+    }
+
+    @ApiOperation(value = "分页查询社区企业", response = ComActEnterpriseVO.class)
+    @PostMapping("/page")
+    public R pageEnterprise(@RequestBody @Valid PageEnterpriseDTO pageEnterpriseDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (nonNull(loginUserInfo.getStreetId())) {
+            pageEnterpriseDTO.setStreetId(loginUserInfo.getStreetId());
+        } else {
+            pageEnterpriseDTO.setCommunityId(loginUserInfo.getCommunityId());
+        }
+        return communityService.pageEnterprise(pageEnterpriseDTO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActEnterpriseTypeApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActEnterpriseTypeApi.java
new file mode 100644
index 0000000..edf9416
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActEnterpriseTypeApi.java
@@ -0,0 +1,97 @@
+package com.panzhihua.community_backstage.api;
+
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+
+import com.panzhihua.common.model.dtos.community.enterprise.AddEnterpriseDTO;
+import com.panzhihua.common.model.dtos.community.enterprise.AddEnterpriseTypeDTO;
+import com.panzhihua.common.model.dtos.community.enterprise.EditEnterpriseDTO;
+import com.panzhihua.common.model.dtos.community.enterprise.EditEnterpriseTypeDTO;
+import com.panzhihua.common.model.dtos.community.enterprise.PageEnterpriseTypeDTO;
+import com.panzhihua.common.model.vos.community.ComActEnterpriseTypeVO;
+import org.springframework.web.bind.annotation.DeleteMapping;
+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.enterprise.PageEnterpriseDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActEnterpriseVO;
+import com.panzhihua.common.service.community.CommunityService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @title: ComActEnterpriseTypeApi
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 社区企业服务分类管理
+ * @author: hans
+ * @date: 2022/06/06 15:47
+ */
+@Slf4j
+@Api(tags = {"社区企业服务分类管理"})
+@RestController
+@RequestMapping("/enterpriseType")
+public class ComActEnterpriseTypeApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation("新增服务分类")
+    @PostMapping("/add")
+    public R addEnterpriseType(@RequestBody @Valid AddEnterpriseTypeDTO addEnterpriseTypeDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        addEnterpriseTypeDTO.setCreatedBy(loginUserInfo.getUserId());
+        addEnterpriseTypeDTO.setUpdatedBy(loginUserInfo.getUserId());
+        addEnterpriseTypeDTO.setCommunityId(loginUserInfo.getCommunityId());
+        return communityService.addEnterpriseType(addEnterpriseTypeDTO);
+    }
+
+    @ApiOperation("修改服务分类")
+    @PostMapping("/edit")
+    public R editEnterpriseType(@RequestBody @Valid EditEnterpriseTypeDTO enterpriseTypeDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        enterpriseTypeDTO.setUpdatedBy(loginUserInfo.getUserId());
+        enterpriseTypeDTO.setCommunityId(loginUserInfo.getCommunityId());
+        return communityService.editEnterpriseType(enterpriseTypeDTO);
+    }
+
+    @ApiOperation("删除服务分类")
+    @ApiImplicitParam(name = "id", value = "服务分类id", required = true)
+    @DeleteMapping("/delete")
+    public R deleteEnterpriseType(@RequestParam("id") Long id) {
+        return communityService.deleteEnterpriseType(id);
+    }
+
+    @ApiOperation(value = "获取服务分类详情", response = ComActEnterpriseTypeVO.class)
+    @ApiImplicitParam(name = "id", value = "服务分类id", required = true)
+    @GetMapping("/detail")
+    public R detailEnterpriseType(@RequestParam("id") Long id) {
+        return communityService.detailEnterpriseType(id);
+    }
+
+    @ApiOperation(value = "分页查询服务分类", response = ComActEnterpriseTypeVO.class)
+    @PostMapping("/page")
+    public R pageEnterpriseType(@RequestBody @Valid PageEnterpriseTypeDTO pageEnterpriseTypeDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        pageEnterpriseTypeDTO.setCommunityId(loginUserInfo.getCommunityId());
+        return communityService.pageEnterpriseType(pageEnterpriseTypeDTO);
+    }
+
+    @ApiOperation(value = "获取服务分类列表", response = ComActEnterpriseTypeVO.class)
+    @GetMapping("/list")
+    public R getEnterpriseTypeList() {
+        return communityService.getEnterpriseTypeList(this.getCommunityId());
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActFeedBackApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActFeedBackApi.java
new file mode 100644
index 0000000..35ca76c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActFeedBackApi.java
@@ -0,0 +1,68 @@
+package com.panzhihua.community_backstage.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.user.PageFeedBackDTO;
+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.user.SysUserFeedbackVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.validated.PageGroup;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+import static java.util.Objects.nonNull;
+
+@RestController
+@RequestMapping("/feedBack")
+@Api(tags = "问题留言和投诉建议")
+public class ComActFeedBackApi extends BaseController {
+    @Resource
+    private UserService userService;
+
+    @ApiOperation(value = "分页查询用户意见反馈", response = SysUserFeedbackVO.class)
+    @PostMapping("pagefeedback")
+    public R pageFeedback(@RequestBody @Validated(PageGroup.class) PageFeedBackDTO pageFeedBackDTO) {
+        pageFeedBackDTO.setAreaCode(this.getAreaCode());
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        LoginUserInfoVO user = userService.detailUser(loginUserInfo.getUserId()).getData();
+        if(nonNull(user.getPropertyId())){
+            pageFeedBackDTO.setPropertyId(user.getPropertyId());
+        }
+        return userService.pageFeedback(pageFeedBackDTO);
+    }
+
+    @ApiOperation(value = "分页查询用户意见反馈", response = SysUserFeedbackVO.class)
+    @PostMapping("pagefeedbackProperty")
+    public R pageFeedbackProperty(@RequestBody @Validated(PageGroup.class) PageFeedBackDTO pageFeedBackDTO) {
+        //pageFeedBackDTO.setAreaCode(this.getAreaCode());
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        LoginUserInfoVO user = userService.detailUser(loginUserInfo.getUserId()).getData();
+        if(nonNull(user.getPropertyId())){
+            pageFeedBackDTO.setPropertyId(user.getPropertyId());
+        }
+        return userService.pageFeedback(pageFeedBackDTO);
+    }
+
+    @ApiOperation(value = "反馈意见详情", response = SysUserFeedbackVO.class)
+    @GetMapping("feedback")
+    public R detailFeedback(@RequestParam("id") Long id) {
+        return userService.detailFeedback(id);
+    }
+
+    @ApiOperation(value = "删除意见反馈")
+    @DeleteMapping("feedback")
+    public R deleteFeedback(@RequestParam("id") Long id) {
+        return userService.deleteFeedback(id);
+    }
+
+    @ApiOperation("回复意见反馈或修改意见反馈回复")
+    @PostMapping("feedback")
+    public R replyFeedBack(@RequestBody SysUserFeedbackVO sysUserFeedbackVO){
+        return userService.updateFeedBack(sysUserFeedbackVO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActFourMemberApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActFourMemberApi.java
new file mode 100644
index 0000000..be080e8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActFourMemberApi.java
@@ -0,0 +1,103 @@
+package com.panzhihua.community_backstage.api;
+
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActFourMemberVO;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * (ComActFourMember)表控制层
+ *
+ * @author makejava
+ * @since 2021-09-23 10:13:31
+ */
+@Slf4j
+@Api(tags = {"四长四员"})
+@RestController
+@RequestMapping("comActFourMember")
+public class ComActFourMemberApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "分页查询",response = ComActFourMemberVO.class)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        commonPage.setParamId(this.getCommunityId());
+        return this.communityService.comActFourMemberSelectAll(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation(value ="通过主键查询单条数据")
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return this.communityService.comActFourMemberSelectOne(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActFourMember 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation(value ="新增数据")
+    @PostMapping
+    public R insert(@RequestBody ComActFourMemberVO comActFourMember) {
+        comActFourMember.setCommunityId(this.getCommunityId());
+        return this.communityService.comActFourMemberInsert(comActFourMember);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActFourMember 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation(value ="修改数据")
+    @PostMapping("/update")
+    public R update(@RequestBody ComActFourMemberVO comActFourMember) {
+        return this.communityService.comActFourMemberUpdate(comActFourMember);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param comActFourMember 主键结合
+     * @return 删除结果
+     */
+    @ApiOperation(value ="删除数据")
+    @PostMapping("del")
+    public R delete(@RequestBody ComActFourMemberVO comActFourMember) {
+        return this.communityService.comActFourMemberDelete(comActFourMember);
+    }
+
+    /**
+     * 楼栋列表
+     */
+    @ApiOperation("楼栋列表")
+    @GetMapping("/building")
+    public R building(){
+        return communityService.comActFourMemberQueryBuilding(this.getCommunityId());
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActIntegralUserApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActIntegralUserApi.java
new file mode 100644
index 0000000..6627042
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActIntegralUserApi.java
@@ -0,0 +1,61 @@
+package com.panzhihua.community_backstage.api;
+
+import javax.annotation.Resource;
+
+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.RestController;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.integral.admin.EditComActIntegralRuleDTO;
+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.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.integral.admin.ComActIntegralUserRuleAdminVO;
+import com.panzhihua.common.model.vos.community.integral.admin.ComActIntegralUserTradeAdminVO;
+import com.panzhihua.common.service.community.CommunityService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+@RestController
+@RequestMapping("/integral/")
+@Api(tags = {"积分模块"})
+public class ComActIntegralUserApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "查询社区积分规则列表", response = ComActIntegralUserRuleAdminVO.class)
+    @PostMapping("/rule/list")
+    public R getIntegralRuleAdminList(@RequestBody PageComActIntegralRuleDTO integralRuleDTO) {
+        LoginUserInfoVO userInfoVO = this.getLoginUserInfo();
+        if (userInfoVO == null) {
+            return R.fail("请先登录");
+        }
+        integralRuleDTO.setCommunityId(userInfoVO.getCommunityId());
+        return communityService.getIntegralRuleAdminList(integralRuleDTO);
+    }
+
+    @ApiOperation(value = "编辑社区积分规则")
+    @PostMapping("/rule/edit")
+    public R editIntegralRuleAdmin(@RequestBody EditComActIntegralRuleDTO integralRuleDTO) {
+        return communityService.editIntegralRuleAdmin(integralRuleDTO);
+    }
+
+    @ApiOperation(value = "分页查询社区积分明细", response = ComActIntegralUserTradeAdminVO.class)
+    @PostMapping("/user/trade/page")
+    public R getIntegralTradeListAdmin(@RequestBody PageComActIntegralTradeDTO integralRuleDTO) {
+        LoginUserInfoVO userInfoVO = this.getLoginUserInfo();
+        if (userInfoVO == null) {
+            return R.fail("请先登录");
+        }
+        integralRuleDTO.setCommunityId(userInfoVO.getCommunityId());
+        return communityService.getIntegralTradeListAdmin(integralRuleDTO);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActPorceedingsApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActPorceedingsApi.java
new file mode 100644
index 0000000..ee3fe04
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActPorceedingsApi.java
@@ -0,0 +1,41 @@
+package com.panzhihua.community_backstage.api;
+
+import com.panzhihua.common.model.dtos.community.ComActProceedingsDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActProceedingsVO;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@RestController
+@RequestMapping("/proceedings")
+@Api(tags = {"议事委员会"})
+public class ComActPorceedingsApi {
+
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "分页查询议事委员会列表",response = ComActProceedingsVO.class)
+    @GetMapping
+    public R list(@RequestParam(value = "page",required = false) Integer page,
+                  @RequestParam(value = "size",required = false) Integer size,
+                  @RequestParam(value = "keyWord",required = false) String keyWord){
+        return communityService.proceedingsList(page, size, keyWord);
+    }
+
+    @ApiOperation("新增或修改议事委员会")
+    @PostMapping
+    public R addOrUpdate(@RequestBody ComActProceedingsDTO comActProceedingsDTO){
+        return communityService.addOrUpdateProceedings(comActProceedingsDTO);
+    }
+
+    @DeleteMapping("/{id}")
+    @ApiOperation("删除议事委员会")
+    public R remove(@PathVariable Long id){
+        return communityService.removeProceedings(id);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActRaffleApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActRaffleApi.java
new file mode 100644
index 0000000..e165748
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActRaffleApi.java
@@ -0,0 +1,97 @@
+package com.panzhihua.community_backstage.api;
+
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.raffle.ComActRaffleVO;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * 抽奖活动表(ComActRaffle)表控制层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 抽奖活动表相关功能
+ *
+ * @author zzj
+ * @since 2022-02-18 14:31:20
+ */
+@Slf4j
+@Api(tags = {"抽奖活动"})
+@RestController
+@RequestMapping("comActRaffle")
+public class ComActRaffleApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "分页查询",response = ComActRaffleVO.class)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        commonPage.setCommunityId(this.getCommunityId());
+        return this.communityService.selectAllComActRaffle(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation(value = "详情",response = ComActRaffleVO.class)
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return this.communityService.selectOneComActRaffle(id,0L);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActRaffleVO 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation(value = "新增数据")
+    @PostMapping
+    public R insert(@RequestBody ComActRaffleVO comActRaffleVO) {
+        comActRaffleVO.setCommunityId(this.getCommunityId());
+        comActRaffleVO.setCreateBy(this.getUserId());
+        return this.communityService.insertComActRaffle(comActRaffleVO);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActRaffleVO 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation(value = "修改数据")
+    @PostMapping("/update")
+    public R update(@RequestBody ComActRaffleVO comActRaffleVO) {
+        return this.communityService.updateComActRaffle(comActRaffleVO);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @ApiOperation(value = "删除数据")
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return this.communityService.deleteComActRaffle(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActRaffleRecordApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActRaffleRecordApi.java
new file mode 100644
index 0000000..63116d1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActRaffleRecordApi.java
@@ -0,0 +1,133 @@
+package com.panzhihua.community_backstage.api;
+
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.alibaba.fastjson.JSONArray;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.raffle.ComActRaffleRecordExcelVO;
+import com.panzhihua.common.model.vos.community.raffle.ComActRaffleRecordVO;
+import com.panzhihua.common.model.vos.community.warehouse.ComActWarehouseApplyExcelVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.SFTPUtil;
+import com.panzhihua.community_backstage.excel.CustomSheetWriteHandler;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.io.Serializable;
+
+/**
+ * 抽奖活动中奖记录表(ComActRaffleRecord)表控制层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 抽奖活动中奖记录表相关功能
+ *
+ * @author zzj
+ * @since 2022-02-18 14:32:02
+ */
+@Slf4j
+@Api(tags = {"获奖记录"})
+@RestController
+@RequestMapping("comActRaffleRecord")
+public class ComActRaffleRecordApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    @Value("${excel.userurl}")
+    private String excelUrl;
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "分页查询",response = ComActRaffleRecordVO.class)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.communityService.selectAllComActRaffleRecord(commonPage);
+    }
+    @ApiOperation(value = "根据抽奖活动id获取奖品统计")
+    @GetMapping("/queryPrize")
+    public R queryPrize(@RequestParam("id")Long id){
+        return this.communityService.queryPrize(id);
+    }
+    @ApiOperation(value = "导出")
+    @PostMapping("/export")
+    public R export(@RequestBody CommonPage commonPage) {
+        String name = "获奖名单.xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+        // 用户搜索了就下载搜索的用户否则下载所有用户
+        R r = communityService.exportComActRaffleRecord(commonPage);
+        if (R.isOk(r)) {
+            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, ComActRaffleRecordExcelVO.class)
+                                .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                                .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet( "导出").build();
+                        excelWriter.write(JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComActRaffleRecordExcelVO.class), 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();
+            }
+        }
+        return r;
+    }
+}
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
new file mode 100644
index 0000000..42474dc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActReserveApi.java
@@ -0,0 +1,1076 @@
+package com.panzhihua.community_backstage.api;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+import java.net.URLConnection;
+import java.util.*;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.utlis.StringUtils;
+import org.apache.poi.ss.usermodel.BorderStyle;
+import org.apache.poi.ss.usermodel.HorizontalAlignment;
+import org.apache.poi.ss.usermodel.VerticalAlignment;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.*;
+import org.thymeleaf.TemplateEngine;
+import org.thymeleaf.context.Context;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.metadata.style.WriteCellStyle;
+import com.alibaba.excel.write.metadata.style.WriteFont;
+import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.enums.ReserveRecordStatusEnum;
+import com.panzhihua.common.model.dtos.community.QuestnaireAnswersDTO;
+import com.panzhihua.common.model.dtos.community.reserve.*;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActQuestnaireSubVO;
+import com.panzhihua.common.model.vos.community.ComActReserveCommitVO;
+import com.panzhihua.common.model.vos.community.reserve.*;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.AssemblyUtils;
+import com.panzhihua.common.utlis.ForEachUtils;
+import com.panzhihua.common.utlis.SFTPUtil;
+import com.panzhihua.community_backstage.aop.RenheAssemblyUtils;
+import com.panzhihua.community_backstage.config.SFTPConfig;
+import com.panzhihua.community_backstage.excel.CustemSecondhandler;
+import com.panzhihua.community_backstage.excel.Custemhandler;
+import com.panzhihua.community_backstage.excel.CustomSheetWriteHandler;
+import com.panzhihua.community_backstage.util.HtmlToPdfUtil;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @description: 预约登记接口
+ * @author: lyq
+ * @date: 2021-8-23
+ */
+@Slf4j
+@Api(tags = {"预约登记"})
+@RestController
+@RequestMapping("/reserve")
+public class ComActReserveApi extends BaseController {
+    private static final String key = "nahankeji1234567";
+
+    @Value("${minio.url}")
+    private String minioUrl;
+
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private UserService userService;
+    @Resource
+    private SFTPConfig sftpConfig;
+    @Resource
+    private TemplateEngine templateEngine;
+    @Resource
+    private RenheAssemblyUtils assemblyUtils;
+
+    @ApiOperation(value = "分页查询预约登记列表", response = ComActReserveListAdminVO.class)
+    @PostMapping("/page")
+    public R page(@RequestBody PageReserveAdminDTO pageReserveDTO) {
+        if (pageReserveDTO.getCommunityId() == null) {
+            Long communityId = this.getCommunityId();
+            pageReserveDTO.setCommunityId(communityId);
+        }
+        pageReserveDTO.setAreaCode(this.getAreaCode());
+        return communityService.pageReserveAdmin(pageReserveDTO);
+    }
+
+    @ApiOperation(value = "新增预约登记记录")
+    @PostMapping("/add")
+    public R add(@RequestBody AddReserveAdminDTO addReserveDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        addReserveDTO.setCommunityId(loginUserInfo.getCommunityId());
+        addReserveDTO.setUserId(loginUserInfo.getUserId());
+        return communityService.addReserveAdmin(addReserveDTO);
+    }
+
+    @ApiOperation(value = "删除预约登记")
+    @PostMapping("/delete")
+    public R delete(@RequestParam("reserveId") Long reserveId) {
+        return communityService.deleteReserveAdmin(reserveId);
+    }
+
+    @ApiOperation(value = "查询社区所有预约登记列表")
+    @GetMapping("/list")
+    public R list() {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        return communityService.listReserveAdmin(loginUserInfo.getCommunityId());
+    }
+
+    @ApiOperation(value = "编辑预约登记记录")
+    @PostMapping("/edit")
+    public R edit(@RequestBody EditReserveAdminDTO editReserveDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        editReserveDTO.setCommunityId(loginUserInfo.getCommunityId());
+        editReserveDTO.setUserId(loginUserInfo.getUserId());
+        return communityService.editReserveAdmin(editReserveDTO);
+    }
+
+    @ApiOperation(value = "修改预约登记状态")
+    @PostMapping("/edit/status")
+    public R editStatus(@RequestBody EditComActReserveStatusDTO editReserveDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        editReserveDTO.setUserId(loginUserInfo.getUserId());
+        return communityService.editReserveStatusAdmin(editReserveDTO);
+    }
+
+    @ApiOperation(value = "点击继续预约登记")
+    @PostMapping("/edit/info")
+    public R editInfo(@RequestBody EditComActReserveInfoDTO editReserveDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        editReserveDTO.setUserId(loginUserInfo.getUserId());
+        return communityService.editReserveInfoAdmin(editReserveDTO);
+    }
+
+    @ApiOperation(value = "预约登记详情")
+    @PostMapping("/detail")
+    public R detail(@RequestParam("reserveId") Long reserveId) {
+        return communityService.detailReserveAdmin(reserveId);
+    }
+
+    @ApiOperation(value = "预约类统计汇总", response = ComActReserveMakeStatisticsAdminVO.class)
+    @PostMapping("/make/statistics")
+    public R makeStatistics(@RequestBody ComActReserveMakeStatisticsDTO makeStatisticsDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        makeStatisticsDTO.setCommunityId(loginUserInfo.getCommunityId());
+        return communityService.makeStatisticsAdmin(makeStatisticsDTO);
+    }
+
+    @ApiOperation(value = "预约登记统计汇总导出")
+    @PostMapping("/make/statistics/export")
+    public R makeStatisticsExport(@RequestBody ComActReserveMakeStatisticsDTO makeStatisticsDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        makeStatisticsDTO.setCommunityId(loginUserInfo.getCommunityId());
+        String url = sftpConfig.getExcelUrl();
+        String name = "预约登记统计汇总导出数据.xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+        R r = communityService.makeStatisticsExportAdmin(makeStatisticsDTO);
+        if (R.isOk(r)) {
+            List<ComActReserveMakeRightExcelAdminVO> resultList = new ArrayList<>();
+            List<ComActReserveMakeRightStatisticsAdminVO> rightStatisticsList = JSONArray
+                .parseArray(JSONArray.toJSONString(r.getData()), ComActReserveMakeRightStatisticsAdminVO.class);
+            rightStatisticsList.forEach(rightStatistics -> {
+                ComActReserveMakeRightExcelAdminVO makeRightExcelAdminVO = new ComActReserveMakeRightExcelAdminVO();
+                BeanUtils.copyProperties(rightStatistics, makeRightExcelAdminVO);
+                resultList.add(makeRightExcelAdminVO);
+            });
+            try {
+                SFTPUtil sftp = new SFTPUtil(sftpConfig.getUserName(), sftpConfig.getPassword(), sftpConfig.getHost(),
+                    sftpConfig.getPort());
+                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, ComActReserveMakeRightExcelAdminVO.class)
+                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet("预约登记统计汇总导出数据").build();
+                        excelWriter.write(resultList, 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(url + name);
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error("文件传输失败【{}】", e.getMessage());
+                return R.fail();
+            }
+        }
+        return r;
+    }
+
+    @ApiOperation(value = "分页查询预约明细列表", response = ComActReserveMakeListAdminVO.class)
+    @PostMapping("/make/page")
+    public R pageMake(@RequestBody PageReserveMakeAdminDTO pageMakeDTO) {
+        return communityService.pageMakeAdmin(pageMakeDTO);
+    }
+
+    @ApiOperation(value = "查询预约明细详情", response = ComActReserveMakeDetailAdminVO.class)
+    @GetMapping("/make/detail")
+    public R detailMake(@RequestParam("reserveRecordId") Long reserveRecordId) {
+        return communityService.detailMakeAdmin(reserveRecordId);
+    }
+
+    @ApiOperation(value = "取消预约记录", response = ComActReserveMakeDetailAdminVO.class)
+    @PostMapping("/make/cancel")
+    public R makeCancel(@RequestBody CancelReserveRecordDTO reserveRecordDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        reserveRecordDTO.setUserId(loginUserInfo.getUserId());
+        return communityService.makeCancelAdmin(reserveRecordDTO);
+    }
+
+    @ApiOperation(value = "预约明细导出")
+    @PostMapping("/make/list/export")
+    public R exportMake(@RequestBody PageReserveMakeAdminDTO pageMakeDTO) {
+        String url = sftpConfig.getExcelUrl();
+        String name = "预约明细导出数据.xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+        R r = communityService.exportMakeAdmin(pageMakeDTO);
+        if (R.isOk(r)) {
+            List<ComActReserveMakeDetailedExcelAdminVO> resultList = new ArrayList<>();
+            List<ComActReserveMakeListAdminVO> rightStatisticsList =
+                JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComActReserveMakeListAdminVO.class);
+            rightStatisticsList.forEach(rightStatistics -> {
+                ComActReserveMakeDetailedExcelAdminVO makeRightExcelAdminVO =
+                    new ComActReserveMakeDetailedExcelAdminVO();
+                BeanUtils.copyProperties(rightStatistics, makeRightExcelAdminVO);
+                resultList.add(makeRightExcelAdminVO);
+            });
+            try {
+                SFTPUtil sftp = new SFTPUtil(sftpConfig.getUserName(), sftpConfig.getPassword(), sftpConfig.getHost(),
+                    sftpConfig.getPort());
+                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, ComActReserveMakeDetailedExcelAdminVO.class)
+                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet("预约明细导出数据").build();
+                        excelWriter.write(resultList, 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(url + name);
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error("文件传输失败【{}】", e.getMessage());
+                return R.fail();
+            }
+        }
+        return r;
+    }
+
+    @ApiOperation(value = "登记类统计汇总", response = ComActReserveRegisterStatisticsAdminVO.class)
+    @PostMapping("/register/statistics")
+    public R registerStatistics(@RequestBody ComActReserveRegisterStatisticsDTO registerStatisticsDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        registerStatisticsDTO.setCommunityId(loginUserInfo.getCommunityId());
+        return communityService.registerStatisticsAdmin(registerStatisticsDTO);
+    }
+
+    @ApiOperation(value = "登记类统计导出", response = ComActReserveRegisterStatisticsAdminVO.class)
+    @PostMapping("/register/statistics/export")
+    public R registerStatisticsExport(@RequestBody ComActReserveRegisterStatisticsDTO registerStatisticsDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        registerStatisticsDTO.setCommunityId(loginUserInfo.getCommunityId());
+        String url = sftpConfig.getExcelUrl();
+        String name = "登记统计汇总导出数据.xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+        R r = communityService.registerStatisticsExportAdmin(registerStatisticsDTO);
+        if (R.isOk(r)) {
+            List<ComActReserveRegisterExcelAdminVO> resultList = new ArrayList<>();
+            List<ComActReserveRegisterStatisticsAdminVO> rightStatisticsList =
+                JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComActReserveRegisterStatisticsAdminVO.class);
+            rightStatisticsList.forEach(rightStatistics -> {
+                ComActReserveRegisterExcelAdminVO makeRightExcelAdminVO = new ComActReserveRegisterExcelAdminVO();
+                BeanUtils.copyProperties(rightStatistics, makeRightExcelAdminVO);
+                resultList.add(makeRightExcelAdminVO);
+            });
+            try {
+                SFTPUtil sftp = new SFTPUtil(sftpConfig.getUserName(), sftpConfig.getPassword(), sftpConfig.getHost(),
+                    sftpConfig.getPort());
+                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, ComActReserveRegisterExcelAdminVO.class)
+                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet("登记统计汇总导出数据").build();
+                        excelWriter.write(resultList, 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(url + name);
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error("文件传输失败【{}】", e.getMessage());
+                return R.fail();
+            }
+        }
+        return r;
+    }
+
+    @ApiOperation(value = "分页查询预约处理列表", response = ComActReserveMakeHandleListAdminVO.class)
+    @PostMapping("/make/handle/page")
+    public R pageMakeHandle(@RequestBody PageReserveMakeHandleAdminDTO pageMakeHandleDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        pageMakeHandleDTO.setCommunityId(loginUserInfo.getCommunityId());
+        return communityService.pageMakeHandleAdmin(pageMakeHandleDTO);
+    }
+
+    @ApiOperation(value = "批量处理预约记录")
+    @PostMapping("/make/handle")
+    public R makeHandle(@RequestBody MakeHandleAdminDTO makeHandleDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        makeHandleDTO.setUserId(loginUserInfo.getUserId());
+        makeHandleDTO.setAreaCode(this.getAreaCode());
+        return communityService.makeHandleAdmin(makeHandleDTO);
+    }
+
+    @ApiOperation(value = "预约处理列表导出")
+    @PostMapping("/make/handle/export")
+    public R exportMakeHandle(@RequestBody PageReserveMakeHandleAdminDTO pageMakeHandleDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        pageMakeHandleDTO.setCommunityId(loginUserInfo.getCommunityId());
+        String url = sftpConfig.getExcelUrl();
+        String name = "预约处理列表导出数据.xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+        R r = communityService.exportMakeHandleAdmin(pageMakeHandleDTO);
+        if (R.isOk(r)) {
+            List<ComActReserveMakeHandleExcelAdminVO> resultList = new ArrayList<>();
+            List<ComActReserveMakeHandleListAdminVO> rightStatisticsList =
+                JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComActReserveMakeHandleListAdminVO.class);
+            rightStatisticsList.forEach(rightStatistics -> {
+                ComActReserveMakeHandleExcelAdminVO makeRightExcelAdminVO = new ComActReserveMakeHandleExcelAdminVO();
+                BeanUtils.copyProperties(rightStatistics, makeRightExcelAdminVO);
+                makeRightExcelAdminVO.setStatus(ReserveRecordStatusEnum.getCnDescByName(rightStatistics.getStatus()));
+                resultList.add(makeRightExcelAdminVO);
+            });
+            try {
+                SFTPUtil sftp = new SFTPUtil(sftpConfig.getUserName(), sftpConfig.getPassword(), sftpConfig.getHost(),
+                    sftpConfig.getPort());
+                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, ComActReserveMakeHandleExcelAdminVO.class)
+                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet("预约处理列表导出数据").build();
+                        excelWriter.write(resultList, 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(url + name);
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error("文件传输失败【{}】", e.getMessage());
+                return R.fail();
+            }
+        }
+        return r;
+    }
+
+    @ApiOperation(value = "导出登记明细")
+    @PostMapping("/register/list/export")
+    public R exportRegister(@RequestBody PageReserveRegisterDetailedAdminDTO pageReserveRegisterDetailedAdminDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+//        String regionCode = communityService.getActBelongRegionCode(loginUserInfo.getCommunityId());
+//        if (regionCode.equals("510411")) {
+//            ComActReserveDetailAdminVO reserverRecord =
+//                communityService.detailReserveAdmin(pageReserveRegisterDetailedAdminDTO.getReserveId()).getData();
+//            if (reserverRecord.getTitle().equals("返攀登记")) {
+//                return renheExportRegister(pageReserveRegisterDetailedAdminDTO);
+//            }
+//        }
+        String ftpUrl = "/mnt/data/web/excel/";
+        String name = "登记明细导出数据.xlsx";
+        String noHaed = "承诺";
+        try {
+            SFTPUtil sftp = new SFTPUtil(sftpConfig.getUserName(), sftpConfig.getPassword(), sftpConfig.getHost(), sftpConfig.getPort());
+            sftp.login();
+            boolean existDir = sftp.isExistDir(ftpUrl + name);
+            if (!existDir) {
+                String property = System.getProperty("user.dir");
+                String fileName = property + File.separator + name;
+                ExcelWriter excelWriter = null;
+                InputStream inputStream = null;
+                try {
+                    /**
+                     * 组合导出数据
+                     * 用户问卷答案
+                     */
+                    R QuestnaireAnswersDTOR = communityService.exportRegisterAdmin(pageReserveRegisterDetailedAdminDTO);
+                    QuestnaireAnswersDTO questnaireAnswersDTOS = JSON.parseObject(JSON.toJSONString(QuestnaireAnswersDTOR.getData()), QuestnaireAnswersDTO.class);
+
+                    List<ComActQuestnaireSubVO> subVOList = questnaireAnswersDTOS.getSubs();
+                    //构造表头
+                    List<List<String>> headList = new ArrayList<List<String>>();
+                    String firstRowContent = "登记明细";
+                    List<String> head0 = new ArrayList<>();
+                    head0.add(firstRowContent);
+                    head0.add("登记人昵称");
+                    headList.add(head0);
+                    List<String> head1 = new ArrayList<>();
+                    head1.add(firstRowContent);
+                    head1.add("登记时间");
+                    headList.add(head1);
+                    subVOList.forEach(sub -> {
+                        if (sub.getType() != 5) {
+                            List<String> headn = new ArrayList<>();
+                            headn.add(firstRowContent);
+                            if(!sub.getContent().equals(noHaed)&& StringUtils.isNotEmpty(sub.getContent())){
+                                if(sub.getType() == 11){
+                                    if(sub.getContent().contains("(")){
+                                        headn.add(sub.getContent().substring(0, sub.getContent().indexOf("(")));
+                                    }
+                                    else {
+                                        headn.add(sub.getContent());
+                                    }
+                                }else{
+                                    headn.add(sub.getContent());
+                                }
+                                headList.add(headn);
+                            }
+                        }
+                    });
+                    //数据转换
+                    List<List<Object>> datalist = AssemblyUtils.ReserveData(questnaireAnswersDTOS.getAnswers());
+
+                    WriteCellStyle headWriteCellStyle = new WriteCellStyle();
+                    //设置头居中
+                    headWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
+                    //设置头字体
+                    WriteFont headWriteFont = new WriteFont();
+                    headWriteFont.setFontHeightInPoints((short)6);
+                    headWriteFont.setBold(true);
+                    headWriteCellStyle.setWriteFont(headWriteFont);
+
+
+                    WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
+                    //设置表格内容字体
+                    WriteFont writeFont = new WriteFont();
+                    writeFont.setFontHeightInPoints((short)6);
+                    //设置 水平居中
+                    contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
+                    //设置 垂直居中
+                    contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
+                    contentWriteCellStyle.setWriteFont(writeFont);
+
+                    contentWriteCellStyle.setWrapped(true);
+                    HorizontalCellStyleStrategy horizontalCellStyleStrategy =
+                            new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
+
+
+                    excelWriter = EasyExcel.write(fileName)
+                            .registerWriteHandler(horizontalCellStyleStrategy).registerWriteHandler(new Custemhandler())
+                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                    WriteSheet writeSheet = EasyExcel.writerSheet("登记明细导出数据").head(headList).build();
+                    excelWriter.write(datalist, 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(sftpConfig.getExcelUrl() + name);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    @ApiOperation(value = "导出登记明细不带图片")
+    @PostMapping("/register/list/exportNoImage")
+    public R exportRegisterNoImage(@RequestBody PageReserveRegisterDetailedAdminDTO pageReserveRegisterDetailedAdminDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        String regionCode = communityService.getActBelongRegionCode(loginUserInfo.getCommunityId());
+        if (regionCode.equals("510411")) {
+            ComActReserveDetailAdminVO reserverRecord =
+                    communityService.detailReserveAdmin(pageReserveRegisterDetailedAdminDTO.getReserveId()).getData();
+            if (reserverRecord.getTitle().equals("返攀登记")) {
+                return renheExportRegister(pageReserveRegisterDetailedAdminDTO);
+            }
+        }
+        String ftpUrl = "/mnt/data/web/excel/";
+        String name = "登记明细导出数据.xlsx";
+        String noHaed = "承诺";
+        try {
+            SFTPUtil sftp = new SFTPUtil(sftpConfig.getUserName(), sftpConfig.getPassword(), sftpConfig.getHost(), sftpConfig.getPort());
+            sftp.login();
+            boolean existDir = sftp.isExistDir(ftpUrl + name);
+            if (!existDir) {
+                String property = System.getProperty("user.dir");
+                String fileName = property + File.separator + name;
+                ExcelWriter excelWriter = null;
+                InputStream inputStream = null;
+                try {
+                    /**
+                     * 组合导出数据
+                     * 用户问卷答案
+                     */
+                    R QuestnaireAnswersDTOR = communityService.exportRegisterAdmin(pageReserveRegisterDetailedAdminDTO);
+                    QuestnaireAnswersDTO questnaireAnswersDTOS = JSON.parseObject(JSON.toJSONString(QuestnaireAnswersDTOR.getData()), QuestnaireAnswersDTO.class);
+
+                    List<ComActQuestnaireSubVO> subVOList = questnaireAnswersDTOS.getSubs();
+                    //构造表头
+                    List<List<String>> headList = new ArrayList<List<String>>();
+                    String firstRowContent = "登记明细";
+                    List<String> head0 = new ArrayList<>();
+                    head0.add(firstRowContent);
+                    head0.add("登记人昵称");
+                    headList.add(head0);
+                    List<String> head1 = new ArrayList<>();
+                    head1.add(firstRowContent);
+                    head1.add("登记时间");
+                    headList.add(head1);
+                    subVOList.forEach(sub -> {
+                        if (sub.getType() != 5&&sub.getType() != 11) {
+                            List<String> headn = new ArrayList<>();
+                            headn.add(firstRowContent);
+                            if(!sub.getContent().equals(noHaed)&& StringUtils.isNotEmpty(sub.getContent())){
+                                if(sub.getType() == 11){
+                                    if(sub.getContent().contains("(")){
+                                        headn.add(sub.getContent().substring(0, sub.getContent().indexOf("(")));
+                                    }
+                                    else {
+                                        headn.add(sub.getContent());
+                                    }
+                                }else{
+                                    headn.add(sub.getContent());
+                                }
+                                headList.add(headn);
+                            }
+                        }
+                    });
+                    //数据转换
+                    List<List<Object>> datalist = AssemblyUtils.ReserveDataNoImage(questnaireAnswersDTOS.getAnswers());
+
+                    WriteCellStyle headWriteCellStyle = new WriteCellStyle();
+                    //设置头居中
+                    headWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
+                    //设置头字体
+                    WriteFont headWriteFont = new WriteFont();
+                    headWriteFont.setFontHeightInPoints((short)6);
+                    headWriteFont.setBold(true);
+                    headWriteCellStyle.setWriteFont(headWriteFont);
+
+
+                    WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
+                    //设置表格内容字体
+                    WriteFont writeFont = new WriteFont();
+                    writeFont.setFontHeightInPoints((short)6);
+                    //设置 水平居中
+                    contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
+                    //设置 垂直居中
+                    contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
+                    contentWriteCellStyle.setWriteFont(writeFont);
+
+                    contentWriteCellStyle.setWrapped(true);
+                    HorizontalCellStyleStrategy horizontalCellStyleStrategy =
+                            new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
+
+
+                    excelWriter = EasyExcel.write(fileName)
+                            .registerWriteHandler(horizontalCellStyleStrategy).registerWriteHandler(new Custemhandler())
+                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                    WriteSheet writeSheet = EasyExcel.writerSheet("登记明细导出数据").head(headList).build();
+                    excelWriter.write(datalist, 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(sftpConfig.getExcelUrl() + name);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    /**
+     * 仁和区离攀返攀特别定制excel方法。对于其他区不适用。
+     * 
+     * @param pageReserveRegisterDetailedAdminDTO
+     * @return
+     */
+    public R renheExportRegister(@RequestBody PageReserveRegisterDetailedAdminDTO pageReserveRegisterDetailedAdminDTO) {
+        String ftpUrl = "/mnt/data/web/excel/";
+        String name = "仁和区入攀返攀人员信息统计表模板.xlsx";
+        String noHaed = "承诺";
+        try {
+            SFTPUtil sftp = new SFTPUtil(sftpConfig.getUserName(), sftpConfig.getPassword(), sftpConfig.getHost(),
+                sftpConfig.getPort());
+            sftp.login();
+            boolean existDir = sftp.isExistDir(ftpUrl + name);
+            if (!existDir) {
+                String property = System.getProperty("user.dir");
+                String fileName = property + File.separator + name;
+                ExcelWriter excelWriter = null;
+                InputStream inputStream = null;
+                try {
+                    /**
+                     * 组合导出数据 用户问卷答案new FileInputStream
+                     */
+                    R QuestnaireAnswersDTOR = communityService.exportRegisterAdmin(pageReserveRegisterDetailedAdminDTO);
+                    QuestnaireAnswersDTO questnaireAnswersDTOS = JSON
+                        .parseObject(JSON.toJSONString(QuestnaireAnswersDTOR.getData()), QuestnaireAnswersDTO.class);
+                    // 数据转换
+                    List<List<Object>> datalist = assemblyUtils.ReserveData(questnaireAnswersDTOS.getAnswers());
+                    ForEachUtils.forEach(0, datalist, (index, data) -> {
+                        data.set(0, index + 1);
+                        ForEachUtils.forEach(1, data, (indexitem, item) -> {
+                            if (indexitem == 18 && item.equals("√")) {
+                                String number = "√ /".concat(data.get(20).toString());
+                                data.set(18, number);
+                            }
+                        });
+                        data.remove(20);
+                    });
+                    WriteCellStyle headWriteCellStyle = new WriteCellStyle();
+                    // 设置头居中
+                    headWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
+                    // 设置头字体
+                    WriteFont headWriteFont = new WriteFont();
+                    headWriteFont.setFontHeightInPoints((short)8);
+                    headWriteFont.setBold(true);
+                    headWriteCellStyle.setWriteFont(headWriteFont);
+
+                    WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
+                    // 设置表格内容字体
+                    WriteFont writeFont = new WriteFont();
+                    writeFont.setFontHeightInPoints((short)11);
+                    // 设置 水平居中
+                    contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
+                    // 设置 垂直居中
+                    contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
+                    contentWriteCellStyle.setWriteFont(writeFont);
+                    // 设置边框
+                    // 下边框
+                    contentWriteCellStyle.setBorderBottom(BorderStyle.THIN);
+                    // 左边框
+                    contentWriteCellStyle.setBorderLeft(BorderStyle.THIN);
+                    // 上边框
+                    contentWriteCellStyle.setBorderTop(BorderStyle.THIN);
+                    // 右边框
+                    contentWriteCellStyle.setBorderRight(BorderStyle.THIN);
+                    contentWriteCellStyle.setWrapped(true);
+                    HorizontalCellStyleStrategy horizontalCellStyleStrategy =
+                        new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
+
+                    URL url = new URL(minioUrl.replace("files/", "web/excel/仁和区入攀返攀人员信息统计表.xlsx"));
+                    // 打开连接
+                    URLConnection con = url.openConnection();
+                    // 输入流
+                    InputStream is = con.getInputStream();
+                    excelWriter = EasyExcel.write(fileName).withTemplate(is)
+                        .registerWriteHandler(horizontalCellStyleStrategy).build();
+                    WriteSheet writeSheet = EasyExcel.writerSheet("登记明细导出数据").build();
+                    writeSheet.setRelativeHeadRowIndex(0);
+                    excelWriter.write(datalist, 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(sftpConfig.getExcelUrl() + name);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+    @ApiOperation(value = "导出居家隔离统计")
+    @PostMapping("/register/list/export/homeQuarantine")
+    public R exportRegisterHomeQuarantineStatistics(
+        @RequestBody PageReserveRegisterDetailedAdminDTO pageReserveRegisterDetailedAdminDTO) {
+        String name = "居家隔离统计表.xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+        String noHaed = "承诺";
+        List<List<Object>> datalist = new ArrayList<>();
+        try {
+            SFTPUtil sftp = new SFTPUtil(sftpConfig.getUserName(), sftpConfig.getPassword(), sftpConfig.getHost(),
+                sftpConfig.getPort());
+            sftp.login();
+            boolean existDir = sftp.isExistDir(ftpUrl + name);
+            if (!existDir) {
+                String property = System.getProperty("user.dir");
+                String fileName = property + File.separator + name;
+                ExcelWriter excelWriter = null;
+                InputStream inputStream = null;
+                try {
+                    /**
+                     * 组合导出数据 用户问卷答案
+                     */
+                    R exportResultR = communityService.exportHomeQuarantine(pageReserveRegisterDetailedAdminDTO);
+                    HomeQuarantineRegisterExportVO exportVO = JSON
+                        .parseObject(JSON.toJSONString(exportResultR.getData()), HomeQuarantineRegisterExportVO.class);
+                    List<ComActQuestnaireSubVO> subVOList = exportVO.getSubs();
+                    // 构造表头
+                    List<List<String>> headList = new ArrayList<List<String>>();
+                    String firstRowContent = "重点地区或高风险地区来攀返攀人员信息统计表(居家隔离表)";
+                    List<String> head0 = new ArrayList<>();
+                    head0.add(firstRowContent);
+                    head0.add("登记人昵称");
+                    headList.add(head0);
+                    List<String> head1 = new ArrayList<>();
+                    head1.add(firstRowContent);
+                    head1.add("登记时间");
+                    headList.add(head1);
+                    subVOList.forEach(sub -> {
+                        if (sub.getType() != 5 && sub.getType() != 11 && !sub.getContent().contains("今日上午")
+                            && !sub.getContent().contains("今日下午") && !sub.getContent().contains("今日隔离情况")) {
+                            List<String> headn = new ArrayList<>();
+                            headn.add(firstRowContent);
+                            if (!sub.getContent().equals(noHaed)) {
+                                if (sub.getType() == 11) {
+                                    headn.add(sub.getContent().substring(0, sub.getContent().indexOf("(")));
+                                } else {
+                                    headn.add(sub.getContent());
+                                }
+                                headList.add(headn);
+                            }
+                        }
+                    });
+                    List<String> head2 = new ArrayList<>();
+                    head2.add(firstRowContent);
+                    head2.add("隔离体温情况");
+                    headList.add(head2);
+                    // 数据转换
+                    datalist = exportVO.getDataList();
+                    WriteCellStyle headWriteCellStyle = new WriteCellStyle();
+                    // 设置头居中
+                    headWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
+                    // 设置头字体
+                    WriteFont headWriteFont = new WriteFont();
+                    headWriteFont.setFontHeightInPoints((short)6);
+                    headWriteFont.setBold(true);
+                    headWriteCellStyle.setWriteFont(headWriteFont);
+
+                    WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
+                    // 设置表格内容字体
+                    WriteFont writeFont = new WriteFont();
+                    writeFont.setFontHeightInPoints((short)6);
+                    // 设置 水平居中
+                    contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.LEFT);
+                    // 设置 垂直居中
+                    contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
+                    contentWriteCellStyle.setWriteFont(writeFont);
+
+                    contentWriteCellStyle.setWrapped(true);
+                    HorizontalCellStyleStrategy horizontalCellStyleStrategy =
+                        new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
+
+                    excelWriter = EasyExcel.write(fileName).registerWriteHandler(horizontalCellStyleStrategy)
+                        .registerWriteHandler(new CustemSecondhandler()).build();
+                    WriteSheet writeSheet = EasyExcel.writerSheet("居家隔离统计表").head(headList).build();
+                    excelWriter.write(datalist, 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(sftpConfig.getExcelUrl() + name);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    @ApiOperation(value = "分页查询居家隔离统计", response = ComActReserveRegisterDetailedVO.class)
+    @PostMapping("/register/homeQuarantine/page")
+    public R pageRegisterHomeQuarantine(@RequestBody PageReserveRegisterDetailedAdminDTO detailedAdminDTO) {
+        return communityService.pageRegisterHomeQuarantine(detailedAdminDTO);
+    }
+
+    @ApiOperation(value = "查询题目列表", response = ComActReserveSubListVO.class)
+    @GetMapping("/subject/list")
+    public R subjectList(@RequestParam("reserveId") Long reserveId) {
+        return communityService.subjectListAdmin(reserveId);
+    }
+
+    @ApiOperation(value = "分页查询登记明细列表", response = ComActReserveRegisterDetailedVO.class)
+    @PostMapping("/register/detailed/list")
+    public R registerDetailedList(@RequestBody PageReserveRegisterDetailedAdminDTO detailedAdminDTO) {
+        return communityService.registerDetailedListAdmin(detailedAdminDTO);
+    }
+
+    @ApiOperation(value = "导出登记明细列表", response = ComActReserveRegisterDetailedVO.class)
+    @PostMapping("/register/detailed/list/export")
+    public R registerDetailedListExport(@RequestBody PageReserveRegisterDetailedAdminDTO detailedAdminDTO) {
+        R r = communityService.registerDetailedListAdminExport(detailedAdminDTO);
+        if (r.getData() != null) {
+            List<ReservePdfExportVO> reservePdfExportVOS = (List<ReservePdfExportVO>)r.getData();
+            if (!reservePdfExportVOS.isEmpty() && reservePdfExportVOS.size() <= 100) {
+                String name = "承诺书.pdf";
+                String uuid = UUID.randomUUID().toString().replace("-", "");
+                String ftpUrl = "/mnt/data/web/excel/" + uuid + "/";
+                SFTPUtil sftp = new SFTPUtil(sftpConfig.getUserName(), sftpConfig.getPassword(), sftpConfig.getHost(),
+                    sftpConfig.getPort());
+                sftp.login();
+                boolean existDir = sftp.isExistDir(ftpUrl + name);
+                if (!existDir) {
+                    String property = System.getProperty("user.dir");
+                    String fileName = property + File.separator + name;
+                    Map<String, Object> model = new HashMap<>();
+                    model.put("reservePdfExportVOS", reservePdfExportVOS);
+                    Context ctx = new Context();
+                    ctx.setVariables(model);
+                    String htmlcontext = null;
+                    if (detailedAdminDTO.getPdfType() == 1) {
+                        htmlcontext = templateEngine.process("/gasSafety", ctx);
+                    }
+                    if (detailedAdminDTO.getPdfType() == 2) {
+                        htmlcontext = templateEngine.process("/forestFire", ctx);
+                    }
+                    InputStream inputStream = null;
+                    try {
+                        HtmlToPdfUtil.topdf(htmlcontext, fileName);
+                        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("删除pdf【{}】结果【{}】", absolutePath, delete);
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    } finally {
+                        // 千万别忘记finish 会帮忙关闭流
+                        if (inputStream != null) {
+                            try {
+                                inputStream.close();
+                            } catch (IOException e) {
+                                e.printStackTrace();
+                            }
+                        }
+                    }
+                }
+                return R.ok(sftpConfig.getExcelUrl() + uuid + "/" + name);
+            }
+        }
+        return R.ok(null, "当前数据量太大,请根据筛选条件优化到100条以内");
+    }
+
+    @ApiOperation(value = "查询登记明细详情", response = ComActReserveRegisterDetailedVO.class)
+    @PostMapping("/register/detailed/detail")
+    public R registerDetailedDetail(@RequestParam("reserveRecordId") Long reserveRecordId) {
+        return communityService.registerDetailedDetailAdmin(reserveRecordId);
+    }
+
+    @ApiOperation("对外用户提交数据")
+    @PostMapping("/commit/noToken")
+    public R commitNoToken(@RequestBody ComActReserveCommitVO comActReserveCommitVO) {
+        return communityService.reserveCommitNoToken(comActReserveCommitVO);
+    }
+
+    @ApiOperation("对外用户提交居家隔离")
+    @PostMapping("/homeQuarantine/commit/noToken")
+    public R homeQuarantineCommitNoToken(@RequestBody ComActReserveCommitVO comActReserveCommitVO) {
+        return communityService.homeQuarantineCommitNoToken(comActReserveCommitVO);
+    }
+
+    @ApiOperation(value = "查询西区社区列表")
+    @GetMapping("/westList/noToken")
+    public R getWestCommunityLists() {
+        return communityService.getWestCommunityLists("");
+    }
+
+    @ApiOperation(value = "删除预约登记记录")
+    @GetMapping("/record/delete")
+    public R deleteRecord(@RequestParam("recordId") Long recordId) {
+        return communityService.deleteRecord(recordId);
+    }
+
+    @ApiOperation("5个常规查询")
+    @GetMapping("/fiveCount")
+    public R fiveCount(@RequestParam("reserveId") Long reserveId){
+        return communityService.fiveCount(reserveId);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActReserveDangerAreaApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActReserveDangerAreaApi.java
new file mode 100644
index 0000000..c9d4969
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActReserveDangerAreaApi.java
@@ -0,0 +1,105 @@
+package com.panzhihua.community_backstage.api;
+
+
+import com.panzhihua.common.model.dtos.community.reserve.EditDangerBatchDTO;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.reserve.ComActReserveDangerAreaVO;
+import com.panzhihua.common.model.vos.community.reserve.DangerAreaStatics;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * (ComActReserveDangerArea)表控制层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 相关功能
+ *
+ * @author zzj
+ * @since 2022-04-07 14:22:21
+ */
+@Slf4j
+@Api(tags = {"风险区"})
+@RestController
+@RequestMapping("comActReserveDangerArea")
+public class ComActReserveDangerAreaApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "分页查询",response = ComActReserveDangerAreaVO.class)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return communityService.selectAllComActReserveDangerArea(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation(value = "通过主键查询单条数据",response = ComActReserveDangerAreaVO.class)
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return this.communityService.selectOneComActReserveDangerArea(id);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActReserveDangerAreaVO 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation(value = "修改数据")
+    @PostMapping("/update")
+    public R update(@RequestBody ComActReserveDangerAreaVO comActReserveDangerAreaVO) {
+        return this.communityService.updateComActReserveDangerArea(comActReserveDangerAreaVO);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @ApiOperation(value = "删除数据")
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return this.communityService.deleteComActReserveDangerArea(id);
+    }
+
+    /**
+     * 风险区数据统计
+     * @return
+     */
+    @ApiOperation(value = "风险区数据统计",response = DangerAreaStatics.class)
+    @GetMapping("/statics")
+    public R statics(){
+        return this.communityService.staticsComActReserveDangerArea();
+    }
+
+    /**
+     * 批量设置起始时间
+     * @param editDangerBatchDTO
+     * @return
+     */
+    @ApiOperation(value = "批量设置起始时间")
+    @PostMapping("/updateBatch")
+    public R updateBatch(@RequestBody EditDangerBatchDTO editDangerBatchDTO){
+        return this.communityService.updateBatchComActReserveDangerArea(editDangerBatchDTO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActSocialMemberApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActSocialMemberApi.java
new file mode 100644
index 0000000..77b6da5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActSocialMemberApi.java
@@ -0,0 +1,103 @@
+package com.panzhihua.community_backstage.api;
+
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.ComActSocialMemberVO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.social.ComActSocialProjectMemberVO;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * 社会组织成员表(ComActSocialMember)表控制层
+ *
+ * @author makejava
+ * @since 2021-10-22 09:52:47
+ */
+@Slf4j
+@Api(tags = {"社会组织成员"})
+@RestController
+@RequestMapping("comActSocialMember")
+public class ComActSocialMemberApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "分页查询所有数据",response = ComActSocialMemberVO.class)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        commonPage.setUserType(loginUserInfo.getUserType());
+        commonPage.setUserId(loginUserInfo.getUserId());
+        if(loginUserInfo.getStreetId()!=null){
+            commonPage.setStreetId(loginUserInfo.getStreetId());
+        }
+        else {
+            commonPage.setCommunityId(this.getCommunityId());
+        }
+        return this.communityService.comActSocialMemberSelectAll(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation("详情")
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return this.communityService.comActSocialMemberSelectOne(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActSocialMember 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation("新增数据")
+    @PostMapping
+    public R insert(@RequestBody ComActSocialMemberVO comActSocialMember) {
+        comActSocialMember.setCommunityId(this.getCommunityId());
+        return this.communityService.comActSocialMemberInsert(comActSocialMember);
+    }
+    /**
+     * 修改数据
+     *
+     * @param comActSocialMember 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation("修改数据")
+    @PostMapping("/update")
+    public R update(@RequestBody ComActSocialMemberVO comActSocialMember) {
+        return this.communityService.comActSocialMemberUpdate(comActSocialMember);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @ApiOperation("删除数据")
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return this.communityService.comActSocialMemberDelete(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActSocialOrgApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActSocialOrgApi.java
new file mode 100644
index 0000000..ef82829
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActSocialOrgApi.java
@@ -0,0 +1,107 @@
+package com.panzhihua.community_backstage.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActSocialOrgVO;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * @author zzj
+ */
+@Slf4j
+@Api(tags = {"社会组织"})
+@RestController
+@RequestMapping("/comActSocialOrg")
+public class ComActSocialOrgApi extends BaseController {
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "社会组织列表",response = ComActSocialOrgVO.class)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        if(this.getLoginUserInfo().getCommunityId()!=null){
+            commonPage.setParamId(this.getCommunityId());
+        }
+        if(this.getLoginUserInfo().getStreetId()!=null){
+            commonPage.setStreetId(this.getLoginUserInfo().getStreetId());
+        }
+        return this.communityService.comActSocialOrgSelectAll(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation("通过主键查询单条数据")
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id){
+        return this.communityService.comActSocialOrgSelectOne(id);
+    }
+
+    /**
+     * 通过userId查询
+     * @return 单条数据
+     */
+    @ApiOperation("通过userId查询单条数据")
+    @GetMapping("/selectByUserId")
+    public R selectOneByUserId() {
+        return communityService.selectOneByUserId(this.getUserId());
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActSocialOrg 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation("新增社会组织")
+    @PostMapping
+    public R insert(@RequestBody ComActSocialOrgVO comActSocialOrg) {
+        if(this.getLoginUserInfo().getCommunityId()!=null){
+            comActSocialOrg.setCommunityId(this.getLoginUserInfo().getCommunityId());
+        }
+        if(this.getLoginUserInfo().getStreetId()!=null){
+            comActSocialOrg.setStreetId(this.getLoginUserInfo().getStreetId());
+        }
+        return this.communityService.comActSocialOrgInsert(comActSocialOrg);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActSocialOrg 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation("修改社会组织")
+    @PostMapping("/update")
+    public R update(@RequestBody ComActSocialOrgVO comActSocialOrg) {
+        return this.communityService.comActSocialOrgUpdate(comActSocialOrg);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @ApiOperation("删除社会组织")
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return this.communityService.comActSocialOrgDelete(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActSocialOrgHatchApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActSocialOrgHatchApi.java
new file mode 100644
index 0000000..62bc762
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActSocialOrgHatchApi.java
@@ -0,0 +1,74 @@
+package com.panzhihua.community_backstage.api;
+
+
+import javax.annotation.Resource;
+
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+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.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.social.PageSocialOrgHatchDTO;
+import com.panzhihua.common.model.dtos.community.social.SocialOrgHatchAuditDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.social.SocialOrgHatchVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.validated.PutGroup;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @title: ComActSocialOrgHatchApi
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 社会组织孵化相关
+ * @author: hans
+ * @date: 2022/04/18 16:57
+ */
+@Slf4j
+@Api(tags = {"社会组织孵化"})
+@RestController
+@RequestMapping("/comActSocialOrgHatch")
+public class ComActSocialOrgHatchApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+
+    @ApiOperation(value = "分页查询孵化数据", response = SocialOrgHatchVO.class)
+    @PostMapping("/page")
+    public R pageOrgHatch(@RequestBody PageSocialOrgHatchDTO pageHatchDTO) {
+        return communityService.pageOrgHatch(pageHatchDTO);
+    }
+
+    @ApiOperation(value = "查看孵化数据详情", response = SocialOrgHatchVO.class)
+    @ApiImplicitParam(name = "id", value = "孵化id", required = true)
+    @GetMapping("/detail")
+    public R detailOrgHatch(@RequestParam("id") Long id) {
+        return communityService.detailOrgHatch(id);
+    }
+
+    @ApiOperation(value = "修改孵化状态")
+    @PutMapping("/update/{id}/{status}")
+    public R updateOrgHatchStatus(@PathVariable("id") Long id, @PathVariable("status") Integer status) {
+        return communityService.updateOrgHatchStatus(id, status);
+    }
+
+    @ApiOperation(value = "删除孵化数据")
+    @ApiImplicitParam(name = "id", value = "孵化id", required = true)
+    @GetMapping("/delete")
+    public R deleteOrgHatch(@RequestParam("id") Long id) {
+        return communityService.deleteOrgHatch(id);
+    }
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActSocialOrgHatchAuditApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActSocialOrgHatchAuditApi.java
new file mode 100644
index 0000000..12a683b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActSocialOrgHatchAuditApi.java
@@ -0,0 +1,85 @@
+package com.panzhihua.community_backstage.api;
+
+
+import javax.annotation.Resource;
+
+import org.springframework.validation.annotation.Validated;
+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.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.social.HatchAuditProcessDTO;
+import com.panzhihua.common.model.dtos.community.social.PageSocialOrgHatchAuditDTO;
+import com.panzhihua.common.model.dtos.community.social.SocialOrgHatchAuditDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.social.SocialOrgHatchAuditVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.validated.PutGroup;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @title: ComActSocialOrgHatchAuditApi
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 社会组织孵化申请相关
+ * @author: hans
+ * @date: 2022/04/18 14:14
+ */
+@Slf4j
+@Api(tags = {"社会组织孵化申请"})
+@RestController
+@RequestMapping("/comActSocialOrgHatchAudit")
+public class ComActSocialOrgHatchAuditApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "分页查询孵化申请", response = SocialOrgHatchAuditVO.class)
+    @PostMapping("/page")
+    public R pageHatchAudit(@RequestBody PageSocialOrgHatchAuditDTO pageHatchAuditDTO) {
+        return communityService.pageHatchAudit(pageHatchAuditDTO);
+    }
+
+    @ApiOperation(value = "查看孵化申请详情", response = SocialOrgHatchAuditVO.class)
+    @ApiImplicitParam(name = "id", value = "孵化申请id", required = true)
+    @GetMapping("/detail")
+    public R detailHatchAudit(@RequestParam("id") Long id) {
+        return communityService.detailHatchAudit(id);
+    }
+
+    @ApiOperation(value = "修改孵化申请")
+    @PostMapping("/update")
+    public R updateHatchAudit(@RequestBody @Validated(PutGroup.class) SocialOrgHatchAuditDTO hatchAuditDTO) {
+        return communityService.updateHatchAudit(hatchAuditDTO);
+    }
+
+    @ApiOperation(value = "获取孵化流程配置", response = String.class)
+    @GetMapping("/process")
+    public R getHatchAuditProcess() {
+        return communityService.getHatchAuditProcess();
+    }
+
+    @ApiOperation(value = "修改孵化流程配置")
+    @PutMapping("/process")
+    public R putHatchAuditProcess(@RequestBody HatchAuditProcessDTO processDTO) {
+        return communityService.putHatchAuditProcess(processDTO);
+    }
+
+    @ApiOperation(value = "删除孵化申请")
+    @ApiImplicitParam(name = "id", value = "孵化申请id", required = true)
+    @GetMapping("/delete")
+    public R deleteHatchAudit(@RequestParam("id") Long id) {
+        return communityService.deleteHatchAudit(id);
+    }
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActSocialProjectApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActSocialProjectApi.java
new file mode 100644
index 0000000..e38a8ef
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActSocialProjectApi.java
@@ -0,0 +1,135 @@
+package com.panzhihua.community_backstage.api;
+
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.social.PageProjectSignListDTO;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActSocialOrgVO;
+import com.panzhihua.common.model.vos.community.social.SocialProjectVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.StringUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import java.util.Date;
+
+/**
+ * 三社联动项目表(ComActSocialProject)表控制层
+ *
+ * @author zzj
+ * @since 2021-12-22 14:02:48
+ */
+@Slf4j
+@Api(tags = {"项目管理"})
+@RestController
+@RequestMapping("comActSocialProject")
+public class ComActSocialProjectApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "分页查询接口",response =SocialProjectVO.class )
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        commonPage.setUserType(loginUserInfo.getUserType());
+        commonPage.setUserId(loginUserInfo.getUserId());
+        if(loginUserInfo.getStreetId()!=null){
+            commonPage.setStreetId(loginUserInfo.getStreetId());
+        } else {
+            commonPage.setCommunityId(this.getCommunityId());
+        }
+        return communityService.selectAllComActSocialProject(commonPage);
+    }
+
+    /**
+     * 平台详情接口
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation(value = "平台详情接口",response =SocialProjectVO.class )
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return communityService.selectOneComActSocialProject(id);
+    }
+    /**
+     * 根据项目id分页获取关联项目
+     */
+    @ApiOperation(value = "根据项目id分页获取关联项目")
+    @PostMapping("/getRelation")
+    public R getRelation(@RequestBody CommonPage commonPage){
+        return communityService.getRelationComActSocialProject(commonPage);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param socialProjectVO 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation(value = "新增数据")
+    @PostMapping
+    public R insert(@RequestBody SocialProjectVO socialProjectVO) {
+        if(this.getLoginUserInfo().getStreetId()!=null){
+            socialProjectVO.setStreetId(this.getLoginUserInfo().getStreetId());
+        }
+        else {
+            socialProjectVO.setCommunityId(this.getCommunityId());
+        }
+        if(StringUtils.isNotEmpty(socialProjectVO.getResponsibility())){
+            socialProjectVO.setStatus(3);
+        }
+        return communityService.insertComActSocialProject(socialProjectVO);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param socialProjectVO 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation(value = "修改数据")
+    @PostMapping("/update")
+    public R update(@RequestBody SocialProjectVO socialProjectVO) {
+        if(StringUtils.isNotEmpty(socialProjectVO.getResponsibility())){
+            socialProjectVO.setStatus(3);
+        }
+        return communityService.updateComActSocialProject(socialProjectVO);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @ApiOperation(value = "删除数据")
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return communityService.deleteComActSocialProject(id);
+    }
+
+    @ApiOperation(value = "分页查询项目报名列表", response = ComActSocialOrgVO.class)
+    @PostMapping("signList")
+    public R pageProjectSignList(@RequestBody @Valid PageProjectSignListDTO pageProjectSignListDTO) {
+        return communityService.pageProjectSignList(pageProjectSignListDTO);
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActSocialProjectMemberApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActSocialProjectMemberApi.java
new file mode 100644
index 0000000..290a663
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActSocialProjectMemberApi.java
@@ -0,0 +1,104 @@
+package com.panzhihua.community_backstage.api;
+
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.social.ComActSocialProjectMemberVO;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * 项目人员(ComActSocialProjectMember)表控制层
+ *
+ * @author makejava
+ * @since 2021-12-23 15:16:43
+ */
+@Slf4j
+@Api(tags = {"项目成员管理"})
+@RestController
+@RequestMapping("comActSocialProjectMember")
+public class ComActSocialProjectMemberApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation("分页查询所有数据")
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return communityService.selectAllComActSocialProjectMember(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation("通过主键查询单条数据")
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return communityService.selectOneComActSocialProjectMember(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActSocialProjectMemberVO 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation("新增数据")
+    @PostMapping
+    public R insert(@RequestBody ComActSocialProjectMemberVO comActSocialProjectMemberVO) {
+        return communityService.insertComActSocialProjectMember(comActSocialProjectMemberVO);
+    }
+    /**
+     * 批量新增数据
+     *
+     * @param comActSocialMember 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation("批量新增数据")
+    @PostMapping("/batch")
+    public R insertBatch(@RequestBody ComActSocialProjectMemberVO comActSocialMember) {
+        return this.communityService.comActSocialMemberInsertBatch(comActSocialMember);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActSocialProjectMemberVO 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation("修改数据")
+    @PostMapping("/update")
+    public R update(@RequestBody ComActSocialProjectMemberVO comActSocialProjectMemberVO) {
+        return communityService.updateComActSocialProjectMember(comActSocialProjectMemberVO);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @ApiOperation("删除")
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return communityService.deleteComActSocialProjectMember(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActSocialProjectPublicityApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActSocialProjectPublicityApi.java
new file mode 100644
index 0000000..c835848
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActSocialProjectPublicityApi.java
@@ -0,0 +1,107 @@
+package com.panzhihua.community_backstage.api;
+
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.social.ComActSocialProjectPublicityVO;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 项目宣传表(ComActSocialProjectPublicity)表控制层
+ *
+ * @author makejava
+ * @since 2021-12-23 14:30:55
+ */
+@Slf4j
+@Api(tags = {"项目宣传管理"})
+@RestController
+@RequestMapping("comActSocialProjectPublicity")
+public class ComActSocialProjectPublicityApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "分页查询",response = ComActSocialProjectPublicityVO.class)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return communityService.selectAllComActSocialProjectPublicity(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation("通过主键查询单条数据")
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return communityService.selectOneComActSocialProjectPublicity(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActSocialProjectPublicityVO 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation("新增数据")
+    @PostMapping
+    public R insert(@RequestBody ComActSocialProjectPublicityVO comActSocialProjectPublicityVO) {
+        comActSocialProjectPublicityVO.setReleaseName(this.getLoginUserInfo().getName());
+        return communityService.insertComActSocialProjectPublicity(comActSocialProjectPublicityVO);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActSocialProjectPublicityVO 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation("修改数据")
+    @PostMapping("/update")
+    public R update(@RequestBody ComActSocialProjectPublicityVO comActSocialProjectPublicityVO) {
+        return communityService.updateComActSocialProjectPublicity(comActSocialProjectPublicityVO);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @ApiOperation("删除数据")
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return communityService.deleteComActSocialProjectPublicity(id);
+    }
+    /**
+     * 多条删除数据
+     *
+     * @param ids 主键结合
+     * @return 删除结果
+     */
+    @ApiOperation("多条删除数据")
+    @PostMapping("delBatch")
+    public R delBatch(@RequestBody List<Long> ids) {
+        return communityService.delBatchComActSocialProjectPublicity(ids);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActSocialProjectScheduleApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActSocialProjectScheduleApi.java
new file mode 100644
index 0000000..f1d2200
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActSocialProjectScheduleApi.java
@@ -0,0 +1,93 @@
+package com.panzhihua.community_backstage.api;
+
+
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.social.ComActSocialProjectScheduleVO;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * 项目进度表(ComActSocialProjectSchedule)表控制层
+ *
+ * @author makejava
+ * @since 2021-12-23 14:31:16
+ */
+@Slf4j
+@Api(tags = {"项目进度管理"})
+@RestController
+@RequestMapping("comActSocialProjectSchedule")
+public class ComActSocialProjectScheduleApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 根据projectId查询所有进度
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation("分页查询")
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return communityService.selectAllComActSocialProjectSchedule(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation("通过主键查询单条数据")
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return communityService.selectOneComActSocialProjectSchedule(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActSocialProjectScheduleVO 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation("新增数据")
+    @PostMapping
+    public R insert(@RequestBody ComActSocialProjectScheduleVO comActSocialProjectScheduleVO) {
+        return communityService.insertComActSocialProjectSchedule(comActSocialProjectScheduleVO);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActSocialProjectScheduleVO 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation("修改数据")
+    @PostMapping("/update")
+    public R update(@RequestBody ComActSocialProjectScheduleVO comActSocialProjectScheduleVO) {
+        return communityService.updateComActSocialProjectSchedule(comActSocialProjectScheduleVO);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @ApiOperation("删除数据")
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return communityService.deleteComActSocialProjectSchedule(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActSocialWorkerApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActSocialWorkerApi.java
new file mode 100644
index 0000000..816a180
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActSocialWorkerApi.java
@@ -0,0 +1,162 @@
+package com.panzhihua.community_backstage.api;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.alibaba.fastjson.JSONArray;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.listen.ComActSocialWorkerExcelListen;
+import com.panzhihua.common.listen.ComCvtServeExcelListen;
+import com.panzhihua.common.model.dtos.civil.*;
+import com.panzhihua.common.model.dtos.community.ExportUserDTO;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.dtos.user.EexcelUserDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.civil.ComActSocialWorkerDetailsVO;
+import com.panzhihua.common.model.vos.civil.ComActSocialWorkerVO;
+import com.panzhihua.common.model.vos.community.ComCvtServeExcelVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.ClazzUtils;
+import com.panzhihua.common.utlis.SFTPUtil;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.community_backstage.excel.CustomSheetWriteHandler;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+import java.util.UUID;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-06-03
+ * */
+@Slf4j
+@RestController
+@RequestMapping("/comactsocialworker")
+@Api(tags = {"社工"})
+public class ComActSocialWorkerApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @Value("${excel.comactsocialworkerUrl}")
+    private String comactsocialworkerUrl;
+    /**
+     * 新增社工
+     * @param {classNameFirstLower}AddDTO 添加社工传递对象
+     * @return 新增结果
+     */
+    @PostMapping()
+    @ApiOperation(value = "新增社工", response = R.class)
+    R add(@Validated @RequestBody ComActSocialWorkerAddDTO comActSocialWorkerAddDTO){
+        ClazzUtils.setIfStringIsEmpty(comActSocialWorkerAddDTO);
+        comActSocialWorkerAddDTO.setUserId(getUserId());
+        comActSocialWorkerAddDTO.setCommunityId(getCommunityId());
+        return communityService.addComactsocialworker(comActSocialWorkerAddDTO);
+    }
+
+    /**
+     * 修改
+     * @param comActSocialWorkerEditDTO 修改社工传递对象
+     * @return 修改结果
+     */
+    @PutMapping()
+    @ApiOperation(value = "编辑社工", response = R.class)
+    R edit(@Validated @RequestBody ComActSocialWorkerEditDTO comActSocialWorkerEditDTO){
+        comActSocialWorkerEditDTO.setUserId(getUserId());
+        return communityService.editComactsocialworker(comActSocialWorkerEditDTO);
+    }
+
+    /**
+     * 分页查找
+     * @param pageComActSocialWorkerDTO 查找社工传递对象
+     * @return 查找结果
+     */
+    @GetMapping()
+    @ApiOperation(value = "查询社工", response= ComActSocialWorkerVO.class)
+    R query(@Validated @ModelAttribute PageComActSocialWorkerDTO pageComActSocialWorkerDTO){
+        if(this.getLoginUserInfo().getStreetId()!=null){
+            pageComActSocialWorkerDTO.setStreetId(this.getLoginUserInfo().getStreetId().toString());
+        }
+        else {
+            pageComActSocialWorkerDTO.setCommunityId(this.getCommunityId());
+        }
+        return communityService.queryComactsocialworker(pageComActSocialWorkerDTO);
+    }
+
+    /**
+     * 删除
+     * @param comActSocialWorkerDeleteDTO 删除社工传递对象
+     * @return 删除结果
+     */
+    @DeleteMapping()
+    @ApiOperation(value = "删除社工", response = R.class)
+    R delete(@Validated @RequestBody ComActSocialWorkerDeleteDTO  comActSocialWorkerDeleteDTO){
+        return communityService.deleteComactsocialworker(comActSocialWorkerDeleteDTO);
+    }
+
+    /**
+     * 查询社工详细信息
+     * @param id 社工 id
+     * @return 查找结果
+     */
+    @GetMapping("/{id}")
+    @ApiOperation(value = "查询社工详细信息")
+    R<ComActSocialWorkerVO> details(@PathVariable("id") Long id){
+        return communityService.comActSocialWorkerDetails(id);
+    }
+
+    /**
+     * 导入社工名单
+     * @return
+     */
+    @ApiOperation(value = "导入社工名单")
+    @PostMapping(value = "/import", consumes = "multipart/*", headers = "content-type=multipart/form-data")
+    public R downloadTemplate(@RequestParam MultipartFile file, HttpServletRequest request) {
+        String fileName = file.getOriginalFilename();  //获取文件名
+        log.info("传入文件名字【{}】",fileName);
+        InputStream inputStream = null;
+        try {
+            inputStream = file.getInputStream();
+            EasyExcel.read(inputStream, ComActSocialWorkerExcelVO.class, new ComActSocialWorkerExcelListen(communityService,this.getCommunityId())).sheet().doRead();
+        } catch (IOException e) {
+            e.printStackTrace();
+            log.error("导入模板失败【{}】", e.getMessage());
+            return R.fail("信息有误");
+        }
+        return R.ok();
+    }
+
+
+    @GetMapping("/getTemplate")
+    @ApiOperation("获取模板")
+    public R getTemplate(){
+        return R.ok(comactsocialworkerUrl);
+    }
+
+    @ApiOperation("获取活动社工")
+    @PostMapping("/activity")
+    public R activity(@RequestBody CommonPage commonPage){
+        return communityService.activity(commonPage);
+    }
+    @ApiOperation("根据社工获取活动")
+    @PostMapping("/activityList")
+    R activityList(@RequestBody CommonPage commonPage){
+        return communityService.activityList(commonPage);
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActUserWalletApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActUserWalletApi.java
new file mode 100644
index 0000000..15267c3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActUserWalletApi.java
@@ -0,0 +1,183 @@
+package com.panzhihua.community_backstage.api;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.factory.annotation.Value;
+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.RestController;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+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.wallet.ComActWalletSettlementAdminDTO;
+import com.panzhihua.common.model.dtos.community.wallet.PageComActWalletAdminDTO;
+import com.panzhihua.common.model.dtos.community.wallet.PageComActWalletTradeAdminDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActUserWalletTradeExcelVO;
+import com.panzhihua.common.model.vos.community.ComActUserWalletTradeRewardExcelVO;
+import com.panzhihua.common.model.vos.community.wallet.ComActWalletAdminVO;
+import com.panzhihua.common.model.vos.community.wallet.ComActWalletTradeAdminVO;
+import com.panzhihua.common.model.vos.community.wallet.ComActWalletTradeStatisticsAdminVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.SFTPUtil;
+import com.panzhihua.community_backstage.excel.CustomSheetWriteHandler;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+@Api(tags = {"财务管理模块"})
+@RestController
+@RequestMapping("/user/wallet/")
+public class ComActUserWalletApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+    @Value("${excel.userurl}")
+    private String excelUrl;
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+
+    @ApiOperation(value = "分页查询收益结算列表", response = ComActWalletAdminVO.class)
+    @PostMapping("/page")
+    public R page(@RequestBody PageComActWalletAdminDTO pageWalletAdminDTO) {
+        Long communityId = this.getCommunityId();
+        pageWalletAdminDTO.setCommunityId(communityId);
+        return communityService.pageUserWalletAdmin(pageWalletAdminDTO);
+    }
+
+    @ApiOperation(value = "结算收益")
+    @PostMapping("/settlement")
+    public R settlement(@RequestBody ComActWalletSettlementAdminDTO settlementAdminDTO) {
+        settlementAdminDTO.setUserId(this.getUserId());
+        return communityService.userWalletSettlementAdmin(settlementAdminDTO);
+    }
+
+    @ApiOperation(value = "分页查询交易记录列表", response = ComActWalletTradeAdminVO.class)
+    @PostMapping("/trade/page")
+    public R tradePage(@RequestBody PageComActWalletTradeAdminDTO pageTradeAdminDTO) {
+        Long communityId = this.getCommunityId();
+        pageTradeAdminDTO.setCommunityId(communityId);
+        return communityService.pageUserWalletTradeAdmin(pageTradeAdminDTO);
+    }
+
+    @ApiOperation(value = "查询用户交易总额")
+    @PostMapping("/trade/user/total")
+    public R tradeUserTotal(@RequestBody PageComActWalletTradeAdminDTO pageTradeAdminDTO) {
+        Long communityId = this.getCommunityId();
+        pageTradeAdminDTO.setCommunityId(communityId);
+        return communityService.getTradeUserTotalWalletTradeAdmin(pageTradeAdminDTO);
+    }
+
+    @ApiOperation(value = "导出交易记录")
+    @PostMapping("/trade/export")
+    public R tradeExport(@RequestBody PageComActWalletTradeAdminDTO pageTradeAdminDTO) {
+        Long communityId = this.getCommunityId();
+        pageTradeAdminDTO.setCommunityId(communityId);
+
+        String fileNames = "";
+        if (pageTradeAdminDTO.getChangeType().equals(1)) {
+            fileNames = "奖励台账";
+        } else {
+            fileNames = "结算记录";
+        }
+        String name = fileNames + "导出数据.xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+        // 用户搜索了就下载搜索的用户否则下载所有用户
+        R r = communityService.getTradeUserTotalWalletTradeExportAdmin(pageTradeAdminDTO);
+        if (R.isOk(r)) {
+            List<ComActUserWalletTradeExcelVO> jsTradeList = null;
+            List<ComActUserWalletTradeRewardExcelVO> jlTradeList = null;
+            if (pageTradeAdminDTO.getChangeType().equals(1)) {
+                r = communityService.getTradeUserTotalJLWalletTradeExportAdmin(pageTradeAdminDTO);
+                jlTradeList =
+                    JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComActUserWalletTradeRewardExcelVO.class);
+            } else {
+                jsTradeList =
+                    JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComActUserWalletTradeExcelVO.class);
+            }
+
+            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 {
+                        if (pageTradeAdminDTO.getChangeType().equals(1)) {
+                            excelWriter = EasyExcel.write(fileName, ComActUserWalletTradeRewardExcelVO.class)
+                                .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                                .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                            WriteSheet writeSheet = EasyExcel.writerSheet(fileNames + "导出").build();
+                            excelWriter.write(jlTradeList, writeSheet);
+                        } else {
+                            excelWriter = EasyExcel.write(fileName, ComActUserWalletTradeExcelVO.class)
+                                .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                                .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                            WriteSheet writeSheet = EasyExcel.writerSheet(fileNames + "导出").build();
+                            excelWriter.write(jsTradeList, 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();
+            }
+        }
+        return r;
+    }
+
+    @ApiOperation(value = "交易记录统计", response = ComActWalletTradeStatisticsAdminVO.class)
+    @PostMapping("/trade/user/statistics")
+    public R tradeUserStatistics(@RequestBody PageComActWalletTradeAdminDTO pageTradeAdminDTO) {
+        Long communityId = this.getCommunityId();
+        pageTradeAdminDTO.setCommunityId(communityId);
+        return communityService.getTradeUserStatisticsAdmin(pageTradeAdminDTO);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActWarehouseApplyApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActWarehouseApplyApi.java
new file mode 100644
index 0000000..4e7907d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActWarehouseApplyApi.java
@@ -0,0 +1,224 @@
+package com.panzhihua.community_backstage.api;
+
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.ExportUserDTO;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.dtos.user.EexcelUserDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActUserWalletTradeExcelVO;
+import com.panzhihua.common.model.vos.community.ComActUserWalletTradeRewardExcelVO;
+import com.panzhihua.common.model.vos.community.warehouse.ApplyStatistics;
+import com.panzhihua.common.model.vos.community.warehouse.ComActWarehouseApplyExcelVO;
+import com.panzhihua.common.model.vos.community.warehouse.ComActWarehouseApplyVO;
+import com.panzhihua.common.model.vos.community.warehouse.QRCodeVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.SFTPUtil;
+import com.panzhihua.community_backstage.excel.CustomSheetWriteHandler;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.util.Date;
+import java.util.List;
+import java.util.UUID;
+
+/**
+ * 物品申请表(ComActWarehouseApply)表控制层
+ *
+ * @author makejava
+ * @since 2021-10-09 17:13:53
+ */
+@Slf4j
+@Api(tags = {"爱心义仓申领记录接口"})
+@RestController
+@RequestMapping("comActWarehouseApply")
+public class ComActWarehouseApplyApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    @Value("${excel.userurl}")
+    private String excelUrl;
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "分页查询所有数据",response = ComActWarehouseApplyVO.class)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        commonPage.setParamId(this.getCommunityId());
+        return this.communityService.comActWarehouseApplySelectAll(commonPage);
+    }
+
+    /**
+     * 统计查询
+     *
+     * @return 所有数据
+     */
+    @ApiOperation(value = "统计查询",response = ApplyStatistics.class)
+    @GetMapping("selectStatics")
+    public R selectAll() {
+        return this.communityService.comActWarehouseApplySelectAll(this.getCommunityId());
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation(value = "通过主键查询单条数据",response = ComActWarehouseApplyVO.class)
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Integer id) {
+        return this.communityService.comActWarehouseApplySelectOne(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActWarehouseApply 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation("新增数据")
+    @PostMapping
+    public R insert(@RequestBody ComActWarehouseApplyVO comActWarehouseApply) {
+        comActWarehouseApply.setCommunityId(this.getCommunityId());
+        comActWarehouseApply.setCreateTime(new Date());
+        return this.communityService.comActWarehouseApplyInsert(comActWarehouseApply);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActWarehouseApply 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation("修改数据")
+    @PostMapping("/update")
+    public R update(@RequestBody ComActWarehouseApplyVO comActWarehouseApply) {
+        if(comActWarehouseApply.getStatus().equals(ComActWarehouseApplyVO.status.yqx)){
+            comActWarehouseApply.setCancelTime(new Date());
+        }
+        if(comActWarehouseApply.getStatus().equals(ComActWarehouseApplyVO.status.dlq)||comActWarehouseApply.getStatus().equals(ComActWarehouseApplyVO.status.ybh)){
+            comActWarehouseApply.setSolveTime(new Date());
+            comActWarehouseApply.setSolveUserId(this.getUserId());
+        }
+        if(comActWarehouseApply.getStatus().equals(ComActWarehouseApplyVO.status.ylq)){
+            comActWarehouseApply.setActualTime(new Date());
+            comActWarehouseApply.setWriteOffUserId(this.getUserId());
+        }
+        return this.communityService.comActWarehouseApplyUpdate(comActWarehouseApply);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @ApiOperation("删除数据")
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return this.communityService.comActWarehouseApplyDelete(id);
+    }
+
+    /**
+     * 生成二维码
+     * @param qrCodeVO
+     * @return
+     */
+    @ApiOperation("生成二维码")
+    @PostMapping("/getQRCode")
+    public R getQRCode(@RequestBody QRCodeVO qrCodeVO){
+        return this.communityService.comActWarehouseApplyGetQRCode(qrCodeVO);
+    }
+
+    @ApiOperation(value = "导出")
+    @PostMapping("/export")
+    public R export(@RequestBody CommonPage commonPage) {
+        Long communityId = this.getCommunityId();
+        commonPage.setParamId(communityId);
+
+
+        String name = "物品领取.xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+        // 用户搜索了就下载搜索的用户否则下载所有用户
+        R r = communityService.comActWarehouseApplyExport(commonPage);
+        if (R.isOk(r)) {
+            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, ComActWarehouseApplyExcelVO.class)
+                                .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                                .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet( "导出").build();
+                        excelWriter.write(JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComActWarehouseApplyExcelVO.class), 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();
+            }
+        }
+        return r;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActWarehouseBaseApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActWarehouseBaseApi.java
new file mode 100644
index 0000000..5d355ca
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActWarehouseBaseApi.java
@@ -0,0 +1,58 @@
+package com.panzhihua.community_backstage.api;
+
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.warehouse.ComActWarehouseBaseVO;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * 义仓基础设置表(ComActWarehouseBase)表控制层
+ *
+ * @author makejava
+ * @since 2021-10-11 09:21:53
+ */
+@Slf4j
+@Api(tags = {"爱心义仓基础记录接口"})
+@RestController
+@RequestMapping("comActWarehouseBase")
+public class ComActWarehouseBaseApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 通过社区id查询单条数据
+     *
+     * @return 单条数据
+     */
+    @ApiOperation(value = "查询单条数据",response = ComActWarehouseBaseVO.class)
+    @GetMapping
+    public R selectOne() {
+        return this.communityService.comActWarehouseBaseSelectOne(this.getCommunityId());
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActWarehouseBase 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation("新增接口")
+    @PostMapping
+    public R insert(@RequestBody ComActWarehouseBaseVO comActWarehouseBase) {
+        comActWarehouseBase.setCreateTime(new Date());
+        comActWarehouseBase.setCommunityId(this.getCommunityId());
+        return communityService.comActWarehouseBaseInsert(comActWarehouseBase);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActWarehouseDonatesApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActWarehouseDonatesApi.java
new file mode 100644
index 0000000..f8139c4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComActWarehouseDonatesApi.java
@@ -0,0 +1,198 @@
+package com.panzhihua.community_backstage.api;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.validation.annotation.Validated;
+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 org.springframework.web.multipart.MultipartFile;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.fastjson.JSONArray;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.listen.WarehouseDonatesExcelListen;
+import com.panzhihua.common.model.dtos.community.warehouse.ComActWarehouseApplyDTO;
+import com.panzhihua.common.model.dtos.community.warehouse.ComActWarehouseDonatesDTO;
+import com.panzhihua.common.model.dtos.community.warehouse.ExportDonatesDTO;
+import com.panzhihua.common.model.dtos.community.warehouse.PageDonatesDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.warehouse.ComActWarehouseDonatesVO;
+import com.panzhihua.common.model.vos.community.warehouse.DonatesStatisticsVO;
+import com.panzhihua.common.model.vos.community.warehouse.ExportDonatesVO;
+import com.panzhihua.common.model.vos.community.warehouse.WarehouseDonatesExcelVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.SFTPUtil;
+import com.panzhihua.common.validated.AddGroup;
+import com.panzhihua.common.validated.PutGroup;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @title: ComActWarehouseApi
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 爱心义仓相关接口
+ * @author: hans
+ * @date: 2021/10/09 17:35
+ */
+
+@Slf4j
+@Api(tags = {"爱心义仓捐赠相关"})
+@RestController
+@RequestMapping("/warehouse/donates")
+public class ComActWarehouseDonatesApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @Value("${excel.donatesimporturl}")
+    private String donatesImportUrl;
+    @Value("${excel.userurl}")
+    private String excelUrl;
+    @Value("${ftp.username}")
+    private String userName;
+    @Value("${ftp.password}")
+    private String password;
+    @Value("${ftp.host}")
+    private String host;
+    @Value("${ftp.port}")
+    private int port;
+    @Value("${ftp.url}")
+    private String url;
+
+    @PostMapping("/import")
+    @ApiOperation(value = "捐赠物品导入", response = R.class)
+    public R importDonates(@RequestParam MultipartFile file) {
+        InputStream inputStream;
+        try {
+            inputStream = file.getInputStream();
+            EasyExcel.read(inputStream, WarehouseDonatesExcelVO.class,
+                            new WarehouseDonatesExcelListen(communityService, getCommunityId(), getUserId())).sheet().doRead();
+        } catch (IOException e) {
+            e.printStackTrace();
+            log.error("导入捐赠物品失败【{}】", e.getMessage());
+        }
+        return R.ok();
+    }
+
+    @GetMapping("/import/templates")
+    @ApiOperation(value = "获取物品捐赠导入模板", response = R.class)
+    public R getDonatesImportTemplate() {
+        return R.ok(donatesImportUrl);
+    }
+
+    @ApiOperation(value = "捐赠物品导出")
+    @PostMapping("/export")
+    public R exportDonates(@RequestBody ExportDonatesDTO exportDonatesDTO) {
+        String communityName = getCommunityName();
+        exportDonatesDTO.setCommunityId(getCommunityId());
+        String url = excelUrl;
+        String name = "爱心义仓" + communityName + "捐赠物品导出.xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+        R r = communityService.exportDonates(exportDonatesDTO);
+        if (R.isOk(r)) {
+            List<ExportDonatesVO> exportDonatesVOList =
+                    JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ExportDonatesVO.class);
+            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, ExportDonatesVO.class).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet("爱心义仓捐赠物品导出").build();
+                        excelWriter.write(exportDonatesVOList, 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(url + name);
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error("文件传输失败【{}】", e.getMessage());
+                return R.fail();
+            }
+        }
+        return R.fail("未查询到数据");
+    }
+
+    @ApiOperation(value = "分页查询捐赠物品", response = ComActWarehouseDonatesVO.class)
+    @PostMapping("/page")
+    public R pageDonates(@RequestBody PageDonatesDTO pageDonatesDTO) {
+        pageDonatesDTO.setCommunityId(getCommunityId());
+        return communityService.pageDonates(pageDonatesDTO);
+    }
+
+    @ApiOperation(value = "新增物品捐赠")
+    @PostMapping("/add")
+    public R addDonates(@RequestBody @Validated(AddGroup.class) ComActWarehouseDonatesDTO comActWarehouseDonatesDTO) {
+        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
+        comActWarehouseDonatesDTO.setCommunityId(loginUserInfo.getCommunityId());
+        comActWarehouseDonatesDTO.setRegisterBy(loginUserInfo.getUserId());
+        comActWarehouseDonatesDTO.setSigningBy(loginUserInfo.getUserId());
+        return communityService.addDonates(comActWarehouseDonatesDTO);
+    }
+
+    @ApiOperation(value = "查看物品捐赠详情", response = ComActWarehouseDonatesVO.class)
+    @GetMapping("/get")
+    public R getDonates(@RequestParam("donatesId") Long donatesId) {
+        return communityService.getDonates(donatesId, 0, 0L);
+    }
+
+    @ApiOperation(value = "捐赠物品签收")
+    @PostMapping("/signing")
+    public R signingDonates(@RequestBody @Validated(PutGroup.class) ComActWarehouseDonatesDTO comActWarehouseDonatesDTO) {
+        comActWarehouseDonatesDTO.setSigningBy(getUserId());
+        return communityService.signingDonates(comActWarehouseDonatesDTO);
+    }
+
+    @ApiOperation(value = "捐赠物品统计查询", response = DonatesStatisticsVO.class)
+    @GetMapping("/statistics")
+    public R getDonatesStatistics() {
+        return communityService.getDonatesStatistics(getCommunityId());
+    }
+
+    @ApiOperation("物品领用")
+    @PostMapping("/apply")
+    public R applyDonates(@RequestBody @Validated(AddGroup.class) ComActWarehouseApplyDTO comActWarehouseApplyDTO) {
+        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
+        comActWarehouseApplyDTO.setOperateUserId(loginUserInfo.getUserId());
+        comActWarehouseApplyDTO.setCommunityId(loginUserInfo.getCommunityId());
+        return communityService.applyDonates(comActWarehouseApplyDTO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComAreaTownCommunityApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComAreaTownCommunityApi.java
new file mode 100644
index 0000000..d07b777
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComAreaTownCommunityApi.java
@@ -0,0 +1,43 @@
+package com.panzhihua.community_backstage.api;
+
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.acid.ComAreaCounty;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * (ComAreaTownCommunity)表控制层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 相关功能
+ *
+ * @author zzj
+ * @since 2022-04-10 17:37:33
+ */
+@Api(tags = {"区县联动列表"})
+@RestController
+@RequestMapping("comAreaTownCommunity")
+public class ComAreaTownCommunityApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+    @ApiOperation(value = "列表查询",response = ComAreaCounty.class)
+    @GetMapping("/areaTownCommunity")
+    public R test(){
+       return  communityService.areaTownCommunity(this.getLoginUserInfo().getName(),this.getUserId());
+    }
+    @ApiOperation(value = "新列表查询",response = ComAreaCounty.class)
+    @GetMapping("/areaTownCommunityNew")
+    public R testNew(){
+        return  communityService.areaTownCommunity("panzhihua",this.getUserId());
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComBatteryCommodityActivityApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComBatteryCommodityActivityApi.java
new file mode 100644
index 0000000..e51f801
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComBatteryCommodityActivityApi.java
@@ -0,0 +1,144 @@
+package com.panzhihua.community_backstage.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.common.AddComBatteryCommodityActivityDto;
+import com.panzhihua.common.model.dtos.common.EditComBatteryCommodityActivityDto;
+import com.panzhihua.common.model.dtos.common.PageComBatteryCommodityActivityDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.common.ComBatteryCommodityActivityVo;
+import com.panzhihua.common.service.community.ComBatteryCommodityActivityFeign;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * title: 电动车商城-商家活动表(ComBatteryCommodityActivity)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商家活动表
+ *
+ * @author lyq
+ * @date 2022-03-29 13:17:38
+ */
+@Slf4j
+@Api(tags = {"电动车商城-活动管理"})
+@RestController
+@RequestMapping("/comBatteryCommodityActivity")
+public class ComBatteryCommodityActivityApi extends BaseController {
+
+    @Resource
+    private ComBatteryCommodityActivityFeign comBatteryCommodityActivityService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommodityActivity 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-03-29 13:17:38
+     */
+    @ApiOperation(value = "分页查询活动列表",response = ComBatteryCommodityActivityVo.class)
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComBatteryCommodityActivityDto comBatteryCommodityActivity) {
+        comBatteryCommodityActivity.setStoreId(this.getCommunityId());
+        return this.comBatteryCommodityActivityService.queryByPage(comBatteryCommodityActivity);
+    }
+
+    /**
+     * description  add  新增数据
+     *
+     * @param comBatteryCommodityActivity 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-29 13:17:38
+     */
+    @ApiOperation(value = "新增活动")
+    @PostMapping("/add")
+    public R add(@RequestBody AddComBatteryCommodityActivityDto comBatteryCommodityActivity) {
+        comBatteryCommodityActivity.setStoreId(this.getCommunityId());
+        comBatteryCommodityActivity.setCreateAt(new Date());
+        comBatteryCommodityActivity.setCreateBy(this.getUserId());
+        return this.comBatteryCommodityActivityService.insert(comBatteryCommodityActivity);
+    }
+
+    /**
+     * description  edit  编辑数据
+     *
+     * @param comBatteryCommodityActivity 请求参数
+     * @return 编辑结果
+     * @author lyq
+     * @date 2022-03-29 13:17:38
+     */
+    @ApiOperation(value = "编辑活动")
+    @PutMapping("/edit")
+    public R edit(@RequestBody EditComBatteryCommodityActivityDto comBatteryCommodityActivity) {
+        comBatteryCommodityActivity.setUpdateAt(new Date());
+        comBatteryCommodityActivity.setUpdateBy(this.getUserId());
+        if(comBatteryCommodityActivity.getStatus() == null){
+            comBatteryCommodityActivity.setStatus(1);
+        }
+        return this.comBatteryCommodityActivityService.update(comBatteryCommodityActivity);
+    }
+
+    /**
+     * description  deleteById  删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-29 13:17:38
+     */
+    @ApiOperation(value = "删除活动")
+    @GetMapping("/delete")
+    public R deleteById(@RequestParam("id") Long id) {
+        return this.comBatteryCommodityActivityService.deleteById(id);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 13:17:38
+     */
+    @ApiOperation(value = "查询活动详情",response = ComBatteryCommodityActivityVo.class)
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comBatteryCommodityActivityService.detailById(id,0L);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommodityActivity 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 13:17:38
+     */
+    @ApiOperation(value = "查询活动列表",response = ComBatteryCommodityActivityVo.class)
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComBatteryCommodityActivityDto comBatteryCommodityActivity) {
+        comBatteryCommodityActivity.setStoreId(this.getCommunityId());
+        return this.comBatteryCommodityActivityService.queryByList(comBatteryCommodityActivity);
+    }
+
+    /**
+     * 修改活动状态
+     * @param id    活动id
+     * @param status    状态
+     * @return  修改结果
+     */
+    @ApiOperation(value = "修改活动状态")
+    @GetMapping("/updateStatus")
+    public R updateStatus(@RequestParam("id") Long id,@RequestParam("status") Integer status) {
+        return this.comBatteryCommodityActivityService.updateStatus(id,status);
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComBatteryCommodityApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComBatteryCommodityApi.java
new file mode 100644
index 0000000..d0478bc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComBatteryCommodityApi.java
@@ -0,0 +1,140 @@
+package com.panzhihua.community_backstage.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.common.AddComBatteryCommodityDto;
+import com.panzhihua.common.model.dtos.common.EditComBatteryCommodityDto;
+import com.panzhihua.common.model.dtos.common.PageComBatteryCommodityDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.common.ComBatteryCommodityVo;
+import com.panzhihua.common.service.community.ComBatteryCommodityFeign;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * title: 电动车商城-商品表(ComBatteryCommodity)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商品表
+ *
+ * @author lyq
+ * @date 2022-03-28 14:59:58
+ */
+@Slf4j
+@Api(tags = {"电动车商城-商品管理"})
+@RestController
+@RequestMapping("/comBatteryCommodity")
+public class ComBatteryCommodityApi extends BaseController {
+
+    @Resource
+    private ComBatteryCommodityFeign comBatteryCommodityService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommodity 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-03-28 14:59:58
+     */
+    @ApiOperation(value = "分页查询商品列表",response = ComBatteryCommodityVo.class)
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComBatteryCommodityDto comBatteryCommodity) {
+        comBatteryCommodity.setStoreId(this.getCommunityId());
+        return this.comBatteryCommodityService.queryByPage(comBatteryCommodity);
+    }
+
+    /**
+     * description  add  新增数据
+     *
+     * @param comBatteryCommodity 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-28 14:59:58
+     */
+    @ApiOperation(value = "新增商品")
+    @PostMapping("/add")
+    public R add(@RequestBody AddComBatteryCommodityDto comBatteryCommodity) {
+        comBatteryCommodity.setStoreId(this.getCommunityId());
+        comBatteryCommodity.setCreateAt(new Date());
+        comBatteryCommodity.setCreateBy(this.getUserId());
+        return this.comBatteryCommodityService.insert(comBatteryCommodity);
+    }
+
+    /**
+     * description  edit  编辑数据
+     *
+     * @param comBatteryCommodity 请求参数
+     * @return 编辑结果
+     * @author lyq
+     * @date 2022-03-28 14:59:58
+     */
+    @ApiOperation(value = "修改商品")
+    @PutMapping("/edit")
+    public R edit(@RequestBody EditComBatteryCommodityDto comBatteryCommodity) {
+        comBatteryCommodity.setUpdateAt(new Date());
+        comBatteryCommodity.setUpdateBy(this.getUserId());
+        return this.comBatteryCommodityService.update(comBatteryCommodity);
+    }
+
+    /**
+     * description  deleteById  删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-28 14:59:58
+     */
+    @ApiOperation(value = "删除商品")
+    @GetMapping("/delete")
+    public R deleteById(@RequestParam("id") Long id) {
+        return this.comBatteryCommodityService.deleteById(id);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-28 14:59:58
+     */
+    @ApiOperation(value = "查询商品详情",response = ComBatteryCommodityVo.class)
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comBatteryCommodityService.detailById(id);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommodity 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-28 14:59:58
+     */
+    @ApiOperation(value = "查询商品列表",response = ComBatteryCommodityVo.class)
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComBatteryCommodityDto comBatteryCommodity) {
+        comBatteryCommodity.setStoreId(this.getCommunityId());
+        return this.comBatteryCommodityService.queryByList(comBatteryCommodity);
+    }
+
+    /**
+     * 修改商品状态
+     * @param id    商品id
+     * @param status    商品状态
+     * @return  修改结果
+     */
+    @ApiOperation(value = "修改商品状态")
+    @GetMapping("/updateStatus")
+    public R updateStatus(@RequestParam("id") Long id,@RequestParam("status") Integer status) {
+        return this.comBatteryCommodityService.updateStatus(id,status);
+    }
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComBatteryCommodityOrderApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComBatteryCommodityOrderApi.java
new file mode 100644
index 0000000..af5f649
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComBatteryCommodityOrderApi.java
@@ -0,0 +1,109 @@
+package com.panzhihua.community_backstage.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.common.ComBatteryCommodityOrderVo;
+import com.panzhihua.common.service.community.ComBatteryCommodityOrderFeign;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * title: 电动车商城-订单表(ComBatteryCommodityOrder)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-订单表
+ *
+ * @author lyq
+ * @date 2022-03-29 16:05:04
+ */
+@Slf4j
+@Api(tags = {"电动车商城-订单管理"})
+@RestController
+@RequestMapping("/comBatteryCommodityOrder")
+public class ComBatteryCommodityOrderApi extends BaseController {
+
+    @Resource
+    private ComBatteryCommodityOrderFeign comBatteryCommodityOrderService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommodityOrder 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-03-29 16:05:04
+     */
+    @ApiOperation(value = "分页查询订单列表",response = ComBatteryCommodityOrderVo.class)
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComBatteryCommodityOrderDto comBatteryCommodityOrder) {
+        comBatteryCommodityOrder.setStoreId(this.getCommunityId());
+        comBatteryCommodityOrder.setIsAdmin(1);
+        return this.comBatteryCommodityOrderService.queryByPage(comBatteryCommodityOrder);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 16:05:04
+     */
+    @ApiOperation(value = "查询订单详情",response = ComBatteryCommodityOrderVo.class)
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comBatteryCommodityOrderService.detailById(id);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommodityOrder 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 16:05:04
+     */
+    @ApiOperation(value = "查询订单列表",response = ComBatteryCommodityOrderVo.class)
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComBatteryCommodityOrderDto comBatteryCommodityOrder) {
+        comBatteryCommodityOrder.setStoreId(this.getCommunityId());
+        return this.comBatteryCommodityOrderService.queryByList(comBatteryCommodityOrder);
+    }
+
+    @ApiOperation(value = "修改订单收货地址")
+    @PutMapping("/update/address")
+    public R updateOrderAddress(@RequestBody EditOrderAddressDto editOrderAddressDto) {
+        return this.comBatteryCommodityOrderService.updateOrderAddress(editOrderAddressDto);
+    }
+
+//    @ApiOperation(value = "修改订单物流信息")
+    @PutMapping("/update/logistics")
+    public R updateOrderLogistics(@RequestBody EditOrderLogisticsDto editOrderLogisticsDto) {
+        return this.comBatteryCommodityOrderService.updateOrderLogistics(editOrderLogisticsDto);
+    }
+
+    /**
+     * 后台订单发货
+     * @param deliverAdminDto   请求参数
+     * @return  发货结果
+     */
+    @ApiOperation(value = "后台订单发货-修改物流信息")
+    @PutMapping("/deliver")
+    public R orderDeliver(@RequestBody OrderDeliverAdminDto deliverAdminDto){
+        return this.comBatteryCommodityOrderService.orderDeliver(deliverAdminDto);
+    }
+
+    @ApiOperation(value = "定时关闭5分钟未支付订单")
+    @GetMapping("/syncCloseOrder")
+    public R syncCloseOrder(){
+        return this.comBatteryCommodityOrderService.syncCloseOrder();
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComBatteryCommoditySpecsApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComBatteryCommoditySpecsApi.java
new file mode 100644
index 0000000..ef435d4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComBatteryCommoditySpecsApi.java
@@ -0,0 +1,130 @@
+package com.panzhihua.community_backstage.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.common.AddComBatteryCommoditySpecsDto;
+import com.panzhihua.common.model.dtos.common.EditComBatteryCommoditySpecsDto;
+import com.panzhihua.common.model.dtos.common.PageComBatteryCommoditySpecsDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.common.ComBatteryCommoditySpecsVo;
+import com.panzhihua.common.model.vos.common.ComBatteryCommodityVo;
+import com.panzhihua.common.service.community.ComBatteryCommoditySpecsFeign;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * title: 电动车商城-商品规格表(ComBatteryCommoditySpecs)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商品规格表
+ *
+ * @author lyq
+ * @date 2022-03-28 15:16:21
+ */
+@Slf4j
+@Api(tags = {"电动车商城-商品规格管理"})
+@RestController
+@RequestMapping("/comBatteryCommoditySpecs")
+public class ComBatteryCommoditySpecsApi extends BaseController {
+
+    @Resource
+    private ComBatteryCommoditySpecsFeign comBatteryCommoditySpecsService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommoditySpecs 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-03-28 15:16:21
+     */
+    @ApiOperation(value = "分页查询商品规格列表",response = ComBatteryCommoditySpecsVo.class)
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComBatteryCommoditySpecsDto comBatteryCommoditySpecs) {
+        comBatteryCommoditySpecs.setStoreId(this.getCommunityId());
+        return this.comBatteryCommoditySpecsService.queryByPage(comBatteryCommoditySpecs);
+    }
+
+    /**
+     * description  add  新增数据
+     *
+     * @param comBatteryCommoditySpecs 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-28 15:16:21
+     */
+    @ApiOperation(value = "新增商品规格")
+    @PostMapping("/add")
+    public R add(@RequestBody AddComBatteryCommoditySpecsDto comBatteryCommoditySpecs) {
+        comBatteryCommoditySpecs.setStoreId(this.getCommunityId());
+        comBatteryCommoditySpecs.setCreateAt(new Date());
+        comBatteryCommoditySpecs.setCreateBy(this.getUserId());
+        return this.comBatteryCommoditySpecsService.insert(comBatteryCommoditySpecs);
+    }
+
+    /**
+     * description  edit  编辑数据
+     *
+     * @param comBatteryCommoditySpecs 请求参数
+     * @return 编辑结果
+     * @author lyq
+     * @date 2022-03-28 15:16:21
+     */
+    @ApiOperation(value = "修改商品规格")
+    @PutMapping("/edit")
+    public R edit(@RequestBody EditComBatteryCommoditySpecsDto comBatteryCommoditySpecs) {
+        comBatteryCommoditySpecs.setUpdateAt(new Date());
+        comBatteryCommoditySpecs.setUpdateBy(this.getUserId());
+        return this.comBatteryCommoditySpecsService.update(comBatteryCommoditySpecs);
+    }
+
+    /**
+     * description  deleteById  删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-28 15:16:21
+     */
+    @ApiOperation(value = "删除商品规格")
+    @GetMapping("/delete")
+    public R deleteById(@RequestParam("id") Long id) {
+        return this.comBatteryCommoditySpecsService.deleteById(id);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-28 15:16:21
+     */
+    @ApiOperation(value = "查询商品规格详情",response = ComBatteryCommoditySpecsVo.class)
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comBatteryCommoditySpecsService.detailById(id);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommoditySpecs 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-28 15:16:21
+     */
+    @ApiOperation(value = "查询商品规格列表",response = ComBatteryCommoditySpecsVo.class)
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComBatteryCommoditySpecsDto comBatteryCommoditySpecs) {
+        comBatteryCommoditySpecs.setStoreId(this.getCommunityId());
+        return this.comBatteryCommoditySpecsService.queryByList(comBatteryCommoditySpecs);
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComBatteryStoreApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComBatteryStoreApi.java
new file mode 100644
index 0000000..7ee6d88
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComBatteryStoreApi.java
@@ -0,0 +1,61 @@
+package com.panzhihua.community_backstage.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.common.AddComBatteryStoreDto;
+import com.panzhihua.common.model.dtos.common.EditComBatteryStoreDto;
+import com.panzhihua.common.model.dtos.common.PageComBatteryStoreDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.common.ComBatteryStoreVo;
+import com.panzhihua.common.service.community.ComBatteryStoreFeign;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * title: 电动车商城-商家表(ComBatteryStore)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商家表
+ *
+ * @author lyq
+ * @date 2022-03-28 13:44:43
+ */
+@Slf4j
+@Api(tags = {"电动车商城-商家管理"})
+@RestController
+@RequestMapping("/comBatteryStore")
+public class ComBatteryStoreApi extends BaseController {
+
+    @Resource
+    private ComBatteryStoreFeign comBatteryStoreService;
+
+    /**
+     * description  edit  编辑数据
+     *
+     * @param comBatteryStore 请求参数
+     * @return 编辑结果
+     * @author lyq
+     * @date 2022-03-28 13:44:43
+     */
+    @ApiOperation(value = "修改商家")
+    @PutMapping("/edit")
+    public R edit(@RequestBody EditComBatteryStoreDto comBatteryStore) {
+        comBatteryStore.setUpdateAt(new Date());
+        comBatteryStore.setUpdateBy(this.getUserId());
+        comBatteryStore.setId(this.getCommunityId());
+        return this.comBatteryStoreService.update(comBatteryStore);
+    }
+
+    @GetMapping("/store/detail")
+    @ApiOperation(value = "商家后台-获取维修换电商家详情",response = ComBatteryStoreVo.class)
+    public R storeDetailById() {
+        return this.comBatteryStoreService.detailById(this.getCommunityId());
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComBatteryStoreClassApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComBatteryStoreClassApi.java
new file mode 100644
index 0000000..4246178
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComBatteryStoreClassApi.java
@@ -0,0 +1,141 @@
+package com.panzhihua.community_backstage.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.common.AddComBatteryStoreClassDto;
+import com.panzhihua.common.model.dtos.common.EditComBatteryStoreClassDto;
+import com.panzhihua.common.model.dtos.common.PageComBatteryStoreClassDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.common.ComBatteryStoreClassVo;
+import com.panzhihua.common.service.community.ComBatteryStoreClassFeign;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * title: 电动车商城-商家分类表(ComBatteryStoreClass)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商家分类表
+ *
+ * @author lyq
+ * @date 2022-03-29 11:01:55
+ */
+@Slf4j
+@Api(tags = {"电动车商城-商家分类管理"})
+@RestController
+@RequestMapping("/comBatteryStoreClass")
+public class ComBatteryStoreClassApi extends BaseController {
+
+    @Resource
+    private ComBatteryStoreClassFeign comBatteryStoreClassService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryStoreClass 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-03-29 11:01:55
+     */
+    @ApiOperation(value = "分页查询商家分类列表",response = ComBatteryStoreClassVo.class)
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComBatteryStoreClassDto comBatteryStoreClass) {
+        comBatteryStoreClass.setStoreId(this.getCommunityId());
+        return this.comBatteryStoreClassService.queryByPage(comBatteryStoreClass);
+    }
+
+    /**
+     * description  add  新增数据
+     *
+     * @param comBatteryStoreClass 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-29 11:01:55
+     */
+    @ApiOperation(value = "新增商家分类")
+    @PostMapping("/add")
+    public R add(@RequestBody AddComBatteryStoreClassDto comBatteryStoreClass) {
+        comBatteryStoreClass.setStoreId(this.getCommunityId());
+        comBatteryStoreClass.setCreateAt(new Date());
+        comBatteryStoreClass.setCreateBy(this.getUserId());
+        return this.comBatteryStoreClassService.insert(comBatteryStoreClass);
+    }
+
+    /**
+     * description  edit  编辑数据
+     *
+     * @param comBatteryStoreClass 请求参数
+     * @return 编辑结果
+     * @author lyq
+     * @date 2022-03-29 11:01:55
+     */
+    @ApiOperation(value = "修改商家分类")
+    @PutMapping("/edit")
+    public R edit(@RequestBody EditComBatteryStoreClassDto comBatteryStoreClass) {
+        comBatteryStoreClass.setUpdateAt(new Date());
+        comBatteryStoreClass.setUpdateBy(this.getUserId());
+        return this.comBatteryStoreClassService.update(comBatteryStoreClass);
+    }
+
+    /**
+     * description  deleteById  删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-29 11:01:55
+     */
+    @ApiOperation(value = "删除商家分类")
+    @GetMapping("/delete")
+    public R deleteById(@RequestParam("id") Long id) {
+        return this.comBatteryStoreClassService.deleteById(id);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 11:01:55
+     */
+    @ApiOperation(value = "查询商家分类详情",response = ComBatteryStoreClassVo.class)
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comBatteryStoreClassService.detailById(id);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryStoreClass 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 11:01:55
+     */
+    @ApiOperation(value = "查询商家分类列表",response = ComBatteryStoreClassVo.class)
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComBatteryStoreClassDto comBatteryStoreClass) {
+        comBatteryStoreClass.setStoreId(this.getCommunityId());
+        return this.comBatteryStoreClassService.queryByList(comBatteryStoreClass);
+    }
+
+    /**
+     * 修改分类状态
+     * @param id    分类id
+     * @param status    状态
+     * @return  修改结果
+     */
+    @ApiOperation(value = "修改商家分类状态")
+    @GetMapping("/updateStatus")
+    public R updateStatus(@RequestParam("id") Long id,@RequestParam("status") Integer status) {
+        return this.comBatteryStoreClassService.updateStatus(id,status);
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComFmsApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComFmsApi.java
new file mode 100644
index 0000000..a01537d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComFmsApi.java
@@ -0,0 +1,667 @@
+package com.panzhihua.community_backstage.api;
+
+import static java.util.Objects.isNull;
+import static org.apache.commons.lang3.StringUtils.isNotBlank;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.validation.Valid;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+import org.springframework.web.bind.annotation.DeleteMapping;
+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 org.springframework.web.multipart.MultipartFile;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.alibaba.fastjson.JSONArray;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.enums.PresetPictureType;
+import com.panzhihua.common.listen.ComFmsServiceImportExcelListen;
+import com.panzhihua.common.listen.ComFmsTeamMemberImportExcelListen;
+import com.panzhihua.common.model.dtos.community.fms.AddFmsClassroomAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.AddFmsServiceAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.AddTeamDTO;
+import com.panzhihua.common.model.dtos.community.fms.AddTeamMemberDTO;
+import com.panzhihua.common.model.dtos.community.fms.AddTeamTypeDTO;
+import com.panzhihua.common.model.dtos.community.fms.ApprovalFmsServiceAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.DeleteTeamMemberDTO;
+import com.panzhihua.common.model.dtos.community.fms.EditFmsClassroomAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.EditTeamDTO;
+import com.panzhihua.common.model.dtos.community.fms.EditTeamMemberDTO;
+import com.panzhihua.common.model.dtos.community.fms.EditTeamTypeDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageFmsClassroomAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageFmsEventAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageFmsServiceAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageTeamMemberDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActPictureLibraryVO;
+import com.panzhihua.common.model.vos.community.fms.CascadeCommVO;
+import com.panzhihua.common.model.vos.community.fms.ComFmsClassroomVO;
+import com.panzhihua.common.model.vos.community.fms.ComFmsServiceImportMistakeExcelVO;
+import com.panzhihua.common.model.vos.community.fms.ComFmsServiceVO;
+import com.panzhihua.common.model.vos.community.fms.ComFmsTeamMemberExportExcelVO;
+import com.panzhihua.common.model.vos.community.fms.ComFmsTeamMemberImportMistakeExcelVO;
+import com.panzhihua.common.model.vos.community.fms.ComFmsTeamMemberVO;
+import com.panzhihua.common.model.vos.community.fms.ComFmsTeamTypeVO;
+import com.panzhihua.common.model.vos.community.fms.ComFmsTeamVO;
+import com.panzhihua.common.model.vos.community.fms.FmsClassroomTopStatisticsVO;
+import com.panzhihua.common.model.vos.community.fms.FmsEventTopStatisticsVO;
+import com.panzhihua.common.model.vos.community.fms.FmsEventVO;
+import com.panzhihua.common.model.vos.community.fms.FmsServiceTopStatisticsVO;
+import com.panzhihua.common.model.vos.community.fms.TeamMemberTopStatisticsVO;
+import com.panzhihua.common.model.vos.grid.EventDetailsVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.grid.GridService;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.SFTPUtil;
+import com.panzhihua.common.utlis.ValidateUtils;
+import com.panzhihua.community_backstage.excel.CustomSheetWriteHandler;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @title: ComFmsApi
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 五微服务相关接口
+ * @author: hans
+ * @date: 2022/02/11 13:23
+ */
+@Slf4j
+@Api(tags = {"五微服务"})
+@RestController
+@RequestMapping("/fms")
+public class ComFmsApi extends BaseController {
+
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+    @Value("${ftp.url}")
+    private String url;
+    @Value("${excel.userurl}")
+    private String excelUrl;
+
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+    @Resource
+    private GridService gridService;
+
+    @ApiOperation("新增团队类型")
+    @PostMapping("/teamType/add")
+    public R addFmsTeamType(@RequestBody @Valid AddTeamTypeDTO addTeamTypeDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        addTeamTypeDTO.setCommunityId(loginUserInfo.getCommunityId());
+        addTeamTypeDTO.setCreatedBy(loginUserInfo.getUserId());
+        addTeamTypeDTO.setUpdatedBy(loginUserInfo.getUserId());
+        return communityService.addFmsTeamType(addTeamTypeDTO);
+    }
+
+    @ApiOperation("修改团队类型")
+    @PostMapping("/teamType/edit")
+    public R editFmsTeamType(@RequestBody @Valid EditTeamTypeDTO editTeamTypeDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        editTeamTypeDTO.setCommunityId(loginUserInfo.getCommunityId());
+        editTeamTypeDTO.setUpdatedBy(loginUserInfo.getUserId());
+        return communityService.editFmsTeamType(editTeamTypeDTO);
+    }
+
+    @ApiOperation("删除团队类型")
+    @ApiImplicitParam(name = "teamTypeId", value = "团队类型id", required = true)
+    @DeleteMapping("/teamType/delete")
+    public R deleteFmsTeamType(@RequestParam("teamTypeId") Long teamTypeId) {
+        return communityService.deleteFmsTeamType(teamTypeId, this.getCommunityId());
+    }
+
+    @ApiOperation(value = "获取团队类型列表", response = ComFmsTeamTypeVO.class)
+    @GetMapping("/teamType/list")
+    public R listFmsTeamType() {
+        return communityService.listFmsTeamType(this.getCommunityId());
+    }
+
+    @ApiOperation("新增团队")
+    @PostMapping("/team/add")
+    public R addFmsTeam(@RequestBody @Valid AddTeamDTO addTeamDTO) {
+        // if (isNotBlank(addTeamDTO.getPhone()) && !ValidateUtils.assertPhoneIsValid(addTeamDTO.getPhone())) {
+        //     return R.fail("手机号格式错误");
+        // }
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        addTeamDTO.setCommunityId(loginUserInfo.getCommunityId());
+        addTeamDTO.setCreatedBy(loginUserInfo.getUserId());
+        addTeamDTO.setUpdatedBy(loginUserInfo.getUserId());
+        return communityService.addFmsTeam(addTeamDTO);
+    }
+
+    @ApiOperation("修改团队信息")
+    @PostMapping("/team/edit")
+    public R editFmsTeam(@RequestBody @Valid EditTeamDTO editTeamDTO) {
+        // if (isNotBlank(editTeamDTO.getPhone()) && !ValidateUtils.assertPhoneIsValid(editTeamDTO.getPhone())) {
+        //     return R.fail("手机号格式错误");
+        // }
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        editTeamDTO.setCommunityId(loginUserInfo.getCommunityId());
+        editTeamDTO.setUpdatedBy(loginUserInfo.getUserId());
+        return communityService.editFmsTeam(editTeamDTO);
+    }
+
+    @ApiOperation("删除团队")
+    @ApiImplicitParam(name = "teamId", value = "团队id", required = true)
+    @DeleteMapping("/team/delete")
+    public R deleteFmsTeam(@RequestParam("teamId") Long teamId) {
+        return communityService.deleteFmsTeam(teamId);
+    }
+
+    @ApiOperation(value = "获取团队列表", response = ComFmsTeamVO.class)
+    @ApiImplicitParam(name = "teamTypeId", value = "团队类型id", required = true)
+    @GetMapping("/team/list")
+    public R listFmsTeam(@RequestParam("teamTypeId") Long teamTypeId) {
+        return communityService.listFmsTeam(teamTypeId);
+    }
+
+    @ApiOperation(value = "获取团队详情", response = ComFmsTeamVO.class)
+    @ApiImplicitParam(name = "teamId", value = "团队id", required = true)
+    @GetMapping("/team/detail")
+    public R detailFmsTeam(@RequestParam("teamId") Long teamId) {
+        return communityService.detailFmsTeam(teamId);
+    }
+
+
+    @ApiOperation(value = "级联查询团队数据", response = CascadeCommVO.class)
+    @GetMapping("/team/cascade")
+    public R retrieveFmsTeamCascade() {
+        return communityService.retrieveFmsTeamCascade(this.getCommunityId());
+    }
+
+    @ApiOperation("新增团队成员")
+    @PostMapping("/teamMember/add")
+    public R addFmsTeamMember(@RequestBody @Valid AddTeamMemberDTO addTeamMemberDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        addTeamMemberDTO.setCommunityId(loginUserInfo.getCommunityId());
+        addTeamMemberDTO.setCreatedBy(loginUserInfo.getUserId());
+        addTeamMemberDTO.setUpdatedBy(loginUserInfo.getUserId());
+        return communityService.addFmsTeamMember(addTeamMemberDTO);
+    }
+
+    @ApiOperation("编辑团队成员")
+    @PostMapping("/teamMember/edit")
+    public R editFmsTeamMember(@RequestBody @Valid EditTeamMemberDTO editTeamMemberDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        editTeamMemberDTO.setCommunityId(loginUserInfo.getCommunityId());
+        editTeamMemberDTO.setUpdatedBy(loginUserInfo.getUserId());
+        return communityService.editFmsTeamMember(editTeamMemberDTO);
+    }
+
+    @ApiOperation("删除团队成员")
+    @PostMapping("/teamMember/delete")
+    public R deleteFmsTeamMember(@RequestBody @Valid DeleteTeamMemberDTO deleteTeamMemberDTO) {
+        deleteTeamMemberDTO.setCommunityId(this.getCommunityId());
+        return communityService.deleteFmsTeamMember(deleteTeamMemberDTO);
+    }
+
+    @ApiOperation(value = "分页查询团队成员", response = ComFmsTeamMemberVO.class)
+    @PostMapping("/teamMember/page")
+    public R pageFmsTeamMember(@RequestBody @Valid PageTeamMemberDTO pageTeamMemberDTO) {
+        pageTeamMemberDTO.setCommunityId(this.getCommunityId());
+        return communityService.pageFmsTeamMember(pageTeamMemberDTO);
+    }
+
+    @ApiOperation(value = "微团队顶部统计", response = TeamMemberTopStatisticsVO.class)
+    @GetMapping("/teamMember/statistics")
+    public R statisticsFmsTeamMember() {
+        return communityService.statisticsFmsTeamMember(this.getCommunityId());
+    }
+
+    @ApiOperation(value = "下载团队成员导入模板")
+    @GetMapping("/teamMember/template")
+    public R getTeamMemberTemplate() {
+        // 生成动态模板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();
+                    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 = "/teamMember/import", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R importTeamMember(@RequestParam MultipartFile file, HttpServletRequest request) {
+        // 获取文件名
+        String fileName = file.getOriginalFilename();
+        log.info("传入文件名字【{}】", fileName);
+        InputStream inputStream = null;
+        try {
+            inputStream = file.getInputStream();
+            ComFmsTeamMemberImportExcelListen comFmsTeamMemberImportExcelListen = new ComFmsTeamMemberImportExcelListen(
+                    communityService, this.getCommunityId(), this.getLoginUserInfo().getUserId(), stringRedisTemplate);
+            EasyExcel.read(inputStream, null, comFmsTeamMemberImportExcelListen).sheet().doRead();
+        } catch (IOException e) {
+            log.error("导入失败【{}】", e.getMessage());
+            e.printStackTrace();
+        }
+        return R.ok();
+    }
+
+    @ApiOperation(value = "导出团队成员")
+    @PostMapping(value = "/teamMember/export")
+    public R exportTeamMember(@RequestBody PageTeamMemberDTO pageTeamMemberDTO) {
+        Long communityId = this.getLoginUserInfo().getCommunityId();
+        pageTeamMemberDTO.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.exportTeamMember(pageTeamMemberDTO);
+                    List<ComFmsTeamMemberExportExcelVO> list = new ArrayList<>();
+                    if (R.isOk(r)) {
+                        list = JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComFmsTeamMemberExportExcelVO.class);
+                    }
+                    excelWriter = EasyExcel.write(fileName, ComFmsTeamMemberExportExcelVO.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("后台新增微服务")
+    @PostMapping("/service/add")
+    public R addFmsService(@RequestBody @Valid AddFmsServiceAdminDTO adminDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        adminDTO.setCommunityId(loginUserInfo.getCommunityId());
+        adminDTO.setCreatedBy(loginUserInfo.getUserId());
+        adminDTO.setUpdatedBy(loginUserInfo.getUserId());
+        return communityService.addFmsServiceAdmin(adminDTO);
+    }
+
+    @ApiOperation(value = "后台分页查询微服务", response = ComFmsServiceVO.class)
+    @PostMapping("/service/page")
+    public R pageFmsService(@RequestBody @Valid PageFmsServiceAdminDTO adminDTO) {
+        adminDTO.setCommunityId(this.getCommunityId());
+        return communityService.pageFmsServiceAdmin(adminDTO);
+    }
+
+    @ApiOperation("后台核实微服务")
+    @PostMapping("/service/approval")
+    public R approvalFmsService(@RequestBody @Valid ApprovalFmsServiceAdminDTO adminDTO) {
+        if (adminDTO.getIsPass() && isNull(adminDTO.getMemberId())) {
+            return R.fail("未分配服务人员");
+        }
+        adminDTO.setUpdatedBy(this.getUserId());
+        return communityService.approvalFmsService(adminDTO);
+    }
+
+    @ApiOperation(value = "级联查询团队服务人员", response = CascadeCommVO.class)
+    @GetMapping("/teamMember/cascade")
+    public R retrieveFmsTeamMemberCascade() {
+        return communityService.retrieveFmsTeamMemberCascade(this.getCommunityId());
+    }
+
+    @ApiOperation(value = "后台查看微服务详情", response = ComFmsServiceVO.class)
+    @ApiImplicitParam(name = "serviceId", value = "服务id", required = true)
+    @GetMapping("/service/detail")
+    public R detailFmsService(@RequestParam("serviceId") Long serviceId) {
+        return communityService.detailFmsServiceAdmin(serviceId);
+    }
+
+    @ApiOperation(value = "后台删除微服务")
+    @ApiImplicitParam(name = "serviceId", value = "服务id", required = true)
+    @DeleteMapping("/service/delete")
+    public R deleteFmsService(@RequestParam("serviceId") Long serviceId) {
+        return communityService.deleteFmsServiceAdmin(serviceId);
+    }
+
+    @ApiOperation(value = "微服务顶部统计", response = FmsServiceTopStatisticsVO.class)
+    @GetMapping("/service/statistics")
+    public R statisticsFmsService() {
+        return communityService.statisticsFmsService(this.getCommunityId());
+    }
+
+    @ApiOperation(value = "下载微服务导入模板")
+    @GetMapping("/service/template")
+    public R getServiceTemplate() {
+        // 生成动态模板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 = fmsServiceHeadDataFilling();
+                    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 = "/service/import", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R importFmsService(@RequestParam MultipartFile file, HttpServletRequest request) {
+        // 获取文件名
+        String fileName = file.getOriginalFilename();
+        log.info("传入文件名字【{}】", fileName);
+        InputStream inputStream = null;
+        try {
+            inputStream = file.getInputStream();
+            ComFmsServiceImportExcelListen fmsServiceImportExcelListen = new ComFmsServiceImportExcelListen(
+                    communityService, this.getCommunityId(), this.getLoginUserInfo().getUserId(), stringRedisTemplate);
+            EasyExcel.read(inputStream, null, fmsServiceImportExcelListen).sheet().doRead();
+        } catch (IOException e) {
+            log.error("导入失败【{}】", e.getMessage());
+            e.printStackTrace();
+        }
+        return R.ok();
+    }
+
+    @ApiOperation("后台新增微讲堂")
+    @PostMapping("/classroom/add")
+    public R addFmsClassroom(@RequestBody @Valid AddFmsClassroomAdminDTO adminDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        adminDTO.setCommunityId(loginUserInfo.getCommunityId());
+        adminDTO.setCreatedBy(loginUserInfo.getUserId());
+        adminDTO.setUpdatedBy(loginUserInfo.getUserId());
+        return communityService.addFmsClassroom(adminDTO);
+    }
+
+    @ApiOperation("后台编辑微讲堂")
+    @PostMapping("/classroom/edit")
+    public R editFmsClassroom(@RequestBody @Valid EditFmsClassroomAdminDTO adminDTO) {
+        adminDTO.setUpdatedBy(this.getUserId());
+        return communityService.editFmsClassroom(adminDTO);
+    }
+
+    @ApiOperation("后台删除微讲堂")
+    @ApiImplicitParam(name = "id", value = "微讲堂id", required = true)
+    @DeleteMapping("/classroom/delete")
+    public R deleteFmsClassroom(@RequestParam("id") Long id) {
+        return communityService.deleteFmsClassroom(id);
+    }
+
+    @ApiOperation(value = "后台获取微讲堂详情", response = ComFmsClassroomVO.class)
+    @ApiImplicitParam(name = "id", value = "微讲堂id", required = true)
+    @GetMapping("/classroom/detail")
+    public R detailFmsClassroom(@RequestParam("id") Long id) {
+        return communityService.detailFmsClassroom(id);
+    }
+
+    @ApiOperation(value = "后台分页查询微讲堂", response = ComFmsClassroomVO.class)
+    @PostMapping("/classroom/page")
+    public R pageFmsClassroom(@RequestBody @Valid PageFmsClassroomAdminDTO adminDTO)
+    {
+        if(adminDTO.getCommunityId()==null)
+        {
+            adminDTO.setCommunityId(this.getCommunityId());
+        }
+        return communityService.pageFmsClassroomAdmin(adminDTO);
+    }
+
+    @ApiOperation(value = "微讲堂顶部统计", response = FmsClassroomTopStatisticsVO.class)
+    @GetMapping("/classroom/statistics")
+    public R statisticsFmsClassroom() {
+        return communityService.statisticsFmsClassroom(this.getCommunityId());
+    }
+
+    @ApiOperation(value = "获取预设图库",response = ComActPictureLibraryVO.class)
+    @GetMapping("/picture/library")
+    public R getPresetPictureLibrary() {
+        return communityService.getPresetPictureLibrary(PresetPictureType.FMS_CLASSROOM, 0);
+    }
+
+    @ApiOperation(value = "后台分页查询微调节/微防控", response = FmsEventVO.class)
+    @PostMapping("/event/page")
+    public R pageFmsEvent(@RequestBody @Valid PageFmsEventAdminDTO adminDTO) {
+        adminDTO.setCommunityId(this.getCommunityId());
+        return communityService.pageFmsEvent(adminDTO);
+    }
+
+    @ApiOperation(value = "微调节/微防控顶部统计", response = FmsEventTopStatisticsVO.class)
+    @ApiImplicitParam(name = "type", value = "查询类型(1.微调节数据2.微防控数)", required = true)
+    @GetMapping("/event/statistics")
+    public R statisticsFmsEvent(@RequestParam("type") Integer type) {
+        return communityService.statisticsFmsEvent(type, this.getCommunityId());
+    }
+
+    @ApiOperation(value = "微调节/微防控事件详情", response = EventDetailsVO.class)
+    @ApiImplicitParam(name = "eventId", value = "事件id", required = true)
+    @GetMapping("/event/detail")
+    public R detailFmsEvent(@RequestParam("eventId") Long eventId) {
+        return gridService.eventDetails(eventId);
+    }
+
+    @ApiOperation(value = "下载导入错误数据")
+    @PostMapping("/download/import/error")
+    public R downloadErrorAuthRecord(@RequestParam(value = "key") String key) {
+        String baseName = "导入错误数据";
+        Class clazz = null;
+        if (key.contains(Constants.FMS_MEMBER_ERROR_LIST)) {
+            baseName = "团队成员导入错误数据";
+            clazz = ComFmsTeamMemberImportMistakeExcelVO.class;
+        } else if (key.contains(Constants.FMS_SERVICE_ERROR_LIST)) {
+            baseName = "微服务导入错误数据";
+            clazz = ComFmsServiceImportMistakeExcelVO.class;
+        }
+        List 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, clazz);
+        }
+        String ftpUrl = "/mnt/data/web/excel/";
+        String nowDate = DateUtils.getCurrentDateString();
+        String name = baseName + 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, clazz)
+                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                    WriteSheet writeSheet = EasyExcel.writerSheet(baseName).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("/service/timeJob")
+    public R timeJobFmsService() {
+        return communityService.timedTaskFmsServiceDefaultPraise();
+    }
+
+    /**
+     * 表头构建
+     * @return  表头数据
+     */
+    private List<List<String>> headDataFilling() {
+        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.add(head0);
+        list.add(head1);
+        list.add(head2);
+        list.add(head3);
+        list.add(head4);
+        return list;
+    }
+
+    private List<List<String>> fmsServiceHeadDataFilling() {
+        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.add(head0);
+        list.add(head1);
+        list.add(head2);
+        list.add(head3);
+        list.add(head4);
+        return list;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComPbCheckUnitApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComPbCheckUnitApi.java
new file mode 100644
index 0000000..2932a7d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComPbCheckUnitApi.java
@@ -0,0 +1,378 @@
+package com.panzhihua.community_backstage.api;
+
+import cn.hutool.core.util.ArrayUtil;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.alibaba.fastjson.JSONArray;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.listen.ComPbCheckUnitExcelListen;
+import com.panzhihua.common.model.dtos.common.AddComPbCheckUnitDto;
+import com.panzhihua.common.model.dtos.common.EditComPbCheckUnitDto;
+import com.panzhihua.common.model.dtos.common.PageComPbCheckUnitDto;
+import com.panzhihua.common.model.dtos.common.PagePbCheckUnitCommonDto;
+import com.panzhihua.common.model.dtos.partybuilding.ComPbCheckUserDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.TreeListVO;
+import com.panzhihua.common.model.vos.common.ComPbCheckUnitVo;
+import com.panzhihua.common.model.vos.common.PbCheckUnitStatisticsVo;
+import com.panzhihua.common.model.vos.partybuilding.excel.ComPbCheckUnitErrorExcelVO;
+import com.panzhihua.common.service.partybuilding.ComPbCheckUnitFeign;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.SFTPUtil;
+import com.panzhihua.community_backstage.config.SFTPConfig;
+import com.panzhihua.community_backstage.excel.CustomSheetWriteHandler;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * title: 党建-报到单位(ComPbCheckUnit)  控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 党建-报到单位
+ *
+ * @author lyq
+ * @date 2022-02-16 16:22:18
+ */
+
+@Slf4j
+@Api(tags = {"党建-报到单位"})
+@RestController
+@RequestMapping("/checkUnit")
+public class ComPbCheckUnitApi extends BaseController {
+
+    @Resource
+    private ComPbCheckUnitFeign comPbCheckUnitService;
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+    @Resource
+    private SFTPConfig sftpConfig;
+    @Resource
+    private UserService userService;
+    private final Long[] ids = {1584725574201409537L,1584725574771834881L,1584725575031881730L,1584725575593918466L,
+            1584725576118206466L,1584725576416002050L,1584725576667660289L,1584725576952872961L,1584725577238085633L,
+            1584725577854648322L,1584725578626400258L,1584725579213602817L,1584725579867914241L,1584725580505448449L,
+            1584725580815826946L,1584725581386252289L,1584725581671464962L,1584726087093485569L,1584726087433224193L,
+            1584726088058175490L,1584726088880259073L,1584726089442295809L,1584726091128406018L,1584726091694637058L,
+            1584726092537692162L,1584726093053591554L,1584726093779206146L,1584726094655815681L};
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comPbCheckUnit 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-02-16 16:22:18
+     */
+    @ApiOperation(value = "分页查询报道单位", response = ComPbCheckUnitVo.class)
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComPbCheckUnitDto comPbCheckUnit) {
+        //comPbCheckUnit.setCommunityId(this.getCommunityId());
+        String[] area={"东区","仁和区","米易县","盐边县","西区","钒钛高新区"};
+
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if(ArrayUtil.contains(area, loginUserInfo.getName())){
+            comPbCheckUnit.setBelongTo(loginUserInfo.getName());
+        }
+        Long communityId = comPbCheckUnit.getCommunityId();
+        if (null!= communityId && communityId == 0L){
+            comPbCheckUnit.setCommunityId(null);
+        }
+        if(loginUserInfo.getBindingCheckUnitId()!=null){
+            comPbCheckUnit.setId(loginUserInfo.getBindingCheckUnitId());
+        }
+        //攀枝花中国农业银行
+        if ("PZHZGNYYH".equals(loginUserInfo.getAccount())){
+            comPbCheckUnit.setIds(ids);
+        }
+        return this.comPbCheckUnitService.queryByPage(comPbCheckUnit);
+    }
+
+    /**
+     * 树状列表
+     */
+    @PostMapping("/treeList")
+    public R treeList(@RequestBody TreeListVO treeListVO){
+        return comPbCheckUnitService.treeList(treeListVO);
+    }
+
+    @GetMapping("/orgList")
+    public R orgList(){
+        return comPbCheckUnitService.orgList();
+    }
+
+    /**
+     * description  add  新增数据
+     *
+     * @param comPbCheckUnit 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-02-16 16:22:18
+     */
+    @ApiOperation(value = "新增报道单位")
+    @PostMapping("/add")
+    public R add(@RequestBody AddComPbCheckUnitDto comPbCheckUnit) {
+        //comPbCheckUnit.setCommunityId(this.getCommunityId());
+        comPbCheckUnit.setCreateBy(this.getUserId());
+        comPbCheckUnit.setCreateAt(new Date());
+        return this.comPbCheckUnitService.insert(comPbCheckUnit);
+    }
+
+    /**
+     * description  edit  编辑数据
+     *
+     * @param comPbCheckUnit 请求参数
+     * @return 编辑结果
+     * @author lyq
+     * @date 2022-02-16 16:22:18
+     */
+    @ApiOperation(value = "编辑报道单位")
+    @PutMapping("/edit")
+    public R edit(@RequestBody EditComPbCheckUnitDto comPbCheckUnit) {
+        //comPbCheckUnit.setCommunityId(this.getCommunityId());
+        comPbCheckUnit.setUpdateBy(this.getUserId());
+        comPbCheckUnit.setUpdateAt(new Date());
+        return this.comPbCheckUnitService.update(comPbCheckUnit);
+    }
+
+    /**
+     * description  deleteById  删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-02-16 16:22:18
+     */
+    @ApiOperation(value = "删除报道单位")
+    @GetMapping("/delete")
+    public R deleteById(@RequestParam("id") Long id) {
+        return this.comPbCheckUnitService.deleteById(id);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-02-16 16:22:18
+     */
+    @ApiOperation(value = "查询报道单位", response = ComPbCheckUnitVo.class)
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comPbCheckUnitService.detailById(id);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comPbCheckUnit 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-02-16 16:22:18
+     */
+    @ApiOperation(value = "查询报道单位列表", response = ComPbCheckUnitVo.class)
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComPbCheckUnitDto comPbCheckUnit) {
+        //comPbCheckUnit.setCommunityId(this.getCommunityId());
+        return this.comPbCheckUnitService.queryByList(comPbCheckUnit);
+    }
+
+    @ApiOperation(value = "批量新增党员报道单位导入excel")
+    @PostMapping(value = "/import", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R downloadTemplate(@RequestParam MultipartFile file, HttpServletRequest request) {
+        log.info("传入文件名字【{}】", file.getOriginalFilename());
+        InputStream inputStream = null;
+        try {
+            inputStream = file.getInputStream();
+            EasyExcel.read(inputStream, null,
+                    new ComPbCheckUnitExcelListen(comPbCheckUnitService,this.getCommunityId(),this.getUserId(),stringRedisTemplate)).sheet().doRead();
+        } catch (IOException e) {
+            e.printStackTrace();
+            log.error("导入模板失败【{}】", e.getMessage());
+        }
+        return R.ok();
+    }
+
+    @ApiOperation(value = "下载导入失败党员报道单位数据")
+    @GetMapping("/download/error/populationDrug")
+    public R downloadErrorDrugPopulation(@RequestParam(value = "key") String key) {
+        List<ComPbCheckUnitErrorExcelVO> 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, ComPbCheckUnitErrorExcelVO.class);
+        }
+        String ftpUrl = "/mnt/data/web/excel/";
+        String nowDate = DateUtils.getCurrentDateString();
+        String name = "党员报道单位错误数据" + nowDate + ".xlsx";
+        try {
+            SFTPUtil sftp = new SFTPUtil(sftpConfig.getUserName(), sftpConfig.getPassword(), sftpConfig.getHost(), sftpConfig.getPort());
+            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, ComPbCheckUnitErrorExcelVO.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(sftpConfig.getExcelUrl() + name);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    @ApiOperation(value = "党员双报到单位-下载模板")
+    @GetMapping("/export/elder")
+    public R exportElder() {
+        return R.ok(sftpConfig.getExcelUrl() + "党组织导入模板.xlsx");
+    }
+
+    @ApiOperation(value = "报到单位统计-顶部数据", response = PbCheckUnitStatisticsVo.class)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "communityId", value = "社区id"),
+            @ApiImplicitParam(name = "choice", value = "单位归属选择")
+    })
+    @GetMapping("/statistics/top")
+    public R unitStatisticsTop(@RequestParam(value = "communityId", required = false) Long communityId,
+                               @RequestParam(value = "belongTo", required = false) String choice,
+                               @RequestParam(value = "yearTime",required = false) String yearTime) {
+        String belongTo = "";
+        String[] area={"东区","仁和区","米易县","盐边县","西区","钒钛高新区"};
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if(ArrayUtil.contains(area, loginUserInfo.getName())){
+            belongTo = loginUserInfo.getName();
+        }
+        Long[] unitIds = {};
+        //攀枝花中国农业银行
+        if ("PZHZGNYYH".equals(loginUserInfo.getAccount())){
+            unitIds = ids;
+        }
+        return this.comPbCheckUnitService.unitStatisticsTop(communityId, belongTo, choice,unitIds,yearTime);
+    }
+
+    @ApiOperation(value = "报到单位统计", response = PbCheckUnitStatisticsVo.class)
+    @PostMapping("/statistics")
+    public R unitStatistics(@RequestBody PagePbCheckUnitCommonDto commonDto) {
+        String[] area={"东区","仁和区","米易县","盐边县","西区","钒钛高新区"};
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if(ArrayUtil.contains(area, loginUserInfo.getName())){
+            commonDto.setBelongTo(loginUserInfo.getName());
+        }
+        //攀枝花中国农业银行
+        if ("PZHZGNYYH".equals(loginUserInfo.getAccount())){
+            commonDto.setUnitIds(ids);
+        }
+        return this.comPbCheckUnitService.unitStatistics(commonDto);
+    }
+
+    @ApiOperation(value = "报到党员统计-顶部数据", response = PbCheckUnitStatisticsVo.class)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "communityId", value = "社区id"),
+            @ApiImplicitParam(name = "choice", value = "单位归属选择"),
+            @ApiImplicitParam(name = "checkUnitId", value = "单位id")
+    })
+    @GetMapping("/pbStatistics/top")
+    public R pbStatisticsTop(@RequestParam(value = "communityId", required = false) Long communityId,
+                             @RequestParam(value = "choice", required = false) String choice,
+                             @RequestParam(value = "checkUnitId", required = false) Long checkUnitId,
+                             @RequestParam(value = "yearTime",required = false) String yearTime) {
+        String belongTo = "";
+        String[] area={"东区","仁和区","米易县","盐边县","西区","钒钛高新区"};
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if(ArrayUtil.contains(area, loginUserInfo.getName())){
+            belongTo = loginUserInfo.getName();
+        }
+        Long[] unitIds = {};
+        //攀枝花中国农业银行
+        if ("PZHZGNYYH".equals(loginUserInfo.getAccount())){
+            unitIds = ids;
+        }
+        return this.comPbCheckUnitService.pbStatisticsTop(communityId, belongTo, choice, checkUnitId,unitIds,yearTime);
+    }
+
+    @ApiOperation(value = "报到党员统计-按单位归属统计", response = PbCheckUnitStatisticsVo.class)
+    @PostMapping("/pbStatistics/belong")
+    public R pbStatisticsBelong(@RequestBody PagePbCheckUnitCommonDto commonDto) {
+        String[] area={"东区","仁和区","米易县","盐边县","西区","钒钛高新区"};
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if(ArrayUtil.contains(area, loginUserInfo.getName())){
+            commonDto.setBelongTo(loginUserInfo.getName());
+        }
+        //攀枝花中国农业银行
+        if ("PZHZGNYYH".equals(loginUserInfo.getAccount())){
+            commonDto.setUnitIds(ids);
+        }
+        return this.comPbCheckUnitService.pbStatisticsBelong(commonDto);
+    }
+
+    @ApiOperation(value = "报到党员统计-按单位统计", response = ComPbCheckUnitVo.class)
+    @PostMapping("/pbStatistics/unit")
+    public R pbStatisticsUnit(@RequestBody PagePbCheckUnitCommonDto commonDto) {
+        String[] area={"东区","仁和区","米易县","盐边县","西区","钒钛高新区"};
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if(ArrayUtil.contains(area, loginUserInfo.getName())){
+            commonDto.setBelongTo(loginUserInfo.getName());
+        }
+        //攀枝花中国农业银行
+        if ("PZHZGNYYH".equals(loginUserInfo.getAccount())){
+            commonDto.setUnitIds(ids);
+        }
+        return this.comPbCheckUnitService.pbStatisticsUnit(commonDto);
+    }
+
+    @ApiOperation("添加报道单位账号")
+    @PostMapping("/addComPbCheckUser")
+    public R addComPbCheckUser(@RequestBody ComPbCheckUserDTO comPbCheckUserDTO){
+        return userService.addComPbCheckUser(comPbCheckUserDTO);
+    }
+}
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
new file mode 100644
index 0000000..84c566b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComPropertyAlarmApi.java
@@ -0,0 +1,114 @@
+package com.panzhihua.community_backstage.api;
+
+import cn.hutool.core.date.DateUtil;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.property.ComPropertyAlarmVO;
+import com.panzhihua.common.service.property.PropertyService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@RestController
+@RequestMapping("comPropertyAlarm")
+@Api(tags = "物业报警api")
+public class ComPropertyAlarmApi extends BaseController {
+    private static final String key="nahankeji1234567";
+
+    @Resource
+    private PropertyService propertyService;
+
+    /**
+     * 分页查询所有数据
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "分页查询",response = ComPropertyAlarmVO.class)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        commonPage.setParamId(this.getCommunityId());
+        return propertyService.comPropertyAlarmSelectAll(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation(value = "详情",response = ComPropertyAlarmVO.class)
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Integer id) {
+        return propertyService.comPropertyAlarmSelectOne(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comPropertyAlarmVO 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation(value = "新增")
+    @PostMapping
+    public R insert(@RequestBody ComPropertyAlarmVO comPropertyAlarmVO) {
+        comPropertyAlarmVO.setCommunityId(this.getCommunityId());
+        return propertyService.comPropertyAlarmInsert(comPropertyAlarmVO);
+    }
+
+//    /**
+//     * 无验证新增数据
+//     *
+//     * @param str 加密json
+//     * @return 新增结果
+//     */
+//    @ApiOperation(value = "无验证新增数据")
+//    @GetMapping("/noToken")
+//    public R insertNoAuth(String str) {
+//        if(!str.isEmpty()){
+//            try {
+//                String result= MyAESUtil.Decrypt(str.replaceAll(" ", "+"), key);
+//                if(!result.isEmpty()){
+//                    ComPropertyAlarmVO comPropertyAlarmVO=JSON.parseObject(result,ComPropertyAlarmVO.class);
+//                    if(comPropertyAlarmVO!=null){
+//                        return propertyService.comPropertyAlarmInsert(comPropertyAlarmVO);
+//                    }
+//                }
+//            } catch (Exception e) {
+//                return R.fail("验证失败");
+//            }
+//
+//        }
+//        return R.fail("数据异常");
+//    }
+
+    /**
+     * 修改数据
+     *
+     * @param comPropertyAlarmVO 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation(value = "修改")
+    @PostMapping("/update")
+    public R update(@RequestBody ComPropertyAlarmVO comPropertyAlarmVO) {
+        comPropertyAlarmVO.setSolveId(this.getUserId());
+        comPropertyAlarmVO.setSolveTime(DateUtil.date());
+        return propertyService.comPropertyAlarmUpdate(comPropertyAlarmVO);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @ApiOperation(value = "删除")
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return propertyService.comPropertyAlarmDelete(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComPropertyAlarmSettingApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComPropertyAlarmSettingApi.java
new file mode 100644
index 0000000..918ab7b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComPropertyAlarmSettingApi.java
@@ -0,0 +1,48 @@
+package com.panzhihua.community_backstage.api;
+
+import cn.hutool.core.date.DateUtil;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.property.ComPropertyAlarmSettingVO;
+import com.panzhihua.common.model.vos.property.ComPropertyAlarmVO;
+import com.panzhihua.common.service.property.PropertyService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@RestController
+@RequestMapping("comPropertyAlarmSetting")
+@Api(tags = "物业报警设置api")
+public class ComPropertyAlarmSettingApi extends BaseController {
+    @Resource
+    private PropertyService propertyService;
+
+    /**
+     *
+     * @return 单条数据
+     */
+    @ApiOperation("查询设置")
+    @GetMapping
+    public R selectOne() {
+        return this.propertyService.comPropertyAlarmSettingSelectOne(this.getCommunityId());
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comPropertyAlarmSettingVO 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation("新增或修改设置")
+    @PostMapping
+    public R insert(@RequestBody ComPropertyAlarmSettingVO comPropertyAlarmSettingVO) {
+        comPropertyAlarmSettingVO.setCommunityId(this.getCommunityId());
+        return this.propertyService.comPropertyAlarmSettingInsert(comPropertyAlarmSettingVO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComPropertyApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComPropertyApi.java
new file mode 100644
index 0000000..f06f2a6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComPropertyApi.java
@@ -0,0 +1,87 @@
+package com.panzhihua.community_backstage.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.ComActProceedingsDTO;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActCommiteeVO;
+import com.panzhihua.common.model.vos.community.ComActProceedingsVO;
+import com.panzhihua.common.model.vos.community.ComPropertyVO;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * @author zzj
+ */
+@Slf4j
+@Api(tags = {"物业公司"})
+@RestController
+@RequestMapping("/comProperty")
+public class ComPropertyApi extends BaseController {
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "物业公司列表", response = ComPropertyVO.class)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        commonPage.setParamId(this.getCommunityId());
+        return this.communityService.comPropertySelectAll(commonPage);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comPropertyVO 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation("新增物业公司")
+    @PostMapping
+    public R insert(@RequestBody ComPropertyVO comPropertyVO) {
+        comPropertyVO.setCommunityId(this.getCommunityId());
+        comPropertyVO.setCreateUserId(this.getUserId());
+        return this.communityService.comPropertyInsert(comPropertyVO);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comPropertyVO 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation("修改物业公司")
+    @PostMapping("/update")
+    public R update(@RequestBody ComPropertyVO comPropertyVO) {
+        return this.communityService.comPropertyUpdate(comPropertyVO);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @ApiOperation("删除物业公司")
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return this.communityService.comPropertyDelete(id);
+    }
+
+    @ApiOperation(value = "物业公司详情", response = ComPropertyVO.class)
+    @ApiImplicitParam(name = "id", value = "物业公司id", required = true)
+    @GetMapping("detail")
+    public R detailProperty(@RequestParam("id") Long id) {
+        return this.communityService.detailProperty(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComPropertyEquipmentApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComPropertyEquipmentApi.java
new file mode 100644
index 0000000..99559cf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComPropertyEquipmentApi.java
@@ -0,0 +1,86 @@
+package com.panzhihua.community_backstage.api;
+
+import cn.hutool.core.date.DateUtil;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.property.ComPropertyAlarmVO;
+import com.panzhihua.common.model.vos.property.ComPropertyEquipmentVO;
+import com.panzhihua.common.service.property.PropertyService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@RestController
+@RequestMapping("comPropertyEquipment")
+@Api(tags = "物业设备api")
+public class ComPropertyEquipmentApi extends BaseController {
+    @Resource
+    private PropertyService propertyService;
+
+    /**
+     * 分页查询所有数据
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "分页查询",response = ComPropertyEquipmentVO.class)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        commonPage.setParamId(this.getCommunityId());
+        return propertyService.comPropertyEquipmentSelectAll(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation(value = "详情",response = ComPropertyEquipmentVO.class)
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Integer id) {
+        return propertyService.comPropertyEquipmentSelectOne(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comPropertyEquipmentVO 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation(value = "新增")
+    @PostMapping
+    public R insert(@RequestBody ComPropertyEquipmentVO comPropertyEquipmentVO) {
+        comPropertyEquipmentVO.setCommunityId(this.getCommunityId());
+        comPropertyEquipmentVO.setCreateTime(DateUtil.date());
+        return propertyService.comPropertyEquipmentInsert(comPropertyEquipmentVO);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comPropertyEquipmentVO 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation(value = "修改")
+    @PostMapping("/update")
+    public R update(@RequestBody ComPropertyEquipmentVO comPropertyEquipmentVO) {
+        return propertyService.comPropertyEquipmentUpdate(comPropertyEquipmentVO);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @ApiOperation(value = "删除")
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return propertyService.comPropertyEquipmentDelete(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComPropertyHelpApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComPropertyHelpApi.java
new file mode 100644
index 0000000..4848ae8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComPropertyHelpApi.java
@@ -0,0 +1,98 @@
+package com.panzhihua.community_backstage.api;
+
+
+import cn.hutool.core.date.DateUtil;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComPropertyVO;
+import com.panzhihua.common.model.vos.property.ComPropertyHelpVO;
+import com.panzhihua.common.service.property.PropertyService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+
+/**
+ * (ComPropertyHelp)表控制层
+ *
+ * @author makejava
+ * @since 2021-09-18 16:43:12
+ */
+@Slf4j
+@Api(tags = {"一件求助人员"})
+@RestController
+@RequestMapping("/comPropertyHelp")
+public class ComPropertyHelpApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private PropertyService propertyService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "分页查询所有数据",response = ComPropertyVO.class)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        commonPage.setParamId(this.getCommunityId());
+        return this.propertyService.comPropertyHelpSelectAll(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation(value = "主键查询")
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Serializable id) {
+        return this.propertyService.comPropertyHelpSelectOne(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comPropertyHelp 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation(value = "新增数据")
+    @PostMapping
+    public R insert(@RequestBody ComPropertyHelpVO comPropertyHelp) {
+        comPropertyHelp.setCommunityId(this.getCommunityId());
+        comPropertyHelp.setCreateTime(DateUtil.date());
+        return this.propertyService.comPropertyHelpInsert(comPropertyHelp);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comPropertyHelp 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation(value = "修改数据")
+    @PostMapping("/update")
+    public R update(@RequestBody ComPropertyHelpVO comPropertyHelp) {
+        return this.propertyService.comPropertyHelpUpdate(comPropertyHelp);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @ApiOperation(value = "删除数据")
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return this.propertyService.comPropertyHelpDelete(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComPropertyPublicityApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComPropertyPublicityApi.java
new file mode 100644
index 0000000..65e3040
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComPropertyPublicityApi.java
@@ -0,0 +1,104 @@
+package com.panzhihua.community_backstage.api;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+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.enums.PresetPictureType;
+import com.panzhihua.common.model.dtos.community.ComPropertyPublicityDTO;
+import com.panzhihua.common.model.dtos.community.PageComPropertyPublicityDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngVillageVO;
+import com.panzhihua.common.model.vos.community.ComActPictureLibraryVO;
+import com.panzhihua.common.model.vos.community.ComPropertyPublicityVO;
+import com.panzhihua.common.model.vos.community.ComPropertyVO;
+import com.panzhihua.common.service.community.CommunityService;
+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 lombok.extern.slf4j.Slf4j;
+
+/**
+ * @title: ComPropertyPublicityApi
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 物业宣传相关接口
+ * @author: hans
+ * @date: 2021/11/11 10:08
+ */
+@Slf4j
+@Api(tags = {"物业宣传相关接口"})
+@RestController
+@RequestMapping("/property/publicity")
+public class ComPropertyPublicityApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "分页物业宣传信息", response = ComPropertyPublicityVO.class)
+    @PostMapping("/page")
+    public R pageComPropertyPublicity(@RequestBody @Valid PageComPropertyPublicityDTO pageComPropertyPublicityDTO) {
+        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
+        pageComPropertyPublicityDTO.setCommunityId(loginUserInfo.getCommunityId());
+        pageComPropertyPublicityDTO.setUserId(loginUserInfo.getUserId());
+        return communityService.pageComPropertyPublicity(pageComPropertyPublicityDTO);
+    }
+
+    @ApiOperation(value = "新增物业宣传")
+    @PostMapping("/add")
+    public R addComPropertyPublicity(@RequestBody @Validated(AddGroup.class) ComPropertyPublicityDTO comPropertyPublicityDTO) {
+        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
+        comPropertyPublicityDTO.setCommunityId(loginUserInfo.getCommunityId());
+        comPropertyPublicityDTO.setUserId(loginUserInfo.getUserId());
+        return communityService.addComPropertyPublicity(comPropertyPublicityDTO);
+    }
+
+    @ApiOperation(value = "修改物业宣传")
+    @PostMapping("/update")
+    public R updateComPropertyPublicity(@RequestBody @Validated(PutGroup.class) ComPropertyPublicityDTO comPropertyPublicityDTO) {
+        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
+        comPropertyPublicityDTO.setCommunityId(loginUserInfo.getCommunityId());
+        comPropertyPublicityDTO.setUserId(loginUserInfo.getUserId());
+        return communityService.updateComPropertyPublicity(comPropertyPublicityDTO);
+    }
+
+    @ApiOperation(value = "查看物业宣传信息", response = ComPropertyPublicityVO.class)
+    @GetMapping("/get")
+    @ApiImplicitParam(name = "id", value = "物业宣传id", required = true)
+    public R getComPropertyPublicity(@RequestParam("id") Long id) {
+        return communityService.getComPropertyPublicity(id);
+    }
+
+    @ApiOperation(value = "删除物业宣传")
+    @DeleteMapping("/delete")
+    @ApiImplicitParam(name = "id", value = "物业宣传id", required = true)
+    public R deleteComPropertyPublicity(@RequestParam("id") Long id) {
+        return communityService.deleteComPropertyPublicity(id);
+    }
+
+    @ApiOperation(value = "物业公司列表",response = ComPropertyVO.class)
+    @GetMapping("/list/property")
+    @ApiImplicitParam(name = "villageId", value = "小区id", required = false)
+    public R listProperty(@RequestParam(value = "villageId", required = false) Long villageId) {
+        return communityService.listProperty(villageId, getCommunityId());
+    }
+
+    @ApiOperation(value = "获取预设图库",response = ComActPictureLibraryVO.class)
+    @GetMapping("/picture/library")
+    @ApiImplicitParam(name = "publicityType", value = "宣传类型(1.停水通知 2.停电通知 3.停气通知 4.物业公告 5.优秀业主)", required = true)
+    public R getPresetPictureLibrary(@RequestParam("publicityType") Integer publicityType) {
+        return communityService.getPresetPictureLibrary(PresetPictureType.PROPERTY_PUBLICITY, publicityType);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComPropertyRepairApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComPropertyRepairApi.java
new file mode 100644
index 0000000..a9be4fd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComPropertyRepairApi.java
@@ -0,0 +1,119 @@
+package com.panzhihua.community_backstage.api;
+
+import cn.hutool.core.date.DateUtil;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.property.ComPropertyRepairVO;
+import com.panzhihua.common.service.property.PropertyService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.StringUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+import static java.util.Objects.nonNull;
+
+@Slf4j
+@RestController
+@RequestMapping("propertyRepair")
+@Api(tags = "物业报修api")
+public class ComPropertyRepairApi extends BaseController {
+    @Resource
+    private PropertyService propertyService;
+    @Resource
+    private UserService userService;
+
+    /**
+     * 分页查询所有数据
+     * @return 所有数据
+     */
+    @ApiOperation(value = "后台列表接口",response = ComPropertyRepairVO.class)
+    @PostMapping("/queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        commonPage.setParamId(this.getCommunityId());
+        if(this.getAreaId()!=null&&this.getAreaId()!=0L){
+            commonPage.setAreaId(this.getAreaId());
+        }
+        if (nonNull(commonPage.getPropertyCheck()) && commonPage.getPropertyCheck().equals(1)){
+            //物业公司查看
+            LoginUserInfoVO user = userService.detailUser(loginUserInfo.getUserId()).getData();
+            if (nonNull(user.getPropertyId())){
+                commonPage.setPropertyId(user.getPropertyId());
+            }
+        }
+        return this.propertyService.comPropertyRepairSelectAll(commonPage);
+    }
+
+    /**
+     * 分页查询所有物业公司报事报修
+     * @return 所有数据
+     */
+    @ApiOperation(value = "后台列表接口",response = ComPropertyRepairVO.class)
+    @PostMapping("/queryAllProperty")
+    public R selectAllProperty(@RequestBody CommonPage commonPage) {
+        return this.propertyService.comPropertyRepairSelectAll(commonPage);
+    }
+
+    /**
+     * 后台添加报修
+     * @param comPropertyRepairVO
+     * @return
+     */
+    @ApiOperation("后台添加报修")
+    @PostMapping
+    public R insert(@RequestBody ComPropertyRepairVO comPropertyRepairVO) {
+        comPropertyRepairVO.setCreateTime(DateUtil.date());
+        comPropertyRepairVO.setCreateBy(this.getUserId());
+        return this.propertyService.comPropertyRepairInsert(comPropertyRepairVO);
+    }
+
+    /**
+     * 后台审核接口
+     *
+     * @param comPropertyRepairVO 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation("审核接口")
+    @PostMapping("/update")
+    public R update(@RequestBody ComPropertyRepairVO comPropertyRepairVO) {
+        if(comPropertyRepairVO!=null&& StringUtils.isNotEmpty(comPropertyRepairVO.getFeedbackContent())){
+            comPropertyRepairVO.setFeedbackBy(this.getUserId());
+            comPropertyRepairVO.setFeedbackTime(DateUtil.date());
+        }
+        if(comPropertyRepairVO!=null&&StringUtils.isNotEmpty(comPropertyRepairVO.getReplyContent())){
+            comPropertyRepairVO.setReplyTime(DateUtil.date());
+        }
+        return this.propertyService.comPropertyRepairUpdate(comPropertyRepairVO);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @ApiOperation("删除接口")
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return this.propertyService.comPropertyRepairDelete(id);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation("详情接口")
+    @GetMapping("/{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return this.propertyService.comPropertyRepairSelectOne(id);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComPropertyWorkerApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComPropertyWorkerApi.java
new file mode 100644
index 0000000..8421925
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComPropertyWorkerApi.java
@@ -0,0 +1,98 @@
+package com.panzhihua.community_backstage.api;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.property.ComPropertyWorkerVO;
+import com.panzhihua.common.service.user.UserService;
+import io.swagger.annotations.Api;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+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.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.property.PagePropertyWorkerDTO;
+import com.panzhihua.common.model.dtos.property.PropertyWorkerDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.validated.AddGroup;
+import com.panzhihua.common.validated.PutGroup;
+
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+
+/**
+ * 物业公司工作人员(ComPropertyWorker)表控制层
+ *
+ * @author makejava
+ * @since 2022-04-26 09:54:07
+ */
+@Slf4j
+@Api(tags = "物业工作人员")
+@RestController
+@RequestMapping("comPropertyWorker")
+public class ComPropertyWorkerApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 用户对象
+     * */
+    @Resource
+    private UserService userService;
+
+
+    @ApiOperation(value = "添加物业工作人员")
+    @PostMapping("/add")
+    public R addPropertyWorker(@RequestBody @Validated(AddGroup.class) PropertyWorkerDTO propertyWorkerDTO) {
+        return communityService.addPropertyWorker(propertyWorkerDTO);
+    }
+
+    @ApiOperation(value = "编辑物业工作人员")
+    @PutMapping("/update")
+    public R updatePropertyWorker(@RequestBody @Validated(PutGroup.class) PropertyWorkerDTO propertyWorkerDTO) {
+        return communityService.updatePropertyWorker(propertyWorkerDTO);
+    }
+
+    @ApiOperation(value = "删除物业工作人员")
+    @ApiImplicitParam(name = "id", value = "物业工作人员id", required = true)
+    @DeleteMapping("/delete")
+    public R deletePropertyWorker(@RequestParam("id") Long id) {
+        return communityService.deletePropertyWorker(id);
+    }
+
+    @ApiOperation(value = "分页查询物业工作人员", response = ComPropertyWorkerVO.class)
+    @PostMapping("/page")
+    public R pagePropertyWorker(@RequestBody @Valid PagePropertyWorkerDTO pagePropertyWorkerDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (nonNull(loginUserInfo.getPhone()) && isNull(pagePropertyWorkerDTO.getRefId())){
+            //设置物业id
+            LoginUserInfoVO user = userService.detailUser(loginUserInfo.getUserId()).getData();
+            if (nonNull(user.getPropertyId())){
+                pagePropertyWorkerDTO.setRefId(user.getPropertyId());
+            }
+        }
+        return communityService.pagePropertyWorker(pagePropertyWorkerDTO);
+    }
+
+    @ApiOperation(value = "物业工作人员详情", response = ComPropertyWorkerVO.class)
+    @ApiImplicitParam(name = "id", value = "物业工作人员id", required = true)
+    @GetMapping("/detail")
+    public R detailPropertyWorker(@RequestParam("id") Long id) {
+        return communityService.detailPropertyWorker(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComSanShuoApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComSanShuoApi.java
new file mode 100644
index 0000000..5c9f6de
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComSanShuoApi.java
@@ -0,0 +1,182 @@
+package com.panzhihua.community_backstage.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.sanshuo.*;
+import com.panzhihua.common.model.vos.IndexDataVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.sanshuo.*;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import jdk.nashorn.internal.objects.annotations.Getter;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+
+@RestController
+@RequestMapping("sanshuo")
+@Api(tags = "三说会堂后台接口")
+public class ComSanShuoApi extends BaseController {
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "后台获取专家列表",response = ComSanshuoExpertVO.class)
+    @GetMapping("/expert/backList")
+    public R expertBackList(@RequestParam(value = "keyWord",required = false)@ApiParam("搜索关键字") String keyWord,
+                            @RequestParam(value = "page",required = false)Integer page,
+                            @RequestParam(value = "size",required = false)Integer size,
+                            @RequestParam(value = "level",required = false)Integer level){
+        return communityService.backExpertList(keyWord, page, size,level);
+    }
+
+    @PostMapping("/expert")
+    @ApiOperation("添加专家")
+    public R addExpert(@RequestBody ComSanshuoExpertDTO comSanshuoExpertDTO){
+        return communityService.addExpert(comSanshuoExpertDTO);
+    }
+
+    @PutMapping("/expert")
+    @ApiOperation("添加专家")
+    public R updateExpert(@RequestBody ComSanshuoExpertDTO comSanshuoExpertDTO){
+        return communityService.updateExpert(comSanshuoExpertDTO);
+    }
+
+    @ApiOperation("重置专家登陆密码")
+    @PostMapping("/expert/resetPassword")
+    public R resetExpertPassword(@RequestBody ComSanshuoExpertDTO comSanshuoExpertDTO){
+        return communityService.resetExpertPassword(comSanshuoExpertDTO);
+    }
+
+    @ApiOperation("专家详情")
+    @GetMapping("/expert/{id}")
+    public R expertDetail(@PathVariable("id") Long id){
+        return communityService.expertDetail(id);
+    }
+
+    @ApiOperation("删除专家")
+    @GetMapping("/expert/remove/{id}")
+    public R removeExpert(@PathVariable("id") Long id){
+        return communityService.removeExpert(id);
+    }
+
+    @ApiOperation(value = "后台获取业务中心列表",response = ComSanShuoIndustryCenterVO.class)
+    @GetMapping("/industryCenter/backList")
+    public R industryCenterBackList(@RequestParam(value = "keyWord",required = false)String keyWord,
+                                    @RequestParam(value = "page",required = false)Integer page,
+                                    @RequestParam(value = "size",required = false)Integer size){
+        return communityService.backIndustrytList(keyWord, page, size);
+    }
+
+    @ApiOperation("添加业务中心")
+    @PostMapping("/industryCenter")
+    public R addIndustry(@RequestBody ComSanShuoIndustryCenterDTO comSanShuoIndustryCenterDTO){
+        return communityService.addIndustry(comSanShuoIndustryCenterDTO);
+    }
+
+    @ApiOperation("修改业务中心")
+    @PutMapping("/industryCenter")
+    public R updateIndustryCenter(@RequestBody ComSanShuoIndustryCenterDTO comSanShuoIndustryCenterDTO){
+        return communityService.updateIndustry(comSanShuoIndustryCenterDTO);
+    }
+
+    @ApiOperation("删除业务中心")
+    @GetMapping("/industryCenter/remove/{id}")
+    public R removeIndustry(@PathVariable("id") Long id){
+        return communityService.removeIndustry(id);
+    }
+
+    @ApiOperation("业务中心详情")
+    @GetMapping("/industryCenter/{id}")
+    public R industryDetail(@PathVariable("id") Long id){
+        return communityService.industryCenterDetail(id);
+    }
+
+    @ApiOperation("重置业务中心密码")
+    @PostMapping("/industryCenter/resetPassword")
+    public R resetIndustryPassword(@RequestBody ComSanShuoIndustryCenterDTO comSanShuoIndustryCenterDTO){
+        return communityService.resetIndustryPassword(comSanShuoIndustryCenterDTO);
+    }
+
+    @ApiOperation("后台事件类型列表")
+    @GetMapping("/event/backList")
+    public R eventBackList(@RequestParam(value = "keyWord",required = false)String keyWord,
+                           @RequestParam(value = "page",required = false)Integer page,
+                           @RequestParam(value = "size",required = false)Integer size){
+        return communityService.backEventList(keyWord, page, size);
+    }
+
+    @ApiOperation("添加事件类型")
+    @PostMapping("/event")
+    public R addEvent(@RequestBody ComMediateTypeDTO comSanshuoEventDTO){
+        return communityService.addEvent(comSanshuoEventDTO);
+    }
+
+    @ApiOperation("修改事件类型")
+    @PutMapping("/event")
+    public R updateEvent(@RequestBody ComMediateTypeDTO comSanshuoEventDTO){
+        return communityService.updateEvent(comSanshuoEventDTO);
+    }
+
+    @ApiOperation("删除事件类型")
+    @DeleteMapping("/event/{id}")
+    public R removeEvent(@PathVariable("id") Long id){
+        return communityService.removeEvent(id);
+    }
+
+    @ApiOperation("小程序获取可用专家列表")
+    @GetMapping("/event/appletsList")
+    public R eventAppletsList(){
+        return communityService.eventAppList();
+    }
+
+    @ApiOperation("小程序获取可用业务中心列表")
+    @GetMapping("/industryCenter/appletsList")
+    public R industryAppletsList(){
+        return communityService.industryCenterAppList();
+    }
+
+    @ApiOperation(value = "专家风采",response = ExpertShowVO.class)
+    @GetMapping("/expert/expertShow")
+    public R experShow(){
+        return communityService.expertShow();
+    }
+
+    @GetMapping("/sanshuo/expertRange")
+    @ApiOperation(value = "当前账号可添加专家范围",response = ExpertRangeVO.class)
+    public R expertRange(){
+        return communityService.expertRange();
+    }
+
+    @PostMapping("/indexData")
+    @ApiOperation(value = "大屏各级别事件统计",response = IndexDateVO.class)
+    public R indexData(@RequestBody IndexDateDTO indexDateDTO){
+        return communityService.sanshuoIndexDate(indexDateDTO);
+    }
+    @GetMapping("/indexData/event")
+    @ApiOperation(value = "事件统计饼图",response = EventRateVO.class)
+    public R eventIndexData(@RequestParam("type") @ApiParam("1受理级别2专家级别3时间类型分类") Integer type){
+        return communityService.eventIndexData(type);
+    }
+    @GetMapping("/comEvent/streetList")
+    public R streetList(){
+        return communityService.streetList();
+    }
+
+    @PostMapping("/expert/import")
+    public R importExpert(@RequestBody  MultipartFile file){
+        return communityService.importExpert(file);
+    }
+    @GetMapping("/westList")
+    public R westCommunityList(){
+        return communityService.westList();
+    }
+    @GetMapping("/expert/backstageList")
+    public R expertBackStageList(@RequestParam(value = "level",required = false)Integer level,
+                                 @RequestParam(value = "page",required = false)Integer page,
+                                 @RequestParam(value = "size",required = false)Integer size,
+                                 @RequestParam(value = "keyWord",required = false)String  keyWord){
+        return communityService.expertBackStageList(level,page,size,keyWord);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComSanShuoEventController.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComSanShuoEventController.java
new file mode 100644
index 0000000..8da854d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComSanShuoEventController.java
@@ -0,0 +1,256 @@
+package com.panzhihua.community_backstage.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.sanshuo.IndexDateDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.sanshuo.ComEventArchiveVO;
+import com.panzhihua.common.model.vos.sanshuo.ComEventConciliationVO;
+import com.panzhihua.common.model.vos.sanshuo.ComEventPageRequestVO;
+import com.panzhihua.common.model.vos.sanshuo.ComEventVO;
+import com.panzhihua.common.service.community.CommunitySanShuoService;
+import com.panzhihua.common.utlis.CopyUtil;
+import com.panzhihua.common.utlis.StringUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * ClassName   ComEventController
+ * Description 三说会堂事件表控制层
+ *
+ * @author manailin
+ * @date 2022-09-07 11:23:51
+ */
+@Slf4j
+@Api(tags = {"三说会堂事件表控制层"})
+@RestController
+@RequestMapping("/sanshuo/comEvent")
+public class ComSanShuoEventController extends BaseController {
+
+    @Resource
+    private CommunitySanShuoService comEventService;
+
+
+
+    /**
+     * description 更新三说会堂事件表
+     *
+     * @param comEventVO 对象
+     * @return R  修改结果对象
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("更新三说会堂事件表")
+    @PostMapping("/update")
+    public R updateComEvent(@RequestBody @Valid ComEventVO comEventVO, @ApiIgnore BindingResult results) {
+        if (results.hasErrors()) {
+            return R.fail(results.getFieldError().getDefaultMessage());
+        }
+        return comEventService.updateComEvent(comEventVO);
+    }
+
+    /**
+     * description 根据ID获取三说会堂事件表信息
+     *
+     * @param id 主键id
+     * @return R<ComEvent> comEvent 对象
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("根据ID获取三说会堂事件详情信息,返回事件信息和图片信息")
+    @GetMapping("/detail/{id}")
+    public R<HashMap> detail(@PathVariable(value = "id") String id) {
+        if (StringUtils.isEmpty(id)) {
+            throw new RuntimeException("参数不能为空");
+        }
+        return comEventService.detail(id);
+    }
+
+
+    /**
+     * description page   三说会堂事件表分页列表数据
+     * params   [pageNo, pageSize]
+     *
+     * @param comEventPageRequestVO 对象
+     * @return PageResult<List < ComEvent>>  三说会堂事件表分页列表数据
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation(value = "三说会堂事件表分页列表数据", notes = "三说会堂事件表分页列表数据")
+    @PostMapping("/page")
+    public R<List<ComEventVO>> page(@RequestBody ComEventPageRequestVO comEventPageRequestVO) {
+        ComEventVO comEventVO = CopyUtil.copyProperties(comEventPageRequestVO, ComEventVO.class);
+        return comEventService.page(comEventVO, comEventVO.getPageNo(), comEventVO.getPageSize());
+    }
+
+
+    /**
+     * description 根据ID删除三说会堂事件表
+     *
+     * @param id 主键id
+     * @return R 删除结果
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("删除三说会堂事件")
+    @ApiImplicitParams(
+            @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long")
+    )
+    @DeleteMapping("/remove/{id}")
+    public R remove(@PathVariable Long id) {
+        return comEventService.remove(id);
+    }
+
+    /**
+     * description 修改三说会堂事件表状态
+     *
+     * @param id 主键id
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("修改是否有效状态")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long"),
+            @ApiImplicitParam(name = "enabled", value = "是否启用", required = true, dataType = "Boolean")
+    })
+    @PutMapping("/updateEnabled")
+    public R updateEnabled(@RequestParam("id") Long id, @RequestParam("enabled") Boolean enabled) {
+        return comEventService.updateEnabled(id, enabled);
+    }
+
+    /**
+     * description 修改三说会堂事件表状态
+     *
+     * @param id 主键id
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("取消申请")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long"),
+    })
+    @PutMapping("/cancelRequest")
+    public R cancelRequest(@RequestParam("id") Long id) {
+        return comEventService.cancelRequest(id);
+    }
+
+
+    /**
+     * description 修改三说会堂事件表状态
+     *
+     * @param id 主键id
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("专家受理")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "事件ID", required = true, dataType = "Long"),
+            @ApiImplicitParam(name = "specterId", value = "专家ID", required = true, dataType = "Long"),
+    })
+    @PutMapping("/accept/Request")
+    public R acceptRequest(@RequestParam("id") Long id, Long specterId) {
+        return comEventService.acceptRequest(id, specterId);
+    }
+
+    /**
+     * description 修改三说会堂事件表状态
+     *
+     * @param id 主键id
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("专家不受理,转其他专家处理")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long"),
+    })
+    @PutMapping("/reject/Request")
+    public R rejectRequest(@RequestParam("id") Long id) {
+        return comEventService.rejectRequest(id);
+    }
+
+    /**
+     * description 修改三说会堂事件表状态
+     *
+     * @param id 主键id
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("重新指定专家处理")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long"),
+            @ApiImplicitParam(name = "specialistId", value = "专家ID", required = true, dataType = "Long")
+    })
+    @PutMapping("/reappoint/Request")
+    public R reappoint(Long id, Long specialistId) {
+        return comEventService.reappoint(id, specialistId);
+    }
+
+    /**
+     * description 专家调解处理
+     *
+     * @param comEventConciliationVO 主键id
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("专家调解处理")
+    @PutMapping("/conciliation/Request")
+    public R conciliationRequest(@RequestBody ComEventConciliationVO comEventConciliationVO) {
+        return comEventService.conciliationRequest(comEventConciliationVO);
+    }
+
+    /**
+     * description 专家归档
+     *
+     * @param comEventArchiveVO 归档对象
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("事件专家归档")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long"),
+            @ApiImplicitParam(name = "result", value = "归档结论", required = true, dataType = "String"),
+    })
+    @PutMapping("/archive/Request")
+    public R archiveRequest(@RequestBody ComEventArchiveVO comEventArchiveVO) {
+        return comEventService.archiveRequest(comEventArchiveVO);
+    }
+
+    /**
+     * description 事件各种状态(处理状态1待处理2待验证3专家已受理4专家未受理,拒绝5调解中6已结案归档7调解取消8 已删除)数据统计
+     *
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("事件各种状态(处理状态1待处理2待验证3专家已受理4专家未受理,拒绝5调解中6已结案归档7调解取消8 已删除)数据统计")
+    @GetMapping("/status/calculate")
+    public R calculate(@RequestParam(value = "level",required = false)Integer level,@RequestParam(value = "id",required = false)Long  id) {
+        return comEventService.calculate(level, id);
+    }
+
+
+    @ApiOperation("时间筛选范围列表")
+    @GetMapping("/rangeList")
+    public R rangeList(){
+        return comEventService.eventRangeList();
+    }
+
+
+}
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
new file mode 100644
index 0000000..a8b954e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ComSwPatrolRecordApi.java
@@ -0,0 +1,1263 @@
+package com.panzhihua.community_backstage.api;
+
+import java.io.*;
+import java.net.URL;
+import java.net.URLConnection;
+import java.nio.charset.StandardCharsets;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
+import com.jcraft.jsch.SftpException;
+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;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.listen.ComSwRotaExcelListen;
+import com.panzhihua.common.model.dtos.community.*;
+import com.panzhihua.common.model.vos.LiveVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.WeatherVO;
+import com.panzhihua.common.model.vos.community.*;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.partybuilding.PartyBuildingService;
+import com.panzhihua.community_backstage.excel.CustomSheetWriteHandler;
+
+import freemarker.template.Configuration;
+import freemarker.template.Template;
+import freemarker.template.Version;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import sun.misc.BASE64Encoder;
+
+// import com.kmood.datahandle.DocumentProducer;
+// import com.kmood.utils.FileUtils;
+// import freemarker.template.Configuration;
+// import freemarker.template.Template;
+// import freemarker.template.Version;
+
+/**
+ * @auther txb
+ * @create 2021-07-23 14:38:38
+ * @describe 社区》安全工作》巡查记录前端控制器
+ */
+@Slf4j
+@Api(tags = {"社区管理/安全工作"})
+@RestController
+@RequestMapping("/patrolRecord")
+public class ComSwPatrolRecordApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private PartyBuildingService partyBuildingService;
+
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+    @Value("${excel.userurl}")
+    private String excelUrl;
+
+    /**
+     * 分页查询巡查记录
+     * 
+     * @param comSwPatrolRecordPageDTO
+     *            查询参数
+     * @return 分页集合
+     */
+    @ApiOperation(value = "分页查询巡查记录", response = ComSwPatrolRecordVO.class)
+    @PostMapping("/pagePatrolRecord")
+    public R pagePatrolRecord(@RequestBody ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO) {
+        if(comSwPatrolRecordPageDTO.getCommunityId()==null){
+            Long communityId = this.getCommunityId();
+            comSwPatrolRecordPageDTO.setCommunityId(communityId);
+        }
+        comSwPatrolRecordPageDTO.setAreaCode(this.getAreaCode());
+        return communityService.pagePatrolRecord(comSwPatrolRecordPageDTO);
+    }
+
+    /**
+     * 新增巡查记录
+     * 
+     * @param comSwPatrolRecordAddDTO
+     *            新增参数
+     * @return 新增结果
+     */
+    @ApiOperation(value = "新增巡查记录")
+    @PostMapping("/addPatrolRecord")
+    public R addPatrolRecord(@RequestBody ComSwPatrolRecordAddDTO comSwPatrolRecordAddDTO) {
+        Long communityId = this.getCommunityId();
+        comSwPatrolRecordAddDTO.setCommunityId(communityId);
+        comSwPatrolRecordAddDTO.setCreateBy(this.getLoginUserInfo().getUserId());
+        return communityService.addPatrolRecord(comSwPatrolRecordAddDTO);
+    }
+
+    /**
+     * 编辑巡查记录 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
+     *            巡查记录id
+     * @return 巡查记录详情查询结果
+     */
+    @ApiOperation(value = "根据巡查记录id查询详情")
+    @GetMapping("/detailPatrolRecord")
+    public R detailPatrolRecord(@RequestParam(value = "patrolRecordId") Long patrolRecordId) {
+        return communityService.detailPatrolRecord(patrolRecordId);
+    }
+
+    /**
+     * 分页查询安全工作记录
+     * 
+     * @param comSwPatrolRecordPageDTO
+     *            查询参数
+     * @return 安全工作记录分页集合
+     */
+    @ApiOperation(value = "分页查询安全工作记录", response = ComSwSafetyWorkRecordVO.class)
+    @PostMapping("/pageSafetyWorkRecord")
+    public R pageSafetyWorkRecord(@RequestBody ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO) {
+        if(comSwPatrolRecordPageDTO.getCommunityId()==null){
+            Long communityId = this.getCommunityId();
+            comSwPatrolRecordPageDTO.setCommunityId(communityId);
+        }
+        if(StringUtils.isNotEmpty(this.getAreaCode())){
+            comSwPatrolRecordPageDTO.setAreaCode(this.getAreaCode());
+        }
+        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);
+    }
+
+    /**
+     * 根据安全工作记录id查询详情
+     *
+     * @param safetyWorkRecordId
+     *            安全工作记录
+     * @return 安全工作记录详情查询结果
+     */
+    @ApiOperation(value = "根据安全工作记录id查询详情", response = ComSwSafetyWorkRecordVO.class)
+    @GetMapping("/detailSafetyWorkRecord")
+    public R detailSafetyWorkRecord(@RequestParam(value = "safetyWorkRecordId") Long safetyWorkRecordId) {
+        Long communityId = this.getLoginUserInfo().getCommunityId();
+        return communityService.detailSafetyWorkRecord(safetyWorkRecordId, communityId);
+    }
+
+    /**
+     * 根据巡查记录id查询安全工作记录详情
+     *
+     * @param patrolRecordId
+     *            巡查记录id
+     * @return 安全工作记录详情查询结果
+     */
+    @ApiOperation(value = "根据巡查记录id查询安全工作记录详情", response = ComSwSafetyWorkRecordVO.class)
+    @GetMapping("/detailSafetyWorkRecordByPrId")
+    public R detailSafetyWorkRecordByPrId(@RequestParam(value = "patrolRecordId") Long patrolRecordId) {
+        Long communityId = this.getLoginUserInfo().getCommunityId();
+        return communityService.detailSafetyWorkRecordByPrId(patrolRecordId, communityId);
+    }
+
+    /**
+     * 分页查询隐患报告
+     * 
+     * @param comSwPatrolRecordPageDTO
+     *            查询参数
+     * @return 隐患报告分页集合
+     */
+    @ApiOperation(value = "分页查询隐患报告", response = ComSwDangerReportVO.class)
+    @PostMapping("/pageDangerReport")
+    public R pageDangerReport(@RequestBody ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO) {
+        if(comSwPatrolRecordPageDTO.getCommunityId()==null){
+            Long communityId = this.getCommunityId();
+            comSwPatrolRecordPageDTO.setCommunityId(communityId);
+        }
+        comSwPatrolRecordPageDTO.setAreaCode(this.getAreaCode());
+        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);
+    }
+
+    /**
+     * 根据隐患报告id查询详情
+     *
+     * @param dangerReportId
+     *            隐患报告id
+     * @return 隐患报告详情查询结果
+     */
+    @ApiOperation(value = "根据隐患报告id查询详情", response = ComSwDangerReportVO.class)
+    @GetMapping("/detailDangerReport")
+    public R detailDangerReport(@RequestParam(value = "dangerReportId") Long dangerReportId) {
+        R r = communityService.detailDangerReport(dangerReportId);
+        if (R.isOk(r)) {
+            ComSwDangerReportVO reportVO =
+                JSONObject.parseObject(JSONObject.toJSONString(r.getData()), ComSwDangerReportVO.class);
+            reportVO.setCommunityName(this.getLoginUserInfo().getCommunityName());
+        }
+        return r;
+    }
+
+    /**
+     * 根据巡查记录id查询隐患报告详情
+     *
+     * @param patrolRecordId
+     *            巡查记录id
+     * @return 隐患报告详情查询结果
+     */
+    @ApiOperation(value = "根据巡查记录id查询隐患报告详情", response = ComSwDangerReportVO.class)
+    @GetMapping("/detailDangerReportByPrId")
+    public R detailDangerReportByPrId(@RequestParam(value = "patrolRecordId") Long patrolRecordId) {
+        R r = communityService.detailDangerReportByPrId(patrolRecordId);
+        if (R.isOk(r)) {
+            ComSwDangerReportVO reportVO =
+                JSONObject.parseObject(JSONObject.toJSONString(r.getData()), ComSwDangerReportVO.class);
+            reportVO.setCommunityName(this.getLoginUserInfo().getCommunityName());
+        }
+        return r;
+    }
+
+    /**
+     * 处理隐患报告
+     *
+     * @param comSwDangerReportHandleDTO
+     *            隐患报告处理参数
+     * @return 处理结果
+     */
+    @ApiOperation(value = "处理隐患报告")
+    @PostMapping("/handleDangerReport")
+    public R handleDangerReport(@RequestBody ComSwDangerReportHandleDTO comSwDangerReportHandleDTO) {
+        return communityService.handleDangerReport(comSwDangerReportHandleDTO);
+    }
+
+    /**
+     * 导出台账-隐患报告
+     *
+     * @param dangerReportIds
+     *            隐患报告ids
+     * @return 隐患报告导出结果
+     */
+    @ApiOperation(value = "导出台账-隐患报告")
+    @PostMapping("/danger/export")
+    public R exportDangerReportBook(@RequestBody List<Long> dangerReportIds) {
+        String url = excelUrl;
+        String name = "隐患报告台账导出数据.xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+        // 导出勾选了的隐患报告,不勾选则导出本页数据
+        R r = communityService.exportDangerReport(dangerReportIds);
+        if (R.isOk(r)) {
+            List<ComSwDangerReportExcelVO> comSwDangerReportExcelVOS =
+                JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComSwDangerReportExcelVO.class);
+            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, ComSwDangerReportExcelVO.class)
+                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet("隐患报告台账导出数据").build();
+                        excelWriter.write(comSwDangerReportExcelVOS, 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(url + name);
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error("文件传输失败【{}】", e.getMessage());
+                return R.fail();
+            }
+        }
+        return R.fail("未查询到隐患报告");
+    }
+
+    /**
+     * 巡查记录统计接口
+     *
+     * @return 统计结果
+     */
+    @ApiOperation(value = "巡查记录统计接口", response = ComSwPatrolRecordStatisticsVO.class)
+    @GetMapping("/patrolRecordStatistics")
+    public R patrolRecordStatistics() {
+        // 获取登陆用户绑定社区id
+        Long communityId = this.getLoginUserInfo().getCommunityId();
+        return communityService.patrolRecordStatistics(communityId);
+    }
+
+    /**
+     * 分页查询值班表
+     * 
+     * @param comSwRotaPageDTO
+     *            查询参数
+     * @return 值班表分页集合
+     */
+    @PostMapping("/pageRota")
+    @ApiOperation(value = "分页查询值班表", response = ComSwRotaVO.class)
+    public R pageRota(@RequestBody ComSwRotaPageDTO comSwRotaPageDTO) {
+        // 获取登陆用户绑定社区id
+        Long communityId = this.getLoginUserInfo().getCommunityId();
+        comSwRotaPageDTO.setCommunityId(communityId);
+        return communityService.pageRota(comSwRotaPageDTO);
+    }
+
+    /**
+     * 根据id查询值班表
+     * 
+     * @param rotaId
+     *            值班表id
+     * @return 值班表详情
+     */
+    @GetMapping("/detailRota")
+    @ApiOperation(value = "根据id查询值班表", response = ComSwRotaVO.class)
+    public R detailRota(@RequestParam("rotaId") Long rotaId) {
+        return communityService.detailRota(rotaId);
+    }
+
+    /**
+     * 新增值班表
+     * 
+     * @param comSwRotaSaveDTOs
+     *            新增参数
+     * @return 新增结果
+     */
+    @ApiOperation(value = "新增值班表")
+    @PostMapping("/addRota")
+    public R addRota(@RequestBody List<ComSwRotaSaveDTO> comSwRotaSaveDTOs) {
+        Long communityId = this.getLoginUserInfo().getCommunityId();
+        Long createBy = this.getLoginUserInfo().getUserId();
+        comSwRotaSaveDTOs.forEach(comSwRotaSaveDTO -> {
+            comSwRotaSaveDTO.setCommunityId(communityId);
+            comSwRotaSaveDTO.setCreateBy(createBy);
+        });
+        return communityService.addRota(comSwRotaSaveDTOs);
+    }
+
+    /**
+     * 批量删除值班表
+     * 
+     * @param rotaIds
+     *            值班ids
+     * @return 删除结果
+     */
+    @ApiOperation(value = "批量删除值班表")
+    @PostMapping("/deleteRota")
+    public R deleteRota(@RequestBody List<Long> rotaIds) {
+        return communityService.deleteRota(rotaIds);
+    }
+
+    /**
+     * 根据日期查询值班人员
+     * 
+     * @return 查询结果
+     */
+    @ApiOperation(value = "根据日期查询值班人员")
+    @GetMapping("/getRotaPersonByDate")
+    public R getRotaPersonByDate(@RequestParam(value = "rotaDate") String rotaDate) {
+        return communityService.getRotaPersonByDate(rotaDate,this.getCommunityId());
+    }
+
+    /**
+     * 根据日期查询值班领导
+     * 
+     * @return 查询结果
+     */
+    @ApiOperation(value = "根据日期查询值班领导")
+    @GetMapping("/getRotaLeaderByDate")
+    public R getRotaLeaderByDate(@RequestParam(value = "rotaDate") String rotaDate) {
+        return communityService.getRotaLeaderByDate(rotaDate,this.getCommunityId());
+    }
+
+    /**
+     * 选择人员
+     * 
+     * @param param
+     *            查询条件
+     * @return 查询结果
+     */
+    @ApiOperation(value = "选择人员")
+    @PostMapping("/getTotlePerson")
+    public R getTotlePerson(@RequestParam(value = "param", required = false) String param) {
+        Long communityId = this.getLoginUserInfo().getCommunityId();
+        return partyBuildingService.getTotlePerson(param, communityId);
+    }
+
+    @ApiOperation(value = "excel导入值班表")
+    @PostMapping(value = "/serve/import", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R downloadRotaTemplate(@RequestParam MultipartFile file, HttpServletRequest request) {
+        // 获取文件名
+        String fileName = file.getOriginalFilename();
+        log.info("传入文件名字【{}】", fileName);
+        InputStream inputStream = null;
+        try {
+            inputStream = file.getInputStream();
+            ComSwRotaExcelListen comSwRotaExcelListen =
+                new ComSwRotaExcelListen(communityService, this.getCommunityId());
+            EasyExcel.read(inputStream, ComSwRotaExcelVO.class, comSwRotaExcelListen).sheet().doRead();
+        } catch (IOException e) {
+            log.error("导入模板失败【{}】", e.getMessage());
+            e.printStackTrace();
+        }
+        return R.ok();
+    }
+
+    @ApiOperation(value = "值班表-下载模板")
+    @GetMapping("/export/rota")
+    public R exportRota() {
+        // 获取登陆用户绑定社区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 = headDataFilling();
+                    List<List<Object>> dataList = new ArrayList<>();
+                    List<Object> data = new ArrayList<>();
+                    data = formDataFilling();
+                    dataList.add(data);
+
+                    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 + "值班人员导入模板.xlsx");
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    @ApiOperation(value = "下载安全工作记录报告")
+    @PostMapping("/export/safetyWorkRecord")
+    public R exportSafetyWorkRecord(@RequestBody List<Long> ids) {
+        Long communityId = this.getLoginUserInfo().getCommunityId();
+        SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+        sftp.login();
+        String property = System.getProperty("user.dir");
+        String sourceFile =property+File.separator+"word"+File.separator+System.currentTimeMillis()+File.separator;
+        String zipFile=property+File.separator+"zip"+File.separator;
+        String ftpUrl = "/mnt/data/web/excel/";
+        for (Long id : ids) {
+            try {
+                Map<String, Object> dataMap = new HashMap<String, Object>();
+                ComSwSafetyWorkRecordVO comSwSafetyWorkRecordVO = JSONObject.parseObject(
+                    JSONObject.toJSONString(communityService.detailSafetyWorkRecord(id, communityId).getData()),
+                    ComSwSafetyWorkRecordVO.class);
+                // 生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址
+                String name = "安全工作记录_" + comSwSafetyWorkRecordVO.getId() + ".doc";
+                boolean existDir = sftp.isExistDir(ftpUrl + name);
+                if (!existDir) {
+                    // 这里 需要指定写用哪个class去写
+                    ExcelWriter excelWriter = null;
+                    InputStream inputStream = null;
+                    File file0=new File("/mnt/data/web/file");
+                    if(!file0.isDirectory()&&!file0.exists()){
+                        file0.mkdirs();
+                    }
+                    file0 = new File(sourceFile);
+                    if(!file0.isDirectory()&&!file0.exists()){
+                        file0.mkdirs();
+                    }
+                    sftp.download("/mnt/data/web/excel/", "安全工作记录.ftl", "/mnt/data/web/file/安全工作记录.ftl");
+                    sftp.download("/mnt/data/web/excel/", "blank.jpg", "/mnt/data/web/file/blank.jpg");
+                    try {
+                        // 日期
+                        if (comSwSafetyWorkRecordVO.getPatrolTime() != null) {
+                            dataMap.put("date",
+                                    new SimpleDateFormat("yyyy-MM-dd").format(comSwSafetyWorkRecordVO.getPatrolTime()));
+                        }else {
+                            dataMap.put("date", "");
+                        }
+                        // 巡查类型
+                        dataMap.put("patrolType", comSwSafetyWorkRecordVO.getPatrolType());
+                        // 社区名称
+                        if (StringUtils.isNotEmpty(comSwSafetyWorkRecordVO.getCommunityName())) {
+                            dataMap.put("communityName", comSwSafetyWorkRecordVO.getCommunityName());
+                        }else {
+                            dataMap.put("communityName", "");
+                        }
+                        // 地址
+                        if (StringUtils.isNotEmpty(comSwSafetyWorkRecordVO.getAddress())) {
+                            dataMap.put("address", comSwSafetyWorkRecordVO.getAddress());
+                        }else {
+                            dataMap.put("address", "");
+                        }
+                        // 记录内容
+                        if (StringUtils.isNotEmpty(comSwSafetyWorkRecordVO.getRecordContent())) {
+                            dataMap.put("recordContent", comSwSafetyWorkRecordVO.getRecordContent());
+                        }else {
+                            dataMap.put("recordContent", "");
+                        }
+                        // 发现记录
+                        if (StringUtils.isNotEmpty(comSwSafetyWorkRecordVO.getFindRecord())) {
+                            dataMap.put("findRecord", comSwSafetyWorkRecordVO.getFindRecord());
+                        }else {
+                            dataMap.put("findRecord", "");
+                        }
+                        // 记录照片
+                        List<String> photo = new ArrayList<>();
+                        if (StringUtils.isNotEmpty(comSwSafetyWorkRecordVO.getRecordPhoto())) {
+                            photo = Arrays.asList(comSwSafetyWorkRecordVO.getRecordPhoto().split(","));
+                        }
+                        if (photo.size() != 0 && null != photo) {
+                            List<Object> list=new ArrayList<>();
+                            for (int i = 0; i < photo.size(); i++) {
+                                downloadPicture(photo.get(i), comSwSafetyWorkRecordVO.getId() + "_find_" + i, "/mnt/data/web/file/");
+                                list.add(getImageStr("/mnt/data/web/file/" + comSwSafetyWorkRecordVO.getId() + "_find_" + i + ".jpg"));
+                            }
+                            dataMap.put("imgList",list);
+                        }
+                        // 备注
+                        if (StringUtils.isNotEmpty(comSwSafetyWorkRecordVO.getRemark())) {
+                            dataMap.put("remark", comSwSafetyWorkRecordVO.getRemark());
+                        }else {
+                            dataMap.put("remark", "");
+                        }
+                        // 巡查时间
+                        if (comSwSafetyWorkRecordVO.getPatrolTime() != null) {
+                            dataMap.put("patrolTime",
+                                    new SimpleDateFormat("yyyy-MM-dd").format(comSwSafetyWorkRecordVO.getPatrolTime()));
+                        }else {
+                            dataMap.put("patrolTime", "");
+                        }
+                        // 工作人员
+                        if (StringUtils.isNotEmpty(comSwSafetyWorkRecordVO.getPersonName())) {
+                            dataMap.put("personName", comSwSafetyWorkRecordVO.getPersonName());
+                        }else {
+                            dataMap.put("personName", "");
+                        }
+                        // 填报人员
+                        if (StringUtils.isNotEmpty(comSwSafetyWorkRecordVO.getCreateName())) {
+                            dataMap.put("createName", comSwSafetyWorkRecordVO.getCreateName());
+                        }else {
+                            dataMap.put("createName", "");
+                        }
+                        // 填报时间
+                        dataMap.put("createAt",
+                            new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(comSwSafetyWorkRecordVO.getCreateAt()));
+                        // 获取请求url
+                        String url = Constants.G_D_WEATHER_URL;
+                        // 获取请求参数
+                        String param = "key=" + Constants.G_D_WEATHER_KEY + "&city=510400";
+                        String result = HttpUtils.sendGet(url, param);
+                        R r = R.ok(JSON.parseObject(result));
+                        WeatherVO weatherVO =
+                            JSONObject.parseObject(JSONObject.toJSONString(r.getData()), WeatherVO.class);
+                        if (null != weatherVO) {
+                            LiveVO liveVO = weatherVO.getLives().get(0);
+                            // 城市
+                            dataMap.put("city", liveVO.getCity());
+                            // 天气
+                            dataMap.put("weather", liveVO.getWeather());
+                            // 温度
+                            dataMap.put("temperature", liveVO.getTemperature());
+                            // 风向
+                            dataMap.put("winddirection", liveVO.getWinddirection());
+                            // 风力
+                            dataMap.put("windpower", liveVO.getWindpower());
+                        }
+                        Configuration configuration = new Configuration(new Version("2.3.0"));
+
+                        configuration.setDefaultEncoding("utf-8");
+                        /**
+                         * 以下是两种指定ftl文件所在目录路径的方式,注意这两种方式都是 指定ftl文件所在目录的路径,而不是ftl文件的路径
+                         */
+                        // 指定路径的第一种方式(根据某个类的相对路径指定)
+                        // configuration.setClassForTemplateLoading(this.getClass(), "");
+
+                        // 指定路径的第二种方式,我的路径是C:/a.ftl
+                        configuration.setDirectoryForTemplateLoading(new File("/mnt/data/web/file/"));
+
+                        // 输出文档路径及名称
+                        // File outFile = new File("mnt/data/web/excel/安全工作记录_" + comSwSafetyWorkRecordVO.getId() +
+                        // ".doc");
+                        File file = new File(sourceFile + name);
+
+                        // 以utf-8的编码读取ftl文件
+                        Template template = configuration.getTemplate("安全工作记录.ftl", "utf-8");
+                        Writer out = new BufferedWriter(
+                            new OutputStreamWriter(new FileOutputStream(file), StandardCharsets.UTF_8), 10240);
+                        template.process(dataMap, out);
+                        out.close();
+                        //                        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();
+                        }
+                    }
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error("文件传输失败【{}】", e.getMessage());
+            }
+        }
+        FileUtil.compressToZip(sourceFile,zipFile,"安全工作记录.zip");
+        String currentDateString = String.valueOf(System.currentTimeMillis());
+        String name = "安全工作记录_"+ currentDateString+".zip";
+        try {
+            InputStream inputStream=new FileInputStream(zipFile+"安全工作记录.zip");
+            sftp.uploadMore(ftpUrl, name , inputStream);
+            sftp.logout();
+            inputStream.close();
+        } catch (FileNotFoundException e) {
+            e.printStackTrace();
+        } catch (SftpException e) {
+            e.printStackTrace();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return R.ok(excelUrl + name);
+    }
+
+    @ApiOperation(value = "下载巡查记录报告")
+    @PostMapping("/export/patrolRecord")
+    public R exportPatrolRecord(@RequestBody List<Long> ids) {
+        Long communityId = this.getLoginUserInfo().getCommunityId();
+        SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+        sftp.login();
+        String property = System.getProperty("user.dir");
+        String sourceFile =property+File.separator+"word"+File.separator+System.currentTimeMillis()+File.separator;
+        String zipFile=property+File.separator+"zip"+File.separator;
+        String ftpUrl = "/mnt/data/web/excel/";
+        for (Long id : ids) {
+            try {
+                Map<String, Object> dataMap = new HashMap<String, Object>();
+                ComSwPatrolRecordVO comSwPatrolRecordVO =
+                    JSONObject.parseObject(JSONObject.toJSONString(communityService.detailPatrolRecord(id).getData()),
+                        ComSwPatrolRecordVO.class);
+                // 生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址
+                String name = "巡查记录_" + comSwPatrolRecordVO.getId() + ".doc";
+
+                boolean existDir = sftp.isExistDir(ftpUrl + name);
+                if (!existDir) {
+                    // 这里 需要指定写用哪个class去写
+                    ExcelWriter excelWriter = null;
+                    InputStream inputStream = null;
+                    File file0=new File("/mnt/data/web/file");
+                    if(!file0.isDirectory()&&!file0.exists()){
+                        file0.mkdirs();
+                    }
+                    file0 = new File(sourceFile);
+                    if(!file0.isDirectory()&&!file0.exists()){
+                        file0.mkdirs();
+                    }
+                    sftp.download("/mnt/data/web/excel/", "巡查记录.ftl", "/mnt/data/web/file/巡查记录.ftl");
+                    sftp.download("/mnt/data/web/excel/", "blank.jpg", "/mnt/data/web/file/blank.jpg");
+                    try {
+                        // 日期
+                        if (comSwPatrolRecordVO.getPatrolTime() != null) {
+                            dataMap.put("date",
+                                    new SimpleDateFormat("yyyy-MM-dd").format(comSwPatrolRecordVO.getPatrolTime()));
+                        }else {
+                            dataMap.put("date", "");
+                        }
+                        // 巡查类型
+                        if (StringUtils.isNotEmpty(comSwPatrolRecordVO.getPatrolType())) {
+                            dataMap.put("patrolType", comSwPatrolRecordVO.getPatrolType());
+                        }else {
+                            dataMap.put("patrolType", "");
+                        }
+                        // 社区名称
+                            dataMap.put("communityName", comSwPatrolRecordVO.getCommunityName());
+                        // 地址
+                        if (StringUtils.isNotEmpty(comSwPatrolRecordVO.getAddress())) {
+                            dataMap.put("address", comSwPatrolRecordVO.getAddress());
+                        }else {
+                            dataMap.put("address", "");
+                        }
+                        // 记录内容
+                        if (StringUtils.isNotEmpty(comSwPatrolRecordVO.getRecordContent())) {
+                            dataMap.put("recordContent", comSwPatrolRecordVO.getRecordContent());
+                        }else {
+                            dataMap.put("recordContent", "");
+                        }
+                        // 发现记录
+                        if (StringUtils.isNotEmpty(comSwPatrolRecordVO.getFindRecord())) {
+                            dataMap.put("findRecord", comSwPatrolRecordVO.getFindRecord());
+                        }else {
+                            dataMap.put("findRecord", "");
+                        }
+                        // 记录照片
+                        List<String> photo = new ArrayList<>();
+                        if (StringUtils.isNotEmpty(comSwPatrolRecordVO.getRecordPhoto())) {
+                            photo = Arrays.asList(comSwPatrolRecordVO.getRecordPhoto().split(","));
+                        }
+                        if (photo.size() != 0 && null != photo) {
+                            List<Object> list=new ArrayList<>();
+                            for (int i = 0; i < photo.size(); i++) {
+                                downloadPicture(photo.get(i), comSwPatrolRecordVO.getId() + "_find_" + i, "/mnt/data/web/file/");
+                                list.add(getImageStr("/mnt/data/web/file/" + comSwPatrolRecordVO.getId() + "_find_" + i + ".jpg"));
+                            }
+                            dataMap.put("imgList",list);
+                        }
+                        // 备注
+                        if (StringUtils.isNotEmpty(comSwPatrolRecordVO.getRemark())) {
+                            dataMap.put("remark", comSwPatrolRecordVO.getRemark());
+                        }else {
+                            dataMap.put("remark", "");
+                        }
+                        // 巡查时间
+                        // dataMap.put("patrolTime", new
+                        // SimpleDateFormat("yyyy-MM-dd").format(comSwPatrolRecordVO.getPatrolTime()));
+                        // 工作人员
+                        // dataMap.put("personName", comSwPatrolRecordVO.getPersonName());
+                        // 巡查人员
+                        if (StringUtils.isNotEmpty(comSwPatrolRecordVO.getPersonName())) {
+                            dataMap.put("personName", comSwPatrolRecordVO.getPersonName());
+                        }else {
+                            dataMap.put("personName", "");
+                        }
+                        // 接班时间
+                        if (comSwPatrolRecordVO.getSuccessionTime() != null) {
+                            dataMap.put("successionTime",
+                                    new SimpleDateFormat("yyyy-MM-dd").format(comSwPatrolRecordVO.getSuccessionTime()));
+                        }else {
+                            dataMap.put("successionTime", "");
+                        }
+                        // 接班人员
+                        if (StringUtils.isNotEmpty(comSwPatrolRecordVO.getSuccessionPerson())) {
+                            dataMap.put("successionPerson", comSwPatrolRecordVO.getSuccessionPerson());
+                        }else {
+                            dataMap.put("successionPerson", "");
+                        }
+                        // 填报人员
+                        if (StringUtils.isNotEmpty(comSwPatrolRecordVO.getCreateName())) {
+                            dataMap.put("createName", comSwPatrolRecordVO.getCreateName());
+                        }else {
+                            dataMap.put("createName", "");
+                        }
+                        // 填报时间
+                        dataMap.put("createAt",
+                            new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(comSwPatrolRecordVO.getCreateAt()));
+                        // 获取请求url
+                        String url = Constants.G_D_WEATHER_URL;
+                        // 获取请求参数
+                        String param = "key=" + Constants.G_D_WEATHER_KEY + "&city=510400";
+                        String result = HttpUtils.sendGet(url, param);
+                        R r = R.ok(JSON.parseObject(result));
+                        WeatherVO weatherVO =
+                            JSONObject.parseObject(JSONObject.toJSONString(r.getData()), WeatherVO.class);
+                        if (null != weatherVO) {
+                            LiveVO liveVO = weatherVO.getLives().get(0);
+                            // 城市
+                            dataMap.put("city", liveVO.getCity());
+                            // 天气
+                            dataMap.put("weather", liveVO.getWeather());
+                            // 温度
+                            dataMap.put("temperature", liveVO.getTemperature());
+                            // 风向
+                            dataMap.put("winddirection", liveVO.getWinddirection());
+                            // 风力
+                            dataMap.put("windpower", liveVO.getWindpower());
+                        }
+                        Configuration configuration = new Configuration(new Version("2.3.0"));
+
+                        configuration.setDefaultEncoding("utf-8");
+                        /**
+                         * 以下是两种指定ftl文件所在目录路径的方式,注意这两种方式都是 指定ftl文件所在目录的路径,而不是ftl文件的路径
+                         */
+                        // 指定路径的第一种方式(根据某个类的相对路径指定)
+                        // configuration.setClassForTemplateLoading(this.getClass(), "");
+
+                        // 指定路径的第二种方式,我的路径是C:/a.ftl
+                        configuration.setDirectoryForTemplateLoading(new File("/mnt/data/web/file/"));
+
+                        // 输出文档路径及名称
+                        // File outFile = new File("mnt/data/web/excel/安全工作记录_" + comSwSafetyWorkRecordVO.getId() +
+                        // ".doc");
+                        File file = new File(sourceFile + name);
+
+                        // 以utf-8的编码读取ftl文件
+                        Template template = configuration.getTemplate("巡查记录.ftl", "utf-8");
+                        Writer out = new BufferedWriter(
+                            new OutputStreamWriter(new FileOutputStream(file), StandardCharsets.UTF_8), 10240);
+                        template.process(dataMap, out);
+                        out.close();
+//                        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();
+                        }
+                    }
+                }
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error("文件传输失败【{}】", e.getMessage());
+            }
+        }
+        FileUtil.compressToZip(sourceFile,zipFile,"巡查记录.zip");
+        String currentDateString = String.valueOf(System.currentTimeMillis());
+        String name = "巡查记录_"+ currentDateString+".zip";
+        try {
+            InputStream inputStream=new FileInputStream(zipFile+"巡查记录.zip");
+            sftp.uploadMore(ftpUrl, name , inputStream);
+            sftp.logout();
+            inputStream.close();
+        } catch (FileNotFoundException e) {
+            e.printStackTrace();
+        } catch (SftpException e) {
+            e.printStackTrace();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return R.ok(excelUrl + name);
+    }
+
+    @ApiOperation(value = "下载隐患报告")
+    @PostMapping("/export/DangerReport")
+    public R exportDangerReport(@RequestBody List<Long> ids) {
+        Long communityId = this.getLoginUserInfo().getCommunityId();
+        SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+        sftp.login();
+        String property = System.getProperty("user.dir");
+        String sourceFile =property+File.separator+"word"+File.separator+System.currentTimeMillis()+File.separator;
+        String zipFile=property+File.separator+"zip"+File.separator;
+        String ftpUrl = "/mnt/data/web/excel/";
+        for (Long id : ids) {
+            try {
+            Map<String, Object> dataMap = new HashMap<String, Object>();
+            ComSwDangerReportVO comSwDangerReportVO =
+                JSONObject.parseObject(JSONObject.toJSONString(communityService.detailDangerReport(id).getData()),
+                    ComSwDangerReportVO.class);
+            // 生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址
+            String name = "隐患报告_" + comSwDangerReportVO.getId() + ".doc";
+
+            boolean existDir = sftp.isExistDir(ftpUrl + name);
+            if (!existDir) {
+                // 这里 需要指定写用哪个class去写
+                ExcelWriter excelWriter = null;
+                InputStream inputStream = null;
+                File file0=new File("/mnt/data/web/file");
+                if(!file0.isDirectory()&&!file0.exists()){
+                    file0.mkdirs();
+                }
+                file0 = new File(sourceFile);
+                if(!file0.isDirectory()&&!file0.exists()){
+                    file0.mkdirs();
+                }
+                sftp.download("/mnt/data/web/excel/", "隐患报告.ftl", "/mnt/data/web/file/隐患报告.ftl");
+                sftp.download("/mnt/data/web/excel/", "blank.jpg", "/mnt/data/web/file/blank.jpg");
+                try {
+                    // 日期
+                    if (StringUtils.isNotEmpty(comSwDangerReportVO.getCheckTime())) {
+                        dataMap.put("date", comSwDangerReportVO.getCheckTime());
+                    } else {
+                        dataMap.put("date", "");
+                    }
+                    dataMap.put("communityName",comSwDangerReportVO.getCommunityName());
+                    // 巡查类型
+                    if (StringUtils.isNotEmpty(comSwDangerReportVO.getPatrolType())) {
+                        dataMap.put("patrolType", comSwDangerReportVO.getPatrolType());
+                    }else {
+                        dataMap.put("patrolType", "");
+                    }
+                    // 地址
+                    if (StringUtils.isNotEmpty(comSwDangerReportVO.getAddress())) {
+                        dataMap.put("address", comSwDangerReportVO.getAddress());
+                    }else {
+                        dataMap.put("address", "");
+                    }
+                    // 隐患名称
+                    if (StringUtils.isNotEmpty(comSwDangerReportVO.getDangerName())) {
+                        dataMap.put("dangerName", comSwDangerReportVO.getDangerName());
+                    }else {
+                        dataMap.put("dangerName", "");
+                    }
+                    // 排查时间
+                    if (StringUtils.isNotEmpty(comSwDangerReportVO.getCheckTime())) {
+                        dataMap.put("checkTime", comSwDangerReportVO.getCheckTime());
+                    }else {
+                        dataMap.put("checkTime", "");
+                    }
+                    // 排查人员
+                    if (StringUtils.isNotEmpty(comSwDangerReportVO.getPPersonName())) {
+                        dataMap.put("ppersonName", comSwDangerReportVO.getPPersonName());
+                    }else {
+                        dataMap.put("ppersonName", "");
+                    }
+                    // 填报人员
+                    if (StringUtils.isNotEmpty(comSwDangerReportVO.getCreateName())) {
+                        dataMap.put("createName", comSwDangerReportVO.getCreateName());
+                    }else {
+                        dataMap.put("createName", "");
+                    }
+                    // 填报时间
+                    dataMap.put("createAt",
+                        new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(comSwDangerReportVO.getCreateAt()));
+                    // 隐患编号
+                    dataMap.put("dangerNo", comSwDangerReportVO.getDangerNo());
+                    // 主体部门、单位或个人全称
+                    if (StringUtils.isNotEmpty(comSwDangerReportVO.getUnitName())) {
+                        dataMap.put("unitName", comSwDangerReportVO.getUnitName());
+                    } else {
+                        dataMap.put("unitName", "");
+                    }
+                    // 隐患简述
+                    if (StringUtils.isNotEmpty(comSwDangerReportVO.getDagerDescription())) {
+                        dataMap.put("dagerDescription", comSwDangerReportVO.getDagerDescription());
+                    } else {
+                        dataMap.put("dagerDescription", "");
+                    }
+                    // 已采取的措施
+                    if (StringUtils.isNotEmpty(comSwDangerReportVO.getTakeSteps())) {
+                        dataMap.put("takeSteps", comSwDangerReportVO.getTakeSteps());
+                    } else {
+                        dataMap.put("takeSteps", "");
+                    }
+                    // 措施照片
+                    List<String> photo1 = new ArrayList<>();
+                    if (StringUtils.isNotEmpty(comSwDangerReportVO.getStepsPhoto())) {
+                        photo1 = Arrays.asList(comSwDangerReportVO.getStepsPhoto().split(","));
+                    }
+                    if (photo1.size() != 0 && null != photo1) {
+                        List<Object> list=new ArrayList<>();
+                        for (int i = 0; i < photo1.size(); i++) {
+                            downloadPicture(photo1.get(i), comSwDangerReportVO.getId() + "_step_" + i, "/mnt/data/web/file/");
+                            list.add(getImageStr("/mnt/data/web/file/" + comSwDangerReportVO.getId() + "_step_" + i + ".jpg"));
+                        }
+                        dataMap.put("imgList",list);
+                    }
+                    // 社区处理建议
+                    if (StringUtils.isNotEmpty(comSwDangerReportVO.getCommunitySuggestion())) {
+                        dataMap.put("communitySuggestion", comSwDangerReportVO.getCommunitySuggestion());
+                    } else {
+                        dataMap.put("communitySuggestion", "");
+                    }
+                    // 街道安全管理人员建议
+                    if (StringUtils.isNotEmpty(comSwDangerReportVO.getStreetSuggestion())) {
+                        dataMap.put("streetSuggestion", comSwDangerReportVO.getStreetSuggestion());
+                    } else {
+                        dataMap.put("streetSuggestion", "");
+                    }
+                    // 领导意见
+                    if (StringUtils.isNotEmpty(comSwDangerReportVO.getLeaderSuggestion())) {
+                        dataMap.put("leaderSuggestion", comSwDangerReportVO.getLeaderSuggestion());
+                    } else {
+                        dataMap.put("leaderSuggestion", "");
+                    }
+                    // 承办记录
+                    if (StringUtils.isNotEmpty(comSwDangerReportVO.getUndertakeRecord())) {
+                        dataMap.put("undertakeRecord", comSwDangerReportVO.getUndertakeRecord());
+                    } else {
+                        dataMap.put("undertakeRecord", "");
+                    }
+                    // 巡查记录
+                    if (StringUtils.isNotEmpty(comSwDangerReportVO.getRecordContent())) {
+                        dataMap.put("recordContent", comSwDangerReportVO.getRecordContent());
+                    } else {
+                        dataMap.put("recordContent", "");
+                    }
+                    // 发现记录
+                    if (StringUtils.isNotEmpty(comSwDangerReportVO.getFindRecord())) {
+                        dataMap.put("findRecord", comSwDangerReportVO.getFindRecord());
+                    } else {
+                        dataMap.put("findRecord", "");
+                    }
+                    // 记录照片
+                    List<String> photo2 = new ArrayList<>();
+                    if (StringUtils.isNotEmpty(comSwDangerReportVO.getRecordPhoto())) {
+                        photo2 = Arrays.asList(comSwDangerReportVO.getRecordPhoto().split(","));
+                    }
+                    if (photo2.size() != 0 && null != photo2) {
+                        List<Object> list=new ArrayList<>();
+                        for (int i = 0; i < photo2.size(); i++) {
+                                downloadPicture(photo2.get(i), comSwDangerReportVO.getId() + "_find_" + i, "/mnt/data/web/file/");
+                                list.add(getImageStr("/mnt/data/web/file/" + comSwDangerReportVO.getId() + "_find_" + i + ".jpg"));
+                        }
+                        dataMap.put("imgList2",list);
+                    }
+                    // 备注
+                    if (StringUtils.isNotEmpty(comSwDangerReportVO.getRemark())) {
+                        dataMap.put("remark", comSwDangerReportVO.getRemark());
+                    } else {
+                        dataMap.put("remark", "");
+                    }
+                    // 整改时间
+                    if (StringUtils.isNotEmpty(comSwDangerReportVO.getRectifyTime())) {
+                        dataMap.put("rectifyTime", comSwDangerReportVO.getRectifyTime());
+                    } else {
+                        dataMap.put("rectifyTime", "");
+                    }
+                    // 整改人员
+                    if (StringUtils.isNotEmpty(comSwDangerReportVO.getDPersonName())) {
+                        dataMap.put("dpersonName", comSwDangerReportVO.getDPersonName());
+                    } else {
+                        dataMap.put("dpersonName", "");
+                    }
+
+                    // 获取请求url
+                    String url = Constants.G_D_WEATHER_URL;
+                    // 获取请求参数
+                    String param = "key=" + Constants.G_D_WEATHER_KEY + "&city=510400";
+                    String result = HttpUtils.sendGet(url, param);
+                    R r = R.ok(JSON.parseObject(result));
+                    WeatherVO weatherVO =
+                        JSONObject.parseObject(JSONObject.toJSONString(r.getData()), WeatherVO.class);
+                    if (null != weatherVO) {
+                        LiveVO liveVO = weatherVO.getLives().get(0);
+                        // 城市
+                        dataMap.put("city", liveVO.getCity());
+                        // 天气
+                        dataMap.put("weather", liveVO.getWeather());
+                        // 温度
+                        dataMap.put("temperature", liveVO.getTemperature());
+                        // 风向
+                        dataMap.put("winddirection", liveVO.getWinddirection());
+                        // 风力
+                        dataMap.put("windpower", liveVO.getWindpower());
+                    }
+                    Configuration configuration = new Configuration(new Version("2.3.0"));
+
+                    configuration.setDefaultEncoding("utf-8");
+                    /**
+                     * 以下是两种指定ftl文件所在目录路径的方式,注意这两种方式都是 指定ftl文件所在目录的路径,而不是ftl文件的路径
+                     */
+                    // 指定路径的第一种方式(根据某个类的相对路径指定)
+                    // configuration.setClassForTemplateLoading(this.getClass(), "");
+
+                    // 指定路径的第二种方式,我的路径是C:/a.ftl
+                    configuration.setDirectoryForTemplateLoading(new File("/mnt/data/web/file/"));
+
+                    // 输出文档路径及名称
+                    // File outFile = new File("mnt/data/web/excel/安全工作记录_" + comSwSafetyWorkRecordVO.getId() +
+                    // ".doc");
+                    File file = new File(sourceFile+name);
+
+                    // 以utf-8的编码读取ftl文件
+                    Template template = configuration.getTemplate("隐患报告.ftl", "utf-8");
+                    Writer out = new BufferedWriter(
+                        new OutputStreamWriter(new FileOutputStream(file), StandardCharsets.UTF_8), 10240);
+                    template.process(dataMap, out);
+                    out.close();
+//                    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();
+                    }
+                }
+            }
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error("文件传输失败【{}】", e.getMessage());
+            }
+        }
+        FileUtil.compressToZip(sourceFile,zipFile,"隐患报告.zip");
+        String currentDateString = String.valueOf(System.currentTimeMillis());
+        String name = "隐患报告_"+ currentDateString+".zip";
+        try {
+            InputStream inputStream=new FileInputStream(zipFile+"隐患报告.zip");
+            sftp.uploadMore(ftpUrl, name , inputStream);
+            sftp.logout();
+            inputStream.close();
+        } catch (FileNotFoundException e) {
+            e.printStackTrace();
+        } catch (SftpException e) {
+            e.printStackTrace();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return R.ok(excelUrl + name);
+    }
+
+    private List<List<String>> headDataFilling() {
+        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.add(head0);
+        list.add(head1);
+        list.add(head2);
+        list.add(head3);
+        list.add(head4);
+        list.add(head5);
+        return list;
+    }
+
+    private List<Object> formDataFilling() {
+        List<Object> data = new ArrayList<>();
+        data.add("2021-01-01");
+        data.add("张三、李四、王二");
+        data.add("138000000、138000000、138000000");
+        data.add("王五");
+        data.add("138000000");
+        data.add("示例");
+        return data;
+    }
+
+    public String getImageStr(String fileName) {
+        String imgFile = fileName;
+        InputStream in = null;
+        byte[] data = null;
+        try {
+            in = new FileInputStream(imgFile);
+            data = new byte[in.available()];
+            in.read(data);
+            in.close();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        BASE64Encoder encoder = new BASE64Encoder();
+        return encoder.encode(data);
+    }
+
+    public String downloadPicture(String urlString, String fileName,String dir) throws Exception {
+        // 构造URL
+        URL url = new URL(urlString);
+        // 打开连接
+        URLConnection con = url.openConnection();
+        // 输入流
+        InputStream is = con.getInputStream();
+        // 1K的数据缓冲
+        byte[] bs = new byte[1024];
+        // 读取到的数据长度
+        int len;
+        // 输出的文件流
+        String filename = dir + fileName + ".jpg"; // 下载路径及下载图片名称
+        File file = new File(filename);
+        FileOutputStream os = new FileOutputStream(file, true);
+        // 开始读取
+        while ((len = is.read(bs)) != -1) {
+            os.write(bs, 0, len);
+        }
+        // 完毕,关闭所有链接
+        os.close();
+        is.close();
+        return filename;
+    }
+}
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
new file mode 100644
index 0000000..71d345c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommonDataApi.java
@@ -0,0 +1,995 @@
+package com.panzhihua.community_backstage.api;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.UUID;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.enums.CellExtraTypeEnum;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.jcraft.jsch.SftpException;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.enums.PopulPoliticalOutlookEnum;
+import com.panzhihua.common.enums.PopulSexEnum;
+import com.panzhihua.common.listen.ComMngCarExcelListen;
+import com.panzhihua.common.listen.ComMngRealAssetsExcelListen;
+import com.panzhihua.common.listen.ComMngRealCompanyExcelListen;
+import com.panzhihua.common.model.dtos.community.*;
+import com.panzhihua.common.model.dtos.user.EexcelUserDTO;
+import com.panzhihua.common.model.dtos.user.InputUserTagsDTO;
+import com.panzhihua.common.model.dtos.user.PageInputUserDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.*;
+import com.panzhihua.common.model.vos.user.ComMngTagVO;
+import com.panzhihua.common.model.vos.user.InputUserInfoVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.SFTPUtil;
+import com.panzhihua.common.validated.AddGroup;
+import com.panzhihua.community_backstage.easyexcel.UploadEexcelUserDTOListener;
+import com.panzhihua.community_backstage.excel.CustomSheetWriteHandler;
+
+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;
+
+/**
+ * @description: 社区管理基础数据库管理接口
+ * @author: Null
+ * @date: 2021/3/11 13:26
+ */
+@Slf4j
+@Api(tags = {"社区管理/基础数据库"})
+@RestController
+@RequestMapping("/common/data")
+public class CommonDataApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private UserService userService;
+    @Value("${excel.userurl}")
+    private String excelUrl;
+    @Value("${excel.carUrl}")
+    private String carUrl;
+    // = "http://panzhihua.nhys.cdnhxx.com/web/%e8%bd%a6%e8%be%86%e5%af%bc%e5%85%a5%e6%a8%a1%e6%9d%bf.xlsx";
+    @Value("${excel.companyUrl}")
+    private String companyUrl =
+        "http://panzhihua.nhys.cdnhxx.com/web/%e5%ae%9e%e6%9c%89%e5%8d%95%e4%bd%8d%e5%af%bc%e5%85%a5%e6%a8%a1%e6%9d%bf.xlsx";
+    @Value("${excel.assetsUrl}")
+    private String assetsUrl =
+        "http://panzhihua.nhys.cdnhxx.com/web/%e5%ae%9e%e6%9c%89%e5%8d%95%e4%bd%8d%e5%af%bc%e5%85%a5%e6%a8%a1%e6%9d%bf.xlsx";
+
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+    @Value("${ftp.url}")
+    private String url;
+
+    @ApiOperation(value = "分页查询车辆管理列表", response = ComMngCarVO.class)
+    @PostMapping("/car/page")
+    public R pageQueryComMngCar(@RequestBody PageComMngCarDTO pageComMngCarDTO) {
+        pageComMngCarDTO.setCommunityId(this.getCommunityId());
+        return communityService.pageQueryComMngCar(pageComMngCarDTO);
+    }
+
+    @ApiOperation(value = "新增/编辑车辆信息")
+    @PostMapping("/car/save")
+    public R saveComMngCar(@RequestBody @Validated(AddGroup.class) ComMngCarSaveDTO comMngCarSaveDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long userId = loginUserInfo.getUserId();
+        comMngCarSaveDTO.setCreateBy(userId);
+        return communityService.saveComMngCar(comMngCarSaveDTO);
+    }
+
+    @ApiOperation(value = "删除车辆信息")
+    @DeleteMapping("/car/delete")
+    public R deleteComMngCar(@RequestParam(value = "id") Long id) {
+        return communityService.deleteComMngCar(id);
+    }
+
+    @ApiOperation(value = "下载模板-车辆管理")
+    @GetMapping(value = "/car/download/template")
+    public R downloadTemplate(HttpServletResponse response) throws IOException, SftpException {
+        // 获取登陆用户绑定社区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<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.add(head0);
+                    list.add(head1);
+                    list.add(head2);
+                    list.add(head3);
+                    list.add(head4);
+                    list.add(head5);
+                    list.add(head6);
+                    List<List<Object>> dataList = new ArrayList<>();
+                    List<Object> data = new ArrayList<>();
+                    data.add("蓝湖国际");
+                    data.add("张三");
+                    data.add("510802199205054112");
+                    data.add("13888000088");
+                    data.add("川A66666");
+                    data.add("大众s9");
+                    data.add("黑色");
+                    dataList.add(data);
+
+                    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 + "车辆导入模板.xlsx");
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    @ApiOperation(value = "excel导入车辆信息")
+    @PostMapping(value = "/car/import", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R downloadTemplate(@RequestParam MultipartFile file, HttpServletRequest request) {
+        String fileName = file.getOriginalFilename(); // 获取文件名
+        log.info("传入文件名字【{}】", fileName);
+        InputStream inputStream = null;
+        try {
+            inputStream = file.getInputStream();
+            EasyExcel.read(inputStream, ComMngCarExcelVO.class,
+                new ComMngCarExcelListen(communityService, this.getCommunityId())).sheet().doRead();
+        } catch (IOException e) {
+            e.printStackTrace();
+            log.error("导入模板失败【{}】", e.getMessage());
+        }
+        return R.ok();
+    }
+
+    @ApiOperation(value = "车辆Excel-数据导出")
+    @PostMapping("/car/export")
+    public R exportComMngCar(@RequestBody ExportComMngCarExcelDTO exportComMngCarExcelDTO) {
+        exportComMngCarExcelDTO.setCommunityId(this.getCommunityId());
+        String url = excelUrl;
+        // String uuid = UUID.randomUUID().toString().replace("-", "");
+        String name = "车辆导出数据.xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+        // 用户搜索了就下载搜索的用户否则下载所有用户
+        R r = communityService.exportRealCar(exportComMngCarExcelDTO);
+        if (R.isOk(r)) {
+            List<ComMngCarExcelVO> comMngCarExcelVOS =
+                JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComMngCarExcelVO.class);
+            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, ComMngCarExcelVO.class)
+                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet("车辆导出").build();
+                        excelWriter.write(comMngCarExcelVOS, 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(url + name);
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error("文件传输失败【{}】", e.getMessage());
+                return R.fail();
+            }
+        }
+        return R.fail("未查询到车辆");
+    }
+
+    @ApiOperation(value = "下载居民导入模板")
+    @GetMapping("/user/template")
+    @ApiImplicitParam(name = "id", value = "小区id", required = true)
+    public R exportUser(@RequestParam("id") Long id) {
+        // 检查小区是否已经批量设置过房屋并且返回小区房屋门号规则
+        R r = communityService.checkAreaHouse(id);
+        if (R.isOk(r)) {
+            // 生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址
+            ComMngStructAreaVO comMngStructAreaVO =
+                JSONObject.parseObject(JSONObject.toJSONString(r.getData()), ComMngStructAreaVO.class);
+            String areaName = comMngStructAreaVO.getAreaName();
+            String roleFloor = comMngStructAreaVO.getRoleFloor();
+            String roleConnector = comMngStructAreaVO.getRoleConnector();
+            String roleDoor = comMngStructAreaVO.getRoleDoor();
+            String doorNumber = "1-1-1-" + roleFloor + roleConnector + roleDoor;
+            // String url="http://www.psciio.com/web/excel/";
+            String ftpUrl = "/mnt/data/web/excel/";
+            String name = areaName + ".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, EexcelUserDTO.class)
+                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet(areaName + "居民导入模板").build();
+                        List<EexcelUserDTO> eexcelUserDTOS = new ArrayList<>();
+                        EexcelUserDTO eexcelUserDTO = new EexcelUserDTO();
+                        eexcelUserDTO.setOrder("例子(可不用删除)");
+                        eexcelUserDTO.setDoorNumber(doorNumber);
+                        eexcelUserDTO.setIsRent("是");
+                        eexcelUserDTO.setName("张三");
+                        eexcelUserDTO.setNation("汉");
+                        eexcelUserDTO.setPoliticalOutlook("群众");
+                        eexcelUserDTO.setMaritalStatus("已婚");
+                        eexcelUserDTO.setPhone("13545789626");
+                        eexcelUserDTO.setEducation("高中");
+                        eexcelUserDTO.setIdCard("342589457896122557");
+                        eexcelUserDTO.setCompany("恰恰食品厂");
+                        eexcelUserDTO.setResidence("攀枝花");
+                        eexcelUserDTO.setIsPanZhiHua("是");
+                        eexcelUserDTO.setSituation("1月27日返攀");
+                        eexcelUserDTO.setIsContact("否");
+                        eexcelUserDTO.setMajor("否");
+                        eexcelUserDTO.setSoldier("否");
+                        eexcelUserDTO.setDisability("否");
+                        eexcelUserDTO.setLowIncomePeople("否");
+                        eexcelUserDTO.setLowIncomeHouseholds("否");
+                        eexcelUserDTO.setOldPeople("否");
+                        eexcelUserDTO.setSpecialServiceFamily("否");
+                        eexcelUserDTO.setKeyPersonnel("否");
+                        eexcelUserDTOS.add(eexcelUserDTO);
+                        excelWriter.write(eexcelUserDTOS, 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 + areaName + ".xlsx");
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error("文件传输失败【{}】", e.getMessage());
+                return R.fail();
+            }
+        } else {
+            return r;
+        }
+    }
+
+    @ApiOperation(value = "居民管理导入居民")
+    @PostMapping("/user/import")
+    public R importUser(@RequestParam MultipartFile file) throws IOException {
+        String name = file.getOriginalFilename();
+        Float size = Float.parseFloat(String.valueOf(file.getSize())) / 1024;
+        BigDecimal b = new BigDecimal(size);
+        size = b.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue();
+        log.info("导入文件名字【{}】,文件大小【{}】KB", name, size);
+        String fileType = name.substring(name.indexOf("."));
+        boolean isXls = !fileType.contains("xls") && !fileType.contains("xlsx");
+        if (isXls) {
+            return R.fail("请上传xls或者xlsx格式的文件");
+        }
+        EasyExcel.read(file.getInputStream(), EexcelUserDTO.class, new UploadEexcelUserDTOListener(userService, name))
+            .extraRead(CellExtraTypeEnum.MERGE).headRowNumber(1).sheet().doRead();
+        return R.ok();
+    }
+
+    @ApiOperation(value = "居民管理选择导入的小区", response = ComMngStructAreaVO.class)
+    @GetMapping("/user/areas")
+    public R listAreas() {
+        Long communityId = this.getCommunityId();
+        return communityService.listAreas("", communityId);
+    }
+
+    @ApiOperation(value = "居民管理 分页查询居民列表", response = InputUserInfoVO.class)
+    @PostMapping("/user/page")
+    public R userPage(@RequestBody PageInputUserDTO pageInputUserDTO) {
+        Long communityId = this.getCommunityId();
+        pageInputUserDTO.setCommunityId(communityId);
+        return userService.pageInputUser(pageInputUserDTO);
+    }
+
+    @ApiOperation(value = "居民管理 居民详情", response = InputUserInfoVO.class)
+    @GetMapping("/user/detail")
+    @ApiImplicitParam(name = "id", value = "用户ID", required = true)
+    public R detailUser(@RequestParam("id") Long id) {
+        return userService.inputUserDetail(id);
+    }
+
+    @ApiOperation(value = "居民管理 导出居民Excel")
+    @PostMapping("/user/export")
+    public R export(@RequestBody ExportUserDTO exportUserDTO) {
+        exportUserDTO.setCommunityId(this.getCommunityId());
+        String url = excelUrl;
+        String uuid = UUID.randomUUID().toString().replace("-", "");
+        String name = uuid + ".xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+        // 用户搜索了就下载搜索的用户否则下载所有用户
+        R r = userService.inputUserExport(exportUserDTO);
+        if (R.isOk(r)) {
+            List<EexcelUserDTO> eexcelUserDTOS =
+                JSONArray.parseArray(JSONArray.toJSONString(r.getData()), EexcelUserDTO.class);
+            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, EexcelUserDTO.class)
+                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet("模板").build();
+                        excelWriter.write(eexcelUserDTOS, 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(url + name);
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error("文件传输失败【{}】", e.getMessage());
+                return R.fail();
+            }
+        }
+        return R.fail("未查询到用户");
+    }
+
+    /**
+     * 设置居民标签
+     *
+     * @param inputUserTagsDTO
+     *            标签信息
+     * @return 设置结果
+     */
+    @ApiOperation(value = "居民管理 设置居民标签", response = InputUserInfoVO.class)
+    @PostMapping("/user/tags")
+    public R putUserTag(@RequestBody InputUserTagsDTO inputUserTagsDTO) {
+        return userService.setInputUserTag(inputUserTagsDTO);
+    }
+
+    @ApiOperation(value = "特殊群体/分页查询特殊群体列表", response = InputUserInfoVO.class)
+    @PostMapping("/special/page")
+    public R specialInputUser(@RequestBody PageInputUserDTO pageInputUserDTO) {
+        Long communityId = this.getCommunityId();
+        pageInputUserDTO.setCommunityId(communityId);
+        return communityService.specialInputUser(pageInputUserDTO);
+    }
+
+    @ApiOperation(value = "实有单位统计接口", response = ComMngPopulationVO.class)
+    @PostMapping("/special/statistics")
+    public R getComMngRealCompanyTotalByAdmin() {
+        // 获取登陆用户绑定社区id
+        Long communityId = this.getLoginUserInfo().getCommunityId();
+        return communityService.getComMngRealCompanyTotalByAdmin(communityId);
+    }
+
+    @ApiOperation(value = "特殊群体/删除", response = InputUserInfoVO.class)
+    @DeleteMapping("/special/delete")
+    public R deleteSpecialInputUser(@RequestParam(value = "id") Long id) {
+        // 获取登陆用户绑定社区id
+        Long communityId = this.getLoginUserInfo().getCommunityId();
+        return communityService.deleteSpecialInputUser(id,communityId);
+    }
+
+    @ApiOperation(value = "特殊群体-数据导出")
+    @PostMapping("/special/export")
+    public R dataExportSpecilPopulation(@RequestBody PageInputUserDTO pageInputUserDTO) {
+        // 获取登陆用户
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        // 获取登陆用户绑定社区id
+        Long communityId = loginUserInfo.getCommunityId();
+        pageInputUserDTO.setCommunityId(communityId);
+        // 生成动态模板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<InputUserInfoVO> populList = JSON.parseArray(
+                        JSON.toJSONString(communityService.specialInputUserExport(pageInputUserDTO).getData()),
+                            InputUserInfoVO.class);
+                    List<ComMngPopulationSpecialExcelVo> populationExcelVoList = new ArrayList<>();
+                    if (populList != null && populList.size() > 0) {
+                        for (InputUserInfoVO popul : populList) {
+                            if (popul.getTags() == null) {
+                                continue;
+                            }
+                            ComMngPopulationSpecialExcelVo populationExcelVo = new ComMngPopulationSpecialExcelVo();
+                            BeanUtils.copyProperties(popul, populationExcelVo);
+                            // populationExcelVo.setIsRent(PopulIsOkEnum.getCnDescByName(popul.getIsRent()));
+                            populationExcelVoList.add(populationExcelVo);
+                        }
+                    }
+
+                    excelWriter = EasyExcel.write(fileName, ComMngPopulationSpecialExcelVo.class)
+                        .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                        .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                    WriteSheet writeSheet = EasyExcel.writerSheet("特殊群体导出数据").build();
+                    excelWriter.write(populationExcelVoList, 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 = "分页查询单位管理列表", response = ComMngRealCompanyVO.class)
+    @PostMapping("/company/page")
+    public R pageQueryComMngRealCompany(@RequestBody PageComMngRealCompanyDTO pageComMngRealCompanyDTO) {
+        pageComMngRealCompanyDTO.setCommunityId(this.getCommunityId());
+        return communityService.pageQueryComMngRealCompany(pageComMngRealCompanyDTO);
+    }
+
+    @ApiOperation(value = "实有单位统计接口", response = ComMngRealCompanyVO.class)
+    @PostMapping("/company/statistics")
+    public R getSpecialInputUserTagsTotalByAdmin() {
+        // 获取登陆用户绑定社区id
+        Long communityId = this.getLoginUserInfo().getCommunityId();
+        return communityService.getComMngRealCompanyTotalByAdmin(communityId);
+    }
+
+    @ApiOperation(value = "添加/修改实有单位")
+    @PostMapping("/company/save")
+    public R saveComMngRealCompany(@RequestBody ComMngRealCompanyVO comMngRealCompanyVO) {
+        Long communityId = this.getCommunityId();
+        comMngRealCompanyVO.setCommunityId(communityId);
+        return communityService.saveComMngRealCompany(comMngRealCompanyVO);
+    }
+
+    @ApiOperation(value = "社区后台删除实有单位")
+    @DeleteMapping("/company/delete")
+    public R deleteComMngRealCompany(@RequestParam(value = "id") Long id) {
+        return communityService.deleteComMngRealCompany(id);
+    }
+
+    @ApiOperation(value = "实有单位详情", response = ComMngRealCompanyVO.class)
+    @GetMapping("/company/detail")
+    public R detailComMngRealCompany(@RequestParam(value = "id") Long id) {
+        return communityService.detailComMngRealCompany(id);
+    }
+
+    @ApiOperation(value = "下载模板-实有单位导入模板")
+    @GetMapping(value = "/company/download/template")
+    public R downloadRealCompanyTemplate(HttpServletResponse response) throws IOException, SftpException {
+        return R.ok(companyUrl);
+    }
+
+    @ApiOperation(value = "excel导入实有单位信息")
+    @PostMapping(value = "/company/import", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R importRealCompany(@RequestParam MultipartFile file, HttpServletRequest request) {
+        String fileName = file.getOriginalFilename(); // 获取文件名
+        log.info("传入文件名字【{}】", fileName);
+        InputStream inputStream = null;
+        try {
+            inputStream = file.getInputStream();
+            EasyExcel.read(inputStream, ComMngRealCompanyExcelVO.class,
+                new ComMngRealCompanyExcelListen(communityService, this.getCommunityId())).sheet().doRead();
+        } catch (IOException e) {
+            e.printStackTrace();
+            log.error("导入模板失败【{}】", e.getMessage());
+        }
+        return R.ok();
+    }
+
+    @ApiOperation(value = "实有单位Excel")
+    @PostMapping("/company/export")
+    public R exportRealCompany(@RequestBody ExportRealCompanyExcelDTO exportRealCompanyExcelDTO) {
+        exportRealCompanyExcelDTO.setCommunityId(this.getCommunityId());
+        String url = excelUrl;
+        // String uuid = UUID.randomUUID().toString().replace("-", "");
+        String name = "实有单位导出数据.xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+        // 用户搜索了就下载搜索的用户否则下载所有用户
+        R r = communityService.exportRealCompany(exportRealCompanyExcelDTO);
+        if (R.isOk(r)) {
+            List<ComMngRealCompanyExcelVO> eexcelUserDTOS =
+                JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComMngRealCompanyExcelVO.class);
+            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, ComMngRealCompanyExcelVO.class)
+                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet("实有单位导出").build();
+                        excelWriter.write(eexcelUserDTOS, 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(url + name);
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error("文件传输失败【{}】", e.getMessage());
+                return R.fail();
+            }
+        }
+        return R.fail("未查询到用户");
+    }
+
+    @ApiOperation(value = "实有单位归属地", response = ComMngRealCompanyVO.class)
+    @PostMapping("/company/belongs")
+    public R belongsComMngRealCompany(@RequestBody ComMngRealCompanyBelongsDTO comMngRealCompanyBelongsDTO) {
+        String communityName = this.getCommunityName();
+        comMngRealCompanyBelongsDTO.setActName(communityName);
+        return communityService.belongsComMngRealCompany(comMngRealCompanyBelongsDTO);
+    }
+
+    /////////////
+
+    @ApiOperation(value = "分页查询实有资产列表", response = ComMngRealAssetsVO.class)
+    @PostMapping("/assets/page")
+    public R pageQueryComMngRealAssets(@RequestBody PageComMngRealAssetsDTO pageComMngRealAssetsDTO) {
+        pageComMngRealAssetsDTO.setCommunityId(this.getCommunityId());
+        return communityService.pageQueryComMngRealAssets(pageComMngRealAssetsDTO);
+    }
+
+    @ApiOperation(value = "添加/修改实有资产")
+    @PostMapping("/assets/save")
+    public R saveComMngRealAssets(@RequestBody ComMngRealAssetsVO comMngRealAssetsVO) {
+        Long communityId = this.getCommunityId();
+        comMngRealAssetsVO.setCommunityId(communityId);
+        return communityService.saveComMngRealAssets(comMngRealAssetsVO);
+    }
+
+    @ApiOperation(value = "社区后台删除实有资产")
+    @DeleteMapping("/assets/delete")
+    public R deleteComMngRealAssets(@RequestParam(value = "id") Long id) {
+        return communityService.deleteComMngRealAssets(id);
+    }
+
+    @ApiOperation(value = "实有资产详情", response = ComMngRealAssetsVO.class)
+    @GetMapping("/assets/detail")
+    public R detailComMngRealAssets(@RequestParam(value = "id") Long id) {
+        return communityService.detailComMngRealAssets(id);
+    }
+
+    @ApiOperation(value = "下载模板-社区资产导入模板")
+    @GetMapping(value = "/assets/download/template")
+    public R downloadRealAssetsTemplate(HttpServletResponse response) throws IOException, SftpException {
+        // 获取登陆用户绑定社区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<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.add(head0);
+                    list.add(head1);
+                    list.add(head2);
+                    list.add(head3);
+                    list.add(head4);
+                    list.add(head5);
+                    list.add(head6);
+                    List<List<Object>> dataList = new ArrayList<>();
+                    List<Object> data = new ArrayList<>();
+                    data.add("张三");
+                    data.add("位置");
+                    data.add("公共设施");
+                    data.add("500");
+                    data.add("100");
+                    data.add("社区");
+                    data.add("高层");
+                    dataList.add(data);
+
+                    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 + "社区资产导入模板.xlsx");
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    @ApiOperation(value = "excel导入实有资产信息")
+    @PostMapping(value = "/assets/import", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R importRealAssets(@RequestParam MultipartFile file, HttpServletRequest request) {
+        String fileName = file.getOriginalFilename(); // 获取文件名
+        log.info("传入文件名字【{}】", fileName);
+        InputStream inputStream = null;
+        try {
+            inputStream = file.getInputStream();
+            EasyExcel.read(inputStream, ComMngRealAssetsExcelVO.class,
+                new ComMngRealAssetsExcelListen(communityService, this.getCommunityId())).sheet().doRead();
+        } catch (IOException e) {
+            e.printStackTrace();
+            log.error("导入模板失败【{}】", e.getMessage());
+        }
+        return R.ok();
+    }
+
+    @ApiOperation(value = "社区资产导出数据")
+    @PostMapping("/assets/export")
+    public R exportRealAssets(@RequestBody ExportRealAssetsExcelDTO exportRealAssetsExcelDTO) {
+        exportRealAssetsExcelDTO.setCommunityId(this.getCommunityId());
+        String url = excelUrl;
+        // String uuid = UUID.randomUUID().toString().replace("-", "");
+        // String name = uuid + ".xlsx";
+        String name = "社区资产导出数据.xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+        // 用户搜索了就下载搜索的用户否则下载所有用户
+        R r = communityService.exportRealAssets(exportRealAssetsExcelDTO);
+        if (R.isOk(r)) {
+            List<ComMngRealAssetsExcelVO> eexcelUserDTOS =
+                JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComMngRealAssetsExcelVO.class);
+            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, ComMngRealAssetsExcelVO.class)
+                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet("社区资产导出").build();
+                        excelWriter.write(eexcelUserDTOS, 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(url + name);
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error("文件传输失败【{}】", e.getMessage());
+                return R.fail();
+            }
+        }
+        return R.fail("未查询到用户");
+    }
+
+    /**
+     * 查询所有省份
+     *
+     * @return
+     */
+    @ApiOperation(value = "查询所有省份", response = ComMngProvinceVO.class)
+    @GetMapping("/province")
+    public R getProvince() {
+        return communityService.getProvince();
+    }
+
+    /**
+     * 查询省份下所有的城市
+     *
+     * @param provinceAdcode
+     * @return
+     */
+    @ApiOperation(value = "查询省份下所有的城市", response = ComMngCityVO.class)
+    @GetMapping("/city")
+    public R getCityByProvinceCode(
+        @ApiParam(name = "省份编码", required = true) @RequestParam(value = "provinceAdcode") Integer provinceAdcode) {
+        return communityService.getCityByProvinceCode(provinceAdcode);
+    }
+
+    /**
+     * 查询城市下所有的区县
+     *
+     * @param cityAdcode
+     * @return
+     */
+    @ApiOperation(value = "查询城市下所有的区县", response = ComMngDistrictVO.class)
+    @GetMapping("/district")
+    R getDistrictByCityCode(
+        @ApiParam(name = "城市编码", required = true) @RequestParam(value = "cityAdcode") Integer cityAdcode) {
+        return communityService.getDistrictByCityCode(cityAdcode);
+    }
+
+    @ApiOperation(value = "获取树结构区域信息")
+    @GetMapping(value = "arealist")
+    public R getAllArea(@ApiParam(name = "省份:四川510000",
+            required = true) @RequestParam(value = "provinceAdcode") Integer provinceAdcode) {
+        return communityService.getCityTreeByProvinceCode(provinceAdcode, null);
+    }
+
+    @ApiOperation(value = "社区详情", response = ComActVO.class)
+    @ApiImplicitParam(name = "id", value = "社区id", required = true)
+    @GetMapping("community")
+    public R detailCommunity(@RequestParam("id") Long id) {
+        return communityService.detailCommunity(id);
+    }
+
+    @ApiOperation(value = "街道详情", response = ComStreetVO.class)
+    @ApiImplicitParam(name = "id", value = "街道id", required = true)
+    @GetMapping("street")
+    public R detailStreet(@RequestParam("id") Long id) {
+        return communityService.detailStreet(id);
+    }
+
+    @ApiOperation(value = "查询街道", response = ComStreetVO.class)
+    @PostMapping("liststreet")
+    public R listStreet(@RequestBody ComStreetVO comStreetVO) {
+        return communityService.listStreet(comStreetVO);
+    }
+
+    @ApiOperation("编辑社区")
+    @PutMapping("community")
+    public R putCommunity(@RequestBody ComActVO comActVO) {
+        Long communityId = comActVO.getCommunityId();
+        if (null == communityId || 0 == communityId) {
+            return R.fail("社区主键不能为空");
+        }
+        return communityService.putCommunity(comActVO);
+    }
+
+
+    @ApiOperation(value = "获取树结构区域信息  三资公开用")
+    @GetMapping(value = "getCityTreeByCode")
+    public R getCityTreeByCode(@ApiParam(name = "省份:四川510000",
+            required = true) @RequestParam(value = "provinceAdcode") Integer provinceAdcode) {
+        return communityService.getCityTreeByCode(provinceAdcode, this.getAreaCode(),getAppId());
+    }
+
+
+
+
+    /*****************************************************************************************************************
+     *
+     *                                         社区宣传
+     *
+     ******************************************************************************************************************/
+    @ApiOperation(value = "获取社区宣传", response = CommunityPublicityVO.class)
+    @GetMapping("/getCommunityPublicityData")
+    public R getCommunityPublicityData(@RequestParam("communityId") String communityId)
+    {
+        return communityService.getCommunityPublicityData(communityId);
+    }
+
+
+    @ApiOperation(value = "添加社区宣传")
+    @PostMapping("/addCommunityPublicityDate")
+    public R addCommunityPublicityDate(@RequestBody CommunityPublicityVO item)
+    {
+        return communityService.addCommunityPublicityDate(item);
+    }
+
+    @ApiOperation(value = "编辑社区宣传")
+    @PostMapping("/editCommunityPublicityDate")
+    public R editCommunityPublicityDate(@RequestBody CommunityPublicityVO item)
+    {
+        return communityService.editCommunityPublicityDate(item);
+    }
+
+    @ApiOperation(value = "删除社区宣传")
+    @DeleteMapping("/deleteCommunityPublicityData")
+    public R deleteCommunityPublicityData(@RequestParam("communityId") String communityId)
+    {
+        return communityService.deleteCommunityPublicityData(communityId);
+    }
+
+
+}
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
new file mode 100644
index 0000000..a31bf02
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityActivityApi.java
@@ -0,0 +1,1410 @@
+package com.panzhihua.community_backstage.api;
+
+import static java.util.Objects.isNull;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
+import java.math.BigDecimal;
+import java.nio.charset.StandardCharsets;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import com.panzhihua.common.model.dtos.ExcelDO;
+import com.panzhihua.common.model.dtos.PartyExcelDO;
+import com.panzhihua.common.model.dtos.partybuilding.NewFightIntegral;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.community.*;
+import com.panzhihua.common.model.vos.community.ComActActivityTypeVO;
+import com.panzhihua.common.model.vos.neighbor.ActivityAnalysisVO;
+import com.panzhihua.common.model.vos.user.SysTemplateConfigVO;
+import com.panzhihua.common.service.partybuilding.NewStriveForFeign;
+import com.panzhihua.common.utlis.*;
+import io.swagger.annotations.*;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.util.ObjectUtils;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+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.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.GrantRewardDTO;
+import com.panzhihua.common.model.dtos.community.easyPhoto.ExportEasyPhotoDTO;
+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.easyPhoto.ComActEasyPhotoClassifyVO;
+import com.panzhihua.common.model.vos.community.easyPhoto.ComActEasyPhotoStatisticsVO;
+import com.panzhihua.common.model.vos.community.easyPhoto.ExportEasyPhotoVO;
+import com.panzhihua.common.model.vos.partybuilding.ActivityManagerVO;
+import com.panzhihua.common.model.vos.user.SysUserNoticeVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.validated.AddGroup;
+import com.panzhihua.community_backstage.excel.CustomSheetWriteHandler;
+
+import freemarker.template.Configuration;
+import freemarker.template.Template;
+import freemarker.template.Version;
+import lombok.extern.slf4j.Slf4j;
+import sun.misc.BASE64Encoder;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 社区活动
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 14:38
+ **/
+@Slf4j
+@Api(tags = {"社区动态/随手拍/微心愿/社区活动"})
+@RestController
+@RequestMapping("/communityactivity/")
+public class CommunityActivityApi extends BaseController {
+    @Resource
+    private UserService userService;
+    @Resource
+    private CommunityService communityService;
+    @Value("${excel.userurl}")
+    private String excelUrl;
+
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+
+    @ApiOperation(value = "活动负责人下拉选择", response = ActivityManagerVO.class)
+    @GetMapping("listactivitymanager")
+    @ApiImplicitParam(name = "param", value = "搜索参数【不传返回所有后台人员】", required = false)
+    public R listActivityManager(String param) {
+        Long communityId = this.getCommunityId();
+        if (ObjectUtils.isEmpty(param)) {
+            param = "";
+        }
+        return userService.listActivityManager(param, communityId);
+
+    }
+
+    @ApiOperation(value = "新增社区活动")
+    @PostMapping("activity")
+    public R addActivity(@RequestBody @Validated(AddGroup.class) ComActActivityVO comActActivityVO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long communityId = null;
+        if (isNull(loginUserInfo.getStreetId())) {
+            communityId = this.getCommunityId();
+        }
+        comActActivityVO.setCommunityId(communityId);
+        comActActivityVO.setUserId(loginUserInfo.getUserId());
+        return communityService.addActivity(comActActivityVO);
+    }
+
+    @ApiOperation(value = "编辑社区活动")
+    @PutMapping("activity")
+    public R putActivity(@RequestBody ComActActivityVO ComActActivityVO) {
+        Long id = ComActActivityVO.getId();
+        if (ObjectUtils.isEmpty(id)) {
+            return R.fail("活动id主键不能为空");
+        }
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long communityId = null;
+        if (isNull(loginUserInfo.getStreetId())) {
+            communityId = this.getCommunityId();
+        }
+        ComActActivityVO.setCommunityId(communityId);
+        return communityService.putActivity(ComActActivityVO);
+    }
+
+    @ApiOperation(value = "删除社区活动")
+    @DeleteMapping("activity")
+    public R deleteActivity(@RequestBody ComActActivityVO ComActActivityVO) {
+        Long id = ComActActivityVO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("活动id主键不能为空");
+        }
+        return communityService.deleteActivity(ComActActivityVO);
+    }
+
+    @ApiOperation(value = "分页查询社区活动")
+    @PostMapping("pageactivity")
+    public R pageActivity(@RequestBody ComActActivityVO comActActivityVO) {
+        Long projectId = comActActivityVO.getProjectId();
+        if (isNull(projectId)) {
+            Long communityId = this.getCommunityId();
+            comActActivityVO.setCommunityId(communityId);
+        }
+        // return communityService.pageActivity(ComActActivityVO);
+        return communityService.pageActivityCommunityBack(comActActivityVO);
+    }
+
+    @ApiOperation(value = "发布活动")
+    @PostMapping("releaseactivity")
+    public R releaseActivity(@RequestBody ComActActivityVO ComActActivityVO) {
+        Long id = ComActActivityVO.getId();
+        if (ObjectUtils.isEmpty(id)) {
+            return R.fail("活动id主键不能为空");
+        }
+        ComActActivityVO.setPublishAt(new Date());
+        ComActActivityVO.setStatus(2);
+        return communityService.releaseActivity(ComActActivityVO);
+    }
+
+    @ApiOperation(value = "取消活动")
+    @PutMapping("cancelactivity")
+    public R cancelActivity(@RequestBody @Validated ComActActivityVO ComActActivityVO) {
+        Long id = ComActActivityVO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("活动id主键不能为空");
+        }
+        ComActActivityVO.setStatus(6);
+        R r = communityService.cancelActivity(ComActActivityVO);
+        if (R.isOk(r)) {
+            ActivitySignVO activitySignVO = new ActivitySignVO();
+            activitySignVO.setActivityId(id);
+            R r3 = this.detailActivity(id,null,null);
+            if (R.isOk(r3)) {
+                Object data = r3.getData();
+                ComActActivityVO comActActivityVO =
+                    JSONObject.parseObject(JSONObject.toJSONString(data), ComActActivityVO.class);
+                R r1 = communityService.listActivitySigns(activitySignVO);
+                if (R.isOk(r1)) {
+                    List<ActivitySignVO> activitySignVOS =
+                        JSONArray.parseArray(JSONArray.toJSONString(r1.getData()), ActivitySignVO.class);
+                    if (!ObjectUtils.isEmpty(activitySignVOS)) {
+                        try {
+                            WxXCXTempSend util = new WxXCXTempSend();
+                            String accessToken = util.getAccessToken();
+                            // 遍历参与活动人员列表
+                            activitySignVOS.forEach(activitySignVO1 -> {
+                                Long aLong = activitySignVO1.getId();
+                                SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO();
+                                sysUserNoticeVO.setUserId(aLong);
+                                sysUserNoticeVO.setType(1);
+                                sysUserNoticeVO.setTitle("活动因故取消");
+                                sysUserNoticeVO.setBusinessType(1);
+                                sysUserNoticeVO.setBusinessTitle(comActActivityVO.getActivityName());
+                                sysUserNoticeVO
+                                    .setBusinessContent(String.format("取消原因%s", comActActivityVO.getCancelReason()));
+                                sysUserNoticeVO.setBusinessId(id);
+                                sysUserNoticeVO.setStatus(0);
+                                sysUserNoticeVO.setBusinessStatus(1);
+                                sysUserNoticeVO.setActivityType(comActActivityVO.getType());
+                                R r2 = userService.addNotice(sysUserNoticeVO);
+                                if (R.isOk(r2)) {
+                                    log.info("新增取消社区活动通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+                                }
+                                R<SysTemplateConfigVO> r4=userService.selectTemplate(this.getAreaCode(),3);
+                                // 取消社区活动推送订阅消息给用户
+                                WxUtil.sendSubscribeHDQX(activitySignVO1.getOpenid(), accessToken,
+                                    comActActivityVO.getActivityName(),
+                                    DateUtils.format(comActActivityVO.getBeginAt(), DateUtils.ymdhms_format),r4.getData().getTemplateId());
+                            });
+                        } catch (Exception e) {
+                            log.error("新增取消社区活动通知失败,错误原因:" + e.getMessage());
+                        }
+                    }
+                }
+            }
+        }
+        return r;
+    }
+
+    @ApiOperation(value = "活动详情", response = ComActActivityVO.class)
+    @GetMapping("detailactivity")
+    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,pageNum,pageSize);
+    }
+
+    @ApiOperation(value = "查询活动报名名单集合")
+    @PostMapping("listactivitysign")
+    public R listActivitySign(@RequestBody ActivitySignVO activitySignVO) {
+        if (ObjectUtils.isEmpty(activitySignVO.getActivityId())) {
+            return R.fail("活动id主键不能为空");
+        }
+        return communityService.listActivitySign(activitySignVO);
+    }
+
+    @ApiOperation(value = "excel导出-活动报名名单")
+    @PostMapping("sign/export")
+    public R activityExportSign(@RequestBody ActivitySignVO activitySignVO) {
+        String name = "活动报名名单导出数据.xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+        R r = communityService.getSignLists(activitySignVO);
+        if (R.isOk(r)) {
+            List<ComActActSignExcelVO> excelVOS =
+                    JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComActActSignExcelVO.class);
+            excelVOS.forEach(e -> e.generateCondition());
+            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, ComActActSignExcelVO.class)
+                                .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet("活动报名名单导出数据").build();
+                        excelWriter.write(excelVOS, 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();
+            }
+        }
+        return R.fail("未查询到用户");
+    }
+
+    @ApiOperation(value = "excel导出-党员活动报名名单")
+    @PostMapping("sign/export/new")
+    public R activityExportSignNew(@RequestBody ActivitySignVO activitySignVO) {
+        String name = "活动报名名单导出数据.xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+        R r = communityService.getSignLists(activitySignVO);
+        if (R.isOk(r)) {
+            List<ComActActSignExcelNewVO> excelVOS =
+                    JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComActActSignExcelNewVO.class);
+            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, ComActActSignExcelNewVO.class)
+                                .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet("活动报名名单导出数据").build();
+                        excelWriter.write(excelVOS, 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();
+            }
+        }
+        return R.fail("未查询到用户");
+    }
+
+    @ApiOperation(value = "分页查询活动评价记录", response = ComActActEvaluateVO.class)
+    @PostMapping("evaluate/page")
+    public R pageActivityEvaluates(@RequestBody ComActActEvaluateVO comActActEvaluateVO) {
+        if (ObjectUtils.isEmpty(comActActEvaluateVO.getActivityId())) {
+            return R.fail("活动id主键不能为空");
+        }
+        return communityService.pageActivityEvaluates(comActActEvaluateVO);
+    }
+
+    @ApiOperation(value = "excel导出-活动评价")
+    @PostMapping("evaluate/export")
+    public R activityExportEvaluate(@RequestBody ComActActEvaluateVO comActActEvaluateVO) {
+        String name = "活动评价导出数据.xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+        R r = communityService.getEvaluateLists(comActActEvaluateVO);
+        if (R.isOk(r)) {
+            List<ComActActEvaluateExcelVO> excelVOS =
+                    JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComActActEvaluateExcelVO.class);
+            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, ComActActEvaluateExcelVO.class)
+                                .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                                .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet("活动评价导出数据").build();
+                        excelWriter.write(excelVOS, 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();
+            }
+        }
+        return R.fail("未查询到用户");
+    }
+
+    @ApiOperation(value = "分页查询活动签到记录", response = ComActActRegistVO.class)
+    @PostMapping("regist/page")
+    public R pageActivityRegists(@RequestBody ComActActRegistVO comActActRegistVO) {
+        if (ObjectUtils.isEmpty(comActActRegistVO.getActivityId())) {
+            return R.fail("活动id主键不能为空");
+        }
+        return communityService.pageActivityRegists(comActActRegistVO);
+    }
+
+    @ApiOperation(value = "excel导出-活动签到")
+    @PostMapping("regist/export")
+    public R activityExportRegist(@RequestBody ComActActRegistVO comActActRegistVO) {
+        String name = "活动签到导出数据.xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+        R r = communityService.getRegistLists(comActActRegistVO);
+        if (R.isOk(r)) {
+            List<ComActActRegistExcelVO> excelVOS =
+                    JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComActActRegistExcelVO.class);
+            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, ComActActRegistExcelVO.class)
+                                .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                                .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet("活动签到导出数据").build();
+                        excelWriter.write(excelVOS, 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();
+            }
+        }
+        return R.fail("未查询到用户");
+    }
+
+    @ApiOperation(value = "excel导出-活动签到居民志愿者")
+    @PostMapping("regist/export/new")
+    public R activityExportRegistNew(@RequestBody ComActActRegistVO comActActRegistVO) {
+        String name = "活动签到导出数据.xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+        R r = communityService.getRegistLists(comActActRegistVO);
+        if (R.isOk(r)) {
+            List<ComActActRegistExcelNewVO> excelVOS =
+                    JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComActActRegistExcelNewVO.class);
+            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, ComActActRegistExcelNewVO.class)
+                                .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                                .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet("活动签到导出数据").build();
+                        excelWriter.write(excelVOS, 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();
+            }
+        }
+        return R.fail("未查询到用户");
+    }
+
+    @ApiOperation(value = "社区活动数据统计", response = ComActActivityStatisticsVO.class)
+    @GetMapping("statistics")
+    public R activityStatistics(@RequestParam("activityId") Long activityId){
+        return communityService.activityStatistics(activityId);
+    }
+
+    @ApiOperation(value = "excel导出活动签到统计")
+    @PostMapping("statistics/export")
+    public R activityStatisticsExport(@RequestBody ComActActRegistVO comActActRegistVO){
+        String name = "活动签到统计导出数据.xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+        //活动签到人员
+        R r = communityService.getRegistLists(comActActRegistVO);
+        //活动未签到人员
+        R r1 = communityService.getNoRegistLists(comActActRegistVO);
+        if (R.isOk(r)) {
+            List<ComActActRegistExcelVO> excelVOS =
+                    JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComActActRegistExcelVO.class);
+            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, ComActActRegistExcelVO.class)
+                                .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                                .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet("活动签到导出数据").build();
+                        excelWriter.write(excelVOS, 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();
+            }
+        }
+        return R.fail("未查询到用户");
+    }
+
+    @Deprecated
+    @ApiOperation(value = "社区活动签到二维码下载")
+    @PostMapping("qrCode/export")
+    public R activityRegistQRCodeExport(@RequestParam("activityId") Long activityId){
+        try {
+                SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+                sftp.login();
+                Map<String, Object> dataMap = new HashMap<String, Object>();
+                // 生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址
+                String ftpUrl = "/mnt/data/web/excel/";
+                String name = "社区活动签到二维码_" + activityId + ".doc";
+                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;
+                    File file0=new File("d:/comActivity/file");
+                    if(!file0.isDirectory()&&!file0.exists()){
+                        file0.mkdirs();
+                    }
+                    sftp.download("/mnt/data/web/excel/", "社区活动二维码.ftl", "d:/comActivity/file/社区活动二维码.ftl");
+                    try {
+                        String text = String.valueOf(activityId);
+                        String destPath = "d:/comActivity/file/";
+                        String downFile = QRCodeUtils.encode(text, null, destPath, false);
+                        dataMap.put("imgStr", getImageStr("d:/comActivity/file/" + downFile));
+                        Configuration configuration = new Configuration(new Version("2.3.0"));
+
+                        configuration.setDefaultEncoding("utf-8");
+                        /**
+                         * 以下是两种指定ftl文件所在目录路径的方式,注意这两种方式都是 指定ftl文件所在目录的路径,而不是ftl文件的路径
+                         */
+                        // 指定路径的第一种方式(根据某个类的相对路径指定)
+                        // configuration.setClassForTemplateLoading(this.getClass(), "");
+
+                        // 指定路径的第二种方式,我的路径是C:/a.ftl
+                        configuration.setDirectoryForTemplateLoading(new File("d:/comActivity/file/"));
+
+                        // 输出文档路径及名称
+                        // File outFile = new File("mnt/data/web/excel/安全工作记录_" + comSwSafetyWorkRecordVO.getId() +
+                        // ".doc");
+                        File file = new File(fileName);
+
+                        // 以utf-8的编码读取ftl文件
+                        Template template = configuration.getTemplate("社区活动二维码.ftl", "utf-8");
+                        Writer out = new BufferedWriter(
+                                new OutputStreamWriter(new FileOutputStream(file), StandardCharsets.UTF_8), 10240);
+                        template.process(dataMap, out);
+                        out.close();
+                        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 = "社区活动查询历史封面", response = ComActActPictureVO.class)
+    @GetMapping("picture/getList")
+    public R getPictureList() {
+        Long userId = this.getLoginUserInfo().getUserId();
+        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() {
+        return userService.listTags();
+    }
+
+    @ApiOperation(value = "新增社区动态")
+    @PostMapping("dynamic")
+    public R addDynamic(@RequestBody ComActDynVO comActDynVO) {
+        if(StringUtils.isEmpty(comActDynVO.getCommunityId()))
+        {
+            Long communityId = this.getCommunityId();
+            comActDynVO.setCommunityId(communityId+"");
+        }
+        Date publishAt = comActDynVO.getPublishAt();
+        if (null == publishAt) {
+            publishAt = new Date();
+            comActDynVO.setPublishAt(publishAt);
+        }
+        long time = publishAt.getTime();
+        long l = System.currentTimeMillis();
+        if (l >= time) {
+            comActDynVO.setStatus(1);
+        }
+        return communityService.addDynamic(comActDynVO);
+    }
+
+    @ApiOperation(value = "编辑社区动态、取消置顶、设置置顶")
+    @PutMapping("dynamic")
+    public R putDynamic(@RequestBody ComActDynVO comActDynVO) {
+        Long communityId = this.getCommunityId();
+        Long id = comActDynVO.getId();
+        if (ObjectUtils.isEmpty(id)) {
+            return R.fail("动态主键不能为空");
+        }
+        comActDynVO.setCommunityId(communityId+"");
+        return communityService.putDynamic(comActDynVO);
+    }
+
+    @ApiOperation(value = "删除社区动态")
+    @DeleteMapping("dynamic")
+    public R deleteDynamic(@RequestBody ComActDynVO comActDynVO) {
+        Long id = comActDynVO.getId();
+        if (ObjectUtils.isEmpty(id)) {
+            return R.fail("动态主键不能为空");
+        }
+        return communityService.deleteDynamic(comActDynVO);
+    }
+
+    @ApiOperation(value = "分页查询社区动态", response = ComActDynVO.class)
+    @PostMapping("pagedynamic")
+    public R pageDynamic(@RequestBody ComActDynVO comActDynVO) {
+        if(StringUtils.isEmpty(comActDynVO.getTypeS()) || "1".equals(comActDynVO.getTypeS()) )
+        {
+            if(StringUtils.isEmpty(comActDynVO.getCommunityId()))
+            {
+                LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
+                if(loginUserInfoVO.getCommunityId()!=null && loginUserInfoVO.getCommunityId()>0 )
+                {
+                    comActDynVO.setCommunityId(loginUserInfoVO.getCommunityId()+"");
+                }
+
+                if(loginUserInfoVO.getStreetId()!=null && loginUserInfoVO.getStreetId()>0 )
+                {
+                    comActDynVO.setStreetId(loginUserInfoVO.getStreetId());
+                }
+            }
+        }
+
+        Integer category = comActDynVO.getCategory();
+        if (isNull(category)) {
+            comActDynVO.setCategory(1);
+        }
+        return communityService.pageDynamicByAdmin(comActDynVO);
+    }
+
+    @ApiOperation(value = "社区动态详情", response = ComActDynVO.class)
+    @GetMapping("detaildynamic")
+    @ApiImplicitParam(name = "id", value = "社区动态主键", required = true)
+    public R detailDynamic(@RequestParam("id") Long id) {
+        return communityService.detailDynamic(id);
+    }
+
+    @ApiOperation(value = "分页查询随手拍")
+    @PostMapping("pageeasyphoto")
+    public R pageEasyPhoto(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long communityId = loginUserInfo.getCommunityId();
+        // Long userId = loginUserInfo.getUserId();
+        comActEasyPhotoVO.setCommunityId(communityId);
+        // comActEasyPhotoVO.setBackUserId(userId);
+        return communityService.pageEasyPhoto(comActEasyPhotoVO);
+    }
+
+    @ApiOperation(value = "分页查询随手拍  浪潮专用")
+    @GetMapping("pageEasyPhotoAdminLC")
+    public R pageEasyPhotoAdminLC(@RequestParam("pageNum") Long pageNum,@RequestParam("pageSize") Long pageSize) {
+        return communityService.pageEasyPhotoAdminLC(pageNum,pageSize);
+    }
+
+    @ApiOperation(value = "城管分页查询随手拍")
+    @PostMapping("pageeasyphoto/urban")
+    public R pageEasyPhotoUrban(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO) {
+        comActEasyPhotoVO.setIsReportUrban(1);
+        return communityService.pageEasyPhoto(comActEasyPhotoVO);
+    }
+
+    @ApiOperation(value = "城管随手拍统计")
+    @PostMapping("pageeasyphoto/urbanCount")
+    public R pageEasyPhotoUrbanCount(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO) {
+        return communityService.esayphotoCount(comActEasyPhotoVO);
+    }
+
+    /**
+     * 城管安排
+     *
+     * @param comActEasyPhotoVO
+     *            查询参数
+     * @return 心愿列表
+     */
+    @ApiOperation(value = "城管安排")
+    @PostMapping("updatePageeasyphoto")
+    public R updatePageeasyphoto(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO) {
+        return communityService.updatePageeasyphoto(comActEasyPhotoVO);
+    }
+
+    @ApiOperation(value = "城管随手拍导出")
+    @PostMapping("exportEasyPhoto")
+    public R exportEasyPhoto(@RequestBody ExportEasyPhotoDTO exportEasyPhotoDTO) {
+        String url = excelUrl;
+        String name = "随手拍.xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+        R r = communityService.exportEasyPhoto(exportEasyPhotoDTO);
+        if (R.isOk(r)) {
+            List<ExportEasyPhotoVO> comActEasyPhotoVOS =
+                JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ExportEasyPhotoVO.class);
+            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, ExportEasyPhotoVO.class).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet("随手拍导出").build();
+                        excelWriter.write(comActEasyPhotoVOS, 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(url + name);
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error("文件传输失败【{}】", e.getMessage());
+                return R.fail();
+            }
+        }
+        return R.fail("未查询到数据");
+    }
+
+    @ApiOperation(value = "查询所有社区列表")
+    @GetMapping("community/list")
+    public R getCommunityLists() {
+        return communityService.getCommunityLists();
+    }
+    @ApiOperation(value = "查询西区社区列表")
+    @GetMapping("community/westList")
+    public R getWestCommunityLists() {
+        return communityService.getWestCommunityLists(this.getAreaCode());
+    }
+
+    @ApiOperation(value = "随手拍详情", response = ComActEasyPhotoVO.class)
+    @GetMapping("easyphoto")
+    public R detailEasyPhoto(@RequestParam("id") Long id) {
+        Long userId = this.getUserId();
+        return communityService.detailEasyPhoto(id, userId);
+    }
+
+    @ApiOperation(value = "删除随手拍", response = ComActEasyPhotoVO.class)
+    @DeleteMapping("easyphoto/{id}")
+    public R deleteEasyPhoto(@PathVariable("id") Long id) {
+        Long userId = this.getUserId();
+        return communityService.deleteEasyPhoto(id, userId);
+    }
+
+    @ApiOperation(value = "分页查询微心愿")
+    @PostMapping("pagemicrowish")
+    public R pageMicroWish(@RequestBody ComActMicroWishVO comActMicroWishVO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long communityId = loginUserInfo.getCommunityId();
+        Long userId = loginUserInfo.getUserId();
+        comActMicroWishVO.setCommunityId(communityId);
+//        comActMicroWishVO.setBackUserId(userId);
+        comActMicroWishVO.setIsPageMyWish(null);
+        return communityService.pageMicroWishAdmin(comActMicroWishVO);
+    }
+
+    @ApiOperation(value = "心愿详情")
+    @GetMapping("detailmicrowish")
+    public R detailMicroWish(@RequestParam("id") Long id) {
+        Long userId = this.getUserId();
+        return communityService.detailMicroWish(id, userId);
+    }
+
+
+    @Resource
+    private NewStriveForFeign newStriveForFeign;
+
+    @ApiOperation(value = "审核、分配、反馈心愿")
+    @PutMapping("putmicrowish")
+    public R putlMicroWish(@RequestBody ComActMicroWishVO comActMicroWishVO) {
+        Long id = comActMicroWishVO.getId();
+        Long userId = this.getUserId();
+        if (ObjectUtils.isEmpty(id)) {
+            return R.fail("心愿主键不能为空");
+        }
+        Integer type = comActMicroWishVO.getType();
+        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)) {
+                // 1 审核通过 2驳回 3分配人员 4发起活动 5反馈
+                R r1 = communityService.detailMicroWish(id, userId);
+                Object data = r1.getData();
+                ComActMicroWishVO comActMicroWishVO1 =
+                    JSONObject.parseObject(JSONObject.toJSONString(data), ComActMicroWishVO.class);
+                // 查询用户openid
+                R userResult = userService.getUserOpenId(comActMicroWishVO1.getSponsorId());
+                if (R.isOk(r1)) {
+                    SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO();
+                    sysUserNoticeVO.setUserId(comActMicroWishVO1.getSponsorId());
+                    sysUserNoticeVO.setType(2);
+                    sysUserNoticeVO.setBusinessType(3);
+                    sysUserNoticeVO.setBusinessTitle(comActMicroWishVO1.getWishName());
+                    sysUserNoticeVO.setBusinessTime(comActMicroWishVO1.getExamineAt());
+                    sysUserNoticeVO.setBusinessId(id);
+                    sysUserNoticeVO.setStatus(0);
+                    if (type.intValue() == 2) {
+                        sysUserNoticeVO.setTitle("微心愿未通过审核");
+                        sysUserNoticeVO
+                            .setBusinessContent(String.format("驳回原因:%s", comActMicroWishVO1.getRejectReason()));
+                        sysUserNoticeVO.setBusinessStatus(1);
+                        R r2 = userService.addNotice(sysUserNoticeVO);
+                        if (R.isOk(r2)) {
+                            log.info("新增微心愿未通过审核通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+                        }
+                        if (R.isOk(userResult)) {
+                            String openid = userResult.getData().toString();
+                            WxXCXTempSend util = new WxXCXTempSend();
+                            try {
+                                String result = comActMicroWishVO1.getRejectReason();
+                                if (StringUtils.isNotEmpty(result)) {
+                                    result = result.substring(0, 4);
+                                    result += "…";
+                                }
+                                R<SysTemplateConfigVO> sysTemplateConfigVO=userService.selectTemplate(this.getAreaCode(),4);
+                                WxUtil.sendSubscribeSHZT(openid, util.getAccessToken(), "微心愿",
+                                    DateUtils.format(comActMicroWishVO1.getExamineAt(), DateUtils.ymdhms_format),
+                                    result,sysTemplateConfigVO.getData().getTemplateId());
+                            } catch (Exception e) {
+                                log.error("消息推送失败,失败原因:" + e.getMessage());
+                            }
+                        }
+                    } else if (type.intValue() == 5) {
+                        sysUserNoticeVO.setTitle("微心愿已完成");
+                        sysUserNoticeVO.setBusinessContent(comActMicroWishVO.getFeedback());
+                        sysUserNoticeVO.setBusinessStatus(2);
+                        R r2 = userService.addNotice(sysUserNoticeVO);
+                        if (R.isOk(r2)) {
+                            log.info("新增微心愿已完成通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+                        }
+                    } else if (type.intValue() == 3) {
+                        sysUserNoticeVO.setTitle("微心愿已分配负责人");
+                        sysUserNoticeVO.setBusinessContent("负责人会在近日和你联系,请保持电话畅通");
+                        sysUserNoticeVO.setBusinessStatus(2);
+                        R r2 = userService.addNotice(sysUserNoticeVO);
+                        if (R.isOk(r2)) {
+                            log.info("新增微心愿已分配负责人通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+                        }
+                    } else if (type.intValue() == 4) {
+                        sysUserNoticeVO.setTitle("微心愿发起了活动");
+                        sysUserNoticeVO.setBusinessContent("请关注活动页面及时参加,并邀请你的朋友一起支持我们的活动");
+                        sysUserNoticeVO.setBusinessStatus(2);
+                        R r2 = userService.addNotice(sysUserNoticeVO);
+                        if (R.isOk(r2)) {
+                            log.info("新增微心愿发起了活动通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+                        }
+                    }
+
+                    if (type.equals(1)) {// 审核通过给用户增加积分
+                        //以前的逻辑
+//                        communityService.addIntegralTradeAdmin(
+//                            new AddComActIntegralUserDTO(id, AddComActIntegralUserDTO.integralType.fbwxy,
+//                                this.getCommunityId(), comActMicroWishVO1.getSponsorId()));
+
+
+                        // 2023/11/20 新逻辑
+                        NewFightIntegral integral=new NewFightIntegral();
+                        integral.setRemark("微心愿上传通过审核");
+                        if(comActMicroWishVO1.getCommunityId()==null)
+                        {
+                            integral.setCommunityId(getCommunityId()+"");
+                        }
+                        else
+                        {
+                            integral.setCommunityId(comActMicroWishVO1.getCommunityId()+"");
+                        }
+                        integral.setType("18");
+                        integral.setUserId(comActMicroWishVO1.getSponsorId()+"");
+                        newStriveForFeign.upIntegral(integral);
+
+
+
+
+                        if (R.isOk(userResult)) {
+                            String openid = userResult.getData().toString();
+                            WxXCXTempSend util = new WxXCXTempSend();
+                            R<SysTemplateConfigVO> sysTemplateConfigVO=userService.selectTemplate(this.getAreaCode(),4);
+                            try {
+                                WxUtil.sendSubscribeSHZT(openid, util.getAccessToken(), "微心愿",
+                                    DateUtils.format(comActMicroWishVO1.getExamineAt(), DateUtils.ymdhms_format),
+                                    "审核通过",sysTemplateConfigVO.getData().getTemplateId());
+                            } catch (Exception e) {
+                                log.error("消息推送失败,失败原因:" + e.getMessage());
+                            }
+                        }
+
+                    }
+                }
+            }
+        }
+        return r;
+    }
+
+    @ApiOperation(value = "微心愿人员下拉搜索")
+    @GetMapping("listmanagers")
+    @ApiImplicitParam(name = "param", value = "搜索参数【不传返回所有后台人员】", required = false)
+    public R listManagers(String param) {
+        Long communityId = this.getCommunityId();
+        if (ObjectUtils.isEmpty(param)) {
+            param = "";
+        }
+        return userService.listActivityManager(param, communityId);
+    }
+
+    @ApiOperation(value = "微心愿人员下拉搜索")
+    @GetMapping("listmanagers2")
+    @ApiImplicitParam(name = "param", value = "搜索参数【不传返回所有后台人员】", required = false)
+    public R listManagers2(String param) {
+        Long communityId = this.getCommunityId();
+        if (ObjectUtils.isEmpty(param)) {
+            param = "";
+        }
+        return userService.listActivityManager2(param, communityId);
+    }
+
+    @ApiOperation(value = "审核、反馈随手拍")
+    @PutMapping("puteasyphoto")
+    public R putEasypHotoStatus(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO) {
+        Long userId = this.getUserId();
+        Integer type = comActEasyPhotoVO.getType();
+        if (null == type || type > 4 || type < 1) {
+            return R.fail("操作类型错误");
+        }
+        Long id = comActEasyPhotoVO.getId();
+        if (ObjectUtils.isEmpty(id)) {
+            return R.fail("随手拍主键不能为空");
+        }
+        comActEasyPhotoVO.setUserId(userId);
+        if(comActEasyPhotoVO.getHandlerId() == null){
+            comActEasyPhotoVO.setHandlerId(userId);
+        }
+        R<SysTemplateConfigVO> sysTemplateConfigVO=userService.selectTemplate(this.getAreaCode(),4);
+        R r = communityService.putEasypHotoStatus(comActEasyPhotoVO);
+//        R r = R.ok();
+        if (R.isOk(r)) {
+            R r1 = communityService.detailEasyPhoto(id, userId);
+            if (R.isOk(r1)) {
+                ComActEasyPhotoVO comActEasyPhotoVO1 =
+                    JSONObject.parseObject(JSONObject.toJSONString(r1.getData()), ComActEasyPhotoVO.class);
+                SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO();
+                sysUserNoticeVO.setUserId(comActEasyPhotoVO1.getSponsorId());
+                sysUserNoticeVO.setType(2);
+                sysUserNoticeVO.setBusinessType(4);
+                sysUserNoticeVO.setBusinessTime(comActEasyPhotoVO1.getExamineAt());
+                sysUserNoticeVO.setBusinessId(id);
+                sysUserNoticeVO.setStatus(0);
+                // 查询用户openid
+                R userResult = userService.getUserOpenId(comActEasyPhotoVO1.getSponsorId());
+                if (type.intValue() == 2) {
+                    sysUserNoticeVO.setBusinessTitle(comActEasyPhotoVO1.getDetail());
+                    sysUserNoticeVO.setTitle("随手拍未通过审核");
+                    sysUserNoticeVO.setBusinessContent(String.format("驳回原因:%s", comActEasyPhotoVO.getRejectReason()));
+                    sysUserNoticeVO.setBusinessStatus(1);
+                    R r2 = userService.addNotice(sysUserNoticeVO);
+                    if (R.isOk(r2)) {
+                        log.info("新增随手拍未通过审核通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+                    }
+
+                    if (R.isOk(userResult)) {
+                        String openid = userResult.getData().toString();
+                        WxXCXTempSend util = new WxXCXTempSend();
+                        try {
+                            String result = comActEasyPhotoVO1.getRejectReason();
+                            if (StringUtils.isNotEmpty(result)) {
+                                result = result.substring(0, 4);
+                                result += "…";
+                            }
+                            WxUtil.sendSubscribeSHZT(openid, util.getAccessToken(), "随手拍",
+                                DateUtils.format(comActEasyPhotoVO1.getExamineAt(), DateUtils.ymdhms_format), result,sysTemplateConfigVO.getData().getTemplateId());
+                        } catch (Exception e) {
+                            log.error("消息推送失败,失败原因:" + e.getMessage());
+                        }
+                    }
+                } else if (type.intValue() == 3) {
+                    sysUserNoticeVO.setTitle("随手拍有反馈");
+                    sysUserNoticeVO.setBusinessTitle(comActEasyPhotoVO.getHandleResult());
+                    sysUserNoticeVO.setBusinessContent("社区已经处理好了具体的事宜,将变成现在更好看的样子找到更好的自己……");
+                    sysUserNoticeVO.setBusinessStatus(2);
+                    R r2 = userService.addNotice(sysUserNoticeVO);
+                    if (R.isOk(r2)) {
+                        log.info("新增随手拍有反馈通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+                    }
+                }
+
+                if (type.equals(1)) {// 审核通过给用户增加积分
+//                    communityService.addIntegralTradeAdmin(
+//                        new AddComActIntegralUserDTO(id, AddComActIntegralUserDTO.integralType.fbssp,
+//                            this.getCommunityId(), comActEasyPhotoVO1.getSponsorId()));
+
+                    // 2023/11/20 新逻辑
+                    NewFightIntegral integral=new NewFightIntegral();
+                    integral.setRemark("随手拍上传通过审核");
+                    if(comActEasyPhotoVO1.getCommunityId()==null)
+                    {
+                        integral.setCommunityId(getCommunityId()+"");
+                    }
+                    else
+                    {
+                        integral.setCommunityId(comActEasyPhotoVO1.getCommunityId()+"");
+                    }
+                    integral.setType("18");
+                    integral.setUserId(comActEasyPhotoVO1.getSponsorId()+"");
+                    newStriveForFeign.upIntegral(integral);
+
+
+                    // 审核通过发送订阅消息给用户
+                    if (R.isOk(userResult)) {
+                        String openid = userResult.getData().toString();
+                        WxXCXTempSend util = new WxXCXTempSend();
+                        try {
+                            WxUtil.sendSubscribeSHZT(openid, util.getAccessToken(), "随手拍",
+                                DateUtils.format(comActEasyPhotoVO1.getExamineAt(), DateUtils.ymdhms_format), "审核通过",sysTemplateConfigVO.getData().getTemplateId());
+                        } catch (Exception e) {
+                            log.error("消息推送失败,失败原因:" + e.getMessage());
+                        }
+                    }
+                }
+            }
+        }
+        return r;
+    }
+
+    @ApiOperation(value = "删除心愿")
+    @PostMapping("deletemicrowish")
+    public R deleteMicrowish(@RequestParam("id") Long id) {
+        return communityService.deletemicrowish(id);
+    }
+
+    @ApiOperation(value = "随手拍统计", response = ComActEasyPhotoStatisticsVO.class)
+    @GetMapping("pageeasyphoto/statistics")
+    public R easyPhotoStatistics() {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long communityId = loginUserInfo.getCommunityId();
+        return communityService.easyPhotoStatistics(communityId);
+    }
+
+    @ApiOperation(value = "随手拍发放奖励")
+    @PostMapping("grantReward")
+    public R grantReward(@Valid @RequestBody GrantRewardDTO grantRewardDTO) {
+        grantRewardDTO.setUserId(this.getUserId());
+        grantRewardDTO.setAreaCode(this.getAreaCode());
+        if (grantRewardDTO.getAmount() == null || grantRewardDTO.getAmount().compareTo(BigDecimal.ZERO) < -1) {
+            return R.fail("您输入的发放金额有误");
+        }
+        return communityService.grantReward(grantRewardDTO);
+    }
+
+    @ApiOperation(value = "随手拍分类列表", response = ComActEasyPhotoClassifyVO.class)
+    @GetMapping("easyphoto/classify/list")
+    public R easyPhotoClassifyList() {
+        return communityService.listPhotoClassify(this.getAreaCode());
+    }
+
+    @ApiOperation(value = "随手拍切换公示状态", response = ComActEasyPhotoClassifyVO.class)
+    @PostMapping("easyphoto/switch/publicity")
+    public R easyPhotoSwitchPublicity(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO) {
+        return communityService.easyPhotoSwitchPublicity(comActEasyPhotoVO);
+    }
+
+    @ApiOperation(value = "查询社区后台工作人员列表", response = ComActEasyPhotoClassifyVO.class)
+    @GetMapping("easyphoto/user/list")
+    public R easyPhotoUserList() {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        return userService.getUserListByCommunityId(loginUserInfo.getCommunityId());
+    }
+
+    @ApiOperation(value = "查询社区后台待处理随手拍id")
+    @GetMapping("easyphoto/noHandle/list")
+    public R easyPhotoNoHandleList() {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        return communityService.easyPhotoNoHandleList(loginUserInfo.getCommunityId());
+    }
+
+    public String getImageStr(String fileName) {
+        String imgFile = fileName;
+        InputStream in = null;
+        byte[] data = null;
+        try {
+            in = new FileInputStream(imgFile);
+            data = new byte[in.available()];
+            in.read(data);
+            in.close();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        BASE64Encoder encoder = new BASE64Encoder();
+        return encoder.encode(data);
+    }
+
+    @ApiOperation(value = "查询微心愿处理人列表接口")
+    @GetMapping("wish/handle/list")
+    @ApiImplicitParam(name = "type", value = "处理人类型(1.后台用户  2.党员  3.志愿者 4.社工 5.四长四员)", required = true)
+    public R wishHandleListAdmin(@RequestParam("type") Integer type) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        return communityService.wishHandleListAdmin(loginUserInfo.getCommunityId(),type);
+    }
+
+    @ApiOperation(value = "添加活动类型")
+    @PostMapping("activity/type/add")
+    public R addActivityType(@RequestBody @Validated(AddGroup.class) ComActActivityTypeVO comActActivityTypeVO) {
+        comActActivityTypeVO.setCommunityId(getCommunityId());
+        return communityService.addActivityType(comActActivityTypeVO);
+    }
+
+    @ApiOperation(value = "获取活动类型(目前只有志愿者活动需要获取)", response = ComActActivityTypeVO.class)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "type", value = "活动类型(1.志愿者 2.居民 3.党员)", required = true),
+            @ApiImplicitParam(name = "communityId", value = "社区id", required = false)
+    })
+    @GetMapping("activity/type/list")
+    public R listActivityType(@RequestParam("type") Integer type,
+                              @RequestParam(value = "communityId", required = false) Long communityId) {
+        if (isNull(communityId)) {
+            communityId = getCommunityId();
+        }
+        return communityService.listActivityType(communityId, type);
+    }
+
+
+    /**
+     * 党员活动统计
+     * @param year
+     * @return
+     */
+    @ApiOperation(value = "党员活动统计",response = PartyActivityStatics.class)
+    @GetMapping("activity/partyMemberCount")
+    public R partyMemberCount(@RequestParam("year")String year){
+        return communityService.partyMemberCount(this.getCommunityId(),year);
+    }
+
+    /**
+     * 党员活动详情数据
+     * @return
+     */
+    @ApiOperation(value = "党员活动详情数据",response = PartyMemberDetailVO.class)
+    @PostMapping("activity/partyMemberDetail")
+    public R partyMemberDetail(@RequestBody CommonPage commonPage){
+        return communityService.partyMemberDetail(commonPage);
+    }
+
+
+    /**
+     * 导出党员活动详情数据
+     * @return
+     */
+    @ApiOperation("导出党员活动详情数据")
+    @PostMapping("activity/exportPartyMemberDetail")
+    public R exportPartyMemberDetail(@RequestBody CommonPage commonPage){
+        String name = "党员活动详情数据.xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+        R r = communityService.exportPartyMemberDetail(commonPage);;
+        if (R.isOk(r)) {
+            List<PartyMemberDetailExcelVO> excelVOS =
+                    JSONArray.parseArray(JSONArray.toJSONString(r.getData()), PartyMemberDetailExcelVO.class);
+            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, PartyMemberDetailExcelVO.class)
+                                .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet("党员活动详情数据").build();
+                        excelWriter.write(excelVOS, 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();
+            }
+        }
+        return R.fail("未查询到用户");
+    }
+    @ApiOperation(value = "批量删除活动")
+    @PostMapping("delete")
+    public R deleteActivities(@RequestBody List<Long> ids) {
+        return communityService.deleteActivities(ids);
+    }
+
+    @ApiOperation(value = "单位活动统计",response = ActivityAnalysisVO.class)
+    @GetMapping("/analysis")
+    public R activityUnitAnalysis(@RequestParam(value = "year",required = false) Integer year,
+                                  @RequestParam(value = "type",required = false) Integer type,
+                                  @RequestParam(value = "range",required = false)Integer range,
+                                  @RequestParam(value = "communityId",required = false) Long communityId,
+                                  @RequestParam(value = "belongTo",required = false) String  belongTo,
+                                  @RequestParam(value = "page",required = false) Integer page,
+                                  @RequestParam(value = "size",required = false) Integer size,
+                                  @RequestParam(value = "unitId",required = false) Long unitId,
+                                  @RequestParam(value = "searchContent", required = false) String searchContent){
+        return communityService.institutionalUnitServiceAnalysis(year,type,range,communityId,page,size,belongTo,unitId,
+                this.getLoginUserInfo().getAccount(),searchContent);
+    }
+
+    @GetMapping("/exportExcel")
+    public void exportExcel(@RequestParam(value = "year",required = false) Integer year,
+                         @RequestParam(value = "type",required = false) Integer type,
+                         @RequestParam(value = "communityId",required = false) Long communityId,
+                         @RequestParam(value = "belongTo",required = false) String  belongTo,
+                         HttpServletResponse response) throws Exception {
+        List<ExcelDO> excelDOList = communityService.export(year, belongTo, communityId);
+//        return R.ok(excelDOList);
+        com.panzhihua.common.utlis.EasyExcel.export2Web(response,"报道单位","sheet",ExcelDO.class,excelDOList);
+    }
+
+    @GetMapping("/partyExcel")
+    public void partyExcel(@RequestParam(value = "year",required = false) Integer year,
+                           @RequestParam(value = "belongTo",required = false) String belongTo,
+                           @RequestParam(value = "communityId",required = false) Long communityId,
+                           @RequestParam(value = "unitId",required = false) Long unitId,
+                           HttpServletResponse response) throws Exception {
+        List<PartyExcelDO> list = communityService.partyExcel(year, belongTo, communityId, unitId);
+        com.panzhihua.common.utlis.EasyExcel.export2Web(response,"报道党员","sheet", PartyExcelDO.class,list);
+    }
+}
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
new file mode 100644
index 0000000..f9dcc5e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityConvenientApi.java
@@ -0,0 +1,362 @@
+package com.panzhihua.community_backstage.api;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+import java.util.UUID;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.model.vos.community.*;
+import com.panzhihua.common.utlis.MimeTypeUtils;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.community_backstage.util.BaseUtils;
+import lombok.Data;
+import org.apache.commons.io.FilenameUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+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 org.springframework.web.multipart.MultipartFile;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.fastjson.JSONArray;
+import com.jcraft.jsch.SftpException;
+import com.panzhihua.common.constants.FtpConstants;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.listen.ComCvtServeExcelListen;
+import com.panzhihua.common.model.dtos.community.ComCvtBusinessDTO;
+import com.panzhihua.common.model.dtos.community.ComCvtServeDTO;
+import com.panzhihua.common.model.dtos.community.PageComCvtBusinessDTO;
+import com.panzhihua.common.model.dtos.community.PageComCvtServeDTO;
+import com.panzhihua.common.model.dtos.community.convenient.ExportMerchantDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PageConvenientMerchantDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientServiceCategoryVO;
+import com.panzhihua.common.model.vos.community.convenient.ExportMerchantVO;
+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;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+import static com.panzhihua.common.utlis.FileTypeUploadUtils.assertAllowed;
+
+/**
+ * @description: 社区便民服务商家接口
+ * @author: Null
+ * @date: 2021/3/11 13:26
+ */
+@Slf4j
+@Api(tags = {"社区运营/便民服务"})
+@RestController
+@RequestMapping("/convenient")
+public class CommunityConvenientApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @Value("${excel.convenientUrl}")
+    private String excelConvenientUrl = "http://panzhihua.nhys.cdnhxx.com/web/bianminfuwudaoru.xlsx";
+
+    @Value("${excel.userurl}")
+    private String excelUrl;
+
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+    @Value("${ftp.url}")
+    private String url;
+
+    @Resource
+    private MinioUtil minioUtil;
+
+    @Deprecated
+    @ApiOperation(value = "分页查询便民服务商家", response = ComCvtBusinessVO.class)
+    @PostMapping("/business/page")
+    public R pageComCvtBusiness(@RequestBody PageComCvtBusinessDTO pageComCvtBusinessDTO) {
+        Long communityId = this.getCommunityId();
+        pageComCvtBusinessDTO.setCommunityId(communityId);
+        return communityService.pageComCvtBusiness(pageComCvtBusinessDTO);
+    }
+
+    @Deprecated
+    @ApiOperation(value = "新增便民服务商家")
+    @PostMapping("/business/add")
+    public R addComCvtBusiness(@RequestBody @Validated(AddGroup.class) ComCvtBusinessDTO comCvtBusinessDTO) {
+        Long communityId = this.getCommunityId();
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long userId = loginUserInfo.getUserId();
+        comCvtBusinessDTO.setCommunityId(communityId);
+        comCvtBusinessDTO.setCreateBy(userId);
+        return communityService.addComCvtBusiness(comCvtBusinessDTO);
+    }
+
+    @Deprecated
+    @ApiOperation(value = "社区下拉列表", response = ComActVO.class)
+    @GetMapping("/community")
+    public R listCommunity() {
+        return communityService.listCommunityAll(this.getAreaCode());
+    }
+
+    @Deprecated
+    @ApiOperation(value = "编辑便民服务商家")
+    @PutMapping("/business/put")
+    public R putComCvtBusiness(@Validated(AddGroup.class) @RequestBody ComCvtBusinessDTO comCvtBusinessDTO) {
+        return communityService.putComCvtBusiness(comCvtBusinessDTO);
+    }
+
+    @Deprecated
+    @ApiOperation(value = "查询便民服务商家详情")
+    @GetMapping("/business/get")
+    public R getComCvtBusiness(@RequestParam("id") Long id) {
+        return communityService.getComCvtBusiness(id);
+    }
+
+    @Deprecated
+    @ApiOperation(value = "删除便民服务商家详情")
+    @DeleteMapping("/business/delete")
+    public R deleteComCvtBusiness(@RequestParam("id") Long id) {
+        return communityService.deleteComCvtBusiness(id);
+    }
+
+    @Deprecated
+    @ApiOperation(value = "分页查询便民服务", response = ComCvtServeVO.class)
+    @PostMapping("/serve/page")
+    public R pageComCvtServe(@RequestBody PageComCvtServeDTO pageComCvtServeDTO) {
+        return communityService.pageComCvtServe(pageComCvtServeDTO);
+    }
+
+    @Deprecated
+    @ApiOperation(value = "查询便民服务所有分类,下拉框", response = ComCvtCategoryVO.class)
+    @PostMapping("/category/all")
+    public R allComCvtCategory() {
+        return communityService.allComCvtCategory();
+    }
+
+    @Deprecated
+    @ApiOperation(value = "新增便民服务")
+    @PostMapping("/serve/add")
+    public R addComCvtServe(@RequestBody ComCvtServeDTO comCvtServeDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long userId = loginUserInfo.getUserId();
+        comCvtServeDTO.setCreateBy(userId);
+        return communityService.addComCvtServe(comCvtServeDTO);
+    }
+
+    @Deprecated
+    @ApiOperation(value = "编辑便民服务")
+    @PutMapping("/serve/put")
+    public R putComCvtServe(@RequestBody ComCvtServeDTO comCvtServeDTO) {
+        return communityService.putComCvtServe(comCvtServeDTO);
+    }
+
+    @Deprecated
+    @ApiOperation(value = "查询便民服务详情", response = ComCvtServeVO.class)
+    @GetMapping("/serve/get")
+    public R getComCvtServe(@RequestParam("id") Long id) {
+        return communityService.getComCvtServe(id);
+    }
+
+    @Deprecated
+    @ApiOperation(value = "删除便民服务信息")
+    @DeleteMapping("/serve/delete")
+    public R deleteComCvtServe(@RequestParam("id") Long id) {
+        return communityService.deleteComCvtServe(id);
+    }
+
+    @Deprecated
+    @ApiOperation(value = "下载模板-便民服务")
+    @GetMapping(value = "/serve/download/template")
+    public R downloadTemplate(HttpServletResponse response) throws IOException, SftpException {
+        return R.ok(excelConvenientUrl);
+    }
+
+    @ApiOperation(value = "上传文件")
+    @PostMapping(value = "/upload/file", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R uploadImage(@RequestParam MultipartFile file, HttpServletRequest request) {
+        String extension = FilenameUtils.getExtension(file.getOriginalFilename());
+        String name = UUID.randomUUID().toString().replaceAll("-", "") + "." + extension;
+        try {
+            assertAllowed(file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION);
+            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+            sftp.login();
+            InputStream is = file.getInputStream();
+            sftp.uploadMore(FtpConstants.FTPFILEPATH_IDCARD, name, is);
+            sftp.logout();
+            return R.ok(url + "/idcard/" + name);
+        } catch (Exception e) {
+            log.error("上传照片失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    @ApiOperation(value = "上传文件")
+    @PostMapping(value = "/upload/file/noToken")
+    public R uploadImageNoToken(@RequestBody Base64File file, HttpServletRequest request) {
+        if(StringUtils.isEmpty(file.getFile())){
+            return R.fail("文件不能为Null");
+        }
+        String name = UUID.randomUUID().toString().replaceAll("-", "")+".jpg";
+        try {
+            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+            log.info("创建sftp");
+            sftp.login();
+            log.info("sftp登陆成功");
+            InputStream is = BaseUtils.base64StrToInputStream(file.getFile().replace("data:image/png;base64,","").replace("data:image/jpg;base64,","").replace("data:image/jpeg;base64,",""));
+            log.info("解析图片转换成功");
+            sftp.uploadMore(FtpConstants.FTPFILEPATH_IDCARD, name, is);
+            log.info("上传成功");
+            sftp.logout();
+            log.info("上传完成");
+            return R.ok(url + "/idcard/" + name);
+        } catch (Exception e) {
+            log.error("上传照片失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+
+    @ApiOperation(value = "minio上传文件测试")
+    @PostMapping(value = "/minio/upload/file", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R minipuploadImage(@RequestParam MultipartFile file, HttpServletRequest request) {
+        try {
+            assertAllowed(file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION);
+            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());
+            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) {
+        String fileName = file.getOriginalFilename(); // 获取文件名
+        log.info("传入文件名字【{}】", fileName);
+        InputStream inputStream = null;
+        try {
+            inputStream = file.getInputStream();
+            EasyExcel.read(inputStream, ComCvtServeExcelVO.class,
+                new ComCvtServeExcelListen(communityService, this.getCommunityId())).sheet().doRead();
+        } catch (IOException e) {
+            e.printStackTrace();
+            log.error("导入模板失败【{}】", e.getMessage());
+            return R.fail(e.getMessage());
+        }
+        return R.ok();
+    }
+
+    @ApiOperation(value = "分页查询便民服务商家", response = ConvenientMerchantVO.class)
+    @PostMapping("/merchant/page")
+    public R pageMerchant(@RequestBody PageConvenientMerchantDTO pageConvenientMerchantDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        pageConvenientMerchantDTO.setCommunityId(loginUserInfo.getCommunityId());
+        return communityService.pageMerchant(pageConvenientMerchantDTO);
+    }
+
+    @ApiOperation(value = "查询便民服务商家详情", response = ConvenientMerchantVO.class)
+    @GetMapping("/merchant/get")
+    public R getMerchant(@RequestParam("merchantId") Long merchantId) {
+        return communityService.getMerchant(merchantId);
+    }
+
+    @ApiOperation(value = "所有服务分类", response = ConvenientServiceCategoryVO.class)
+    @GetMapping("/service-category/all")
+    public R getAllServiceCategories() {
+        return communityService.getAllServiceCategories(this.getAreaCode());
+    }
+
+    @ApiOperation(value = "便民服务商家导出")
+    @PostMapping("/merchant/export")
+    public R exportMerchant(@RequestBody ExportMerchantDTO exportMerchantDTO) {
+        String url = excelUrl;
+        String name = "便民服务商家.xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+        R r = communityService.exportMerchant(exportMerchantDTO);
+        if (R.isOk(r)) {
+            List<ExportMerchantVO> exportMerchantVOList =
+                    JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ExportMerchantVO.class);
+            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, ExportMerchantVO.class).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet("便民服务商家导出").build();
+                        excelWriter.write(exportMerchantVOList, 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(url + name);
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error("文件传输失败【{}】", e.getMessage());
+                return R.fail();
+            }
+        }
+        return R.fail("未查询到数据");
+    }
+
+    @PostMapping("/test/noToken")
+    public R testInterface(@RequestBody String body){
+        log.info("参数====="+body);
+        return R.ok(body);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityManagerApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityManagerApi.java
new file mode 100644
index 0000000..5c961f4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityManagerApi.java
@@ -0,0 +1,791 @@
+package com.panzhihua.community_backstage.api;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.math.BigDecimal;
+import java.net.URLEncoder;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.UUID;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.vos.user.SysTemplateConfigVO;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.util.ObjectUtils;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.enums.CellExtraTypeEnum;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.ExcelHouseDTO;
+import com.panzhihua.common.model.dtos.community.ExportUserDTO;
+import com.panzhihua.common.model.dtos.user.EexcelUserDTO;
+import com.panzhihua.common.model.vos.AppletUserInfoVO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.*;
+import com.panzhihua.common.model.vos.user.CommunityUserInfoVO;
+import com.panzhihua.common.model.vos.user.SysUserNoticeVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.SFTPUtil;
+import com.panzhihua.common.utlis.WxUtil;
+import com.panzhihua.common.utlis.WxXCXTempSend;
+import com.panzhihua.common.validated.AddGroup;
+import com.panzhihua.community_backstage.easyexcel.UploadEexcelUserDTOListener;
+import com.panzhihua.community_backstage.excel.CustomSheetWriteHandler;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 社区管理
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-15 10:40
+ **/
+@Slf4j
+@Api(tags = {"社区管理"})
+@RestController
+@RequestMapping("/communitymanager/")
+public class CommunityManagerApi extends BaseController {
+    @Resource
+    private UserService userService;
+    @Resource
+    private CommunityService communityService;
+    @Value("${excel.userurl}")
+    private String excelUrl;
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+    @Value("${ftp.url}")
+    private String url;
+
+    @ApiOperation(value = "分页查询人脸采集", response = LoginUserInfoVO.class)
+    @PutMapping("pageuserface")
+    public R pageUserFace(@RequestBody LoginUserInfoVO loginUserInfoVO) {
+        loginUserInfoVO.setCommunityId(this.getCommunityId());
+        return userService.pageUserFace(loginUserInfoVO);
+    }
+    /**
+     * 社区详情
+     *
+     *            社区id
+     * @return 社区详情
+     */
+    @ApiOperation("查询社区详情")
+    @PostMapping("detailcommunity")
+    public R detailCommunity() {
+        return communityService.detailCommunity(this.getCommunityId());
+    }
+
+    @ApiOperation(value = "编辑人脸采集数据通过、驳回、删除")
+    @PutMapping("putuserface")
+    public R putUserFace(@RequestBody LoginUserInfoVO loginUserInfoVO) {
+        Integer operationType = loginUserInfoVO.getOperationType();
+        if (null == operationType || operationType.intValue() > 3 || operationType.intValue() < 1) {
+            return R.fail("操作类型错误");
+        }
+        Long userId = loginUserInfoVO.getUserId();
+        if (null == userId || 0 == userId) {
+            return R.fail("用户主键不能为空");
+        }
+        R r = userService.putUserFace(loginUserInfoVO);
+        if (R.isOk(r)) {
+            // 1通过 2驳回 3删除
+            if (operationType.intValue() == 2) {
+                SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO();
+                sysUserNoticeVO.setUserId(userId);
+                sysUserNoticeVO.setType(3);
+                sysUserNoticeVO.setBusinessType(7);
+                sysUserNoticeVO.setBusinessTime(new Date());
+                sysUserNoticeVO.setStatus(0);
+                sysUserNoticeVO.setTitle("人脸采集未通过");
+                sysUserNoticeVO.setBusinessContent(String.format("驳回原因:%s", loginUserInfoVO.getRejectReson()));
+                sysUserNoticeVO.setBusinessStatus(1);
+                R r2 = userService.addNotice(sysUserNoticeVO);
+                if (R.isOk(r2)) {
+                    log.info("新增人脸采集未通过通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+                }
+            }
+        }
+        return r;
+    }
+
+    @ApiOperation(value = "分页查询人口管理", response = AppletUserInfoVO.class)
+    @PostMapping("pageuser")
+    public R pageUser(@RequestBody AppletUserInfoVO userInfoVO) {
+        userInfoVO.setCommunityId(this.getCommunityId());
+        return userService.pageUser(userInfoVO);
+    }
+
+    @ApiOperation(value = "查询所有人员标签")
+    @GetMapping("listtag")
+    public R listTag() {
+        return userService.listTag();
+    }
+
+    // @ApiOperation(value = "人员详情",response = LoginUserInfoVO.class)
+    // @GetMapping("detailuser")
+    // @ApiImplicitParam(name ="userId",value = "人员id",required = true)
+    // public R detailUser(@RequestParam("userId")Long userId){
+    // R r = userService.detailUser(userId);
+    // boolean ok = R.isOk(r);
+    // if (ok) {
+    // Object data = r.getData();
+    // if (!ObjectUtils.isEmpty(data)) {
+    // LoginUserInfoVO loginUserInfoVO= JSONObject.parseObject(JSONObject.toJSONString(data),LoginUserInfoVO.class);
+    // R r1=communityService.detailHouse(userId);
+    // if (R.isOk(r1)) {
+    // Object data1 = r1.getData();
+    // if (!ObjectUtils.isEmpty(data1)) {
+    // loginUserInfoVO.setComMngStructHouseVOS((List<ComMngStructHouseVO>)data1);
+    // r.setData(loginUserInfoVO);
+    // }
+    // }
+    // }
+    // }
+    // return r;
+    // }
+
+    @ApiOperation(value = "设置标签")
+    @PutMapping("usertag")
+    public R putUserTag(@RequestBody LoginUserInfoVO loginUserInfoVO) {
+        Long userId = loginUserInfoVO.getUserId();
+        if (null == userId || 0 == userId) {
+            return R.fail("用户主键不能为空");
+        }
+        return userService.putUserTag(loginUserInfoVO);
+    }
+
+    @ApiOperation(value = "新增小区")
+    @PostMapping("area")
+    public R addArea(@RequestBody @Validated(AddGroup.class) ComMngStructAreaVO comMngStructAreaVO) {
+        Long communityId = this.getCommunityId();
+        comMngStructAreaVO.setCommunityId(communityId);
+        return communityService.addArea(comMngStructAreaVO);
+    }
+
+    @ApiOperation(value = "分页查询小区", response = ComMngStructAreaVO.class)
+    @PostMapping("pagearea")
+    public R pageArea(@RequestBody ComMngStructAreaVO comMngStructAreaVO) {
+        Long communityId = this.getCommunityId();
+        comMngStructAreaVO.setCommunityId(communityId);
+        return communityService.pageArea(comMngStructAreaVO);
+    }
+
+    @ApiOperation(value = "小区基础信息", response = ComMngStructAreaVO.class)
+    @GetMapping("area")
+    @ApiImplicitParam(name = "id", value = "主键")
+    public R detailArea(@RequestParam("id") Long id) {
+        return communityService.detailArea(id);
+    }
+
+    @ApiOperation(value = "编辑小区")
+    @PutMapping("area")
+    public R putArea(@RequestBody ComMngStructAreaVO comMngStructAreaVO) {
+        String areaCode = comMngStructAreaVO.getAreaCode();
+        if (ObjectUtils.isEmpty(areaCode)) {
+            return R.fail("地址编码不能为空");
+        }
+        return communityService.putArea(comMngStructAreaVO);
+    }
+
+    @ApiOperation(value = "删除小区")
+    @DeleteMapping("area")
+    public R deleteArea(@RequestBody ComMngStructAreaVO comMngStructAreaVO) {
+        String areaCode = comMngStructAreaVO.getAreaCode();
+        if (ObjectUtils.isEmpty(areaCode)) {
+            return R.fail("地址编码不能为空");
+        }
+        return communityService.deleteArea(comMngStructAreaVO);
+    }
+
+    @ApiOperation(value = "批量建房")
+    @PostMapping("batchhouse")
+    public R batchHouse(@RequestBody BatchhouseVO batchhouseVO) {
+        String areaCode = batchhouseVO.getAreaCode();
+        if (ObjectUtils.isEmpty(areaCode)) {
+            return R.fail("小区地址编码不能为空");
+        }
+        return communityService.batchHouse(batchhouseVO);
+    }
+
+    @ApiOperation(value = "展示下级建筑")
+    @GetMapping("listsubordinatebuilding")
+    public R listSubordinatebuilding(@RequestParam("houseCode") String houseCode) {
+        return communityService.listSubordinatebuilding(houseCode);
+    }
+
+    @ApiOperation(value = "添加同级地址")
+    @PostMapping("house")
+    public R addHouse(@RequestBody BatchhouseVO batchhouseVO) {
+        String parentCode = batchhouseVO.getParentCode();
+        Integer type = batchhouseVO.getType();
+        if (ObjectUtils.isEmpty(parentCode)) {
+            return R.fail("父级地址编码不能为空");
+        }
+        if (null == type || type > 5 || type < 2) {
+            return R.fail("同级类型错误");
+        }
+        return communityService.addHouse(batchhouseVO);
+    }
+
+    @ApiOperation(value = "编辑地址")
+    @PutMapping("house")
+    public R putHouse(@RequestBody ComMngStructHouseVO comMngStructHouseVO) {
+        String houseCode = comMngStructHouseVO.getHouseCode();
+        if (ObjectUtils.isEmpty(houseCode)) {
+            return R.fail("址编码不能为空");
+        }
+        return communityService.putHouse(comMngStructHouseVO);
+    }
+
+    @ApiOperation(value = "删除地址-删除所有下级")
+    @DeleteMapping("house")
+    public R deleteHouse(@RequestBody ComMngStructHouseVO comMngStructHouseVO) {
+        String houseCode = comMngStructHouseVO.getHouseCode();
+        if (ObjectUtils.isEmpty(houseCode)) {
+            return R.fail("址编码不能为空");
+        }
+        return communityService.deleteHouse(comMngStructHouseVO);
+    }
+
+    @ApiOperation(value = "新增其他建筑")
+    @PostMapping("otherbuild")
+    public R addOtherbuild(@RequestBody ComMngStructOtherBuildVO comMngStructOtherBuildVO) {
+        comMngStructOtherBuildVO.setCommunityId(this.getCommunityId());
+        return communityService.addOtherbuild(comMngStructOtherBuildVO);
+    }
+
+    @ApiOperation(value = "其他建筑详情", response = ComMngStructOtherBuildVO.class)
+    @GetMapping("otherbuild")
+    public R addOtherbuild(@RequestParam("id") Long id) {
+        return communityService.detailOtherbuild(id);
+    }
+
+    @ApiOperation(value = "删除其他建筑")
+    @DeleteMapping("otherbuild")
+    public R deleteOtherbuild(@RequestParam("id") Long id) {
+        return communityService.deleteOtherbuild(id);
+    }
+
+    @ApiOperation(value = "编辑其他建筑")
+    @PutMapping("otherbuild")
+    public R putOtherbuild(@RequestBody ComMngStructOtherBuildVO comMngStructOtherBuildVO) {
+        Long id = comMngStructOtherBuildVO.getId();
+        if (null == id || id == 0) {
+            return R.fail("主键不能为空");
+        }
+        comMngStructOtherBuildVO.setCommunityId(this.getCommunityId());
+        Double square = comMngStructOtherBuildVO.getSquare();
+        if (0 == square) {
+            comMngStructOtherBuildVO.setSquare(null);
+        }
+        Integer state = comMngStructOtherBuildVO.getState();
+        if (null != state && 0 == state) {
+            comMngStructOtherBuildVO.setState(null);
+        }
+        return communityService.putOtherbuild(comMngStructOtherBuildVO);
+    }
+
+    @ApiOperation(value = "查询所有建筑类型", response = ComMngStructBuildTypeVO.class)
+    @GetMapping("listbuildtype")
+    public R listBuildType() {
+        return communityService.listBuildType(this.getCommunityId());
+    }
+
+    @ApiOperation(value = "分页查询其他建筑", response = ComMngStructOtherBuildVO.class)
+    @PostMapping("pageotherbuild")
+    public R pageOtherBuild(@RequestBody ComMngStructOtherBuildVO comMngStructOtherBuildVO) {
+        comMngStructOtherBuildVO.setCommunityId(this.getCommunityId());
+        return communityService.pageOtherBuild(comMngStructOtherBuildVO);
+    }
+
+    @ApiOperation(value = "增加志愿者")
+    @PostMapping("volunteer")
+    public R addVolunteer(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO) {
+        comMngVolunteerMngVO.setState(2);
+        comMngVolunteerMngVO.setCommunityId(this.getCommunityId());
+        R r = communityService.addVolunteer(comMngVolunteerMngVO);
+        // 支援者添加成功,修改小程序用户的志愿者状态,通过手机号
+        if (R.isOk(r)) {
+            String phone = comMngVolunteerMngVO.getPhone();
+            R r1 = userService.putUserIsVolunteer(phone, 1);
+            if (R.isOk(r1)) {
+                log.info("修改手机号【{}】的支援者状态为是", phone);
+            } else {
+                log.info("手机号【{}】没有小程序用户", phone);
+            }
+        }
+        return r;
+    }
+
+    @ApiOperation(value = "删除志愿者")
+    @DeleteMapping("volunteer")
+    public R deleteVolunteer(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO) {
+        Object data = communityService.getVolunteerById(comMngVolunteerMngVO.getId()).getData();
+        if (data == null) {
+            return R.fail("Id有误!");
+        }
+        ComMngVolunteerMngAppletsVO oneVolunteerVO =
+            JSON.parseObject(JSON.toJSONString(data), ComMngVolunteerMngAppletsVO.class);
+        String phone1 = oneVolunteerVO.getPhone();
+        if (ObjectUtils.isEmpty(phone1)) {
+            return R.fail("志愿者手机号不能为空");
+        }
+        R r = communityService.deleteVolunteer(comMngVolunteerMngVO);
+        // 支援者添加成功,修改小程序用户的志愿者状态,通过手机号
+        if (R.isOk(r)) {
+            String phone = comMngVolunteerMngVO.getPhone();
+            R r1 = userService.putUserIsVolunteer(phone, 0);
+            if (R.isOk(r1)) {
+                log.info("修改手机号【{}】的支援者状态为否", phone);
+            } else {
+                log.info("手机号【{}】没有小程序用户", phone);
+            }
+        }
+        return r;
+    }
+
+    @ApiOperation(value = "编辑志愿者")
+    @PutMapping("volunteer")
+    public R putVolunteer(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO) {
+        Long id = comMngVolunteerMngVO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("志愿者主键不能为空");
+        }
+        return communityService.putVolunteer(comMngVolunteerMngVO);
+    }
+
+    @ApiOperation(value = "分页展示志愿者")
+    @PutMapping("pagevolunteer")
+    public R pageVolunteer(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO) {
+        if(this.getLoginUserInfo().getStreetId()!=null){
+            comMngVolunteerMngVO.setStreetId(this.getLoginUserInfo().getStreetId());
+        }
+        else {
+            comMngVolunteerMngVO.setCommunityId(this.getCommunityId());
+        }
+
+        return communityService.pageVolunteer(comMngVolunteerMngVO);
+    }
+
+    @ApiOperation(value = "分页展示志愿者")
+    @PostMapping("pageVolunteers")
+    public R pageVolunteers(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO) {
+        if(this.getLoginUserInfo().getStreetId()!=null){
+            comMngVolunteerMngVO.setStreetId(this.getLoginUserInfo().getStreetId());
+        }
+        else {
+            comMngVolunteerMngVO.setCommunityId(this.getCommunityId());
+        }
+
+        return communityService.pageVolunteer(comMngVolunteerMngVO);
+    }
+
+
+
+
+    @ApiOperation(value = "分页展示志愿者审核")
+    @PutMapping("pagevolunteerexamine")
+    public R pageVolunteerExamine(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO) {
+        comMngVolunteerMngVO.setCommunityId(this.getCommunityId());
+        return communityService.pageVolunteerExamine(comMngVolunteerMngVO);
+    }
+
+    @ApiOperation(value = "志愿者审核详情")
+    @GetMapping("volunteerexamine")
+    public R detailVolunteerExamine(@RequestParam("id") Long id) {
+        return communityService.detailVolunteerExamine(id);
+    }
+
+    @ApiOperation(value = "志愿者审核")
+    @PutMapping("volunteerexamine")
+    public R putVolunteerExamine(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO) {
+        Long id = comMngVolunteerMngVO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("审核主键不能为空");
+        }
+        R r = communityService.putVolunteerExamine(comMngVolunteerMngVO);
+        if (R.isOk(r)) {
+            R r1 = communityService.detailVolunteerExamine(id);
+            Object data = r1.getData();
+            ComMngVolunteerMngVO comMngVolunteerMngVO1 =
+                JSONObject.parseObject(JSONObject.toJSONString(data), ComMngVolunteerMngVO.class);
+            int state = comMngVolunteerMngVO.getState().intValue();
+            SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO();
+            Date date = new Date();
+            sysUserNoticeVO.setType(3);
+            sysUserNoticeVO.setBusinessType(5);
+            sysUserNoticeVO.setUserId(comMngVolunteerMngVO1.getSubmitUserId());
+            sysUserNoticeVO.setBusinessTime(date);
+            sysUserNoticeVO.setStatus(0);
+
+            // 查询用户openid
+            R userResult = userService.getUserOpenId(comMngVolunteerMngVO1.getSubmitUserId());
+            if (state == 2) {// 通过
+                // 修改用户志愿者审核状态
+                // String phone = comMngVolunteerMngVO1.getPhone();
+                R r3 = userService.putUserIsVolunteerById(comMngVolunteerMngVO1.getSubmitUserId(), 1);
+                if (R.isOk(r3)) {
+                    log.info("修改用户【{}】的支援者状态为否", comMngVolunteerMngVO1.getSubmitUserId());
+                } else {
+                    log.info("用户【{}】没有小程序用户", comMngVolunteerMngVO1.getSubmitUserId());
+                }
+
+                sysUserNoticeVO.setTitle("志愿者申请通过审核");
+                sysUserNoticeVO.setBusinessContent("恭喜你!你已经是一名志愿者了,感谢你对社区的贡献,我们共同创造和谐家园");
+                sysUserNoticeVO.setBusinessStatus(2);
+                R r2 = userService.addNotice(sysUserNoticeVO);
+                if (R.isOk(r2)) {
+                    log.info("新增志愿者申请通过审核通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+                }
+
+                if (R.isOk(userResult)) {
+                    String openid = userResult.getData().toString();
+                    R<SysTemplateConfigVO> sysTemplateConfigVO=userService.selectTemplate(this.getAreaCode(),5);
+                    WxXCXTempSend util = new WxXCXTempSend();
+                    try {
+                        WxUtil.sendSubscribeRZSH(openid, util.getAccessToken(), "志愿者认证",
+                            DateUtils.format(comMngVolunteerMngVO1.getCreateAt(), DateUtils.ymdhms_format), "审核通过",sysTemplateConfigVO.getData().getTemplateId());
+                    } catch (Exception e) {
+                        log.error("消息推送失败,失败原因:" + e.getMessage());
+                    }
+                }
+            } else if (state == 3) { // 驳回
+                sysUserNoticeVO.setTitle("志愿者申请未通过");
+                sysUserNoticeVO.setBusinessContent(String.format("驳回原因:%s", comMngVolunteerMngVO1.getRejectReson()));
+                sysUserNoticeVO.setBusinessStatus(1);
+                R r2 = userService.addNotice(sysUserNoticeVO);
+                if (R.isOk(r2)) {
+                    log.info("新增志愿者申请未通过通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+                }
+
+                if (R.isOk(userResult)) {
+                    String openid = userResult.getData().toString();
+                    R<SysTemplateConfigVO> sysTemplateConfigVO=userService.selectTemplate(this.getAreaCode(),5);
+                    WxXCXTempSend util = new WxXCXTempSend();
+                    try {
+                        WxUtil.sendSubscribeRZSH(openid, util.getAccessToken(), "志愿者认证",
+                            DateUtils.format(comMngVolunteerMngVO1.getCreateAt(), DateUtils.ymdhms_format),
+                            "审核驳回,驳回原因:" + comMngVolunteerMngVO1.getRejectReson(),sysTemplateConfigVO.getData().getTemplateId());
+                    } catch (Exception e) {
+                        log.error("消息推送失败,失败原因:" + e.getMessage());
+                    }
+                }
+            }
+        }
+        return r;
+    }
+
+    @ApiOperation(value = "删除志愿者审核")
+    @DeleteMapping("volunteerexamine")
+    public R deleteVolunteerExamine(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO) {
+        Long id = comMngVolunteerMngVO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("审核主键不能为空");
+        }
+        return communityService.deleteVolunteerExamine(comMngVolunteerMngVO);
+    }
+
+    @ApiOperation(value = "导入居民")
+    @PostMapping("importuser")
+    public R importUser(MultipartFile multipartFile) throws IOException {
+        String name = multipartFile.getOriginalFilename();
+        Float size = Float.parseFloat(String.valueOf(multipartFile.getSize())) / 1024;
+        BigDecimal b = new BigDecimal(size);
+        size = b.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue();
+        log.info("导入文件名字【{}】,文件大小【{}】KB", name, size);
+        String fileType = name.substring(name.indexOf("."));
+        boolean isXls = !fileType.contains("xls") && !fileType.contains("xlsx");
+        if (isXls) {
+            return R.fail("请上传xls或者xlsx格式的文件");
+        }
+        EasyExcel
+            .read(multipartFile.getInputStream(), EexcelUserDTO.class,
+                new UploadEexcelUserDTOListener(userService, name))
+            .extraRead(CellExtraTypeEnum.MERGE).headRowNumber(1).sheet().doRead();
+        return R.ok();
+    }
+
+    @ApiOperation(value = "社区人员详情", response = CommunityUserInfoVO.class)
+    @GetMapping("detailuser")
+    @ApiImplicitParam(name = "userId", value = "人员id", required = true)
+    public R detailUser(@RequestParam("userId") Long userId) {
+        // R r = userService.detailUser(userId);
+        R r = userService.detailUserComunity(userId);
+        boolean ok = R.isOk(r);
+        if (ok) {
+            Object data = r.getData();
+            if (!ObjectUtils.isEmpty(data)) {
+                CommunityUserInfoVO communityUserInfoVO =
+                    JSONObject.parseObject(JSONObject.toJSONString(data), CommunityUserInfoVO.class);
+                R r1 = communityService.detailHouse(userId);
+                if (R.isOk(r1)) {
+                    Object data1 = r1.getData();
+                    if (!ObjectUtils.isEmpty(data1)) {
+                        communityUserInfoVO.setComMngStructHouseVOS((List<ComMngStructHouseVO>)data1);
+                        r.setData(communityUserInfoVO);
+                    }
+                }
+            }
+        }
+        return r;
+    }
+
+    @ApiOperation(value = "下载模板")
+    @GetMapping("exportuser")
+    @ApiImplicitParam(name = "id", value = "小区id", required = true)
+    public R exportUser(@RequestParam("id") Long id) {
+        // 检查小区是否已经批量设置过房屋并且返回小区房屋门号规则
+        R r = communityService.checkAreaHouse(id);
+        if (R.isOk(r)) {
+            // 生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址
+            ComMngStructAreaVO comMngStructAreaVO =
+                JSONObject.parseObject(JSONObject.toJSONString(r.getData()), ComMngStructAreaVO.class);
+            String areaName = comMngStructAreaVO.getAreaName();
+            String roleFloor = comMngStructAreaVO.getRoleFloor();
+            String roleConnector = comMngStructAreaVO.getRoleConnector();
+            String roleDoor = comMngStructAreaVO.getRoleDoor();
+            String doorNumber = "1-1-1-" + roleFloor + roleConnector + roleDoor;
+            // String url="http://www.psciio.com/web/excel/";
+            String url = excelUrl;
+            String ftpUrl = "/mnt/data/web/excel/";
+            String name = areaName + ".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, EexcelUserDTO.class)
+                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet("模板").build();
+                        List<EexcelUserDTO> eexcelUserDTOS = new ArrayList<>();
+                        EexcelUserDTO eexcelUserDTO = new EexcelUserDTO();
+                        eexcelUserDTO.setOrder("例子(可不用删除)");
+                        eexcelUserDTO.setDoorNumber(doorNumber);
+                        eexcelUserDTO.setIsRent("是");
+                        eexcelUserDTO.setName("张三");
+                        eexcelUserDTO.setNation("汉");
+                        eexcelUserDTO.setPoliticalOutlook("群众");
+                        eexcelUserDTO.setMaritalStatus("已婚");
+                        eexcelUserDTO.setPhone("13545789626");
+                        eexcelUserDTO.setEducation("高中");
+                        eexcelUserDTO.setIdCard("342589457896122557");
+                        eexcelUserDTO.setCompany("恰恰食品厂");
+                        eexcelUserDTO.setResidence("攀枝花");
+                        eexcelUserDTO.setIsPanZhiHua("是");
+                        eexcelUserDTO.setSituation("1月27日返攀");
+                        eexcelUserDTO.setIsContact("否");
+                        eexcelUserDTO.setMajor("否");
+                        eexcelUserDTO.setSoldier("否");
+                        eexcelUserDTO.setDisability("否");
+                        eexcelUserDTO.setLowIncomePeople("否");
+                        eexcelUserDTO.setLowIncomeHouseholds("否");
+                        eexcelUserDTO.setOldPeople("否");
+                        eexcelUserDTO.setSpecialServiceFamily("否");
+                        eexcelUserDTO.setKeyPersonnel("否");
+                        eexcelUserDTOS.add(eexcelUserDTO);
+                        excelWriter.write(eexcelUserDTOS, 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(url + areaName + ".xlsx");
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error("文件传输失败【{}】", e.getMessage());
+                return R.fail();
+            }
+        } else {
+            return r;
+        }
+    }
+
+    @ApiOperation(value = "选择导入的小区", response = ComMngStructAreaVO.class)
+    @GetMapping("listareas")
+    public R listAreas(String param) {
+        if (null == param) {
+            param = "";
+        }
+        Long communityId = this.getCommunityId();
+        return communityService.listAreas(param, communityId);
+    }
+
+    @ApiOperation(value = "导出")
+    @PostMapping("export")
+    public R export(@RequestBody ExportUserDTO exportUserDTO) {
+        Long communityId = this.getCommunityId();
+        exportUserDTO.setCommunityId(communityId);
+        String url = excelUrl;
+        String uuid = UUID.randomUUID().toString().replace("-", "");
+        String name = uuid + ".xlsx";
+        String _name = "小程序用户管理.xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+        // 用户搜索了就下载搜索的用户否则下载所有用户
+        R r = userService.export(exportUserDTO);
+        if (R.isOk(r)) {
+            List<EexcelUserDTO> eexcelUserDTOS =
+                JSONArray.parseArray(JSONArray.toJSONString(r.getData()), EexcelUserDTO.class);
+            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, EexcelUserDTO.class)
+                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet("模板").build();
+                        excelWriter.write(eexcelUserDTOS, 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(url + _name);
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error("文件传输失败【{}】", e.getMessage());
+                return R.fail();
+            }
+        }
+        return R.fail("未查询到用户");
+    }
+
+    @ApiOperation(value = "导出小区房屋信息")
+    @GetMapping("house/export")
+    public R houseExport(@RequestParam("areaId") Long areaId) {
+        String url = excelUrl;
+        String uuid = UUID.randomUUID().toString().replace("-", "");
+        // String name=uuid+".xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+        R<ComMngStructAreaVO> areaR = communityService.detailArea(areaId);
+        if (!R.isOk(areaR)) {
+            return areaR;
+        }
+        ComMngStructAreaVO areaVO =
+            JSONObject.parseObject(JSONObject.toJSONString(areaR.getData()), ComMngStructAreaVO.class);
+        Long communityId = areaVO.getCommunityId();
+        R<ComActVO> comActR = communityService.detailCommunity(communityId);
+        if (!R.isOk(comActR)) {
+            return comActR;
+        }
+        ComActVO comActVO = JSONObject.parseObject(JSONObject.toJSONString(comActR.getData()), ComActVO.class);
+        R r = communityService.houseExport(areaId);
+        if (R.isOk(r)) {
+            List<ExcelHouseDTO> excelHouseDTOS =
+                JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ExcelHouseDTO.class);
+            try {
+                SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+                sftp.login();
+                String name = comActVO.getName() + areaVO.getAreaName() + "房屋信息.xlsx";
+                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, ExcelHouseDTO.class)
+                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                        WriteSheet writeSheet =
+                            EasyExcel.writerSheet(comActVO.getName() + areaVO.getAreaName()).build();
+                        excelWriter.write(excelHouseDTOS, 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(url + URLEncoder.encode(name, "UTF-8"));
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error("文件传输失败【{}】", e.getMessage());
+                return R.fail();
+            }
+        }
+        return R.fail("未查询到用户");
+    }
+}
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
new file mode 100644
index 0000000..76e2922
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityPartyBuildingApi.java
@@ -0,0 +1,1183 @@
+package com.panzhihua.community_backstage.api;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.*;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import cn.hutool.core.util.ArrayUtil;
+import com.panzhihua.common.listen.ComPbCheckUnitExcelListen;
+import com.panzhihua.common.listen.ComPbMemberRoleExcelListen;
+import com.panzhihua.common.model.dtos.partybuilding.ComDataStatisticsOrgDto;
+import com.panzhihua.common.model.dtos.partybuilding.PageComDataStatisticsMemberDto;
+import com.panzhihua.common.model.vos.PartyMemberListExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngVolunteerMngVO;
+import com.panzhihua.common.model.vos.community.reserve.ComActReserveMakeRightExcelAdminVO;
+import com.panzhihua.common.model.vos.community.reserve.ComActReserveMakeRightStatisticsAdminVO;
+import com.panzhihua.common.model.vos.partybuilding.excel.ComDataStatisticsMemberExcelVo;
+import com.panzhihua.common.model.vos.partybuilding.excel.ComPbCheckUnitErrorExcelVO;
+import com.panzhihua.common.model.vos.partybuilding.excel.ComPbMemberRoleErrorExcelVo;
+import com.panzhihua.common.model.vos.user.SysTemplateConfigVO;
+import com.panzhihua.common.service.partybuilding.ComDataStatisticsFeign;
+import com.panzhihua.common.service.partybuilding.PartyBuildingWestService;
+import com.panzhihua.common.utlis.*;
+import com.panzhihua.community_backstage.config.MinioUtil;
+import com.panzhihua.community_backstage.config.SFTPConfig;
+import org.apache.commons.io.FilenameUtils;
+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.util.ObjectUtils;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.jcraft.jsch.SftpException;
+import com.panzhihua.common.constants.FtpConstants;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.interfaces.OperLog;
+import com.panzhihua.common.model.dtos.partybuilding.ComPbServiceTeamDTO;
+import com.panzhihua.common.model.dtos.partybuilding.PageComPbServiceTeamDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.UploadFilesVO;
+import com.panzhihua.common.model.vos.community.ComActMessageVO;
+import com.panzhihua.common.model.vos.community.ResetComActMessageVO;
+import com.panzhihua.common.model.vos.partybuilding.*;
+import com.panzhihua.common.model.vos.user.RoleVO;
+import com.panzhihua.common.model.vos.user.SysUserNoticeVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.partybuilding.PartyBuildingService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.SFTPUtil;
+import com.panzhihua.common.utlis.WxUtil;
+import com.panzhihua.common.utlis.WxXCXTempSend;
+import com.panzhihua.common.validated.AddGroup;
+import com.panzhihua.community_backstage.excel.CustomSheetWriteHandler;
+import com.panzhihua.community_backstage.listen.PartyBuildingMemberExcelListen;
+import com.panzhihua.community_backstage.model.dto.PartyBuildingMemberDTO;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+import static com.panzhihua.common.utlis.FileTypeUploadUtils.assertAllowed;
+import static java.util.Objects.nonNull;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 社区党建引领
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 09:45
+ **/
+@Slf4j
+@Api(tags = {"社区党建引领"})
+@RestController
+@RequestMapping("/communitypartybuilding/")
+public class CommunityPartyBuildingApi extends BaseController {
+    private static List<String> videoExtensionAllow = Arrays.asList("mp4", "mov");
+    @Resource
+    private PartyBuildingService partyBuildingService;
+    @Resource
+    private PartyBuildingWestService partyBuildingWestService;
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private UserService userService;
+    @Value("${excel.url}")
+    private String excelUrl = "http://panzhihua.nhys.cdnhxx.com/web/";
+    @Value("${excel.userurl}")
+    private String userurl;
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+    @Value("${ftp.url}")
+    private String url;
+    @Resource
+    private SFTPConfig sftpConfig;
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+
+    @Resource
+    private MinioUtil minioUtil;
+    @Resource
+    private ComDataStatisticsFeign dataStatisticsService;
+
+    @ApiOperation(value = "社区所有启用的党组织列表", response = PartyOrganizationVO.class)
+    @GetMapping("listpartyorganization")
+    public R listPartyOrganization() {
+        Long communityId = this.getCommunityId();
+        log.info("社区所有党组织社区id【{}】", communityId);
+        return partyBuildingService.listPartyOrganization(communityId);
+    }
+
+    @ApiOperation(value = "分页查询社区所有党组织列表", response = PartyOrganizationVO.class)
+    @PostMapping("listpartyorganizationAll")
+    public R listPartyOrganizationAll(@RequestBody PartyOrganizationVO partyOrganizationVO) {
+        Long communityId = this.getCommunityId();
+        partyOrganizationVO.setCommunityId(communityId);
+        log.info("社区所有党组织社区id【{}】", communityId);
+        return partyBuildingService.listPartyOrganizationAll(partyOrganizationVO);
+    }
+
+    @ApiOperation(value = "查询社区所有党组织列表", response = PartyOrganizationVO.class)
+    @PostMapping("getPbOrgAllList")
+    public R getPbOrgAllList(@RequestBody PartyOrganizationVO partyOrganizationVO) {
+        Long communityId = this.getCommunityId();
+        partyOrganizationVO.setCommunityId(communityId);
+        log.info("社区所有党组织社区id【{}】", communityId);
+        return partyBuildingService.getPbOrgAllList(partyOrganizationVO);
+    }
+
+    //@OperLog(operModul = "党支部管理", operType = 1)
+    @ApiOperation(value = "新增党支部")
+    @PostMapping("addpartyorganization")
+    @OperLog(operModul = "报道党员管理", operType = 1, businessType = "新增党支部")
+    public R addPartyOrganization(@RequestBody PartyOrganizationVO partyOrganizationVO) {
+        Long communityId = this.getCommunityId();
+        partyOrganizationVO.setCommunityId(communityId);
+        R r = partyBuildingWestService.addPartyOrganization(partyOrganizationVO);
+        return r;
+    }
+
+    //@OperLog(operModul = "党支部管理", operType = 2)
+    @ApiOperation(value = "编辑党支部")
+    @PostMapping("updatepartyorganization")
+    @OperLog(operModul = "报道党员管理", operType = 2, businessType = "编辑党支部")
+    public R updatePartyOrganization(@RequestBody PartyOrganizationVO partyOrganizationVO) {
+        Long id = partyOrganizationVO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("党支部id不能为空");
+        }
+        return partyBuildingService.updatePartyOrganization(partyOrganizationVO);
+    }
+
+    //@OperLog(operModul = "党支部管理", operType = 3)
+    @ApiOperation(value = "启用、禁用党支部")
+    @PutMapping("resetpartyorganization")
+    public R resetPartyOrganization(@RequestBody PartyOrganizationVO partyOrganizationVO) {
+        Long id = partyOrganizationVO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("党支部id不能为空");
+        }
+        Integer status = partyOrganizationVO.getStatus();
+        if (null == status || (status != 1 && status != 2)) {
+            return R.fail("输入有效的状态,1:启用,2:禁用");
+        }
+        return partyBuildingService.resetPartyOrganization(partyOrganizationVO);
+    }
+
+    //@OperLog(operModul = "党支部管理", operType = 4)
+    @ApiOperation(value = "删除党支部")
+    @DeleteMapping("deletepartyorganization")
+    public R deletePartyOrganization(@RequestBody PartyOrganizationVO partyOrganizationVO) {
+        Long id = partyOrganizationVO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("党支部id不能为空");
+        }
+        return partyBuildingService.deletePartyOrganization(partyOrganizationVO);
+    }
+
+    @OperLog(operModul = "党员管理-新增党员", operType = 1)
+    @ApiOperation(value = "新增党员")
+    @PostMapping("addpartybuildingmember")
+    public R addPartyBuildingMember(@RequestBody PartyBuildingMemberVO partyBuildingMemberVO) {
+        String[] area={"东区","仁和区","米易县","盐边县","西区","钒钛高新区"};
+        if(ArrayUtil.contains(area,this.getLoginUserInfo().getName())){
+            partyBuildingMemberVO.setBelongTo(this.getLoginUserInfo().getName());
+        }
+        R r = partyBuildingService.addPartyBuildingMember(partyBuildingMemberVO);
+        if (R.isOk(r)) {
+            R r1 = userService.updateUserIsPartymemberByPhone(partyBuildingMemberVO.getPhone());
+        }
+        return r;
+    }
+
+    //@OperLog(operModul = "党员管理", operType = 2)
+    @ApiOperation(value = "编辑党员")
+    @PutMapping("updatepartybuildingmember")
+    public R updatePartyBuildingMember(@RequestBody PartyBuildingMemberVO partyBuildingMemberVO) {
+        Long id = partyBuildingMemberVO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("党员id不能为空");
+        }
+        return partyBuildingService.updatePartyBuildingMember(partyBuildingMemberVO);
+    }
+
+    @ApiOperation(value = "下载模板-导入党员")
+    @GetMapping(value = "downloadtemplate")
+    public R downloadTemplate(HttpServletResponse response) throws IOException, SftpException {
+        return R.ok(excelUrl);
+    }
+
+    @ApiOperation(value = "上传照片")
+    @PostMapping(value = "uploadimage", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R uploadImage(@RequestParam MultipartFile file, HttpServletRequest request) {
+        String property = System.getProperty("user.dir");
+        String fileExtension = ".jpg";
+
+        SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+        sftp.login();
+
+        String originName = file.getOriginalFilename();
+        AtomicBoolean isVideo = new AtomicBoolean(false);
+        videoExtensionAllow.forEach(ext -> {
+            String originNameLowerCase = originName.toLowerCase();
+            if (originNameLowerCase.endsWith("." + ext)) {
+                isVideo.set(true);
+            }
+        });
+        if (isVideo.get()) {
+            fileExtension = ".mp4";
+        }
+
+        if (originName.toLowerCase().endsWith(".mp3")) {
+            fileExtension = ".mp3";
+        }
+
+        String name = UUID.randomUUID().toString().replaceAll("-", "") + fileExtension;
+        try {
+            InputStream is = file.getInputStream();
+            String fileName =
+                    property + File.separator + UUID.randomUUID().toString().replace("-", "") + fileExtension;
+            File file1 = new File(fileName);
+            file.transferTo(file1);
+            boolean delete = file1.delete();
+            log.info("临时文件删除【{}】", delete);
+            sftp.uploadMore(FtpConstants.FTPFILEPATH_IDCARD, name, is);
+            sftp.logout();
+            String urls=url + "idcard/" + name;
+            return R.ok(urls);
+        } catch (Exception e) {
+            log.error("上传文件失败【{}】", e.getMessage());
+            return R.fail();
+        }
+
+    }
+
+    @ApiOperation(value = "新上传照片接口")
+    @PostMapping(value = "/uploadimages", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R uploadImages(@RequestParam MultipartFile file, HttpServletRequest request) {
+        try {
+            assertAllowed(file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION);
+            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) {
+        String fileName = file.getOriginalFilename(); // 获取文件名
+        log.info("传入文件名字【{}】", fileName);
+        InputStream inputStream = null;
+        try {
+            inputStream = file.getInputStream();
+            EasyExcel.read(inputStream, PartyBuildingMemberExcelVO.class,
+                new PartyBuildingMemberExcelListen(partyBuildingService,this.getCommunityId())).sheet().doRead();
+        } catch (IOException e) {
+            e.printStackTrace();
+            log.error("导入模板失败【{}】", e.getMessage());
+        }
+        return R.ok();
+    }
+
+    @ApiOperation(value = "党员管理分页查询", response = PartyBuildingMemberVO.class)
+    @PostMapping("pagepartyorganization")
+    public R pagePartyOrganization(@RequestBody PagePartyOrganizationVO pagePartyOrganizationVO) {
+        //pagePartyOrganizationVO.setCommunityId(this.getCommunityId());
+        String[] area={"东区","仁和区","米易县","盐边县","西区","钒钛高新区"};
+        Long[] ids = {1584725574201409537L,1584725574771834881L,1584725575031881730L,1584725575593918466L,
+                1584725576118206466L,1584725576416002050L,1584725576667660289L,1584725576952872961L,1584725577238085633L,
+                1584725577854648322L,1584725578626400258L,1584725579213602817L,1584725579867914241L,1584725580505448449L,
+                1584725580815826946L,1584725581386252289L,1584725581671464962L,1584726087093485569L,1584726087433224193L,
+                1584726088058175490L,1584726088880259073L,1584726089442295809L,1584726091128406018L,1584726091694637058L,
+                1584726092537692162L,1584726093053591554L,1584726093779206146L,1584726094655815681L};
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if(ArrayUtil.contains(area, loginUserInfo.getName())){
+            pagePartyOrganizationVO.setBelongTo(loginUserInfo.getName());
+        }
+        Long communityId = pagePartyOrganizationVO.getCommunityId();
+        if (null!= communityId && communityId == 0L){
+            pagePartyOrganizationVO.setCommunityId(null);
+        }
+        if(loginUserInfo.getBindingCheckUnitId()!=null){
+            pagePartyOrganizationVO.setCheckUnitId(loginUserInfo.getBindingCheckUnitId());
+        }
+        if ("PZHZGNYYH".equals(loginUserInfo.getAccount())){
+            pagePartyOrganizationVO.setIds(ids);
+        }
+        return partyBuildingService.pagePartyOrganization(pagePartyOrganizationVO);
+    }
+    @ApiOperation(value = "党员时长信息导出", response = PartyBuildingMemberVO.class)
+    @PostMapping("exportPartyMember")
+    public R exportPartyMember(@RequestBody PagePartyOrganizationVO pagePartyOrganizationVO) {
+        pagePartyOrganizationVO.setCommunityId(this.getCommunityId());
+        pagePartyOrganizationVO.setAreaCode(this.getAreaCode());
+        String url = userurl;
+        String name = "党员时长信息数据.xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+        // 用户搜索了就下载搜索的用户否则下载所有用户
+        R r = partyBuildingService.exportPartyMember(pagePartyOrganizationVO);
+        if (R.isOk(r)) {
+            List<PartyMemberListExcelVO> eexcelUserDTOS =
+                    JSONArray.parseArray(JSONArray.toJSONString(r.getData()), PartyMemberListExcelVO.class);
+            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, PartyMemberListExcelVO.class)
+                                .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                                .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet("党员时长信息数据导出").build();
+                        excelWriter.write(eexcelUserDTOS, 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(url + name);
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error("文件传输失败【{}】", e.getMessage());
+                return R.fail();
+            }
+        }
+        return R.fail("未查询到用户");
+    }
+
+    @ApiOperation(value = "党员档案--党员活动", response = PartyBuildingActivityVO.class)
+    @PostMapping("listpartymemberactivities")
+    public R listPartyMemberActivities(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO) {
+        return partyBuildingService.listPartyMemberActivities(partyBuildingActivityVO);
+    }
+
+    @ApiOperation(value = "活动报名名单分页查询", response = PageActivityMembersVO.class)
+    @PostMapping("pageactivitymembers")
+    public R pageActivityMembers(@RequestBody PageActivityMembersVO pageActivityMembersVO) {
+        return partyBuildingService.pageActivityMembers(pageActivityMembersVO);
+    }
+
+    @ApiOperation(value = "活动详情", response = PartyBuildingActivityVO.class)
+    @GetMapping("activityinfo")
+    public R activityinfo(@RequestParam("id") Long id) {
+        Long userId = this.getUserId();
+        return partyBuildingService.activityinfo(id, userId);
+    }
+
+    @ApiOperation(value = "新增党员活动")
+    @PostMapping("addactivity")
+    public R addActivity(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long communityId = loginUserInfo.getCommunityId();
+        Long userId = loginUserInfo.getUserId();
+        partyBuildingActivityVO.setCommunityId(communityId);
+        partyBuildingActivityVO.setCreateBy(userId);
+        return partyBuildingService.addactivity(partyBuildingActivityVO);
+    }
+
+    @ApiOperation(value = "编辑党员活动")
+    @PutMapping("updateactivity")
+    public R updateActivity(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO) {
+        Long id = partyBuildingActivityVO.getId();
+        if (null == id || 0 == id) {// todo 修改报名人数 最低人数 0 的判断
+            return R.fail("主键不能为空");
+        }
+        return partyBuildingService.updateActivity(partyBuildingActivityVO);
+    }
+
+    @ApiOperation(value = "发布党员活动")
+    @PutMapping("releaseactivity")
+    public R releaseActivity(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO) {
+        Long id = partyBuildingActivityVO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("主键不能为空");
+        }
+        return partyBuildingService.releaseActivity(id);
+    }
+
+    @ApiOperation(value = "删除党员活动")
+    @DeleteMapping("deleteactivity")
+    public R deleteActivity(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO) {
+        Long id = partyBuildingActivityVO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("主键不能为空");
+        }
+        return partyBuildingService.deleteActivity(id);
+    }
+
+    @ApiOperation(value = "取消党员活动")
+    @PutMapping("cancelactivity")
+    public R cancelActivity(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO) {
+        Long id = partyBuildingActivityVO.getId();
+        String cancelReason = partyBuildingActivityVO.getCancelReason();
+        boolean emptycancelReason = ObjectUtils.isEmpty(cancelReason);
+        boolean emptyid = ObjectUtils.isEmpty(id);
+        if (emptycancelReason || emptyid) {
+            return R.fail("参数不全");
+        }
+        R r = partyBuildingService.cancelActivity(partyBuildingActivityVO);
+        if (R.isOk(r)) {
+            R r1 = partyBuildingService.selectAllPartyBuildingActivityMembers(id);
+            if (R.isOk(r1)) {
+                List<Long> userIds = JSONArray.parseArray(JSONArray.toJSONString(r1.getData()), Long.class);
+                userIds.forEach(aLong -> {
+                    SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO();
+                    sysUserNoticeVO.setUserId(aLong);
+                    sysUserNoticeVO.setType(1);
+                    sysUserNoticeVO.setTitle("活动因故取消");
+                    sysUserNoticeVO.setBusinessType(2);
+                    sysUserNoticeVO.setBusinessTitle(partyBuildingActivityVO.getName());
+                    sysUserNoticeVO
+                        .setBusinessContent(String.format("取消原因%s", partyBuildingActivityVO.getCancelReason()));
+                    sysUserNoticeVO.setBusinessId(id);
+                    sysUserNoticeVO.setStatus(0);
+                    sysUserNoticeVO.setBusinessStatus(1);
+                    R r2 = userService.addNotice(sysUserNoticeVO);
+                    if (R.isOk(r2)) {
+                        log.info("新增取消党建活动通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+                    }
+                });
+            }
+        }
+        return r;
+    }
+
+    @ApiOperation(value = "分页查询党员活动", response = PageActivityMembersVO.class)
+    @PostMapping("pageactivity")
+    public R pageActivity(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO) {
+        Long CommunityId = this.getCommunityId();
+        partyBuildingActivityVO.setCommunityId(CommunityId);
+        return partyBuildingService.pageActivity(partyBuildingActivityVO);
+    }
+
+    @ApiOperation(value = "社区下拉选择党员", response = PartyBuildingMemberVO.class)
+    @GetMapping("listpartymember")
+    public R listPartyMember() {
+        Long communityId = this.getCommunityId();
+        return partyBuildingService.listPartyMember(communityId);
+    }
+
+    @ApiOperation(value = "社区下拉选择身份", response = RoleVO.class)
+    @GetMapping("listidentity")
+    public R listIdentity() {
+        Long communityId = this.getCommunityId();
+        return userService.listIdentity(communityId);
+    }
+
+    //@OperLog(operModul = "党委管理", operType = 1)
+    @ApiOperation(value = "新增党委")
+    @PostMapping("addpartycommittee")
+    public R addPartyCommittee(@RequestBody @Validated(AddGroup.class) PartyCommitteeVO partyCommitteeVO) {
+        Long communityId = this.getCommunityId();
+        partyCommitteeVO.setCommunityId(communityId);
+        R r = partyBuildingService.addPartyCommittee(partyCommitteeVO);
+        if (R.isOk(r)) {
+            R r1 = userService.updateUserIsPartymember(partyCommitteeVO.getIdCard());
+        }
+        return r;
+    }
+
+    //@OperLog(operModul = "党委管理", operType = 2)
+    @ApiOperation(value = "编辑党委")
+    @PutMapping("updatepartycommittee")
+    public R updatePartyCommittee(@RequestBody @Validated(AddGroup.class) PartyCommitteeVO partyCommitteeVO) {
+        Long id = partyCommitteeVO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("主键不能为空");
+        }
+        Long communityId = this.getCommunityId();
+        partyCommitteeVO.setCommunityId(communityId);
+        return partyBuildingService.updatePartyCommittee(partyCommitteeVO);
+    }
+
+    //@OperLog(operModul = "党委管理", operType = 3)
+    @ApiOperation(value = "删除党委")
+    @DeleteMapping("deletepartycommittee")
+    public R deletePartyCommittee(@RequestBody PartyCommitteeVO partyCommitteeVO) {
+        Long id = partyCommitteeVO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("主键不能为空");
+        }
+        Long communityId = this.getCommunityId();
+        partyCommitteeVO.setCommunityId(communityId);
+        return partyBuildingService.deletePartyCommittee(partyCommitteeVO);
+    }
+
+    @ApiOperation(value = "分页党委查询", response = PartyCommitteeVO.class)
+    @PostMapping("pagepartycommittee")
+    public R pagePartyCommittee(@RequestBody PartyCommitteeVO partyCommitteeVO) {
+        Long communityId = this.getCommunityId();
+        partyCommitteeVO.setCommunityId(communityId);
+        return partyBuildingService.pagePartyCommittee(partyCommitteeVO);
+    }
+
+    @ApiOperation(value = "新建动态/政策文件")
+    @PostMapping("adddynamic")
+    public R adddYnamic(@RequestBody PartyBuildingComPbDynVO partyCommitteeVO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        partyCommitteeVO.setCreateBy(loginUserInfo.getUserId());
+        partyCommitteeVO.setCommunityId(loginUserInfo.getCommunityId());
+        Date publishAt = partyCommitteeVO.getPublishAt();
+        if (null == publishAt) {
+            publishAt = new Date();
+            partyCommitteeVO.setPublishAt(publishAt);
+        }
+        long time = publishAt.getTime();
+        long l = System.currentTimeMillis();
+        if (l >= time) {
+            partyCommitteeVO.setStatus(2);
+        }
+        return partyBuildingWestService.adddYnamic(partyCommitteeVO);
+    }
+
+    @ApiOperation(value = "编辑动态/政策文件")
+    @PutMapping("updatedynamic")
+    public R updateYnamic(@RequestBody PartyBuildingComPbDynVO partyCommitteeVO) {
+        Long id = partyCommitteeVO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("动态主键不能为空");
+        }
+        return partyBuildingWestService.updateYnamic(partyCommitteeVO);
+    }
+
+    @ApiOperation(value = "动态/政策文件详情", response = PartyBuildingComPbDynVO.class)
+    @GetMapping("infodynamic")
+    public R infoYnamic(@RequestParam("id") Long id) {
+        return partyBuildingWestService.infoYnamic(id);
+    }
+
+    @ApiOperation(value = "分页查询党员动态/政策文件", response = PartyCommitteeVO.class)
+    @PostMapping("pagedynamic")
+    public R pageYnamic(@RequestBody PartyBuildingComPbDynVO partyBuildingComPbDynVO) {
+        Integer type = partyBuildingComPbDynVO.getType();
+        if (null == type || 0 == type) {
+            return R.fail("类型不能为空");
+        }
+        Long communityId = this.getCommunityId();
+        partyBuildingComPbDynVO.setCommunityId(communityId);
+        return partyBuildingWestService.pageYnamic(partyBuildingComPbDynVO);
+    }
+
+    @ApiOperation(value = "删除动态/政策文件")
+    @DeleteMapping("deletedynamic")
+    public R deleteYnamic(@RequestBody PartyBuildingComPbDynVO partyBuildingComPbDynVO) {
+        Long id = partyBuildingComPbDynVO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("动态主键不能为空");
+        }
+        return partyBuildingWestService.deleteYnamic(id);
+    }
+
+    //@OperLog(operModul = "党员管理", operType = 3)
+    @ApiOperation(value = "删除党员")
+    @DeleteMapping("deletepartybuildingmember")
+    public R deleteDynUser(@RequestBody PartyBuildingMemberVO partyBuildingMemberVO) {
+        Long id = partyBuildingMemberVO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("党员主键不能为空");
+        }
+        return partyBuildingService.deleteDynUser(id);
+    }
+
+    @ApiOperation(value = "新增服务团队人员")
+    @PostMapping("serviceteam")
+    public R addServiceTeam(@RequestBody @Validated(AddGroup.class) ComPbServiceTeamDTO comPbServiceTeamDTO) {
+        comPbServiceTeamDTO.setCommunityId(this.getCommunityId());
+        comPbServiceTeamDTO.setAppid(this.getAppId());
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (nonNull(loginUserInfo.getPropertyId())){
+            comPbServiceTeamDTO.setPropertyId(loginUserInfo.getPropertyId());
+        }
+        return partyBuildingService.addServiceTeam(comPbServiceTeamDTO);
+    }
+
+    @ApiOperation(value = "新增物业服务团队人员")
+    @PostMapping("serviceteamProperty")
+    public R addServiceTeamProperty(@RequestBody @Validated(AddGroup.class) ComPbServiceTeamDTO comPbServiceTeamDTO) {
+        //comPbServiceTeamDTO.setCommunityId(this.getCommunityId());
+        comPbServiceTeamDTO.setAppid(this.getAppId());
+        //获取物业id
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        R<LoginUserInfoVO> r = userService.detailUser(loginUserInfo.getUserId());
+        comPbServiceTeamDTO.setPropertyId(r.getData().getPropertyId());
+        return partyBuildingService.addServiceTeam(comPbServiceTeamDTO);
+    }
+
+    @ApiOperation(value = "编辑服务团队人员")
+    @PutMapping("serviceteam")
+    public R putServiceTeam(@RequestBody ComPbServiceTeamDTO comPbServiceTeamDTO) {
+        Long id = comPbServiceTeamDTO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("主键不能为空");
+        }
+        comPbServiceTeamDTO.setAppid(this.getAppId());
+        comPbServiceTeamDTO.setCommunityId(null);
+        return partyBuildingService.putServiceTeam(comPbServiceTeamDTO);
+    }
+
+    @ApiOperation(value = "删除服务团队人员")
+    @DeleteMapping("serviceteam")
+    public R deleteServiceTeam(@RequestBody ComPbServiceTeamDTO comPbServiceTeamDTO) {
+        Long id = comPbServiceTeamDTO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("主键不能为空");
+        }
+        comPbServiceTeamDTO.setAppid(this.getAppId());
+        return partyBuildingService.deleteServiceTeam(comPbServiceTeamDTO);
+    }
+
+    @ApiOperation(value = "分页查询服务团队成员", response = ComPbServiceTeamVO.class)
+    @PostMapping("pageserviceteam")
+    public R pageServiceTeam(@RequestBody PageComPbServiceTeamDTO pageComPbServiceTeamDTO) {
+        if(nonNull(this.getLoginUserInfo().getStreetId())) {
+            pageComPbServiceTeamDTO.setStreetId(this.getLoginUserInfo().getStreetId());
+        } else {
+            pageComPbServiceTeamDTO.setCommunityId(this.getCommunityId());
+        }
+        return partyBuildingService.pageServiceTeam(pageComPbServiceTeamDTO);
+    }
+
+    /**
+     * 获取动作人员详情
+     * @param communityId
+     * @param phone
+     * @return
+     */
+    @ApiOperation(value = "社区工做人员详情")
+    @GetMapping("/getComPbServiceTeamData")
+    public R getComPbServiceTeamData(@RequestParam("communityId") String communityId,
+                                     @RequestParam("phone") String phone)
+    {
+        return partyBuildingService.getComPbServiceTeamData(communityId,phone);
+    }
+
+
+    @ApiOperation(value = "分页查询物业党员先锋", response = ComPbServiceTeamVO.class)
+    @PostMapping("pageserviceteamProperty")
+    public R pageServiceTeamProperty(@RequestBody PageComPbServiceTeamDTO pageComPbServiceTeamDTO) {
+//        if(nonNull(this.getLoginUserInfo().getStreetId())) {
+//            pageComPbServiceTeamDTO.setStreetId(this.getLoginUserInfo().getStreetId());
+//        } else {
+//            pageComPbServiceTeamDTO.setCommunityId(this.getCommunityId());
+//        }
+        //获取物业id
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        R<LoginUserInfoVO> r = userService.detailUser(loginUserInfo.getUserId());
+        pageComPbServiceTeamDTO.setPropertyId(r.getData().getPropertyId());
+        return partyBuildingService.pageServiceTeam(pageComPbServiceTeamDTO);
+    }
+
+    @ApiOperation(value = "留言-删除")
+    @DeleteMapping("deletemessage")
+    public R deleteMessage(@RequestBody ComActMessageVO comActMessageVO) {
+        return communityService.deleteMessage(comActMessageVO);
+    }
+
+    @ApiOperation(value = "批量设置留言(公开1,保密2)")
+    @DeleteMapping("resetmessagepublic")
+    public R resetMessagePublic(@RequestBody ResetComActMessageVO resetComActMessageVO) {
+        return communityService.resetMessagePublic(resetComActMessageVO);
+    }
+
+    @ApiOperation(value = "分页显示社区所有的留言", response = ComActMessageVO.class)
+    @PostMapping("pagemycommunitymessage")
+    public R pageMyCommunityMessage(@RequestBody ComActMessageVO comActMessageVO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long communityId = loginUserInfo.getCommunityId();
+        if (null == communityId || 0 == communityId) {
+            return R.fail("用户未绑定社区");
+        }
+        comActMessageVO.setCommunityId(communityId);
+        comActMessageVO.setUserId(loginUserInfo.getUserId());
+        return communityService.pageMyCommunityMessage(comActMessageVO);
+    }
+
+    @ApiOperation(value = "待认证党员分页查询", response = PartyBuildingMemberVO.class)
+    @PostMapping("pageprepartybuildingmember")
+    public R pagePrePartybuildingmember(@RequestBody PagePartyBuildingMemberVO pagePartyBuildingMemberVO) {
+        // 待认证党员分页查询
+        Long communityId = this.getCommunityId();
+        if (communityId != null) {
+            pagePartyBuildingMemberVO.setCommunityId(communityId);
+        }
+        return partyBuildingService.pagePrePartybuildingmember(pagePartyBuildingMemberVO);
+    }
+
+    @ApiOperation(value = "待认证党员审核")
+    @PostMapping("reviewprepartybuildingmember")
+    public R reviewPrePartybuildingmember(@RequestBody PartyBuildingMemberDTO partyBuildingMemberDTO) {
+        // 待认证党员审核
+        PartyBuildingMemberVO partyBuildingMemberVO = new PartyBuildingMemberVO();
+        partyBuildingMemberVO.setId(partyBuildingMemberDTO.getId());
+        /**
+         * 0 待审核 1 已审核 2 自动认证 3 已驳回
+         */
+        switch (partyBuildingMemberDTO.getType()) {
+            case 1:
+                partyBuildingMemberVO.setAuditResult(1);
+                break;
+            case 0:
+                partyBuildingMemberVO.setAuditResult(3);
+                partyBuildingMemberVO.setRefuseReason(partyBuildingMemberDTO.getRefuseReason());
+                break;
+            default:
+                return R.fail("参数错误");
+        }
+
+        R updated = partyBuildingService.updatePartyBuildingMember(partyBuildingMemberVO);
+
+        if (R.isOk(updated)) {
+            // 审核通过: 修改用户的党员状态
+            PartyBuildingMemberVO vo1 =
+                JSONObject.parseObject(JSONObject.toJSONString(updated.getData()), PartyBuildingMemberVO.class);
+            //金沙社区特殊需求 添加党员默认添加志愿者
+            if(vo1.getCommunityId()==2){
+                ComMngVolunteerMngVO comMngVolunteerMngVO=new ComMngVolunteerMngVO();
+                comMngVolunteerMngVO.setOrgId(53L);
+                comMngVolunteerMngVO.setName(vo1.getName());
+                comMngVolunteerMngVO.setPhone(vo1.getPhone());
+                comMngVolunteerMngVO.setIdCard(vo1.getIdCard());
+                comMngVolunteerMngVO.setState(2);
+                comMngVolunteerMngVO.setCommunityId(2L);
+                R r = communityService.addVolunteer(comMngVolunteerMngVO);
+                // 支援者添加成功,修改小程序用户的志愿者状态    ,通过手机号
+                if (R.isOk(r)) {
+                    String phone = comMngVolunteerMngVO.getPhone();
+                    R r1 = userService.putUserIsVolunteer(phone, 1);
+                    if (R.isOk(r1)) {
+                        log.info("修改手机号【{}】的支援者状态为是", phone);
+                    } else {
+                        log.info("手机号【{}】没有小程序用户", phone);
+                    }
+                }
+            }
+            Long userId = vo1.getUserId();
+            Long memId = partyBuildingMemberVO.getId();
+            String userIdcard = vo1.getIdCard();
+            if ((1 == partyBuildingMemberVO.getAuditResult()) && R.isOk(updated)) {
+                R r = userService.updateUserIsPartymember(userIdcard);
+                if (R.isOk(r)) {
+                    SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO();
+                    sysUserNoticeVO.setUserId(userId);
+                    sysUserNoticeVO.setType(3);
+                    sysUserNoticeVO.setTitle("党员认证申请审核通过");
+                    sysUserNoticeVO.setBusinessType(11);
+                    sysUserNoticeVO.setBusinessTitle(" ");
+                    sysUserNoticeVO.setBusinessContent("你提交的党员认证申请已被审核通过");
+                    sysUserNoticeVO.setBusinessId(memId);
+                    sysUserNoticeVO.setStatus(0);
+                    sysUserNoticeVO.setBusinessStatus(2);
+                    R r1 = userService.addNotice(sysUserNoticeVO);
+                    if (R.isOk(r1)) {
+                        log.info("新增党员认证已被审核通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+                    }
+                }
+
+                R r1 = userService.getUserOpenId(userId);
+                if (R.isOk(r1)) {
+                    String openid = r1.getData().toString();
+                    R<SysTemplateConfigVO> sysTemplateConfigVO=userService.selectTemplate(this.getAreaCode(),5);
+                    WxXCXTempSend util = new WxXCXTempSend();
+                    try {
+                        WxUtil.sendSubscribeRZSH(openid, util.getAccessToken(), "党员认证",
+                            DateUtils.format(vo1.getCreateAt(), DateUtils.ymdhms_format), "审核通过",sysTemplateConfigVO.getData().getTemplateId());
+                    } catch (Exception e) {
+                        log.error("消息推送失败,失败原因:" + e.getMessage());
+                    }
+                }
+                return r;
+            } else if (3 == partyBuildingMemberVO.getAuditResult() && R.isOk(updated)) {
+                R r = userService.updateUserNotPartymember(userIdcard);
+                if (R.isOk(r)) {
+                    SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO();
+                    sysUserNoticeVO.setUserId(userId);
+                    sysUserNoticeVO.setType(3);
+                    sysUserNoticeVO.setTitle("党员认证申请未通过");
+                    sysUserNoticeVO.setBusinessType(11);
+                    sysUserNoticeVO.setBusinessTitle(" ");
+                    sysUserNoticeVO.setBusinessContent("驳回原因:" + partyBuildingMemberVO.getRefuseReason());
+                    sysUserNoticeVO.setBusinessId(memId);
+                    sysUserNoticeVO.setStatus(0);
+                    sysUserNoticeVO.setBusinessStatus(1);
+                    R r1 = userService.addNotice(sysUserNoticeVO);
+                    if (R.isOk(r1)) {
+                        log.info("新增党员认证已被审核通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+                    }
+
+                    R r2 = userService.getUserOpenId(userId);
+                    if (R.isOk(r2)) {
+                        String openid = r2.getData().toString();
+                        R<SysTemplateConfigVO> sysTemplateConfigVO=userService.selectTemplate(this.getAreaCode(),5);
+                        WxXCXTempSend util = new WxXCXTempSend();
+                        try {
+                            WxUtil.sendSubscribeRZSH(openid, util.getAccessToken(), "党员认证",
+                                DateUtils.format(vo1.getCreateAt(), DateUtils.ymdhms_format),
+                                "审核驳回,驳回原因:" + partyBuildingMemberVO.getRefuseReason(),sysTemplateConfigVO.getData().getTemplateId());
+                        } catch (Exception e) {
+                            log.error("消息推送失败,失败原因:" + e.getMessage());
+                        }
+                    }
+                }
+                return r;
+            }
+        }
+        return updated;
+    }
+
+    @ApiOperation(value = "删除认证党员审核")
+    @PostMapping("/deleteprepartybuildingmember")
+    public R deleteprepartybuildingmember(@RequestParam("id") Long id) {
+        return partyBuildingService.deleteprepartybuildingmember(id);
+    }
+
+    @ApiOperation(value = "党员信息导出Excel")
+    @PostMapping("/member/export")
+    public R exportPbMember(@RequestBody PagePartyOrganizationVO organizationVO) {
+        organizationVO.setCommunityId(this.getCommunityId());
+        String url = userurl;
+        String name = "党员信息数据.xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+        // 用户搜索了就下载搜索的用户否则下载所有用户
+        R r = partyBuildingService.exportPartyMember(organizationVO);
+        if (R.isOk(r)) {
+            List<ComPbMemberExcelVO> eexcelUserDTOS =
+                JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComPbMemberExcelVO.class);
+            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, ComPbMemberExcelVO.class)
+                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet("党员信息数据导出").build();
+                        excelWriter.write(eexcelUserDTOS, 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(url + name);
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error("文件传输失败【{}】", e.getMessage());
+                return R.fail();
+            }
+        }
+        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) {
+        String property = System.getProperty("user.dir");
+        String fileExtension = ".jpg";
+
+        List<UploadFilesVO> urlList = new ArrayList<>();
+        SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+        sftp.login();
+
+        for (MultipartFile file : files) {
+            String originName = file.getOriginalFilename();
+            AtomicBoolean isVideo = new AtomicBoolean(false);
+            videoExtensionAllow.forEach(ext -> {
+                String originNameLowerCase = originName.toLowerCase();
+                if (originNameLowerCase.endsWith("." + ext)) {
+                    isVideo.set(true);
+                }
+            });
+            if (isVideo.get()) {
+                fileExtension = ".mp4";
+            }
+
+            if (originName.toLowerCase().endsWith(".mp3")) {
+                fileExtension = ".mp3";
+            }
+
+            String name = UUID.randomUUID().toString().replaceAll("-", "") + fileExtension;
+            try {
+                InputStream is = file.getInputStream();
+                String fileName =
+                    property + File.separator + UUID.randomUUID().toString().replace("-", "") + fileExtension;
+                File file1 = new File(fileName);
+                file.transferTo(file1);
+                boolean delete = file1.delete();
+                log.info("临时文件删除【{}】", delete);
+                sftp.uploadMore(FtpConstants.FTPFILEPATH_IDCARD, name, is);
+                UploadFilesVO fileVO = new UploadFilesVO();
+                fileVO.setUrl(url + "idcard/" + name);
+                urlList.add(fileVO);
+            } catch (Exception e) {
+                log.error("上传文件失败【{}】", e.getMessage());
+                return R.fail();
+            }
+        }
+        sftp.logout();
+        return R.ok(urlList);
+    }
+
+
+    @ApiOperation(value = "新批量上传照片")
+    @PostMapping(value = "/uploadimagess", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R uploadImagess(@RequestParam MultipartFile[] files, HttpServletRequest request) {
+        List<UploadFilesVO> urlList = new ArrayList<>();
+        for (MultipartFile file : files) {
+            try {
+                assertAllowed(file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION);
+                String extension = FilenameUtils.getExtension(file.getOriginalFilename());
+                String name = UUID.randomUUID().toString().replaceAll("-", "") + "." + extension;
+                String imageUrl = minioUtil.upload(file, name);
+                UploadFilesVO fileVO = new UploadFilesVO();
+                fileVO.setUrl(imageUrl);
+                urlList.add(fileVO);
+//                return R.ok(imageUrl);
+            } catch (Exception e) {
+                log.error("上传照片失败【{}】", e.getMessage());
+                return R.fail();
+            }
+        }
+        return R.ok(urlList);
+    }
+
+    @ApiOperation(value = "党员数据统计-分页查询党员数据",response = ComDataStatisticsMemberVo.class)
+    @PostMapping("/dataStatistics/member/page")
+    public R pageDataStatisticsMember(@RequestBody PageComDataStatisticsMemberDto statisticsMemberDto) {
+        statisticsMemberDto.setCommunityId(this.getCommunityId());
+        return partyBuildingService.pageDataStatisticsMember(statisticsMemberDto);
+    }
+
+    @ApiOperation(value = "党员数据统计-根据党组织统计数据",response = ComDataStatisticsOrgVo.class)
+    @PostMapping("/dataStatistics/org")
+    public R getOrgDataStatistics(@RequestBody ComDataStatisticsOrgDto statisticsOrgDto) {
+        statisticsOrgDto.setCommunityId(this.getCommunityId());
+        return partyBuildingService.getOrgDataStatistics(statisticsOrgDto);
+    }
+
+    @ApiOperation(value = "党支部表头数据统计",response = ComDataStatisticsHeaderOrgVo.class)
+    @GetMapping("/dataStatistics/header/org")
+    public R getHeaderOrgDataStatistics() {
+        return partyBuildingService.getHeaderOrgDataStatistics(this.getCommunityId());
+    }
+
+    @ApiOperation(value = "党员数据统计-导出党员数据")
+    @PostMapping("/dataStatistics/member/export")
+    public R exportDataStatisticsMember(@RequestBody PageComDataStatisticsMemberDto statisticsMemberDto) {
+        statisticsMemberDto.setCommunityId(this.getCommunityId());
+        String url = sftpConfig.getExcelUrl();
+        String name = "党员数据统计-党员导出数据.xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+        R r = partyBuildingService.exportDataStatisticsMember(statisticsMemberDto);
+        if (R.isOk(r)) {
+            List<ComDataStatisticsMemberExcelVo> resultList = JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComDataStatisticsMemberExcelVo.class);
+            try {
+                SFTPUtil sftp = new SFTPUtil(sftpConfig.getUserName(), sftpConfig.getPassword(), sftpConfig.getHost(), sftpConfig.getPort());
+                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, ComDataStatisticsMemberExcelVo.class)
+                                .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                                .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet("党员导出数据").build();
+                        excelWriter.write(resultList, 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(url + name);
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error("文件传输失败【{}】", e.getMessage());
+                return R.fail();
+            }
+        }
+        return r;
+    }
+
+    @ApiOperation(value = "批量新增党委导入excel")
+    @PostMapping(value = "/importPbMemberRole", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R importPbMemberRole(@RequestParam MultipartFile file, HttpServletRequest request) {
+        log.info("传入文件名字【{}】", file.getOriginalFilename());
+        InputStream inputStream = null;
+        try {
+            inputStream = file.getInputStream();
+            EasyExcel.read(inputStream, null,
+                    new ComPbMemberRoleExcelListen(partyBuildingService,this.getCommunityId(),this.getUserId(),stringRedisTemplate)).sheet().doRead();
+        } catch (IOException e) {
+            e.printStackTrace();
+            log.error("导入模板失败【{}】", e.getMessage());
+        }
+        return R.ok();
+    }
+
+    @ApiOperation(value = "下载导入失败党委数据")
+    @GetMapping("/download/error/pbMemberRole")
+    public R downloadErrorPbMemberRole(@RequestParam(value = "key") String key) {
+        List<ComPbMemberRoleErrorExcelVo> 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, ComPbMemberRoleErrorExcelVo.class);
+        }
+        String ftpUrl = "/mnt/data/web/excel/";
+        String nowDate = DateUtils.getCurrentDateString();
+        String name = "党委导入错误数据" + nowDate + ".xlsx";
+        try {
+            SFTPUtil sftp = new SFTPUtil(sftpConfig.getUserName(), sftpConfig.getPassword(), sftpConfig.getHost(), sftpConfig.getPort());
+            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, ComPbMemberRoleErrorExcelVo.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(sftpConfig.getExcelUrl() + name);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    @ApiOperation(value = "社区党委-下载导入模板")
+    @GetMapping("/export/pbMemberRole")
+    public R exportElder() {
+        return R.ok(sftpConfig.getExcelUrl() + "社区党委导入模板.xlsx");
+    }
+
+    @ApiOperation("查询是否党员")
+    @GetMapping("/checkMember")
+    public R checkMember(@RequestParam("idCard")String idCard){
+        return partyBuildingService.checkMember(idCard);
+    }
+
+    //@OperLog(operModul = "党员管理", operType = 1)
+    @ApiOperation(value = "分页查询党员列表",response = PartyBuildingMemberVO.class)
+    @PostMapping("/page/member")
+    public R pageMember(@RequestBody PartyBuildingMemberVO partyBuildingMemberVO) {
+        //partyBuildingMemberVO.setCommunityId(this.getCommunityId());
+        return partyBuildingService.getPagePbMember(partyBuildingMemberVO);
+    }
+    @ApiOperation(value = "党员详情",response =PartyBuildingMemberVO.class)
+    @GetMapping("/memberDetail")
+    public R memberDetail(@RequestParam("id")Long id){
+        return partyBuildingService.memberDetail(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityPartyBuildingWestApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityPartyBuildingWestApi.java
new file mode 100644
index 0000000..6e4f1f9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityPartyBuildingWestApi.java
@@ -0,0 +1,1136 @@
+package com.panzhihua.community_backstage.api;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.*;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import com.panzhihua.common.listen.ComPbMemberRoleExcelListen;
+import com.panzhihua.common.model.dtos.partybuilding.ComDataStatisticsOrgDto;
+import com.panzhihua.common.model.dtos.partybuilding.PageComDataStatisticsMemberDto;
+import com.panzhihua.common.model.vos.PartyMemberListExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngVolunteerMngVO;
+import com.panzhihua.common.model.vos.partybuilding.*;
+import com.panzhihua.common.model.vos.partybuilding.excel.ComDataStatisticsMemberExcelVo;
+import com.panzhihua.common.model.vos.partybuilding.excel.ComPbMemberRoleErrorExcelVo;
+import com.panzhihua.common.model.vos.user.SysTemplateConfigVO;
+import com.panzhihua.common.service.partybuilding.ComDataStatisticsFeign;
+import com.panzhihua.common.service.partybuilding.PartyBuildingWestService;
+import com.panzhihua.common.utlis.*;
+import com.panzhihua.community_backstage.config.MinioUtil;
+import com.panzhihua.community_backstage.config.SFTPConfig;
+import org.apache.commons.io.FilenameUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+import org.springframework.util.ObjectUtils;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.jcraft.jsch.SftpException;
+import com.panzhihua.common.constants.FtpConstants;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.interfaces.OperLog;
+import com.panzhihua.common.model.dtos.partybuilding.ComPbServiceTeamDTO;
+import com.panzhihua.common.model.dtos.partybuilding.PageComPbServiceTeamDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.UploadFilesVO;
+import com.panzhihua.common.model.vos.community.ComActMessageVO;
+import com.panzhihua.common.model.vos.community.ResetComActMessageVO;
+import com.panzhihua.common.model.vos.user.RoleVO;
+import com.panzhihua.common.model.vos.user.SysUserNoticeVO;
+import com.panzhihua.common.service.community.CommunityWestService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.validated.AddGroup;
+import com.panzhihua.community_backstage.excel.CustomSheetWriteHandler;
+import com.panzhihua.community_backstage.listen.PartyBuildingMemberExcelListen;
+import com.panzhihua.community_backstage.model.dto.PartyBuildingMemberDTO;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+import static com.panzhihua.common.utlis.FileTypeUploadUtils.assertAllowed;
+import static java.util.Objects.nonNull;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 社区党建引领
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 09:45
+ **/
+@Slf4j
+@Api(tags = {"社区党建引领"})
+@RestController
+@RequestMapping("/communitypartybuildingWest/")
+public class CommunityPartyBuildingWestApi extends BaseController {
+    private static List<String> videoExtensionAllow = Arrays.asList("mp4", "mov");
+    @Resource
+    private PartyBuildingWestService partyBuildingWestService;
+    @Resource
+    private CommunityWestService communityWestService;
+    @Resource
+    private UserService userService;
+    @Value("${excel.url}")
+    private String excelUrl = "http://panzhihua.nhys.cdnhxx.com/web/";
+    @Value("${excel.userurl}")
+    private String userurl;
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+    @Value("${ftp.url}")
+    private String url;
+    @Resource
+    private SFTPConfig sftpConfig;
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+
+    @Resource
+    private MinioUtil minioUtil;
+    @Resource
+    private ComDataStatisticsFeign dataStatisticsService;
+
+    @ApiOperation(value = "社区所有启用的党组织列表", response = PartyOrganizationVO.class)
+    @GetMapping("listpartyorganization")
+    public R listPartyOrganization() {
+        Long communityId = this.getCommunityId();
+        log.info("社区所有党组织社区id【{}】", communityId);
+        return partyBuildingWestService.listPartyOrganization(communityId);
+    }
+
+    @ApiOperation(value = "分页查询社区所有党组织列表", response = PartyOrganizationVO.class)
+    @PostMapping("listpartyorganizationAll")
+    public R listPartyOrganizationAll(@RequestBody PartyOrganizationVO partyOrganizationVO) {
+        Long communityId = this.getCommunityId();
+        partyOrganizationVO.setCommunityId(communityId);
+        log.info("社区所有党组织社区id【{}】", communityId);
+        return partyBuildingWestService.listPartyOrganizationAll(partyOrganizationVO);
+    }
+
+    @ApiOperation(value = "查询社区所有党组织列表", response = PartyOrganizationVO.class)
+    @PostMapping("getPbOrgAllList")
+    public R getPbOrgAllList(@RequestBody PartyOrganizationVO partyOrganizationVO) {
+        Long communityId = this.getCommunityId();
+        partyOrganizationVO.setCommunityId(communityId);
+        log.info("社区所有党组织社区id【{}】", communityId);
+        return partyBuildingWestService.getPbOrgAllList(partyOrganizationVO);
+    }
+
+    @OperLog(operModul = "党支部管理", operType = 1,businessType = "新增党支部")
+    @ApiOperation(value = "新增党支部")
+    @PostMapping("addpartyorganization")
+    public R addPartyOrganization(@RequestBody PartyOrganizationVO partyOrganizationVO) {
+        Long communityId = this.getCommunityId();
+        partyOrganizationVO.setCommunityId(communityId);
+        R r = partyBuildingWestService.addPartyOrganization(partyOrganizationVO);
+        return r;
+    }
+
+    @OperLog(operModul = "党支部管理", operType = 2,businessType = "编辑党支部")
+    @ApiOperation(value = "编辑党支部")
+    @PostMapping("updatepartyorganization")
+    public R updatePartyOrganization(@RequestBody PartyOrganizationVO partyOrganizationVO) {
+        Long id = partyOrganizationVO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("党支部id不能为空");
+        }
+        return partyBuildingWestService.updatePartyOrganization(partyOrganizationVO);
+    }
+
+    @OperLog(operModul = "党支部管理", operType = 3,businessType = "启用、禁用党支部")
+    @ApiOperation(value = "启用、禁用党支部")
+    @PutMapping("resetpartyorganization")
+    public R resetPartyOrganization(@RequestBody PartyOrganizationVO partyOrganizationVO) {
+        Long id = partyOrganizationVO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("党支部id不能为空");
+        }
+        Integer status = partyOrganizationVO.getStatus();
+        if (null == status || (status != 1 && status != 2)) {
+            return R.fail("输入有效的状态,1:启用,2:禁用");
+        }
+        return partyBuildingWestService.resetPartyOrganization(partyOrganizationVO);
+    }
+
+    @OperLog(operModul = "党支部管理", operType = 3,businessType = "删除党支部")
+    @ApiOperation(value = "删除党支部")
+    @DeleteMapping("deletepartyorganization")
+    public R deletePartyOrganization(@RequestBody PartyOrganizationVO partyOrganizationVO) {
+        Long id = partyOrganizationVO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("党支部id不能为空");
+        }
+        return partyBuildingWestService.deletePartyOrganization(partyOrganizationVO);
+    }
+
+    @OperLog(operModul = "党员管理", operType = 1,businessType = "新增党员")
+    @ApiOperation(value = "新增党员")
+    @PostMapping("addpartybuildingmember")
+    public R addPartyBuildingMember(@RequestBody PartyBuildingMemberVO partyBuildingMemberVO) {
+        Long communityId = this.getCommunityId();
+        partyBuildingMemberVO.setCommunityId(communityId);
+        R r = partyBuildingWestService.addPartyBuildingMember(partyBuildingMemberVO);
+        if (R.isOk(r)) {
+            R r1 = userService.updateUserIsPartymember(partyBuildingMemberVO.getIdCard());
+        }
+        return r;
+    }
+
+    @OperLog(operModul = "党员管理", operType = 2,businessType = "编辑党员")
+    @ApiOperation(value = "编辑党员")
+    @PutMapping("updatepartybuildingmember")
+    public R updatePartyBuildingMember(@RequestBody PartyBuildingMemberVO partyBuildingMemberVO) {
+        Long id = partyBuildingMemberVO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("党员id不能为空");
+        }
+        return partyBuildingWestService.updatePartyBuildingMember(partyBuildingMemberVO);
+    }
+
+    @ApiOperation(value = "下载模板-导入党员")
+    @GetMapping(value = "downloadtemplate")
+    public R downloadTemplate(HttpServletResponse response) throws IOException, SftpException {
+        return R.ok(excelUrl);
+    }
+
+    @ApiOperation(value = "上传照片")
+    @PostMapping(value = "uploadimage", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R uploadImage(@RequestParam MultipartFile file, HttpServletRequest request) {
+
+        String property = System.getProperty("user.dir");
+        String fileExtension = ".jpg";
+
+        SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+        sftp.login();
+
+        String originName = file.getOriginalFilename();
+        AtomicBoolean isVideo = new AtomicBoolean(false);
+        videoExtensionAllow.forEach(ext -> {
+            String originNameLowerCase = originName.toLowerCase();
+            if (originNameLowerCase.endsWith("." + ext)) {
+                isVideo.set(true);
+            }
+        });
+        if (isVideo.get()) {
+            fileExtension = ".mp4";
+        }
+
+        if (originName.toLowerCase().endsWith(".mp3")) {
+            fileExtension = ".mp3";
+        }
+
+        String name = UUID.randomUUID().toString().replaceAll("-", "") + fileExtension;
+        try {
+            InputStream is = file.getInputStream();
+            String fileName =
+                    property + File.separator + UUID.randomUUID().toString().replace("-", "") + fileExtension;
+            File file1 = new File(fileName);
+            file.transferTo(file1);
+            sftp.uploadMore(FtpConstants.FTPFILEPATH_IDCARD, name, is);
+            boolean delete = file1.delete();
+            log.info("临时文件删除【{}】", delete);
+            sftp.logout();
+            String urls=url + "idcard/" + name;
+            return R.ok(urls);
+        } catch (Exception e) {
+            log.error("上传文件失败【{}】", e.getMessage());
+            return R.fail();
+        }
+
+//        try {
+//            assertAllowed(file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION);
+//            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 = "/uploadimages", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R uploadImages(@RequestParam MultipartFile file, HttpServletRequest request) {
+//        try {
+//            assertAllowed(file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION);
+//            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();
+//        }
+
+        String property = System.getProperty("user.dir");
+        String fileExtension = ".jpg";
+
+        SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+        sftp.login();
+
+        String originName = file.getOriginalFilename();
+        AtomicBoolean isVideo = new AtomicBoolean(false);
+        videoExtensionAllow.forEach(ext -> {
+            String originNameLowerCase = originName.toLowerCase();
+            if (originNameLowerCase.endsWith("." + ext)) {
+                isVideo.set(true);
+            }
+        });
+        if (isVideo.get()) {
+            fileExtension = ".mp4";
+        }
+
+        if (originName.toLowerCase().endsWith(".mp3")) {
+            fileExtension = ".mp3";
+        }
+
+        String name = UUID.randomUUID().toString().replaceAll("-", "") + fileExtension;
+        try {
+            InputStream is = file.getInputStream();
+            String fileName =
+                    property + File.separator + UUID.randomUUID().toString().replace("-", "") + fileExtension;
+            File file1 = new File(fileName);
+            file.transferTo(file1);
+            sftp.uploadMore(FtpConstants.FTPFILEPATH_IDCARD, name, is);
+            boolean delete = file1.delete();
+            log.info("临时文件删除【{}】", delete);
+            sftp.logout();
+            String urls=url + "idcard/" + name;
+            return R.ok(urls);
+        } 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) {
+//        String fileName = file.getOriginalFilename(); // 获取文件名
+//        log.info("传入文件名字【{}】", fileName);
+//        InputStream inputStream = null;
+//        try {
+//            inputStream = file.getInputStream();
+//            EasyExcel.read(inputStream, PartyBuildingMemberExcelVO.class,
+//                    new PartyBuildingMemberExcelListen(partyBuildingWestService)).sheet().doRead();
+//        } catch (IOException e) {
+//            e.printStackTrace();
+//            log.error("导入模板失败【{}】", e.getMessage());
+//        }
+//        return R.ok();
+//    }
+
+    @ApiOperation(value = "党员管理分页查询", response = PartyBuildingMemberVO.class)
+    @PostMapping("pagepartyorganization")
+    public R pagePartyOrganization(@RequestBody PagePartyOrganizationVO pagePartyOrganizationVO) {
+        pagePartyOrganizationVO.setCommunityId(this.getCommunityId());
+        //pagePartyOrganizationVO.setAreaCode(this.getAreaCode());
+        return partyBuildingWestService.pagePartyOrganization(pagePartyOrganizationVO);
+    }
+    @ApiOperation(value = "党员时长信息导出", response = PartyBuildingMemberVO.class)
+    @PostMapping("exportPartyMember")
+    public R exportPartyMember(@RequestBody PagePartyOrganizationVO pagePartyOrganizationVO) {
+        pagePartyOrganizationVO.setCommunityId(this.getCommunityId());
+        pagePartyOrganizationVO.setAreaCode(this.getAreaCode());
+        String url = userurl;
+        String name = "党员时长信息数据.xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+        // 用户搜索了就下载搜索的用户否则下载所有用户
+        R r = partyBuildingWestService.exportPartyMember(pagePartyOrganizationVO);
+        if (R.isOk(r)) {
+            List<PartyMemberListExcelVO> eexcelUserDTOS =
+                    JSONArray.parseArray(JSONArray.toJSONString(r.getData()), PartyMemberListExcelVO.class);
+            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, PartyMemberListExcelVO.class)
+                                .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                                .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet("党员时长信息数据导出").build();
+                        excelWriter.write(eexcelUserDTOS, 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(url + name);
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error("文件传输失败【{}】", e.getMessage());
+                return R.fail();
+            }
+        }
+        return R.fail("未查询到用户");
+    }
+
+    @ApiOperation(value = "党员档案--党员活动", response = PartyBuildingActivityVO.class)
+    @PostMapping("listpartymemberactivities")
+    public R listPartyMemberActivities(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO) {
+        return partyBuildingWestService.listPartyMemberActivities(partyBuildingActivityVO);
+    }
+
+    @ApiOperation(value = "活动报名名单分页查询", response = PageActivityMembersVO.class)
+    @PostMapping("pageactivitymembers")
+    public R pageActivityMembers(@RequestBody PageActivityMembersVO pageActivityMembersVO) {
+        return partyBuildingWestService.pageActivityMembers(pageActivityMembersVO);
+    }
+
+    @ApiOperation(value = "活动详情", response = PartyBuildingActivityVO.class)
+    @GetMapping("activityinfo")
+    public R activityinfo(@RequestParam("id") Long id) {
+        Long userId = this.getUserId();
+        return partyBuildingWestService.activityinfo(id, userId);
+    }
+
+    @ApiOperation(value = "新增党员活动")
+    @PostMapping("addactivity")
+    public R addActivity(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long communityId = loginUserInfo.getCommunityId();
+        Long userId = loginUserInfo.getUserId();
+        partyBuildingActivityVO.setCommunityId(communityId);
+        partyBuildingActivityVO.setCreateBy(userId);
+        return partyBuildingWestService.addactivity(partyBuildingActivityVO);
+    }
+
+    @ApiOperation(value = "编辑党员活动")
+    @PutMapping("updateactivity")
+    public R updateActivity(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO) {
+        Long id = partyBuildingActivityVO.getId();
+        if (null == id || 0 == id) {// todo 修改报名人数 最低人数 0 的判断
+            return R.fail("主键不能为空");
+        }
+        return partyBuildingWestService.updateActivity(partyBuildingActivityVO);
+    }
+
+    @ApiOperation(value = "发布党员活动")
+    @PutMapping("releaseactivity")
+    public R releaseActivity(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO) {
+        Long id = partyBuildingActivityVO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("主键不能为空");
+        }
+        return partyBuildingWestService.releaseActivity(id);
+    }
+
+    @ApiOperation(value = "删除党员活动")
+    @DeleteMapping("deleteactivity")
+    public R deleteActivity(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO) {
+        Long id = partyBuildingActivityVO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("主键不能为空");
+        }
+        return partyBuildingWestService.deleteActivity(id);
+    }
+
+    @ApiOperation(value = "取消党员活动")
+    @PutMapping("cancelactivity")
+    public R cancelActivity(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO) {
+        Long id = partyBuildingActivityVO.getId();
+        String cancelReason = partyBuildingActivityVO.getCancelReason();
+        boolean emptycancelReason = ObjectUtils.isEmpty(cancelReason);
+        boolean emptyid = ObjectUtils.isEmpty(id);
+        if (emptycancelReason || emptyid) {
+            return R.fail("参数不全");
+        }
+        R r = partyBuildingWestService.cancelActivity(partyBuildingActivityVO);
+        if (R.isOk(r)) {
+            R r1 = partyBuildingWestService.selectAllPartyBuildingActivityMembers(id);
+            if (R.isOk(r1)) {
+                List<Long> userIds = JSONArray.parseArray(JSONArray.toJSONString(r1.getData()), Long.class);
+                userIds.forEach(aLong -> {
+                    SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO();
+                    sysUserNoticeVO.setUserId(aLong);
+                    sysUserNoticeVO.setType(1);
+                    sysUserNoticeVO.setTitle("活动因故取消");
+                    sysUserNoticeVO.setBusinessType(2);
+                    sysUserNoticeVO.setBusinessTitle(partyBuildingActivityVO.getName());
+                    sysUserNoticeVO
+                            .setBusinessContent(String.format("取消原因%s", partyBuildingActivityVO.getCancelReason()));
+                    sysUserNoticeVO.setBusinessId(id);
+                    sysUserNoticeVO.setStatus(0);
+                    sysUserNoticeVO.setBusinessStatus(1);
+                    R r2 = userService.addNotice(sysUserNoticeVO);
+                    if (R.isOk(r2)) {
+                        log.info("新增取消党建活动通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+                    }
+                });
+            }
+        }
+        return r;
+    }
+
+    @ApiOperation(value = "分页查询党员活动", response = PageActivityMembersVO.class)
+    @PostMapping("pageactivity")
+    public R pageActivity(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO) {
+        Long CommunityId = this.getCommunityId();
+        partyBuildingActivityVO.setCommunityId(CommunityId);
+        return partyBuildingWestService.pageActivity(partyBuildingActivityVO);
+    }
+
+    @ApiOperation(value = "社区下拉选择党员", response = PartyBuildingMemberVO.class)
+    @GetMapping("listpartymember")
+    public R listPartyMember() {
+        Long communityId = this.getCommunityId();
+        return partyBuildingWestService.listPartyMember(communityId);
+    }
+
+    @ApiOperation(value = "社区下拉选择身份", response = RoleVO.class)
+    @GetMapping("listidentity")
+    public R listIdentity() {
+        Long communityId = this.getCommunityId();
+        return userService.listIdentity(communityId);
+    }
+
+    @OperLog(operModul = "党委管理", operType = 1)
+    @ApiOperation(value = "新增党委")
+    @PostMapping("addpartycommittee")
+    public R addPartyCommittee(@RequestBody @Validated(AddGroup.class) PartyCommitteeVO partyCommitteeVO) {
+        Long communityId = this.getCommunityId();
+        partyCommitteeVO.setCommunityId(communityId);
+        R r = partyBuildingWestService.addPartyCommittee(partyCommitteeVO);
+        if (R.isOk(r)) {
+            R r1 = userService.updateUserIsPartymember(partyCommitteeVO.getIdCard());
+        }
+        return r;
+    }
+
+    @OperLog(operModul = "党委管理", operType = 2)
+    @ApiOperation(value = "编辑党委")
+    @PutMapping("updatepartycommittee")
+    public R updatePartyCommittee(@RequestBody @Validated(AddGroup.class) PartyCommitteeVO partyCommitteeVO) {
+        Long id = partyCommitteeVO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("主键不能为空");
+        }
+        Long communityId = this.getCommunityId();
+        partyCommitteeVO.setCommunityId(communityId);
+        return partyBuildingWestService.updatePartyCommittee(partyCommitteeVO);
+    }
+
+    @OperLog(operModul = "党委管理", operType = 3)
+    @ApiOperation(value = "删除党委")
+    @DeleteMapping("deletepartycommittee")
+    public R deletePartyCommittee(@RequestBody PartyCommitteeVO partyCommitteeVO) {
+        Long id = partyCommitteeVO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("主键不能为空");
+        }
+        Long communityId = this.getCommunityId();
+        partyCommitteeVO.setCommunityId(communityId);
+        return partyBuildingWestService.deletePartyCommittee(partyCommitteeVO);
+    }
+
+    @ApiOperation(value = "分页党委查询", response = PartyCommitteeVO.class)
+    @PostMapping("pagepartycommittee")
+    public R pagePartyCommittee(@RequestBody PartyCommitteeVO partyCommitteeVO) {
+        Long communityId = this.getCommunityId();
+        partyCommitteeVO.setCommunityId(communityId);
+        return partyBuildingWestService.pagePartyCommittee(partyCommitteeVO);
+    }
+
+    @ApiOperation(value = "新建动态/政策文件")
+    @PostMapping("adddynamic")
+    public R adddYnamic(@RequestBody PartyBuildingComPbDynVO partyCommitteeVO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        partyCommitteeVO.setCreateBy(loginUserInfo.getUserId());
+        partyCommitteeVO.setCommunityId(loginUserInfo.getCommunityId());
+        Date publishAt = partyCommitteeVO.getPublishAt();
+        if (null == publishAt) {
+            publishAt = new Date();
+            partyCommitteeVO.setPublishAt(publishAt);
+        }
+        long time = publishAt.getTime();
+        long l = System.currentTimeMillis();
+        if (l >= time) {
+            partyCommitteeVO.setStatus(2);
+        }
+        return partyBuildingWestService.adddYnamic(partyCommitteeVO);
+    }
+
+    @ApiOperation(value = "编辑动态/政策文件")
+    @PutMapping("updatedynamic")
+    public R updateYnamic(@RequestBody PartyBuildingComPbDynVO partyCommitteeVO) {
+        Long id = partyCommitteeVO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("动态主键不能为空");
+        }
+        return partyBuildingWestService.updateYnamic(partyCommitteeVO);
+    }
+
+    @ApiOperation(value = "动态/政策文件详情", response = PartyBuildingComPbDynVO.class)
+    @GetMapping("infodynamic")
+    public R infoYnamic(@RequestParam("id") Long id) {
+        return partyBuildingWestService.infoYnamic(id);
+    }
+
+    @ApiOperation(value = "分页查询党员动态/政策文件", response = PartyCommitteeVO.class)
+    @PostMapping("pagedynamic")
+    public R pageYnamic(@RequestBody PartyBuildingComPbDynVO partyBuildingComPbDynVO) {
+        Integer type = partyBuildingComPbDynVO.getType();
+        if (null == type || 0 == type) {
+            return R.fail("类型不能为空");
+        }
+        Long communityId = this.getCommunityId();
+        partyBuildingComPbDynVO.setCommunityId(communityId);
+        return partyBuildingWestService.pageYnamic(partyBuildingComPbDynVO);
+    }
+
+    @ApiOperation(value = "删除动态/政策文件")
+    @DeleteMapping("deletedynamic")
+    public R deleteYnamic(@RequestBody PartyBuildingComPbDynVO partyBuildingComPbDynVO) {
+        Long id = partyBuildingComPbDynVO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("动态主键不能为空");
+        }
+        return partyBuildingWestService.deleteYnamic(id);
+    }
+
+    @OperLog(operModul = "党员管理", operType = 3)
+    @ApiOperation(value = "删除党员")
+    @DeleteMapping("deletepartybuildingmember")
+    public R deleteDynUser(@RequestBody PartyBuildingMemberVO partyBuildingMemberVO) {
+        Long id = partyBuildingMemberVO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("党员主键不能为空");
+        }
+        return partyBuildingWestService.deleteDynUser(id);
+    }
+
+    @ApiOperation(value = "新增服务团队人员")
+    @PostMapping("serviceteam")
+    public R addServiceTeam(@RequestBody @Validated(AddGroup.class) ComPbServiceTeamDTO comPbServiceTeamDTO) {
+        comPbServiceTeamDTO.setCommunityId(this.getCommunityId());
+        return partyBuildingWestService.addServiceTeam(comPbServiceTeamDTO);
+    }
+
+    @ApiOperation(value = "编辑服务团队人员")
+    @PutMapping("serviceteam")
+    public R putServiceTeam(@RequestBody ComPbServiceTeamDTO comPbServiceTeamDTO) {
+        Long id = comPbServiceTeamDTO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("主键不能为空");
+        }
+        comPbServiceTeamDTO.setCommunityId(null);
+        return partyBuildingWestService.putServiceTeam(comPbServiceTeamDTO);
+    }
+
+    @ApiOperation(value = "删除服务团队人员")
+    @DeleteMapping("serviceteam")
+    public R deleteServiceTeam(@RequestBody ComPbServiceTeamDTO comPbServiceTeamDTO) {
+        Long id = comPbServiceTeamDTO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("主键不能为空");
+        }
+        return partyBuildingWestService.deleteServiceTeam(comPbServiceTeamDTO);
+    }
+
+    @ApiOperation(value = "分页查询服务团队成员", response = ComPbServiceTeamVO.class)
+    @PostMapping("pageserviceteam")
+    public R pageServiceTeam(@RequestBody PageComPbServiceTeamDTO pageComPbServiceTeamDTO) {
+        if(nonNull(this.getLoginUserInfo().getStreetId())) {
+            pageComPbServiceTeamDTO.setStreetId(this.getLoginUserInfo().getStreetId());
+        } else {
+            pageComPbServiceTeamDTO.setCommunityId(this.getCommunityId());
+        }
+        return partyBuildingWestService.pageServiceTeam(pageComPbServiceTeamDTO);
+    }
+
+    @ApiOperation(value = "留言-删除")
+    @DeleteMapping("deletemessage")
+    public R deleteMessage(@RequestBody ComActMessageVO comActMessageVO) {
+        return communityWestService.deleteMessage(comActMessageVO);
+    }
+
+    @ApiOperation(value = "批量设置留言(公开1,保密2)")
+    @DeleteMapping("resetmessagepublic")
+    public R resetMessagePublic(@RequestBody ResetComActMessageVO resetComActMessageVO) {
+        return communityWestService.resetMessagePublic(resetComActMessageVO);
+    }
+
+    @ApiOperation(value = "分页显示社区所有的留言", response = ComActMessageVO.class)
+    @PostMapping("pagemycommunitymessage")
+    public R pageMyCommunityMessage(@RequestBody ComActMessageVO comActMessageVO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long communityId = loginUserInfo.getCommunityId();
+        if (null == communityId || 0 == communityId) {
+            return R.fail("用户未绑定社区");
+        }
+        comActMessageVO.setCommunityId(communityId);
+        comActMessageVO.setUserId(loginUserInfo.getUserId());
+        return communityWestService.pageMyCommunityMessage(comActMessageVO);
+    }
+
+    @ApiOperation(value = "待认证党员分页查询", response = PartyBuildingMemberVO.class)
+    @PostMapping("pageprepartybuildingmember")
+    public R pagePrePartybuildingmember(@RequestBody PagePartyBuildingMemberVO pagePartyBuildingMemberVO) {
+        // 待认证党员分页查询
+        Long communityId = this.getCommunityId();
+        if (communityId != null) {
+            pagePartyBuildingMemberVO.setCommunityId(communityId);
+        }
+        return partyBuildingWestService.pagePrePartybuildingmember(pagePartyBuildingMemberVO);
+    }
+
+    @ApiOperation(value = "待认证党员审核")
+    @PostMapping("reviewprepartybuildingmember")
+    public R reviewPrePartybuildingmember(@RequestBody PartyBuildingMemberDTO partyBuildingMemberDTO) {
+        // 待认证党员审核
+        PartyBuildingMemberVO partyBuildingMemberVO = new PartyBuildingMemberVO();
+        partyBuildingMemberVO.setId(partyBuildingMemberDTO.getId());
+        /**
+         * 0 待审核 1 已审核 2 自动认证 3 已驳回
+         */
+        switch (partyBuildingMemberDTO.getType()) {
+            case 1:
+                partyBuildingMemberVO.setAuditResult(1);
+                break;
+            case 0:
+                partyBuildingMemberVO.setAuditResult(3);
+                partyBuildingMemberVO.setRefuseReason(partyBuildingMemberDTO.getRefuseReason());
+                break;
+            default:
+                return R.fail("参数错误");
+        }
+
+        R updated = partyBuildingWestService.updatePartyBuildingMember(partyBuildingMemberVO);
+
+        if (R.isOk(updated)) {
+            // 审核通过: 修改用户的党员状态
+            PartyBuildingMemberVO vo1 =
+                    JSONObject.parseObject(JSONObject.toJSONString(updated.getData()), PartyBuildingMemberVO.class);
+            //金沙社区特殊需求 添加党员默认添加志愿者
+            if(vo1.getCommunityId()==2){
+                ComMngVolunteerMngVO comMngVolunteerMngVO=new ComMngVolunteerMngVO();
+                comMngVolunteerMngVO.setOrgId(53L);
+                comMngVolunteerMngVO.setName(vo1.getName());
+                comMngVolunteerMngVO.setPhone(vo1.getPhone());
+                comMngVolunteerMngVO.setIdCard(vo1.getIdCard());
+                comMngVolunteerMngVO.setState(2);
+                comMngVolunteerMngVO.setCommunityId(2L);
+                R r = communityWestService.addVolunteer(comMngVolunteerMngVO);
+                // 支援者添加成功,修改小程序用户的志愿者状态    ,通过手机号
+                if (R.isOk(r)) {
+                    String phone = comMngVolunteerMngVO.getPhone();
+                    R r1 = userService.putUserIsVolunteer(phone, 1);
+                    if (R.isOk(r1)) {
+                        log.info("修改手机号【{}】的支援者状态为是", phone);
+                    } else {
+                        log.info("手机号【{}】没有小程序用户", phone);
+                    }
+                }
+            }
+            Long userId = vo1.getUserId();
+            Long memId = partyBuildingMemberVO.getId();
+            String userIdcard = vo1.getIdCard();
+            if ((1 == partyBuildingMemberVO.getAuditResult()) && R.isOk(updated)) {
+                R r = userService.updateUserIsPartymember(userIdcard);
+                if (R.isOk(r)) {
+                    SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO();
+                    sysUserNoticeVO.setUserId(userId);
+                    sysUserNoticeVO.setType(3);
+                    sysUserNoticeVO.setTitle("党员认证申请审核通过");
+                    sysUserNoticeVO.setBusinessType(11);
+                    sysUserNoticeVO.setBusinessTitle(" ");
+                    sysUserNoticeVO.setBusinessContent("你提交的党员认证申请已被审核通过");
+                    sysUserNoticeVO.setBusinessId(memId);
+                    sysUserNoticeVO.setStatus(0);
+                    sysUserNoticeVO.setBusinessStatus(2);
+                    R r1 = userService.addNotice(sysUserNoticeVO);
+                    if (R.isOk(r1)) {
+                        log.info("新增党员认证已被审核通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+                    }
+                }
+
+                R r1 = userService.getUserOpenId(userId);
+                if (R.isOk(r1)) {
+                    String openid = r1.getData().toString();
+                    R<SysTemplateConfigVO> sysTemplateConfigVO=userService.selectTemplate(this.getAreaCode(),5);
+                    WxXCXTempSend util = new WxXCXTempSend();
+                    try {
+                        WxUtil.sendSubscribeRZSH(openid, util.getAccessToken(), "党员认证",
+                                DateUtils.format(vo1.getCreateAt(), DateUtils.ymdhms_format), "审核通过",sysTemplateConfigVO.getData().getTemplateId());
+                    } catch (Exception e) {
+                        log.error("消息推送失败,失败原因:" + e.getMessage());
+                    }
+                }
+                return r;
+            } else if (3 == partyBuildingMemberVO.getAuditResult() && R.isOk(updated)) {
+                R r = userService.updateUserNotPartymember(userIdcard);
+                if (R.isOk(r)) {
+                    SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO();
+                    sysUserNoticeVO.setUserId(userId);
+                    sysUserNoticeVO.setType(3);
+                    sysUserNoticeVO.setTitle("党员认证申请未通过");
+                    sysUserNoticeVO.setBusinessType(11);
+                    sysUserNoticeVO.setBusinessTitle(" ");
+                    sysUserNoticeVO.setBusinessContent("驳回原因:" + partyBuildingMemberVO.getRefuseReason());
+                    sysUserNoticeVO.setBusinessId(memId);
+                    sysUserNoticeVO.setStatus(0);
+                    sysUserNoticeVO.setBusinessStatus(1);
+                    R r1 = userService.addNotice(sysUserNoticeVO);
+                    if (R.isOk(r1)) {
+                        log.info("新增党员认证已被审核通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+                    }
+
+                    R r2 = userService.getUserOpenId(userId);
+                    if (R.isOk(r2)) {
+                        String openid = r2.getData().toString();
+                        R<SysTemplateConfigVO> sysTemplateConfigVO=userService.selectTemplate(this.getAreaCode(),5);
+                        WxXCXTempSend util = new WxXCXTempSend();
+                        try {
+                            WxUtil.sendSubscribeRZSH(openid, util.getAccessToken(), "党员认证",
+                                    DateUtils.format(vo1.getCreateAt(), DateUtils.ymdhms_format),
+                                    "审核驳回,驳回原因:" + partyBuildingMemberVO.getRefuseReason(),sysTemplateConfigVO.getData().getTemplateId());
+                        } catch (Exception e) {
+                            log.error("消息推送失败,失败原因:" + e.getMessage());
+                        }
+                    }
+                }
+                return r;
+            }
+        }
+        return updated;
+    }
+
+    @ApiOperation(value = "删除认证党员审核")
+    @PostMapping("/deleteprepartybuildingmember")
+    public R deleteprepartybuildingmember(@RequestParam("id") Long id) {
+        return partyBuildingWestService.deleteprepartybuildingmember(id);
+    }
+
+    @ApiOperation(value = "党员信息导出Excel")
+    @PostMapping("/member/export")
+    public R exportPbMember(@RequestBody PagePartyOrganizationVO organizationVO) {
+        organizationVO.setCommunityId(this.getCommunityId());
+        String url = userurl;
+        String name = "党员信息数据.xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+        // 用户搜索了就下载搜索的用户否则下载所有用户
+        R r = partyBuildingWestService.exportPartyMember(organizationVO);
+        if (R.isOk(r)) {
+            List<ComPbMemberExcelVO> eexcelUserDTOS =
+                    JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComPbMemberExcelVO.class);
+            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, ComPbMemberExcelVO.class)
+                                .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                                .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet("党员信息数据导出").build();
+                        excelWriter.write(eexcelUserDTOS, 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(url + name);
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error("文件传输失败【{}】", e.getMessage());
+                return R.fail();
+            }
+        }
+        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) {
+        String property = System.getProperty("user.dir");
+        String fileExtension = ".jpg";
+
+        List<UploadFilesVO> urlList = new ArrayList<>();
+        SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+        sftp.login();
+
+        for (MultipartFile file : files) {
+            String originName = file.getOriginalFilename();
+            AtomicBoolean isVideo = new AtomicBoolean(false);
+            videoExtensionAllow.forEach(ext -> {
+                String originNameLowerCase = originName.toLowerCase();
+                if (originNameLowerCase.endsWith("." + ext)) {
+                    isVideo.set(true);
+                }
+            });
+            if (isVideo.get()) {
+                fileExtension = ".mp4";
+            }
+
+            if (originName.toLowerCase().endsWith(".mp3")) {
+                fileExtension = ".mp3";
+            }
+
+            String name = UUID.randomUUID().toString().replaceAll("-", "") + fileExtension;
+            try {
+                InputStream is = file.getInputStream();
+                String fileName =
+                        property + File.separator + UUID.randomUUID().toString().replace("-", "") + fileExtension;
+                File file1 = new File(fileName);
+                file.transferTo(file1);
+                sftp.uploadMore(FtpConstants.FTPFILEPATH_IDCARD, name, is);
+                UploadFilesVO fileVO = new UploadFilesVO();
+                fileVO.setUrl(url + "idcard/" + name);
+                urlList.add(fileVO);
+                boolean delete = file1.delete();
+                log.info("临时文件删除【{}】", delete);
+            } catch (Exception e) {
+                log.error("上传文件失败【{}】", e.getMessage());
+                return R.fail();
+            }
+        }
+        sftp.logout();
+        return R.ok(urlList);
+    }
+
+    @ApiOperation(value = "新批量上传照片")
+    @PostMapping(value = "/uploadimagess", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R uploadImagess(@RequestParam MultipartFile[] files, HttpServletRequest request) {
+        List<UploadFilesVO> urlList = new ArrayList<>();
+        for (MultipartFile file : files) {
+            try {
+                assertAllowed(file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION);
+                String extension = FilenameUtils.getExtension(file.getOriginalFilename());
+                String name = UUID.randomUUID().toString().replaceAll("-", "") + "." + extension;
+                String imageUrl = minioUtil.upload(file, name);
+                UploadFilesVO fileVO = new UploadFilesVO();
+                fileVO.setUrl(imageUrl);
+                return R.ok(imageUrl);
+            } catch (Exception e) {
+                log.error("上传照片失败【{}】", e.getMessage());
+                return R.fail();
+            }
+        }
+        return R.ok(urlList);
+    }
+
+
+    @ApiOperation(value = "党员数据统计-分页查询党员数据",response = ComDataStatisticsMemberVo.class)
+    @PostMapping("/dataStatistics/member/page")
+    public R pageDataStatisticsMember(@RequestBody PageComDataStatisticsMemberDto statisticsMemberDto) {
+        statisticsMemberDto.setCommunityId(this.getCommunityId());
+        return partyBuildingWestService.pageDataStatisticsMember(statisticsMemberDto);
+    }
+
+    @ApiOperation(value = "党员数据统计-根据党组织统计数据",response = ComDataStatisticsOrgVo.class)
+    @PostMapping("/dataStatistics/org")
+    public R getOrgDataStatistics(@RequestBody ComDataStatisticsOrgDto statisticsOrgDto) {
+        statisticsOrgDto.setCommunityId(this.getCommunityId());
+        return partyBuildingWestService.getOrgDataStatistics(statisticsOrgDto);
+    }
+
+    @ApiOperation(value = "党支部表头数据统计",response = ComDataStatisticsHeaderOrgVo.class)
+    @GetMapping("/dataStatistics/header/org")
+    public R getHeaderOrgDataStatistics() {
+        return partyBuildingWestService.getHeaderOrgDataStatistics(this.getCommunityId());
+    }
+
+    @ApiOperation(value = "党员数据统计-导出党员数据")
+    @PostMapping("/dataStatistics/member/export")
+    public R exportDataStatisticsMember(@RequestBody PageComDataStatisticsMemberDto statisticsMemberDto) {
+        statisticsMemberDto.setCommunityId(this.getCommunityId());
+        String url = sftpConfig.getExcelUrl();
+        String name = "党员数据统计-党员导出数据.xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+        R r = partyBuildingWestService.exportDataStatisticsMember(statisticsMemberDto);
+        if (R.isOk(r)) {
+            List<ComDataStatisticsMemberExcelVo> resultList = JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComDataStatisticsMemberExcelVo.class);
+            try {
+                SFTPUtil sftp = new SFTPUtil(sftpConfig.getUserName(), sftpConfig.getPassword(), sftpConfig.getHost(), sftpConfig.getPort());
+                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, ComDataStatisticsMemberExcelVo.class)
+                                .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                                .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet("党员导出数据").build();
+                        excelWriter.write(resultList, 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(url + name);
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error("文件传输失败【{}】", e.getMessage());
+                return R.fail();
+            }
+        }
+        return r;
+    }
+
+//    @ApiOperation(value = "批量新增党委导入excel")
+//    @PostMapping(value = "/importPbMemberRole", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+//    public R importPbMemberRole(@RequestParam MultipartFile file, HttpServletRequest request) {
+//        log.info("传入文件名字【{}】", file.getOriginalFilename());
+//        InputStream inputStream = null;
+//        try {
+//            inputStream = file.getInputStream();
+//            EasyExcel.read(inputStream, null,
+//                    new ComPbMemberRoleExcelListen(partyBuildingWestService,this.getCommunityId(),this.getUserId(),stringRedisTemplate)).sheet().doRead();
+//        } catch (IOException e) {
+//            e.printStackTrace();
+//            log.error("导入模板失败【{}】", e.getMessage());
+//        }
+//        return R.ok();
+//    }
+
+    @ApiOperation(value = "下载导入失败党委数据")
+    @GetMapping("/download/error/pbMemberRole")
+    public R downloadErrorPbMemberRole(@RequestParam(value = "key") String key) {
+        List<ComPbMemberRoleErrorExcelVo> 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, ComPbMemberRoleErrorExcelVo.class);
+        }
+        String ftpUrl = "/mnt/data/web/excel/";
+        String nowDate = DateUtils.getCurrentDateString();
+        String name = "党委导入错误数据" + nowDate + ".xlsx";
+        try {
+            SFTPUtil sftp = new SFTPUtil(sftpConfig.getUserName(), sftpConfig.getPassword(), sftpConfig.getHost(), sftpConfig.getPort());
+            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, ComPbMemberRoleErrorExcelVo.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(sftpConfig.getExcelUrl() + name);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    @ApiOperation(value = "社区党委-下载导入模板")
+    @GetMapping("/export/pbMemberRole")
+    public R exportElder() {
+        return R.ok(sftpConfig.getExcelUrl() + "社区党委导入模板.xlsx");
+    }
+
+    @ApiOperation("查询是否党员")
+    @GetMapping("/checkMember")
+    public R checkMember(@RequestParam("idCard")String idCard){
+        return partyBuildingWestService.checkMember(idCard);
+    }
+}
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
new file mode 100644
index 0000000..4ae96fa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/CommunityQuestnaireApi.java
@@ -0,0 +1,312 @@
+package com.panzhihua.community_backstage.api;
+
+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.AssemblyUtils;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.StringUtils;
+import org.springframework.web.bind.annotation.*;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.metadata.style.WriteCellStyle;
+import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.panzhihua.common.controller.BaseController;
+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.QuestnaireAnswersDTO;
+import com.panzhihua.common.model.dtos.community.questnaire.StatisticsSummaryDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActQuestnaireAnswerContentVO;
+import com.panzhihua.common.model.vos.community.ComActQuestnaireSubVO;
+import com.panzhihua.common.model.vos.community.ComCvtBusinessVO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationExcelVo;
+import com.panzhihua.common.model.vos.community.questnaire.*;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.SFTPUtil;
+import com.panzhihua.community_backstage.config.SFTPConfig;
+import com.panzhihua.community_backstage.excel.CustomSheetWriteHandler;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @description: 社区通/调查问卷接口
+ * @author: cedoo
+ * @date: 2021-4-8
+ */
+@Slf4j
+@Api(tags = {"社区通/调查问卷"})
+@RestController
+@RequestMapping("/questnaire")
+public class CommunityQuestnaireApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private UserService userService;
+    @Resource
+    private SFTPConfig sftpConfig;
+
+    @ApiOperation(value = "分页查询调查问卷-lyq", response = QuestnaireListVo.class)
+    @PostMapping("/page")
+    public R page(@RequestBody PageQuestnaireDTO pageQuestnaireDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        pageQuestnaireDTO.setCommunityId(loginUserInfo.getCommunityId());
+        return communityService.pageQuestnaireAdmin(pageQuestnaireDTO);
+    }
+
+    @ApiOperation(value = "创建调查问卷-lyq")
+    @PostMapping("/add")
+    public R add(@RequestBody QuestnaireVO questnaireVO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        questnaireVO.setCommunityId(loginUserInfo.getCommunityId());
+        questnaireVO.setUserId(loginUserInfo.getUserId());
+        return communityService.addQuestnaire(questnaireVO);
+    }
+
+    @ApiOperation(value = "继续调研/停止调研-lyq")
+    @PostMapping("/toggle")
+    public R toggle(@RequestBody EditComActQuestnaireVo editComActQuestnaireVo) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        editComActQuestnaireVo.setUserId(loginUserInfo.getUserId());
+        return communityService.editQuestnaireDO(editComActQuestnaireVo);
+    }
+
+    @ApiOperation(value = "删除问卷-lyq")
+    @GetMapping("/delete")
+    public R delete(@RequestParam("questId") Long questId) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        return communityService.editQuestnaireDO(questId, loginUserInfo.getUserId());
+    }
+
+    @ApiOperation(value = "查看详细-问卷详细-lyq", response = QuestnaireDetailAdminVO.class)
+    @GetMapping("/view")
+    public R viewQuestnaire(@RequestParam("questId") Long questId) {
+        return communityService.QuesDetail(questId);
+    }
+
+    @ApiOperation(value = "查看详细-调查结果", response = QuestnaireAnswerStatVO.class)
+    @GetMapping("/stat")
+    public R stat(@RequestParam("questId") Long questId) {
+        return communityService.statistics(questId);
+    }
+
+    @ApiOperation(value = "查看详细-调查结果-查看详细信息", response = ComActQuestnaireAnswerContentVO.class)
+    @PostMapping("/stat/details")
+    public R statDetails(@RequestBody PageQuestnaireSubDetailsDTO pageQuestnaireSubDetailsDTO) {
+        // 问卷调查
+        return communityService.qaQeustAnswerDetails(pageQuestnaireSubDetailsDTO);
+    }
+
+    @ApiOperation(value = "答卷情况-分页", response = ComActQuestnaireAnswerContentVO.class)
+    @PostMapping("/answer/page")
+    public R pageAnswer(@RequestBody PageQuestnaireAnswerDTO pageQuestnaireAnswerDTO) {
+        // 问卷调查回答 用户分页数据
+        return communityService.pageQuestnaireAnswer(pageQuestnaireAnswerDTO);
+    }
+
+    @ApiOperation(value = "查看问卷答卷详细", response = UsersAnswerVO.class)
+    @GetMapping("/answer/detail")
+    public R answerDetail(@RequestParam("questId") Long questId, @RequestParam("userId") Long userId) {
+        return communityService.answerInfoQuestnaire(userId, questId);
+    }
+
+    @ApiOperation(value = "编辑问卷-lyq")
+    @PostMapping("/edit")
+    public R editQuestnaire(@RequestBody QuestnaireVO questnaireVO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        questnaireVO.setUserId(loginUserInfo.getUserId());
+        return communityService.editQuestnaire(questnaireVO);
+    }
+
+    @ApiOperation(value = "导出数据-lyq", response = ComCvtBusinessVO.class)
+    @GetMapping("/export")
+    public R export(@RequestParam("questId") Long questId) {
+        // 获取登陆用户
+        // LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        // 获取登陆用户绑定社区id
+        // Long communityId = loginUserInfo.getCommunityId();
+        // 生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址
+        String ftpUrl = "/mnt/data/web/excel/";
+        String fileNameBottom = new SimpleDateFormat("yyyyMMddhhmmss").format(new Date());
+        String name = "问卷调查答题情况-" + fileNameBottom + ".xlsx";
+        try {
+            SFTPUtil sftp = new SFTPUtil(sftpConfig.getUserName(), sftpConfig.getPassword(), sftpConfig.getHost(),
+                sftpConfig.getPort());
+            sftp.login();
+            boolean existDir = sftp.isExistDir(ftpUrl + name);
+            if (!existDir) {
+                String property = System.getProperty("user.dir");
+                String fileName = property + File.separator + name;
+                ExcelWriter excelWriter = null;
+                InputStream inputStream = null;
+                try {
+                    /**
+                     * 组合导出数据 用户问卷答案
+                     */
+                    R QuestnaireAnswersDTOR = communityService.answerResultList(questId);
+                    QuestnaireAnswersDTO questnaireAnswersDTOS = JSON
+                        .parseObject(JSON.toJSONString(QuestnaireAnswersDTOR.getData()), QuestnaireAnswersDTO.class);
+
+                    List<ComActQuestnaireSubVO> subVOList = questnaireAnswersDTOS.getSubs();
+                    // 构造表头
+                    List<List<String>> headList = new ArrayList<List<String>>();
+                    String firstRowContent = "调查结果";
+                    List<String> head0 = new ArrayList<>();
+                    head0.add(firstRowContent);
+                    head0.add("调查人昵称");
+                    headList.add(head0);
+                    List<String> head1 = new ArrayList<>();
+                    head1.add(firstRowContent);
+                    head1.add("提交时间");
+                    headList.add(head1);
+                    subVOList.forEach(sub -> {
+                        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());
+                        }
+                        headList.add(headn);
+                    });
+                    List<List<Object>> datalist = AssemblyUtils.ReserveData(questnaireAnswersDTOS.getAnswers());
+
+                    WriteCellStyle headWriteCellStyle = new WriteCellStyle();
+                    WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
+
+                    contentWriteCellStyle.setWrapped(true);
+                    HorizontalCellStyleStrategy horizontalCellStyleStrategy =
+                        new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
+                    LongestMatchColumnWidthStyleStrategy longestMatchColumnWidthStyleStrategy =
+                        new LongestMatchColumnWidthStyleStrategy();
+
+                    excelWriter = EasyExcel.write(fileName, ComMngPopulationExcelVo.class)
+                        .registerWriteHandler(horizontalCellStyleStrategy)
+                        .registerWriteHandler(longestMatchColumnWidthStyleStrategy)
+                        .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                    WriteSheet writeSheet = EasyExcel.writerSheet("问卷调查答题导出数据").head(headList).build();
+                    excelWriter.write(datalist, 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(sftpConfig.getExcelUrl() + name);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    @ApiOperation(value = "问卷调查统计汇总-lyq", response = QuestnaireStatisticsSummaryAdminVO.class)
+    @PostMapping("/statistics/summary")
+    public R statisticsSummary(@RequestBody StatisticsSummaryDTO summaryDTO) {
+        return communityService.statisticsSummary(summaryDTO);
+    }
+
+    @ApiOperation(value = "问卷调查统计汇总导出-lyq", response = QuestnaireStatisticsSummaryAdminVO.class)
+    @GetMapping("/statistics/summary/export")
+    public R statisticsSummaryExport(@RequestParam("questId") Long questId) {
+        String url = sftpConfig.getExcelUrl();
+        // String uuid= UUID.randomUUID().toString().replace("-","");
+        String name = "问卷调查统计汇总导出数据.xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+        // 用户搜索了就下载搜索的用户否则下载所有用户
+        R r = communityService.statisticsSummaryExport(questId);
+        if (R.isOk(r)) {
+            List<QuestnaireStatisticsSummaryExcelAdminVO> eexcelUserDTOS = JSONArray
+                .parseArray(JSONArray.toJSONString(r.getData()), QuestnaireStatisticsSummaryExcelAdminVO.class);
+            try {
+                SFTPUtil sftp = new SFTPUtil(sftpConfig.getUserName(), sftpConfig.getPassword(), sftpConfig.getHost(),
+                    sftpConfig.getPort());
+                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, QuestnaireStatisticsSummaryExcelAdminVO.class)
+                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet("问卷调查统计汇总导出数据").build();
+                        excelWriter.write(eexcelUserDTOS, 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(url + name);
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error("文件传输失败【{}】", e.getMessage());
+                return R.fail();
+            }
+        }
+        return R.fail("未查询到用户");
+    }
+
+    @ApiOperation(value = "问卷调查统计汇总表头统计-lyq", response = QuestnaireStatisticsSummaryHeaderAdminVO.class)
+    @GetMapping("/statistics/summary/header")
+    public R statisticsSummaryHeader(@RequestParam("questId") Long questId) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        return communityService.statisticsSummaryHeader(questId, loginUserInfo.getCommunityId());
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/DictionaryApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/DictionaryApi.java
new file mode 100644
index 0000000..4816945
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/DictionaryApi.java
@@ -0,0 +1,93 @@
+package com.panzhihua.community_backstage.api;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.model.vos.BcDictionaryItemVO;
+import com.panzhihua.common.model.vos.BcDictionaryVO;
+import com.panzhihua.common.model.vos.DictionaryVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.community.CommunityService;
+
+import lombok.extern.slf4j.Slf4j;
+import springfox.documentation.annotations.ApiIgnore;
+
+/**
+ * 字典
+ *
+ * @author manailin
+ * @date 2021/8/4 17:00
+ */
+@Slf4j
+@RestController
+@RequestMapping("/dictionary")
+public class DictionaryApi {
+
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 插入字典
+     *
+     * @param dictionaryVO
+     *            字典数据
+     * @return Boolean 是否保存成功
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @PostMapping("/insertDiction")
+    R insertDiction(@RequestBody @Valid DictionaryVO dictionaryVO, @ApiIgnore BindingResult results) {
+        if (results.hasErrors()) {
+            return R.fail(results.getFieldError().getDefaultMessage());
+        }
+        return communityService.insertDiction(dictionaryVO);
+    }
+
+    /**
+     * 插入字典项
+     *
+     * @param dictionaryVO
+     *            字典数据
+     * @return Boolean 是否保存成功
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @PostMapping("/insertDictionItem")
+    R insertDictionItem(@RequestBody @Valid BcDictionaryVO dictionaryVO, @ApiIgnore BindingResult results) {
+        if (results.hasErrors()) {
+            return R.fail(results.getFieldError().getDefaultMessage());
+        }
+        return communityService.insertDictionItem(dictionaryVO);
+    }
+
+    /**
+     * 根据字典key查询自典项
+     *
+     * @param key
+     * @return
+     */
+    @GetMapping("/listDictionaryByKey")
+    R<List<BcDictionaryVO>> listDictionaryByKey(@RequestParam("key") String key) {
+
+        return communityService.listDictionaryByKey(key);
+    }
+
+    /**
+     * description 根据字典code查询自典项
+     *
+     * @param code
+     *            入参参数
+     * @return BcDictionaryVO 字典
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @GetMapping("/getByCode")
+    BcDictionaryItemVO getByCode(@RequestParam("dictId") String dictId, @RequestParam("code") String code) {
+        return communityService.getByCode(dictId, code);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/DisablePersonApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/DisablePersonApi.java
new file mode 100644
index 0000000..7121f96
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/DisablePersonApi.java
@@ -0,0 +1,89 @@
+package com.panzhihua.community_backstage.api;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Collections;
+import java.util.List;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import com.alibaba.excel.EasyExcel;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.DisabledPersonsDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.ExcelSelectObject;
+import com.panzhihua.common.utlis.ExcelUtil;
+import com.panzhihua.community_backstage.biz.KeyPersonBizServiceImpl;
+import com.panzhihua.community_backstage.listen.DisablePersonExcelListen;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * program 攀枝花智慧社区项目 description 残疾人群管理API
+ *
+ * @author manailin Date 2021-01-22 15:30
+ **/
+@Slf4j
+@Api(tags = {"残疾人群管理API"})
+@RestController
+@RequestMapping("/")
+public class DisablePersonApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @Resource
+    private KeyPersonBizServiceImpl keyPersonBizService;
+
+    /**
+     * description 批量保存重点人群人员信息
+     *
+     * @param file
+     *            重点人群信息
+     * @return R 保存结果
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @PostMapping(value = "diabled_person/import", consumes = "multipart/*",
+        headers = "content-type=multipart/form-date")
+    public R importExcl(@RequestParam MultipartFile file, HttpServletRequest request) {
+        // 获取文件名
+        String fileName = file.getOriginalFilename();
+        log.info("传入文件名字【{}】", fileName);
+        try {
+            InputStream inputStream = file.getInputStream();
+            LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+            EasyExcel.read(inputStream, DisabledPersonsDTO.class,
+                new DisablePersonExcelListen(communityService, loginUserInfo)).sheet().doRead();
+        } catch (IOException e) {
+            e.printStackTrace();
+            log.error("导入模板失败【{}】", e.getMessage());
+        }
+        return R.ok();
+    }
+
+    /**
+     * description exportUser 导出用于导入的模板EXCEL
+     *
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @ApiOperation(value = "导出用于导入的模板EXCEL", notes = "导出用于导入的模板EXCEL")
+    @GetMapping("diabled_person/export/model")
+    public void exportUser(HttpServletResponse response) throws IOException {
+        List<ExcelSelectObject> selectListObject = keyPersonBizService.defineDisableUserExcelModelData();
+        // 导出操作
+        ExcelUtil.exportExcelForSelectList(Collections.emptyList(), "残疾人员信息导入模版", "残疾人员信息导入模版",
+            DisabledPersonsDTO.class, "残疾人员信息导入模版.xls", selectListObject, response);
+    }
+
+}
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
new file mode 100644
index 0000000..3e0cf7d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/DiscussApi.java
@@ -0,0 +1,226 @@
+package com.panzhihua.community_backstage.api;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+
+import org.springframework.util.ObjectUtils;
+import org.springframework.util.StringUtils;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+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.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.ComActDiscussCommentDTO;
+import com.panzhihua.common.model.dtos.community.ComActDiscussDTO;
+import com.panzhihua.common.model.dtos.community.PageComActDiscussCommentDTO;
+import com.panzhihua.common.model.dtos.community.PageComActDiscussDTO;
+import com.panzhihua.common.model.dtos.community.PageVoteSituationDTO;
+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.ComActDiscussVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 议事投票
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-22 15:30
+ **/
+@Slf4j
+@Api(tags = {"议事投票"})
+@RestController
+@RequestMapping("/")
+public class DiscussApi extends BaseController {
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "议事投票-新增-")
+    @PostMapping("discuss")
+    public R addDiscuss(@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.addDiscuss(comActDiscussDTO);
+    }
+
+    @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 = "议事投票-详情-", 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("addDiscussComment")
+    public R addDiscussComment(@RequestBody ComActDiscussCommentDTO comActDiscussCommentDTO) {
+        String comment = comActDiscussCommentDTO.getComment();
+        if (ObjectUtils.isEmpty(comment)) {
+            return R.fail("回复不能为空");
+        }
+        Long discussId = comActDiscussCommentDTO.getDiscussId();
+        if (null == discussId || 0 == discussId) {
+            return R.fail("议事投票主键不能为空");
+        }
+        comActDiscussCommentDTO.setUserId(this.getUserId());
+        return communityService.addDiscussComment(comActDiscussCommentDTO);
+
+    }
+
+    @ApiOperation(value = "议事投票-分页查询-", response = ComActDiscussVO.class)
+    @PostMapping("pagediscuss")
+    public R pageDiscuss(@RequestBody PageComActDiscussDTO pageComActDiscussDTO) {
+        pageComActDiscussDTO.setCommunityId(this.getCommunityId());
+        return communityService.pageDiscussAdmin(pageComActDiscussDTO);
+    }
+
+    @ApiOperation(value = "投票情况-分页查询", response = ComActDiscussOptionUserVO.class)
+    @PostMapping("pageVoteSituation")
+    public R pageVoteSituation(@RequestBody @Valid PageVoteSituationDTO pageVoteSituationDTO) {
+        return communityService.pageVoteSituation(pageVoteSituationDTO);
+    }
+
+    @ApiOperation(value = "投票情况详情", response = ComActDiscussOptionUserVO.class)
+    @ApiImplicitParam(name = "optionUserId", value = "投票记录id", required = true)
+    @GetMapping("detailVoteSituation")
+    public R detailVoteSituation(@RequestParam("optionUserId") Long optionUserId) {
+        return communityService.detailVoteSituation(optionUserId);
+    }
+
+    @ApiOperation(value = "议事投票-评论详情", response = ComActDiscussCommentVO.class)
+    @GetMapping("discusscomment")
+    public R detailDiscussComment(@RequestParam("id") Long id) {
+        return communityService.detailDiscussComment(id);
+    }
+
+    @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 = "议事投票-评论-回复-")
+    @PostMapping("discusscommentback")
+    public R addDiscussCommentBack(@RequestBody ComActDiscussCommentDTO comActDiscussCommentDTO) {
+        String comment = comActDiscussCommentDTO.getComment();
+        if (ObjectUtils.isEmpty(comment)) {
+            return R.fail("回复不能为空");
+        }
+        Long id = comActDiscussCommentDTO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("评论主键不能为空");
+        }
+        comActDiscussCommentDTO.setUserId(this.getUserId());
+        return communityService.addDiscussCommentBack(comActDiscussCommentDTO);
+    }
+
+    @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 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/EasyPhotoActivityApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/EasyPhotoActivityApi.java
new file mode 100644
index 0000000..cfa2d6a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/EasyPhotoActivityApi.java
@@ -0,0 +1,67 @@
+package com.panzhihua.community_backstage.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.easyPhoto.AddEasyPhotoActivityDTO;
+import com.panzhihua.common.model.dtos.community.easyPhoto.EditEasyPhotoActivityDTO;
+import com.panzhihua.common.model.dtos.community.easyPhoto.PageEasyPhotoActivityDTO;
+import com.panzhihua.common.model.dtos.community.easyPhoto.PageEasyPhotoActivityUserDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActEasyPhotoActivityVO;
+import com.panzhihua.common.model.vos.community.easyPhoto.ComActEasyPhotoActivityUserVO;
+import com.panzhihua.common.service.community.CommunityService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+@Api(tags = {"随手拍活动模块"})
+@RestController
+@RequestMapping("/easy/photo/")
+public class EasyPhotoActivityApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "分页查询随手拍活动列表", response = ComActEasyPhotoActivityVO.class)
+    @PostMapping("/page")
+    public R page(@RequestBody PageEasyPhotoActivityDTO pageEasyPhotoActivityDTO) {
+        Long communityId = this.getCommunityId();
+        pageEasyPhotoActivityDTO.setCommunityId(communityId);
+        return communityService.pageEasyPhotoActivity(pageEasyPhotoActivityDTO);
+    }
+
+    @ApiOperation(value = "添加随手拍活动")
+    @PostMapping("/add")
+    public R add(@Validated @RequestBody AddEasyPhotoActivityDTO addEasyPhotoActivityDTO) {
+        Long communityId = this.getCommunityId();
+        addEasyPhotoActivityDTO.setCommunityId(communityId);
+        return communityService.addEasyPhotoActivity(addEasyPhotoActivityDTO);
+    }
+
+    @ApiOperation(value = "编辑随手拍活动")
+    @PostMapping("/edit")
+    public R edit(@RequestBody EditEasyPhotoActivityDTO editEasyPhotoActivityDTO) {
+        if (editEasyPhotoActivityDTO.getId() == null) {
+            return R.fail("参数错误");
+        }
+        return communityService.editEasyPhotoActivity(editEasyPhotoActivityDTO);
+    }
+
+    @ApiOperation(value = "取消随手拍活动")
+    @GetMapping("/cancel")
+    public R cancel(@RequestParam("id") Long id) {
+        return communityService.cancelEasyPhotoActivity(id);
+    }
+
+    @ApiOperation(value = "分页查询随手拍活动居民参与列表", response = ComActEasyPhotoActivityUserVO.class)
+    @PostMapping("/page/user")
+    public R pageUser(@RequestBody PageEasyPhotoActivityUserDTO pageEasyPhotoActivityUserDTO) {
+        return communityService.pageEasyPhotoActivityUser(pageEasyPhotoActivityUserDTO);
+    }
+}
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
new file mode 100644
index 0000000..fe9f3b7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/EldersAuthApi.java
@@ -0,0 +1,987 @@
+package com.panzhihua.community_backstage.api;
+
+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.*;
+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.*;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.metadata.style.WriteCellStyle;
+import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.alibaba.fastjson.JSONArray;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.R;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ */
+@Slf4j
+@RestController
+@RequestMapping("/eldersauth")
+@Api(tags = {"高龄认证"})
+public class EldersAuthApi extends BaseController {
+
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+    @Value("${ftp.url}")
+    private String url;
+    @Value("${excel.userurl}")
+    private String excelUrl;
+
+    @Resource
+    private CommunityService communityService;
+
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+
+    @Value("${excel.elderimporturl}")
+    private Object elderimporturl;
+
+    /**
+     * 新增高龄认证
+     * 
+     * @param {classNameFirstLower}AddDTO
+     *            添加高龄认证传递对象
+     * @return 新增结果
+     */
+    @PostMapping()
+    @ApiOperation(value = "新增高龄认证", response = R.class)
+    R add(@Validated @RequestBody EldersAuthAddDTO eldersAuthAddDTO) {
+        ClazzUtils.setIfStringIsEmpty(eldersAuthAddDTO);
+        eldersAuthAddDTO.setSumitUserId(getUserId());
+        return communityService.add(eldersAuthAddDTO);
+    }
+
+    /**
+     * 分页查找
+     * 
+     * @param pageEldersAuthDTO
+     *            查找高龄认证传递对象
+     * @return 查找结果
+     */
+    @PostMapping("page")
+    @ApiOperation(value = "查询高龄认证", response = EldersAuthVO.class)
+    R query(@Validated @RequestBody PageEldersAuthDTO pageEldersAuthDTO) {
+        ClazzUtils.setIfStringIsEmpty(pageEldersAuthDTO);
+        pageEldersAuthDTO.setCommunityId(this.getCommunityId());
+        return communityService.query(pageEldersAuthDTO);
+    }
+
+    /**
+     * 查询高龄认证详细信息
+     * 
+     * @param id
+     *            高龄认证 id
+     * @return 查找结果
+     */
+    @GetMapping("/{id}")
+    @ApiOperation(value = "查询高龄认证详细信息", response = EldersAuthDetailsVO.class)
+    R<EldersAuthDetailsVO> details(@PathVariable("id") Long id) {
+        return communityService.eldersAuthDetails(id);
+    }
+
+    /**
+     * 到处高龄认证信息
+     * 
+     * @param pageEldersAuthDTO
+     *            搜索条件
+     * @return 查找结果
+     */
+    @PostMapping("/export")
+    @ApiOperation(value = "导出高龄认证信息")
+    R<String> export(@Validated @RequestBody PageEldersAuthDTO pageEldersAuthDTO) {
+        String ftpUrl = "/mnt/data/web/excel/";
+
+        ClazzUtils.setIfStringIsEmpty(pageEldersAuthDTO);
+        String url = excelUrl;
+        String uuid = UUID.randomUUID().toString().replace("-", "");
+        // String name=uuid+".xlsx";
+
+        pageEldersAuthDTO.setCommunityId(getCommunityId());
+        R r = communityService.eldersAuthQuery(pageEldersAuthDTO);
+        if (R.isOk(r)) {
+            List<ExcelElderAuthDTO> excelElderAuthDTO =
+                JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ExcelElderAuthDTO.class);
+            if (excelElderAuthDTO == null || excelElderAuthDTO.size() == 0) {
+                return R.ok("未找到数据");
+            }
+
+            List<ExcelElderAuthDTO> sortedList = excelElderAuthDTO.stream()
+                .sorted(Comparator.comparingInt(ExcelElderAuthDTO::getSeq)).collect(Collectors.toList());
+            try {
+                SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+                sftp.login();
+                String name = "高龄认证-" + new SimpleDateFormat("yyyyMMddhhmmss").format(new Date()) + ".xlsx";
+                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 {
+
+                        WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
+
+                        contentWriteCellStyle.setWrapped(true);
+                        WriteCellStyle headWriteCellStyle = new WriteCellStyle();
+
+                        HorizontalCellStyleStrategy horizontalCellStyleStrategy =
+                            new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
+
+                        excelWriter = EasyExcel.write(fileName, ExcelElderAuthDTO.class)
+                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                            .registerWriteHandler(horizontalCellStyleStrategy).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet("高龄认证").build();
+                        excelWriter.write(sortedList, 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(url + URLEncoder.encode(name, "UTF-8"));
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error("文件传输失败【{}】", e.getMessage());
+                return R.fail();
+            }
+        }
+        return R.fail("导出数据失败");
+    }
+
+    /**
+     * 新增高龄认证
+     * 
+     * @param {classNameFirstLower}AddDTO
+     *            添加高龄认证传递对象
+     * @return 新增结果
+     */
+    @PostMapping("/addFeedback")
+    @ApiOperation(value = "新增高龄认证反馈", response = R.class)
+    R addFeedback(@Validated @RequestBody EldersAuthFeedbackAddDTO eldersAuthFeedbackAddDTO) {
+        ClazzUtils.setIfStringIsEmpty(eldersAuthFeedbackAddDTO);
+        eldersAuthFeedbackAddDTO.setUserId(getUserId());
+        eldersAuthFeedbackAddDTO.setAreaCode(this.getAreaCode());
+        return communityService.addFeedback(eldersAuthFeedbackAddDTO);
+    }
+
+    /**
+     * 获取高龄老人导入模板
+     * 
+     * @return 导入模板地址
+     */
+    @GetMapping("/imp/templates")
+    @ApiOperation(value = "获取高龄老人导入模板", response = R.class)
+    R getImportExcelUrl() {
+        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());
+        comElderAuthRecordVO.setAreaCode(this.getAreaCode());
+        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    pageElderAuthRecordsDTO
+     * @return    R  导出结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    @ApiOperation(value = "高龄认证-高龄认证导出---")
+    @PostMapping("/authRecords/export")
+    public R exportElderAuthRecords(@RequestBody PageElderAuthRecordsDTO pageElderAuthRecordsDTO) {
+        // List<ComMngPopulationMistakeExcelVO> list = JSON.parseArray(mistakes,ComMngPopulationMistakeExcelVO.class);
+        // 生成动态模板excel通过ftp工具上传到主节点,然后返回模板下载地址
+        pageElderAuthRecordsDTO.setCommunityId(this.getCommunityId());
+        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.exportElderAuthRecords(pageElderAuthRecordsDTO);
+                    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) {
+        comPensionAuthRecordVO.setApproverId(this.getUserId());
+        comPensionAuthRecordVO.setAreaCode(this.getAreaCode());
+        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);
+    }
+
+
+    /**
+     * 高龄认证添加
+     * @param comElderAuthRecordVO
+     * @return
+     */
+    @ApiOperation(value = "高龄认证添加")
+    @PostMapping("/authRecord/add")
+    R addAuthRecord(@RequestBody ComElderAuthRecordVO comElderAuthRecordVO){
+        comElderAuthRecordVO.setSubmitUserId(this.getUserId());
+        comElderAuthRecordVO.setCommunityId(this.getCommunityId());
+        return communityService.addAuthRecord(comElderAuthRecordVO);
+    }
+    /**
+     * 养老认证添加
+     * @param comElderAuthRecordVO
+     * @return
+     */
+    @ApiOperation(value = "养老认证添加")
+    @PostMapping("/pensionAuthRecord/add")
+    R addPensionAuthRecordVO(@RequestBody ComElderAuthRecordVO comElderAuthRecordVO){
+        comElderAuthRecordVO.setSubmitUserId(this.getUserId());
+        comElderAuthRecordVO.setCommunityId(this.getCommunityId());
+        comElderAuthRecordVO.setAreaCode(this.getAreaCode());
+        return communityService.addPensionAuthRecordVO(comElderAuthRecordVO);
+    }
+
+    /**
+     * 养老认证导出 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.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/EldersAuthElderlyApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/EldersAuthElderlyApi.java
new file mode 100644
index 0000000..77cb520
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/EldersAuthElderlyApi.java
@@ -0,0 +1,115 @@
+package com.panzhihua.community_backstage.api;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import javax.annotation.Resource;
+
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import com.alibaba.excel.EasyExcel;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.listen.ComEldersAuthElderlyExcelListen;
+import com.panzhihua.common.model.dtos.community.EldersAuthElderlyDTO;
+import com.panzhihua.common.model.dtos.community.PageEldersAuthElderlyDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComEldersAuthElderlyVO;
+import com.panzhihua.common.model.vos.community.EldersAuthElderlyExcelVO;
+import com.panzhihua.common.service.community.CommunityService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ */
+@Slf4j
+@RestController
+@RequestMapping("/eldersauthelderly")
+@Api(tags = {"高龄老人"})
+public class EldersAuthElderlyApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 高领老人列表
+     * 
+     * @param pageEldersAuthElderlyDTO
+     * @return
+     */
+    @PostMapping("/page")
+    @ApiOperation(value = "高领老人列表", response = ComEldersAuthElderlyVO.class)
+    R query(@Validated @RequestBody PageEldersAuthElderlyDTO pageEldersAuthElderlyDTO) {
+        // ClazzUtils.setIfStringIsEmpty(pageEldersAuthElderlyDTO);
+        // pageEldersAuthElderlyDTO.setUserId(getUserId());
+        return communityService.pageQueryEldersAuthElderly(pageEldersAuthElderlyDTO);
+    }
+
+    /**
+     * 高领老人导入
+     * 
+     * @param file
+     * @return
+     */
+    @PostMapping("/import")
+    @ApiOperation(value = "高领老人导入", response = R.class)
+    R batchSave(@RequestParam MultipartFile file) {
+        InputStream inputStream;
+        try {
+            inputStream = file.getInputStream();
+            EasyExcel
+                .read(inputStream, EldersAuthElderlyExcelVO.class,
+                    new ComEldersAuthElderlyExcelListen(communityService, getCommunityId(), getUserId()))
+                .sheet().doRead();
+        } catch (IOException e) {
+            e.printStackTrace();
+            log.error("导入模板失败【{}】", e.getMessage());
+        }
+        return R.ok();
+
+    }
+
+    /**
+     * 查看高龄老人详情
+     * 
+     * @param id
+     * @return
+     */
+    @GetMapping("/{id}")
+    @ApiOperation(value = "高领老人详情", response = ComEldersAuthElderlyVO.class)
+    R details(@PathVariable("id") Long id) {
+        return communityService.getEldersAuthElderlyById(id);
+    }
+
+    /**
+     * 修改高龄老人
+     * 
+     * @param eldersAuthElderlyDTO
+     * @return
+     */
+    @PostMapping("/update")
+    @ApiOperation(value = "更新高龄老人信息", response = R.class)
+    R update(@RequestBody EldersAuthElderlyDTO eldersAuthElderlyDTO) {
+        return communityService.updateEldersAuthElderly(eldersAuthElderlyDTO);
+    }
+
+    /**
+     * 删除高龄老人
+     * 
+     * @param id
+     * @return
+     */
+    @PostMapping("/delete")
+    @ApiOperation(value = "更新高龄老人信息", response = R.class)
+    R delete(@RequestParam("id") Long id) {
+        return communityService.deleteEldersAuthElderly(id);
+    }
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/EldersAuthHistoryApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/EldersAuthHistoryApi.java
new file mode 100644
index 0000000..acac783
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/EldersAuthHistoryApi.java
@@ -0,0 +1,134 @@
+package com.panzhihua.community_backstage.api;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.validation.annotation.Validated;
+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.RestController;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+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.PageEldersAuthHistoryDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComEldersAuthHistoryVO;
+import com.panzhihua.common.model.vos.partybuilding.ComEldersAuthHistoryExcelVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.SFTPUtil;
+import com.panzhihua.community_backstage.excel.CustomSheetWriteHandler;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+@RestController
+@RequestMapping("/elders/history")
+@Api(tags = {"高龄老人报表模块"})
+public class EldersAuthHistoryApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+    @Value("${ftp.url}")
+    private String url;
+    @Value("${excel.userurl}")
+    private String excelUrl;
+
+    /**
+     * 分页查询老人报表记录
+     * 
+     * @param pageEldersAuthElderlyDTO
+     *            请求参数
+     * @return
+     */
+    @PostMapping("/page")
+    @ApiOperation(value = "分页查询老人报表记录", response = ComEldersAuthHistoryVO.class)
+    public R query(@Validated @RequestBody PageEldersAuthHistoryDTO pageEldersAuthElderlyDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        pageEldersAuthElderlyDTO.setCommunityId(loginUserInfo.getCommunityId());
+        return communityService.getAuthHistoryList(pageEldersAuthElderlyDTO);
+    }
+
+    @PostMapping("/export")
+    @ApiOperation(value = "导出已认证老人记录")
+    public R export(@Validated @RequestBody PageEldersAuthHistoryDTO pageEldersAuthElderlyDTO) {
+        String name = "已认证老人信息.xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+        // 用户搜索了就下载搜索的用户否则下载所有用户
+        R r = communityService.getAuthHistoryExport(pageEldersAuthElderlyDTO);
+        if (R.isOk(r)) {
+            List<ComEldersAuthHistoryExcelVO> eexcelUserDTOS =
+                JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComEldersAuthHistoryExcelVO.class);
+            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, ComEldersAuthHistoryExcelVO.class)
+                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet("认证老人记录数据导出").build();
+                        excelWriter.write(eexcelUserDTOS, 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();
+            }
+        }
+        return R.fail("未查询到用户");
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/EldersAuthRecordsApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/EldersAuthRecordsApi.java
new file mode 100644
index 0000000..ea574ce
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/EldersAuthRecordsApi.java
@@ -0,0 +1,142 @@
+package com.panzhihua.community_backstage.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.EldersAuthTypeQueryDTO;
+import com.panzhihua.common.model.dtos.community.PageEldersAuthRecordDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComEldersAuthRecordForCommunityVO;
+import com.panzhihua.common.model.vos.community.EldersAuthDetailsVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.ClazzUtils;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ */
+@Slf4j
+@RestController
+@RequestMapping("/eldersauthrecords")
+@Api(tags = {"高龄认证"})
+public class EldersAuthRecordsApi extends BaseController {
+
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+    @Value("${ftp.url}")
+    private String url;
+    @Value("${excel.userurl}")
+    private String excelUrl;
+
+    // @Value("${excel.elderrecordurl}")
+    // private String elderRecordUrl =
+    // "http://panzhihua.nhys.cdnhxx.com/web/%e8%bd%a6%e8%be%86%e5%af%bc%e5%85%a5%e6%a8%a1%e6%9d%bf.xlsx";
+
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 生存认证记录
+     * 
+     * @param pageEldersAuthElderlyDTO
+     * @return
+     */
+    @PostMapping("/page")
+    @ApiOperation(value = "生存认证记录", response = ComEldersAuthRecordForCommunityVO.class)
+    R query(@Validated @RequestBody PageEldersAuthRecordDTO pageEldersAuthElderlyDTO) {
+        ClazzUtils.setIfStringIsEmpty(pageEldersAuthElderlyDTO);
+        return communityService.pageQueryEldersAuthRecord(pageEldersAuthElderlyDTO);
+    }
+
+    /**
+     * 查询高龄认证详细信息
+     * 
+     * @param id
+     *            高龄认证 id
+     * @return 查找结果
+     */
+    @GetMapping("/{id}")
+    @ApiOperation(value = "查询高龄认证详细信息", response = EldersAuthDetailsVO.class)
+    R<EldersAuthDetailsVO> details(@PathVariable("id") Long id) {
+        return communityService.eldersAuthDetails(id);
+    }
+
+    /**
+     * 生存认证记录导入
+     * 
+     * @param file
+     * @return
+     */
+    /*@PostMapping("/import")
+    @ApiOperation(value = "生存认证记录导入", response = R.class)
+    R importRecord(@RequestParam MultipartFile file){
+        InputStream inputStream;
+        try {
+            inputStream = file.getInputStream();
+            EasyExcel.read(inputStream, EldersAuthRecordExcelVO.class, new ComEldersAuthElderlyExcelListen(communityService, getCommunityId(),getUserId())).sheet().doRead();
+        } catch (IOException e) {
+            e.printStackTrace();
+            log.error("导入模板失败【{}】", e.getMessage());
+        }
+        return R.ok();
+    
+    }*/
+
+    /**
+     * 生存认证记录导入
+     * 
+     * @param id
+     *            高龄认证 id
+     * @return 查找结果
+     */
+    /* @GetMapping("/importTemplate")
+    @ApiOperation(value = "生存认证记录导入模板", response = EldersAuthDetailsVO.class)
+    R importTemplate(@PathVariable("id") Long id){
+        //return R.ok(elderRecordUrl);
+        return R.ok();
+    }*/
+
+    /**
+     * 设置当前社区认证方式
+     * 
+     * @return 查找结果
+     */
+    @PutMapping("/authType/{type}")
+    @ApiOperation(value = "设置当前社区认证方式:核验类型(1.视频认证 2.人脸核验)", response = R.class)
+    R setAuthType(@PathVariable("type") Integer type) {
+        if (type != 1 && type != 2) {
+            return R.fail("参数错误");
+        }
+        return communityService.setCommunityAuthType(this.getCommunityId(), type);
+    }
+
+    @GetMapping("/authtype")
+    @ApiOperation(value = "查询社区认证方式", response = R.class)
+    R communityAuthtype() {
+        Long communityId = this.getCommunityId();
+        EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO = new EldersAuthTypeQueryDTO();
+        eldersAuthTypeQueryDTO.setCommunityId(communityId);
+        return communityService.communityElderAuthType(eldersAuthTypeQueryDTO);
+    }
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/HouseApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/HouseApi.java
new file mode 100644
index 0000000..c5a7a32
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/HouseApi.java
@@ -0,0 +1,162 @@
+package com.panzhihua.community_backstage.api;
+
+import java.util.Date;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.vos.user.SysTemplateConfigVO;
+import org.springframework.util.ObjectUtils;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.ComOpsHouseDTO;
+import com.panzhihua.common.model.dtos.community.PageComOpsHouseDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComOpsHouseVO;
+import com.panzhihua.common.model.vos.user.SysUserNoticeVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.common.utlis.WxUtil;
+import com.panzhihua.common.utlis.WxXCXTempSend;
+import com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 房屋租售
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-22 15:30
+ **/
+@Slf4j
+@Api(tags = {"房屋租售"})
+@RestController
+@RequestMapping("/")
+public class HouseApi extends BaseController {
+    @Resource
+    private CommunityService communityService;
+
+    @Resource
+    private UserService userService;
+
+    @ApiOperation(value = "房屋租售-新增")
+    @PostMapping("house")
+    public R addHouse(@RequestBody @Validated(AddGroup.class) ComOpsHouseDTO comOpsHouseDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long userId = loginUserInfo.getUserId();
+        Long communityId = loginUserInfo.getCommunityId();
+        comOpsHouseDTO.setUserId(userId);
+        comOpsHouseDTO.setCommunityId(communityId);
+        comOpsHouseDTO.setUserType(3);
+        return communityService.addOpsHouse(comOpsHouseDTO);
+    }
+
+    @ApiOperation(value = "房屋租售-详情", response = ComOpsHouseVO.class)
+    @GetMapping("house")
+    public R detailHouse(@RequestParam("id") Long id) {
+        return communityService.detailOpsHouse(id);
+    }
+
+    @ApiOperation(value = "编辑/审核房屋租售")
+    @PutMapping("house")
+    public R putputOpsHouse(@RequestBody ComOpsHouseVO comOpsHouseVO) {
+        Long id = comOpsHouseVO.getId();
+        if (ObjectUtils.isEmpty(id)) {
+            return R.fail("房屋租售id主键不能为空");
+        }
+        R r = communityService.putOpsHouse(comOpsHouseVO);
+        R<SysTemplateConfigVO> sysTemplateConfigVO=userService.selectTemplate(this.getAreaCode(),4);
+        Date nowDate = new Date();
+        //查询用户openid
+        R userResult = null;
+        if(comOpsHouseVO.getUserId() != null){
+            userResult = userService.getUserOpenId(comOpsHouseVO.getUserId());
+        }
+        if(R.isOk(r) && 1==comOpsHouseVO.getStatus()) {
+            //审核通过添加提示信息
+            SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO();
+            sysUserNoticeVO.setUserId(comOpsHouseVO.getUserId());
+            sysUserNoticeVO.setType(3);
+            sysUserNoticeVO.setTitle("房源审核通过");
+            sysUserNoticeVO.setBusinessType(10);
+            sysUserNoticeVO.setBusinessContent("");
+            sysUserNoticeVO.setBusinessTitle("您提交的" + comOpsHouseVO.getTitle() + "房屋出租审核已经审核通过");
+            sysUserNoticeVO.setBusinessId(comOpsHouseVO.getId());
+            sysUserNoticeVO.setBusinessContent("   ");
+            sysUserNoticeVO.setStatus(0);
+            sysUserNoticeVO.setBusinessStatus(2);
+            R r2 = userService.addNotice(sysUserNoticeVO);
+            if (R.isOk(r2)) {
+                log.info("新增房屋出租通过审核通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+            }
+
+            if(userResult != null && R.isOk(userResult)){
+                String openid = userResult.getData().toString();
+                WxXCXTempSend util = new WxXCXTempSend();
+                try {
+                    WxUtil.sendSubscribeSHZT(openid, util.getAccessToken(), "房屋租售",
+                        DateUtils.format(nowDate, DateUtils.ymdhms_format), "审核通过",sysTemplateConfigVO.getData().getTemplateId());
+                } catch (Exception e) {
+                    log.error("消息推送失败,失败原因:" + e.getMessage());
+                }
+            }
+        } else if (R.isOk(r) && 2 == comOpsHouseVO.getStatus()) {
+            // 您提交的xxxx房屋出租审核已经审核通过/被驳回
+
+            // 审核驳回添加提示信息
+            SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO();
+            sysUserNoticeVO.setUserId(comOpsHouseVO.getUserId());
+            sysUserNoticeVO.setType(3);
+            sysUserNoticeVO.setTitle("房源审核被驳回");
+            sysUserNoticeVO.setBusinessType(10);
+            sysUserNoticeVO.setBusinessContent(comOpsHouseVO.getReason());
+            sysUserNoticeVO.setBusinessTitle("您提交的" + comOpsHouseVO.getTitle() + "房屋出租审核已经被驳回");
+            sysUserNoticeVO.setBusinessId(comOpsHouseVO.getId());
+            sysUserNoticeVO.setStatus(0);
+            sysUserNoticeVO.setBusinessContent("驳回原因:" + comOpsHouseVO.getReason());
+            sysUserNoticeVO.setBusinessStatus(1);
+            R r2 = userService.addNotice(sysUserNoticeVO);
+            if (R.isOk(r2)) {
+                log.info("新增房屋出租通过审核通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+            }
+
+            if(userResult != null && R.isOk(userResult)){
+                String openid = userResult.getData().toString();
+                WxXCXTempSend util = new WxXCXTempSend();
+                try {
+                    String result = comOpsHouseVO.getReason();
+                    if (StringUtils.isNotEmpty(result)) {
+                        result = result.substring(0, 4);
+                        result += "…";
+                    }
+                    WxUtil.sendSubscribeSHZT(openid, util.getAccessToken(), "房屋租售",
+                        DateUtils.format(nowDate, DateUtils.ymdhms_format), result,sysTemplateConfigVO.getData().getTemplateId());
+                } catch (Exception e) {
+                    log.error("消息推送失败,失败原因:" + e.getMessage());
+                }
+            }
+        }
+        return r;
+    }
+
+    @ApiOperation(value = "房屋租售-删除")
+    @DeleteMapping("house")
+    public R deleteHouse(@RequestParam("id") Long id) {
+        return communityService.deleteOpsHouse(id);
+    }
+
+    @ApiOperation(value = "房屋租售-分页查询", response = ComOpsHouseVO.class)
+    @PostMapping("pagehouse")
+    public R pageHouse(@RequestBody PageComOpsHouseDTO pageComOpsHouseDTO) {
+        pageComOpsHouseDTO.setCommunityId(this.getCommunityId());
+        return communityService.pageOpsHouse(pageComOpsHouseDTO);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/IndexApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/IndexApi.java
new file mode 100644
index 0000000..d84a3ea
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/IndexApi.java
@@ -0,0 +1,91 @@
+package com.panzhihua.community_backstage.api;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
+import cn.hutool.core.util.StrUtil;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.constants.TokenConstant;
+import com.panzhihua.common.model.vos.user.IndexDataAnalysisVO;
+import com.panzhihua.common.model.vos.user.StreetVO;
+import com.panzhihua.common.utlis.AES;
+import com.panzhihua.common.utlis.StringUtils;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.bind.annotation.*;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.controller.BaseController;
+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.TodoEventsVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.user.UserService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.context.request.RequestAttributes;
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 首页接口
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-06 09:37
+ **/
+@Slf4j
+@Api(tags = {"首页接口"})
+@RestController
+@RequestMapping("/index/")
+public class IndexApi extends BaseController {
+    @Resource
+    private UserService userService;
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "数据看板", response = IndexDataVO.class)
+    @GetMapping("data")
+    public R indexDataCommunityBackstage() {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long communityId = loginUserInfo.getCommunityId();
+        Long userId = loginUserInfo.getUserId();
+        R r = userService.indexDataCommunityBackstage(communityId);
+        if (R.isOk(r)) {
+            Object data = r.getData();
+            IndexDataVO indexDataVO = JSONObject.parseObject(JSONObject.toJSONString(data), IndexDataVO.class);
+            R r1 = communityService.indexDataCommunityBackstage(communityId, userId);
+            R r2 = communityService.indexDataCommunityBackstageEchart(communityId);
+            if (R.isOk(r1)) {
+                Object data1 = r1.getData();
+                List<TodoEventsVO> todoEventsVOS =
+                    JSONArray.parseArray(JSONArray.toJSONString(data1), TodoEventsVO.class);
+                indexDataVO.setTodoEventsVOList(todoEventsVOS);
+                r.setData(indexDataVO);
+            }
+            if (R.isOk(r2)) {
+                Object data1 = r2.getData();
+                IndexDataVO indexDataVO1 = JSONObject.parseObject(JSONObject.toJSONString(data1), IndexDataVO.class);
+                if (!ObjectUtils.isEmpty(indexDataVO1)) {
+                    indexDataVO.setCommunityActivitiesVOS(indexDataVO1.getCommunityActivitiesVOS());
+                    indexDataVO.setCommunityGovernanceTrendsVO(indexDataVO1.getCommunityGovernanceTrendsVO());
+                    r.setData(indexDataVO);
+                }
+            }
+
+        }
+        return r;
+    }
+    @GetMapping("/communityList")
+    @ApiOperation(value = "获取当前账号下的社区/村落列表",response = StreetVO.class)
+    public R communityList(){
+        return userService.communityList(this.getLoginUserInfo().getAccount(),this.getUserId());
+    }
+    
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/JinhuiAppi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/JinhuiAppi.java
new file mode 100644
index 0000000..1d70396
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/JinhuiAppi.java
@@ -0,0 +1,1540 @@
+package com.panzhihua.community_backstage.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.ComActWorkGuideDTO;
+import com.panzhihua.common.model.dtos.community.PageActWorkGuideDTO;
+import com.panzhihua.common.model.dtos.community.convenient.JinhuiPageConvenientMerchantDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActActivityVO;
+import com.panzhihua.common.model.vos.community.ComActWorkGuideClassifyVO;
+import com.panzhihua.common.model.vos.community.ComActWorkGuideVO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
+import com.panzhihua.common.model.vos.community.convenient.JinhuiConvenientMerchantVO;
+import com.panzhihua.common.model.vos.jinhui.*;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.jinhui.JinhuiCommunityService;
+import com.panzhihua.common.validated.AddGroup;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+@Slf4j
+@Api(tags = {"金汇办事指南API 后台"})
+@RestController
+@RequestMapping("/Jinhui/")
+public class JinhuiAppi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @Resource
+    private JinhuiCommunityService jinhuiCommunityService;
+
+
+    @ApiOperation(value = "新增服务活动")
+    @PostMapping("add/activity")
+    public R addActivity(@RequestBody @Validated(AddGroup.class) ComActActivityVO comActActivityVO) {
+        Long communityId = this.getCommunityId();
+        comActActivityVO.setCommunityId(communityId);
+        comActActivityVO.setUserId(this.getLoginUserInfo().getUserId());
+        comActActivityVO.setStatus(2);
+        comActActivityVO.setHasPrize(0);
+        comActActivityVO.setHaveIntegralReward(2);
+        return communityService.addActivity(comActActivityVO);
+    }
+
+    /**
+     * 办事指南_新增
+     *
+     * @param workGuideDTO 新增信息
+     * @return 新增结果
+     */
+    @ApiOperation(value = "办事指南_新增")
+    @PostMapping("/addworkguide")
+    @Transactional(rollbackFor = Exception.class)
+    public R addWorkGuide(@RequestBody ComActWorkGuideDTO workGuideDTO) {
+        return jinhuiCommunityService.addWorkGuide(workGuideDTO, this.getUserId() + "");
+    }
+
+    /**
+     * 办事指南_编辑
+     *
+     * @param workGuideDTO
+     * @return 编辑结果
+     */
+    @ApiOperation(value = "办事指南_编辑")
+    @PostMapping("/editworkguide")
+    @Transactional(rollbackFor = Exception.class)
+    public R putWorkGuide(@RequestBody ComActWorkGuideDTO workGuideDTO) {
+        return jinhuiCommunityService.putWorkGuide(workGuideDTO, getUserId() + "");
+    }
+
+    /**
+     * 办事指南_详情
+     *
+     * @param workGuideId
+     * @return 详情
+     */
+    @ApiOperation(value = "办事指南_详情", response = ComActWorkGuideVO.class)
+    @GetMapping("/detailworkguide")
+    public R detailWorkGuide(@RequestParam("workGuideId") String workGuideId) {
+        return jinhuiCommunityService.detailWorkGuide(workGuideId, getCommunityId() + "");
+    }
+
+    /**
+     * 办事指南_分页
+     *
+     * @param pageActWorkGuideDTO 查询参数
+     * @return 分页集合
+     */
+    @ApiOperation(value = "办事指南_分页", response = ComActWorkGuideVO.class)
+    @PostMapping("/pageworkguide")
+    public R pageWorkGuide(@RequestBody PageActWorkGuideDTO pageActWorkGuideDTO) {
+        return jinhuiCommunityService.pageWorkGuide(pageActWorkGuideDTO);
+    }
+
+    /**
+     * 办事指南_删除
+     *
+     * @param workGuideId 办事指南id
+     * @return 删除结果
+     */
+    @ApiOperation(value = "办事指南_删除")
+    @PostMapping("/delectworkguide")
+    public R delectWorkGuide(@RequestParam("workGuideId") String workGuideId) {
+        return jinhuiCommunityService.delectWorkGuide(workGuideId);
+    }
+
+    /**
+     * 分页查询办事执念-分类管理 addWorkGuideClassify  分页查询办事执念-分类管理
+     *
+     * @param comActWorkGuideClassifyVO 查询参数
+     * @return R   返回结果
+     * @author txb
+     * @date 2021/8/31 15:03
+     */
+    @ApiOperation(value = "分页查询办事执念-分类管理", response = ComActWorkGuideClassifyVO.class)
+    @PostMapping("/workGuide/classify/apage")
+    public R pageWorkGuideClassify(@RequestBody ComActWorkGuideClassifyVO comActWorkGuideClassifyVO) {
+        return jinhuiCommunityService.pageWorkGuideClassify(comActWorkGuideClassifyVO);
+    }
+
+    /**
+     * 办事执念-分类管理新增或修改  addWorkGuideClassify  办事执念-分类管理新增或修改
+     *
+     * @param comActWorkGuideClassifyVO 新增或修改参数
+     * @return R   返回结果
+     * @author txb
+     * @date 2021/8/31 15:03
+     */
+    @ApiOperation(value = "办事执念-分类管理新增或修改")
+    @PostMapping("/workGuide/classify/add")
+    public R addWorkGuideClassify(@RequestBody ComActWorkGuideClassifyVO comActWorkGuideClassifyVO) {
+        return jinhuiCommunityService.addWorkGuideClassify(comActWorkGuideClassifyVO);
+    }
+
+    /**
+     * 办事执念-分类管理删除  addWorkGuideClassify  办事执念-分类管理删除
+     *
+     * @param workGuideClassifyId 办事执念-分类管理id
+     * @return R   返回结果
+     * @author txb
+     * @date 2021/8/31 15:03
+     */
+    @ApiOperation(value = "办事执念-分类管理删除")
+    @GetMapping("/workGuide/classify/delete")
+    public R deleteWorkGuideClassify(@RequestParam("workGuideClassifyId") String workGuideClassifyId) {
+        return jinhuiCommunityService.deleteWorkGuideClassify(workGuideClassifyId);
+    }
+
+    /**
+     * 办事指南-分类管理列表查询  getWorkGuideClassifyList  办事指南-分类管理列表查询
+     * @return R   返回结果
+     * @author txb
+     * @date 2021/8/31 15:03
+     */
+//    @GetMapping("/workGuide/classify/getList")
+//    public R getWorkGuideClassifyList(@RequestParam("areaCode")String areaCode)
+//    {
+//        return jinhuiCommunityService.getWorkGuideClassifyList(areaCode);
+//    }
+
+    /**
+     * 办事指南列表-按分类查询
+     *
+     * @param pageActWorkGuideDTO 请求参数
+     * @return 办事指南分类列表
+     */
+    @ApiOperation(value = "办事指南列表-按分类查询", response = ComActWorkGuideVO.class)
+    @PostMapping("/listworkguide")
+    public R listWorkGuide(@RequestBody PageActWorkGuideDTO pageActWorkGuideDTO) {
+        return jinhuiCommunityService.listWorkGuide(pageActWorkGuideDTO);
+    }
+
+    /**
+     * 根据办事指南分类id查询办事指南列表
+     *
+     * @param classifyId 办事指南分类id
+     * @return 办事指南列表数据
+     */
+    @ApiOperation(value = "根据办事指南分类id查询办事指南列表", response = ComActWorkGuideVO.class)
+    @GetMapping("/listworkguide/classify")
+    public R listWorkGuideByClassifyId(@RequestParam("classifyId") String classifyId) {
+        return jinhuiCommunityService.listWorkGuideByClassifyId(classifyId);
+    }
+
+
+    /*********************************************************************************************
+     *
+     *
+     *                         金汇预约空间
+     *
+     *
+     **********************************************************************************************/
+    /**
+     * 金汇空间预约模块分页查询
+     *
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "金汇空间预约模块分页查询", response = JinhuiInterspaceVO.class)
+    @GetMapping("/interspaceGetList")
+    public R interspaceGetList(@RequestParam("pageNum") int pageNum,
+                               @RequestParam("pageSize") int pageSize,
+                               @RequestParam(value = "intendantType", required = false) String intendantType) {
+        return jinhuiCommunityService.interspaceGetList(pageNum, pageSize, intendantType);
+    }
+
+    /**
+     * 金汇空间预约模块单个详情
+     *
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "金汇空间详情", response = JinhuiInterspaceVO.class)
+    @GetMapping("/interspaceGetDetails")
+    public R interspaceGetDetails(@RequestParam("id") String id) {
+        return jinhuiCommunityService.interspaceGetDetails(id);
+    }
+
+    /**
+     * 金汇空间预约模块新增
+     *
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "金汇空间新增")
+    @PostMapping("/interspaceAddData")
+    public R interspaceAddData(@RequestBody JinhuiInterspaceVO item) {
+        return jinhuiCommunityService.interspaceAddData(item);
+    }
+
+    /**
+     * 金汇空间预约模块编辑
+     *
+     * @return
+     */
+    @ApiOperation(value = "金汇空间编辑")
+    @PostMapping("/interspaceEditData")
+    public R interspaceEditData(@RequestBody JinhuiInterspaceVO item) {
+        return jinhuiCommunityService.interspaceEditData(item);
+    }
+
+
+    /**
+     * 金汇空间预约模块删除
+     *
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "金汇空间删除")
+    @GetMapping("/interspaceExpurgateData")
+    public R interspaceExpurgateData(@RequestParam("id") String id) {
+        return jinhuiCommunityService.interspaceExpurgateData(id);
+    }
+
+
+    /****************************************************************************************************
+     *
+     *
+     *                                     空间预约分类
+     *
+     *
+     ******************************************************************************************************/
+    @ApiOperation(value = "金汇空间分类列表", response = JinhuiInterspaceTypeVO.class)
+    @GetMapping("/interspaceTypeGetList")
+    public R interspaceTypeGetList(@RequestParam("pageNum") int pageNum,
+                                   @RequestParam("pageSize") int pageSize) {
+        return jinhuiCommunityService.interspaceTypeGetList(pageNum, pageSize);
+    }
+
+    /**
+     * 空间预约分类单个详情
+     *
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "金汇空间分类详情", response = JinhuiInterspaceTypeVO.class)
+    @GetMapping("/JinhuiInterspace/interspaceTypeGetDetails")
+    public R interspaceTypeGetDetails(@RequestParam("id") String id) {
+        return jinhuiCommunityService.interspaceTypeGetDetails(id);
+    }
+
+    /**
+     * 空间预约分类新增
+     *
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "金汇空间分类新增")
+    @PostMapping("/JinhuiInterspace/interspaceTypeAddData")
+    public R interspaceTypeAddData(@RequestBody JinhuiInterspaceTypeVO item) {
+        item.setUserId(getUserId() + "");
+        return jinhuiCommunityService.interspaceTypeAddData(item);
+    }
+
+    /**
+     * 空间预约分类编辑
+     *
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "金汇空间分类编辑")
+    @PostMapping("/JinhuiInterspace/interspaceTypeEditData")
+    public R interspaceTypeEditData(@RequestBody JinhuiInterspaceTypeVO item) {
+        return jinhuiCommunityService.interspaceTypeEditData(item);
+    }
+
+
+    /**
+     * 空间预约分类删除
+     *
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "金汇空间分类删除")
+    @DeleteMapping("/JinhuiInterspace/interspaceTypeExpurgateData")
+    public R interspaceTypeExpurgateData(@RequestParam("id") String id) {
+        return jinhuiCommunityService.interspaceTypeExpurgateData(id);
+    }
+
+
+/***************************************************************************************************************
+ *
+ *
+ *                                       空间预约申请
+ *
+ *
+ **************************************************************************************************************/
+    /**
+     * 空间预约申请分页查询
+     *
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "空间预约申请分页", response = JinhuiInterspaceApplyForVO.class)
+    @GetMapping("/applyFor/getList")
+    public R applyForGetList(@RequestParam("pageNum") int pageNum,
+                             @RequestParam("pageSize") int pageSize,
+                             @RequestParam(value = "intendantType", required = false) String intendantType,
+                             @RequestParam(value = "state", required = false) String state,
+                             @RequestParam(value = "interspaceTime", required = false) String interspaceTime,
+                             @RequestParam(value = "subscribeTimeFrame", required = false) String subscribeTimeFrame,
+                             @RequestParam(value = "interspaceId", required = false) String interspaceId,
+                             @RequestParam(value = "userId",required = false) String userId) {
+        return jinhuiCommunityService.applyForGetList(pageNum, pageSize, intendantType,
+                state, interspaceTime, subscribeTimeFrame, interspaceId,userId);
+    }
+
+    /**
+     * 空间预约申请详情
+     *
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "空间预约申请详情", response = JinhuiInterspaceApplyForVO.class)
+    @GetMapping("/applyFor/getDetails")
+    public R applyForGetDetails(@RequestParam("id") String id) {
+        return jinhuiCommunityService.applyForGetDetails(id);
+    }
+
+
+    /**
+     * 空间预约申请编辑
+     *
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "空间预约申请处理")
+    @PostMapping("/applyFor/dispose")
+    public R applyForEditData(@RequestBody JinhuiInterspaceApplyForVO item) {
+        if (item == null) {
+            return R.fail("必要参数不能为空");
+        }
+
+        if (StringUtils.isEmpty(item.getId())) {
+            return R.fail("id不能为空");
+        }
+
+        if (StringUtils.isEmpty(item.getState())) {
+            return R.fail("State不能为空");
+        }
+
+        return jinhuiCommunityService.applyForEditData(item);
+    }
+
+
+    /******************************************************************************************************************
+     *
+     *
+     *                             金汇微心愿
+     *
+     *
+     ******************************************************************************************************************/
+    /**
+     * 分页查询
+     *
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "金汇微心愿列表", response = JinhuiMicroVolunteeringVO.class)
+    @GetMapping("/volunteering/getList")
+    public R volunteeringGetList(@RequestParam("pageNum") int pageNum,
+                                 @RequestParam("pageSize") int pageSize,
+                                 @RequestParam(value = "state", required = false) String state) {
+        return jinhuiCommunityService.volunteeringGetList(pageNum, pageSize, null, state);
+    }
+
+    /**
+     * 详情
+     *
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "金汇微心愿详情", response = JinhuiMicroVolunteeringVO.class)
+    @GetMapping("/volunteering/getDetails")
+    public R volunteeringGetDetails(@RequestParam("id") String id) {
+        return jinhuiCommunityService.volunteeringGetDetails(id);
+    }
+
+
+    /**
+     * 编辑
+     *
+     * @param item
+     * @return
+     */
+    @ApiOperation(value = "金汇微心愿编辑")
+    @PostMapping("/volunteering/editData")
+    public R volunteeringEditData(@RequestBody JinhuiMicroVolunteeringVO item) {
+        return jinhuiCommunityService.volunteeringEditData(item);
+    }
+
+    /**
+     * 金汇微心愿处理
+     *
+     * @param item
+     * @return
+     */
+    @ApiOperation(value = "金汇微心愿处理")
+    @PostMapping("/volunteering/dispose")
+    public R volunteeringDispose(@RequestBody JinhuiMicroVolunteeringVO item) {
+        if (item == null) {
+            return R.fail("参数不能为空");
+        }
+
+        if (StringUtils.isEmpty(item.getId())) {
+            return R.fail("id不能为空");
+        }
+
+        if (StringUtils.isEmpty(item.getReply())) {
+            return R.fail("处理回复不能为空");
+        }
+
+        item.setState("2");
+
+        return jinhuiCommunityService.volunteeringEditData(item);
+    }
+
+
+    /**
+     * 删除
+     *
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "金汇微心愿删除")
+    @DeleteMapping("/volunteering/expurgateData")
+    public R volunteeringExpurgateData(@RequestParam("id") String id) {
+        return jinhuiCommunityService.volunteeringExpurgateData(id);
+    }
+
+
+    /***************************************************************************************************************
+     *
+     *
+     *                        金汇微心愿分类
+     *
+     *
+     *****************************************************************************************************************/
+
+    /**
+     * 分页查询
+     *
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "金汇微心愿分类列表", response = JinhuiMicroVolunteeringTypeVO.class)
+    @GetMapping("/micro/type/getList")
+    public R volunteeringTypeGetList(@RequestParam("pageNum") int pageNum,
+                                     @RequestParam("pageSize") int pageSize) {
+        return jinhuiCommunityService.volunteeringTypeGetList(pageNum, pageSize);
+    }
+
+
+    /**
+     * 详情
+     *
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "金汇微心愿分类详情", response = JinhuiMicroVolunteeringTypeVO.class)
+    @GetMapping("/micro/type/getDetails")
+    public R volunteeringTypeGetDetails(@RequestParam("id") String id) {
+        return jinhuiCommunityService.volunteeringTypeGetDetails(id);
+    }
+
+    /**
+     * 新增
+     *
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "金汇微心愿分类新增")
+    @PostMapping("/micro/type/addData")
+    public R volunteeringTypeAddData(@RequestBody JinhuiMicroVolunteeringTypeVO item) {
+        item.setUserId(getUserId()+"");
+        return jinhuiCommunityService.volunteeringTypeAddData(item);
+    }
+
+    /**
+     * 编辑
+     *
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "金汇微心愿分类编辑")
+    @PostMapping("/micro/type/editData")
+    public R volunteeringTypeEditData(@RequestBody JinhuiMicroVolunteeringTypeVO item)
+    {
+        return jinhuiCommunityService.volunteeringTypeEditData(item);
+    }
+
+    /**
+     * 删除
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "金汇微心愿分类删除")
+    @DeleteMapping("/micro/type/expurgateData")
+    public R volunteeringTypeExpurgateData(@RequestParam("id") String id)
+    {
+        return jinhuiCommunityService.volunteeringTypeExpurgateData(id);
+    }
+
+
+
+    /*********************************************************************************************************
+     *
+     *
+     *            金汇商城商品
+     *
+     *
+     *********************************************************************************************************/
+    /**
+     * 分页查询
+     *
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "金汇商城商品列表表", response = JinhuiShoppingVO.class)
+    @GetMapping("/shoppingGetList")
+    public R shoppingGetList(@RequestParam("pageNum") int pageNum,
+                             @RequestParam("pageSize") int pageSize,
+                             @RequestParam(value = "goodName", required = false) String goodName,
+                             @RequestParam(value = "goodType", required = false) String goodType,
+                             @RequestParam(value = "id", required = false) String id)
+    {
+        return jinhuiCommunityService.shoppingGetList(pageNum,pageSize,goodName,goodType,id);
+    }
+
+
+    @ApiOperation(value = "金汇商城商品详情", response = JinhuiShoppingVO.class)
+    @GetMapping("/shoppingGetDetails")
+    public R shoppingGetDetails(@RequestParam("id") String id)
+    {
+        return jinhuiCommunityService.shoppingGetDetails(id,getCommunityId()+"");
+    }
+
+    /**
+     * 新增
+     *
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "金汇商城商品添加")
+    @PostMapping("/shoppingAddData")
+    public R shoppingAddData(@RequestBody JinhuiShoppingVO item)
+    {
+        return jinhuiCommunityService.shoppingAddData(item);
+    }
+
+
+    @ApiOperation(value = "金汇商城商品编辑")
+    @PostMapping("/shoppingEditData")
+    public R shoppingEditData(@RequestBody JinhuiShoppingVO item)
+    {
+        return jinhuiCommunityService.shoppingEditData(item);
+    }
+
+    @ApiOperation(value = "金汇商城商品上下架")
+    @PostMapping("/shoppingUpAndDown")
+    public R shoppingUpAndDown(@RequestBody JinhuiShoppingVO item)
+    {
+        if(StringUtils.isEmpty(item.getId()))
+        {
+            return R.fail("商品id不能为空");
+        }
+
+        if(StringUtils.isEmpty(item.getGoodType()))
+        {
+            return R.fail("商品GoodType不能为空");
+        }
+
+        return jinhuiCommunityService.shoppingEditData(item);
+    }
+
+    @ApiOperation(value = "金汇商城商品删除")
+    @DeleteMapping("/shoppingExpurgateData")
+    public R shoppingExpurgateData(@RequestParam("id") String id)
+    {
+        return jinhuiCommunityService.shoppingExpurgateData(id);
+    }
+
+
+
+
+    /********************************************************************************************************
+     *
+     *
+     *                         金汇商城商品订单
+     *
+     *
+     ********************************************************************************************************/
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "订单列表", response = JinhuiShoppingOrderVO.class)
+    @GetMapping("/orderGetList")
+    public R orderGetList(@RequestParam("pageNum") int pageNum,
+                          @RequestParam("pageSize") int pageSize,
+                          @RequestParam(value = "goodsId", required = false)String goodsId,
+                          @RequestParam(value = "orderNumber", required = false)String orderNumber,
+                          @RequestParam(value = "goodName", required = false)String goodName,
+                          @RequestParam(value = "name", required = false)String name,
+                          @RequestParam(value = "cancelType", required = false)String cancelType)
+    {
+        return jinhuiCommunityService.orderGetList(pageNum,pageSize,null,
+                goodsId,orderNumber,goodName,name,cancelType);
+    }
+
+    /**
+     * 分页详情
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "订单详情", response = JinhuiShoppingOrderVO.class)
+    @GetMapping("/orderGetDetails")
+    public R orderGetDetails(@RequestParam("id") String id)
+    {
+        return jinhuiCommunityService.orderGetDetails(id);
+    }
+
+    /**
+     * 编辑
+     * @param
+     * @return
+     */
+//    @ApiOperation(value = "订单编辑")
+//    @PostMapping("/orderEditData")
+//    public R orderEditData(@RequestBody JinhuiShoppingOrderVO item)
+//    {
+//        return jinhuiCommunityService.orderEditData(item);
+//    }
+
+    /**
+     * 编辑
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "订单核销")
+    @GetMapping("/orderCheck")
+    public R orderEditData(@RequestParam("id") String id)
+    {
+
+        if(StringUtils.isEmpty(id))
+        {
+            return R.fail("订单id不能为空");
+        }
+
+        JinhuiShoppingOrderVO vo=new JinhuiShoppingOrderVO();
+        vo.setId(id);
+        vo.setCancelType("1");
+        vo.setCancelTime(new Date());
+        return jinhuiCommunityService.orderEditData(vo);
+    }
+
+
+
+    /**
+     * 删除
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "订单删除")
+    @DeleteMapping("/orderExpurgateData")
+    public R orderExpurgateData(@RequestParam("id") String id)
+    {
+        return jinhuiCommunityService.orderExpurgateData(id);
+    }
+
+
+
+
+
+    /***************************************************************************************************************
+     *
+     *
+     *                            社区配置兑换地址 时间
+     *
+     * *******************************************************************************************************
+     * @return
+     */
+    @ApiOperation(value = "社区配置兑换地址详情", response = JinhuiConfigVO.class)
+    @GetMapping("/configGetDetails")
+    public R configGetDetails()
+    {
+        return jinhuiCommunityService.configGetDetails(getCommunityId()+"");
+    }
+
+
+    @ApiOperation(value = "社区配置兑换地址添加")
+    @PostMapping("/configAddData")
+    public R configAddData(@RequestBody JinhuiConfigVO item)
+    {
+        item.setCommunityId(getCommunityId()+"");
+        return jinhuiCommunityService.configAddData(item);
+    }
+
+    @ApiOperation(value = "社区配置兑换地址编辑")
+    @PostMapping("/configEditData")
+    public R configEditData(@RequestBody JinhuiConfigVO item)
+    {
+        item.setCommunityId(getCommunityId()+"");
+        return jinhuiCommunityService.configEditData(item);
+    }
+
+    @ApiOperation(value = "社区配置兑换地址删除")
+    @DeleteMapping("/configExpurgateData")
+    public R configExpurgateData()
+    {
+        return jinhuiCommunityService.configExpurgateData(getCommunityId()+"");
+    }
+
+
+    /*******************************************************************************************************************
+     *
+     *
+     *                    便民服务
+     *
+     *
+     ******************************************************************************************************************/
+
+    /**
+     * 获取便民服务商家详情
+     *
+     * @param merchantId
+     * @return
+     */
+    @ApiOperation(value = "获取便民服务商家详情", response = ConvenientMerchantVO.class)
+    @GetMapping("/merchant/get")
+    public R getMerchant(@RequestParam("merchantId") String merchantId) {
+        return jinhuiCommunityService.getMerchant(merchantId);
+    }
+
+    /**
+     * 分页查询便民服务商家 运营后台
+     *
+     * @param pageConvenientMerchantDTO
+     * @return
+     */
+    @ApiOperation(value = "分页查询便民服务商家", response = JinhuiConvenientMerchantVO.class)
+    @PostMapping("/merchant/page")
+    public R pageMerchant(@RequestBody JinhuiPageConvenientMerchantDTO pageConvenientMerchantDTO)
+    {
+        return jinhuiCommunityService.pageMerchant(pageConvenientMerchantDTO);
+    }
+
+    @ApiOperation(value = "便民服务商家入驻")
+    @PostMapping("/merchant/addData")
+    public R merchantAddData(@RequestBody JinhuiConvenientMerchantVO item)
+    {
+        item.setAuditType("1");
+        return jinhuiCommunityService.merchantAddData(item);
+    }
+
+    @ApiOperation(value = "便民服务商家编辑")
+    @PostMapping("/merchant/editData")
+    public R merchantEditData(@RequestBody JinhuiConvenientMerchantVO item)
+    {
+        return jinhuiCommunityService.merchantEditData(item);
+    }
+
+
+    /**
+     * 删除便民服务商家
+     *
+     * @param merchantId
+     * @return
+     */
+    @ApiOperation(value = "删除便民服务商家")
+    @DeleteMapping("/merchant/delete")
+    public R deleteMerchant(@RequestParam("merchantId") String merchantId) {
+        return jinhuiCommunityService.deleteMerchant(merchantId);
+    }
+
+
+    @ApiOperation(value = "便民服务商家审核")
+    @GetMapping("/merchant/audit")
+    public R merchantAudit(@RequestParam("auditType") String auditType,
+                           @RequestParam("merchantId") String merchantId,
+                           @RequestParam(value = "auditOpinion", required = false) String auditOpinion)
+    {
+        if(StringUtils.isEmpty(merchantId))
+        {
+            return R.fail("商家id不能为空");
+        }
+
+        if(StringUtils.isEmpty(auditType))
+        {
+            return R.fail("状态审核不能为空");
+        }
+
+        JinhuiConvenientMerchantVO vo=new JinhuiConvenientMerchantVO();
+        vo.setId(merchantId);
+        vo.setAuditType(auditType);
+        vo.setAuditOpinion(auditOpinion);
+        return jinhuiCommunityService.merchantEditData(vo);
+    }
+
+
+    /*************************************************************************************************************
+     *
+     *
+     *                                       商家分类
+     *
+     *
+     **************************************************************************************************************/
+    /**
+     * 分页查询 商家类别
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "商家类别列表", response = JinhuiComConvenientServiceCategoriesVO.class)
+    @GetMapping("/jinhuiMerchant/getCategories")
+    public R getListCategories(@RequestParam("pageNum") int pageNum,
+                               @RequestParam("pageSize") int pageSize)
+    {
+        return jinhuiCommunityService.getListCategories(pageNum,pageSize);
+    }
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "商家类别详情", response = JinhuiComConvenientServiceCategoriesVO.class)
+    @GetMapping("/getDetailsCategories")
+    public R getDetailsCategories(@RequestParam("id") String id)
+    {
+        return jinhuiCommunityService.getDetailsCategories(id);
+    }
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "商家类别新增")
+    @PostMapping("/addDataCategories")
+    public R addDataCategories(@RequestBody JinhuiComConvenientServiceCategoriesVO item)
+    {
+        return jinhuiCommunityService.addDataCategories(item);
+    }
+
+
+    /**
+     * 编辑
+     * @param item
+     * @return
+     */
+    @ApiOperation(value = "商家类别编辑")
+    @PostMapping("/editDataCategories")
+    public R editDataCategories(@RequestBody JinhuiComConvenientServiceCategoriesVO item)
+    {
+        return jinhuiCommunityService.editDataCategories(item);
+    }
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "商家类别删除")
+    @GetMapping("/expurgateDataCategories")
+    public R expurgateDataCategories(@RequestParam("id") String id)
+    {
+        return jinhuiCommunityService.expurgateDataCategories(id);
+    }
+
+    /*************************************************************************************************************
+     *
+     *                   金汇体验活动
+     *
+     ***************************************************************************************************************/
+    /**
+     * 分页查询
+     *
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "体验活动列表", response = JinhuiExperienceActivityVO.class)
+    @GetMapping("/experienceGetList")
+    public R experienceGetList(@RequestParam("pageNum") int pageNum,
+                               @RequestParam("pageSize")  int pageSize,
+                               @RequestParam(value = "activityName", required = false) String activityName,
+                               @RequestParam(value = "activityType", required = false) String activityType,
+                               @RequestParam(value = "starTime", required = false) Date starTime,
+                               @RequestParam(value = "endTime", required = false) Date endTime)
+    {
+        return jinhuiCommunityService.experienceGetList(pageNum,pageSize,activityName,activityType,starTime,endTime);
+    }
+
+    /**
+     * 单个详情
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "体验活动单个详情", response = JinhuiExperienceActivityVO.class)
+    @GetMapping("/experienceGetDetails")
+    public R experienceGetDetails(@RequestParam("id") String id)
+    {
+        return jinhuiCommunityService.experienceGetDetails(id,null);
+    }
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "体验活动新增")
+    @PostMapping("/experienceAddData")
+    public R experienceAddData(@RequestBody JinhuiExperienceActivityVO item)
+    {
+        return jinhuiCommunityService.experienceAddData(item);
+    }
+
+    /**
+     * 编辑
+     * @param item
+     * @return
+     */
+    @ApiOperation(value = "体验活动编辑")
+    @PostMapping("/experienceEditData")
+    public R experienceEditData(@RequestBody JinhuiExperienceActivityVO item)
+    {
+        return jinhuiCommunityService.experienceEditData(item);
+    }
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "体验活动删除")
+    @GetMapping("/experienceExpurgateData")
+    public R experienceExpurgateData(@RequestParam("id") String id)
+    {
+        return jinhuiCommunityService.experienceExpurgateData(id);
+    }
+
+
+
+    /******************************************************************************************************
+     *
+     *                    金汇文章
+     *
+     *******************************************************************************************************/
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "金汇文章列表", response = JinhuiArticleManagementVO.class)
+    @GetMapping("/articleGetList")
+    public R articleGetList(@RequestParam("pageNum") int pageNum,
+                            @RequestParam("pageSize")  int pageSize)
+    {
+        return jinhuiCommunityService.articleGetList(pageNum,pageSize,null,"1");
+    }
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "金汇文章详情", response = JinhuiArticleManagementVO.class)
+    @GetMapping("/articleGetDetails")
+    public R articleGetDetails(@RequestParam("id") String id)
+    {
+        return jinhuiCommunityService.articleGetDetails(id);
+    }
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "金汇文章新增")
+    @PostMapping("/articleAddData")
+    public R articleAddData(@RequestBody JinhuiArticleManagementVO item)
+    {
+        item.setArticleType("1");
+        item.setConditionType("1");
+        return jinhuiCommunityService.articleAddData(item);
+    }
+
+    /**
+     * 编辑
+     * @param item
+     * @return
+     */
+    @ApiOperation(value = "金汇文章编辑")
+    @PostMapping("/articleEditData")
+    public R articleEditData(@RequestBody JinhuiArticleManagementVO item)
+    {
+        return jinhuiCommunityService.articleEditData(item);
+    }
+
+    /**
+     * 编辑
+     * @return
+     */
+    @ApiOperation(value = "金汇文章上下架")
+    @GetMapping("/article/unmount")
+    public R articleUnmount(@RequestParam("id") String id,
+                            @RequestParam("articleType") String articleType)
+    {
+        if(StringUtils.isEmpty(id))
+        {
+            return R.fail("id不能为空");
+        }
+
+        if(StringUtils.isEmpty(articleType))
+        {
+            return R.fail("上下架状态不能为空");
+        }
+
+        JinhuiArticleManagementVO item=new JinhuiArticleManagementVO();
+        item.setId(id);
+        item.setArticleType(articleType);
+        item.setConditionType("2");
+        return jinhuiCommunityService.articleEditData(item);
+    }
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "金汇文章删除")
+    @GetMapping("/articleExpurgateData")
+    public R articleExpurgateData(@RequestParam("id") String id)
+    {
+        return jinhuiCommunityService.articleExpurgateData(id);
+    }
+
+
+
+    /*******************************************************************************************************
+     *
+     *                           金汇报名体验
+     *
+     *******************************************************************************************************/
+    /**
+     * 分页查询
+     *
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "金汇报名体验列表", response = JinhuiApplyExperienceVO.class)
+    @GetMapping("/applyExperienceGetList")
+    public R applyExperienceGetList(@RequestParam("pageNum") int pageNum,
+                                    @RequestParam("pageSize") int pageSize,
+                                    @RequestParam(value = "isFeedback", required = false) String isFeedback,
+                                    @RequestParam(value = "activityId", required = false) String activityId)
+    {
+        return jinhuiCommunityService.applyExperienceGetList(pageNum,pageSize,null,isFeedback,activityId);
+    }
+
+
+    @ApiOperation(value = "金汇报名体验详情", response = JinhuiApplyExperienceVO.class)
+    @GetMapping("/applyExperienceGetDetails")
+    public R applyExperienceGetDetails(@RequestParam(value = "id", required = false) String id,
+                                       @RequestParam(value = "userId", required = false) String userId,
+                                       @RequestParam(value = "activityId", required = false) String activityId)
+    {
+        return jinhuiCommunityService.applyExperienceGetDetails(id,null,null);
+    }
+
+
+
+    @ApiOperation(value = "金汇报名体验删除")
+    @DeleteMapping("/applyExperienceExpurgateData")
+    public R applyExperienceExpurgateData(@RequestParam("id") String id)
+    {
+        return jinhuiCommunityService.applyExperienceExpurgateData(id);
+    }
+
+
+
+    /******************************************************************************************************
+     *
+     *                    金汇家园
+     *
+     *******************************************************************************************************/
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "金汇家园列表", response = JinhuiArticleManagementVO.class)
+    @GetMapping("/homeGetList")
+    public R homeGetList(@RequestParam("pageNum") int pageNum,
+                            @RequestParam("pageSize")  int pageSize)
+    {
+        return jinhuiCommunityService.articleGetList(pageNum,pageSize,null,"2");
+    }
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "金汇家园详情", response = JinhuiArticleManagementVO.class)
+    @GetMapping("/homeGetDetails")
+    public R homeGetDetails(@RequestParam("id") String id)
+    {
+        return jinhuiCommunityService.articleGetDetails(id);
+    }
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "金汇家园新增")
+    @PostMapping("/homeAddData")
+    public R homeAddData(@RequestBody JinhuiArticleManagementVO item)
+    {
+        item.setArticleType("1");
+        item.setConditionType("2");
+        return jinhuiCommunityService.articleAddData(item);
+    }
+
+    /**
+     * 编辑
+     * @param item
+     * @return
+     */
+    @ApiOperation(value = "金汇家园编辑")
+    @PostMapping("/homeEditData")
+    public R homeEditData(@RequestBody JinhuiArticleManagementVO item)
+    {
+        return jinhuiCommunityService.articleEditData(item);
+    }
+
+    /**
+     * 编辑
+     * @return
+     */
+    @ApiOperation(value = "金汇家园上下架")
+    @GetMapping("/home/unmount")
+    public R homeUnmount(@RequestParam("id") String id,
+                            @RequestParam("articleType") String articleType)
+    {
+        if(StringUtils.isEmpty(id))
+        {
+            return R.fail("id不能为空");
+        }
+
+        if(StringUtils.isEmpty(articleType))
+        {
+            return R.fail("上下架状态不能为空");
+        }
+
+        JinhuiArticleManagementVO item=new JinhuiArticleManagementVO();
+        item.setId(id);
+        item.setArticleType(articleType);
+        item.setConditionType("2");
+        return jinhuiCommunityService.articleEditData(item);
+    }
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "金汇家园删除")
+    @GetMapping("/homeExpurgateData")
+    public R homeExpurgateData(@RequestParam("id") String id)
+    {
+        return jinhuiCommunityService.articleExpurgateData(id);
+    }
+
+
+
+
+/************************************************************************************************************
+ *
+ *
+ *                         用户提交办理 /JinhuiWorkGuide/
+ *
+ *
+ *******************************************************************************************************/
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "用户提交办事指南列表",response = JinhuiQuestnaireUserAnswerVO.class)
+    @GetMapping("/answer/getList")
+    public R answerGetList(@RequestParam("pageNum") int pageNum,
+                             @RequestParam("pageSize") int pageSize,
+                             @RequestParam(value = "userId", required = false) String userId,
+                           @RequestParam(value = "transactType", required = false) String transactType)
+    {
+        return jinhuiCommunityService.answerGetList(pageNum,pageSize,userId,transactType);
+    }
+
+    /**
+     * 获取详情
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "用户提交办事指南获取详情",response = JinhuiQuestnaireUserAnswerVO.class)
+    @GetMapping("/answer/getDetails")
+    public R answerGetDetails(@RequestParam("id") String id)
+    {
+        return jinhuiCommunityService.answerGetDetails(id);
+    }
+
+
+    /**
+     * 处理
+     * @return
+     */
+    @ApiOperation(value = "用户提交办事指南后台处理")
+    @GetMapping("/answer/audit")
+    public R answerEditData(@RequestParam("id") String id,
+                            @RequestParam("reply") String reply,
+                            @RequestParam("transactType") String transactType)
+    {
+        JinhuiQuestnaireUserAnswerVO item=new JinhuiQuestnaireUserAnswerVO();
+        item.setId(id);
+        item.setReply(reply);
+        item.setTransactType(transactType);
+        item.setProcessingTime(new Date());
+        return jinhuiCommunityService.answerEditData(item);
+    }
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "用户提交办事指南删除")
+    @DeleteMapping("/answer/expurgateData")
+    public R answerExpurgateData(@RequestParam("id") String id)
+    {
+        return jinhuiCommunityService.answerExpurgateData(id);
+    }
+
+
+
+
+    /********************************************************************************************************
+     *
+     *
+     *                             金汇网格
+     *
+     *
+     ****************************************************************************************************/
+
+    /**
+     * 分页查询
+     *
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "金汇网格列表",response = JinhuiReseauVO.class)
+    @GetMapping("/getReseauList")
+    public R getReseauList(@RequestParam("pageNum") int pageNum,
+                           @RequestParam("pageSize") int pageSize)
+    {
+        return jinhuiCommunityService.getReseauList(pageNum,pageSize);
+    }
+
+
+    @ApiOperation(value = "金汇网格详情",response = JinhuiReseauVO.class)
+    @GetMapping("/getReseauDetails")
+    public R getReseauDetails(@RequestParam("id")String id)
+    {
+        return jinhuiCommunityService.getReseauDetails(id);
+    }
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "金汇网格新增")
+    @PostMapping("/addReseauData")
+    public R addReseauData(@RequestBody JinhuiReseauVO item)
+    {
+        return jinhuiCommunityService.addReseauData(item);
+    }
+
+
+    @ApiOperation(value = "金汇网格编辑")
+    @PostMapping("/editReseauData")
+    public R editReseauData(@RequestBody JinhuiReseauVO item)
+    {
+        return jinhuiCommunityService.editReseauData(item);
+    }
+
+
+    @ApiOperation(value = "金汇网格删除")
+    @PostMapping("/expurgateReseauData")
+    public R expurgateReseauData(@RequestParam("id") String id)
+    {
+        return jinhuiCommunityService.expurgateReseauData(id);
+    }
+
+
+
+
+    /********************************************************************************************************
+     *
+     *
+     *                             金汇网格员
+     *
+     *
+     ****************************************************************************************************/
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "金汇网格员管理列表",response = JinhuiReseauPeopleVO.class)
+    @GetMapping("/getPeopleList")
+    public R getPeopleList(@RequestParam("pageNum") int pageNum,
+                           @RequestParam("pageSize") int pageSize)
+    {
+        return jinhuiCommunityService.getPeopleList(pageNum,pageSize);
+    }
+
+
+    /**
+     * 分页查询
+     * 获取本社区用户
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "金汇网格员管理社区用户列表",response = LoginUserInfoVO.class)
+    @GetMapping("/getPeopleUserList")
+    public R getPeopleUserList(@RequestParam("pageNum") int pageNum,
+                               @RequestParam("pageSize") int pageSize,
+                               @RequestParam(value = "nameAndPhone", required = false) String nameAndPhone)
+    {
+        return jinhuiCommunityService.getPeopleUserList(pageNum,pageSize,nameAndPhone);
+    }
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "金汇网格员管理详情",response = JinhuiReseauPeopleVO.class)
+    @GetMapping("/getPeopleDetails")
+    public R getPeopleDetails(@RequestParam("id") String id)
+    {
+        return jinhuiCommunityService.getPeopleDetails(id);
+    }
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "金汇网格员管理新增")
+    @PostMapping("/addPeopleData")
+    public R addPeopleData(@RequestBody JinhuiReseauPeopleVO item)
+    {
+        return jinhuiCommunityService.addPeopleData(item);
+    }
+
+
+    /**
+     * 编辑
+     * @param item
+     * @return
+     */
+
+    @ApiOperation(value = "金汇网格员管理编辑")
+    @PostMapping("/editPeopleData")
+    public R editPeopleData(@RequestBody JinhuiReseauPeopleVO item)
+    {
+        return jinhuiCommunityService.editPeopleData(item);
+    }
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "金汇网格员管理删除")
+    @DeleteMapping("/expurgatePeopleData")
+    public R expurgatePeopleData(@RequestParam("id") String id)
+    {
+        return jinhuiCommunityService.expurgatePeopleData(id);
+    }
+
+
+    /****************************************************************************************************************
+     *
+     *
+     *                                  金汇慈善公益
+     *
+     *
+     ******************************************************************************************************************/
+    /**
+     * 分页查询
+     *
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "金汇慈善公益列表",response = JinhuiCharityVO.class)
+    @GetMapping("/getCharityList")
+    public R getCharityList(@RequestParam("pageNum") int pageNum,
+                            @RequestParam("pageSize") int pageSize,
+                            @RequestParam(value = "title", required = false) String title,
+                            @RequestParam(value = "label", required = false) String label,
+                            @RequestParam(value = "state", required = false) String state)
+    {
+        return jinhuiCommunityService.getCharityList(pageNum,pageSize,title,label,state);
+    }
+
+    @ApiOperation(value = "金汇慈善公益大屏统计",response = JinhuiCharityVO.class)
+    @GetMapping("/getJinhuiCharityList")
+    public R getJinhuiCharityList()
+    {
+        return jinhuiCommunityService.getJinhuiCharityList();
+    }
+
+    /**
+     * 获取未绑定人员的网格
+     * @return
+     */
+    @ApiOperation(value = "获取未绑定人员的网格列表",response = JinhuiCharityVO.class)
+    @GetMapping("/getReseauBoxList")
+    public R getReseauBoxList()
+    {
+        return jinhuiCommunityService.getReseauBoxList();
+    }
+
+
+    /**
+     * 获取详情
+     * @param id
+     * @return
+     */
+
+    @ApiOperation(value = "金汇慈善公益详情",response = JinhuiCharityVO.class)
+    @GetMapping("/getCharityDetails")
+    public R getCharityDetails(@RequestParam("id") String id)
+    {
+        return jinhuiCommunityService.getCharityDetails(id);
+    }
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "金汇慈善公益添加")
+    @PostMapping("/addCharityData")
+    public R addCharityData(@RequestBody JinhuiCharityVO item)
+    {
+        return jinhuiCommunityService.addCharityData(item);
+    }
+
+    @ApiOperation(value = "金汇慈善公益编辑")
+    @PostMapping("/editCharityData")
+    public R editCharityData(@RequestBody JinhuiCharityVO item)
+    {
+        return jinhuiCommunityService.editCharityData(item);
+    }
+
+    @ApiOperation(value = "金汇慈善公益结束")
+    @GetMapping("/charityEndActivity")
+    public R editCharityData(@RequestParam("id") String id)
+    {
+        JinhuiCharityVO item =new JinhuiCharityVO();
+        item.setState("2");
+        item.setId(id);
+        return jinhuiCommunityService.editCharityData(item);
+    }
+
+    @ApiOperation(value = "金汇慈善公益删除")
+    @DeleteMapping("/expurgateCharityData")
+    public R expurgateCharityData(@RequestParam("id") String id)
+    {
+        return jinhuiCommunityService.expurgateCharityData(id);
+    }
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/JinhuiBraceletApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/JinhuiBraceletApi.java
new file mode 100644
index 0000000..14858a2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/JinhuiBraceletApi.java
@@ -0,0 +1,287 @@
+package com.panzhihua.community_backstage.api;
+
+/**
+ * 西区手环接口
+ */
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.bracelet.BraceletEarlyWarningDO;
+import com.panzhihua.common.model.dtos.bracelet.BraceletUserDataDO;
+import com.panzhihua.common.model.dtos.bracelet.SetSOS;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.bracelet.CommunityBraceletService;
+import com.panzhihua.common.utlis.HttpClientUtil;
+import com.panzhihua.community_backstage.model.vos.PutmessageBody;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.Map;
+
+@Slf4j
+@Api(tags = {"金汇手环接口"})
+@RestController
+@RequestMapping("/JinhuibraceletApi/")
+public class JinhuiBraceletApi  extends BaseController
+{
+
+    @Resource
+    private CommunityBraceletService communityBraceletService;
+
+    /**
+     * 手环数据获取
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    @ApiOperation(value = "手环数据获取")
+    @GetMapping("getData")
+    public R getData(@RequestParam("pageNum") Integer pageNum,
+                     @RequestParam("pageSize") Integer pageSize,
+                     @RequestParam(value = "userName",required = false) String userName,
+                     @RequestParam(value = "phone",required = false) String phone)
+    {
+        return communityBraceletService.getData(pageNum,pageSize,getCommunityId()+"",userName,phone);
+    }
+
+
+    /**
+     * 手环数据编辑接口
+     * @return
+     */
+    @ApiOperation(value = "手环数据编辑接口")
+    @PostMapping("upBracelet")
+    public R upBracelet(@RequestBody BraceletUserDataDO braceletUserDataDO)
+    {
+        if(StringUtils.isEmpty(braceletUserDataDO.getDeviceId()))
+        {
+            return R.fail("设备id不能为空");
+        }
+        return communityBraceletService.upBracelet(braceletUserDataDO);
+    }
+
+    /**
+     * 删除设备
+     * @param id   设备id
+     * @return
+     */
+    @ApiOperation(value = "删除设备")
+    @DeleteMapping("delectData")
+    public R delectData(@RequestParam("id") String id)
+    {
+        return communityBraceletService.delectData(id);
+    }
+
+    /**
+     * 用户手环参数变化  新增数据
+     * @param braceletUserDataDO
+     * @return
+     */
+    @ApiOperation(value = "用户手环新增用户接口")
+    @PostMapping("addBraceletUser")
+    public R addBraceletUser(@RequestBody BraceletUserDataDO braceletUserDataDO)
+    {
+        braceletUserDataDO.setCommunityId(getCommunityId()+"");
+        if(braceletUserDataDO==null)
+        {
+            return R.fail("参数不能为空");
+        }
+
+        if(StringUtils.isEmpty(braceletUserDataDO.getDeviceId()))
+        {
+            return R.fail("设备ID 不能为空");
+        }
+
+//        log.info("用户手环 putmessage : "+braceletUserDataDO.toString());
+        return communityBraceletService.addBracelet(braceletUserDataDO);
+    }
+
+
+    /**
+     * 用户手环参数变化  更新数据
+     * @return
+     */
+    @ApiOperation(value = "手环设置SOS联系人")
+    @PostMapping("setSOS")
+    public R setSOS(@RequestBody SetSOS setSOS)
+    {
+        if(setSOS==null)
+        {
+            return R.fail("参数不能为空");
+        }
+
+        if(StringUtils.isEmpty(setSOS.getDeviceId()))
+        {
+            return R.fail("设备ID 不能为空");
+        }
+
+        if(StringUtils.isEmpty(setSOS.getEmergencyContact1()) && StringUtils.isEmpty(setSOS.getEmergencyContact2())
+                && StringUtils.isEmpty(setSOS.getEmergencyContact3()))
+        {
+            return R.fail("联系人不能全部为空");
+        }
+
+
+//        3 W11 智能手表
+//        2 W5 智能手环
+//        1 W6 智能手表
+        Map allMap=new HashMap();
+        Map phone=new HashMap();
+
+//        if(StringUtils.equals(braceletUserDataDO.getDeviceModel(),"W11"))
+//        {
+//            allMap.put("deviceModelId",3);
+//        }
+//        else if(StringUtils.equals(braceletUserDataDO.getDeviceModel(),"W5"))
+//        {
+//            allMap.put("deviceModelId",2);
+//        }
+//        else
+//        {
+//            allMap.put("deviceModelId",1);
+//        }
+        allMap.put("deviceModelId",3);
+
+
+        BraceletUserDataDO dataDO=new BraceletUserDataDO();
+        dataDO.setDeviceId(setSOS.getDeviceId());
+        dataDO.setOnoff("1");
+        phone.put("sgtel1",setSOS.getEmergencyContact1());
+        dataDO.setSgtel1(setSOS.getEmergencyContact1());
+
+        phone.put("sgtel2",setSOS.getEmergencyContact2());
+        dataDO.setSgtel2(setSOS.getEmergencyContact2());
+
+        phone.put("sgtel3",setSOS.getEmergencyContact3());
+        dataDO.setSgtel3(setSOS.getEmergencyContact3());
+
+
+        allMap.put("deviceID",setSOS.getDeviceId());
+        allMap.put("apiKey","C71584EDE98983A1976AAE8DBCF6B9CF");
+        allMap.put("type",1);
+        allMap.put("dataInfo",phone);
+
+
+        String resultJson = HttpClientUtil.sendPostByJson("http://apps.jkez.net/openapi/mobile/saveDeviceSet", JSON.toJSONString(allMap),
+                0,null,null);
+        JSONObject result = JSON.parseObject(resultJson);
+
+
+        if(!StringUtils.isEmpty(dataDO.getSgtel1()) || !StringUtils.isEmpty(dataDO.getSgtel2()) ||
+                !StringUtils.isEmpty(dataDO.getSgtel3()))
+        {
+            communityBraceletService.upBracelet(dataDO);
+        }
+
+        R r=new R();
+        int code=result.getIntValue("code");
+        if(code==400)
+        {
+            dataDO.setOnoff("0");
+        }
+        communityBraceletService.upBracelet(dataDO);
+        r.setCode(code);
+        r.setMsg(result.getString("message"));
+        return r;
+    }
+
+
+    /**
+     * 获取用户  手环数据详情
+     * @param deviceID
+     * @return
+     */
+    @ApiOperation(value = "获取用户  手环数据详情")
+    @GetMapping("getDetails")
+    public R getDetails(@RequestParam("deviceID") String deviceID)
+    {
+        return communityBraceletService.getDetails(deviceID);
+    }
+
+
+
+
+
+    /**
+     * 编辑手环预警数据
+     * @param braceletEarlyWarningDO
+     * @return
+     */
+    @ApiOperation(value = "编辑手环预警数据")
+    @PostMapping("upEarlyWarning")
+    public R upEarlyWarning(@RequestBody BraceletEarlyWarningDO braceletEarlyWarningDO) {
+        return communityBraceletService.upEarlyWarning(braceletEarlyWarningDO);
+    }
+
+    /**
+     * 删除预警数据
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "删除预警数据")
+    @DeleteMapping("delectEarlyWarning")
+    public R delectEarlyWarning(@RequestParam("id") String id) {
+        return communityBraceletService.delectEarlyWarning(id);
+    }
+
+    /**
+     * 获取预警数据
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "获取预警数据")
+    @GetMapping("getEarlyWarningList")
+    public R getList(@RequestParam("pageNum") Integer pageNum,
+                     @RequestParam("pageSize") Integer pageSize,
+                     @RequestParam(value = "equipmentNumber",required = false)  String equipmentNumber,
+                     @RequestParam(value = "type",required = false)  String type,
+                     @RequestParam(value = "userName",required = false)  String userName,
+                     @RequestParam(value = "phone",required = false)  String phone)
+    {
+        return communityBraceletService.getList(pageNum,pageSize,getCommunityId()+"",equipmentNumber,"",type,userName,phone);
+    }
+
+    /**
+     * 获取单个预警信息详情
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "获取单个预警信息详情")
+    @GetMapping("getEarlyWarningDetails")
+    public R getEarlyWarningDetails(@RequestParam("id") String id)
+    {
+        return communityBraceletService.getEarlyWarningDetails(id);
+    }
+
+    /**
+     * 处理接口
+     * @return
+     */
+    @ApiOperation(value = "处理接口")
+    @PostMapping("dispose")
+    public R dispose(@RequestBody BraceletEarlyWarningDO braceletEarlyWarningDO)
+    {
+        braceletEarlyWarningDO.setCommunityId(getCommunityId()+"");
+        return communityBraceletService.dispose(braceletEarlyWarningDO);
+    }
+
+
+    /**
+     * 处理人
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "处理人")
+    @GetMapping("conductorList")
+    public R conductorList()
+    {
+        return communityBraceletService.conductorList(getCommunityId()+"");
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/JinhuiLargeScreenAppi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/JinhuiLargeScreenAppi.java
new file mode 100644
index 0000000..bb3e452
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/JinhuiLargeScreenAppi.java
@@ -0,0 +1,75 @@
+package com.panzhihua.community_backstage.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.ComActWorkGuideDTO;
+import com.panzhihua.common.model.dtos.community.PageActWorkGuideDTO;
+import com.panzhihua.common.model.dtos.community.convenient.JinhuiPageConvenientMerchantDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActWorkGuideClassifyVO;
+import com.panzhihua.common.model.vos.community.ComActWorkGuideVO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
+import com.panzhihua.common.model.vos.community.convenient.JinhuiConvenientMerchantVO;
+import com.panzhihua.common.model.vos.jinhui.*;
+import com.panzhihua.common.service.jinhui.JinhuiCommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+@Slf4j
+@Api(tags = {"金汇大屏API"})
+@RestController
+@RequestMapping("/JinhuiLargeScreen/")
+public class JinhuiLargeScreenAppi extends BaseController {
+
+
+    @Resource
+    private JinhuiCommunityService jinhuiCommunityService;
+
+    /***************************************************************************************************************
+     *
+     *
+     *
+     **************************************************************************************************************/
+    /**
+     * 金汇首页数据
+     * @return
+     */
+    @ApiOperation(value = "金汇大屏首页数据",response = JinhuiIndexInfoVO.class)
+    @GetMapping("/getIndexInfo")
+    public R getIndexInfo()
+    {
+        return jinhuiCommunityService.getIndexInfo();
+    }
+
+    /**
+     * 金汇大屏社区服务
+     * @return
+     */
+    @ApiOperation(value = "金汇大屏社区服务",response = JinhuiCommunityServicesVO.class)
+    @GetMapping("/getCommunityServices")
+    public R getCommunityServices()
+    {
+        return jinhuiCommunityService.getCommunityServices();
+    }
+
+
+    /**
+     * 金汇居家养老
+     * @return
+     */
+    @ApiOperation(value = "金汇居家养老",response = JinhuiAllOldManVO.class)
+    @GetMapping("/getOldMan")
+    public R getOldMan()
+    {
+        return jinhuiCommunityService.getOldMan();
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/KaphtchaApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/KaphtchaApi.java
new file mode 100644
index 0000000..0c66de3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/KaphtchaApi.java
@@ -0,0 +1,81 @@
+package com.panzhihua.community_backstage.api;
+
+import com.google.code.kaptcha.impl.DefaultKaptcha;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.utlis.StringUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.data.redis.core.StringRedisTemplate;
+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 org.springframework.web.client.RestTemplate;
+
+import javax.annotation.Resource;
+import javax.imageio.ImageIO;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.awt.image.BufferedImage;
+import java.io.ByteArrayOutputStream;
+import java.time.Duration;
+
+/**
+ * @author zzj
+ */
+@Api(tags = {"验证码接口"})
+@RestController
+@RequestMapping("/kaphtcha/")
+public class KaphtchaApi extends BaseController {
+    @Resource
+    private DefaultKaptcha defaultKaptcha;
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+
+    @ApiOperation("生成验证码")
+    @GetMapping("/verification")
+    public void defaultKaptcha(@RequestParam("uuid")String uuid,HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse)
+            throws Exception {
+        byte[] captchaChallengeAsJpeg = null;
+        ByteArrayOutputStream jpegOutputStream = new ByteArrayOutputStream();
+        try {
+            // 生产验证码字符串并保存到session中,分布式环境存redis中
+            String createText = defaultKaptcha.createText();
+            stringRedisTemplate.opsForValue().set("verifyCode_"+uuid,createText, Duration.ofMinutes(5));
+            // 使用生产的验证码字符串返回一个BufferedImage对象并转为byte写入到byte数组中
+            BufferedImage challenge = defaultKaptcha.createImage(createText);
+            ImageIO.write(challenge, "jpg", jpegOutputStream);
+
+        } catch (IllegalArgumentException e) {
+            httpServletResponse.sendError(HttpServletResponse.SC_NOT_FOUND);
+            return;
+        }
+
+        // 定义response输出类型为image/jpeg类型,使用response输出流输出图片的byte数组
+        captchaChallengeAsJpeg = jpegOutputStream.toByteArray();
+        httpServletResponse.setHeader("Cache-Control", "no-store");
+        httpServletResponse.setHeader("Pragma", "no-cache");
+        httpServletResponse.setDateHeader("Expires", 0);
+        httpServletResponse.setContentType("image/jpeg");
+        ServletOutputStream responseOutputStream = httpServletResponse.getOutputStream();
+        responseOutputStream.write(captchaChallengeAsJpeg);
+        responseOutputStream.flush();
+        responseOutputStream.close();
+    }
+    @ApiOperation("验证码核对")
+    @GetMapping("/checkVerifyCode")
+    public R checkVerifyCode(@RequestParam("verifyCode")String verifyCode,@RequestParam("uuid")String uuid){
+        String text=stringRedisTemplate.opsForValue().get("verifyCode_"+uuid);
+        if(StringUtils.isNotEmpty(text)){
+            if(verifyCode.equals(text)){
+                stringRedisTemplate.delete("verifyCode_"+uuid);
+                return R.ok();
+            }
+            return R.fail("验证码错误");
+        }
+        return R.fail("验证码失效");
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/LoginApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/LoginApi.java
new file mode 100644
index 0000000..102da5b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/LoginApi.java
@@ -0,0 +1,232 @@
+package com.panzhihua.community_backstage.api;
+
+import javax.annotation.Resource;
+
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.constants.UserConstants;
+import com.panzhihua.common.interfaces.OperLog;
+import com.panzhihua.common.model.vos.LoginReturnsVO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.JWTTokenUtil;
+import com.panzhihua.community_backstage.util.MyAESUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.LoginReturnVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.auth.TokenService;
+import com.panzhihua.community_backstage.model.vos.LoginBody;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 登录
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-24 11:27
+ **/
+@RestController
+@RequestMapping("/")
+@Api(tags = {"社区平台登录模块"})
+@Slf4j
+public class LoginApi extends BaseController {
+    @Resource
+    private TokenService tokenService;
+    @Resource
+    private UserService userService;
+    @Resource
+    private CommunityService communityService;
+
+    @OperLog(operModul="用户登录",operType = 1)
+    @ApiOperation(value = "社区平台登录", response = LoginReturnVO.class)
+    @PostMapping("login")
+    public R login(@RequestBody LoginBody loginBody) {
+        String account = loginBody.getAccount();
+        String password = loginBody.getPassword();
+        boolean empty = ObjectUtils.isEmpty(account);
+        boolean empty1 = ObjectUtils.isEmpty(password);
+        if (empty || empty1) {
+            return R.fail("账户密码不能为空");
+        }
+        R r = tokenService.loginCommunityBackage(account, password,this.getAppId());
+        return r;
+    }
+    @ApiOperation(value = "社区平台验证密码", response = LoginReturnVO.class)
+    @PostMapping("checkExport")
+    public R checkExport(@RequestBody LoginBody loginBody) {
+        String account = this.getLoginUserInfo().getAccount();
+        String password = loginBody.getPassword();
+        boolean empty = ObjectUtils.isEmpty(account);
+        boolean empty1 = ObjectUtils.isEmpty(password);
+        if (empty || empty1) {
+            return R.fail("账户密码不能为空");
+        }
+        try {
+            password=MyAESUtil.Decrypt(password,"Ryo7M3n8loC5Abcd");
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        R r =userService.checkExport(account,password,this.getLoginUserInfo().getPassword());
+        return r;
+    }
+
+    @ApiOperation(value = "刷新token", response = LoginReturnVO.class)
+    @GetMapping("refreshToken")
+    @ApiImplicitParam(name = "refreshToken", value = "登录返回的刷新token")
+    public R refreshToken(@RequestParam("refreshToken") String refreshToken) {
+        return tokenService.refreshToken(refreshToken);
+    }
+
+    @OperLog(operModul="用户登出",operType = 1)
+    @ApiOperation(value = "用户登出")
+    @PostMapping("logout")
+    public R updateUserWeiXinPhone() {
+        String token = this.getToken();
+        boolean empty2 = ObjectUtils.isEmpty(token);
+        if (empty2) {
+            return R.ok();
+        }
+        return tokenService.logout(token);
+    }
+
+    @ApiOperation(value = "城管平台登录", response = LoginReturnVO.class)
+    @PostMapping("cg/login")
+    public R cgLogin(@RequestBody LoginBody loginBody) {
+        String account = loginBody.getAccount();
+        String password = loginBody.getPassword();
+        boolean empty = ObjectUtils.isEmpty(account);
+        boolean empty1 = ObjectUtils.isEmpty(password);
+        if (empty || empty1) {
+            return R.fail("账户密码不能为空");
+        }
+        R r = tokenService.loginCgBackage(account, password,this.getAppId());
+        return r;
+    }
+    @ApiOperation(value = "一键报警APP登录",response = LoginReturnsVO.class)
+    @PostMapping("alarm/login")
+    public  R alarmLogin(@RequestBody LoginBody loginBody){
+        String account = loginBody.getAccount();
+        String password = loginBody.getPassword();
+        boolean empty = ObjectUtils.isEmpty(account);
+        boolean empty1 = ObjectUtils.isEmpty(password);
+        if (empty || empty1) {
+            return R.fail("账户密码不能为空");
+        }
+        R r = tokenService.loginAlarmApp(account, password,this.getAppId());
+        return r;
+    }
+
+    @ApiOperation(value = "西区大屏登录", response = LoginReturnVO.class)
+    @PostMapping("xq/login")
+    public R xqdpLogin(@RequestBody LoginBody loginBody) {
+        String account = loginBody.getAccount();
+        String password = loginBody.getPassword();
+        boolean empty = ObjectUtils.isEmpty(account);
+        boolean empty1 = ObjectUtils.isEmpty(password);
+        if (empty || empty1) {
+            return R.fail("账户密码不能为空");
+        }
+        R r = tokenService.loginXQDP(account, password,"wx0cef797390444b75");
+        return r;
+    }
+
+    @ApiOperation(value = "花城大屏登录", response = LoginReturnVO.class)
+    @PostMapping("hc/login")
+    public R hcdpLogin(@RequestBody LoginBody loginBody) {
+        String account = loginBody.getAccount();
+        String password = loginBody.getPassword();
+        boolean empty = ObjectUtils.isEmpty(account);
+        boolean empty1 = ObjectUtils.isEmpty(password);
+        if (empty || empty1) {
+            return R.fail("账户密码不能为空");
+        }
+        R r = tokenService.loginCommunityBackage(account, password,"wx118de8a734d269f0");
+        return r;
+    }
+
+
+    @ApiOperation(value = "电动车商城商家后台登录", response = LoginReturnVO.class)
+    @PostMapping("battery/login")
+    public R batteryLogin(@RequestBody LoginBody loginBody) {
+        String account = loginBody.getAccount();
+        String password = loginBody.getPassword();
+        boolean empty = ObjectUtils.isEmpty(account);
+        boolean empty1 = ObjectUtils.isEmpty(password);
+        if (empty || empty1) {
+            return R.fail("账户密码不能为空");
+        }
+        R r = tokenService.loginBatteryUser(account, password,this.getAppId());
+        return r;
+    }
+
+    @ApiOperation(value = "商家后台登录", response = LoginReturnVO.class)
+    @PostMapping("loginShopBackStage")
+    public R loginShopBackStage(@RequestBody LoginBody loginBody){
+        String account = loginBody.getAccount();
+        String password = loginBody.getPassword();
+        boolean empty = ObjectUtils.isEmpty(account);
+        boolean empty1 = ObjectUtils.isEmpty(password);
+        if (empty || empty1) {
+            return R.fail("账户密码不能为空");
+        }
+        log.info("登录用户信息【{}】", loginBody);
+        try {
+            R<ConvenientMerchantVO> merchant = communityService.getMerchantInfoByAccount(account);
+            if (R.isOk(merchant)) {
+                ConvenientMerchantVO merchantVO =
+                        JSONObject.parseObject(JSONObject.toJSONString(merchant.getData()), ConvenientMerchantVO.class);
+                Boolean accountValid = merchantVO.getAccountStatus() == 1;
+                if (accountValid) {
+                    R result = tokenService.loginShopBackStage(account, loginBody.getPassword(),this.getAppId());
+                    return result;
+                } else {
+                    return R.fail("账号被禁用");
+                }
+            }
+            return R.fail(merchant.getMsg());
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.fail("登陆失败了");
+        }
+    }
+
+
+    /**
+     * 认证中心刷新token
+     *
+     *            用户端保存的刷新token
+     * @return 新的token 和刷新token
+     */
+    @ApiOperation(value = "刷新token", response = LoginReturnVO.class)
+    @PostMapping("getNewToken")
+    public R getNewToken(@RequestBody LoginUserInfoVO loginUserInfoVO)
+    {
+        return tokenService.getNewToken(loginUserInfoVO);
+    }
+
+    /**
+     * 认证中心刷新token
+     *
+     *            用户端保存的刷新token
+     * @return 新的token 和刷新token
+     */
+//    @ApiOperation(value = "刷新token", response = LoginReturnVO.class)
+//    @PostMapping("/getNewToken")
+//    public R getNewToken(@RequestBody LoginUserInfoVO loginUserInfoVO) {
+//        String token = JWTTokenUtil.generateToken(loginUserInfoVO);
+//        String refeshToken = JWTTokenUtil.generateRefeshToken(loginUserInfoVO);
+//        LoginReturnVO loginReturnVO = new LoginReturnVO();
+//        loginReturnVO.setToken(token);
+//        loginReturnVO.setRefreshToken(refeshToken);
+//        return R.ok(loginReturnVO);
+//    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/MainMemberApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/MainMemberApi.java
new file mode 100644
index 0000000..250bd66
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/MainMemberApi.java
@@ -0,0 +1,89 @@
+package com.panzhihua.community_backstage.api;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Collections;
+import java.util.List;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import com.alibaba.excel.EasyExcel;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.KeyPersonInfoDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.ExcelSelectObject;
+import com.panzhihua.common.utlis.ExcelUtil;
+import com.panzhihua.community_backstage.biz.KeyPersonBizServiceImpl;
+import com.panzhihua.community_backstage.listen.KeyPersonInfoExcelListen;
+import com.panzhihua.community_backstage.model.dto.KeyPersonExcelExportDto;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * program 攀枝花智慧社区项目 description 特殊人群管理API
+ *
+ * @author manailin Date 2021-01-22 15:30
+ **/
+@Slf4j
+@Api(tags = {"特殊人群管理API"})
+@RestController
+@RequestMapping("/")
+public class MainMemberApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @Resource
+    private KeyPersonBizServiceImpl keyPersonBizService;
+
+    /**
+     * description 批量保存重点人群人员信息
+     *
+     * @param file
+     *            重点人群信息
+     * @return R 保存结果
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @PostMapping(value = "mainMember/import", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R importExcl(@RequestParam MultipartFile file, HttpServletRequest request) {
+        // 获取文件名
+        String fileName = file.getOriginalFilename();
+        log.info("传入文件名字【{}】", fileName);
+        try {
+            InputStream inputStream = file.getInputStream();
+            LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+            EasyExcel.read(inputStream, KeyPersonInfoDTO.class,
+                new KeyPersonInfoExcelListen(communityService, loginUserInfo)).sheet().doRead();
+        } catch (IOException e) {
+            e.printStackTrace();
+            log.error("导入模板失败【{}】", e.getMessage());
+        }
+        return R.ok();
+    }
+
+    /**
+     * description exportUser 导出用于导入的模板EXCEL
+     *
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @ApiOperation(value = "导出用于导入的模板EXCEL", notes = "导出用于导入的模板EXCEL")
+    @GetMapping("/export/model")
+    public void exportUser(HttpServletResponse response) throws IOException {
+        List<ExcelSelectObject> selectListObject = keyPersonBizService.defineExcelModelData();
+        // 导出操作
+        ExcelUtil.exportExcelForSelectList(Collections.emptyList(), "特殊人员信息导入模版", "特殊人员信息导入模版",
+            KeyPersonExcelExportDto.class, "特殊人员信息导入模版.xls", selectListObject, response);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/MostBeautifulApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/MostBeautifulApi.java
new file mode 100644
index 0000000..fad3624
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/MostBeautifulApi.java
@@ -0,0 +1,160 @@
+package com.panzhihua.community_backstage.api;
+
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.MostBeautifulVolunteerVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.StringUtils;
+import io.swagger.annotations.Api;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@Api(tags = {"最美志愿者API"})
+@RestController
+@RequestMapping("/mostBeautifulVolunteer")
+public class MostBeautifulApi
+{
+
+
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 查询单个
+     * @return
+     */
+    @GetMapping("/queryById")
+    public R queryById(@RequestParam("id") String id)
+    {
+        if(StringUtils.isEmpty(id))
+        {
+            return R.fail("id不能为空");
+        }
+        return communityService.queryById2(id);
+    }
+
+
+    /**
+     * 分页查询
+     * @param name
+     * @param unmountType
+     * @return
+     */
+    @GetMapping("/getqueryList")
+    public R queryList(@RequestParam("pageNum") int pageNum,
+                       @RequestParam("pageSize")int pageSize,
+                       @RequestParam(value = "name", required = false) String name,
+                       @RequestParam(value = "unmountType", required = false) String unmountType)
+    {
+        if(StringUtils.isEmpty(name))
+        {
+            name=null;
+        }
+        if(StringUtils.isEmpty(unmountType))
+        {
+            unmountType=null;
+        }
+
+        return communityService.queryList(pageNum,pageSize,name,unmountType);
+    }
+
+
+
+    /**
+     * 新增
+     * @param mostBeautifulVolunteerVO
+     * @return
+     */
+    @PostMapping("/addMostBeautiful")
+    public R insertMostBeautifulVolunteer(@RequestBody MostBeautifulVolunteerVO mostBeautifulVolunteerVO)
+    {
+
+        if(mostBeautifulVolunteerVO==null)
+        {
+            return R.fail("参数不能为空");
+        }
+
+        if(StringUtils.isEmpty(mostBeautifulVolunteerVO.getCommunityId()))
+        {
+            return R.fail("社区id不能为空");
+        }
+
+        return communityService.insertMostBeautifulVolunteer(mostBeautifulVolunteerVO);
+    }
+
+
+    /**
+     * 更新
+     * @param mostBeautifulVolunteerVO
+     * @return
+     */
+    @PostMapping("/upMostBeautiful")
+    public R updateById(@RequestBody MostBeautifulVolunteerVO mostBeautifulVolunteerVO)
+    {
+        if(mostBeautifulVolunteerVO==null)
+        {
+            return R.fail("参数不能为空");
+        }
+
+        if(StringUtils.isEmpty(mostBeautifulVolunteerVO.getId()))
+        {
+            return R.fail("id不能为空");
+        }
+
+        if(StringUtils.isEmpty(mostBeautifulVolunteerVO.getCommunityId()))
+        {
+            return R.fail("社区id不能为空");
+        }
+
+        return communityService.updateById(mostBeautifulVolunteerVO);
+    }
+
+
+    /**
+     * 上下架接口
+     * @param mostBeautifulVolunteerVO
+     * @return
+     */
+    @PostMapping("/unmount")
+    public R unmount(@RequestBody MostBeautifulVolunteerVO mostBeautifulVolunteerVO)
+    {
+        if(mostBeautifulVolunteerVO==null)
+        {
+            return R.fail("参数不能为空");
+        }
+
+        if(StringUtils.isEmpty(mostBeautifulVolunteerVO.getId()))
+        {
+            return R.fail("id不能为空");
+        }
+
+        if(StringUtils.isEmpty(mostBeautifulVolunteerVO.getCommunityId()))
+        {
+            return R.fail("社区id不能为空");
+        }
+
+        if(StringUtils.isEmpty(mostBeautifulVolunteerVO.getUnmountType()))
+        {
+            return R.fail("上下架状态不能为空");
+        }
+
+        return communityService.updateById(mostBeautifulVolunteerVO);
+    }
+
+
+
+    /**
+     * 删除
+     * @param Id
+     * @return
+     */
+    @DeleteMapping("/delectVuId")
+    public R deleteById(@RequestParam("id")  String Id)
+    {
+        return communityService.deleteById(Id);
+    }
+
+}
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
new file mode 100644
index 0000000..0684b5c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/NeighborApi.java
@@ -0,0 +1,229 @@
+package com.panzhihua.community_backstage.api;
+
+import javax.annotation.Resource;
+
+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;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.neighbor.*;
+import com.panzhihua.common.model.vos.user.SysUserNoticeVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.user.UserService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+import static java.util.Objects.isNull;
+
+/**
+ * @auther llming
+ * @describe
+ */
+@Slf4j
+@RestController
+@RequestMapping("/neighbor/")
+@Api(tags = {"邻里圈服务"})
+public class NeighborApi extends BaseController {
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private UserService userService;
+
+    @ApiOperation(value = "邻里圈_分页", response = ComActNeighborCircleAdminVO.class)
+    @PostMapping("pageNeighborByAdmin")
+    R pageNeighborByAdmin(@RequestBody ComActNeighborCircleAdminDTO comActNeighborCircleAdminDTO) {
+        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
+        comActNeighborCircleAdminDTO.setCommunityId(loginUserInfo.getCommunityId());
+        return communityService.pageNeighborByAdmin(comActNeighborCircleAdminDTO);
+    }
+
+    /**
+     * 后台修改邻里圈
+     * 
+     * @param editNeighborCircleAdminVO
+     *            请求参数
+     */
+    @ApiOperation(value = "邻里圈_修改")
+    @PostMapping("changeStatusByAdmin")
+    R changeStatusByAdmin(@RequestBody EditNeighborCircleAdminVO editNeighborCircleAdminVO) {
+        R r = communityService.changeStatusByAdmin(editNeighborCircleAdminVO);
+        if (R.isOk(r)) {// 邻里圈审核
+            if (editNeighborCircleAdminVO.getStatus().equals(EditNeighborCircleAdminVO.status.xs)) {
+                // 审核通过添加提示信息
+                SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO();
+                sysUserNoticeVO.setUserId(Long.parseLong(r.getData().toString()));
+                sysUserNoticeVO.setType(3);
+                sysUserNoticeVO.setTitle("问题清单审核通过");
+                sysUserNoticeVO.setBusinessType(12);
+                sysUserNoticeVO.setBusinessTitle("");
+                sysUserNoticeVO.setBusinessContent("您发布的问题清单已通过审核,可在问题清单模块查看");
+                sysUserNoticeVO.setBusinessId(editNeighborCircleAdminVO.getId());
+                sysUserNoticeVO.setStatus(0);
+                sysUserNoticeVO.setBusinessStatus(2);
+                R r2 = userService.addNotice(sysUserNoticeVO);
+                if (R.isOk(r2)) {
+                    log.info("问题清单审核通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+                }
+            } else if (editNeighborCircleAdminVO.getStatus().equals(EditNeighborCircleAdminVO.status.bh)) {
+                // 审核驳回添加提示信息
+                SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO();
+                sysUserNoticeVO.setUserId(Long.parseLong(r.getData().toString()));
+                sysUserNoticeVO.setType(3);
+                sysUserNoticeVO.setTitle("问题清单审核未通过");
+                sysUserNoticeVO.setBusinessType(12);
+                sysUserNoticeVO.setBusinessContent("驳回原因:" + editNeighborCircleAdminVO.getRefuseReason());
+                sysUserNoticeVO.setBusinessTitle("");
+                sysUserNoticeVO.setBusinessId(editNeighborCircleAdminVO.getId());
+                sysUserNoticeVO.setStatus(0);
+                sysUserNoticeVO.setBusinessStatus(1);
+                R r2 = userService.addNotice(sysUserNoticeVO);
+                if (R.isOk(r2)) {
+                    log.info("问题清单审核通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+                }
+            }
+        }
+        return r;
+    }
+
+    /**
+     * 邻里圈_后台删除
+     * 
+     * @param id
+     *            邻里圈id
+     * @return 邻里圈列表
+     */
+    @ApiOperation(value = "邻里圈_删除")
+    @PostMapping("deleteByAdmin")
+    R deleteByAdmin(@RequestParam("id") Long id) {
+        return communityService.deleteByAdmin(id);
+    }
+
+    @ApiOperation(value = "邻里圈_基础详情", response = DetailNeighborCircleAdminVO.class)
+    @GetMapping("detailNeighborByAdmin")
+    R detailNeighborByAdmin(@RequestParam("id") Long id) {
+        return communityService.detailNeighborByAdmin(id);
+    }
+
+    @ApiOperation(value = "邻里圈的所有评论_分页", response = ComActNeighborCommentByAdminVO.class)
+    @PostMapping("detailNeighborAllCommentByAdmin")
+    R detailNeighborAllCommentByAdmin(@RequestBody DetailNeighborAllCommentByAdminDTO dto) {
+        return communityService.detailNeighborAllCommentByAdmin(dto);
+    }
+
+    @ApiOperation(value = "评论的状态_修改")
+    @PostMapping("changeCommentStatusByAdmin")
+    R changeCommentStatusByAdmin(@RequestBody ChangeCommentStatusByAdminVO vo) {
+        return communityService.changeCommentStatusByAdmin(vo);
+    }
+
+    @ApiOperation(value = "邻里圈评论_详情", response = ComActNeighborCommentByAdminVO.class)
+    @GetMapping("detailNeighborCommentByAdmin")
+    R detailNeighborCommentByAdmin(@RequestParam("id") Long id) {
+        return communityService.detailNeighborCommentByAdmin(id);
+    }
+
+    @ApiOperation(value = "邻里圈评论回复_分页", response = ComActNeighborCommentReplyByAdminVO.class)
+    @PostMapping("detailNeighborCommentAllReply")
+    R detailNeighborCommentAllReply(@RequestBody DetailNeighborCommentReplyByAdminDTO dto) {
+        return communityService.detailNeighborCommentAllReply(dto);
+    }
+
+    @ApiOperation(value = "邻里圈评论回复_基本详情", response = ComActNeighborCommentReplyByAdminVO.class)
+    @GetMapping("detailNeighborCommentReply")
+    R detailNeighborCommentReply(@RequestParam("id") Long id) {
+        return communityService.detailNeighborCommentReply(id);
+    }
+
+    @ApiOperation(value = "评论回复状态_修改")
+    @PostMapping("changeCommentReplyStatusByAdmin")
+    R changeCommentReplyStatusByAdmin(@RequestBody ChangeCommentReplyStatusByAdminVO changeStatusReplyVO) {
+        return communityService.changeCommentReplyStatusByAdmin(changeStatusReplyVO);
+    }
+
+    @ApiOperation(value = "邻里圈_添加")
+    @PostMapping("addNeighborByAdmin")
+    R addNeighborByAdmin(@RequestBody AddNeighborCircleAdminVO addNeighborCircleAdminVO) {
+        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
+        addNeighborCircleAdminVO.setUserId(loginUserInfo.getUserId());
+        return communityService.addNeighborByAdmin(addNeighborCircleAdminVO);
+    }
+
+    @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);
+    }
+    @ApiOperation(value = "分页查询邻里圈话题列表", response = ComActNeighborCircleTopicAdminVO.class)
+    @PostMapping("pageNeighborTopicByAdmin")
+    public R pageNeighborTopicByAdmin(@RequestBody ComActNeighborCircleTopicAdminDTO circleTopicAdminDTO) {
+        return communityService.pageNeighborTopicByAdmin(circleTopicAdminDTO);
+    }
+
+
+    /**
+     * 分页查询邻里圈列表
+     *
+     * @param neighborCircleAppDTO
+     *            请求参数
+     * @return 邻里圈列表
+     */
+    @ApiOperation(value = "新版接单问题",response =ComActNeighborCircleAppVO.class )
+    @PostMapping("selectSolve")
+    public R selectSolve(@RequestBody ComActNeighborCircleAppDTO neighborCircleAppDTO) {
+        return communityService.selectSolve(neighborCircleAppDTO);
+    }
+
+
+    /**
+     * 修改数据
+     * @param editNeighborCircleAdminVO
+     * @return
+     */
+    @ApiOperation(value = "接单 反馈",response =ComActNeighborCircleAppVO.class )
+    @PostMapping("update")
+    public R order(@RequestBody EditNeighborCircleAdminVO editNeighborCircleAdminVO){
+        return this.communityService.order(editNeighborCircleAdminVO);
+    }
+    @ApiOperation(value = "查询社区邻里圈话题列表", response = ComActNeighborCircleTopicAppVO.class)
+    @GetMapping("topic/list")
+    public R getNeighborTopicByApp(
+            @RequestParam(value = "name",defaultValue = "",required = false) String name) {
+        return communityService.getNeighborTopicByApp(name);
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/NeighborWestApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/NeighborWestApi.java
new file mode 100644
index 0000000..f0820ca
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/NeighborWestApi.java
@@ -0,0 +1,218 @@
+package com.panzhihua.community_backstage.api;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.dtos.neighbor.*;
+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.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.neighbor.*;
+import com.panzhihua.common.model.vos.user.SysUserNoticeVO;
+import com.panzhihua.common.service.community.CommunityWestService;
+import com.panzhihua.common.service.user.UserService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+import static java.util.Objects.isNull;
+
+/**
+ * @auther llming
+ * @describe
+ */
+@Slf4j
+@RestController
+@RequestMapping("/neighborWest/")
+@Api(tags = {"邻里圈服务"})
+public class NeighborWestApi extends BaseController {
+    @Resource
+    private CommunityWestService communityWestService;
+    @Resource
+    private UserService userService;
+
+    @ApiOperation(value = "邻里圈_分页", response = ComActNeighborCircleAdminVO.class)
+    @PostMapping("pageNeighborByAdmin")
+    R pageNeighborByAdmin(@RequestBody ComActNeighborCircleAdminDTO comActNeighborCircleAdminDTO) {
+        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
+        comActNeighborCircleAdminDTO.setCommunityId(loginUserInfo.getCommunityId());
+        return communityWestService.pageNeighborByAdmin(comActNeighborCircleAdminDTO);
+    }
+
+    /**
+     * 后台修改邻里圈
+     *
+     * @param editNeighborCircleAdminVO
+     *            请求参数
+     */
+    @ApiOperation(value = "邻里圈_修改")
+    @PostMapping("changeStatusByAdmin")
+    R changeStatusByAdmin(@RequestBody EditNeighborCircleAdminVO editNeighborCircleAdminVO) {
+        R r = communityWestService.changeStatusByAdmin(editNeighborCircleAdminVO);
+        if (R.isOk(r)) {// 邻里圈审核
+            if (editNeighborCircleAdminVO.getStatus().equals(EditNeighborCircleAdminVO.status.xs)) {
+                // 审核通过添加提示信息
+                SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO();
+                sysUserNoticeVO.setUserId(Long.parseLong(r.getData().toString()));
+                sysUserNoticeVO.setType(3);
+                sysUserNoticeVO.setTitle("邻里圈审核通过");
+                sysUserNoticeVO.setBusinessType(12);
+                sysUserNoticeVO.setBusinessTitle("");
+                sysUserNoticeVO.setBusinessContent("您发布的邻里圈已通过审核,可在邻里圈模块查看");
+                sysUserNoticeVO.setBusinessId(editNeighborCircleAdminVO.getId());
+                sysUserNoticeVO.setStatus(0);
+                sysUserNoticeVO.setBusinessStatus(2);
+                R r2 = userService.addNotice(sysUserNoticeVO);
+                if (R.isOk(r2)) {
+                    log.info("邻里圈审核通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+                }
+            } else if (editNeighborCircleAdminVO.getStatus().equals(EditNeighborCircleAdminVO.status.bh)) {
+                // 审核驳回添加提示信息
+                SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO();
+                sysUserNoticeVO.setUserId(Long.parseLong(r.getData().toString()));
+                sysUserNoticeVO.setType(3);
+                sysUserNoticeVO.setTitle("邻里圈审核未通过");
+                sysUserNoticeVO.setBusinessType(12);
+                sysUserNoticeVO.setBusinessContent("驳回原因:" + editNeighborCircleAdminVO.getRefuseReason());
+                sysUserNoticeVO.setBusinessTitle("");
+                sysUserNoticeVO.setBusinessId(editNeighborCircleAdminVO.getId());
+                sysUserNoticeVO.setStatus(0);
+                sysUserNoticeVO.setBusinessStatus(1);
+                R r2 = userService.addNotice(sysUserNoticeVO);
+                if (R.isOk(r2)) {
+                    log.info("邻里圈审核通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+                }
+            }
+        }
+        return r;
+    }
+
+    /**
+     * 邻里圈_后台删除
+     *
+     * @param id
+     *            邻里圈id
+     * @return 邻里圈列表
+     */
+    @ApiOperation(value = "邻里圈_删除")
+    @PostMapping("deleteByAdmin")
+    R deleteByAdmin(@RequestParam("id") Long id) {
+        return communityWestService.deleteByAdmin(id);
+    }
+
+    @ApiOperation(value = "邻里圈_基础详情", response = DetailNeighborCircleAdminVO.class)
+    @GetMapping("detailNeighborByAdmin")
+    R detailNeighborByAdmin(@RequestParam("id") Long id) {
+        return communityWestService.detailNeighborByAdmin(id);
+    }
+
+    @ApiOperation(value = "邻里圈的所有评论_分页", response = ComActNeighborCommentByAdminVO.class)
+    @PostMapping("detailNeighborAllCommentByAdmin")
+    R detailNeighborAllCommentByAdmin(@RequestBody DetailNeighborAllCommentByAdminDTO dto) {
+        return communityWestService.detailNeighborAllCommentByAdmin(dto);
+    }
+
+    @ApiOperation(value = "评论的状态_修改")
+    @PostMapping("changeCommentStatusByAdmin")
+    R changeCommentStatusByAdmin(@RequestBody ChangeCommentStatusByAdminVO vo) {
+        return communityWestService.changeCommentStatusByAdmin(vo);
+    }
+
+    @ApiOperation(value = "邻里圈评论_详情", response = ComActNeighborCommentByAdminVO.class)
+    @GetMapping("detailNeighborCommentByAdmin")
+    R detailNeighborCommentByAdmin(@RequestParam("id") Long id) {
+        return communityWestService.detailNeighborCommentByAdmin(id);
+    }
+
+    @ApiOperation(value = "邻里圈评论回复_分页", response = ComActNeighborCommentReplyByAdminVO.class)
+    @PostMapping("detailNeighborCommentAllReply")
+    R detailNeighborCommentAllReply(@RequestBody DetailNeighborCommentReplyByAdminDTO dto) {
+        return communityWestService.detailNeighborCommentAllReply(dto);
+    }
+
+    @ApiOperation(value = "邻里圈评论回复_基本详情", response = ComActNeighborCommentReplyByAdminVO.class)
+    @GetMapping("detailNeighborCommentReply")
+    R detailNeighborCommentReply(@RequestParam("id") Long id) {
+        return communityWestService.detailNeighborCommentReply(id);
+    }
+
+    @ApiOperation(value = "评论回复状态_修改")
+    @PostMapping("changeCommentReplyStatusByAdmin")
+    R changeCommentReplyStatusByAdmin(@RequestBody ChangeCommentReplyStatusByAdminVO changeStatusReplyVO) {
+        return communityWestService.changeCommentReplyStatusByAdmin(changeStatusReplyVO);
+    }
+
+    @ApiOperation(value = "邻里圈_添加")
+    @PostMapping("addNeighborByAdmin")
+    R addNeighborByAdmin(@RequestBody AddNeighborCircleAdminVO addNeighborCircleAdminVO) {
+        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
+        addNeighborCircleAdminVO.setUserId(loginUserInfo.getUserId());
+        return communityWestService.addNeighborByAdmin(addNeighborCircleAdminVO);
+    }
+
+    @ApiOperation(value = "分页查询邻里圈话题列表", response = ComActNeighborCircleTopicAdminVO.class)
+    @PostMapping("pageNeighborTopicByAdmin")
+    public R pageNeighborTopicByAdmin(@RequestBody ComActNeighborCircleTopicAdminDTO circleTopicAdminDTO) {
+        if (isNull(circleTopicAdminDTO.getCommunityId())) {
+            circleTopicAdminDTO.setCommunityId(this.getCommunityId());
+        }
+        return communityWestService.pageNeighborTopicByAdmin(circleTopicAdminDTO);
+    }
+
+    @ApiOperation(value = "添加邻里圈话题")
+    @PostMapping("addNeighborTopicByAdmin")
+    public R addNeighborTopicByAdmin(@RequestBody AddNeighborCircleTopicAdminDTO addCircleTopicAdminDTO) {
+        addCircleTopicAdminDTO.setCommunityId(this.getCommunityId());
+        addCircleTopicAdminDTO.setUserId(this.getUserId());
+        return communityWestService.addNeighborTopicByAdmin(addCircleTopicAdminDTO);
+    }
+
+    @ApiOperation(value = "编辑邻里圈话题")
+    @PostMapping("editNeighborTopicByAdmin")
+    public R editNeighborTopicByAdmin(@RequestBody AddNeighborCircleTopicAdminDTO addCircleTopicAdminDTO) {
+        if (addCircleTopicAdminDTO.getId() == null) {
+            return R.fail("参数错误");
+        }
+        addCircleTopicAdminDTO.setCommunityId(this.getCommunityId());
+        return communityWestService.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 = communityWestService.getSysConfValue(key + communityId,communityId);
+        if(R.isOk(isOk)){
+            if(isOk.getData() != null){
+                return isOk;
+            }else{
+                communityWestService.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 communityWestService.editSysConfValue(communityId,status);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/NewStriveApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/NewStriveApi.java
new file mode 100644
index 0000000..db9e513
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/NewStriveApi.java
@@ -0,0 +1,665 @@
+package com.panzhihua.community_backstage.api;
+
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.partybuilding.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.building.NewFightConfigVO;
+import com.panzhihua.common.model.vos.community.building.NewFightConvenientMerchantVO;
+import com.panzhihua.common.model.vos.community.building.NewFightShoppingOrderVO;
+import com.panzhihua.common.model.vos.community.building.NewFightShoppingVO;
+import com.panzhihua.common.model.vos.user.SysUserVO;
+import com.panzhihua.common.service.partybuilding.NewStriveForFeign;
+import com.panzhihua.common.utlis.StringUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+@Slf4j
+@Api(tags = {"双挣双评新模块-后台"})
+@RestController
+@RequestMapping("/StriveFor")
+public class NewStriveApi extends BaseController
+{
+
+    @Resource
+    private NewStriveForFeign newStriveForFeign;
+
+
+    /*****************************************************************************************************************
+     *
+     *                                   任务需求清单
+     *
+     ******************************************************************************************************************/
+    @ApiOperation(value = "任务需求清单列表", response = NeedProblemInventoryDTO.class)
+    @GetMapping("/NeedProblem/getList")
+    public R getNeedProblemList(@RequestParam("pageNum") int pageNum,
+                                @RequestParam("pageSize") int pageSize,
+                                @RequestParam(value = "search", required = false)String search,
+                                @RequestParam(value = "classifyId", required = false)String classifyId,
+                                @RequestParam(value = "status", required = false)String status,
+                                @RequestParam(value = "kind", required = false)String kind,
+                                @RequestParam(value = "userId", required = false)String userId,
+                                @RequestParam(value = "communityId", required = false)String communityId,
+                                @RequestParam(value = "isDisplay", required = false)String isDisplay,
+                                @RequestParam(value = "startTime", required = false) String startTime,
+                                @RequestParam(value = "endTime", required = false) String endTime)
+    {
+        Date start=null;
+        Date end=null;
+
+        try {
+            if(!StringUtils.isEmpty(startTime)) {
+                start = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(startTime);
+            }
+            if(!StringUtils.isEmpty(startTime)) {
+                end = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(endTime);
+            }
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return newStriveForFeign.getNeedProblemList(pageNum,pageSize,search,classifyId,status,kind,userId,"",communityId,isDisplay,start,end);
+    }
+
+
+    @ApiOperation(value = "任务需求清单我认领的列表", response = NeedProblemInventoryDTO.class)
+    @GetMapping("/getMyJoinNeedProblemList")
+    public R getMyJoinNeedProblemList(@RequestParam("pageNum") int pageNum,
+                                      @RequestParam("pageSize") int pageSize,
+                                      @RequestParam(value = "search", required = false)String search,
+                                      @RequestParam(value = "status", required = false)String status,
+                                      @RequestParam(value = "kind", required = false)String kind,
+                                      @RequestParam(value = "isDisplay", required = false)String isDisplay,
+                                      @RequestParam(value = "startTime", required = false) String startTime,
+                                      @RequestParam(value = "endTime", required = false) String endTime)
+    {
+        Date start=null;
+        Date end=null;
+
+        try {
+            if(!StringUtils.isEmpty(startTime)) {
+                start = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(startTime);
+            }
+            if(!StringUtils.isEmpty(startTime)) {
+                end = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(endTime);
+            }
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        return newStriveForFeign.getMyJoinNeedProblemList(pageNum,pageSize,search,status,kind,getUserId()+"",getUserId()+"",isDisplay,start,end);
+    }
+
+
+
+    @ApiOperation(value = "任务需求清单详情", response = NeedProblemInventoryDTO.class)
+    @GetMapping("/NeedProblem/getDetails")
+    public R getNeedProblemDetails(@RequestParam("id") String id)
+    {
+        return newStriveForFeign.getNeedProblemDetails(id,getUserId()+"");
+    }
+
+    @ApiOperation(value = "新增任务需求")
+    @PostMapping("/NeedProblem/addData")
+    public R addNeedProblemData(@RequestBody NeedProblemInventoryDTO item)
+    {
+        return newStriveForFeign.addNeedProblemData(item);
+    }
+
+    @ApiOperation(value = "编辑任务需求")
+    @PostMapping("/NeedProblem/editData")
+    public R editNeedProblemData(@RequestBody NeedProblemInventoryDTO item)
+    {
+        return newStriveForFeign.editNeedProblemData(item);
+    }
+
+    @ApiOperation(value = "删除任务需求")
+    @DeleteMapping("/NeedProblem/expurgateData")
+    public R expurgateNeedProblemData(@RequestParam("id") String id)
+    {
+        return newStriveForFeign.expurgateNeedProblemData(id);
+    }
+
+
+    /*******************************************************************************************************
+     *
+     *         任务需求报名
+     *
+     *******************************************************************************************************/
+    @ApiOperation(value = "任务报名列表", response = NeedProblemClaimDTO.class)
+    @GetMapping("/getNeedClaimList")
+    public R getNeedClaimList(@RequestParam(value = "taskId", required = false) String taskId,
+                              @RequestParam(value = "userId", required = false) String userId,
+                              @RequestParam(value = "unitId", required = false) String unitId)
+    {
+        return newStriveForFeign.getNeedClaimList(taskId,userId,unitId);
+    }
+
+    @ApiOperation(value = "任务报名详情", response = NeedProblemClaimDTO.class)
+    @GetMapping("/getNeedClaimDetails")
+    public R getNeedClaimDetails(@RequestParam(value = "id", required = false) String id,
+                                 @RequestParam(value = "taskId", required = false) String taskId,
+                                 @RequestParam(value = "userId", required = false) String userId)
+    {
+        return newStriveForFeign.getNeedClaimDetails(id,taskId,userId);
+    }
+
+    @ApiOperation(value = "任务报名")
+    @PostMapping("/addNeedClaimData")
+    public R addNeedClaimData(@RequestBody NeedProblemClaimDTO item)
+    {
+        return newStriveForFeign.addNeedClaimData(item);
+    }
+
+    @ApiOperation(value = "修改任务报名")
+    @PostMapping("/editNeedClaimData")
+    public R editNeedClaimData(@RequestBody NeedProblemClaimDTO item)
+    {
+        return newStriveForFeign.editNeedClaimData(item);
+    }
+
+    @ApiOperation(value = "取消报名")
+    @DeleteMapping("/expurgateNeedClaimData")
+    public R expurgateNeedClaimData(@RequestParam(value = "id", required = false) String id,
+                                    @RequestParam(value = "taskId", required = false) String taskId,
+                                    @RequestParam(value = "userId", required = false) String userId)
+    {
+        return newStriveForFeign.expurgateNeedClaimData(id,taskId,userId);
+    }
+
+
+    @ApiOperation(value = "打卡")
+    @GetMapping("/needClaimSignIn")
+    public R needClaimSignIn(@RequestParam("taskId") String taskId,
+                             @RequestParam("userId") String userId,
+                             @RequestParam("type") String type)
+    {
+
+        return newStriveForFeign.needClaimSignIn(taskId,userId,type);
+    }
+
+    /***************************************************************************************************************
+     *
+     *                 代单位接受
+     *
+     *************************************************************************************************************/
+    @ApiOperation(value = "代单位任务报名列表", response = NeedProblemUnitTaskDTO.class)
+    @GetMapping("/getNeedTaskList")
+    public R getNeedTaskList(@RequestParam("pageNum") int pageNum,
+                             @RequestParam("pageNum") int pageSize,
+                             @RequestParam(value = "unitId", required = false) String unitId,
+                             @RequestParam(value = "kind", required = false) String kind,
+                             @RequestParam(value = "status", required = false) String status)
+    {
+        return newStriveForFeign.getNeedTaskList(pageNum,pageSize,unitId,kind,status);
+    }
+
+    @ApiOperation(value = "代单位任务报名详情", response = NeedProblemUnitTaskDTO.class)
+    @GetMapping("/getNeedTaskDetails")
+    public R  getNeedTaskDetails(@RequestParam("id") String id)
+    {
+        return newStriveForFeign.getNeedTaskDetails(id);
+    }
+
+    @ApiOperation(value = "代单位任务添加")
+    @PostMapping("/addNeedTaskData")
+    public R  addNeedTaskData(@RequestBody NeedProblemUnitTaskDTO item)
+    {
+        return newStriveForFeign.addNeedTaskData(item);
+    }
+
+    @ApiOperation(value = "代单位任务修改")
+    @PostMapping("/editNeedTaskData")
+    public R  editNeedTaskData(@RequestBody NeedProblemUnitTaskDTO item)
+    {
+        return newStriveForFeign.editNeedTaskData(item);
+    }
+
+    @ApiOperation(value = "代单位任务删除")
+    @DeleteMapping("/expurgateNeedTaskData")
+    public R  expurgateNeedTaskData(@RequestParam("id") String id)
+    {
+        return newStriveForFeign.expurgateNeedTaskData(id);
+    }
+
+
+
+    /*******************************************************************************************************************
+     *
+     *                              新双争双评社区共建
+     *
+     ****************************************************************************************************************/
+
+    @ApiOperation(value = "社区共建项目列表", response = NewFightCommunityConstructionDTO.class)
+    @GetMapping("/getNewFightCommunityList")
+    public R getNewFightCommunityList(@RequestParam("pageNum") int pageNum,
+                                      @RequestParam("pageSize") int pageSize,
+                                      @RequestParam(value = "communityId", required = false)  String communityId)
+    {
+        return newStriveForFeign.getNewFightCommunityList(pageNum,pageSize,
+                communityId,null);
+    }
+
+    @ApiOperation(value = "社区共建项目删除", response = NewFightCommunityConstructionDTO.class)
+    @GetMapping("/getNewFightCommunityDetails")
+    public R getNewFightCommunityDetails(@RequestParam("id") String id)
+    {
+        return newStriveForFeign.getNewFightCommunityDetails(id,null);
+    }
+
+    @ApiOperation(value = "社区共建项目添加")
+    @PostMapping("/addNewFightCommunityData")
+    public R addNewFightCommunityData(@RequestBody NewFightCommunityConstructionDTO item)
+    {
+        return newStriveForFeign.addNewFightCommunityData(item);
+    }
+
+    @ApiOperation(value = "社区共建项目编辑")
+    @PostMapping("/editNewFightCommunityData")
+    public R editNewFightCommunityData(@RequestBody NewFightCommunityConstructionDTO item)
+    {
+        return newStriveForFeign.editNewFightCommunityData(item);
+    }
+
+    @ApiOperation(value = "社区共建项目删除")
+    @DeleteMapping("/expurgateNewFightCommunityData")
+    public R expurgateNewFightCommunityData(@RequestParam(value = "id", required = false) String id)
+    {
+        return newStriveForFeign.expurgateNewFightCommunityData(id);
+    }
+
+
+    /**************************************************************************************************************
+     *
+     *                                            项目规划
+     *
+     ****************************************************************************************************************/
+    @ApiOperation(value = "项目规划列表", response = NewFightCommunityConstructionDTO.class)
+    @GetMapping("/getProjectPlanList")
+    public R  getProjectPlanList(@RequestParam("pageNum") int pageNum,
+                                 @RequestParam("pageSize") int pageSize,
+                                 @RequestParam("projectId") String projectId)
+    {
+        return newStriveForFeign.getProjectPlanList(pageNum,pageSize,projectId);
+    }
+
+    @ApiOperation(value = "项目规划详情", response = NewFightCommunityConstructionDTO.class)
+    @GetMapping("/getProjectPlanDetails")
+    public R  getProjectPlanDetails(@RequestParam("id") String id)
+    {
+        return newStriveForFeign.getProjectPlanDetails(id);
+    }
+
+    @ApiOperation(value = "项目规划添加")
+    @PostMapping("/addProjectPlanData")
+    public R addProjectPlanData(@RequestBody NewFightProjectPlanDTO item)
+    {
+        return newStriveForFeign.addProjectPlanData(item);
+    }
+
+    @ApiOperation(value = "项目规划编辑")
+    @PostMapping("/editProjectPlanData")
+    public R editProjectPlanData(@RequestBody NewFightProjectPlanDTO item)
+    {
+        return newStriveForFeign.editProjectPlanData(item);
+    }
+
+
+    @ApiOperation(value = "项目规划确认完工")
+    @GetMapping("/editProjectPlanAccomplish")
+    public R editProjectPlanAccomplish(@RequestParam("id") String id)
+    {
+        return newStriveForFeign.editProjectPlanAccomplish(id);
+    }
+
+
+    @ApiOperation(value = "项目规划删除")
+    @DeleteMapping("/expurgateProjectPlanData")
+    public R expurgateProjectPlanData(@RequestParam("id") String id)
+    {
+        return newStriveForFeign.expurgateProjectPlanData(id);
+    }
+
+
+    /************************************************************************************************************
+     *
+     *                       资源共享
+     *
+     *************************************************************************************************************/
+
+    @ApiOperation(value = "资源共享列表", response = NewFightResourceSharingDTO.class)
+    @GetMapping("/ResourceSharing/getResourceSharingList")
+    public R getResourceSharingList(@RequestParam("pageNum") int pageNum,
+                                    @RequestParam("pageSize") int pageSize,
+                                    @RequestParam(value = "unitId", required = false)String unitId,
+                                    @RequestParam(value = "meritId", required = false) String meritId)
+    {
+        return newStriveForFeign.getResourceSharingList(pageNum,pageSize,null,unitId,meritId);
+    }
+
+    @ApiOperation(value = "资源共享详情", response = NewFightResourceSharingDTO.class)
+    @GetMapping("/ResourceSharing/getResourceSharingDetails")
+    public R getResourceSharingDetails(@RequestParam("id") String id)
+    {
+        return newStriveForFeign.getResourceSharingDetails(id);
+    }
+
+    @ApiOperation(value = "资源共享添加")
+    @PostMapping("/ResourceSharing/addResourceSharingData")
+    public R addResourceSharingData(@RequestBody NewFightResourceSharingDTO item)
+    {
+        return newStriveForFeign.addResourceSharingData(item);
+    }
+
+    @ApiOperation(value = "资源共享编辑")
+    @PostMapping("/ResourceSharing/editResourceSharingData")
+    public R editResourceSharingData(@RequestBody NewFightResourceSharingDTO item)
+    {
+        return newStriveForFeign.editResourceSharingData(item);
+    }
+
+    @ApiOperation(value = "资源共享删除")
+    @GetMapping("/ResourceSharing/expurgateResourceSharingData")
+    public R expurgateResourceSharingData(@RequestParam("id") String id)
+    {
+        return newStriveForFeign.expurgateResourceSharingData(id);
+    }
+
+
+    /************************************************************************************************************
+     *
+     *                               社区设置兑换时间地点
+     *
+     ******************************************************************************************************************/
+    @ApiOperation(value = "兑换时间地点详情", response = NewFightConfigVO.class)
+    @GetMapping("/getConfigDetails")
+    public R getConfigDetails(@RequestParam("communityId") String communityId)
+    {
+        return newStriveForFeign.getConfigDetails(communityId);
+    }
+
+    @ApiOperation(value = "兑换时间地点添加")
+    @PostMapping("/addConfigData")
+    public R addConfigData(@RequestBody NewFightConfigVO item)
+    {
+        return newStriveForFeign.addConfigData(item);
+    }
+
+    @ApiOperation(value = "兑换时间地点编辑")
+    @PostMapping("/editConfigData")
+    public R editConfigData(@RequestBody NewFightConfigVO item)
+    {
+        return newStriveForFeign.editConfigData(item);
+    }
+
+    @ApiOperation(value = "兑换时间地点删除")
+    @DeleteMapping("/expurgateConfigData")
+    public R expurgateConfigData(@RequestParam("communityId") String communityId)
+    {
+        return newStriveForFeign.expurgateConfigData(communityId);
+    }
+
+
+    /*******************************************************************************************************
+     *
+     *                   积分商城
+     *
+     *******************************************************************************************************/
+    @ApiOperation(value = "积分商品列表", response = NewFightShoppingVO.class)
+    @GetMapping("/getFightShoppingList")
+    public R getFightShoppingList(@RequestParam("pageNum") int pageNum,
+                                  @RequestParam("pageSize") int pageSize,
+                                  @RequestParam(value = "goodName", required = false)String goodName,
+                                  @RequestParam(value = "goodType", required = false)String goodType,
+                                  @RequestParam(value = "id", required = false)String id)
+    {
+        return newStriveForFeign.getFightShoppingList(pageNum,pageSize,getCommunityId()+"",
+                goodName,goodType,id);
+    }
+
+
+    @ApiOperation(value = "积分商品详情", response = NewFightShoppingVO.class)
+    @GetMapping("/getFightShoppingDetails")
+    public R getFightShoppingDetails(@RequestParam("id") String id)
+    {
+        return newStriveForFeign.getFightShoppingDetails(id);
+    }
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "积分商品添加")
+    @PostMapping("/addFightShoppingData")
+    public R addFightShoppingData(@RequestBody NewFightShoppingVO item)
+    {
+        return newStriveForFeign.addFightShoppingData(item);
+    }
+
+    @ApiOperation(value = "积分商品编辑")
+    @PostMapping("/editFightShoppingData")
+    public R editFightShoppingData(@RequestBody NewFightShoppingVO item)
+    {
+        return newStriveForFeign.editFightShoppingData(item);
+    }
+
+
+    @ApiOperation(value = "积分商品删除")
+    @DeleteMapping("/expurgateFightShoppingData")
+    public R expurgateFightShoppingData(@RequestParam("id") String id)
+    {
+        return newStriveForFeign.expurgateFightShoppingData(id);
+    }
+
+
+
+    /*******************************************************************************************************
+     *
+     *             商家模块
+     *
+     * ********************************************************************************************************/
+
+    /**
+     * 删除便民服务商家
+     *
+     * @return
+     */
+    @ApiOperation(value = "商家删除")
+    @DeleteMapping("/deleteMerchantById")
+    public R deleteMerchantById(@RequestParam("merchantId") String merchantId)
+    {
+        return newStriveForFeign.deleteMerchantById(merchantId);
+    }
+
+    /**
+     * 编辑状态
+     *
+     * @param merchantId
+     * @param status
+     * @return
+     */
+    @ApiOperation(value = "商家禁止or启用  status 1 启用  2禁止 ")
+    @GetMapping("/editMerchantStatus")
+    public R editMerchantStatus(@RequestParam("merchantId") String merchantId,
+                                @RequestParam("status") String status)
+    {
+        return newStriveForFeign.editMerchantStatus(merchantId,status);
+    }
+
+    /**
+     * 分页查询便民服务商家 运营后台
+     *
+     * @return
+     */
+    @ApiOperation(value = "商家列表", response = NewFightConvenientMerchantVO.class)
+    @GetMapping("/pageMerchant")
+    public R pageMerchant(@RequestParam("pageNum") int pageNum,
+                          @RequestParam("pageSize") int pageSize,
+                          @RequestParam(value = "isDel", required = false) String isDel,
+                          @RequestParam(value = "keyword", required = false)String keyword,
+                          @RequestParam(value = "status", required = false)String status)
+    {
+        return newStriveForFeign.pageMerchant(pageNum,pageSize,getCommunityId()+"",isDel,keyword,status);
+    }
+
+    /**
+     * 查询商家信息
+     *
+     * @param merchantId
+     * @return
+     */
+    @ApiOperation(value = "商家详情", response = NewFightConvenientMerchantVO.class)
+    @GetMapping("/selectMerchantById")
+    public R selectMerchantById(@RequestParam("merchantId") String merchantId)
+    {
+        return newStriveForFeign.selectMerchantById(merchantId);
+    }
+
+    @ApiOperation(value = "商家添加")
+    @PostMapping("/addMerchantData")
+    public R addMerchantData(@RequestBody NewFightConvenientMerchantVO item)
+    {
+        return newStriveForFeign.addMerchantData(item);
+    }
+
+    @ApiOperation(value = "商家编辑")
+    @PostMapping("/editMerchantData")
+    public R editMerchantData(@RequestBody NewFightConvenientMerchantVO item)
+    {
+        return newStriveForFeign.editMerchantData(item);
+    }
+
+    @ApiOperation(value = "搜索用户", response = SysUserVO.class)
+    @GetMapping("/selectUserList")
+    public R selectUserList(@RequestParam("phoneOrname") String phoneOrname)
+    {
+        return newStriveForFeign.selectUserListB(getCommunityId()+"",phoneOrname);
+    }
+
+
+    /*******************************************************************************************************************
+     *
+     *                                        商品订单
+     *
+     ****************************************************************************************************************/
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "订单列表", response = NewFightShoppingOrderVO.class)
+    @GetMapping("/orderGetList")
+    public R orderGetList(@RequestParam("pageNum") int pageNum,
+                          @RequestParam("pageSize") int pageSize,
+                          @RequestParam(value = "userId", required = false)String userId,
+                          @RequestParam(value = "goodsId", required = false)String goodsId,
+                          @RequestParam(value = "orderNumber", required = false)String orderNumber,
+                          @RequestParam(value = "goodName", required = false)String goodName,
+                          @RequestParam(value = "name", required = false)String name,
+                          @RequestParam(value = "cancelType", required = false)String cancelType,
+                          @RequestParam(value = "merchantId", required = false) String merchantId,
+                          @RequestParam(value = "orderType", required = false) String orderType)
+    {
+        return newStriveForFeign.orderGetList(pageNum,pageSize,userId,goodsId,orderNumber,
+                goodName,name,cancelType,getCommunityId()+"",merchantId,orderType);
+    }
+
+    /**
+     * 分页详情
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "订单详情", response = NewFightShoppingOrderVO.class)
+    @GetMapping("/orderGetDetails")
+    public R orderGetDetails(@RequestParam("id") String id)
+    {
+        return newStriveForFeign.orderGetDetails(id,getCommunityId()+"");
+    }
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "订单添加")
+    @PostMapping("/orderAddData")
+    public R orderAddData(@RequestBody NewFightShoppingOrderVO item)
+    {
+//        item.setCommunityId(getCommunityId()+"");
+//        item.setUserId(getUserId()+"");
+//        item.setOrderType("2");
+        return newStriveForFeign.orderAddData(item);
+    }
+
+
+    /**
+     * 编辑
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "订单编辑", response = NewFightShoppingOrderVO.class)
+    @PostMapping("/NewFightOrder/orderEditData")
+    public R orderEditData(@RequestBody NewFightShoppingOrderVO item)
+    {
+        return newStriveForFeign.orderEditData(item);
+    }
+
+
+    /**
+     * 取消
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "订单取消")
+    @GetMapping("/orderCancelOrder")
+    public R orderCancelOrder(@RequestParam("orderId") String orderId)
+    {
+        return newStriveForFeign.orderCancelOrder(orderId,getCommunityId()+"");
+    }
+
+
+    /**
+     * 删除
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "订单删除")
+    @DeleteMapping("/orderExpurgateData")
+    public R orderExpurgateData(@RequestParam("id") String id)
+    {
+        return newStriveForFeign.orderExpurgateData(id,getCommunityId()+"");
+    }
+
+
+    @ApiOperation(value = "订单核销")
+    @GetMapping("/orderCheck")
+    public R orderEditData(@RequestParam("id") String id)
+    {
+
+        if(org.apache.commons.lang3.StringUtils.isEmpty(id))
+        {
+            return R.fail("订单id不能为空");
+        }
+
+        NewFightShoppingOrderVO vo=new NewFightShoppingOrderVO();
+        vo.setId(id);
+        vo.setCancelType("1");
+        vo.setCancelTime(new Date());
+        return newStriveForFeign.orderEditData(vo);
+    }
+
+    //定时任务测试
+    @PostMapping("/timedNewFightNeedProblemInventoryHandler")
+    public R timedNewFightNeedProblemInventoryHandler()
+    {
+        return newStriveForFeign.timedNewFightNeedProblemInventoryHandler();
+    }
+
+
+
+}
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
new file mode 100644
index 0000000..49b74df
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/PopulationApi.java
@@ -0,0 +1,3707 @@
+package com.panzhihua.community_backstage.api;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.enums.*;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.interfaces.OperLog;
+import com.panzhihua.common.listen.*;
+import com.panzhihua.common.model.dtos.community.*;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.*;
+import com.panzhihua.common.model.vos.user.UserElectronicFileVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.AgeUtils;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.SFTPUtil;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.community_backstage.excel.CustomSheetWriteHandler;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+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.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+@Slf4j
+@Api(tags = {"社区管理/基础数据库/实有人口"})
+@RestController
+@RequestMapping("/common/data/population/")
+public class PopulationApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private UserService userService;
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+    @Value("${excel.userurl}")
+    private String excelUrl;
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+
+    @ApiOperation(value = "分页查询实有人口列表", response = ComMngPopulationVO.class)
+    @PostMapping("/pagePopulation")
+    public R pageQueryComMngRealAssets(@RequestBody ComMngPopulationDTO comMngPopulationVO) {
+        // 获取登陆用户绑定社区id
+        Long communityId = this.getLoginUserInfo().getCommunityId();
+        comMngPopulationVO.setActId(communityId);
+        return communityService.pagePopulation(comMngPopulationVO);
+    }
+
+    @ApiOperation(value = "实有人口统计接口", response = ComMngPopulationTotalVO.class)
+    @PostMapping("/statistics")
+    public R getPopulationTotalByAdmin() {
+        // 获取登陆用户绑定社区id
+        Long communityId = this.getLoginUserInfo().getCommunityId();
+        return communityService.getPopulationTotalByAdmin(communityId);
+    }
+
+    @ApiOperation(value = "excel导入实有人口")
+    @PostMapping(value = "/serve/import", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    @OperLog(operModul = "居民信息管理-实有人口导入", operType = 0, businessType = "实有人口导入")
+    public R downloadPopulationTemplate(@RequestParam MultipartFile file, HttpServletRequest request) {
+        // 获取文件名
+        String fileName = file.getOriginalFilename();
+        log.info("传入文件名字【{}】", fileName);
+        InputStream inputStream = null;
+        try {
+            inputStream = file.getInputStream();
+            ComMngPopulationServeExcelListen comMngPopulationServeExcelListen = new ComMngPopulationServeExcelListen(
+                    communityService, this.getCommunityId(), this.getLoginUserInfo().getUserId(), stringRedisTemplate);
+            EasyExcel.read(inputStream, null, comMngPopulationServeExcelListen).sheet().doRead();
+        } catch (IOException e) {
+            log.error("导入模板失败【{}】", e.getMessage());
+            e.printStackTrace();
+        }
+        return R.ok();
+    }
+
+    @ApiOperation(value = "excel填充旧数据的人员类型")
+    @PostMapping(value = "/history/filled", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R filledPopulationPersonType(@RequestParam MultipartFile file, HttpServletRequest request) {
+        // 获取文件名
+        String fileName = file.getOriginalFilename();
+        log.info("传入文件名字【{}】", fileName);
+        InputStream inputStream = null;
+        try {
+            inputStream = file.getInputStream();
+            ComMngPopulationTempFilledExcelListen excelListen = new ComMngPopulationTempFilledExcelListen(
+                    communityService, this.getCommunityId(), this.getLoginUserInfo().getUserId(), stringRedisTemplate);
+            EasyExcel.read(inputStream, null, excelListen).sheet().doRead();
+        } catch (IOException e) {
+            log.error("填充旧数据的人员类型【{}】", e.getMessage());
+            e.printStackTrace();
+        } catch (ServiceException e) {
+            log.error("错误数据【{}】", e.getMessage());
+            return downloadErrorPopulation("POPULATION_FILLED_ERROR_LIST");
+        }
+        return R.ok();
+    }
+
+    @ApiOperation(value = "excel导入吸毒人员")
+    @PostMapping(value = "/serve/importDrug", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    @OperLog(operModul = "居民信息管理-吸毒人员导入", operType = 0, businessType = "吸毒人员导入")
+    public R importDrug(@RequestParam MultipartFile file, HttpServletRequest request) {
+        // 获取文件名
+        String fileName = file.getOriginalFilename();
+        log.info("传入文件名字【{}】", fileName);
+        InputStream inputStream = null;
+        try {
+            inputStream = file.getInputStream();
+            ComMngPopulationDrugExcelListen comMngPopulationDrugExcelListen = new ComMngPopulationDrugExcelListen(
+                    communityService, this.getCommunityId(), this.getLoginUserInfo().getUserId(), stringRedisTemplate);
+            EasyExcel.read(inputStream, null, comMngPopulationDrugExcelListen).sheet().doRead();
+        } catch (IOException e) {
+            log.error("导入模板失败【{}】", e.getMessage());
+            e.printStackTrace();
+        }
+        return R.ok();
+    }
+
+    @ApiOperation(value = "excel导入社区矫正人员")
+    @PostMapping(value = "/serve/importCorrect", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    @OperLog(operModul = "居民信息管理-社区矫正人员导入", operType = 0, businessType = "社区矫正人员导入")
+    public R importCorrect(@RequestParam MultipartFile file, HttpServletRequest request) {
+        // 获取文件名
+        String fileName = file.getOriginalFilename();
+        log.info("传入文件名字【{}】", fileName);
+        InputStream inputStream = null;
+        try {
+            inputStream = file.getInputStream();
+            ComMngPopulationCorrectExcelListen comMngPopulationCorrectExcelListen =
+                    new ComMngPopulationCorrectExcelListen(communityService, this.getCommunityId(),
+                            this.getLoginUserInfo().getUserId(), stringRedisTemplate);
+            EasyExcel.read(inputStream, null, comMngPopulationCorrectExcelListen).sheet().doRead();
+        } catch (IOException e) {
+            log.error("导入模板失败【{}】", e.getMessage());
+            e.printStackTrace();
+        }
+        return R.ok();
+    }
+
+    @ApiOperation(value = "excel导入重精人员")
+    @PostMapping(value = "/serve/importMajor", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    @OperLog(operModul = "居民信息管理-重精人员导入", operType = 0, businessType = "重精人员导入")
+    public R importMajor(@RequestParam MultipartFile file, HttpServletRequest request) {
+        // 获取文件名
+        String fileName = file.getOriginalFilename();
+        log.info("传入文件名字【{}】", fileName);
+        InputStream inputStream = null;
+        try {
+            inputStream = file.getInputStream();
+            ComMngPopulationMajorExcelListen comMngPopulationMajorExcelListen = new ComMngPopulationMajorExcelListen(
+                    communityService, this.getCommunityId(), this.getLoginUserInfo().getUserId(), stringRedisTemplate);
+            EasyExcel.read(inputStream, null, comMngPopulationMajorExcelListen).sheet().doRead();
+        } catch (IOException e) {
+            log.error("导入模板失败【{}】", e.getMessage());
+            e.printStackTrace();
+        }
+        return R.ok();
+    }
+
+    @ApiOperation(value = "excel导入邪教人员")
+    @PostMapping(value = "/serve/importCult", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    @OperLog(operModul = "居民信息管理-邪教人员导入", operType = 0, businessType = "邪教人员导入")
+    public R importCult(@RequestParam MultipartFile file, HttpServletRequest request) {
+        // 获取文件名
+        String fileName = file.getOriginalFilename();
+        log.info("传入文件名字【{}】", fileName);
+        InputStream inputStream = null;
+        try {
+            inputStream = file.getInputStream();
+            ComMngPopulationCultExcelListen comMngPopulationCultExcelListen = new ComMngPopulationCultExcelListen(
+                    communityService, this.getCommunityId(), this.getLoginUserInfo().getUserId(), stringRedisTemplate);
+            EasyExcel.read(inputStream, null, comMngPopulationCultExcelListen).sheet().doRead();
+        } catch (IOException e) {
+            log.error("导入模板失败【{}】", e.getMessage());
+            e.printStackTrace();
+        }
+        return R.ok();
+    }
+
+    @ApiOperation(value = "excel导入刑释人员")
+    @PostMapping(value = "/serve/importRehabilitation", consumes = "multipart/*",
+            headers = "content-type=multipart/form-date")
+    @OperLog(operModul = "居民信息管理-刑释人员导入", operType = 0, businessType = "刑释人员导入")
+    public R importRehabilitation(@RequestParam MultipartFile file, HttpServletRequest request) {
+        // 获取文件名
+        String fileName = file.getOriginalFilename();
+        log.info("传入文件名字【{}】", fileName);
+        InputStream inputStream = null;
+        try {
+            inputStream = file.getInputStream();
+            ComMngPopulationRehabilitationExcelListen comMngPopulationRehabilitationExcelListen =
+                    new ComMngPopulationRehabilitationExcelListen(communityService, this.getCommunityId(),
+                            this.getLoginUserInfo().getUserId(), stringRedisTemplate);
+            EasyExcel.read(inputStream, null, comMngPopulationRehabilitationExcelListen).sheet().doRead();
+        } catch (IOException e) {
+            log.error("导入模板失败【{}】", e.getMessage());
+            e.printStackTrace();
+        }
+        return R.ok();
+    }
+
+    @ApiOperation(value = "excel导入重点上访人员")
+    @PostMapping(value = "/serve/importKey", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    @OperLog(operModul = "居民信息管理-重点上访人员导入", operType = 0, businessType = "重点上访人员导入")
+    public R importKey(@RequestParam MultipartFile file, HttpServletRequest request) {
+        // 获取文件名
+        String fileName = file.getOriginalFilename();
+        log.info("传入文件名字【{}】", fileName);
+        InputStream inputStream = null;
+        try {
+            inputStream = file.getInputStream();
+            ComMngPopulationKeyExcelListen mngPopulationKeyExcelListen = new ComMngPopulationKeyExcelListen(
+                    communityService, this.getCommunityId(), this.getLoginUserInfo().getUserId(), stringRedisTemplate);
+            EasyExcel.read(inputStream, null, mngPopulationKeyExcelListen).sheet().doRead();
+        } catch (IOException e) {
+            log.error("导入模板失败【{}】", e.getMessage());
+            e.printStackTrace();
+        }
+        return R.ok();
+    }
+
+    @ApiOperation(value = "excel导入服刑人员")
+    @PostMapping(value = "/serve/importSentence", consumes = "multipart/*",
+            headers = "content-type=multipart/form-date")
+    @OperLog(operModul = "居民信息管理-服刑人员导入", operType = 0, businessType = "服刑人员导入")
+    public R importSentence(@RequestParam MultipartFile file, HttpServletRequest request) {
+        // 获取文件名
+        String fileName = file.getOriginalFilename();
+        log.info("传入文件名字【{}】", fileName);
+        InputStream inputStream = null;
+        try {
+            inputStream = file.getInputStream();
+            ComMngPopulationSentenceExcelListen comMngPopulationSentenceExcelListen =
+                    new ComMngPopulationSentenceExcelListen(communityService, this.getCommunityId(),
+                            this.getLoginUserInfo().getUserId(), stringRedisTemplate);
+            EasyExcel.read(inputStream, null, comMngPopulationSentenceExcelListen).sheet().doRead();
+        } catch (IOException e) {
+            log.error("导入模板失败【{}】", e.getMessage());
+            e.printStackTrace();
+        }
+        return R.ok();
+    }
+
+    @ApiOperation(value = "excel导入退役军人")
+    @PostMapping(value = "/serve/importVeterans", consumes = "multipart/*",
+            headers = "content-type=multipart/form-date")
+    @OperLog(operModul = "居民信息管理-退役军人导入", operType = 0, businessType = "退役军人导入")
+    public R importVeterans(@RequestParam MultipartFile file, HttpServletRequest request) {
+        // 获取文件名
+        String fileName = file.getOriginalFilename();
+        log.info("传入文件名字【{}】", fileName);
+        InputStream inputStream = null;
+        try {
+            inputStream = file.getInputStream();
+            ComMngPopulationVeteransExcelListen comMngPopulationVeteransExcelListen =
+                    new ComMngPopulationVeteransExcelListen(communityService, this.getCommunityId(),
+                            this.getLoginUserInfo().getUserId(), stringRedisTemplate);
+            EasyExcel.read(inputStream, null, comMngPopulationVeteransExcelListen).sheet().doRead();
+        } catch (IOException e) {
+            log.error("导入模板失败【{}】", e.getMessage());
+            e.printStackTrace();
+        }
+        return R.ok();
+    }
+
+    @ApiOperation(value = "excel导入残疾人")
+    @PostMapping(value = "/serve/importDisability", consumes = "multipart/*",
+            headers = "content-type=multipart/form-date")
+    @OperLog(operModul = "居民信息管理-残疾人导入", operType = 0, businessType = "残疾人导入")
+    public R importDisability(@RequestParam MultipartFile file, HttpServletRequest request) {
+        // 获取文件名
+        String fileName = file.getOriginalFilename();
+        log.info("传入文件名字【{}】", fileName);
+        InputStream inputStream = null;
+        try {
+            inputStream = file.getInputStream();
+            ComMngPopulationDisabilityExcelListen mngPopulationDisabilityExcelListen =
+                    new ComMngPopulationDisabilityExcelListen(communityService, this.getCommunityId(),
+                            this.getLoginUserInfo().getUserId(), stringRedisTemplate);
+            EasyExcel.read(inputStream, null, mngPopulationDisabilityExcelListen).sheet().doRead();
+        } catch (IOException e) {
+            log.error("导入模板失败【{}】", e.getMessage());
+            e.printStackTrace();
+        }
+        return R.ok();
+    }
+
+    @ApiOperation(value = "excel导入低保户")
+    @PostMapping(value = "/serve/importLowSecurity", consumes = "multipart/*",
+            headers = "content-type=multipart/form-date")
+    @OperLog(operModul = "居民信息管理-低保户导入", operType = 0, businessType = "低保户导入")
+    public R importLowSecurity(@RequestParam MultipartFile file, HttpServletRequest request) {
+        // 获取文件名
+        String fileName = file.getOriginalFilename();
+        log.info("传入文件名字【{}】", fileName);
+        InputStream inputStream = null;
+        try {
+            inputStream = file.getInputStream();
+            ComMngPopulationLowSecurityExcelListen mngPopulationDisabilityExcelListen =
+                    new ComMngPopulationLowSecurityExcelListen(communityService, this.getCommunityId(),
+                            this.getLoginUserInfo().getUserId(), stringRedisTemplate);
+            EasyExcel.read(inputStream, null, mngPopulationDisabilityExcelListen).sheet().doRead();
+        } catch (IOException e) {
+            log.error("导入模板失败【{}】", e.getMessage());
+            e.printStackTrace();
+        }
+        return R.ok();
+    }
+
+    @ApiOperation(value = "excel导入高龄老人")
+    @PostMapping(value = "/serve/importElder", consumes = "multipart/*",
+            headers = "content-type=multipart/form-date")
+    @OperLog(operModul = "居民信息管理-高龄老人导入", operType = 0, businessType = "高龄老人导入")
+    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")
+    @OperLog(operModul = "居民信息管理-养老金人员导入", operType = 0, businessType = "养老金人员导入")
+    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();
+    }
+
+    /**
+     * 确认导入实有人口(有则更新,无则新建)
+     *
+     * @param file
+     * @param request
+     * @return 导入结果
+     */
+    @ApiOperation(value = "excel-确认导入实有人口")
+    @PostMapping(value = "/import/confirm", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    @OperLog(operModul = "居民信息管理-实有人口导入", operType = 0, businessType = "实有人口导入")
+    public R listSavePopulationConfirm(@RequestParam MultipartFile file, HttpServletRequest request) {
+        // 获取文件名
+        String fileName = file.getOriginalFilename();
+        log.info("传入文件名字【{}】", fileName);
+        InputStream inputStream = null;
+        try {
+            inputStream = file.getInputStream();
+            ComMngPopulationConfirmServeExcelListen comMngPopulationConfirmServeExcelListen =
+                    new ComMngPopulationConfirmServeExcelListen(communityService, this.getCommunityId());
+            EasyExcel.read(inputStream, null, comMngPopulationConfirmServeExcelListen).sheet().doRead();
+        } catch (IOException e) {
+            log.error("导入模板失败【{}】", e.getMessage());
+            e.printStackTrace();
+        }
+        return R.ok();
+    }
+
+    @ApiOperation(value = "excel导入实有人口notoken")
+    @PostMapping(value = "/serve/import/noToken", consumes = "multipart/*",
+            headers = "content-type=multipart/form-date")
+    public R downloadPopulationTemplateno(@RequestParam MultipartFile file, HttpServletRequest request) {
+        // 获取文件名
+        String fileName = file.getOriginalFilename();
+        log.info("传入文件名字【{}】", fileName);
+        InputStream inputStream = null;
+        try {
+            Long communityId = Long.valueOf(request.getParameter("communityId"));
+            inputStream = file.getInputStream();
+            ComMngPopulationServeExcelListen comMngPopulationServeExcelListen = new ComMngPopulationServeExcelListen(
+                    communityService, communityId, this.getLoginUserInfo().getUserId(), stringRedisTemplate);
+            EasyExcel.read(inputStream, null, comMngPopulationServeExcelListen).sheet().doRead();
+        } catch (IOException e) {
+            log.error("导入模板失败【{}】", e.getMessage());
+            e.printStackTrace();
+        }
+        return R.ok();
+    }
+
+    @ApiOperation(value = "编辑实有人口")
+    @PostMapping(value = "/edit")
+    @OperLog(operModul = "居民信息管理-编辑", operType = 2, businessType = "编辑")
+    public R editPopulationInfo(@RequestBody ComMngPopulationEditDTO populationEditDTO) {
+        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
+        return communityService.editPopulation(populationEditDTO, loginUserInfo.getCommunityId());
+    }
+
+    @ApiOperation(value = "实有人口详情", response = ComMngPopulationVO.class)
+    @PostMapping("/detail")
+    public R detailPopulation(@RequestParam(value = "populationId") Long populationId) {
+        Long communityId = this.getLoginUserInfo().getCommunityId();
+        return communityService.detailPopulation(populationId, communityId);
+    }
+
+    @ApiOperation(value = "查询实有人口电子档案", response = UserElectronicFileVO.class)
+    @PostMapping("/electronicArchives")
+    public R electronicArchivesPopulation(@RequestParam(value = "populationId") Long populationId) {
+        return communityService.electronicArchivesPopulation(populationId);
+    }
+
+    @ApiOperation(value = "实有人口标签修改", response = ComMngPopulationVO.class)
+    @PostMapping("/editTag")
+    public R editTagPopulation(@RequestBody ComMngPopulationTagDTO populationTagDTO) {
+        return communityService.editTagPopulation(populationTagDTO);
+    }
+
+    @ApiOperation(value = "实有人口-下载模板")
+    @GetMapping("/export")
+    public R exportPopulation() {
+        // 获取登陆用户绑定社区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 = headDataFilling();
+                    List<List<Object>> dataList = new ArrayList<>();
+                    List<Object> data = new ArrayList<>();
+                    data = formDataFilling();
+
+                    // 查询当前社区标签列表
+                    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++) {
+                            List<String> head = new ArrayList<>();
+                            head.add(TagsList.get(i) + "(是/否)");
+                            list.add(head);
+                            data.add("否");
+                        }
+                    }
+                    dataList.add(data);
+                    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 + "实有人口导入模板.xlsx");
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    @ApiOperation(value = "吸毒人员-下载模板")
+    @GetMapping("/export/drug")
+    public R exportDrug() {
+        // 获取登陆用户绑定社区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 = headDrugDataFilling();
+
+                    // 查询当前社区标签列表
+                    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 + "吸毒人员导入模板.xlsx");
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    @ApiOperation(value = "社区矫正人员-下载模板")
+    @GetMapping("/export/correctr")
+    public R exportCorrect() {
+        // 获取登陆用户绑定社区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 = headCorrectDataFilling();
+
+                    // 查询当前社区标签列表
+                    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 + "社区矫正人员导入模板.xlsx");
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    @ApiOperation(value = "重精人员-下载模板")
+    @GetMapping("/export/major")
+    public R exportMajor() {
+        // 获取登陆用户绑定社区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 = headMajorDataFilling();
+
+                    // 查询当前社区标签列表
+                    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 + "重精人员导入模板.xlsx");
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    @ApiOperation(value = "邪教人员-下载模板")
+    @GetMapping("/export/cult")
+    public R exportCult() {
+        // 获取登陆用户绑定社区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 = headCultDataFilling();
+
+                    // 查询当前社区标签列表
+                    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 + "邪教人员导入模板.xlsx");
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    @ApiOperation(value = "刑释人员-下载模板")
+    @GetMapping("/export/rehabilitation")
+    public R exportRehabilitation() {
+        // 获取登陆用户绑定社区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 = headRehabilitationDataFilling();
+
+                    // 查询当前社区标签列表
+                    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 + "刑释人员导入模板.xlsx");
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    @ApiOperation(value = "重点上访人员-下载模板")
+    @GetMapping("/export/key")
+    public R exportKey() {
+        // 获取登陆用户绑定社区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 = headKeyDataFilling();
+
+                    // 查询当前社区标签列表
+                    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 + "重点上访人员导入模板.xlsx");
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    @ApiOperation(value = "服刑人员-下载模板")
+    @GetMapping("/export/sentence")
+    public R exportSentence() {
+        // 获取登陆用户绑定社区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 = headSentenceDataFilling();
+
+                    // 查询当前社区标签列表
+                    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 + "服刑人员导入模板.xlsx");
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    @ApiOperation(value = "退役军人-下载模板")
+    @GetMapping("/export/veterans")
+    public R exportVeterans() {
+        // 获取登陆用户绑定社区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 = headVeteransDataFilling();
+
+                    // 查询当前社区标签列表
+                    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 + "退役军人导入模板.xlsx");
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    @ApiOperation(value = "残疾人-下载模板")
+    @GetMapping("/export/disability")
+    public R exportDisability() {
+        // 获取登陆用户绑定社区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 = headDisabilityDataFilling();
+
+                    // 查询当前社区标签列表
+                    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 + "残疾人导入模板.xlsx");
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("文件传输失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    @ApiOperation(value = "低保户-下载模板")
+    @GetMapping("/export/lowSecurity")
+    public R exportRowSecurity() {
+        // 获取登陆用户绑定社区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 = headLowSecurityDataFilling();
+
+                    // 查询当前社区标签列表
+                    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 + "低保户导入模板.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());
+            return R.fail();
+        }
+    }
+
+    @ApiOperation(value = "批量删除实有人口")
+    @PostMapping("/delete")
+    @OperLog(operModul = "居民信息管理-批量删除实有人口", operType = 3, businessType = "批量删除实有人口")
+    public R deletePopulations(@RequestBody List<Long> ids) {
+        return communityService.deletePopulations(ids, this.getCommunityId());
+    }
+
+    private List<List<String>> headDataFilling() {
+        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("*地址号(对于地址都有特定编号,如:格萨拉大道11号)  注:仅填写数字即可");
+        List<String> head8 = new ArrayList<String>();
+        head8.add("*楼排号(注:仅填写数字即可)");
+        List<String> head9 = new ArrayList<String>();
+        head9.add("*单元号(注:仅填写数字即可.老式楼栋若没有单元划分则默认为一单元)");
+        List<String> head10 = new ArrayList<String>();
+        head10.add("户室(只能识别纯数字。根据实际有以下几种户室类型,请根据实际填写:①9楼1号—901;12楼10号—1210②没有楼层只有号。如9号—9:;13号—13)");
+        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<String> head25 = new ArrayList<String>();
+        head25.add("本地/外地");
+        List<String> head26 = new ArrayList<String>();
+        head26.add("户口所在地");
+
+        List<String> head27 = new ArrayList<String>();
+        head27.add("是否居住地(是/否)");
+
+        List<String> head28 = new ArrayList<String>();
+        head28.add("人员类型(户籍人口/留守人员/外地人员/境外人员/流动人口/常住人口/暂住人口)");
+        List<String> head29 = new ArrayList<String>();
+        head29.add("国家");
+        List<String> head30 = new ArrayList<String>();
+        head30.add("离开日期(境外人员填写)");
+        List<String> head31 = new ArrayList<String>();
+        head31.add("人员状态(正常/失联/出国)");
+        List<String> head32 = new ArrayList<String>();
+        head32.add("月收入情况");
+
+        List<String> head33 = new ArrayList<String>();
+        head33.add("家庭情况");
+        List<String> head34 = new ArrayList<String>();
+        head34.add("来华目的(境外人员填写)");
+        List<String> head35 = new ArrayList<String>();
+        head35.add("抵达日期(境外人员填写)");
+
+        List<String> head36 = new ArrayList<String>();
+        head36.add("备注");
+        List<String> head37 = new ArrayList<String>();
+        head37.add("证件照(人面像)照片");
+        List<String> head38 = new ArrayList<String>();
+        head38.add("证件照(国徽面)照片");
+        List<String> head39 = new ArrayList<String>();
+        head39.add("户口本照片");
+        List<String> head40 = new ArrayList<String>();
+        head40.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);
+        list.add(head25);
+        list.add(head26);
+        list.add(head27);
+        list.add(head28);
+        list.add(head29);
+        list.add(head30);
+        list.add(head31);
+        list.add(head32);
+        list.add(head33);
+        list.add(head34);
+        list.add(head35);
+        list.add(head36);
+        list.add(head37);
+        list.add(head38);
+        list.add(head39);
+        list.add(head40);
+        return list;
+    }
+
+    // 吸毒人员
+    private List<List<String>> headDrugDataFilling() {
+        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("*地址号(对于地址都有特定编号,如:格萨拉大道11号)  注:仅填写数字即可");
+        List<String> head7 = new ArrayList<String>();
+        head7.add("*楼排号(注:仅填写数字即可)");
+        List<String> head8 = new ArrayList<String>();
+        head8.add("*单元号(注:仅填写数字即可.老式楼栋若没有单元划分则默认为一单元)");
+        List<String> head9 = new ArrayList<String>();
+        head9.add("户室(只能识别纯数字。根据实际有以下几种户室类型,请根据实际填写:①9楼1号—901;12楼10号—1210②没有楼层只有号。如9号—9:;13号—13)");
+        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<String> head25 = new ArrayList<String>();
+        head25.add("有无犯罪史");
+        List<String> head26 = new ArrayList<String>();
+        head26.add("违法犯罪情况");
+        List<String> head27 = new ArrayList<String>();
+        head27.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);
+        list.add(head25);
+        list.add(head26);
+        list.add(head27);
+        return list;
+    }
+
+    // 矫正人员
+    private List<List<String>> headCorrectDataFilling() {
+        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("*地址号(对于地址都有特定编号,如:格萨拉大道11号)  注:仅填写数字即可");
+        List<String> head7 = new ArrayList<String>();
+        head7.add("*楼排号(注:仅填写数字即可)");
+        List<String> head8 = new ArrayList<String>();
+        head8.add("*单元号(注:仅填写数字即可.老式楼栋若没有单元划分则默认为一单元)");
+        List<String> head9 = new ArrayList<String>();
+        head9.add("*户室(只能识别纯数字。根据实际有以下几种户室类型,请根据实际填写:①9楼1号—901;12楼10号—1210②没有楼层只有号。如9号—9:;13号—13)");
+        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("原判刑开始日期(日期格式:2020/02/05)");
+        List<String> head24 = new ArrayList<String>();
+        head24.add("原判刑结束日期(日期格式:2020/02/05)");
+        List<String> head25 = new ArrayList<String>();
+        head25.add("矫正开始日期(日期格式:2020/02/05)");
+        List<String> head26 = new ArrayList<String>();
+        head26.add("矫正结束日期(日期格式:2020/02/05)");
+        List<String> head27 = new ArrayList<String>();
+        head27.add("接收方式");
+        List<String> head28 = new ArrayList<String>();
+        head28.add("是否累惯犯");
+        List<String> head29 = new ArrayList<String>();
+        head29.add("四史情况");
+        List<String> head30 = new ArrayList<String>();
+        head30.add("三涉情况");
+        List<String> head31 = new ArrayList<String>();
+        head31.add("是否建立矫正小组");
+        List<String> head32 = new ArrayList<String>();
+        head32.add("矫正小组人员组成情况");
+        List<String> head33 = new ArrayList<String>();
+        head33.add("矫正解除(终止)类型");
+        List<String> head34 = new ArrayList<String>();
+        head34.add("是否有脱管");
+        List<String> head35 = new ArrayList<String>();
+        head35.add("脱管原因");
+        List<String> head36 = new ArrayList<String>();
+        head36.add("脱管纠正情况");
+        List<String> head37 = new ArrayList<String>();
+        head37.add("检察监督脱管情况");
+        List<String> head38 = new ArrayList<String>();
+        head38.add("是否有漏管");
+        List<String> head39 = new ArrayList<String>();
+        head39.add("漏管原因");
+        List<String> head40 = new ArrayList<String>();
+        head40.add("漏管纠正情况");
+        List<String> head41 = new ArrayList<String>();
+        head41.add("检察监督漏管情况");
+        List<String> head42 = new ArrayList<String>();
+        head42.add("奖惩情况");
+        List<String> head43 = new ArrayList<String>();
+        head43.add("是否重新犯罪");
+        List<String> head44 = new ArrayList<String>();
+        head44.add("重新犯罪名称");
+        List<String> head45 = new ArrayList<String>();
+        head45.add("刑罚变更执行情况");
+        List<String> head46 = new ArrayList<String>();
+        head46.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);
+        list.add(head25);
+        list.add(head26);
+        list.add(head27);
+        list.add(head28);
+        list.add(head29);
+        list.add(head30);
+        list.add(head31);
+        list.add(head32);
+        list.add(head33);
+        list.add(head34);
+        list.add(head35);
+        list.add(head36);
+        list.add(head37);
+        list.add(head38);
+        list.add(head39);
+        list.add(head40);
+        list.add(head41);
+        list.add(head42);
+        list.add(head43);
+        list.add(head44);
+        list.add(head45);
+        list.add(head46);
+        return list;
+    }
+
+    // 重精人员
+    private List<List<String>> headMajorDataFilling() {
+        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("*地址号(对于地址都有特定编号,如:格萨拉大道11号)  注:仅填写数字即可");
+        List<String> head5 = new ArrayList<String>();
+        head5.add("*楼排号(注:仅填写数字即可)");
+        List<String> head6 = new ArrayList<String>();
+        head6.add("*单元号(注:仅填写数字即可.老式楼栋若没有单元划分则默认为一单元)");
+        List<String> head7 = new ArrayList<String>();
+        head7.add("*户室(只能识别纯数字。根据实际有以下几种户室类型,请根据实际填写:①9楼1号—901;12楼10号—1210②没有楼层只有号。如9号—9:;13号—13)");
+        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<String> head25 = new ArrayList<String>();
+        head25.add("帮扶手段");
+        List<String> head26 = new ArrayList<String>();
+        head26.add("帮扶情况");
+        List<String> head27 = new ArrayList<String>();
+        head27.add("是否违法犯罪");
+        List<String> head28 = new ArrayList<String>();
+        head28.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);
+        list.add(head25);
+        list.add(head26);
+        list.add(head27);
+        list.add(head28);
+        return list;
+    }
+
+    // 邪教人员
+    private List<List<String>> headCultDataFilling() {
+        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("*地址号(对于地址都有特定编号,如:格萨拉大道11号)  注:仅填写数字即可");
+        List<String> head10 = new ArrayList<String>();
+        head10.add("*楼排号(注:仅填写数字即可)");
+        List<String> head11 = new ArrayList<String>();
+        head11.add("*单元号(注:仅填写数字即可.老式楼栋若没有单元划分则默认为一单元)");
+        List<String> head12 = new ArrayList<String>();
+        head12.add("*户室(只能识别纯数字。根据实际有以下几种户室类型,请根据实际填写:①9楼1号—901;12楼10号—1210②没有楼层只有号。如9号—9:;13号—13)");
+        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("参加邪教时间(日期格式:2020/02/05))");
+        List<String> head22 = new ArrayList<String>();
+        head22.add("是否对外宣传");
+        List<String> head23 = new ArrayList<String>();
+        head23.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);
+        return list;
+    }
+
+    // 刑释人员
+    private List<List<String>> headRehabilitationDataFilling() {
+        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("*地址号(对于地址都有特定编号,如:格萨拉大道11号)  注:仅填写数字即可");
+        List<String> head8 = new ArrayList<String>();
+        head8.add("*楼排号(注:仅填写数字即可)");
+        List<String> head9 = new ArrayList<String>();
+        head9.add("*单元号(注:仅填写数字即可.老式楼栋若没有单元划分则默认为一单元)");
+        List<String> head10 = new ArrayList<String>();
+        head10.add("*户室(只能识别纯数字。根据实际有以下几种户室类型,请根据实际填写:①9楼1号—901;12楼10号—1210②没有楼层只有号。如9号—9:;13号—13)");
+        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("原判刑期(日期格式:2020/02/05)");
+        List<String> head23 = new ArrayList<String>();
+        head23.add("服刑日期(日期格式:2020/02/05)");
+        List<String> head24 = new ArrayList<String>();
+        head24.add("原罪名");
+        List<String> head25 = new ArrayList<String>();
+        head25.add("释放日期(日期格式:2020/02/05)");
+        List<String> head26 = new ArrayList<String>();
+        head26.add("服刑场所");
+        List<String> head27 = new ArrayList<String>();
+        head27.add("危险性评估");
+        List<String> head28 = new ArrayList<String>();
+        head28.add("衔接日期(日期格式:2020/02/05)");
+        List<String> head29 = new ArrayList<String>();
+        head29.add("衔接情况");
+        List<String> head30 = new ArrayList<String>();
+        head30.add("是否重新犯罪");
+        List<String> head31 = new ArrayList<String>();
+        head31.add("重新犯罪罪名");
+        List<String> head32 = new ArrayList<String>();
+        head32.add("安置情况");
+        List<String> head33 = new ArrayList<String>();
+        head33.add("安置日期(日期格式:2020/02/05)");
+        List<String> head34 = new ArrayList<String>();
+        head34.add("未安置原因");
+        List<String> head35 = new ArrayList<String>();
+        head35.add("帮教开始");
+        List<String> head36 = new ArrayList<String>();
+        head36.add("帮教结束");
+        List<String> head37 = new ArrayList<String>();
+        head37.add("帮教情况");
+        List<String> head38 = new ArrayList<String>();
+        head38.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);
+        list.add(head25);
+        list.add(head26);
+        list.add(head27);
+        list.add(head28);
+        list.add(head29);
+        list.add(head30);
+        list.add(head31);
+        list.add(head32);
+        list.add(head33);
+        list.add(head34);
+        list.add(head35);
+        list.add(head36);
+        list.add(head37);
+        list.add(head38);
+        return list;
+    }
+
+    // 重点上访人员
+    private List<List<String>> headKeyDataFilling() {
+        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("*地址号(对于地址都有特定编号,如:格萨拉大道11号)  注:仅填写数字即可");
+        List<String> head8 = new ArrayList<String>();
+        head8.add("*楼排号(注:仅填写数字即可)");
+        List<String> head9 = new ArrayList<String>();
+        head9.add("*单元号(注:仅填写数字即可.老式楼栋若没有单元划分则默认为一单元)");
+        List<String> head10 = new ArrayList<String>();
+        head10.add("*户室(只能识别纯数字。根据实际有以下几种户室类型,请根据实际填写:①9楼1号—901;12楼10号—1210②没有楼层只有号。如9号—9:;13号—13)");
+        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.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);
+        return list;
+    }
+
+    // 服刑人员
+    private List<List<String>> headSentenceDataFilling() {
+        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.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);
+        return list;
+    }
+
+    // 退役军人
+    private List<List<String>> headVeteransDataFilling() {
+        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("*地址号(对于地址都有特定编号,如:格萨拉大道11号)  注:仅填写数字即可");
+        List<String> head12 = new ArrayList<String>();
+        head12.add("*楼排号(注:仅填写数字即可)");
+        List<String> head13 = new ArrayList<String>();
+        head13.add("*单元号(注:仅填写数字即可.老式楼栋若没有单元划分则默认为一单元)");
+        List<String> head14 = new ArrayList<String>();
+        head14.add("户室(只能识别纯数字。根据实际有以下几种户室类型,请根据实际填写:①9楼1号—901;12楼10号—1210②没有楼层只有号。如9号—9:;13号—13)");
+        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("入伍时间(初次发现日期(日期格式:2020/02/05)");
+        List<String> head20 = new ArrayList<String>();
+        head20.add("退伍时间(日期格式:2020/02/05)");
+        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<String> head25 = new ArrayList<String>();
+        head25.add("婚姻状况");
+        List<String> head26 = new ArrayList<String>();
+        head26.add("住房情况");
+        List<String> head27 = new ArrayList<String>();
+        head27.add("住房情况其他(手填)");
+        List<String> head28 = new ArrayList<String>();
+        head28.add("住房面积");
+        List<String> head29 = new ArrayList<String>();
+        head29.add("现就业情况");
+        List<String> head30 = new ArrayList<String>();
+        head30.add("在职情况类型");
+        List<String> head31 = new ArrayList<String>();
+        head31.add("现就业情况其他(手填)");
+        List<String> head32 = new ArrayList<String>();
+        head32.add("养老保险");
+        List<String> head33 = new ArrayList<String>();
+        head33.add("医疗保险");
+        List<String> head34 = new ArrayList<String>();
+        head34.add("现个人年收入(单位:元)");
+        List<String> head35 = new ArrayList<String>();
+        head35.add("父亲健康状况");
+        List<String> head36 = new ArrayList<String>();
+        head36.add("母亲健康状况");
+        List<String> head37 = new ArrayList<String>();
+        head37.add("配偶健康状况");
+        List<String> head38 = new ArrayList<String>();
+        head38.add("儿子健康状况");
+        List<String> head39 = new ArrayList<String>();
+        head39.add("女儿健康状况");
+        List<String> head40 = new ArrayList<String>();
+        head40.add("主要困难");
+        List<String> head41 = new ArrayList<String>();
+        head41.add("其他困难(手填)");
+        List<String> head42 = new ArrayList<String>();
+        head42.add("主要诉求");
+        List<String> head43 = new ArrayList<String>();
+        head43.add("主要诉求其他事项问题(手填)");
+        List<String> head44 = new ArrayList<String>();
+        head44.add("需参加的学历培训");
+        List<String> head45 = new ArrayList<String>();
+        head45.add("是否已参加退役军人培训(政府性质)");
+        List<String> head46 = new ArrayList<String>();
+        head46.add("入伍前学历");
+        List<String> head47 = new ArrayList<String>();
+        head47.add("再教育学历");
+        List<String> head48 = new ArrayList<String>();
+        head48.add("所学专业");
+        List<String> head49 = new ArrayList<String>();
+        head49.add("所学专业其他(手填)");
+        List<String> head50 = new ArrayList<String>();
+        head50.add("曾从事行业(含现从事行业)");
+        List<String> head51 = new ArrayList<String>();
+        head51.add("曾从事行业(含现从事行业)其他(手填)");
+        List<String> head52 = new ArrayList<String>();
+        head52.add("意向就业地点");
+        List<String> head53 = new ArrayList<String>();
+        head53.add("意向就业地点其他地区(手填)");
+        List<String> head54 = new ArrayList<String>();
+        head54.add("待业期间的求职意向");
+        List<String> head55 = new ArrayList<String>();
+        head55.add("待业期间的求职意向其他(手填)");
+        List<String> head56 = new ArrayList<String>();
+        head56.add("是否有创业意愿");
+        List<String> head57 = new ArrayList<String>();
+        head57.add("创业意愿");
+        List<String> head58 = new ArrayList<String>();
+        head58.add("备注");
+        List<String> head59 = new ArrayList<String>();
+        head59.add("填表单位");
+        List<String> head60 = new ArrayList<String>();
+        head60.add("填表人");
+        List<String> head61 = new ArrayList<String>();
+        head61.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);
+        list.add(head25);
+        list.add(head26);
+        list.add(head27);
+        list.add(head28);
+        list.add(head29);
+        list.add(head30);
+        list.add(head31);
+        list.add(head32);
+        list.add(head33);
+        list.add(head34);
+        list.add(head35);
+        list.add(head36);
+        list.add(head37);
+        list.add(head38);
+        list.add(head39);
+        list.add(head40);
+        list.add(head41);
+        list.add(head42);
+        list.add(head43);
+        list.add(head44);
+        list.add(head45);
+        list.add(head46);
+        list.add(head47);
+        list.add(head48);
+        list.add(head49);
+        list.add(head50);
+        list.add(head51);
+        list.add(head52);
+        list.add(head53);
+        list.add(head54);
+        list.add(head55);
+        list.add(head56);
+        list.add(head57);
+        list.add(head58);
+        list.add(head59);
+        list.add(head60);
+        list.add(head61);
+        return list;
+    }
+
+    // 残疾人员
+    private List<List<String>> headDisabilityDataFilling() {
+        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("*地址号(对于地址都有特定编号,如:格萨拉大道11号)  注:仅填写数字即可");
+        List<String> head11 = new ArrayList<String>();
+        head11.add("*楼排号(注:仅填写数字即可)");
+        List<String> head12 = new ArrayList<String>();
+        head12.add("*单元号(注:仅填写数字即可.老式楼栋若没有单元划分则默认为一单元)");
+        List<String> head13 = new ArrayList<String>();
+        head13.add("户室(只能识别纯数字。根据实际有以下几种户室类型,请根据实际填写:①9楼1号—901;12楼10号—1210②没有楼层只有号。如9号—9:;13号—13)");
+        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.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);
+        return list;
+    }
+
+    // 低保户
+    private List<List<String>> headLowSecurityDataFilling() {
+        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("*地址号(对于地址都有特定编号,如:格萨拉大道11号)  注:仅填写数字即可");
+        List<String> head14 = new ArrayList<String>();
+        head14.add("*楼排号(注:仅填写数字即可)");
+        List<String> head15 = new ArrayList<String>();
+        head15.add("*单元号(注:仅填写数字即可.老式楼栋若没有单元划分则默认为一单元)");
+        List<String> head16 = new ArrayList<String>();
+        head16.add("户室(只能识别纯数字。根据实际有以下几种户室类型,请根据实际填写:①9楼1号—901;12楼10号—1210②没有楼层只有号。如9号—9:;13号—13)");
+        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<String> head25 = new ArrayList<String>();
+        head25.add("保障人口数");
+        List<String> head26 = new ArrayList<String>();
+        head26.add("家庭人口数");
+        List<String> head27 = new ArrayList<String>();
+        head27.add("开户人");
+        List<String> head28 = new ArrayList<String>();
+        head28.add("开户银行");
+        List<String> head29 = new ArrayList<String>();
+        head29.add("开户人身份证号");
+        List<String> head30 = new ArrayList<String>();
+        head30.add("银行账号");
+        List<String> head31 = new ArrayList<String>();
+        head31.add("供养机构");
+        List<String> head32 = new ArrayList<String>();
+        head32.add("资金发放方式");
+        List<String> head33 = new ArrayList<String>();
+        head33.add("保障金额");
+        List<String> head34 = new ArrayList<String>();
+        head34.add("调剂金额");
+        List<String> head35 = new ArrayList<String>();
+        head35.add("差额救助金额");
+        List<String> head36 = new ArrayList<String>();
+        head36.add("分类施保金额");
+        List<String> head37 = new ArrayList<String>();
+        head37.add("家庭月总收入");
+        List<String> head38 = new ArrayList<String>();
+        head38.add("家庭月均收入");
+        List<String> head39 = new ArrayList<String>();
+        head39.add("家庭月支出");
+        List<String> head40 = new ArrayList<String>();
+        head40.add("经度");
+        List<String> head41 = new ArrayList<String>();
+        head41.add("纬度");
+        List<String> head42 = new ArrayList<String>();
+        head42.add("始发年月(初次发现日期(日期格式:2020/02/05)");
+        List<String> head43 = new ArrayList<String>();
+        head43.add("护理费");
+        List<String> head44 = new ArrayList<String>();
+        head44.add("申请理由");
+        List<String> head45 = new ArrayList<String>();
+        head45.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);
+        list.add(head25);
+        list.add(head26);
+        list.add(head27);
+        list.add(head28);
+        list.add(head29);
+        list.add(head30);
+        list.add(head31);
+        list.add(head32);
+        list.add(head33);
+        list.add(head34);
+        list.add(head35);
+        list.add(head36);
+        list.add(head37);
+        list.add(head38);
+        list.add(head39);
+        list.add(head40);
+        list.add(head41);
+        list.add(head42);
+        list.add(head43);
+        list.add(head44);
+        list.add(head45);
+        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("*地址号(对于地址都有特定编号,如:格萨拉大道11号)  注:仅填写数字即可");
+        List<String> head7 = new ArrayList<String>();
+        head7.add("*楼排号(注:仅填写数字即可)");
+        List<String> head8 = new ArrayList<String>();
+        head8.add("*单元号(注:仅填写数字即可.老式楼栋若没有单元划分则默认为一单元)");
+        List<String> head9 = new ArrayList<String>();
+        head9.add("*户室(只能识别纯数字。根据实际有以下几种户室类型,请根据实际填写:①9楼1号—901;12楼10号—1210②没有楼层只有号。如9号—9:;13号—13)");
+        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("*地址号(对于地址都有特定编号,如:格萨拉大道11号)  注:仅填写数字即可");
+        List<String> head7 = new ArrayList<String>();
+        head7.add("*楼排号(注:仅填写数字即可)");
+        List<String> head8 = new ArrayList<String>();
+        head8.add("*单元号(注:仅填写数字即可.老式楼栋若没有单元划分则默认为一单元)");
+        List<String> head9 = new ArrayList<String>();
+        head9.add("*户室(只能识别纯数字。根据实际有以下几种户室类型,请根据实际填写:①9楼1号—901;12楼10号—1210②没有楼层只有号。如9号—9:;13号—13)");
+        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("张三");
+        data.add("513421199508187219");
+        data.add("汉族");
+        data.add("群众");
+        data.add("是");
+        data.add("本人");
+        data.add("樱花街");
+        data.add("115");
+        data.add("15栋");
+        data.add("1");
+        data.add("1001");
+        data.add("");
+        data.add("");
+        data.add("");
+        data.add("");
+        data.add("");
+        data.add("13768548521");
+        data.add("中国");
+        data.add("硕士");
+        data.add("未婚");
+        data.add("");
+        data.add("O");
+        data.add("");
+        data.add("工程师");
+        data.add("阿里巴巴");
+        data.add("本地");
+        data.add("四川成都");
+        data.add("是");
+        data.add("户籍");
+        data.add("中国");
+        data.add("");
+        data.add("正常");
+        data.add("");
+        data.add("");
+        data.add("");
+        data.add("");
+        data.add("");
+        data.add("");
+        data.add("");
+        data.add("");
+        data.add("否");
+        return data;
+    }
+
+    @ApiOperation(value = "实有人口-数据导出")
+    @PostMapping("/data/export")
+    @OperLog(operModul = "居民信息管理-实有人口导出", operType = 0, businessType = "实有人口导出")
+    public R dataExportPopulation(@RequestBody List<Long> Ids) {
+        // 获取登陆用户
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        // 获取登陆用户绑定社区id
+        Long communityId = loginUserInfo.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<ComMngPopulationVO> populList = null;
+                    if (Ids.size() > 0) {// 导出部分
+                        if (Ids.size() == 1) {
+                            R r = communityService.getVillageById(Ids.get(0));
+                            if (R.isOk(r)) {
+                                populList = JSON.parseArray(
+                                        JSON.toJSONString(
+                                                communityService.getPopulationListByVillageId(Ids.get(0)).getData()),
+                                        ComMngPopulationVO.class);
+                            } else {
+                                populList = JSON.parseArray(
+                                        JSON.toJSONString(communityService.getPopulationLists(Ids).getData()),
+                                        ComMngPopulationVO.class);
+                            }
+                        } else {
+                            populList =
+                                    JSON.parseArray(JSON.toJSONString(communityService.getPopulationLists(Ids).getData()),
+                                            ComMngPopulationVO.class);
+                        }
+                    } else {// 导出全部
+                        populList = JSON.parseArray(
+                                JSON.toJSONString(communityService.getPopulationListByCommunityId(communityId).getData()),
+                                ComMngPopulationVO.class);
+                    }
+
+                    List<ComMngPopulationExcelVo> populationExcelVoList = new ArrayList<>();
+                    if (populList != null && populList.size() > 0) {
+                        for (ComMngPopulationVO popul : populList) {
+                            ComMngPopulationExcelVo populationExcelVo = new ComMngPopulationExcelVo();
+                            BeanUtils.copyProperties(popul, populationExcelVo);
+                            // 设置性别
+                            populationExcelVo.setSex(PopulSexEnum.getCnDescByName(popul.getSex()));
+                            // 设置政治面貌
+                            populationExcelVo.setPoliticalOutlook(
+                                    PopulPoliticalOutlookEnum.getCnDescByName(popul.getPoliticalOutlook()));
+                            // 设置是否租住
+                            // populationExcelVo.setIsRent(PopulIsOkEnum.getCnDescByName(popul.getIsRent()));
+                            // 设置本地或外地
+                            populationExcelVo.setOutOrLacal(PopulOutOrLocalEnum.getCnDescByName(popul.getOutOrLocal()));
+                            // 设置婚姻状况
+                            populationExcelVo.setMarriage(PopulMarriageEnum.getCnDescByName(popul.getMarriage()));
+                            // 设置文化程度
+                            populationExcelVo
+                                    .setCultureLevel(PopulCultureLevelEnum.getCnDescByName(popul.getCultureLevel()));
+                            // 设置年龄
+                            if (StringUtils.isNotEmpty(popul.getBirthday())) {
+                                populationExcelVo.setAge(AgeUtils.getAgeFromBirthTimes(popul.getBirthday()));
+                            }
+                            if (StringUtils.isNumeric(popul.getPersonType())) {
+                                populationExcelVo.setPersonType(PopulPersonTypeEnum.getCnDescByName(Integer.parseInt(popul.getPersonType())));
+                            }
+                            populationExcelVo.setTags(popul.getLabel());
+                            populationExcelVoList.add(populationExcelVo);
+                        }
+                    }
+
+                    excelWriter = EasyExcel.write(fileName, ComMngPopulationExcelVo.class)
+                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                    WriteSheet writeSheet = EasyExcel.writerSheet("实有人口导出数据").build();
+                    excelWriter.write(populationExcelVoList, 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("/data/exportOld")
+    public R dataExportPopulationOld(@RequestBody ComMngPopulationDTO comMngPopulationVO) {
+        // 获取登陆用户
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        // 获取登陆用户绑定社区id
+        Long communityId = loginUserInfo.getCommunityId();
+        comMngPopulationVO.setActId(communityId);
+        // 生成动态模板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<ComMngPopulationVO> populList = null;
+                    populList = JSON.parseArray(
+                            JSON.toJSONString(communityService.exportOld(comMngPopulationVO).getData()),
+                            ComMngPopulationVO.class);
+                    List<ComMngPopulationExcelVo> populationExcelVoList = new ArrayList<>();
+                    if (populList != null && populList.size() > 0) {
+                        for (ComMngPopulationVO popul : populList) {
+                            ComMngPopulationExcelVo populationExcelVo = new ComMngPopulationExcelVo();
+                            BeanUtils.copyProperties(popul, populationExcelVo);
+                            // 设置性别
+                            populationExcelVo.setSex(PopulSexEnum.getCnDescByName(popul.getSex()));
+                            // 设置政治面貌
+                            populationExcelVo.setPoliticalOutlook(
+                                    PopulPoliticalOutlookEnum.getCnDescByName(popul.getPoliticalOutlook()));
+                            // 设置是否租住
+                            // populationExcelVo.setIsRent(PopulIsOkEnum.getCnDescByName(popul.getIsRent()));
+                            // 设置本地或外地
+                            populationExcelVo.setOutOrLacal(PopulOutOrLocalEnum.getCnDescByName(popul.getOutOrLocal()));
+                            // 设置婚姻状况
+                            populationExcelVo.setMarriage(PopulMarriageEnum.getCnDescByName(popul.getMarriage()));
+                            // 设置文化程度
+                            populationExcelVo
+                                    .setCultureLevel(PopulCultureLevelEnum.getCnDescByName(popul.getCultureLevel()));
+                            // 设置年龄
+                            if (StringUtils.isNotEmpty(popul.getBirthday())) {
+                                populationExcelVo.setAge(AgeUtils.getAgeFromBirthTimes(popul.getBirthday()));
+                            }
+                            populationExcelVoList.add(populationExcelVo);
+                        }
+                    }
+
+                    excelWriter = EasyExcel.write(fileName, ComMngPopulationExcelVo.class)
+                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                    WriteSheet writeSheet = EasyExcel.writerSheet("老人导出数据").build();
+                    excelWriter.write(populationExcelVoList, 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("/edit/electronicArchives")
+    public R editPopulation(@RequestBody UserElectronicFileVO userElectronicFileVO) {
+        return communityService.editUserElectronicFile(userElectronicFileVO);
+    }
+
+    @ApiOperation(value = "房屋级联菜单查询")
+    @PostMapping("/cascade/list")
+    public R getCascadeHouseAddress(@RequestBody CascadeHouseDTO cascadeHouseDTO) {
+        // 获取登陆用户绑定社区id
+        LoginUserInfoVO loginUser = this.getLoginUserInfo();
+        if (loginUser != null) {
+            cascadeHouseDTO.setCommunityId(loginUser.getCommunityId());
+        }
+        return communityService.getCascadeHouseAddress(cascadeHouseDTO);
+    }
+
+    /**
+     * 查询房屋二级级联菜单
+     *
+     * @param cascadeHouseDTO 请求参数
+     * @return 菜单列表
+     */
+    @ApiOperation(value = "房屋级联菜单查询")
+    @PostMapping("/second/list")
+    public R getSecondHouseAddress(@RequestBody CascadeHouseDTO cascadeHouseDTO) {
+        cascadeHouseDTO.setCommunityId(this.getCommunityId());
+        return communityService.getSecondHouseAddress(cascadeHouseDTO);
+    }
+
+    /**
+     * 查询房屋二级级联菜单后台
+     *
+     * @param cascadeHouseDTO 请求参数
+     * @return 菜单列表
+     */
+    @ApiOperation(value = "房屋级联菜单查询")
+    @PostMapping("/second/listBack")
+    public R getSecondHouse(@RequestBody CascadeHouseDTO cascadeHouseDTO) {
+        cascadeHouseDTO.setCommunityId(this.getCommunityId());
+        return communityService.getSecondHouse(cascadeHouseDTO);
+    }
+
+    @ApiOperation(value = "分页查询实有房屋列表", response = ComMngPopulationHouseAdminVO.class)
+    @PostMapping("/pageHouse")
+    public R pageHouse(@RequestBody ComMngPopulationHouseAdminDTO populationHouseAdminDTO) {
+        // 获取登陆用户绑定社区id
+        LoginUserInfoVO loginUser = this.getLoginUserInfo();
+        if (loginUser != null) {
+            populationHouseAdminDTO.setCommunityId(loginUser.getCommunityId());
+        }
+        return communityService.pageHouse(populationHouseAdminDTO);
+    }
+
+    @ApiOperation(value = "查询实有房屋详情", response = ComMngPopulationHouseDetailAdminVO.class)
+    @PostMapping("/house/detail")
+    public R getHouseDetail(@RequestParam(value = "houseId") Long houseId) {
+        return communityService.getHouseDetail(houseId);
+    }
+
+    @ApiOperation(value = "编辑实有房屋")
+    @PostMapping("/edit/house")
+    public R editHouse(@RequestBody ComMngPopulationHouseEditAdminDTO houseEditAdminDTO) {
+        return communityService.editHouse(houseEditAdminDTO);
+    }
+
+    @ApiOperation(value = "批量删除实有房屋")
+    @PostMapping("/house/delete")
+    public R deleteHouses(@RequestBody List<Long> Ids) {
+        return communityService.deleteHouses(Ids);
+    }
+
+    @ApiOperation(value = "实有房屋统计接口", response = ComMngPopulationHouseTotalVO.class)
+    @PostMapping("/house/statistics")
+    public R getHouseTotalByAdmin() {
+        // 获取登陆用户绑定社区id
+        Long communityId = this.getLoginUserInfo().getCommunityId();
+        return communityService.getHouseTotalByAdmin(communityId);
+    }
+
+    @ApiOperation(value = "分页查询退役军人列表", response = ComExServicemanVO.class)
+    @PostMapping("/pageExServiceman")
+    public R pageExServiceman(@RequestBody ComExServicemanDTO comExServicemanDTO) {
+        // 获取登陆用户绑定社区id
+        LoginUserInfoVO loginUser = this.getLoginUserInfo();
+        if (loginUser != null) {
+            comExServicemanDTO.setCommunityId(loginUser.getCommunityId());
+        }
+        return communityService.pageExServiceman(comExServicemanDTO);
+    }
+
+    @ApiOperation(value = "下载导入失败实有人口数据")
+    @PostMapping("/download/error/population")
+    public R downloadErrorPopulation(@RequestParam(value = "key") String key) {
+        List<ComMngPopulationMistakeExcelVO> 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, ComMngPopulationMistakeExcelVO.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, ComMngPopulationMistakeExcelVO.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/populationDrug")
+    public R downloadErrorDrugPopulation(@RequestParam(value = "key") String key) {
+        List<ComMngPopulationDrugMistakeExcelVO> 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, ComMngPopulationDrugMistakeExcelVO.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, ComMngPopulationDrugMistakeExcelVO.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/populationCorrect")
+    public R downloadErrorCorrectPopulation(@RequestParam(value = "key") String key) {
+        List<ComMngPopulationCorrectMistakeExcelVO> 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, ComMngPopulationCorrectMistakeExcelVO.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, ComMngPopulationCorrectMistakeExcelVO.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/populationMajor")
+    public R downloadErrorMajorPopulation(@RequestParam(value = "key") String key) {
+        List<ComMngPopulationMajorMistakeExcelVO> 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, ComMngPopulationMajorMistakeExcelVO.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, ComMngPopulationMajorMistakeExcelVO.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/populationCult")
+    public R downloadErrorCultPopulation(@RequestParam(value = "key") String key) {
+        List<ComMngPopulationCultMistakeExcelVO> 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, ComMngPopulationCultMistakeExcelVO.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, ComMngPopulationCultMistakeExcelVO.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/populationRehabilitation")
+    public R downloadErrorRehabilitationPopulation(@RequestParam(value = "key") String key) {
+        List<ComMngPopulationRehabilitationMistakeExcelVO> 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, ComMngPopulationRehabilitationMistakeExcelVO.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, ComMngPopulationRehabilitationMistakeExcelVO.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/populationKey")
+    public R downloadErrorKeyPopulation(@RequestParam(value = "key") String key) {
+        List<ComMngPopulationKeyMistakeExcelVO> 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, ComMngPopulationKeyMistakeExcelVO.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, ComMngPopulationKeyMistakeExcelVO.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/populationSentence")
+    public R downloadErrorSentencePopulation(@RequestParam(value = "key") String key) {
+        List<ComMngPopulationSentenceMistakeExcelVO> 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, ComMngPopulationSentenceMistakeExcelVO.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, ComMngPopulationSentenceMistakeExcelVO.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/populationVeterans")
+    public R downloadErrorVeteransPopulation(@RequestParam(value = "key") String key) {
+        List<ComMngPopulationVeteransMistakeExcelVO> 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, ComMngPopulationVeteransMistakeExcelVO.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, ComMngPopulationVeteransMistakeExcelVO.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/populationDisability")
+    public R downloadErrorDisabilityPopulation(@RequestParam(value = "key") String key) {
+        List<ComMngPopulationDisabilityMistakeExcelVO> 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, ComMngPopulationDisabilityMistakeExcelVO.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, ComMngPopulationDisabilityMistakeExcelVO.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/populationLowSecurity")
+    public R downloadErrorLowSecurityPopulation(@RequestParam(value = "key") String key) {
+        List<ComMngPopulationLowSecurityMistakeExcelVO> 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, ComMngPopulationLowSecurityMistakeExcelVO.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, ComMngPopulationLowSecurityMistakeExcelVO.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/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/api/RentingHourseOrderApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/RentingHourseOrderApi.java
new file mode 100644
index 0000000..b9c452a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/RentingHourseOrderApi.java
@@ -0,0 +1,123 @@
+package com.panzhihua.community_backstage.api;
+
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.rentHouse.RentingHourseOrderVO;
+import com.panzhihua.common.model.vos.community.rentHouse.WxPayNotifyOrderVO;
+import com.panzhihua.common.model.vos.community.rentHouse.WxPayOrderVO;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * 房屋租赁-房屋订单表(RentingHourseOrder)表控制层
+ *
+ * @author makejava
+ * @since 2021-11-23 10:46:57
+ */
+@RestController
+@Slf4j
+@Api(tags = {"房屋租赁普通订单相关接口"})
+@RequestMapping("rentingHourseOrder")
+public class RentingHourseOrderApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "分页查询所有数据",response = RentingHourseOrderVO.class)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        commonPage.setCommunityId(this.getCommunityId());
+        return communityService.selectRentingHourseOrderAll(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation(value = "分页查询所有数据")
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return communityService.selectRentingHourseOrderOne(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param rentingHourseOrder 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation("创建订单")
+    @PostMapping
+    public R insert(@RequestBody RentingHourseOrderVO rentingHourseOrder) {
+        rentingHourseOrder.setCommunityId(this.getCommunityId());
+        return communityService.insertRentingHourseOrder(rentingHourseOrder);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param rentingHourseOrdervo 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody RentingHourseOrderVO rentingHourseOrdervo) {
+        return communityService.updateRentingHourseOrder(rentingHourseOrdervo);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @ApiOperation("删除")
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return communityService.deleteRentingHourseOrder(id);
+    }
+
+    /**
+     * 支付回调处理订单状态以及房屋状态
+     */
+    @ApiOperation("支付回调处理订单状态以及房屋状态")
+    @PostMapping("/wxNotify")
+    public R wxNotify(@RequestBody WxPayNotifyOrderVO wxPayNotifyOrderVO){
+        return communityService.wxNotifyRentingHourseOrder(wxPayNotifyOrderVO);
+    }
+
+    /**
+     * 支付付款
+     */
+    @ApiOperation("支付付款")
+    @PostMapping("/wxPay")
+    public R wxPay(@RequestBody WxPayOrderVO wxPayOrderVO){
+        return communityService.wxPayRentingHourseOrder(wxPayOrderVO);
+    }
+
+    /**
+     * 普通订单统计
+     */
+    @ApiOperation("普通订单统计")
+    @PostMapping("/statics")
+    public R statics(@RequestBody RentingHourseOrderVO rentingHourseOrderVO){
+        rentingHourseOrderVO.setCommunityId(this.getCommunityId());
+        return communityService.staticsRentingHourseOrder(rentingHourseOrderVO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/RentingHoursePreOrderApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/RentingHoursePreOrderApi.java
new file mode 100644
index 0000000..a90f0a6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/RentingHoursePreOrderApi.java
@@ -0,0 +1,104 @@
+package com.panzhihua.community_backstage.api;
+
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.rentHouse.RentingHoursePreOrderVO;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * 房屋租赁-房屋定金订单表(RentingHoursePreOrder)表控制层
+ *
+ * @author makejava
+ * @since 2021-11-23 10:47:54
+ */
+@RestController
+@Slf4j
+@Api(tags = {"房屋租赁定金订单相关接口"})
+@RequestMapping("rentingHoursePreOrder")
+public class RentingHoursePreOrderApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "分页查询",response = RentingHoursePreOrderVO.class)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        commonPage.setCommunityId(this.getCommunityId());
+        return communityService.selectAllRentingHoursePreOrder(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation(value = "详情",response = RentingHoursePreOrderVO.class)
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return communityService.selectOneRentingHoursePreOrder(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param rentingHoursePreOrderVO 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation(value = "创建定金订单")
+    @PostMapping
+    public R insert(@RequestBody RentingHoursePreOrderVO rentingHoursePreOrderVO) {
+        rentingHoursePreOrderVO.setCommunityId(this.getCommunityId());
+        return communityService.insertRentingHoursePreOrder(rentingHoursePreOrderVO);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param rentingHoursePreOrderVO 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation("修改")
+    @PostMapping("/update")
+    public R update(@RequestBody RentingHoursePreOrderVO rentingHoursePreOrderVO) {
+       return communityService.updateRentingHoursePreOrder(rentingHoursePreOrderVO);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @ApiOperation("删除数据")
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return communityService.deleteRentingHoursePreOrder(id);
+    }
+
+    /**
+     * 订单统计
+     */
+    @ApiOperation("定金订单统计")
+    @PostMapping("/statics")
+    public R statics(@RequestBody RentingHoursePreOrderVO rentingHoursePreOrderVO){
+        rentingHoursePreOrderVO.setCommunityId(this.getCommunityId());
+        return communityService.staticsRentingHoursePreOrder(rentingHoursePreOrderVO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/RentingHousesApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/RentingHousesApi.java
new file mode 100644
index 0000000..32283ea
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/RentingHousesApi.java
@@ -0,0 +1,110 @@
+package com.panzhihua.community_backstage.api;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+
+import com.panzhihua.common.model.vos.community.rentingHouses.RentingHousesConfigVO;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+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.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.rentingHouses.PageRentingHouseRegisterDTO;
+import com.panzhihua.common.model.dtos.community.rentingHouses.ReleaseOrCancelHouseDTO;
+import com.panzhihua.common.model.dtos.community.rentingHouses.RentingHouseRegisterDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.rentingHouses.RentingHouseRegisterVO;
+import com.panzhihua.common.service.community.CommunityService;
+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 lombok.extern.slf4j.Slf4j;
+
+/**
+ * @title: RentingHousesApi
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 房屋租赁相关接口
+ * @author: hans
+ * @date: 2021/11/24 10:18
+ */
+@RestController
+@Slf4j
+@Api(tags = {"房屋租赁相关接口"})
+@RequestMapping("/renting/houses")
+public class RentingHousesApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation("新增房源信息")
+    @PostMapping("/register")
+    public R registerRentingHouse(@RequestBody @Validated(AddGroup.class) RentingHouseRegisterDTO registerDTO) {
+        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
+        registerDTO.setUserId(loginUserInfo.getUserId());
+        registerDTO.setCommunityId(loginUserInfo.getCommunityId());
+        registerDTO.setAreaCode(this.getAreaCode());
+        return communityService.registerRentingHouse(registerDTO);
+    }
+
+    @ApiOperation("编辑房源信息")
+    @PostMapping("/update")
+    public R updateRentingHouse(@RequestBody @Validated(PutGroup.class) RentingHouseRegisterDTO registerDTO) {
+        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
+        registerDTO.setUserId(loginUserInfo.getUserId());
+        registerDTO.setCommunityId(loginUserInfo.getCommunityId());
+        return communityService.updateRentingHouse(registerDTO);
+    }
+
+    @ApiOperation(value = "分页获取房源信息", response = RentingHouseRegisterVO.class)
+    @PostMapping("/page")
+    public R pageRentingHouse(@RequestBody @Valid PageRentingHouseRegisterDTO pageRegisterDTO) {
+        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
+        pageRegisterDTO.setCommunityId(loginUserInfo.getCommunityId());
+        return communityService.pageRentingHouse(pageRegisterDTO);
+    }
+
+    @ApiOperation("发布/取消发布 房源信息")
+    @PutMapping("/releaseOrCancel")
+    public R releaseOrCancelHouse(@RequestBody @Valid ReleaseOrCancelHouseDTO releaseOrCancelHouseDTO) {
+        return communityService.releaseOrCancelHouse(releaseOrCancelHouseDTO);
+    }
+
+    @ApiOperation("删除房源信息")
+    @DeleteMapping("/delete")
+    @ApiImplicitParam(name = "registerId", value = "房源登记id", required = true)
+    public R deleteRentingHouse(@RequestParam("registerId") Long registerId) {
+        return communityService.deleteRentingHouse(registerId);
+    }
+
+    @ApiOperation(value = "获取详情-房源信息", response = RentingHouseRegisterVO.class)
+    @GetMapping("/get")
+    @ApiImplicitParam(name = "registerId", value = "房源登记id", required = true)
+    public R getRentingHouse(@RequestParam("registerId") Long registerId) {
+        return communityService.getRentingHouse(registerId);
+    }
+
+    @ApiOperation(value = "获取房屋租赁配置",response = RentingHousesConfigVO.class)
+    @GetMapping("/getConfig")
+    @ApiImplicitParam(name = "type", value = "配置类型(1.房屋租赁合同 2.租赁合同变更协议 3.定金协议 4.房屋委托代理合同" +
+            "5.平台须知 6.房源标签)", required = true)
+    public R getRentingHouseConfig(@RequestParam("type") Integer type) {
+        return communityService.getRentingHouseConfig(type);
+    }
+
+    @ApiOperation(value = "方便开发阶段手动调用批量更新小程序码")
+    @GetMapping("/updateAllHouseUnionAppCode")
+    public R updateAllHouseUnionAppCode() {
+        communityService.updateAllHouseUnionAppCode(this.getAreaCode());
+        return R.ok();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ScreenPopulationApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ScreenPopulationApi.java
new file mode 100644
index 0000000..fe55069
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ScreenPopulationApi.java
@@ -0,0 +1,42 @@
+package com.panzhihua.community_backstage.api;
+
+import javax.annotation.Resource;
+
+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 com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.screen.ComActPopulationScreenVO;
+import com.panzhihua.common.service.community.CommunityService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @author xyh
+ * @date 2021/6/15 14:30
+ */
+@Slf4j
+@Api(tags = {"大屏-人口"})
+@RestController
+@RequestMapping("/screen/population/")
+public class ScreenPopulationApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "人口@xyh", response = ComActPopulationScreenVO.class)
+    @GetMapping("/statistic")
+    public R statistic(@RequestParam("communityId") Long communityId) {
+        Long id = this.getCommunityId();
+        if (id == null) {
+            return R.fail(401, "请先登录");
+        }
+        return communityService.statistic(id);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ScreenPudaApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ScreenPudaApi.java
new file mode 100644
index 0000000..47b52a9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ScreenPudaApi.java
@@ -0,0 +1,83 @@
+package com.panzhihua.community_backstage.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.puda.*;
+import com.panzhihua.common.model.vos.screen.ComActActivityScreenVO;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+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;
+
+/**
+ * @author Tuzi
+ * @date 2023年02月03日 10:22
+ */
+@Slf4j
+@RestController
+@RequestMapping("/pudaScreen")
+@Api(tags = "普达大屏接口")
+public class ScreenPudaApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "自治动态",response = DynamicVO.class)
+    @GetMapping("/autonomyDynamic")
+    public R autonomyDynamic(){
+        return communityService.autonomyDynamic();
+    }
+
+    @ApiOperation(value = "红色物业",response = PropertyVO.class)
+    @GetMapping("/propertyDynamic")
+    public R propertyDynamic(){
+        return communityService.propertyDynamic();
+    }
+
+    @ApiOperation(value = "党建数据",response = PartyDataVO.class)
+    @GetMapping("/partyData")
+    public R partyData(){
+        return communityService.partyData();
+    }
+
+    @ApiOperation(value = "居民信息",response = CitizenInfoVO.class)
+    @GetMapping("/peopleInfo")
+    public R peopleInfo(){
+        return communityService.peopleInfo();
+    }
+
+    @ApiOperation(value = "小区院落",response = YardVO.class)
+    @GetMapping("/countryard")
+    public R countryard(){
+        return communityService.countryard();
+    }
+
+    @ApiOperation(value = "基础数据",response = BasicDataVO.class)
+    @GetMapping("/basicData")
+    public R basicData(){
+        return communityService.basicData();
+    }
+
+    @ApiOperation(value = "特殊数人群",response = SpecialPeopleVO.class)
+    @GetMapping("/specialPeople")
+    public R specialPeople(){
+        return communityService.specialPeople();
+    }
+
+    /**
+     * 社区活动
+     * @author 封锦
+     * @return
+     */
+    @ApiOperation(value = "社区活动@xyh", response = ComActActivityScreenVO.class)
+    @GetMapping("/activity")
+    public R activity() {
+        return communityService.activity(10172L);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ScreenWorkApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ScreenWorkApi.java
new file mode 100644
index 0000000..ffc6633
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ScreenWorkApi.java
@@ -0,0 +1,293 @@
+package com.panzhihua.community_backstage.api;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenStaticsReserve;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.bigscreen.work.ScreenActActivityListDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.work.ScreenActActivityPeopleListDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.work.ScreenDiscussListDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.work.ScreenMicroListDTO;
+import com.panzhihua.common.model.dtos.neighbor.ComActNeighborCircleAdminDTO;
+import com.panzhihua.common.model.dtos.neighbor.DetailNeighborAllCommentByAdminDTO;
+import com.panzhihua.common.model.dtos.neighbor.DetailNeighborCommentReplyByAdminDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActDynVO;
+import com.panzhihua.common.model.vos.community.screen.work.ActActivityListVO;
+import com.panzhihua.common.model.vos.community.screen.work.ActActivityPeopleListVO;
+import com.panzhihua.common.model.vos.community.screen.work.DiscussListVO;
+import com.panzhihua.common.model.vos.community.screen.work.MicroListVO;
+import com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleAdminVO;
+import com.panzhihua.common.model.vos.neighbor.ComActNeighborCommentByAdminVO;
+import com.panzhihua.common.model.vos.neighbor.ComActNeighborCommentReplyByAdminVO;
+import com.panzhihua.common.model.vos.screen.*;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.grid.GridService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @author xyh
+ * @date 2021/6/15 14:30
+ */
+@Slf4j
+@Api(tags = {"大屏-工作"})
+@RestController
+@RequestMapping("/screen/work")
+public class ScreenWorkApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private GridService gridService;
+
+    /**
+     * 邻里圈
+     * 
+     * @param communityId
+     * @return
+     */
+    @ApiOperation(value = "邻里圈@xyh", response = ComActNeighborCircleScreenVO.class)
+    @GetMapping("/eighborCircle")
+    public R statisticNeighborCircle(@RequestParam("communityId") Long communityId) {
+        Long id = this.getCommunityId();
+        if (id == null) {
+            return R.fail(401, "请先登录");
+        }
+        return communityService.statisticNeighborCircle(id);
+    }
+
+    /**
+     * 微心愿
+     * 
+     * @param communityId
+     * @return
+     */
+    @ApiOperation(value = "微心愿@xyh", response = ComActMicroWishScreenVO.class)
+    @GetMapping("/wish")
+    public R wish(@RequestParam("communityId") Long communityId) {
+        Long id = this.getCommunityId();
+        if (id == null) {
+            return R.fail(401, "请先登录");
+        }
+        return communityService.wish(id);
+    }
+
+    /**
+     * 社区活动
+     * 
+     * @param communityId
+     * @return
+     */
+    @ApiOperation(value = "社区活动@xyh", response = ComActActivityScreenVO.class)
+    @GetMapping("/activity")
+    public R activity(@RequestParam("communityId") Long communityId) {
+        Long id = this.getCommunityId();
+        if (id == null) {
+            return R.fail(401, "请先登录");
+        }
+        return communityService.activity(id);
+    }
+
+    /**
+     * 一起议
+     * 
+     * @param communityId
+     * @return
+     */
+    @ApiOperation(value = "一起议@xyh", response = ComActDiscussScreenVO.class)
+    @GetMapping("/discuss")
+    public R discuss(@RequestParam("communityId") Long communityId) {
+        Long id = this.getCommunityId();
+        if (id == null) {
+            return R.fail(401, "请先登录");
+        }
+        return communityService.discuss(id);
+    }
+
+    /**
+     * 党建工作
+     * 
+     * @param communityId
+     * @return
+     */
+    @ApiOperation(value = "党建工作@xyh", response = ComPbWorkScreenVO.class)
+    @GetMapping("/pbWork")
+    public R pbWork(@RequestParam("communityId") Long communityId) {
+        Long id = this.getCommunityId();
+        if (id == null) {
+            return R.fail(401, "请先登录");
+        }
+        return communityService.pbWork(id);
+    }
+
+    @ApiOperation(value = "社区动态@lyq", response = ComDynamicWorkScreenVO.class)
+    @GetMapping("/dynamicWork")
+    public R dynamicWork(@RequestParam("communityId") Long communityId) {
+        Long id = this.getCommunityId();
+        if (id == null) {
+            return R.fail(401, "请先登录");
+        }
+        return communityService.dynamicWork(id);
+    }
+
+    @ApiOperation(value = "事件管理@lyq", response = EventWorkScreenVO.class)
+    @GetMapping("/eventWork")
+    public R eventWork(@RequestParam("communityId") Long communityId) {
+        Long id = this.getCommunityId();
+        if (id == null) {
+            return R.fail(401, "请先登录");
+        }
+        return gridService.eventWork(id);
+    }
+
+    /**
+     * 随手拍
+     * 
+     * @param communityId
+     * @return
+     */
+    @ApiOperation(value = "随手拍@xyh", response = ComActEasyPhotoScreenVO.class)
+    @GetMapping("/easyPhoto")
+    public R easyPhoto(@RequestParam("communityId") Long communityId) {
+        Long id = this.getCommunityId();
+        if (id == null) {
+            return R.fail(401, "请先登录");
+        }
+        return communityService.easyPhoto(id);
+    }
+
+    /**
+     * 工作情况
+     * 
+     * @param communityId
+     * @return
+     */
+    @ApiOperation(value = "工作情况@xyh", response = ComActWorkScreenVO.class)
+    @GetMapping("/workCount")
+    public R workCount(@RequestParam("communityId") Long communityId) {
+        Long id = this.getCommunityId();
+        if (id == null) {
+            return R.fail(401, "请先登录");
+        }
+        return communityService.workCount(id);
+    }
+
+    @ApiOperation(value = "工作大屏一起议列表接口@lyq", response = DiscussListVO.class)
+    @PostMapping("/discuss/list")
+    public R discussList(@RequestBody ScreenDiscussListDTO discussListDTO) {
+        Long id = this.getCommunityId();
+        if (id == null) {
+            return R.fail(401, "请先登录");
+        }
+        discussListDTO.setCommunityId(id);
+        // if(discussListDTO.getCommunityId() == null){
+        // return R.fail("参数错误");
+        // }
+        return communityService.getScreenDiscussList(discussListDTO);
+    }
+
+    @ApiOperation(value = "工作大屏社区活动列表接口@lyq", response = ActActivityListVO.class)
+    @PostMapping("/act/activity/list")
+    public R actActivityList(@RequestBody ScreenActActivityListDTO actActivityListDTO) {
+        Long id = this.getCommunityId();
+        if (id == null) {
+            return R.fail(401, "请先登录");
+        }
+        actActivityListDTO.setCommunityId(id);
+        // if(actActivityListDTO.getCommunityId() == null){
+        // return R.fail("参数错误");
+        // }
+        return communityService.getScreenActActivityList(actActivityListDTO);
+    }
+
+    @ApiOperation(value = "工作大屏社区活动报名详情接口@lyq", response = ActActivityPeopleListVO.class)
+    @PostMapping("/act/activity/people/list")
+    public R actActivityPeopleList(@RequestBody ScreenActActivityPeopleListDTO activityPeopleListDTO) {
+        return communityService.getActActivityPeopleList(activityPeopleListDTO);
+    }
+
+    @ApiOperation(value = "工作大屏微心愿列表接口@lyq", response = MicroListVO.class)
+    @PostMapping("/micro/list")
+    public R microList(@RequestBody ScreenMicroListDTO microListDTO) {
+        Long id = this.getCommunityId();
+        if (id == null) {
+            return R.fail(401, "请先登录");
+        }
+        microListDTO.setCommunityId(id);
+        // if(microListDTO.getCommunityId() == null){
+        // return R.fail("参数错误");
+        // }
+        return communityService.getScreenMicroList(microListDTO);
+    }
+
+    @ApiOperation(value = "工作大屏邻里圈列表接口@lyq", response = ComActNeighborCircleAdminVO.class)
+    @PostMapping("/neighbor/list")
+    public R neighborList(@RequestBody ComActNeighborCircleAdminDTO neighborCircleAdminDTO) {
+        Long id = this.getCommunityId();
+        if (id == null) {
+            return R.fail(401, "请先登录");
+        }
+        neighborCircleAdminDTO.setCommunityId(id);
+        // if(neighborCircleAdminDTO.getCommunityId() == null){
+        // return R.fail("参数错误");
+        // }
+        return communityService.pageNeighborByAdmin(neighborCircleAdminDTO);
+    }
+
+    @ApiOperation(value = "工作大屏邻里圈详情接口@lyq", response = ComActNeighborCircleAdminVO.class)
+    @GetMapping("/neighbor/detail")
+    public R neighborDetail(@RequestParam("id") Long id) {
+        return communityService.detailNeighborByAdmin(id);
+    }
+
+    @ApiOperation(value = "工作大屏邻里圈详情的所有评论接口@lyq", response = ComActNeighborCommentByAdminVO.class)
+    @PostMapping("/neighbor/detail/comment")
+    public R detailNeighborAllCommentByAdmin(@RequestBody DetailNeighborAllCommentByAdminDTO dto) {
+        return communityService.detailNeighborAllCommentByAdmin(dto);
+    }
+
+    @ApiOperation(value = "工作大屏邻里圈评论详情接口@lyq", response = ComActNeighborCommentByAdminVO.class)
+    @GetMapping("/neighbor/detail/comment/detail")
+    public R detailNeighborCommentByAdmin(@RequestParam("id") Long id) {
+        return communityService.detailNeighborCommentByAdmin(id);
+    }
+
+    @ApiOperation(value = "工作大屏邻里圈评论详情回复列表接口@lyq", response = ComActNeighborCommentReplyByAdminVO.class)
+    @PostMapping("/neighbor/detail/comment/reply")
+    public R detailNeighborCommentAllReply(@RequestBody DetailNeighborCommentReplyByAdminDTO dto) {
+        return communityService.detailNeighborCommentAllReply(dto);
+    }
+
+    @ApiOperation(value = "分页查询社区动态", response = ComActDynVO.class)
+    @PostMapping("pagedynamic")
+    public R pageDynamic(@RequestBody ComActDynVO comActDynVO) {
+        Long id = this.getCommunityId();
+        if (id == null) {
+            return R.fail(401, "请先登录");
+        }
+        comActDynVO.setCommunityId(id+"");
+        // if(comActDynVO.getCommunityId() == null){
+        // return R.fail("参数错误");
+        // }
+        return communityService.pageDynamicByAdmin(comActDynVO);
+    }
+
+    @ApiOperation(value = "社区动态详情", response = ComActDynVO.class)
+    @GetMapping("/detaildynamic")
+    @ApiImplicitParam(name = "id", value = "社区动态主键", required = true)
+    public R detailDynamic(@RequestParam("id") Long id) {
+        return communityService.detailDynamic(id);
+    }
+
+    @ApiOperation(value = "安全防控",response = BigScreenStaticsReserve.class)
+    @GetMapping("/reserve")
+    public R reserve(){
+        return communityService.bigScreenStaticsReserve(this.getCommunityId());
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ShopFlowerApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ShopFlowerApi.java
new file mode 100644
index 0000000..eab1a23
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/ShopFlowerApi.java
@@ -0,0 +1,197 @@
+package com.panzhihua.community_backstage.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.convenient.ConvenientMerchantDTO;
+import com.panzhihua.common.model.dtos.shop.ComShopFlowerRefundOrderDTO;
+import com.panzhihua.common.model.dtos.shop.PageComOrderRefundDTO;
+import com.panzhihua.common.model.dtos.shop.PageComShopFlowerGoodsDTO;
+import com.panzhihua.common.model.dtos.shop.PageComShopOrderSearchDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
+import com.panzhihua.common.model.vos.shop.*;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.user.UserService;
+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.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * @auther yh
+ * @describe 商城管理
+ */
+@Slf4j
+@Api(tags = {"花城商城管理模块"})
+@RestController
+@RequestMapping("shopFlower")
+public class ShopFlowerApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private UserService userService;
+
+
+    @ApiOperation(value = "查询便民服务商家详情", response = ConvenientMerchantVO.class)
+    @GetMapping("/merchant/getMerchantByUserId")
+    public R getMerchant(@RequestParam("userId") Long userId) {
+        return communityService.getMerchantByUserId(userId);
+    }
+
+    @ApiOperation(value = "编辑便民服务商家")
+    @PutMapping("/merchant/put")
+    public R putMerchant(@RequestBody @Validated(PutGroup.class) ConvenientMerchantDTO convenientMerchantDTO) {
+        convenientMerchantDTO.setUpdatedBy(this.getUserId());
+        return communityService.putMerchant(convenientMerchantDTO);
+    }
+
+
+    @ApiOperation(value = "分页查询商品", response = PageShopGoodsVO.class)
+    @PostMapping("/goods/page")
+    public R pageGoodsList(@RequestBody PageComShopFlowerGoodsDTO pageComShopGoodsDTO) {
+        pageComShopGoodsDTO.setUserId(this.getUserId());
+        return communityService.pageFlowerGoodsList(pageComShopGoodsDTO);
+    }
+
+    @ApiOperation(value = "新增商品")
+    @PostMapping("/goods/save")
+    public R saveShopGoods(@RequestBody @Validated(AddGroup.class) AddShopFlowerGoodsVO addShopGoodsVO) {
+        return communityService.saveFlowerShopGoods(addShopGoodsVO);
+    }
+
+    @ApiOperation(value = "编辑商品")
+    @PostMapping("/goods/edit/{id}")
+    public R editShopGoods(@PathVariable("id") Long id,
+                           @RequestBody @Validated(AddGroup.class) AddShopFlowerGoodsVO addShopGoodsVO) {
+        return communityService.editFlowerShopGoods(id, addShopGoodsVO);
+    }
+    @ApiOperation(value = "查询商品详情", response = ComShopFlowerGoodsVO.class)
+    @GetMapping("shopGoodsDetail")
+    @ApiImplicitParam(name = "goodsId", value = "商品id", required = true)
+    public R shopGoodsDetail(@RequestParam("goodsId") Long goodsId) {
+        return communityService.shopFlowerGoodsDetail(goodsId);
+    }
+
+
+    @ApiOperation(value = "删除商品")
+    @DeleteMapping("/goods/delete")
+    public R deleteShopGoods(@RequestParam("goodsId") Long goodsId) {
+        return communityService.deleteFlowerShopGoods(goodsId);
+    }
+
+    @ApiOperation(value = "商品上下架")
+    @ApiImplicitParams({@ApiImplicitParam(name = "id", value = "商品Id"),
+            @ApiImplicitParam(name = "status", value = "1.上架  2.下架 ")})
+    @GetMapping("/goods/changeStatus")
+    public R changeStatus(@RequestParam("id") Long id, @RequestParam("status") Integer status) {
+        return communityService.changeFlowerStatus(id, status);
+    }
+
+    @ApiOperation(value = "商品分类")
+    @GetMapping("/goodsCategory/getAllGoodsCategories")
+    public R getAllGoodsCategories() {
+        return communityService.getAllGoodsCategories();
+    }
+
+    @ApiOperation(value = "统计查询订单数量")
+    @GetMapping("/order/selectCountByDeliveryType")
+    @ApiImplicitParams({@ApiImplicitParam(name = "deliveryType", value = "1.自提 2.快递"),
+            @ApiImplicitParam(name = "userId", value = "商店用户id")})
+    public R selectCountByDeliveryType(Integer deliveryType,Long userId){
+        return communityService.selectCountByDeliveryType(deliveryType,userId);
+    }
+
+    @ApiOperation(value = "商家查询 订单_分页列表", response = ComShopOrderSearchVO.class)
+    @PostMapping("/order/page")
+    public R page(@RequestBody @Validated PageComShopOrderSearchDTO pageComShopOrderSearchDTO) {
+         pageComShopOrderSearchDTO.setStoreUserId(this.getUserId());
+        return communityService.pageShopOrderFlower(pageComShopOrderSearchDTO);
+    }
+
+    @ApiOperation(value = "订单_详细", response = ComShopFlowerOrderPageVO.class)
+    @GetMapping("/order/detail")
+    public R detail(@RequestParam("orderId") Long orderId) {
+        return communityService.orderDetailFlower(orderId,null);
+    }
+
+    /**
+     * 商家后台 分页查询
+     * @param pageComOrderRefundDTO
+     * @return
+     */
+    @PostMapping("pageRefundOrder")
+    @ApiOperation(value = "商家后台-退款订单 分页查询",response = ComShopFlowerRefundOrderVO.class)
+    public R pageRefundOrder(@RequestBody PageComOrderRefundDTO pageComOrderRefundDTO){
+        pageComOrderRefundDTO.setBackstageUserId(this.getUserId());
+        pageComOrderRefundDTO.setStoreId(null);
+        return communityService.pageRefundOrder(pageComOrderRefundDTO);
+    }
+
+    /**
+     * 商家后台 分页查询
+     * @param refundId
+     * @return
+     */
+    @PostMapping("refundOrderDetail")
+    @ApiOperation(value = "商家后台-退款订单 详情",response = ComShopFlowerRefundOrderVO.class)
+    public R refundOrderDetail(@RequestParam("refundId") Long refundId){
+        return communityService.refundOrderDetail(refundId);
+    }
+
+    /**
+     * 商家后台-退款申请统计
+     * @param storeId
+     * @return
+     */
+    @GetMapping("selectCountGroupStatus")
+    @ApiOperation(value = "商家后台-退款申请统计")
+    public R selectCountGroupStatus(Long storeId){
+        return communityService.selectCountGroupStatus(storeId);
+    }
+
+
+    /**
+     * 商家后台经营数据统计-上
+     * @param storeId
+     * @return
+     */
+    @GetMapping("selectSumOrderAndAmountByStoreId")
+    @ApiOperation(value = "商家后台经营数据统计-上")
+    public R selectSumOrderAndAmountByStoreId(@RequestParam("storeId") Long storeId){
+        return communityService.selectSumOrderAndAmountByStoreId(storeId);
+    }
+
+    /**
+     * 统计时间区域的订单量 15天 30天 一年
+     * @param storeId
+     * @param type
+     * @return
+     */
+    @GetMapping("selectOrderLineChart")
+    @ApiOperation(value = "商家后台-统计时间区域的订单量 15天 30天 一年")
+    @ApiImplicitParams({@ApiImplicitParam(name = "storeId", value = "商家id"),
+            @ApiImplicitParam(name = "type", value = "类型 1.近15天  2.近30天 3.今年"),
+            @ApiImplicitParam(name = "tab", value = "tab 1.订单量  2.营业收入")})
+    public  R selectOrderLineChart(@RequestParam("storeId") Long storeId,@RequestParam("type")  Integer type,@RequestParam("tab")  Integer tab){
+        return communityService.selectOrderLineChart(storeId,type,tab);
+    }
+
+    /**
+     * 统计上架的上下架商品数量
+     * @return
+     */
+    @ApiOperation(value = "商家后台-上下架商品数量")
+    @GetMapping("/countSale")
+    public R countSale(){
+        return communityService.countSaleByUserId(this.getUserId());
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/StreetApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/StreetApi.java
new file mode 100644
index 0000000..b6c502c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/StreetApi.java
@@ -0,0 +1,38 @@
+package com.panzhihua.community_backstage.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.PageComStreetDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComStreetVO;
+import com.panzhihua.common.model.vos.user.AdministratorsUserVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.user.UserService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+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.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @description: 街道管理
+ * @author: llming
+ **/
+@Api(tags = {"街道管理"})
+@RestController
+@RequestMapping("/streetmanager/")
+public class StreetApi extends BaseController {
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "分页查询街道", response = PageComStreetDTO.class)
+    @PostMapping("pagestreet")
+    public R pageStreet(@RequestBody PageComStreetDTO pageComStreetDTO) {
+        pageComStreetDTO.setAreaCode(this.getAreaCode());
+        return communityService.pageStreet(pageComStreetDTO);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/StreetBigApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/StreetBigApi.java
new file mode 100644
index 0000000..f3a04d9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/StreetBigApi.java
@@ -0,0 +1,139 @@
+package com.panzhihua.community_backstage.api;
+
+import com.panzhihua.common.model.dtos.partybuilding.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.partybuilding.NewStriveForFeign;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+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;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 街道大屏
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-24 09:19
+ **/
+@Api(tags = {"街道大屏"})
+@RestController
+@RequestMapping("/StreetBig/")
+public class StreetBigApi
+{
+    @Resource
+    private NewStriveForFeign newStriveForFeign;
+
+    @ApiOperation(value = "获取街道下社区内容", response = StreetCoreData.class)
+    @GetMapping("/getCommunityId")
+    public R getCommunityId(@RequestParam("streetId") String streetId)
+    {
+        return newStriveForFeign.getCommunityId(streetId);
+    }
+
+
+    /**
+     * 获取核心指标数据
+     * @param streetId
+     * @return
+     */
+    @ApiOperation(value = "获取核心指标数据", response = StreetCoreData.class)
+    @GetMapping("/getCoreData")
+    public R getCoreData(@RequestParam(value = "streetId", required = false) String streetId,
+                         @RequestParam(value = "communityId", required = false)String communityId,
+                         @RequestParam(value = "type", required = false)String type,
+                         @RequestParam(value = "starTime", required = false)String starTime,
+                         @RequestParam(value = "endTime", required = false)String endTime)
+    {
+        return newStriveForFeign.getCoreData(streetId,communityId,type,starTime,endTime);
+    }
+
+
+    /**
+     * 获取三务三资数据
+     * @param streetId
+     * @param communityId
+     * @param type
+     * @param starTime
+     * @param endTime
+     * @return
+     */
+    @ApiOperation(value = "获取三务三资数据", response = ThreeNumData.class)
+    @GetMapping("/getThreeNum")
+    public R getThreeNum(@RequestParam(value = "streetId", required = false) String streetId,
+                         @RequestParam(value = "communityId", required = false)String communityId,
+                         @RequestParam(value = "type", required = false)String type,
+                         @RequestParam(value = "starTime", required = false)String starTime,
+                         @RequestParam(value = "endTime", required = false)String endTime)
+    {
+        return newStriveForFeign.getThreeNum(streetId,communityId,type,starTime,endTime);
+    }
+
+
+
+    /**
+     * 双报到双服务
+     * @param streetId
+     * @param communityId
+     * @param type
+     * @param starTime
+     * @param endTime
+     * @return
+     */
+    @ApiOperation(value = "双报到双服务", response = DoubleRegistrationData.class)
+    @GetMapping("/getDoubleRegistration")
+    public R getDoubleRegistration(@RequestParam(value = "streetId", required = false) String streetId,
+                                   @RequestParam(value = "communityId", required = false)String communityId,
+                                   @RequestParam(value = "type", required = false)String type,
+                                   @RequestParam(value = "starTime", required = false)String starTime,
+                                   @RequestParam(value = "endTime", required = false)String endTime)
+    {
+        return newStriveForFeign.getDoubleRegistration(streetId,communityId,type,starTime,endTime);
+    }
+
+    /**
+     * 随手拍  微心愿
+     * @param streetId
+     * @param communityId
+     * @param type
+     * @param starTime
+     * @param endTime
+     * @return
+     */
+    @ApiOperation(value = "随手拍  微心愿", response = PhotoMicroWish.class)
+    @GetMapping("/getPhotoMicroWish")
+    public R getPhotoMicroWish(@RequestParam(value = "streetId", required = false) String streetId,
+                               @RequestParam(value = "communityId", required = false)String communityId,
+                               @RequestParam(value = "type", required = false)String type,
+                               @RequestParam(value = "starTime", required = false)String starTime,
+                               @RequestParam(value = "endTime", required = false)String endTime)
+    {
+        return newStriveForFeign.getPhotoMicroWish(streetId,communityId,type,starTime,endTime);
+    }
+
+
+
+    /**
+     * 社区活动、议事投票、问卷调查、社区动态发布趋势
+     * @param streetId
+     * @param communityId
+     * @param type
+     * @param starTime
+     * @param endTime
+     * @return
+     */
+    @ApiOperation(value = "社区活动、议事投票、问卷调查、社区动态发布趋势", response = AllData.class)
+    @GetMapping("/getAllData")
+    public R getAllData(@RequestParam(value = "streetId", required = false) String streetId,
+                        @RequestParam(value = "communityId", required = false)String communityId,
+                        @RequestParam(value = "type", required = false)String type,
+                        @RequestParam(value = "starTime", required = false)String starTime,
+                        @RequestParam(value = "endTime", required = false)String endTime)
+    {
+        return newStriveForFeign.getAllData(streetId,communityId,type,starTime,endTime);
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/SystemManagementApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/SystemManagementApi.java
new file mode 100644
index 0000000..f7ad4cc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/SystemManagementApi.java
@@ -0,0 +1,229 @@
+package com.panzhihua.community_backstage.api;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.util.ObjectUtils;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.interfaces.OperLog;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.SystemmanagementConfigVO;
+import com.panzhihua.common.model.vos.community.ComMngStructBuildTypeVO;
+import com.panzhihua.common.model.vos.user.*;
+import com.panzhihua.common.service.HanyuPinyinHelper;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 系统管理
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-24 09:19
+ **/
+@Api(tags = {"系统管理"})
+@RestController
+@RequestMapping("/systemmanagement/")
+public class SystemManagementApi extends BaseController {
+    @Resource
+    private UserService userService;
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "新增社区后台账户")
+    @PostMapping("user")
+    //@OperLog(operModul = "用户管理", operType = 1)
+    public R addUser(@RequestBody @Validated(AddGroup.class) AdministratorsUserVO administratorsUserVO) {
+        administratorsUserVO.setType(3);
+        administratorsUserVO.setAreaId(null);
+        administratorsUserVO.setCommunityId(this.getCommunityId());
+        administratorsUserVO.setAppid(this.getAppId());
+        return userService.addUserBackstage(administratorsUserVO);
+    }
+
+    @ApiOperation(value = "编辑社区后台账户")
+    @PutMapping("user")
+    //@OperLog(operModul = "用户管理", operType = 2)
+    public R putUserBackstage(@RequestBody AdministratorsUserVO administratorsUserVO) {
+        Long userId = administratorsUserVO.getUserId();
+        if (null == userId || 0 == userId) {
+            return R.fail("用户主键不能为空");
+        }
+        administratorsUserVO.setType(3);
+        administratorsUserVO.setAreaId(null);
+        administratorsUserVO.setCommunityId(this.getCommunityId());
+        Integer status = administratorsUserVO.getStatus();
+        if (null != status && status.intValue() == 0) {
+            administratorsUserVO.setStatus(null);
+        }
+        return userService.putUserBackstage(administratorsUserVO);
+    }
+
+    @ApiOperation(value = "删除后台用户")
+    @DeleteMapping("user")
+    //@OperLog(operModul = "用户管理", operType = 3)
+    public R deleteUserBackstage(@RequestBody AdministratorsUserVO administratorsUserVO) {
+        Long userId = administratorsUserVO.getUserId();
+        if (null == userId || 0 == userId) {
+            return R.fail("用户主键不能为空");
+        }
+        administratorsUserVO.setCommunityId(this.getCommunityId());
+        return userService.deleteUserBackstage(administratorsUserVO);
+    }
+
+    @ApiOperation(value = "角色下拉列表", response = RoleVO.class)
+    @GetMapping("listrolebackstage")
+    public R listRoleBackstage(@RequestParam("pageNum")Integer pageNum,@RequestParam("pageSize")Integer pageSize) {
+        Long communityId = this.getCommunityId();
+        return userService.listRoleBackstage(communityId,pageNum,pageSize,"");
+    }
+
+    @ApiOperation(value = "分页查询后台用户", response = AdministratorsUserVO.class)
+    @PostMapping("pageuser")
+    public R pageUserBackstage(@RequestBody AdministratorsUserVO administratorsUserVO) {
+        administratorsUserVO.setCommunityId(this.getCommunityId());
+        return userService.pageUserBackstage(administratorsUserVO);
+    }
+
+    // @ApiOperation(value = "新增角色")
+    // @PostMapping("role")
+     //@OperLog(operModul = "角色管理",operType = 1)
+    // public R addRoleBackstage(@RequestBody RoleVO roleVO){
+    // String roleName = roleVO.getRoleName();
+    // if (ObjectUtils.isEmpty(roleName)) {
+    // return R.fail("角色名字不能为空");
+    // }
+    // roleVO.setCommunityId(this.getCommunityId());
+    // Long userId = this.getUserId();
+    // roleVO.setCreateBy(userId);
+    // roleVO.setStatus(0);
+    // HanyuPinyinHelper hanyuPinyinHelper = new HanyuPinyinHelper() ;
+    // roleVO.setRoleKey(hanyuPinyinHelper.toHanyuPinyin(roleName));
+    // return userService.addRoleBackstage(roleVO);
+    // }
+
+    @ApiOperation(value = "删除角色")
+    @DeleteMapping("role")
+    //@OperLog(operModul = "角色管理", operType = 3)
+    public R deleteRoleBackstage(@RequestBody RoleVO roleVO) {
+        Long roleId = roleVO.getRoleId();
+        if (null == roleId || 0 == roleId) {
+            return R.fail("角色主键不能为空");
+        }
+        return userService.deleteRoleBackstage(roleVO);
+    }
+
+    @ApiOperation(value = "社区平台权限配置表", response = SysMenuVO.class)
+    @GetMapping("listmenu")
+    public R listMenuBackstage() {
+        // Long communityId = this.getCommunityId(); todo 所有平台都用一套死菜单 所以参数固定
+        Long communityId = 2l;
+        return userService.listMenuBackstage(communityId);
+    }
+
+    @ApiOperation(value = "获取角色的权限配置列表", response = SysMenuVO.class)
+    @GetMapping("listmenurole")
+    @ApiImplicitParam(name = "roleId", value = "角色id")
+    public R listMenuBackstageByRole(@RequestParam("roleId") Long roleId) {
+        return userService.listMenuBackstageByRole(roleId);
+    }
+
+    @ApiOperation(value = "新增角色-设置角色的权限")
+    @PostMapping("menu")
+    //@OperLog(operModul = "角色管理", operType = 1)
+    public R addMenuRole(@RequestBody @Validated MenuRoleVO menuRoleVO) {
+        RoleVO roleVO = new RoleVO();
+        String roleName = menuRoleVO.getRoleName();
+        if (ObjectUtils.isEmpty(roleName)) {
+            return R.fail("角色名字不能为空");
+        }
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long userId = loginUserInfo.getUserId();
+        Long communityId = loginUserInfo.getCommunityId();
+        roleVO.setRoleName(roleName);
+        roleVO.setCommunityId(communityId);
+        roleVO.setCreateBy(userId);
+        roleVO.setStatus(0);
+        HanyuPinyinHelper hanyuPinyinHelper = new HanyuPinyinHelper();
+        roleVO.setRoleKey(hanyuPinyinHelper.toHanyuPinyin(roleName));
+        R r = userService.addRoleBackstage(roleVO);
+        if (R.isOk(r)) {
+            Long roleId = Long.parseLong(r.getData().toString());
+            menuRoleVO.setRoleId(roleId);
+            menuRoleVO.setCommunityId(communityId);
+            return userService.putMenuRole(menuRoleVO);
+        }
+        return r;
+    }
+
+    @ApiOperation(value = "设置角色的权限")
+    @PutMapping("menu")
+    //@OperLog(operModul = "角色管理", operType = 2)
+    public R putMenuRole(@RequestBody @Validated MenuRoleVO menuRoleVO) {
+        menuRoleVO.setCommunityId(this.getCommunityId());
+        return userService.putMenuRole(menuRoleVO);
+    }
+
+    @ApiOperation(value = "分页展示操作日志", response = SysOperLogVO.class)
+    @PostMapping("pageoperlog")
+    public R pageOperLog(@RequestBody SysOperLogVO sysOperLogVO) {
+        sysOperLogVO.setCommunityId(this.getCommunityId());
+        return userService.pageOperLog(sysOperLogVO);
+    }
+
+    @ApiOperation(value = "获取系统配置", response = SystemmanagementConfigVO.class)
+    @GetMapping("config")
+    public R config() {
+        Long communityId = this.getCommunityId();
+        R r = userService.listComMngUserTag(communityId);
+        R r1 = communityService.listComMngStructBuildType(communityId);
+        SystemmanagementConfigVO systemmanagementConfigVO = new SystemmanagementConfigVO();
+        if (R.isOk(r)) {
+            systemmanagementConfigVO.setComMngUserTagVOList((List<ComMngUserTagVO>)r.getData());
+        }
+        if (R.isOk(r1)) {
+            systemmanagementConfigVO.setComMngStructBuildTypeVOList((List<ComMngStructBuildTypeVO>)r1.getData());
+        }
+        return R.ok(systemmanagementConfigVO);
+    }
+
+    @ApiOperation(value = "新增、删除系统配置")
+    @PutMapping("config")
+    public R putconfig(@RequestBody @Validated(AddGroup.class) SystemmanagementConfigVO systemmanagementConfigVO) {
+        Long communityId = this.getCommunityId();
+        systemmanagementConfigVO.setCommunityId(communityId);
+        R r = userService.putComMngUserTag(systemmanagementConfigVO);
+        if (!R.isOk(r)) {
+            return r;
+        }
+        R r1 = communityService.putComMngStructBuildType(systemmanagementConfigVO);
+        return r1;
+    }
+
+    @ApiOperation(value = "用户协议", response = SysUserAgreementVO.class)
+    @GetMapping("listagreement")
+    public R listAgreement() {
+        return userService.listAgreements(this.getCommunityId());
+    }
+
+    @ApiOperation(value = "编辑用户协议")
+    @PutMapping("agreement")
+    //@OperLog(operModul = "用户协议", operType = 2)
+    public R putAgreement(@RequestBody SysUserAgreementVO sysUserAgreementVO) {
+        Long id = sysUserAgreementVO.getId();
+        if (null == id || id == 0) {
+            return R.fail("协议主键不能为空");
+        }
+        return userService.putAgreement(sysUserAgreementVO);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/TestApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/TestApi.java
new file mode 100644
index 0000000..b8bfb93
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/TestApi.java
@@ -0,0 +1,160 @@
+package com.panzhihua.community_backstage.api;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ActivitySignVO;
+import com.panzhihua.common.model.vos.community.ComActActivityVO;
+import com.panzhihua.common.model.vos.partybuilding.PartyBuildingActivityVO;
+import com.panzhihua.common.model.vos.user.SysUserNoticeVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.partybuilding.PartyBuildingService;
+import com.panzhihua.common.service.user.UserService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 调试接口
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-07 15:47
+ **/
+@Slf4j
+@RestController
+@Api(tags = {"调试接口"})
+@RequestMapping("/test/")
+public class TestApi {
+
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private PartyBuildingService partyBuildingService;
+    @Resource
+    private UserService userService;
+
+    @ApiOperation(value = "定时任务刷新社区动态置顶状态")
+    @GetMapping("timedtaskdynistopping")
+    public R timedTaskDynIstopping() {
+        R r = communityService.timedTaskDynIstopping();
+        return r;
+    }
+
+    @ApiOperation(value = "定时任务刷新社区动态发布状态")
+    @GetMapping("timedtaskdynstatus")
+    public R timedTaskDynStatus() {
+        R r = communityService.timedTaskDynStatus();
+        return r;
+    }
+
+    @ApiOperation(value = "定时任务刷新党建动态发布状态")
+    @GetMapping("timedtaskpartybuildingstatus")
+    public R timedTaskPartyBuildingStatus() {
+        R r = partyBuildingService.timedTaskPartyBuildingStatus();
+        return r;
+    }
+
+    @ApiOperation(value = "定时任务取消党建活动")
+    @GetMapping("timedtaskpartybuildingactivity")
+    public R timedTaskPartyBuildingActivity() {
+        R r = partyBuildingService.timedTaskPartyBuildingActivity();
+        if (R.isOk(r)) {
+            Object data = r.getData();
+            List<PartyBuildingActivityVO> partyBuildingActivityVOS =
+                JSONArray.parseArray(JSONArray.toJSONString(data), PartyBuildingActivityVO.class);
+            if (!ObjectUtils.isEmpty(partyBuildingActivityVOS)) {
+                partyBuildingActivityVOS.forEach(partyBuildingActivityVO -> {
+                    List<Long> userIds = partyBuildingActivityVO.getUserIds();
+                    if (!ObjectUtils.isEmpty(userIds)) {
+                        userIds.forEach(aLong -> {
+                            SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO();
+                            sysUserNoticeVO.setUserId(aLong);
+                            sysUserNoticeVO.setType(1);
+                            sysUserNoticeVO.setBusinessType(2);
+                            sysUserNoticeVO.setBusinessTitle(partyBuildingActivityVO.getName());
+                            sysUserNoticeVO.setBusinessTime(new Date());
+                            sysUserNoticeVO.setBusinessId(partyBuildingActivityVO.getId());
+                            sysUserNoticeVO.setStatus(0);
+                            sysUserNoticeVO.setTitle("活动因故取消");
+                            sysUserNoticeVO.setBusinessContent("报名人数不足活动自动取消");
+                            sysUserNoticeVO.setBusinessStatus(1);
+                            R r2 = userService.addNotice(sysUserNoticeVO);
+                            if (R.isOk(r2)) {
+                                log.info("新增党建活动取消通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+                            }
+                        });
+                    }
+                });
+            }
+        }
+        return r;
+    }
+
+    @ApiOperation(value = "定时任务取消社区活动")
+    @GetMapping("timedtaskactactivity")
+    public R timedTaskActActivity() {
+        R r = communityService.timedTaskActActivity();
+        if (R.isOk(r)) {
+            Object data = r.getData();
+            List<ComActActivityVO> comActActivityVOS =
+                JSONArray.parseArray(JSONArray.toJSONString(data), ComActActivityVO.class);
+            if (!ObjectUtils.isEmpty(comActActivityVOS)) {
+                comActActivityVOS.forEach(comActActivityVO -> {
+                    List<ActivitySignVO> activitySignVOList = comActActivityVO.getActivitySignVOList();
+                    if (!ObjectUtils.isEmpty(activitySignVOList)) {
+                        activitySignVOList.forEach(activitySignVO -> {
+                            SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO();
+                            sysUserNoticeVO.setUserId(activitySignVO.getUserId());
+                            sysUserNoticeVO.setType(1);
+                            sysUserNoticeVO.setBusinessType(2);
+                            sysUserNoticeVO.setBusinessTitle(comActActivityVO.getActivityName());
+                            sysUserNoticeVO.setBusinessTime(new Date());
+                            sysUserNoticeVO.setBusinessId(comActActivityVO.getId());
+                            sysUserNoticeVO.setStatus(0);
+                            sysUserNoticeVO.setTitle("活动因故取消");
+                            sysUserNoticeVO.setBusinessContent("报名人数不足活动自动取消");
+                            sysUserNoticeVO.setBusinessStatus(1);
+                            sysUserNoticeVO.setActivityType(activitySignVO.getSignIdentity());
+                            R r2 = userService.addNotice(sysUserNoticeVO);
+                            if (R.isOk(r2)) {
+                                log.info("新增社区活动取消通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+                            }
+                        });
+                    }
+                });
+            }
+        }
+        return r;
+    }
+
+    @ApiOperation(value = "定时任务刷新社区活动的各个状态 除取消外")
+    @GetMapping("timedtaskactactivityall")
+    public R timedTaskActActivityAll() {
+        R r = communityService.timedTaskActActivityAll();
+        return r;
+    }
+
+    @ApiOperation(value = "定时任务刷新党建活动的各个状态 除取消外")
+    @GetMapping("timedtaskpartybuildingactivityall")
+    public R timedTaskPartyBuildingActivityAll() {
+        R r = partyBuildingService.timedTaskPartyBuildingActivityAll();
+        return r;
+    }
+
+    @ApiOperation(value = "修复数据")
+    @GetMapping("repair/noToken")
+    public R repairDate(){
+        return communityService.timedTaskHouseJobHandler();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/UserApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/UserApi.java
new file mode 100644
index 0000000..c35cc07
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/UserApi.java
@@ -0,0 +1,84 @@
+package com.panzhihua.community_backstage.api;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.vos.user.IndexDataAnalysisVO;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.user.ChangePasswordVO;
+import com.panzhihua.common.model.vos.user.SysMenuVO;
+import com.panzhihua.common.service.user.UserService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 用户模块
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-24 13:51
+ **/
+@RestController
+@Api(tags = {"用户模块"})
+@RequestMapping("/")
+public class UserApi extends BaseController {
+    @Resource
+    private UserService userService;
+
+    @ApiOperation(value = "当前登录用户信息", response = LoginUserInfoVO.class)
+    @GetMapping("user")
+    public R detailUser() {
+        Long userId = this.getUserId();
+        return userService.detailUser(userId);
+    }
+
+    @ApiOperation(value = "修改密码")
+    @PutMapping("changepassword")
+    public R changePassword(@Validated @RequestBody ChangePasswordVO changePasswordVO) {
+        Long userId = this.getUserId();
+        String newPassword = changePasswordVO.getNewPassword();
+        String oldPassword = changePasswordVO.getOldPassword();
+        if (newPassword.equals(oldPassword)) {
+            return R.fail("修改失败,新密码和原密码一致");
+        }
+        changePasswordVO.setUserId(userId);
+        return userService.changePassword(changePasswordVO);
+    }
+
+    @ApiOperation("重置密码")
+    @GetMapping("resetPassword")
+    public R resetPassword(@RequestParam("userId") Long userId){
+        return userService.resetPassword(userId);
+    }
+
+    @ApiOperation("批量重置密码")
+    @GetMapping("resetPasswordPatch")
+    public R resetPasswordPatch(@RequestParam("userIds") Long[] userId,@RequestParam("password") String password){
+        return userService.resetPasswordPatch(userId,password);
+    }
+
+    @ApiOperation(value = "用户菜单获取", response = SysMenuVO.class)
+    @GetMapping("listmenu")
+    public R listmenu() {
+        Long userId = this.getUserId();
+        return userService.listmenu(userId);
+    }
+
+//    @PostMapping("/indexData")
+//    @ApiOperation(value = "新数据统计看板",response = IndexDataAnalysisVO.class)
+//    @ApiImplicitParams({
+//            @ApiImplicitParam(name = "type",value = "数据范围,1:所有区县,2:所有街道,3:所有社区,4:跟据街道筛选",dataType = "Integer"),
+//            @ApiImplicitParam(name = "streetId",value = "街道ID",dataType = "Long")
+//    })
+//    public R indexData(@RequestParam(value = "type",required = false) Integer type,
+//                       @RequestParam(value = "type",required = false) Long streetId){
+//        return userService.newIndexData(type,streetId);
+//    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/VaccinesApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/VaccinesApi.java
new file mode 100644
index 0000000..132f850
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/VaccinesApi.java
@@ -0,0 +1,213 @@
+package com.panzhihua.community_backstage.api;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.factory.annotation.Value;
+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.RestController;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.alibaba.fastjson.JSON;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.enums.PopulSexEnum;
+import com.panzhihua.common.model.dtos.vaccines.VaccinesEnrollByAdminDTO;
+import com.panzhihua.common.model.dtos.vaccines.VaccinesInoculationByAdminDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.vaccines.ComMngVaccinesEnrollExcelVo;
+import com.panzhihua.common.model.vos.vaccines.ComMngVaccinesInoculationExcelVo;
+import com.panzhihua.common.model.vos.vaccines.VaccinesEnrollByAdminVO;
+import com.panzhihua.common.model.vos.vaccines.VaccinesInoculationByAdminVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.SFTPUtil;
+import com.panzhihua.community_backstage.excel.CustomSheetWriteHandler;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+@RestController
+@RequestMapping("/vaccines/")
+@Api(tags = {"疫苗服务"})
+public class VaccinesApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+    @Value("${excel.userurl}")
+    private String excelUrl;
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+
+    @ApiOperation(value = "疫苗登记列表", response = VaccinesEnrollByAdminVO.class)
+    @PostMapping("/enroll/list")
+    public R getVaccinesEnrollListByAdmin(@RequestBody VaccinesEnrollByAdminDTO vaccinesByAdminDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo != null) {
+            vaccinesByAdminDTO.setCommunityId(loginUserInfo.getCommunityId());
+        }
+        return communityService.getVaccinesEnrollListByAdmin(vaccinesByAdminDTO);
+    }
+
+    @ApiOperation(value = "疫苗登记列表导出")
+    @PostMapping("/enroll/export")
+    public R exportVaccinesEnrollListByAdmin(@RequestBody VaccinesEnrollByAdminDTO vaccinesByAdminDTO) {
+        // 获取登陆用户
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        // 获取登陆用户绑定社区id
+        vaccinesByAdminDTO.setCommunityId(loginUserInfo.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 {
+                    R isok = communityService.exportVaccinesEnrollListByAdmin(vaccinesByAdminDTO);
+                    List<ComMngVaccinesEnrollExcelVo> populList =
+                        JSON.parseArray(JSON.toJSONString(isok.getData()), ComMngVaccinesEnrollExcelVo.class);
+                    if (populList != null && populList.size() > 0) {
+                        for (ComMngVaccinesEnrollExcelVo popul : populList) {
+                            // 设置性别
+                            popul.setSex(PopulSexEnum.getCnDescByName(Integer.parseInt(popul.getSex())));
+                        }
+                    }
+                    excelWriter = EasyExcel.write(fileName, ComMngVaccinesEnrollExcelVo.class)
+                        .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                        .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                    WriteSheet writeSheet = EasyExcel.writerSheet("疫苗登记导出数据").build();
+                    excelWriter.write(populList, 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 = "接种信息列表", response = VaccinesInoculationByAdminVO.class)
+    @PostMapping("/inoculation/list")
+    public R getVaccinesInoculationListByAdmin(@RequestBody VaccinesInoculationByAdminDTO inoculationByAdminDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo != null) {
+            inoculationByAdminDTO.setCommunityId(loginUserInfo.getCommunityId());
+        }
+        return communityService.getVaccinesInoculationListByAdmin(inoculationByAdminDTO);
+    }
+
+    @ApiOperation(value = "接种信息列表导出")
+    @PostMapping("/inoculation/export")
+    public R exportVaccinesInoculationListByAdmin(@RequestBody VaccinesInoculationByAdminDTO inoculationByAdminDTO) {
+        // 获取登陆用户
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        // 获取登陆用户绑定社区id
+        inoculationByAdminDTO.setCommunityId(loginUserInfo.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<ComMngVaccinesInoculationExcelVo> populList = JSON.parseArray(
+                        JSON.toJSONString(
+                            communityService.exportVaccinesInoculationListByAdmin(inoculationByAdminDTO).getData()),
+                        ComMngVaccinesInoculationExcelVo.class);
+                    if (populList != null && populList.size() > 0) {
+                        for (ComMngVaccinesInoculationExcelVo popul : populList) {
+                            // 设置性别
+                            popul.setSex(PopulSexEnum.getCnDescByName(Integer.parseInt(popul.getSex())));
+                        }
+                    }
+                    excelWriter = EasyExcel.write(fileName, ComMngVaccinesInoculationExcelVo.class)
+                        .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                        .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                    WriteSheet writeSheet = EasyExcel.writerSheet("接种信息导出数据").build();
+                    excelWriter.write(populList, 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("/enroll/type/list")
+    public R getEnrollTypeListByAdmin() {
+        return communityService.getEnrollTypeListByAdmin();
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/VillageApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/VillageApi.java
new file mode 100644
index 0000000..cf51b0e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/VillageApi.java
@@ -0,0 +1,150 @@
+package com.panzhihua.community_backstage.api;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.StringUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import com.alibaba.excel.EasyExcel;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.listen.ComMngVillageServeExcelListen;
+import com.panzhihua.common.model.dtos.community.PageComMngVillageDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngVillageRegionVO;
+import com.panzhihua.common.model.vos.community.ComMngVillageServeExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngVillageTotalVO;
+import com.panzhihua.common.model.vos.community.ComMngVillageVO;
+import com.panzhihua.common.service.community.CommunityService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @description: 小区管理
+ * @author: llming
+ **/
+@Slf4j
+@Api(tags = {"小区管理"})
+@RestController
+@RequestMapping("/villagemanager/")
+public class VillageApi extends BaseController {
+    // private String excelConvenientUrl = "http://panzhihua.nhys.cdnhxx.com/web/实有房屋导入模板.xlsx";
+    @Value("${excel.excelConvenientUrl}")
+    private String excelConvenientUrl;
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private UserService userService;
+
+    @ApiOperation(value = "分页查询小区", response = ComMngVillageVO.class)
+    @PostMapping("pagevillage")
+    public R pageVillage(@RequestBody PageComMngVillageDTO pageComMngVillageDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long communityId = loginUserInfo.getCommunityId();
+        pageComMngVillageDTO.setCommunityId(communityId);
+        return communityService.pageVillage(pageComMngVillageDTO);
+    }
+
+    @ApiOperation(value = "小区详情", response = ComMngVillageVO.class)
+    @PostMapping("getVillage")
+    public R getVillage(@RequestParam("villageId") Long villageId) {
+        return communityService.getVillage(villageId);
+    }
+
+    @ApiOperation(value = "查询小区", response = ComMngVillageVO.class)
+    @PostMapping("listvillage")
+    public R listVillage(@RequestBody ComMngVillageVO comMngVillageVO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long communityId = loginUserInfo.getCommunityId();
+        if(communityId!=0){
+            comMngVillageVO.setCommunityId(communityId);
+        }
+        return communityService.listVillage(comMngVillageVO);
+    }
+
+    @ApiOperation(value = "新增小区", response = ComMngVillageVO.class)
+    @PostMapping("addvillage")
+    public R addVillage(@Valid @RequestBody ComMngVillageVO comMngVillageVO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long communityId = loginUserInfo.getCommunityId();
+        comMngVillageVO.setCommunityId(communityId);
+        if(StringUtils.isEmpty(comMngVillageVO.getGroupAt())){
+            comMngVillageVO.setName(comMngVillageVO.getAlley() + comMngVillageVO.getHouseNum());
+        }else{
+            comMngVillageVO.setName(comMngVillageVO.getGroupAt());
+        }
+        return communityService.addVillage(comMngVillageVO);
+    }
+
+    @ApiOperation(value = "删除小区")
+    @PostMapping("deletevillage")
+    public R delectVillage(@RequestBody List<Long> Ids) {
+        return communityService.delectVillage(Ids);
+    }
+
+    @ApiOperation(value = "下载模板-小区")
+    @GetMapping(value = "/serve/download/template")
+    public R downloadTemplate(HttpServletResponse response) {
+        return R.ok(excelConvenientUrl + "excel/小区导入模板.xlsx");
+    }
+
+    @ApiOperation(value = "excel导入小区")
+    @PostMapping(value = "/serve/import", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R downloadTemplate(@RequestParam MultipartFile file, HttpServletRequest request) {
+        // 获取文件名
+        String fileName = file.getOriginalFilename();
+        log.info("传入文件名字【{}】", fileName);
+        InputStream inputStream = null;
+        try {
+            inputStream = file.getInputStream();
+            LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+            ComMngVillageServeExcelListen comMngVillageServeExcelListen =
+                new ComMngVillageServeExcelListen(communityService, loginUserInfo,userService);
+            EasyExcel.read(inputStream, ComMngVillageServeExcelVO.class, comMngVillageServeExcelListen).sheet()
+                .doRead();
+        } catch (IOException e) {
+            log.error("导入模板失败【{}】", e.getMessage());
+            e.printStackTrace();
+        }
+        return R.ok();
+    }
+
+    @ApiOperation(value = "编辑小区", response = ComMngVillageVO.class)
+    @PostMapping("editvillage/{villageId}")
+    public R editvillage(@PathVariable("villageId") Long villageId,
+        @Valid @RequestBody ComMngVillageVO comMngVillageVO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long communityId = loginUserInfo.getCommunityId();
+        comMngVillageVO.setCommunityId(communityId);
+        return communityService.editvillage(villageId, comMngVillageVO);
+    }
+
+    @ApiOperation(value = "查询当前社区所在省市区", response = ComMngVillageRegionVO.class)
+    @PostMapping("/getRegion")
+    public R getRegion() {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long communityId = loginUserInfo.getCommunityId();
+        return communityService.getRegion(communityId);
+    }
+
+    @ApiOperation(value = "统计小区接口", response = ComMngVillageTotalVO.class)
+    @PostMapping("/statistics")
+    public R statistics() {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long communityId = loginUserInfo.getCommunityId();
+        return communityService.villageStatistics(communityId);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/VolunteerActivitiesPeopleApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/VolunteerActivitiesPeopleApi.java
new file mode 100644
index 0000000..bf8c827
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/VolunteerActivitiesPeopleApi.java
@@ -0,0 +1,164 @@
+package com.panzhihua.community_backstage.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.GrantIntegral;
+import com.panzhihua.common.model.vos.community.VolunteerActivitiesPeopleVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.StringUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@RestController
+@RequestMapping("/VolunteerActivitiesPeople")
+public class VolunteerActivitiesPeopleApi extends BaseController
+{
+    @Resource
+    private CommunityService volunteerActivitiesPeople;
+
+    /**
+     * 志愿者单个详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/vapGetById")
+    public R vapGetById(@RequestParam("id") String id)
+    {
+        if(StringUtils.isEmpty(id))
+        {
+            return R.fail("id不能为空");
+        }
+        return volunteerActivitiesPeople.vapGetById(id);
+    }
+
+    /**
+     * 参与人员列表
+     * @param activityId
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/vapGetList")
+    public R  vapGetList(@RequestParam("activityId") String activityId,
+                         @RequestParam("communityId") String communityId)
+    {
+        if(StringUtils.isEmpty(activityId))
+        {
+            return R.fail("活动id不能为空");
+        }
+
+        if(StringUtils.isEmpty(communityId))
+        {
+            communityId=getLoginUserInfo().getCommunityId()+"";
+        }
+
+        return volunteerActivitiesPeople.vapGetList(activityId, communityId);
+    }
+
+    /**
+     * 添加参与人员
+     * @param volunteerActivitiesPeopleVO
+     * @return
+     */
+    @PostMapping("/vapInsert")
+    public R  vapInsert(@RequestBody VolunteerActivitiesPeopleVO volunteerActivitiesPeopleVO)
+    {
+        if(volunteerActivitiesPeopleVO==null)
+        {
+            return R.fail("参数不能为空");
+        }
+
+        if(StringUtils.isEmpty(volunteerActivitiesPeopleVO.getActivityId()))
+        {
+            return R.fail("活动id不能为空");
+        }
+
+        if(StringUtils.isEmpty(volunteerActivitiesPeopleVO.getVolunteerId()))
+        {
+            return R.fail("志愿者id不能为空");
+        }
+
+        if(StringUtils.isEmpty(volunteerActivitiesPeopleVO.getCommunityId()))
+        {
+            volunteerActivitiesPeopleVO.setCommunityId(getLoginUserInfo().getCommunityId()+"");
+        }
+
+        return volunteerActivitiesPeople.vapInsert(volunteerActivitiesPeopleVO);
+    }
+
+    /**
+     * 修改参与人员
+     * @param volunteerActivitiesPeopleVO
+     * @return
+     */
+    @PostMapping("/vapUpdate")
+    public R  vapUpdate(@RequestBody VolunteerActivitiesPeopleVO volunteerActivitiesPeopleVO)
+    {
+        if(volunteerActivitiesPeopleVO==null)
+        {
+            return R.fail("参数不能为空");
+        }
+
+        if(StringUtils.isEmpty(volunteerActivitiesPeopleVO.getId()))
+        {
+            return R.fail("id不能为空");
+        }
+
+        if(StringUtils.isEmpty(volunteerActivitiesPeopleVO.getActivityId()))
+        {
+            return R.fail("活动id不能为空");
+        }
+
+        if(StringUtils.isEmpty(volunteerActivitiesPeopleVO.getVolunteerId()))
+        {
+            return R.fail("志愿者id不能为空");
+        }
+
+        if(StringUtils.isEmpty(volunteerActivitiesPeopleVO.getCommunityId()))
+        {
+            volunteerActivitiesPeopleVO.setCommunityId(getLoginUserInfo().getCommunityId()+"");
+        }
+
+        return volunteerActivitiesPeople.vapUpdate(volunteerActivitiesPeopleVO);
+    }
+
+    /**
+     * 删除参与人员
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/vapDelete")
+    public R vapDelete(@RequestParam("id") String id)
+    {
+        if(StringUtils.isEmpty(id))
+        {
+            return R.fail("id不能为空");
+        }
+        return volunteerActivitiesPeople.vapDelete(id);
+    }
+
+    /**
+     * 志愿者活动  奖励发放
+     * @param grantIntegral
+     * @return
+     */
+    @PostMapping("/grantIntegral")
+    public R grantIntegral(@RequestBody GrantIntegral grantIntegral)
+    {
+        if(grantIntegral==null)
+        {
+            return R.fail("参数不能为空");
+        }
+
+        if(grantIntegral.getPeopleAndGranList()==null || grantIntegral.getPeopleAndGranList().size()<=0 )
+        {
+            return R.fail("奖励积分人员不能为空");
+        }
+        return volunteerActivitiesPeople.grantIntegral(grantIntegral);
+    }
+
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/VolunteerActivityApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/VolunteerActivityApi.java
new file mode 100644
index 0000000..32dca5f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/VolunteerActivityApi.java
@@ -0,0 +1,100 @@
+package com.panzhihua.community_backstage.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.VolunteerActivityVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.StringUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * 志愿者活动
+ */
+
+@Slf4j
+@RestController
+@RequestMapping("/Volunteer")
+public class VolunteerActivityApi  extends BaseController
+{
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 获取单个详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/queryById")
+    public R queryById(@RequestParam("id") String id)
+    {
+        return communityService.volunteerQueryById(id);
+    }
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/queryList")
+    R queryList(@RequestParam("pageNum") int pageNum,
+               @RequestParam("pageSize") int pageSize,
+               @RequestParam(value = "name", required = false) String name,
+               @RequestParam(value = "acState", required = false) String acState,
+               @RequestParam(value = "acType", required = false) String acType,
+               @RequestParam(value = "actityBeginTime", required = false) Date actityBeginTime,
+               @RequestParam(value = "actityEndTime", required = false) Date actityEndTime)
+    {
+
+        if(StringUtils.isEmpty(name))
+        {
+            name=null;
+        }
+
+        return communityService.volunteerQueryList(pageNum,  pageSize, name, acState, acType, actityBeginTime, actityEndTime);
+    }
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/insertVolunteer")
+    R insertVolunteer(@RequestBody VolunteerActivityVO volunteerActivityVO)
+    {
+        if(StringUtils.isNotEmpty(volunteerActivityVO.getCommunityId()))
+        {
+            volunteerActivityVO.setCommunityId(getLoginUserInfo().getCommunityId()+"");
+        }
+        return communityService.insertVolunteer(volunteerActivityVO);
+    }
+
+
+    @PostMapping("/updateById")
+    R updateById(@RequestBody VolunteerActivityVO volunteerActivityVO)
+    {
+        return communityService.volunteerUpdateById(volunteerActivityVO);
+    }
+
+
+    @DeleteMapping("/deleteById")
+    R deleteById(@RequestParam("id") String id)
+    {
+        return communityService.volunteerDeleteById(id);
+    }
+
+
+
+    @GetMapping("/timedTaskVolunteerActivitiesJobHandler")
+    R timedTaskVolunteerActivitiesJobHandler()
+    {
+        return communityService.timedTaskVolunteerActivitiesJobHandler();
+    }
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/VolunteerApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/VolunteerApi.java
new file mode 100644
index 0000000..8da0e8c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/VolunteerApi.java
@@ -0,0 +1,306 @@
+package com.panzhihua.community_backstage.api;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.alibaba.fastjson.JSONArray;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.listen.ComMngVolunteerExcelListen;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.common.ComMngVolunteerOrgTeamVo;
+import com.panzhihua.common.model.vos.common.ComMngVolunteerServiceTypeVo;
+import com.panzhihua.common.model.vos.common.ComMngVolunteerSkillVo;
+import com.panzhihua.common.model.vos.common.ComMngVolunteerStatisticsVo;
+import com.panzhihua.common.model.vos.community.volunteer.ComMngVolunteerErrorExcelVO;
+import com.panzhihua.common.service.community.CommunityService;
+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;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @author lyq
+ * 志愿者模块
+ */
+@Slf4j
+@Api(tags = {"志愿者模块"})
+@RestController
+@RequestMapping("/volunteer/")
+public class VolunteerApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private SFTPConfig sftpConfig;
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+
+    @ApiOperation(value = "分页查询志愿者组织", response = ComMngVolunteerOrgTeamVo.class)
+    @PostMapping("/org/page")
+    public R pageVolunteerOrgAdmin(@RequestBody PageComMngVolunteerOrgTeamDto orgTeamDto) {
+        orgTeamDto.setParentId(0L);
+        orgTeamDto.setCommunityId(this.getCommunityId());
+        return communityService.pageVolunteerOrgAdmin(orgTeamDto);
+    }
+
+    @ApiOperation(value = "查询志愿者组织列表", response = ComMngVolunteerOrgTeamVo.class)
+    @GetMapping("/org/list")
+    public R listVolunteerOrgAdmin() {
+        PageComMngVolunteerOrgTeamDto orgTeamDto = new PageComMngVolunteerOrgTeamDto();
+        orgTeamDto.setParentId(0L);
+        orgTeamDto.setCommunityId(this.getCommunityId());
+        return communityService.listVolunteerOrgAdmin(orgTeamDto);
+    }
+
+    @ApiOperation(value = "分页查询志愿者组织下队伍列表", response = ComMngVolunteerOrgTeamVo.class)
+    @PostMapping("/org/team/page")
+    public R pageVolunteerOrgTeamAdmin(@RequestBody PageComMngVolunteerOrgTeamDto orgTeamDto) {
+        orgTeamDto.setCommunityId(this.getCommunityId());
+        return communityService.pageVolunteerOrgAdmin(orgTeamDto);
+    }
+
+    @ApiOperation(value = "新增志愿者组织")
+    @PostMapping("/org/add")
+    public R addVolunteerOrgAdmin(@RequestBody AddComMngVolunteerOrgTeamDto orgTeamDto) {
+        if(StringUtils.isEmpty(orgTeamDto.getName())){
+            return R.fail("参数错误");
+        }
+        orgTeamDto.setParentId(0L);
+        orgTeamDto.setCommunityId(this.getCommunityId());
+        return communityService.addVolunteerOrgAdmin(orgTeamDto);
+    }
+
+    @ApiOperation(value = "新增志愿者队伍")
+    @PostMapping("/org/team/add")
+    public R addVolunteerOrgTeamAdmin(@RequestBody AddComMngVolunteerOrgTeamDto orgTeamDto) {
+        if(orgTeamDto.getParentId() == null || orgTeamDto.getServiceTypeId() == null || StringUtils.isEmpty(orgTeamDto.getName())){
+            return R.fail("参数错误");
+        }
+        orgTeamDto.setCommunityId(this.getCommunityId());
+        return communityService.addVolunteerOrgAdmin(orgTeamDto);
+    }
+
+    @ApiOperation(value = "编辑志愿者组织")
+    @PostMapping("/org/edit")
+    public R editVolunteerOrgAdmin(@RequestBody EditComMngVolunteerOrgTeamDto orgTeamDto) {
+        if(StringUtils.isEmpty(orgTeamDto.getName()) || orgTeamDto.getId() == null){
+            return R.fail("参数错误");
+        }
+        return communityService.editVolunteerOrgAdmin(orgTeamDto);
+    }
+
+    @ApiOperation(value = "编辑志愿者队伍")
+    @PostMapping("/org/team/edit")
+    public R editVolunteerOrgTeamAdmin(@RequestBody EditComMngVolunteerOrgTeamDto orgTeamDto) {
+        if(orgTeamDto.getId() == null){
+            return R.fail("参数错误");
+        }
+        return communityService.editVolunteerOrgAdmin(orgTeamDto);
+    }
+
+    @ApiOperation(value = "删除志愿者组织/队伍")
+    @GetMapping("/org/delete")
+    public R deleteVolunteerOrgAdmin(@RequestParam("id") Long id) {
+        if(id == null){
+            return R.fail("参数错误");
+        }
+        return communityService.deleteVolunteerOrgAdmin(id);
+    }
+
+    @ApiOperation(value = "分页查询服务类型", response = ComMngVolunteerOrgTeamVo.class)
+    @PostMapping("/service/type/page")
+    public R pageServiceTypeAdmin(@RequestBody PageComMngVolunteerServiceTypeDto serviceTypeDto) {
+        serviceTypeDto.setCommunityId(this.getCommunityId());
+        return communityService.pageServiceTypeAdmin(serviceTypeDto);
+    }
+
+    @ApiOperation(value = "新增服务类型")
+    @PostMapping("/service/type/add")
+    public R addServiceTypeAdmin(@RequestBody AddComMngVolunteerServiceTypeDto serviceTypeDto) {
+        if(StringUtils.isEmpty(serviceTypeDto.getName())){
+            return R.fail("参数错误");
+        }
+        serviceTypeDto.setCommunityId(this.getCommunityId());
+        serviceTypeDto.setUserId(this.getUserId());
+        return communityService.addServiceTypeAdmin(serviceTypeDto);
+    }
+
+    @ApiOperation(value = "编辑服务类型")
+    @PostMapping("/service/type/edit")
+    public R editServiceTypeAdmin(@RequestBody EditComMngVolunteerServiceTypeDto serviceTypeDto) {
+        if(StringUtils.isEmpty(serviceTypeDto.getName()) || serviceTypeDto.getId() == null){
+            return R.fail("参数错误");
+        }
+        serviceTypeDto.setUserId(this.getUserId());
+        return communityService.editServiceTypeAdmin(serviceTypeDto);
+    }
+
+    @ApiOperation(value = "删除志愿者组织/队伍")
+    @GetMapping("/service/type/delete")
+    public R deleteServiceTypeAdmin(@RequestParam("id") Long id) {
+        if(id == null){
+            return R.fail("参数错误");
+        }
+        return communityService.deleteServiceTypeAdmin(id);
+    }
+
+    @ApiOperation(value = "分页查询志愿者技能列表", response = ComMngVolunteerSkillVo.class)
+    @PostMapping("/skill/page")
+    public R pageVolunteerSkillAdmin(@RequestBody PageComMngVolunteerSkillDto volunteerSkillDto) {
+        volunteerSkillDto.setCommunityId(this.getCommunityId());
+        return communityService.pageVolunteerSkillAdmin(volunteerSkillDto);
+    }
+
+    @ApiOperation(value = "新增志愿者技能列表")
+    @PostMapping("/skill/add")
+    public R addVolunteerSkillAdmin(@RequestBody AddComMngVolunteerSkillDto volunteerSkillDto) {
+        if(StringUtils.isEmpty(volunteerSkillDto.getName())){
+            return R.fail("参数错误");
+        }
+        volunteerSkillDto.setCommunityId(this.getCommunityId());
+        volunteerSkillDto.setUserId(this.getUserId());
+        return communityService.addVolunteerSkillAdmin(volunteerSkillDto);
+    }
+
+    @ApiOperation(value = "编辑志愿者技能列表")
+    @PostMapping("/skill/edit")
+    public R editVolunteerSkillAdmin(@RequestBody EditComMngVolunteerSkillDto volunteerSkillDto) {
+        if(StringUtils.isEmpty(volunteerSkillDto.getName()) || volunteerSkillDto.getId() == null){
+            return R.fail("参数错误");
+        }
+        volunteerSkillDto.setUserId(this.getUserId());
+        return communityService.editVolunteerSkillAdmin(volunteerSkillDto);
+    }
+
+    @ApiOperation(value = "删除志愿者技能列表")
+    @GetMapping("/skill/delete")
+    public R deleteVolunteerSkillAdmin(@RequestParam("id") Long id) {
+        if(id == null){
+            return R.fail("参数错误");
+        }
+        return communityService.deleteVolunteerSkillAdmin(id);
+    }
+
+    @ApiOperation(value = "查询志愿者服务类型列表", response = ComMngVolunteerServiceTypeVo.class)
+    @GetMapping("/service/type/list")
+    public R listVolunteerServiceTypeAdmin() {
+        PageComMngVolunteerServiceTypeDto serviceTypeDto = new PageComMngVolunteerServiceTypeDto();
+        serviceTypeDto.setCommunityId(this.getCommunityId());
+        return communityService.listServiceTypeAdmin(serviceTypeDto);
+    }
+
+    @ApiOperation(value = "查询志愿者技能列表", response = ComMngVolunteerSkillVo.class)
+    @GetMapping("/skill/list")
+    public R listVolunteerSkillAdmin() {
+        PageComMngVolunteerSkillDto volunteerSkillDto = new PageComMngVolunteerSkillDto();
+        volunteerSkillDto.setCommunityId(this.getCommunityId());
+        return communityService.listVolunteerSkillAdmin(volunteerSkillDto);
+    }
+
+    @ApiOperation(value = "志愿者组织统计接口", response = ComMngVolunteerStatisticsVo.class)
+    @GetMapping("/org/statistics")
+    public R statisticsVolunteerOrgAdmin() {
+        return communityService.statisticsVolunteerOrgAdmin(this.getCommunityId());
+    }
+
+    @ApiOperation(value = "志愿者导入模板下载")
+    @GetMapping("/import/template/download")
+    public R importTemplateDownload() {
+        return R.ok(sftpConfig.getExcelUrl() + "志愿者导入模板.xlsx");
+    }
+
+    @ApiOperation(value = "志愿者导入")
+    @PostMapping("/import")
+    public R importAdmin(@RequestParam MultipartFile file, HttpServletRequest request) {
+        // 获取文件名
+        String fileName = file.getOriginalFilename();
+        log.info("传入文件名字【{}】", fileName);
+        InputStream inputStream = null;
+        try {
+            inputStream = file.getInputStream();
+            ComMngVolunteerExcelListen clusterMemberExcelListen = new ComMngVolunteerExcelListen(
+                    communityService, this.getCommunityId(), this.getUserId(), stringRedisTemplate);
+            EasyExcel.read(inputStream, null, clusterMemberExcelListen).sheet().doRead();
+        } catch (IOException e) {
+            log.error("导入模板失败【{}】", e.getMessage());
+            e.printStackTrace();
+        }
+        return R.ok();
+    }
+
+    @ApiOperation(value = "下载导入失败志愿者错误数据")
+    @PostMapping("/download/error")
+    public R downloadErrorDrugPopulation(@RequestParam(value = "key") String key) {
+        List<ComMngVolunteerErrorExcelVO> 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, ComMngVolunteerErrorExcelVO.class);
+        }
+        String ftpUrl = "/mnt/data/web/excel/";
+        String nowDate = DateUtils.getCurrentDateString();
+        String name = "导入志愿者错误数据" + nowDate + ".xlsx";
+        try {
+            SFTPUtil sftp = new SFTPUtil(sftpConfig.getUserName(), sftpConfig.getPassword(), sftpConfig.getHost(), sftpConfig.getPort());
+            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, ComMngVolunteerErrorExcelVO.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(sftpConfig.getExcelUrl() + 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/api/VolunteerIntegralMerchantApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/VolunteerIntegralMerchantApi.java
new file mode 100644
index 0000000..a8577d0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/VolunteerIntegralMerchantApi.java
@@ -0,0 +1,214 @@
+package com.panzhihua.community_backstage.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.VolunteerCreditsExchangeVO;
+import com.panzhihua.common.model.vos.community.VolunteerIntegralMerchantVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.StringUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@RestController
+@RequestMapping("/VolunteerIntegralMerchant")
+public class VolunteerIntegralMerchantApi extends BaseController
+{
+    @Resource
+    private CommunityService merchantService;
+
+    /**
+     * 获取单个详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/queryById")
+    public R VolunteerIntegralMerchantQueryById(@RequestParam("id") String id)
+    {
+        return merchantService.VolunteerIntegralMerchantQueryById(id);
+    }
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/queryList")
+    public R VolunteerIntegralMerchantQueryList(@RequestParam("pageNum") int pageNum,
+                                                @RequestParam("pageSize")  int pageSize,
+                                                @RequestParam(value = "name", required = false) String name,
+                                                @RequestParam(value = "state", required = false) String state)
+    {
+        return merchantService.VolunteerIntegralMerchantQueryList(pageNum,pageSize,name,state,"0",null);
+    }
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/insertVolunteer")
+    public R VolunteerIntegralMerchantInsertVolunteer(@RequestBody VolunteerIntegralMerchantVO vimVO)
+    {
+        if(StringUtils.isEmpty(vimVO.getCommodityValue()))
+        {
+            return R.fail("商品价值不能为空");
+        }
+
+//        if(StringUtils.isEmpty(vimVO.getGoodNum()))
+//        {
+//            return R.fail("商品数量不能为空");
+//        }
+
+        vimVO.setGoodType("0");
+        return merchantService.VolunteerIntegralMerchantInsertVolunteer(vimVO);
+    }
+
+    @PostMapping("/updateById")
+    public R  VolunteerIntegralMerchantUpdateById(@RequestBody VolunteerIntegralMerchantVO vimVO)
+    {
+        if(StringUtils.isEmpty(vimVO.getCommodityValue()))
+        {
+            return R.fail("商品价值不能为空");
+        }
+
+//        if(StringUtils.isEmpty(vimVO.getGoodNum()))
+//        {
+//            return R.fail("商品数量不能为空");
+//        }
+
+        vimVO.setGoodType("0");
+        return merchantService.VolunteerIntegralMerchantUpdateById(vimVO);
+    }
+
+    /**
+     * 修改上下架状态
+     * @param vimVO
+     * @return
+     */
+    @PostMapping("/unmount")
+    public R  VolunteerIntegralMerchantUnmount(@RequestBody VolunteerIntegralMerchantVO vimVO)
+    {
+        return merchantService.VolunteerIntegralMerchantUnmount(vimVO);
+    }
+
+    @DeleteMapping("/deleteById")
+    public R  VolunteerIntegralMerchantDeleteById(@RequestParam("id") String id)
+    {
+        return merchantService.VolunteerIntegralMerchantDeleteById(id);
+    }
+
+
+    /***********************************************************************************************************
+     *
+     *
+     *                   订单兑换
+     *
+     *
+     ***********************************************************************************************************/
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/order/getList")
+    public R getList(@RequestParam("pageNum") int pageNum,
+                     @RequestParam("pageSize")  int pageSize,
+                     @RequestParam(value = "goodsId", required = false) String goodsId,
+                     @RequestParam(value = "orderNumber", required = false) String orderNumber,
+                     @RequestParam(value = "goodsName", required = false) String goodsName,
+                     @RequestParam(value = "condition", required = false) String condition,
+                     @RequestParam(value = "userName", required = false) String userName,
+                     @RequestParam(value = "communityId", required = false) String communityId,
+                     @RequestParam(value = "merchantId", required = false) String merchantId)
+    {
+        if(StringUtils.isEmpty(communityId))
+        {
+            communityId=getCommunityId()+"";
+        }
+        return merchantService.getList(pageNum,pageSize,goodsId,orderNumber,goodsName,
+                condition,userName,communityId,null,"1",merchantId);
+    }
+
+    /**
+     * 查询详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/order/getData")
+    public R getData(@RequestParam("id") String id)
+    {
+        if(StringUtils.isEmpty(id))
+        {
+            return R.fail("订单id不能为空");
+        }
+        return merchantService.getData(id);
+    }
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/order/insertData")
+    public R insertData(@RequestBody VolunteerCreditsExchangeVO item)
+    {
+        LoginUserInfoVO userInfoVO= getLoginUserInfo();
+        if(StringUtils.isEmpty(item.getCommunityId()))
+        {
+            item.setCommunityId(userInfoVO.getCommunityId()+"");
+        }
+
+        item.setUserId(userInfoVO.getUserId()+"");
+        item.setNeedScore(userInfoVO.getLoveIntegral());
+        return merchantService.insertData(item);
+    }
+
+    /**
+     * 更新
+     * @param item
+     * @return
+     */
+    @PostMapping("/order/update")
+    public R update(@RequestBody VolunteerCreditsExchangeVO item)
+    {
+        return merchantService.update(item);
+    }
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/order/delete")
+    public R delete(@RequestParam("id") String id)
+    {
+        if(StringUtils.isEmpty(id))
+        {
+            return R.fail("订单id不能为空");
+        }
+        return merchantService.delete(id);
+    }
+
+    /**
+     * 核销
+     * @param id
+     * @return
+     */
+    @GetMapping("/order/conditionData")
+    public R conditionData(@RequestParam("id") String id)
+    {
+        if(StringUtils.isEmpty(id))
+        {
+            return R.fail("订单id不能为空");
+        }
+        return merchantService.conditionData(id);
+    }
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/VolunteerMerchantApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/VolunteerMerchantApi.java
new file mode 100644
index 0000000..ab4fcab
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/VolunteerMerchantApi.java
@@ -0,0 +1,354 @@
+package com.panzhihua.community_backstage.api;
+
+import com.panzhihua.common.controller.BaseController;
+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.StringUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 路北社区商家管理
+ */
+
+@Slf4j
+@RestController
+@RequestMapping("/VolunteerMerchant")
+public class VolunteerMerchantApi  extends BaseController
+{
+
+    @Resource
+    private CommunityService vtService;
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/getList")
+    public R volunteerMerchantGetList(@RequestParam("pageNum") int pageNum,
+                                      @RequestParam("pageSize") int pageSize,
+                                      @RequestParam(value = "merchantState", required = false) String merchantState,
+                                      @RequestParam(value = "merchantType", required = false) String merchantType,
+                                      @RequestParam(value = "name", required = false) String name)
+    {
+        return vtService.volunteerMerchantGetList(pageNum, pageSize,merchantState,merchantType,name,getCommunityId()+"");
+    }
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/insert")
+    public R insertVolunteerMerchant(@RequestBody VolunteerMerchantVO vtvo)
+    {
+        if(StringUtils.isEmpty(vtvo.getCommunityId()))
+        {
+            vtvo.setCommunityId(getCommunityId()+"");
+        }
+        return vtService.insertVolunteerMerchant(vtvo);
+    }
+
+
+    @PostMapping("/update")
+    public R updateVolunteerMerchant(@RequestBody VolunteerMerchantVO vtvo)
+    {
+        return vtService.updateVolunteerMerchant(vtvo);
+    }
+
+
+    @GetMapping("/setOpenOrClose")
+    public R setOpenOrClose(@RequestParam("merchantState") String merchantState,
+                            @RequestParam("merchantIds") String merchantIds) {
+        if (StringUtils.isEmpty(merchantState)) {
+            return R.fail("开启或者禁用状态不能为空");
+        }
+
+        if (StringUtils.isEmpty(merchantIds)) {
+            return R.fail("商家id串不能为空");
+        }
+
+        if (merchantIds.indexOf(",")==-1)
+        {
+            VolunteerMerchantVO merchantVO=new VolunteerMerchantVO();
+            merchantVO.setId(merchantIds);
+            merchantVO.setMerchantState(merchantState);
+            return vtService.updateVolunteerMerchant(merchantVO);
+        }
+        else
+        {
+            String[] ids=merchantIds.split(",");
+            for (String id: ids)
+            {
+                VolunteerMerchantVO merchantVO=new VolunteerMerchantVO();
+                merchantVO.setId(id);
+                merchantVO.setMerchantState(merchantState);
+                vtService.updateVolunteerMerchant(merchantVO);
+            }
+            return R.ok();
+        }
+    }
+
+
+
+    @DeleteMapping("/delete")
+    public R deleteVolunteerMerchant(@RequestParam("id") String id)
+    {
+        return vtService.deleteVolunteerMerchant(id);
+    }
+
+
+    @GetMapping("/getUser")
+    public R volunteerMerchantGetUser(@RequestParam(value = "userName", required = false) String userName,
+                                      @RequestParam(value = "userPhone", required = false) String userPhone)
+    {
+        return vtService.volunteerMerchantGetUser(getCommunityId()+"",userName,userPhone);
+    }
+
+    @GetMapping("/getById")
+    public R volunteerMerchantGetById(@RequestParam("id") String id)
+    {
+        return vtService.volunteerMerchantGetById(id);
+    }
+
+
+    /******************************************************************************************************
+     *
+     *
+     *                                     商品管理
+     *
+     *
+     ******************************************************************************************************/
+
+    /**
+     * 获取单个详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/queryById")
+    public R VolunteerIntegralMerchantQueryById(@RequestParam("id") String id)
+    {
+        return R.ok(vtService.VolunteerIntegralMerchantQueryById(id));
+    }
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/queryList")
+    public R VolunteerIntegralMerchantQueryList(@RequestParam("pageNum") int pageNum,
+                                                @RequestParam("pageSize")  int pageSize,
+                                                @RequestParam(value = "name", required = false) String name,
+                                                @RequestParam(value = "state", required = false) String state,
+                                                @RequestParam(value = "merchantId", required = true) String merchantId)
+    {
+        return R.ok(vtService.VolunteerIntegralMerchantQueryList(pageNum,pageSize,name,state,"1",merchantId));
+    }
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/insertVolunteer")
+    public R VolunteerIntegralMerchantInsertVolunteer(@RequestBody VolunteerIntegralMerchantVO vimVO)
+    {
+        if(StringUtils.isEmpty(vimVO.getMerchantId()))
+        {
+            return R.fail("商家id不能为空");
+        }
+        vimVO.setGoodType("1");
+        return vtService.VolunteerIntegralMerchantInsertVolunteer(vimVO);
+    }
+
+    @PostMapping("/updateById")
+    public R  VolunteerIntegralMerchantUpdateById(@RequestBody VolunteerIntegralMerchantVO vimVO)
+    {
+        if(StringUtils.isEmpty(vimVO.getMerchantId()))
+        {
+            return R.fail("商家id不能为空");
+        }
+        vimVO.setGoodType("1");
+        return vtService.VolunteerIntegralMerchantUpdateById(vimVO);
+    }
+
+
+    @PostMapping("/unmount")
+    public R  VolunteerIntegralMerchantUnmount(@RequestBody VolunteerIntegralMerchantVO vimVO)
+    {
+        return vtService.VolunteerIntegralMerchantUnmount(vimVO);
+    }
+
+
+    @DeleteMapping("/deleteById")
+    public R  VolunteerIntegralMerchantDeleteById(@RequestParam("id") String id)
+    {
+        return vtService.VolunteerIntegralMerchantDeleteById(id);
+    }
+
+
+    /***************************************************************************************************************
+     *
+     *                               路北社区商家提现
+     *
+     ****************************************************************************************************************/
+
+    /**
+     * 商家提现列表
+     * @param disposeType
+     * @return
+     */
+    @GetMapping("/withdraw/getList")
+    public R WithdrawGetList(@RequestParam("pageNum") int pageNum,
+                             @RequestParam("pageSize") int pageSize,
+                             @RequestParam(value = "disposeType", required = false) String disposeType,
+                             @RequestParam(value = "merchantName", required = false) String merchantName,
+                             @RequestParam(value = "merchantId", required = false) String  merchantId,
+                             @RequestParam(value = "communityId", required = false) String communityId)
+    {
+        if(StringUtils.isEmpty(communityId))
+        {
+            communityId=getCommunityId()+"";
+        }
+
+        return vtService.WithdrawGetList(pageNum,pageSize,disposeType, merchantName,merchantId,communityId);
+    }
+
+
+    /**
+     * 编辑商家提现
+     * @param item
+     * @return
+     */
+    @PostMapping("/withdraw/update")
+    public R WithdrawUpdate(@RequestBody VolunteerMerchantWithdrawVO item)
+    {
+        return vtService.WithdrawUpdate(item);
+    }
+
+    /**
+     * 删除商家提现
+     * @param id
+     * @return
+     */
+    @GetMapping("/withdraw/delete")
+    public R WithdrawDelete(@RequestParam("id") String id)
+    {
+        return vtService.WithdrawDelete(id);
+    }
+
+    /**
+     * 处理商家提现
+     * @param id
+     * @return
+     */
+    @GetMapping("/withdraw/dispose")
+    public R WithdrawDispose(@RequestParam("id") String id)
+    {
+        return vtService.WithdrawDispose(id);
+    }
+
+
+    /***************************************************************************************************************
+     *
+     *                               路北社区系统配置   商家折扣      兑换地点信息
+     *
+     ****************************************************************************************************************/
+
+    /**
+     * 详情
+     * @param
+     * @return
+     */
+    @GetMapping("/Community/Config/getData")
+    public R ConfiggetData(@RequestParam("communityId") String communityId)
+    {
+        return vtService.ConfiggetData(communityId);
+    }
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/Community/Config/insertvo")
+    public R Configinsertvo(@RequestBody VolunteerCommunityConfigVO item)
+    {
+        return vtService.Configinsertvo(item);
+    }
+
+
+    /*******************************************************************************************************************
+     *
+     *
+     *                         社区折扣
+     *
+     *
+     ******************************************************************************************************************/
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/community/discount/getList")
+    public R CommunityDiscountgetList(@RequestParam("communityId") String communityId)
+    {
+        return vtService.CommunityDiscountgetList(communityId);
+    }
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/community/discount/insert")
+    public R CommunityDiscountinsert(@RequestBody List<VolunteerCommunityDiscountVO> item)
+    {
+        if(item==null)
+        {
+            return R.fail("参数不能为空");
+        }
+
+        for (VolunteerCommunityDiscountVO vo:item)
+        {
+            if(StringUtils.isEmpty(vo.getId()))
+            {
+                vtService.CommunityDiscountinsert(vo);
+            }
+            else
+            {
+                vtService.CommunityDiscountupdate(vo);
+            }
+        }
+
+        return R.ok();
+    }
+
+
+    @PostMapping("/community/discount/update")
+    public R CommunityDiscountupdate(@RequestBody List<VolunteerCommunityDiscountVO> item)
+    {
+        for (VolunteerCommunityDiscountVO vo:item)
+        {
+            vtService.CommunityDiscountupdate(vo);
+        }
+
+        return R.ok();
+    }
+
+
+    @DeleteMapping("/community/discount/delete")
+    public R CommunityDiscountdelete(@RequestParam("id") String id)
+    {
+        return vtService.CommunityDiscountdelete(id);
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/VolunteerTypeApi.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/VolunteerTypeApi.java
new file mode 100644
index 0000000..3e47683
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/api/VolunteerTypeApi.java
@@ -0,0 +1,147 @@
+package com.panzhihua.community_backstage.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.VolunteerTypeVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.StringUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * 路北社区志愿者状态接口
+ */
+
+@Slf4j
+@RestController
+@RequestMapping("/VolunteerType")
+public class VolunteerTypeApi  extends BaseController
+{
+
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/volunteerTypeGetList")
+    public R volunteerTypeGetList(@RequestParam("pageNum")  int pageNum,
+                                  @RequestParam("pageSize")  int pageSize)
+    {
+        return communityService.volunteerTypeGetList(pageNum,pageSize,"1");
+    }
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/insertvolunteerType")
+    public R insertvolunteerType(@RequestBody VolunteerTypeVO volunteerTypeVO)
+    {
+        if(volunteerTypeVO==null)
+        {
+            return R.fail("参数不能为空");
+        }
+
+        if(StringUtils.isEmpty(volunteerTypeVO.getName()))
+        {
+            return  R.fail("活动类型不能为空");
+        }
+
+        if(StringUtils.isEmpty(volunteerTypeVO.getCommunityId()))
+        {
+            volunteerTypeVO.setCommunityId(getLoginUserInfo().getCommunityId()+"");
+        }
+
+        volunteerTypeVO.setType("1");
+
+        return communityService.insertvolunteerType(volunteerTypeVO);
+    }
+
+    /**
+     * 更新
+     * @param volunteerTypeVO
+     * @return
+     */
+    @PostMapping("/volunteerTypeUpdate")
+    public R volunteerTypeUpdate(@RequestBody VolunteerTypeVO volunteerTypeVO)
+    {
+        if(volunteerTypeVO==null)
+        {
+            return R.fail("参数不能为空");
+        }
+
+        if(StringUtils.isEmpty(volunteerTypeVO.getId()))
+        {
+            return  R.fail("id不能为空");
+        }
+        return communityService.volunteerTypeUpdate(volunteerTypeVO);
+    }
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/volunteerTypeDelete")
+    public R volunteerTypeDelete(@RequestParam("id") String id)
+    {
+        if(StringUtils.isEmpty(id))
+        {
+            return  R.fail("id不能为空");
+        }
+        return communityService.volunteerTypeDelete(id);
+    }
+
+
+    /****************************************************************************
+     *
+     * 商家状态
+     *
+     ********************************************************************************/
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/merchant/volunteerTypeGetList")
+    public R merchantvolunteerTypeGetList(@RequestParam("pageNum")  int pageNum,
+                                          @RequestParam("pageSize")  int pageSize)
+    {
+        return communityService.volunteerTypeGetList(pageNum,pageSize,"2");
+    }
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/merchant/insertvolunteerType")
+    public R merchantinsertvolunteerType(@RequestBody VolunteerTypeVO volunteerTypeVO)
+    {
+        if(volunteerTypeVO==null)
+        {
+            return R.fail("参数不能为空");
+        }
+
+        if(StringUtils.isEmpty(volunteerTypeVO.getName()))
+        {
+            return  R.fail("活动类型不能为空");
+        }
+
+        if(StringUtils.isEmpty(volunteerTypeVO.getCommunityId()))
+        {
+            volunteerTypeVO.setCommunityId(getLoginUserInfo().getCommunityId()+"");
+        }
+
+        volunteerTypeVO.setType("2");
+
+        return communityService.insertvolunteerType(volunteerTypeVO);
+    }
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/biz/KeyPersonBizServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/biz/KeyPersonBizServiceImpl.java
new file mode 100644
index 0000000..d9fa0fc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/biz/KeyPersonBizServiceImpl.java
@@ -0,0 +1,104 @@
+package com.panzhihua.community_backstage.biz;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Service;
+
+import com.panzhihua.common.model.vos.BcDictionaryVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.ExcelSelectObject;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * program 攀枝花智慧社区项目 description 特殊人群导入模板处理service
+ *
+ * @author manailin Date 2021-06-14 15:30
+ **/
+@Slf4j
+@Service
+public class KeyPersonBizServiceImpl {
+    /**
+     * 初始化全局处理类
+     */
+    private static final String split = ":";
+
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * description exportUser 定义导出特殊人群下拉选项值
+     *
+     * @return List<ExcelSelectObject> 下拉选项值
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    public List<ExcelSelectObject> defineExcelModelData() {
+        HashMap map = new HashMap(5);
+        String[] invalid = {"0", "1"};
+        String[] economicLevel = {"贫困", "非贫困"};
+        List<String> dictNames = Arrays.asList("sex", "family", "education", "nation", "key_person_type");
+        dictNames.forEach(dictName -> {
+            List<BcDictionaryVO> dictionaryItem = communityService.listDictionaryByKey(dictName).getData();
+            String[] dataMap = dictionaryItem.stream()
+                .map(dictionaryVO -> dictionaryVO.getDictName() + split + dictionaryVO.getDictValue()).distinct()
+                .toArray(String[]::new);
+            map.put(dictName, dataMap);
+        });
+        List<ExcelSelectObject> excelSelectObjectList = new ArrayList<>();
+        excelSelectObjectList.add(new ExcelSelectObject(1, 1, (String[])map.get("sex")));
+        excelSelectObjectList.add(new ExcelSelectObject(4, 4, (String[])map.get("nation")));
+        excelSelectObjectList.add(new ExcelSelectObject(8, 8, (String[])map.get("key_person_type")));
+        excelSelectObjectList.add(new ExcelSelectObject(10, 10, invalid));
+        excelSelectObjectList.add(new ExcelSelectObject(12, 12, (String[])map.get("education")));
+        excelSelectObjectList.add(new ExcelSelectObject(13, 13, economicLevel));
+        excelSelectObjectList.add(new ExcelSelectObject(17, 17, (String[])map.get("family")));
+        return excelSelectObjectList;
+    }
+
+    /**
+     * 定义导出实有人口下拉选项 值
+     * 
+     * @return
+     */
+    public List<ExcelSelectObject> definePopulationExcelModelData() {
+        HashMap map = new HashMap(5);
+        List<String> dictNames = Arrays.asList("sex", "family", "education", "nation", "key_person_type");
+        dictNames.forEach(dictName -> {
+            List<BcDictionaryVO> dictionaryItem = communityService.listDictionaryByKey(dictName).getData();
+            String[] dataMap = dictionaryItem.stream()
+                .map(dictionaryVO -> dictionaryVO.getDictName() + split + dictionaryVO.getDictValue()).distinct()
+                .toArray(String[]::new);
+            map.put(dictName, dataMap);
+        });
+        List<ExcelSelectObject> excelSelectObjectList = new ArrayList<>();
+        excelSelectObjectList.add(new ExcelSelectObject(1, 1, (String[])map.get("sex")));
+        excelSelectObjectList.add(new ExcelSelectObject(4, 4, (String[])map.get("nation")));
+        excelSelectObjectList.add(new ExcelSelectObject(8, 8, (String[])map.get("key_person_type")));
+        excelSelectObjectList.add(new ExcelSelectObject(12, 12, (String[])map.get("education")));
+        excelSelectObjectList.add(new ExcelSelectObject(17, 17, (String[])map.get("family")));
+        return excelSelectObjectList;
+    }
+
+    public List<ExcelSelectObject> defineDisableUserExcelModelData() {
+        HashMap map = new HashMap(5);
+        List<String> dictNames = Arrays.asList("sex", "education", "nation");
+        dictNames.forEach(dictName -> {
+            List<BcDictionaryVO> dictionaryItem = communityService.listDictionaryByKey(dictName).getData();
+            String[] dataMap = dictionaryItem.stream()
+                .map(dictionaryVO -> dictionaryVO.getDictName() + split + dictionaryVO.getDictValue()).distinct()
+                .toArray(String[]::new);
+            map.put(dictName, dataMap);
+        });
+        List<ExcelSelectObject> excelSelectObjectList = new ArrayList<>();
+        excelSelectObjectList.add(new ExcelSelectObject(4, 4, (String[])map.get("sex")));
+        excelSelectObjectList.add(new ExcelSelectObject(5, 5, (String[])map.get("education")));
+        excelSelectObjectList.add(new ExcelSelectObject(6, 6, (String[])map.get("nation")));
+        return excelSelectObjectList;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/config/JacksonConfig.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/config/JacksonConfig.java
new file mode 100644
index 0000000..103186a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/config/JacksonConfig.java
@@ -0,0 +1,31 @@
+package com.panzhihua.community_backstage.config;
+
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.module.SimpleModule;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
+
+@Configuration
+public class JacksonConfig {
+
+    @Bean
+    @Primary
+    @ConditionalOnMissingBean(ObjectMapper.class)
+    public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder)
+    {
+        ObjectMapper objectMapper = builder.createXmlMapper(false).build();
+
+        // 全局配置序列化返回 JSON 处理
+        SimpleModule simpleModule = new SimpleModule();
+        //JSON Long ==> String
+        simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
+        objectMapper.registerModule(simpleModule);
+        return objectMapper;
+    }
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/config/KaptchaConfig.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/config/KaptchaConfig.java
new file mode 100644
index 0000000..1f3dda4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/config/KaptchaConfig.java
@@ -0,0 +1,45 @@
+package com.panzhihua.community_backstage.config;
+
+import com.google.code.kaptcha.Constants;
+import com.google.code.kaptcha.impl.DefaultKaptcha;
+import com.google.code.kaptcha.util.Config;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.Properties;
+
+/**
+ * @author zzj
+ */
+@Configuration
+public class KaptchaConfig {
+    /**
+     * 验证码配置
+     * @return
+     */
+    @Bean
+    public DefaultKaptcha getDefaultKaptcha(){
+        DefaultKaptcha defaultKaptcha=new DefaultKaptcha();
+        Properties properties=new Properties();
+        //是否有边框
+        properties.setProperty(Constants.KAPTCHA_BORDER,"yes");
+        //验证码文本颜色
+        properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_FONT_COLOR,"red");
+        //验证码图片宽度
+        properties.setProperty(Constants.KAPTCHA_IMAGE_WIDTH,"180");
+        //验证码图片高度
+        properties.setProperty(Constants.KAPTCHA_IMAGE_HEIGHT,"80");
+        //文本字符大小
+        properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_FONT_SIZE,"39");
+        //验证码session的值
+        properties.setProperty(Constants.KAPTCHA_SESSION_CONFIG_KEY,"kaptchaCode");
+        //验证码文本长度
+        properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_CHAR_LENGTH,"4");
+        //字体
+        properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_FONT_NAMES, "宋体,楷体,微软雅黑");
+
+        Config config=new Config(properties);
+        defaultKaptcha.setConfig(config);
+        return defaultKaptcha;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/config/MinioConfig.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/config/MinioConfig.java
new file mode 100644
index 0000000..8a9ca5c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/config/MinioConfig.java
@@ -0,0 +1,29 @@
+package com.panzhihua.community_backstage.config;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+import lombok.Data;
+
+/**
+ * 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/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
new file mode 100644
index 0000000..9bf3de6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/config/MinioUtil.java
@@ -0,0 +1,135 @@
+package com.panzhihua.community_backstage.config;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URLEncoder;
+import java.util.UUID;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+
+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 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 {
+
+    @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("/");
+                s.append(DateUtils.getCurrentDateyymd()).append("-original").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());
+                }
+                // 得到文件流
+                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/community_backstage/src/main/java/com/panzhihua/community_backstage/config/SFTPConfig.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/config/SFTPConfig.java
new file mode 100644
index 0000000..9a97f43
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/config/SFTPConfig.java
@@ -0,0 +1,31 @@
+package com.panzhihua.community_backstage.config;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Configuration;
+
+import lombok.Data;
+
+/**
+ * @Author: llming
+ * @Description:
+ */
+@Configuration
+@Data
+public class SFTPConfig {
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+    @Value("${ftp.url}")
+    private String url;
+    @Value("${excel.userurl}")
+    private String excelUrl;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/config/SwaggerConfig.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/config/SwaggerConfig.java
new file mode 100644
index 0000000..0c8ce86
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/config/SwaggerConfig.java
@@ -0,0 +1,33 @@
+package com.panzhihua.community_backstage.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import io.swagger.annotations.ApiOperation;
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.service.Contact;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: swagger3
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-19 16:08
+ **/
+@Configuration
+public class SwaggerConfig {
+    @Bean
+    public Docket createRestApi() {
+        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
+            .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)).paths(PathSelectors.any()).build();
+    }
+
+    private ApiInfo apiInfo() {
+        return new ApiInfoBuilder().title("社区后台管理接口").description("。")
+            .contact(new Contact("Ray。", "http://www.ruiyeclub.cn", "ruiyeclub@foxmail.com")).version("1.0").build();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/easyexcel/UploadEexcelUserDTOListener.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/easyexcel/UploadEexcelUserDTOListener.java
new file mode 100644
index 0000000..7f8e32f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/easyexcel/UploadEexcelUserDTOListener.java
@@ -0,0 +1,180 @@
+package com.panzhihua.community_backstage.easyexcel;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.util.ObjectUtils;
+
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.alibaba.excel.exception.ExcelDataConvertException;
+import com.alibaba.excel.metadata.CellExtra;
+import com.alibaba.fastjson.JSON;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.dtos.user.EexcelUserDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.user.UserService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 导入居民
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-02-04 17:36
+ **/
+@Slf4j
+public class UploadEexcelUserDTOListener extends AnalysisEventListener<EexcelUserDTO> {
+
+    /**
+     * 每隔5条存储数据库,实际使用中可以3000条,然后清理list ,方便内存回收
+     */
+    private static final int BATCH_COUNT = 3000;
+    List<EexcelUserDTO> list = new ArrayList<EexcelUserDTO>();
+    /**
+     * 假设这个是一个DAO,当然有业务逻辑这个也可以是一个service。当然如果不用存储这个对象没用。
+     */
+    private UserService userService;
+    // 缓存上一次跨行数据的有效数据
+    private EexcelUserDTO excel;
+    private StringBuffer areaName;
+    private String name;
+    /**
+     * 如果使用了spring,请使用这个构造方法。每次创建Listener的时候需要把spring管理的类传进来
+     *
+     * @param userService
+     * @param name
+     */
+    public UploadEexcelUserDTOListener(UserService userService, String name) {
+        this.userService = userService;
+        this.name = name;
+    }
+
+    @Override
+    public void invoke(EexcelUserDTO eexcelUserDTO, AnalysisContext analysisContext) {
+        String order = eexcelUserDTO.getOrder();
+        String isRent = eexcelUserDTO.getIsRent();
+        String doorNumber = eexcelUserDTO.getDoorNumber();
+        String name = eexcelUserDTO.getName();
+        if (ObjectUtils.isEmpty(name)) {
+            return;
+        } else {
+            if (name.equals("张三")) {
+                return;
+            }
+        }
+        if (ObjectUtils.isEmpty(order)) {
+            order = excel.getOrder();
+        }
+        if (ObjectUtils.isEmpty(doorNumber)) {
+            doorNumber = excel.getDoorNumber();
+        }
+        if (ObjectUtils.isEmpty(isRent)) {
+            isRent = excel.getIsRent();
+        }
+        eexcelUserDTO.setOrder(order);
+        eexcelUserDTO.setIsRent(isRent);
+        eexcelUserDTO.setDoorNumber(doorNumber);
+        log.info("解析到一条数据:{}", JSON.toJSONString(eexcelUserDTO));
+        list.add(eexcelUserDTO);
+
+        // 复用跨行数据的实现
+        String order1 = eexcelUserDTO.getOrder();
+        if (!ObjectUtils.isEmpty(order1) || excel == null) {
+            excel = eexcelUserDTO;
+        }
+
+        // 达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM
+        if (list.size() >= BATCH_COUNT) {
+            saveData();
+            // 存储完成清理 list
+            list.clear();
+        }
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
+        // 这里也要保存数据,确保最后遗留的数据也存储到数据库
+        saveData();
+        log.info("所有数据解析完成!");
+    }
+
+    /**
+     * 加上存储数据库
+     */
+    private void saveData() {
+        log.info("{}条数据,开始存储数据库!", list.size());
+        R r = userService.batchSaveUser(list, areaName);
+        if (R.isOk(r)) {
+            log.info("存储数据库成功!");
+        } else {
+            throw new ServiceException(r.getMsg());
+        }
+
+    }
+
+    /**
+     * 这里会一行行的返回头
+     *
+     * @param headMap
+     * @param context
+     */
+    @Override
+    public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
+        // String s = JSON.toJSONString(headMap);
+        // String key="所属小区:";
+        // boolean contains = s.contains(key);
+        // if (contains) {
+        // log.info("解析到头数据:{}", s);
+        // String substring = s.substring(s.indexOf("【")+1, s.indexOf("】"));
+        // if (ObjectUtils.isEmpty(substring)) {
+        // throw new ServiceException("小区名字不能为空");
+        // }
+        // R r=userService.checkAereaName(substring);
+        // if (!R.isOk(r)) {
+        // throw new ServiceException(r.getMsg());
+        // }
+        // areaName=new StringBuffer(substring);
+        // }
+        String substring = name.substring(0, name.indexOf("."));
+        R r = userService.checkAereaName(substring);
+        if (!R.isOk(r)) {
+            throw new ServiceException(r.getMsg());
+        }
+        areaName = new StringBuffer(substring);
+    }
+
+    /**
+     * 在转换异常 获取其他异常下会调用本接口。抛出异常则停止读取。如果这里不抛出异常则 继续读取下一行。
+     *
+     * @param exception
+     * @param context
+     * @throws Exception
+     */
+    @Override
+    public void onException(Exception exception, AnalysisContext context) throws ServiceException {
+        log.error("抛出异常:{}", exception.getMessage());
+        if (exception instanceof ExcelDataConvertException) {
+            ExcelDataConvertException excelDataConvertException = (ExcelDataConvertException)exception;
+            log.error("第{}行,第{}列解析异常,数据为:{}", excelDataConvertException.getRowIndex(),
+                excelDataConvertException.getColumnIndex(), excelDataConvertException.getCellData());
+        } else {
+            throw new ServiceException(exception.getMessage());
+        }
+    }
+
+    @Override
+    public void extra(CellExtra extra, AnalysisContext context) {
+        // log.info("读取到了一条额外信息:{}", JSON.toJSONString(extra));
+        // switch (extra.getType()) {
+        // case MERGE:
+        // log.info(
+        // "合并信息,在firstRowIndex:{},firstColumnIndex;{},lastRowIndex:{},lastColumnIndex:{}",
+        // extra.getFirstRowIndex(), extra.getFirstColumnIndex(), extra.getLastRowIndex(),
+        // extra.getLastColumnIndex());
+        // break;
+        // default:
+        // }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/excel/CustemSecondhandler.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/excel/CustemSecondhandler.java
new file mode 100644
index 0000000..021592d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/excel/CustemSecondhandler.java
@@ -0,0 +1,73 @@
+package com.panzhihua.community_backstage.excel;
+
+import com.alibaba.excel.enums.CellDataTypeEnum;
+import com.alibaba.excel.metadata.CellData;
+import com.alibaba.excel.metadata.Head;
+import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
+import com.alibaba.excel.write.style.column.AbstractColumnWidthStyleStrategy;
+import org.apache.poi.ss.usermodel.Cell;
+import org.springframework.util.CollectionUtils;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class CustemSecondhandler extends AbstractColumnWidthStyleStrategy {
+
+    private  Map<Integer, Map<Integer, Integer>> CACHE = new HashMap(8);
+
+    public CustemSecondhandler() {
+    }
+
+    @Override
+    protected void setColumnWidth(WriteSheetHolder writeSheetHolder, List<CellData> cellDataList, Cell cell, Head head, Integer relativeRowIndex, Boolean isHead) {
+        boolean needSetWidth = isHead || !CollectionUtils.isEmpty(cellDataList);
+        if (needSetWidth) {
+            Map<Integer, Integer> maxColumnWidthMap = (Map)CACHE.get(writeSheetHolder.getSheetNo());
+            if (maxColumnWidthMap == null) {
+                maxColumnWidthMap = new HashMap(16);
+                CACHE.put(writeSheetHolder.getSheetNo(), maxColumnWidthMap);
+            }
+
+            Integer columnWidth = this.dataLength(cellDataList, cell, isHead);
+            if (columnWidth >= 0) {
+                if (columnWidth > 25) {
+                    columnWidth = 25;
+                }
+
+                Integer maxColumnWidth = (Integer)((Map)maxColumnWidthMap).get(cell.getColumnIndex());
+                if (maxColumnWidth == null || columnWidth > maxColumnWidth) {
+                    ((Map)maxColumnWidthMap).put(cell.getColumnIndex(), columnWidth);
+                    writeSheetHolder.getSheet().setColumnWidth(cell.getColumnIndex(), columnWidth * 75);
+                }
+                if(cell.getStringCellValue().equals("隔离体温情况")){
+                    writeSheetHolder.getSheet().setColumnWidth(cell.getColumnIndex(),70*75);
+                }
+
+            }
+        }
+    }
+
+    private Integer dataLength(List<CellData> cellDataList, Cell cell, Boolean isHead) {
+        if (isHead) {
+            return cell.getStringCellValue().getBytes().length;
+        } else {
+            CellData cellData = cellDataList.get(0);
+            CellDataTypeEnum type = cellData.getType();
+            if (type == null) {
+                return -1;
+            } else {
+                switch(type) {
+                    case STRING:
+                        return cellData.getStringValue().getBytes().length;
+                    case BOOLEAN:
+                        return cellData.getBooleanValue().toString().getBytes().length;
+                    case NUMBER:
+                        return cellData.getNumberValue().toString().getBytes().length;
+                    default:
+                        return -1;
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/excel/Custemhandler.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/excel/Custemhandler.java
new file mode 100644
index 0000000..1ca545d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/excel/Custemhandler.java
@@ -0,0 +1,75 @@
+package com.panzhihua.community_backstage.excel;
+
+import com.alibaba.excel.enums.CellDataTypeEnum;
+import com.alibaba.excel.metadata.CellData;
+import com.alibaba.excel.metadata.Head;
+import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
+import com.alibaba.excel.write.style.column.AbstractColumnWidthStyleStrategy;
+import org.apache.poi.ss.usermodel.Cell;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.util.CollectionUtils;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class Custemhandler extends AbstractColumnWidthStyleStrategy {
+
+    private  Map<Integer, Map<Integer, Integer>> CACHE = new HashMap(8);
+
+    public Custemhandler() {
+    }
+
+    @Override
+    protected void setColumnWidth(WriteSheetHolder writeSheetHolder, List<CellData> cellDataList, Cell cell, Head head, Integer relativeRowIndex, Boolean isHead) {
+        boolean needSetWidth = isHead || !CollectionUtils.isEmpty(cellDataList);
+        if (needSetWidth) {
+            Map<Integer, Integer> maxColumnWidthMap = (Map)CACHE.get(writeSheetHolder.getSheetNo());
+            if (maxColumnWidthMap == null) {
+                maxColumnWidthMap = new HashMap(16);
+                CACHE.put(writeSheetHolder.getSheetNo(), maxColumnWidthMap);
+            }
+
+            Integer columnWidth = this.dataLength(cellDataList, cell, isHead);
+            if (columnWidth >= 0) {
+                if (columnWidth > 20) {
+                    columnWidth = 20;
+                }
+
+                Integer maxColumnWidth = (Integer)((Map)maxColumnWidthMap).get(cell.getColumnIndex());
+                if (maxColumnWidth == null || columnWidth > maxColumnWidth) {
+                    ((Map)maxColumnWidthMap).put(cell.getColumnIndex(), columnWidth);
+                    writeSheetHolder.getSheet().setColumnWidth(cell.getColumnIndex(), columnWidth * 75);
+                }
+                if(cell.getStringCellValue().equals("有无")){
+                    writeSheetHolder.getSheet().setColumnWidth(cell.getColumnIndex(),30*75);
+                }
+
+            }
+        }
+    }
+
+    private Integer dataLength(List<CellData> cellDataList, Cell cell, Boolean isHead) {
+        if (isHead) {
+            return cell.getStringCellValue().getBytes().length;
+        } else {
+            CellData cellData = cellDataList.get(0);
+            CellDataTypeEnum type = cellData.getType();
+            if (type == null) {
+                return -1;
+            } else {
+                switch(type) {
+                    case STRING:
+                        return cellData.getStringValue().getBytes().length;
+                    case BOOLEAN:
+                        return cellData.getBooleanValue().toString().getBytes().length;
+                    case NUMBER:
+                        return cellData.getNumberValue().toString().getBytes().length;
+                    default:
+                        return -1;
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/excel/CustomSheetWriteHandler.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/excel/CustomSheetWriteHandler.java
new file mode 100644
index 0000000..9581a40
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/excel/CustomSheetWriteHandler.java
@@ -0,0 +1,49 @@
+package com.panzhihua.community_backstage.excel;
+
+import org.apache.poi.ss.usermodel.DataValidation;
+import org.apache.poi.ss.usermodel.DataValidationConstraint;
+import org.apache.poi.ss.usermodel.DataValidationHelper;
+import org.apache.poi.ss.util.CellRangeAddressList;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import com.alibaba.excel.write.handler.SheetWriteHandler;
+import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
+import com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder;
+
+/**
+ * 自定义拦截器.对第一列第一行和第二行的数据新增下拉框,显示 测试1 测试2
+ *
+ * @author Jiaju Zhuang
+ */
+public class CustomSheetWriteHandler implements SheetWriteHandler {
+
+    private static final Logger LOGGER = LoggerFactory.getLogger(CustomSheetWriteHandler.class);
+
+    @Override
+    public void beforeSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {
+
+    }
+
+    @Override
+    public void afterSheetCreate(WriteWorkbookHolder writeWorkbookHolder, WriteSheetHolder writeSheetHolder) {
+        LOGGER.info("第{}个Sheet写入成功。", writeSheetHolder.getSheetNo());
+
+        // 区间设置 第一列第一行和第二行的数据。由于第一行是头,所以第一、二行的数据实际上是第二三行
+        CellRangeAddressList cellRangeAddressList = new CellRangeAddressList(1, 2000, 1, 1);
+        CellRangeAddressList cellRangeAddressList1 = new CellRangeAddressList(1, 2000, 3, 3);
+        CellRangeAddressList cellRangeAddressList2 = new CellRangeAddressList(1, 2000, 10, 10);
+        DataValidationHelper helper = writeSheetHolder.getSheet().getDataValidationHelper();
+        DataValidationConstraint constraint = helper.createExplicitListConstraint(new String[] {"是", "否"});
+        DataValidationConstraint constraint1 = helper.createExplicitListConstraint(new String[] {"中共党员", "中共预备党员",
+            "共青团员", "民革党员", "民盟盟员", "民建会员", "农工党党员", "致公党党员", "九三学社社员", "台盟盟员", "无党派人士", "群众"});
+        DataValidationConstraint constraint2 = helper.createExplicitListConstraint(new String[] {"男", "女", "未知"});
+        DataValidation dataValidation = helper.createValidation(constraint2, cellRangeAddressList);
+        DataValidation dataValidation1 = helper.createValidation(constraint, cellRangeAddressList1);
+        DataValidation dataValidation2 = helper.createValidation(constraint1, cellRangeAddressList2);
+
+        writeSheetHolder.getSheet().addValidationData(dataValidation);
+        writeSheetHolder.getSheet().addValidationData(dataValidation1);
+        writeSheetHolder.getSheet().addValidationData(dataValidation2);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/listen/DisablePersonExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/listen/DisablePersonExcelListen.java
new file mode 100644
index 0000000..d26464f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/listen/DisablePersonExcelListen.java
@@ -0,0 +1,83 @@
+package com.panzhihua.community_backstage.listen;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.exceptions.PartyBuildingMemberException;
+import com.panzhihua.common.model.dtos.community.DisabledPersonsDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.common.utlis.StringUtils;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * program 攀枝花智慧社区项目 description 残疾人群入监听
+ *
+ * @author manailin Date 2021-01-22 15:30
+ **/
+@Slf4j
+public class DisablePersonExcelListen extends AnalysisEventListener<DisabledPersonsDTO> {
+
+    private static final int BATCH_COUNT = 5000;
+    @Resource
+    private CommunityService communityService;
+    private LoginUserInfoVO loginUserInfo;
+    private List<DisabledPersonsDTO> list = new ArrayList<>();
+    public DisablePersonExcelListen(CommunityService communityService, LoginUserInfoVO loginUserInfo) {
+        this.communityService = communityService;
+        this.loginUserInfo = loginUserInfo;
+    }
+
+    @Override
+    public void invoke(DisabledPersonsDTO disabledPersonsDTO, AnalysisContext analysisContext) {
+        list.add(disabledPersonsDTO);
+        if (list.size() >= BATCH_COUNT) {
+            log.info("excel导入数据【{}】", JSONObject.toJSONString(list));
+            list.forEach(keyPersonInfo -> {
+                buildKeyPersonInfo(keyPersonInfo);
+            });
+            R r = this.communityService.saveBatchDisabledPersons(list);
+            if (!R.isOk(r)) {
+                throw new PartyBuildingMemberException(r.getMsg());
+            }
+            list.clear();
+        }
+    }
+
+    private void buildKeyPersonInfo(DisabledPersonsDTO disabledPersons) {
+        disabledPersons.setId(Snowflake.getId());
+        // 获取用户生日
+        String birthday = disabledPersons.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);
+            disabledPersons.setBirthday(year + "-" + month + "-" + day);
+        }
+        disabledPersons.setActId(loginUserInfo.getCommunityId());
+        disabledPersons.setCreateBy(loginUserInfo.getUserId());
+        disabledPersons.setUpdateBy(loginUserInfo.getUserId());
+
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
+        log.info("excel导入数据【{}】", JSONObject.toJSONString(list));
+        list.forEach(keyPersonInfo -> {
+            buildKeyPersonInfo(keyPersonInfo);
+        });
+        R r = this.communityService.saveBatchDisabledPersons(list);
+        if (!R.isOk(r)) {
+            throw new PartyBuildingMemberException(r.getMsg());
+        }
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/listen/KeyPersonInfoExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/listen/KeyPersonInfoExcelListen.java
new file mode 100644
index 0000000..152c196
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/listen/KeyPersonInfoExcelListen.java
@@ -0,0 +1,102 @@
+package com.panzhihua.community_backstage.listen;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.exceptions.PartyBuildingMemberException;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.dtos.community.KeyPersonInfoDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.Snowflake;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * program 攀枝花智慧社区项目 description 特殊人群入监听
+ *
+ * @author manailin Date 2021-01-22 15:30
+ **/
+@Slf4j
+public class KeyPersonInfoExcelListen extends AnalysisEventListener<KeyPersonInfoDTO> {
+
+    private static final int BATCH_COUNT = 5000;
+    @Resource
+    private CommunityService communityService;
+    private LoginUserInfoVO loginUserInfo;
+    private List<KeyPersonInfoDTO> list = new ArrayList<>();
+    public KeyPersonInfoExcelListen(CommunityService communityService, LoginUserInfoVO loginUserInfo) {
+        this.communityService = communityService;
+        this.loginUserInfo = loginUserInfo;
+    }
+
+    @Override
+    public void invoke(KeyPersonInfoDTO keyPersonInfoDTO, AnalysisContext analysisContext) {
+        list.add(keyPersonInfoDTO);
+        if (list.size() >= BATCH_COUNT) {
+            log.info("excel导入数据【{}】", JSONObject.toJSONString(list));
+            list.forEach(keyPersonInfo -> {
+                buildKeyPersonInfo(keyPersonInfo);
+            });
+            R r = this.communityService.saveBatchKeyPerson(list);
+            if (!R.isOk(r)) {
+                throw new PartyBuildingMemberException(r.getMsg());
+            }
+            list.clear();
+        }
+    }
+
+    private void buildKeyPersonInfo(KeyPersonInfoDTO keyPersonInfo) {
+        if (keyPersonInfo.getSexName() != null) {
+            keyPersonInfo.setSex(splitData(keyPersonInfo.getSexName(), 1));
+            keyPersonInfo.setSexName(splitData(keyPersonInfo.getSexName(), 0));
+        }
+        if (keyPersonInfo.getNation() != null) {
+            keyPersonInfo.setNation(splitData(keyPersonInfo.getNation(), 1));
+        }
+        if (keyPersonInfo.getVisiterType() != null) {
+            keyPersonInfo.setVisiterType(splitData(keyPersonInfo.getVisiterType(), 1));
+        }
+        if (keyPersonInfo.getCultureLevel() != null) {
+            keyPersonInfo.setCultureLevel(splitData(keyPersonInfo.getCultureLevel(), 1));
+        }
+        if (keyPersonInfo.getGuardianRelation() != null) {
+            keyPersonInfo.setGuardianRelation(splitData(keyPersonInfo.getGuardianRelation(), 1));
+        }
+        keyPersonInfo.setId(Snowflake.getId());
+        keyPersonInfo.setActId(loginUserInfo.getCommunityId());
+        keyPersonInfo.setCreateBy(loginUserInfo.getUserId());
+        keyPersonInfo.setUpdateBy(loginUserInfo.getUserId());
+
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
+        log.info("excel导入数据【{}】", JSONObject.toJSONString(list));
+        list.forEach(keyPersonInfo -> {
+            buildKeyPersonInfo(keyPersonInfo);
+        });
+        R r = this.communityService.saveBatchKeyPerson(list);
+        if (!R.isOk(r)) {
+            throw new PartyBuildingMemberException(r.getMsg());
+        }
+    }
+
+    private String splitData(String key, int position) {
+        try {
+            if (!key.isEmpty()) {
+                return key.split(":")[position];
+            } else {
+                return null;
+            }
+        } catch (NumberFormatException e) {
+            throw new ServiceException("导入数据格式错误!", "请不要更改下拉选项的值");
+        }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/listen/PartyBuildingMemberExcelListen.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/listen/PartyBuildingMemberExcelListen.java
new file mode 100644
index 0000000..0cf968f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/listen/PartyBuildingMemberExcelListen.java
@@ -0,0 +1,59 @@
+package com.panzhihua.community_backstage.listen;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.exceptions.PartyBuildingMemberException;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.partybuilding.PartyBuildingMemberExcelVO;
+import com.panzhihua.common.service.partybuilding.PartyBuildingService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党员导入监听
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 15:12
+ **/
+@Slf4j
+public class PartyBuildingMemberExcelListen extends AnalysisEventListener<PartyBuildingMemberExcelVO> {
+
+    private static final int BATCH_COUNT = 5000;
+    private PartyBuildingService partyBuildingService;
+    private Long communityId;
+    private List<PartyBuildingMemberExcelVO> list = new ArrayList<>();
+
+    public PartyBuildingMemberExcelListen(PartyBuildingService partyBuildingService,Long communityId) {
+        this.partyBuildingService = partyBuildingService;
+        this.communityId=communityId;
+    }
+
+    @Override
+    public void invoke(PartyBuildingMemberExcelVO partyBuildingMemberExcelVO, AnalysisContext analysisContext) {
+        partyBuildingMemberExcelVO.setCommunityId(communityId);
+        list.add(partyBuildingMemberExcelVO);
+        // 达到BATCH_COUNT了,需要去存储一次数据库,防止数据几万条数据在内存,容易OOM
+        if (list.size() >= BATCH_COUNT) {
+            log.info("excel导入数据【{}】", JSONObject.toJSONString(list));
+            R r = this.partyBuildingService.listSavePartyBuildingMemberExcelVO(list);
+            if (!R.isOk(r)) {
+                throw new PartyBuildingMemberException(r.getMsg());
+            }
+            list.clear(); // 清空list
+        }
+
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
+        log.info("excel导入数据【{}】", JSONObject.toJSONString(list));
+        R r = this.partyBuildingService.listSavePartyBuildingMemberExcelVO(list);// 确保最后遗留的数据保存在数据库中
+        if (!R.isOk(r)) {
+            throw new PartyBuildingMemberException(r.getMsg());
+        }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/model/dto/ExcelExportDto.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/model/dto/ExcelExportDto.java
new file mode 100644
index 0000000..244e706
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/model/dto/ExcelExportDto.java
@@ -0,0 +1,75 @@
+package com.panzhihua.community_backstage.model.dto;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+
+import lombok.Data;
+
+@Data
+public class ExcelExportDto {
+
+    /**
+     * 家庭成员
+     */
+    @ExcelProperty("家庭成员")
+    private String name = "张三";
+    /**
+     * 性别
+     */
+    @ExcelProperty("性别")
+    private String sex = "男";
+    /**
+     * 年龄
+     */
+    @ExcelProperty("年龄")
+    private String age = "25";
+    /**
+     * 是否租住
+     */
+    @ExcelProperty("是否租住")
+    private String isRent = "是";
+    /**
+     * 街路巷
+     */
+    @ExcelProperty("街路巷")
+    private String road = "樱花街";
+    /**
+     * 门牌号
+     */
+    @ExcelProperty("门牌号")
+    private String doorNo = "115";
+    /**
+     * 楼排号
+     */
+    @ExcelProperty("楼排号")
+    private String floor = "15栋";
+    /**
+     * 单元号
+     */
+    @ExcelProperty("单元号")
+    private String unitNo = "10";
+    /**
+     * 户室
+     */
+    @ExcelProperty("户室")
+    private String houseNo = "1001";
+    /**
+     * 民族
+     */
+    @ExcelProperty("民族")
+    private String nation = "汉族";
+    /**
+     * 政治面貌
+     */
+    @ExcelProperty("政治面貌")
+    private String politicalOutlook = "群众";
+    /**
+     * 身份证
+     */
+    @ExcelProperty("身份证")
+    private String cardNo = "513421199508187219";
+    /**
+     * 联系方式
+     */
+    @ExcelProperty("联系方式")
+    private String phone = "13768548521";
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/model/dto/KeyPersonExcelExportDto.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/model/dto/KeyPersonExcelExportDto.java
new file mode 100644
index 0000000..04f4449
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/model/dto/KeyPersonExcelExportDto.java
@@ -0,0 +1,123 @@
+package com.panzhihua.community_backstage.model.dto;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import lombok.Data;
+
+/**
+ * program 攀枝花智慧社区项目 description 特殊人群导出excel模板对象
+ *
+ * @author manailin Date 2021-6-13 15:30
+ **/
+@Data
+public class KeyPersonExcelExportDto {
+
+    /**
+     * 姓名
+     */
+    @ExcelProperty(value = "姓名", index = 2)
+    @Excel(name = "姓名(必填项)", width = 20, isImportField = "true_st")
+    private String name;
+    /**
+     * 性别名称
+     */
+    @ExcelProperty(value = "性别名称", index = 3)
+    @Excel(name = "性别名称(必填项)", width = 10, isImportField = "true_st")
+    private String sexName;
+    /**
+     * 身份证号码
+     */
+    @ExcelProperty(value = "身份证号码", index = 4)
+    @Excel(name = "身份证号码(必填项)", width = 30, isImportField = "true_st")
+    private String cardNo;
+    /**
+     * 联系方式
+     */
+    @ExcelProperty(value = "联系方式", index = 5)
+    @Excel(name = "联系方式(必填项)", width = 30, isImportField = "true_st")
+    private String phone;
+    /**
+     * 民族
+     */
+    @ExcelProperty(value = "民族", index = 6)
+    @Excel(name = "民族(必填项)", width = 20, isImportField = "true_st")
+    private String nation;
+    /**
+     * 户口所在地
+     */
+    @ExcelProperty(value = "户口所在地", index = 7)
+    @Excel(name = "户口所在地(必填项)", width = 30, isImportField = "true_st")
+    private String censusRegister;
+    /**
+     * 居住地址
+     */
+    @ExcelProperty(value = "居住地址", index = 8)
+    @Excel(name = "居住地址(必填项)", width = 30, isImportField = "true_st")
+    private String address;
+    /**
+     * 地址精度纬度信息(逗号隔开)
+     */
+    @ExcelProperty(value = "地址精度纬度信息(逗号隔开)", index = 9)
+    @Excel(name = "地址精度纬度信息(必填项)", width = 30, isImportField = "true_st")
+    private String visiterAddressLatLng;
+    /**
+     * 人员类型1吸毒2严重精神障碍3刑释人员4社区矫正人员
+     */
+    @ExcelProperty(value = "人员类型1吸毒2严重精神障碍3刑释人员4社区矫正人员", index = 10)
+    @Excel(name = "人员类型(必填项)", width = 10, isImportField = "true_st")
+    private Integer visiterType;
+    /**
+     * (法轮功类填写)基本情况
+     */
+    @Excel(name = "(法轮功类填写)基本情况(必填项)", width = 30, isImportField = "true_st")
+    private String basicInfo;
+    /**
+     * 是否有效
+     */
+    @ExcelProperty(value = "是否有效", index = 11)
+    @Excel(name = "是否有效(必填项)1是有效,0是无效", width = 10, isImportField = "true_st")
+    private Boolean invalid;
+    /**
+     * 备注
+     */
+    @ExcelProperty(value = "备注", index = 12)
+    @Excel(name = "备注(必填项)", width = 30, isImportField = "true_st")
+    private String note;
+    /**
+     * 文化程度(取字典表国家编码))
+     */
+    @ExcelProperty(value = "文化程度", index = 13)
+    @Excel(name = "文化程度(必填项)", width = 20, isImportField = "true_st")
+    private String cultureLevel;
+    /**
+     * 经济状态
+     */
+    @ExcelProperty(value = "经济状态", index = 14)
+    @Excel(name = "经济状态(必填项)", width = 20, isImportField = "true_st")
+    private String economicLevel;
+    /**
+     * (精神类人群填写)目前诊断
+     */
+    @ExcelProperty(value = "目前诊断", index = 18)
+    @Excel(name = "目前诊断(必填项)", width = 30, isImportField = "true_st")
+    private String diagnose;
+    /**
+     * (精神类人群填写)监护人名称
+     */
+    @ExcelProperty(value = "监护人名称", index = 20)
+    @Excel(name = "监护人名称(必填项)", width = 30, isImportField = "true_st")
+    private String guardian;
+    /**
+     * (精神类人群填写)监护人电话
+     */
+    @ExcelProperty(value = "监护人电话", index = 21)
+    @Excel(name = "监护人电话(必填项)", width = 30, isImportField = "true_st")
+    private String guardianPhone;
+    /**
+     * (精神类人群填写)监护人关系
+     */
+    @ExcelProperty(value = "监护人关系", index = 22)
+    @Excel(name = "监护人关系(必填项)", width = 20, isImportField = "true_st")
+    private String guardianRelation;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/model/dto/PartyBuildingMemberDTO.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/model/dto/PartyBuildingMemberDTO.java
new file mode 100644
index 0000000..33af80f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/model/dto/PartyBuildingMemberDTO.java
@@ -0,0 +1,26 @@
+package com.panzhihua.community_backstage.model.dto;
+
+import javax.validation.constraints.NotBlank;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("党员审核")
+public class PartyBuildingMemberDTO {
+
+    @ApiModelProperty(value = "id", required = true)
+    private Long id;
+
+    @ApiModelProperty(value = "操作类型 1通过 0 驳回", required = true, allowableValues = "0 或者 1")
+    @NotBlank(message = "操作类型不能为空")
+    private Integer type;
+
+    @ApiModelProperty(value = "身份证号", required = true)
+    private String idCard;
+
+    @ApiModelProperty(value = "驳回原因")
+    private String refuseReason;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/model/vos/LoginBody.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/model/vos/LoginBody.java
new file mode 100644
index 0000000..390a748
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/model/vos/LoginBody.java
@@ -0,0 +1,25 @@
+package com.panzhihua.community_backstage.model.vos;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 登录
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-24 10:54
+ **/
+@Data
+@ApiModel(value = "社区管理后台登录")
+@AllArgsConstructor
+@NoArgsConstructor
+public class LoginBody {
+
+    @ApiModelProperty(value = "登录账户")
+    private String account;
+    @ApiModelProperty(value = "登录密码")
+    private String password;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/model/vos/PutmessageBody.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/model/vos/PutmessageBody.java
new file mode 100644
index 0000000..e832833
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/model/vos/PutmessageBody.java
@@ -0,0 +1,55 @@
+package com.panzhihua.community_backstage.model.vos;
+
+import io.swagger.annotations.ApiModel;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@ApiModel(value = "手环参数类")
+@AllArgsConstructor
+@NoArgsConstructor
+public class PutmessageBody {
+
+    /**
+     * 设备类型 智能手表,智能手环
+     */
+    private String deviceType;
+    /**
+     * 设备型号 W11,W6,W5
+     */
+    private String deviceModel;
+    /**
+     * 设备 IMEI
+     */
+    private String deviceID;
+    /**
+     * 设备手机号码
+     */
+    private String mobile;
+    /**
+     * 101:血压数据
+     * 107:体温数据
+     * 110:计步数据
+     * 112:心率数据
+     * 201:SOS 呼叫请求
+     * 202:定位数据
+     * 301:穿戴设备电量
+     * 302:设备在线与离线
+     */
+    private String dataType;
+    /**
+     * 数据内容
+     */
+    private PutmessageDataInfo dataInfo;
+
+    @Override
+    public String toString() {
+        return "PutmessageBody{" +"deviceType='" + deviceType + ", deviceModel='" + deviceModel  +
+                ", deviceID='" + deviceID  +
+                ", mobile='" + mobile  +
+                ", dataType='" + dataType  +
+                ", dataInfo=" + dataInfo +
+                '}';
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/model/vos/PutmessageDataInfo.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/model/vos/PutmessageDataInfo.java
new file mode 100644
index 0000000..44d1060
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/model/vos/PutmessageDataInfo.java
@@ -0,0 +1,93 @@
+package com.panzhihua.community_backstage.model.vos;
+
+import io.swagger.annotations.ApiModel;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@ApiModel(value = "手环子类")
+@AllArgsConstructor
+@NoArgsConstructor
+public class PutmessageDataInfo
+{
+    /**
+     * 数据 id
+     */
+    private String id;//":600911,
+    private String time;//":"2020-12-23 12:00:00.210"
+
+
+    /**
+     * 血压测量新数据
+     */
+    // pm 心率
+    private String pm;
+    // 高压(收缩压)
+    private String pcp;
+    //低压(舒张压)
+    private String pdp;
+
+
+    /**
+     * 温度测量新数据
+     */
+    //温度
+    private String etg;
+
+
+    /**
+     * 运动测量新数据
+     * @return
+     */
+    //行走步数
+    private String step;
+
+
+    /**
+     * SOS 请求的示例数据 定位数据的示例
+     *
+     * @return
+     */
+    //经度
+    private String lng;//":"113.929906",
+    //纬度
+    private String lat;//":"22.52887",
+    //定位方式      “0”:GPS “1”:LBS “2”:WIFI
+    private String mode;//":"1",
+
+
+    /**
+     * 设备电量的示例数据
+     * @return
+     */
+    //电量 取值 0-100,例如:取值“20” 表示电量 20%
+    private String elec;//":"1",
+
+
+    /**
+     * 设备在线与离线的示例数据
+     * @return
+     */
+    //“1”:设备在线  “0”:设备离线
+    private String onoff;//":"1",
+
+
+    @Override
+    public String toString() {
+        return "PutmessageDataInfo{" +
+                "id='" + id +
+                ", time='" + time +
+                ", pm='" + pm +
+                ", pcp='" + pcp +
+                ", pdp='" + pdp +
+                ", etg='" + etg +
+                ", step='" + step +
+                ", lng='" + lng +
+                ", lat='" + lat +
+                ", mode='" + mode +
+                ", elec='" + elec +
+                ", onoff='" + onoff +
+                '}';
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/util/BaseUtils.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/util/BaseUtils.java
new file mode 100644
index 0000000..dc66555
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/util/BaseUtils.java
@@ -0,0 +1,24 @@
+package com.panzhihua.community_backstage.util;
+
+
+import org.bouncycastle.util.encoders.Base64;
+
+import java.io.*;
+
+/**
+ * @author zzj
+ */
+public class BaseUtils {
+
+
+    public static InputStream base64StrToInputStream(String base64string) {
+        ByteArrayInputStream stream = null;
+        try {
+            byte[] bytes = Base64.decode(base64string);
+            stream = new ByteArrayInputStream(bytes);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return stream;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/util/ExcelUtils.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/util/ExcelUtils.java
new file mode 100644
index 0000000..02565a7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/util/ExcelUtils.java
@@ -0,0 +1,84 @@
+package com.panzhihua.community_backstage.util;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.support.ExcelTypeEnum;
+import com.google.api.client.util.IOUtils;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletResponse;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.util.List;
+
+@Slf4j
+public class ExcelUtils {
+    /**
+     * 导出Excel(07版.xlsx)到指定路径下
+     *
+     * @param path      路径
+     * @param excelName Excel名称
+     * @param sheetName sheet页名称
+     * @param clazz     Excel要转换的类型
+     * @param data      要导出的数据
+     */
+    public static void export2File(String path, String excelName, String sheetName, Class clazz, List data) {
+        String fileName = path.concat(excelName).concat(ExcelTypeEnum.XLSX.getValue());
+        EasyExcel.write(fileName, clazz).sheet(sheetName).doWrite(data);
+    }
+
+    /**
+     * 导出Excel(07版.xlsx)到web
+     *
+     * @param response  响应
+     * @param excelName Excel名称
+     * @param sheetName sheet页名称
+     * @param clazz     Excel要转换的类型
+     * @param data      要导出的数据
+     * @throws Exception
+     */
+    public static void export2Web(HttpServletResponse response, String excelName, String sheetName, Class clazz, List data) throws Exception {
+        response.setContentType("application/vnd.ms-excel");
+        response.setCharacterEncoding("utf-8");
+        // 这里URLEncoder.encode可以防止中文乱码
+        excelName = URLEncoder.encode(excelName, "UTF-8");
+        response.setHeader("Content-disposition", "attachment;filename=" + excelName + ExcelTypeEnum.XLSX.getValue());
+        EasyExcel.write(response.getOutputStream(), clazz).sheet(sheetName).doWrite(data);
+    }
+
+    /**
+     * 将指定位置指定名称的Excel导出到web
+     *
+     * @param response  响应
+     * @param path      文件路径
+     * @param excelName 文件名称
+     * @return
+     * @throws UnsupportedEncodingException
+     */
+    public static String export2Web4File(HttpServletResponse response, String path, String excelName) throws UnsupportedEncodingException {
+        File file = new File(path.concat(excelName).concat(ExcelTypeEnum.XLSX.getValue()));
+        if (!file.exists()) {
+            return "文件不存在!";
+        }
+
+        response.setContentType("application/vnd.ms-excel");
+        response.setCharacterEncoding("utf-8");
+        // 这里URLEncoder.encode可以防止中文乱码
+        excelName = URLEncoder.encode(excelName, "UTF-8");
+        response.setHeader("Content-disposition", "attachment;filename=" + excelName + ExcelTypeEnum.XLSX.getValue());
+
+        try (
+                FileInputStream in = new FileInputStream(file);
+                ServletOutputStream out = response.getOutputStream();
+        ) {
+            IOUtils.copy(in, out);
+            return "导出成功!";
+        } catch (Exception e) {
+            log.error("导出文件异常:", e);
+        }
+
+        return "导出失败!";
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/util/HtmlToPdfUtil.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/util/HtmlToPdfUtil.java
new file mode 100644
index 0000000..8f31adf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/util/HtmlToPdfUtil.java
@@ -0,0 +1,32 @@
+package com.panzhihua.community_backstage.util;
+
+import com.lowagie.text.DocumentException;
+import com.lowagie.text.pdf.BaseFont;
+import org.springframework.util.ResourceUtils;
+import org.xhtmlrenderer.pdf.ITextFontResolver;
+import org.xhtmlrenderer.pdf.ITextRenderer;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.net.URLDecoder;
+
+public class HtmlToPdfUtil {
+    public static void topdf(String content,String path) throws DocumentException, FileNotFoundException {
+        ITextRenderer renderer = new ITextRenderer();
+        ITextFontResolver fontResolver = renderer.getFontResolver();
+        try {
+            //设置字体,否则不支持中文,在html中使用字体,html{ font-family: SimSun;}
+            fontResolver.addFont("templates/simsun.ttc", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
+        } catch (IOException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+        renderer.getSharedContext().setReplacedElementFactory(new PdfBase64ImgReplacedElementFactory());
+        renderer.getSharedContext().getTextRenderer().setSmoothingThreshold(0);
+        renderer.setDocumentFromString(content);
+        renderer.layout();
+        renderer.createPDF(new FileOutputStream(new File(path)));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/util/MyAESUtil.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/util/MyAESUtil.java
new file mode 100644
index 0000000..a31afe5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/util/MyAESUtil.java
@@ -0,0 +1,61 @@
+package com.panzhihua.community_backstage.util;
+
+import sun.misc.BASE64Decoder;
+import sun.misc.BASE64Encoder;
+
+import javax.crypto.Cipher;
+import javax.crypto.spec.SecretKeySpec;
+
+public class MyAESUtil {
+
+    // 加密
+    public static String Encrypt(String sSrc, String sKey) throws Exception {
+        if (sKey == null) {
+            System.out.print("Key为空null");
+            return null;
+        }
+        // 判断Key是否为16位
+        if (sKey.length() != 16) {
+            System.out.print("Key长度不是16位");
+            return null;
+        }
+        byte[] raw = sKey.getBytes("utf-8");
+        SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
+        Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");//"算法/模式/补码方式"
+        cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
+        byte[] encrypted = cipher.doFinal(sSrc.getBytes("utf-8"));
+        return new BASE64Encoder().encode(encrypted);//此处使用BASE64做转码功能,同时能起到2次加密的作用。
+    }
+
+    // 解密
+    public static String Decrypt(String sSrc, String sKey) throws Exception {
+        try {
+            // 判断Key是否正确
+            if (sKey == null) {
+                System.out.print("Key为空null");
+                return null;
+            }
+            // 判断Key是否为16位
+            if (sKey.length() != 16) {
+                System.out.print("Key长度不是16位");
+                return null;
+            }
+            byte[] raw = sKey.getBytes("utf-8");
+            SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
+            Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
+            cipher.init(Cipher.DECRYPT_MODE, skeySpec);
+            byte[] encrypted1 = new BASE64Decoder().decodeBuffer(sSrc);//先用base64解密
+            try {
+                byte[] original = cipher.doFinal(encrypted1);
+                String originalString = new String(original,"utf-8");
+                return originalString;
+            } catch (Exception e) {
+                System.out.println(e.toString());
+                return null;
+            }
+        } catch (Exception ex) {
+            System.out.println(ex.toString());
+            return null;
+        }
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/util/PdfBase64ImgReplacedElementFactory.java b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/util/PdfBase64ImgReplacedElementFactory.java
new file mode 100644
index 0000000..ac80680
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/java/com/panzhihua/community_backstage/util/PdfBase64ImgReplacedElementFactory.java
@@ -0,0 +1,108 @@
+package com.panzhihua.community_backstage.util;
+
+import com.lowagie.text.BadElementException;
+import com.lowagie.text.Image;
+import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;
+import org.apache.batik.transcoder.TranscoderException;
+import org.apache.batik.transcoder.TranscoderInput;
+import org.apache.batik.transcoder.TranscoderOutput;
+import org.apache.batik.transcoder.image.PNGTranscoder;
+import org.w3c.dom.Element;
+import org.xhtmlrenderer.extend.FSImage;
+import org.xhtmlrenderer.extend.ReplacedElement;
+import org.xhtmlrenderer.extend.ReplacedElementFactory;
+import org.xhtmlrenderer.extend.UserAgentCallback;
+import org.xhtmlrenderer.layout.LayoutContext;
+import org.xhtmlrenderer.pdf.ITextFSImage;
+import org.xhtmlrenderer.pdf.ITextImageElement;
+import org.xhtmlrenderer.render.BlockBox;
+import org.xhtmlrenderer.simple.extend.FormSubmissionListener;
+
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+
+/**
+ * @author zzj
+ * 图片转换工具
+ */
+public class PdfBase64ImgReplacedElementFactory implements ReplacedElementFactory {
+
+    /**
+     * * 实现createReplacedElement 替换html中的Img标签
+     * *
+     * * @param c 上下文
+     * * @param box 盒子
+     * * @param uac 回调
+     * * @param cssWidth css宽
+     * * @param cssHeight css高
+     * * @return ReplacedElement
+     */
+    @Override
+    public ReplacedElement createReplacedElement(LayoutContext c, BlockBox box, UserAgentCallback uac, int cssWidth, int cssHeight) {
+        // 遍历所有标签
+        Element e = box.getElement();
+        if (e == null) {
+            return null;
+        }
+        String nodeName = e.getNodeName();
+        // 找到所有img标签
+        if (nodeName.equals("img")) {
+            String attribute = e.getAttribute("src");
+            FSImage fsImage;
+            try {
+                // 生成itext图像
+                fsImage = buildImage(attribute, uac);
+            } catch (BadElementException e1) {
+                fsImage = null;
+            } catch (IOException e1) {
+                fsImage = null;
+            }
+            if (fsImage != null) {
+                // 对图像进行缩放
+                if (cssWidth != -1 || cssHeight != -1) {
+                    fsImage.scale(cssWidth, cssHeight);
+                }
+                return new ITextImageElement(fsImage);
+            }
+        }
+        return null;
+    }
+
+    /**
+     * 编解码base64并生成itext图像
+     */
+    protected FSImage buildImage(String srcAttr, UserAgentCallback uac) throws IOException,
+            BadElementException {
+        FSImage fiImg = null;
+        //图片的src要为src="data:image/jpg;base64,{图片的base64code}"这种base64格式
+        if (srcAttr.toLowerCase().startsWith("data:image/")) {
+            String base64Code = srcAttr.substring(srcAttr.indexOf("base64,") + "base64,".length(), srcAttr.length());
+            PNGTranscoder t = new PNGTranscoder();
+            TranscoderInput input = new TranscoderInput(BaseUtils.base64StrToInputStream(base64Code));
+            ByteArrayOutputStream out = new ByteArrayOutputStream();
+            TranscoderOutput output = new TranscoderOutput(out);
+            try {
+                t.transcode(input, output);
+            } catch (TranscoderException e) {
+                e.printStackTrace();
+            }
+            out.flush();
+            fiImg = new ITextFSImage(Image.getInstance(out.toByteArray()));
+        } else {
+            fiImg = uac.getImageResource(srcAttr).getImage();
+        }
+        return fiImg;
+    }
+
+    @Override
+    public void reset() {
+    }
+
+    @Override
+    public void remove(Element arg0) {
+    }
+
+    @Override
+    public void setFormSubmissionListener(FormSubmissionListener arg0) {
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/resources/bootstrap.yml b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..230afdc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/resources/bootstrap.yml
@@ -0,0 +1,41 @@
+spring:
+  application:
+    name: huacheng-communitybackstage
+  cloud:
+    config:
+      discovery:
+        enabled: true
+        service-id: huacheng-config  # 注册中心的服务名
+      profile: ${ENV:prod}  # 指定配置文件的环境
+      uri: http://${CONFIG_URL:localhost}:6193/
+  profiles:
+    active: ${ENV:prod}
+  servlet:
+    multipart:
+      max-file-size: 200MB
+      max-request-size: 200MB
+
+eureka:
+  client:
+    service-url:
+      defaultZone: http://${EUREKA_URL:localhost}:8192/eureka
+
+management:
+  endpoints:
+    web:
+      exposure:
+        include: '*'
+
+  endpoint:
+    health:
+      show-details: always
+
+  metrics:
+    tags:
+      application: huacheng-communitybackstage
+
+springfox:
+  documentation:
+    swagger-ui:
+      enabled: false
+    auto-startup: false
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/resources/logback-spring.xml b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..55f0540
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/resources/logback-spring.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration debug="false">
+    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
+    <springProfile name="dev">
+        <property name="LOG_HOME" value="F:/log" />
+    </springProfile>
+       <springProfile name="test">
+        <property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    </springProfile>
+<property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    <!-- 控制台输出 -->
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+    </appender>
+    <!-- 按照每天生成日志文件 -->
+    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!--日志文件输出的文件名-->
+            <FileNamePattern>${LOG_HOME}/huachengcommunity_backstage.log.%d{yyyy-MM-dd}.log</FileNamePattern>
+            <!--日志文件保留天数-->
+            <MaxHistory>30</MaxHistory>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+        <!--日志文件最大的大小-->
+        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <MaxFileSize>10MB</MaxFileSize>
+        </triggeringPolicy>
+    </appender>
+
+    <!--myibatis log configure-->
+    <logger name="com.apache.ibatis" level="TRACE"/>
+    <logger name="java.sql.Connection" level="DEBUG"/>
+    <logger name="java.sql.Statement" level="DEBUG"/>
+    <logger name="java.sql.PreparedStatement" level="DEBUG"/>
+    <logger name="com.panzhihua.community_backstage" level="DEBUG"/>
+
+    <!-- 日志输出级别 -->
+    <root level="DEBUG">
+        <appender-ref ref="STDOUT" />
+    </root>
+    <root level="INFO">
+        <appender-ref ref="STDOUT" />
+        <appender-ref ref="FILE" />
+    </root>
+</configuration>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/resources/templates/forestFire.html b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/resources/templates/forestFire.html
new file mode 100644
index 0000000..b5e0172
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/resources/templates/forestFire.html
@@ -0,0 +1,68 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
+
+<head>
+    <meta charset="UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <title>森林防火承诺书</title>
+    <style>
+        @page {
+            size: 210mm 297mm;
+            /*设置纸张大小:A4(210mm 297mm)、A3(297mm 420mm) 横向则反过来*/
+            margin: 0.25in;
+            padding: 1em;
+
+            @top-center {
+                content: element(header)
+            }
+        ;
+        }
+    </style>
+    <style type="text/css">
+        /* reset */
+        * {
+            padding: 0;
+            margin: 0;
+            font-family: 'SimSun';
+            overflow: hidden;
+        }
+    </style>
+</head>
+
+<body>
+<div style="height: 1044px;" th:each="reservePdfExportVO : ${reservePdfExportVOS}">
+    <div style="text-align: center;font-size: 30px;">森林防火承诺书</div>
+    <div style="display: flex;align-items: center;align-items: center;">
+        <div style="font-size: 22px;padding: 30px;">
+            <div style="text-indent:2em;line-height: 1.4;">保护森林资源、维护生态安全,是每个公民应尽的义务。为保证在我市林区范围内不发生森林火灾,我自愿做出如下承诺:
+            </div>
+            <div style="text-indent:2em;line-height: 1.4;">一、严格遵守森林防火法律法规及《禁火令》规定,文明祭祀,在祭祀过程不使用明火、不野外用火。</div>
+            <div style="text-indent:2em;line-height: 1.4;">二、对家人和朋友进行防火知识宣传,提高大家防火意识。</div>
+            <div style="text-indent:2em;line-height: 1.4;">
+                三、保证做到“五负责”:即个人失火个人负责,学生失火家长负责,小孩失火大人负责,多人失火为首者负责,特殊人群(精神病人、痴呆等人群)失火监护人负责。</div>
+            <div style="text-indent:2em;line-height: 1.4;">四、不携带任何火种进入林区,不在林区吸烟、烧烤、野炊。擅自在林区内野外用火的,接受200—3000元的罚款。
+            </div>
+            <div style="text-indent:2em;line-height: 1.4;">
+                五、在森林防火区内个人拒绝森林防火检查或者接到森林火灾隐患整改通知书逾期不消除火灾隐患的,接受200元—2000元以下罚款。</div>
+            <div style="text-indent:2em;line-height: 1.4;">六、造成森林火灾构成犯罪的,除接受赔偿损失、补种树木、罚款等行政处罚外,还要接受司法机关依法追究刑事责任。</div>
+            <div style="text-indent:2em;line-height: 1.4;">七、一旦发现森林山火,及时报告防火办、社区或街办。</div>
+            <div style="text-indent:2em;line-height: 1.4;">森林防火电话:12119        5760171</div>
+            <div style="text-indent:2em;line-height: 1.4;">社区电话:<span th:text="${reservePdfExportVO.communityPhone}"></span></div>
+            <div style="padding-left: 300px;">
+                <div style="width: 300px;">
+                    家庭住址:<span th:text="${reservePdfExportVO.address}"></span></div>
+                <div style="width: 300px;">承 诺 人:
+                    <img style="width: 250px;height: 100px;" th:src="@{${reservePdfExportVO.sign}}" />
+                </div>
+                <div style="width: 300px;" >联系电话:<span th:text="${reservePdfExportVO.phone}"></span></div>
+                <div style="text-align: right;">
+                    <span style="margin-right: 100px;" th:text="${reservePdfExportVO.time}"></span>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/resources/templates/gasSafety.html b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/resources/templates/gasSafety.html
new file mode 100644
index 0000000..fb3b02b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/resources/templates/gasSafety.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org">
+
+<head>
+    <meta charset="UTF-8" />
+    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <title>关于燃气安全使用的温馨提示</title>
+    <style>
+        @page {
+            size: 210mm 297mm;
+            /*设置纸张大小:A4(210mm 297mm)、A3(297mm 420mm) 横向则反过来*/
+            margin: 0.25in;
+            padding: 1em;
+
+            @top-center {
+                content: element(header)
+            }
+        ;
+        }
+    </style>
+    <style type="text/css">
+        /* reset */
+        * {
+            padding: 0;
+            margin: 0;
+            font-family: 'SimSun';
+            overflow: hidden;
+        }
+    </style>
+
+</head>
+
+<body>
+<div style="padding-top: 0px; height:1045px; " th:each="reservePdfExportVO : ${reservePdfExportVOS}">
+    <div style="text-align: center;font-size: 30px;">关于燃气安全使用的温馨提示</div>
+    <div style="display: flex;align-items: center;align-items: center;">
+        <div style="font-size: 20px;padding: 30px;">
+            <div>各位燃气用户:</div>
+            <div style="text-indent:2em;line-height: 1.4;">为了您和社会公众的生命财产安全,在此温馨提示您要关注燃气安全:</div>
+            <div style="text-indent:2em;line-height: 1.4;">
+                1.应选购符合国家标准、带有安全熄火保护装置的燃气灶具,使用时人不能远离,使用后应关好灶具开关、灶前阀,防止泄漏。燃气具过期应及时更换。切勿使用节能罩。</div>
+            <div style="text-indent:2em;line-height: 1.4;">
+                2.燃气胶管应每18个月更换一次,要经常检查是否存在老化、开裂、鼠咬及连接处是否用卡子固定,建议选用使用寿命长的金属波纹管。</div>
+            <div style="text-indent:2em;line-height: 1.4;">3.应根据气源类型选用并正确安装燃气报警器,报警器宜选择靠近燃气表或燃气管道接点的位置安放。</div>
+            <div style="text-indent:2em;line-height: 1.4;">4.燃气用户不得擅自安装、改装、拆除燃气管道、阀门等户内燃气设施和燃气计量装置。</div>
+            <div style="text-indent:2em;line-height: 1.4;">5.不可将设有燃气管道、燃气具的房间改成卧室、客厅和卫生间,长时间用气要注意通风换气。</div>
+            <div style="text-indent:2em;line-height: 1.4;">6.发现异味要立即开窗,远离现场拨打服务电话报修。切勿触碰各类电器开关或携带火种进入室内。</div>
+            <div style="text-indent:2em;line-height: 1.4;">
+                7.燃气热水器应安装在厨房或阳台,严禁安装在卫生间、浴室、餐厅、客厅、卧室等其他空间,并规范安装烟道。严禁选用直排式热水器。</div>
+            <div style="text-indent:2em;line-height: 1.4;">
+                燃气安全关乎千家万户,居家安全,从燃气安全开始!为了您和家人的幸福,请您正确使用燃气,及时排查隐患,共同营造幸福家园。
+            </div>
+            <div style="margin-top: 110px;text-align: right;">
+                地址:<span style="margin-right: 100px;" th:text="${reservePdfExportVO.address}"></span>
+            </div>
+            <div style="margin-top: 30px;margin-left: 450px;"><div>被提醒人:</div><img style="width: 250px;"
+                                                                                   th:src="@{${reservePdfExportVO.sign}}" /></div>
+            <div style="margin-top: 30px;text-align: right;">
+                <span style="margin-right: 100px;" th:text="${reservePdfExportVO.time}"></span>
+            </div>
+        </div>
+    </div>
+</div>
+</body>
+
+</html>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/resources/templates/simsun.ttc b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/resources/templates/simsun.ttc
new file mode 100644
index 0000000..40e9693
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/community_backstage/src/main/resources/templates/simsun.ttc
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/config_server/.gitignore b/springcloud_k8s_panzhihuazhihuishequ/config_server/.gitignore
new file mode 100644
index 0000000..549e00a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/config_server/.gitignore
@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
diff --git a/springcloud_k8s_panzhihuazhihuishequ/config_server/.mvn/wrapper/MavenWrapperDownloader.java b/springcloud_k8s_panzhihuazhihuishequ/config_server/.mvn/wrapper/MavenWrapperDownloader.java
new file mode 100644
index 0000000..a45eb6b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/config_server/.mvn/wrapper/MavenWrapperDownloader.java
@@ -0,0 +1,118 @@
+/*
+ * Copyright 2007-present the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.net.*;
+import java.io.*;
+import java.nio.channels.*;
+import java.util.Properties;
+
+public class MavenWrapperDownloader {
+
+    private static final String WRAPPER_VERSION = "0.5.6";
+    /**
+     * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
+     */
+    private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
+            + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
+
+    /**
+     * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
+     * use instead of the default one.
+     */
+    private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
+            ".mvn/wrapper/maven-wrapper.properties";
+
+    /**
+     * Path where the maven-wrapper.jar will be saved to.
+     */
+    private static final String MAVEN_WRAPPER_JAR_PATH =
+            ".mvn/wrapper/maven-wrapper.jar";
+
+    /**
+     * Name of the property which should be used to override the default download url for the wrapper.
+     */
+    private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
+
+    public static void main(String args[]) {
+        System.out.println("- Downloader started");
+        File baseDirectory = new File(args[0]);
+        System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
+
+        // If the maven-wrapper.properties exists, read it and check if it contains a custom
+        // wrapperUrl parameter.
+        File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
+        String url = DEFAULT_DOWNLOAD_URL;
+        if (mavenWrapperPropertyFile.exists()) {
+            FileInputStream mavenWrapperPropertyFileInputStream = null;
+            try {
+                mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
+                Properties mavenWrapperProperties = new Properties();
+                mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
+                url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
+            } catch (IOException e) {
+                System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
+            } finally {
+                try {
+                    if (mavenWrapperPropertyFileInputStream != null) {
+                        mavenWrapperPropertyFileInputStream.close();
+                    }
+                } catch (IOException e) {
+                    // Ignore ...
+                }
+            }
+        }
+        System.out.println("- Downloading from: " + url);
+
+        File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
+        if (!outputFile.getParentFile().exists()) {
+            if (!outputFile.getParentFile().mkdirs()) {
+                System.out.println(
+                        "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
+            }
+        }
+        System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
+        try {
+            downloadFileFromURL(url, outputFile);
+            System.out.println("Done");
+            System.exit(0);
+        } catch (Throwable e) {
+            System.out.println("- Error downloading");
+            e.printStackTrace();
+            System.exit(1);
+        }
+    }
+
+    private static void downloadFileFromURL(String urlString, File destination) throws Exception {
+        if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
+            String username = System.getenv("MVNW_USERNAME");
+            char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
+            Authenticator.setDefault(new Authenticator() {
+                @Override
+                protected PasswordAuthentication getPasswordAuthentication() {
+                    return new PasswordAuthentication(username, password);
+                }
+            });
+        }
+        URL website = new URL(urlString);
+        ReadableByteChannel rbc;
+        rbc = Channels.newChannel(website.openStream());
+        FileOutputStream fos = new FileOutputStream(destination);
+        fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
+        fos.close();
+        rbc.close();
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/config_server/.mvn/wrapper/maven-wrapper.jar b/springcloud_k8s_panzhihuazhihuishequ/config_server/.mvn/wrapper/maven-wrapper.jar
new file mode 100644
index 0000000..2cc7d4a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/config_server/.mvn/wrapper/maven-wrapper.jar
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/config_server/.mvn/wrapper/maven-wrapper.properties b/springcloud_k8s_panzhihuazhihuishequ/config_server/.mvn/wrapper/maven-wrapper.properties
new file mode 100644
index 0000000..642d572
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/config_server/.mvn/wrapper/maven-wrapper.properties
@@ -0,0 +1,2 @@
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip
+wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar
diff --git a/springcloud_k8s_panzhihuazhihuishequ/config_server/mvnw b/springcloud_k8s_panzhihuazhihuishequ/config_server/mvnw
new file mode 100644
index 0000000..a16b543
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/config_server/mvnw
@@ -0,0 +1,310 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#    https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Maven Start Up Batch script
+#
+# Required ENV vars:
+# ------------------
+#   JAVA_HOME - location of a JDK home dir
+#
+# Optional ENV vars
+# -----------------
+#   M2_HOME - location of maven2's installed home dir
+#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
+#     e.g. to debug Maven itself, use
+#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+# ----------------------------------------------------------------------------
+
+if [ -z "$MAVEN_SKIP_RC" ] ; then
+
+  if [ -f /etc/mavenrc ] ; then
+    . /etc/mavenrc
+  fi
+
+  if [ -f "$HOME/.mavenrc" ] ; then
+    . "$HOME/.mavenrc"
+  fi
+
+fi
+
+# OS specific support.  $var _must_ be set to either true or false.
+cygwin=false;
+darwin=false;
+mingw=false
+case "`uname`" in
+  CYGWIN*) cygwin=true ;;
+  MINGW*) mingw=true;;
+  Darwin*) darwin=true
+    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
+    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
+    if [ -z "$JAVA_HOME" ]; then
+      if [ -x "/usr/libexec/java_home" ]; then
+        export JAVA_HOME="`/usr/libexec/java_home`"
+      else
+        export JAVA_HOME="/Library/Java/Home"
+      fi
+    fi
+    ;;
+esac
+
+if [ -z "$JAVA_HOME" ] ; then
+  if [ -r /etc/gentoo-release ] ; then
+    JAVA_HOME=`java-config --jre-home`
+  fi
+fi
+
+if [ -z "$M2_HOME" ] ; then
+  ## resolve links - $0 may be a link to maven's home
+  PRG="$0"
+
+  # need this for relative symlinks
+  while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+      PRG="$link"
+    else
+      PRG="`dirname "$PRG"`/$link"
+    fi
+  done
+
+  saveddir=`pwd`
+
+  M2_HOME=`dirname "$PRG"`/..
+
+  # make it fully qualified
+  M2_HOME=`cd "$M2_HOME" && pwd`
+
+  cd "$saveddir"
+  # echo Using m2 at $M2_HOME
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --unix "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+fi
+
+# For Mingw, ensure paths are in UNIX format before anything is touched
+if $mingw ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME="`(cd "$M2_HOME"; pwd)`"
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
+fi
+
+if [ -z "$JAVA_HOME" ]; then
+  javaExecutable="`which javac`"
+  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
+    # readlink(1) is not available as standard on Solaris 10.
+    readLink=`which readlink`
+    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
+      if $darwin ; then
+        javaHome="`dirname \"$javaExecutable\"`"
+        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
+      else
+        javaExecutable="`readlink -f \"$javaExecutable\"`"
+      fi
+      javaHome="`dirname \"$javaExecutable\"`"
+      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
+      JAVA_HOME="$javaHome"
+      export JAVA_HOME
+    fi
+  fi
+fi
+
+if [ -z "$JAVACMD" ] ; then
+  if [ -n "$JAVA_HOME"  ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+      # IBM's JDK on AIX uses strange locations for the executables
+      JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+      JAVACMD="$JAVA_HOME/bin/java"
+    fi
+  else
+    JAVACMD="`which java`"
+  fi
+fi
+
+if [ ! -x "$JAVACMD" ] ; then
+  echo "Error: JAVA_HOME is not defined correctly." >&2
+  echo "  We cannot execute $JAVACMD" >&2
+  exit 1
+fi
+
+if [ -z "$JAVA_HOME" ] ; then
+  echo "Warning: JAVA_HOME environment variable is not set."
+fi
+
+CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
+
+# traverses directory structure from process work directory to filesystem root
+# first directory with .mvn subdirectory is considered project base directory
+find_maven_basedir() {
+
+  if [ -z "$1" ]
+  then
+    echo "Path not specified to find_maven_basedir"
+    return 1
+  fi
+
+  basedir="$1"
+  wdir="$1"
+  while [ "$wdir" != '/' ] ; do
+    if [ -d "$wdir"/.mvn ] ; then
+      basedir=$wdir
+      break
+    fi
+    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
+    if [ -d "${wdir}" ]; then
+      wdir=`cd "$wdir/.."; pwd`
+    fi
+    # end of workaround
+  done
+  echo "${basedir}"
+}
+
+# concatenates all lines of a file
+concat_lines() {
+  if [ -f "$1" ]; then
+    echo "$(tr -s '\n' ' ' < "$1")"
+  fi
+}
+
+BASE_DIR=`find_maven_basedir "$(pwd)"`
+if [ -z "$BASE_DIR" ]; then
+  exit 1;
+fi
+
+##########################################################################################
+# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+# This allows using the maven wrapper in projects that prohibit checking in binary data.
+##########################################################################################
+if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Found .mvn/wrapper/maven-wrapper.jar"
+    fi
+else
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
+    fi
+    if [ -n "$MVNW_REPOURL" ]; then
+      jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    else
+      jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    fi
+    while IFS="=" read key value; do
+      case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
+      esac
+    done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Downloading from: $jarUrl"
+    fi
+    wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
+    if $cygwin; then
+      wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
+    fi
+
+    if command -v wget > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found wget ... using wget"
+        fi
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+            wget "$jarUrl" -O "$wrapperJarPath"
+        else
+            wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
+        fi
+    elif command -v curl > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found curl ... using curl"
+        fi
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+            curl -o "$wrapperJarPath" "$jarUrl" -f
+        else
+            curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
+        fi
+
+    else
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Falling back to using Java to download"
+        fi
+        javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
+        # For Cygwin, switch paths to Windows format before running javac
+        if $cygwin; then
+          javaClass=`cygpath --path --windows "$javaClass"`
+        fi
+        if [ -e "$javaClass" ]; then
+            if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Compiling MavenWrapperDownloader.java ..."
+                fi
+                # Compiling the Java class
+                ("$JAVA_HOME/bin/javac" "$javaClass")
+            fi
+            if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                # Running the downloader
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Running MavenWrapperDownloader.java ..."
+                fi
+                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
+            fi
+        fi
+    fi
+fi
+##########################################################################################
+# End of extension
+##########################################################################################
+
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
+if [ "$MVNW_VERBOSE" = true ]; then
+  echo $MAVEN_PROJECTBASEDIR
+fi
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --path --windows "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
+    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
+fi
+
+# Provide a "standardized" way to retrieve the CLI args that will
+# work with both Windows and non-Windows executions.
+MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
+export MAVEN_CMD_LINE_ARGS
+
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+exec "$JAVACMD" \
+  $MAVEN_OPTS \
+  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
+  "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
+  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/springcloud_k8s_panzhihuazhihuishequ/config_server/mvnw.cmd b/springcloud_k8s_panzhihuazhihuishequ/config_server/mvnw.cmd
new file mode 100644
index 0000000..c8d4337
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/config_server/mvnw.cmd
@@ -0,0 +1,182 @@
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements.  See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership.  The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License.  You may obtain a copy of the License at
+@REM
+@REM    https://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied.  See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Maven Start Up Batch script
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM M2_HOME - location of maven2's installed home dir
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
+@REM     e.g. to debug Maven itself, use
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+@REM ----------------------------------------------------------------------------
+
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
+@echo off
+@REM set title of command window
+title %0
+@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
+@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
+
+@REM set %HOME% to equivalent of $HOME
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
+
+@REM Execute a user defined script before this one
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
+if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
+:skipRcPre
+
+@setlocal
+
+set ERROR_CODE=0
+
+@REM To isolate internal variables from possible post scripts, we use another setlocal
+@setlocal
+
+@REM ==== START VALIDATION ====
+if not "%JAVA_HOME%" == "" goto OkJHome
+
+echo.
+echo Error: JAVA_HOME not found in your environment. >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:OkJHome
+if exist "%JAVA_HOME%\bin\java.exe" goto init
+
+echo.
+echo Error: JAVA_HOME is set to an invalid directory. >&2
+echo JAVA_HOME = "%JAVA_HOME%" >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+@REM ==== END VALIDATION ====
+
+:init
+
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
+@REM Fallback to current working directory if not found.
+
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
+
+set EXEC_DIR=%CD%
+set WDIR=%EXEC_DIR%
+:findBaseDir
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
+cd ..
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
+set WDIR=%CD%
+goto findBaseDir
+
+:baseDirFound
+set MAVEN_PROJECTBASEDIR=%WDIR%
+cd "%EXEC_DIR%"
+goto endDetectBaseDir
+
+:baseDirNotFound
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
+cd "%EXEC_DIR%"
+
+:endDetectBaseDir
+
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
+
+@setlocal EnableExtensions EnableDelayedExpansion
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
+
+:endReadAdditionalConfig
+
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+
+FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
+    IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
+)
+
+@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
+if exist %WRAPPER_JAR% (
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Found %WRAPPER_JAR%
+    )
+) else (
+    if not "%MVNW_REPOURL%" == "" (
+        SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    )
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Couldn't find %WRAPPER_JAR%, downloading it ...
+        echo Downloading from: %DOWNLOAD_URL%
+    )
+
+    powershell -Command "&{"^
+		"$webclient = new-object System.Net.WebClient;"^
+		"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
+		"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
+		"}"^
+		"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
+		"}"
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Finished downloading %WRAPPER_JAR%
+    )
+)
+@REM End of extension
+
+@REM Provide a "standardized" way to retrieve the CLI args that will
+@REM work with both Windows and non-Windows executions.
+set MAVEN_CMD_LINE_ARGS=%*
+
+%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
+if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
+:skipRcPost
+
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
+if "%MAVEN_BATCH_PAUSE%" == "on" pause
+
+if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
+
+exit /B %ERROR_CODE%
diff --git a/springcloud_k8s_panzhihuazhihuishequ/config_server/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/config_server/pom.xml
new file mode 100644
index 0000000..79bf891
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/config_server/pom.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.panzhihua</groupId>
+        <artifactId>zhihuishequ</artifactId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <groupId>com.panzhihua</groupId>
+    <artifactId>config_server</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>config_server</name>
+    <description>config配置中心</description>
+
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-config-server</artifactId>
+        </dependency>
+
+<!--        <dependency>-->
+<!--            <groupId>org.springframework.cloud</groupId>-->
+<!--            <artifactId>spring-cloud-starter-bus-amqp</artifactId>-->
+<!--        </dependency>-->
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
+        </dependency>
+
+        <!--添加监控依赖包-->
+        <dependency>
+            <groupId>io.micrometer</groupId>
+            <artifactId>micrometer-registry-prometheus</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+
+    </dependencies>
+
+
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>2.5.0</version>
+                <configuration>
+                    <mainClass>com.panzhihua.config_server.ConfigServerApplication</mainClass>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>docker-maven-plugin</artifactId>
+                <version>1.2.0</version>
+                <configuration>
+                    <imageName>registry.cn-chengdu.aliyuncs.com/panzhihua/config-server:v1</imageName>
+                    <serverId></serverId>
+                    <baseImage>java</baseImage>
+                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
+                    <resources>
+                        <resource>
+                            <targetPath>/</targetPath>
+                            <directory>${project.build.directory}</directory>
+                            <include>${project.build.finalName}.jar</include>
+                        </resource>
+                    </resources>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <repositories>
+        <repository>
+            <id>spring-snapshots</id>
+            <name>Spring Snapshots</name>
+            <url>https://repo.spring.io/snapshot</url>
+            <snapshots>
+                <enabled>true</enabled>
+            </snapshots>
+        </repository>
+        <repository>
+            <id>spring-milestones</id>
+            <name>Spring Milestones</name>
+            <url>https://repo.spring.io/milestone</url>
+        </repository>
+    </repositories>
+
+</project>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/config_server/src/main/java/com/panzhihua/config_server/ConfigServerApplication.java b/springcloud_k8s_panzhihuazhihuishequ/config_server/src/main/java/com/panzhihua/config_server/ConfigServerApplication.java
new file mode 100644
index 0000000..89c77bc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/config_server/src/main/java/com/panzhihua/config_server/ConfigServerApplication.java
@@ -0,0 +1,19 @@
+package com.panzhihua.config_server;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.cloud.client.SpringCloudApplication;
+import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
+import org.springframework.cloud.config.server.EnableConfigServer;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+
+@EnableCircuitBreaker
+@SpringCloudApplication
+@EnableEurekaClient
+@EnableConfigServer
+public class ConfigServerApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(ConfigServerApplication.class, args);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/config_server/src/main/resources/application.yml b/springcloud_k8s_panzhihuazhihuishequ/config_server/src/main/resources/application.yml
new file mode 100644
index 0000000..c648214
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/config_server/src/main/resources/application.yml
@@ -0,0 +1,52 @@
+server:
+  port: 6193
+  servlet:
+    encoding:
+      force-response: true #中文乱码
+
+eureka:
+  instance:
+    preferIpAddress: true
+  client:
+    serviceUrl:
+      defaultZone: http://${EUREKA_URL:localhost}:8192/eureka
+
+spring:
+  application:
+    name: huacheng-config
+
+  cloud:
+    config:
+      server:
+        git:
+          uri: http://gitlab.nhys.cdnhxx.com:9380/huanghongfa/config-repo.git
+#          search-paths: adminConfig
+          username: huanghongfa
+          password: huanghongfa123456
+          default-label: huacheng
+#          basedir: F:\nahan\config-repo\config-repo
+
+#spring:
+#  application:
+#    name: huacheng-config
+#  profiles:
+#    active: native
+#  cloud:
+#    config:
+#      server:
+#        native:
+#          search-locations: file:E:\\work\\config\\config-repo
+
+management:
+  endpoints:
+    web:
+      exposure:
+        include: '*'
+
+  endpoint:
+    health:
+      show-details: always
+
+  metrics:
+    tags:
+      application: huacheng-config
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/config_server/src/main/resources/bootstrap.properties b/springcloud_k8s_panzhihuazhihuishequ/config_server/src/main/resources/bootstrap.properties
new file mode 100644
index 0000000..018d92e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/config_server/src/main/resources/bootstrap.properties
@@ -0,0 +1,10 @@
+##bus总线配置
+#management.endpoints.web.exposure.include=bus-refresh
+#spring.cloud.bus.enabled=true
+#spring.cloud.bus.trace.enabled =true
+#
+##rabbitmq配置
+#spring.rabbitmq.host=172.26.144.132
+#spring.rabbitmq.port=5672
+#spring.rabbitmq.username=guest
+#spring.rabbitmq.password=guest
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/config_server/src/main/resources/logback-spring.xml b/springcloud_k8s_panzhihuazhihuishequ/config_server/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..5fd1d7b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/config_server/src/main/resources/logback-spring.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration debug="false">
+    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
+<!--    <springProfile name="dev">-->
+<!--        <property name="LOG_HOME" value="F:/log" />-->
+<!--    </springProfile>-->
+<!--    <springProfile name="test">-->
+<!--        <property name="LOG_HOME" value="/mnt/data/gocd/log" />-->
+<!--    </springProfile>-->
+    <property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    <!-- 控制台输出 -->
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+    </appender>
+    <!-- 按照每天生成日志文件 -->
+    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!--日志文件输出的文件名-->
+            <FileNamePattern>${LOG_HOME}/huachengconfig_server.log.%d{yyyy-MM-dd}.log</FileNamePattern>
+            <!--日志文件保留天数-->
+            <MaxHistory>30</MaxHistory>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+        <!--日志文件最大的大小-->
+        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <MaxFileSize>10MB</MaxFileSize>
+        </triggeringPolicy>
+    </appender>
+
+    <!--myibatis log configure-->
+    <logger name="com.apache.ibatis" level="TRACE"/>
+    <logger name="java.sql.Connection" level="DEBUG"/>
+    <logger name="java.sql.Statement" level="DEBUG"/>
+    <logger name="java.sql.PreparedStatement" level="DEBUG"/>
+    <logger name="com.panzhihua.config_server" level="DEBUG"/>
+
+    <!-- 日志输出级别 -->
+    <root level="DEBUG">
+        <appender-ref ref="STDOUT" />
+    </root>
+    <root level="INFO">
+        <appender-ref ref="STDOUT" />
+        <appender-ref ref="FILE" />
+    </root>
+</configuration>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/deploy-file/applets-backstage.yaml b/springcloud_k8s_panzhihuazhihuishequ/deploy-file/applets-backstage.yaml
new file mode 100644
index 0000000..2bc239b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/deploy-file/applets-backstage.yaml
@@ -0,0 +1,47 @@
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: applets-backstage
+spec:
+  selector:
+    matchLabels:
+      app: springcloud-applets-backstage
+
+  replicas: 2
+
+  template:
+    metadata:
+      labels:
+        app: springcloud-applets-backstage
+    spec:
+      containers:
+        - name: applets-backstage-instance
+          image: registry.cn-chengdu.aliyuncs.com/panzhihua/applets_backstage:v1
+          imagePullPolicy: Always
+          env:
+            - name: EUREKA_URL
+              value: eureka-server
+            - name: CONFIG_URL
+              value: config-server
+          ports:
+            - containerPort: 8197
+      imagePullSecrets:
+        - name: hhf
+
+
+---
+kind: Service
+apiVersion: v1
+metadata:
+  name: service-applets-backstage
+spec:
+  selector:
+    app: springcloud-applets-backstage
+  ports:
+    - protocol: TCP
+      port: 8195
+      targetPort: 8195
+  #type: NodePort
+
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/deploy-file/applets.yaml b/springcloud_k8s_panzhihuazhihuishequ/deploy-file/applets.yaml
new file mode 100644
index 0000000..0a06c91
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/deploy-file/applets.yaml
@@ -0,0 +1,47 @@
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: applets
+spec:
+  selector:
+    matchLabels:
+      app: springcloud-applets
+
+  replicas: 2
+
+  template:
+    metadata:
+      labels:
+        app: springcloud-applets
+    spec:
+      containers:
+        - name: applets-instance
+          image: registry.cn-chengdu.aliyuncs.com/panzhihua/applets:v1
+          imagePullPolicy: Always
+          env:
+            - name: EUREKA_URL
+              value: eureka-server
+            - name: CONFIG_URL
+              value: config-server
+          ports:
+            - containerPort: 8195
+      imagePullSecrets:
+        - name: hhf
+
+
+---
+kind: Service
+apiVersion: v1
+metadata:
+  name: service-applets
+spec:
+  selector:
+    app: springcloud-applets
+  ports:
+    - protocol: TCP
+      port: 8195
+      targetPort: 8195
+  #type: NodePort
+
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/deploy-file/busybox.yaml b/springcloud_k8s_panzhihuazhihuishequ/deploy-file/busybox.yaml
new file mode 100644
index 0000000..babb765
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/deploy-file/busybox.yaml
@@ -0,0 +1,14 @@
+apiVersion: v1
+kind: Pod
+metadata:
+  name: busybox
+  namespace: default
+spec:
+  containers:
+  - image: busybox
+    command:
+      - sleep
+      - "3600"
+    imagePullPolicy: IfNotPresent
+    name: busybox
+  restartPolicy: Always
diff --git a/springcloud_k8s_panzhihuazhihuishequ/deploy-file/community-backstage.yaml b/springcloud_k8s_panzhihuazhihuishequ/deploy-file/community-backstage.yaml
new file mode 100644
index 0000000..12e6338
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/deploy-file/community-backstage.yaml
@@ -0,0 +1,47 @@
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: community-backstage
+spec:
+  selector:
+    matchLabels:
+      app: springcloud-community-backstage
+
+  replicas: 2
+
+  template:
+    metadata:
+      labels:
+        app: springcloud-community-backstage
+    spec:
+      containers:
+        - name: community-backstage-instance
+          image: registry.cn-chengdu.aliyuncs.com/panzhihua/community_backstage:v1
+          imagePullPolicy: Always
+          env:
+            - name: EUREKA_URL
+              value: eureka-server
+            - name: CONFIG_URL
+              value: config-server
+          ports:
+            - containerPort: 8199
+      imagePullSecrets:
+        - name: hhf
+
+
+---
+kind: Service
+apiVersion: v1
+metadata:
+  name: service-community-backstage
+spec:
+  selector:
+    app: springcloud-community-backstage
+  ports:
+    - protocol: TCP
+      port: 8199
+      targetPort: 8199
+  #type: NodePort
+
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/deploy-file/config-server.yaml b/springcloud_k8s_panzhihuazhihuishequ/deploy-file/config-server.yaml
new file mode 100644
index 0000000..da1980e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/deploy-file/config-server.yaml
@@ -0,0 +1,63 @@
+---
+apiVersion: apps/v1
+
+kind: Deployment
+
+metadata:
+
+  name: config-server
+
+spec:
+
+  selector:
+
+    matchLabels:
+
+      app: config-server
+
+  replicas: 1
+
+  template:
+
+    metadata:
+
+      labels:
+
+        app: config-server
+
+    spec:
+
+      containers:
+
+        - name: config-server-instance
+          imagePullPolicy: Always
+
+          image: registry.cn-chengdu.aliyuncs.com/panzhihua/config-server:v1
+
+          ports:
+
+            - containerPort: 6193
+          env:
+            - name: EUREKA_URL
+              value: eureka-server
+      imagePullSecrets:
+        - name: hhf
+
+---
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: config-server
+spec:
+  ports:
+    - port: 6193
+      targetPort: 6193
+      name: http
+      #nodePort: 31072
+  selector:
+    app: config-server
+  #type: NodePort
+
+
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/deploy-file/eurekaserver.yaml b/springcloud_k8s_panzhihuazhihuishequ/deploy-file/eurekaserver.yaml
new file mode 100644
index 0000000..b4be389
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/deploy-file/eurekaserver.yaml
@@ -0,0 +1,64 @@
+---
+apiVersion: apps/v1
+ 
+kind: Deployment
+ 
+metadata:
+ 
+  name: eureka-server
+ 
+spec:
+
+  selector:
+
+    matchLabels:
+
+      app: spring-boot-eureka
+
+  replicas: 1
+ 
+  template:
+ 
+    metadata:
+ 
+      labels:
+ 
+        app: spring-boot-eureka
+ 
+    spec:
+ 
+      containers:
+ 
+        - name: eureka-server-instance
+ 
+          image: registry.cn-chengdu.aliyuncs.com/panzhihua/eureka-server:v1
+          imagePullPolicy: Always
+ 
+          ports:
+ 
+            - containerPort: 8192
+          env:
+            - name: EUREKA_URL
+              value: eureka-server
+      imagePullSecrets:
+        - name: hhf
+
+---
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: eureka-server
+spec:
+  ports:
+  - port: 8192
+    targetPort: 8192
+    name: http
+    #nodePort: 31071
+  selector:
+    app: spring-boot-eureka
+  type: ClusterIP  
+
+
+
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/deploy-file/service-auth.yaml b/springcloud_k8s_panzhihuazhihuishequ/deploy-file/service-auth.yaml
new file mode 100644
index 0000000..97facdd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/deploy-file/service-auth.yaml
@@ -0,0 +1,47 @@
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: service-auth
+spec:
+  selector:
+    matchLabels:
+      app: springcloud-service-auth
+
+  replicas: 2
+
+  template:
+    metadata:
+      labels:
+        app: springcloud-service-auth
+    spec:
+      containers:
+       - name: service-auth-instance
+         image: registry.cn-chengdu.aliyuncs.com/panzhihua/service-auth:v1
+         imagePullPolicy: Always
+         env:
+         - name: EUREKA_URL
+           value: eureka-server
+         - name: CONFIG_URL
+           value: config-server
+         ports:
+         - containerPort: 8191
+      imagePullSecrets:
+        - name: hhf
+
+
+---
+kind: Service
+apiVersion: v1
+metadata:
+  name: service-auth
+spec:
+  selector:
+    app: springcloud-service-auth
+  ports:
+  - protocol: TCP
+    port: 8191
+    targetPort: 8191
+  #type: NodePort
+
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/deploy-file/service-community.yaml b/springcloud_k8s_panzhihuazhihuishequ/deploy-file/service-community.yaml
new file mode 100644
index 0000000..416972e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/deploy-file/service-community.yaml
@@ -0,0 +1,47 @@
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: service-community
+spec:
+  selector:
+    matchLabels:
+      app: springcloud-service-community
+
+  replicas: 2
+
+  template:
+    metadata:
+      labels:
+        app: springcloud-service-community
+    spec:
+      containers:
+        - name: community-instance
+          image: registry.cn-chengdu.aliyuncs.com/panzhihua/service_community:v1
+          imagePullPolicy: Always
+          env:
+            - name: EUREKA_URL
+              value: eureka-server
+            - name: CONFIG_URL
+              value: config-server
+          ports:
+            - containerPort: 8291
+      imagePullSecrets:
+        - name: hhf
+
+
+---
+kind: Service
+apiVersion: v1
+metadata:
+  name: service-community
+spec:
+  selector:
+    app: springcloud-service-community
+  ports:
+    - protocol: TCP
+      port: 8291
+      targetPort: 8291
+  #type: NodePort
+
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/deploy-file/service-partybuilding.yaml b/springcloud_k8s_panzhihuazhihuishequ/deploy-file/service-partybuilding.yaml
new file mode 100644
index 0000000..134290b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/deploy-file/service-partybuilding.yaml
@@ -0,0 +1,47 @@
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: service-partybuilding
+spec:
+  selector:
+    matchLabels:
+      app: springcloud-service-partybuilding
+
+  replicas: 2
+
+  template:
+    metadata:
+      labels:
+        app: springcloud-service-partybuilding
+    spec:
+      containers:
+        - name: partybuilding-instance
+          image: registry.cn-chengdu.aliyuncs.com/panzhihua/service-dangjian:v1
+          imagePullPolicy: Always
+          env:
+            - name: EUREKA_URL
+              value: eureka-server
+            - name: CONFIG_URL
+              value: config-server
+          ports:
+            - containerPort: 8291
+      imagePullSecrets:
+        - name: hhf
+
+
+---
+kind: Service
+apiVersion: v1
+metadata:
+  name: service-partybuilding
+spec:
+  selector:
+    app: springcloud-service-partybuilding
+  ports:
+    - protocol: TCP
+      port: 8291
+      targetPort: 8291
+  #type: NodePort
+
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/deploy-file/service-timejob.yaml b/springcloud_k8s_panzhihuazhihuishequ/deploy-file/service-timejob.yaml
new file mode 100644
index 0000000..e66e548
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/deploy-file/service-timejob.yaml
@@ -0,0 +1,47 @@
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: service-timejob
+spec:
+  selector:
+    matchLabels:
+      app: springcloud-service-timejob
+
+  replicas: 1
+
+  template:
+    metadata:
+      labels:
+        app: springcloud-service-timejob
+    spec:
+      containers:
+        - name: timejob-instance
+          image: registry.cn-chengdu.aliyuncs.com/panzhihua/service-timejob:v1
+          imagePullPolicy: Always
+          env:
+            - name: EUREKA_URL
+              value: eureka-server
+            - name: CONFIG_URL
+              value: config-server
+          ports:
+            - containerPort: 8189
+      imagePullSecrets:
+        - name: hhf
+
+
+---
+kind: Service
+apiVersion: v1
+metadata:
+  name: service-timejob
+spec:
+  selector:
+    app: springcloud-service-timejob
+  ports:
+    - protocol: TCP
+      port: 8189
+      targetPort: 8189
+  #type: NodePort
+
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/deploy-file/service-user.yaml b/springcloud_k8s_panzhihuazhihuishequ/deploy-file/service-user.yaml
new file mode 100644
index 0000000..ce62a34
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/deploy-file/service-user.yaml
@@ -0,0 +1,47 @@
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: service-user
+spec:
+  selector:
+    matchLabels:
+      app: springcloud-service-user
+
+  replicas: 2
+
+  template:
+    metadata:
+      labels:
+        app: springcloud-service-user
+    spec:
+      containers:
+        - name: user-instance
+          image: registry.cn-chengdu.aliyuncs.com/panzhihua/service-user:v1
+          imagePullPolicy: Always
+          env:
+            - name: EUREKA_URL
+              value: eureka-server
+            - name: CONFIG_URL
+              value: config-server
+          ports:
+            - containerPort: 8196
+      imagePullSecrets:
+        - name: hhf
+
+
+---
+kind: Service
+apiVersion: v1
+metadata:
+  name: service-user
+spec:
+  selector:
+    app: springcloud-service-user
+  ports:
+    - protocol: TCP
+      port: 8196
+      targetPort: 8196
+  #type: NodePort
+
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/deploy-file/service-zuul.yaml b/springcloud_k8s_panzhihuazhihuishequ/deploy-file/service-zuul.yaml
new file mode 100644
index 0000000..6633370
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/deploy-file/service-zuul.yaml
@@ -0,0 +1,50 @@
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: service-zuul
+spec:
+  selector:
+    matchLabels:
+      app: springcloud-service-zuul
+
+  replicas: 2
+
+  template:
+    metadata:
+      labels:
+        app: springcloud-service-zuul
+    spec:
+      containers:
+       - name: service-zuul-instance
+         image: registry.cn-chengdu.aliyuncs.com/panzhihua/service-zuul:v1
+         imagePullPolicy: Always
+         env:
+           - name: EUREKA_URL
+             value: eureka-server
+           - name: CONFIG_URL
+             value: config-server
+         ports:
+         - containerPort: 8194
+      imagePullSecrets:
+        - name: hhf
+
+
+---
+kind: Service
+apiVersion: v1
+metadata:
+  name: service-zuul
+spec:
+  selector:
+    app: springcloud-service-zuul
+  ports:
+  - protocol: TCP
+    port: 8194
+    targetPort: 8194
+    name: http
+    nodePort: 31073
+  type: NodePort
+
+
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/eureka_server/.gitignore b/springcloud_k8s_panzhihuazhihuishequ/eureka_server/.gitignore
new file mode 100644
index 0000000..549e00a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/eureka_server/.gitignore
@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
diff --git a/springcloud_k8s_panzhihuazhihuishequ/eureka_server/.mvn/wrapper/MavenWrapperDownloader.java b/springcloud_k8s_panzhihuazhihuishequ/eureka_server/.mvn/wrapper/MavenWrapperDownloader.java
new file mode 100644
index 0000000..a45eb6b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/eureka_server/.mvn/wrapper/MavenWrapperDownloader.java
@@ -0,0 +1,118 @@
+/*
+ * Copyright 2007-present the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.net.*;
+import java.io.*;
+import java.nio.channels.*;
+import java.util.Properties;
+
+public class MavenWrapperDownloader {
+
+    private static final String WRAPPER_VERSION = "0.5.6";
+    /**
+     * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
+     */
+    private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
+            + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
+
+    /**
+     * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
+     * use instead of the default one.
+     */
+    private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
+            ".mvn/wrapper/maven-wrapper.properties";
+
+    /**
+     * Path where the maven-wrapper.jar will be saved to.
+     */
+    private static final String MAVEN_WRAPPER_JAR_PATH =
+            ".mvn/wrapper/maven-wrapper.jar";
+
+    /**
+     * Name of the property which should be used to override the default download url for the wrapper.
+     */
+    private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
+
+    public static void main(String args[]) {
+        System.out.println("- Downloader started");
+        File baseDirectory = new File(args[0]);
+        System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
+
+        // If the maven-wrapper.properties exists, read it and check if it contains a custom
+        // wrapperUrl parameter.
+        File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
+        String url = DEFAULT_DOWNLOAD_URL;
+        if (mavenWrapperPropertyFile.exists()) {
+            FileInputStream mavenWrapperPropertyFileInputStream = null;
+            try {
+                mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
+                Properties mavenWrapperProperties = new Properties();
+                mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
+                url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
+            } catch (IOException e) {
+                System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
+            } finally {
+                try {
+                    if (mavenWrapperPropertyFileInputStream != null) {
+                        mavenWrapperPropertyFileInputStream.close();
+                    }
+                } catch (IOException e) {
+                    // Ignore ...
+                }
+            }
+        }
+        System.out.println("- Downloading from: " + url);
+
+        File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
+        if (!outputFile.getParentFile().exists()) {
+            if (!outputFile.getParentFile().mkdirs()) {
+                System.out.println(
+                        "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
+            }
+        }
+        System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
+        try {
+            downloadFileFromURL(url, outputFile);
+            System.out.println("Done");
+            System.exit(0);
+        } catch (Throwable e) {
+            System.out.println("- Error downloading");
+            e.printStackTrace();
+            System.exit(1);
+        }
+    }
+
+    private static void downloadFileFromURL(String urlString, File destination) throws Exception {
+        if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
+            String username = System.getenv("MVNW_USERNAME");
+            char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
+            Authenticator.setDefault(new Authenticator() {
+                @Override
+                protected PasswordAuthentication getPasswordAuthentication() {
+                    return new PasswordAuthentication(username, password);
+                }
+            });
+        }
+        URL website = new URL(urlString);
+        ReadableByteChannel rbc;
+        rbc = Channels.newChannel(website.openStream());
+        FileOutputStream fos = new FileOutputStream(destination);
+        fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
+        fos.close();
+        rbc.close();
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/eureka_server/.mvn/wrapper/maven-wrapper.jar b/springcloud_k8s_panzhihuazhihuishequ/eureka_server/.mvn/wrapper/maven-wrapper.jar
new file mode 100644
index 0000000..2cc7d4a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/eureka_server/.mvn/wrapper/maven-wrapper.jar
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/eureka_server/.mvn/wrapper/maven-wrapper.properties b/springcloud_k8s_panzhihuazhihuishequ/eureka_server/.mvn/wrapper/maven-wrapper.properties
new file mode 100644
index 0000000..642d572
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/eureka_server/.mvn/wrapper/maven-wrapper.properties
@@ -0,0 +1,2 @@
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip
+wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar
diff --git a/springcloud_k8s_panzhihuazhihuishequ/eureka_server/mvnw b/springcloud_k8s_panzhihuazhihuishequ/eureka_server/mvnw
new file mode 100644
index 0000000..a16b543
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/eureka_server/mvnw
@@ -0,0 +1,310 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#    https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Maven Start Up Batch script
+#
+# Required ENV vars:
+# ------------------
+#   JAVA_HOME - location of a JDK home dir
+#
+# Optional ENV vars
+# -----------------
+#   M2_HOME - location of maven2's installed home dir
+#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
+#     e.g. to debug Maven itself, use
+#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+# ----------------------------------------------------------------------------
+
+if [ -z "$MAVEN_SKIP_RC" ] ; then
+
+  if [ -f /etc/mavenrc ] ; then
+    . /etc/mavenrc
+  fi
+
+  if [ -f "$HOME/.mavenrc" ] ; then
+    . "$HOME/.mavenrc"
+  fi
+
+fi
+
+# OS specific support.  $var _must_ be set to either true or false.
+cygwin=false;
+darwin=false;
+mingw=false
+case "`uname`" in
+  CYGWIN*) cygwin=true ;;
+  MINGW*) mingw=true;;
+  Darwin*) darwin=true
+    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
+    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
+    if [ -z "$JAVA_HOME" ]; then
+      if [ -x "/usr/libexec/java_home" ]; then
+        export JAVA_HOME="`/usr/libexec/java_home`"
+      else
+        export JAVA_HOME="/Library/Java/Home"
+      fi
+    fi
+    ;;
+esac
+
+if [ -z "$JAVA_HOME" ] ; then
+  if [ -r /etc/gentoo-release ] ; then
+    JAVA_HOME=`java-config --jre-home`
+  fi
+fi
+
+if [ -z "$M2_HOME" ] ; then
+  ## resolve links - $0 may be a link to maven's home
+  PRG="$0"
+
+  # need this for relative symlinks
+  while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+      PRG="$link"
+    else
+      PRG="`dirname "$PRG"`/$link"
+    fi
+  done
+
+  saveddir=`pwd`
+
+  M2_HOME=`dirname "$PRG"`/..
+
+  # make it fully qualified
+  M2_HOME=`cd "$M2_HOME" && pwd`
+
+  cd "$saveddir"
+  # echo Using m2 at $M2_HOME
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --unix "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+fi
+
+# For Mingw, ensure paths are in UNIX format before anything is touched
+if $mingw ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME="`(cd "$M2_HOME"; pwd)`"
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
+fi
+
+if [ -z "$JAVA_HOME" ]; then
+  javaExecutable="`which javac`"
+  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
+    # readlink(1) is not available as standard on Solaris 10.
+    readLink=`which readlink`
+    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
+      if $darwin ; then
+        javaHome="`dirname \"$javaExecutable\"`"
+        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
+      else
+        javaExecutable="`readlink -f \"$javaExecutable\"`"
+      fi
+      javaHome="`dirname \"$javaExecutable\"`"
+      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
+      JAVA_HOME="$javaHome"
+      export JAVA_HOME
+    fi
+  fi
+fi
+
+if [ -z "$JAVACMD" ] ; then
+  if [ -n "$JAVA_HOME"  ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+      # IBM's JDK on AIX uses strange locations for the executables
+      JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+      JAVACMD="$JAVA_HOME/bin/java"
+    fi
+  else
+    JAVACMD="`which java`"
+  fi
+fi
+
+if [ ! -x "$JAVACMD" ] ; then
+  echo "Error: JAVA_HOME is not defined correctly." >&2
+  echo "  We cannot execute $JAVACMD" >&2
+  exit 1
+fi
+
+if [ -z "$JAVA_HOME" ] ; then
+  echo "Warning: JAVA_HOME environment variable is not set."
+fi
+
+CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
+
+# traverses directory structure from process work directory to filesystem root
+# first directory with .mvn subdirectory is considered project base directory
+find_maven_basedir() {
+
+  if [ -z "$1" ]
+  then
+    echo "Path not specified to find_maven_basedir"
+    return 1
+  fi
+
+  basedir="$1"
+  wdir="$1"
+  while [ "$wdir" != '/' ] ; do
+    if [ -d "$wdir"/.mvn ] ; then
+      basedir=$wdir
+      break
+    fi
+    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
+    if [ -d "${wdir}" ]; then
+      wdir=`cd "$wdir/.."; pwd`
+    fi
+    # end of workaround
+  done
+  echo "${basedir}"
+}
+
+# concatenates all lines of a file
+concat_lines() {
+  if [ -f "$1" ]; then
+    echo "$(tr -s '\n' ' ' < "$1")"
+  fi
+}
+
+BASE_DIR=`find_maven_basedir "$(pwd)"`
+if [ -z "$BASE_DIR" ]; then
+  exit 1;
+fi
+
+##########################################################################################
+# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+# This allows using the maven wrapper in projects that prohibit checking in binary data.
+##########################################################################################
+if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Found .mvn/wrapper/maven-wrapper.jar"
+    fi
+else
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
+    fi
+    if [ -n "$MVNW_REPOURL" ]; then
+      jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    else
+      jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    fi
+    while IFS="=" read key value; do
+      case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
+      esac
+    done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Downloading from: $jarUrl"
+    fi
+    wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
+    if $cygwin; then
+      wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
+    fi
+
+    if command -v wget > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found wget ... using wget"
+        fi
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+            wget "$jarUrl" -O "$wrapperJarPath"
+        else
+            wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
+        fi
+    elif command -v curl > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found curl ... using curl"
+        fi
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+            curl -o "$wrapperJarPath" "$jarUrl" -f
+        else
+            curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
+        fi
+
+    else
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Falling back to using Java to download"
+        fi
+        javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
+        # For Cygwin, switch paths to Windows format before running javac
+        if $cygwin; then
+          javaClass=`cygpath --path --windows "$javaClass"`
+        fi
+        if [ -e "$javaClass" ]; then
+            if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Compiling MavenWrapperDownloader.java ..."
+                fi
+                # Compiling the Java class
+                ("$JAVA_HOME/bin/javac" "$javaClass")
+            fi
+            if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                # Running the downloader
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Running MavenWrapperDownloader.java ..."
+                fi
+                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
+            fi
+        fi
+    fi
+fi
+##########################################################################################
+# End of extension
+##########################################################################################
+
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
+if [ "$MVNW_VERBOSE" = true ]; then
+  echo $MAVEN_PROJECTBASEDIR
+fi
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --path --windows "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
+    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
+fi
+
+# Provide a "standardized" way to retrieve the CLI args that will
+# work with both Windows and non-Windows executions.
+MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
+export MAVEN_CMD_LINE_ARGS
+
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+exec "$JAVACMD" \
+  $MAVEN_OPTS \
+  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
+  "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
+  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/springcloud_k8s_panzhihuazhihuishequ/eureka_server/mvnw.cmd b/springcloud_k8s_panzhihuazhihuishequ/eureka_server/mvnw.cmd
new file mode 100644
index 0000000..c8d4337
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/eureka_server/mvnw.cmd
@@ -0,0 +1,182 @@
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements.  See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership.  The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License.  You may obtain a copy of the License at
+@REM
+@REM    https://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied.  See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Maven Start Up Batch script
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM M2_HOME - location of maven2's installed home dir
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
+@REM     e.g. to debug Maven itself, use
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+@REM ----------------------------------------------------------------------------
+
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
+@echo off
+@REM set title of command window
+title %0
+@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
+@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
+
+@REM set %HOME% to equivalent of $HOME
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
+
+@REM Execute a user defined script before this one
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
+if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
+:skipRcPre
+
+@setlocal
+
+set ERROR_CODE=0
+
+@REM To isolate internal variables from possible post scripts, we use another setlocal
+@setlocal
+
+@REM ==== START VALIDATION ====
+if not "%JAVA_HOME%" == "" goto OkJHome
+
+echo.
+echo Error: JAVA_HOME not found in your environment. >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:OkJHome
+if exist "%JAVA_HOME%\bin\java.exe" goto init
+
+echo.
+echo Error: JAVA_HOME is set to an invalid directory. >&2
+echo JAVA_HOME = "%JAVA_HOME%" >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+@REM ==== END VALIDATION ====
+
+:init
+
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
+@REM Fallback to current working directory if not found.
+
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
+
+set EXEC_DIR=%CD%
+set WDIR=%EXEC_DIR%
+:findBaseDir
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
+cd ..
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
+set WDIR=%CD%
+goto findBaseDir
+
+:baseDirFound
+set MAVEN_PROJECTBASEDIR=%WDIR%
+cd "%EXEC_DIR%"
+goto endDetectBaseDir
+
+:baseDirNotFound
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
+cd "%EXEC_DIR%"
+
+:endDetectBaseDir
+
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
+
+@setlocal EnableExtensions EnableDelayedExpansion
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
+
+:endReadAdditionalConfig
+
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+
+FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
+    IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
+)
+
+@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
+if exist %WRAPPER_JAR% (
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Found %WRAPPER_JAR%
+    )
+) else (
+    if not "%MVNW_REPOURL%" == "" (
+        SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    )
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Couldn't find %WRAPPER_JAR%, downloading it ...
+        echo Downloading from: %DOWNLOAD_URL%
+    )
+
+    powershell -Command "&{"^
+		"$webclient = new-object System.Net.WebClient;"^
+		"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
+		"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
+		"}"^
+		"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
+		"}"
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Finished downloading %WRAPPER_JAR%
+    )
+)
+@REM End of extension
+
+@REM Provide a "standardized" way to retrieve the CLI args that will
+@REM work with both Windows and non-Windows executions.
+set MAVEN_CMD_LINE_ARGS=%*
+
+%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
+if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
+:skipRcPost
+
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
+if "%MAVEN_BATCH_PAUSE%" == "on" pause
+
+if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
+
+exit /B %ERROR_CODE%
diff --git a/springcloud_k8s_panzhihuazhihuishequ/eureka_server/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/eureka_server/pom.xml
new file mode 100644
index 0000000..2b33fec
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/eureka_server/pom.xml
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.panzhihua</groupId>
+        <artifactId>zhihuishequ</artifactId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <groupId>com.panzhihua</groupId>
+    <artifactId>eureka_server</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>eureka_server</name>
+    <description>eureka注册中心</description>
+
+
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
+        </dependency>
+
+        <!--添加监控依赖包-->
+        <dependency>
+            <groupId>io.micrometer</groupId>
+            <artifactId>micrometer-registry-prometheus</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+
+    </dependencies>
+
+
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>2.5.0</version>
+                <configuration>
+                    <mainClass>com.panzhihua.eureka_server.EurekaServerApplication</mainClass>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>docker-maven-plugin</artifactId>
+                <version>1.2.0</version>
+                <configuration>
+                    <imageName>registry.cn-chengdu.aliyuncs.com/panzhihua/eureka-server:v1</imageName>
+                    <serverId></serverId>
+                    <baseImage>java</baseImage>
+                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
+                    <resources>
+                        <resource>
+                            <targetPath>/</targetPath>
+                            <directory>${project.build.directory}</directory>
+                            <include>${project.build.finalName}.jar</include>
+                        </resource>
+                    </resources>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <repositories>
+        <repository>
+            <id>spring-snapshots</id>
+            <name>Spring Snapshots</name>
+            <url>https://repo.spring.io/snapshot</url>
+            <snapshots>
+                <enabled>true</enabled>
+            </snapshots>
+        </repository>
+        <repository>
+            <id>spring-milestones</id>
+            <name>Spring Milestones</name>
+            <url>https://repo.spring.io/milestone</url>
+        </repository>
+    </repositories>
+
+</project>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/eureka_server/src/main/java/com/panzhihua/eureka_server/EurekaServerApplication.java b/springcloud_k8s_panzhihuazhihuishequ/eureka_server/src/main/java/com/panzhihua/eureka_server/EurekaServerApplication.java
new file mode 100644
index 0000000..a287ab2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/eureka_server/src/main/java/com/panzhihua/eureka_server/EurekaServerApplication.java
@@ -0,0 +1,17 @@
+package com.panzhihua.eureka_server;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.cloud.client.SpringCloudApplication;
+import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
+import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
+
+@SpringCloudApplication
+@EnableEurekaServer
+@EnableCircuitBreaker
+public class EurekaServerApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(EurekaServerApplication.class, args);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/eureka_server/src/main/resources/application.yml b/springcloud_k8s_panzhihuazhihuishequ/eureka_server/src/main/resources/application.yml
new file mode 100644
index 0000000..d0495ed
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/eureka_server/src/main/resources/application.yml
@@ -0,0 +1,29 @@
+server:
+    port: 8192
+
+eureka:
+    instance:
+        hostname: eureka-server
+        preferIpAddress: true
+    client:
+        registerWithEureka: false #是否将自己注册到Eureka-Server中,默认的为true
+        fetchRegistry: false #是否从Eureka-Server中获取服务注册信息,默认为true
+        serviceUrl:
+            defaultZone: http://${EUREKA_URL:localhost}:${server.port}/eureka/
+    server:
+        enable-self-preservation: false  #是否开启自我保护模式
+        eviction‐interval‐timer‐in‐ms: 10000 #服务注册表清理间隔(单位毫秒,默认是60*1000)
+
+management:
+    endpoints:
+        web:
+            exposure:
+                include: '*'
+
+    endpoint:
+        health:
+            show-details: always
+
+    metrics:
+        tags:
+            application: eureka
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/eureka_server/src/main/resources/logback-spring.xml b/springcloud_k8s_panzhihuazhihuishequ/eureka_server/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..9c33ea4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/eureka_server/src/main/resources/logback-spring.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration debug="false">
+    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
+<!--    <springProfile name="dev">-->
+<!--        <property name="LOG_HOME" value="F:/log" />-->
+<!--    </springProfile>-->
+<!--    <springProfile name="test">-->
+<!--        <property name="LOG_HOME" value="/mnt/data/gocd/log" />-->
+<!--    </springProfile>-->
+    <property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    <!-- 控制台输出 -->
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+    </appender>
+    <!-- 按照每天生成日志文件 -->
+    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!--日志文件输出的文件名-->
+            <FileNamePattern>${LOG_HOME}/eureka_server.log.%d{yyyy-MM-dd}.log</FileNamePattern>
+            <!--日志文件保留天数-->
+            <MaxHistory>30</MaxHistory>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+        <!--日志文件最大的大小-->
+        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <MaxFileSize>10MB</MaxFileSize>
+        </triggeringPolicy>
+    </appender>
+
+    <!--myibatis log configure-->
+    <logger name="com.apache.ibatis" level="TRACE"/>
+    <logger name="java.sql.Connection" level="DEBUG"/>
+    <logger name="java.sql.Statement" level="DEBUG"/>
+    <logger name="java.sql.PreparedStatement" level="DEBUG"/>
+    <logger name="com.panzhihua.eureka_server" level="DEBUG"/>
+
+    <!-- 日志输出级别 -->
+    <root level="DEBUG">
+        <appender-ref ref="STDOUT" />
+    </root>
+    <root level="INFO">
+        <appender-ref ref="STDOUT" />
+        <appender-ref ref="FILE" />
+    </root>
+</configuration>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_app/.gitignore b/springcloud_k8s_panzhihuazhihuishequ/grid_app/.gitignore
new file mode 100644
index 0000000..549e00a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_app/.gitignore
@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_app/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/grid_app/pom.xml
new file mode 100644
index 0000000..5cdccd9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_app/pom.xml
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.panzhihua</groupId>
+        <artifactId>zhihuishequ</artifactId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <groupId>com.panzhihua</groupId>
+    <artifactId>grid_app</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>grid_app</name>
+    <description>网格治理-app</description>
+
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-config</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>com.panzhihua</groupId>
+            <artifactId>common</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.netflix.hystrix</groupId>
+            <artifactId>hystrix-javanica</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.github.xiaoymin</groupId>
+            <artifactId>swagger-bootstrap-ui</artifactId>
+        </dependency>
+        <!--添加监控依赖包-->
+        <dependency>
+            <groupId>io.micrometer</groupId>
+            <artifactId>micrometer-registry-prometheus</artifactId>
+        </dependency>
+        <dependency>
+            <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>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>2.5.0</version>
+                <configuration>
+                    <mainClass>com.panzhihua.grid_app.GridAppApplication</mainClass>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>docker-maven-plugin</artifactId>
+                <version>1.2.0</version>
+                <configuration>
+                    <imageName>registry.cn-chengdu.aliyuncs.com/panzhihua/community_backstage:v1</imageName>
+                    <serverId></serverId>
+                    <baseImage>java</baseImage>
+                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
+                    <resources>
+                        <resource>
+                            <targetPath>/</targetPath>
+                            <directory>${project.build.directory}</directory>
+                            <include>${project.build.finalName}.jar</include>
+                        </resource>
+                    </resources>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <repositories>
+        <repository>
+            <id>spring-snapshots</id>
+            <name>Spring Snapshots</name>
+            <url>https://repo.spring.io/snapshot</url>
+            <snapshots>
+                <enabled>true</enabled>
+            </snapshots>
+        </repository>
+        <repository>
+            <id>spring-milestones</id>
+            <name>Spring Milestones</name>
+            <url>https://repo.spring.io/milestone</url>
+        </repository>
+    </repositories>
+
+</project>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/GridAppApplication.java b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/GridAppApplication.java
new file mode 100644
index 0000000..8e731dd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/GridAppApplication.java
@@ -0,0 +1,24 @@
+package com.panzhihua.grid_app;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.cloud.client.SpringCloudApplication;
+import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.ComponentScan;
+
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+@EnableSwagger2
+@SpringCloudApplication
+@EnableCircuitBreaker
+@EnableEurekaClient
+@EnableFeignClients(basePackages = {"com.panzhihua.common.service"})
+@ComponentScan({"com.panzhihua.grid_app", "com.panzhihua.common"})
+public class GridAppApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(GridAppApplication.class, args);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/aop/OperLogAspect.java b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/aop/OperLogAspect.java
new file mode 100644
index 0000000..a260595
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/aop/OperLogAspect.java
@@ -0,0 +1,235 @@
+package com.panzhihua.grid_app.aop;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.lang.reflect.Method;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.annotation.AfterReturning;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Pointcut;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.springframework.stereotype.Component;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.context.request.RequestAttributes;
+import org.springframework.web.context.request.RequestContextHolder;
+
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.constants.TokenConstant;
+import com.panzhihua.common.interfaces.OperLog;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.user.SysOperLogVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.AES;
+import com.panzhihua.common.utlis.IPUtil;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 切面处理类,操作日志异常日志记录处理
+ *
+ * @author wu
+ * @date 2019/03/21
+ */
+@Slf4j
+@Aspect
+@Component
+public class OperLogAspect {
+
+    @Resource
+    private UserService userService;
+
+    /**
+     * 设置操作日志切入点 记录操作日志 在注解的位置切入代码
+     */
+    @Pointcut("@annotation(com.panzhihua.common.interfaces.OperLog)")
+    public void operLogPoinCut() {}
+
+    // /**
+    // * 设置操作异常切入点记录异常日志 扫描所有controller包下操作
+    // */
+    // @Pointcut("execution(* com.hyd.zcar.cms.controller..*.*(..))")
+    // public void operExceptionLogPoinCut() {
+    // }
+
+    /**
+     * 正常返回通知,拦截用户操作日志,连接点正常执行完成后执行, 如果连接点抛出异常,则不会执行
+     *
+     * @param joinPoint
+     *            切入点
+     * @param keys
+     *            返回结果
+     */
+    @AfterReturning(value = "operLogPoinCut()", returning = "keys")
+    public void saveOperLog(JoinPoint joinPoint, Object keys) {
+        log.info("进入切面");
+        // 获取RequestAttributes
+        RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
+        // 从获取RequestAttributes中获取HttpServletRequest的信息
+        HttpServletRequest request =
+            (HttpServletRequest)requestAttributes.resolveReference(RequestAttributes.REFERENCE_REQUEST);
+        // 登录对象信息
+        String userInfo = request.getHeader(TokenConstant.TOKEN_USERINFO);
+        boolean empty = ObjectUtils.isEmpty(userInfo);
+        if (empty) {
+            log.error("操作日志获取登录用户信息失败【{}】", joinPoint);
+            return;
+        }
+        byte[] bytes = AES.parseHexStr2Byte(userInfo);
+        byte[] decrypt = AES.decrypt(bytes, Constants.AES_KEY);
+        userInfo = new String(decrypt);
+        LoginUserInfoVO loginUserInfoVO = JSONObject.parseObject(userInfo, LoginUserInfoVO.class);
+
+        SysOperLogVO operlog = new SysOperLogVO();
+        try {
+
+            // 从切面织入点处通过反射机制获取织入点处的方法
+            MethodSignature signature = (MethodSignature)joinPoint.getSignature();
+            // 获取切入点所在的方法
+            Method method = signature.getMethod();
+            // 获取操作
+            OperLog opLog = method.getAnnotation(OperLog.class);
+            if (opLog != null) {
+                String operModul = opLog.operModul();
+                int operType = opLog.operType();
+                operlog.setTitle(operModul); // 操作模块
+                operlog.setBusinessType(operType); // 操作类型
+            }
+            // 获取请求的类名
+            String className = joinPoint.getTarget().getClass().getName();
+            // 获取请求的方法名
+            String methodName = method.getName();
+            methodName = className + "." + methodName;
+
+            operlog.setMethod(methodName); // 请求方法
+
+            if (joinPoint.getArgs().length > 0) {
+                for (Object o : joinPoint.getArgs()) {
+                    if (o instanceof HttpServletRequest || o instanceof HttpServletResponse) {
+                        continue;
+                    }
+                    operlog.setOperParam(JSONObject.toJSONString(o)); // 请求参数
+                }
+            }
+
+            operlog.setJsonResult(JSONObject.toJSONString(keys)); // 返回结果
+            operlog.setAccount(loginUserInfoVO.getAccount());
+            operlog.setOperName(loginUserInfoVO.getName()); // 请求用户名称
+            operlog.setOperIp(IPUtil.getIpAddress(request)); // 请求IP
+            operlog.setOperUrl(request.getRequestURI()); // 请求URI
+            operlog.setRequestMethod(request.getMethod());
+            operlog.setOperLocation(IPUtil.getIpBelongAddress(request));
+            operlog.setOperTime(new Date()); // 创建时间
+            operlog.setAccount(loginUserInfoVO.getAccount());
+            Long communityId = loginUserInfoVO.getCommunityId();
+            operlog.setCommunityId(null == communityId ? 0 : communityId);
+            userService.addOperLog(operlog);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    // /**
+    // * 异常返回通知,用于拦截异常日志信息 连接点抛出异常后执行
+    // *
+    // * @param joinPoint 切入点
+    // * @param e 异常信息
+    // */
+    // @AfterThrowing(pointcut = "operExceptionLogPoinCut()", throwing = "e")
+    // public void saveExceptionLog(JoinPoint joinPoint, Throwable e) {
+    // // 获取RequestAttributes
+    // RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
+    // // 从获取RequestAttributes中获取HttpServletRequest的信息
+    // HttpServletRequest request = (HttpServletRequest) requestAttributes
+    // .resolveReference(RequestAttributes.REFERENCE_REQUEST);
+    //
+    // ExceptionLog excepLog = new ExceptionLog();
+    // try {
+    // // 从切面织入点处通过反射机制获取织入点处的方法
+    // MethodSignature signature = (MethodSignature) joinPoint.getSignature();
+    // // 获取切入点所在的方法
+    // Method method = signature.getMethod();
+    // excepLog.setExcId(UuidUtil.get32UUID());
+    // // 获取请求的类名
+    // String className = joinPoint.getTarget().getClass().getName();
+    // // 获取请求的方法名
+    // String methodName = method.getName();
+    // methodName = className + "." + methodName;
+    // // 请求的参数
+    // Map<String, String> rtnMap = converMap(request.getParameterMap());
+    // // 将参数所在的数组转换成json
+    // String params = JSON.toJSONString(rtnMap);
+    // excepLog.setExcRequParam(params); // 请求参数
+    // excepLog.setOperMethod(methodName); // 请求方法名
+    // excepLog.setExcName(e.getClass().getName()); // 异常名称
+    // excepLog.setExcMessage(stackTraceToString(e.getClass().getName(), e.getMessage(), e.getStackTrace())); // 异常信息
+    // excepLog.setOperUserId(UserShiroUtil.getCurrentUserLoginName()); // 操作员ID
+    // excepLog.setOperUserName(UserShiroUtil.getCurrentUserName()); // 操作员名称
+    // excepLog.setOperUri(request.getRequestURI()); // 操作URI
+    // excepLog.setOperIp(IPUtil.getRemortIP(request)); // 操作员IP
+    // excepLog.setOperVer(operVer); // 操作版本号
+    // excepLog.setOperCreateTime(new Date()); // 发生异常时间
+    //
+    // exceptionLogService.insert(excepLog);
+    //
+    // } catch (Exception e2) {
+    // e2.printStackTrace();
+    // }
+    //
+    // }
+
+    /**
+     * 转换request 请求参数
+     *
+     * @param paramMap
+     *            request获取的参数数组
+     */
+    public Map<String, String> converMap(Map<String, String[]> paramMap) {
+        Map<String, String> rtnMap = new HashMap<String, String>();
+        for (String key : paramMap.keySet()) {
+            rtnMap.put(key, paramMap.get(key)[0]);
+        }
+        return rtnMap;
+    }
+
+    private String getPostData(HttpServletRequest request) {
+        StringBuffer data = new StringBuffer();
+        String line = null;
+        BufferedReader reader = null;
+        try {
+            reader = request.getReader();
+            while (null != (line = reader.readLine()))
+                data.append(line);
+        } catch (IOException e) {
+        } finally {
+        }
+        return data.toString();
+    }
+
+    /**
+     * 转换异常信息为字符串
+     *
+     * @param exceptionName
+     *            异常名称
+     * @param exceptionMessage
+     *            异常信息
+     * @param elements
+     *            堆栈信息
+     */
+    public String stackTraceToString(String exceptionName, String exceptionMessage, StackTraceElement[] elements) {
+        StringBuffer strbuff = new StringBuffer();
+        for (StackTraceElement stet : elements) {
+            strbuff.append(stet + "\n");
+        }
+        String message = exceptionName + ":" + exceptionMessage + "\n\t" + strbuff.toString();
+        return message;
+    }
+}
\ No newline at end of file
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
new file mode 100644
index 0000000..2fbd308
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/CommonApi.java
@@ -0,0 +1,206 @@
+package com.panzhihua.grid_app.api;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.UUID;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
+import com.panzhihua.common.utlis.MimeTypeUtils;
+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;
+
+import com.panzhihua.common.constants.FtpConstants;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.SFTPUtil;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+import static com.panzhihua.common.utlis.FileTypeUploadUtils.assertAllowed;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 公共接口
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-10 15:41
+ **/
+@Slf4j
+@RestController
+@RequestMapping("/common/")
+@Api(tags = {"公共接口"})
+public class CommonApi {
+
+    /**
+     * 允许的图片文件后缀
+     */
+    private static List<String> fileExtensionAllow = Arrays.asList("gif", "jpg", "png", "jpeg");
+    /**
+     * 允许的视频文件后缀
+     */
+    private static List<String> videoExtensionAllow = Arrays.asList("mp4", "mov");
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+    @Value("${ftp.url}")
+    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")
+    public R uploadImage(@RequestParam MultipartFile file, HttpServletRequest request) throws IOException {
+        // 微信图片内容校验
+        // WxMaSecCheckService wxMaSecCheckService = wxMaConfiguration.getMaService().getSecCheckService();
+        String property = System.getProperty("user.dir");
+
+        String fileExtension = ".jpg";
+
+        String originName = file.getOriginalFilename();
+        AtomicBoolean isVideo = new AtomicBoolean(false);
+        videoExtensionAllow.forEach(ext -> {
+            String originNameLowerCase = originName.toLowerCase();
+            if (originNameLowerCase.endsWith("." + ext)) {
+                isVideo.set(true);
+            }
+        });
+        if (isVideo.get()) {
+            fileExtension = ".mp4";
+        }
+
+        if (originName.toLowerCase().endsWith(".mp3")) {
+            fileExtension = ".mp3";
+        }
+
+        String fileName = property + File.separator + UUID.randomUUID().toString().replace("-", "") + fileExtension;
+        File file1 = new File(fileName);
+
+        String name = file.getOriginalFilename();
+        name = UUID.randomUUID().toString().replaceAll("-", "") + fileExtension;
+        try {
+            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+            sftp.login();
+            InputStream is = file.getInputStream();
+            file.transferTo(file1);
+            boolean delete = file1.delete();
+            log.info("临时文件删除【{}】", delete);
+            sftp.uploadMore(FtpConstants.FTPFILEPATH_IDCARD, name, is);
+            sftp.logout();
+            return R.ok(url + "idcard/" + name);
+        } catch (Exception e) {
+            log.error("上传照片失败【{}】", e.getMessage());
+            return R.fail();
+        }
+
+    }
+
+    @ApiOperation(value = "新上传照片接口")
+    @PostMapping(value = "/uploadimages", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R uploadImages(@RequestParam MultipartFile file, HttpServletRequest request) {
+        try {
+            assertAllowed(file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION);
+            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 uploads(@RequestParam MultipartFile[] files, HttpServletRequest request) throws IOException {
+        // 微信图片内容校验
+        // WxMaSecCheckService wxMaSecCheckService = wxMaConfiguration.getMaService().getSecCheckService();
+        String property = System.getProperty("user.dir");
+        String fileExtension = ".jpg";
+
+        List<String> urlList = new ArrayList<>();
+        SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+        sftp.login();
+
+        for (MultipartFile file : files) {
+            String originName = file.getOriginalFilename();
+            AtomicBoolean isVideo = new AtomicBoolean(false);
+            videoExtensionAllow.forEach(ext -> {
+                String originNameLowerCase = originName.toLowerCase();
+                if (originNameLowerCase.endsWith("." + ext)) {
+                    isVideo.set(true);
+                }
+            });
+            if (isVideo.get()) {
+                fileExtension = ".mp4";
+            }
+
+            if (originName.toLowerCase().endsWith(".mp3")) {
+                fileExtension = ".mp3";
+            }
+
+            String name = UUID.randomUUID().toString().replaceAll("-", "") + fileExtension;
+            try {
+                InputStream is = file.getInputStream();
+                String fileName =
+                    property + File.separator + UUID.randomUUID().toString().replace("-", "") + fileExtension;
+                File file1 = new File(fileName);
+                file.transferTo(file1);
+                boolean delete = file1.delete();
+                log.info("临时文件删除【{}】", delete);
+                sftp.uploadMore(FtpConstants.FTPFILEPATH_IDCARD, name, is);
+                urlList.add(url + "idcard/" + name);
+            } catch (Exception e) {
+                log.error("上传文件失败【{}】", e.getMessage());
+                return R.fail();
+            }
+        }
+        sftp.logout();
+        return R.ok(urlList);
+    }
+
+    @ApiOperation(value = "新批量文件上传接口")
+    @PostMapping(value = "/uploadsimages", 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) {
+        return communityService.getConf(code);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/CommonEventApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/CommonEventApi.java
new file mode 100644
index 0000000..a5190b1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/CommonEventApi.java
@@ -0,0 +1,191 @@
+package com.panzhihua.grid_app.api;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.vos.grid.GridMemberPositionDTO;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.grid.*;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.EventVO;
+import com.panzhihua.common.service.grid.GridService;
+import com.panzhihua.common.utlis.ClazzUtils;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Slf4j
+@RestController
+@RequestMapping("/event/common")
+@Api(tags = {"网格综治事件管理 @chendong"})
+public class CommonEventApi extends BaseController {
+
+    @Resource
+    private GridService gridService;
+
+    private boolean isCommonType(Integer eventType) {
+        if (eventType == null) {
+            return false;
+        }
+        boolean inType =
+            eventType == 1 | eventType == 2 | eventType == 3 | eventType == 4 | eventType == 5 | eventType == 6;
+        return inType;
+    }
+
+    /**
+     * 事件列表
+     * 
+     * @param pageEventDTO
+     *            查找事件
+     * @return 查找结果
+     */
+    @GetMapping("/usersList")
+    @ApiOperation(value = "事件列表", response = EventVO.class)
+    R usersList(@Validated @ModelAttribute PageEventDTO pageEventDTO) {
+        ClazzUtils.setIfStringIsEmpty(pageEventDTO);
+        if (!isCommonType(pageEventDTO.getEventType())) {
+            return R.fail(400, "事件类型错误");
+        }
+        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
+        pageEventDTO.setUserId(loginUserInfoVO.getUserId());
+        pageEventDTO.setRevokeType(1);
+        return gridService.query(pageEventDTO);
+    }
+
+    /**
+     * 新增并发布事件事件
+     * 
+     * @param commonEventAddDTO
+     *            添加事件传递对象
+     * @return 新增结果
+     */
+    @PostMapping("/release")
+    @ApiOperation(value = "新增并发布事件", response = R.class)
+    R add(@Validated @RequestBody CommonEventAddDTO commonEventAddDTO) {
+        ClazzUtils.setIfStringIsEmpty(commonEventAddDTO);
+        if (!isCommonType(commonEventAddDTO.getEventType())) {
+            return R.fail(400, "事件类型错误");
+        }
+        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
+        commonEventAddDTO.setUserId(loginUserInfoVO.getUserId());
+        commonEventAddDTO.setUserName(loginUserInfoVO.getNickName());
+        commonEventAddDTO.setPhone(loginUserInfoVO.getPhone());
+        R r = gridService.addCommon(commonEventAddDTO);
+        if(R.isOk(r)){
+            GridMemberPositionDTO memberPositionDTO = new GridMemberPositionDTO();
+            memberPositionDTO.setGridMemberId(loginUserInfoVO.getUserId());
+            memberPositionDTO.setPositionAddress(commonEventAddDTO.getHappenAddress());
+            String []lngLatString = commonEventAddDTO.getHappentLatLng().split(",");
+            memberPositionDTO.setLngLat(lngLatString[1] + "," + lngLatString[0]);
+            gridService.gridReportPosition(memberPositionDTO);
+        }
+        return r;
+    }
+
+    /**
+     * 保存草稿
+     * 
+     * @param commonEventEditDTO
+     *            保存草稿传递对象
+     * @return 新增结果
+     */
+    @PostMapping("/draft")
+    @ApiOperation(value = "保存草稿", response = R.class)
+    R saveDraft(@Validated @RequestBody CommonEventEditDTO commonEventEditDTO) {
+        ClazzUtils.setIfStringIsEmpty(commonEventEditDTO);
+        ClazzUtils.setIfStringIsEmpty(commonEventEditDTO);
+        if (!isCommonType(commonEventEditDTO.getEventType())) {
+            return R.fail(400, "事件类型错误");
+        }
+        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
+        commonEventEditDTO.setUserId(loginUserInfoVO.getUserId());
+        commonEventEditDTO.setUserName(loginUserInfoVO.getNickName());
+        commonEventEditDTO.setPhone(loginUserInfoVO.getPhone());
+        return gridService.saveDraft(commonEventEditDTO);
+    }
+
+    /**
+     * 上报社区
+     * 
+     * @param commonEventReportDTO
+     *            上报社区传递对象
+     * @return 上报结果
+     */
+    @PutMapping("/report")
+    @ApiOperation(value = "上报社区", response = R.class)
+    R report(@Validated @RequestBody CommonEventReportDTO commonEventReportDTO) {
+        LoginUserInfoVO loginUserInfoVO = getLoginUserInfo();
+        ClazzUtils.setIfStringIsEmpty(commonEventReportDTO);
+        commonEventReportDTO.setUserId(loginUserInfoVO.getUserId());
+        commonEventReportDTO.setUserName(loginUserInfoVO.getNickName());
+        commonEventReportDTO.setCommunityId(loginUserInfoVO.getCommunityId());
+        return gridService.report(commonEventReportDTO);
+    }
+
+    /**
+     * 处理事件
+     * 
+     * @param commonEventDealDTO
+     *            修改事件传递对象
+     * @return 处理结果
+     */
+    @PutMapping("/deal")
+    @ApiOperation(value = "处理事件", response = R.class)
+    R deal(@Validated @RequestBody CommonEventDealDTO commonEventDealDTO) {
+        ClazzUtils.setIfStringIsEmpty(commonEventDealDTO);
+        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
+        commonEventDealDTO.setUserId(loginUserInfoVO.getUserId());
+        commonEventDealDTO.setUserName(loginUserInfoVO.getNickName());
+        commonEventDealDTO.setOperateType(0);
+        commonEventDealDTO.setCommunityId(loginUserInfoVO.getCommunityId());
+        commonEventDealDTO.setCommunityName(loginUserInfoVO.getCommunityName());
+        return gridService.dealEvent(commonEventDealDTO);
+    }
+
+    /**
+     * 验证事件
+     * 
+     * @param commonEventVerifyDTO
+     *            验证事件传递对象
+     * @return 验证结果
+     */
+    @PutMapping("/verify")
+    @ApiOperation(value = "验证事件", response = R.class)
+    R verify(@Validated @RequestBody CommonEventVerifyDTO commonEventVerifyDTO) {
+        ClazzUtils.setIfStringIsEmpty(commonEventVerifyDTO);
+        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
+        commonEventVerifyDTO.setUserId(loginUserInfoVO.getUserId());
+        commonEventVerifyDTO.setUserName(loginUserInfoVO.getNickName());
+        return gridService.verifyEvent(commonEventVerifyDTO);
+    }
+
+    /**
+     * 直接上报社区
+     * 
+     * @param commonEventDirectReportDTO
+     *            上报社区传递对象
+     * @return 上报结果
+     */
+    @PostMapping("/reportDirect")
+    @ApiOperation(value = "直接上报社区", response = R.class)
+    R reportDirect(@Validated @RequestBody CommonEventDirectReportDTO commonEventDirectReportDTO) {
+        LoginUserInfoVO loginUserInfoVO = getLoginUserInfo();
+        ClazzUtils.setIfStringIsEmpty(commonEventDirectReportDTO);
+        commonEventDirectReportDTO.setUserId(loginUserInfoVO.getUserId());
+        commonEventDirectReportDTO.setUserName(loginUserInfoVO.getNickName());
+        commonEventDirectReportDTO.setCommunityId(loginUserInfoVO.getCommunityId());
+        return gridService.reportDirect(commonEventDirectReportDTO);
+    }
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/EasyPhotoApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/EasyPhotoApi.java
new file mode 100644
index 0000000..733db2f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/EasyPhotoApi.java
@@ -0,0 +1,75 @@
+package com.panzhihua.grid_app.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.grid.ComActEasyPhotoHandleDTO;
+import com.panzhihua.common.model.dtos.grid.PageEasyAppDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.ComActEasyPhotoVO;
+import com.panzhihua.common.service.grid.GridService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * @author lyq
+ */
+@RestController
+@RequestMapping("/easy/")
+@Api(tags = {"网格综治APP随手拍模块@lyq"})
+public class EasyPhotoApi extends BaseController {
+
+    @Resource
+    private GridService gridService;
+
+    @ApiOperation(value = "随手拍列表-lyq", response = ComActEasyPhotoVO.class)
+    @PostMapping("list")
+    public R list(@RequestBody PageEasyAppDTO easyAppDTO) {
+        LoginUserInfoVO userInfoVO = this.getLoginUserInfo();
+        if (userInfoVO == null) {
+            return R.fail("请先登录");
+        }
+        easyAppDTO.setCommunityId(userInfoVO.getCommunityId());
+        return gridService.easyList(easyAppDTO);
+    }
+
+    @ApiOperation(value = "随手拍详情-lyq", response = ComActEasyPhotoVO.class)
+    @PostMapping("detail")
+    public R detail(@RequestParam("easyId") Long easyId) {
+        return gridService.easyDetailByApp(easyId);
+    }
+
+    @ApiOperation(value = "随手拍类型列表-lyq", response = ComActEasyPhotoVO.class)
+    @PostMapping("type/list")
+    public R typeList() {
+        return gridService.easyTypeListByApp();
+    }
+
+    @ApiOperation(value = "随手拍处理-lyq")
+    @PostMapping("handle")
+    public R handle(@RequestBody ComActEasyPhotoHandleDTO photoHandleDTO) {
+        LoginUserInfoVO userInfoVO = this.getLoginUserInfo();
+        if (userInfoVO == null) {
+            return R.fail("请先登录");
+        }
+        photoHandleDTO.setHandlerId(userInfoVO.getUserId());
+        return gridService.easyHandle(photoHandleDTO);
+    }
+
+    @ApiOperation(value = "随手拍切换公示状态-lyq")
+    @PostMapping("publicity")
+    public R publicity(@RequestBody ComActEasyPhotoHandleDTO photoHandleDTO) {
+        return gridService.easyPublicity(photoHandleDTO);
+    }
+
+    @ApiOperation(value = "随手拍上报社区-lyq")
+    @PostMapping("report")
+    public R report(@RequestBody ComActEasyPhotoHandleDTO photoHandleDTO) {
+        return gridService.easyReport(photoHandleDTO);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/EventApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/EventApi.java
new file mode 100644
index 0000000..9c54932
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/EventApi.java
@@ -0,0 +1,152 @@
+package com.panzhihua.grid_app.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.grid.*;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActVO;
+import com.panzhihua.common.model.vos.grid.EventDetailsVO;
+import com.panzhihua.common.model.vos.grid.EventGridDataAreaVO;
+import com.panzhihua.common.model.vos.grid.EventSpecialPopulationVO;
+import com.panzhihua.common.service.grid.GridService;
+import com.panzhihua.common.utlis.ClazzUtils;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+// import com.panzhihua.common.model.vos.IPageVO;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Slf4j
+@RestController
+@RequestMapping("/event")
+@Api(tags = {"网格综治事件管理 @chendong", "宣传教育 @chendong", "特殊人群上报(开发中..) @chendong"})
+public class EventApi extends BaseController {
+
+    @Resource
+    private GridService gridService;
+
+    /**
+     * 撤销事件
+     * 
+     * @param eventRevokeDTO
+     *            修改事件传递对象
+     * @return 修改结果
+     */
+    @PutMapping("/revoke")
+    @ApiOperation(value = "撤销事件", response = R.class)
+    R revoke(@Validated @RequestBody EventRevokeDTO eventRevokeDTO) {
+        ClazzUtils.setIfStringIsEmpty(eventRevokeDTO);
+        LoginUserInfoVO loginUserInfoVO = getLoginUserInfo();
+        eventRevokeDTO.setUserId(loginUserInfoVO.getUserId());
+        eventRevokeDTO.setUserName(loginUserInfoVO.getNickName());
+        eventRevokeDTO.setRevokeType(1);
+        eventRevokeDTO.setRevokeId(loginUserInfoVO.getUserId());
+        return gridService.emergenciesRevoke(eventRevokeDTO);
+    }
+
+    /**
+     * 查询事件详细信息
+     * 
+     * @param id
+     *            事件 id
+     * @return 查找结果
+     */
+    @GetMapping("/{id}")
+    @ApiOperation(value = "查询事件详细信息")
+    R<EventDetailsVO> details(@PathVariable("id") Long id) {
+        return gridService.eventDetails(id);
+    }
+
+    /**
+     * 删除
+     * 
+     * @param commonEventDeleteDTO
+     *            删除事件传递对象
+     * @return 删除结果
+     */
+    @DeleteMapping()
+    @ApiOperation(value = "删除事件", response = R.class)
+    R delete(@Validated @RequestBody CommonEventDeleteDTO commonEventDeleteDTO) {
+        ClazzUtils.setIfStringIsEmpty(commonEventDeleteDTO);
+        return gridService.delete(commonEventDeleteDTO);
+    }
+
+    /**
+     * 重新发布事件
+     * 
+     * @param commonEventRepublishDTO
+     *            重新发布事件传递对象
+     * @return 修改结果
+     */
+    @PutMapping("/republish")
+    @ApiOperation(value = "重新发布事件", response = R.class)
+    R republish(@Validated @RequestBody CommonEventRepublishDTO commonEventRepublishDTO) {
+        ClazzUtils.setIfStringIsEmpty(commonEventRepublishDTO);
+        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
+        commonEventRepublishDTO.setUserId(loginUserInfoVO.getUserId());
+        commonEventRepublishDTO.setUserName(loginUserInfoVO.getNickName());
+        return gridService.republishEvent(commonEventRepublishDTO);
+    }
+
+    /**
+     * 发布草稿
+     * 
+     * @param commonEventPublicDTO
+     *            添加事件传递对象
+     * @return 新增结果
+     */
+    @PutMapping("/draft/release")
+    @ApiOperation(value = "发布草稿", response = R.class)
+    R release(@Validated @RequestBody CommonEventPublicDTO commonEventPublicDTO) {
+        ClazzUtils.setIfStringIsEmpty(commonEventPublicDTO);
+        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
+        commonEventPublicDTO.setUserId(loginUserInfoVO.getUserId());
+        commonEventPublicDTO.setUserName(loginUserInfoVO.getNickName());
+        return gridService.draftRelease(commonEventPublicDTO);
+    }
+
+    /**
+     * 查询社区列表
+     * 
+     * @return 查找结果
+     */
+    @GetMapping("/actList")
+    @ApiOperation(value = "查询社区列表", response = ComActVO.class)
+    R actList() {
+        return gridService.actList();
+    }
+
+    /**
+     * 查询距离当前事件最近的网格数据
+     * 
+     * @param pageEventGridNearbyDTO
+     * @return
+     */
+    @PostMapping("/grid/nearby")
+    @ApiOperation(value = "查询经纬度所在的网格", response = EventGridDataAreaVO.class)
+    R getNearByGrid(@Validated @RequestBody PageEventGridNearbyDTO pageEventGridNearbyDTO) {
+        return gridService.getNearByGrid(pageEventGridNearbyDTO);
+    }
+
+    @ApiOperation(value = "查询社区特殊人群列表", response = EventSpecialPopulationVO.class)
+    @PostMapping("/special/population/list")
+    public R specialPopulationList(@RequestBody PageEventSpecialPopulationDTO specialPopulationDTO) {
+        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
+        specialPopulationDTO.setCommunityId(loginUserInfoVO.getCommunityId());
+        return gridService.specialPopulationList(specialPopulationDTO);
+    }
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/EventGridDataApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/EventGridDataApi.java
new file mode 100644
index 0000000..b915e33
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/EventGridDataApi.java
@@ -0,0 +1,155 @@
+package com.panzhihua.grid_app.api;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.grid.*;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.EventGridDataDetailsVO;
+import com.panzhihua.common.model.vos.grid.EventGridDataVO;
+import com.panzhihua.common.model.vos.grid.UserEventGridDataVO;
+import com.panzhihua.common.service.grid.GridService;
+import com.panzhihua.common.utlis.ClazzUtils;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Slf4j
+@RestController
+@RequestMapping("/eventgriddata")
+@Api(tags = {"网格数据管理 @chendong"})
+public class EventGridDataApi extends BaseController {
+
+    @Resource
+    private GridService gridService;
+
+    /**
+     * 我的网格
+     * 
+     * @return 查找结果
+     */
+    @GetMapping("/myGrid")
+    @ApiOperation(value = "我的网格", response = EventGridDataVO.class)
+    R myGrid() {
+        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
+        PageEventGridDataDTO pageEventGridDataDTO = new PageEventGridDataDTO();
+        pageEventGridDataDTO.setUserId(loginUserInfoVO.getUserId());
+        pageEventGridDataDTO.setType(3l);
+        return gridService.userGrid(pageEventGridDataDTO);
+    }
+
+    /**
+     * 网格数据待处理统计信息
+     * 
+     * @return 查找结果
+     */
+    @GetMapping("/myGridTodoData")
+    @ApiOperation(value = "网格待处理统计数据", response = UserEventGridDataVO.class)
+    R myTodoGridData(@Valid @ModelAttribute EventGridTodoDataDTO eventGridTodoDataDTO) {
+        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
+        eventGridTodoDataDTO.setUserId(loginUserInfoVO.getUserId());
+        return gridService.getGridTodoData(eventGridTodoDataDTO);
+    }
+
+    /**
+     * 网格数据待处理统计信息
+     * 
+     * @return 查找结果
+     */
+    @GetMapping("/statistics/{gridId}")
+    @ApiOperation(value = "网格统计数据", response = UserEventGridDataVO.class)
+    R myGridData(@PathVariable("gridId") Long gridId) {
+        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
+        EventGridStatisticsDataDTO eventGridStatisticsDataDTO = new EventGridStatisticsDataDTO();
+        eventGridStatisticsDataDTO.setUserId(loginUserInfoVO.getUserId());
+        eventGridStatisticsDataDTO.setGridId(gridId);
+        return gridService.getGridStatisticsdData(eventGridStatisticsDataDTO);
+    }
+
+    // ===
+
+    /**
+     * 新增区县/街道/社区/网格员网格数据管理
+     * 
+     * @param {classNameFirstLower}AddDTO
+     *            添加区县/街道/社区/网格员网格数据管理传递对象
+     * @return 新增结果
+     */
+    @PostMapping()
+    @ApiOperation(value = "新增区县/街道/社区/网格员网格数据管理", response = R.class)
+    R add(@Validated @RequestBody EventGridDataAddDTO eventGridDataAddDTO) {
+        ClazzUtils.setIfStringIsEmpty(eventGridDataAddDTO);
+        eventGridDataAddDTO.setUserId(getUserId());
+        return gridService.add(eventGridDataAddDTO);
+    }
+
+    /**
+     * 修改
+     * 
+     * @param eventGridDataEditDTO
+     *            修改区县/街道/社区/网格员网格数据管理传递对象
+     * @return 修改结果
+     */
+    @PutMapping()
+    @ApiOperation(value = "编辑区县/街道/社区/网格员网格数据管理", response = R.class)
+    R edit(@Validated @RequestBody EventGridDataEditDTO eventGridDataEditDTO) {
+        ClazzUtils.setIfStringIsEmpty(eventGridDataEditDTO);
+        eventGridDataEditDTO.setUserId(getUserId());
+        return gridService.edit(eventGridDataEditDTO);
+    }
+
+    /**
+     * 分页查找
+     * 
+     * @param pageEventGridDataDTO
+     *            查找区县/街道/社区/网格员网格数据管理传递对象
+     * @return 查找结果
+     */
+    @GetMapping()
+    @ApiOperation(value = "查询区县/街道/社区/网格员网格数据管理", response = EventGridDataVO.class)
+    R query(@Validated @ModelAttribute PageEventGridDataDTO pageEventGridDataDTO) {
+        ClazzUtils.setIfStringIsEmpty(pageEventGridDataDTO);
+        return gridService.query(pageEventGridDataDTO);
+    }
+
+    /**
+     * 删除
+     * 
+     * @param eventGridDataDeleteDTO
+     *            删除区县/街道/社区/网格员网格数据管理传递对象
+     * @return 删除结果
+     */
+    @DeleteMapping()
+    @ApiOperation(value = "删除区县/街道/社区/网格员网格数据管理", response = R.class)
+    R delete(@Validated @RequestBody EventGridDataDeleteDTO eventGridDataDeleteDTO) {
+        ClazzUtils.setIfStringIsEmpty(eventGridDataDeleteDTO);
+        return gridService.delete(eventGridDataDeleteDTO);
+    }
+
+    /**
+     * 查询区县/街道/社区/网格员网格数据管理详细信息
+     * 
+     * @param id
+     *            区县/街道/社区/网格员网格数据管理 id
+     * @return 查找结果
+     */
+    @GetMapping("/{id}")
+    @ApiOperation(value = "查询区县/街道/社区/网格员网格数据管理详细信息")
+    R<EventGridDataDetailsVO> details(@PathVariable("id") Long id) {
+        return gridService.eventGridDataDetails(id);
+    }
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/LoginApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/LoginApi.java
new file mode 100644
index 0000000..7488b98
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/LoginApi.java
@@ -0,0 +1,80 @@
+package com.panzhihua.grid_app.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.bind.annotation.*;
+
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.LoginReturnVO;
+import com.panzhihua.common.model.vos.LoginReturnsVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.auth.TokenService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.grid_app.model.vos.LoginBody;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * @author cedoo
+ */
+@RestController
+@RequestMapping("/")
+@Api(tags = {"登录 @chendong"})
+public class LoginApi extends BaseController {
+    @Resource
+    private TokenService tokenService;
+    @Resource
+    private UserService userService;
+
+    @ApiOperation(value = "网格综治APP登录", response = LoginReturnVO.class)
+    @PostMapping("login")
+    public R login(@RequestBody LoginBody loginBody) {
+        String account = loginBody.getAccount();
+        String password = loginBody.getPassword();
+        boolean empty = ObjectUtils.isEmpty(account);
+        boolean empty1 = ObjectUtils.isEmpty(password);
+        if (empty || empty1) {
+            return R.fail("账户密码不能为空");
+        }
+        R r = tokenService.loginGridApp(account, password,this.getAppId());
+        if (R.isOk(r)) {
+            LoginReturnsVO returnsVO =
+                JSONObject.parseObject(JSONObject.toJSONString(r.getData()), LoginReturnsVO.class);
+            // 查询用户是否绑定网格,如果未绑定则提示用户
+            R r1 = userService.getGridIsOk(returnsVO.getUserId());
+            if (R.isOk(r1)) {
+                LoginReturnVO returnVO = new LoginReturnVO();
+                BeanUtils.copyProperties(returnsVO, returnVO);
+                r.setData(returnVO);
+                return r;
+            } else {
+                return R.fail("请联系管理员创建网格管理权限");
+            }
+        }
+        return r;
+    }
+
+    @ApiOperation(value = "刷新token", response = LoginReturnVO.class)
+    @GetMapping("refreshToken")
+    @ApiImplicitParam(name = "refreshToken", value = "登录返回的刷新token")
+    public R refreshToken(@RequestParam("refreshToken") String refreshToken) {
+        return tokenService.refreshToken(refreshToken);
+    }
+
+    @ApiOperation(value = "用户登出")
+    @PostMapping("logout")
+    public R logout() {
+        String token = this.getToken();
+        boolean empty2 = ObjectUtils.isEmpty(token);
+        if (empty2) {
+            return R.ok();
+        }
+        return tokenService.logout(token);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/MapApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/MapApi.java
new file mode 100644
index 0000000..e72098f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/MapApi.java
@@ -0,0 +1,84 @@
+package com.panzhihua.grid_app.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.grid.EventGridCascadeListDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.ComMapGridDetailVO;
+import com.panzhihua.common.model.vos.grid.EventMapGridCascadeVO;
+import com.panzhihua.common.model.vos.grid.EventMapGridVO;
+import com.panzhihua.common.model.vos.grid.EventMapTrajectoryVO;
+import com.panzhihua.common.service.grid.GridService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * @author lyq
+ */
+@RestController
+@RequestMapping("/map/")
+@Api(tags = {"网格综治APP地图模块@lyq"})
+public class MapApi extends BaseController {
+
+    @Resource
+    private GridService gridService;
+
+    @ApiOperation(value = "根据网格id查询网格详细信息-lyq", response = ComMapGridDetailVO.class)
+    @PostMapping("getGridDetail")
+    public R getGridDetail(@RequestParam("gridId") Long gridId) {
+        if (gridId == null) {
+            return R.fail("参数错误");
+        }
+        return gridService.getGridDetail(gridId);
+    }
+
+    @ApiOperation(value = "查询网格员今日运动轨迹-lyq", response = EventMapTrajectoryVO.class)
+    @PostMapping("getTrajectory")
+    public R getTrajectory() {
+        LoginUserInfoVO userInfoVO = this.getLoginUserInfo();
+        if (userInfoVO == null || userInfoVO.getUserId() == null) {
+            return R.fail("请先登录");
+        }
+        return gridService.getTrajectoryByApp(userInfoVO.getUserId());
+    }
+
+    @ApiOperation(value = "查询网格员关联网格列表-lyq", response = EventMapGridVO.class)
+    @PostMapping("getGridList")
+    public R getGridList() {
+        LoginUserInfoVO userInfoVO = this.getLoginUserInfo();
+        if (userInfoVO == null || userInfoVO.getUserId() == null) {
+            return R.fail("请先登录");
+        }
+        return gridService.getMapGridListByApp(userInfoVO.getUserId());
+    }
+
+    @ApiOperation(value = "查询网格员关联网格列表级联-lyq", response = EventMapGridVO.class)
+    @PostMapping("getGridLists")
+    public R getGridLists(@RequestBody EventGridCascadeListDTO cascadeListDTO) {
+        LoginUserInfoVO userInfoVO = this.getLoginUserInfo();
+        if (userInfoVO == null || userInfoVO.getUserId() == null) {
+            return R.fail("请先登录");
+        }
+        if (cascadeListDTO.getType() == null) {
+            return R.fail("参数错误");
+        }
+        cascadeListDTO.setUserId(userInfoVO.getUserId());
+        return gridService.getMapGridListsByApp(cascadeListDTO);
+    }
+
+    @ApiOperation(value = "查询网格员关联网格列表级联2-lyq", response = EventMapGridCascadeVO.class)
+    @PostMapping("getGridsLists")
+    public R getGridsLists() {
+        LoginUserInfoVO userInfoVO = this.getLoginUserInfo();
+        if (userInfoVO == null || userInfoVO.getUserId() == null) {
+            return R.fail("请先登录");
+        }
+        return gridService.getMapGridsListsByApp(userInfoVO.getUserId());
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/PopulationApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/PopulationApi.java
new file mode 100644
index 0000000..1c17c23
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/PopulationApi.java
@@ -0,0 +1,51 @@
+package com.panzhihua.grid_app.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.grid.PagePopulationListDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.PopulationDetailVO;
+import com.panzhihua.common.model.vos.grid.PopulationListVO;
+import com.panzhihua.common.service.community.CommunityService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+@RestController
+@RequestMapping("/population")
+@Api(tags = {"网格综治居民管理 @lyq"})
+public class PopulationApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @PostMapping("/list")
+    @ApiOperation(value = "查询居民列表", response = PopulationListVO.class)
+    public R list(@RequestBody PagePopulationListDTO populationListDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        populationListDTO.setCommunityId(loginUserInfo.getCommunityId());
+        return communityService.getPopulationListByApp(populationListDTO);
+    }
+
+    @GetMapping("/detail")
+    @ApiOperation(value = "查询居民详情", response = PopulationDetailVO.class)
+    public R detail(@RequestParam("populationId") Long populationId) {
+        if (populationId == null) {
+            return R.fail("参数错误");
+        }
+        return communityService.getPopulationDetailByApp(populationId);
+    }
+
+    @GetMapping("/repair/noToken")
+    @ApiOperation(value = "修复居民身份证号码加密接口-不要乱调用")
+    public R repair() {
+        return communityService.getPopulationRepairByApp();
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/PublicityEventApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/PublicityEventApi.java
new file mode 100644
index 0000000..e1fc46f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/PublicityEventApi.java
@@ -0,0 +1,105 @@
+package com.panzhihua.grid_app.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.grid.PageEventGridNearbyDTO;
+import com.panzhihua.common.model.dtos.grid.PagePublicityEventDTO;
+import com.panzhihua.common.model.dtos.grid.PublicityEventAddDTO;
+import com.panzhihua.common.model.dtos.grid.PublicityEventEditDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.EventGridDataAreaVO;
+import com.panzhihua.common.model.vos.grid.EventVO;
+import com.panzhihua.common.service.grid.GridService;
+import com.panzhihua.common.utlis.ClazzUtils;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Slf4j
+@RestController
+@RequestMapping("/event/publicity")
+@Api(tags = {"宣传教育 @chendong"})
+public class PublicityEventApi extends BaseController {
+
+    @Resource
+    private GridService gridService;
+
+    /**
+     * 事件列表
+     * 
+     * @param pagePublicityEventDTO
+     *            查找事件
+     * @return 查找结果
+     */
+    @GetMapping("/usersList")
+    @ApiOperation(value = "宣传教育事件列表", response = EventVO.class)
+    R usersPublicityList(@Validated @ModelAttribute PagePublicityEventDTO pagePublicityEventDTO) {
+        ClazzUtils.setIfStringIsEmpty(pagePublicityEventDTO);
+        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
+        pagePublicityEventDTO.setUserId(loginUserInfoVO.getUserId());
+        pagePublicityEventDTO.setRevokeType(1);
+        return gridService.queryPublicity(pagePublicityEventDTO);
+    }
+
+    /**
+     * 添加宣传教育事件
+     * 
+     * @param publicityEventAddDTO
+     *            特殊人群信息
+     * @return 查找结果
+     */
+    @PostMapping()
+    @ApiOperation(value = "发布宣传教育事件", response = R.class)
+    R addPublicity(@Validated @RequestBody PublicityEventAddDTO publicityEventAddDTO) {
+        ClazzUtils.setIfStringIsEmpty(publicityEventAddDTO);
+        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
+        publicityEventAddDTO.setUserId(loginUserInfoVO.getUserId());
+        publicityEventAddDTO.setUserName(loginUserInfoVO.getNickName());
+        publicityEventAddDTO.setPhone(loginUserInfoVO.getPhone());
+        return gridService.addPublicity(publicityEventAddDTO);
+    }
+
+    /**
+     * 保存宣传教育事件草稿
+     * 
+     * @param publicityEventEditDTO
+     *            保存草稿传递对象
+     * @return 保存结果
+     */
+    @PostMapping("/draft")
+    @ApiOperation(value = "保存宣传教育事件草稿", response = R.class)
+    R savePublicityDraft(@Validated @RequestBody PublicityEventEditDTO publicityEventEditDTO) {
+        ClazzUtils.setIfStringIsEmpty(publicityEventEditDTO);
+        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
+        publicityEventEditDTO.setUserId(loginUserInfoVO.getUserId());
+        publicityEventEditDTO.setUserName(loginUserInfoVO.getNickName());
+        publicityEventEditDTO.setPhone(loginUserInfoVO.getPhone());
+        return gridService.savePublicityDraft(publicityEventEditDTO);
+    }
+
+    /**
+     * 查询距离当前事件最近的网格数据
+     * 
+     * @param pageEventGridNearbyDTO
+     * @return
+     */
+    @PostMapping("/grid/nearby")
+    @ApiOperation(value = "查询经纬度所在的网格", response = EventGridDataAreaVO.class)
+    R getNearByGrid(@Validated @RequestBody PageEventGridNearbyDTO pageEventGridNearbyDTO) {
+        return gridService.getNearByGrid(pageEventGridNearbyDTO);
+    }
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/SpecialPopulationEventApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/SpecialPopulationEventApi.java
new file mode 100644
index 0000000..46411b5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/SpecialPopulationEventApi.java
@@ -0,0 +1,158 @@
+package com.panzhihua.grid_app.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.grid.*;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngPopulationVO;
+import com.panzhihua.common.service.grid.GridService;
+import com.panzhihua.common.utlis.ClazzUtils;
+import com.panzhihua.common.utlis.IdCardUtil;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Slf4j
+@RestController
+@RequestMapping("/event/special")
+@Api(tags = {"特殊人群上报(开发中..) @chendong"})
+public class SpecialPopulationEventApi extends BaseController {
+
+    @Resource
+    private GridService gridService;
+
+    /**
+     * 添加特殊人群
+     * 
+     * @param specialEventAddDTO
+     *            特殊人群信息
+     * @return 查找结果
+     */
+    @PostMapping()
+    @ApiOperation(value = "发布特殊人群事件", response = R.class)
+    R addSpecial(@Validated @RequestBody SpecialEventAddDTO specialEventAddDTO) {
+        ClazzUtils.setIfStringIsEmpty(specialEventAddDTO);
+        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
+        specialEventAddDTO.setUserId(loginUserInfoVO.getUserId());
+        specialEventAddDTO.setUserName(loginUserInfoVO.getName());
+        specialEventAddDTO.setPhone(loginUserInfoVO.getPhone());
+        return gridService.addSpecial(specialEventAddDTO);
+    }
+
+    /**
+     * 保存特殊人群草稿
+     * 
+     * @param specialEventEditDTO
+     *            保存草稿传递对象
+     * @return 新增结果
+     */
+    @PostMapping("/draft")
+    @ApiOperation(value = "保存特殊人群事件草稿", response = R.class)
+    R saveSpecialDraft(@Validated @RequestBody SpecialEventEditDTO specialEventEditDTO) {
+        ClazzUtils.setIfStringIsEmpty(specialEventEditDTO);
+        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
+        specialEventEditDTO.setUserId(loginUserInfoVO.getUserId());
+        specialEventEditDTO.setUserName(loginUserInfoVO.getNickName());
+        specialEventEditDTO.setPhone(loginUserInfoVO.getPhone());
+        return gridService.saveSpecialDraft(specialEventEditDTO);
+    }
+
+    @GetMapping("/{idCard}")
+    @ApiOperation(value = "查询特殊人群信息", response = ComMngPopulationVO.class)
+    R getSpecialByIdCard(@PathVariable String idCard) {
+        if (idCard != null) {
+            boolean verified = IdCardUtil.strongVerifyIdNumber(idCard);
+            if (!verified) {
+                return R.fail("身份证格式错误");
+            }
+            return gridService.getSpecialPopulation(idCard);
+        }
+        return R.fail();
+    }
+
+    /**
+     * 上报社区
+     * 
+     * @param commonEventReportDTO
+     *            上报社区传递对象
+     * @return 上报结果
+     */
+    @PutMapping("/report")
+    @ApiOperation(value = "上报社区", response = R.class)
+    R report(@Validated @RequestBody CommonEventReportDTO commonEventReportDTO) {
+        LoginUserInfoVO loginUserInfoVO = getLoginUserInfo();
+        ClazzUtils.setIfStringIsEmpty(commonEventReportDTO);
+        commonEventReportDTO.setUserId(loginUserInfoVO.getUserId());
+        commonEventReportDTO.setUserName(loginUserInfoVO.getNickName());
+        commonEventReportDTO.setCommunityId(loginUserInfoVO.getCommunityId());
+        return gridService.report(commonEventReportDTO);
+    }
+
+    /**
+     * 处理事件
+     * 
+     * @param commonEventDealDTO
+     *            修改事件传递对象
+     * @return 处理结果
+     */
+    @PutMapping("/deal")
+    @ApiOperation(value = "处理事件", response = R.class)
+    R deal(@Validated @RequestBody CommonEventDealDTO commonEventDealDTO) {
+        ClazzUtils.setIfStringIsEmpty(commonEventDealDTO);
+        LoginUserInfoVO loginUserInfoVO = new LoginUserInfoVO();
+        commonEventDealDTO.setUserId(loginUserInfoVO.getUserId());
+        commonEventDealDTO.setUserName(loginUserInfoVO.getNickName());
+        commonEventDealDTO.setCommunityId(loginUserInfoVO.getCommunityId());
+        commonEventDealDTO.setCommunityName(loginUserInfoVO.getCommunityName());
+        return gridService.dealEvent(commonEventDealDTO);
+    }
+
+    /**
+     * 验证事件
+     * 
+     * @param commonEventVerifyDTO
+     *            验证事件传递对象
+     * @return 验证结果
+     */
+    @PutMapping("/verify")
+    @ApiOperation(value = "验证事件", response = R.class)
+    R verify(@Validated @RequestBody CommonEventVerifyDTO commonEventVerifyDTO) {
+        ClazzUtils.setIfStringIsEmpty(commonEventVerifyDTO);
+        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
+        commonEventVerifyDTO.setUserId(loginUserInfoVO.getUserId());
+        commonEventVerifyDTO.setUserName(loginUserInfoVO.getNickName());
+        return gridService.verifyEvent(commonEventVerifyDTO);
+    }
+
+    /**
+     * 直接上报社区
+     * 
+     * @param commonEventDirectReportDTO
+     *            上报社区传递对象
+     * @return 上报结果
+     */
+    @PostMapping("/reportDirect")
+    @ApiOperation(value = "直接上报社区", response = R.class)
+    R reportDirect(@Validated @RequestBody CommonEventDirectReportDTO commonEventDirectReportDTO) {
+        LoginUserInfoVO loginUserInfoVO = getLoginUserInfo();
+        ClazzUtils.setIfStringIsEmpty(commonEventDirectReportDTO);
+        commonEventDirectReportDTO.setUserId(loginUserInfoVO.getUserId());
+        commonEventDirectReportDTO.setUserName(loginUserInfoVO.getNickName());
+        commonEventDirectReportDTO.setCommunityId(loginUserInfoVO.getCommunityId());
+        return gridService.reportDirect(commonEventDirectReportDTO);
+    }
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/StatisticsApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/StatisticsApi.java
new file mode 100644
index 0000000..2ee85bd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/StatisticsApi.java
@@ -0,0 +1,48 @@
+package com.panzhihua.grid_app.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.grid.GridEventStatisticsDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.GridEventStatisticsDetailVO;
+import com.panzhihua.common.model.vos.grid.GridEventStatisticsVO;
+import com.panzhihua.common.service.grid.GridService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+@RestController
+@RequestMapping("/statistics/")
+@Api(tags = {"网格综治APP统计模块@lyq"})
+public class StatisticsApi extends BaseController {
+
+    @Resource
+    private GridService gridService;
+
+    @ApiOperation(value = "根据网格id查询统计详情-lyq", response = GridEventStatisticsVO.class)
+    @PostMapping("event")
+    public R getGridDetail(@RequestParam("gridId") Long gridId) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        if (gridId == null) {
+            return R.fail("参数错误");
+        }
+        return gridService.getGridEventStatisticsByApp(gridId, loginUserInfo.getUserId());
+    }
+
+    @ApiOperation(value = "网格id查询统计事件详情-lyq", response = GridEventStatisticsDetailVO.class)
+    @PostMapping("event/detail")
+    public R getGridEventDetailStatistics(@RequestBody GridEventStatisticsDTO statisticsDTO) {
+        if (statisticsDTO == null || statisticsDTO.getGridId() == null) {
+            return R.fail("参数错误");
+        }
+        return gridService.getGridEventDetailStatisticsByApp(statisticsDTO);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/UserApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/UserApi.java
new file mode 100644
index 0000000..e4f8e13
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/UserApi.java
@@ -0,0 +1,133 @@
+package com.panzhihua.grid_app.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.util.ObjectUtils;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.EditUserInfoAppDTO;
+import com.panzhihua.common.model.vos.EditUserInfoPassAppDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActVO;
+import com.panzhihua.common.model.vos.grid.GridMemberPositionDTO;
+import com.panzhihua.common.service.auth.TokenService;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.grid.GridService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.common.validated.AddGroup;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 我的模块
+ * 
+ * @author lyq
+ */
+@Slf4j
+@RestController
+@RequestMapping("/user/")
+@Api(tags = {"我的模块"})
+public class UserApi extends BaseController {
+
+    @Resource
+    private UserService userService;
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private TokenService tokenService;
+    @Resource
+    private GridService gridService;
+
+    @ApiOperation(value = "当前登录用户信息-lyq", response = LoginUserInfoVO.class)
+    @GetMapping("/info")
+    public R getUserInfo() {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long communityId = loginUserInfo.getCommunityId();
+        Long userId = loginUserInfo.getUserId();
+        R<LoginUserInfoVO> r = userService.getUserInfoByUserId(userId + "");
+
+        if (R.isOk(r)) {
+            Object data = r.getData();
+            if (!ObjectUtils.isEmpty(data)) {
+                LoginUserInfoVO loginUserInfoVO = (LoginUserInfoVO)data;
+                // 查询社区信息
+                if (null != communityId && 0 != communityId) {
+                    R r1 = communityService.detailCommunity(communityId);
+                    if (R.isOk(r1)) {
+                        Object data1 = r1.getData();
+                        if (!ObjectUtils.isEmpty(data1)) {
+                            loginUserInfoVO
+                                .setComActVO(JSONObject.parseObject(JSONObject.toJSONString(data1), ComActVO.class));
+                            r.setData(loginUserInfoVO);
+                        }
+                    }
+                }
+            }
+        }
+        return r;
+    }
+
+    @ApiOperation(value = "修改用户信息-lyq")
+    @PostMapping("/user")
+    public R putUser(@RequestBody EditUserInfoAppDTO userInfoAppDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        if (StringUtils.isNotEmpty(userInfoAppDTO.getImagesUrl())) {
+            loginUserInfo.setImageUrl(userInfoAppDTO.getImagesUrl());
+            loginUserInfo.setNickName(null);
+        }
+        if (StringUtils.isNotEmpty(userInfoAppDTO.getNickName())) {
+            loginUserInfo.setNickName(userInfoAppDTO.getNickName());
+            loginUserInfo.setName(userInfoAppDTO.getNickName());
+            loginUserInfo.setImageUrl(null);
+        }
+        return userService.putUser(loginUserInfo);
+    }
+
+    @ApiOperation(value = "修改用户登录密码-lyq")
+    @PutMapping("/edit/pass")
+    public R updatePass(@RequestBody EditUserInfoPassAppDTO userInfoAppDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        userInfoAppDTO.setUserId(loginUserInfo.getUserId());
+        R updateUser = userService.updateUserPassByApp(userInfoAppDTO);
+        if (R.isOk(updateUser)) {
+            String token = this.getToken();
+            if (StringUtils.isNotEmpty(token)) {
+                tokenService.logout(token);
+            }
+            return R.ok();
+        } else {
+            return updateUser;
+        }
+    }
+
+    @ApiOperation(value = "根据版本号获取最新版本信息-lyq")
+    @GetMapping("/edition")
+    public R editionUpdate() {
+        return gridService.editionUpdate();
+    }
+
+    @ApiOperation(value = "网格员定时上报地理位置-lyq")
+    @PostMapping("/report")
+    public R gridReportPosition(@RequestBody @Validated(AddGroup.class) GridMemberPositionDTO memberPositionDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        memberPositionDTO.setGridMemberId(loginUserInfo.getUserId());
+        return gridService.gridReportPosition(memberPositionDTO);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/VillageApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/VillageApi.java
new file mode 100644
index 0000000..3cf2511
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/VillageApi.java
@@ -0,0 +1,71 @@
+package com.panzhihua.grid_app.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.grid.*;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.*;
+import com.panzhihua.common.service.community.CommunityService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+@Api(tags = {"小区模块"})
+@RestController
+@RequestMapping("/village/")
+public class VillageApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "小区列表@lyq", response = PageComMngVillageVO.class)
+    @PostMapping("/list")
+    public R list(@RequestBody ComMngVillageListAppDTO villageListAppDTO) {
+        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
+        villageListAppDTO.setCommunityId(loginUserInfoVO.getCommunityId());
+        return communityService.getGridVillageListApp(villageListAppDTO);
+    }
+
+    @ApiOperation(value = "小区楼栋列表@lyq", response = ComMngVillageBuildingVO.class)
+    @PostMapping("/building/list")
+    public R buildingList(@RequestParam("villageId") Long villageId) {
+        return communityService.getGridVillageBuildingList(villageId);
+    }
+
+    @ApiOperation(value = "小区楼栋下房屋列表@lyq", response = ComMngVillageBuildingHouseVO.class)
+    @PostMapping("/building/house/list")
+    public R buildingHouseList(@RequestBody PageComMngVillageBuildHouseAppDTO buildHouseAppDTO) {
+        return communityService.getGridVillageBuildingHouseList(buildHouseAppDTO);
+    }
+
+    @ApiOperation(value = "房屋详情@lyq", response = ComMngVillageBuildingHouseDetailVO.class)
+    @PostMapping("/building/house/detail")
+    public R buildingHouseDetail(@RequestParam("houseId") Long houseId) {
+        return communityService.getGridVillageBuildingHouseDetail(houseId);
+    }
+
+    @ApiOperation(value = "查询人口列表", response = EventSpecialPopulationVO.class)
+    @PostMapping("/building/house/population/list")
+    public R getBuildingHousePopulationList(@RequestBody PageComMngPopulationDTO populationDTO) {
+        return communityService.getBuildingHousePopulationList(populationDTO);
+    }
+
+    @ApiOperation(value = "房屋添加人员")
+    @PostMapping("/building/house/add/population")
+    public R addBuildingHousePopulation(@RequestBody AddComMngHousePopulationDTO housePopulationDTO) {
+        return communityService.addBuildingHousePopulation(housePopulationDTO);
+    }
+
+    @ApiOperation(value = "房屋删除人员")
+    @PostMapping("/building/house/del/population")
+    public R delBuildingHousePopulation(@RequestBody DelComMngHousePopulationDTO housePopulationDTO) {
+        return communityService.delBuildingHousePopulation(housePopulationDTO);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/VisitingTasksApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/VisitingTasksApi.java
new file mode 100644
index 0000000..e12540f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/api/VisitingTasksApi.java
@@ -0,0 +1,68 @@
+package com.panzhihua.grid_app.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.visit.EventVisitCompleteDTO;
+import com.panzhihua.common.model.query.visit.EventTasksQuery;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.visit.AppVisitTasksVO;
+import com.panzhihua.common.model.vos.visit.EventVisitingTasksDetailsVO;
+import com.panzhihua.common.service.grid.GridService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 走访任务
+ * 
+ * @author xyh
+ * @date 2021/6/23 9:01
+ */
+@Slf4j
+@RestController
+@RequestMapping("/visit/")
+@Api(tags = {"走访任务"})
+public class VisitingTasksApi extends BaseController {
+
+    @Resource
+    private GridService gridService;
+
+    @ApiOperation(value = "走访记录-xyh", response = AppVisitTasksVO.class)
+    @PostMapping("/list")
+    public R list(@RequestBody EventTasksQuery query) {
+        // query.setCommunityId(this.getCommunityId());
+        return gridService.list(query);
+    }
+
+    @ApiOperation(value = "走访任务-xyh", response = AppVisitTasksVO.class)
+    @PostMapping("/taskList")
+    public R taskList(@RequestBody EventTasksQuery query) {
+        // query.setCommunityId(this.getCommunityId());
+        // query.setUserId(this.getUserId());
+        return gridService.appTaskList(query);
+    }
+
+    @ApiOperation(value = "走访详情-xyh", response = EventVisitingTasksDetailsVO.class)
+    @GetMapping("/detail/{id}")
+    public R detail(@PathVariable Long id) {
+        return gridService.detail(id);
+    }
+
+    // @ApiOperation(value = "开始走访-xyh")
+    // @PostMapping("/start")
+    public R start(@RequestParam("id") Long id) {
+        return gridService.start(id, this.getUserId());
+    }
+
+    @ApiOperation(value = "完成走访记录-xyh")
+    @PostMapping("/complete")
+    public synchronized R complete(@RequestBody @Validated EventVisitCompleteDTO taskCompleteDTO) {
+        taskCompleteDTO.setUserId(this.getUserId());
+        return gridService.complete(taskCompleteDTO);
+    }
+}
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_app/src/main/java/com/panzhihua/grid_app/config/SFTPConfig.java b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/config/SFTPConfig.java
new file mode 100644
index 0000000..c2ec43a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/config/SFTPConfig.java
@@ -0,0 +1,31 @@
+package com.panzhihua.grid_app.config;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Configuration;
+
+import lombok.Data;
+
+/**
+ * @Author: llming
+ * @Description:
+ */
+@Configuration
+@Data
+public class SFTPConfig {
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+    @Value("${ftp.url}")
+    private String url;
+    @Value("${excel.userurl}")
+    private String excelUrl;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/config/SwaggerConfig.java b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/config/SwaggerConfig.java
new file mode 100644
index 0000000..6902782
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/config/SwaggerConfig.java
@@ -0,0 +1,33 @@
+package com.panzhihua.grid_app.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import io.swagger.annotations.ApiOperation;
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.service.Contact;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: swagger3
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-19 16:08
+ **/
+@Configuration
+public class SwaggerConfig {
+    @Bean
+    public Docket createRestApi() {
+        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
+            .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)).paths(PathSelectors.any()).build();
+    }
+
+    private ApiInfo apiInfo() {
+        return new ApiInfoBuilder().title("网格app管理接口").description("。")
+            .contact(new Contact("Ray。", "http://www.ruiyeclub.cn", "ruiyeclub@foxmail.com")).version("1.0").build();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/model/vos/LoginBody.java b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/model/vos/LoginBody.java
new file mode 100644
index 0000000..e08b783
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/java/com/panzhihua/grid_app/model/vos/LoginBody.java
@@ -0,0 +1,25 @@
+package com.panzhihua.grid_app.model.vos;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 登录
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-24 10:54
+ **/
+@Data
+@ApiModel(value = "网格综治APP登录")
+@AllArgsConstructor
+@NoArgsConstructor
+public class LoginBody {
+
+    @ApiModelProperty(value = "登录账户")
+    private String account;
+    @ApiModelProperty(value = "登录密码")
+    private String password;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/resources/bootstrap.yml b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..b712dbf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/resources/bootstrap.yml
@@ -0,0 +1,35 @@
+spring:
+  application:
+    name: gridapp
+  cloud:
+    config:
+      discovery:
+        enabled: true
+        service-id: huacheng-config  # 注册中心的服务名
+      profile: ${ENV:dev}  # 指定配置文件的环境
+      uri: http://${CONFIG_URL:localhost}:6193/
+  profiles:
+    active: ${ENV:dev}
+  servlet:
+    multipart:
+      max-file-size: 200MB
+      max-request-size: 200MB
+
+eureka:
+  client:
+    service-url:
+      defaultZone: http://${EUREKA_URL:localhost}:8192/eureka
+
+management:
+  endpoints:
+    web:
+      exposure:
+        include: '*'
+
+  endpoint:
+    health:
+      show-details: always
+
+  metrics:
+    tags:
+      application: gridapp
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/resources/logback-spring.xml b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..b96cf20
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_app/src/main/resources/logback-spring.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration debug="false">
+    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
+    <springProfile name="dev">
+        <property name="LOG_HOME" value="F:/log" />
+    </springProfile>
+       <springProfile name="test">
+        <property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    </springProfile>
+<property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    <!-- 控制台输出 -->
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+    </appender>
+    <!-- 按照每天生成日志文件 -->
+    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!--日志文件输出的文件名-->
+            <FileNamePattern>${LOG_HOME}/grid_app.log.%d{yyyy-MM-dd}.log</FileNamePattern>
+            <!--日志文件保留天数-->
+            <MaxHistory>30</MaxHistory>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+        <!--日志文件最大的大小-->
+        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <MaxFileSize>10MB</MaxFileSize>
+        </triggeringPolicy>
+    </appender>
+
+    <!--myibatis log configure-->
+    <logger name="com.apache.ibatis" level="TRACE"/>
+    <logger name="java.sql.Connection" level="DEBUG"/>
+    <logger name="java.sql.Statement" level="DEBUG"/>
+    <logger name="java.sql.PreparedStatement" level="DEBUG"/>
+    <logger name="com.panzhihua.community_backstage" level="DEBUG"/>
+
+    <!-- 日志输出级别 -->
+    <root level="DEBUG">
+        <appender-ref ref="STDOUT" />
+    </root>
+    <root level="INFO">
+        <appender-ref ref="STDOUT" />
+        <appender-ref ref="FILE" />
+    </root>
+</configuration>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/.gitignore b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/.gitignore
new file mode 100644
index 0000000..549e00a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/.gitignore
@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/pom.xml
new file mode 100644
index 0000000..be465b0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/pom.xml
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.panzhihua</groupId>
+        <artifactId>zhihuishequ</artifactId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <groupId>com.panzhihua</groupId>
+    <artifactId>grid_backstage</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>grid_backstage</name>
+    <description>网格治理-后台</description>
+
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-config</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>com.panzhihua</groupId>
+            <artifactId>common</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.netflix.hystrix</groupId>
+            <artifactId>hystrix-javanica</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.github.xiaoymin</groupId>
+            <artifactId>swagger-bootstrap-ui</artifactId>
+        </dependency>
+        <!--添加监控依赖包-->
+        <dependency>
+            <groupId>io.micrometer</groupId>
+            <artifactId>micrometer-registry-prometheus</artifactId>
+        </dependency>
+        <dependency>
+            <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>
+        <dependency>
+            <groupId>com.github.penggle</groupId>
+            <artifactId>kaptcha</artifactId>
+            <version>2.3.2</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>2.5.0</version>
+                <configuration>
+                    <mainClass>com.panzhihua.grid_backstage.GridBackstageApplication</mainClass>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>docker-maven-plugin</artifactId>
+                <version>1.2.0</version>
+                <configuration>
+                    <imageName>registry.cn-chengdu.aliyuncs.com/panzhihua/community_backstage:v1</imageName>
+                    <serverId></serverId>
+                    <baseImage>java</baseImage>
+                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
+                    <resources>
+                        <resource>
+                            <targetPath>/</targetPath>
+                            <directory>${project.build.directory}</directory>
+                            <include>${project.build.finalName}.jar</include>
+                        </resource>
+                    </resources>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <repositories>
+        <repository>
+            <id>spring-snapshots</id>
+            <name>Spring Snapshots</name>
+            <url>https://repo.spring.io/snapshot</url>
+            <snapshots>
+                <enabled>true</enabled>
+            </snapshots>
+        </repository>
+        <repository>
+            <id>spring-milestones</id>
+            <name>Spring Milestones</name>
+            <url>https://repo.spring.io/milestone</url>
+        </repository>
+    </repositories>
+
+</project>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/GridBackstageApplication.java b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/GridBackstageApplication.java
new file mode 100644
index 0000000..0649330
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/GridBackstageApplication.java
@@ -0,0 +1,24 @@
+package com.panzhihua.grid_backstage;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.cloud.client.SpringCloudApplication;
+import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.ComponentScan;
+
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+@EnableSwagger2
+@SpringCloudApplication
+@EnableCircuitBreaker
+@EnableEurekaClient
+@EnableFeignClients(basePackages = {"com.panzhihua.common.service"})
+@ComponentScan({"com.panzhihua.grid_backstage", "com.panzhihua.common"})
+public class GridBackstageApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(GridBackstageApplication.class, args);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/aop/OperLogAspect.java b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/aop/OperLogAspect.java
new file mode 100644
index 0000000..fb914b2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/aop/OperLogAspect.java
@@ -0,0 +1,235 @@
+package com.panzhihua.grid_backstage.aop;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.lang.reflect.Method;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.annotation.AfterReturning;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Pointcut;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.springframework.stereotype.Component;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.context.request.RequestAttributes;
+import org.springframework.web.context.request.RequestContextHolder;
+
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.constants.TokenConstant;
+import com.panzhihua.common.interfaces.OperLog;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.user.SysOperLogVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.AES;
+import com.panzhihua.common.utlis.IPUtil;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 切面处理类,操作日志异常日志记录处理
+ *
+ * @author wu
+ * @date 2019/03/21
+ */
+@Slf4j
+@Aspect
+@Component
+public class OperLogAspect {
+
+    @Resource
+    private UserService userService;
+
+    /**
+     * 设置操作日志切入点 记录操作日志 在注解的位置切入代码
+     */
+    @Pointcut("@annotation(com.panzhihua.common.interfaces.OperLog)")
+    public void operLogPoinCut() {}
+
+    // /**
+    // * 设置操作异常切入点记录异常日志 扫描所有controller包下操作
+    // */
+    // @Pointcut("execution(* com.hyd.zcar.cms.controller..*.*(..))")
+    // public void operExceptionLogPoinCut() {
+    // }
+
+    /**
+     * 正常返回通知,拦截用户操作日志,连接点正常执行完成后执行, 如果连接点抛出异常,则不会执行
+     *
+     * @param joinPoint
+     *            切入点
+     * @param keys
+     *            返回结果
+     */
+    @AfterReturning(value = "operLogPoinCut()", returning = "keys")
+    public void saveOperLog(JoinPoint joinPoint, Object keys) {
+        log.info("进入切面");
+        // 获取RequestAttributes
+        RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
+        // 从获取RequestAttributes中获取HttpServletRequest的信息
+        HttpServletRequest request =
+            (HttpServletRequest)requestAttributes.resolveReference(RequestAttributes.REFERENCE_REQUEST);
+        // 登录对象信息
+        String userInfo = request.getHeader(TokenConstant.TOKEN_USERINFO);
+        boolean empty = ObjectUtils.isEmpty(userInfo);
+        if (empty) {
+            log.error("操作日志获取登录用户信息失败【{}】", joinPoint);
+            return;
+        }
+        byte[] bytes = AES.parseHexStr2Byte(userInfo);
+        byte[] decrypt = AES.decrypt(bytes, Constants.AES_KEY);
+        userInfo = new String(decrypt);
+        LoginUserInfoVO loginUserInfoVO = JSONObject.parseObject(userInfo, LoginUserInfoVO.class);
+
+        SysOperLogVO operlog = new SysOperLogVO();
+        try {
+
+            // 从切面织入点处通过反射机制获取织入点处的方法
+            MethodSignature signature = (MethodSignature)joinPoint.getSignature();
+            // 获取切入点所在的方法
+            Method method = signature.getMethod();
+            // 获取操作
+            OperLog opLog = method.getAnnotation(OperLog.class);
+            if (opLog != null) {
+                String operModul = opLog.operModul();
+                int operType = opLog.operType();
+                operlog.setTitle(operModul); // 操作模块
+                operlog.setBusinessType(operType); // 操作类型
+            }
+            // 获取请求的类名
+            String className = joinPoint.getTarget().getClass().getName();
+            // 获取请求的方法名
+            String methodName = method.getName();
+            methodName = className + "." + methodName;
+
+            operlog.setMethod(methodName); // 请求方法
+
+            if (joinPoint.getArgs().length > 0) {
+                for (Object o : joinPoint.getArgs()) {
+                    if (o instanceof HttpServletRequest || o instanceof HttpServletResponse) {
+                        continue;
+                    }
+                    operlog.setOperParam(JSONObject.toJSONString(o)); // 请求参数
+                }
+            }
+
+            operlog.setJsonResult(JSONObject.toJSONString(keys)); // 返回结果
+            operlog.setAccount(loginUserInfoVO.getAccount());
+            operlog.setOperName(loginUserInfoVO.getName()); // 请求用户名称
+            operlog.setOperIp(IPUtil.getIpAddress(request)); // 请求IP
+            operlog.setOperUrl(request.getRequestURI()); // 请求URI
+            operlog.setRequestMethod(request.getMethod());
+            operlog.setOperLocation(IPUtil.getIpBelongAddress(request));
+            operlog.setOperTime(new Date()); // 创建时间
+            operlog.setAccount(loginUserInfoVO.getAccount());
+            Long communityId = loginUserInfoVO.getCommunityId();
+            operlog.setCommunityId(null == communityId ? 0 : communityId);
+            userService.addOperLog(operlog);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    // /**
+    // * 异常返回通知,用于拦截异常日志信息 连接点抛出异常后执行
+    // *
+    // * @param joinPoint 切入点
+    // * @param e 异常信息
+    // */
+    // @AfterThrowing(pointcut = "operExceptionLogPoinCut()", throwing = "e")
+    // public void saveExceptionLog(JoinPoint joinPoint, Throwable e) {
+    // // 获取RequestAttributes
+    // RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
+    // // 从获取RequestAttributes中获取HttpServletRequest的信息
+    // HttpServletRequest request = (HttpServletRequest) requestAttributes
+    // .resolveReference(RequestAttributes.REFERENCE_REQUEST);
+    //
+    // ExceptionLog excepLog = new ExceptionLog();
+    // try {
+    // // 从切面织入点处通过反射机制获取织入点处的方法
+    // MethodSignature signature = (MethodSignature) joinPoint.getSignature();
+    // // 获取切入点所在的方法
+    // Method method = signature.getMethod();
+    // excepLog.setExcId(UuidUtil.get32UUID());
+    // // 获取请求的类名
+    // String className = joinPoint.getTarget().getClass().getName();
+    // // 获取请求的方法名
+    // String methodName = method.getName();
+    // methodName = className + "." + methodName;
+    // // 请求的参数
+    // Map<String, String> rtnMap = converMap(request.getParameterMap());
+    // // 将参数所在的数组转换成json
+    // String params = JSON.toJSONString(rtnMap);
+    // excepLog.setExcRequParam(params); // 请求参数
+    // excepLog.setOperMethod(methodName); // 请求方法名
+    // excepLog.setExcName(e.getClass().getName()); // 异常名称
+    // excepLog.setExcMessage(stackTraceToString(e.getClass().getName(), e.getMessage(), e.getStackTrace())); // 异常信息
+    // excepLog.setOperUserId(UserShiroUtil.getCurrentUserLoginName()); // 操作员ID
+    // excepLog.setOperUserName(UserShiroUtil.getCurrentUserName()); // 操作员名称
+    // excepLog.setOperUri(request.getRequestURI()); // 操作URI
+    // excepLog.setOperIp(IPUtil.getRemortIP(request)); // 操作员IP
+    // excepLog.setOperVer(operVer); // 操作版本号
+    // excepLog.setOperCreateTime(new Date()); // 发生异常时间
+    //
+    // exceptionLogService.insert(excepLog);
+    //
+    // } catch (Exception e2) {
+    // e2.printStackTrace();
+    // }
+    //
+    // }
+
+    /**
+     * 转换request 请求参数
+     *
+     * @param paramMap
+     *            request获取的参数数组
+     */
+    public Map<String, String> converMap(Map<String, String[]> paramMap) {
+        Map<String, String> rtnMap = new HashMap<String, String>();
+        for (String key : paramMap.keySet()) {
+            rtnMap.put(key, paramMap.get(key)[0]);
+        }
+        return rtnMap;
+    }
+
+    private String getPostData(HttpServletRequest request) {
+        StringBuffer data = new StringBuffer();
+        String line = null;
+        BufferedReader reader = null;
+        try {
+            reader = request.getReader();
+            while (null != (line = reader.readLine()))
+                data.append(line);
+        } catch (IOException e) {
+        } finally {
+        }
+        return data.toString();
+    }
+
+    /**
+     * 转换异常信息为字符串
+     *
+     * @param exceptionName
+     *            异常名称
+     * @param exceptionMessage
+     *            异常信息
+     * @param elements
+     *            堆栈信息
+     */
+    public String stackTraceToString(String exceptionName, String exceptionMessage, StackTraceElement[] elements) {
+        StringBuffer strbuff = new StringBuffer();
+        for (StackTraceElement stet : elements) {
+            strbuff.append(stet + "\n");
+        }
+        String message = exceptionName + ":" + exceptionMessage + "\n\t" + strbuff.toString();
+        return message;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/ComSanShuoApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/ComSanShuoApi.java
new file mode 100644
index 0000000..c13846d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/ComSanShuoApi.java
@@ -0,0 +1,174 @@
+package com.panzhihua.grid_backstage.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.sanshuo.ComMediateTypeDTO;
+import com.panzhihua.common.model.dtos.community.sanshuo.ComSanShuoIndustryCenterDTO;
+import com.panzhihua.common.model.dtos.community.sanshuo.ComSanshuoExpertDTO;
+import com.panzhihua.common.model.dtos.community.sanshuo.IndexDateDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.sanshuo.*;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@RestController
+@RequestMapping("sanshuo")
+@Api(tags = "三说会堂后台接口")
+public class ComSanShuoApi extends BaseController {
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "后台获取专家列表",response = ComSanshuoExpertVO.class)
+    @GetMapping("/expert/backList")
+    public R expertBackList(@RequestParam(value = "keyWord",required = false)@ApiParam("搜索关键字") String keyWord,
+                            @RequestParam(value = "page",required = false)Integer page,
+                            @RequestParam(value = "size",required = false)Integer size,
+                            @RequestParam(value = "level",required = false)Integer level){
+        return communityService.backExpertList(keyWord, page, size,level);
+    }
+
+    @PostMapping("/expert")
+    @ApiOperation("添加专家")
+    public R addExpert(@RequestBody ComSanshuoExpertDTO comSanshuoExpertDTO){
+        return communityService.addExpert(comSanshuoExpertDTO);
+    }
+
+    @PutMapping("/expert")
+    @ApiOperation("添加专家")
+    public R updateExpert(@RequestBody ComSanshuoExpertDTO comSanshuoExpertDTO){
+        return communityService.updateExpert(comSanshuoExpertDTO);
+    }
+
+    @ApiOperation("重置专家登陆密码")
+    @PostMapping("/expert/resetPassword")
+    public R resetExpertPassword(@RequestBody ComSanshuoExpertDTO comSanshuoExpertDTO){
+        return communityService.resetExpertPassword(comSanshuoExpertDTO);
+    }
+
+    @ApiOperation("专家详情")
+    @GetMapping("/expert/{id}")
+    public R expertDetail(@PathVariable("id") Long id){
+        return communityService.expertDetail(id);
+    }
+
+    @ApiOperation("删除专家")
+    @GetMapping("/expert/remove/{id}")
+    public R removeExpert(@PathVariable("id") Long id){
+        return communityService.removeExpert(id);
+    }
+
+    @ApiOperation(value = "后台获取业务中心列表",response = ComSanShuoIndustryCenterVO.class)
+    @GetMapping("/industryCenter/backList")
+    public R industryCenterBackList(@RequestParam(value = "keyWord",required = false)String keyWord,
+                                    @RequestParam(value = "page",required = false)Integer page,
+                                    @RequestParam(value = "size",required = false)Integer size){
+        return communityService.backIndustrytList(keyWord, page, size);
+    }
+
+    @ApiOperation("添加业务中心")
+    @PostMapping("/industryCenter")
+    public R addIndustry(@RequestBody ComSanShuoIndustryCenterDTO comSanShuoIndustryCenterDTO){
+        return communityService.addIndustry(comSanShuoIndustryCenterDTO);
+    }
+
+    @ApiOperation("修改业务中心")
+    @PutMapping("/industryCenter")
+    public R updateIndustryCenter(@RequestBody ComSanShuoIndustryCenterDTO comSanShuoIndustryCenterDTO){
+        return communityService.updateIndustry(comSanShuoIndustryCenterDTO);
+    }
+
+    @ApiOperation("删除业务中心")
+    @GetMapping("/industryCenter/remove/{id}")
+    public R removeIndustry(@PathVariable("id") Long id){
+        return communityService.removeIndustry(id);
+    }
+
+    @ApiOperation("业务中心详情")
+    @GetMapping("/industryCenter/{id}")
+    public R industryDetail(@PathVariable("id") Long id){
+        return communityService.industryCenterDetail(id);
+    }
+
+    @ApiOperation("重置业务中心密码")
+    @PostMapping("/industryCenter/resetPassword")
+    public R resetIndustryPassword(@RequestBody ComSanShuoIndustryCenterDTO comSanShuoIndustryCenterDTO){
+        return communityService.resetIndustryPassword(comSanShuoIndustryCenterDTO);
+    }
+
+    @ApiOperation("后台事件类型列表")
+    @GetMapping("/event/backList")
+    public R eventBackList(@RequestParam(value = "keyWord",required = false)String keyWord,
+                           @RequestParam(value = "page",required = false)Integer page,
+                           @RequestParam(value = "size",required = false)Integer size){
+        return communityService.backEventList(keyWord, page, size);
+    }
+
+    @ApiOperation("添加事件类型")
+    @PostMapping("/event")
+    public R addEvent(@RequestBody ComMediateTypeDTO comSanshuoEventDTO){
+        return communityService.addEvent(comSanshuoEventDTO);
+    }
+
+    @ApiOperation("修改事件类型")
+    @PutMapping("/event")
+    public R updateEvent(@RequestBody ComMediateTypeDTO comSanshuoEventDTO){
+        return communityService.updateEvent(comSanshuoEventDTO);
+    }
+
+    @ApiOperation("删除事件类型")
+    @DeleteMapping("/event/{id}")
+    public R removeEvent(@PathVariable("id") Long id){
+        return communityService.removeEvent(id);
+    }
+
+    @ApiOperation("小程序获取可用专家列表")
+    @GetMapping("/event/appletsList")
+    public R eventAppletsList(){
+        return communityService.eventAppList();
+    }
+
+    @ApiOperation("小程序获取可用业务中心列表")
+    @GetMapping("/industryCenter/appletsList")
+    public R industryAppletsList(){
+        return communityService.industryCenterAppList();
+    }
+
+    @ApiOperation(value = "专家风采",response = ExpertShowVO.class)
+    @GetMapping("/expert/expertShow")
+    public R experShow(){
+        return communityService.expertShow();
+    }
+
+    @GetMapping("/sanshuo/expertRange")
+    @ApiOperation(value = "当前账号可添加专家范围",response = ExpertRangeVO.class)
+    public R expertRange(){
+        return communityService.expertRange();
+    }
+
+
+
+    @PostMapping("/indexData")
+    @ApiOperation(value = "大屏各级别事件统计",response = IndexDateVO.class)
+    public R indexData(@RequestBody IndexDateDTO indexDateDTO){
+        return communityService.sanshuoIndexDate(indexDateDTO);
+    }
+    @GetMapping("/indexData/event")
+    @ApiOperation(value = "事件统计饼图",response = EventRateVO.class)
+    public R eventIndexData(@RequestParam("type") @ApiParam("1受理级别2专家级别3时间类型分类") Integer type){
+        return communityService.eventIndexData(type);
+    }
+
+    @GetMapping("/expert/backstageList")
+    public R expertBackStageList(@RequestParam(value = "level",required = false)Integer level,
+                                 @RequestParam(value = "page",required = false)Integer page,
+                                 @RequestParam(value = "size",required = false)Integer size,
+                                 @RequestParam(value = "keyWord",required = false)String keyWord){
+        return communityService.expertBackStageList(level,page,size,keyWord);
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/ComSanShuoEventController.java b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/ComSanShuoEventController.java
new file mode 100644
index 0000000..c2058d8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/ComSanShuoEventController.java
@@ -0,0 +1,251 @@
+package com.panzhihua.grid_backstage.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.sanshuo.ComEventArchiveVO;
+import com.panzhihua.common.model.vos.sanshuo.ComEventConciliationVO;
+import com.panzhihua.common.model.vos.sanshuo.ComEventPageRequestVO;
+import com.panzhihua.common.model.vos.sanshuo.ComEventVO;
+import com.panzhihua.common.service.community.CommunitySanShuoService;
+import com.panzhihua.common.utlis.CopyUtil;
+import com.panzhihua.common.utlis.StringUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * ClassName   ComEventController
+ * Description 三说会堂事件表控制层
+ *
+ * @author manailin
+ * @date 2022-09-07 11:23:51
+ */
+@Slf4j
+@Api(tags = {"三说会堂事件表控制层"})
+@RestController
+@RequestMapping("/sanshuo/comEvent")
+public class ComSanShuoEventController extends BaseController {
+
+    @Resource
+    private CommunitySanShuoService comEventService;
+
+
+
+    /**
+     * description 更新三说会堂事件表
+     *
+     * @param comEventVO 对象
+     * @return R  修改结果对象
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("更新三说会堂事件表")
+    @PostMapping("/update")
+    public R updateComEvent(@RequestBody @Valid ComEventVO comEventVO, @ApiIgnore BindingResult results) {
+        if (results.hasErrors()) {
+            return R.fail(results.getFieldError().getDefaultMessage());
+        }
+        return comEventService.updateComEvent(comEventVO);
+    }
+
+    /**
+     * description 根据ID获取三说会堂事件表信息
+     *
+     * @param id 主键id
+     * @return R<ComEvent> comEvent 对象
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("根据ID获取三说会堂事件详情信息,返回事件信息和图片信息")
+    @GetMapping("/detail/{id}")
+    public R<HashMap> detail(@PathVariable(value = "id") String id) {
+        if (StringUtils.isEmpty(id)) {
+            throw new RuntimeException("参数不能为空");
+        }
+        return comEventService.detail(id);
+    }
+
+
+    /**
+     * description page   三说会堂事件表分页列表数据
+     * params   [pageNo, pageSize]
+     *
+     * @param comEventPageRequestVO 对象
+     * @return PageResult<List < ComEvent>>  三说会堂事件表分页列表数据
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation(value = "三说会堂事件表分页列表数据", notes = "三说会堂事件表分页列表数据")
+    @PostMapping("/page")
+    public R<List<ComEventVO>> page(@RequestBody ComEventPageRequestVO comEventPageRequestVO) {
+        ComEventVO comEventVO = new ComEventVO();
+        BeanUtils.copyProperties(comEventPageRequestVO, comEventVO);
+        return comEventService.page(comEventVO, comEventVO.getPageNo(), comEventVO.getPageSize());
+    }
+
+
+    /**
+     * description 根据ID删除三说会堂事件表
+     *
+     * @param id 主键id
+     * @return R 删除结果
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("删除三说会堂事件")
+    @ApiImplicitParams(
+            @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long")
+    )
+    @DeleteMapping("/remove/{id}")
+    public R remove(@PathVariable Long id) {
+        return comEventService.remove(id);
+    }
+
+    /**
+     * description 修改三说会堂事件表状态
+     *
+     * @param id 主键id
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("修改是否有效状态")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long"),
+            @ApiImplicitParam(name = "enabled", value = "是否启用", required = true, dataType = "Boolean")
+    })
+    @PutMapping("/updateEnabled")
+    public R updateEnabled(@RequestParam("id") Long id, @RequestParam("enabled") Boolean enabled) {
+        return comEventService.updateEnabled(id, enabled);
+    }
+
+    /**
+     * description 修改三说会堂事件表状态
+     *
+     * @param id 主键id
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("取消申请")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long"),
+    })
+    @PutMapping("/cancelRequest")
+    public R cancelRequest(@RequestParam("id") Long id) {
+        return comEventService.cancelRequest(id);
+    }
+
+
+    /**
+     * description 修改三说会堂事件表状态
+     *
+     * @param id 主键id
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("专家受理")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "事件ID", required = true, dataType = "Long"),
+            @ApiImplicitParam(name = "specterId", value = "专家ID", required = true, dataType = "Long"),
+    })
+    @PutMapping("/accept/Request")
+    public R acceptRequest(@RequestParam("id") Long id, Long specterId) {
+        return comEventService.acceptRequest(id, specterId);
+    }
+
+    /**
+     * description 修改三说会堂事件表状态
+     *
+     * @param id 主键id
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("专家不受理,转其他专家处理")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long"),
+    })
+    @PutMapping("/reject/Request")
+    public R rejectRequest(@RequestParam("id") Long id) {
+        return comEventService.rejectRequest(id);
+    }
+
+    /**
+     * description 修改三说会堂事件表状态
+     *
+     * @param id 主键id
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("重新指定专家处理")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long"),
+            @ApiImplicitParam(name = "specialistId", value = "专家ID", required = true, dataType = "Long")
+    })
+    @PutMapping("/reappoint/Request")
+    public R reappoint(Long id, Long specialistId) {
+        return comEventService.reappoint(id, specialistId);
+    }
+
+    /**
+     * description 专家调解处理
+     *
+     * @param comEventConciliationVO 主键id
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("专家调解处理")
+    @PutMapping("/conciliation/Request")
+    public R conciliationRequest(@RequestBody ComEventConciliationVO comEventConciliationVO) {
+        return comEventService.conciliationRequest(comEventConciliationVO);
+    }
+
+    /**
+     * description 专家归档
+     *
+     * @param comEventArchiveVO 归档对象
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("事件专家归档")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long"),
+            @ApiImplicitParam(name = "result", value = "归档结论", required = true, dataType = "String"),
+    })
+    @PutMapping("/archive/Request")
+    public R archiveRequest(@RequestBody ComEventArchiveVO comEventArchiveVO) {
+        return comEventService.archiveRequest(comEventArchiveVO);
+    }
+
+    /**
+     * description 事件各种状态(处理状态1待处理2待验证3专家已受理4专家未受理,拒绝5调解中6已结案归档7调解取消8 已删除)数据统计
+     *
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("事件各种状态(处理状态1待处理2待验证3专家已受理4专家未受理,拒绝5调解中6已结案归档7调解取消8 已删除)数据统计")
+    @GetMapping("/status/calculate")
+    public R calculate(@RequestParam(value = "level",required = false)Integer level,@RequestParam(value = "id",required = false)Long  id) {
+        return comEventService.calculate(level, id);
+    }
+
+
+
+}
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
new file mode 100644
index 0000000..f0ff6e7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/CommonApi.java
@@ -0,0 +1,135 @@
+package com.panzhihua.grid_backstage.api;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Arrays;
+import java.util.List;
+import java.util.UUID;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
+import com.panzhihua.common.utlis.MimeTypeUtils;
+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;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+import com.panzhihua.common.constants.FtpConstants;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.utlis.SFTPUtil;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+import static com.panzhihua.common.utlis.FileTypeUploadUtils.assertAllowed;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 公共接口
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-10 15:41
+ **/
+@Slf4j
+@RestController
+@RequestMapping("/common/")
+@Api(tags = {"公共接口"})
+public class CommonApi {
+
+    /**
+     * 允许的图片文件后缀
+     */
+    private static List<String> fileExtensionAllow = Arrays.asList("gif", "jpg", "png", "jpeg");
+    /**
+     * 允许的视频文件后缀
+     */
+    private static List<String> videoExtensionAllow = Arrays.asList("mp4", "mov");
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    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")
+    public R uploadImage(@RequestParam MultipartFile file, HttpServletRequest request) throws IOException {
+        // 微信图片内容校验
+        // WxMaSecCheckService wxMaSecCheckService = wxMaConfiguration.getMaService().getSecCheckService();
+        String property = System.getProperty("user.dir");
+
+        String fileExtension = ".jpg";
+
+        String originName = file.getOriginalFilename();
+            AtomicBoolean isVideo = new AtomicBoolean(false);
+        videoExtensionAllow.forEach(ext -> {
+            String originNameLowerCase = originName.toLowerCase();
+            if (originNameLowerCase.endsWith("." + ext)) {
+                isVideo.set(true);
+            }
+        });
+        if (isVideo.get()) {
+            fileExtension = ".mp4";
+        }
+        if (originName.toLowerCase().endsWith(".mp3")) {
+            fileExtension = ".mp3";
+        }
+        if (originName.toLowerCase().endsWith(".gif")) {
+            fileExtension = ".gif";
+        }
+        String fileName = property + File.separator + UUID.randomUUID().toString().replace("-", "") + fileExtension;
+        File file1 = new File(fileName);
+
+        String name = file.getOriginalFilename();
+        name = UUID.randomUUID().toString().replaceAll("-", "") + fileExtension;
+        try {
+            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+            sftp.login();
+            InputStream is = file.getInputStream();
+            file.transferTo(file1);
+            boolean delete = file1.delete();
+            log.info("临时文件删除【{}】", delete);
+            sftp.uploadMore(FtpConstants.FTPFILEPATH_IDCARD, name, is);
+            sftp.logout();
+            return R.ok(url + "/idcard/" + name);
+        } catch (Exception e) {
+            log.error("上传照片失败【{}】", e.getMessage());
+            return R.fail();
+        }
+
+    }
+
+
+    @ApiOperation(value = "新上传照片接口")
+    @PostMapping(value = "/uploadimages", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R uploadImages(@RequestParam MultipartFile file, HttpServletRequest request) {
+        try {
+            assertAllowed(file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION);
+            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/api/EasyPhotoApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EasyPhotoApi.java
new file mode 100644
index 0000000..0193282
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EasyPhotoApi.java
@@ -0,0 +1,85 @@
+package com.panzhihua.grid_backstage.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.grid.ComActEasyPhotoEditAdminDTO;
+import com.panzhihua.common.model.dtos.grid.ComActEasyPhotoHandleDTO;
+import com.panzhihua.common.model.dtos.grid.PageEasyAdminDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActEasyPhotoVO;
+import com.panzhihua.common.model.vos.grid.ComActEasyPhotoAdminVO;
+import com.panzhihua.common.service.grid.GridService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * @author lyq
+ */
+@RestController
+@RequestMapping("/easy/")
+@Api(tags = {"随手拍模块@lyq"})
+public class EasyPhotoApi extends BaseController {
+
+    @Resource
+    private GridService gridService;
+
+    @ApiOperation(value = "随手拍列表-lyq", response = ComActEasyPhotoAdminVO.class)
+    @PostMapping("list")
+    public R list(@RequestBody PageEasyAdminDTO easyAppDTO) {
+        LoginUserInfoVO userInfoVO = this.getLoginUserInfo();
+        if (userInfoVO == null) {
+            return R.fail("请先登录");
+        }
+        // if(easyAppDTO.getCommunityId() == null){
+        // easyAppDTO.setCommunityId(userInfoVO.getCommunityId());
+        // }
+        if(easyAppDTO != null && easyAppDTO.getIsPublicity() != null && easyAppDTO.getIsPublicity().equals(0)){
+            easyAppDTO.setIsPublicity(2);
+        }
+        return gridService.easyListByAdmin(easyAppDTO);
+    }
+
+    @ApiOperation(value = "随手拍详情-lyq", response = ComActEasyPhotoAdminVO.class)
+    @PostMapping("detail")
+    public R detail(@RequestParam("easyId") Long easyId) {
+        if (easyId == null) {
+            return R.fail("参数错误");
+        }
+        return gridService.easyDetailByApp(easyId);
+    }
+
+    @ApiOperation(value = "随手拍类型列表-lyq", response = ComActEasyPhotoVO.class)
+    @PostMapping("type/list")
+    public R typeList() {
+        return gridService.easyTypeListByApp();
+    }
+
+    @ApiOperation(value = "随手拍处理-lyq")
+    @PostMapping("handle")
+    public R handle(@RequestBody ComActEasyPhotoHandleDTO photoHandleDTO) {
+        LoginUserInfoVO userInfoVO = this.getLoginUserInfo();
+        if (userInfoVO == null) {
+            return R.fail("请先登录");
+        }
+        photoHandleDTO.setHandlerId(userInfoVO.getUserId());
+        if(photoHandleDTO.getIsPublicity() != null && photoHandleDTO.getIsPublicity().equals(0)){
+            photoHandleDTO.setIsPublicity(2);
+        }
+        return gridService.easyHandleByAdmin(photoHandleDTO);
+    }
+
+    @ApiOperation(value = "随手拍切换公示状态-lyq")
+    @PostMapping("publicity")
+    public R publicity(@RequestBody ComActEasyPhotoEditAdminDTO photoHandleDTO) {
+        if(photoHandleDTO != null && photoHandleDTO.getIsPublicity() != null  && photoHandleDTO.getIsPublicity().equals(0)){
+            photoHandleDTO.setIsPublicity(2);
+        }
+        return gridService.easyPublicityByAdmin(photoHandleDTO);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventApi.java
new file mode 100644
index 0000000..4b4cb02
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventApi.java
@@ -0,0 +1,118 @@
+package com.panzhihua.grid_backstage.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.grid.*;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.EventGridDataAreaVO;
+import com.panzhihua.common.service.grid.GridService;
+import com.panzhihua.common.utlis.ClazzUtils;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @ClasssName EventApi
+ * @Description 事件通用接口
+ * @Author cedoo
+ * @Date 2021/6/7
+ * @Version 1.0
+ **/
+@Slf4j
+@RestController
+@RequestMapping("/event/common")
+@Api(tags = {"宣传教育 @chendong", "事件管理 @chendong"})
+public class EventApi extends BaseController {
+
+    @Resource
+    private GridService gridService;
+
+    /**
+     * 重新发布事件
+     *
+     * @param commonEventBatchRepublishDTO
+     *            重新发布事件传递对象
+     * @return 修改结果
+     */
+    @PutMapping("/republishBatch")
+    @ApiOperation(value = "(批量)重新发布已标记无效事件", response = R.class)
+    R republishBatch(@Validated @RequestBody CommonEventBatchRepublishDTO commonEventBatchRepublishDTO) {
+        ClazzUtils.setIfStringIsEmpty(commonEventBatchRepublishDTO);
+        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
+        commonEventBatchRepublishDTO.setUserId(loginUserInfoVO.getUserId());
+        commonEventBatchRepublishDTO.setUserName(loginUserInfoVO.getName());
+        return gridService.batchRepublishEvent(commonEventBatchRepublishDTO);
+    }
+
+    /**
+     * (批量)删除
+     *
+     * @param eventDeleteDTO
+     *            删除事件传递对象
+     * @return 删除结果
+     */
+    @DeleteMapping()
+    @ApiOperation(value = "(批量)删除", response = R.class)
+    R deleteBatch(@Validated @RequestBody EventDeleteDTO eventDeleteDTO) {
+        ClazzUtils.setIfStringIsEmpty(eventDeleteDTO);
+        eventDeleteDTO.setUserId(this.getUserId());
+        return gridService.deleteEventBatch(eventDeleteDTO);
+    }
+
+    /**
+     * 事件标为无效
+     *
+     * @param eventBatchRevokeDTO
+     *            修改事件传递对象
+     * @return 修改结果
+     */
+    @PutMapping("/markInvalidBatch")
+    @ApiOperation(value = "(批量)事件标为无效", response = R.class)
+    R markInvalidBatch(@Validated @RequestBody EventBatchRevokeDTO eventBatchRevokeDTO) {
+        ClazzUtils.setIfStringIsEmpty(eventBatchRevokeDTO);
+        LoginUserInfoVO loginUserInfoVO = getLoginUserInfo();
+        eventBatchRevokeDTO.setUserId(loginUserInfoVO.getUserId());
+        eventBatchRevokeDTO.setUserName(loginUserInfoVO.getName());
+        eventBatchRevokeDTO.setCommunityName(loginUserInfoVO.getCommunityName());
+        // eventBatchRevokeDTO.setCommunityId(loginUserInfoVO.getCommunityId());
+        eventBatchRevokeDTO.setRevokeType(2);
+        eventBatchRevokeDTO.setRevokeId(loginUserInfoVO.getCommunityId());
+        return gridService.batchMarkEventInvalid(eventBatchRevokeDTO);
+    }
+
+    /**
+     * 查询距离当前事件最近的网格数据
+     * 
+     * @param pageEventGridNearbyDTO
+     * @return
+     */
+    @PostMapping("/grid/nearby")
+    @ApiOperation(value = "查询经纬度所在的网格", response = EventGridDataAreaVO.class)
+    R getNearByGrid(@Validated @RequestBody PageEventGridNearbyDTO pageEventGridNearbyDTO) {
+        return gridService.getNearByGrid(pageEventGridNearbyDTO);
+    }
+
+    /**
+     * 重新发布事件
+     * 
+     * @param commonEventRepublishDTO
+     *            重新发布事件传递对象
+     * @return 修改结果
+     */
+    @PutMapping("/republish")
+    @ApiOperation(value = "重新发布事件", response = R.class)
+    R republish(@Validated @RequestBody CommonEventRepublishDTO commonEventRepublishDTO) {
+        ClazzUtils.setIfStringIsEmpty(commonEventRepublishDTO);
+        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
+        commonEventRepublishDTO.setUserId(loginUserInfoVO.getUserId());
+        commonEventRepublishDTO.setUserName(loginUserInfoVO.getNickName());
+        return gridService.republishEvent(commonEventRepublishDTO);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventGridDataApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventGridDataApi.java
new file mode 100644
index 0000000..1996e5e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventGridDataApi.java
@@ -0,0 +1,160 @@
+package com.panzhihua.grid_backstage.api;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.validation.annotation.Validated;
+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.RestController;
+
+import com.alibaba.fastjson.JSONArray;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.api.GridMemberPageListDTO;
+import com.panzhihua.common.model.dtos.grid.*;
+import com.panzhihua.common.model.dtos.grid.admin.EventGridMemberCascadeAddDTO;
+import com.panzhihua.common.model.dtos.grid.admin.LcGridMemberDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.EventGridMemberWarnLogAdminVO;
+import com.panzhihua.common.model.vos.grid.GridMemberVO;
+import com.panzhihua.common.model.vos.grid.admin.GridMemberCascadeVO;
+import com.panzhihua.common.model.vos.grid.admin.GridMemberLcListVO;
+import com.panzhihua.common.service.api.ApiServiceFeign;
+import com.panzhihua.common.service.grid.GridService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.ClazzUtils;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.StringUtils;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Slf4j
+@RestController
+@RequestMapping("/eventgriddata")
+@Api(tags = {"网格数据管理 @lyq"})
+public class EventGridDataApi extends BaseController {
+
+    @Resource
+    private GridService gridService;
+    @Resource
+    private UserService userService;
+    @Resource
+    private ApiServiceFeign apiService;
+
+    /**
+     * 网格员分页查询
+     * 
+     * @param memberRelationDTO
+     *            请求参数
+     * @return 网格员列表
+     */
+    @ApiOperation(value = "网格员分页查询", response = GridMemberVO.class)
+    @PostMapping("/member/list")
+    public R getGridMemberList(@Validated @RequestBody PageEventGridMemberRelationDTO memberRelationDTO) {
+        ClazzUtils.setIfStringIsEmpty(memberRelationDTO);
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        // if(loginUserInfo.getCommunityId() != 0){
+        // memberRelationDTO.setGridCommunityId(loginUserInfo.getCommunityId());
+        // }
+        return userService.getGridMemberList(memberRelationDTO);
+    }
+
+    @ApiOperation(value = "网格员添加")
+    @PostMapping("/member/add")
+    public R gridMemberAdd(@Validated @RequestBody EventGridMemberAddDTO gridMemberDTO) {
+        ClazzUtils.setIfStringIsEmpty(gridMemberDTO);
+        LoginUserInfoVO userInfoVO = this.getLoginUserInfo();
+        if (userInfoVO.getCommunityId() != null) {
+            gridMemberDTO.setCommunityId(userInfoVO.getCommunityId());
+        }
+        return userService.addGridUser(gridMemberDTO);
+    }
+
+    @ApiOperation(value = "网格员修改")
+    @PostMapping("/member/edit")
+    public R gridMemberEdit(@Validated @RequestBody EventGridMemberEditAdminDTO gridMemberDTO) {
+        ClazzUtils.setIfStringIsEmpty(gridMemberDTO);
+        return userService.editGridUser(gridMemberDTO);
+    }
+
+    @ApiOperation(value = "网格员密码重置")
+    @PostMapping("/member/pass/reset")
+    public R gridMemberPassReset(@Validated @RequestBody EventGridMemberPassResetDTO gridMemberDTO) {
+        ClazzUtils.setIfStringIsEmpty(gridMemberDTO);
+        return userService.gridMemberPassReset(gridMemberDTO);
+    }
+
+    @ApiOperation(value = "批量删除网格员")
+    @PostMapping("/member/delete")
+    public R deleteMembers(@RequestBody List<Long> Ids) {
+        return userService.deleteMembers(Ids);
+    }
+
+    @ApiOperation(value = "网格员工作轨迹")
+    @PostMapping("/member/work/trajectory")
+    public R gridMemberWorkTrajectory(@RequestBody EventGridMemberWorkTrajectoryDTO workTrajectoryDTO) {
+        if (StringUtils.isEmpty(workTrajectoryDTO.getTime())) {
+            workTrajectoryDTO.setTime(DateUtils.getCurrentDateStrymd());
+        }
+        workTrajectoryDTO.setStartTime(workTrajectoryDTO.getTime() + " 00:00:00");
+        workTrajectoryDTO.setEndTime(workTrajectoryDTO.getTime() + " 23:59:59");
+        return gridService.gridMemberWorkTrajectory(workTrajectoryDTO);
+    }
+
+    @ApiOperation(value = "网格员工作预警", response = EventGridMemberWarnLogAdminVO.class)
+    @PostMapping("/member/work/warning")
+    public R gridMemberWorkWarning(@RequestBody EventGridMemberWainDTO gridMemberWainDTO) {
+        return gridService.gridMemberWorkWarning(gridMemberWainDTO);
+    }
+
+    @ApiOperation(value = "网格员批量修改状态")
+    @PostMapping("/member/edit/status")
+    public R gridMemberEditStatus(@RequestBody EventGridMemberEditStatusDTO gridMemberEditDTO) {
+        return userService.gridMemberEditStatus(gridMemberEditDTO);
+    }
+
+    @ApiOperation(value = "查询市平台网格员列表", response = GridMemberLcListVO.class)
+    @PostMapping("/member/lc/list/noToken")
+    public R gridMemberLcList(@RequestBody LcGridMemberDTO memberDTO) {
+        List<GridMemberLcListVO> gridMemberLcList = new ArrayList<>();
+        R r = apiService.getGridMemberListByAreaIdOrName("jhRxqEQp", memberDTO.getParam(), memberDTO.getPageNum(),
+            memberDTO.getPageSize());
+        if (R.isOk(r)) {
+            List<GridMemberPageListDTO> memberList =
+                JSONArray.parseArray(JSONArray.toJSONString(r.getData()), GridMemberPageListDTO.class);
+            if (!memberList.isEmpty()) {
+                memberList.forEach(member -> {
+                    GridMemberLcListVO memberLcListVO = new GridMemberLcListVO();
+                    memberLcListVO.setLcBindUserId(member.getBindUserId());
+                    memberLcListVO.setLcGridMemberId(member.getId());
+                    memberLcListVO.setLcGridMemberName(member.getName());
+                    gridMemberLcList.add(memberLcListVO);
+                });
+            }
+        }
+        return R.ok(gridMemberLcList);
+    }
+
+    @ApiOperation(value = "添加网格员时级联列表", response = GridMemberCascadeVO.class)
+    @PostMapping("/member/cascade/list")
+    public R gridMemberCascadeList(@RequestBody EventGridMemberCascadeAddDTO memberCascadeAddDTO) {
+        return gridService.gridMemberCascadeList(memberCascadeAddDTO);
+    }
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventGridMemberRelationApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventGridMemberRelationApi.java
new file mode 100644
index 0000000..9716156
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventGridMemberRelationApi.java
@@ -0,0 +1,123 @@
+package com.panzhihua.grid_backstage.api;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.grid.EventGridDataAddAdminDTO;
+import com.panzhihua.common.model.dtos.grid.EventGridDataEditAdminDTO;
+import com.panzhihua.common.model.dtos.grid.PageEventGridDataAdminDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.EventGridAdminVO;
+import com.panzhihua.common.model.vos.grid.EventGridCommunityAdminVO;
+import com.panzhihua.common.model.vos.grid.EventGridMemberAdminVO;
+import com.panzhihua.common.model.vos.grid.EventLcGridAdminVO;
+import com.panzhihua.common.service.api.ApiServiceFeign;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.grid.GridService;
+import com.panzhihua.common.utlis.ClazzUtils;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Slf4j
+@RestController
+@RequestMapping("/eventgridmember")
+@Api(tags = {"网格管理"})
+public class EventGridMemberRelationApi extends BaseController {
+
+    @Resource
+    private GridService gridService;
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private ApiServiceFeign apiService;
+
+    @ApiOperation(value = "网格分页查询", response = EventGridAdminVO.class)
+    @PostMapping("/event/list")
+    public R getGridDataList(@Validated @RequestBody PageEventGridDataAdminDTO eventGridDataDTO) {
+        ClazzUtils.setIfStringIsEmpty(eventGridDataDTO);
+        // Long communityId = this.getCommunityId();
+        // if(communityId == null){
+        // return R.fail("请先登录");
+        // }
+        // eventGridDataDTO.setGridCommunityId(communityId);
+        return gridService.getGridDataList(eventGridDataDTO);
+    }
+
+    @ApiOperation(value = "查询当前社区所有网格员", response = EventGridMemberAdminVO.class)
+    @PostMapping("/member/list")
+    public R getGridMemberLists() {
+        // Long communityId = this.getCommunityId();
+        // if(communityId == null){
+        // return R.fail("请先登录");
+        // }
+        return gridService.getGridMemberLists(null);
+    }
+
+    @ApiOperation(value = "新增网格")
+    @PostMapping("/event/add")
+    public R addGridData(@Validated @RequestBody EventGridDataAddAdminDTO eventGridDataDTO) {
+        ClazzUtils.setIfStringIsEmpty(eventGridDataDTO);
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        // eventGridDataDTO.setGridCommunityId(loginUserInfo.getCommunityId());
+        eventGridDataDTO.setUserId(loginUserInfo.getUserId());
+        return gridService.addGridDataByAdmin(eventGridDataDTO);
+    }
+
+    @ApiOperation(value = "修改网格")
+    @PostMapping("/event/edit")
+    public R editGridData(@Validated @RequestBody EventGridDataEditAdminDTO eventGridDataDTO) {
+        ClazzUtils.setIfStringIsEmpty(eventGridDataDTO);
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        if (loginUserInfo == null) {
+            return R.fail("请先登录");
+        }
+        eventGridDataDTO.setUserId(loginUserInfo.getUserId());
+        return gridService.editGridDataByAdmin(eventGridDataDTO);
+    }
+
+    @ApiOperation(value = "删除网格")
+    @PostMapping("/event/delete")
+    public R deleteGridData(@RequestBody List<Long> Ids) {
+        if (Ids.isEmpty()) {
+            return R.fail("参数错误");
+        }
+        return gridService.deleteGridData(Ids);
+    }
+
+    @ApiOperation(value = "查询所有社区列表", response = EventGridCommunityAdminVO.class)
+    @GetMapping("/community/list")
+    public R getCommunityLists() {
+        return communityService.getCommunityLists();
+    }
+
+    @ApiOperation(value = "查询所有关联市平台列表", response = EventLcGridAdminVO.class)
+    @GetMapping("/lc/grid/list/noToken")
+    public R getLcGridLists(@RequestParam("areaId") String areaId) {
+        return apiService.getGridDataListByAreaId(areaId);
+    }
+
+    @ApiOperation(value = "查询西区所有关联市平台树形结构列表", response = EventLcGridAdminVO.class)
+    @GetMapping("/lc/grid/tree/list/noToken")
+    public R getLcGridTreeLists() {
+        return apiService.getGridTreeByAreaId("jhRxqEQp");
+    }
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventManageApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventManageApi.java
new file mode 100644
index 0000000..6b2aae2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventManageApi.java
@@ -0,0 +1,208 @@
+package com.panzhihua.grid_backstage.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.grid.*;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActVO;
+import com.panzhihua.common.model.vos.grid.EventDetailsVO;
+import com.panzhihua.common.model.vos.grid.EventGridMemberAdminVO;
+import com.panzhihua.common.model.vos.grid.EventVO;
+import com.panzhihua.common.service.grid.GridService;
+import com.panzhihua.common.utlis.ClazzUtils;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Slf4j
+@RestController
+@RequestMapping("/event")
+@Api(tags = {"事件管理 @chendong"})
+public class EventManageApi extends BaseController {
+
+    @Resource
+    private GridService gridService;
+
+    private boolean isCommonType(Integer eventType) {
+        if (eventType == null) {
+            return false;
+        }
+        boolean inType = eventType == 1 | eventType == 2 | eventType == 3 | eventType == 4 | eventType == 5;
+        return inType;
+    }
+
+    /**
+     * 事件列表
+     * 
+     * @param pageEventManageDTO
+     *            查找事件
+     * @return 查找结果
+     */
+    @PostMapping("/usersList")
+    @ApiOperation(value = "事件列表", response = EventVO.class)
+    R usersList(@Validated @RequestBody PageEventManageDTO pageEventManageDTO) {
+        ClazzUtils.setIfStringIsEmpty(pageEventManageDTO);
+        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
+        pageEventManageDTO.setUserId(loginUserInfoVO.getUserId());
+        // pageEventManageDTO.setCommunityId(loginUserInfoVO.getCommunityId());
+//        pageEventManageDTO.setRevokeType(1);
+        return gridService.queryEventToManage(pageEventManageDTO);
+    }
+
+    /**
+     * 事件标为无效
+     * 
+     * @param eventRevokeDTO
+     *            修改事件传递对象
+     * @return 修改结果
+     */
+    @PutMapping("/markInvalid")
+    @ApiOperation(value = "事件标为无效", response = R.class)
+    R revoke(@Validated @RequestBody EventRevokeDTO eventRevokeDTO) {
+        ClazzUtils.setIfStringIsEmpty(eventRevokeDTO);
+        LoginUserInfoVO loginUserInfoVO = getLoginUserInfo();
+        eventRevokeDTO.setUserId(loginUserInfoVO.getUserId());
+        eventRevokeDTO.setUserName(loginUserInfoVO.getNickName());
+        eventRevokeDTO.setCommunityName(loginUserInfoVO.getCommunityName());
+        eventRevokeDTO.setCommunityId(loginUserInfoVO.getCommunityId());
+        eventRevokeDTO.setRevokeId(loginUserInfoVO.getCommunityId());
+        eventRevokeDTO.setRevokeType(2);
+        return gridService.markEventInvalid(eventRevokeDTO);
+    }
+
+    /**
+     * 新增并发布事件事件
+     * 
+     * @param commonEventCommunityAddDTO
+     *            添加事件传递对象
+     * @return 新增结果
+     */
+    @PostMapping("/release")
+    @ApiOperation(value = "新增并发布事件", response = R.class)
+    R add(@Validated @RequestBody CommonEventCommunityAddDTO commonEventCommunityAddDTO) {
+        ClazzUtils.setIfStringIsEmpty(commonEventCommunityAddDTO);
+        if (!isCommonType(commonEventCommunityAddDTO.getEventType())) {
+            return R.fail(400, "事件类型错误");
+        }
+        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
+        commonEventCommunityAddDTO.setUserId(loginUserInfoVO.getUserId());
+        commonEventCommunityAddDTO.setUserName(loginUserInfoVO.getNickName());
+        commonEventCommunityAddDTO.setPhone(loginUserInfoVO.getPhone());
+        return gridService.addCommon(commonEventCommunityAddDTO);
+    }
+
+    /**
+     * 查询事件详细信息
+     * 
+     * @param id
+     *            事件 id
+     * @return 查找结果
+     */
+    @GetMapping("/{id}")
+    @ApiOperation(value = "查询事件详细信息")
+    R<EventDetailsVO> details(@PathVariable("id") Long id) {
+        return gridService.eventDetails(id);
+    }
+
+    /**
+     * 删除
+     * 
+     * @param commonEventDeleteDTO
+     *            删除事件传递对象
+     * @return 删除结果
+     */
+    @DeleteMapping()
+    @ApiOperation(value = "删除事件", response = R.class)
+    R delete(@Validated @RequestBody CommonEventDeleteDTO commonEventDeleteDTO) {
+        ClazzUtils.setIfStringIsEmpty(commonEventDeleteDTO);
+        commonEventDeleteDTO.setUserId(this.getUserId());
+        return gridService.delete(commonEventDeleteDTO);
+    }
+
+    /**
+     * 重新发布事件
+     * 
+     * @param commonEventRepublishDTO
+     *            重新发布事件传递对象
+     * @return 修改结果
+     */
+    @PutMapping("/republish")
+    @ApiOperation(value = "重新发布已标为失效的事件", response = R.class)
+    R republish(@Validated @RequestBody CommonEventRepublishDTO commonEventRepublishDTO) {
+        ClazzUtils.setIfStringIsEmpty(commonEventRepublishDTO);
+        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
+        commonEventRepublishDTO.setUserId(loginUserInfoVO.getUserId());
+        commonEventRepublishDTO.setUserName(loginUserInfoVO.getNickName());
+        return gridService.republishInvalidEvent(commonEventRepublishDTO);
+    }
+
+    /**
+     * 查询社区列表
+     * 
+     * @return 查找结果
+     */
+    @GetMapping("/actList")
+    @ApiOperation(value = "查询社区列表", response = ComActVO.class)
+    R actList() {
+        return gridService.actList();
+    }
+
+    /**
+     * 处理事件
+     * 
+     * @param commonEventDealDTO
+     *            修改事件传递对象
+     * @return 处理结果
+     */
+    @PutMapping("/deal")
+    @ApiOperation(value = "处理事件", response = R.class)
+    R deal(@Validated @RequestBody CommonEventDealDTO commonEventDealDTO) {
+        ClazzUtils.setIfStringIsEmpty(commonEventDealDTO);
+        if (commonEventDealDTO.getNeedVerify() == null) {
+            return R.fail("是否验证不能为空");
+        }
+        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
+        commonEventDealDTO.setUserId(loginUserInfoVO.getUserId());
+        commonEventDealDTO.setUserName(loginUserInfoVO.getNickName());
+        commonEventDealDTO.setOperateType(1);
+        // commonEventDealDTO.setCommunityId(loginUserInfoVO.getCommunityId());
+        commonEventDealDTO.setCommunityName(loginUserInfoVO.getCommunityName());
+        return gridService.dealEvent(commonEventDealDTO);
+    }
+
+    @ApiOperation(value = "查询当前社区所有网格员", response = EventGridMemberAdminVO.class)
+    @GetMapping("/member/list")
+    public R getGridMemberLists() {
+        Long communityId = this.getCommunityId();
+        if (communityId == null) {
+            return R.fail("请先登录");
+        }
+        return gridService.getGridMemberLists(communityId);
+    }
+
+    @ApiOperation(value = "查询网格下所有网格员", response = EventGridMemberAdminVO.class)
+    @GetMapping("/member/{gridId}")
+    public R getGridMemberInLists(@PathVariable("gridId") Long gridId) {
+        return gridService.getGridMemberListsByGrid(gridId);
+    }
+
+    @ApiOperation(value = "查询社区所有网格", response = EventGridMemberAdminVO.class)
+    @GetMapping("/grid/list/{communityId}")
+    public R getGridLists(@PathVariable("communityId") Long communityId) {
+        return gridService.getGridDataListByCommunity(communityId);
+    }
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventVisitingTasksApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventVisitingTasksApi.java
new file mode 100644
index 0000000..3761c9b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/EventVisitingTasksApi.java
@@ -0,0 +1,188 @@
+package com.panzhihua.grid_backstage.api;
+
+import java.io.IOException;
+import java.net.URLEncoder;
+import java.util.Date;
+import java.util.List;
+
+import javax.annotation.Resource;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
+import org.springframework.web.bind.annotation.*;
+
+import com.alibaba.excel.EasyExcel;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.IdDTO;
+import com.panzhihua.common.model.query.visit.EventTasksQuery;
+import com.panzhihua.common.model.query.visit.EventVisitListQuery;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.visit.*;
+import com.panzhihua.common.service.grid.GridService;
+
+import cn.hutool.core.date.DateUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 走访任务
+ * 
+ * @author xyh
+ * @date 2021/6/21 14:20
+ */
+@Slf4j
+@RestController
+@RequestMapping("/event/visit")
+@Api(tags = {"走访任务 @xyh"})
+public class EventVisitingTasksApi extends BaseController {
+
+    @Resource
+    private GridService gridService;
+
+    /**
+     * 走访任务统计
+     * 
+     * @return
+     */
+    @GetMapping("/count")
+    @ApiOperation(value = "走访任务统计", response = EventVisitCountVO.class)
+    public R count() {
+        return gridService.countVisit(this.getCommunityId());
+    }
+
+    /**
+     * 走访任务列表
+     * 
+     * @return
+     */
+    @PostMapping("/taskList")
+    @ApiOperation(value = "走访任务列表", response = EventVisitingTasksVO.class)
+    public R taskList(@RequestBody EventTasksQuery query) {
+        // query.setCommunityId(this.getCommunityId());
+        return gridService.taskList(query);
+    }
+
+    /**
+     * 走访任务记录
+     * 
+     * @return
+     */
+    @PostMapping("/list")
+    @ApiOperation(value = "走访任务记录", response = AppVisitTasksVO.class)
+    public R list(@RequestBody EventTasksQuery query) {
+        // query.setCommunityId(this.getCommunityId());
+        return gridService.list(query);
+    }
+
+    /**
+     * 走访任务删除
+     * 
+     * @return
+     */
+    @PostMapping("/delete")
+    @ApiOperation(value = "删除走访任务")
+    public R delete(@RequestBody @Valid IdDTO idDTO) {
+        return gridService.delete(idDTO, this.getCommunityId());
+    }
+
+    /**
+     * 走访任务导出
+     * 
+     * @return
+     */
+    @GetMapping("/noToken/export")
+    @ApiOperation(value = "导出走访任务")
+    public void export(HttpServletResponse response, EventTasksQuery query) {
+        // query.setCommunityId(this.getCommunityId());
+        query.setPageNum(1L);
+        query.setPageSize(2000L);
+        ServletOutputStream os = null;
+        try {
+            os = response.getOutputStream();
+            List<EventVisitingTasksVO> list = gridService.exportTaskList(query);
+            response.setContentType("application/vnd.ms-excel");
+            response.setCharacterEncoding("utf-8");
+            String fileName = "走访任务-" + DateUtil.format(new Date(), "yyyyMMddHHmmss");
+            response.setHeader("Content-disposition", "attachment;filename*=utf-8''"
+                + URLEncoder.encode(fileName, "UTF-8").replaceAll("\\+", "%20") + ".xlsx");
+            EasyExcel.write(os, EventVisitingTasksVO.class).sheet(fileName).doWrite(list);
+            os.flush();
+        } catch (IOException e) {
+            e.printStackTrace();
+        } finally {
+            if (os != null) {
+                try {
+                    os.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+    }
+
+    /**
+     * 待走访人员列表
+     * 
+     * @return
+     */
+    @PostMapping("/visitorList")
+    @ApiOperation(value = "待走访人员列表", response = EventVisitListVO.class)
+    public R visitorList(@RequestBody EventVisitListQuery query) {
+        // query.setCommunityId(this.getCommunityId());
+        return gridService.visitorList(query);
+    }
+
+    /**
+     * 待走访人员详情
+     * 
+     * @return
+     */
+    @GetMapping("/detail/{id}")
+    @ApiOperation(value = "待走访人员详情", response = EventVisitingTasksDetailsVO.class)
+    public R detail(@PathVariable("id") Long id) {
+        return gridService.detail(id);
+    }
+
+    /**
+     * 新增走访任务
+     * 
+     * @return
+     */
+    @PostMapping("/add")
+    @ApiOperation(value = "新增走访任务")
+    public R add(@RequestBody @Valid IdDTO idDTO) {
+        return gridService.addVisitingTask(idDTO, this.getCommunityId(), this.getUserId());
+    }
+
+    /**
+     * 撤销走访任务
+     * 
+     * @param idDTO
+     * @return
+     */
+    @PostMapping("/cancel")
+    @ApiOperation(value = "撤销走访任务")
+    public R cancel(@RequestBody @Valid IdDTO idDTO) {
+        return gridService.cancel(idDTO);
+    }
+
+    /**
+     * 恢复走访任务
+     * 
+     * @param idDTO
+     * @return
+     */
+    @PostMapping("/reset")
+    @ApiOperation(value = "新增走访任务")
+    public R reset(@RequestBody @Valid IdDTO idDTO) {
+        return gridService.reset(idDTO);
+    }
+
+    @GetMapping("/test")
+    public R test(){
+        return gridService.timedTaskVisitingJobHandler();
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/KaphtchaApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/KaphtchaApi.java
new file mode 100644
index 0000000..da69dbf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/KaphtchaApi.java
@@ -0,0 +1,80 @@
+package com.panzhihua.grid_backstage.api;
+
+import com.google.code.kaptcha.impl.DefaultKaptcha;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.utlis.StringUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.data.redis.core.StringRedisTemplate;
+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;
+import javax.imageio.ImageIO;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.awt.image.BufferedImage;
+import java.io.ByteArrayOutputStream;
+import java.time.Duration;
+
+/**
+ * @author zzj
+ */
+@Api(tags = {"验证码接口"})
+@RestController
+@RequestMapping("/kaphtcha/")
+public class KaphtchaApi extends BaseController {
+    @Resource
+    private DefaultKaptcha defaultKaptcha;
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+
+    @ApiOperation("生成验证码")
+    @GetMapping("/verification")
+    public void defaultKaptcha(@RequestParam("uuid")String uuid,HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse)
+            throws Exception {
+        byte[] captchaChallengeAsJpeg = null;
+        ByteArrayOutputStream jpegOutputStream = new ByteArrayOutputStream();
+        try {
+            // 生产验证码字符串并保存到session中,分布式环境存redis中
+            String createText = defaultKaptcha.createText();
+            stringRedisTemplate.opsForValue().set("verifyCode_"+uuid,createText, Duration.ofMinutes(5));
+            // 使用生产的验证码字符串返回一个BufferedImage对象并转为byte写入到byte数组中
+            BufferedImage challenge = defaultKaptcha.createImage(createText);
+            ImageIO.write(challenge, "jpg", jpegOutputStream);
+
+        } catch (IllegalArgumentException e) {
+            httpServletResponse.sendError(HttpServletResponse.SC_NOT_FOUND);
+            return;
+        }
+
+        // 定义response输出类型为image/jpeg类型,使用response输出流输出图片的byte数组
+        captchaChallengeAsJpeg = jpegOutputStream.toByteArray();
+        httpServletResponse.setHeader("Cache-Control", "no-store");
+        httpServletResponse.setHeader("Pragma", "no-cache");
+        httpServletResponse.setDateHeader("Expires", 0);
+        httpServletResponse.setContentType("image/jpeg");
+        ServletOutputStream responseOutputStream = httpServletResponse.getOutputStream();
+        responseOutputStream.write(captchaChallengeAsJpeg);
+        responseOutputStream.flush();
+        responseOutputStream.close();
+    }
+    @ApiOperation("验证码核对")
+    @GetMapping("/checkVerifyCode")
+    public R checkVerifyCode(@RequestParam("verifyCode")String verifyCode,@RequestParam("uuid")String uuid){
+        String text=stringRedisTemplate.opsForValue().get("verifyCode_"+uuid);
+        if(StringUtils.isNotEmpty(text)){
+            if(verifyCode.equals(text)){
+                stringRedisTemplate.delete("verifyCode_"+uuid);
+                return R.ok();
+            }
+            return R.fail("验证码错误");
+        }
+        return R.fail("验证码失效");
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/LoginApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/LoginApi.java
new file mode 100644
index 0000000..d4986c0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/LoginApi.java
@@ -0,0 +1,78 @@
+package com.panzhihua.grid_backstage.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.util.ObjectUtils;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.LoginReturnVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.user.ChangePasswordVO;
+import com.panzhihua.common.service.auth.TokenService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.grid_backstage.model.vos.LoginBody;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * @author cedoo
+ */
+@RestController
+@RequestMapping("/")
+@Api(tags = {"网格综治后台登录模块"})
+public class LoginApi extends BaseController {
+    @Resource
+    private TokenService tokenService;
+    @Resource
+    private UserService userService;
+
+    @ApiOperation(value = "网格综治后台登录", response = LoginReturnVO.class)
+    @PostMapping("login")
+    public R login(@RequestBody LoginBody loginBody) {
+        String account = loginBody.getAccount();
+        String password = loginBody.getPassword();
+        boolean empty = ObjectUtils.isEmpty(account);
+        boolean empty1 = ObjectUtils.isEmpty(password);
+        if (empty || empty1) {
+            return R.fail("账户密码不能为空");
+        }
+        R r = tokenService.loginGridBackstage(account, password,this.getAppId());
+        return r;
+    }
+
+    @ApiOperation(value = "刷新token", response = LoginReturnVO.class)
+    @GetMapping("refreshToken")
+    @ApiImplicitParam(name = "refreshToken", value = "登录返回的刷新token")
+    public R refreshToken(@RequestParam("refreshToken") String refreshToken) {
+        return tokenService.refreshToken(refreshToken);
+    }
+
+    @ApiOperation(value = "用户登出")
+    @PostMapping("logout")
+    public R logout() {
+        String token = this.getToken();
+        boolean empty2 = ObjectUtils.isEmpty(token);
+        if (empty2) {
+            return R.ok();
+        }
+        return tokenService.logout(token);
+    }
+
+    @ApiOperation(value = "修改密码")
+    @PutMapping("changepassword")
+    public R changePassword(@Validated @RequestBody ChangePasswordVO changePasswordVO) {
+        Long userId = this.getUserId();
+        String newPassword = changePasswordVO.getNewPassword();
+        String oldPassword = changePasswordVO.getOldPassword();
+        if (newPassword.equals(oldPassword)) {
+            return R.fail("修改失败,新密码和原密码一致");
+        }
+        changePasswordVO.setUserId(userId);
+        return userService.changePassword(changePasswordVO);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/PopulationApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/PopulationApi.java
new file mode 100644
index 0000000..8d86d3b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/PopulationApi.java
@@ -0,0 +1,155 @@
+package com.panzhihua.grid_backstage.api;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.*;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.alibaba.fastjson.JSON;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.excel.CustomSheetWriteHandler;
+import com.panzhihua.common.model.dtos.grid.admin.ComMngPopulationExportDTO;
+import com.panzhihua.common.model.dtos.grid.admin.ComMngPopulationListDTO;
+import com.panzhihua.common.model.dtos.grid.admin.ComMngPopulationRelationHouseDTO;
+import com.panzhihua.common.model.dtos.grid.admin.ComMngPopulationSubordinateDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.PopulationDetailVO;
+import com.panzhihua.common.model.vos.grid.admin.ComMngPopulationListVO;
+import com.panzhihua.common.model.vos.grid.admin.ComMngPopulationVillageVO;
+import com.panzhihua.common.model.vos.grid.admin.PopulationStatisticsVO;
+import com.panzhihua.common.model.vos.grid.admin.excel.ComMngPopulationExportExcelVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.SFTPUtil;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+@Api(tags = {"居民模块"})
+@RestController
+@RequestMapping("/population/")
+public class PopulationApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+    @Value("${excel.userurl}")
+    private String excelUrl;
+
+    @ApiOperation(value = "居民列表@lyq", response = ComMngPopulationListVO.class)
+    @PostMapping("/list")
+    public R list(@RequestBody ComMngPopulationListDTO populationListDTO) {
+        // LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
+        // populationListDTO.setCommunityId(loginUserInfoVO.getCommunityId());
+        return communityService.getGridPopulationList(populationListDTO);
+    }
+
+    @ApiOperation(value = "居民删除@lyq")
+    @PostMapping("/del")
+    public R del(@RequestBody List<Long> ids) {
+        return communityService.delGridPopulation(ids);
+    }
+
+    @ApiOperation(value = "居民查看@lyq", response = PopulationDetailVO.class)
+    @GetMapping("/get")
+    public R get(@RequestParam("populationId") Long populationId) {
+        return communityService.getGridPopulationDetail(populationId);
+    }
+
+    @ApiOperation(value = "居民标签栏统计@lyq", response = PopulationStatisticsVO.class)
+    @GetMapping("/statistics")
+    public R statistics() {
+        return communityService.getGridPopulationStatistics(0L);
+    }
+
+    @ApiOperation(value = "居民导出@lyq")
+    @PostMapping("/export")
+    public R export(@RequestBody ComMngPopulationExportDTO populationExportDTO) {
+        // 生成动态模板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<ComMngPopulationExportExcelVO> populList = JSON.parseArray(
+                        JSON.toJSONString(communityService.getGridPopulationExport(populationExportDTO).getData()),
+                        ComMngPopulationExportExcelVO.class);
+                    excelWriter = EasyExcel.write(fileName, ComMngPopulationExportExcelVO.class)
+                        .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                        .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                    WriteSheet writeSheet = EasyExcel.writerSheet("实有人口导出数据").build();
+                    excelWriter.write(populList, 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 = "小区列表@lyq", response = ComMngPopulationVillageVO.class)
+    @GetMapping("/relation/village")
+    public R relationVillage(@RequestParam("name") String name) {
+        return communityService.relationVillage(name);
+    }
+
+    @ApiOperation(value = "根据上级名称查询下级列表@lyq")
+    @PostMapping("/subordinate")
+    public R subordinate(@RequestBody ComMngPopulationSubordinateDTO subordinateDTO) {
+        return communityService.subordinate(subordinateDTO);
+    }
+
+    @ApiOperation(value = "居民关联房屋@lyq")
+    @PostMapping("/relation/house")
+    public R populationRelationHouse(@RequestBody ComMngPopulationRelationHouseDTO relationHouseDTO) {
+        return communityService.populationRelationHouse(relationHouseDTO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/PublicityEventApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/PublicityEventApi.java
new file mode 100644
index 0000000..7c7a428
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/PublicityEventApi.java
@@ -0,0 +1,147 @@
+package com.panzhihua.grid_backstage.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.grid.CommonEventRepublishDTO;
+import com.panzhihua.common.model.dtos.grid.EventRevokeDTO;
+import com.panzhihua.common.model.dtos.grid.PagePublicityEventCommunityDTO;
+import com.panzhihua.common.model.dtos.grid.PublicityEventAddDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.EventDetailsVO;
+import com.panzhihua.common.model.vos.grid.EventGridMemberAdminVO;
+import com.panzhihua.common.model.vos.grid.EventVO;
+import com.panzhihua.common.service.grid.GridService;
+import com.panzhihua.common.utlis.ClazzUtils;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Slf4j
+@RestController
+@RequestMapping("/publicity")
+@Api(tags = {"宣传教育 @chendong"})
+public class PublicityEventApi extends BaseController {
+
+    @Resource
+    private GridService gridService;
+
+    /**
+     * 事件列表
+     *
+     * @param pagePublicityEventDTO
+     *            查找事件
+     * @return 查找结果
+     */
+    @PostMapping("/usersList")
+    @ApiOperation(value = "宣传教育事件列表", response = EventVO.class)
+    R usersPublicityList(@Validated @RequestBody PagePublicityEventCommunityDTO pagePublicityEventDTO) {
+        ClazzUtils.setIfStringIsEmpty(pagePublicityEventDTO);
+        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
+        pagePublicityEventDTO.setUserId(loginUserInfoVO.getUserId());
+        // pagePublicityEventDTO.setCommunityId(loginUserInfoVO.getCommunityId());
+//        pagePublicityEventDTO.setRevokeType(2);
+        return gridService.queryPublicityCommunity(pagePublicityEventDTO);
+    }
+
+    /**
+     * 添加宣传教育事件
+     *
+     * @param publicityEventAddDTO
+     *            特殊人群信息
+     * @return 查找结果
+     */
+    @PostMapping()
+    @ApiOperation(value = "发布宣传教育事件", response = R.class)
+    R addPublicity(@Validated @RequestBody PublicityEventAddDTO publicityEventAddDTO) {
+        ClazzUtils.setIfStringIsEmpty(publicityEventAddDTO);
+        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
+        publicityEventAddDTO.setUserId(loginUserInfoVO.getUserId());
+        publicityEventAddDTO.setUserName(loginUserInfoVO.getName());
+        publicityEventAddDTO.setPhone(loginUserInfoVO.getPhone());
+        return gridService.addPublicity(publicityEventAddDTO);
+    }
+
+    /**
+     * 查询事件详细信息
+     *
+     * @param id
+     *            事件 id
+     * @return 查找结果
+     */
+    @GetMapping("/{id}")
+    @ApiOperation(value = "查询事件详细信息")
+    R<EventDetailsVO> details(@PathVariable("id") Long id) {
+        return gridService.eventDetails(id);
+    }
+
+    /**
+     * 撤销事件
+     *
+     * @param eventRevokeDTO
+     *            修改事件传递对象
+     * @return 修改结果
+     */
+    @PutMapping("/revoke")
+    @ApiOperation(value = "撤销事件", response = R.class)
+    R revoke(@Validated @RequestBody EventRevokeDTO eventRevokeDTO) {
+        ClazzUtils.setIfStringIsEmpty(eventRevokeDTO);
+        LoginUserInfoVO loginUserInfoVO = getLoginUserInfo();
+        eventRevokeDTO.setUserId(loginUserInfoVO.getUserId());
+        eventRevokeDTO.setUserName(loginUserInfoVO.getName());
+        eventRevokeDTO.setRevokeType(2);
+        eventRevokeDTO.setRevokeId(loginUserInfoVO.getCommunityId());
+        return gridService.emergenciesRevoke(eventRevokeDTO);
+    }
+
+    /**
+     * 重新发布事件
+     *
+     * @param commonEventRepublishDTO
+     *            重新发布事件传递对象
+     * @return 修改结果
+     */
+    @PutMapping("/republish")
+    @ApiOperation(value = "重新发布事件", response = R.class)
+    R republish(@Validated @RequestBody CommonEventRepublishDTO commonEventRepublishDTO) {
+        ClazzUtils.setIfStringIsEmpty(commonEventRepublishDTO);
+        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
+        commonEventRepublishDTO.setUserId(loginUserInfoVO.getUserId());
+        commonEventRepublishDTO.setUserName(loginUserInfoVO.getName());
+        return gridService.republishEvent(commonEventRepublishDTO);
+    }
+
+    @ApiOperation(value = "查询当前社区所有网格员", response = EventGridMemberAdminVO.class)
+    @GetMapping("/member/list")
+    public R getGridMemberLists() {
+        Long communityId = this.getCommunityId();
+        if (communityId == null) {
+            return R.fail("请先登录");
+        }
+        return gridService.getGridMemberLists(communityId);
+    }
+
+    @ApiOperation(value = "查询网格下所有网格员", response = EventGridMemberAdminVO.class)
+    @GetMapping("/member/{gridId}")
+    public R getGridMemberInLists(@PathVariable("gridId") Long gridId) {
+        return gridService.getGridMemberListsByGrid(gridId);
+    }
+
+    @ApiOperation(value = "查询社区所有网格", response = EventGridMemberAdminVO.class)
+    @GetMapping("/grid/list/{communityId}")
+    public R getGridLists(@PathVariable("communityId") Long communityId) {
+        return gridService.getGridDataListByCommunity(communityId);
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/StatisticsApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/StatisticsApi.java
new file mode 100644
index 0000000..dc2145d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/StatisticsApi.java
@@ -0,0 +1,152 @@
+package com.panzhihua.grid_backstage.api;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.*;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.alibaba.fastjson.JSON;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.excel.CustomSheetWriteHandler;
+import com.panzhihua.common.model.dtos.grid.MemberStatisticsAdminDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.EventStatisticsAllAdminVO;
+import com.panzhihua.common.model.vos.grid.EventStatisticsMemberAdminVO;
+import com.panzhihua.common.model.vos.grid.admin.excel.GridMemberWorkExportExcelVO;
+import com.panzhihua.common.service.grid.GridService;
+import com.panzhihua.common.utlis.SFTPUtil;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 统计模块
+ */
+@Slf4j
+@RestController
+@RequestMapping("/statistics/")
+@Api(tags = {"统计模块 @lyq"})
+public class StatisticsApi extends BaseController {
+
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+    @Value("${excel.userurl}")
+    private String excelUrl;
+
+    @Resource
+    private GridService gridService;
+
+    @ApiOperation(value = "事件统计", response = EventStatisticsAllAdminVO.class)
+    @GetMapping("/eventStatistics")
+    public R eventStatistics() {
+        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
+        if (loginUserInfoVO == null) {
+            return R.fail("请先登录");
+        }
+        return gridService.eventStatistics(loginUserInfoVO.getCommunityId());
+    }
+
+    @ApiOperation(value = "网格员统计", response = EventStatisticsMemberAdminVO.class)
+    @PostMapping("/gridMemberStatistics")
+    public R gridMemberStatistics(@RequestBody MemberStatisticsAdminDTO statisticsAdminDTO) {
+        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
+        if (loginUserInfoVO == null) {
+            return R.fail("请先登录");
+        }
+        // if(statisticsAdminDTO.getCommunityId() == null){
+        // statisticsAdminDTO.setCommunityId(loginUserInfoVO.getCommunityId());
+        // }
+        return gridService.gridMemberStatistics(statisticsAdminDTO);
+    }
+
+    @ApiOperation(value = "网格员统计导出")
+    @PostMapping("/gridMemberStatistics/export")
+    public R gridMemberStatisticsExport(@RequestBody MemberStatisticsAdminDTO statisticsAdminDTO) {
+        // LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
+        // if(loginUserInfoVO == null){
+        // return R.fail("请先登录");
+        // }
+        // gridService.gridMemberStatistics(statisticsAdminDTO);
+
+        // 生成动态模板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<EventStatisticsMemberAdminVO> populList = JSON.parseArray(
+                        JSON.toJSONString(gridService.gridMemberStatisticsAll(statisticsAdminDTO).getData()),
+                        EventStatisticsMemberAdminVO.class);
+                    List<GridMemberWorkExportExcelVO> workExportExcelList = new ArrayList<>();
+                    if (!populList.isEmpty()) {
+                        populList.forEach(popul -> {
+                            GridMemberWorkExportExcelVO workExportExcelVO = new GridMemberWorkExportExcelVO();
+                            BeanUtils.copyProperties(popul, workExportExcelVO);
+                            workExportExcelList.add(workExportExcelVO);
+                        });
+                    }
+
+                    excelWriter = EasyExcel.write(fileName, GridMemberWorkExportExcelVO.class)
+                        .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                        .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                    WriteSheet writeSheet = EasyExcel.writerSheet("网格员工作情况汇总数据").build();
+                    excelWriter.write(workExportExcelList, 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/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/SystemApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/SystemApi.java
new file mode 100644
index 0000000..636e14d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/SystemApi.java
@@ -0,0 +1,36 @@
+package com.panzhihua.grid_backstage.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.user.ComMngUserTagVO;
+import com.panzhihua.common.service.user.UserService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @author xyh
+ * @date 2021/6/29 14:45
+ */
+@Api(tags = {"系统管理"})
+@Slf4j
+@RequestMapping("/system")
+@RestController
+public class SystemApi extends BaseController {
+
+    @Resource
+    private UserService userService;
+
+    @ApiOperation(value = "获取用户标签", response = ComMngUserTagVO.class)
+    @GetMapping("/tags")
+    public R config() {
+        return userService.listComMngUserTag(this.getCommunityId());
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/UserApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/UserApi.java
new file mode 100644
index 0000000..cb25a3f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/UserApi.java
@@ -0,0 +1,67 @@
+package com.panzhihua.grid_backstage.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.user.UserService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 我的模块
+ * 
+ * @author lyq
+ */
+@Slf4j
+@RestController
+@RequestMapping("/user")
+@Api(tags = {"我的模块"})
+public class UserApi extends BaseController {
+
+    @Resource
+    private UserService userService;
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "当前登录用户信息", response = LoginUserInfoVO.class)
+    @GetMapping("/info")
+    public R getUserInfo() {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        Long communityId = loginUserInfo.getCommunityId();
+        Long userId = loginUserInfo.getUserId();
+        R<LoginUserInfoVO> r = userService.getUserInfoByUserId(userId + "");
+
+        if (R.isOk(r)) {
+            Object data = r.getData();
+            if (!ObjectUtils.isEmpty(data)) {
+                LoginUserInfoVO loginUserInfoVO = (LoginUserInfoVO)data;
+                // 查询社区信息
+                if (null != communityId && 0 != communityId) {
+                    R r1 = communityService.detailCommunity(communityId);
+                    if (R.isOk(r1)) {
+                        Object data1 = r1.getData();
+                        if (!ObjectUtils.isEmpty(data1)) {
+                            loginUserInfoVO
+                                .setComActVO(JSONObject.parseObject(JSONObject.toJSONString(data1), ComActVO.class));
+                            r.setData(loginUserInfoVO);
+                        }
+                    }
+                }
+            }
+        }
+        return r;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/VillageApi.java b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/VillageApi.java
new file mode 100644
index 0000000..66834fd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/api/VillageApi.java
@@ -0,0 +1,181 @@
+package com.panzhihua.grid_backstage.api;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.*;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.alibaba.fastjson.JSON;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.excel.CustomSheetWriteHandler;
+import com.panzhihua.common.model.dtos.grid.*;
+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.vos.R;
+import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingHouseDetailVO;
+import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingHouseVO;
+import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingVO;
+import com.panzhihua.common.model.vos.grid.EventSpecialPopulationVO;
+import com.panzhihua.common.model.vos.grid.admin.ComMngPopulationListVO;
+import com.panzhihua.common.model.vos.grid.admin.ComMngVillagePopulationHouseListVO;
+import com.panzhihua.common.model.vos.grid.admin.ComMngVillagePopulationListVO;
+import com.panzhihua.common.model.vos.grid.admin.ComMngVillageStatisticsVO;
+import com.panzhihua.common.model.vos.grid.admin.excel.ComMngVillageExportExcelVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.SFTPUtil;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+@Api(tags = {"小区模块"})
+@RestController
+@RequestMapping("/village/")
+public class VillageApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+    @Value("${excel.userurl}")
+    private String excelUrl;
+
+    @ApiOperation(value = "小区列表@lyq", response = ComMngPopulationListVO.class)
+    @PostMapping("/list")
+    public R list(@RequestBody ComMngVillageListAppDTO villageListAppDTO) {
+        return communityService.getGridVillageList(villageListAppDTO);
+    }
+
+    @ApiOperation(value = "小区楼栋列表@lyq", response = ComMngVillageBuildingVO.class)
+    @PostMapping("/building/list")
+    public R buildingList(@RequestParam("villageId") Long villageId) {
+        return communityService.getGridVillageBuildingList(villageId);
+    }
+
+    @ApiOperation(value = "小区楼栋下房屋列表@lyq", response = ComMngVillageBuildingHouseVO.class)
+    @PostMapping("/building/house/list")
+    public R buildingHouseList(@RequestBody PageComMngVillageBuildHouseAppDTO buildHouseAppDTO) {
+        return communityService.getGridVillageBuildingHouseList(buildHouseAppDTO);
+    }
+
+    @ApiOperation(value = "房屋详情@lyq", response = ComMngVillageBuildingHouseDetailVO.class)
+    @PostMapping("/building/house/detail")
+    public R buildingHouseDetail(@RequestParam("houseId") Long houseId) {
+        return communityService.getGridVillageBuildingHouseDetail(houseId);
+    }
+
+    @ApiOperation(value = "房屋添加人员")
+    @PostMapping("/building/house/add/population")
+    public R addBuildingHousePopulation(@RequestBody AddComMngHousePopulationDTO housePopulationDTO) {
+        return communityService.addBuildingHousePopulation(housePopulationDTO);
+    }
+
+    @ApiOperation(value = "房屋删除人员")
+    @PostMapping("/building/house/del/population")
+    public R delBuildingHousePopulation(@RequestBody DelComMngHousePopulationDTO housePopulationDTO) {
+        return communityService.delBuildingHousePopulation(housePopulationDTO);
+    }
+
+    @ApiOperation(value = "查询人口列表", response = EventSpecialPopulationVO.class)
+    @PostMapping("/building/house/population/list")
+    public R getBuildingHousePopulationList(@RequestBody PageComMngPopulationDTO populationDTO) {
+        return communityService.getBuildingHousePopulationList(populationDTO);
+    }
+
+    @ApiOperation(value = "删除小区@lyq")
+    @PostMapping("/del")
+    public R del(@RequestBody List<Long> villageIds) {
+        return communityService.delGridVillage(villageIds);
+    }
+
+    @ApiOperation(value = "查看小区居民列表@lyq", response = ComMngVillagePopulationListVO.class)
+    @PostMapping("/population/list")
+    public R populationList(@RequestBody PageComMngVillagePopulationDTO villagePopulationDTO) {
+        return communityService.getVillagePopulationAdmin(villagePopulationDTO);
+    }
+
+    @ApiOperation(value = "查看居民房屋列表@lyq", response = ComMngVillagePopulationHouseListVO.class)
+    @PostMapping("/population/house/list")
+    public R populationHouseList(@RequestBody PageComMngVillagePopulationHouseDTO villagePopulationHouseDTO) {
+        return communityService.getVillagePopulationHouseAdmin(villagePopulationHouseDTO);
+    }
+
+    @ApiOperation(value = "小区统计@lyq", response = ComMngVillageStatisticsVO.class)
+    @GetMapping("/statistics")
+    public R statistics() {
+        return communityService.getGridVillageStatistics();
+    }
+
+    @ApiOperation(value = "小区列表导出@lyq")
+    @PostMapping("/export")
+    public R export(@RequestBody ComMngVillageListExportAdminDTO villageListAppDTO) {
+        // 生成动态模板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<ComMngVillageExportExcelVO> populList = JSON.parseArray(
+                        JSON.toJSONString(communityService.getGridVillageListExport(villageListAppDTO).getData()),
+                        ComMngVillageExportExcelVO.class);
+                    excelWriter = EasyExcel.write(fileName, ComMngVillageExportExcelVO.class)
+                        .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                        .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                    WriteSheet writeSheet = EasyExcel.writerSheet("小区导出数据").build();
+                    excelWriter.write(populList, 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/grid_backstage/src/main/java/com/panzhihua/grid_backstage/config/JacksonConfig.java b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/config/JacksonConfig.java
new file mode 100644
index 0000000..4733191
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/config/JacksonConfig.java
@@ -0,0 +1,31 @@
+package com.panzhihua.grid_backstage.config;
+
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.module.SimpleModule;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
+
+@Configuration
+public class JacksonConfig {
+
+    @Bean
+    @Primary
+    @ConditionalOnMissingBean(ObjectMapper.class)
+    public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder)
+    {
+        ObjectMapper objectMapper = builder.createXmlMapper(false).build();
+
+        // 全局配置序列化返回 JSON 处理
+        SimpleModule simpleModule = new SimpleModule();
+        //JSON Long ==> String
+        simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
+        objectMapper.registerModule(simpleModule);
+        return objectMapper;
+    }
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/config/KaptchaConfig.java b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/config/KaptchaConfig.java
new file mode 100644
index 0000000..57ef32e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/config/KaptchaConfig.java
@@ -0,0 +1,45 @@
+package com.panzhihua.grid_backstage.config;
+
+import com.google.code.kaptcha.Constants;
+import com.google.code.kaptcha.impl.DefaultKaptcha;
+import com.google.code.kaptcha.util.Config;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.Properties;
+
+/**
+ * @author zzj
+ */
+@Configuration
+public class KaptchaConfig {
+    /**
+     * 验证码配置
+     * @return
+     */
+    @Bean
+    public DefaultKaptcha getDefaultKaptcha(){
+        DefaultKaptcha defaultKaptcha=new DefaultKaptcha();
+        Properties properties=new Properties();
+        //是否有边框
+        properties.setProperty(Constants.KAPTCHA_BORDER,"yes");
+        //验证码文本颜色
+        properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_FONT_COLOR,"red");
+        //验证码图片宽度
+        properties.setProperty(Constants.KAPTCHA_IMAGE_WIDTH,"180");
+        //验证码图片高度
+        properties.setProperty(Constants.KAPTCHA_IMAGE_HEIGHT,"80");
+        //文本字符大小
+        properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_FONT_SIZE,"39");
+        //验证码session的值
+        properties.setProperty(Constants.KAPTCHA_SESSION_CONFIG_KEY,"kaptchaCode");
+        //验证码文本长度
+        properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_CHAR_LENGTH,"4");
+        //字体
+        properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_FONT_NAMES, "宋体,楷体,微软雅黑");
+
+        Config config=new Config(properties);
+        defaultKaptcha.setConfig(config);
+        return defaultKaptcha;
+    }
+}
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/java/com/panzhihua/grid_backstage/config/SFTPConfig.java b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/config/SFTPConfig.java
new file mode 100644
index 0000000..5defbdf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/config/SFTPConfig.java
@@ -0,0 +1,31 @@
+package com.panzhihua.grid_backstage.config;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Configuration;
+
+import lombok.Data;
+
+/**
+ * @Author: llming
+ * @Description:
+ */
+@Configuration
+@Data
+public class SFTPConfig {
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+    @Value("${ftp.url}")
+    private String url;
+    @Value("${excel.userurl}")
+    private String excelUrl;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/config/SwaggerConfig.java b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/config/SwaggerConfig.java
new file mode 100644
index 0000000..ac82e62
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/config/SwaggerConfig.java
@@ -0,0 +1,33 @@
+package com.panzhihua.grid_backstage.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import io.swagger.annotations.ApiOperation;
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.service.Contact;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: swagger3
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-19 16:08
+ **/
+@Configuration
+public class SwaggerConfig {
+    @Bean
+    public Docket createRestApi() {
+        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
+            .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)).paths(PathSelectors.any()).build();
+    }
+
+    private ApiInfo apiInfo() {
+        return new ApiInfoBuilder().title("网格治理后台管理接口").description("。")
+            .contact(new Contact("Ray。", "http://www.ruiyeclub.cn", "ruiyeclub@foxmail.com")).version("1.0").build();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/model/vos/LoginBody.java b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/model/vos/LoginBody.java
new file mode 100644
index 0000000..143c637
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/java/com/panzhihua/grid_backstage/model/vos/LoginBody.java
@@ -0,0 +1,25 @@
+package com.panzhihua.grid_backstage.model.vos;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 登录
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-24 10:54
+ **/
+@Data
+@ApiModel(value = "网格综治后台登录")
+@AllArgsConstructor
+@NoArgsConstructor
+public class LoginBody {
+
+    @ApiModelProperty(value = "登录账户")
+    private String account;
+    @ApiModelProperty(value = "登录密码")
+    private String password;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/resources/bootstrap.yml b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..f888458
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/resources/bootstrap.yml
@@ -0,0 +1,35 @@
+spring:
+  application:
+    name: gridbackstage
+  cloud:
+    config:
+      discovery:
+        enabled: true
+        service-id: huacheng-config  # 注册中心的服务名
+      profile: ${ENV:dev}  # 指定配置文件的环境
+      uri: http://${CONFIG_URL:localhost}:6193/
+  profiles:
+    active: ${ENV:dev}
+  servlet:
+    multipart:
+      max-file-size: 200MB
+      max-request-size: 200MB
+
+eureka:
+  client:
+    service-url:
+      defaultZone: http://${EUREKA_URL:localhost}:8192/eureka
+
+management:
+  endpoints:
+    web:
+      exposure:
+        include: '*'
+
+  endpoint:
+    health:
+      show-details: always
+
+  metrics:
+    tags:
+      application: gridbackstage
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/resources/logback-spring.xml b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..aa0c863
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/grid_backstage/src/main/resources/logback-spring.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration debug="false">
+    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
+    <springProfile name="dev">
+        <property name="LOG_HOME" value="F:/log" />
+    </springProfile>
+       <springProfile name="test">
+        <property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    </springProfile>
+<property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    <!-- 控制台输出 -->
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+    </appender>
+    <!-- 按照每天生成日志文件 -->
+    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!--日志文件输出的文件名-->
+            <FileNamePattern>${LOG_HOME}/grid_backstage.log.%d{yyyy-MM-dd}.log</FileNamePattern>
+            <!--日志文件保留天数-->
+            <MaxHistory>30</MaxHistory>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+        <!--日志文件最大的大小-->
+        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <MaxFileSize>10MB</MaxFileSize>
+        </triggeringPolicy>
+    </appender>
+
+    <!--myibatis log configure-->
+    <logger name="com.apache.ibatis" level="TRACE"/>
+    <logger name="java.sql.Connection" level="DEBUG"/>
+    <logger name="java.sql.Statement" level="DEBUG"/>
+    <logger name="java.sql.PreparedStatement" level="DEBUG"/>
+    <logger name="com.panzhihua.community_backstage" level="DEBUG"/>
+
+    <!-- 日志输出级别 -->
+    <root level="DEBUG">
+        <appender-ref ref="STDOUT" />
+    </root>
+    <root level="INFO">
+        <appender-ref ref="STDOUT" />
+        <appender-ref ref="FILE" />
+    </root>
+</configuration>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/mvnw b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/mvnw
new file mode 100644
index 0000000..66df285
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/mvnw
@@ -0,0 +1,308 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#    https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Apache Maven Wrapper startup batch script, version 3.2.0
+#
+# Required ENV vars:
+# ------------------
+#   JAVA_HOME - location of a JDK home dir
+#
+# Optional ENV vars
+# -----------------
+#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
+#     e.g. to debug Maven itself, use
+#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+# ----------------------------------------------------------------------------
+
+if [ -z "$MAVEN_SKIP_RC" ] ; then
+
+  if [ -f /usr/local/etc/mavenrc ] ; then
+    . /usr/local/etc/mavenrc
+  fi
+
+  if [ -f /etc/mavenrc ] ; then
+    . /etc/mavenrc
+  fi
+
+  if [ -f "$HOME/.mavenrc" ] ; then
+    . "$HOME/.mavenrc"
+  fi
+
+fi
+
+# OS specific support.  $var _must_ be set to either true or false.
+cygwin=false;
+darwin=false;
+mingw=false
+case "$(uname)" in
+  CYGWIN*) cygwin=true ;;
+  MINGW*) mingw=true;;
+  Darwin*) darwin=true
+    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
+    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
+    if [ -z "$JAVA_HOME" ]; then
+      if [ -x "/usr/libexec/java_home" ]; then
+        JAVA_HOME="$(/usr/libexec/java_home)"; export JAVA_HOME
+      else
+        JAVA_HOME="/Library/Java/Home"; export JAVA_HOME
+      fi
+    fi
+    ;;
+esac
+
+if [ -z "$JAVA_HOME" ] ; then
+  if [ -r /etc/gentoo-release ] ; then
+    JAVA_HOME=$(java-config --jre-home)
+  fi
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin ; then
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=$(cygpath --unix "$JAVA_HOME")
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=$(cygpath --path --unix "$CLASSPATH")
+fi
+
+# For Mingw, ensure paths are in UNIX format before anything is touched
+if $mingw ; then
+  [ -n "$JAVA_HOME" ] && [ -d "$JAVA_HOME" ] &&
+    JAVA_HOME="$(cd "$JAVA_HOME" || (echo "cannot cd into $JAVA_HOME."; exit 1); pwd)"
+fi
+
+if [ -z "$JAVA_HOME" ]; then
+  javaExecutable="$(which javac)"
+  if [ -n "$javaExecutable" ] && ! [ "$(expr "\"$javaExecutable\"" : '\([^ ]*\)')" = "no" ]; then
+    # readlink(1) is not available as standard on Solaris 10.
+    readLink=$(which readlink)
+    if [ ! "$(expr "$readLink" : '\([^ ]*\)')" = "no" ]; then
+      if $darwin ; then
+        javaHome="$(dirname "\"$javaExecutable\"")"
+        javaExecutable="$(cd "\"$javaHome\"" && pwd -P)/javac"
+      else
+        javaExecutable="$(readlink -f "\"$javaExecutable\"")"
+      fi
+      javaHome="$(dirname "\"$javaExecutable\"")"
+      javaHome=$(expr "$javaHome" : '\(.*\)/bin')
+      JAVA_HOME="$javaHome"
+      export JAVA_HOME
+    fi
+  fi
+fi
+
+if [ -z "$JAVACMD" ] ; then
+  if [ -n "$JAVA_HOME"  ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+      # IBM's JDK on AIX uses strange locations for the executables
+      JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+      JAVACMD="$JAVA_HOME/bin/java"
+    fi
+  else
+    JAVACMD="$(\unset -f command 2>/dev/null; \command -v java)"
+  fi
+fi
+
+if [ ! -x "$JAVACMD" ] ; then
+  echo "Error: JAVA_HOME is not defined correctly." >&2
+  echo "  We cannot execute $JAVACMD" >&2
+  exit 1
+fi
+
+if [ -z "$JAVA_HOME" ] ; then
+  echo "Warning: JAVA_HOME environment variable is not set."
+fi
+
+# traverses directory structure from process work directory to filesystem root
+# first directory with .mvn subdirectory is considered project base directory
+find_maven_basedir() {
+  if [ -z "$1" ]
+  then
+    echo "Path not specified to find_maven_basedir"
+    return 1
+  fi
+
+  basedir="$1"
+  wdir="$1"
+  while [ "$wdir" != '/' ] ; do
+    if [ -d "$wdir"/.mvn ] ; then
+      basedir=$wdir
+      break
+    fi
+    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
+    if [ -d "${wdir}" ]; then
+      wdir=$(cd "$wdir/.." || exit 1; pwd)
+    fi
+    # end of workaround
+  done
+  printf '%s' "$(cd "$basedir" || exit 1; pwd)"
+}
+
+# concatenates all lines of a file
+concat_lines() {
+  if [ -f "$1" ]; then
+    # Remove \r in case we run on Windows within Git Bash
+    # and check out the repository with auto CRLF management
+    # enabled. Otherwise, we may read lines that are delimited with
+    # \r\n and produce $'-Xarg\r' rather than -Xarg due to word
+    # splitting rules.
+    tr -s '\r\n' ' ' < "$1"
+  fi
+}
+
+log() {
+  if [ "$MVNW_VERBOSE" = true ]; then
+    printf '%s\n' "$1"
+  fi
+}
+
+BASE_DIR=$(find_maven_basedir "$(dirname "$0")")
+if [ -z "$BASE_DIR" ]; then
+  exit 1;
+fi
+
+MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}; export MAVEN_PROJECTBASEDIR
+log "$MAVEN_PROJECTBASEDIR"
+
+##########################################################################################
+# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+# This allows using the maven wrapper in projects that prohibit checking in binary data.
+##########################################################################################
+wrapperJarPath="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar"
+if [ -r "$wrapperJarPath" ]; then
+    log "Found $wrapperJarPath"
+else
+    log "Couldn't find $wrapperJarPath, downloading it ..."
+
+    if [ -n "$MVNW_REPOURL" ]; then
+      wrapperUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar"
+    else
+      wrapperUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar"
+    fi
+    while IFS="=" read -r key value; do
+      # Remove '\r' from value to allow usage on windows as IFS does not consider '\r' as a separator ( considers space, tab, new line ('\n'), and custom '=' )
+      safeValue=$(echo "$value" | tr -d '\r')
+      case "$key" in (wrapperUrl) wrapperUrl="$safeValue"; break ;;
+      esac
+    done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties"
+    log "Downloading from: $wrapperUrl"
+
+    if $cygwin; then
+      wrapperJarPath=$(cygpath --path --windows "$wrapperJarPath")
+    fi
+
+    if command -v wget > /dev/null; then
+        log "Found wget ... using wget"
+        [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--quiet"
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+            wget $QUIET "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
+        else
+            wget $QUIET --http-user="$MVNW_USERNAME" --http-password="$MVNW_PASSWORD" "$wrapperUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath"
+        fi
+    elif command -v curl > /dev/null; then
+        log "Found curl ... using curl"
+        [ "$MVNW_VERBOSE" = true ] && QUIET="" || QUIET="--silent"
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+            curl $QUIET -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath"
+        else
+            curl $QUIET --user "$MVNW_USERNAME:$MVNW_PASSWORD" -o "$wrapperJarPath" "$wrapperUrl" -f -L || rm -f "$wrapperJarPath"
+        fi
+    else
+        log "Falling back to using Java to download"
+        javaSource="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.java"
+        javaClass="$MAVEN_PROJECTBASEDIR/.mvn/wrapper/MavenWrapperDownloader.class"
+        # For Cygwin, switch paths to Windows format before running javac
+        if $cygwin; then
+          javaSource=$(cygpath --path --windows "$javaSource")
+          javaClass=$(cygpath --path --windows "$javaClass")
+        fi
+        if [ -e "$javaSource" ]; then
+            if [ ! -e "$javaClass" ]; then
+                log " - Compiling MavenWrapperDownloader.java ..."
+                ("$JAVA_HOME/bin/javac" "$javaSource")
+            fi
+            if [ -e "$javaClass" ]; then
+                log " - Running MavenWrapperDownloader.java ..."
+                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$wrapperUrl" "$wrapperJarPath") || rm -f "$wrapperJarPath"
+            fi
+        fi
+    fi
+fi
+##########################################################################################
+# End of extension
+##########################################################################################
+
+# If specified, validate the SHA-256 sum of the Maven wrapper jar file
+wrapperSha256Sum=""
+while IFS="=" read -r key value; do
+  case "$key" in (wrapperSha256Sum) wrapperSha256Sum=$value; break ;;
+  esac
+done < "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.properties"
+if [ -n "$wrapperSha256Sum" ]; then
+  wrapperSha256Result=false
+  if command -v sha256sum > /dev/null; then
+    if echo "$wrapperSha256Sum  $wrapperJarPath" | sha256sum -c > /dev/null 2>&1; then
+      wrapperSha256Result=true
+    fi
+  elif command -v shasum > /dev/null; then
+    if echo "$wrapperSha256Sum  $wrapperJarPath" | shasum -a 256 -c > /dev/null 2>&1; then
+      wrapperSha256Result=true
+    fi
+  else
+    echo "Checksum validation was requested but neither 'sha256sum' or 'shasum' are available."
+    echo "Please install either command, or disable validation by removing 'wrapperSha256Sum' from your maven-wrapper.properties."
+    exit 1
+  fi
+  if [ $wrapperSha256Result = false ]; then
+    echo "Error: Failed to validate Maven wrapper SHA-256, your Maven wrapper might be compromised." >&2
+    echo "Investigate or delete $wrapperJarPath to attempt a clean download." >&2
+    echo "If you updated your Maven version, you need to update the specified wrapperSha256Sum property." >&2
+    exit 1
+  fi
+fi
+
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=$(cygpath --path --windows "$JAVA_HOME")
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=$(cygpath --path --windows "$CLASSPATH")
+  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
+    MAVEN_PROJECTBASEDIR=$(cygpath --path --windows "$MAVEN_PROJECTBASEDIR")
+fi
+
+# Provide a "standardized" way to retrieve the CLI args that will
+# work with both Windows and non-Windows executions.
+MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $*"
+export MAVEN_CMD_LINE_ARGS
+
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+# shellcheck disable=SC2086 # safe args
+exec "$JAVACMD" \
+  $MAVEN_OPTS \
+  $MAVEN_DEBUG_OPTS \
+  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
+  "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
+  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/mvnw.cmd b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/mvnw.cmd
new file mode 100644
index 0000000..95ba6f5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/mvnw.cmd
@@ -0,0 +1,205 @@
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements.  See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership.  The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License.  You may obtain a copy of the License at
+@REM
+@REM    https://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied.  See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Apache Maven Wrapper startup batch script, version 3.2.0
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
+@REM     e.g. to debug Maven itself, use
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+@REM ----------------------------------------------------------------------------
+
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
+@echo off
+@REM set title of command window
+title %0
+@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
+@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
+
+@REM set %HOME% to equivalent of $HOME
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
+
+@REM Execute a user defined script before this one
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
+if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %*
+if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %*
+:skipRcPre
+
+@setlocal
+
+set ERROR_CODE=0
+
+@REM To isolate internal variables from possible post scripts, we use another setlocal
+@setlocal
+
+@REM ==== START VALIDATION ====
+if not "%JAVA_HOME%" == "" goto OkJHome
+
+echo.
+echo Error: JAVA_HOME not found in your environment. >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:OkJHome
+if exist "%JAVA_HOME%\bin\java.exe" goto init
+
+echo.
+echo Error: JAVA_HOME is set to an invalid directory. >&2
+echo JAVA_HOME = "%JAVA_HOME%" >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+@REM ==== END VALIDATION ====
+
+:init
+
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
+@REM Fallback to current working directory if not found.
+
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
+
+set EXEC_DIR=%CD%
+set WDIR=%EXEC_DIR%
+:findBaseDir
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
+cd ..
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
+set WDIR=%CD%
+goto findBaseDir
+
+:baseDirFound
+set MAVEN_PROJECTBASEDIR=%WDIR%
+cd "%EXEC_DIR%"
+goto endDetectBaseDir
+
+:baseDirNotFound
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
+cd "%EXEC_DIR%"
+
+:endDetectBaseDir
+
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
+
+@setlocal EnableExtensions EnableDelayedExpansion
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
+
+:endReadAdditionalConfig
+
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+set WRAPPER_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar"
+
+FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
+    IF "%%A"=="wrapperUrl" SET WRAPPER_URL=%%B
+)
+
+@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
+if exist %WRAPPER_JAR% (
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Found %WRAPPER_JAR%
+    )
+) else (
+    if not "%MVNW_REPOURL%" == "" (
+        SET WRAPPER_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.2.0/maven-wrapper-3.2.0.jar"
+    )
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Couldn't find %WRAPPER_JAR%, downloading it ...
+        echo Downloading from: %WRAPPER_URL%
+    )
+
+    powershell -Command "&{"^
+		"$webclient = new-object System.Net.WebClient;"^
+		"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
+		"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
+		"}"^
+		"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%WRAPPER_URL%', '%WRAPPER_JAR%')"^
+		"}"
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Finished downloading %WRAPPER_JAR%
+    )
+)
+@REM End of extension
+
+@REM If specified, validate the SHA-256 sum of the Maven wrapper jar file
+SET WRAPPER_SHA_256_SUM=""
+FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
+    IF "%%A"=="wrapperSha256Sum" SET WRAPPER_SHA_256_SUM=%%B
+)
+IF NOT %WRAPPER_SHA_256_SUM%=="" (
+    powershell -Command "&{"^
+       "$hash = (Get-FileHash \"%WRAPPER_JAR%\" -Algorithm SHA256).Hash.ToLower();"^
+       "If('%WRAPPER_SHA_256_SUM%' -ne $hash){"^
+       "  Write-Output 'Error: Failed to validate Maven wrapper SHA-256, your Maven wrapper might be compromised.';"^
+       "  Write-Output 'Investigate or delete %WRAPPER_JAR% to attempt a clean download.';"^
+       "  Write-Output 'If you updated your Maven version, you need to update the specified wrapperSha256Sum property.';"^
+       "  exit 1;"^
+       "}"^
+       "}"
+    if ERRORLEVEL 1 goto error
+)
+
+@REM Provide a "standardized" way to retrieve the CLI args that will
+@REM work with both Windows and non-Windows executions.
+set MAVEN_CMD_LINE_ARGS=%*
+
+%MAVEN_JAVA_EXE% ^
+  %JVM_CONFIG_MAVEN_PROPS% ^
+  %MAVEN_OPTS% ^
+  %MAVEN_DEBUG_OPTS% ^
+  -classpath %WRAPPER_JAR% ^
+  "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^
+  %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
+if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat"
+if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd"
+:skipRcPost
+
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
+if "%MAVEN_BATCH_PAUSE%"=="on" pause
+
+if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE%
+
+cmd /C exit /B %ERROR_CODE%
diff --git a/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/pom.xml
new file mode 100644
index 0000000..0521626
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/pom.xml
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.panzhihua</groupId>
+        <artifactId>zhihuishequ</artifactId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <groupId>com.chuangongzhijia</groupId>
+    <artifactId>huacheng-union-applets</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>huacheng-union-applets</name>
+    <description>川工之家</description>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+
+
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-config</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>com.panzhihua</groupId>
+            <artifactId>common</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.netflix.hystrix</groupId>
+            <artifactId>hystrix-javanica</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.github.xiaoymin</groupId>
+            <artifactId>swagger-bootstrap-ui</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+
+    </dependencies>
+
+
+
+    <build>
+        <resources>
+            <!--            <resource>-->
+            <!--                <directory>${project.basedir}/src/main/resources/lib</directory>-->
+            <!--                <targetPath>/BOOT-INF/lib/</targetPath>-->
+            <!--                <includes>-->
+            <!--                    <include>**/*.jar</include>-->
+            <!--                </includes>-->
+            <!--            </resource>-->
+            <!--            <resource>-->
+            <!--                <directory>src/main/resources</directory>-->
+            <!--                <targetPath>BOOT-INF/classes/</targetPath>-->
+            <!--            </resource>-->
+        </resources>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>2.5.0</version>
+                <configuration>
+                    <mainClass>com.panzhihua.huacheng-union-applets.HuachengUnionAppletsApplication</mainClass>
+                    <includeSystemScope>true</includeSystemScope>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>docker-maven-plugin</artifactId>
+                <version>1.2.0</version>
+                <configuration>
+                    <imageName>registry.cn-chengdu.aliyuncs.com/panzhihua/huacheng-union-applets:v1</imageName>
+                    <serverId></serverId>
+                    <baseImage>java</baseImage>
+                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
+                    <resources>
+                        <resource>
+                            <targetPath>/</targetPath>
+                            <directory>${project.build.directory}</directory>
+                            <include>${project.build.finalName}.jar</include>
+                        </resource>
+                    </resources>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+
+    <repositories>
+        <repository>
+            <id>spring-snapshots</id>
+            <name>Spring Snapshots</name>
+            <url>https://repo.spring.io/snapshot</url>
+            <snapshots>
+                <enabled>true</enabled>
+            </snapshots>
+        </repository>
+        <repository>
+            <id>spring-milestones</id>
+            <name>Spring Milestones</name>
+            <url>https://repo.spring.io/milestone</url>
+        </repository>
+    </repositories>
+
+</project>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/HuachengUnionAppletsApplication.java b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/HuachengUnionAppletsApplication.java
new file mode 100644
index 0000000..45a1df2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/HuachengUnionAppletsApplication.java
@@ -0,0 +1,25 @@
+package com.chuangongzhijia.huacheng_union_applets;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.context.annotation.ComponentScan;
+
+import org.springframework.cloud.client.SpringCloudApplication;
+import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+@EnableSwagger2
+@SpringCloudApplication
+@EnableCircuitBreaker
+@EnableEurekaClient
+@EnableFeignClients(basePackages = {"com.panzhihua.common.service"})
+@ComponentScan({"com.chuangongzhijia.huacheng_union_applets", "com.panzhihua.common"})
+public class HuachengUnionAppletsApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(HuachengUnionAppletsApplication.class, args);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/RoomckWebApi.java b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/RoomckWebApi.java
new file mode 100644
index 0000000..ce9f8fd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/RoomckWebApi.java
@@ -0,0 +1,31 @@
+package com.chuangongzhijia.huacheng_union_applets.api;
+
+import com.panzhihua.common.model.vos.ResultData;
+import com.panzhihua.common.model.vos.union.StructuredVO;
+import com.panzhihua.common.service.community.CommunityUnionService;
+import io.swagger.annotations.Api;
+import lombok.extern.slf4j.Slf4j;
+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.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+
+@Slf4j
+@Api(tags = {"新闻基本面,技术面相关接口"})
+@RestController
+@RequestMapping("/roomck-web")
+public class RoomckWebApi {
+
+    @Resource
+    private CommunityUnionService communityUnionService;
+
+    @PostMapping("/roomck/ivsCommomEventController")
+    public ResultData ivsCommomEventController(@RequestBody List<StructuredVO> structureds){
+        log.info("传输参数为{}",structureds);
+        return  communityUnionService.ivsCommomEventController(structureds);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionExchangeRecordApi.java b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionExchangeRecordApi.java
new file mode 100644
index 0000000..0eb72e1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionExchangeRecordApi.java
@@ -0,0 +1,105 @@
+package com.chuangongzhijia.huacheng_union_applets.api;
+
+import com.panzhihua.common.model.dtos.equipment.UnionExchangeRecordDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.community.CommunityUnionService;
+import com.panzhihua.common.utlis.StringUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Api(tags = {"兑换记录"})
+@Slf4j
+@RestController
+@RequestMapping("/UnionExchangeRecord")
+public class UnionExchangeRecordApi
+{
+    @Resource
+    private CommunityUnionService unionStoreService;
+
+    @ApiOperation(value = "兑换记录列表", response = UnionExchangeRecordDto.class)
+    @GetMapping("/getList")
+    public R unionExchangeRecordGetList(@RequestParam("pageNum") int pageNum,
+                                        @RequestParam("pageSize") int pageSize,
+                                        @RequestParam(value = "communityId",required = false) String communityId,
+                                        @RequestParam(value = "orderType",required = false) String orderType)
+    {
+        return unionStoreService.unionExchangeRecordGetList(pageNum,pageSize,communityId,orderType);
+    }
+
+    @ApiOperation(value = "兑换记录单个详情",response = UnionExchangeRecordDto.class)
+    @GetMapping("/getData")
+    public R unionExchangeRecordGetData(@RequestParam("id") String id)
+    {
+        return unionStoreService.unionExchangeRecordGetData(id);
+    }
+
+
+    @ApiOperation(value = "新增兑换记录")
+    @PostMapping("/insert")
+    public R unionExchangeRecordInsert(@RequestBody UnionExchangeRecordDto item)
+    {
+        return unionStoreService.unionExchangeRecordInsert(item);
+    }
+
+    @ApiOperation(value = "修改兑换记录")
+    @PostMapping("/update")
+    public R unionExchangeRecordUpdate(@RequestBody UnionExchangeRecordDto item)
+    {
+        return unionStoreService.unionExchangeRecordUpdate(item);
+    }
+
+
+    @ApiOperation(value = "添加物流公司")
+    @PostMapping("/addLogistics")
+    public R unionExchangeRecordAddLogistics(@RequestBody UnionExchangeRecordDto item)
+    {
+        if(StringUtils.isEmpty(item.getLogisticsCompany()))
+        {
+            return R.fail("请输入物流公司");
+        }
+
+        if (StringUtils.isEmpty(item.getLogisticsNum()))
+        {
+            return R.fail("请输入物流单号");
+        }
+
+        if (StringUtils.isEmpty(item.getId()))
+        {
+            return R.fail("订单id不能为空");
+        }
+        item.setOrderType("2");
+        return unionStoreService.unionExchangeRecordUpdate(item);
+    }
+
+
+    @ApiOperation(value = "已收货")
+    @PostMapping("/confirmOrder")
+    public R unionExchangeRecordConfirmOrder(@RequestBody UnionExchangeRecordDto item)
+    {
+        if (StringUtils.isEmpty(item.getId()))
+        {
+            return R.fail("订单id不能为空");
+        }
+        item.setOrderType("4");
+        return unionStoreService.unionExchangeRecordUpdate(item);
+    }
+
+
+    /**
+     * 删除接口
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "删除兑换记录")
+    @DeleteMapping("/delete")
+    public R unionExchangeRecordDelete(@RequestParam("id") String id)
+    {
+        return unionStoreService.unionExchangeRecordDelete(id);
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionInspectionApi.java b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionInspectionApi.java
new file mode 100644
index 0000000..c4e0dd8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionInspectionApi.java
@@ -0,0 +1,52 @@
+package com.chuangongzhijia.huacheng_union_applets.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.equipment.UnionInspectionDto;
+import com.panzhihua.common.model.dtos.equipment.UnionUserDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.community.CommunityUnionService;
+import io.swagger.annotations.Api;
+import lombok.extern.slf4j.Slf4j;
+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.RestController;
+
+
+import javax.annotation.Resource;
+
+
+@Slf4j
+@Api(tags = {"户外劳工站巡查"})
+@RestController
+@RequestMapping("/unionInspection")
+public class UnionInspectionApi{
+
+    @Resource
+    private CommunityUnionService communityUnionService;
+
+    /**
+     * 新增户外劳工站巡查
+     *
+     * @param unionInspectionDto
+     * @return 新增结果
+     */
+    @PostMapping("/add")
+    public R add(@RequestBody UnionInspectionDto unionInspectionDto) {
+        unionInspectionDto.setIsApplets(3);
+        return communityUnionService.add(unionInspectionDto);
+    }
+
+
+    /**
+     * 分页户外劳工站巡查
+     *
+     * @param unionInspectionDto
+     * @return 动态结果
+     */
+    @PostMapping("/query")
+    public R query(@RequestBody UnionInspectionDto unionInspectionDto) {
+        unionInspectionDto.setIsApplets(3);
+        return communityUnionService.query(unionInspectionDto);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionIntegralRecordApi.java b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionIntegralRecordApi.java
new file mode 100644
index 0000000..10ddb41
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionIntegralRecordApi.java
@@ -0,0 +1,70 @@
+package com.chuangongzhijia.huacheng_union_applets.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.equipment.UnionExchangeRecordDto;
+import com.panzhihua.common.model.dtos.equipment.UnionIntegralRecordDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.community.CommunityUnionService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Api(tags = {"积分明细"})
+@Slf4j
+@RestController
+@RequestMapping("/UnionIntegralRecord")
+public class UnionIntegralRecordApi
+{
+    @Resource
+    private CommunityUnionService unionStoreService;
+
+    @ApiOperation(value = "积分明细列表", response = UnionIntegralRecordDto.class)
+    @GetMapping("/getList")
+    public R unionIntegralRecordGetList(@RequestParam("pageNum") int pageNum,
+                     @RequestParam("pageSize") int pageSize,
+                     @RequestParam(value = "communityId",required = false) String communityId,
+                     @RequestParam(value = "integralType",required = false) String integralType,
+                     @RequestParam(value = "nameOrNum",required = false) String nameOrNum)
+    {
+        return unionStoreService.unionIntegralRecordGetList(pageNum,pageSize,communityId,integralType,nameOrNum);
+    }
+
+    @ApiOperation(value = "积分明细单个详情", response = UnionIntegralRecordDto.class)
+    @GetMapping("/getData")
+    public R unionIntegralRecordGetData(@RequestParam("id") String id)
+    {
+        return unionStoreService.unionIntegralRecordGetData(id);
+    }
+
+
+//    @ApiOperation(value = "新增积分明细")
+//    @PostMapping("/insert")
+//    public R unionIntegralRecordInsert(@RequestBody UnionIntegralRecordDto item)
+//    {
+//        return unionStoreService.unionIntegralRecordInsert(item);
+//    }
+//
+//    @ApiOperation(value = "修改积分明细")
+//    @PostMapping("/update")
+//    public R unionIntegralRecordUpdate(@RequestBody UnionIntegralRecordDto item)
+//    {
+//        return unionStoreService.unionIntegralRecordUpdate(item);
+//    }
+
+    /**
+     * 删除接口
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "删除积分明细")
+    @DeleteMapping("/delete")
+    public R unionIntegralRecordDelete(@RequestParam("id") String id)
+    {
+        return unionStoreService.unionIntegralRecordDelete(id);
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionIntegralSummarizeApi.java b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionIntegralSummarizeApi.java
new file mode 100644
index 0000000..6b81d61
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionIntegralSummarizeApi.java
@@ -0,0 +1,73 @@
+package com.chuangongzhijia.huacheng_union_applets.api;
+
+import com.panzhihua.common.model.dtos.equipment.UnionIntegralSummarizeDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.community.CommunityUnionService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Api(tags = {"用户积分总表"})
+@Slf4j
+@RestController
+@RequestMapping("/UnionIntegralSummarize")
+public class UnionIntegralSummarizeApi
+{
+    @Resource
+    private CommunityUnionService unionStoreService;
+
+    @ApiOperation(value = "积分明细列表", response = UnionIntegralSummarizeDto.class)
+    @GetMapping("/getList")
+    public R unionIntegralSummarizeGetList(@RequestParam("pageNum") int pageNum,
+                                           @RequestParam("pageSize") int pageSize,
+                                           @RequestParam(value = "communityId",required = false) String communityId)
+    {
+        return unionStoreService.unionIntegralSummarizeGetList(pageNum,pageSize,communityId);
+    }
+
+    @ApiOperation(value = "积分明细单个详情", response = UnionIntegralSummarizeDto.class)
+    @GetMapping("/getData")
+    public R unionIntegralSummarizeGetData(@RequestParam("id") String id)
+    {
+        return unionStoreService.unionIntegralSummarizeGetData(id);
+    }
+
+    @ApiOperation(value = "个人积分总数详情", response = UnionIntegralSummarizeDto.class)
+    @GetMapping("/getUserData")
+    public R unionIntegralSummarizeGetUserData()
+    {
+        return unionStoreService.unionIntegralSummarizeGetUserData();
+    }
+
+
+    @ApiOperation(value = "新增用户积分")
+    @PostMapping("/insert")
+    public R unionIntegralSummarizeInsert(@RequestBody UnionIntegralSummarizeDto item)
+    {
+        return unionStoreService.unionIntegralSummarizeInsert(item);
+    }
+
+    @ApiOperation(value = "修改用户积分")
+    @PostMapping("/update")
+    public R unionIntegralSummarizeUpdate(@RequestBody UnionIntegralSummarizeDto item)
+    {
+        return unionStoreService.unionIntegralSummarizeUpdate(item);
+    }
+
+    /**
+     * 删除接口
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "删除用户积分")
+    @DeleteMapping("/delete")
+    public R unionIntegralSummarizeDelete(@RequestParam("id") String id)
+    {
+        return unionStoreService.unionIntegralSummarizeDelete(id);
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionOutdoorLaborDynamicApi.java b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionOutdoorLaborDynamicApi.java
new file mode 100644
index 0000000..e596eb2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionOutdoorLaborDynamicApi.java
@@ -0,0 +1,55 @@
+package com.chuangongzhijia.huacheng_union_applets.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.equipment.UnionOutdoorLaborDynamicDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngStructAreaDistrictVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.community.CommunityUnionService;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@RestController
+@RequestMapping("/unionOutdoorLaborDynamic")
+public class UnionOutdoorLaborDynamicApi{
+
+    @Resource
+    private CommunityUnionService communityUnionService;
+
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 分页总工会-户外劳工站-动态
+     *
+     * @param unionOutdoorLaborDynamicDto
+     * @return 动态结果
+     */
+    @PostMapping("/page")
+    R query(@RequestBody UnionOutdoorLaborDynamicDto unionOutdoorLaborDynamicDto) {
+        return communityUnionService.unionOutdoorLaborDynamicQuery(unionOutdoorLaborDynamicDto);
+    }
+
+    /**
+     * 查询总工会-户外劳工站-动态
+     *
+     * @param id
+     *            动态 id
+     * @return 查找结果
+     */
+    @GetMapping("/{id}")
+    R unionOutdoorLaborDynamicDetail(@PathVariable("id") Long id) {
+        return communityUnionService.unionOutdoorLaborDynamicDetail(id);
+    }
+
+    @ApiOperation(value = "所在地地址下拉列表(攀枝花)", response = ComMngStructAreaDistrictVO.class)
+    @PostMapping("listarea")
+    public R listArea() {
+        Long cityAdcode = 510400l;
+        return communityService.listAreaDistrict(cityAdcode);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionOutdoorSiteApi.java b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionOutdoorSiteApi.java
new file mode 100644
index 0000000..4777d1d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionOutdoorSiteApi.java
@@ -0,0 +1,48 @@
+package com.chuangongzhijia.huacheng_union_applets.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.equipment.UnionOutdoorSiteDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.community.CommunityUnionService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@Api(tags = {"总工会户外劳工站"})
+@RestController
+@RequestMapping("/unionOutdoorSite")
+public class UnionOutdoorSiteApi{
+
+    @Resource
+    private CommunityUnionService communityUnionService;
+
+
+    /**
+     * 分页总工会户外劳工站
+     *
+     * @param unionOutdoorSiteDto
+     * @return 动态结果
+     */
+    @ApiOperation(value = "分页总工会户外劳工站")
+    @PostMapping("/page")
+    R query(@RequestBody UnionOutdoorSiteDto unionOutdoorSiteDto) {
+        return communityUnionService.unionOutdoorSitequery(unionOutdoorSiteDto);
+    }
+
+    /**
+     * 查询总工会户外劳工站
+     *
+     * @param id
+     *            户外劳工站 id
+     * @return 查找结果
+     */
+    @ApiOperation(value = "查询总工会户外劳工站")
+    @GetMapping("/{id}")
+    R unionOutdoorSiteDetail(@PathVariable("id") Long id) {
+        return communityUnionService.unionOutdoorSiteDetail(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionReportApi.java b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionReportApi.java
new file mode 100644
index 0000000..df75c25
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionReportApi.java
@@ -0,0 +1,49 @@
+package com.chuangongzhijia.huacheng_union_applets.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.equipment.UnionReportDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.community.CommunityUnionService;
+import io.swagger.annotations.Api;
+import lombok.extern.slf4j.Slf4j;
+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.RestController;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@Api(tags = {"户外劳工站"})
+@RestController
+@RequestMapping("/unionReport")
+public class UnionReportApi{
+
+    @Resource
+    private CommunityUnionService communityUnionService;
+
+    /**
+     * 户外劳工站上报表
+     *
+     * @param unionReportDto
+     * @return 新增结果
+     */
+    @PostMapping("/add")
+    public R add(@RequestBody UnionReportDto unionReportDto) {
+        unionReportDto.setIsApplets(3);
+        return  communityUnionService.unionReportAdd(unionReportDto);
+    }
+
+
+    /**
+     * 分页户外劳工站上报表
+     *
+     * @param unionReportDto
+     * @return 动态结果
+     */
+    @PostMapping("/query")
+    public R query(@RequestBody UnionReportDto unionReportDto) {
+        unionReportDto.setIsApplets(3);
+        return communityUnionService.unionReportQuery(unionReportDto);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionShippingAddressApi.java b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionShippingAddressApi.java
new file mode 100644
index 0000000..be246da
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionShippingAddressApi.java
@@ -0,0 +1,74 @@
+package com.chuangongzhijia.huacheng_union_applets.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.equipment.UnionIntegralSummarizeDto;
+import com.panzhihua.common.model.dtos.equipment.UnionShippingAddressDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.community.CommunityUnionService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Api(tags = {"收货地址"})
+@Slf4j
+@RestController
+@RequestMapping("/UnionShippingAddress")
+public class UnionShippingAddressApi
+{
+    @Resource
+    private CommunityUnionService unionStoreService;
+
+    @ApiOperation(value = "收货地址列表", response = UnionShippingAddressDto.class)
+    @GetMapping("/getList")
+    public R unionShippingAddressGetList(@RequestParam("pageNum") int pageNum,
+                                        @RequestParam("pageSize") int pageSize,
+                                        @RequestParam(value = "communityId",required = false) String communityId)
+    {
+        return unionStoreService.unionShippingAddressGetList(pageNum,pageSize,communityId);
+    }
+
+    @ApiOperation(value = "收货地址单个详情", response = UnionShippingAddressDto.class)
+    @GetMapping("/getData")
+    public R unionShippingAddressGetData(@RequestParam("id") String id)
+    {
+        return unionStoreService.unionShippingAddressGetData(id);
+    }
+
+    @ApiOperation(value = "获取默认收货地址", response = UnionShippingAddressDto.class)
+    @GetMapping("/getDefaultData")
+    public R unionShippingAddressGetDefaultData()
+    {
+        return unionStoreService.unionShippingAddressGetDefaultData();
+    }
+
+    @ApiOperation(value = "新增收货地址")
+    @PostMapping("/insert")
+    public R unionShippingAddressInsert(@RequestBody UnionShippingAddressDto item)
+    {
+        return unionStoreService.unionShippingAddressInsert(item);
+    }
+
+    @ApiOperation(value = "修改收货地址")
+    @PostMapping("/update")
+    public R unionShippingAddressUpdate(@RequestBody UnionShippingAddressDto item)
+    {
+        return unionStoreService.unionShippingAddressUpdate(item);
+    }
+
+    /**
+     * 删除接口
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "删除收货地址")
+    @DeleteMapping("/delete")
+    public R unionShippingAddressDelete(@RequestParam("id") String id)
+    {
+        return unionStoreService.unionShippingAddressDelete(id);
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionStoreApi.java b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionStoreApi.java
new file mode 100644
index 0000000..72bc9dd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionStoreApi.java
@@ -0,0 +1,116 @@
+package com.chuangongzhijia.huacheng_union_applets.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.equipment.UnionShippingAddressDto;
+import com.panzhihua.common.model.dtos.equipment.UnionStoreDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.community.ComEquipmentUnionStoreLDD;
+import com.panzhihua.common.utlis.StringUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@Api(tags = {"商城商品相关"})
+@RestController
+@RequestMapping("/UnionStore")
+public class UnionStoreApi{
+
+    @Resource
+    private ComEquipmentUnionStoreLDD comEquipmentUnionStoreLDD;
+
+
+    /**
+     * 总工会户外劳动商品列表
+     *
+     * @return 总工会户外劳动商品列表
+     */
+    @ApiOperation(value = "总工会户外劳动商品列表", response = UnionStoreDto.class)
+    @GetMapping("/getList")
+    public R getList(@RequestParam("pageNum") int pageNum,
+                     @RequestParam("pageSize") int pageSize,
+                     @RequestParam(value = "communityId",required = false) String communityId,
+                     @RequestParam(value = "goodsType",required = false) String goodsType,
+                     @RequestParam(value = "nameOrNum",required = false) String nameOrNum)
+    {
+        return comEquipmentUnionStoreLDD.getList(pageNum,pageSize,communityId,goodsType,nameOrNum);
+    }
+
+    /**
+     * 总工会户外劳动商品列表
+     *
+     * @return 总工会户外劳动商品列表
+     */
+    @ApiOperation(value = "总工会户外劳动商品详情", response = UnionStoreDto.class)
+    @GetMapping("/getData")
+    public R getData(String id)
+    {
+        return comEquipmentUnionStoreLDD.getData(id);
+    }
+
+    /**
+     * 总工会户外劳动商品新增
+     *
+     * @return 总工会户外劳动商品新增
+     */
+    @ApiOperation(value = "总工会户外劳动商品新增")
+    @PostMapping("/insert")
+    public R insert(@RequestBody UnionStoreDto item)
+    {
+        return comEquipmentUnionStoreLDD.insert(item);
+    }
+
+    /**
+     * 总工会户外劳动商品编辑
+     *
+     * @return 总工会户外劳动商品编辑
+     */
+    @ApiOperation(value = "总工会户外劳动商品新增")
+    @PostMapping("/update")
+    public R update(@RequestBody UnionStoreDto item)
+    {
+        return comEquipmentUnionStoreLDD.insert(item);
+    }
+
+
+    /**
+     * 总工会户外劳动商品编辑
+     *
+     * @return 总工会户外劳动商品编辑
+     */
+    @ApiOperation(value = "总工会户外劳动商品上下架接口")
+    @PostMapping("/upOrOut")
+    public R upOrOut(@RequestBody UnionStoreDto item)
+    {
+        if(StringUtils.isEmpty(item.getId()))
+        {
+            return R.fail("商品id不能为空");
+        }
+
+        if(StringUtils.isEmpty(item.getGoodsType()))
+        {
+            return R.fail("商品状态不能为空");
+        }
+
+        return comEquipmentUnionStoreLDD.insert(item);
+    }
+
+
+
+    /**
+     * 删除接口
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "总工会户外劳动商品删除接口")
+    @DeleteMapping("/delete")
+    public R delete(@RequestParam("id") String id)
+    {
+        return comEquipmentUnionStoreLDD.delete(id);
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionUserApi.java b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionUserApi.java
new file mode 100644
index 0000000..dc9c3d9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UnionUserApi.java
@@ -0,0 +1,65 @@
+package com.chuangongzhijia.huacheng_union_applets.api;
+
+import com.panzhihua.common.model.dtos.equipment.UnionUserDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.community.CommunityUnionService;
+import com.panzhihua.common.service.user.UserService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+import io.swagger.annotations.ApiImplicitParam;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@Api(tags = {"用户相关"})
+@RestController
+@RequestMapping("/unionUser")
+public class UnionUserApi {
+
+    @Resource
+    private CommunityUnionService communityUnionService;
+
+
+//    @Resource
+//    private UserService userService;
+    /**
+     * 总工会户外劳登录
+     *
+     *
+     * @return 总工会户外劳共用户
+     */
+    @ApiOperation(value = "总工会户外劳登录(H5)")
+    @GetMapping("/login")
+    public R login(@RequestParam(value = "phone") String phone){
+        return  communityUnionService.unionUserLoginH5(phone);
+    }
+
+    /**
+     * 总工会户外劳工站用户认证
+     *
+     * @param unionUserDto
+     * @return 总工会户外劳共用户
+     */
+
+    @ApiOperation(value = "总工会户外劳工站用户认证")
+    @PostMapping("/authentication")
+    public R authentication(@RequestBody UnionUserDto unionUserDto){
+        unionUserDto.setIsApplets(3);
+        return  communityUnionService.unionUserAuthentication(unionUserDto);
+    }
+
+
+    /**
+     * 用户开门
+     * @param qRCode 二维码字符串
+     * @return 总工会户外劳共用户
+     */
+    @ApiOperation(value = "用户开门")
+    @GetMapping("/openDoor")
+    public R openDoor(@RequestParam(value = "qRCode")  String qRCode){
+        return  communityUnionService.openDoor(qRCode);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UpDataApi.java b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UpDataApi.java
new file mode 100644
index 0000000..8199adf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/api/UpDataApi.java
@@ -0,0 +1,4 @@
+package com.chuangongzhijia.huacheng_union_applets.api;
+
+public class UpDataApi {
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/config/JacksonConfig.java b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/config/JacksonConfig.java
new file mode 100644
index 0000000..cfbbea3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/config/JacksonConfig.java
@@ -0,0 +1,31 @@
+package com.chuangongzhijia.huacheng_union_applets.config;
+
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.module.SimpleModule;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
+
+@Configuration
+public class JacksonConfig {
+
+    @Bean
+    @Primary
+    @ConditionalOnMissingBean(ObjectMapper.class)
+    public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder)
+    {
+        ObjectMapper objectMapper = builder.createXmlMapper(false).build();
+
+        // 全局配置序列化返回 JSON 处理
+        SimpleModule simpleModule = new SimpleModule();
+        //JSON Long ==> String
+        simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
+        objectMapper.registerModule(simpleModule);
+        return objectMapper;
+    }
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/config/ResourcesConfig.java b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/config/ResourcesConfig.java
new file mode 100644
index 0000000..0998570
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/config/ResourcesConfig.java
@@ -0,0 +1,64 @@
+//package com.chuangongzhijia.huacheng_union_applets.config;
+//
+//import com.panzhihua.common.constants.Constants;
+//import org.springframework.context.annotation.Bean;
+//import org.springframework.context.annotation.Configuration;
+//import org.springframework.stereotype.Component;
+//import org.springframework.web.cors.CorsConfiguration;
+//import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
+//import org.springframework.web.filter.CorsFilter;
+//import org.springframework.web.filter.OncePerRequestFilter;
+//import org.springframework.web.servlet.config.annotation.CorsRegistry;
+//import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
+//import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+//
+//import javax.servlet.FilterChain;
+//import javax.servlet.ServletException;
+//import javax.servlet.http.HttpServletRequest;
+//import javax.servlet.http.HttpServletResponse;
+//import java.io.IOException;
+//
+///**
+// * 通用配置
+// *
+// * @author huanghongfa
+// */
+//@Configuration
+//public class ResourcesConfig implements WebMvcConfigurer {
+//
+//
+//    @Override
+//    public void addCorsMappings(CorsRegistry registry) {
+//        //设置允许跨域的路径
+//        registry.addMapping ("/**")
+//                //设置允许跨域请求的域名
+//                .allowedOrigins("*")
+//                //是否允许证书
+//                .allowCredentials (true)
+//                //设置允许的方法
+//                .allowedMethods ("GET","POST","DELETE")
+//                //设置允许的header属性
+//                .allowedHeaders ("*")
+//                //允许跨域时间
+//                .maxAge (3600);
+//    }
+//
+//    /**
+//     * 跨域配置
+//     */
+//    @Bean
+//    public CorsFilter corsFilter() {
+//        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
+//        CorsConfiguration config = new CorsConfiguration();
+//        config.setAllowCredentials(true);
+//        // 设置访问源地址
+//        config.addAllowedOrigin("*");
+//        // 设置访问源请求头
+//        config.addAllowedHeader("*");
+//        // 设置访问源请求方法
+//        config.addAllowedMethod("*");
+//        // 对接口配置跨域设置
+//        source.registerCorsConfiguration("/**", config);
+//        return new CorsFilter(source);
+//    }
+//}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/config/SwaggerConfig.java b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/config/SwaggerConfig.java
new file mode 100644
index 0000000..028cf47
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/java/com/chuangongzhijia/huacheng_union_applets/config/SwaggerConfig.java
@@ -0,0 +1,33 @@
+package com.chuangongzhijia.huacheng_union_applets.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.service.Contact;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: swagger3
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-19 16:08
+ **/
+@Configuration
+@EnableSwagger2
+public class SwaggerConfig {
+    @Bean
+    public Docket createRestApi() {
+        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).enable(true).select()
+//            .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
+            .apis(RequestHandlerSelectors.basePackage("com.chuangongzhijia.huacheng_union_applets")).build();
+    }
+
+    private ApiInfo apiInfo() {
+        return new ApiInfoBuilder().title("川工之家开发文档").description("。").contact(new Contact("huanghongfa", "", ""))
+            .version("1.0").build();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/resources/bootstrap.yml b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..c6c2571
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/resources/bootstrap.yml
@@ -0,0 +1,40 @@
+spring:
+  application:
+    name: huacheng-union-applets
+  cloud:
+    config:
+      discovery:
+        enabled: true
+        service-id: huacheng-config  # 注册中心的服务名
+      profile: ${ENV:dev}  # 指定配置文件的环境
+      uri: http://${CONFIG_URL:localhost}:6193/
+  profiles:
+    active: ${ENV:dev}
+  servlet:
+    multipart:
+      max-file-size: 200MB
+      max-request-size: 200MB
+
+server:
+  max-http-header-size: 10MB
+
+eureka:
+  client:
+    service-url:
+      defaultZone: http://${EUREKA_URL:localhost}:8192/eureka
+
+
+management:
+  endpoints:
+    web:
+      exposure:
+        include: '*'
+
+  endpoint:
+    health:
+      show-details: always
+
+  metrics:
+    tags:
+      application: huacheng-union-applets
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/resources/logback-spring.xml b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..99cb522
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/huacheng_union_applets/src/main/resources/logback-spring.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration debug="false">
+    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
+    <springProfile name="dev">
+        <property name="LOG_HOME" value="F:/log" />
+    </springProfile>
+       <springProfile name="test">
+        <property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    </springProfile>
+<property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    <!-- 控制台输出 -->
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+    </appender>
+    <!-- 按照每天生成日志文件 -->
+    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!--日志文件输出的文件名-->
+            <FileNamePattern>${LOG_HOME}/huachengapplets.log.%d{yyyy-MM-dd}.log</FileNamePattern>
+            <!--日志文件保留天数-->
+            <MaxHistory>30</MaxHistory>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+        <!--日志文件最大的大小-->
+        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <MaxFileSize>10MB</MaxFileSize>
+        </triggeringPolicy>
+    </appender>
+
+    <!--myibatis log configure-->
+    <logger name="com.apache.ibatis" level="TRACE"/>
+    <logger name="java.sql.Connection" level="DEBUG"/>
+    <logger name="java.sql.Statement" level="DEBUG"/>
+    <logger name="java.sql.PreparedStatement" level="DEBUG"/>
+    <logger name="com.panzhihua.applets" level="DEBUG"/>
+
+    <!-- 日志输出级别 -->
+    <root level="DEBUG">
+        <appender-ref ref="STDOUT" />
+    </root>
+    <root level="INFO">
+        <appender-ref ref="STDOUT" />
+        <appender-ref ref="FILE" />
+    </root>
+</configuration>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/pom.xml
new file mode 100644
index 0000000..6fbc298
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/pom.xml
@@ -0,0 +1,252 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>com.panzhihua</groupId>
+    <artifactId>zhihuishequ</artifactId>
+    <version>1.0-SNAPSHOT</version>
+
+    <name>zhihuishequ</name>
+    <description>攀枝花智慧社区</description>
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <java.version>1.8</java.version>
+        <spring-cloud.version>Hoxton.SR9</spring-cloud.version>
+        <spring-boot.version>2.3.4.RELEASE</spring-boot.version>
+        <mybatis-plus.version>3.4.1</mybatis-plus.version>
+        <swagger-annotations.version>2.1.5</swagger-annotations.version>
+        <swagger-bootstrap-ui.version>1.9.6</swagger-bootstrap-ui.version>
+        <swagger-models.version>2.0.0-rc2</swagger-models.version>
+        <swagger-core.version>2.1.5</swagger-core.version>
+        <commons.io.version>2.5</commons.io.version>
+        <poi.version>3.17</poi.version>
+        <commons.fileupload.version>1.3.3</commons.fileupload.version>
+        <velocity.version>1.7</velocity.version>
+        <fastjson.version>1.2.74</fastjson.version>
+        <common-pool.version>2.6.2</common-pool.version>
+        <common.version>1.0-SNAPSHOT</common.version>
+        <druid.version>1.2.3</druid.version>
+        <feign-form.version>1.2.3</feign-form.version>
+        <spring-data-redis.version>2.2.0.M4</spring-data-redis.version>
+        <logback-classic.version>1.3.0-alpha4</logback-classic.version>
+        <jjwt.version>0.9.1</jjwt.version>
+        <logback-core.version>1.1.11</logback-core.version>
+        <logback-classic.version>1.1.11</logback-classic.version>
+        <swagger-annotations.version>2.1.5</swagger-annotations.version>
+        <slf4j-api.version>1.7.25</slf4j-api.version>
+        <feign-httpclient.version>8.17.0</feign-httpclient.version>
+        <druid-spring-boot-starter.version>1.2.3</druid-spring-boot-starter.version>
+        <spring-cloud-starter-netflix-hystrix.version>2.2.6.RELEASE</spring-cloud-starter-netflix-hystrix.version>
+        <spring-boot-starter-data-redis.version>2.4.0</spring-boot-starter-data-redis.version>
+        <springfox-boot-starter.version>3.0.0</springfox-boot-starter.version>
+        <minio.version>6.0.8</minio.version>
+    </properties>
+
+    <!-- 依赖声明 -->
+    <dependencyManagement>
+        <dependencies>
+
+            <!-- SpringCloud 微服务 -->
+            <dependency>
+                <groupId>org.springframework.cloud</groupId>
+                <artifactId>spring-cloud-dependencies</artifactId>
+                <version>${spring-cloud.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+
+            <!-- SpringBoot 依赖配置 -->
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-dependencies</artifactId>
+                <version>${spring-boot.version}</version>
+                <type>pom</type>
+                <scope>import</scope>
+            </dependency>
+
+            <!-- mybatis-plus 依赖配置 -->
+            <dependency>
+                <groupId>com.baomidou</groupId>
+                <artifactId>mybatis-plus-boot-starter</artifactId>
+                <version>${mybatis-plus.version}</version>
+            </dependency>
+
+            <!-- Swagger 依赖配置 -->
+            <dependency>
+                <groupId>com.github.xiaoymin</groupId>
+                <artifactId>swagger-bootstrap-ui</artifactId>
+                <version>1.9.6</version>
+            </dependency>
+            <dependency>
+                <groupId>io.springfox</groupId>
+                <artifactId>springfox-swagger-ui</artifactId>
+                <version>2.9.2</version>
+            </dependency>
+            <dependency>
+                <groupId>io.springfox</groupId>
+                <artifactId>springfox-swagger2</artifactId>
+                <version>2.9.2</version>
+            </dependency>
+
+            <!-- io常用工具类 -->
+            <dependency>
+                <groupId>commons-io</groupId>
+                <artifactId>commons-io</artifactId>
+                <version>${commons.io.version}</version>
+            </dependency>
+
+            <!-- excel工具 -->
+            <dependency>
+                <groupId>org.apache.poi</groupId>
+                <artifactId>poi-ooxml</artifactId>
+                <version>${poi.version}</version>
+            </dependency>
+
+            <!-- 文件上传工具类 -->
+            <dependency>
+                <groupId>commons-fileupload</groupId>
+                <artifactId>commons-fileupload</artifactId>
+                <version>${commons.fileupload.version}</version>
+            </dependency>
+
+            <!-- 代码生成使用模板 -->
+            <dependency>
+                <groupId>org.apache.velocity</groupId>
+                <artifactId>velocity</artifactId>
+                <version>${velocity.version}</version>
+            </dependency>
+
+            <!-- JSON 解析器和生成器 -->
+            <dependency>
+                <groupId>com.alibaba</groupId>
+                <artifactId>fastjson</artifactId>
+                <version>${fastjson.version}</version>
+            </dependency>
+
+            <!-- 公共资源池 -->
+            <dependency>
+                <groupId>org.apache.commons</groupId>
+                <artifactId>commons-pool2</artifactId>
+                <version>${common-pool.version}</version>
+            </dependency>
+            <!--公共模块-->
+            <dependency>
+                <groupId>com.panzhihua</groupId>
+                <artifactId>common</artifactId>
+                <version>${common.version}</version>
+            </dependency>
+            <!-- 数据库连接池 -->
+            <!-- https://mvnrepository.com/artifact/com.alibaba/druid-spring-boot-starter -->
+            <dependency>
+                <groupId>com.alibaba</groupId>
+                <artifactId>druid-spring-boot-starter</artifactId>
+                <version>${druid-spring-boot-starter.version}</version>
+            </dependency>
+            <!--            日志-->
+            <dependency>
+                <groupId>org.slf4j</groupId>
+                <artifactId>slf4j-api</artifactId>
+                <version>${slf4j-api.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>ch.qos.logback</groupId>
+                <artifactId>logback-core</artifactId>
+                <version>${logback-core.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>ch.qos.logback</groupId>
+                <artifactId>logback-classic</artifactId>
+                <version>${logback-classic.version}</version>
+            </dependency>
+            <!--            redis-->
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-starter-data-redis</artifactId>
+                <version>${spring-boot-starter-data-redis.version}</version>
+            </dependency>
+            <!--            jwt-->
+            <!-- https://mvnrepository.com/artifact/io.jsonwebtoken/jjwt -->
+            <dependency>
+                <groupId>io.jsonwebtoken</groupId>
+                <artifactId>jjwt</artifactId>
+                <version>${jjwt.version}</version>
+            </dependency>
+            <!--            断路器-->
+            <!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-netflix-hystrix -->
+            <dependency>
+                <groupId>org.springframework.cloud</groupId>
+                <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
+                <version>${spring-cloud-starter-netflix-hystrix.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>com.netflix.feign</groupId>
+                <artifactId>feign-httpclient</artifactId>
+                <version>${feign-httpclient.version}</version>
+            </dependency>
+            <!--添加监控依赖包-->
+            <dependency>
+                <groupId>io.micrometer</groupId>
+                <artifactId>micrometer-registry-prometheus</artifactId>
+                <version>1.5.1</version>
+            </dependency>
+            <dependency>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-starter-actuator</artifactId>
+                <version>2.3.4.RELEASE</version>
+            </dependency>
+           <!--minio文件存储-->
+            <dependency>
+                <groupId>io.minio</groupId>
+                <artifactId>minio</artifactId>
+                <version>8.0.3</version>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
+
+    <modules>
+        <module>eureka_server</module>
+        <module>config_server</module>
+        <module>common</module>
+        <module>service_partybuilding</module>
+        <module>zuul</module>
+        <module>auth</module>
+        <module>applets_backstage</module>
+        <module>applets</module>
+        <module>timejob</module>
+        <module>community_backstage</module>
+        <module>service_community</module>
+        <module>service_user</module>
+        <module>shop_backstage</module>
+        <!--网格治理-app-->
+        <module>grid_app</module>
+        <!--网格治理-后台-->
+        <module>grid_backstage</module>
+        <!--网格治理-基础服务service-->
+        <module>service_grid</module>
+        <!--网格治理-对接浪潮的市平台综治接口-->
+        <module>service_api</module>
+        <!--物业service-->
+        <module>service_property</module>
+        <module>service_dlz</module>
+        <module>service_bracelet</module>
+        <module>service_jinhui_community</module>
+    </modules>
+    <packaging>pom</packaging>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <configuration>
+                    <source>${java.version}</source>
+                    <target>${java.version}</target>
+                    <encoding>${project.build.sourceEncoding}</encoding>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_api/.gitignore b/springcloud_k8s_panzhihuazhihuishequ/service_api/.gitignore
new file mode 100644
index 0000000..549e00a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_api/.gitignore
@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_api/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/service_api/pom.xml
new file mode 100644
index 0000000..42cc4cd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_api/pom.xml
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.panzhihua</groupId>
+        <artifactId>zhihuishequ</artifactId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <groupId>com.panzhihua</groupId>
+    <artifactId>service_api</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>service_api</name>
+    <description>对接第三方接口项目</description>
+
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-config</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>com.panzhihua</groupId>
+            <artifactId>common</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.netflix.hystrix</groupId>
+            <artifactId>hystrix-javanica</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.github.xiaoymin</groupId>
+            <artifactId>swagger-bootstrap-ui</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>cn.hutool</groupId>
+            <artifactId>hutool-http</artifactId>
+            <version>5.6.7</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>2.5.0</version>
+                <configuration>
+                    <mainClass>com.panzhihua.serviceapi.ServiceApiApplication</mainClass>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>docker-maven-plugin</artifactId>
+                <version>1.2.0</version>
+                <configuration>
+                    <imageName>registry.cn-chengdu.aliyuncs.com/panzhihua/service_api:v1</imageName>
+                    <serverId></serverId>
+                    <baseImage>java</baseImage>
+                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
+                    <resources>
+                        <resource>
+                            <targetPath>/</targetPath>
+                            <directory>${project.build.directory}</directory>
+                            <include>${project.build.finalName}.jar</include>
+                        </resource>
+                    </resources>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <repositories>
+        <repository>
+            <id>spring-snapshots</id>
+            <name>Spring Snapshots</name>
+            <url>https://repo.spring.io/snapshot</url>
+            <snapshots>
+                <enabled>true</enabled>
+            </snapshots>
+        </repository>
+        <repository>
+            <id>spring-milestones</id>
+            <name>Spring Milestones</name>
+            <url>https://repo.spring.io/milestone</url>
+        </repository>
+    </repositories>
+
+</project>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/ServiceApiApplication.java b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/ServiceApiApplication.java
new file mode 100644
index 0000000..41316ac
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/ServiceApiApplication.java
@@ -0,0 +1,29 @@
+package com.panzhihua.serviceapi;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.cloud.client.SpringCloudApplication;
+import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.ComponentScan;
+
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+/**
+ * program 攀枝花智慧社区项目-对接第三方接口 description 对接浪潮市平台事件管理API
+ *
+ * @author manailin Date 2021-06-18 15:30
+ **/
+@EnableSwagger2
+@SpringCloudApplication
+@EnableCircuitBreaker
+@EnableEurekaClient
+@EnableFeignClients(basePackages = {"com.panzhihua.common.service"})
+@ComponentScan({"com.panzhihua.serviceapi", "com.panzhihua.common"})
+public class ServiceApiApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(ServiceApiApplication.class, args);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/aop/OperLogAspect.java b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/aop/OperLogAspect.java
new file mode 100644
index 0000000..d7aed55
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/aop/OperLogAspect.java
@@ -0,0 +1,189 @@
+package com.panzhihua.serviceapi.aop;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.lang.reflect.Method;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.annotation.AfterReturning;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Pointcut;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.springframework.stereotype.Component;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.context.request.RequestAttributes;
+import org.springframework.web.context.request.RequestContextHolder;
+
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.constants.TokenConstant;
+import com.panzhihua.common.interfaces.OperLog;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.user.SysOperLogVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.AES;
+import com.panzhihua.common.utlis.IPUtil;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 切面处理类,操作日志异常日志记录处理
+ *
+ * @author wu
+ * @date 2019/03/21
+ */
+@Slf4j
+@Aspect
+@Component
+public class OperLogAspect {
+
+    @Resource
+    private UserService userService;
+
+    /**
+     * 设置操作日志切入点 记录操作日志 在注解的位置切入代码
+     */
+    @Pointcut("@annotation(com.panzhihua.common.interfaces.OperLog)")
+    public void operLogPoinCut() {}
+
+    /**
+     * 正常返回通知,拦截用户操作日志,连接点正常执行完成后执行, 如果连接点抛出异常,则不会执行
+     *
+     * @param joinPoint
+     *            切入点
+     * @param keys
+     *            返回结果
+     */
+    @AfterReturning(value = "operLogPoinCut()", returning = "keys")
+    public void saveOperLog(JoinPoint joinPoint, Object keys) {
+        log.info("进入切面");
+        // 获取RequestAttributes
+        RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
+        // 从获取RequestAttributes中获取HttpServletRequest的信息
+        HttpServletRequest request =
+            (HttpServletRequest)requestAttributes.resolveReference(RequestAttributes.REFERENCE_REQUEST);
+        // 登录对象信息
+        String userInfo = request.getHeader(TokenConstant.TOKEN_USERINFO);
+        boolean empty = ObjectUtils.isEmpty(userInfo);
+        if (empty) {
+            log.error("操作日志获取登录用户信息失败【{}】", joinPoint);
+            return;
+        }
+        byte[] bytes = AES.parseHexStr2Byte(userInfo);
+        byte[] decrypt = AES.decrypt(bytes, Constants.AES_KEY);
+        userInfo = new String(decrypt);
+        LoginUserInfoVO loginUserInfoVO = JSONObject.parseObject(userInfo, LoginUserInfoVO.class);
+
+        SysOperLogVO operlog = new SysOperLogVO();
+        try {
+
+            // 从切面织入点处通过反射机制获取织入点处的方法
+            MethodSignature signature = (MethodSignature)joinPoint.getSignature();
+            // 获取切入点所在的方法
+            Method method = signature.getMethod();
+            // 获取操作
+            OperLog opLog = method.getAnnotation(OperLog.class);
+            if (opLog != null) {
+                String operModul = opLog.operModul();
+                int operType = opLog.operType();
+                operlog.setTitle(operModul);
+                // 操作模块
+                operlog.setBusinessType(operType);
+                // 操作类型
+            }
+            // 获取请求的类名
+            String className = joinPoint.getTarget().getClass().getName();
+            // 获取请求的方法名
+            String methodName = method.getName();
+            methodName = className + "." + methodName;
+
+            operlog.setMethod(methodName);
+            // 请求方法
+
+            if (joinPoint.getArgs().length > 0) {
+                for (Object o : joinPoint.getArgs()) {
+                    if (o instanceof HttpServletRequest || o instanceof HttpServletResponse) {
+                        continue;
+                    }
+                    operlog.setOperParam(JSONObject.toJSONString(o));
+                    // 请求参数
+                }
+            }
+
+            operlog.setJsonResult(JSONObject.toJSONString(keys));
+            // 返回结果
+            operlog.setAccount(loginUserInfoVO.getAccount());
+            operlog.setOperName(loginUserInfoVO.getName());
+            // 请求用户名称
+            operlog.setOperIp(IPUtil.getIpAddress(request));
+            // 请求IP
+            operlog.setOperUrl(request.getRequestURI());
+            // 请求URI
+            operlog.setRequestMethod(request.getMethod());
+            operlog.setOperLocation(IPUtil.getIpBelongAddress(request));
+            operlog.setOperTime(new Date());
+            // 创建时间
+            operlog.setAccount(loginUserInfoVO.getAccount());
+            Long communityId = loginUserInfoVO.getCommunityId();
+            operlog.setCommunityId(null == communityId ? 0 : communityId);
+            userService.addOperLog(operlog);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 转换request 请求参数
+     *
+     * @param paramMap
+     *            request获取的参数数组
+     */
+    public Map<String, String> converMap(Map<String, String[]> paramMap) {
+        Map<String, String> rtnMap = new HashMap<>(6);
+        for (String key : paramMap.keySet()) {
+            rtnMap.put(key, paramMap.get(key)[0]);
+        }
+        return rtnMap;
+    }
+
+    private String getPostData(HttpServletRequest request) {
+        StringBuffer data = new StringBuffer();
+        String line = null;
+        BufferedReader reader = null;
+        try {
+            reader = request.getReader();
+            while (null != (line = reader.readLine())) {
+                data.append(line);
+            }
+        } catch (IOException e) {
+        } finally {
+        }
+        return data.toString();
+    }
+
+    /**
+     * 转换异常信息为字符串
+     *
+     * @param exceptionName
+     *            异常名称
+     * @param exceptionMessage
+     *            异常信息
+     * @param elements
+     *            堆栈信息
+     */
+    public String stackTraceToString(String exceptionName, String exceptionMessage, StackTraceElement[] elements) {
+        StringBuffer strbuff = new StringBuffer();
+        for (StackTraceElement stet : elements) {
+            strbuff.append(stet + "\n");
+        }
+        String message = exceptionName + ":" + exceptionMessage + "\n\t" + strbuff.toString();
+        return message;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/api/LcEventApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/api/LcEventApi.java
new file mode 100644
index 0000000..d92a40b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/api/LcEventApi.java
@@ -0,0 +1,237 @@
+package com.panzhihua.serviceapi.api;
+
+import java.util.Collections;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.api.EventFile;
+import com.panzhihua.common.model.dtos.api.EventInfo;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.serviceapi.biz.LcApiService;
+import com.panzhihua.serviceapi.model.dto.LcKeyPersonVisitRecordQueryDTO;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * program 攀枝花智慧社区项目 description 浪潮事件管理API
+ *
+ * @author manailin Date 2021-01-22 15:30
+ **/
+@Slf4j
+@Api(tags = {"浪潮事件管理API"})
+@RestController
+@RequestMapping("/")
+public class LcEventApi extends BaseController {
+
+    @Resource
+    private LcApiService lcApiService;
+
+    /**
+     * description 向浪潮服务器提交网格事件登记
+     *
+     * @param eventInfo
+     *            事件信息对象
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @ApiOperation(value = "向浪潮服务器提交网格事件登记")
+    @PostMapping("lc/event/upload")
+    public void automationUpload(@RequestBody EventInfo eventInfo) {
+        try {
+            lcApiService.submitEventRegister(eventInfo);
+        } catch (Exception e) {
+            log.error("向浪潮服务器提交网格事件登记出现错误:{}", e.getMessage());
+        }
+    }
+
+    /**
+     * description 提交事件登记关联的文件或者图片信息
+     *
+     * @param eventFile
+     *            文件对象
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @ApiOperation(value = "提交事件登记关联的文件或者图片信息")
+    @PostMapping("lc/event/upload/file")
+    public R automationUploadFile(@RequestBody EventFile eventFile) {
+        return lcApiService.submitEventOrVisitRecordRelationFile(eventFile);
+    }
+
+    /**
+     * description 提交事件登记关联的文件或者图片信息
+     *
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @ApiOperation(value = "提交事件登记关联的文件或者图片信息")
+    @PostMapping("lc/event/upload/event_and_file")
+    public void automationUploadEventAndFile() {
+        try {
+            lcApiService.automationUploadEventAndFile();
+        } catch (Exception e) {
+            log.error("提交事件登记关联的文件或者图片信息出现错误:{}", e.getMessage());
+        }
+    }
+
+    /**
+     * description 获取指定事件信息
+     *
+     * @param eventId
+     *            事件ID
+     * @return String 事件信息
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @ApiOperation(value = "获取指定事件信息")
+    @GetMapping("lc/event/getEventInfoById")
+    public String getEventInfoById(String eventId) {
+        return lcApiService.getEventInfoById(eventId);
+    }
+
+    /**
+     * description 获取所有或者根据姓名和工号查询,分页
+     *
+     * @param areaId
+     *            西区ID
+     * @return String 事件信息
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @ApiOperation(value = "获取所有或者根据姓名和工号查询,分页")
+    @GetMapping("lc/event/getGridMemberListByAreaIdOrName")
+    public R getGridMemberListByAreaIdOrName(String areaId, String param, Long pageNum, Long pageSize) {
+        try {
+            return R.ok(lcApiService.getGridMemberListByAreaIdOrName(areaId, param, pageNum, pageSize));
+        } catch (Exception e) {
+            log.error("获取指定区域网格列表出现错误:{}", e.getMessage());
+        }
+        return R.ok(Collections.emptyList());
+    }
+
+    /**
+     * description 获取指定区域网格列表,树形结构。不包括具体的网格数据。
+     *
+     * @param areaId
+     *            区域ID
+     * @return String 事件信息
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @ApiOperation(value = "获取指定区域网格树形列表,不包括具体的网格数据")
+    @GetMapping("lc/grid/tree")
+    public R getGridTreeByAreaId(String areaId) {
+        try {
+            return R.ok(lcApiService.getGridTreeByAreaId(areaId));
+        } catch (Exception e) {
+            log.error("获取指定区域网格列表出现错误:{}", e.getMessage());
+        }
+        return R.ok(Collections.emptyList());
+    }
+
+    /**
+     * description 获取指定区域网格数据列表
+     *
+     * @param areaId
+     *            区域ID
+     * @return String 事件信息
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @ApiOperation(value = "获取指定区域网格列表")
+    @GetMapping("lc/grid/list")
+    public R getGridDataListByAreaId(String areaId) {
+        try {
+            return R.ok(lcApiService.getGridDataListByAreaId(areaId));
+        } catch (Exception e) {
+            log.error("获取指定区域网格列表出现错误:{}", e.getMessage());
+        }
+        return R.ok(Collections.emptyList());
+    }
+
+    /**
+     * description 流动人口 走访详情
+     *
+     * @param recordId
+     *            流动人口走访任务ID
+     * @return String 事件信息
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @ApiOperation(value = "流动人口 走访详情")
+    @GetMapping("lc/event/getFlowPersonVisitRecordDetailById")
+    public String getFlowPersonVisitRecordDetailById(String recordId) {
+        return lcApiService.getFlowPersonVisitRecordDetailById(recordId);
+    }
+
+    /**
+     * description 流动人口 走访记录列表
+     *
+     * @param lcKeyPersonVisitRecordQueryDTO
+     *            入参参数
+     * @return String 事件信息
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @ApiOperation(value = " 流动人口 走访记录列表,分页")
+    @GetMapping("lc/event/getFlowPersonVisitRecordPage")
+    public String
+        getFlowPersonVisitRecordPage(@RequestBody LcKeyPersonVisitRecordQueryDTO lcKeyPersonVisitRecordQueryDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        return lcApiService.getFlowPersonVisitRecordPage(lcKeyPersonVisitRecordQueryDTO, loginUserInfo.getUserId());
+    }
+
+    /**
+     * description 重点人口 走访详情
+     *
+     * @param recordId
+     *            流动人口走访任务ID
+     * @return String 事件信息
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @ApiOperation(value = "重点人口 走访详情")
+    @GetMapping("lc/event/getKeyPersonVisitRecordDetailById")
+    public String getKeyPersonVisitRecordDetailById(String recordId) {
+        return lcApiService.getKeyPersonVisitRecordDetailById(recordId);
+    }
+
+    /**
+     * description 重点人口 走访记录列表
+     *
+     * @param lcKeyPersonVisitRecordQueryDTO
+     *            入参参数
+     * @return String 事件信息
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @ApiOperation(value = " 重点人口 走访记录列表")
+    @GetMapping("lc/event/getKeyPersonVisitRecordPage")
+    public String
+        getKeyPersonVisitRecordPage(@RequestBody LcKeyPersonVisitRecordQueryDTO lcKeyPersonVisitRecordQueryDTO) {
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+        return lcApiService.getKeyPersonVisitRecordPage(lcKeyPersonVisitRecordQueryDTO, loginUserInfo.getUserId());
+    }
+
+    /**
+     * description 自动上传走访记录
+     *
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @ApiOperation(value = "自动上传重点人员和流动人员走访记录")
+    @GetMapping("lc/auto/upload/visit_record")
+    public void automationUploadVisitRecord() {
+        try {
+            lcApiService.automationUploadVisitRecord();
+        } catch (Exception e) {
+            log.error("自动上传重点人员走访记录:{}", e.getMessage());
+        }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/api/TokenApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/api/TokenApi.java
new file mode 100644
index 0000000..a61c95f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/api/TokenApi.java
@@ -0,0 +1,50 @@
+package com.panzhihua.serviceapi.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.serviceapi.biz.LcApiService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * program 攀枝花智慧社区项目 description token管理API
+ *
+ * @author manailin Date 2021-01-22 15:30
+ **/
+@Slf4j
+@Api(tags = {"token管理API"})
+@RestController
+@RequestMapping("/")
+public class TokenApi extends BaseController {
+
+    @Resource
+    private LcApiService lcApiService;
+
+    /**
+     * description 生成或更新redis里面的对接浪潮所需的token信息
+     *
+     * @param name
+     *            账号
+     * @param password
+     *            密码
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @ApiOperation(value = "生成或更新redis里面的对接浪潮所需的token信息")
+    @GetMapping("get/token")
+    public void getToken(String name, String password) {
+        try {
+            lcApiService.saveTokenFromRemoteRequest(name, password);
+        } catch (Exception e) {
+            log.error("对接浪潮接口——更新或生成token出现错误:{}", e.getMessage());
+        }
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/biz/LcApiService.java b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/biz/LcApiService.java
new file mode 100644
index 0000000..4121b44
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/biz/LcApiService.java
@@ -0,0 +1,240 @@
+package com.panzhihua.serviceapi.biz;
+
+import java.util.List;
+
+import com.panzhihua.common.api.LcReturnObject;
+import com.panzhihua.common.model.dtos.api.EventFile;
+import com.panzhihua.common.model.dtos.api.EventInfo;
+import com.panzhihua.common.model.dtos.grid.LcEventVisitingTasksListDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.serviceapi.model.dto.*;
+
+/**
+ * program 攀枝花智慧社区项目 description 浪潮综治市平台网格管理API
+ *
+ * @author manailin Date 2021-01-22 15:30
+ **/
+public interface LcApiService {
+
+    /**
+     * description 获取token,并将token存入到redis,设置失效时间是12小时 超过12个小时,重新获取token存入到redis数据库
+     *
+     * @param name
+     *            账号
+     * @param password
+     *            密码
+     * @return String token
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    String saveTokenFromRemoteRequest(String name, String password);
+
+    /**
+     * description 获取全部的事件类型信息
+     *
+     * @return String token
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    String getAllEventTypeList();
+
+    /**
+     * description 提交事件登记
+     *
+     * @param eventInfo
+     *            事件信息
+     * @return String 上传成功或失败信息
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    String submitEventRegister(EventInfo eventInfo);
+
+    /**
+     * description 提交事件登记关联的文件或者图片信息
+     *
+     * @param eventFile
+     *            事件信息
+     * @return String 上传成功或失败信息
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    R submitEventOrVisitRecordRelationFile(EventFile eventFile);
+
+    /**
+     * description 获取指定事件信息
+     *
+     * @param eventId
+     *            事件ID
+     * @return String 事件信息
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    String getEventInfoById(String eventId);
+
+    /**
+     * description 获取指定区域网格列表
+     *
+     * @param areaId
+     *            区域ID
+     * @return String 事件信息
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    List<LcGridData> getGridTreeByAreaId(String areaId);
+
+    /**
+     * description 获取指定区域网格列表,直接返回网格列表
+     *
+     * @param areaId
+     *            区域ID
+     * @return String 事件信息
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    List<LcGridData> getGridDataListByAreaId(String areaId);
+
+    /**
+     * description 获取所有或者根据姓名和工号查询,分页
+     *
+     * @param areaId
+     *            区域ID
+     * @param param
+     *            姓名或者工号
+     * @return String 网格员列表
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    List<GridMemberPageListDTO> getGridMemberListByAreaIdOrName(String areaId, String param, Long pageNum,
+        Long pageSize);
+
+    /**
+     * description 提交事件登记关联的文件或者图片信息
+     *
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    void automationUploadEventAndFile();
+
+    /**
+     * description 流动人口 走访详情
+     *
+     * @param recordId
+     *            流动人口走访任务ID
+     * @return String 事件信息
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    String getFlowPersonVisitRecordDetailById(String recordId);
+
+    /**
+     * description 流动人口 走访记录列表
+     *
+     * @param personVisitRecordQueryDTO
+     *            入参参数
+     * @param loginUserId
+     *            当前登陆用户ID
+     * @return String 事件信息
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    String getFlowPersonVisitRecordPage(LcKeyPersonVisitRecordQueryDTO personVisitRecordQueryDTO, Long loginUserId);
+
+    /**
+     * description 上传流动人口走访记录
+     *
+     * @param lcFlowPersonVisitRecordDTO
+     *            入参参数
+     * @return String 事件信息
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    String uploadFlowPersonVisitRecord(LcFlowPersonVisitRecordDTO lcFlowPersonVisitRecordDTO);
+
+    /**
+     * description 请求上传流动人口走访记录导浪潮市平台服务器
+     *
+     * @param lcEventVisitingTasksListDTO
+     *            走访事件对象
+     * @param lcGrid
+     *            浪潮对应的网格ID
+     * @param lcGridUserId
+     *            浪潮网格员对应的用户ID
+     * @param populationDetail
+     *            实有人口基础信息
+     * @param gridName
+     *            网格名称
+     * @param data
+     *            精度维度数组
+     * @return String 事件信息
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    LcReturnObject requestLcFlowPersonVisitRecord(LcEventVisitingTasksListDTO lcEventVisitingTasksListDTO,
+        String lcGrid, String lcGridUserId, Object populationDetail, String gridName, String[] data);
+
+    /**
+     * description 请求上传重点人口走访记录导浪潮市平台服务器
+     *
+     * @param lcEventVisitingTasksListDTO
+     *            走访事件对象
+     * @param lcGrid
+     *            浪潮对应的网格ID
+     * @param lcGridUserId
+     *            浪潮网格员对应的用户ID
+     * @param populationDetail
+     *            实有人口基础信息
+     * @param gridName
+     *            网格名称
+     * @param data
+     *            精度维度数组
+     * @return String 事件信息
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    LcReturnObject requestLcKeyPersonVisitRecord(LcEventVisitingTasksListDTO lcEventVisitingTasksListDTO, String lcGrid,
+        String lcGridUserId, Object populationDetail, String gridName, String[] data);
+
+    /**
+     * description 上传重点人口走访记录
+     *
+     * @param lcKeyPersonVisitRecordDTO
+     *            入参参数
+     * @return String 事件信息
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    String uploadKeyPersonVisitRecord(LcKeyPersonVisitRecordDTO lcKeyPersonVisitRecordDTO);
+
+    /**
+     * description 重点人口 走访详情
+     *
+     * @param recordId
+     *            流动人口走访任务ID
+     * @return String 事件信息
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    String getKeyPersonVisitRecordDetailById(String recordId);
+
+    /**
+     * description 重点人口 走访记录列表
+     *
+     * @param personVisitRecordQueryDTO
+     *            入参参数
+     * @param loginUserId
+     *            当前登陆用户ID
+     * @return String 事件信息
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    String getKeyPersonVisitRecordPage(LcKeyPersonVisitRecordQueryDTO personVisitRecordQueryDTO, Long loginUserId);
+
+    /**
+     * description 自动上传重点人员走访记录
+     *
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    void automationUploadVisitRecord();
+
+}
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
new file mode 100644
index 0000000..26ac215
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/biz/impl/LcApiServiceImpl.java
@@ -0,0 +1,496 @@
+package com.panzhihua.serviceapi.biz.impl;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+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;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.panzhihua.common.api.*;
+import com.panzhihua.common.constants.TokenConstant;
+import com.panzhihua.common.enums.LocalEventToLangChaoEventTypeEnum;
+import com.panzhihua.common.model.dtos.api.EventFile;
+import com.panzhihua.common.model.dtos.api.EventInfo;
+import com.panzhihua.common.model.dtos.grid.LcEventVisitingTasksListDTO;
+import com.panzhihua.common.model.vos.BcDictionaryItemVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngPopulationVO;
+import com.panzhihua.common.model.vos.grid.EventDetailsVO;
+import com.panzhihua.common.model.vos.grid.EventGridDataDetailsVO;
+import com.panzhihua.common.model.vos.grid.EventResourceVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.grid.GridService;
+import com.panzhihua.common.utlis.CopyUtil;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.serviceapi.biz.LcApiService;
+import com.panzhihua.serviceapi.model.dto.*;
+
+import cn.hutool.http.HttpRequest;
+import cn.hutool.http.HttpResponse;
+import cn.hutool.http.HttpUtil;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * program 攀枝花智慧社区项目 description 第三方浪潮市平台对接接口管理API
+ *
+ * @author manailin Date 2021-01-22 15:30
+ **/
+@Slf4j
+@Service
+public class LcApiServiceImpl implements LcApiService {
+
+    @Value("${langchao.url}")
+    private String host;
+
+    @Resource
+    private GridService gridService;
+
+    @Autowired
+    private StringRedisTemplate redisTemplate;
+
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 工具方法 inputStream 转 File
+     */
+    private static File inputStreamToFile(InputStream ins, String name) throws Exception {
+        File file = new File(System.getProperty("java.io.tmpdir") + File.separator + name);
+        log.info(System.getProperty("java.io.tmpdir") + File.separator + name);
+        if (file.exists()) {
+            return file;
+        }
+        OutputStream os = new FileOutputStream(file);
+        int bytesRead;
+        int len = 8192;
+        byte[] buffer = new byte[len];
+        while ((bytesRead = ins.read(buffer, 0, len)) != -1) {
+            os.write(buffer, 0, bytesRead);
+        }
+        os.close();
+        ins.close();
+        return file;
+    }
+
+    /**
+     * 从redis获取token
+     *
+     * @return String 浪潮对接的token
+     */
+    private String getAuthToken() {
+        ValueOperations<String, String> valueOperations = redisTemplate.opsForValue();
+        if (valueOperations.get(LcApiConstants.LANG_CHAO_TOKEN) == null) {
+            saveTokenFromRemoteRequest(LcApiConstants.LC_UPLOAD_NAME, LcApiConstants.LC_UPLOAD_PASSWORD);
+        }
+        return valueOperations.get(LcApiConstants.LANG_CHAO_TOKEN);
+    }
+
+    @Override
+    public String saveTokenFromRemoteRequest(String name, String password) {
+        Boolean authToken = redisTemplate.hasKey(LcApiConstants.LANG_CHAO_TOKEN);
+        if (authToken != null) {
+            // 如果redis存在token,直接返回redis存储的token
+            ValueOperations<String, String> valueOperations = redisTemplate.opsForValue();
+            return valueOperations.get(LcApiConstants.LANG_CHAO_TOKEN);
+        } 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();
+            valueOperations.set(LcApiConstants.LANG_CHAO_TOKEN, result.body(), TokenConstant.EXPIRETIME,
+                TimeUnit.MINUTES);
+            return result.toString();
+        }
+    }
+
+    @Override
+    public String getAllEventTypeList() {
+        HttpRequest request = HttpUtil.createPost(host + LcApiConstants.GRID_EVENT_CATEGORY_URL);
+        request.auth(getAuthToken());
+        HttpResponse result = request.execute();
+        return result.body();
+    }
+
+    @Override
+    public String submitEventRegister(EventInfo eventInfo) {
+        HttpRequest request = HttpUtil.createPost(host + LcApiConstants.GRID_REGIST_EVENT_URL);
+        request.auth(getAuthToken());
+        ObjectMapper mapper = new ObjectMapper();
+        try {
+            // 对象转map
+            Map m = mapper.readValue(mapper.writeValueAsString(eventInfo), Map.class);
+            request.form(m);
+        } catch (JsonProcessingException e) {
+            log.info("方法submitEventRegister发生错误:{}", e.getMessage());
+        }
+        HttpResponse result = request.execute();
+        log.info("submitEventRegister上传浪潮事件信息:{}", result.body());
+        return result.body();
+    }
+
+    @Override
+    public R submitEventOrVisitRecordRelationFile(EventFile eventFile) {
+        HttpRequest request = HttpUtil.createPost(host + LcApiConstants.GRID_EVENT_FILE_UPLOAD_URL);
+        request.auth(getAuthToken());
+        try {
+            HttpURLConnection httpUrl = (HttpURLConnection)new URL(eventFile.getFiles()).openConnection();
+            httpUrl.connect();
+            File file = inputStreamToFile(httpUrl.getInputStream(), eventFile.getFileName());
+            request.form("files", file);
+            httpUrl.disconnect();
+            request.form("dataId", eventFile.getDataId());
+            request.form("type", eventFile.getType());
+            request.form("module", eventFile.getModule());
+            HttpResponse result = request.execute();
+            file.delete();
+            return R.ok(result.body());
+        } catch (Exception e) {
+            log.info("方法submitEventOrVisitRecordRelationFile发生错误:{}", e.getMessage());
+        }
+        return R.fail();
+    }
+
+    @Override
+    public String getEventInfoById(String eventId) {
+        HttpRequest request = HttpUtil.createPost(host + LcApiConstants.GRID_APP_EVENT_INFO_DETAIL_URL);
+        request.auth(getAuthToken());
+        request.form("eventId", eventId);
+        HttpResponse result = request.execute();
+        return result.body();
+    }
+
+    @Override
+    public List<LcGridData> getGridTreeByAreaId(String areaId) {
+        HttpRequest request = HttpUtil.createPost(host + LcApiConstants.GRID_GET_EVENT_INFO_AREA_ID_URL);
+        request.auth(getAuthToken());
+        request.form("areaId", areaId);
+        request.form("level", 4);
+        HttpResponse result = request.execute();
+        return JSONArray.parseArray(result.body(), LcGridData.class);
+    }
+
+    @Override
+    public List<LcGridData> getGridDataListByAreaId(String areaId) {
+        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();
+        return JSONArray.parseArray(result.body(), LcGridData.class);
+    }
+
+    @Override
+    public List<GridMemberPageListDTO> getGridMemberListByAreaIdOrName(String areaId, String param, Long pageNum,
+        Long pageSize) {
+        HttpRequest request = HttpUtil.createGet(host + LcApiConstants.GRID_GET_GETALL_SEARCH_PAGE_URL);
+        request.auth(getAuthToken());
+        request.form("areaId", areaId);
+        request.form("limit", pageSize);
+        request.form("page", pageNum);
+        if (StringUtils.isNotEmpty(param)) {
+            request.form("param", param);
+        }
+        HttpResponse result = request.execute();
+        LcReturnObject returenData = JSONObject.parseObject(result.body(), LcReturnObject.class);
+        return JSONArray.parseArray(returenData.getData(), GridMemberPageListDTO.class);
+    }
+
+    @Override
+    public void automationUploadEventAndFile() {
+        List<EventDetailsVO> unUploadEventList = gridService.getUnUploadEvent();
+        unUploadEventList.forEach(eventInfoVo -> {
+            log.info("定时向浪潮服务器提交网格事件登记开始");
+            EventInfo eventInfo = new EventInfo();
+            String lcGrid = gridService.getLcGridIdByLocal(eventInfoVo.getGridId());
+            String lcGridUserId = gridService.getLcUserIdByLocalUserId(eventInfoVo.getGridMemberId().toString());
+            eventInfo.setGridId(lcGrid);
+            R grid = gridService.eventGridDataDetails(eventInfoVo.getGridId());
+            EventGridDataDetailsVO gridData = (EventGridDataDetailsVO)grid.getData();
+            eventInfo.setGridName(gridData.getGridName());
+            eventInfo.setCaseTypeCode(LocalEventToLangChaoEventTypeEnum.getCodeByName(eventInfoVo.getEventType()));
+            String caseTypeName = LocalEventToLangChaoEventTypeEnum.getEventNameByCode(eventInfoVo.getEventType());
+            eventInfo.setCaseTypeName(caseTypeName);
+            if (eventInfoVo.getEventCategory() != 1L) {
+                eventInfo.setHappenTime(String.valueOf(eventInfoVo.getPropagandaTime().getTime()));
+            } else {
+                eventInfo.setHappenTime(String.valueOf(eventInfoVo.getHappenTime().getTime()));
+            }
+            eventInfo.setHappenAddress(eventInfoVo.getHappenAddress());
+            String[] data = eventInfoVo.getHappentLatLng().split(",");
+            eventInfo.setLongitude(data[0]);
+            eventInfo.setLatitude(data[1]);
+            eventInfo.setCaseDescription(eventInfoVo.getEventDes());
+            eventInfo.setCaseRecordTime(String.valueOf(eventInfoVo.getCreateAt().getTime()));
+            eventInfo.setHandleType("REPORT");
+            eventInfo.setHandleDescription(eventInfoVo.getProcessDesc());
+            eventInfo.setDataId(eventInfoVo.getId().toString());
+            // 获取系统网格员映射的浪潮网格员对于的用户ID
+            eventInfo.setUserId(lcGridUserId);
+            eventInfo.setHandleTime(DateUtils.getCurrentDateTimeStamp().toString());
+            eventInfo.setCaseName(gridData.getGridName().concat(caseTypeName));
+            log.info("事件请求数据:{}", JSONObject.toJSONString(eventInfo));
+            String remoteData = submitEventRegister(eventInfo);
+            LcReturnObject lcReturnObject = JSONObject.parseObject(remoteData, LcReturnObject.class);
+            log.info("提交浪潮服务器,接口返回结果为:{}", remoteData);
+            if (lcReturnObject.getSuccess()) {
+                log.info("定时向浪潮服务器提交网格事件登记结束");
+                log.info("开始上传附件信息");
+                List<EventResourceVO> picsList = eventInfoVo.getPics();
+                uploadLcApiEventFile(eventInfoVo, picsList, "png");
+                List<EventResourceVO> audiosList = eventInfoVo.getAudios();
+                uploadLcApiEventFile(eventInfoVo, audiosList, "mp3");
+                List<EventResourceVO> videoList = eventInfoVo.getVideos();
+                uploadLcApiEventFile(eventInfoVo, videoList, "mp4");
+                log.info("结束上传附件信息");
+                gridService.updateLcUploadFlag(eventInfoVo.getId());
+            }
+        });
+    }
+
+    @Override
+    public String getFlowPersonVisitRecordDetailById(String recordId) {
+        HttpRequest request = HttpUtil.createPost(host + LcApiConstants.VISIT_RECORD_FLOW_PERSON_DETAIL_URL);
+        request.auth(getAuthToken());
+        request.form("id", recordId);
+        HttpResponse result = request.execute();
+        return result.body();
+    }
+
+    @Override
+    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(host + LcApiConstants.VISIT_RECORD_FLOW_PERSON_SAVE_URL);
+        request.auth(getAuthToken());
+        ObjectMapper mapper = new ObjectMapper();
+        try {
+            // 对象转map
+            Map m = mapper.readValue(mapper.writeValueAsString(lcFlowPersonVisitRecordDTO), Map.class);
+            request.form(m);
+        } catch (JsonProcessingException e) {
+            log.info("方法uploadFlowPersonVisitRecord发生错误:{}", e.getMessage());
+        }
+        HttpResponse result = request.execute();
+        log.info("uploadFlowPersonVisitRecord上传浪潮事件信息:{}", result.body());
+        return result.body();
+    }
+
+    @Override
+    public String uploadKeyPersonVisitRecord(LcKeyPersonVisitRecordDTO lcKeyPersonVisitRecordDTO) {
+        HttpRequest request = HttpUtil.createPost(host + LcApiConstants.VISIT_RECORD_KEY_PERSON_SAVE_REMOTE_URL);
+        request.auth(getAuthToken());
+        ObjectMapper mapper = new ObjectMapper();
+        try {
+            // 对象转map
+            Map m = mapper.readValue(mapper.writeValueAsString(lcKeyPersonVisitRecordDTO), Map.class);
+            request.form(m);
+        } catch (JsonProcessingException e) {
+            log.info("方法uploadKeyPersonVisitRecord发生错误:{}", e.getMessage());
+        }
+        HttpResponse result = request.execute();
+        log.info("uploadKeyPersonVisitRecord上传浪潮事件信息:{}", result.body());
+        return result.body();
+    }
+
+    @Override
+    public String getKeyPersonVisitRecordDetailById(String recordId) {
+        HttpRequest request = HttpUtil.createPost(host + LcApiConstants.VISIT_RECORD_KEY_PERSON_DETAIL_URL);
+        request.auth(getAuthToken());
+        request.form("id", recordId);
+        HttpResponse result = request.execute();
+        return result.body();
+    }
+
+    @Override
+    public String getKeyPersonVisitRecordPage(LcKeyPersonVisitRecordQueryDTO personVisitRecordQueryDTO,
+        Long loginUserId) {
+        HttpResponse result = getHttpResponse(personVisitRecordQueryDTO, loginUserId,
+            host +
+            LcApiConstants.VISIT_RECORD_KEY_PERSON_PAGE_URL, "keyPersonId");
+        return result.body();
+    }
+
+    @Override
+    public void automationUploadVisitRecord() {
+        List<LcEventVisitingTasksListDTO> unUploadTaskList = gridService.getUnUploadVisitingTask();
+        unUploadTaskList.forEach(lcEventVisitingTasksListDTO -> {
+            String lcGrid = gridService.getLcGridIdByLocal(lcEventVisitingTasksListDTO.getGridId());
+            String lcGridUserId =
+                gridService.getLcUserIdByLocalUserId(lcEventVisitingTasksListDTO.getGridMember().toString());
+            R populationDetail = communityService.detailPopulation(lcEventVisitingTasksListDTO.getVisiterId(), null);
+            ComMngPopulationVO comMngPopulationVO = (ComMngPopulationVO)populationDetail.getData();
+            BcDictionaryItemVO diction = communityService.getByCode(DictionItemConstants.LC_CULTURE_LEVEL,
+                comMngPopulationVO.getCultureLevel().toString());
+            ComMngPopulationDTO comMngPopulationDTO =
+                CopyUtil.copyProperties(comMngPopulationVO, ComMngPopulationDTO.class);
+            if (diction != null) {
+                comMngPopulationDTO.setCultureLevel(diction.getDictItemName());
+            }
+            R grid = gridService.eventGridDataDetails(lcEventVisitingTasksListDTO.getGridId());
+            EventGridDataDetailsVO gridData = (EventGridDataDetailsVO)grid.getData();
+            String[] data = lcEventVisitingTasksListDTO.getHappentLatLng().split(",");
+            if (lcEventVisitingTasksListDTO.getVisiterType() != null) {
+                log.info("上传数据导重点人口走访记录表");
+                LcReturnObject lcReturnObject = requestLcKeyPersonVisitRecord(lcEventVisitingTasksListDTO, lcGrid,
+                    lcGridUserId, comMngPopulationDTO, gridData.getGridName(), data);
+                if (LcRequestEnum.SUCCESS.getCode().equals(lcReturnObject.getCode())) {
+                    uploadVisitRecord(lcEventVisitingTasksListDTO);
+                    gridService.updateLcUploadFlagVisitingTask(lcEventVisitingTasksListDTO.getId());
+                }
+            } else {
+                log.info("上传数据导流动人口走访记录表");
+                LcReturnObject lcReturnObject = requestLcFlowPersonVisitRecord(lcEventVisitingTasksListDTO, lcGrid,
+                    lcGridUserId, comMngPopulationDTO, gridData.getGridName(), data);
+                if (LcRequestEnum.SUCCESS.getCode().equals(lcReturnObject.getCode())) {
+                    uploadVisitRecord(lcEventVisitingTasksListDTO);
+                    gridService.updateLcUploadFlagVisitingTask(lcEventVisitingTasksListDTO.getId());
+                }
+            }
+        });
+    }
+
+    private void uploadVisitRecord(LcEventVisitingTasksListDTO lcEventVisitingTasksListDTO) {
+        log.info("开始上传走访任务附件文件");
+        List<EventResourceVO> picsList = lcEventVisitingTasksListDTO.getPics();
+        uploadVisitRecordFile(lcEventVisitingTasksListDTO, picsList, "IMAGE");
+        List<EventResourceVO> audiosList = lcEventVisitingTasksListDTO.getAudios();
+        uploadVisitRecordFile(lcEventVisitingTasksListDTO, audiosList, "AUDIO");
+        List<EventResourceVO> videoList = lcEventVisitingTasksListDTO.getVideos();
+        uploadVisitRecordFile(lcEventVisitingTasksListDTO, videoList, "VIDEO");
+        log.info("结束上传走访任务附件文件");
+    }
+
+    private void uploadVisitRecordFile(LcEventVisitingTasksListDTO lcEventVisitingTasksListDTO,
+        List<EventResourceVO> picsList, String type) {
+        picsList.forEach(eventResourceVO -> {
+            EventFile eventFile = new EventFile();
+            eventFile.setDataId(lcEventVisitingTasksListDTO.getId().toString());
+            eventFile.setFiles(eventResourceVO.getUrl());
+            eventFile.setType(type);
+            eventFile.setModule("key_person");
+            eventFile.setFileName(eventResourceVO.getResourceName());
+            submitEventOrVisitRecordRelationFile(eventFile);
+        });
+    }
+
+    @Override
+    public LcReturnObject requestLcFlowPersonVisitRecord(LcEventVisitingTasksListDTO lcEventVisitingTasksListDTO,
+        String lcGrid, String lcGridUserId, Object populationDetail, String gridName, String[] data) {
+        // 如果是流动人口走访
+        LcFlowPersonVisitRecordDTO lcFlowPersonVisitRecordDTO = new LcFlowPersonVisitRecordDTO();
+        lcFlowPersonVisitRecordDTO.setId(lcEventVisitingTasksListDTO.getId().toString());
+        lcFlowPersonVisitRecordDTO.setUserId(lcGridUserId);
+        lcFlowPersonVisitRecordDTO.setGridPersonName(lcEventVisitingTasksListDTO.getGridMemberName());
+        lcFlowPersonVisitRecordDTO.setGridPersonPhone(lcEventVisitingTasksListDTO.getGridMenberTele());
+        JSONObject population = (JSONObject)JSONObject.toJSON(populationDetail);
+        lcFlowPersonVisitRecordDTO.setComMngPopulation(population.toJSONString());
+        lcFlowPersonVisitRecordDTO.setGridId(lcGrid);
+        lcFlowPersonVisitRecordDTO.setGridName(gridName);
+        lcFlowPersonVisitRecordDTO.setWorkWithPoliceMan("0");
+        lcFlowPersonVisitRecordDTO.setPoliceManName(null);
+        lcFlowPersonVisitRecordDTO.setPoliceManPhone(null);
+        lcFlowPersonVisitRecordDTO.setPoliceManWorkContent(null);
+        lcFlowPersonVisitRecordDTO.setVisitTime(lcEventVisitingTasksListDTO.getHappenTime().getTime());
+        lcFlowPersonVisitRecordDTO.setVisitAddress(lcEventVisitingTasksListDTO.getHappentAddress());
+        lcFlowPersonVisitRecordDTO.setLongitude(Double.valueOf(data[0]));
+        lcFlowPersonVisitRecordDTO.setLatitude(Double.valueOf(data[1]));
+        lcFlowPersonVisitRecordDTO.setHouseType(null);
+        lcFlowPersonVisitRecordDTO.setHouseAddress(lcEventVisitingTasksListDTO.getHappentAddress());
+        lcFlowPersonVisitRecordDTO.setIsReportInfo(null);
+        lcFlowPersonVisitRecordDTO.setHaveCertificate("0");
+        lcFlowPersonVisitRecordDTO.setCertificateType("身份证");
+        lcFlowPersonVisitRecordDTO.setCertificateNumber(population.getString("cardNo"));
+        lcFlowPersonVisitRecordDTO.setCertificateDeadTime("0");
+        lcFlowPersonVisitRecordDTO.setIsPropaganda("1");
+        lcFlowPersonVisitRecordDTO.setIsCheckReview("1");
+        lcFlowPersonVisitRecordDTO.setIsAbnormal(lcEventVisitingTasksListDTO.getException().toString());
+        lcFlowPersonVisitRecordDTO.setAbnormalSituation(lcEventVisitingTasksListDTO.getTableContentJson());
+        lcFlowPersonVisitRecordDTO.setRemark(lcEventVisitingTasksListDTO.getEventDes());
+        log.info("requestLcFlowPersonVisitRecord事件请求数据:{}", JSONObject.toJSONString(lcFlowPersonVisitRecordDTO));
+        String flowPersonData = uploadFlowPersonVisitRecord(lcFlowPersonVisitRecordDTO);
+        LcReturnObject lcReturnObject = JSONObject.parseObject(flowPersonData, LcReturnObject.class);
+        log.info("requestLcFlowPersonVisitRecord提交浪潮服务器,接口返回结果为:{}", lcReturnObject);
+        return lcReturnObject;
+    }
+
+    @Override
+    public LcReturnObject requestLcKeyPersonVisitRecord(LcEventVisitingTasksListDTO lcEventVisitingTasksListDTO,
+        String lcGrid, String lcGridUserId, Object populationDetail, String gridName, String[] data) {
+        LcKeyPersonVisitRecordDTO keyPersonVisitRecordDTO = new LcKeyPersonVisitRecordDTO();
+        keyPersonVisitRecordDTO.setId(lcEventVisitingTasksListDTO.getId().toString());
+        keyPersonVisitRecordDTO.setUserId(lcGridUserId);
+        keyPersonVisitRecordDTO.setGridPersonName(lcEventVisitingTasksListDTO.getGridMemberName());
+        keyPersonVisitRecordDTO.setGridPersonPhone(lcEventVisitingTasksListDTO.getGridMenberTele());
+        keyPersonVisitRecordDTO.setComMngPopulation(JSONObject.toJSONString(populationDetail));
+        keyPersonVisitRecordDTO.setGridId(lcGrid);
+        keyPersonVisitRecordDTO.setGridName(gridName);
+        keyPersonVisitRecordDTO.setVisitTime(lcEventVisitingTasksListDTO.getHappenTime().getTime());
+        keyPersonVisitRecordDTO.setVisitAddress(lcEventVisitingTasksListDTO.getHappentAddress());
+        keyPersonVisitRecordDTO.setLongitude(Double.valueOf(data[0]));
+        keyPersonVisitRecordDTO.setLatitude(Double.valueOf(data[1]));
+        keyPersonVisitRecordDTO.setFamilyMemberContact(lcEventVisitingTasksListDTO.getFamilyPhone());
+        keyPersonVisitRecordDTO.setHowLive(lcEventVisitingTasksListDTO.getFamilySource());
+        keyPersonVisitRecordDTO.setIsAbnormal(lcEventVisitingTasksListDTO.getException().toString());
+        keyPersonVisitRecordDTO.setAbnormalSituation(null);
+        keyPersonVisitRecordDTO.setAbnormalDes(lcEventVisitingTasksListDTO.getTableContentJson());
+        keyPersonVisitRecordDTO.setRemark(lcEventVisitingTasksListDTO.getEventDes());
+        keyPersonVisitRecordDTO
+            .setType(LcVisitRecordKeyPersonLabelEnum.getCnDescByName(lcEventVisitingTasksListDTO.getVisiterType()));
+        log.info("requestLcKeyPersonVisitRecord事件请求数据:{}", JSONObject.toJSONString(keyPersonVisitRecordDTO));
+        String remoteData = uploadKeyPersonVisitRecord(keyPersonVisitRecordDTO);
+        LcReturnObject lcReturnObject = JSONObject.parseObject(remoteData, LcReturnObject.class);
+        log.info("requestLcKeyPersonVisitRecord提交浪潮服务器,接口返回结果为:{}", remoteData);
+        return lcReturnObject;
+    }
+
+    private HttpResponse getHttpResponse(LcKeyPersonVisitRecordQueryDTO personVisitRecordQueryDTO, Long loginUserId,
+        String requestUrl, String flowPeopleId) {
+        HttpRequest request = HttpUtil.createPost(requestUrl);
+        request.auth(getAuthToken());
+        request.form("userId", loginUserId);
+        request.form("gridId", personVisitRecordQueryDTO.getGridId());
+        request.form("limit", personVisitRecordQueryDTO.getLimit());
+        request.form("startNumber", personVisitRecordQueryDTO.getStartNumber());
+        request.form(flowPeopleId, personVisitRecordQueryDTO.getPersonId());
+        return request.execute();
+    }
+
+    private void uploadLcApiEventFile(EventDetailsVO eventInfoVo, List<EventResourceVO> picsList, String type) {
+        picsList.forEach(eventResourceVO -> {
+            EventFile eventFile = new EventFile();
+            eventFile.setDataId(eventInfoVo.getId().toString());
+            eventFile.setFiles(eventResourceVO.getUrl());
+            eventFile.setType(type);
+            eventFile.setModule("event");
+            eventFile.setFileName(eventResourceVO.getResourceName());
+            submitEventOrVisitRecordRelationFile(eventFile);
+        });
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/config/SwaggerConfig.java b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/config/SwaggerConfig.java
new file mode 100644
index 0000000..529a6e2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/config/SwaggerConfig.java
@@ -0,0 +1,33 @@
+package com.panzhihua.serviceapi.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import io.swagger.annotations.ApiOperation;
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.service.Contact;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: swagger3
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-19 16:08
+ **/
+@Configuration
+public class SwaggerConfig {
+    @Bean
+    public Docket createRestApi() {
+        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
+            .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)).paths(PathSelectors.any()).build();
+    }
+
+    private ApiInfo apiInfo() {
+        return new ApiInfoBuilder().title("社区后台管理接口").description("。")
+            .contact(new Contact("Ray。", "http://www.ruiyeclub.cn", "ruiyeclub@foxmail.com")).version("1.0").build();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/ComMngPopulationDTO.java b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/ComMngPopulationDTO.java
new file mode 100644
index 0000000..ba78e9c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/ComMngPopulationDTO.java
@@ -0,0 +1,160 @@
+package com.panzhihua.serviceapi.model.dto;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+
+import lombok.Data;
+
+/**
+ * program 攀枝花智慧社区项目 description 实有人口信息
+ *
+ * @author manailin Date 2021-06-22 15:30
+ **/
+@Data
+public class ComMngPopulationDTO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增 id
+     */
+    private Long id;
+    /**
+     * 街道id
+     */
+    private Long streetId;
+    /**
+     * 社区id
+     */
+    private Long actId;
+    /**
+     * 小区id(实有房屋id)
+     */
+    private Long villageId;
+    /**
+     * 家庭成员(姓名)
+     */
+    private String name;
+    /**
+     * 性别(1.男 2.女 3.未知)
+     */
+    private Integer sex;
+    /**
+     * 身份证号码
+     */
+    @EncryptDecryptField
+    private String cardNo;
+
+    /**
+     * 临时用
+     */
+    private String cardNoStr;
+    /**
+     * 街路巷
+     */
+    private String road;
+    /**
+     * 门牌号
+     */
+    private String doorNo;
+    /**
+     * 楼排号
+     */
+    private String floor;
+    /**
+     * 单元号
+     */
+    private String unitNo;
+    /**
+     * 户室(房间号)
+     */
+    private String houseNo;
+    /**
+     * 政治面貌(1.中共党员2.中共预备党员3.共青团员4.民革党员5.民盟盟员6.民建会员7.8.农工党党员9.致公党党员10.九三学社社员11.台盟盟员12.无党派人士13.群众)
+     */
+    private Integer politicalOutlook;
+    /**
+     * 工作单位
+     */
+    private String workCompany;
+    /**
+     * 特殊情况
+     */
+    private String specialSituation;
+    /**
+     * 联系方式
+     */
+    @EncryptDecryptField
+    private String phone;
+    /**
+     * 外地or本地(1.本地 2.外地)
+     */
+    private Integer outOrLocal;
+    /**
+     * 户口所在地
+     */
+    private String censusRegister;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 标签集合(多个标签以,隔开)
+     */
+    private String label;
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+    /**
+     * 修改时间
+     */
+    private Date updateAt;
+    /**
+     * 籍贯
+     */
+    private String nativePlace;
+    /**
+     * 民族code
+     */
+    private String nativeCode;
+    /**
+     * 民族
+     */
+    private String nation;
+    /**
+     * 是否租住(0.否 1.是)
+     */
+    private Integer isRent;
+    /**
+     * 小区名字
+     */
+    private String villageName;
+
+    /**
+     * 文化程度(1.小学 2.初中 3.高中 4.中专 5.大专 6.本科 7.硕士 8.博士 9.其他)
+     */
+    private String cultureLevel;
+
+    /**
+     * 婚姻状况(1.未婚 2.已婚 3.离异 4.丧偶 5.分居 6.其他)
+     */
+    private Integer marriage;
+
+    /**
+     * 健康状况
+     */
+    private String healthy;
+
+    /**
+     * 居住地址
+     */
+    private String address;
+
+    /**
+     * 出生年月日
+     */
+    private String birthday;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/GridMemberPageListDTO.java b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/GridMemberPageListDTO.java
new file mode 100644
index 0000000..6283db1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/GridMemberPageListDTO.java
@@ -0,0 +1,48 @@
+package com.panzhihua.serviceapi.model.dto;
+
+import lombok.Data;
+
+/**
+ * program 攀枝花智慧社区项目 description 浪潮网格员接口返回对象
+ *
+ * @author manailin Date 2021-06-22 15:30
+ **/
+@Data
+public class GridMemberPageListDTO {
+
+    private String bindUserId;
+    private String bindUserName;
+    private String birthDate;
+    private String contactPhone;
+    private String createBy;
+    private String createTime;
+    private String dutyType;
+    private String educationCode;
+    private String educationName;
+    private String genderCode;
+    private String genderName;
+    private String gridDutyId;
+    private String gridDutyName;
+    private String id;
+    private String imei;
+    private Integer isLeader;
+    private Integer jobNum;
+    private String lastReportTime;
+    private String latitude;
+    private String locateUpdateTime;
+    private String longitude;
+    private String name;
+    private String nationCode;
+    private String nationName;
+    private String orgDuty;
+    private String orgDutyDate;
+    private String orgId;
+    private String orgName;
+    private String password;
+    private String politicalAffiliationCode;
+    private String politicalAffiliationName;
+    private String standbyPhone;
+    private String updateBy;
+    private String updateTime;
+    private String workState;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/LcFlowPersonVisitRecordDTO.java b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/LcFlowPersonVisitRecordDTO.java
new file mode 100644
index 0000000..30a2983
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/LcFlowPersonVisitRecordDTO.java
@@ -0,0 +1,121 @@
+package com.panzhihua.serviceapi.model.dto;
+
+import lombok.Data;
+
+/**
+ * program 攀枝花智慧社区项目 description 浪潮流动人员走访记录
+ *
+ * @author manailin Date 2021-06-22 15:30
+ **/
+@Data
+public class LcFlowPersonVisitRecordDTO {
+    /**
+     * 走访记录id
+     */
+    private String id;
+    /**
+     * 用户id
+     */
+    private String userId;
+    /**
+     * 网格员姓名
+     */
+    private String gridPersonName;
+    /**
+     * 网格员电话
+     */
+    private String gridPersonPhone;
+    /**
+     * 人员基础信息对象
+     */
+    private String comMngPopulation;
+    /**
+     * 网格ID
+     */
+    private String gridId;
+    /**
+     * 网格名称,用于查询详情时候显示
+     */
+    private String gridName;
+    /**
+     * 是否在民警带领下工作
+     */
+    private String workWithPoliceMan;
+    /**
+     * 民警姓名
+     */
+    private String policeManName;
+    /**
+     * 民警电话
+     */
+    private String policeManPhone;
+    /**
+     * 工作内容
+     */
+    private String policeManWorkContent;
+    /**
+     * 走访时间
+     */
+    private Long visitTime;
+    /**
+     * 走访地址
+     */
+    private String visitAddress;
+    /**
+     * 经度
+     */
+    private Double longitude;
+    /**
+     * 纬度
+     */
+    private Double latitude;
+    /**
+     * 住所类型
+     */
+    private String houseType;
+    /**
+     * 住所地址
+     */
+    private String houseAddress;
+    /**
+     * 是否申报流动人口信息
+     */
+    private String isReportInfo;
+    /**
+     * 是否办证
+     */
+    private String haveCertificate;
+    /**
+     * 证件类型
+     */
+    private String certificateType;
+    /**
+     * 证件号码
+     */
+    private String certificateNumber;
+    /**
+     * 证件到期时间
+     */
+    private String certificateDeadTime;
+    /**
+     * 是否宣传
+     */
+    private String isPropaganda;
+    /**
+     * 是否核查申报
+     */
+    private String isCheckReview;
+    /**
+     * 是否有异常
+     */
+    private String isAbnormal;
+    /**
+     * 异常情况
+     */
+    private String abnormalSituation;
+    /**
+     * 备注
+     */
+    private String remark;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/LcGridData.java b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/LcGridData.java
new file mode 100644
index 0000000..0ac22dc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/LcGridData.java
@@ -0,0 +1,27 @@
+package com.panzhihua.serviceapi.model.dto;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import lombok.Data;
+
+/**
+ * program 攀枝花智慧社区项目 description 浪潮接口返回的网格数据接口,网格按照区域层级展开
+ *
+ * @author manailin Date 2021-06-22 15:30
+ **/
+@Data
+public class LcGridData {
+
+    private String id;
+    private String title;
+    private String level;
+    private String other;
+    private String other4;
+    private String name;
+    private String open;
+    private String checked;
+    private String count;
+    private String pid;
+    private List<LcGridData> children = new ArrayList<>();
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/LcKeyPersonVisitRecordDTO.java b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/LcKeyPersonVisitRecordDTO.java
new file mode 100644
index 0000000..2a5a30b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/LcKeyPersonVisitRecordDTO.java
@@ -0,0 +1,85 @@
+package com.panzhihua.serviceapi.model.dto;
+
+import lombok.Data;
+
+/**
+ * program 攀枝花智慧社区项目 description 浪潮重点人员走访记录
+ *
+ * @author manailin Date 2021-06-22 15:30
+ **/
+@Data
+public class LcKeyPersonVisitRecordDTO {
+    /**
+     * 走访记录id
+     */
+    private String id;
+    /**
+     * 用户id
+     */
+    private String userId;
+    /**
+     * 网格员姓名
+     */
+    private String gridPersonName;
+    /**
+     * 网格员电话
+     */
+    private String gridPersonPhone;
+    /**
+     * 人员基础信息对象
+     */
+    private String comMngPopulation;
+    /**
+     * 网格ID
+     */
+    private String gridId;
+    /**
+     * 网格名称,用于查询详情时候显示
+     */
+    private String gridName;
+    /**
+     * 走访时间
+     */
+    private Long visitTime;
+    /**
+     * 走访地址
+     */
+    private String visitAddress;
+    /**
+     * 经度
+     */
+    private Double longitude;
+    /**
+     * 纬度
+     */
+    private Double latitude;
+    /**
+     * 家属联系方式
+     */
+    private String familyMemberContact;
+    /**
+     * 生活来源
+     */
+    private String howLive;
+
+    /**
+     * 是否有异常
+     */
+    private String isAbnormal;
+    /**
+     * 异常情况类型
+     */
+    private String abnormalSituation;
+    /**
+     * 异常描述
+     */
+    private String abnormalDes;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * p01_drug吸毒人员 p01_trouble_schiz 严重精神障碍 p01_release 刑满释放 p01_be_corrected 社区矫正人员
+     */
+    private String type;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/LcKeyPersonVisitRecordQueryDTO.java b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/LcKeyPersonVisitRecordQueryDTO.java
new file mode 100644
index 0000000..d27b4e9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/java/com/panzhihua/serviceapi/model/dto/LcKeyPersonVisitRecordQueryDTO.java
@@ -0,0 +1,30 @@
+package com.panzhihua.serviceapi.model.dto;
+
+import lombok.Data;
+
+/**
+ * program 攀枝花智慧社区项目 description 浪潮接口走访任务分页查询DTO
+ *
+ * @author manailin Date 2021-06-22 15:30
+ **/
+@Data
+public class LcKeyPersonVisitRecordQueryDTO {
+
+    /**
+     * 网格ID
+     */
+    private String gridId;
+    /**
+     * 用户ID
+     */
+    private String personId;
+    /**
+     * 开始数量
+     */
+    private String startNumber;
+    /**
+     * 查询长度
+     */
+    private String limit;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/resources/bootstrap.yml b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..dd47d64
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/resources/bootstrap.yml
@@ -0,0 +1,23 @@
+spring:
+  application:
+    name: serviceApi
+  cloud:
+    config:
+      discovery:
+        enabled: true
+        service-id: config  # 注册中心的服务名
+      profile: ${ENV:dev}  # 指定配置文件的环境
+      uri: http://${CONFIG_URL:localhost}:6193/
+  profiles:
+    active: ${ENV:dev}
+  servlet:
+    multipart:
+      max-file-size: 10MB
+      max-request-size: 10MB
+
+eureka:
+  client:
+    service-url:
+      defaultZone: http://${EUREKA_URL:localhost}:8192/eureka
+server:
+  port: 8065
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/resources/logback-spring.xml b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..dd1f87e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/main/resources/logback-spring.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration debug="false">
+    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
+    <springProfile name="dev">
+        <property name="LOG_HOME" value="F:/log" />
+    </springProfile>
+       <springProfile name="test">
+        <property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    </springProfile>
+<property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    <!-- 控制台输出 -->
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+    </appender>
+    <!-- 按照每天生成日志文件 -->
+    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!--日志文件输出的文件名-->
+            <FileNamePattern>${LOG_HOME}/community_backstage.log.%d{yyyy-MM-dd}.log</FileNamePattern>
+            <!--日志文件保留天数-->
+            <MaxHistory>30</MaxHistory>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+        <!--日志文件最大的大小-->
+        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <MaxFileSize>10MB</MaxFileSize>
+        </triggeringPolicy>
+    </appender>
+
+    <!--myibatis log configure-->
+    <logger name="com.apache.ibatis" level="TRACE"/>
+    <logger name="java.sql.Connection" level="DEBUG"/>
+    <logger name="java.sql.Statement" level="DEBUG"/>
+    <logger name="java.sql.PreparedStatement" level="DEBUG"/>
+    <logger name="com.panzhihua.community_backstage" level="DEBUG"/>
+
+    <!-- 日志输出级别 -->
+    <root level="DEBUG">
+        <appender-ref ref="STDOUT" />
+    </root>
+    <root level="INFO">
+        <appender-ref ref="STDOUT" />
+        <appender-ref ref="FILE" />
+    </root>
+</configuration>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_api/src/test/java/com/panzhihua/serviceapi/biz/impl/DictionData.java b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/test/java/com/panzhihua/serviceapi/biz/impl/DictionData.java
new file mode 100644
index 0000000..407d15d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/test/java/com/panzhihua/serviceapi/biz/impl/DictionData.java
@@ -0,0 +1,21 @@
+package com.panzhihua.serviceapi.biz.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import lombok.Data;
+
+/**
+ * @author manailin
+ * @date 2021/6/11 16:27
+ */
+@Data
+public class DictionData {
+
+    private String id;
+    private String level;
+    private String name;
+    private String title;
+    private String value;
+    private List<DictionData> children = new ArrayList<>();
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_api/src/test/java/com/panzhihua/serviceapi/biz/impl/DictionValueData.java b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/test/java/com/panzhihua/serviceapi/biz/impl/DictionValueData.java
new file mode 100644
index 0000000..3e9326d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/test/java/com/panzhihua/serviceapi/biz/impl/DictionValueData.java
@@ -0,0 +1,15 @@
+package com.panzhihua.serviceapi.biz.impl;
+
+import lombok.Data;
+
+/**
+ * @author manailin
+ * @date 2021/6/11 16:27
+ */
+@Data
+public class DictionValueData {
+    private String dictCode;
+    private String dictName;
+    private Boolean enable;
+    private String remark;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_api/src/test/java/com/panzhihua/serviceapi/biz/impl/LcApiServiceImplTest.java b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/test/java/com/panzhihua/serviceapi/biz/impl/LcApiServiceImplTest.java
new file mode 100644
index 0000000..6e626bf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_api/src/test/java/com/panzhihua/serviceapi/biz/impl/LcApiServiceImplTest.java
@@ -0,0 +1,268 @@
+package com.panzhihua.serviceapi.biz.impl;
+
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.panzhihua.common.api.LcReturnObject;
+import com.panzhihua.common.enums.LocalEventToLangChaoEventTypeEnum;
+import com.panzhihua.common.model.dtos.api.EventFile;
+import com.panzhihua.common.model.dtos.api.EventInfo;
+import com.panzhihua.common.model.dtos.api.PartiesBody;
+import com.panzhihua.common.model.vos.BcDictionaryVO;
+import com.panzhihua.common.model.vos.DictionaryVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.EventDetailsVO;
+import com.panzhihua.common.model.vos.grid.EventGridDataDetailsVO;
+import com.panzhihua.common.model.vos.grid.EventResourceVO;
+import com.panzhihua.common.service.api.ApiServiceFeign;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.grid.GridService;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.serviceapi.ServiceApiApplication;
+import com.panzhihua.serviceapi.biz.LcApiService;
+import com.panzhihua.serviceapi.model.dto.GridMemberPageListDTO;
+import com.panzhihua.serviceapi.model.dto.LcGridData;
+
+import cn.hutool.core.util.RandomUtil;
+import cn.hutool.http.HttpRequest;
+import cn.hutool.http.HttpResponse;
+import cn.hutool.http.HttpUtil;
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+@SpringBootTest(classes = ServiceApiApplication.class)
+class LcApiServiceImplTest {
+
+    @Autowired
+    private LcApiService lcApiService;
+
+    @Resource
+    private GridService gridService;
+
+    @Resource
+    private ApiServiceFeign ApiServiceFeign;
+
+    @Autowired
+    private CommunityService communityService;
+
+    @Test
+    void saveTokenFromRemoteRequest() {
+        String result = lcApiService.saveTokenFromRemoteRequest("18080799023", "123456");
+        log.info(JSONObject.toJSONString(result));
+    }
+
+    @Test
+    void getAllEventTypeList() {
+        String result = lcApiService.getAllEventTypeList();
+        log.info(result);
+    }
+
+    @Test
+    void automationUploadEventAndFile() {
+        lcApiService.automationUploadEventAndFile();
+    }
+
+    @Test
+    void submitEventRegister() {
+        EventInfo eventInfo = new EventInfo();
+        eventInfo.setGridId("8c86b8b467194270b6b066b9c32e3b9b");
+        eventInfo.setGridName("金沙社区网格1");
+        eventInfo.setCaseTypeCode("04e0506d78884d218050a4c89a2e34c3");
+        eventInfo.setCaseTypeName("18080799023");
+        eventInfo.setHappenTime(String.valueOf(DateUtils.getCurrentDataLong()));
+        eventInfo.setHappenAddress("四川省攀枝花市");
+        eventInfo.setLongitude("116.397128");
+        eventInfo.setLatitude("39.916527");
+        eventInfo.setCaseDescription("描述");
+        eventInfo.setCaseRecordTime(String.valueOf(DateUtils.getCurrentDataLong()));
+        eventInfo.setHandleType("REPORT");
+        eventInfo.setHandleDescription("处理描述");
+        String dataID = String.valueOf(RandomUtil.randomLong(20));
+        log.info("random:" + dataID);
+        eventInfo.setDataId(dataID);
+        eventInfo.setUserId("3e318dbeddc048328933d8b4ca759a36");
+        eventInfo.setHandleTime(String.valueOf(DateUtils.getCurrentDataLong()));
+        eventInfo.setCaseName("测试标题17");
+        List<PartiesBody> partiesBody = new ArrayList<>();
+        PartiesBody partiesBody1 = new PartiesBody();
+        partiesBody1.setPartyName("测试见证人");
+        partiesBody1.setPartyPhone("17345623565");
+        partiesBody.add(partiesBody1);
+        eventInfo.setPartiesBody(partiesBody);
+        String result = lcApiService.submitEventRegister(eventInfo);
+        log.info(result);
+    }
+
+    @Test
+    void submitEventRelationFile() throws URISyntaxException {
+        EventFile eventFile = new EventFile();
+        eventFile.setDataId("1111116");
+        eventFile.setFiles("http://image.panzhihua.nhys.cdnhxx.com//idcard/4f843ad2d756456e900d5f24b419aa7c.mp4");
+        eventFile.setType("mp4");
+        eventFile.setModule("event");
+        eventFile.setFileName("4f843ad2d756456e900d5f24b419aa7c.mp4");
+        R result = lcApiService.submitEventOrVisitRecordRelationFile(eventFile);
+        log.info(JSONObject.toJSONString(result));
+    }
+
+    @Test
+    void submitEventRegisterJobTest() {
+        log.info("定时向浪潮服务器提交网格事件登记开始");
+        R<EventDetailsVO> event = gridService.eventDetails(4545676L);
+        EventDetailsVO eventInfoVo = event.getData();
+        EventInfo eventInfo = new EventInfo();
+        String lcGrid = gridService.getLcGridIdByLocal(eventInfoVo.getGridId());
+        String lcGridUserId = gridService.getLcUserIdByLocalUserId(eventInfoVo.getGridMemberId().toString());
+        eventInfo.setGridId(lcGrid);
+        R grid = gridService.eventGridDataDetails(eventInfoVo.getGridId());
+        EventGridDataDetailsVO gridData = (EventGridDataDetailsVO)grid.getData();
+        eventInfo.setGridName(gridData.getGridName());
+        eventInfo.setCaseTypeCode(LocalEventToLangChaoEventTypeEnum.getCodeByName(eventInfoVo.getEventType()));
+        String caseTypeName = LocalEventToLangChaoEventTypeEnum.getEventNameByCode(eventInfoVo.getEventType());
+        eventInfo.setCaseTypeName(caseTypeName);
+        eventInfo.setHappenTime(String.valueOf(eventInfoVo.getHappenTime().getTime()));
+        eventInfo.setHappenAddress(eventInfoVo.getHappenAddress());
+        String[] data = eventInfoVo.getHappentLatLng().split(",");
+        eventInfo.setLongitude(data[0]);
+        eventInfo.setLatitude(data[1]);
+        eventInfo.setCaseDescription(eventInfoVo.getEventDes());
+        eventInfo.setCaseRecordTime(String.valueOf(eventInfoVo.getCreateAt().getTime()));
+        eventInfo.setHandleType("REPORT");
+        eventInfo.setHandleDescription(eventInfoVo.getProcessDesc());
+        eventInfo.setDataId(eventInfoVo.getId().toString());
+        // 获取系统网格员映射的浪潮网格员对于的用户ID
+        eventInfo.setUserId(lcGridUserId);
+        eventInfo.setHandleTime(String.valueOf(eventInfoVo.getHappenTime().getTime()));
+        eventInfo.setCaseName(gridData.getGridName().concat(caseTypeName).concat(eventInfoVo.getEventTitle()));
+        lcApiService.submitEventRegister(eventInfo);
+        log.info("定时向浪潮服务器提交网格事件登记结束");
+        log.info("开始上传附件图片信息");
+        List<EventResourceVO> picsList = eventInfoVo.getPics();
+        picsList.forEach(eventResourceVO -> {
+            EventFile eventFile = new EventFile();
+            eventFile.setDataId(eventInfoVo.getId().toString());
+            eventFile.setFiles(eventResourceVO.getUrl());
+            eventFile.setType("png");
+            eventFile.setModule("event");
+            eventFile.setFileName(eventResourceVO.getResourceName());
+            lcApiService.submitEventOrVisitRecordRelationFile(eventFile);
+        });
+        List<EventResourceVO> audiosList = eventInfoVo.getAudios();
+        audiosList.forEach(eventResourceVO -> {
+            EventFile eventFile = new EventFile();
+            eventFile.setDataId(eventInfoVo.getId().toString());
+            eventFile.setFiles(eventResourceVO.getUrl());
+            eventFile.setType("mp3");
+            eventFile.setModule("event");
+            eventFile.setFileName(eventResourceVO.getResourceName());
+            lcApiService.submitEventOrVisitRecordRelationFile(eventFile);
+        });
+        List<EventResourceVO> videoList = eventInfoVo.getVideos();
+        videoList.forEach(eventResourceVO -> {
+            EventFile eventFile = new EventFile();
+            eventFile.setDataId(eventInfoVo.getId().toString());
+            eventFile.setFiles(eventResourceVO.getUrl());
+            eventFile.setType("mp4");
+            eventFile.setModule("event");
+            eventFile.setFileName(eventResourceVO.getResourceName());
+            lcApiService.submitEventOrVisitRecordRelationFile(eventFile);
+        });
+        log.info("结束上传附件图片信息");
+    }
+
+    @Test
+    void getGridListByAreaId() {
+        // jhRxqEQp 代表西区
+        List<LcGridData> list = lcApiService.getGridTreeByAreaId("jhRxqEQp");
+        String pretty = JSONArray.toJSONString(list, SerializerFeature.PrettyFormat,
+            SerializerFeature.WriteMapNullValue, SerializerFeature.WriteDateUseDateFormat);
+        log.info(pretty);
+    }
+
+    @Test
+    void getGridDataListByAreaId() {
+        // jhRxqEQp 代表西区
+        List<LcGridData> list = lcApiService.getGridDataListByAreaId("2Fxq97CC");
+        String pretty = JSONArray.toJSONString(list, SerializerFeature.PrettyFormat,
+            SerializerFeature.WriteMapNullValue, SerializerFeature.WriteDateUseDateFormat);
+        log.info(pretty);
+    }
+
+    @Test
+    void requestLcFlowPersonVisitRecord() {}
+
+    @Test
+    void automationUploadVisitRecord() {
+        lcApiService.automationUploadVisitRecord();
+    }
+
+    @Test
+    void getGridMemberListByAreaIdOrName() {
+        List<GridMemberPageListDTO> data = lcApiService.getGridMemberListByAreaIdOrName("jhRxqEQp", "", 1L, 20L);
+        // log.info(data);
+    }
+
+    @Test
+    void downloadDiction() {
+        // 获取字典全部大类
+        HttpRequest request = HttpUtil.createPost("http://171.217.92.33:53301/dict/getTypeTree");
+        request.cookie(
+            "SESSION=ZTQ1ZGRmZjktNWU1MC00ZjEyLWJhOGItNDdjZjlmODc1MjQy; UISESSIONMEMBER=C6FE0698B29832B18CBAEB71CCD3A2BA");
+        HttpResponse result = request.execute();
+        List<DictionData> remoteData = JSONArray.parseArray(result.body(), DictionData.class);
+        remoteData.forEach(dictionData -> {
+            DictionaryVO dictionaryVO = new DictionaryVO();
+            long parentzId = Snowflake.getId();
+            dictionaryVO.setId(parentzId);
+            dictionaryVO.setDictName(dictionData.getName());
+            dictionaryVO.setDictKey(dictionData.getValue());
+            dictionaryVO.setLevelIndex(1);
+            dictionaryVO.setParentId(0L);
+            communityService.insertDiction(dictionaryVO);
+            // 获取二级字典项
+            dictionData.getChildren().forEach(children -> {
+                DictionaryVO dictionaryChiVO = new DictionaryVO();
+                long erparentzId = Snowflake.getId();
+                dictionaryChiVO.setId(erparentzId);
+                dictionaryChiVO.setDictName(children.getName());
+                dictionaryChiVO.setDictKey(children.getValue());
+                dictionaryChiVO.setLevelIndex(2);
+                dictionaryChiVO.setParentId(dictionaryVO.getId());
+                communityService.insertDiction(dictionaryChiVO);
+                // 获取字典全部值
+                HttpRequest requestDictionValue =
+                    HttpUtil.createPost("http://171.217.92.33:53301/dict/getDictByTypeCodeAndParentId?typeCode="
+                        + children.getId() + "&parentId=0");
+                requestDictionValue.cookie(
+                    "SESSION=ZTQ1ZGRmZjktNWU1MC00ZjEyLWJhOGItNDdjZjlmODc1MjQy; UISESSIONMEMBER=C6FE0698B29832B18CBAEB71CCD3A2BA");
+                HttpResponse childResult = requestDictionValue.execute();
+                LcReturnObject remoteDataChild = JSONObject.parseObject(childResult.body(), LcReturnObject.class);
+                List<DictionValueData> dictionValueData =
+                    JSONArray.parseArray(remoteDataChild.getData(), DictionValueData.class);
+                dictionValueData.forEach(dictionValueData1 -> {
+                    BcDictionaryVO dictionaryItemVO = new BcDictionaryVO();
+                    dictionaryItemVO.setDictName(dictionValueData1.getDictName());
+                    dictionaryItemVO.setDictValue(dictionValueData1.getDictCode());
+                    dictionaryItemVO.setCode("");
+                    dictionaryItemVO.setDictId(erparentzId);
+                    communityService.insertDictionItem(dictionaryItemVO);
+                });
+                // String pretty = JSONArray.toJSONString(dictionValueData, SerializerFeature.PrettyFormat,
+                // SerializerFeature.WriteMapNullValue,
+                // SerializerFeature.WriteDateUseDateFormat);
+                // log.info(pretty);
+            });
+        });
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/pom.xml
new file mode 100644
index 0000000..37e135a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/pom.xml
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.panzhihua</groupId>
+        <artifactId>zhihuishequ</artifactId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <groupId>com.panzhihua.zhihuishequ.bracelet</groupId>
+    <artifactId>service_bracelet</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>service_bracelet</name>
+    <description>西区手环设备</description>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-config</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid-spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.netflix.hystrix</groupId>
+            <artifactId>hystrix-javanica</artifactId>
+        </dependency>
+        <!--jsoup爬虫爬取网页 -->
+        <dependency>
+            <groupId>org.jsoup</groupId>
+            <artifactId>jsoup</artifactId>
+            <version>1.13.1</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.panzhihua</groupId>
+            <artifactId>common</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.data</groupId>
+            <artifactId>spring-data-redis</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>commons-lang</groupId>
+            <artifactId>commons-lang</artifactId>
+            <version>2.6</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-amqp</artifactId>
+        </dependency>
+        <!--添加监控依赖包-->
+        <dependency>
+            <groupId>io.micrometer</groupId>
+            <artifactId>micrometer-registry-prometheus</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+        <!-- zxing生成二维码 -->
+        <dependency>
+            <groupId>com.google.zxing</groupId>
+            <artifactId>core</artifactId>
+            <version>3.3.3</version>
+        </dependency>
+        <!-- lbs附近定位 -->
+        <dependency>
+            <groupId>com.spatial4j</groupId>
+            <artifactId>spatial4j</artifactId>
+            <version>0.5</version>
+        </dependency>
+        <!--        微信小程序-->
+        <dependency>
+            <groupId>com.github.binarywang</groupId>
+            <artifactId>weixin-java-miniapp</artifactId>
+            <version>3.9.9.B</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.google.zxing</groupId>
+            <artifactId>javase</artifactId>
+            <version>3.3.3</version>
+        </dependency>
+    </dependencies>
+
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>2.5.0</version>
+                <configuration>
+                    <mainClass>com.panzhihua.service_bracelet.ServiceBraceletApplication</mainClass>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>docker-maven-plugin</artifactId>
+                <version>1.2.0</version>
+                <configuration>
+                    <imageName>registry.cn-chengdu.aliyuncs.com/panzhihua/service_bracelet:v1</imageName>
+                    <serverId></serverId>
+                    <baseImage>java</baseImage>
+                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
+                    <resources>
+                        <resource>
+                            <targetPath>/</targetPath>
+                            <directory>${project.build.directory}</directory>
+                            <include>${project.build.finalName}.jar</include>
+                        </resource>
+                    </resources>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <repositories>
+        <repository>
+            <id>spring-milestones</id>
+            <name>Spring Milestones</name>
+            <url>https://repo.spring.io/milestone</url>
+        </repository>
+    </repositories>
+
+
+</project>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/ServiceBraceletApplication.java b/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/ServiceBraceletApplication.java
new file mode 100644
index 0000000..24ce454
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/ServiceBraceletApplication.java
@@ -0,0 +1,21 @@
+package com.panzhihua.service_bracelet;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.cloud.client.SpringCloudApplication;
+import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.ComponentScan;
+
+@SpringCloudApplication
+@EnableFeignClients(basePackages = {"com.panzhihua.common.service"})
+@EnableEurekaClient
+@EnableCircuitBreaker
+@ComponentScan({"com.panzhihua.service_bracelet", "com.panzhihua.common"})
+public class ServiceBraceletApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(ServiceBraceletApplication.class, args);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/api/BraceletUserDataApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/api/BraceletUserDataApi.java
new file mode 100644
index 0000000..0d0d2a6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/api/BraceletUserDataApi.java
@@ -0,0 +1,450 @@
+package com.panzhihua.service_bracelet.api;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.bracelet.BraceletEarlyWarningDO;
+import com.panzhihua.common.model.dtos.bracelet.BraceletUserDataDO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_bracelet.model.dos.SysUser;
+import com.panzhihua.service_bracelet.service.BraceletEarlyWarningService;
+import com.panzhihua.service_bracelet.service.BraceletUserDataService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Slf4j
+@RestController
+@RequestMapping("/braceletApi")
+public class BraceletUserDataApi {
+
+    @Resource
+    private BraceletUserDataService braceletUserDataService;
+
+    //手环预警功能
+    @Resource
+    private BraceletEarlyWarningService braceletEarlyWarningService;
+
+    /**
+     * 新增数据
+     *
+     * @param braceletUserDataDO
+     *            请求参数
+     * @return 新增数据
+     */
+    @PostMapping("/addBracelet")
+    public R addBracelet(@RequestBody BraceletUserDataDO braceletUserDataDO)
+    {
+        braceletUserDataDO.setIsAbnormal("0");
+        braceletUserDataDO.setOnoff("1");
+
+        BraceletUserDataDO data=null;
+
+        if(!StringUtils.isEmpty(braceletUserDataDO.getDeviceId()))
+        {
+            data=braceletUserDataService.getDetails(braceletUserDataDO.getDeviceId());
+        }
+
+        if(data==null || StringUtils.isEmpty(data.getDeviceId()))
+        {
+            return R.ok(braceletUserDataService.addBracelet(braceletUserDataDO));
+        }
+        else
+        {
+            //101:血压数据 107:体温数据 110:计步数据 112:心率数据 201:SOS 呼叫请求 202:定位数据 301:穿戴设备电量 302:设备在线与离线
+            if(!StringUtils.isEmpty(braceletUserDataDO.getDataType()))
+            {
+                switch (braceletUserDataDO.getDataType())
+                {
+                    case "101":
+                        BraceletEarlyWarningDO data101=new BraceletEarlyWarningDO();
+                        data101.setEquipmentNumber(braceletUserDataDO.getDeviceId());
+                        data101.setDisposeType("1");
+                        data101.setCommunityId(data.getCommunityId());
+                        //低压
+                        if(Integer.valueOf(braceletUserDataDO.getPdp())<Integer.valueOf(data.getLowTensionFloor()))
+                        {
+                            //低压报警过低
+                            data101.setEarlyWarningText("血压低压(舒张压)低于设定值");
+                            data101.setEarlyWarningType("1");
+                            braceletUserDataDO.setIsAbnormal("1");
+                            braceletEarlyWarningService.addBracelet(data101);
+                        }
+
+                        if(Integer.valueOf(braceletUserDataDO.getPdp())>Integer.valueOf(data.getLowTensionUpperLimit()))
+                        {
+                            //低压报警过高
+                            data101.setEarlyWarningText("血压低压(舒张压)高于设定值");
+                            data101.setEarlyWarningType("1");
+                            braceletUserDataDO.setIsAbnormal("1");
+                            braceletEarlyWarningService.addBracelet(data101);
+                        }
+
+                        if(Integer.valueOf(braceletUserDataDO.getPcp())<Integer.valueOf(data.getHighPressureFloor()))
+                        {
+                            //高压报警过低
+                            data101.setEarlyWarningText("血压高压(收缩压)低于设定值");
+                            data101.setEarlyWarningType("1");
+                            braceletUserDataDO.setIsAbnormal("1");
+                            braceletEarlyWarningService.addBracelet(data101);
+                        }
+
+                        if(Integer.valueOf(braceletUserDataDO.getPcp())>Integer.valueOf(data.getHighPressureUpperLimit()))
+                        {
+                            //高压报警过高
+                            data101.setEarlyWarningText("血压高压(收缩压)高于设定值");
+                            data101.setEarlyWarningType("1");
+                            braceletUserDataDO.setIsAbnormal("1");
+                            braceletEarlyWarningService.addBracelet(data101);
+                        }
+
+                        if(Integer.valueOf(braceletUserDataDO.getPm())<Integer.valueOf(data.getLowHeartRate()))
+                        {
+                            //心率报警过低
+                            data101.setEarlyWarningText("心率低于设定值");
+                            data101.setEarlyWarningType("2");
+                            braceletUserDataDO.setIsAbnormal("1");
+                            braceletEarlyWarningService.addBracelet(data101);
+                        }
+
+                        if(Integer.valueOf(braceletUserDataDO.getPm())>Integer.valueOf(data.getTallHeartRate()))
+                        {
+                            //心率报警过高
+                            data101.setEarlyWarningText("心率高于设定值");
+                            data101.setEarlyWarningType("2");
+                            braceletUserDataDO.setIsAbnormal("1");
+                            braceletEarlyWarningService.addBracelet(data101);
+                        }
+
+
+                        break;
+                    //体温数据
+                    case "107":
+                        BraceletEarlyWarningDO data107=new BraceletEarlyWarningDO();
+                        data107.setEquipmentNumber(braceletUserDataDO.getDeviceId());
+                        data107.setDisposeType("1");
+                        data107.setCommunityId(data.getCommunityId());
+                        if(Double.valueOf(braceletUserDataDO.getEtg())<Double.valueOf(data.getLowAnimalHeat()))
+                        {
+                            //体温报警过低
+                            data107.setEarlyWarningText("体温低于设定值");
+                            data107.setEarlyWarningType("3");
+                            braceletUserDataDO.setIsAbnormal("1");
+                            braceletEarlyWarningService.addBracelet(data107);
+                        }
+
+                        if(Double.valueOf(braceletUserDataDO.getEtg())>Double.valueOf(data.getTallAnimalHeat()))
+                        {
+                            //体温报警过高
+                            data107.setEarlyWarningText("体温高于设定值");
+                            data107.setEarlyWarningType("3");
+                            braceletUserDataDO.setIsAbnormal("1");
+                            braceletEarlyWarningService.addBracelet(data107);
+                        }
+                        break;
+                    //心率数据
+                    case "112":
+                        BraceletEarlyWarningDO data112=new BraceletEarlyWarningDO();
+                        data112.setEquipmentNumber(braceletUserDataDO.getDeviceId());
+                        data112.setDisposeType("1");
+                        data112.setCommunityId(data.getCommunityId());
+                        if(Integer.valueOf(braceletUserDataDO.getPm())<Integer.valueOf(data.getLowHeartRate()))
+                        {
+                            //心率报警过低
+                            data112.setEarlyWarningText("心率低于设定值");
+                            data112.setEarlyWarningType("2");
+                            braceletUserDataDO.setIsAbnormal("1");
+                            braceletEarlyWarningService.addBracelet(data112);
+                        }
+
+                        if(Integer.valueOf(braceletUserDataDO.getPm())>Integer.valueOf(data.getTallHeartRate()))
+                        {
+                            //心率报警过高
+                            data112.setEarlyWarningText("心率高于设定值");
+                            data112.setEarlyWarningType("2");
+                            braceletUserDataDO.setIsAbnormal("1");
+                            braceletEarlyWarningService.addBracelet(data112);
+                        }
+                        break;
+
+                    //sos数据
+                    case "201":
+                        BraceletEarlyWarningDO data201=new BraceletEarlyWarningDO();
+                        data201.setEquipmentNumber(braceletUserDataDO.getDeviceId());
+                        data201.setDisposeType("1");
+                        data201.setCommunityId(data.getCommunityId());
+                        data201.setEarlyWarningText("SOS预警");
+                        data201.setEarlyWarningType("4");
+                        braceletUserDataDO.setIsAbnormal("1");
+                        braceletEarlyWarningService.addBracelet(data201);
+                        break;
+                }
+            }
+            return R.ok(braceletUserDataService.upBracelet(braceletUserDataDO));
+        }
+
+    }
+
+
+    /**
+     * 新增数据
+     *
+     * @param braceletUserDataDO
+     *            请求参数
+     * @return 新增数据
+     */
+    @PostMapping("/upBracelet")
+    public R upBracelet(@RequestBody BraceletUserDataDO braceletUserDataDO)
+    {
+        return R.ok(braceletUserDataService.upBracelet(braceletUserDataDO));
+    }
+
+
+    /**
+     * 新增数据
+     *
+     * @param id
+     *            请求参数
+     * @return 新增数据
+     */
+    @DeleteMapping("/delectData")
+    public R delectData(@RequestParam("id") String id)
+    {
+        return R.ok(braceletUserDataService.delectData(id));
+    }
+
+    /**
+     * 分页查询  数据
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    @GetMapping("/getData")
+    public R<IPage<BraceletUserDataDO>> getData(@RequestParam("pageNum") Integer pageNum,
+                                                @RequestParam("pageSize") Integer pageSize,
+                                                @RequestParam(value = "communityId",required = false)  String communityId,
+                                                @RequestParam(value = "userName",required = false) String userName,
+                                                @RequestParam(value = "phone",required = false) String phone)
+
+
+    {
+        Page page = new Page<>();
+        page.setCurrent(pageNum);
+        page.setSize(pageSize);
+        return R.ok(braceletUserDataService.getData(page,communityId,userName,phone));
+    }
+
+
+    /**
+     * 设备用户详情数据
+     * @return
+     */
+    @GetMapping("/getDetails")
+    public R<BraceletUserDataDO> getDetails(@RequestParam("deviceID") String deviceID)
+    {
+        return R.ok(braceletUserDataService.getDetails(deviceID));
+    }
+
+
+    /**
+     * 新增手环预警数据
+     * @param braceletEarlyWarningDO
+     * @return
+     */
+    @PostMapping("/addEarlyWarning")
+    public R addEarlyWarning(@RequestBody BraceletEarlyWarningDO braceletEarlyWarningDO) {
+        return R.ok(braceletEarlyWarningService.addBracelet(braceletEarlyWarningDO));
+    }
+
+    /**
+     * 编辑手环预警数据
+     * @param braceletEarlyWarningDO
+     * @return
+     */
+    @PostMapping("/upEarlyWarning")
+    public R upEarlyWarning(@RequestBody BraceletEarlyWarningDO braceletEarlyWarningDO) {
+        return R.ok(braceletEarlyWarningService.upBracelet(braceletEarlyWarningDO));
+    }
+
+    /**
+     * 删除预警数据
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/delectEarlyWarning")
+    public R delectEarlyWarning(@RequestParam("id") String id) {
+        return R.ok(braceletEarlyWarningService.delectData(id));
+    }
+
+    /**
+     * 获取预警数据
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/getEarlyWarningList")
+    public R<IPage<BraceletEarlyWarningDO>> getList(@RequestParam("pageNum") Integer pageNum,
+                                                    @RequestParam("pageSize") Integer pageSize,
+                                                    @RequestParam(value = "communityId",required = false)  String communityId,
+                                                    @RequestParam(value = "equipmentNumber",required = false)  String equipmentNumber,
+                                                    @RequestParam(value = "disposeUserId",required = false)  String disposeUserId,
+                                                    @RequestParam(value = "type",required = false)  String type,
+                                                    @RequestParam(value = "userName",required = false)  String userName,
+                                                    @RequestParam(value = "phone",required = false)  String phone)
+    {
+        Page page=new Page();
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        return R.ok(braceletEarlyWarningService.getList(page,communityId,equipmentNumber,disposeUserId,type,userName,phone));
+    }
+
+    /**
+     * 获取单个预警信息详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/getEarlyWarningDetails")
+    public R<BraceletEarlyWarningDO> getEarlyWarningDetails(@RequestParam("id") String id)
+    {
+        return R.ok(braceletEarlyWarningService.getDetails(id));
+    }
+
+
+    /**
+     * 后台处理接口
+     * @return
+     */
+    @PostMapping("/dispose")
+    public R dispose(@RequestBody BraceletEarlyWarningDO braceletEarlyWarningDO)
+    {
+        if(StringUtils.isEmpty(braceletEarlyWarningDO.getId()))
+        {
+            return R.fail("id不能为空");
+        }
+
+        //忽略
+        if(StringUtils.equals(braceletEarlyWarningDO.getDisposeType(),"4"))
+        {
+            BraceletEarlyWarningDO da=new BraceletEarlyWarningDO();
+            da.setDisposeType("4");
+            da.setId(braceletEarlyWarningDO.getId());
+
+            BraceletEarlyWarningDO da2=braceletEarlyWarningService.getDetails(braceletEarlyWarningDO.getId());
+            BraceletUserDataDO data=new BraceletUserDataDO();
+            data.setIsAbnormal("0");
+            data.setDeviceId(da2.getEquipmentNumber());
+            braceletUserDataService.upBracelet(data);
+
+            return R.ok(braceletEarlyWarningService.upBracelet(da));
+        }
+
+        if(StringUtils.isEmpty(braceletEarlyWarningDO.getDisposeUserId()))
+        {
+            return R.fail("处理人员不能为空");
+        }
+        braceletEarlyWarningDO.setDisposeType("3");
+
+        return R.ok(braceletEarlyWarningService.upBracelet(braceletEarlyWarningDO));
+    }
+
+
+
+    /**
+     * 微信处理接口
+     * @param braceletEarlyWarningDO
+     * @return
+     */
+    @PostMapping("/WXdispose")
+    public R  WXdispose(@RequestBody BraceletEarlyWarningDO braceletEarlyWarningDO)
+    {
+        //
+        if(braceletEarlyWarningService.WXdispose(braceletEarlyWarningDO)>0)
+        {
+            BraceletEarlyWarningDO da=braceletEarlyWarningService.getDetails(braceletEarlyWarningDO.getId());
+            BraceletUserDataDO data=new BraceletUserDataDO();
+            data.setIsAbnormal("0");
+            data.setDeviceId(da.getEquipmentNumber());
+            braceletUserDataService.upBracelet(data);
+            return R.ok();
+        }
+        else
+        {
+            return R.fail("操作失败");
+        }
+
+    }
+
+
+
+    /**
+     * 处理人
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/conductorList")
+    public R<List<SysUser>> conductorList(@RequestParam("communityId") String communityId)
+    {
+        return R.ok(braceletUserDataService.conductorList(communityId));
+    }
+
+
+
+    /**********************************************************************************************************************************************
+     *
+     *                                   大屏居家养老
+     *
+     **********************************************************************************************************************************************/
+
+    /**
+     * 手环人数
+     * @return
+     */
+    @GetMapping("/getUserNum")
+    public R getUserNum(@RequestParam("communityId") String communityId)
+    {
+        return R.ok(braceletUserDataService.getUserNum(communityId));
+    }
+
+
+    /**
+     * 手环定位数据
+     */
+    @GetMapping("/getUserList")
+    public R  getUserList(@RequestParam("communityId") String communityId)
+    {
+        return R.ok(braceletUserDataService.getUserList(communityId));
+    }
+
+
+    /**
+     * 获取手环预警次数
+     * @return
+     */
+    @GetMapping("/getWarningNum")
+    public R getWarningNum(@RequestParam("communityId") String communityId,
+                           @RequestParam(value = "disposeType",required = false) String disposeType)
+    {
+        //未处理
+        Integer num1=braceletEarlyWarningService.getWarningNum(communityId,"1");
+        //已处理
+        Integer num2=braceletEarlyWarningService.getWarningNum(communityId,"2");
+        //处理中
+        Integer num4=braceletEarlyWarningService.getWarningNum(communityId,"3");
+        //忽略
+        Integer num3=braceletEarlyWarningService.getWarningNum(communityId,"4");
+
+        Map<String,Integer> map=new HashMap<>();
+        map.put("untreatedNum",num1);
+        map.put("processedNum",num2);
+        map.put("ignoreNum",num3);
+        map.put("beingProcessedNum",num4);
+
+        return R.ok(map);
+    }
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/config/MyMetaObjectHandler.java b/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/config/MyMetaObjectHandler.java
new file mode 100644
index 0000000..fed9ba3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/config/MyMetaObjectHandler.java
@@ -0,0 +1,39 @@
+package com.panzhihua.service_bracelet.config;
+
+import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.ibatis.reflection.MetaObject;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 自动填充
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-11 14:23
+ **/
+@Slf4j
+@Component
+public class MyMetaObjectHandler implements MetaObjectHandler {
+    @Override
+    public void insertFill(MetaObject metaObject) {
+        log.info("start insert fill ....");
+        // this.strictInsertFill(metaObject, "createTime", Date.class, new Date()); // 起始版本 3.3.0(推荐使用)
+        // 或者
+        this.strictInsertFill(metaObject, "createAt", () -> new Date(), Date.class); // 起始版本 3.3.3(推荐)
+        this.strictInsertFill(metaObject, "updateAt", () -> new Date(), Date.class); // 起始版本 3.3.3(推荐)
+        // 或者
+        // this.fillStrategy(metaObject, "createTime", LocalDateTime.now()); // 也可以使用(3.3.0 该方法有bug)
+    }
+
+    @Override
+    public void updateFill(MetaObject metaObject) {
+        log.info("start update fill ....");
+        // this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); // 起始版本 3.3.0(推荐)
+        // 或者
+        this.strictUpdateFill(metaObject, "updateAt", () -> new Date(), Date.class); // 起始版本 3.3.3(推荐)
+        // 或者
+        // this.fillStrategy(metaObject, "updateTime", LocalDateTime.now()); // 也可以使用(3.3.0 该方法有bug)
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/config/MybatisPlusConfig.java b/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/config/MybatisPlusConfig.java
new file mode 100644
index 0000000..cb8a5b9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/config/MybatisPlusConfig.java
@@ -0,0 +1,34 @@
+package com.panzhihua.service_bracelet.config;
+
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 分页
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 16:26
+ **/
+@Configuration
+public class MybatisPlusConfig {
+
+    /**
+     * 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)
+     */
+    @Bean
+    public MybatisPlusInterceptor mybatisPlusInterceptor() {
+        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2));
+        return interceptor;
+    }
+
+    @Bean
+    public ConfigurationCustomizer configurationCustomizer() {
+        return configuration -> configuration.setUseDeprecatedExecutor(false);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/config/ParamOutAspect.java b/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/config/ParamOutAspect.java
new file mode 100644
index 0000000..59ea9ee
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/config/ParamOutAspect.java
@@ -0,0 +1,125 @@
+package com.panzhihua.service_bracelet.config;
+
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.utlis.DateUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Pointcut;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.springframework.core.LocalVariableTableParameterNameDiscoverer;
+import org.springframework.util.ObjectUtils;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.lang.reflect.Method;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.IntStream;
+
+/**
+ * 应用模块名称
+ * <p>
+ * 代码描述
+ * <p>
+ * 拦截controller,输出入参、响应内容和响应时间 Copyright: Copyright (C) 2021 XXX, Inc. All rights reserved.
+ * <p>
+ * Company: 成都呐喊信息技术有限公司
+ * <p>
+ *
+ * @author manailin
+ * @since 2021/8/24 15:30
+ */
+@Slf4j
+// @Aspect
+// @Component
+public class ParamOutAspect {
+
+    /**
+     * 设定方法的执行时间限制毫秒数
+     */
+    private long maxReduceTime = 2000;
+
+    @Pointcut("execution (public * com.panzhihua.service_user.api..* (..))||execution (public * com.panzhihua.service_user.service..* (..))")
+    public void aspect() {}
+
+    /**
+     * [方法描述] 环绕通知,拦截controller,输出请求参数、响应内容和响应时间
+     * 
+     * @param joinPoint aspect()
+     * @return java.lang.Object
+     * @author manailin
+     * @date 2021/8/24 17:04
+     */
+    @Around("aspect()")
+    public Object processLog(ProceedingJoinPoint joinPoint) {
+        log.info("进入方法性能检查方法");
+        Method method = ((MethodSignature)joinPoint.getSignature()).getMethod();
+        String className = joinPoint.getSignature().getDeclaringTypeName();
+        // 获取方法名称
+        String methodName = method.getName();
+        // 获取参数名称
+        LocalVariableTableParameterNameDiscoverer paramNames = new LocalVariableTableParameterNameDiscoverer();
+        String[] params = paramNames.getParameterNames(method);
+        // 获取参数
+        Object[] args = joinPoint.getArgs();
+        // 过滤掉request和response,不能序列化
+        List<Object> filteredArgs = Arrays.stream(args)
+            .filter(arg -> (!(arg instanceof HttpServletRequest) && !(arg instanceof HttpServletResponse)))
+            .collect(Collectors.toList());
+        JSONObject rqsJson = new JSONObject();
+        rqsJson.put("rqsMethod", methodName);
+        rqsJson.put("rqsTime", DateUtils.getCurrentDateStr_MS());
+        if (ObjectUtils.isEmpty(filteredArgs)) {
+            rqsJson.put("rqsParams", null);
+        } else {
+            // 拼接请求参数
+            Map<String, Object> rqsParams = IntStream.range(0, filteredArgs.size()).boxed()
+                .collect(Collectors.toMap(j -> params[j], j -> filteredArgs.get(j)));
+            rqsJson.put("rqsParams", rqsParams);
+        }
+        log.info(className + ":" + methodName + "请求信息为:" + rqsJson.toJSONString());
+        Object resObj = null;
+        long startTime = System.currentTimeMillis();
+        try {
+            // 执行原方法
+            resObj = joinPoint.proceed();
+        } catch (Throwable e) {
+            log.error(className + ":" + methodName + "方法执行异常!", e);
+        }
+        long endTime = System.currentTimeMillis();
+        // 打印耗时的信息
+        this.printExecTime(className + ":" + methodName, startTime, endTime);
+        if (resObj != null) {
+            // 打印返回消息
+            log.info(className + ":" + methodName + "响应信息为:" + JSONObject.toJSON(resObj));
+            return resObj;
+        } else {
+            return R.ok();
+        }
+    }
+
+    /**
+     * [方法描述] 打印方法执行耗时的信息,如果超过了一定的时间,才打印
+     * 
+     * @param classAndMethodName
+     *            执行方法名
+     * @param startTime
+     *            执行开始时间
+     * @param endTime
+     *            执行结束时间
+     * @author manailin
+     * @date 2021/8/24 17:05
+     */
+    private void printExecTime(String classAndMethodName, long startTime, long endTime) {
+        long diffTime = endTime - startTime;
+        if (diffTime > maxReduceTime) {
+            log.info(classAndMethodName + " 方法执行耗时:" + diffTime + " ms");
+        }
+        // TODO 可以集成redis,将每个controller的执行时间追加到redis中,再用定时每周一次同步到库中
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/dao/BraceletEarlyWarningDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/dao/BraceletEarlyWarningDao.java
new file mode 100644
index 0000000..ada2acd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/dao/BraceletEarlyWarningDao.java
@@ -0,0 +1,77 @@
+package com.panzhihua.service_bracelet.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.bracelet.BraceletEarlyWarningDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 手环用户数据表
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 手环用户数据表
+ *
+ * @author zzj
+ * @since 2022-04-20 14:26:13
+ */
+@Mapper
+public interface BraceletEarlyWarningDao extends BaseMapper<BraceletEarlyWarningDO> {
+
+    /**
+     * 新增
+     * @return
+     */
+    Integer addBracelet(@Param("braceletEarlyWarningDO") BraceletEarlyWarningDO braceletEarlyWarningDO);
+
+    /**
+     * 更新接口
+     * @param braceletEarlyWarningDO
+     * @return
+     */
+    Integer upBracelet(@Param("braceletEarlyWarningDO") BraceletEarlyWarningDO braceletEarlyWarningDO);
+
+
+    /**
+     * 微信处理接口
+     * @param braceletEarlyWarningDO
+     * @return
+     */
+    Integer WXdispose(@Param("braceletEarlyWarningDO") BraceletEarlyWarningDO braceletEarlyWarningDO);
+
+    /**
+     * 删除数据
+     * @return
+     */
+    Integer delectData(@Param("id") String id);
+
+    /**
+     * 分页查询
+     * @param page
+     * @return
+     */
+    IPage<BraceletEarlyWarningDO> getList(Page page,
+                                          @Param("communityId") String communityId,
+                                          @Param("equipmentNumber") String equipmentNumber,
+                                          @Param("disposeUserId") String disposeUserId,
+                                          @Param("type") String type,
+                                          @Param("userName") String userName,
+                                          @Param("phone") String phone);
+
+
+
+    /**
+     * 获取单个详情
+     * @param id
+     * @return
+     */
+    BraceletEarlyWarningDO getDetails(@Param("id") String id);
+
+
+    /**
+     * 获取手环预警次数
+     * @return
+     */
+    Integer getWarningNum(@Param("communityId") String communityId,@Param("disposeType") String disposeType);
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/dao/BraceletUserDataDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/dao/BraceletUserDataDao.java
new file mode 100644
index 0000000..a3959fd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/dao/BraceletUserDataDao.java
@@ -0,0 +1,81 @@
+package com.panzhihua.service_bracelet.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.bracelet.BraceletUserDataDO;
+import com.panzhihua.service_bracelet.model.dos.SysUser;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 手环用户数据表
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 手环用户数据表
+ *
+ * @author zzj
+ * @since 2022-04-20 14:26:13
+ */
+@Mapper
+public interface BraceletUserDataDao extends BaseMapper<BraceletUserDataDO> {
+
+    /**
+     * 新增
+     * @return
+     */
+    Integer addBracelet(@Param("braceletUserDataDO") BraceletUserDataDO braceletUserDataDO);
+
+    /**
+     * 更新接口
+     * @param braceletUserDataDO
+     * @return
+     */
+    Integer upBracelet(@Param("braceletUserDataDO") BraceletUserDataDO braceletUserDataDO);
+
+    /**
+     * 删除数据
+     * @return
+     */
+    Integer delectData(@Param("deviceID") String deviceID);
+
+    /**
+     * 分页查询
+     * @param page
+     * @return
+     */
+    IPage<BraceletUserDataDO> getData(Page page,
+                                      @Param("communityId") String communityId,
+                                      @Param("userName") String userName,
+                                      @Param("phone") String phone);
+
+
+    /**
+     * 获取单个详情
+     * @param deviceID
+     * @return
+     */
+    BraceletUserDataDO getDetails(@Param("deviceID") String deviceID);
+
+    /**
+     * 处理人
+     * @param communityId
+     * @return
+     */
+    List<SysUser> conductorList(@Param("communityId") String communityId);
+
+
+    /**
+     * 手环定位数据
+     */
+    List<BraceletUserDataDO> getUserList(@Param("communityId") String communityId);
+
+    /**
+     * 手环人数
+     * @return
+     */
+    Integer getUserNum(@Param("communityId") String communityId);
+
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/model/dos/SysUser.java b/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/model/dos/SysUser.java
new file mode 100644
index 0000000..204edff
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/model/dos/SysUser.java
@@ -0,0 +1,274 @@
+package com.panzhihua.service_bracelet.model.dos;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 用户表 后台用户+小程序用户(SysUser)表实体类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 用户表 后台用户+小程序用户相关功能
+ *
+ * @author zzj
+ * @since 2022-06-10 15:34:16
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("用户表 后台用户+小程序用户")
+public class SysUser implements Serializable {
+
+    private static final long serialVersionUID = -70884515430727555L;
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    private Long userId;
+
+    /**
+     * 登录账户
+     */
+    @ApiModelProperty(value = "登录账户")
+    private String account;
+
+    /**
+     * 登录密码
+     */
+    @ApiModelProperty(value = "登录密码")
+    private String password;
+
+    /**
+     * 微信小程序唯一标识
+     */
+    @ApiModelProperty(value = "微信小程序唯一标识")
+    private String openid;
+
+    /**
+     * 会话密钥
+     */
+    @ApiModelProperty(value = "会话密钥")
+    private String sessionKey;
+
+    /**
+     * 用户在开放平台的唯一标识符
+     */
+    @ApiModelProperty(value = "用户在开放平台的唯一标识符")
+    private String unionid;
+
+    /**
+     * 手机号
+     */
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+
+    /**
+     * 昵称
+     */
+    @ApiModelProperty(value = "昵称")
+    private String nickName;
+
+    /**
+     * 真实名字
+     */
+    @ApiModelProperty(value = "真实名字")
+    private String name;
+
+    /**
+     * 社区ID
+     */
+    @ApiModelProperty(value = "社区ID")
+    private Long communityId;
+
+    /**
+     * 性别 1 男 2 女
+     */
+    @ApiModelProperty(value = "性别 1 男 2 女")
+    private Object sex;
+
+    /**
+     * 身份证号
+     */
+    @ApiModelProperty(value = "身份证号")
+    private String idCard;
+
+    /**
+     * 生日
+     */
+    @ApiModelProperty(value = "生日")
+    private Date birthday;
+
+    /**
+     * 头像
+     */
+    @ApiModelProperty(value = "头像")
+    private String imageUrl;
+
+    /**
+     * 用户类型 1 小程序 2 运营平台 3 社区平台 5 商家后台 6 网格综治APP 7 网格综治后台 8大屏 9城管后台 10 便民服务商家后台
+     */
+    @ApiModelProperty(value = "用户类型 1 小程序 2 运营平台 3 社区平台 5 商家后台 6 网格综治APP 7 网格综治后台 8大屏 9城管后台 10 便民服务商家后台")
+    private Object type;
+
+    /**
+     * 职业
+     */
+    @ApiModelProperty(value = "职业")
+    private String job;
+
+    /**
+     * 是否志愿者 0 否 1 是
+     */
+    @ApiModelProperty(value = "是否志愿者 0 否 1 是")
+    private Object isVolunteer;
+
+    /**
+     * 是否党员 0 否 1 是
+     */
+    @ApiModelProperty(value = "是否党员 0 否 1 是")
+    private Object isPartymember;
+
+    /**
+     * 1 启用 2 禁用
+     */
+    @ApiModelProperty(value = "1 启用 2 禁用")
+    private Object status;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+
+    /**
+     * 最后登录时间
+     */
+    @ApiModelProperty(value = "最后登录时间")
+    private Date lastLoginTime;
+
+    /**
+     * 标签多个用,隔开
+     */
+    @ApiModelProperty(value = "标签多个用,隔开")
+    private String tags;
+
+    /**
+     * 家庭id
+     */
+    @ApiModelProperty(value = "家庭id")
+    private Long familyId;
+
+    /**
+     * 人脸采集照片url
+     */
+    @ApiModelProperty(value = "人脸采集照片url")
+    private String faceUrl;
+
+    /**
+     * 人脸采集审核状态 0 待审核 1 审核通过 2驳回
+     */
+    @ApiModelProperty(value = "人脸采集审核状态 0 待审核 1 审核通过 2驳回")
+    private Integer faceState;
+
+    /**
+     * 驳回原因
+     */
+    @ApiModelProperty(value = "驳回原因")
+    private String rejectReson;
+
+    /**
+     * 小区id
+     */
+    @ApiModelProperty(value = "小区id")
+    private Object areaId;
+
+    /**
+     * 证件照(人相面)照片
+     */
+    @ApiModelProperty(value = "证件照(人相面)照片")
+    private String cardPhotoFront;
+
+    /**
+     * 证件照(国徽面)照片
+     */
+    @ApiModelProperty(value = "证件照(国徽面)照片")
+    private String cardPhotoBack;
+
+    /**
+     * 户口本
+     */
+    @ApiModelProperty(value = "户口本")
+    private String familyBook;
+
+    /**
+     * 连续登陆天数 每天凌晨定时任务更新
+     */
+    @ApiModelProperty(value = "连续登陆天数 每天凌晨定时任务更新")
+    private Integer continuousLandingDays;
+
+    /**
+     * 小程序首页是否显示公告(1.是 2.否)
+     */
+    @ApiModelProperty(value = "小程序首页是否显示公告(1.是 2.否)")
+    private Integer isTips;
+
+    /**
+     * 网格员工作状态(1.在岗 2.脱岗 3.已下班)
+     */
+    @ApiModelProperty(value = "网格员工作状态(1.在岗 2.脱岗 3.已下班)")
+    private Integer workStatus;
+
+    /**
+     * 网格员上班开始时间
+     */
+    @ApiModelProperty(value = "网格员上班开始时间")
+    private Integer workStartTime;
+
+    /**
+     * 网格员上班结束时间
+     */
+    @ApiModelProperty(value = "网格员上班结束时间")
+    private Integer workEndTime;
+
+    /**
+     * 高龄认证显示提示(1.是 2.否)
+     */
+    @ApiModelProperty(value = "高龄认证显示提示(1.是 2.否)")
+    private Integer bigAgeTips;
+
+    /**
+     * 明文密码
+     */
+    @ApiModelProperty(value = "明文密码")
+    private String plaintextPassword;
+
+    /**
+     * 街道id
+     */
+    @ApiModelProperty(value = "街道id")
+    private Long streetId;
+
+    /**
+     * 绑定单位
+     */
+    @ApiModelProperty(value = "绑定单位")
+    private String relationName;
+
+    private String appId;
+    /**
+     * 启用状态(1.启用 2.禁用)
+     */
+    public interface Status{
+        int YES = 1;
+        int NO = 2;
+    }
+    private Integer isAccept;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/service/BraceletEarlyWarningService.java b/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/service/BraceletEarlyWarningService.java
new file mode 100644
index 0000000..44dabbf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/service/BraceletEarlyWarningService.java
@@ -0,0 +1,58 @@
+package com.panzhihua.service_bracelet.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.bracelet.BraceletEarlyWarningDO;
+
+public interface BraceletEarlyWarningService extends IService<BraceletEarlyWarningDO>
+{
+    /**
+     * 新增
+     * @return
+     */
+    Integer addBracelet(BraceletEarlyWarningDO braceletEarlyWarningDO);
+
+    /**
+     * 更新接口
+     * @param braceletEarlyWarningDO
+     * @return
+     */
+    Integer upBracelet(BraceletEarlyWarningDO braceletEarlyWarningDO);
+
+    /**
+     * 删除数据
+     * @return
+     */
+    Integer delectData(String id);
+
+    /**
+     * 分页查询
+     * @param page
+     * @return
+     */
+    IPage<BraceletEarlyWarningDO> getList(Page page,String communityId,String equipmentNumber,String disposeUserId,String type,
+                                          String userName,String phone);
+
+    /**
+     * 获取单个详情
+     * @param id
+     * @return
+     */
+    BraceletEarlyWarningDO getDetails(String id);
+
+    /**
+     * 微信处理接口
+     * @param braceletEarlyWarningDO
+     * @return
+     */
+    Integer WXdispose(BraceletEarlyWarningDO braceletEarlyWarningDO);
+
+
+    /**
+     * 获取手环预警次数
+     * @return
+     */
+    Integer getWarningNum(String communityId,  String disposeType);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/service/BraceletUserDataService.java b/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/service/BraceletUserDataService.java
new file mode 100644
index 0000000..f8b382e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/service/BraceletUserDataService.java
@@ -0,0 +1,70 @@
+package com.panzhihua.service_bracelet.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.bracelet.BraceletUserDataDO;
+import com.panzhihua.service_bracelet.model.dos.SysUser;
+
+import java.util.List;
+
+public interface BraceletUserDataService extends IService<BraceletUserDataDO>
+{
+    /**
+     * 新增
+     * @return
+     */
+    Integer addBracelet(BraceletUserDataDO braceletUserDataDO);
+
+    /**
+     * 更新接口
+     * @param braceletUserDataDO
+     * @return
+     */
+    Integer upBracelet(BraceletUserDataDO braceletUserDataDO);
+
+    /**
+     * 删除数据
+     * @param id
+     * @return
+     */
+    Integer delectData(String id);
+
+    /**
+     * 分页查询
+     * @param page
+     * @param id
+     * @return
+     */
+    IPage<BraceletUserDataDO> getData(Page page,String communityId,
+                                      String userName,String phone);
+
+    /**
+     * 获取单个详情
+     * @param deviceID
+     * @return
+     */
+    BraceletUserDataDO getDetails(String deviceID);
+
+
+    /**
+     * 处理人
+     * @param communityId
+     * @return
+     */
+    List<SysUser> conductorList(String communityId);
+
+
+    /**
+     * 手环人数
+     * @return
+     */
+    Integer getUserNum(String communityId);
+
+
+    /**
+     * 手环定位数据
+     */
+    List<BraceletUserDataDO> getUserList(String communityId);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/service/impl/BraceletEarlyWarningImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/service/impl/BraceletEarlyWarningImpl.java
new file mode 100644
index 0000000..4cc19fd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/service/impl/BraceletEarlyWarningImpl.java
@@ -0,0 +1,54 @@
+package com.panzhihua.service_bracelet.service.impl;
+
+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.model.dtos.bracelet.BraceletEarlyWarningDO;
+import com.panzhihua.service_bracelet.dao.BraceletEarlyWarningDao;
+import com.panzhihua.service_bracelet.service.BraceletEarlyWarningService;
+import org.springframework.stereotype.Service;
+
+@Service
+public class BraceletEarlyWarningImpl extends ServiceImpl<BraceletEarlyWarningDao, BraceletEarlyWarningDO>
+        implements BraceletEarlyWarningService
+{
+
+
+    @Override
+    public Integer addBracelet(BraceletEarlyWarningDO braceletEarlyWarningDO) {
+        return baseMapper.addBracelet(braceletEarlyWarningDO);
+    }
+
+    @Override
+    public Integer upBracelet(BraceletEarlyWarningDO braceletEarlyWarningDO) {
+        return baseMapper.upBracelet(braceletEarlyWarningDO);
+    }
+
+    @Override
+    public Integer delectData(String id) {
+        return baseMapper.delectData(id);
+    }
+
+    @Override
+    public IPage<BraceletEarlyWarningDO> getList(Page page, String communityId,String equipmentNumber,
+                                                 String disposeUserId,String type,
+                                                 String userName,
+                                                 String phone) {
+        return baseMapper.getList(page,communityId,equipmentNumber,disposeUserId,type, userName, phone);
+    }
+
+    @Override
+    public BraceletEarlyWarningDO getDetails(String id) {
+        return baseMapper.getDetails(id);
+    }
+
+    @Override
+    public Integer WXdispose(BraceletEarlyWarningDO braceletEarlyWarningDO) {
+        return baseMapper.WXdispose(braceletEarlyWarningDO);
+    }
+
+    @Override
+    public Integer getWarningNum(String communityId, String disposeType) {
+        return baseMapper.getWarningNum(communityId,disposeType);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/service/impl/BraceletUserDataImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/service/impl/BraceletUserDataImpl.java
new file mode 100644
index 0000000..9ae7374
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/java/com/panzhihua/service_bracelet/service/impl/BraceletUserDataImpl.java
@@ -0,0 +1,65 @@
+package com.panzhihua.service_bracelet.service.impl;
+
+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.model.dtos.bracelet.BraceletUserDataDO;
+import com.panzhihua.service_bracelet.dao.BraceletUserDataDao;
+import com.panzhihua.service_bracelet.model.dos.SysUser;
+import com.panzhihua.service_bracelet.service.BraceletUserDataService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Slf4j
+@Service
+public class BraceletUserDataImpl extends ServiceImpl<BraceletUserDataDao, BraceletUserDataDO>
+        implements BraceletUserDataService
+{
+    @Resource
+    private BraceletUserDataDao braceletUserDataDao;
+
+
+    @Override
+    public Integer addBracelet(BraceletUserDataDO braceletUserDataDO) {
+        return braceletUserDataDao.addBracelet(braceletUserDataDO);
+    }
+
+    @Override
+    public Integer upBracelet(BraceletUserDataDO braceletUserDataDO) {
+        return braceletUserDataDao.upBracelet(braceletUserDataDO);
+    }
+
+    @Override
+    public Integer delectData(String id) {
+        return braceletUserDataDao.delectData(id);
+    }
+
+    @Override
+    public IPage<BraceletUserDataDO> getData(Page page, String communityId,String userName,String phone) {
+        return braceletUserDataDao.getData(page,communityId,userName,phone);
+    }
+
+    @Override
+    public BraceletUserDataDO getDetails(String deviceID) {
+        return braceletUserDataDao.getDetails(deviceID);
+    }
+
+    @Override
+    public List<SysUser> conductorList(String communityId) {
+        return braceletUserDataDao.conductorList(communityId);
+    }
+
+    @Override
+    public Integer getUserNum(String communityId) {
+        return braceletUserDataDao.getUserNum(communityId);
+    }
+
+    @Override
+    public List<BraceletUserDataDO> getUserList(String communityId) {
+        return braceletUserDataDao.getUserList(communityId);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/resources/bootstrap.yml b/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..19c0bc6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/resources/bootstrap.yml
@@ -0,0 +1,38 @@
+spring:
+  application:
+    name: bracelet
+  cloud:
+    config:
+      discovery:
+        enabled: true
+        service-id: huacheng-config  # 注册中心的服务名
+      profile: ${ENV:dev}  # 指定配置文件的环境
+      uri: http://${CONFIG_URL:localhost}:6193/
+  profiles:
+    active: ${ENV:dev}
+
+eureka:
+  client:
+    service-url:
+      defaultZone: http://${EUREKA_URL:localhost}:8192/eureka
+
+#实体加密、解密、字段脱敏拦截设置
+domain:
+  decrypt: true
+  encrypt: true
+  aesKey: Ryo7M3n8loC5
+  sensitive: true
+
+management:
+  endpoints:
+    web:
+      exposure:
+        include: '*'
+
+  endpoint:
+    health:
+      show-details: always
+
+  metrics:
+    tags:
+      application: bracelet
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/resources/logback-spring.xml b/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..73c3db1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/resources/logback-spring.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration debug="false">
+    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
+    <springProfile name="dev">
+        <property name="LOG_HOME" value="F:/log" />
+    </springProfile>
+       <springProfile name="test">
+        <property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    </springProfile>
+<property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    <!-- 控制台输出 -->
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+    </appender>
+    <!-- 按照每天生成日志文件 -->
+    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!--日志文件输出的文件名-->
+            <FileNamePattern>${LOG_HOME}/service_grid.log.%d{yyyy-MM-dd}.log</FileNamePattern>
+            <!--日志文件保留天数-->
+            <MaxHistory>30</MaxHistory>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+        <!--日志文件最大的大小-->
+        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <MaxFileSize>10MB</MaxFileSize>
+        </triggeringPolicy>
+    </appender>
+
+    <!--myibatis log configure-->
+    <logger name="com.apache.ibatis" level="TRACE"/>
+    <logger name="java.sql.Connection" level="DEBUG"/>
+    <logger name="java.sql.Statement" level="DEBUG"/>
+    <logger name="java.sql.PreparedStatement" level="DEBUG"/>
+    <logger name="com.panzhihua.service_community" level="DEBUG"/>
+
+    <!-- 日志输出级别 -->
+    <root level="DEBUG">
+        <appender-ref ref="STDOUT" />
+    </root>
+    <root level="INFO">
+        <appender-ref ref="STDOUT" />
+        <appender-ref ref="FILE" />
+    </root>
+</configuration>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/resources/mapper/BraceletEarlyWarning.xml b/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/resources/mapper/BraceletEarlyWarning.xml
new file mode 100644
index 0000000..590e92b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/resources/mapper/BraceletEarlyWarning.xml
@@ -0,0 +1,250 @@
+<?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_bracelet.dao.BraceletEarlyWarningDao">
+
+    <resultMap type="com.panzhihua.common.model.dtos.bracelet.BraceletEarlyWarningDO" id="itemMap">
+        <result property="id" column="id"/>
+        <result property="creationTime" column="creation_time"/>
+        <result property="disposeTime" column="dispose_time"/>
+        <result property="disposeType" column="dispose_type"/>
+        <result property="disposeUserId" column="dispose_user_id"/>
+        <result property="equipmentNumber" column="equipment_number"/>
+        <result property="earlyWarningType" column="early_warning_type"/>
+        <result property="earlyWarningText" column="early_warning_text"/>
+        <result property="disposeImgurl" column="dispose_imgurl"/>
+        <result property="disposeText" column="dispose_text"/>
+        <result property="disposeResult" column="dispose_result"/>
+        <result property="communityId" column="community_id"/>
+        <result property="updataTime" column="updata_time"/>
+        <result property="disposeVideoUrl" column="dispose_video_url"/>
+
+    </resultMap>
+
+    <select id="getList" resultMap="itemMap" >
+        select
+            id,
+            creation_time,
+            dispose_time,
+            dispose_type,
+            dispose_user_id,
+            (select name from sys_user where user_id=dispose_user_id) as disposeUserName,
+            equipment_number,
+            (select bin_phone from bracelet_user_data where device_id=equipment_number) as binPhone,
+            (select user_name from bracelet_user_data where device_id=equipment_number) as userName,
+            (select address from bracelet_user_data where device_id=equipment_number) as address,
+            early_warning_type,
+            early_warning_text,
+            dispose_imgurl,
+            dispose_text,
+            dispose_result,
+            community_id,
+            updata_time,
+            dispose_video_url
+        from bracelet_early_warning
+        <where>
+            1=1
+            <if test="communityId != null  ">
+                and community_id=#{communityId}
+            </if>
+            <if test="equipmentNumber !=null  ">
+                and equipment_number like concat('%',#{equipmentNumber},'%')
+            </if>
+            <if test="disposeUserId !=null and disposeUserId != '' ">
+                and dispose_user_id =#{disposeUserId}
+            </if>
+            <if test="type !=null and type != '' ">
+                and dispose_type =#{type}
+            </if>
+            <if test="userName !=null and userName != '' ">
+                and equipment_number in(select device_id from bracelet_user_data where user_name like concat('%',#{userName},'%'))
+            </if>
+            <if test="phone !=null and phone != '' ">
+                and equipment_number in(select device_id from bracelet_user_data where bin_phone like concat('%',#{phone},'%'))
+            </if>
+
+
+        </where>
+    </select>
+
+    <select id="getDetails" resultMap="itemMap" >
+        select
+            id,
+            creation_time,
+            dispose_time,
+            dispose_type,
+            dispose_user_id,
+            equipment_number,
+            (select name from sys_user where user_id=dispose_user_id) as disposeUserName,
+            (select bin_phone from bracelet_user_data where device_id=equipment_number) as binPhone,
+            (select user_name from bracelet_user_data where device_id=equipment_number) as userName,
+            (select address from bracelet_user_data where device_id=equipment_number) as address,
+            early_warning_type,
+            early_warning_text,
+            dispose_imgurl,
+            dispose_text,
+            dispose_result,
+            community_id,
+            updata_time,
+            dispose_video_url
+        from bracelet_early_warning
+        <where>
+            <if test="id != null and id != '' ">
+                id=#{id}
+            </if>
+        </where>
+    </select>
+
+    <insert id="addBracelet" parameterType="com.panzhihua.common.model.dtos.bracelet.BraceletEarlyWarningDO" >
+        insert into bracelet_early_warning
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="braceletEarlyWarningDO.disposeType != null">
+                `dispose_type`,
+            </if>
+            <if test="braceletEarlyWarningDO.disposeUserId != null">
+                `dispose_user_id`,
+            </if>
+            <if test="braceletEarlyWarningDO.equipmentNumber != null">
+                `equipment_number`,
+            </if>
+            <if test="braceletEarlyWarningDO.earlyWarningType != null">
+                `early_warning_type`,
+            </if>
+            <if test="braceletEarlyWarningDO.earlyWarningText != null">
+                `early_warning_text`,
+            </if>
+            <if test="braceletEarlyWarningDO.disposeImgurl != null">
+                `dispose_imgurl`,
+            </if>
+            <if test="braceletEarlyWarningDO.disposeText != null">
+                `dispose_text`,
+            </if>
+            <if test="braceletEarlyWarningDO.disposeResult != null">
+                `dispose_result`,
+            </if>
+            <if test="braceletEarlyWarningDO.communityId != null">
+                `community_id`,
+            </if>
+            <if test="braceletEarlyWarningDO.disposeVideoUrl != null">
+                `dispose_video_url`,
+            </if>
+            creation_time
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="braceletEarlyWarningDO.disposeType != null">
+                #{braceletEarlyWarningDO.disposeType},
+            </if>
+            <if test="braceletEarlyWarningDO.disposeUserId != null">
+                #{braceletEarlyWarningDO.disposeUserId},
+            </if>
+            <if test="braceletEarlyWarningDO.equipmentNumber != null">
+                #{braceletEarlyWarningDO.equipmentNumber},
+            </if>
+            <if test="braceletEarlyWarningDO.earlyWarningType != null">
+                #{braceletEarlyWarningDO.earlyWarningType},
+            </if>
+            <if test="braceletEarlyWarningDO.earlyWarningText != null">
+                #{braceletEarlyWarningDO.earlyWarningText},
+            </if>
+            <if test="braceletEarlyWarningDO.disposeImgurl != null">
+                #{braceletEarlyWarningDO.disposeImgurl},
+            </if>
+            <if test="braceletEarlyWarningDO.disposeText != null">
+                #{braceletEarlyWarningDO.disposeText},
+            </if>
+            <if test="braceletEarlyWarningDO.disposeResult != null">
+                #{braceletEarlyWarningDO.disposeResult},
+            </if>
+            <if test="braceletEarlyWarningDO.communityId != null">
+                #{braceletEarlyWarningDO.communityId},
+            </if>
+            <if test="braceletEarlyWarningDO.disposeVideoUrl != null">
+                #{braceletEarlyWarningDO.disposeVideoUrl},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="upBracelet" parameterType="com.panzhihua.common.model.dtos.bracelet.BraceletEarlyWarningDO" >
+        update bracelet_early_warning
+        <set>
+            <if test="braceletEarlyWarningDO.disposeType != null">
+                `dispose_type`=#{braceletEarlyWarningDO.disposeType},
+            </if>
+            <if test="braceletEarlyWarningDO.disposeUserId != null">
+                `dispose_user_id`=#{braceletEarlyWarningDO.disposeUserId},
+            </if>
+            <if test="braceletEarlyWarningDO.equipmentNumber != null">
+                `equipment_number`=#{braceletEarlyWarningDO.equipmentNumber},
+            </if>
+            <if test="braceletEarlyWarningDO.earlyWarningType != null">
+                `early_warning_type`=#{braceletEarlyWarningDO.earlyWarningType},
+            </if>
+            <if test="braceletEarlyWarningDO.earlyWarningText != null">
+                `early_warning_text`=#{braceletEarlyWarningDO.earlyWarningText},
+            </if>
+            <if test="braceletEarlyWarningDO.disposeImgurl != null">
+                `dispose_imgurl`=#{braceletEarlyWarningDO.disposeImgurl},
+            </if>
+            <if test="braceletEarlyWarningDO.disposeText != null">
+                `dispose_text`=#{braceletEarlyWarningDO.disposeText},
+            </if>
+            <if test="braceletEarlyWarningDO.disposeResult != null">
+                `dispose_result`=#{braceletEarlyWarningDO.disposeResult},
+            </if>
+            <if test="braceletEarlyWarningDO.communityId != null">
+                `community_id`=#{braceletEarlyWarningDO.communityId},
+            </if>
+            <if test="braceletEarlyWarningDO.disposeVideoUrl != null">
+                `dispose_video_url`=#{braceletEarlyWarningDO.disposeVideoUrl},
+            </if>
+            updata_time=sysdate()
+        </set>
+        where id = #{braceletEarlyWarningDO.id}
+    </update>
+
+    <update id="WXdispose" parameterType="com.panzhihua.common.model.dtos.bracelet.BraceletEarlyWarningDO" >
+        update bracelet_early_warning
+        <set>
+            <if test="braceletEarlyWarningDO.disposeType != null">
+                `dispose_type`=#{braceletEarlyWarningDO.disposeType},
+            </if>
+            <if test="braceletEarlyWarningDO.disposeImgurl != null">
+                `dispose_imgurl`=#{braceletEarlyWarningDO.disposeImgurl},
+            </if>
+            <if test="braceletEarlyWarningDO.disposeText != null">
+                `dispose_text`=#{braceletEarlyWarningDO.disposeText},
+            </if>
+            <if test="braceletEarlyWarningDO.disposeVideoUrl != null">
+                `dispose_video_url`=#{braceletEarlyWarningDO.disposeVideoUrl},
+            </if>
+            dispose_time=sysdate()
+        </set>
+        where id = #{braceletEarlyWarningDO.id}
+    </update>
+
+    <delete id="delectData" parameterType="java.lang.String" >
+        delete from bracelet_early_warning
+        where id = #{id}
+    </delete>
+
+
+
+
+
+
+    <select id="getWarningNum" resultType="Integer">
+        select count(id) from bracelet_early_warning
+        <where>
+            1=1
+            <if test=" communityId != null and communityId!=''  ">
+                and community_id=#{communityId}
+            </if>
+            <if test=" disposeType != null and disposeType!=''  ">
+                and dispose_type=#{disposeType}
+            </if>
+        </where>
+    </select>
+
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/resources/mapper/BraceletUserDataMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/resources/mapper/BraceletUserDataMapper.xml
new file mode 100644
index 0000000..e424adb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_bracelet/src/main/resources/mapper/BraceletUserDataMapper.xml
@@ -0,0 +1,641 @@
+<?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_bracelet.dao.BraceletUserDataDao">
+
+    <resultMap type="com.panzhihua.common.model.dtos.bracelet.BraceletUserDataDO" id="itemMap">
+        <result property="id" column="id"/>
+        <result property="deviceType" column="device_type"/>
+        <result property="deviceModel" column="device_model"/>
+        <result property="deviceId" column="device_id"/>
+        <result property="mobile" column="mobile"/>
+        <result property="dataType" column="data_type"/>
+        <result property="dataId" column="data_id"/>
+        <result property="time" column="time"/>
+        <result property="pm" column="pm"/>
+        <result property="pcp" column="pcp"/>
+        <result property="pdp" column="pdp"/>
+        <result property="etg" column="etg"/>
+        <result property="step" column="step"/>
+        <result property="lng" column="lng"/>
+        <result property="lat" column="lat"/>
+        <result property="mode" column="mode"/>
+        <result property="elec" column="elec"/>
+        <result property="onoff" column="onoff"/>
+        <result property="creationTime" column="creation_time"/>
+        <result property="updataTime" column="updata_time"/>
+        <result property="communityId" column="community_id"/>
+
+        <result property="userName" column="user_name"/>
+        <result property="ageNum" column="age_num"/>
+        <result property="sex" column="sex"/>
+        <result property="identityCard" column="identity_card"/>
+        <result property="address" column="address"/>
+        <result property="addLng" column="add_lng"/>
+        <result property="addLat" column="add_lat"/>
+        <result property="binPhone" column="bin_phone"/>
+        <result property="emergencyContact" column="emergency_contact"/>
+
+        <result property="lowHeartRate" column="low_heart_rate"/>
+        <result property="tallHeartRate" column="tall_heart_rate"/>
+        <result property="lowAnimalHeat" column="low_animal_heat"/>
+        <result property="tallAnimalHeat" column="tall_animal_heat"/>
+        <result property="lowTensionFloor" column="low_tension_floor"/>
+        <result property="lowTensionUpperLimit" column="low_tension_upper_limit"/>
+        <result property="highPressureFloor" column="high_pressure_floor"/>
+        <result property="highPressureUpperLimit" column="high_pressure_upper_limit"/>
+
+        <result property="isAbnormal" column="is_abnormal"/>
+        <result property="sgtel1" column="sgtel1"/>
+        <result property="sgtel2" column="sgtel2"/>
+        <result property="sgtel3" column="sgtel3"/>
+
+        <result property="detailAddress" column="detail_address"/>
+
+    </resultMap>
+
+
+    <select id="getData" resultMap="itemMap" >
+        select
+            id,
+            device_type,
+            device_model,
+            device_id,
+            mobile,
+            data_type,
+            data_id,
+            time,
+            pm,
+            pcp,
+            pdp,
+            etg,
+            step,
+            lng,
+            lat,
+            mode,
+            elec,
+            onoff,
+            community_id,
+            creation_time,
+            updata_time,
+            user_name,
+            age_num,
+            sex,
+            identity_card,
+            address,
+            add_lng,
+            add_lat,
+            bin_phone,
+            emergency_contact,
+            low_heart_rate,
+            tall_heart_rate,
+            low_animal_heat,
+            tall_animal_heat,
+            low_tension_floor,
+            low_tension_upper_limit,
+            high_pressure_floor,
+            high_pressure_upper_limit,
+            is_abnormal,
+            sgtel1,
+            sgtel2,
+            sgtel3,
+            detail_address
+        from bracelet_user_data
+        <where>
+            1=1
+            <if test="communityId != null and communityId != &quot;&quot; ">
+                and community_id=#{communityId}
+            </if>
+            <if test="userName !=null and communityId != &quot;&quot; ">
+                and user_name like concat('%',#{userName},'%')
+            </if>
+            <if test="phone !=null and phone != &quot;&quot; ">
+                and bin_phone like concat('%',#{phone},'%')
+            </if>
+        </where>
+    </select>
+
+    <select id="getDetails" resultMap="itemMap" >
+        select
+            id,
+            device_type,
+            device_model,
+            device_id,
+            mobile,
+            data_type,
+            data_id,
+            time,
+            pm,
+            pcp,
+            pdp,
+            etg,
+            step,
+            lng,
+            lat,
+            mode,
+            elec,
+            onoff,
+            community_id,
+            creation_time,
+            updata_time,
+            user_name,
+            age_num,
+            sex,
+            identity_card,
+            address,
+            add_lng,
+            add_lat,
+            bin_phone,
+            emergency_contact,
+            low_heart_rate,
+            tall_heart_rate,
+            low_animal_heat,
+            tall_animal_heat,
+            low_tension_floor,
+            low_tension_upper_limit,
+            high_pressure_floor,
+            high_pressure_upper_limit,
+            is_abnormal,
+            sgtel1,
+            sgtel2,
+            sgtel3,
+            detail_address
+        from bracelet_user_data
+        <where>
+            <if test="deviceID != null">
+                device_id=#{deviceID}
+            </if>
+        </where>
+    </select>
+
+    <insert id="addBracelet" parameterType="com.panzhihua.common.model.dtos.bracelet.BraceletUserDataDO" >
+        insert into bracelet_user_data
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="braceletUserDataDO.deviceType != null">
+                `device_type`,
+            </if>
+            <if test="braceletUserDataDO.deviceModel != null">
+                `device_model`,
+            </if>
+            <if test="braceletUserDataDO.detailAddress != null">
+                `detail_address`,
+            </if>
+            <if test="braceletUserDataDO.deviceId != null">
+                `device_id`,
+            </if>
+            <if test="braceletUserDataDO.mobile != null">
+                `mobile`,
+            </if>
+            <if test="braceletUserDataDO.dataType != null">
+                `data_type`,
+            </if>
+            <if test="braceletUserDataDO.dataId != null">
+                `data_id`,
+            </if>
+            <if test="braceletUserDataDO.time != null">
+                `time`,
+            </if>
+            <if test="braceletUserDataDO.pm != null">
+                `pm`,
+            </if>
+            <if test="braceletUserDataDO.pcp != null">
+                `pcp`,
+            </if>
+            <if test="braceletUserDataDO.pdp != null">
+                `pdp`,
+            </if>
+            <if test="braceletUserDataDO.etg != null">
+                `etg`,
+            </if>
+            <if test="braceletUserDataDO.step != null">
+                `step`,
+            </if>
+            <if test="braceletUserDataDO.lng != null">
+                `lng`,
+            </if>
+            <if test="braceletUserDataDO.lat != null">
+                `lat`,
+            </if>
+            <if test="braceletUserDataDO.mode != null">
+                `mode`,
+            </if>
+            <if test="braceletUserDataDO.elec != null">
+                `elec`,
+            </if>
+            <if test="braceletUserDataDO.onoff != null">
+                `onoff`,
+            </if>
+            <if test="braceletUserDataDO.communityId != null">
+                `community_id`,
+            </if>
+
+            <if test="braceletUserDataDO.userName != null" >
+                `user_name`,
+            </if>
+            <if test="braceletUserDataDO.ageNum != null">
+                `age_num`,
+            </if>
+            <if test="braceletUserDataDO.sex != null" >
+                `sex`,
+            </if>
+            <if test="braceletUserDataDO.identityCard != null" >
+                `identity_card`,
+            </if>
+            <if test="braceletUserDataDO.address != null" >
+                `address`,
+            </if>
+            <if test="braceletUserDataDO.addLng != null" >
+                `add_lng`,
+            </if>
+            <if test="braceletUserDataDO.addLat != null" >
+                `add_lat`,
+            </if>
+            <if test="braceletUserDataDO.binPhone != null" >
+                `bin_phone`,
+            </if>
+            <if test="braceletUserDataDO.emergencyContact != null" >
+                `emergency_contact`,
+            </if>
+            <if test="braceletUserDataDO.lowHeartRate != null" >
+                `low_heart_rate`,
+            </if>
+            <if test="braceletUserDataDO.tallHeartRate != null" >
+                `tall_heart_rate`,
+            </if>
+            <if test="braceletUserDataDO.lowAnimalHeat != null" >
+                `low_animal_heat`,
+            </if>
+            <if test="braceletUserDataDO.tallAnimalHeat != null" >
+                `tall_animal_heat`,
+            </if>
+            <if test="braceletUserDataDO.lowTensionFloor != null" >
+                `low_tension_floor`,
+            </if>
+            <if test="braceletUserDataDO.lowTensionUpperLimit != null" >
+                `low_tension_upper_limit`,
+            </if>
+            <if test="braceletUserDataDO.highPressureFloor != null" >
+                `high_pressure_floor`,
+            </if>
+            <if test="braceletUserDataDO.highPressureUpperLimit != null" >
+                `high_pressure_upper_limit`,
+            </if>
+            <if test="braceletUserDataDO.isAbnormal != null" >
+                `is_abnormal`,
+            </if>
+            <if test="braceletUserDataDO.sgtel1 != null" >
+                `sgtel1`,
+            </if>
+            <if test="braceletUserDataDO.sgtel2 != null" >
+                `sgtel2`,
+            </if>
+            <if test="braceletUserDataDO.sgtel3 != null" >
+                `sgtel3`,
+            </if>
+            creation_time
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="braceletUserDataDO.deviceType != null">
+                #{braceletUserDataDO.deviceType},
+            </if>
+            <if test="braceletUserDataDO.deviceModel != null">
+                #{braceletUserDataDO.deviceModel},
+            </if>
+            <if test="braceletUserDataDO.detailAddress != null">
+                #{braceletUserDataDO.detailAddress},
+            </if>
+            <if test="braceletUserDataDO.deviceId != null">
+                #{braceletUserDataDO.deviceId},
+            </if>
+            <if test="braceletUserDataDO.mobile != null">
+                #{braceletUserDataDO.mobile},
+            </if>
+            <if test="braceletUserDataDO.dataType != null">
+                #{braceletUserDataDO.dataType},
+            </if>
+            <if test="braceletUserDataDO.dataId != null">
+                #{braceletUserDataDO.dataId},
+            </if>
+            <if test="braceletUserDataDO.time != null">
+                #{braceletUserDataDO.time},
+            </if>
+            <if test="braceletUserDataDO.pm != null">
+                #{braceletUserDataDO.pm},
+            </if>
+            <if test="braceletUserDataDO.pcp != null">
+                #{braceletUserDataDO.pcp},
+            </if>
+            <if test="braceletUserDataDO.pdp != null">
+                #{braceletUserDataDO.pdp},
+            </if>
+            <if test="braceletUserDataDO.etg != null">
+                #{braceletUserDataDO.etg},
+            </if>
+            <if test="braceletUserDataDO.step != null">
+                #{braceletUserDataDO.step},
+            </if>
+            <if test="braceletUserDataDO.lng != null">
+                #{braceletUserDataDO.lng},
+            </if>
+            <if test="braceletUserDataDO.lat != null">
+                #{braceletUserDataDO.lat},
+            </if>
+            <if test="braceletUserDataDO.mode != null">
+                #{braceletUserDataDO.mode},
+            </if>
+            <if test="braceletUserDataDO.elec != null">
+                #{braceletUserDataDO.elec},
+            </if>
+            <if test="braceletUserDataDO.onoff != null">
+                #{braceletUserDataDO.onoff},
+            </if>
+            <if test="braceletUserDataDO.communityId != null">
+                #{braceletUserDataDO.communityId},
+            </if>
+            <if test="braceletUserDataDO.userName != null" >
+                #{braceletUserDataDO.userName},
+            </if>
+            <if test="braceletUserDataDO.ageNum != null">
+                #{braceletUserDataDO.ageNum},
+            </if>
+            <if test="braceletUserDataDO.sex != null" >
+                #{braceletUserDataDO.sex},
+            </if>
+            <if test="braceletUserDataDO.identityCard != null" >
+                #{braceletUserDataDO.identityCard},
+            </if>
+            <if test="braceletUserDataDO.address != null" >
+                #{braceletUserDataDO.address},
+            </if>
+            <if test="braceletUserDataDO.addLng != null" >
+                #{braceletUserDataDO.addLng},
+            </if>
+            <if test="braceletUserDataDO.addLat != null" >
+                #{braceletUserDataDO.addLat},
+            </if>
+            <if test="braceletUserDataDO.binPhone != null" >
+                #{braceletUserDataDO.binPhone},
+            </if>
+            <if test="braceletUserDataDO.emergencyContact != null" >
+                #{braceletUserDataDO.emergencyContact},
+            </if>
+            <if test="braceletUserDataDO.lowHeartRate != null" >
+                #{braceletUserDataDO.lowHeartRate},
+            </if>
+            <if test="braceletUserDataDO.tallHeartRate != null" >
+                #{braceletUserDataDO.tallHeartRate},
+            </if>
+            <if test="braceletUserDataDO.lowAnimalHeat != null" >
+                #{braceletUserDataDO.lowAnimalHeat},
+            </if>
+            <if test="braceletUserDataDO.tallAnimalHeat != null" >
+                #{braceletUserDataDO.tallAnimalHeat},
+            </if>
+            <if test="braceletUserDataDO.lowTensionFloor != null" >
+                #{braceletUserDataDO.lowTensionFloor},
+            </if>
+            <if test="braceletUserDataDO.lowTensionUpperLimit != null" >
+                #{braceletUserDataDO.lowTensionUpperLimit},
+            </if>
+            <if test="braceletUserDataDO.highPressureFloor != null" >
+                #{braceletUserDataDO.highPressureFloor},
+            </if>
+            <if test="braceletUserDataDO.highPressureUpperLimit != null" >
+                #{braceletUserDataDO.highPressureUpperLimit},
+            </if>
+            <if test="braceletUserDataDO.isAbnormal != null" >
+                #{braceletUserDataDO.isAbnormal},
+            </if>
+            <if test="braceletUserDataDO.sgtel1 != null" >
+                #{braceletUserDataDO.sgtel1},
+            </if>
+            <if test="braceletUserDataDO.sgtel2 != null" >
+                #{braceletUserDataDO.sgtel2},
+            </if>
+            <if test="braceletUserDataDO.sgtel3 != null" >
+                #{braceletUserDataDO.sgtel3},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="upBracelet" parameterType="com.panzhihua.common.model.dtos.bracelet.BraceletUserDataDO" >
+        update bracelet_user_data
+        <set>
+            <if test="braceletUserDataDO.deviceType != null">
+                `device_type`=#{braceletUserDataDO.deviceType},
+            </if>
+            <if test="braceletUserDataDO.communityId != null">
+                `community_id`=#{braceletUserDataDO.communityId},
+            </if>
+            <if test="braceletUserDataDO.deviceModel != null">
+                `device_model`=#{braceletUserDataDO.deviceModel},
+            </if>
+            <if test="braceletUserDataDO.deviceId != null">
+                `device_id`=#{braceletUserDataDO.deviceId},
+            </if>
+            <if test="braceletUserDataDO.mobile != null">
+                `mobile`=#{braceletUserDataDO.mobile},
+            </if>
+            <if test="braceletUserDataDO.dataType != null">
+                `data_type`=#{braceletUserDataDO.dataType},
+            </if>
+            <if test="braceletUserDataDO.dataId != null">
+                `data_id`=#{braceletUserDataDO.dataId},
+            </if>
+            <if test="braceletUserDataDO.time != null">
+                `time`=#{braceletUserDataDO.time},
+            </if>
+            <if test="braceletUserDataDO.pm != null">
+                `pm`=#{braceletUserDataDO.pm},
+            </if>
+            <if test="braceletUserDataDO.pcp != null">
+                `pcp`=#{braceletUserDataDO.pcp},
+            </if>
+            <if test="braceletUserDataDO.pdp != null">
+                `pdp`=#{braceletUserDataDO.pdp},
+            </if>
+            <if test="braceletUserDataDO.etg != null">
+                `etg`=#{braceletUserDataDO.etg},
+            </if>
+            <if test="braceletUserDataDO.step != null">
+                `step`=#{braceletUserDataDO.step},
+            </if>
+            <if test="braceletUserDataDO.lng != null">
+                `lng`=#{braceletUserDataDO.lng},
+            </if>
+            <if test="braceletUserDataDO.lat != null">
+                `lat`=#{braceletUserDataDO.lat},
+            </if>
+            <if test="braceletUserDataDO.mode != null">
+                `mode`=#{braceletUserDataDO.mode},
+            </if>
+            <if test="braceletUserDataDO.elec != null">
+                `elec`=#{braceletUserDataDO.elec},
+            </if>
+            <if test="braceletUserDataDO.onoff != null">
+                `onoff`=#{braceletUserDataDO.onoff},
+            </if>
+            <if test="braceletUserDataDO.userName != null" >
+                `user_name`=#{braceletUserDataDO.userName},
+            </if>
+            <if test="braceletUserDataDO.ageNum != null">
+                `age_num`=#{braceletUserDataDO.ageNum},
+            </if>
+            <if test="braceletUserDataDO.sex != null" >
+                `sex`=#{braceletUserDataDO.sex},
+            </if>
+            <if test="braceletUserDataDO.identityCard != null" >
+                `identity_card`=#{braceletUserDataDO.identityCard},
+            </if>
+            <if test="braceletUserDataDO.address != null" >
+                `address`=#{braceletUserDataDO.address},
+            </if>
+            <if test="braceletUserDataDO.addLng != null" >
+                `add_lng`=#{braceletUserDataDO.addLng},
+            </if>
+            <if test="braceletUserDataDO.addLat != null" >
+                `add_lat`=#{braceletUserDataDO.addLat},
+            </if>
+            <if test="braceletUserDataDO.binPhone != null" >
+                `bin_phone`=#{braceletUserDataDO.binPhone},
+            </if>
+            <if test="braceletUserDataDO.emergencyContact != null" >
+                `emergency_contact`=#{braceletUserDataDO.emergencyContact},
+            </if>
+            <if test="braceletUserDataDO.detailAddress != null">
+                `detail_address`=#{braceletUserDataDO.detailAddress},
+            </if>
+            <if test="braceletUserDataDO.lowHeartRate != null" >
+                `low_heart_rate`=#{braceletUserDataDO.lowHeartRate},
+            </if>
+            <if test="braceletUserDataDO.tallHeartRate != null" >
+                `tall_heart_rate`=#{braceletUserDataDO.tallHeartRate},
+            </if>
+            <if test="braceletUserDataDO.lowAnimalHeat != null" >
+                `low_animal_heat`=#{braceletUserDataDO.lowAnimalHeat},
+            </if>
+            <if test="braceletUserDataDO.tallAnimalHeat != null" >
+                `tall_animal_heat`=#{braceletUserDataDO.tallAnimalHeat},
+            </if>
+            <if test="braceletUserDataDO.lowTensionFloor != null" >
+                `low_tension_floor`=#{braceletUserDataDO.lowTensionFloor},
+            </if>
+            <if test="braceletUserDataDO.lowTensionUpperLimit != null" >
+                `low_tension_upper_limit`=#{braceletUserDataDO.lowTensionUpperLimit},
+            </if>
+            <if test="braceletUserDataDO.highPressureFloor != null" >
+                `high_pressure_floor`=#{braceletUserDataDO.highPressureFloor},
+            </if>
+            <if test="braceletUserDataDO.highPressureUpperLimit != null" >
+                `high_pressure_upper_limit`=#{braceletUserDataDO.highPressureUpperLimit},
+            </if>
+            <if test="braceletUserDataDO.isAbnormal != null" >
+                `is_abnormal`=#{braceletUserDataDO.isAbnormal},
+            </if>
+            <if test="braceletUserDataDO.sgtel1 != null" >
+                `sgtel1`= #{braceletUserDataDO.sgtel1},
+            </if>
+            <if test="braceletUserDataDO.sgtel2 != null" >
+                `sgtel2`= #{braceletUserDataDO.sgtel2},
+            </if>
+            <if test="braceletUserDataDO.sgtel3 != null" >
+                `sgtel3`= #{braceletUserDataDO.sgtel3},
+            </if>
+            updata_time=sysdate()
+        </set>
+        where device_id = #{braceletUserDataDO.deviceId}
+    </update>
+
+    <delete id="delectData" parameterType="java.lang.String" >
+        delete from bracelet_user_data
+        where device_id = #{deviceID}
+    </delete>
+
+
+    <select id="conductorList" resultType="com.panzhihua.service_bracelet.model.dos.SysUser">
+        select sys_user.user_id,
+               sys_user.account,
+               sys_user.password,
+               sys_user.openid,
+               sys_user.session_key,
+               sys_user.unionid,
+               sys_user.phone,
+               sys_user.nick_name,
+               sys_user.community_id,
+               sys_user.sex,
+               sys_user.id_card,
+               sys_user.birthday,
+               sys_user.image_url,
+               sys_user.type,
+               sys_user.job,
+               sys_user.is_volunteer,
+               sys_user.is_partymember,
+               sys_user.status,
+               sys_user.create_at,
+               sys_user.last_login_time,
+               sys_user.tags,
+               sys_user.family_id,
+               sys_user.face_url,
+               sys_user.face_state,
+               sys_user.reject_reson,
+               sys_user.area_id,
+               sys_user.card_photo_front,
+               sys_user.card_photo_back,
+               sys_user.family_book,
+               sys_user.continuous_landing_days,
+               sys_user.is_tips,
+               sys_user.work_status,
+               sys_user.work_start_time,
+               sys_user.work_end_time,
+               sys_user.big_age_tips,
+               sys_user.plaintext_password,
+               sys_user.street_id,
+               sys_user.relation_name,
+               sys_user.app_id,
+               sys_user.is_accept,
+               sys_user.binding_check_unit_id,
+               caepm.name as name
+        from sys_user
+        LEFT JOIN com_pb_service_team as caepm on (sys_user.phone=caepm.phone)
+        WHERE sys_user.community_id=#{communityId} and sys_user.type=1 and sys_user.phone=caepm.phone
+    </select>
+
+
+
+
+
+
+
+
+    <select id="getUserList" resultMap="itemMap" >
+        select
+        id,
+        device_id,
+        lng,
+        lat,
+        community_id,
+        user_name,
+        age_num,
+        sex,
+        address,
+        add_lng,
+        add_lat,
+        bin_phone,
+        detail_address
+        from bracelet_user_data
+        <where>
+            1=1
+            <if test="communityId != null and communityId != '' ">
+                and community_id=#{communityId}
+            </if>
+        </where>
+    </select>
+
+
+    <select id="getUserNum" resultType="Integer">
+        select count(id) from bracelet_user_data where community_id=#{communityId}
+    </select>
+
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/.gitignore b/springcloud_k8s_panzhihuazhihuishequ/service_community/.gitignore
new file mode 100644
index 0000000..549e00a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/.gitignore
@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/.mvn/wrapper/MavenWrapperDownloader.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/.mvn/wrapper/MavenWrapperDownloader.java
new file mode 100644
index 0000000..a45eb6b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/.mvn/wrapper/MavenWrapperDownloader.java
@@ -0,0 +1,118 @@
+/*
+ * Copyright 2007-present the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.net.*;
+import java.io.*;
+import java.nio.channels.*;
+import java.util.Properties;
+
+public class MavenWrapperDownloader {
+
+    private static final String WRAPPER_VERSION = "0.5.6";
+    /**
+     * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
+     */
+    private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
+            + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
+
+    /**
+     * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
+     * use instead of the default one.
+     */
+    private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
+            ".mvn/wrapper/maven-wrapper.properties";
+
+    /**
+     * Path where the maven-wrapper.jar will be saved to.
+     */
+    private static final String MAVEN_WRAPPER_JAR_PATH =
+            ".mvn/wrapper/maven-wrapper.jar";
+
+    /**
+     * Name of the property which should be used to override the default download url for the wrapper.
+     */
+    private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
+
+    public static void main(String args[]) {
+        System.out.println("- Downloader started");
+        File baseDirectory = new File(args[0]);
+        System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
+
+        // If the maven-wrapper.properties exists, read it and check if it contains a custom
+        // wrapperUrl parameter.
+        File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
+        String url = DEFAULT_DOWNLOAD_URL;
+        if (mavenWrapperPropertyFile.exists()) {
+            FileInputStream mavenWrapperPropertyFileInputStream = null;
+            try {
+                mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
+                Properties mavenWrapperProperties = new Properties();
+                mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
+                url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
+            } catch (IOException e) {
+                System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
+            } finally {
+                try {
+                    if (mavenWrapperPropertyFileInputStream != null) {
+                        mavenWrapperPropertyFileInputStream.close();
+                    }
+                } catch (IOException e) {
+                    // Ignore ...
+                }
+            }
+        }
+        System.out.println("- Downloading from: " + url);
+
+        File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
+        if (!outputFile.getParentFile().exists()) {
+            if (!outputFile.getParentFile().mkdirs()) {
+                System.out.println(
+                        "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
+            }
+        }
+        System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
+        try {
+            downloadFileFromURL(url, outputFile);
+            System.out.println("Done");
+            System.exit(0);
+        } catch (Throwable e) {
+            System.out.println("- Error downloading");
+            e.printStackTrace();
+            System.exit(1);
+        }
+    }
+
+    private static void downloadFileFromURL(String urlString, File destination) throws Exception {
+        if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
+            String username = System.getenv("MVNW_USERNAME");
+            char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
+            Authenticator.setDefault(new Authenticator() {
+                @Override
+                protected PasswordAuthentication getPasswordAuthentication() {
+                    return new PasswordAuthentication(username, password);
+                }
+            });
+        }
+        URL website = new URL(urlString);
+        ReadableByteChannel rbc;
+        rbc = Channels.newChannel(website.openStream());
+        FileOutputStream fos = new FileOutputStream(destination);
+        fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
+        fos.close();
+        rbc.close();
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/.mvn/wrapper/maven-wrapper.jar b/springcloud_k8s_panzhihuazhihuishequ/service_community/.mvn/wrapper/maven-wrapper.jar
new file mode 100644
index 0000000..2cc7d4a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/.mvn/wrapper/maven-wrapper.jar
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/.mvn/wrapper/maven-wrapper.properties b/springcloud_k8s_panzhihuazhihuishequ/service_community/.mvn/wrapper/maven-wrapper.properties
new file mode 100644
index 0000000..642d572
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/.mvn/wrapper/maven-wrapper.properties
@@ -0,0 +1,2 @@
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip
+wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/mvnw b/springcloud_k8s_panzhihuazhihuishequ/service_community/mvnw
new file mode 100644
index 0000000..a16b543
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/mvnw
@@ -0,0 +1,310 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#    https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Maven Start Up Batch script
+#
+# Required ENV vars:
+# ------------------
+#   JAVA_HOME - location of a JDK home dir
+#
+# Optional ENV vars
+# -----------------
+#   M2_HOME - location of maven2's installed home dir
+#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
+#     e.g. to debug Maven itself, use
+#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+# ----------------------------------------------------------------------------
+
+if [ -z "$MAVEN_SKIP_RC" ] ; then
+
+  if [ -f /etc/mavenrc ] ; then
+    . /etc/mavenrc
+  fi
+
+  if [ -f "$HOME/.mavenrc" ] ; then
+    . "$HOME/.mavenrc"
+  fi
+
+fi
+
+# OS specific support.  $var _must_ be set to either true or false.
+cygwin=false;
+darwin=false;
+mingw=false
+case "`uname`" in
+  CYGWIN*) cygwin=true ;;
+  MINGW*) mingw=true;;
+  Darwin*) darwin=true
+    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
+    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
+    if [ -z "$JAVA_HOME" ]; then
+      if [ -x "/usr/libexec/java_home" ]; then
+        export JAVA_HOME="`/usr/libexec/java_home`"
+      else
+        export JAVA_HOME="/Library/Java/Home"
+      fi
+    fi
+    ;;
+esac
+
+if [ -z "$JAVA_HOME" ] ; then
+  if [ -r /etc/gentoo-release ] ; then
+    JAVA_HOME=`java-config --jre-home`
+  fi
+fi
+
+if [ -z "$M2_HOME" ] ; then
+  ## resolve links - $0 may be a link to maven's home
+  PRG="$0"
+
+  # need this for relative symlinks
+  while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+      PRG="$link"
+    else
+      PRG="`dirname "$PRG"`/$link"
+    fi
+  done
+
+  saveddir=`pwd`
+
+  M2_HOME=`dirname "$PRG"`/..
+
+  # make it fully qualified
+  M2_HOME=`cd "$M2_HOME" && pwd`
+
+  cd "$saveddir"
+  # echo Using m2 at $M2_HOME
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --unix "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+fi
+
+# For Mingw, ensure paths are in UNIX format before anything is touched
+if $mingw ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME="`(cd "$M2_HOME"; pwd)`"
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
+fi
+
+if [ -z "$JAVA_HOME" ]; then
+  javaExecutable="`which javac`"
+  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
+    # readlink(1) is not available as standard on Solaris 10.
+    readLink=`which readlink`
+    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
+      if $darwin ; then
+        javaHome="`dirname \"$javaExecutable\"`"
+        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
+      else
+        javaExecutable="`readlink -f \"$javaExecutable\"`"
+      fi
+      javaHome="`dirname \"$javaExecutable\"`"
+      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
+      JAVA_HOME="$javaHome"
+      export JAVA_HOME
+    fi
+  fi
+fi
+
+if [ -z "$JAVACMD" ] ; then
+  if [ -n "$JAVA_HOME"  ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+      # IBM's JDK on AIX uses strange locations for the executables
+      JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+      JAVACMD="$JAVA_HOME/bin/java"
+    fi
+  else
+    JAVACMD="`which java`"
+  fi
+fi
+
+if [ ! -x "$JAVACMD" ] ; then
+  echo "Error: JAVA_HOME is not defined correctly." >&2
+  echo "  We cannot execute $JAVACMD" >&2
+  exit 1
+fi
+
+if [ -z "$JAVA_HOME" ] ; then
+  echo "Warning: JAVA_HOME environment variable is not set."
+fi
+
+CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
+
+# traverses directory structure from process work directory to filesystem root
+# first directory with .mvn subdirectory is considered project base directory
+find_maven_basedir() {
+
+  if [ -z "$1" ]
+  then
+    echo "Path not specified to find_maven_basedir"
+    return 1
+  fi
+
+  basedir="$1"
+  wdir="$1"
+  while [ "$wdir" != '/' ] ; do
+    if [ -d "$wdir"/.mvn ] ; then
+      basedir=$wdir
+      break
+    fi
+    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
+    if [ -d "${wdir}" ]; then
+      wdir=`cd "$wdir/.."; pwd`
+    fi
+    # end of workaround
+  done
+  echo "${basedir}"
+}
+
+# concatenates all lines of a file
+concat_lines() {
+  if [ -f "$1" ]; then
+    echo "$(tr -s '\n' ' ' < "$1")"
+  fi
+}
+
+BASE_DIR=`find_maven_basedir "$(pwd)"`
+if [ -z "$BASE_DIR" ]; then
+  exit 1;
+fi
+
+##########################################################################################
+# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+# This allows using the maven wrapper in projects that prohibit checking in binary data.
+##########################################################################################
+if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Found .mvn/wrapper/maven-wrapper.jar"
+    fi
+else
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
+    fi
+    if [ -n "$MVNW_REPOURL" ]; then
+      jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    else
+      jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    fi
+    while IFS="=" read key value; do
+      case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
+      esac
+    done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Downloading from: $jarUrl"
+    fi
+    wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
+    if $cygwin; then
+      wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
+    fi
+
+    if command -v wget > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found wget ... using wget"
+        fi
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+            wget "$jarUrl" -O "$wrapperJarPath"
+        else
+            wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
+        fi
+    elif command -v curl > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found curl ... using curl"
+        fi
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+            curl -o "$wrapperJarPath" "$jarUrl" -f
+        else
+            curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
+        fi
+
+    else
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Falling back to using Java to download"
+        fi
+        javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
+        # For Cygwin, switch paths to Windows format before running javac
+        if $cygwin; then
+          javaClass=`cygpath --path --windows "$javaClass"`
+        fi
+        if [ -e "$javaClass" ]; then
+            if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Compiling MavenWrapperDownloader.java ..."
+                fi
+                # Compiling the Java class
+                ("$JAVA_HOME/bin/javac" "$javaClass")
+            fi
+            if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                # Running the downloader
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Running MavenWrapperDownloader.java ..."
+                fi
+                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
+            fi
+        fi
+    fi
+fi
+##########################################################################################
+# End of extension
+##########################################################################################
+
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
+if [ "$MVNW_VERBOSE" = true ]; then
+  echo $MAVEN_PROJECTBASEDIR
+fi
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --path --windows "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
+    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
+fi
+
+# Provide a "standardized" way to retrieve the CLI args that will
+# work with both Windows and non-Windows executions.
+MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
+export MAVEN_CMD_LINE_ARGS
+
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+exec "$JAVACMD" \
+  $MAVEN_OPTS \
+  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
+  "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
+  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/mvnw.cmd b/springcloud_k8s_panzhihuazhihuishequ/service_community/mvnw.cmd
new file mode 100644
index 0000000..c8d4337
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/mvnw.cmd
@@ -0,0 +1,182 @@
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements.  See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership.  The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License.  You may obtain a copy of the License at
+@REM
+@REM    https://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied.  See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Maven Start Up Batch script
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM M2_HOME - location of maven2's installed home dir
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
+@REM     e.g. to debug Maven itself, use
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+@REM ----------------------------------------------------------------------------
+
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
+@echo off
+@REM set title of command window
+title %0
+@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
+@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
+
+@REM set %HOME% to equivalent of $HOME
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
+
+@REM Execute a user defined script before this one
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
+if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
+:skipRcPre
+
+@setlocal
+
+set ERROR_CODE=0
+
+@REM To isolate internal variables from possible post scripts, we use another setlocal
+@setlocal
+
+@REM ==== START VALIDATION ====
+if not "%JAVA_HOME%" == "" goto OkJHome
+
+echo.
+echo Error: JAVA_HOME not found in your environment. >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:OkJHome
+if exist "%JAVA_HOME%\bin\java.exe" goto init
+
+echo.
+echo Error: JAVA_HOME is set to an invalid directory. >&2
+echo JAVA_HOME = "%JAVA_HOME%" >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+@REM ==== END VALIDATION ====
+
+:init
+
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
+@REM Fallback to current working directory if not found.
+
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
+
+set EXEC_DIR=%CD%
+set WDIR=%EXEC_DIR%
+:findBaseDir
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
+cd ..
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
+set WDIR=%CD%
+goto findBaseDir
+
+:baseDirFound
+set MAVEN_PROJECTBASEDIR=%WDIR%
+cd "%EXEC_DIR%"
+goto endDetectBaseDir
+
+:baseDirNotFound
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
+cd "%EXEC_DIR%"
+
+:endDetectBaseDir
+
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
+
+@setlocal EnableExtensions EnableDelayedExpansion
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
+
+:endReadAdditionalConfig
+
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+
+FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
+    IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
+)
+
+@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
+if exist %WRAPPER_JAR% (
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Found %WRAPPER_JAR%
+    )
+) else (
+    if not "%MVNW_REPOURL%" == "" (
+        SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    )
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Couldn't find %WRAPPER_JAR%, downloading it ...
+        echo Downloading from: %DOWNLOAD_URL%
+    )
+
+    powershell -Command "&{"^
+		"$webclient = new-object System.Net.WebClient;"^
+		"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
+		"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
+		"}"^
+		"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
+		"}"
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Finished downloading %WRAPPER_JAR%
+    )
+)
+@REM End of extension
+
+@REM Provide a "standardized" way to retrieve the CLI args that will
+@REM work with both Windows and non-Windows executions.
+set MAVEN_CMD_LINE_ARGS=%*
+
+%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
+if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
+:skipRcPost
+
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
+if "%MAVEN_BATCH_PAUSE%" == "on" pause
+
+if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
+
+exit /B %ERROR_CODE%
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/pom.xml
new file mode 100644
index 0000000..0a66279
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/pom.xml
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.panzhihua</groupId>
+        <artifactId>zhihuishequ</artifactId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <groupId>com.panzhihua</groupId>
+    <artifactId>service_community</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>service_community</name>
+    <description>社区</description>
+
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-config</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid-spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.netflix.hystrix</groupId>
+            <artifactId>hystrix-javanica</artifactId>
+        </dependency>
+        <!--jsoup爬虫爬取网页 -->
+        <dependency>
+            <groupId>org.jsoup</groupId>
+            <artifactId>jsoup</artifactId>
+            <version>1.13.1</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.panzhihua</groupId>
+            <artifactId>common</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.data</groupId>
+            <artifactId>spring-data-redis</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>commons-lang</groupId>
+            <artifactId>commons-lang</artifactId>
+            <version>2.6</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-amqp</artifactId>
+        </dependency>
+        <!--添加监控依赖包-->
+        <dependency>
+            <groupId>io.micrometer</groupId>
+            <artifactId>micrometer-registry-prometheus</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+        <!-- zxing生成二维码 -->
+        <dependency>
+            <groupId>com.google.zxing</groupId>
+            <artifactId>core</artifactId>
+            <version>3.3.3</version>
+        </dependency>
+        <!-- lbs附近定位 -->
+        <dependency>
+            <groupId>com.spatial4j</groupId>
+            <artifactId>spatial4j</artifactId>
+            <version>0.5</version>
+        </dependency>
+        <!--        微信小程序-->
+        <dependency>
+            <groupId>com.github.binarywang</groupId>
+            <artifactId>weixin-java-miniapp</artifactId>
+            <version>3.9.9.B</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.google.zxing</groupId>
+            <artifactId>javase</artifactId>
+            <version>3.3.3</version>
+        </dependency>
+    </dependencies>
+
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>2.5.0</version>
+                <configuration>
+                    <mainClass>com.panzhihua.service_community.ServiceCommunityApplication</mainClass>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>docker-maven-plugin</artifactId>
+                <version>1.2.0</version>
+                <configuration>
+                    <imageName>registry.cn-chengdu.aliyuncs.com/panzhihua/service_community:v1</imageName>
+                    <serverId></serverId>
+                    <baseImage>java</baseImage>
+                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
+                    <resources>
+                        <resource>
+                            <targetPath>/</targetPath>
+                            <directory>${project.build.directory}</directory>
+                            <include>${project.build.finalName}.jar</include>
+                        </resource>
+                    </resources>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <repositories>
+        <repository>
+            <id>spring-milestones</id>
+            <name>Spring Milestones</name>
+            <url>https://repo.spring.io/milestone</url>
+        </repository>
+    </repositories>
+
+</project>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/ServiceCommunityApplication.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/ServiceCommunityApplication.java
new file mode 100644
index 0000000..26140f7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/ServiceCommunityApplication.java
@@ -0,0 +1,23 @@
+package com.panzhihua.service_community;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.cloud.client.SpringCloudApplication;
+import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.scheduling.annotation.EnableScheduling;
+
+@SpringCloudApplication
+@EnableFeignClients(basePackages = {"com.panzhihua.common.service"})
+@EnableEurekaClient
+@EnableCircuitBreaker
+@ComponentScan({"com.panzhihua.service_community", "com.panzhihua.common"})
+@EnableScheduling
+public class ServiceCommunityApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(ServiceCommunityApplication.class, args);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ActDynTypeApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ActDynTypeApi.java
new file mode 100644
index 0000000..5757000
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ActDynTypeApi.java
@@ -0,0 +1,87 @@
+package com.panzhihua.service_community.api;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+
+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.RestController;
+
+import com.panzhihua.common.model.dtos.community.AddComActDynTypeDTO;
+import com.panzhihua.common.model.dtos.community.EditComActDynTypeDTO;
+import com.panzhihua.common.model.dtos.community.PageComActDynTypeDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.service.ComActDynTypeService;
+
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+@RestController
+@RequestMapping("/dyn/type/")
+public class ActDynTypeApi {
+
+    @Resource
+    private ComActDynTypeService comActDynTypeService;
+
+    /**
+     * 分页查询社区动态分类列表
+     * 
+     * @param comActDynTypeDTO
+     *            请求参数
+     * @return 动态分类列表
+     */
+    @PostMapping("/page")
+    public R pageDynTypeByAdmin(@RequestBody PageComActDynTypeDTO comActDynTypeDTO) {
+        return comActDynTypeService.pageDynTypeByAdmin(comActDynTypeDTO);
+    }
+
+    /**
+     * 查询社区下所有动态分类列表
+     * 
+     * @param comActDynTypeDTO
+     *            请求参数
+     * @return 动态分类列表
+     */
+    @PostMapping("/list")
+    public R getDynTypeListByAdmin(@RequestBody PageComActDynTypeDTO comActDynTypeDTO) {
+        return comActDynTypeService.getDynTypeListByAdmin(comActDynTypeDTO);
+    }
+
+    /**
+     * 添加社区动态分类
+     * 
+     * @param comActDynTypeDTO
+     *            请求参数
+     * @return 添加结果
+     */
+    @PostMapping("/add")
+    public R addDynTypeByAdmin(@RequestBody AddComActDynTypeDTO comActDynTypeDTO) {
+        return comActDynTypeService.addDynTypeByAdmin(comActDynTypeDTO);
+    }
+
+    /**
+     * 编辑社区动态分类
+     * 
+     * @param comActDynTypeDTO
+     *            请求参数
+     * @return 编辑结果
+     */
+    @PostMapping("/edit")
+    public R editDynTypeByAdmin(@RequestBody EditComActDynTypeDTO comActDynTypeDTO) {
+        return comActDynTypeService.editDynTypeByAdmin(comActDynTypeDTO);
+    }
+
+    /**
+     * 删除社区动态分类
+     * 
+     * @param ids
+     *            社区动态分类id集合
+     * @return 删除结果
+     */
+    @PostMapping("/delete")
+    public R deleteDynTypeByAdmin(@RequestBody List<Long> ids) {
+        return comActDynTypeService.deleteDynTypeByAdmin(ids);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/AdvertisementApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/AdvertisementApi.java
new file mode 100644
index 0000000..ddfb066
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/AdvertisementApi.java
@@ -0,0 +1,143 @@
+package com.panzhihua.service_community.api;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.dtos.wx.UnionpayCarWash;
+import com.panzhihua.common.service.community.CommunityService;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.model.dtos.AppletesBackstageConfigDTO;
+import com.panzhihua.common.model.dtos.advertisement.ComOpsAdvDTO;
+import com.panzhihua.common.model.dtos.advertisement.PageComOpsAdvDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.service.ComOpsAdvService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 广告
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-28 17:32
+ **/
+@Slf4j
+@RestController
+@RequestMapping("/")
+public class AdvertisementApi {
+    @Resource
+    private ComOpsAdvService comOpsAdvService;
+
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 获取广告跳转内容配置
+     *
+     * @return 跳转内容集合
+     */
+    @PostMapping("getjumpcontent")
+    public R getJumpContent() {
+        return comOpsAdvService.getJumpContent();
+    }
+
+    /**
+     * 编辑运营后台系统配置
+     *
+     * @param appletesBackstageConfigDTO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("putjumpcontent")
+    public R putJumpContent(@RequestBody AppletesBackstageConfigDTO appletesBackstageConfigDTO) {
+        return comOpsAdvService.putJumpContent(appletesBackstageConfigDTO);
+    }
+
+    /**
+     * 首页广告banner
+     *
+     * @return 广告列表
+     */
+    @PostMapping("listadvertisement")
+    public R listAdvertisement(@RequestParam("type") Integer type) {
+        return comOpsAdvService.listAdvertisement(type);
+    }
+
+    /**
+     * 新增广告
+     *
+     * @param comOpsAdvDTO
+     * @return 新增结果
+     */
+    @PostMapping("addadvertisement")
+    public R addAdvertisement(@RequestBody ComOpsAdvDTO comOpsAdvDTO) {
+        return comOpsAdvService.addAdvertisement(comOpsAdvDTO);
+    }
+
+    /**
+     * 编辑广告
+     *
+     * @param comOpsAdvDTO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("putadvertisement")
+    public R putAdvertisement(@RequestBody ComOpsAdvDTO comOpsAdvDTO) {
+        return comOpsAdvService.putAdvertisement(comOpsAdvDTO);
+    }
+
+    /**
+     * 广告位置下拉列表
+     *
+     * @return 位置集合
+     */
+    @PostMapping("listadvpos")
+    public R listadvpos() {
+        return comOpsAdvService.listadvpos();
+    }
+
+    /**
+     * 跳转内容下拉集合
+     *
+     * @return 跳转集合
+     */
+    @PostMapping("listadvjump")
+    public R listAdvjump() {
+        return comOpsAdvService.listAdvjump();
+    }
+
+    /**
+     * 分页查询广告
+     *
+     * @param pageComOpsAdvDTO
+     *            查询内容
+     * @return 查询结果 ComOpsAdvVO
+     */
+    @PostMapping("pageadvertisement")
+    R pageAdvertisement(@RequestBody PageComOpsAdvDTO pageComOpsAdvDTO) {
+        return comOpsAdvService.pageAdvertisement(pageComOpsAdvDTO);
+    }
+
+    /**
+     * 广告详情
+     *
+     * @param id
+     *            主键
+     * @return 广告内容
+     */
+    @PostMapping("detailadvertisement")
+    public R detailAdvertisement(@RequestParam("id") Long id) {
+        return comOpsAdvService.detailAdvertisement(id);
+    }
+
+    /**
+     * 删除广告
+     *
+     * @param id
+     *            主键
+     * @return 删除结果
+     */
+    @PostMapping("deleteadvertisement")
+    public R deleteAdvertisement(@RequestParam("id") Long id) {
+        return comOpsAdvService.deleteAdvertisement(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/BcRegionApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/BcRegionApi.java
new file mode 100644
index 0000000..a428338
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/BcRegionApi.java
@@ -0,0 +1,64 @@
+package com.panzhihua.service_community.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.api.ApiController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.service_community.entity.BcRegion;
+import com.panzhihua.service_community.service.BcRegionService;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 行政区划表(BcRegion)表控制层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 行政区划表相关功能
+ *
+ * @author zzj
+ * @since 2022-04-20 14:26:14
+ */
+@RestController
+@RequestMapping("bcRegion")
+public class BcRegionApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private BcRegionService bcRegionService;
+
+    /**
+     * 关键字查询
+     *
+     * @param province 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestParam("province") String province, @RequestParam("city") String city, @RequestParam("county")String country,@RequestParam("town")String town) {
+        return this.bcRegionService.pageList(province, city, country, town);
+    }
+        /**
+     * 关键字查询
+     *
+     * @param province 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("selectCommunityCodeByName")
+    public R selectCommunityCodeByName( @RequestParam("city") String city, @RequestParam("county")String country,@RequestParam("town")String town,@RequestParam("villagetr") String villagetr) {
+        return this.bcRegionService.selectCommunityCodeByName(city,country,town,villagetr);
+    }
+    @GetMapping("levelList")
+    public R levelList(@RequestParam("level")Integer level,@RequestParam("code")String code){
+        return this.bcRegionService.levelList(level,code);
+    }
+
+    @GetMapping("levelListBackstage")
+    public R levelListBackstage(){
+        return this.bcRegionService.levelListBackstage();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/BigScreenApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/BigScreenApi.java
new file mode 100644
index 0000000..8c26c93
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/BigScreenApi.java
@@ -0,0 +1,108 @@
+package com.panzhihua.service_community.api;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenStatisticAgeGenderDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenStatisticPartyActivityDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.PageBigScreenStatisticPartyOrg;
+import com.panzhihua.common.model.vos.R;
+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;
+import com.panzhihua.common.model.vos.community.bigscreen.PartyBuildingMemberVO;
+import com.panzhihua.service_community.service.BigScreenService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @ClasssName BigScreenApi
+ * @Description 网格大屏/党建
+ * @Author cedoo
+ * @Date 2021/6/15
+ * @Version 1.0
+ **/
+@Slf4j
+@RestController
+@RequestMapping("/bigscreen/party")
+public class BigScreenApi extends BaseController {
+
+    @Resource
+    private BigScreenService bigScreenService;
+
+    /**
+     * 党员党支部统计信息
+     * 
+     * @return
+     */
+    @PostMapping("/orgmembers")
+    R orgmembers(@RequestBody PageBigScreenStatisticPartyOrg pageBigScreenStatisticPartyOrg) {
+        return bigScreenService.partyOrgMembers(pageBigScreenStatisticPartyOrg);
+    }
+
+    /**
+     * 党员年龄占比、男女占比
+     * 
+     * @return
+     */
+    @PostMapping("/ageGender")
+    R<BigScreenStatisticAgeGender>
+        ageGender(@RequestBody BigScreenStatisticAgeGenderDTO bigScreenStatisticAgeGenderDTO) {
+        return bigScreenService.ageGender(bigScreenStatisticAgeGenderDTO);
+    }
+
+    /**
+     * 党建数据概览
+     * 
+     * @return
+     */
+    @PostMapping("/partybuild/{communityId}")
+    R<BigScreenStatisticPartyBuild> bigscreenPartybuild(@PathVariable("communityId") Long communityId) {
+        return bigScreenService.bigscreenPartybuild(communityId);
+    }
+
+    /**
+     * 党员活动参加用户排行榜-TOP3
+     * 
+     * @return
+     */
+    @PostMapping("/activitytopuser/{communityId}")
+    R<List<PartyBuildingMemberVO>> bigscreenPartyactivitytopuser(@PathVariable("communityId") Long communityId) {
+        return bigScreenService.bigscreenPartyactivitytopuser(communityId);
+    }
+
+    /**
+     * 党员活动
+     * 
+     * @return
+     */
+    @PostMapping("/bigscreenPartyactivity")
+    R<List<BigScreenStatisticPartyActivity>>
+        bigscreenPartyactivity(@RequestBody BigScreenStatisticPartyActivityDTO bigScreenStatisticPartyActivityDTO) {
+        return bigScreenService.bigscreenPartyactivity(bigScreenStatisticPartyActivityDTO);
+    }
+
+    /**
+     * 党员活动折线图
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/partyActivityLine")
+    public R partyActivityLine(@RequestParam("communityId")Long communityId){
+        return bigScreenService.partyActivityLine(communityId);
+    }
+
+    /**
+     * 党员积分前3
+     * @param pageBigScreenStatisticPartyOrg
+     * @return
+     */
+    @PostMapping("/partyActivityTop")
+    public R partyActivityTop(@RequestBody PageBigScreenStatisticPartyOrg pageBigScreenStatisticPartyOrg){
+        return bigScreenService.partyActivityTop(pageBigScreenStatisticPartyOrg);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/BigScreenStatisticsApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/BigScreenStatisticsApi.java
new file mode 100644
index 0000000..9c9d49c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/BigScreenStatisticsApi.java
@@ -0,0 +1,595 @@
+package com.panzhihua.service_community.api;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.service_community.service.ComActService;
+import com.panzhihua.common.model.dtos.PageBaseDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PagePopularMerchantDTO;
+import com.panzhihua.service_community.service.BigScreenStatisticsService;
+import com.panzhihua.service_community.service.BigScreenService;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenEventDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenEventDetailDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.service.ComMngPopulationService;
+
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+@RestController
+@RequestMapping("/screen/")
+public class BigScreenStatisticsApi {
+
+    @Resource
+    private ComMngPopulationService comMngPopulationService;
+    @Resource
+    private ComActService comActService;
+    @Resource
+    private BigScreenService bigScreenService;
+    @Resource
+    private BigScreenStatisticsService bigScreenStatisticsService;
+
+    /**
+     * 首页大屏统计接口
+     * 
+     * @param communityId
+     *            社区id
+     * @return 统计结果
+     */
+    @GetMapping("/getScreenIndex")
+    public R index(@RequestParam("communityId") Long communityId) {
+        return R.ok(comMngPopulationService.getScreenIndex(communityId));
+    }
+
+    /**
+     * 事件大屏统计接口
+     * 
+     * @param screenEventDTO
+     *            请求参数
+     * @return 统计结果
+     */
+    @PostMapping("/getScreenEvent")
+    public R event(@RequestBody BigScreenEventDTO screenEventDTO) {
+        return R.ok(comMngPopulationService.getScreenEvent(screenEventDTO));
+    }
+
+    /**
+     * 民生大屏统计接口
+     * 
+     * @param communityId
+     *            社区id
+     * @return 统计结果
+     */
+    @GetMapping("/getScreenCivil")
+    public R civil(@RequestParam("communityId") Long communityId) {
+        return R.ok(comMngPopulationService.getScreenCivil(communityId));
+    }
+
+    /**
+     * 获取社区网格
+     *
+     * @param communityId
+     *            社区id
+     * @return 网格数据
+     */
+    @GetMapping("/getScreenGirds")
+    public R grids(@RequestParam("communityId") Long communityId) {
+        return R.ok(comMngPopulationService.getScreenGirds(communityId));
+    }
+
+    /**
+     * 事件大屏查询事件详情
+     *
+     * @param eventDetailDTO
+     *            请求参数
+     * @return 事件详情
+     */
+    @PostMapping("/getScreenEventDetail")
+    public R eventDetail(@RequestBody BigScreenEventDetailDTO eventDetailDTO) {
+        return R.ok(comMngPopulationService.getScreenEventDetail(eventDetailDTO));
+    }
+
+    /**
+     * 西区大屏治理数据
+     */
+    @GetMapping("/getWestScreenStatics")
+    public R westScreenStatics(){
+        return comMngPopulationService.westScreenStatics();
+    }
+
+    @GetMapping("/getComprehensivePopulationStatics")
+    public R getComprehensivePopulationStatics(@RequestParam("streetId") Long streetId){
+        return comMngPopulationService.getComprehensivePopulationStatics(streetId);
+    }
+
+    @GetMapping("/getComprehensiveStreetList")
+    public R getComprehensiveStreetList(){
+        return comMngPopulationService.getComprehensiveStreetList();
+    }
+
+
+    @GetMapping("/getCommunityPassword")
+    public R getCommunityPassword(@RequestParam("communityId") Long communityId){
+        return comActService.getCommunityPassword(communityId);
+    }
+    /**
+     * 新版大屏首页接口
+     */
+    @GetMapping("/indexInfo")
+    public R indexInfo(@RequestParam("communityId") Long communityId){
+        return comMngPopulationService.indexInfo(communityId);
+    }
+
+    /**
+     * 首页二级页面-微心愿
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/index/microWish")
+    public R indexMicroWish(@RequestParam("communityId") Long communityId) {
+        return bigScreenStatisticsService.indexMicroWish(communityId);
+    }
+
+    /**
+     * 首页二级页面-随手拍
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/index/easyPhoto")
+    public R indexEasyPhoto(@RequestParam("communityId") Long communityId) {
+        return bigScreenStatisticsService.indexEasyPhoto(communityId);
+    }
+
+    /**
+     * 首页二级页面-随手拍展示列表
+     * @return
+     */
+    @PostMapping("/index/easyPhotoList")
+    public R indexEasyPhotoList(@RequestBody PageBaseDTO pageBaseDTO) {
+        return bigScreenStatisticsService.indexEasyPhotoList(pageBaseDTO);
+    }
+
+    /**
+     * 首页二级页面-社区问卷
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/index/questionnaire")
+    public R indexQuestionnaire(@RequestParam("communityId") Long communityId) {
+        return bigScreenStatisticsService.indexQuestionnaire(communityId);
+    }
+
+    /**
+     * 首页二级页面-社区动态
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/index/dyn")
+    public R indexDyn(@RequestParam("communityId") Long communityId) {
+        return bigScreenStatisticsService.indexDyn(communityId);
+    }
+
+    /**
+     * 首页二级页面-社区动态展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/index/dynList")
+    public R indexDynList(@RequestBody PageBaseDTO pageBaseDTO) {
+        return bigScreenStatisticsService.indexDynList(pageBaseDTO);
+    }
+
+    /**
+     * 首页二级页面-邻里圈
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/index/neighbor")
+    public R indexNeighbor(@RequestParam("communityId") Long communityId) {
+        return bigScreenStatisticsService.indexNeighbor(communityId);
+    }
+
+    /**
+     * 首页二级页面-邻里圈展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/index/neighborList")
+    public R indexNeighborList(@RequestBody PageBaseDTO pageBaseDTO) {
+        return bigScreenStatisticsService.indexNeighborList(pageBaseDTO);
+    }
+
+    /**
+     * 首页二级页面-便民商家
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/index/merchant")
+    public R indexMerchant(@RequestParam("communityId") Long communityId) {
+        return bigScreenStatisticsService.indexMerchant(communityId);
+    }
+
+    /**
+     * 首页二级页面-商家展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/index/merchantList")
+    public R indexMerchantList(@RequestBody PageBaseDTO pageBaseDTO) {
+        return bigScreenStatisticsService.indexMerchantList(pageBaseDTO);
+    }
+
+    /**
+     * 首页二级页面-微心愿展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/index/microWishList")
+    public R indexMicroWishList(@RequestBody PageBaseDTO pageBaseDTO) {
+        return bigScreenStatisticsService.indexMicroWishList(pageBaseDTO);
+    }
+
+    /**
+     * 首页二级页面-社区问卷展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/index/questionnaireList")
+    public R indexQuestionnaireList(@RequestBody PageBaseDTO pageBaseDTO) {
+        return bigScreenStatisticsService.indexQuestionnaireList(pageBaseDTO);
+    }
+
+    /**
+     * 社区服务大屏数据分析接口
+     */
+    @GetMapping("/serviceData")
+    public R serviceData(@RequestParam("communityId")Long communityId){
+        return this.bigScreenService.serviceData(communityId);
+    }
+
+    /**
+     * 服务居民接口
+     */
+    @GetMapping("/serviceUser")
+    public R serviceUser(@RequestParam("communityId") Long communityId){
+        return this.bigScreenService.serviceUser(communityId);
+    }
+
+    /**
+     * 大数据分析平台-居民自治
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/resident/autonomy")
+    public R getResidentAutonomy(@RequestParam("communityId") Long communityId) {
+        return bigScreenStatisticsService.getResidentAutonomy(communityId);
+    }
+
+    /**
+     * 大数据分析平台-清网治格
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/grids/governance")
+    public R getGridsGovernance(@RequestParam("communityId") Long communityId) {
+        return bigScreenStatisticsService.getGridsGovernance(communityId);
+    }
+
+    /**
+     * 大数据分析平台-社区服务
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/community/service")
+    public R getCommunityServiceStatistics(@RequestParam("communityId") Long communityId) {
+        return bigScreenStatisticsService.getCommunityServiceStatistics(communityId);
+    }
+
+    /**
+     * 分页获取热度排行商家
+     * @param pagePopularMerchantDTO
+     * @return
+     */
+    @PostMapping("/merchant/popular")
+    public R getScreenPopularMerchants(@RequestBody PagePopularMerchantDTO pagePopularMerchantDTO) {
+        return bigScreenStatisticsService.getScreenPopularMerchants(pagePopularMerchantDTO);
+    }
+
+    /**
+     * 首页二级页面-居民活动
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/index/residentAct")
+    public R indexResidentAct(@RequestParam("communityId") Long communityId) {
+        return bigScreenStatisticsService.indexResidentAct(communityId);
+    }
+
+    /**
+     * 首页二级页面-居民活动展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/index/residentActList")
+    public R indexResidentActList(@RequestBody PageBaseDTO pageBaseDTO) {
+        return bigScreenStatisticsService.indexResidentActList(pageBaseDTO);
+    }
+
+    /**
+     * 首页二级页面-志愿者活动
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/index/volunteerAct")
+    public R indexVolunteerAct(@RequestParam("communityId") Long communityId) {
+        return bigScreenStatisticsService.indexVolunteerAct(communityId);
+    }
+
+    /**
+     * 首页二级页面-志愿者活动展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/index/volunteerActList")
+    public R indexVolunteerActList(@RequestBody PageBaseDTO pageBaseDTO) {
+        return bigScreenStatisticsService.indexVolunteerActList(pageBaseDTO);
+    }
+
+    /**
+     * 清网治格-根据事件分类获取近1月的社区事件数据
+     * @param type
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/event/list")
+    public R getEventList(@RequestParam(value = "type") Integer type, @RequestParam(value = "communityId") Long communityId) {
+        return bigScreenStatisticsService.getEventList(type, communityId);
+    }
+
+    /**
+     * 清网治格-社区事件数据分页
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/event/page")
+    public R pageEventList(@RequestBody PageBaseDTO pageBaseDTO) {
+        return bigScreenStatisticsService.pageEventList(pageBaseDTO);
+    }
+    @PostMapping("/hmk/baseInfo")
+    public R getHmkBaseInfo(@RequestBody CommonPage commonPage){
+        return bigScreenStatisticsService.hmkBaseInfo(commonPage);
+    }
+    @GetMapping("/hmk/partyProjectActivityLine")
+    public R partyActivityLine(){
+        return bigScreenStatisticsService.partyProjectActivityLine();
+    }
+    @PostMapping("/hmk/projectActivityTop")
+    public R projectActivityTop(@RequestBody CommonPage commonPage){
+        return bigScreenStatisticsService.projectActivityProject(commonPage);
+    }
+    @GetMapping("/hmk/projectType")
+    public R projectType(@RequestParam("name") String name){
+        return bigScreenStatisticsService.projectType(name);
+    }
+
+    /**
+     * 金沙定制页面-党建引领基础数据
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/partyBuildIng/base")
+    public R getPartyBuildIngBaseData(@RequestParam("communityId") Long communityId) {
+        return bigScreenStatisticsService.getPartyBuildIngBaseData(communityId);
+    }
+
+    /**
+     * 党员活动展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/partyBuildIng/partyAct")
+    public R pagePartyBuildIngAct(@RequestBody PageBaseDTO pageBaseDTO) {
+        return bigScreenStatisticsService.pagePartyBuildIngAct(pageBaseDTO);
+    }
+
+    /**
+     * 议事投票展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/partyBuildIng/discuss")
+    public R pagePartyBuildIngDiscuss(@RequestBody PageBaseDTO pageBaseDTO) {
+        return bigScreenStatisticsService.pagePartyBuildIngDiscuss(pageBaseDTO);
+    }
+
+    /**
+     * 金沙定制页面-四长四员
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/fourMember/base")
+    public R getFourMemberBaseData(@RequestParam("communityId") Long communityId) {
+        return bigScreenStatisticsService.getFourMemberBaseData(communityId);
+    }
+
+    /**
+     * 杨家坪定制页面-五微服务
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/fms/base")
+    public R getFmsBaseData(@RequestParam("communityId") Long communityId) {
+        return bigScreenStatisticsService.getFmsBaseData(communityId);
+    }
+
+    /**
+     * 杨家坪定制页面-微团队展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/fms/team")
+    public R pageFmsTeam(@RequestBody PageBaseDTO pageBaseDTO) {
+        return bigScreenStatisticsService.pageFmsTeam(pageBaseDTO);
+    }
+
+    /**
+     * 杨家坪定制页面-居家养老基础数据
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/alarm/base")
+    public R getAlarmBaseData(@RequestParam("communityId") Long communityId) {
+        return bigScreenStatisticsService.getAlarmBaseData(communityId);
+    }
+
+    /**
+     * 杨家坪定制页面-报警记录展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/alarm/record")
+    public R pageAlarmRecord(@RequestBody PageBaseDTO pageBaseDTO) {
+        return bigScreenStatisticsService.pageAlarmRecord(pageBaseDTO);
+    }
+
+    /**
+     * 杨家坪定制页面-报警设备点位图
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/alarm/pointMap")
+    public R getAlarmPointMap(@RequestParam("communityId") Long communityId) {
+        return bigScreenStatisticsService.getAlarmPointMap(communityId);
+    }
+
+    /**
+     * 杨家坪定制页面-志愿服务
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/volunteer/base")
+    public R getVolunteerBaseData(@RequestParam("communityId") Long communityId) {
+        return bigScreenStatisticsService.getVolunteerBaseData(communityId);
+    }
+
+    /**
+     * 金沙定制页面-志愿线展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/partyBuildIng/microWish")
+    public R pagePartyBuildIngMicroWish(@RequestBody PageBaseDTO pageBaseDTO) {
+        return bigScreenStatisticsService.pagePartyBuildIngMicroWish(pageBaseDTO);
+    }
+
+    /**
+     * 金沙定制页面-四长四员解决问题展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/fourMember/resolve")
+    public R pageFourMemberResolve(@RequestBody PageBaseDTO pageBaseDTO) {
+        return bigScreenStatisticsService.pageFourMemberResolve(pageBaseDTO);
+    }
+
+    /**
+     * 金沙定制页面-四长四员院落议事展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/courtyard/list")
+    public R pageCourtyardDiscuss(@RequestBody PageBaseDTO pageBaseDTO) {
+        return bigScreenStatisticsService.pageCourtyardDiscuss(pageBaseDTO);
+    }
+
+    /**
+     * 金沙定制页面-院落议事
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/courtyard/base")
+    public R getCourtyardBaseData(@RequestParam("communityId") Long communityId) {
+        return bigScreenStatisticsService.getCourtyardBaseData(communityId);
+    }
+
+    /**
+     * 孵化中心-基础数据
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/hatch/base")
+    public R getHatchBaseData(@RequestParam("communityId") Long communityId) {
+        return bigScreenStatisticsService.getHatchBaseData(communityId);
+    }
+
+    /**
+     * 孵化中心-孵化成果展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/hatchResult/list")
+    public R pageHatchResult(@RequestBody PageBaseDTO pageBaseDTO) {
+        return bigScreenStatisticsService.pageHatchResult(pageBaseDTO);
+    }
+
+    /**
+     * 孵化中心-孵化进度展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/hatchSchedule/list")
+    public R pageHatchSchedule(@RequestBody PageBaseDTO pageBaseDTO) {
+        return bigScreenStatisticsService.pageHatchSchedule(pageBaseDTO);
+    }
+
+    /**
+     * 五社联动基础数据
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/fiveAssociations/base")
+    public R getFiveAssociationsBaseData(@RequestParam("communityId") Long communityId) {
+        return bigScreenStatisticsService.getFiveAssociationsBaseData(communityId);
+    }
+
+    /**
+     * 五社联动项目展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/socialProject/list")
+    public R pageSocialProjectList(@RequestBody PageBaseDTO pageBaseDTO) {
+        return bigScreenStatisticsService.pageSocialProjectList(pageBaseDTO);
+    }
+
+    /**
+     * 五社联动社会组织展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @PostMapping("/socialOrg/list")
+    public R pageSocialOrgList(@RequestBody PageBaseDTO pageBaseDTO) {
+        return bigScreenStatisticsService.pageSocialOrgList(pageBaseDTO);
+    }
+
+    /**
+     * 人大代表
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/dpc/base")
+    public R dpcBase(@RequestParam("communityId") Long communityId) {
+        return bigScreenStatisticsService.dpcBase(communityId);
+    }
+
+    /**
+     * 人大代表-随手拍展示列表
+     * @return
+     */
+    @PostMapping("/dpc/easyPhotoList")
+    public R dpcEasyPhotoList(@RequestBody PageBaseDTO pageBaseDTO) {
+        return bigScreenStatisticsService.dpcEasyPhotoList(pageBaseDTO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/BuildingApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/BuildingApi.java
new file mode 100644
index 0000000..7c3ff0c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/BuildingApi.java
@@ -0,0 +1,133 @@
+package com.panzhihua.service_community.api;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.dtos.community.building.admin.*;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngBuildingExcelVO;
+import com.panzhihua.service_community.service.ComActBuildingService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @author xyh
+ * @date 2021/6/10 13:39
+ */
+@Slf4j
+@RestController
+@RequestMapping("/building/")
+public class BuildingApi {
+
+    @Resource
+    private ComActBuildingService comActBuildingService;
+
+    @PostMapping("/batchSave")
+    R listSaveBuildingExcelVO(@RequestBody List<ComMngBuildingExcelVO> newVoList,
+        @RequestParam("communityId") Long communityId) {
+        return comActBuildingService.batchSaveBuilding(newVoList, communityId);
+    }
+
+    /**
+     * 社区后台-分页查询楼栋列表
+     * @param pageBuildingListDto   请求参数
+     * @return  楼栋列表
+     */
+    @PostMapping("/page/admin")
+    public R pageBuildingAdmin(@RequestBody PageBuildingListDto pageBuildingListDto) {
+        return comActBuildingService.pageBuildingAdmin(pageBuildingListDto);
+    }
+
+    /**
+     * 社区后台-查询楼栋列表表头统计数据
+     * @param communityId   社区id
+     * @return  楼栋列表表头统计数据
+     */
+    @GetMapping("/header/statistics/")
+    public R buildingListHeaderStatisticsAdmin(@RequestParam("communityId") Long communityId) {
+        return comActBuildingService.buildingListHeaderStatisticsAdmin(communityId);
+    }
+
+    /**
+     * 社区后台-查询楼栋详情
+     * @param id    楼栋id
+     * @return  楼栋详情
+     */
+    @GetMapping("/detail/admin")
+    public R detailBuildAdmin(@RequestParam("id") Long id) {
+        return comActBuildingService.detailBuildAdmin(id);
+    }
+
+    /**
+     * 查询楼栋下单元列表
+     * @param id    楼栋id
+     * @return  单元列表
+     */
+    @GetMapping("/unit/list/admin")
+    public R buildingUnitListAdmin(@RequestParam("id") Long id) {
+        return comActBuildingService.buildingUnitListAdmin(id);
+    }
+
+    /**
+     * 查询楼栋单元下房屋列表
+     * @param unitHouseListDto    请求参数
+     * @return  单元列表
+     */
+    @PostMapping("/unit/house/list/admin")
+    public R buildingUnitHouseListAdmin(@RequestBody PageBuildingUnitHouseListDto unitHouseListDto) {
+        return comActBuildingService.buildingUnitHouseListAdmin(unitHouseListDto);
+    }
+
+    @GetMapping("/unit/house/detail/admin")
+    public R buildingUnitHouseDetailAdmin(@RequestParam("houseId") Long houseId,@RequestParam("communityId") Long communityId) {
+        return comActBuildingService.buildingUnitHouseDetailAdmin(houseId,communityId);
+    }
+
+    @GetMapping("/village/list/admin")
+    public R buildingVillageListAdmin(@RequestParam("communityId") Long communityId) {
+        return comActBuildingService.buildingVillageListAdmin(communityId);
+    }
+
+    @PostMapping("/unit/add/admin")
+    public R addBuildingUnitAdmin(@RequestBody AddBuildingUnitDto addBuildingUnitDto) {
+        return comActBuildingService.addBuildingUnitAdmin(addBuildingUnitDto);
+    }
+
+    @PostMapping("/unit/edit/admin")
+    public R editBuildingUnitAdmin(@RequestBody EditBuildingUnitDto editBuildingUnitDto) {
+        return comActBuildingService.editBuildingUnitAdmin(editBuildingUnitDto);
+    }
+
+    @PostMapping("/house/add/admin")
+    public R addBuildingHouseAdmin(@RequestBody AddBuildingHouseDto addBuildingHouseDto) {
+        return comActBuildingService.addBuildingHouseAdmin(addBuildingHouseDto);
+    }
+
+    @PostMapping("/house/edit/admin")
+    public R editBuildingHouseAdmin(@RequestBody EditBuildingHouseDto editBuildingHouseDto) {
+        return comActBuildingService.editBuildingHouseAdmin(editBuildingHouseDto);
+    }
+
+    @PostMapping("/house/population/delete/admin")
+    public R deleteBuildingHousePopulationAdmin(@RequestBody DeleteBuildingHousePopulationDto housePopulationDto) {
+        return comActBuildingService.deleteBuildingHousePopulationAdmin(housePopulationDto);
+    }
+
+    /**
+     * 根据小区id查询楼栋列表
+     * @param villageId 小区id
+     * @return  查询楼栋列表
+     */
+    @GetMapping("/getBuildListByVillageId")
+    public R getBuildListByVillageId(@RequestParam("villageId") Long villageId) {
+        return comActBuildingService.getBuildListByVillageId(villageId);
+    }
+
+    @GetMapping("/delete")
+    public R delete(@RequestParam("id")Long id){
+        return comActBuildingService.delete(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ClusterApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ClusterApi.java
new file mode 100644
index 0000000..65e2d82
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ClusterApi.java
@@ -0,0 +1,184 @@
+package com.panzhihua.service_community.api;
+
+import com.panzhihua.common.model.dtos.community.cluster.*;
+import com.panzhihua.common.model.dtos.community.cluster.admin.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.cluster.admin.ComClusterMemberExcelVO;
+import com.panzhihua.service_community.service.ComClusterOrganizationMemberService;
+import com.panzhihua.service_community.service.ComClusterOrganizationService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * title: 群团组织接口类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 群团组织接口类
+ *
+ * @author lyq
+ * @date 2021/9/23 16:12
+ */
+@Slf4j
+@RestController
+@RequestMapping("/cluster/")
+public class ClusterApi {
+
+    @Resource
+    private ComClusterOrganizationMemberService comClusterOrganizationMemberService;
+    @Resource
+    private ComClusterOrganizationService comClusterOrganizationService;
+
+    /**
+     * 群团组织成员列表-小程序分页查询
+     * @param pageClusterMemberDto  请求参数
+     * @return  群团组织成员列表
+     */
+    @PostMapping("/member/page/applets")
+    public R pageClusterMemberApplets(@RequestBody PageClusterMemberDto pageClusterMemberDto) {
+        return comClusterOrganizationMemberService.pageClusterMemberApplets(pageClusterMemberDto);
+    }
+
+    /**
+     * 群团组织列表-小程序查询社区群团组织列表
+     * @param communityId   社区id
+     * @return  社区群团组织列表
+     */
+    @GetMapping("/list/applets")
+    public R listClusterApplets(@RequestParam("communityId") Long communityId) {
+        return comClusterOrganizationService.listClusterApplets(communityId);
+    }
+
+    /**
+     * 分页查询群团组织列表
+     * @param pageClusterAdminDto  请求参数
+     * @return  群团组织列表
+     */
+    @PostMapping("/page/admin")
+    public R pageClusterAdmin(@RequestBody PageClusterAdminDto pageClusterAdminDto) {
+        return comClusterOrganizationService.pageClusterAdmin(pageClusterAdminDto);
+    }
+
+    /**
+     * 新增群团组织
+     * @param addClusterAdminDto    请求参数
+     * @return  新增结果
+     */
+    @PostMapping("/add/admin")
+    public R addClusterAdmin(@RequestBody AddClusterAdminDto addClusterAdminDto) {
+        return comClusterOrganizationService.addClusterAdmin(addClusterAdminDto);
+    }
+
+    /**
+     * 修改群团组织
+     * @param editClusterAdminDto   请求参数
+     * @return  修改结果
+     */
+    @PostMapping("/edit/admin")
+    public R editClusterAdmin(@RequestBody EditClusterAdminDto editClusterAdminDto) {
+        return comClusterOrganizationService.editClusterAdmin(editClusterAdminDto);
+    }
+
+    /**
+     * 删除群团组织
+     * @param id    组织id
+     * @return  删除结果
+     */
+    @GetMapping("/delete/admin")
+    public R deleteClusterAdmin(@RequestParam("id") Long id) {
+        return comClusterOrganizationService.deleteClusterAdmin(id);
+    }
+
+    /**
+     * 群团组织详情
+     * @param id    组织id
+     * @return  群团组织详情
+     */
+    @GetMapping("/detail/admin")
+    public R detailClusterAdmin(@RequestParam("id") Long id) {
+        return comClusterOrganizationService.detailClusterAdmin(id);
+    }
+
+    /**
+     * 分页查询群团组织成员列表
+     * @param pageClusterMemberAdminDto 请求参数
+     * @return  群团组织成员列表
+     */
+    @PostMapping("/member/page/admin")
+    public R pageClusterMemberAdmin(@RequestBody PageClusterMemberAdminDto pageClusterMemberAdminDto) {
+        return comClusterOrganizationMemberService.pageClusterMemberAdmin(pageClusterMemberAdminDto);
+    }
+
+    /**
+     * 新增群团组织成员
+     * @param addClusterMemberAdminDto  请求参数
+     * @return  新增结果
+     */
+    @PostMapping("/member/add/admin")
+    public R addClusterMemberAdmin(@RequestBody AddClusterMemberAdminDto addClusterMemberAdminDto) {
+        return comClusterOrganizationMemberService.addClusterMemberAdmin(addClusterMemberAdminDto);
+    }
+
+    /**
+     * 编辑群团组织成员
+     * @param editClusterMemberAdminDto 请求参数
+     * @return  编辑结果
+     */
+    @PostMapping("/member/edit/admin")
+    public R editClusterMemberAdmin(@RequestBody EditClusterMemberAdminDto editClusterMemberAdminDto) {
+        return comClusterOrganizationMemberService.editClusterMemberAdmin(editClusterMemberAdminDto);
+    }
+
+    /**
+     * 删除群团组织成员
+     * @param id    组织成员id
+     * @return  删除结果
+     */
+    @GetMapping("/member/delete/admin")
+    public R deleteClusterMemberAdmin(@RequestParam("id") Long id) {
+        return comClusterOrganizationMemberService.deleteClusterMemberAdmin(id);
+    }
+
+    /**
+     * 群团组织成员详情
+     * @param id    组织成员id
+     * @return  群团组织成员详情
+     */
+    @GetMapping("/member/detail/admin")
+    public R detailClusterMemberAdmin(@RequestParam("id") Long id) {
+        return comClusterOrganizationMemberService.detailClusterMemberAdmin(id);
+    }
+
+    /**
+     * 查询系统民族列表
+     * @return  民族列表
+     */
+    @GetMapping("/member/nation/list/admin")
+    public R memberNationListAdmin(){
+        return comClusterOrganizationMemberService.memberNationListAdmin();
+    }
+
+    /**
+     * 群团组织成员导入
+     * @param list  导入数据
+     * @param communityId   社区id
+     * @param userId    操作用户id
+     * @return  导入结果
+     */
+    @PostMapping("/member/import/admin")
+    public R importClusterMember(@RequestBody List<ComClusterMemberExcelVO> list,
+                                 @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId){
+        return comClusterOrganizationMemberService.importClusterMember(list,communityId,userId);
+    }
+
+    /**
+     * 群团组织导出数据查询
+     * @param pageClusterMemberAdminDto 请求参数
+     * @return  导出数据结果集
+     */
+    @PostMapping("/member/export/admin")
+    public R exportClusterMember(@RequestBody PageClusterMemberAdminDto pageClusterMemberAdminDto){
+        return comClusterOrganizationMemberService.exportClusterMember(pageClusterMemberAdminDto);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActAcidCheckRecordApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActAcidCheckRecordApi.java
new file mode 100644
index 0000000..175a92b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActAcidCheckRecordApi.java
@@ -0,0 +1,108 @@
+package com.panzhihua.service_community.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.api.ApiController;
+import com.panzhihua.common.model.dtos.community.acid.ComActAcidCheckRecordDTO;
+import com.panzhihua.common.model.dtos.community.acid.ComActAcidDangerMemberDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidCheckRecordVO;
+import com.panzhihua.service_community.entity.ComActAcidCheckRecord;
+import com.panzhihua.service_community.entity.ComActAcidDangerMember;
+import com.panzhihua.service_community.service.ComActAcidCheckRecordService;
+import com.panzhihua.service_community.service.ComActAcidDangerMemberService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 排查跟进表(ComActAcidCheckRecord)表控制层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 排查跟进表相关功能
+ *
+ * @author zzj
+ * @since 2022-04-24 16:14:27
+ */
+@RestController
+@RequestMapping("comActAcidCheckRecord")
+public class ComActAcidCheckRecordApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ComActAcidCheckRecordService comActAcidCheckRecordService;
+    @Resource
+    private ComActAcidDangerMemberService comActAcidDangerMemberService;
+
+    /**
+     * 列表查询
+     *
+     * @param comActAcidCheckRecordDTO 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody ComActAcidCheckRecordDTO comActAcidCheckRecordDTO) {
+        return this.comActAcidCheckRecordService.pageList(comActAcidCheckRecordDTO);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return R.ok(this.comActAcidCheckRecordService.getById(id));
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActAcidCheckRecordVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody ComActAcidCheckRecordVO comActAcidCheckRecordVO) {
+        ComActAcidCheckRecord comActAcidCheckRecord=new ComActAcidCheckRecord();
+        BeanUtils.copyProperties(comActAcidCheckRecordVO,comActAcidCheckRecord);
+        comActAcidCheckRecord.setCreateTime(new Date());
+        ComActAcidDangerMember dangerMember = new ComActAcidDangerMember();
+        dangerMember.setId(comActAcidCheckRecordVO.getMemberId());
+        dangerMember.setStatus(comActAcidCheckRecordVO.getStatus());
+        dangerMember.setUpdateTime(new Date());
+        comActAcidDangerMemberService.updateById(dangerMember);
+        return R.ok(this.comActAcidCheckRecordService.save(comActAcidCheckRecord));
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActAcidCheckRecordVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody ComActAcidCheckRecordVO comActAcidCheckRecordVO) {
+        ComActAcidCheckRecord comActAcidCheckRecord=new ComActAcidCheckRecord();
+        BeanUtils.copyProperties(comActAcidCheckRecordVO,comActAcidCheckRecord);
+        this.comActAcidCheckRecordService.saveRecordBeforeUpdate(comActAcidCheckRecord);
+        return R.ok(this.comActAcidCheckRecordService.updateById(comActAcidCheckRecord));
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return R.ok(this.comActAcidCheckRecordService.removeById(id));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActAcidDangerMemberApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActAcidDangerMemberApi.java
new file mode 100644
index 0000000..ad5b701
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActAcidDangerMemberApi.java
@@ -0,0 +1,100 @@
+package com.panzhihua.service_community.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.api.ApiController;
+import com.panzhihua.common.model.dtos.community.acid.ComActAcidDangerMemberDTO;
+import com.panzhihua.common.model.dtos.community.acid.PageDangerMemberDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.service_community.entity.ComActAcidDangerMember;
+import com.panzhihua.service_community.service.ComActAcidDangerMemberService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 风险人员表(ComActAcidDangerMember)表控制层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 风险人员表相关功能
+ *
+ * @author zzj
+ * @since 2022-04-24 16:12:11
+ */
+@RestController
+@RequestMapping("comActAcidDangerMember")
+public class ComActAcidDangerMemberApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ComActAcidDangerMemberService comActAcidDangerMemberService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("/queryAll")
+    public R selectAll(@RequestBody ComActAcidDangerMemberDTO commonPage) {
+        return this.comActAcidDangerMemberService.pageList(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return R.ok(this.comActAcidDangerMemberService.getById(id));
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActAcidDangerMember 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody ComActAcidDangerMember comActAcidDangerMember) {
+        return R.ok(this.comActAcidDangerMemberService.save(comActAcidDangerMember));
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActAcidDangerMember 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody ComActAcidDangerMember comActAcidDangerMember) {
+        return R.ok(this.comActAcidDangerMemberService.updateById(comActAcidDangerMember));
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return R.ok(this.comActAcidDangerMemberService.removeById(id));
+    }
+
+    /**
+     * 分页查询风险人员
+     * @param pageDangerMemberDTO
+     * @return
+     */
+    @PostMapping("/page")
+    public R pageDangerMember(@RequestBody PageDangerMemberDTO pageDangerMemberDTO) {
+        return comActAcidDangerMemberService.pageDangerMember(pageDangerMemberDTO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActAcidMemberApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActAcidMemberApi.java
new file mode 100644
index 0000000..3422869
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActAcidMemberApi.java
@@ -0,0 +1,93 @@
+package com.panzhihua.service_community.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.api.ApiController;
+import com.panzhihua.common.model.dtos.community.acid.ComActAcidMemberDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidMemberVO;
+import com.panzhihua.service_community.entity.ComActAcidMember;
+import com.panzhihua.service_community.service.ComActAcidMemberService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 防疫工作人员表(ComActAcidMember)表控制层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 防疫工作人员表相关功能
+ *
+ * @author zzj
+ * @since 2022-04-24 16:12:08
+ */
+@RestController
+@RequestMapping("comActAcidMember")
+public class ComActAcidMemberApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ComActAcidMemberService comActAcidMemberService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody ComActAcidMemberDTO commonPage) {
+        return this.comActAcidMemberService.pageList(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return R.ok(this.comActAcidMemberService.getById(id));
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActAcidMemberVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody ComActAcidMemberVO comActAcidMemberVO) {
+        return this.comActAcidMemberService.insert(comActAcidMemberVO);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActAcidMemberVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody ComActAcidMemberVO comActAcidMemberVO) {
+        ComActAcidMember comActAcidMember=new ComActAcidMember();
+        BeanUtils.copyProperties(comActAcidMemberVO,comActAcidMember);
+        return R.ok(this.comActAcidMemberService.updateById(comActAcidMember));
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return R.ok(this.comActAcidMemberService.removeById(id));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActAcidRecordApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActAcidRecordApi.java
new file mode 100644
index 0000000..4a8985d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActAcidRecordApi.java
@@ -0,0 +1,212 @@
+package com.panzhihua.service_community.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.api.ApiController;
+import com.panzhihua.common.model.dtos.community.acid.BatchCheckAcidRecordDTO;
+import com.panzhihua.common.model.dtos.community.acid.ComActAcidRecordDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidRecordVO;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.entity.ComActAcidRecord;
+import com.panzhihua.service_community.service.ComActAcidRecordService;
+import com.panzhihua.service_community.service.ComActActRegistService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * (ComActAcidRecord)表控制层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 相关功能
+ *
+ * @author zzj
+ * @since 2022-04-12 15:29:59
+ */
+@RestController
+@RequestMapping("comActAcidRecord")
+public class ComActAcidRecordApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ComActAcidRecordService comActAcidRecordService;
+
+
+    @Resource
+    private ComActActRegistService comActActRegistService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param comActAcidRecordDTO 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody ComActAcidRecordDTO comActAcidRecordDTO) {
+        return this.comActAcidRecordService.pageList(comActAcidRecordDTO);
+    }
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param comActAcidRecordDTO 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("export")
+    public R export(@RequestBody ComActAcidRecordDTO comActAcidRecordDTO) {
+        return this.comActAcidRecordService.export(comActAcidRecordDTO);
+    }
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param comActAcidRecordDTO 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("exportNew")
+    public R exportNew(@RequestBody ComActAcidRecordDTO comActAcidRecordDTO) {
+        return this.comActAcidRecordService.exportNew(comActAcidRecordDTO);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return this.comActAcidRecordService.detailByCommunity(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActAcidRecordVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody ComActAcidRecordVO comActAcidRecordVO) {
+        return this.comActAcidRecordService.insertRecord(comActAcidRecordVO);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActAcidRecordVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody ComActAcidRecordVO comActAcidRecordVO) {
+        return this.comActAcidRecordService.updateLocalCity(comActAcidRecordVO);
+    }
+
+    /**
+     * 批量核对防疫信息数据
+     * @param batchCheckAcidRecordDTO
+     * @return
+     */
+    @PostMapping("/batchCheck")
+    public R batchCheck(@RequestBody BatchCheckAcidRecordDTO batchCheckAcidRecordDTO) {
+        return this.comActAcidRecordService.batchCheck(batchCheckAcidRecordDTO);
+    }
+
+    /**
+     * 小程序修改填报记录
+     *
+     * @param comActAcidRecordVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/updateApplets")
+    public R updateApplets(@RequestBody ComActAcidRecordVO comActAcidRecordVO) {
+        return this.comActAcidRecordService.updateApplets(comActAcidRecordVO);
+    }
+
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return this.comActAcidRecordService.delete(id);
+    }
+
+    /**
+     * 5项常规统计
+     * @return
+     */
+    @GetMapping("fiveCount")
+    public R fiveCount(@RequestParam("localCity")String localCity){
+        return this.comActAcidRecordService.fiveCount(localCity);
+    }
+
+    /**
+     * 7项常规统计
+     * @return
+     */
+    @GetMapping("fiveCountPlus")
+    public R fiveCountPlus(@RequestParam("date")String date,@RequestParam("localCity")String localCity,@RequestParam(value = "loginAccount",required = false)String loginAccount){
+        return this.comActAcidRecordService.fiveCountPlus(date,localCity,loginAccount);
+    }
+
+    /**
+     * 图标统计
+     * @return
+     */
+    @GetMapping("charts")
+    public R charts(@RequestParam("date")String date,@RequestParam("localCity")String localCity){
+        return this.comActAcidRecordService.charts(date,localCity);
+    }
+
+    @GetMapping("/statics")
+    public R statics(@RequestParam("date")String date){
+        return this.comActAcidRecordService.statics(date);
+    }
+
+    @GetMapping("/detailByApp")
+    public R detailByApp(@RequestParam("id")Long id,@RequestParam("localCity")String localCity){
+        return this.comActAcidRecordService.detailByApp(id,localCity);
+    }
+    @GetMapping("/test")
+    public R test(){
+        return this.comActAcidRecordService.test();
+    }
+
+
+    @GetMapping("/checkCommit")
+    public R checkCommit(@RequestParam(value = "userId",required = false)Long userId){
+        return this.comActAcidRecordService.checkCommit(userId);
+    }
+
+    @GetMapping("/selectColorMarkGroup")
+    public R selectColorMarkGroup(){
+        return this.comActAcidRecordService.selectColorMarkGroup();
+    }
+
+
+    /**
+     * 社区活动自动定时更新用户未签退时间
+     * @return
+     */
+    @GetMapping("/comActActRegistUpdateEndTime")
+    public R comActActRegistUpdateEndTime(){
+        return comActActRegistService.updateEndTime();
+    }
+
+
+
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActActivityCodeApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActActivityCodeApi.java
new file mode 100644
index 0000000..f28889b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActActivityCodeApi.java
@@ -0,0 +1,128 @@
+package com.panzhihua.service_community.api;
+
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.community.QRActivityCodeVO;
+import com.panzhihua.service_community.entity.ComActActivityCode;
+import com.panzhihua.service_community.service.ComActActivityCodeService;
+import com.panzhihua.service_community.util.QRCodeUtil;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 签到二维码表(ComActActivityCode)表控制层
+ *
+ * @author makejava
+ * @since 2021-10-15 15:23:10
+ */
+@RestController
+@RequestMapping("comActActivityCode")
+public class ComActActivityCodeApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ComActActivityCodeService comActActivityCodeService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.comActActivityCodeService.pageList(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Serializable id) {
+        return R.ok(this.comActActivityCodeService.getById(id));
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActActivityCode 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody ComActActivityCode comActActivityCode) {
+        return R.ok(this.comActActivityCodeService.save(comActActivityCode));
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActActivityCode 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody ComActActivityCode comActActivityCode) {
+        return R.ok(this.comActActivityCodeService.updateById(comActActivityCode));
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return R.ok(this.comActActivityCodeService.removeById(id));
+    }
+
+
+    /**
+     * 生成二维码
+     * @param qrCodeVO
+     * @return
+     */
+    @PostMapping("/getQRCode")
+    public R getQRCode(@RequestBody QRActivityCodeVO qrCodeVO){
+        ComActActivityCode comActActivityCode = comActActivityCodeService.getOne(new QueryWrapper<ComActActivityCode>()
+                .lambda().eq(ComActActivityCode::getStatus,1).eq(ComActActivityCode::getActivityId,qrCodeVO.getId())
+                .eq(ComActActivityCode::getType,qrCodeVO.getType()));
+        if(comActActivityCode!=null){
+            qrCodeVO.setCodeId(comActActivityCode.getId().toString());
+            return R.ok(QRCodeUtil.getBase64QRCode(JSONObject.toJSONString(qrCodeVO)));
+        }
+        return R.fail("该活动无有效二维码");
+    }
+
+    /**
+     * 重置二维码
+     * @param qrCodeVO
+     * @return
+     */
+    @PostMapping("/resetQRCode")
+    public R resetQRCode(@RequestBody QRActivityCodeVO qrCodeVO){
+        ComActActivityCode comActActivityCode=comActActivityCodeService.getOne(new QueryWrapper<ComActActivityCode>().lambda().eq(ComActActivityCode::getStatus,1).eq(ComActActivityCode::getActivityId,qrCodeVO.getId()).eq(ComActActivityCode::getType,qrCodeVO.getType()));
+        if(comActActivityCode!=null){
+            comActActivityCodeService.update(new UpdateWrapper<ComActActivityCode>().lambda().eq(ComActActivityCode::getActivityId,qrCodeVO.getId()).eq(ComActActivityCode::getType,qrCodeVO.getType()).set(ComActActivityCode::getStatus,0));
+            ComActActivityCode comActActivityCode1=new ComActActivityCode();
+            comActActivityCode1.setActivityId(Long.parseLong(qrCodeVO.getId()));
+            comActActivityCode1.setCreateTime(new Date());
+            comActActivityCode1.setType(qrCodeVO.getType());
+            comActActivityCode1.setStatus(1);
+            comActActivityCodeService.save(comActActivityCode1);
+            qrCodeVO.setCodeId(comActActivityCode1.getId().toString());
+            return R.ok(QRCodeUtil.getBase64QRCode(JSONObject.toJSONString(qrCodeVO)));
+        }
+        return R.fail();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActAnnouncementApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActAnnouncementApi.java
new file mode 100644
index 0000000..b5c44d7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActAnnouncementApi.java
@@ -0,0 +1,87 @@
+package com.panzhihua.service_community.api;
+
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.community.ComActAnnouncementVO;
+import com.panzhihua.service_community.entity.ComActAnnouncement;
+import com.panzhihua.service_community.service.ComActAnnouncementService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * (ComActAnnouncement)表控制层
+ *
+ * @author makejava
+ * @since 2021-11-01 13:45:55
+ */
+@RestController
+@RequestMapping("comActAnnouncement")
+public class ComActAnnouncementApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ComActAnnouncementService comActAnnouncementService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.comActAnnouncementService.pageList(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return R.ok(this.comActAnnouncementService.getById(id));
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActAnnouncementVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody ComActAnnouncementVO comActAnnouncementVO) {
+        ComActAnnouncement comActAnnouncement=new ComActAnnouncement();
+        BeanUtils.copyProperties(comActAnnouncementVO,comActAnnouncement);
+        return R.ok(this.comActAnnouncementService.save(comActAnnouncement));
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActAnnouncementVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody ComActAnnouncementVO comActAnnouncementVO) {
+        ComActAnnouncement comActAnnouncement=new ComActAnnouncement();
+        BeanUtils.copyProperties(comActAnnouncementVO,comActAnnouncement);
+        return R.ok(this.comActAnnouncementService.updateById(comActAnnouncement));
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return R.ok(this.comActAnnouncementService.removeById(id));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActColumnApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActColumnApi.java
new file mode 100644
index 0000000..9b1118e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActColumnApi.java
@@ -0,0 +1,96 @@
+package com.panzhihua.service_community.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.api.ApiController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.community.ComActColumnVO;
+import com.panzhihua.service_community.entity.ComActColumn;
+import com.panzhihua.service_community.service.ComActColumnService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 分类列表(ComActColumn)表控制层
+ *
+ * @author makejava
+ * @since 2021-11-01 14:38:26
+ */
+@RestController
+@RequestMapping("comActColumn")
+public class ComActColumnApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ComActColumnService comActColumnService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.comActColumnService.pageList(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return R.ok(this.comActColumnService.getById(id));
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActColumnVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody ComActColumnVO comActColumnVO) {
+        return R.ok(this.comActColumnService.addColumn(comActColumnVO));
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActColumnVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody ComActColumnVO comActColumnVO) {
+        return R.ok(this.comActColumnService.updateColumn(comActColumnVO));
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return this.comActColumnService.delete(id);
+    }
+
+    /**
+     * 项目分类级联查询
+     */
+    @PostMapping("/queryLevel")
+    public R queryLevel(@RequestBody ComActColumnVO comActColumnVO){
+        return this.comActColumnService.queryLevel(comActColumnVO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActCommitteeApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActCommitteeApi.java
new file mode 100644
index 0000000..515ed28
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActCommitteeApi.java
@@ -0,0 +1,87 @@
+package com.panzhihua.service_community.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.api.ApiController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.community.ComActCommiteeVO;
+import com.panzhihua.service_community.entity.ComActCommittee;
+import com.panzhihua.service_community.service.ComActCommitteeService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * (ComActCommittee)表控制层
+ *
+ * @author makejava
+ * @since 2021-09-17 13:55:44
+ */
+@RestController
+@RequestMapping("comActCommittee")
+public class ComActCommitteeApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ComActCommitteeService comActCommitteeService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.comActCommitteeService.pageList(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Serializable id) {
+        return R.ok(this.comActCommitteeService.getById(id));
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActCommittee 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody ComActCommiteeVO comActCommittee) {
+        return this.comActCommitteeService.insert(comActCommittee);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActCommittee 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody ComActCommiteeVO comActCommittee) {
+        return this.comActCommitteeService.update(comActCommittee);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return this.comActCommitteeService.delete(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActDpcApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActDpcApi.java
new file mode 100644
index 0000000..c0cbf36
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActDpcApi.java
@@ -0,0 +1,85 @@
+package com.panzhihua.service_community.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.DeleteMapping;
+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.model.dtos.community.dpc.AddDpcDTO;
+import com.panzhihua.common.model.dtos.community.dpc.EditDpcDTO;
+import com.panzhihua.common.model.dtos.community.dpc.PageDpcDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.service.ComActDpcService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @title: ComActDpcApi
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 人大代表
+ * @author: hans
+ * @date: 2022/06/07 10:57
+ */
+@Slf4j
+@RestController
+@RequestMapping("/dpc")
+public class ComActDpcApi {
+
+    @Resource
+    private ComActDpcService comActDpcService;
+
+    /**
+     * 新增人大代表
+     * @param addDpcDTO
+     * @return
+     */
+    @PostMapping("/add")
+    public R addDpc(@RequestBody AddDpcDTO addDpcDTO) {
+        return comActDpcService.addDpc(addDpcDTO);
+    }
+
+    /**
+     * 修改人大代表
+     * @param editDpcDTO
+     * @return
+     */
+    @PostMapping("/edit")
+    public R editDpc(@RequestBody EditDpcDTO editDpcDTO) {
+        return comActDpcService.editDpc(editDpcDTO);
+    }
+
+    /**
+     * 删除人大代表
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/delete")
+    public R deleteDpc(@RequestParam("id") Long id) {
+        return comActDpcService.deleteDpc(id);
+    }
+
+    /**
+     * 获取人大代表详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/detail")
+    public R detailDpc(@RequestParam("id") Long id) {
+        return comActDpcService.detailDpc(id);
+    }
+
+    /**
+     * 分页查询人大代表
+     * @param pageDpcDTO
+     * @return
+     */
+    @PostMapping("/page")
+    public R pageDpc(@RequestBody PageDpcDTO pageDpcDTO) {
+        return comActDpcService.pageDpc(pageDpcDTO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActEasyPhotoEvaluateController.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActEasyPhotoEvaluateController.java
new file mode 100644
index 0000000..a59bc4c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActEasyPhotoEvaluateController.java
@@ -0,0 +1,111 @@
+package com.panzhihua.service_community.api;
+
+import com.panzhihua.service_community.service.ComActEasyPhotoEvaluateService;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * title: 随手拍、微心愿评价表(ComActEasyPhotoEvaluate)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 随手拍、微心愿评价表
+ *
+ * @author lyq
+ * @date 2022-03-01 13:44:22
+ */
+@RestController
+@RequestMapping("/comActEasyPhotoEvaluate")
+public class ComActEasyPhotoEvaluateController {
+
+    @Resource
+    private ComActEasyPhotoEvaluateService comActEasyPhotoEvaluateService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comActEasyPhotoEvaluate 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-03-01 13:44:22
+     */
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComActEasyPhotoEvaluateDto comActEasyPhotoEvaluate) {
+        return this.comActEasyPhotoEvaluateService.queryByPage(comActEasyPhotoEvaluate);
+    }
+
+    /**
+     * description  add  新增数据
+     *
+     * @param comActEasyPhotoEvaluate 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-01 13:44:22
+     */
+    @PostMapping("/add")
+    public R add(@RequestBody AddComActEasyPhotoEvaluateDto comActEasyPhotoEvaluate) {
+        return this.comActEasyPhotoEvaluateService.insert(comActEasyPhotoEvaluate);
+    }
+
+    /**
+     * description  edit  编辑数据
+     *
+     * @param comActEasyPhotoEvaluate 请求参数
+     * @return 编辑结果
+     * @author lyq
+     * @date 2022-03-01 13:44:22
+     */
+    @PutMapping("/edit")
+    public R edit(@RequestBody EditComActEasyPhotoEvaluateDto comActEasyPhotoEvaluate) {
+        return this.comActEasyPhotoEvaluateService.update(comActEasyPhotoEvaluate);
+    }
+
+    /**
+     * description  deleteById  删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-01 13:44:22
+     */
+    @GetMapping("/delete")
+    public R deleteById(@RequestParam("id") Long id) {
+        return this.comActEasyPhotoEvaluateService.deleteById(id);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-01 13:44:22
+     */
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comActEasyPhotoEvaluateService.detailById(id);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comActEasyPhotoEvaluate 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-01 13:44:22
+     */
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComActEasyPhotoEvaluateDto comActEasyPhotoEvaluate) {
+        return this.comActEasyPhotoEvaluateService.queryByList(comActEasyPhotoEvaluate);
+    }
+
+    @PostMapping("/easy/evaluate")
+    public R evaluateEasyApplets(@RequestBody EvaluateEasyDto whistleDto){
+        return this.comActEasyPhotoEvaluateService.evaluateEasyApplets(whistleDto);
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActEasyPhotoHandlerController.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActEasyPhotoHandlerController.java
new file mode 100644
index 0000000..792e01b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActEasyPhotoHandlerController.java
@@ -0,0 +1,106 @@
+package com.panzhihua.service_community.api;
+
+import com.panzhihua.service_community.service.ComActEasyPhotoHandlerService;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * title: 随手拍、微心愿处理人绑定表(ComActEasyPhotoHandler)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 随手拍、微心愿处理人绑定表
+ *
+ * @author lyq
+ * @date 2022-03-01 13:45:10
+ */
+@RestController
+@RequestMapping("/comActEasyPhotoHandler")
+public class ComActEasyPhotoHandlerController {
+
+    @Resource
+    private ComActEasyPhotoHandlerService comActEasyPhotoHandlerService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comActEasyPhotoHandler 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-03-01 13:45:10
+     */
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComActEasyPhotoHandlerDto comActEasyPhotoHandler) {
+        return this.comActEasyPhotoHandlerService.queryByPage(comActEasyPhotoHandler);
+    }
+
+    /**
+     * description  add  新增数据
+     *
+     * @param comActEasyPhotoHandler 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-01 13:45:10
+     */
+    @PostMapping("/add")
+    public R add(@RequestBody AddComActEasyPhotoHandlerDto comActEasyPhotoHandler) {
+        return this.comActEasyPhotoHandlerService.insert(comActEasyPhotoHandler);
+    }
+
+    /**
+     * description  edit  编辑数据
+     *
+     * @param comActEasyPhotoHandler 请求参数
+     * @return 编辑结果
+     * @author lyq
+     * @date 2022-03-01 13:45:10
+     */
+    @PostMapping("/edit")
+    public R edit(@RequestBody EditComActEasyPhotoHandlerDto comActEasyPhotoHandler) {
+        return this.comActEasyPhotoHandlerService.update(comActEasyPhotoHandler);
+    }
+
+    /**
+     * description  deleteById  删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-01 13:45:10
+     */
+    @GetMapping("/delete")
+    public R deleteById(@RequestParam("id") Long id) {
+        return this.comActEasyPhotoHandlerService.deleteById(id);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-01 13:45:10
+     */
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comActEasyPhotoHandlerService.detailById(id);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comActEasyPhotoHandler 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-01 13:45:10
+     */
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComActEasyPhotoHandlerDto comActEasyPhotoHandler) {
+        return this.comActEasyPhotoHandlerService.queryByList(comActEasyPhotoHandler);
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActEasyPhotoMemberApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActEasyPhotoMemberApi.java
new file mode 100644
index 0000000..c409133
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActEasyPhotoMemberApi.java
@@ -0,0 +1,94 @@
+package com.panzhihua.service_community.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.api.ApiController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.community.easyPhoto.ComActEasyPhotoMemberVO;
+import com.panzhihua.service_community.entity.ComActEasyPhotoMember;
+import com.panzhihua.service_community.service.ComActEasyPhotoMemberService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 随手拍网格员(ComActEasyPhotoMember)表控制层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 随手拍网格员相关功能
+ *
+ * @author zzj
+ * @since 2022-04-12 10:33:26
+ */
+@RestController
+@RequestMapping("comActEasyPhotoMember")
+public class ComActEasyPhotoMemberApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ComActEasyPhotoMemberService comActEasyPhotoMemberService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.comActEasyPhotoMemberService.pageList(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return R.ok(this.comActEasyPhotoMemberService.getById(id));
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActEasyPhotoMemberVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody ComActEasyPhotoMemberVO comActEasyPhotoMemberVO) {
+        ComActEasyPhotoMember comActEasyPhotoMember=new ComActEasyPhotoMember();
+        BeanUtils.copyProperties(comActEasyPhotoMemberVO,comActEasyPhotoMember);
+        return R.ok(this.comActEasyPhotoMemberService.save(comActEasyPhotoMember));
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActEasyPhotoMemberVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody ComActEasyPhotoMemberVO comActEasyPhotoMemberVO) {
+        ComActEasyPhotoMember comActEasyPhotoMember=new ComActEasyPhotoMember();
+        BeanUtils.copyProperties(comActEasyPhotoMemberVO,comActEasyPhotoMember);
+        return R.ok(this.comActEasyPhotoMemberService.updateById(comActEasyPhotoMember));
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return R.ok(this.comActEasyPhotoMemberService.removeById(id));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActEnterpriseApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActEnterpriseApi.java
new file mode 100644
index 0000000..aa51bc6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActEnterpriseApi.java
@@ -0,0 +1,86 @@
+package com.panzhihua.service_community.api;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.dtos.community.enterprise.AddEnterpriseDTO;
+import com.panzhihua.common.model.dtos.community.enterprise.EditEnterpriseDTO;
+import com.panzhihua.common.model.dtos.community.enterprise.PageEnterpriseDTO;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.DeleteMapping;
+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.service_community.service.ComActEnterpriseService;
+
+import io.swagger.annotations.Api;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @title: ComActEnterpriseApi
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 社区企业管理
+ * @author: hans
+ * @date: 2022/05/31 10:22
+ */
+@Slf4j
+@RestController
+@RequestMapping("/enterprise")
+public class ComActEnterpriseApi {
+
+    @Resource
+    private ComActEnterpriseService enterpriseService;
+
+    /**
+     * 新增社区企业
+     * @param addEnterpriseDTO
+     * @return
+     */
+    @PostMapping("/add")
+    public R addEnterprise(@RequestBody AddEnterpriseDTO addEnterpriseDTO) {
+        return enterpriseService.addEnterprise(addEnterpriseDTO);
+    }
+
+    /**
+     * 修改社区企业
+     * @param editEnterpriseDTO
+     * @return
+     */
+    @PostMapping("/edit")
+    public R editEnterprise(@RequestBody EditEnterpriseDTO editEnterpriseDTO) {
+        return enterpriseService.editEnterprise(editEnterpriseDTO);
+    }
+
+    /**
+     * 删除社区企业
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/delete")
+    public R deleteEnterprise(@RequestParam("id") Long id) {
+        return enterpriseService.deleteEnterprise(id);
+    }
+
+    /**
+     * 获取社区企业详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/detail")
+    public R detailEnterprise(@RequestParam("id") Long id) {
+        return enterpriseService.detailEnterprise(id);
+    }
+
+    /**
+     * 分页查询社区企业
+     * @param pageEnterpriseDTO
+     * @return
+     */
+    @PostMapping("/page")
+    public R pageEnterprise(@RequestBody PageEnterpriseDTO pageEnterpriseDTO) {
+        return enterpriseService.pageEnterprise(pageEnterpriseDTO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActEnterpriseTypeApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActEnterpriseTypeApi.java
new file mode 100644
index 0000000..3c775d1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActEnterpriseTypeApi.java
@@ -0,0 +1,95 @@
+package com.panzhihua.service_community.api;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.dtos.community.enterprise.AddEnterpriseTypeDTO;
+import com.panzhihua.common.model.dtos.community.enterprise.EditEnterpriseTypeDTO;
+import com.panzhihua.common.model.dtos.community.enterprise.PageEnterpriseTypeDTO;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.DeleteMapping;
+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.service_community.service.ComActEnterpriseTypeService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @title: ComActEnterpriseTypeApi
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 社区企业服务分类管理
+ * @author: hans
+ * @date: 2022/06/06 15:47
+ */
+@Slf4j
+@RestController
+@RequestMapping("/enterpriseType")
+public class ComActEnterpriseTypeApi {
+
+    @Resource
+    private ComActEnterpriseTypeService comActEnterpriseTypeService;
+
+    /**
+     * 新增服务分类
+     * @param addEnterpriseTypeDTO
+     * @return
+     */
+    @PostMapping("/add")
+    public R addEnterpriseType(@RequestBody AddEnterpriseTypeDTO addEnterpriseTypeDTO) {
+        return comActEnterpriseTypeService.addEnterpriseType(addEnterpriseTypeDTO);
+    }
+
+    /**
+     * 修改服务分类
+     * @param enterpriseTypeDTO
+     * @return
+     */
+    @PostMapping("/edit")
+    public R editEnterpriseType(@RequestBody EditEnterpriseTypeDTO enterpriseTypeDTO) {
+        return comActEnterpriseTypeService.editEnterpriseType(enterpriseTypeDTO);
+    }
+
+    /**
+     * 删除服务分类
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/delete")
+    public R deleteEnterpriseType(@RequestParam("id") Long id) {
+        return comActEnterpriseTypeService.deleteEnterpriseType(id);
+    }
+
+    /**
+     * 获取服务分类详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/detail")
+    public R detailEnterpriseType(@RequestParam("id") Long id) {
+        return comActEnterpriseTypeService.detailEnterpriseType(id);
+    }
+
+    /**
+     * 分页查询服务分类
+     * @param pageEnterpriseTypeDTO
+     * @return
+     */
+    @PostMapping("/page")
+    public R pageEnterpriseType(@RequestBody PageEnterpriseTypeDTO pageEnterpriseTypeDTO) {
+        return comActEnterpriseTypeService.pageEnterpriseType(pageEnterpriseTypeDTO);
+    }
+
+    /**
+     * 获取服务分类列表
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/list")
+    public R getEnterpriseTypeList(@RequestParam("communityId") Long communityId) {
+        return comActEnterpriseTypeService.getEnterpriseTypeList(communityId);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActFourMemberApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActFourMemberApi.java
new file mode 100644
index 0000000..f2fa36a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActFourMemberApi.java
@@ -0,0 +1,103 @@
+package com.panzhihua.service_community.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.api.ApiController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.community.ComActFourMemberVO;
+import com.panzhihua.service_community.entity.ComActFourMember;
+import com.panzhihua.service_community.service.ComActFourMemberService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * (ComActFourMember)表控制层
+ *
+ * @author makejava
+ * @since 2021-09-23 10:13:31
+ */
+@RestController
+@RequestMapping("comActFourMember")
+public class ComActFourMemberApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ComActFourMemberService comActFourMemberService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.comActFourMemberService.pageList(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return this.comActFourMemberService.get(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActFourMember 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody ComActFourMemberVO comActFourMember) {
+        return this.comActFourMemberService.insert(comActFourMember);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActFourMember 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody ComActFourMemberVO comActFourMember) {
+        return this.comActFourMemberService.update(comActFourMember);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param comActFourMember 主键结合
+     * @return 删除结果
+     */
+    @PostMapping("del")
+    public R delete(@RequestBody ComActFourMemberVO comActFourMember) {
+        return this.comActFourMemberService.delete(comActFourMember);
+    }
+
+    /**
+     * 小程序四长四员查询居民列表
+     */
+    @PostMapping("/member")
+    public R query(@RequestBody CommonPage commonPage){
+        return this.comActFourMemberService.selectByMember(commonPage);
+    }
+
+    /**
+     *居民数据详情
+     */
+    @GetMapping("/memberDetail")
+    public R memberDetail(@RequestParam("id")Long id){
+        return this.comActFourMemberService.selectById(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActIntegralUserApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActIntegralUserApi.java
new file mode 100644
index 0000000..603d9c7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActIntegralUserApi.java
@@ -0,0 +1,195 @@
+package com.panzhihua.service_community.api;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.vos.community.integral.IntegralUserRankVO;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.model.dtos.community.integral.ComActIntegralCommunityRankDTO;
+import com.panzhihua.common.model.dtos.community.integral.admin.AddComActIntegralUserDTO;
+import com.panzhihua.common.model.dtos.community.integral.admin.EditComActIntegralRuleDTO;
+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.vos.R;
+import com.panzhihua.service_community.service.ComActIntegralRuleService;
+import com.panzhihua.service_community.service.ComActIntegralUserService;
+import com.panzhihua.service_community.service.ComActIntegralUserTradeService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 用户积分模块
+ */
+@Slf4j
+@RestController
+@RequestMapping("/integral")
+public class ComActIntegralUserApi {
+
+    @Resource
+    private ComActIntegralUserService comActIntegralUserService;
+    @Resource
+    private ComActIntegralRuleService comActIntegralRuleService;
+    @Resource
+    private ComActIntegralUserTradeService comActIntegralUserTradeService;
+
+    /**
+     * 小程序-查询积分说明
+     * 
+     * @return 积分说明
+     */
+    @GetMapping("/explain/applets")
+    public R getIntegralExplainApplets() {
+        return comActIntegralUserService.getIntegralExplainApplets();
+    }
+
+    /**
+     * 用户查询当前社区可领取积分规则列表
+     * 
+     * @param userId
+     *            用户id
+     * @param communityId
+     *            社区id
+     * @return 可领取积分规则列表
+     */
+    @PostMapping("/receive/applets")
+    public R getIntegralReceiveApplets(@RequestParam("userId") Long userId,
+        @RequestParam("communityId") Long communityId) {
+        return comActIntegralUserService.getIntegralReceiveApplets(userId, communityId);
+    }
+
+    /**
+     * 小程序-积分统计
+     * 
+     * @param userId
+     *            用户id
+     * @return 用户积分列表
+     */
+    @GetMapping("/user/statistics")
+    public R getIntegralUserListApplets(@RequestParam("userId") Long userId,
+        @RequestParam(value = "communityId", required = false) Long communityId) {
+        return comActIntegralUserService.getIntegralUserListApplets(userId, communityId);
+    }
+
+    /**
+     * 查询我的积分余额
+     * @param userId
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/user/balance")
+    public R getUserIntegralBalance(@RequestParam("userId") Long userId, @RequestParam("communityId") Long communityId) {
+        return comActIntegralUserService.getUserIntegralBalance(userId, communityId);
+    }
+
+    /**
+     * 查询社区积分账户排行榜
+     * 
+     * @param communityRankDTO
+     *            请求参数
+     * @return 社区积分账户排行榜
+     */
+    @PostMapping("/community/rank/applets")
+    public R getIntegralCommunityRankApplets(@RequestBody ComActIntegralCommunityRankDTO communityRankDTO) {
+        return comActIntegralUserService.getIntegralCommunityRankApplets(communityRankDTO);
+    }
+
+    /**
+     * 小程序-查询用户社区积分明细
+     * 
+     * @param communityTradeDTO
+     *            请求参数
+     * @return 用户社区积分明细
+     */
+    @PostMapping("/community/trade/applets")
+    public R getIntegralCommunityTradeApplets(@RequestBody ComActIntegralCommunityRankDTO communityTradeDTO) {
+        return comActIntegralUserTradeService.getIntegralCommunityTradeApplets(communityTradeDTO);
+    }
+
+    /**
+     * 社区后台-根据社区id查询社区下积分规则列表
+     * 
+     * @param integralRuleDTO
+     *            请求参数
+     * @return 社区下积分规则列表
+     */
+    @PostMapping("/rule/list/admin")
+    public R getIntegralRuleAdminList(@RequestBody PageComActIntegralRuleDTO integralRuleDTO) {
+        return comActIntegralRuleService.getIntegralRuleAdminList(integralRuleDTO);
+    }
+
+    /**
+     * 社区后台-编辑社区积分规则
+     * 
+     * @param integralRuleDTO
+     *            请求参数
+     * @return 编辑结果
+     */
+    @PostMapping("/rule/edit/admin")
+    public R editIntegralRuleAdmin(@RequestBody EditComActIntegralRuleDTO integralRuleDTO) {
+        return comActIntegralRuleService.editIntegralRuleAdmin(integralRuleDTO);
+    }
+
+    /**
+     * 社区后台-分页查询社区下积分明细记录
+     * 
+     * @param integralRuleDTO
+     *            请求参数
+     * @return 社区下积分明细记录
+     */
+    @PostMapping("/user/trade/page/admin")
+    public R getIntegralTradeListAdmin(@RequestBody PageComActIntegralTradeDTO integralRuleDTO) {
+        return comActIntegralUserTradeService.getIntegralTradeListAdmin(integralRuleDTO);
+    }
+
+    /**
+     * 给用户添加积分
+     * 
+     * @param integralUserDTO
+     *            请求参数
+     * @return 添加积分结果
+     */
+    @PostMapping("/user/add/admin")
+    public R addIntegralTradeAdmin(@RequestBody AddComActIntegralUserDTO integralUserDTO) {
+        return comActIntegralUserTradeService.addIntegralTradeAdmin(integralUserDTO);
+    }
+
+    /**
+     * 根据社区活动id查询社区活动报名且未参与人员列表
+     * 
+     * @param activityId
+     *            活动id
+     * @return 社区活动报名且未参与人员列表
+     */
+    @PostMapping("/act/activity/admin")
+    public R getTaskActivityPeopleList(@RequestParam("activityId") Long activityId) {
+        return comActIntegralUserService.getTaskActivityPeopleList(activityId);
+    }
+
+    /**
+     * 获取积分详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/user/detail")
+    public R getUserIntegralDetail(@RequestParam("id") Long id) {
+        return comActIntegralUserService.getUserIntegralDetail(id);
+    }
+
+    /**
+     * 小程序-查询用户在当前社区积分排名
+     *
+     * @param userId
+     *            用户id
+     * @param communityId
+     *            社区id
+     * @return 用户在当前社区积分排名
+     */
+    @GetMapping("/user/getIntegralUserRank")
+    public R  getIntegralUserRank(@RequestParam("communityId") Long communityId,
+                                  @RequestParam("userId") Long userId)
+    {
+        return R.ok(comActIntegralUserService.getIntegralUserRank(communityId,userId));
+    }
+
+
+}
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/ComActPictureLibraryApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActPictureLibraryApi.java
new file mode 100644
index 0000000..b3e782f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActPictureLibraryApi.java
@@ -0,0 +1,37 @@
+package com.panzhihua.service_community.api;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.service.ComActPictureLibraryService;
+import io.swagger.annotations.ApiOperation;
+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 com.panzhihua.common.service.community.CommunityService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @title: ComActPictureLibraryApi
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 公共图库
+ * @author: hans
+ * @date: 2021/11/23 16:54
+ */
+@Slf4j
+@RestController
+@RequestMapping("/picture/library")
+public class ComActPictureLibraryApi {
+
+    @Resource
+    private ComActPictureLibraryService comActPictureLibraryService;
+
+    @GetMapping("/get")
+    @ApiOperation("获取预设图库")
+    public R getPresetPictureLibrary(@RequestParam("type") Integer type, @RequestParam("subtype") Integer subtype) {
+        return comActPictureLibraryService.getPresetPictureLibrary(type, subtype);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActProceedingsApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActProceedingsApi.java
new file mode 100644
index 0000000..f4d16dd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActProceedingsApi.java
@@ -0,0 +1,50 @@
+package com.panzhihua.service_community.api;
+
+import com.panzhihua.common.model.dtos.community.ComActProceedingsDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.service.ComActProceedingsService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@RestController
+@RequestMapping("/proceedings")
+public class ComActProceedingsApi {
+    @Resource
+    private ComActProceedingsService comActProceedingsService;
+
+    /**
+     * description 分页查询议事委员会列表
+     *
+     * @param keyWord 搜索关键字
+     * @param page 页数
+     * @param size 每页大小
+     * @return R  查询结果对象
+     * @author zts
+     * @date 2022-11-02
+     */
+    @GetMapping("/list")
+    public R list(@RequestParam(value = "page",required = false) Integer page,
+                  @RequestParam(value = "size",required = false) Integer size,
+                  @RequestParam(value = "keyWord",required = false) String keyWord){
+        return comActProceedingsService.pageProceedings(page,size,keyWord);
+    }
+
+    /**
+     * 修改或新增议事委员会
+     * @param comActProceedingsDTO 对象
+     * @return R 处理结果
+     * @author zts
+     * @date 2022-11-02
+     * */
+    @PostMapping
+    public R addOrUpdate(@RequestBody ComActProceedingsDTO comActProceedingsDTO){
+        return comActProceedingsService.addOrUpdate(comActProceedingsDTO);
+    }
+
+    @DeleteMapping("/remove")
+    public R removeProceedings(@RequestParam("id") Long id){
+        return R.ok(comActProceedingsService.removeById(id));
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActRaffleApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActRaffleApi.java
new file mode 100644
index 0000000..404eb52
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActRaffleApi.java
@@ -0,0 +1,89 @@
+package com.panzhihua.service_community.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.api.ApiController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.community.raffle.ComActRaffleVO;
+import com.panzhihua.service_community.entity.ComActRaffle;
+import com.panzhihua.service_community.service.ComActRaffleService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 抽奖活动表(ComActRaffle)表控制层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 抽奖活动表相关功能
+ *
+ * @author zzj
+ * @since 2022-02-18 14:31:20
+ */
+@RestController
+@RequestMapping("comActRaffle")
+public class ComActRaffleApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ComActRaffleService comActRaffleService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.comActRaffleService.pageList(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/detail")
+    public R selectOne(@RequestParam("id") Long id,@RequestParam("userId")Long userId) {
+        return this.comActRaffleService.selectById(id,userId);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActRaffleVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody ComActRaffleVO comActRaffleVO) {
+        return this.comActRaffleService.insert(comActRaffleVO);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActRaffleVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody ComActRaffleVO comActRaffleVO) {
+        return this.comActRaffleService.update(comActRaffleVO);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return this.comActRaffleService.delete(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActRafflePrizeApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActRafflePrizeApi.java
new file mode 100644
index 0000000..0f87c27
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActRafflePrizeApi.java
@@ -0,0 +1,88 @@
+package com.panzhihua.service_community.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.api.ApiController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.service_community.entity.ComActRafflePrize;
+import com.panzhihua.service_community.service.ComActRafflePrizeService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 抽奖活动奖品表(ComActRafflePrize)表控制层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 抽奖活动奖品表相关功能
+ *
+ * @author zzj
+ * @since 2022-02-18 14:31:46
+ */
+@RestController
+@RequestMapping("comActRafflePrize")
+public class ComActRafflePrizeApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ComActRafflePrizeService comActRafflePrizeService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.comActRafflePrizeService.pageList(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return R.ok(this.comActRafflePrizeService.getById(id));
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActRafflePrize 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody ComActRafflePrize comActRafflePrize) {
+        return R.ok(this.comActRafflePrizeService.save(comActRafflePrize));
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActRafflePrize 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody ComActRafflePrize comActRafflePrize) {
+        return R.ok(this.comActRafflePrizeService.updateById(comActRafflePrize));
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return R.ok(this.comActRafflePrizeService.removeById(id));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActRaffleRecordApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActRaffleRecordApi.java
new file mode 100644
index 0000000..fcfdc64
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActRaffleRecordApi.java
@@ -0,0 +1,126 @@
+package com.panzhihua.service_community.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.api.ApiController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.community.raffle.ComActRaffleRecordVO;
+import com.panzhihua.common.model.vos.community.warehouse.QRCodeVO;
+import com.panzhihua.service_community.entity.ComActRaffleRecord;
+import com.panzhihua.service_community.service.ComActRaffleRecordService;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 抽奖活动中奖记录表(ComActRaffleRecord)表控制层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 抽奖活动中奖记录表相关功能
+ *
+ * @author zzj
+ * @since 2022-02-18 14:32:02
+ */
+@RestController
+@RequestMapping("comActRaffleRecord")
+public class ComActRaffleRecordApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ComActRaffleRecordService comActRaffleRecordService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.comActRaffleRecordService.pageList(commonPage);
+    }
+    @GetMapping("/queryPrize")
+    public R queryPrize(@RequestParam("id")Long id){
+        return this.comActRaffleRecordService.queryPrize(id);
+    }
+
+    /**
+     * 生成二维码
+     * @param qrCodeVO
+     * @return
+     */
+    @ApiOperation("生成二维码")
+    @PostMapping("/getQRCode")
+    public R getQRCode(@RequestBody QRCodeVO qrCodeVO){
+        return this.comActRaffleRecordService.queryQrCode(qrCodeVO);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return this.comActRaffleRecordService.selectById(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActRaffleRecordVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody ComActRaffleRecordVO comActRaffleRecordVO) {
+        ComActRaffleRecord comActRaffleRecord=new ComActRaffleRecord();
+        BeanUtils.copyProperties(comActRaffleRecordVO,comActRaffleRecord);
+        return R.ok(this.comActRaffleRecordService.save(comActRaffleRecord));
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActRaffleRecordVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody ComActRaffleRecordVO comActRaffleRecordVO) {
+        ComActRaffleRecord comActRaffleRecord1=comActRaffleRecordService.getById(comActRaffleRecordVO.getId());
+        if(comActRaffleRecord1.getStatus()!=1){
+            return R.fail("核销失败");
+        }
+        ComActRaffleRecord comActRaffleRecord=new ComActRaffleRecord();
+        BeanUtils.copyProperties(comActRaffleRecordVO,comActRaffleRecord);
+        return R.ok(this.comActRaffleRecordService.updateById(comActRaffleRecord));
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return R.ok(this.comActRaffleRecordService.removeById(id));
+    }
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("export")
+    public R export(@RequestBody CommonPage commonPage) {
+        return this.comActRaffleRecordService.export(commonPage);
+    }
+}
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
new file mode 100644
index 0000000..f3f7169
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActReserveApi.java
@@ -0,0 +1,396 @@
+package com.panzhihua.service_community.api;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.*;
+
+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.dtos.community.reserve.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActReserveCommitVO;
+import com.panzhihua.common.model.vos.community.reserve.ComActReserveDetailAdminVO;
+import com.panzhihua.service_community.service.*;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 预约登记
+ */
+@Slf4j
+@RestController
+@RequestMapping("/reserve/")
+public class ComActReserveApi {
+
+    @Resource
+    private ComActReserveService comActReserveService;
+    @Resource
+    private ComActReserveRecordService comActReserveRecordService;
+    @Resource
+    private ComActReserveAnswerContentService comActReserveAnswerContentService;
+    @Resource
+    private ComActReserveOperationRecordService comActReserveOperationRecordService;
+    @Resource
+    private ComActReserveSubService comActReserveSubService;
+
+    /**
+     * 社区后台-分页查询预约登记列表
+     * @param pageReserveDTO    请求参数
+     * @return  预约登记列表
+     */
+    @PostMapping("/admin/page")
+    public R pageReserveAdmin(@RequestBody PageReserveAdminDTO pageReserveDTO){
+        return comActReserveService.pageReserveAdmin(pageReserveDTO);
+    }
+
+    /**
+     * 社区后台-新增预约登记信息
+     * @param addReserveDTO 请求参数
+     * @return  新增结果
+     */
+    @PostMapping("/admin/add")
+    public R addReserveAdmin(@RequestBody AddReserveAdminDTO addReserveDTO){
+        return comActReserveService.addReserveAdmin(addReserveDTO);
+    }
+
+    /**
+     * 社区后台-编辑预约登记信息
+     * @param editReserveDTO 请求参数
+     * @return  新增结果
+     */
+    @PostMapping("/admin/edit")
+    public R editReserveAdmin(@RequestBody EditReserveAdminDTO editReserveDTO){
+        return comActReserveService.editReserveAdmin(editReserveDTO);
+    }
+
+    /**
+     * 社区后台-修改预约登记状态
+     * @param editReserveDTO    请求参数
+     * @return  修改结果
+     */
+    @PostMapping("/admin/edit/status")
+    public R editReserveStatusAdmin(@RequestBody EditComActReserveStatusDTO editReserveDTO){
+        return comActReserveService.editReserveStatusAdmin(editReserveDTO);
+    }
+
+    /**
+     * 社区后台-继续预约登记
+     * @param editReserveDTO    请求参数
+     * @return  修改结果
+     */
+    @PostMapping("/admin/edit/info")
+    public R editReserveInfoAdmin(@RequestBody EditComActReserveInfoDTO editReserveDTO){
+        return comActReserveService.editReserveInfoAdmin(editReserveDTO);
+    }
+
+    /**
+     * 社区后台-根据预约登记id查询详情
+     * @param reserveId 预约登记id
+     * @return  预约登记详情
+     */
+    @GetMapping("/admin/detail")
+    public R<ComActReserveDetailAdminVO> detailReserveAdmin(@RequestParam("reserveId") Long reserveId) {
+        return comActReserveService.detailReserveAdmin(reserveId);
+    }
+
+    /**
+     * 预约登记详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/detail")
+    public R detail(@RequestParam("id") Long id,@RequestParam("userId") Long userId,@RequestParam("recordId") Long recordId,@RequestParam("isBack") Integer isBack){
+        if(id!=null){
+            return comActReserveService.getById(id,userId,recordId,isBack);
+        }
+        return R.fail();
+    }
+
+    /**
+     * 外部调用提交预约/登记
+     * @param comActReserveCommitVO
+     * @return
+     */
+    @PostMapping("/commitNoToken")
+    public R commitNoToken(@RequestBody ComActReserveCommitVO comActReserveCommitVO){
+        return comActReserveService.commitNoToken(comActReserveCommitVO);
+    }
+
+    /**
+     * 外部调用提交居家隔离
+     * @param comActReserveCommitVO
+     * @return
+     */
+    @PostMapping("/homeQuarantine/commitNoToken")
+    public R homeQuarantineCommitNoToken(@RequestBody ComActReserveCommitVO comActReserveCommitVO){
+        return comActReserveService.commitNoToken(comActReserveCommitVO);
+    }
+
+    /**
+     * 小程序提交预约/登记
+     * @param comActReserveCommitVO
+     * @return
+     */
+    @PostMapping("/commit")
+    public R commit(@RequestBody ComActReserveCommitVO comActReserveCommitVO){
+        return comActReserveService.commit(comActReserveCommitVO);
+    }
+    /**
+     * 社区后台-根据社区id统计预约类数据
+     * @param makeStatisticsDTO   请求参数
+     * @return  统计预约类数据
+     */
+    @PostMapping("/admin/make/statistics")
+    public R makeStatisticsAdmin(@RequestBody ComActReserveMakeStatisticsDTO makeStatisticsDTO){
+        return comActReserveService.makeStatisticsAdmin(makeStatisticsDTO);
+    }
+
+    /**
+     * 社区后台-查询导出预约统计汇总数据
+     * @param makeStatisticsDTO   请求参数
+     * @return  统计预约类数据
+     */
+    @PostMapping("/admin/make/statistics/export")
+    public R makeStatisticsExportAdmin(@RequestBody ComActReserveMakeStatisticsDTO makeStatisticsDTO){
+        return comActReserveService.makeStatisticsExportAdmin(makeStatisticsDTO);
+    }
+
+    /**
+     * 社区后台-根据预约id查询预约明细
+     * @param pageMakeDTO   请求参数
+     * @return  预约明细
+     */
+    @PostMapping("/admin/make/page")
+    public R pageMakeAdmin(@RequestBody PageReserveMakeAdminDTO pageMakeDTO){
+        return comActReserveRecordService.pageMakeAdmin(pageMakeDTO);
+    }
+
+    /**
+     * 根据预约记录id查询预约明细操作记录
+     * @param reserveRecordId   预约记录id
+     * @return  预约明细操作记录
+     */
+    @GetMapping("/admin/make/detail")
+    public R detailMakeAdmin(@RequestParam("reserveRecordId") Long reserveRecordId){
+        return comActReserveRecordService.detailMakeAdmin(reserveRecordId);
+    }
+
+    /**
+     * 批量取消预约记录
+     * @param reserveRecordDTO   请求参数
+     * @return  取消结果
+     */
+    @PostMapping("/admin/make/cancel")
+    public R makeCancelAdmin(@RequestBody CancelReserveRecordDTO reserveRecordDTO){
+        return comActReserveRecordService.makeCancelAdmin(reserveRecordDTO);
+    }
+
+    /**
+     * 预约明细导出数据查询
+     * @param pageMakeDTO   请求参数
+     * @return  预约明细数据
+     */
+    @PostMapping("/admin/make/list/export")
+    public R exportMakeAdmin(@RequestBody PageReserveMakeAdminDTO pageMakeDTO){
+        return comActReserveRecordService.exportMakeAdmin(pageMakeDTO);
+    }
+
+    /**
+     * 分页查询登记统计汇总
+     * @param registerStatisticsDTO 请求参数
+     * @return  登记统计汇总
+     */
+    @PostMapping("/admin/register/page")
+    public R registerStatisticsAdmin(@RequestBody ComActReserveRegisterStatisticsDTO registerStatisticsDTO){
+        return comActReserveRecordService.registerStatisticsAdmin(registerStatisticsDTO);
+    }
+
+    /**
+     * 导出登记统计汇总
+     * @param registerStatisticsDTO 请求参数
+     * @return  登记统计汇总
+     */
+    @PostMapping("/admin/register/export")
+    public R registerStatisticsExportAdmin(@RequestBody ComActReserveRegisterStatisticsDTO registerStatisticsDTO){
+        return comActReserveRecordService.registerStatisticsExportAdmin(registerStatisticsDTO);
+    }
+
+    /**
+     * 分页查询预约处理列表
+     * @param pageMakeHandleDTO 请求参数
+     * @return  预约处理列表
+     */
+    @PostMapping("/admin/make/handle/page")
+    public R pageMakeHandleAdmin(@RequestBody PageReserveMakeHandleAdminDTO pageMakeHandleDTO){
+        return comActReserveRecordService.pageMakeHandleAdmin(pageMakeHandleDTO);
+    }
+
+    /**
+     * 批量处理预约记录
+     * @param makeHandleDTO 请求参数
+     * @return  处理结果
+     */
+    @PostMapping("/admin/make/handle")
+    public R makeHandleAdmin(@RequestBody MakeHandleAdminDTO makeHandleDTO){
+        return comActReserveRecordService.makeHandleAdmin(makeHandleDTO);
+    }
+
+    /**
+     * 导出预约处理列表数据查询
+     * @param pageMakeHandleDTO 请求参数
+     * @return  预约处理列表
+     */
+    @PostMapping("/admin/make/handle/export")
+    public R exportMakeHandleAdmin(@RequestBody PageReserveMakeHandleAdminDTO pageMakeHandleDTO){
+        return comActReserveRecordService.exportMakeHandleAdmin(pageMakeHandleDTO);
+    }
+
+    /**
+     * 删除预约登记信息
+     * @param reserveId 预约登记id
+     * @return  删除结果
+     */
+    @GetMapping("/admin/delete")
+    public R deleteReserveAdmin(@RequestParam("reserveId") Long reserveId){
+        return comActReserveService.deleteReserveAdmin(reserveId);
+    }
+
+    /**
+     * 查询社区所有预约信息列表
+     * @param communityId   社区id
+     * @return  预约信息列表
+     */
+    @GetMapping("/admin/list")
+    public R listReserveAdmin(@RequestParam("communityId") Long communityId){
+        return comActReserveService.listReserveAdmin(communityId);
+    }
+
+    /**
+     * 导出登记明细数据
+     * @param pageReserveRegisterDetailedAdminDTO 登记id
+     * @return  登记明细数据
+     */
+    @PostMapping("/admin/register/list/export")
+    public R exportRegisterAdmin(@RequestBody PageReserveRegisterDetailedAdminDTO pageReserveRegisterDetailedAdminDTO){
+        return comActReserveAnswerContentService.exportRegisterAdmin(pageReserveRegisterDetailedAdminDTO);
+    }
+
+    /**
+     * 我的预约/登记
+     * @param pageUserReserveDTO
+     * @return
+     */
+    @PostMapping("/userReserveList")
+    public R userReserveList(@RequestBody PageUserReserveDTO pageUserReserveDTO){
+        return comActReserveService.pageReserveList(pageUserReserveDTO);
+    }
+    /**
+     * 取消预约/登记
+     */
+    @PostMapping("/cancelReserve")
+    public R userCancelReserve(@RequestBody CancelRecordDTO cancelRecordDTO){
+        return comActReserveRecordService.cancel(cancelRecordDTO);
+    }
+
+    /**
+     * 预约详情操作记录
+     */
+    @PostMapping("/detailOperation")
+    public R reserveOperation(@RequestBody OperationDetailDTO comActReserveOperationRecordDO){
+        return comActReserveOperationRecordService.detailOperationRecord(comActReserveOperationRecordDO);
+    }
+
+    /**
+     * 查询预约登记题目列表
+     * @param reserveId 预约登记id
+     * @return  约登记题目列表
+     */
+    @GetMapping("/admin/subject/list")
+    public R subjectListAdmin(@RequestParam("reserveId") Long reserveId){
+        return comActReserveSubService.subjectListAdmin(reserveId);
+    }
+
+    /**
+     * 查询预约登记题目下属选择项列表
+     * 
+     * @param reserveSubId
+     *            预约登记id
+     * @return 查询预约登记题目下属选择项列表
+     */
+    @GetMapping("/admin/subject/selection/list")
+    public List<String> subjectSelectionListAdmin(@RequestParam("reserveSubId") Long reserveSubId) {
+        return comActReserveSubService.subjectSelectionListAdmin(reserveSubId);
+    }
+    /**
+     * 分页查询登记明细列表
+     * @param detailedAdminDTO  请求参数
+     * @return  登记明细列表
+     */
+    @PostMapping("/admin/register/detailed/list")
+    public R registerDetailedListAdmin(@RequestBody PageReserveRegisterDetailedAdminDTO detailedAdminDTO){
+        return comActReserveAnswerContentService.registerDetailedListAdmin(detailedAdminDTO);
+    }
+
+    /**
+     * 导出登记明细列表
+     * @param detailedAdminDTO  请求参数
+     * @return  登记明细列表
+     */
+    @PostMapping("/admin/register/detailed/list/export")
+    public R registerDetailedListAdminExport(@RequestBody PageReserveRegisterDetailedAdminDTO detailedAdminDTO){
+        return comActReserveAnswerContentService.registerDetailedListAdminExport(detailedAdminDTO);
+    }
+
+    @GetMapping("/admin/register/detailed/detail")
+    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);
+    }
+
+    /**
+     * 分页查询居家隔离统计
+     * @param detailedAdminDTO
+     * @return
+     */
+    @PostMapping("/admin/register/homeQuarantine/page")
+    public R pageRegisterHomeQuarantine(@RequestBody PageReserveRegisterDetailedAdminDTO detailedAdminDTO) {
+        return comActReserveAnswerContentService.pageRegisterHomeQuarantine(detailedAdminDTO);
+    }
+
+    /**
+     * 居家隔离导出
+     * @param detailedAdminDTO
+     * @return
+     */
+    @PostMapping("/admin/homeQuarantine/export")
+    public R exportHomeQuarantine(@RequestBody PageReserveRegisterDetailedAdminDTO detailedAdminDTO) {
+        return comActReserveAnswerContentService.exportHomeQuarantine(detailedAdminDTO);
+    }
+
+    @GetMapping("/bigScreenStaticsReserve")
+    public R bigScreenStaticsReserve(@RequestParam("communityId") Long communityId){
+        return comActReserveAnswerContentService.bigScreenStaticsReserve(communityId);
+    }
+
+    @GetMapping("/record/delete")
+    public R deleteRecord(@RequestParam("recordId")Long recordId){
+        return R.ok(comActReserveRecordService.removeById(recordId));
+    }
+
+    @GetMapping("/fiveCount")
+    public R fiveCount(@RequestParam("reserveId") Long reserveId){
+        return comActReserveRecordService.fiveCount(reserveId);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActReserveDangerAreaApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActReserveDangerAreaApi.java
new file mode 100644
index 0000000..f057e98
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActReserveDangerAreaApi.java
@@ -0,0 +1,101 @@
+package com.panzhihua.service_community.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.api.ApiController;
+import com.panzhihua.common.model.dtos.community.reserve.EditDangerBatchDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.community.reserve.ComActReserveDangerAreaVO;
+import com.panzhihua.service_community.entity.ComActReserveDangerArea;
+import com.panzhihua.service_community.service.ComActReserveDangerAreaService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * (ComActReserveDangerArea)表控制层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 相关功能
+ *
+ * @author zzj
+ * @since 2022-04-07 14:22:21
+ */
+@RestController
+@RequestMapping("comActReserveDangerArea")
+public class ComActReserveDangerAreaApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ComActReserveDangerAreaService comActReserveDangerAreaService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.comActReserveDangerAreaService.pageList(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return R.ok(this.comActReserveDangerAreaService.getById(id));
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActReserveDangerAreaVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody ComActReserveDangerAreaVO comActReserveDangerAreaVO) {
+        ComActReserveDangerArea comActReserveDangerArea=new ComActReserveDangerArea();
+        BeanUtils.copyProperties(comActReserveDangerAreaVO,comActReserveDangerArea);
+        return R.ok(this.comActReserveDangerAreaService.updateById(comActReserveDangerArea));
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return R.ok(this.comActReserveDangerAreaService.removeById(id));
+    }
+
+    /**
+     * 风险区数据统计
+     * @return
+     */
+    @GetMapping("/statics")
+    public R statics(){
+        return this.comActReserveDangerAreaService.statics();
+    }
+
+    /**
+     * 批量设置起始时间
+     * @param editDangerBatchDTO
+     * @return
+     */
+    @PostMapping("/updateBatch")
+    public R updateBatch(@RequestBody EditDangerBatchDTO editDangerBatchDTO){
+        return this.comActReserveDangerAreaService.updateBatch(editDangerBatchDTO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialMemberApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialMemberApi.java
new file mode 100644
index 0000000..084bcb3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialMemberApi.java
@@ -0,0 +1,87 @@
+package com.panzhihua.service_community.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.api.ApiController;
+import com.panzhihua.common.model.vos.ComActSocialMemberVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.service_community.entity.ComActSocialMember;
+import com.panzhihua.service_community.service.ComActSocialMemberService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 社会组织成员表(ComActSocialMember)表控制层
+ *
+ * @author makejava
+ * @since 2021-10-22 09:52:47
+ */
+@RestController
+@RequestMapping("comActSocialMember")
+public class ComActSocialMemberApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ComActSocialMemberService comActSocialMemberService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.comActSocialMemberService.pageList(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return this.comActSocialMemberService.detail(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActSocialMember 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody ComActSocialMemberVO comActSocialMember) {
+        return this.comActSocialMemberService.insert(comActSocialMember);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActSocialMember 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody ComActSocialMemberVO comActSocialMember) {
+        return this.comActSocialMemberService.update(comActSocialMember);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return this.comActSocialMemberService.delete(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialOrgApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialOrgApi.java
new file mode 100644
index 0000000..26df63d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialOrgApi.java
@@ -0,0 +1,97 @@
+package com.panzhihua.service_community.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.api.ApiController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.community.ComActSocialOrgVO;
+import com.panzhihua.service_community.entity.ComActSocialOrg;
+import com.panzhihua.service_community.service.ComActSocialOrgService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 社会组织(ComActSocialOrg)表控制层
+ *
+ * @author makejava
+ * @since 2021-09-17 10:45:31
+ */
+@RestController
+@RequestMapping("comActSocialOrg")
+public class ComActSocialOrgApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ComActSocialOrgService comActSocialOrgService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.comActSocialOrgService.pageList(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return this.comActSocialOrgService.selectById(id);
+    }
+
+    /**
+     * 通过userId查询
+     *
+     * @param userId 主键
+     * @return 单条数据
+     */
+    @GetMapping("/selectByUserId")
+    public R selectOneByUserId(@RequestParam("userId") Long userId) {
+        return R.ok(this.comActSocialOrgService.getOne(new QueryWrapper<ComActSocialOrg>().lambda().eq(ComActSocialOrg::getUserId,userId)));
+    }
+    /**
+     * 新增数据
+     *
+     * @param comActSocialOrg 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody ComActSocialOrgVO comActSocialOrg) {
+        return this.comActSocialOrgService.insert(comActSocialOrg);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActSocialOrg 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody ComActSocialOrgVO comActSocialOrg) {
+        return this.comActSocialOrgService.update(comActSocialOrg);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return this.comActSocialOrgService.delete(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialOrgHatchApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialOrgHatchApi.java
new file mode 100644
index 0000000..a199604
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialOrgHatchApi.java
@@ -0,0 +1,74 @@
+package com.panzhihua.service_community.api;
+
+
+import javax.annotation.Resource;
+
+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.common.model.dtos.community.social.PageSocialOrgHatchDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.service.ComActSocialOrgHatchService;
+
+/**
+ * 社会组织孵化表(ComActSocialOrgHatch)表控制层
+ *
+ * @author makejava
+ * @since 2022-04-18 14:12:27
+ */
+@RestController
+@RequestMapping("comActSocialOrgHatch")
+public class ComActSocialOrgHatchApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ComActSocialOrgHatchService comActSocialOrgHatchService;
+
+    /**
+     * 分页查询孵化数据
+     * @param pageHatchDTO
+     * @return
+     */
+    @PostMapping("/page")
+    public R pageOrgHatch(@RequestBody PageSocialOrgHatchDTO pageHatchDTO) {
+        return comActSocialOrgHatchService.pageOrgHatch(pageHatchDTO);
+    }
+
+    /**
+     * 查看孵化数据详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/detail")
+    public R detailOrgHatch(@RequestParam("id") Long id) {
+        return comActSocialOrgHatchService.detailOrgHatch(id);
+    }
+
+    /**
+     * 修改孵化状态
+     * @param id
+     * @param status
+     * @return
+     */
+    @PutMapping("/updateStatus")
+    public R updateOrgHatchStatus(@RequestParam("id") Long id, @RequestParam("status") Integer status) {
+        return comActSocialOrgHatchService.updateOrgHatchStatus(id, status);
+    }
+
+    /**
+     * 删除孵化数据
+     * @param id
+     * @return
+     */
+    @GetMapping("/delete")
+    public R deleteOrgHatch(@RequestParam("id") Long id) {
+        return comActSocialOrgHatchService.deleteOrgHatch(id);
+    }
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialOrgHatchAuditApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialOrgHatchAuditApi.java
new file mode 100644
index 0000000..a29a3da
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialOrgHatchAuditApi.java
@@ -0,0 +1,114 @@
+package com.panzhihua.service_community.api;
+
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.dtos.community.social.HatchAuditProcessDTO;
+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.common.model.dtos.community.social.PageSocialOrgHatchAuditDTO;
+import com.panzhihua.common.model.dtos.community.social.SocialOrgHatchAuditDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.service.ComActSocialOrgHatchAuditService;
+
+/**
+ * 社会组织孵化申请表(ComActSocialOrgHatchAudit)表控制层
+ *
+ * @author makejava
+ * @since 2022-04-18 14:12:27
+ */
+@RestController
+@RequestMapping("comActSocialOrgHatchAudit")
+public class ComActSocialOrgHatchAuditApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ComActSocialOrgHatchAuditService comActSocialOrgHatchAuditService;
+
+    /**
+     * 分页查询孵化申请
+     * @param pageHatchAuditDTO
+     * @return
+     */
+    @PostMapping("/page")
+    public R pageHatchAudit(@RequestBody PageSocialOrgHatchAuditDTO pageHatchAuditDTO) {
+        return comActSocialOrgHatchAuditService.pageHatchAudit(pageHatchAuditDTO);
+    }
+
+    /**
+     * 查看孵化申请详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/detail")
+    public R detailHatchAudit(@RequestParam("id") Long id) {
+        return comActSocialOrgHatchAuditService.detailHatchAudit(id);
+    }
+
+    /**
+     * 修改孵化申请
+     * @param hatchAuditDTO
+     * @return
+     */
+    @PostMapping("/update")
+    public R updateHatchAudit(@RequestBody SocialOrgHatchAuditDTO hatchAuditDTO) {
+        return comActSocialOrgHatchAuditService.updateHatchAudit(hatchAuditDTO);
+    }
+
+    /**
+     * 获取孵化流程配置
+     * @return
+     */
+    @GetMapping("/process")
+    public R getHatchAuditProcess() {
+        return comActSocialOrgHatchAuditService.getHatchAuditProcess();
+    }
+
+    /**
+     * 修改孵化流程配置
+     * @param processDTO
+     * @return
+     */
+    @PutMapping("/process")
+    public R putHatchAuditProcess(@RequestBody HatchAuditProcessDTO processDTO) {
+        return comActSocialOrgHatchAuditService.putHatchAuditProcess(processDTO);
+    }
+
+    /**
+     * 新增孵化申请
+     * @param hatchAuditDTO
+     * @return
+     */
+    @PostMapping("/add")
+    public R addHatchAudit(@RequestBody SocialOrgHatchAuditDTO hatchAuditDTO) {
+        return comActSocialOrgHatchAuditService.addHatchAudit(hatchAuditDTO);
+    }
+
+    /**
+     * 查看孵化申请审核进度
+     * @param userId
+     * @return
+     */
+    @GetMapping("/schedule")
+    public R getHatchAuditSchedule(@RequestParam("userId") Long userId) {
+        return comActSocialOrgHatchAuditService.getHatchAuditSchedule(userId);
+    }
+
+    /**
+     * 删除孵化申请详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/delete")
+    public R deleteHatchAudit(@RequestParam("id") Long id) {
+        return comActSocialOrgHatchAuditService.deleteHatchAudit(id);
+    }
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialProjectApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialProjectApi.java
new file mode 100644
index 0000000..d897045
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialProjectApi.java
@@ -0,0 +1,150 @@
+package com.panzhihua.service_community.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.api.ApiController;
+import com.panzhihua.common.model.dtos.community.social.PageProjectDTO;
+import com.panzhihua.common.model.dtos.community.social.PageProjectSignListDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.community.social.SocialProjectVO;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.service_community.entity.ComActSocialProject;
+import com.panzhihua.service_community.service.ComActSocialProjectService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 三社联动项目表(ComActSocialProject)表控制层
+ *
+ * @author makejava
+ * @since 2021-12-22 14:02:48
+ */
+@RestController
+@RequestMapping("comActSocialProject")
+public class ComActSocialProjectApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ComActSocialProjectService comActSocialProjectService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.comActSocialProjectService.pageList(commonPage);
+    }
+
+    /**
+     * 平台详情接口
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return this.comActSocialProjectService.getByBackstage(id);
+    }
+    /**
+     * 根据项目id分页获取关联项目
+     */
+    @PostMapping("/getRelation")
+    public R getRelation(@RequestBody CommonPage commonPage){
+        return this.comActSocialProjectService.getProject(commonPage);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param socialProjectVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody SocialProjectVO socialProjectVO) {
+        ComActSocialProject comActSocialProject=new ComActSocialProject();
+        BeanUtils.copyProperties(socialProjectVO,comActSocialProject);
+//        comActSocialProject.setId(Snowflake.getId());
+        comActSocialProject.setCreateTime(new Date());
+        if(socialProjectVO.getLevel()>1){
+            ComActSocialProject comActSocialProject1=comActSocialProjectService.getById(socialProjectVO.getParentId());
+            comActSocialProject.setColumnId(comActSocialProject1.getColumnId());
+            comActSocialProject.setSecondColumnId(comActSocialProject1.getSecondColumnId());
+        }
+        return R.ok(this.comActSocialProjectService.save(comActSocialProject));
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param socialProjectVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody SocialProjectVO socialProjectVO) {
+        return R.ok(this.comActSocialProjectService.updateProject(socialProjectVO));
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return R.ok(this.comActSocialProjectService.removeById(id));
+    }
+
+    /**
+     * 小程序详情接口
+     * @param id
+     * @param userId
+     * @return
+     */
+    @GetMapping("/getApplet")
+    public R getApplet(@RequestParam("id") Long id, @RequestParam(value = "userId", required = false) Long userId){
+        return this.comActSocialProjectService.getByApplet(id, userId);
+    }
+
+    /**
+     * 分页查询项目报名列表
+     * @param pageProjectSignListDTO
+     * @return
+     */
+    @PostMapping("/signList")
+    public R pageProjectSignList(@RequestBody PageProjectSignListDTO pageProjectSignListDTO) {
+        return comActSocialProjectService.pageProjectSignList(pageProjectSignListDTO);
+    }
+
+    /**
+     * 项目公开报名
+     * @param projectId
+     * @param userId
+     * @return
+     */
+    @GetMapping("/sign")
+    public R signProject(@RequestParam("projectId") Long projectId, @RequestParam("userId") Long userId) {
+        return comActSocialProjectService.signProject(projectId, userId);
+    }
+
+    /**
+     * 分页查询用户报名的项目
+     * @param pageProjectDTO
+     * @return
+     */
+    @PostMapping("/project")
+    public R pageProjectWhichIsSignedByUser(@RequestBody PageProjectDTO pageProjectDTO) {
+        return comActSocialProjectService.pageProjectWhichIsSignedByUser(pageProjectDTO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialProjectMemberApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialProjectMemberApi.java
new file mode 100644
index 0000000..735da8d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialProjectMemberApi.java
@@ -0,0 +1,96 @@
+package com.panzhihua.service_community.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.extension.api.ApiController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.community.social.ComActSocialProjectMemberVO;
+import com.panzhihua.service_community.entity.ComActSocialProjectMember;
+import com.panzhihua.service_community.service.ComActSocialProjectMemberService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 项目人员(ComActSocialProjectMember)表控制层
+ *
+ * @author makejava
+ * @since 2021-12-23 15:16:43
+ */
+@RestController
+@RequestMapping("comActSocialProjectMember")
+public class ComActSocialProjectMemberApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ComActSocialProjectMemberService comActSocialProjectMemberService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.comActSocialProjectMemberService.pageList(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return R.ok(this.comActSocialProjectMemberService.getById(id));
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActSocialProjectMemberVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody ComActSocialProjectMemberVO comActSocialProjectMemberVO) {
+        return this.comActSocialProjectMemberService.insert(comActSocialProjectMemberVO);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActSocialProjectMemberVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody ComActSocialProjectMemberVO comActSocialProjectMemberVO) {
+        ComActSocialProjectMember comActSocialProjectMember=new ComActSocialProjectMember();
+        BeanUtils.copyProperties(comActSocialProjectMemberVO,comActSocialProjectMember);
+        return R.ok(this.comActSocialProjectMemberService.updateById(comActSocialProjectMember));
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return R.ok(this.comActSocialProjectMemberService.removeById(id));
+    }
+
+    @PostMapping("/batch")
+    public R insertBatch(@RequestBody ComActSocialProjectMemberVO comActSocialProjectMemberVO){
+        return this.comActSocialProjectMemberService.insertBatch(comActSocialProjectMemberVO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialProjectPublicityApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialProjectPublicityApi.java
new file mode 100644
index 0000000..f3fa78c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialProjectPublicityApi.java
@@ -0,0 +1,118 @@
+package com.panzhihua.service_community.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.api.ApiController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.community.social.ComActSocialProjectPublicityVO;
+import com.panzhihua.service_community.entity.ComActSocialProjectPublicity;
+import com.panzhihua.service_community.service.ComActSocialProjectPublicityService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 项目宣传表(ComActSocialProjectPublicity)表控制层
+ *
+ * @author makejava
+ * @since 2021-12-23 14:30:55
+ */
+@RestController
+@RequestMapping("comActSocialProjectPublicity")
+public class ComActSocialProjectPublicityApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ComActSocialProjectPublicityService comActSocialProjectPublicityService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.comActSocialProjectPublicityService.pageList(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return R.ok(this.comActSocialProjectPublicityService.getById(id));
+    }
+
+    /**
+     * 小程序通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("/getByApplet/{id}")
+    public R getByApplet(@PathVariable("id") Long id) {
+        ComActSocialProjectPublicity comActSocialProjectPublicity=this.comActSocialProjectPublicityService.getById(id);
+        comActSocialProjectPublicity.setViews(comActSocialProjectPublicity.getViews()+1);
+        this.comActSocialProjectPublicityService.updateById(comActSocialProjectPublicity);
+        return this.comActSocialProjectPublicityService.selectOne(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActSocialProjectPublicityVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody ComActSocialProjectPublicityVO comActSocialProjectPublicityVO) {
+        ComActSocialProjectPublicity comActSocialProjectPublicity=new ComActSocialProjectPublicity();
+        BeanUtils.copyProperties(comActSocialProjectPublicityVO,comActSocialProjectPublicity);
+        comActSocialProjectPublicity.setCreateTime(new Date());
+        return R.ok(this.comActSocialProjectPublicityService.save(comActSocialProjectPublicity));
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActSocialProjectPublicityVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody ComActSocialProjectPublicityVO comActSocialProjectPublicityVO) {
+        ComActSocialProjectPublicity comActSocialProjectPublicity=new ComActSocialProjectPublicity();
+        BeanUtils.copyProperties(comActSocialProjectPublicityVO,comActSocialProjectPublicity);
+        return R.ok(this.comActSocialProjectPublicityService.updateById(comActSocialProjectPublicity));
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return R.ok(this.comActSocialProjectPublicityService.removeById(id));
+    }
+    /**
+     * 多条删除数据
+     *
+     * @param ids 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("delBatch")
+    public R delBatch(@RequestParam("ids") List<Long> ids) {
+        return R.ok(this.comActSocialProjectPublicityService.removeByIds(ids));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialProjectScheduleApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialProjectScheduleApi.java
new file mode 100644
index 0000000..9914750
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialProjectScheduleApi.java
@@ -0,0 +1,95 @@
+package com.panzhihua.service_community.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.api.ApiController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.community.social.ComActSocialProjectPublicityVO;
+import com.panzhihua.common.model.vos.community.social.ComActSocialProjectScheduleVO;
+import com.panzhihua.service_community.entity.ComActSocialProjectSchedule;
+import com.panzhihua.service_community.service.ComActSocialProjectScheduleService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 项目进度表(ComActSocialProjectSchedule)表控制层
+ *
+ * @author makejava
+ * @since 2021-12-23 14:31:16
+ */
+@RestController
+@RequestMapping("comActSocialProjectSchedule")
+public class ComActSocialProjectScheduleApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ComActSocialProjectScheduleService comActSocialProjectScheduleService;
+
+    /**
+     * 根据projectId查询所有进度
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.comActSocialProjectScheduleService.pageList(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return R.ok(this.comActSocialProjectScheduleService.getById(id));
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActSocialProjectScheduleVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody ComActSocialProjectScheduleVO comActSocialProjectScheduleVO) {
+        ComActSocialProjectSchedule comActSocialProjectSchedule=new ComActSocialProjectSchedule();
+        BeanUtils.copyProperties(comActSocialProjectScheduleVO,comActSocialProjectSchedule);
+        comActSocialProjectSchedule.setCreateTime(new Date());
+        return R.ok(this.comActSocialProjectScheduleService.save(comActSocialProjectSchedule));
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActSocialProjectScheduleVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody ComActSocialProjectScheduleVO comActSocialProjectScheduleVO) {
+        ComActSocialProjectSchedule comActSocialProjectSchedule=new ComActSocialProjectSchedule();
+        BeanUtils.copyProperties(comActSocialProjectScheduleVO,comActSocialProjectSchedule);
+        return R.ok(this.comActSocialProjectScheduleService.updateById(comActSocialProjectSchedule));
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return R.ok(this.comActSocialProjectScheduleService.removeById(id));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialWorkerApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialWorkerApi.java
new file mode 100644
index 0000000..4d659c2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialWorkerApi.java
@@ -0,0 +1,106 @@
+package com.panzhihua.service_community.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.api.ApiController;
+import com.panzhihua.common.model.dtos.civil.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.civil.ComActSocialWorkerDetailsVO;
+import com.panzhihua.common.model.vos.civil.ComActSocialWorkerVO;
+import com.panzhihua.service_community.entity.ComActSocialWorker;
+import com.panzhihua.service_community.service.ComActSocialWorkerService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 社工(ComActSocialWorker)表控制层
+ *
+ * @author makejava
+ * @since 2021-10-25 10:56:48
+ */
+@RestController
+@RequestMapping("comActSocialWorker")
+public class ComActSocialWorkerApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ComActSocialWorkerService comActSocialWorkerService;
+
+    /**
+     * 新增社工
+     * @param comActSocialWorkerAddDTO
+     * @return 新增结果
+     */
+    @PostMapping("/add")
+    R add(@RequestBody ComActSocialWorkerAddDTO comActSocialWorkerAddDTO){
+        return comActSocialWorkerService.add(comActSocialWorkerAddDTO);
+    };
+
+    /**
+     * 修改社工
+     * @param comActSocialWorkerEditDTO
+     * @return 维护结果
+     */
+    @PostMapping("/edit")
+    R edit(@RequestBody ComActSocialWorkerEditDTO comActSocialWorkerEditDTO){
+        return comActSocialWorkerService.edit(comActSocialWorkerEditDTO);
+    };
+
+    /**
+     * 分页查找社工
+     * @param pageComActSocialWorkerDTO
+     * @return 维护结果
+     */
+    @PostMapping("/page")
+    R<IPage<ComActSocialWorkerVO>> query(@RequestBody PageComActSocialWorkerDTO pageComActSocialWorkerDTO){
+        return comActSocialWorkerService.query(pageComActSocialWorkerDTO);
+    };
+
+    /**
+     * 删除社工
+     * @param ComActSocialWorkerDeleteDTO
+     * @return 平台用户信息
+     */
+    @PostMapping("/delete")
+    R delete(@RequestBody ComActSocialWorkerDeleteDTO ComActSocialWorkerDeleteDTO){
+        return comActSocialWorkerService.delete(ComActSocialWorkerDeleteDTO);
+    };
+
+    /**
+     * 查询社工详细信息
+     * @param id 社工 id
+     * @return 查找结果
+     */
+    @PostMapping("/{id}")
+    R<ComActSocialWorkerVO> comActSocialWorkerDetails(@PathVariable("id") Long id){
+        return comActSocialWorkerService.comActSocialWorkerDetails(id);
+    }
+
+    /**
+     * 导入社工名单
+     * @param list
+     * @param communityId
+     * @return
+     */
+    @PostMapping("/input")
+    R export(@RequestBody List<ComActSocialWorkerExcelVO> list, @RequestParam("communityId") Long communityId){
+        return comActSocialWorkerService.export(list,communityId);
+    }
+    @PostMapping("/activity")
+    R activity(@RequestBody CommonPage commonPage){
+        return comActSocialWorkerService.activity(commonPage);
+    }
+    @PostMapping("/activityList")
+    R activityList(@RequestBody CommonPage commonPage){
+        return comActSocialWorkerService.activityList(commonPage);
+    }
+}
+
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialWorkerServiceApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialWorkerServiceApi.java
new file mode 100644
index 0000000..8b0f08b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActSocialWorkerServiceApi.java
@@ -0,0 +1,92 @@
+package com.panzhihua.service_community.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.api.ApiController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.community.social.ComActSocialWorkerServiceVO;
+import com.panzhihua.service_community.entity.ComActSocialWorkerService;
+import com.panzhihua.service_community.service.ComActSocialWorkerServiceService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 社工服务表(ComActSocialWorkerService)表控制层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 社工服务表相关功能
+ *
+ * @author zzj
+ * @since 2022-02-16 15:59:42
+ */
+@RestController
+@RequestMapping("comActSocialWorkerService")
+public class ComActSocialWorkerServiceApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ComActSocialWorkerServiceService comActSocialWorkerServiceService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.comActSocialWorkerServiceService.pageList(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return this.comActSocialWorkerServiceService.selectById(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActSocialWorkerService 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody ComActSocialWorkerService comActSocialWorkerService) {
+        return R.ok(this.comActSocialWorkerServiceService.save(comActSocialWorkerService));
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActSocialWorkerServiceVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody ComActSocialWorkerServiceVO comActSocialWorkerServiceVO) {
+        ComActSocialWorkerService comActSocialWorkerService=new ComActSocialWorkerService();
+        BeanUtils.copyProperties(comActSocialWorkerServiceVO,comActSocialWorkerService);
+        return R.ok(this.comActSocialWorkerServiceService.updateById(comActSocialWorkerService));
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return R.ok(this.comActSocialWorkerServiceService.removeById(id));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActUserWalletApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActUserWalletApi.java
new file mode 100644
index 0000000..75e84bb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActUserWalletApi.java
@@ -0,0 +1,92 @@
+package com.panzhihua.service_community.api;
+
+import javax.annotation.Resource;
+
+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.RestController;
+
+import com.panzhihua.common.model.dtos.community.wallet.ComActWalletSettlementAdminDTO;
+import com.panzhihua.common.model.dtos.community.wallet.PageComActWalletAdminDTO;
+import com.panzhihua.common.model.dtos.community.wallet.PageComActWalletTradeAdminDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.service.ComActUserWalletService;
+import com.panzhihua.service_community.service.ComActUserWalletTradeService;
+
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+@RestController
+@RequestMapping("/user/wallet/")
+public class ComActUserWalletApi {
+
+    @Resource
+    private ComActUserWalletService comActUserWalletService;
+    @Resource
+    private ComActUserWalletTradeService comActUserWalletTradeService;
+
+    /**
+     * 分页查询收益结算列表
+     * 
+     * @param pageWalletAdminDTO
+     *            请求参数
+     * @return 收益结算列表
+     */
+    @PostMapping("/page")
+    public R page(@RequestBody PageComActWalletAdminDTO pageWalletAdminDTO) {
+        return comActUserWalletService.pageUserWalletAdmin(pageWalletAdminDTO);
+    }
+
+    /**
+     * 用户结算收益
+     * 
+     * @param settlementAdminDTO
+     *            请求参数
+     * @return 结算结果
+     */
+    @PostMapping("/settlement")
+    public R settlement(@RequestBody ComActWalletSettlementAdminDTO settlementAdminDTO) {
+        return comActUserWalletService.userWalletSettlementAdmin(settlementAdminDTO);
+    }
+
+    /**
+     * 分页查询交易记录
+     *
+     * @param pageTradeAdminDTO
+     *            请求参数
+     * @return 交易记录列表
+     */
+    @PostMapping("/trade/page")
+    public R tradePage(@RequestBody PageComActWalletTradeAdminDTO pageTradeAdminDTO) {
+        return comActUserWalletTradeService.pageUserWalletTradeAdmin(pageTradeAdminDTO);
+    }
+
+    /**
+     * 查询用户交易记录总额
+     * 
+     * @param pageTradeAdminDTO
+     *            请求参数
+     * @return 交易记录总额
+     */
+    @PostMapping("/trade/total")
+    public R getTradeUserTotalWalletTradeAdmin(@RequestBody PageComActWalletTradeAdminDTO pageTradeAdminDTO) {
+        return comActUserWalletTradeService.getTradeUserTotalWalletTradeAdmin(pageTradeAdminDTO);
+    }
+
+    @PostMapping("/trade/statistics")
+    public R getTradeUserStatisticsAdmin(@RequestBody PageComActWalletTradeAdminDTO pageTradeAdminDTO) {
+        return comActUserWalletTradeService.getTradeUserStatisticsAdmin(pageTradeAdminDTO);
+    }
+
+    @PostMapping("/trade/export")
+    public R getTradeUserTotalWalletTradeExportAdmin(@RequestBody PageComActWalletTradeAdminDTO pageTradeAdminDTO) {
+        return comActUserWalletTradeService.getTradeUserTotalWalletTradeExportAdmin(pageTradeAdminDTO);
+    }
+
+    @PostMapping("/trade/reward/export")
+    public R getTradeUserTotalJLWalletTradeExportAdmin(@RequestBody PageComActWalletTradeAdminDTO pageTradeAdminDTO) {
+        return comActUserWalletTradeService.getTradeUserTotalJLWalletTradeExportAdmin(pageTradeAdminDTO);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActWarehouseApplyApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActWarehouseApplyApi.java
new file mode 100644
index 0000000..de59e71
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActWarehouseApplyApi.java
@@ -0,0 +1,126 @@
+package com.panzhihua.service_community.api;
+
+
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.community.warehouse.ComActWarehouseApplyVO;
+import com.panzhihua.common.model.vos.community.warehouse.QRCodeVO;
+import com.panzhihua.service_community.entity.ComActWarehouseApply;
+import com.panzhihua.service_community.service.ComActWarehouseApplyService;
+import com.panzhihua.service_community.util.QRCodeUtil;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * 物品申请表(ComActWarehouseApply)表控制层
+ *
+ * @author makejava
+ * @since 2021-10-09 17:13:53
+ */
+@RestController
+@RequestMapping("comActWarehouseApply")
+public class ComActWarehouseApplyApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ComActWarehouseApplyService comActWarehouseApplyService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.comActWarehouseApplyService.pageList(commonPage);
+    }
+
+    /**
+     * 统计查询
+     *
+     * @param communityId
+     * @return 所有数据
+     */
+    @GetMapping("selectStatics")
+    public R selectAll(@RequestParam("communityId") Long communityId) {
+        return this.comActWarehouseApplyService.selectStatics(communityId);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Integer id) {
+        return this.comActWarehouseApplyService.selectById(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActWarehouseApplyVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody ComActWarehouseApplyVO comActWarehouseApplyVO) {
+        ComActWarehouseApply comActWarehouseApply=new ComActWarehouseApply();
+        BeanUtils.copyProperties(comActWarehouseApplyVO,comActWarehouseApply);
+        return R.ok(this.comActWarehouseApplyService.save(comActWarehouseApply));
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActWarehouseApplyVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody ComActWarehouseApplyVO comActWarehouseApplyVO) {
+        ComActWarehouseApply comActWarehouseApply=new ComActWarehouseApply();
+        BeanUtils.copyProperties(comActWarehouseApplyVO,comActWarehouseApply);
+        return this.comActWarehouseApplyService.update(comActWarehouseApply);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return R.ok(this.comActWarehouseApplyService.removeById(id));
+    }
+
+    /**
+     * 生成二维码
+     * @param qrCodeVO
+     * @return
+     */
+    @PostMapping("/getQRCode")
+    public R getQRCode(@RequestBody QRCodeVO qrCodeVO){
+        return R.ok(QRCodeUtil.getBase64QRCode(JSONObject.toJSONString(qrCodeVO)));
+    }
+    /**
+     * 社区团队权限校验
+     */
+    @GetMapping("/check")
+    public R check(@RequestParam("phone") String phone){
+        return this.comActWarehouseApplyService.check(phone);
+    }
+
+    /**
+     * 导出数据
+     */
+    @PostMapping("/export")
+    public R export(@RequestBody CommonPage commonPage){
+        return this.comActWarehouseApplyService.export(commonPage);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActWarehouseBaseApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActWarehouseBaseApi.java
new file mode 100644
index 0000000..aa19460
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActWarehouseBaseApi.java
@@ -0,0 +1,82 @@
+package com.panzhihua.service_community.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.api.ApiController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.community.warehouse.ComActWarehouseBaseVO;
+import com.panzhihua.service_community.entity.ComActWarehouseBase;
+import com.panzhihua.service_community.service.ComActWarehouseBaseService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 义仓基础设置表(ComActWarehouseBase)表控制层
+ *
+ * @author makejava
+ * @since 2021-10-11 09:21:53
+ */
+@RestController
+@RequestMapping("comActWarehouseBase")
+public class ComActWarehouseBaseApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ComActWarehouseBaseService comActWarehouseBaseService;
+
+    /**
+     * 通过社区id查询单条数据
+     *
+     * @param communityId 主键
+     * @return 单条数据
+     */
+    @GetMapping
+    public R selectOne(@RequestParam("communityId") Long communityId) {
+        return R.ok(this.comActWarehouseBaseService.getOne(new QueryWrapper<ComActWarehouseBase>().lambda().eq(ComActWarehouseBase::getCommunityId,communityId)));
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActWarehouseBaseVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody ComActWarehouseBaseVO comActWarehouseBaseVO) {
+        ComActWarehouseBase comActWarehouseBase=new ComActWarehouseBase();
+        BeanUtils.copyProperties(comActWarehouseBaseVO,comActWarehouseBase);
+        if(comActWarehouseBase.getId()!=null){
+            return R.ok(this.comActWarehouseBaseService.updateById(comActWarehouseBase));
+        }
+        return R.ok(this.comActWarehouseBaseService.save(comActWarehouseBase));
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActWarehouseBase 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody ComActWarehouseBase comActWarehouseBase) {
+        return R.ok(this.comActWarehouseBaseService.updateById(comActWarehouseBase));
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return R.ok(this.comActWarehouseBaseService.removeById(id));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActWarehouseDonatesApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActWarehouseDonatesApi.java
new file mode 100644
index 0000000..66d5aa9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActWarehouseDonatesApi.java
@@ -0,0 +1,182 @@
+package com.panzhihua.service_community.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.api.ApiController;
+import com.panzhihua.common.model.dtos.community.warehouse.ComActWarehouseApplyDTO;
+import com.panzhihua.common.model.dtos.community.warehouse.ComActWarehouseDonatesDTO;
+import com.panzhihua.common.model.dtos.community.warehouse.ExportDonatesDTO;
+import com.panzhihua.common.model.dtos.community.warehouse.PageDonatesDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.community.warehouse.WarehouseDonatesExcelVO;
+import com.panzhihua.service_community.entity.ComActWarehouseDonates;
+import com.panzhihua.service_community.service.ComActWarehouseDonatesService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 爱心义仓/物品捐赠表(ComActWarehouseDonates)表控制层
+ *
+ * @author makejava
+ * @since 2021-10-09 17:14:16
+ */
+@RestController
+@RequestMapping("comActWarehouseDonates")
+public class ComActWarehouseDonatesApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ComActWarehouseDonatesService comActWarehouseDonatesService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.comActWarehouseDonatesService.pageList(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Serializable id) {
+        return R.ok(this.comActWarehouseDonatesService.getById(id));
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActWarehouseDonates 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody ComActWarehouseDonates comActWarehouseDonates) {
+        return R.ok(this.comActWarehouseDonatesService.save(comActWarehouseDonates));
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActWarehouseDonates 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody ComActWarehouseDonates comActWarehouseDonates) {
+        return R.ok(this.comActWarehouseDonatesService.updateById(comActWarehouseDonates));
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return R.ok(this.comActWarehouseDonatesService.removeById(id));
+    }
+
+    /**
+     * 后台导入捐赠物品
+     * @param list
+     * @return
+     */
+    @PostMapping("/import")
+    public R batchImportWarehouseDonates(@RequestBody List<WarehouseDonatesExcelVO> list) {
+        return comActWarehouseDonatesService.batchImportWarehouseDonates(list);
+    }
+
+    /**
+     * 后台导出捐赠物品表格
+     * @param exportDonatesDTO
+     * @return
+     */
+    @PostMapping("/donates/export")
+    public R exportDonates(@RequestBody ExportDonatesDTO exportDonatesDTO) {
+        return comActWarehouseDonatesService.exportDonates(exportDonatesDTO);
+    }
+
+    /**
+     * 分页查询捐赠物品
+     * @param pageDonatesDTO
+     * @return
+     */
+    @PostMapping("/donates/page")
+    public R pageDonates(@RequestBody PageDonatesDTO pageDonatesDTO) {
+        return comActWarehouseDonatesService.pageDonates(pageDonatesDTO);
+    }
+
+    /**
+     * 新增物品捐赠
+     * @param comActWarehouseDonatesDTO
+     * @return
+     */
+    @PostMapping("/donates/add")
+    public R addDonates(@RequestBody ComActWarehouseDonatesDTO comActWarehouseDonatesDTO) {
+        return comActWarehouseDonatesService.addDonates(comActWarehouseDonatesDTO);
+    }
+
+    /**
+     * 查看物品捐赠详情
+     * @param donatesId
+     * @return
+     */
+    @GetMapping("/donates/get")
+    public R getDonates(@RequestParam("donatesId") Long donatesId, @RequestParam("isWhich") Integer isWhich, @RequestParam("userId") Long userId) {
+        return comActWarehouseDonatesService.getDonates(donatesId, isWhich, userId);
+    }
+
+    /**
+     * 捐赠物品后台签收
+     * @param comActWarehouseDonatesDTO
+     * @return
+     */
+    @PostMapping("/donates/signing")
+    public R signingDonates(@RequestBody ComActWarehouseDonatesDTO comActWarehouseDonatesDTO) {
+        return comActWarehouseDonatesService.signingDonates(comActWarehouseDonatesDTO);
+    }
+
+    /**
+     * 用户取消捐赠
+     * @param donatesId
+     * @param currentUser
+     * @return
+     */
+    @GetMapping("/donates/cancel")
+    public R cancelDonates(@RequestParam("donatesId") Long donatesId, @RequestParam("currentUser") Long currentUser) {
+        return comActWarehouseDonatesService.cancelDonates(donatesId, currentUser);
+    }
+
+    /**
+     * 捐赠物品统计查询
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/donates/statistics")
+    public R getDonatesStatistics(@RequestParam("communityId") Long communityId) {
+        return comActWarehouseDonatesService.getDonatesStatistics(communityId);
+    }
+
+    /**
+     * 社区后台物品领用
+     * @param comActWarehouseApplyDTO
+     * @return
+     */
+    @PostMapping("/donates/apply")
+    public R applyDonates(@RequestBody ComActWarehouseApplyDTO comActWarehouseApplyDTO) {
+        return comActWarehouseDonatesService.applyDonates(comActWarehouseApplyDTO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActWarehouseOperationApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActWarehouseOperationApi.java
new file mode 100644
index 0000000..01dd62b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComActWarehouseOperationApi.java
@@ -0,0 +1,86 @@
+package com.panzhihua.service_community.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.api.ApiController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.service_community.entity.ComActWarehouseOperation;
+import com.panzhihua.service_community.service.ComActWarehouseOperationService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 爱心义操作表(ComActWarehouseOperation)表控制层
+ *
+ * @author makejava
+ * @since 2021-10-09 17:14:34
+ */
+@RestController
+@RequestMapping("comActWarehouseOperation")
+public class ComActWarehouseOperationApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ComActWarehouseOperationService comActWarehouseOperationService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.comActWarehouseOperationService.pageList(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Serializable id) {
+        return R.ok(this.comActWarehouseOperationService.getById(id));
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActWarehouseOperation 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody ComActWarehouseOperation comActWarehouseOperation) {
+        return R.ok(this.comActWarehouseOperationService.save(comActWarehouseOperation));
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActWarehouseOperation 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody ComActWarehouseOperation comActWarehouseOperation) {
+        return R.ok(this.comActWarehouseOperationService.updateById(comActWarehouseOperation));
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return R.ok(this.comActWarehouseOperationService.removeById(id));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComAreaTownCommunityApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComAreaTownCommunityApi.java
new file mode 100644
index 0000000..b7e0346
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComAreaTownCommunityApi.java
@@ -0,0 +1,149 @@
+package com.panzhihua.service_community.api;
+
+
+import cn.hutool.core.util.ArrayUtil;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.service_community.dao.ComAreaTownCommunityDao;
+import com.panzhihua.common.model.vos.community.acid.ComAreaCounty;
+import com.panzhihua.service_community.entity.ComAreaTownCommunity;
+import com.panzhihua.service_community.service.ComAreaTownCommunityService;
+import org.apache.commons.lang3.ArrayUtils;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * (ComAreaTownCommunity)表控制层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 相关功能
+ *
+ * @author zzj
+ * @since 2022-04-10 17:37:33
+ */
+@RestController
+@RequestMapping("comAreaTownCommunity")
+public class ComAreaTownCommunityApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ComAreaTownCommunityService comAreaTownCommunityService;
+    @Resource
+    private ComAreaTownCommunityDao comAreaTownCommunityDao;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.comAreaTownCommunityService.pageList(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Serializable id) {
+        return R.ok(this.comAreaTownCommunityService.getById(id));
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comAreaTownCommunity 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody ComAreaTownCommunity comAreaTownCommunity) {
+        return R.ok(this.comAreaTownCommunityService.save(comAreaTownCommunity));
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comAreaTownCommunity 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody ComAreaTownCommunity comAreaTownCommunity) {
+        return R.ok(this.comAreaTownCommunityService.updateById(comAreaTownCommunity));
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return R.ok(this.comAreaTownCommunityService.removeById(id));
+    }
+
+    @GetMapping("/areaTownCommunity")
+    public R test(@RequestParam("name")String name,@RequestParam("userId")Long userId){
+        Long[] idArray={4L,17959L,16522L,16196L,16214L,17949L,89234L};
+        if("panzhihua".equals(name)){
+            List<ComAreaCounty> list=comAreaTownCommunityDao.selectArea();
+            list.forEach(lis->{
+                List<ComAreaCounty> townList=comAreaTownCommunityDao.selectTown(lis.getValue());
+                townList.forEach(tow->{
+                    List<ComAreaCounty> list1=new ArrayList<>();
+                    if(ArrayUtil.contains(idArray,userId)){
+                        list1=comAreaTownCommunityDao.selectCommunity(tow.getValue(),"学园社区");
+                    }
+                    else {
+                        list1=comAreaTownCommunityDao.selectCommunity(tow.getValue(),"");
+                    }
+                    if("大渡口街道".equals(tow.getValue())){
+                        ComAreaCounty comAreaCounty=list1.get(0);
+                        list1.remove(0);
+                        list1.add(2,comAreaCounty);
+                    }
+                    tow.setChildren(list1);
+                });
+                lis.setChildren(townList);
+            });
+            return R.ok(list);
+        }
+        else {
+            List<ComAreaCounty> townList=comAreaTownCommunityDao.selectTown(name);
+            if(!CollectionUtils.isEmpty(townList)){
+                townList.forEach(tow->{
+                    List<ComAreaCounty> list1=new ArrayList<>();
+                    if(ArrayUtil.contains(idArray,userId)){
+                        list1=comAreaTownCommunityDao.selectCommunity(tow.getValue(),"学园社区");
+                    }
+                    else {
+                        list1=comAreaTownCommunityDao.selectCommunity(tow.getValue(),"");
+                    }
+                    tow.setChildren(list1);
+                });
+                return R.ok(townList);
+            }
+            else {
+                List<ComAreaCounty> list1=new ArrayList<>();
+                if(ArrayUtil.contains(idArray,userId)){
+                    list1=comAreaTownCommunityDao.selectCommunity(name,"学园社区");
+                }
+                else {
+                    list1=comAreaTownCommunityDao.selectCommunity(name,"");
+                }
+                return R.ok(list1);
+            }
+        }
+
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommodityActivityController.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommodityActivityController.java
new file mode 100644
index 0000000..70e5aea
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommodityActivityController.java
@@ -0,0 +1,175 @@
+package com.panzhihua.service_community.api;
+
+import com.panzhihua.service_community.service.ComBatteryCommodityActivityService;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.service.ComBatteryCommodityOrderBargainService;
+import com.panzhihua.service_community.service.ComBatteryCommodityOrderCollageTeamService;
+import com.panzhihua.service_community.service.ComBatteryCommodityOrderService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * title: 电动车商城-商家活动表(ComBatteryCommodityActivity)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商家活动表
+ *
+ * @author lyq
+ * @date 2022-03-29 13:17:38
+ */
+@RestController
+@RequestMapping("/comBatteryCommodityActivity")
+public class ComBatteryCommodityActivityController {
+
+    @Resource
+    private ComBatteryCommodityActivityService comBatteryCommodityActivityService;
+    @Resource
+    private ComBatteryCommodityOrderCollageTeamService orderCollageTeamService;
+    @Resource
+    private ComBatteryCommodityOrderBargainService orderBargainService;
+    @Resource
+    private ComBatteryCommodityOrderService commodityOrderService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommodityActivity 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-03-29 13:17:38
+     */
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComBatteryCommodityActivityDto comBatteryCommodityActivity) {
+        return this.comBatteryCommodityActivityService.queryByPage(comBatteryCommodityActivity);
+    }
+
+    /**
+     * description  add  新增数据
+     *
+     * @param comBatteryCommodityActivity 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-29 13:17:38
+     */
+    @PostMapping("/add")
+    public R add(@RequestBody AddComBatteryCommodityActivityDto comBatteryCommodityActivity) {
+        return this.comBatteryCommodityActivityService.insert(comBatteryCommodityActivity);
+    }
+
+    /**
+     * description  edit  编辑数据
+     *
+     * @param comBatteryCommodityActivity 请求参数
+     * @return 编辑结果
+     * @author lyq
+     * @date 2022-03-29 13:17:38
+     */
+    @PutMapping("/edit")
+    public R edit(@RequestBody EditComBatteryCommodityActivityDto comBatteryCommodityActivity) {
+        return this.comBatteryCommodityActivityService.update(comBatteryCommodityActivity);
+    }
+
+    /**
+     * description  deleteById  删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-29 13:17:38
+     */
+    @GetMapping("/delete")
+    public R deleteById(@RequestParam("id") Long id) {
+        return this.comBatteryCommodityActivityService.deleteById(id);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 13:17:38
+     */
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id,@RequestParam("userId") Long userId) {
+        return this.comBatteryCommodityActivityService.detailById(id,userId);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommodityActivity 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 13:17:38
+     */
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComBatteryCommodityActivityDto comBatteryCommodityActivity) {
+        return this.comBatteryCommodityActivityService.queryByList(comBatteryCommodityActivity);
+    }
+
+    /**
+     * 修改活动状态
+     * @param id    活动id
+     * @param status    状态
+     * @return  修改结果
+     */
+    @GetMapping("/updateStatus")
+    public R updateStatus(@RequestParam("id") Long id,@RequestParam("status") Integer status) {
+        return this.comBatteryCommodityActivityService.updateStatus(id,status);
+    }
+
+    /**
+     * 创建拼团订单
+     * @param orderDto  请求参数
+     * @return  创建订单结果
+     */
+    @PostMapping("/start/fight")
+    public R startFight(@RequestBody StartFightOrderDto orderDto){
+        return this.orderCollageTeamService.startFight(orderDto);
+    }
+
+    /**
+     * 创建砍价订单
+     * @param orderDto  请求参数
+     * @return  创建订单结果
+     */
+    @PostMapping("/start/bargain")
+    public R startBargain(@RequestBody StartBargainOrderDto orderDto){
+        return this.orderBargainService.startBargain(orderDto);
+    }
+
+    /**
+     * 帮好友砍价
+     * @param orderDto  请求参数
+     * @return  创建订单结果
+     */
+    @PostMapping("/start/user/bargain")
+    public R startUserBargain(@RequestBody StartUserBargainOrderDto orderDto){
+        return this.orderBargainService.startUserBargain(orderDto);
+    }
+
+    /**
+     * 查询砍价记录详情
+     * @param id  砍价记录id
+     * @return  创建订单结果
+     */
+    @GetMapping("/user/bargain")
+    public R getUserBargain(@RequestParam("id") Long id){
+        return this.orderBargainService.getUserBargain(id);
+    }
+
+    /**
+     * 创建秒杀订单
+     * @param orderDto  请求参数
+     * @return  创建订单结果
+     */
+    @PostMapping("/start/seckill")
+    public R startSeckill(@RequestBody StartSeckillOrderDto orderDto){
+        return this.commodityOrderService.startSeckill(orderDto);
+    }
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommodityController.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommodityController.java
new file mode 100644
index 0000000..9debc02
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommodityController.java
@@ -0,0 +1,126 @@
+package com.panzhihua.service_community.api;
+
+import com.panzhihua.service_community.service.ComBatteryCommodityService;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * title: 电动车商城-商品表(ComBatteryCommodity)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商品表
+ *
+ * @author lyq
+ * @date 2022-03-28 14:59:58
+ */
+@RestController
+@RequestMapping("/comBatteryCommodity")
+public class ComBatteryCommodityController {
+
+    @Resource
+    private ComBatteryCommodityService comBatteryCommodityService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommodity 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-03-28 14:59:58
+     */
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComBatteryCommodityDto comBatteryCommodity) {
+        return this.comBatteryCommodityService.queryByPage(comBatteryCommodity);
+    }
+
+    /**
+     * description  add  新增数据
+     *
+     * @param comBatteryCommodity 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-28 14:59:58
+     */
+    @PostMapping("/add")
+    public R add(@RequestBody AddComBatteryCommodityDto comBatteryCommodity) {
+        return this.comBatteryCommodityService.insert(comBatteryCommodity);
+    }
+
+    /**
+     * description  edit  编辑数据
+     *
+     * @param comBatteryCommodity 请求参数
+     * @return 编辑结果
+     * @author lyq
+     * @date 2022-03-28 14:59:58
+     */
+    @PutMapping("/edit")
+    public R edit(@RequestBody EditComBatteryCommodityDto comBatteryCommodity) {
+        return this.comBatteryCommodityService.update(comBatteryCommodity);
+    }
+
+    /**
+     * description  deleteById  删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-28 14:59:58
+     */
+    @GetMapping("/delete")
+    public R deleteById(@RequestParam("id") Long id) {
+        return this.comBatteryCommodityService.deleteById(id);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-28 14:59:58
+     */
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comBatteryCommodityService.detailById(id);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommodity 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-28 14:59:58
+     */
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComBatteryCommodityDto comBatteryCommodity) {
+        return this.comBatteryCommodityService.queryByList(comBatteryCommodity);
+    }
+
+    /**
+     * 修改商品状态
+     * @param id    商品id
+     * @param status    商品状态
+     * @return  修改结果
+     */
+    @GetMapping("/updateStatus")
+    public R updateStatus(@RequestParam("id") Long id,@RequestParam("status") Integer status) {
+        return this.comBatteryCommodityService.updateStatus(id,status);
+    }
+
+    /**
+     * 小程序查询商品列表
+     * @param comBatteryCommodity   请求参数
+     * @return  商品列表
+     */
+    @PostMapping("/applets/page")
+    public R queryByAppletsPage(@RequestBody PageComBatteryCommodityDto comBatteryCommodity){
+        return this.comBatteryCommodityService.queryByAppletsPage(comBatteryCommodity);
+    }
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommodityOrderBargainController.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommodityOrderBargainController.java
new file mode 100644
index 0000000..f5cce93
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommodityOrderBargainController.java
@@ -0,0 +1,106 @@
+package com.panzhihua.service_community.api;
+
+import com.panzhihua.service_community.service.ComBatteryCommodityOrderBargainService;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * title: 电动车商城-砍价订单记录表(ComBatteryCommodityOrderBargain)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-砍价订单记录表
+ *
+ * @author lyq
+ * @date 2022-03-29 16:06:33
+ */
+@RestController
+@RequestMapping("/comBatteryCommodityOrderBargain")
+public class ComBatteryCommodityOrderBargainController {
+
+    @Resource
+    private ComBatteryCommodityOrderBargainService comBatteryCommodityOrderBargainService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommodityOrderBargain 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-03-29 16:06:33
+     */
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComBatteryCommodityOrderBargainDto comBatteryCommodityOrderBargain) {
+        return this.comBatteryCommodityOrderBargainService.queryByPage(comBatteryCommodityOrderBargain);
+    }
+
+    /**
+     * description  add  新增数据
+     *
+     * @param comBatteryCommodityOrderBargain 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-29 16:06:33
+     */
+    @PostMapping("/add")
+    public R add(@RequestBody AddComBatteryCommodityOrderBargainDto comBatteryCommodityOrderBargain) {
+        return this.comBatteryCommodityOrderBargainService.insert(comBatteryCommodityOrderBargain);
+    }
+
+    /**
+     * description  edit  编辑数据
+     *
+     * @param comBatteryCommodityOrderBargain 请求参数
+     * @return 编辑结果
+     * @author lyq
+     * @date 2022-03-29 16:06:33
+     */
+    @PutMapping("/edit")
+    public R edit(@RequestBody EditComBatteryCommodityOrderBargainDto comBatteryCommodityOrderBargain) {
+        return this.comBatteryCommodityOrderBargainService.update(comBatteryCommodityOrderBargain);
+    }
+
+    /**
+     * description  deleteById  删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-29 16:06:33
+     */
+    @GetMapping("/delete")
+    public R deleteById(@RequestParam("id") Long id) {
+        return this.comBatteryCommodityOrderBargainService.deleteById(id);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 16:06:33
+     */
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comBatteryCommodityOrderBargainService.detailById(id);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommodityOrderBargain 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 16:06:33
+     */
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComBatteryCommodityOrderBargainDto comBatteryCommodityOrderBargain) {
+        return this.comBatteryCommodityOrderBargainService.queryByList(comBatteryCommodityOrderBargain);
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommodityOrderBargainRecordController.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommodityOrderBargainRecordController.java
new file mode 100644
index 0000000..a58892e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommodityOrderBargainRecordController.java
@@ -0,0 +1,106 @@
+package com.panzhihua.service_community.api;
+
+import com.panzhihua.service_community.service.ComBatteryCommodityOrderBargainRecordService;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * title: 电动车商城-订单砍价记录表(ComBatteryCommodityOrderBargainRecord)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-订单砍价记录表
+ *
+ * @author lyq
+ * @date 2022-03-29 16:06:44
+ */
+@RestController
+@RequestMapping("/comBatteryCommodityOrderBargainRecord")
+public class ComBatteryCommodityOrderBargainRecordController {
+
+    @Resource
+    private ComBatteryCommodityOrderBargainRecordService comBatteryCommodityOrderBargainRecordService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommodityOrderBargainRecord 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-03-29 16:06:44
+     */
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComBatteryCommodityOrderBargainRecordDto comBatteryCommodityOrderBargainRecord) {
+        return this.comBatteryCommodityOrderBargainRecordService.queryByPage(comBatteryCommodityOrderBargainRecord);
+    }
+
+    /**
+     * description  add  新增数据
+     *
+     * @param comBatteryCommodityOrderBargainRecord 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-29 16:06:44
+     */
+    @PostMapping("/add")
+    public R add(@RequestBody AddComBatteryCommodityOrderBargainRecordDto comBatteryCommodityOrderBargainRecord) {
+        return this.comBatteryCommodityOrderBargainRecordService.insert(comBatteryCommodityOrderBargainRecord);
+    }
+
+    /**
+     * description  edit  编辑数据
+     *
+     * @param comBatteryCommodityOrderBargainRecord 请求参数
+     * @return 编辑结果
+     * @author lyq
+     * @date 2022-03-29 16:06:44
+     */
+    @PutMapping("/edit")
+    public R edit(@RequestBody EditComBatteryCommodityOrderBargainRecordDto comBatteryCommodityOrderBargainRecord) {
+        return this.comBatteryCommodityOrderBargainRecordService.update(comBatteryCommodityOrderBargainRecord);
+    }
+
+    /**
+     * description  deleteById  删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-29 16:06:44
+     */
+    @GetMapping("/delete")
+    public R deleteById(@RequestParam("id") Long id) {
+        return this.comBatteryCommodityOrderBargainRecordService.deleteById(id);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 16:06:44
+     */
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comBatteryCommodityOrderBargainRecordService.detailById(id);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommodityOrderBargainRecord 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 16:06:44
+     */
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComBatteryCommodityOrderBargainRecordDto comBatteryCommodityOrderBargainRecord) {
+        return this.comBatteryCommodityOrderBargainRecordService.queryByList(comBatteryCommodityOrderBargainRecord);
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommodityOrderCollageTeamController.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommodityOrderCollageTeamController.java
new file mode 100644
index 0000000..f35c531
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommodityOrderCollageTeamController.java
@@ -0,0 +1,106 @@
+package com.panzhihua.service_community.api;
+
+import com.panzhihua.service_community.service.ComBatteryCommodityOrderCollageTeamService;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * title: 电动车商城-拼团订单团队表(ComBatteryCommodityOrderCollageTeam)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-拼团订单团队表
+ *
+ * @author lyq
+ * @date 2022-03-29 16:06:55
+ */
+@RestController
+@RequestMapping("/comBatteryCommodityOrderCollageTeam")
+public class ComBatteryCommodityOrderCollageTeamController {
+
+    @Resource
+    private ComBatteryCommodityOrderCollageTeamService comBatteryCommodityOrderCollageTeamService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommodityOrderCollageTeam 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-03-29 16:06:55
+     */
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComBatteryCommodityOrderCollageTeamDto comBatteryCommodityOrderCollageTeam) {
+        return this.comBatteryCommodityOrderCollageTeamService.queryByPage(comBatteryCommodityOrderCollageTeam);
+    }
+
+    /**
+     * description  add  新增数据
+     *
+     * @param comBatteryCommodityOrderCollageTeam 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-29 16:06:55
+     */
+    @PostMapping("/add")
+    public R add(@RequestBody AddComBatteryCommodityOrderCollageTeamDto comBatteryCommodityOrderCollageTeam) {
+        return this.comBatteryCommodityOrderCollageTeamService.insert(comBatteryCommodityOrderCollageTeam);
+    }
+
+    /**
+     * description  edit  编辑数据
+     *
+     * @param comBatteryCommodityOrderCollageTeam 请求参数
+     * @return 编辑结果
+     * @author lyq
+     * @date 2022-03-29 16:06:55
+     */
+    @PutMapping("/edit")
+    public R edit(@RequestBody EditComBatteryCommodityOrderCollageTeamDto comBatteryCommodityOrderCollageTeam) {
+        return this.comBatteryCommodityOrderCollageTeamService.update(comBatteryCommodityOrderCollageTeam);
+    }
+
+    /**
+     * description  deleteById  删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-29 16:06:55
+     */
+    @GetMapping("/delete")
+    public R deleteById(@RequestParam("id") Long id) {
+        return this.comBatteryCommodityOrderCollageTeamService.deleteById(id);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 16:06:55
+     */
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id,@RequestParam("userId") Long userId) {
+        return this.comBatteryCommodityOrderCollageTeamService.detailById(id,userId);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommodityOrderCollageTeam 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 16:06:55
+     */
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComBatteryCommodityOrderCollageTeamDto comBatteryCommodityOrderCollageTeam) {
+        return this.comBatteryCommodityOrderCollageTeamService.queryByList(comBatteryCommodityOrderCollageTeam);
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommodityOrderCollageTeamPeopleController.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommodityOrderCollageTeamPeopleController.java
new file mode 100644
index 0000000..4c6605b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommodityOrderCollageTeamPeopleController.java
@@ -0,0 +1,106 @@
+package com.panzhihua.service_community.api;
+
+import com.panzhihua.service_community.service.ComBatteryCommodityOrderCollageTeamPeopleService;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * title: 电动车商城-拼团活动团队人员表(ComBatteryCommodityOrderCollageTeamPeople)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-拼团活动团队人员表
+ *
+ * @author lyq
+ * @date 2022-03-29 16:07:07
+ */
+@RestController
+@RequestMapping("/comBatteryCommodityOrderCollageTeamPeople")
+public class ComBatteryCommodityOrderCollageTeamPeopleController {
+
+    @Resource
+    private ComBatteryCommodityOrderCollageTeamPeopleService comBatteryCommodityOrderCollageTeamPeopleService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommodityOrderCollageTeamPeople 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-03-29 16:07:07
+     */
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComBatteryCommodityOrderCollageTeamPeopleDto comBatteryCommodityOrderCollageTeamPeople) {
+        return this.comBatteryCommodityOrderCollageTeamPeopleService.queryByPage(comBatteryCommodityOrderCollageTeamPeople);
+    }
+
+    /**
+     * description  add  新增数据
+     *
+     * @param comBatteryCommodityOrderCollageTeamPeople 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-29 16:07:07
+     */
+    @PostMapping("/add")
+    public R add(@RequestBody AddComBatteryCommodityOrderCollageTeamPeopleDto comBatteryCommodityOrderCollageTeamPeople) {
+        return this.comBatteryCommodityOrderCollageTeamPeopleService.insert(comBatteryCommodityOrderCollageTeamPeople);
+    }
+
+    /**
+     * description  edit  编辑数据
+     *
+     * @param comBatteryCommodityOrderCollageTeamPeople 请求参数
+     * @return 编辑结果
+     * @author lyq
+     * @date 2022-03-29 16:07:07
+     */
+    @PutMapping("/edit")
+    public R edit(@RequestBody EditComBatteryCommodityOrderCollageTeamPeopleDto comBatteryCommodityOrderCollageTeamPeople) {
+        return this.comBatteryCommodityOrderCollageTeamPeopleService.update(comBatteryCommodityOrderCollageTeamPeople);
+    }
+
+    /**
+     * description  deleteById  删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-29 16:07:07
+     */
+    @GetMapping("/delete")
+    public R deleteById(@RequestParam("id") Long id) {
+        return this.comBatteryCommodityOrderCollageTeamPeopleService.deleteById(id);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 16:07:07
+     */
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comBatteryCommodityOrderCollageTeamPeopleService.detailById(id);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommodityOrderCollageTeamPeople 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 16:07:07
+     */
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComBatteryCommodityOrderCollageTeamPeopleDto comBatteryCommodityOrderCollageTeamPeople) {
+        return this.comBatteryCommodityOrderCollageTeamPeopleService.queryByList(comBatteryCommodityOrderCollageTeamPeople);
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommodityOrderController.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommodityOrderController.java
new file mode 100644
index 0000000..3a37d00
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommodityOrderController.java
@@ -0,0 +1,187 @@
+package com.panzhihua.service_community.api;
+
+import com.panzhihua.common.model.dtos.shop.WxPayNotifyOrderDTO;
+import com.panzhihua.service_community.service.ComBatteryCommodityOrderService;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * title: 电动车商城-订单表(ComBatteryCommodityOrder)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-订单表
+ *
+ * @author lyq
+ * @date 2022-03-29 16:05:04
+ */
+@RestController
+@RequestMapping("/comBatteryCommodityOrder")
+public class ComBatteryCommodityOrderController {
+
+    @Resource
+    private ComBatteryCommodityOrderService comBatteryCommodityOrderService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommodityOrder 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-03-29 16:05:04
+     */
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComBatteryCommodityOrderDto comBatteryCommodityOrder) {
+        return this.comBatteryCommodityOrderService.queryByPage(comBatteryCommodityOrder);
+    }
+
+    /**
+     * description  add  新增数据
+     *
+     * @param comBatteryCommodityOrder 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-29 16:05:04
+     */
+    @PostMapping("/add")
+    public R add(@RequestBody AddComBatteryCommodityOrderDto comBatteryCommodityOrder) {
+        return this.comBatteryCommodityOrderService.insert(comBatteryCommodityOrder);
+    }
+
+    /**
+     * description  edit  编辑数据
+     *
+     * @param comBatteryCommodityOrder 请求参数
+     * @return 编辑结果
+     * @author lyq
+     * @date 2022-03-29 16:05:04
+     */
+    @PutMapping("/edit")
+    public R edit(@RequestBody EditComBatteryCommodityOrderDto comBatteryCommodityOrder) {
+        return this.comBatteryCommodityOrderService.update(comBatteryCommodityOrder);
+    }
+
+    /**
+     * description  deleteById  删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-29 16:05:04
+     */
+    @GetMapping("/delete")
+    public R deleteById(@RequestParam("id") Long id) {
+        return this.comBatteryCommodityOrderService.deleteById(id);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 16:05:04
+     */
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comBatteryCommodityOrderService.detailById(id);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommodityOrder 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 16:05:04
+     */
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComBatteryCommodityOrderDto comBatteryCommodityOrder) {
+        return this.comBatteryCommodityOrderService.queryByList(comBatteryCommodityOrder);
+    }
+
+    /**
+     * 修改订单收货地址
+     * @param editOrderAddressDto   请求参数
+     * @return  修改结果
+     */
+    @PutMapping("/update/address")
+    public R updateOrderAddress(@RequestBody EditOrderAddressDto editOrderAddressDto) {
+        return this.comBatteryCommodityOrderService.updateOrderAddress(editOrderAddressDto);
+    }
+
+    /**
+     * 修改订单物流信息
+     * @param editOrderLogisticsDto 请求参数
+     * @return  修改结果
+     */
+    @PutMapping("/update/logistics")
+    public R updateOrderLogistics(@RequestBody EditOrderLogisticsDto editOrderLogisticsDto) {
+        return this.comBatteryCommodityOrderService.updateOrderLogistics(editOrderLogisticsDto);
+    }
+
+    /**
+     * 小程序用户创建订单
+     * @param createOrderDto    请求参数
+     * @return  创建结果
+     */
+    @PostMapping("/applets/create")
+    public R appletsOrderCreate(@RequestBody UserCreateOrderDto createOrderDto){
+        return this.comBatteryCommodityOrderService.appletsOrderCreate(createOrderDto);
+    }
+
+    /**
+     * 电动车商城购买商品支付回调
+     * @param notifyOrderDTO    请求参数
+     * @return  购买商品支付回调
+     */
+    @PostMapping("/batteryPayNotify")
+    public R batteryPayNotify(@RequestBody WxPayNotifyOrderDTO notifyOrderDTO){
+        return this.comBatteryCommodityOrderService.batteryPayNotify(notifyOrderDTO);
+    }
+
+    /**
+     * 电动车商城用户确认收货
+     * @param id    订单id
+     * @param userId    用户id
+     * @return  确认结果
+     */
+    @GetMapping("/applets/receiving")
+    public R appletsOrderReceiving(@RequestParam("id") Long id,@RequestParam("userId") Long userId){
+        return this.comBatteryCommodityOrderService.appletsOrderReceiving(id,userId);
+    }
+
+    /**
+     * 定时关闭5分钟未支付订单
+     * @return  操作结果
+     */
+    @GetMapping("/sync/close/order")
+    public R syncCloseOrder(){
+        return this.comBatteryCommodityOrderService.syncCloseOrder();
+    }
+
+    /**
+     * 后台订单发货
+     * @param deliverAdminDto   请求参数
+     * @return  发货结果
+     */
+    @PostMapping("/deliver")
+    public R orderDeliver(@RequestBody OrderDeliverAdminDto deliverAdminDto){
+        return this.comBatteryCommodityOrderService.orderDeliver(deliverAdminDto);
+    }
+
+    /**
+     * 电动车商城购买活动商品支付回调
+     * @param notifyOrderDTO    请求参数
+     * @return  购买商品支付回调
+     */
+    @PostMapping("/batteryActivityPayNotify")
+    public R batteryActivityPayNotify(@RequestBody WxPayNotifyOrderDTO notifyOrderDTO){
+        return this.comBatteryCommodityOrderService.batteryActivityPayNotify(notifyOrderDTO);
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommoditySpecsController.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommoditySpecsController.java
new file mode 100644
index 0000000..7dd7170
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryCommoditySpecsController.java
@@ -0,0 +1,106 @@
+package com.panzhihua.service_community.api;
+
+import com.panzhihua.service_community.service.ComBatteryCommoditySpecsService;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * title: 电动车商城-商品规格表(ComBatteryCommoditySpecs)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商品规格表
+ *
+ * @author lyq
+ * @date 2022-03-28 15:16:21
+ */
+@RestController
+@RequestMapping("/comBatteryCommoditySpecs")
+public class ComBatteryCommoditySpecsController {
+
+    @Resource
+    private ComBatteryCommoditySpecsService comBatteryCommoditySpecsService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommoditySpecs 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-03-28 15:16:21
+     */
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComBatteryCommoditySpecsDto comBatteryCommoditySpecs) {
+        return this.comBatteryCommoditySpecsService.queryByPage(comBatteryCommoditySpecs);
+    }
+
+    /**
+     * description  add  新增数据
+     *
+     * @param comBatteryCommoditySpecs 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-28 15:16:21
+     */
+    @PostMapping("/add")
+    public R add(@RequestBody AddComBatteryCommoditySpecsDto comBatteryCommoditySpecs) {
+        return this.comBatteryCommoditySpecsService.insert(comBatteryCommoditySpecs);
+    }
+
+    /**
+     * description  edit  编辑数据
+     *
+     * @param comBatteryCommoditySpecs 请求参数
+     * @return 编辑结果
+     * @author lyq
+     * @date 2022-03-28 15:16:21
+     */
+    @PutMapping("/edit")
+    public R edit(@RequestBody EditComBatteryCommoditySpecsDto comBatteryCommoditySpecs) {
+        return this.comBatteryCommoditySpecsService.update(comBatteryCommoditySpecs);
+    }
+
+    /**
+     * description  deleteById  删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-28 15:16:21
+     */
+    @GetMapping("/delete")
+    public R deleteById(@RequestParam("id") Long id) {
+        return this.comBatteryCommoditySpecsService.deleteById(id);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-28 15:16:21
+     */
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comBatteryCommoditySpecsService.detailById(id);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommoditySpecs 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-28 15:16:21
+     */
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComBatteryCommoditySpecsDto comBatteryCommoditySpecs) {
+        return this.comBatteryCommoditySpecsService.queryByList(comBatteryCommoditySpecs);
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryStoreClassController.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryStoreClassController.java
new file mode 100644
index 0000000..b081285
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryStoreClassController.java
@@ -0,0 +1,127 @@
+package com.panzhihua.service_community.api;
+
+import com.panzhihua.service_community.service.ComBatteryStoreClassService;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * title: 电动车商城-商家分类表(ComBatteryStoreClass)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商家分类表
+ *
+ * @author lyq
+ * @date 2022-03-29 11:01:55
+ */
+@RestController
+@RequestMapping("/comBatteryStoreClass")
+public class ComBatteryStoreClassController {
+
+    @Resource
+    private ComBatteryStoreClassService comBatteryStoreClassService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryStoreClass 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-03-29 11:01:55
+     */
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComBatteryStoreClassDto comBatteryStoreClass) {
+        return this.comBatteryStoreClassService.queryByPage(comBatteryStoreClass);
+    }
+
+    /**
+     * description  add  新增数据
+     *
+     * @param comBatteryStoreClass 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-29 11:01:55
+     */
+    @PostMapping("/add")
+    public R add(@RequestBody AddComBatteryStoreClassDto comBatteryStoreClass) {
+        return this.comBatteryStoreClassService.insert(comBatteryStoreClass);
+    }
+
+    /**
+     * description  edit  编辑数据
+     *
+     * @param comBatteryStoreClass 请求参数
+     * @return 编辑结果
+     * @author lyq
+     * @date 2022-03-29 11:01:55
+     */
+    @PutMapping("/edit")
+    public R edit(@RequestBody EditComBatteryStoreClassDto comBatteryStoreClass) {
+        return this.comBatteryStoreClassService.update(comBatteryStoreClass);
+    }
+
+    /**
+     * description  deleteById  删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-29 11:01:55
+     */
+    @GetMapping("/delete")
+    public R deleteById(@RequestParam("id") Long id) {
+        return this.comBatteryStoreClassService.deleteById(id);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 11:01:55
+     */
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comBatteryStoreClassService.detailById(id);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryStoreClass 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 11:01:55
+     */
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComBatteryStoreClassDto comBatteryStoreClass) {
+        return this.comBatteryStoreClassService.queryByList(comBatteryStoreClass);
+    }
+
+    /**
+     * 修改分类状态
+     * @param id    分类id
+     * @param status    状态
+     * @return  修改结果
+     */
+    @GetMapping("/updateStatus")
+    public R updateStatus(@RequestParam("id") Long id,@RequestParam("status") Integer status) {
+        return this.comBatteryStoreClassService.updateStatus(id,status);
+    }
+
+    /**
+     * 小程序查询商家分类列表以及分类下商品列表
+     * @param comBatteryStoreClass  请求参数
+     * @return  商家分类列表以及分类下商品列表
+     */
+    @PostMapping("/applets/list")
+    public R queryByAppletsList(@RequestBody PageComBatteryStoreClassDto comBatteryStoreClass) {
+        return this.comBatteryStoreClassService.queryByAppletsList(comBatteryStoreClass);
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryStoreController.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryStoreController.java
new file mode 100644
index 0000000..4e30a58
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryStoreController.java
@@ -0,0 +1,116 @@
+package com.panzhihua.service_community.api;
+
+import com.panzhihua.service_community.service.ComBatteryStoreService;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * title: 电动车商城-商家表(ComBatteryStore)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商家表
+ *
+ * @author lyq
+ * @date 2022-03-28 13:44:43
+ */
+@RestController
+@RequestMapping("/comBatteryStore")
+public class ComBatteryStoreController {
+
+    @Resource
+    private ComBatteryStoreService comBatteryStoreService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryStore 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-03-28 13:44:43
+     */
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComBatteryStoreDto comBatteryStore) {
+        return this.comBatteryStoreService.queryByPage(comBatteryStore);
+    }
+
+    /**
+     * description  add  新增数据
+     *
+     * @param comBatteryStore 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-28 13:44:43
+     */
+    @PostMapping("/add")
+    public R add(@RequestBody AddComBatteryStoreDto comBatteryStore) {
+        return this.comBatteryStoreService.insert(comBatteryStore);
+    }
+
+    /**
+     * description  edit  编辑数据
+     *
+     * @param comBatteryStore 请求参数
+     * @return 编辑结果
+     * @author lyq
+     * @date 2022-03-28 13:44:43
+     */
+    @PutMapping("/edit")
+    public R edit(@RequestBody EditComBatteryStoreDto comBatteryStore) {
+        return this.comBatteryStoreService.update(comBatteryStore);
+    }
+
+    /**
+     * description  deleteById  删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-28 13:44:43
+     */
+    @GetMapping("/delete")
+    public R deleteById(@RequestParam("id") Long id) {
+        return this.comBatteryStoreService.deleteById(id);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-28 13:44:43
+     */
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comBatteryStoreService.detailById(id);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryStore 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-28 13:44:43
+     */
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComBatteryStoreDto comBatteryStore) {
+        return this.comBatteryStoreService.queryByList(comBatteryStore);
+    }
+
+    /**
+     * 修改电动车商家后台用户密码
+     * @param storeId  商家后台用户id
+     * @param passWord  用户需要修改的密码
+     * @return  重置密码结果
+     */
+    @GetMapping("/resetPassword")
+    public R resetPassword(@RequestParam("storeId") Long storeId,@RequestParam("passWord") String passWord) {
+        return this.comBatteryStoreService.resetPassword(storeId,passWord);
+    }
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryUserAddressController.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryUserAddressController.java
new file mode 100644
index 0000000..8f55a8a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComBatteryUserAddressController.java
@@ -0,0 +1,116 @@
+package com.panzhihua.service_community.api;
+
+import com.panzhihua.service_community.service.ComBatteryUserAddressService;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * title: 电动车商城-用户收货地址表(ComBatteryUserAddress)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-用户收货地址表
+ *
+ * @author lyq
+ * @date 2022-03-29 13:18:19
+ */
+@RestController
+@RequestMapping("/comBatteryUserAddress")
+public class ComBatteryUserAddressController {
+
+    @Resource
+    private ComBatteryUserAddressService comBatteryUserAddressService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryUserAddress 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-03-29 13:18:19
+     */
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComBatteryUserAddressDto comBatteryUserAddress) {
+        return this.comBatteryUserAddressService.queryByPage(comBatteryUserAddress);
+    }
+
+    /**
+     * description  add  新增数据
+     *
+     * @param comBatteryUserAddress 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-29 13:18:19
+     */
+    @PostMapping("/add")
+    public R add(@RequestBody AddComBatteryUserAddressDto comBatteryUserAddress) {
+        return this.comBatteryUserAddressService.insert(comBatteryUserAddress);
+    }
+
+    /**
+     * description  edit  编辑数据
+     *
+     * @param comBatteryUserAddress 请求参数
+     * @return 编辑结果
+     * @author lyq
+     * @date 2022-03-29 13:18:19
+     */
+    @PutMapping("/edit")
+    public R edit(@RequestBody EditComBatteryUserAddressDto comBatteryUserAddress) {
+        return this.comBatteryUserAddressService.update(comBatteryUserAddress);
+    }
+
+    /**
+     * description  deleteById  删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-29 13:18:19
+     */
+    @GetMapping("/delete")
+    public R deleteById(@RequestParam("id") Long id) {
+        return this.comBatteryUserAddressService.deleteById(id);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 13:18:19
+     */
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comBatteryUserAddressService.detailById(id);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryUserAddress 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 13:18:19
+     */
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComBatteryUserAddressDto comBatteryUserAddress) {
+        return this.comBatteryUserAddressService.queryByList(comBatteryUserAddress);
+    }
+
+    /**
+     * 查询用户默认收货地址
+     * @param userId    用户id
+     * @return  用户默认收货地址
+     */
+    @PostMapping("/default/address")
+    public R getDefaultAddress(@RequestParam("userId") Long userId) {
+        return this.comBatteryUserAddressService.getDefaultAddress(userId);
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComChangeCarBrandController.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComChangeCarBrandController.java
new file mode 100644
index 0000000..bfdfe8d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComChangeCarBrandController.java
@@ -0,0 +1,106 @@
+package com.panzhihua.service_community.api;
+
+import com.panzhihua.service_community.service.ComChangeCarBrandService;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * title: 换新车-品牌表(ComChangeCarBrand)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-品牌表
+ *
+ * @author lyq
+ * @date 2022-04-07 13:37:22
+ */
+@RestController
+@RequestMapping("/comChangeCarBrand")
+public class ComChangeCarBrandController {
+
+    @Resource
+    private ComChangeCarBrandService comChangeCarBrandService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comChangeCarBrand 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-04-07 13:37:22
+     */
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComChangeCarBrandDto comChangeCarBrand) {
+        return this.comChangeCarBrandService.queryByPage(comChangeCarBrand);
+    }
+
+    /**
+     * description  add  新增数据
+     *
+     * @param comChangeCarBrand 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-04-07 13:37:22
+     */
+    @PostMapping("/add")
+    public R add(@RequestBody AddComChangeCarBrandDto comChangeCarBrand) {
+        return this.comChangeCarBrandService.insert(comChangeCarBrand);
+    }
+
+    /**
+     * description  edit  编辑数据
+     *
+     * @param comChangeCarBrand 请求参数
+     * @return 编辑结果
+     * @author lyq
+     * @date 2022-04-07 13:37:22
+     */
+    @PutMapping("/edit")
+    public R edit(@RequestBody EditComChangeCarBrandDto comChangeCarBrand) {
+        return this.comChangeCarBrandService.update(comChangeCarBrand);
+    }
+
+    /**
+     * description  deleteById  删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-04-07 13:37:22
+     */
+    @GetMapping("/delete")
+    public R deleteById(@RequestParam("id") Long id) {
+        return this.comChangeCarBrandService.deleteById(id);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-07 13:37:22
+     */
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comChangeCarBrandService.detailById(id);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comChangeCarBrand 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-04-07 13:37:22
+     */
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComChangeCarBrandDto comChangeCarBrand) {
+        return this.comChangeCarBrandService.queryByList(comChangeCarBrand);
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComChangeCarInquiryController.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComChangeCarInquiryController.java
new file mode 100644
index 0000000..e5774fd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComChangeCarInquiryController.java
@@ -0,0 +1,106 @@
+package com.panzhihua.service_community.api;
+
+import com.panzhihua.service_community.service.ComChangeCarInquiryService;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * title: 换新车-分期询价表(ComChangeCarInquiry)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-分期询价表
+ *
+ * @author lyq
+ * @date 2022-04-07 13:39:06
+ */
+@RestController
+@RequestMapping("/comChangeCarInquiry")
+public class ComChangeCarInquiryController {
+
+    @Resource
+    private ComChangeCarInquiryService comChangeCarInquiryService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comChangeCarInquiry 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-04-07 13:39:06
+     */
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComChangeCarInquiryDto comChangeCarInquiry) {
+        return this.comChangeCarInquiryService.queryByPage(comChangeCarInquiry);
+    }
+
+    /**
+     * description  add  新增数据
+     *
+     * @param comChangeCarInquiry 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-04-07 13:39:06
+     */
+    @PostMapping("/add")
+    public R add(@RequestBody AddComChangeCarInquiryDto comChangeCarInquiry) {
+        return this.comChangeCarInquiryService.insert(comChangeCarInquiry);
+    }
+
+    /**
+     * description  edit  编辑数据
+     *
+     * @param comChangeCarInquiry 请求参数
+     * @return 编辑结果
+     * @author lyq
+     * @date 2022-04-07 13:39:06
+     */
+    @PutMapping("/edit")
+    public R edit(@RequestBody EditComChangeCarInquiryDto comChangeCarInquiry) {
+        return this.comChangeCarInquiryService.update(comChangeCarInquiry);
+    }
+
+    /**
+     * description  deleteById  删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-04-07 13:39:06
+     */
+    @GetMapping("/delete")
+    public R deleteById(@RequestParam("id") Long id) {
+        return this.comChangeCarInquiryService.deleteById(id);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-07 13:39:06
+     */
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comChangeCarInquiryService.detailById(id);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comChangeCarInquiry 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-04-07 13:39:06
+     */
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComChangeCarInquiryDto comChangeCarInquiry) {
+        return this.comChangeCarInquiryService.queryByList(comChangeCarInquiry);
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComChangeCarModelController.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComChangeCarModelController.java
new file mode 100644
index 0000000..d498590
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComChangeCarModelController.java
@@ -0,0 +1,117 @@
+package com.panzhihua.service_community.api;
+
+import com.panzhihua.service_community.service.ComChangeCarModelService;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * title: 换新车-车型管理表(ComChangeCarModel)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-车型管理表
+ *
+ * @author lyq
+ * @date 2022-04-07 13:41:54
+ */
+@RestController
+@RequestMapping("/comChangeCarModel")
+public class ComChangeCarModelController {
+
+    @Resource
+    private ComChangeCarModelService comChangeCarModelService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comChangeCarModel 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-04-07 13:41:54
+     */
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComChangeCarModelDto comChangeCarModel) {
+        return this.comChangeCarModelService.queryByPage(comChangeCarModel);
+    }
+
+    /**
+     * description  add  新增数据
+     *
+     * @param comChangeCarModel 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-04-07 13:41:54
+     */
+    @PostMapping("/add")
+    public R add(@RequestBody AddComChangeCarModelDto comChangeCarModel) {
+        return this.comChangeCarModelService.insert(comChangeCarModel);
+    }
+
+    /**
+     * description  edit  编辑数据
+     *
+     * @param comChangeCarModel 请求参数
+     * @return 编辑结果
+     * @author lyq
+     * @date 2022-04-07 13:41:54
+     */
+    @PutMapping("/edit")
+    public R edit(@RequestBody EditComChangeCarModelDto comChangeCarModel) {
+        return this.comChangeCarModelService.update(comChangeCarModel);
+    }
+
+    /**
+     * description  deleteById  删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-04-07 13:41:54
+     */
+    @GetMapping("/delete")
+    public R deleteById(@RequestParam("id") Long id) {
+        return this.comChangeCarModelService.deleteById(id);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-07 13:41:54
+     */
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comChangeCarModelService.detailById(id);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comChangeCarModel 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-04-07 13:41:54
+     */
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComChangeCarModelDto comChangeCarModel) {
+        return this.comChangeCarModelService.queryByList(comChangeCarModel);
+    }
+
+    /**
+     * 修改车型状态
+     * @param id    车型id
+     * @param status    车型状态
+     * @return  修改结果
+     */
+    @GetMapping("/updateStatus")
+    public R updateStatus(@RequestParam("id") Long id,@RequestParam("status") Integer status) {
+        return this.comChangeCarModelService.updateStatus(id,status);
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComChangeCarModelRelationController.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComChangeCarModelRelationController.java
new file mode 100644
index 0000000..06173aa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComChangeCarModelRelationController.java
@@ -0,0 +1,119 @@
+package com.panzhihua.service_community.api;
+
+import com.panzhihua.service_community.service.ComChangeCarModelRelationService;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * title: 换新车-车型与规格关联表(ComChangeCarModelRelation)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-车型与规格关联表
+ *
+ * @author lyq
+ * @date 2022-04-07 13:55:29
+ */
+@RestController
+@RequestMapping("/comChangeCarModelRelation")
+public class ComChangeCarModelRelationController {
+
+    @Resource
+    private ComChangeCarModelRelationService comChangeCarModelRelationService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comChangeCarModelRelation 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-04-07 13:55:29
+     */
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComChangeCarModelRelationDto comChangeCarModelRelation) {
+        return this.comChangeCarModelRelationService.queryByPage(comChangeCarModelRelation);
+    }
+
+    /**
+     * description  add  新增数据
+     *
+     * @param comChangeCarModelRelation 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-04-07 13:55:29
+     */
+    @PostMapping("/add")
+    public R add(@RequestBody AddComChangeCarModelRelationDto comChangeCarModelRelation) {
+        return this.comChangeCarModelRelationService.insert(comChangeCarModelRelation);
+    }
+
+    /**
+     * description  edit  编辑数据
+     *
+     * @param comChangeCarModelRelation 请求参数
+     * @return 编辑结果
+     * @author lyq
+     * @date 2022-04-07 13:55:29
+     */
+    @PutMapping("/edit")
+    public R edit(@RequestBody EditComChangeCarModelRelationDto comChangeCarModelRelation) {
+        return this.comChangeCarModelRelationService.update(comChangeCarModelRelation);
+    }
+
+    /**
+     * description  deleteById  删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-04-07 13:55:29
+     */
+    @GetMapping("/delete")
+    public R deleteById(@RequestParam("id") Long id) {
+        return this.comChangeCarModelRelationService.deleteById(id);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-07 13:55:29
+     */
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comChangeCarModelRelationService.detailById(id);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comChangeCarModelRelation 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-04-07 13:55:29
+     */
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComChangeCarModelRelationDto comChangeCarModelRelation) {
+        return this.comChangeCarModelRelationService.queryByList(comChangeCarModelRelation);
+    }
+
+    /**
+     * description  queryByPage  小程序分页查询
+     *
+     * @param comChangeCarModelRelation 请求参数
+     * @return 小程序分页查询返回参数
+     * @author lyq
+     * @date 2022-04-07 13:55:29
+     */
+    @PostMapping("/applets/page")
+    public R queryByAppletsPage(@RequestBody PageComChangeCarModelRelationDto comChangeCarModelRelation) {
+        return this.comChangeCarModelRelationService.queryByAppletsPage(comChangeCarModelRelation);
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComChangeCarModelSpecsChildrenController.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComChangeCarModelSpecsChildrenController.java
new file mode 100644
index 0000000..13714ac
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComChangeCarModelSpecsChildrenController.java
@@ -0,0 +1,106 @@
+package com.panzhihua.service_community.api;
+
+import com.panzhihua.service_community.service.ComChangeCarModelSpecsChildrenService;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * title: 换新车-车型子规格表(ComChangeCarModelSpecsChildren)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-车型子规格表
+ *
+ * @author lyq
+ * @date 2022-04-07 13:55:33
+ */
+@RestController
+@RequestMapping("/comChangeCarModelSpecsChildren")
+public class ComChangeCarModelSpecsChildrenController {
+
+    @Resource
+    private ComChangeCarModelSpecsChildrenService comChangeCarModelSpecsChildrenService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comChangeCarModelSpecsChildren 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-04-07 13:55:33
+     */
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComChangeCarModelSpecsChildrenDto comChangeCarModelSpecsChildren) {
+        return this.comChangeCarModelSpecsChildrenService.queryByPage(comChangeCarModelSpecsChildren);
+    }
+
+    /**
+     * description  add  新增数据
+     *
+     * @param comChangeCarModelSpecsChildren 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-04-07 13:55:33
+     */
+    @PostMapping("/add")
+    public R add(@RequestBody AddComChangeCarModelSpecsChildrenDto comChangeCarModelSpecsChildren) {
+        return this.comChangeCarModelSpecsChildrenService.insert(comChangeCarModelSpecsChildren);
+    }
+
+    /**
+     * description  edit  编辑数据
+     *
+     * @param comChangeCarModelSpecsChildren 请求参数
+     * @return 编辑结果
+     * @author lyq
+     * @date 2022-04-07 13:55:33
+     */
+    @PutMapping("/edit")
+    public R edit(@RequestBody EditComChangeCarModelSpecsChildrenDto comChangeCarModelSpecsChildren) {
+        return this.comChangeCarModelSpecsChildrenService.update(comChangeCarModelSpecsChildren);
+    }
+
+    /**
+     * description  deleteById  删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-04-07 13:55:33
+     */
+    @GetMapping("/delete")
+    public R deleteById(@RequestParam("id") Long id) {
+        return this.comChangeCarModelSpecsChildrenService.deleteById(id);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-07 13:55:33
+     */
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comChangeCarModelSpecsChildrenService.detailById(id);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comChangeCarModelSpecsChildren 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-04-07 13:55:33
+     */
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComChangeCarModelSpecsChildrenDto comChangeCarModelSpecsChildren) {
+        return this.comChangeCarModelSpecsChildrenService.queryByList(comChangeCarModelSpecsChildren);
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComChangeCarModelSpecsController.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComChangeCarModelSpecsController.java
new file mode 100644
index 0000000..248ee90
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComChangeCarModelSpecsController.java
@@ -0,0 +1,106 @@
+package com.panzhihua.service_community.api;
+
+import com.panzhihua.service_community.service.ComChangeCarModelSpecsService;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * title: 换新车-车型规格表(ComChangeCarModelSpecs)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-车型规格表
+ *
+ * @author lyq
+ * @date 2022-04-07 13:55:31
+ */
+@RestController
+@RequestMapping("/comChangeCarModelSpecs")
+public class ComChangeCarModelSpecsController {
+
+    @Resource
+    private ComChangeCarModelSpecsService comChangeCarModelSpecsService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comChangeCarModelSpecs 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-04-07 13:55:31
+     */
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComChangeCarModelSpecsDto comChangeCarModelSpecs) {
+        return this.comChangeCarModelSpecsService.queryByPage(comChangeCarModelSpecs);
+    }
+
+    /**
+     * description  add  新增数据
+     *
+     * @param comChangeCarModelSpecs 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-04-07 13:55:31
+     */
+    @PostMapping("/add")
+    public R add(@RequestBody AddComChangeCarModelSpecsDto comChangeCarModelSpecs) {
+        return this.comChangeCarModelSpecsService.insert(comChangeCarModelSpecs);
+    }
+
+    /**
+     * description  edit  编辑数据
+     *
+     * @param comChangeCarModelSpecs 请求参数
+     * @return 编辑结果
+     * @author lyq
+     * @date 2022-04-07 13:55:31
+     */
+    @PutMapping("/edit")
+    public R edit(@RequestBody EditComChangeCarModelSpecsDto comChangeCarModelSpecs) {
+        return this.comChangeCarModelSpecsService.update(comChangeCarModelSpecs);
+    }
+
+    /**
+     * description  deleteById  删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-04-07 13:55:31
+     */
+    @GetMapping("/delete")
+    public R deleteById(@RequestParam("id") Long id) {
+        return this.comChangeCarModelSpecsService.deleteById(id);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-07 13:55:31
+     */
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comChangeCarModelSpecsService.detailById(id);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comChangeCarModelSpecs 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-04-07 13:55:31
+     */
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComChangeCarModelSpecsDto comChangeCarModelSpecs) {
+        return this.comChangeCarModelSpecsService.queryByList(comChangeCarModelSpecs);
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComCorrectPopulationApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComCorrectPopulationApi.java
new file mode 100644
index 0000000..1e3e34a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComCorrectPopulationApi.java
@@ -0,0 +1,15 @@
+package com.panzhihua.service_community.api;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 16:45:25
+ * @describe 社区矫正人员表前端控制器
+ */
+@RestController
+@RequestMapping("/correct/population")
+public class ComCorrectPopulationApi {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComCultPopulationApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComCultPopulationApi.java
new file mode 100644
index 0000000..1d6c596
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComCultPopulationApi.java
@@ -0,0 +1,15 @@
+package com.panzhihua.service_community.api;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 17:40:24
+ * @describe 邪教人员表前端控制器
+ */
+@RestController
+@RequestMapping("/cult/population")
+public class ComCultPopulationApi {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComDisabilityPopulationApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComDisabilityPopulationApi.java
new file mode 100644
index 0000000..32ebb59
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComDisabilityPopulationApi.java
@@ -0,0 +1,15 @@
+package com.panzhihua.service_community.api;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 19:54:57
+ * @describe 实有人口导入》残疾人表前端控制器
+ */
+@RestController
+@RequestMapping("/disability/population")
+public class ComDisabilityPopulationApi {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComDrugPopulationApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComDrugPopulationApi.java
new file mode 100644
index 0000000..3f22a57
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComDrugPopulationApi.java
@@ -0,0 +1,15 @@
+package com.panzhihua.service_community.api;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 15:37:19
+ * @describe 吸毒人员表前端控制器
+ */
+@RestController
+@RequestMapping("/drug/population")
+public class ComDrugPopulationApi {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComFmsApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComFmsApi.java
new file mode 100644
index 0000000..5e8d564
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComFmsApi.java
@@ -0,0 +1,518 @@
+package com.panzhihua.service_community.api;
+
+import com.panzhihua.common.model.dtos.community.fms.AddFmsClassroomAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.AddFmsServiceAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.AddTeamDTO;
+import com.panzhihua.common.model.dtos.community.fms.AddTeamMemberDTO;
+import com.panzhihua.common.model.dtos.community.fms.AddTeamTypeDTO;
+import com.panzhihua.common.model.dtos.community.fms.ApplyFmsServiceDTO;
+import com.panzhihua.common.model.dtos.community.fms.ApprovalFmsServiceAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.DeleteTeamMemberDTO;
+import com.panzhihua.common.model.dtos.community.fms.EditFmsClassroomAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.EditTeamDTO;
+import com.panzhihua.common.model.dtos.community.fms.EditTeamMemberDTO;
+import com.panzhihua.common.model.dtos.community.fms.EditTeamTypeDTO;
+import com.panzhihua.common.model.dtos.community.fms.EvaluationFmsServiceDTO;
+import com.panzhihua.common.model.dtos.community.fms.FeedbackFmsServiceDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageFmsClassroomAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageFmsEventAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageFmsServiceAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageFmsServiceAppletsDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageFmsTeamDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageTeamMemberDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.fms.ComFmsServiceImportExcelVO;
+import com.panzhihua.common.model.vos.community.fms.ComFmsTeamMemberImportExcelVO;
+import com.panzhihua.service_community.service.ComFmsClassroomService;
+import com.panzhihua.service_community.service.ComFmsServiceEvaluationsService;
+import com.panzhihua.service_community.service.ComFmsServiceService;
+import com.panzhihua.service_community.service.ComFmsTeamMemberService;
+import com.panzhihua.service_community.service.ComFmsTeamService;
+import com.panzhihua.service_community.service.ComFmsTeamTypeService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.DeleteMapping;
+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 javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @title: ComFmsApi
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 五微服务相关接口
+ * @author: hans
+ * @date: 2022/02/11 13:23
+ */
+@Slf4j
+@RestController
+@RequestMapping("/fms")
+public class ComFmsApi {
+
+    @Resource
+    private ComFmsTeamTypeService comFmsTeamTypeService;
+    @Resource
+    private ComFmsTeamService comFmsTeamService;
+    @Resource
+    private ComFmsTeamMemberService comFmsTeamMemberService;
+    @Resource
+    private ComFmsServiceService comFmsServiceService;
+    @Resource
+    private ComFmsClassroomService comFmsClassroomService;
+    @Resource
+    private ComFmsServiceEvaluationsService comFmsServiceEvaluationsService;
+
+    /**
+     * 新增团队类型
+     * @param addTeamTypeDTO
+     * @return
+     */
+    @PostMapping("/teamType/add")
+    public R addFmsTeamType(@RequestBody AddTeamTypeDTO addTeamTypeDTO) {
+        return comFmsTeamTypeService.addFmsTeamType(addTeamTypeDTO);
+    }
+
+    /**
+     * 修改团队类型
+     * @param editTeamTypeDTO
+     * @return
+     */
+    @PostMapping("/teamType/edit")
+    public R editFmsTeamType(@RequestBody EditTeamTypeDTO editTeamTypeDTO) {
+        return comFmsTeamTypeService.editFmsTeamType(editTeamTypeDTO);
+    }
+
+    /**
+     * 删除团队类型
+     * @param teamTypeId
+     * @param communityId
+     * @return
+     */
+    @DeleteMapping("/teamType/delete")
+    public R deleteFmsTeamType(@RequestParam("teamTypeId") Long teamTypeId,
+                        @RequestParam("communityId") Long communityId) {
+        return comFmsTeamTypeService.deleteFmsTeamType(teamTypeId, communityId);
+    }
+
+    /**
+     * 获取团队类型列表
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/teamType/list")
+    public R listFmsTeamType(@RequestParam("communityId") Long communityId) {
+        return comFmsTeamTypeService.listFmsTeamType(communityId);
+    }
+
+    /**
+     * 新增团队
+     * @param addTeamDTO
+     * @return
+     */
+    @PostMapping("/team/add")
+    public R addFmsTeam(@RequestBody AddTeamDTO addTeamDTO) {
+        return comFmsTeamService.addFmsTeam(addTeamDTO);
+    }
+
+    /**
+     * 修改团队信息
+     * @param editTeamDTO
+     * @return
+     */
+    @PostMapping("/team/edit")
+    public R editFmsTeam(@RequestBody EditTeamDTO editTeamDTO) {
+        return comFmsTeamService.editFmsTeam(editTeamDTO);
+    }
+
+    /**
+     * 删除团队
+     * @param teamId
+     * @return
+     */
+    @DeleteMapping("/team/delete")
+    public R deleteFmsTeam(@RequestParam("teamId") Long teamId) {
+        return comFmsTeamService.deleteFmsTeam(teamId);
+    }
+
+    /**
+     * 获取团队列表
+     * @param teamTypeId
+     * @return
+     */
+    @GetMapping("/team/list")
+    public R listFmsTeam(@RequestParam("teamTypeId") Long teamTypeId) {
+        return comFmsTeamService.listFmsTeam(teamTypeId);
+    }
+
+    /**
+     * 获取团队详情
+     * @param teamId
+     * @return
+     */
+    @GetMapping("/team/detail")
+    public R detailFmsTeam(@RequestParam("teamId") Long teamId) {
+        return comFmsTeamService.detailFmsTeam(teamId);
+    }
+
+    /**
+     * 级联查询团队数据
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/team/cascade")
+    public R retrieveFmsTeamCascade(@RequestParam("communityId") Long communityId) {
+        return comFmsTeamService.retrieveFmsTeamCascade(communityId);
+    }
+
+    /**
+     * 新增团队成员
+     * @param addTeamMemberDTO
+     * @return
+     */
+    @PostMapping("/teamMember/add")
+    public R addFmsTeamMember(@RequestBody AddTeamMemberDTO addTeamMemberDTO) {
+        return comFmsTeamMemberService.addFmsTeamMember(addTeamMemberDTO);
+    }
+
+    /**
+     * 编辑团队成员
+     * @param editTeamMemberDTO
+     * @return
+     */
+    @PostMapping("/teamMember/edit")
+    public R editFmsTeamMember(@RequestBody EditTeamMemberDTO editTeamMemberDTO) {
+        return comFmsTeamMemberService.editFmsTeamMember(editTeamMemberDTO);
+    }
+
+    /**
+     * 删除团队成员
+     * @param deleteTeamMemberDTO
+     * @return
+     */
+    @PostMapping("/teamMember/delete")
+    public R deleteFmsTeamMember(@RequestBody DeleteTeamMemberDTO deleteTeamMemberDTO) {
+        return comFmsTeamMemberService.deleteFmsTeamMember(deleteTeamMemberDTO);
+    }
+
+    /**
+     * 分页查询团队成员
+     * @param pageTeamMemberDTO
+     * @return
+     */
+    @PostMapping("/teamMember/page")
+    public R pageFmsTeamMember(@RequestBody PageTeamMemberDTO pageTeamMemberDTO) {
+        return comFmsTeamMemberService.pageFmsTeamMember(pageTeamMemberDTO);
+    }
+
+    /**
+     * 微团队顶部统计
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/teamMember/statistics")
+    public R statisticsFmsTeamMember(@RequestParam("communityId") Long communityId) {
+        return comFmsTeamMemberService.statisticsFmsTeamMember(communityId);
+    }
+
+    /**
+     * 批量导入团队成员
+     * @param voList
+     * @param communityId
+     * @param userId
+     * @return
+     */
+    @PostMapping("/teamMember/import")
+    public R listSaveFmsTeamMemberExcelVO(@RequestBody List<ComFmsTeamMemberImportExcelVO> voList,
+                                   @RequestParam("communityId") Long communityId, @RequestParam("userId") Long userId) {
+        return comFmsTeamMemberService.listSaveFmsTeamMemberExcelVO(voList, communityId, userId);
+    }
+
+    /**
+     * 团队人员导出
+     * @param pageTeamMemberDTO
+     * @return
+     */
+    @PostMapping("/teamMember/export")
+    public R exportTeamMember(@RequestBody PageTeamMemberDTO pageTeamMemberDTO) {
+        return comFmsTeamMemberService.exportTeamMember(pageTeamMemberDTO);
+    }
+
+    /**
+     * 后台新增微服务
+     * @param adminDTO
+     * @return
+     */
+    @PostMapping("/service/adminAdd")
+    public R addFmsServiceAdmin(@RequestBody AddFmsServiceAdminDTO adminDTO) {
+        return comFmsServiceService.addFmsServiceAdmin(adminDTO);
+    }
+
+    /**
+     * 后台分页查询微服务
+     * @param adminDTO
+     * @return
+     */
+    @PostMapping("/service/adminPage")
+    public R pageFmsServiceAdmin(@RequestBody PageFmsServiceAdminDTO adminDTO) {
+        return comFmsServiceService.pageFmsServiceAdmin(adminDTO);
+    }
+
+    /**
+     * 后台核实微服务
+     * @param adminDTO
+     * @return
+     */
+    @PostMapping("/service/approval")
+    public R approvalFmsService(@RequestBody ApprovalFmsServiceAdminDTO adminDTO) {
+        return comFmsServiceService.approvalFmsService(adminDTO);
+    }
+
+    /**
+     * 级联查询团队服务人员
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/teamMember/cascade")
+    public R retrieveFmsTeamMemberCascade(@RequestParam("communityId") Long communityId) {
+        return comFmsTeamMemberService.retrieveFmsTeamMemberCascade(communityId);
+    }
+
+    /**
+     * 后台查看微服务详情
+     * @param serviceId
+     * @return
+     */
+    @GetMapping("/service/detailAdmin")
+    public R detailFmsServiceAdmin(@RequestParam("serviceId") Long serviceId) {
+        return comFmsServiceService.detailFmsServiceAdmin(serviceId);
+    }
+
+    /**
+     * 后台删除微服务
+     * @param serviceId
+     * @return
+     */
+    @DeleteMapping("/service/delete")
+    public R deleteFmsServiceAdmin(@RequestParam("serviceId") Long serviceId) {
+        return comFmsServiceService.deleteFmsServiceAdmin(serviceId);
+    }
+
+    /**
+     * 微服务顶部统计
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/service/statistics")
+    public R statisticsFmsService(@RequestParam("communityId") Long communityId) {
+        return comFmsServiceService.statisticsFmsService(communityId);
+    }
+
+    /**
+     * 后台导入微服务数据
+     * @param voList
+     * @param communityId
+     * @param userId
+     * @return
+     */
+    @PostMapping("/service/import")
+    public R listSaveFmsServiceExcelVO(@RequestBody List<ComFmsServiceImportExcelVO> voList,
+                                @RequestParam("communityId") Long communityId,
+                                @RequestParam("userId") Long userId) {
+        return comFmsServiceService.listSaveFmsServiceExcelVO(voList, communityId, userId);
+    }
+
+    /**
+     * 后台新增微讲堂
+     * @param adminDTO
+     * @return
+     */
+    @PostMapping("/classroom/add")
+    public R addFmsClassroom(@RequestBody AddFmsClassroomAdminDTO adminDTO) {
+        return comFmsClassroomService.addFmsClassroom(adminDTO);
+    }
+
+    /**
+     * 后台编辑微讲堂
+     * @param adminDTO
+     * @return
+     */
+    @PostMapping("/classroom/edit")
+    public R editFmsClassroom(@RequestBody EditFmsClassroomAdminDTO adminDTO) {
+        return comFmsClassroomService.editFmsClassroom(adminDTO);
+    }
+
+    /**
+     * 后台删除微讲堂
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/classroom/delete")
+    public R deleteFmsClassroom(@RequestParam("id") Long id) {
+        return comFmsClassroomService.deleteFmsClassroom(id);
+    }
+
+    /**
+     * 后台获取微讲堂详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/classroom/detail")
+    public R detailFmsClassroom(@RequestParam("id") Long id) {
+        return comFmsClassroomService.detailFmsClassroom(id);
+    }
+
+    /**
+     * 后台分页查询微讲堂
+     * @param adminDTO
+     * @return
+     */
+    @PostMapping("/classroom/pageAdmin")
+    public R pageFmsClassroomAdmin(@RequestBody PageFmsClassroomAdminDTO adminDTO) {
+        return comFmsClassroomService.pageFmsClassroomAdmin(adminDTO);
+    }
+
+    /**
+     * 微讲堂顶部统计
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/classroom/statistics")
+    public R statisticsFmsClassroom(@RequestParam("communityId") Long communityId) {
+        return comFmsClassroomService.statisticsFmsClassroom(communityId);
+    }
+
+    /**
+     * 后台分页查询微调节/微防控
+     * @param adminDTO
+     * @return
+     */
+    @PostMapping("/event/page")
+    public R pageFmsEvent(@RequestBody PageFmsEventAdminDTO adminDTO) {
+        return comFmsClassroomService.pageFmsEvent(adminDTO);
+    }
+
+    /**
+     * 微调节/微防控顶部统计
+     * @param type
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/event/statistics")
+    public R statisticsFmsEvent(@RequestParam("type") Integer type, @RequestParam("communityId") Long communityId) {
+        return comFmsClassroomService.statisticsFmsEvent(type, communityId);
+    }
+
+    /**
+     * 小程序分页查询团队信息
+     * @param pageFmsTeamDTO
+     * @return
+     */
+    @PostMapping("/team/pageApplets")
+    public R pageFmsTeamApplets(@RequestBody PageFmsTeamDTO pageFmsTeamDTO) {
+        return comFmsTeamService.pageFmsTeamApplets(pageFmsTeamDTO);
+    }
+
+    /**
+     * 小程序获取微讲堂详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/classroom/detailApplets")
+    public R detailFmsClassroomApplets(@RequestParam("id") Long id) {
+        return comFmsClassroomService.detailFmsClassroomApplets(id);
+    }
+
+    /**
+     * 小程序分页查询微调节/微防控
+     * @param adminDTO
+     * @return
+     */
+    @PostMapping("/event/pageApplets")
+    public R pageFmsEventApplets(@RequestBody PageFmsEventAdminDTO adminDTO) {
+        return comFmsClassroomService.pageFmsEventApplets(adminDTO);
+    }
+
+    /**
+     * 小程序分页查询微服务
+     * @param adminDTO
+     * @return
+     */
+    @PostMapping("/service/pageApplets")
+    public R pageFmsServiceApplets(@RequestBody PageFmsServiceAppletsDTO adminDTO) {
+        return comFmsServiceService.pageFmsServiceApplets(adminDTO);
+    }
+
+    /**
+     * 小程序查看微服务详情
+     * @param serviceId
+     * @param userId
+     * @return
+     */
+    @GetMapping("/service/detailApplets")
+    public R detailFmsServiceApplets(@RequestParam("serviceId") Long serviceId, @RequestParam(value = "userId", required = false) Long userId) {
+        return comFmsServiceService.detailFmsServiceApplets(serviceId, userId);
+    }
+
+    /**
+     * 微服务申请
+     * @param adminDTO
+     * @return
+     */
+    @PostMapping("/service/apply")
+    public R applyFmsService(@RequestBody ApplyFmsServiceDTO adminDTO) {
+        return comFmsServiceService.applyFmsService(adminDTO);
+    }
+
+    /**
+     * 分页查询我的微服务
+     * @param adminDTO
+     * @return
+     */
+    @PostMapping("/service/pageMy")
+    public R pageMyFmsService(@RequestBody PageFmsServiceAppletsDTO adminDTO) {
+        return comFmsServiceService.pageMyFmsService(adminDTO);
+    }
+
+    /**
+     * 微服务评价
+     * @param evaluationFmsServiceDTO
+     * @return
+     */
+    @PostMapping("/service/evaluate")
+    public R evaluateFmsService(@RequestBody EvaluationFmsServiceDTO evaluationFmsServiceDTO) {
+        return comFmsServiceEvaluationsService.evaluateFmsService(evaluationFmsServiceDTO);
+    }
+
+    /**
+     * 微团队成员分页查询服务处理
+     * @param adminDTO
+     * @return
+     */
+    @PostMapping("/service/pageDeal")
+    public R pageDealFmsService(@RequestBody PageFmsServiceAppletsDTO adminDTO) {
+        return comFmsServiceService.pageDealFmsService(adminDTO);
+    }
+
+    /**
+     * 微团队成员服务反馈
+     * @param adminDTO
+     * @return
+     */
+    @PostMapping("/service/feedback")
+    public R feedbackFmsService(@RequestBody FeedbackFmsServiceDTO adminDTO) {
+        return comFmsServiceService.feedbackFmsService(adminDTO);
+    }
+
+    /**
+     * 定时任务针对服务结束后3天还未评价的用户默认好评
+     * @return
+     */
+    @PostMapping("/service/defaultPraise")
+    public R timedTaskFmsServiceDefaultPraise() {
+        return comFmsServiceService.defaultPraise();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComKeyPopulationApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComKeyPopulationApi.java
new file mode 100644
index 0000000..0f86406
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComKeyPopulationApi.java
@@ -0,0 +1,15 @@
+package com.panzhihua.service_community.api;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 17:41:05
+ * @describe 前端控制器
+ */
+@RestController
+@RequestMapping("/key/population")
+public class ComKeyPopulationApi {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComLowSecurityPopulationApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComLowSecurityPopulationApi.java
new file mode 100644
index 0000000..4c4e01d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComLowSecurityPopulationApi.java
@@ -0,0 +1,15 @@
+package com.panzhihua.service_community.api;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 19:52:55
+ * @describe 实有人口导入》低保户人员表前端控制器
+ */
+@RestController
+@RequestMapping("/lowSecurity/population")
+public class ComLowSecurityPopulationApi {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComMajorPopulationApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComMajorPopulationApi.java
new file mode 100644
index 0000000..92fd9bf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComMajorPopulationApi.java
@@ -0,0 +1,15 @@
+package com.panzhihua.service_community.api;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 17:14:17
+ * @describe 重精人员表前端控制器
+ */
+@RestController
+@RequestMapping("/major/population")
+public class ComMajorPopulationApi {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComMngVillageApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComMngVillageApi.java
new file mode 100644
index 0000000..24a76d3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComMngVillageApi.java
@@ -0,0 +1,281 @@
+package com.panzhihua.service_community.api;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.panzhihua.service_community.dao.ComMngBuildingDAO;
+import com.panzhihua.service_community.model.dos.ComMngBuildingDO;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.model.dtos.community.PageComMngVillageDTO;
+import com.panzhihua.common.model.dtos.grid.*;
+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.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngVillageServeExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngVillageVO;
+import com.panzhihua.service_community.model.dos.ComMngVillageDO;
+import com.panzhihua.service_community.service.ComMngPopulationHouseService;
+import com.panzhihua.service_community.service.ComMngPopulationHouseUserService;
+import com.panzhihua.service_community.service.ComMngPopulationService;
+import com.panzhihua.service_community.service.ComMngVillageService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @Author: llming
+ * @Description: 实有房屋管理
+ */
+@Slf4j
+@RestController
+@RequestMapping("/")
+public class ComMngVillageApi {
+    @Resource
+    private ComMngVillageService comMngVillageService;
+    @Resource
+    private ComMngPopulationHouseService comMngPopulationHouseService;
+    @Resource
+    private ComMngPopulationHouseUserService comMngPopulationHouseUserService;
+    @Resource
+    private ComMngPopulationService comMngPopulationService;
+    @Resource
+    private ComMngBuildingDAO comMngBuildingDAO;
+
+    /**
+     * 新增实有房屋
+     * 
+     * @param comMngVillageVO
+     *            新增信息
+     * @return 新增结果
+     */
+    @PostMapping("addvillage")
+    @Transactional(rollbackFor = Exception.class)
+    public R addVillage(@Valid @RequestBody ComMngVillageVO comMngVillageVO) {
+        R r = comMngVillageService.addComActVillage(comMngVillageVO);
+        return R.ok(r);
+    }
+
+    /**
+     * 分页查询实有房屋
+     * 
+     * @param pageComMngVillageDTO
+     *            查询条件
+     * @return 新增结果
+     */
+    @PostMapping("pagevillage")
+    public R pageVillage(@RequestBody PageComMngVillageDTO pageComMngVillageDTO) {
+        R r = comMngVillageService.pageComActVillage(pageComMngVillageDTO);
+        return R.ok(r);
+    }
+
+    /**
+     * 查询实有房屋
+     * 
+     * @param comMngVillageVO
+     *            查询条件
+     * @return 新增结果
+     */
+    @PostMapping("listvillage")
+    public R listVillage(@RequestBody ComMngVillageVO comMngVillageVO) {
+        R r = comMngVillageService.listComActVillage(comMngVillageVO);
+        return R.ok(r);
+    }
+
+    /**
+     * 根据房屋id查询实有房屋
+     *
+     * @param villageId
+     *            查询条件
+     * @return 查询结果
+     */
+    @PostMapping("getVillageById")
+    public R getVillageById(@RequestParam(value = "villageId") Long villageId) {
+        ComMngVillageDO comMngVillageDO = comMngVillageService.getVillageById(villageId);
+        if (comMngVillageDO != null) {
+            return R.ok(comMngVillageDO);
+        }
+        return R.fail();
+    }
+
+    /**
+     * 删除实有房屋
+     * 
+     * @param Ids
+     *            动态id
+     * @return 删除结果
+     */
+    @PostMapping("deletevillage")
+    @Transactional(rollbackFor = Exception.class)
+    public R delectVillage(@RequestBody List<Long> Ids) {
+        R r = comMngVillageService.delecComActVillage(Ids);
+        return R.ok(r);
+    }
+
+    /**
+     * 社区后台导入实有房屋
+     * 
+     * @param list
+     *            数据
+     * @param communityId
+     *            社区编号
+     * @return
+     */
+    @PostMapping("/village/import")
+    @Transactional(rollbackFor = Exception.class)
+    public R listSaveMngCarExcelVO(@RequestBody List<ComMngVillageServeExcelVO> list,
+        @RequestParam(value = "communityId") Long communityId) {
+        return comMngVillageService.listSaveVillage(list, communityId);
+    }
+
+    /**
+     * 编辑实有房屋
+     * 
+     * @param villageId
+     *            动态id
+     * @return 删除结果
+     */
+    @PostMapping("editvillage/{villageId}")
+    @Transactional(rollbackFor = Exception.class)
+    public R editvillage(@PathVariable("villageId") Long villageId,
+        @Valid @RequestBody ComMngVillageVO comMngVillageVO) {
+        return comMngVillageService.editVillage(villageId, comMngVillageVO);
+    }
+
+    /**
+     * 小区详情
+     * 
+     * @param villageId
+     *            小区id
+     * @return 小区详情
+     */
+    @PostMapping("/village/getVillage")
+    public R getVillage(@RequestParam("villageId") Long villageId) {
+        return comMngVillageService.getVillage(villageId);
+    }
+
+    /**
+     * 综治app-小区列表
+     * 
+     * @param villageListAppDTO
+     *            请求参数
+     * @return 小区列表
+     */
+    @PostMapping("/village/grid/list")
+    public R getGridPopulationAdminList(@RequestBody ComMngVillageListAppDTO villageListAppDTO) {
+        return comMngVillageService.getGridVillageList(villageListAppDTO);
+    }
+
+    @PostMapping("/village/grid/list/app")
+    public R getGridPopulationAdminListApp(@RequestBody ComMngVillageListAppDTO villageListAppDTO) {
+        return comMngVillageService.getGridVillageList(villageListAppDTO);
+    }
+
+    /**
+     * 综治app-根据小区id查询小区下楼栋列表
+     * 
+     * @param villageId
+     *            小区id
+     * @return 楼栋列表
+     */
+    @PostMapping("/village/grid/building/list")
+    public R getGridVillageBuildingList(@RequestParam("villageId") Long villageId) {
+        return comMngVillageService.getGridVillageBuildingList(villageId);
+    }
+
+    /**
+     * 小区楼栋下房屋列表
+     * 
+     * @param buildHouseAppDTO
+     *            请求参数
+     * @return 房屋列表
+     */
+    @PostMapping("/village/grid/building/house/list")
+    public R getGridVillageBuildingHouseList(@RequestBody PageComMngVillageBuildHouseAppDTO buildHouseAppDTO) {
+        return comMngPopulationHouseService.getGridVillageBuildingHouseList(buildHouseAppDTO);
+    }
+
+    /**
+     * 小区楼栋下房屋信息
+     * 
+     * @param houseId
+     *            房屋id
+     * @return 房屋信息
+     */
+    @PostMapping("/village/grid/building/house/detail")
+    public R getGridVillageBuildingHouseDetail(@RequestParam("houseId") Long houseId) {
+        return comMngPopulationHouseService.getGridVillageBuildingHouseDetail(houseId);
+    }
+
+    /**
+     * 查询平台人口列表
+     * 
+     * @param populationDTO
+     *            请求参数
+     * @return 人口列表
+     */
+    @PostMapping("/village/grid/building/house/population/list")
+    public R getBuildingHousePopulationList(@RequestBody PageComMngPopulationDTO populationDTO) {
+        return comMngPopulationService.getBuildingHousePopulationList(populationDTO);
+    }
+
+    /**
+     * 批量向房屋新增人员
+     * 
+     * @param housePopulationDTO
+     *            请求参数
+     * @return 添加结果
+     */
+    @PostMapping("/village/grid/building/house/add/population")
+    public R addBuildingHousePopulation(@RequestBody AddComMngHousePopulationDTO housePopulationDTO) {
+        return comMngPopulationHouseUserService.addBuildingHousePopulation(housePopulationDTO);
+    }
+
+    /**
+     * 批量删除房屋内人员
+     * 
+     * @param housePopulationDTO
+     *            请求参数
+     * @return 删除结果
+     */
+    @PostMapping("/village/grid/building/house/del/population")
+    public R delBuildingHousePopulation(@RequestBody DelComMngHousePopulationDTO housePopulationDTO) {
+        return comMngPopulationHouseUserService.delBuildingHousePopulation(housePopulationDTO);
+    }
+
+    @PostMapping("/village/admin/del")
+    public R delGridVillage(@RequestBody List<Long> villageIds) {
+        return comMngVillageService.delGridVillage(villageIds);
+    }
+
+    @PostMapping("/village/admin/population/list")
+    public R getVillagePopulationAdmin(@RequestBody PageComMngVillagePopulationDTO villagePopulationDTO) {
+        return comMngPopulationService.getVillagePopulationAdmin(villagePopulationDTO);
+    }
+
+    @PostMapping("/village/admin/population/house/list")
+    public R
+        getVillagePopulationHouseAdmin(@RequestBody PageComMngVillagePopulationHouseDTO villagePopulationHouseDTO) {
+        return comMngPopulationHouseUserService.getVillagePopulationHouseAdmin(villagePopulationHouseDTO);
+    }
+
+    @GetMapping("/village/admin/statistics")
+    public R getGridVillageStatistics() {
+        return comMngVillageService.getGridVillageStatistics();
+    }
+
+    @PostMapping("/village/admin/export")
+    public R getGridPopulationAdminListExport(@RequestBody ComMngVillageListExportAdminDTO villageListAppDTO) {
+        return comMngVillageService.getGridVillageListExport(villageListAppDTO);
+    }
+
+    @GetMapping("/building/query")
+    public R queryBuilding(@RequestParam("communityId")Long communityId){
+        return R.ok(comMngBuildingDAO.select(communityId));
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComMngVolunteerOrgTeamApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComMngVolunteerOrgTeamApi.java
new file mode 100644
index 0000000..58d1329
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComMngVolunteerOrgTeamApi.java
@@ -0,0 +1,101 @@
+package com.panzhihua.service_community.api;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.service.ComMngVolunteerOrgTeamService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * 志愿者组织队伍表(ComMngVolunteerOrgTeam)表控制层
+ *
+ * @author lyq
+ * @since 2021-10-30 15:51:21
+ */
+@RestController
+@RequestMapping("comMngVolunteerOrgTeam")
+public class ComMngVolunteerOrgTeamApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ComMngVolunteerOrgTeamService comMngVolunteerOrgTeamService;
+
+    /**
+     * 分页查询
+     *
+     * @param comMngVolunteerOrgTeam 筛选条件
+     * @return 查询结果
+     */
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComMngVolunteerOrgTeamDto comMngVolunteerOrgTeam) {
+        return this.comMngVolunteerOrgTeamService.queryByPage(comMngVolunteerOrgTeam);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R queryById(@PathVariable("id") Long id) {
+        return this.comMngVolunteerOrgTeamService.queryById(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comMngVolunteerOrgTeam 实体
+     * @return 新增结果
+     */
+    @PostMapping("/add")
+    public R add(@RequestBody AddComMngVolunteerOrgTeamDto comMngVolunteerOrgTeam) {
+        return this.comMngVolunteerOrgTeamService.insert(comMngVolunteerOrgTeam);
+    }
+
+    /**
+     * 编辑数据
+     *
+     * @param comMngVolunteerOrgTeam 实体
+     * @return 编辑结果
+     */
+    @PutMapping("/edit")
+    public R edit(@RequestBody EditComMngVolunteerOrgTeamDto comMngVolunteerOrgTeam) {
+        return this.comMngVolunteerOrgTeamService.update(comMngVolunteerOrgTeam);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键
+     * @return 删除是否成功
+     */
+    @GetMapping("/delete")
+    public R deleteById(Long id) {
+        return this.comMngVolunteerOrgTeamService.deleteById(id);
+    }
+
+    /**
+     * 社区后台-查询志愿者组织列表
+     * @param comMngVolunteerOrgTeam    请求参数
+     * @return  志愿者组织列表
+     */
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComMngVolunteerOrgTeamDto comMngVolunteerOrgTeam) {
+        return this.comMngVolunteerOrgTeamService.queryByList(comMngVolunteerOrgTeam);
+    }
+
+    /**
+     * 社区后台-志愿者组织统计
+     * @param communityId   社区id
+     * @return  志愿者组织统计
+     */
+    @GetMapping("/statistics")
+    public R statisticsVolunteerOrgAdmin(@RequestParam("communityId") Long communityId) {
+        return this.comMngVolunteerOrgTeamService.statisticsVolunteerOrgAdmin(communityId);
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComMngVolunteerServiceTypeApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComMngVolunteerServiceTypeApi.java
new file mode 100644
index 0000000..4431f9c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComMngVolunteerServiceTypeApi.java
@@ -0,0 +1,91 @@
+package com.panzhihua.service_community.api;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.service.ComMngVolunteerServiceTypeService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * 志愿者服务类型表(ComMngVolunteerServiceType)表控制层
+ *
+ * @author lyq
+ * @since 2021-10-30 16:47:09
+ */
+@RestController
+@RequestMapping("comMngVolunteerServiceType")
+public class ComMngVolunteerServiceTypeApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ComMngVolunteerServiceTypeService comMngVolunteerServiceTypeService;
+
+    /**
+     * 分页查询
+     *
+     * @param comMngVolunteerServiceType 筛选条件
+     * @return 查询结果
+     */
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComMngVolunteerServiceTypeDto comMngVolunteerServiceType) {
+        return this.comMngVolunteerServiceTypeService.queryByPage(comMngVolunteerServiceType);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R queryById(@PathVariable("id") Long id) {
+        return this.comMngVolunteerServiceTypeService.queryById(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comMngVolunteerServiceType 实体
+     * @return 新增结果
+     */
+    @PostMapping("/add")
+    public R add(@RequestBody AddComMngVolunteerServiceTypeDto comMngVolunteerServiceType) {
+        return this.comMngVolunteerServiceTypeService.insert(comMngVolunteerServiceType);
+    }
+
+    /**
+     * 编辑数据
+     *
+     * @param comMngVolunteerServiceType 实体
+     * @return 编辑结果
+     */
+    @PutMapping("/edit")
+    public R edit(@RequestBody EditComMngVolunteerServiceTypeDto comMngVolunteerServiceType) {
+        return this.comMngVolunteerServiceTypeService.update(comMngVolunteerServiceType);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键
+     * @return 删除是否成功
+     */
+    @GetMapping("/delete")
+    public R deleteById(Long id) {
+        return this.comMngVolunteerServiceTypeService.deleteById(id);
+    }
+
+    /**
+     * 社区后台-查询志愿者服务类型列表
+     * @param comMngVolunteerServiceType    请求参数
+     * @return  志愿者服务列表
+     */
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComMngVolunteerServiceTypeDto comMngVolunteerServiceType) {
+        return this.comMngVolunteerServiceTypeService.queryByList(comMngVolunteerServiceType);
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComMngVolunteerSkillApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComMngVolunteerSkillApi.java
new file mode 100644
index 0000000..9619a8c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComMngVolunteerSkillApi.java
@@ -0,0 +1,91 @@
+package com.panzhihua.service_community.api;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.service.ComMngVolunteerSkillService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * 志愿者技能表(ComMngVolunteerSkill)表控制层
+ *
+ * @author lyq
+ * @since 2021-10-30 16:47:36
+ */
+@RestController
+@RequestMapping("comMngVolunteerSkill")
+public class ComMngVolunteerSkillApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ComMngVolunteerSkillService comMngVolunteerSkillService;
+
+    /**
+     * 分页查询
+     *
+     * @param comMngVolunteerSkill 筛选条件
+     * @return 查询结果
+     */
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComMngVolunteerSkillDto comMngVolunteerSkill) {
+        return this.comMngVolunteerSkillService.queryByPage(comMngVolunteerSkill);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R queryById(@PathVariable("id") Long id) {
+        return this.comMngVolunteerSkillService.queryById(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comMngVolunteerSkill 实体
+     * @return 新增结果
+     */
+    @PostMapping("/add")
+    public R add(@RequestBody AddComMngVolunteerSkillDto comMngVolunteerSkill) {
+        return this.comMngVolunteerSkillService.insert(comMngVolunteerSkill);
+    }
+
+    /**
+     * 编辑数据
+     *
+     * @param comMngVolunteerSkill 实体
+     * @return 编辑结果
+     */
+    @PutMapping("/edit")
+    public R edit(@RequestBody EditComMngVolunteerSkillDto comMngVolunteerSkill) {
+        return this.comMngVolunteerSkillService.update(comMngVolunteerSkill);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键
+     * @return 删除是否成功
+     */
+    @GetMapping("/delete")
+    public R deleteById(Long id) {
+        return this.comMngVolunteerSkillService.deleteById(id);
+    }
+
+    /**
+     * 社区后台-查询志愿者技能列表
+     * @param comMngVolunteerSkill 请求参数
+     * @return  志愿者技能列表
+     */
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComMngVolunteerSkillDto comMngVolunteerSkill) {
+        return this.comMngVolunteerSkillService.queryByList(comMngVolunteerSkill);
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComPropertyApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComPropertyApi.java
new file mode 100644
index 0000000..1d065a8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComPropertyApi.java
@@ -0,0 +1,91 @@
+package com.panzhihua.service_community.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.api.ApiController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.community.ComPropertyVO;
+import com.panzhihua.service_community.entity.ComProperty;
+import com.panzhihua.service_community.service.ComPropertyService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * (ComProperty)表控制层
+ *
+ * @author makejava
+ * @since 2021-09-18 10:46:52
+ */
+@RestController
+@RequestMapping("comProperty")
+public class ComPropertyApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ComPropertyService comPropertyService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.comPropertyService.pageList(commonPage);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comProperty 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody ComPropertyVO comProperty) {
+        return this.comPropertyService.insert(comProperty);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comProperty 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody ComPropertyVO comProperty) {
+        return this.comPropertyService.update(comProperty);
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return this.comPropertyService.delete(id);
+    }
+
+    /**
+     * 物业公司详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/detail")
+    public R detailProperty(@RequestParam("id") Long id) {
+        return comPropertyService.detailProperty(id);
+    }
+
+    @GetMapping("/noticeList")
+    public R noticeList(@RequestParam("page")Integer page,@RequestParam("size")Integer size,@RequestParam("propertyId")Long propertyId){
+        return comPropertyService.noticeList(page,size,propertyId);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComPropertyPublicityApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComPropertyPublicityApi.java
new file mode 100644
index 0000000..d22ef17
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComPropertyPublicityApi.java
@@ -0,0 +1,113 @@
+package com.panzhihua.service_community.api;
+
+import com.panzhihua.common.model.dtos.community.ComPropertyPublicityDTO;
+import com.panzhihua.common.model.dtos.community.PageComPropertyPublicityDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.service.ComPropertyPublicityService;
+import org.springframework.web.bind.annotation.DeleteMapping;
+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 lombok.extern.slf4j.Slf4j;
+
+import javax.annotation.Resource;
+
+/**
+ * @title: ComPropertyPublicityApi
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 物业宣传相关接口
+ * @author: hans
+ * @date: 2021/11/11 10:08
+ */
+@Slf4j
+@RestController
+@RequestMapping("/property/publicity")
+public class ComPropertyPublicityApi {
+
+    @Resource
+    private ComPropertyPublicityService comPropertyPublicityService;
+
+    /**
+     * 分页查询物业宣传
+     * @param pageComPropertyPublicityDTO
+     * @return
+     */
+    @PostMapping("/page")
+    public R pageComPropertyPublicity(@RequestBody PageComPropertyPublicityDTO pageComPropertyPublicityDTO) {
+        return comPropertyPublicityService.pageComPropertyPublicity(pageComPropertyPublicityDTO);
+    }
+
+    /**
+     * 新增物业宣传
+     * @param comPropertyPublicityDTO
+     * @return
+     */
+    @PostMapping("/add")
+    public R addComPropertyPublicity(@RequestBody ComPropertyPublicityDTO comPropertyPublicityDTO){
+        return comPropertyPublicityService.addComPropertyPublicity(comPropertyPublicityDTO);
+    }
+
+    /**
+     * 修改物业宣传
+     * @param comPropertyPublicityDTO
+     * @return
+     */
+    @PostMapping("/update")
+    public R updateComPropertyPublicity(@RequestBody ComPropertyPublicityDTO comPropertyPublicityDTO) {
+        return comPropertyPublicityService.updateComPropertyPublicity(comPropertyPublicityDTO);
+    }
+
+    /**
+     * 查看物业宣传信息
+     * @param id
+     * @return
+     */
+    @GetMapping("/get")
+    public R getComPropertyPublicity(@RequestParam("id") Long id) {
+        return comPropertyPublicityService.getComPropertyPublicity(id);
+    }
+
+    /**
+     * 删除物业宣传
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/delete")
+    public R deleteComPropertyPublicity(@RequestParam("id") Long id) {
+        return comPropertyPublicityService.deleteComPropertyPublicity(id);
+    }
+
+    /**
+     * 物业公司列表
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/list/property")
+    public R listProperty(@RequestParam(value = "villageId", required = false) Long villageId,
+                          @RequestParam("communityId") Long communityId) {
+        return comPropertyPublicityService.listProperty(villageId, communityId);
+    }
+    /**
+     * 分页查询物业宣传-小程序
+     * @param pageComPropertyPublicityDTO
+     * @return
+     */
+    @PostMapping("/page/applet")
+    public R pageComPropertyPublicityApplet(@RequestBody PageComPropertyPublicityDTO pageComPropertyPublicityDTO) {
+        return comPropertyPublicityService.pageComPropertyPublicityApplet(pageComPropertyPublicityDTO);
+    }
+
+    /**
+     * 增加物业宣传浏览量
+     * @param id
+     * @return
+     */
+    @GetMapping("/incr-view")
+    public R incrPropertyPublicityView(@RequestParam("id") Long id) {
+        return comPropertyPublicityService.incrView(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComPropertyWorkerApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComPropertyWorkerApi.java
new file mode 100644
index 0000000..868fa12
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComPropertyWorkerApi.java
@@ -0,0 +1,83 @@
+package com.panzhihua.service_community.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.DeleteMapping;
+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.common.model.dtos.property.PagePropertyWorkerDTO;
+import com.panzhihua.common.model.dtos.property.PropertyWorkerDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.service.ComPropertyWorkerService;
+
+/**
+ * 物业公司工作人员(ComPropertyWorker)表控制层
+ *
+ * @author makejava
+ * @since 2022-04-26 09:54:07
+ */
+@RestController
+@RequestMapping("comPropertyWorker")
+public class ComPropertyWorkerApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ComPropertyWorkerService comPropertyWorkerService;
+
+    /**
+     * 添加物业工作人员
+     * @param propertyWorkerDTO
+     * @return
+     */
+    @PostMapping("/add")
+    public R addPropertyWorker(@RequestBody PropertyWorkerDTO propertyWorkerDTO) {
+        return comPropertyWorkerService.addPropertyWorker(propertyWorkerDTO);
+    }
+
+    /**
+     * 编辑物业工作人员
+     * @param propertyWorkerDTO
+     * @return
+     */
+    @PutMapping("/update")
+    public R updatePropertyWorker(@RequestBody PropertyWorkerDTO propertyWorkerDTO) {
+        return comPropertyWorkerService.updatePropertyWorker(propertyWorkerDTO);
+    }
+
+    /**
+     * 删除物业工作人员
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/delete")
+    public R deletePropertyWorker(@RequestParam("id") Long id) {
+        return comPropertyWorkerService.deletePropertyWorker(id);
+    }
+
+    /**
+     * 分页查询物业工作人员
+     * @param pagePropertyWorkerDTO
+     * @return
+     */
+    @PostMapping("/page")
+    public R pagePropertyWorker(@RequestBody PagePropertyWorkerDTO pagePropertyWorkerDTO) {
+        return comPropertyWorkerService.pagePropertyWorker(pagePropertyWorkerDTO);
+    }
+
+    /**
+     * 物业工作人员详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/detail")
+    public R detailPropertyWorker(@RequestParam("id") Long id) {
+        return comPropertyWorkerService.detailPropertyWorker(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComRehabilitationPopulationApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComRehabilitationPopulationApi.java
new file mode 100644
index 0000000..66433ee
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComRehabilitationPopulationApi.java
@@ -0,0 +1,15 @@
+package com.panzhihua.service_community.api;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 17:40:41
+ * @describe 前端控制器
+ */
+@RestController
+@RequestMapping("/rehabilitation/population")
+public class ComRehabilitationPopulationApi {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSanShuoEventApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSanShuoEventApi.java
new file mode 100644
index 0000000..f773788
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSanShuoEventApi.java
@@ -0,0 +1,104 @@
+package com.panzhihua.service_community.api;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.sanshuo.ComMediateTypeDTO;
+import com.panzhihua.common.model.dtos.community.sanshuo.ComSanshuoEventDTO;
+import com.panzhihua.common.model.dtos.community.sanshuo.IndexDateDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.service_community.entity.ComEvent;
+import com.panzhihua.service_community.entity.ComMediateType;
+import com.panzhihua.service_community.entity.ComSanshuoEvent;
+import com.panzhihua.service_community.service.ComSanShuoEventService;
+import com.panzhihua.service_community.service.CommediateTypeService;
+import com.panzhihua.service_community.service.IComEventService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 三说会堂事件类型管理控制器
+ * */
+@RestController
+@RequestMapping("/sanshuo/event")
+public class ComSanShuoEventApi extends BaseController {
+
+//    @Resource
+//    private ComSanShuoEventService comSanShuoEventService;
+
+    @Resource
+    private CommediateTypeService commediateTypeService;
+
+    @Resource
+    private IComEventService comEventService;
+
+    @Resource
+    private UserService userService;
+
+    @GetMapping ("/list")
+    public R list(@RequestParam(value = "keyWord",required = false)String keyWord,
+                  @RequestParam(value = "page",required = false)Integer page,
+                  @RequestParam(value = "size",required = false)Integer size){
+//        String appId=userService.detailUser(this.getUserId()).getData().getAppId();
+        String appId=getAppId();
+        return commediateTypeService.listEvent(keyWord,page,size,appId);
+    }
+
+    @GetMapping("/detail")
+    public R detail(@RequestParam("id")Long id){
+        return R.ok(commediateTypeService.getById(id));
+    }
+
+    @GetMapping("/appletsList")
+    public R appletList(){
+        return R.ok(commediateTypeService.list(new QueryWrapper<ComMediateType>().eq("enabled",1).eq("delete_flag", 0)));
+    }
+
+
+
+    /**
+     * 新增事件类型
+     * */
+    @PostMapping
+    public R add(@RequestBody ComMediateTypeDTO comMediateTypeDTO){
+        comMediateTypeDTO.setCreateUser(this.getLoginUserInfo().getUserId());
+        return commediateTypeService.addOrUpdate(comMediateTypeDTO);
+    }
+
+    /**
+     * 修改事件类型
+     * */
+    @PutMapping
+    public R update(@RequestBody ComMediateTypeDTO comMediateTypeDTO){
+        comMediateTypeDTO.setModifyUser(this.getLoginUserInfo().getUserId());
+        return commediateTypeService.addOrUpdate(comMediateTypeDTO);
+    }
+
+
+    /**
+     * 删除事件
+     * */
+    @DeleteMapping("/remove")
+    public R remove(@RequestParam("id")Long id){
+        ComMediateType comMediateType = commediateTypeService.getById(id);
+        comMediateType.setDeleteFlag(true);
+        comMediateType.setEnabled(false);
+        comMediateType.setModifyUser(this.getLoginUserInfo().getUserId());
+        //该分类是否有未调解完成事件
+        List<ComEvent> list = comEventService.list(new QueryWrapper<ComEvent>().lambda().eq(ComEvent::getEventCategory, id).in(ComEvent::getEventProcessStatus, (1), (2), (5)));
+        if (list.size() != 0){
+            return R.fail("有未处理完成事件,无法删除");
+        }
+        return R.ok(commediateTypeService.updateById(comMediateType));
+    }
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSanShuoEventController.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSanShuoEventController.java
new file mode 100644
index 0000000..9995455
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSanShuoEventController.java
@@ -0,0 +1,389 @@
+package com.panzhihua.service_community.api;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.enums.SanShuoEventStatusEnum;
+import com.panzhihua.common.model.dtos.community.sanshuo.IndexDateDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.sanshuo.ComEventArchiveVO;
+import com.panzhihua.common.model.vos.sanshuo.ComEventConciliationVO;
+import com.panzhihua.common.model.vos.sanshuo.ComEventVO;
+import com.panzhihua.common.model.vos.sanshuo.ComSanRequestVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.CopyUtil;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.entity.ComEvent;
+import com.panzhihua.service_community.service.ComSanShuoExpertService;
+import com.panzhihua.service_community.service.IComEventService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import java.util.HashMap;
+import java.util.List;
+
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+
+/**
+ * ClassName   ComEventController
+ * Description 三说会堂事件表控制层
+ *
+ * @author manailin
+ * @date 2022-09-07 11:23:51
+ */
+@Slf4j
+@Api(tags = {"三说会堂事件表控制层"})
+@RestController
+@RequestMapping("/sanshuo/comEvent")
+public class ComSanShuoEventController extends BaseController {
+
+    @Resource
+    private IComEventService comEventService;
+    @Resource
+    private UserService userService;
+    @Resource
+    private ComSanShuoExpertService comSanShuoExpertService;
+
+
+    /**
+     * description 新增三说会堂事件表
+     *
+     * @param comEventVO 对象
+     * @return R  新增结果对象
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("新增三说会堂事件表")
+    @PostMapping("/add")
+    public R insertComEvent(@RequestBody @Valid ComSanRequestVO comEventVO, @ApiIgnore BindingResult results) {
+        if (results.hasErrors()) {
+            return R.fail(results.getFieldError().getDefaultMessage());
+        }
+        ComEvent comEvent = CopyUtil.copyProperties(comEventVO, ComEvent.class);
+        LoginUserInfoVO loginUser = getLoginUserInfo();
+        comEvent.setRequestUserId(loginUser.getUserId());
+        comEvent.setRequestUserName(loginUser.getName());
+        comEvent.setRequestUserTel(loginUser.getPhone());
+        if (isNull(comEventVO.getAppId())){
+            comEvent.setAppId(loginUser.getAppId());
+        }
+        return comEventService.insertComEvent(comEvent);
+    }
+
+    /**
+     * description 更新三说会堂事件表
+     *
+     * @param comEventVO 对象
+     * @return R  修改结果对象
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("更新三说会堂事件表")
+    @PostMapping("/update")
+    public R updateComEvent(@RequestBody @Valid ComEventVO comEventVO, @ApiIgnore BindingResult results) {
+        if (results.hasErrors()) {
+            return R.fail(results.getFieldError().getDefaultMessage());
+        }
+        ComEvent comEvent = CopyUtil.copyProperties(comEventVO, ComEvent.class);
+        return comEventService.updateComEvent(comEvent);
+    }
+
+    /**
+     * description 根据ID获取三说会堂事件表信息
+     *
+     * @param id 主键id
+     * @return R<ComEvent> comEvent 对象
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("根据ID获取三说会堂事件表信息")
+    @GetMapping("/get/{id}")
+    public R<ComEventVO> get(@PathVariable(value = "id") String id) {
+        if (StringUtils.isEmpty(id)) {
+            throw new RuntimeException("参数不能为空");
+        }
+        return R.ok(CopyUtil.copyProperties(comEventService.getById(id), ComEventVO.class));
+    }
+
+    /**
+     * description 根据ID获取三说会堂事件表信息
+     *
+     * @param id 主键id
+     * @return R<ComEvent> comEvent 对象
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("根据ID获取三说会堂事件详情信息,返回事件信息和图片信息")
+    @GetMapping("/detail/{id}")
+    public R<HashMap> detail(@PathVariable(value = "id") String id) {
+        if (StringUtils.isEmpty(id)) {
+            throw new RuntimeException("参数不能为空");
+        }
+        return R.ok(comEventService.detail(id));
+    }
+
+    /**
+     * description 查询返回列表数据
+     *
+     * @param comEventVO 三说会堂事件表对象
+     * @return R<List < ComEventVO>>  comEventVO对象列表
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("查询返回列表数据")
+    @PostMapping("/list")
+    public R<List<ComEventVO>> listByComEvent(@RequestBody ComEventVO comEventVO) {
+        ComEvent comEvent = CopyUtil.copyProperties(comEventVO, ComEvent.class);
+        return R.ok(CopyUtil.beanCopyList(comEventService.listByComEvent(comEvent,this.getLoginUserInfo()), ComEventVO.class));
+    }
+
+    /**
+     * description page   三说会堂事件表分页列表数据
+     * params   [pageNo, pageSize]
+     *
+     * @param comEventVO 对象
+     * @param pageNo     当前页码
+     * @param pageSize   每页显示数量
+     * @return PageResult<List < ComEvent>>  三说会堂事件表分页列表数据
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation(value = "三说会堂事件表分页列表数据", notes = "三说会堂事件表分页列表数据")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageNo", value = "当前页码", required = true, dataType = "Long", paramType = "query"),
+            @ApiImplicitParam(name = "pageSize", value = "每页显示数量", required = true, dataType = "Long", paramType = "query")
+    })
+    @PostMapping("/page")
+    public R page(@RequestBody ComEventVO comEventVO, Long pageNo, Long pageSize) {
+        Page pagination = new Page(pageNo, pageSize);
+        ComEvent comEvent=new ComEvent();
+        BeanUtils.copyProperties(comEventVO, comEvent);
+        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
+        if (isNull(comEventVO.getAppId())){
+//            String appId = userService.detailUser(loginUserInfo.getUserId()).getData().getAppId();
+            String appId = getAppId();
+            comEvent.setAppId(appId);
+        }
+        comEvent.setCommunityId(loginUserInfo.getCommunityId());
+        LoginUserInfoVO loginUserInfo1 = this.getLoginUserInfo();
+        loginUserInfo1.setType(userService.detailUser(this.getUserId()).getData().getType());
+//        loginUserInfo1.setType(loginUserInfo.getType());
+        return comEventService.pageByComEvent(comEvent, pagination,loginUserInfo1);
+    }
+
+
+    /**
+     * description 根据ID删除三说会堂事件表
+     *
+     * @param id 主键id
+     * @return R 删除结果
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("删除三说会堂事件")
+    @ApiImplicitParams(
+            @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long")
+    )
+    @DeleteMapping("/remove/{id}")
+    public R remove(@PathVariable Long id) {
+        ComEvent comEvent = new ComEvent();
+        comEvent.setId(id);
+        comEvent.setEventProcessStatus(9);
+        return comEventService.updateComEvent(comEvent);
+    }
+
+    /**
+     * description 修改三说会堂事件表状态
+     *
+     * @param id 主键id
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("修改是否有效状态")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long"),
+            @ApiImplicitParam(name = "enabled", value = "是否启用", required = true, dataType = "Boolean")
+    })
+    @PutMapping("/updateEnabled")
+    public R updateEnabled(@RequestParam("id") Long id, @RequestParam("enabled") Boolean enabled) {
+        return comEventService.updateEnabled(id, enabled);
+    }
+
+    /**
+     * description 修改三说会堂事件表状态
+     *
+     * @param id 主键id
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("取消申请")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long"),
+    })
+    @PutMapping("/cancelRequest")
+    public R cancelRequest(@RequestParam("id") Long id) {
+        return comEventService.cancelRequest(id);
+    }
+
+
+    /**
+     * description 修改三说会堂事件表状态
+     *
+     * @param id 主键id
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("专家受理")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "事件ID", required = true, dataType = "Long"),
+            @ApiImplicitParam(name = "specterId", value = "专家ID", required = true, dataType = "Long"),
+    })
+    @PutMapping("/accept/Request")
+    public R acceptRequest(@RequestParam("id") Long id, @RequestParam("specterId") Long specterId) {
+        return comEventService.acceptRequest(id, specterId);
+    }
+
+    /**
+     * description 修改三说会堂事件表状态
+     *
+     * @param id 主键id
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("专家不受理,转其他专家处理")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long"),
+    })
+    @PutMapping("/reject/Request")
+    public R rejectRequest(@RequestParam("id") Long id) {
+        ComEvent comEvent = comEventService.getById(id);
+        comEvent.setEventProcessStatus(SanShuoEventStatusEnum.VALID.getCode());
+        comEvent.setSpecialistName("待分配");
+        comEvent.setSpecialistId(null);
+        comEventService.updateEventStransferRecord(id);
+        return R.ok(comEventService.updateById(comEvent));
+    }
+
+    /**
+     * description 修改三说会堂事件表状态
+     *
+     * @param id 主键id
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("重新指定专家处理")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long"),
+            @ApiImplicitParam(name = "specialistId", value = "专家ID", required = true, dataType = "Long")
+    })
+    @PutMapping("/reappoint/Request")
+    public R reappoint(Long id, Long specialistId) {
+        return comEventService.reappoint(id, specialistId);
+    }
+
+    /**
+     * description 专家调解处理
+     *
+     * @param comEventConciliationVO 主键id
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("专家调解处理")
+    @PutMapping("/conciliation/Request")
+    public R conciliationRequest(@RequestBody ComEventConciliationVO comEventConciliationVO) {
+        return comEventService.conciliationEvent(comEventConciliationVO, getLoginUserInfo());
+    }
+
+    /**
+     * description 专家归档
+     *
+     * @param comEventArchiveVO 归档对象
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("事件专家归档")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long"),
+            @ApiImplicitParam(name = "result", value = "归档结论", required = true, dataType = "String"),
+    })
+    @PutMapping("/archive/Request")
+    public R archiveRequest(@RequestBody ComEventArchiveVO comEventArchiveVO) {
+        return comEventService.archiveRequest(comEventArchiveVO, getLoginUserInfo());
+    }
+
+    /**
+     * description 事件各种状态(处理状态1待处理2待验证3专家已受理4专家未受理,拒绝5调解中6已结案归档7调解取消8 已删除)数据统计
+     *
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    @ApiOperation("事件各种状态(处理状态1待处理2待验证3专家已受理4专家未受理,拒绝5调解中6已结案归档7调解取消8 已删除)数据统计")
+    @GetMapping("/status/calculate")
+    public R calculate(@RequestParam(value = "level",required = false)Integer level,@RequestParam(value = "id",required = false)Long  id) {
+        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
+        loginUserInfo.setType(userService.detailUser(loginUserInfo.getUserId()).getData().getType());
+        return comEventService.calculate(loginUserInfo,level,id);
+    }
+
+    /**
+     * 大屏事件统计
+     *
+     * @param indexDataDTO 查询参数
+     */
+    @PostMapping("/indexData")
+    public R indexData(@RequestBody IndexDateDTO indexDataDTO) {
+        return comEventService.indexData(indexDataDTO);
+    }
+
+    /**
+     * 大屏事件统计(事件和专家各级别占比)
+     */
+    @GetMapping("/indexData/event")
+    public R eventIndexData(@RequestParam Integer type) {
+        return comEventService.eventIndexData(type);
+    }
+
+
+    /**
+     *可选街道列表
+     * */
+    @GetMapping("/streetList")
+    public R getStreetId(){
+        return comEventService.listStreetScreen();
+    }
+
+    /**
+     *可选社区列表
+     * */
+    @GetMapping("/communityList")
+    public R getCommunityList(){
+        return comEventService.listCommunityScreen();
+    }
+
+    /**
+     * 获取事件范围筛选列表
+     * */
+    @GetMapping("/rangeList")
+    public R rangeList(){
+        return comSanShuoExpertService.rangeList();
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSanShuoEventResourceController.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSanShuoEventResourceController.java
new file mode 100644
index 0000000..0869c1f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSanShuoEventResourceController.java
@@ -0,0 +1,166 @@
+package com.panzhihua.service_community.api;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.sanshuo.ComEventResourceVO;
+import com.panzhihua.common.utlis.CopyUtil;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.entity.ComEventResource;
+import com.panzhihua.service_community.service.IComEventResourceService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import java.util.List;
+/**
+ * ClassName   ComEventResourceController
+ * Description 三说会堂事件关联图片资源表控制层
+ *
+ * @author     manailin
+ * @date       2022-09-07 11:23:52
+ */
+@Slf4j
+@Api(tags = {"三说会堂事件关联图片资源表控制层"})
+@RestController
+@RequestMapping("/comEventResource")
+public class ComSanShuoEventResourceController extends BaseController {
+
+    @Resource
+	private IComEventResourceService comEventResourceService;
+
+
+    /**
+     * description 新增三说会堂事件关联图片资源表
+     *
+     * @param  comEventResourceVO 对象
+     * @return R  新增结果对象
+     * @author manailin
+     * @date   2022-09-07 11:23:52
+     */
+    @ApiOperation("新增三说会堂事件关联图片资源表")
+    @PostMapping("/add")
+    public R insertComEventResource(@RequestBody @Valid ComEventResourceVO comEventResourceVO, @ApiIgnore BindingResult results) {
+        if (results.hasErrors()) {
+            return R.fail(results.getFieldError().getDefaultMessage());
+        }
+         ComEventResource comEventResource = CopyUtil.copyProperties(comEventResourceVO, ComEventResource.class);
+        return comEventResourceService.insertComEventResource(comEventResource);
+    }
+
+    /**
+     * description 更新三说会堂事件关联图片资源表
+     *
+     * @param  comEventResourceVO 对象
+     * @return R  修改结果对象
+     * @author manailin
+     * @date   2022-09-07 11:23:52
+     */
+    @ApiOperation("更新三说会堂事件关联图片资源表")
+    @PostMapping("/update")
+    public R updateComEventResource(@RequestBody @Valid ComEventResourceVO comEventResourceVO, @ApiIgnore BindingResult results) {
+        if (results.hasErrors()) {
+            return R.fail(results.getFieldError().getDefaultMessage());
+        }
+       ComEventResource comEventResource = CopyUtil.copyProperties(comEventResourceVO, ComEventResource.class);
+        return comEventResourceService.updateComEventResource(comEventResource);
+    }
+
+     /**
+      * description 根据ID获取三说会堂事件关联图片资源表信息
+      *
+     * @param   id 主键id
+      * @return R<ComEventResource> comEventResource 对象
+      * @author manailin
+      * @date   2022-09-07 11:23:52
+      */
+     @ApiOperation("根据ID获取三说会堂事件关联图片资源表信息")
+     @GetMapping("/get/{id}")
+     public R<ComEventResourceVO> get(@PathVariable(value = "id") String id) {
+         if (StringUtils.isEmpty(id)) {
+             throw new RuntimeException("参数不能为空");
+         }
+        return R.ok(CopyUtil.copyProperties(comEventResourceService.getById(id), ComEventResourceVO.class));
+     }
+
+    /**
+     * description 查询返回列表数据
+     *
+     * @param  comEventResourceVO 三说会堂事件关联图片资源表对象
+     * @return R<List<ComEventResourceVO>>  comEventResourceVO对象列表
+     * @author manailin
+     * @date   2022-09-07 11:23:52
+     */
+    @ApiOperation("查询返回列表数据")
+    @PostMapping("/list")
+    public R<List<ComEventResourceVO>> listByComEventResource(@RequestBody ComEventResourceVO comEventResourceVO) {
+           ComEventResource comEventResource = CopyUtil.copyProperties(comEventResourceVO, ComEventResource.class);
+          return   R.ok(CopyUtil.beanCopyList(comEventResourceService.listByComEventResource(comEventResource),ComEventResourceVO.class));
+    }
+
+    /**
+     * description page   三说会堂事件关联图片资源表分页列表数据
+     * params   [pageNo, pageSize]
+     *
+     * @param  comEventResourceVO  对象
+     * @param  pageNo   当前页码
+     * @param  pageSize 每页显示数量
+     * @return PageResult<List < ComEventResource>>  三说会堂事件关联图片资源表分页列表数据
+     * @author manailin
+     * @date   2022-09-07 11:23:52
+     */
+    @ApiOperation(value = "三说会堂事件关联图片资源表分页列表数据", notes = "三说会堂事件关联图片资源表分页列表数据")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageNo", value = "当前页码", required = true, dataType = "Long", paramType = "query"),
+            @ApiImplicitParam(name = "pageSize", value = "每页显示数量", required = true, dataType = "Long", paramType = "query")
+    })
+    @PostMapping("/page")
+    public R page(@RequestBody ComEventResourceVO comEventResourceVO, Long pageNo, Long pageSize) {
+        Page pagination = new Page(pageNo, pageSize);
+        ComEventResource comEventResource = CopyUtil.copyProperties(comEventResourceVO, ComEventResource.class);
+        return comEventResourceService.pageByComEventResource(comEventResource, pagination);
+    }
+
+
+    /**
+     * description 根据ID删除三说会堂事件关联图片资源表
+     *
+     * @param   id 主键id
+     * @return  R 删除结果
+     * @author  manailin
+     * @date    2022-09-07 11:23:52
+     */
+    @ApiOperation("删除三说会堂事件关联图片资源表")
+    @ApiImplicitParams(
+            @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long")
+    )
+    @DeleteMapping("/remove/{id}")
+    public R remove(@PathVariable Long id) {
+          return comEventResourceService.removeById(id)? R.ok() : R.fail();
+    }
+
+    /**
+     * description 修改三说会堂事件关联图片资源表状态
+     *
+     * @param   id 主键id
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date   2022-09-07 11:23:52
+     */
+    @ApiOperation("修改状态")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long"),
+            @ApiImplicitParam(name = "enabled", value = "是否启用", required = true, dataType = "Boolean")
+    })
+    @PutMapping("/updateEnabled")
+    public R updateEnabled(@RequestParam("id") Long id, @RequestParam("enabled") Boolean enabled) {
+        return comEventResourceService.updateEnabled(id, enabled);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSanShuoEventTransferRecordController.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSanShuoEventTransferRecordController.java
new file mode 100644
index 0000000..4a40bb2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSanShuoEventTransferRecordController.java
@@ -0,0 +1,149 @@
+package com.panzhihua.service_community.api;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.sanshuo.ComEventTransferRecordVO;
+import com.panzhihua.common.utlis.CopyUtil;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.entity.ComEventTransferRecord;
+import com.panzhihua.service_community.service.IComEventTransferRecordService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
+import springfox.documentation.annotations.ApiIgnore;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * ClassName   ComEventTransferRecordController
+ * Description 三说会堂事件流转表控制层
+ *
+ * @author manailin
+ * @date 2022-09-07 11:23:52
+ */
+@Slf4j
+@Api(tags = {"三说会堂事件流转表控制层"})
+@RestController
+@RequestMapping("/comEventTransferRecord")
+public class ComSanShuoEventTransferRecordController extends BaseController {
+
+    @Resource
+    private IComEventTransferRecordService comEventTransferRecordService;
+
+
+    /**
+     * description 新增三说会堂事件流转表
+     *
+     * @param comEventTransferRecordVO 对象
+     * @return R  新增结果对象
+     * @author manailin
+     * @date 2022-09-07 11:23:52
+     */
+    @ApiOperation("新增三说会堂事件流转表")
+    @PostMapping("/add")
+    public R insertComEventTransferRecord(@RequestBody @Valid ComEventTransferRecordVO comEventTransferRecordVO, @ApiIgnore BindingResult results) {
+        if (results.hasErrors()) {
+            return R.fail(results.getFieldError().getDefaultMessage());
+        }
+        ComEventTransferRecord comEventTransferRecord = CopyUtil.copyProperties(comEventTransferRecordVO, ComEventTransferRecord.class);
+        return comEventTransferRecordService.insertComEventTransferRecord(comEventTransferRecord);
+    }
+
+    /**
+     * description 更新三说会堂事件流转表
+     *
+     * @param comEventTransferRecordVO 对象
+     * @return R  修改结果对象
+     * @author manailin
+     * @date 2022-09-07 11:23:52
+     */
+    @ApiOperation("更新三说会堂事件流转表")
+    @PostMapping("/update")
+    public R updateComEventTransferRecord(@RequestBody @Valid ComEventTransferRecordVO comEventTransferRecordVO, @ApiIgnore BindingResult results) {
+        if (results.hasErrors()) {
+            return R.fail(results.getFieldError().getDefaultMessage());
+        }
+        ComEventTransferRecord comEventTransferRecord = CopyUtil.copyProperties(comEventTransferRecordVO, ComEventTransferRecord.class);
+        return comEventTransferRecordService.updateComEventTransferRecord(comEventTransferRecord);
+    }
+
+    /**
+     * description 根据ID获取三说会堂事件流转表信息
+     *
+     * @param id 主键id
+     * @return R<ComEventTransferRecord> comEventTransferRecord 对象
+     * @author manailin
+     * @date 2022-09-07 11:23:52
+     */
+    @ApiOperation("根据ID获取三说会堂事件流转表信息")
+    @GetMapping("/get/{id}")
+    public R<ComEventTransferRecordVO> get(@PathVariable(value = "id") String id) {
+        if (StringUtils.isEmpty(id)) {
+            throw new RuntimeException("参数不能为空");
+        }
+        return R.ok(CopyUtil.copyProperties(comEventTransferRecordService.getById(id), ComEventTransferRecordVO.class));
+    }
+
+    /**
+     * description 查询返回列表数据
+     *
+     * @param comEventTransferRecordVO 三说会堂事件流转表对象
+     * @return R<List < ComEventTransferRecordVO>>  comEventTransferRecordVO对象列表
+     * @author manailin
+     * @date 2022-09-07 11:23:52
+     */
+    @ApiOperation("查询返回列表数据")
+    @PostMapping("/list")
+    public R<List<ComEventTransferRecordVO>> listByComEventTransferRecord(@RequestBody ComEventTransferRecordVO comEventTransferRecordVO) {
+        ComEventTransferRecord comEventTransferRecord = CopyUtil.copyProperties(comEventTransferRecordVO, ComEventTransferRecord.class);
+        return R.ok(CopyUtil.beanCopyList(comEventTransferRecordService.listByComEventTransferRecord(comEventTransferRecord), ComEventTransferRecordVO.class));
+    }
+
+    /**
+     * description page   三说会堂事件流转表分页列表数据
+     * params   [pageNo, pageSize]
+     *
+     * @param comEventTransferRecordVO 对象
+     * @param pageNo                   当前页码
+     * @param pageSize                 每页显示数量
+     * @return PageResult<List < ComEventTransferRecord>>  三说会堂事件流转表分页列表数据
+     * @author manailin
+     * @date 2022-09-07 11:23:52
+     */
+    @ApiOperation(value = "三说会堂事件流转表分页列表数据", notes = "三说会堂事件流转表分页列表数据")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "pageNo", value = "当前页码", required = true, dataType = "Long", paramType = "query"),
+            @ApiImplicitParam(name = "pageSize", value = "每页显示数量", required = true, dataType = "Long", paramType = "query")
+    })
+    @PostMapping("/page")
+    public R page(@RequestBody ComEventTransferRecordVO comEventTransferRecordVO, Long pageNo, Long pageSize) {
+        Page pagination = new Page(pageNo, pageSize);
+        ComEventTransferRecord comEventTransferRecord = CopyUtil.copyProperties(comEventTransferRecordVO, ComEventTransferRecord.class);
+        return comEventTransferRecordService.pageByComEventTransferRecord(comEventTransferRecord, pagination);
+    }
+
+    /**
+     * description 根据ID删除三说会堂事件流转表
+     *
+     * @param id 主键id
+     * @return R 删除结果
+     * @author manailin
+     * @date 2022-09-07 11:23:52
+     */
+    @ApiOperation("删除三说会堂事件流转表")
+    @ApiImplicitParams(
+            @ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long")
+    )
+    @DeleteMapping("/remove/{id}")
+    public R remove(@PathVariable Long id) {
+        return comEventTransferRecordService.removeById(id) ? R.ok() : R.fail();
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSanShuoExpertApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSanShuoExpertApi.java
new file mode 100644
index 0000000..99d1c5f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSanShuoExpertApi.java
@@ -0,0 +1,200 @@
+package com.panzhihua.service_community.api;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.alibaba.excel.EasyExcel;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.sanshuo.ComSanshuoExpertDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.user.AdministratorsUserVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.ExcelUtils;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.service_community.entity.ComEvent;
+import com.panzhihua.service_community.entity.ComSanshuoExpert;
+import com.panzhihua.service_community.service.ComSanShuoExpertService;
+import com.panzhihua.service_community.service.IComEventService;
+import com.panzhihua.service_community.util.ExcelListener;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import javax.xml.crypto.Data;
+import java.io.IOException;
+import java.util.Date;
+import java.util.List;
+
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+
+/**
+ * 三说会堂调解专家控制器
+ * */
+@RestController
+@RequestMapping("/sanshuo/expert")
+public class ComSanShuoExpertApi extends BaseController {
+
+    @Resource
+    private ComSanShuoExpertService comSanShuoExpertService;
+    @Resource
+    private UserService userService;
+    @Resource
+    private IComEventService comEventService;
+
+    /**
+     * 添加专家
+     * */
+    @PostMapping
+    public R add(@RequestBody ComSanshuoExpertDTO comSanshuoExpertDTO){
+        comSanshuoExpertDTO.setCreateBy(this.getLoginUserInfo().getName());
+//        comSanshuoExpertDTO.setAppId(userService.detailUser(getLoginUserInfo().getUserId()).getData().getAppId());
+        comSanshuoExpertDTO.setAppId(getAppId());
+        return comSanShuoExpertService.addOrUpdateExpert(comSanshuoExpertDTO);
+    }
+
+    @GetMapping("/detail")
+    public R detail(@RequestParam Long id){
+        return R.ok(comSanShuoExpertService.getById(id));
+    }
+
+    /**
+     * 小程序获取可选择专家
+     * */
+    @GetMapping("/appletsList")
+    public R appList(@RequestParam (value = "type",required = false)Integer type,@RequestParam(value = "id",required = false)Long id){
+        return comSanShuoExpertService.selectExpertList(type, id,this.getLoginUserInfo().getCommunityId());
+    }
+
+    /**
+     * 修改专家
+     * */
+    @PutMapping
+    public R update(@RequestBody ComSanshuoExpertDTO comSanshuoExpertDTO){
+        return R.ok(comSanShuoExpertService.addOrUpdateExpert(comSanshuoExpertDTO));
+    }
+
+
+    /**
+     * 后台获取列表
+     * */
+    @GetMapping("/backstageList")
+    public R backList(@RequestParam(value = "keyWord",required = false) String keyWord,
+                      @RequestParam(value = "page",required = false)Integer page,
+                      @RequestParam(value = "size",required = false)Integer size,
+                      @RequestParam(value = "level",required = false)Integer level){
+        LoginUserInfoVO loginUserInfo = this.getLoginUserInfo();
+//        loginUserInfo.setAppId(userService.detailUser(getLoginUserInfo().getUserId()).getData().getAppId());
+        loginUserInfo.setAppId(getAppId());
+        return comSanShuoExpertService.expertPage(keyWord,page,size,loginUserInfo,level);
+    }
+
+
+    /**
+     * 删除
+     * */
+    @DeleteMapping("/remove")
+    public R remove(@RequestParam("id")Long id){
+        List<ComEvent> list = comEventService.list(new QueryWrapper<ComEvent>().lambda().eq(ComEvent::getSpecialistId, id).in(ComEvent::getEventProcessStatus, (1), (2), (5)));
+        if (list.size()!=0){
+            return R.fail("有未调解完成事件,无法删除!");
+        }
+        ComSanshuoExpert expert = comSanShuoExpertService.getById(id);
+        expert.setStatus(0);
+        expert.setDelFlag(0);
+        boolean b = comSanShuoExpertService.updateById(expert);
+        if (b){
+            //删除专家账号的权限
+            userService.removeExpertRole(expert.getPhone());
+        }
+        return R.ok();
+    }
+
+    /**
+     * 重置密码
+     * */
+    @PostMapping("/resetPassword")
+    public R resetPassword(@RequestBody ComSanshuoExpertDTO comSanshuoExpertDTO){
+        ComSanshuoExpert expert = comSanShuoExpertService.getById(comSanshuoExpertDTO.getId());
+        expert.setPassword(comSanshuoExpertDTO.getPassword());
+        userService.sanShuoResetPassword(comSanshuoExpertDTO.getAccount(),comSanshuoExpertDTO.getPassword() );
+        return R.ok(comSanShuoExpertService.updateById(expert));
+    }
+
+    /**
+     * 专家风采
+     * */
+    @GetMapping("/expertShow")
+    public R expertShow(){
+        return comSanShuoExpertService.expertShow(this.getLoginUserInfo().getAppId());
+    }
+
+
+    /**
+     * 专家范围
+     * */
+    @GetMapping("/expertRange")
+    public R expertRange(){
+        LoginUserInfoVO loginUserInfo1=getLoginUserInfo();
+        LoginUserInfoVO loginUserInfo = userService.detailUser(loginUserInfo1.getUserId()).getData();
+        return comSanShuoExpertService.expertRange(loginUserInfo);
+    }
+
+    /**
+     * 专家风采列表
+     * */
+    @GetMapping("/expertShowList")
+    public R expertShowList(@RequestParam(value = "level",required = false)Integer level,
+                            @RequestParam(value = "id",required = false)Long id){
+//        return comSanShuoExpertService.expertShowList(level,id,userService.detailUser(this.getUserId()).getData().getAppId());
+        return comSanShuoExpertService.expertShowList(level,id,getAppId());
+    }
+
+    /**
+     * 是否为专家登陆小程序
+     * */
+    @GetMapping("/checkExpert")
+    public R checkExpert(@RequestParam("number") String number){
+        ComSanshuoExpert expert = comSanShuoExpertService.getOne(new QueryWrapper<ComSanshuoExpert>().lambda().eq(ComSanshuoExpert::getPhone, number));
+        if (nonNull(expert)){
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 导入专家信息
+     * */
+    @PostMapping("/importExpert")
+    public R importExpert(@RequestBody MultipartFile multipartFile){
+        try {
+            ExcelListener listener=new ExcelListener(comSanShuoExpertService);
+            EasyExcel.read(multipartFile.getInputStream(),ComSanshuoExpert.class,listener).sheet().doRead();
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return R.ok();
+    }
+
+    /**
+     * 后台获取专家列表
+     * */
+    @GetMapping("/backstageList2")
+    public R  backstageList(@RequestParam(value = "level",required = false)Integer level,
+                            @RequestParam(value = "page",required = false)Integer page,
+                            @RequestParam(value = "size",required = false)Integer size,
+                            @RequestParam(value = "keyWord",required = false)String  keyWord){
+        LoginUserInfoVO loginUserInfo = getLoginUserInfo();
+//        loginUserInfo.setAppId(userService.detailUser(getLoginUserInfo().getUserId()).getData().getAppId());
+        loginUserInfo.setAppId(getAppId());
+        return comSanShuoExpertService.backstageList(level,loginUserInfo,page,size,keyWord);
+    }
+
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSanShuoIndustryCenterApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSanShuoIndustryCenterApi.java
new file mode 100644
index 0000000..72fd105
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSanShuoIndustryCenterApi.java
@@ -0,0 +1,89 @@
+package com.panzhihua.service_community.api;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.sanshuo.ComSanShuoIndustryCenterDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.service_community.entity.ComEvent;
+import com.panzhihua.service_community.entity.ComSanshuoIndustryCenter;
+import com.panzhihua.service_community.service.ComSanShuoIndustryCenterService;
+import com.panzhihua.service_community.service.IComEventService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 三说会堂业务中心管理控制器
+ */
+@RestController
+@RequestMapping("/sanshuo/industryCenter")
+public class ComSanShuoIndustryCenterApi extends BaseController {
+    @Resource
+    private ComSanShuoIndustryCenterService comSanShuoIndustryCenterService;
+    @Resource
+    private UserService userService;
+    @Resource
+    private IComEventService comEventService;
+
+    @GetMapping("/list")
+    public R list(@RequestParam(value = "keyWord", required = false) String keyWord,
+                  @RequestParam(value = "page", required = false) Integer page,
+                  @RequestParam(value = "size", required = false) Integer size) {
+        return R.ok(comSanShuoIndustryCenterService.pageIndustryCenter(keyWord, page, size));
+    }
+
+    @GetMapping("/appletsList")
+    public R appletsList() {
+        return R.ok(comSanShuoIndustryCenterService.list(new QueryWrapper<ComSanshuoIndustryCenter>().eq("status", 1).eq("del_flag", 1)));
+    }
+
+    @GetMapping("/detail")
+    public R detail(@RequestParam Long id) {
+        return R.ok(comSanShuoIndustryCenterService.getById(id));
+    }
+
+    /**
+     * 添加业务中心
+     */
+    @PostMapping
+    public R add(@RequestBody ComSanShuoIndustryCenterDTO comSanShuoIndustryCenterDTO) {
+        comSanShuoIndustryCenterDTO.setCreateBy(this.getLoginUserInfo().getName());
+        return comSanShuoIndustryCenterService.addOrUpdate(comSanShuoIndustryCenterDTO);
+    }
+
+    /**
+     * 修改业务中心
+     */
+    @PutMapping
+    public R update(@RequestBody ComSanShuoIndustryCenterDTO comSanShuoIndustryCenterDTO) {
+        return comSanShuoIndustryCenterService.addOrUpdate(comSanShuoIndustryCenterDTO);
+    }
+
+    /**
+     * 删除业务中心
+     */
+    @DeleteMapping("/remove")
+    public R remove(@RequestParam("id") Long id) {
+        List<ComEvent> list = comEventService.list(new QueryWrapper<ComEvent>().lambda().eq(ComEvent::getSpecialistId, id).in(ComEvent::getEventProcessStatus, (1), (2), (5)));
+        if (list.size()!=0){
+            return R.fail("有未调解完成事件,无法删除!");
+        }
+        ComSanshuoIndustryCenter center = comSanShuoIndustryCenterService.getById(id);
+        center.setDelFlag(0);
+        center.setStatus(0);
+        return R.ok(comSanShuoIndustryCenterService.updateById(center));
+    }
+
+    /**
+     * 重置密码
+     */
+    @PostMapping("/resetPass")
+    public R resetPassword(@RequestBody ComSanShuoIndustryCenterDTO comSanShuoIndustryCenterDTO) {
+        ComSanshuoIndustryCenter center = comSanShuoIndustryCenterService.getById(comSanShuoIndustryCenterDTO.getId());
+        center.setPassword(comSanShuoIndustryCenterDTO.getPassword());
+        return R.ok(comSanShuoIndustryCenterService.resetPassword(center));
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSentencePopulationApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSentencePopulationApi.java
new file mode 100644
index 0000000..cf97b5c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSentencePopulationApi.java
@@ -0,0 +1,15 @@
+package com.panzhihua.service_community.api;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 17:41:26
+ * @describe 前端控制器
+ */
+@RestController
+@RequestMapping("/sentence/population")
+public class ComSentencePopulationApi {
+
+}
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
new file mode 100644
index 0000000..3e74c46
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComSwPatrolRecordApi.java
@@ -0,0 +1,316 @@
+package com.panzhihua.service_community.api;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.model.dtos.community.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComSwRotaExcelVO;
+import com.panzhihua.service_community.service.ComSwDangerReportService;
+import com.panzhihua.service_community.service.ComSwPatrolRecordService;
+import com.panzhihua.service_community.service.ComSwRotaService;
+import com.panzhihua.service_community.service.ComSwSafetyWorkRecordService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther txb
+ * @create 2021-07-23 14:38:38
+ * @describe 社区》安全工作》巡查记录前端控制器
+ */
+@Slf4j
+@RestController
+@RequestMapping("/patrolRecord")
+public class ComSwPatrolRecordApi {
+
+    @Resource
+    private ComSwPatrolRecordService comSwPatrolRecordService;
+
+    @Resource
+    private ComSwSafetyWorkRecordService comSwSafetyWorkRecordService;
+
+    @Resource
+    private ComSwDangerReportService comSwDangerReportService;
+
+    @Resource
+    private ComSwRotaService comSwRotaService;
+
+    /**
+     * 分页查询巡查记录
+     * 
+     * @param comSwPatrolRecordPageDTO
+     *            查询参数
+     * @return 巡查记录分页集合
+     */
+    @PostMapping("/page")
+    public R pagePatrolRecord(@RequestBody ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO) {
+        return comSwPatrolRecordService.pagePatrolRecord(comSwPatrolRecordPageDTO);
+    }
+
+    /**
+     * 新增巡查记录
+     * 
+     * @param comSwPatrolRecordAddDTO
+     *            新增参数
+     * @return 新增结果
+     */
+    @PostMapping("/addPatrolRecord")
+    @Transactional(rollbackFor = Exception.class)
+    public R addPatrolRecord(@RequestBody ComSwPatrolRecordAddDTO comSwPatrolRecordAddDTO) {
+        return comSwPatrolRecordService.addPatrolRecord(comSwPatrolRecordAddDTO);
+    }
+
+    /**
+     * 编辑巡查记录 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
+     *            巡查记录id
+     * @return 巡查记录详情查询结果
+     */
+    @GetMapping("/detail")
+    public R detailPatrolRecord(@RequestParam(value = "patrolRecordId") Long patrolRecordId) {
+        return comSwPatrolRecordService.detailPatrolRecord(patrolRecordId);
+    }
+
+    /**
+     * 巡查记录统计接口
+     *
+     * @return 统计结果
+     */
+    @GetMapping("/statistics")
+    public R patrolRecordStatistics(@RequestParam(value = "communityId") Long communityId) {
+        return comSwPatrolRecordService.patrolRecordStatistics(communityId);
+    }
+
+    /**
+     * 分页查询安全工作记录
+     * 
+     * @param comSwPatrolRecordPageDTO
+     *            查询参数
+     * @return 安全工作记录分页集合
+     */
+    @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);
+    }
+
+    /**
+     * 根据安全工作记录id查询详情
+     *
+     * @param safetyWorkRecordId
+     *            安全工作记录
+     * @return 安全工作记录详情查询结果
+     */
+    @GetMapping("/safetyWorkRecord/detail")
+    public R detailSafetyWorkRecord(@RequestParam(value = "safetyWorkRecordId") Long safetyWorkRecordId,
+        @RequestParam(value = "communityId", required = false) Long communityId) {
+        return comSwSafetyWorkRecordService.detailSafetyWorkRecord(safetyWorkRecordId, communityId);
+    }
+
+    /**
+     * 根据巡查记录id查询安全工作记录详情
+     *
+     * @param patrolRecordId
+     *            巡查记录id
+     * @return 安全工作记录详情查询结果
+     */
+    @GetMapping("/safetyWorkRecord/detailByPrId")
+    public R detailSafetyWorkRecordByPrId(@RequestParam(value = "patrolRecordId") Long patrolRecordId,
+        @RequestParam(value = "communityId", required = false) Long communityId) {
+        return comSwSafetyWorkRecordService.detailSafetyWorkRecordByPrId(patrolRecordId, communityId);
+    }
+
+    /**
+     * 分页查询隐患报告
+     * 
+     * @param comSwPatrolRecordPageDTO
+     *            查询参数
+     * @return 隐患报告分页集合
+     */
+    @PostMapping("/dangerReport/page")
+    public R pageDangerReport(@RequestBody ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO) {
+        return comSwDangerReportService.pageDangerReport(comSwPatrolRecordPageDTO);
+    }
+
+    /**
+     * 编辑隐患报告 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
+     *            隐患报告id
+     * @return 隐患报告详情查询结果
+     */
+    @GetMapping("/dangerReport/detail")
+    public R detailDangerReport(@RequestParam(value = "dangerReportId") Long dangerReportId) {
+        return comSwDangerReportService.detailDangerReport(dangerReportId);
+    }
+
+    /**
+     * 根据巡查记录id查询隐患报告详情
+     *
+     * @param patrolRecordId
+     *            巡查记录id
+     * @return 隐患报告详情查询结果
+     */
+    @GetMapping("/dangerReport/detailByPrId")
+    public R detailDangerReportByPrId(@RequestParam(value = "patrolRecordId") Long patrolRecordId) {
+        return comSwDangerReportService.detailDangerReportByPrId(patrolRecordId);
+    }
+
+    /**
+     * 处理隐患报告
+     *
+     * @param comSwDangerReportHandleDTO
+     *            隐患报告处理参数
+     * @return 处理结果
+     */
+    @PostMapping("/dangerReport/handle")
+    public R handleDangerReport(@RequestBody ComSwDangerReportHandleDTO comSwDangerReportHandleDTO) {
+        return comSwDangerReportService.handleDangerReport(comSwDangerReportHandleDTO);
+    }
+
+    /**
+     * 整改隐患报告
+     *
+     * @param comSwDangerReportRectifyDTO
+     *            隐患报告整改参数
+     * @return 整改结果
+     */
+    @PostMapping("/dangerReport/rectify")
+    public R rectifyDangerReport(@RequestBody ComSwDangerReportRectifyDTO comSwDangerReportRectifyDTO) {
+        return comSwDangerReportService.rectifyDangerReport(comSwDangerReportRectifyDTO);
+    }
+
+    /**
+     * 隐患报告台账导出
+     *
+     * @param dangerReportIds
+     * @return
+     */
+    @PostMapping("/dangerReport/export")
+    public R exportDangerReport(@RequestBody List<Long> dangerReportIds) {
+        return comSwDangerReportService.exportDangerReport(dangerReportIds);
+    }
+
+    /**
+     * 分页查询值班表
+     * 
+     * @param comSwRotaPageDTO
+     *            查询参数
+     * @return 值班表分页集合
+     */
+    @PostMapping("/rota/page")
+    public R pageRota(@RequestBody ComSwRotaPageDTO comSwRotaPageDTO) {
+        return comSwRotaService.pageRota(comSwRotaPageDTO);
+    }
+
+    /**
+     * 根据id查询值班表
+     * 
+     * @param rotaId
+     *            值班表id
+     * @return 值班表详情
+     */
+    @GetMapping("/rota/detail")
+    public R detailRota(@RequestParam("rotaId") Long rotaId) {
+        return comSwRotaService.detailRota(rotaId);
+    }
+
+    /**
+     * 新增值班表
+     * 
+     * @param comSwRotaSaveDTOs
+     *            新增参数
+     * @return 新增结果
+     */
+    @PostMapping("/rota/add")
+    public R addRota(@RequestBody List<ComSwRotaSaveDTO> comSwRotaSaveDTOs) {
+        return comSwRotaService.addRota(comSwRotaSaveDTOs);
+    }
+
+    /**
+     * 批量删除值班表
+     * 
+     * @param rotaIds
+     *            值班ids
+     * @return 删除结果
+     */
+    @PostMapping("/rota/delete")
+    public R deleteRota(@RequestBody List<Long> rotaIds) {
+        return comSwRotaService.deleteRota(rotaIds);
+    }
+
+    /**
+     * 根据日期查询值班人员
+     * 
+     * @return 查询结果
+     */
+    @GetMapping("/rota/getRotaPersonByDate")
+    public R getRotaPersonByDate(@RequestParam(value = "rotaDate") String rotaDate,@RequestParam("communityId")Long communityId) {
+        return comSwRotaService.getRotaPersonByDate(rotaDate,communityId);
+    }
+
+    /**
+     * 根据日期查询值班领导
+     * 
+     * @return 查询结果
+     */
+    @GetMapping("/rota/getRotaLeaderByDate")
+    public R getRotaLeaderByDate(@RequestParam(value = "rotaDate") String rotaDate,@RequestParam("communityId")Long communityId) {
+        return comSwRotaService.getRotaLeaderByDate(rotaDate,communityId);
+    }
+
+    /**
+     * 批量导入值班表
+     *
+     * @param list
+     *            值班表集合
+     */
+    @PostMapping("/rota/import")
+    public R listSaveSwRotaExcelVO(@RequestBody List<ComSwRotaExcelVO> list,
+        @RequestParam("communityId") Long communityId) {
+        return comSwRotaService.listSaveSwRotaExcelVO(list, communityId);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComVeteransPopulationApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComVeteransPopulationApi.java
new file mode 100644
index 0000000..eaf8e73
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ComVeteransPopulationApi.java
@@ -0,0 +1,15 @@
+package com.panzhihua.service_community.api;
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 19:56:46
+ * @describe 实有人口导入》退役军人表前端控制器
+ */
+@RestController
+@RequestMapping("/veterans/population")
+public class ComVeteransPopulationApi {
+
+}
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
new file mode 100644
index 0000000..f4c69bb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommonDataApi.java
@@ -0,0 +1,988 @@
+package com.panzhihua.service_community.api;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.dtos.grid.AddComMngHousePopulationDTO;
+import com.panzhihua.common.model.dtos.grid.DelComMngHousePopulationDTO;
+import com.panzhihua.service_community.model.dos.ComMngPopulationDO;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.model.dtos.community.*;
+import com.panzhihua.common.model.dtos.user.PageInputUserDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.*;
+import com.panzhihua.common.model.vos.user.ComMngTagVO;
+import com.panzhihua.common.model.vos.user.UserElectronicFileVO;
+import com.panzhihua.common.validated.AddGroup;
+import com.panzhihua.service_community.service.*;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @description: 社区管理/基础数据
+ * @author: Null
+ * @date: 2021/3/11 13:19
+ */
+@Slf4j
+@RestController
+@RequestMapping("/common/data")
+public class CommonDataApi {
+
+    @Resource
+    private ComMngCarService comMngCarService;
+
+    @Resource
+    private ComMngRealCompanyService comMngRealCompanyService;
+
+    @Resource
+    private ComMngRealAssetsService comMngRealAssetsService;
+
+    @Resource
+    private ComMngProvinceService comMngProvinceService;
+    @Resource
+    private ComMngPopulationService comMngPopulationService;
+    @Resource
+    private ComMngPopulationHouseService comMngPopulationHouseService;
+    @Resource
+    private ComMngVillageService comMngVillageService;
+    @Resource
+    private ComMngPopulationHouseUserService comMngPopulationHouseUserService;
+
+    /**
+     * 小程序用户车辆登记
+     *
+     * @param comCvtBusinessDTO
+     * @return
+     */
+    @PostMapping("/car/user/register")
+    public R addComCvtBusiness(@RequestBody ComMngCarAppletDTO comCvtBusinessDTO) {
+        return comMngCarService.addComMngCarApplet(comCvtBusinessDTO);
+    }
+
+    /**
+     * 小程序用户车辆列表
+     *
+     * @param userId
+     * @return
+     */
+    @GetMapping("/car/user/list")
+    public R userComMngCarList(@RequestParam("userId") Long userId) {
+        return comMngCarService.userComMngCarList(userId);
+    }
+
+    /**
+     * 社区后台车辆管理列表
+     *
+     * @param pageComMngCarDTO
+     * @return
+     */
+    @PostMapping("/car/page")
+    public R pageQueryComMngCar(@RequestBody PageComMngCarDTO pageComMngCarDTO) {
+        return comMngCarService.pageQueryComMngCar(pageComMngCarDTO);
+    }
+
+    /**
+     * 社区后台添加修改车辆
+     *
+     * @param comMngCarSaveDTO
+     * @return
+     */
+    @PostMapping("/car/save")
+    public R saveComMngCar(@Validated({AddGroup.class}) @RequestBody ComMngCarSaveDTO comMngCarSaveDTO) {
+        return comMngCarService.saveComMngCar(comMngCarSaveDTO);
+    }
+
+    /**
+     * 社区后台删除车辆
+     *
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/car/delete")
+    public R deleteComMngCar(@RequestParam(value = "id") Long id) {
+        return comMngCarService.deleteComMngCar(id);
+    }
+
+    /**
+     * 社区后台导入车辆
+     *
+     * @param list
+     *            车辆列表
+     * @param communityId
+     *            社区编号
+     * @return
+     */
+    @PostMapping("/car/import")
+    public R listSaveMngCarExcelVO(@RequestBody List<ComMngCarExcelVO> list,
+        @RequestParam("communityId") Long communityId) {
+        return comMngCarService.listSaveMngCarExcelVO(list, communityId);
+    }
+
+    /**
+     * 车辆导出
+     *
+     * @param exportComMngCarExcelDTO
+     * @return
+     */
+    @PostMapping("/car/export")
+    public R exportRealCar(@RequestBody ExportComMngCarExcelDTO exportComMngCarExcelDTO) {
+        return comMngCarService.exportRealCar(exportComMngCarExcelDTO);
+    }
+
+    /**
+     * 社区后台实有单位管理列表
+     *
+     * @param pageComMngRealCompanyDTO
+     * @return
+     */
+    @PostMapping("/company/page")
+    public R pageQueryComMngRealCompany(@RequestBody PageComMngRealCompanyDTO pageComMngRealCompanyDTO) {
+        return comMngRealCompanyService.pageQueryComMngRealCompany(pageComMngRealCompanyDTO);
+    }
+
+    /**
+     * 社区后台实有单位统计
+     *
+     * @param communityId
+     *            社区id
+     * @return 统计结果
+     */
+    @PostMapping("/company/statistics")
+    public R getComMngRealCompanyTotalByAdmin(@RequestParam("communityId") Long communityId) {
+        return comMngRealCompanyService.getComMngRealCompanyTotalByAdmin(communityId);
+    }
+
+    /**
+     * 社区后台添加修改实有单位
+     *
+     * @param comMngRealCompanyVO
+     * @return
+     */
+    @PostMapping("/company/save")
+    public R saveComMngRealCompany(@RequestBody ComMngRealCompanyVO comMngRealCompanyVO) {
+        return comMngRealCompanyService.saveComMngRealCompany(comMngRealCompanyVO);
+    }
+
+    /**
+     * 社区后台删除实有单位
+     *
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/company/delete")
+    public R deleteComMngRealCompany(@RequestParam(value = "id") Long id) {
+        return comMngRealCompanyService.deleteComMngRealCompany(id);
+    }
+
+    @GetMapping("/company/detail")
+    public R detailComMngRealCompany(@RequestParam(value = "id") Long id) {
+        return comMngRealCompanyService.detailComMngRealCompany(id);
+    }
+
+    @PostMapping("/company/belongs")
+    public R belongsComMngRealCompany(@RequestBody ComMngRealCompanyBelongsDTO comMngRealCompanyBelongsDTO) {
+        return comMngRealCompanyService.belongsComMngRealCompany(comMngRealCompanyBelongsDTO);
+    }
+
+    /**
+     * 社区后台导入实有单位
+     *
+     * @param list
+     *            车实有单位列表
+     * @param communityId
+     *            社区编号
+     * @return
+     */
+    @PostMapping("/company/import")
+    public R listSaveMngRealCompanyExcelVO(@RequestBody List<ComMngRealCompanyExcelVO> list,
+        @RequestParam("communityId") Long communityId) {
+        return comMngRealCompanyService.listSaveMngRealCompanyExcelVO(list, communityId);
+    }
+
+    /**
+     * 导出实有单位
+     *
+     * @param exportRealCompanyExcelDTO
+     *            实有单位导出查询参数
+     * @return
+     */
+    @PostMapping("/company/export")
+    public R exportRealCompanyExcel(@RequestBody ExportRealCompanyExcelDTO exportRealCompanyExcelDTO) {
+        return comMngRealCompanyService.exportRealCompanyExcel(exportRealCompanyExcelDTO);
+    }
+
+    /**
+     * 社区后台实有资产管理列表
+     *
+     * @param pageComMngRealAssetsDTO
+     * @return
+     */
+    @PostMapping("/assets/page")
+    public R pageQueryComMngRealAssets(@RequestBody PageComMngRealAssetsDTO pageComMngRealAssetsDTO) {
+        return comMngRealAssetsService.pageQueryComMngRealAssets(pageComMngRealAssetsDTO);
+    }
+
+    /**
+     * 社区后台添加修改实有资产
+     *
+     * @param comMngRealAssetsVO
+     * @return
+     */
+    @PostMapping("/assets/save")
+    public R saveComMngRealAssets(@RequestBody ComMngRealAssetsVO comMngRealAssetsVO) {
+        return comMngRealAssetsService.saveComMngRealAssets(comMngRealAssetsVO);
+    }
+
+    /**
+     * 社区后台删除实有资产
+     *
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/assets/delete")
+    public R deleteComMngRealAssets(@RequestParam(value = "id") Long id) {
+        return comMngRealAssetsService.deleteComMngRealAssets(id);
+    }
+
+    @GetMapping("/assets/detail")
+    public R detailComMngRealAssets(@RequestParam(value = "id") Long id) {
+        return comMngRealAssetsService.detailComMngRealAssets(id);
+    }
+
+    /**
+     * 社区后台导入实有资产
+     *
+     * @param list
+     *            车实有资产列表
+     * @param communityId
+     *            社区编号
+     * @return
+     */
+    @PostMapping("/assets/import")
+    public R listSaveMngRealAssetsExcelVO(@RequestBody List<ComMngRealAssetsExcelVO> list,
+        @RequestParam("communityId") Long communityId) {
+        return comMngRealAssetsService.listSaveMngRealAssetsExcelVO(list, communityId);
+    }
+
+    /**
+     * 导出实有资产
+     *
+     * @param exportRealAssetsExcelDTO
+     *            实有资产导出查询参数
+     * @return
+     */
+    @PostMapping("/assets/export")
+    public R exportRealAssetsExcel(@RequestBody ExportRealAssetsExcelDTO exportRealAssetsExcelDTO) {
+        return comMngRealAssetsService.exportRealAssetsExcel(exportRealAssetsExcelDTO);
+    }
+
+    /**
+     * 查询所有省份
+     *
+     * @return
+     */
+    @GetMapping("/province")
+    public R getProvince() {
+        return comMngProvinceService.getProvince();
+    }
+
+    /**
+     * 查询省份下所有的城市
+     *
+     * @param provinceAdcode
+     * @return
+     */
+    @GetMapping("/city")
+    public R getCityByProvinceCode(@RequestParam(value = "provinceAdcode") Integer provinceAdcode) {
+        return comMngProvinceService.getCityByProvinceCode(provinceAdcode);
+    }
+
+    /**
+     * 查询城市下所有的区县
+     *
+     * @param cityAdcode
+     * @return
+     */
+    @GetMapping("/district")
+    R getDistrictByCityCode(@RequestParam(value = "cityAdcode") Integer cityAdcode) {
+        return comMngProvinceService.getDistrictByCityCode(cityAdcode);
+    }
+
+    /**
+     * 查询特定省下所有区域 tree结构
+     *
+     * @param provinceAdcode
+     * @return
+     */
+    @GetMapping("/area/all")
+    public R getCityTreeByProvinceCode(@RequestParam(value = "provinceAdcode") Integer provinceAdcode,
+                                @RequestParam(value = "areaCode", required = false) String areaCode) {
+        return comMngProvinceService.getCityTreeByProvinceCode(provinceAdcode, areaCode);
+    }
+
+
+    /**
+     * 获取省下的所有区域 tree结构 基层公开用
+     *
+     * @param provinceAdcode
+     * @return
+     */
+    @GetMapping("/area/basiclevel")
+    public R getCityTreeByCode(@RequestParam(value = "provinceAdcode") Integer provinceAdcode,
+                               @RequestParam(value = "areaCode", required = false) String areaCode,
+                               @RequestParam(value = "appId", required = false) String appId) {
+        return comMngProvinceService.getCityTreeByCode(provinceAdcode, areaCode,appId);
+    }
+
+    /**
+     * 社区后台实有人口管理列表
+     *
+     * @param comMngPopulationVO
+     *            查询参数
+     * @return 实有人口分页查询结果
+     */
+    @PostMapping("/population/page")
+    public R pagePopulation(@RequestBody ComMngPopulationDTO comMngPopulationVO) {
+        return comMngPopulationService.pagePopulation(comMngPopulationVO);
+    }
+    /**
+     * 社区后台老人导出管理列表
+     *
+     * @param comMngPopulationVO
+     *            查询参数
+     * @return 实有人口分页查询结果
+     */
+    @PostMapping("/population/exportOld")
+    public R exportOld(@RequestBody ComMngPopulationDTO comMngPopulationVO) {
+        return comMngPopulationService.exportOld(comMngPopulationVO);
+    }
+
+    /**
+     * 根据身份证查询实有人口信息
+     */
+    @GetMapping("/population/selectByIdCard")
+    public R selectByIdCard(@RequestParam("idCard") String idCard){
+        ComMngPopulationDO comMngPopulationDO=comMngPopulationService.getPopulationByCardNo(idCard);
+        if(comMngPopulationDO!=null){
+            return R.ok(comMngPopulationDO.getAddress());
+        }
+        return R.fail();
+    }
+
+    /**
+     * 社区后台导入实有人口
+     *
+     * @param list
+     *            数据
+     * @param communityId
+     *            社区编号
+     * @return
+     */
+    @PostMapping("/population/import")
+    @Transactional(rollbackFor = Exception.class)
+    public R listSavePopulationExcelVO(@RequestBody List<ComMngPopulationServeExcelVO> list,
+        @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId) {
+        return comMngPopulationService.listSavePopulation(list, communityId, userId);
+    }
+
+    /**
+     * 批量导入吸毒人员
+     *
+     * @param list
+     *            吸毒人员数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    @PostMapping("population/importDrug")
+    @Transactional(rollbackFor = Exception.class)
+    public R listSavePopulationDrugExcelVO(@RequestBody List<ComMngPopulationDrugExcelVO> list,
+        @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId) {
+        return comMngPopulationService.listSaveDrugPopulation(list, communityId, userId);
+    }
+
+    /**
+     * 批量导入社区矫正人员
+     *
+     * @param list
+     *            社区矫正人员数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    @PostMapping("population/importCorrect")
+    @Transactional(rollbackFor = Exception.class)
+    public R listSavePopulationCorrectExcelVO(@RequestBody List<ComMngPopulationCorrectExcelVO> list,
+        @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId) {
+        return comMngPopulationService.listSaveCorrectPopulation(list, communityId, userId);
+    }
+
+    /**
+     * 批量导入重精人员
+     *
+     * @param list
+     *            重精人员数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @PostMapping("population/importMajor")
+    public R listSavePopulationMajorExcelVO(@RequestBody List<ComMngPopulationMajorExcelVO> list,
+        @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId) {
+        return comMngPopulationService.listSaveMajorPopulation(list, communityId, userId);
+    }
+
+    /**
+     * 批量导入邪教人员
+     *
+     * @param list
+     *            邪教人员数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    @PostMapping("population/importCult")
+    @Transactional(rollbackFor = Exception.class)
+    public R listSavePopulationCultExcelVO(@RequestBody List<ComMngPopulationCultExcelVO> list,
+        @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId) {
+        return comMngPopulationService.listSaveCultPopulation(list, communityId, userId);
+    }
+
+    /**
+     * 批量导入刑释人员
+     *
+     * @param list
+     *            刑释人员数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    @PostMapping("population/importRehabilitation")
+    @Transactional(rollbackFor = Exception.class)
+    public R listSavePopulationRehabilitationExcelVO(@RequestBody List<ComMngPopulationRehabilitationExcelVO> list,
+        @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId) {
+        return comMngPopulationService.listSaveRehabilitationPopulation(list, communityId, userId);
+    }
+
+    /**
+     * 批量导入重点上访人员
+     *
+     * @param list
+     *            重点上访人员数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @PostMapping("population/importKey")
+    public R listSavePopulationKeyExcelVO(@RequestBody List<ComMngPopulationKeyExcelVO> list,
+        @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId) {
+        return comMngPopulationService.listSaveKeyPopulation(list, communityId, userId);
+    }
+
+    /**
+     * 批量导入服刑人员
+     *
+     * @param list
+     *            服刑人员数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @PostMapping("population/importSentence")
+    public R listSavePopulationSentenceExcelVO(@RequestBody List<ComMngPopulationSentenceExcelVO> list,
+        @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId) {
+        return comMngPopulationService.listSaveSentencePopulation(list, communityId, userId);
+    }
+
+    /**
+     * 批量导入退役军人
+     *
+     * @param list
+     *            退役军人数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @PostMapping("population/importVeterans")
+    public R listSavePopulationVeteransExcelVO(@RequestBody List<ComMngPopulationVeteransExcelVO> list,
+        @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId) {
+        return comMngPopulationService.listSaveVeteransPopulation(list, communityId, userId);
+    }
+
+    /**
+     * 批量导入残疾人
+     *
+     * @param list
+     *            残疾人数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @PostMapping("population/importDisability")
+    public R listSavePopulationDisabilityExcelVO(@RequestBody List<ComMngPopulationDisabilityExcelVO> list,
+        @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId) {
+        return comMngPopulationService.listSaveDisabilityPopulation(list, communityId, userId);
+    }
+
+    /**
+     * 批量导入低保户
+     *
+     * @param list
+     *            低保户数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @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);
+    }
+
+    /**
+     * 确认导入实有人口(有则更新,无则新建)
+     *
+     * @param list
+     *            用户信息
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    @PostMapping("/population/import/confirm")
+    @Transactional(rollbackFor = Exception.class)
+    public R listSavePopulationConfirm(@RequestBody List<ComMngPopulationServeExcelVO> list,
+        @RequestParam(value = "communityId") Long communityId) {
+        return comMngPopulationService.listSavePopulationConfirm(list, communityId);
+    }
+
+    /**
+     * 根据实有人口id查询详情
+     *
+     * @param populationId
+     *            实有人口id
+     * @return 实有人口详情查询结果
+     */
+    @PostMapping("/population/detail")
+    public R detailPopulation(@RequestParam(value = "populationId") Long populationId, @RequestParam(value = "communityId") Long communityId) {
+        return comMngPopulationService.detailPopulation(populationId, communityId);
+    }
+
+    /**
+     * 查询实有人口电子档信息
+     *
+     * @param populationId
+     *            实有人口id
+     * @return 实有人口电子档信息
+     */
+    @PostMapping("/population/electronicArchives")
+    public R electronicArchivesPopulation(@RequestParam(value = "populationId") Long populationId) {
+        return comMngPopulationService.electronicArchivesPopulation(populationId);
+    }
+
+    /**
+     * 根据实有人口id修改标签列表
+     *
+     * @param populationTagDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    @PostMapping("/population/editTag")
+    public R editTagPopulation(@RequestBody ComMngPopulationTagDTO populationTagDTO) {
+        return comMngPopulationService.editTagPopulation(populationTagDTO);
+    }
+
+    /**
+     * 根据实有人口身份证修改标签列表
+     *
+     * @param comMngPopulationTagCardNoDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    @PostMapping("/cardNo/population/editTag")
+    public R editTagPopulationByCardNo(@RequestBody ComMngPopulationTagCardNoDTO comMngPopulationTagCardNoDTO) {
+        return comMngPopulationService.editTagPopulationByCardNo(comMngPopulationTagCardNoDTO);
+    }
+
+    /**
+     * 批量删除实有人口
+     *
+     * @param ids
+     *            删除id集合
+     * @return 删除结果
+     */
+    @PostMapping("/population/delete")
+    public R deletePopulations(@RequestBody List<Long> ids, Long communityId) {
+        return comMngPopulationService.deletePopulations(ids,communityId);
+    }
+
+    /**
+     * 根据社区id查询所有实有人口
+     *
+     * @param communityId
+     *            社区id
+     * @return 查询结果
+     */
+    @PostMapping("/population/getAll")
+    public R getPopulationListByCommunityId(@RequestParam(value = "communityId") Long communityId) {
+        return comMngPopulationService.getPopulationListByCommunityId(communityId);
+    }
+
+    /**
+     * 根据id集合查询实有人口
+     *
+     * @param Ids
+     *            实有人口id集合
+     * @return 查询结果
+     */
+    @PostMapping("/population/getList")
+    public R getPopulationLists(@RequestBody List<Long> Ids) {
+        return comMngPopulationService.getPopulationLists(Ids);
+    }
+
+    /**
+     * 根据小区id查询实有人口
+     *
+     * @param villageId
+     *            小区id
+     * @return 查询结果
+     */
+    @PostMapping("/population/getListByVillageId")
+    R getPopulationListByVillageId(@RequestParam(value = "villageId") Long villageId) {
+        return comMngPopulationService.getPopulationListByVillageId(villageId);
+    }
+
+    /**
+     * 编辑实有人口
+     *
+     * @param populationEditDTO
+     * @return
+     */
+    @PostMapping("/population/edit")
+    R editPopulation(@RequestBody ComMngPopulationEditDTO populationEditDTO,
+        @RequestParam("communityId") Long communityId) throws Exception {
+        return comMngPopulationService.editPopulation(populationEditDTO, communityId);
+    }
+
+    /**
+     * 分页查询特殊群体
+     *
+     * @param pageInputUserDTO
+     *            请求参数
+     * @return 特殊群体列表
+     */
+    @PostMapping("/special/page")
+    public R specialInputUser(@RequestBody PageInputUserDTO pageInputUserDTO) {
+        return comMngPopulationService.specialInputUser(pageInputUserDTO);
+    }
+    /**
+     * 导出特殊群体
+     *
+     * @param pageInputUserDTO
+     *            请求参数
+     * @return 特殊群体列表
+     */
+    @PostMapping("/special/export")
+    public R specialInputUserExport(@RequestBody PageInputUserDTO pageInputUserDTO) {
+        return comMngPopulationService.specialInputUserExport(pageInputUserDTO);
+    }
+
+    /**
+     * 删除特殊群体人员
+     *
+     * @param id
+     *            特殊群体id
+     * @return 删除结果
+     */
+    @PostMapping("/special/delete")
+    public R deleteSpecialInputUser(@RequestParam(value = "id") Long id,@RequestParam(value = "communityId") Long communityId) {
+        return comMngPopulationService.deleteSpecialInputUser(id,communityId);
+    }
+
+    /**
+     * 基础数据》特殊群体》分页查询标签列表
+     * 
+     * @param comMngUserTagDTO
+     * @return
+     */
+    @PostMapping("/special/tags/page")
+    public R specialInputUserTags(@RequestBody PageInputUserDTO comMngUserTagDTO) {
+        return comMngPopulationService.specialInputUserTags(comMngUserTagDTO);
+    }
+
+    /**
+     * 新增或修改特殊群体标签
+     * 
+     * @param comMngTagVO
+     * @return
+     */
+    @PostMapping("/special/tags/save")
+    public R saveSpecialInputUserTags(@RequestBody ComMngTagVO comMngTagVO) {
+        return comMngPopulationService.saveSpecialInputUserTags(comMngTagVO);
+    }
+
+    /**
+     * 删除特殊群体标签
+     * 
+     * @param id
+     * @return
+     */
+    @PostMapping("/special/tags/delete")
+    public R deleteSpecialInputUserTags(@RequestParam(value = "id") Long id) {
+        return comMngPopulationService.deleteSpecialInputUserTags(id);
+    }
+
+    /**
+     * 编辑实有人口_电子档案
+     *
+     * @param userElectronicFileVO
+     * @return
+     */
+    @PostMapping("/population/edit/electronicArchives")
+    R editPopulation(@RequestBody UserElectronicFileVO userElectronicFileVO) {
+        return comMngPopulationService.editUserElectronicFile(userElectronicFileVO);
+    }
+
+    /**
+     * 实有人口统计
+     *
+     * @param communityId
+     *            社区id
+     * @return 统计结果
+     */
+    @PostMapping("/population/statistics")
+    public R getPopulationTotalByAdmin(@RequestParam("communityId") Long communityId) {
+        return comMngPopulationService.getPopulationTotalByAdmin(communityId);
+    }
+
+    /**
+     * 查询房屋级联菜单
+     *
+     * @param cascadeHouseDTO
+     *            请求参数
+     * @return 菜单列表
+     */
+    @PostMapping("/population/cascade/list")
+    public R getCascadeHouseAddress(@RequestBody CascadeHouseDTO cascadeHouseDTO) {
+        return comMngPopulationHouseService.getCascadeHouseAddress(cascadeHouseDTO);
+    }
+    /**
+     * 查询房屋二级级联菜单
+     *
+     * @param cascadeHouseDTO
+     *            请求参数
+     * @return 菜单列表
+     */
+    @PostMapping("/population/second/list")
+    public R getSecondHouseAddress(@RequestBody CascadeHouseDTO cascadeHouseDTO) {
+        return comMngPopulationHouseService.getSecondHouseAddress(cascadeHouseDTO);
+    }
+
+    /**
+     * 查询房屋二级级联菜单后台
+     *
+     * @param cascadeHouseDTO
+     *            请求参数
+     * @return 菜单列表
+     */
+    @PostMapping("/population/second/listBack")
+    public R getSecondHouse(@RequestBody CascadeHouseDTO cascadeHouseDTO) {
+        return comMngPopulationHouseService.getSecondHouse(cascadeHouseDTO);
+    }
+
+    /**
+     * 分页查询房屋列表
+     *
+     * @param populationHouseAdminDTO
+     *            请求参数
+     * @return 房屋列表
+     */
+    @PostMapping("/population/page/house")
+    public R getPageHouse(@RequestBody ComMngPopulationHouseAdminDTO populationHouseAdminDTO) {
+        return comMngPopulationHouseService.getPageHouse(populationHouseAdminDTO);
+    }
+
+    /**
+     * 根据id查询实有房屋信息
+     *
+     * @param houseId
+     *            房屋id
+     * @return 房屋信息
+     */
+    @PostMapping("/population/house/detail")
+    public R getHouseDetail(@RequestParam(value = "houseId") Long houseId) {
+        return comMngPopulationHouseService.getHouseDetail(houseId);
+    }
+
+    /**
+     * 编辑实有房屋信息
+     *
+     * @param houseEditAdminDTO
+     *            请求参数
+     * @return 编辑结果
+     */
+    @PostMapping("/population/house/edit")
+    public R editHouse(@RequestBody ComMngPopulationHouseEditAdminDTO houseEditAdminDTO) {
+        return comMngPopulationHouseService.editHouse(houseEditAdminDTO);
+    }
+
+    /**
+     * 新增实有房屋信息
+     *
+     * @param houseEditAdminDTO
+     *            请求参数
+     * @return 编辑结果
+     */
+    @PostMapping("/population/house/insert")
+    public R insertHouse(@RequestBody ComMngPopulationHouseInsertAdminDTO houseEditAdminDTO) {
+        return comMngPopulationHouseService.insertHouse(houseEditAdminDTO);
+    }
+
+    /**
+     * 根据房屋id列表删除房屋信息
+     *
+     * @param Ids
+     *            请求参数
+     * @return 删除结果
+     */
+    @PostMapping("/population/house/delete")
+    public R deleteHouses(@RequestBody List<Long> Ids) {
+        return comMngPopulationHouseService.deleteHouses(Ids);
+    }
+
+    /**
+     * 实有房屋统计
+     *
+     * @param communityId
+     *            社区id
+     * @return 统计结果
+     */
+    @PostMapping("/population/house/statistics")
+    public R getHouseTotalByAdmin(@RequestParam("communityId") Long communityId) {
+        return comMngPopulationHouseService.getHouseTotalByAdmin(communityId);
+    }
+
+    /**
+     * 根据社区id查询社区所有省市区
+     *
+     * @param communityId
+     *            社区id
+     * @return 社区所在省市区
+     */
+    @PostMapping("/village/getRegion")
+    public R getRegion(@RequestParam("communityId") Long communityId) {
+        return comMngPopulationHouseService.getRegion(communityId);
+    }
+
+    /**
+     * 统计社区内小区数量
+     *
+     * @param communityId
+     *            社区id
+     * @return 统计小区数量
+     */
+    @PostMapping("/village/statistics")
+    public R villageStatistics(@RequestParam("communityId") Long communityId) {
+        return comMngVillageService.villageStatistics(communityId);
+    }
+
+    /**
+     * 编辑实有房屋信息
+     *
+     * @param comMngPopulationHouseUserVO
+     *            请求参数
+     * @return 编辑结果
+     */
+    @PostMapping("/population/house/user/edit")
+    public R editHouseUser(@RequestBody ComMngPopulationHouseUserVO comMngPopulationHouseUserVO) {
+        return comMngPopulationHouseUserService.updateAll(comMngPopulationHouseUserVO);
+    }
+
+    /**
+     * 新增实有房屋信息
+     *
+     * @param comMngPopulationHouseUserVO
+     *            请求参数
+     * @return 编辑结果
+     */
+    @PostMapping("/population/house/user/insert")
+    public R insertHouseUser(@RequestBody ComMngPopulationHouseUserVO comMngPopulationHouseUserVO) {
+        return comMngPopulationHouseUserService.insert(comMngPopulationHouseUserVO);
+    }
+
+    /**
+     * 根据房屋id列表删除房屋信息
+     *
+     * @param comMngPopulationHouseUserVO
+     *            请求参数
+     * @return 删除结果
+     */
+    @PostMapping("/population/house/user/delete")
+    public R deleteHousesUser(@RequestBody ComMngPopulationHouseUserVO comMngPopulationHouseUserVO) {
+        return comMngPopulationHouseUserService.delete(comMngPopulationHouseUserVO);
+    }
+
+    /**
+     * 根据id查询
+     *
+     * @param id
+     *            请求参数
+     * @return 删除结果
+     */
+    @GetMapping("/population/house/user/detail")
+    public R detailHousesUser(@RequestParam("id") Long id) {
+        return comMngPopulationHouseUserService.detail(id);
+    }
+
+    /**
+     * 历史数据人员类型填充
+     * @param newVoList
+     * @param communityId
+     * @param userId
+     * @return
+     */
+    @PostMapping("/history/filled")
+    public R filledPopulationPersonType(@RequestBody List<ComMngPopulationServeExcelVO> newVoList,
+                                 @RequestParam("communityId") Long communityId, @RequestParam("userId") Long userId) {
+        return comMngPopulationService.filledPopulationPersonType(newVoList, communityId, userId);
+    }
+}
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
new file mode 100644
index 0000000..fa4f27b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunityApi.java
@@ -0,0 +1,2970 @@
+package com.panzhihua.service_community.api;
+
+import static java.util.stream.Collectors.toList;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.*;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.PageBaseDTO;
+import com.panzhihua.common.model.dtos.community.ActivityInviteDTO;
+import com.panzhihua.common.model.dtos.community.PageActivityInviteDTO;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.community.ComActActivityTypeVO;
+import com.panzhihua.common.model.vos.community.volunteer.ComMngVolunteerExcelVO;
+import com.panzhihua.common.model.vos.user.SysTemplateConfigVO;
+import com.panzhihua.service_community.dao.ComActActEvaluateDAO;
+import com.panzhihua.service_community.model.dos.*;
+import com.panzhihua.service_community.service.*;
+import org.springframework.amqp.rabbit.core.RabbitTemplate;
+import org.springframework.beans.BeanUtils;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.ObjectUtils;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.*;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.dtos.community.ComActEasyPhotoCommentDTO;
+import com.panzhihua.common.model.dtos.community.ComActEasyPhotoCommentUserDTO;
+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.EldersAuthFeedbackAddDTO;
+import com.panzhihua.common.model.dtos.community.GrantRewardDTO;
+import com.panzhihua.common.model.dtos.community.PageComActDTO;
+import com.panzhihua.common.model.dtos.community.PageComActEasyPhotoCommentDTO;
+import com.panzhihua.common.model.dtos.community.PageEldersAuthDTO;
+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.easyPhoto.ExportEasyPhotoDTO;
+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.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;
+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.ComActVO;
+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.ComMngVolunteerMngAppletsVO;
+import com.panzhihua.common.model.vos.community.ComMngVolunteerMngVO;
+import com.panzhihua.common.model.vos.community.EldersAuthDetailsVO;
+import com.panzhihua.common.model.vos.community.EldersAuthVO;
+import com.panzhihua.common.model.vos.community.ResetComActMessageVO;
+import com.panzhihua.common.model.vos.community.SignactivityVO;
+import com.panzhihua.common.model.vos.community.TodoEventsVO;
+import com.panzhihua.common.model.vos.community.questnaire.EditComActQuestnaireVo;
+import com.panzhihua.common.model.vos.community.questnaire.QuestnaireVO;
+import com.panzhihua.common.model.vos.community.questnaire.UsersAnswerQuestnaireVO;
+import com.panzhihua.common.model.vos.user.ComMngFamilyInfoVO;
+import com.panzhihua.common.model.vos.user.SysUserNoticeVO;
+import com.panzhihua.common.model.vos.user.UserPhoneVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.AgeUtils;
+import com.panzhihua.common.utlis.ClazzUtils;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.IdCard;
+import com.panzhihua.common.utlis.WxUtil;
+import com.panzhihua.common.utlis.WxXCXTempSend;
+import com.panzhihua.service_community.dao.ComActActSignDAO;
+import com.panzhihua.service_community.dao.ComEldersAuthHistoryRecordMapper;
+import com.panzhihua.service_community.dao.ComMngPopulationDAO;
+
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.IdcardUtil;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 社区活动
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 16:02
+ **/
+@Slf4j
+@RestController
+@RequestMapping("/")
+public class CommunityApi extends BaseController {
+    @Resource
+    public ComMngPopulationDAO comMngPopulationDAO;
+    @Resource
+    public ComEldersAuthUserService comEldersAuthUserService;
+    @Resource
+    private ComActActivityService comActActivityService;
+    @Resource
+    private ComActActPrizeService comActActPrizeService;
+    @Resource
+    private ComActDynService comActDynService;
+    @Resource
+    private ComActMicroWishService comActMicroWishService;
+    @Resource
+    private ComActEasyPhotoService comActEasyPhotoService;
+    @Resource
+    private ComActService comActService;
+    @Resource
+    private ComMngStructHouseService comMngStructHouseService;
+    @Resource
+    private ComMngStructAreaService comMngStructAreaService;
+    @Resource
+    private ComMngStructOtherBuildService comMngStructOtherBuildService;
+    @Resource
+    private ComMngVolunteerMngService comMngVolunteerMngService;
+    @Resource
+    private ComMngStructAreaDistrictService comMngStructAreaDistrictService;
+    @Resource
+    private ComActMessageService comActMessageService;
+    @Resource
+    private ComActQuestnaireService comActQuestnaireService;
+    @Resource
+    private UserService userService;
+    @Resource
+    private EldersAuthService eldersAuthService;
+    @Resource
+    private ComActActSignDAO comActActSignDAO;
+    @Resource
+    private ComEldersAuthHistoryRecordMapper comEldersAuthHistoryRecordMapper;
+    @Resource
+    private ComActEasyPhotoActivityService comActEasyPhotoActivityService;
+    @Resource
+    private ComActActEvaluateService comActActEvaluateService;
+    @Resource
+    private ComEldersAuthElderlyService comEldersAuthElderlyService;
+    @Resource
+    private ComActMicroWishOperationRecordService wishOperationRecordService;
+    @Resource
+    private ComActActEvaluateDAO comActActEvaluateDAO;
+    @Resource
+    private ComActActivityInviteService comActActivityInviteService;
+    @Resource
+    private RabbitTemplate rabbitTemplate;
+    @Resource
+    private AutomessageSysUserService automessageSysUserService;
+
+    /**
+     * 新增社区活动
+     *
+     * @param comActActivityVO
+     *            新增信息
+     * @return 新增结果
+     */
+    @PostMapping("addactivity")
+    @Transactional(rollbackFor = Exception.class)
+    public R addActivity(@RequestBody ComActActivityVO comActActivityVO) {
+        R r = comActActivityService.addActivity(comActActivityVO);
+        boolean ok = R.isOk(r);
+        if (ok) {
+            Long activityId = (Long)r.getData();
+            Integer hasPrize = comActActivityVO.getHasPrize();
+            if (hasPrize.intValue() > 0) {
+                List<ComActActPrizeVO> comActActPrizeVOList = comActActivityVO.getComActActPrizeVOList();
+                if (!ObjectUtils.isEmpty(comActActPrizeVOList)) {
+                    List<ComActActPrizeDO> comActActPrizeDOS = new ArrayList<>();
+                    comActActPrizeVOList.forEach(comActActPrizeVO -> {
+                        ComActActPrizeDO comActActPrizeDO = new ComActActPrizeDO();
+                        BeanUtils.copyProperties(comActActPrizeVO, comActActPrizeDO);
+                        comActActPrizeDO.setActivityId(activityId);
+                        comActActPrizeDOS.add(comActActPrizeDO);
+                    });
+                    boolean saveBatch = comActActPrizeService.saveBatch(comActActPrizeDOS);
+                    if (!saveBatch) {
+                        return R.fail("保存奖品失败");
+                    }
+                }
+
+            }
+        } else {
+            return R.fail();
+        }
+        return R.ok();
+    }
+
+    /**
+     * 编辑社区活动
+     *
+     * @param comActActivityVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("putactivity")
+    @Transactional(rollbackFor = Exception.class)
+    public R putActivity(@RequestBody ComActActivityVO comActActivityVO) {
+        R r = comActActivityService.putActivity(comActActivityVO);
+        List<ComActActPrizeVO> comActActPrizeVOList = comActActivityVO.getComActActPrizeVOList();
+        boolean ok = R.isOk(r);
+        if (ok) {
+            Integer hasPrize = comActActivityVO.getHasPrize();
+            Long actActivityVOId = comActActivityVO.getId();
+            if (!ObjectUtils.isEmpty(comActActPrizeVOList) && hasPrize.intValue() == 1) {
+                comActActPrizeService.remove(
+                    new QueryWrapper<ComActActPrizeDO>().lambda().eq(ComActActPrizeDO::getActivityId, actActivityVOId));
+                if (!ObjectUtils.isEmpty(comActActPrizeVOList)) {
+                    List<ComActActPrizeDO> comActActPrizeDOS = new ArrayList<>();
+                    comActActPrizeVOList.forEach(comActActPrizeVO -> {
+                        ComActActPrizeDO comActActPrizeDO = new ComActActPrizeDO();
+                        BeanUtils.copyProperties(comActActPrizeVO, comActActPrizeDO);
+                        comActActPrizeDO.setActivityId(actActivityVOId);
+                        comActActPrizeDOS.add(comActActPrizeDO);
+                    });
+                    boolean saveBatch = comActActPrizeService.saveBatch(comActActPrizeDOS);
+                    if (!saveBatch) {
+                        return R.fail("保存奖品失败");
+                    }
+                }
+            } else if (hasPrize.intValue() == 0) {
+                boolean remove = comActActPrizeService.remove(
+                    new QueryWrapper<ComActActPrizeDO>().lambda().eq(ComActActPrizeDO::getActivityId, actActivityVOId));
+                log.info("删除社区活动奖品结果【{}】,社区活动id【{}】", remove, actActivityVOId);
+            }
+        }
+        return r;
+    }
+
+    /**
+     * 删除社区活动
+     *
+     * @param comActActivityVO
+     *            活动主键
+     * @return 删除结果
+     */
+    @PostMapping("deleteactivity")
+    public R deleteActivity(@RequestBody ComActActivityVO comActActivityVO) {
+        boolean remove = comActActivityService.removeById(comActActivityVO.getId());
+        if (remove) {
+            comActActPrizeService.remove(new QueryWrapper<ComActActPrizeDO>().lambda()
+                .eq(ComActActPrizeDO::getActivityId, comActActivityVO.getId()));
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 分页查询社区活动
+     *
+     * @param comActActivityVO
+     *            查询参数
+     * @return 分页集合
+     */
+    @PostMapping("pageactivity")
+    public R pageActivity(@RequestBody ComActActivityVO comActActivityVO) {
+        R r = comActActivityService.pageActivity(comActActivityVO);
+        if (R.isOk(r)) {
+            Page<ComActActivityVO> page = (Page<ComActActivityVO>)r.getData();
+            List<ComActActivityVO> content = page.getRecords();
+            if (!ObjectUtils.isEmpty(content)) {
+                content.forEach(comActActivityVO1 -> {
+                    List<ComActActPrizeVO> comActActPrizeVOList = new ArrayList<>();
+                    Long id = comActActivityVO1.getId();
+                    List<ComActActPrizeDO> list = comActActPrizeService
+                        .list(new QueryWrapper<ComActActPrizeDO>().lambda().eq(ComActActPrizeDO::getActivityId, id));
+                    if (!ObjectUtils.isEmpty(list)) {
+                        list.forEach(comActActPrizeDO -> {
+                            ComActActPrizeVO comActActPrizeVO = new ComActActPrizeVO();
+                            BeanUtils.copyProperties(comActActPrizeDO, comActActPrizeVO);
+                            comActActPrizeVOList.add(comActActPrizeVO);
+                        });
+                    }
+                    comActActivityVO1.setComActActPrizeVOList(comActActPrizeVOList);
+                    Integer volunteerMax = comActActivityVO1.getVolunteerMax();
+                    if(comActActivityVO1.getType()==null){
+                        if (volunteerMax.intValue() != 0) {
+                            comActActivityVO1.setType(1);
+                        } else {
+                            comActActivityVO1.setType(2);
+                        }
+                    }
+                    fillActivitySignList(id, comActActivityVO1);
+                });
+                page.setRecords(content);
+            }
+
+        }
+        return r;
+    }
+
+    /**
+     * 社区后台分页查询社区活动
+     *
+     * @param comActActivityVO
+     *            查询参数
+     * @return 返回结果
+     */
+    @PostMapping("pageactivitycommunityback")
+    public R pageActivityCommunityBack(@RequestBody ComActActivityVO comActActivityVO) {
+        return comActActivityService.pageActivityCommunityBack(comActActivityVO);
+    }
+
+    /**
+     * 发布活动
+     *
+     * @param comActActivityVO
+     *            主键id 发布时间
+     * @return 发布结果
+     */
+    @PostMapping("releaseactivity")
+    public R releaseActivity(@RequestBody ComActActivityVO comActActivityVO) {
+        return comActActivityService.releaseActivity(comActActivityVO);
+    }
+
+    /**
+     * 取消活动
+     *
+     * @param comActActivityVO
+     *            取消原因
+     * @return 取消结果
+     */
+    @PostMapping("cancelactivity")
+    public R cancelActivity(@RequestBody ComActActivityVO comActActivityVO) {
+        return comActActivityService.cancelActivity(comActActivityVO);
+    }
+
+    /**
+     * 活动详情
+     *
+     * @param id
+     *            活动id
+     * @return 详情
+     */
+    @PostMapping("detailactivity")
+    public R detailActivity(@RequestParam("id") Long id,
+        @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("活动不存在");
+        }
+        //活动奖品
+        List<ComActActPrizeDO> comActActPrizeDOS = comActActPrizeService
+            .list(new QueryWrapper<ComActActPrizeDO>().lambda().eq(ComActActPrizeDO::getActivityId, id));
+        if (!ObjectUtils.isEmpty(comActActPrizeDOS)) {
+            List<ComActActPrizeVO> comActActPrizeVOS = new ArrayList<>();
+            comActActPrizeDOS.forEach(comActActPrizeDO -> {
+                ComActActPrizeVO comActActPrizeVO = new ComActActPrizeVO();
+                BeanUtils.copyProperties(comActActPrizeDO, comActActPrizeVO);
+                comActActPrizeVOS.add(comActActPrizeVO);
+            });
+            comActActivityVO.setComActActPrizeVOList(comActActPrizeVOS);
+        }
+        //
+        //活动评价
+        IPage<ComActActEvaluateVO> comActActEvaluatePage = comActActEvaluateDAO.getEvaluateListPage(new Page(pageNum,pageSize),id);
+        comActActivityVO.setComActActEvaluateVOList(comActActEvaluatePage.getRecords());
+        //活动评价总数
+        comActActivityVO.setEvaluateAmount(comActActEvaluatePage.getTotal());
+        List<ComActActEvaluateDO> comActActEvaluateList = comActActEvaluateDAO
+                .selectList(new QueryWrapper<ComActActEvaluateDO>().lambda().eq(ComActActEvaluateDO::getActivityId, id));
+        if (comActActEvaluateList != null && comActActEvaluateList.size() > 0) {
+            BigDecimal starNum = BigDecimal.ZERO;
+            //总星级
+            for (ComActActEvaluateDO evaluate:comActActEvaluateList) {
+                starNum = starNum.add(BigDecimal.valueOf(evaluate.getStarLevel()==null?0:evaluate.getStarLevel()));
+            }
+            //评分星级(如果无评分默认5分)=总星级/总评价人数
+            if(starNum.compareTo(BigDecimal.ZERO) == 0){
+                comActActivityVO.setEvaluateLevel(BigDecimal.valueOf(5));
+            }else{
+                comActActivityVO.setEvaluateLevel(starNum.divide(BigDecimal.valueOf(comActActEvaluateList.size()),2, RoundingMode.HALF_UP));
+            }
+        }else{
+            comActActivityVO.setEvaluateLevel(BigDecimal.valueOf(5));
+        }
+        //当前用户对活动的评分
+        ComActActEvaluateVO userActEvaluateVO = comActActEvaluateDAO.getEvaluateListByUserId(id,userId);
+        if(userActEvaluateVO != null){
+            comActActivityVO.setMyRating(userActEvaluateVO.getStarLevel());
+        }
+        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(activityId);
+        activitySignVO.setStatus(1);
+        R r = comActActivityService.listActivitySigns(activitySignVO);
+        if (R.isOk(r)) {
+            List<ActivitySignVO> activitySignVOS =
+                JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ActivitySignVO.class);
+            if (!ObjectUtils.isEmpty(activitySignVOS)) {
+                for (ActivitySignVO signVO : activitySignVOS) {
+                    if (StringUtils.isEmpty(signVO.getName())) {
+                        signVO.setName(signVO.getNickName());
+                    }
+                }
+                List<ActivitySignVO> collect = activitySignVOS.stream()
+                    .filter(activitySignVO1 -> activitySignVO1.getSignIdentity() == 3).collect(toList());
+                if (!ObjectUtils.isEmpty(collect)) {
+                    int size = collect.size();
+                    if (size >= 6) {
+                        comActActivityVO.setActivityVolunteerList(collect.subList(0, 6));
+                    } else {
+                        comActActivityVO.setActivityVolunteerList(collect);
+                    }
+                }
+                List<ActivitySignVO> collect1 = activitySignVOS.stream()
+                    .filter(activitySignVO1 -> activitySignVO1.getSignIdentity() == 1).collect(toList());
+                if (!ObjectUtils.isEmpty(collect1)) {
+                    int size = collect1.size();
+                    if (size >= 6) {
+                        comActActivityVO.setActivitySignVOList(collect1.subList(0, 6));
+                    } else {
+                        comActActivityVO.setActivitySignVOList(collect1);
+                    }
+                }
+                List<ActivitySignVO> collect2 = activitySignVOS.stream()
+                        .filter(activitySignVO1 -> activitySignVO1.getSignIdentity() == 2).collect(toList());
+                if (!ObjectUtils.isEmpty(collect2)) {
+                    int size = collect2.size();
+                    if (size >= 6) {
+                        comActActivityVO.setActivityPbList(collect2.subList(0, 6));
+                    } else {
+                        comActActivityVO.setActivityPbList(collect2);
+                    }
+                }
+            }
+
+        }
+    }
+
+    /**
+     * 活动签到
+     *
+     * @param comActActRegistVO 请求参数
+     * @return 签到结果
+     */
+    @PostMapping("activity/sign-in")
+    public R activitySignIn(@RequestBody ComActActRegistVO comActActRegistVO) {
+        return comActActivityService.activitySignIn(comActActRegistVO);
+    }
+
+    /**
+     * 用户签到列表
+     *
+     * @param userId 用户id
+     * @return 用户签到记录列表
+     */
+    @GetMapping("/sign-in/user/list")
+    public R listSignInActivity(@RequestParam("userId") Long userId) {
+        return comActActivityService.listSignInActivity(userId);
+    }
+
+    /**
+     * 社区活动评价
+     *
+     * @param comActActEvaluateVO 社区评价VO
+     * @return 评价结果
+     */
+    @PostMapping("activity/evaluate")
+    public R activityEvaluate(@RequestBody ComActActEvaluateVO comActActEvaluateVO) {
+        return comActActEvaluateService.activityEvaluate(comActActEvaluateVO);
+    }
+
+    /**
+     * 用户评价列表
+     *
+     * @param userId 用户id
+     * @return 当前用户对所有活动的评价列表
+     */
+    @GetMapping("/evaluate/user/list")
+    public R listEvaluate(@RequestParam("userId") Long userId) {
+        return comActActEvaluateService.listEvaluate(userId);
+    }
+
+    /**
+     * 分页活动报名名单
+     *
+     * @param activitySignVO
+     *            查询参数
+     * @return 报名人员集合
+     */
+    @PostMapping("listactivitysign")
+    public R listActivitySign(@RequestBody ActivitySignVO activitySignVO) {
+        return comActActivityService.listActivitySign(activitySignVO);
+    }
+
+    /**
+     * 活动报名名单
+     *
+     * @param activitySignVO
+     *            查询参数
+     * @return 报名人员集合
+     */
+    @PostMapping("listactivitysigns")
+    public R listActivitySigns(@RequestBody ActivitySignVO activitySignVO) {
+        return comActActivityService.listActivitySigns(activitySignVO);
+    }
+
+    /**
+     * description  getSignLists  查询活动报名名单
+     * @param    activitySignVO  查询参数
+     * @return    R   查询结果
+     * @author txb
+     * @date 2021/8/24 14:03
+     */
+    @PostMapping("activity/sign/getList")
+    public R getSignLists(@RequestBody ActivitySignVO activitySignVO){
+        return comActActivityService.getSignLists(activitySignVO);
+    }
+
+    /**
+     * description  listActivityRegists  分页查询活动评价
+     * @param    comActActEvaluateVO  活动评价vo
+     * @return    R   分页查询结果
+     * @author txb
+     * @date 2021/8/24 14:03
+     */
+    @PostMapping("activity/evaluate/page")
+    public R pageActivityEvaluates(@RequestBody ComActActEvaluateVO comActActEvaluateVO) {
+        return comActActivityService.pageActivityEvaluates(comActActEvaluateVO);
+    }
+
+    /**
+     * description  getEvaluateLists  查询活动评价
+     * @param    comActActEvaluateVO  查询参数
+     * @return    R   查询结果
+     * @author txb
+     * @date 2021/8/24 14:03
+     */
+    @PostMapping("activity/evaluate/getList")
+    public R getEvaluateLists(@RequestBody ComActActEvaluateVO comActActEvaluateVO){
+        return comActActivityService.getEvaluateLists(comActActEvaluateVO);
+    }
+
+    /**
+     * description  pageActivityRegists  分页查询活动签到
+     * @param    comActActRegistVO  活动签到vo
+     * @return    R   分页查询结果
+     * @author txb
+     * @date 2021/8/24 14:03
+     */
+    @PostMapping("activity/regist/page")
+    public R pageActivityRegists(@RequestBody ComActActRegistVO comActActRegistVO) {
+        return comActActivityService.pageActivityRegists(comActActRegistVO);
+    }
+
+    /**
+     * description  getRegistLists  查询活动签到
+     * @param    comActActRegistVO  查询参数
+     * @return    R   查询结果
+     * @author txb
+     * @date 2021/8/25 9:33
+     */
+    @PostMapping("activity/regist/getList")
+    public R getRegistLists(@RequestBody ComActActRegistVO comActActRegistVO){
+        return comActActivityService.getRegistLists(comActActRegistVO);
+    }
+
+    /**
+     * description  getRegistLists  查询活动未签到
+     * @param    comActActRegistVO  查询参数
+     * @return    R   查询结果
+     * @author txb
+     * @date 2021/8/25 9:33
+     */
+    @PostMapping("activity/noRegist/getList")
+    public R getNoRegistLists(@RequestBody ComActActRegistVO comActActRegistVO){
+        return comActActivityService.getNoRegistLists(comActActRegistVO);
+    }
+
+    /**
+     * description  activityStagistics  活动数据统计
+     * @param activityId 活动id
+     * @return    R   统计结果
+     * @author txb
+     * @date 2021/8/25 13:33
+     */
+    @GetMapping("activity/statistics")
+    public R activityStatistics(@RequestParam("activityId") Long activityId){
+        return comActActivityService.activityStatistics(activityId);
+    }
+
+    /**
+     * 获取活动历史封面  getPictureList
+     * @param userId 用户id
+     * @return    R   统计结果
+     * @author txb
+     * @date 2021/8/27 13:33
+     */
+    @GetMapping("/activity/picture/getList")
+    public R getPictureList(@RequestParam("userId") Long userId){
+        return comActActivityService.getPictureList(userId);
+    }
+
+    /**
+     * 获取系统预置图库  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
+     *            新增信息
+     * @return 新增结果
+     */
+    @PostMapping("adddynamic")
+    public R addDynamic(@RequestBody ComActDynVO comActDynVO) {
+
+        if(comActDynVO==null)
+        {
+            return R.fail("参数不能为空");
+        }
+
+        if(comActDynVO.getCommunityList()!=null && comActDynVO.getCommunityList().size()>0 )
+        {
+            for(String communityId:comActDynVO.getCommunityList())
+            {
+                ComActDynDO comActDynDO = new ComActDynDO();
+                BeanUtils.copyProperties(comActDynVO, comActDynDO);
+
+                comActDynDO.setCommunityId(communityId);
+
+                switch (comActDynVO.getType())
+                {
+                    //74
+                    case "党务公开":
+                        comActDynDO.setType("74");
+                        break;
+                    //75
+                    case "服务公开":
+                        comActDynDO.setType("75");
+                        break;
+                    //77
+                    case "财务公开":
+                        comActDynDO.setType("77");
+                        break;
+                    case "项目公开":
+                        comActDynDO.setType("1559820224499318786");
+                        break;
+                    //
+                    case "资金公开":
+                    case "资产公开":
+                    case "资源公开":
+                    case "村集体经济组织项目":
+                        comActDynDO.setType(comActDynService.getTypeId(communityId,comActDynVO.getType()));
+                        break;
+                }
+
+                if(StringUtils.isEmpty(comActDynVO.getType()))
+                {
+                    return R.fail("分类选择错误");
+                }
+
+
+                boolean save = comActDynService.save(comActDynDO);
+                if (save) {
+                    if(comActDynVO.getCategory()!=null&&comActDynVO.getCategory()==4){
+                        comActDynVO.setId(comActDynDO.getId());
+                        comActDynVO.setCommunityId(communityId);
+                        rabbitTemplate.convertAndSend("huacheng.acid.message.exchange", "huacheng.acid.message.key", comActDynVO);
+                    }
+                    // 最多只能设置三条置顶状态,后边设置会取消先前设置的置顶
+                    Integer isTopping = comActDynVO.getIsTopping();
+                    boolean b = isTopping.intValue() == 1;
+                    if (b) {
+                        List<ComActDynDO> list = comActDynService.list(new QueryWrapper<ComActDynDO>().lambda()
+                                .eq(ComActDynDO::getIsTopping, 1).eq(ComActDynDO::getCommunityId, communityId));
+                        if (!ObjectUtils.isEmpty(list)) {
+                            int size = list.size();
+                            if (size == 4) {
+                                List<ComActDynDO> collect = list.stream().sorted(Comparator.comparing(ComActDynDO::getCreateAt))
+                                        .collect(toList());
+                                ComActDynDO comActDynDO1 = collect.get(0);
+                                comActDynDO1.setIsTopping(0);
+                                boolean update = comActDynService.updateById(comActDynDO1);
+                                if (!update) {
+                                    return R.fail("修改置顶状态失败");
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+            return R.ok();
+
+//            ComActDynDO comActDynDO = new ComActDynDO();
+//            BeanUtils.copyProperties(comActDynVO, comActDynDO);
+//
+//            boolean save = comActDynService.save(comActDynDO);
+//            if (save) {
+//                if(comActDynVO.getCategory()!=null&&comActDynVO.getCategory()==4){
+//                    comActDynVO.setId(comActDynDO.getId());
+//                    rabbitTemplate.convertAndSend("huacheng.acid.message.exchange", "huacheng.acid.message.key", comActDynVO);
+//                }
+//                // 最多只能设置三条置顶状态,后边设置会取消先前设置的置顶
+//                Integer isTopping = comActDynVO.getIsTopping();
+//                boolean b = isTopping.intValue() == 1;
+//                if (b) {
+//                    List<ComActDynDO> list = comActDynService.list(new QueryWrapper<ComActDynDO>().lambda()
+//                            .eq(ComActDynDO::getIsTopping, 1).eq(ComActDynDO::getCommunityId, comActDynVO.getCommunityId()));
+//                    if (!ObjectUtils.isEmpty(list)) {
+//                        int size = list.size();
+//                        if (size == 4) {
+//                            List<ComActDynDO> collect = list.stream().sorted(Comparator.comparing(ComActDynDO::getCreateAt))
+//                                    .collect(toList());
+//                            ComActDynDO comActDynDO1 = collect.get(0);
+//                            comActDynDO1.setIsTopping(0);
+//                            boolean update = comActDynService.updateById(comActDynDO1);
+//                            if (!update) {
+//                                return R.fail("修改置顶状态失败");
+//                            }
+//                        }
+//                    }
+//                }
+//                return R.ok();
+//            }
+
+        }
+        else
+        {
+            ComActDynDO comActDynDO = new ComActDynDO();
+            BeanUtils.copyProperties(comActDynVO, comActDynDO);
+
+            comActDynDO.setCommunityId(comActDynVO.getCommunityId());
+            boolean save = comActDynService.save(comActDynDO);
+            if (save) {
+                if(comActDynVO.getCategory()!=null&&comActDynVO.getCategory()==4){
+                    comActDynVO.setId(comActDynVO.getId());
+                    comActDynVO.setCommunityId(comActDynVO.getCommunityId());
+                    rabbitTemplate.convertAndSend("huacheng.acid.message.exchange", "huacheng.acid.message.key", comActDynVO);
+                }
+                // 最多只能设置三条置顶状态,后边设置会取消先前设置的置顶
+                Integer isTopping = comActDynVO.getIsTopping();
+                boolean b = isTopping.intValue() == 1;
+                if (b) {
+                    List<ComActDynDO> list = comActDynService.list(new QueryWrapper<ComActDynDO>().lambda()
+                            .eq(ComActDynDO::getIsTopping, 1).eq(ComActDynDO::getCommunityId, comActDynVO.getCommunityId()));
+                    if (!ObjectUtils.isEmpty(list)) {
+                        int size = list.size();
+                        if (size == 4) {
+                            List<ComActDynDO> collect = list.stream().sorted(Comparator.comparing(ComActDynDO::getCreateAt))
+                                    .collect(toList());
+                            ComActDynDO comActDynDO1 = collect.get(0);
+                            comActDynDO1.setIsTopping(0);
+                            boolean update = comActDynService.updateById(comActDynDO1);
+                            if (!update) {
+                                return R.fail("修改置顶状态失败");
+                            }
+                        }
+                    }
+                }
+            }
+            return R.ok();
+        }
+    }
+
+    /**
+     * 编辑社区动态
+     *
+     * @param comActDynVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("putdynamic")
+    public R putDynamic(@RequestBody ComActDynVO comActDynVO) {
+        ComActDynDO comActDynDO = comActDynService.getById(comActDynVO.getId());
+        if (comActDynDO == null) {
+            return R.fail("未查到社区动态记录");
+        }
+        // Long id = comActDynVO.getId();
+        Integer isTopping = comActDynVO.getIsTopping();
+        boolean b = isTopping.equals(1);
+        if (b) {
+            Integer status = comActDynDO.getStatus();
+            if (status.equals(0)) {
+                return R.fail("待发布的社区动态不可置顶");
+            }
+        }
+
+        // if(StringUtils.isEmpty(comActDynVO.getCover())){
+        // comActDynVO.setCover(comActDynDO.getCover());
+        // }
+        BeanUtils.copyProperties(comActDynVO, comActDynDO);
+
+        switch (comActDynVO.getType())
+        {
+            //74
+            case "党务公开":
+                comActDynDO.setType("74");
+                break;
+            //75
+            case "服务公开":
+                comActDynDO.setType("75");
+                break;
+            //77
+            case "财务公开":
+                comActDynDO.setType("77");
+                break;
+            case "项目公开":
+                comActDynDO.setType("1559820224499318786");
+                break;
+            //
+            case "资金公开":
+            case "资产公开":
+            case "资源公开":
+            case "村集体经济组织项目":
+                comActDynDO.setType(comActDynService.getTypeId(comActDynDO.getCommunityId(),comActDynVO.getType()));
+                break;
+        }
+
+        boolean update = comActDynService.updateById(comActDynDO);
+        if (update) {
+            // 最多只能设置三条置顶状态,后边设置会取消先前设置的置顶
+            if (b) {
+                List<ComActDynDO> list = comActDynService.list(new QueryWrapper<ComActDynDO>().lambda()
+                    .eq(ComActDynDO::getIsTopping, 1).eq(ComActDynDO::getCommunityId, comActDynVO.getCommunityId()));
+                if (!ObjectUtils.isEmpty(list)) {
+                    int size = list.size();
+                    if (size == 4) {
+                        List<ComActDynDO> collect = list.stream().sorted(Comparator.comparing(ComActDynDO::getUpdateAt))
+                            .collect(toList());
+                        ComActDynDO comActDynDO1 = collect.get(0);
+                        comActDynDO1.setIsTopping(0);
+                        boolean updateById = comActDynService.updateById(comActDynDO1);
+                        if (!updateById) {
+                            return R.fail("修改置顶状态失败");
+                        }
+                    }
+                }
+            }
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 删除社区动态
+     *
+     * @param comActDynVO
+     *            动态id
+     * @return 删除结果
+     */
+    @PostMapping("deletedynamic")
+    public R deleteDynamic(@RequestBody ComActDynVO comActDynVO) {
+        boolean b = comActDynService.removeById(comActDynVO.getId());
+        if (b) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 分页查询社区动态
+     *
+     * @param comActDynVO
+     *            查询参数
+     * @return 动态集合
+     */
+    @PostMapping("pagedynamic")
+    public R pageDynamic(@RequestBody ComActDynVO comActDynVO) {
+        return comActDynService.pageDynamic(comActDynVO);
+    }
+
+    /**
+     * 管理后台分页查询社区动态
+     *
+     * @param comActDynVO
+     *            查询参数
+     * @return 动态集合
+     */
+    @PostMapping("pagedynamicByAdmin")
+    public R pagedynamicByAdmin(@RequestBody ComActDynVO comActDynVO) {
+        return comActDynService.pageDynamicByAdmin(comActDynVO);
+    }
+
+    /**
+     * 社区动态详情
+     *
+     * @param id
+     *            动态id
+     * @return 详情
+     */
+    @PostMapping("detaildynamic")
+    public R detailDynamic(@RequestParam("id") Long id) {
+        return comActDynService.detailDynamic(id);
+    }
+
+    /**
+     * 分页查询随手拍
+     *
+     * @param comActEasyPhotoVO
+     *            查询参数
+     * @return 心愿列表
+     */
+    @PostMapping("pageeasyphoto")
+    public R pageEasyPhoto(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO) {
+        return comActEasyPhotoService.pageEasyPhoto(comActEasyPhotoVO);
+    }
+
+    /**
+     * 分页查询随手拍  浪潮专用
+     *
+     *            查询参数
+     * @return 心愿列表
+     */
+    @GetMapping("pageEasyPhotoAdminLC")
+    public R pageEasyPhotoAdminLC(@RequestParam("pageNum") Long pageNum,@RequestParam("pageSize") Long pageSize) {
+        return comActEasyPhotoService.pageEasyPhotoAdminLC(pageNum,pageSize);
+    }
+
+    /**
+     * 城管安排
+     *
+     * @param comActEasyPhotoVO
+     *            查询参数
+     * @return 心愿列表
+     */
+    @PostMapping("updatePageeasyphoto")
+    public R updatePageeasyphoto(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO) {
+        return comActEasyPhotoService.updatePageeasyphoto(comActEasyPhotoVO);
+    }
+
+    /**
+     * 城管导出
+     */
+    @PostMapping("exportEasyPhoto")
+    public R exportEasyPhoto(@RequestBody ExportEasyPhotoDTO exportEasyPhotoDTO) {
+        return comActEasyPhotoService.export(exportEasyPhotoDTO);
+    }
+
+    /**
+     * 随手拍详情-脱敏
+     *
+     * @param id
+     *            随手拍主键
+     * @param userId
+     *            登录用户
+     * @return 详情内容
+     */
+    @PostMapping("detaileasyphotodesensitize")
+    public R detailEasyPhotoDesensitize(@RequestParam("id") Long id, @RequestParam("userId") Long userId) {
+        return comActEasyPhotoService.detailEasyPhotoDesensitize(id, userId);
+    }
+
+    /**
+     * 随手拍详情
+     *
+     * @param id
+     *            随手拍主键
+     * @param userId
+     *            登录用户
+     * @return 详情内容
+     */
+    @PostMapping("detaileasyphoto")
+    public R detailEasyPhoto(@RequestParam("id") Long id, @RequestParam("userId") Long userId) {
+        return comActEasyPhotoService.detailEasyPhoto(id, userId);
+    }
+
+    /**
+     * 随手拍删除
+     *
+     * @param id
+     *            随手拍主键
+     * @param userId
+     *            登录用户
+     * @return 详情内容
+     */
+    @PostMapping("deleteEasyPhoto")
+    public R deleteEasyPhoto(@RequestParam("id") Long id, @RequestParam("userId") Long userId) {
+        ComActEasyPhotoDO comActEasyPhotoDO = comActEasyPhotoService.getBaseMapper().selectById(id);
+        if (comActEasyPhotoDO == null) {
+            return R.fail("随手拍不存在");
+        }
+        comActEasyPhotoDO.setDelTag(1);
+        int updateById = comActEasyPhotoService.getBaseMapper().updateById(comActEasyPhotoDO);
+        if (updateById == 1) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 分页查询微心愿
+     *
+     * @param comActMicroWishVO
+     *            查询参数
+     * @return 分页集合
+     */
+    @PostMapping("pagemicrowish")
+    public R pageMicroWish(@RequestBody ComActMicroWishVO comActMicroWishVO) {
+        return comActMicroWishService.pageMicroWish(comActMicroWishVO);
+    }
+
+    @PostMapping("pagemicrowish/applets")
+    public R pageMicroWishApplets(@RequestBody ComActMicroWishVO comActMicroWishVO) {
+        return comActMicroWishService.pageMicroWishApplets(comActMicroWishVO);
+    }
+
+    @PostMapping("pagemicrowish/appletsDesensitize")
+    public R pageMicroWishAppletsDesensitize(@RequestBody ComActMicroWishVO comActMicroWishVO) {
+        return comActMicroWishService.pageMicroWishAppletsDesensitize(comActMicroWishVO);
+    }
+
+    /**
+     * 心愿详情
+     *
+     * @param id
+     *            查询主键
+     * @param userId
+     *            登录用户id
+     * @return 心愿内容
+     */
+    @PostMapping("detailmicrowish")
+    public R detailMicroWish(@RequestParam("id") Long id, @RequestParam("userId") Long userId) {
+        return comActMicroWishService.detailMicroWish(id, userId);
+    }
+    /**
+     * 心愿详情 - 脱敏
+     *
+     * @param id
+     *            查询主键
+     * @param userId
+     *            登录用户id
+     * @return 心愿内容
+     */
+    @PostMapping("detailmicrowishdesensitize")
+    public R detailMicroWishDesensitize(@RequestParam("id") Long id, @RequestParam("userId") Long userId) {
+        return comActMicroWishService.detailMicroWishDesensitize(id, userId);
+    }
+
+    /**
+     * 审核、分配、反馈心愿
+     *
+     * @param comActMicroWishVO
+     *            具体操作
+     * @return 操作结果
+     */
+    @PostMapping("putlmicrowish")
+    public R putlMicroWish(@RequestBody ComActMicroWishVO comActMicroWishVO) {
+        return comActMicroWishService.putlMicroWish(comActMicroWishVO);
+    }
+
+    /**
+     * 分页展示我的所有活动 时间倒序排列
+     *
+     * @param comActActivityVO
+     *            分页参数
+     * @return 分页集合
+     */
+    @PostMapping("pagemyactivity")
+    public R pageMyActivity(@RequestBody ComActActivityVO comActActivityVO) {
+        return comActActivityService.pageMyActivity(comActActivityVO);
+    }
+
+    /**
+     * 报名/取消报名社区活动
+     *
+     * @param signactivityVO
+     *            报名参数
+     * @return 报名 取消报名 结果
+     */
+    @PostMapping("signactivity")
+    public R signActivity(@RequestBody SignactivityVO signactivityVO) {
+        return comActActivityService.signActivity(signactivityVO);
+    }
+
+    /**
+     * 上传随手拍
+     *
+     * @param comActEasyPhotoVO
+     *            上传数据
+     * @return 上传结果
+     */
+    @PostMapping("addeasyphoto")
+    public R addEasyPhoto(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO) {
+        return comActEasyPhotoService.addEasyPhoto(comActEasyPhotoVO);
+    }
+
+    /**
+     * 查询随手拍是否有活动
+     *
+     * @return 活动详情
+     */
+    @PostMapping("getEasyPhotoActivity")
+    public R getEasyPhotoActivity(@RequestParam("communityId") Long communityId) {
+        return comActEasyPhotoActivityService.getEasyPhotoActivity(communityId);
+    }
+
+    /**
+     * 发布微心愿
+     *
+     * @param comActMicroWishVO
+     *            发布内容
+     * @return 发布结果
+     */
+    @PostMapping("addmicrowish")
+    public R addMicroWish(@RequestBody ComActMicroWishVO comActMicroWishVO) {
+        ComActMicroWishDO comActMicroWishDO = new ComActMicroWishDO();
+        BeanUtils.copyProperties(comActMicroWishVO, comActMicroWishDO);
+        boolean save = comActMicroWishService.save(comActMicroWishDO);
+        if (save) {
+            wishOperationRecordService.addOperationRecord("用户提交微心愿",comActMicroWishVO.getSponsorId()
+                    ,comActMicroWishDO.getId(), ComActMicroWishOperationRecordDO.type.ytj,"用户提交微心愿",null);
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 点赞/取消点赞随手拍
+     *
+     * @param comActEasyPhotoVO
+     *            操作参数
+     * @return 操作结果
+     */
+    @PostMapping("puteasyphoto")
+    public R putEasyPhoto(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO) {
+        return comActEasyPhotoService.putEasyPhoto(comActEasyPhotoVO);
+    }
+
+    /**
+     * 点赞/取消点赞微心愿
+     *
+     * @param comActMicroWishVO
+     *            操作参数
+     * @return 操作结果
+     */
+    @PostMapping("putmicrowish")
+    public R putMicroWish(@RequestBody ComActMicroWishVO comActMicroWishVO) {
+        return comActMicroWishService.comActMicroWishVO(comActMicroWishVO);
+    }
+
+    /**
+     * 新增社区动态浏览记录
+     *
+     * @param id
+     *            动态主键
+     * @param userId
+     *            登录用户id
+     * @return 新增结果
+     */
+    @PostMapping("adddynamicuser")
+    public R addDynamicUser(@RequestParam("id") Long id, @RequestParam("userId") Long userId) {
+        return comActDynService.addDynamicUser(id, userId);
+    }
+
+    /**
+     * 审核反馈随手拍
+     *
+     * @param comActEasyPhotoVO
+     *            操作参数
+     * @return 操作结果
+     */
+    @PostMapping("puteasyphotostatus")
+    public R putEasypHotoStatus(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO) {
+        return comActEasyPhotoService.putEasypHotoStatus(comActEasyPhotoVO);
+    }
+
+    /**
+     * 城管随手拍统计
+     */
+    @PostMapping("/esayPhotoCount")
+    public R esayphotoCount(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO) {
+        return comActEasyPhotoService.easyPhotoCount(comActEasyPhotoVO);
+    }
+
+    /**
+     * 新增社区
+     *
+     * @param comActVO
+     *            社区信息
+     * @return 新增结果
+     */
+    @PostMapping("addcommunity")
+    R addCommunity(@RequestBody ComActVO comActVO) {
+        return comActService.addCommunity(comActVO);
+    }
+
+    /**
+     * 编辑社区
+     *
+     * @param comActVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("putCommunity")
+    public R putCommunity(@RequestBody ComActVO comActVO) {
+        return comActService.putCommunity(comActVO);
+    }
+
+    /**
+     * 房屋信息
+     *
+     * @param userId
+     *            用户id
+     * @return 房屋信息
+     */
+    @PostMapping("detailhouse")
+    public R detailHouse(@RequestParam("userId") Long userId) {
+        return comMngStructHouseService.detailHouse(userId);
+    }
+
+    /**
+     * 新增小区
+     *
+     * @param comMngStructAreaVO
+     *            小区信息
+     * @return 新增结果
+     */
+    @PostMapping("addarea")
+    R addArea(@RequestBody ComMngStructAreaVO comMngStructAreaVO) {
+        R r = comMngStructAreaService.addArea(comMngStructAreaVO);
+        if (R.isOk(r)) {
+            String areaCode = String.valueOf(r.getData());
+            comMngStructAreaVO.setAreaCode(areaCode);
+            R r1 = comMngStructHouseService.addHouseArea(comMngStructAreaVO);
+            return r1;
+        }
+        return r;
+    }
+
+    /**
+     * 分页查询小区
+     *
+     * @param comMngStructAreaVO
+     *            查询参数
+     * @return 分页结果
+     */
+    @PostMapping("pagearea")
+    public R pageArea(@RequestBody ComMngStructAreaVO comMngStructAreaVO) {
+        return comMngStructAreaService.pageArea(comMngStructAreaVO);
+    }
+
+    /**
+     * 编辑小区
+     *
+     * @param comMngStructAreaVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("putarea")
+    public R putArea(@RequestBody ComMngStructAreaVO comMngStructAreaVO) {
+        return comMngStructAreaService.putArea(comMngStructAreaVO);
+    }
+
+    /**
+     * 删除小区
+     *
+     * @param comMngStructAreaVO
+     *            地址编码
+     * @return 删除结果
+     */
+    @PostMapping("deletearea")
+    @Transactional(rollbackFor = Exception.class)
+    public R deleteArea(@RequestBody ComMngStructAreaVO comMngStructAreaVO) {
+        // 先删除小区小面所有房屋、删除用户和小区房屋的绑定关系
+        R r = comMngStructHouseService.batchDeleteHouse(comMngStructAreaVO);
+        if (R.isOk(r)) {
+            R r1 = comMngStructAreaService.deleteArea(comMngStructAreaVO);
+            if (!R.isOk(r1)) {
+                throw new RuntimeException("删除小区失败");
+            }
+        }
+        return r;
+    }
+
+    /**
+     * 小区批量建房
+     *
+     * @param batchhouseVO
+     *            建房参数
+     * @return 建房结果
+     */
+    @PostMapping("batchhouse")
+    public R batchHouse(@RequestBody BatchhouseVO batchhouseVO) {
+        R r = comMngStructHouseService.batchHouse(batchhouseVO);
+        if (R.isOk(r)) {
+            String areaCode = batchhouseVO.getAreaCode();
+            String ruleDoor = batchhouseVO.getRuleDoor();
+            String ruleConnector = batchhouseVO.getRuleConnector();
+            String ruleFloor = batchhouseVO.getRuleFloor();
+            ComMngStructAreaVO comMngStructAreaVO = new ComMngStructAreaVO();
+            comMngStructAreaVO.setRoleDoor(ruleDoor);
+            comMngStructAreaVO.setRoleFloor(ruleFloor);
+            comMngStructAreaVO.setRoleConnector(ruleConnector);
+            comMngStructAreaVO.setAreaCode(areaCode);
+            comMngStructAreaVO.setCommunityId(null);
+            comMngStructAreaVO.setIsAccumulation(null);
+            comMngStructAreaService.putArea(comMngStructAreaVO);
+        }
+        return r;
+    }
+
+    /**
+     * 展示下级建筑
+     *
+     * @param houseCode
+     *            房屋编号
+     * @return 下级建筑列表
+     */
+    @PostMapping("listsubordinatebuilding")
+    public R listSubordinatebuilding(@RequestParam("houseCode") String houseCode) {
+        return comMngStructHouseService.listSubordinatebuilding(houseCode);
+    }
+
+    /**
+     * 添加同级地址
+     *
+     * @param batchhouseVO
+     *            添加地址
+     * @return 添加结果
+     */
+    @PostMapping("addhouse")
+    public R addHouse(@RequestBody BatchhouseVO batchhouseVO) {
+        R r = comMngStructAreaService.selectAreaByAreaCode(batchhouseVO.getAreaCode());
+        if (R.isOk(r)) {
+            ComMngStructAreaDO comMngStructAreaDO = (ComMngStructAreaDO)r.getData();
+            try {
+                R r1 = comMngStructHouseService.addHouse(batchhouseVO, comMngStructAreaDO);
+                return r1;
+            } catch (Exception e) {
+                if (e.getMessage().contains("unique_house_name")) {
+                    return R.fail("房屋地址重复");
+                } else {
+                    log.error("添加同级地址失败【{}】", e.getMessage());
+                    return R.fail("添加房屋失败");
+                }
+            }
+
+        }
+        return r;
+    }
+
+    /**
+     * 编辑地址
+     *
+     * @param comMngStructHouseVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PutMapping("puthouse")
+    public R putHouse(@RequestBody ComMngStructHouseVO comMngStructHouseVO) {
+        return comMngStructHouseService.putHouse(comMngStructHouseVO);
+    }
+
+    /**
+     * 删除地址
+     *
+     * @param comMngStructHouseVO
+     *            删除指定地址和所有下级
+     * @return 删除结果
+     */
+    @PostMapping("deletehouse")
+    public R deleteHouse(@RequestBody ComMngStructHouseVO comMngStructHouseVO) {
+        return comMngStructHouseService.deleteHouse(comMngStructHouseVO);
+    }
+
+    /**
+     * 新增其他建筑
+     *
+     * @param comMngStructOtherBuildVO
+     *            建筑参数
+     * @return 新增结果
+     */
+    @PostMapping("addotherbuild")
+    public R addOtherbuild(@RequestBody ComMngStructOtherBuildVO comMngStructOtherBuildVO) {
+        return comMngStructOtherBuildService.addOtherbuild(comMngStructOtherBuildVO);
+    }
+
+    /**
+     * 查询所有建筑类型
+     *
+     * @return 类型列表
+     */
+    @PostMapping("listbuildtype")
+    public R listBuildType(@RequestParam("communityId")Long communityId) {
+        return comMngStructOtherBuildService.listBuildType(communityId);
+    }
+
+    /**
+     * 分页查询 其他建筑
+     *
+     * @param comMngStructOtherBuildVO
+     *            分页查询参数
+     * @return 查询结果
+     */
+    @PostMapping("pageotherbuild")
+    public R pageOtherBuild(@RequestBody ComMngStructOtherBuildVO comMngStructOtherBuildVO) {
+        return comMngStructOtherBuildService.pageOtherBuild(comMngStructOtherBuildVO);
+    }
+
+    /**
+     * 增加志愿者
+     *
+     * @param comMngVolunteerMngVO
+     *            志愿者信息
+     * @return 增加结果
+     */
+    @PostMapping("addvolunteer")
+    R addVolunteer(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO) {
+        Long submitUserId = comMngVolunteerMngVO.getSubmitUserId();
+        if (Objects.nonNull(submitUserId)) {
+            //获取小程序用户信息
+            R<LoginUserInfoVO> userInfoR = userService.getUserInfoByUserId(submitUserId.toString());
+            LoginUserInfoVO userInfo = userInfoR.getData();
+            if (Objects.nonNull(userInfo)) {
+                comMngVolunteerMngVO.setIdCard(userInfo.getIdCard());
+            }
+        }
+        return comMngVolunteerMngService.addVolunteer(comMngVolunteerMngVO);
+    }
+
+    /**
+     * 获取志愿者详情
+     *
+     * @param id
+     * @return
+     */
+    @GetMapping("getVolunteerById")
+    R getVolunteerById(@RequestParam("id") Long id) {
+        return comMngVolunteerMngService.getVolunteerById(id);
+    }
+
+    /**
+     * 删除志愿者
+     * 
+     * @param comMngVolunteerMngVO
+     *            手机号
+     * @return 删除结果
+     */
+    @PostMapping("deletevolunteer")
+    public R deleteVolunteer(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO) {
+        return comMngVolunteerMngService.deleteVolunteer(comMngVolunteerMngVO);
+    }
+
+    /**
+     * 编辑志愿者
+     * 
+     * @param comMngVolunteerMngVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("putvolunteer")
+    R putVolunteer(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO) {
+        return comMngVolunteerMngService.putVolunteer(comMngVolunteerMngVO);
+    }
+
+    /**
+     * 分页展示志愿者
+     * 
+     * @param comMngVolunteerMngVO
+     *            查询参数
+     * @return 分页集合返回
+     */
+    @PostMapping("pagevolunteer")
+    public R pageVolunteer(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO) {
+        return comMngVolunteerMngService.pageVolunteer(comMngVolunteerMngVO);
+    }
+
+    /**
+     * 分页展示志愿者审核
+     * 
+     * @param comMngVolunteerMngVO
+     *            查询参数
+     * @return 查询结果
+     */
+    @PostMapping("pagevolunteerexamine")
+    public R pageVolunteerExamine(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO) {
+        return comMngVolunteerMngService.pageVolunteerExamine(comMngVolunteerMngVO);
+    }
+
+    /**
+     * 志愿者审核详情
+     * 
+     * @param id
+     *            主键
+     * @return 详情
+     */
+    @PostMapping("detailvolunteerexamine")
+    public R detailVolunteerExamine(@RequestParam("id") Long id) {
+        return comMngVolunteerMngService.detailVolunteerExamine(id);
+    }
+
+    /**
+     * 志愿者审核
+     * 
+     * @param comMngVolunteerMngVO
+     *            审核操作
+     * @return 审核结果
+     */
+    @PostMapping("putvolunteerexamine")
+    public R putVolunteerExamine(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO) {
+        return comMngVolunteerMngService.putVolunteerExamine(comMngVolunteerMngVO);
+    }
+
+    /**
+     * 删除志愿者审核
+     * 
+     * @param comMngVolunteerMngVO
+     *            主键
+     * @return 删除结果
+     */
+    @PostMapping("deletevolunteerexamine")
+    public R deleteVolunteerExamine(@RequestBody ComMngVolunteerMngVO comMngVolunteerMngVO) {
+        return comMngVolunteerMngService.deleteVolunteerExamine(comMngVolunteerMngVO);
+    }
+
+    /**
+     * 查询区域
+     * 
+     * @param comActVO
+     *            登录人的经纬度、或者指定区域的社区
+     * @return 社区集合
+     */
+    @PostMapping("listcommunity")
+    public R listCommunity(@RequestBody ComActVO comActVO) {
+        return comActService.listCommunity(comActVO);
+    }
+
+    /**
+     * 用户修改手机号对应的志愿者手机号也要修改
+     * 
+     * @param userPhoneVO
+     *            新旧手机号
+     * @return 修改结果
+     */
+    @PostMapping("putvolunteerphone")
+    public R putVolunteerPhone(@RequestBody UserPhoneVO userPhoneVO) {
+        return comMngVolunteerMngService.putVolunteerPhone(userPhoneVO);
+    }
+
+    /**
+     * 房屋地址下拉列表
+     * 
+     * @param parentCode
+     *            父级编码
+     * @param areaId
+     *            小区id
+     * @return 下级列表
+     */
+    @PostMapping("listhouses")
+    public R listHouses(@RequestParam("parentCode") String parentCode, @RequestParam("areaId") Long areaId) {
+        if (ObjectUtils.isEmpty(parentCode)) {
+            R r = comMngStructAreaService.selectAreaById(areaId);
+            if (R.isOk(r)) {
+                parentCode = String.valueOf(r.getData());
+            } else {
+                return R.fail("用户没有绑定小区");
+            }
+        }
+        return comMngStructHouseService.putVolunteerPhone(parentCode);
+    }
+
+    /**
+     * 新增房屋
+     * 
+     * @param comMngStructHouseVO
+     *            房屋信息
+     * @return 新增结果
+     */
+    @PostMapping("addhouses")
+    public R addHouses(@RequestBody ComMngStructHouseVO comMngStructHouseVO) {
+        R r = comMngStructAreaService.selectAreaById(comMngStructHouseVO.getAreaId());
+        if (!R.isOk(r)) {
+            return R.fail("用户没有绑定小区");
+        }
+        String data = String.valueOf(r.getData());
+        comMngStructHouseVO.setAreaCode(data);
+        return comMngStructHouseService.addHouses(comMngStructHouseVO);
+    }
+
+    /**
+     * 查询小区
+     * 
+     * @param communityId
+     *            社区id
+     * @return 小区集合
+     */
+    @PostMapping("listarea")
+    public R listArea(@RequestParam("communityId") Long communityId) {
+        return comMngStructAreaService.listArea(communityId);
+    }
+
+    /**
+     * 用户参加的所有社区活动
+     * 
+     * @param userId
+     *            用户id
+     * @return 活动列表
+     */
+    @PostMapping("listactivity")
+    public R listActivity(@RequestParam("userId") Long userId,
+                          @RequestParam(value = "status", required = false) Integer status,
+                          @RequestParam(value = "type", required = false) Integer type) {
+        return comActActivityService.listActivity(userId, status,type);
+    }
+
+    /**
+     * 用户确认心愿
+     * 
+     * @param comActMicroWishVO
+     *            用户评价
+     * @return 确认结果
+     */
+    @PostMapping("putmicrowishconfirm")
+    R putMicroWishConfirm(@RequestBody ComActMicroWishVO comActMicroWishVO) {
+        return comActMicroWishService.putMicroWishConfirm(comActMicroWishVO);
+    }
+
+    /**
+     * 建筑类型
+     * 
+     * @param communityId
+     *            社区id
+     * @return 建筑集合
+     */
+    @PostMapping("listcommngstructbuildtype")
+    public R listComMngStructBuildType(@RequestParam("communityId") Long communityId) {
+        return comMngStructOtherBuildService.listComMngStructBuildType(communityId);
+    }
+
+    /**
+     * 增加删除建筑类型
+     * 
+     * @param systemmanagementConfigVO
+     *            操作内容
+     * @return 操作结果
+     */
+    @PostMapping("putcommngstructbuildtype")
+    public R putComMngStructBuildType(@RequestBody SystemmanagementConfigVO systemmanagementConfigVO) {
+        try {
+            R r = comMngStructOtherBuildService.putComMngStructBuildType(systemmanagementConfigVO);
+        } catch (ServiceException e) {
+            return R.fail(e.getMessage());
+        }
+        return R.ok();
+    }
+
+    /**
+     * 社区详情
+     * 
+     * @param communityId
+     *            社区id
+     * @return 社区详情
+     */
+    @PostMapping("detailcommunity")
+    public R detailCommunity(@RequestParam("communityId") Long communityId) {
+        return comActService.detailCommunity(communityId);
+    }
+
+    /**
+     * 小区详情
+     * 
+     * @param areaId
+     *            小区id
+     * @return 小区信息
+     */
+    @PostMapping("detailarea")
+    public R detailArea(@RequestParam("areaId") Long areaId) {
+        return comMngStructAreaService.detailArea(areaId);
+    }
+
+    /**
+     * 分页查询社区
+     * 
+     * @param pageComActDTO
+     *            查询参数
+     * @return 分页集合
+     */
+    @PostMapping("pagecommunity")
+    public R pageCommunity(@RequestBody PageComActDTO pageComActDTO) {
+        return comActService.pageCommunity(pageComActDTO);
+    }
+
+    /**
+     * 志愿者详情
+     * 
+     * @param id
+     *            主键
+     * @return 志愿者
+     */
+    @PostMapping("detailvolunteer")
+    public R detailVolunteer(@RequestParam("id") Long id) {
+        R r = comMngVolunteerMngService.detailVolunteer(id);
+        if (R.isOk(r)) {
+            ComMngVolunteerMngAppletsVO comMngVolunteerMngAppletsVO = (ComMngVolunteerMngAppletsVO)r.getData();
+            String phone = comMngVolunteerMngAppletsVO.getPhone();
+            List<ComActActivityVO> comActActivityVOS = comActActivityService.listActivityByPhone(phone);
+            comMngVolunteerMngAppletsVO.setComActActivityVOList(comActActivityVOS);
+            r.setData(comMngVolunteerMngAppletsVO);
+        }
+        return r;
+    }
+
+    /**
+     * 查询平台所有的社区
+     * 
+     * @return 社区集合 按照创建顺序倒序排列
+     */
+    @PostMapping("listcommunityall")
+    public R listCommunityAll(@RequestParam("areaCode") String areaCode) {
+        return comActService.listCommunityAll(areaCode);
+    }
+
+    /**
+     * 社区管理后台数据看板 代办事件
+     * 
+     * @param communityId
+     *            社区id
+     * @param userId
+     *            登录用户信息
+     * @return 代办事件列表
+     */
+    @PostMapping("indexdatacommunitybackstage")
+    public R indexDataCommunityBackstage(@RequestParam("communityId") Long communityId,
+        @RequestParam("userId") Long userId) {
+        List<TodoEventsVO> todoEventsVOS = new ArrayList<>();
+        List<TodoEventsVO> todoEventsVOS1 = comActEasyPhotoService.selectNeedToDo(communityId, userId);
+        List<TodoEventsVO> todoEventsVOS2 = comActMicroWishService.selectNeedToDo(communityId, userId);
+        List<TodoEventsVO> todoEventsVOS3 = comMngVolunteerMngService.selectNeedToDo(communityId, userId);
+
+        TodoEventsVO todoEventsVO = new TodoEventsVO();
+        todoEventsVO.setType(1);
+        todoEventsVO.setNum(todoEventsVOS1.size());
+        TodoEventsVO todoEventsVO1 = new TodoEventsVO();
+        todoEventsVO1.setType(2);
+        todoEventsVO1.setNum(todoEventsVOS2.size());
+        TodoEventsVO todoEventsVO2 = new TodoEventsVO();
+        todoEventsVO2.setType(4);
+        todoEventsVO2.setNum(todoEventsVOS3.size());
+        todoEventsVOS.add(todoEventsVO);
+        todoEventsVOS.add(todoEventsVO1);
+        todoEventsVOS.add(todoEventsVO2);
+        return R.ok(todoEventsVOS);
+    }
+
+    /**
+     * 删除社区
+     * 
+     * @param communityId
+     *            社区id
+     * @return 删除结果
+     */
+    @PostMapping("delectcommunity")
+    public R delectCommunity(@RequestParam("communityId") Long communityId) {
+        return comActService.delectCommunity(communityId);
+    }
+
+    /**
+     * 定时任务刷新社区动态置顶状态
+     * 
+     * @return 刷新结果
+     */
+    @PostMapping("timedtaskdynistopping")
+    public R timedTaskDynIstopping() {
+        return comActDynService.timedTaskDynIstopping();
+    }
+
+    /**
+     * 定时任务刷新社区动态发布状态
+     * 
+     * @return
+     */
+    @PostMapping("timedtaskdynstatus")
+    public R timedTaskDynStatus() {
+        return comActDynService.timedTaskDynStatus();
+    }
+
+    /**
+     * 定时任务查询所有要取消的社区活动
+     * 
+     * @return 社区活动集合
+     */
+    @PostMapping("timedtaskactactivity")
+    public R timedTaskActActivity() {
+        return comActActivityService.timedTaskActActivity();
+    }
+
+    /**
+     * 定时任务刷新社区活动的各个状态 除取消外
+     * 
+     * @return 更新结果
+     */
+    @PostMapping("timedtaskactactivityall")
+    R timedTaskActActivityAll() {
+        return comActActivityService.timedTaskActActivityAll();
+    }
+
+    /**
+     * 定时任务刷新微心愿的状态
+     * 
+     * @return 更新结果
+     */
+    @PostMapping("timedtaskactmicrowish")
+    R timedTaskActMicroWishAll() {
+        return comActMicroWishService.timedTaskActMicroWishAll();
+    }
+
+    /**
+     * 其他建筑详情
+     * 
+     * @param id
+     *            主键id
+     * @return 建筑内容
+     */
+    @PostMapping("detailotherbuild")
+    public R detailOtherbuild(@RequestParam("id") Long id) {
+        return comMngStructOtherBuildService.detailOtherbuild(id);
+    }
+
+    /**
+     * 编辑其他建筑
+     * 
+     * @param comMngStructOtherBuildVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("putotherbuild")
+    public R putOtherbuild(@RequestBody ComMngStructOtherBuildVO comMngStructOtherBuildVO) {
+        return comMngStructOtherBuildService.putOtherbuild(comMngStructOtherBuildVO);
+    }
+
+    /**
+     * 删除其他建筑
+     * 
+     * @param id
+     *            主键
+     * @return 删除结果
+     */
+    @PostMapping("deleteotherbuild")
+    public R deleteOtherbuild(@RequestParam("id") Long id) {
+        return comMngStructOtherBuildService.deleteOtherbuild(id);
+    }
+
+    /**
+     * 小程序分页查询随手拍
+     * 
+     * @param comActEasyPhotoVO
+     *            查询参数
+     * @return 返回结果
+     */
+    @PostMapping("pageeasyphotoapplets")
+    public R pageEasyPhotoApplets(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO) {
+        return comActEasyPhotoService.pageEasyPhotoApplets(comActEasyPhotoVO);
+    }
+
+
+    /**
+     * 小程序分页查询随手拍 脱敏
+     *
+     * @param comActEasyPhotoVO
+     *            查询参数
+     * @return 返回结果
+     */
+    @PostMapping("pageeasyphotoappletsdesensitize")
+    public R pageEasyPhotoAppletsDesensitize(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO) {
+        return comActEasyPhotoService.pageEasyPhotoAppletsDesensitize(comActEasyPhotoVO);
+    }
+
+    /**
+     * 随手拍评论分页查询
+     * 
+     * @param pageComActEasyPhotoCommentDTO
+     *            查询参数
+     * @return 查询结果
+     */
+    @PostMapping("pagecomacteasyphotocomment")
+    public R pageComActEasyPhotoComment(@RequestBody PageComActEasyPhotoCommentDTO pageComActEasyPhotoCommentDTO) {
+        return comActEasyPhotoService.pageComActEasyPhotoComment(pageComActEasyPhotoCommentDTO);
+    }
+
+    /**
+     * 随手拍评论分页查询 - 脱敏
+     *
+     * @param pageComActEasyPhotoCommentDTO
+     *            查询参数
+     * @return 查询结果
+     */
+    @PostMapping("pagecomacteasyphotocommentdesensitize")
+    public R pageComActEasyPhotoCommentDesensitize(@RequestBody PageComActEasyPhotoCommentDTO pageComActEasyPhotoCommentDTO) {
+        return comActEasyPhotoService.pageComActEasyPhotoCommentDesensitize(pageComActEasyPhotoCommentDTO);
+    }
+
+    /**
+     * 评论点赞/取消点赞
+     * 
+     * @param comActEasyPhotoCommentUserDTO
+     *            操作
+     * @return 操作结果
+     */
+    @PostMapping("commentsign")
+    public R commentSign(@RequestBody ComActEasyPhotoCommentUserDTO comActEasyPhotoCommentUserDTO) {
+        return comActEasyPhotoService.commentSign(comActEasyPhotoCommentUserDTO);
+    }
+
+    /**
+     * 随手拍--评论--新增评论
+     * 
+     * @param comActEasyPhotoCommentDTO
+     *            新增内容
+     * @return 新增结果
+     */
+    @PostMapping("addcomacteasyphotocomment")
+    public R addComActEasyPhotoComment(@RequestBody ComActEasyPhotoCommentDTO comActEasyPhotoCommentDTO) {
+        return comActEasyPhotoService.addComActEasyPhotoComment(comActEasyPhotoCommentDTO);
+    }
+
+    /**
+     * 查询城市下属所有地区列表
+     * 
+     * @param cityAdcode
+     *            城市地址编码
+     * @return 地区列表
+     */
+    @PostMapping("listareadistrict")
+    public R listAreaDistrict(@RequestParam("cityAdcode") Long cityAdcode) {
+        return comMngStructAreaDistrictService.listAreaDistrict(cityAdcode);
+    }
+
+    /**
+     * 首页图表数据汇总
+     * 
+     * @param communityId
+     *            社区id
+     * @return 图表数据 IndexDataVO
+     */
+    @PostMapping("indexdatacommunitybackstageechart")
+    public R indexDataCommunityBackstageEchart(@RequestParam("communityId") Long communityId) {
+        return comActActivityService.indexDataCommunityBackstageEchart(communityId);
+    }
+
+    /**
+     * 选择导入的小区
+     * 
+     * @param param
+     *            小区名字 模糊查询
+     * @param communityId
+     *            社区id
+     * @return 小区集合 ComMngStructAreaVO
+     */
+    @PostMapping("listareas")
+    public R listAreas(@RequestParam("param") String param, @RequestParam("communityId") Long communityId) {
+        return comMngStructAreaService.listAreas(param, communityId);
+    }
+
+    /**
+     * 检查小区是否已经批量设置过房屋并且返回小区房屋门号规则
+     * 
+     * @param id
+     *            小区id
+     * @return ComMngStructAreaVO
+     */
+    @PostMapping("checkAreaHouse")
+    public R checkAreaHouse(@RequestParam("id") Long id) {
+        return comMngStructAreaService.checkAreaHouse(id);
+    }
+
+    /**
+     * 新增留言
+     * 
+     * @param comActMessageVO
+     *            新增留言信息
+     * @return 发布结果
+     */
+    @PostMapping("addmessage")
+    public R addMessage(@RequestBody ComActMessageVO comActMessageVO) {
+        // 微信内容审核
+        return comActMessageService.addMessage(comActMessageVO);
+    }
+
+    /**
+     * 我发的留言
+     * 
+     * @return 结果集合
+     */
+    @PostMapping("pagemymessage")
+    public R pageMyMessage(@RequestBody ComActMessageVO comActMessageVO) {
+        return comActMessageService.pageMyMessageApplets(comActMessageVO);
+    }
+
+    /**
+     * 发给我的留言
+     * 
+     * @return 结果集合
+     */
+    @PostMapping("pagesendtomemessage")
+    public R pageSendToMessage(@RequestBody ComActMessageVO comActMessageVO) {
+        return comActMessageService.pageSendToMessageApplets(comActMessageVO);
+    }
+
+    /**
+     * 根据id查询留言集合
+     * 
+     * @return 结果集合
+     */
+    @PostMapping("pagemessagebyuser")
+    public R pageMessageByUser(@RequestBody ComActMessageVO comActMessageVO) {
+        return comActMessageService.pageMessageByUserApplets(comActMessageVO);
+    }
+
+    /**
+     * 社区留言
+     * 
+     * @return 结果集合
+     */
+    @PostMapping("pagemycommunitymessage")
+    public R pageMyCommunityMessage(@RequestBody ComActMessageVO comActMessageVO) {
+        return comActMessageService.pageMyCommunityMessageApplets(comActMessageVO);
+    }
+
+    /**
+     * 新增留言回复
+     * 
+     * @param comActMessageBackVO
+     *            新增留言回复信息
+     * @return 发布结果
+     */
+    @PostMapping("addmessageback")
+    public R addMessageBack(@RequestBody ComActMessageBackVO comActMessageBackVO) {
+        // 微信内容审核
+        return comActMessageService.addMessageBack(comActMessageBackVO);
+    }
+
+    @PostMapping("deletemessage")
+    public R deleteMessage(@RequestBody ComActMessageVO comActMessageVO) {
+        return comActMessageService.deleteMessage(comActMessageVO);
+    }
+
+    @PostMapping("resetmessagepublic")
+    public R resetMessagePublic(@RequestBody ResetComActMessageVO resetComActMessageVO) {
+        return comActMessageService.resetMessagePublic(resetComActMessageVO);
+    }
+
+    /**
+     * 留言详情
+     *
+     * @param id
+     *            主键
+     * @return 详情内容
+     */
+    @PostMapping("detailmessage")
+    public R detailMessage(@RequestParam("id") Long id) {
+        return comActMessageService.detailMessage(id);
+    }
+
+    /**
+     * 导出房屋信息
+     * 
+     * @param areaId
+     * @return
+     */
+    @PostMapping("house/export")
+    public R houseExport(@RequestParam("areaId") Long areaId) {
+        return comMngStructHouseService.houseExport(areaId);
+    }
+
+    /**
+     * 查看用户问卷调查详细
+     * 
+     * @param userId
+     *            用户ID
+     * @param questId
+     *            问卷ID
+     * @return 用户问卷调查详细
+     */
+    @GetMapping("questnaire/usersanswer")
+    public R answerInfoQuestnaire(@RequestParam("userId") Long userId, @RequestParam("questId") Long questId) {
+        return comActQuestnaireService.answerInfoQuestnaire(userId, questId);
+    }
+
+    /**
+     * 查看问卷调查详细
+     * 
+     * @param questId
+     *            问卷ID
+     * @return 用户问卷调查详细
+     */
+    @GetMapping("questnaire/view")
+    public R view(@RequestParam("userId") Long userId, @RequestParam("questId") Long questId) {
+        /**
+         * 根据用户身份分别返回 数据
+         */
+        /* 问卷参与者, 已提交问卷则返回问卷详细, 否则返回空的问卷 */
+        boolean isMember = true;// 默认情况下,可不做逻辑判断,直接查询返回用户答卷
+        if (isMember) {
+            return comActQuestnaireService.answerInfoQuestnaire(userId, questId);
+        } else {
+            /*非问卷参与者 返回问卷“预览” */
+            return comActQuestnaireService.infoQuestnaire(questId);
+        }
+    }
+
+    /**
+     * 小程序-问卷调查详情
+     * 
+     * @param userId
+     *            用户id
+     * @param questId
+     *            问卷id
+     * @return 问卷调查详情
+     */
+    @GetMapping("questnaire/view/detail")
+    public R viewDetail(@RequestParam("questId") Long questId, @RequestParam("userId") Long userId) {
+        return comActQuestnaireService.getQuesDetail(questId, userId);
+    }
+
+    /**
+     * 社区后台-查询问卷调查详情
+     * 
+     * @param questId
+     *            问卷id
+     * @return 问卷调查详情
+     */
+    @GetMapping("questnaire/admin/detail")
+    public R quesDetail(@RequestParam("questId") Long questId) {
+        return comActQuestnaireService.getQuesDetailAdmin(questId);
+    }
+
+    /**
+     * 新增社区问卷
+     * 
+     * @param questnaireVO
+     * @return
+     */
+    @PostMapping("questnaire/addquestnaire")
+    public R addQuestnaire(@RequestBody QuestnaireVO questnaireVO) {
+        return comActQuestnaireService.addQuestnaire(questnaireVO);
+    }
+
+    /**
+     * 小程序-社区问卷列表
+     * 
+     * @param pageQuestnaireDTO
+     *            请求参数
+     * @return 社区问卷列表
+     */
+    @PostMapping("questnaire/pagequestnaire")
+    public R pageQuestnaire(@RequestBody PageQuestnaireDTO pageQuestnaireDTO) {
+        return comActQuestnaireService.pageQuestnaire(pageQuestnaireDTO);
+    }
+
+    /**
+     * 社区后台-社区问卷列表
+     * 
+     * @param pageQuestnaireDTO
+     *            请求参数
+     * @return 社区问卷列表
+     */
+    @PostMapping("questnaire/admin/pagequestnaire")
+    public R pageQuestnaireAdmin(@RequestBody PageQuestnaireDTO pageQuestnaireDTO) {
+        return comActQuestnaireService.pageQuestnaireAdmin(pageQuestnaireDTO);
+    }
+
+    /**
+     * 编辑问卷——问卷、题目、选项
+     * 
+     * @param questnaireVO
+     * @return
+     */
+    @PostMapping("questnaire/editquestnaire")
+    public R editQuestnaire(@RequestBody QuestnaireVO questnaireVO) {
+        return comActQuestnaireService.editQuestnaire(questnaireVO);
+    }
+
+    /**
+     * 修改问卷状态
+     * 
+     * @param editComActQuestnaireVo
+     * @return
+     */
+    @PostMapping("questnaire/editquestnairedo")
+    public R editQuestnaireDO(@RequestBody EditComActQuestnaireVo editComActQuestnaireVo) {
+        return comActQuestnaireService.editQuestnaireDO(editComActQuestnaireVo);
+    }
+
+    /**
+     * 删除问卷 ——隐藏
+     * 
+     * @param questId
+     *            调查问卷Id
+     * @return
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @PostMapping("questnaire/deletequestnaire")
+    public R editQuestnaireDO(@RequestParam("questId") Long questId, @RequestParam("userId") Long userId) {
+        return comActQuestnaireService.deleteQuestnaire(questId, userId);
+    }
+
+    /**
+     * 查看用户问卷调查统计信息
+     * 
+     * @param questId
+     *            问卷ID
+     * @return 用户问卷调查统计信息
+     */
+    @GetMapping("questnaire/stat")
+    public R statistics(@RequestParam("questId") Long questId) {
+        return comActQuestnaireService.statQuestnaire(questId);
+    }
+
+    /**
+     * 问卷答题结果
+     *
+     * @param questId
+     *            问卷ID
+     */
+    @PostMapping("questnaire/answerslist")
+    public R answerResultList(@RequestParam("questId") Long questId) {
+        return comActQuestnaireService.answerResultList(questId);
+    }
+
+    /**
+     * 问卷题目 答卷信息
+     *
+     * @param pageQuestnaireSubDetailsDTO
+     *            问卷ID
+     */
+    @PostMapping("questnaire/qaqeustanswerdetails")
+    public R qaQeustAnswerDetails(@RequestBody PageQuestnaireSubDetailsDTO pageQuestnaireSubDetailsDTO) {
+        return comActQuestnaireService.qaQeustDetails(pageQuestnaireSubDetailsDTO);
+    }
+
+    /**
+     * 社区问卷回答用户分页
+     * 
+     * @param pageQuestnaireAnswerDTO
+     * @return 分页数据
+     */
+    @PostMapping("questnaire/pagequestnaireanswer")
+    public R pageQuestnaireAnswer(@RequestBody PageQuestnaireAnswerDTO pageQuestnaireAnswerDTO) {
+        return comActQuestnaireService.pageQuestnaireAnswer(pageQuestnaireAnswerDTO);
+    }
+
+    /**
+     * 居民填写问卷调查问卷questnaire/pagequestnaire
+     */
+    @PostMapping("questnaire/usersanswequestnaire")
+    public R usersAnsweQuestnaire(@RequestBody UsersAnswerQuestnaireVO usersAnswerQuestnaireVO) {
+        return comActQuestnaireService.usersAnsweQuestnaire(usersAnswerQuestnaireVO);
+    }
+
+    /**
+     * 小程序-用户弹窗添加不在提醒接口
+     * 
+     * @param questId
+     *            问卷id
+     * @param userId
+     *            用户id
+     * @return 添加结果
+     */
+    @GetMapping("questnaire/add/noNotice")
+    public R addNoNotice(@RequestParam("questId") Long questId, @RequestParam("userId") Long userId) {
+        return comActQuestnaireService.addNoNotice(questId, userId);
+    }
+
+    /**
+     * 删除微心愿
+     * 
+     * @param id
+     * @return
+     */
+    @PostMapping("deletemicrowish")
+    public R deletemicrowish(@RequestParam("id") Long id) {
+        return comActMicroWishService.deleteMicroWish(id);
+    }
+
+    /**
+     * 新增高龄认证
+     * 
+     * @param eldersAuthAddDTO
+     * @return 新增结果
+     */
+    @PostMapping("/eldersauth/add")
+    R add(@RequestBody EldersAuthAddDTO eldersAuthAddDTO) {
+        return eldersAuthService.add(eldersAuthAddDTO);
+    }
+
+    /**
+     * 修改高龄认证
+     * 
+     * @param eldersAuthEditDTO
+     * @return 维护结果
+     */
+    @PostMapping("/eldersauth/edit")
+    R edit(@RequestBody EldersAuthEditDTO eldersAuthEditDTO) {
+        return eldersAuthService.edit(eldersAuthEditDTO);
+    }
+
+    /**
+     * 分页查找高龄认证
+     * 
+     * @param pageEldersAuthDTO
+     * @return 维护结果
+     */
+    @PostMapping("/eldersauth/page")
+    R<IPage<EldersAuthVO>> query(@RequestBody PageEldersAuthDTO pageEldersAuthDTO) {
+        return eldersAuthService.query(pageEldersAuthDTO);
+    }
+
+    /**
+     * 删除高龄认证
+     * 
+     * @param EldersAuthDeleteDTO
+     * @return 平台用户信息
+     */
+    @PostMapping("/eldersauth/delete")
+    R delete(@RequestBody EldersAuthDeleteDTO EldersAuthDeleteDTO) {
+        return eldersAuthService.delete(EldersAuthDeleteDTO);
+    }
+
+    /**
+     * 查询高龄认证详细信息
+     * 
+     * @param id
+     *            高龄认证 id
+     * @return 查找结果
+     */
+    @PostMapping("/eldersauth/{id}")
+    R<EldersAuthDetailsVO> eldersAuthDetails(@PathVariable("id") Long id) {
+        return eldersAuthService.eldersAuthDetails(id);
+    }
+
+    @PostMapping("/eldersauth/getMyfamilyElders/{userId}")
+    R<List<ComMngFamilyInfoVO>> getMyfamilyElders(@PathVariable("userId") Long userId) {
+        List<ComMngFamilyInfoVO> list = comMngPopulationDAO.listFamilyByUserId(userId);
+
+        List<ComMngFamilyInfoVO> listRt = new ArrayList<>();
+        list.forEach(rt -> {
+            int age = IdCard.IdNOToAge(rt.getIdCard());
+            boolean isElders = age >= 80;
+            if (isElders) {
+                listRt.add(rt);
+            }
+        });
+        return R.ok(listRt);
+    }
+
+    @PostMapping("/eldersauth/addByFamilyUser")
+    @Transactional(rollbackFor = Exception.class)
+    R addByFamilyUser(@RequestBody EldersAuthAddByFamilyDTO eldersAuthAddByFamilyDTO) {
+
+        ComEldersAuthUserDO authUserDO = comEldersAuthUserService.getById(eldersAuthAddByFamilyDTO.getFamilyUserId());
+        if (authUserDO == null) {
+            return R.fail("未查询到老人信息");
+        }
+        //根据身份证获取出生日期并获取岁数
+        String idCard = authUserDO.getIdCard();
+        Date birthDay = IdCard.birthDay(idCard);
+        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("未查询到高龄老人库数据");
+    }
+
+    /**
+     * 新增高龄认证社区反馈
+     * 
+     * @param {classNameFirstLower}AddDTO
+     *            添加高龄认证社区反馈传递对象
+     * @return 新增结果
+     */
+    @PostMapping("/eldersauth/addFeedback")
+    R add(@RequestBody EldersAuthFeedbackAddDTO eldersAuthFeedbackAddDTO) {
+        ClazzUtils.setIfStringIsEmpty(eldersAuthFeedbackAddDTO);
+        EldersAuthDO eldersAuthDO = eldersAuthService.getBaseMapper().selectById(eldersAuthFeedbackAddDTO.getAuthId());
+        if (eldersAuthDO == null) {
+            return R.fail("认证记录不存在");
+        }
+        R addR = eldersAuthService.addFeedback(eldersAuthFeedbackAddDTO);
+        if (R.isOk(addR)) {
+            SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO();
+            sysUserNoticeVO.setUserId(eldersAuthDO.getSumitUserId());
+            sysUserNoticeVO.setType(3);
+            sysUserNoticeVO.setTitle("高龄认证社区反馈");
+            sysUserNoticeVO.setBusinessType(13);
+            sysUserNoticeVO.setBusinessTitle(" ");
+            sysUserNoticeVO.setBusinessContent(
+                "你提交【" + eldersAuthDO.getAuthUserName() + "】的高龄认证,社区反馈:" + eldersAuthFeedbackAddDTO.getFeedBack());
+            sysUserNoticeVO.setBusinessId(eldersAuthDO.getId());
+            sysUserNoticeVO.setStatus(0);
+            sysUserNoticeVO.setBusinessStatus(2);
+            R r1 = userService.addNotice(sysUserNoticeVO);
+            if (R.isOk(r1)) {
+                log.info("新增用户报名党建活动通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+            }
+
+            // 用户高龄认证反馈,推送订阅消息给用户
+            Map<String, String> map = comActActSignDAO.getUserOpenId(eldersAuthDO.getSumitUserId());
+            if (map != null) {
+                String openid = map.get("openid");
+                try {
+                    WxXCXTempSend util = new WxXCXTempSend();
+                    R<SysTemplateConfigVO> sysTemplateConfigVO=userService.selectTemplate(eldersAuthFeedbackAddDTO.getAreaCode(),5);
+                    String accessToken = util.getAccessToken();
+                    WxUtil.sendSubscribeRZSH(openid, accessToken, "高龄认证",
+                        DateUtils.format(eldersAuthDO.getCreateAt(), DateUtils.ymdhms_format),
+                        eldersAuthFeedbackAddDTO.getFeedBack(),sysTemplateConfigVO.getData().getTemplateId());
+                } catch (Exception e) {
+                    log.error("推送审核状态订阅消息失败,失败原因:" + e.getMessage());
+                }
+            }
+        }
+        return addR;
+    }
+
+    /**
+     * 查询导出高龄老人
+     * 
+     * @param pageEldersAuthDTO
+     * @return
+     */
+    @PostMapping("/eldersauth/eldersAuthQuery")
+    R eldersAuthQuery(@RequestBody PageEldersAuthDTO pageEldersAuthDTO) {
+        return eldersAuthService.queryExportData(pageEldersAuthDTO);
+    }
+
+    /**
+     * 设置社区认证方式
+     * 
+     * @param communityId
+     *            社区ID
+     * @param type
+     *            核验类型(1.视频认证 2.人脸核验)
+     * @return
+     */
+    @PostMapping("/elders/setCommunityAuthType")
+    R setCommunityAuthType(@RequestParam("communityId") Long communityId, @RequestParam("type") Integer type) {
+        return eldersAuthService.setCommunityAuthType(communityId, type);
+    }
+
+    /**
+     * 随手拍活动定时任务
+     * 
+     * @return 执行结果
+     */
+    @PostMapping("timeTaskEasyPhotoActivity")
+    public R timeTaskEasyPhotoActivity() {
+        return comActEasyPhotoActivityService.timeTaskEasyPhotoActivity();
+    }
+
+    /**
+     * 社区随手拍列表统计
+     * 
+     * @param communityId
+     *            社区id
+     * @return 统计结果
+     */
+    @GetMapping("easyphoto/statistics")
+    public R easyPhotoStatistics(@RequestParam("communityId") Long communityId) {
+        return comActEasyPhotoService.easyPhotoStatistics(communityId);
+    }
+
+    /**
+     * 综治后台-查询社区列表
+     * 
+     * @return 社区列表
+     */
+    @GetMapping("/eventgrid/community/list")
+    public R getCommunityLists() {
+        return comActService.getCommunityLists(this.getAppId());
+    }
+
+    /**
+     * 查询西区社区列表
+     *
+     * @return 社区列表
+     */
+    @GetMapping("/eventgrid/community/westList")
+    public R getWestCommunityLists(@RequestParam(value = "areaCode",required = false)String areaCode) {
+        return comActService.getWestCommunityLists(areaCode);
+    }
+
+    /**
+     * 随手拍发放奖励
+     * 
+     * @param grantRewardDTO
+     *            请求参数
+     * @return 发放结果
+     */
+    @PostMapping("/easyphoto/grantReward")
+    public R grantReward(@RequestBody GrantRewardDTO grantRewardDTO) {
+        return comActEasyPhotoService.grantReward(grantRewardDTO);
+    }
+
+    /**
+     * 获取最新活动和用户最新收益
+     * 
+     * @param userId
+     *            用户id
+     * @param communityId
+     *            社区id
+     * @return 最新活动和用户最新收益
+     */
+    @PostMapping("easyphoto/getUserReward")
+    public R getUserReward(@RequestParam("userId") Long userId, @RequestParam("communityId") Long communityId) {
+        return comActEasyPhotoService.getUserReward(userId, communityId);
+    }
+
+    /**
+     * 获取首页弹窗接口
+     *
+     * @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);
+    }
+
+    @PostMapping("easyphoto/getUserRewardsNew")
+    public R getUserRewardsNew(@RequestParam("userId") Long userId, @RequestParam("communityId") Long communityId) {
+        return comActEasyPhotoService.getUserRewardNew(userId, communityId);
+    }
+    /**
+     * 读取用户随手拍奖励
+     * 
+     * @param userId
+     *            用户id
+     * @return 读取结果
+     */
+    @PostMapping("easyphoto/readUserReward")
+    public R readUserReward(@RequestParam("userId") Long userId, @RequestParam("communityId") Long communityId) {
+        return comActEasyPhotoService.readUserReward(userId, communityId);
+    }
+
+    /**
+     * 定时任务检测即将开始的社区活动,并使用订阅消息通知用户
+     */
+    @PostMapping("timedTaskActivityNotice")
+    public R timedTaskActivityNotice() {
+        return comActActivityService.timedTaskActivityNotice();
+    }
+
+    /**
+     * 问卷调查统计汇总
+     * 
+     * @param summaryDTO
+     *            请求参数
+     * @return 统计汇总
+     */
+    @PostMapping("questnaire/statisticsSummary")
+    public R statisticsSummary(@RequestBody StatisticsSummaryDTO summaryDTO) {
+        return comActQuestnaireService.statisticsSummary(summaryDTO);
+    }
+
+    /**
+     * 问卷调查统计汇总导出数据查询
+     * 
+     * @param questId
+     *            调查问卷id
+     * @return 调查统计汇总导出数据
+     */
+    @GetMapping("questnaire/statisticsSummary/export")
+    public R statisticsSummaryExport(@RequestParam("questId") Long questId) {
+        return comActQuestnaireService.statisticsSummaryExport(questId);
+    }
+
+    /**
+     * 问卷调查统计汇总表头统计
+     * 
+     * @param questId
+     *            调查问卷id
+     * @return 问卷调查统计汇总表头统计数据
+     */
+    @GetMapping("questnaire/statisticsSummary/header")
+    public R statisticsSummaryHeader(@RequestParam("questId") Long questId,
+        @RequestParam("communityId") Long communityId) {
+        return comActQuestnaireService.statisticsSummaryHeader(questId, communityId);
+    }
+
+    /**
+     * 定时任务检测待发布,调研中的问卷调查状态
+     */
+    @PostMapping("timedTaskQuestionnaire")
+    public R timedTaskQuestionnaire() {
+        return comActQuestnaireService.timedTaskQuestionnaire();
+    }
+
+    /**
+     * 定时任务针对活动结束后7天还未评价的用户默认好评
+     */
+    @PostMapping("activity/default-praise")
+    public R timedTaskActivityDefaultPraise() {
+        return comActActEvaluateService.timedTaskActivityDefaultPraise();
+    }
+
+    /**
+     * 小程序-新增问卷调查浏览数量
+     * 
+     * @param questId
+     *            问卷调查id
+     * @return 增加结果
+     */
+    @GetMapping("questnaire/add/view")
+    public R addQuestnaireView(@RequestParam("questId") Long questId) {
+        return comActQuestnaireService.addQuestnaireView(questId);
+    }
+
+    /**
+     * 社区后台-切换随手拍公示状态
+     * 
+     * @param comActEasyPhotoVO
+     *            请求参数
+     * @return 切换结果
+     */
+    @PostMapping("easyphoto/switch/publicity")
+    public R easyPhotoSwitchPublicity(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO) {
+        return comActEasyPhotoService.easyPhotoSwitchPublicity(comActEasyPhotoVO);
+    }
+
+    /**
+     * 查询社区待处理随手拍id集合
+     * 
+     * @param communityId
+     *            社区id
+     * @return 社区待处理随手拍id集合
+     */
+    @GetMapping("easyphoto/noHandle/list")
+    public R easyPhotoNoHandleList(@RequestParam("communityId") Long communityId) {
+        return comActEasyPhotoService.easyPhotoNoHandleList(communityId);
+    }
+
+    /**
+     * 微心愿处理人列表
+     * @param communityId   社区id
+     * @param type  处理人类型(1.后台用户  2.党员  3.志愿者)
+     * @return  处理人列表
+     */
+    @GetMapping("wish/handle/list/admin")
+    public R wishHandleListAdmin(@RequestParam(value = "communityId") Long communityId,@RequestParam("type") Integer type){
+        return R.ok(comActMicroWishService.wishHandleListAdmin(communityId,type));
+    }
+
+    /**
+     * 社区后台分页查询微心愿
+     * @param comActMicroWishVO 请求参数
+     * @return  微心愿列表
+     */
+    @PostMapping("pagemicrowishAdmin")
+    public R pageMicroWishAdmin(@RequestBody ComActMicroWishVO comActMicroWishVO) {
+        return comActMicroWishService.pageMicroWishAdmin(comActMicroWishVO);
+    }
+
+    /**
+     * 活动报名签到情况
+     * @param id 活动主键id
+     * @return
+     */
+    @GetMapping("activity/sign-in/list")
+    public R listSignInRecord(@RequestParam("id") Long id) {
+        return comActActivityService.listSignInRecord(id);
+    }
+
+    /**
+     * 活动签到记录
+     * @param id 活动主键
+     * @param userId 用户id
+     * @return
+     */
+    @GetMapping("activity/regist/list")
+    public R listRegistRecord(@RequestParam("id")  Long id, @RequestParam("userId") Long userId) {
+        return comActActivityService.listRegistRecord(id, userId);
+    }
+
+    /**
+     * 获取活动类型(目前只有志愿者活动需要获取)
+     * @param communityId
+     * @param type
+     * @return
+     */
+    @GetMapping("activity/type/list")
+    public R listActivityType(@RequestParam("communityId") Long communityId, @RequestParam("type") Integer type) {
+        return comActActivityService.listActivityType(communityId, type);
+    }
+
+    /**
+     * 添加活动类型
+     * @param comActActivityTypeVO
+     * @return
+     */
+    @PostMapping("activity/type/add")
+    public R addActivityType(@RequestBody ComActActivityTypeVO comActActivityTypeVO) {
+        return comActActivityService.addActivityType(comActActivityTypeVO);
+    }
+
+    /**
+     * 我的评价
+     * @param userId
+     * @param activityId 活动id
+     * @return
+     */
+    @GetMapping("activity/my-evaluate")
+    public R listMyActivityEvaluate(@RequestParam("userId") Long userId, @RequestParam("activityId") Long activityId) {
+        return comActActEvaluateService.listMyActivityEvaluate(userId, activityId);
+    }
+
+    /**
+     * 志愿者导入
+     *
+     * @param list        志愿者数据列表
+     * @param communityId 社区id
+     * @param userId      用户id
+     * @return 导入结果
+     */
+    @PostMapping("/volunteer/import/admin")
+    public R importVolunteerAdmin(@RequestBody List<ComMngVolunteerExcelVO> list,
+                                  @RequestParam(value = "communityId") Long communityId, @RequestParam(value = "userId") Long userId) {
+        return comMngVolunteerMngService.importVolunteerAdmin(list,communityId,userId);
+    }
+
+    /**
+     * [方法描述] 根据社区ID查询所属城市所在区区域代码,
+     *
+     * @param communityId
+     *            社区ID
+     * @return String 区域code
+     * @author manailin
+     * @date 2022/2/17 10:09
+     */
+    @GetMapping("act/getActBelongRegionCode")
+    public String getActBelongRegionCode(@RequestParam("communityId") Long communityId) {
+        return comActActivityService.getActBelongRegionCode(communityId);
+    }
+
+    /**
+     * 党员活动统计
+     * @param communityId
+     * @param year
+     * @return
+     */
+    @GetMapping("activity/partyMemberCount")
+    public R partyMemberCount(@RequestParam("communityId")Long communityId,@RequestParam("year")String year){
+        return comActActivityService.partyMemberCount(communityId,year);
+    }
+
+    /**
+     * 党员活动详情数据
+     * @return
+     */
+    @PostMapping("activity/partyMemberDetail")
+    public R partyMemberDetail(@RequestBody CommonPage commonPage){
+        return comActActivityService.partyMemberDetail(commonPage);
+    }
+
+
+    /**
+     * 导出党员活动详情数据
+     * @return
+     */
+    @PostMapping("activity/exportPartyMemberDetail")
+    public R exportPartyMemberDetail(@RequestBody CommonPage commonPage){
+        return comActActivityService.exportPartyMemberDetail(commonPage);
+    }
+
+    /**
+     * 批量删除活动
+     * @param ids
+     * @return
+     */
+    @PostMapping("batchDel")
+    public R deleteActivities(@RequestBody List<Long> ids) {
+        return R.ok(comActActivityService.removeByIds(ids));
+    }
+
+    /**
+     * 获取人大代表反馈记录
+     * @param id
+     * @return
+     */
+    @GetMapping("dpc/feedback")
+    public R getFeedbackList(@RequestParam("id") Long id) {
+        return comActEasyPhotoService.getFeedbackList(id);
+    }
+
+    /**
+     * 人大代表反馈随手拍
+     * @param comActEasyPhotoVO
+     * @return
+     */
+    @PostMapping("dpc/feedback")
+    public R addEasyPhotoFeedbackForDpc(@RequestBody ComActEasyPhotoVO comActEasyPhotoVO) {
+        return comActEasyPhotoService.addEasyPhotoFeedbackForDpc(comActEasyPhotoVO);
+    }
+
+    /**
+     * 活动邀请列表
+     * @param pageActivityInviteDTO
+     * @return
+     */
+    @PostMapping("activity/invite/list")
+    public R pageActivityInviteList(@RequestBody PageActivityInviteDTO pageActivityInviteDTO) {
+        return comActActivityInviteService.pageActivityInviteList(pageActivityInviteDTO);
+    }
+
+    /**
+     * 添加邀请人员
+     * @param list
+     * @return
+     */
+    @PostMapping("activity/invite/add")
+    public R activityInviteAdd(@RequestBody List<ActivityInviteDTO> list) {
+        return comActActivityInviteService.activityInviteAdd(list);
+    }
+
+    /**
+     * 删除邀请人员
+     * @param id
+     * @return
+     */
+    @DeleteMapping("activity/invite/delete")
+    public R activityInviteDelete(@RequestParam("id") Long id) {
+        return comActActivityInviteService.activityInviteDelete(id);
+    }
+
+    /**
+     * 根据id查询重复的社区id集合
+     * @param id
+     * @return
+     */
+    @GetMapping("selectCommunityIds")
+    public R selectCommunityIds(@RequestParam("id") Long id){
+        return comActService.selectIds(id);
+    }
+
+
+    /**
+     * 通过id查询用户
+     * @param id
+     * @return
+     */
+    @GetMapping("selectAutomessageSysUserById")
+    public R selectAutomessageSysUserById(@RequestParam("id") Long id){
+        return automessageSysUserService.selectAutomessageSysUserById(id);
+    }
+
+    /**
+     * 根据id查询重复的社区id集合
+     * @return
+     */
+    @GetMapping("selectBasicData")
+    public R selectBasicData(){
+        return comActService.selectBasicData();
+    }
+
+    /**
+     * 统计在职干部特长
+     * @return
+     */
+    @GetMapping("statisticsPbMemberType")
+    public R statisticsPbMemberType(){
+        return comActService.statisticsPbMemberType();
+    }
+
+    /**
+     * 统计单位
+     * @return
+     */
+    @GetMapping("selectUnitByNatureName")
+    public R selectUnitByNatureName(){
+        return comActService.selectUnitByNatureName();
+    }
+
+    /**
+     * 大屏-社区活动分页
+     * @return
+     */
+    @PostMapping("pageActivityBigScreen")
+    public R pageActivityBigScreen(@RequestBody PageBaseDTO pageBaseDTO){
+        return comActActivityService.pageActivityBigScreen(pageBaseDTO);
+    }
+
+    @GetMapping("easyphoto/selectStatisticsPhoto")
+    public R selectStatisticsPhoto() {
+        return comActEasyPhotoService.selectStatisticsPhoto();
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunitySwitchApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunitySwitchApi.java
new file mode 100644
index 0000000..3c4a7ee
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/CommunitySwitchApi.java
@@ -0,0 +1,54 @@
+package com.panzhihua.service_community.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.model.dtos.community.switchs.SearchCommunityDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.service.ComActService;
+
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+@RestController
+@RequestMapping("/switch/")
+public class CommunitySwitchApi {
+
+    @Resource
+    private ComActService comActService;
+
+    /**
+     * 查询社区所有列表
+     * 
+     * @return 社区列表
+     */
+    @GetMapping("/community/all/list")
+    public R getCommunityAllList(@RequestParam("appId") String appId) {
+        return comActService.getCommunityAllList(appId);
+    }
+
+    /**
+     * 根据名字查询所有社区列表
+     * 
+     * @param name
+     *            社区名字
+     * @return 社区列表
+     */
+    @GetMapping("/community/search/list")
+    public R communitySwitchSearchList(@RequestParam(value = "name") String name,@RequestParam(value = "appId") String appId) {
+        return comActService.communitySwitchSearchList(name,appId);
+    }
+
+    /**
+     * 根据经纬度以及距离搜索附近社区列表
+     * 
+     * @param communityDTO
+     *            请求参数
+     * @return 社区列表
+     */
+    @PostMapping("/community/search/distance/list")
+    public R communitySwitchSearchDistanceList(@RequestBody SearchCommunityDTO communityDTO) {
+        return comActService.communitySwitchSearchDistanceList(communityDTO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ConvenientApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ConvenientApi.java
new file mode 100644
index 0000000..cfe1606
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ConvenientApi.java
@@ -0,0 +1,877 @@
+package com.panzhihua.service_community.api;
+
+import com.panzhihua.common.model.dtos.community.*;
+import com.panzhihua.common.model.dtos.community.convenient.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComCvtServeExcelVO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
+import com.panzhihua.service_community.service.*;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import java.util.List;
+
+/**
+ * @description: 便民服务接口
+ * @author: Null
+ * @date: 2021/3/11 13:19
+ */
+@Slf4j
+@RestController
+@RequestMapping("/convenient")
+public class ConvenientApi {
+
+    @Resource
+    private ComCvtBusinessService comCvtBusinessService;
+
+    @Resource
+    private ComCvtCategoryService comCvtCategoryService;
+
+    @Resource
+    private ComCvtServeService comCvtServeService;
+
+    @Resource
+    private ConvenientServiceCategoryService convenientServiceCategoryService;
+
+    @Resource
+    private ConvenientMerchantService convenientMerchantService;
+
+    @Resource
+    private ConvenientProductCategoryService convenientProductCategoryService;
+
+    @Resource
+    private ConvenientProductService convenientProductService;
+
+    @Resource
+    private ConvenientElevatingPointService convenientElevatingPointService;
+
+    @Resource
+    private ConvenientGoodsCategoryService convenientGoodsCategoryService;
+
+    /**
+     * 社区后台分页查询便民服务商家
+     *
+     * @param pageComCvtBusinessDTO 查询参数
+     * @return 返回结果
+     */
+    @PostMapping("/business/page")
+    public R pageComCvtBusiness(@RequestBody PageComCvtBusinessDTO pageComCvtBusinessDTO) {
+        return comCvtBusinessService.pageComCvtBusiness(pageComCvtBusinessDTO);
+    }
+
+    /**
+     * 小程序通过便民服务区域分页查询便民服务商家
+     *
+     * @param comCvtBusinessAppletsDTO 查询参数
+     * @return 返回结果
+     */
+    @PostMapping("/business/area/page")
+    public R pageComCvtBusinessByServiceArea(@RequestBody PageComCvtBusinessAppletsDTO comCvtBusinessAppletsDTO) {
+        return comCvtBusinessService.pageComCvtBusinessByServiceArea(comCvtBusinessAppletsDTO);
+    }
+
+    /**
+     * 新增便民服务商家
+     *
+     * @param comCvtBusinessDTO 商家参数
+     * @return 返回结果
+     */
+    @PostMapping("/business/add")
+    public R addComCvtBusiness(@RequestBody ComCvtBusinessDTO comCvtBusinessDTO) {
+        return comCvtBusinessService.addComCvtBusiness(comCvtBusinessDTO);
+    }
+
+    /**
+     * 编辑便民服务商家
+     *
+     * @param comCvtBusinessDTO 商家参数
+     * @return 返回结果
+     */
+    @PutMapping("/business/put")
+    public R putComCvtBusiness(@RequestBody ComCvtBusinessDTO comCvtBusinessDTO) {
+        return comCvtBusinessService.putComCvtBusiness(comCvtBusinessDTO);
+    }
+
+    /**
+     * 查询便民服务商家详情
+     *
+     * @param id 商家主键
+     * @return 返回结果
+     */
+    @GetMapping("/business/get")
+    public R getComCvtBusiness(@RequestParam("id") Long id) {
+        return comCvtBusinessService.getComCvtBusiness(id);
+    }
+
+    /**
+     * 删除便民服务商家信息
+     *
+     * @param id 商家主键
+     * @return 返回结果
+     */
+    @DeleteMapping("/business/delete")
+    public R deleteComCvtBusiness(@RequestParam("id") Long id) {
+        return comCvtBusinessService.deleteComCvtBusiness(id);
+    }
+
+    /**
+     * 社区后台分页查询便民服务分类
+     *
+     * @param pageComCvtCategoryDTO 查询参数
+     * @return 返回结果
+     */
+    @PostMapping("/category/page")
+    public R pageComCvtCategory(@RequestBody PageComCvtCategoryDTO pageComCvtCategoryDTO) {
+        return comCvtCategoryService.pageComCvtCategory(pageComCvtCategoryDTO);
+    }
+
+    /**
+     * 便民服务分类下拉,所有分类
+     *
+     * @return 返回结果
+     */
+    @PostMapping("/category/all")
+    public R allComCvtCategory() {
+        return comCvtCategoryService.allComCvtCategory();
+    }
+
+    /**
+     * 新增便民服务分类
+     *
+     * @param comCvtCategoryDTO 分类参数
+     * @return 返回结果
+     */
+    @PostMapping("/category/add")
+    public R addComCvtCategory(@Valid @RequestBody ComCvtCategoryDTO comCvtCategoryDTO) {
+        return comCvtCategoryService.addComCvtCategory(comCvtCategoryDTO);
+    }
+
+    /**
+     * 编辑便民服务分类
+     *
+     * @param comCvtCategoryDTO 分类参数
+     * @return 返回结果
+     */
+    @PutMapping("/category/put")
+    public R putComCvtCategory(@RequestBody ComCvtCategoryDTO comCvtCategoryDTO) {
+        return comCvtCategoryService.putComCvtCategory(comCvtCategoryDTO);
+    }
+
+    /**
+     * 查询便民服务分类详情
+     *
+     * @param id 分类主键
+     * @return 返回结果
+     */
+    @GetMapping("/category/get")
+    public R getComCvtCategory(@RequestParam("id") Long id) {
+        return comCvtCategoryService.getComCvtCategory(id);
+    }
+
+    /**
+     * 删除便民服务分类信息
+     *
+     * @param id 分类主键
+     * @return 返回结果
+     */
+    @DeleteMapping("/category/delete")
+    public R deleteComCvtCategory(@RequestParam("id") Long id) {
+        return comCvtCategoryService.deleteComCvtCategory(id);
+    }
+
+    /**
+     * 社区后台分页查询便民服务
+     *
+     * @param pageComCvtServeDTO 查询参数
+     * @return 返回结果
+     */
+    @PostMapping("/serve/page")
+    public R pageComCvtServe(@RequestBody PageComCvtServeDTO pageComCvtServeDTO) {
+        return comCvtServeService.pageComCvtServe(pageComCvtServeDTO);
+    }
+
+    /**
+     * 新增便民服务
+     *
+     * @param comCvtServeDTO 参数
+     * @return 返回结果
+     */
+    @PostMapping("/serve/add")
+    public R addComCvtServe(@RequestBody ComCvtServeDTO comCvtServeDTO) {
+        return comCvtServeService.addComCvtServe(comCvtServeDTO);
+    }
+
+    /**
+     * 编辑便民服务
+     *
+     * @param comCvtServeDTO 分类参数
+     * @return 返回结果
+     */
+    @PutMapping("/serve/put")
+    public R putComCvtServe(@RequestBody ComCvtServeDTO comCvtServeDTO) {
+        return comCvtServeService.putComCvtServe(comCvtServeDTO);
+    }
+
+    /**
+     * 查询便民服务详情
+     *
+     * @param id 服务主键
+     * @return 返回结果
+     */
+    @GetMapping("/serve/get")
+    public R getComCvtServe(@RequestParam("id") Long id) {
+        return comCvtServeService.getComCvtServe(id);
+    }
+
+    /**
+     * 删除便民服务信息
+     *
+     * @param id 服务主键
+     * @return 返回结果
+     */
+    @DeleteMapping("/serve/delete")
+    public R deleteComCvtServe(@RequestParam("id") Long id) {
+        return comCvtServeService.deleteComCvtServe(id);
+    }
+
+    /**
+     * 小程序便民服务商家详情
+     *
+     * @param id 商家ID
+     * @return
+     */
+    @GetMapping("/business/serve/get")
+    public R getComCvtBusinessServeDetail(@RequestParam("id") Long id) {
+        return comCvtBusinessService.getComCvtBusinessServeDetail(id);
+    }
+
+    /**
+     * 批量新增商家服务
+     *
+     * @param list 服务集合
+     */
+    @PostMapping("/serve/import")
+    public R listSaveConvenientServeExcelVO(@RequestBody List<ComCvtServeExcelVO> list,
+                                            @RequestParam(value = "communityId", required = false) Long communityId) {
+        return comCvtServeService.listSaveConvenientServeExcelVO(list, communityId);
+    }
+
+    /**
+     * 便民服务新增分类
+     *
+     * @param convenientServiceCategoryDTO
+     * @return
+     */
+    @PostMapping("/service-category/add")
+    public R addServiceCategory(@RequestBody ConvenientServiceCategoryDTO convenientServiceCategoryDTO) {
+        return convenientServiceCategoryService.addServiceCategory(convenientServiceCategoryDTO);
+    }
+
+    /**
+     * 便民服务分类编辑
+     *
+     * @param convenientServiceCategoryDTO
+     * @return
+     */
+    @PutMapping("/service-category/put")
+    public R putServiceCategory(@RequestBody ConvenientServiceCategoryDTO convenientServiceCategoryDTO) {
+        return convenientServiceCategoryService.putServiceCategory(convenientServiceCategoryDTO);
+    }
+
+    /**
+     * 便民服务分类删除
+     *
+     * @param categoryId
+     * @return
+     */
+    @DeleteMapping("/service-category/delete")
+    public R deleteServiceCategory(@RequestParam("categoryId") Long categoryId, @RequestParam("operator") Long operator) {
+        return convenientServiceCategoryService.deleteServiceCategoryById(categoryId, operator);
+    }
+
+    /**
+     * 获取便民服务分类详情
+     *
+     * @param categoryId
+     * @return
+     */
+    @GetMapping("/service-category/get")
+    public R getServiceCategory(@RequestParam("categoryId") Long categoryId) {
+        return convenientServiceCategoryService.getServiceCategoryById(categoryId);
+    }
+
+    /**
+     * 分页查询便民服务分类
+     *
+     * @param pageConvenientServiceCategoryDTO
+     * @return
+     */
+    @PostMapping("/service-category/page")
+    public R pageServiceCategory(@RequestBody PageConvenientServiceCategoryDTO pageConvenientServiceCategoryDTO) {
+        return convenientServiceCategoryService.pageServiceCategory(pageConvenientServiceCategoryDTO);
+    }
+
+    /**
+     * 便民服务新增商家
+     *
+     * @param convenientMerchantDTO
+     * @return
+     */
+    @PostMapping("/merchant/add")
+    public R addMerchant(@RequestBody ConvenientMerchantDTO convenientMerchantDTO) {
+        return convenientMerchantService.addMerchant(convenientMerchantDTO);
+    }
+
+    /**
+     * 编辑便民服务商家
+     *
+     * @param convenientMerchantDTO
+     * @return
+     */
+    @PutMapping("/merchant/put")
+    public R putMerchant(@RequestBody ConvenientMerchantDTO convenientMerchantDTO) {
+        return convenientMerchantService.putMerchant(convenientMerchantDTO);
+    }
+
+    /**
+     * 删除便民服务商家
+     *
+     * @param merchantId
+     * @return
+     */
+    @DeleteMapping("/merchant/delete")
+    public R deleteMerchant(@RequestParam("merchantId") Long merchantId, @RequestParam("operator") Long operator) {
+        return convenientMerchantService.deleteMerchant(merchantId, operator);
+    }
+
+    /**
+     * 分页查询便民服务商家 运营后台
+     *
+     * @param pageConvenientMerchantDTO
+     * @return
+     */
+    @PostMapping("/merchant/page")
+    public R pageMerchant(@RequestBody PageConvenientMerchantDTO pageConvenientMerchantDTO) {
+        return convenientMerchantService.pageMerchant(pageConvenientMerchantDTO);
+    }
+
+    /**
+     * 获取便民服务商家详情
+     *
+     * @param merchantId
+     * @return
+     */
+    @GetMapping("/merchant/get")
+    public R getMerchant(@RequestParam("merchantId") Long merchantId) {
+        return convenientMerchantService.getMerchant(merchantId);
+    }
+
+    /**
+     * 获取便民服务商家详情
+     *
+     * @param userId
+     * @return
+     */
+    @GetMapping("/merchant/getMerchantByUserId")
+    public R getMerchantByUserId(@RequestParam("userId") Long userId) {
+        return convenientMerchantService.getMerchantByUserId(userId);
+    }
+
+    /**
+     * 禁用/启用便民服务商家
+     *
+     * @param disableOrEnableConvenientMerchantDTO
+     * @return
+     */
+    @PutMapping("/merchant/disable-or-enable")
+    public R disableOrEnableMerchant(@RequestBody DisableOrEnableConvenientMerchantDTO disableOrEnableConvenientMerchantDTO) {
+        return convenientMerchantService.disableOrEnableMerchant(disableOrEnableConvenientMerchantDTO);
+    }
+
+    /**
+     * 重置便民服务商家账号密码
+     *
+     * @param resetPasswordConvenientMerchantDTO
+     * @return
+     */
+    @PutMapping("/merchant/reset-password")
+    public R resetPasswordMerchant(@RequestBody ResetPasswordConvenientMerchantDTO resetPasswordConvenientMerchantDTO) {
+        return convenientMerchantService.resetPasswordMerchant(resetPasswordConvenientMerchantDTO);
+    }
+
+    /**
+     * 获取所有便民服务分类
+     *
+     * @return
+     */
+    @GetMapping("/service-category/all")
+    public R getAllServiceCategories(@RequestParam("areaCode") String areaCode) {
+        return convenientServiceCategoryService.getAllServiceCategories(areaCode);
+    }
+
+    /**
+     * 获取用户便民服务商家详情
+     *
+     * @param account 商家绑定账号
+     * @return
+     */
+    @GetMapping("/getUserMerchantInfoByAccount")
+    public R<ConvenientMerchantVO> getUserMerchantInfoByAccount(@RequestParam("account") String account) {
+        return convenientMerchantService.getUserMerchantInfoByAccount(account);
+    }
+
+    /**
+     * 获取用户便民服务商家详情
+     *
+     * @param account 商家绑定账号
+     * @return
+     */
+    @GetMapping("/getMerchantInfoByAccount")
+    public R<ConvenientMerchantVO> getMerchantInfoByAccount(@RequestParam("account") String account) {
+        return convenientMerchantService.getMerchantInfoByAccount(account);
+    }
+
+    /**
+     * 获取商便民服务商家信息
+     *
+     * @param userId
+     * @return
+     */
+    @GetMapping("/merchantInfo")
+    public R<ConvenientMerchantVO> getUserConvenientMerchantInfo(@RequestParam("userId") Long userId) {
+        return convenientMerchantService.getUserConvenientMerchantInfo(userId);
+    }
+
+    /**
+     * 新增便民服务产品分类信息
+     *
+     * @param convenientProductCategoryDTO
+     * @return
+     */
+    @PostMapping("/product-category/add")
+    public R addProductCategory(@RequestBody ConvenientProductCategoryDTO convenientProductCategoryDTO) {
+        return convenientProductCategoryService.addProductCategory(convenientProductCategoryDTO);
+    }
+
+    /**
+     * 编辑便民服务产品分类信息
+     *
+     * @param convenientProductCategoryDTO
+     * @return
+     */
+    @PutMapping("/product-category/put")
+    public R putProductCategory(@RequestBody ConvenientProductCategoryDTO convenientProductCategoryDTO) {
+        return convenientProductCategoryService.putProductCategory(convenientProductCategoryDTO);
+    }
+
+    /**
+     * 删除便民服务产品分类信息
+     *
+     * @param categoryId
+     * @param operator
+     * @return
+     */
+    @DeleteMapping("/product-category/delete")
+    public R deleteProductCategory(@RequestParam("categoryId") Long categoryId, @RequestParam("operator") Long operator) {
+        return convenientProductCategoryService.deleteProductCategory(categoryId, operator);
+    }
+
+    /**
+     * 获取便民服务产品分类详情
+     *
+     * @param categoryId
+     * @return
+     */
+    @GetMapping("/product-category/get")
+    public R getProductCategory(@RequestParam("categoryId") Long categoryId) {
+        return convenientProductCategoryService.getProductCategory(categoryId);
+    }
+
+    /**
+     * 分页查询便民服务产品分类信息
+     *
+     * @param pageConvenientProductCategoryDTO
+     * @return
+     */
+    @PostMapping("/product-category/page")
+    public R pageProductCategory(@RequestBody PageConvenientProductCategoryDTO pageConvenientProductCategoryDTO) {
+        return convenientProductCategoryService.pageProductCategory(pageConvenientProductCategoryDTO);
+    }
+
+    /**
+     * 便民服务商家后台新增产品
+     *
+     * @param convenientProductDTO
+     * @return
+     */
+    @PostMapping("/product/add")
+    public R addProduct(@RequestBody ConvenientProductDTO convenientProductDTO) {
+        return convenientProductService.addProduct(convenientProductDTO);
+    }
+
+    /**
+     * 便民服务商家后台编辑产品
+     *
+     * @param convenientProductDTO
+     * @return
+     */
+    @PutMapping("/product/put")
+    public R putProduct(@RequestBody ConvenientProductDTO convenientProductDTO) {
+        return convenientProductService.putProduct(convenientProductDTO);
+    }
+
+    /**
+     * 便民服务商家后台获取产品详情
+     *
+     * @param productId
+     * @return
+     */
+    @GetMapping("/product/get")
+    public R getProduct(@RequestParam("productId") Long productId) {
+        return convenientProductService.getProduct(productId);
+    }
+
+    /**
+     * 便民服务商家后台分页获取产品信息
+     *
+     * @param pageConvenientProductDTO
+     * @return
+     */
+    @PostMapping("/product/page")
+    public R pageProduct(@RequestBody PageConvenientProductDTO pageConvenientProductDTO) {
+        return convenientProductService.pageProduct(pageConvenientProductDTO);
+    }
+
+    /**
+     * 便民服务商家后台删除产品信息
+     *
+     * @param deleteConvenientProductDTO
+     * @return
+     */
+    @DeleteMapping("/product/delete")
+    public R deleteProduct(@RequestBody DeleteConvenientProductDTO deleteConvenientProductDTO) {
+        return convenientProductService.deleteProduct(deleteConvenientProductDTO);
+    }
+
+    /**
+     * 便民服务商家后台上架/下架产品
+     *
+     * @param onShelfOrOffShelfProductDTO
+     * @return
+     */
+    @PutMapping("/product/onShelf-or-offShelf")
+    public R onShelfOrOffShelfProduct(@RequestBody OnShelfOrOffShelfProductDTO onShelfOrOffShelfProductDTO) {
+        return convenientProductService.onShelfOrOffShelfProduct(onShelfOrOffShelfProductDTO);
+    }
+
+    /**
+     * 获取所有产品分类
+     *
+     * @param merchantId
+     * @return
+     */
+    @GetMapping("/product-category/all")
+    public R getAllProductCategory(@RequestParam("merchantId") Long merchantId) {
+        return convenientProductCategoryService.getAllProductCategory(merchantId);
+    }
+
+    /**
+     * 获取该社区商家数量大于0的分类
+     *
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/service-category/suitable")
+    public R getSuitableServiceCategories(@RequestParam("communityId") Long communityId, @RequestParam("areaCode") String areaCode) {
+        return convenientServiceCategoryService.getSuitableServiceCategories(communityId, areaCode);
+    }
+
+    /**
+     * 获取该社区下的热门商家
+     *
+     * @param pagePopularMerchantDTO
+     * @return
+     */
+    @PostMapping("/merchant/popular")
+    public R getPopularMerchants(@RequestBody PagePopularMerchantDTO pagePopularMerchantDTO) {
+        return convenientMerchantService.getPopularMerchants(pagePopularMerchantDTO);
+    }
+
+    /**
+     * 分页获取服务类型下商家信息
+     *
+     * @param pageClassifyMerchantDTO
+     * @return
+     */
+    @PostMapping("/merchant/classify")
+    public R getClassifyMerchants(@RequestBody PageClassifyMerchantDTO pageClassifyMerchantDTO) {
+        return convenientMerchantService.getClassifyMerchants(pageClassifyMerchantDTO);
+    }
+
+    /**
+     * 小程序获取商家详情
+     *
+     * @param merchantId
+     * @return
+     */
+    @GetMapping("/merchant/detail")
+    public R getMerchantDetail(@RequestParam("merchantId") Long merchantId) {
+        return convenientMerchantService.getMerchantDetail(merchantId);
+    }
+
+    /**
+     * 小程序获取商家产品
+     *
+     * @param merchantId
+     * @return
+     */
+    @GetMapping("/product/list")
+    public R getMerchantProduct(@RequestParam("merchantId") Long merchantId) {
+        return convenientProductService.getMerchantProduct(merchantId);
+    }
+
+    /**
+     * 获取产品详情
+     *
+     * @param productId
+     * @return
+     */
+    @GetMapping("/product/detail")
+    public R getProductDetail(@RequestParam("productId") Long productId) {
+        return convenientProductService.getProduct(productId);
+    }
+
+    /**
+     * 搜索商家信息
+     *
+     * @param pageSearchDTO
+     * @return
+     */
+    @PostMapping("/merchant/search")
+    public R pageSearchMerchant(@RequestBody PageSearchDTO pageSearchDTO) {
+        return convenientMerchantService.pageSearchMerchant(pageSearchDTO);
+    }
+
+    /**
+     * 搜索商品信息
+     *
+     * @param pageSearchDTO
+     * @return
+     */
+    @PostMapping("/product/search")
+    public R pageSearchProduct(@RequestBody PageSearchDTO pageSearchDTO) {
+        return convenientProductService.pageSearchProduct(pageSearchDTO);
+    }
+
+    /**
+     * 增加商家店铺咨询量
+     *
+     * @param merchantId
+     * @return
+     */
+    @GetMapping("/merchant/consult")
+    public R consultMerchant(@RequestParam("merchantId") Long merchantId) {
+        return convenientMerchantService.consultMerchant(merchantId);
+    }
+
+    /**
+     * 增加商家店铺浏览量
+     *
+     * @param merchantId
+     * @return
+     */
+    @GetMapping("/merchant/incr-view")
+    public R incrMerchantView(@RequestParam("merchantId") Long merchantId) {
+        return convenientMerchantService.incrMerchantView(merchantId);
+    }
+
+    /**
+     * 增加产品浏览量
+     *
+     * @param productId
+     * @return
+     */
+    @GetMapping("/product/incr-view")
+    public R incrProductView(@RequestParam("productId") Long productId) {
+        return convenientProductService.incrProductView(productId);
+    }
+
+    /**
+     * 获取商家导出数据
+     *
+     * @param exportMerchantDTO
+     * @return
+     */
+    @PostMapping("/merchant/export")
+    public R exportMerchant(@RequestBody ExportMerchantDTO exportMerchantDTO) {
+        return convenientMerchantService.exportMerchant(exportMerchantDTO);
+    }
+
+    /**
+     * 定时任务每隔半小时将商家浏览量和咨询量总值计入指定商家数据中
+     *
+     * @return
+     */
+    @PostMapping("/timedTaskWriteDataToMerchantJobHandler")
+    public R timedTaskWriteDataToMerchantJobHandler() {
+        return convenientMerchantService.timedTaskWriteDataToMerchantJobHandler();
+    }
+
+    /**
+     * 获取商家上下架产品数量
+     *
+     * @param merchantId
+     * @return
+     */
+    @GetMapping("/product/shelf-num")
+    public R getProductShelfNum(@RequestParam("merchantId") Long merchantId) {
+        return convenientProductService.getProductShelfNum(merchantId);
+    }
+
+
+    /**
+     * 分页查询自提点 运营后台
+     *
+     * @param pageConvenientElevatingPointDTO
+     * @return
+     */
+    @PostMapping("/point/page")
+    public R pagePoint(@RequestBody PageConvenientElevatingPointDTO pageConvenientElevatingPointDTO) {
+        return convenientElevatingPointService.pagePoint(pageConvenientElevatingPointDTO);
+    }
+
+    /**
+     * 便民服务新增 自提点
+     *
+     * @param convenientElevatingPointDTO
+     * @return
+     */
+    @PostMapping("/point/add")
+    public R addPoint(@RequestBody ConvenientElevatingPointDTO convenientElevatingPointDTO) {
+        return convenientElevatingPointService.addPoint(convenientElevatingPointDTO);
+    }
+
+    /**
+     * 编辑便民服务 自提点
+     *
+     * @param convenientElevatingPointDTO
+     * @return
+     */
+    @PutMapping("/point/put")
+    public R putPoint(@RequestBody ConvenientElevatingPointDTO convenientElevatingPointDTO) {
+        return convenientElevatingPointService.putPoint(convenientElevatingPointDTO);
+    }
+
+    /**
+     * 删除便民服务 自提点
+     *
+     * @param pointId
+     * @param operator
+     * @return
+     */
+    @DeleteMapping("/point/delete")
+    public R deletePoint(@RequestParam("pointId") Long pointId, @RequestParam("operator") Long operator) {
+        return convenientElevatingPointService.deletePoint(pointId, operator);
+    }
+
+    /**
+     * 便民服务详情 自提点
+     *
+     * @param pointId
+     * @return
+     */
+    @GetMapping("/point/detail")
+    public R detailPoint(@RequestParam("pointId") Long pointId) {
+        return convenientElevatingPointService.detailPoint(pointId);
+    }
+
+    /**
+     * 新增商品分类
+     *
+     * @param convenientGoodsCategoryDTO
+     * @return
+     */
+    @PostMapping("/goodsCategory/add")
+    public R addGoodsCategory(@RequestBody ConvenientGoodsCategoryDTO convenientGoodsCategoryDTO) {
+        return convenientGoodsCategoryService.addGoodsCategory(convenientGoodsCategoryDTO);
+    }
+
+    /**
+     * 编辑
+     *
+     * @param convenientGoodsCategoryDTO
+     * @return
+     */
+    @PutMapping("/goodsCategory/put")
+    public R putGoodsCategory(@RequestBody ConvenientGoodsCategoryDTO convenientGoodsCategoryDTO) {
+        return convenientGoodsCategoryService.putGoodsCategory(convenientGoodsCategoryDTO);
+    }
+
+    /**
+     * 删除商品分类
+     *
+     * @param categoryId
+     * @return
+     */
+    @DeleteMapping("/goodsCategory/delete")
+    public R deleteGoodsCategory(@RequestParam("categoryId") Long categoryId, @RequestParam("operator") Long operator) {
+        return convenientGoodsCategoryService.deleteGoodsCategoryById(categoryId, operator);
+    }
+
+    /**
+     * 获取商品分类详情
+     *
+     * @param categoryId
+     * @return
+     */
+    @GetMapping("/goodsCategory/get")
+    public R getGoodsCategory(@RequestParam("categoryId") Long categoryId) {
+        return convenientGoodsCategoryService.getGoodsCategoryById(categoryId);
+    }
+
+    /**
+     * 分页查询商品分类
+     *
+     * @param pageConvenientGoodsCategoryDTO
+     * @return
+     */
+    @PostMapping("/goodsCategory/page")
+    public R pageGoodsCategory(@RequestBody PageConvenientGoodsCategoryDTO pageConvenientGoodsCategoryDTO) {
+        return convenientGoodsCategoryService.pageGoodsCategory(pageConvenientGoodsCategoryDTO);
+    }
+
+    /**
+     * 获取所有商品分类
+     *
+     * @return
+     */
+    @GetMapping("/goodsCategory/getAllGoodsCategories")
+    public R getAllGoodsCategories() {
+        return convenientGoodsCategoryService.getAllGoodsCategories();
+    }
+
+    /**
+     * 获取当前商铺周围的自提点信息以及距离手机距离
+     *
+     * @param merchantId
+     * @return
+     */
+    @GetMapping("/point/findPointByMerchantId")
+    public R findPointByMerchantId(@RequestParam("merchantId") Long merchantId, @RequestParam("lat") String lat, @RequestParam("lng") String lng) {
+        return convenientElevatingPointService.findPointByMerchantId(merchantId, lat, lng);
+    }
+
+
+    /**
+     * 获取商家周围 n(km)的自提点数量
+     *
+     * @param distance
+     * @return
+     */
+    @GetMapping("/point/findPointNumByDistance")
+    public R findPointNumByDistance(@RequestParam("distance") Integer distance, @RequestParam("lat") String lat, @RequestParam("lng") String lng) {
+        return convenientElevatingPointService.findPointNumByDistance(distance, lat, lng);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/DictionaryApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/DictionaryApi.java
new file mode 100644
index 0000000..bc40457
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/DictionaryApi.java
@@ -0,0 +1,92 @@
+package com.panzhihua.service_community.api;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.validation.BindingResult;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.model.vos.BcDictionaryItemVO;
+import com.panzhihua.common.model.vos.BcDictionaryVO;
+import com.panzhihua.common.model.vos.DictionaryVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.service.BcDictionaryService;
+
+import lombok.extern.slf4j.Slf4j;
+import springfox.documentation.annotations.ApiIgnore;
+
+/**
+ * 字典
+ * 
+ * @author xyh
+ * @date 2021/6/11 16:11
+ */
+@Slf4j
+@RestController
+@RequestMapping("/dictionary")
+public class DictionaryApi {
+
+    @Resource
+    private BcDictionaryService bcDictionaryService;
+
+    /**
+     * 插入字典
+     * 
+     * @param dictionaryVO
+     *            字典数据
+     * @return Boolean 是否保存成功
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @PostMapping("/insertDiction")
+    R insertDiction(@RequestBody DictionaryVO dictionaryVO, @ApiIgnore BindingResult results) {
+        if (results.hasErrors()) {
+            return R.fail(results.getFieldError().getDefaultMessage());
+        }
+        return bcDictionaryService.insertDiction(dictionaryVO);
+    }
+
+    /**
+     * 插入字典项
+     * 
+     * @param dictionaryVO
+     *            字典数据
+     * @return Boolean 是否保存成功
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @PostMapping("/insertDictionItem")
+    R insertDictionItem(@RequestBody BcDictionaryVO dictionaryVO, @ApiIgnore BindingResult results) {
+        if (results.hasErrors()) {
+            return R.fail(results.getFieldError().getDefaultMessage());
+        }
+        return bcDictionaryService.insertDictionItem(dictionaryVO);
+    }
+
+    /**
+     * 根据字典key查询自典项
+     * 
+     * @param key
+     * @return
+     */
+    @GetMapping("/listDictionaryByKey")
+    R<List<BcDictionaryVO>> listDictionaryByKey(@RequestParam("key") String key) {
+
+        return bcDictionaryService.getDictionaryByKey(key);
+    }
+
+    /**
+     * description 根据字典code查询自典项
+     *
+     * @param code
+     *            入参参数
+     * @return BcDictionaryVO 字典
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @GetMapping("/getByCode")
+    BcDictionaryItemVO getByCode(@RequestParam("dictId") String dictId, @RequestParam("code") String code) {
+        return bcDictionaryService.getByCode(dictId, code);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/DisablePersonApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/DisablePersonApi.java
new file mode 100644
index 0000000..1a36b09
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/DisablePersonApi.java
@@ -0,0 +1,50 @@
+package com.panzhihua.service_community.api;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+
+import org.springframework.validation.BindingResult;
+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.RestController;
+
+import com.panzhihua.common.model.dtos.community.DisabledPersonsDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.utlis.ValidableList;
+import com.panzhihua.service_community.service.DisabledPersonsService;
+
+import lombok.extern.slf4j.Slf4j;
+import springfox.documentation.annotations.ApiIgnore;
+
+/**
+ * program 攀枝花智慧社区项目 description 特殊人群管理API
+ *
+ * @author manailin Date 2021-01-22 15:30
+ **/
+@Slf4j
+@RestController
+@RequestMapping("/")
+public class DisablePersonApi {
+
+    @Resource
+    private DisabledPersonsService disabledPersonsService;
+
+    /**
+     * description 批量保存重点人群人员信息
+     *
+     * @param list
+     *            重点人群信息
+     * @return R 保存结果
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @PostMapping("/disable_person/batch/save")
+    public R BatchSave(@RequestBody @Valid ValidableList<DisabledPersonsDTO> list, @ApiIgnore BindingResult results) {
+        if (results.hasErrors()) {
+            return R.fail(results.getFieldError().getDefaultMessage());
+        }
+        return disabledPersonsService.saveBatchDisabledPerson(list);
+    }
+
+}
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
new file mode 100644
index 0000000..e932e2d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/DiscussApi.java
@@ -0,0 +1,434 @@
+package com.panzhihua.service_community.api;
+
+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.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.service.ComActDiscussService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 议事投票
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-22 14:52
+ **/
+@Slf4j
+@RestController
+@RequestMapping("/")
+public class DiscussApi {
+    @Resource
+    private ComActDiscussService comActDiscussService;
+
+    /**
+     * 议事投票-新增
+     * 
+     * @param comActDiscussDTO
+     *            新增参数
+     * @return 新增结果
+     */
+    @PostMapping("adddiscuss")
+    public R addDiscuss(@RequestBody ComActDiscussDTO comActDiscussDTO) {
+        return comActDiscussService.addDiscuss(comActDiscussDTO);
+    }
+
+    /**
+     * 议事投票-编辑
+     * @param comActDiscussDTO  请求参数
+     * @return  编辑结果
+     */
+    @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 ComActDiscussVO
+     */
+    @PostMapping("detaildiscussdesensitize")
+    public R detailDiscussDesensitize(@RequestBody ComActDiscussDetailDTO discussDetailDTO) {
+        return comActDiscussService.detailDiscussDesensitize(discussDetailDTO);
+    }
+
+    /**
+     * 分页查询评论下回复列表
+     * @param discussDetailDTO  请求参数
+     * @return  回复列表
+     */
+    @PostMapping("discussCommentReplyAdmin")
+    public R discussCommentReplyAdmin(@RequestBody ComActDiscussDetailDTO discussDetailDTO) {
+        return comActDiscussService.discussCommentReplyAdmin(discussDetailDTO);
+    }
+
+    /**
+     * 议事投票-删除
+     * 
+     * @param id
+     *            主键
+     * @return 删除结果
+     */
+    @PostMapping("deletediscuss")
+    public R deleteDiscuss(@RequestParam("id") Long id) {
+        return comActDiscussService.deleteDiscuss(id);
+    }
+
+    /**
+     * 议事投票-回复
+     * 
+     * @param comActDiscussCommentDTO
+     *            评论内容
+     * @return 回复结果
+     */
+    @PostMapping("adddiscusscomment")
+    public R addDiscussComment(@RequestBody ComActDiscussCommentDTO comActDiscussCommentDTO) {
+        return comActDiscussService.addDiscussComment(comActDiscussCommentDTO);
+    }
+
+    /**
+     * 议事投票-分页查询
+     * 
+     * @param pageComActDiscussDTO
+     *            查询参数
+     * @return ComActDiscussVO
+     */
+    @PostMapping("pagediscuss")
+    public R pageDiscuss(@RequestBody PageComActDiscussDTO pageComActDiscussDTO) {
+        return comActDiscussService.pageDiscuss(pageComActDiscussDTO);
+    }
+
+    /**
+     * 议事投票-后台分页查询
+     *
+     * @param pageComActDiscussDTO
+     *            查询参数
+     * @return ComActDiscussVO
+     */
+    @PostMapping("pagediscussAdmin")
+    public R pageDiscussAdmin(@RequestBody PageComActDiscussDTO pageComActDiscussDTO) {
+        return comActDiscussService.pageDiscussAdmin(pageComActDiscussDTO);
+    }
+
+    /**
+     * 投票情况-分页查询
+     * @param pageVoteSituationDTO
+     * @return
+     */
+    @PostMapping("pageVoteSituation")
+    public R pageVoteSituation(@RequestBody PageVoteSituationDTO pageVoteSituationDTO) {
+        return comActDiscussService.pageVoteSituation(pageVoteSituationDTO);
+    }
+
+    /**
+     * 投票情况详情
+     * @param optionUserId
+     * @return
+     */
+    @GetMapping("detailVoteSituation")
+    public R detailVoteSituation(@RequestParam("optionUserId") Long optionUserId) {
+        return comActDiscussService.detailVoteSituation(optionUserId);
+    }
+
+    /**
+     * 议事投票-评论-查看
+     * 
+     * @param id
+     *            主键
+     * @return 详情
+     */
+    @PostMapping("detaildiscusscomment")
+    public R detailDiscusscomment(@RequestParam("id") Long id) {
+        return comActDiscussService.detailDiscusscomment(id);
+    }
+
+    /**
+     * 议事投票评论详情
+     * @param pageComActDiscussCommentDTO   请求参数
+     * @return  议事投票详情
+     */
+    @PostMapping("detaildiscusscommentAdmin")
+    public R detailDiscusscommentAdmin(@RequestBody PageComActDiscussCommentDTO pageComActDiscussCommentDTO) {
+        return comActDiscussService.detailDiscussCommentAdmin(pageComActDiscussCommentDTO);
+    }
+
+    /**
+     * 议事投票-评论-置顶
+     * 
+     * @param id
+     *            主键
+     * @return 置顶结果
+     */
+    @PostMapping("putdiscusscommenttop")
+    R putDiscussCommentTop(@RequestParam("id") Long id) {
+        return comActDiscussService.putDiscussCommentTop(id);
+    }
+
+    /**
+     * 议事投票-评论-回复
+     * 
+     * @param comActDiscussCommentDTO
+     *            回复内容
+     * @return 回复结果
+     */
+    @PostMapping("adddiscusscommentback")
+    public R addDiscussCommentBack(@RequestBody ComActDiscussCommentDTO comActDiscussCommentDTO) {
+        return comActDiscussService.addDiscussCommentBack(comActDiscussCommentDTO);
+    }
+
+    /**
+     * 议事投票-评论-分页查询
+     * 
+     * @param pageComActDiscussCommentDTO
+     *            分页查询参数
+     * @return ComActDiscussCommentVO
+     */
+    @PostMapping("pagediscusscomment")
+    public R pageDiscussComment(@RequestBody PageComActDiscussCommentDTO pageComActDiscussCommentDTO) {
+        return comActDiscussService.pageDiscussComment(pageComActDiscussCommentDTO);
+    }
+
+    /**
+     * 议事投票-评论-后台分页查询
+     *
+     * @param pageComActDiscussCommentDTO
+     *            分页查询参数
+     * @return ComActDiscussCommentVO
+     */
+    @PostMapping("pagediscusscommentAdmin")
+    public R pageDiscussCommentAdmin(@RequestBody PageComActDiscussCommentDTO pageComActDiscussCommentDTO) {
+        return comActDiscussService.pageDiscussCommentAdmin(pageComActDiscussCommentDTO);
+    }
+
+    /**
+     * 议事投票-分页查询 小程序
+     *
+     * @param pageComActDiscussDTO
+     *            查询参数
+     * @return ComActDiscussVO 分页
+     */
+    @PostMapping("pagediscussapplets")
+    public R pageDiscussApplets(@RequestBody PageComActDiscussDTO pageComActDiscussDTO) {
+        return comActDiscussService.pageDiscussApplets(pageComActDiscussDTO);
+    }
+
+    /**
+     * 议事投票-分页查询 小程序 脱敏
+     *
+     * @param pageComActDiscussDTO
+     *            查询参数
+     * @return ComActDiscussVO 分页
+     */
+    @PostMapping("pagediscussappletsdesensitize")
+    public R pageDiscussAppletsDesensitize(@RequestBody PageComActDiscussDTO pageComActDiscussDTO) {
+        return comActDiscussService.pageDiscussAppletsDesensitize(pageComActDiscussDTO);
+    }
+
+    /**
+     * 议事投票-点赞、取消点赞
+     * 
+     * @param comActDiscussUserDTO
+     *            操作类型
+     * @return 操作结果
+     */
+    @PostMapping("putdiscussuser")
+    public R putDiscussUser(@RequestBody ComActDiscussUserDTO comActDiscussUserDTO) {
+        return comActDiscussService.putDiscussUser(comActDiscussUserDTO);
+    }
+
+    /**
+     * 议事投票-评论-分页查询 小程序
+     * 
+     * @param pageComActDiscussCommentDTO
+     *            分页参数
+     * @return ComActDiscussCommentVO
+     */
+    @PostMapping("pagediscusscommentapplets")
+    public R pageDiscussCommentApplets(@RequestBody PageComActDiscussCommentDTO pageComActDiscussCommentDTO) {
+        return comActDiscussService.pageDiscussCommentApplets(pageComActDiscussCommentDTO);
+    }
+
+
+
+    /**
+     * 议事投票-评论-删除 小程序
+     *
+     * @param pageComActDiscussCommentDTO
+     *            分页参数
+     * @return ComActDiscussCommentVO
+     */
+    @GetMapping("deleteCommentApplets")
+    public R deleteCommentApplets(@RequestParam("id") String id) {
+        return comActDiscussService.deleteId(id);
+    }
+    /**
+     * 议事投票-评论-分页查询 小程序
+     *
+     * @param pageComActDiscussCommentDTO
+     *            分页参数
+     * @return ComActDiscussCommentVO
+     */
+    @PostMapping("pagediscusscommentappletsdesensitize")
+    public R pageDiscussCommentAppletsDesensitize(@RequestBody PageComActDiscussCommentDTO pageComActDiscussCommentDTO) {
+        return comActDiscussService.pageDiscussCommentAppletsDesensitize(pageComActDiscussCommentDTO);
+    }
+
+    /**
+     * 议事投票-详情 小程序
+     * 
+     * @param id
+     *            主键
+     * @param userId
+     *            用户主键
+     * @return ComActDiscussVO
+     */
+    @PostMapping("detaildiscussapplets")
+    public R detailDiscussApplets(@RequestParam("id") Long id, @RequestParam("userId") Long userId) {
+        return comActDiscussService.detailDiscussApplets(id, userId);
+    }
+
+    /**
+     * 议事投票-详情 小程序 脱敏
+     *
+     * @param id
+     *            主键
+     * @param userId
+     *            用户主键
+     * @return ComActDiscussVO
+     */
+    @PostMapping("detaildiscussappletsdesensitize")
+    public R detailDiscussAppletsDesensitize(@RequestParam("id") Long id, @RequestParam("userId") Long userId) {
+        return comActDiscussService.detailDiscussAppletsDesensitize(id, userId);
+    }
+
+    /**
+     * 议事投票-投票
+     * 
+     * @param discussVoteOptionDTO
+     *            投票信息
+     * @return 投票结果
+     */
+    @PostMapping("adddiscussoptionuser")
+    public R addDiscussOptionUser(@RequestBody DiscussVoteOptionDTO discussVoteOptionDTO) {
+        return comActDiscussService.addDiscussOptionUser(discussVoteOptionDTO);
+    }
+
+    /**
+     * 议事投票-评论-点赞、取消点赞
+     * 
+     * @param comActDiscussUserDTO
+     *            评论点赞
+     * @return 点赞结果
+     */
+    @PostMapping("putdiscusscommentuser")
+    public R putDiscussCommentUser(@RequestBody ComActDiscussCommentUserDTO comActDiscussUserDTO) {
+        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/EasyPhotoActivityApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/EasyPhotoActivityApi.java
new file mode 100644
index 0000000..9fa38ef
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/EasyPhotoActivityApi.java
@@ -0,0 +1,84 @@
+package com.panzhihua.service_community.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.model.dtos.community.easyPhoto.AddEasyPhotoActivityDTO;
+import com.panzhihua.common.model.dtos.community.easyPhoto.EditEasyPhotoActivityDTO;
+import com.panzhihua.common.model.dtos.community.easyPhoto.PageEasyPhotoActivityDTO;
+import com.panzhihua.common.model.dtos.community.easyPhoto.PageEasyPhotoActivityUserDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.service.ComActEasyPhotoActivityService;
+
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+@RestController
+@RequestMapping("/easy/photo/activity")
+public class EasyPhotoActivityApi {
+
+    @Resource
+    private ComActEasyPhotoActivityService comActEasyPhotoActivityService;
+
+    /**
+     * 社区后台-分页查询随手拍活动列表
+     * 
+     * @param pageEasyPhotoActivityDTO
+     *            请求参数
+     * @return 随手拍活动列表
+     */
+    @PostMapping("/page")
+    public R page(@RequestBody PageEasyPhotoActivityDTO pageEasyPhotoActivityDTO) {
+        return comActEasyPhotoActivityService.pageActivity(pageEasyPhotoActivityDTO);
+    }
+
+    /**
+     * 社区后台-添加随手拍活动
+     * 
+     * @param addEasyPhotoActivityDTO
+     *            请求参数
+     * @return 添加结果
+     */
+    @PostMapping("/add")
+    public R add(@RequestBody AddEasyPhotoActivityDTO addEasyPhotoActivityDTO) {
+        return comActEasyPhotoActivityService.addActivity(addEasyPhotoActivityDTO);
+    }
+
+    /**
+     * 社区后台-编辑随手拍活动
+     * 
+     * @param editEasyPhotoActivityDTO
+     *            请求参数
+     * @return 编辑结果
+     */
+    @PostMapping("/edit")
+    public R edit(@RequestBody EditEasyPhotoActivityDTO editEasyPhotoActivityDTO) {
+        return comActEasyPhotoActivityService.editActivity(editEasyPhotoActivityDTO);
+    }
+
+    /**
+     * 社区后台-取消随手拍活动
+     * 
+     * @param id
+     *            随手拍活动id
+     * @return 取消结果
+     */
+    @GetMapping("/cancel")
+    public R cancel(@RequestParam("id") Long id) {
+        return comActEasyPhotoActivityService.cancelActivity(id);
+    }
+
+    /**
+     * 分页查询随手拍活动下居民参与记录
+     * 
+     * @param pageEasyPhotoActivityUserDTO
+     *            请求参数
+     * @return 居民参与记录
+     */
+    @PostMapping("/page/user")
+    public R pageUser(@RequestBody PageEasyPhotoActivityUserDTO pageEasyPhotoActivityUserDTO) {
+        return comActEasyPhotoActivityService.pageActivityUser(pageEasyPhotoActivityUserDTO);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/EasyPhotoClassifyApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/EasyPhotoClassifyApi.java
new file mode 100644
index 0000000..f69bf15
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/EasyPhotoClassifyApi.java
@@ -0,0 +1,90 @@
+package com.panzhihua.service_community.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.model.dtos.community.easyPhoto.AddEasyPhotoClassifyDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.service.ComActEasyPhotoClassifyService;
+
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+@RestController
+@RequestMapping("/classify")
+public class EasyPhotoClassifyApi {
+
+    @Resource
+    private ComActEasyPhotoClassifyService comActEasyPhotoClassifyService;
+
+    /**
+     * 运营后台-新增随手拍分类
+     * 
+     * @param addPhotoClassify
+     *            请求参数
+     * @return 新增结果
+     */
+    @PostMapping("/admin/add")
+    public R addPhotoClassify(@RequestBody AddEasyPhotoClassifyDTO addPhotoClassify) {
+        return comActEasyPhotoClassifyService.addPhotoClassify(addPhotoClassify);
+    }
+
+    /**
+     * 运营后台-编辑随手拍分类
+     * 
+     * @param addPhotoClassify
+     *            请求参数
+     * @return 编辑结果
+     */
+    @PostMapping("/admin/edit")
+    public R editPhotoClassify(@RequestBody AddEasyPhotoClassifyDTO addPhotoClassify) {
+        return comActEasyPhotoClassifyService.editPhotoClassify(addPhotoClassify);
+    }
+
+    /**
+     * 运营后台-随手拍分类详情
+     * 
+     * @param id
+     *            随手拍分类id
+     * @return 随手拍分类
+     */
+    @GetMapping("/admin/detail")
+    public R detailPhotoClassify(@RequestParam("id") Long id) {
+        return comActEasyPhotoClassifyService.detailPhotoClassify(id);
+    }
+
+    /**
+     * 运营后台-分页查询随手拍分类
+     * 
+     * @param addPhotoClassify
+     *            请求参数
+     * @return 随手拍分类列表
+     */
+    @PostMapping("/admin/page")
+    public R pagePhotoClassify(@RequestBody AddEasyPhotoClassifyDTO addPhotoClassify) {
+        return comActEasyPhotoClassifyService.pagePhotoClassify(addPhotoClassify);
+    }
+
+    /**
+     * 运营后台-查询随手拍分类列表
+     * 
+     * @return 随手拍分类列表
+     */
+    @GetMapping("/admin/list")
+    public R listPhotoClassify(@RequestParam("areaCode")String areaCode) {
+        return comActEasyPhotoClassifyService.listPhotoClassify(areaCode);
+    }
+
+    /**
+     * 运营后台-随手拍分类删除
+     * 
+     * @param id
+     *            随手拍分类id
+     * @return 删除结果
+     */
+    @GetMapping("/admin/delete")
+    public R deletePhotoClassify(@RequestParam("id") Long id) {
+        return comActEasyPhotoClassifyService.deletePhotoClassify(id);
+    }
+}
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
new file mode 100644
index 0000000..3da5556
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/EldersAuthApi.java
@@ -0,0 +1,550 @@
+package com.panzhihua.service_community.api;
+
+import java.util.List;
+
+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.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.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 lombok.extern.slf4j.Slf4j;
+
+/**
+ * @ClasssName EldersAuthApi
+ * @Description TODO
+ * @Author cedoo
+ * @Date 2021/6/9
+ * @Version 1.0
+ **/
+@Slf4j
+@RestController
+@RequestMapping("/elders")
+public class EldersAuthApi {
+
+    @Resource
+    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) {
+        ComEldersAuthUserDO authUserDO = comEldersAuthUserService.getById(authUserId);
+
+        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).eq(EldersAuthDO::getFamilyUserId,authUserId)
+                    .ge(EldersAuthDO::getCreateAt, DateUtils.getFirstDayOfMonth()));
+            if (!eldersAuthDOList.isEmpty()) {
+                return R.fail("该老人已认证");
+            }
+
+        }
+        ComElderAuthUserDetailVO authUserDetailVO = new ComElderAuthUserDetailVO();
+        BeanUtils.copyProperties(authUserDO, authUserDetailVO);
+        return R.ok(authUserDetailVO);
+    }
+
+    /**
+     * 人脸核验新增高龄认证记录
+     * 
+     * @param authGetResultDTO
+     *            请求参数
+     * @return 新增结果
+     */
+    @PostMapping("/add/auth")
+    public R addAuth(@RequestBody ComEldersAuthGetResultDTO authGetResultDTO) {
+        try {
+            return eldersAuthService.addAuthByEldersApp(authGetResultDTO);
+        } catch (Exception e) {
+            throw new ServiceException(e.getMessage());
+        }
+    }
+
+    /**
+     * 高龄认证分页接口
+     * 
+     * @param authPageDTO
+     *            请求参数
+     * @return 查询结果
+     */
+    @PostMapping("/page/auth")
+    public R pageEldersByApp(@RequestBody ComEldersAuthPageDTO authPageDTO) throws Exception {
+        return eldersAuthService.pageEldersByApp(authPageDTO);
+    }
+
+    /**
+     * 添加高龄老人接口
+     * 
+     * @param authUserAddAppDTO
+     *            请求参数
+     * @return 添加结果
+     */
+    @PostMapping("/add")
+    public R addEldersByApp(@RequestBody ComEldersAuthUserAddAppDTO authUserAddAppDTO) {
+        return eldersAuthService.addEldersByApp(authUserAddAppDTO);
+    }
+
+    /**
+     * 修改高龄老人接口
+     * 
+     * @param authUserAddAppDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    @PostMapping("/edit")
+    public R editEldersByApp(@RequestBody ComEldersAuthUserAddAppDTO authUserAddAppDTO) {
+        return eldersAuthService.editEldersByApp(authUserAddAppDTO);
+    }
+
+    /**
+     * 查询老龄认证记录
+     * 
+     * @param pageComEldersRecordsDTO
+     * @return
+     */
+    @PostMapping("/records")
+    R queryEldersRecord(@RequestBody PageComEldersRecordsDTO pageComEldersRecordsDTO) {
+        return eldersAuthService.queryEldersRecord(pageComEldersRecordsDTO);
+    }
+
+    /**
+     * 查询老龄认证记录详细
+     * 
+     * @param id
+     * @return
+     */
+    @PostMapping("/records/deatils")
+    R<ComEldersAuthElderlyDetailsVO> comEldersAuthElderlyDetails(@RequestParam("id") Long id) {
+        return eldersAuthService.comEldersAuthElderlyDetails(id);
+    }
+
+    /**
+     *
+     * * 查询老龄认证社区认证方式
+     * 
+     * @param eldersAuthTypeQueryDTO
+     * @return
+     */
+    @PostMapping("/authType")
+    public R elderAuthType(@RequestBody EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO) {
+        return eldersAuthService.communityAuthType(eldersAuthTypeQueryDTO);
+    }
+
+    /**
+     * 分页查询生存认证记录
+     * 
+     * @param pageEldersAuthElderlyDTO
+     * @return
+     */
+    @PostMapping("/records/page")
+    R pageQueryEldersAuthRecord(@RequestBody PageEldersAuthRecordDTO pageEldersAuthElderlyDTO) {
+        return eldersAuthService.pageQueryEldersAuthRecord(pageEldersAuthElderlyDTO);
+    }
+
+    @PostMapping("/getAuthHistoryList")
+    public R getAuthHistoryList(@RequestBody PageEldersAuthHistoryDTO pageEldersAuthElderlyDTO) {
+        return eldersAuthService.getAuthHistoryList(pageEldersAuthElderlyDTO);
+    }
+
+    @PostMapping("/getAuthHistoryExport")
+    public R getAuthHistoryExport(@RequestBody PageEldersAuthHistoryDTO pageEldersAuthElderlyDTO) {
+        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);
+    }
+
+    /**
+     * 导出高龄认证记录 exportElderAuthRecords  导出高龄认证记录
+     * @param    pageElderAuthRecordsDTO   查询参数
+     * @return    R  查询结果
+     * @date 2021/9/02 11:03
+     */
+    @PostMapping("/authRecords/export")
+    public R exportElderAuthRecords(@RequestBody PageElderAuthRecordsDTO pageElderAuthRecordsDTO){
+        return comElderAuthRecordsService.export(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);
+    }
+
+    /**
+     * 高龄认证添加
+     * @param comElderAuthRecordVO
+     * @return
+     */
+    @PostMapping("/authRecord/add")
+    R addAuthRecord(@RequestBody ComElderAuthRecordVO comElderAuthRecordVO){
+        return comElderAuthRecordsService.add(comElderAuthRecordVO);
+    }
+    /**
+     * 养老认证添加
+     * @param comElderAuthRecordVO
+     * @return
+     */
+    @PostMapping("/pensionAuthRecord/add")
+    R addPensionAuthRecordVO(@RequestBody ComElderAuthRecordVO comElderAuthRecordVO){
+        return comPensionAuthRecordService.add(comElderAuthRecordVO);
+    }
+
+    /**
+     * 导出养老认证记录 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);
+    }
+
+    /**
+     * 身份认证定时任务
+     * @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/EldersAuthElderlyApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/EldersAuthElderlyApi.java
new file mode 100644
index 0000000..6168678
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/EldersAuthElderlyApi.java
@@ -0,0 +1,90 @@
+package com.panzhihua.service_community.api;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.model.dtos.community.EldersAuthElderlyDTO;
+import com.panzhihua.common.model.dtos.community.PageEldersAuthElderlyDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.EldersAuthElderlyExcelVO;
+import com.panzhihua.service_community.service.ComEldersAuthElderlyService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @author xyh
+ * @date 2021/6/9 14:29
+ */
+@Slf4j
+@RestController
+@RequestMapping("/eldersauthelderly")
+public class EldersAuthElderlyApi {
+
+    @Resource
+    private ComEldersAuthElderlyService comEldersAuthElderlyService;
+
+    /**
+     * 高领老人列表
+     * 
+     * @param pageEldersAuthElderlyDTO
+     * @return
+     */
+    @PostMapping("/page")
+    R query(@RequestBody PageEldersAuthElderlyDTO pageEldersAuthElderlyDTO) {
+        // ClazzUtils.setIfStringIsEmpty(pageEldersAuthElderlyDTO);
+        // pageEldersAuthElderlyDTO.setUserId(getUserId());
+        return comEldersAuthElderlyService.pageQueryEldersAuthElderly(pageEldersAuthElderlyDTO);
+    }
+
+    /**
+     * 批量保存高龄老人
+     * 
+     * @param eldersAuthElderlyExcelVOS
+     * @return
+     */
+    @PostMapping("/batchSave")
+    R batchSave(@RequestBody List<EldersAuthElderlyExcelVO> eldersAuthElderlyExcelVOS,
+        @RequestParam("communityId") Long communityId, @RequestParam("createBy") Long createBy) {
+        if (eldersAuthElderlyExcelVOS == null || eldersAuthElderlyExcelVOS.size() == 0) {
+            return R.fail("模板高龄老人数据为空");
+        }
+        return comEldersAuthElderlyService.batchSave(eldersAuthElderlyExcelVOS, communityId, createBy);
+    }
+
+    /**
+     * 查看高龄老人详情
+     * 
+     * @param id
+     * @return
+     */
+    @GetMapping("/{id}")
+    R getById(@PathVariable("id") Long id) {
+        return comEldersAuthElderlyService.getEldersAuthElderlyById(id);
+    }
+
+    /**
+     * 修改高领老人信息
+     * 
+     * @param eldersAuthElderlyDTO
+     * @return
+     */
+    @PostMapping("/update")
+    R update(@RequestBody EldersAuthElderlyDTO eldersAuthElderlyDTO) {
+        return comEldersAuthElderlyService.updateEldersAuthElderly(eldersAuthElderlyDTO);
+    }
+
+    /**
+     * 删除高领老人
+     * 
+     * @param id
+     * @return
+     */
+    @PostMapping("/delete")
+    R deleteEldersAuthElderly(@RequestParam("id") Long id) {
+        return comEldersAuthElderlyService.deleteEldersAuthElderly(id);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/HouseApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/HouseApi.java
new file mode 100644
index 0000000..b24200d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/HouseApi.java
@@ -0,0 +1,133 @@
+package com.panzhihua.service_community.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.model.dtos.community.ComOpsHouseDTO;
+import com.panzhihua.common.model.dtos.community.PageComOpsHouseDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngStructAreaVO;
+import com.panzhihua.common.model.vos.community.ComOpsHouseUndercarriageVO;
+import com.panzhihua.common.model.vos.community.ComOpsHouseVO;
+import com.panzhihua.service_community.service.ComMngStructAreaService;
+import com.panzhihua.service_community.service.ComOpsHouseService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 房屋租售
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-22 14:52
+ **/
+@Slf4j
+@RestController
+@RequestMapping("/")
+public class HouseApi {
+    @Resource
+    private ComOpsHouseService comOpsHouseService;
+    @Resource
+    private ComMngStructAreaService comMngStructAreaService;
+
+    /**
+     * 房屋租售-分页查询
+     * 
+     * @param pageComOpsHouseDTO
+     *            查询参数
+     * @return ComOpsHouseVO
+     */
+    @PostMapping("pageOpsHouse")
+    public R pageOpsHouse(@RequestBody PageComOpsHouseDTO pageComOpsHouseDTO) {
+        return comOpsHouseService.pageHouse(pageComOpsHouseDTO);
+    }
+
+    /**
+     * 房屋租售-新增
+     * 
+     * @param comOpsHouseDTO
+     *            新增参数
+     * @return 新增结果
+     */
+    @PostMapping("addOpsHouse")
+    public R addOpsHouse(@RequestBody ComOpsHouseDTO comOpsHouseDTO) {
+        Long houseCommunityId = comOpsHouseDTO.getHouseCommunityId();
+        if (houseCommunityId != null) {
+            R<ComMngStructAreaVO> r = comMngStructAreaService.detailArea(houseCommunityId);
+            if (R.isOk(r) && r.getData() != null) {
+                ComMngStructAreaVO comMngStructAreaVO = r.getData();
+                comOpsHouseDTO.setHouseCommunityName(comMngStructAreaVO.getAreaName());
+            }
+
+        }
+        return comOpsHouseService.addHouse(comOpsHouseDTO);
+    }
+
+    /**
+     * 房屋租售-详情
+     * 
+     * @param id
+     *            主键
+     * @return ComOpsHouseVO
+     */
+    @PostMapping("detailOpsHouse")
+    public R detailOpsHouse(@RequestParam("id") Long id) {
+        return comOpsHouseService.detailHouse(id);
+    }
+
+    /**
+     * 房屋租售-修改
+     * 
+     * @param comOpsHouseVO
+     *            修改参数
+     * @return 修改结果
+     */
+    @PostMapping("putOpsHouse")
+    @Transactional(rollbackFor = Exception.class)
+    public R putOpsHouse(@RequestBody ComOpsHouseVO comOpsHouseVO) {
+        R r = comOpsHouseService.putHouse(comOpsHouseVO);
+        return r;
+    }
+
+    /**
+     * 房屋租售-删除
+     * 
+     * @param id
+     *            主键
+     * @return 删除结果
+     */
+    @PostMapping("deleteOpsHouse")
+    public R deleteHouse(@RequestParam("id") Long id) {
+        return comOpsHouseService.deleteHouse(id);
+    }
+
+    /**
+     * 房屋租售-上下架
+     * 
+     * @param comOpsHouseVO
+     *            上下架参数
+     * @return 上下架结果
+     */
+    @PostMapping("undercarriageHouse")
+    @Transactional(rollbackFor = Exception.class)
+    public R undercarriageHouse(@RequestBody ComOpsHouseUndercarriageVO comOpsHouseVO) {
+        R r = comOpsHouseService.undercarriageHouse(comOpsHouseVO);
+        return r;
+    }
+
+    /**
+     * 房屋租售-小程序修改
+     * 
+     * @param comOpsHouseVO
+     *            修改参数
+     * @return 修改结果
+     */
+    @PostMapping("putOpsHouseByApplets")
+    @Transactional(rollbackFor = Exception.class)
+    public R putOpsHouseByApplets(@RequestBody ComOpsHouseVO comOpsHouseVO) {
+        R r = comOpsHouseService.putHouseByApplets(comOpsHouseVO);
+        return r;
+    }
+
+}
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..bef5581
--- /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/LargeScreenApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/LargeScreenApi.java
new file mode 100644
index 0000000..70455fd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/LargeScreenApi.java
@@ -0,0 +1,118 @@
+package com.panzhihua.service_community.api;
+
+import com.panzhihua.common.model.dtos.community.building.BuildingDto;
+import com.panzhihua.common.model.dtos.community.large.AreaStreetDetail;
+import com.panzhihua.common.model.dtos.community.large.AreaStreetDetailResp;
+import com.panzhihua.common.model.dtos.community.large.SumAreaStreetResp;
+import com.panzhihua.common.model.dtos.partybuilding.QryReportResp;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActDynVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.service_community.service.ComActDynService;
+import com.panzhihua.service_community.service.ComStreetService;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+@Slf4j
+@RestController
+@RequestMapping("/largeScreen")
+public class LargeScreenApi {
+
+    @Autowired
+    private ComStreetService comStreetService;
+    @Autowired
+    private CommunityService communityService;
+    @Autowired
+    private ComActDynService comActDynService;
+
+    /**
+     * 地图
+     */
+    @GetMapping("/panzhihuaMap")
+    public R panzhihuaMap(@RequestParam("areaCode")String areaCode){
+        return comStreetService.panzhihuaMap(areaCode);
+    }
+
+    /**
+     * 根据 街道 查询 社区
+     * @param streetId
+     * @return
+     */
+    @GetMapping("/oneTagThreeReal")
+    public R oneTagThreeReal(@RequestParam("streetId") Long streetId){
+        return comStreetService.oneTagThreeReal(streetId);
+    }
+
+    /**
+     * 根据行政区查询街道
+     */
+    @PostMapping("/searchStreet")
+    public R searchStreet(@RequestBody BuildingDto buildingDto){
+        return comStreetService.searchStreet(buildingDto);
+    }
+
+    /**
+     * 花城资讯
+     */
+    @PostMapping("/huachengDyn")
+    public R huachengDyn(@RequestBody ComActDynVO comActDynVO){
+        return comActDynService.pageDynamicByAdmin(comActDynVO);
+//        return communityService.pageDynamicByAdmin(comActDynVO);
+    }
+
+    /**
+     * 综合数据
+     */
+    @GetMapping("/getScreenStatics")
+    public R getScreenStatics(){
+        return comStreetService.getScreenStatics();
+    }
+
+    /**
+     * 特殊人群统计
+     */
+    @GetMapping("/populationStatics")
+    public R populationStatics(@RequestParam("streetId") Long streetId){
+
+        return comStreetService.populationStatics(streetId);
+    }
+
+    /**
+     *  花城党建大屏
+     */
+    @GetMapping("/probably")
+    public R probably(@RequestParam("year") Integer year,@RequestParam("belongTo") String belongTo){
+        return comStreetService.probably(year, belongTo);
+    }
+
+    /**
+     * 查询 一标三实 数据
+     */
+    @GetMapping("/sumAreaStreet")
+    public R<SumAreaStreetResp> sumAreaStreet(){
+        return R.ok(comStreetService.sumAreaStreet());
+    }
+
+    /**
+     *  下拉 明细
+     */
+    @GetMapping(("/areaStreetDetail"))
+    private R<AreaStreetDetail> areaStreetDetail(@RequestParam("code") String code,
+                                                 @RequestParam("type") String type){
+        return R.ok(comStreetService.areaStreetDetail(code, type));
+    }
+
+    /**
+     *   双报到双服务
+     */
+    @GetMapping("/qryReport")
+    public R<List<QryReportResp>> qryReport(@RequestParam(value = "yearTime",required = false) String yearTime){
+        return R.ok(comStreetService.qryReport(yearTime));
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/MainMemberApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/MainMemberApi.java
new file mode 100644
index 0000000..b806ae6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/MainMemberApi.java
@@ -0,0 +1,50 @@
+package com.panzhihua.service_community.api;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+
+import org.springframework.validation.BindingResult;
+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.RestController;
+
+import com.panzhihua.common.model.dtos.community.KeyPersonInfoDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.utlis.ValidableList;
+import com.panzhihua.service_community.service.KeyPersonInfoService;
+
+import lombok.extern.slf4j.Slf4j;
+import springfox.documentation.annotations.ApiIgnore;
+
+/**
+ * program 攀枝花智慧社区项目 description 特殊人群管理API
+ *
+ * @author manailin Date 2021-01-22 15:30
+ **/
+@Slf4j
+@RestController
+@RequestMapping("/")
+public class MainMemberApi {
+
+    @Resource
+    private KeyPersonInfoService keyPersonInfoService;
+
+    /**
+     * description 批量保存重点人群人员信息
+     *
+     * @param list
+     *            重点人群信息
+     * @return R 保存结果
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @PostMapping("/key_person/batch/save")
+    public R BatchSave(@RequestBody @Valid ValidableList<KeyPersonInfoDTO> list, @ApiIgnore BindingResult results) {
+        if (results.hasErrors()) {
+            return R.fail(results.getFieldError().getDefaultMessage());
+        }
+        return keyPersonInfoService.saveBatchKeyPerson(list);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/McsOrderApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/McsOrderApi.java
new file mode 100644
index 0000000..3dc1879
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/McsOrderApi.java
@@ -0,0 +1,111 @@
+package com.panzhihua.service_community.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.api.ApiController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsOrderVO;
+import com.panzhihua.common.utlis.SmsUtil;
+import com.panzhihua.service_community.entity.McsOrder;
+import com.panzhihua.service_community.service.McsOrderService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 商业街订单表(McsOrder)表控制层
+ *
+ * @author makejava
+ * @since 2022-01-04 16:10:07
+ */
+@RestController
+@RequestMapping("mcsOrder")
+public class McsOrderApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private McsOrderService mcsOrderService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.mcsOrderService.pageList(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return this.mcsOrderService.detail(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param mcsOrderVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody McsOrderVO mcsOrderVO) {
+        return this.mcsOrderService.insert(mcsOrderVO);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param mcsOrderVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody McsOrderVO mcsOrderVO) {
+        McsOrder mcsOrder=new McsOrder();
+        BeanUtils.copyProperties(mcsOrderVO,mcsOrder);
+        return R.ok(this.mcsOrderService.updateById(mcsOrder));
+    }
+
+    /**
+     * 微信支付
+     * @param mcsOrderVO
+     * @return
+     */
+    @PostMapping("/wxPay")
+    public R wxPay(@RequestBody McsOrderVO mcsOrderVO){
+        return this.mcsOrderService.wxPay(mcsOrderVO);
+    }
+
+    /**
+     * 发送提醒短信
+     * @param id
+     * @return
+     */
+    @GetMapping("/sendContent")
+    public R sendContent(@RequestParam("id") Long id){
+        return this.mcsOrderService.sendContent(id);
+    }
+
+    /**
+     *微信支付回调
+     * @param mcsOrderVO
+     * @return
+     */
+    @PostMapping("/notify")
+    public R notify(@RequestBody McsOrderVO mcsOrderVO){
+        return this.mcsOrderService.notify(mcsOrderVO);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/MicroCommercialStreetApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/MicroCommercialStreetApi.java
new file mode 100644
index 0000000..15c7fbc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/MicroCommercialStreetApi.java
@@ -0,0 +1,617 @@
+package com.panzhihua.service_community.api;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.DeleteProductDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PutUserInfoDTO;
+import org.springframework.web.bind.annotation.DeleteMapping;
+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.common.model.dtos.community.microCommercialStreet.DisableOrEnableMcsMerchantDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.LoginWithPhoneDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.McsEvaluateDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.McsGameDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.McsInfoDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.McsMerchantDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.McsProductDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageJoinGameListDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageMcsEvaluateDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageMcsGameDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageMcsInformationDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageMcsMerchantDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageMcsProductDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageVerifyRecordDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.SetPopularForGameDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.SetShelfForGameDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.SetShelfForInfoDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.SetShelfForProductDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsConfigVO;
+import com.panzhihua.service_community.service.McsConfigService;
+import com.panzhihua.service_community.service.McsCouponService;
+import com.panzhihua.service_community.service.McsEvaluateService;
+import com.panzhihua.service_community.service.McsGameService;
+import com.panzhihua.service_community.service.McsInformationService;
+import com.panzhihua.service_community.service.McsLabelService;
+import com.panzhihua.service_community.service.McsMerchantService;
+import com.panzhihua.service_community.service.McsProductService;
+import com.panzhihua.service_community.service.McsVerifiedRecordService;
+
+/**
+ * @title: MicroCommercialStreetApi
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 微商业街相关接口
+ * @author: hans
+ * @date: 2021/12/28 14:18
+ */
+@RestController
+@RequestMapping("/microcommercialstreet")
+public class MicroCommercialStreetApi {
+
+    @Resource
+    private McsMerchantService mcsMerchantService;
+    @Resource
+    private McsConfigService mcsConfigService;
+    @Resource
+    private McsGameService mcsGameService;
+    @Resource
+    private McsInformationService mcsInformationService;
+    @Resource
+    private McsEvaluateService mcsEvaluateService;
+    @Resource
+    private McsProductService mcsProductService;
+    @Resource
+    private McsLabelService mcsLabelService;
+    @Resource
+    private McsCouponService mcsCouponService;
+    @Resource
+    private McsVerifiedRecordService mcsVerifiedRecordService;
+
+    /**
+     * 新增数字商业街商家
+     * @param mcsMerchantDTO
+     * @return
+     */
+    @PostMapping("/merchant/add")
+    public R addMcsMerchant(@RequestBody McsMerchantDTO mcsMerchantDTO) {
+        return mcsMerchantService.addMcsMerchant(mcsMerchantDTO);
+    }
+
+    /**
+     * 编辑数字商业街商家
+     * @param mcsMerchantDTO
+     * @return
+     */
+    @PutMapping("/merchant/put")
+    public R putMcsMerchant(@RequestBody McsMerchantDTO mcsMerchantDTO) {
+        return mcsMerchantService.putMcsMerchant(mcsMerchantDTO);
+    }
+
+    /**
+     * 查询数字商业街商家详情
+     * @param merchantId
+     * @return
+     */
+    @GetMapping("/merchant/get")
+    public R getMcsMerchant(@RequestParam("merchantId") Long merchantId) {
+        return mcsMerchantService.getMcsMerchant(merchantId);
+    }
+
+    /**
+     * 删除数字商业街商家
+     * @param merchantId
+     * @param userId
+     * @return
+     */
+    @DeleteMapping("/merchant/delete")
+    public R deleteMcsMerchant(@RequestParam("merchantId") Long merchantId, @RequestParam("userId") Long userId) {
+        return mcsMerchantService.deleteMcsMerchant(merchantId, userId);
+    }
+
+    /**
+     * 分页查询数字商业街商家
+     * @param pageMcsMerchantDTO
+     * @return
+     */
+    @PostMapping("/merchant/page")
+    public R pageMcsMerchant(@RequestBody PageMcsMerchantDTO pageMcsMerchantDTO) {
+        return mcsMerchantService.pageMcsMerchant(pageMcsMerchantDTO);
+    }
+
+    /**
+     * 禁用/启用数字商业街商家
+     * @param disableOrEnableMcsMerchantDTO
+     * @return
+     */
+    @PutMapping("/merchant/disable-or-enable")
+    public R disableOrEnableMcsMerchant(@RequestBody DisableOrEnableMcsMerchantDTO disableOrEnableMcsMerchantDTO) {
+        return mcsMerchantService.disableOrEnableMcsMerchant(disableOrEnableMcsMerchantDTO);
+    }
+
+    /**
+     * 获取所有数字商业街配置
+     * @return
+     */
+    @GetMapping("/config/all")
+    public R getAllMcsConfig() {
+        return mcsConfigService.getAllMcsConfig();
+    }
+
+    /**
+     * 修改数字商业街配置
+     * @param configs
+     * @return
+     */
+    @PutMapping("/config/put")
+    public R putMcsConfig(@RequestBody List<McsConfigVO> configs) {
+        return mcsConfigService.putMcsConfig(configs);
+    }
+
+    /**
+     * 分页查询戳戳游戏
+     * @param pageMcsGameDTO
+     * @return
+     */
+    @PostMapping("/game/page")
+    public R pageMcsGame(@RequestBody PageMcsGameDTO pageMcsGameDTO) {
+        return mcsGameService.pageMcsGame(pageMcsGameDTO);
+    }
+
+    /**
+     * 设为/取消游戏热门
+     * @param setPopularForGameDTO
+     * @return
+     */
+    @PutMapping("/game/setPopular")
+    public R setPopularForGame(@RequestBody SetPopularForGameDTO setPopularForGameDTO) {
+        return mcsGameService.setPopularForGame(setPopularForGameDTO);
+    }
+
+    /**
+     * 上架/下架戳戳游戏
+     * @param setShelfForGameDTO
+     * @return
+     */
+    @PutMapping("/game/setShelf")
+    public R setShelfForGame(@RequestBody SetShelfForGameDTO setShelfForGameDTO) {
+        return mcsGameService.setShelfForGame(setShelfForGameDTO);
+    }
+
+    /**
+     * 删除戳戳游戏
+     * @param gameId
+     * @param userId
+     * @return
+     */
+    @DeleteMapping("/game/delete")
+    public R deleteMcsGame(@RequestParam("gameId") Long gameId, @RequestParam("userId") Long userId) {
+        return mcsGameService.deleteMcsGame(gameId, userId);
+    }
+
+    /**
+     * 分页查询戳戳资讯
+     * @param pageMcsInformationDTO
+     * @return
+     */
+    @PostMapping("/information/page")
+    public R pageMcsInfo(@RequestBody PageMcsInformationDTO pageMcsInformationDTO) {
+        return mcsInformationService.pageMcsInfo(pageMcsInformationDTO);
+    }
+
+    /**
+     * 上架/下架戳戳资讯
+     * @param setShelfForInfoDTO
+     * @return
+     */
+    @PutMapping("/information/setShelf")
+    public R setShelfForMcsInfo(@RequestBody SetShelfForInfoDTO setShelfForInfoDTO) {
+        return mcsInformationService.setShelfForMcsInfo(setShelfForInfoDTO);
+    }
+
+    /**
+     * 删除戳戳资讯
+     * @param infoId
+     * @param userId
+     * @return
+     */
+    @DeleteMapping("/information/delete")
+    public R deleteMcsInfo(@RequestParam("infoId") Long infoId, @RequestParam("userId") Long userId) {
+        return mcsInformationService.deleteMcsInfo(infoId, userId);
+    }
+
+    /**
+     * 分页查询评价记录
+     * @param pageMcsEvaluateDTO
+     * @return
+     */
+    @PostMapping("/evaluate/page")
+    public R pageMcsEvaluate(@RequestBody PageMcsEvaluateDTO pageMcsEvaluateDTO) {
+        return mcsEvaluateService.pageMcsEvaluate(pageMcsEvaluateDTO);
+    }
+
+    /**
+     * 查询评价记录详情
+     * @param evaluateId
+     * @return
+     */
+    @GetMapping("/evaluate/get")
+    public R getMcsEvaluate(@RequestParam("evaluateId") Long evaluateId) {
+        return mcsEvaluateService.getMcsEvaluate(evaluateId);
+    }
+
+    /**
+     * 删除评价记录
+     * @param evaluateId
+     * @return
+     */
+    @DeleteMapping("/evaluate/delete")
+    public R deleteMcsEvaluate(@RequestParam("evaluateId") Long evaluateId) {
+        return mcsEvaluateService.deleteMcsEvaluate(evaluateId);
+    }
+
+    /**
+     * 新增戳戳游戏
+     * @param mcsGameDTO
+     * @return
+     */
+    @PostMapping("/game/add")
+    public R addMcsGame(@RequestBody McsGameDTO mcsGameDTO) {
+        return mcsGameService.addMcsGame(mcsGameDTO);
+    }
+
+    /**
+     * 编辑戳戳游戏
+     * @param mcsGameDTO
+     * @return
+     */
+    @PutMapping("/game/put")
+    public R putMcsGame(@RequestBody McsGameDTO mcsGameDTO) {
+        return mcsGameService.putMcsGame(mcsGameDTO);
+    }
+
+    /**
+     * 发布戳戳游戏
+     * @param gameId
+     * @param userId
+     * @return
+     */
+    @GetMapping("/game/publish")
+    public R publishMcsGame(@RequestParam("gameId") Long gameId, @RequestParam("userId") Long userId) {
+        return mcsGameService.publishMcsGame(gameId, userId);
+    }
+
+    /**
+     * 结束戳戳游戏
+     * @param gameId
+     * @param userId
+     * @return
+     */
+    @GetMapping("/game/finish")
+    public R finishMcsGame(@RequestParam("gameId") Long gameId, @RequestParam("userId") Long userId) {
+        return mcsGameService.finishMcsGame(gameId, userId);
+    }
+
+    /**
+     * 戳戳游戏/资讯顶部统计数据
+     * @param type
+     * @param userId
+     * @return
+     */
+    @GetMapping("/statistics/top")
+    public R getTopStatistics(@RequestParam("type") Integer type, @RequestParam("userId") Long userId) {
+        return mcsGameService.getTopStatistics(userId, type);
+    }
+
+    /**
+     * 新增戳戳资讯
+     * @param mcsInfoDTO
+     * @return
+     */
+    @PostMapping("/information/add")
+    public R addMcsInfo(@RequestBody McsInfoDTO mcsInfoDTO) {
+        return mcsInformationService.addMcsInfo(mcsInfoDTO);
+    }
+
+    /**
+     * 编辑戳戳资讯
+     * @param mcsInfoDTO
+     * @return
+     */
+    @PutMapping("/information/put")
+    public R putMcsInfo(@RequestBody McsInfoDTO mcsInfoDTO) {
+        return mcsInformationService.putMcsInfo(mcsInfoDTO);
+    }
+
+    /**
+     * 发布戳戳资讯
+     * @param infoId
+     * @param userId
+     * @return
+     */
+    @GetMapping("/information/publish")
+    public R publishMcsInfo(@RequestParam("infoId") Long infoId, @RequestParam("userId") Long userId) {
+        return mcsInformationService.publishMcsInfo(infoId, userId);
+    }
+
+    /**
+     * 新增产品信息
+     * @param mcsProductDTO
+     * @return
+     */
+    @PostMapping("/product/add")
+    public R addMcsProduct(@RequestBody McsProductDTO mcsProductDTO) {
+        return mcsProductService.addMcsProduct(mcsProductDTO);
+    }
+
+    /**
+     * 编辑产品信息
+     * @param mcsProductDTO
+     * @return
+     */
+    @PutMapping("/product/put")
+    public R putMcsProduct(@RequestBody McsProductDTO mcsProductDTO) {
+        return mcsProductService.putMcsProduct(mcsProductDTO);
+    }
+
+    /**
+     * 删除产品信息
+     * @param deleteProductDTO
+     * @return
+     */
+    @PostMapping("/product/delete")
+    public R deleteMcsProduct(@RequestBody DeleteProductDTO deleteProductDTO) {
+        return mcsProductService.deleteMcsProduct(deleteProductDTO);
+    }
+
+    /**
+     * 上架/下架产品信息
+     * @param setShelfForProductDTO
+     * @return
+     */
+    @PutMapping("/product/setShelf")
+    public R setShelfForMcsProduct(@RequestBody SetShelfForProductDTO setShelfForProductDTO) {
+        return mcsProductService.setShelfForMcsProduct(setShelfForProductDTO);
+    }
+
+    /**
+     * 分页查询产品信息
+     * @param pageMcsProductDTO
+     * @return
+     */
+    @PostMapping("/product/page")
+    public R pageMcsProduct(@RequestBody PageMcsProductDTO pageMcsProductDTO) {
+        return mcsProductService.pageMcsProduct(pageMcsProductDTO);
+    }
+
+    /**
+     * 获取产品标签列表
+     * @param userId
+     * @return
+     */
+    @GetMapping("/label/list")
+    public R getMcsLabelList(@RequestParam("userId") Long userId) {
+        return mcsLabelService.getMcsLabelList(userId);
+    }
+
+    /**
+     * 根据account查询微商业街商家信息
+     * @param account
+     * @return
+     */
+    @GetMapping("/getMcsMerchantByAccount")
+    public R getMcsMerchantByAccount(@RequestParam("account") String account) {
+        return mcsMerchantService.getMcsMerchantByAccount(account);
+    }
+
+    /**
+     * 完成订单更新/新增商家信息
+     * @param orderNo
+     * @param configId
+     * @param userId
+     * @return
+     */
+    @GetMapping("/updateAfterOrder")
+    public R updateMcsMerchantAfterOrder(@RequestParam(value = "orderNo") String orderNo,
+                                         @RequestParam("configId") Long configId,
+                                         @RequestParam("userId") Long userId) {
+        return mcsMerchantService.updateOrAddMcsMerchantAfterOrder(orderNo, configId, userId);
+    }
+
+    /**
+     * 验证码登录
+     * @param loginDTO
+     * @return
+     */
+    @PostMapping("/loginWithPhone")
+    public R loginWithPhone(@RequestBody LoginWithPhoneDTO loginDTO) {
+        return mcsMerchantService.loginWithPhone(loginDTO);
+    }
+
+    /**
+     * 首页顶部数据
+     * @return
+     */
+    @GetMapping("/index/topData")
+    public R getMcsIndexTopData() {
+        return mcsMerchantService.getMcsIndexTopData();
+    }
+
+    /**
+     * 戳戳卷领取
+     * @param gameId
+     * @param userId
+     * @return
+     */
+    @GetMapping("/coupon/apply")
+    public R applyMcsCoupon(@RequestParam("gameId") Long gameId, @RequestParam("userId") Long userId) {
+        return mcsGameService.applyMcsCoupon(gameId, userId);
+    }
+
+    /**
+     * h5分页查询戳戳资讯
+     * @param pageMcsInformationDTO
+     * @return
+     */
+    @PostMapping("/information/pageH5")
+    public R pageH5McsInfo(@RequestBody PageMcsInformationDTO pageMcsInformationDTO) {
+        return mcsInformationService.pageH5McsInfo(pageMcsInformationDTO);
+    }
+
+    /**
+     * h5分页查询戳戳游戏
+     * @param pageMcsGameDTO
+     * @return
+     */
+    @PostMapping("/game/pageH5")
+    public R pageH5McsGame(@RequestBody PageMcsGameDTO pageMcsGameDTO) {
+        return mcsGameService.pageH5McsGame(pageMcsGameDTO);
+    }
+
+    /**
+     * 游戏详情
+     * @param gameId
+     * @return
+     */
+    @GetMapping("/game/get")
+    public R getMcsGame(@RequestParam("gameId") Long gameId) {
+        return mcsGameService.getMcsGame(gameId);
+    }
+
+    /**
+     * 资讯详情
+     * @param infoId
+     * @return
+     */
+    @GetMapping("/info/get")
+    public R getMcsInfo(@RequestParam("infoId") Long infoId) {
+        return mcsInformationService.getMcsInfo(infoId);
+    }
+
+    /**
+     * H5分页查询数字商业街商家
+     * @param pageMcsMerchantDTO
+     * @return
+     */
+    @PostMapping("/merchant/pageH5")
+    public R pageH5McsMerchant(@RequestBody PageMcsMerchantDTO pageMcsMerchantDTO) {
+        return mcsMerchantService.pageH5McsMerchant(pageMcsMerchantDTO);
+    }
+
+    /**
+     * 我的戳戳卷
+     * @param type
+     * @param userId
+     * @return
+     */
+    @GetMapping("/myCoupon")
+    public R getMyCoupon(@RequestParam(value = "type", required = false) Integer type, @RequestParam("userId") Long userId) {
+        return mcsCouponService.getMyCoupon(type, userId);
+    }
+
+    /**
+     * 新增评价记录
+     * @param mcsEvaluateDTO
+     * @return
+     */
+    @PostMapping("/evaluate/add")
+    public R addMcsEvaluate(@RequestBody McsEvaluateDTO mcsEvaluateDTO) {
+        return mcsEvaluateService.addMcsEvaluate(mcsEvaluateDTO);
+    }
+
+    /**
+     * 我的评价-参与游戏列表
+     * @param pageJoinGameListDTO
+     * @return
+     */
+    @PostMapping("/joinGame/page")
+    public R getJoinGameList(@RequestBody PageJoinGameListDTO pageJoinGameListDTO) {
+        return mcsCouponService.getJoinGameList(pageJoinGameListDTO);
+    }
+
+    /**
+     * 戳戳卷核销
+     * @param couponId
+     * @param userId
+     * @return
+     */
+    @GetMapping("/coupon/verify")
+    public R verifyMcsCoupon(@RequestParam("couponId") Long couponId, @RequestParam("userId") Long userId) {
+        return mcsCouponService.verifyMcsCoupon(couponId, userId);
+    }
+
+    /**
+     * 分页查询核销记录
+     * @param pageVerifyRecordDTO
+     * @return
+     */
+    @PostMapping("/verifyRecord/page")
+    public R pageMcsVerifyRecord(@RequestBody PageVerifyRecordDTO pageVerifyRecordDTO) {
+        return mcsVerifiedRecordService.pageMcsVerifyRecord(pageVerifyRecordDTO);
+    }
+
+    /**
+     * 游戏统计
+     * @param userId
+     * @return
+     */
+    @GetMapping("/game/statistics")
+    public R getMcsGameStatistics(@RequestParam("userId") Long userId) {
+        return mcsCouponService.getMcsGameStatistics(userId);
+    }
+
+    /**
+     * 修改用戶信息
+     * @param putUserInfoDTO
+     * @return
+     */
+    @PutMapping("/putUserInfo")
+    public R putUserInfo(@RequestBody PutUserInfoDTO putUserInfoDTO) {
+        return mcsMerchantService.putUserInfo(putUserInfoDTO);
+    }
+
+    /**
+     * 根据userId获取商家信息
+     * @param userId
+     * @return
+     */
+    @GetMapping("/retrieveMcsMerchantInfoByUserId")
+    public R retrieveMcsMerchantInfoByUserId(@RequestParam("userId") Long userId) {
+        return mcsMerchantService.retrieveMcsMerchantInfoByUserId(userId);
+    }
+
+    /**
+     * 定时任务-每隔5分钟执行一次,将已到期的微商业街商家旗下所有的游戏/资讯全部下架
+     * @return
+     */
+    @GetMapping("/offResourceForMcsMerchant")
+    public R offResourceForMcsMerchant() {
+        return mcsMerchantService.offResourceForMcsMerchant();
+    }
+
+    /**
+     * 获取产品信息详情
+     * @param productId
+     * @return
+     */
+    @GetMapping("/product/get")
+    public R getMcsProduct(@RequestParam("productId") Long productId) {
+        return mcsProductService.getMcsProduct(productId);
+    }
+
+    /**
+     * 定时任务-每隔5分钟执行一次,将已到期的微商业街游戏结束
+     * @return
+     */
+    @GetMapping("/endStatusForMcsGame")
+    public R endStatusForMcsGame() {
+        return mcsGameService.endStatusForMcsGame();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/MostBeautifulVolunteerApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/MostBeautifulVolunteerApi.java
new file mode 100644
index 0000000..cc79b03
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/MostBeautifulVolunteerApi.java
@@ -0,0 +1,122 @@
+package com.panzhihua.service_community.api;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.MostBeautifulVolunteerVO;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.service.MostBeautifulVolunteerService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@RestController
+@RequestMapping("/MostBeautifu")
+public class MostBeautifulVolunteerApi
+{
+    @Resource
+    private MostBeautifulVolunteerService mostBeautifulVolunteerService;
+
+    /**
+     * 查询单个
+     * @param Id
+     * @return
+     */
+    @GetMapping("/queryById")
+    public R queryById2(@RequestParam("id") String id)
+    {
+        if(StringUtils.isEmpty(id))
+        {
+            return R.fail("id不能为空");
+        }
+        return R.ok(mostBeautifulVolunteerService.queryById(id));
+    }
+
+
+    /**
+     * 分页查询
+     * @param name
+     * @param unmountType
+     * @return
+     */
+    @GetMapping("/getqueryList")
+    public R queryList(@RequestParam("pageNum") int pageNum,
+                       @RequestParam("pageSize")int pageSize,
+                       @RequestParam(value = "name", required = false) String name,
+                       @RequestParam(value = "unmountType", required = false) String unmountType)
+    {
+        return R.ok(mostBeautifulVolunteerService.queryList(pageNum,pageSize,name,unmountType));
+    }
+
+
+
+    /**
+     * 新增
+     * @param mostBeautifulVolunteerVO
+     * @return
+     */
+    @PostMapping("/addMostBeautiful")
+    public R insertMostBeautifulVolunteer(@RequestBody MostBeautifulVolunteerVO mostBeautifulVolunteerVO)
+    {
+        int num= mostBeautifulVolunteerService.insertMostBeautifulVolunteer(mostBeautifulVolunteerVO);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+
+    /**
+     * 更新
+     * @param mostBeautifulVolunteerVO
+     * @return
+     */
+    @PostMapping("/upMostBeautiful")
+    public R updateById(@RequestBody MostBeautifulVolunteerVO mostBeautifulVolunteerVO)
+    {
+        if(mostBeautifulVolunteerVO==null)
+        {
+            return R.fail("参数不能为空");
+        }
+
+        if(StringUtils.isEmpty(mostBeautifulVolunteerVO.getId()))
+        {
+            return R.fail("id不能为空");
+        }
+
+        if(StringUtils.isEmpty(mostBeautifulVolunteerVO.getCommunityId()))
+        {
+            return R.fail("社区id不能为空");
+        }
+
+        int num= mostBeautifulVolunteerService.updateById(mostBeautifulVolunteerVO);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+
+    /**
+     * 删除
+     * @param Id
+     * @return
+     */
+    @DeleteMapping("/delectVuId")
+    public R deleteById(@RequestParam("id")  String Id)
+    {
+        int num= mostBeautifulVolunteerService.deleteById(Id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+
+
+
+
+}
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
new file mode 100644
index 0000000..2245348
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/NeighborApi.java
@@ -0,0 +1,485 @@
+package com.panzhihua.service_community.api;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.dtos.ExcelDO;
+import com.panzhihua.common.model.dtos.PartyExcelDO;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.model.dtos.neighbor.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.neighbor.AddNeighborCircleAdminVO;
+import com.panzhihua.common.model.vos.neighbor.ChangeCommentReplyStatusByAdminVO;
+import com.panzhihua.common.model.vos.neighbor.ChangeCommentStatusByAdminVO;
+import com.panzhihua.common.model.vos.neighbor.EditNeighborCircleAdminVO;
+import com.panzhihua.service_community.service.ComActNeighborCircleService;
+import com.panzhihua.service_community.service.ComActNeighborCircleTopicService;
+
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.List;
+
+@Slf4j
+@RestController
+@RequestMapping("/neighbor/")
+public class NeighborApi {
+
+    @Resource
+    private ComActNeighborCircleService comActNeighborCircleService;
+    @Resource
+    private ComActNeighborCircleTopicService comActNeighborCircleTopicService;
+
+    /**
+     * 分页查询邻里圈列表
+     *
+     * @param neighborCircleAppDTO
+     *            请求参数
+     * @return 邻里圈列表
+     */
+    @PostMapping("pageNeighborByApp")
+    public R pageNeighbor(@RequestBody ComActNeighborCircleAppDTO neighborCircleAppDTO) {
+        return comActNeighborCircleService.pageNeighborByApp(neighborCircleAppDTO);
+    }
+
+    /**
+     * 分页查询可关联清单列表
+     * @param neighborCircleAppDTO
+     * @return
+     */
+    @PostMapping("pageRelationList")
+    public R pageRelationList(@RequestBody ComActNeighborCircleAppDTO neighborCircleAppDTO) {
+        return comActNeighborCircleService.pageRelationList(neighborCircleAppDTO);
+    }
+
+    /**
+     * 分页查询邻里圈列表
+     *
+     * @param neighborCircleAppDTO
+     *            请求参数
+     * @return 邻里圈列表
+     */
+    @PostMapping("selectSolve")
+    public R selectSolve(@RequestBody ComActNeighborCircleAppDTO neighborCircleAppDTO) {
+        return comActNeighborCircleService.selectSolve(neighborCircleAppDTO);
+    }
+
+    /**
+     * 用户发布邻里圈审核
+     *
+     * @param addNeighborCircleAppDTO
+     *            邻里圈请求参数
+     * @return 发布结果
+     */
+    @PostMapping("addNeighborByApp")
+    public R addNeighborByApp(@RequestBody AddComActNeighborCircleAppDTO addNeighborCircleAppDTO) {
+        return comActNeighborCircleService.addNeighborByApp(addNeighborCircleAppDTO);
+    }
+
+    /**
+     * 查询邻里圈详情
+     *
+     * @param neighborCircleAppDTO
+     *            请求参数
+     * @return 邻里圈详情
+     */
+    @PostMapping("neighborDetailByApp")
+    public R neighborDetailByApp(@RequestBody ComActNeighborCircleDetailAppDTO neighborCircleAppDTO) {
+        return comActNeighborCircleService.neighborDetailByApp(neighborCircleAppDTO);
+    }
+
+    /**
+     * 管理后台查询邻里圈列表
+     *
+     * @param comActNeighborCircleAdminDTO
+     *            请求参数
+     * @return 邻里圈列表
+     */
+    @PostMapping("pageNeighborByAdmin")
+    public R pageNeighborByAdmin(@RequestBody ComActNeighborCircleAdminDTO comActNeighborCircleAdminDTO) {
+        return comActNeighborCircleService.pageNeighborByAdmin(comActNeighborCircleAdminDTO);
+    }
+
+    /**
+     * 统计大屏查询清单列表
+     *
+     * @param comActNeighborCircleAdminDTO
+     *            请求参数
+     * @return 邻里圈列表
+     */
+    @PostMapping("pageNeighborByBigScreen")
+    public R pageNeighborByBigScreen(@RequestBody ComActNeighborCircleAdminDTO comActNeighborCircleAdminDTO) {
+        return comActNeighborCircleService.pageNeighborByBigScreen(comActNeighborCircleAdminDTO);
+    }
+    /**
+     * 后台添加邻里圈
+     *
+     * @param addNeighborCircleAdminVO
+     *            请求参数
+     * @return 邻里圈列表
+     */
+    @PostMapping("addNeighborByAdmin")
+    public R addNeighborByAdmin(@RequestBody AddNeighborCircleAdminVO addNeighborCircleAdminVO) {
+        return comActNeighborCircleService.addNeighborByAdmin(addNeighborCircleAdminVO);
+    }
+
+    /**
+     * 后台修改邻里圈
+     *
+     * @param editNeighborCircleAdminVO
+     *            请求参数
+     */
+    @PostMapping("changeStatusByAdmin")
+    public R changeStatusByAdmin(@RequestBody EditNeighborCircleAdminVO editNeighborCircleAdminVO) {
+        return comActNeighborCircleService.changeStatusByAdmin(editNeighborCircleAdminVO);
+    }
+
+    /**
+     * 邻里圈_后台删除 待审核状态不可删除,显示、隐藏、已驳回的都可以删除)
+     *
+     * @param id
+     *            邻里圈id
+     * @return 邻里圈列表
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @PostMapping("deleteByAdmin")
+    public R deleteByAdmin(@RequestParam("id") Long id) {
+        return comActNeighborCircleService.deleteByAdmin(id);
+    }
+
+    /**
+     * 用户查询邻里圈列表
+     *
+     * @param neighborCircleAppDTO
+     *            请求参数
+     * @return 邻里圈列表
+     */
+    @PostMapping("neighborExamineByApp")
+    public R neighborExamineByApp(@RequestBody ComActNeighborCircleAppDTO neighborCircleAppDTO) {
+        return comActNeighborCircleService.neighborExamineByApp(neighborCircleAppDTO);
+    }
+
+    /**
+     * 邻里圈点赞
+     *
+     * @param fabulousAppDTO
+     *            请求参数
+     * @return 点赞结果
+     */
+    @PostMapping("neighborFabulousByApp")
+    public R neighborFabulousByApp(@RequestBody ComActNeighborFabulousAppDTO fabulousAppDTO) {
+        return comActNeighborCircleService.neighborFabulousByApp(fabulousAppDTO);
+    }
+
+    /**
+     * 邻里圈转发
+     *
+     * @param forwardAppDTO
+     *            请求参数
+     * @return 转发结果
+     */
+    @PostMapping("neighborForwardByApp")
+    public R neighborForwardByApp(@RequestBody ComActNeighborForwardAppDTO forwardAppDTO) {
+        return comActNeighborCircleService.neighborForwardByApp(forwardAppDTO);
+    }
+
+    /**
+     * 邻里圈评论
+     *
+     * @param commentAppDTO
+     *            请求参数
+     * @return 评论结果
+     */
+    @PostMapping("neighborCommentByApp")
+    public R neighborCommentByApp(@RequestBody ComActNeighborCommentAppDTO commentAppDTO) {
+        return comActNeighborCircleService.neighborCommentByApp(commentAppDTO);
+    }
+
+    /**
+     * 邻里圈回复
+     *
+     * @param replyAppDTO
+     *            请求参数
+     * @return 回复结果
+     */
+    @PostMapping("neighborReplyByApp")
+    public R neighborReplyByApp(@RequestBody ComActNeighborReplyAppDTO replyAppDTO) {
+        return comActNeighborCircleService.neighborReplyByApp(replyAppDTO);
+    }
+
+    /**
+     * 定时任务更新邻里圈近3天评论数/点赞数/浏览量
+     *
+     * @return 执行结果
+     */
+    @PostMapping("timeTaskCircleFlow")
+    public R timeTaskCircleFlow() {
+        return comActNeighborCircleService.timeTaskCircleFlow();
+    }
+
+    /**
+     * 查看邻里圈基础_详情
+     *
+     * @param id
+     *            邻里圈id
+     * @return 邻里圈列表
+     */
+    @GetMapping("detailNeighborByAdmin")
+    public R detailNeighborByAdmin(@RequestParam("id") Long id) {
+        return comActNeighborCircleService.detailNeighborByAdmin(id);
+    }
+
+    /**
+     * 邻里圈的所有评论_分页
+     *
+     * @param dto
+     *            请求参数
+     * @return 评论列表
+     */
+    @PostMapping("detailNeighborAllCommentByAdmin")
+    public R detailNeighborAllCommentByAdmin(@RequestBody DetailNeighborAllCommentByAdminDTO dto) {
+        return comActNeighborCircleService.detailNeighborAllCommentByAdmin(dto);
+    }
+
+    /**
+     * 评论的状态_修改
+     *
+     * @param vo
+     *            请求参数
+     */
+    @PostMapping("changeCommentStatusByAdmin")
+    @Transactional(rollbackFor = Exception.class)
+    public R changeCommentStatusByAdmin(@RequestBody ChangeCommentStatusByAdminVO vo) {
+        return comActNeighborCircleService.changeCommentStatusByAdmin(vo);
+    }
+
+    /**
+     * 邻里圈评论_详情
+     *
+     * @param id
+     *            评论id
+     */
+    @GetMapping("detailNeighborCommentByAdmin")
+    public R detailNeighborCommentByAdmin(@RequestParam("id") Long id) {
+        return comActNeighborCircleService.detailNeighborCommentByAdmin(id);
+    }
+
+    /**
+     * 邻里圈评论回复_分页
+     *
+     * @param dto
+     *            参数
+     */
+    @PostMapping("detailNeighborCommentAllReply")
+    public R detailNeighborCommentAllReply(@RequestBody DetailNeighborCommentReplyByAdminDTO dto) {
+        return comActNeighborCircleService.detailNeighborCommentAllReply(dto);
+    }
+
+    /**
+     * 邻里圈评论回复_基本详情
+     *
+     * @param id
+     *            参数
+     */
+    @GetMapping("detailNeighborCommentReply")
+    public R detailNeighborCommentReply(@RequestParam("id") Long id) {
+        return comActNeighborCircleService.detailNeighborCommentReply(id);
+    }
+
+    /**
+     * 评论的状态_修改
+     *
+     * @param changeStatusReplyVO
+     *            参数
+     */
+    @PostMapping("changeCommentReplyStatusByAdmin")
+    public R changeCommentReplyStatusByAdmin(@RequestBody ChangeCommentReplyStatusByAdminVO changeStatusReplyVO) {
+        return comActNeighborCircleService.changeCommentReplyStatusByAdmin(changeStatusReplyVO);
+    }
+
+    /**
+     * 邻里圈取消点赞
+     *
+     * @param fabulousAppDTO
+     *            请求参数
+     * @return 取消点赞结果
+     */
+    @PostMapping("neighborFabulousCancelByApp")
+    public R neighborFabulousCancelByApp(@RequestBody ComActNeighborFabulousAppDTO fabulousAppDTO) {
+        return comActNeighborCircleService.neighborFabulousCancelByApp(fabulousAppDTO);
+    }
+
+    /**
+     * 添加邻里圈浏览记录
+     *
+     * @param addBrowseAppDTO
+     *            请求参数
+     * @return 返回参数
+     */
+    @PostMapping("neighborAddBrowseByApp")
+    public R neighborAddBrowseByApp(@RequestBody ComActNeighborAddBrowseAppDTO addBrowseAppDTO) {
+        return comActNeighborCircleService.neighborAddBrowseByApp(addBrowseAppDTO);
+    }
+
+    /**
+     * 分页查询评论下所有回复
+     *
+     * @param commentReplyAppDTO
+     *            请求参数
+     * @return 回复列表
+     */
+    @PostMapping("neighborCommentReplyByApp")
+    public R neighborCommentReplyByApp(@RequestBody ComActNeighborCommentReplyAppDTO commentReplyAppDTO) {
+        return comActNeighborCircleService.neighborCommentReplyByApp(commentReplyAppDTO);
+    }
+
+    /**
+     * 分页查询邻里圈话题列表
+     *
+     * @param circleTopicAdminDTO
+     *            请求参数
+     * @return 邻里圈话题列表
+     */
+    @PostMapping("pageNeighborTopicByAdmin")
+    public R pageNeighborTopicByAdmin(@RequestBody ComActNeighborCircleTopicAdminDTO circleTopicAdminDTO) {
+        return comActNeighborCircleTopicService.pageNeighborTopicByAdmin(circleTopicAdminDTO);
+    }
+
+    /**
+     * 添加邻里圈话题
+     *
+     * @param addCircleTopicAdminDTO
+     *            请求参数
+     * @return 添加结果
+     */
+    @PostMapping("addNeighborTopicByAdmin")
+    public R addNeighborTopicByAdmin(@RequestBody AddNeighborCircleTopicAdminDTO addCircleTopicAdminDTO) {
+        return comActNeighborCircleTopicService.addNeighborTopicByAdmin(addCircleTopicAdminDTO);
+    }
+
+    /**
+     * 编辑邻里圈话题
+     *
+     * @param addCircleTopicAdminDTO
+     *            请求参数
+     * @return 编辑结果
+     */
+    @PostMapping("editNeighborTopicByAdmin")
+    public R editNeighborTopicByAdmin(@RequestBody AddNeighborCircleTopicAdminDTO addCircleTopicAdminDTO) {
+        return comActNeighborCircleTopicService.editNeighborTopicByAdmin(addCircleTopicAdminDTO);
+    }
+
+    /**
+     * 小程序查询邻里圈话题列表
+     *
+     *            社区id
+     * @return 邻里圈话题列表
+     */
+    @GetMapping("getNeighborTopicByApp")
+    public R getNeighborTopicByApp(@RequestParam("name") String name) {
+        return comActNeighborCircleTopicService.getNeighborTopicByApp(name);
+    }
+
+    @GetMapping("/getNeighborTopicByAppNew")
+    public R getNeighborTopicByAppNew(@RequestParam("name") String name){
+        return comActNeighborCircleTopicService.getNeighborTopicByAppNew(name);
+    }
+
+    /**
+     * 删除话题
+     * @param id
+     * @return
+     */
+    @GetMapping("deleteNeighborTopic")
+    public R deleteNeighborTopic(@RequestParam("id") Long id){
+        return comActNeighborCircleTopicService.delete(id);
+    }
+
+    /**
+     * 小程序-删除邻里圈
+     * @param circleTopicAppDTO 请求参数
+     * @return  删除结果
+     */
+    @PostMapping("deleteNeighborByApp")
+    public R deleteNeighborByApp(@RequestBody DeleteNeighborCircleAppDTO circleTopicAppDTO){
+        return comActNeighborCircleService.deleteNeighborByApp(circleTopicAppDTO);
+    }
+
+    /**
+     * 修改数据
+     * @param editNeighborCircleAdminVO
+     * @return
+     */
+    @PostMapping("update")
+    public R order(@RequestBody EditNeighborCircleAdminVO editNeighborCircleAdminVO){
+        return this.comActNeighborCircleService.orderAndSolve(editNeighborCircleAdminVO);
+    }
+
+    /**
+     * 机关单位服务统计排行
+     * @return
+     * */
+    @GetMapping("/activityAnalysis")
+    public R institutionalUnitServiceAnalysis(@RequestParam(value = "year",required = false) Integer year,
+                                              @RequestParam(value = "type",required = false) Integer type,
+                                              @RequestParam(value = "range",required = false)Integer range,
+                                              @RequestParam(value = "communityId",required = false) Long communityId,
+                                              @RequestParam(value = "page",required = false) Integer page,
+                                              @RequestParam(value = "belongTo",required = false) String  belongTo,
+                                              @RequestParam(value = "size",required = false) Integer size,
+                                              @RequestParam(value = "unitId",required = false) Long unitId,
+                                              @RequestParam(value = "loginAccount",required = false) String loginAccount,
+                                              @RequestParam(value = "searchContent",required = false) String searchContent){
+        return this.comActNeighborCircleService.institutionalUnitServiceAnalysis(year,type,range,communityId,page,size,belongTo,unitId,searchContent);
+    }
+
+    /**
+     * 导出
+     */
+    @GetMapping("/export")
+    public List<ExcelDO> export(@RequestParam(value = "year",required = false) Integer year,
+                                @RequestParam(value = "belongTo",required = false) String belongTo,
+                                @RequestParam(value = "communityId",required = false) Long communityId) throws Exception {
+        return this.comActNeighborCircleService.export(year,belongTo,communityId);
+    }
+
+    @GetMapping("/partyExcel")
+    public List<PartyExcelDO> partyExcel(@RequestParam(value = "year",required = false) Integer year,
+                                         @RequestParam(value = "belongTo",required = false) String belongTo,
+                                         @RequestParam(value = "communityId",required = false) Long communityId,
+                                         @RequestParam(value = "unitId",required = false) Long unitId){
+        return this.comActNeighborCircleService.partyExcel(year,belongTo,communityId,unitId);
+    }
+
+    /**
+     * 小程序服务统计
+     * @param serviceStaticDTO
+     * @return
+     */
+    @PostMapping("/serviceStatic")
+    public R serviceStatic(@RequestBody ServiceStaticDTO serviceStaticDTO){
+        return this.comActNeighborCircleService.serviceStatic(serviceStaticDTO);
+    }
+
+    /**
+     * 后台统计
+     * @param serviceStaticDTO
+     * @return
+     */
+    @PostMapping("/serviceStaticBackstage")
+    public R serviceStaticBackstage(@RequestBody ServiceStaticBackstageDTO serviceStaticDTO){
+        return this.comActNeighborCircleService.serviceStaticBackstage(serviceStaticDTO);
+    }
+    /**
+     * 求助我的问题数量统计
+     * @param type
+     * @param phone
+     * @return
+     */
+    @GetMapping("/selectCount")
+    public R selectCount(@RequestParam("type")Integer type,@RequestParam(value = "phone",required = false)String phone,@RequestParam("communityId")Long communityId){
+        return this.comActNeighborCircleService.selectCount(type,phone,communityId);
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/NeighborWestApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/NeighborWestApi.java
new file mode 100644
index 0000000..f340db1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/NeighborWestApi.java
@@ -0,0 +1,367 @@
+package com.panzhihua.service_community.api;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.dtos.neighbor.*;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.neighbor.AddNeighborCircleAdminVO;
+import com.panzhihua.common.model.vos.neighbor.ChangeCommentReplyStatusByAdminVO;
+import com.panzhihua.common.model.vos.neighbor.ChangeCommentStatusByAdminVO;
+import com.panzhihua.common.model.vos.neighbor.EditNeighborCircleAdminVO;
+import com.panzhihua.service_community.service.ComActNeighborCircleWestService;
+import com.panzhihua.service_community.service.ComActNeighborCircleTopicWestService;
+
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+@RestController
+@RequestMapping("/neighborWest/")
+public class NeighborWestApi {
+
+    @Resource
+    private ComActNeighborCircleWestService comActNeighborCircleWestService;
+    @Resource
+    private ComActNeighborCircleTopicWestService comActNeighborCircleTopicWestService;
+
+    /**
+     * 分页查询邻里圈列表
+     * 
+     * @param neighborCircleAppDTO
+     *            请求参数
+     * @return 邻里圈列表
+     */
+    @PostMapping("pageNeighborByApp")
+    public R pageNeighbor(@RequestBody ComActNeighborCircleAppDTO neighborCircleAppDTO) {
+        return comActNeighborCircleWestService.pageNeighborByApp(neighborCircleAppDTO);
+    }
+
+    /**
+     * 用户发布邻里圈审核
+     * 
+     * @param addNeighborCircleAppDTO
+     *            邻里圈请求参数
+     * @return 发布结果
+     */
+    @PostMapping("addNeighborByApp")
+    public R addNeighborByApp(@RequestBody AddComActNeighborCircleAppDTO addNeighborCircleAppDTO) {
+        return comActNeighborCircleWestService.addNeighborByApp(addNeighborCircleAppDTO);
+    }
+
+    /**
+     * 查询邻里圈详情
+     * 
+     * @param neighborCircleAppDTO
+     *            请求参数
+     * @return 邻里圈详情
+     */
+    @PostMapping("neighborDetailByApp")
+    public R neighborDetailByApp(@RequestBody ComActNeighborCircleDetailAppDTO neighborCircleAppDTO) {
+        return comActNeighborCircleWestService.neighborDetailByApp(neighborCircleAppDTO);
+    }
+
+    /**
+     * 管理后台查询邻里圈列表
+     * 
+     * @param comActNeighborCircleAdminDTO
+     *            请求参数
+     * @return 邻里圈列表
+     */
+    @PostMapping("pageNeighborByAdmin")
+    public R pageNeighborByAdmin(@RequestBody ComActNeighborCircleAdminDTO comActNeighborCircleAdminDTO) {
+        return comActNeighborCircleWestService.pageNeighborByAdmin(comActNeighborCircleAdminDTO);
+    }
+
+    /**
+     * 后台添加邻里圈
+     * 
+     * @param addNeighborCircleAdminVO
+     *            请求参数
+     * @return 邻里圈列表
+     */
+    @PostMapping("addNeighborByAdmin")
+    public R addNeighborByAdmin(@RequestBody AddNeighborCircleAdminVO addNeighborCircleAdminVO) {
+        return comActNeighborCircleWestService.addNeighborByAdmin(addNeighborCircleAdminVO);
+    }
+
+    /**
+     * 后台修改邻里圈
+     * 
+     * @param editNeighborCircleAdminVO
+     *            请求参数
+     */
+    @PostMapping("changeStatusByAdmin")
+    public R changeStatusByAdmin(@RequestBody EditNeighborCircleAdminVO editNeighborCircleAdminVO) {
+        return comActNeighborCircleWestService.changeStatusByAdmin(editNeighborCircleAdminVO);
+    }
+
+    /**
+     * 邻里圈_后台删除 待审核状态不可删除,显示、隐藏、已驳回的都可以删除)
+     * 
+     * @param id
+     *            邻里圈id
+     * @return 邻里圈列表
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @PostMapping("deleteByAdmin")
+    public R deleteByAdmin(@RequestParam("id") Long id) {
+        return comActNeighborCircleWestService.deleteByAdmin(id);
+    }
+
+    /**
+     * 用户查询邻里圈列表
+     * 
+     * @param neighborCircleAppDTO
+     *            请求参数
+     * @return 邻里圈列表
+     */
+    @PostMapping("neighborExamineByApp")
+    public R neighborExamineByApp(@RequestBody ComActNeighborCircleAppDTO neighborCircleAppDTO) {
+        return comActNeighborCircleWestService.neighborExamineByApp(neighborCircleAppDTO);
+    }
+
+    /**
+     * 邻里圈点赞
+     * 
+     * @param fabulousAppDTO
+     *            请求参数
+     * @return 点赞结果
+     */
+    @PostMapping("neighborFabulousByApp")
+    public R neighborFabulousByApp(@RequestBody ComActNeighborFabulousAppDTO fabulousAppDTO) {
+        return comActNeighborCircleWestService.neighborFabulousByApp(fabulousAppDTO);
+    }
+
+    /**
+     * 邻里圈转发
+     * 
+     * @param forwardAppDTO
+     *            请求参数
+     * @return 转发结果
+     */
+    @PostMapping("neighborForwardByApp")
+    public R neighborForwardByApp(@RequestBody ComActNeighborForwardAppDTO forwardAppDTO) {
+        return comActNeighborCircleWestService.neighborForwardByApp(forwardAppDTO);
+    }
+
+    /**
+     * 邻里圈评论
+     * 
+     * @param commentAppDTO
+     *            请求参数
+     * @return 评论结果
+     */
+    @PostMapping("neighborCommentByApp")
+    public R neighborCommentByApp(@RequestBody ComActNeighborCommentAppDTO commentAppDTO) {
+        return comActNeighborCircleWestService.neighborCommentByApp(commentAppDTO);
+    }
+
+    /**
+     * 邻里圈回复
+     * 
+     * @param replyAppDTO
+     *            请求参数
+     * @return 回复结果
+     */
+    @PostMapping("neighborReplyByApp")
+    public R neighborReplyByApp(@RequestBody ComActNeighborReplyAppDTO replyAppDTO) {
+        return comActNeighborCircleWestService.neighborReplyByApp(replyAppDTO);
+    }
+
+    /**
+     * 定时任务更新邻里圈近3天评论数/点赞数/浏览量
+     * 
+     * @return 执行结果
+     */
+    @PostMapping("timeTaskCircleFlow")
+    public R timeTaskCircleFlow() {
+        return comActNeighborCircleWestService.timeTaskCircleFlow();
+    }
+
+    /**
+     * 查看邻里圈基础_详情
+     * 
+     * @param id
+     *            邻里圈id
+     * @return 邻里圈列表
+     */
+    @GetMapping("detailNeighborByAdmin")
+    public R detailNeighborByAdmin(@RequestParam("id") Long id) {
+        return comActNeighborCircleWestService.detailNeighborByAdmin(id);
+    }
+
+    /**
+     * 邻里圈的所有评论_分页
+     * 
+     * @param dto
+     *            请求参数
+     * @return 评论列表
+     */
+    @PostMapping("detailNeighborAllCommentByAdmin")
+    public R detailNeighborAllCommentByAdmin(@RequestBody DetailNeighborAllCommentByAdminDTO dto) {
+        return comActNeighborCircleWestService.detailNeighborAllCommentByAdmin(dto);
+    }
+
+    /**
+     * 评论的状态_修改
+     * 
+     * @param vo
+     *            请求参数
+     */
+    @PostMapping("changeCommentStatusByAdmin")
+    @Transactional(rollbackFor = Exception.class)
+    public R changeCommentStatusByAdmin(@RequestBody ChangeCommentStatusByAdminVO vo) {
+        return comActNeighborCircleWestService.changeCommentStatusByAdmin(vo);
+    }
+
+    /**
+     * 邻里圈评论_详情
+     * 
+     * @param id
+     *            评论id
+     */
+    @GetMapping("detailNeighborCommentByAdmin")
+    public R detailNeighborCommentByAdmin(@RequestParam("id") Long id) {
+        return comActNeighborCircleWestService.detailNeighborCommentByAdmin(id);
+    }
+
+    /**
+     * 邻里圈评论回复_分页
+     * 
+     * @param dto
+     *            参数
+     */
+    @PostMapping("detailNeighborCommentAllReply")
+    public R detailNeighborCommentAllReply(@RequestBody DetailNeighborCommentReplyByAdminDTO dto) {
+        return comActNeighborCircleWestService.detailNeighborCommentAllReply(dto);
+    }
+
+    /**
+     * 邻里圈评论回复_基本详情
+     * 
+     * @param id
+     *            参数
+     */
+    @GetMapping("detailNeighborCommentReply")
+    public R detailNeighborCommentReply(@RequestParam("id") Long id) {
+        return comActNeighborCircleWestService.detailNeighborCommentReply(id);
+    }
+
+    /**
+     * 评论的状态_修改
+     * 
+     * @param changeStatusReplyVO
+     *            参数
+     */
+    @PostMapping("changeCommentReplyStatusByAdmin")
+    public R changeCommentReplyStatusByAdmin(@RequestBody ChangeCommentReplyStatusByAdminVO changeStatusReplyVO) {
+        return comActNeighborCircleWestService.changeCommentReplyStatusByAdmin(changeStatusReplyVO);
+    }
+
+    /**
+     * 邻里圈取消点赞
+     * 
+     * @param fabulousAppDTO
+     *            请求参数
+     * @return 取消点赞结果
+     */
+    @PostMapping("neighborFabulousCancelByApp")
+    public R neighborFabulousCancelByApp(@RequestBody ComActNeighborFabulousAppDTO fabulousAppDTO) {
+        return comActNeighborCircleWestService.neighborFabulousCancelByApp(fabulousAppDTO);
+    }
+
+    /**
+     * 添加邻里圈浏览记录
+     * 
+     * @param addBrowseAppDTO
+     *            请求参数
+     * @return 返回参数
+     */
+    @PostMapping("neighborAddBrowseByApp")
+    public R neighborAddBrowseByApp(@RequestBody ComActNeighborAddBrowseAppDTO addBrowseAppDTO) {
+        return comActNeighborCircleWestService.neighborAddBrowseByApp(addBrowseAppDTO);
+    }
+
+    /**
+     * 分页查询评论下所有回复
+     * 
+     * @param commentReplyAppDTO
+     *            请求参数
+     * @return 回复列表
+     */
+    @PostMapping("neighborCommentReplyByApp")
+    public R neighborCommentReplyByApp(@RequestBody ComActNeighborCommentReplyAppDTO commentReplyAppDTO) {
+        return comActNeighborCircleWestService.neighborCommentReplyByApp(commentReplyAppDTO);
+    }
+
+    /**
+     * 分页查询邻里圈话题列表
+     * 
+     * @param circleTopicAdminDTO
+     *            请求参数
+     * @return 邻里圈话题列表
+     */
+    @PostMapping("pageNeighborTopicByAdmin")
+    public R pageNeighborTopicByAdmin(@RequestBody ComActNeighborCircleTopicAdminDTO circleTopicAdminDTO) {
+        return comActNeighborCircleTopicWestService.pageNeighborTopicByAdmin(circleTopicAdminDTO);
+    }
+
+    /**
+     * 添加邻里圈话题
+     * 
+     * @param addCircleTopicAdminDTO
+     *            请求参数
+     * @return 添加结果
+     */
+    @PostMapping("addNeighborTopicByAdmin")
+    public R addNeighborTopicByAdmin(@RequestBody AddNeighborCircleTopicAdminDTO addCircleTopicAdminDTO) {
+        return comActNeighborCircleTopicWestService.addNeighborTopicByAdmin(addCircleTopicAdminDTO);
+    }
+
+    /**
+     * 编辑邻里圈话题
+     * 
+     * @param addCircleTopicAdminDTO
+     *            请求参数
+     * @return 编辑结果
+     */
+    @PostMapping("editNeighborTopicByAdmin")
+    public R editNeighborTopicByAdmin(@RequestBody AddNeighborCircleTopicAdminDTO addCircleTopicAdminDTO) {
+        return comActNeighborCircleTopicWestService.editNeighborTopicByAdmin(addCircleTopicAdminDTO);
+    }
+
+    /**
+     * 小程序查询邻里圈话题列表
+     * 
+     * @param communityId
+     *            社区id
+     * @return 邻里圈话题列表
+     */
+    @GetMapping("getNeighborTopicByApp")
+    public R getNeighborTopicByApp(@RequestParam("communityId") Long communityId,@RequestParam("isZero") Integer isZero,@RequestParam("name") String name) {
+        return comActNeighborCircleTopicWestService.getNeighborTopicByApp(communityId,isZero,name);
+    }
+
+    /**
+     * 小程序-用户新增话题
+     * @param circleTopicAppDTO 请求参数
+     * @return  新增结果
+     */
+    @PostMapping("addNeighborTopicByApp")
+    public R addNeighborTopicByApp(@RequestBody AddNeighborCircleTopicAppDTO circleTopicAppDTO){
+        return comActNeighborCircleTopicWestService.addNeighborTopicByApp(circleTopicAppDTO);
+    }
+
+    /**
+     * 小程序-删除邻里圈
+     * @param circleTopicAppDTO 请求参数
+     * @return  删除结果
+     */
+    @PostMapping("deleteNeighborByApp")
+    public R deleteNeighborByApp(@RequestBody DeleteNeighborCircleAppDTO circleTopicAppDTO){
+        return comActNeighborCircleWestService.deleteNeighborByApp(circleTopicAppDTO);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/PopulationApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/PopulationApi.java
new file mode 100644
index 0000000..fa0aaef
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/PopulationApi.java
@@ -0,0 +1,174 @@
+package com.panzhihua.service_community.api;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.model.dtos.community.ComExServicemanDTO;
+import com.panzhihua.common.model.dtos.grid.PagePopulationListDTO;
+import com.panzhihua.common.model.dtos.grid.admin.ComMngPopulationExportDTO;
+import com.panzhihua.common.model.dtos.grid.admin.ComMngPopulationListDTO;
+import com.panzhihua.common.model.dtos.grid.admin.ComMngPopulationRelationHouseDTO;
+import com.panzhihua.common.model.dtos.grid.admin.ComMngPopulationSubordinateDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.service.ComExServicemanService;
+import com.panzhihua.service_community.service.ComMngPopulationHouseService;
+import com.panzhihua.service_community.service.ComMngPopulationService;
+
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+@RestController
+@RequestMapping("/population/")
+public class PopulationApi {
+
+    @Resource
+    private ComMngPopulationService comMngPopulationService;
+    @Resource
+    private ComMngPopulationHouseService comMngPopulationHouseService;
+    @Resource
+    private ComExServicemanService comExServicemanService;
+
+    /**
+     * 获取人口数据信息
+     *
+     * @param populationListDTO
+     *            请求参数
+     * @return 人口数据
+     */
+    @PostMapping("/list/app")
+    public R pagePopulationList(@RequestBody PagePopulationListDTO populationListDTO) {
+        return comMngPopulationService.pagePopulationListApp(populationListDTO);
+    }
+
+    /**
+     * 根据人口id获取人口详情
+     *
+     * @param populationId
+     *            人口id
+     * @return 人口详情
+     */
+    @GetMapping("/detail/app")
+    public R getPopulationDetail(@RequestParam("populationId") Long populationId) {
+        return comMngPopulationService.getPopulationDetailApp(populationId);
+    }
+
+    /**
+     * 修复人口加密问题
+     *
+     * @return 修复结果
+     */
+    @GetMapping("/repair")
+    public R repair() {
+        return comMngPopulationService.getPopulationRepairByApp();
+    }
+
+    /**
+     * 综治后台-居民列表
+     * 
+     * @param populationListDTO
+     *            请求参数
+     * @return 居民列表
+     */
+    @PostMapping("/grid/list")
+    public R getGridPopulationAdminList(@RequestBody ComMngPopulationListDTO populationListDTO) {
+        return comMngPopulationService.getGridPopulationAdminList(populationListDTO);
+    }
+
+    /**
+     * 综治后台-删除居民
+     * 
+     * @param ids
+     *            居民id集合
+     * @return 删除结果
+     */
+    @PostMapping("/grid/del")
+    public R delGridPopulationAdmin(@RequestBody List<Long> ids) {
+        return comMngPopulationService.delGridPopulationAdmin(ids);
+    }
+
+    /**
+     * 综治后台-居民详情
+     * 
+     * @param populationId
+     *            居民id
+     * @return 居民详情
+     */
+    @GetMapping("/grid/get")
+    public R getGridPopulationAdminDetail(@RequestParam("populationId") Long populationId) {
+        return comMngPopulationService.getPopulationDetailApp(populationId);
+    }
+
+    @GetMapping("/binding")
+    public R binding() {
+        return comMngPopulationService.binding();
+    }
+
+    /**
+     * 综治后台-居民标签栏统计
+     * 
+     * @return 居民统计
+     */
+    @GetMapping("/grid/statistics")
+    public R getGridPopulationStatistics(@RequestParam("communityId") Long communityId) {
+        return comMngPopulationService.getGridPopulationStatistics(communityId);
+    }
+
+    /**
+     * 综治后台-居民导出查询居民数据
+     * 
+     * @param populationExportDTO
+     *            请求参数
+     * @return 导出结果
+     */
+    @PostMapping("/grid/export")
+    public R getGridPopulationExport(@RequestBody ComMngPopulationExportDTO populationExportDTO) {
+        return comMngPopulationService.getGridPopulationExport(populationExportDTO);
+    }
+
+    /**
+     * 综治后台-居民管理小区列表
+     * 
+     * @param name
+     *            小区名字
+     * @return 小区列表
+     */
+    @GetMapping("/village/relation")
+    public R relationVillage(@RequestParam("name") String name) {
+        return comMngPopulationService.relationVillage(name);
+    }
+
+    @PostMapping("/subordinate")
+    public R subordinate(@RequestBody ComMngPopulationSubordinateDTO subordinateDTO) {
+        return comMngPopulationHouseService.subordinate(subordinateDTO);
+    }
+
+    @PostMapping("/relation/house")
+    public R populationRelationHouse(@RequestBody ComMngPopulationRelationHouseDTO relationHouseDTO) {
+        return comMngPopulationHouseService.populationRelationHouse(relationHouseDTO);
+    }
+
+    /**
+     * 分页查询退役军人列表
+     *
+     * @param comExServicemanDTO
+     *            请求参数
+     * @return 退役军人列表
+     */
+    @PostMapping("/page/exServiceman")
+    public R pageExServiceman(@RequestBody ComExServicemanDTO comExServicemanDTO) {
+        return comExServicemanService.getPageExServiceman(comExServicemanDTO);
+    }
+
+    /**
+     * 实有房屋数据修复定时任务
+     * @return  实有房屋数据修复定时任务
+     */
+    @GetMapping("/house/status/task")
+    public R timedTaskHouseJobHandler() {
+        return comMngPopulationHouseService.timedTaskHouseJobHandler();
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/PudaScreenApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/PudaScreenApi.java
new file mode 100644
index 0000000..45c28bc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/PudaScreenApi.java
@@ -0,0 +1,56 @@
+package com.panzhihua.service_community.api;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.service.ScreenWorkService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+/**
+ * @author Tuzi
+ * @date 2023年02月03日 11:12
+ */
+@RestController
+@RequestMapping("/pudaScreen")
+public class PudaScreenApi {
+
+    @Resource
+    private ScreenWorkService screenWorkService;
+    @GetMapping("/autonomyDynamic")
+    public R autonomyDynamic(){
+        return screenWorkService.autonomyDynamic(10172L);
+    }
+
+    @GetMapping("/propertyDynamic")
+    public R propertyDynamic(){
+        return  screenWorkService.property(10172L);
+    }
+
+    @GetMapping("/partyData")
+    public R partyData(){
+        return screenWorkService.partyData(10172L);
+    }
+
+    @GetMapping("/peopleInfo")
+    public R peopleInf(){
+        return screenWorkService.citizenInfo(10172L);
+    }
+
+    @GetMapping("/countryard")
+    public R countryard(){
+        return screenWorkService.yard(10172L);
+    }
+
+    @GetMapping("/basicData")
+    public R basicData(){
+        return screenWorkService.basicData(10172L);
+    }
+
+    @GetMapping("/specialPeople")
+    public R specialPeople(){
+        return screenWorkService.specialPeople(10172L);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/RentingHourseFileApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/RentingHourseFileApi.java
new file mode 100644
index 0000000..2664138
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/RentingHourseFileApi.java
@@ -0,0 +1,86 @@
+package com.panzhihua.service_community.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.api.ApiController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.service_community.entity.RentingHourseFile;
+import com.panzhihua.service_community.service.RentingHourseFileService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 房屋租赁-涉及的文件表(RentingHourseFile)表控制层
+ *
+ * @author makejava
+ * @since 2021-11-23 10:46:20
+ */
+@RestController
+@RequestMapping("rentingHourseFile")
+public class RentingHourseFileApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private RentingHourseFileService rentingHourseFileService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.rentingHourseFileService.pageList(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Serializable id) {
+        return R.ok(this.rentingHourseFileService.getById(id));
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param rentingHourseFile 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody RentingHourseFile rentingHourseFile) {
+        return R.ok(this.rentingHourseFileService.save(rentingHourseFile));
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param rentingHourseFile 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody RentingHourseFile rentingHourseFile) {
+        return R.ok(this.rentingHourseFileService.updateById(rentingHourseFile));
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return R.ok(this.rentingHourseFileService.removeById(id));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/RentingHourseLabelApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/RentingHourseLabelApi.java
new file mode 100644
index 0000000..7a1d638
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/RentingHourseLabelApi.java
@@ -0,0 +1,86 @@
+package com.panzhihua.service_community.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.api.ApiController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.service_community.entity.RentingHourseLabel;
+import com.panzhihua.service_community.service.RentingHourseLabelService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 房屋租赁-房源标签(RentingHourseLabel)表控制层
+ *
+ * @author makejava
+ * @since 2021-11-23 10:46:39
+ */
+@RestController
+@RequestMapping("rentingHourseLabel")
+public class RentingHourseLabelApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private RentingHourseLabelService rentingHourseLabelService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.rentingHourseLabelService.pageList(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Serializable id) {
+        return R.ok(this.rentingHourseLabelService.getById(id));
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param rentingHourseLabel 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody RentingHourseLabel rentingHourseLabel) {
+        return R.ok(this.rentingHourseLabelService.save(rentingHourseLabel));
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param rentingHourseLabel 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody RentingHourseLabel rentingHourseLabel) {
+        return R.ok(this.rentingHourseLabelService.updateById(rentingHourseLabel));
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return R.ok(this.rentingHourseLabelService.removeById(id));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/RentingHourseOrderApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/RentingHourseOrderApi.java
new file mode 100644
index 0000000..0baa395
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/RentingHourseOrderApi.java
@@ -0,0 +1,116 @@
+package com.panzhihua.service_community.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.api.ApiController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.community.rentHouse.RentingHourseOrderVO;
+import com.panzhihua.common.model.vos.community.rentHouse.WxPayNotifyOrderVO;
+import com.panzhihua.common.model.vos.community.rentHouse.WxPayOrderVO;
+import com.panzhihua.service_community.entity.RentingHourseOrder;
+import com.panzhihua.service_community.service.RentingHourseOrderService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 房屋租赁-房屋订单表(RentingHourseOrder)表控制层
+ *
+ * @author makejava
+ * @since 2021-11-23 10:46:57
+ */
+@RestController
+@RequestMapping("rentingHourseOrder")
+public class RentingHourseOrderApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private RentingHourseOrderService rentingHourseOrderService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.rentingHourseOrderService.pageList(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return R.ok(this.rentingHourseOrderService.getById(id));
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param rentingHourseOrder 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody RentingHourseOrderVO rentingHourseOrder) {
+        return this.rentingHourseOrderService.createOrder(rentingHourseOrder);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param rentingHourseOrdervo 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody RentingHourseOrderVO rentingHourseOrdervo) {
+        RentingHourseOrder rentingHourseOrder=new RentingHourseOrder();
+        BeanUtils.copyProperties(rentingHourseOrdervo,rentingHourseOrder);
+        return R.ok(this.rentingHourseOrderService.updateById(rentingHourseOrder));
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return R.ok(this.rentingHourseOrderService.removeById(id));
+    }
+
+    /**
+     * 支付回调处理订单状态以及房屋状态
+     */
+    @PostMapping("/wxNotify")
+    public R wxNotify(@RequestBody WxPayNotifyOrderVO wxPayNotifyOrderVO){
+        return this.rentingHourseOrderService.wxPayNotify(wxPayNotifyOrderVO);
+    }
+
+    /**
+     * 支付付款
+     */
+    @PostMapping("/wxPay")
+    public R wxPay(@RequestBody WxPayOrderVO wxPayOrderVO){
+        return this.rentingHourseOrderService.wxPay(wxPayOrderVO);
+    }
+
+    /**
+     * 订单统计
+     */
+    @PostMapping("/statics")
+    public R statics(@RequestBody RentingHourseOrderVO rentingHourseOrderVO){
+        return this.rentingHourseOrderService.statics(rentingHourseOrderVO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/RentingHoursePayingOrderApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/RentingHoursePayingOrderApi.java
new file mode 100644
index 0000000..4cfd1f7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/RentingHoursePayingOrderApi.java
@@ -0,0 +1,86 @@
+package com.panzhihua.service_community.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.api.ApiController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.service_community.entity.RentingHoursePayingOrder;
+import com.panzhihua.service_community.service.RentingHoursePayingOrderService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 房屋租赁-支付流水记录表(RentingHoursePayingOrder)表控制层
+ *
+ * @author makejava
+ * @since 2021-11-23 10:47:17
+ */
+@RestController
+@RequestMapping("rentingHoursePayingOrder")
+public class RentingHoursePayingOrderApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private RentingHoursePayingOrderService rentingHoursePayingOrderService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.rentingHoursePayingOrderService.pageList(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return R.ok(this.rentingHoursePayingOrderService.getById(id));
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param rentingHoursePayingOrder 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody RentingHoursePayingOrder rentingHoursePayingOrder) {
+        return R.ok(this.rentingHoursePayingOrderService.save(rentingHoursePayingOrder));
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param rentingHoursePayingOrder 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody RentingHoursePayingOrder rentingHoursePayingOrder) {
+        return R.ok(this.rentingHoursePayingOrderService.updateById(rentingHoursePayingOrder));
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return R.ok(this.rentingHoursePayingOrderService.removeById(id));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/RentingHoursePreOrderApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/RentingHoursePreOrderApi.java
new file mode 100644
index 0000000..360fbd5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/RentingHoursePreOrderApi.java
@@ -0,0 +1,99 @@
+package com.panzhihua.service_community.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.api.ApiController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.community.rentHouse.RentingHourseOrderVO;
+import com.panzhihua.common.model.vos.community.rentHouse.RentingHoursePreOrderVO;
+import com.panzhihua.service_community.entity.RentingHoursePreOrder;
+import com.panzhihua.service_community.service.RentingHoursePreOrderService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 房屋租赁-房屋定金订单表(RentingHoursePreOrder)表控制层
+ *
+ * @author makejava
+ * @since 2021-11-23 10:47:54
+ */
+@RestController
+@RequestMapping("rentingHoursePreOrder")
+public class RentingHoursePreOrderApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private RentingHoursePreOrderService rentingHoursePreOrderService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.rentingHoursePreOrderService.pageList(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return R.ok(this.rentingHoursePreOrderService.getById(id));
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param rentingHoursePreOrderVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody RentingHoursePreOrderVO rentingHoursePreOrderVO) {
+        return rentingHoursePreOrderService.createOrder(rentingHoursePreOrderVO);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param rentingHoursePreOrderVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody RentingHoursePreOrderVO rentingHoursePreOrderVO) {
+        RentingHoursePreOrder rentingHoursePreOrder=new RentingHoursePreOrder();
+        BeanUtils.copyProperties(rentingHoursePreOrderVO,rentingHoursePreOrder);
+        return R.ok(this.rentingHoursePreOrderService.updateById(rentingHoursePreOrder));
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return R.ok(this.rentingHoursePreOrderService.removeById(id));
+    }
+
+    /**
+     * 订单统计
+     */
+    @PostMapping("/statics")
+    public R statics(@RequestBody RentingHoursePreOrderVO rentingHoursePreOrderVO){
+        return this.rentingHoursePreOrderService.statics(rentingHoursePreOrderVO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/RentingHourseRefundOrderApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/RentingHourseRefundOrderApi.java
new file mode 100644
index 0000000..558e254
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/RentingHourseRefundOrderApi.java
@@ -0,0 +1,86 @@
+package com.panzhihua.service_community.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.api.ApiController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.service_community.entity.RentingHourseRefundOrder;
+import com.panzhihua.service_community.service.RentingHourseRefundOrderService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 房屋租赁-退款流水记录表(RentingHourseRefundOrder)表控制层
+ *
+ * @author makejava
+ * @since 2021-11-23 10:48:15
+ */
+@RestController
+@RequestMapping("rentingHourseRefundOrder")
+public class RentingHourseRefundOrderApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private RentingHourseRefundOrderService rentingHourseRefundOrderService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.rentingHourseRefundOrderService.pageList(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Serializable id) {
+        return R.ok(this.rentingHourseRefundOrderService.getById(id));
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param rentingHourseRefundOrder 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody RentingHourseRefundOrder rentingHourseRefundOrder) {
+        return R.ok(this.rentingHourseRefundOrderService.save(rentingHourseRefundOrder));
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param rentingHourseRefundOrder 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody RentingHourseRefundOrder rentingHourseRefundOrder) {
+        return R.ok(this.rentingHourseRefundOrderService.updateById(rentingHourseRefundOrder));
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return R.ok(this.rentingHourseRefundOrderService.removeById(id));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/RentingHourseRegisterApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/RentingHourseRegisterApi.java
new file mode 100644
index 0000000..eff1836
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/RentingHourseRegisterApi.java
@@ -0,0 +1,118 @@
+package com.panzhihua.service_community.api;
+
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.DeleteMapping;
+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.common.model.dtos.community.rentingHouses.NearbyDTO;
+import com.panzhihua.common.model.dtos.community.rentingHouses.PageRentingHouseRegisterDTO;
+import com.panzhihua.common.model.dtos.community.rentingHouses.ReleaseOrCancelHouseDTO;
+import com.panzhihua.common.model.dtos.community.rentingHouses.RentingHouseRegisterDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.service.RentingHourseRegisterService;
+
+/**
+ * 房屋租售-租赁房屋登记(RentingHourseRegister)表控制层
+ *
+ * @author makejava
+ * @since 2021-11-23 10:49:08
+ */
+@RestController
+@RequestMapping("/rentingHourseRegister")
+public class RentingHourseRegisterApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private RentingHourseRegisterService rentingHourseRegisterService;
+
+    /**
+     * 分页获取房源信息
+     * @param pageRegisterDTO
+     * @return
+     */
+    @PostMapping("/page")
+    public R pageRentingHouse(@RequestBody PageRentingHouseRegisterDTO pageRegisterDTO) {
+        return rentingHourseRegisterService.pageRentingHouse(pageRegisterDTO);
+    }
+
+    /**
+     * 新增房源信息
+     * @param registerDTO
+     * @return
+     */
+    @PostMapping("/register")
+    public R registerRentingHouse(@RequestBody RentingHouseRegisterDTO registerDTO) {
+        return rentingHourseRegisterService.registerRentingHouse(registerDTO);
+    }
+
+    /**
+     * 编辑房源信息
+     * @param registerDTO
+     * @return
+     */
+    @PostMapping("/update")
+    public R updateRentingHouse(@RequestBody RentingHouseRegisterDTO registerDTO) {
+        return rentingHourseRegisterService.updateRentingHouse(registerDTO);
+    }
+
+    /**
+     * 发布/取消发布 房源信
+     * @param releaseOrCancelHouseDTO
+     * @return
+     */
+    @PutMapping("/releaseOrCancel")
+    public R releaseOrCancelHouse(@RequestBody ReleaseOrCancelHouseDTO releaseOrCancelHouseDTO) {
+        return rentingHourseRegisterService.releaseOrCancelHouse(releaseOrCancelHouseDTO);
+    }
+
+    /**
+     * 删除房源信息
+     * @param registerId
+     * @return
+     */
+    @DeleteMapping("/delete")
+    public R deleteRentingHouse(@RequestParam("registerId") Long registerId) {
+        return rentingHourseRegisterService.deleteRentingHouse(registerId);
+    }
+
+    /**
+     * 获取详情-房源信息
+     * @param registerId
+     * @return
+     */
+    @GetMapping("/get")
+    public R getRentingHouse(@RequestParam("registerId") Long registerId) {
+        return rentingHourseRegisterService.getRentingHouse(registerId);
+    }
+    /**
+     * 附近的房源
+     */
+    @PostMapping("/nearby")
+    public R nearby(@RequestBody NearbyDTO nearbyDTO){
+        return rentingHourseRegisterService.nearby(nearbyDTO);
+    }
+
+    /**
+     * 小程序分页获取房源信息
+     * @param pageRegisterDTO
+     * @return
+     */
+    @PostMapping("/houseList")
+    public R pageRentingHouseApplet(@RequestBody PageRentingHouseRegisterDTO pageRegisterDTO) {
+        return rentingHourseRegisterService.pageRentingHouseApplet(pageRegisterDTO);
+    }
+
+    @GetMapping("/updateAllHouseUnionAppCode")
+    public void updateAllHouseUnionAppCode(@RequestParam("areaCode") String areaCode) {
+        rentingHourseRegisterService.updateAllHouseUnionAppCode(areaCode);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/RentingHourseReturnOrderApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/RentingHourseReturnOrderApi.java
new file mode 100644
index 0000000..3aea8d1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/RentingHourseReturnOrderApi.java
@@ -0,0 +1,86 @@
+package com.panzhihua.service_community.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.api.ApiController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.service_community.entity.RentingHourseReturnOrder;
+import com.panzhihua.service_community.service.RentingHourseReturnOrderService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 房屋租赁-房屋退租申请表(RentingHourseReturnOrder)表控制层
+ *
+ * @author makejava
+ * @since 2021-11-23 10:49:38
+ */
+@RestController
+@RequestMapping("rentingHourseReturnOrder")
+public class RentingHourseReturnOrderApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private RentingHourseReturnOrderService rentingHourseReturnOrderService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.rentingHourseReturnOrderService.pageList(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Serializable id) {
+        return R.ok(this.rentingHourseReturnOrderService.getById(id));
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param rentingHourseReturnOrder 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody RentingHourseReturnOrder rentingHourseReturnOrder) {
+        return R.ok(this.rentingHourseReturnOrderService.save(rentingHourseReturnOrder));
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param rentingHourseReturnOrder 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody RentingHourseReturnOrder rentingHourseReturnOrder) {
+        return R.ok(this.rentingHourseReturnOrderService.updateById(rentingHourseReturnOrder));
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return R.ok(this.rentingHourseReturnOrderService.removeById(id));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/RentingHousesContractConfigApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/RentingHousesContractConfigApi.java
new file mode 100644
index 0000000..65714f5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/RentingHousesContractConfigApi.java
@@ -0,0 +1,61 @@
+package com.panzhihua.service_community.api;
+
+
+import javax.annotation.Resource;
+
+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.common.model.dtos.community.rentingHouses.PageRentingHousesConfigDTO;
+import com.panzhihua.common.model.dtos.community.rentingHouses.RentingHousesConfigDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.service.RentingHourseContractConfigService;
+
+/**
+ * @title: RentingHousesContractConfigApi
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description:
+ * @author: hans
+ * @date: 2021/11/23 13:32
+ */
+@RestController
+@RequestMapping("/rentingHousesConfig")
+public class RentingHousesContractConfigApi {
+
+    @Resource
+    private RentingHourseContractConfigService rentingHourseContractConfigService;
+
+    /**
+     * 分页查询房屋租赁基础配置
+     * @param pageRentingHousesConfigDTO
+     * @return
+     */
+    @PostMapping("/page")
+    public R pageRentingHousesConfig(@RequestBody PageRentingHousesConfigDTO pageRentingHousesConfigDTO) {
+        return rentingHourseContractConfigService.pageRentingHousesConfig(pageRentingHousesConfigDTO);
+    }
+
+    /**
+     * 更新配置信息
+     * @param rentingHousesConfigDTO
+     * @return
+     */
+    @PutMapping("/update")
+    public R updateRentingHousesConfig(@RequestBody RentingHousesConfigDTO rentingHousesConfigDTO) {
+        return rentingHourseContractConfigService.updateRentingHousesConfig(rentingHousesConfigDTO);
+    }
+
+    /**
+     * 获取房屋租赁配置
+     * @return
+     */
+    @GetMapping("/getConfig")
+    public R getRentingHouseConfig(@RequestParam("type") Integer type) {
+        return rentingHourseContractConfigService.getRentingHouseConfig(type);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ScreenPopulationApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ScreenPopulationApi.java
new file mode 100644
index 0000000..b2faf8f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ScreenPopulationApi.java
@@ -0,0 +1,36 @@
+package com.panzhihua.service_community.api;
+
+import javax.annotation.Resource;
+
+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 com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.service.ComMngPopulationService;
+
+/**
+ * @author xyh
+ * @date 2021/6/15 15:13
+ */
+@RestController
+@RequestMapping("/screen/population")
+public class ScreenPopulationApi {
+
+    @Resource
+    private ComMngPopulationService comMngPopulationService;
+
+    /**
+     * 大屏人口查询
+     * 
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/statistic")
+    R statistic(@RequestParam("communityId") Long communityId) {
+
+        return R.ok(comMngPopulationService.screenStatistic(communityId));
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ScreenWorkApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ScreenWorkApi.java
new file mode 100644
index 0000000..fd853a0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ScreenWorkApi.java
@@ -0,0 +1,150 @@
+package com.panzhihua.service_community.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.model.dtos.community.bigscreen.work.ScreenActActivityListDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.work.ScreenActActivityPeopleListDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.work.ScreenDiscussListDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.work.ScreenMicroListDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.service.ComActActivityService;
+import com.panzhihua.service_community.service.ComActDiscussService;
+import com.panzhihua.service_community.service.ComActMicroWishService;
+import com.panzhihua.service_community.service.ScreenWorkService;
+
+/**
+ * @author xyh
+ * @date 2021/6/15 15:13
+ */
+@RestController
+@RequestMapping("/screen/work")
+public class ScreenWorkApi {
+
+    @Resource
+    private ScreenWorkService screenWorkService;
+    @Resource
+    private ComActDiscussService comActDiscussService;
+    @Resource
+    private ComActActivityService comActActivityService;
+    @Resource
+    private ComActMicroWishService comActMicroWishService;
+
+    /**
+     * 大屏统计邻里圈
+     * 
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/neighborCircle")
+    R statisticNeighborCircle(@RequestParam("communityId") Long communityId) {
+        return screenWorkService.statisticNeighborCircle(communityId);
+    }
+
+    /**
+     * 大屏统计心愿单
+     * 
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/wish")
+    R wish(@RequestParam("communityId") Long communityId) {
+        return screenWorkService.wish(communityId);
+    }
+
+    /**
+     * 大屏统计社区活动
+     * 
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/activity")
+    R activity(@RequestParam("communityId") Long communityId) {
+        return screenWorkService.activity(communityId);
+    }
+
+    /**
+     * 大屏统计一起议
+     * 
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/discuss")
+    R discuss(@RequestParam("communityId") Long communityId) {
+        return screenWorkService.discuss(communityId);
+    }
+
+    /**
+     * 大屏统计党建工作
+     * 
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/pbWork")
+    R pbWork(@RequestParam("communityId") Long communityId) {
+        return screenWorkService.pbWork(communityId);
+    }
+
+    /**
+     * 大屏统计随手拍
+     * 
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/easyPhoto")
+    R easyPhoto(@RequestParam("communityId") Long communityId) {
+        return screenWorkService.easyPhoto(communityId);
+    }
+
+    /**
+     * 大屏统计工作情况
+     * 
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/workCount")
+    R workCount(@RequestParam("communityId") Long communityId) {
+        return screenWorkService.workCount(communityId);
+    }
+
+    /**
+     * 工作大屏-一起议列表
+     * 
+     * @param discussListDTO
+     *            请求参数
+     * @return 一起议列表
+     */
+    @PostMapping("/getScreenDiscussList")
+    public R getScreenDiscussList(@RequestBody ScreenDiscussListDTO discussListDTO) {
+        return comActDiscussService.getScreenDiscussList(discussListDTO);
+    }
+
+    @PostMapping("/getScreenActActivityList")
+    public R getScreenActActivityList(@RequestBody ScreenActActivityListDTO actActivityListDTO) {
+        return comActActivityService.getScreenActActivityList(actActivityListDTO);
+    }
+
+    @PostMapping("/getActActivityPeopleList")
+    public R getActActivityPeopleList(@RequestBody ScreenActActivityPeopleListDTO activityPeopleListDTO) {
+        return comActActivityService.getActActivityPeopleList(activityPeopleListDTO);
+    }
+
+    @PostMapping("/getScreenMicroList")
+    public R getScreenMicroList(@RequestBody ScreenMicroListDTO microListDTO) {
+        return comActMicroWishService.getScreenMicroList(microListDTO);
+    }
+
+    /**
+     * 工作大屏-社区动态模块数据统计
+     * 
+     * @param communityId
+     *            社区id
+     * @return 社区动态数据统计
+     */
+    @GetMapping("/dynamic")
+    public R dynamic(@RequestParam("communityId") Long communityId) {
+        return screenWorkService.dynamicWork(communityId);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ShopApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ShopApi.java
new file mode 100644
index 0000000..2b4ae59
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ShopApi.java
@@ -0,0 +1,690 @@
+package com.panzhihua.service_community.api;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+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.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.panzhihua.common.model.dtos.PageDTO;
+import com.panzhihua.common.model.dtos.shop.ComShopAddressDTO;
+import com.panzhihua.common.model.dtos.shop.ComShopCartDTO;
+import com.panzhihua.common.model.dtos.shop.ComShopEditNubCartDTO;
+import com.panzhihua.common.model.dtos.shop.ComShopFundsExportDTO;
+import com.panzhihua.common.model.dtos.shop.ComShopGoodsDTO;
+import com.panzhihua.common.model.dtos.shop.ComShopOrderCreateDTO;
+import com.panzhihua.common.model.dtos.shop.ComShopOrderDeliverDTO;
+import com.panzhihua.common.model.dtos.shop.ComShopOrderExportDTO;
+import com.panzhihua.common.model.dtos.shop.ComShopOrderPreviewDTO;
+import com.panzhihua.common.model.dtos.shop.ComShopOrderQueryDTO;
+import com.panzhihua.common.model.dtos.shop.ComShopOrderShipDTO;
+import com.panzhihua.common.model.dtos.shop.ComShopSysConfDTO;
+import com.panzhihua.common.model.dtos.shop.OrderPayDTO;
+import com.panzhihua.common.model.dtos.shop.PageComOrderListDTO;
+import com.panzhihua.common.model.dtos.shop.PageComShopAddressDTO;
+import com.panzhihua.common.model.dtos.shop.PageComShopFundsSearchDTO;
+import com.panzhihua.common.model.dtos.shop.PageComShopGoodsDTO;
+import com.panzhihua.common.model.dtos.shop.PageComShopOrderSearchDTO;
+import com.panzhihua.common.model.dtos.shop.PageComShopStoreDTO;
+import com.panzhihua.common.model.dtos.shop.PageComShopSysConfDTO;
+import com.panzhihua.common.model.dtos.shop.WxPayNotifyOrderDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.shop.AddShopGoodsVO;
+import com.panzhihua.common.model.vos.shop.ComShopSysConfVO;
+import com.panzhihua.common.model.vos.shop.ShopOperLogVO;
+import com.panzhihua.common.model.vos.shop.ShopStoreVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.service_community.model.dos.ComShopSysConfDO;
+import com.panzhihua.service_community.service.ComShopCartService;
+import com.panzhihua.service_community.service.ComShopGoodsService;
+import com.panzhihua.service_community.service.ComShopOperLogService;
+import com.panzhihua.service_community.service.ComShopOrderService;
+import com.panzhihua.service_community.service.ComShopStoreService;
+import com.panzhihua.service_community.service.ComShopSysConfService;
+import com.panzhihua.service_community.service.ComShopUserAddressService;
+import com.panzhihua.service_community.service.ConvenientMerchantService;
+
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+@RestController
+@RequestMapping("/shop")
+public class ShopApi {
+
+    @Resource
+    private ComShopStoreService comShopStoreService;
+    @Resource
+    private ComShopGoodsService comShopGoodsService;
+    @Resource
+    private ComShopOperLogService comShopOperLogService;
+    @Resource
+    private ComShopOrderService comShopOrderService;
+    @Resource
+    private ComShopCartService comShopCartService;
+    @Resource
+    private ComShopUserAddressService comShopUserAddressService;
+    @Resource
+    private ComShopSysConfService comShopSysConfService;
+    @Resource
+    private ConvenientMerchantService convenientMerchantService;
+    @Resource
+    private UserService userService;
+
+    /**
+     * 店铺列表-分页查询
+     * 
+     * @param pageComShopStoreDTO
+     *            查询参数
+     * @return PageShopStoreVO
+     */
+    @PostMapping("/pageShopStore")
+    public R pageShopStore(@RequestBody PageComShopStoreDTO pageComShopStoreDTO) {
+        return comShopStoreService.pageStoreList(pageComShopStoreDTO);
+    }
+
+    /**
+     * 保存店铺
+     *
+     * @param storeVO
+     * @return
+     */
+    @PostMapping("/saveStore")
+    public R saveStore(@RequestBody ShopStoreVO storeVO) {
+        return comShopStoreService.saveStore(storeVO);
+    }
+
+    /**
+     * 新增店铺
+     * 
+     * @param storeVO
+     *            店铺信息
+     * @return 新增结果
+     */
+    @PostMapping("/addStore")
+    public R addStore(@RequestBody ShopStoreVO storeVO) {
+        return comShopStoreService.addStore(storeVO);
+    }
+
+    /**
+     * 编辑店铺、启用、禁用
+     *
+     * @param storeVO
+     * @param id
+     *            商铺Id
+     * @return
+     */
+    @PostMapping("/editStore/{id}")
+    public R editStore(@RequestBody ShopStoreVO storeVO, @PathVariable("id") Long id) {
+        return comShopStoreService.editStore(id, storeVO);
+    }
+
+    /**
+     * 删除店铺
+     *
+     * @param id
+     * @return
+     */
+    @PostMapping("/deleteStore")
+    public R deleteStore(@RequestBody Long[] id) {
+        return comShopStoreService.deleteStore(id);
+    }
+
+    /**
+     * 获取详情
+     *
+     * @param id
+     * @return
+     */
+    @GetMapping("/getStoreInfo")
+    public R getOneInfo(@RequestParam("id") Long id) {
+        return comShopStoreService.getOneInfo(id);
+    }
+
+    /**
+     * 获取用户商铺详细
+     *
+     * @param userId
+     *            用户ID
+     * @return
+     */
+    @GetMapping("/getUserStoreInfo")
+    public R getUserStoreInfo(@RequestParam("userId") Long userId) {
+        return comShopStoreService.getUserStoreInfo(userId);
+    }
+
+    /**
+     * 获取用户商铺详细
+     *
+     * @param account
+     *            用户账号
+     * @return
+     */
+    @GetMapping("/getUserStoreInfoByAccount")
+    public R<ShopStoreVO> getUserStoreInfoByAccount(@RequestParam("account") String account) {
+        return comShopStoreService.getUserStoreInfo(account);
+    }
+
+    /**
+     * 添加商城后台日志
+     *
+     * @param shopOperlog
+     *            商城日志
+     * @return 添加结果
+     */
+    @PostMapping("/addShopOperLog")
+    public R addShopOperLog(@RequestBody ShopOperLogVO shopOperlog) {
+        return comShopOperLogService.saveLog(shopOperlog);
+    }
+
+    /**
+     * 分页查询 商家后台操作日志
+     * 
+     * @param pageDTO
+     *            分页数据
+     * @return 分页日志
+     */
+    @PostMapping("/pageShopOperLog")
+    public R pageShopOperLog(@RequestBody PageDTO pageDTO) {
+        return comShopOperLogService.pageShopOperLog(pageDTO);
+    }
+
+    /**
+     * 分页查询 商家订单
+     * 
+     * @param pageComShopOrderSearchDTO
+     *            分页数据
+     * @return 分页订单
+     */
+    @PostMapping("/order/page")
+    public R pageShopOrder(@RequestBody PageComShopOrderSearchDTO pageComShopOrderSearchDTO) {
+        return comShopOrderService.pageShopOrder(pageComShopOrderSearchDTO);
+    }
+
+    /**
+     * 根据店铺id查询店铺详情
+     * 
+     * @param comShopStoreDTO
+     *            请求参数
+     * @return 店铺详情
+     */
+    @PostMapping("shopStoreDetail")
+    public R shopStoreDetail(@RequestBody PageComShopStoreDTO comShopStoreDTO) {
+        return comShopStoreService.shopStoreDetail(comShopStoreDTO);
+    }
+
+    /**
+     * 分页查询商品列表
+     * 
+     * @param comShopGoodsDTO
+     *            请求参数
+     * @return 商品列表
+     */
+    @PostMapping("/pageShopGoods")
+    public R pageShopGoods(@RequestBody ComShopGoodsDTO comShopGoodsDTO) {
+
+        return comShopGoodsService.pageShopGoods(comShopGoodsDTO);
+    }
+
+    /**
+     * 根据商品id查询商品详情
+     * 
+     * @param goodsId
+     *            商品id
+     * @return 商品信息
+     */
+    @PostMapping("shopGoodsDetail")
+    public R shopGoodsDetail(@RequestParam("goodsId") Long goodsId) {
+        return comShopGoodsService.shopGoodsDetail(goodsId);
+    }
+
+    /**
+     * 根据用户id查询购物车列表
+     * 
+     * @param userId
+     *            用户id
+     * @return 购物车列表信息
+     */
+    @PostMapping("shopCartList")
+    public R shopCartList(@RequestParam("userId") Long userId) {
+        return comShopCartService.shopCartList(userId);
+    }
+
+    /**
+     * 查询用户购物车数量
+     * 
+     * @param userId
+     *            用户id
+     * @return 用户购物车商品数量
+     */
+    @PostMapping("shopCartUserTotal")
+    public R shopCartUserTotal(@RequestParam("userId") Long userId) {
+        return comShopCartService.shopCartUserTotal(userId);
+    }
+
+    /**
+     * 购物车添加
+     * 
+     * @param comShopCartDTO
+     *            请求参数
+     * @return 添加结果
+     */
+    @PostMapping("shopAddCart")
+    public R shopAddCart(@RequestBody ComShopCartDTO comShopCartDTO) {
+        return comShopCartService.shopAddCart(comShopCartDTO);
+    }
+
+    /**
+     * 购物车内商品数量添加
+     * 
+     * @param shopEditNubCartDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    @PostMapping("shopEditNubCart")
+    public R shopEditNubCart(@RequestBody ComShopEditNubCartDTO shopEditNubCartDTO) {
+        return comShopCartService.shopEditNubCart(shopEditNubCartDTO);
+    }
+
+    /**
+     * 删除购物车记录
+     * 
+     * @param Ids
+     *            购物车id集合
+     * @return 删除结果
+     */
+    @PostMapping("shopDelCart")
+    public R shopDelCart(@RequestBody List<Long> Ids) {
+        return comShopCartService.shopDelCart(Ids);
+    }
+
+    /**
+     * 查询用户收货地址列表
+     * 
+     * @param comShopAddressDTO
+     *            请求参数
+     * @return 用户收获地址列表
+     */
+    @PostMapping("shopUserAddressList")
+    public R shopUserAddressList(@RequestBody PageComShopAddressDTO comShopAddressDTO) {
+        return comShopUserAddressService.shopUserAddressList(comShopAddressDTO);
+    }
+
+    /**
+     * 用户添加书货地址
+     * 
+     * @param comShopAddressDTO
+     *            请求参数
+     * @return 添加结果
+     */
+    @PostMapping("shopAddUserAddress")
+    public R shopAddUserAddress(@RequestBody ComShopAddressDTO comShopAddressDTO) {
+        return comShopUserAddressService.shopAddUserAddress(comShopAddressDTO);
+    }
+
+    /**
+     * 用户修改收货地址
+     * 
+     * @param comShopAddressDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    @PostMapping("shopEditUserAddress")
+    public R shopEditUserAddress(@RequestBody ComShopAddressDTO comShopAddressDTO) {
+        return comShopUserAddressService.shopEditUserAddress(comShopAddressDTO);
+    }
+
+    /**
+     * 用户删除收货地址
+     * 
+     * @param addressId
+     *            收货地址id
+     * @return 删除结果
+     */
+    @PostMapping("shopDelUserAddress")
+    public R shopDelUserAddress(@RequestParam("addressId") Long addressId) {
+        return comShopUserAddressService.shopDelUserAddress(addressId);
+    }
+
+    /**
+     * 订单预览
+     * 
+     * @param orderPreviewDTO
+     *            请求参数
+     * @return 订单预览数据
+     */
+    @PostMapping("orderPreview")
+    public R orderPreview(@RequestBody ComShopOrderPreviewDTO orderPreviewDTO) {
+        return comShopOrderService.orderPreview(orderPreviewDTO);
+    }
+
+    /**
+     * 创建订单
+     * 
+     * @param orderCreateDTO
+     *            创建订单请求参数
+     * @return 创建结果
+     */
+    @PostMapping("orderCreate")
+    public R orderCreate(@RequestBody ComShopOrderCreateDTO orderCreateDTO) {
+        return comShopOrderService.orderCreate(orderCreateDTO);
+    }
+
+    /**
+     * 分页查询用户订单列表
+     * 
+     * @param comOrderListDTO
+     *            请求参数
+     * @return 查询结果
+     */
+    @PostMapping("pageOrderList")
+    public R pageOrderList(@RequestBody PageComOrderListDTO comOrderListDTO) {
+        return comShopOrderService.pageOrderList(comOrderListDTO);
+    }
+
+    /**
+     * 根据订单id查询订单详情
+     * 
+     * @param orderId
+     *            订单id
+     * @return 订单详情
+     */
+    @PostMapping("orderDetail")
+    public R orderDetail(@RequestParam("orderId") Long orderId) {
+        return comShopOrderService.orderDetail(orderId);
+    }
+
+    /**
+     * 根据订单id取消订单
+     * 
+     * @param comShopOrderQueryDTO
+     *            请求参数
+     * @return 取消结果
+     */
+    @PostMapping("orderCancel")
+    public R orderCancel(@RequestBody ComShopOrderQueryDTO comShopOrderQueryDTO) {
+        return comShopOrderService.orderCancel(comShopOrderQueryDTO);
+    }
+
+    /**
+     * 根据订单id删除订单
+     * 
+     * @param orderId
+     *            订单id
+     * @return 删除结果
+     */
+    @PostMapping("orderDelete")
+    public R orderDelete(@RequestParam("orderId") Long orderId) {
+        return comShopOrderService.orderDelete(orderId);
+    }
+
+    /**
+     * 根据订单id确认收货
+     * 
+     * @param comShopOrderQueryDTO
+     *            请求参数
+     * @return 确认结果
+     */
+    @PostMapping("orderConfirm")
+    public R orderConfirm(@RequestBody ComShopOrderQueryDTO comShopOrderQueryDTO) {
+        return comShopOrderService.orderConfirm(comShopOrderQueryDTO.getOrderId(), comShopOrderQueryDTO.getPhone());
+    }
+
+    /**
+     * 统计用户订单数量
+     * 
+     * @param userId
+     *            用户id
+     * @return 统计结果
+     */
+    @PostMapping("orderStatistics")
+    public R orderStatistics(@RequestParam("userId") Long userId) {
+        return comShopOrderService.orderStatistics(userId);
+    }
+
+    /**
+     * 商品列表-分页查询
+     * 
+     * @param pageComShopGoodsDTO
+     *            查询参数
+     * @return PageShopStoreVO
+     */
+    @PostMapping("pageGoods")
+    public R pageShopStore(@RequestBody PageComShopGoodsDTO pageComShopGoodsDTO) {
+        return comShopGoodsService.pageGoodsList(pageComShopGoodsDTO);
+    }
+
+    /**
+     * 新增商品
+     * 
+     * @param addShopGoodsVO
+     * @return
+     */
+    @PostMapping("saveShopGoods")
+    public R saveStore(@RequestBody AddShopGoodsVO addShopGoodsVO) {
+        return comShopGoodsService.saveShopGoods(addShopGoodsVO);
+    }
+
+    /**
+     * 编辑商品
+     * 
+     * @param addShopGoodsVO
+     * @param id
+     *            商铺Id
+     * @return
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @PostMapping("editShopGoods/{id}")
+    public R editShopGoods(@PathVariable("id") Long id, @RequestBody AddShopGoodsVO addShopGoodsVO) {
+        return comShopGoodsService.editShopGoods(id, addShopGoodsVO);
+    }
+
+    /**
+     * 删除商品
+     * 
+     * @param id
+     * @return
+     */
+    @PostMapping("deleteShopGoods")
+    public R deleteShopGoods(@RequestBody Long[] id) {
+        return comShopGoodsService.deleteShopGoods(id);
+    }
+
+    /**
+     * 修改商品状态
+     * 
+     * @param id
+     * @return
+     */
+    @GetMapping("changeShopGoodsStatus")
+    public R changeStatus(@RequestParam("id") Long id, @RequestParam("status") Integer status) {
+        return comShopGoodsService.changeStatus(id, status);
+    }
+
+    /**
+     * 商家资金的订单详情
+     * 
+     * @param id
+     * @return
+     */
+    @GetMapping("capitalDetailByStore")
+    public R capitalDetailByStore(@RequestParam("id") Long id) {
+        return comShopOrderService.capitalDetailByStore(id);
+    }
+
+    /**
+     * 订单发货
+     * 
+     * @param orderShipDTO
+     *            发货信息
+     * @return 发货结果
+     */
+    @PostMapping("/shipOrder")
+    R shipOrder(@RequestBody ComShopOrderShipDTO orderShipDTO) {
+        return comShopOrderService.shipOrder(orderShipDTO);
+    }
+
+    /**
+     * 订单配送
+     * 
+     * @param deliverDTO
+     *            订单ID
+     * @return 配送结果
+     */
+    @PostMapping("/deliverOrder")
+    R deliverOrder(@RequestBody ComShopOrderDeliverDTO deliverDTO) {
+        return comShopOrderService.deliverOrder(deliverDTO);
+    }
+
+    /**
+     * 订单配送
+     * 
+     * @param deliverDTO
+     *            订单ID
+     * @return 配送完成
+     */
+    @PostMapping("/finishDeliverOrder")
+    R finishDeliverOrder(@RequestBody ComShopOrderDeliverDTO deliverDTO) {
+        return comShopOrderService.finishDeliverOrder(deliverDTO);
+    }
+
+    /**
+     * 订单导出信息
+     * 
+     * @param comShopOrderExportDTO
+     *            订单导出信息
+     * @return 订单导出信息
+     */
+    @PostMapping("/shopOrderExportData")
+    R shopOrderExportData(@RequestBody ComShopOrderExportDTO comShopOrderExportDTO) {
+        return comShopOrderService.shopOrderExportData(comShopOrderExportDTO);
+    }
+
+    /**
+     * 资金管理导出信息
+     * 
+     * @param comShopFundsExportDTO
+     *            资金管理导出信息
+     * @return 资金管理导出信息
+     */
+    @PostMapping("/shopOrderFundsExportData")
+    R shopOrderFundsExportData(@RequestBody ComShopFundsExportDTO comShopFundsExportDTO) {
+        return comShopOrderService.shopOrderFundsExportData(comShopFundsExportDTO);
+    }
+
+    /**
+     * 用户资金统计信息
+     * 
+     * @param userId
+     *            用户ID
+     * @return 统计信息
+     */
+    @GetMapping("/getFundsStat")
+    R getFundsStat(@RequestParam("userId") Long userId) {
+        return comShopOrderService.getFundsStat(userId);
+    }
+
+    /**
+     * 店铺资金统计信息
+     * 
+     * @param pageComShopFundsSearchDTO
+     *            店铺资金
+     * @return 店铺资金统计信息
+     */
+    @PostMapping("/pageShopFunds")
+    R pageShopFunds(@RequestBody PageComShopFundsSearchDTO pageComShopFundsSearchDTO) {
+        return comShopOrderService.pageShopFunds(pageComShopFundsSearchDTO);
+    }
+
+    /**
+     * 微信支付订单回调
+     * 
+     * @param wxPayNotifyOrderDTO
+     *            订单支付回调参数
+     */
+    @PostMapping("/wxOrderPayNotify")
+    public void wxOrderPayNotify(@RequestBody WxPayNotifyOrderDTO wxPayNotifyOrderDTO) {
+        comShopOrderService.wxOrderPayNotify(wxPayNotifyOrderDTO);
+    }
+
+    /**
+     * 点击去支付订单
+     * 
+     * @param orderPayDTO
+     *            请求参数
+     * @return 支付对象
+     */
+    @PostMapping("/wxPay")
+    public R wxPay(@RequestBody OrderPayDTO orderPayDTO) {
+        return comShopOrderService.wxPay(orderPayDTO);
+    }
+
+    /**
+     * 商城系统配置
+     * 
+     * @param comShopSysConfDTO
+     * @return
+     */
+    @PostMapping("/conf/edit")
+    R editShopSysConf(@RequestBody ComShopSysConfDTO comShopSysConfDTO) {
+        ComShopSysConfDO comShopSysConfDO = comShopSysConfService.getBaseMapper().selectById(comShopSysConfDTO.getId());
+        switch (comShopSysConfDTO.getHidden()) {
+            case 0:
+                comShopSysConfDO.setVal("0");
+                comShopSysConfDO.setEnabled("1");
+                break;
+            case 1:
+                comShopSysConfDO.setVal("1");
+                comShopSysConfDO.setEnabled("1");
+                break;
+            default:
+                break;
+        }
+        int updated = comShopSysConfService.getBaseMapper().updateById(comShopSysConfDO);
+        if (updated == 1) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 商城系统配置查询
+     * 
+     * @param pageComShopSysConfDTO
+     * @return
+     */
+    @PostMapping("/conf/get")
+    R pageShopSysConf(@RequestBody PageComShopSysConfDTO pageComShopSysConfDTO) {
+        List<ComShopSysConfDO> confList =
+            comShopSysConfService.getBaseMapper().selectList(new LambdaQueryWrapper<ComShopSysConfDO>()
+                .eq(ComShopSysConfDO::getName, "SHOP_HIDDEN").orderByDesc(ComShopSysConfDO::getCreate_at));
+        ComShopSysConfVO comShopSysConfVO = new ComShopSysConfVO();
+        if (confList != null && confList.size() > 0) {
+            ComShopSysConfDO firstConf = confList.get(0);
+            BeanUtils.copyProperties(firstConf, comShopSysConfVO);
+            return R.ok(comShopSysConfVO);
+        }
+        return R.ok();
+    }
+
+    /**
+     * check商家/店铺是否有效
+     * @param userId
+     * @return
+     */
+    @GetMapping("/checkStoreIsValid")
+    public R checkStoreIsValid(@RequestParam("userId") Long userId) {
+        Boolean isShopValid = comShopStoreService.checkStoreIsValid(userId);
+        Boolean isConvenientValid = convenientMerchantService.checkStoreIsValid(userId);
+        Boolean isMcsValid = userService.checkUserIsValid(userId, 11);
+        return R.ok(isShopValid || isConvenientValid || isMcsValid);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ShopFlowerApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ShopFlowerApi.java
new file mode 100644
index 0000000..90a8da2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/ShopFlowerApi.java
@@ -0,0 +1,580 @@
+package com.panzhihua.service_community.api;
+
+import com.panzhihua.common.model.dtos.shop.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.shop.AddShopFlowerGoodsVO;
+import com.panzhihua.service_community.service.*;
+import com.panzhihua.service_community.util.QRCodeUtil;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@RestController
+@RequestMapping("/shopFlower")
+public class ShopFlowerApi {
+
+    @Resource
+    private ComShopFlowerGoodsService comShopFlowerGoodsService;
+    @Resource
+    private ComShopFlowerOrderService comShopFlowerOrderService;
+    @Resource
+    private ComShopFlowerUserAddressService comShopUserAddressService;
+    @Resource
+    private ConvenientMerchantService convenientMerchantService;
+    @Resource
+    private ComShopFlowerEvaluateService comShopFlowerEvaluateService;
+    @Resource
+    private ComShopFlowerOrderDeliveryService comShopFlowerOrderDeliveryService;
+    @Resource
+    private ComShopFlowerRefundOrderService comShopFlowerRefundOrderService;
+    @Resource
+    private ComShopFlowerOrderPayService comShopFlowerOrderPayService;
+
+
+    /**
+     * 商品列表-分页查询
+     *
+     * @param pageComShopGoodsDTO 查询参数
+     * @return PageShopStoreVO
+     */
+    @PostMapping("pageGoods")
+    public R pageFlowerGoodsList(@RequestBody PageComShopFlowerGoodsDTO pageComShopGoodsDTO) {
+        return comShopFlowerGoodsService.pageFlowerGoodsList(pageComShopGoodsDTO);
+    }
+
+    /**
+     * 商品列表-APP分页查询
+     *
+     * @param comShopFlowerGoodsDTO 查询参数
+     * @return PageShopStoreVO
+     */
+    @PostMapping("pageShopFlowerGoodsByApp")
+    public R pageShopFlowerGoodsByApp(@RequestBody ComShopFlowerGoodsDTO comShopFlowerGoodsDTO) {
+        return comShopFlowerGoodsService.pageShopFlowerGoodsByApp(comShopFlowerGoodsDTO);
+    }
+
+    /**
+     * 新增商品
+     *
+     * @param addShopGoodsVO
+     * @return
+     */
+    @PostMapping("saveShopGoods")
+    public R saveFlowerShopGoods(@RequestBody AddShopFlowerGoodsVO addShopGoodsVO) {
+        return comShopFlowerGoodsService.saveShopFlowerGoods(addShopGoodsVO);
+    }
+
+    /**
+     * 编辑商品
+     *
+     * @param addShopGoodsVO
+     * @param id             商铺Id
+     * @return
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @PostMapping("editShopGoods/{id}")
+    public R editFlowerShopGoods(@PathVariable("id") Long id, @RequestBody AddShopFlowerGoodsVO addShopGoodsVO) {
+        return comShopFlowerGoodsService.editFlowerShopGoods(id, addShopGoodsVO);
+    }
+
+    /**
+     * 删除商品
+     *
+     * @param goodsId
+     * @return
+     */
+    @DeleteMapping("deleteShopGoods")
+    public R deleteFlowerShopGoods(@RequestParam("goodsId") Long goodsId) {
+        return comShopFlowerGoodsService.deleteShopFlowerGoods(goodsId);
+    }
+
+    /**
+     * 根据商品id查询商品详情
+     *
+     * @param goodsId 商品id
+     * @return 商品信息
+     */
+    @GetMapping("shopGoodsDetail")
+    public R shopFlowerGoodsDetail(@RequestParam("goodsId") Long goodsId) {
+        return comShopFlowerGoodsService.shopFlowerGoodsDetail(goodsId);
+    }
+
+    /**
+     * 修改商品状态
+     *
+     * @param id
+     * @return
+     */
+    @GetMapping("changeShopGoodsStatus")
+    public R changeFlowerStatus(@RequestParam("id") Long id, @RequestParam("status") Integer status) {
+        return comShopFlowerGoodsService.changeStatus(id, status);
+    }
+
+    /**
+     * 查询用户收货地址列表
+     *
+     * @param comShopAddressDTO 请求参数
+     * @return 用户收获地址列表
+     */
+    @PostMapping("shopUserAddressList")
+    public R shopFlowerUserAddressList(@RequestBody PageComShopAddressDTO comShopAddressDTO) {
+        return comShopUserAddressService.shopUserAddressList(comShopAddressDTO);
+    }
+
+    /**
+     * 用户添加书货地址
+     *
+     * @param comShopAddressDTO 请求参数
+     * @return 添加结果
+     */
+    @PostMapping("shopAddUserAddress")
+    public R shopFlowerAddUserAddress(@RequestBody ComShopAddressDTO comShopAddressDTO) {
+        return comShopUserAddressService.shopAddUserAddress(comShopAddressDTO);
+    }
+
+    /**
+     * 用户修改收货地址
+     *
+     * @param comShopAddressDTO 请求参数
+     * @return 修改结果
+     */
+    @PostMapping("shopEditUserAddress")
+    public R shopFlowerEditUserAddress(@RequestBody ComShopAddressDTO comShopAddressDTO) {
+        return comShopUserAddressService.shopEditUserAddress(comShopAddressDTO);
+    }
+
+    /**
+     * 用户删除收货地址
+     *
+     * @param addressId 收货地址id
+     * @return 删除结果
+     */
+    @DeleteMapping("shopDelUserAddress")
+    public R shopFlowerDelUserAddress(@RequestParam("addressId") Long addressId) {
+        return comShopUserAddressService.shopDelUserAddress(addressId);
+    }
+
+    /**
+     * 订单预览
+     *
+     * @param orderPreviewDTO 请求参数
+     * @return 订单预览数据
+     */
+    @PostMapping("orderPreview")
+    public R orderPreviewFlower(@RequestBody ComShopOrderPreviewDTO orderPreviewDTO) {
+        return comShopFlowerOrderService.orderPreview(orderPreviewDTO);
+    }
+
+    /**
+     * 创建订单
+     *
+     * @param orderCreateDTO 创建订单请求参数
+     * @return 创建结果
+     */
+    @PostMapping("orderCreate")
+    public R orderCreateFlower(@RequestBody ComShopOrderCreateDTO orderCreateDTO) {
+        return comShopFlowerOrderService.orderCreate(orderCreateDTO);
+    }
+
+    /**
+     * 分页查询用户订单列表
+     *
+     * @param comOrderListDTO 请求参数
+     * @return 查询结果
+     */
+    @PostMapping("pageOrderList")
+    public R pageOrderListFlower(@RequestBody PageComFlowerOrderListDTO comOrderListDTO) {
+        return comShopFlowerOrderService.pageOrderList(comOrderListDTO);
+    }
+
+    /**
+     * 根据订单id查询订单详情
+     *
+     * @param orderId 订单id
+     * @return 订单详情
+     */
+    @GetMapping("orderDetail")
+    public R orderDetailFlower(@RequestParam("orderId") Long orderId,@RequestParam(value = "phone",required = false) String phone) {
+        return comShopFlowerOrderService.orderDetail(orderId,phone);
+    }
+
+    /**
+     * 根据订单id取消订单
+     *
+     * @param comShopOrderQueryDTO 请求参数
+     * @return 取消结果
+     */
+    @PostMapping("orderCancel")
+    public R orderCancelFlower(@RequestBody ComShopOrderQueryDTO comShopOrderQueryDTO) {
+        return comShopFlowerOrderService.orderCancel(comShopOrderQueryDTO);
+    }
+
+    /**
+     * 根据订单id删除订单
+     *
+     * @param orderId 订单id
+     * @return 删除结果
+     */
+    @DeleteMapping("orderDelete")
+    public R orderDeleteFlower(@RequestParam("orderId") Long orderId) {
+        return comShopFlowerOrderService.orderDelete(orderId);
+    }
+
+    /**
+     * 根据订单id确认收货
+     *
+     * @param comShopOrderQueryDTO 请求参数
+     * @return 确认结果
+     */
+    @PostMapping("orderConfirm")
+    public R orderConfirmFlower(@RequestBody ComShopOrderQueryDTO comShopOrderQueryDTO) {
+        return comShopFlowerOrderService.orderConfirm(comShopOrderQueryDTO.getOrderId(), comShopOrderQueryDTO.getPhone());
+    }
+
+    /**
+     * 分页查询 商家订单
+     *
+     * @param pageComShopOrderSearchDTO 分页数据
+     * @return 分页订单
+     */
+    @PostMapping("/order/page")
+    public R pageShopOrderFlower(@RequestBody PageComShopOrderSearchDTO pageComShopOrderSearchDTO) {
+        return comShopFlowerOrderService.pageShopOrder(pageComShopOrderSearchDTO);
+    }
+
+    /**
+     * 订单发货
+     *
+     * @param orderShipDTO 发货信息
+     * @return 发货结果
+     */
+    @PostMapping("/shipOrder")
+    public R shipOrderFlower(@RequestBody ComShopOrderShipDTO orderShipDTO) {
+        return comShopFlowerOrderService.shipOrder(orderShipDTO);
+    }
+
+    /**
+     * 订单配送
+     *
+     * @param deliverDTO 订单ID
+     * @return 配送结果
+     */
+    @PostMapping("/deliverOrder")
+    public R deliverOrderFlower(@RequestBody ComShopOrderDeliverDTO deliverDTO) {
+        return comShopFlowerOrderService.deliverOrder(deliverDTO);
+    }
+
+    /**
+     * 订单配送
+     *
+     * @param deliverDTO 订单ID
+     * @return 配送完成
+     */
+    @PostMapping("/finishDeliverOrder")
+    public R finishDeliverOrderFlower(@RequestBody ComShopOrderDeliverDTO deliverDTO) {
+        return comShopFlowerOrderService.finishDeliverOrder(deliverDTO);
+    }
+
+
+    /**
+     * 保存评价
+     *
+     * @param comShopFlowerEvaluateDTO
+     * @return
+     */
+    @PostMapping("/saveEvaluate")
+    public R saveEvaluate(@RequestBody ComShopFlowerEvaluateDTO comShopFlowerEvaluateDTO) {
+        return comShopFlowerEvaluateService.saveEvaluate(comShopFlowerEvaluateDTO);
+    }
+
+    /**
+     * 分页查询评价
+     *
+     * @param pageComShopFlowerEvaluateDTO
+     * @return
+     */
+    @PostMapping("/pageEvaluate")
+    public R pageEvaluate(@RequestBody PageComShopFlowerEvaluateDTO pageComShopFlowerEvaluateDTO) {
+        return comShopFlowerEvaluateService.pageEvaluate(pageComShopFlowerEvaluateDTO);
+    }
+
+    /**
+     * 评价详情
+     *
+     * @param id
+     * @return
+     */
+    @GetMapping("/detailEvaluate")
+    public R detailEvaluate(@RequestParam("id") Long id) {
+        return comShopFlowerEvaluateService.detailEvaluate(id);
+    }
+
+    /**
+     * 删除评价
+     *
+     * @param id
+     * @return
+     */
+    @DeleteMapping("deleteEvaluate")
+    public R deleteEvaluate(@RequestParam("id") Long id) {
+        return comShopFlowerEvaluateService.deleteEvaluate(id);
+    }
+
+    /**
+     * 取货码
+     *
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "取货码")
+    @GetMapping("getQRCode")
+    public R getQRCode(@RequestParam("id") Long id) {
+        return R.ok(QRCodeUtil.getBase64QRCode(id.toString()));
+    }
+
+
+    /**
+     * 保存配送单
+     *
+     * @param comShopFlowerOrderDeliveryDTO
+     */
+    @PostMapping("saveDelivery")
+    public R saveDelivery(@RequestBody ComShopFlowerOrderDeliveryDTO comShopFlowerOrderDeliveryDTO) {
+        return comShopFlowerOrderDeliveryService.saveDelivery(comShopFlowerOrderDeliveryDTO);
+    }
+
+    /**
+     * 更新配送单
+     *
+     * @param comShopFlowerOrderDeliveryDTO
+     */
+    @PostMapping("updateDelivery")
+    public R updateDelivery(@RequestBody ComShopFlowerOrderDeliveryDTO comShopFlowerOrderDeliveryDTO) {
+        return comShopFlowerOrderDeliveryService.updateDelivery(comShopFlowerOrderDeliveryDTO);
+    }
+
+    /**
+     * 已配送、已送达 分页查询
+     *
+     * @param pageComFlowerOrderDeliveryDTO
+     * @return
+     */
+    @PostMapping("pageDelivery")
+    public R pageDelivery(@RequestBody PageComFlowerOrderDeliveryDTO pageComFlowerOrderDeliveryDTO) {
+        return comShopFlowerOrderDeliveryService.pageDelivery(pageComFlowerOrderDeliveryDTO);
+    }
+
+    /**
+     * 未配送 分页查询
+     *
+     * @param pageComFlowerOrderDeliveryDTO
+     * @return
+     */
+    @PostMapping("pageNoDelivery")
+    public R pageNoDelivery(@RequestBody PageComFlowerOrderDeliveryDTO pageComFlowerOrderDeliveryDTO) {
+        return comShopFlowerOrderDeliveryService.pageNoDelivery(pageComFlowerOrderDeliveryDTO);
+    }
+
+    /**
+     * 未配送-开始配送-订单列表
+     *
+     * @param pageComFlowerOrderListDTO
+     * @return
+     */
+    @PostMapping("pageNoDeliveryOrderList")
+    public R pageNoDeliveryOrderList(@RequestBody PageComFlowerOrderListDTO pageComFlowerOrderListDTO) {
+        return comShopFlowerOrderDeliveryService.pageNoDeliveryOrderList(pageComFlowerOrderListDTO);
+    }
+
+    /**
+     * 根据商家id查询商家的订单
+     *
+     * @param pageComFlowerOrderListDTO
+     * @return
+     */
+    @PostMapping("pageOrderByStoreId")
+    public R pageOrderByStoreId(@RequestBody PageComFlowerOrderListDTO pageComFlowerOrderListDTO) {
+        return comShopFlowerOrderService.pageOrderByStoreId(pageComFlowerOrderListDTO);
+    }
+
+    /**
+     * 微信支付订单回调
+     *
+     * @param wxPayNotifyOrderDTO
+     *            订单支付回调参数
+     */
+    @PostMapping("/wxOrderPayNotify")
+    public void wxOrderPayNotifyFlower(@RequestBody WxPayNotifyOrderDTO wxPayNotifyOrderDTO) {
+        comShopFlowerOrderService.wxOrderPayNotify(wxPayNotifyOrderDTO);
+    }
+
+    /**
+     * 点击去支付订单
+     *
+     * @param orderPayDTO
+     *            请求参数
+     * @return 支付对象
+     */
+    @PostMapping("/wxPay")
+    public R wxPayFlower(@RequestBody OrderPayDTO orderPayDTO) {
+        return comShopFlowerOrderService.wxPay(orderPayDTO);
+    }
+
+    /**
+     * 查询订单总数
+     * @param deliveryType
+     * @return
+     */
+    @GetMapping("/selectCountByDeliveryType")
+    public R selectCountByDeliveryType(@RequestParam("deliveryType") Integer deliveryType,@RequestParam("userId")  Long userId){
+        return comShopFlowerOrderService.selectCountByDeliveryType(deliveryType,userId);
+    }
+
+    /**
+     * 查询我的店铺各类统计数据
+     * @param userId
+     * @return
+     */
+    @GetMapping("/selectCountByUserId")
+    public R selectCountByUserId(@RequestParam("userId") Long userId){
+        return comShopFlowerOrderService.selectCountByUserId(userId);
+    }
+
+    /**
+     * 创建退款订单
+     * @param comShopFlowerRefundOrderDTO
+     * @return
+     */
+    @PostMapping("createRefundOrder")
+    public R createRefundOrder(@RequestBody ComShopFlowerRefundOrderDTO comShopFlowerRefundOrderDTO){
+        return comShopFlowerRefundOrderService.createRefundOrder(comShopFlowerRefundOrderDTO);
+    }
+
+    /**
+     * 分页查询
+     * @param pageComOrderRefundDTO
+     * @return
+     */
+    @PostMapping("pageRefundOrder")
+    public R pageRefundOrder(@RequestBody PageComOrderRefundDTO pageComOrderRefundDTO){
+        return comShopFlowerRefundOrderService.pageRefundOrder(pageComOrderRefundDTO);
+    }
+
+    /**
+     * 修改退款订单
+     * @param comShopFlowerRefundOrderDTO
+     * @return
+     */
+    @PostMapping("updateRefundOrder")
+    public R updateRefundOrder(@RequestBody ComShopFlowerRefundOrderDTO comShopFlowerRefundOrderDTO){
+        return comShopFlowerRefundOrderService.updateRefundOrder(comShopFlowerRefundOrderDTO);
+    }
+
+
+    /**
+     * 商家后台-退款申请统计
+     * @param storeId
+     * @return
+     */
+    @GetMapping("selectCountGroupStatus")
+    public R selectCountGroupStatus(@RequestParam("storeId") Long storeId){
+        return comShopFlowerRefundOrderService.selectCountGroupStatus(storeId);
+    }
+
+    /**
+     * 新增商品浏览量
+     * @param goodsId
+     * @return
+     */
+    @GetMapping("incrGoodsView")
+    public R incrGoodsView(@RequestParam("goodsId") Long goodsId){
+        return comShopFlowerGoodsService.incrGoodsView(goodsId);
+    }
+
+    /**
+     * 出入账分页
+     * @param pageComShopFlowerOrderPayDTO
+     * @return
+     */
+    @PostMapping("pageOrderPay")
+    public R pageOrderPay(@RequestBody PageComShopFlowerOrderPayDTO pageComShopFlowerOrderPayDTO){
+        return comShopFlowerOrderPayService.pageOrderPay(pageComShopFlowerOrderPayDTO);
+    }
+
+    /**
+     * 获取商家的营业额和可结算金额
+     * @param storeId
+     * @return
+     */
+    @GetMapping("getQuota")
+    public R getQuota(@RequestParam("storeId") Long storeId){
+        return comShopFlowerOrderService.getQuota(storeId);
+    }
+
+
+    /**
+     * 商家后台经营数据统计-上
+     * @param storeId
+     * @return
+     */
+    @GetMapping("selectSumOrderAndAmountByStoreId")
+    public R selectSumOrderAndAmountByStoreId(@RequestParam("storeId") Long storeId){
+        return comShopFlowerOrderService.selectSumOrderAndAmountByStoreId(storeId);
+    }
+
+    /**
+     * 统计时间区域的订单量 15天 30天 一年
+     * @param storeId
+     * @param type
+     * @return
+     */
+    @GetMapping("selectOrderLineChart")
+    public  R selectOrderLineChart(@RequestParam("storeId") Long storeId,@RequestParam("type")  Integer type,@RequestParam("tab")  Integer tab){
+        return comShopFlowerOrderService.selectOrderLineChart(storeId,type,tab);
+    }
+
+    /**
+     * 取消退款
+     * @param id
+     * @return
+     */
+    @GetMapping("refundOrderCancel")
+    public R refundOrderCancel(@RequestParam("id") Long id){
+        return comShopFlowerRefundOrderService.orderCancel(id);
+    }
+
+    /**
+     * 退款订单详情
+     * @param id
+     * @return
+     */
+    @GetMapping("refundOrderDetail")
+    public R refundOrderDetail(@RequestParam("id") Long id){
+        return comShopFlowerRefundOrderService.refundOrderDetail(id);
+    }
+
+    /**
+     * 清点商品 确认送达详情
+     * @param pageComFlowerOrderListDTO
+     * @return
+     */
+    @PostMapping("pageOrderByDeliveryNo")
+    public R pageOrderByDeliveryNo(@RequestBody PageComFlowerOrderListDTO pageComFlowerOrderListDTO){
+        return comShopFlowerOrderService.pageOrderByDeliveryNo(pageComFlowerOrderListDTO);
+    }
+
+    /**
+     * 统计上架的上下架商品数量
+     * @param userId
+     * @return
+     */
+    @GetMapping("/countSaleByUserId")
+    R countSaleByUserId(@RequestParam("userId") Long userId){
+        return comShopFlowerGoodsService.countSaleByUserId(userId);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/StreetApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/StreetApi.java
new file mode 100644
index 0000000..bba69a0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/StreetApi.java
@@ -0,0 +1,134 @@
+package com.panzhihua.service_community.api;
+
+import java.io.IOException;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.vos.community.ComActVO;
+import com.panzhihua.service_community.service.CodDataService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+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.model.dtos.community.PageComStreetDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComStreetVO;
+import com.panzhihua.service_community.service.ComStreetService;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * @Author: llming
+ * @Description:
+ */
+@Slf4j
+@RestController
+@RequestMapping("/")
+public class StreetApi {
+    @Resource
+    private ComStreetService comStreetService;
+    @Autowired
+    private CodDataService codDataService;
+
+    /**
+     * 新增街道
+     * 
+     * @param comStreetVO
+     *            新增信息
+     * @return 新增结果
+     */
+    @PostMapping("addstreet")
+    @Transactional(rollbackFor = Exception.class)
+    public R<ComStreetVO> addStreet(@RequestBody ComStreetVO comStreetVO) {
+        return comStreetService.addStreet(comStreetVO);
+    }
+
+    /**
+     * 分页查询街道
+     * 
+     * @param pageComStreetDTO
+     *            查询条件
+     * @return 新增结果
+     */
+    @PostMapping("pagestreet")
+    public R putStreet(@RequestBody PageComStreetDTO pageComStreetDTO) {
+        R r = comStreetService.pageStreet(pageComStreetDTO);
+        return R.ok(r);
+    }
+
+    /**
+     * 查询街道
+     * 
+     * @param comStreetVO
+     *            查询条件
+     * @return 新增结果
+     */
+    @PostMapping("liststreet")
+    public R putStreet(@RequestBody ComStreetVO comStreetVO) {
+        R r = comStreetService.listStreet(comStreetVO);
+        return R.ok(r);
+    }
+
+    /**
+     * 街道
+     * 
+     * @param Ids
+     *            动态id
+     * @return 删除结果
+     */
+    @PostMapping("deletestreet")
+    @Transactional(rollbackFor = Exception.class)
+    public R delectStreat(@RequestBody List<Long> Ids) {
+        R r = comStreetService.delectStreat(Ids);
+        return r;
+    }
+
+    /**
+     * 街道详情
+     * @param id
+     * @return
+     */
+    @GetMapping("detailStreet")
+    public R detailStreet(@RequestParam("id") Long id) {
+        return comStreetService.detailStreet(id);
+    }
+
+
+    @PostMapping("/updateStreet")
+    public R updateStreet(@RequestBody ComStreetVO comStreetVO){
+        return comStreetService.update(comStreetVO);
+    }
+
+    @GetMapping("/removeStreet")
+    public R remove(@RequestParam(value = "id",required = false)Long id){
+        return comStreetService.remove(id);
+    }
+
+    @GetMapping("/removeCommunity")
+    public R removeCommunity(@RequestParam(value = "id",required = false)Long id){
+        return comStreetService.removeCommunity(id);
+    }
+
+    @PostMapping("/repassCommunity")
+    public R repassCommunity(@RequestBody ComActVO comActVO){
+       return comStreetService.repassCommunity(comActVO);
+    }
+
+    @PostMapping("/repassStreet")
+    public R repassStreet(@RequestBody ComStreetVO comActVO){
+        return comStreetService.repssStreet(comActVO);
+    }
+
+    @PostMapping("importData")
+    public void importData(@RequestParam("file") MultipartFile file) throws IOException {
+        codDataService.importData(file);
+    }
+
+}
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
new file mode 100644
index 0000000..7a978ef
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/SysConfApi.java
@@ -0,0 +1,126 @@
+package com.panzhihua.service_community.api;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.vos.community.CommunityPublicityVO;
+import com.panzhihua.common.utlis.StringUtils;
+import org.springframework.web.bind.annotation.*;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.SysConfDO;
+import com.panzhihua.service_community.service.SysConfService;
+
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+@RestController
+@RequestMapping("/sys/conf/")
+public class SysConfApi {
+
+    @Resource
+    private SysConfService sysConfService;
+
+    @GetMapping("get")
+    public R get(@RequestParam("code") String code) {
+        SysConfDO sysConfDO =
+            sysConfService.getOne(new QueryWrapper<SysConfDO>().lambda().eq(SysConfDO::getCode, code));
+        String value = Constants.ZZ_APP_TAG_LIST;
+        if (sysConfDO != null) {
+            value = sysConfDO.getValue();
+        }
+        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);
+    }
+
+
+
+    @GetMapping("getCommunityPublicityData")
+    public R getCommunityPublicityData(@RequestParam("communityId") String communityId)
+    {
+        if(StringUtils.isEmpty(communityId))
+        {
+            return R.fail("社区id不能为空");
+        }
+        return R.ok(sysConfService.getData(communityId));
+    }
+
+    @PostMapping("addCommunityPublicityDate")
+    public R addCommunityPublicityDate(@RequestBody CommunityPublicityVO item) {
+        if(StringUtils.isEmpty(item.getCommunityId()))
+        {
+            return R.fail("社区id不能为空");
+        }
+        int num=sysConfService.addDate(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    @PostMapping("editCommunityPublicityDate")
+    public R editCommunityPublicityDate(@RequestBody CommunityPublicityVO item)
+    {
+        if(StringUtils.isEmpty(item.getCommunityId()))
+        {
+            return R.fail("社区id不能为空");
+        }
+        int num=sysConfService.editDate(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    @DeleteMapping("deleteCommunityPublicityData")
+    public R deleteCommunityPublicityData(@RequestParam("communityId") String communityId)
+    {
+        if(StringUtils.isEmpty(communityId))
+        {
+            return R.fail("社区id不能为空");
+        }
+        int num=sysConfService.deleteData(communityId);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/UnionpayCarWashApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/UnionpayCarWashApi.java
new file mode 100644
index 0000000..e01d57e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/UnionpayCarWashApi.java
@@ -0,0 +1,39 @@
+package com.panzhihua.service_community.api;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.service.UnionpayCarWashService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@RestController
+@RequestMapping("/unionpay")
+public class UnionpayCarWashApi
+{
+    @Resource
+    private UnionpayCarWashService unionpayCarWashService;
+
+
+    @GetMapping("/detail")
+    public R queryById(@RequestParam("Id") String id) {
+        return R.ok(unionpayCarWashService.queryById(id));
+    }
+
+    @GetMapping("/unionpayDetail")
+    public R carWashById(@RequestParam("Id") String id)
+    {
+        return R.ok(unionpayCarWashService.carWashById(id));
+    }
+
+    @PostMapping("/add")
+    public int inset(@RequestParam("carWashId") String carWashId,
+                     @RequestParam("unionpayOrderId") String unionpayOrderId,
+                     @RequestParam("money") String money)
+    {
+        return unionpayCarWashService.inset(carWashId,unionpayOrderId,money);
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/VaccinesApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/VaccinesApi.java
new file mode 100644
index 0000000..c46cf31
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/VaccinesApi.java
@@ -0,0 +1,176 @@
+package com.panzhihua.service_community.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.model.dtos.vaccines.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.service.ComMngVaccinesEnrollRecordService;
+import com.panzhihua.service_community.service.ComMngVaccinesInoculationRecordService;
+import com.panzhihua.service_community.service.ComMngVaccinesService;
+
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+@RestController
+@RequestMapping("/vaccines")
+public class VaccinesApi {
+
+    @Resource
+    private ComMngVaccinesService comMngVaccinesService;
+    @Resource
+    private ComMngVaccinesEnrollRecordService comMngVaccinesEnrollRecordService;
+    @Resource
+    private ComMngVaccinesInoculationRecordService comMngVaccinesInoculationRecordService;
+
+    /**
+     * 小程序-查询疫苗分类列表
+     * 
+     * @return 疫苗分类列表
+     */
+    @PostMapping("/app/list")
+    public R getVaccinesListByApp() {
+        return comMngVaccinesService.getVaccinesListByApp();
+    }
+
+    /**
+     * 小程序-疫苗类型对应家庭成员接种列表
+     * 
+     * @return 疫苗类型对应家庭成员接种列表
+     */
+    @PostMapping("/app/user/list")
+    public R getVaccinesUserListByApp(@RequestBody VaccinesEnrollUserByAppDTO enrollUserByAppDTO) {
+        return comMngVaccinesEnrollRecordService.getVaccinesUserListByApp(enrollUserByAppDTO);
+    }
+
+    /**
+     * 用户疫苗报名
+     * 
+     * @param enrollByAppDTO
+     *            请求参数
+     * @return 报名结果
+     */
+    @PostMapping("/app/enroll")
+    public R VaccinesEnrollByApp(@RequestBody VaccinesEnrollByAppDTO enrollByAppDTO) {
+        return comMngVaccinesEnrollRecordService.VaccinesEnrollByApp(enrollByAppDTO);
+    }
+
+    /**
+     * 小程序-查询用户家庭成员接种记录
+     * 
+     * @param userId
+     *            用户id
+     * @return 用户家庭成员接种记录
+     */
+    @PostMapping("/app/user/inoculation/list")
+    public R getVaccinesUserInoculationListByApp(@RequestParam("userId") Long userId) {
+        return comMngVaccinesInoculationRecordService.getVaccinesUserInoculationListByApp(userId);
+    }
+
+    /**
+     * 后台管理-查询疫苗分类列表
+     * 
+     * @param vaccinesByAdminDTO
+     *            请求参数
+     * @return 疫苗分类列表
+     */
+    @PostMapping("/admin/list")
+    public R getVaccinesListByAdmin(@RequestBody VaccinesByAdminDTO vaccinesByAdminDTO) {
+        return comMngVaccinesService.getVaccinesListByAdmin(vaccinesByAdminDTO);
+    }
+
+    /**
+     * 修改疫苗分类信息
+     * 
+     * @param vaccinesByAdminDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    @PostMapping("/admin/edit")
+    public R editVaccinesByAdmin(@RequestBody VaccinesByAdminDTO vaccinesByAdminDTO) {
+        return comMngVaccinesService.editVaccinesByAdmin(vaccinesByAdminDTO);
+    }
+
+    /**
+     * 新增疫苗分类信息
+     * 
+     * @param vaccinesByAdminDTO
+     *            请求参数
+     * @return 新增结果
+     */
+    @PostMapping("/admin/add")
+    public R addVaccinesByAdmin(@RequestBody VaccinesByAdminDTO vaccinesByAdminDTO) {
+        return comMngVaccinesService.addVaccinesByAdmin(vaccinesByAdminDTO);
+    }
+
+    /**
+     * 查询疫苗登记列表
+     * 
+     * @param vaccinesByAdminDTO
+     *            请求参数
+     * @return 登记列表
+     */
+    @PostMapping("/admin/enroll/list")
+    public R getVaccinesEnrollListByAdmin(@RequestBody VaccinesEnrollByAdminDTO vaccinesByAdminDTO) {
+        return comMngVaccinesEnrollRecordService.getVaccinesEnrollListByAdmin(vaccinesByAdminDTO);
+    }
+
+    /**
+     * 删除疫苗分类信息
+     * 
+     * @param id
+     *            疫苗分类id
+     * @return 删除结果
+     */
+    @PostMapping("/admin/enroll/delete")
+    public R deleteVaccinesByAdmin(@RequestParam("id") Long id) {
+        return comMngVaccinesService.deleteVaccinesByAdmin(id);
+    }
+
+    /**
+     * 根据条件导出疫苗登记记录
+     * 
+     * @param vaccinesByAdminDTO
+     *            请求参数
+     * @return 导出登记列表
+     */
+    @PostMapping("/admin/enroll/export")
+    public R exportVaccinesEnrollListByAdmin(@RequestBody VaccinesEnrollByAdminDTO vaccinesByAdminDTO) {
+        return comMngVaccinesEnrollRecordService.exportVaccinesEnrollListByAdmin(vaccinesByAdminDTO);
+    }
+
+    /**
+     * 查询接种记录列表
+     * 
+     * @param inoculationByAdminDTO
+     *            请求参数
+     * @return 接种记录列表
+     */
+    @PostMapping("/admin/inoculation/list")
+    public R getVaccinesInoculationListByAdmin(@RequestBody VaccinesInoculationByAdminDTO inoculationByAdminDTO) {
+        return comMngVaccinesInoculationRecordService.getVaccinesInoculationListByAdmin(inoculationByAdminDTO);
+    }
+
+    /**
+     * 接种记录信息导出
+     * 
+     * @param inoculationByAdminDTO
+     *            请求参数
+     * @return 导出结果
+     */
+    @PostMapping("/admin/inoculation/export")
+    public R exportVaccinesInoculationListByAdmin(@RequestBody VaccinesInoculationByAdminDTO inoculationByAdminDTO) {
+        return comMngVaccinesInoculationRecordService.exportVaccinesInoculationListByAdmin(inoculationByAdminDTO);
+    }
+
+    /**
+     * 疫苗分类列表
+     * 
+     * @return 疫苗分类列表
+     */
+    @PostMapping("/admin/enroll/type/list")
+    public R getEnrollTypeListByAdmin() {
+        return comMngVaccinesService.getEnrollTypeListByAdmin();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/VolunteerActivitiesPeopleApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/VolunteerActivitiesPeopleApi.java
new file mode 100644
index 0000000..d92351b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/VolunteerActivitiesPeopleApi.java
@@ -0,0 +1,122 @@
+package com.panzhihua.service_community.api;
+
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.GrantIntegral;
+import com.panzhihua.common.model.vos.community.VolunteerActivitiesPeopleVO;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.service.VolunteerActivitiesPeopleService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@RestController
+@RequestMapping("/VolunteerActivitiesPeople")
+public class VolunteerActivitiesPeopleApi
+{
+    @Resource
+    private VolunteerActivitiesPeopleService volunteerActivitiesPeople;
+
+
+    /**
+     * 志愿者单个详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/vapGetById")
+    public R vapGetById(@RequestParam("id") String id)
+    {
+        return R.ok(volunteerActivitiesPeople.vapGetById(id));
+    }
+
+    /**
+     * 参与人员列表
+     * @param activityId
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/vapGetList")
+    public R  vapGetList(@RequestParam("activityId") String activityId,
+                         @RequestParam("communityId") String communityId)
+    {
+        return R.ok(volunteerActivitiesPeople.vapGetList(activityId, communityId));
+    }
+
+    /**
+     * 添加参与人员
+     * @param volunteerActivitiesPeopleVO
+     * @return
+     */
+    @PostMapping("/vapInsert")
+    public R  vapInsert(@RequestBody VolunteerActivitiesPeopleVO volunteerActivitiesPeopleVO)
+    {
+        int num = volunteerActivitiesPeople.vapInsert(volunteerActivitiesPeopleVO);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 修改参与人员
+     * @param volunteerActivitiesPeopleVO
+     * @return
+     */
+    @PostMapping("/vapUpdate")
+    public R  vapUpdate(@RequestBody VolunteerActivitiesPeopleVO volunteerActivitiesPeopleVO)
+    {
+        int num = volunteerActivitiesPeople.vapUpdate(volunteerActivitiesPeopleVO);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 删除参与人员
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/vapDelete")
+    public R vapDelete(@RequestParam("id") String id)
+    {
+        int num = volunteerActivitiesPeople.vapDelete(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 志愿者活动  奖励发放
+     * @param grantIntegral
+     * @return
+     */
+    @PostMapping("/grantIntegral")
+    public R grantIntegral(@RequestBody GrantIntegral grantIntegral)
+    {
+        if(grantIntegral==null)
+        {
+            return R.fail("参数不能为空");
+        }
+
+        if(StringUtils.isEmpty(grantIntegral.getActivityId()))
+        {
+            return R.fail("活动id不能为空");
+        }
+
+        if(grantIntegral.getPeopleAndGranList()==null || grantIntegral.getPeopleAndGranList().size()<=0 )
+        {
+            return R.fail("奖励积分人员不能为空");
+        }
+        return volunteerActivitiesPeople.grantIntegral(grantIntegral);
+    }
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/VolunteerActivityApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/VolunteerActivityApi.java
new file mode 100644
index 0000000..07cfd25
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/VolunteerActivityApi.java
@@ -0,0 +1,117 @@
+package com.panzhihua.service_community.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.VolunteerActivityVO;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.service.VolunteerActivityService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+@Slf4j
+@RestController
+@RequestMapping("/Volunteer")
+public class VolunteerActivityApi extends BaseController
+{
+    @Resource
+    private VolunteerActivityService volunteerActivityService;
+
+    /**
+     * 获取单个详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/queryById")
+    public R queryById(@RequestParam("id") String id)
+    {
+        return R.ok(volunteerActivityService.queryById(id,getUserId()+""));
+    }
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/queryList")
+    R queryList(@RequestParam("pageNum") int pageNum,
+                                       @RequestParam("pageSize") int pageSize,
+                                       @RequestParam(value = "name", required = false) String name,
+                                       @RequestParam(value = "acState", required = false) String acState,
+                                       @RequestParam(value = "acType", required = false) String acType,
+                                       @RequestParam(value = "actityBeginTime", required = false) Date actityBeginTime,
+                                       @RequestParam(value = "actityEndTime", required = false) Date actityEndTime)
+    {
+        if(StringUtils.isEmpty(acState))
+        {
+            acState=null;
+        }
+
+        if(StringUtils.isEmpty(acType))
+        {
+            acType=null;
+        }
+        return R.ok(volunteerActivityService.queryList(pageNum,  pageSize, name, acState, acType,getUserId()+"", actityBeginTime, actityEndTime));
+    }
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/insertVolunteer")
+    R insertVolunteer(@RequestBody VolunteerActivityVO volunteerActivityVO)
+    {
+        if(StringUtils.isEmpty(volunteerActivityVO.getCommunityId()))
+        {
+            volunteerActivityVO.setCommunityId(getCommunityId()+"");
+        }
+        int num = volunteerActivityService.insertVolunteer(volunteerActivityVO);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+
+    @PostMapping("/updateById")
+    R updateById(@RequestBody VolunteerActivityVO volunteerActivityVO)
+    {
+        int num = volunteerActivityService.updateById(volunteerActivityVO);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+
+    @DeleteMapping("/deleteById")
+    R deleteById(@RequestParam("id") String id)
+    {
+        int num = volunteerActivityService.deleteById(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+
+
+    @GetMapping("/timedTaskVolunteerActivitiesJobHandler")
+    R timedTaskVolunteerActivitiesJobHandler()
+    {
+        int num = volunteerActivityService.timedTaskVolunteerActivitiesJobHandler();
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/VolunteerIntegralMerchantApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/VolunteerIntegralMerchantApi.java
new file mode 100644
index 0000000..abf5287
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/VolunteerIntegralMerchantApi.java
@@ -0,0 +1,317 @@
+package com.panzhihua.service_community.api;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.VolunteerCreditsExchangeVO;
+import com.panzhihua.common.model.vos.community.VolunteerIntegralMerchantVO;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.entity.VolunteerIntegralMerchant;
+import com.panzhihua.service_community.service.VolunteerCreditsExchangeService;
+import com.panzhihua.service_community.service.VolunteerIntegralMerchantService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+
+/**
+ * 商品内容逻辑
+ */
+@Slf4j
+@RestController
+@RequestMapping("/VolunteerIntegralMerchant")
+public class VolunteerIntegralMerchantApi  extends BaseController
+{
+    @Resource
+    private VolunteerIntegralMerchantService merchantService;
+
+    /**
+     * 获取单个详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/queryById")
+    public R VolunteerIntegralMerchantQueryById(@RequestParam("id") String id)
+    {
+        return R.ok(merchantService.queryById(id));
+    }
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/queryList")
+    public R VolunteerIntegralMerchantQueryList(@RequestParam("pageNum") int pageNum,
+                                                @RequestParam("pageSize")  int pageSize,
+                                                @RequestParam(value = "name", required = false) String name,
+                                                @RequestParam(value = "state", required = false) String state,
+                                                @RequestParam(value = "goodType", required = false) String goodType,
+                                                @RequestParam(value = "merchantId", required = false) String merchantId)
+    {
+        Page page=new Page<VolunteerIntegralMerchant>(pageNum,pageSize);
+        return R.ok(merchantService.queryList(page,name,state,goodType,merchantId));
+    }
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/insertVolunteer")
+    public R VolunteerIntegralMerchantInsertVolunteer(@RequestBody VolunteerIntegralMerchantVO vimVO)
+    {
+        if(vimVO==null)
+        {
+            return R.fail("参数不能为空");
+        }
+
+        if(StringUtils.isEmpty(vimVO.getCommunityId()))
+        {
+            vimVO.setCommunityId(getCommunityId()+"");
+        }
+
+        if(StringUtils.isEmpty(vimVO.getName()))
+        {
+            return R.fail("商品名称不能为空");
+        }
+
+
+        if(StringUtils.isEmpty(vimVO.getIntegral()))
+        {
+            return R.fail("商品所需积分不能为空");
+        }
+
+
+
+        int num= merchantService.insertVolunteer(vimVO);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @PostMapping("/updateById")
+    public R  VolunteerIntegralMerchantUpdateById(@RequestBody VolunteerIntegralMerchantVO vimVO)
+    {
+
+        if(vimVO==null)
+        {
+            return R.fail("参数不能为空");
+        }
+
+        VolunteerIntegralMerchant vim= merchantService.queryById(vimVO.getId());
+        if(StringUtils.equals("1",vim.getState()))
+        {
+            return R.fail("商品必须下架才能编辑");
+        }
+
+        if(StringUtils.isEmpty(vimVO.getCommunityId()))
+        {
+            vimVO.setCommunityId(getCommunityId()+"");
+        }
+
+        if(StringUtils.isEmpty(vimVO.getIntegral()))
+        {
+            return R.fail("商品所需积分不能为空");
+        }
+
+        int num= merchantService.updateById(vimVO);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+
+    @PostMapping("/unmount")
+    public R  VolunteerIntegralMerchantUnmount(@RequestBody VolunteerIntegralMerchantVO vimVO)
+    {
+
+        if(vimVO==null)
+        {
+            return R.fail("参数不能为空");
+        }
+
+        if(StringUtils.isEmpty(vimVO.getId()))
+        {
+            return R.fail("上下架商品id不能为空");
+        }
+
+        if(StringUtils.isEmpty(vimVO.getState()))
+        {
+            vimVO.setState("1");
+        }
+
+        if(StringUtils.isEmpty(vimVO.getCommunityId()))
+        {
+            vimVO.setCommunityId(getCommunityId()+"");
+        }
+
+        int num= merchantService.updateById(vimVO);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+
+    @DeleteMapping("/deleteById")
+    public R  VolunteerIntegralMerchantDeleteById(@RequestParam("id") String id)
+    {
+        int num= merchantService.deleteById(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    /***********************************************************************************************************
+     *
+     *
+     *                   订单兑换
+     *
+     *
+     ***********************************************************************************************************/
+    @Resource
+    private VolunteerCreditsExchangeService vceService;
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/order/getList")
+    public R getList(@RequestParam("pageNum") int pageNum,
+                     @RequestParam("pageSize")  int pageSize,
+                     @RequestParam(value = "goodsId", required = false) String goodsId,
+                     @RequestParam(value = "orderNumber", required = false) String orderNumber,
+                     @RequestParam(value = "goodsName", required = false) String goodsName,
+                     @RequestParam(value = "condition", required = false) String condition,
+                     @RequestParam(value = "userName", required = false) String userName,
+                     @RequestParam(value = "communityId", required = false) String communityId,
+                     @RequestParam(value = "userId", required = false) String userId,
+                     @RequestParam(value = "orderType", required = false) String orderType,
+                     @RequestParam(value = "merchantId", required = false) String merchantId)
+    {
+        return vceService.getList(pageNum,pageSize,goodsId,orderNumber,goodsName,
+                condition,userName,communityId,userId,orderType,merchantId);
+    }
+
+    /**
+     * 查询详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/order/getData")
+    public R getData(@RequestParam("id") String id)
+    {
+        if(StringUtils.isEmpty(id))
+        {
+            return R.fail("订单id不能为空");
+        }
+        return vceService.getData(id);
+    }
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/order/insertData")
+    public R insertData(@RequestBody VolunteerCreditsExchangeVO item)
+    {
+        LoginUserInfoVO userInfoVO= getLoginUserInfo();
+        if(StringUtils.isEmpty(item.getCommunityId()))
+        {
+            item.setCommunityId(userInfoVO.getCommunityId()+"");
+        }
+
+        item.setUserId(userInfoVO.getUserId()+"");
+        return vceService.insertData(item);
+    }
+
+    /**
+     * 新增用户购买商家商品记录
+     * @param
+     * @return
+     */
+    @PostMapping("/order/insertMerchantData")
+    public R insertMerchantData(@RequestBody VolunteerCreditsExchangeVO item)
+    {
+        LoginUserInfoVO userInfoVO= getLoginUserInfo();
+        if(StringUtils.isEmpty(item.getCommunityId()))
+        {
+            item.setCommunityId(userInfoVO.getCommunityId()+"");
+        }
+
+        item.setUserId(userInfoVO.getUserId()+"");
+        return vceService.insertMerchantData(item);
+    }
+
+    /**
+     * 更新
+     * @param item
+     * @return
+     */
+    @PostMapping("/order/update")
+    public R update(@RequestBody VolunteerCreditsExchangeVO item)
+    {
+        return vceService.update(item);
+    }
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/order/delete")
+    public R delete(@RequestParam("id") String id)
+    {
+        if(StringUtils.isEmpty(id))
+        {
+            return R.fail("订单id不能为空");
+        }
+        return vceService.delete(id);
+    }
+
+    /**
+     * 核销
+     * @param id
+     * @return
+     */
+    @GetMapping("/order/conditionData")
+    public R conditionData(@RequestParam("id") String id)
+    {
+        if(StringUtils.isEmpty(id))
+        {
+            return R.fail("订单id不能为空");
+        }
+        return vceService.conditionData(id);
+    }
+
+
+
+    /**
+     * 社区取消订单
+     * @param id
+     * @return
+     */
+    @GetMapping("/order/communityCancellation")
+    public R communityCancellation(@RequestParam("id") String id)
+    {
+        if(StringUtils.isEmpty(id))
+        {
+            return R.fail("订单id不能为空");
+        }
+        return vceService.communityCancellation(id);
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/VolunteerIntegralRecordApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/VolunteerIntegralRecordApi.java
new file mode 100644
index 0000000..00126a3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/VolunteerIntegralRecordApi.java
@@ -0,0 +1,83 @@
+package com.panzhihua.service_community.api;
+
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.VolunteerIntegralRecordVO;
+import com.panzhihua.service_community.service.VolunteerIntegralRecordService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@RestController
+@RequestMapping("/VolunteerIntegralRecord")
+public class VolunteerIntegralRecordApi
+{
+
+    @Resource
+    private VolunteerIntegralRecordService volunteerIntegralRecordService;
+
+
+    /**
+     * 获取单个详情
+     *
+     * @param id
+     * @return
+     */
+    @GetMapping("/getId")
+    public R VolunteerIntegralRecordGetId(@RequestParam("id") String id)
+    {
+        return volunteerIntegralRecordService.getId(id);
+    }
+
+    /**
+     * 分页查询
+     *
+     * @param
+     * @return
+     */
+    @GetMapping("/getList")
+    public R VolunteerIntegralRecordGetList(@RequestParam("pageNum") int pageNum,
+                                            @RequestParam("pageSize")  int pageSize,
+                                            @RequestParam("userId") String userId)
+    {
+        return volunteerIntegralRecordService.getList(pageNum,pageSize,userId);
+    }
+
+    /**
+     * 新增
+     *
+     * @param
+     * @return
+     */
+    @PostMapping("/insertVolunteer")
+    public R VolunteerIntegralRecordInsertVolunteer(@RequestBody() VolunteerIntegralRecordVO volunteerIntegralRecordVO)
+    {
+        return volunteerIntegralRecordService.insertVolunteer(volunteerIntegralRecordVO);
+    }
+
+    /**
+     * 便捷
+     * @param
+     * @return
+     */
+    @PostMapping("/updateId")
+    public R VolunteerIntegralRecordUpdateId(@RequestBody() VolunteerIntegralRecordVO volunteerIntegralRecordVO)
+    {
+        return volunteerIntegralRecordService.updateId(volunteerIntegralRecordVO);
+    }
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/deleteId")
+    public R VolunteerIntegralRecordDeleteId(@RequestParam("id") String id)
+    {
+        return volunteerIntegralRecordService.deleteId(id);
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/VolunteerMerchantApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/VolunteerMerchantApi.java
new file mode 100644
index 0000000..fa91ef1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/VolunteerMerchantApi.java
@@ -0,0 +1,337 @@
+package com.panzhihua.service_community.api;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.*;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.entity.VolunteerCommunityConfig;
+import com.panzhihua.service_community.service.*;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@RestController
+@RequestMapping("/VolunteerMerchant")
+public class VolunteerMerchantApi
+{
+
+    @Resource
+    private VolunteerMerchantService vtService;
+
+
+
+    @GetMapping("/getById")
+    public R volunteerMerchantGetById(@RequestParam("id") String id)
+    {
+        return vtService.getById(id);
+    }
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/getList")
+    public R volunteerMerchantGetList( int pageNum,
+                                      @RequestParam("pageSize") int pageSize,
+                                      @RequestParam(value = "merchantState", required = false) String merchantState,
+                                      @RequestParam(value = "merchantType", required = false) String merchantType,
+                                      @RequestParam(value = "name", required = false) String name,
+                                      @RequestParam(value = "communityId", required = false) String communityId)
+    {
+        return vtService.volunteerMerchantGetList(pageNum, pageSize,merchantState,merchantType,name,communityId);
+    }
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/insert")
+    public R insertVolunteerMerchant(@RequestBody VolunteerMerchantVO vtvo)
+    {
+        return vtService.insertVolunteerMerchant(vtvo);
+    }
+
+
+    @PostMapping("/update")
+    public R updateVolunteerMerchant(@RequestBody VolunteerMerchantVO vtvo)
+    {
+        return vtService.updateVolunteerMerchant(vtvo);
+    }
+
+
+    @DeleteMapping("/delete")
+    public R deleteVolunteerMerchant(@RequestParam("id") String id)
+    {
+        return vtService.deleteVolunteerMerchant(id);
+    }
+
+
+    @GetMapping("/getUser")
+    public R volunteerMerchantGetUser(@RequestParam("communityId") String communityId,
+                                      @RequestParam(value = "userName", required = false) String userName,
+                                      @RequestParam(value = "userPhone", required = false) String userPhone)
+    {
+        return vtService.getUser(communityId,userName,userPhone);
+    }
+
+    /**
+     * 是否是商家
+     * @param userId
+     * @return
+     */
+    @GetMapping("/isMerchant")
+    public R isMerchant(@RequestParam("userId") String userId)
+    {
+        if(StringUtils.isEmpty(userId))
+        {
+            return R.fail("用户id不能为空");
+        }
+        return vtService.isMerchant(userId);
+    }
+
+    /****************************************************************************************************************
+     *
+     *                      商家评论
+     *
+     ***************************************************************************************************************/
+    @Resource
+    private VolunteerMerchantEvaluateService vmeService;
+
+
+    /**
+     * 商家评论分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/evaluate/getList")
+    public R volunteerMerchantGetList(@RequestParam("pageNum") int pageNum,
+                                      @RequestParam("pageSize") int pageSize,
+                                      @RequestParam("communityId") String communityId,
+                                      @RequestParam("merchantId") String merchantId)
+    {
+        return vmeService.getList(pageNum,pageSize,communityId,merchantId);
+    }
+
+    /**
+     * 商家评论获取详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/evaluate/getData")
+    public R volunteerMerchantGetData(@RequestParam("id") String id)
+    {
+        return vmeService.getData(id);
+    }
+
+    /**
+     * 商家评论新增评价
+     * @return
+     */
+    @PostMapping("/evaluate/insert")
+    public R volunteerMerchantInsert(@RequestBody VolunteerMerchantEvaluateVO item)
+    {
+        return vmeService.insert(item);
+    }
+
+    /**
+     * 商家评论更新评价
+     * @return
+     */
+    @PostMapping("/evaluate/update")
+    public R volunteerMerchantUpdate(@RequestBody VolunteerMerchantEvaluateVO item)
+    {
+        return vmeService.update(item);
+    }
+
+
+    /**
+     * 商家评论删除评价
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/evaluate/delete")
+    public R volunteerMerchantDelete(@RequestParam("id") String id)
+    {
+        return vmeService.delete(id);
+    }
+
+
+    /***************************************************************************************************************
+     *
+     *                               路北社区商家提现
+     *
+     ****************************************************************************************************************/
+
+    @Resource
+    private VolunteerMerchantWithdrawService vmwService;
+
+
+    /**
+     * 商家提现列表啊
+     * @param disposeType
+     * @return
+     */
+    @GetMapping("/withdraw/getList")
+    public R WithdrawGetList(@RequestParam("pageNum") int pageNum,
+                             @RequestParam("pageSize") int pageSize,
+                             @RequestParam(value = "disposeType", required = false) String disposeType,
+                             @RequestParam(value = "merchantName", required = false) String merchantName,
+                             @RequestParam(value = "merchantId", required = false) String  merchantId,
+                             @RequestParam(value = "communityId", required = false) String communityId)
+    {
+        return vmwService.getList(pageNum,pageSize,disposeType,merchantName,merchantId,communityId);
+    }
+
+    /**
+     * 新增商家提现
+     * @param item
+     * @return
+     */
+    @PostMapping("/withdraw/insert")
+    public R WithdrawInsert(@RequestBody VolunteerMerchantWithdrawVO item)
+    {
+        return vmwService.insert(item);
+    }
+
+    /**
+     * 编辑商家提现
+     * @param item
+     * @return
+     */
+    @PostMapping("/withdraw/update")
+    public R WithdrawUpdate(@RequestBody VolunteerMerchantWithdrawVO item)
+    {
+        return vmwService.update(item);
+    }
+
+    /**
+     * 删除商家提现
+     * @param id
+     * @return
+     */
+    @GetMapping("/withdraw/delete")
+    public R WithdrawDelete(@RequestParam("id") String id)
+    {
+        return vmwService.delete(id);
+    }
+
+    /**
+     * 处理商家提现
+     * @param id
+     * @return
+     */
+    @GetMapping("/withdraw/dispose")
+    public R WithdrawDispose(@RequestParam("id") String id)
+    {
+        return vmwService.dispose(id);
+    }
+
+
+
+    /***************************************************************************************************************
+     *
+     *                               路北社区系统配置   商家折扣      兑换地点信息
+     *
+     ****************************************************************************************************************/
+
+    @Resource
+    private VolunteerCommunityConfigService vccService;
+
+    /**
+     * 详情
+     * @param
+     * @return
+     */
+    @GetMapping("/Community/Config/getData")
+    public R ConfiggetData(@RequestParam("communityId") String communityId)
+    {
+        return vccService.getData(communityId);
+    }
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/Community/Config/insertvo")
+    public R Configinsertvo(@RequestBody VolunteerCommunityConfigVO item)
+    {
+        R<VolunteerCommunityConfig> voR=vccService.getData(item.getCommunityId());
+        if(voR.getData()==null ||  StringUtils.isEmpty(voR.getData().getCommunityId()))
+        {
+            return vccService.insertvo(item);
+        }
+        else
+        {
+            return vccService.update(item);
+        }
+    }
+
+    /*******************************************************************************************************************
+     *
+     *
+     *                         社区折扣
+     *
+     *
+     ******************************************************************************************************************/
+
+    @Resource
+    private VolunteerCommunityDiscountService vcdService;
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/community/discount/getList")
+    public R CommunityDiscountgetList(@RequestParam("communityId") String communityId)
+    {
+        return R.ok(vcdService.getList(communityId));
+    }
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/community/discount/insert")
+    public R CommunityDiscountinsert(@RequestBody VolunteerCommunityDiscountVO item)
+    {
+        int num=  vcdService.insert(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+
+    @PostMapping("/community/discount/update")
+    public R CommunityDiscountupdate(@RequestBody VolunteerCommunityDiscountVO item)
+    {
+        int num=  vcdService.update(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+
+    @DeleteMapping("/community/discount/delete")
+    public R CommunityDiscountdelete(@RequestParam("id") String id)
+    {
+        int num=  vcdService.delete(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/VolunteerTypeApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/VolunteerTypeApi.java
new file mode 100644
index 0000000..ff2a346
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/VolunteerTypeApi.java
@@ -0,0 +1,67 @@
+package com.panzhihua.service_community.api;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.VolunteerTypeVO;
+import com.panzhihua.service_community.service.VolunteerTypeService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@RestController
+@RequestMapping("/VolunteerType")
+public class VolunteerTypeApi
+{
+
+    @Resource
+    private VolunteerTypeService volunteerTypeService;
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/volunteerTypeGetList")
+    public R volunteerTypeGetList(@RequestParam("pageNum")  int pageNum,
+                                  @RequestParam("pageSize")  int pageSize,
+                                  @RequestParam("type")   String type)
+    {
+        return volunteerTypeService.volunteerTypeGetList(pageNum,pageSize,type);
+    }
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/insertvolunteerType")
+    public R insertvolunteerType(@RequestBody VolunteerTypeVO volunteerTypeVO)
+    {
+        return volunteerTypeService.insertvolunteerType(volunteerTypeVO);
+    }
+
+    /**
+     * 更新
+     * @param volunteerTypeVO
+     * @return
+     */
+    @PostMapping("/volunteerTypeUpdate")
+    public R volunteerTypeUpdate(@RequestBody VolunteerTypeVO volunteerTypeVO)
+    {
+        return volunteerTypeService.volunteerTypeUpdate(volunteerTypeVO);
+    }
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/volunteerTypeDelete")
+    public R volunteerTypeDelete(@RequestParam("id") String id)
+    {
+        return volunteerTypeService.volunteerTypeDelete(id);
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/WalletApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/WalletApi.java
new file mode 100644
index 0000000..f787b8d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/WalletApi.java
@@ -0,0 +1,63 @@
+package com.panzhihua.service_community.api;
+
+import javax.annotation.Resource;
+
+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.RestController;
+
+import com.panzhihua.common.model.dtos.community.wallet.ComActWalletDetailDTO;
+import com.panzhihua.common.model.dtos.community.wallet.PageComActWalletTradeDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.service.ComActUserWalletService;
+import com.panzhihua.service_community.service.ComActUserWalletTradeService;
+
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+@RestController
+@RequestMapping("/wallet/")
+public class WalletApi {
+
+    @Resource
+    private ComActUserWalletService comActUserWalletService;
+    @Resource
+    private ComActUserWalletTradeService comActUserWalletTradeService;
+
+    /**
+     * 查询用户钱包信息
+     * 
+     * @param walletDetailDTO
+     *            请求参数
+     * @return 用户钱包信息
+     */
+    @PostMapping("/get/my")
+    public R getWallet(@RequestBody ComActWalletDetailDTO walletDetailDTO) {
+        return comActUserWalletService.getWallet(walletDetailDTO);
+    }
+
+    /**
+     * 查询用户收支记录列表
+     * 
+     * @param walletTradeDTO
+     *            请求参数
+     * @return 收支记录
+     */
+    @PostMapping("/get/trade")
+    public R getWalletTrade(@RequestBody PageComActWalletTradeDTO walletTradeDTO) {
+        return comActUserWalletTradeService.getWalletTrade(walletTradeDTO);
+    }
+
+    /**
+     * 查询用户绑定的社区收益排行榜
+     * 
+     * @param walletTradeDTO
+     *            请求参数
+     * @return 社区收益排行榜
+     */
+    @PostMapping("/get/ranking")
+    public R getWalletRanking(@RequestBody PageComActWalletTradeDTO walletTradeDTO) {
+        return comActUserWalletService.getWalletRanking(walletTradeDTO);
+    }
+}
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
new file mode 100644
index 0000000..b607884
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/WorkGuideApi.java
@@ -0,0 +1,163 @@
+package com.panzhihua.service_community.api;
+
+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;
+import com.panzhihua.common.model.dtos.community.ComActWorkGuideDTO;
+import com.panzhihua.common.model.dtos.community.PageActWorkGuideDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.service.ComActWorkGuideService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther llming
+ * @describe 办事指南
+ */
+@Slf4j
+@RestController
+@RequestMapping("/")
+public class WorkGuideApi extends BaseController {
+    @Resource
+    private ComActWorkGuideService workGuideService;
+    @Resource
+    private ComActWorkGuideClassifyService comActWorkGuideClassifyService;
+
+    /**
+     * 办事指南_新增
+     * 
+     * @param workGuideDTO
+     *            新增信息
+     * @return 新增结果
+     */
+    @PostMapping("addworkguide")
+    @Transactional(rollbackFor = Exception.class)
+    public R addWorkGuide(@RequestBody ComActWorkGuideDTO workGuideDTO, @RequestParam("userId") Long userId) {
+        return workGuideService.addWorkGuide(workGuideDTO, userId);
+    }
+
+    /**
+     * 办事指南_编辑
+     * 
+     * @param workGuideDTO
+     * @return 编辑结果
+     */
+    @PostMapping("editworkguide")
+    @Transactional(rollbackFor = Exception.class)
+    public R putWorkGuide(@RequestBody ComActWorkGuideDTO workGuideDTO, @RequestParam("userId") Long userId) {
+        return workGuideService.editWorkGuide(workGuideDTO, userId);
+    }
+
+    /**
+     * 办事指南_详情
+     * 
+     * @param workGuideId
+     * @return 详情
+     */
+    @GetMapping("detailworkguide")
+    public R detailWorkGuide(@RequestParam("workGuideId") String workGuideId,
+        @RequestParam("communityId") String communityId) {
+        return workGuideService.detailWorkGuide(workGuideId, communityId);
+    }
+
+    /**
+     * 办事指南_分页
+     * 
+     * @param pageActWorkGuideDTO
+     *            查询参数
+     * @return 分页集合
+     */
+    @PostMapping("pageworkguide")
+    public R pageWorkGuide(@RequestBody PageActWorkGuideDTO pageActWorkGuideDTO) {
+        return workGuideService.pageWorkGuide(pageActWorkGuideDTO);
+    }
+
+    /**
+     * 办事指南_删除
+     * 
+     * @param workGuideId
+     *            办事指南id
+     * @return 删除结果
+     */
+    @PostMapping("delectworkguide")
+    R delectWorkGuide(@RequestParam("workGuideId") Long workGuideId) {
+        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(@RequestParam("areaCode")String areaCode) {
+        return comActWorkGuideClassifyService.getWorkGuideClassifyList(areaCode);
+    }
+
+    /**
+     * 办事指南列表-按分类查询
+     * @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/api/jinhuiApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/jinhuiApi.java
new file mode 100644
index 0000000..e62d413
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/api/jinhuiApi.java
@@ -0,0 +1,60 @@
+package com.panzhihua.service_community.api;
+
+import com.panzhihua.common.model.dtos.community.dpc.AddDpcDTO;
+import com.panzhihua.common.model.dtos.community.dpc.EditDpcDTO;
+import com.panzhihua.common.model.dtos.community.dpc.PageDpcDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActActRegistVO;
+import com.panzhihua.common.model.vos.community.SignactivityVO;
+import com.panzhihua.service_community.service.ComActActivityService;
+import com.panzhihua.service_community.service.ComActDpcService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * @title: ComActDpcApi
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 金汇社区
+ * @author: hans
+ * @date: 2022/06/07 10:57
+ */
+@Slf4j
+@RestController
+@RequestMapping("/jinhui")
+public class jinhuiApi {
+
+    @Resource
+    private ComActActivityService comActActivityService;
+
+    /**
+     * 报名/取消报名社区活动
+     * 金汇社区专用
+     * @param signactivityVO
+     *            报名参数
+     * @return 报名 取消报名 结果
+     */
+    @PostMapping("/jinhuiSignActivity")
+    public R jinhuiSignActivity(@RequestBody SignactivityVO signactivityVO)
+    {
+        return comActActivityService.jinhuiSignActivity(signactivityVO);
+    }
+
+
+
+    /**
+     * 用户签到
+     * 金汇社区专用
+     * @param comActActRegistVO 签到参数
+     * @return 签到结果
+     */
+    @PostMapping("/jinhuiActivitySignIn")
+    public R jinhuiActivitySignIn(@RequestBody ComActActRegistVO comActActRegistVO)
+    {
+        return comActActivityService.jinhuiActivitySignIn(comActActRegistVO);
+    }
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/config/MyMetaObjectHandler.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/config/MyMetaObjectHandler.java
new file mode 100644
index 0000000..2489992
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/config/MyMetaObjectHandler.java
@@ -0,0 +1,44 @@
+package com.panzhihua.service_community.config;
+
+import java.util.Date;
+
+import org.apache.ibatis.reflection.MetaObject;
+import org.springframework.stereotype.Component;
+
+import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 自动填充
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-11 14:23
+ **/
+@Slf4j
+@Component
+public class MyMetaObjectHandler implements MetaObjectHandler {
+    @Override
+    public void insertFill(MetaObject metaObject) {
+        log.info("start insert fill ....");
+        // this.strictInsertFill(metaObject, "createTime", Date.class, new Date()); // 起始版本 3.3.0(推荐使用)
+        // 或者
+        this.strictInsertFill(metaObject, "createAt", () -> new Date(), Date.class); // 起始版本 3.3.3(推荐)
+        this.strictInsertFill(metaObject, "updateAt", () -> new Date(), Date.class); // 起始版本 3.3.3(推荐)
+        // 或者
+        // this.fillStrategy(metaObject, "createTime", LocalDateTime.now()); // 也可以使用(3.3.0 该方法有bug)
+        this.strictInsertFill(metaObject, "createdAt", () -> new Date(), Date.class); // 起始版本 3.3.3(推荐)
+        this.strictInsertFill(metaObject, "updatedAt", () -> new Date(), Date.class); // 起始版本 3.3.3(推荐)
+    }
+
+    @Override
+    public void updateFill(MetaObject metaObject) {
+        log.info("start update fill ....");
+        // this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); // 起始版本 3.3.0(推荐)
+        // 或者
+        this.strictUpdateFill(metaObject, "updateAt", () -> new Date(), Date.class); // 起始版本 3.3.3(推荐)
+        this.strictUpdateFill(metaObject, "updatedAt", () -> new Date(), Date.class); // 起始版本 3.3.3(推荐)
+        // 或者
+        // this.fillStrategy(metaObject, "updateTime", LocalDateTime.now()); // 也可以使用(3.3.0 该方法有bug)
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/config/MybatisHmkInterceptor.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/config/MybatisHmkInterceptor.java
new file mode 100644
index 0000000..4a582f9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/config/MybatisHmkInterceptor.java
@@ -0,0 +1,30 @@
+package com.panzhihua.service_community.config;
+
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.PluginUtils;
+import com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor;
+import org.apache.ibatis.executor.Executor;
+import org.apache.ibatis.mapping.BoundSql;
+import org.apache.ibatis.mapping.MappedStatement;
+import org.apache.ibatis.mapping.ParameterMapping;
+import org.apache.ibatis.session.ResultHandler;
+import org.apache.ibatis.session.RowBounds;
+
+import java.lang.reflect.Field;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+public class MybatisHmkInterceptor implements InnerInterceptor {
+    @Override
+    public void beforeQuery(Executor executor, MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) throws SQLException {
+        String sql=boundSql.getSql();
+            if(sql.contains("community_id = 10086")){
+                sql=sql.replace("community_id = 10086","community_id in (30,31)");
+                PluginUtils.mpBoundSql(boundSql).sql(sql);
+        }
+        InnerInterceptor.super.beforeQuery(executor, ms, parameter, rowBounds, resultHandler, boundSql);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/config/MybatisPlusConfig.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/config/MybatisPlusConfig.java
new file mode 100644
index 0000000..21b1627
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/config/MybatisPlusConfig.java
@@ -0,0 +1,37 @@
+package com.panzhihua.service_community.config;
+
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 分页
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 16:26
+ **/
+@Configuration
+public class MybatisPlusConfig {
+
+    /**
+     * 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)
+     */
+    @Bean
+    public MybatisPlusInterceptor mybatisPlusInterceptor() {
+        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+        interceptor.addInnerInterceptor(new MybatisHmkInterceptor());
+        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2));
+        return interceptor;
+    }
+
+    @Bean
+    public ConfigurationCustomizer configurationCustomizer() {
+        return configuration -> configuration.setUseDeprecatedExecutor(false);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/config/ParamOutAspect.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/config/ParamOutAspect.java
new file mode 100644
index 0000000..915bcf9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/config/ParamOutAspect.java
@@ -0,0 +1,143 @@
+//package com.panzhihua.service_community.config;
+//
+//import java.lang.reflect.Method;
+//import java.util.Arrays;
+//import java.util.List;
+//import java.util.Map;
+//import java.util.stream.Collectors;
+//import java.util.stream.IntStream;
+//
+//import javax.servlet.http.HttpServletRequest;
+//import javax.servlet.http.HttpServletResponse;
+//
+//import org.aspectj.lang.ProceedingJoinPoint;
+//import org.aspectj.lang.annotation.Around;
+//import org.aspectj.lang.annotation.Aspect;
+//import org.aspectj.lang.annotation.Pointcut;
+//import org.aspectj.lang.reflect.MethodSignature;
+//import org.slf4j.Logger;
+//import org.slf4j.LoggerFactory;
+//import org.springframework.core.LocalVariableTableParameterNameDiscoverer;
+//import org.springframework.stereotype.Component;
+//import org.springframework.util.ObjectUtils;
+//
+//import com.alibaba.fastjson.JSONObject;
+//import com.panzhihua.common.model.vos.R;
+//import com.panzhihua.common.utlis.DateUtils;
+//
+//import lombok.extern.slf4j.Slf4j;
+//
+///**
+// * 应用模块名称
+// * <p>
+// * 代码描述
+// * <p>
+// * 拦截controller,输出入参、响应内容和响应时间 Copyright: Copyright (C) 2021 XXX, Inc. All rights reserved.
+// * <p>
+// * Company: 成都呐喊信息技术有限公司
+// * <p>
+// *
+// * @author manailin
+// * @since 2021/8/24 15:30
+// */
+//@Slf4j
+//@Aspect
+//@Component
+//public class ParamOutAspect {
+//
+//    /**
+//     *  记录特定日志的声明
+//     */
+//    private final Logger slowClassAndMethodLog = LoggerFactory.getLogger("slowClassAndMethodLog");
+//    /**
+//     * 设定方法的执行时间限制毫秒数
+//     */
+//    private long maxReduceTime = 100;
+//
+//    @Pointcut("execution(* com.panzhihua.service_community.api..*.*(..)) || execution (public * com.panzhihua.service_community.service..* (..))")
+//    public void aspect() {}
+//
+//    /**
+//     * [方法描述] 环绕通知,拦截controller,输出请求参数、响应内容和响应时间
+//     *
+//     * @param joinPoint
+//     * @return java.lang.Object
+//     * @author manailin
+//     * @date 2021/8/24 17:04
+//     */
+//    @Around("aspect()")
+//    public Object processLog(ProceedingJoinPoint joinPoint) {
+//        log.info("进入方法性能检查方法");
+//        Method method = ((MethodSignature)joinPoint.getSignature()).getMethod();
+//        String className = method.getDeclaringClass().getName();
+//        // 获取方法名称
+//        String methodName = method.getName();
+//        // 获取参数名称
+//        LocalVariableTableParameterNameDiscoverer paramNames = new LocalVariableTableParameterNameDiscoverer();
+//        String[] params = paramNames.getParameterNames(method);
+//        // 获取参数
+//        Object[] args = joinPoint.getArgs();
+//        // 过滤掉request和response,不能序列化
+//        List<Object> filteredArgs = Arrays.stream(args)
+//            .filter(arg -> (!(arg instanceof HttpServletRequest) && !(arg instanceof HttpServletResponse)))
+//            .collect(Collectors.toList());
+//        JSONObject rqsJson = new JSONObject();
+//        rqsJson.put("rqsMethod", methodName);
+//        rqsJson.put("rqsTime", DateUtils.getCurrentDateStr_MS());
+//        if (ObjectUtils.isEmpty(filteredArgs)) {
+//            rqsJson.put("rqsParams", null);
+//        } else {
+//            // 拼接请求参数
+//            Map<String, Object> rqsParams = IntStream.range(0, filteredArgs.size()).boxed()
+//                .collect(Collectors.toMap(j -> params[j], j -> filteredArgs.get(j)));
+//            rqsJson.put("rqsParams", rqsParams);
+//        }
+//        log.info(className + ":" + methodName + "请求信息为:" + rqsJson.toJSONString());
+//        Object resObj = null;
+//        long startTime = System.currentTimeMillis();
+//        try {
+//            // 执行原方法
+//            resObj = joinPoint.proceed(args);
+//        } catch (Throwable e) {
+//            log.error(className + ":" + methodName + "方法执行异常!", e);
+//           // throw new ServiceException(methodName + "方法执行异常!");
+//        }
+//        long endTime = System.currentTimeMillis();
+//        if (resObj != null) {
+//            if (resObj instanceof R) {
+//                // 输出响应信息
+//                R resJson = (R)resObj;
+//                // 打印耗时的信息
+//                this.printExecTime(className , methodName,rqsJson,resJson, startTime, endTime);
+//                return resJson;
+//            } else {
+//                return resObj;
+//            }
+//        } else {
+//            return R.ok();
+//        }
+//    }
+//
+//    /**
+//     * [方法描述] 打印方法执行耗时的信息,如果超过了一定的时间,才打印
+//     *
+//     * @param methodName
+//     *            执行方法名
+//     * @param startTime
+//     *            执行开始时间
+//     * @param endTime
+//     *            执行结束时间
+//     * @author manailin
+//     * @date 2021/8/24 17:05
+//     */
+//    private void printExecTime(String className,String methodName, JSONObject rqsJson,R resJson, long startTime, long endTime) {
+//        long diffTime = endTime - startTime;
+//        if (diffTime > maxReduceTime) {
+//            slowClassAndMethodLog.info(className+":"+methodName + " 方法执行耗时:" + diffTime + " ms");
+//            slowClassAndMethodLog.info(methodName + " 请求参数:" +rqsJson.toJSONString());
+//            slowClassAndMethodLog.info(className +  " 响应信息:" + JSONObject.toJSONString(resJson));
+//        }
+//        // TODO 可以集成redis,将每个controller的执行时间追加到redis中,再用定时每周一次同步到库中
+//    }
+//
+//}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/config/RabbitmqConfig.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/config/RabbitmqConfig.java
new file mode 100644
index 0000000..e512def
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/config/RabbitmqConfig.java
@@ -0,0 +1,263 @@
+package com.panzhihua.service_community.config;
+
+import org.springframework.amqp.core.*;
+import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
+import org.springframework.amqp.support.converter.MessageConverter;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.HashMap;
+import java.util.Map;
+
+//@Configuration
+public class RabbitmqConfig {
+
+
+    public static final String PreOrder_QUEUE="huacheng.preOrder.queue";
+    public static final String PreOrder_ROUTING_KEY="huacheng.preOrder.key";
+    public static final String PreOrder_EXCHANGE="huacheng.preOrder.exchange";
+
+    public static final String Order_QUEUE="huacheng.order.queue";
+    public static final String Order_ROUTING_KEY="huacheng.order.key";
+    public static final String Order_EXCHANGE="huacheng.order.exchange";
+
+    public static final String RAFFLE_QUEUE="huacheng.raffle.queue";
+    public static final String RAFFLE_ROUTING_KEY="huacheng.raffle.key";
+    public static final String RAFFLE_EXCHANGE="huacheng.raffle.exchange";
+
+    public static final String McsOrder_QUEUE="huacheng.mcsOrder.queue";
+    public static final String McsOrder_ROUTING_KEY="huacheng.mcsOrder.key";
+    public static final String McsOrder_EXCHANGE="huacheng.mcsOrder.exchange";
+
+    public static final String ACID_QUEUE="huacheng.acid.queue";
+    public static final String ACID_ROUTING_KEY="huacheng.acid.key";
+    public static final String ACID_EXCHANGE="huacheng.acid.exchange";
+
+    public static final String ACID_DANGER_QUEUE = "huacheng.acid.danger.queue";
+    public static final String ACID_DANGER_ROUTING_KEY = "huacheng.acid.danger.key";
+    public static final String ACID_DANGER_EXCHANGE = "huacheng.acid.danger.exchange";
+
+    public static final String ACID_DIRECT_QUEUE = "huacheng.acid.direct.queue";
+    public static final String ACID_DIRECT_ROUTING_KEY = "huacheng.acid.direct.key";
+    public static final String ACID_DIRECT_EXCHANGE = "huacheng.acid.direct.exchange";
+
+    public static final String ACID_MESSAGE_QUEUE="huacheng.acid.message.queue";
+    public static final String ACID_MESSAGE_ROUTING_KEY = "huacheng.acid.message.key";
+    public static final String ACID_MESSAGE_EXCHANGE = "huacheng.acid.message.exchange";
+
+    /**
+     * 服务商城订单
+     */
+    public static final String SHOP_ORDER_QUEUE="huacheng.shop.order.queue";
+    public static final String SHOP_ORDER_ROUTING_KEY = "huacheng.shop.order.key";
+    public static final String SHOP_ORDER_EXCHANGE = "huacheng.shop.order.exchange";
+
+    @Bean
+    public Queue preOrderQueue(){
+        return new Queue(PreOrder_QUEUE,true,false,false,null);
+    }
+
+    @Bean
+    public Exchange preOrderExchange(){
+        Map<String, Object> arguments = new HashMap<>();
+        arguments.put("x-delayed-type", ExchangeTypes.DIRECT);
+        return new CustomExchange(PreOrder_EXCHANGE,"x-delayed-message",true,false,arguments);
+    }
+
+    @Bean
+    public Binding preOrderBinding(){
+        return BindingBuilder.bind(preOrderQueue()).to(preOrderExchange()).with(PreOrder_ROUTING_KEY).noargs();
+    }
+
+    @Bean
+    public Queue raffleQueue(){
+        return new Queue(RAFFLE_QUEUE,true,false,false,null);
+    }
+
+    @Bean
+    public Exchange raffleExchange(){
+        Map<String, Object> arguments = new HashMap<>();
+        arguments.put("x-delayed-type", ExchangeTypes.DIRECT);
+        return new CustomExchange(RAFFLE_EXCHANGE,"x-delayed-message",true,false,arguments);
+    }
+
+    @Bean
+    public Binding raffleBinding(){
+        return BindingBuilder.bind(raffleQueue()).to(raffleExchange()).with(RAFFLE_ROUTING_KEY).noargs();
+    }
+
+    @Bean
+    public Queue acidQueue(){
+        return new Queue(ACID_QUEUE,true,false,false,null);
+    }
+
+    @Bean
+    public Exchange acidExchange(){
+        Map<String, Object> arguments = new HashMap<>();
+        arguments.put("x-delayed-type", ExchangeTypes.DIRECT);
+        return new CustomExchange(ACID_EXCHANGE,"x-delayed-message",true,false,arguments);
+    }
+
+    @Bean
+    public Binding acidBinding(){
+        return BindingBuilder.bind(acidQueue()).to(acidExchange()).with(ACID_ROUTING_KEY).noargs();
+    }
+
+    @Bean
+    public Queue acidDangerQueue(){
+        return new Queue(ACID_DANGER_QUEUE,true,false,false,null);
+    }
+
+    @Bean
+    public Exchange acidDangerExchange(){
+        Map<String, Object> arguments = new HashMap<>();
+        arguments.put("x-delayed-type", ExchangeTypes.DIRECT);
+        return new CustomExchange(ACID_DANGER_EXCHANGE,"x-delayed-message",true,false,arguments);
+    }
+
+    @Bean
+    public Binding acidDangerBinding(){
+        return BindingBuilder.bind(acidDangerQueue()).to(acidDangerExchange()).with(ACID_DANGER_ROUTING_KEY).noargs();
+    }
+
+    @Bean
+    public Queue acidDirectQueue(){
+        return new Queue(ACID_DIRECT_QUEUE,true,false,false,null);
+    }
+
+    @Bean
+    public Exchange acidDirectExchange(){
+        return new DirectExchange(ACID_DIRECT_EXCHANGE,true,false);
+    }
+
+    @Bean
+    public Binding acidDirectBinding(){
+        return BindingBuilder.bind(acidDirectQueue()).to(acidDirectExchange()).with(ACID_DIRECT_ROUTING_KEY).noargs();
+    }
+    @Bean
+    public Queue acidMessageQueue(){
+        return new Queue(ACID_MESSAGE_QUEUE,true,false,false,null);
+    }
+
+    @Bean
+    public Exchange acidMessageExchange(){
+        return new DirectExchange(ACID_MESSAGE_EXCHANGE,true,false);
+    }
+
+    @Bean
+    public Binding acidMessageBinding(){
+        return BindingBuilder.bind(acidMessageQueue()).to(acidMessageExchange()).with(ACID_MESSAGE_ROUTING_KEY).noargs();
+    }
+
+    @Bean
+    public Queue mcsOrderQueue(){
+        return new Queue(McsOrder_QUEUE,true,false,false,null);
+    }
+
+    @Bean
+    public Exchange mcsOrderExchange(){
+        Map<String, Object> arguments = new HashMap<>();
+        arguments.put("x-delayed-type", ExchangeTypes.DIRECT);
+        return new CustomExchange(McsOrder_EXCHANGE,"x-delayed-message",true,false,arguments);
+    }
+
+    @Bean
+    public Binding mcsOrderBinding(){
+        return BindingBuilder.bind(mcsOrderQueue()).to(mcsOrderExchange()).with(McsOrder_ROUTING_KEY).noargs();
+    }
+
+    @Bean
+    public Queue orderQueue(){
+        return new Queue(Order_QUEUE,true,false,false,null);
+    }
+
+    @Bean
+    public Exchange orderExchange(){
+        Map<String, Object> arguments = new HashMap<>();
+        arguments.put("x-delayed-type", ExchangeTypes.DIRECT);
+        return new CustomExchange(Order_EXCHANGE,"x-delayed-message",true,false,arguments);
+    }
+
+    @Bean
+    public Binding orderBinding(){
+        return BindingBuilder.bind(orderQueue()).to(orderExchange()).with(Order_ROUTING_KEY).noargs();
+    }
+
+    public Queue directQueue() {
+        // durable:是否持久化,默认是false,持久化队列:会被存储在磁盘上,当消息代理重启时仍然存在,暂存队列:当前连接有效
+        // exclusive:默认也是false,只能被当前创建的连接使用,而且当连接关闭后队列即被删除。此参考优先级高于durable
+        // autoDelete:是否自动删除,当没有生产者或者消费者使用此队列,该队列会自动删除。
+        //   return new Queue("TestDirectQueue",true,true,false);
+
+        //一般设置一下队列的持久化就好,其余两个就是默认false
+        return new Queue("directQueue",true);
+    }
+
+    //Direct交换机 起名:TestDirectExchange
+    @Bean
+    DirectExchange directExchange() {
+        //  return new DirectExchange("TestDirectExchange",true,true);
+        return new DirectExchange("directExchange",true,false);
+    }
+
+    //绑定  将队列和交换机绑定, 并设置用于匹配键:TestDirectRouting
+    @Bean
+    Binding bindingDirect() {
+        return BindingBuilder.bind(directQueue()).to(directExchange()).with("directRouting");
+    }
+
+
+    public Queue pushQueue() {
+        // durable:是否持久化,默认是false,持久化队列:会被存储在磁盘上,当消息代理重启时仍然存在,暂存队列:当前连接有效
+        // exclusive:默认也是false,只能被当前创建的连接使用,而且当连接关闭后队列即被删除。此参考优先级高于durable
+        // autoDelete:是否自动删除,当没有生产者或者消费者使用此队列,该队列会自动删除。
+        //   return new Queue("TestDirectQueue",true,true,false);
+
+        //一般设置一下队列的持久化就好,其余两个就是默认false
+        return new Queue("pushQueue",true);
+    }
+
+    //Direct交换机 起名:TestDirectExchange
+    @Bean
+    DirectExchange pushExchange() {
+        //  return new DirectExchange("TestDirectExchange",true,true);
+        return new DirectExchange("PUSH_Exchange",true,false);
+    }
+
+    //绑定  将队列和交换机绑定, 并设置用于匹配键:TestDirectRouting
+    @Bean
+    Binding bindingPush() {
+        return BindingBuilder.bind(directQueue()).to(directExchange()).with("PUSH_ROUTING");
+    }
+
+
+
+    @Bean
+    DirectExchange lonelyDirectExchange() {
+        return new DirectExchange("lonelyDirectExchange");
+    }
+
+    @Bean
+    public MessageConverter messageConverter(){
+        return new Jackson2JsonMessageConverter();
+    }
+
+
+    @Bean
+    public Queue shopOrderQueue(){
+        return new Queue(SHOP_ORDER_QUEUE,true,false,false,null);
+    }
+
+    @Bean
+    public Exchange shopOrderExchange(){
+        Map<String, Object> arguments = new HashMap<>();
+        arguments.put("x-delayed-type", ExchangeTypes.DIRECT);
+        return new CustomExchange(SHOP_ORDER_EXCHANGE,"x-delayed-message",true,false,arguments);
+    }
+
+    @Bean
+    public Binding shopOrderBinding(){
+        return BindingBuilder.bind(shopOrderQueue()).to(shopOrderExchange()).with(SHOP_ORDER_ROUTING_KEY).noargs();
+    }
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/AutomessageSysUserDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/AutomessageSysUserDao.java
new file mode 100644
index 0000000..238c121
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/AutomessageSysUserDao.java
@@ -0,0 +1,29 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_community.entity.AutomessageSysUser;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+/**
+ * 用户表 后台用户+小程序用户(SysUser)表数据库访问层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 用户表 后台用户+小程序用户相关功能
+ *
+ * @author yh
+ * @since 2022-10-21 09:36:09
+ */
+@Mapper
+public interface AutomessageSysUserDao extends BaseMapper<AutomessageSysUser> {
+
+
+    /**
+     * 通过id查询
+     * @param id
+     * @return
+     */
+    @Select("SELECT a.* FROM automessage_sys_user a WHERE a.phonenumber = (SELECT u.phone FROM sys_user u WHERE u.user_id = #{id})")
+    AutomessageSysUser selectAutomessageSysUserById(@Param("id") Long id);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/BcDictionaryDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/BcDictionaryDAO.java
new file mode 100644
index 0000000..389c30d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/BcDictionaryDAO.java
@@ -0,0 +1,17 @@
+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.BcDictionaryDO;
+
+/**
+ * 字典
+ *
+ * @author manailin
+ * @since 2021-06-11
+ */
+@Mapper
+public interface BcDictionaryDAO extends BaseMapper<BcDictionaryDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/BcDictionaryItemDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/BcDictionaryItemDAO.java
new file mode 100644
index 0000000..00a8d9b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/BcDictionaryItemDAO.java
@@ -0,0 +1,26 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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.BcDictionaryItemDO;
+
+/**
+ * 字典项
+ * 
+ * @author xyh
+ * @since 2021-06-11
+ */
+@Mapper
+public interface BcDictionaryItemDAO extends BaseMapper<BcDictionaryItemDO> {
+
+    @Select("SELECT d.dict_name,di.dict_value,di.dict_item_name,di.mnemonic_code "
+        + "FROM  bc_dictionary d INNER JOIN bc_dictionary_item di ON d.id = di.dict_id "
+        + "WHERE di.enabled = 1 AND di.delete_flag = 0 AND  d.enabled = 1 AND d.delete_flag = 0 "
+        + "AND d.dict_key = #{key} ")
+    List<BcDictionaryItemDO> getDictionaryByKey(@Param("key") String key);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/BcRegionDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/BcRegionDao.java
new file mode 100644
index 0000000..504286b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/BcRegionDao.java
@@ -0,0 +1,49 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.community.ProvinceCityReturnVO;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.BcRegion;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 行政区划表(BcRegion)表数据库访问层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 行政区划表相关功能
+ *
+ * @author zzj
+ * @since 2022-04-20 14:26:13
+ */
+@Mapper
+public interface BcRegionDao extends BaseMapper<BcRegion> {
+
+    /**
+     * 姓名查询
+     * @param province
+     * @param city
+     * @param country
+     * @return
+     */
+    String selectByName(@Param("province") String province,@Param("city") String city,@Param("county")String country,@Param("town")String town);
+
+    /**
+     * 通过名称查询社区编码
+     * @param city
+     * @param country
+     * @param town
+     * @param villagetr
+     * @return
+     */
+    String selectCommunityCodeByName(@Param("city") String city,@Param("county")String country,@Param("town")String town,@Param("villagetr") String villagetr);
+
+    List<ProvinceCityReturnVO> selectFirst();
+
+    List<ProvinceCityReturnVO> selectSecond(String name);
+
+    List<ProvinceCityReturnVO> selectThird(String name);
+
+    List<ProvinceCityReturnVO> selectFourth(String name);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/BigScreenDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/BigScreenDAO.java
new file mode 100644
index 0000000..3761ef5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/BigScreenDAO.java
@@ -0,0 +1,163 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenStatisticAgeGenderDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenStatisticPartyActivityDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.PageBigScreenStatisticPartyOrg;
+import com.panzhihua.common.model.vos.community.bigscreen.*;
+import com.panzhihua.service_community.model.dos.EldersAuthDO;
+
+/**
+ * DAO
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ */
+@Mapper
+public interface BigScreenDAO extends BaseMapper<EldersAuthDO> {
+
+    @Select("<script> " + " SELECT org.id, org.name, COUNT(pm.id) as total " + " FROM com_pb_org  org "
+        + " LEFT JOIN com_pb_member pm ON org.id = pm.org_id " + " <where> " + " org.status = 1 "
+        + "<if test='pageDTO.communityId != null'>" + "  AND org.community_id = ${pageDTO.communityId} " + "</if> "
+        + " </where>" + " GROUP BY org.id " +
+        // " ORDER BY org.${pageDTO.sortBy} ${pageDTO.order} " +
+        " ORDER BY total desc  " + "</script>")
+    IPage<BigScreenStatisticPartyOrg> partyOrgMembers(Page page,
+        @Param("pageDTO") PageBigScreenStatisticPartyOrg pageBigScreenStatisticPartyOrg);
+
+    @Select("<script> " + " SELECT " + " SUM(CASE lev WHEN '30以内' THEN total ELSE 0 END) as 'thirtyTotal',    "
+        + " SUM(CASE lev WHEN '31-60' THEN total ELSE 0 END) as 'sixtyTotal',    "
+        + " SUM(CASE lev WHEN '60以上' THEN total ELSE 0 END) as 'biggerTotal'    " + " FROM (    " + "    SELECT     "
+        + "    abt.lev, COUNT(abt.id) AS total    " + "    FROM ( " + " SELECT   id_card, id,age, "
+        + "  case when age &lt;= 30 then '30以内' " + "  when age &gt; 30 and age &lt;= 60 then '31-60' "
+        + "  when age &gt; 60  then '60以上' " + "  ELSE '' " + "  END AS lev " + " FROM ( "
+        + "  SELECT id, id_card, ROUND(DATEDIFF(CURDATE(), STR_TO_DATE(SUBSTRING(id_card,7,15), '%Y%m%d'))/365.2422) AS age    "
+        + "  FROM com_pb_member  " + " <where> " + " audit_result = 1 " + "<if test='queryDTO.communityId != null'> "
+        + " AND  community_id = ${queryDTO.communityId} " + "</if> " + " </where>" + "  ) t     " + " )abt     "
+        + " GROUP BY abt.lev    " + " ) t2  " + "</script>")
+    BigScreenStatisticAgeGender age(@Param("queryDTO") BigScreenStatisticAgeGenderDTO bigScreenStatisticAgeGenderDTO);
+
+    @Select("<script> " + " SELECT " + " SUM(CASE gender WHEN '男' THEN total ELSE 0 END) as 'manTotal', "
+        + " SUM(CASE gender WHEN '女' THEN total ELSE 0 END) as 'womeTotal' " + " FROM ( "
+        + "  SELECT CASE WHEN t.sxi = 0 THEN '女' WHEN t.sxi = 1 THEN '男' ELSE '未知' END AS gender, t.total "
+        + "  FROM ( "
+        + "  SELECT CONVERT(SUBSTRING(id_card,'17',1), UNSIGNED INTEGER)%2 AS sxi, COUNT(id_card) AS total "
+        + "  FROM com_pb_member " + " <where> " + " audit_result = 1 " + "<if test='queryDTO.communityId != null'>"
+        + "  AND community_id = ${queryDTO.communityId} " + "</if> " + " </where>" + "  GROUP BY sxi  " + "  )t  "
+        + " ) t2  " + "</script>")
+    BigScreenStatisticAgeGender
+        gender(@Param("queryDTO") BigScreenStatisticAgeGenderDTO bigScreenStatisticAgeGenderDTO);
+
+    @Select("<script> " + "  SELECT   " + " SUM(CASE TYPE WHEN 1 THEN total ELSE 0 END) as 'orgCount',  "
+        + " SUM(CASE TYPE WHEN 2 THEN total ELSE 0 END) as 'memberCount',  "
+        + " SUM(CASE TYPE WHEN 3 THEN total ELSE 0 END) as 'activityCount',  "
+        + " SUM(CASE TYPE WHEN 4 THEN total ELSE 0 END) as 'dynCount',SUM(CASE TYPE WHEN 5 THEN total ELSE 0 END) as 'committeeCount'  " + " FROM (  "
+        + " SELECT 1 AS TYPE , COUNT(id) total  " + " FROM com_pb_org org   "
+        + " WHERE org.community_id = ${communityId} AND STATUS=1  " + " UNION ALL   "
+        + " SELECT 2 AS TYPE , COUNT(id) total  " + " FROM  com_pb_member   "
+        + " WHERE community_id = ${communityId} AND audit_result = 1  " + " UNION ALL   "
+        + " SELECT 3 AS TYPE , COUNT(id) total  " + " FROM  com_pb_activity  "
+        + " WHERE community_id = ${communityId} AND STATUS IN (2,3,4,5)  " + " UNION ALL   "
+        + " SELECT 4 AS TYPE , COUNT(id) total  " + " FROM  com_pb_dyn   "
+        + " WHERE community_id = ${communityId} AND TYPE = 1  UNION ALL " +
+            "select 5 AS TYPE,count(id) total      from com_pb_member_role " +
+            "where community_id = ${communityId}" + ") t" + "</script>")
+    BigScreenStatisticPartyBuild partybuild(@Param("communityId") Long communityId);
+
+    @Select("<script> " + " SELECT pm.id, pm.member_id, pm.user_id, pm.name, " + " case "
+        + " when me.photo_path is NOT NULL then  me.photo_path  "
+        + " when CAST(SUBSTRING(me.id_card , 17, 1) AS SIGNED)%2=1 then 'https://www.psciio.com/idcard/tst/idcard/a723e5bcbd594a48956ef9354c8b477c.jpg' "
+        + " ELSE 'https://www.psciio.com/idcard/tst/idcard/cfb9b58913074068bba8c7002f91e7ff.jpg' END AS photo_path "
+        + " ,COUNT(pa.id) AS total   "
+        + " FROM com_pb_activity_member  pm  LEFT JOIN com_pb_activity pa  ON pm.activity_id = pa.id  "
+        + " LEFT JOIN com_pb_member me ON pm.member_id = me.id  "
+        + " WHERE pa.community_id = ${communityId}  AND me.id IS NOT null  " + " GROUP BY pm.member_id  "
+        + " ORDER BY total DESC  " + " LIMIT 3  " + "</script>")
+    List<PartyBuildingMemberVO> bigscreenPartyactivitytopuser(@Param("communityId") Long communityId);
+
+    @Select("<script> " + "  SELECT id AS member_id, user_id, NAME, " + " case "
+        + " when photo_path IS NOT NULL then  photo_path  "
+        + " when CAST(SUBSTRING(id_card , 17, 1) AS SIGNED)%2=1 then 'https://www.psciio.com/idcard/tst/idcard/a723e5bcbd594a48956ef9354c8b477c.jpg' "
+        + " ELSE 'https://www.psciio.com/idcard/tst/idcard/cfb9b58913074068bba8c7002f91e7ff.jpg' END AS photo_path , "
+        + " 0 AS total  " + " FROM  com_pb_member " + " WHERE community_id = ${communityId}  "
+        + " ORDER BY join_time ASC  " + " LIMIT 3  " + "</script>")
+    List<PartyBuildingMemberVO> defaultPartyactivity(@Param("communityId") Long communityId);
+
+//    @Select("<script> " + " SELECT  m.idxName, case  when d.total IS NOT NULL then d.total ELSE 0 END AS total "
+//        + " FROM  " + " ( " + " SELECT "
+//        + " DATE_FORMAT(@cdate := date_add( @cdate, INTERVAL - 1 MONTH ),'%Y-%m') as idxName " + "FROM " + " (  "
+//        + " SELECT @cdate := date_add(now(), INTERVAL 1 MONTH ) " + " FROM com_pb_activity LIMIT 12 " + " )d "
+//        + " ORDER BY idxName " + ")m LEFT JOIN  " + "( " + "SELECT   "
+//        + " date_format(activity_time_begin, '%Y-%m') AS idxName, " + " COUNT(id) AS total "
+//        + " FROM com_pb_activity    " + " WHERE  "
+//        + " community_id = ${queryDTO.communityId}  AND STATUS IN ( 3, 4, 5 ) AND  "
+//        + " activity_time_begin &lt; DATE_FORMAT( DATE_ADD( STR_TO_DATE(#{queryDTO.date}, '%Y-%m-%d'), INTERVAL 1 MONTH ), '%Y-%m-%d' ) AND "
+//        + " activity_time_begin &gt; DATE_FORMAT( DATE_ADD( STR_TO_DATE(#{queryDTO.date}, '%Y-%m-%d'), INTERVAL - 12 MONTH ), '%Y-%m-%d')  "
+//        + " GROUP BY idxName " + " ORDER BY idxName ASC   " + " ) d ON m.idxName = d.idxName "
+//        + " WHERE m.idxName > '2020-12-31' " + " ORDER BY m.idxName  " + "</script>")
+//    List<BigScreenStatisticPartyActivity>
+//        partyactivity(@Param("queryDTO") BigScreenStatisticPartyActivityDTO bigScreenStatisticPartyActivityDTO);
+//
+//    @Select("<script> " + "SELECT " + " m.idxName, " + "CASE " + "   " + "  WHEN d.total IS NOT NULL THEN "
+//        + "  d.total ELSE 0  " + " END AS total  " + "FROM " + " ( " + " SELECT "
+//        + "  DATE_FORMAT( @cdate := date_add( @cdate, INTERVAL - 1 DAY ), '%Y-%m-%d' ) AS idxName  " + " FROM "
+//        + "  ( SELECT @cdate := date_add( #{queryDTO.endTime}, INTERVAL 1 DAY ) FROM com_pb_activity LIMIT 7 ) d  "
+//        + " ORDER BY " + "  idxName  " + " ) m " + " LEFT JOIN ( " + " SELECT "
+//        + "  date_format( activity_time_begin, '%Y-%m-%d' ) AS idxName, " + "  COUNT( id ) AS total  " + " FROM "
+//        + "  com_pb_activity  " + " WHERE " + "  community_id = ${queryDTO.communityId}  "
+//        + "  AND STATUS IN ( 3, 4, 5 )  "
+//        + "  AND activity_time_begin &lt; DATE_FORMAT( STR_TO_DATE( #{queryDTO.startTime}, '%Y-%m-%d' ), '%Y-%m-%d' )  "
+//        + "  AND activity_time_begin &gt; DATE_FORMAT( STR_TO_DATE( #{queryDTO.endTime}, '%Y-%m-%d' ), '%Y-%m-%d' )  "
+//        + " GROUP BY " + "  idxName  " + " ORDER BY " + "  idxName ASC  " + " ) d ON m.idxName = d.idxName   "
+//        + "ORDER BY " + " m.idxName" + " </script>")
+//    List<BigScreenStatisticPartyActivity>
+//        partyactivityByWeek(@Param("queryDTO") BigScreenStatisticPartyActivityDTO bigScreenStatisticPartyActivityDTO);
+
+
+
+
+
+    @Select("<script> " + " SELECT  m.idxName, case  when d.total IS NOT NULL then d.total ELSE 0 END AS total "
+            + " FROM  " + " ( " + " SELECT "
+            + " DATE_FORMAT(@cdate := date_add( @cdate, INTERVAL - 1 MONTH ),'%Y-%m') as idxName " + "FROM " + " (  "
+            + " SELECT @cdate := date_add(now(), INTERVAL 1 MONTH ) " + " FROM com_act_activity LIMIT 12 " + " )d "
+            + " ORDER BY idxName " + ")m LEFT JOIN  " + "( " + "SELECT   "
+            + " date_format(begin_at, '%Y-%m') AS idxName, " + " COUNT(id) AS total "
+            + " FROM com_act_activity    " + " WHERE  "
+            + " community_id = ${queryDTO.communityId}  AND STATUS IN ( 3, 4, 5 ,6) AND  "
+            + " begin_at &lt; DATE_FORMAT( DATE_ADD( STR_TO_DATE(#{queryDTO.date}, '%Y-%m-%d'), INTERVAL 1 MONTH ), '%Y-%m-%d' ) AND "
+            + " begin_at &gt; DATE_FORMAT( DATE_ADD( STR_TO_DATE(#{queryDTO.date}, '%Y-%m-%d'), INTERVAL - 12 MONTH ), '%Y-%m-%d')  "
+            + " GROUP BY idxName " + " ORDER BY idxName ASC   " + " ) d ON m.idxName = d.idxName "
+            + " WHERE m.idxName > '2020-12-31' " + " ORDER BY m.idxName  " + "</script>")
+    List<BigScreenStatisticPartyActivity>
+    partyactivity(@Param("queryDTO") BigScreenStatisticPartyActivityDTO bigScreenStatisticPartyActivityDTO);
+
+    @Select("<script> " + "SELECT " + " m.idxName, " + "CASE " + "   " + "  WHEN d.total IS NOT NULL THEN "
+            + "  d.total ELSE 0  " + " END AS total  " + "FROM " + " ( " + " SELECT "
+            + "  DATE_FORMAT( @cdate := date_add( @cdate, INTERVAL - 1 DAY ), '%Y-%m-%d' ) AS idxName  " + " FROM "
+            + "  ( SELECT @cdate := date_add( #{queryDTO.endTime}, INTERVAL 1 DAY ) FROM com_act_activity LIMIT 7 ) d  "
+            + " ORDER BY " + "  idxName  " + " ) m " + " LEFT JOIN ( " + " SELECT "
+            + "  date_format( begin_at, '%Y-%m-%d' ) AS idxName, " + "  COUNT( id ) AS total  " + " FROM "
+            + "  com_act_activity  " + " WHERE " + "  community_id = ${queryDTO.communityId}  "
+            + "  AND STATUS IN ( 3, 4, 5 ,6)  "
+            + "  AND begin_at &lt; DATE_FORMAT( STR_TO_DATE( #{queryDTO.startTime}, '%Y-%m-%d' ), '%Y-%m-%d' )  "
+            + "  AND begin_at &gt; DATE_FORMAT( STR_TO_DATE( #{queryDTO.endTime}, '%Y-%m-%d' ), '%Y-%m-%d' )  "
+            + " GROUP BY " + "  idxName  " + " ORDER BY " + "  idxName ASC  " + " ) d ON m.idxName = d.idxName   "
+            + "ORDER BY " + " m.idxName" + " </script>")
+    List<BigScreenStatisticPartyActivity>
+    partyactivityByWeek(@Param("queryDTO") BigScreenStatisticPartyActivityDTO bigScreenStatisticPartyActivityDTO);
+
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActAcidCheckRecordDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActAcidCheckRecordDao.java
new file mode 100644
index 0000000..5e8db86
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActAcidCheckRecordDao.java
@@ -0,0 +1,33 @@
+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.acid.ComActAcidCheckRecordDTO;
+import com.panzhihua.common.model.dtos.community.acid.ComActAcidDangerMemberDTO;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidCheckRecordVO;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComActAcidCheckRecord;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 排查跟进表(ComActAcidCheckRecord)表数据库访问层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 排查跟进表相关功能
+ *
+ * @author zzj
+ * @since 2022-04-24 16:14:25
+ */
+@Mapper
+public interface ComActAcidCheckRecordDao extends BaseMapper<ComActAcidCheckRecord> {
+
+    /**
+     * 列表查询
+     * @param page
+     * @param comActAcidCheckRecordDTO
+     * @return
+     */
+    IPage<ComActAcidCheckRecordVO> pageList(Page page, @Param("dto") ComActAcidCheckRecordDTO comActAcidCheckRecordDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActAcidDangerMemberDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActAcidDangerMemberDao.java
new file mode 100644
index 0000000..23a5480
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActAcidDangerMemberDao.java
@@ -0,0 +1,39 @@
+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.acid.ComActAcidDangerMemberDTO;
+import com.panzhihua.common.model.dtos.community.acid.PageDangerMemberDTO;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidDangerMemberVO;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComActAcidDangerMember;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 风险人员表(ComActAcidDangerMember)表数据库访问层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 风险人员表相关功能
+ *
+ * @author zzj
+ * @since 2022-04-24 16:12:09
+ */
+@Mapper
+public interface ComActAcidDangerMemberDao extends BaseMapper<ComActAcidDangerMember> {
+    /**
+     * 分页查询
+     *
+     * @param page
+     * @param comActAcidDangerMemberDTO
+     * @return
+     */
+    IPage<ComActAcidDangerMemberVO> pageList(@Param("page") Page page, @Param("commonPage") ComActAcidDangerMemberDTO comActAcidDangerMemberDTO);
+
+    /**
+     * 分页查询风险人员
+     * @param page
+     * @param pageDangerMemberDTO
+     * @return
+     */
+    IPage<ComActAcidDangerMemberVO> pageDangerMember(@Param("page") Page page, @Param("pageDangerMemberDTO") PageDangerMemberDTO pageDangerMemberDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActAcidMemberDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActAcidMemberDao.java
new file mode 100644
index 0000000..f7e4d58
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActAcidMemberDao.java
@@ -0,0 +1,39 @@
+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.acid.ComActAcidMemberDTO;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidMemberVO;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComActAcidMember;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 防疫工作人员表(ComActAcidMember)表数据库访问层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 防疫工作人员表相关功能
+ *
+ * @author zzj
+ * @since 2022-04-24 16:12:07
+ */
+@Mapper
+public interface ComActAcidMemberDao extends BaseMapper<ComActAcidMember> {
+    /**
+     * 分页查询
+     * @param page
+     * @param commonPage
+     * @return
+     */
+    IPage<ComActAcidMemberVO> pageList(Page page, @Param("commonPage") ComActAcidMemberDTO commonPage);
+
+    /**
+     * 根据relationName查询推送人员列表
+     * @param relationName
+     * @return
+     */
+    List<ComActAcidMemberVO> selectPushList(@Param("relationName") String relationName);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActAcidRecordDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActAcidRecordDao.java
new file mode 100644
index 0000000..c60df1f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActAcidRecordDao.java
@@ -0,0 +1,146 @@
+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.acid.BatchCheckAcidRecordDTO;
+import com.panzhihua.common.model.dtos.community.acid.ComActAcidRecordDTO;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.community.acid.*;
+import com.panzhihua.common.model.vos.community.reserve.FiveCount;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComActAcidRecord;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+
+/**
+ * (ComActAcidRecord)表数据库访问层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 相关功能
+ *
+ * @author zzj
+ * @since 2022-04-12 15:29:58
+ */
+@Mapper
+public interface ComActAcidRecordDao extends BaseMapper<ComActAcidRecord> {
+    /**
+     * 分页查询
+     * @param page
+     * @param comActAcidRecordDTO
+     * @return
+     */
+    IPage<ComActAcidRecordVO> pageList(Page page, @Param("commonPage") ComActAcidRecordDTO comActAcidRecordDTO);
+
+    /**
+     * 导出
+     * @param comActAcidRecordDTO
+     * @return
+     */
+    List<ComActAcidRecordExcelReturn> export(@Param("commonPage")ComActAcidRecordDTO comActAcidRecordDTO);
+
+    /**
+     * 导出
+     * @param comActAcidRecordDTO
+     * @return
+     */
+    List<ComActAcidRecordExcelReturn> exportNew(@Param("commonPage")ComActAcidRecordDTO comActAcidRecordDTO);
+
+    /**
+     * 导出
+     * @param ids
+     * @return
+     */
+    List<ComActAcidRecordExcelReturn> selectByIds(String ids);
+
+    /**
+     * 5项统计
+     * @param localCity
+     * @return
+     */
+    FiveCount fiveCount(String localCity);
+
+    /**
+     * 7项统计
+     * @param date
+     * @param localCity
+     * @return
+     */
+    FiveCount fiveCountPlus(@Param("date") String date,@Param("localCity") String localCity,@Param("type") Integer type);
+
+    /**
+     * 统计查询
+     * @param localCity
+     * @param date
+     * @return
+     */
+    ComAcidStaticVO areaStatics(@Param("localCity") String localCity, @Param("date") String date);
+
+    /**
+     * 出发地统计
+     * @param departureCity
+     * @param date
+     * @return
+     */
+    Integer countryStatics(@Param("departureCity") String departureCity, @Param("date") String date,@Param("localCity")String localCity);
+
+    /**
+     * 7项统计
+     * @param date
+     * @param localCity
+     * @return
+     */
+    FiveCount pushStatics(@Param("date") String date,@Param("localCity") String localCity);
+
+    /**
+     * 查询上下一条id
+     * @param id
+     * @return
+     */
+    ComActAcidRecordVO selectLastNext(@Param("id") Long id,@Param("localCity")String localCity);
+
+    /**
+     * 查询区级填报人数
+     * @param date
+     * @param localCity
+     * @return
+     */
+    ComActAcidChartsVO selectAcidCount(@Param("date") String date,@Param("localCity") String localCity);
+
+    /**
+     * 查询区级风险人员,未填住址人员人数
+     * @param date
+     * @param localCity
+     * @return
+     */
+    ComActAcidChartsVO selectDangerCount(@Param("date") String date,@Param("localCity") String localCity);
+
+    /**
+     * 查询区级风险人员处理情况
+     * @param date
+     * @param localCity
+     * @return
+     */
+    List<ComActAcidChartsVO> selectCheck(@Param("date") String date,@Param("localCity") String localCity);
+
+    /**
+     * 批量核对防疫信息数据
+     * @param batchCheckAcidRecordDTO
+     * @return
+     */
+    void batchCheck(@Param("batchCheckAcidRecordDTO") BatchCheckAcidRecordDTO batchCheckAcidRecordDTO);
+
+    /**
+     * 统计所有红 黄 绿码
+     * @return
+     */
+    List<ComActAcidColorChartsVO> selectColorMarkGroup();
+
+    /**
+     * 按月份统计红 黄 绿码 数量
+     * @return
+     */
+    List<ComActAcidColorChartsVO> selectColorMarkGroupByMonth();
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActAcidUpdateRecordDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActAcidUpdateRecordDao.java
new file mode 100644
index 0000000..8ceaa3d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActAcidUpdateRecordDao.java
@@ -0,0 +1,27 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidUpdateRecordVO;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComActAcidUpdateRecord;
+
+import java.util.List;
+
+/**
+ * (ComActAcidUpdateRecord)表数据库访问层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 相关功能
+ *
+ * @author zzj
+ * @since 2022-05-30 14:57:04
+ */
+@Mapper
+public interface ComActAcidUpdateRecordDao extends BaseMapper<ComActAcidUpdateRecord> {
+
+    /**
+     * 查询列表
+     * @param id
+     * @return
+     */
+    List<ComActAcidUpdateRecordVO> selectList(Long id);
+}
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
new file mode 100644
index 0000000..fb2266f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActEvaluateDAO.java
@@ -0,0 +1,54 @@
+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.vos.community.ActivitySignVO;
+import com.panzhihua.common.model.vos.community.ComActActEvaluateExcelVO;
+import com.panzhihua.common.model.vos.community.ComActActEvaluateVO;
+import com.panzhihua.common.model.vos.community.ComActActRegistVO;
+import com.panzhihua.service_community.model.dos.ComActActEvaluateDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * title: ComActActEvaluateDAO  社区》活动》活动评价表mapper类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 社区》活动》活动评价表mapper类
+ *
+ * @author txb
+ * @date 2021/8/24 10:21
+ */
+@Mapper
+public interface ComActActEvaluateDAO extends BaseMapper<ComActActEvaluateDO> {
+
+    IPage<ComActActEvaluateVO> pageActivityEvaluates(Page page, @Param("comActActEvaluateVO") ComActActEvaluateVO comActActEvaluateVO);
+
+    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);
+
+    /**
+     * 查询某活动的用户评价列表
+     * @param activityId
+     * @param userId
+     * @return
+     */
+    List<ComActActEvaluateVO> selectEvaluateList(@Param("activityId") Long activityId, @Param("userId") Long userId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActPictureDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActPictureDAO.java
new file mode 100644
index 0000000..c353b6d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActPictureDAO.java
@@ -0,0 +1,18 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_community.model.dos.ComActActPictureDO;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * title: ComActActPictureDAO  社区》活动》历史上传图片mapper类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 社区》活动》历史上传图片mapper类
+ *
+ * @author txb
+ * @date 2021/8/24 10:21
+ */
+@Mapper
+public interface ComActActPictureDAO extends BaseMapper<ComActActPictureDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActPrizeDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActPrizeDAO.java
new file mode 100644
index 0000000..a428b7e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActPrizeDAO.java
@@ -0,0 +1,15 @@
+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.ComActActPrizeDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 活动奖品
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 14:16
+ **/
+@Mapper
+public interface ComActActPrizeDAO extends BaseMapper<ComActActPrizeDO> {}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActRegistDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActRegistDAO.java
new file mode 100644
index 0000000..5c509a9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActRegistDAO.java
@@ -0,0 +1,84 @@
+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.vos.community.ComActActEvaluateExcelVO;
+import com.panzhihua.common.model.vos.community.ComActActRegistExcelVO;
+import com.panzhihua.common.model.vos.community.ComActActRegistVO;
+import com.panzhihua.service_community.entity.JinhuiCoinGeneralTable;
+import com.panzhihua.service_community.model.dos.ComActActRegistDO;
+import com.panzhihua.service_community.model.dos.ComActActivityDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * title: ComActActRegistDAO  社区》活动》活动签到表mapper类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 社区》活动》活动签到表mapper类
+ *
+ * @author txb
+ * @date 2021/8/24 10:21
+ */
+@Mapper
+public interface ComActActRegistDAO extends BaseMapper<ComActActRegistDO> {
+
+
+    IPage<ComActActRegistVO> pageActivityRegists(Page page, @Param("comActActRegistVO") ComActActRegistVO comActActRegistVO);
+
+    List<ComActActRegistExcelVO> getRegistLists(@Param("comActActRegistVO") ComActActRegistVO comActActRegistVO);
+
+    List<ComActActRegistExcelVO> getNoRegistLists(@Param("comActActRegistVO") ComActActRegistVO comActActRegistVO);
+
+    /**
+     * 活动签到记录
+     * @param id 活动主键
+     * @param userId 用户id
+     * @return
+     */
+    List<ComActActRegistVO> listRegistRecord(@Param("id") Long id, @Param("userId") Long userId);
+
+    /**
+     * 获取总积分奖励
+     * @param activityId
+     * @param userId
+     * @return
+     */
+    Integer selectTotalAwardWithRegist(@Param("activityId") Long activityId, @Param("userId") Long userId);
+
+    JinhuiCoinGeneralTable getDetails(@Param("userId") String userIdv);
+
+
+    /**
+     * 获取未签退的活动id
+     * @return
+     */
+    List<String> getNotTimeActivityList();
+
+    /**
+     * 根据活动id获取没有签退的人员记录
+     * @param activityId
+     * @return
+     */
+    List<ComActActRegistVO> getNotTimeUser(@Param("activityId") String activityId);
+
+    /**
+     * 根据活动id获取活动结束时间
+     * @param activityId
+     * @return
+     */
+    ComActActivityDO getActivityEndTime(@Param("activityId") String activityId);
+
+    /**
+     * 更新签退时间
+     * @param id
+     * @param data
+     * @return
+     */
+    int updateEndTime(@Param("id") String id, @Param("data") Date data);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActSignDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActSignDAO.java
new file mode 100644
index 0000000..69d564c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActSignDAO.java
@@ -0,0 +1,109 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+import java.util.Map;
+
+import com.panzhihua.common.model.vos.community.ActivitySignInRecordVO;
+import com.panzhihua.common.model.vos.community.ComActActSignExcelVO;
+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;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.community.bigscreen.work.ScreenActActivityPeopleListDTO;
+import com.panzhihua.common.model.vos.community.ActivitySignVO;
+import com.panzhihua.common.model.vos.community.screen.work.ActActivityPeopleListVO;
+import com.panzhihua.service_community.model.dos.ComActActSignDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 社区活动报名记录
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 14:09
+ **/
+@Mapper
+public interface ComActActSignDAO extends BaseMapper<ComActActSignDO> {
+    // 居民 党员 志愿者 1 2 3
+//    @Select("<script> " + "SELECT " + "u.user_id id, " + "u.image_url, " + "u.name, " + "u.nick_name, "
+//        + "case WHEN u.is_partymember = 1 THEN '党员' WHEN a.is_volunteer = 1 THEN '志愿者' ELSE '居民' END identity, "
+//        + "u.phone, " + "u.tags, " + "a.create_at,  " + "a.is_volunteer, a.status , a.times ,a.reason,a.award,t.limit " + "FROM " + "com_act_act_sign a "
+//        + "JOIN sys_user u ON a.user_id = u.user_id  left join com_act_activity t on a.activity_id = t.id" + "WHERE " + "a.activity_id = #{activitySignVO.activityId}  "
+//        + "<if test='activitySignVO.phone != null and activitySignVO.phone != &quot;&quot;'>"
+//        + "AND u.phone = #{activitySignVO.phone}  " + " </if> "
+//        + "<if test='activitySignVO.status != null'>"
+//        + "AND a.status = #{activitySignVO.status}  " + " </if> "
+//        + "<if test='activitySignVO.tags != null and activitySignVO.tags != &quot;&quot;'>"
+//        + "AND u.tags like concat('%',#{activitySignVO.tags},'%')   " + " </if> "
+//        + "<if test='activitySignVO.name != null and activitySignVO.name != &quot;&quot;'>"
+//        + "AND u.`name` = #{activitySignVO.name}  " + " </if> "
+//        + "<if test='activitySignVO.identity != null and activitySignVO.identity != &quot;&quot; and activitySignVO.identity==1'>"
+//        + "AND u.is_partymember = 0 and a.is_volunteer=0  " + " </if> "
+//        + "<if test='activitySignVO.identity != null and activitySignVO.identity != &quot;&quot; and activitySignVO.identity==2'>"
+//        + "AND u.is_partymember = 1    " + " </if> "
+//        + "<if test='activitySignVO.identity != null and activitySignVO.identity != &quot;&quot; and activitySignVO.identity==3'>"
+//        + "AND a.is_volunteer=1   " + " </if> " + "<if test='activitySignVO.type != null and activitySignVO.type != 0'>"
+//        + "AND a.is_volunteer=#{activitySignVO.type}-1   " + " </if> " + " order by a.create_at desc " + "</script>")
+    IPage<ActivitySignVO> listActivitySign(Page page, @Param("activitySignVO") ActivitySignVO activitySignVO);
+
+    IPage<ActivitySignVO> listActivitySignParty(Page page, @Param("activitySignVO") ActivitySignVO activitySignVO);
+
+//@Select("<script> " + "SELECT " + "u.user_id id, " + "u.image_url, " + "u.name, " + "u.nick_name, u.openid, "
+//        + "CASE WHEN a.is_volunteer = 1 THEN '志愿者' ELSE '居民' END identity, "
+//        + "u.phone, " + "u.tags, " + "a.create_at,  " + "a.is_volunteer, a.status , a.reason, t.limit " + "FROM " + "com_act_act_sign a "
+//        + "JOIN sys_user u ON a.user_id = u.user_id  left join com_act_activity t on a.activity_id = t.id " + "WHERE " + "a.activity_id = #{activitySignVO.activityId}  "
+//        + "<if test='activitySignVO.phone != null and activitySignVO.phone != &quot;&quot;'>"
+//        + "AND u.phone = #{activitySignVO.phone}  " + " </if> "
+//        + "<if test='activitySignVO.status != null'>"
+//        + "AND a.status = #{activitySignVO.status}  " + " </if> "
+//        + "<if test='activitySignVO.name != null and activitySignVO.name != &quot;&quot;'>"
+//        + "AND u.`name` = #{activitySignVO.name}  " + " </if> "
+//        + "<if test='activitySignVO.identity != null and activitySignVO.identity != &quot;&quot; and activitySignVO.identity==1'>"
+//        + "AND u.is_partymember = 0 and a.is_volunteer=0  " + " </if> "
+//        + "<if test='activitySignVO.identity != null and activitySignVO.identity != &quot;&quot; and activitySignVO.identity==2'>"
+//        + "AND u.is_partymember = 1    " + " </if> "
+//        + "<if test='activitySignVO.identity != null and activitySignVO.identity != &quot;&quot; and activitySignVO.identity==3'>"
+//        + "AND a.is_volunteer=1   " + " </if> " + "<if test='activitySignVO.type != null and activitySignVO.type != 0'>"
+//        + "AND a.is_volunteer=#{activitySignVO.type}-1   " + " </if> " + " order by a.create_at desc " + "</script>")
+    List<ActivitySignVO> listActivitySigns(@Param("activitySignVO") ActivitySignVO activitySignVO);
+
+    List<ComActActSignExcelVO> getSignLists (@Param("activitySignVO") ActivitySignVO activitySignVO);
+
+    @Select("<script> " + "SELECT " + " caas.user_id, " + " su.NAME, " + "CASE WHEN caas.is_volunteer = 1 THEN '志愿者' ELSE '居民' END identity, "
+        + " su.phone, " + " caas.create_at  " + "FROM "
+        + " com_act_act_sign AS caas "
+        + " LEFT JOIN sys_user AS su ON su.user_id = caas.user_id where caas.activity_id = #{activityPeopleListDTO.activityId} "
+        + "<if test='activityPeopleListDTO.phone != null and activityPeopleListDTO.phone != &quot;&quot;'>"
+        + " and su.phone like concat (#{activityPeopleListDTO.phone},'%') " + " </if> "
+        + "<if test='activityPeopleListDTO.cardNo != null and activityPeopleListDTO.cardNo != &quot;&quot;'>"
+        + " AND su.id_card = #{activityPeopleListDTO.cardNo}  " + " </if> "
+        + "<if test='activityPeopleListDTO.name != null and activityPeopleListDTO.name != &quot;&quot;'>"
+        + " AND su.name like concat (#{activityPeopleListDTO.name},'%') " + " </if> " + " </script>")
+    IPage<ActActivityPeopleListVO> getActActivityPeopleList(Page page,
+        @Param("activityPeopleListDTO") ScreenActActivityPeopleListDTO activityPeopleListDTO);
+
+    @Select("select openid from sys_user where user_id = #{userId}")
+    Map<String, String> getUserOpenId(@Param("userId") Long userId);
+
+    /**
+     * 获取需要默认好评的记录
+     * @param activityIds 活动id list
+     * @return 需要默认好评的记录列表
+     */
+    List<ComActActSignDO> selectNeedEvaluateSignRecords(@Param("activityIds") List<Long> activityIds);
+
+    /**
+     * 获取活动报名签到记录
+     * @param id 活动主键id
+     * @return
+     */
+    List<ActivitySignInRecordVO> listSignInRecord(@Param("id") Long id);
+
+    /**
+     * 获取用户活动报名记录
+     * @param userId
+     * @return
+     */
+    List<ActivitySignVO> selectList(@Param("userId") Long userId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActivityCodeDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActivityCodeDao.java
new file mode 100644
index 0000000..20cc3d5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActivityCodeDao.java
@@ -0,0 +1,16 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComActActivityCode;
+
+/**
+ * 签到二维码表(ComActActivityCode)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-10-15 15:23:09
+ */
+@Mapper
+public interface ComActActivityCodeDao extends BaseMapper<ComActActivityCode> {
+
+}
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
new file mode 100644
index 0000000..3f4e64f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActivityDAO.java
@@ -0,0 +1,373 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.community.*;
+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;
+import com.panzhihua.common.model.dtos.PageBaseDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.work.ScreenActActivityListDTO;
+import com.panzhihua.common.model.vos.community.ComActActivityStatisticsVO;
+import com.panzhihua.common.model.vos.community.ComActActivityTypeVO;
+import com.panzhihua.common.model.vos.community.ComActActivityVO;
+import com.panzhihua.common.model.vos.community.CommunityActivitiesVO;
+import com.panzhihua.common.model.vos.community.PartyActivityStatics;
+import com.panzhihua.common.model.vos.community.PartyActivityTypeChart;
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+import com.panzhihua.common.model.vos.community.screen.work.ActActivityListVO;
+import com.panzhihua.common.model.vos.screen.CarouselInfoVO;
+import com.panzhihua.service_community.model.dos.ComActActivityDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 社区活动
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 13:59
+ **/
+@Mapper
+public interface ComActActivityDAO extends BaseMapper<ComActActivityDO> {
+    // @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  " + "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,a.type,a.party_member_max  " + "FROM " + "com_act_activity a  "
+//        + "left join sys_user u on a.sponsor_id=u.user_id " + "left join (select * from com_act_act_sign where `status` = 1) 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.communityId != null and comActActivityVO.communityId!=0'>" + "AND a.community_id = ${comActActivityVO.communityId} " + " </if> "
+//        +
+//            "<if test='comActActivityVO.phone != null and comActActivityVO.phone!=&quot;&quot;'>" + "AND a.phone = ${comActActivityVO.phone} " + " </if> "
+//            +
+//        "<if test='comActActivityVO.areaCode !=null '>" + "AND ca.area_code = ${comActActivityVO.areaCode} " + " </if> "
+//        +
+//        "<if test='comActActivityVO.checkUnitId !=null '>" + "AND a.check_unit_id = #{comActActivityVO.checkUnitId} " + " </if> "
+//        +
+//        "<if test='comActActivityVO.activityName != null and comActActivityVO.activityName.trim() != &quot;&quot;'>"
+//        + " and a.activity_name like concat(#{comActActivityVO.activityName},'%')   " + " </if> "
+//        + "<if test='comActActivityVO.status != null and comActActivityVO.status !=0 and comActActivityVO.isIng==null'>"
+//        + "AND a.`status` = #{comActActivityVO.status}  " + " </if> "
+//        + "<if test='comActActivityVO.status != null and comActActivityVO.status !=0 and comActActivityVO.isIng!=null and comActActivityVO.isIng==1'>"
+//        + "AND a.`status` in (3,4)  " + " </if> "
+//        + "<if test='comActActivityVO.isApplets != null and comActActivityVO.isApplets ==1'>"
+//        + "AND a.`status` != 1 AND  a.`status` != 6   " + " </if> " + "<if test='comActActivityVO.beginAt != null '>"
+//        + "AND a.begin_at <![CDATA[ >= ]]> #{comActActivityVO.beginAt} AND a.end_at <![CDATA[ <= ]]> #{comActActivityVO.endAt}  "
+//        + " </if> " + "<if test='comActActivityVO.type != null'>"
+//        + "AND a.type=#{comActActivityVO.type} " + " </if> "
+//        + " group by a.id " + " ORDER BY a.status = 99 desc,a.publish_at DESC " + "</script>")
+    IPage<ComActActivityVO> pageActivity(Page page, @Param("comActActivityVO") ComActActivityVO comActActivityVO);
+
+//    @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  "
+//        + "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 ")
+
+    /**
+     * 活动详情
+     * @param id
+     * @return
+     */
+    ComActActivityVO inforActivity(@Param("id") Long id);
+
+    @Select("SELECT " + "a.*  " + "FROM " + "(select * from com_act_act_sign where `status` = 1) s " + "JOIN com_act_activity a ON s.activity_id = a.id  "
+        + "WHERE " + "s.user_id = #{comActActivityVO.sponsorId}  " + "ORDER BY " + "s.create_at DESC")
+    IPage<ComActActivityVO> pageMyActivity(Page page, @Param("comActActivityVO") ComActActivityVO comActActivityVO);
+
+    @Select("select " + "t.activity_name," + "t.id," + "t.end_at," + "t.begin_at," + "t.cover," + "t.status "
+        + "from (select * from com_act_act_sign where `status` = 1) s  "
+        + "join sys_user u on s.user_id=u.user_id and u.phone=#{phone} and s.is_volunteer=1 "
+        + "join com_act_activity t on s.activity_id=t.id and t.status=5")
+    List<ComActActivityVO> listActivityByPhone(String phone);
+
+    @Select("select t.id from ( " + "SELECT  " + "a.id, " + "a.activity_name, "
+        + "COUNT(case when s.is_volunteer=1 then s.id else null end )volunteernum, "
+        + "COUNT(case when s.is_volunteer=0 then s.id else null end)usernum, " + "a.participant_min, "
+        + "a.volunteer_min " + "FROM " + "com_act_activity a  " + "LEFT JOIN (select * from com_act_act_sign where `status` = 1) s on a.id=s.activity_id  "
+        + "WHERE " + "a.`status` in(3,4) and TIMESTAMPDIFF(MINUTE,SYSDATE(),a.sign_up_end)<=0 "
+        + "GROUP BY a.id)t WHERE t.usernum<participant_min or t.volunteernum<volunteer_min")
+    List<Long> selectTimedTaskActActivity();
+
+    @Update("<script> " + "update com_act_activity set `status`=6 where id in "
+        + "<foreach item=\"item\" collection=\"longs\" separator=\",\" open=\"(\" close=\")\" index=\"\"> " + "#{item} "
+        + "</foreach> " + "</script>")
+    int updateIdBatch(@Param("longs") List<Long> longs);
+
+    @Update("update com_act_activity set `status`=3 where `status`=1 and TIMESTAMPDIFF(MINUTE,SYSDATE(),begin_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(),end_at)<=0")
+    int updateStatusToBeginActiveOrEnd();
+
+    @Select("select id from com_act_activity   where `status`=3 and TIMESTAMPDIFF(MINUTE,SYSDATE(),sign_up_end)<=0")
+    List<Long> selectBeginIds();
+
+//    @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.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} "
+//        + "<if test='comActActivityVO.activityName != null and comActActivityVO.activityName !=&quot;&quot;'>"
+//        + " and a.activity_name LIKE concat( #{comActActivityVO.activityName}, '%' )  " + " </if> "
+//        + "<if test='comActActivityVO.status != null and comActActivityVO.status !=0 and comActActivityVO.status !=1'>"
+//        + "AND a.`status` = 99  " + " </if> " + "<if test='comActActivityVO.beginAt != null '>"
+//        + "AND a.begin_at <![CDATA[ >= ]]> #{comActActivityVO.beginAt} AND a.end_at <![CDATA[ <= ]]> #{comActActivityVO.endAt}  "
+//        + " </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.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} "
+//        + "<if test='comActActivityVO.activityName != null and comActActivityVO.activityName !=&quot;&quot;'>"
+//        + " and a.activity_name LIKE concat( #{comActActivityVO.activityName}, '%' )  " + " </if> "
+//        + "<if test='comActActivityVO.status != null and comActActivityVO.status !=0 '>"
+//        + "AND a.`status` = #{comActActivityVO.status}  " + " </if> " + "<if test='comActActivityVO.beginAt != null '>"
+//        + "AND a.begin_at <![CDATA[ >= ]]> #{comActActivityVO.beginAt} AND a.end_at <![CDATA[ <= ]]> #{comActActivityVO.endAt}  "
+//        + " </if> " + " group by a.id order by a.publish_at desc)t1 )t" + "</script>")
+    /**
+     * 分页查询社区活动
+     * @param page
+     * @param comActActivityVO
+     * @return
+     */
+    IPage<ComActActivityVO> pageActivityCommunityBack(@Param("page") Page page, @Param("comActActivityVO") ComActActivityVO comActActivityVO);
+
+    @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")
+    int updateStatusToBeginAfterSingEnd();
+
+    @Select("select GROUP_CONCAT(t.x1,',',t.x2,',',t.x3,',',t.x4) from ( " + "SELECT "
+        + "(select COUNT(d.id) from com_act_discuss d where  d.community_id = ${communityId})x1, "
+        + "(select COUNT(w.id) from com_act_micro_wish w where  w.community_id = ${communityId})x2, "
+        + "(select COUNT(p.id) from com_act_easy_photo p where  p.community_id = ${communityId})x3, "
+        + " COUNT( a.id ) x4 " + "FROM " + " com_pb_activity a  " + "WHERE " + "  a.community_id = ${communityId})t")
+    String selectCommunityGovernanceTrendsVO(Long communityId);
+
+    @Select(" " + " SELECT "
+        + " (select COUNT(d.id) from com_act_discuss d where DATE_FORMAT(d.create_at,'%Y-%m-%d')=DATE_FORMAT(#{date},'%Y-%m-%d') and d.community_id = ${communityId})discuss, "
+        + " (select COUNT(w.id) from com_act_micro_wish w where DATE_FORMAT(w.create_at,'%Y-%m-%d')=DATE_FORMAT(#{date},'%Y-%m-%d') and w.community_id = ${communityId})microWish, "
+        + " (select COUNT(p.id) from com_act_easy_photo p where DATE_FORMAT(p.create_at,'%Y-%m-%d')=DATE_FORMAT(#{date},'%Y-%m-%d') and p.community_id = ${communityId})eashPhoto, "
+        + " (select COUNT(pa.id) from com_pb_activity pa where DATE_FORMAT(pa.create_at,'%Y-%m-%d')=DATE_FORMAT(#{date},'%Y-%m-%d') and pa.community_id = ${communityId})pbActivity, "
+        + "  COUNT( a.id ) actActivity " + " FROM " + "  com_pb_activity a  " + " WHERE "
+        + "  DATE_FORMAT( a.create_at, '%Y-%m-%d' )=DATE_FORMAT(#{date},'%Y-%m-%d')  "
+        + "  AND a.community_id = ${communityId}")
+    CommunityActivitiesVO selectCommunityActivitiesVO(@Param("communityId") Long communityId, @Param("date") Date date);
+
+    @Select("SELECT " + " count( caa.id ) as totalNum, "
+        + " (select count(id) from com_act_activity where `status` IN (1,2,3,4,5) and volunteer_min = 0 and community_id = ${communityId}) as commonNum, "
+        + " (select count(id) from com_act_activity where `status` IN (1,2,3,4,5) and volunteer_min > 0 and community_id = ${communityId}) as volunteerNum, "
+        + " (select count(caas.user_id) from (select * from com_act_act_sign where `status` = 1) as caas left join com_act_activity as caa on caa.id = caas.activity_id where caa.`status` IN (1,2,3,4,5) and caas.sign_identity != 3 and caa.community_id = ${communityId}) as commonPeopleNum, "
+        + " (select count(caas.user_id) from (select * from com_act_act_sign where `status` = 1) as caas left join com_act_activity as caa on caa.id = caas.activity_id where caa.`status` IN (1,2,3,4,5) and caas.sign_identity = 3 and caa.community_id = ${communityId}) as volunteerPeopleNum, "
+        + " (select count(id) from com_act_activity where `status` IN (1,2,3,4,5) and community_id = ${communityId} and create_at between date_sub(curdate() - day(curdate()) +1,interval 1 month) and now()) as currentNum "
+        + "FROM " + " com_act_activity AS caa  " + "WHERE "
+        + " caa.`status` IN (1,2,3,4,5) and community_id = ${communityId}")
+    Map<String, Long> countByCommunityId(@Param("communityId") Long communityId, @Param("nowDate") String nowDate);
+
+    @Select("SELECT id,activity_name as content,IF(volunteer_max = 0,'居民活动','志愿者活动') AS typeName  FROM com_act_activity "
+        + "WHERE community_id = ${communityId} AND (status = 3 OR status = 4 OR status = 5) ORDER BY create_at DESC LIMIT #{pageSize}")
+    List<CarouselInfoVO> screenActivity(@Param("communityId") Long communityId, @Param("pageSize") Integer pageSize);
+
+    @Select("SELECT cover FROM com_act_activity WHERE community_id = ${communityId}")
+    List<String> listImg(@Param("communityId") Long communityId);
+
+    @Select("<script> " + "SELECT " + " caa.id, " + " su.`name` AS userName , " + " su.image_url, "
+        + " caa.sponsor_id, " + " caa.`status`, " + " caa.create_at, " + " caa.begin_at, " + " caa.end_at, "
+        + " caa.sign_up_begin, " + " caa.sign_up_end, " + " caa.volunteer_min, " + " caa.volunteer_max, "
+        + " caa.participant_min, " + " caa.participant_max, " + " caa.activity_name, " + " caa.cover, "
+        + " caa.content, " + " caa.activity_addr  " + "FROM " + " com_act_activity AS caa "
+        + " LEFT JOIN sys_user AS su ON su.user_id = caa.sponsor_id" + " <where> "
+        + "<if test='actActivityListDTO.communityId != null '>"
+        + " and caa.community_id = ${actActivityListDTO.communityId} " + " </if> "
+        + "<if test='actActivityListDTO.startTime!=null and actActivityListDTO.startTime != &quot;&quot;'>"
+        + " AND DATE_FORMAT(caa.create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{actActivityListDTO.startTime} "
+        + " </if> " + "<if test='actActivityListDTO.endTime!=null and actActivityListDTO.endTime != &quot;&quot;'>"
+        + " AND DATE_FORMAT(caa.create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{actActivityListDTO.endTime} "
+        + " </if> " + "<if test='actActivityListDTO.type!=null'>" + " AND caa.status = #{actActivityListDTO.type} "
+        + " </if> " + " </where> " + "ORDER BY " + " caa.create_at DESC " + " </script>")
+    IPage<ActActivityListVO> getScreenActActivityList(Page page,
+        @Param("actActivityListDTO") ScreenActActivityListDTO actActivityListDTO);
+
+    @Select("SELECT " + " count( caas.id ) AS volunteerCount,( " + " SELECT " + "  count( caas1.id )  " + " FROM "
+        + "  (select * from com_act_act_sign where `status` = 1) AS caas1 " + "  LEFT JOIN sys_user AS su1 ON su1.user_id = caas1.user_id  " + " WHERE "
+        + "  su1.is_volunteer = 0  " + "  AND caas1.activity_id = #{activityId}  " + " ) AS participantCount  "
+        + "FROM " + " (select * from com_act_act_sign where `status` = 1) AS caas " + " LEFT JOIN sys_user AS su ON su.user_id = caas.user_id  " + "WHERE "
+        + " su.is_volunteer = 1  " + " AND activity_id = #{activityId} ")
+    ActActivityListVO getScreenActActivityPeopleCount(@Param("activityId") Long activityId);
+
+    ComActActivityStatisticsVO activityStatistics (@Param("activityId") Long activityId);
+
+    /**
+     * 查询置于顶部的进行中活动
+     * @param communityId 社区id
+     * @return 活动列表
+     */
+    List<ComActActivityVO> getIndexTopActivityList(@Param("communityId") Long communityId);
+
+    /**
+     * 获取活动类型(目前只有志愿者活动需要获取)
+     * @param communityId
+     * @param type
+     * @return
+     */
+    List<ComActActivityTypeVO> listActivityType(@Param("communityId") Long communityId, @Param("type") Integer type);
+
+    /**
+     * 添加活动类型
+     * @param comActActivityTypeVO
+     * @return
+     */
+    int addActivityType(@Param("comActActivityTypeVO") ComActActivityTypeVO comActActivityTypeVO);
+
+    /**
+     * 居民活动分类统计数据
+     * @param communityId
+     * @param isResidentAct
+     * @return
+     */
+    List<StatisticsCommVO> selectResidentActHistogramData(@Param("communityId") Long communityId, @Param("isResidentAct") boolean isResidentAct);
+
+    /**
+     * 居民活动分类人口参与统计
+     * @param communityId
+     * @param isResidentAct
+     * @return
+     */
+    List<StatisticsCommVO> getIndexResidentActBaseData(@Param("communityId") Long communityId, @Param("isResidentAct") boolean isResidentAct);
+
+    /**
+     * 获取活动新增折线数据
+     * @param communityId
+     * @param isResidentAct
+     * @return
+     */
+    List<StatisticsCommVO> getActAddPolylineData(@Param("communityId") Long communityId, @Param("isResidentAct") boolean isResidentAct);
+
+    /**
+     * 获取活动累计折线数据
+     * @param communityId
+     * @param isResidentAct
+     * @param date
+     * @return
+     */
+    StatisticsCommVO getActTotalPolylineData(@Param("communityId") Long communityId, @Param("isResidentAct") boolean isResidentAct, @Param("date") String date);
+
+    IPage<ComActActivityVO> indexActList(@Param("page") Page page, @Param("pageBaseDTO") PageBaseDTO pageBaseDTO, @Param("isResidentAct") boolean isResidentAct);
+
+    /**
+     * 查询项目活动列表
+     * @param page
+     * @return
+     */
+    IPage<ActActivityListVO> selectProjectActivity(Page page);
+
+    /**
+     * 根据社工id查询活动列表
+     * @param page
+     * @param commonPage
+     * @return
+     */
+    IPage<ComActActivityVO> selectActivityBySocialWorker(Page page,@Param("commonPage") CommonPage commonPage);
+
+    /**
+     * [方法描述] 根据社区ID查询所属城市所在区区域代码,
+     *
+     * @param communityId
+     *            社区ID
+     * @return String 区域code
+     * @author manailin
+     * @date 2022/2/17 10:09
+     */
+    String getActBelongRegionCode(@Param("communityId") Long communityId);
+
+    /**
+     * 查询党员活动数量
+     * @param communityId
+     * @return
+     */
+    PartyActivityStatics selectActivityStatics(@Param("communityIds") List<Long> communityIds);
+
+    /**
+     * 党员活动饼状图
+     * @param communityId
+     * @return
+     */
+    List<PartyActivityTypeChart> selectActivityChart(@Param("communityIds") List<Long> communityIds);
+
+    /**
+     * 党员活动柱状图
+     * @param communityId
+     * @param year
+     * @param date
+     * @return
+     */
+    Integer selectActivityLine(@Param("communityIds") List<Long> communityIds,@Param("year")String year,@Param("date")String date);
+
+    /**
+     * 分页查询党员详情活动
+     * @param page
+     * @param commonPage
+     * @return
+     */
+    IPage<PartyMemberDetailVO> partyMemberDetail(Page page,@Param("commonPage") CommonPage commonPage);
+
+    /**
+     * 导出党员详情活动
+     * @param commonPage
+     * @return
+     */
+    List<PartyMemberDetailExcelVO> exportPartyMemberDetail(@Param("commonPage") CommonPage commonPage);
+
+    List<ComActActivityVO> selectListByRelationId(@Param("relationId") Long relationId,@Param("date")String date);
+
+    /**
+     * 查询进行中活动
+     * @param communityId 社区id
+     * @return 活动列表
+     */
+    List<ComActActivityVO> selectListByCommunityId(@Param("communityId") Long communityId,@Param("date") String date,@Param("phone")String phone);
+
+    /**
+     * 获取项目活动
+     * @param page
+     * @param comActActivityVO
+     * @return
+     */
+    IPage<ComActActivityVO> pageProjectActivity(@Param("page") Page page, @Param("comActActivityVO") ComActActivityVO comActActivityVO);
+
+    List<String> selectOpenIdByActivityId(Long id);
+
+    /**
+     * 大屏社区活动列表
+     * @param page
+     * @return
+     */
+    IPage<ComActActivityBigScreenVO> pageActivityBigScreen(@Param("page") Page page);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActivityInviteDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActivityInviteDAO.java
new file mode 100644
index 0000000..4fc3c47
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActActivityInviteDAO.java
@@ -0,0 +1,51 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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.PageActivityInviteDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ActivityInviteVO;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComActActivityInvite;
+
+/**
+ * 活动邀请表(ComActActivityInvite)表数据库访问层
+ *
+ * @author makejava
+ * @since 2022-08-01 15:54:10
+ */
+@Mapper
+public interface ComActActivityInviteDAO extends BaseMapper<ComActActivityInvite> {
+
+    /**
+     * 批量新增数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<ComActActivityInvite> 实例对象列表
+     * @return 影响行数
+     */
+    int insertBatch(@Param("entities") List<ComActActivityInvite> entities);
+
+    /**
+     * 批量新增或按主键更新数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<ComActActivityInvite> 实例对象列表
+     * @return 影响行数
+     * @throws org.springframework.jdbc.BadSqlGrammarException
+     *             入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
+     */
+    int insertOrUpdateBatch(@Param("entities") List<ComActActivityInvite> entities);
+
+    /**
+     * 活动邀请列表
+     * @param page
+     * @param dto
+     * @return
+     */
+    IPage<ActivityInviteVO> pageActivityInviteList(@Param("page") Page page, @Param("dto") PageActivityInviteDTO dto);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActAnnouncementDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActAnnouncementDao.java
new file mode 100644
index 0000000..21ca52c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActAnnouncementDao.java
@@ -0,0 +1,27 @@
+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.property.CommonPage;
+import com.panzhihua.common.model.vos.community.ComActAnnouncementVO;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComActAnnouncement;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * (ComActAnnouncement)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-11-01 13:45:54
+ */
+@Mapper
+public interface ComActAnnouncementDao extends BaseMapper<ComActAnnouncement> {
+    /**
+     * 分页查询通知公告
+     * @param page
+     * @param commonPage
+     * @return
+     */
+    IPage<ComActAnnouncementVO> pageList(Page page,@Param("commonPage") CommonPage commonPage);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActColumnDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActColumnDao.java
new file mode 100644
index 0000000..900dfde
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActColumnDao.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.property.CommonPage;
+import com.panzhihua.common.model.vos.community.ComActColumnLevelVO;
+import com.panzhihua.common.model.vos.community.ComActColumnVO;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComActColumn;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 分类列表(ComActColumn)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-11-01 14:38:25
+ */
+@Mapper
+public interface ComActColumnDao extends BaseMapper<ComActColumn> {
+    /**
+     *多条件分页查询
+     * @param page
+     * @param commonPage
+     * @return
+     */
+    IPage<ComActColumnVO> pageList(Page page, @Param("commonPage") CommonPage commonPage);
+
+    /**
+     * 项目级联查询
+     * @param comActColumnVO
+     * @return
+     */
+    List<ComActColumnLevelVO> queryLevel(ComActColumnVO comActColumnVO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActCommitteeDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActCommitteeDao.java
new file mode 100644
index 0000000..7df2347
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActCommitteeDao.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.property.CommonPage;
+import com.panzhihua.common.model.vos.community.ComActCommiteeVO;
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComActCommittee;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * (ComActCommittee)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-09-17 13:55:43
+ */
+@Mapper
+public interface ComActCommitteeDao extends BaseMapper<ComActCommittee> {
+    /**
+     * 分页查询
+     * @param page
+     * @param commonPage
+     * @return
+     */
+    IPage<ComActCommiteeVO> pageList(Page page, @Param("commonPage")CommonPage commonPage);
+
+    /**
+     * 业主委员会党员占比
+     * @param communityId
+     * @return
+     */
+    List<StatisticsCommVO> selectCommitteePartyPercent(@Param("communityId") Long communityId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDAO.java
new file mode 100644
index 0000000..ddd2ca4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDAO.java
@@ -0,0 +1,212 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+import com.panzhihua.common.model.dtos.community.building.BuildingDto;
+import com.panzhihua.common.model.dtos.community.large.AreaStreetDetailResp;
+import com.panzhihua.common.model.dtos.community.large.SumAreaStreetResp;
+import com.panzhihua.common.model.dtos.partybuilding.QryReportResp;
+import com.panzhihua.common.model.vos.area.StreetAndBuildVO;
+import com.panzhihua.common.model.vos.community.ComActPasswordVo;
+import com.panzhihua.common.model.vos.community.bigscreen.ScreenStatics;
+import com.panzhihua.common.model.vos.community.screen.event.EventPopulationSpecialStatisticsVO;
+import com.panzhihua.common.model.vos.neighbor.UnitActivityAnalysisVO;
+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;
+import com.panzhihua.common.model.dtos.community.PageComActDTO;
+import com.panzhihua.common.model.dtos.community.switchs.SearchCommunityDTO;
+import com.panzhihua.common.model.vos.community.ComActVO;
+import com.panzhihua.common.model.vos.community.ComPopulationActVO;
+import com.panzhihua.common.model.vos.community.switchs.CommunitySwitchAllAppletsVO;
+import com.panzhihua.common.model.vos.community.switchs.StreetAllAppletsVO;
+import com.panzhihua.common.model.vos.grid.EventGridCommunityAdminVO;
+import com.panzhihua.service_community.model.dos.ComActDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 社区
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 14:13
+ **/
+@Mapper
+public interface ComActDAO extends BaseMapper<ComActDO> {
+    // @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" + "c.community_id,\n" + "c.`name`,\n"
+        + "ST_Distance_Sphere ( Point ( #{lng}, #{lat} ), Point ( c.lng, c.lat ) ) AS distance \n" + "FROM\n"
+        + "com_act c \n" + " <where>" + "<if test='areaCode != null and areaCode.trim() != &quot;&quot;'>"
+        + "c.area_code = #{areaCode} \n" + " </if> " + " </where>" + "ORDER BY\n" + "distance ASC"
+        + "<if test='lng != null and lng.trim() != &quot;&quot;'>" + " limit 100 " + " </if> " + "</script>")
+    List<ComActVO> listCommunity(ComActVO comActVO);
+
+    @Select("select district_name from com_mng_struct_area_district where district_adcode=#{areaCode}")
+    String selectAreaName(String areaCode);
+
+    @Select("<script> " + "SELECT\n" + "a.* \n" + "FROM\n" + "com_act a \n" + " <where>"
+        + "<if test='pageComActDTO.name != null and pageComActDTO.name.trim() != &quot;&quot;'>"
+        + "and a.name LIKE concat( #{pageComActDTO.name}, '%' ) \n" + " </if> "
+        + "<if test='pageComActDTO.areaCode != null and pageComActDTO.areaCode.trim() != &quot;&quot;'>"
+        + "AND a.area_code = #{pageComActDTO.areaCode} \n" + " </if> "
+        + "<if test='pageComActDTO.createAtBegin != null '>"
+            + "AND a.create_at BETWEEN "
+        + "#{pageComActDTO.createAtBegin} \n" + "AND #{pageComActDTO.createAtEnd}" + " </if> " + " </where>"
+        + " order by a.create_at desc" + "</script>")
+    IPage<ComActVO> pageCommunity(Page page, @Param("pageComActDTO") PageComActDTO pageComActDTO);
+
+    @Update("update sys_user u set u.password=#{password} where u.account=#{account} and u.type=3 and u.community_id = ${communityId}")
+    void updateAccountPassword(@Param("password") String password, @Param("account") String account,
+        @Param("communityId") Long communityId);
+
+    @Select("select community_id,`name`,lng,lat from com_act where state = 0 and app_id =#{appId}")
+    List<EventGridCommunityAdminVO> getCommunityLists(@Param("appId") String appId);
+
+    @Select("select ca.`name`,cmsap.province_name,cmsac.city_name,cmsad.district_name,ca.street_id,ca.community_id,cs.`name` as streetName from com_act as ca \n"
+        + "left join com_mng_struct_area_province as cmsap on cmsap.province_adcode = ca.province_code\n"
+        + "left join com_mng_struct_area_city as cmsac on cmsac.city_adcode = ca.city_code\n"
+        + "left join com_mng_struct_area_district as cmsad on cmsad.district_adcode = ca.area_code\n"
+        + "left join com_street as cs on cs.street_id = ca.street_id\n" + "where ca.community_id = ${communityId}")
+    ComPopulationActVO getPopulationActById(@Param("communityId") Long communityId);
+
+    @Select("select `name`,street_id from com_street where app_id = #{appId}")
+    List<StreetAllAppletsVO> getStreetList(String appId);
+
+    @Select("select ca.`name`,ca.street_id,ca.community_id,cs.`name` as streetName from com_act as ca left join com_street as cs on cs.street_id = ca.street_id where ca.state = 0 and ca.street_id = #{streetId}")
+    List<CommunitySwitchAllAppletsVO> getCommunityListByStreetId(@Param("streetId") Long streetId);
+
+//    @Select("<script> select ca.`name`,ca.street_id,ca.community_id,cs.`name` as streetName " +
+//            "from com_act as ca " +
+//            "left join com_street as cs on cs.street_id = ca.street_id " +
+//            "where ca.state = 0 and ca.name like concat('%',#{name},'%') <if test='appId !=null and appId !=&quot;&quot;'> and cs.app_id = #{appId} </if> </script> ")
+    List<CommunitySwitchAllAppletsVO> getCommunityListByName(@Param("name") String name,@Param("appId") String appId);
+
+    @Select("SELECT   c.community_id,    c.`name`,    c.street_id,    cs.`name` as streetName," +
+            "round( ST_Distance_Sphere ( Point ( #{communityDTO.longitude}, #{communityDTO.latitude} ), Point ( c.lng, c.lat ) )/ 1000, 2 ) AS distance  " +
+            "FROM    com_act c     left join com_street as cs on cs.street_id = c.street_id  " +
+            "where cs.area_code = #{communityDTO.areaCode} " +
+            "HAVING distance >= 0 and distance <= #{communityDTO.distance}   ORDER BY    distance ASC")
+    List<CommunitySwitchAllAppletsVO> getCommunityListByNearby(@Param("communityDTO") SearchCommunityDTO communityDTO);
+
+    @Select("<script> select community_id,name,lng,lat from com_act  where state = 0 <if test='areaCode !=null and areaCode !=&quot;&quot;'> and area_code = #{areaCode} </if> </script>")
+    List<EventGridCommunityAdminVO> getWestCommunityLists(@Param("areaCode") String areCode);
+
+    @Select("select account,plaintext_password as password from com_act where community_id = #{communityId}")
+    ComActPasswordVo getCommunityPassword(@Param("communityId") Long communityId);
+
+    @Select("select name from com_pb_check_unit where id=#{id}")
+    String getUnitName(@Param("id") Long unitId);
+
+    @Select("select count(id) from com_pb_check_unit")
+    Integer getUnitCount();
+
+    @Select("select count(id) from com_pb_member where audit_result=1")
+    Integer selectUnitCount();
+
+    @Select("select count(id) from com_pb_check_unit")
+    Integer selectMemberCount();
+
+    @Select("select name from com_pb_check_unit where id=#{id}")
+    String selectUnitName(@Param("id") Long id);
+
+    @Select("select community_id from com_act where street_id=#{id}")
+    List<Long> selectCommunityByStreetId(Long id);
+    @Select("SELECT  caa.community_id FROM com_act caa WHERE caa.`name` = ( select ca.`name` FROM com_act ca WHERE ca.community_id =#{id})")
+    List<Long> selectIds(@Param("id") Long id);
+
+
+    /**
+     * 统计全部社区/村落数量
+     * @return
+     */
+    @Select("SELECT count(1) FROM `com_act` WHERE app_id = 'wx118de8a734d269f0' and community_id not in ( 11 ,22)")
+    Integer countCommunity();
+
+    /**
+     * 统计实有人口数
+     * @return
+     */
+    @Select(" SELECT count(1) FROM com_mng_population WHERE death = 0")
+    Integer countPopulation();
+
+    /**
+     * 统计实有房屋数
+     * @return
+     */
+    @Select(" SELECT count(1) FROM com_mng_population_house")
+    Integer countPopulationHouse();
+
+
+    /**
+     * 统计报道在职干部 西区+花城
+     * @return
+     */
+    @Select("  SELECT sum(a.member) FROM (SELECT count(1) member FROM com_pb_member union all  SELECT count(1) member FROM com_pb_member_west) a")
+    Integer countPbMember();
+    /**
+     * 统计报到单位
+     * @return
+     */
+    @Select("  SELECT count(1) FROM com_pb_check_unit")
+    Integer countPbUnit();
+
+    /**
+     * 统计商家
+     * @return
+     */
+    @Select(" SELECT count(1) FROM com_convenient_merchants WHERE is_del = 0")
+    Integer countMerchants();
+
+    /**
+     * 统计自愿者
+     * @return
+     */
+    @Select("SELECT count(1) FROM sys_user WHERE is_volunteer = 1")
+    Integer countVolunteer();
+
+    /**
+     * 统计社会组织
+     * @return
+     */
+    @Select("SELECT count(1) FROM com_act_social_org")
+    Integer countSocialOrg();
+
+    @Select("select * from com_act where area_code = #{areaCode}")
+    List<ComActVO> panzhihuaMap(@Param("areaCode")String areaCode);
+
+    List<StreetAndBuildVO> oneTagThreeReal(@Param("streetId") Long streetId);
+
+    ScreenStatics getScreenStatics();
+
+    EventPopulationSpecialStatisticsVO getPopulationSpecial(@Param("streetId") Long streetId);
+
+    Integer getPopulationAge(@Param("streetId") Long streetId, @Param("age") Integer age);
+
+    List<UnitActivityAnalysisVO>  institutionalUnitServiceAnalysis(@Param("beginTime") String beginTime, @Param("endTime") String endTIme);
+
+    List<UnitActivityAnalysisVO>  institutionalUnitActivityAnalysis(@Param("beginTime") String beginTime, @Param("endTime") String endTIme);
+
+    @Select("SELECT count(1) FROM com_pb_check_unit WHERE belong_to = #{belongTo}")
+    Integer arriveUnit(@Param("belongTo") String belongTo);
+
+    SumAreaStreetResp sumAreaStreet();
+
+    AreaStreetDetailResp selectVillage(@Param("ids") List<Long> ids,@Param("type") String type);
+
+    EventPopulationSpecialStatisticsVO selectEvent(@Param("ids") List<Long> ids);
+
+    List<QryReportResp> qryReport(String yearTime);
+}
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
new file mode 100644
index 0000000..729aa49
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussCommentDAO.java
@@ -0,0 +1,73 @@
+package com.panzhihua.service_community.dao;
+
+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;
+import com.panzhihua.common.model.vos.community.ComActDiscussCommentVO;
+import com.panzhihua.service_community.model.dos.ComActDiscussCommentDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 一起议评论
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-22 15:11
+ **/
+@Mapper
+public interface ComActDiscussCommentDAO extends BaseMapper<ComActDiscussCommentDO> {
+    //    @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\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/ComActDiscussCommentUserDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussCommentUserDAO.java
new file mode 100644
index 0000000..8f06ec1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussCommentUserDAO.java
@@ -0,0 +1,26 @@
+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.ComActDiscussCommentUserDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 一起议评论点赞
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-23 14:00
+ **/
+@Mapper
+public interface ComActDiscussCommentUserDAO extends BaseMapper<ComActDiscussCommentUserDO> {
+    // @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>")
+}
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
new file mode 100644
index 0000000..e0b34f5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussDAO.java
@@ -0,0 +1,245 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import com.panzhihua.common.model.dtos.PageBaseDTO;
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenCourtyardStatisticsInfo;
+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;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+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.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.community.ComActDiscussCommentVO;
+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.screen.work.DiscussListVO;
+import com.panzhihua.common.model.vos.screen.CarouselInfoVO;
+import com.panzhihua.service_community.model.dos.ComActDiscussDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 一起议
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-22 14:49
+ **/
+@Mapper
+public interface ComActDiscussDAO extends BaseMapper<ComActDiscussDO> {
+    // @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 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>")
+    IPage<ComActDiscussVO> pageDiscuss(Page page,
+        @Param("pageComActDiscussDTO") PageComActDiscussDTO pageComActDiscussDTO);
+
+
+    Integer getCommentNum(@Param("id") String id);
+
+
+    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, "
+        + "c.id  " + "FROM " + "com_act_discuss_comment c " + "JOIN sys_user u ON c.user_id = u.user_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}"
+        + "<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.create_at desc" + "</script>")
+    IPage<ComActDiscussCommentVO> pageDiscussComment(Page page,
+        @Param("pageComActDiscussCommentDTO") PageComActDiscussCommentDTO pageComActDiscussCommentDTO);
+
+    /**
+     * 议事投票-评论-后台分页查询
+     *
+     * @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 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);
+
+    @Select("select name,address from com_act where community_id = ${communityId}")
+    ComActVO selectCommunity(Long communityId);
+
+    @Select("SELECT  " + "if(du.id is not null,1,0)haveSign, " + "if(ou.id is not null,1,0)haveVote " + "FROM "
+        + "com_act_discuss d  "
+        + "LEFT JOIN com_act_discuss_user du on d.id=du.discuss_id and du.`user_id`=#{loginUserId} "
+        + "LEFT JOIN com_act_discuss_option op on d.id=op.discuss_id "
+        + "LEFT JOIN com_act_discuss_option_user ou on op.id=ou.discuss_option_id and ou.user_id=#{loginUserId} "
+        + "WHERE " + "d.id =#{id} " + "GROUP BY d.id")
+    ComActDiscussVO selectHaveSignAndHaveVote(@Param("id") Long id, @Param("loginUserId") Long loginUserId);
+
+
+    Map<String, Long> countByCommunityId(@Param("communityId") Long communityId, @Param("date") String date);
+
+    @Select(" SELECT id,discuss_subject AS content,IF(type = 1,'图文','投票') AS typeName FROM com_act_discuss WHERE community_id = ${communityId} ORDER BY create_at DESC LIMIT #{pageSize}")
+    List<CarouselInfoVO> screenDiscuss(@Param("communityId") Long communityId, @Param("pageSize") Integer pageSize);
+
+    @Select("<script> " + "SELECT " + " cad.id, " + " su.nick_name AS userName, " + " su.image_url, "
+        + " cad.create_at, " + " cad.type, " + " cad.discuss_subject, " + " cad.photo_pah  " + "FROM "
+        + " com_act_discuss AS cad " + " LEFT JOIN sys_user AS su ON su.user_id = cad.user_id  " + " <where> "
+        + "<if test='discussListDTO.communityId != null '>" + " and cad.community_id = ${discussListDTO.communityId} "
+        + " </if> " + "<if test='discussListDTO.startTime!=null and discussListDTO.startTime != &quot;&quot;'>"
+        + " AND DATE_FORMAT(cad.create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{discussListDTO.startTime} "
+        + " </if> " + "<if test='discussListDTO.endTime!=null and discussListDTO.endTime != &quot;&quot;'>"
+        + " AND DATE_FORMAT(cad.create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{discussListDTO.endTime} " + " </if> "
+        + "<if test='discussListDTO.type!=null'>" + " AND cad.type = #{discussListDTO.type} " + " </if> " + " </where> "
+        + "ORDER BY " + " cad.create_at DESC " + " </script>")
+    IPage<DiscussListVO> getScreenDiscussList(Page page, @Param("discussListDTO") ScreenDiscussListDTO discussListDTO);
+
+    @Select("SELECT id, discuss_id, create_at, option_content"
+        + ",( 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 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("isAddComment") boolean isAddComment);
+
+    /**
+     * 一起议点赞/取消点赞 增加/减少点赞总数
+     * @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);
+
+    int deleteId(@Param("id") String id);
+
+    /**
+     * 居民自治-议事投票类型占比统计
+     * @param communityId
+     * @return
+     */
+    List<StatisticsCommVO> selectTypePercent(@Param("communityId") Long communityId);
+
+    /**
+     * 获取一起议标题
+     * @param type
+     * @param communityId
+     * @param pageSize
+     * @return
+     */
+    List<String> getTitles(@Param("type") int type, @Param("communityId") Long communityId, @Param("pageSize") Integer pageSize);
+
+    /**
+     * 金沙定制页面-四长四员院落议事展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    IPage<ComActDiscussVO> pageCourtyardDiscuss(@Param("page") Page page, @Param("pageBaseDTO") PageBaseDTO pageBaseDTO);
+
+    /**
+     * 金沙定制页面-院落议事基础统计数据
+     * @param communityId
+     * @return
+     */
+    BigScreenCourtyardStatisticsInfo getCourtyardBaseData(@Param("communityId") Long communityId);
+}
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
new file mode 100644
index 0000000..01c7a2e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussOptionDAO.java
@@ -0,0 +1,32 @@
+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
+ * @description: 一起议选项
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-22 15:27
+ **/
+@Mapper
+public interface ComActDiscussOptionDAO extends BaseMapper<ComActDiscussOptionDO> {
+    // @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>")
+
+    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
new file mode 100644
index 0000000..9ac8bc9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussOptionUserDAO.java
@@ -0,0 +1,77 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.community.PageVoteSituationDTO;
+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
+ * @description: 一起议选项投票
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-22 16:13
+ **/
+@Mapper
+public interface ComActDiscussOptionUserDAO extends BaseMapper<ComActDiscussOptionUserDO> {
+    // @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 \n" + "COUNT(ou.id)\n" + "FROM\n" + "com_act_discuss d\n"
+        + "JOIN com_act_discuss_option o ON d.id = o.discuss_id and d.id=#{id}\n"
+        + "JOIN com_act_discuss_option_user ou ON o.id = ou.discuss_option_id and ou.user_id=#{loginUserId}")
+    int selectHaveVote(@Param("id") Long id, @Param("loginUserId") Long loginUserId);
+
+    @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 pageVoteSituationDTO
+     * @return
+     */
+    IPage<ComActDiscussOptionUserVO> pageVoteSituation(@Param("page") Page page, @Param("pageVoteSituationDTO") PageVoteSituationDTO pageVoteSituationDTO);
+
+    /**
+     * 投票情况详情
+     * @param optionUserId
+     * @return
+     */
+    ComActDiscussOptionUserVO detailVoteSituation(@Param("optionUserId") Long optionUserId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussUserDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussUserDAO.java
new file mode 100644
index 0000000..7063d0a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDiscussUserDAO.java
@@ -0,0 +1,26 @@
+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.ComActDiscussUserDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 一起议点赞
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-22 15:04
+ **/
+@Mapper
+public interface ComActDiscussUserDAO extends BaseMapper<ComActDiscussUserDO> {
+    // @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>")
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDpcDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDpcDAO.java
new file mode 100644
index 0000000..b1e363a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDpcDAO.java
@@ -0,0 +1,70 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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.dpc.PageDpcDTO;
+import com.panzhihua.common.model.vos.community.ComActDpcVO;
+import com.panzhihua.common.model.vos.user.SysUserVO;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComActDpc;
+
+/**
+ * 人大代表(ComActDpc)表数据库访问层
+ *
+ * @author makejava
+ * @since 2022-06-07 10:55:30
+ */
+@Mapper
+public interface ComActDpcDAO extends BaseMapper<ComActDpc> {
+
+    /**
+     * 批量新增数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<ComActDpc> 实例对象列表
+     * @return 影响行数
+     */
+    int insertBatch(@Param("entities") List<ComActDpc> entities);
+
+    /**
+     * 批量新增或按主键更新数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<ComActDpc> 实例对象列表
+     * @return 影响行数
+     * @throws org.springframework.jdbc.BadSqlGrammarException
+     *             入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
+     */
+    int insertOrUpdateBatch(@Param("entities") List<ComActDpc> entities);
+
+    /**
+     * 获取人大代表详情
+     * @param id
+     * @return
+     */
+    ComActDpcVO detailDpc(@Param("id") Long id);
+
+    /**
+     * 分页查询人大代表
+     * @param page
+     * @param pageDpcDTO
+     * @return
+     */
+    IPage<ComActDpcVO> pageDpc(@Param("page") Page page, @Param("pageDpcDTO") PageDpcDTO pageDpcDTO);
+
+    /**
+     * 根据手机号获取小程序用户
+     * @param phone
+     * @return
+     */
+    SysUserVO selectUser(@Param("phone") String phone);
+
+    /**
+     * 插入一条人大代表记录
+     * */
+    int insertComActDpc(@Param("comActDpc") ComActDpc comActDpc);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDynDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDynDAO.java
new file mode 100644
index 0000000..3a957b5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDynDAO.java
@@ -0,0 +1,142 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+import java.util.Map;
+
+import com.panzhihua.common.model.dtos.PageBaseDTO;
+import com.panzhihua.common.model.vos.community.ComActDiscussVO;
+import com.panzhihua.common.model.vos.community.ComSwPatrolRecordVO;
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenPartyBuildIngStatisticsInfo;
+import com.panzhihua.common.model.vos.partybuilding.PartyBuildingActivityVO;
+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;
+import com.panzhihua.common.model.vos.community.ComActDynVO;
+import com.panzhihua.common.model.vos.screen.DateScreenVO;
+import com.panzhihua.common.model.vos.screen.DynamicWorkVO;
+import com.panzhihua.service_community.model.dos.ComActDynDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 社区动态
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 14:06
+ **/
+@Mapper
+public interface ComActDynDAO extends BaseMapper<ComActDynDO> {
+//    @Select("<script> " + "SELECT  " + "d.id, " + "d.title, " + "IFNULL(u.readNum,0) readNum, " + "d.`status`, "
+//        + "d.`content`, " + "d.`cover`, " + "d.`type`, " + "d.`cover_mode`, d.jump_url,d.jump_type, " + "d.is_topping, " + "d.publish_at, "
+//        + "d.create_at, " + "cadt.`name` as typeName, " + "cadt.color as typeColor, " + "ca.name as communityName  "
+//        + "FROM " + "com_act_dyn d " + "LEFT JOIN ( select dyn_id,count(id) as readNum from com_act_dyn_user GROUP BY dyn_id  )  u ON d.id = u.dyn_id  "
+//        + "LEFT JOIN com_act_dyn_type as cadt ON cadt.id = d.type  "
+//        + "LEFT JOIN com_act ca ON d.community_id = ca.community_id  " + "WHERE 1=1  "
+//        + "<if test='comActDynVO.category != null '>" + "and d.category = #{comActDynVO.category} " + " </if> "
+//        + "<if test='comActDynVO.choice == 0 '>" + "and d.community_id = ${comActDynVO.communityId} " + " </if> "
+//        + "<if test='comActDynVO.areaCode !=null '>" + "and ca.area_code = ${comActDynVO.areaCode} " + " </if> "
+//        + "<if test='comActDynVO.title != null and comActDynVO.title.trim() != &quot;&quot;'>"
+//        + "AND d.title like concat(#{comActDynVO.title},'%')   " + " </if> "
+//        + "<if test='comActDynVO.isTopping != null '>" + "AND d.is_topping = #{comActDynVO.isTopping}  " + " </if> "
+//        + "<if test='comActDynVO.status != null '>" + "AND d.`status` = #{comActDynVO.status}  " + " </if> "
+//        + "<if test='comActDynVO.publishAtBegin != null '>" + "AND d.publish_at BETWEEN #{comActDynVO.publishAtBegin}  "
+//        + "AND #{comActDynVO.publishAtEnd}" + " </if> " + " group by d.id  "
+//        + " order by d.is_topping desc, d.create_at desc " + "</script>")
+    IPage<ComActDynVO> pageDynamic(Page page, @Param("comActDynVO") ComActDynVO comActDynVO);
+
+    @Update("update com_act_dyn set `status`=1 WHERE `status`=0 and TIMESTAMPDIFF(MINUTE, SYSDATE(), publish_at)<=0 ")
+    int timedTaskDynStatus();
+
+//    @Select("<script> " + "SELECT  " + "d.id, " + "d.title, " + "COUNT(u.id)readNum, " + "d.`status`, "
+//        + "d.`content`, " + "d.`cover`, " + "d.`type`, " + "d.`cover_mode`, " + "d.is_topping, " + "d.publish_at, "
+//        + "d.create_at, " + "cadt.`name` as typeName, " + "ca.name as communityName  " + "FROM " + "com_act_dyn d "
+//        + "LEFT JOIN com_act_dyn_user u ON d.id = u.dyn_id  "
+//        + "LEFT JOIN com_act_dyn_type as cadt ON cadt.id = d.type  "
+//        + "LEFT JOIN com_act ca ON d.community_id = ca.community_id  " + "WHERE  "
+//        + "d.community_id = ${comActDynVO.communityId} "
+//        + "<if test='comActDynVO.title != null and comActDynVO.title.trim() != &quot;&quot;'>"
+//        + "AND d.title like concat(#{comActDynVO.title},'%')   " + " </if> "
+//        + "<if test='comActDynVO.isTopping != null '>" + "AND d.is_topping = #{comActDynVO.isTopping}  " + " </if> "
+//        + "<if test='comActDynVO.status != null '>" + "AND d.`status` = #{comActDynVO.status}  " + " </if> "
+//        + "<if test='comActDynVO.type != null '>" + "AND d.type = #{comActDynVO.type}  " + " </if> "
+//        + "<if test='comActDynVO.publishAtBegin != null '>" + "AND d.publish_at BETWEEN #{comActDynVO.publishAtBegin}  "
+//        + "AND #{comActDynVO.publishAtEnd}" + " </if> " + " group by d.id  "
+//        + " order by d.is_topping desc, d.create_at desc " + "</script>")
+    IPage<ComActDynVO> pageDynamicByAdmin(Page page, @Param("comActDynVO") ComActDynVO comActDynVO);
+
+
+    String getContent(@Param("id") String id);
+
+    int getReadNum(@Param("dynId") String dynId);
+
+
+    @Select("SELECT " + " count( cad.id ) AS dynTotal, "
+        + " (select count(id) from com_act_dyn where community_id = ${communityId} and create_at LIKE CONCAT(#{nowDate},'%')) as currentNum "
+        + "FROM " + " com_act_dyn AS cad  " + "WHERE " + " community_id = ${communityId}")
+    Map<String, Long> countByCommunityId(@Param("communityId") Long communityId, @Param("nowDate") String nowDate);
+
+    @Select("select create_at as startTime,(select create_at from com_act_dyn where community_id = ${communityId} order by create_at desc LIMIT 1 ) as endTime from com_act_dyn where community_id = ${communityId} order by create_at asc LIMIT 1")
+    DateScreenVO countByAvgCommunityId(@Param("communityId") Long communityId);
+
+    @Select("SELECT "
+        + "(SELECT COUNT(id) FROM com_act_dyn WHERE community_id = ${communityId} AND create_at < #{end}) AS dynTotal, "
+        + "(SELECT COUNT(id) FROM com_act_dyn WHERE community_id = ${communityId} AND #{start} < create_at AND create_at < #{end}) AS dynAdd "
+        + " FROM DUAL")
+    DynamicWorkVO countByTime(@Param("start") String start, @Param("end") String end,
+        @Param("communityId") Long communityId);
+
+    List<StatisticsCommVO> getIndexDynBaseData(@Param("communityId") Long communityId);
+
+    List<StatisticsCommVO> getDynAddPolylineData(@Param("communityId") Long communityId);
+
+    StatisticsCommVO getDynTotalPolylineDate(@Param("communityId") Long communityId, @Param("date") String date);
+
+    IPage<ComActDynVO> indexDynList(@Param("page") Page page, @Param("pageBaseDTO") PageBaseDTO pageBaseDTO);
+
+    /**
+     * 获取党建引领基础数据
+     * @param communityId
+     * @return
+     */
+    BigScreenPartyBuildIngStatisticsInfo getPartyBuildIngBaseData(@Param("communityId") Long communityId);
+
+    /**
+     * 分页获取党员活动
+     * @param pageBaseDTO
+     * @return
+     */
+    IPage<PartyBuildingActivityVO> pagePartyBuildIngAct(@Param("page") Page page, @Param("pageBaseDTO") PageBaseDTO pageBaseDTO);
+
+    /**
+     * 分页获取议事投票数据
+     * @param page
+     * @param pageBaseDTO
+     * @return
+     */
+    IPage<ComActDiscussVO> pagePartyBuildIngDiscuss(@Param("page") Page page, @Param("pageBaseDTO") PageBaseDTO pageBaseDTO);
+
+    /**
+     * 获取居民宣传记录
+     * @param communityId
+     * @param pageSize
+     * @return
+     */
+    List<ComActDynVO> getPartyBuildIngDynRecord(@Param("communityId") Long communityId, @Param("pageSize") Integer pageSize);
+
+    /**
+     * 获取巡查记录
+     * @param communityId
+     * @param pageSize
+     * @return
+     */
+    List<ComSwPatrolRecordVO> getPartyBuildIngPatrolRecord(@Param("communityId") Long communityId, @Param("pageSize") Integer pageSize);
+
+
+
+    String getTypeId(@Param("communityId") String communityId, @Param("name") String name);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDynTypeMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDynTypeMapper.java
new file mode 100644
index 0000000..3acfdfc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDynTypeMapper.java
@@ -0,0 +1,46 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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.PageComActDynTypeDTO;
+import com.panzhihua.common.model.vos.community.ComActDynTypeVO;
+import com.panzhihua.service_community.model.dos.ComActDynTypeDO;
+
+/**
+ * @auther lyq
+ * @create 2021-07-22 11:28:27
+ * @describe 社区动态分类mapper类
+ */
+@Mapper
+public interface ComActDynTypeMapper extends BaseMapper<ComActDynTypeDO> {
+
+    /**
+     * 分页查询社区动态分类列表
+     * 
+     * @param comActDynTypeDTO
+     *            请求参数
+     * @return 动态分类列表
+     */
+    IPage<ComActDynTypeVO> pageDynTypeByAdmin(Page page,
+        @Param("comActDynTypeDTO") PageComActDynTypeDTO comActDynTypeDTO);
+
+    /**
+     * 查询社区下所有动态分类列表
+     * 
+     * @param comActDynTypeDTO
+     *            请求参数
+     * @return 动态分类列表
+     */
+    List<ComActDynTypeVO> getDynTypeListByAdmin(@Param("comActDynTypeDTO") PageComActDynTypeDTO comActDynTypeDTO);
+
+    Integer getDynCountByDynTypeIds(@Param("ids") List<Long> ids);
+
+    Integer deleteDynTypeByIds(@Param("ids") List<Long> ids);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDynUserDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDynUserDAO.java
new file mode 100644
index 0000000..015a188
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActDynUserDAO.java
@@ -0,0 +1,19 @@
+package com.panzhihua.service_community.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Update;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_community.model.dos.ComActDynUserDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 社区动态阅读记录
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-10 10:32
+ **/
+@Mapper
+public interface ComActDynUserDAO extends BaseMapper<ComActDynUserDO> {
+    @Update("update com_act_dyn set is_topping=0  WHERE is_topping=1 and TIMESTAMPDIFF(MINUTE, publish_at, SYSDATE())>=5*24*60")
+    int timedTaskDynIstopping();
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoActivityMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoActivityMapper.java
new file mode 100644
index 0000000..89cfae1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoActivityMapper.java
@@ -0,0 +1,57 @@
+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.easyPhoto.PageEasyPhotoActivityDTO;
+import com.panzhihua.common.model.dtos.community.easyPhoto.PageEasyPhotoActivityUserDTO;
+import com.panzhihua.common.model.vos.community.ComActEasyPhotoActivityVO;
+import com.panzhihua.common.model.vos.community.easyPhoto.ComActEasyPhotoActivityUserVO;
+import com.panzhihua.service_community.model.dos.ComActEasyPhotoActivityDO;
+
+/**
+ * @auther lyq
+ * @create 2021-06-25 10:34:16
+ * @describe 随手拍活动表mapper类
+ */
+@Mapper
+public interface ComActEasyPhotoActivityMapper extends BaseMapper<ComActEasyPhotoActivityDO> {
+
+    /**
+     * 社区后台-分页查询随手拍活动列表
+     * 
+     * @param page
+     *            分页参数
+     * @param pageEasyPhotoActivityDTO
+     *            请求参数
+     * @return 随手拍活动列表
+     */
+    IPage<ComActEasyPhotoActivityVO> pageActivity(Page page,
+        @Param("pageEasyPhotoActivityDTO") PageEasyPhotoActivityDTO pageEasyPhotoActivityDTO);
+
+    /**
+     * 判断当前活动时间是否与其他时间有冲突
+     * 
+     * @param startTime
+     *            活动开始时间
+     * @param endTime
+     *            活动结束时间
+     * @return 返回冲突的活动数量
+     */
+    Integer getEasyPhotoActivityTimeConflict(@Param("startTime") String startTime, @Param("endTime") String endTime,
+        @Param("activityId") Long activityId, @Param("communityId") Long communityId);
+
+    /**
+     * 分页查询随手拍活动下居民参与记录
+     * 
+     * @param pageEasyPhotoActivityUserDTO
+     *            请求参数
+     * @return 居民参与记录
+     */
+    IPage<ComActEasyPhotoActivityUserVO> pageActivityUser(Page page,
+        @Param("pageEasyPhotoActivityUserDTO") PageEasyPhotoActivityUserDTO pageEasyPhotoActivityUserDTO);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoActivityRecordMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoActivityRecordMapper.java
new file mode 100644
index 0000000..8ffabc9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoActivityRecordMapper.java
@@ -0,0 +1,16 @@
+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.ComActEasyPhotoActivityRecordDO;
+
+/**
+ * @auther lyq
+ * @create 2021-06-25 10:34:36
+ * @describe 用户参加随手拍活动记录表mapper类
+ */
+@Mapper
+public interface ComActEasyPhotoActivityRecordMapper extends BaseMapper<ComActEasyPhotoActivityRecordDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoClassifyMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoClassifyMapper.java
new file mode 100644
index 0000000..40e407e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoClassifyMapper.java
@@ -0,0 +1,40 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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.easyPhoto.AddEasyPhotoClassifyDTO;
+import com.panzhihua.common.model.vos.community.easyPhoto.ComActEasyPhotoClassifyVO;
+import com.panzhihua.service_community.model.dos.ComActEasyPhotoClassifyDO;
+
+/**
+ * @auther lyq
+ * @create 2021-08-19 15:50:58
+ * @describe 随手拍分类表mapper类
+ */
+@Mapper
+public interface ComActEasyPhotoClassifyMapper extends BaseMapper<ComActEasyPhotoClassifyDO> {
+
+    /**
+     * 运营后台-分页查询随手拍分类
+     * 
+     * @param photoClassifyDTO
+     *            请求参数
+     * @return 随手拍分类列表
+     */
+    IPage<ComActEasyPhotoClassifyVO> getPhotoClassifyPage(Page page,
+        @Param("photoClassifyDTO") AddEasyPhotoClassifyDTO photoClassifyDTO);
+
+    /**
+     * 运营后台-查询随手拍分类列表
+     * 
+     * @return 随手拍分类列表
+     */
+    List<ComActEasyPhotoClassifyVO> getPhotoClassifyList(String areaCode);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoCommentDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoCommentDAO.java
new file mode 100644
index 0000000..c2f5533
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoCommentDAO.java
@@ -0,0 +1,44 @@
+package com.panzhihua.service_community.dao;
+
+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;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.community.PageComActEasyPhotoCommentDTO;
+import com.panzhihua.common.model.vos.community.ComActEasyPhotoCommentVO;
+import com.panzhihua.service_community.model.dos.ComActEasyPhotoCommentDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 随手拍评论
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-21 14:45
+ **/
+@Mapper
+public interface ComActEasyPhotoCommentDAO extends BaseMapper<ComActEasyPhotoCommentDO> {
+    // @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 * from (" + "SELECT \n" + "m.id,\n" + "m.`comment`,\n" + "e.`name`,\n"
+        + "e.`nick_name`,\n" + "e.image_url url,\n" + "m.create_at,\n"
+        + "<if test='comActEasyPhotoCommentDTO.userId != null'>" + " if(u1.id is null,0,1)haveSign,\n" + "</if> "
+        + "COUNT(u.id)num\n" + "FROM\n" + "com_act_easy_photo_comment m \n" + "JOIN sys_user e on m.user_id=e.user_id\n"
+        + "LEFT JOIN com_act_easy_photo_comment_user u on m.id=u.easy_photo_comment_id\n"
+        + "<if test='comActEasyPhotoCommentDTO.userId != null'>"
+        + " LEFT JOIN com_act_easy_photo_comment_user u1 on m.id=u1.easy_photo_comment_id and u1.user_id=#{comActEasyPhotoCommentDTO.userId}\n"
+        + "</if> " + "where m.easy_photo_id=#{comActEasyPhotoCommentDTO.id}  " + "GROUP BY m.id\n"
+        + " )t order by t.num desc, t.create_at DESC </script>")
+    IPage<ComActEasyPhotoCommentVO> pageComActEasyPhotoComment(Page page,
+        @Param("comActEasyPhotoCommentDTO") PageComActEasyPhotoCommentDTO pageComActEasyPhotoCommentDTO);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoCommentUserDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoCommentUserDAO.java
new file mode 100644
index 0000000..3685dce
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoCommentUserDAO.java
@@ -0,0 +1,27 @@
+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.ComActEasyPhotoCommentUserDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 随手拍评论点赞
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-21 14:00
+ **/
+@Mapper
+public interface ComActEasyPhotoCommentUserDAO extends BaseMapper<ComActEasyPhotoCommentUserDO> {
+    // @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>")
+
+}
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
new file mode 100644
index 0000000..f8e4ff9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoDAO.java
@@ -0,0 +1,477 @@
+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.PageBaseDTO;
+import com.panzhihua.common.model.dtos.community.easyPhoto.ExportEasyPhotoDTO;
+import com.panzhihua.common.model.vos.community.ComActEasyPhotoVO;
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+import com.panzhihua.common.model.vos.community.StatisticsPhotoVO;
+import com.panzhihua.common.model.vos.community.TodoEventsVO;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenDpcStatisticsInfo;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenEasyPhotoStatisticsInfo;
+import com.panzhihua.common.model.vos.community.bigscreen.BigscreenGridsGovernanceStatisticsVO;
+import com.panzhihua.common.model.vos.community.bigscreen.GridsGovernanceStatisticsVO;
+import com.panzhihua.common.model.vos.community.bigscreen.ResidentAutonomyStatisticsVO;
+import com.panzhihua.common.model.vos.community.easyPhoto.BannerVO;
+import com.panzhihua.common.model.vos.community.easyPhoto.ComActEasyPhotoCountVO;
+import com.panzhihua.common.model.vos.community.easyPhoto.ComActEasyPhotoStatisticsVO;
+import com.panzhihua.common.model.vos.community.easyPhoto.ExportEasyPhotoVO;
+import com.panzhihua.common.model.vos.screen.EastPhotoTypeVO;
+import com.panzhihua.common.model.vos.screen.EastPhotoVO;
+import com.panzhihua.service_community.model.dos.ComActEasyPhotoDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 随手拍
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 14:22
+ **/
+@Mapper
+public interface ComActEasyPhotoDAO extends BaseMapper<ComActEasyPhotoDO> {
+    @Select("<script> " +
+            "select t.* from ("+
+            "SELECT " +
+            "p.id, " +
+            "u.`name` sponsor_name, " +
+            "u.phone phone, " +
+            "count(pu.id)giveThumbsUpNum, " +
+            "u.image_url, " +
+            "p.happen_addr, " +
+            "su.`name` handler_name, " +
+            "p.`status`, " +
+            "p.`detail`, " +
+            "p.`is_need_feed_back`, " +
+            "p.`photo_path_list`, " +
+            "p.create_at, " +
+            "p.feedback_at, " +
+            "p.is_report, " +
+            "p.is_publicity, " +
+            "p.activity_type, " +
+            "p.activity_id, " +
+            "p.activity_amount, " +
+            "p.examine_at  " +
+            "FROM " +
+            "com_act_easy_photo p " +
+            "JOIN sys_user u ON p.sponsor_id = u.user_id  " +
+            "<if test='comActEasyPhotoVO.sponsorName != null and comActEasyPhotoVO.sponsorName.trim() != &quot;&quot;'>" +
+            "AND u.`name` like concat(#{comActEasyPhotoVO.sponsorName},'%')   " +
+            " </if> " +
+            "<if test='comActEasyPhotoVO.userId != null and comActEasyPhotoVO.userId != 0'>" +
+            "AND u.`user_id` = #{comActEasyPhotoVO.userId}  " +
+            " </if> " +
+            "left join  com_act_easy_photo_user pu ON p.id = pu.easy_photo_id  " +
+            "<if test='comActEasyPhotoVO.handlerName == null or comActEasyPhotoVO.handlerName.trim() == &quot;&quot;'>" +
+            "left JOIN sys_user su ON p.handler_id = su.user_id  " +
+            " </if> " +
+            "<if test='comActEasyPhotoVO.handlerName != null and comActEasyPhotoVO.handlerName.trim() != &quot;&quot;'>" +
+            " JOIN sys_user su ON p.handler_id = su.user_id  " +
+            " </if> " +
+            "<if test='comActEasyPhotoVO.handlerName != null and comActEasyPhotoVO.handlerName.trim() != &quot;&quot;'>" +
+            "AND su.`name` like concat(#{comActEasyPhotoVO.handlerName},'%')   " +
+            " </if> " +
+            "where p.del_tag = 0 and p.status !=2"+
+            "<if test='comActEasyPhotoVO.communityId != null and comActEasyPhotoVO.communityId != 0'>" +
+            "  and p.community_id = ${comActEasyPhotoVO.communityId} " +
+            " </if> " +
+            "<if test='comActEasyPhotoVO.happenAddr != null and comActEasyPhotoVO.happenAddr.trim() != &quot;&quot;'>" +
+            "AND p.happen_addr like concat(#{comActEasyPhotoVO.happenAddr},'%')   " +
+            " </if> " +
+            "<if test='comActEasyPhotoVO.status != null and comActEasyPhotoVO.status!=0' >" +
+            "AND p.`status` = #{comActEasyPhotoVO.status}  " +
+            " </if> " +
+            "<if test='comActEasyPhotoVO.createBegin != null  '>" +
+            "AND p.create_at BETWEEN #{comActEasyPhotoVO.createBegin}  " +
+            "AND #{comActEasyPhotoVO.createEnd}" +
+            " </if> " +
+            "<if test='comActEasyPhotoVO.sponsorId != null and comActEasyPhotoVO.sponsorId != 0'>" +
+            "AND p.sponsor_id =#{comActEasyPhotoVO.sponsorId}  " +
+            " </if> " +
+            "<if test='comActEasyPhotoVO.activityType != null'>" +
+            "AND p.activity_type =#{comActEasyPhotoVO.activityType}  " +
+            " </if> " +
+            "<if test='comActEasyPhotoVO.easyType != null and comActEasyPhotoVO.easyType == 1'>" +
+            " AND (p.status = 1 or (p.status > 1 and is_need_feed_back = 0)) " +
+            " </if> " +
+            "<if test='comActEasyPhotoVO.easyType != null and comActEasyPhotoVO.easyType == 2'>" +
+            " AND p.status > 1 and is_need_feed_back = 1 " +
+            " </if> " +
+            "group by p.id "+
+
+            "union all "+
+
+            "SELECT " +
+            "p.id, " +
+            "u.`name` sponsor_name, " +
+            "u.phone phone, " +
+            "count(pu.id)giveThumbsUpNum, " +
+            "u.image_url, " +
+            "p.happen_addr, " +
+            "su.`name` handler_name, " +
+            "p.`status`, " +
+            "p.`detail`, " +
+            "p.`is_need_feed_back`, " +
+            "p.`photo_path_list`, " +
+            "p.create_at, " +
+            "p.feedback_at, " +
+            "p.is_report, " +
+            "p.is_publicity, " +
+            "p.activity_type, " +
+            "p.activity_amount, " +
+            "p.activity_id, " +
+            "p.examine_at  " +
+            "FROM " +
+            "com_act_easy_photo p " +
+            "JOIN sys_user u ON p.sponsor_id = u.user_id  " +
+            "<if test='comActEasyPhotoVO.sponsorName != null and comActEasyPhotoVO.sponsorName.trim() != &quot;&quot;'>" +
+            "AND u.`name` like concat(#{comActEasyPhotoVO.sponsorName},'%')   " +
+            " </if> " +
+            "<if test='comActEasyPhotoVO.userId != null and comActEasyPhotoVO.userId != 0'>" +
+            "AND u.`user_id` = #{comActEasyPhotoVO.userId}  " +
+            " </if> " +
+            "left join  com_act_easy_photo_user pu ON p.id = pu.easy_photo_id  " +
+            "<if test='comActEasyPhotoVO.handlerName == null or comActEasyPhotoVO.handlerName.trim() == &quot;&quot;'>" +
+            "left JOIN sys_user su ON p.handler_id = su.user_id  " +
+            " </if> " +
+            "<if test='comActEasyPhotoVO.handlerName != null and comActEasyPhotoVO.handlerName.trim() != &quot;&quot;'>" +
+            " JOIN sys_user su ON p.handler_id = su.user_id  " +
+            " </if> " +
+            "<if test='comActEasyPhotoVO.handlerName != null and comActEasyPhotoVO.handlerName.trim() != &quot;&quot;'>" +
+            "AND su.`name` like concat(#{comActEasyPhotoVO.handlerName},'%')  " +
+            " </if> " +
+            "where  p.del_tag = 0 and  p.status=2 and p.is_need_feed_back=1 " +
+            "<if test='comActEasyPhotoVO.backUserId != null and comActEasyPhotoVO.backUserId != 0'>" +
+            "and p.handler_id=#{comActEasyPhotoVO.backUserId}"+
+            " </if> " +
+            "<if test='comActEasyPhotoVO.communityId != null and comActEasyPhotoVO.communityId != 0'>" +
+            "  and p.community_id = ${comActEasyPhotoVO.communityId} " +
+            " </if> " +
+            "<if test='comActEasyPhotoVO.happenAddr != null and comActEasyPhotoVO.happenAddr.trim() != &quot;&quot;'>" +
+            "AND p.happen_addr like concat(#{comActEasyPhotoVO.happenAddr},'%')   " +
+            " </if> " +
+            "<if test='comActEasyPhotoVO.status != null and comActEasyPhotoVO.status!=0' >" +
+            "AND p.`status` = #{comActEasyPhotoVO.status}  " +
+            " </if> " +
+            "<if test='comActEasyPhotoVO.createBegin != null  '>" +
+            "AND p.create_at BETWEEN #{comActEasyPhotoVO.createBegin}  " +
+            "AND #{comActEasyPhotoVO.createEnd}" +
+            " </if> " +
+            "<if test='comActEasyPhotoVO.sponsorId != null and comActEasyPhotoVO.sponsorId != 0'>" +
+            "AND p.sponsor_id =#{comActEasyPhotoVO.sponsorId}  " +
+            " </if> " +
+            "<if test='comActEasyPhotoVO.activityType != null'>" +
+            "AND p.activity_type =#{comActEasyPhotoVO.activityType}  " +
+            " </if> " +
+            "<if test='comActEasyPhotoVO.easyType != null and comActEasyPhotoVO.easyType == 1'>" +
+            " AND (p.status = 1 or (p.status > 1 and is_need_feed_back = 0)) " +
+            " </if> " +
+            "<if test='comActEasyPhotoVO.easyType != null and comActEasyPhotoVO.easyType == 2'>" +
+            " AND p.status > 1 and is_need_feed_back = 1 " +
+            " </if> " +
+            " group by p.id "+
+            ")t order by t.create_at desc "+
+            "</script>")
+    IPage<ComActEasyPhotoVO> pageEasyPhoto(Page page, @Param("comActEasyPhotoVO") ComActEasyPhotoVO comActEasyPhotoVO);
+
+    IPage<ComActEasyPhotoVO> pageEasyPhotoAdmin(Page page, @Param("comActEasyPhotoVO") ComActEasyPhotoVO comActEasyPhotoVO);
+
+    IPage<ComActEasyPhotoVO> pageEasyPhotoAdminLC(Page page);
+    @Select("SELECT  " +
+            "p.id, " +
+            "p.sponsor_id, " +
+            "p.feedback_at, " +
+            "p.is_publicity, " +
+            "p.examine_at, " +
+            "p.create_at, " +
+            "u.`name` sponsorName, " +
+            "u.nick_name userNickName, " +
+            "su.`name` handlerName, " +
+            "su1.`name` completeName, " +
+            "u.`image_url`, " +
+            "u.phone, " +
+            "p.detail, " +
+            "p.lng_lat, " +
+            "p.is_need_feed_back, " +
+            "p.examine_at, " +
+            "p.status, " +
+            "p.reject_reason, " +
+            "p.is_hide, " +
+            "p.happen_addr, " +
+            "p.addr_remark, " +
+            "su.`name`, " +
+            "p.handle_result, " +
+            "p.photo_path_list, " +
+            "p.activity_type, " +
+            "p.activity_id, " +
+            "p.activity_amount, " +
+            "count(pu.id)giveThumbsUpNum, " +
+            "c.name communityName," +
+            "p.transfer_time," +
+            "p.is_report_urban," +
+            "p.is_report_dpc," +
+            "p.transfer_reason," +
+            "ca.`name` as classifyName," +
+            "p.urban_status, " +
+            "p.img_width, " +
+            "p.img_height, " +
+            "p.evaluate_date, " +
+            "caepe.score," +
+            "caepe.`content`, " +
+            "p.handle_photo_list " +
+            "FROM " +
+            "com_act_easy_photo p " +
+            "JOIN sys_user u on p.sponsor_id=u.user_id " +
+            "LEFT JOIN sys_user su on p.handler_id=su.user_id " +
+            "LEFT JOIN sys_user su1 on p.complete_id=su1.user_id " +
+            "LEFT JOIN com_act_easy_photo_user pu on p.id=pu.easy_photo_id " +
+            "LEFT JOIN com_act c on p.community_id=c.community_id " +
+            "left join com_act_easy_photo_classify ca on ca.id = p.classify_id " +
+            "left join com_act_easy_photo_evaluate as caepe on caepe.service_id = p.id and caepe.service_type = 1 " +
+            "WHERE p.del_tag = 0 and p.id=#{id}")
+    ComActEasyPhotoVO detailEasyPhoto(Long id);
+    @Select("SELECT " +
+            "'1' type " +
+            "FROM " +
+            " com_act_easy_photo p  " +
+            "WHERE " +
+            " p.del_tag = 0 and p.community_id = ${communityId}  " +
+            "AND p.STATUS = 1  "+
+            " " +
+            "union all  " +
+            " " +
+            "SELECT " +
+            "'1' type " +
+            "FROM " +
+            "  com_act_easy_photo p  " +
+            "WHERE " +
+            " p.del_tag = 0 and p.community_id = ${communityId}  " +
+            "AND p.`status` = 2 and p.is_need_feed_back=1 and p.handler_id=#{userId} "
+            )
+    List<TodoEventsVO> selectNeedToDo(@Param("communityId") Long communityId, @Param("userId") Long userId);
+
+//    @Select("<script> " +
+//            "SELECT " +
+//            "p.id, " +
+//            "u.`name` sponsor_name, " +
+//            "u.`nick_name` userNickName, " +
+//            "u.phone sponsor_phone, " +
+//            "count(DISTINCT pu.id)giveThumbsUpNum, " +
+//            "count(DISTINCT c.id)commentNum, " +
+//            "u.image_url, " +
+//            "p.happen_addr, " +
+//            "p.addr_remark, " +
+//            "su.`name` handler_name, " +
+//            "p.`status`, " +
+//            "p.`is_hide`, " +
+//            "p.`detail`, " +
+//            "p.`is_need_feed_back`, " +
+//            "p.`photo_path_list`, " +
+//            "p.create_at, " +
+//            "p.feedback_at, " +
+//            "p.activity_type, " +
+//            "p.activity_amount, " +
+//            "p.classify_id, " +
+//            "class.`name` as classifyName, " +
+//            "p.img_width, " +
+//            "p.img_height, " +
+//            "p.examine_at  " +
+//            "FROM " +
+//            "com_act_easy_photo p " +
+//            "JOIN sys_user u ON p.sponsor_id = u.user_id  " +
+//            "left join  com_act_easy_photo_user pu ON p.id = pu.easy_photo_id  " +
+//            "left JOIN sys_user su ON p.handler_id = su.user_id  " +
+//            "left JOIN com_act_easy_photo_comment c ON p.id = c.easy_photo_id  " +
+//            "left JOIN com_act_easy_photo_classify class ON p.classify_id = class.id  " +
+//            " <where>" +
+//            " p.del_tag = 0 "  +
+//            "<if test='comActEasyPhotoVO.communityId != null and comActEasyPhotoVO.communityId != 0'>" +
+//            "  and p.community_id = ${comActEasyPhotoVO.communityId} " +
+//            " </if> " +
+//            "<if test='comActEasyPhotoVO.status != null and comActEasyPhotoVO.status!=0' >" +
+//            "AND p.`status` = #{comActEasyPhotoVO.status}  " +
+//            " </if> " +
+//            "<if test='comActEasyPhotoVO.sponsorId != null and comActEasyPhotoVO.sponsorId != 0'>" +
+//            "AND p.sponsor_id =#{comActEasyPhotoVO.sponsorId}  " +
+//            " </if> " +
+//            "<if test='comActEasyPhotoVO.sponsorId == null or comActEasyPhotoVO.sponsorId==0'>" +
+//            "AND p.`status` in (2,4) and p.is_publicity = 1 " +
+//            " </if> " +
+//            "<if test='comActEasyPhotoVO.keyWord != null and comActEasyPhotoVO.keyWord != &quot;&quot;'>" +
+//            "AND (class.`name` like concat(#{comActEasyPhotoVO.keyWord},'%') or p.detail like concat(#{comActEasyPhotoVO.keyWord},'%'))   " +
+//            " </if> " +
+//            "group by p.id "+
+//            "order by p.create_at desc "+
+//            " </where>" +
+//            "</script>"
+//    )
+    IPage<ComActEasyPhotoVO> pageEasyPhotoApplets(Page page, @Param("comActEasyPhotoVO")ComActEasyPhotoVO comActEasyPhotoVO);
+
+    @Select("SELECT t.name,COUNT(p.id) as num FROM com_act_easy_photo_type t LEFT JOIN com_act_easy_photo_type_relation r ON  t.id = r.easy_type_id " +
+            "LEFT JOIN com_act_easy_photo p ON r.easy_id = p.id AND p.handle_status = 1 AND p.community_id = ${communityId} " +
+            "GROUP BY t.name ")
+    List<EastPhotoTypeVO> countDeal(@Param("communityId")Long communityId);
+
+    @Select("SELECT t.name,COUNT(p.id) as num FROM com_act_easy_photo_type t LEFT JOIN com_act_easy_photo_type_relation r ON  t.id = r.easy_type_id " +
+            "LEFT JOIN com_act_easy_photo p ON r.easy_id = p.id AND p.is_publicity = 1 AND p.community_id = ${communityId} " +
+            "GROUP BY t.name ")
+    List<EastPhotoTypeVO> countPub(@Param("communityId")Long communityId);
+
+    @Select("SELECT t.name,COUNT(p.id) as num FROM com_act_easy_photo_type t LEFT JOIN com_act_easy_photo_type_relation r ON  t.id = r.easy_type_id " +
+            "LEFT JOIN com_act_easy_photo p ON r.easy_id = p.id AND p.status = 4 where p.community_id = ${communityId} " +
+            "GROUP BY t.name ")
+    List<EastPhotoTypeVO> countApproved(@Param("communityId")Long communityId);
+
+    @Select("SELECT COUNT(id) AS noneDeal," +
+            "(" +
+            "SELECT COUNT(id) FROM com_act_easy_photo WHERE community_id = 2 AND create_at LIKE concat(#{nowDate},'%') " +
+            ") AS currentNum," +
+            "(" +
+            "(SELECT COUNT(id) FROM com_act_easy_photo WHERE community_id = ${communityId} AND STATUS = 4 AND handle_status = 2)*100/(SELECT COUNT(id) FROM com_act_easy_photo WHERE community_id = ${communityId} AND handle_status = 2) " +
+            ") AS pubPoint," +
+            "(SELECT AVG(TIMESTAMPDIFF(HOUR,create_at,feedback_at))  FROM com_act_easy_photo WHERE community_id = ${communityId} and handle_status = 2 ) AS dealTime " +
+            "FROM com_act_easy_photo where community_id = ${communityId}")
+    Map<String, Object> countByCommunityId(@Param("communityId")Long communityId,@Param("nowDate") String nowDate);
+
+    @Select("SELECT COUNT(id) AS total, " +
+            "(SELECT COUNT(id) FROM com_act_easy_photo WHERE community_id = ${communityId} AND #{start} < create_at and create_at < #{end} ) AS adds, " +
+            "(SELECT COUNT(id) FROM com_act_easy_photo WHERE community_id = ${communityId} AND handle_status = 2 AND #{start} < create_at and create_at < #{end}) AS deal " +
+            "FROM com_act_easy_photo WHERE community_id = ${communityId} AND #{start} < create_at and create_at < #{end} ")
+    EastPhotoVO countByTime(@Param("start")String start, @Param("end")String end, @Param("nowDate")String nowDate, @Param("communityId")Long communityId);
+
+//    @Select("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` = 4 AND community_id = ${communityId} and del_tag = 0 ) AS completeNum  " +
+//            "FROM " +
+//            " com_act_easy_photo  " +
+//            "WHERE " +
+//            " `status` = 1  " +
+//            " AND community_id = ${communityId} and del_tag = 0")
+    ComActEasyPhotoStatisticsVO getEasyPhotoStatistics(@Param("communityId")Long communityId);
+    ComActEasyPhotoCountVO easyPhotoCount(ComActEasyPhotoVO comActEasyPhotoVO);
+    List<ExportEasyPhotoVO> export(ExportEasyPhotoDTO exportEasyPhotoDTO);
+    List<ExportEasyPhotoVO> exportByIds(List<Integer> ids);
+
+    /**
+     * 查询社区待处理随手拍id集合
+     * @param communityId   社区id
+     * @return  社区待处理随手拍id集合
+     */
+    List<Long> easyPhotoNoHandleIds(@Param("communityId")Long communityId);
+
+    /**
+     *  查询banner
+     * @param communityId
+     * @return
+     */
+    List<BannerVO>  banner(@Param("communityId") Long communityId);
+
+    /**
+     * 获取随手拍居民自治统计数据
+     * @param communityId
+     * @return
+     */
+    List<StatisticsCommVO> selectStatisticsList(@Param("communityId") Long communityId);
+
+    /**
+     * 获取居民自治统计数据
+     * @param communityId
+     * @return
+     */
+    ResidentAutonomyStatisticsVO selectResidentAutonomyStatistics(@Param("communityId") Long communityId);
+
+    /**
+     * 获取清网治格统计数据
+     * @param communityId
+     * @return
+     */
+    GridsGovernanceStatisticsVO selectGridsGovernance(@Param("communityId") Long communityId);
+
+    /**
+     * 首页大屏获取网格统计数据
+     */
+    BigscreenGridsGovernanceStatisticsVO selectBigscreenGridsGovern(@Param("communityId")Long communityId);
+
+    /**
+     * 首页二级页面-随手拍基础数据查询
+     * @param communityId
+     * @return
+     */
+    BigScreenEasyPhotoStatisticsInfo selectIndexEasyPhotoBaseData(@Param("communityId") Long communityId);
+
+    List<StatisticsCommVO> getEasyPhotoAddPolylineData(@Param("communityId") Long communityId);
+
+    StatisticsCommVO getEasyPhotoTotalPolylineDate(@Param("communityId") Long communityId, @Param("date") String date);
+
+    /**
+     * 首页二级页面-随手拍展示列表
+     * @param page
+     * @param pageBaseDTO
+     * @return
+     */
+    IPage<ComActEasyPhotoVO> indexEasyPhotoList(@Param("page") Page page, @Param("pageBaseDTO") PageBaseDTO pageBaseDTO);
+
+    /**
+     * 随手拍治安防控记录列表
+     * @param communityId
+     * @param pageSize
+     * @return
+     */
+    List<ComActEasyPhotoVO> getPartyBuildIngRecord(@Param("communityId") Long communityId, @Param("pageSize") Integer pageSize);
+
+    /**
+     * 获取上报人大代表的随手拍新增数据
+     * @param communityId
+     * @return
+     */
+    List<StatisticsCommVO> getEasyPhotoAddPolylineDataForDpc(@Param("communityId") Long communityId);
+
+    /**
+     * 上报人大代表的随手拍累计折线数据
+     * @param communityId
+     * @param date
+     * @return
+     */
+    StatisticsCommVO getEasyPhotoTotalPolylineDateForDpc(@Param("communityId") Long communityId, @Param("date") String date);
+
+    /**
+     * 人大代表-随手拍展示列表
+     * @param page
+     * @param pageBaseDTO
+     * @return
+     */
+    IPage<ComActEasyPhotoVO> dpcEasyPhotoList(@Param("page") Page page, @Param("pageBaseDTO") PageBaseDTO pageBaseDTO);
+
+    /**
+     * 获取人大代表基础数据
+     * @param communityId
+     * @return
+     */
+    BigScreenDpcStatisticsInfo selectDpcBaseData(@Param("communityId") Long communityId);
+
+    /**
+     * 获取社区动态置顶banner
+     * */
+    List<BannerVO> getBanner(@Param("communityId") Long communityId);
+
+    /**
+     * 统计所有随手拍,分状态
+     * @return
+     */
+    List<StatisticsPhotoVO> selectPhotoAll();
+
+    /**
+     * 统计所有随手拍,分状态
+     * @return
+     */
+    List<StatisticsPhotoVO> selectPhotoByMonth();
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoEvaluateMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoEvaluateMapper.java
new file mode 100644
index 0000000..8a68a7b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoEvaluateMapper.java
@@ -0,0 +1,58 @@
+package com.panzhihua.service_community.dao;
+
+import com.panzhihua.service_community.entity.ComActEasyPhotoEvaluate;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.common.*;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import java.util.List;
+
+/**
+ * title: 随手拍、微心愿评价表表数据库访问层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 随手拍、微心愿评价表表数据库访问层
+ *
+ * @author lyq
+ * @date 2022-03-01 13:44:22
+ */
+@Mapper
+public interface ComActEasyPhotoEvaluateMapper extends BaseMapper<ComActEasyPhotoEvaluate> {
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-01 13:44:22
+     */
+    ComActEasyPhotoEvaluateVo queryById(Long id);
+
+    /**
+     * description  queryAllByLimit  分页查询
+     *
+     * @param comActEasyPhotoEvaluate 请求参数
+     * @param page                    分页参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-01 13:44:22
+     */
+    IPage<ComActEasyPhotoEvaluateVo> queryAllByLimit(@Param("dto") PageComActEasyPhotoEvaluateDto comActEasyPhotoEvaluate, Page page);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comActEasyPhotoEvaluate 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-01 13:44:22
+     */
+    List<ComActEasyPhotoEvaluateVo> queryAllByList(@Param("dto") PageComActEasyPhotoEvaluateDto comActEasyPhotoEvaluate);
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoFeedbackMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoFeedbackMapper.java
new file mode 100644
index 0000000..8a218a6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoFeedbackMapper.java
@@ -0,0 +1,29 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.common.model.vos.community.ComActEasyPhotoFeedbackVO;
+import com.panzhihua.service_community.model.dos.ComActEasyPhotoFeedbackDO;
+
+/**
+ * @auther lyq
+ * @create 2021-08-13 14:40:06
+ * @describe mapper类
+ */
+@Mapper
+public interface ComActEasyPhotoFeedbackMapper extends BaseMapper<ComActEasyPhotoFeedbackDO> {
+
+    List<ComActEasyPhotoFeedbackVO> getPhotoFeedbackList(@Param("easyId") Long easyId);
+
+    /**
+     * 获取人大代表反馈记录
+     * @param easyId
+     * @return
+     */
+
+    List<ComActEasyPhotoFeedbackVO> getPhotoFeedbackListForDpc(@Param("easyId") Long easyId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoHandlerMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoHandlerMapper.java
new file mode 100644
index 0000000..09eb958
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoHandlerMapper.java
@@ -0,0 +1,66 @@
+package com.panzhihua.service_community.dao;
+
+import com.panzhihua.service_community.entity.ComActEasyPhotoHandler;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.common.*;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import java.util.List;
+
+/**
+ * title: 随手拍、微心愿处理人绑定表表数据库访问层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 随手拍、微心愿处理人绑定表表数据库访问层
+ *
+ * @author lyq
+ * @date 2022-03-01 13:45:11
+ */
+@Mapper
+public interface ComActEasyPhotoHandlerMapper extends BaseMapper<ComActEasyPhotoHandler> {
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-01 13:45:11
+     */
+    ComActEasyPhotoHandlerVo queryById(Long id);
+
+    /**
+     * description  queryAllByLimit  分页查询
+     *
+     * @param comActEasyPhotoHandler 请求参数
+     * @param page                   分页参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-01 13:45:11
+     */
+    IPage<ComActEasyPhotoHandlerVo> queryAllByLimit(@Param("dto") PageComActEasyPhotoHandlerDto comActEasyPhotoHandler, Page page);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comActEasyPhotoHandler 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-01 13:45:11
+     */
+    List<ComActEasyPhotoHandlerVo> queryAllByList(@Param("dto") PageComActEasyPhotoHandlerDto comActEasyPhotoHandler);
+
+    /**
+     * 获取处理记录
+     * @param serviceId
+     * @param serviceType
+     * @return
+     */
+    List<ComActEasyPhotoHandlerVo> selectHandleRecord(@Param("serviceId") Long serviceId, @Param("serviceType") Integer serviceType);
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoMemberDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoMemberDao.java
new file mode 100644
index 0000000..7af61a5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoMemberDao.java
@@ -0,0 +1,30 @@
+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.property.CommonPage;
+import com.panzhihua.common.model.vos.community.easyPhoto.ComActEasyPhotoMemberVO;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComActEasyPhotoMember;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 随手拍网格员(ComActEasyPhotoMember)表数据库访问层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 随手拍网格员相关功能
+ *
+ * @author zzj
+ * @since 2022-04-12 10:33:24
+ */
+@Mapper
+public interface ComActEasyPhotoMemberDao extends BaseMapper<ComActEasyPhotoMember> {
+
+    /**
+     * 分页查询网格员列表
+     * @param page
+     * @param commonPage
+     * @return
+     */
+    IPage<ComActEasyPhotoMemberVO> pageList(Page page, @Param("commonPage")CommonPage commonPage);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoRewardMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoRewardMapper.java
new file mode 100644
index 0000000..72a9986
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoRewardMapper.java
@@ -0,0 +1,21 @@
+package com.panzhihua.service_community.dao;
+
+import java.math.BigDecimal;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_community.model.dos.ComActEasyPhotoRewardDO;
+
+/**
+ * @auther lyq
+ * @create 2021-07-23 14:30:03
+ * @describe 用户随手拍奖励表mapper类
+ */
+@Mapper
+public interface ComActEasyPhotoRewardMapper extends BaseMapper<ComActEasyPhotoRewardDO> {
+
+    BigDecimal getUserReward(@Param("userId") Long userId, @Param("communityId") Long communityId);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoUserDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoUserDAO.java
new file mode 100644
index 0000000..ee57c5b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEasyPhotoUserDAO.java
@@ -0,0 +1,15 @@
+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.ComActEasyPhotoUserDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 随手拍点赞
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-10 15:14
+ **/
+@Mapper
+public interface ComActEasyPhotoUserDAO extends BaseMapper<ComActEasyPhotoUserDO> {}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEnterpriseDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEnterpriseDAO.java
new file mode 100644
index 0000000..85644e5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEnterpriseDAO.java
@@ -0,0 +1,79 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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.enterprise.PageEnterpriseDTO;
+import com.panzhihua.common.model.vos.community.ComActEnterpriseVO;
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComActEnterprise;
+
+/**
+ * (ComActEnterprise)表数据库访问层
+ *
+ * @author makejava
+ * @since 2022-05-31 10:17:01
+ */
+@Mapper
+public interface ComActEnterpriseDAO extends BaseMapper<ComActEnterprise> {
+
+    /**
+     * 批量新增数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<ComActEnterprise> 实例对象列表
+     * @return 影响行数
+     */
+    int insertBatch(@Param("entities") List<ComActEnterprise> entities);
+
+    /**
+     * 批量新增或按主键更新数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<ComActEnterprise> 实例对象列表
+     * @return 影响行数
+     * @throws org.springframework.jdbc.BadSqlGrammarException
+     *             入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
+     */
+    int insertOrUpdateBatch(@Param("entities") List<ComActEnterprise> entities);
+
+    /**
+     * 获取社区企业详情
+     * @param id
+     * @return
+     */
+    ComActEnterpriseVO detailEnterprise(@Param("id") Long id);
+
+    /**
+     * 分页查询社区企业
+     * @param page
+     * @param pageEnterpriseDTO
+     * @return
+     */
+    IPage<ComActEnterpriseVO> pageEnterprise(@Param("page") Page page, @Param("pageEnterpriseDTO") PageEnterpriseDTO pageEnterpriseDTO);
+
+    /**
+     * 社区企业服务分类占比圆形图数据
+     * @param communityId
+     * @return
+     */
+    List<StatisticsCommVO> getEnterpriseServiceTypeCircleData(@Param("communityId") Long communityId);
+
+    /**
+     * 社区工作者年龄段占比圆形图数据
+     * @param communityId
+     * @return
+     */
+    List<StatisticsCommVO> getSocialWorkerAgeStageCircleData(@Param("communityId") Long communityId);
+
+    /**
+     * 社区工作者服务分类占比圆形图数据
+     * @param communityId
+     * @return
+     */
+    List<StatisticsCommVO> getSocialWorkerServiceTypeCircleData(@Param("communityId") Long communityId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEnterpriseTypeDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEnterpriseTypeDAO.java
new file mode 100644
index 0000000..348829c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActEnterpriseTypeDAO.java
@@ -0,0 +1,64 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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.enterprise.PageEnterpriseTypeDTO;
+import com.panzhihua.common.model.vos.community.ComActEnterpriseTypeVO;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComActEnterpriseType;
+
+/**
+ * (ComActEnterpriseType)表数据库访问层
+ *
+ * @author makejava
+ * @since 2022-06-06 15:30:47
+ */
+@Mapper
+public interface ComActEnterpriseTypeDAO extends BaseMapper<ComActEnterpriseType> {
+
+    /**
+     * 批量新增数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<ComActEnterpriseType> 实例对象列表
+     * @return 影响行数
+     */
+    int insertBatch(@Param("entities") List<ComActEnterpriseType> entities);
+
+    /**
+     * 批量新增或按主键更新数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<ComActEnterpriseType> 实例对象列表
+     * @return 影响行数
+     * @throws org.springframework.jdbc.BadSqlGrammarException
+     *             入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
+     */
+    int insertOrUpdateBatch(@Param("entities") List<ComActEnterpriseType> entities);
+
+    /**
+     * 获取服务分类详情
+     * @param id
+     * @return
+     */
+    ComActEnterpriseTypeVO detailEnterpriseType(@Param("id") Long id);
+
+    /**
+     * 分页查询服务分类
+     * @param page
+     * @param pageEnterpriseTypeDTO
+     * @return
+     */
+    IPage<ComActEnterpriseTypeVO> pageEnterpriseType(@Param("page") Page page, @Param("pageEnterpriseTypeDTO") PageEnterpriseTypeDTO pageEnterpriseTypeDTO);
+
+    /**
+     * 获取服务分类列表
+     * @param communityId
+     * @return
+     */
+    List<ComActEnterpriseTypeVO> getEnterpriseTypeList(@Param("communityId") Long communityId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActFourMemberDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActFourMemberDao.java
new file mode 100644
index 0000000..83f4f30
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActFourMemberDao.java
@@ -0,0 +1,78 @@
+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.property.CommonPage;
+import com.panzhihua.common.model.vos.community.ComActCommiteeVO;
+import com.panzhihua.common.model.vos.community.ComActFourMemberVO;
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenFourMemberStatisticsInfo;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComActFourMember;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * (ComActFourMember)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-09-23 10:13:30
+ */
+@Mapper
+public interface ComActFourMemberDao extends BaseMapper<ComActFourMember> {
+    /**
+     * 分页查询
+     * @param page
+     * @param commonPage
+     * @return
+     */
+    IPage<ComActFourMemberVO> pageList(Page page, @Param("commonPage")CommonPage commonPage);
+    ComActFourMemberVO getById(Long id);
+    ComActFourMemberVO getByIdVillage(Long id);
+
+    /**
+     * 获取四长四员基础数据
+     * @param communityId
+     * @return
+     */
+    BigScreenFourMemberStatisticsInfo getFourMemberBaseData(@Param("communityId") Long communityId);
+
+    /**
+     * 获取四长四员成员数据
+     * @param communityId
+     * @return
+     */
+    List<ComActFourMemberVO> getFourMembers(@Param("communityId") Long communityId);
+
+    /**
+     * 新增解决问题数统计
+     * @param communityId
+     * @return
+     */
+    List<StatisticsCommVO> retrieveJJWTAddPolylineData(@Param("communityId") Long communityId);
+
+    /**
+     * 累计解决问题数
+     * @param communityId
+     * @param date
+     * @return
+     */
+    StatisticsCommVO retrieveJJWTTotalPolylineData(@Param("communityId") Long communityId, @Param("date") String date);
+
+    /**
+     * 新增院落议事数统计
+     * @param communityId
+     * @return
+     */
+    List<StatisticsCommVO> retrieveYLYSAddPolylineData(@Param("communityId") Long communityId);
+
+    /**
+     * 累计院落议事数统计
+     * @param communityId
+     * @param date
+     * @return
+     */
+    StatisticsCommVO retrieveYLYSTotalPolylineData(@Param("communityId") Long communityId, @Param("date") String date);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActIntegralRuleMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActIntegralRuleMapper.java
new file mode 100644
index 0000000..4e2e909
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActIntegralRuleMapper.java
@@ -0,0 +1,50 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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.integral.admin.PageComActIntegralRuleDTO;
+import com.panzhihua.common.model.vos.community.integral.ComActIntegralUserRuleVO;
+import com.panzhihua.common.model.vos.community.integral.admin.ComActIntegralUserRuleAdminVO;
+import com.panzhihua.service_community.model.dos.ComActIntegralRuleDO;
+
+/**
+ * @auther lyq
+ * @create 2021-07-28 16:02:46
+ * @describe 积分规则表mapper类
+ */
+@Mapper
+public interface ComActIntegralRuleMapper extends BaseMapper<ComActIntegralRuleDO> {
+
+    /**
+     * 查询社区下积分任务列表
+     * 
+     * @param communityId
+     *            社区id
+     * @return 查询社区下积分任务列表
+     */
+    List<ComActIntegralUserRuleVO> getIntegralReceiveApplets(@Param("communityId") Long communityId);
+
+    /**
+     * 社区后台-根据社区id查询社区下积分规则列表
+     * 
+     * @param integralRuleDTO
+     *            请求参数
+     * @return 社区下积分规则列表
+     */
+    IPage<ComActIntegralUserRuleAdminVO> getIntegralRuleAdminList(Page page,
+        @Param("integralRuleDTO") PageComActIntegralRuleDTO integralRuleDTO);
+
+    /**
+     * 查询默认启动的积分规则列表
+     * 
+     * @return 默认积分规则列表
+     */
+    List<ComActIntegralRuleDO> getIntegralDefaultList();
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActIntegralUserChangeMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActIntegralUserChangeMapper.java
new file mode 100644
index 0000000..354c0bc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActIntegralUserChangeMapper.java
@@ -0,0 +1,16 @@
+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.ComActIntegralUserChangeDO;
+
+/**
+ * @auther lyq
+ * @create 2021-07-28 16:03:05
+ * @describe 用户积分账户变动记录mapper类
+ */
+@Mapper
+public interface ComActIntegralUserChangeMapper extends BaseMapper<ComActIntegralUserChangeDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActIntegralUserMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActIntegralUserMapper.java
new file mode 100644
index 0000000..d7248f6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActIntegralUserMapper.java
@@ -0,0 +1,73 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.integral.ComActIntegralUserVO;
+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.integral.ComActIntegralCommunityRankDTO;
+import com.panzhihua.common.model.vos.community.integral.ComActIntegralCommunityRankVO;
+import com.panzhihua.common.model.vos.community.integral.ComActIntegralUserListVO;
+import com.panzhihua.common.model.vos.community.integral.IntegralUserRankVO;
+import com.panzhihua.common.model.vos.community.integral.admin.ComActActivityPeopleVO;
+import com.panzhihua.service_community.model.dos.ComActIntegralUserDO;
+
+/**
+ * @auther lyq
+ * @create 2021-07-28 16:02:57
+ * @describe 用户积分账户表mapper类
+ */
+@Mapper
+public interface ComActIntegralUserMapper extends BaseMapper<ComActIntegralUserDO> {
+
+    /**
+     * 小程序-查询用户积分列表
+     * 
+     * @param userId
+     *            用户id
+     * @return 用户积分列表
+     */
+    List<ComActIntegralUserListVO> getIntegralUserListApplets(@Param("userId") Long userId);
+
+    /**
+     * 小程序-查询用户在当前社区积分排名
+     * 
+     * @param userId
+     *            用户id
+     * @param communityId
+     *            社区id
+     * @return 用户在当前社区积分排名
+     */
+    IntegralUserRankVO getIntegralUserRank(@Param("communityId") Long communityId, @Param("userId") Long userId);
+
+    /**
+     * 查询社区积分账户排行榜
+     * 
+     * @param communityRankDTO
+     *            请求参数
+     * @return 社区积分账户排行榜
+     */
+    IPage<ComActIntegralCommunityRankVO> getIntegralCommunityRankApplets(Page page,
+        @Param("communityRankDTO") ComActIntegralCommunityRankDTO communityRankDTO);
+
+    /**
+     * 根据社区活动id查询社区活动报名且未参与人员列表
+     * 
+     * @param activityId
+     *            活动id
+     * @return 社区活动报名且未参与人员列表
+     */
+    List<ComActActivityPeopleVO> getTaskActivityPeopleList(@Param("activityId") Long activityId);
+
+    /**
+     * 积分统计
+     * @param userId
+     * @param communityId
+     * @return
+     */
+    ComActIntegralUserVO getUserIntegralStatistics(@Param("userId") Long userId, @Param("communityId") Long communityId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActIntegralUserTradeMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActIntegralUserTradeMapper.java
new file mode 100644
index 0000000..ffa1444
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActIntegralUserTradeMapper.java
@@ -0,0 +1,63 @@
+package com.panzhihua.service_community.dao;
+
+import com.panzhihua.common.model.vos.community.integral.IntegralTradeVO;
+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.integral.ComActIntegralCommunityRankDTO;
+import com.panzhihua.common.model.dtos.community.integral.ComActIntegralCountDTO;
+import com.panzhihua.common.model.dtos.community.integral.admin.PageComActIntegralTradeDTO;
+import com.panzhihua.common.model.vos.community.integral.ComActIntegralCommunityTradeVO;
+import com.panzhihua.common.model.vos.community.integral.admin.ComActIntegralUserTradeAdminVO;
+import com.panzhihua.common.model.vos.community.integral.admin.IntegralUserVO;
+import com.panzhihua.service_community.model.dos.ComActIntegralUserTradeDO;
+
+/**
+ * @auther lyq
+ * @create 2021-07-28 16:03:18
+ * @describe 用户积分账户交易记录mapper类
+ */
+@Mapper
+public interface ComActIntegralUserTradeMapper extends BaseMapper<ComActIntegralUserTradeDO> {
+
+    /**
+     * 查询用户某个时间段交易数量
+     * 
+     * @param integralCountDTO
+     *            请求参数
+     * @return 交易数量
+     */
+    Integer getIntegralCount(@Param("integralCountDTO") ComActIntegralCountDTO integralCountDTO);
+
+    /**
+     * 小程序-查询用户社区积分明细
+     * 
+     * @param communityTradeDTO
+     *            请求参数
+     * @return 用户社区积分明细
+     */
+    IPage<ComActIntegralCommunityTradeVO> getIntegralCommunityTradeApplets(Page page,
+        @Param("communityTradeDTO") ComActIntegralCommunityRankDTO communityTradeDTO);
+
+    /**
+     * 社区后台-分页查询社区下积分明细记录
+     * 
+     * @param integralRuleDTO
+     *            请求参数
+     * @return 社区下积分明细记录
+     */
+    IPage<ComActIntegralUserTradeAdminVO> getIntegralTradeListAdmin(Page page,
+        @Param("integralRuleDTO") PageComActIntegralTradeDTO integralRuleDTO);
+
+    IntegralUserVO getUserInfo(@Param("userId") Long userId);
+
+    /**
+     * 获取积分详情
+     * @param id
+     * @return
+     */
+    IntegralTradeVO getUserIntegralDetail(@Param("id") Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMessageBackDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMessageBackDAO.java
new file mode 100644
index 0000000..99e261d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMessageBackDAO.java
@@ -0,0 +1,14 @@
+package com.panzhihua.service_community.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Update;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_community.model.dos.ComActMessageBackDO;
+
+@Mapper
+public interface ComActMessageBackDAO extends BaseMapper<ComActMessageBackDO> {
+    @Update("delete from com_act_message_back where msg_id=#{msgId}")
+    void deleteMsgBackByMsgId(@Param("msgId") Long msgId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMessageDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMessageDAO.java
new file mode 100644
index 0000000..1b9eec5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMessageDAO.java
@@ -0,0 +1,77 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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;
+import com.panzhihua.common.model.vos.community.ComActMessageBackVO;
+import com.panzhihua.common.model.vos.community.ComActMessageVO;
+import com.panzhihua.common.model.vos.community.PageComActMessageVO;
+import com.panzhihua.common.model.vos.partybuilding.ComPbServiceTeamVO;
+import com.panzhihua.common.model.vos.partybuilding.PartyCommitteeVO;
+import com.panzhihua.service_community.model.dos.ComActMessageDO;
+
+@Mapper
+public interface ComActMessageDAO extends BaseMapper<ComActMessageDO> {
+
+    @Select("select * from com_pb_member_role where id=#{id}")
+    PartyCommitteeVO selectPartyCommitteeById(@Param("id") Long id);
+
+    @Select("select * from com_pb_service_team where id=#{id}")
+    ComPbServiceTeamVO selectComPbServiceTeamById(@Param("id") Long id);
+
+    @Select("select * from com_act_message_back where msg_id=#{id} order by create_at desc")
+    List<ComActMessageBackVO> selectMsgBackList(@Param("id") Long id);
+
+    @Select("<script>" + "select * from com_act_message " + " where "
+        + " ((sendto_user_id in (select id from com_pb_member_role t1 where t1.phone=#{comActMessageVO.phone}) AND type = 2) "
+        + " or (sendto_user_id in (select id from com_pb_service_team t2 where t2.phone=#{comActMessageVO.phone}) AND type = 1) "
+        + " or (sendto_user_id in (select id from com_act_dpc t3 where t3.phone=#{comActMessageVO.phone}) AND type = 3)) "
+        + "<if test='comActMessageVO.status != null'>" + " and status=#{comActMessageVO.status} \n" + " </if> "
+        + " order by create_at desc" + "</script>")
+    IPage<PageComActMessageVO> pageSendMeMessageApplets(Page page,
+        @Param("comActMessageVO") ComActMessageVO comActMessageVO);
+
+    @Select("select * from com_act_message where user_id=#{comActMessageVO.userId}  order by create_at desc")
+    IPage<PageComActMessageVO> pageMyMessageApplets(Page page,
+        @Param("comActMessageVO") ComActMessageVO comActMessageVO);
+
+    @Select("select * from com_act_message where sendto_user_id=#{comActMessageVO.sendtoUserId} and ispublic=1 order by create_at desc ")
+    IPage<PageComActMessageVO> pageMessageByUserApplets(Page page,
+        @Param("comActMessageVO") ComActMessageVO comActMessageVO);
+
+    @Update("update com_act_message set ispublic=#{ispublic} where id=#{id}")
+    void updatePublic(@Param("ispublic") Integer ispublic, @Param("id") Long id);
+
+    @Select("<script> "
+        + "SELECT t.id,t.msg_content,t.photo_pah,t.phone,t.sendto_user_id,t.sendto_user_name,t.status,t.ispublic,"
+        + "t.user_id,t.user_account,t.user_name,t.user_phone,t.community_id,t.create_at,t.type, u.phone as userAccount \n"
+        + "FROM \n" + " com_act_message t LEFT JOIN sys_user u ON t.user_id = u.user_id "
+        + " where t.community_id = ${comActMessageVO.communityId}\n"
+        + "<if test='comActMessageVO.userAccount != null and comActMessageVO.userAccount.trim() != &quot;&quot;'>"
+        + " and u.phone=#{comActMessageVO.userAccount} \n" + " </if> "
+        + "<if test='comActMessageVO.userName != null and comActMessageVO.userName.trim() != &quot;&quot;'>"
+        + " and t.user_name=#{comActMessageVO.userName} \n" + " </if> "
+        + "<if test='comActMessageVO.userPhone != null and comActMessageVO.userPhone.trim() != &quot;&quot;'>"
+        + " and t.user_phone=#{comActMessageVO.userPhone} \n" + " </if> "
+        + "<if test='comActMessageVO.msgContent != null and comActMessageVO.msgContent.trim() != &quot;&quot;'>"
+        + " and t.msg_content like concat('%',#{comActMessageVO.msgContent},'%') \n" + " </if> "
+        + "<if test='comActMessageVO.status != null and comActMessageVO.status != 0'>"
+        + " and t.`status`=#{comActMessageVO.status} \n" + " </if> "
+        + "<if test='comActMessageVO.ispublic != null and comActMessageVO.ispublic != 0'>"
+        + " and t.ispublic=#{comActMessageVO.ispublic} \n" + " </if> "
+        + "<if test='comActMessageVO.sendtoUserName != null and comActMessageVO.sendtoUserName.trim() != &quot;&quot;'>"
+        + " and t.sendto_user_name=#{comActMessageVO.sendtoUserName} \n" + " </if> "
+        + "<if test='comActMessageVO.publishAtBegin != null '>"
+        + "AND t.create_at BETWEEN #{comActMessageVO.publishAtBegin} \n" + "AND #{comActMessageVO.publishAtEnd} \n"
+        + " </if> " + "<if test='comActMessageVO.type != null and comActMessageVO.type !=0'>"
+        + " AND t.type=#{comActMessageVO.type} \n" + " </if> " + " order by create_at desc" + "</script>")
+    IPage<PageComActMessageVO> pageMyCommunityMessageApplets(Page page,
+        @Param("comActMessageVO") ComActMessageVO comActMessageVO);
+}
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
new file mode 100644
index 0000000..4f09da4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMicroWishDAO.java
@@ -0,0 +1,303 @@
+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.PageBaseDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.work.ScreenMicroListDTO;
+import com.panzhihua.common.model.vos.community.ComActMicroWishVO;
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+import com.panzhihua.common.model.vos.community.TodoEventsVO;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenMicroWishStatisticsInfo;
+import com.panzhihua.common.model.vos.community.screen.work.MicroListVO;
+import com.panzhihua.common.model.vos.user.SysUserVO;
+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
+ * @description: 微心愿
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 14:27
+ **/
+@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, " +
+            "su1.`name` responsible_name, " +
+            "w.score, " +
+            "w.img_width, " +
+            "w.finish_at, " +
+            "w.aim_num, " +
+            "w.img_height, " +
+            "w.handle_id, " +
+            "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.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> " +
+            "<if test='comActMicroWishVO.sponsorName != null and comActMicroWishVO.sponsorName.trim() != &quot;&quot;'>" +
+            "AND u.name like concat(#{comActMicroWishVO.sponsorName},'%')   " +
+            " </if> " +
+            " </where>" +
+            " group by w.id   "+
+            "ORDER BY  w.create_at desc "+
+            "</script>")
+    IPage<ComActMicroWishVO> pageMicroWish(Page page, @Param("comActMicroWishVO") ComActMicroWishVO comActMicroWishVO);
+
+    /**
+     * 社区后台分页查询微心愿
+     * @param comActMicroWishVO 请求参数
+     * @return  微心愿列表
+     */
+    IPage<ComActMicroWishVO> pageMicroWishAdmin(Page page, @Param("comActMicroWishVO") ComActMicroWishVO comActMicroWishVO);
+
+    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.handle_id, " +
+//            "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 ")
+    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, finish_at, SYSDATE())>=72")
+    int updateStatusAutoConfirm();
+
+    @Select("select id from com_act_micro_wish where `status`=5 and TIMESTAMPDIFF(HOUR, finish_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);
+
+    @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);
+
+    /**
+     * 微心愿处理人列表
+     * @param communityId   社区id
+     * @param type  处理人类型(1.后台用户  2.党员  3.志愿者)
+     * @return  处理人列表
+     */
+    List<SysUserVO> getWishHandleListAdmin(@Param("type") Integer type,@Param("communityId") Long communityId);
+
+    SysUserVO getUserByUserId(@Param("userId") Long userId);
+
+    /**
+     * 待实现&已实现数目及占比
+     * @param communityId
+     * @return
+     */
+    List<StatisticsCommVO> selectRealizePercent(@Param("communityId") Long communityId);
+
+    /**
+     * 获取通过的微心愿图片
+     * @param communityId
+     * @param pageSize
+     * @return
+     */
+    List<String> getPassedAllImages(@Param("communityId") Long communityId, @Param("pageSize") Integer pageSize);
+
+    /**
+     * 首页二级页面-微心愿基础数据查询
+     * @param communityId
+     * @return
+     */
+    BigScreenMicroWishStatisticsInfo selectIndexMicroWishBaseData(@Param("communityId") Long communityId);
+
+    List<StatisticsCommVO> getMicroWishAddPolylineData(@Param("communityId") Long communityId);
+
+    StatisticsCommVO getMicroWishTotalPolylineDate(@Param("communityId") Long communityId, @Param("date") String date);
+
+    /**
+     * 微心愿大屏展示列表
+     * @param page
+     * @param pageBaseDTO
+     * @return
+     */
+    IPage<ComActMicroWishVO> selectScreenDisplayList(@Param("page") Page page, @Param("pageBaseDTO") PageBaseDTO pageBaseDTO);
+
+    /**
+     * 金沙定制页面-志愿线展示列表
+     * @param page
+     * @param pageBaseDTO
+     * @return
+     */
+    IPage<ComActMicroWishVO> pagePartyBuildIngMicroWish(@Param("page") Page page, @Param("pageBaseDTO") PageBaseDTO pageBaseDTO);
+
+    /**
+     * 金沙定制页面-四长四员解决问题展示列表
+     * @param page
+     * @param pageBaseDTO
+     * @return
+     */
+    IPage<ComActMicroWishVO> pageFourMemberResolve(@Param("page") Page page, @Param("pageBaseDTO") PageBaseDTO pageBaseDTO);
+}
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
new file mode 100644
index 0000000..7f12a59
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActMicroWishUserDAO.java
@@ -0,0 +1,18 @@
+package com.panzhihua.service_community.dao;
+
+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
+ * @description: 微心愿点赞
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-10 16:19
+ **/
+@Mapper
+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/ComActNeighborCircleBrowseDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleBrowseDAO.java
new file mode 100644
index 0000000..f9e7cc6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleBrowseDAO.java
@@ -0,0 +1,16 @@
+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.ComActNeighborCircleBrowseDO;
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 13:40:53
+ * @describe 邻里圈浏览记录表mapper类
+ */
+@Mapper
+public interface ComActNeighborCircleBrowseDAO extends BaseMapper<ComActNeighborCircleBrowseDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleBrowseWestDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleBrowseWestDAO.java
new file mode 100644
index 0000000..8a4a18e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleBrowseWestDAO.java
@@ -0,0 +1,16 @@
+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.ComActNeighborCircleBrowseWestDO;
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 13:40:53
+ * @describe 邻里圈浏览记录表mapper类
+ */
+@Mapper
+public interface ComActNeighborCircleBrowseWestDAO extends BaseMapper<ComActNeighborCircleBrowseWestDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleCommentDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleCommentDAO.java
new file mode 100644
index 0000000..fee9511
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleCommentDAO.java
@@ -0,0 +1,41 @@
+package com.panzhihua.service_community.dao;
+
+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;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.neighbor.ComActNeighborCircleDetailAppDTO;
+import com.panzhihua.common.model.dtos.neighbor.DetailNeighborAllCommentByAdminDTO;
+import com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleCommentAppVO;
+import com.panzhihua.common.model.vos.neighbor.ComActNeighborCommentByAdminVO;
+import com.panzhihua.service_community.model.dos.ComActNeighborCircleCommentDO;
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 09:21:33
+ * @describe 邻里圈评论表mapper类
+ */
+@Mapper
+public interface ComActNeighborCircleCommentDAO extends BaseMapper<ComActNeighborCircleCommentDO> {
+
+    @Select("<script> " + "select cancc.id,cancc.circle_id,cancc.user_id,cancc.content,cancc.fabulous_num"
+        + ",cancc.create_at,cancc.is_release,su.nick_name as userName,su.image_url as userHeadUrl "
+        + " from com_act_neighbor_circle_comment as cancc " + " left join sys_user as su on su.user_id = cancc.user_id"
+        + " where cancc.circle_id = #{neighborCircleAppDTO.circleId} and cancc.status = 1"
+        + "<if test='neighborCircleAppDTO.order != null and neighborCircleAppDTO.order == 1'>"
+        + " order by cancc.create_at desc" + " </if> "
+        + "<if test='neighborCircleAppDTO.order != null and neighborCircleAppDTO.order == 2'>"
+        + " order by cancc.create_at asc" + " </if> " + " </script>")
+    IPage<ComActNeighborCircleCommentAppVO> pageNeighborCommentByApp(Page page,
+        @Param("neighborCircleAppDTO") ComActNeighborCircleDetailAppDTO neighborCircleAppDTO);
+
+    @Select("<script> "
+        + "select nc.*,u.nick_name as userName,u.phone as userPhone from com_act_neighbor_circle_comment nc left join sys_user u on nc.user_id=u.user_id  "
+        + "<where>" + "<if test='dto.id != null and dto.id!= 0l'>" + "nc.circle_id = #{dto.id}" + " </if> " + "</where>"
+        + " ORDER BY create_at" + "</script>")
+    IPage<ComActNeighborCommentByAdminVO> selectPageDetailNeighborComment(Page page,
+        @Param("dto") DetailNeighborAllCommentByAdminDTO dto);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleCommentReplyDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleCommentReplyDAO.java
new file mode 100644
index 0000000..b8520f6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleCommentReplyDAO.java
@@ -0,0 +1,40 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.neighbor.DetailNeighborCommentReplyByAdminDTO;
+import com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleCommentReplyAppVO;
+import com.panzhihua.common.model.vos.neighbor.ComActNeighborCommentReplyByAdminVO;
+import com.panzhihua.service_community.model.dos.ComActNeighborCircleCommentReplyDO;
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 09:21:45
+ * @describe 邻里圈评论回复表mapper类
+ */
+@Mapper
+public interface ComActNeighborCircleCommentReplyDAO extends BaseMapper<ComActNeighborCircleCommentReplyDO> {
+
+    @Select("<script> " + "select reply.id,reply.comment_id, reply.reply_content,reply.fabulous_num "
+        + ",reply.create_at,reply.is_release,su1.nick_name as userName "
+        + ",su1.image_url as userHeadUrl,su2.nick_name as parentUserName "
+        + " from com_act_neighbor_circle_comment_reply as reply"
+        + " left join sys_user su1 on su1.user_id = reply.user_id "
+        + " left join sys_user su2 on su2.user_id = reply.parent_user_id "
+        + " where reply.status = 1 and reply.comment_id = #{commentId} order by create_at desc" + " </script>")
+    List<ComActNeighborCircleCommentReplyAppVO> getCircleCommentReplyList(@Param("commentId") Long commentId);
+
+    @Select("<script> "
+        + "select cr.*,u.name as userName,u.phone as userPhone,u.nick_name as userNickName  from com_act_neighbor_circle_comment_reply cr left join sys_user u on cr.user_id=u.user_id  "
+        + "<where>" + "<if test='dto.id != null and dto.id!= 0l'>" + "cr.comment_id = #{dto.id}" + " </if> "
+        + "</where>" + " ORDER BY cr.create_at" + "</script>")
+    Page<ComActNeighborCommentReplyByAdminVO> selectListByComment(Page page,
+        @Param("dto") DetailNeighborCommentReplyByAdminDTO dto);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleCommentReplyWestDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleCommentReplyWestDAO.java
new file mode 100644
index 0000000..3a2fd4e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleCommentReplyWestDAO.java
@@ -0,0 +1,40 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.neighbor.DetailNeighborCommentReplyByAdminDTO;
+import com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleCommentReplyAppVO;
+import com.panzhihua.common.model.vos.neighbor.ComActNeighborCommentReplyByAdminVO;
+import com.panzhihua.service_community.model.dos.ComActNeighborCircleCommentReplyWestDO;
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 09:21:45
+ * @describe 邻里圈评论回复表mapper类
+ */
+@Mapper
+public interface ComActNeighborCircleCommentReplyWestDAO extends BaseMapper<ComActNeighborCircleCommentReplyWestDO> {
+
+//    @Select("<script> " + "select reply.id,reply.comment_id, reply.reply_content,reply.fabulous_num "
+//        + ",reply.create_at,reply.is_release,su1.nick_name as userName "
+//        + ",su1.image_url as userHeadUrl,su2.nick_name as parentUserName "
+//        + " from com_act_neighbor_circle_comment_reply as reply"
+//        + " left join sys_user su1 on su1.user_id = reply.user_id "
+//        + " left join sys_user su2 on su2.user_id = reply.parent_user_id "
+//        + " where reply.status = 1 and reply.comment_id = #{commentId} order by create_at desc" + " </script>")
+    List<ComActNeighborCircleCommentReplyAppVO> getCircleCommentReplyList(@Param("commentId") Long commentId);
+
+//    @Select("<script> "
+//        + "select cr.*,u.name as userName,u.phone as userPhone,u.nick_name as userNickName  from com_act_neighbor_circle_comment_reply cr left join sys_user u on cr.user_id=u.user_id  "
+//        + "<where>" + "<if test='dto.id != null and dto.id!= 0l'>" + "cr.comment_id = #{dto.id}" + " </if> "
+//        + "</where>" + " ORDER BY cr.create_at" + "</script>")
+    Page<ComActNeighborCommentReplyByAdminVO> selectListByComment(Page page,
+        @Param("dto") DetailNeighborCommentReplyByAdminDTO dto);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleCommentWestDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleCommentWestDAO.java
new file mode 100644
index 0000000..2f8c6ac
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleCommentWestDAO.java
@@ -0,0 +1,44 @@
+package com.panzhihua.service_community.dao;
+
+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;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.neighbor.ComActNeighborCircleDetailAppDTO;
+import com.panzhihua.common.model.dtos.neighbor.DetailNeighborAllCommentByAdminDTO;
+import com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleCommentAppVO;
+import com.panzhihua.common.model.vos.neighbor.ComActNeighborCommentByAdminVO;
+import com.panzhihua.service_community.model.dos.ComActNeighborCircleCommentWestDO;
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 09:21:33
+ * @describe 邻里圈评论表mapper类
+ */
+@Mapper
+public interface ComActNeighborCircleCommentWestDAO extends BaseMapper<ComActNeighborCircleCommentWestDO> {
+
+//    @Select("<script> " + "select cancc.id,cancc.circle_id,cancc.user_id,cancc.content,cancc.fabulous_num"
+//        + ",cancc.create_at,cancc.is_release,su.nick_name as userName,su.image_url as userHeadUrl "
+//        + " from com_act_neighbor_circle_comment as cancc " + " left join sys_user as su on su.user_id = cancc.user_id"
+//        + " where cancc.circle_id = #{neighborCircleAppDTO.circleId} and cancc.status = 1"
+//        + "<if test='neighborCircleAppDTO.order != null and neighborCircleAppDTO.order == 1'>"
+//        + " order by cancc.create_at desc" + " </if> "
+//        + "<if test='neighborCircleAppDTO.order != null and neighborCircleAppDTO.order == 2'>"
+//        + " order by cancc.create_at asc" + " </if> " + " </script>")
+    IPage<ComActNeighborCircleCommentAppVO> pageNeighborCommentByApp(Page page,
+        @Param("neighborCircleAppDTO") ComActNeighborCircleDetailAppDTO neighborCircleAppDTO);
+
+
+//    @Select("<script> "
+//        + "select nc.*,u.nick_name as userName,u.phone as userPhone from com_act_neighbor_circle_comment nc left join sys_user u on nc.user_id=u.user_id  "
+//        + "<where>" + "<if test='dto.id != null and dto.id!= 0l'>" + "nc.circle_id = #{dto.id}" + " </if> " + "</where>"
+//        + " ORDER BY create_at" + "</script>")
+    IPage<ComActNeighborCommentByAdminVO> selectPageDetailNeighborComment(Page page,
+        @Param("dto") DetailNeighborAllCommentByAdminDTO dto);
+
+
+}
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
new file mode 100644
index 0000000..e3d63e9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleDAO.java
@@ -0,0 +1,247 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+import java.util.Map;
+
+import com.panzhihua.common.model.dtos.PageBaseDTO;
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+import com.panzhihua.common.model.vos.neighbor.*;
+import com.panzhihua.service_community.entity.NewFightNeedProblemClaim;
+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;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.neighbor.ComActNeighborCircleAdminDTO;
+import com.panzhihua.common.model.dtos.neighbor.ComActNeighborCircleAppDTO;
+import com.panzhihua.common.model.vos.screen.CarouselInfoVO;
+import com.panzhihua.common.model.vos.screen.PieElementVO;
+import com.panzhihua.common.model.vos.user.AdministratorsUserVO;
+import com.panzhihua.service_community.model.dos.ComActNeighborCircleDO;
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 09:20:49
+ * @describe 邻里圈表mapper类
+ */
+@Mapper
+public interface ComActNeighborCircleDAO extends BaseMapper<ComActNeighborCircleDO> {
+
+
+    /**
+     * 分页查询邻里圈列表
+     * @param neighborCircleAppDTO  请求参数
+     * @return  邻里圈列表
+     */
+    IPage<ComActNeighborCircleAppVO> pageNeighborByApp(Page page, @Param("neighborCircleAppDTO") ComActNeighborCircleAppDTO neighborCircleAppDTO);
+
+    /**
+     * 分页查询邻里圈列表
+     * @param neighborCircleAppDTO  请求参数
+     * @return  邻里圈列表
+     */
+    IPage<ComActNeighborCircleAppVO> selectSolve(Page page, @Param("neighborCircleAppDTO") ComActNeighborCircleAppDTO neighborCircleAppDTO);
+
+    ComActNeighborCircleDetailAppVO neighborDetailByApp(@Param("circleId") Long circleId);
+
+
+    IPage<ComActNeighborCircleAdminVO> pageNeighborByAdmin(Page page,@Param("neighborCircleAdminDTO") ComActNeighborCircleAdminDTO neighborCircleAdminDTO);
+
+    /**
+     * 大屏清单查询
+     * @param page
+     * @param neighborCircleAdminDTO
+     * @return
+     */
+    IPage<ComActNeighborCircleAdminVO> pageNeighborByBigScreen(Page page,@Param("neighborCircleAdminDTO") ComActNeighborCircleAdminDTO neighborCircleAdminDTO);
+
+    @Select("select * from sys_user where user_id=#{userId}")
+    AdministratorsUserVO selectUserByUserId(@Param("userId") Long userId);
+
+    @Select("<script> "
+        + "select canc.id,canc.release_content,canc.release_images,canc.status,canc.create_at,canct.name as topicName"
+        + ",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.is_del = 2 and canc.belong_type = #{belongType} and canc.status != 3 order by create_at desc" + " </script>")
+    IPage<ComActNeighborCircleAppVO> neighborExamineByApp(Page page, @Param("userId") Long userId,@Param("belongType") Integer belongType);
+
+    @Select("select reply.id,reply.comment_id,reply.reply_content,reply.fabulous_num,reply.create_at"
+        + ",reply.is_release,su.nick_name as userName,su.image_url as userHeadUrl,su1.nick_name as oldUserName"
+        + " from com_act_neighbor_circle_comment_reply as reply"
+        + " left join sys_user as su on su.user_id = reply.user_id"
+        + " left join sys_user as su1 on su1.user_id = reply.parent_user_id"
+        + " where reply.comment_id = #{commentId} and reply.status = 1")
+    IPage<ComActNeighborCommentReplyAppVO> neighborCommentReplyByApp(Page page, @Param("commentId") Long commentId);
+
+    @Select("SELECT id,release_content as content FROM com_act_neighbor_circle WHERE community_id = ${communityId} and belong_type = 1 and status = 2 ORDER BY create_at DESC limit #{pageSize}")
+    List<CarouselInfoVO> screenNeighborCircle(@Param("communityId") Long communityId,
+        @Param("pageSize") Integer pageSize);
+
+    @Select(" SELECT COUNT(id) AS totalNum,"
+        + " (SELECT COUNT(id) FROM com_act_neighbor_circle WHERE  community_id = ${communityId} and belong_type = 1 AND status = 2 AND create_at LIKE CONCAT(#{nowDate},'%')) AS currentNum "
+        + "  FROM com_act_neighbor_circle WHERE community_id = ${communityId} AND status = 2")
+    Map<String, Long> countByCommunityId(@Param("communityId") Long communityId, @Param("nowDate") String nowDate);
+
+    @Select("SELECT SUM(comment_num) as commentNum,SUM(fabulous_num) as fabulousNum,SUM(forward_num) as forwardNum FROM com_act_neighbor_circle WHERE  community_id = ${communityId} and belong_type = 1 and status = 2 ")
+    Map<String, Object> sumScreenNum(@Param("communityId") Long communityId);
+
+    @Select("SELECT release_images FROM com_act_neighbor_circle WHERE  community_id = ${communityId} and belong_type = 1 and status = 2 order by create_at desc limit #{pageSize}")
+    List<String> screenNeighborCircleImgs(@Param("communityId") Long communityId, @Param("pageSize") Integer pageSize);
+
+    @Select("SELECT COUNT(id) as num,'随手拍' as name FROM com_act_easy_photo WHERE community_id = ${communityId} AND STATUS = 4 "
+        + "UNION ALL "
+        + "SELECT COUNT(id) as num,'微心愿' as name FROM com_act_micro_wish WHERE community_id = ${communityId} AND STATUS = 6 "
+        + "UNION ALL "
+        + "SELECT COUNT(id) as num,'一起议' as name FROM com_act_discuss WHERE community_id = ${communityId} "
+        + "UNION ALL "
+        + "SELECT COUNT(id) as num,'邻里圈' as name FROM com_act_neighbor_circle WHERE community_id = ${communityId} AND STATUS = 2 and belong_type = 1 "
+        + "UNION ALL "
+        + "SELECT COUNT( e.id ) AS num,'网格事件' AS name FROM `event` as e left join event_grid_data as egd on egd.id = e.grid_id WHERE egd.grid_community_id = ${communityId} AND e.event_process_status = 2 "
+        + "UNION ALL "
+        + "SELECT COUNT(id) as num,'社区活动' as name FROM com_act_activity WHERE community_id = ${communityId} AND STATUS = 5 ")
+    List<PieElementVO> countAllCompletedWorkByCommunityId(@Param("communityId") Long communityId);
+
+    @Select("SELECT COUNT(id) as num,'随手拍' as name FROM com_act_easy_photo WHERE community_id = ${communityId} AND (STATUS = 1 or STATUS = 2)  "
+        + "UNION ALL "
+        + "SELECT COUNT(id) as num,'微心愿' as name FROM com_act_micro_wish WHERE community_id = ${communityId} AND (STATUS = 1 or STATUS = 2 or STATUS = 3 or STATUS = 4) "
+        + "UNION ALL "
+        + "SELECT COUNT(id) as num,'一起议' as name FROM com_act_discuss WHERE community_id = ${communityId} "
+        + "UNION ALL "
+        + "SELECT COUNT(id) as num,'邻里圈' as name FROM com_act_neighbor_circle WHERE community_id = ${communityId} AND STATUS = 1 and belong_type = 1 "
+        + "UNION ALL "
+        + "SELECT COUNT( e.id ) AS num,'网格事件' AS NAME FROM `event` as e left join event_grid_data as egd on egd.id = e.grid_id WHERE egd.grid_community_id = ${communityId} AND e.event_status = 2 and e.event_deal_status in (1,2,3) "
+        + "UNION ALL "
+        + "SELECT COUNT(id),'社区活动' as name FROM com_act_activity WHERE community_id = ${communityId} AND (STATUS = 1 or STATUS = 2 or STATUS = 3 or STATUS = 4)  ")
+    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);
+
+    void addHotNum(@Param("circleId") Long circleId,@Param("hotNum") Long hotNum);
+
+    void addTopicHotNum(@Param("circleId") Long circleId,@Param("hotNum") Long hotNum);
+
+    /**
+     * 获取大屏邻里圈展示图片
+     * @param communityId
+     * @param pageSize
+     * @return
+     */
+    List<String> getAllImages(@Param("communityId") Long communityId, @Param("pageSize") Integer pageSize);
+
+    /**
+     * 获取大屏邻里圈展示文本内容
+     * @param communityId
+     * @param pageSize
+     * @return
+     */
+    List<String> getContents(@Param("communityId") Long communityId, @Param("pageSize") Integer pageSize);
+
+    List<StatisticsCommVO> getIndexNeighborBaseData(@Param("communityId") Long communityId);
+
+    List<StatisticsCommVO> getNeighborAddPolylineData(@Param("communityId") Long communityId);
+
+    StatisticsCommVO getNeighborTotalPolylineDate(@Param("communityId") Long communityId, @Param("date") String date);
+
+    IPage<ComActNeighborCircleAdminVO> indexNeighborList(@Param("page") Page page, @Param("pageBaseDTO") PageBaseDTO pageBaseDTO);
+
+    ServiceStaticsVO selectStatsCheckUnit(@Param("checkUnitId") Long checkUnitId,@Param("date")String date);
+
+    ServiceStaticsVO selectStatsUser(@Param("phone") String phone,@Param("checkUnitId")String checkUnitId, @Param("date")String date);
+
+    List<ComActNeighborCircleAppVO> selectListByCheckUnitId(@Param("checkUnitId")Long checkUnitId,@Param("date")String date);
+
+    List<ComActNeighborCircleAppVO> selectListByPhone(@Param("phone")String phone,@Param("date")String date);
+
+    /**
+     * 单位服务统计
+     */
+    List<UnitActivityAnalysisVO> institutionalUnitServiceAnalysis(@Param("beginTime") String beginTime,
+                                                                  @Param("endTime") String endTIme,
+                                                                  @Param("belongTo") String belongTo,
+                                                                  @Param("communityId") Long communityId,
+                                                                  @Param("unitId") Long unitId);
+
+    List<UnitActivityAnalysisVO> getNewTaskList(@Param("beginTime") String beginTime,
+                                                @Param("endTime") String endTIme,
+                                                @Param("belongTo") String belongTo,
+                                                @Param("communityId") Long communityId);
+
+    List<UnitActivityAnalysisVO> institutionalUnitActivityAnalysis(@Param("beginTime") String beginTime,
+                                                                   @Param("endTime") String endTIme,
+                                                                   @Param("belongTo") String belongTo,
+                                                                   @Param("communityId") Long communityId,
+                                                                   @Param("unitId") Long unitId);
+
+    List<PartyMemberAnalysisVO> getNewPartyMemberTaskList(@Param("beginTime") String beginTime,
+                                                            @Param("endTime") String endTIme,
+                                                            @Param("belongTo") String belongTo,
+                                                            @Param("communityId") Long communityId,
+                                                            @Param("unitId") Long unitId,
+                                                            @Param("searchContent") String searchContent
+                                                            );
+    List<PartyMemberAnalysisVO> institutionalPartyMemberServiceAnalysis(@Param("beginTime") String beginTime,
+                                                                        @Param("endTime") String endTIme,
+                                                                        @Param("belongTo") String belongTo,
+                                                                        @Param("communityId") Long communityId,
+                                                                        @Param("unitId") Long unitId,
+                                                                        @Param("searchContent") String searchContent
+                                                                        );
+    List<PartyMemberAnalysisVO> institutionalPartyMemberActAnalysis(@Param("beginTime") String beginTime,
+                                                                    @Param("endTime") String endTIme,
+                                                                    @Param("belongTo") String belongTo,
+                                                                    @Param("communityId") Long communityId,
+                                                                    @Param("unitId") Long unitId,
+                                                                    @Param("searchContent") String searchContent);
+    List<PartyMemberAnalysisVO> institutionalPartyMemberServiceAnalysisByServicesTimes(@Param("beginTime") String beginTime, @Param("endTime") String endTIme, @Param("belongTo") String belongTo);
+
+    /**
+     * 查询我的问题数量
+     * @param type
+     * @param phone
+     * @return
+     */
+    Integer selectCount(@Param("type") Integer type,@Param("phone") String phone,@Param("communityId") Long communityId);
+
+    /**
+     * 分页查询可关联清单列表
+     * @param neighborCircleAppDTO
+     * @return
+     */
+    IPage<ComActNeighborCircleAppVO> pageRelationList(@Param("userPage") Page userPage, @Param("neighborCircleAppDTO") ComActNeighborCircleAppDTO neighborCircleAppDTO);
+
+    /**
+     * 单位获取服务明细
+     * @param checkUnitId
+     * @param date
+     * @param serviceType
+     * @return
+     */
+    List<ServiceDetailStaticsVO> selectServiceDetailList(@Param("checkUnitId") Long checkUnitId, @Param("date") String date, @Param("serviceType") Integer serviceType);
+
+    /**
+     * 个人获取服务明细
+     * @param checkUnitId
+     * @param phone
+     * @param date
+     * @param serviceType
+     * @return
+     */
+    List<ServiceDetailStaticsVO> selectServiceDetailListForPersonal(@Param("checkUnitId") Long checkUnitId, @Param("phone") String phone, @Param("date") String date, @Param("serviceType") Integer serviceType);
+
+
+    /**
+     * 根据手机好查询用户完成清单任务
+     * @param phone
+     * @return
+     */
+    List<NewFightNeedProblemClaim> getNewServiceNum(@Param("phone") String phone,@Param("unitId") String unitId);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleFabulousDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleFabulousDAO.java
new file mode 100644
index 0000000..201e9da
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleFabulousDAO.java
@@ -0,0 +1,16 @@
+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.ComActNeighborCircleFabulousDO;
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 09:21:55
+ * @describe 邻里圈点赞表mapper类
+ */
+@Mapper
+public interface ComActNeighborCircleFabulousDAO extends BaseMapper<ComActNeighborCircleFabulousDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleFabulousWestDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleFabulousWestDAO.java
new file mode 100644
index 0000000..1906c71
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleFabulousWestDAO.java
@@ -0,0 +1,16 @@
+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.ComActNeighborCircleFabulousWestDO;
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 09:21:55
+ * @describe 邻里圈点赞表mapper类
+ */
+@Mapper
+public interface ComActNeighborCircleFabulousWestDAO extends BaseMapper<ComActNeighborCircleFabulousWestDO> {
+
+}
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
new file mode 100644
index 0000000..384cbe7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleTopicMapper.java
@@ -0,0 +1,53 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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.neighbor.ComActNeighborCircleTopicAdminDTO;
+import com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleTopicAdminVO;
+import com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleTopicAppVO;
+import com.panzhihua.service_community.model.dos.ComActNeighborCircleTopicDO;
+
+/**
+ * @auther lyq
+ * @create 2021-07-06 15:04:37
+ * @describe 邻里圈话题表mapper类
+ */
+@Mapper
+public interface ComActNeighborCircleTopicMapper extends BaseMapper<ComActNeighborCircleTopicDO> {
+
+    /**
+     * 分页查询邻里圈话题列表
+     *
+     * @param circleTopicAdminDTO
+     *            请求参数
+     * @return 邻里圈话题列表
+     */
+    IPage<ComActNeighborCircleTopicAdminVO> pageNeighborTopicByAdmin(Page page,
+        @Param("circleTopicAdminDTO") ComActNeighborCircleTopicAdminDTO circleTopicAdminDTO);
+
+    /**
+     * 小程序查询邻里圈话题列表
+     *            社区id
+     * @return 邻里圈话题列表
+     */
+    List<ComActNeighborCircleTopicAppVO> getNeighborTopicByApp(@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/ComActNeighborCircleTopicNewMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleTopicNewMapper.java
new file mode 100644
index 0000000..ebea007
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleTopicNewMapper.java
@@ -0,0 +1,15 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleTopicAppVO;
+import com.panzhihua.service_community.entity.ComActNeighborCircleTopicNew;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface ComActNeighborCircleTopicNewMapper extends BaseMapper<ComActNeighborCircleTopicNew> {
+
+    List<ComActNeighborCircleTopicAppVO> getNeighborTopicByAppNew(@Param("name") String name);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleTopicWestMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleTopicWestMapper.java
new file mode 100644
index 0000000..ae15cf1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleTopicWestMapper.java
@@ -0,0 +1,55 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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.neighbor.ComActNeighborCircleTopicAdminDTO;
+import com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleTopicAdminVO;
+import com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleTopicAppVO;
+import com.panzhihua.service_community.model.dos.ComActNeighborCircleTopicWestDO;
+
+/**
+ * @auther lyq
+ * @create 2021-07-06 15:04:37
+ * @describe 邻里圈话题表mapper类
+ */
+@Mapper
+public interface ComActNeighborCircleTopicWestMapper extends BaseMapper<ComActNeighborCircleTopicWestDO> {
+
+    /**
+     * 分页查询邻里圈话题列表
+     * 
+     * @param circleTopicAdminDTO
+     *            请求参数
+     * @return 邻里圈话题列表
+     */
+    IPage<ComActNeighborCircleTopicAdminVO> pageNeighborTopicByAdmin(Page page,
+        @Param("circleTopicAdminDTO") ComActNeighborCircleTopicAdminDTO circleTopicAdminDTO);
+
+    /**
+     * 小程序查询邻里圈话题列表
+     * 
+     * @param communityId
+     *            社区id
+     * @return 邻里圈话题列表
+     */
+    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/ComActNeighborCircleWestDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleWestDAO.java
new file mode 100644
index 0000000..2b7da6b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActNeighborCircleWestDAO.java
@@ -0,0 +1,145 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+import java.util.Map;
+
+import com.panzhihua.common.model.dtos.PageBaseDTO;
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+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;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.neighbor.ComActNeighborCircleAdminDTO;
+import com.panzhihua.common.model.dtos.neighbor.ComActNeighborCircleAppDTO;
+import com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleAdminVO;
+import com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleAppVO;
+import com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleDetailAppVO;
+import com.panzhihua.common.model.vos.neighbor.ComActNeighborCommentReplyAppVO;
+import com.panzhihua.common.model.vos.screen.CarouselInfoVO;
+import com.panzhihua.common.model.vos.screen.PieElementVO;
+import com.panzhihua.common.model.vos.user.AdministratorsUserVO;
+import com.panzhihua.service_community.model.dos.ComActNeighborCircleWestDO;
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 09:20:49
+ * @describe 邻里圈表mapper类
+ */
+@Mapper
+public interface ComActNeighborCircleWestDAO extends BaseMapper<ComActNeighborCircleWestDO> {
+
+
+    /**
+     * 分页查询邻里圈列表
+     * @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.refuse_reason "
+        + ",canc.is_boutique,canc.create_at,canc.reply_at,su.community_id,canc.type from com_act_neighbor_circle_west 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} and canc.is_del = 2"
+        + " </script>")
+    ComActNeighborCircleDetailAppVO neighborDetailByApp(@Param("circleId") Long circleId);
+
+    IPage<ComActNeighborCircleAdminVO> pageNeighborByAdmin(Page page,@Param("neighborCircleAdminDTO") ComActNeighborCircleAdminDTO neighborCircleAdminDTO);
+
+    @Select("select * from sys_user where user_id=#{userId}")
+    AdministratorsUserVO selectUserByUserId(@Param("userId") Long userId);
+
+    @Select("<script> "
+        + "select canc.id,canc.release_content,canc.release_images,canc.status,canc.create_at,canct.name as topicName"
+        + ",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_west 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.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"
+        + ",reply.is_release,su.nick_name as userName,su.image_url as userHeadUrl,su1.nick_name as oldUserName"
+        + " from com_act_neighbor_circle_comment_reply as reply"
+        + " left join sys_user as su on su.user_id = reply.user_id"
+        + " left join sys_user as su1 on su1.user_id = reply.parent_user_id"
+        + " where reply.comment_id = #{commentId} and reply.status = 1")
+    IPage<ComActNeighborCommentReplyAppVO> neighborCommentReplyByApp(Page page, @Param("commentId") Long commentId);
+
+    @Select("SELECT id,release_content as content FROM com_act_neighbor_circle_west WHERE community_id = ${communityId} and status = 2 ORDER BY create_at DESC limit #{pageSize}")
+    List<CarouselInfoVO> screenNeighborCircle(@Param("communityId") Long communityId,
+        @Param("pageSize") Integer pageSize);
+
+    @Select(" SELECT COUNT(id) AS totalNum,"
+        + " (SELECT COUNT(id) FROM com_act_neighbor_circle_west WHERE  community_id = ${communityId} AND status = 2 AND create_at LIKE CONCAT(#{nowDate},'%')) AS currentNum "
+        + "  FROM com_act_neighbor_circle_west WHERE community_id = ${communityId} AND status = 2")
+    Map<String, Long> countByCommunityId(@Param("communityId") Long communityId, @Param("nowDate") String nowDate);
+
+    @Select("SELECT SUM(comment_num) as commentNum,SUM(fabulous_num) as fabulousNum,SUM(forward_num) as forwardNum FROM com_act_neighbor_circle_west WHERE  community_id = ${communityId} and status = 2 ")
+    Map<String, Object> sumScreenNum(@Param("communityId") Long communityId);
+
+    @Select("SELECT release_images FROM com_act_neighbor_circle_west WHERE  community_id = ${communityId} and status = 2 order by create_at desc limit #{pageSize}")
+    List<String> screenNeighborCircleImgs(@Param("communityId") Long communityId, @Param("pageSize") Integer pageSize);
+
+    @Select("SELECT COUNT(id) as num,'随手拍' as name FROM com_act_easy_photo WHERE community_id = ${communityId} AND STATUS = 4 "
+        + "UNION ALL "
+        + "SELECT COUNT(id) as num,'微心愿' as name FROM com_act_micro_wish WHERE community_id = ${communityId} AND STATUS = 6 "
+        + "UNION ALL "
+        + "SELECT COUNT(id) as num,'一起议' as name FROM com_act_discuss WHERE community_id = ${communityId} "
+        + "UNION ALL "
+        + "SELECT COUNT(id) as num,'邻里圈' as name FROM com_act_neighbor_circle_west WHERE community_id = ${communityId} AND STATUS = 2 "
+        + "UNION ALL "
+        + "SELECT COUNT( e.id ) AS num,'网格事件' AS name FROM `event` as e left join event_grid_data as egd on egd.id = e.grid_id WHERE egd.grid_community_id = ${communityId} AND e.event_process_status = 2 "
+        + "UNION ALL "
+        + "SELECT COUNT(id) as num,'社区活动' as name FROM com_act_activity WHERE community_id = ${communityId} AND STATUS = 5 ")
+    List<PieElementVO> countAllCompletedWorkByCommunityId(@Param("communityId") Long communityId);
+
+    @Select("SELECT COUNT(id) as num,'随手拍' as name FROM com_act_easy_photo WHERE community_id = ${communityId} AND (STATUS = 1 or STATUS = 2)  "
+        + "UNION ALL "
+        + "SELECT COUNT(id) as num,'微心愿' as name FROM com_act_micro_wish WHERE community_id = ${communityId} AND (STATUS = 1 or STATUS = 2 or STATUS = 3 or STATUS = 4) "
+        + "UNION ALL "
+        + "SELECT COUNT(id) as num,'一起议' as name FROM com_act_discuss WHERE community_id = ${communityId} "
+        + "UNION ALL "
+        + "SELECT COUNT(id) as num,'邻里圈' as name FROM com_act_neighbor_circle_west WHERE community_id = ${communityId} AND STATUS = 1 "
+        + "UNION ALL "
+        + "SELECT COUNT( e.id ) AS num,'网格事件' AS NAME FROM `event` as e left join event_grid_data as egd on egd.id = e.grid_id WHERE egd.grid_community_id = ${communityId} AND e.event_status = 2 and e.event_deal_status in (1,2,3) "
+        + "UNION ALL "
+        + "SELECT COUNT(id),'社区活动' as name FROM com_act_activity WHERE community_id = ${communityId} AND (STATUS = 1 or STATUS = 2 or STATUS = 3 or STATUS = 4)  ")
+    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);
+
+    void addHotNum(@Param("circleId") Long circleId,@Param("hotNum") Long hotNum);
+
+    void addTopicHotNum(@Param("circleId") Long circleId,@Param("hotNum") Long hotNum);
+
+    /**
+     * 获取大屏邻里圈展示图片
+     * @param communityId
+     * @param pageSize
+     * @return
+     */
+    List<String> getAllImages(@Param("communityId") Long communityId, @Param("pageSize") Integer pageSize);
+
+    /**
+     * 获取大屏邻里圈展示文本内容
+     * @param communityId
+     * @param pageSize
+     * @return
+     */
+    List<String> getContents(@Param("communityId") Long communityId, @Param("pageSize") Integer pageSize);
+
+    List<StatisticsCommVO> getIndexNeighborBaseData(@Param("communityId") Long communityId);
+
+    List<StatisticsCommVO> getNeighborAddPolylineData(@Param("communityId") Long communityId);
+
+    StatisticsCommVO getNeighborTotalPolylineDate(@Param("communityId") Long communityId, @Param("date") String date);
+
+    IPage<ComActNeighborCircleAdminVO> indexNeighborList(@Param("page") Page page, @Param("pageBaseDTO") PageBaseDTO pageBaseDTO);
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActPictureLibraryDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActPictureLibraryDAO.java
new file mode 100644
index 0000000..e04937d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActPictureLibraryDAO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.service_community.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @title: ComActPictureLibraryDAO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 图库预设mapper
+ * @author: hans
+ * @date: 2021/11/23 17:05
+ */
+@Mapper
+public interface ComActPictureLibraryDAO {
+
+    /**
+     * 获取预设图库
+     * @param type
+     * @param subtype
+     * @return
+     */
+    List<String> getPresetPictureLibrary(@Param("type") Integer type, @Param("subtype") Integer subtype);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActProceedingsDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActProceedingsDao.java
new file mode 100644
index 0000000..4ce411c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActProceedingsDao.java
@@ -0,0 +1,35 @@
+package com.panzhihua.service_community.dao;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.community.ComActProceedingsVO;
+import com.panzhihua.service_community.entity.ComActProceedings;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface ComActProceedingsDao extends BaseMapper<ComActProceedings> {
+    int deleteByPrimaryKey(Long id);
+
+    int insert(ComActProceedings record);
+
+    int insertSelective(ComActProceedings record);
+
+    ComActProceedings selectByPrimaryKey(Long id);
+
+    int updateByPrimaryKeySelective(ComActProceedings record);
+
+    int updateByPrimaryKey(ComActProceedings record);
+
+    /**
+     * 分页查询议事委员会
+     * @param keyWord 搜索关键字
+     * @return 处理结果
+     * */
+    List<ComActProceedingsVO> pageProceedings(Page page, @Param("keyWord") String keyWord);
+
+
+}
\ No newline at end of file
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
new file mode 100644
index 0000000..d6c790f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireAnswerContentDAO.java
@@ -0,0 +1,85 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.community.PageQuestnaireAnswerDTO;
+import com.panzhihua.common.model.dtos.community.PageQuestnaireSubDetailsDTO;
+import com.panzhihua.common.model.vos.community.ComActQuestnaireAnswerContentVO;
+import com.panzhihua.common.model.vos.community.questnaire.UserSubAnswerSelectionStatVO;
+import com.panzhihua.service_community.model.dos.ComActQuestnaireAnswerContentDO;
+
+/**
+ * @Author: llming
+ * @Description: 问卷回答记录内容
+ */
+@Mapper
+public interface ComActQuestnaireAnswerContentDAO extends BaseMapper<ComActQuestnaireAnswerContentDO> {
+    /**
+     * 查询问卷统计信息
+     * 
+     * @param questId
+     *            问卷ID
+     */
+    @Select("<script> "
+        + "SELECT  qs.id AS sub_id, ac.choice as option_name, COUNT(ac.user_id) as total, ac.answer_content as answerContent, ac.type,\n"
+        + " CONCAT(ROUND( COUNT(ac.user_id) /(SELECT COUNT(*) FROM com_act_questnaire_answer_content WHERE sub_id = qs.id) *100), '%')  AS proportion\n"
+        + "FROM com_act_questnaire qn LEFT JOIN com_act_questnaire_sub qs ON qn.id = qs.que_id\n"
+        + " LEFT JOIN com_act_questnaire_answer_content ac ON qs.id = ac.sub_id\n" + "WHERE qn.id=#{questId}  \n"
+        + "GROUP BY qs.id, ac.choice\n" + "ORDER BY qs.id" + "</script>")
+    List<UserSubAnswerSelectionStatVO> selectQuestnaireStat(@Param("questId") Long questId);
+
+    /**
+     * 查询问卷用户回答数据
+     * 
+     * @param questId
+     *            问卷ID
+     */
+    List<ComActQuestnaireAnswerContentVO> selectListByQuestnaire(@Param("questId") Long questId);
+
+    /**
+     * 查询问卷用户回答数据
+     * 
+     * @param pageQuestnaireAnswerDTO
+     *            问卷ID
+     */
+    @Select("<script> " + "SELECT  u.name as user_name, ac.user_id , ac.create_at \n"
+        + "FROM com_act_questnaire qn LEFT JOIN com_act_questnaire_sub qs ON qn.id = qs.que_id\n"
+        + " LEFT JOIN com_act_questnaire_answer_content ac ON qs.id = ac.sub_id\n"
+        + " LEFT JOIN sys_user u ON ac.user_id = u.user_id \n" + "WHERE qn.id=#{pageQuestnaireAnswerDTO.questId}\n"
+        + "GROUP BY user_id\n" + "ORDER BY ac.create_at\n" + "</script>")
+    IPage<ComActQuestnaireAnswerContentVO> selectAnswersByPage(Page page,
+        @Param("pageQuestnaireAnswerDTO") PageQuestnaireAnswerDTO pageQuestnaireAnswerDTO);
+
+    /**
+     * 查询问卷 问答题 用户回答数据
+     * 
+     * @param pageQuestnaireSubDetailsDTO
+     *            问卷ID
+     */
+    @Select("<script> " + "SELECT ac.choice , ac.user_id, ac.type, ac.sub_id, u.name as user_name, ac.answer_content \n"
+        + "FROM com_act_questnaire_answer_content ac  LEFT JOIN sys_user u ON ac.user_id = u.user_id\n"
+        + "WHERE ac.sub_id=#{pageQuestnaireSubDetailsDTO.subId}\n" + "ORDER BY ac.create_at\n" + "</script>")
+    IPage<ComActQuestnaireAnswerContentVO> selectVoByPage(Page userPage,
+        @Param("pageQuestnaireSubDetailsDTO") PageQuestnaireSubDetailsDTO pageQuestnaireSubDetailsDTO);
+
+    /**
+     * 查询问卷 问答题 用户回答数据
+     * 
+     * @param questId
+     *            问卷ID
+     * @param userId
+     *            用户ID
+     */
+    @Select("<script> " + "SELECT COUNT(*)\n"
+        + "FROM com_act_questnaire q LEFT JOIN com_act_questnaire_sub qs ON q.id = qs.que_id\n"
+        + "LEFT JOIN com_act_questnaire_answer_content ac ON qs.id = ac.sub_id\n"
+        + "WHERE q.id =  #{questId} AND ac.user_id = #{userId}\n" + "</script>")
+    Integer selectUserCountByQuestnaireId(@Param("questId") String questId, @Param("userId") Long userId);
+}
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
new file mode 100644
index 0000000..626165c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireDAO.java
@@ -0,0 +1,153 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+import com.panzhihua.common.model.dtos.PageBaseDTO;
+import com.panzhihua.common.model.vos.community.ComActQuestnaireVO;
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenQuestionnaireStatisticsInfo;
+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;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.community.PageQuestnaireDTO;
+import com.panzhihua.common.model.dtos.community.questnaire.StatisticsSummaryDTO;
+import com.panzhihua.common.model.vos.community.ComActQuestnaireAppVO;
+import com.panzhihua.common.model.vos.community.questnaire.*;
+import com.panzhihua.service_community.model.dos.ComActQuestnaireDO;
+
+/**
+ * @Author: llming
+ * @Description: 调查问卷 问卷表
+ */
+@Mapper
+public interface ComActQuestnaireDAO extends BaseMapper<ComActQuestnaireDO> {
+    @Select("<script> " + "SELECT " + " caq.id, " + " caq.project_key, " + " caq.title, " + " caq.state, "
+        + " caq.for_masses, " + " caq.for_party, " + " caq.for_volunteer, " + " caq.join_count, " + " caq.remark, "
+        + " caq.is_cover, " + " caq.is_force, " + " caq.create_at, " + " caq.count, "
+        + " if(caqua.id is not null,1,2) isAnswer, " + " caq.view_num  " + "FROM " + " com_act_questnaire as caq "
+        + " 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 ASC, " + " caq.create_at DESC" + "</script>")
+    IPage<QuestnaireListVo> selectPageList(Page page, @Param("pageQuestnaireDTO") PageQuestnaireDTO pageQuestnaireDTO);
+
+    @Select("<script>"
+        + "select id,title,view_num,join_count,for_masses,for_party,for_volunteer,adver_position_top,adver_position_popup"
+        + ",adver_position_application,create_at,start_time,end_time,publish_time,state,is_cover,project_key,count"
+        + " from com_act_questnaire as caq where community_id = ${pageQuestnaireDTO.communityId} and is_hide = 0 "
+        + "<if test='pageQuestnaireDTO.identity != null and pageQuestnaireDTO.identity == 1'>"
+        + " and caq.for_masses = 1 " + " </if> "
+        + "<if test='pageQuestnaireDTO.identity != null and pageQuestnaireDTO.identity == 2'>"
+        + " and caq.for_party = 1 " + " </if> "
+        + "<if test='pageQuestnaireDTO.identity != null and pageQuestnaireDTO.identity == 3'>"
+        + " and caq.for_volunteer = 1 " + " </if> "
+        + "<if test='pageQuestnaireDTO.advertPosition != null and pageQuestnaireDTO.advertPosition == 1'>"
+        + " and caq.adver_position_popup = 1 " + " </if> "
+        + "<if test='pageQuestnaireDTO.advertPosition != null and pageQuestnaireDTO.advertPosition == 2'>"
+        + " and caq.adver_position_top = 1 " + " </if> "
+        + "<if test='pageQuestnaireDTO.advertPosition != null and pageQuestnaireDTO.advertPosition == 3'>"
+        + " and caq.adver_position_application = 1 " + " </if> "
+        + "<if test='pageQuestnaireDTO.states != null and pageQuestnaireDTO.states.size > 0 '>" + " and caq.state in "
+        + "<foreach item=\"item\" collection=\"pageQuestnaireDTO.states\" separator=\",\" open=\"(\" close=\")\" index=\"\"> \n"
+        + "#{item}\n" + "</foreach>\n" + " </if> "
+        + "<if test='pageQuestnaireDTO.startTime != null and pageQuestnaireDTO.startTime != &quot;&quot;'>"
+        + " and caq.publish_time  <![CDATA[ >= ]]> #{pageQuestnaireDTO.startTime}" + " </if> "
+        + "<if test='pageQuestnaireDTO.endTime != null and pageQuestnaireDTO.endTime != &quot;&quot;'>"
+        + " and caq.publish_time  <![CDATA[ <= ]]> #{pageQuestnaireDTO.endTime}" + " </if> "
+        + "<if test='pageQuestnaireDTO.title != null and pageQuestnaireDTO.title != &quot;&quot;'>"
+        + " and caq.title like concat (#{pageQuestnaireDTO.title},'%')" + " </if> " + " order by caq.create_at DESC "
+        + "</script>")
+    IPage<QuestnaireListAdminVO> selectPageListAdmin(Page page,
+        @Param("pageQuestnaireDTO") PageQuestnaireDTO pageQuestnaireDTO);
+
+    @Select("select count(id) from com_act_questnaire_user where user_id = #{userId} and questnaire_id = #{questnaireId}")
+    Integer getNoRemindCount(@Param("userId") Long userId, @Param("questnaireId") Long questnaireId);
+
+    @Select("SELECT " + " id, " + " title, " + " remark, " + " is_cover, " + " for_masses, " + " for_party, "
+        + " for_volunteer, " + " is_force, " + " adver_position_popup, " + " adver_position_top, "
+        + " adver_position_application, " + " project_key  " + "FROM " + " com_act_questnaire  " + "WHERE "
+        + " end_time >= now()  " + " AND now() >= start_time  " + " and community_id = ${communityId} "
+        + " and adver_position_top = 1 " + " and state = 2")
+    List<ComActQuestnaireAppVO> getIndexTopQuestnaireList(@Param("communityId") Long communityId);
+
+    @Select("SELECT " + " id, " + " title, " + " remark, " + " for_masses, " + " for_party, " + " for_volunteer, "
+        + " is_cover, " + " is_force, " + " adver_position_popup, " + " adver_position_top, "
+        + " adver_position_application, " + " project_key  " + "FROM " + " com_act_questnaire  " + "WHERE "
+        + " end_time >= now()  " + " AND now() >= start_time  " + " and community_id = ${communityId} "
+        + " and adver_position_application = 1 " + " and state = 2")
+    List<ComActQuestnaireAppVO> getIndexApplicationQuestnaireList(@Param("communityId") Long communityId);
+
+    Integer getAdvPopupCount(@Param("communityId") Long communityId, @Param("startTime") String startTime,
+        @Param("endTime") String endTime, @Param("id") Long id);
+
+    void deleteQuesSubAll(@Param("queId") Long queId);
+
+    void deleteQuesSubAll2(@Param("queId") Long queId);
+
+    QuestnaireDetailAdminVO getQuesDetailAdmin(@Param("queId") Long queId);
+
+    /**
+     * 小程序-问卷调查详情
+     * 
+     * @param userId
+     *            用户id
+     * @param questId
+     *            问卷id
+     * @return 问卷调查详情
+     */
+    QuestnaireDetailAdminVO getQuesDetail(@Param("questId") Long questId, @Param("userId") Long userId);
+
+    /**
+     * 问卷调查统计汇总
+     * 
+     * @param summaryDTO
+     *            请求参数
+     * @return 统计汇总
+     */
+    IPage<QuestnaireStatisticsSummaryAdminVO> getStatisticsSummaryAdmin(Page page,
+        @Param("summaryDTO") StatisticsSummaryDTO summaryDTO);
+
+    /**
+     * 问卷调查统计汇总导出数据查询
+     * 
+     * @param questId
+     *            调查问卷id
+     * @return 调查统计汇总导出数据
+     */
+    List<QuestnaireStatisticsSummaryExcelAdminVO> getStatisticsSummaryExcelAdmin(@Param("questId") Long questId);
+
+    /**
+     * 问卷调查统计汇总表头统计
+     * 
+     * @param questId
+     *            调查问卷id
+     * @return 问卷调查统计汇总表头统计数据
+     */
+    QuestnaireStatisticsSummaryHeaderAdminVO statisticsSummaryHeader(@Param("questId") Long questId,
+        @Param("communityId") Long communityId);
+
+    void addNoNotice(@Param("questId") Long questId, @Param("userId") Long userId);
+
+    /**
+     * 首页大屏二级页面-社区问卷基础数据
+     * @param communityId
+     * @return
+     */
+    BigScreenQuestionnaireStatisticsInfo getIndexQuestionnaireBaseData(@Param("communityId") Long communityId);
+
+    List<StatisticsCommVO> getQuestionnaireAddPolylineData(@Param("communityId") Long communityId);
+
+    StatisticsCommVO getQuestionnaireTotalPolylineDate(@Param("communityId") Long communityId, @Param("date") String date);
+
+    /**
+     * 大屏问卷展示列表
+     * @param page
+     * @param pageBaseDTO
+     * @return
+     */
+    IPage<ComActQuestnaireVO> selectQuestionnaireDisplayList(@Param("page") Page page, @Param("pageBaseDTO") PageBaseDTO pageBaseDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireSubDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireSubDAO.java
new file mode 100644
index 0000000..1868417
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireSubDAO.java
@@ -0,0 +1,13 @@
+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.ComActQuestnaireSubDO;
+
+/**
+ * @Author: llming
+ * @Description: 问卷题目
+ */
+@Mapper
+public interface ComActQuestnaireSubDAO extends BaseMapper<ComActQuestnaireSubDO> {}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireSubSelectionDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireSubSelectionDAO.java
new file mode 100644
index 0000000..0651785
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireSubSelectionDAO.java
@@ -0,0 +1,13 @@
+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.ComActQuestnaireSubSelectionDO;
+
+/**
+ * @Author: llming
+ * @Description: 问卷题目选项
+ */
+@Mapper
+public interface ComActQuestnaireSubSelectionDAO extends BaseMapper<ComActQuestnaireSubSelectionDO> {}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireUserAnswerMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireUserAnswerMapper.java
new file mode 100644
index 0000000..68de127
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActQuestnaireUserAnswerMapper.java
@@ -0,0 +1,16 @@
+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.ComActQuestnaireUserAnswerDO;
+
+/**
+ * @auther lyq
+ * @create 2021-08-17 17:42:06
+ * @describe 问卷调查用户答题记录mapper类
+ */
+@Mapper
+public interface ComActQuestnaireUserAnswerMapper extends BaseMapper<ComActQuestnaireUserAnswerDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActRaffleDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActRaffleDao.java
new file mode 100644
index 0000000..f1e7792
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActRaffleDao.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.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.raffle.ComActRaffleVO;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComActRaffle;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 抽奖活动表(ComActRaffle)表数据库访问层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 抽奖活动表相关功能
+ *
+ * @author zzj
+ * @since 2022-02-18 14:31:19
+ */
+@Mapper
+public interface ComActRaffleDao extends BaseMapper<ComActRaffle> {
+    /**
+     * 分页查询列表
+     * @param page
+     * @param commonPage
+     * @return
+     */
+    IPage<ComActRaffleVO> pageList(Page page, @Param("commonPage")CommonPage commonPage);
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    ComActRaffleVO selectById(Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActRafflePrizeDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActRafflePrizeDao.java
new file mode 100644
index 0000000..dfc4275
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActRafflePrizeDao.java
@@ -0,0 +1,36 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.common.model.vos.community.raffle.ComActRafflePrizeCount;
+import com.panzhihua.common.model.vos.community.raffle.ComActRafflePrizeVO;
+import com.panzhihua.common.model.vos.community.raffle.ComActRaffleRecordVO;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComActRafflePrize;
+
+import java.util.List;
+
+/**
+ * 抽奖活动奖品表(ComActRafflePrize)表数据库访问层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 抽奖活动奖品表相关功能
+ *
+ * @author zzj
+ * @since 2022-02-18 14:31:45
+ */
+@Mapper
+public interface ComActRafflePrizeDao extends BaseMapper<ComActRafflePrize> {
+    /**
+     * 根据抽奖id查询奖品列表
+     * @param id
+     * @return
+     */
+    List<ComActRafflePrizeVO> selectByRaffleId(Long id);
+
+    /**
+     *
+     * 查询奖品统计
+     * @param id
+     * @return
+     */
+    ComActRafflePrizeCount selectCount(Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActRaffleRecordDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActRaffleRecordDao.java
new file mode 100644
index 0000000..65cc047
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActRaffleRecordDao.java
@@ -0,0 +1,64 @@
+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.property.CommonPage;
+import com.panzhihua.common.model.vos.community.raffle.ComActRaffleRecordExcelVO;
+import com.panzhihua.common.model.vos.community.raffle.ComActRaffleRecordVO;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComActRaffleRecord;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+
+/**
+ * 抽奖活动中奖记录表(ComActRaffleRecord)表数据库访问层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 抽奖活动中奖记录表相关功能
+ *
+ * @author zzj
+ * @since 2022-02-18 14:32:01
+ */
+@Mapper
+public interface ComActRaffleRecordDao extends BaseMapper<ComActRaffleRecord> {
+    /**
+     * 根据用户id活动id查询中奖情况
+     * @param userId
+     * @param raffleId
+     * @return
+     */
+    ComActRaffleRecordVO selectByUserId(@Param("userId")Long userId,@Param("raffleId")Long raffleId);
+
+    /**
+     * 分页查询
+     * @param page
+     * @param commonPage
+     * @return
+     */
+    IPage<ComActRaffleRecordVO> pageList(Page page, @Param("commonPage")CommonPage commonPage);
+
+    /**
+     * 导出
+     * @param commonPage
+     * @return
+     */
+    List<ComActRaffleRecordExcelVO> export(@Param("commonPage")CommonPage commonPage);
+
+
+    /**
+     * 根据id查询
+     * @param id
+     * @return
+     */
+    ComActRaffleRecordVO selectOneById(Long id);
+
+
+    /**
+     * 抽奖活动失效设置
+     * @param id
+     * @return
+     */
+    Integer updateStatusByRaffleId(Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveAnswerContentMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveAnswerContentMapper.java
new file mode 100644
index 0000000..8ef30db
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveAnswerContentMapper.java
@@ -0,0 +1,79 @@
+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.reserve.PageReserveRegisterDetailedAdminDTO;
+import com.panzhihua.common.model.vos.community.ComActQuestnaireAnswerContentVO;
+import com.panzhihua.common.model.vos.community.reserve.ComActReserveRegisterDetailedAnswerVO;
+import com.panzhihua.common.model.vos.community.reserve.ComActReserveRegisterDetailedVO;
+import com.panzhihua.common.model.vos.community.reserve.FiveCount;
+import com.panzhihua.common.model.vos.community.reserve.HomeQuarantineRegisterStatisticsVO;
+import com.panzhihua.service_community.model.dos.ComActReserveAnswerContentDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @auther lyq
+ * @create 2021-08-23 10:33:32
+ * @describe 预约登记回答记录内容 mapper类
+ */
+@Mapper
+public interface ComActReserveAnswerContentMapper extends BaseMapper<ComActReserveAnswerContentDO> {
+
+    /**
+     * 查询用户填写登记类答案记录列表
+     * @param reserveId 预约登记id
+     * @return  登记类答案记录列表
+     */
+    List<ComActQuestnaireAnswerContentVO> selectListByReserve(@Param("reserveId")Long reserveId);
+
+    /**
+     * 分页查询用户填写某预约登记记录列表
+     * @param page  分页参数
+     * @param detailedAdminDTO  请求参数
+     * @return  某预约登记记录列表
+     */
+    IPage<ComActReserveRegisterDetailedVO> pageRegisterDetailedListAdmin(Page page, @Param("detailedAdminDTO") PageReserveRegisterDetailedAdminDTO detailedAdminDTO);
+
+    /**
+     * 查询用户填写某预约登记记录列表
+     * @param detailedAdminDTO  请求参数
+     * @return  某预约登记记录列表
+     */
+    List<ComActReserveRegisterDetailedVO> pageRegisterDetailedListAdminExport(@Param("detailedAdminDTO") PageReserveRegisterDetailedAdminDTO detailedAdminDTO);
+    /**
+     * 导出某预约登记记录列表
+     * @param detailedAdminDTO  请求参数
+     * @return  某预约登记记录列表
+     */
+    List<ComActQuestnaireAnswerContentVO> export(@Param("detailedAdminDTO") PageReserveRegisterDetailedAdminDTO detailedAdminDTO);
+    /**
+     * 查询登记记录填写的内容列表
+     * @param reserveRecordId   预约登记记录id
+     * @return  登记记录填写的内容列表
+     */
+    List<ComActReserveRegisterDetailedAnswerVO> getRegisterDetailedAnswerList(@Param("reserveRecordId")Long reserveRecordId);
+
+    ComActReserveRegisterDetailedVO getRegisterDetailedById(@Param("reserveRecordId") Long reserveRecordId);
+
+    IPage<String> pageRegisterHomeQuarantine(@Param("page") Page page, @Param("detailedAdminDTO") PageReserveRegisterDetailedAdminDTO detailedAdminDTO);
+
+    List<HomeQuarantineRegisterStatisticsVO> selectStatistics(@Param("reserveId") Long reserveId, @Param("record") String record);
+
+    /**
+     * 查询居家隔离统计身份证号码
+     * @param detailedAdminDTO
+     * @return
+     */
+    List<String> exportHomeQuarantine(@Param("detailedAdminDTO") PageReserveRegisterDetailedAdminDTO detailedAdminDTO);
+
+    /**
+     * 5个常规数据查询
+     * @param reserveId
+     * @return
+     */
+    FiveCount fiveCount(Long reserveId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveDangerAreaDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveDangerAreaDao.java
new file mode 100644
index 0000000..5584d17
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveDangerAreaDao.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.property.CommonPage;
+import com.panzhihua.common.model.vos.community.reserve.ComActReserveDangerAreaVO;
+import com.panzhihua.common.model.vos.community.reserve.DangerAreaStatics;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComActReserveDangerArea;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * (ComActReserveDangerArea)表数据库访问层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 相关功能
+ *
+ * @author zzj
+ * @since 2022-04-07 14:22:20
+ */
+@Mapper
+public interface ComActReserveDangerAreaDao extends BaseMapper<ComActReserveDangerArea> {
+
+    /**
+     * 分页查询风险区列表
+     * @param page
+     * @param commonPage
+     * @return
+     */
+    IPage<ComActReserveDangerAreaVO> pageList(Page page, @Param("commonPage")CommonPage commonPage);
+
+    /**
+     * 风险区统计
+     * @return
+     */
+    DangerAreaStatics statics();
+}
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
new file mode 100644
index 0000000..c6c3e47
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveMapper.java
@@ -0,0 +1,133 @@
+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.reserve.ComActReserveMakeStatisticsDTO;
+import com.panzhihua.common.model.dtos.community.reserve.PageReserveAdminDTO;
+import com.panzhihua.common.model.vos.community.bigscreen.IndexReserve;
+import com.panzhihua.common.model.vos.community.bigscreen.IndexReserveSub;
+import com.panzhihua.common.model.vos.community.reserve.ComActReserveListAdminVO;
+import com.panzhihua.common.model.vos.community.reserve.ComActReserveMakeLeftStatisticsAdminVO;
+import com.panzhihua.common.model.vos.community.reserve.ComActReserveMakeRightStatisticsAdminVO;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.community.PageUserReserveDTO;
+import com.panzhihua.common.model.vos.community.ComActReserveIndexVo;
+import com.panzhihua.service_community.model.dos.ComActReserveDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @auther lyq
+ * @create 2021-08-23 10:33:11
+ * @describe 预约登记表mapper类
+ */
+@Mapper
+public interface ComActReserveMapper extends BaseMapper<ComActReserveDO> {
+    /**
+     * 查询预约登记首页banner
+     * @param communityId
+     * @return 预约登记首页banner列表
+     */
+    List<ComActReserveIndexVo> indexBanner(Long communityId);
+    /**
+     * 查询预约登记应用列表
+     * @param communityId
+     * @return 预约登记应用列表
+     */
+    List<ComActReserveIndexVo> indexApplication(Long communityId);
+
+    /**
+     * 社区后台-分页查询预约登记列表
+     * @param pageReserveDTO    请求参数
+     * @return  预约登记列表
+     */
+    IPage<ComActReserveListAdminVO> pageReserveAdmin(Page page, @Param("pageReserveDTO") PageReserveAdminDTO pageReserveDTO);
+
+    /**
+     * 根据预约登记id删除预约登记原有题目以及题目选项
+     * @param reserveId 预约登记id
+     */
+    void deleteReserveSubAll(@Param("reserveId") Long reserveId);
+
+    /**
+     * 社区后台-根据社区id查询预约统计汇总左边数据
+     * @param communityId   社区id
+     * @return  预约统计汇总左边数据
+     */
+    List<ComActReserveMakeLeftStatisticsAdminVO> getReserveMakeLeftStatistics(@Param("communityId") Long communityId);
+
+    /**
+     * 社区后台-查询预约统计汇总右边数据
+     * @param makeStatisticsDTO   请求参数
+     * @return  预约统计汇总右边数据
+     */
+    List<ComActReserveMakeRightStatisticsAdminVO> getReserveMakeRightStatistics(@Param("makeStatisticsDTO") ComActReserveMakeStatisticsDTO makeStatisticsDTO);
+
+    /**
+     * 社区后台-根据社区id 查询开始时间到结束时间预约成功数量
+     * @param communityId   社区id
+     * @param startTime 开始时间
+     * @param endTime   结束时间
+     * @return  预约成功数量
+     */
+    Integer getReserveRecordCount(@Param("communityId") Long communityId,@Param("startTime") String startTime,@Param("endTime") String endTime);
+
+    /**
+     * 查询社区所有预约信息列表
+     * @param communityId   社区id
+     * @return  预约信息列表
+     */
+    List<ComActReserveListAdminVO> listReserveAdmin(@Param("communityId") Long communityId);
+
+    /**
+     * 取消预约时,预约登记参加人数减少
+     * @param reserveId 预约登记id
+     */
+    void addReserveCountById(@Param("reserveId") Long reserveId);
+
+    /**
+     * 小程序查询所有进行中的预约登记
+     * @param communityId   社区id
+     * @return  社区所有进行中的预约登记列表
+     */
+    List<ComActReserveIndexVo> getReserveIndexList(@Param("communityId") Long communityId);
+
+    /**
+     * 首页大屏返攀登记数据统计总数
+     * @param communityId
+     * @return
+     */
+    Integer indexBackReserve(@Param("communityId") Long communityId);
+
+    /**
+     * 首页大屏居家隔离数据统计总数
+     * @param communityId
+     * @return
+     */
+    Integer indexHomeQuarantine(@Param("communityId") Long communityId);
+
+    /**
+     * 首页大屏返攀登记数据统计选项
+     * @param communityId
+     * @return
+     */
+    List<IndexReserveSub> indexBackReserveSub(@Param("communityId") Long communityId);
+
+    /**
+     * 首页大屏居家隔离数据统计选项
+     * @param communityId
+     * @return
+     */
+    List<IndexReserveSub> IndexHomeQuarantineSub(@Param("communityId") Long communityId);
+
+    /**
+     * reserveId查询社区电话
+     * @param reserveId
+     * @return
+     */
+    String selectCommunityPhoneByReserveId(@Param("reserveId")Long reserveId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveOperationRecordMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveOperationRecordMapper.java
new file mode 100644
index 0000000..cf4e3d7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveOperationRecordMapper.java
@@ -0,0 +1,26 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.common.model.vos.community.reserve.ComActReserveMakeOperationAdminVO;
+import com.panzhihua.service_community.model.dos.ComActReserveOperationRecordDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @auther lyq
+ * @create 2021-08-23 10:33:42
+ * @describe 预约登记操作记录表mapper类
+ */
+@Mapper
+public interface ComActReserveOperationRecordMapper extends BaseMapper<ComActReserveOperationRecordDO> {
+
+    /**
+     * 根据预约记录id查询预约明细操作记录
+     * @param reserveRecordId   预约记录id
+     * @return  预约明细操作记录
+     */
+    List<ComActReserveMakeOperationAdminVO> getMakeOperationList(@Param("reserveRecordId") Long reserveRecordId);
+
+}
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
new file mode 100644
index 0000000..fae43a4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveRecordMapper.java
@@ -0,0 +1,125 @@
+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.OperationDetailDTO;
+import com.panzhihua.common.model.dtos.community.reserve.ComActReserveRegisterStatisticsDTO;
+import com.panzhihua.common.model.dtos.community.reserve.PageReserveMakeAdminDTO;
+import com.panzhihua.common.model.dtos.community.reserve.PageReserveMakeHandleAdminDTO;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenStaticsReserve;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenStaticsReserveMonth;
+import com.panzhihua.common.model.vos.community.reserve.*;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.community.PageUserReserveDTO;
+import com.panzhihua.service_community.model.dos.ComActReserveDO;
+import com.panzhihua.service_community.model.dos.ComActReserveRecordDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @auther lyq
+ * @create 2021-08-23 10:33:53
+ * @describe 预约登记记录表mapper类
+ */
+@Mapper
+public interface ComActReserveRecordMapper extends BaseMapper<ComActReserveRecordDO> {
+    IPage<ComActReserveAppletsVO> pageReserveList(Page page, @Param("pageUserReserveDTO") PageUserReserveDTO pageUserReserveDTO);
+
+    /**
+     * 社区后台-根据预约id查询预约明细
+     * @param pageMakeDTO   请求参数
+     * @return  预约明细
+     */
+    IPage<ComActReserveMakeListAdminVO> pageMakeAdmin(Page page, @Param("pageMakeDTO") PageReserveMakeAdminDTO pageMakeDTO);
+
+    /**
+     * 根据预约记录id查询预约记录详细信息
+     * @param reserveRecordId   预约记录id
+     * @return  预约记录详细信息
+     */
+    ComActReserveMakeDetailAdminVO getMakeDetailAdmin(@Param("reserveRecordId") Long reserveRecordId);
+
+    /**
+     * 查询预约记录id集合中是否存在未预约成功的记录
+     * @param ids   预约记录id集合
+     * @return  未预约成功记录的数量
+     */
+    Integer getReserveStatusById(@Param("ids") List<Long> ids);
+
+    /**
+     * 修改预约记录id集合的预约状态为已取消
+     * @param ids   预约记录id集合
+     * @return  修改结果
+     */
+    Integer editReserveStatusById(@Param("ids") List<Long> ids);
+
+    /**
+     * 预约明细导出数据查询
+     * @param pageMakeDTO   请求参数
+     * @return  预约明细数据
+     */
+    List<ComActReserveMakeListAdminVO> exportMakeAdmin(@Param("pageMakeDTO") PageReserveMakeAdminDTO pageMakeDTO);
+
+    /**
+     * 分页查询登记统计汇总
+     * @param registerStatisticsDTO 请求参数
+     * @return  登记统计汇总
+     */
+    IPage<ComActReserveRegisterStatisticsAdminVO> registerStatisticsAdmin(Page page, @Param("registerStatisticsDTO") ComActReserveRegisterStatisticsDTO registerStatisticsDTO);
+
+    /**
+     * 导出登记统计汇总
+     * @param registerStatisticsDTO 请求参数
+     * @return  登记统计汇总
+     */
+    List<ComActReserveRegisterStatisticsAdminVO> registerStatisticsExportAdmin(@Param("registerStatisticsDTO") ComActReserveRegisterStatisticsDTO registerStatisticsDTO);
+
+    /**
+     * 分页查询预约处理列表
+     * @param pageMakeHandleDTO 请求参数
+     * @return  预约处理列表
+     */
+    IPage<ComActReserveMakeHandleListAdminVO> pageMakeHandleAdmin(Page page, @Param("pageMakeHandleDTO") PageReserveMakeHandleAdminDTO pageMakeHandleDTO);
+
+    /**
+     * 查询指定预约记录是否存在不是待处理状态的数据
+     * @param ids   预约记录id集合
+     * @return  不是待处理状态数据条数
+     */
+    Integer getReserveListCountByIds(@Param("ids")List<Long> ids);
+
+    /**
+     * 导出预约处理列表数据查询
+     * @param pageMakeHandleDTO 请求参数
+     * @return  预约处理列表
+     */
+    List<ComActReserveMakeHandleListAdminVO> exportMakeHandleAdmin(@Param("pageMakeHandleDTO") PageReserveMakeHandleAdminDTO pageMakeHandleDTO);
+
+    ComActReserveRegisterDetailedVO getRegisterDetailedByRecordId(@Param("reserveRecordId") Long reserveRecordId);
+
+    /**
+     * 根据reserveRecordId查询操作记录
+     * @param operationDetailDTO
+     * @return
+     */
+    List<ComOperationListVO> queryAll(OperationDetailDTO operationDetailDTO);
+
+    /**
+     * 大屏数据统计
+     * @param communityId
+     * @return
+     */
+    BigScreenStaticsReserve biggestScreen(@Param("communityId") Long communityId);
+
+    /**
+     * 大屏折线图
+     * @param communityId
+     * @param date
+     * @return
+     */
+    BigScreenStaticsReserveMonth biggestScreenMonth(@Param("communityId")Long communityId,@Param("date")String date,@Param("year")String year);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveSubMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveSubMapper.java
new file mode 100644
index 0000000..82a437b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveSubMapper.java
@@ -0,0 +1,29 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.common.model.vos.community.reserve.ComActReserveSubListVO;
+import com.panzhihua.service_community.model.dos.ComActReserveSubDO;
+
+/**
+ * @auther lyq
+ * @create 2021-08-23 10:34:03
+ * @describe 预约登记题目选项mapper类
+ */
+@Mapper
+public interface ComActReserveSubMapper extends BaseMapper<ComActReserveSubDO> {
+
+    /**
+     * 根据预约登记id查询题目列表
+     * @param reserveId 预约登记id
+     * @return  题目列表
+     */
+    List<ComActReserveSubListVO> getReserveSubjectList(@Param("reserveId") Long reserveId);
+
+
+    List<String> subjectSelectionListAdmin(@Param("reserveSubId") Long reserveSubId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveSubSelectionMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveSubSelectionMapper.java
new file mode 100644
index 0000000..c99dadd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActReserveSubSelectionMapper.java
@@ -0,0 +1,15 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_community.model.dos.ComActReserveSubSelectionDO;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @auther lyq
+ * @create 2021-08-23 10:34:13
+ * @describe 预约登记题目选项 mapper类
+ */
+@Mapper
+public interface ComActReserveSubSelectionMapper extends BaseMapper<ComActReserveSubSelectionDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialMemberDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialMemberDao.java
new file mode 100644
index 0000000..b29aa6a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialMemberDao.java
@@ -0,0 +1,41 @@
+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.property.CommonPage;
+import com.panzhihua.common.model.vos.ComActSocialMemberVO;
+import com.panzhihua.common.model.vos.partybuilding.ComPbServiceTeamVO;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComActSocialMember;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 社会组织成员表(ComActSocialMember)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-10-22 09:52:46
+ */
+@Mapper
+public interface ComActSocialMemberDao extends BaseMapper<ComActSocialMember> {
+    /**
+     * 分页查询
+     * @param page
+     * @param commonPage
+     * @return
+     */
+    IPage<ComActSocialMemberVO> pageList(Page page, @Param("commonPage")CommonPage commonPage);
+
+    /**
+     * 详情
+     * @return
+     */
+    ComActSocialMemberVO detail(Long id);
+
+    /**
+     * 查询社区工作人员
+     * @param id
+     * @return
+     */
+    ComPbServiceTeamVO selectPbServiceTeamById(@Param("id") Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialOrgDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialOrgDao.java
new file mode 100644
index 0000000..7572057
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialOrgDao.java
@@ -0,0 +1,86 @@
+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.PageBaseDTO;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.community.ComActSocialOrgVO;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenHmkProjectTypeInfo;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenHmkSocialOrgInfo;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComActSocialOrg;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 社会组织(ComActSocialOrg)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-09-17 10:45:30
+ */
+@Mapper
+public interface ComActSocialOrgDao extends BaseMapper<ComActSocialOrg> {
+    /**
+     * 分页查询
+     * @param page
+     * @param commonPage
+     * @return
+     */
+    IPage<ComActSocialOrgVO> pageList(Page page, @Param("commonPage")CommonPage commonPage);
+
+    /**
+     * 主键查询
+     * @param id
+     * @return
+     */
+    ComActSocialOrgVO detail(Long id);
+
+    /**
+     * 查询社会组织数据
+     * @return
+     */
+    BigScreenHmkSocialOrgInfo selectInfo(Long communityId);
+
+
+    /**
+     * 查询社会组织饼状图
+     * @return
+     */
+    List<BigScreenHmkProjectTypeInfo> selectType(Long communityId);
+
+    /**
+     * 根据userID查询管理社会组织
+     * @param userId
+     * @return
+     */
+    ComActSocialOrg selectOrgByUserId(@Param("userId") Long userId);
+
+    /**
+     * 孵化中心-孵化成果展示列表
+     * @param page
+     * @param pageBaseDTO
+     * @param streetId
+     * @return
+     */
+    IPage<ComActSocialOrgVO> pageHatchResult(@Param("page") Page page, @Param("pageBaseDTO") PageBaseDTO pageBaseDTO, @Param("streetId") Long streetId);
+
+    /**
+     * 孵化中心-孵化进度展示列表
+     * @param page
+     * @param pageBaseDTO
+     * @param streetId
+     * @return
+     */
+    IPage<ComActSocialOrgVO> pageHatchSchedule(@Param("page") Page page, @Param("pageBaseDTO") PageBaseDTO pageBaseDTO, @Param("streetId") Long streetId);
+
+    /**
+     * 五社联动社会组织展示列表
+     * @param page
+     * @param pageBaseDTO
+     * @param streetId
+     * @return
+     */
+    IPage<ComActSocialOrgVO> pageSocialOrgList(@Param("page") Page page, @Param("pageBaseDTO") PageBaseDTO pageBaseDTO, @Param("streetId") Long streetId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialOrgHatchAuditDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialOrgHatchAuditDAO.java
new file mode 100644
index 0000000..2f2164d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialOrgHatchAuditDAO.java
@@ -0,0 +1,65 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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.social.PageSocialOrgHatchAuditDTO;
+import com.panzhihua.common.model.vos.community.social.SocialOrgHatchAuditVO;
+import com.panzhihua.service_community.entity.ComActSocialOrgHatchAudit;
+
+/**
+ * 社会组织孵化申请表(ComActSocialOrgHatchAudit)表数据库访问层
+ *
+ * @author makejava
+ * @since 2022-04-18 14:09:53
+ */
+@Mapper
+public interface ComActSocialOrgHatchAuditDAO extends BaseMapper<ComActSocialOrgHatchAudit> {
+
+    /**
+     * 批量新增数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<ComActSocialOrgHatchAudit> 实例对象列表
+     * @return 影响行数
+     */
+    int insertBatch(@Param("entities") List<ComActSocialOrgHatchAudit> entities);
+
+    /**
+     * 批量新增或按主键更新数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<ComActSocialOrgHatchAudit> 实例对象列表
+     * @return 影响行数
+     * @throws org.springframework.jdbc.BadSqlGrammarException
+     *             入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
+     */
+    int insertOrUpdateBatch(@Param("entities") List<ComActSocialOrgHatchAudit> entities);
+
+    /**
+     * 分页查询社会组织孵化申请
+     * @param page
+     * @param pageHatchAuditDTO
+     * @return
+     */
+    IPage<SocialOrgHatchAuditVO> pageHatchAudit(@Param("page") Page page, @Param("pageHatchAuditDTO") PageSocialOrgHatchAuditDTO pageHatchAuditDTO);
+
+    /**
+     * 查看孵化申请详情
+     * @param id
+     * @return
+     */
+    SocialOrgHatchAuditVO detailHatchAudit(@Param("id") Long id);
+
+    /**
+     * 查看孵化申请审核进度
+     * @param userId
+     * @return
+     */
+    SocialOrgHatchAuditVO getHatchAuditSchedule(@Param("userId") Long userId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialOrgHatchAuditScheduleDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialOrgHatchAuditScheduleDAO.java
new file mode 100644
index 0000000..f33cc80
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialOrgHatchAuditScheduleDAO.java
@@ -0,0 +1,39 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComActSocialOrgHatchAuditSchedule;
+
+/**
+ * 社会组织孵化申请进度表(ComActSocialOrgHatchAuditSchedule)表数据库访问层
+ *
+ * @author makejava
+ * @since 2022-04-18 15:10:47
+ */
+@Mapper
+public interface ComActSocialOrgHatchAuditScheduleDAO extends BaseMapper<ComActSocialOrgHatchAuditSchedule> {
+
+    /**
+     * 批量新增数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<ComActSocialOrgHatchAuditSchedule> 实例对象列表
+     * @return 影响行数
+     */
+    int insertBatch(@Param("entities") List<ComActSocialOrgHatchAuditSchedule> entities);
+
+    /**
+     * 批量新增或按主键更新数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<ComActSocialOrgHatchAuditSchedule> 实例对象列表
+     * @return 影响行数
+     * @throws org.springframework.jdbc.BadSqlGrammarException
+     *             入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
+     */
+    int insertOrUpdateBatch(@Param("entities") List<ComActSocialOrgHatchAuditSchedule> entities);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialOrgHatchDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialOrgHatchDAO.java
new file mode 100644
index 0000000..37e7aef
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialOrgHatchDAO.java
@@ -0,0 +1,96 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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.social.PageSocialOrgHatchDTO;
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenFiveAssociationsStatisticsInfo;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenHatchStatisticsInfo;
+import com.panzhihua.common.model.vos.community.social.SocialOrgHatchVO;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComActSocialOrgHatch;
+
+/**
+ * 社会组织孵化表(ComActSocialOrgHatch)表数据库访问层
+ *
+ * @author makejava
+ * @since 2022-04-18 14:09:53
+ */
+@Mapper
+public interface ComActSocialOrgHatchDAO extends BaseMapper<ComActSocialOrgHatch> {
+
+    /**
+     * 批量新增数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<ComActSocialOrgHatch> 实例对象列表
+     * @return 影响行数
+     */
+    int insertBatch(@Param("entities") List<ComActSocialOrgHatch> entities);
+
+    /**
+     * 批量新增或按主键更新数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<ComActSocialOrgHatch> 实例对象列表
+     * @return 影响行数
+     * @throws org.springframework.jdbc.BadSqlGrammarException
+     *             入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
+     */
+    int insertOrUpdateBatch(@Param("entities") List<ComActSocialOrgHatch> entities);
+
+    /**
+     * 分页查询孵化数据
+     * @param page
+     * @param pageHatchDTO
+     * @return
+     */
+    IPage<SocialOrgHatchVO> pageOrgHatch(@Param("page") Page page, @Param("pageHatchDTO") PageSocialOrgHatchDTO pageHatchDTO);
+
+    /**
+     * 查看孵化数据详情
+     * @param id
+     * @return
+     */
+    SocialOrgHatchVO detailOrgHatch(@Param("id") Long id);
+
+    /**
+     * 获取孵化中心基础统计数据
+     * @param communityId
+     * @param streetId
+     * @return
+     */
+    BigScreenHatchStatisticsInfo getHatchBaseData(@Param("communityId") Long communityId, @Param("streetId") Long streetId);
+
+    /**
+     * 孵化进程占比圆形图数据
+     * @param streetId
+     * @return
+     */
+    List<StatisticsCommVO> getHatchScheduleCircleData(@Param("streetId") Long streetId);
+
+    /**
+     * 孵化状态占比柱形数据
+     * @param streetId
+     * @return
+     */
+    List<StatisticsCommVO> getHatchStatusColumnData(@Param("streetId") Long streetId);
+
+    /**
+     * 街道组织占比柱形数据
+     * @param streetId
+     * @return
+     */
+    List<StatisticsCommVO> getStreetOrgColumnData(@Param("streetId") Long streetId);
+
+    /**
+     * 根据街道名称获取街道组织分类统计
+     * @param streetName
+     * @return
+     */
+    List<StatisticsCommVO> getStreetOrgChildData(@Param("streetName") String streetName);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialProjectDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialProjectDao.java
new file mode 100644
index 0000000..054d8af
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialProjectDao.java
@@ -0,0 +1,120 @@
+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.PageBaseDTO;
+import com.panzhihua.common.model.dtos.community.social.PageProjectDTO;
+import com.panzhihua.common.model.dtos.community.social.PageProjectSignListDTO;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.community.ComActSocialOrgVO;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenActivityLine;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenFiveAssociationsStatisticsInfo;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenHmkBaseInfo;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenHmkProjectInfo;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenHmkProjectTypeInfo;
+import com.panzhihua.common.model.vos.community.social.SocialProjectVO;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComActSocialProject;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 三社联动项目表(ComActSocialProject)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-12-22 14:02:46
+ */
+@Mapper
+public interface ComActSocialProjectDao extends BaseMapper<ComActSocialProject> {
+
+    /**
+     * 分页查询
+     * @param page
+     * @param commonPage
+     * @return
+     */
+    IPage<SocialProjectVO> pageList(Page page, @Param("commonPage")CommonPage commonPage);
+
+    /**
+     * 小程序查询项目详情
+     * @param id
+     * @return
+     */
+    SocialProjectVO getByApplet(Long id);
+
+    /**
+     * 河门口大屏项目基础数据
+     * @return
+     */
+    BigScreenHmkProjectInfo selectBaseInfo(Long communityId);
+
+    /**
+     * 河门口大屏项目分类
+     * @param orgName
+     * @param communityId
+     * @return
+     */
+    List<BigScreenHmkProjectTypeInfo> selectType(@Param("orgName")String orgName,@Param("communityId")Long communityId);
+
+    /**
+     * 根据活动类型查询数量
+     * @param type
+     * @return
+     */
+    Integer selectActivity(@Param("type") Integer type,@Param("communityId")Long communityId);
+
+    /**
+     * 首页基础数据
+     * @return
+     */
+    BigScreenHmkBaseInfo selectIndexBaseInfo();
+
+    /**
+     * 河门口大屏活动折线
+     * @param date
+     * @param year
+     * @return
+     */
+    BigScreenActivityLine selectActivityCountMonth(@Param("date") String date,@Param("year") String year);
+
+    /**
+     * id查询
+     * @param id
+     * @return
+     */
+    SocialProjectVO selectByLevel(Long id);
+
+    /**
+     * 分页查询项目报名列表
+     * @param page
+     * @param pageProjectSignListDTO
+     * @return
+     */
+    IPage<ComActSocialOrgVO> pageProjectSignList(@Param("page") Page page, @Param("pageProjectSignListDTO") PageProjectSignListDTO pageProjectSignListDTO);
+
+    /**
+     * 分页查询用户报名的项目
+     * @param page
+     * @param pageProjectDTO
+     * @return
+     */
+    IPage<SocialProjectVO> pageProjectWhichIsSignedByUser(@Param("page") Page page, @Param("pageProjectDTO") PageProjectDTO pageProjectDTO);
+
+    /**
+     * 五社联动项目展示列表
+     * @param pageBaseDTO
+     * @param streetId
+     * @return
+     */
+    IPage<SocialProjectVO> pageSocialProjectList(@Param("page") Page page, @Param("pageBaseDTO") PageBaseDTO pageBaseDTO, @Param("streetId") Long streetId);
+
+    /**
+     * 五社联动基础数据
+     * @param communityId
+     * @param streetId
+     * @return
+     */
+    BigScreenFiveAssociationsStatisticsInfo getFiveAssociationsBaseData(@Param("communityId") Long communityId, @Param("streetId") Long streetId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialProjectMemberDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialProjectMemberDao.java
new file mode 100644
index 0000000..b7d45c3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialProjectMemberDao.java
@@ -0,0 +1,28 @@
+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.property.CommonPage;
+import com.panzhihua.common.model.vos.community.social.ComActSocialProjectMemberVO;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComActSocialProjectMember;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 项目人员(ComActSocialProjectMember)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-12-23 15:16:42
+ */
+@Mapper
+public interface ComActSocialProjectMemberDao extends BaseMapper<ComActSocialProjectMember> {
+
+    /**
+     * 分页查询
+     * @param page
+     * @param commonPage
+     * @return
+     */
+    IPage<ComActSocialProjectMemberVO> pageList(Page page, @Param("commonPage")CommonPage commonPage);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialProjectPublicityDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialProjectPublicityDao.java
new file mode 100644
index 0000000..0f22659
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialProjectPublicityDao.java
@@ -0,0 +1,34 @@
+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.property.CommonPage;
+import com.panzhihua.common.model.vos.community.social.ComActSocialProjectPublicityVO;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComActSocialProjectPublicity;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 项目宣传表(ComActSocialProjectPublicity)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-12-23 14:30:54
+ */
+@Mapper
+public interface ComActSocialProjectPublicityDao extends BaseMapper<ComActSocialProjectPublicity> {
+    /**
+     * 分页查询
+     * @param page
+     * @param commonPage
+     * @return
+     */
+    IPage<ComActSocialProjectPublicityVO> pageList(Page page, @Param("commonPage")CommonPage commonPage);
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    ComActSocialProjectPublicityVO selectOne(Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialProjectScheduleDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialProjectScheduleDao.java
new file mode 100644
index 0000000..dae820a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialProjectScheduleDao.java
@@ -0,0 +1,16 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComActSocialProjectSchedule;
+
+/**
+ * 项目进度表(ComActSocialProjectSchedule)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-12-23 14:31:15
+ */
+@Mapper
+public interface ComActSocialProjectScheduleDao extends BaseMapper<ComActSocialProjectSchedule> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialProjectSignDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialProjectSignDAO.java
new file mode 100644
index 0000000..ce1574f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialProjectSignDAO.java
@@ -0,0 +1,39 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComActSocialProjectSign;
+
+/**
+ * (ComActSocialProjectSign)表数据库访问层
+ *
+ * @author makejava
+ * @since 2022-04-19 13:30:42
+ */
+@Mapper
+public interface ComActSocialProjectSignDAO extends BaseMapper<ComActSocialProjectSign> {
+
+    /**
+     * 批量新增数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<ComActSocialProjectSign> 实例对象列表
+     * @return 影响行数
+     */
+    int insertBatch(@Param("entities") List<ComActSocialProjectSign> entities);
+
+    /**
+     * 批量新增或按主键更新数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<ComActSocialProjectSign> 实例对象列表
+     * @return 影响行数
+     * @throws org.springframework.jdbc.BadSqlGrammarException
+     *             入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
+     */
+    int insertOrUpdateBatch(@Param("entities") List<ComActSocialProjectSign> entities);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialWorkerDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialWorkerDao.java
new file mode 100644
index 0000000..99361f4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialWorkerDao.java
@@ -0,0 +1,73 @@
+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.civil.ComActSocialExportVO;
+import com.panzhihua.common.model.dtos.civil.ComActSocialWorkerExcelVO;
+import com.panzhihua.common.model.dtos.civil.PageComActSocialWorkerDTO;
+import com.panzhihua.common.model.vos.civil.ComActSocialWorkerVO;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenHmkProjectTypeInfo;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComActSocialWorker;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 社工(ComActSocialWorker)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-10-25 10:56:47
+ */
+@Mapper
+public interface ComActSocialWorkerDao extends BaseMapper<ComActSocialWorker> {
+    /**
+     * 分页查询
+     * @param pageComActSocialWorkerDTO
+     * @return
+     */
+    IPage<ComActSocialWorkerVO> findByPage(Page page, @Param("pageComActSocialWorkerDTO") PageComActSocialWorkerDTO pageComActSocialWorkerDTO);
+
+    /**
+     * 导出
+     * @param comActSocialWorkerDO
+     * @return
+     */
+    List<ComActSocialWorkerExcelVO> queryAll(ComActSocialExportVO comActSocialWorkerDO);
+
+    /**
+     * 查询社工人数
+     * @param type
+     * @return
+     */
+    Integer selectType(@Param("type") Integer type,@Param("communityId")Long communityId);
+
+    /**
+     * 社工技能分布查询
+     * @return
+     */
+    List<BigScreenHmkProjectTypeInfo> selectSkillType(Long communityId);
+
+    /**
+     * 活动社工查询
+     * @param page
+     * @param id
+     * @return
+     */
+    IPage<ComActSocialWorkerVO> selectActivity(Page page,@Param("id") Long id);
+
+    /**
+     * 查询社工详情
+     * @param id
+     * @return
+     */
+    ComActSocialWorkerVO selectOneById(Long id);
+
+    /**
+     * 根据技能id查询社工列表
+     * @param id
+     * @return
+     */
+    List<ComActSocialWorker> selectIncludeSkillWorkerList(@Param("id") Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialWorkerServiceDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialWorkerServiceDao.java
new file mode 100644
index 0000000..c8da025
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActSocialWorkerServiceDao.java
@@ -0,0 +1,36 @@
+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.property.CommonPage;
+import com.panzhihua.common.model.vos.community.social.ComActSocialWorkerServiceVO;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComActSocialWorkerService;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 社工服务表(ComActSocialWorkerService)表数据库访问层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 社工服务表相关功能
+ *
+ * @author zzj
+ * @since 2022-02-16 15:59:41
+ */
+@Mapper
+public interface ComActSocialWorkerServiceDao extends BaseMapper<ComActSocialWorkerService> {
+    /**
+     * 根据userId获取服务信息
+     * @param page
+     * @param commonPage
+     * @return
+     */
+    IPage<ComActSocialWorkerServiceVO> pageList(Page page, @Param("commonPage") CommonPage commonPage);
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    ComActSocialWorkerServiceVO getById(Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActUserWalletChangeMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActUserWalletChangeMapper.java
new file mode 100644
index 0000000..a45ce90
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActUserWalletChangeMapper.java
@@ -0,0 +1,16 @@
+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.ComActUserWalletChangeDO;
+
+/**
+ * @auther lyq
+ * @create 2021-06-25 10:35:34
+ * @describe 用户钱包资产变动记录表mapper类
+ */
+@Mapper
+public interface ComActUserWalletChangeMapper extends BaseMapper<ComActUserWalletChangeDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActUserWalletMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActUserWalletMapper.java
new file mode 100644
index 0000000..fb1b105
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActUserWalletMapper.java
@@ -0,0 +1,52 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.Map;
+
+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.wallet.PageComActWalletAdminDTO;
+import com.panzhihua.common.model.dtos.community.wallet.PageComActWalletTradeDTO;
+import com.panzhihua.common.model.vos.community.wallet.ComActWalletAdminVO;
+import com.panzhihua.common.model.vos.community.wallet.ComActWalletRankingVO;
+import com.panzhihua.service_community.model.dos.ComActUserWalletDO;
+
+/**
+ * @auther lyq
+ * @create 2021-06-25 10:35:11
+ * @describe 用户钱包表mapper类
+ */
+@Mapper
+public interface ComActUserWalletMapper extends BaseMapper<ComActUserWalletDO> {
+
+    Map<String, String> getCommunityName(@Param("communityId") Long communityId, @Param("type") Integer type);
+
+    Map<String, String> getAgreementContent(@Param("communityId") Long communityId, @Param("type") Integer type);
+
+    /**
+     * 查询用户绑定的社区收益排行榜
+     * 
+     * @param walletTradeDTO
+     *            请求参数
+     * @return 社区收益排行榜
+     */
+    IPage<ComActWalletRankingVO> getWalletRanking(Page page,
+        @Param("walletTradeDTO") PageComActWalletTradeDTO walletTradeDTO);
+
+    /**
+     * 分页查询收益结算列表
+     * 
+     * @param pageWalletAdminDTO
+     *            请求参数
+     * @return 收益结算列表
+     */
+    IPage<ComActWalletAdminVO> getUserWalletList(Page page,
+        @Param("pageWalletAdminDTO") PageComActWalletAdminDTO pageWalletAdminDTO);
+
+    void insertSysAgreement(@Param("content") String content, @Param("name") String name,
+        @Param("communityId") Long communityId, @Param("type") Integer type);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActUserWalletTradeMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActUserWalletTradeMapper.java
new file mode 100644
index 0000000..c581921
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActUserWalletTradeMapper.java
@@ -0,0 +1,67 @@
+package com.panzhihua.service_community.dao;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+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.wallet.PageComActWalletTradeAdminDTO;
+import com.panzhihua.common.model.dtos.community.wallet.PageComActWalletTradeDTO;
+import com.panzhihua.common.model.vos.community.ComActUserWalletTradeExcelVO;
+import com.panzhihua.common.model.vos.community.ComActUserWalletTradeRewardExcelVO;
+import com.panzhihua.common.model.vos.community.wallet.ComActWalletTradeAdminVO;
+import com.panzhihua.common.model.vos.community.wallet.ComActWalletTradeStatisticsAdminVO;
+import com.panzhihua.common.model.vos.community.wallet.ComActWalletTradeVO;
+import com.panzhihua.service_community.model.dos.ComActUserWalletTradeDO;
+
+/**
+ * @auther lyq
+ * @create 2021-06-25 10:35:22
+ * @describe 用户钱包交易记录表mapper类
+ */
+@Mapper
+public interface ComActUserWalletTradeMapper extends BaseMapper<ComActUserWalletTradeDO> {
+
+    /**
+     * 查询用户收支记录列表
+     * 
+     * @param walletTradeDTO
+     *            请求参数
+     * @return 收支记录
+     */
+    IPage<ComActWalletTradeVO> getUserWalletTradeList(Page page,
+        @Param("walletTradeDTO") PageComActWalletTradeDTO walletTradeDTO);
+
+    /**
+     * 分页查询交易记录
+     *
+     * @param pageTradeAdminDTO
+     *            请求参数
+     * @return 交易记录列表
+     */
+    IPage<ComActWalletTradeAdminVO> getUserWalletTradeAdmin(Page page,
+        @Param("walletTradeDTO") PageComActWalletTradeAdminDTO pageTradeAdminDTO);
+
+    /**
+     * 查询用户交易记录总额
+     * 
+     * @param pageTradeAdminDTO
+     *            请求参数
+     * @return 交易记录总额
+     */
+    BigDecimal
+        getTradeUserTotalWalletTradeAdmin(@Param("walletTradeDTO") PageComActWalletTradeAdminDTO pageTradeAdminDTO);
+
+    List<ComActUserWalletTradeExcelVO> getTradeUserTotalWalletTradeExportAdmin(
+        @Param("walletTradeDTO") PageComActWalletTradeAdminDTO pageTradeAdminDTO);
+
+    List<ComActUserWalletTradeRewardExcelVO> getTradeUserTotalJLWalletTradeExportAdmin(
+        @Param("walletTradeDTO") PageComActWalletTradeAdminDTO pageTradeAdminDTO);
+
+    ComActWalletTradeStatisticsAdminVO
+        getTradeUserStatisticsAdmin(@Param("walletTradeDTO") PageComActWalletTradeAdminDTO pageTradeAdminDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActVillageDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActVillageDAO.java
new file mode 100644
index 0000000..aa86c6b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActVillageDAO.java
@@ -0,0 +1,111 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.grid.ComMngVillageListAppDTO;
+import com.panzhihua.common.model.dtos.grid.admin.ComMngVillageListExportAdminDTO;
+import com.panzhihua.common.model.vos.community.ComMngVillageTotalVO;
+import com.panzhihua.common.model.vos.community.ComMngVillageVO;
+import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingVO;
+import com.panzhihua.common.model.vos.grid.PageComMngVillageVO;
+import com.panzhihua.common.model.vos.grid.admin.ComMngVillageStatisticsVO;
+import com.panzhihua.common.model.vos.grid.admin.excel.ComMngVillageExportExcelVO;
+import com.panzhihua.service_community.model.dos.ComMngVillageDO;
+
+/**
+ * @author: llming
+ * @description: 街道
+ **/
+@Mapper
+public interface ComActVillageDAO extends BaseMapper<ComMngVillageDO> {
+
+    @Select("select count(id) as houseTotal"
+        + ",(select count(DISTINCT floor) from com_mng_population_house where village_id = #{villageId}) as floorTotal"
+        + ",(select count(id) from com_mng_population  where road = (select alley from com_mng_village where village_id = #{villageId})"
+        + " and door_no = (select house_num from com_mng_village where village_id = #{villageId})) as populationTotal"
+        + ",(select count(id) from com_mng_car where area_id = #{villageId}) as carTotal"
+        + " from com_mng_population_house where village_id = #{villageId}")
+    ComMngVillageVO getStatisticsCount(@Param("villageId") Long villageId);
+
+    @Select("select count(distinct `name`) as villageTotal"
+        + ",(select count(distinct `name`) from com_mng_village where community_id = ${communityId} and type = 1) as townTotal"
+        + ",(select count(distinct `name`) from com_mng_village where community_id = ${communityId} and type = 2) as countrysideTotal"
+        + " from com_mng_village where community_id = ${communityId}")
+    ComMngVillageTotalVO getVillageStatisticsCount(@Param("communityId") Long communityId);
+
+    @Select("select village_id,alley,house_num,group_at,type,address,update_at from com_mng_village where village_id = #{villageId}")
+    ComMngVillageVO getVillageById(@Param("villageId") Long villageId);
+
+    @Select("<script> " + "SELECT " + " village_id, " + " `name` AS userName, " + " IFNULL((select count(id) from com_mng_building where village_id = cmv.village_id),0) as buildSum, " + " address, "
+        + " create_at as createAt, " + " lng, " + " lat, "
+        + " ( SELECT count( id ) FROM com_mng_population WHERE village_id = cmv.village_id ) AS userSum, "
+        + " ( SELECT count( id ) FROM com_mng_population_house WHERE village_id = cmv.village_id ) AS houseNum, "
+        + " ( SELECT count( id ) FROM com_mng_population WHERE village_id = cmv.village_id AND out_or_local = 1 ) AS registerNum, "
+        + " ( SELECT count( id ) FROM com_mng_population WHERE village_id = cmv.village_id AND is_rent = 2 ) AS rentNum  "
+        + "FROM " + " com_mng_village AS cmv where 1=1 " + "<if test='villageListAppDTO.communityId != null'>"
+        + " and cmv.community_id = ${villageListAppDTO.communityId} " + " </if> "
+        + "<if test='villageListAppDTO.address != null and villageListAppDTO.address != &quot;&quot;'>"
+        + " and cmv.address like concat(#{villageListAppDTO.address},'%') " + " </if> "
+        + "<if test='villageListAppDTO.alley != null and villageListAppDTO.alley != &quot;&quot;'>"
+        + " and cmv.alley like concat(#{villageListAppDTO.alley},'%') " + " </if> "
+        + "<if test='villageListAppDTO.houseNum != null and villageListAppDTO.houseNum != &quot;&quot;'>"
+        + " and cmv.house_num like concat(#{villageListAppDTO.houseNum},'%') " + " </if> "
+        + "<if test='villageListAppDTO.groupAt != null and villageListAppDTO.groupAt != &quot;&quot;'>"
+        + " and cmv.group_at like concat(#{villageListAppDTO.groupAt},'%') " + " </if> "
+        + "<if test='villageListAppDTO.name != null and villageListAppDTO.name != &quot;&quot;'>"
+        + " and cmv.name like concat(#{villageListAppDTO.name},'%') " + " </if> "
+        + "<if test='villageListAppDTO.sortColumns!=null'>"
+        + " ORDER BY ${villageListAppDTO.sortColumns} ${villageListAppDTO.sortType} " + " </if>" + " </script>")
+    IPage<PageComMngVillageVO> getGridVillageList(Page page,
+        @Param("villageListAppDTO") ComMngVillageListAppDTO villageListAppDTO);
+
+    IPage<PageComMngVillageVO> getGridVillageListApp(Page page,
+                                                  @Param("villageListAppDTO") ComMngVillageListAppDTO villageListAppDTO);
+
+    @Select("<script> " + "SELECT " + " alley, " + " house_num as doorNum, " + " `name` AS userName, " + " build_sum, "
+        + " address, " + " create_at as createAt, "
+        + " ( SELECT count( id ) FROM com_mng_population WHERE village_id = cmv.village_id ) AS userSum, "
+        + " ( SELECT count( id ) FROM com_mng_population_house WHERE village_id = cmv.village_id ) AS houseNum "
+        + "FROM " + " com_mng_village AS cmv where 1=1 " + "<if test='villageListAppDTO.communityId != null'>"
+        + " and cmv.community_id = ${villageListAppDTO.communityId} " + " </if> "
+        + "<if test='villageListAppDTO.villageIds != null and villageListAppDTO.villageIds.size > 0'>"
+        + " and cmv.village_id in "
+        + "<foreach item='item' collection='villageListAppDTO.villageIds' separator=',' open='(' close=')' index=''> "
+        + "#{item}" + "</foreach>" + " </if> "
+        + "<if test='villageListAppDTO.address != null and villageListAppDTO.address != &quot;&quot;'>"
+        + " and cmv.address like concat(#{villageListAppDTO.address},'%') " + " </if> "
+        + "<if test='villageListAppDTO.alley != null and villageListAppDTO.alley != &quot;&quot;'>"
+        + " and cmv.alley like concat(#{villageListAppDTO.alley},'%') " + " </if> "
+        + "<if test='villageListAppDTO.houseNum != null and villageListAppDTO.houseNum != &quot;&quot;'>"
+        + " and cmv.house_num like concat(#{villageListAppDTO.houseNum},'%') " + " </if> "
+        + "<if test='villageListAppDTO.groupAt != null and villageListAppDTO.groupAt != &quot;&quot;'>"
+        + " and cmv.group_at like concat(#{villageListAppDTO.groupAt},'%') " + " </if> "
+        + "<if test='villageListAppDTO.name != null and villageListAppDTO.name != &quot;&quot;'>"
+        + " and cmv.name like concat(#{villageListAppDTO.name},'%') " + " </if> "
+        + "<if test='villageListAppDTO.sortColumns!=null'>"
+        + " ORDER BY ${villageListAppDTO.sortColumns} ${villageListAppDTO.sortType} " + " </if>" + " </script>")
+    List<ComMngVillageExportExcelVO>
+        getGridVillageLists(@Param("villageListAppDTO") ComMngVillageListExportAdminDTO villageListAppDTO);
+
+    @Select("SELECT DISTINCT " + " village_id," + " floor, " + " unit_no  " + "FROM "
+        + " com_mng_population_house AS cmph  " + "WHERE " + " village_id = #{villageId}")
+    List<ComMngVillageBuildingVO> getGridVillageBuildingList(@Param("villageId") Long villageId);
+
+    @Select("<script> " + " select count(village_id) from com_mng_population_house where village_id in "
+        + "<foreach item='item' collection='villageIds' separator=',' open='(' close=')' index=''> " + "#{item} "
+        + "</foreach>" + "</script>")
+    Integer getVillageHouseCount(@Param("villageIds") List<Long> villageIds);
+
+    @Select("SELECT " + " count( village_id ) AS villageNum, "
+        + " ( SELECT count( village_id ) FROM ( SELECT DISTINCT village_id, floor FROM com_mng_population_house ) AS floor ) AS floorNum, "
+        + " ( SELECT count( id ) FROM com_mng_population_house ) AS houseNum, "
+        + " ( SELECT count( id ) FROM com_mng_population ) AS userNum  " + "FROM " + " com_mng_village")
+    ComMngVillageStatisticsVO getGridVillageStatistics();
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActWarehouseApplyDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActWarehouseApplyDao.java
new file mode 100644
index 0000000..c0c0fa7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActWarehouseApplyDao.java
@@ -0,0 +1,51 @@
+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.property.CommonPage;
+import com.panzhihua.common.model.vos.community.warehouse.ApplyStatistics;
+import com.panzhihua.common.model.vos.community.warehouse.ComActWarehouseApplyVO;
+import com.panzhihua.service_community.entity.ComActWarehouseApply;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 物品申请表(ComActWarehouseApply)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-10-09 17:13:52
+ */
+@Mapper
+public interface ComActWarehouseApplyDao extends BaseMapper<ComActWarehouseApply> {
+    /**
+     * 分页查询
+     * @param page
+     * @param commonPage
+     * @return
+     */
+    IPage<ComActWarehouseApplyVO> queryAll(Page page, @Param("commonPage")CommonPage commonPage);
+
+    /**
+     * 申领统计
+     * @param communityId
+     * @return ApplyStatistics
+     */
+    ApplyStatistics selectStatics(Long communityId);
+
+    /**
+     * 主键查询详情
+     * @param id
+     * @return ComActWarehouseApplyVO
+     */
+    ComActWarehouseApplyVO selectById(Integer id);
+
+    /**
+     * 条件导出
+     * @param commonPage
+     * @return
+     */
+    List<ComActWarehouseApplyVO> queryAll(@Param("commonPage") CommonPage commonPage);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActWarehouseBaseDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActWarehouseBaseDao.java
new file mode 100644
index 0000000..05febc2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActWarehouseBaseDao.java
@@ -0,0 +1,16 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComActWarehouseBase;
+
+/**
+ * 义仓基础设置表(ComActWarehouseBase)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-10-11 09:21:52
+ */
+@Mapper
+public interface ComActWarehouseBaseDao extends BaseMapper<ComActWarehouseBase> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActWarehouseDonatesDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActWarehouseDonatesDao.java
new file mode 100644
index 0000000..a906f87
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActWarehouseDonatesDao.java
@@ -0,0 +1,97 @@
+package com.panzhihua.service_community.dao;
+
+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.warehouse.PageDonatesDTO;
+import com.panzhihua.common.model.vos.community.warehouse.ComActWarehouseDonatesVO;
+import com.panzhihua.common.model.vos.community.warehouse.DonatesStatisticsVO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.common.model.dtos.community.warehouse.ExportDonatesDTO;
+import com.panzhihua.common.model.vos.community.warehouse.ExportDonatesVO;
+import com.panzhihua.service_community.entity.ComActWarehouseDonates;
+
+/**
+ * 爱心义仓/物品捐赠表(ComActWarehouseDonates)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-10-09 17:14:15
+ */
+@Mapper
+public interface ComActWarehouseDonatesDao extends BaseMapper<ComActWarehouseDonates> {
+
+    /**
+     * 批量插入捐赠物品
+     * @param donateList
+     * @return
+     */
+    int batchInsertDonates(@Param("donateList") List<ComActWarehouseDonates> donateList);
+
+    /**
+     * 根据id查找导出数据
+     * @param needExportIds
+     * @return
+     */
+    List<ExportDonatesVO> exportDonatesByIds(@Param("needExportIds") List<Long> needExportIds);
+
+    /**
+     * 根据查询条件导出数据
+     * @param exportDonatesDTO
+     * @return
+     */
+    List<ExportDonatesVO> exportDonatesBySearch(@Param("exportDonatesDTO") ExportDonatesDTO exportDonatesDTO);
+
+    /**
+     * 社区后台分页查询捐赠物品
+     * @param page
+     * @param pageDonatesDTO
+     * @return
+     */
+    IPage<ComActWarehouseDonatesVO> pageDonates(@Param("page") Page page, @Param("pageDonatesDTO") PageDonatesDTO pageDonatesDTO);
+
+    /**
+     * 查看捐赠详情
+     * @param donatesId
+     * @return
+     */
+    ComActWarehouseDonatesVO selectDetailById(@Param("donatesId") Long donatesId);
+
+    /**
+     * 捐赠物品统计查询
+     * @param communityId
+     * @param currentYear
+     * @param currentMonth
+     * @param today
+     * @return
+     */
+    DonatesStatisticsVO selectDonatesStatistics(@Param("communityId") Long communityId, @Param("currentYear") String currentYear,
+                                                @Param("currentMonth") String currentMonth, @Param("today") String today);
+
+    /**
+     * 居民自治大屏-捐赠记录
+     * @param communityId
+     * @param pageSize
+     * @return
+     */
+    List<String> getWarehouseDonateRecords(@Param("communityId") Long communityId, @Param("pageSize") Integer pageSize);
+
+    /**
+     * 居民自治大屏-爱心传递
+     * @param communityId
+     * @param pageSize
+     * @return
+     */
+    List<String> getWarehouseLoveTransfer(@Param("communityId") Long communityId, @Param("pageSize") Integer pageSize);
+
+    /**
+     * 居民自治大屏-捐赠物品图片
+     * @param communityId
+     * @param pageSize
+     * @return
+     */
+    List<String> getWarehouseImages(@Param("communityId") Long communityId, @Param("pageSize") Integer pageSize);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActWarehouseOperationDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActWarehouseOperationDao.java
new file mode 100644
index 0000000..f4ce77e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActWarehouseOperationDao.java
@@ -0,0 +1,44 @@
+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.property.CommonPage;
+import com.panzhihua.common.model.vos.community.warehouse.ComActWarehouseOperationVO;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComActWarehouseOperation;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 爱心义操作表(ComActWarehouseOperation)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-10-09 17:14:34
+ */
+@Mapper
+public interface ComActWarehouseOperationDao extends BaseMapper<ComActWarehouseOperation> {
+
+    /**
+     * 批量插入操作记录
+     * @param operationList
+     * @return
+     */
+    int batchInsertOperation(@Param("operationList") List<ComActWarehouseOperation> operationList);
+
+    /**
+     * 分页查询
+     * @param page
+     * @param commonPage
+     * @return
+     */
+    IPage<ComActWarehouseOperationVO> pageList(Page page, @Param("commonPage")CommonPage commonPage);
+
+    /**
+     * 获取捐赠物品相关操作记录
+     * @param donatesId
+     * @return
+     */
+    List<ComActWarehouseOperationVO> selectList(@Param("donatesId") Long donatesId);
+}
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..71a824e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActWorkGuideClassifyDAO.java
@@ -0,0 +1,33 @@
+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.vos.community.ComActWorkGuideAppletsVO;
+import com.panzhihua.common.model.vos.community.ComActWorkGuideClassifyVO;
+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(String areaCode);
+
+}
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
new file mode 100644
index 0000000..45a5e7f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActWorkGuideDAO.java
@@ -0,0 +1,41 @@
+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;
+
+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.PageActWorkGuideDTO;
+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,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.areaCode != null'>"
+        + "and area_code = #{pageActWorkGuideDTO.areaCode} " + " </if> "
+        + "<if test='pageActWorkGuideDTO.title != null and pageActWorkGuideDTO.title.trim() != &quot;&quot;'>"
+        + "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/ComActWorkGuideMaterialDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActWorkGuideMaterialDAO.java
new file mode 100644
index 0000000..edeec7e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComActWorkGuideMaterialDAO.java
@@ -0,0 +1,12 @@
+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.ComActWorkGuideMaterialDO;
+
+/**
+ * @description: 办事指南材料
+ **/
+@Mapper
+public interface ComActWorkGuideMaterialDAO extends BaseMapper<ComActWorkGuideMaterialDO> {}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComAreaTownCommunityDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComAreaTownCommunityDao.java
new file mode 100644
index 0000000..e31fbdc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComAreaTownCommunityDao.java
@@ -0,0 +1,31 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.common.model.vos.community.acid.ComAreaCounty;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComAreaTownCommunity;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * (ComAreaTownCommunity)表数据库访问层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 相关功能
+ *
+ * @author zzj
+ * @since 2022-04-10 17:37:32
+ */
+@Mapper
+public interface ComAreaTownCommunityDao extends BaseMapper<ComAreaTownCommunity> {
+    List<ComAreaCounty> selectArea();
+    List<ComAreaCounty> selectTown(String area);
+    List<ComAreaCounty> selectCommunity(@Param("town") String town,@Param("area")String area);
+
+    /**
+     * 根据区域名称查询街道
+     * @param area
+     * @return
+     */
+    List<String> selectDistinctTown(String area);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryCommodityActivityMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryCommodityActivityMapper.java
new file mode 100644
index 0000000..a5d0e24
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryCommodityActivityMapper.java
@@ -0,0 +1,58 @@
+package com.panzhihua.service_community.dao;
+
+import com.panzhihua.service_community.entity.ComBatteryCommodityActivity;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.common.*;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import java.util.List;
+
+/**
+ * title: 电动车商城-商家活动表表数据库访问层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商家活动表表数据库访问层
+ *
+ * @author lyq
+ * @date 2022-03-29 13:17:38
+ */
+@Mapper
+public interface ComBatteryCommodityActivityMapper extends BaseMapper<ComBatteryCommodityActivity> {
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 13:17:38
+     */
+    ComBatteryCommodityActivityVo queryById(Long id);
+
+    /**
+     * description  queryAllByLimit  分页查询
+     *
+     * @param comBatteryCommodityActivity 请求参数
+     * @param page                        分页参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-29 13:17:38
+     */
+    IPage<ComBatteryCommodityActivityVo> queryAllByLimit(@Param("dto") PageComBatteryCommodityActivityDto comBatteryCommodityActivity, Page page);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommodityActivity 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 13:17:38
+     */
+    List<ComBatteryCommodityActivityVo> queryAllByList(@Param("dto") PageComBatteryCommodityActivityDto comBatteryCommodityActivity);
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryCommodityMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryCommodityMapper.java
new file mode 100644
index 0000000..5aab8b5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryCommodityMapper.java
@@ -0,0 +1,72 @@
+package com.panzhihua.service_community.dao;
+
+import com.panzhihua.service_community.entity.ComBatteryCommodity;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.common.*;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import java.util.List;
+
+/**
+ * title: 电动车商城-商品表表数据库访问层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商品表表数据库访问层
+ *
+ * @author lyq
+ * @date 2022-03-28 14:59:58
+ */
+@Mapper
+public interface ComBatteryCommodityMapper extends BaseMapper<ComBatteryCommodity> {
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-28 14:59:58
+     */
+    ComBatteryCommodityVo queryById(Long id);
+
+    /**
+     * description  queryAllByLimit  分页查询
+     *
+     * @param comBatteryCommodity 请求参数
+     * @param page                分页参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-28 14:59:58
+     */
+    IPage<ComBatteryCommodityVo> queryAllByLimit(@Param("dto") PageComBatteryCommodityDto comBatteryCommodity, Page page);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommodity 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-28 14:59:58
+     */
+    List<ComBatteryCommodityVo> queryAllByList(@Param("dto") PageComBatteryCommodityDto comBatteryCommodity);
+
+    /**
+     * 小程序查询商品列表
+     * @param comBatteryCommodity   请求参数
+     * @return  商品列表
+     */
+    IPage<ComBatteryCommodityVo> queryByAppletsPage(@Param("dto") PageComBatteryCommodityDto comBatteryCommodity, Page page);
+
+    /**
+     * 查询分类下的商品列表
+     * @param classId   分类id
+     * @return  商品列表
+     */
+    List<ComBatteryCommodityVo> queryAllByClassIdList(@Param("classId") Long classId);
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryCommodityOrderBargainMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryCommodityOrderBargainMapper.java
new file mode 100644
index 0000000..1e0f50e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryCommodityOrderBargainMapper.java
@@ -0,0 +1,58 @@
+package com.panzhihua.service_community.dao;
+
+import com.panzhihua.service_community.entity.ComBatteryCommodityOrderBargain;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.common.*;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import java.util.List;
+
+/**
+ * title: 电动车商城-砍价订单记录表表数据库访问层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-砍价订单记录表表数据库访问层
+ *
+ * @author lyq
+ * @date 2022-03-29 16:06:34
+ */
+@Mapper
+public interface ComBatteryCommodityOrderBargainMapper extends BaseMapper<ComBatteryCommodityOrderBargain> {
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 16:06:34
+     */
+    ComBatteryCommodityOrderBargainVo queryById(Long id);
+
+    /**
+     * description  queryAllByLimit  分页查询
+     *
+     * @param comBatteryCommodityOrderBargain 请求参数
+     * @param page                            分页参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-29 16:06:34
+     */
+    IPage<ComBatteryCommodityOrderBargainVo> queryAllByLimit(@Param("dto") PageComBatteryCommodityOrderBargainDto comBatteryCommodityOrderBargain, Page page);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommodityOrderBargain 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 16:06:34
+     */
+    List<ComBatteryCommodityOrderBargainVo> queryAllByList(@Param("dto") PageComBatteryCommodityOrderBargainDto comBatteryCommodityOrderBargain);
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryCommodityOrderBargainRecordMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryCommodityOrderBargainRecordMapper.java
new file mode 100644
index 0000000..439e1c8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryCommodityOrderBargainRecordMapper.java
@@ -0,0 +1,65 @@
+package com.panzhihua.service_community.dao;
+
+import com.panzhihua.service_community.entity.ComBatteryCommodityOrderBargainRecord;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.common.*;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import java.util.List;
+
+/**
+ * title: 电动车商城-订单砍价记录表表数据库访问层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-订单砍价记录表表数据库访问层
+ *
+ * @author lyq
+ * @date 2022-03-29 16:06:45
+ */
+@Mapper
+public interface ComBatteryCommodityOrderBargainRecordMapper extends BaseMapper<ComBatteryCommodityOrderBargainRecord> {
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 16:06:45
+     */
+    ComBatteryCommodityOrderBargainRecordVo queryById(Long id);
+
+    /**
+     * description  queryAllByLimit  分页查询
+     *
+     * @param comBatteryCommodityOrderBargainRecord 请求参数
+     * @param page                                  分页参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-29 16:06:45
+     */
+    IPage<ComBatteryCommodityOrderBargainRecordVo> queryAllByLimit(@Param("dto") PageComBatteryCommodityOrderBargainRecordDto comBatteryCommodityOrderBargainRecord, Page page);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommodityOrderBargainRecord 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 16:06:45
+     */
+    List<ComBatteryCommodityOrderBargainRecordVo> queryAllByList(@Param("dto") PageComBatteryCommodityOrderBargainRecordDto comBatteryCommodityOrderBargainRecord);
+
+    /**
+     * 根据砍价记录id查询好友帮砍价记录
+     * @param bargainId 砍价记录id
+     * @return  好友帮砍价记录
+     */
+    List<ComBatteryCommodityOrderBargainRecordVo> queryAllByBargainId(@Param("bargainId") Long bargainId);
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryCommodityOrderCollageTeamMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryCommodityOrderCollageTeamMapper.java
new file mode 100644
index 0000000..1cb5107
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryCommodityOrderCollageTeamMapper.java
@@ -0,0 +1,67 @@
+package com.panzhihua.service_community.dao;
+
+import com.panzhihua.service_community.entity.ComBatteryCommodityOrderCollageTeam;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.common.*;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * title: 电动车商城-拼团订单团队表表数据库访问层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-拼团订单团队表表数据库访问层
+ *
+ * @author lyq
+ * @date 2022-03-29 16:06:56
+ */
+@Mapper
+public interface ComBatteryCommodityOrderCollageTeamMapper extends BaseMapper<ComBatteryCommodityOrderCollageTeam> {
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 16:06:56
+     */
+    ComBatteryCommodityOrderCollageTeamVo queryById(Long id);
+
+    /**
+     * description  queryAllByLimit  分页查询
+     *
+     * @param comBatteryCommodityOrderCollageTeam 请求参数
+     * @param page                                分页参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-29 16:06:56
+     */
+    IPage<ComBatteryCommodityOrderCollageTeamVo> queryAllByLimit(@Param("dto") PageComBatteryCommodityOrderCollageTeamDto comBatteryCommodityOrderCollageTeam, Page page);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommodityOrderCollageTeam 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 16:06:56
+     */
+    List<ComBatteryCommodityOrderCollageTeamVo> queryAllByList(@Param("dto") PageComBatteryCommodityOrderCollageTeamDto comBatteryCommodityOrderCollageTeam);
+
+    /**
+     * 查询用户是否已经参与以下团队信息
+     * @param teamId    团队id
+     * @param userId    用户id
+     * @return  是否已经参与以下团队信息
+     */
+    Map<String,Object> getUserCollageDetail(@Param("teamId") Long teamId,@Param("userId") Long userId);
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryCommodityOrderCollageTeamPeopleMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryCommodityOrderCollageTeamPeopleMapper.java
new file mode 100644
index 0000000..5cf49ea
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryCommodityOrderCollageTeamPeopleMapper.java
@@ -0,0 +1,65 @@
+package com.panzhihua.service_community.dao;
+
+import com.panzhihua.service_community.entity.ComBatteryCommodityOrderCollageTeamPeople;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.common.*;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import java.util.List;
+
+/**
+ * title: 电动车商城-拼团活动团队人员表表数据库访问层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-拼团活动团队人员表表数据库访问层
+ *
+ * @author lyq
+ * @date 2022-03-29 16:07:08
+ */
+@Mapper
+public interface ComBatteryCommodityOrderCollageTeamPeopleMapper extends BaseMapper<ComBatteryCommodityOrderCollageTeamPeople> {
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 16:07:08
+     */
+    ComBatteryCommodityOrderCollageTeamPeopleVo queryById(Long id);
+
+    /**
+     * description  queryAllByLimit  分页查询
+     *
+     * @param comBatteryCommodityOrderCollageTeamPeople 请求参数
+     * @param page                                      分页参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-29 16:07:08
+     */
+    IPage<ComBatteryCommodityOrderCollageTeamPeopleVo> queryAllByLimit(@Param("dto") PageComBatteryCommodityOrderCollageTeamPeopleDto comBatteryCommodityOrderCollageTeamPeople, Page page);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommodityOrderCollageTeamPeople 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 16:07:08
+     */
+    List<ComBatteryCommodityOrderCollageTeamPeopleVo> queryAllByList(@Param("dto") PageComBatteryCommodityOrderCollageTeamPeopleDto comBatteryCommodityOrderCollageTeamPeople);
+
+    /**
+     * 根据拼团团队id查询团队人员信息
+     * @param teamId    团队id
+     * @return  团队人员信息
+     */
+    List<ComBatteryCommodityOrderCollageTeamPeopleVo> queryAllByTeamId(@Param("teamId") Long teamId);
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryCommodityOrderMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryCommodityOrderMapper.java
new file mode 100644
index 0000000..ea27886
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryCommodityOrderMapper.java
@@ -0,0 +1,63 @@
+package com.panzhihua.service_community.dao;
+
+import com.panzhihua.service_community.entity.ComBatteryCommodityOrder;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.common.*;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * title: 电动车商城-订单表表数据库访问层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-订单表表数据库访问层
+ *
+ * @author lyq
+ * @date 2022-03-29 16:05:36
+ */
+@Mapper
+public interface ComBatteryCommodityOrderMapper extends BaseMapper<ComBatteryCommodityOrder> {
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 16:05:36
+     */
+    ComBatteryCommodityOrderVo queryById(Long id);
+
+    /**
+     * description  queryAllByLimit  分页查询
+     *
+     * @param comBatteryCommodityOrder 请求参数
+     * @param page                     分页参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-29 16:05:36
+     */
+    IPage<ComBatteryCommodityOrderVo> queryAllByLimit(@Param("dto") PageComBatteryCommodityOrderDto comBatteryCommodityOrder, Page page);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommodityOrder 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 16:05:36
+     */
+    List<ComBatteryCommodityOrderVo> queryAllByList(@Param("dto") PageComBatteryCommodityOrderDto comBatteryCommodityOrder);
+
+    ComBatteryActivityTeamVo queryTeamIdByUserId(@Param("userId") Long userId, @Param("activityId") Long activityId);
+
+    ComBatteryActivityTeamVo queryTeamIdByUserIdBargain(@Param("userId") Long userId, @Param("activityId") Long activityId);
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryCommoditySpecsMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryCommoditySpecsMapper.java
new file mode 100644
index 0000000..fefc367
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryCommoditySpecsMapper.java
@@ -0,0 +1,65 @@
+package com.panzhihua.service_community.dao;
+
+import com.panzhihua.service_community.entity.ComBatteryCommoditySpecs;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.common.*;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import java.util.List;
+
+/**
+ * title: 电动车商城-商品规格表表数据库访问层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商品规格表表数据库访问层
+ *
+ * @author lyq
+ * @date 2022-03-28 15:16:21
+ */
+@Mapper
+public interface ComBatteryCommoditySpecsMapper extends BaseMapper<ComBatteryCommoditySpecs> {
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-28 15:16:21
+     */
+    ComBatteryCommoditySpecsVo queryById(Long id);
+
+    /**
+     * description  queryAllByLimit  分页查询
+     *
+     * @param comBatteryCommoditySpecs 请求参数
+     * @param page                     分页参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-28 15:16:21
+     */
+    IPage<ComBatteryCommoditySpecsVo> queryAllByLimit(@Param("dto") PageComBatteryCommoditySpecsDto comBatteryCommoditySpecs, Page page);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommoditySpecs 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-28 15:16:21
+     */
+    List<ComBatteryCommoditySpecsVo> queryAllByList(@Param("dto") PageComBatteryCommoditySpecsDto comBatteryCommoditySpecs);
+
+    /**
+     * 查询商品规格列表
+     * @param commodityId   商品id
+     * @return  商品规格列表
+     */
+    List<ComBatteryCommoditySpecsVo> queryAllByCommodityId(@Param("commodityId") Long commodityId);
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryStoreClassMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryStoreClassMapper.java
new file mode 100644
index 0000000..b8023f4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryStoreClassMapper.java
@@ -0,0 +1,58 @@
+package com.panzhihua.service_community.dao;
+
+import com.panzhihua.service_community.entity.ComBatteryStoreClass;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.common.*;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import java.util.List;
+
+/**
+ * title: 电动车商城-商家分类表表数据库访问层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商家分类表表数据库访问层
+ *
+ * @author lyq
+ * @date 2022-03-29 11:01:55
+ */
+@Mapper
+public interface ComBatteryStoreClassMapper extends BaseMapper<ComBatteryStoreClass> {
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 11:01:55
+     */
+    ComBatteryStoreClassVo queryById(Long id);
+
+    /**
+     * description  queryAllByLimit  分页查询
+     *
+     * @param comBatteryStoreClass 请求参数
+     * @param page                 分页参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-29 11:01:55
+     */
+    IPage<ComBatteryStoreClassVo> queryAllByLimit(@Param("dto") PageComBatteryStoreClassDto comBatteryStoreClass, Page page);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryStoreClass 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 11:01:55
+     */
+    List<ComBatteryStoreClassVo> queryAllByList(@Param("dto") PageComBatteryStoreClassDto comBatteryStoreClass);
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryStoreMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryStoreMapper.java
new file mode 100644
index 0000000..5d68074
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryStoreMapper.java
@@ -0,0 +1,78 @@
+package com.panzhihua.service_community.dao;
+
+import com.panzhihua.service_community.entity.ComBatteryStore;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.common.*;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import java.util.List;
+
+/**
+ * title: 电动车商城-商家表表数据库访问层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商家表表数据库访问层
+ *
+ * @author lyq
+ * @date 2022-03-28 13:44:44
+ */
+@Mapper
+public interface ComBatteryStoreMapper extends BaseMapper<ComBatteryStore> {
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-28 13:44:44
+     */
+    ComBatteryStoreVo queryById(Long id);
+
+    /**
+     * description  queryAllByLimit  分页查询
+     *
+     * @param comBatteryStore 请求参数
+     * @param page            分页参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-28 13:44:44
+     */
+    IPage<ComBatteryStoreVo> queryAllByLimit(@Param("dto") PageComBatteryStoreDto comBatteryStore, Page page);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryStore 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-28 13:44:44
+     */
+    List<ComBatteryStoreVo> queryAllByList(@Param("dto") PageComBatteryStoreDto comBatteryStore);
+
+    /**
+     * 查询电动车商户用户账号数量
+     * @param account   电动车商户账号
+     * @return  电动车商户用户账号数量
+     */
+    Integer getStoreUserCountByAccount(@Param("account") String account);
+
+    /**
+     * 查询电动车商户用户手机号数量
+     * @param regPhone   电动车商户注册手机号
+     * @return  电动车商户用户账号数量
+     */
+    Integer getStoreUserCountByPhone(@Param("regPhone") String regPhone);
+
+    /**
+     * 删除商家并同步删除后台用户数据
+     * @param storeId   商家id
+     */
+    void deleteStoreUserByStoreId(@Param("storeId") Long storeId);
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryTradeOrderMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryTradeOrderMapper.java
new file mode 100644
index 0000000..388145e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryTradeOrderMapper.java
@@ -0,0 +1,58 @@
+package com.panzhihua.service_community.dao;
+
+import com.panzhihua.service_community.entity.ComBatteryTradeOrder;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.common.*;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import java.util.List;
+
+/**
+ * title: 电动车商城-微信交易流水表表数据库访问层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-微信交易流水表表数据库访问层
+ *
+ * @author lyq
+ * @date 2022-04-01 13:18:49
+ */
+@Mapper
+public interface ComBatteryTradeOrderMapper extends BaseMapper<ComBatteryTradeOrder> {
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-01 13:18:49
+     */
+    ComBatteryTradeOrderVo queryById(Long id);
+
+    /**
+     * description  queryAllByLimit  分页查询
+     *
+     * @param comBatteryTradeOrder 请求参数
+     * @param page                 分页参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-04-01 13:18:49
+     */
+    IPage<ComBatteryTradeOrderVo> queryAllByLimit(@Param("dto") PageComBatteryTradeOrderDto comBatteryTradeOrder, Page page);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryTradeOrder 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-04-01 13:18:49
+     */
+    List<ComBatteryTradeOrderVo> queryAllByList(@Param("dto") PageComBatteryTradeOrderDto comBatteryTradeOrder);
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryUserAddressMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryUserAddressMapper.java
new file mode 100644
index 0000000..07fa73f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBatteryUserAddressMapper.java
@@ -0,0 +1,65 @@
+package com.panzhihua.service_community.dao;
+
+import com.panzhihua.service_community.entity.ComBatteryUserAddress;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.common.*;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import java.util.List;
+
+/**
+ * title: 电动车商城-用户收货地址表表数据库访问层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-用户收货地址表表数据库访问层
+ *
+ * @author lyq
+ * @date 2022-03-29 13:18:19
+ */
+@Mapper
+public interface ComBatteryUserAddressMapper extends BaseMapper<ComBatteryUserAddress> {
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 13:18:19
+     */
+    ComBatteryUserAddressVo queryById(Long id);
+
+    /**
+     * description  queryAllByLimit  分页查询
+     *
+     * @param comBatteryUserAddress 请求参数
+     * @param page                  分页参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-29 13:18:19
+     */
+    IPage<ComBatteryUserAddressVo> queryAllByLimit(@Param("dto") PageComBatteryUserAddressDto comBatteryUserAddress, Page page);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryUserAddress 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 13:18:19
+     */
+    List<ComBatteryUserAddressVo> queryAllByList(@Param("dto") PageComBatteryUserAddressDto comBatteryUserAddress);
+
+    /**
+     * 修改用户所有收货地址为不默认状态
+     * @param userId    用户id
+     * @return  修改结果
+     */
+    Integer updateUserAddressIsDefault(@Param("userId") Long userId);
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBpActivityDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBpActivityDAO.java
new file mode 100644
index 0000000..cab1dd7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComBpActivityDAO.java
@@ -0,0 +1,111 @@
+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.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.community.integral.admin.ComActActivityPeopleVO;
+import com.panzhihua.common.model.vos.partybuilding.PartyBuildingActivityVO;
+import com.panzhihua.service_community.model.dos.ComPbActivityDO;
+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;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党员活动
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 17:59
+ **/
+@Mapper
+public interface ComBpActivityDAO extends BaseMapper<ComPbActivityDO> {
+    // @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" + "a.id,\n" + "a.name,\n" + "a.address,\n" + "a.status,\n"
+        + "a.create_at releaseTimeBegin,\n" + "a.activity_time_begin,\n" + "a.activity_time_end,\n"
+        + "a.enroll_time_begin,\n" + "a.release_time,\n" + "a.enroll_time_end \n" + "FROM\n"
+        + "com_pb_activity_member m\n" + "JOIN com_pb_activity a ON m.activity_id = a.id \n" + "WHERE\n"
+        + "m.member_id = #{id} \n" + "<if test='name != null and name.trim() != &quot;&quot;'>"
+        + "AND a.`name` like concat (#{name},'%')  \n" + " </if> " + "<if test='releaseTimeBegin != null '>"
+        + "AND a.create_at BETWEEN #{releaseTimeBegin} \n" + "AND #{releaseTimeEnd} \n" + " </if> "
+        + "<if test='activityTimeBegin != null '>" + "AND a.activity_time_begin BETWEEN #{activityTimeBegin} \n"
+        + "AND #{activityTimeEnd}" + " </if> " + "</script>")
+    List<PartyBuildingActivityVO> listPartyMemberActivities(PartyBuildingActivityVO partyBuildingActivityVO);
+
+    @Select("<script> " + "SELECT\n" + "a.id,\n" + "a.name,\n" + "a.address,\n" + "a.status,\n" + "a.release_time,\n"
+        + "a.activity_time_begin,\n" + "a.activity_time_end,\n" + "a.enroll_time_begin,\n" + "a.cover,\n"
+        + "if(u.type=3 ,'管理员',u.name)createByName,\n" + "a.enroll_time_end \n" + "FROM\n" + "com_pb_activity a\n"
+        + "left join sys_user u on a.create_by=u.user_id \n"
+        + "where a.community_id = ${partyBuildingActivityVO.communityId}\n"
+        + "<if test='partyBuildingActivityVO.name != null and partyBuildingActivityVO.name.trim() != &quot;&quot;'>"
+        + "and a.name = #{partyBuildingActivityVO.name} \n" + " </if> "
+        + "<if test='partyBuildingActivityVO.isAppliets != null and partyBuildingActivityVO.isAppliets==1'>"
+        + " and a.`status` not in(5,6) " + " </if> "
+        + "<if test='partyBuildingActivityVO.status != null and partyBuildingActivityVO.status != 0 and partyBuildingActivityVO.isAppliets ==null '>"
+        + "AND a.`status` = #{partyBuildingActivityVO.status} \n" + " </if> "
+        + "<if test='partyBuildingActivityVO.status != null and partyBuildingActivityVO.status != 0 and partyBuildingActivityVO.isAppliets !=null and partyBuildingActivityVO.isAppliets==1'>"
+        + "AND a.`status` in (3,4) \n" + " </if> " + "<if test='partyBuildingActivityVO.releaseTimeBegin != null '>"
+        + "AND a.release_time BETWEEN #{partyBuildingActivityVO.releaseTimeBegin} \n"
+        + "AND #{partyBuildingActivityVO.releaseTimeEnd} \n" + " </if> "
+        + "<if test='partyBuildingActivityVO.activityTimeBegin != null '>"
+        + "AND a.activity_time_begin BETWEEN #{partyBuildingActivityVO.activityTimeBegin} \n"
+        + "AND #{partyBuildingActivityVO.activityTimeEnd}" + " </if> " + "order by a.create_at desc " + "</script>")
+    IPage<PartyBuildingActivityVO> pageActivity(Page page,
+        @Param("partyBuildingActivityVO") PartyBuildingActivityVO partyBuildingActivityVO);
+
+    @Select("select t.id from (\n" + "SELECT \n" + "a.participation_lowest_num,\n" + "a.name,\n" + "a.id,\n"
+        + "COUNT(m.id)num\n" + "FROM\n" + "com_pb_activity a\n"
+        + "LEFT JOIN com_pb_activity_member m ON a.id = m.activity_id\n"
+        + "WHERE a.`status` in (3,4) and TIMESTAMPDIFF(MINUTE,SYSDATE(),a.enroll_time_end)<=0\n"
+        + "GROUP BY a.id)t where t.num<t.participation_lowest_num")
+    List<Long> selectTimedTaskPartyBuildingActivity();
+
+    @Select("SELECT \n" + "u.user_id\n" + "FROM\n" + "com_pb_activity_member m\n"
+        + "JOIN com_pb_member r on m.member_id=r.id\n" + "join sys_user u on r.id_card=u.id_card and u.type=1 \n"
+        + "where m.activity_id=#{activityId}")
+    List<Long> selectTimedTaskPartyBuildingActivityUserids(Long activityId);
+
+    @Update("<script> " + "update com_pb_activity set `status`=6 WHERE id in \n"
+        + "<foreach item=\"item\" collection=\"ids\" separator=\",\" open=\"(\" close=\")\" index=\"\"> \n"
+        + "#{item}\n" + "</foreach>\n" + "</script>")
+    int updateBatchIds(@Param("ids") List<Long> ids);
+
+    @Update("update com_pb_activity set status=2 where `status`=1 and TIMESTAMPDIFF(MINUTE,SYSDATE(),release_time)<=0")
+    int updateStatusToNotBegin();
+
+    @Update("update com_pb_activity set status=3 where `status`=2 and TIMESTAMPDIFF(MINUTE,SYSDATE(),enroll_time_begin)<=0")
+    int updateStatusToSign();
+
+    @Update("update com_pb_activity set status=5 where `status` in (3,4) and TIMESTAMPDIFF(MINUTE,SYSDATE(),enroll_time_end)<=0")
+    int updateStatusToActiveOrEnd();
+
+    @Select("select id from com_pb_activity where `status` in (3,4) and TIMESTAMPDIFF(MINUTE,SYSDATE(),enroll_time_end)<=0")
+    List<Long> getTaskPbActivityEndIds();
+
+    @Select("select caas.user_id,caas.activity_id,caa.community_id from com_pb_activity_member as caas left join com_pb_activity as caa on caa.id = caas.activity_id where caa.id = #{activityId}")
+    List<ComActActivityPeopleVO> getTaskPbActivityPeopleList(@Param("activityId") Long activityId);
+
+    @Select("select type,name from sys_user where user_id=#{createBy}")
+    LoginUserInfoVO selectUserInfoByUserId(Long createBy);
+
+    /**
+     * 根据社区id查询社区名称
+     * 
+     * @param communityId
+     *            社区id
+     * @return 社区名字
+     */
+    @Select("select name from com_act where community_id = ${communityId}")
+    String selectCommunityNameByCommunityId(Long communityId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComChangeCarBrandMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComChangeCarBrandMapper.java
new file mode 100644
index 0000000..a9bdb2f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComChangeCarBrandMapper.java
@@ -0,0 +1,58 @@
+package com.panzhihua.service_community.dao;
+
+import com.panzhihua.service_community.entity.ComChangeCarBrand;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.common.*;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import java.util.List;
+
+/**
+ * title: 换新车-品牌表表数据库访问层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-品牌表表数据库访问层
+ *
+ * @author lyq
+ * @date 2022-04-07 13:37:23
+ */
+@Mapper
+public interface ComChangeCarBrandMapper extends BaseMapper<ComChangeCarBrand> {
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-07 13:37:23
+     */
+    ComChangeCarBrandVo queryById(Long id);
+
+    /**
+     * description  queryAllByLimit  分页查询
+     *
+     * @param comChangeCarBrand 请求参数
+     * @param page              分页参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-04-07 13:37:23
+     */
+    IPage<ComChangeCarBrandVo> queryAllByLimit(@Param("dto") PageComChangeCarBrandDto comChangeCarBrand, Page page);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comChangeCarBrand 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-04-07 13:37:23
+     */
+    List<ComChangeCarBrandVo> queryAllByList(@Param("dto") PageComChangeCarBrandDto comChangeCarBrand);
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComChangeCarInquiryMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComChangeCarInquiryMapper.java
new file mode 100644
index 0000000..9a6e047
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComChangeCarInquiryMapper.java
@@ -0,0 +1,58 @@
+package com.panzhihua.service_community.dao;
+
+import com.panzhihua.service_community.entity.ComChangeCarInquiry;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.common.*;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import java.util.List;
+
+/**
+ * title: 换新车-分期询价表表数据库访问层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-分期询价表表数据库访问层
+ *
+ * @author lyq
+ * @date 2022-04-07 13:39:06
+ */
+@Mapper
+public interface ComChangeCarInquiryMapper extends BaseMapper<ComChangeCarInquiry> {
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-07 13:39:06
+     */
+    ComChangeCarInquiryVo queryById(Long id);
+
+    /**
+     * description  queryAllByLimit  分页查询
+     *
+     * @param comChangeCarInquiry 请求参数
+     * @param page                分页参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-04-07 13:39:06
+     */
+    IPage<ComChangeCarInquiryVo> queryAllByLimit(@Param("dto") PageComChangeCarInquiryDto comChangeCarInquiry, Page page);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comChangeCarInquiry 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-04-07 13:39:06
+     */
+    List<ComChangeCarInquiryVo> queryAllByList(@Param("dto") PageComChangeCarInquiryDto comChangeCarInquiry);
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComChangeCarModelMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComChangeCarModelMapper.java
new file mode 100644
index 0000000..da054fd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComChangeCarModelMapper.java
@@ -0,0 +1,58 @@
+package com.panzhihua.service_community.dao;
+
+import com.panzhihua.service_community.entity.ComChangeCarModel;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.common.*;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import java.util.List;
+
+/**
+ * title: 换新车-车型管理表表数据库访问层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-车型管理表表数据库访问层
+ *
+ * @author lyq
+ * @date 2022-04-07 13:41:55
+ */
+@Mapper
+public interface ComChangeCarModelMapper extends BaseMapper<ComChangeCarModel> {
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-07 13:41:55
+     */
+    ComChangeCarModelVo queryById(Long id);
+
+    /**
+     * description  queryAllByLimit  分页查询
+     *
+     * @param comChangeCarModel 请求参数
+     * @param page              分页参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-04-07 13:41:55
+     */
+    IPage<ComChangeCarModelVo> queryAllByLimit(@Param("dto") PageComChangeCarModelDto comChangeCarModel, Page page);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comChangeCarModel 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-04-07 13:41:55
+     */
+    List<ComChangeCarModelVo> queryAllByList(@Param("dto") PageComChangeCarModelDto comChangeCarModel);
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComChangeCarModelRelationMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComChangeCarModelRelationMapper.java
new file mode 100644
index 0000000..d080b19
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComChangeCarModelRelationMapper.java
@@ -0,0 +1,77 @@
+package com.panzhihua.service_community.dao;
+
+import com.panzhihua.service_community.entity.ComChangeCarModelRelation;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.common.*;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import java.util.List;
+
+/**
+ * title: 换新车-车型与规格关联表表数据库访问层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-车型与规格关联表表数据库访问层
+ *
+ * @author lyq
+ * @date 2022-04-07 13:55:29
+ */
+@Mapper
+public interface ComChangeCarModelRelationMapper extends BaseMapper<ComChangeCarModelRelation> {
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-07 13:55:29
+     */
+    ComChangeCarModelRelationVo queryById(Long id);
+
+    /**
+     * description  queryAllByLimit  分页查询
+     *
+     * @param comChangeCarModelRelation 请求参数
+     * @param page                      分页参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-04-07 13:55:29
+     */
+    IPage<ComChangeCarModelRelationVo> queryAllByLimit(@Param("dto") PageComChangeCarModelRelationDto comChangeCarModelRelation, Page page);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comChangeCarModelRelation 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-04-07 13:55:29
+     */
+    List<ComChangeCarModelRelationVo> queryAllByList(@Param("dto") PageComChangeCarModelRelationDto comChangeCarModelRelation);
+
+    /**
+     * 根据车型id查询车型下绑定规格列表
+     * @param modelId   车型id
+     * @return  车型下绑定规格列表
+     */
+    List<ComChangeCarModelRelationVo> queryAllByModelId(@Param("modelId") Long modelId);
+
+    /**
+     * description  queryAllByLimit  小程序分页查询
+     *
+     * @param comChangeCarModelRelation 请求参数
+     * @param page                      分页参数
+     * @return 小程序分页查询列表数据
+     * @author lyq
+     * @date 2022-04-07 13:55:29
+     */
+    IPage<ComChangeCarModelVo> queryAllByAppletsLimit(@Param("dto") PageComChangeCarModelRelationDto comChangeCarModelRelation, Page page);
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComChangeCarModelSpecsChildrenMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComChangeCarModelSpecsChildrenMapper.java
new file mode 100644
index 0000000..51d9859
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComChangeCarModelSpecsChildrenMapper.java
@@ -0,0 +1,65 @@
+package com.panzhihua.service_community.dao;
+
+import com.panzhihua.service_community.entity.ComChangeCarModelSpecsChildren;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.common.*;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import java.util.List;
+
+/**
+ * title: 换新车-车型子规格表表数据库访问层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-车型子规格表表数据库访问层
+ *
+ * @author lyq
+ * @date 2022-04-07 13:55:33
+ */
+@Mapper
+public interface ComChangeCarModelSpecsChildrenMapper extends BaseMapper<ComChangeCarModelSpecsChildren> {
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-07 13:55:33
+     */
+    ComChangeCarModelSpecsChildrenVo queryById(Long id);
+
+    /**
+     * description  queryAllByLimit  分页查询
+     *
+     * @param comChangeCarModelSpecsChildren 请求参数
+     * @param page                           分页参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-04-07 13:55:33
+     */
+    IPage<ComChangeCarModelSpecsChildrenVo> queryAllByLimit(@Param("dto") PageComChangeCarModelSpecsChildrenDto comChangeCarModelSpecsChildren, Page page);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comChangeCarModelSpecsChildren 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-04-07 13:55:33
+     */
+    List<ComChangeCarModelSpecsChildrenVo> queryAllByList(@Param("dto") PageComChangeCarModelSpecsChildrenDto comChangeCarModelSpecsChildren);
+
+    /**
+     * 根据规格id查询规格下子规格列表
+     * @param specsId   规格id
+     * @return  规格下子规格列表
+     */
+    List<ComChangeCarModelSpecsChildrenVo> queryAllBySpecsId(@Param("specsId") Long specsId);
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComChangeCarModelSpecsMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComChangeCarModelSpecsMapper.java
new file mode 100644
index 0000000..0f68256
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComChangeCarModelSpecsMapper.java
@@ -0,0 +1,58 @@
+package com.panzhihua.service_community.dao;
+
+import com.panzhihua.service_community.entity.ComChangeCarModelSpecs;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.common.*;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import java.util.List;
+
+/**
+ * title: 换新车-车型规格表表数据库访问层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-车型规格表表数据库访问层
+ *
+ * @author lyq
+ * @date 2022-04-07 13:55:31
+ */
+@Mapper
+public interface ComChangeCarModelSpecsMapper extends BaseMapper<ComChangeCarModelSpecs> {
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-07 13:55:31
+     */
+    ComChangeCarModelSpecsVo queryById(Long id);
+
+    /**
+     * description  queryAllByLimit  分页查询
+     *
+     * @param comChangeCarModelSpecs 请求参数
+     * @param page                   分页参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-04-07 13:55:31
+     */
+    IPage<ComChangeCarModelSpecsVo> queryAllByLimit(@Param("dto") PageComChangeCarModelSpecsDto comChangeCarModelSpecs, Page page);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comChangeCarModelSpecs 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-04-07 13:55:31
+     */
+    List<ComChangeCarModelSpecsVo> queryAllByList(@Param("dto") PageComChangeCarModelSpecsDto comChangeCarModelSpecs);
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComClusterOrganizationMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComClusterOrganizationMapper.java
new file mode 100644
index 0000000..f09f8e1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComClusterOrganizationMapper.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.cluster.admin.PageClusterAdminDto;
+import com.panzhihua.common.model.vos.community.cluster.PageClusterVo;
+import com.panzhihua.common.model.vos.community.cluster.admin.PageClusterAdminVo;
+import com.panzhihua.service_community.model.dos.ComClusterOrganizationDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @author lyq
+ * @date  2021-09-23 16:44:06
+ * describe 群团组织表mapper类
+ */
+@Mapper
+public interface ComClusterOrganizationMapper extends BaseMapper<ComClusterOrganizationDO> {
+
+    /**
+     * 群团组织列表-小程序查询社区群团组织列表
+     * @param communityId   社区id
+     * @return  社区群团组织列表
+     */
+    List<PageClusterVo> listClusterApplets(@Param("communityId") Long communityId);
+
+    /**
+     * 分页查询群团组织列表
+     * @param pageClusterAdminDto  请求参数
+     * @return  群团组织列表
+     */
+    IPage<PageClusterAdminVo> pageClusterAdmin(Page page,@Param("pageClusterAdminDto") PageClusterAdminDto pageClusterAdminDto);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComClusterOrganizationMemberMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComClusterOrganizationMemberMapper.java
new file mode 100644
index 0000000..fee13d6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComClusterOrganizationMemberMapper.java
@@ -0,0 +1,64 @@
+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.cluster.PageClusterMemberDto;
+import com.panzhihua.common.model.dtos.community.cluster.admin.PageClusterMemberAdminDto;
+import com.panzhihua.common.model.vos.community.cluster.PageClusterMemberVo;
+import com.panzhihua.common.model.vos.community.cluster.PageClusterVo;
+import com.panzhihua.common.model.vos.community.cluster.admin.ClusterMemberNationVo;
+import com.panzhihua.common.model.vos.community.cluster.admin.ComClusterMemberExcelExportAdminVO;
+import com.panzhihua.common.model.vos.community.cluster.admin.PageClusterMemberAdminVo;
+import com.panzhihua.service_community.model.dos.ComClusterOrganizationMemberDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author lyq
+ * @date  2021-09-23 16:44:00
+ * describe 群团组织成员表mapper类
+ */
+@Mapper
+public interface ComClusterOrganizationMemberMapper extends BaseMapper<ComClusterOrganizationMemberDO> {
+
+    /**
+     * 群团组织成员列表-小程序分页查询
+     * @param pageClusterMemberDto  请求参数
+     * @return  群团组织成员列表
+     */
+    IPage<PageClusterMemberVo> pageClusterMemberApplets(Page page, @Param("pageClusterMemberDto") PageClusterMemberDto pageClusterMemberDto);
+
+    /**
+     * 分页查询群团组织成员列表
+     * @param pageClusterMemberAdminDto 请求参数
+     * @return  群团组织成员列表
+     */
+    IPage<PageClusterMemberAdminVo> pageClusterMemberAdmin(Page page, @Param("pageClusterMemberAdminDto") PageClusterMemberAdminDto pageClusterMemberAdminDto);
+
+    /**
+     * 查询系统民族列表
+     * @param  key 字典码Key
+     * @return  民族列表
+     */
+    List<ClusterMemberNationVo> memberNationListAdmin(@Param("key") String key);
+
+    /**
+     * 查询民族code
+     * @param nationName    民族名称
+     * @param key   民族字典码key
+     * @return  民族code
+     */
+    Map<String,String> getNationCode(@Param("nationName") String nationName,@Param("key") String key);
+
+    /**
+     * 群团组织导出数据查询
+     * @param pageClusterMemberAdminDto 请求参数
+     * @return  导出数据结果集
+     */
+    List<ComClusterMemberExcelExportAdminVO> exportClusterMember(@Param("pageClusterMemberAdminDto") PageClusterMemberAdminDto pageClusterMemberAdminDto);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComCorrectPopulationDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComCorrectPopulationDAO.java
new file mode 100644
index 0000000..acc999d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComCorrectPopulationDAO.java
@@ -0,0 +1,16 @@
+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.ComCorrectPopulationDO;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 16:45:25
+ * @describe 社区矫正人员表mapper类
+ */
+@Mapper
+public interface ComCorrectPopulationDAO extends BaseMapper<ComCorrectPopulationDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComCultPopulationDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComCultPopulationDAO.java
new file mode 100644
index 0000000..8f8ccab
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComCultPopulationDAO.java
@@ -0,0 +1,16 @@
+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.ComCultPopulationDO;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 17:40:24
+ * @describe 邪教人员表mapper类
+ */
+@Mapper
+public interface ComCultPopulationDAO extends BaseMapper<ComCultPopulationDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComCunDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComCunDao.java
new file mode 100644
index 0000000..c1979af
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComCunDao.java
@@ -0,0 +1,18 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComCun;
+
+/**
+ * (ComCun)表数据库访问层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 相关功能
+ *
+ * @author zzj
+ * @since 2022-06-10 15:12:40
+ */
+@Mapper
+public interface ComCunDao extends BaseMapper<ComCun> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComCvtBusinessAreaDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComCvtBusinessAreaDAO.java
new file mode 100644
index 0000000..a7633ad
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComCvtBusinessAreaDAO.java
@@ -0,0 +1,11 @@
+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.ComCvtBusinessAreaDO;
+
+@Mapper
+public interface ComCvtBusinessAreaDAO extends BaseMapper<ComCvtBusinessAreaDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComCvtBusinessDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComCvtBusinessDAO.java
new file mode 100644
index 0000000..fe3c561
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComCvtBusinessDAO.java
@@ -0,0 +1,37 @@
+package com.panzhihua.service_community.dao;
+
+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;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.community.PageComCvtBusinessAppletsDTO;
+import com.panzhihua.common.model.dtos.community.PageComCvtBusinessDTO;
+import com.panzhihua.common.model.vos.community.ComCvtBusinessVO;
+import com.panzhihua.service_community.model.dos.ComCvtBusinessDO;
+
+@Mapper
+public interface ComCvtBusinessDAO extends BaseMapper<ComCvtBusinessDO> {
+
+    @Select("<script> " + "SELECT " + "a.*,  "
+        + "IF(u.type=2,CONCAT('运营平台(',u.account,')'),CONCAT('社区平台(',u.account,')'))  create_by_name " + "FROM "
+        + "com_cvt_business a  " + "LEFT JOIN sys_user u ON a.create_by = u.user_id " + " <where>"
+        + "<if test='pageComCvtBusinessDTO.name != null and pageComCvtBusinessDTO.name.trim() != &quot;&quot;'>"
+        + " and a.name LIKE concat( '%', #{pageComCvtBusinessDTO.name}, '%' )  " + " </if> "
+        + "<if test='pageComCvtBusinessDTO.communityId != null and pageComCvtBusinessDTO.communityId != 0'>"
+        + " and a.community_id = ${pageComCvtBusinessDTO.communityId} " + " </if> " + " </where>"
+        + " order by a.create_at desc" + "</script>")
+    IPage<ComCvtBusinessVO> pageComCvtBusiness(Page page,
+        @Param("pageComCvtBusinessDTO") PageComCvtBusinessDTO pageComCvtBusinessDTO);
+
+    @Select("<script> " + "SELECT " + "t.*  " + "FROM " + "com_cvt_business t  " + " <where>"
+        + "<if test='comCvtBusinessAppletsDTO.communityId != null and comCvtBusinessAppletsDTO.communityId != 0'>"
+        + " t.area_flag = 1 " + " OR (" + " t.area_flag = 2 "
+        + " AND EXISTS ( SELECT * FROM com_cvt_business_area t2 WHERE t2.business_id = t.id AND t2.community_id = ${comCvtBusinessAppletsDTO.communityId} ) \n"
+        + " ) " + " </if> " + " </where>" + " order by t.create_at desc" + "</script>")
+    IPage<ComCvtBusinessVO> pageComCvtBusinessByServiceArea(Page page,
+        @Param("comCvtBusinessAppletsDTO") PageComCvtBusinessAppletsDTO comCvtBusinessAppletsDTO);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComCvtBusinessIntroduceDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComCvtBusinessIntroduceDAO.java
new file mode 100644
index 0000000..2ad3ca5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComCvtBusinessIntroduceDAO.java
@@ -0,0 +1,9 @@
+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.ComCvtBusinessIntroduceDO;
+
+@Mapper
+public interface ComCvtBusinessIntroduceDAO extends BaseMapper<ComCvtBusinessIntroduceDO> {}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComCvtCategoryDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComCvtCategoryDAO.java
new file mode 100644
index 0000000..4f0d403
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComCvtCategoryDAO.java
@@ -0,0 +1,24 @@
+package com.panzhihua.service_community.dao;
+
+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;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.community.PageComCvtCategoryDTO;
+import com.panzhihua.common.model.vos.community.ComCvtCategoryVO;
+import com.panzhihua.service_community.model.dos.ComCvtCategoryDO;
+
+@Mapper
+public interface ComCvtCategoryDAO extends BaseMapper<ComCvtCategoryDO> {
+
+    @Select("<script> " + "SELECT " + "a.*  " + "FROM " + "com_cvt_category a  " + " <where>"
+        + "<if test='pageComCvtCategoryDTO.name != null and pageComCvtCategoryDTO.name.trim() != &quot;&quot;'>"
+        + " and a.name LIKE concat( #{pageComCvtCategoryDTO.name}, '%' )  " + " </if> " + " </where>"
+        + " order by a.weight desc" + "</script>")
+    IPage<ComCvtCategoryVO> pageComCvtCategory(Page page,
+        @Param("pageComCvtCategoryDTO") PageComCvtCategoryDTO pageComCvtCategoryDTO);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComCvtServeDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComCvtServeDAO.java
new file mode 100644
index 0000000..486e9e5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComCvtServeDAO.java
@@ -0,0 +1,29 @@
+package com.panzhihua.service_community.dao;
+
+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;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.community.PageComCvtServeDTO;
+import com.panzhihua.common.model.vos.community.ComCvtServeVO;
+import com.panzhihua.service_community.model.dos.ComCvtServeDO;
+
+@Mapper
+public interface ComCvtServeDAO extends BaseMapper<ComCvtServeDO> {
+
+    @Select("<script> " + "SELECT " + " t.id , " + " t.service_name AS serviceName, "
+        + " t.service_price AS servicePrice, " + " t.category_id AS categoryId, " + " t.service_desc AS serviceDesc, "
+        + " t.business_id AS businessId, " + " t.remark, " + " t.create_by AS createBy, " + " t.create_at AS createAt, "
+        + " t1.`name` AS businessName, " + " t2.`name` AS categoryName " + "FROM " + " com_cvt_serve t "
+        + " LEFT JOIN com_cvt_business t1 ON t.business_id = t1.id "
+        + " LEFT JOIN com_cvt_category t2 ON t.category_id= t2.id" + " <where>"
+        + " <if test='pageComCvtServeDTO.serviceName != null and pageComCvtServeDTO.serviceName.trim() != &quot;&quot;'>"
+        + " and t.service_name LIKE concat( #{pageComCvtServeDTO.serviceName}, '%' )  " + " </if> " + " </where>"
+        + " ORDER BY t.create_at desc" + "</script>")
+    IPage<ComCvtServeVO> pageComCvtServe(Page page,
+        @Param(value = "pageComCvtServeDTO") PageComCvtServeDTO pageComCvtServeDTO);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComDisabilityPopulationDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComDisabilityPopulationDAO.java
new file mode 100644
index 0000000..395e6b0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComDisabilityPopulationDAO.java
@@ -0,0 +1,16 @@
+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.ComDisabilityPopulationDO;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 19:54:57
+ * @describe 实有人口导入》残疾人表mapper类
+ */
+@Mapper
+public interface ComDisabilityPopulationDAO extends BaseMapper<ComDisabilityPopulationDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComDrugPopulationDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComDrugPopulationDAO.java
new file mode 100644
index 0000000..cc43d32
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComDrugPopulationDAO.java
@@ -0,0 +1,16 @@
+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.ComDrugPopulationDO;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 15:37:19
+ * @describe 吸毒人员表mapper类
+ */
+@Mapper
+public interface ComDrugPopulationDAO extends BaseMapper<ComDrugPopulationDO> {
+
+}
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..1d2222c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComElderAuthElderliesDAO.java
@@ -0,0 +1,35 @@
+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;
+
+import java.util.List;
+
+/**
+ * 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);
+
+    /**
+     * 维护高龄老人健在状态
+     * @param populationId  人口id
+     * @param isAlive   健在状态(1.健在 0.未健在)
+     */
+    void editEditIsAlive(@Param("populationId") Long populationId,@Param("isAlive") Integer isAlive);
+
+    /**
+     * 高龄认证定时任务查询高龄老人信息
+     * @return  高龄老人信息列表
+     */
+    List<ComElderAuthElderliesDO> getAuthElderLiesList();
+}
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..fa2bc6a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComElderAuthRecordsDAO.java
@@ -0,0 +1,64 @@
+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);
+
+    List<ComElderAuthRecordExcleVO> export(@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<String> 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/ComEldersAuthElderlyMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEldersAuthElderlyMapper.java
new file mode 100644
index 0000000..3e24d01
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEldersAuthElderlyMapper.java
@@ -0,0 +1,42 @@
+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.PageComEldersAuthElderlyDTO;
+import com.panzhihua.common.model.vos.community.ComEldersAuthElderlyVO;
+import com.panzhihua.service_community.model.dos.ComEldersAuthElderlyDO;
+
+/**
+ * DAO
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @date 2021-06-09
+ * @since 1.0
+ */
+@Mapper
+public interface ComEldersAuthElderlyMapper extends BaseMapper<ComEldersAuthElderlyDO> {
+
+    /**
+     * 分页查询
+     *
+     * @param pageComEldersAuthElderlyDTO
+     * @return
+     */
+    IPage<ComEldersAuthElderlyVO> findByPage(Page page,
+        @Param("pageComEldersAuthElderlyDTO") PageComEldersAuthElderlyDTO pageComEldersAuthElderlyDTO);
+
+    Integer updateEldersAuthElderly(ComEldersAuthElderlyDO comEldersAuthElderlyDO);
+
+    /**
+     * 根据老人库id删除绑定用户的关系
+     * 
+     * @param elderId
+     *            老人库老人id
+     */
+    void deleteEldersAuthUserById(@Param("elderId") Long elderId);
+}
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
new file mode 100644
index 0000000..2ac3278
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEldersAuthHistoryRecordMapper.java
@@ -0,0 +1,47 @@
+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;
+
+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.PageComEldersAuthHistoryRecordDTO;
+import com.panzhihua.common.model.vos.community.ComEldersAuthHistoryRecordVO;
+import com.panzhihua.service_community.model.dos.ComEldersAuthHistoryRecordDO;
+
+/**
+ * DAO
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @date 2021-06-10
+ * @since 1.0
+ */
+@Mapper
+public interface ComEldersAuthHistoryRecordMapper extends BaseMapper<ComEldersAuthHistoryRecordDO> {
+
+    /**
+     * 分页查询
+     *
+     * @param pageComEldersAuthHistoryRecordDTO
+     * @return
+     */
+    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/ComEldersAuthStatisticsMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEldersAuthStatisticsMapper.java
new file mode 100644
index 0000000..5d29b6f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEldersAuthStatisticsMapper.java
@@ -0,0 +1,33 @@
+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.PageEldersAuthHistoryDTO;
+import com.panzhihua.common.model.vos.community.ComEldersAuthHistoryVO;
+import com.panzhihua.service_community.model.dos.ComEldersAuthStatisticsDO;
+
+/**
+ * DAO
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @date 2021-06-10
+ * @since 1.0
+ */
+@Mapper
+public interface ComEldersAuthStatisticsMapper extends BaseMapper<ComEldersAuthStatisticsDO> {
+
+    /**
+     * 分页查询
+     *
+     * @param pageEldersAuthHistoryDTO
+     * @return
+     */
+    IPage<ComEldersAuthHistoryVO> findByPage(Page page,
+        @Param("pageEldersAuthHistoryDTO") PageEldersAuthHistoryDTO pageEldersAuthHistoryDTO);
+
+}
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
new file mode 100644
index 0000000..c563207
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEldersAuthUserMapper.java
@@ -0,0 +1,39 @@
+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.vos.elders.ComElderAuthUserAppVO;
+import com.panzhihua.service_community.model.dos.ComEldersAuthUserDO;
+
+/**
+ * DAO
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @date 2021-06-09
+ * @since 1.0
+ */
+@Mapper
+public interface ComEldersAuthUserMapper extends BaseMapper<ComEldersAuthUserDO> {
+
+    /**
+     * 分页查询高龄老人用户绑定列表
+     * 
+     * @return 高龄老人用户绑定列表
+     */
+    IPage<ComElderAuthUserAppVO> findByPage(Page page, @Param("userId") Long userId);
+
+    /**
+     * 统计当月家庭老人 有效认证记录数
+     * 
+     * @param elderId
+     * @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/ComEventMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEventMapper.java
new file mode 100644
index 0000000..b417fd3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEventMapper.java
@@ -0,0 +1,126 @@
+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.sanshuo.IndexDateDTO;
+import com.panzhihua.common.model.vos.IndexDataVO;
+import com.panzhihua.common.model.vos.sanshuo.ComEventCalculateVO;
+import com.panzhihua.common.model.vos.sanshuo.EventRateVO;
+import com.panzhihua.common.model.vos.sanshuo.IndexDateVO;
+import com.panzhihua.common.model.vos.sanshuo.MediateTypeVO;
+import com.panzhihua.service_community.entity.ComEvent;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+/**
+ * 三说会堂事件表Mapper
+ * ClassName   ComEventMapper
+ * Description
+ * @author     manailin
+ * @date       2022-09-07 11:23:51
+ */
+@Mapper
+public interface ComEventMapper extends BaseMapper<ComEvent> {
+     /**
+     * description 三说会堂事件表分页列表数据
+     *
+     * @param  comEvent  接口管理对象
+     * @param  pagination 分页对象
+     * @return R  分页数据结果
+     * @author manailin
+     * @date   2022-09-07 11:23:51
+     */
+  IPage<ComEvent> pageByComEvent(@Param("comEvent") ComEvent comEvent, Page pagination);
+  IPage<ComEvent> pageByComEventExpert(@Param("eventIds") List<Long> eventIds,@Param("comEvent") ComEvent comEvent, Page pagination);
+  /**
+   *
+   * 获取专家名下的所有事件id
+   * @param expertId 专家id
+   * */
+   List<Long> listEventIds(Long expertId);
+      /**
+       * description 三说会堂事件表列表数据
+       *
+       * @param  comEvent 接口管理对象
+       * @return R  数据结果
+       * @author manailin
+       * @date   2022-09-07 11:23:51
+       */
+   List<ComEvent> listByComEvent(@Param("comEvent") ComEvent comEvent,@Param("requestUserId") Long requestUserId);
+
+    List<ComEventCalculateVO> calculate(@Param("comEvent") ComEvent comEvent);
+
+    int caculateSum(@Param("comEvent")ComEvent comEvent);
+
+    /**
+     * 大屏事件统计
+     * @param indexDateDTO
+     * @return 处理结果
+     * @author zhangtiansen
+     * */
+    IndexDateVO dateAnalysis(@Param("dto") IndexDateDTO indexDateDTO,@Param("beginDate") Date beginDate, @Param("endDate")Date endDate);
+
+
+    /**
+     * 大屏事件统计-月新增
+     * @param beginDate 开始时间
+     * @param endDate 结束时间
+     * @author zhangtiansen
+     * */
+    Integer dateAnalysisY(@Param("beginDate") Date beginDate, @Param("endDate")Date endDate, @Param("dto") IndexDateDTO indexDateDTO);
+
+    /**
+     * 大屏事件统计-月办结
+     * @param beginDate 开始时间
+     *  @param endDate 结束时间
+     * @author zhangtiansen
+     * */
+    Integer dateAnalysisYTwo(@Param("beginDate")Date beginDate,@Param("endDate")Date endDate,@Param("dto") IndexDateDTO indexDateDTO);
+
+    /**
+     * 大屏事件级别统计
+     * */
+    List<EventRateVO> eventRate();
+
+    /**
+     * 大屏统计-专家级别占比
+     * */
+    List<EventRateVO> expertRate();
+
+    /**
+     * 大屏统计-事件类型占比
+     * */
+    List<EventRateVO> mediateTypeRate();
+
+    /**
+     * 获取用户头像
+     * */
+    String getUserAvatar(Long userId);
+
+    /**
+     * 添加事件-专家对应记录
+     * @param status 流转状态(
+     * 0创建时分配,只有一条记录
+     * 1上报后重新分配
+     * 2拒绝后重新分配
+     * )
+     * */
+    void insertEventAndExpertRecord(@Param("eventId") Long eventId, @Param("expertId") Long experId,@Param("status")Integer status);
+
+    void updateLog(@Param("eventId") Long id, @Param("expertId") Long specialistId);
+
+    /**
+     * 社区专家受理数量
+     * */
+    int expertSolveCountCommunity();
+
+    /**
+     * 行业分中心专家受理数量计算
+     * */
+    int expertSolveCountCenter();
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEventResourceMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEventResourceMapper.java
new file mode 100644
index 0000000..929c68d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEventResourceMapper.java
@@ -0,0 +1,42 @@
+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.service_community.entity.ComEventResource;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 三说会堂事件关联图片资源表Mapper
+ * ClassName   ComEventResourceMapper
+ * Description
+ *
+ * @author manailin
+ * @date 2022-09-07 11:23:52
+ */
+@Mapper
+public interface ComEventResourceMapper extends BaseMapper<ComEventResource> {
+    /**
+     * description 三说会堂事件关联图片资源表分页列表数据
+     *
+     * @param comEventResource 接口管理对象
+     * @param pagination       分页对象
+     * @return R  分页数据结果
+     * @author manailin
+     * @date 2022-09-07 11:23:52
+     */
+    IPage<ComEventResource> pageByComEventResource(@Param("comEventResource") ComEventResource comEventResource, Page pagination);
+
+    /**
+     * description 三说会堂事件关联图片资源表列表数据
+     *
+     * @param comEventResource 接口管理对象
+     * @return R  数据结果
+     * @author manailin
+     * @date 2022-09-07 11:23:52
+     */
+    List<ComEventResource> listByComEventResource(@Param("comEventResource") ComEventResource comEventResource);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEventTransferRecordMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEventTransferRecordMapper.java
new file mode 100644
index 0000000..22f764a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComEventTransferRecordMapper.java
@@ -0,0 +1,45 @@
+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.service_community.entity.ComEventTransferRecord;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 三说会堂事件流转表Mapper
+ * ClassName   ComEventTransferRecordMapper
+ * Description
+ *
+ * @author manailin
+ * @date 2022-09-07 11:23:52
+ */
+@Mapper
+public interface ComEventTransferRecordMapper extends BaseMapper<ComEventTransferRecord> {
+    /**
+     * description 三说会堂事件流转表分页列表数据
+     *
+     * @param comEventTransferRecord 接口管理对象
+     * @param pagination             分页对象
+     * @return R  分页数据结果
+     * @author manailin
+     * @date 2022-09-07 11:23:52
+     */
+    IPage<ComEventTransferRecord> pageByComEventTransferRecord(@Param("comEventTransferRecord") ComEventTransferRecord comEventTransferRecord, Page pagination);
+
+    /**
+     * description 三说会堂事件流转表列表数据
+     *
+     * @param comEventTransferRecord 接口管理对象
+     * @return R  数据结果
+     * @author manailin
+     * @date 2022-09-07 11:23:52
+     */
+    List<ComEventTransferRecord> listByComEventTransferRecord(@Param("comEventTransferRecord") ComEventTransferRecord comEventTransferRecord);
+
+
+    int insertSelective(@Param("comEventTransferRecord") ComEventTransferRecord comEventTransferRecord);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComExServicemanDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComExServicemanDAO.java
new file mode 100644
index 0000000..e0cdc65
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComExServicemanDAO.java
@@ -0,0 +1,36 @@
+package com.panzhihua.service_community.dao;
+
+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;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.community.ComExServicemanDTO;
+import com.panzhihua.common.model.vos.community.ComExServicemanVO;
+import com.panzhihua.service_community.model.dos.ComExServicemanDO;
+
+/**
+ * @description: 退役军人
+ * @author: txb
+ * @date: 2021/7/15 14:00
+ */
+@Mapper
+public interface ComExServicemanDAO extends BaseMapper<ComExServicemanDO> {
+
+    @Select("<script> " + " SELECT  " + "  id,  " + "  com_name AS comName,  " + "  legal_person AS legalPerson,  "
+        + "  leader,  " + "  contacts_phone AS contactsPhone,  " + "  scope,  " + "  credit_code AS creditCode,  "
+        + "  province_adcode AS provinceAdcode,  " + "  city_adcode AS cityAdcode,  "
+        + "  district_adcode AS districtAdcode,  " + "  address,  " + "  create_at AS createAt  " + "FROM  "
+        + "  com_ex_serviceman   where 1=1"
+        + "<if test='pageComMngRealCompanyDTO.legalPerson != null and pageComMngRealCompanyDTO.legalPerson.trim() != &quot;&quot;'>"
+        + " and t.legal_person LIKE concat( #{pageComMngRealCompanyDTO.legalPerson}, '%' )  " + " </if> "
+        + "<if test='pageComMngRealCompanyDTO.comName != null and pageComMngRealCompanyDTO.comName.trim() != &quot;&quot;'>"
+        + " and t.com_name LIKE concat( '%',#{pageComMngRealCompanyDTO.comName}, '%' )  " + " </if> "
+        + "<if test='pageComMngRealCompanyDTO.communityId != null and pageComMngRealCompanyDTO.communityId != 0'>"
+        + " and t.community_id = ${pageComMngRealCompanyDTO.communityId} " + " </if> " + " order by t.create_at desc"
+        + "</script>")
+    IPage<ComExServicemanVO> pageQueryComExServiceman(Page page,
+        @Param(value = "comExServicemanDTO") ComExServicemanDTO comExServicemanDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComFmsClassroomDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComFmsClassroomDAO.java
new file mode 100644
index 0000000..1f49861
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComFmsClassroomDAO.java
@@ -0,0 +1,86 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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.fms.PageFmsClassroomAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageFmsEventAdminDTO;
+import com.panzhihua.common.model.vos.community.fms.ComFmsClassroomVO;
+import com.panzhihua.common.model.vos.community.fms.FmsClassroomTopStatisticsVO;
+import com.panzhihua.common.model.vos.community.fms.FmsEventTopStatisticsVO;
+import com.panzhihua.common.model.vos.community.fms.FmsEventVO;
+import com.panzhihua.common.model.vos.grid.EventVO;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComFmsClassroom;
+
+/**
+ * 五微服务-微学堂(ComFmsClassroom)表数据库访问层
+ *
+ * @author makejava
+ * @since 2022-02-11 13:35:51
+ */
+@Mapper
+public interface ComFmsClassroomDAO extends BaseMapper<ComFmsClassroom> {
+
+    /**
+     * 批量新增数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<ComFmsClassroom> 实例对象列表
+     * @return 影响行数
+     */
+    int insertBatch(@Param("entities") List<ComFmsClassroom> entities);
+
+    /**
+     * 批量新增或按主键更新数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<ComFmsClassroom> 实例对象列表
+     * @return 影响行数
+     * @throws org.springframework.jdbc.BadSqlGrammarException
+     *             入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
+     */
+    int insertOrUpdateBatch(@Param("entities") List<ComFmsClassroom> entities);
+
+    /**
+     * 后台分页查询微讲堂
+     * @param page
+     * @param adminDTO
+     * @return
+     */
+    IPage<ComFmsClassroomVO> pageFmsClassroomAdmin(@Param("page") Page page, @Param("adminDTO") PageFmsClassroomAdminDTO adminDTO);
+
+    /**
+     * 微讲堂顶部统计数据查询
+     * @param communityId
+     * @return
+     */
+    FmsClassroomTopStatisticsVO statisticsFmsClassroom(@Param("communityId") Long communityId);
+
+    /**
+     * 后台分页查询微调节/微防控
+     * @param page
+     * @param adminDTO
+     * @return
+     */
+    IPage<FmsEventVO> pageFmsEvent(@Param("page") Page page, @Param("adminDTO") PageFmsEventAdminDTO adminDTO);
+
+    /**
+     * 微调节/微防控顶部统计
+     * @param type
+     * @param communityId
+     * @return
+     */
+    FmsEventTopStatisticsVO statisticsFmsEvent(@Param("type") Integer type, @Param("communityId") Long communityId);
+
+    /**
+     * 小程序分页查询微调节/微防控
+     * @param page
+     * @param adminDTO
+     * @return
+     */
+    IPage<EventVO> pageFmsEventApplets(@Param("page") Page page, @Param("adminDTO") PageFmsEventAdminDTO adminDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComFmsServiceDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComFmsServiceDAO.java
new file mode 100644
index 0000000..dd129eb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComFmsServiceDAO.java
@@ -0,0 +1,172 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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.PageBaseDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageFmsServiceAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageFmsServiceAppletsDTO;
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenFmsStatisticsInfo;
+import com.panzhihua.common.model.vos.community.fms.ComFmsServiceVO;
+import com.panzhihua.common.model.vos.community.fms.ComFmsTeamVO;
+import com.panzhihua.common.model.vos.community.fms.FmsServiceTopStatisticsVO;
+import com.panzhihua.common.model.vos.grid.EventVO;
+import com.panzhihua.service_community.entity.ComFmsServiceRecord;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComFmsService;
+
+/**
+ * 五微服务-微服务(ComFmsService)表数据库访问层
+ *
+ * @author makejava
+ * @since 2022-02-11 13:35:52
+ */
+@Mapper
+public interface ComFmsServiceDAO extends BaseMapper<ComFmsService> {
+
+    /**
+     * 批量新增数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<ComFmsService> 实例对象列表
+     * @return 影响行数
+     */
+    int insertBatch(@Param("entities") List<ComFmsService> entities);
+
+    int addBracelet(@Param("entitie") ComFmsService entities);
+
+
+    String getLastId();
+    /**
+     * 批量新增或按主键更新数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<ComFmsService> 实例对象列表
+     * @return 影响行数
+     * @throws org.springframework.jdbc.BadSqlGrammarException
+     *             入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
+     */
+    int insertOrUpdateBatch(@Param("entities") List<ComFmsService> entities);
+
+    /**
+     * 后台分页查询微服务
+     * @param page
+     * @param adminDTO
+     * @return
+     */
+    IPage<ComFmsServiceVO> pageFmsServiceAdmin(@Param("page") Page page, @Param("adminDTO") PageFmsServiceAdminDTO adminDTO);
+
+    /**
+     * 后台查看微服务详情
+     * @param serviceId
+     * @return
+     */
+    ComFmsServiceVO detailFmsServiceAdmin(@Param("serviceId") Long serviceId);
+
+    /**
+     * 微服务顶部统计数据查询
+     * @param communityId
+     * @return
+     */
+    FmsServiceTopStatisticsVO statisticsFmsService(@Param("communityId") Long communityId);
+
+    /**
+     * 小程序分页查询微服务
+     * @param page
+     * @param adminDTO
+     * @return
+     */
+    IPage<ComFmsServiceVO> pageFmsServiceAdminApplets(@Param("page") Page page, @Param("adminDTO") PageFmsServiceAppletsDTO adminDTO);
+
+    /**
+     * 小程序查看微服务详情
+     * @param serviceId
+     * @return
+     */
+    ComFmsServiceVO detailFmsServiceApplets(@Param("serviceId") Long serviceId);
+
+    /**
+     * 分页查询我的微服务
+     * @param page
+     * @param adminDTO
+     * @return
+     */
+    IPage<ComFmsServiceVO> pageMyFmsService(@Param("page") Page page, @Param("adminDTO") PageFmsServiceAppletsDTO adminDTO);
+
+    /**
+     * 微团队成员分页查询服务处理
+     * @param page
+     * @param adminDTO
+     * @return
+     */
+    IPage<ComFmsServiceVO> pageDealFmsService(@Param("page") Page page, @Param("adminDTO") PageFmsServiceAppletsDTO adminDTO);
+
+    /**
+     * 获取五微服务基础数据
+     * @param communityId
+     * @return
+     */
+    BigScreenFmsStatisticsInfo getFmsBaseData(@Param("communityId") Long communityId);
+
+    /**
+     * 获取团队类型占比圆形图数据
+     * @param communityId
+     * @return
+     */
+    List<ComFmsTeamVO> retrieveTeamTypeCircleData(@Param("communityId") Long communityId);
+
+    /**
+     * 微服务新增折线数据
+     * @param communityId
+     * @return
+     */
+    List<StatisticsCommVO> retrieveServiceAddPolylineData(@Param("communityId") Long communityId);
+
+    /**
+     * 报事报修累计折线数据获取
+     * @param communityId
+     * @param date
+     * @return
+     */
+    StatisticsCommVO retrieveServiceTotalPolylineData(@Param("communityId") Long communityId, @Param("date") String date);
+
+    /**
+     * 获取微调节矛盾类型占比圆形图数据
+     * @param communityId
+     * @return
+     */
+    List<EventVO> retrieveAdjustCircleData(@Param("communityId") Long communityId);
+
+    /**
+     * 新增解决矛盾折线数据
+     * @param communityId
+     * @return
+     */
+    List<StatisticsCommVO> retrieveAdjustAddPolylineData(@Param("communityId") Long communityId);
+
+    /**
+     * 累计解决矛盾折线数据
+     * @param communityId
+     * @param date
+     * @return
+     */
+    StatisticsCommVO retrieveAdjustTotalPolylineData(@Param("communityId") Long communityId, @Param("date") String date);
+
+    /**
+     * 微防控防控类型占比圆形图数据
+     * @param communityId
+     * @return
+     */
+    List<EventVO> retrieveControlCircleData(@Param("communityId") Long communityId);
+
+    /**
+     * 杨家坪定制页面-微团队展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    IPage<ComFmsTeamVO> pageFmsTeam(@Param("page") Page page, @Param("pageBaseDTO") PageBaseDTO pageBaseDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComFmsServiceEvaluationsDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComFmsServiceEvaluationsDAO.java
new file mode 100644
index 0000000..2a146ae
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComFmsServiceEvaluationsDAO.java
@@ -0,0 +1,39 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComFmsServiceEvaluations;
+
+/**
+ * 五微服务-服务评价(ComFmsServiceEvaluations)表数据库访问层
+ *
+ * @author makejava
+ * @since 2022-02-11 13:35:53
+ */
+@Mapper
+public interface ComFmsServiceEvaluationsDAO extends BaseMapper<ComFmsServiceEvaluations> {
+
+    /**
+     * 批量新增数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<ComFmsServiceEvaluations> 实例对象列表
+     * @return 影响行数
+     */
+    int insertBatch(@Param("entities") List<ComFmsServiceEvaluations> entities);
+
+    /**
+     * 批量新增或按主键更新数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<ComFmsServiceEvaluations> 实例对象列表
+     * @return 影响行数
+     * @throws org.springframework.jdbc.BadSqlGrammarException
+     *             入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
+     */
+    int insertOrUpdateBatch(@Param("entities") List<ComFmsServiceEvaluations> entities);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComFmsServiceRecordDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComFmsServiceRecordDAO.java
new file mode 100644
index 0000000..7d88f2e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComFmsServiceRecordDAO.java
@@ -0,0 +1,41 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComFmsServiceRecord;
+
+/**
+ * 五微服务-服务记录(ComFmsServiceRecord)表数据库访问层
+ *
+ * @author makejava
+ * @since 2022-02-11 13:35:54
+ */
+@Mapper
+public interface ComFmsServiceRecordDAO extends BaseMapper<ComFmsServiceRecord> {
+
+    /**
+     * 批量新增数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<ComFmsServiceRecord> 实例对象列表
+     * @return 影响行数
+     */
+    int insertBatch(@Param("entities") List<ComFmsServiceRecord> entities);
+
+    int insertOneBatch(@Param("entitie") ComFmsServiceRecord entities);
+
+    /**
+     * 批量新增或按主键更新数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<ComFmsServiceRecord> 实例对象列表
+     * @return 影响行数
+     * @throws org.springframework.jdbc.BadSqlGrammarException
+     *             入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
+     */
+    int insertOrUpdateBatch(@Param("entities") List<ComFmsServiceRecord> entities);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComFmsTeamDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComFmsTeamDAO.java
new file mode 100644
index 0000000..bbba448
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComFmsTeamDAO.java
@@ -0,0 +1,57 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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.fms.PageFmsTeamDTO;
+import com.panzhihua.common.model.vos.community.fms.ComFmsTeamVO;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComFmsTeam;
+
+/**
+ * 五微服务-微团队(ComFmsTeam)表数据库访问层
+ *
+ * @author makejava
+ * @since 2022-02-11 13:35:54
+ */
+@Mapper
+public interface ComFmsTeamDAO extends BaseMapper<ComFmsTeam> {
+
+    /**
+     * 批量新增数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<ComFmsTeam> 实例对象列表
+     * @return 影响行数
+     */
+    int insertBatch(@Param("entities") List<ComFmsTeam> entities);
+
+    /**
+     * 批量新增或按主键更新数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<ComFmsTeam> 实例对象列表
+     * @return 影响行数
+     * @throws org.springframework.jdbc.BadSqlGrammarException
+     *             入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
+     */
+    int insertOrUpdateBatch(@Param("entities") List<ComFmsTeam> entities);
+
+    /**
+     * 小程序分页查询团队信息
+     * @param page
+     * @param pageFmsTeamDTO
+     * @return
+     */
+    IPage<ComFmsTeamVO> pageFmsTeamApplets(@Param("page") Page page, @Param("pageFmsTeamDTO") PageFmsTeamDTO pageFmsTeamDTO);
+
+    /**
+     * 小程序查询团队信息
+     * @param pageFmsTeamDTO
+     * @return
+     */
+    List<ComFmsTeamVO> listFmsTeamApplets(@Param("pageFmsTeamDTO") PageFmsTeamDTO pageFmsTeamDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComFmsTeamMemberDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComFmsTeamMemberDAO.java
new file mode 100644
index 0000000..0ee1261
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComFmsTeamMemberDAO.java
@@ -0,0 +1,89 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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.fms.PageTeamMemberDTO;
+import com.panzhihua.common.model.vos.community.fms.ComFmsTeamMemberExportExcelVO;
+import com.panzhihua.common.model.vos.community.fms.ComFmsTeamMemberVO;
+import com.panzhihua.common.model.vos.community.fms.TeamMemberTopStatisticsVO;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComFmsTeamMember;
+
+/**
+ * 五微服务-团队成员(ComFmsTeamMember)表数据库访问层
+ *
+ * @author makejava
+ * @since 2022-02-11 13:35:55
+ */
+@Mapper
+public interface ComFmsTeamMemberDAO extends BaseMapper<ComFmsTeamMember> {
+
+    /**
+     * 批量新增数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<ComFmsTeamMember> 实例对象列表
+     * @return 影响行数
+     */
+    int insertBatch(@Param("entities") List<ComFmsTeamMember> entities);
+
+    /**
+     * 批量新增或按主键更新数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<ComFmsTeamMember> 实例对象列表
+     * @return 影响行数
+     * @throws org.springframework.jdbc.BadSqlGrammarException
+     *             入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
+     */
+    int insertOrUpdateBatch(@Param("entities") List<ComFmsTeamMember> entities);
+
+    /**
+     * 分页查询团队成员
+     * @param page
+     * @param pageTeamMemberDTO
+     * @return
+     */
+    IPage<ComFmsTeamMemberVO> pageFmsTeamMember(@Param("page") Page page, @Param("pageTeamMemberDTO") PageTeamMemberDTO pageTeamMemberDTO);
+
+    /**
+     * 获取成员数量
+     * @param communityId
+     * @param idCard
+     * @param phone
+     * @return
+     */
+    Integer countMember(@Param("communityId") Long communityId, @Param("idCard") String idCard, @Param("phone") String phone);
+
+    /**
+     * 微团队顶部统计
+     * @param communityId
+     * @return
+     */
+    TeamMemberTopStatisticsVO statisticsFmsTeamMember(@Param("communityId") Long communityId);
+
+    /**
+     * 获取团队人员导出数据
+     * @param pageTeamMemberDTO
+     * @return
+     */
+    List<ComFmsTeamMemberExportExcelVO> exportTeamMember(@Param("pageTeamMemberDTO") PageTeamMemberDTO pageTeamMemberDTO);
+
+    /**
+     * 通过社区id获取团队成员
+     * @param communityId
+     * @return
+     */
+    List<ComFmsTeamMemberVO> selectListByCommunityId(@Param("communityId") Long communityId);
+
+    /**
+     * 通过团队id查询团队成员
+     * @param teamId
+     * @return
+     */
+    List<ComFmsTeamMemberVO> selectVOListByTeamId(@Param("teamId") Long teamId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComFmsTeamMemberRelationDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComFmsTeamMemberRelationDAO.java
new file mode 100644
index 0000000..418b64d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComFmsTeamMemberRelationDAO.java
@@ -0,0 +1,39 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComFmsTeamMemberRelation;
+
+/**
+ * 五微服务-团队&成员关系表(ComFmsTeamMemberRelation)表数据库访问层
+ *
+ * @author makejava
+ * @since 2022-02-14 14:41:35
+ */
+@Mapper
+public interface ComFmsTeamMemberRelationDAO extends BaseMapper<ComFmsTeamMemberRelation> {
+
+    /**
+     * 批量新增数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<ComFmsTeamMemberRelation> 实例对象列表
+     * @return 影响行数
+     */
+    int insertBatch(@Param("entities") List<ComFmsTeamMemberRelation> entities);
+
+    /**
+     * 批量新增或按主键更新数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<ComFmsTeamMemberRelation> 实例对象列表
+     * @return 影响行数
+     * @throws org.springframework.jdbc.BadSqlGrammarException
+     *             入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
+     */
+    int insertOrUpdateBatch(@Param("entities") List<ComFmsTeamMemberRelation> entities);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComFmsTeamTypeDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComFmsTeamTypeDAO.java
new file mode 100644
index 0000000..bbee9b9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComFmsTeamTypeDAO.java
@@ -0,0 +1,39 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComFmsTeamType;
+
+/**
+ * 五微服务-团队类型(ComFmsTeamType)表数据库访问层
+ *
+ * @author makejava
+ * @since 2022-02-11 13:35:56
+ */
+@Mapper
+public interface ComFmsTeamTypeDAO extends BaseMapper<ComFmsTeamType> {
+
+    /**
+     * 批量新增数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<ComFmsTeamType> 实例对象列表
+     * @return 影响行数
+     */
+    int insertBatch(@Param("entities") List<ComFmsTeamType> entities);
+
+    /**
+     * 批量新增或按主键更新数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<ComFmsTeamType> 实例对象列表
+     * @return 影响行数
+     * @throws org.springframework.jdbc.BadSqlGrammarException
+     *             入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
+     */
+    int insertOrUpdateBatch(@Param("entities") List<ComFmsTeamType> entities);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComKeyPopulationDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComKeyPopulationDAO.java
new file mode 100644
index 0000000..d48893c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComKeyPopulationDAO.java
@@ -0,0 +1,16 @@
+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.ComKeyPopulationDO;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 17:41:05
+ * @describe mapper类
+ */
+@Mapper
+public interface ComKeyPopulationDAO extends BaseMapper<ComKeyPopulationDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComLowSecurityPopulationDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComLowSecurityPopulationDAO.java
new file mode 100644
index 0000000..8e8697e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComLowSecurityPopulationDAO.java
@@ -0,0 +1,16 @@
+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.ComLowSecurityPopulationDO;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 19:52:55
+ * @describe 实有人口导入》低保户人员表mapper类
+ */
+@Mapper
+public interface ComLowSecurityPopulationDAO extends BaseMapper<ComLowSecurityPopulationDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMajorPopulationDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMajorPopulationDAO.java
new file mode 100644
index 0000000..dac5ea9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMajorPopulationDAO.java
@@ -0,0 +1,16 @@
+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.ComMajorPopulationDO;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 17:14:17
+ * @describe 重精人员表mapper类
+ */
+@Mapper
+public interface ComMajorPopulationDAO extends BaseMapper<ComMajorPopulationDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMediateTypeDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMediateTypeDao.java
new file mode 100644
index 0000000..1af1245
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMediateTypeDao.java
@@ -0,0 +1,36 @@
+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.service_community.entity.ComMediateType;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+* @author Frozen
+* @description 针对表【com_mediate_type(事件调解类型表)】的数据库操作Mapper
+* @createDate 2022-09-07 10:31:38
+* @Entity generator.entity.ComMediateType
+*/
+@Mapper
+public interface ComMediateTypeDao extends BaseMapper<ComMediateType> {
+
+    /**
+     * 后台获取事件列表
+     * @param keyWord
+     * @param page
+     * @param size
+     * @return 处理结果
+     * */
+    IPage<ComMediateType> eventList(Page page, @Param("keyWord") String keyWord);
+
+    /**
+     * 查询该事件类型的事件数量
+     * */
+    Integer selectEventCount(@Param("id") Long id,@Param("appId")String appId);
+}
+
+
+
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngBuildingDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngBuildingDAO.java
new file mode 100644
index 0000000..1d10930
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngBuildingDAO.java
@@ -0,0 +1,102 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+import java.util.Map;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.community.building.admin.PageBuildingListDto;
+import com.panzhihua.common.model.dtos.community.building.admin.PageBuildingUnitHouseListDto;
+import com.panzhihua.common.model.vos.community.ComMngVillageVO;
+import com.panzhihua.common.model.vos.community.VillageVO;
+import com.panzhihua.common.model.vos.community.building.admin.BuildingDetailAdminVo;
+import com.panzhihua.common.model.vos.community.building.admin.BuildingListHeaderStatisticsAdminVo;
+import com.panzhihua.common.model.vos.community.building.admin.PageBuildingListAdminVo;
+import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingHouseDetailVO;
+import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingHouseVO;
+import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingVO;
+import com.panzhihua.common.model.vos.grid.PopulationListVO;
+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.ComMngBuildingDO;
+
+/**
+ * @author xyh
+ * @date 2021/6/10 13:47
+ */
+@Mapper
+public interface ComMngBuildingDAO extends BaseMapper<ComMngBuildingDO> {
+    @Select("select street_id,act_id,village_id,name from com_mng_building")
+    List<ComMngBuildingDO> findAllBuilding();
+
+    List<String> find(String ids);
+
+    List<String> findByVillage(String ids);
+
+    List<VillageVO> select(Long id);
+
+    /**
+     * 社区后台-分页查询楼栋列表
+     *
+     * @param pageBuildingListDto 请求参数
+     * @return 楼栋列表
+     */
+    IPage<PageBuildingListAdminVo> pageBuildingAdmin(Page page, @Param(value = "pageBuildingListDto") PageBuildingListDto pageBuildingListDto);
+
+    /**
+     * 社区后台-查询楼栋列表表头统计数据
+     *
+     * @param communityId 社区id
+     * @return 楼栋列表表头统计数据
+     */
+    BuildingListHeaderStatisticsAdminVo buildingListHeaderStatisticsAdmin(@Param(value = "communityId") Long communityId);
+
+    /**
+     * 社区后台-查询楼栋详情
+     *
+     * @param id 楼栋id
+     * @return 楼栋详情
+     */
+    BuildingDetailAdminVo detailBuildAdmin(@Param(value = "id") Long id);
+
+    /**
+     * 查询楼栋下的单元列表
+     * @param villageId    小区id
+     * @param floor 楼栋号
+     * @return  单元列表
+     */
+    List<ComMngVillageBuildingVO> buildingUnitList(@Param(value = "villageId") Long villageId, @Param(value = "floor") String floor);
+
+    /**
+     * 查询楼栋单元下房屋列表
+     * @param unitHouseListDto 请求参数
+     * @return  房屋列表
+     */
+    IPage<ComMngVillageBuildingHouseVO> getBuildingUnitHouseList(Page page, @Param(value = "pageBuildingListDto") PageBuildingUnitHouseListDto unitHouseListDto);
+
+    /**
+     * 查询楼栋单元下统计数据
+     * @param villageId 小区id
+     * @param floor 楼栋号
+     * @param unit  单元号
+     * @return  统计数据
+     */
+    Map<String,Object> getBuildingUnitHouseStatistics(@Param(value = "villageId") Long villageId, @Param(value = "floor") String floor, @Param(value = "unit") String unit);
+
+    ComMngVillageBuildingHouseDetailVO buildingUnitHouseDetailAdmin(@Param("houseId") Long houseId);
+
+    List<PopulationListVO> getGridVillageBuildingPopulationList(@Param("houseId") Long houseId,@Param("communityId") Long communityId,
+                                                                @Param("relation") Integer relation, @Param("relationId") Integer relationId);
+
+    List<ComMngVillageVO> buildingVillageListAdmin(@Param("communityId") Long communityId);
+
+    /**
+     * 根据小区id查询楼栋列表
+     * @param villageId 小区id
+     * @return  查询楼栋列表
+     */
+    List<PageBuildingListAdminVo> getBuildListByVillageId(Long villageId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngCarDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngCarDAO.java
new file mode 100644
index 0000000..1442d0a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngCarDAO.java
@@ -0,0 +1,64 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.community.ExportComMngCarExcelDTO;
+import com.panzhihua.common.model.dtos.community.PageComMngCarDTO;
+import com.panzhihua.common.model.vos.community.ComMngCarExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngCarVO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationCarVO;
+import com.panzhihua.service_community.model.dos.ComMngCarDO;
+
+/**
+ * @description: 车辆管理
+ * @author: Null
+ * @date: 2021/3/16 14:28
+ */
+@Mapper
+public interface ComMngCarDAO extends BaseMapper<ComMngCarDO> {
+
+    @Select("<script> " + " SELECT " + " t.id, " + " t.community_id AS communityId, " + " t1.`name` AS communityName, "
+        + " t.card_no AS cardNo, " + " t.area_id AS areaId, " + " t.area_name AS areaName, " + " t.user_id userId, "
+        + " t.user_name AS userName, " + " t.address, " + " t.mobile, " + " t.plate_num AS plateNum, " + " t.brand, "
+        + " t.color, " + " t.create_at AS createAt, " + " t3.`name` AS createBy  " + "FROM " + " com_mng_car t "
+        + " LEFT JOIN com_act t1 ON t.community_id = t1.community_id "
+        + " LEFT JOIN sys_user t3 ON t.create_by = t3.user_id " + " WHERE 1=1"
+        + "<if test='pageComMngCarDTO.name != null and pageComMngCarDTO.name != &quot;&quot;'>"
+        + " and t.user_name LIKE concat( '%',#{pageComMngCarDTO.name}, '%' )  " + " </if> "
+        + "<if test='pageComMngCarDTO.villageId != null and pageComMngCarDTO.villageId != &quot;&quot;'>"
+        + " and t.area_id = #{pageComMngCarDTO.villageId} " + " </if> "
+        + "<if test='pageComMngCarDTO.communityId != null and pageComMngCarDTO.communityId != 0'>"
+        + " and t.community_id = ${pageComMngCarDTO.communityId} " + " </if> "
+        + "<if test='pageComMngCarDTO.areaName != null and pageComMngCarDTO.areaName != &quot;&quot;'>"
+        + " and t.area_name LIKE concat( '%',#{pageComMngCarDTO.areaName}, '%' )  " + " </if> "
+        + " order by t.create_at desc" + "</script>")
+    IPage<ComMngCarVO> pageQueryComMngCar(Page page,
+        @Param(value = "pageComMngCarDTO") PageComMngCarDTO pageComMngCarDTO);
+
+    @Select("select cmc.id,cmc.plate_num,cmc.color,cmc.brand from com_mng_car as cmc "
+        + " left join sys_user as su on su.user_id = cmc.user_id " + " where su.id_card = #{idCard}")
+    List<ComMngPopulationCarVO> getPopulationCarListByIdCard(@Param(value = "idCard") String idCard);
+
+    @Select("<script> " + " SELECT  " + "  t.area_name AS areaName,  " + "  t.user_name AS userName,  "
+        + "  t.card_no AS cardNo,  " + "  t.brand,  " + "  t.plate_num AS plateNum,  " + "  t.color,  "
+        + "  t.mobile,  " + "  t.address " + "FROM  " + "  com_mng_car t where 1=1 "
+        + "<if test='exportComMngCarExcelDTO.areaName != null and exportComMngCarExcelDTO.areaName.trim() != &quot;&quot;'>"
+        + " and t.area_name LIKE concat( #{exportComMngCarExcelDTO.areaName}, '%' )  " + " </if> "
+        + "<if test='exportComMngCarExcelDTO.communityId != null and exportComMngCarExcelDTO.communityId != &quot;&quot;'>"
+        + " and t.community_id = ${exportComMngCarExcelDTO.communityId} " + " </if> "
+        + "<if test='exportComMngCarExcelDTO.villageId != null and exportComMngCarExcelDTO.villageId != &quot;&quot;'>"
+        + " and t.area_id = #{exportComMngCarExcelDTO.villageId} " + " </if> "
+        + "<if test='exportComMngCarExcelDTO.userName != null and exportComMngCarExcelDTO.userName.trim() != &quot;&quot;'>"
+        + " and t.user_name LIKE concat( #{exportComMngCarExcelDTO.userName}, '%' )  " + " </if> "
+        + " order by t.create_at desc" + "</script>")
+    List<ComMngCarExcelVO>
+        exportRealCar(@Param(value = "exportComMngCarExcelDTO") ExportComMngCarExcelDTO exportComMngCarExcelDTO);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngCityDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngCityDAO.java
new file mode 100644
index 0000000..1048807
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngCityDAO.java
@@ -0,0 +1,16 @@
+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.ComMngCityDO;
+
+/**
+ * @description: 城市
+ * @author: Null
+ * @date: 2021/3/20 23:32
+ */
+@Mapper
+public interface ComMngCityDAO extends BaseMapper<ComMngCityDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngDistrictDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngDistrictDAO.java
new file mode 100644
index 0000000..f085914
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngDistrictDAO.java
@@ -0,0 +1,16 @@
+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.ComMngDistrictDO;
+
+/**
+ * @description: 区县
+ * @author: Null
+ * @date: 2021/3/20 23:32
+ */
+@Mapper
+public interface ComMngDistrictDAO extends BaseMapper<ComMngDistrictDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationCommunityTagsDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationCommunityTagsDAO.java
new file mode 100644
index 0000000..86c9118
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationCommunityTagsDAO.java
@@ -0,0 +1,28 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_community.model.dos.ComMngPopulationCommunityTagsDO;
+
+/**
+ * @auther txb
+ * @create 2021-08-19 14:55:29
+ * @describe 基础数据》人口社区特殊群体关系表mapper类
+ */
+@Mapper
+public interface ComMngPopulationCommunityTagsDAO extends BaseMapper<ComMngPopulationCommunityTagsDO> {
+
+    void updateAll(@Param("comMngPopulationCommunityTagsDOS") List<ComMngPopulationCommunityTagsDO> comMngPopulationCommunityTagsDOS);
+
+    /**
+     * 删除实有人口与社区绑定关系
+     * @param ids   实有人口id集合
+     * @param communityId   社区id
+     */
+    void deletePopulationRelation(@Param("ids") List<Long> ids,@Param("communityId") Long communityId);
+
+}
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
new file mode 100644
index 0000000..8dfded2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationDAO.java
@@ -0,0 +1,713 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import com.panzhihua.common.model.dtos.PageBaseDTO;
+import com.panzhihua.common.model.dtos.community.CascadeHouseDTO;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.community.*;
+import com.panzhihua.common.model.vos.community.bigscreen.WestScreenStatics;
+import com.panzhihua.common.model.vos.community.screen.civil.*;
+import com.panzhihua.common.model.vos.community.bigscreen.BaseInfo;
+import com.panzhihua.common.model.vos.community.bigscreen.IndexDynamic;
+import com.panzhihua.service_community.model.dos.ComMngPopulationCommunityTagsDO;
+import org.apache.ibatis.annotations.Insert;
+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;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.community.ComMngPopulationDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenEventDTO;
+import com.panzhihua.common.model.dtos.grid.PageComMngPopulationDTO;
+import com.panzhihua.common.model.dtos.grid.PagePopulationListDTO;
+import com.panzhihua.common.model.dtos.grid.admin.ComMngPopulationExportDTO;
+import com.panzhihua.common.model.dtos.grid.admin.ComMngPopulationListDTO;
+import com.panzhihua.common.model.dtos.grid.admin.PageComMngVillagePopulationDTO;
+import com.panzhihua.common.model.dtos.user.PageInputUserDTO;
+import com.panzhihua.common.model.vos.area.AreaAddressVO;
+import com.panzhihua.common.model.vos.community.screen.event.*;
+import com.panzhihua.common.model.vos.community.screen.index.*;
+import com.panzhihua.common.model.vos.grid.EventGridDataVO;
+import com.panzhihua.common.model.vos.grid.EventSpecialPopulationVO;
+import com.panzhihua.common.model.vos.grid.PopulationDetailVO;
+import com.panzhihua.common.model.vos.grid.PopulationListVO;
+import com.panzhihua.common.model.vos.grid.admin.ComMngPopulationListVO;
+import com.panzhihua.common.model.vos.grid.admin.ComMngVillagePopulationListVO;
+import com.panzhihua.common.model.vos.grid.admin.PopulationStatisticsVO;
+import com.panzhihua.common.model.vos.user.*;
+import com.panzhihua.service_community.model.dos.ComMngPopulationDO;
+
+/**
+ * 实有人口Dao
+ */
+@Mapper
+public interface ComMngPopulationDAO extends BaseMapper<ComMngPopulationDO> {
+
+    @Select("<script> " + "SELECT " + "cmp.`name`, " + "cmp.id, " + "cmp.street_id, " + "cmp.act_id, "
+        + "cmp.village_id, " + "cmp.sex, " + "cmp.age, " + "cmp.card_no, " + "cmp.road, " + "cmp.door_no, "
+        + "cmp.floor, " + "cmp.unit_no, " + "cmp.house_no, " + "cmp.political_outlook, " + "cmp.work_company, "
+        + "cmp.special_situation, " + "cmp.phone, " + "cmp.remark, " + "cmv.alley, " + "cmp.native_place, "
+        + "cmphu.relation, " + "cmp.nation  " + "FROM  " + "com_mng_population AS cmp "
+        + "LEFT JOIN com_mng_village AS cmv ON cmv.village_id = cmp.village_id "
+        + "LEFT JOIN com_mng_population_house_user AS cmphu ON cmphu.popul_id = cmp.id " + "<where>"
+        + "<if test='comMngPopulationVO.name != null and comMngPopulationVO.name.trim() != &quot;&quot;'>"
+        + "AND cmp.`name` LIKE concat(#{comMngPopulationVO.name},'%') " + " </if> "
+        + "<if test='comMngPopulationVO.road != null and comMngPopulationVO.road.trim() != &quot;&quot;'>"
+        + "AND cmp.road LIKE concat(#{comMngPopulationVO.road},'%') " + " </if> "
+        + "<if test='comMngPopulationVO.doorNo != null and comMngPopulationVO.doorNo.trim() != &quot;&quot;'>"
+        + "AND cmp.door_no = #{comMngPopulationVO.doorNo} " + " </if> "
+        + "<if test='comMngPopulationVO.alley != null and comMngPopulationVO.alley.trim() != &quot;&quot;'>"
+        + "AND cmv.alley LIKE concat(#{comMngPopulationVO.alley},'%') " + " </if> "
+        + "<if test='comMngPopulationVO.sex != null and comMngPopulationVO.sex.trim() != &quot;&quot;'>"
+        + "AND cmp.sex = #{comMngPopulationVO.sex} " + " </if> " + "<if test='comMngPopulationVO.ageStart != null'>"
+        + "AND cmp.age <![CDATA[ >= ]]> #{comMngPopulationVO.ageStart} " + " </if> "
+        + "<if test='comMngPopulationVO.ageEnd != null'>" + "AND cmp.age <![CDATA[ <= ]]> #{comMngPopulationVO.ageEnd} "
+        + " </if> "
+        + "<if test='comMngPopulationVO.nativePlace != null and comMngPopulationVO.nativePlace.trim() != &quot;&quot;'>"
+        + "AND cmp.native_place LIKE concat(#{comMngPopulationVO.nativePlace},'%') " + " </if> "
+        + "<if test='comMngPopulationVO.nation != null and comMngPopulationVO.nation.trim() != &quot;&quot;'>"
+        + "AND cmp.nation = #{comMngPopulationVO.nation} " + " </if> "
+        + "<if test='comMngPopulationVO.politicalOutlook != null and comMngPopulationVO.politicalOutlook.trim() != &quot;&quot;'>"
+        + "AND cmp.political_outlook = #{comMngPopulationVO.politicalOutlook} " + " </if> "
+        + "<if test='comMngPopulationVO.cardNo != null and comMngPopulationVO.cardNo.trim() != &quot;&quot;'>"
+        + "AND cmp.card_no = #{comMngPopulationVO.cardNo} " + " </if> "
+        + "<if test='comMngPopulationVO.remark != null and comMngPopulationVO.remark.trim() != &quot;&quot;'>"
+        + "AND cmp.remark = #{comMngPopulationVO.remark} " + " </if> " + " </where>" + " order by cmp.create_at desc "
+        + "</script>")
+    List<ComMngPopulationVO> listPopulation(ComMngPopulationDTO populationVO);
+
+
+    List<ComMngPopulationDO> selectListIds();
+
+    @Select("select id,user_id,relationship,`name`,id_card,phone,age,health,job,create_at,update_at,card_photo_front,card_photo_back,family_book from com_mng_family_info where user_id=#{userId} order by create_at desc ")
+    List<ComMngFamilyInfoVO> listFamilyByUserId(Long userId);
+
+    @Select("select cmphu.popul_id,cmp.name,cmp.relation,cmp.age,cmp.phone,cmp.healthy,cmp.card_no,cmp.work_company from com_mng_population_house_user cmphu "
+        + " left join com_mng_population cmp on cmp.id = cmphu.popul_id "
+        + " where cmphu.house_id = #{houseId} and cmphu.popul_id != #{populId}")
+    List<ComHouseMemberVo> listHouseMermberByUserId(@Param("houseId") Long houseId, @Param("populId") Long populId);
+
+    @Select("SELECT cmphu.popul_id,cmphu.relation,cmp.NAME,cmp.phone,cmp.healthy,cmp.card_no,cmp.work_company,cmp.birthday FROM com_mng_population_house_user cmphu "
+        + " LEFT JOIN com_mng_population cmp ON cmphu.popul_id = cmp.id " + " WHERE cmphu.popul_id = #{populId}")
+    List<ComHouseMemberVo> listHouseMermberByPopuId(@Param("populId") Long populId);
+
+//    @Select("<script> " + "SELECT " + "cmp.`name`, " + "cmp.id, " + "cmp.street_id, " + "cmp.act_id, "
+//        + "cmp.village_id, " + "cmp.sex, " + "cmp.card_no, " + "cmp.road, " + "cmp.door_no, " + "cmp.floor, "
+//        + "cmp.unit_no, " + "cmp.house_no, " + "cmp.political_outlook, " + "cmp.work_company, "
+//        + "cmp.special_situation, " + "cmp.phone, " + "cmp.remark, " + "cmp.native_place, " + "cmp.nation,  "
+//        + "cmpct.label,  " + "cmp.marriage,  " + "cmp.culture_level,  " + "cmp.profession,  " + "cmp.out_or_local,  "
+//        + "cmp.census_register,  " + "cmp.healthy,  " + "cmp.birthday,  " + "cmp.update_at,  " + "cmp.address,  "
+//        + "cmp.is_rent,cmp.death  " + "FROM  " + "com_mng_population AS cmp "
+//        + " LEFT JOIN com_mng_population_community_tags AS cmpct ON cmp.id = cmpct.population_id  " + "<where>"
+//        + "<if test='comMngPopulationVO.name != null and comMngPopulationVO.name != &quot;&quot;'>"
+//        + "AND cmp.`name` LIKE concat(#{comMngPopulationVO.name},'%') " + " </if> "
+//        + "<if test='comMngPopulationVO.label != null and comMngPopulationVO.label != &quot;&quot;'>"
+//        + "AND cmpct.label LIKE concat('%',#{comMngPopulationVO.label},'%') " + " </if> "
+//        + "<if test='comMngPopulationVO.actId != null'>" + " and cmpct.community_id = ${comMngPopulationVO.actId} "
+//        + " </if> " + "<if test='comMngPopulationVO.outOrLocal != null'>"
+//        + " and cmp.out_or_local = #{comMngPopulationVO.outOrLocal} " + " </if> "
+//        + "<if test='comMngPopulationVO.villageId != null and comMngPopulationVO.villageId != &quot;&quot;'>"
+//        + " and cmp.village_id = #{comMngPopulationVO.villageId} " + " </if> "
+//        + "<if test='comMngPopulationVO.road != null and comMngPopulationVO.road != &quot;&quot;'>"
+//        + "AND cmp.road = #{comMngPopulationVO.road} " + " </if> "
+//        + "<if test='comMngPopulationVO.doorNo != null and comMngPopulationVO.doorNo != &quot;&quot;'>"
+//        + "AND cmp.door_no = #{comMngPopulationVO.doorNo} " + " </if> "
+//        + "<if test='comMngPopulationVO.floor != null and comMngPopulationVO.floor != &quot;&quot;'>"
+//        + "AND cmp.floor = #{comMngPopulationVO.floor} " + " </if> "
+//        + "<if test='comMngPopulationVO.unitNo != null and comMngPopulationVO.unitNo != &quot;&quot;'>"
+//        + "AND cmp.unit_no = #{comMngPopulationVO.unitNo} " + " </if> "
+//        + "<if test='comMngPopulationVO.houseNo != null and comMngPopulationVO.houseNo != &quot;&quot;'>"
+//        + "AND cmp.house_no = #{comMngPopulationVO.houseNo} " + " </if> "
+//        + "<if test='comMngPopulationVO.isDeath != null'>"
+//        + "AND cmp.death = #{comMngPopulationVO.isDeath} " + " </if> "
+//        + "<if test='comMngPopulationVO.sex != null and comMngPopulationVO.sex != &quot;&quot;'>"
+//        + "AND cmp.sex = #{comMngPopulationVO.sex} " + " </if> "
+//        + "<if test='comMngPopulationVO.ageStartTime != null and comMngPopulationVO.ageStartTime != &quot;&quot; and comMngPopulationVO.ageEndTime == null'>"
+//        + "AND date_format(cmp.birthday,'%Y-%m-%d') <![CDATA[ <= ]]> #{comMngPopulationVO.ageStartTime} " + " </if> "
+//        + "<if test='comMngPopulationVO.ageEndTime != null and comMngPopulationVO.ageEndTime != &quot;&quot; and comMngPopulationVO.ageStartTime == null'>"
+//        + "AND date_format(cmp.birthday,'%Y-%m-%d') <![CDATA[ >= ]]> #{comMngPopulationVO.ageEndTime} " + " </if> "
+//        + "<if test='comMngPopulationVO.ageStartTime != null and comMngPopulationVO.ageEndTime != null and comMngPopulationVO.ageStartTime == comMngPopulationVO.ageEndTime'>"
+//        + "AND cmp.birthday BETWEEN #{comMngPopulationVO.ageStartTimeEnd} and #{comMngPopulationVO.ageEndTime}"
+//        + " </if> "
+//        + "<if test='comMngPopulationVO.ageStartTime != null and comMngPopulationVO.ageEndTime != null and comMngPopulationVO.ageStartTime != comMngPopulationVO.ageEndTime'>"
+//        + "AND cmp.birthday BETWEEN #{comMngPopulationVO.ageEndTimeEnd} and #{comMngPopulationVO.ageStartTime}"
+//        + " </if> "
+//        + "<if test='comMngPopulationVO.searchKey != null and comMngPopulationVO.searchKey != &quot;&quot; '>"
+//        + "AND (cmp.name like concat('%',#{comMngPopulationVO.searchKey},'%') or cmp.card_no_str like concat('%',#{comMngPopulationVO.searchKey},'%') or cmp.phone like concat('%',#{comMngPopulationVO.searchKey},'%') "
+//        + " </if> "
+//        + "<if test='comMngPopulationVO.nativePlace != null and comMngPopulationVO.nativePlace != &quot;&quot;'>"
+//        + "AND cmp.native_place LIKE concat(#{comMngPopulationVO.nativePlace},'%') " + " </if> "
+//        + "<if test='comMngPopulationVO.nation != null and comMngPopulationVO.nation != &quot;&quot;'>"
+//        + "AND cmp.nation = #{comMngPopulationVO.nation} " + " </if> "
+//        + "<if test='comMngPopulationVO.politicalOutlook != null and comMngPopulationVO.politicalOutlook != &quot;&quot;'>"
+//        + "AND cmp.political_outlook = #{comMngPopulationVO.politicalOutlook} " + " </if> "
+//        + "<if test='comMngPopulationVO.cardNo != null and comMngPopulationVO.cardNo != &quot;&quot;'>"
+//        + "AND cmp.card_no = #{comMngPopulationVO.cardNo} " + " </if> "
+//        + "<if test='comMngPopulationVO.remark != null and comMngPopulationVO.remark != &quot;&quot;'>"
+//        + "AND cmp.remark = #{comMngPopulationVO.remark} " + " </if> " + " </where>" + " order by cmp.create_at desc"
+//        + "</script>")
+    IPage<ComMngPopulationVO> pagePopulation(Page page,
+        @Param("comMngPopulationVO") ComMngPopulationDTO comMngPopulationVO);
+
+    /**
+     * 导出老人列表
+     * @param comMngPopulationVO
+     * @return
+     */
+    List<ComMngPopulationVO> exportOld(@Param("comMngPopulationVO") ComMngPopulationDTO comMngPopulationVO);
+
+    /**
+     * 分页查询特殊群体列表
+     * @param page  分页参数
+     * @param pageInputUserDTO  请求参数
+     * @return  特殊群体列表
+     */
+    IPage<InputUserInfoVO> specialInputUser(Page page, @Param("pageInputUserDTO") PageInputUserDTO pageInputUserDTO);
+
+    /**
+     *
+     * @param pageInputUserDTO
+     * @return
+     */
+    List<InputUserInfoVO> specialInputUserExport(@Param("pageInputUserDTO") PageInputUserDTO pageInputUserDTO);
+
+    @Select("<script> "
+        + "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> " + "</where>" + " order by create_at desc "
+        + "</script>")
+    IPage<ComMngTagVO> specialInputUserTags(Page page, @Param("comMngUserTagDTO") PageInputUserDTO comMngUserTagDTO);
+
+    @Select("select user_id,card_photo_front,card_photo_back,family_book from sys_user where id_card=#{idCard}")
+    UserElectronicFileVO getSysUserElectronicFile(@Param("idCard") String idCard);
+
+    @Select("select user_id,card_photo_front,card_photo_back,family_book from sys_user where user_id=#{userId}")
+    UserElectronicFileVO getSysUserById(@Param("userId") Long userId);
+
+    @Select("update sys_user set card_photo_front=#{vo.cardPhotoFront},card_photo_back=#{vo.cardPhotoBack},family_book=#{vo.familyBook} where user_id=#{vo.userId}")
+    void updateSysUserElectronicFile(@Param("vo") UserElectronicFileVO vo);
+
+    @Select("<script> "
+        + "select (select province_name from com_mng_struct_area_province where province_adcode = #{provinceCode}) as province,"
+        + "(select city_name from com_mng_struct_area_city where city_adcode = #{cityCode}) as city,"
+        + "(select district_name from com_mng_struct_area_district where district_adcode = #{districtCode}) as district"
+        + "</script>")
+    AreaAddressVO getAreaAddress(@Param("provinceCode") String provinceCode, @Param("cityCode") String cityCode,
+        @Param("districtCode") String districtCode);
+
+//    @Select("select count(cmpct.id) as populationTotal "
+//        + ",(select count(cmpct.id) from com_mng_population_community_tags cmpct left join com_mng_population cmp on cmpct.population_id = cmp.id where cmpct.community_id = ${communityId} and cmp.out_or_local = 1) as localTotal "
+//        + ",(select count(cmpct.id) from com_mng_population_community_tags cmpct left join com_mng_population cmp on cmpct.population_id = cmp.id where cmpct.community_id = ${communityId} and cmp.out_or_local = 2) as outTotal "
+//        + ",(select count(cmpct.id) from com_mng_population_community_tags cmpct left join com_mng_population cmp on cmpct.population_id = cmp.id where cmpct.community_id = ${communityId} and cmpct.label is not null) as specialTotal "
+//        + ",(select count(DISTINCT `name`) from com_mng_village where community_id = ${communityId}) as villageTotal "
+//        + ",(select count(id) from com_mng_building where act_id = #{communityId}) as buildNum "
+//        + ",(select count(id) from com_mng_population_community_tags where community_id = ${communityId} and label LIKE CONCAT('%','吸毒人员','%')) as drugTotal "
+//        + ",(select count(id) from com_mng_population_community_tags where community_id = ${communityId} and label LIKE CONCAT('%','社区矫正','%')) as correctTotal "
+//        + ",(select count(id) from com_mng_population_community_tags where community_id = ${communityId} and label LIKE CONCAT('%','精神障碍患者','%')) as majorTotal "
+//        + ",(select count(id) from com_mng_population_community_tags where community_id = ${communityId} and label LIKE CONCAT('%','邪教人员','%')) as cultTotal "
+//        + ",(select count(id) from com_mng_population_community_tags where community_id = ${communityId} and label LIKE CONCAT('%','刑释人员','%')) as rehabilitationTotal "
+//        + ",(select count(id) from com_mng_population_community_tags where community_id = ${communityId} and label LIKE CONCAT('%','重点人员','%')) as keyTotal "
+//        + ",(select count(id) from com_mng_population_community_tags where community_id = ${communityId} and label LIKE CONCAT('%','退役军人','%')) as veteransTotal "
+//        + ",(select count(id) from com_mng_population_community_tags where community_id = ${communityId} and label LIKE CONCAT('%','残疾人','%')) as disabilityTotal "
+//        + ",(select count(id) from com_mng_population_community_tags where community_id = ${communityId} and label LIKE CONCAT('%','低保户','%')) as lowSecurityTotal "
+//        + ",(select count(id) from com_mng_population_community_tags where community_id = ${communityId} and label LIKE CONCAT('%','高龄老人','%')) as elderTotal "
+//        + ",(select count(id) from com_mng_population_community_tags where community_id = ${communityId} and label LIKE CONCAT('%','养老金人员','%')) as pensionTotal "
+//        + " from com_mng_population_community_tags as cmpct inner join com_mng_population as cmp on cmp.id = cmpct.population_id where community_id = ${communityId}")
+    /**
+     * 实有人口统计
+     * @param communityId
+     * @return
+     */
+    ComMngPopulationTotalVO getPopulationTotalByAdmin(@Param("communityId") Long communityId);
+
+    @Select("select count(id) as populationTotal," +
+            "IFNULL((select count(id) from com_mng_population_house where community_id = cmpct.community_id),0) as houseTotal, " +
+            "IFNULL((select count(id) from com_mng_real_company where community_id = cmpct.community_id),0) as companyTotal, " +
+            "IFNULL((select count(DISTINCT `name`) from com_mng_village where community_id = cmpct.community_id),0) as villageTotal " +
+            " from com_mng_population_community_tags AS cmpct " +
+            " where cmpct.community_id = ${communityId}")
+    IndexBasicsStatisticsVO getScreenIndexByBasics(@Param("communityId") Long communityId);
+
+    @Select("SELECT    cmp.sex as type,    count( cmpct.id ) AS sum,  count( cmpct.id )*100/(select count(*) from com_mng_population_community_tags as cmpct  \n" +
+            "          left join com_mng_population  as cmp on cmpct.population_id = cmp.id   WHERE    cmpct.community_id = ${communityId} ) as percent    FROM \n" +
+            "          com_mng_population_community_tags as cmpct  \n" +
+            "          left join com_mng_population  as cmp on cmpct.population_id = cmp.id   WHERE cmp.sex is not null  and  cmpct.community_id = ${communityId} GROUP BY cmp.sex")
+    List<IndexPopulationSexStatisticsVO> getScreenIndexByPopulationSex(@Param("communityId") Long communityId);
+
+//    @Select("SELECT " + " e.happen_time as createAt, " + " e.event_des, " + " e.event_deal_status  " + "FROM "
+//        + " `event` AS e " + " LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id  " + "WHERE "
+//        + " egd.grid_community_id = ${communityId}  " + " AND e.event_deal_status IN ( 1, 4 )  " + "ORDER BY "
+//        + " e.happen_time DESC  " + " LIMIT 8")
+    List<IndexEventListStatisticsVO> getScreenIndexByEventList(@Param("communityId") Long communityId);
+
+    @Select("SELECT " + " count( id ) AS microWishTotal, "
+        + " IFNULL(( SELECT count( id ) FROM com_act_easy_photo WHERE status = 4 AND community_id = camw.community_id ),0) AS easyPhotoTotal, "
+        + " IFNULL(( SELECT count( id ) FROM com_act_message WHERE STATUS = 2 AND community_id = camw.community_id ),0) AS replyTotal, "
+        + " IFNULL(( SELECT count( id ) FROM com_act_activity WHERE STATUS = 5 AND community_id = camw.community_id ),0) AS actTotal, "
+        + " IFNULL(( SELECT count( id ) FROM com_pb_activity WHERE STATUS = 5 AND community_id = camw.community_id ),0) AS pbTotal, "
+        + " IFNULL(( SELECT count( id ) FROM com_act_questnaire WHERE community_id = camw.community_id ),0) AS investigationTotal, "
+        + " IFNULL(( SELECT count( id ) FROM com_act_dyn WHERE community_id = camw.community_id AND STATUS = 1 ),0) AS propagandaTotal  "
+        + "FROM " + " com_act_micro_wish AS camw  " + "WHERE " + " camw.STATUS = 6  "
+        + " AND camw.community_id = ${communityId}")
+    IndexDynamicStatisticsVO getScreenIndexByDynamic(@Param("communityId") Long communityId);
+
+    @Select("SELECT " + " count( e.id ) AS eventTFTotal, " + " IFNULL(( " + "  SELECT " + "   count( e1.id )  "
+        + "  FROM " + "   `event` AS e1 " + "   LEFT JOIN event_grid_data AS egd1 ON egd1.id = e1.grid_id  "
+        + "  WHERE " + "   event_category = 1  " + "   AND event_type = 1  " + "   AND event_status = 2  "
+        + "   AND egd1.grid_community_id = ${communityId}  " + "   ), " + "  0  " + " ) AS eventZATotal, "
+        + " IFNULL(( " + "  SELECT " + "   count( e2.id )  " + "  FROM " + "   `event` AS e2 "
+        + "   LEFT JOIN event_grid_data AS egd2 ON egd2.id = e2.grid_id  " + "  WHERE " + "   event_category = 1  "
+        + "   AND event_type = 3  " + "   AND event_status = 2  " + "   AND egd2.grid_community_id = ${communityId}  "
+        + "   ), " + "  0  " + " ) AS eventMDTotal, " + " IFNULL(( " + "  SELECT " + "   count( e3.id )  " + "  FROM "
+        + "   `event` AS e3 " + "   LEFT JOIN event_grid_data AS egd3 ON egd3.id = e3.grid_id  " + "  WHERE "
+        + "   event_category = 1  " + "   AND event_type = 6  " + "   AND event_status = 2  "
+        + "   AND egd3.grid_community_id = ${communityId}  " + "   ), " + "  0  " + " ) AS eventTSTotal, "
+        + " IFNULL(( " + "  SELECT " + "   count( e4.id )  " + "  FROM " + "   `event` AS e4 "
+        + "   LEFT JOIN event_grid_data AS egd4 ON egd4.id = e4.grid_id  " + "  WHERE " + "   event_category = 2  "
+        + "   AND event_status = 2  " + "   AND egd4.grid_community_id = ${communityId}  "
+        + "   ), " + "  0  " + " ) AS eventBWDTotal, " + " IFNULL(( " + "  SELECT " + "   count( e5.id )  " + "  FROM "
+        + "   `event` AS e5 " + "   LEFT JOIN event_grid_data AS egd5 ON egd5.id = e5.grid_id  " + "  WHERE "
+        + "   event_category = 1  " + "   AND event_type = 2  " + "   AND event_status = 2  "
+        + "   AND egd5.grid_community_id = ${communityId}  " + "   ), " + "  0  " + " ) AS eventGGTotal  " + "FROM "
+        + " `event` AS e " + " LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id  " + "WHERE "
+        + " e.event_category = 1  " + " AND e.event_type = 5  " + " AND e.event_status = 2  "
+        + " AND egd.grid_community_id = ${communityId}")
+    IndexGridEventStatisticsVO getGridEventStatisticsList(@Param("communityId") Long communityId);
+
+    @Select("select id,grid_name from event_grid_data where grid_community_id = ${communityId}")
+    List<EventGridDataVO> getGridDataListByCommunityId(@Param("communityId") Long communityId);
+
+    @Select("SELECT " + " count( e.id ) AS eventTFTotal, "
+        + " IFNULL(( SELECT count( id ) FROM `event` WHERE event_category = 1 AND event_type = 1 AND event_status = 2 AND grid_id = e.grid_id ),0) AS eventZATotal, "
+        + " IFNULL(( SELECT count( id ) FROM `event` WHERE event_category = 1 AND event_type = 3 AND event_status = 2 AND grid_id = e.grid_id) ,0) AS eventMDTotal, "
+        + " IFNULL(( SELECT count( id ) FROM `event` WHERE event_category = 1 AND event_type = 6 AND event_status = 2 AND grid_id = e.grid_id ),0) AS eventTSTotal, "
+        + " IFNULL(( SELECT count( id ) FROM `event` WHERE event_category = 1 AND event_type = 4 AND event_status = 2 AND grid_id = e.grid_id ),0) AS eventBWDTotal, "
+        + " IFNULL(( SELECT count( id ) FROM `event` WHERE event_category = 1 AND event_type = 2 AND event_status = 2 AND grid_id = e.grid_id ),0) AS eventGGTotal  "
+        + "FROM " + " `event` AS e " + "WHERE " + " e.event_category = 1  " + " AND e.event_type = 5  "
+        + " AND e.event_status = 2  " + " AND e.grid_id = #{gridId}")
+    IndexGridEventStatisticsVO getGridEventByGirdId(@Param("gridId") Long gridId);
+
+    @Select("SELECT " + " tag_name, " + " sys_flag  " + "FROM " + " com_mng_user_tag  " + "WHERE " + " sys_flag = 1  "
+        + " OR community_id = ${communityId}")
+    List<ComMngUserTagVO> getUserTagListByCommunityId(@Param("communityId") Long communityId);
+
+    @Select("SELECT " + " count( id )  " + "FROM " + " com_mng_population_community_tags  " + "WHERE "
+        + " community_id = ${communityId} and label like concat('%',#{label},'%')")
+    Integer getSpecialStatisticsByLabel(@Param("label") String label,@Param("communityId") Long communityId);
+
+    @Select("SELECT " + " count( id )  " + "FROM " + " com_mng_population_community_tags  " + "WHERE "
+            + " community_id = ${communityId} ")
+    Integer getSpecialStatistics(@Param("communityId") Long communityId);
+
+    @Select("<script> " + "SELECT " + " count( egd.id ) AS gridTotal, "
+        + " ( select count(egmr.id) from event_grid_member_relation as egmr"
+        + " left join event_grid_data as egd1 on egd1.id = egmr.grid_id where egd1.grid_community_id = egd.grid_community_id ) AS gridMemberTotal, "
+        + " ( " + " SELECT " + "  count( e.id )  " + " FROM " + "  `event` AS e "
+        + "  LEFT JOIN event_grid_data AS egd1 ON e.grid_id = egd1.id  " + " WHERE "
+        + "  egd1.grid_community_id = egd.grid_community_id  " + "  AND event_status = 2  "
+        + "<if test='screenEventDTO.startTime != null and screenEventDTO.startTime != &quot;&quot;'>"
+        + " AND e.create_at <![CDATA[>=]]> #{screenEventDTO.startTime} " + " </if> "
+        + "<if test='screenEventDTO.endTime != null and screenEventDTO.endTime != &quot;&quot;'>"
+        + " AND e.create_at <![CDATA[<=]]> #{screenEventDTO.endTime} " + " </if> " + " ) AS eventTotal, " + " ( "
+        + " SELECT " + "  count( e1.id )  " + " FROM " + "  `event` AS e1 "
+        + "  LEFT JOIN event_grid_data AS egd2 ON e1.grid_id = egd2.id  " + " WHERE "
+        + "  egd2.grid_community_id = egd.grid_community_id  " + "  AND event_status = 2  "
+        + "<if test='screenEventDTO.startTime != null and screenEventDTO.startTime != &quot;&quot;'>"
+        + " AND e1.create_at <![CDATA[>=]]> #{screenEventDTO.startTime} " + " </if> "
+        + "<if test='screenEventDTO.endTime != null and screenEventDTO.endTime != &quot;&quot;'>"
+        + " AND e1.create_at <![CDATA[<=]]> #{screenEventDTO.endTime} " + " </if> "
+        + " AND event_deal_status IN ( 1, 2, 3 )) AS noSolveEventTotal, " + " ( " + " SELECT " + "  count( e1.id )  "
+        + " FROM " + "  `event` AS e1 " + "  LEFT JOIN event_grid_data AS egd2 ON e1.grid_id = egd2.id  " + " WHERE "
+        + "  egd2.grid_community_id = egd.grid_community_id  " + "  AND event_status = 2  "
+        + "  AND event_deal_status = 4  "
+        + "<if test='screenEventDTO.startTime != null and screenEventDTO.startTime != &quot;&quot;'>"
+        + " AND e1.create_at <![CDATA[>=]]> #{screenEventDTO.startTime} " + " </if> "
+        + "<if test='screenEventDTO.endTime != null and screenEventDTO.endTime != &quot;&quot;'>"
+        + " AND e1.create_at <![CDATA[<=]]> #{screenEventDTO.endTime} " + " </if> " + " ) AS solveEventTotal  "
+        + "FROM " + " event_grid_data AS egd  " + "WHERE " + " egd.grid_community_id = ${screenEventDTO.communityId} "
+        + " </script>")
+    EventLeftTopStatisticsVO getEventScreenLeftTop(@Param("screenEventDTO") BigScreenEventDTO screenEventDTO);
+
+    @Select("SELECT " + " DATE_FORMAT( e.create_at, '%m' ) months  " + "FROM " + " `event` AS e "
+        + " LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id  " + "WHERE "
+        + " e.create_at BETWEEN concat( YEAR ( now()), '-01-01 00:00:00' )  "
+        + " AND concat( YEAR ( now()), '-12-31 23:59:59' )  " + " AND egd.grid_community_id = ${communityId}  "
+        + "GROUP BY " + " months  " + "ORDER BY " + " count( e.id ) DESC  " + " LIMIT 3")
+    List<Integer> getFrequentlyEventMonth(@Param("communityId") Long communityId);
+
+    /**
+     * 综治事件大屏统计数据
+     * @param screenEventDTO    请求参数
+     * @return 大屏统计数据
+     */
+    EventLeftDownStatisticsVO getEventScreenLeftDown(@Param("screenEventDTO") BigScreenEventDTO screenEventDTO);
+
+    @Select("SELECT " + " su.nick_name AS userName, " + " su.image_url AS imageUrl, " + " e.happen_time as createAt, "
+        + " e.event_des, " + " e.danger_level, " + " e.urgent, " + " e.major, " + " e.happen_address, "
+        + " e.happent_lat_lng, " + " e.event_type, " + " e.id, " + " e.event_deal_status  " + "FROM " + " `event` AS e "
+        + " LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id "
+        + " LEFT JOIN sys_user AS su ON su.user_id = e.grid_member_id  " + "WHERE "
+        + " egd.grid_community_id = ${communityId}  " + " AND e.event_status = 2  " + " AND e.event_deal_status = 1  "
+        + " AND e.event_category = 1  " + "ORDER BY " + " e.happen_time DESC  " + " LIMIT 1")
+    EventNewStatisticsVO getEventScreenRightTop(@Param("communityId") Long communityId);
+
+    @Select("SELECT " + " grid_name, " + " `data`, " + " line_color, " + " line_broadband, " + " id, " + " fill_color  "
+        + "FROM " + " event_grid_data AS egd  " + "WHERE " + " egd.grid_community_id = ${communityId}")
+    List<EventGridStatisticsVO> getEventScreenGridData(@Param("communityId") Long communityId);
+
+    @Select("<script> " + "(SELECT " + " event_type AS type, " + " e.id AS eventId, " + " happent_lat_lng AS latLng,e.create_at as createAt  "
+        + "FROM " + " `event` AS e " + " LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id  " + "WHERE "
+        + " e.event_category = 1  " + " AND e.event_type IN ( 1, 2, 3, 4, 5, 6 )  " + " AND e.event_status = 2  "
+        + " AND egd.grid_community_id = ${screenEventDTO.communityId}  "
+        + "<if test='screenEventDTO.startTime != null and screenEventDTO.startTime != &quot;&quot;'>"
+        + " AND e.create_at <![CDATA[>=]]> #{screenEventDTO.startTime} " + " </if> "
+        + "<if test='screenEventDTO.endTime != null and screenEventDTO.endTime != &quot;&quot;'>"
+        + " AND e.create_at <![CDATA[<=]]> #{screenEventDTO.endTime} " + " </if> "
+        + "<if test='screenEventDTO.eventProcessStatus != null'>"
+        + " AND e.event_process_status = #{screenEventDTO.eventProcessStatus} " + " </if> "
+        + "<if test='screenEventDTO.redCard != null'>" + " AND e.red_card = #{screenEventDTO.redCard} " + " </if> "
+        + "<if test='screenEventDTO.yellowCard != null'>" + " AND e.yellow_card = #{screenEventDTO.yellowCard} "
+        + " </if> )" + "UNION ALL (SELECT " + " IFNULL( NULL, 7 ) AS type, " + " id AS eventId, " + " lng_lat AS latLng,create_at as createAt  "
+        + "FROM " + " com_act_easy_photo  " + "WHERE " + " community_id = ${screenEventDTO.communityId}  "
+        + "<if test='screenEventDTO.startTime != null and screenEventDTO.startTime != &quot;&quot;'>"
+        + " AND create_at <![CDATA[>=]]> #{screenEventDTO.startTime} " + " </if> "
+        + "<if test='screenEventDTO.endTime != null and screenEventDTO.endTime != &quot;&quot;'>"
+        + " AND create_at <![CDATA[<=]]> #{screenEventDTO.endTime} " + " </if> "
+        + "<if test='screenEventDTO.eventProcessStatus != null'>"
+        + " AND handle_status = #{screenEventDTO.eventProcessStatus} " + " </if> )" + "order by createAt desc </script>")
+    List<EventGridIncidentStatisticsVO>
+        getEventScreenEventList(@Param("screenEventDTO") BigScreenEventDTO screenEventDTO);
+
+    @Select("SELECT " + " count( id ) AS specialTotal, "
+        + " ( SELECT count( id ) FROM com_mng_population_community_tags WHERE label IS NOT NULL AND community_id = ${communityId} AND create_at < #{lastMonth} ) AS toMonthSpecialTotal  "
+        + "FROM " + " com_mng_population_community_tags AS cmpct  " + "WHERE " + " label IS NOT NULL  "
+        + " AND community_id = ${communityId}")
+    CivilPopulationStatisticsVO getCivilScreenPopulation(@Param("communityId") Long communityId,
+        @Param("lastMonth") Date lastMonth);
+
+    @Select("SELECT `NAME`, " + "user_sum, " + " lng, " + " lat, " + " village_images, " + " village_id  " + "FROM "
+        + " com_mng_village AS cmv  " + "WHERE " + " community_id = ${communityId}")
+    List<CivilVillageStatisticsVO> getCivilScreenVillageList(@Param("communityId") Long communityId);
+
+    @Select("SELECT " + " count( id ) AS peopleNum, "
+        + " ( SELECT count( id ) FROM com_mng_population_house AS cmph WHERE village_id = #{villageId} ) AS houseNum, "
+        + " ( SELECT count( id ) FROM com_mng_population WHERE village_id = #{villageId} AND out_or_local = 1 ) AS registerNum, "
+        + " ( SELECT count( id ) FROM com_mng_population WHERE village_id = #{villageId} AND out_or_local = 2 ) AS flowNum  "
+        + "FROM " + " com_mng_population AS cmp  " + "WHERE " + " village_id = #{villageId}")
+    CivilVillageStatisticsVO getCivilScreenVillageStatistics(@Param("villageId") Long villageId);
+
+    @Select("SELECT COUNT(cmpct.id) AS man,(SELECT COUNT(cmpct.id) FROM com_mng_population_community_tags as cmpct left join com_mng_population as cmp on cmpct.population_id = cmp.id WHERE cmp.sex = 2 AND cmpct.community_id = ${communityId}) AS woman "
+        + "FROM com_mng_population_community_tags as cmpct left join com_mng_population as cmp on cmpct.population_id = cmp.id WHERE cmp.sex = 1 AND cmpct.community_id = ${communityId}")
+    Map<String, Long> countBySex(@Param("communityId") Long communityId);
+
+    @Select("SELECT " + "(SELECT COUNT(aa.age) FROM "
+        + "(SELECT (SELECT  TIMESTAMPDIFF(YEAR, cmp.birthday, CURDATE()) ) AS age FROM com_mng_population as cmp left join com_mng_population_community_tags as cmpct on cmp.id = cmpct.population_id  WHERE cmpct.community_id = ${communityId}) as aa where aa.age<= 16) as age16,"
+        + "(SELECT COUNT(aa.age) FROM "
+        + "(SELECT (SELECT  TIMESTAMPDIFF(YEAR, cmp.birthday, CURDATE()) ) AS age FROM com_mng_population as cmp left join com_mng_population_community_tags as cmpct on cmp.id = cmpct.population_id  WHERE cmpct.community_id = ${communityId}) AS aa WHERE aa.age > 16 and aa.age<= 25) AS age25,"
+        + "(SELECT COUNT(aa.age) FROM "
+        + "(SELECT (SELECT  TIMESTAMPDIFF(YEAR, cmp.birthday, CURDATE()) ) AS age FROM com_mng_population as cmp left join com_mng_population_community_tags as cmpct on cmp.id = cmpct.population_id  WHERE cmpct.community_id = ${communityId}) AS aa WHERE aa.age > 25 and aa.age<= 35) AS age35,"
+        + "(SELECT COUNT(aa.age) FROM "
+        + "(SELECT (SELECT  TIMESTAMPDIFF(YEAR, cmp.birthday, CURDATE()) ) AS age FROM com_mng_population as cmp left join com_mng_population_community_tags as cmpct on cmp.id = cmpct.population_id  WHERE cmpct.community_id = ${communityId}) AS aa WHERE aa.age > 35 and aa.age<= 45) AS age45,"
+        + "(SELECT COUNT(aa.age) FROM "
+        + "(SELECT (SELECT  TIMESTAMPDIFF(YEAR, cmp.birthday, CURDATE()) ) AS age FROM com_mng_population as cmp left join com_mng_population_community_tags as cmpct on cmp.id = cmpct.population_id  WHERE cmpct.community_id = ${communityId}) AS aa WHERE aa.age > 45 and aa.age<= 55) AS age55,"
+        + "(SELECT COUNT(aa.age) FROM "
+        + "(SELECT (SELECT  TIMESTAMPDIFF(YEAR, cmp.birthday, CURDATE()) ) AS age FROM com_mng_population as cmp left join com_mng_population_community_tags as cmpct on cmp.id = cmpct.population_id  WHERE cmpct.community_id = ${communityId}) AS aa WHERE aa.age > 55) AS age55over")
+    Map<String, Long> countByAge(@Param("communityId") Long communityId);
+
+    @Select("SELECT COUNT(cmp.id)AS xx,"
+        + "(SELECT COUNT(cmp.id) FROM com_mng_population as cmp left join com_mng_population_community_tags as cmpct on cmp.id = cmpct.population_id WHERE culture_level = 2 AND cmpct.community_id = ${communityId}) as cz,"
+        + "(SELECT COUNT(cmp.id) FROM com_mng_population as cmp left join com_mng_population_community_tags as cmpct on cmp.id = cmpct.population_id WHERE culture_level = 3 AND cmpct.community_id = ${communityId}) as gz,"
+        + "(SELECT COUNT(cmp.id) FROM com_mng_population as cmp left join com_mng_population_community_tags as cmpct on cmp.id = cmpct.population_id WHERE culture_level = 4 AND cmpct.community_id = ${communityId}) as zz,"
+        + "(SELECT COUNT(cmp.id) FROM com_mng_population as cmp left join com_mng_population_community_tags as cmpct on cmp.id = cmpct.population_id WHERE culture_level = 5 AND cmpct.community_id = ${communityId}) as dz,"
+        + "(SELECT COUNT(cmp.id) FROM com_mng_population as cmp left join com_mng_population_community_tags as cmpct on cmp.id = cmpct.population_id WHERE culture_level = 6 AND cmpct.community_id = ${communityId}) as bk,"
+        + "(SELECT COUNT(cmp.id) FROM com_mng_population as cmp left join com_mng_population_community_tags as cmpct on cmp.id = cmpct.population_id WHERE culture_level = 7 AND cmpct.community_id = ${communityId}) as ss,"
+        + "(SELECT COUNT(cmp.id) FROM com_mng_population as cmp left join com_mng_population_community_tags as cmpct on cmp.id = cmpct.population_id WHERE culture_level = 8 AND cmpct.community_id = ${communityId}) as bs,"
+        + "(SELECT COUNT(cmp.id) FROM com_mng_population as cmp left join com_mng_population_community_tags as cmpct on cmp.id = cmpct.population_id WHERE culture_level = 9 AND cmpct.community_id = ${communityId}) as qt"
+        + " FROM com_mng_population as cmp left join com_mng_population_community_tags as cmpct on cmp.id = cmpct.population_id WHERE culture_level = 1 AND cmpct.community_id = ${communityId}")
+    Map<String, Long> countByCulture(@Param("communityId") Long communityId);
+
+    @Select("select count(user_id) from sys_user where community_id = ${communityId} and type = 1")
+    Long countUsedCommunityPopulation(@Param("communityId") Long communityId);
+
+    @Select("SELECT " + "(SELECT COUNT(aa.age) FROM "
+        + "(SELECT (SELECT  TIMESTAMPDIFF(YEAR, cmp.birthday, CURDATE()) ) AS age FROM com_mng_population as cmp left join com_mng_population_community_tags as cmpct on cmp.id = cmpct.population_id WHERE cmpct.community_id = ${communityId}) as aa where aa.age<= 18) as age16,"
+        + "(SELECT COUNT(aa.age) FROM "
+        + "(SELECT (SELECT  TIMESTAMPDIFF(YEAR, cmp.birthday, CURDATE()) ) AS age FROM com_mng_population_community_tags as capct left join com_mng_population as cmp on cmp.id = capct.population_id and capct.community_id =  ${communityId}) AS aa WHERE aa.age > 19 and aa.age<= 30) AS age27,"
+        + "(SELECT COUNT(aa.age) FROM "
+        + "(SELECT (SELECT  TIMESTAMPDIFF(YEAR, cmp.birthday, CURDATE()) ) AS age FROM com_mng_population_community_tags as capct left join com_mng_population as cmp on cmp.id = capct.population_id and capct.community_id = ${communityId}) AS aa WHERE aa.age > 31 and aa.age<= 40) AS age35,"
+        + "(SELECT COUNT(aa.age) FROM "
+        + "(SELECT (SELECT  TIMESTAMPDIFF(YEAR, cmp.birthday, CURDATE()) ) AS age FROM com_mng_population_community_tags as capct left join com_mng_population as cmp on cmp.id = capct.population_id and capct.community_id = ${communityId}) AS aa WHERE aa.age > 41 and aa.age<= 50) AS age45,"
+        + "(SELECT COUNT(aa.age) FROM "
+        + "(SELECT (SELECT  TIMESTAMPDIFF(YEAR, cmp.birthday, CURDATE()) ) AS age FROM com_mng_population_community_tags as capct left join com_mng_population as cmp on cmp.id = capct.population_id and capct.community_id = ${communityId}) AS aa WHERE aa.age > 51 and aa.age<= 59) AS age55,"
+        + "(SELECT COUNT(aa.age) FROM "
+        + "(SELECT (SELECT  TIMESTAMPDIFF(YEAR, cmp.birthday, CURDATE()) ) AS age FROM com_mng_population_community_tags as capct left join com_mng_population as cmp on cmp.id = capct.population_id and capct.community_id = ${communityId}) AS aa WHERE aa.age >= 60 and aa.age<= 79) AS age65,"
+        + "(SELECT COUNT(aa.age) FROM "
+        + "(SELECT (SELECT  TIMESTAMPDIFF(YEAR, cmp.birthday, CURDATE()) ) AS age FROM com_mng_population_community_tags as capct left join com_mng_population as cmp on cmp.id = capct.population_id and capct.community_id = ${communityId}) AS aa WHERE aa.age >= 80 and aa.age<= 89) AS age75,"
+        + "(SELECT COUNT(aa.age) FROM "
+        + "(SELECT (SELECT  TIMESTAMPDIFF(YEAR, cmp.birthday, CURDATE()) ) AS age FROM com_mng_population_community_tags as capct left join com_mng_population as cmp on cmp.id = capct.population_id and capct.community_id = ${communityId}) AS aa WHERE aa.age > 89) AS age55over")
+    Map<String, Long> indexCountByAge(@Param("communityId") Long communityId);
+
+    @Select("SELECT " + " id, " + " su.nick_name AS userName, " + " su.image_url, " + " caep.create_at, "
+        + " caep.detail AS eventDes, " + " caep.happen_addr AS happenAddress, " + " caep.lng_lat AS happentLatLng, "
+        + " caep.photo_path_list, " + " IFNULL( NULL, 7 ) AS eventType, " + " caep.status AS eventDealStatus  "
+        + "FROM " + " com_act_easy_photo AS caep " + " LEFT JOIN sys_user AS su ON su.user_id = caep.sponsor_id  "
+        + "WHERE " + " id = #{eventId}")
+    EventNewStatisticsVO getEventScreenSSPDateil(@Param("eventId") Long eventId);
+
+    @Select("SELECT " + " su.nick_name AS userName, " + " su.image_url AS imageUrl, " + " e.create_at as createAt, "
+        + " e.event_des, " + " e.event_clazz, " + " e.danger_level, " + " e.urgent, " + " e.major,e.process_desc, "
+        + " e.happen_address, " + " e.happent_lat_lng, " + " e.event_type, " + " e.event_category, " + " e.id, "
+        + " egd.grid_name, " + " e.event_deal_status  " + "FROM " + " `event` AS e "
+        + " LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id "
+        + " LEFT JOIN sys_user AS su ON su.user_id = e.grid_member_id  " + "WHERE " + " e.id = #{eventId}")
+    EventNewStatisticsVO getEventScreenEventDetail(@Param("eventId") Long eventId);
+
+    @Select("select process_date,process_result,process_type,from_type,from_id,from_name,event_id from event_transfer_record where event_id = #{eventId}")
+    List<EventTransferRecordVO> getEventScreenEventTransList(@Param("eventId") Long eventId);
+
+    @Select("SELECT " + " cs.address AS streetName, " + " ca.`name` AS communityName, " + " egd.grid_name  " + "FROM "
+        + " `event` AS e " + " LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id "
+        + " LEFT JOIN com_act AS ca ON egd.grid_community_id = ca.community_id "
+        + " LEFT JOIN com_street AS cs ON cs.street_id = ca.street_id  " + "WHERE " + " e.id = #{eventId}")
+    EventTransferRecordDetailVO getEventScreenEventTransDetail(@Param("eventId") Long eventId);
+
+    @Select("select ca.`name` AS communityName,cs.address AS streetName from com_act as ca LEFT JOIN com_street AS cs ON cs.street_id = ca.street_id where ca.community_id = ${communityId}")
+    EventTransferRecordDetailVO getEventScreenEventTransDetailByCommunityId(@Param("communityId") Long communityId);
+
+    @Select("select count(id) from com_elders_auth_elderly WHERE community_id = ${communityId}")
+    Integer getStatisticsCount(@Param("communityId") Long communityId);
+
+    IPage<PopulationListVO> pagePopulationListApp(Page page,
+        @Param("populationListDTO") PagePopulationListDTO populationListDTO);
+
+    /**
+     * 根据人口id查询人口详情
+     * @param populationId  人口id
+     * @return  人口详情
+     */
+    PopulationDetailVO getPopulationDetailApp(@Param("populationId") Long populationId);
+
+    /**
+     * 根据人口id查询人口在各个社区的标签列表
+     * @param populationId  人口id
+     * @return  人口在各个社区的标签列表
+     */
+    List<ComMngPopulationCommunityTagsVo> getCommunityTagList(@Param("populationId") Long populationId);
+
+    /**
+     * 综治后台-分页查询居民列表
+     * @param page  分页参数
+     * @param populationListDTO 请求参数
+     * @return  居民列表
+     */
+    IPage<ComMngPopulationListVO> getGridPopulationAdminList(Page page,
+        @Param("populationListDTO") ComMngPopulationListDTO populationListDTO);
+
+    @Select("select relation from com_mng_population_house_user where house_id = #{houseId} and popul_id = #{populationId}")
+    Integer getPopulationRelationByHouseId(@Param("houseId") Long houseId, @Param("populationId") Long populationId);
+
+    @Select("<script>" + " select count(id) from event_visiting_tasks as evt where visiter_id in "
+        + "<foreach collection='ids' item='id' index='index' open='(' close=')' separator=',' >" + "#{id}"
+        + "</foreach>" + " </script>")
+    Integer getPopulationVisitingCount(@Param("ids") List<Long> ids);
+
+    /**
+     * 综治后台删除居民,并清理人口与社区绑定关系
+     * @param ids   需要删除的人口id集合
+     */
+    void deletePopulaitonRelation(@Param("ids") List<Long> ids);
+
+    @Select("<script> " + "SELECT " + "   cmp.id, " + "   cmp.`name`, " + "   cmp.card_no as idCard, "
+        + "   cmpct.label, " + "   cmp.sex, " + "   IFNULL( cmp.phone, '暂无' ) as phone, " + "   cmp.address, "
+        + "   cmp.political_outlook " + "  FROM "
+        + "   com_mng_population AS cmp left join com_mng_population_community_tags as cmpct on cmp.id = cmpct.population_id where 1=1 "
+        + "<if test='populationDTO.keyWord != null'>"
+        + " AND (cmp.name like concat(#{populationDTO.keyWord},'%') or cmp.card_no_str like concat(#{populationDTO.keyWord},'%')) "
+        + " </if> " + "<if test='populationDTO.populationIds != null and populationDTO.populationIds.size > 0'>"
+        + " AND cmp.id not in "
+        + "<foreach collection='populationDTO.populationIds' item='id' index='index' open='(' close=')' separator=',' >"
+        + "#{id}" + "</foreach>" + " </if> " + " </script>")
+    IPage<EventSpecialPopulationVO> getBuildingHousePopulationList(Page page,
+        @Param("populationDTO") PageComMngPopulationDTO populationDTO);
+
+    @Select("<script> " + "SELECT " + " count( id ) AS localNum, "
+        + " ( SELECT count( cmp.id ) FROM com_mng_population as cmp WHERE cmp.out_or_local = 2 "
+        +  " ) AS flowNum, "
+        + " ( SELECT count( cmpct.id ) FROM com_mng_population as cmp left join com_mng_population_community_tags AS cmpct on cmp.id = cmpct.population_id WHERE cmpct.label IS NOT NULL "
+        + " ) AS specialNum  " + "FROM "
+        + " com_mng_population as cmp  "
+        + "WHERE " + " cmp.out_or_local = 1 " + " </script>")
+    PopulationStatisticsVO getGridPopulationStatistics(@Param("communityId") Long communityId);
+
+    @Select("<script> " + " SELECT " + " cmp.id, " + "  cmp.`name` AS userName, "
+        + "  cmpct.label, " + "  cmp.card_no, " + "  cmp.card_no_str, " + "  cmp.sex, " + "  cmp.address, "
+        + "  cmp.political_outlook, " + "  cmp.census_register, " + "  cmp.house_id, " + "  cmp.phone, "
+        + "  IFNULL(cmp.house_id,0) as isHouse, "
+        + "  ( SELECT event_status FROM event_visiting_tasks WHERE event_status in (1,2,3,5) AND visiter_id = cmp.id ORDER BY create_at DESC LIMIT 1 ) AS eventStatus, "
+        + "  ( SELECT create_at FROM event_visiting_tasks WHERE event_status in (1,2,3,5) AND visiter_id = cmp.id ORDER BY create_at DESC LIMIT 1 ) AS createAt "
+        + " FROM "
+        + " com_mng_population AS cmp left join com_mng_population_community_tags AS cmpct on cmp.id = cmpct.population_id where 1=1 "
+        + "<if test='populationExportDTO.keyWord != null and populationExportDTO.keyWord != &quot;&quot;'>"
+        + "AND (cmp.name like concat (#{populationExportDTO.keyWord},'%') or cmp.card_no_str like concat (#{populationExportDTO.keyWord},'%') or cmp.address like concat (#{populationExportDTO.keyWord},'%')) "
+        + " </if> " + "<if test='populationExportDTO.label != null and populationExportDTO.label != &quot;&quot;'>"
+        + "AND cmpct.label like concat ('%',#{populationExportDTO.label},'%') " + " </if> "
+        + "<if test='populationExportDTO.sex != null'>" + "AND cmp.sex = #{populationExportDTO.sex} " + " </if> "
+        + "<if test='populationExportDTO.isHouse != null and populationExportDTO.isHouse == 1'>"
+        + "AND cmp.house_id is not null " + " </if> "
+        + "<if test='populationExportDTO.populationIds != null and populationExportDTO.populationIds.size > 0'>"
+        + "AND cmp.id in  "
+        + "<foreach item='item' collection='populationExportDTO.populationIds' separator=',' open='(' close=')' index=''>"
+        + "#{item}" + "</foreach>" + " </if> "
+        + "<if test='populationExportDTO.isHouse != null and populationExportDTO.isHouse == 2'>"
+        + "AND cmp.house_id is null " + " </if> " + "<if test='populationExportDTO.communityId != null'>"
+        + "AND cmpct.community_id = ${populationExportDTO.communityId} " + " </if> "
+        + "<if test='populationExportDTO.politicalOutlook != null'>"
+        + "AND cmp.political_outlook = #{populationExportDTO.politicalOutlook} " + " </if> " + " </script>")
+    List<ComMngPopulationListVO>
+        getGridPopulationAdminLists(@Param("populationExportDTO") ComMngPopulationExportDTO populationExportDTO);
+
+    @Select("<script> "
+        + " select cmp.id,cmp.`name`,cmp.card_no,cmpct.label from com_mng_population as cmp left join com_mng_population_community_tags AS cmpct on cmp.id = cmpct.population_id where 1=1 "
+        + "<if test='villagePopulationDTO.villageId != null'>"
+        + " and cmp.village_id = #{villagePopulationDTO.villageId} " + " </if> "
+        + "<if test='villagePopulationDTO.keyWord != null'>"
+        + " AND (cmp.name like concat (#{villagePopulationDTO.keyWord},'%') or cmp.card_no_str like concat (#{villagePopulationDTO.keyWord},'%'))  "
+        + " </if> " + "<if test='villagePopulationDTO.label != null and villagePopulationDTO.label != &quot;&quot;'>"
+        + " AND cmpct.label like concat ('%',#{villagePopulationDTO.label},'%')  " + " </if> " + " </script>")
+    IPage<ComMngVillagePopulationListVO> getVillagePopulationAdmin(Page page,
+        @Param("villagePopulationDTO") PageComMngVillagePopulationDTO villagePopulationDTO);
+
+    @Insert("<script> "
+        + "insert into com_mng_population(`id`,`street_id`,`act_id`,`village_id`,`name`,`sex`,`certificate_type`,`card_no`"
+        + ",`card_no_expiration_date`,`card_no_str`,`road`,`door_no`,`floor`,`unit_no`,`house_no`,`political_outlook`"
+        + ",`work_company`,`special_situation`,`phone`,`out_or_local`,`census_register`,`person_type`,`country`"
+        + ",`date_of_departure`,`native_place`,`nation_code`,`nation`,`is_rent`,`culture_level`,`marriage`,`healthy`"
+        + ",`blood_type`,`religion`,`profession`,`person_status`,`death`,`head_portrait`,`monthly_income`,`family_status`"
+        + ",`birthday`,`goal_in_china`,`date_of_arrival`,`label`,`card_photo_front`,`card_photo_back`,`family_book`"
+        + ",`delete_flag`,`remark`,`create_at`,`update_at`,`residence`,`address`,`house_id`) values "
+        + "<foreach collection=\"populationList\" item=\"item\" index=\"index\" separator=\",\">\n"
+        + "        (#{item.id},#{item.streetId},#{item.actId},#{item.villageId}"
+        + ",#{item.name},#{item.sex},#{item.certificateType},#{item.cardNo}"
+        + ",#{item.cardNoExpirationDate},#{item.cardNoStr},#{item.road},#{item.doorNo}"
+        + ",#{item.floor},#{item.unitNo},#{item.houseNo},#{item.politicalOutlook}"
+        + ",#{item.workCompany},#{item.specialSituation},#{item.phone},#{item.outOrLocal}"
+        + ",#{item.censusRegister},#{item.personType},#{item.country},#{item.dateOfDeparture}"
+        + ",#{item.nativePlace},#{item.nationCode},#{item.nation},#{item.isRent},#{item.cultureLevel}"
+        + ",#{item.marriage},#{item.healthy},#{item.bloodType},#{item.religion},#{item.profession}"
+        + ",#{item.personStatus},#{item.death},#{item.headPortrait},#{item.monthlyIncome},#{item.familyStatus}"
+        + ",#{item.birthday},#{item.goalInChina},#{item.dateOfArrival},#{item.label},#{item.cardPhotoFront}"
+        + ",#{item.cardPhotoBack},#{item.familyBook},#{item.deleteFlag},#{item.remark},now(),#{item.updateAt}"
+        + ",#{item.residence},#{item.address},#{item.houseId})" + "    </foreach>" + " </script>")
+    void insertAll(@Param("populationList") List<ComMngPopulationDO> populationList);
+
+    void updateAll(@Param("populationList") List<ComMngPopulationDO> populationList);
+
+    /**
+     * 房屋二级联动
+     * @param communityId
+     * @return
+     */
+    List<VillageVO> getSecondHouseAddress(Long communityId);
+
+    /**
+     * 房屋二级联动后台
+     * @param communityId
+     * @return
+     */
+    List<VillageVO> getSecondHouse(Long communityId);
+
+    /**
+     * 四长四员分页查询
+     * @param page
+     * @param commonPage
+     * @return
+     */
+    IPage<ComMngPopulationNoSecretVO> query(Page page, @Param("commonPage") CommonPage commonPage);
+
+    /**
+     * 居民详情
+     */
+    ComMngPopulationDetailVO getById(Long id);
+
+    /**
+     * 修改实有人口绑定单元号
+     * @param villageId 小区id
+     * @param floor 楼栋号
+     * @param oldUnitNo 原单元号
+     * @param newUnitNo 新单元号
+     */
+    void updatePopulationUnit(@Param("villageId") Long villageId, @Param("floor") String floor,@Param("oldUnitNo") String oldUnitNo,@Param("newUnitNo") String newUnitNo);
+
+    /**
+     * 根据villageId查询特殊人群数
+     * @param villageId
+     * @param label
+     * @return
+     */
+    Integer selectCountByVillageId(@Param("villageId") Long villageId,@Param("label")String label);
+
+    CivilPartyStatisticsVO getCivilParty(@Param("communityId") Long communityId);
+
+    CivilGovernmentStatisticsVO getCivilGovernment(@Param("communityId") Long communityId);
+
+    CivilGridStatisticsVO getCivilGrid(@Param("communityId") Long communityId);
+
+    CivilConvenienceStatisticsVO getCivilConvenience(@Param("communityId") Long communityId);
+
+    /**
+     * 西区治理数据统计
+     * @return
+     */
+    WestScreenStatics westScreenStatics();
+
+    List<EventPopulationBasicsStatisticsVO> getBasicsList(@Param("streetId") Long streetId);
+
+    EventPopulationSpecialStatisticsVO getPopulationSpecial(@Param("streetId") Long streetId);
+
+    List<String> getPopulationListCardNo(@Param("streetId") Long streetId);
+
+    Integer getPopulationAge(@Param("streetId") Long streetId, @Param("age") Integer age);
+
+    List<EventPopulationStreetVO> getComprehensiveStreetList();
+
+    /**
+     * 基础数据统计
+     * @param communityId
+     * @return
+     */
+    BaseInfo baseInfo(Long communityId);
+
+    /**
+     * 业务数据统计
+     * @param communityId
+     * @return
+     */
+    IndexDynamic indexDynamic(Long communityId);
+
+    /**
+     * 大屏30天內事件数据
+     * @param communityId
+     * @return
+     */
+    List<EventGridIncidentStatisticsVO> getGridsGovernanceEventList(@Param("communityId") Long communityId);
+
+    /**
+     * 分页查询事件数据
+     * @param page
+     * @param pageBaseDTO
+     * @return
+     */
+    IPage<EventGridIncidentStatisticsVO> pageEventList(@Param("page") Page page, @Param("pageBaseDTO") PageBaseDTO pageBaseDTO);
+
+    /**
+     * 大屏事件详情新处理方式
+     * @param eventId
+     * @return
+     */
+    EventNewStatisticsVO getEventScreenSSPDateilNew(@Param("eventId") Long eventId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationHouseDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationHouseDAO.java
new file mode 100644
index 0000000..9a2ba58
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationHouseDAO.java
@@ -0,0 +1,207 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Insert;
+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;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.community.ComMngPopulationHouseAdminDTO;
+import com.panzhihua.common.model.dtos.grid.PageComMngVillageBuildHouseAppDTO;
+import com.panzhihua.common.model.vos.community.*;
+import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingHouseDetailVO;
+import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingHouseVO;
+import com.panzhihua.common.model.vos.grid.PopulationListVO;
+import com.panzhihua.common.model.vos.grid.admin.ComMngSubordinateVO;
+import com.panzhihua.common.model.vos.user.ComMngHouseVo;
+import com.panzhihua.service_community.model.dos.ComMngPopulationHouseDO;
+
+/**
+ * @auther lyq
+ * @create 2021-05-18 09:26:31
+ * @describe 社区管理》小区管理》实有房屋mapper类
+ */
+@Mapper
+public interface ComMngPopulationHouseDAO extends BaseMapper<ComMngPopulationHouseDO> {
+
+    @Select("select cmphu.id, cmphu.house_id,cmph.address,cmph.status,cmph.purpose,cmph.control_status,cmphu.popul_id,cmphu.residence,cmphu.relation_id,cmphu.relation from com_mng_population_house_user cmphu "
+        + " left join com_mng_population_house as cmph on cmph.id = cmphu.house_id "
+        + " where cmphu.popul_id = #{populId}")
+    List<ComMngHouseVo> getPopulHouseListByPopulId(@Param("populId") Long populId);
+
+    @Select("<script> "
+        + "select id as houseId,cmv.alley from com_mng_population_house as cmph left join com_mng_village as cmv on cmv.village_id = cmph.village_id where cmph.community_id = ${communityId}"
+        + "<if test='villageId != null and villageId != &quot;&quot;'>" + "and cmv.village_id = #{villageId}"
+        + " </if> " + " </script>")
+    List<ComMngCascadeHouseVO> getHouseLevelByAlley(@Param(value = "communityId") Long communityId,
+        @Param(value = "villageId") Long villageId);
+
+    @Select("<script> "
+        + "select id as houseId,cmv.alley,cmv.house_num,cmv.name from com_mng_population_house as cmph left join com_mng_village as cmv on cmv.village_id = cmph.village_id where cmph.community_id = ${communityId}"
+        + "<if test='name != null and name != &quot;&quot;'>" + "and cmv.alley = #{name}" + " </if> "
+        + "<if test='villageId != null'>" + "and cmv.village_id = #{villageId}" + " </if> " + " </script>")
+    List<ComMngCascadeHouseVO> getHouseLevelByHouseNum(@Param("name") String name,
+        @Param("communityId") Long communityId, @Param(value = "villageId") Long villageId);
+
+    @Select("<script> "
+        + "select id as houseId,cmv.alley,cmv.house_num,cmph.floor from com_mng_population_house as cmph left join com_mng_village as cmv on cmv.village_id = cmph.village_id where cmph.community_id = ${communityId} "
+        + "<if test='name != null and name != &quot;&quot;'>" + "and cmv.alley = #{name}" + " </if> "
+        + "<if test='houseNum != null and houseNum != &quot;&quot;'>" + "and cmv.house_num = #{houseNum}" + " </if> "
+        + "<if test='villageId != null'>" + "and cmv.village_id = #{villageId}" + " </if> " + " </script>")
+    List<ComMngCascadeHouseVO> getHouseLevelByFloor(@Param("name") String name, @Param("houseNum") String houseNum,
+        @Param("communityId") Long communityId, @Param(value = "villageId") Long villageId);
+
+    @Select("<script> "
+        + "select id as houseId,cmv.alley,cmv.house_num,cmph.floor,cmph.unit_no from com_mng_population_house as cmph left join com_mng_village as cmv on cmv.village_id = cmph.village_id where cmph.community_id = ${communityId} "
+        + "<if test='name != null and name != &quot;&quot;'>" + "and cmv.alley = #{name}" + " </if> "
+        + "<if test='houseNum != null and houseNum != &quot;&quot;'>" + "and cmv.house_num = #{houseNum}" + " </if> "
+        + "<if test='floor != null and floor != &quot;&quot;'>" + "and cmph.floor = #{floor}" + " </if> "
+        + "<if test='villageId != null'>" + "and cmv.village_id = #{villageId}" + " </if> " + " </script>")
+    List<ComMngCascadeHouseVO> getHouseLevelByUnitNo(@Param("name") String name, @Param("houseNum") String houseNum,
+        @Param("floor") String floor, @Param("communityId") Long communityId,
+        @Param(value = "villageId") Long villageId);
+
+    @Select("<script> "
+        + "select cmph.id as houseId,cmv.alley,cmv.house_num,cmph.floor,cmph.unit_no,cmph.house_no from com_mng_population_house as cmph left join com_mng_village as cmv on cmv.village_id = cmph.village_id where cmph.community_id = ${communityId} "
+        + "<if test='name != null and name != &quot;&quot;'>" + "and cmv.alley = #{name}" + " </if> "
+        + "<if test='houseNum != null and houseNum != &quot;&quot;'>" + "and cmv.house_num = #{houseNum}" + " </if> "
+        + "<if test='floor != null and floor != &quot;&quot;'>" + "and cmph.floor = #{floor}" + " </if> "
+        + "<if test='unitNo != null and unitNo != &quot;&quot;'>" + "and cmph.unit_no = #{unitNo}" + " </if> "
+        + "<if test='villageId != null'>" + "and cmv.village_id = #{villageId}" + " </if> " + " </script>")
+    List<ComMngCascadeHouseVO> getHouseLevelByHouseNo(@Param("name") String name, @Param("houseNum") String houseNum,
+        @Param("floor") String floor, @Param("unitNo") String unitNo, @Param("communityId") Long communityId,
+        @Param(value = "villageId") Long villageId);
+
+    @Select("update com_mng_population_house set is_empty = #{isEmpty} where id = #{houseId}")
+    void updateHouseByIsEmpty(@Param("houseId") Long houseId, @Param("isEmpty") Integer isEmpty);
+
+    @Select("<script> "
+        + "select cmph.id,cmv.alley,cmv.house_num,cmv.group_at,cmph.address,cmph.status,cmph.purpose,cmph.control_status"
+        + ",cmph.update_at,cmph.is_empty from com_mng_population_house as cmph"
+        + " left join com_mng_village as cmv on cmv.village_id = cmph.village_id" + "<where>"
+        + "<if test='populationHouseAdminDTO.communityId != null'>"
+        + " and cmph.community_id = ${populationHouseAdminDTO.communityId} " + " </if> "
+        + "<if test='populationHouseAdminDTO.alley != null and populationHouseAdminDTO.alley != &quot;&quot;'>" +
+        // "AND cmv.alley like #{populationHouseAdminDTO.alley} " +
+        "AND cmv.alley like concat('%',#{populationHouseAdminDTO.alley},'%') " + " </if> "
+        + "<if test='populationHouseAdminDTO.houseNum != null and populationHouseAdminDTO.houseNum != &quot;&quot;'>"
+        + "AND cmv.house_num = #{populationHouseAdminDTO.houseNum} " + " </if> "
+        + "<if test='populationHouseAdminDTO.groupAt != null and populationHouseAdminDTO.groupAt != &quot;&quot;'>"
+        + "AND cmv.group_at = #{populationHouseAdminDTO.groupAt} " + " </if> "
+        + "<if test='populationHouseAdminDTO.status != null'>" + "AND cmph.status = #{populationHouseAdminDTO.status} "
+        + " </if> " + "<if test='populationHouseAdminDTO.purpose != null'>"
+        + "AND cmph.purpose = #{populationHouseAdminDTO.purpose} " + " </if> "
+        + "<if test='populationHouseAdminDTO.controlStatus != null'>"
+        + "AND cmph.control_status = #{populationHouseAdminDTO.controlStatus} " + " </if> "
+        + "<if test='populationHouseAdminDTO.startTime != null and populationHouseAdminDTO.startTime != &quot;&quot; '>"
+        + " AND cmph.update_at <![CDATA[>=]]> #{populationHouseAdminDTO.startTime}  " + "</if>"
+        + "<if test='populationHouseAdminDTO.endTime != null and populationHouseAdminDTO.startTime != &quot;&quot; '>"
+        + " AND cmph.update_at <![CDATA[<=]]> #{populationHouseAdminDTO.endTime}  " + " </if> " +
+
+        "<if test='populationHouseAdminDTO.road != null and populationHouseAdminDTO.road != &quot;&quot; '>"
+        + " AND cmv.alley = #{populationHouseAdminDTO.road}  " + " </if> "
+        + "<if test='populationHouseAdminDTO.doorNo != null and populationHouseAdminDTO.doorNo != &quot;&quot; '>"
+        + " AND cmv.house_num = #{populationHouseAdminDTO.doorNo}  " + " </if> "
+        + "<if test='populationHouseAdminDTO.floor != null and populationHouseAdminDTO.floor != &quot;&quot; '>"
+        + " AND cmph.floor = #{populationHouseAdminDTO.floor}  " + " </if> "
+        + "<if test='populationHouseAdminDTO.unitNo != null and populationHouseAdminDTO.unitNo != &quot;&quot; '>"
+        + " AND cmph.unit_no = #{populationHouseAdminDTO.unitNo}  " + " </if> "
+        + "<if test='populationHouseAdminDTO.houseNo != null and populationHouseAdminDTO.houseNo != &quot;&quot; '>"
+        + " AND cmph.house_no = #{populationHouseAdminDTO.houseNo}  " + " </if> "
+        + "<if test='populationHouseAdminDTO.villageId != null'>"
+        + " and cmph.village_id = #{populationHouseAdminDTO.villageId} " + " </if> "
+        + "<if test='populationHouseAdminDTO.address != null and populationHouseAdminDTO.address != &quot;&quot; '>"
+        + " AND cmph.address = #{populationHouseAdminDTO.address}  " + " </if> " + " </where>"
+        + " order by update_at desc" + " </script>")
+    IPage<ComMngPopulationHouseAdminVO> getPageHouse(Page page,
+        @Param("populationHouseAdminDTO") ComMngPopulationHouseAdminDTO populationHouseAdminDTO);
+
+    @Select("select id,address,status,purpose,control_status,update_at,code,construct_purpose,construct_area from com_mng_population_house where id = #{houseId}")
+    ComMngPopulationHouseDetailAdminVO getHouseDetail(@Param("houseId") Long houseId);
+
+    @Select("select count(id) as houseTotal"
+        + ",(select count(id) from com_mng_population_house where is_empty = 1 and community_id = ${communityId}) as emptyTotal"
+        + ",(select count(id) from com_mng_population_house where control_status = 2 and community_id = ${communityId}) as followTotal"
+        + ",(select count(id) from com_mng_population_house where control_status = 3 and community_id = ${communityId}) as controlTotal"
+        + " from com_mng_population_house as cmph where community_id = ${communityId}")
+    ComMngPopulationHouseTotalVO getHouseTotalByAdmin(@Param("communityId") Long communityId);
+
+    @Select("select (select province_name from com_mng_struct_area_province where province_adcode = ca.province_code) as provinceName,"
+        + "(select city_name from com_mng_struct_area_city where city_adcode = ca.city_code) as cityName,"
+        + "(select district_name from com_mng_struct_area_district where district_adcode = ca.area_code) as districtName"
+        + ",ca.province_code as provinceAdcode,ca.city_code as cityAdcode,ca.area_code as districtAdcode"
+        + " from com_act as ca where ca.community_id = ${communityId}")
+    ComMngVillageRegionVO getRegion(@Param("communityId") Long communityId);
+
+    @Select("<script> "
+        + "SELECT id, floor, unit_no, house_no, `status`,( SELECT count( id ) FROM com_mng_population_house_user WHERE house_id = cmph.id ) AS userNum "
+        + " FROM " + " com_mng_population_house AS cmph " + " <where> "
+        + "<if test='buildHouseAppDTO.villageId != null '>" + " and cmph.village_id = #{buildHouseAppDTO.villageId}  "
+        + " </if> " + "<if test='buildHouseAppDTO.floor != null and buildHouseAppDTO.floor !=&quot;&quot; '>"
+        + " and cmph.floor = #{buildHouseAppDTO.floor}  " + " </if> "
+        + "<if test='buildHouseAppDTO.unitNo != null and buildHouseAppDTO.unitNo !=&quot;&quot; '>"
+        + " and cmph.unit_no = #{buildHouseAppDTO.unitNo}  " + " </if> "
+        + "<if test='buildHouseAppDTO.houseNo != null and buildHouseAppDTO.houseNo !=&quot;&quot; '>"
+        + " and cmph.house_no like concat(#{buildHouseAppDTO.houseNo},'%')  " + " </if> " + " </where>" + " </script>")
+    IPage<ComMngVillageBuildingHouseVO> getGridVillageBuildingHouseList(Page page,
+        @Param("buildHouseAppDTO") PageComMngVillageBuildHouseAppDTO buildHouseAppDTO);
+
+    @Select("SELECT " + " cmph.id, " + " cmv.`name` AS villageName, " + " cmph.floor, " + " cmph.unit_no, "
+        + " cmph.house_no, " + " cmph.address, " + " cmph.`status`, " + " cmv.lat, " + " cmv.lng  " + "FROM "
+        + " com_mng_population_house AS cmph "
+        + " LEFT JOIN com_mng_village AS cmv ON cmv.village_id = cmph.village_id  " + "WHERE "
+        + " cmph.id = #{houseId}")
+    ComMngVillageBuildingHouseDetailVO getGridVillageBuildingHouseDetail(@Param("houseId") Long houseId);
+
+    @Select("<script> " + "SELECT " + " cmp.id, " + " cmphu.id as housePopulationId, " + " cmp.sex, " + " cmp.`name`, "
+        + " IFNULL( cmp.phone, '暂无' ) as phone, " + " cmp.card_no, " + " cmpct.label, " + " cmp.address, "
+        + " cmp.nation, " + " cmphu.create_at, " + " cmp.political_outlook  " + "FROM "
+        + " com_mng_population_house_user AS cmphu "
+        + " LEFT JOIN com_mng_population AS cmp ON cmp.id = cmphu.popul_id  "
+        + " left join com_mng_population_community_tags AS cmpct on cmp.id = cmpct.population_id " + "WHERE "
+        + " cmphu.house_id = #{houseId} " + "<if test='relation != null '>" + " AND cmphu.relation = #{relation}  "
+        + " </if> " + "<if test='relationId != null '>" + " AND cmphu.relation_id = #{relationId}  " + "</if> group by id "
+        + " </script>")
+    List<PopulationListVO> getGridVillageBuildingPopulationList(@Param("houseId") Long houseId,
+        @Param("relation") Integer relation, @Param("relationId") Integer relationId);
+
+    @Select("select id as houseId,floor from com_mng_population_house where village_id = #{villageId} and floor is not null group by floor order by create_at asc")
+    List<ComMngSubordinateVO> getHouseLevelByFloors(@Param("villageId") Long villageId);
+
+    @Select("select id as houseId,unit_no from com_mng_population_house where village_id = #{villageId} and floor = #{floor} and unit_no is not null group by unit_no order by create_at asc")
+    List<ComMngSubordinateVO> getHouseLevelByUnitNos(@Param("villageId") Long villageId, @Param("floor") String floor);
+
+    @Select("select id as houseId,house_no from com_mng_population_house where village_id = #{villageId} and floor = #{floor} and unit_no = #{unitNo} and house_no is not null group by house_no order by create_at asc")
+    List<ComMngSubordinateVO> getHouseLevelByHouseNos(@Param("villageId") Long villageId, @Param("floor") String floor,
+        @Param("unitNo") String unitNo);
+
+    @Insert("<script> " + "insert into com_mng_population_house(`id`,`street_id`,`community_id`,`village_id`"
+        + ",`alley`,`house_num`,`unit_no`,`floor`,`house_no`,`code`,`address`,`status`"
+        + ",`purpose`,`control_status`,`is_empty`,`construct_purpose`,`construct_area`" + ",`path`,`create_at`) values "
+        + "<foreach collection=\"houseList\" item=\"item\" index=\"index\" separator=\",\">\n"
+        + "        (#{item.id},#{item.streetId},#{item.communityId},#{item.villageId}"
+        + ",#{item.alley},#{item.houseNum},#{item.unitNo},#{item.floor}"
+        + ",#{item.houseNo},#{item.code},#{item.address},#{item.status}"
+        + ",#{item.purpose},#{item.controlStatus},#{item.isEmpty},#{item.constructPurpose}"
+        + ",#{item.constructArea},#{item.path},now())" + "    </foreach>" + " </script>")
+    void insertAll(@Param("houseList") List<ComMngPopulationHouseDO> houseList);
+
+    /**
+     * 修改房屋关联单元号
+     * @param villageId 小区id
+     * @param floor 楼栋号
+     * @param oldUnitNo 原单元号
+     * @param newUnitNo 新单元号
+     */
+    void updateHouseUnit(@Param("villageId") Long villageId, @Param("floor") String floor,@Param("oldUnitNo") String oldUnitNo,@Param("newUnitNo") String newUnitNo);
+
+    /**
+     * 修改房屋关联单元号
+     * @param houseList    需要修改的数据
+     */
+    void updateUnitAll(@Param("houseList") List<ComMngPopulationHouseDO> houseList);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationHouseUserDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationHouseUserDAO.java
new file mode 100644
index 0000000..33bf9fe
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngPopulationHouseUserDAO.java
@@ -0,0 +1,83 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.user.ComMngHouseVo;
+import org.apache.ibatis.annotations.Insert;
+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;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.grid.admin.PageComMngVillagePopulationHouseDTO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationHouseUserAdminVO;
+import com.panzhihua.common.model.vos.grid.admin.ComMngVillagePopulationHouseListVO;
+import com.panzhihua.service_community.model.dos.ComMngPopulationHouseUserDO;
+
+/**
+ * @auther lyq
+ * @create 2021-05-18 09:26:53
+ * @describe 房屋居住信息关联表mapper类
+ */
+@Mapper
+public interface ComMngPopulationHouseUserDAO extends BaseMapper<ComMngPopulationHouseUserDO> {
+
+    @Select("delete from com_mng_population_house_user where popul_id = #{populationId}")
+    void deletePopulationHouseByUserId(@Param("populationId") Long populationId);
+
+    @Select("select house_id from com_mng_population_house_user where popul_id = #{populationId}")
+    List<Long> getPopulationHouseIdByUserId(@Param("populationId") Long populationId);
+
+    @Select("select relation from com_mng_population_house_user where popul_id = #{populationId}")
+    List<Integer> getPopulationRelationByUserId(@Param("populationId") Long populationId);
+
+    @Select("select popul_id from com_mng_population_house_user where house_id = #{houseId}")
+    List<Long> getPopulationHouseIdByhHosueId(@Param("houseId") Long houseId);
+
+    @Select("select cmp.id,cmp.name,cmp.card_no,cmp.phone from com_mng_population_house_user as cmphu "
+        + "inner join com_mng_population as cmp on cmp.id = cmphu.popul_id where cmphu.house_id = #{houseId}")
+    List<ComMngPopulationHouseUserAdminVO> getHouseUserByHouseId(@Param("houseId") Long houseId);
+
+    @Select("update com_mng_population_house_user set relation = null where id = #{id}")
+    Integer delBuildingHousePopulationRelation(@Param("id") Long id);
+
+    @Select("update com_mng_population_house_user set relation_id = null where id = #{id}")
+    Integer delBuildingHousePopulationRelationId(@Param("id") Long id);
+
+    @Select("SELECT " + " cmv.`name` AS villageName, " + " cmph.id, " + " cmv.address, " + " cmph.floor,cmphu.relation, "
+        + " cmph.unit_no, " + " cmph.house_no  " + "FROM " + " com_mng_population_house_user AS cmphu "
+        + " LEFT JOIN com_mng_population_house AS cmph ON cmph.id = cmphu.house_id "
+        + " LEFT JOIN com_mng_village AS cmv ON cmv.village_id = cmph.village_id  " + "WHERE "
+        + " cmphu.popul_id = #{villagePopulationDTO.populationId}")
+    IPage<ComMngVillagePopulationHouseListVO> getVillagePopulationHouseAdmin(Page page,
+        @Param("villagePopulationDTO") PageComMngVillagePopulationHouseDTO villagePopulationDTO);
+
+    @Insert("<script> "
+        + "insert into com_mng_population_house_user(`id`,`popul_id`,`house_id`,`relation_id`,`relation`"
+        + ",`residence`,`start_at`,`end_at`,`create_at`) values "
+        + "<foreach collection=\"houseUserList\" item=\"item\" index=\"index\" separator=\",\">\n"
+        + "        (#{item.id},#{item.populId},#{item.houseId},#{item.relationId}"
+        + ",#{item.relation},#{item.residence},#{item.startAt},#{item.endAt}" + ",now())" + "    </foreach>"
+        + " </script>")
+    void insertAll(@Param("houseUserList") List<ComMngPopulationHouseUserDO> houseUserList);
+
+    @Select("select cmphu.id, cmphu.house_id,cmph.address,cmph.status,cmph.purpose,cmph.control_status,cmphu.popul_id,cmphu.residence,cmphu.relation_id,cmphu.relation from com_mng_population_house_user cmphu "
+            + " left join com_mng_population_house as cmph on cmph.id = cmphu.house_id "
+            + " where cmphu.id = #{id}")
+    ComMngHouseVo detail(Long id);
+
+    /**
+     * 查询指定人员是否存在租住的数量
+     * @param ids   指定实有人口
+     * @return  存在租住的数量
+     */
+    Integer getHouseUserIsRent(@Param("ids") List<Long> ids);
+
+    /**
+     * 索引查询
+     * @return
+     */
+    List<ComMngPopulationHouseUserDO> selectListIndex(Long communityId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngProvinceDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngProvinceDAO.java
new file mode 100644
index 0000000..19957cf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngProvinceDAO.java
@@ -0,0 +1,16 @@
+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.ComMngProvinceDO;
+
+/**
+ * @description: 省份
+ * @author: Null
+ * @date: 2021/3/20 23:32
+ */
+@Mapper
+public interface ComMngProvinceDAO extends BaseMapper<ComMngProvinceDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngRealAssetsDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngRealAssetsDAO.java
new file mode 100644
index 0000000..7a0c4f6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngRealAssetsDAO.java
@@ -0,0 +1,54 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.community.ExportRealAssetsExcelDTO;
+import com.panzhihua.common.model.dtos.community.PageComMngRealAssetsDTO;
+import com.panzhihua.common.model.vos.community.ComMngRealAssetsExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngRealAssetsVO;
+import com.panzhihua.service_community.model.dos.ComMngRealAssetsDO;
+
+/**
+ * @description: 实有资产
+ * @author: Null
+ * @date: 2021/3/16 14:28
+ */
+@Mapper
+public interface ComMngRealAssetsDAO extends BaseMapper<ComMngRealAssetsDO> {
+
+    @Select("<script> " + "SELECT " + " t.id, " + " t.community_id AS communityId, " + " t.`name`, " + " t.category, "
+        + " t.build_type_id AS buildTypeId, " + " t2.`name` AS buildTypeName, " + " t.floor_type AS floorType, "
+        + " t.num, " + " t.square, " + " t.province_adcode AS provinceAdcode, " + " t.city_adcode AS cityAdcode, "
+        + " t.district_adcode AS districtAdcode, " + " t.address, " + " t.create_at AS createAt  " + "FROM "
+        + " com_mng_real_assets t " + " LEFT JOIN com_mng_struct_build_type t2 ON t.build_type_id = t2.id"
+        + " WHERE 1= 1 "
+        + "<if test='pageComMngRealAssetsDTO.name != null and pageComMngRealAssetsDTO.name.trim() != &quot;&quot;'>"
+        + " and t.name LIKE concat( #{pageComMngRealAssetsDTO.name}, '%' )  " + " </if> "
+        + "<if test='pageComMngRealAssetsDTO.communityId != null and pageComMngRealAssetsDTO.communityId != 0'>"
+        + " and t.community_id = ${pageComMngRealAssetsDTO.communityId} " + " </if> " + " order by t.create_at desc"
+        + "</script>")
+    IPage<ComMngRealAssetsVO> pageQueryComMngRealAssets(Page page,
+        @Param(value = "pageComMngRealAssetsDTO") PageComMngRealAssetsDTO pageComMngRealAssetsDTO);
+
+    @Select("<script> " + " SELECT " + " t.`name`, "
+        + " case t.category when 1 then '建筑类'  when 2 then '公共设施类' else '/' end category,  "
+        + " t2.`name` AS buildTypeName, "
+        + " case t.floor_type when 1 then '高层'  when 2 then '中层'  when 3 then '低层' else '/' end floorType,  "
+        + " t.num, " + " t.square, " + " t.address " + "FROM " + " com_mng_real_assets t "
+        + " LEFT JOIN com_mng_struct_build_type t2 ON t.build_type_id = t2.id"
+        + " WHERE 1= 1 "
+        + "<if test='exportRealAssetsExcelDTO.name != null and exportRealAssetsExcelDTO.name.trim() != &quot;&quot;'>"
+        + " and t.name LIKE concat( #{exportRealAssetsExcelDTO.name}, '%' )  " + " </if> "
+        + "<if test='exportRealAssetsExcelDTO.communityId != null and exportRealAssetsExcelDTO.communityId != 0'>"
+        + " and t.community_id = ${exportRealAssetsExcelDTO.communityId} " + " </if> " + " order by t.create_at desc"
+        + "</script>")
+    List<ComMngRealAssetsExcelVO> exportRealAssetsExcel(
+        @Param(value = "exportRealAssetsExcelDTO") ExportRealAssetsExcelDTO exportRealAssetsExcelDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngRealCompanyDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngRealCompanyDAO.java
new file mode 100644
index 0000000..9e6f785
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngRealCompanyDAO.java
@@ -0,0 +1,74 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.community.ComMngRealCompanyBelongsDTO;
+import com.panzhihua.common.model.dtos.community.ExportRealCompanyExcelDTO;
+import com.panzhihua.common.model.dtos.community.PageComMngRealCompanyDTO;
+import com.panzhihua.common.model.vos.community.ComMngRealCompanyBelongsVO;
+import com.panzhihua.common.model.vos.community.ComMngRealCompanyExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngRealCompanyTotalVO;
+import com.panzhihua.common.model.vos.community.ComMngRealCompanyVO;
+import com.panzhihua.service_community.model.dos.ComMngRealCompanyDO;
+
+/**
+ * @description: 实有单位
+ * @author: Null
+ * @date: 2021/3/16 14:28
+ */
+@Mapper
+public interface ComMngRealCompanyDAO extends BaseMapper<ComMngRealCompanyDO> {
+
+    @Select("<script> " + " SELECT  " + "  t.id,  " + "  t.com_name AS comName,  "
+        + "  t.legal_person AS legalPerson,  " + "  t.leader,  " + "  t.contacts_phone AS contactsPhone,  "
+        + "  t.scope,  " + "  t.credit_code AS creditCode,  " + "  t.province_adcode AS provinceAdcode,  "
+        + "  t.city_adcode AS cityAdcode,  " + "  t.district_adcode AS districtAdcode,  " + "  t.address,  "
+        + "  t.create_at AS createAt  " + "FROM  " + "  com_mng_real_company t  where 1=1"
+        + "<if test='pageComMngRealCompanyDTO.legalPerson != null and pageComMngRealCompanyDTO.legalPerson.trim() != &quot;&quot;'>"
+        + " and t.legal_person LIKE concat( #{pageComMngRealCompanyDTO.legalPerson}, '%' )  " + " </if> "
+        + "<if test='pageComMngRealCompanyDTO.comName != null and pageComMngRealCompanyDTO.comName.trim() != &quot;&quot;'>"
+        + " and t.com_name LIKE concat( '%',#{pageComMngRealCompanyDTO.comName}, '%' )  " + " </if> "
+        + "<if test='pageComMngRealCompanyDTO.communityId != null and pageComMngRealCompanyDTO.communityId != 0'>"
+        + " and t.community_id = ${pageComMngRealCompanyDTO.communityId} " + " </if> " + " order by t.create_at desc"
+        + "</script>")
+    IPage<ComMngRealCompanyVO> pageQueryComMngRealCompany(Page page,
+        @Param(value = "pageComMngRealCompanyDTO") PageComMngRealCompanyDTO pageComMngRealCompanyDTO);
+
+    @Select("<script> " + " SELECT  " + "  t.com_name AS comName,  " + "  t.legal_person AS legalPerson,  "
+        + "  t.leader,  " + "  t.contacts_phone AS contactsPhone,  " + "  t.scope,  "
+        + "  t.credit_code AS creditCode,  " + "  t.address " + "FROM  " + "  com_mng_real_company t where 1=1 "
+        + "<if test='exportRealCompanyExcelDTO.comName != null and exportRealCompanyExcelDTO.comName.trim() != &quot;&quot;'>"
+        + " and t.com_name LIKE concat( #{exportRealCompanyExcelDTO.comName}, '%' )  " + " </if> "
+        + "<if test='exportRealCompanyExcelDTO.communityId != null and exportRealCompanyExcelDTO.communityId != 0'>"
+        + " and t.community_id = ${exportRealCompanyExcelDTO.communityId} " + " </if> "
+        + "<if test='exportRealCompanyExcelDTO.legalPerson != null and exportRealCompanyExcelDTO.legalPerson.trim() != &quot;&quot;'>"
+        + " and t.legal_person LIKE concat( #{exportRealCompanyExcelDTO.legalPerson}, '%' )  " + " </if> "
+        + " order by t.create_at desc" + "</script>")
+    List<ComMngRealCompanyExcelVO> exportRealCompanyExcel(
+        @Param(value = "exportRealCompanyExcelDTO") ExportRealCompanyExcelDTO exportRealCompanyExcelDTO);
+
+    @Select("<script> " + " SELECT distinct   " + "  act.province_code AS provinceAdcode, "
+        + "  act.city_code AS cityAdcode, " + "  act.area_code AS districtAdcode, "
+        + "  pr.province_name AS provinceName, " + "  cty.city_name AS cityName, "
+        + "  dis.district_name AS districtName, " + "  street.name AS streetName, " + "  act.name AS communityName, "
+        + "  street.street_id AS streetId, " + "  act.community_id AS communityId, " + "  act.create_at AS creatAt "
+        + " FROM  " + "  com_act act " + "  LEFT JOIN com_street street ON act.street_id = street.street_id "
+        + "  LEFT join com_mng_struct_area_province pr on street.province_code = pr.province_adcode "
+        + "  LEFT join com_mng_struct_area_city cty on street.city_code = cty.city_adcode "
+        + "  LEFT join com_mng_struct_area_district dis on street.area_code = dis.district_adcode " + " WHERE  1=1  "
+        + "<if test='pageComMngRealCompanyBelongsDTO.actName != null and pageComMngRealCompanyBelongsDTO.actName.trim() != &quot;&quot;'>"
+        + " and  act.name = #{pageComMngRealCompanyBelongsDTO.actName}  " + " </if> " + " order by act.create_at desc "
+        + " limit 1 " + "</script>")
+    ComMngRealCompanyBelongsVO queryComMngRealCompanyBelongs(
+        @Param(value = "pageComMngRealCompanyBelongsDTO") ComMngRealCompanyBelongsDTO comMngRealCompanyBelongsDTO);
+
+    @Select("select count(id) as companyTotal from com_mng_real_company where community_id = ${communityId}")
+    ComMngRealCompanyTotalVO getComMngRealCompanyTotalByAdmin(@Param("communityId") Long communityId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngStructAreaDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngStructAreaDAO.java
new file mode 100644
index 0000000..b314461
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngStructAreaDAO.java
@@ -0,0 +1,47 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.community.ComMngStructAreaVO;
+import com.panzhihua.service_community.model.dos.ComMngStructAreaDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 小区
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-14 17:00
+ **/
+@Mapper
+public interface ComMngStructAreaDAO extends BaseMapper<ComMngStructAreaDO> {
+    // @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" + "id,\n" + "area_name,\n" + "area_code,\n" + "address_detail,\n" + "create_at \n"
+        + "FROM\n" + "com_mng_struct_area \n" + "WHERE 1=1  \n" + "<if test='comMngStructAreaVO.communityId != null '>"
+        + "AND community_id = ${comMngStructAreaVO.communityId} \n" + " </if> "
+        + "<if test='comMngStructAreaVO.areaName != null and comMngStructAreaVO.areaName.trim() != &quot;&quot;'>"
+        + "AND area_name like concat( '%',#{comMngStructAreaVO.areaName}, '%' )" + " </if> " + "</script>")
+    IPage<ComMngStructAreaVO> pageArea(Page page, @Param("comMngStructAreaVO") ComMngStructAreaVO comMngStructAreaVO);
+
+    @Select("SELECT\n" + "\ta.id,\n" + "\ta.role_floor,\n" + "\ta.area_name,\n" + "\ta.role_connector,\n"
+        + "\ta.role_door \n" + "FROM\n" + "\tcom_mng_struct_area a \n" + "WHERE\n"
+        + "\ta.area_name LIKE CONCAT( '%', #{areaName}, '%' ) \n" + "\tAND a.community_id = ${communityId}")
+    List<ComMngStructAreaVO> listAreas(@Param("areaName") String areaName, @Param("communityId") Long communityId);
+
+    @Select("select count(id) from com_mng_struct_house where parent_code=#{areaCode}")
+    Integer selectCountHouseByParentHouseCode(String areaCode);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngStructAreaDistrictDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngStructAreaDistrictDAO.java
new file mode 100644
index 0000000..7c91159
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngStructAreaDistrictDAO.java
@@ -0,0 +1,17 @@
+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.ComMngStructAreaDistrictDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 区县
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-27 15:00
+ **/
+@Mapper
+public interface ComMngStructAreaDistrictDAO extends BaseMapper<ComMngStructAreaDistrictDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngStructBuildTypeDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngStructBuildTypeDAO.java
new file mode 100644
index 0000000..f24f8ab
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngStructBuildTypeDAO.java
@@ -0,0 +1,17 @@
+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.ComMngStructBuildTypeDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 其他建筑
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-14 17:05
+ **/
+@Mapper
+public interface ComMngStructBuildTypeDAO extends BaseMapper<ComMngStructBuildTypeDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngStructHouseDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngStructHouseDAO.java
new file mode 100644
index 0000000..1301772
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngStructHouseDAO.java
@@ -0,0 +1,41 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Options;
+import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.mapping.StatementType;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.common.model.dtos.community.ExcelHouseDTO;
+import com.panzhihua.service_community.model.dos.ComMngStructHouseDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 房屋
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-14 17:09
+ **/
+@Mapper
+public interface ComMngStructHouseDAO extends BaseMapper<ComMngStructHouseDO> {
+    @Select("{call smart_life.removeByParentCode(#{areaCode,jdbcType=VARCHAR,mode=IN})}")
+    @Options(statementType = StatementType.CALLABLE)
+    int batchDeleteHouse(String areaCode);
+
+    @Select("<script> " + " SELECT REPLACE " + " ( h3.house_name, h4.house_name, '' ) build, "
+        + " REPLACE ( h2.house_name, h3.house_name, '' ) unit, "
+        + " REPLACE ( h1.house_name, h2.house_name, '' ) floor, "
+        + " REPLACE ( h.house_name, h1.house_name, '' ) room, " + " h.square, " + "CASE " + "  h.state  "
+        + "  WHEN 1 THEN " + "  '自住'  " + "  WHEN 2 THEN " + "  '租住'  " + "  WHEN 3 THEN " + "  '商用' ELSE '未知'  "
+        + " END AS state, " + " su.NAME username, " + " su.phone  " + "FROM " + " com_mng_struct_house h "
+        + " LEFT JOIN com_mng_struct_house h1 ON h.parent_code = h1.house_code "
+        + " LEFT JOIN com_mng_struct_house h2 ON h1.parent_code = h2.house_code "
+        + " LEFT JOIN com_mng_struct_house h3 ON h2.parent_code = h3.house_code "
+        + " LEFT JOIN com_mng_struct_house h4 ON h3.parent_code = h4.house_code "
+        + " LEFT JOIN com_mng_struct_house_user hu ON h.house_code = hu.house_code "
+        + " LEFT JOIN sys_user su ON hu.user_id = su.user_id  " + "WHERE "
+        + " h.house_code LIKE concat(#{houseCode},'%')  " + " AND h.type = 5" + " ORDER BY h.house_code ASC "
+        + "</script> ")
+    List<ExcelHouseDTO> houseExport(String houseCode);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngStructHouseUserDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngStructHouseUserDAO.java
new file mode 100644
index 0000000..30b13e4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngStructHouseUserDAO.java
@@ -0,0 +1,27 @@
+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.Select;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.service_community.model.dos.ComMngStructHouseUserDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 房屋人员关系
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-15 15:13
+ **/
+@Mapper
+public interface ComMngStructHouseUserDAO extends BaseMapper<ComMngStructHouseUserDO> {
+    @Select("select u.name,u.phone from com_mng_struct_house_user h  join sys_user u on h.user_id=u.user_id and h.house_code=#{houseCode1}")
+    List<LoginUserInfoVO> selectListHouseUser(String houseCode1);
+
+    @Select("SELECT\n" + "\tp.house_code ,\n" + "\tp.is_rent\n" + "FROM\n" + "\tsys_user_input p \n" + "WHERE\n"
+        + "\tp.id =#{userId}")
+    Map<String, Object> selectHouseCode(Long userId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngStructOtherBuildDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngStructOtherBuildDAO.java
new file mode 100644
index 0000000..7f005bd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngStructOtherBuildDAO.java
@@ -0,0 +1,48 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.community.ComMngStructOtherBuildVO;
+import com.panzhihua.service_community.model.dos.ComMngStructOtherBuildDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 其他建筑
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-14 17:21
+ **/
+@Mapper
+public interface ComMngStructOtherBuildDAO extends BaseMapper<ComMngStructOtherBuildDO> {
+
+    // @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" + "b.id,\n" + "b.`name`,\n" + "t.name buileTypeName,\n" + "b.square,\n"
+        + "b.address,\n" + "b.`state`,\n" + "b.layer_type,\n" + "b.create_at\n" + "FROM\n"
+        + "com_mng_struct_other_build b \n" + "join com_mng_struct_build_type t on b.type_id=t.id\n" + " <where>"
+        + "<if test='comMngStructOtherBuildVO.name != null and comMngStructOtherBuildVO.name.trim() != &quot;&quot;'>"
+        + " and b.name like concat(#{comMngStructOtherBuildVO.name},'%') " + " </if> "
+        + "<if test='comMngStructOtherBuildVO.communityId != null'>"
+        + " and b.community_id = ${comMngStructOtherBuildVO.communityId} " + " </if> " + " </where>"
+        + " order by b.create_at desc" + "</script>")
+    IPage<ComMngStructOtherBuildVO> pageOtherBuild(Page page,
+        @Param("comMngStructOtherBuildVO") ComMngStructOtherBuildVO comMngStructOtherBuildVO);
+
+    @Select("SELECT\n" + "b.type_id \n" + "FROM\n" + "com_mng_struct_other_build b\n" + "WHERE\n"
+        + "b.community_id = ${communityId}\n" + "GROUP BY\n" + "b.type_id")
+    List<Long> selectAllBuildTypeIds(Long communityId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngUserTagDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngUserTagDAO.java
new file mode 100644
index 0000000..4290955
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngUserTagDAO.java
@@ -0,0 +1,16 @@
+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.ComMngUserTagDO;
+
+/**
+ * @description: 特殊群体标签
+ * @author: txb
+ * @date: 2021/7/14 10:28
+ */
+@Mapper
+public interface ComMngUserTagDAO extends BaseMapper<ComMngUserTagDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngVaccinesDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngVaccinesDAO.java
new file mode 100644
index 0000000..6bdb0be
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngVaccinesDAO.java
@@ -0,0 +1,32 @@
+package com.panzhihua.service_community.dao;
+
+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;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.vaccines.VaccinesByAdminDTO;
+import com.panzhihua.common.model.vos.vaccines.VaccinesByAppVO;
+import com.panzhihua.service_community.model.dos.ComMngVaccinesDO;
+
+/**
+ * @auther lyq
+ * @create 2021-05-19 14:17:46
+ * @describe 疫苗分类表mapper类
+ */
+@Mapper
+public interface ComMngVaccinesDAO extends BaseMapper<ComMngVaccinesDO> {
+
+    @Select("<script> " + "select * from com_mng_vaccines" + " <where>"
+        + "<if test='vaccinesByAdminDTO.name != null and vaccinesByAdminDTO.name != &quot;&quot;'>"
+        + "`name` like concat('%',#{vaccinesByAdminDTO.name},'%') " + " </if> "
+        + "<if test='vaccinesByAdminDTO.areaCode != null and vaccinesByAdminDTO.areaCode != &quot;&quot;'>"
+        + "`area_code` = #{vaccinesByAdminDTO.areaCode} " + " </if> "
+        + " </where>"
+        + " order by create_at desc" + " </script>")
+    IPage<VaccinesByAppVO> getVaccinesByName(Page page,
+        @Param("vaccinesByAdminDTO") VaccinesByAdminDTO vaccinesByAdminDTO);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngVaccinesEnrollRecordDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngVaccinesEnrollRecordDAO.java
new file mode 100644
index 0000000..80911f2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngVaccinesEnrollRecordDAO.java
@@ -0,0 +1,79 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.vaccines.VaccinesEnrollByAdminDTO;
+import com.panzhihua.common.model.vos.vaccines.ComMngVaccinesEnrollExcelVo;
+import com.panzhihua.common.model.vos.vaccines.VaccinesEnrollByAdminVO;
+import com.panzhihua.common.model.vos.vaccines.VaccinesEnrollUserByAppVO;
+import com.panzhihua.service_community.model.dos.ComMngVaccinesEnrollRecordDO;
+
+/**
+ * @auther lyq
+ * @create 2021-05-19 14:17:53
+ * @describe 疫苗报名记录表mapper类
+ */
+@Mapper
+public interface ComMngVaccinesEnrollRecordDAO extends BaseMapper<ComMngVaccinesEnrollRecordDO> {
+
+    @Select("select cmfi.id as userId,cmfi.name,cmfi.age,cmfi.job,cmfi.phone,cmfi.id_card,cmfi.create_at from com_mng_family_info as cmfi where user_id = #{userId}")
+    List<VaccinesEnrollUserByAppVO> getFamilyUserList(@Param("userId") Long userId);
+
+    @Select("select su.user_id,su.name,su.nick_name,su.job,su.phone,su.id_card,su.birthday,su.sex,su.create_at from sys_user as su where user_id = #{userId}")
+    VaccinesEnrollUserByAppVO getSysUser(@Param("userId") Long userId);
+
+    @Select("select cmfi.name,cmfi.age,cmfi.phone,cmfi.id_card from com_mng_family_info as cmfi where id = #{userId}")
+    VaccinesEnrollUserByAppVO getFamilyUser(@Param("userId") Long userId);
+
+    @Select("<script> "
+        + "select cmver.id,cmver.name,cmver.sex,cmver.age,cmver.phone,cmver.id_card,cmver.create_at,cmv.name as vaccines from com_mng_vaccines_enroll_record as cmver "
+        + " left join com_mng_vaccines as cmv on cmv.id = cmver.type " + " <where>"
+        + "<if test='vaccinesByAdminDTO.communityId != null'>"
+        + " and cmver.community_id = ${vaccinesByAdminDTO.communityId} " + " </if> "
+        + "<if test='vaccinesByAdminDTO.vaccines != null and vaccinesByAdminDTO.vaccines != &quot;&quot;'>"
+        + " and cmv.name = #{vaccinesByAdminDTO.vaccines} " + " </if> "
+        + "<if test='vaccinesByAdminDTO.name != null and vaccinesByAdminDTO.name != &quot;&quot;'>"
+        + " and cmver.name like concat('%',#{vaccinesByAdminDTO.name},'%') " + " </if> "
+        + "<if test='vaccinesByAdminDTO.idCard != null and vaccinesByAdminDTO.idCard != &quot;&quot;'>"
+        + " and cmver.id_card = #{vaccinesByAdminDTO.idCard} " + " </if> "
+        + "<if test='vaccinesByAdminDTO.phone != null and vaccinesByAdminDTO.phone != &quot;&quot;'>"
+        + " and cmver.phone = #{vaccinesByAdminDTO.phone} " + " </if> "
+        + "<if test='vaccinesByAdminDTO.startTime != null and vaccinesByAdminDTO.startTime != &quot;&quot;  '>\n"
+        + " AND cmver.create_at <![CDATA[>=]]> #{vaccinesByAdminDTO.startTime}  \n" + "</if>"
+        + "<if test='vaccinesByAdminDTO.endTime != null and vaccinesByAdminDTO.endTime != &quot;&quot;  '>\n"
+        + " AND cmver.create_at <![CDATA[<=]]> #{vaccinesByAdminDTO.endTime}  " + " </if> \n" + " </where>"
+        + " order by cmver.create_at desc" + " </script>")
+    IPage<VaccinesEnrollByAdminVO> getVaccinesEnrollListByAdmin(Page page,
+        @Param("vaccinesByAdminDTO") VaccinesEnrollByAdminDTO vaccinesByAdminDTO);
+
+    @Select("<script> "
+        + "select cmver.name,cmver.sex,cmver.age,cmver.phone,cmver.id_card,cmver.create_at,cmv.name as vaccines from com_mng_vaccines_enroll_record as cmver "
+        + " left join com_mng_vaccines as cmv on cmv.id = cmver.type " + " <where>"
+        + "<if test='vaccinesByAdminDTO.communityId != null'>"
+        + " and cmver.community_id = ${vaccinesByAdminDTO.communityId} " + " </if> "
+        + "<if test='vaccinesByAdminDTO.ids != null and vaccinesByAdminDTO.ids.size > 0'>" + " and cmver.id in "
+        + "<foreach item=\"item\" collection=\"vaccinesByAdminDTO.ids\" separator=\",\" open=\"(\" close=\")\" index=\"\"> \n"
+        + "#{item}" + "</foreach>" + " </if> "
+        + "<if test='vaccinesByAdminDTO.vaccines != null and vaccinesByAdminDTO.vaccines != &quot;&quot;'>"
+        + " and cmv.name = #{vaccinesByAdminDTO.vaccines} " + " </if> "
+        + "<if test='vaccinesByAdminDTO.name != null and vaccinesByAdminDTO.name != &quot;&quot;'>"
+        + " and cmver.name like concat('%',#{vaccinesByAdminDTO.name},'%') " + " </if> "
+        + "<if test='vaccinesByAdminDTO.idCard != null and vaccinesByAdminDTO.idCard != &quot;&quot;'>"
+        + " and cmver.id_card = #{vaccinesByAdminDTO.idCard} " + " </if> "
+        + "<if test='vaccinesByAdminDTO.phone != null and vaccinesByAdminDTO.phone != &quot;&quot;'>"
+        + " and cmver.phone = #{vaccinesByAdminDTO.phone} " + " </if> "
+        + "<if test='vaccinesByAdminDTO.startTime != null and vaccinesByAdminDTO.startTime != &quot;&quot; '>\n"
+        + " AND cmver.create_at <![CDATA[>=]]> #{vaccinesByAdminDTO.startTime}  \n" + "</if>"
+        + "<if test='vaccinesByAdminDTO.endTime != null and vaccinesByAdminDTO.endTime != &quot;&quot; '>\n"
+        + " AND cmver.create_at <![CDATA[<=]]> #{vaccinesByAdminDTO.endTime}  " + " </if> \n" + " </where>"
+        + " order by cmver.create_at desc" + " </script>")
+    List<ComMngVaccinesEnrollExcelVo>
+        exportVaccinesEnrollListByAdmin(@Param("vaccinesByAdminDTO") VaccinesEnrollByAdminDTO vaccinesByAdminDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngVaccinesInoculationRecordDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngVaccinesInoculationRecordDAO.java
new file mode 100644
index 0000000..de6a1c2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngVaccinesInoculationRecordDAO.java
@@ -0,0 +1,80 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.vaccines.VaccinesInoculationByAdminDTO;
+import com.panzhihua.common.model.vos.vaccines.ComMngVaccinesInoculationExcelVo;
+import com.panzhihua.common.model.vos.vaccines.VaccinesInoculationByAdminVO;
+import com.panzhihua.common.model.vos.vaccines.VaccinesUserInoculationByAppVO;
+import com.panzhihua.service_community.model.dos.ComMngVaccinesInoculationRecordDO;
+
+/**
+ * @auther lyq
+ * @create 2021-05-19 14:17:59
+ * @describe 疫苗接种记录表mapper类
+ */
+@Mapper
+public interface ComMngVaccinesInoculationRecordDAO extends BaseMapper<ComMngVaccinesInoculationRecordDO> {
+
+    @Select("<script> "
+        + "select id,vaccines,name,inoculation_at,vaccines_code,medical_institution,dosage from com_mng_vaccines_inoculation_record "
+        + " where 1=1 and " + "<if test='ids != null and ids.size>0'>" + "(user_type = 2 and user_id in  "
+        + "<foreach item=\"item\" collection=\"ids\" separator=\",\" open=\"(\" close=\")\" index=\"\"> " + "#{item} "
+        + "</foreach>" + " ) or  " + " </if> " +
+
+        " (user_type = 1 and user_id = #{userId}) " + " order by inoculation_at desc " + " </script>")
+    List<VaccinesUserInoculationByAppVO> getUserInoculationListByApp(@Param("ids") List<Long> ids,
+        @Param("userId") Long userId);
+
+    @Select("<script> "
+        + "select cmvir.id,cmvir.name,cmvir.sex,cmvir.age,cmvir.phone,cmvir.id_card,cmvir.inoculation_at,cmvir.dosage "
+        + ",cmvir.medical_institution,cmvir.vaccines_code,cmvir.vaccines,cmvir.remark from com_mng_vaccines_inoculation_record as cmvir"
+        + " <where>" + "<if test='inoculationByAdminDTO.communityId != null'>"
+        + " and cmvir.community_id = ${inoculationByAdminDTO.communityId} " + " </if> "
+        + "<if test='inoculationByAdminDTO.name != null and inoculationByAdminDTO.name != &quot;&quot;'>"
+        + " and cmvir.name like concat('%',#{inoculationByAdminDTO.name},'%') " + " </if> "
+        + "<if test='inoculationByAdminDTO.dosage != null and inoculationByAdminDTO.dosage != &quot;&quot;'>"
+        + " and cmvir.dosage = #{inoculationByAdminDTO.dosage} " + " </if> "
+        + "<if test='inoculationByAdminDTO.idCard != null and inoculationByAdminDTO.idCard != &quot;&quot;'>"
+        + " and cmvir.id_card = #{inoculationByAdminDTO.idCard} " + " </if> "
+        + "<if test='inoculationByAdminDTO.phone != null and inoculationByAdminDTO.phone != &quot;&quot;'>"
+        + " and cmvir.phone = #{inoculationByAdminDTO.phone} " + " </if> "
+        + "<if test='inoculationByAdminDTO.startTime != null and inoculationByAdminDTO.startTime != &quot;&quot;'>\n"
+        + " AND cmvir.inoculation_at <![CDATA[>=]]> #{inoculationByAdminDTO.startTime}  \n" + "</if>"
+        + "<if test='inoculationByAdminDTO.endTime != null and inoculationByAdminDTO.endTime != &quot;&quot;'>\n"
+        + " AND cmvir.inoculation_at <![CDATA[<=]]> #{inoculationByAdminDTO.endTime}  " + " </if> \n" + " </where>"
+        + " order by inoculation_at desc " + " </script>")
+    IPage<VaccinesInoculationByAdminVO> getVaccinesInoculationListByAdmin(Page page,
+        @Param("inoculationByAdminDTO") VaccinesInoculationByAdminDTO inoculationByAdminDTO);
+
+    @Select("<script> "
+        + "select cmvir.name,cmvir.sex,cmvir.age,cmvir.phone,cmvir.id_card,cmvir.inoculation_at,cmvir.dosage "
+        + ",cmvir.medical_institution,cmvir.vaccines_code,cmvir.vaccines,cmvir.remark from com_mng_vaccines_inoculation_record as cmvir"
+        + " <where>" + "<if test='inoculationByAdminDTO.communityId != null'>"
+        + " and cmvir.community_id = ${inoculationByAdminDTO.communityId} " + " </if> "
+        + "<if test='inoculationByAdminDTO.ids != null and inoculationByAdminDTO.ids.size > 0'>" + " and cmvir.id in "
+        + "<foreach item=\"item\" collection=\"inoculationByAdminDTO.ids\" separator=\",\" open=\"(\" close=\")\" index=\"\"> \n"
+        + "#{item}" + "</foreach>" + " </if> "
+        + "<if test='inoculationByAdminDTO.name != null and inoculationByAdminDTO.name != &quot;&quot;'>"
+        + " and cmvir.name like concat('%',#{inoculationByAdminDTO.name},'%') " + " </if> "
+        + "<if test='inoculationByAdminDTO.dosage != null and inoculationByAdminDTO.dosage != &quot;&quot;'>"
+        + " and cmvir.dosage = #{inoculationByAdminDTO.dosage} " + " </if> "
+        + "<if test='inoculationByAdminDTO.idCard != null and inoculationByAdminDTO.idCard != &quot;&quot;'>"
+        + " and cmvir.id_card = #{inoculationByAdminDTO.idCard} " + " </if> "
+        + "<if test='inoculationByAdminDTO.phone != null and inoculationByAdminDTO.phone != &quot;&quot;'>"
+        + " and cmvir.phone = #{inoculationByAdminDTO.phone} " + " </if> "
+        + "<if test='inoculationByAdminDTO.startTime != null and inoculationByAdminDTO.startTime != &quot;&quot;'>\n"
+        + " AND cmvir.inoculation_at <![CDATA[>=]]> #{inoculationByAdminDTO.startTime}  \n" + "</if>"
+        + "<if test='inoculationByAdminDTO.endTime != null and inoculationByAdminDTO.endTime != &quot;&quot; '>\n"
+        + " AND cmvir.inoculation_at <![CDATA[<=]]> #{inoculationByAdminDTO.endTime}  " + " </if> \n" + " </where>"
+        + " order by inoculation_at desc " + " </script>")
+    List<ComMngVaccinesInoculationExcelVo> exportVaccinesInoculationListByAdmin(
+        @Param("inoculationByAdminDTO") VaccinesInoculationByAdminDTO inoculationByAdminDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngVillageDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngVillageDAO.java
new file mode 100644
index 0000000..8b8609f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngVillageDAO.java
@@ -0,0 +1,16 @@
+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.ComMngVillageDO;
+
+/**
+ * @description: 小区管理
+ * @author: Null
+ * @date: 2021/3/16 14:28
+ */
+@Mapper
+public interface ComMngVillageDAO extends BaseMapper<ComMngVillageDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngVolunteerMngDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngVolunteerMngDAO.java
new file mode 100644
index 0000000..b761fc7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngVolunteerMngDAO.java
@@ -0,0 +1,97 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenVolunteerStatisticsInfo;
+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;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.community.ComMngVolunteerMngVO;
+import com.panzhihua.common.model.vos.community.TodoEventsVO;
+import com.panzhihua.service_community.model.dos.ComMngVolunteerMngDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 志愿者
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-15 09:50
+ **/
+@Mapper
+public interface ComMngVolunteerMngDAO extends BaseMapper<ComMngVolunteerMngDO> {
+
+    /**
+     * 分页查询志愿者列表
+     * @param page  分页参数
+     * @param comMngVolunteerMngVO  请求参数
+     * @return  志愿者列表
+     */
+    IPage<ComMngVolunteerMngVO> pageVolunteer(Page page,
+        @Param("comMngVolunteerMngVO") ComMngVolunteerMngVO comMngVolunteerMngVO);
+
+    IPage<ComMngVolunteerMngVO> pageVolunteerExamine(Page page,
+        @Param("comMngVolunteerMngVO") ComMngVolunteerMngVO comMngVolunteerMngVO);
+
+    @Select("SELECT\n" + "'4' type\n" + "FROM\n" + "com_mng_volunteer_mng v \n" + "WHERE\n" + "v.state = 1 \n"
+        + "AND v.`community_id` = #{communityId} \n")
+    List<TodoEventsVO> selectNeedToDo(Long communityId);
+
+    @Select("select user_id from sys_user where type=1 and phone=#{phone}")
+    Long selectUserIdByPhone(String phone);
+
+    @Select("select id_card from sys_user where type=1 and phone=#{idCard}")
+    Long selectUserIdByIdCard(String idCard);
+
+    /**
+     * 志愿者-组织直方图数据
+     * @param communityId
+     * @return
+     */
+    List<StatisticsCommVO> retrieveVolunteerOrgHistogram(@Param("communityId") Long communityId);
+
+    /**
+     * 获取杨家坪定制页面-志愿服务基础数据
+     * @param communityId
+     * @return
+     */
+    BigScreenVolunteerStatisticsInfo getVolunteerBaseData(@Param("communityId") Long communityId);
+
+    /**
+     * 获取志愿者数据
+     * @param communityId
+     * @return
+     */
+    List<ComMngVolunteerMngVO> retrieveVolunteerServiceTypeCircleData(@Param("communityId") Long communityId);
+
+    /**
+     * 志愿者年龄段占比圆形图数据
+     * @param communityId
+     * @return
+     */
+    List<StatisticsCommVO> retrieveVolunteerAgeCircleData(@Param("communityId") Long communityId);
+
+    /**
+     * 志愿者技能占比圆形图
+     * @param communityId
+     * @return
+     */
+    List<ComMngVolunteerMngVO> retrieveVolunteerSkillCircleData(@Param("communityId") Long communityId);
+
+    /**
+     * 根据社区id查询志愿者
+     * @param communityId
+     * @return
+     */
+    List<ComMngVolunteerMngVO> selectVolunteerByCommunityId(@Param("communityId") Long communityId);
+
+    /**
+     * 志愿者审核详情
+     * @param id
+     * @return
+     */
+    ComMngVolunteerMngVO detailVolunteerExamine(@Param("id") Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngVolunteerOrgTeamMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngVolunteerOrgTeamMapper.java
new file mode 100644
index 0000000..7f96500
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngVolunteerOrgTeamMapper.java
@@ -0,0 +1,71 @@
+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.common.*;
+import com.panzhihua.common.model.vos.common.*;
+import com.panzhihua.service_community.model.dos.ComMngVolunteerOrgTeam;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 志愿者组织队伍表表数据库访问层
+ *
+ * @author lyq
+ * @since 2021-10-30 16:20:44
+ */
+@Mapper
+public interface ComMngVolunteerOrgTeamMapper extends BaseMapper<ComMngVolunteerOrgTeam>  {
+
+    /**
+     * 通过ID查询单条数据
+     *
+     * @param id 主键
+     * @return 实例对象
+     */
+    ComMngVolunteerOrgTeamVo queryById(Long id);
+
+    /**
+     * 查询指定行数据
+     *
+     * @param comMngVolunteerOrgTeam 查询条件
+     * @param page         分页对象
+     * @return 对象列表
+     */
+    IPage<ComMngVolunteerOrgTeamVo> queryAllByLimit(@Param("dto") PageComMngVolunteerOrgTeamDto comMngVolunteerOrgTeam, Page page);
+
+    /**
+     * 批量新增数据(MyBatis原生foreach方法)
+     *
+     * @param entities List<ComMngVolunteerOrgTeam> 实例对象列表
+     * @return 影响行数
+     */
+    int insertBatch(@Param("entities") List<ComMngVolunteerOrgTeam> entities);
+
+    /**
+     * 批量新增或按主键更新数据(MyBatis原生foreach方法)
+     *
+     * @param entities List<ComMngVolunteerOrgTeam> 实例对象列表
+     * @return 影响行数
+     * @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
+     */
+    int insertOrUpdateBatch(@Param("entities") List<ComMngVolunteerOrgTeam> entities);
+
+    /**
+     * 社区后台-查询志愿者组织列表
+     * @param comMngVolunteerOrgTeam    请求参数
+     * @return  志愿者组织列表
+     */
+    List<ComMngVolunteerOrgTeamVo> queryAll(@Param("dto") PageComMngVolunteerOrgTeamDto comMngVolunteerOrgTeam);
+
+    /**
+     * 社区后台-志愿者组织统计
+     * @param communityId   社区id
+     * @return  志愿者组织统计
+     */
+    ComMngVolunteerStatisticsVo statisticsVolunteerOrgAdmin(@Param("communityId") Long communityId);
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngVolunteerServiceTypeMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngVolunteerServiceTypeMapper.java
new file mode 100644
index 0000000..3672790
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngVolunteerServiceTypeMapper.java
@@ -0,0 +1,64 @@
+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.common.*;
+import com.panzhihua.common.model.vos.common.*;
+import com.panzhihua.service_community.model.dos.ComMngVolunteerServiceType;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 志愿者服务类型表表数据库访问层
+ *
+ * @author lyq
+ * @since 2021-10-30 16:47:09
+ */
+@Mapper
+public interface ComMngVolunteerServiceTypeMapper extends BaseMapper<ComMngVolunteerServiceType> {
+
+    /**
+     * 通过ID查询单条数据
+     *
+     * @param id 主键
+     * @return 实例对象
+     */
+    ComMngVolunteerServiceTypeVo queryById(Long id);
+
+    /**
+     * 查询指定行数据
+     *
+     * @param comMngVolunteerServiceType 查询条件
+     * @param page                   分页对象
+     * @return 对象列表
+     */
+    IPage<ComMngVolunteerServiceTypeVo> queryAllByLimit(@Param("dto") PageComMngVolunteerServiceTypeDto comMngVolunteerServiceType, Page page);
+
+    /**
+     * 批量新增数据(MyBatis原生foreach方法)
+     *
+     * @param entities List<ComMngVolunteerServiceType> 实例对象列表
+     * @return 影响行数
+     */
+    int insertBatch(@Param("entities") List<ComMngVolunteerServiceType> entities);
+
+    /**
+     * 批量新增或按主键更新数据(MyBatis原生foreach方法)
+     *
+     * @param entities List<ComMngVolunteerServiceType> 实例对象列表
+     * @return 影响行数
+     * @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
+     */
+    int insertOrUpdateBatch(@Param("entities") List<ComMngVolunteerServiceType> entities);
+
+    /**
+     * 查询所有志愿者服务类型列表
+     * @param comMngVolunteerServiceType    请求参数
+     * @return  志愿者服务列表
+     */
+    List<ComMngVolunteerServiceTypeVo> queryAll(@Param("dto") PageComMngVolunteerServiceTypeDto comMngVolunteerServiceType);
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngVolunteerSkillMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngVolunteerSkillMapper.java
new file mode 100644
index 0000000..5c321ae
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComMngVolunteerSkillMapper.java
@@ -0,0 +1,64 @@
+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.common.*;
+import com.panzhihua.common.model.vos.common.*;
+import com.panzhihua.service_community.model.dos.ComMngVolunteerSkill;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 志愿者技能表表数据库访问层
+ *
+ * @author lyq
+ * @since 2021-10-30 16:47:36
+ */
+@Mapper
+public interface ComMngVolunteerSkillMapper extends BaseMapper<ComMngVolunteerSkill> {
+
+    /**
+     * 通过ID查询单条数据
+     *
+     * @param id 主键
+     * @return 实例对象
+     */
+    ComMngVolunteerSkillVo queryById(Long id);
+
+    /**
+     * 查询指定行数据
+     *
+     * @param comMngVolunteerSkill 查询条件
+     * @param page             分页对象
+     * @return 对象列表
+     */
+    IPage<ComMngVolunteerSkillVo> queryAllByLimit(@Param("dto") PageComMngVolunteerSkillDto comMngVolunteerSkill, Page page);
+
+    /**
+     * 批量新增数据(MyBatis原生foreach方法)
+     *
+     * @param entities List<ComMngVolunteerSkill> 实例对象列表
+     * @return 影响行数
+     */
+    int insertBatch(@Param("entities") List<ComMngVolunteerSkill> entities);
+
+    /**
+     * 批量新增或按主键更新数据(MyBatis原生foreach方法)
+     *
+     * @param entities List<ComMngVolunteerSkill> 实例对象列表
+     * @return 影响行数
+     * @throws org.springframework.jdbc.BadSqlGrammarException 入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
+     */
+    int insertOrUpdateBatch(@Param("entities") List<ComMngVolunteerSkill> entities);
+
+    /**
+     * 社区后台-查询志愿者技能列表
+     * @param comMngVolunteerSkill 请求参数
+     * @return  志愿者技能列表
+     */
+    List<ComMngVolunteerSkillVo> queryAll(@Param("dto") PageComMngVolunteerSkillDto comMngVolunteerSkill);
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComOpsAccRuleDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComOpsAccRuleDAO.java
new file mode 100644
index 0000000..e952e01
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComOpsAccRuleDAO.java
@@ -0,0 +1,27 @@
+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.ComOpsAccRuleDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 积分规则
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-28 15:58
+ **/
+@Mapper
+public interface ComOpsAccRuleDAO extends BaseMapper<ComOpsAccRuleDO> {
+    // @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>")
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComOpsAccRuleFuncDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComOpsAccRuleFuncDAO.java
new file mode 100644
index 0000000..ab06ffa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComOpsAccRuleFuncDAO.java
@@ -0,0 +1,15 @@
+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.ComOpsAccRuleFuncDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 积分功能
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-28 16:07
+ **/
+@Mapper
+public interface ComOpsAccRuleFuncDAO extends BaseMapper<ComOpsAccRuleFuncDO> {}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComOpsAccUserDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComOpsAccUserDAO.java
new file mode 100644
index 0000000..77e7d34
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComOpsAccUserDAO.java
@@ -0,0 +1,15 @@
+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.ComOpsAccUserDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 积分规则用户关系
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-28 16:13
+ **/
+@Mapper
+public interface ComOpsAccUserDAO extends BaseMapper<ComOpsAccUserDO> {}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComOpsAdvDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComOpsAdvDAO.java
new file mode 100644
index 0000000..661c266
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComOpsAdvDAO.java
@@ -0,0 +1,55 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.advertisement.PageComOpsAdvDTO;
+import com.panzhihua.common.model.vos.advertisement.ComOpsAdvVO;
+import com.panzhihua.service_community.model.dos.ComOpsAdvDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 广告
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-28 15:40
+ **/
+@Mapper
+public interface ComOpsAdvDAO extends BaseMapper<ComOpsAdvDO> {
+    // @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\n" + "jump_id \n" + "FROM\n" + "com_ops_adv \n" + "WHERE\n" + "jump_id IS NOT NULL \n"
+        + "AND jump_id !=0")
+    List<Long> selectAllBeUsedContent();
+
+    @Select("<script> " + "SELECT \n" + "a.id,\n" + "a.photo_path,\n" + "po.adv_desc,\n"
+        + "if(a.jump_url is null,p.jump_content,a.jump_url)jump_url,\n" + "a.on_at,\n" + "a.off_at,\n"
+        + "a.create_at \n" + "FROM\n" + "com_ops_adv a \n" + "JOIN com_ops_adv_pos po on a.pos_id=po.id\n"
+        + "LEFT JOIN com_ops_adv_jump p on a.jump_id=p.id\n" + " <where>"
+        + "<if test='pageComOpsAdvDTO.posId != null and pageComOpsAdvDTO.posId != 0'>"
+        + " and a.pos_id = #{pageComOpsAdvDTO.posId} \n" + " </if> "
+        + "<if test='pageComOpsAdvDTO.onAtBegin != null  '>" + "AND a.on_at BETWEEN #{pageComOpsAdvDTO.onAtBegin} \n"
+        + "AND #{pageComOpsAdvDTO.onAtEnd} \n" + " </if> " + "<if test='pageComOpsAdvDTO.offAtBegin != null  '>"
+        + "AND a.off_at BETWEEN #{pageComOpsAdvDTO.offAtBegin} \n" + "AND #{pageComOpsAdvDTO.offAtEnd}" + " </if> "
+        + " </where>" + " order by a.create_at desc" + "</script>")
+    IPage<ComOpsAdvVO> pageAdvertisement(Page page, @Param("pageComOpsAdvDTO") PageComOpsAdvDTO pageComOpsAdvDTO);
+
+    @Select("SELECT \n" + "a.id,\n" + "a.photo_path,\n" + "po.adv_desc,\n" + "a.jump_url,\n" + "p.jump_content,\n"
+        + "a.pos_id,\n" + "a.link_type,\n" + "a.jump_id,\n" + "a.on_at,\n" + "a.off_at,\n" + "a.create_at \n" + "FROM\n"
+        + "com_ops_adv a \n" + "JOIN com_ops_adv_pos po on a.pos_id=po.id\n"
+        + "LEFT JOIN com_ops_adv_jump p on a.jump_id=p.id\n" + "WHERE\n" + "a.id=#{id} ")
+    ComOpsAdvVO detailAdvertisement(Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComOpsAdvJumpDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComOpsAdvJumpDAO.java
new file mode 100644
index 0000000..8c8bc75
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComOpsAdvJumpDAO.java
@@ -0,0 +1,26 @@
+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.ComOpsAdvJumpDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 跳转内容
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-28 15:46
+ **/
+@Mapper
+public interface ComOpsAdvJumpDAO extends BaseMapper<ComOpsAdvJumpDO> {
+    // @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>")
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComOpsAdvPosDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComOpsAdvPosDAO.java
new file mode 100644
index 0000000..1f5e109
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComOpsAdvPosDAO.java
@@ -0,0 +1,26 @@
+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.ComOpsAdvPosDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 广告位置
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-28 15:51
+ **/
+@Mapper
+public interface ComOpsAdvPosDAO extends BaseMapper<ComOpsAdvPosDO> {
+    // @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>")
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComOpsHouseDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComOpsHouseDAO.java
new file mode 100644
index 0000000..1c6ec16
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComOpsHouseDAO.java
@@ -0,0 +1,70 @@
+package com.panzhihua.service_community.dao;
+
+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;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.community.PageComOpsHouseDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.community.ComOpsHouseVO;
+import com.panzhihua.service_community.model.dos.ComOpsHouseDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 房屋租售
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-22 14:49
+ **/
+@Mapper
+public interface ComOpsHouseDAO extends BaseMapper<ComOpsHouseDO> {
+
+    @Select("select type,name,phone,image_url from sys_user where user_id=#{userId}")
+    LoginUserInfoVO selectUserByUserId(Long userId);
+
+    @Select("select user_id from sys_user where name like concat('%',#{name},'%')  limit 1")
+    Long selectUserIdByName(String name);
+
+    @Select("<script> " + "SELECT d.*,\n" + "u.name userName,u.type as userType\n" + "FROM\n" + "com_ops_house d\n"
+        + " LEFT JOIN sys_user u ON d.user_id = u.user_id\n"
+        + " LEFT JOIN com_act ca ON d.community_id = ca.community_id\n"
+        + " LEFT JOIN com_mng_struct_area sa ON d.house_community_id = sa.id \n" + "where 1=1 "
+        + "<if test='pageComOpsHouseDTO.communityId != null '>"
+        + "AND ( d.community_id = ${pageComOpsHouseDTO.communityId} or sa.community_id = ${pageComOpsHouseDTO.communityId} )\n"
+        + " </if> "
+        + "<if test='pageComOpsHouseDTO.areaCode != null '>"
+        + "AND ca.area_code = #{pageComOpsHouseDTO.areaCode}"
+        + " </if> " +
+        "<if test='pageComOpsHouseDTO.userId != null '>" + "AND d.user_id=#{pageComOpsHouseDTO.userId} \n" + " </if> "
+        + "<if test='pageComOpsHouseDTO.orient != null '>" + "AND d.orient=#{pageComOpsHouseDTO.orient} \n" + " </if> "
+        + "<if test='pageComOpsHouseDTO.houseType != null '>" + "AND d.house_type=#{pageComOpsHouseDTO.houseType} \n"
+        + " </if> " + "<if test='pageComOpsHouseDTO.rentType != null '>"
+        + "AND d.rent_type=#{pageComOpsHouseDTO.rentType} \n" + " </if> "
+        + "<if test='pageComOpsHouseDTO.brn != null and pageComOpsHouseDTO.brn !=4 '>"
+        + "AND d.brn=#{pageComOpsHouseDTO.brn} \n" + " </if> "
+        + "<if test='pageComOpsHouseDTO.brn != null and pageComOpsHouseDTO.brn ==4 '>"
+        + "AND d.brn <![CDATA[ >= ]]> 4 \n" + " </if> " +
+
+        "<if test='pageComOpsHouseDTO.houseCommunityId != null '>"
+        + "AND d.house_community_id = ${pageComOpsHouseDTO.houseCommunityId} \n" + " </if> "
+        + "<if test='pageComOpsHouseDTO.status != null and pageComOpsHouseDTO.status &lt; 4 '>"
+        + "AND d.status=#{pageComOpsHouseDTO.status} \n" + " </if> "
+        + "<if test='pageComOpsHouseDTO.status != null and pageComOpsHouseDTO.status ==4 '>"
+        + "AND d.status in (0,2) \n" + " </if> "
+        + "<if test='pageComOpsHouseDTO.status != null and pageComOpsHouseDTO.status ==5 '>"
+        + "AND d.status in (1,3) \n" + " </if> "
+        + "<if test='pageComOpsHouseDTO.houseCommunityName != null and pageComOpsHouseDTO.houseCommunityName.trim() != &quot;&quot;'>"
+        + " and (" + " d.`house_community_name` LIKE concat( '%', #{pageComOpsHouseDTO.houseCommunityName}, '%' ) "
+        + " or d.title like concat( '%', #{pageComOpsHouseDTO.houseCommunityName}, '%' ) " + "    )  \n" + " </if> "
+        + "<if test='pageComOpsHouseDTO.mobile != null and pageComOpsHouseDTO.mobile.trim() != &quot;&quot;'>"
+        + " and d.`mobile` LIKE concat( #{pageComOpsHouseDTO.mobile}, '%' ) \n" + " </if> "
+        + "<if test='pageComOpsHouseDTO.begin != null '>" + "AND d.create_at BETWEEN #{pageComOpsHouseDTO.begin} \n"
+        + "AND #{pageComOpsHouseDTO.end} \n" + " </if> " + " order by "
+        + "<if test='pageComOpsHouseDTO.priceOrder != null and pageComOpsHouseDTO.priceOrder ==1 '>" + "d.amount asc,"
+        + " </if> " + "<if test='pageComOpsHouseDTO.priceOrder != null and pageComOpsHouseDTO.priceOrder ==2 '>"
+        + "d.amount desc," + " </if> " + "d.id desc " + "</script>")
+    IPage<ComOpsHouseVO> pageHouse(Page page, @Param("pageComOpsHouseDTO") PageComOpsHouseDTO pageComOpsHouseDTO);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPbCheckUnitDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPbCheckUnitDao.java
new file mode 100644
index 0000000..c303754
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPbCheckUnitDao.java
@@ -0,0 +1,10 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_community.entity.ComPbCheckUnit;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface ComPbCheckUnitDao extends BaseMapper<ComPbCheckUnit> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPbDynDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPbDynDAO.java
new file mode 100644
index 0000000..b8a4293
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPbDynDAO.java
@@ -0,0 +1,33 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.Map;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import com.panzhihua.common.model.vos.screen.PbWorkVO;
+
+/**
+ * @author xyh
+ * @date 2021/6/16 14:57
+ */
+@Mapper
+public interface ComPbDynDAO {
+
+    @Select("SELECT COUNT(id) AS activityNum ,"
+        + "(SELECT COUNT(id) FROM com_pb_dyn WHERE community_id = ${communityId} AND STATUS = 2) AS dynNum," + "("
+        + " (SELECT COUNT(id) FROM com_pb_activity WHERE community_id = ${communityId} AND (STATUS = 3 or STATUS = 4 or STATUS = 5 ) AND create_at LIKE CONCAT(#{nowDate},'%')) + "
+        + " (SELECT COUNT(id) FROM com_pb_dyn WHERE community_id = ${communityId} AND STATUS = 2 AND create_at LIKE CONCAT(#{nowDate},'%'))"
+        + " ) AS currentNum "
+        + " FROM com_pb_activity WHERE community_id = ${communityId} AND (STATUS = 3 or STATUS = 4 or STATUS = 5 )")
+    Map<String, Long> countByCommunityId(@Param("communityId") Long communityId, @Param("nowDate") String nowDate);
+
+    @Select("SELECT "
+        + "(SELECT COUNT(id) FROM com_pb_activity WHERE community_id = ${communityId} AND (STATUS = 3 or STATUS = 4 or STATUS = 5 ) AND #{start} < create_at AND create_at < #{end}) AS activity,"
+        + "(SELECT COUNT(id) FROM com_pb_dyn WHERE community_id = ${communityId} AND STATUS = 2 AND #{start} < create_at AND create_at < #{end}) AS dyn "
+        + "FROM DUAL")
+    PbWorkVO countByTime(@Param("start") String start, @Param("end") String end,
+        @Param("communityId") Long communityId);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPbMemberDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPbMemberDAO.java
new file mode 100644
index 0000000..0070f3c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPbMemberDAO.java
@@ -0,0 +1,89 @@
+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.vos.community.bigscreen.BigScreenActivityLine;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenActivityTop;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenServiceData;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenServiceUser;
+import com.panzhihua.common.model.vos.partybuilding.*;
+import com.panzhihua.service_community.model.dos.ComPbMemberDO;
+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;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党员
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 10:52
+ **/
+@Mapper
+public interface ComPbMemberDAO extends BaseMapper<ComPbMemberDO> {
+    /**
+     * 根据用户手机号查询党员信息
+     * @param idCard
+     * @return
+     */
+    ComPbMemberVO selectById(String idCard);
+
+    /**
+     *根据社区id日期查询活动数
+     * @param communityId
+     * @param date
+     * @return
+     */
+    BigScreenActivityLine selectActivityCountMonth(@Param("communityId")Long communityId, @Param("date")String date,@Param("year")String year);
+
+    /**
+     * 查询党员积分前3
+     * @param communityId
+     * @return
+     */
+    IPage<BigScreenActivityTop> selectActivityTop(Page page,@Param("communityId") Long communityId);
+
+    /**
+     * 服务数据查询
+     * @param communityId
+     * @return
+     */
+    BigScreenServiceData bigScreenServiceData(@Param("communityId")Long communityId);
+
+    /**
+     * 服务居民
+     * @param communityId
+     * @return
+     */
+    List<BigScreenServiceUser> bigScreenServiceUser(@Param("communityId")Long communityId);
+
+    /**
+     * 通过userID确认是否是党员
+     * @param userId
+     * @return
+     */
+    Integer checkIsPbMember(@Param("userId") Long userId);
+
+    /**
+     * 通过userID确认是否是志愿者
+     * @param userId
+     * @return
+     */
+    Integer checkIsVolunteer(@Param("userId") Long userId);
+
+    /**
+     * 统计在职干部特长
+     * @return
+     */
+    List<ComPbMemberTypeVO> statisticsPbMemberType();
+
+    /**
+     * 单位类型
+     * @return
+     */
+    List<ComPbMemberTypeVO> selectUnitByNatureName();
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPbServiceTeamDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPbServiceTeamDao.java
new file mode 100644
index 0000000..38b2691
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPbServiceTeamDao.java
@@ -0,0 +1,16 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComPbServiceTeam;
+
+/**
+ * 服务团队(ComPbServiceTeam)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-10-11 13:24:35
+ */
+@Mapper
+public interface ComPbServiceTeamDao extends BaseMapper<ComPbServiceTeam> {
+
+}
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..ac1cec0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPensionAuthPensionerDAO.java
@@ -0,0 +1,36 @@
+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);
+
+    /**
+     * 根据人口id维护养老金人员健在状态
+     * @param populationId  人口id
+     * @param isAlive   健在状态(1.健在 0.未健在)
+     */
+    void editPensionIsAlive(@Param("populationId") Long populationId,@Param("isAlive") Integer isAlive);
+
+    /**
+     * 养老认证定时任务查询养老人员列表
+     * @return  养老人员列表
+     */
+    List<ComPensionAuthPensionerDO> getAuthPensionList();
+}
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..c616fc1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPensionAuthRecordDAO.java
@@ -0,0 +1,58 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.community.*;
+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.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);
+
+    /**
+     * 查询养老认证待处理id集合
+     * @param communityId   社区id
+     * @param authRecordId  养老认证记录id
+     * @return  养老认证待处理id集合
+     */
+    List<String> 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/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/ComPropertyDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPropertyDao.java
new file mode 100644
index 0000000..aaf5dd7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPropertyDao.java
@@ -0,0 +1,110 @@
+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.property.CommonPage;
+import com.panzhihua.common.model.vos.community.ComActAnnouncementVO;
+import com.panzhihua.common.model.vos.community.ComPropertyVO;
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenAlarmStatisticsInfo;
+import com.panzhihua.common.model.vos.property.ComPropertyAlarmVO;
+import com.panzhihua.common.model.vos.property.ComPropertyEquipmentVO;
+import com.panzhihua.service_community.entity.ComProperty;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * (ComProperty)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-09-18 10:46:51
+ */
+@Mapper
+public interface ComPropertyDao extends BaseMapper<ComProperty> {
+    /**
+     * 分页查询
+     * @param page
+     * @param commonPage
+     * @return
+     */
+    IPage<ComPropertyVO> pageList(Page page, @Param("commonPage") CommonPage commonPage);
+
+    /**
+     * 居民自治大屏统计数据获取
+     * @param communityId
+     * @return
+     */
+    List<StatisticsCommVO> getRepairPolylineDate(@Param("communityId") Long communityId);
+
+    /**
+     * 报事报修date之前的累计数量
+     * @param communityId
+     * @param date
+     * @return
+     */
+    StatisticsCommVO getRepairTotalPolylineDate(@Param("communityId") Long communityId, @Param("date") String date);
+
+    List<StatisticsCommVO> getEventAddPolylineData(@Param("communityId") Long communityId);
+
+    StatisticsCommVO getEventTotalPolylineDate(@Param("communityId") Long communityId, @Param("date") String date);
+
+    /**
+     * 杨家坪定制页面-居家养老基础数据
+     * @param communityId
+     * @return
+     */
+    BigScreenAlarmStatisticsInfo getAlarmBaseData(@Param("communityId") Long communityId);
+
+    /**
+     * 异常报警新增折线数据
+     * @param communityId
+     * @return
+     */
+    List<StatisticsCommVO> retrieveAbnormalAddPolylineData(@Param("communityId") Long communityId);
+
+    /**
+     * 异常报警累计折线数据
+     * @param communityId
+     * @param date
+     * @return
+     */
+    StatisticsCommVO retrieveAbnormalTotalPolylineData(@Param("communityId") Long communityId, @Param("date") String date);
+
+    /**
+     * 一键求助服务新增折线数据
+     * @param communityId
+     * @return
+     */
+    List<StatisticsCommVO> retrieveServiceAddPolylineData(@Param("communityId") Long communityId);
+
+    /**
+     * 一键求助服务累计折线数据
+     * @param communityId
+     * @param date
+     * @return
+     */
+    StatisticsCommVO retrieveServiceTotalPolylineData(@Param("communityId") Long communityId, @Param("date") String date);
+
+    /**
+     * 获取报警记录
+     * @param page
+     * @param type
+     * @param status
+     * @param communityId
+     * @return
+     */
+    IPage<ComPropertyAlarmVO> getAbnormalList(@Param("page") Page page, @Param("type") Integer type,
+                                              @Param("status") Integer status, @Param("communityId") Long communityId);
+
+    /**
+     * 获取报警设备点位图
+     * @param communityId
+     * @return
+     */
+    List<ComPropertyEquipmentVO> getAlarmPointMapData(@Param("communityId") Long communityId);
+
+    IPage<ComActAnnouncementVO> noticeList(Page page, @Param("propertyId") Long propertyId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPropertyPublicityDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPropertyPublicityDAO.java
new file mode 100644
index 0000000..41cb24f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPropertyPublicityDAO.java
@@ -0,0 +1,59 @@
+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.PageComPropertyPublicityDTO;
+import com.panzhihua.common.model.vos.community.ComMngVillageVO;
+import com.panzhihua.common.model.vos.community.ComPropertyPublicityVO;
+import com.panzhihua.service_community.model.dos.ComPropertyPublicityDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @title: ComPropertyPublicityDAO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 物业宣传mapper
+ * @author: hans
+ * @date: 2021/11/11 13:58
+ */
+@Mapper
+public interface ComPropertyPublicityDAO extends BaseMapper<ComPropertyPublicityDO> {
+
+    /**
+     * 获取用户菜单权限
+     * @param userId
+     * @return
+     */
+    List<String> retrieveUserMenuList(@Param("userId") Long userId);
+
+    /**
+     * 分页查询物业宣传
+     * @param pageComPropertyPublicityDTO
+     * @return
+     */
+    IPage<ComPropertyPublicityVO> pageComPropertyPublicity(@Param("page") Page page, @Param("pageComPropertyPublicityDTO") PageComPropertyPublicityDTO pageComPropertyPublicityDTO);
+
+    /**
+     * 获取物业宣传详情
+     * @param id
+     * @return
+     */
+    ComPropertyPublicityVO selectDetail(@Param("id") Long id);
+
+    /**
+     * 分页查询物业宣传-小程序
+     * @param pageComPropertyPublicityDTO
+     * @return
+     */
+    IPage<ComPropertyPublicityVO> pageComPropertyPublicityApplet(@Param("page") Page page, @Param("pageComPropertyPublicityDTO") PageComPropertyPublicityDTO pageComPropertyPublicityDTO);
+
+    /**
+     * 增加物业宣传浏览量
+     * @param id
+     * @return
+     */
+    int incrView(@Param("id") Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPropertyWorkerDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPropertyWorkerDAO.java
new file mode 100644
index 0000000..aeacefc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComPropertyWorkerDAO.java
@@ -0,0 +1,50 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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.property.PagePropertyWorkerDTO;
+import com.panzhihua.common.model.vos.property.ComPropertyWorkerVO;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.ComPropertyWorker;
+
+/**
+ * 物业公司工作人员(ComPropertyWorker)表数据库访问层
+ *
+ * @author makejava
+ * @since 2022-04-26 09:39:59
+ */
+@Mapper
+public interface ComPropertyWorkerDAO extends BaseMapper<ComPropertyWorker> {
+
+    /**
+     * 批量新增数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<ComPropertyWorker> 实例对象列表
+     * @return 影响行数
+     */
+    int insertBatch(@Param("entities") List<ComPropertyWorker> entities);
+
+    /**
+     * 批量新增或按主键更新数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<ComPropertyWorker> 实例对象列表
+     * @return 影响行数
+     * @throws org.springframework.jdbc.BadSqlGrammarException
+     *             入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
+     */
+    int insertOrUpdateBatch(@Param("entities") List<ComPropertyWorker> entities);
+
+    /**
+     * 分页查询物业工作人员
+     * @param page
+     * @param pagePropertyWorkerDTO
+     * @return
+     */
+    IPage<ComPropertyWorkerVO> pagePropertyWorker(@Param("page") Page page, @Param("pagePropertyWorkerDTO") PagePropertyWorkerDTO pagePropertyWorkerDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComRehabilitationPopulationDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComRehabilitationPopulationDAO.java
new file mode 100644
index 0000000..8612d79
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComRehabilitationPopulationDAO.java
@@ -0,0 +1,16 @@
+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.ComRehabilitationPopulationDO;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 17:40:41
+ * @describe mapper类
+ */
+@Mapper
+public interface ComRehabilitationPopulationDAO extends BaseMapper<ComRehabilitationPopulationDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSanshuoEventDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSanshuoEventDao.java
new file mode 100644
index 0000000..10bf9c3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSanshuoEventDao.java
@@ -0,0 +1,34 @@
+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.sanshuo.ComSanshuoEventDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.ComSanshuoEvent;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+
+import java.util.List;
+
+/**
+* @author Frozen
+* @description 针对表【com_sanshuo_event(三说会堂事件类型表)】的数据库操作Mapper
+* @createDate 2022-09-06 14:17:37
+* @Entity generator.entity.ComSanshuoEvent
+*/
+@Mapper
+public interface ComSanshuoEventDao extends BaseMapper<ComSanshuoEvent> {
+
+
+
+    /**
+     * 后台事件类型列表分页
+     * */
+    IPage<ComSanshuoEvent> pageEvent(Page page, @Param("comSanshuoEventDTO") ComSanshuoEventDTO comSanshuoEventDTO);
+}
+
+
+
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSanshuoExpertDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSanshuoExpertDao.java
new file mode 100644
index 0000000..d2c70b5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSanshuoExpertDao.java
@@ -0,0 +1,78 @@
+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.sanshuo.ComSanshuoExpertDTO;
+import com.panzhihua.common.model.dtos.community.sanshuo.IndexDateDTO;
+import com.panzhihua.common.model.vos.sanshuo.ComSanshuoExpertVO;
+import com.panzhihua.common.model.vos.sanshuo.ExpertShowVO;
+import com.panzhihua.service_community.entity.ComSanshuoExpert;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+* @author Frozen
+* @description 针对表【com_sanshuo_expert(三说会堂专家表)】的数据库操作Mapper
+* @createDate 2022-09-06 14:17:37
+* @Entity generator.entity.ComSanshuoExpert
+*/
+@Mapper
+public interface ComSanshuoExpertDao extends BaseMapper<ComSanshuoExpert> {
+
+    /**
+     * 后台获取专家列表
+     * @param page
+     * @param keyWord
+     * @param range 数据范围:1街道下属/2社区下属/3业务中心下属/null三说会堂下属
+     * @param id 社区或街道或业务中心id
+     * @return 处理结果
+     * */
+    IPage<ComSanshuoExpertVO> expertPage(Page page, @Param("keyWord")String keyWord, @Param("range") Integer range, @Param("id")Long id,@Param("level")Integer level,@Param("appId")String appId);
+
+    /**
+     * 专家风采列表
+     * */
+    List<ExpertShowVO> expertShow(String appId);
+
+    /**
+     * 行业分中心分组专家
+     * */
+    List<ExpertShowVO> selectExpertIndustry();
+
+
+    /**
+     * 街道分组专家
+     * */
+    List<ExpertShowVO> selectExpertStreet();
+
+    /**
+     * 社区分组专家
+     * */
+    List<ExpertShowVO> selectExpertCommunity(String appId);
+
+
+    /**
+     * 小程序获取专家列表
+     * */
+    List<ComSanshuoExpert> selectExpertList();
+
+    /**
+     * 是否重名,重复手机号,重复账号
+     * */
+    List<ComSanshuoExpert> selectExpertByNameOrPhoneOrAccount(@Param("dto") ComSanshuoExpertDTO comSanshuoExpertDTO);
+
+    /**
+     * 获取当前级别的专家数量
+     * */
+    Integer selectExpertCount(@Param("dto") IndexDateDTO indexDataDTO);
+
+    Integer selectExpertVoList();
+
+    IPage<ComSanshuoExpertVO> expertList(Page page, @Param("level") Integer level, @Param("id") Long  id,@Param("appId")String appId,@Param("keyWord")String keyWord);
+}
+
+
+
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSanshuoIndustryCenterDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSanshuoIndustryCenterDao.java
new file mode 100644
index 0000000..01bee20
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSanshuoIndustryCenterDao.java
@@ -0,0 +1,43 @@
+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.vos.sanshuo.ComSanShuoIndustryCenterVO;
+import com.panzhihua.common.model.vos.sanshuo.ExpertRangeVO;
+import com.panzhihua.service_community.entity.ComSanshuoIndustryCenter;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+* @author Frozen
+* @description 针对表【com_sanshuo_industry_center(三说会堂-行业分中心表)】的数据库操作Mapper
+* @createDate 2022-09-06 14:17:37
+* @Entity generator.entity.ComSanshuoIndustryCenter
+*/
+@Mapper
+public interface ComSanshuoIndustryCenterDao extends BaseMapper<ComSanshuoIndustryCenter> {
+
+    IPage<ComSanShuoIndustryCenterVO> pageIndustryCenter(Page page, @Param("keyWord") String keyWord);
+
+    /**
+     * 获取业务中心id,名称
+     * */
+    List<ExpertRangeVO> indstryList();
+
+    /**
+     * 街道id,名称
+     * */
+    List<ExpertRangeVO> streetList();
+
+    /**
+     * 社区id,名称
+     * */
+    List<ExpertRangeVO> communityList();
+}
+
+
+
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComScreenDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComScreenDao.java
new file mode 100644
index 0000000..db31182
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComScreenDao.java
@@ -0,0 +1,63 @@
+package com.panzhihua.service_community.dao;
+
+import com.panzhihua.common.model.vos.DateVO;
+import com.panzhihua.common.model.vos.community.building.admin.BuildingListHeaderStatisticsAdminVo;
+import com.panzhihua.common.model.vos.community.building.admin.PageBuildingListAdminVo;
+import com.panzhihua.common.model.vos.puda.*;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface ComScreenDao {
+    /**
+     * 自治动态统计
+     * @return 处理结果
+     * */
+    DynamicVO autonomyDynamic(Long communityId);
+
+    /**
+     * 红色物业
+     * @return 处理结果
+     * */
+    List<PropertyVO> propertyData(Long community);
+
+    /**
+     * 党建数据
+     * @return 处理结果
+     * */
+    PartyDataVO partyData(Long communityId);
+
+
+    /**
+     * 小区院落
+     * @return 处理结果
+     * */
+    YardVO yard(Long communityId);
+
+    /**
+     * 基础数据
+     * @return 处理结果
+     * */
+    BasicDataVO basicData(Long communityId);
+
+    CitizenInfoVO ageRange(@Param("vo") DateVO vo);
+
+    /**
+     * 特殊人群统计
+     * @return
+     * */
+    List<SpecialPeopleVO> specialPeople(Long communityId);
+
+    PageBuildingListAdminVo peopleInfoAdmin(Long communityId);
+
+    BuildingListHeaderStatisticsAdminVo buildingListHeaderStatisticsAdmin(Long communityId);
+
+    /**
+     * 建筑数量统计
+     * */
+    int assetAnalysis(Long communityId);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSentencePopulationDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSentencePopulationDAO.java
new file mode 100644
index 0000000..3a210ca
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSentencePopulationDAO.java
@@ -0,0 +1,16 @@
+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.ComSentencePopulationDO;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 17:41:26
+ * @describe mapper类
+ */
+@Mapper
+public interface ComSentencePopulationDAO extends BaseMapper<ComSentencePopulationDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopCartDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopCartDAO.java
new file mode 100644
index 0000000..f83cb32
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopCartDAO.java
@@ -0,0 +1,16 @@
+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.ComShopCartDO;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:14
+ * @describe 购物车表mapper类
+ */
+@Mapper
+public interface ComShopCartDAO extends BaseMapper<ComShopCartDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerEvaluateDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerEvaluateDAO.java
new file mode 100644
index 0000000..c9b140d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerEvaluateDAO.java
@@ -0,0 +1,52 @@
+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.shop.PageComShopFlowerEvaluateDTO;
+import com.panzhihua.common.model.vos.shop.ComShopFlowerEvaluateVO;
+import com.panzhihua.service_community.model.dos.ComShopFlowerEvaluateDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @ClassName: ComShopFlowerEvaluateMapper
+ * @Author: yh
+ * @Date: 2022/11/9 16:46
+ * @Description: 评价
+ */
+@Mapper
+public interface ComShopFlowerEvaluateDAO extends BaseMapper<ComShopFlowerEvaluateDO> {
+    /**
+     * 分页查询评价
+     *
+     * @param page
+     * @param pageComShopFlowerEvaluateDTO
+     * @return
+     */
+    IPage<ComShopFlowerEvaluateVO> pageEvaluate(@Param("page") Page page, @Param("pageComShopFlowerEvaluateDTO") PageComShopFlowerEvaluateDTO pageComShopFlowerEvaluateDTO);
+
+
+    List<ComShopFlowerEvaluateVO> selectListLimit(@Param("goodsId") Long goodsId);
+
+    /**
+     * 根据订单id查询评价
+     *
+     * @param orderNo
+     * @return
+     */
+    ComShopFlowerEvaluateVO selectByOrderNo(@Param("orderNo") String orderNo);
+
+
+    /**
+     * 统计商家评分
+     * @param storeId
+     * @return
+     */
+    BigDecimal statisticsScore(@Param("storeId")  Long storeId);
+
+    Integer selectCountByGoodsId(@Param("goodsId") Long goodsId);
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerGoodsAttrDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerGoodsAttrDAO.java
new file mode 100644
index 0000000..0a8436b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerGoodsAttrDAO.java
@@ -0,0 +1,21 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.common.model.vos.shop.ComShopFlowerGoodsAttrVO;
+import com.panzhihua.service_community.model.dos.ComShopFlowerGoodsAttrDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @auther yh
+ * @create 2022-10-21 09:36:09
+ * @describe 商品规格表mapper类
+ */
+@Mapper
+public interface ComShopFlowerGoodsAttrDAO extends BaseMapper<ComShopFlowerGoodsAttrDO> {
+
+    List<ComShopFlowerGoodsAttrVO> getGoodsAttr(@Param("goodsId") Long goodsId);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerGoodsDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerGoodsDAO.java
new file mode 100644
index 0000000..cae2e8a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerGoodsDAO.java
@@ -0,0 +1,55 @@
+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.shop.ComShopFlowerGoodsDTO;
+import com.panzhihua.common.model.dtos.shop.PageComShopFlowerGoodsDTO;
+import com.panzhihua.common.model.dtos.shop.PageComShopFlowerStoreDTO;
+import com.panzhihua.common.model.vos.shop.ComShopFlowerGoodsVO;
+import com.panzhihua.common.model.vos.shop.ComShopOrderStoreIdCountVO;
+import com.panzhihua.common.model.vos.shop.PageShopFlowerGoodsVO;
+import com.panzhihua.service_community.model.dos.ComShopFlowerGoodsDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @auther yh
+ * @create 2022-10-21 09:36:09
+ * @describe 商品表mapper类
+ */
+@Mapper
+public interface ComShopFlowerGoodsDAO extends BaseMapper<ComShopFlowerGoodsDO> {
+
+    IPage<PageShopFlowerGoodsVO> pageShopGoods(@Param("page") Page page, @Param("pageComShopFlowerGoodsDTO") PageComShopFlowerGoodsDTO pageComShopFlowerGoodsDTO);
+
+    /**
+     * 根据店铺id查询商品列表
+     *
+     * @param page                      分页参数
+     * @param pageComShopFlowerStoreDTO 请求参数
+     * @return 分页商品列表
+     */
+    IPage<ComShopFlowerGoodsVO> pageShopGoodsByStoreId(@Param("page") Page page, @Param("pageComShopFlowerStoreDTO") PageComShopFlowerStoreDTO pageComShopFlowerStoreDTO);
+
+    /**
+     * 分页查询商品列表
+     *
+     * @param page                  分页参数
+     * @param comShopFlowerGoodsDTO 请求参数
+     * @return 商品列表
+     */
+    IPage<ComShopFlowerGoodsVO> pageShopGoodByApps(@Param("page") Page page, @Param("comShopFlowerGoodsDTO") ComShopFlowerGoodsDTO comShopFlowerGoodsDTO);
+
+    /**
+     * 商店内在售商品
+     *
+     * @param storeId
+     * @return
+     */
+    Integer selectCountSaleByStoreId(@Param("storeId") Long storeId);
+
+    List<ComShopOrderStoreIdCountVO> countSaleByUserId(@Param("userId") Long userId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerGoodsViewStatisticsDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerGoodsViewStatisticsDAO.java
new file mode 100644
index 0000000..fa31ad0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerGoodsViewStatisticsDAO.java
@@ -0,0 +1,65 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientViewStatisticsVO;
+import com.panzhihua.service_community.model.dos.ComShopFlowerGoodsViewStatisticsDO;
+import com.panzhihua.service_community.model.dos.ConvenientViewStatisticsDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @title: ConvenientViewStatisticsDAO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务商品浏览量统计DAO
+ * @author: hans
+ * @date: 2021/09/23 16:53
+ */
+@Mapper
+public interface ComShopFlowerGoodsViewStatisticsDAO extends BaseMapper<ComShopFlowerGoodsViewStatisticsDO> {
+
+    /**
+     * 创建当天统计数据
+     * @param goodsId
+     * @return
+     */
+    int createTodayStatistic(@Param("goodsId") Long goodsId, @Param("nowDate") String nowDate);
+
+    /**
+     * 增加当天浏览量
+     * @param goodsId
+     * @param nowDate
+     * @return
+     */
+    int incrViewNum(@Param("goodsId") Long goodsId, @Param("nowDate") String nowDate);
+
+    /**
+     * 获取月浏览量
+     * @param goodsId
+     * @param moth
+     * @return
+     */
+    int selectMonthViewNum(@Param("goodsId") Long goodsId, @Param("moth") String moth);
+
+    /**
+     * 获取当天浏览量
+     * @param goodsId
+     * @param day
+     * @return
+     */
+    int selectDayViewNum(@Param("goodsId") Long goodsId, @Param("day") String day);
+
+    /**
+     * 获取商品总浏览量
+     * @return
+     */
+    List<ConvenientViewStatisticsVO> selectSumForViewNum();
+
+    /**
+     * 获取商品总浏览量
+     * @param goodsId
+     * @return
+     */
+    int selectTotalViewNum(@Param("goodsId") Long goodsId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerOrderDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerOrderDAO.java
new file mode 100644
index 0000000..c13c93e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerOrderDAO.java
@@ -0,0 +1,125 @@
+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.shop.PageComFlowerOrderListDTO;
+import com.panzhihua.common.model.dtos.shop.PageComShopOrderSearchDTO;
+import com.panzhihua.common.model.vos.shop.*;
+import com.panzhihua.service_community.model.dos.ComShopFlowerOrderDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @ClassName: ComShopFlowerOrderMapper
+ * @Author: yh
+ * @Date: 2022/11/9 16:46
+ * @Description: TODO
+ */
+@Mapper
+public interface ComShopFlowerOrderDAO extends BaseMapper<ComShopFlowerOrderDO> {
+
+
+    IPage<ComShopFlowerOrderPageVO> pageOrderList(@Param("page") Page page, @Param("comOrderListDTO") PageComFlowerOrderListDTO comOrderListDTO);
+
+
+    IPage<ComShopFlowerOrderPageVO> pageOrderListNoDelivery(@Param("page") Page page, @Param("comOrderListDTO") PageComFlowerOrderListDTO comOrderListDTO);
+
+
+    IPage<ComShopOrderSearchVO> pageOrderBy(@Param("page") Page page,
+                                            @Param("pageComShopOrderSearchDTO") PageComShopOrderSearchDTO pageComShopOrderSearchDTO);
+
+    /**
+     * 修改配送中状态
+     *
+     * @param orderIds
+     * @param deliveryId
+     * @param status
+     * @param deliveryTime
+     */
+    void updateOrder(@Param("orderIds") List<Long> orderIds,
+                     @Param("deliveryId") Long deliveryId,
+                     @Param("deliveryNo") String deliveryNo,
+                     @Param("status") int status,
+                     @Param("deliveryTime") Date deliveryTime);
+
+    /**
+     * 自提送达后修改配送状态和时间
+     *
+     * @param deliveryId
+     * @param serviceTime
+     * @param status
+     */
+    void updateOrderStatus(@Param("deliveryId") Long deliveryId, @Param("serviceTime") Date serviceTime, @Param("status") int status);
+
+    IPage<ComShopFlowerOrderStoreListVO> pageOrderByStoreId(@Param("page") Page page, @Param("comOrderListDTO") PageComFlowerOrderListDTO comOrderListDTO);
+
+    /**
+     * 根据类型统计订单数量
+     *
+     * @param deliveryType
+     * @return
+     */
+    List<ComShopOrderCountVO> selectCountByDeliveryType(@Param("deliveryType") Integer deliveryType, @Param("storeId") Long storeId);
+
+
+    List<ComShopOrderStoreIdCountVO> selectCountByStoreId(@Param("storeId") Long storeId, @Param("deliveryType") Integer deliveryType);
+
+    List<ComShopOrderStoreIdNumVO> selectSumAmountByStoreId(@Param("storeId") Long storeId);
+
+    /**
+     * 获取商家总营业额
+     *
+     * @param storeId
+     * @return
+     */
+    BigDecimal selectTurnover(@Param("storeId") Long storeId);
+
+    /**
+     * 获取商家可结算额度 15天以前的完成的订单
+     *
+     * @param storeId
+     * @return
+     */
+    BigDecimal selectSettlement(@Param("storeId") Long storeId);
+
+    List<ComShopOrderStoreIdNumVO> selectSumOrderAndAmountByStoreId(@Param("storeId") Long storeId);
+
+    /**
+     * 查询近15天的订单量
+     *
+     * @param storeId
+     * @return
+     */
+    List<ComShopOrderStoreIdCountVO> selectCountOrderDayByStoreId(@Param("storeId") Long storeId, @Param("days") Integer days);
+
+    /**
+     * 查询当年月份的订单量
+     *
+     * @param storeId
+     * @return
+     */
+    List<ComShopOrderStoreIdCountVO> selectCountOrderMonthByStoreId(@Param("storeId") Long storeId);
+
+    IPage<ComShopFlowerOrderStoreListVO> pageOrderByDeliveryNo(@Param("page") Page page, @Param("comOrderListDTO") PageComFlowerOrderListDTO comOrderListDTO);
+
+    /**
+     * 查询近n天的营收
+     *
+     * @param storeId
+     * @return
+     */
+    List<ComShopOrderStoreIdNumVO> selectOrderSumPayDayByStoreId(@Param("storeId") Long storeId, @Param("days") Integer days);
+
+    /**
+     * 查询当年月份的营收
+     *
+     * @param storeId
+     * @return
+     */
+    List<ComShopOrderStoreIdNumVO> selectOrderSumMonthByStoreId(@Param("storeId") Long storeId);
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerOrderDeliveryDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerOrderDeliveryDAO.java
new file mode 100644
index 0000000..1163dce
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerOrderDeliveryDAO.java
@@ -0,0 +1,31 @@
+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.shop.PageComFlowerOrderDeliveryDTO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientElevatingPointVO;
+import com.panzhihua.common.model.vos.shop.ComShopFlowerOrderDeliveryVO;
+import com.panzhihua.service_community.model.dos.ComShopFlowerOrderDeliveryDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @ClassName: ComShopFlowerOrderDeliveryMapper
+ * @Author: yh
+ * @Date: 2022/11/15 14:36
+ * @Description: TODO
+ */
+@Mapper
+public interface ComShopFlowerOrderDeliveryDAO extends BaseMapper<ComShopFlowerOrderDeliveryDO> {
+    /**
+     * 分页查询配送单
+     *
+     * @param page
+     * @param pageComFlowerOrderDeliveryDTO
+     * @return
+     */
+    IPage<ComShopFlowerOrderDeliveryVO> pageDelivery(@Param("page") Page page, @Param("pageComFlowerOrderDeliveryDTO") PageComFlowerOrderDeliveryDTO pageComFlowerOrderDeliveryDTO);
+
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerOrderGoodsDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerOrderGoodsDAO.java
new file mode 100644
index 0000000..ab7723c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerOrderGoodsDAO.java
@@ -0,0 +1,23 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_community.model.dos.ComShopFlowerOrderGoodsDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @ClassName: ComShopFlowerOrderGoodsMapper
+ * @Author: yh
+ * @Date: 2022/11/9 16:46
+ * @Description: TODO
+ */
+@Mapper
+public interface ComShopFlowerOrderGoodsDAO extends BaseMapper<ComShopFlowerOrderGoodsDO> {
+    /**
+     * 统计商店的总销量
+     *
+     * @param storeId
+     * @return
+     */
+    Integer selectSumAmount(@Param("storeId") Long storeId);
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerOrderOperateDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerOrderOperateDAO.java
new file mode 100644
index 0000000..72bc85c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerOrderOperateDAO.java
@@ -0,0 +1,15 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_community.model.dos.ComShopFlowerOrderOperateDO;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @ClassName:  ComShopFlowerOrderOperateMapper
+ * @Author: yh
+ * @Date: 2022/11/9 16:46
+ * @Description: TODO
+ */
+@Mapper
+public interface ComShopFlowerOrderOperateDAO extends BaseMapper<ComShopFlowerOrderOperateDO> {
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerOrderPayDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerOrderPayDAO.java
new file mode 100644
index 0000000..707deb7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerOrderPayDAO.java
@@ -0,0 +1,31 @@
+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.shop.PageComShopFlowerOrderPayDTO;
+import com.panzhihua.common.model.vos.shop.ComShopFlowerOrderPayVO;
+import com.panzhihua.service_community.model.dos.ComShopFlowerOrderPayDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @ClassName: ComShopFlowerOrderPayMapper
+ * @Author: yh
+ * @Date: 2022/11/9 16:46
+ * @Description: TODO
+ */
+@Mapper
+public interface ComShopFlowerOrderPayDAO extends BaseMapper<ComShopFlowerOrderPayDO> {
+
+
+    /**
+     * 根据类型和商家id分页查询
+     * @param page
+     * @param pageComShopFlowerOrderPayDTO
+     * @return
+     */
+    IPage<ComShopFlowerOrderPayVO> pageOrderPay(@Param("page") Page page, @Param("pageComShopFlowerOrderPayDTO") PageComShopFlowerOrderPayDTO pageComShopFlowerOrderPayDTO);
+
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerRefundOrderDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerRefundOrderDAO.java
new file mode 100644
index 0000000..59e68b2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerRefundOrderDAO.java
@@ -0,0 +1,40 @@
+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.shop.PageComOrderRefundDTO;
+import com.panzhihua.common.model.vos.shop.ComShopFlowerRefundOrderVO;
+import com.panzhihua.common.model.vos.shop.ComShopOrderCountVO;
+import com.panzhihua.service_community.model.dos.ComShopFlowerRefundOrderDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @ClassName: ComShopFlowerRefundOrderMapper
+ * @Author: yh
+ * @Date: 2022/11/9 16:46
+ * @Description: TODO
+ */
+@Mapper
+public interface ComShopFlowerRefundOrderDAO extends BaseMapper<ComShopFlowerRefundOrderDO> {
+    /**
+     * 用户 分页查询退款订单
+     *
+     * @param page
+     * @param pageComOrderRefundDTO
+     * @return
+     */
+    IPage<ComShopFlowerRefundOrderVO> pageRefundOrder(@Param("page") Page page, @Param("pageComOrderRefundDTO") PageComOrderRefundDTO pageComOrderRefundDTO);
+
+    Integer selectCountByStoreId(@Param("storeId") Long storeId);
+
+    List<ComShopOrderCountVO> selectCountGroupStatus(@Param("storeId") Long storeId);
+
+    int updateCancel(@Param("id") Long id, @Param("status") Integer status);
+
+    int selectCountRefundNowByOrderId(@Param("orderId") Long orderId);
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerUserAddressDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerUserAddressDAO.java
new file mode 100644
index 0000000..69367a0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopFlowerUserAddressDAO.java
@@ -0,0 +1,28 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.shop.ComShopUserAddressVO;
+import com.panzhihua.service_community.model.dos.ComShopFlowerUserAddressDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+
+/**
+ * @ClassName: ComShopFlowerUserAddressMapper
+ * @Author: yh
+ * @Date: 2022/11/9 16:46
+ * @Description: TODO
+ */
+@Mapper
+public interface ComShopFlowerUserAddressDAO extends BaseMapper<ComShopFlowerUserAddressDO> {
+
+
+    @Select("select id,`name`,phone,province_code,province_name,city_code,city_name"
+            + ",district_code,district_name,detail_address,is_default "
+            + " from com_shop_flower_user_address where delete_status = 2 and user_id = #{userId} order by create_at desc")
+    List<ComShopUserAddressVO> pageUserAddressList(Page page, @Param("userId") Long userId);
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopGoodsAttrDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopGoodsAttrDAO.java
new file mode 100644
index 0000000..04fdc53
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopGoodsAttrDAO.java
@@ -0,0 +1,24 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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.common.model.vos.shop.ComShopGoodsAttrVO;
+import com.panzhihua.service_community.model.dos.ComShopGoodsAttrDO;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:49
+ * @describe 商品规格表mapper类
+ */
+@Mapper
+public interface ComShopGoodsAttrDAO extends BaseMapper<ComShopGoodsAttrDO> {
+
+    @Select("select id,goods_id as goodsId,store_id as storeId,goods_name as goodsName,goods_attr as goodsAttr,stock,sale,attr_pic as attrPic,is_default as isDefault,price from com_shop_goods_attr where goods_id = #{goodsId}")
+    List<ComShopGoodsAttrVO> getGoodsAttr(@Param("goodsId") Long goodsId);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopGoodsDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopGoodsDAO.java
new file mode 100644
index 0000000..b784743
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopGoodsDAO.java
@@ -0,0 +1,79 @@
+package com.panzhihua.service_community.dao;
+
+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;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.shop.ComShopGoodsDTO;
+import com.panzhihua.common.model.dtos.shop.PageComShopGoodsDTO;
+import com.panzhihua.common.model.dtos.shop.PageComShopStoreDTO;
+import com.panzhihua.common.model.vos.shop.ComShopGoodsVO;
+import com.panzhihua.common.model.vos.shop.PageShopGoodsVO;
+import com.panzhihua.service_community.model.dos.ComShopGoodsDO;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:35
+ * @describe 商品表mapper类
+ */
+@Mapper
+public interface ComShopGoodsDAO extends BaseMapper<ComShopGoodsDO> {
+
+    @Select("<script>"
+        + "select c.id,c.type_id,css.name as storeName,c.name,c.store_id,c.goods_pic,c.images,c.status,c.sale,c.original_price,c.price,c.unit,c.order,c.stock,c.details,c.remark,c.goods_describe,c.delivery_type,c.delete_status,c.create_at,c.update_at from com_shop_goods c \n"
+        + " left join com_shop_store css on c.store_id=css.id\n" + " <where>"
+        + " and c.delete_status = 1 and css.delete_status = 1 "
+        + "<if test='pageComShopGoodsDTO.storeName != null and pageComShopGoodsDTO.storeName.trim() != &quot;&quot;'>"
+        + "and css.name like concat('%',#{pageComShopGoodsDTO.storeName},'%') \n" + " </if> "
+        + "<if test='pageComShopGoodsDTO.name != null and pageComShopGoodsDTO.name.trim() != &quot;&quot;'>"
+        + "and c.name like concat('%',#{pageComShopGoodsDTO.name},'%') \n" + " </if> "
+        + "<if test='pageComShopGoodsDTO.storeId != null'>" + "and css.id=#{pageComShopGoodsDTO.storeId} \n" + " </if> "
+        + "<if test='pageComShopGoodsDTO.status != null'>"
+        + "and c.status like concat('%',#{pageComShopGoodsDTO.status},'%') \n" + " </if> " + " </where>"
+        + " order by c.create_at desc" + "</script>")
+    IPage<PageShopGoodsVO> pageShopGoods(Page page,
+        @Param("pageComShopGoodsDTO") PageComShopGoodsDTO pageComShopGoodsDTO);
+
+    /**
+     * 根据店铺id查询商品列表
+     *
+     * @param page
+     *            分页参数
+     * @param pageComShopStoreDTO
+     *            请求参数
+     * @return 分页商品列表
+     */
+    @Select("<script> " + "select id,`name`,store_id,goods_pic,images,`status`,sale,original_price,price"
+        + ",unit,`order`,stock,details,delivery_type from com_shop_goods"
+        + " where store_id = #{pageComShopStoreDTO.storeId} and delete_status = 1 and status = 1"
+        + " order by sale desc,create_at desc " + "</script> ")
+    IPage<ComShopGoodsVO> pageShopGoodsByStoreId(Page page,
+        @Param("pageComShopStoreDTO") PageComShopStoreDTO pageComShopStoreDTO);
+
+    /**
+     * 分页查询商品列表
+     *
+     * @param page
+     *            分页参数
+     * @param comShopGoodsDTO
+     *            请求参数
+     * @return 商品列表
+     */
+    @Select("<script> "
+        + "select csg.id,csg.`name`,csg.store_id,csg.goods_pic,csg.images,csg.`status`,csg.sale,csg.original_price "
+        + ",csg.price,csg.unit,csg.`order`,csg.stock,csg.details,csg.delivery_type, csg.create_at "
+        + " from com_shop_goods as csg " + " left join com_shop_store as css on css.id = csg.store_id "
+        + " where 1=1  and csg.delete_status = 1 and css.`status` = 1"
+        + "<if test='comShopGoodsDTO.name != null and comShopGoodsDTO.name !=&quot;&quot;'>"
+        + " AND csg.`name` like concat('%',#{comShopGoodsDTO.name},'%') " + " </if> "
+        + "<if test='comShopGoodsDTO.status != null '>" + " AND csg.`status` = #{comShopGoodsDTO.status}" + " </if> "
+        + "<if test='comShopGoodsDTO.storeId != null '>" + " AND csg.store_id = #{comShopGoodsDTO.storeId} " + " </if> "
+        + "<if test='comShopGoodsDTO.status != null '>" + " AND csg.status = #{comShopGoodsDTO.status} " + " </if> "
+        + "<if test='comShopGoodsDTO.deliveryType != null '>"
+        + " AND csg.delivery_type = #{comShopGoodsDTO.deliveryType} " + " </if> "
+        + " order by sale desc,create_at desc " + " </script>")
+    IPage<ComShopGoodsVO> pageShopGoodByApps(Page page, @Param("comShopGoodsDTO") ComShopGoodsDTO comShopGoodsDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopOperLogDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopOperLogDAO.java
new file mode 100644
index 0000000..2f29eda
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopOperLogDAO.java
@@ -0,0 +1,16 @@
+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.ComShopOperLogDO;
+
+/**
+ * @author cedoo
+ * @create 2021-4-17 10:55:15
+ * @describe 订单日志mapper类
+ */
+@Mapper
+public interface ComShopOperLogDAO extends BaseMapper<ComShopOperLogDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopOrderDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopOrderDAO.java
new file mode 100644
index 0000000..85333ab
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopOrderDAO.java
@@ -0,0 +1,167 @@
+package com.panzhihua.service_community.dao;
+
+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;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.shop.*;
+import com.panzhihua.common.model.vos.shop.*;
+import com.panzhihua.service_community.model.dos.ComShopOrderDO;
+
+/**
+ * @auther cedoo
+ * @create 2021-4-17 17:35:51
+ * @describe 订单表mapper类
+ */
+@Mapper
+public interface ComShopOrderDAO extends BaseMapper<ComShopOrderDO> {
+
+    @Select("<script> "
+        + "select id as orderId,order_no,store_id,`status`,pay_status,receiver_id,total_amount as orderTotal,pay_amount,delivery_type,remark,create_at from com_shop_order as cso"
+        + " where 1=1  and cso.delete_status = 1 and cso.user_id = #{comOrderListDTO.userId}"
+        + "<if test='comOrderListDTO.status != null'>" + " AND cso.status = #{comOrderListDTO.status} " + " </if> "
+        + " order by create_at desc " + " </script>")
+    IPage<ComShopOrderPageVO> pageOrderList(Page page, @Param("comOrderListDTO") PageComOrderListDTO comOrderListDTO);
+
+    @Select("<script> "
+        + "SELECT distinct  sr.id, sr.store_id, sr.user_id, su.phone AS userName , sr.order_no, sr.pay_no, \n"
+        + "    sr.wx_tarde_no, sr.status, sr.pay_status, sr.receiver_id, \n"
+        + "    sr.total_amount, sr.discount_amount, sr.pay_amount, sr.pay_type,  \n"
+        + "    sr.pay_time, sr.delivery_type, sr.delivery_status, sr.logistics_company, \n"
+        + "    sr.logistics_no, sr.create_at, uad.name as receiver_name, uad.phone as receiver_phone, group_concat(og.goods_name) as goodsName, ss.name as store_name   \n"
+        + " FROM com_shop_order sr LEFT JOIN com_shop_order_goods og ON sr.id = og.order_id \n"
+        + " LEFT JOIN com_shop_goods_attr ga ON og.goods_attr_id = ga.id \n"
+        + " LEFT JOIN sys_user su ON sr.user_id = su.user_id \n"
+        + " LEFT JOIN com_shop_user_address uad ON sr.receiver_id = uad.id \n"
+        + " LEFT JOIN com_shop_store ss ON sr.store_id = ss.id \n" + " WHERE sr.delete_status = 1"
+        + "<if test='pageComShopOrderSearchDTO.userId != null'>"
+        + " AND sr.user_id = #{pageComShopOrderSearchDTO.userId} " + " </if> "
+        + "<if test='pageComShopOrderSearchDTO.createAtStart != null'>"
+        + " AND #{pageComShopOrderSearchDTO.createAtStart}  <![CDATA[<=]]>  sr.create_at   " + " </if> "
+        + "<if test='pageComShopOrderSearchDTO.createAtEnd != null'>"
+        + " AND sr.create_at <![CDATA[<=]]> #{pageComShopOrderSearchDTO.createAtEnd} " + " </if> "
+        + "<if test='pageComShopOrderSearchDTO.orderNo != null  '>"
+        + " AND sr.order_no like concat('%', #{pageComShopOrderSearchDTO.orderNo}, '%') " + " </if> "
+        + "<if test='pageComShopOrderSearchDTO.userAccount != null  '>"
+        + " AND su.phone like concat('%', #{pageComShopOrderSearchDTO.userAccount}, '%') " + " </if> "
+        + "<if test='pageComShopOrderSearchDTO.receiverAccount != null  '>"
+        + " AND uad.name like concat('%', #{pageComShopOrderSearchDTO.receiverAccount}, '%')  " + " </if> "
+        + "<if test='pageComShopOrderSearchDTO.receiverPhone != null '>"
+        + " AND uad.phone like concat('%',#{pageComShopOrderSearchDTO.receiverPhone}, '%') " + " </if> "
+        + "<if test='pageComShopOrderSearchDTO.goodsName != null'>"
+        + " AND og.goods_name like concat('%',  #{pageComShopOrderSearchDTO.goodsName}, '%') " + " </if> "
+        + "<if test='pageComShopOrderSearchDTO.status != null '>"
+        + " AND sr.status = #{pageComShopOrderSearchDTO.status} " + " </if> "
+        + "<if test='pageComShopOrderSearchDTO.storeName != null '>"
+        + " AND ss.name like concat('%', #{pageComShopOrderSearchDTO.storeName}, '%') " + " </if> "
+        + "<if test='pageComShopOrderSearchDTO.storeId != null '>"
+        + " AND ss.id = #{pageComShopOrderSearchDTO.storeId} " + " </if> "
+        + "<if test='pageComShopOrderSearchDTO.storeUserId != null '>"
+        + " AND ss.sys_user_id = #{pageComShopOrderSearchDTO.storeUserId} " + " </if> " + " GROUP BY sr.id "
+        + " ORDER BY sr.create_at DESC " + "</script>")
+    IPage<ComShopOrderSearchVO> pageOrderBy(Page page,
+        @Param("pageComShopOrderSearchDTO") PageComShopOrderSearchDTO pageComShopOrderSearchDTO);
+
+    @Select("<script> "
+        + "SELECT sr.total_amount AS goods_total, GROUP_CONCAT(og.goods_name  separator  '\n') AS goods_name , sum(og.amount) AS goods_count, "
+        + " su.phone AS account, uad.name AS receiver, uad.phone AS receiverPhone, \n"
+        + " concat(uad.province_name, uad.city_name, uad.district_name, uad.detail_address) AS receiver_address, ss.name AS storeName, sr.remark,"
+        + "  CASE\n" + "    WHEN sr.`status` = 1 THEN '待付款' \n" + "    WHEN sr.`status` = 2 THEN '待发货' \n"
+        + "    WHEN sr.`status` = 3 THEN '待收货' \n" + "    WHEN sr.`status` = 4 THEN '待评价' \n"
+        + "    WHEN sr.`status` = 5 THEN '已完成' \n" + "    WHEN sr.`status` = 5 THEN '已取消' \n" + "    ELSE  '---' \n"
+        + " END AS 'status' , " + " sr.create_at, "
+        + " CASE WHEN sr.pay_time IS NOT NULL THEN sr.pay_time ELSE '---' END  AS pay_time  "
+        + " FROM com_shop_order sr LEFT JOIN com_shop_order_goods og ON sr.id = og.order_id \n"
+        + " LEFT JOIN com_shop_goods_attr ga ON og.goods_attr_id = ga.id \n"
+        + " LEFT JOIN sys_user su ON sr.user_id = su.user_id \n"
+        + " LEFT JOIN com_shop_user_address uad ON sr.receiver_id = uad.id \n"
+        + " LEFT JOIN com_shop_store ss ON sr.store_id = ss.id \n" + " WHERE sr.delete_status = 1"
+        + "<if test='comShopOrderExportDTO.userId != null'>" + " AND sr.user_id = #{comShopOrderExportDTO.userId} "
+        + " </if> " + "<if test='comShopOrderExportDTO.storeUserId != null '>"
+        + " AND ss.sys_user_id = #{comShopOrderExportDTO.storeUserId} " + " </if> "
+        + "<if test='comShopOrderExportDTO.orderIds != null and comShopOrderExportDTO.orderIds.length>0 '>"
+        + " AND sr.id in "
+        + "<foreach collection='comShopOrderExportDTO.orderIds' item='id' index='index' open='(' close=')' separator=',' >\n"
+        + "  #{id}" + "</foreach>" + " </if> " +
+
+        "<if test='comShopOrderExportDTO.orderIds == null or comShopOrderExportDTO.orderIds.length==0 '>"
+        + "<if test='comShopOrderExportDTO.createAtStart != null '>"
+        + " AND #{comShopOrderExportDTO.createAtStart}  <![CDATA[<=]]>  sr.create_at   " + " </if> "
+        + "<if test='comShopOrderExportDTO.createAtEnd != null'>"
+        + " AND sr.create_at <![CDATA[<=]]> #{comShopOrderExportDTO.createAtEnd} " + " </if> "
+        + "<if test='comShopOrderExportDTO.orderNo != null '>" + " AND sr.order_no = #{comShopOrderExportDTO.orderNo} "
+        + " </if> " + "<if test='comShopOrderExportDTO.userAccount != null  '>"
+        + " AND su.phone = #{comShopOrderExportDTO.userAccount} " + " </if> "
+        + "<if test='comShopOrderExportDTO.receiverAccount != null'>"
+        + " AND uad.name = #{comShopOrderExportDTO.receiverAccount} " + " </if> "
+        + "<if test='comShopOrderExportDTO.receiverPhone != null '>"
+        + " AND uad.phone = #{comShopOrderExportDTO.receiverPhone} " + " </if> "
+        + "<if test='comShopOrderExportDTO.goodsName != null '>"
+        + " AND og.name like concat('%',  #{comShopOrderExportDTO.goodsName}, '%') " + " </if> "
+        + "<if test='comShopOrderExportDTO.status != null  '>" + " AND sr.status = #{comShopOrderExportDTO.status} "
+        + " </if> " + " </if> " + " GROUP BY sr.id ORDER BY sr.create_at " + "</script>")
+    IPage<ExcelShopOrderDTO> selectOrderExport(Page page,
+        @Param("comShopOrderExportDTO") ComShopOrderExportDTO comShopOrderExportDTO);
+
+    @Select("<script> " + "SELECT sr.total_amount, sr.pay_time, sr.order_no, \n"
+        + " CASE  WHEN sr.pay_type = 1 THEN '微信支付'  ELSE '' END AS payType, \n" + " '收入' AS 'type' "
+        + "FROM com_shop_order  sr LEFT JOIN com_shop_store st ON sr.store_id = st.id \n"
+        + " WHERE sr.pay_status = 2 AND sr.delete_status=1 " + "<if test='comShopFundsExportDTO.userId != null'>"
+        + " AND st.sys_user_id = #{comShopFundsExportDTO.userId} " + " </if> "
+        + "<if test='comShopFundsExportDTO.orderIds != null and comShopFundsExportDTO.orderIds.length>0 '>"
+        + " AND sr.id in "
+        + "<foreach collection='comShopFundsExportDTO.orderIds' item='id' index='index' open='(' close=')' separator=',' >\n"
+        + "  #{id}" + "</foreach>" + " </if> "
+        + "<if test='comShopFundsExportDTO.orderIds == null or comShopFundsExportDTO.orderIds.length==0 '>"
+        + "<if test='comShopFundsExportDTO.payTimeStart != null'>"
+        + " AND #{comShopFundsExportDTO.payTimeStart}  <![CDATA[<=]]>  sr.pay_time   " + " </if> "
+        + "<if test='comShopFundsExportDTO.payTimeEnd != null'>"
+        + " AND sr.pay_time <![CDATA[<=]]> #{comShopFundsExportDTO.payTimeEnd} " + " </if> "
+        + "<if test='comShopFundsExportDTO.orderNo != null '>" + " AND sr.order_no = #{comShopFundsExportDTO.orderNo} "
+        + " </if> " + " </if> " + " GROUP BY sr.id ORDER BY sr.create_at DESC " + "</script>")
+    IPage<ExcelShopFundsDTO> selectFundsExport(Page page,
+        @Param("comShopFundsExportDTO") ComShopFundsExportDTO comShopFundsExportDTO);
+
+    @Select("<script> " + " SELECT sys_user_id,\n"
+        + " COALESCE(SUM(CASE WHEN abt.days = DATE_FORMAT(NOW(),'%Y%m%d') THEN abt.t END), 0) AS todayTotal,\n"
+        + " COALESCE(SUM(CASE WHEN abt.days = DATE_FORMAT(NOW(),'%Y%u') THEN abt.t END), 0) AS weekTotal,\n"
+        + " COALESCE(SUM(CASE WHEN abt.days = DATE_FORMAT(NOW(),'%Y%m') THEN abt.t END), 0) AS monthTotal\n"
+        + "FROM (\n" + "SELECT ss.sys_user_id, sum(sr.pay_amount) AS t ,  DATE_FORMAT(sr.pay_time,'%Y%m%d') days\n"
+        + "FROM com_shop_order sr LEFT JOIN  com_shop_store ss ON sr.store_id = ss.id\n"
+        + "WHERE sr.pay_status = 2  AND DATE_FORMAT(sr.pay_time,'%Y%m%d') = DATE_FORMAT(NOW(),'%Y%m%d')\n"
+        + "<if test='userId!=null and userId!=0L'>" + " and ss.sys_user_id = #{userId}\n" + "</if>" + "GROUP BY days\n"
+        + "UNION \n" + "SELECT ss.sys_user_id, sum(sr.pay_amount) AS t,  DATE_FORMAT(sr.pay_time,'%Y%u') weeks\n"
+        + "FROM com_shop_order sr LEFT JOIN  com_shop_store ss ON sr.store_id = ss.id\n"
+        + "WHERE sr.pay_status = 2 AND DATE_FORMAT(sr.pay_time,'%Y%u') = DATE_FORMAT(NOW(),'%Y%u')\n"
+        + "<if test='userId!=null and userId!=0L'>" + " and ss.sys_user_id = #{userId}\n" + "</if>" + "GROUP BY weeks\n"
+        + "UNION \n" + "SELECT ss.sys_user_id, sum(sr.pay_amount) AS t,  DATE_FORMAT(sr.pay_time,'%Y%m') months\n"
+        + "FROM com_shop_order sr LEFT JOIN  com_shop_store ss ON sr.store_id = ss.id\n"
+        + "WHERE sr.pay_status = 2 AND DATE_FORMAT(sr.pay_time,'%Y%m') = DATE_FORMAT(NOW(),'%Y%m')\n"
+        + "<if test='userId!=null and userId!=0L'>" + " and ss.sys_user_id = #{userId}\n" + "</if>"
+        + "GROUP BY months\n" + ") abt\n" + "GROUP BY abt.sys_user_id " + "</script>")
+    ComShopFundsVO queryStatis(@Param("userId") Long userId);
+
+    @Select("<script> " + "SELECT sr.id, sr.total_amount, sr.pay_time, sr.order_no, \n"
+        + " CASE  WHEN sr.pay_type = 1 THEN '微信支付'  ELSE '' END AS payType, \n" + " '收入' AS 'type' "
+        + "FROM com_shop_order  sr LEFT JOIN com_shop_store st ON sr.store_id = st.id \n"
+        + " WHERE sr.pay_status = 2 AND sr.delete_status=1 " + "<if test='pageComShopFundsSearchDTO.userId != null'>"
+        + " AND st.sys_user_id = #{pageComShopFundsSearchDTO.userId} " + " </if> "
+        + "<if test='pageComShopFundsSearchDTO.payTimeStart != null'>"
+        + " AND #{pageComShopFundsSearchDTO.payTimeStart}  <![CDATA[<=]]>  sr.pay_time   " + " </if> "
+        + "<if test='pageComShopFundsSearchDTO.payTimeEnd != null'>"
+        + " AND sr.pay_time <![CDATA[<=]]> #{pageComShopFundsSearchDTO.payTimeEnd} " + " </if> "
+        + "<if test='pageComShopFundsSearchDTO.orderNo != null '>"
+        + " AND sr.order_no = #{pageComShopFundsSearchDTO.orderNo} " + " </if> "
+        + " GROUP BY sr.id ORDER BY sr.create_at DESC " + "</script>")
+    IPage<ComShopFundsOrderVO> pageShopFunds(Page page,
+        @Param("pageComShopFundsSearchDTO") PageComShopFundsSearchDTO pageComShopFundsSearchDTO);
+
+    @Select("<script> " + "SELECT\n" + "css.store_account,\n" + "css.`contacts`,\n" + "css.`name` as storeName,\n"
+        + "cso.total_amount,\n" + "cso.pay_type,\n" + "cso.pay_time, \n" + "cso.create_at, \n" + "cso.order_no\n"
+        + "FROM\n" + "com_shop_order cso\n" + "left JOIN com_shop_store css on cso.store_id=css.id \n"
+        + "where cso.id =#{id} " + "</script>")
+    CapitalDetailVO capitalDetailByStore(@Param("id") Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopOrderGoodsDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopOrderGoodsDAO.java
new file mode 100644
index 0000000..178384b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopOrderGoodsDAO.java
@@ -0,0 +1,16 @@
+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.ComShopOrderGoodsDO;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:03:17
+ * @describe 订单商品表mapper类
+ */
+@Mapper
+public interface ComShopOrderGoodsDAO extends BaseMapper<ComShopOrderGoodsDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopOrderOperateDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopOrderOperateDAO.java
new file mode 100644
index 0000000..e65dddb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopOrderOperateDAO.java
@@ -0,0 +1,16 @@
+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.ComShopOrderOperateDO;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:03:31
+ * @describe 订单操作记录表mapper类
+ */
+@Mapper
+public interface ComShopOrderOperateDAO extends BaseMapper<ComShopOrderOperateDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopOrderPayDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopOrderPayDAO.java
new file mode 100644
index 0000000..a5a4c93
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopOrderPayDAO.java
@@ -0,0 +1,16 @@
+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.ComShopOrderPayDO;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:03:42
+ * @describe 订单支付记录表mapper类
+ */
+@Mapper
+public interface ComShopOrderPayDAO extends BaseMapper<ComShopOrderPayDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopStoreDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopStoreDAO.java
new file mode 100644
index 0000000..a7923f8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopStoreDAO.java
@@ -0,0 +1,67 @@
+package com.panzhihua.service_community.dao;
+
+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;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.shop.PageComShopStoreDTO;
+import com.panzhihua.common.model.vos.shop.PageShopStoreVO;
+import com.panzhihua.service_community.model.dos.ComShopStoreDO;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:03:55
+ * @describe 店铺表mapper类
+ */
+@Mapper
+public interface ComShopStoreDAO extends BaseMapper<ComShopStoreDO> {
+
+    @Select("<script>"
+        + "select id,`name`,store_password,contacts,store_account,classify_id,logo,phone,delivery_type,remark,`status`,"
+        + "sale,sale_volume,store_detail,create_at, store_describe from com_shop_store c " + " <where>"
+        + "c.delete_status=1 and c.status = 1 "
+        + "<if test='pageComShopStoreDTO.contacts != null and pageComShopStoreDTO.contacts.trim() != &quot;&quot;'>"
+        + "and c.contacts like concat('%',#{pageComShopStoreDTO.contacts},'%')  " + " </if> "
+        + "<if test='pageComShopStoreDTO.account != null and pageComShopStoreDTO.account.trim() != &quot;&quot;'>"
+        + "and c.store_account = #{pageComShopStoreDTO.account}  " + " </if> "
+        + "<if test='pageComShopStoreDTO.name != null and pageComShopStoreDTO.name.trim() != &quot;&quot;'>"
+        + "and c.`name` like concat('%',#{pageComShopStoreDTO.name},'%')  " + " </if> "
+        + "<if test='pageComShopStoreDTO.deliveryType != null'>"
+        + "and c.delivery_type =#{pageComShopStoreDTO.deliveryType} " + " </if> "
+        + "<if test='pageComShopStoreDTO.status != null'>" + "and c.status =#{pageComShopStoreDTO.status}  "
+        + " </if> " + " </where>" + " order by c.create_at desc" + "</script>")
+    IPage<PageShopStoreVO> pageShopStore(Page page,
+        @Param("pageComShopStoreDTO") PageComShopStoreDTO pageComShopStoreDTO);
+
+    @Select("<script>"
+        + "select id,`name`,store_password,contacts,store_account,classify_id,logo,phone,delivery_type,remark,`status`,"
+        + "sale,sale_volume,store_detail,create_at,store_describe from com_shop_store c" + " <where>"
+        + " and c.delete_status=1 "
+        + "<if test='pageComShopStoreDTO.contacts != null and pageComShopStoreDTO.contacts.trim() != &quot;&quot;'>"
+        + "and c.contacts like concat('%',#{pageComShopStoreDTO.contacts},'%') \n" + " </if> "
+        + "<if test='pageComShopStoreDTO.account != null and pageComShopStoreDTO.account.trim() != &quot;&quot;'>"
+        + "and c.store_account = #{pageComShopStoreDTO.account} \n" + " </if> "
+        + "<if test='pageComShopStoreDTO.name != null and pageComShopStoreDTO.name.trim() != &quot;&quot;'>"
+        + "and c.`name` like concat('%',#{pageComShopStoreDTO.name},'%') \n" + " </if> "
+        + "<if test='pageComShopStoreDTO.deliveryType != null'>"
+        + "and c.delivery_type =#{pageComShopStoreDTO.deliveryType}\n" + " </if> "
+        + "<if test='pageComShopStoreDTO.status != null'>" + "and c.status =#{pageComShopStoreDTO.status} \n"
+        + " </if> " + " </where>" + " order by c.create_at desc" + "</script>")
+    IPage<PageShopStoreVO> pageShopStoreByAdmin(Page page,
+        @Param("pageComShopStoreDTO") PageComShopStoreDTO pageComShopStoreDTO);
+
+    @Select("delete from sys_user where user_id = #{sysUserId}")
+    void deleteSysUserBySysUserId(@Param("sysUserId") Long sysUserId);
+
+    @Select("delete from sys_role where role_key = #{account}")
+    void deleteSysRoleByAccount(@Param("account") String account);
+
+    @Select("select count(user_id) from sys_user where phone=#{phone}")
+    int reasonableUserByPhone(@Param("phone") String phone);
+
+    @Select("select count(user_id) from sys_user where account=#{account} and type=5 ")
+    int reasonableUserByAccount(@Param("account") String account);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopSysConfDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopSysConfDAO.java
new file mode 100644
index 0000000..c41d07f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopSysConfDAO.java
@@ -0,0 +1,16 @@
+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.ComShopSysConfDO;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:14
+ * @describe 购物车表mapper类
+ */
+@Mapper
+public interface ComShopSysConfDAO extends BaseMapper<ComShopSysConfDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopUserAddressDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopUserAddressDAO.java
new file mode 100644
index 0000000..b5772a0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComShopUserAddressDAO.java
@@ -0,0 +1,27 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.shop.ComShopUserAddressVO;
+import com.panzhihua.service_community.model.dos.ComShopUserAddressDO;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:04:16
+ * @describe 用户收货地址表mapper类
+ */
+@Mapper
+public interface ComShopUserAddressDAO extends BaseMapper<ComShopUserAddressDO> {
+
+    @Select("select id,`name`,phone,province_code,province_name,city_code,city_name"
+        + ",district_code,district_name,detail_address,is_default "
+        + " from com_shop_user_address where delete_status = 2 and user_id = #{userId} order by create_at desc")
+    List<ComShopUserAddressVO> pageUserAddressList(Page page, @Param("userId") Long userId);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComStreetDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComStreetDAO.java
new file mode 100644
index 0000000..1a941fc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComStreetDAO.java
@@ -0,0 +1,22 @@
+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.ComStreetDO;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @author: llming
+ * @description: 街道
+ **/
+@Mapper
+public interface ComStreetDAO extends BaseMapper<ComStreetDO> {
+
+    /**
+     * 获取行政区域
+     * @param areaCode
+     * @return
+     */
+    String retrieveRegions(@Param("areaCode") String areaCode);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSwDangerReportDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSwDangerReportDAO.java
new file mode 100644
index 0000000..f5af0bc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSwDangerReportDAO.java
@@ -0,0 +1,51 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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.ComSwPatrolRecordPageDTO;
+import com.panzhihua.common.model.vos.community.ComSwDangerReportExcelVO;
+import com.panzhihua.common.model.vos.community.ComSwDangerReportVO;
+import com.panzhihua.service_community.model.dos.ComSwDangerReportDO;
+
+/**
+ * @auther txb
+ * @create 2021-07-27 14:31:04
+ * @describe mapper类
+ */
+@Mapper
+public interface ComSwDangerReportDAO extends BaseMapper<ComSwDangerReportDO> {
+
+    /**
+     * 分页查询隐患报告
+     * 
+     * @param comSwPatrolRecordPageDTO
+     *            查询参数
+     * @return 隐患报告分页集合
+     */
+    IPage<ComSwDangerReportVO> pageDangerReport(Page page,
+        @Param("comSwPatrolRecordDTO") ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO);
+
+    /**
+     * 根据隐患报告id查询详情
+     *
+     * @param dangerReportId
+     *            隐患报告id
+     * @return 隐患报告详情查询结果
+     */
+    ComSwDangerReportVO detailDangerReport(@Param("dangerReportId") Long dangerReportId);
+
+    /**
+     * 根据隐患报告id批量查询详情
+     *
+     * @param dangerReportIds
+     *            隐患报告ids
+     * @return
+     */
+    List<ComSwDangerReportExcelVO> exportDangerReport(@Param("dangerReportIds") List<Long> dangerReportIds);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSwPatrolRecordDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSwPatrolRecordDAO.java
new file mode 100644
index 0000000..1038b7d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSwPatrolRecordDAO.java
@@ -0,0 +1,40 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.Map;
+
+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.ComSwPatrolRecordPageDTO;
+import com.panzhihua.common.model.vos.community.ComSwPatrolRecordVO;
+import com.panzhihua.service_community.model.dos.ComSwPatrolRecordDO;
+
+/**
+ * @auther txb
+ * @create 2021-07-23 14:38:38
+ * @describe 社区》安全工作》巡查记录mapper类
+ */
+@Mapper
+public interface ComSwPatrolRecordDAO extends BaseMapper<ComSwPatrolRecordDO> {
+
+    /**
+     * 分页查询巡查记录
+     * 
+     * @param comSwPatrolRecordPageDTO
+     *            查询参数
+     * @return 分页集合
+     */
+    IPage<ComSwPatrolRecordVO> pagePatrolRecord(Page page,
+        @Param("comSwPatrolRecordDTO") ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO);
+
+    Map<String, String> getPbServiceTeamById(@Param("teamId") String teamId);
+
+    Map<String, Object> getPbServiceTeamCardNo(@Param("userId") String userId);
+
+    String getCreateName(@Param("userId") Long userId);
+
+    Map<String, String> getPatrolPersonName(@Param("dangerId") Long dangerId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSwPatrolRecordReportDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSwPatrolRecordReportDAO.java
new file mode 100644
index 0000000..2a863f1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSwPatrolRecordReportDAO.java
@@ -0,0 +1,16 @@
+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.ComSwPatrolRecordReportDO;
+
+/**
+ * @auther txb
+ * @create 2021-07-27 15:08:24
+ * @describe 社区》安全工作》巡查记录-报告关系表mapper类
+ */
+@Mapper
+public interface ComSwPatrolRecordReportDAO extends BaseMapper<ComSwPatrolRecordReportDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSwRotaDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSwRotaDAO.java
new file mode 100644
index 0000000..3c01ddf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSwRotaDAO.java
@@ -0,0 +1,43 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.Map;
+
+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.ComSwRotaPageDTO;
+import com.panzhihua.common.model.vos.community.ComSwRotaVO;
+import com.panzhihua.service_community.model.dos.ComSwRotaDO;
+
+/**
+ * @auther txb
+ * @create 2021-07-30 09:48:54
+ * @describe 社区》安全工作》值班表mapper类
+ */
+@Mapper
+public interface ComSwRotaDAO extends BaseMapper<ComSwRotaDO> {
+
+    /**
+     * 分页查询值班表
+     * 
+     * @param comSwRotaPageDTO
+     *            查询参数
+     * @return 值班表分页集合
+     */
+    IPage<ComSwRotaVO> pageRota(Page page, @Param("comSwRotaPageDTO") ComSwRotaPageDTO comSwRotaPageDTO);
+
+    /**
+     * 根据电话查询teamId
+     * 
+     * @param teamPhone
+     *            查询参数
+     * @return teamId
+     */
+    String getTeamIdsByTeamPhone(@Param("teamPhone") String teamPhone);
+
+    Map<String, String> getImageUrl(@Param("userId") Long userId);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSwSafetyWorkRecordDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSwSafetyWorkRecordDAO.java
new file mode 100644
index 0000000..cb96174
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComSwSafetyWorkRecordDAO.java
@@ -0,0 +1,39 @@
+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.ComSwPatrolRecordPageDTO;
+import com.panzhihua.common.model.vos.community.ComSwPatrolRecordStatisticsVO;
+import com.panzhihua.common.model.vos.community.ComSwSafetyWorkRecordVO;
+import com.panzhihua.service_community.model.dos.ComSwSafetyWorkRecordDO;
+
+/**
+ * @auther txb
+ * @create 2021-07-27 14:30:41
+ * @describe mapper类
+ */
+@Mapper
+public interface ComSwSafetyWorkRecordDAO extends BaseMapper<ComSwSafetyWorkRecordDO> {
+
+    /**
+     * 分页查询安全工作记录
+     * 
+     * @param comSwPatrolRecordPageDTO
+     *            查询参数
+     * @return 安全工作记录分页集合
+     */
+    IPage<ComSwSafetyWorkRecordVO> pageSafetyWorkRecord(Page page,
+        @Param("comSwPatrolRecordDTO") ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO);
+
+    /**
+     * 巡查记录统计接口
+     *
+     * @return 统计结果
+     */
+    ComSwPatrolRecordStatisticsVO patrolRecordStatistics(@Param("communityId") Long communityId);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComVeteransPopulationDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComVeteransPopulationDAO.java
new file mode 100644
index 0000000..1607e0c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ComVeteransPopulationDAO.java
@@ -0,0 +1,16 @@
+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.ComVeteransPopulationDO;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 19:56:46
+ * @describe 实有人口导入》退役军人表mapper类
+ */
+@Mapper
+public interface ComVeteransPopulationDAO extends BaseMapper<ComVeteransPopulationDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientConsultationStatisticsDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientConsultationStatisticsDAO.java
new file mode 100644
index 0000000..f86c8e0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientConsultationStatisticsDAO.java
@@ -0,0 +1,65 @@
+package com.panzhihua.service_community.dao;
+
+import com.panzhihua.common.model.vos.community.convenient.ConvenientConsultationStatisticsVO;
+import org.apache.ibatis.annotations.Mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_community.model.dos.ConvenientConsultationStatisticsDO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @title: ConvenientConsultationStatisticsDAO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务商家咨询量统计DAO
+ * @author: hans
+ * @date: 2021/09/23 13:55
+ */
+@Mapper
+public interface ConvenientConsultationStatisticsDAO extends BaseMapper<ConvenientConsultationStatisticsDO> {
+
+    /**
+     * 创建当天统计数据
+     * @param merchantId
+     * @return
+     */
+    int createTodayStatistic(@Param("merchantId") Long merchantId);
+
+    /**
+     * 增加当天浏览量
+     * @param merchantId
+     * @param nowDate
+     * @return
+     */
+    int incrConsultationNum(@Param("merchantId") Long merchantId, @Param("nowDate") String nowDate);
+
+    /**
+     * 获取月咨询量
+     * @param merchantId
+     * @param moth
+     * @return
+     */
+    int selectMonthConsultationVolume(@Param("merchantId") Long merchantId, @Param("moth") String moth);
+
+    /**
+     * 获取当天咨询量
+     * @param merchantId
+     * @param day
+     * @return
+     */
+    int selectDayConsultationVolume(@Param("merchantId") Long merchantId, @Param("day") String day);
+
+    /**
+     * 获取商家总咨询量
+     * @return
+     */
+    List<ConvenientConsultationStatisticsVO> selectSumForConsultationNum();
+
+    /**
+     * 获取商家总咨询量
+     * @param merchantId
+     * @return
+     */
+    int selectTotalConsultationVolume(@Param("merchantId") Long merchantId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientElevatingPointDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientElevatingPointDAO.java
new file mode 100644
index 0000000..0a517e3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientElevatingPointDAO.java
@@ -0,0 +1,54 @@
+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.convenient.PageConvenientElevatingPointDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PageConvenientMerchantDTO;
+import com.panzhihua.common.model.dtos.shop.PageComFlowerOrderDeliveryDTO;
+import com.panzhihua.common.model.dtos.shop.PageComFlowerOrderListDTO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientElevatingPointVO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
+import com.panzhihua.service_community.model.dos.ConvenientElevatingPointDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @title: ConvenientElevatingPointDAO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 自提点DAO
+ * @author: YH
+ * @date: 2022-10-21 09:36:09
+ */
+@Mapper
+public interface ConvenientElevatingPointDAO extends BaseMapper<ConvenientElevatingPointDO> {
+    /**
+     * 分页查询自提点 运营后台
+     *
+     * @param page                            分页参数
+     * @param pageConvenientElevatingPointDTO
+     * @return
+     */
+    IPage<ConvenientElevatingPointVO> page(@Param("page") Page page,
+                                           @Param("pageConvenientElevatingPointDTO") PageConvenientElevatingPointDTO pageConvenientElevatingPointDTO);
+
+    /**
+     * 删除
+     *
+     * @param pointId
+     * @param operator
+     * @return
+     */
+    int deletePointById(@Param("pointId") Long pointId, @Param("operator") Long operator);
+
+    /**
+     * 分页查询未配送的自提点
+     *
+     * @param page
+     * @param pageComFlowerOrderDeliveryDTO
+     * @return
+     */
+    IPage<ConvenientElevatingPointVO> pageNoDelivery(@Param("page") Page page, @Param("pageComFlowerOrderDeliveryDTO") PageComFlowerOrderDeliveryDTO pageComFlowerOrderDeliveryDTO);
+
+    ConvenientElevatingPointVO selectOrderNum(@Param("pageComFlowerOrderListDTO") PageComFlowerOrderListDTO pageComFlowerOrderListDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientGoodsCategoryDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientGoodsCategoryDAO.java
new file mode 100644
index 0000000..d1ad3ef
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientGoodsCategoryDAO.java
@@ -0,0 +1,73 @@
+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.convenient.PageConvenientGoodsCategoryDTO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientGoodsCategoryVO;
+import com.panzhihua.service_community.model.dos.ConvenientGoodsCategoryDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @ClassName: ConvenientGoodsCategoryDAO
+ * @Author: yh
+ * @Date: 2022/11/8 13:20
+ * @Description: 商品分类
+ */
+@Mapper
+public interface ConvenientGoodsCategoryDAO extends BaseMapper<ConvenientGoodsCategoryDO> {
+
+    /**
+     * 分页查询便民服务分类
+     *
+     * @param page                           分页参数
+     * @param pageConvenientGoodsCategoryDTO
+     * @return 服务分类详情
+     */
+    IPage<ConvenientGoodsCategoryVO> pageGoodsCategory(@Param("page") Page page, @Param("pageConvenientGoodsCategoryDTO")
+            PageConvenientGoodsCategoryDTO pageConvenientGoodsCategoryDTO);
+
+    /**
+     * 创建商品、分类关系
+     * @param id
+     * @param goodsId
+     * @param goodsCategoryId
+     * @param goodsCategoryName
+     * @param createdBy
+     * @return
+     */
+    int createGoodsCategoryRelation(@Param("id")Long id,@Param("goodsId") Long goodsId, @Param("goodsCategoryId") Long goodsCategoryId,
+                                      @Param("goodsCategoryName") String goodsCategoryName, @Param("createdBy") Long createdBy);
+
+
+    /**
+     * 删除商家服务类型关系
+     * @param goodsId
+     * @return
+     */
+    int deleteGoodsCategoryRelation(@Param("goodsId") Long goodsId);
+
+    /**
+     * 获取商家服务范围
+     * @param goodsId
+     * @return
+     */
+    String selectCategoryScopeByGoodsId(@Param("goodsId") Long goodsId);
+
+    /**
+     * 获取商家服务类型
+     * @param goodsId
+     * @return serviceIds
+     */
+    List<Long> selectCategoryIdsForGoods(@Param("goodsId") Long goodsId);
+
+    /**
+     * 查看服务分类是否被引用
+     * @param categoryId
+     * @return
+     */
+    int checkCategoryIsUsing(@Param("categoryId") Long categoryId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientMerchantDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientMerchantDAO.java
new file mode 100644
index 0000000..f6c8e08
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientMerchantDAO.java
@@ -0,0 +1,179 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.PageBaseDTO;
+import com.panzhihua.common.model.dtos.community.convenient.ExportMerchantDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PageClassifyMerchantDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PageConvenientMerchantDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PagePopularMerchantDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PageSearchDTO;
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenMerchantStatisticsInfo;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientConsultationStatisticsVO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientViewStatisticsVO;
+import com.panzhihua.common.model.vos.community.convenient.ExportMerchantVO;
+import org.apache.ibatis.annotations.Mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_community.model.dos.ConvenientMerchantDO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @title: ConvenientMerchantDAO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务商家DAO
+ * @author: hans
+ * @date: 2021/09/16 16:13
+ */
+@Mapper
+public interface ConvenientMerchantDAO extends BaseMapper<ConvenientMerchantDO> {
+    /**
+     * 删除便民服务商家
+     *
+     * @param merchantId
+     * @param operator
+     * @return
+     */
+    int deleteMerchantById(@Param("merchantId") Long merchantId, @Param("operator") Long operator);
+
+    /**
+     * 分页查询便民服务商家 运营后台
+     *
+     * @param page                      分页参数
+     * @param pageConvenientMerchantDTO
+     * @return
+     */
+    IPage<ConvenientMerchantVO> pageMerchant(@Param("page") Page page,
+                                             @Param("pageConvenientMerchantDTO") PageConvenientMerchantDTO pageConvenientMerchantDTO);
+
+    /**
+     * 查询商家信息
+     *
+     * @param merchantId
+     * @return
+     */
+    ConvenientMerchantVO selectMerchantById(@Param("merchantId") Long merchantId);
+
+    /**
+     * 根据后台用户id查询
+     *
+     * @param userId
+     * @return
+     */
+    ConvenientMerchantVO selectMerchantByUserId(@Param("userId") Long userId);
+
+    List<ConvenientMerchantVO> selectMerchantByName(@Param("communityId") Long communityId, @Param("currentMon") String currentMon);
+
+    /**
+     * 获取社区下热门商家
+     *
+     * @param page
+     * @param communityId
+     * @param currentMon
+     * @return
+     */
+    IPage<ConvenientMerchantVO> getPopularMerchants(@Param("page") Page page, @Param("communityId") Long communityId, @Param("currentMon") String currentMon, @Param("areaCode") String areaCode);
+
+    /**
+     * 获取指定类型的商家
+     *
+     * @param page
+     * @param pageClassifyMerchantDTO
+     * @param currentMon
+     * @return
+     */
+    IPage<ConvenientMerchantVO> getClassifyMerchants(@Param("page") Page page, @Param("pageClassifyMerchantDTO") PageClassifyMerchantDTO pageClassifyMerchantDTO, @Param("currentMon") String currentMon);
+
+    /**
+     * 获取商家详情
+     *
+     * @param merchantId
+     * @param currentMon
+     * @return
+     */
+    ConvenientMerchantVO getMerchantDetail(@Param("merchantId") Long merchantId, @Param("currentMon") String currentMon);
+
+    /**
+     * 分页搜索商家信息
+     *
+     * @param page
+     * @param pageSearchDTO
+     * @param currentMon
+     * @return
+     */
+    IPage<ConvenientMerchantVO> pageSearchMerchant(@Param("page") Page page, @Param("pageSearchDTO") PageSearchDTO pageSearchDTO, @Param("currentMon") String currentMon);
+
+    /**
+     * 根据查询条件获取商家导出数据
+     *
+     * @param exportMerchantDTO
+     * @return
+     */
+    List<ExportMerchantVO> exportMerchantBySearch(@Param("exportMerchantDTO") ExportMerchantDTO exportMerchantDTO);
+
+    /**
+     * 批量更新商家咨询量
+     *
+     * @param consultationVOList
+     * @return
+     */
+    int batchUpdateMerchantConsultationNum(@Param("consultationVOList") List<ConvenientConsultationStatisticsVO> consultationVOList);
+
+    /**
+     * 批量更新商家浏览量
+     *
+     * @param viewVOList
+     * @return
+     */
+    int batchUpdateMerchantViewNum(@Param("viewVOList") List<ConvenientViewStatisticsVO> viewVOList);
+
+    /**
+     * 根据指定id获取商家导出数据
+     *
+     * @param needExportIds
+     * @return
+     */
+    List<ExportMerchantVO> exportMerchantByIds(@Param("needExportIds") List<Long> needExportIds);
+
+    /**
+     * 批量更新商家营业状态
+     *
+     * @param convenientMerchantDOList
+     * @param status
+     * @return
+     */
+    int batchUpdateBusinessStatus(@Param("convenientMerchantDOList") List<ConvenientMerchantDO> convenientMerchantDOList, @Param("status") int status);
+
+    /**
+     * 社区商家
+     *
+     * @param communityId
+     * @return
+     */
+    List<ConvenientMerchantVO> selectMerchantListByCommunity(@Param("communityId") Long communityId);
+
+    /**
+     * 大屏分页获取热度排行商家
+     *
+     * @param page
+     * @param pagePopularMerchantDTO
+     * @return
+     */
+    List<ConvenientMerchantVO> getScreenPopularMerchants(@Param("page") Page page, @Param("pagePopularMerchantDTO") PagePopularMerchantDTO pagePopularMerchantDTO);
+
+    BigScreenMerchantStatisticsInfo getIndexMerchantBaseData(@Param("communityId") Long communityId);
+
+    List<StatisticsCommVO> selectServiceTypeCircleData(@Param("communityId") Long communityId);
+
+    List<StatisticsCommVO> getServiceTimesAddPolylineData(@Param("communityId") Long communityId);
+
+    StatisticsCommVO getServiceTimesTotalPolylineDate(@Param("communityId") Long communityId, @Param("date") String date);
+
+    IPage<ConvenientMerchantVO> indexMerchantList(@Param("page") Page page, @Param("pageBaseDTO") PageBaseDTO pageBaseDTO);
+
+    List<ConvenientMerchantVO> getMerchantDetailByAccount(@Param("account") String account);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientProductCategoryDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientProductCategoryDAO.java
new file mode 100644
index 0000000..32e5f94
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientProductCategoryDAO.java
@@ -0,0 +1,38 @@
+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.convenient.PageConvenientProductCategoryDTO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientProductCategoryVO;
+import com.panzhihua.service_community.model.dos.ConvenientProductCategoryDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @title: ConvenientProductCategoryDAO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务产品分类DAO
+ * @author: hans
+ * @date: 2021/09/20 16:16
+ */
+@Mapper
+public interface ConvenientProductCategoryDAO extends BaseMapper<ConvenientProductCategoryDO> {
+
+    /**
+     * 分页查询便民服务产品分类
+     * @param page 分页参数
+     * @param pageConvenientProductCategoryDTO
+     * @return 产品分类详情
+     */
+    IPage<ConvenientProductCategoryVO> pageProductCategory(@Param("page") Page page, @Param("pageConvenientProductCategoryDTO") PageConvenientProductCategoryDTO pageConvenientProductCategoryDTO);
+
+    /**
+     * 查询所有分类
+     * @return
+     * @param merchantId
+     */
+    List<ConvenientProductCategoryVO> selectAllCategories(@Param("merchantId") Long merchantId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientProductDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientProductDAO.java
new file mode 100644
index 0000000..3b4dfb9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientProductDAO.java
@@ -0,0 +1,79 @@
+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.convenient.PageConvenientProductDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PageSearchDTO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientProductSpecificationVO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientProductVO;
+import com.panzhihua.service_community.model.dos.ConvenientProductDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @title: ConvenientProductDAO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务商家后台产品DAO
+ * @author: hans
+ * @date: 2021/09/21 21:35
+ */
+@Mapper
+public interface ConvenientProductDAO extends BaseMapper<ConvenientProductDO> {
+
+    /**
+     * 分页查询产品
+     *
+     * @param page
+     * @param pageConvenientProductDTO
+     * @return
+     */
+    IPage<ConvenientProductVO> pageProduct(@Param("page") Page page, @Param("pageConvenientProductDTO") PageConvenientProductDTO pageConvenientProductDTO);
+
+    /**
+     * 批量删除产品
+     * @param needDelIds
+     * @return
+     */
+    int batchDeleteByIds(@Param("needDelIds") List<Long> needDelIds);
+
+    /**
+     * 批量上架
+     * @param needDealIds
+     * @param updatedBy
+     * @param saleStatus
+     * @return
+     */
+    int batchOnShelfOrOffShelfByIds(@Param("needDealIds") List<Long> needDealIds, @Param("updatedBy") Long updatedBy, @Param("saleStatus") boolean saleStatus);
+
+    /**
+     * 小程序获取商家产品
+     * @param merchantId
+     * @return
+     */
+    List<ConvenientProductVO> getMerchantProduct(@Param("merchantId") Long merchantId);
+
+    /**
+     * 获取产品规格
+     * @param merchantId
+     * @return
+     */
+    List<ConvenientProductSpecificationVO> getProductSpecifications(@Param("merchantId") Long merchantId);
+
+    /**
+     * 分页搜索产品信息
+     * @param page
+     * @param pageSearchDTO
+     * @return
+     */
+    IPage<ConvenientProductVO> pageSearchProduct(@Param("page") Page page, @Param("pageSearchDTO") PageSearchDTO pageSearchDTO);
+
+    /**
+     * 增加产品浏览量
+     * @param productId
+     * @return
+     */
+    int incrProductView(@Param("productId") Long productId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientProductSpecificationDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientProductSpecificationDAO.java
new file mode 100644
index 0000000..0ae2b5b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientProductSpecificationDAO.java
@@ -0,0 +1,41 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_community.model.dos.ConvenientProductSpecificationDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @title: ConvenientProductSpecificationDAO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务产品分类DAO
+ * @author: hans
+ * @date: 2021/09/21 21:56
+ */
+@Mapper
+public interface ConvenientProductSpecificationDAO extends BaseMapper<ConvenientProductSpecificationDO> {
+
+    /**
+     * 批量插入产品规格
+     * @param productSpecificationDOList
+     * @return
+     */
+    int batchInsert(@Param("productSpecificationDOList") List<ConvenientProductSpecificationDO> productSpecificationDOList);
+
+    /**
+     * 删除传入ID以外的关联
+     * @param notNeedDelIds
+     * @param productId
+     * @return
+     */
+    int deleteLoseRelationSpecifications(@Param("notNeedDelIds") List<Long> notNeedDelIds, @Param("productId") Long productId);
+
+    /**
+     * 通过产品ID删除相关规格
+     * @param needDelProductIds
+     * @return
+     */
+    int batchDeleteByProductIds(@Param("needDelProductIds") List<Long> needDelProductIds);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientServiceCategoryDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientServiceCategoryDAO.java
new file mode 100644
index 0000000..339cd5f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientServiceCategoryDAO.java
@@ -0,0 +1,78 @@
+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.convenient.PageConvenientServiceCategoryDTO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientServiceCategoryVO;
+import com.panzhihua.service_community.model.dos.ConvenientServiceCategoryDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @title: ConvenientServiceCategoryDAO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务分类DAO
+ * @author: hans
+ * @date: 2021/09/16 10:55
+ */
+@Mapper
+public interface ConvenientServiceCategoryDAO extends BaseMapper<ConvenientServiceCategoryDO> {
+    /**
+     * 分页查询便民服务分类
+     * @param page 分页参数
+     * @param pageConvenientServiceCategoryDTO
+     * @return 服务分类详情
+     */
+    IPage<ConvenientServiceCategoryVO> pageServiceCategory(@Param("page") Page page,
+                                                           @Param("pageConvenientServiceCategoryDTO")
+                                                           PageConvenientServiceCategoryDTO pageConvenientServiceCategoryDTO);
+
+    /**
+     * 创建商家服务类型关系
+     * @param merchantId
+     * @param serviceId
+     * @param name
+     * @param createdBy
+     * @return
+     */
+    int createMerchantServiceRelation(@Param("id")Long id,@Param("merchantId") Long merchantId, @Param("serviceId") Long serviceId,
+                                      @Param("name") String name, @Param("createdBy") Long createdBy);
+
+    /**
+     * 删除商家服务类型关系
+     * @param merchantId
+     * @return
+     */
+    int deleteMerchantServiceRelation(@Param("merchantId") Long merchantId);
+
+    /**
+     * 获取商家服务范围
+     * @param merchantId
+     * @return
+     */
+    String selectServiceScopeByMerchantId(@Param("merchantId") Long merchantId);
+
+    /**
+     * 获取商家服务类型
+     * @param merchantId
+     * @return serviceIds
+     */
+    List<String> selectServiceIdsForMerchant(@Param("merchantId") Long merchantId);
+
+    /**
+     * 查看服务分类是否被引用
+     * @param categoryId
+     * @return
+     */
+    int checkCategoryIsUsing(@Param("categoryId") Long categoryId);
+
+    /**
+     * 获取该社区商家数量大于0的分类
+     * @param communityId
+     * @return
+     */
+    List<ConvenientServiceCategoryVO> selectSuitableServiceCategories(@Param("communityId") Long communityId,@Param("areaCode")String areaCode);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientViewStatisticsDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientViewStatisticsDAO.java
new file mode 100644
index 0000000..084259e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/ConvenientViewStatisticsDAO.java
@@ -0,0 +1,65 @@
+package com.panzhihua.service_community.dao;
+
+import com.panzhihua.common.model.vos.community.convenient.ConvenientViewStatisticsVO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_community.model.dos.ConvenientViewStatisticsDO;
+
+import java.util.List;
+
+/**
+ * @title: ConvenientViewStatisticsDAO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务商家浏览量统计DAO
+ * @author: hans
+ * @date: 2021/09/23 16:53
+ */
+@Mapper
+public interface ConvenientViewStatisticsDAO extends BaseMapper<ConvenientViewStatisticsDO> {
+
+    /**
+     * 创建当天统计数据
+     * @param merchantId
+     * @return
+     */
+    int createTodayStatistic(@Param("merchantId") Long merchantId);
+
+    /**
+     * 增加当天浏览量
+     * @param merchantId
+     * @param nowDate
+     * @return
+     */
+    int incrViewNum(@Param("merchantId") Long merchantId, @Param("nowDate") String nowDate);
+
+    /**
+     * 获取月浏览量
+     * @param merchantId
+     * @param moth
+     * @return
+     */
+    int selectMonthViewNum(@Param("merchantId") Long merchantId, @Param("moth") String moth);
+
+    /**
+     * 获取当天浏览量
+     * @param merchantId
+     * @param day
+     * @return
+     */
+    int selectDayViewNum(@Param("merchantId") Long merchantId, @Param("day") String day);
+
+    /**
+     * 获取商家总浏览量
+     * @return
+     */
+    List<ConvenientViewStatisticsVO> selectSumForViewNum();
+
+    /**
+     * 获取商家总浏览量
+     * @param merchantId
+     * @return
+     */
+    int selectTotalViewNum(@Param("merchantId") Long merchantId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/DisablePersonDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/DisablePersonDAO.java
new file mode 100644
index 0000000..2fdd626
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/DisablePersonDAO.java
@@ -0,0 +1,14 @@
+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.DisabledPersonsDO;
+
+/**
+ * program 攀枝花智慧社区项目 description 残疾人管理API
+ *
+ * @author manailin Date 2021-01-22 15:30
+ **/
+@Mapper
+public interface DisablePersonDAO extends BaseMapper<DisabledPersonsDO> {}
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
new file mode 100644
index 0000000..8902b94
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/EldersAuthDAO.java
@@ -0,0 +1,169 @@
+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 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.ExcelElderAuthDTO;
+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.elders.ComEldersAuthHistoryVO;
+import com.panzhihua.common.model.vos.user.SysUserVO;
+import com.panzhihua.service_community.model.dos.EldersAuthDO;
+
+/**
+ * DAO
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ */
+@Mapper
+public interface EldersAuthDAO extends BaseMapper<EldersAuthDO> {
+
+    @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.domicile, ea.submit_user_id,  u.phone as submitUserAccount , ea.video_url, "
+        + " u.name as submitUserName, ROUND(DATEDIFF(CURDATE(), ea.birth_day)/365.2422) as age \n" + "FROM " + " ("
+        + " SELECT MAX(id) AS id , DATE_FORMAT(create_at, '%Y-%m') AS yearMonth\n" + " FROM com_elders_auth \n"
+        + " GROUP BY id_card, yearMonth\n" + " ) t  " + " LEFT JOIN com_elders_auth ea ON t.id = ea.id  "
+        + " LEFT JOIN sys_user  u ON ea.submit_user_id = u.user_id\n"
+        + " LEFT JOIN com_act ac ON u.community_id = ac.community_id\n" + " <where> " +
+
+        "<if test='pageEldersAuthDTO.communityId != null'>"
+        + "  AND ac.community_id = ${pageEldersAuthDTO.communityId} " + " </if> " +
+
+        "<if test='pageEldersAuthDTO.sumitUserId != null'>"
+        + " AND ea.submit_user_id = #{pageEldersAuthDTO.sumitUserId} " + " </if> "
+        + "<if test='pageEldersAuthDTO.idCard != null'>" + " AND ea.id_card = #{pageEldersAuthDTO.idCard} " + " </if> "
+        + "<if test='pageEldersAuthDTO.authUserName != null'>"
+        + " AND ea.auth_user_name like concat('%', #{pageEldersAuthDTO.authUserName}, '%' ) " + " </if> "
+        + "<if test='pageEldersAuthDTO.type == 1 '>"
+        + "  AND  DATE_FORMAT(ea.create_at, '%c') = #{pageEldersAuthDTO.month} " + " </if> "
+        + "<if test='pageEldersAuthDTO.type == 2 '>" + "<if test='pageEldersAuthDTO.createAtStart != null'>"
+        + " AND ea.create_at <![CDATA[>=]]> #{pageEldersAuthDTO.createAtStart} " + " </if> "
+        + "<if test='pageEldersAuthDTO.createAtEnd != null'>"
+        + " AND ea.create_at <![CDATA[<=]]> #{pageEldersAuthDTO.createAtEnd} " + " </if> " + " </if> " + " </where>"
+        + " ORDER BY ea.${pageEldersAuthDTO.sortBy} ${pageEldersAuthDTO.order}  " + "</script>")
+    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.type, "
+        + " ea.domicile, ea.submit_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.submit_user_id = u.user_id\n" + " where ea.id = #{id}"
+        + "</script>")
+    EldersAuthDetailsVO selectDetails(@Param("id") Long id);
+
+    @Select("<script> " + " SELECT \n"
+        + " (@rownum:=@rownum+1) as seq,  '高龄补贴' AS subsidy, '' AS batch, ea.auth_user_name AS NAME,  ea.id_card, \n"
+        + " CASE\n" + "    WHEN ROUND(DATEDIFF(CURDATE(), ea.birth_day)/365.2422) > 99  THEN \"100周岁(含)以上\"\n"
+        + "    WHEN ROUND(DATEDIFF(CURDATE(), ea.birth_day)/365.2422) > 89  THEN \"90-99周岁\"\n"
+        + "    WHEN ROUND(DATEDIFF(CURDATE(), ea.birth_day)/365.2422) >= 80 THEN \"80-89周岁\"\n" + "    ELSE \"未达到年龄\"\n"
+        + " END AS TYPE, DATE_FORMAT(ea.create_at, '%Y-%m') AS yearMonth,\n" + " CASE\n"
+        + "    WHEN ROUND(DATEDIFF(CURDATE(), ea.birth_day)/365.2422) > 99  THEN \"800\"\n"
+        + "    WHEN ROUND(DATEDIFF(CURDATE(), ea.birth_day)/365.2422) > 89  THEN \"200\"\n"
+        + "    WHEN ROUND(DATEDIFF(CURDATE(), ea.birth_day)/365.2422) >= 80 THEN \"50\"\n" + "    ELSE \"未达到年龄\"\n"
+        + " END AS payCount,\n"
+        + " ac.name AS communityName, '' AS 'group', '' AS telphone ,  ROUND(DATEDIFF(CURDATE(), ea.birth_day)/365.2422) AS age\n"
+        + " FROM \n" + " (" + " SELECT MAX(id) AS id , DATE_FORMAT(create_at, '%Y-%m') AS yearMonth, @rownum:=0 \n"
+        + " FROM com_elders_auth \n" + " GROUP BY id_card, yearMonth\n" + " ) t \n"
+        + " LEFT JOIN com_elders_auth ea ON t.id = ea.id \n"
+        + " LEFT JOIN sys_user u ON ea.submit_user_id = u.user_id\n"
+        + " LEFT JOIN com_act ac ON u.community_id = ac.community_id\n" + " <where> " +
+
+        "<if test='pageEldersAuthDTO.communityId != null'>"
+        + "  AND ac.community_id = ${pageEldersAuthDTO.communityId} " + " </if> " +
+
+        "<if test='pageEldersAuthDTO.ids != null and pageEldersAuthDTO.ids.length>0 '>" + " AND ea.id in "
+        + "<foreach collection='pageEldersAuthDTO.ids' item='id' index='index' open='(' close=')' separator=',' >\n"
+        + "  #{id}" + "</foreach>" + " </if> " +
+
+        "<if test='pageEldersAuthDTO.ids == null or pageEldersAuthDTO.ids.length==0 '>"
+        + "<if test='pageEldersAuthDTO.sumitUserId != null'>"
+        + " AND ea.submit_user_id = #{pageEldersAuthDTO.sumitUserId} " + " </if> "
+        + "<if test='pageEldersAuthDTO.idCard != null'>" + " AND ea.id_card = #{pageEldersAuthDTO.idCard} " + " </if> "
+        + "<if test='pageEldersAuthDTO.authUserName != null'>"
+        + " AND ea.auth_user_name like concat('%', #{pageEldersAuthDTO.authUserName}, '%' ) " + " </if> "
+        + "<if test='pageEldersAuthDTO.type == 1 '>"
+        + "  AND  DATE_FORMAT(ea.create_at, '%c') = #{pageEldersAuthDTO.month} " + " </if> "
+        + "<if test='pageEldersAuthDTO.type == 2 '>" + "<if test='pageEldersAuthDTO.createAtStart != null'>"
+        + " AND ea.create_at <![CDATA[>=]]> #{pageComShopOrderSearchDTO.createAtStart} " + " </if> "
+        + "<if test='pageEldersAuthDTO.createAtEnd != null'>"
+        + " AND ea.create_at <![CDATA[<=]]> #{pageComShopOrderSearchDTO.createAtEnd} " + " </if> " + " </if> "
+        + " </if> " + " </where>" + " ORDER BY ea.${pageEldersAuthDTO.sortBy} ${pageEldersAuthDTO.order}  "
+        + "</script>")
+    List<ExcelElderAuthDTO> selectByParams(@Param("pageEldersAuthDTO") PageEldersAuthDTO pageEldersAuthDTO);
+
+    @Select("<script> " + "SELECT CONCAT(ap.province_name, ad.district_name) AS domicile\n"
+        + "FROM com_mng_struct_area_province ap LEFT JOIN com_mng_struct_area_city ct ON ap.province_adcode = ct.province_adcode\n"
+        + " LEFT JOIN com_mng_struct_area_district ad ON ct.city_adcode = ad.city_adcode "
+        + "  WHERE substring(ad.district_adcode, 1, 6) = substring(#{idCard}, 1, 6) " + "</script>")
+    String selectDomicile(@Param("idCard") String idCard);
+
+    @Select("<script> "
+        + " SELECT distinct t.id, t.yearMonth, au.`type`,  DATE_FORMAT(au.create_at,'%Y-%m-%d')  AS create_at,\n"
+        + " case " + " when fed.id IS NOT NULL then true\n" + " ELSE false " + " END hasFeed "
+        + " FROM ( SELECT MAX(id) AS id , DATE_FORMAT(create_at, '%Y-%m') AS yearMonth\n" + " FROM com_elders_auth \n"
+        + " GROUP BY id_card, yearMonth\n" + " ) t  LEFT JOIN com_elders_auth au ON t.id = au.id\n"
+        + " LEFT JOIN com_elders_auth_feedback fed ON t.id = fed.AUTH_ID\n" + " <where>"
+        + " au.family_user_id = #{pageComEldersRecordsDTO.bigAgeid} " + "</where>"
+        + "<if test='pageComEldersRecordsDTO.sortColumns!=null'>\n"
+        + "ORDER BY ${pageComEldersRecordsDTO.sortColumns} ${pageComEldersRecordsDTO.sortType}\n" + "</if>  "
+        + "</script>")
+    List<ComEldersAuthRecordVO> selectEldersRecordByPage(Page page,
+        @Param("pageComEldersRecordsDTO") PageComEldersRecordsDTO pageComEldersRecordsDTO);
+
+    @Select("<script> " + "  SELECT DISTINCT a.name"
+        + " FROM com_elders_auth ea LEFT JOIN com_elders_auth_user au ON ea.family_user_id = au.id \n"
+        + "LEFT JOIN com_act a ON au.community_id = a.community_id\n" + " WHERE ea.id = #{id}  " + "</script>")
+    String selectCommunityNameByAuth(@Param("id") Long id);
+
+    @Select("select user_id,id_card,name from sys_user where user_id = #{userId}")
+    SysUserVO getSysUserByUserId(@Param("userId") Long userId);
+
+//    @Select("<script> "
+//        + " 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.submit_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.submit_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 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"
+//        + "<if test='pageEldersAuthRecordDTO.sortColumns!=null'>\n"
+//        + "ORDER BY e.${pageEldersAuthRecordDTO.sortColumns} ${pageEldersAuthRecordDTO.sortType}\n" + "</if> "
+//        + "</script>")
+    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/EldersAuthElderlyDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/EldersAuthElderlyDAO.java
new file mode 100644
index 0000000..e499f4b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/EldersAuthElderlyDAO.java
@@ -0,0 +1,15 @@
+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.EldersAuthFeedbackDO;
+
+/**
+ * @author xyh
+ * @date 2021/6/9 14:34
+ */
+@Mapper
+public interface EldersAuthElderlyDAO extends BaseMapper<EldersAuthFeedbackDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/EldersAuthFeedbackDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/EldersAuthFeedbackDAO.java
new file mode 100644
index 0000000..67ab84f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/EldersAuthFeedbackDAO.java
@@ -0,0 +1,18 @@
+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.EldersAuthFeedbackDO;
+
+/**
+ * DAO
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ */
+@Mapper
+public interface EldersAuthFeedbackDAO extends BaseMapper<EldersAuthFeedbackDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/EventMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/EventMapper.java
new file mode 100644
index 0000000..8a668d0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/EventMapper.java
@@ -0,0 +1,195 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+import java.util.Map;
+
+import com.panzhihua.service_community.model.dos.EventDO;
+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.bigscreen.event.ScreenEventListDTO;
+import com.panzhihua.common.model.dtos.grid.GridEventStatisticsDTO;
+import com.panzhihua.common.model.dtos.grid.PageEventDTO;
+import com.panzhihua.common.model.dtos.grid.PageEventManageDTO;
+import com.panzhihua.common.model.dtos.grid.PageEventSpecialPopulationDTO;
+import com.panzhihua.common.model.dtos.grid.PagePublicityEventCommunityDTO;
+import com.panzhihua.common.model.dtos.grid.PagePublicityEventDTO;
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+import com.panzhihua.common.model.vos.community.screen.civil.CivilVillageStatisticsVO;
+import com.panzhihua.common.model.vos.community.screen.event.EventComprehensiveGovernanceStatisticsVO;
+import com.panzhihua.common.model.vos.community.screen.event.EventGridIncidentStatisticsVO;
+import com.panzhihua.common.model.vos.community.screen.event.EventListVO;
+import com.panzhihua.common.model.vos.grid.ComMapGridEventVO;
+import com.panzhihua.common.model.vos.grid.EventSpecialPopulationVO;
+import com.panzhihua.common.model.vos.grid.EventStatisticsAllAdminVO;
+import com.panzhihua.common.model.vos.grid.EventVO;
+import com.panzhihua.common.model.vos.grid.GridEventStatisticsDetailVO;
+import com.panzhihua.common.model.vos.grid.GridEventStatisticsVO;
+import com.panzhihua.common.model.vos.screen.DateScreenVO;
+import com.panzhihua.common.model.vos.screen.EventDetailWorkVO;
+import com.panzhihua.common.model.vos.screen.EventTypeWorkVO;
+import com.panzhihua.common.model.vos.screen.EventWorkVO;
+import com.panzhihua.common.model.vos.screen.ScreenDrawEventPopulationTotalVO;
+
+/**
+ * DAO
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @date 2021-05-26
+ * @since 1.0
+ */
+@Mapper
+public interface EventMapper extends BaseMapper<EventDO> {
+
+    /**
+     * 分页查询事件
+     *
+     * @param pageEventDTO
+     * @return
+     */
+    IPage<EventVO> findByPage(Page page, @Param("pageEventDTO") PageEventDTO pageEventDTO);
+
+    /**
+     * 分页查询宣传教育
+     *
+     * @param pagePublicityEventDTO
+     * @return
+     */
+    IPage<EventVO> findPublicityByPage(Page page,
+                                       @Param("pagePublicityEventDTO") PagePublicityEventDTO pagePublicityEventDTO);
+
+    /**
+     * 地图模块-根据网格id查询网格办件事件
+     *
+     * @param gridId
+     *            网格id
+     * @return 网格办件事件
+     */
+    List<ComMapGridEventVO> getEventByGridId(@Param("gridId") Long gridId);
+
+    /**
+     * 根据网格员id查询网格员头像url
+     *
+     * @param gridMemberId
+     *            网格员id
+     * @return 头像url
+     */
+    Map<String, String> getGridMemberImageUrl(@Param("gridMemberId") Long gridMemberId);
+
+    /**
+     * 查询事件(管理)列表
+     *
+     * @param page
+     * @param pageEventManageDTO
+     * @return
+     */
+    IPage<EventVO> findToManageByPage(Page page, @Param("pageEventManageDTO") PageEventManageDTO pageEventManageDTO);
+
+    /**
+     * 查询事件(管理)列表
+     *
+     * @param page
+     * @param pagePublicityEventCommunityDTO
+     * @return
+     */
+    IPage<EventVO> findCommunityPublicityByPage(Page page,
+                                                @Param("pagePublicityEventCommunityDTO") PagePublicityEventCommunityDTO pagePublicityEventCommunityDTO);
+
+    /**
+     * 后台管理-统计模块
+     *
+     * @param communityId
+     *            社区id
+     * @return 统计信息
+     */
+    EventStatisticsAllAdminVO eventStatistics(@Param("communityId") Long communityId);
+
+    Integer getEventCountByGridIds(@Param("ids") List<Long> ids);
+
+    /**
+     * 根据网格id查询网格统计数据
+     *
+     * @param gridId
+     *            网格id
+     * @return 网格统计数据
+     */
+    GridEventStatisticsVO getGridEventStatisticsByApp(@Param("gridId") Long gridId);
+
+    /**
+     * 查询网格事件统计数据
+     *
+     * @param statisticsDTO
+     *            请求参数
+     * @return 网格事件统计数据
+     */
+    GridEventStatisticsDetailVO
+        getGridEventDetailStatisticsByApp(@Param("statisticsDTO") GridEventStatisticsDTO statisticsDTO);
+
+    /**
+     * 查询时间发布者基本信息
+     *
+     * @param gridMemberId
+     * @return
+     */
+    Map<String, Object> getUserBaseInfo(@Param("gridMemberId") Long gridMemberId);
+
+    /**
+     * 事件大屏查询事件列表
+     *
+     * @param eventListDTO
+     *            请求参数
+     * @return 事件列表
+     */
+    IPage<EventListVO> getScreenEventList(Page page, @Param("eventListDTO") ScreenEventListDTO eventListDTO);
+
+    /**
+     * 特殊人群上报-社区人口数据列表
+     *
+     * @param specialPopulationDTO
+     *            请求参数
+     * @return 社区人口数据列表
+     */
+    IPage<EventSpecialPopulationVO> specialPopulationList(Page page,
+                                                          @Param("specialPopulationDTO") PageEventSpecialPopulationDTO specialPopulationDTO);
+
+    Map<String, Long> countByCommunityId(@Param("communityId") Long communityId, @Param("nowDate") String nowDate);
+
+    DateScreenVO countByAvgCommunityId(@Param("communityId") Long communityId);
+
+    List<EventDetailWorkVO> getWorkScreenEventList(@Param("communityId") Long communityId);
+
+    EventWorkVO countByTime(@Param("start") String start, @Param("end") String end,
+                            @Param("communityId") Long communityId);
+
+    EventTypeWorkVO getComplete(@Param("communityId") Long communityId);
+
+    EventTypeWorkVO getNoComplete(@Param("communityId") Long communityId);
+
+    Map<String, Long> getSSPEventTotal(@Param("communityId") Long communityId);
+
+    List<EventGridIncidentStatisticsVO> getEventListByCommunityId(@Param("communityId") Long communityId);
+
+    List<CivilVillageStatisticsVO> getCivilScreenVillageList(@Param("communityId") Long communityId);
+
+    ScreenDrawEventPopulationTotalVO getVillagePopulationTotal(@Param("villageId") Long villageId);
+
+    List<Map<String, Object>> getMemberBuildName(@Param("userId") Long userId);
+
+    Integer getPopulationByLabelCount(@Param("floor") String floor, @Param("villageId") Long villageId);
+
+    /**
+     * 西区大数据分析平台-综合治理栏数据
+     * @return
+     */
+    EventComprehensiveGovernanceStatisticsVO selectComprehensiveGovernanceStatics();
+
+    List<EventGridIncidentStatisticsVO> getGridsGovernanceEventList(@Param("communityId") Long communityId);
+
+    ScreenDrawEventPopulationTotalVO getVillagePopulationTotalNew(@Param("villageId") Long villageId);
+
+    List<StatisticsCommVO> selectStatisticsForAge(@Param("villageIds") List<Long> villageIds);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/EventResourceMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/EventResourceMapper.java
new file mode 100644
index 0000000..064f6f6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/EventResourceMapper.java
@@ -0,0 +1,19 @@
+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.EventResourceDO;
+
+/**
+ * DAO
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Mapper
+public interface EventResourceMapper extends BaseMapper<EventResourceDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/GridBuildRelationDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/GridBuildRelationDAO.java
new file mode 100644
index 0000000..1722066
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/GridBuildRelationDAO.java
@@ -0,0 +1,14 @@
+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.GridBuildRelationDO;
+
+/**
+ * program 攀枝花智慧社区项目 description 特殊人群管理API
+ *
+ * @author manailin Date 2021-01-22 15:30
+ **/
+@Mapper
+public interface GridBuildRelationDAO extends BaseMapper<GridBuildRelationDO> {}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/KeyPersonInfoDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/KeyPersonInfoDAO.java
new file mode 100644
index 0000000..f5b55aa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/KeyPersonInfoDAO.java
@@ -0,0 +1,14 @@
+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.KeyPersonInfoDO;
+
+/**
+ * program 攀枝花智慧社区项目 description 特殊人群管理API
+ *
+ * @author manailin Date 2021-01-22 15:30
+ **/
+@Mapper
+public interface KeyPersonInfoDAO extends BaseMapper<KeyPersonInfoDO> {}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsConfigDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsConfigDAO.java
new file mode 100644
index 0000000..b46d58f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsConfigDAO.java
@@ -0,0 +1,39 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.McsConfig;
+
+/**
+ * (McsConfig)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:06
+ */
+@Mapper
+public interface McsConfigDAO extends BaseMapper<McsConfig> {
+
+    /**
+     * 批量新增数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<McsConfig> 实例对象列表
+     * @return 影响行数
+     */
+    int insertBatch(@Param("entities") List<McsConfig> entities);
+
+    /**
+     * 批量新增或按主键更新数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<McsConfig> 实例对象列表
+     * @return 影响行数
+     * @throws org.springframework.jdbc.BadSqlGrammarException
+     *             入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
+     */
+    int insertOrUpdateBatch(@Param("entities") List<McsConfig> entities);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsCouponDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsCouponDAO.java
new file mode 100644
index 0000000..46318e7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsCouponDAO.java
@@ -0,0 +1,74 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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.microCommercialStreet.PageJoinGameListDTO;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.GameStatisticsVO;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsCouponVO;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.MyCouponVO;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.McsCoupon;
+
+/**
+ * (McsCoupon)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:07
+ */
+@Mapper
+public interface McsCouponDAO extends BaseMapper<McsCoupon> {
+
+    /**
+     * 批量新增数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<McsCoupon> 实例对象列表
+     * @return 影响行数
+     */
+    int insertBatch(@Param("entities") List<McsCoupon> entities);
+
+    /**
+     * 批量新增或按主键更新数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<McsCoupon> 实例对象列表
+     * @return 影响行数
+     * @throws org.springframework.jdbc.BadSqlGrammarException
+     *             入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
+     */
+    int insertOrUpdateBatch(@Param("entities") List<McsCoupon> entities);
+
+    /**
+     * 获取我的戳戳卷统计数据
+     * @param userId
+     * @return
+     */
+    MyCouponVO getMyCouponData(@Param("userId") Long userId);
+
+    /**
+     * 获取用户戳戳卷列表
+     * @param type
+     * @param userId
+     * @return
+     */
+    List<McsCouponVO> getCouponList(@Param("type") Integer type, @Param("userId") Long userId);
+
+    /**
+     * 我的评价-参与游戏列表
+     * @param page
+     * @param pageJoinGameListDTO
+     * @return
+     */
+    IPage<McsCouponVO> pageJoinGameList(@Param("page") Page page, @Param("pageJoinGameListDTO") PageJoinGameListDTO pageJoinGameListDTO);
+
+    /**
+     * 游戏统计
+     * @param userId
+     * @return
+     */
+    GameStatisticsVO getMcsGameStatistics(@Param("userId") Long userId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsEvaluateDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsEvaluateDAO.java
new file mode 100644
index 0000000..4e87f6b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsEvaluateDAO.java
@@ -0,0 +1,57 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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.microCommercialStreet.PageMcsEvaluateDTO;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsEvaluateVO;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.McsEvaluate;
+
+/**
+ * (McsEvaluate)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:08
+ */
+@Mapper
+public interface McsEvaluateDAO extends BaseMapper<McsEvaluate> {
+
+    /**
+     * 批量新增数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<McsEvaluate> 实例对象列表
+     * @return 影响行数
+     */
+    int insertBatch(@Param("entities") List<McsEvaluate> entities);
+
+    /**
+     * 批量新增或按主键更新数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<McsEvaluate> 实例对象列表
+     * @return 影响行数
+     * @throws org.springframework.jdbc.BadSqlGrammarException
+     *             入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
+     */
+    int insertOrUpdateBatch(@Param("entities") List<McsEvaluate> entities);
+
+    /**
+     * 分页查询戳戳游戏评价记录
+     * @param page
+     * @param pageMcsEvaluateDTO
+     * @return
+     */
+    IPage<McsEvaluateVO> pageMcsEvaluate(@Param("page") Page page, @Param("pageMcsEvaluateDTO") PageMcsEvaluateDTO pageMcsEvaluateDTO);
+
+    /**
+     * 获取评价详情
+     * @param evaluateId
+     * @return
+     */
+    McsEvaluateVO getMcsEvaluate(@Param("evaluateId") Long evaluateId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsGameDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsGameDAO.java
new file mode 100644
index 0000000..18485d3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsGameDAO.java
@@ -0,0 +1,107 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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.microCommercialStreet.PageMcsGameDTO;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsGameVO;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.McsGame;
+
+/**
+ * (McsGame)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:09
+ */
+@Mapper
+public interface McsGameDAO extends BaseMapper<McsGame> {
+
+    /**
+     * 批量新增数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<McsGame> 实例对象列表
+     * @return 影响行数
+     */
+    int insertBatch(@Param("entities") List<McsGame> entities);
+
+    /**
+     * 批量新增或按主键更新数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<McsGame> 实例对象列表
+     * @return 影响行数
+     * @throws org.springframework.jdbc.BadSqlGrammarException
+     *             入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
+     */
+    int insertOrUpdateBatch(@Param("entities") List<McsGame> entities);
+
+    /**
+     * 分页查询戳戳游戏
+     * @param page
+     * @param pageMcsGameDTO
+     * @return
+     */
+    IPage<McsGameVO> pageMcsGame(@Param("page") Page page, @Param("pageMcsGameDTO") PageMcsGameDTO pageMcsGameDTO);
+
+    /**
+     * 查询商家已发布数
+     * @param merchantId
+     * @return
+     */
+    Integer selectPublishCount(@Param("merchantId") Long merchantId);
+
+    /**
+     * 查询商家下已被领取的卷总数
+     * @param merchantId
+     * @param type
+     * @return
+     */
+    Integer selectAppliedCount(@Param("merchantId") Long merchantId, @Param("type") Integer type);
+
+    /**
+     * 查询商家下已被核销的卷总数
+     * @param merchantId
+     * @param type
+     * @return
+     */
+    Integer selectVerifiedCount(@Param("merchantId") Long merchantId, @Param("type") Integer type);
+
+    /**
+     * 获取热门游戏
+     * @return
+     */
+    McsGameVO selectPopularGame();
+
+    /**
+     * h5分页游戏查询
+     * @param page
+     * @param pageMcsGameDTO
+     * @return
+     */
+    IPage<McsGameVO> pageH5McsGame(@Param("page") Page page, @Param("pageMcsGameDTO") PageMcsGameDTO pageMcsGameDTO);
+
+    /**
+     * 游戏详情
+     * @param gameId
+     * @return
+     */
+    McsGameVO selectDetailById(@Param("gameId") Long gameId);
+
+    /**
+     * 通过商家id批量下架戳戳游戏
+     * @param needDealIds
+     * @return
+     */
+    Integer setOffByMerchantIds(@Param("needDealIds") List<Long> needDealIds);
+
+    /**
+     * 获取需要处理的到期数据
+     * @return
+     */
+    List<McsGame> selectNeedDealExpire();
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsInformationDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsInformationDAO.java
new file mode 100644
index 0000000..e998839
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsInformationDAO.java
@@ -0,0 +1,66 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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.microCommercialStreet.PageMcsInformationDTO;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsInformationVO;
+import com.panzhihua.service_community.entity.McsInformation;
+
+/**
+ * (McsInformation)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:10
+ */
+@Mapper
+public interface McsInformationDAO extends BaseMapper<McsInformation> {
+
+    /**
+     * 批量新增数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<McsInformation> 实例对象列表
+     * @return 影响行数
+     */
+    int insertBatch(@Param("entities") List<McsInformation> entities);
+
+    /**
+     * 批量新增或按主键更新数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<McsInformation> 实例对象列表
+     * @return 影响行数
+     * @throws org.springframework.jdbc.BadSqlGrammarException
+     *             入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
+     */
+    int insertOrUpdateBatch(@Param("entities") List<McsInformation> entities);
+
+    /**
+     * 分页查询资讯
+     * @param page
+     * @param pageMcsInformationDTO
+     * @return
+     */
+    IPage<McsInformationVO> pageMcsInfo(@Param("page") Page page, @Param("pageMcsInformationDTO") PageMcsInformationDTO pageMcsInformationDTO);
+
+    /**
+     * H5分页查询资讯
+     * @param page
+     * @param pageMcsInformationDTO
+     * @return
+     */
+    IPage<McsInformationVO> pageH5McsInfo(@Param("page") Page page, @Param("pageMcsInformationDTO") PageMcsInformationDTO pageMcsInformationDTO);
+
+    /**
+     * 通过商家id批量下架戳戳资讯
+     * @param needDealIds
+     * @return
+     */
+    Integer setOffByMerchantIds(@Param("needDealIds") List<Long> needDealIds);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsLabelDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsLabelDAO.java
new file mode 100644
index 0000000..7b6fb63
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsLabelDAO.java
@@ -0,0 +1,46 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsLabelVO;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.McsLabel;
+
+/**
+ * (McsLabel)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:10
+ */
+@Mapper
+public interface McsLabelDAO extends BaseMapper<McsLabel> {
+
+    /**
+     * 批量新增数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<McsLabel> 实例对象列表
+     * @return 影响行数
+     */
+    int insertBatch(@Param("entities") List<McsLabel> entities);
+
+    /**
+     * 批量新增或按主键更新数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<McsLabel> 实例对象列表
+     * @return 影响行数
+     * @throws org.springframework.jdbc.BadSqlGrammarException
+     *             入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
+     */
+    int insertOrUpdateBatch(@Param("entities") List<McsLabel> entities);
+
+    /**
+     * 获取产品标签列表
+     * @param userId
+     * @return
+     */
+    List<McsLabelVO> selectVOList(@Param("userId") Long userId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsMerchantDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsMerchantDAO.java
new file mode 100644
index 0000000..979afbd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsMerchantDAO.java
@@ -0,0 +1,100 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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.microCommercialStreet.PageMcsMerchantDTO;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.IndexTopStatisticsVO;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsMerchantVO;
+import com.panzhihua.service_community.entity.McsMerchant;
+
+/**
+ * (McsMerchant)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:11
+ */
+@Mapper
+public interface McsMerchantDAO extends BaseMapper<McsMerchant> {
+
+    /**
+     * 批量新增数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<McsMerchant> 实例对象列表
+     * @return 影响行数
+     */
+    int insertBatch(@Param("entities") List<McsMerchant> entities);
+
+    /**
+     * 批量新增或按主键更新数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<McsMerchant> 实例对象列表
+     * @return 影响行数
+     * @throws org.springframework.jdbc.BadSqlGrammarException
+     *             入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
+     */
+    int insertOrUpdateBatch(@Param("entities") List<McsMerchant> entities);
+
+    /**
+     * 根据id查询商家信息
+     * @param merchantId
+     * @return
+     */
+    McsMerchantVO getMcsMerchantById(@Param("merchantId") Long merchantId);
+
+    /**
+     * 分页查询数字商业街商家
+     * @param page
+     * @param pageMcsMerchantDTO
+     * @return
+     */
+    IPage<McsMerchantVO> pageMcsMerchant(@Param("page") Page page, @Param("pageMcsMerchantDTO") PageMcsMerchantDTO pageMcsMerchantDTO);
+
+    /**
+     * 根据账号查询商家
+     * @param account
+     * @return
+     */
+    McsMerchantVO getMcsMerchantByAccount(@Param("account") String account);
+
+    /**
+     * 首页顶部数据
+     * @return
+     */
+    IndexTopStatisticsVO getMcsIndexTopData();
+
+    /**
+     * H5分页查询数字商业街商家
+     * @param page
+     * @param pageMcsMerchantDTO
+     * @return
+     */
+    IPage<McsMerchantVO> pageH5McsMerchant(@Param("page") Page page, @Param("pageMcsMerchantDTO") PageMcsMerchantDTO pageMcsMerchantDTO);
+
+    /**
+     * 查询需要处理的已到期商家
+     * @return
+     */
+    List<Long> selectNeedDealExpiredMerchant();
+
+    /**
+     * 修改is_pause状态为TRUE
+     * @param needDealIds
+     * @return
+     */
+    Integer updateIsPauseStatus(@Param("needDealIds") List<Long> needDealIds);
+
+    /**
+     * 设置相关联用户为启用状态
+     * @param userId
+     * @return
+     */
+    Integer enableUserStatus(@Param("userId") Long userId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsOrderDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsOrderDao.java
new file mode 100644
index 0000000..da1b430
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsOrderDao.java
@@ -0,0 +1,41 @@
+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.property.CommonPage;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsOrderVO;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.McsOrder;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 商业街订单表(McsOrder)表数据库访问层
+ *
+ * @author makejava
+ * @since 2022-01-04 16:10:06
+ */
+@Mapper
+public interface McsOrderDao extends BaseMapper<McsOrder> {
+    /**
+     * 分页查询
+     * @param page
+     * @param commonPage
+     * @return
+     */
+    IPage<McsOrderVO> pageList(Page page, @Param("commonPage")CommonPage commonPage);
+
+    /**
+     * 详情接口
+     * @param id
+     * @return
+     */
+    McsOrderVO detail(Long id);
+
+    /**
+     * 订单id查询电话
+     * @param id
+     * @return
+     */
+    String selectPhone(Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsProductDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsProductDAO.java
new file mode 100644
index 0000000..2c41ef7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsProductDAO.java
@@ -0,0 +1,50 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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.microCommercialStreet.PageMcsProductDTO;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsProductVO;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.McsProduct;
+
+/**
+ * (McsProduct)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:12
+ */
+@Mapper
+public interface McsProductDAO extends BaseMapper<McsProduct> {
+
+    /**
+     * 批量新增数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<McsProduct> 实例对象列表
+     * @return 影响行数
+     */
+    int insertBatch(@Param("entities") List<McsProduct> entities);
+
+    /**
+     * 批量新增或按主键更新数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<McsProduct> 实例对象列表
+     * @return 影响行数
+     * @throws org.springframework.jdbc.BadSqlGrammarException
+     *             入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
+     */
+    int insertOrUpdateBatch(@Param("entities") List<McsProduct> entities);
+
+    /**
+     * 分页查询商家产品信息
+     * @param page
+     * @param pageMcsProductDTO
+     * @return
+     */
+    IPage<McsProductVO> pageMcsProduct(@Param("page") Page page, @Param("pageMcsProductDTO") PageMcsProductDTO pageMcsProductDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsProductLabelDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsProductLabelDAO.java
new file mode 100644
index 0000000..6923774
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsProductLabelDAO.java
@@ -0,0 +1,39 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.McsProductLabel;
+
+/**
+ * (McsProductLabel)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:12
+ */
+@Mapper
+public interface McsProductLabelDAO extends BaseMapper<McsProductLabel> {
+
+    /**
+     * 批量新增数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<McsProductLabel> 实例对象列表
+     * @return 影响行数
+     */
+    int insertBatch(@Param("entities") List<McsProductLabel> entities);
+
+    /**
+     * 批量新增或按主键更新数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<McsProductLabel> 实例对象列表
+     * @return 影响行数
+     * @throws org.springframework.jdbc.BadSqlGrammarException
+     *             入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
+     */
+    int insertOrUpdateBatch(@Param("entities") List<McsProductLabel> entities);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsVerifiedRecordDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsVerifiedRecordDAO.java
new file mode 100644
index 0000000..3059555
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/McsVerifiedRecordDAO.java
@@ -0,0 +1,49 @@
+package com.panzhihua.service_community.dao;
+
+import java.util.List;
+
+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.microCommercialStreet.PageVerifyRecordDTO;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsVerifyRecordVO;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.McsVerifiedRecord;
+
+/**
+ * (McsVerifiedRecord)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:13
+ */
+@Mapper
+public interface McsVerifiedRecordDAO extends BaseMapper<McsVerifiedRecord> {
+
+    /**
+     * 批量新增数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<McsVerifiedRecord> 实例对象列表
+     * @return 影响行数
+     */
+    int insertBatch(@Param("entities") List<McsVerifiedRecord> entities);
+
+    /**
+     * 批量新增或按主键更新数据(MyBatis原生foreach方法)
+     *
+     * @param entities
+     *            List<McsVerifiedRecord> 实例对象列表
+     * @return 影响行数
+     * @throws org.springframework.jdbc.BadSqlGrammarException
+     *             入参是空List的时候会抛SQL语句错误的异常,请自行校验入参
+     */
+    int insertOrUpdateBatch(@Param("entities") List<McsVerifiedRecord> entities);
+
+    /**
+     * 分页查询核销记录
+     * @param pageVerifyRecordDTO
+     * @return
+     */
+    IPage<McsVerifyRecordVO> pageMcsVerifyRecord(@Param("page") Page page, @Param("pageVerifyRecordDTO") PageVerifyRecordDTO pageVerifyRecordDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/MostBeautifulVolunteerDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/MostBeautifulVolunteerDao.java
new file mode 100644
index 0000000..eae6e32
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/MostBeautifulVolunteerDao.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.vos.community.MostBeautifulVolunteerVO;
+import com.panzhihua.service_community.entity.MostBeautifulVolunteer;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 用户表 后台用户+小程序用户(SysUser)表数据库访问层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 用户表 后台用户+小程序用户相关功能
+ *
+ * @author zzj
+ * @since 2022-06-10 15:34:17
+ */
+@Mapper
+public interface MostBeautifulVolunteerDao extends BaseMapper<MostBeautifulVolunteer>
+{
+    //查询单个详情
+    MostBeautifulVolunteer queryById(@Param("id") String id);
+
+
+    //获取列表
+    IPage<MostBeautifulVolunteer> queryList(Page page,
+                                            @Param("name") String name,
+                                            @Param("unmountType") String unmountType);
+
+
+    int insertMostBeautifulVolunteer(@Param("mostBeautifulVolunteerVO") MostBeautifulVolunteerVO mostBeautifulVolunteerVO);
+
+    int updateById(@Param("mostBeautifulVolunteerVO") MostBeautifulVolunteerVO mostBeautifulVolunteerVO);
+
+    int deleteById(@Param("id") String id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/NewFightNeedProblemClaimMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/NewFightNeedProblemClaimMapper.java
new file mode 100644
index 0000000..b5eb5b3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/NewFightNeedProblemClaimMapper.java
@@ -0,0 +1,9 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_community.entity.NewFightNeedProblemClaim;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface NewFightNeedProblemClaimMapper extends BaseMapper<NewFightNeedProblemClaim> {
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/NewFightNeedProblemInventoryMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/NewFightNeedProblemInventoryMapper.java
new file mode 100644
index 0000000..561845c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/NewFightNeedProblemInventoryMapper.java
@@ -0,0 +1,15 @@
+package com.panzhihua.service_community.dao;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_community.entity.NewFightNeedProblemInventory;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+
+@Mapper
+public interface NewFightNeedProblemInventoryMapper extends BaseMapper<NewFightNeedProblemInventory> {
+    @Select("select * from new_fight_need_problem_inventory")
+    List<NewFightNeedProblemInventory> selectAll();
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/RentingHourseContractConfigDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/RentingHourseContractConfigDao.java
new file mode 100644
index 0000000..3014505
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/RentingHourseContractConfigDao.java
@@ -0,0 +1,29 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.community.rentingHouses.PageRentingHousesConfigDTO;
+import com.panzhihua.common.model.vos.community.rentingHouses.RentingHousesConfigVO;
+import org.apache.ibatis.annotations.Mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_community.entity.RentingHourseContractConfig;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 房屋租赁-配置项表(RentingHourseContractConfig)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-11-23 10:46:19
+ */
+@Mapper
+public interface RentingHourseContractConfigDao extends BaseMapper<RentingHourseContractConfig> {
+
+    /**
+     * 分页查询房屋租赁基础配置
+     * @param pageRentingHousesConfigDTO
+     * @return
+     */
+    IPage<RentingHousesConfigVO> pageRentingHousesConfig(@Param("page") Page page,
+                                                         @Param("pageRentingHousesConfigDTO") PageRentingHousesConfigDTO pageRentingHousesConfigDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/RentingHourseFileDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/RentingHourseFileDao.java
new file mode 100644
index 0000000..0b70c72
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/RentingHourseFileDao.java
@@ -0,0 +1,16 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.RentingHourseFile;
+
+/**
+ * 房屋租赁-涉及的文件表(RentingHourseFile)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-11-23 10:46:19
+ */
+@Mapper
+public interface RentingHourseFileDao extends BaseMapper<RentingHourseFile> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/RentingHourseLabelDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/RentingHourseLabelDao.java
new file mode 100644
index 0000000..11cfa72
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/RentingHourseLabelDao.java
@@ -0,0 +1,16 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.RentingHourseLabel;
+
+/**
+ * 房屋租赁-房源标签(RentingHourseLabel)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-11-23 10:46:38
+ */
+@Mapper
+public interface RentingHourseLabelDao extends BaseMapper<RentingHourseLabel> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/RentingHourseOrderDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/RentingHourseOrderDao.java
new file mode 100644
index 0000000..1196c59
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/RentingHourseOrderDao.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.property.CommonPage;
+import com.panzhihua.common.model.vos.community.rentHouse.OrderStatics;
+import com.panzhihua.common.model.vos.community.rentHouse.RentingHourseOrderVO;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.RentingHourseOrder;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 房屋租赁-房屋订单表(RentingHourseOrder)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-11-23 10:46:55
+ */
+@Mapper
+public interface RentingHourseOrderDao extends BaseMapper<RentingHourseOrder> {
+    /**
+     * 分页查询
+     * @param page
+     * @param commonPage
+     * @return
+     */
+    IPage<RentingHourseOrderVO> pageList(Page page,@Param("commonPage")CommonPage commonPage);
+
+    /**
+     * 订单统计
+     * @param rentingHourseOrderVO
+     * @return
+     */
+    OrderStatics orderStatics(RentingHourseOrderVO rentingHourseOrderVO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/RentingHoursePayingOrderDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/RentingHoursePayingOrderDao.java
new file mode 100644
index 0000000..95a1807
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/RentingHoursePayingOrderDao.java
@@ -0,0 +1,16 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.RentingHoursePayingOrder;
+
+/**
+ * 房屋租赁-支付流水记录表(RentingHoursePayingOrder)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-11-23 10:47:16
+ */
+@Mapper
+public interface RentingHoursePayingOrderDao extends BaseMapper<RentingHoursePayingOrder> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/RentingHoursePreOrderDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/RentingHoursePreOrderDao.java
new file mode 100644
index 0000000..ae5248d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/RentingHoursePreOrderDao.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.property.CommonPage;
+import com.panzhihua.common.model.vos.community.rentHouse.PreOrderStatics;
+import com.panzhihua.common.model.vos.community.rentHouse.RentingHoursePreOrderVO;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.RentingHoursePreOrder;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 房屋租赁-房屋定金订单表(RentingHoursePreOrder)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-11-23 10:47:53
+ */
+@Mapper
+public interface RentingHoursePreOrderDao extends BaseMapper<RentingHoursePreOrder> {
+    /**
+     * 分页查询
+     * @param page
+     * @param commonPage
+     * @return
+     */
+    IPage<RentingHoursePreOrderVO> pageList(Page page, @Param("commonPage")CommonPage commonPage);
+
+    /**
+     * 定金统计
+     * @param rentingHoursePreOrderVO
+     * @return
+     */
+    PreOrderStatics statics(RentingHoursePreOrderVO rentingHoursePreOrderVO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/RentingHourseRefundOrderDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/RentingHourseRefundOrderDao.java
new file mode 100644
index 0000000..8642827
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/RentingHourseRefundOrderDao.java
@@ -0,0 +1,16 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.RentingHourseRefundOrder;
+
+/**
+ * 房屋租赁-退款流水记录表(RentingHourseRefundOrder)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-11-23 10:48:14
+ */
+@Mapper
+public interface RentingHourseRefundOrderDao extends BaseMapper<RentingHourseRefundOrder> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/RentingHourseRegisterDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/RentingHourseRegisterDao.java
new file mode 100644
index 0000000..ce81986
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/RentingHourseRegisterDao.java
@@ -0,0 +1,51 @@
+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.rentingHouses.NearbyDTO;
+import com.panzhihua.common.model.dtos.community.rentingHouses.PageRentingHouseRegisterDTO;
+import com.panzhihua.common.model.vos.community.rentingHouses.RentingHouseRegisterVO;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.RentingHourseRegister;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 房屋租售-租赁房屋登记(RentingHourseRegister)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-11-23 10:49:08
+ */
+@Mapper
+public interface RentingHourseRegisterDao extends BaseMapper<RentingHourseRegister> {
+
+    /**
+     * 分页获取房源信息
+     * @param pageRegisterDTO
+     * @return
+     */
+    IPage<RentingHouseRegisterVO> pageRentingHouse(@Param("page") Page page,
+                                                   @Param("pageRegisterDTO") PageRentingHouseRegisterDTO pageRegisterDTO);
+
+    /**
+     * 正方形查找附近的房屋
+     * @param minX
+     * @param maxX
+     * @param minY
+     * @param maxY
+     * @param nearbyDTO
+     * @return
+     */
+    List<RentingHouseRegisterVO> nearby(@Param("minX") Double minX, @Param("maxX") Double maxX, @Param("minY") Double minY,
+                                        @Param("maxY") Double maxY, @Param("nearbyDTO") NearbyDTO nearbyDTO);
+
+    /**
+     * 分页获取房源信息
+     * @param pageRegisterDTO
+     * @return
+     */
+    IPage<RentingHouseRegisterVO> pageRentingHouseApplet(@Param("page") Page page,
+                                                   @Param("pageRegisterDTO") PageRentingHouseRegisterDTO pageRegisterDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/RentingHourseReturnOrderDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/RentingHourseReturnOrderDao.java
new file mode 100644
index 0000000..f3d85d8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/RentingHourseReturnOrderDao.java
@@ -0,0 +1,16 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.RentingHourseReturnOrder;
+
+/**
+ * 房屋租赁-房屋退租申请表(RentingHourseReturnOrder)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-11-23 10:49:37
+ */
+@Mapper
+public interface RentingHourseReturnOrderDao extends BaseMapper<RentingHourseReturnOrder> {
+
+}
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
new file mode 100644
index 0000000..2929a46
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/SysConfMapper.java
@@ -0,0 +1,43 @@
+package com.panzhihua.service_community.dao;
+
+import com.panzhihua.common.model.vos.community.CommunityPublicityVO;
+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.PageSysConfDTO;
+import com.panzhihua.common.model.vos.community.SysConfVO;
+import com.panzhihua.service_community.model.dos.SysConfDO;
+
+/**
+ * DAO
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-06-09
+ */
+@Mapper
+public interface SysConfMapper extends BaseMapper<SysConfDO> {
+
+    /**
+     * 分页查询
+     * 
+     * @param pageSysConfDTO
+     * @return
+     */
+    IPage<SysConfVO> findByPage(Page page, @Param("pageSysConfDTO") PageSysConfDTO pageSysConfDTO);
+
+    String getSysConfValue(@Param("key") String key, @Param("communityId") Long communityId);
+
+    CommunityPublicityVO getData(@Param("communityId") String communityId);
+
+    int addDate(@Param("item") CommunityPublicityVO item);
+
+    int editDate(@Param("item") CommunityPublicityVO item);
+
+    int deleteData(@Param("communityId") String communityId);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/SysTemplateConfigDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/SysTemplateConfigDao.java
new file mode 100644
index 0000000..d983b25
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/SysTemplateConfigDao.java
@@ -0,0 +1,16 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.SysTemplateConfig;
+
+/**
+ * (SysTemplateConfig)表数据库访问层
+ *
+ * @author makejava
+ * @since 2022-01-13 14:46:03
+ */
+@Mapper
+public interface SysTemplateConfigDao extends BaseMapper<SysTemplateConfig> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/SysUserDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/SysUserDao.java
new file mode 100644
index 0000000..bdabe93
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/SysUserDao.java
@@ -0,0 +1,20 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_community.entity.SysUser;
+
+import java.util.List;
+
+/**
+ * 用户表 后台用户+小程序用户(SysUser)表数据库访问层
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 用户表 后台用户+小程序用户相关功能
+ *
+ * @author zzj
+ * @since 2022-06-10 15:34:17
+ */
+@Mapper
+public interface SysUserDao extends BaseMapper<SysUser> {
+    List<String> selectOpenId();
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/SysUserMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/SysUserMapper.java
new file mode 100644
index 0000000..026cad0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/SysUserMapper.java
@@ -0,0 +1,67 @@
+package com.panzhihua.service_community.dao;
+
+import com.panzhihua.service_community.entity.SysUser;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.common.*;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import java.util.List;
+
+/**
+ * title: 用户表 后台用户+小程序用户表数据库访问层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 用户表 后台用户+小程序用户表数据库访问层
+ *
+ * @author lyq
+ * @date 2022-03-28 14:28:09
+ */
+@Mapper
+public interface SysUserMapper extends BaseMapper<SysUser> {
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param userId 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-28 14:28:09
+     */
+    SysUserVo queryById(Long userId);
+
+    /**
+     * description  queryAllByLimit  分页查询
+     *
+     * @param sysUser 请求参数
+     * @param page    分页参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-28 14:28:09
+     */
+    IPage<SysUserVo> queryAllByLimit(@Param("dto") PageSysUserDto sysUser, Page page);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param sysUser 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-28 14:28:09
+     */
+    List<SysUserVo> queryAllByList(@Param("dto") PageSysUserDto sysUser);
+
+    /**
+     * 修改商户后台账号密码
+     * @param storeId   商户id
+     * @param passWord  密码
+     * @param pwd  密文密码
+     * @return  修改结果
+     */
+    Integer updatePassWord(@Param("storeId") Long storeId, @Param("passWord") String passWord, @Param("pwd") String pwd);
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/UnionpayCarWashDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/UnionpayCarWashDao.java
new file mode 100644
index 0000000..497c4c7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/UnionpayCarWashDao.java
@@ -0,0 +1,20 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_community.entity.UnionpayCarWash;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+
+@Mapper
+public interface UnionpayCarWashDao extends BaseMapper<UnionpayCarWash>
+{
+    UnionpayCarWash queryById(@Param("carWashId") String carWashId);
+
+    UnionpayCarWash carWashById(@Param("unionpayId") String unionpayId);
+
+    int inset(@Param("carWashId") String carWashId,
+              @Param("unionpayOrderId") String unionpayOrderId,
+              @Param("money") String money);
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerActivitiesPeopleDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerActivitiesPeopleDao.java
new file mode 100644
index 0000000..d4c0c65
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerActivitiesPeopleDao.java
@@ -0,0 +1,60 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.common.model.vos.community.VolunteerActivitiesPeopleVO;
+import com.panzhihua.service_community.entity.VolunteerActivitiesPeople;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface VolunteerActivitiesPeopleDao extends BaseMapper<VolunteerActivitiesPeople>
+{
+    /**
+     * 志愿者单个详情
+     * @param id
+     * @return
+     */
+    VolunteerActivitiesPeople vapGetById(@Param("id") String id);
+
+    /**
+     * 参与人员列表
+     * @param activityId
+     * @param communityId
+     * @return
+     */
+    List<VolunteerActivitiesPeople> vapGetList(@Param("activityId") String activityId,
+                                               @Param("communityId") String communityId);
+
+    /**
+     * 添加参与人员
+     * @param volunteerActivitiesPeopleVO
+     * @return
+     */
+    int vapInsert(@Param("volunteerActivitiesPeopleVO") VolunteerActivitiesPeopleVO volunteerActivitiesPeopleVO);
+
+    /**
+     * 修改参与人员
+     * @param volunteerActivitiesPeopleVO
+     * @return
+     */
+    int vapUpdate(@Param("volunteerActivitiesPeopleVO") VolunteerActivitiesPeopleVO volunteerActivitiesPeopleVO);
+
+    /**
+     * 删除参与人员
+     * @param id
+     * @return
+     */
+    int vapDelete(@Param("id") String id);
+
+    /**
+     * 查询奖励未发放人数
+     * @param activityId
+     * @return
+     */
+    int vapGetUnissuedQuantity(@Param("activityId") String activityId);
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerActivityDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerActivityDao.java
new file mode 100644
index 0000000..bed13a8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerActivityDao.java
@@ -0,0 +1,53 @@
+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.vos.community.VolunteerActivityVO;
+import com.panzhihua.service_community.entity.VolunteerActivity;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+
+@Mapper
+public interface VolunteerActivityDao extends BaseMapper<VolunteerActivity>
+{
+
+    /**
+     * 获取单个详情
+     * @param id
+     * @return
+     */
+    VolunteerActivity queryById(@Param("id") String id,@Param("userId") String userId);
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    IPage<VolunteerActivity> queryList(Page page,
+                                       @Param("name") String name,
+                                       @Param("acState") String acState,
+                                       @Param("acType") String acType,
+                                       @Param("userId") String userId,
+                                       @Param("actityBeginTime") Date actityBeginTime,
+                                       @Param("actityEndTime") Date actityEndTime);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    int insertVolunteer(@Param("volunteerActivityVO") VolunteerActivityVO volunteerActivityVO);
+
+
+    int updateById(@Param("volunteerActivityVO") VolunteerActivityVO volunteerActivityVO);
+
+
+    int deleteById(@Param("id") String id);
+
+    List<VolunteerActivity> timedTaskList();
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerCommunityConfigDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerCommunityConfigDao.java
new file mode 100644
index 0000000..2d57ab4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerCommunityConfigDao.java
@@ -0,0 +1,33 @@
+package com.panzhihua.service_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.common.model.vos.community.VolunteerCommunityConfigVO;
+import com.panzhihua.service_community.entity.VolunteerCommunityConfig;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface VolunteerCommunityConfigDao extends BaseMapper<VolunteerCommunityConfig>
+{
+    /**
+     * 详情
+     * @param
+     * @return
+     */
+    VolunteerCommunityConfig getData(@Param("communityId") String communityId);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    int insertvo(@Param("item") VolunteerCommunityConfigVO item);
+
+
+    int update(@Param("item") VolunteerCommunityConfigVO item);
+
+
+    int delete(@Param("id") String id);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerCommunityDiscountDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerCommunityDiscountDao.java
new file mode 100644
index 0000000..599383a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerCommunityDiscountDao.java
@@ -0,0 +1,39 @@
+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.vos.community.VolunteerCommunityDiscountVO;
+import com.panzhihua.common.model.vos.community.VolunteerTypeVO;
+import com.panzhihua.service_community.entity.VolunteerCommunityDiscount;
+import com.panzhihua.service_community.entity.VolunteerType;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface VolunteerCommunityDiscountDao extends BaseMapper<VolunteerCommunityDiscount>
+{
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    List<VolunteerCommunityDiscount> getList(@Param("communityId") String communityId);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    int insert(@Param("item") VolunteerCommunityDiscountVO item);
+
+
+    int update(@Param("item") VolunteerCommunityDiscountVO item);
+
+
+    int delete(@Param("id") String id);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerCreditsExchangeDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerCreditsExchangeDao.java
new file mode 100644
index 0000000..aeac505
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerCreditsExchangeDao.java
@@ -0,0 +1,69 @@
+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.vos.community.VolunteerCreditsExchangeVO;
+import com.panzhihua.common.model.vos.community.VolunteerTypeVO;
+import com.panzhihua.service_community.entity.VolunteerCreditsExchange;
+import com.panzhihua.service_community.entity.VolunteerType;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface VolunteerCreditsExchangeDao extends BaseMapper<VolunteerCreditsExchange>
+{
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    IPage<VolunteerCreditsExchange> getList(Page page,
+                                            @Param("goodsId") String goodsId,
+                                            @Param("orderNumber") String orderNumber,
+                                            @Param("goodsName") String goodsName,
+                                            @Param("condition") String condition,
+                                            @Param("userName") String userName,
+                                            @Param("communityId") String communityId,
+                                            @Param("userId") String userId,
+                                            @Param("orderType") String orderType,
+                                            @Param("merchantId") String merchantId
+                                            );
+
+    /**
+     * 查询详情
+     * @param id
+     * @return
+     */
+    VolunteerCreditsExchange getData(@Param("id") String id);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    int insertData(@Param("item") VolunteerCreditsExchangeVO item);
+
+    /**
+     * 更新
+     * @param item
+     * @return
+     */
+    int update(@Param("item") VolunteerCreditsExchangeVO item);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    int delete(@Param("id") String id);
+
+    /**
+     * 核销
+     * @param id
+     * @return
+     */
+    int conditionData(@Param("id") String id);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerIntegralMerchantDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerIntegralMerchantDao.java
new file mode 100644
index 0000000..052b9b6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerIntegralMerchantDao.java
@@ -0,0 +1,50 @@
+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.vos.community.VolunteerIntegralMerchantVO;
+import com.panzhihua.service_community.entity.VolunteerIntegralMerchant;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface VolunteerIntegralMerchantDao extends BaseMapper<VolunteerIntegralMerchant>
+{
+
+    /**
+     * 获取单个详情
+     * @param id
+     * @return
+     */
+    VolunteerIntegralMerchant queryById(@Param("id") String id);
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    IPage<VolunteerIntegralMerchant> queryList(Page page,
+                                       @Param("name") String name,
+                                       @Param("state") String state,
+                                       @Param("goodType") String goodType,
+                                       @Param("merchantId") String merchantId);
+
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    int insertVolunteer(@Param("vimVO") VolunteerIntegralMerchantVO vimVO);
+
+
+    int updateById(@Param("vimVO") VolunteerIntegralMerchantVO vimVO);
+
+
+    int deleteById(@Param("id") String id);
+
+    int getNum(@Param("merchantId") String merchantId);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerIntegralRecordDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerIntegralRecordDao.java
new file mode 100644
index 0000000..689efab
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerIntegralRecordDao.java
@@ -0,0 +1,49 @@
+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.vos.community.VolunteerActivityVO;
+import com.panzhihua.common.model.vos.community.VolunteerIntegralRecordVO;
+import com.panzhihua.service_community.entity.VolunteerActivity;
+import com.panzhihua.service_community.entity.VolunteerIntegralRecord;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+
+@Mapper
+public interface VolunteerIntegralRecordDao extends BaseMapper<VolunteerIntegralRecord>
+{
+
+    /**
+     * 获取单个详情
+     * @param id
+     * @return
+     */
+    VolunteerIntegralRecord getId(@Param("id") String id);
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    IPage<VolunteerIntegralRecord> getList(Page page,
+                                       @Param("userId") String userId,
+                                       @Param("communityId") String communityId);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    int insertVolunteer(@Param("volunteerIntegralRecordVO") VolunteerIntegralRecordVO volunteerIntegralRecordVO);
+
+
+    int updateId(@Param("volunteerIntegralRecordVO") VolunteerIntegralRecordVO volunteerIntegralRecordVO);
+
+
+    int deleteId(@Param("id") String id);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerMerchantDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerMerchantDao.java
new file mode 100644
index 0000000..240c49c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerMerchantDao.java
@@ -0,0 +1,68 @@
+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.vos.community.VolunteerMerchantVO;
+import com.panzhihua.common.model.vos.community.VolunteerTypeVO;
+import com.panzhihua.service_community.entity.SysUser;
+import com.panzhihua.service_community.entity.VolunteerMerchant;
+import com.panzhihua.service_community.entity.VolunteerType;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface VolunteerMerchantDao extends BaseMapper<VolunteerMerchant>
+{
+
+
+    VolunteerMerchant getById(@Param("id") String id);
+
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    IPage<VolunteerMerchant> getList(Page page,
+                                     @Param("merchantState") String merchantState,
+                                     @Param("merchantType") String merchantType,
+                                     @Param("name") String name,
+                                     @Param("communityId") String communityId);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    int insertData(@Param("vtvo") VolunteerMerchantVO vtvo);
+
+
+    int Update(@Param("vtvo") VolunteerMerchantVO vtvo);
+
+
+    int delete(@Param("id") String id);
+
+    /**
+     * 判断是否是商家
+     * @return
+     */
+    String isMerchant(@Param("userId") String userId);
+
+    /**
+     * 根据电话号码  或者姓名查询用户
+     * @param
+     * @return
+     */
+    List<SysUser> getUser(@Param("communityId") String communityId,
+                          @Param("userName") String userName,
+                          @Param("userPhone") String userPhone);
+
+
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerMerchantEvaluateDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerMerchantEvaluateDao.java
new file mode 100644
index 0000000..9306186
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerMerchantEvaluateDao.java
@@ -0,0 +1,50 @@
+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.vos.community.VolunteerMerchantEvaluateVO;
+import com.panzhihua.service_community.entity.VolunteerMerchantEvaluate;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface VolunteerMerchantEvaluateDao extends BaseMapper<VolunteerMerchantEvaluate>
+{
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    IPage<VolunteerMerchantEvaluate> getList(Page page,
+                                             @Param("communityId") String communityId,
+                                             @Param("merchantId") String merchantId);
+
+    /**
+     * 获取详情
+     * @param id
+     * @return
+     */
+    VolunteerMerchantEvaluate getData(@Param("id") String id);
+
+    /**
+     * 新增评价
+     * @return
+     */
+    int insert(@Param("item") VolunteerMerchantEvaluateVO item);
+
+    /**
+     * 更新评价
+     * @return
+     */
+    int update(@Param("item") VolunteerMerchantEvaluateVO item);
+
+
+    /**
+     * 删除评价
+     * @param id
+     * @return
+     */
+    int delete(@Param("id") String id);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerMerchantWithdrawDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerMerchantWithdrawDao.java
new file mode 100644
index 0000000..2a2738c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerMerchantWithdrawDao.java
@@ -0,0 +1,60 @@
+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.vos.community.VolunteerMerchantWithdrawVO;
+import com.panzhihua.service_community.entity.VolunteerMerchantWithdraw;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface VolunteerMerchantWithdrawDao extends BaseMapper<VolunteerMerchantWithdraw>
+{
+
+    /**
+     * 商家提现列表啊
+     * @param page
+     * @param disposeType
+     * @return
+     */
+    IPage<VolunteerMerchantWithdraw> getList(Page page,
+                                             @Param("disposeType") String disposeType,
+                                             @Param("merchantName") String merchantName,
+                                             @Param("merchantId") String merchantId,
+                                             @Param("communityId") String communityId);
+
+
+
+
+
+    /**
+     * 新增商家提现
+     * @param item
+     * @return
+     */
+    int insert(@Param("item") VolunteerMerchantWithdrawVO item);
+
+    /**
+     * 编辑商家提现
+     * @param item
+     * @return
+     */
+    int update(@Param("item") VolunteerMerchantWithdrawVO item);
+
+    /**
+     * 删除商家提现
+     * @param id
+     * @return
+     */
+    int delete(@Param("id") String id);
+
+    /**
+     * 处理商家提现
+     * @param id
+     * @return
+     */
+    int dispose(@Param("id") String id);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerTypeDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerTypeDao.java
new file mode 100644
index 0000000..52e944d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/dao/VolunteerTypeDao.java
@@ -0,0 +1,40 @@
+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.vos.community.VolunteerActivityVO;
+import com.panzhihua.common.model.vos.community.VolunteerTypeVO;
+import com.panzhihua.service_community.entity.VolunteerActivity;
+import com.panzhihua.service_community.entity.VolunteerType;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+
+@Mapper
+public interface VolunteerTypeDao extends BaseMapper<VolunteerType>
+{
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    IPage<VolunteerType> volunteerTypeGetList(Page page,@Param("type") String type);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    int insertvolunteerType(@Param("volunteerTypeVO") VolunteerTypeVO volunteerTypeVO);
+
+
+    int volunteerTypeUpdate(@Param("volunteerTypeVO") VolunteerTypeVO volunteerTypeVO);
+
+
+    int volunteerTypeDelete(@Param("id") String id);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/AutomessageSysUser.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/AutomessageSysUser.java
new file mode 100644
index 0000000..2f42cd4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/AutomessageSysUser.java
@@ -0,0 +1,263 @@
+package com.panzhihua.service_community.entity;
+
+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 com.fasterxml.jackson.annotation.JsonFormat;
+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;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 用户信息表
+ * </p>
+ *
+ * @author xiang
+ * @since 2022-07-05
+ */
+@ApiModel("用户信息实体类")
+@Data
+@TableName("automessage_sys_user")
+public class AutomessageSysUser implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+    /**
+     * 主键id
+     */
+    @ApiModelProperty("主键id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty("用户id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long userId;
+
+
+    /**
+     * 登录账号
+     */
+    @ApiModelProperty("登录账号")
+    private String loginName;
+
+    /**
+     * 用户昵称
+     */
+    @ApiModelProperty("用户昵称")
+    private String userName;
+
+    /**
+     * 用户类型(1系统后台用户     2导办人员用户)
+     */
+    @ApiModelProperty("用户类型(1系统后台用户     2导办人员用户)")
+    private String userType;
+
+
+    /**
+     * 手机号码
+     */
+    @ApiModelProperty("手机号码")
+    private String phonenumber;
+
+    /**
+     * 性别 1 男 2 女
+     */
+    @ApiModelProperty("性别 1 男 2 女")
+    private String sex;
+
+    /**
+     * 头像路径
+     */
+    @ApiModelProperty("头像路径")
+    private String avatar;
+
+    /**
+     * 密码
+     */
+    @ApiModelProperty("密码")
+    private String password;
+
+    /**
+     * 盐加密
+     */
+    @ApiModelProperty("加密")
+    private String salt;
+
+    /**
+     * 帐号状态(0正常 1停用)
+     */
+    @ApiModelProperty("帐号状态(0正常 1停用)")
+    private String status;
+
+    /**
+     * 删除标志(0代表存在 2代表删除)
+     */
+    @ApiModelProperty("删除标志(0代表存在 2代表删除)")
+    private String delFlag;
+
+    /**
+     * 最后登录IP
+     */
+    @ApiModelProperty("最后登录IP")
+    private String loginIp;
+
+    /**
+     * 最后登录时间
+     */
+    @ApiModelProperty("最后登录时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime loginDate;
+
+    /**
+     * 密码最后更新时间
+     */
+    @ApiModelProperty("密码最后更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime pwdUpdateDate;
+
+    /**
+     * 创建者
+     */
+    @ApiModelProperty("创建者")
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime createTime;
+
+    /**
+     * 更新者
+     */
+    @ApiModelProperty("更新者")
+    private String updateBy;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private LocalDateTime updateTime;
+
+    /**
+     * 备注
+     */
+    @ApiModelProperty("备注")
+    private String remark;
+
+    /**
+     * 角色ids
+     */
+    @ApiModelProperty("角色id")
+    private String roleIds;
+
+    /**
+     * 数据权限
+     */
+    @ApiModelProperty("数据权限")
+    private String dataPermission;
+
+    /**
+     * 部门id
+     */
+    @ApiModelProperty("部门id")
+    private String departmentId;
+
+
+    /**
+     * 一级id
+     */
+    @ApiModelProperty("一级id")
+    private String stairId;
+
+    /**
+     * 二级id
+     */
+    @ApiModelProperty("二级id")
+    private String secondLevelId;
+
+    /**
+     * 所属部门名称
+     */
+    @ApiModelProperty("所属部门名称")
+    private String departmentName;
+
+    /**
+     * 部门所属区域
+     */
+    @ApiModelProperty("部门所属区域")
+    private String departmentArea;
+
+    /**
+     * 空闲状态(0 空闲    1 忙碌)
+     */
+    @ApiModelProperty("空闲状态(0 空闲    1 忙碌)")
+    private String leisureState;
+
+    /**
+     * 擅长办理事务ids
+     */
+    @ApiModelProperty("擅长办理事务ids")
+    private String masterIds;
+
+    /**
+     * 擅长事务名称
+     */
+    @ApiModelProperty("擅长事务名称")
+    private String masterNames;
+
+    /**
+     * 办结事项ids
+     */
+    @ApiModelProperty("办结事项ids")
+    private String transactionIds;
+
+    /**
+     * 办结事项名称
+     */
+    @ApiModelProperty("办结事项名称")
+    private String transactionNames;
+
+    /**
+     * 微信小程序id
+     */
+    @ApiModelProperty("微信小程序id")
+    private String openid;
+
+    /**
+     * 待处理办事指南数量
+     */
+    @ApiModelProperty("待处理办事指南数量")
+    private Integer transactionNum;
+
+
+    @TableField(exist = false)
+    @ApiModelProperty("权限资格")
+    private String permission;
+
+    @TableField(exist = false)
+    @ApiModelProperty("角色名称")
+    private String roleName;
+
+
+    @TableField(exist = false)
+    @ApiModelProperty("创建人名称")
+    private String createName;
+
+    @ApiModelProperty("是否是部门领导(1是  2不是)")
+    private String isDivisionHead;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/BcRegion.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/BcRegion.java
new file mode 100644
index 0000000..d7a92e1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/BcRegion.java
@@ -0,0 +1,113 @@
+package com.panzhihua.service_community.entity;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 行政区划表(BcRegion)表实体类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 行政区划表相关功能
+ *
+ * @author zzj
+ * @since 2022-04-20 14:26:13
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("行政区划表")
+public class BcRegion implements Serializable {
+
+    private static final long serialVersionUID = 484387005380232597L;
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    private String regionId;
+
+    /**
+     * 行政区划编码
+     */
+    @ApiModelProperty(value = "行政区划编码")
+    private String regionCode;
+
+    /**
+     * 行政区划名称
+     */
+    @ApiModelProperty(value = "行政区划名称")
+    private String regionName;
+
+    /**
+     * 父id
+     */
+    @ApiModelProperty(value = "父id")
+    private String parentId;
+
+    /**
+     * 所在层级
+     */
+    @ApiModelProperty(value = "所在层级")
+    private Integer hierarchyOrder;
+
+    /**
+     * 同层顺序
+     */
+    @ApiModelProperty(value = "同层顺序")
+    private Integer levelOrder;
+
+    /**
+     * 层级格式编码(格式 : `**`**` )
+     */
+    @ApiModelProperty(value = "层级格式编码(格式 : `**`**` )")
+    private String formatCode;
+
+    /**
+     * 创建者
+     */
+    @ApiModelProperty(value = "创建者")
+    private Long createUserId;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createDatetime;
+
+    /**
+     * 修改者
+     */
+    @ApiModelProperty(value = "修改者")
+    private Long modifyUserId;
+
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty(value = "修改时间")
+    private Date modifyDatetime;
+
+    /**
+     * 删除标识(0:未删除,1:已删除)
+     */
+    @ApiModelProperty(value = "删除标识(0:未删除,1:已删除)")
+    private Integer deleteFlag;
+
+    /**
+     * 子集数量
+     */
+    @ApiModelProperty(value = "子集数量")
+    private Integer childrenNum;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActAcidCheckRecord.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActAcidCheckRecord.java
new file mode 100644
index 0000000..2fb0420
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActAcidCheckRecord.java
@@ -0,0 +1,69 @@
+package com.panzhihua.service_community.entity;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 排查跟进表(ComActAcidCheckRecord)表实体类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 排查跟进表相关功能
+ *
+ * @author zzj
+ * @since 2022-04-24 16:14:25
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("排查跟进表")
+public class ComActAcidCheckRecord implements Serializable {
+
+    private static final long serialVersionUID = 511018347419682300L;
+
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 人员id
+     */
+    @ApiModelProperty(value = "人员id")
+    private Long memberId;
+
+    /**
+     * 处理情况 1:集中隔离 2:居家隔离 3:健康监测 4:失联或尚需追踪 5:排除风险 6:暂未管控
+     */
+    @ApiModelProperty(value = "处理情况 1:集中隔离 2:居家隔离 3:健康监测 4:失联或尚需追踪 5:排除风险 6:暂未管控")
+    private Integer status;
+
+    /**
+     * 备注
+     */
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    /**
+     * 操作人
+     */
+    @ApiModelProperty(value = "操作人")
+    private String username;
+
+    private Date checkTime;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActAcidDangerMember.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActAcidDangerMember.java
new file mode 100644
index 0000000..620641c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActAcidDangerMember.java
@@ -0,0 +1,115 @@
+package com.panzhihua.service_community.entity;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 风险人员表(ComActAcidDangerMember)表实体类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 风险人员表相关功能
+ *
+ * @author zzj
+ * @since 2022-04-24 16:12:09
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("风险人员表")
+public class ComActAcidDangerMember implements Serializable {
+
+    private static final long serialVersionUID = 889636932941876579L;
+
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    /**
+     * 填报记录id
+     */
+    @ApiModelProperty(value = "填报记录id")
+    private Long recordId;
+
+    /**
+     * 姓名
+     */
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    /**
+     * 手机号
+     */
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+
+    /**
+     * 人员类型 1风险人员 2未填地址人员
+     */
+    @ApiModelProperty(value = "人员类型 1风险人员 2未填地址人员")
+    private Integer type;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(value = "更新时间")
+    private Date updateTime;
+
+    /**
+     * 数据来源
+     */
+    @ApiModelProperty(value = "数据来源 1系统")
+    private Integer source;
+
+    /**
+     * 处理情况 1:集中隔离 2:居家隔离 3:健康监测 4:失联或尚需追踪 5:排除风险 6:暂未管控
+     */
+    @ApiModelProperty(value = "当前处理情况 1:集中隔离 2:居家隔离 3:健康监测 4:失联或尚需追踪 5:排除风险 6:暂未管控")
+    private Integer status;
+
+    /**
+     * 身份证
+     */
+    @ApiModelProperty(value = "身份证")
+    private String idCard;
+
+    /**
+     * 绑定单位
+     */
+    @ApiModelProperty(value = "绑定单位")
+    private String relationName;
+
+    /**
+     * 风险类别
+     */
+    @ApiModelProperty(value = "风险类别")
+    private String riskType;
+
+    @ApiModelProperty(value = "是否删除 1是 0否")
+    private Integer isDel;
+
+    public interface RiskType {
+        String COLOR = "红码或黄码";
+        String STAR= "行程卡带星";
+        String HIGH = "中高风险区返回";
+        String OUT = "境外返回";
+        String TEST = "核酸呈阳性";
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActAcidMember.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActAcidMember.java
new file mode 100644
index 0000000..97b3612
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActAcidMember.java
@@ -0,0 +1,71 @@
+package com.panzhihua.service_community.entity;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+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.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 防疫工作人员表(ComActAcidMember)表实体类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 防疫工作人员表相关功能
+ *
+ * @author zzj
+ * @since 2022-04-24 16:12:06
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("防疫工作人员表")
+public class ComActAcidMember implements Serializable {
+
+    private static final long serialVersionUID = -88592294208705755L;
+
+    @TableId(type = IdType.ASSIGN_ID)
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 姓名
+     */
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    /**
+     * 手机号
+     */
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+
+    /**
+     * 是否推送 1是 0否
+     */
+    @ApiModelProperty(value = "是否推送 1是 0否")
+    private Integer pushStatus;
+
+    /**
+     * 绑定单位
+     */
+    @ApiModelProperty(value = "绑定单位")
+    private String relationName;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActAcidRecord.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActAcidRecord.java
new file mode 100644
index 0000000..e57fb57
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActAcidRecord.java
@@ -0,0 +1,200 @@
+package com.panzhihua.service_community.entity;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+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.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * (ComActAcidRecord)表实体类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 相关功能
+ *
+ * @author zzj
+ * @since 2022-04-12 15:29:57
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("")
+public class ComActAcidRecord implements Serializable {
+
+    private static final long serialVersionUID = 681488919320181854L;
+
+    @TableId(type = IdType.ASSIGN_ID)
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 姓名
+     */
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    /**
+     * 身份证
+     */
+    @ApiModelProperty(value = "身份证")
+    private String idCard;
+
+    /**
+     * 手机号
+     */
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+
+    /**
+     * 出发城市
+     */
+    @ApiModelProperty(value = "出发城市")
+    private String departureCity;
+
+    /**
+     * 出发地址
+     */
+    @ApiModelProperty(value = "出发地址")
+    private String departureAddress;
+
+    /**
+     * 出发日期
+     */
+    @ApiModelProperty(value = "出发日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date departureDate;
+
+    /**
+     * 旅居城市
+     */
+    @ApiModelProperty(value = "旅居城市")
+    private String touristCity;
+
+    /**
+     * 在攀居住地
+     */
+    @ApiModelProperty(value = "在攀居住地")
+    private String localCity;
+
+    /**
+     * 在攀地址
+     */
+    @ApiModelProperty(value = "在攀地址")
+    private String localAddress;
+
+    /**
+     * 到达日期
+     */
+    @ApiModelProperty(value = "到达日期")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date arriveDate;
+
+    /**
+     * 健康码颜色
+     */
+    @ApiModelProperty(value = "健康码颜色")
+    private String colorMark;
+
+    /**
+     * 行程码
+     */
+    @ApiModelProperty(value = "行程码")
+    private String travelCard;
+
+    /**
+     * 危险区
+     */
+    @ApiModelProperty(value = "危险区")
+    private String dangerArea;
+
+    /**
+     * 境外城市
+     */
+    @ApiModelProperty(value = "境外城市")
+    private String outsideCity;
+
+    /**
+     * 疫苗接种
+     */
+    @ApiModelProperty(value = "疫苗接种")
+    private String vaccination;
+
+    /**
+     * 核酸检测
+     */
+    @ApiModelProperty(value = "核酸检测")
+    private String acidTest;
+
+    /**
+     * 填报类型 1自己填报 2为他人填报
+     */
+    private Integer type;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+    /**
+     * 定位地址
+     */
+    private String realAddress;
+
+    @JsonFormat(pattern = "yyyy-MM-dd  HH:mm", timezone = "GMT+8")
+    private Date createTime;
+
+    @ApiModelProperty("健康码截图")
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private String colorImage;
+
+    @ApiModelProperty("行程码截图")
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private String travelImage;
+
+    @ApiModelProperty("48小时核酸截图")
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private String acidImage;
+
+    @ApiModelProperty("疫苗接种截图")
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private String vaccinationImage;
+
+    @ApiModelProperty("备注")
+    private String remark;
+
+    @ApiModelProperty("核对状态 0未核对 1已核对")
+    private Integer checkStatus;
+
+    @ApiModelProperty("是否删除 1是 2否")
+    private Integer isDel;
+
+    @ApiModelProperty("交通方式")
+    private String transport;
+
+    @ApiModelProperty("行程信息")
+    private String transportInfo;
+
+
+    @ApiModelProperty("是否特殊职业 1是 0否")
+    private String isSpecialJob;
+
+    @ApiModelProperty("户籍地")
+    private String registerResidence;
+
+    private String isStudent;
+
+    private String cardType;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActAcidUpdateRecord.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActAcidUpdateRecord.java
new file mode 100644
index 0000000..8013901
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActAcidUpdateRecord.java
@@ -0,0 +1,56 @@
+package com.panzhihua.service_community.entity;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * (ComActAcidUpdateRecord)表实体类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 相关功能
+ *
+ * @author zzj
+ * @since 2022-05-30 14:57:03
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("")
+public class ComActAcidUpdateRecord implements Serializable {
+
+    private static final long serialVersionUID = -90587224071702612L;
+
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 记录id
+     */
+    @ApiModelProperty(value = "记录id")
+    private Long recordId;
+
+    /**
+     * 修改人id
+     */
+    @ApiModelProperty(value = "修改人id")
+    private Long userId;
+
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty(value = "修改时间")
+    private Date createTime;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActActivityCode.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActActivityCode.java
new file mode 100644
index 0000000..d1ed8a8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActActivityCode.java
@@ -0,0 +1,70 @@
+package com.panzhihua.service_community.entity;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 签到二维码表(ComActActivityCode)表实体类
+ *
+ * @author makejava
+ * @since 2021-10-15 15:23:08
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("签到二维码表")
+public class ComActActivityCode implements Serializable {
+
+    private static final long serialVersionUID = 821676065778343316L;
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 活动id
+     */
+    @ApiModelProperty(value = "活动id")
+    private Long activityId;
+
+    /**
+     * 二维码编号
+     */
+    @ApiModelProperty(value = "二维码编号")
+    private String code;
+
+    /**
+     * 状态 1 有效 2过时
+     */
+    @ApiModelProperty(value = "状态 1 有效 2过时")
+    private Integer status;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    /**
+     * 二维码类型 1居民志愿者 2党员
+     */
+    @ApiModelProperty("二维码类型 1居民志愿者 2党员")
+    private Integer type;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActActivityInvite.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActActivityInvite.java
new file mode 100644
index 0000000..02e49d3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActActivityInvite.java
@@ -0,0 +1,56 @@
+package com.panzhihua.service_community.entity;
+
+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;
+
+/**
+ * 活动邀请表(ComActActivityInvite)表实体类
+ *
+ * @author makejava
+ * @since 2022-08-01 15:54:11
+ */
+@Data
+@TableName(value = "com_act_activity_invite")
+@SuppressWarnings("serial")
+public class ComActActivityInvite implements Serializable {
+    private static final long serialVersionUID = 354077865574560151L;
+    /**
+     * 主键
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 受邀活动id
+     */
+    private Long activityId;
+    /**
+     * 受邀用户id
+     */
+    private Long userId;
+    /**
+     * 受邀用户姓名
+     */
+    private String name;
+    /**
+     * 受邀用户电话
+     */
+    private String phone;
+    /**
+     * 是否报名
+     */
+    private Boolean isSign;
+    /**
+     * 邀请人
+     */
+    private Long createdBy;
+    /**
+     * 邀请时间
+     */
+    private Date createdAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActAnnouncement.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActAnnouncement.java
new file mode 100644
index 0000000..61c45db
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActAnnouncement.java
@@ -0,0 +1,74 @@
+package com.panzhihua.service_community.entity;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+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.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * (ComActAnnouncement)表实体类
+ *
+ * @author makejava
+ * @since 2021-11-01 13:45:54
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("")
+public class ComActAnnouncement implements Serializable {
+
+    private static final long serialVersionUID = -26741210716448548L;
+
+    @TableId(type = IdType.ASSIGN_ID)
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 内容
+     */
+    @ApiModelProperty(value = "内容")
+    private String content;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    /**
+     * 发布人id
+     */
+    @ApiModelProperty(value = "发布人id")
+    private Long userId;
+
+    /**
+     * 通知类型id
+     */
+    @ApiModelProperty(value = "通知类型id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long columnId;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+    /**
+     * 物业公司id
+     * */
+    private Long propertyId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActColumn.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActColumn.java
new file mode 100644
index 0000000..f2234d6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActColumn.java
@@ -0,0 +1,91 @@
+package com.panzhihua.service_community.entity;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 分类列表(ComActColumn)表实体类
+ *
+ * @author makejava
+ * @since 2021-11-01 14:38:25
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("分类列表")
+public class ComActColumn implements Serializable {
+
+    private static final long serialVersionUID = 935049089365383863L;
+
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 分类名称
+     */
+    @ApiModelProperty(value = "分类名称")
+    private String name;
+
+    /**
+     * 创建人
+     */
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    /**
+     * 修改人
+     */
+    @ApiModelProperty(value = "修改人")
+    private String updateBy;
+
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty(value = "修改时间")
+    private Date updateTime;
+
+    /**
+     * 状态 0禁用 1启用
+     */
+    @ApiModelProperty(value = "状态 0禁用 1启用")
+    private Integer status;
+
+    /**
+     * 分类类型 1服务类型分类 2技能分类3公告分类
+     */
+    @ApiModelProperty(value = "分类类型 1服务范围分类 2技能分类 3通知公告 4项目分类")
+    private Integer type;
+
+    /**
+     * 描述
+     */
+    @ApiModelProperty(value = "描述")
+    private String description;
+
+
+    private Long communityId;
+
+    private Long parentId;
+
+    private Long streetId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActCommittee.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActCommittee.java
new file mode 100644
index 0000000..95a0427
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActCommittee.java
@@ -0,0 +1,78 @@
+package com.panzhihua.service_community.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * (ComActCommittee)表实体类
+ *
+ * @author makejava
+ * @since 2021-09-17 13:55:43
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("")
+public class ComActCommittee implements Serializable {
+
+    private static final long serialVersionUID = -95815418574862374L;
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 名称
+     */
+    @ApiModelProperty(value = "名称")
+    private String name;
+
+    /**
+     * 联系人
+     */
+    @ApiModelProperty(value = "联系人")
+    private String contactName;
+
+    /**
+     * 联系电话
+     */
+    @ApiModelProperty(value = "联系电话")
+    private String phone;
+
+    /**
+     * 小区id
+     */
+    @ApiModelProperty(value = "小区id")
+    private Long areaId;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date createTime;
+
+    @ApiModelProperty(value = "社区Id")
+    private Long communityId;
+
+    private String password;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActDpc.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActDpc.java
new file mode 100644
index 0000000..83709e6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActDpc.java
@@ -0,0 +1,85 @@
+package com.panzhihua.service_community.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 人大代表(ComActDpc)表实体类
+ *
+ * @author makejava
+ * @since 2022-06-07 11:02:04
+ */
+@Data
+@TableName(value = "com_act_dpc")
+@SuppressWarnings("serial")
+public class ComActDpc implements Serializable {
+    private static final long serialVersionUID = 853854468470571468L;
+    /**
+     * 主键
+     */
+    private Long id;
+    /**
+     * 姓名
+     */
+    private String name;
+    /**
+     * 手机号
+     */
+    private String phone;
+    /**
+     * 民族
+     */
+    private String nation;
+    /**
+     * 性别(1.男 2.女 3.未知)
+     */
+    private Integer sex;
+    /**
+     * 选区
+     */
+    private String area;
+    /**
+     * 所属家/站
+     */
+    private String belong;
+    /**
+     * 代表类别
+     */
+    private String category;
+    /**
+     * 单位职务
+     */
+    private String position;
+    /**
+     * 照片
+     */
+    private String photo;
+    /**
+     * 是否删除
+     */
+    private Boolean isDel;
+    /**
+     * 创建人
+     */
+    private Long createdBy;
+    /**
+     * 创建时间
+     */
+    private Date createdAt;
+    /**
+     * 由谁更新
+     */
+    private Long updatedBy;
+    /**
+     * 最后更新时间
+     */
+    private Date updatedAt;
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActEasyPhotoEvaluate.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActEasyPhotoEvaluate.java
new file mode 100644
index 0000000..ae420eb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActEasyPhotoEvaluate.java
@@ -0,0 +1,64 @@
+package com.panzhihua.service_community.entity;
+
+import java.util.Date;
+import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+/**
+ * 随手拍、微心愿评价表(ComActEasyPhotoEvaluate)实体类
+ *
+ * @author lyq
+ * @since 2022-03-01 13:44:23
+ */
+@Data
+@TableName("com_act_easy_photo_evaluate")
+public class ComActEasyPhotoEvaluate implements Serializable {
+    private static final long serialVersionUID = -10187231854376444L;
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 社区id
+     */
+    private Long communityId;
+    /**
+     * 业务记录id
+     */
+    private Long serviceId;
+    /**
+     * 用户id
+     */
+    private Long userId;
+    /**
+     * 评分
+     */
+    private Integer score;
+    /**
+     * 评价内容
+     */
+    private String content;
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+    /**
+     * 业务分类(1.随手拍 2.微心愿)
+     */
+    private Integer serviceType;
+
+    /**
+     * 业务分类(1.随手拍 2.微心愿)
+     */
+    public interface ServiceType{
+        int SSP = 1;
+        int WXY = 2;
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActEasyPhotoHandler.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActEasyPhotoHandler.java
new file mode 100644
index 0000000..a9b8602
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActEasyPhotoHandler.java
@@ -0,0 +1,83 @@
+package com.panzhihua.service_community.entity;
+
+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 lombok.Data;
+
+/**
+ * 随手拍、微心愿处理人绑定表(ComActEasyPhotoHandler)实体类
+ *
+ * @author lyq
+ * @since 2022-03-01 13:45:11
+ */
+@Data
+@TableName(value = "com_act_easy_photo_handler")
+public class ComActEasyPhotoHandler implements Serializable {
+    private static final long serialVersionUID = -15137895736835383L;
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 社区id
+     */
+    private Long communityId;
+    /**
+     * 处理人id
+     */
+    private Long userId;
+    /**
+     * 业务id
+     */
+    private Long serviceId;
+    /**
+     * 人员类型(1.后台用户 2.党员 3.志愿者 4.社工 5.四长四员)
+     */
+    private Integer type;
+    /**
+     * 业务类型(1.随手拍 2.微心愿)
+     */
+    private Integer serviceType;
+    /**
+     * 服务状态 0待执行 1已完成
+     */
+    private Integer status;
+    /**
+     * 发起人id
+     */
+    private Long senderId;
+
+    private Date createTime;
+    /**
+     * 得分
+     */
+    private Integer score;
+    /**
+     * 汇报内容
+     */
+    private String resultContent;
+    /**
+     * 汇报图片
+     */
+    private String resultUrl;
+    /**
+     * 业务分类(1.随手拍 2.微心愿)
+     */
+    public interface ServiceType{
+        int SSP = 1;
+        int WXY = 2;
+    }
+    /**
+     * 服务状态 0待执行 1已完成
+     */
+    public interface Status{
+        int DZX = 0;
+        int YWC= 1;
+    }
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActEasyPhotoMember.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActEasyPhotoMember.java
new file mode 100644
index 0000000..a6aeea7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActEasyPhotoMember.java
@@ -0,0 +1,65 @@
+package com.panzhihua.service_community.entity;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+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.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 随手拍网格员(ComActEasyPhotoMember)表实体类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 随手拍网格员相关功能
+ *
+ * @author zzj
+ * @since 2022-04-12 10:33:24
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("随手拍网格员")
+public class ComActEasyPhotoMember implements Serializable {
+
+    private static final long serialVersionUID = 309168056104824588L;
+
+    @TableId(type = IdType.ASSIGN_ID)
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    /**
+     * 姓名
+     */
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    /**
+     * 联系电话
+     */
+    @ApiModelProperty(value = "联系电话")
+    private String phone;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActEnterprise.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActEnterprise.java
new file mode 100644
index 0000000..d458731
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActEnterprise.java
@@ -0,0 +1,89 @@
+package com.panzhihua.service_community.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * (ComActEnterprise)表实体类
+ *
+ * @author makejava
+ * @since 2022-05-31 13:53:55
+ */
+@Data
+@TableName(value = "com_act_enterprise")
+@SuppressWarnings("serial")
+public class ComActEnterprise implements Serializable {
+    private static final long serialVersionUID = 484549866500196049L;
+    /**
+     * 主键
+     */
+    private Long id;
+    /**
+     * 企业名称
+     */
+    private String name;
+    /**
+     * 统一社会信用代码
+     */
+    private String agencyCode;
+    /**
+     * 法定代表人
+     */
+    private String legalRepresentative;
+    /**
+     * 联系电话
+     */
+    private String phone;
+    /**
+     * 注册时间
+     */
+    private Date registeAt;
+    /**
+     * 所属社区
+     */
+    private Long communityId;
+    /**
+     * 地址
+     */
+    private String address;
+    /**
+     * 企业介绍
+     */
+    private String introduct;
+    /**
+     * 企业logo
+     */
+    private String logo;
+    /**
+     * 创建人
+     */
+    private Long createdBy;
+    /**
+     * 创建时间
+     */
+    private Date createdAt;
+    /**
+     * 由谁更新
+     */
+    private Long updatedBy;
+    /**
+     * 最后更新时间
+     */
+    private Date updatedAt;
+    /**
+     * 状态(1.启用 2.禁用)
+     */
+    private Integer status;
+    /**
+     * 所属街道
+     */
+    private Long streetId;
+    /**
+     * 服务类型
+     */
+    private Long type;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActEnterpriseType.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActEnterpriseType.java
new file mode 100644
index 0000000..aad5fa5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActEnterpriseType.java
@@ -0,0 +1,61 @@
+package com.panzhihua.service_community.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * (ComActEnterpriseType)表实体类
+ *
+ * @author makejava
+ * @since 2022-06-06 15:30:48
+ */
+@Data
+@TableName(value = "com_act_enterprise_type")
+@SuppressWarnings("serial")
+public class ComActEnterpriseType implements Serializable {
+    private static final long serialVersionUID = 259040183344787442L;
+    /**
+     * 主键
+     */
+    private Long id;
+    /**
+     * 社区id
+     */
+    private Long communityId;
+    /**
+     * 服务分类名称
+     */
+    private String name;
+    /**
+     * 描述
+     */
+    private String description;
+    /**
+     * 状态(1.启用 2.停用)
+     */
+    private Integer status;
+    /**
+     * 是否删除
+     */
+    private Boolean isDel;
+    /**
+     * 创建人
+     */
+    private Long createdBy;
+    /**
+     * 创建时间
+     */
+    private Date createdAt;
+    /**
+     * 由谁更新
+     */
+    private Long updatedBy;
+    /**
+     * 最后更新时间
+     */
+    private Date updatedAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActFourMember.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActFourMember.java
new file mode 100644
index 0000000..1f9d72c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActFourMember.java
@@ -0,0 +1,75 @@
+package com.panzhihua.service_community.entity;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * (ComActFourMember)表实体类
+ *
+ * @author makejava
+ * @since 2021-09-23 10:13:30
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("")
+public class ComActFourMember implements Serializable {
+
+    private static final long serialVersionUID = 905771115750112478L;
+
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+
+    /**
+     * 职位
+     */
+    @ApiModelProperty(value = "职位")
+    private String position;
+
+    /**
+     * 管辖区域
+     */
+    @ApiModelProperty(value = "管辖区域")
+    private String jurisdiction;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    @ApiModelProperty(value = "管辖区域内容")
+    private String jurisdictionContent;
+
+    @ApiModelProperty(value = "照片")
+    private String url;
+
+    private String password;
+
+    private String idCard;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActNeighborCircleTopicNew.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActNeighborCircleTopicNew.java
new file mode 100644
index 0000000..6aabe45
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActNeighborCircleTopicNew.java
@@ -0,0 +1,90 @@
+package com.panzhihua.service_community.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class ComActNeighborCircleTopicNew implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 话题名称
+     */
+    private String name;
+
+    /**
+     * 状态(1.启用 2.禁用)
+     */
+    private Integer status;
+
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+
+    /**
+     * 创建人
+     */
+    private Long createBy;
+
+    /**
+     * 热度
+     */
+    private Long hotNum;
+
+    /**
+     * 邻里圈数量
+     */
+    private Integer count;
+
+    /**
+     * 使用类型(1.邻里圈 2.问题清单 3.需求清单)
+     */
+    private Integer belongType;
+
+    /**
+     * 话题logo
+     */
+    private String logo;
+
+    private Integer sort;
+
+    /**
+     * 状态(1.启用  2.禁用)
+     */
+    public interface status{
+        int yes = 1;
+        int no = 2;
+    }
+
+    @Override
+    public String toString() {
+        return "ComActNeighborCircleTopicDO{" + "id=" + id + ", name=" + name + ", status=" + status + ", createAt="
+                + createAt + ", createBy=" + createBy + "}";
+    }
+
+    /**
+     * 使用类型(1.邻里圈 2.问题清单 3.需求清单)
+     */
+    public interface BelongType{
+        int LLQ = 1;
+        int WTQD = 2;
+        int XQQD = 3;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActProceedings.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActProceedings.java
new file mode 100644
index 0000000..dc5176e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActProceedings.java
@@ -0,0 +1,81 @@
+package com.panzhihua.service_community.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * com_act_proceedings
+ * @author zts
+ */
+@Data
+@TableName("com_act_proceedings")
+public class ComActProceedings implements Serializable {
+    /**
+     * 主键id
+     */
+    @TableId
+    private Long id;
+
+    /**
+     * 姓名
+     */
+    private String name;
+
+    /**
+     * 所属单位名
+     */
+    private String unitName;
+
+    /**
+     * 所属单位id
+     */
+    private Long unitId;
+
+    /**
+     * 简介
+     */
+    private String introduce;
+
+    /**
+     * 是否删除0否1是
+     */
+    private Integer delFlag;
+
+    /**
+     * 状态0可用1禁用
+     */
+    private Integer status;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 创建人
+     */
+    private String createBy;
+
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+
+    /**
+     * 修改人
+     */
+    private Date updateBy;
+   /**
+    * 工作时间
+    * */
+    private String workTime;
+    private String logo;
+
+
+    private static final long serialVersionUID = 1L;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActRaffle.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActRaffle.java
new file mode 100644
index 0000000..ecdfdbd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActRaffle.java
@@ -0,0 +1,134 @@
+package com.panzhihua.service_community.entity;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 抽奖活动表(ComActRaffle)表实体类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 抽奖活动表相关功能
+ *
+ * @author zzj
+ * @since 2022-02-18 14:31:19
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("抽奖活动表")
+public class ComActRaffle implements Serializable {
+
+    private static final long serialVersionUID = -19557136291047637L;
+
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 名称
+     */
+    @ApiModelProperty(value = "名称")
+    private String name;
+
+    /**
+     * 开始时间
+     */
+    @ApiModelProperty(value = "开始时间")
+    private Date startTime;
+
+    /**
+     * 结束时间
+     */
+    @ApiModelProperty(value = "结束时间")
+    private Date stopTime;
+
+    /**
+     * 开奖时间
+     */
+    @ApiModelProperty(value = "开奖时间")
+    private Date lotteryTime;
+
+    /**
+     * 兑奖开始时间
+     */
+    @ApiModelProperty(value = "兑奖开始时间")
+    private Date raffleStartTime;
+
+    /**
+     * 兑奖结束时间
+     */
+    @ApiModelProperty(value = "兑奖结束时间")
+    private Date raffleStopTime;
+
+    /**
+     * 工作时间
+     */
+    @ApiModelProperty(value = "工作时间")
+    private String workTime;
+
+    /**
+     * 地址
+     */
+    @ApiModelProperty(value = "地址")
+    private String address;
+
+    /**
+     * 经度
+     */
+    @ApiModelProperty(value = "经度")
+    private String longitude;
+
+    /**
+     * 纬度
+     */
+    @ApiModelProperty(value = "纬度")
+    private String latitude;
+
+    /**
+     * 联系方式
+     */
+    @ApiModelProperty(value = "联系方式")
+    private String phone;
+
+    /**
+     * 封面
+     */
+    @ApiModelProperty(value = "封面")
+    private String cover;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    /**
+     * 状态 0未开始 1报名中 2待开奖 3已开奖
+     */
+    @ApiModelProperty(value = "状态 0未开始 1报名中 2待开奖 3已开奖")
+    private Integer status;
+
+    /**
+     * 创建人
+     */
+    @ApiModelProperty(value = "创建人")
+    private Long createBy;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActRafflePrize.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActRafflePrize.java
new file mode 100644
index 0000000..5763e63
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActRafflePrize.java
@@ -0,0 +1,66 @@
+package com.panzhihua.service_community.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 抽奖活动奖品表(ComActRafflePrize)表实体类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 抽奖活动奖品表相关功能
+ *
+ * @author zzj
+ * @since 2022-02-18 14:31:45
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("抽奖活动奖品表")
+public class ComActRafflePrize implements Serializable {
+
+    private static final long serialVersionUID = 706879121724104929L;
+
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 奖品名称
+     */
+    @ApiModelProperty(value = "奖品名称")
+    private String name;
+
+    /**
+     * 总数
+     */
+    @ApiModelProperty(value = "总数")
+    private Integer total;
+
+    /**
+     * 剩余
+     */
+    @ApiModelProperty(value = "剩余")
+    private Integer surplus;
+
+    /**
+     * 图片
+     */
+    @ApiModelProperty(value = "图片")
+    private String image;
+
+    /**
+     * 抽奖活动id
+     */
+    @ApiModelProperty(value = "抽奖活动id")
+    private Long raffleId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActRaffleRecord.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActRaffleRecord.java
new file mode 100644
index 0000000..a2c9541
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActRaffleRecord.java
@@ -0,0 +1,74 @@
+package com.panzhihua.service_community.entity;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 抽奖活动中奖记录表(ComActRaffleRecord)表实体类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 抽奖活动中奖记录表相关功能
+ *
+ * @author zzj
+ * @since 2022-02-18 14:32:01
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("抽奖活动中奖记录表")
+public class ComActRaffleRecord implements Serializable {
+
+    private static final long serialVersionUID = 201328912468431601L;
+
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    /**
+     * 奖品id
+     */
+    @ApiModelProperty(value = "奖品id")
+    private Long prizeId;
+
+    /**
+     * 核销人
+     */
+    @ApiModelProperty(value = "核销人")
+    private Long staffId;
+
+    /**
+     * 核销时间
+     */
+    @ApiModelProperty(value = "核销时间")
+    private Date staffTime;
+
+    @ApiModelProperty(value = "0 已参加 1待兑奖 2已兑奖 3已失效")
+    private Integer status;
+
+    @ApiModelProperty(value = "抽奖id")
+    private Long raffleId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActReserveDangerArea.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActReserveDangerArea.java
new file mode 100644
index 0000000..696bdbf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActReserveDangerArea.java
@@ -0,0 +1,82 @@
+package com.panzhihua.service_community.entity;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * (ComActReserveDangerArea)表实体类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 相关功能
+ *
+ * @author zzj
+ * @since 2022-04-07 14:22:20
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("")
+public class ComActReserveDangerArea implements Serializable {
+
+    private static final long serialVersionUID = -25840459480337775L;
+
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 类型 1中风险 2高风险
+     */
+    @ApiModelProperty(value = "类型 1中风险 2高风险")
+    private Integer type;
+
+    /**
+     * 省市区全称
+     */
+    @ApiModelProperty(value = "省市区全称")
+    private String areaName;
+
+    /**
+     * 市
+     */
+    @ApiModelProperty(value = "市")
+    private String county;
+
+    /**
+     * 省
+     */
+    @ApiModelProperty(value = "省")
+    private String province;
+
+    /**
+     * 区
+     */
+    @ApiModelProperty(value = "区")
+    private String city;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    /**
+     * 筛查时间
+     */
+    @ApiModelProperty(value = "筛查时间")
+    private Date screenTime;
+
+    private Integer status;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialMember.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialMember.java
new file mode 100644
index 0000000..69a9f24
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialMember.java
@@ -0,0 +1,109 @@
+package com.panzhihua.service_community.entity;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 社会组织成员表(ComActSocialMember)表实体类
+ *
+ * @author makejava
+ * @since 2021-10-22 09:52:46
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("社会组织成员表")
+public class ComActSocialMember implements Serializable {
+
+    private static final long serialVersionUID = 279847158941704646L;
+
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 姓名
+     */
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    /**
+     * 手机号
+     */
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+
+    /**
+     * 社会组织id
+     */
+    @ApiModelProperty(value = "社会组织id")
+    private Long orgId;
+
+    /**
+     * 职位
+     */
+    @ApiModelProperty(value = "职位")
+    private String position;
+
+    /**
+     * 身份证号
+     */
+    @ApiModelProperty(value = "身份证号")
+    private String idCard;
+
+    /**
+     * 账号
+     */
+    @ApiModelProperty(value = "账号")
+    private String account;
+
+    /**
+     * 密码
+     */
+    @ApiModelProperty(value = "密码")
+    private String password;
+
+    /**
+     * 状态1启用 0停用
+     */
+    @ApiModelProperty(value = "状态1启用 0停用")
+    private Integer status;
+
+    /**
+     * 照片
+     */
+    @ApiModelProperty(value = "照片")
+    private String image;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    /**
+     * 街道id
+     */
+    @ApiModelProperty(value = "街道id")
+    private Long streetId;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    private Long communityId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialOrg.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialOrg.java
new file mode 100644
index 0000000..d157a51
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialOrg.java
@@ -0,0 +1,293 @@
+package com.panzhihua.service_community.entity;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 社会组织(ComActSocialOrg)表实体类
+ *
+ * @author makejava
+ * @since 2021-09-17 10:45:21
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("社会组织")
+public class ComActSocialOrg implements Serializable {
+
+    private static final long serialVersionUID = 597028379524285428L;
+
+    /**
+     * ID
+     */
+    @ApiModelProperty(value = "ID")
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 单位名称
+     */
+    @ApiModelProperty(value = "单位名称")
+    private String name;
+
+    /**
+     * 工商登记号
+     */
+    @ApiModelProperty(value = "工商登记号")
+    private String businessNumber;
+
+    /**
+     * 成立时间
+     */
+    @ApiModelProperty(value = "成立时间")
+    private Date buildDate;
+
+    /**
+     * 机构代码
+     */
+    @ApiModelProperty(value = "机构代码")
+    private String agencyCode;
+
+    /**
+     * 微信公众号
+     */
+    @ApiModelProperty(value = "微信公众号")
+    private String weixinOfficialAccounts;
+
+    /**
+     * 单位类别: 1 社会团体、2 民办非企业单位、3 基金会
+     */
+    @ApiModelProperty(value = "单位类别: 1 社会团体、2 民办非企业单位、3 基金会")
+    private Integer companyType;
+
+    /**
+     * 注册资金(万元)
+     */
+    @ApiModelProperty(value = "注册资金(万元)")
+    private Integer registFee;
+
+    /**
+     * 资产总额(万元)
+     */
+    @ApiModelProperty(value = "资产总额(万元)")
+    private Integer assetsTotal;
+
+    /**
+     * 净资产(万元)
+     */
+    @ApiModelProperty(value = "净资产(万元)")
+    private Integer assetsNet;
+
+    /**
+     * 销售额(万元)
+     */
+    @ApiModelProperty(value = "销售额(万元)")
+    private Double salesFee;
+
+    /**
+     * 上年纳税额(万元)
+     */
+    @ApiModelProperty(value = "上年纳税额(万元)")
+    private Double taxesLastYear;
+
+    /**
+     * 职工人数(人)
+     */
+    @ApiModelProperty(value = "职工人数(人)")
+    private Integer staffCount;
+
+    /**
+     * 通讯地址
+     */
+    @ApiModelProperty(value = "通讯地址")
+    private String maillingAddr;
+
+    /**
+     * 邮编
+     */
+    @ApiModelProperty(value = "邮编")
+    private String postCode;
+
+    /**
+     * 官方网址
+     */
+    @ApiModelProperty(value = "官方网址")
+    private String officialUrl;
+
+    /**
+     * 法人姓名
+     */
+    @ApiModelProperty(value = "法人姓名")
+    private String corporationName;
+
+    /**
+     * 法人性别0女1男
+     */
+    @ApiModelProperty(value = "法人性别0女1男")
+    private String corporationGen;
+
+    /**
+     * 法人工作电话
+     */
+    @ApiModelProperty(value = "法人工作电话")
+    private String corporationOfficePhone;
+
+    /**
+     * 法人职位
+     */
+    @ApiModelProperty(value = "法人职位")
+    private String corporationPosition;
+
+    /**
+     * 法人手机
+     */
+    @ApiModelProperty(value = "法人手机")
+    private String corporationPhone;
+
+    /**
+     * 法人邮箱
+     */
+    @ApiModelProperty(value = "法人邮箱")
+    private String corporationEmail;
+
+    /**
+     * 联系人姓名
+     */
+    @ApiModelProperty(value = "联系人姓名")
+    private String contactName;
+
+    /**
+     * 联系人性别0女1男
+     */
+    @ApiModelProperty(value = "联系人性别0女1男")
+    private String contactGen;
+
+    /**
+     * 联系人工作电话
+     */
+    @ApiModelProperty(value = "联系人工作电话")
+    private String contactOfficePhone;
+
+    /**
+     * 联系人职位
+     */
+    @ApiModelProperty(value = "联系人职位")
+    private String contactPosition;
+
+    /**
+     * 联系人手机
+     */
+    @ApiModelProperty(value = "联系人手机")
+    private String contactPhone;
+
+    /**
+     * 联系人邮箱
+     */
+    @ApiModelProperty(value = "联系人邮箱")
+    private String contactEmail;
+
+    /**
+     * 业务范围/专业领域
+     */
+    @ApiModelProperty(value = "业务范围/专业领域")
+    private String businessScope;
+
+    /**
+     * 运营情况及行业影响(含所获荣誉)
+     */
+    @ApiModelProperty(value = "运营情况及行业影响(含所获荣誉)")
+    private String businessImpact;
+
+    /**
+     * 附件(以逗号隔开)
+     */
+    @ApiModelProperty(value = "附件(以逗号隔开)")
+    private String attachUrl;
+
+    /**
+     * 创建人
+     */
+    @ApiModelProperty(value = "创建人")
+    private Long createBy;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+
+    /**
+     * 更新人
+     */
+    @ApiModelProperty(value = "更新人")
+    private Long updateBy;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(value = "更新时间")
+    private Date updateAt;
+
+    private Long communityId;
+
+    /**
+     * 登录用户id
+     */
+    @ApiModelProperty(value = "登录用户id")
+    private Long userId;
+
+    private String password;
+
+    @ApiModelProperty("状态")
+    private Integer status;
+
+    @ApiModelProperty("成立方式")
+    private Integer buildType;
+
+    @ApiModelProperty("经度")
+    private String longitude;
+
+    @ApiModelProperty("纬度")
+    private String latitude;
+
+    @ApiModelProperty("服务类型")
+    private String serviceType;
+
+    @ApiModelProperty("街道id")
+    private Long streetId;
+
+    @ApiModelProperty("是否三社 0否1是")
+    private Integer isSociety;
+
+    @ApiModelProperty("孵化单位")
+    private Long hatchUnit;
+
+    @ApiModelProperty("孵化单位类型(1.街道 2.社区)")
+    private Integer hatchUnitType;
+
+    @ApiModelProperty("孵化单位名称")
+    private String hatchUnitName;
+
+    @ApiModelProperty("挂靠单位")
+    private Long affiliatedUnit;
+
+    @ApiModelProperty("挂靠单位类型(1.街道 2.社区)")
+    private Integer affiliatedUnitType;
+
+    @ApiModelProperty("挂靠单位名称")
+    private String affiliatedUnitName;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialOrgHatch.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialOrgHatch.java
new file mode 100644
index 0000000..22bc939
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialOrgHatch.java
@@ -0,0 +1,81 @@
+package com.panzhihua.service_community.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 社会组织孵化表(ComActSocialOrgHatch)表实体类
+ *
+ * @author makejava
+ * @since 2022-04-18 15:10:07
+ */
+@Data
+@TableName(value = "com_act_social_org_hatch")
+@SuppressWarnings("serial")
+public class ComActSocialOrgHatch implements Serializable {
+    private static final long serialVersionUID = -29246013392324151L;
+    /**
+     * 主键
+     */
+    private Long id;
+    /**
+     * 准社会组织名称
+     */
+    private String name;
+    /**
+     * 负责人
+     */
+    private String responsibility;
+    /**
+     * 联系电话
+     */
+    private String phone;
+    /**
+     * 孵化单位
+     */
+    private Long hatchUnit;
+    /**
+     * 孵化单位类型(1.街道 2.社区)
+     */
+    private Integer hatchUnitType;
+    /**
+     * 孵化单位名称
+     */
+    private String hatchUnitName;
+    /**
+     * 孵化状态(1.孵化中 2.孵化成功)
+     */
+    private Integer status;
+    /**
+     * 开始孵化日期
+     */
+    private Date createdAt;
+    /**
+     * 更新时间
+     */
+    private Date updatedAt;
+    /**
+     * 组织介绍
+     */
+    private String introduction;
+    /**
+     * 组织标识
+     */
+    private String logo;
+    /**
+     * 申请原因
+     */
+    private String applyReason;
+    /**
+     * 服务范围
+     */
+    private String serviceScope;
+    /**
+     * 申请关联id
+     */
+    private Long auditId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialOrgHatchAudit.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialOrgHatchAudit.java
new file mode 100644
index 0000000..080f95f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialOrgHatchAudit.java
@@ -0,0 +1,81 @@
+package com.panzhihua.service_community.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 社会组织孵化申请表(ComActSocialOrgHatchAudit)表实体类
+ *
+ * @author makejava
+ * @since 2022-04-18 15:10:10
+ */
+@Data
+@TableName(value = "com_act_social_org_hatch_audit")
+@SuppressWarnings("serial")
+public class ComActSocialOrgHatchAudit implements Serializable {
+    private static final long serialVersionUID = -12554435202494916L;
+    /**
+     * 主键
+     */
+    private Long id;
+    /**
+     * 准社会组织名称
+     */
+    private String name;
+    /**
+     * 负责人
+     */
+    private String responsibility;
+    /**
+     * 联系电话
+     */
+    private String phone;
+    /**
+     * 孵化单位
+     */
+    private Long hatchUnit;
+    /**
+     * 孵化单位类型(1.街道 2.社区)
+     */
+    private Integer hatchUnitType;
+    /**
+     * 孵化单位名称
+     */
+    private String hatchUnitName;
+    /**
+     * 申请用户
+     */
+    private Long userId;
+    /**
+     * 申请状态(1.待审核 2.审核通过 3.已驳回)
+     */
+    private Integer status;
+    /**
+     * 申请时间
+     */
+    private Date createdAt;
+    /**
+     * 更新时间
+     */
+    private Date updatedAt;
+    /**
+     * 组织介绍
+     */
+    private String introduction;
+    /**
+     * 组织标识
+     */
+    private String logo;
+    /**
+     * 申请原因
+     */
+    private String applyReason;
+    /**
+     * 服务范围
+     */
+    private String serviceScope;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialOrgHatchAuditSchedule.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialOrgHatchAuditSchedule.java
new file mode 100644
index 0000000..94ffba9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialOrgHatchAuditSchedule.java
@@ -0,0 +1,48 @@
+package com.panzhihua.service_community.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 社会组织孵化申请进度表(ComActSocialOrgHatchAuditSchedule)表实体类
+ *
+ * @author makejava
+ * @since 2022-04-18 15:10:47
+ */
+@Data
+@TableName(value = "com_act_social_org_hatch_audit_schedule")
+@SuppressWarnings("serial")
+public class ComActSocialOrgHatchAuditSchedule implements Serializable {
+    private static final long serialVersionUID = 779830361079215649L;
+    /**
+     * 主键
+     */
+    private Long id;
+    /**
+     * 社会组织孵化申请关联id
+     */
+    private Long auditId;
+    /**
+     * 审核阶段
+     */
+    private String stage;
+    /**
+     * 阶段详情
+     */
+    private String detail;
+    /**
+     * 创建时间
+     */
+    private Date createdAt;
+
+    public interface Stage {
+        String tjzl = "提交资料";
+        String ybh = "已驳回";
+        String cxtj = "重新提交";
+        String shtg = "审核通过";
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialProject.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialProject.java
new file mode 100644
index 0000000..d30c179
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialProject.java
@@ -0,0 +1,151 @@
+package com.panzhihua.service_community.entity;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+
+/**
+ * 三社联动项目表(ComActSocialProject)表实体类
+ *
+ * @author makejava
+ * @since 2021-12-22 14:02:46
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("三社联动项目表")
+public class ComActSocialProject implements Serializable {
+
+    private static final long serialVersionUID = -24945028672614601L;
+
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 项目名称
+     */
+    @ApiModelProperty(value = "项目名称")
+    private String name;
+
+    /**
+     * 项目类型 1公共文化 2社会组织参与 3 社会企业带动 4其他
+     */
+    @ApiModelProperty(value = "项目类型 1公共文化 2社会组织参与 3 社会企业带动 4其他")
+    private Integer type;
+
+    /**
+     * 项目状态  1初创项目 2公开发布 3运作中 4 已结束
+     */
+    @ApiModelProperty(value = "项目状态  1初创项目 2公开发布 3运作中 4 已结束")
+    private Integer status;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    /**
+     * 街道id
+     */
+    @ApiModelProperty(value = "街道id")
+    private Long streetId;
+
+    /**
+     * 责任方
+     */
+    @ApiModelProperty(value = "责任方")
+    private String responsibility;
+
+    /**
+     * 父项目id
+     */
+    @ApiModelProperty(value = "父项目id")
+    private Long parentId;
+
+    /**
+     * 附件
+     */
+    @ApiModelProperty(value = "附件")
+    private String url;
+
+    /**
+     * 封面
+     */
+    @ApiModelProperty(value = "封面")
+    private String image;
+
+    /**
+     * 介绍
+     */
+    @ApiModelProperty(value = "介绍")
+    private String content;
+
+    /**
+     * 项目等级
+     */
+     @ApiModelProperty(value = "项目等级")
+    private Integer level;
+
+    /**
+     * 浏览量
+     */
+    @ApiModelProperty(value = "浏览量")
+    private Integer views;
+
+    /**
+     * 分类id
+     */
+    @ApiModelProperty(value = "分类id")
+    private Long columnId;
+
+    /**
+     * 二级分类id
+     */
+    @ApiModelProperty(value = "二级分类id")
+    private Long secondColumnId;
+
+    @ApiModelProperty(value = "责任方类型 1街道 2社区 3社会组织")
+    private Integer responsibilityType;
+
+    @ApiModelProperty(value = "责任方id")
+    private Long responsibilityId;
+
+    /**
+     * 联系电话
+     */
+    private String phone;
+
+    /**
+     * 项目资金
+     */
+    private BigDecimal funds;
+
+    /**
+     * 项目报名截止时间
+     */
+    private Date signUpEnd;
+
+    /**
+     * 是否公示(1.是 2.否)
+     */
+    private Integer isPublicity;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialProjectMember.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialProjectMember.java
new file mode 100644
index 0000000..d18d757
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialProjectMember.java
@@ -0,0 +1,80 @@
+package com.panzhihua.service_community.entity;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 项目人员(ComActSocialProjectMember)表实体类
+ *
+ * @author makejava
+ * @since 2021-12-23 15:16:42
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("项目人员")
+public class ComActSocialProjectMember implements Serializable {
+
+    private static final long serialVersionUID = 982451898968415899L;
+
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 姓名
+     */
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    /**
+     * 年龄
+     */
+    @ApiModelProperty(value = "年龄")
+    private Integer age;
+
+    /**
+     * 照片
+     */
+    @ApiModelProperty(value = "照片")
+    private String image;
+
+    /**
+     * 手机号
+     */
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+
+    /**
+     * 类型 1社工 2志愿者
+     */
+    @ApiModelProperty(value = "类型 1社工 2志愿者")
+    private Integer type;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    /**
+     * 项目id
+     */
+    @ApiModelProperty(value = "项目id")
+    private Long projectId;
+
+    private Long communityId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialProjectPublicity.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialProjectPublicity.java
new file mode 100644
index 0000000..eb0def6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialProjectPublicity.java
@@ -0,0 +1,79 @@
+package com.panzhihua.service_community.entity;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 项目宣传表(ComActSocialProjectPublicity)表实体类
+ *
+ * @author makejava
+ * @since 2021-12-23 14:30:54
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("项目宣传表")
+public class ComActSocialProjectPublicity implements Serializable {
+
+    private static final long serialVersionUID = -90937393082259077L;
+
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 标题
+     */
+    @ApiModelProperty(value = "标题")
+    private String title;
+
+    /**
+     * 封面图
+     */
+    @ApiModelProperty(value = "封面图")
+    private String image;
+
+    /**
+     * 内容
+     */
+    @ApiModelProperty(value = "内容")
+    private String content;
+
+    /**
+     * 项目id
+     */
+    @ApiModelProperty(value = "项目id")
+    private Long projectId;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    /**
+     * 浏览量
+     */
+    @ApiModelProperty(value = "浏览量")
+    private Integer views;
+
+    /**
+     * 是否置顶 0否 1是
+     */
+    @ApiModelProperty(value = "是否置顶")
+    private Integer isTop;
+
+    private String releaseName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialProjectSchedule.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialProjectSchedule.java
new file mode 100644
index 0000000..21d17fb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialProjectSchedule.java
@@ -0,0 +1,60 @@
+package com.panzhihua.service_community.entity;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 项目进度表(ComActSocialProjectSchedule)表实体类
+ *
+ * @author makejava
+ * @since 2021-12-23 14:31:15
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("项目进度表")
+public class ComActSocialProjectSchedule implements Serializable {
+
+    private static final long serialVersionUID = -17588094441653342L;
+
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 标题
+     */
+    @ApiModelProperty(value = "标题")
+    private String title;
+
+    /**
+     * 内容
+     */
+    @ApiModelProperty(value = "内容")
+    private String content;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    /**
+     * 项目id
+     */
+    @ApiModelProperty(value = "项目id")
+    private Long projectId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialProjectSign.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialProjectSign.java
new file mode 100644
index 0000000..207568a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialProjectSign.java
@@ -0,0 +1,42 @@
+package com.panzhihua.service_community.entity;
+
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * (ComActSocialProjectSign)表实体类
+ *
+ * @author makejava
+ * @since 2022-04-19 15:42:56
+ */
+@Data
+@TableName(value = "com_act_social_project_sign")
+@SuppressWarnings("serial")
+public class ComActSocialProjectSign implements Serializable {
+    private static final long serialVersionUID = 204246835752273001L;
+    /**
+     * 主键
+     */
+    private Long id;
+    /**
+     * 社会组织id
+     */
+    private Long orgId;
+    /**
+     * 项目id
+     */
+    private Long projectId;
+    /**
+     * 报名时间
+     */
+    private Date createdAt;
+    /**
+     * 报名用户
+     */
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialWorker.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialWorker.java
new file mode 100644
index 0000000..04354f5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialWorker.java
@@ -0,0 +1,166 @@
+package com.panzhihua.service_community.entity;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 社工(ComActSocialWorker)表实体类
+ *
+ * @author makejava
+ * @since 2021-10-25 13:50:43
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("社工")
+public class ComActSocialWorker implements Serializable {
+
+    private static final long serialVersionUID = 624699365201103858L;
+
+    /**
+     * ID
+     */
+    @ApiModelProperty(value = "ID")
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 所属组织ID
+     */
+    @ApiModelProperty(value = "所属组织ID")
+    private Long socialOrgId;
+
+    /**
+     * 姓名
+     */
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    /**
+     * 联系电话
+     */
+    @ApiModelProperty(value = "联系电话")
+    private String telephone;
+
+    /**
+     * 性别0女1男
+     */
+    @ApiModelProperty(value = "性别0女1男")
+    private Integer gen;
+
+    /**
+     * 所属街道
+     */
+    @ApiModelProperty(value = "所属街道")
+    private Long streetId;
+
+    /**
+     * 所属社区
+     */
+    @ApiModelProperty(value = "所属社区")
+    private Long communityId;
+
+    /**
+     * 创建人
+     */
+    @ApiModelProperty(value = "创建人")
+    private Long createBy;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+
+    /**
+     * 更新人
+     */
+    @ApiModelProperty(value = "更新人")
+    private Long updateBy;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(value = "更新时间")
+    private Date updateAt;
+
+    /**
+     * 身份证
+     */
+    @ApiModelProperty(value = "身份证")
+    private String idCard;
+
+    /**
+     * 分类id
+     */
+    @ApiModelProperty(value = "分类id")
+    private String skillType;
+    /**
+     * 分类名称
+     */
+    @ApiModelProperty(value = "分类id")
+    private String skillTypeName;
+    /**
+     * 入职时间
+     */
+    @ApiModelProperty(value = "入职时间")
+    private Date joinTime;
+
+    /**
+     * 住址
+     */
+    @ApiModelProperty(value = "住址")
+    private String address;
+
+    /**
+     * 图片
+     */
+    @ApiModelProperty(value = "图片")
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private String image;
+
+    /**
+     * 学历
+     */
+    @ApiModelProperty(value = "学历")
+    private String education;
+
+    /**
+     * 政治面貌
+     */
+    @ApiModelProperty(value = "政治面貌")
+    private String politicalOutlook;
+
+    /**
+     * 民族
+     */
+    @ApiModelProperty(value = "民族")
+    private String nation;
+
+    /**
+     * 是否证件 0否 1是
+     */
+    @ApiModelProperty(value = "是否证件 0否 1是")
+    private Integer credential;
+
+    /**
+     * 年龄
+     */
+    private Integer age;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialWorkerService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialWorkerService.java
new file mode 100644
index 0000000..6780bdf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActSocialWorkerService.java
@@ -0,0 +1,92 @@
+package com.panzhihua.service_community.entity;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 社工服务表(ComActSocialWorkerService)表实体类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 社工服务表相关功能
+ *
+ * @author zzj
+ * @since 2022-02-16 15:59:41
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("社工服务表")
+public class ComActSocialWorkerService implements Serializable {
+
+    private static final long serialVersionUID = 984587632214927218L;
+
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 社工id
+     */
+    @ApiModelProperty(value = "社工id")
+    private Long workerId;
+
+    /**
+     * 发起人id
+     */
+    @ApiModelProperty(value = "发起人id")
+    private Long senderId;
+
+    /**
+     * 服务状态 0待执行 1已完成
+     */
+    @ApiModelProperty(value = "服务状态 0待执行 1已完成")
+    private Integer status;
+
+    /**
+     * 内容id
+     */
+    @ApiModelProperty(value = "内容id")
+    private Long serviceId;
+
+    /**
+     * 服务类型 1微心愿 2随手拍
+     */
+    @ApiModelProperty(value = "服务类型 1微心愿 2随手拍")
+    private Integer serviceType;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    /**
+     * 汇报内容
+     */
+    @ApiModelProperty(value = "汇报内容")
+    private String resultContent;
+
+    /**
+     * 汇报图片
+     */
+    @ApiModelProperty(value = "汇报图片")
+    private String resultUrl;
+
+    /**
+     * 得分
+     */
+    @ApiModelProperty(value = "得分")
+    private Integer score;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActWarehouseApply.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActWarehouseApply.java
new file mode 100644
index 0000000..59b0e53
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActWarehouseApply.java
@@ -0,0 +1,144 @@
+package com.panzhihua.service_community.entity;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 物品申请表(ComActWarehouseApply)表实体类
+ *
+ * @author makejava
+ * @since 2021-10-11 13:47:37
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("物品申请表")
+public class ComActWarehouseApply implements Serializable {
+
+    private static final long serialVersionUID = 225290522401641721L;
+
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 物品id
+     */
+    @ApiModelProperty(value = "物品id")
+    private Long goodsId;
+
+    /**
+     * 物品数量
+     */
+    @ApiModelProperty(value = "物品数量")
+    private Integer goodsNum;
+
+    /**
+     * 预约时间
+     */
+    @ApiModelProperty(value = "预约时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date reserveTime;
+
+    /**
+     * 实际时间
+     */
+    @ApiModelProperty(value = "实际时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date actualTime;
+
+    /**
+     * 理由
+     */
+    @ApiModelProperty(value = "理由")
+    private String reason;
+
+    /**
+     * 领取图片
+     */
+    @ApiModelProperty(value = "领取图片")
+    private String receiveUrl;
+
+    /**
+     * 提交时间
+     */
+    @ApiModelProperty(value = "提交时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    /**
+     * 状态 0待处理 1 待领取 2已拒绝 3已领取 -1已取消
+     */
+    @ApiModelProperty(value = "状态 0待处理 1 待领取 2已拒绝 3已领取 -1已取消")
+    private Integer status;
+
+    /**
+     * 申请人id
+     */
+    @ApiModelProperty("申请人id")
+    private Long applyUserId;
+
+    /**
+     * 申请人
+     */
+    @ApiModelProperty("申请人")
+    private String applyName;
+
+    /**
+     * 申请人联系电话
+     */
+    @ApiModelProperty("申请人联系电话")
+    private String applyPhone;
+
+    /**
+     * 处理人id
+     */
+    @ApiModelProperty(value = "处理人id")
+    private Long solveUserId;
+
+    /**
+     * 处理人时间
+     */
+    @ApiModelProperty(value = "处理人时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date solveTime;
+
+    /**
+     * 处理人备注
+     */
+    @ApiModelProperty(value = "处理人备注")
+    private String solveContent;
+
+    /**
+     * 核销人id
+     */
+    @ApiModelProperty(value = "核销人id")
+    private Long writeOffUserId;
+
+    /**
+     * 取消时间
+     */
+    @ApiModelProperty(value = "取消时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date cancelTime;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActWarehouseBase.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActWarehouseBase.java
new file mode 100644
index 0000000..d6e6803
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActWarehouseBase.java
@@ -0,0 +1,82 @@
+package com.panzhihua.service_community.entity;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 义仓基础设置表(ComActWarehouseBase)表实体类
+ *
+ * @author makejava
+ * @since 2021-10-11 09:21:52
+ */
+@Data
+@ApiModel("义仓基础设置表")
+public class ComActWarehouseBase implements Serializable {
+
+    private static final long serialVersionUID = -68726161070095574L;
+
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 义仓说明
+     */
+    @ApiModelProperty(value = "义仓说明")
+    private String warehouseExplain;
+
+    /**
+     * 工作时间
+     */
+    @ApiModelProperty(value = "工作时间")
+    private String warehouseWorkTime;
+
+    /**
+     * 联系电话
+     */
+    @ApiModelProperty(value = "联系电话")
+    private String warehouseContact;
+
+    /**
+     * 接收地点
+     */
+    @ApiModelProperty(value = "接收地点")
+    private String receivePosition;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    /**
+     *经度
+     */
+    @ApiModelProperty("经度")
+    private String longitude;
+
+    /**
+     *纬度
+     */
+    @ApiModelProperty("纬度")
+    private String latitude;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActWarehouseDonates.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActWarehouseDonates.java
new file mode 100644
index 0000000..4ca4904
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActWarehouseDonates.java
@@ -0,0 +1,135 @@
+package com.panzhihua.service_community.entity;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 爱心义仓/物品捐赠表(ComActWarehouseDonates)表实体类
+ *
+ * @author makejava
+ * @since 2021-10-09 17:14:15
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("爱心义仓/物品捐赠表")
+public class ComActWarehouseDonates implements Serializable {
+
+    private static final long serialVersionUID = 957879321976072909L;
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 用户关联id
+     */
+    @ApiModelProperty(value = "用户关联id")
+    private Long userId;
+
+    /**
+     * 捐赠人
+     */
+    @ApiModelProperty(value = "捐赠人")
+    private String name;
+
+    /**
+     * 联系电话
+     */
+    @ApiModelProperty(value = "联系电话")
+    private String phone;
+
+    /**
+     * 捐赠物品
+     */
+    @ApiModelProperty(value = "捐赠物品")
+    private String item;
+
+    /**
+     * 物品图片
+     */
+    @ApiModelProperty(value = "物品图片")
+    private String image;
+
+    /**
+     * 捐赠数量
+     */
+    @ApiModelProperty(value = "捐赠数量")
+    private Integer quantity;
+
+    /**
+     * 剩余数量
+     */
+    @ApiModelProperty(value = "剩余数量")
+    private Integer surplusQuantity;
+
+    /**
+     * 是否匿名(1.是 2.否)
+     */
+    @ApiModelProperty(value = "是否匿名(1.是 2.否)")
+    private Integer isAnonymous;
+
+    /**
+     * 留言信息
+     */
+    @ApiModelProperty(value = "留言信息")
+    private String message;
+
+    /**
+     * 物品登记时间
+     */
+    @ApiModelProperty(value = "物品登记时间")
+    private Date registerAt;
+
+    /**
+     * 物品签收时间
+     */
+    @ApiModelProperty(value = "物品签收时间")
+    private Date signingAt;
+
+    /**
+     * 捐赠状态(1.待签收 2.已签收 3.已取消)
+     */
+    @ApiModelProperty(value = "捐赠状态(1.待签收 2.已签收 3.已取消)")
+    private Integer status;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    /**
+     * 登记人
+     */
+    @ApiModelProperty(value = "登记人")
+    private Long registerBy;
+
+    /**
+     * 签收人
+     */
+    @ApiModelProperty(value = "签收人")
+    private Long signingBy;
+
+    public interface status {
+        int dqs = 1;
+        int yqs = 2;
+        int yqx = 3;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActWarehouseOperation.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActWarehouseOperation.java
new file mode 100644
index 0000000..d9c34a9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComActWarehouseOperation.java
@@ -0,0 +1,73 @@
+package com.panzhihua.service_community.entity;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 爱心义操作表(ComActWarehouseOperation)表实体类
+ *
+ * @author makejava
+ * @since 2021-10-09 17:14:33
+ */
+@Data
+@ApiModel("爱心义操作表")
+public class ComActWarehouseOperation implements Serializable {
+
+    private static final long serialVersionUID = -74893029545359720L;
+
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 物品id
+     */
+    @ApiModelProperty(value = "物品id")
+    private Long goodsId;
+
+    /**
+     * 操作内容
+     */
+    @ApiModelProperty(value = "操作内容")
+    private String content;
+
+    /**
+     * 操作时间
+     */
+    @ApiModelProperty(value = "操作时间")
+    private Date createTime;
+
+    /**
+     * 操作人
+     */
+    @ApiModelProperty(value = "操作人")
+    private Long userId;
+
+    /**
+     *类型 1签收,取消操作 2捐赠操作
+     */
+    @ApiModelProperty(value = "类型 1签收,取消操作 2捐赠操作")
+    private Integer type;
+
+    /**
+     * 申请id
+     */
+    @ApiModelProperty(value = "申请id")
+    private Long applyId;
+
+    public interface type{
+        int bxs=1;
+        int xs=2;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComAreaTownCommunity.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComAreaTownCommunity.java
new file mode 100644
index 0000000..6b78691
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComAreaTownCommunity.java
@@ -0,0 +1,56 @@
+package com.panzhihua.service_community.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * (ComAreaTownCommunity)表实体类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 相关功能
+ *
+ * @author zzj
+ * @since 2022-04-10 17:37:28
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("")
+public class ComAreaTownCommunity implements Serializable {
+
+    private static final long serialVersionUID = 563639918375670491L;
+
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 区级
+     */
+    @ApiModelProperty(value = "区级")
+    private String area;
+
+    /**
+     * 镇
+     */
+    @ApiModelProperty(value = "镇")
+    private String town;
+
+    /**
+     * 社区
+     */
+    @ApiModelProperty(value = "社区")
+    private String community;
+
+    private Long communityId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodity.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodity.java
new file mode 100644
index 0000000..7d22562
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodity.java
@@ -0,0 +1,91 @@
+package com.panzhihua.service_community.entity;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.io.Serializable;
+
+import lombok.Data;
+
+/**
+ * 电动车商城-商品表(ComBatteryCommodity)实体类
+ *
+ * @author lyq
+ * @since 2022-03-28 14:59:59
+ */
+@Data
+public class ComBatteryCommodity implements Serializable {
+    private static final long serialVersionUID = 974240119661857683L;
+    /**
+     * 主键id
+     */
+    private Long id;
+    /**
+     * 商品名称
+     */
+    private String name;
+    /**
+     * 商品编号
+     */
+    private String code;
+    /**
+     * 商品价格
+     */
+    private BigDecimal price;
+    /**
+     * 商家id
+     */
+    private Long storeId;
+    /**
+     * 状态(1.上架 2.下架)
+     */
+    private Integer status;
+    /**
+     * 商品分类id
+     */
+    private Long classId;
+    /**
+     * 商品简介
+     */
+    private String introduce;
+    /**
+     * 邮费
+     */
+    private BigDecimal postage;
+    /**
+     * 商品图片
+     */
+    private String images;
+    /**
+     * 商品详情
+     */
+    private String detail;
+    /**
+     * 是否删除(1.是  2.否)
+     */
+    private Integer isDel;
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    private Long createBy;
+    /**
+     * 更新时间
+     */
+    private Date updateAt;
+    /**
+     * 更新人id
+     */
+    private Long updateBy;
+
+    /**
+     * 是否删除枚举(1.是 2.否)
+     */
+    public interface IsDel{
+        int YES = 1;
+        int NO = 2;
+    }
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodityActivity.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodityActivity.java
new file mode 100644
index 0000000..ddbe2df
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodityActivity.java
@@ -0,0 +1,123 @@
+package com.panzhihua.service_community.entity;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.io.Serializable;
+
+import lombok.Data;
+
+/**
+ * 电动车商城-商家活动表(ComBatteryCommodityActivity)实体类
+ *
+ * @author lyq
+ * @since 2022-03-29 13:17:39
+ */
+@Data
+public class ComBatteryCommodityActivity implements Serializable {
+    private static final long serialVersionUID = -53789140646648793L;
+    /**
+     * 主键id
+     */
+    private Long id;
+    /**
+     * 活动名称
+     */
+    private String name;
+    /**
+     * 活动类型(1.拼团活动 2.砍价活动 3.限时秒杀)
+     */
+    private Integer type;
+    /**
+     * 商品id
+     */
+    private Long commodityId;
+    /**
+     * 商家id
+     */
+    private Long storeId;
+    /**
+     * 状态(1.进行中 2.已下架 3.已结束)
+     */
+    private Integer status;
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    private Integer isDel;
+    /**
+     * 活动价格
+     */
+    private BigDecimal price;
+    /**
+     * 活动截止时间
+     */
+    private Date endTime;
+    /**
+     * 拼团总团数
+     */
+    private Integer collageNum;
+    /**
+     * 拼团人数
+     */
+    private Integer collagePeopleNum;
+    /**
+     * 活动图片
+     */
+    private String images;
+    /**
+     * 活动商品总数
+     */
+    private Integer commodityNum;
+    /**
+     * 活动规则
+     */
+    private String rule;
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    private Long createBy;
+    /**
+     * 更新时间
+     */
+    private Date updateAt;
+    /**
+     * 更新人id
+     */
+    private Long updateBy;
+    /**
+     * 活动商品已卖出数量
+     */
+    private Integer commoditySaleNum;
+    /**
+     * 商品规格id
+     */
+    private Long specsId;
+    /**
+     * 是否删除枚举(1.是 2.否)
+     */
+    public interface IsDel{
+        int YES = 1;
+        int NO = 2;
+    }
+    /**
+     * 状态(1.进行中 2.已下架 3.已结束)
+     */
+    public interface Status{
+        int JXZ = 1;
+        int YXJ = 2;
+        int YJS = 3;
+    }
+
+    /**
+     * 活动类型(1.拼团活动 2.砍价活动 3.限时秒杀)
+     */
+    public interface Type{
+        int PT = 1;
+        int KJ = 2;
+        int MS = 3;
+    }
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodityOrder.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodityOrder.java
new file mode 100644
index 0000000..37fcc38
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodityOrder.java
@@ -0,0 +1,244 @@
+package com.panzhihua.service_community.entity;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.io.Serializable;
+
+import lombok.Data;
+
+/**
+ * 电动车商城-订单表(ComBatteryCommodityOrder)实体类
+ *
+ * @author lyq
+ * @since 2022-03-29 16:05:44
+ */
+@Data
+public class ComBatteryCommodityOrder implements Serializable {
+    private static final long serialVersionUID = -82278154117057018L;
+    /**
+     * 主键id
+     */
+    private Long id;
+    /**
+     * 用户id
+     */
+    private Long userId;
+    /**
+     * 商家id
+     */
+    private Long storeId;
+    /**
+     * 收货地址id
+     */
+    private Long addressId;
+    /**
+     * 活动id
+     */
+    private Long activityId;
+    /**
+     * 商品id
+     */
+    private Long commodityId;
+    /**
+     * 商品规格id
+     */
+    private Long specsId;
+    /**
+     * 订单号
+     */
+    private String orderNo;
+    /**
+     * 活动状态(1.拼团活动 2.砍价活动 3.限时秒杀)
+     */
+    private Integer activityType;
+    /**
+     * 订单状态(1.待付款 2.待发货 3.待收货 4.已完成 5.待拼团 6.待砍价 7.已退款 8.已关闭)
+     */
+    private Integer status;
+    /**
+     * 拼团状态(1.拼团中 2.拼团成功 3.拼团失败)
+     */
+    private Integer collageStatus;
+    /**
+     * 砍价状态(1.砍价中 2.砍价成功 3.砍价失败)
+     */
+    private Integer bargainStatus;
+    /**
+     * 支付状态(1.未支付 2.已支付)
+     */
+    private Integer payStatus;
+    /**
+     * 是否已删除(1.是  2.否)
+     */
+    private Integer isDel;
+    /**
+     * 支付方式(1.微信支付)
+     */
+    private Integer payType;
+    /**
+     * 购买商品数量
+     */
+    private Integer count;
+    /**
+     * 商品单价
+     */
+    private BigDecimal price;
+    /**
+     * 订单金额
+     */
+    private BigDecimal amount;
+    /**
+     * 运费
+     */
+    private BigDecimal freight;
+    /**
+     * 物流单号
+     */
+    private String logisticsNo;
+    /**
+     * 物流公司
+     */
+    private String logisticsCompany;
+    /**
+     * 订单最终金额
+     */
+    private BigDecimal finalAmount;
+    /**
+     * 支付单号
+     */
+    private String payNo;
+    /**
+     * 支付总金额
+     */
+    private BigDecimal payAmount;
+    /**
+     * 订单备注
+     */
+    private String remark;
+    /**
+     * 发货时间
+     */
+    private Date deliveryTime;
+    /**
+     * 收货时间
+     */
+    private Date receivingTime;
+    /**
+     * 下单时间
+     */
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    private Long createBy;
+    /**
+     * 修改时间
+     */
+    private Date updateAt;
+    /**
+     * 支付时间
+     */
+    private Date payTime;
+    /**
+     * 修改人id
+     */
+    private Long updateBy;
+
+    /**
+     * 收件人
+     */
+    private String receivingName;
+
+    /**
+     * 收件人联系方式
+     */
+    private String receivingPhone;
+
+    /**
+     * 收货人地区
+     */
+    private String receivingRegion;
+
+    /**
+     * 收货人详细地址
+     */
+    private String receivingAddress;
+
+    /**
+     * 购买用户openId
+     */
+    private String openId;
+
+    /**
+     * 收货地区编码
+     */
+    private String receivingRegionCode;
+
+    /**
+     * 拼团id
+     */
+    private Long teamId;
+    /**
+     * 是否删除枚举(1.是 2.否)
+     */
+    public interface IsDel{
+        int YES = 1;
+        int NO = 2;
+    }
+    /**
+     * 订单状态枚举(1.待付款 2.待发货 3.待收货 4.已完成 5.待拼团 6.待砍价 7.已退款 8.已关闭)
+     */
+    public interface Status{
+        int DFK = 1;
+        int DFH = 2;
+        int DSH = 3;
+        int YWC = 4;
+        int DPT = 5;
+        int DKJ = 6;
+        int YTK = 7;
+        int YGB = 8;
+    }
+
+    /**
+     * 支付状态枚举(1.未支付 2.已支付)
+     */
+    public interface PayStatus{
+        int WZF = 1;
+        int YZF = 2;
+    }
+
+    /**
+     * 支付方式(1.微信支付)
+     */
+    public interface PayType{
+        int WX = 1;
+    }
+
+    /**
+     * 活动状态(1.拼团活动 2.砍价活动 3.限时秒杀)
+     */
+    public interface ActivityType{
+        int PT = 1;
+        int KJ = 2;
+        int MS = 3;
+    }
+
+    /**
+     * 拼团状态(1.拼团中 2.拼团成功 3.拼团失败)
+     */
+    public interface CollageStatus{
+        int PTZ = 1;
+        int PTCG = 2;
+        int PTSB = 3;
+    }
+
+    /**
+     * 砍价状态(1.砍价中 2.砍价成功 3.砍价失败)
+     */
+    public interface BargainStatus{
+        int KJZ = 1;
+        int KJCG = 2;
+        int KJSB = 3;
+    }
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodityOrderBargain.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodityOrderBargain.java
new file mode 100644
index 0000000..319c181
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodityOrderBargain.java
@@ -0,0 +1,69 @@
+package com.panzhihua.service_community.entity;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.io.Serializable;
+
+import lombok.Data;
+
+/**
+ * 电动车商城-砍价订单记录表(ComBatteryCommodityOrderBargain)实体类
+ *
+ * @author lyq
+ * @since 2022-03-29 16:06:34
+ */
+@Data
+public class ComBatteryCommodityOrderBargain implements Serializable {
+    private static final long serialVersionUID = -17460682622800097L;
+    /**
+     * 主键id
+     */
+    private Long id;
+    /**
+     * 用户id
+     */
+    private Long userId;
+    /**
+     * 商品id
+     */
+    private Long commodityId;
+    /**
+     * 活动id
+     */
+    private Long activityId;
+    /**
+     * 订单id
+     */
+    private Long orderId;
+    /**
+     * 订单号
+     */
+    private String orderNo;
+    /**
+     * 商品原价
+     */
+    private BigDecimal originalPrice;
+    /**
+     * 目标价格
+     */
+    private BigDecimal targetPrice;
+    /**
+     * 当前价格
+     */
+    private BigDecimal currentPrice;
+    /**
+     * 当前已砍价次数
+     */
+    private Integer count;
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    private Long createBy;
+
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodityOrderBargainRecord.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodityOrderBargainRecord.java
new file mode 100644
index 0000000..828e778
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodityOrderBargainRecord.java
@@ -0,0 +1,49 @@
+package com.panzhihua.service_community.entity;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.io.Serializable;
+
+import lombok.Data;
+
+/**
+ * 电动车商城-订单砍价记录表(ComBatteryCommodityOrderBargainRecord)实体类
+ *
+ * @author lyq
+ * @since 2022-03-29 16:06:45
+ */
+@Data
+public class ComBatteryCommodityOrderBargainRecord implements Serializable {
+    private static final long serialVersionUID = -80606721532574194L;
+    /**
+     * 主键id
+     */
+    private Long id;
+    /**
+     * 砍价记录id
+     */
+    private Long bargainId;
+    /**
+     * 用户id
+     */
+    private Long userId;
+    /**
+     * 砍价金额
+     */
+    private BigDecimal amount;
+    /**
+     * 原砍价用户id
+     */
+    private Long oldUserId;
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    private Long createBy;
+
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodityOrderCollageTeam.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodityOrderCollageTeam.java
new file mode 100644
index 0000000..82f36d4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodityOrderCollageTeam.java
@@ -0,0 +1,55 @@
+package com.panzhihua.service_community.entity;
+
+import java.util.Date;
+import java.io.Serializable;
+
+import lombok.Data;
+
+/**
+ * 电动车商城-拼团订单团队表(ComBatteryCommodityOrderCollageTeam)实体类
+ *
+ * @author lyq
+ * @since 2022-03-29 16:06:56
+ */
+@Data
+public class ComBatteryCommodityOrderCollageTeam implements Serializable {
+    private static final long serialVersionUID = -98501007492913468L;
+    /**
+     * 主键id
+     */
+    private Long id;
+    /**
+     * 活动id
+     */
+    private Long activityId;
+    /**
+     * 订单id
+     */
+    private Long orderId;
+    /**
+     * 订单号
+     */
+    private String orderNo;
+    /**
+     * 开团用户id
+     */
+    private Long userId;
+    /**
+     * 状态(1.等待拼团 2.拼团成功 3.拼团失败 4.已退款)
+     */
+    private Integer status;
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+    /**
+     * 状态(1.等待拼团 2.拼团成功 3.拼团失败 4.已退款)
+     */
+    public interface Status{
+        int DDPT = 1;
+        int PTCG = 2;
+        int PTSB = 3;
+        int YTK = 4;
+    }
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodityOrderCollageTeamPeople.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodityOrderCollageTeamPeople.java
new file mode 100644
index 0000000..2c7a1e8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommodityOrderCollageTeamPeople.java
@@ -0,0 +1,48 @@
+package com.panzhihua.service_community.entity;
+
+import java.util.Date;
+import java.io.Serializable;
+
+import lombok.Data;
+
+/**
+ * 电动车商城-拼团活动团队人员表(ComBatteryCommodityOrderCollageTeamPeople)实体类
+ *
+ * @author lyq
+ * @since 2022-03-29 16:07:08
+ */
+@Data
+public class ComBatteryCommodityOrderCollageTeamPeople implements Serializable {
+    private static final long serialVersionUID = 262039677393006104L;
+    /**
+     * 主键id
+     */
+    private Long id;
+    /**
+     * 拼团团队id
+     */
+    private Long teamId;
+    /**
+     * 团长id
+     */
+    private Long headUserId;
+    /**
+     * 用户id
+     */
+    private Long userId;
+    /**
+     * 参团类型(1.开团 2.参与拼团)
+     */
+    private Integer type;
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    private Long createBy;
+
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommoditySpecs.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommoditySpecs.java
new file mode 100644
index 0000000..dfea2d5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryCommoditySpecs.java
@@ -0,0 +1,75 @@
+package com.panzhihua.service_community.entity;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.io.Serializable;
+
+import lombok.Data;
+
+/**
+ * 电动车商城-商品规格表(ComBatteryCommoditySpecs)实体类
+ *
+ * @author lyq
+ * @since 2022-03-28 15:16:21
+ */
+@Data
+public class ComBatteryCommoditySpecs implements Serializable {
+    private static final long serialVersionUID = 153917106209662495L;
+    /**
+     * 主键id
+     */
+    private Long id;
+    /**
+     * 商家id
+     */
+    private Long storeId;
+    /**
+     * 商品id
+     */
+    private Long commodityId;
+    /**
+     * 规格名称
+     */
+    private String name;
+    /**
+     * 规格库存数量
+     */
+    private Integer stock;
+    /**
+     * 规格价格
+     */
+    private BigDecimal price;
+    /**
+     * 规格图片
+     */
+    private String images;
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    private Integer isDel;
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    private Long createBy;
+    /**
+     * 更新时间
+     */
+    private Date updateAt;
+    /**
+     * 更新人id
+     */
+    private Long updateBy;
+
+    /**
+     * 是否删除枚举(1.是 2.否)
+     */
+    public interface IsDel{
+        int YES = 1;
+        int NO = 2;
+    }
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryStore.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryStore.java
new file mode 100644
index 0000000..bd1db5a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryStore.java
@@ -0,0 +1,98 @@
+package com.panzhihua.service_community.entity;
+
+import java.util.Date;
+import java.io.Serializable;
+
+import lombok.Data;
+
+/**
+ * 电动车商城-商家表(ComBatteryStore)实体类
+ *
+ * @author lyq
+ * @since 2022-03-28 13:44:44
+ */
+@Data
+public class ComBatteryStore implements Serializable {
+    private static final long serialVersionUID = -36899105028204681L;
+    /**
+     * 主键id
+     */
+    private Long id;
+    /**
+     * 商家名称
+     */
+    private String name;
+    /**
+     * 注册手机
+     */
+    private String regPhone;
+    /**
+     * 联系电话
+     */
+    private String phone;
+    /**
+     * 商家账号
+     */
+    private String account;
+    /**
+     * 商家密码
+     */
+    private String password;
+    /**
+     * 状态(1.启用 2.禁用)
+     */
+    private Integer status;
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    private Integer isDel;
+    /**
+     * 商家logo
+     */
+    private String logo;
+    /**
+     * 商家简介
+     */
+    private String introduction;
+    /**
+     * 商家地址
+     */
+    private String address;
+    /**
+     * 详细地址
+     */
+    private String detailAddress;
+    /**
+     * 经度
+     */
+    private String longitude;
+    /**
+     * 纬度
+     */
+    private String latitude;
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    private Long createBy;
+    /**
+     * 更新时间
+     */
+    private Date updateAt;
+    /**
+     * 更新人id
+     */
+    private Long updateBy;
+
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    public interface IsDel{
+        int YES = 1;
+        int NO = 2;
+    }
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryStoreClass.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryStoreClass.java
new file mode 100644
index 0000000..ff28cf6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryStoreClass.java
@@ -0,0 +1,56 @@
+package com.panzhihua.service_community.entity;
+
+import java.util.Date;
+import java.io.Serializable;
+
+import lombok.Data;
+
+/**
+ * 电动车商城-商家分类表(ComBatteryStoreClass)实体类
+ *
+ * @author lyq
+ * @since 2022-03-29 11:01:55
+ */
+@Data
+public class ComBatteryStoreClass implements Serializable {
+    private static final long serialVersionUID = -68469766294447305L;
+    /**
+     * 主键id
+     */
+    private Long id;
+    /**
+     * 分类名称
+     */
+    private String name;
+    /**
+     * 商家id
+     */
+    private Long storeId;
+    /**
+     * 状态(1.启用 2.禁用)
+     */
+    private Integer status;
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    private Integer isDel;
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    private Long createBy;
+    /**
+     * 更新时间
+     */
+    private Date updateAt;
+    /**
+     * 更新人id
+     */
+    private Long updateBy;
+
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryTradeOrder.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryTradeOrder.java
new file mode 100644
index 0000000..e89fa30
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryTradeOrder.java
@@ -0,0 +1,120 @@
+package com.panzhihua.service_community.entity;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.io.Serializable;
+
+import lombok.Data;
+
+/**
+ * 电动车商城-微信交易流水表(ComBatteryTradeOrder)实体类
+ *
+ * @author lyq
+ * @since 2022-04-01 13:18:49
+ */
+@Data
+public class ComBatteryTradeOrder implements Serializable {
+    private static final long serialVersionUID = -14656645981087019L;
+    /**
+     * 主键id
+     */
+    private Long id;
+    /**
+     * 用户id
+     */
+    private Long userId;
+    /**
+     * 用户openid
+     */
+    private String openId;
+    /**
+     * 订单号
+     */
+    private String orderNo;
+    /**
+     * 订单状态(1.待支付 2.已支付 3.申请退款 4.已退款 5.已关闭)
+     */
+    private Integer status;
+    /**
+     * 支付类型(1.微信 )
+     */
+    private Integer payType;
+    /**
+     * 订单支付状态(1.待支付 2.已支付)
+     */
+    private Integer payStatus;
+    /**
+     * 订单金额
+     */
+    private BigDecimal orderAmount;
+    /**
+     * 实际支付金额
+     */
+    private BigDecimal payAmount;
+    /**
+     * 支付单号
+     */
+    private String payNo;
+    /**
+     * 支付时间
+     */
+    private Date payTime;
+    /**
+     * 交易类型(1.电动车商城购买商品)
+     */
+    private Integer tradeType;
+    /**
+     * 交易业务订单id
+     */
+    private Long tradeOrderId;
+    /**
+     * 交易业务订单号
+     */
+    private String tradeOrderNo;
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+    /**
+     * 创建人
+     */
+    private Long createBy;
+    /**
+     * 修改时间
+     */
+    private Date updateAt;
+
+    /**
+     * 订单状态(1.待支付 2.已支付 3.申请退款 4.已退款 5.已关闭)
+     */
+    public interface Status{
+        int DFZ = 1;
+        int YZF = 2;
+        int SQTK = 3;
+        int YTK = 4;
+        int YGB = 5;
+    }
+
+    /**
+     * 支付类型(1.微信 )
+     */
+    public interface PayType{
+        int WX = 1;
+    }
+
+    /**
+     * 订单支付状态(1.待支付 2.已支付)
+     */
+    public interface PayStatus{
+        int DZF = 1;
+        int YZF = 2;
+    }
+
+    /**
+     * 交易类型(1.电动车商城购买商品)
+     */
+    public interface TradeType{
+        int DDC_SHOP = 1;
+    }
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryUserAddress.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryUserAddress.java
new file mode 100644
index 0000000..0d8342b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComBatteryUserAddress.java
@@ -0,0 +1,90 @@
+package com.panzhihua.service_community.entity;
+
+import java.util.Date;
+import java.io.Serializable;
+
+import lombok.Data;
+
+/**
+ * 电动车商城-用户收货地址表(ComBatteryUserAddress)实体类
+ *
+ * @author lyq
+ * @since 2022-03-29 13:18:20
+ */
+@Data
+public class ComBatteryUserAddress implements Serializable {
+    private static final long serialVersionUID = 508417287671525506L;
+    /**
+     * 主键id
+     */
+    private Long id;
+    /**
+     * 姓名
+     */
+    private String name;
+    /**
+     * 手机号
+     */
+    private String phone;
+    /**
+     * 详细地址
+     */
+    private String address;
+    /**
+     * 是否是默认地址(1.是  2.否)
+     */
+    private Integer isDefault;
+    /**
+     * 省份行政区划代码
+     */
+    private String provinceAdcode;
+    /**
+     * 省份名称
+     */
+    private String provinceName;
+    /**
+     * 城市行政区划代码
+     */
+    private String cityAdcode;
+    /**
+     * 城市名称
+     */
+    private String cityName;
+    /**
+     * 区县行政区划代码
+     */
+    private String districtAdcode;
+    /**
+     * 区县名称
+     */
+    private String districtName;
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    private Long createBy;
+    /**
+     * 修改时间
+     */
+    private Date updateAt;
+    /**
+     * 修改人id
+     */
+    private Long updateBy;
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 是否是默认地址(1.是  2.否)
+     */
+    public interface IsDefault{
+        int yes = 1;
+        int no = 2;
+    }
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComChangeCarBrand.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComChangeCarBrand.java
new file mode 100644
index 0000000..64ba904
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComChangeCarBrand.java
@@ -0,0 +1,66 @@
+package com.panzhihua.service_community.entity;
+
+import java.util.Date;
+import java.io.Serializable;
+
+import lombok.Data;
+
+/**
+ * 换新车-品牌表(ComChangeCarBrand)实体类
+ *
+ * @author lyq
+ * @since 2022-04-07 13:37:23
+ */
+@Data
+public class ComChangeCarBrand implements Serializable {
+    private static final long serialVersionUID = 893800561392128513L;
+    /**
+     * 主键id
+     */
+    private Long id;
+    /**
+     * 品牌编号
+     */
+    private String code;
+    /**
+     * 品牌名称
+     */
+    private String name;
+    /**
+     * 状态(1.启用 2.禁用)
+     */
+    private Integer status;
+    /**
+     * 品牌logo
+     */
+    private String logo;
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    private Integer isDel;
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    private Long createBy;
+    /**
+     * 修改时间
+     */
+    private Date updateAt;
+    /**
+     * 修改人id
+     */
+    private Long updateBy;
+
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    public interface IsDel{
+        int YES = 1;
+        int NO = 2;
+    }
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComChangeCarInquiry.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComChangeCarInquiry.java
new file mode 100644
index 0000000..8c44dcc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComChangeCarInquiry.java
@@ -0,0 +1,59 @@
+package com.panzhihua.service_community.entity;
+
+import java.util.Date;
+import java.io.Serializable;
+
+import lombok.Data;
+
+/**
+ * 换新车-分期询价表(ComChangeCarInquiry)实体类
+ *
+ * @author lyq
+ * @since 2022-04-07 13:39:06
+ */
+@Data
+public class ComChangeCarInquiry implements Serializable {
+    private static final long serialVersionUID = 847720717463145529L;
+    /**
+     * 主键id
+     */
+    private Long id;
+    /**
+     * 用户id
+     */
+    private Long userId;
+    /**
+     * 用户称呼
+     */
+    private String name;
+    /**
+     * 用户手机号
+     */
+    private String phone;
+    /**
+     * 类型(1.分期 2.询价)
+     */
+    private Integer type;
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    private Integer isDel;
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    private Long createBy;
+
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    public interface IsDel{
+        int YES = 1;
+        int NO = 2;
+    }
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComChangeCarModel.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComChangeCarModel.java
new file mode 100644
index 0000000..9a3736a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComChangeCarModel.java
@@ -0,0 +1,75 @@
+package com.panzhihua.service_community.entity;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.io.Serializable;
+
+import lombok.Data;
+
+/**
+ * 换新车-车型管理表(ComChangeCarModel)实体类
+ *
+ * @author lyq
+ * @since 2022-04-07 13:41:55
+ */
+@Data
+public class ComChangeCarModel implements Serializable {
+    private static final long serialVersionUID = -34393942693498661L;
+    /**
+     * 主键id
+     */
+    private Long id;
+    /**
+     * 车型名称
+     */
+    private String name;
+    /**
+     * 图片url,多张以,隔开
+     */
+    private String images;
+    /**
+     * 最低价格
+     */
+    private BigDecimal minPrice;
+    /**
+     * 品牌id
+     */
+    private Long brandId;
+    /**
+     * 车辆详情
+     */
+    private String detail;
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    private Integer isDel;
+    /**
+     * 状态(1.上架 2.下架)
+     */
+    private Integer status;
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    private Long createBy;
+    /**
+     * 修改时间
+     */
+    private Date updateAt;
+    /**
+     * 修改人id
+     */
+    private Long updateBy;
+
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    public interface IsDel{
+        int YES = 1;
+        int NO = 2;
+    }
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComChangeCarModelRelation.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComChangeCarModelRelation.java
new file mode 100644
index 0000000..121eca0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComChangeCarModelRelation.java
@@ -0,0 +1,35 @@
+package com.panzhihua.service_community.entity;
+
+import java.io.Serializable;
+
+import lombok.Data;
+
+/**
+ * 换新车-车型与规格关联表(ComChangeCarModelRelation)实体类
+ *
+ * @author lyq
+ * @since 2022-04-07 13:55:29
+ */
+@Data
+public class ComChangeCarModelRelation implements Serializable {
+    private static final long serialVersionUID = 890027722653708022L;
+    /**
+     * 主键id
+     */
+    private Long id;
+    /**
+     * 车型id
+     */
+    private Long modelId;
+    /**
+     * 车型规格id
+     */
+    private Long modelSpecsId;
+    /**
+     * 车型子规格id
+     */
+    private Long modelSpecsChildrenId;
+
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComChangeCarModelSpecs.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComChangeCarModelSpecs.java
new file mode 100644
index 0000000..e82f9f2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComChangeCarModelSpecs.java
@@ -0,0 +1,58 @@
+package com.panzhihua.service_community.entity;
+
+import java.util.Date;
+import java.io.Serializable;
+
+import lombok.Data;
+
+/**
+ * 换新车-车型规格表(ComChangeCarModelSpecs)实体类
+ *
+ * @author lyq
+ * @since 2022-04-07 13:55:31
+ */
+@Data
+public class ComChangeCarModelSpecs implements Serializable {
+    private static final long serialVersionUID = 755081439613117645L;
+    /**
+     * 主键id
+     */
+    private Long id;
+    /**
+     * 规格编号
+     */
+    private String code;
+    /**
+     * 规格名称
+     */
+    private String name;
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    private Integer isDel;
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    private Long createBy;
+    /**
+     * 修改时间
+     */
+    private Date updateAt;
+    /**
+     * 修改人id
+     */
+    private Long updateBy;
+
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    public interface IsDel{
+        int YES = 1;
+        int NO = 2;
+    }
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComChangeCarModelSpecsChildren.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComChangeCarModelSpecsChildren.java
new file mode 100644
index 0000000..808862e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComChangeCarModelSpecsChildren.java
@@ -0,0 +1,41 @@
+package com.panzhihua.service_community.entity;
+
+import java.io.Serializable;
+
+import lombok.Data;
+
+/**
+ * 换新车-车型子规格表(ComChangeCarModelSpecsChildren)实体类
+ *
+ * @author lyq
+ * @since 2022-04-07 13:55:33
+ */
+@Data
+public class ComChangeCarModelSpecsChildren implements Serializable {
+    private static final long serialVersionUID = 811675617093500164L;
+    /**
+     * 主键id
+     */
+    private Long id;
+    /**
+     * 主规格id
+     */
+    private Long specsId;
+    /**
+     * 子规格名称
+     */
+    private String name;
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    private Integer isDel;
+
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    public interface IsDel{
+        int YES = 1;
+        int NO = 2;
+    }
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComCun.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComCun.java
new file mode 100644
index 0000000..e90e15b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComCun.java
@@ -0,0 +1,45 @@
+package com.panzhihua.service_community.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * (ComCun)表实体类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 相关功能
+ *
+ * @author zzj
+ * @since 2022-06-10 15:12:39
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("")
+public class ComCun implements Serializable {
+
+    private static final long serialVersionUID = -52058950684473753L;
+
+    private String area;
+
+    private String town;
+
+    private String community;
+
+    private String account;
+
+    private String name;
+
+    private String phone;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComEvent.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComEvent.java
new file mode 100644
index 0000000..5e40007
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComEvent.java
@@ -0,0 +1,230 @@
+package com.panzhihua.service_community.entity;
+
+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 com.fasterxml.jackson.annotation.JsonFormat;
+import com.panzhihua.common.model.vos.sanshuo.ComEventRequestImageVO;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * Description 三说会堂事件表
+ * ClassName   ComEvent
+ * @author     manailin
+ * @date       2022-09-07 11:23:51
+ */
+@Data
+@TableName("com_sanshuo_event_info")
+public class ComEvent implements Serializable {
+	private static final long serialVersionUID = 1L;
+	/**主键*/
+	@ApiModelProperty(name = "id", value = "主键")
+	@TableId(type = IdType.INPUT)
+	private Long id;
+	/**服务单号(流水号)按照日期时间+数字*/
+	@ApiModelProperty(name = "orderSn", value = "服务单号(流水号)按照日期时间+数字")
+	private String orderSn;
+	/**调解发起人ID*/
+	@ApiModelProperty(name = "requestUserId", value = "调解发起人ID")
+	private Long requestUserId;
+	/**调解发起人操作事件状态(1草稿箱2发布3逻辑删除4、撤销)*/
+	@ApiModelProperty(name = "userEventStatus", value = "调解发起人操作事件状态(1草稿箱2发布3逻辑删除4、撤销)")
+	private Integer userEventStatus;
+	/**调解发起人诉求事件描述*/
+	@ApiModelProperty(name = "requestUserEventDes", value = "调解发起人诉求事件描述")
+	private String requestUserEventDes;
+	/**调解发起人姓名*/
+	@ApiModelProperty(name = "requestUserName", value = "调解发起人姓名")
+	private String requestUserName;
+	/**调解发起人电话*/
+	@ApiModelProperty(name = "requestUserTel", value = "调解发起人电话")
+	private String requestUserTel;
+	/**调解事件类型*/
+	@ApiModelProperty(name = "eventCategory", value = "调解事件类型")
+	private Long eventCategory;
+	/**调解类型(1、行业分中心调解2、村社区调解3、是街道调解4、区)*/
+	@ApiModelProperty(name = "type", value = "调解类型(1、行业分中心调解2、村社区调解3、是街道调解4、区)")
+	private String type;
+	/**上报提交时间*/
+	@ApiModelProperty(name = "submitDate", value = "上报提交时间")
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date submitDate;
+	/**选择预约调解时间*/
+	@ApiModelProperty(name = "appointmentTime", value = "选择预约调解时间")
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date appointmentTime;
+	/**申请人选择的社区ID*/
+	@ApiModelProperty(name = "requestUserCommunity", value = "申请人选择的社区ID")
+	private Long requestUserCommunity;
+	/**行业分中心ID*/
+	@ApiModelProperty(name = "centerId", value = "行业分中心ID")
+	private String centerId;
+	/**行业分中心调解室电话*/
+	@ApiModelProperty(name = "centerTel", value = "行业分中心调解室电话")
+	private String centerTel;
+	/**调解专家所属单位*/
+	@ApiModelProperty(name = "specialistOrg", value = "调解专家所属单位")
+	private String specialistOrg;
+	/**调解专家级别*/
+	@ApiModelProperty(name = "specialistLevel", value = "调解专家级别")
+	private String specialistLevel;
+	/**选择调解专家ID*/
+	@ApiModelProperty(name = "specialistId", value = "选择调解专家ID")
+	private Long specialistId;
+	/**调解专家名字*/
+	@ApiModelProperty(name = "specialistName", value = "调解专家名字")
+	private String specialistName;
+	/**调解专家联系方式*/
+	@ApiModelProperty(name = "specialistTel", value = "调解专家联系方式")
+	private String specialistTel;
+	/**专家受理时间*/
+	@ApiModelProperty(name = "specialistAcceptTime", value = "专家受理时间")
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date specialistAcceptTime;
+	/**撤销类型 1 用户 2 社区3、街道4、行业分中心*/
+	@ApiModelProperty(name = "revokeType", value = "撤销类型 1 用户 2 社区3、街道4、行业分中心")
+	private Integer revokeType;
+	/**工作人员的事件处理状态1待处理2待分配3专家已受理4专家未受理,拒绝5调解中6已结案归档7调解取消*/
+	@ApiModelProperty(name = "eventProcessStatus", value = "工作人员的事件处理状态1待处理2待验证3专家已受理4专家未受理,拒绝5调解中6已结案7已归档8调解取消9已删除")
+	private Integer eventProcessStatus;
+	/**当前处理对象类型(1、行业分中心2、社区3、是街道4、区三说会堂,5专家)*/
+	@ApiModelProperty(name = "currentProcessType", value = "当前处理对象类型(1、行业分中心2、社区3、是街道4、区5专家)")
+	private Integer currentProcessType;
+	/**当前处理机构ID*/
+	@ApiModelProperty(name = "currentOrgId", value = "当前处理机构ID")
+	private String currentOrgId;
+	/**当前处理机构ID*/
+	@ApiModelProperty(name = "currentOrgName", value = "当前处理机构名称")
+	private String currentOrgName;
+	/**当前机构下处理人ID*/
+	@ApiModelProperty(name = "currentProcessUserId", value = "当前机构下处理人ID")
+	private Long currentProcessUserId;
+	/**当前机构下处理人名称*/
+	@ApiModelProperty(name = "currentProcessUserName", value = "当前机构下处理人名称")
+	private String currentProcessUserName;
+	/**撤销描述*/
+	@ApiModelProperty(name = "revokeDes", value = "撤销描述")
+	private String revokeDes;
+	/**当前调解处理结果*/
+	@ApiModelProperty(name = "currentEventProcessResult", value = "当前调解处理结果")
+	private String currentEventProcessResult;
+	/**调解是否成果1未成功2已成果*/
+	@ApiModelProperty(name = "eventSucceed", value = "调解是否成果1未成功2已成功")
+	private Integer eventSucceed;
+	/**事件结果(1、调解失败2、调解成功)*/
+	@ApiModelProperty(name = "eventResult", value = "事件结果(1、调解失败2、调解成功)")
+	private Integer eventResult;
+	/**当前处理人是否上报上级单位处理*/
+	@ApiModelProperty(name = "reportSuperior", value = "当前处理人是否上报上级单位处理")
+	private Boolean reportSuperior;
+	/**归档结案报告*/
+	@ApiModelProperty(name = "result", value = "归档结案报告")
+	private String result;
+	/**已归档处理完毕时间*/
+	@ApiModelProperty(name = "resultDate", value = "已归档处理完毕时间")
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	private Date resultDate;
+	/**是否紧急*/
+	@ApiModelProperty(name = "urgent", value = "是否紧急")
+	private Boolean urgent;
+	/**是否疑难事件*/
+	@ApiModelProperty(name = "difficult", value = "是否疑难事件")
+	private Boolean difficult;
+	/**是否催办*/
+	@ApiModelProperty(name = "urgentDell", value = "是否催办")
+	private Boolean urgentDell;
+	/**是否有效*/
+	@ApiModelProperty(name = "invalid", value = "是否有效")
+	private Boolean invalid;
+	/**是否重大*/
+	@ApiModelProperty(name = "major", value = "是否重大")
+	private Boolean major;
+	/**解决人针对解决事件的处理反馈描述*/
+	@ApiModelProperty(name = "requestUserResponse", value = "解决人针对解决事件的处理反馈描述")
+	private String requestUserResponse;
+	/**创建人*/
+	@ApiModelProperty(name = "createBy", value = "创建人")
+	private Long createBy;
+	/**创建时间*/
+	@ApiModelProperty(name = "createAt", value = "创建时间")
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+	private Date createAt;
+	/**修改人*/
+	@ApiModelProperty(name = "updateBy", value = "修改人")
+	private Long updateBy;
+	/**修改时间*/
+	@ApiModelProperty(name = "updateAt", value = "修改时间")
+	private Date updateAt;
+	/**调解上传图片地址列表,逗号进行分割*/
+	@TableField(exist = false)
+	@ApiModelProperty(name = "images", value = "调解上传图片地址列表,逗号进行分割")
+	private List<ComEventRequestImageVO> images;
+	@TableField(exist = false)
+	private String icon;
+	/**调解事件类型*/
+	@TableField(exist = false)
+	private String eventCategoryName;
+	@TableField(exist = false)
+	private String keyword;
+	@TableField(exist = false)
+	private Integer userType;
+	@ApiModelProperty("取消时间")
+	private Date revokeDate;
+	@ApiModelProperty("专家头像")
+    @TableField(exist = false)
+    private String expertAvatar;
+	@ApiModelProperty("社区id")
+	@TableField(exist = false)
+	private Long communityId;
+	@ApiModelProperty("上报等级,4专家上报到社区,3专家上报到行业分中心,2社区上报到街道,1街道上报到三说会堂5行业分中心上报到三说会堂")
+	private Integer reportLevel;
+	@TableField(exist = false)
+	private Integer isArchive;
+	@TableField(exist = false)
+	private Integer hasPerm;
+	@TableField(exist = false)
+	private List<Long> communityIds;
+	@TableField(exist = false)
+	private List<Long> eventIds;
+	private Integer reportCommunity;
+	private Integer reportCenter;
+	private Integer reportStreet;
+	private Integer reportHall;
+	//受理
+	@TableField(exist = false)
+	private Integer solve;
+	//调解
+	@TableField(exist = false)
+	private Integer conciliation;
+	//分配
+	@TableField(exist = false)
+	private Integer distribution;
+	//删除
+	@TableField(exist = false)
+	private Integer delete;
+	//归档
+	@TableField(exist = false)
+	private Integer archive;
+	//更换专家
+	@TableField(exist = false)
+	private Integer changeExpert;
+	private String appId;
+	@TableField(exist = false)
+	@ApiModelProperty("开始时间")
+	private String startTime;
+	@TableField(exist = false)
+	@ApiModelProperty("结束时间")
+	private String endTime;
+	@TableField(exist = false)
+	private Integer level;
+	@TableField(exist = false)
+	private Long searchId;
+	private Integer isEnd;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComEventResource.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComEventResource.java
new file mode 100644
index 0000000..9aa00e1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComEventResource.java
@@ -0,0 +1,60 @@
+package com.panzhihua.service_community.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Date;
+
+/**
+ * Description 三说会堂事件关联图片资源表
+ * ClassName   ComEventResource
+ * @author     manailin
+ * @date       2022-09-07 11:23:52
+ */
+@Data
+@TableName("com_sanshuo_event_resource")
+public class ComEventResource implements Serializable {
+	private static final long serialVersionUID = 1L;
+	/**主键*/
+	@ApiModelProperty(name = "id", value = "主键")
+	@TableId(type = IdType.INPUT)
+	private Long id;
+	/**事件关联ID*/
+	@ApiModelProperty(name = "refId", value = "事件关联ID")
+	private Long refId;
+	/**事件流转ID*/
+	@ApiModelProperty(name = "transferId", value = "事件流转ID")
+	private Long transferId;
+	/**1待处理2已受理3专家未受理4调解中5已归档6调解取消*/
+	@ApiModelProperty(name = "status", value = "1待处理2已受理3专家未受理4调解中5已归档6调解取消")
+	private Integer status;
+	/**事件上传的资源类型(1是图片2是音频3是是视频)*/
+	@ApiModelProperty(name = "type", value = "事件上传的资源类型(1是图片2是音频3是是视频)")
+	private Integer type;
+	/**资源名称*/
+	@ApiModelProperty(name = "resourceName", value = "资源名称")
+	private String resourceName;
+	/**资源大小*/
+	@ApiModelProperty(name = "resourceSize", value = "资源大小")
+	private String resourceSize;
+	/**视频或音频时长*/
+	@ApiModelProperty(name = "resourceTime", value = "视频或音频时长")
+	private Integer resourceTime;
+	/**事件上传的资源URL地址*/
+	@ApiModelProperty(name = "url", value = "事件上传的资源URL地址")
+	private String url;
+	/**上传人*/
+	@ApiModelProperty(name = "createBy", value = "上传人")
+	private Long createBy;
+	/**创建时间*/
+	@ApiModelProperty(name = "createAt", value = "创建时间")
+	private Date createAt;
+	/**删除标识(0:未删除,1:已删除)*/
+	@ApiModelProperty(name = "deleteFlag", value = "删除标识(0:未删除,1:已删除)")
+	private Boolean deleteFlag;
+   
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComEventTransferRecord.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComEventTransferRecord.java
new file mode 100644
index 0000000..8c3cd88
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComEventTransferRecord.java
@@ -0,0 +1,110 @@
+package com.panzhihua.service_community.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.panzhihua.common.model.vos.sanshuo.ComEventRequestImageVO;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * Description 三说会堂事件流转表
+ * ClassName   ComEventTransferRecord
+ * @author     manailin
+ * @date       2022-09-07 11:23:52
+ */
+@Data
+@TableName("com_sanshuo_event_transfer_record")
+public class ComEventTransferRecord implements Serializable {
+	private static final long serialVersionUID = 1L;
+	/**主键*/
+	@ApiModelProperty(name = "id", value = "主键")
+	private Long id;
+	/**事件ID*/
+	@ApiModelProperty(name = "eventId", value = "事件ID")
+	private Long eventId;
+	/**父级流转事件ID*/
+	@ApiModelProperty(name = "parentsTransferEventId", value = "父级流转事件ID")
+	private Long parentsTransferEventId;
+	/**来源类型(1、行业分中心2、社区3、是街道4、区)*/
+	@ApiModelProperty(name = "fromType", value = "来源类型(1、行业分中心2、社区3、是街道4、区)")
+	private Integer fromType;
+	/**(1、行业分中心2、社区3、是街道4、区)ID*/
+	@ApiModelProperty(name = "fromId", value = "(1、行业分中心2、社区3、是街道4、区)ID")
+	private Long fromId;
+	/**(1、行业分中心2、社区3、是街道4、区)名称*/
+	@ApiModelProperty(name = "fromName", value = "(1、行业分中心2、社区3、是街道4、区)名称")
+	private String fromName;
+	/**来源类型操作人ID*/
+	@ApiModelProperty(name = "fromUserId", value = "来源类型操作人ID")
+	private Long fromUserId;
+	/**转交类型(1、行业分中心2、社区3、是街道4、区)*/
+	@ApiModelProperty(name = "toType", value = "转交类型(1、行业分中心2、社区3、是街道4、区)")
+	private Integer toType;
+	/**接收(1、行业分中心2、社区3、是街道4、区)ID*/
+	@ApiModelProperty(name = "toId", value = "接收(1、行业分中心2、社区3、是街道4、区)ID")
+	private Long toId;
+	/**接收(1、行业分中心2、社区3、是街道4、区)名称*/
+	@ApiModelProperty(name = "toName", value = "接收(1、行业分中心2、社区3、是街道4、区)名称")
+	private String toName;
+	/**接收类型操作人ID(直接指派专家)*/
+	@ApiModelProperty(name = "toUserId", value = "接收类型操作人ID(直接指派专家)")
+	private Long toUserId;
+	/**是否已归档*/
+	@ApiModelProperty(name = "save", value = "是否已归档")
+	private Boolean save;
+	/**处理结果内容*/
+	@ApiModelProperty(name = "processResult", value = "处理结果内容")
+	private String processResult;
+	/**处理结果时间*/
+	@ApiModelProperty(name = "processResultData", value = "处理结果时间")
+	private String processResultData;
+	/**处理时间*/
+	@ApiModelProperty(name = "processDate", value = "处理时间")
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+	private Date processDate;
+	/**(1、行业分中心2、社区3、是街道4、区)下的处理人ID*/
+	@ApiModelProperty(name = "processBy", value = "(1、行业分中心2、社区3、是街道4、区)下的处理人ID")
+	private Long processBy;
+	/**(1、行业分中心2、社区3、是街道4、区)下的处理人名称*/
+	@ApiModelProperty(name = "processByName", value = "(1、行业分中心2、社区3、是街道4、区)下的处理人名称")
+	private String processByName;
+	/**业务处理类型 1 自处理 2 上报 3 社区标为无效4 撤销 5 重新发布已撤销事件6 重新发布已标为无效的事件*/
+	@ApiModelProperty(name = "processType", value = "业务处理类型 1 自处理 2 上报 3 社区标为无效4 撤销 5 重新发布已撤销事件6 重新发布已标为无效的事件")
+	private Integer processType;
+	/**创建时间*/
+	@ApiModelProperty(name = "createAt", value = "创建时间")
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+	private Date createAt;
+	/**选择调解专家ID*/
+	@ApiModelProperty(name = "specialistId", value = "选择调解专家ID")
+	private Long specialistId;
+	/**调解专家所属单位*/
+	@ApiModelProperty(name = "specialistOrg", value = "调解专家所属单位")
+	private String specialistOrg;
+	/**调解专家级别*/
+	@ApiModelProperty(name = "specialistLevel", value = "调解专家级别")
+	private String specialistLevel;
+	/**调解专家名字*/
+	@ApiModelProperty(name = "specialistName", value = "调解专家名字")
+	private String specialistName;
+	/**调解结果(1、调解失败2、调解成功)*/
+	@ApiModelProperty(name = "eventResult", value = "调解结果(1、调解失败2、调解成功)")
+	private Integer eventResult;
+	/**调解状态(1、调解未完成2、调解完成)*/
+	@ApiModelProperty(name = "eventStatus", value = "调解状态(1、调解未完成2、调解完成)")
+	private Integer eventStatus;
+	/**
+	 * 调解上传图片地址列表,逗号进行分割
+	 */
+	@ApiModelProperty(name = "images", value = "调解上传图片地址列表,逗号进行分割")
+	@TableField(exist = false)
+	private List<ComEventRequestImageVO> images;
+	@ApiModelProperty("上报等级,4专家上报到社区,3专家到行业分中心2社区上报到街道,1街道上报到三说会堂,5行业分中心上报到区三说会堂")
+	private Integer reportLevel;
+	private String content;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComFmsClassroom.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComFmsClassroom.java
new file mode 100644
index 0000000..4e7c30c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComFmsClassroom.java
@@ -0,0 +1,66 @@
+package com.panzhihua.service_community.entity;
+
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 五微服务-微学堂(ComFmsClassroom)表实体类
+ *
+ * @author makejava
+ * @since 2022-02-16 14:00:59
+ */
+@Data
+@TableName(value = "com_fms_classroom")
+@SuppressWarnings("serial")
+public class ComFmsClassroom implements Serializable {
+    private static final long serialVersionUID = 478204526855062234L;
+    /**
+     * 主键
+     */
+    private Long id;
+    /**
+     * 标题
+     */
+    private String title;
+    /**
+     * 参与学习人数
+     */
+    private Integer scholars;
+    /**
+     * 封面
+     */
+    private String cover;
+    /**
+     * 内容
+     */
+    private String content;
+    /**
+     * 浏览量
+     */
+    private Integer viewNum;
+    /**
+     * 创建时间
+     */
+    private Date createdAt;
+    /**
+     * 创建者
+     */
+    private Long createdBy;
+    /**
+     * 更新时间
+     */
+    private Date updatedAt;
+    /**
+     * 由谁更新
+     */
+    private Long updatedBy;
+    /**
+     * 所属社区
+     */
+    private Long communityId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComFmsService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComFmsService.java
new file mode 100644
index 0000000..790864f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComFmsService.java
@@ -0,0 +1,97 @@
+package com.panzhihua.service_community.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 五微服务-微服务(ComFmsService)表实体类
+ *
+ * @author makejava
+ * @since 2022-02-16 13:57:58
+ */
+@Data
+@TableName(value = "com_fms_service")
+@SuppressWarnings("serial")
+public class ComFmsService implements Serializable {
+    private static final long serialVersionUID = -29895236382912525L;
+    /**
+     * 主键
+     */
+    private Long id;
+    /**
+     * 用户姓名
+     */
+    private String userName;
+    /**
+     * 用户关联id
+     */
+    private Long userId;
+    /**
+     * 联系电话
+     */
+    private String phone;
+    /**
+     * 服务内容
+     */
+    private String serviceContent;
+    /**
+     * 服务内容图片
+     */
+    private String serviceImage;
+    /**
+     * 反馈内容
+     */
+    private String approvalContent;
+    /**
+     * 审核时间
+     */
+    private Date approvalAt;
+    /**
+     * 团队服务人员关联id
+     */
+    private Long memberId;
+    /**
+     * 服务状态(1.待核实2.进行中3.待评价4.已完成5.未通过)
+     */
+    private Integer serviceStatus;
+    /**
+     * 服务时间
+     */
+    private Date serviceAt;
+    /**
+     * 创建时间
+     */
+    private Date createdAt;
+    /**
+     * 创建者
+     */
+    private Long createdBy;
+    /**
+     * 更新时间
+     */
+    private Date updatedAt;
+    /**
+     * 由谁更新
+     */
+    private Long updatedBy;
+
+    /**
+     * 所属社区
+     */
+    private Long communityId;
+
+    /**
+     * 服务状态(1.待核实2.进行中3.待评价4.已完成5.未通过)
+     */
+    public interface ServiceStatus {
+        int dhs = 1;
+        int jxz = 2;
+        int dpj = 3;
+        int ywc = 4;
+        int wtg = 5;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComFmsServiceEvaluations.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComFmsServiceEvaluations.java
new file mode 100644
index 0000000..5fde0e7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComFmsServiceEvaluations.java
@@ -0,0 +1,49 @@
+package com.panzhihua.service_community.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 五微服务-服务评价(ComFmsServiceEvaluations)表实体类
+ *
+ * @author makejava
+ * @since 2022-02-11 13:35:53
+ */
+@Data
+@TableName(value = "com_fms_service_evaluations")
+@SuppressWarnings("serial")
+public class ComFmsServiceEvaluations implements Serializable {
+    private static final long serialVersionUID = -73970369473437007L;
+    /**
+     * 主键
+     */
+    private Long id;
+    /**
+     * 服务关联id
+     */
+    private Long serviceId;
+    /**
+     * 用户关联id
+     */
+    private Long userId;
+    /**
+     * 评分星级(1.非常差2.差3.一般4.满意5.非常满意)
+     */
+    private Integer starLevel;
+    /**
+     * 评价内容
+     */
+    private String evaluateContent;
+    /**
+     * 图片
+     */
+    private String image;
+    /**
+     * 创建时间
+     */
+    private Date createdAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComFmsServiceRecord.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComFmsServiceRecord.java
new file mode 100644
index 0000000..791d2f6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComFmsServiceRecord.java
@@ -0,0 +1,58 @@
+package com.panzhihua.service_community.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 五微服务-服务记录(ComFmsServiceRecord)表实体类
+ *
+ * @author makejava
+ * @since 2022-02-11 13:35:54
+ */
+@Data
+@TableName(value = "com_fms_service_record")
+@SuppressWarnings("serial")
+public class ComFmsServiceRecord implements Serializable {
+    private static final long serialVersionUID = -62643130900160237L;
+    /**
+     * 主键
+     */
+    private Long id;
+    /**
+     * 服务关联id
+     */
+    private Long serviceId;
+    /**
+     * 服务阶段
+     */
+    private String stage;
+    /**
+     * 内容
+     */
+    private String content;
+    /**
+     * 图片
+     */
+    private String image;
+    /**
+     * 创建时间
+     */
+    private Date createdAt;
+    /**
+     * 创建者
+     */
+    private Long createdBy;
+
+    //服务阶段
+    public interface Stage {
+        String TJFWSQ = "提交服务申请";
+        String SHTG = "审核通过,已分派服务人员";
+        String FWFK = "服务反馈";
+        String WCFW = "完成服务";
+        String HSBTG = "核实不通过";
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComFmsTeam.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComFmsTeam.java
new file mode 100644
index 0000000..c017860
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComFmsTeam.java
@@ -0,0 +1,62 @@
+package com.panzhihua.service_community.entity;
+
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 五微服务-微团队(ComFmsTeam)表实体类
+ *
+ * @author makejava
+ * @since 2022-02-14 11:26:00
+ */
+@Data
+@TableName(value = "com_fms_team")
+@SuppressWarnings("serial")
+public class ComFmsTeam implements Serializable {
+    private static final long serialVersionUID = -23489485985260679L;
+    /**
+     * 主键
+     */
+    private Long id;
+    /**
+     * 团队名称
+     */
+    private String name;
+    /**
+     * 服务电话
+     */
+    private String phone;
+    /**
+     * 所属团队类型
+     */
+    private Long teamType;
+    /**
+     * 创建时间
+     */
+    private Date createdAt;
+    /**
+     * 创建者
+     */
+    private Long createdBy;
+    /**
+     * 更新时间
+     */
+    private Date updatedAt;
+    /**
+     * 由谁更新
+     */
+    private Long updatedBy;
+    /**
+     * 社区id
+     */
+    private Long communityId;
+    /**
+     * 团队照片
+     */
+    private String image;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComFmsTeamMember.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComFmsTeamMember.java
new file mode 100644
index 0000000..a9cbbe6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComFmsTeamMember.java
@@ -0,0 +1,66 @@
+package com.panzhihua.service_community.entity;
+
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 五微服务-团队成员(ComFmsTeamMember)表实体类
+ *
+ * @author makejava
+ * @since 2022-02-14 16:55:39
+ */
+@Data
+@TableName(value = "com_fms_team_member")
+@SuppressWarnings("serial")
+public class ComFmsTeamMember implements Serializable {
+    private static final long serialVersionUID = 183663328661464263L;
+    /**
+     * 主键
+     */
+    private Long id;
+    /**
+     * 成员姓名
+     */
+    private String name;
+    /**
+     * 联系电话
+     */
+    private String phone;
+    /**
+     * 身份证号
+     */
+    private String idCard;
+    /**
+     * 所属社区
+     */
+    private Long communityId;
+    /**
+     * 创建时间
+     */
+    private Date createdAt;
+    /**
+     * 创建者
+     */
+    private Long createdBy;
+    /**
+     * 更新时间
+     */
+    private Date updatedAt;
+    /**
+     * 由谁更新
+     */
+    private Long updatedBy;
+    /**
+     * 团队级联关系
+     */
+    private String cascadeIds;
+    /**
+     * 性别(1.男2.女3.未知)
+     */
+    private Integer gender;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComFmsTeamMemberRelation.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComFmsTeamMemberRelation.java
new file mode 100644
index 0000000..254f9d4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComFmsTeamMemberRelation.java
@@ -0,0 +1,29 @@
+package com.panzhihua.service_community.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 五微服务-团队&成员关系表(ComFmsTeamMemberRelation)表实体类
+ *
+ * @author makejava
+ * @since 2022-02-14 14:41:36
+ */
+@Data
+@TableName(value = "com_fms_team_member_relation")
+@SuppressWarnings("serial")
+public class ComFmsTeamMemberRelation implements Serializable {
+    private static final long serialVersionUID = -75599228117060880L;
+    /**
+     * 团队id
+     */
+    private Long teamId;
+    /**
+     * 成员id
+     */
+    private Long memberId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComFmsTeamType.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComFmsTeamType.java
new file mode 100644
index 0000000..4fc1dc2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComFmsTeamType.java
@@ -0,0 +1,49 @@
+package com.panzhihua.service_community.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 五微服务-团队类型(ComFmsTeamType)表实体类
+ *
+ * @author makejava
+ * @since 2022-02-11 13:35:56
+ */
+@Data
+@TableName(value = "com_fms_team_type")
+@SuppressWarnings("serial")
+public class ComFmsTeamType implements Serializable {
+    private static final long serialVersionUID = -78377643285663874L;
+    /**
+     * 主键
+     */
+    private Long id;
+    /**
+     * 团队类型名称
+     */
+    private String name;
+    /**
+     * 所属社区
+     */
+    private Long communityId;
+    /**
+     * 创建时间
+     */
+    private Date createdAt;
+    /**
+     * 创建者
+     */
+    private Long createdBy;
+    /**
+     * 更新时间
+     */
+    private Date updatedAt;
+    /**
+     * 由谁更新
+     */
+    private Long updatedBy;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComMediateType.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComMediateType.java
new file mode 100644
index 0000000..279c516
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComMediateType.java
@@ -0,0 +1,189 @@
+package com.panzhihua.service_community.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+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;
+import java.util.Date;
+
+/**
+ * 事件调解类型表
+ * @TableName com_mediate_type
+ */
+@TableName(value ="com_mediate_type")
+@Data
+@ApiModel("事件类型")
+public class ComMediateType implements Serializable {
+
+    /**
+     * 主键
+     */
+    @TableId
+    @ApiModelProperty("id,修改时传")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 类型名称
+     */
+    @ApiModelProperty("类型名称")
+    private String name;
+
+    /**
+     * code码
+     */
+    @ApiModelProperty("code码")
+    private String code;
+
+    /**
+     * 父id((根节点为0))
+     */
+    @ApiModelProperty("父id((根节点为0))")
+    private Long parentId;
+
+    /**
+     * 路径(格式 : `pid1`pid2`id` )
+     */
+    @ApiModelProperty("路径(格式 : `pid1`pid2`id` )")
+    private String pathId;
+
+    /**
+     * 所在层级
+     */
+    @ApiModelProperty("所在层级")
+    private Integer levelIndex;
+
+    /**
+     * 排序
+     */
+    @ApiModelProperty("排序")
+    private Integer sort;
+
+    /**
+     * 启用状态(0:停用,1:启用)
+     */
+    @ApiModelProperty("启用状态(0:停用,1:启用)")
+    private Boolean enabled;
+
+    /**
+     * 备注说明
+     */
+    @ApiModelProperty("备注说明")
+    private String remarks;
+
+    /**
+     * 创建者
+     */
+    @ApiModelProperty("创建者")
+    private Long createUser;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    private Date createDate;
+
+    /**
+     * 修改者
+     */
+    @ApiModelProperty("修改者")
+    private Long modifyUser;
+
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty("修改时间")
+    private Date modifyDate;
+
+    /**
+     * 删除标识(0:未删除,1:已删除)
+     */
+    @ApiModelProperty("0:未删除,1:已删除")
+    private Boolean deleteFlag;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    @TableField(exist = false)
+    private Integer eventCount;
+
+//    @Override
+//    public boolean equals(Object that) {
+//        if (this == that) {
+//            return true;
+//        }
+//        if (that == null) {
+//            return false;
+//        }
+//        if (getClass() != that.getClass()) {
+//            return false;
+//        }
+//        ComMediateType other = (ComMediateType) that;
+//        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
+//            && (this.getName() == null ? other.getName() == null : this.getName().equals(other.getName()))
+//            && (this.getKey() == null ? other.getKey() == null : this.getKey().equals(other.getKey()))
+//            && (this.getParentId() == null ? other.getParentId() == null : this.getParentId().equals(other.getParentId()))
+//            && (this.getPathId() == null ? other.getPathId() == null : this.getPathId().equals(other.getPathId()))
+//            && (this.getLevelIndex() == null ? other.getLevelIndex() == null : this.getLevelIndex().equals(other.getLevelIndex()))
+//            && (this.getSort() == null ? other.getSort() == null : this.getSort().equals(other.getSort()))
+//            && (this.getEnabled() == null ? other.getEnabled() == null : this.getEnabled().equals(other.getEnabled()))
+//            && (this.getRemarks() == null ? other.getRemarks() == null : this.getRemarks().equals(other.getRemarks()))
+//            && (this.getCreateUser() == null ? other.getCreateUser() == null : this.getCreateUser().equals(other.getCreateUser()))
+//            && (this.getCreateDate() == null ? other.getCreateDate() == null : this.getCreateDate().equals(other.getCreateDate()))
+//            && (this.getModifyUser() == null ? other.getModifyUser() == null : this.getModifyUser().equals(other.getModifyUser()))
+//            && (this.getModifyDate() == null ? other.getModifyDate() == null : this.getModifyDate().equals(other.getModifyDate()))
+//            && (this.getDeleteFlag() == null ? other.getDeleteFlag() == null : this.getDeleteFlag().equals(other.getDeleteFlag()));
+//    }
+//
+//    @Override
+//    public int hashCode() {
+//        final int prime = 31;
+//        int result = 1;
+//        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
+//        result = prime * result + ((getName() == null) ? 0 : getName().hashCode());
+//        result = prime * result + ((getKey() == null) ? 0 : getKey().hashCode());
+//        result = prime * result + ((getParentId() == null) ? 0 : getParentId().hashCode());
+//        result = prime * result + ((getPathId() == null) ? 0 : getPathId().hashCode());
+//        result = prime * result + ((getLevelIndex() == null) ? 0 : getLevelIndex().hashCode());
+//        result = prime * result + ((getSort() == null) ? 0 : getSort().hashCode());
+//        result = prime * result + ((getEnabled() == null) ? 0 : getEnabled().hashCode());
+//        result = prime * result + ((getRemarks() == null) ? 0 : getRemarks().hashCode());
+//        result = prime * result + ((getCreateUser() == null) ? 0 : getCreateUser().hashCode());
+//        result = prime * result + ((getCreateDate() == null) ? 0 : getCreateDate().hashCode());
+//        result = prime * result + ((getModifyUser() == null) ? 0 : getModifyUser().hashCode());
+//        result = prime * result + ((getModifyDate() == null) ? 0 : getModifyDate().hashCode());
+//        result = prime * result + ((getDeleteFlag() == null) ? 0 : getDeleteFlag().hashCode());
+//        return result;
+//    }
+//
+//    @Override
+//    public String toString() {
+//        StringBuilder sb = new StringBuilder();
+//        sb.append(getClass().getSimpleName());
+//        sb.append(" [");
+//        sb.append("Hash = ").append(hashCode());
+//        sb.append(", id=").append(id);
+//        sb.append(", name=").append(name);
+//        sb.append(", key=").append(key);
+//        sb.append(", parentId=").append(parentId);
+//        sb.append(", pathId=").append(pathId);
+//        sb.append(", levelIndex=").append(levelIndex);
+//        sb.append(", sort=").append(sort);
+//        sb.append(", enabled=").append(enabled);
+//        sb.append(", remarks=").append(remarks);
+//        sb.append(", createUser=").append(createUser);
+//        sb.append(", createDate=").append(createDate);
+//        sb.append(", modifyUser=").append(modifyUser);
+//        sb.append(", modifyDate=").append(modifyDate);
+//        sb.append(", deleteFlag=").append(deleteFlag);
+//        sb.append(", serialVersionUID=").append(serialVersionUID);
+//        sb.append("]");
+//        return sb.toString();
+//    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComPbCheckUnit.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComPbCheckUnit.java
new file mode 100644
index 0000000..79c21ed
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComPbCheckUnit.java
@@ -0,0 +1,174 @@
+package com.panzhihua.service_community.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("党建-报到单位")
+public class ComPbCheckUnit implements Serializable {
+
+    private static final long serialVersionUID = 171585961585758185L;
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    /**
+     * 单位名称
+     */
+    @ApiModelProperty(value = "单位名称")
+    private String name;
+
+    /**
+     * 单位类别(1.国有企业 2.国有控股企业 3.外资企业 4.合资企业 5.私营企业 6.事业单位 7.国家行政机关 8.政府)
+     */
+    @ApiModelProperty(value = "单位类别(1.国有企业 2.国有控股企业 3.外资企业 4.合资企业 5.私营企业 6.事业单位 7.国家行政机关 8.政府)")
+    private Integer type;
+
+    /**
+     * 负责人
+     */
+    @ApiModelProperty(value = "负责人")
+    private String contacts;
+
+    /**
+     * 负责人联系电话
+     */
+    @ApiModelProperty(value = "负责人联系电话")
+    private String phone;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createBy;
+
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+
+    /**
+     * 修改人id
+     */
+    @ApiModelProperty(value = "修改人id")
+    private Long updateBy;
+
+    private String orgName;
+
+    /**
+     * 单位logo
+     */
+    @ApiModelProperty(value = "单位logo")
+    private String logo;
+
+    /**
+     * 党组织人数
+     */
+    @ApiModelProperty(value = "党组织人数")
+    private Integer partyNum;
+
+    /**
+     * 单位地址
+     */
+    @ApiModelProperty(value = "单位地址")
+    private String address;
+
+    /**
+     * 管理员账号
+     */
+    @ApiModelProperty(value = "管理员账号")
+    private String adminPhone;
+
+    /**
+     * 管理员名称
+     */
+    @ApiModelProperty(value = "管理员名称")
+    private String adminName;
+
+    /**
+     * 特长描述
+     */
+    @ApiModelProperty(value = "特长描述")
+    private String specialtyName;
+
+    /**
+     * 帮扶社区id
+     */
+    @ApiModelProperty(value = "帮扶社区id")
+    private Long helpCommunityId;
+
+    /**
+     * 小区id
+     */
+    @ApiModelProperty(value = "小区id")
+    private Long villageId;
+
+    /**
+     * 单位性质
+     */
+    @ApiModelProperty(value = "单位性质")
+    private String natureName;
+
+    /**
+     * 单位性质id
+     */
+    @ApiModelProperty(value = "单位性质id")
+    private Integer natureId;
+
+    /**
+     * 帮扶社区名字
+     */
+    @ApiModelProperty(value = "帮扶社区名字")
+    private String helpCommunityName;
+
+    private String helpCommunityContacts;
+
+    private String helpCommunityContactsName;
+
+    private String otherRemark;
+
+    private String villageName;
+
+    /**
+     * 单位所属
+     */
+    @ApiModelProperty(value = "单位所属")
+    private String belongTo;
+
+    /**
+     * 联系人json
+     */
+    @ApiModelProperty(value = "联系人json")
+    private String adminJson;
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComPbServiceTeam.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComPbServiceTeam.java
new file mode 100644
index 0000000..5c1a533
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComPbServiceTeam.java
@@ -0,0 +1,80 @@
+package com.panzhihua.service_community.entity;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 服务团队(ComPbServiceTeam)表实体类
+ *
+ * @author makejava
+ * @since 2021-10-11 13:24:35
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("服务团队")
+public class ComPbServiceTeam implements Serializable {
+
+    private static final long serialVersionUID = -12211594984638204L;
+
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 姓名
+     */
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    /**
+     * 职位
+     */
+    @ApiModelProperty(value = "职位")
+    private String job;
+
+    /**
+     * 职位2
+     */
+    @ApiModelProperty(value = "职位2")
+    private String jobTwo;
+
+    /**
+     * 照片
+     */
+    @ApiModelProperty(value = "照片")
+    private String url;
+
+    private Date createAt;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    private String jobResponsibilities;
+
+    private String phone;
+
+    private Integer isReg;
+
+    /**
+     * 身份证号码
+     */
+    @ApiModelProperty(value = "身份证号码")
+    private String cardNo;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComProperty.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComProperty.java
new file mode 100644
index 0000000..75d324e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComProperty.java
@@ -0,0 +1,101 @@
+package com.panzhihua.service_community.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * (ComProperty)表实体类
+ *
+ * @author makejava
+ * @since 2021-09-18 10:46:50
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("")
+public class ComProperty implements Serializable {
+
+    private static final long serialVersionUID = 860578600976051156L;
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 名称
+     */
+    @ApiModelProperty(value = "名称")
+    private String name;
+
+    /**
+     * 简介
+     */
+    @ApiModelProperty(value = "简介")
+    private String introduction;
+
+    /**
+     * 联系人姓名
+     */
+    @ApiModelProperty(value = "联系人姓名")
+    private String contactName;
+
+    /**
+     * 联系人手机
+     */
+    @ApiModelProperty(value = "联系人手机")
+    private String phone;
+
+    /**
+     * 地址
+     */
+    @ApiModelProperty(value = "地址")
+    private String address;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    private Date createTime;
+
+    private Long areaId;
+
+    private String password;
+
+    /**
+     * 评价星级(1~5)
+     */
+    private Integer star;
+
+    /**
+     * 红色物业(1.是 2.否)
+     */
+    private Integer isRed;
+
+    /**
+     * logo
+     */
+    private String logo;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComPropertyWorker.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComPropertyWorker.java
new file mode 100644
index 0000000..ba6a4d0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComPropertyWorker.java
@@ -0,0 +1,56 @@
+package com.panzhihua.service_community.entity;
+
+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;
+
+/**
+ * 物业公司工作人员(ComPropertyWorker)表实体类
+ *
+ * @author makejava
+ * @since 2022-04-26 09:39:59
+ */
+@Data
+@TableName(value = "com_property_worker")
+@SuppressWarnings("serial")
+public class ComPropertyWorker implements Serializable {
+    private static final long serialVersionUID = -27758929486387787L;
+    /**
+     * 物业工作人员id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 工作人员姓名
+     */
+    private String name;
+    /**
+     * 手机号
+     */
+    private String phone;
+    /**
+     * 职务
+     */
+    private String position;
+    /**
+     * 照片
+     */
+    private String image;
+    /**
+     * 物业公司关联id
+     */
+    private Long refId;
+    /**
+     * 创建时间
+     */
+    private Date createdAt;
+    /**
+     * 更新时间
+     */
+    private Date updatedAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComSanshuoEvent.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComSanshuoEvent.java
new file mode 100644
index 0000000..27261f5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComSanshuoEvent.java
@@ -0,0 +1,114 @@
+package com.panzhihua.service_community.entity;
+
+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 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;
+import java.util.Date;
+
+/**
+ * 三说会堂事件类型表
+ * @TableName com_sanshuo_event
+ */
+@TableName(value ="com_sanshuo_event")
+@Data
+@ApiModel("三说会堂事件类型")
+public class ComSanshuoEvent implements Serializable {
+    /**
+     * id
+     */
+    @ApiModelProperty("id,修改时传")
+    @TableId(type = IdType.AUTO)
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Integer id;
+
+    /**
+     * 事件类型名称
+     */
+    @ApiModelProperty("事件类型名称")
+    private String name;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty("修改时间")
+    private Date updateTime;
+
+    /**
+     * 0禁用1启用
+     */
+    @ApiModelProperty("0禁用1启用")
+    private Integer status;
+
+    /**
+     * 0删除1正常
+     */
+    @ApiModelProperty("0删除1正常")
+    private Integer delFlag;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    public boolean equals(Object that) {
+        if (this == that) {
+            return true;
+        }
+        if (that == null) {
+            return false;
+        }
+        if (getClass() != that.getClass()) {
+            return false;
+        }
+        ComSanshuoEvent other = (ComSanshuoEvent) that;
+        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
+            && (this.getName() == null ? other.getName() == null : this.getName().equals(other.getName()))
+            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
+            && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
+            && (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus()))
+            && (this.getDelFlag() == null ? other.getDelFlag() == null : this.getDelFlag().equals(other.getDelFlag()));
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
+        result = prime * result + ((getName() == null) ? 0 : getName().hashCode());
+        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
+        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
+        result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode());
+        result = prime * result + ((getDelFlag() == null) ? 0 : getDelFlag().hashCode());
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", name=").append(name);
+        sb.append(", createTime=").append(createTime);
+        sb.append(", updateTime=").append(updateTime);
+        sb.append(", status=").append(status);
+        sb.append(", delFlag=").append(delFlag);
+        sb.append(", serialVersionUID=").append(serialVersionUID);
+        sb.append("]");
+        return sb.toString();
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComSanshuoExpert.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComSanshuoExpert.java
new file mode 100644
index 0000000..1c9ba8d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComSanshuoExpert.java
@@ -0,0 +1,137 @@
+package com.panzhihua.service_community.entity;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 三说会堂专家表
+ * @TableName com_sanshuo_expert
+ */
+@TableName(value ="com_sanshuo_expert")
+@Data
+public class ComSanshuoExpert implements Serializable {
+    /**
+     * id
+     */
+    @TableId
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 专家级别(1三说会堂2行业分中心3街道4社区)
+     */
+    @ExcelProperty("level")
+    private Integer level;
+
+    /**
+     * 所属社区id
+     */
+    @ExcelProperty("communityId")
+    private Long communityId;
+
+    /**
+     * 工作时间
+     */
+    @ExcelProperty("workTime")
+    private String workTime;
+
+    /**
+     * 擅长解决时间类型
+     */
+    @ExcelProperty("goodAt")
+    private String goodAt;
+
+    /**
+     * 姓名
+     */
+    @ExcelProperty("name")
+    private String name;
+
+    /**
+     * 头像
+     */
+    private String avatar;
+
+    /**
+     * 手机号
+     */
+    @ExcelProperty("phone")
+    private String phone;
+
+    /**
+     * 登陆账号
+     */
+    private String account;
+
+    /**
+     * 登陆密码
+     */
+    private String password;
+
+    /**
+     * 0禁用1启用
+     */
+    private Integer status;
+
+    /**
+     * 删除状态0已删除1正常
+     */
+    private Integer delFlag;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 创建人
+     */
+    private String createBy;
+
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+
+    /**
+     * 介绍信息
+     */
+    private String introduction;
+
+    /**
+     * 所属街道id
+     */
+    private Long streetId;
+
+    /**
+     * 行业分中心id
+     */
+    private Long industryCenterId;
+
+    /**
+     * 所属单位
+     */
+    private String unit;
+
+    private String unitId;
+
+    @TableField(exist = false)
+    private Integer count;
+    @TableField(exist = false)
+    private BigDecimal rate;
+    private Integer added;
+    private String appId;
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComSanshuoIndustryCenter.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComSanshuoIndustryCenter.java
new file mode 100644
index 0000000..4022ddc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ComSanshuoIndustryCenter.java
@@ -0,0 +1,144 @@
+package com.panzhihua.service_community.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 三说会堂-行业分中心表
+ * @TableName com_sanshuo_industry_center
+ */
+@TableName(value ="com_sanshuo_industry_center")
+@Data
+public class ComSanshuoIndustryCenter implements Serializable {
+    /**
+     * id
+     */
+    @TableId
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 行业分中心名称
+     */
+    private String name;
+
+    /**
+     * 调解室电话
+     */
+    private String phone;
+
+    /**
+     * 登录账号
+     */
+    private String account;
+
+    /**
+     * 创建人
+     */
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+
+    /**
+     * 修改时间
+     */
+    private Date updateTime;
+
+    /**
+     * 状态0禁用1启用
+     */
+    private Integer status;
+
+    /**
+     * 0删除1正常
+     */
+    private Integer delFlag;
+
+    /**
+     * 所属街道id
+     */
+    private Long streetId;
+
+    /**
+     * 所属社区id
+     */
+    private Long communityId;
+
+    private String password;
+
+    @TableField(exist = false)
+    private static final long serialVersionUID = 1L;
+
+    @Override
+    public boolean equals(Object that) {
+        if (this == that) {
+            return true;
+        }
+        if (that == null) {
+            return false;
+        }
+        if (getClass() != that.getClass()) {
+            return false;
+        }
+        ComSanshuoIndustryCenter other = (ComSanshuoIndustryCenter) that;
+        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
+            && (this.getName() == null ? other.getName() == null : this.getName().equals(other.getName()))
+            && (this.getPhone() == null ? other.getPhone() == null : this.getPhone().equals(other.getPhone()))
+            && (this.getAccount() == null ? other.getAccount() == null : this.getAccount().equals(other.getAccount()))
+            && (this.getCreateBy() == null ? other.getCreateBy() == null : this.getCreateBy().equals(other.getCreateBy()))
+            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
+            && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
+            && (this.getStatus() == null ? other.getStatus() == null : this.getStatus().equals(other.getStatus()))
+            && (this.getDelFlag() == null ? other.getDelFlag() == null : this.getDelFlag().equals(other.getDelFlag()))
+            && (this.getStreetId() == null ? other.getStreetId() == null : this.getStreetId().equals(other.getStreetId()))
+            && (this.getCommunityId() == null ? other.getCommunityId() == null : this.getCommunityId().equals(other.getCommunityId()));
+    }
+
+    @Override
+    public int hashCode() {
+        final int prime = 31;
+        int result = 1;
+        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
+        result = prime * result + ((getName() == null) ? 0 : getName().hashCode());
+        result = prime * result + ((getPhone() == null) ? 0 : getPhone().hashCode());
+        result = prime * result + ((getAccount() == null) ? 0 : getAccount().hashCode());
+        result = prime * result + ((getCreateBy() == null) ? 0 : getCreateBy().hashCode());
+        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
+        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
+        result = prime * result + ((getStatus() == null) ? 0 : getStatus().hashCode());
+        result = prime * result + ((getDelFlag() == null) ? 0 : getDelFlag().hashCode());
+        result = prime * result + ((getStreetId() == null) ? 0 : getStreetId().hashCode());
+        result = prime * result + ((getCommunityId() == null) ? 0 : getCommunityId().hashCode());
+        return result;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(getClass().getSimpleName());
+        sb.append(" [");
+        sb.append("Hash = ").append(hashCode());
+        sb.append(", id=").append(id);
+        sb.append(", name=").append(name);
+        sb.append(", phone=").append(phone);
+        sb.append(", account=").append(account);
+        sb.append(", createBy=").append(createBy);
+        sb.append(", createTime=").append(createTime);
+        sb.append(", updateTime=").append(updateTime);
+        sb.append(", status=").append(status);
+        sb.append(", delFlag=").append(delFlag);
+        sb.append(", streetId=").append(streetId);
+        sb.append(", communityId=").append(communityId);
+        sb.append(", serialVersionUID=").append(serialVersionUID);
+        sb.append("]");
+        return sb.toString();
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/JinhuiCoinGeneralTable.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/JinhuiCoinGeneralTable.java
new file mode 100644
index 0000000..afb7a35
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/JinhuiCoinGeneralTable.java
@@ -0,0 +1,49 @@
+package com.panzhihua.service_community.entity;
+
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇社区用户金汇币总表")
+public class JinhuiCoinGeneralTable implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+
+    @ApiModelProperty(value = "金币总额")
+    private String goldCoin="0";
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsConfig.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsConfig.java
new file mode 100644
index 0000000..d4957a8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsConfig.java
@@ -0,0 +1,53 @@
+package com.panzhihua.service_community.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * (McsConfig)表实体类
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:07
+ */
+@Data
+@TableName(value = "mcs_config")
+@SuppressWarnings("serial")
+public class McsConfig implements Serializable {
+    private static final long serialVersionUID = 304699800613967550L;
+
+    private Long id;
+    /**
+     * 商业街配置项名称
+     */
+    private String name;
+    /**
+     * 配置项
+     */
+    @TableField("`key`")
+    private String key;
+    /**
+     * 配置内容
+     */
+    private String value;
+    /**
+     * 创建时间
+     */
+    private Date createdAt;
+    /**
+     * 创建人
+     */
+    private Long createdBy;
+    /**
+     * 更新时间
+     */
+    private Date updatedAt;
+    /**
+     * 由谁更新
+     */
+    private Long updatedBy;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsCoupon.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsCoupon.java
new file mode 100644
index 0000000..b6ac5c8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsCoupon.java
@@ -0,0 +1,58 @@
+package com.panzhihua.service_community.entity;
+
+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;
+
+/**
+ * (McsCoupon)表实体类
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:08
+ */
+@Data
+@TableName(value = "mcs_coupon")
+@SuppressWarnings("serial")
+public class McsCoupon implements Serializable {
+    private static final long serialVersionUID = 236342407932267836L;
+
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 关联id
+     */
+    private Long gameId;
+    /**
+     * 用户id
+     */
+    private Long userId;
+    /**
+     * 二维码
+     */
+    private String qrCode;
+    /**
+     * 戳戳币
+     */
+    private Integer coin;
+    /**
+     * 奖品
+     */
+    private String award;
+    /**
+     * 是否核验
+     */
+    private Boolean isVerified;
+    /**
+     * 创建时间
+     */
+    private Date createdAt;
+    /**
+     * 最后更新时间
+     */
+    private Date updatedAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsEvaluate.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsEvaluate.java
new file mode 100644
index 0000000..0890517
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsEvaluate.java
@@ -0,0 +1,51 @@
+package com.panzhihua.service_community.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * (McsEvaluate)表实体类
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:08
+ */
+@Data
+@TableName(value = "mcs_evaluate")
+@SuppressWarnings("serial")
+public class McsEvaluate implements Serializable {
+    private static final long serialVersionUID = -64045498558186286L;
+
+    private Long id;
+    /**
+     * 戳戳券码id
+     */
+    private Long couponId;
+    /**
+     * 所属游戏id
+     */
+    private Long gameId;
+    /**
+     * 评价用户id
+     */
+    private Long userId;
+    /**
+     * 评分(1.差 2.一般 3.还不错 4.很满意 5.强烈推荐)
+     */
+    private Integer star;
+    /**
+     * 评价内容
+     */
+    private String content;
+    /**
+     * 评价图片(多张逗号隔开)
+     */
+    private String photos;
+    /**
+     * 评价时间
+     */
+    private Date createdAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsGame.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsGame.java
new file mode 100644
index 0000000..1ab83e2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsGame.java
@@ -0,0 +1,130 @@
+package com.panzhihua.service_community.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * (McsGame)表实体类
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:09
+ */
+@Data
+@TableName(value = "mcs_game")
+@SuppressWarnings("serial")
+public class McsGame implements Serializable {
+    private static final long serialVersionUID = 996990563935718402L;
+
+    private Long id;
+    /**
+     * 游戏名称
+     */
+    private String name;
+    /**
+     * 戳戳卷数量
+     */
+    private Integer coupons;
+    /**
+     * 剩余戳戳卷数量
+     */
+    private Integer surplusCoupons;
+    /**
+     * 游戏类别(1.戳戳币游戏 2.体验游戏)
+     */
+    private Integer type;
+    /**
+     * 奖励类型(1.免费领 2.产品试用 3.消费赠礼 4.优惠券)
+     */
+    private Integer awardType;
+    /**
+     * 戳戳币分配方式(1.随机分配 2.平均分配)
+     */
+    private Integer allocation;
+    /**
+     * 戳戳币总额
+     */
+    private Integer coins;
+    /**
+     * 剩余戳戳币
+     */
+    private Integer surplusCoins;
+    /**
+     * 地址
+     */
+    private String address;
+    /**
+     * 纬度
+     */
+    private String lat;
+    /**
+     * 经度
+     */
+    private String lon;
+    /**
+     * 失效时间
+     */
+    private Date expireAt;
+    /**
+     * 封面
+     */
+    private String cover;
+    /**
+     * 其他图片(多张图片以逗号隔开)
+     */
+    private String otherImages;
+    /**
+     * 游戏介绍
+     */
+    private String introduction;
+    /**
+     * 状态(1.未发布 2.进行中 3.已下架 4.已结束)
+     */
+    private Integer status;
+    /**
+     * 是否设为热门
+     */
+    private Boolean isPopular;
+    /**
+     * 发布时间
+     */
+    private Date publishAt;
+    /**
+     * 是否删除
+     */
+    private Boolean isDel;
+    /**
+     * 所属商家
+     */
+    private Long merchantId;
+    /**
+     * 创建时间
+     */
+    private Date createdAt;
+    /**
+     * 创建人
+     */
+    private Long createdBy;
+    /**
+     * 更新时间
+     */
+    private Date updatedAt;
+    /**
+     * 由谁更新
+     */
+    private Long updatedBy;
+
+
+    /**
+     * 状态(1.未发布 2.进行中 3.已下架 4.已结束)
+     */
+    public interface Status {
+        int wfb = 1;
+        int jxz = 2;
+        int yxj = 3;
+        int yjs = 4;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsInformation.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsInformation.java
new file mode 100644
index 0000000..2041d03
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsInformation.java
@@ -0,0 +1,88 @@
+package com.panzhihua.service_community.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * (McsInformation)表实体类
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:10
+ */
+@Data
+@TableName(value = "mcs_information")
+@SuppressWarnings("serial")
+public class McsInformation implements Serializable {
+    private static final long serialVersionUID = -78188903489439933L;
+
+    private Long id;
+    /**
+     * 资讯标题
+     */
+    private String name;
+    /**
+     * 地址
+     */
+    private String address;
+    /**
+     * 纬度
+     */
+    private String lat;
+    /**
+     * 经度
+     */
+    private String lon;
+    /**
+     * 封面
+     */
+    private String cover;
+    /**
+     * 资讯内容
+     */
+    private String content;
+    /**
+     * 状态(1.未发布 2.已发布 3.已下架)
+     */
+    private Integer status;
+    /**
+     * 发布时间
+     */
+    private Date publishAt;
+    /**
+     * 是否删除
+     */
+    private Boolean isDel;
+    /**
+     * 所属商家
+     */
+    private Long merchantId;
+    /**
+     * 创建时间
+     */
+    private Date createdAt;
+    /**
+     * 创建人
+     */
+    private Long createdBy;
+    /**
+     * 更新时间
+     */
+    private Date updatedAt;
+    /**
+     * 由谁更新
+     */
+    private Long updatedBy;
+
+    /**
+     * 状态(1.未发布 2.已发布 3.已下架)
+     */
+    public interface Status{
+        int wfb = 1;
+        int yfb = 2;
+        int yxj = 3;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsLabel.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsLabel.java
new file mode 100644
index 0000000..47f9a20
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsLabel.java
@@ -0,0 +1,55 @@
+package com.panzhihua.service_community.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * (McsLabel)表实体类
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:10
+ */
+@Data
+@TableName(value = "mcs_label")
+@SuppressWarnings("serial")
+public class McsLabel implements Serializable {
+    private static final long serialVersionUID = -23139583272426139L;
+
+    private Long id;
+    /**
+     * 标签名称
+     */
+    private String name;
+    /**
+     * 说明
+     */
+    private String introduction;
+    /**
+     * 是否删除
+     */
+    private Boolean isDel;
+    /**
+     * 所属商家
+     */
+    private Long merchantId;
+    /**
+     * 创建时间
+     */
+    private Date createdAt;
+    /**
+     * 创建人
+     */
+    private Long createdBy;
+    /**
+     * 更新时间
+     */
+    private Date updatedAt;
+    /**
+     * 由谁更新
+     */
+    private Long updatedBy;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsMerchant.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsMerchant.java
new file mode 100644
index 0000000..dbeb3db
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsMerchant.java
@@ -0,0 +1,104 @@
+package com.panzhihua.service_community.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import lombok.Data;
+
+/**
+ * (McsMerchant)表实体类
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:11
+ */
+@Data
+@TableName(value = "mcs_merchant")
+@SuppressWarnings("serial")
+public class McsMerchant implements Serializable {
+    private static final long serialVersionUID = 535915125894031919L;
+
+    private Long id;
+    /**
+     * 商家名称
+     */
+    private String name;
+    /**
+     * 手机号
+     */
+    private String phone;
+    /**
+     * 商家账号
+     */
+    private String account;
+    /**
+     * 商家logo
+     */
+    @TableField(value = "logo", updateStrategy = FieldStrategy.IGNORED)
+    private String logo;
+    /**
+     * 关联用户id
+     */
+    private Long userId;
+    /**
+     * 商家级别(1.临时商家 2.合作商家)
+     */
+    private Integer level;
+    /**
+     * 戳戳点亮上限(发布次数上限)
+     */
+    private Integer publishLimit;
+    /**
+     * 到期时间
+     */
+    private Date expireAt;
+    /**
+     * 是否暂停服务
+     */
+    private Boolean isPause;
+    /**
+     * 首次点亮时间
+     */
+    private Date firstLitAt;
+    /**
+     * 商家地址
+     */
+    private String address;
+    /**
+     * 纬度
+     */
+    private String lat;
+    /**
+     * 经度
+     */
+    private String lon;
+    /**
+     * 商家简介
+     */
+    @TableField(value = "introduction", updateStrategy = FieldStrategy.IGNORED)
+    private String introduction;
+    /**
+     * 是否删除
+     */
+    private Boolean isDel;
+    /**
+     * 创建时间
+     */
+    private Date createdAt;
+    /**
+     * 创建人
+     */
+    private Long createdBy;
+    /**
+     * 更新时间
+     */
+    private Date updatedAt;
+    /**
+     * 由谁更新
+     */
+    private Long updatedBy;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsOrder.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsOrder.java
new file mode 100644
index 0000000..c736def
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsOrder.java
@@ -0,0 +1,109 @@
+package com.panzhihua.service_community.entity;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 商业街订单表(McsOrder)表实体类
+ *
+ * @author makejava
+ * @since 2022-01-04 16:10:06
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("商业街订单表")
+public class McsOrder implements Serializable {
+
+    private static final long serialVersionUID = -92724536016243196L;
+
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 订单编号
+     */
+    @ApiModelProperty(value = "订单编号")
+    private String orderNo;
+
+    /**
+     * 支付配置id
+     */
+    @ApiModelProperty(value = "支付配置id")
+    private Long configId;
+
+    /**
+     * 数量
+     */
+    @ApiModelProperty(value = "数量")
+    private Integer num;
+
+    /**
+     * 支付状态 0 待支付 1已支付 2 已取消 3 已退款
+     */
+    @ApiModelProperty(value = "支付状态 0 待支付 1已支付 2 已取消 3 已退款")
+    private Integer status;
+
+    /**
+     * 支付金额
+     */
+    @ApiModelProperty(value = "支付金额")
+    private BigDecimal money;
+
+    /**
+     * 支付时间
+     */
+    @ApiModelProperty(value = "支付时间")
+    private Date payTime;
+
+    /**
+     * 商家id
+     */
+    @ApiModelProperty(value = "商家id")
+    private Long merchantId;
+
+    /**
+     * 支付流水号
+     */
+    @ApiModelProperty(value = "支付流水号")
+    private String payNo;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+
+    private Date createTime;
+
+    private String merchantName;
+
+    private String paymentMethod;
+
+    /**
+     * 商家地址
+     */
+    private String address;
+    /**
+     * 纬度
+     */
+    private String lat;
+    /**
+     * 经度
+     */
+    private String lon;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsProduct.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsProduct.java
new file mode 100644
index 0000000..f2782fb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsProduct.java
@@ -0,0 +1,77 @@
+package com.panzhihua.service_community.entity;
+
+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;
+
+/**
+ * (McsProduct)表实体类
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:12
+ */
+@Data
+@TableName(value = "mcs_product")
+@SuppressWarnings("serial")
+public class McsProduct implements Serializable {
+    private static final long serialVersionUID = 415357403059379804L;
+
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 产品名称
+     */
+    private String name;
+    /**
+     * 产品图片
+     */
+    private String image;
+    /**
+     * 产品介绍
+     */
+    private String introduction;
+    /**
+     * 浏览量
+     */
+    private Integer viewNum;
+    /**
+     * 状态(1.上架中 2.已下架)
+     */
+    private Integer status;
+    /**
+     * 是否删除
+     */
+    private Boolean isDel;
+    /**
+     * 所属商家
+     */
+    private Long merchantId;
+    /**
+     * 创建时间
+     */
+    private Date createdAt;
+    /**
+     * 创建人
+     */
+    private Long createdBy;
+    /**
+     * 最后更新时间
+     */
+    private Date updatedAt;
+    /**
+     * 由谁更新
+     */
+    private Long updatedBy;
+
+    /**
+     * 状态(1.上架中 2.已下架)
+     */
+    public interface Status {
+        int sjz = 1;
+        int yxj = 2;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsProductLabel.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsProductLabel.java
new file mode 100644
index 0000000..2b1fac5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsProductLabel.java
@@ -0,0 +1,35 @@
+package com.panzhihua.service_community.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * (McsProductLabel)表实体类
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:13
+ */
+@Data
+@TableName(value = "mcs_product_label")
+@SuppressWarnings("serial")
+public class McsProductLabel implements Serializable {
+    private static final long serialVersionUID = 292891837724574338L;
+
+    private Long id;
+    /**
+     * 产品id
+     */
+    private Long productId;
+    /**
+     * 标签id
+     */
+    private Long labelId;
+    /**
+     * 标签名
+     */
+    private String labelName;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsVerifiedRecord.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsVerifiedRecord.java
new file mode 100644
index 0000000..3c5815a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/McsVerifiedRecord.java
@@ -0,0 +1,51 @@
+package com.panzhihua.service_community.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * (McsVerifiedRecord)表实体类
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:14
+ */
+@Data
+@TableName(value = "mcs_verified_record")
+@SuppressWarnings("serial")
+public class McsVerifiedRecord implements Serializable {
+    private static final long serialVersionUID = -81350642843928838L;
+
+    private Long id;
+    /**
+     * 戳戳券码id
+     */
+    private Long couponId;
+    /**
+     * 商家id
+     */
+    private Long merchantId;
+    /**
+     * 核验所属资源名称
+     */
+    private String name;
+    /**
+     * 用户id
+     */
+    private String nickName;
+    /**
+     * 游戏id
+     */
+    private Long gameId;
+    /**
+     * 获得奖励
+     */
+    private String award;
+    /**
+     * 核验时间
+     */
+    private Date verifiedAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/MostBeautifulVolunteer.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/MostBeautifulVolunteer.java
new file mode 100644
index 0000000..cd86a0c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/MostBeautifulVolunteer.java
@@ -0,0 +1,69 @@
+package com.panzhihua.service_community.entity;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("最美志愿者")
+public class MostBeautifulVolunteer implements Serializable
+{
+
+    private static final long serialVersionUID = -70884515430727555L;
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    private String id;
+    /**
+     * 志愿者姓名
+     */
+    @ApiModelProperty(value = "志愿者姓名")
+    private String name;
+    /**
+     * 志愿者证件url
+     */
+    @ApiModelProperty(value = "志愿者证件url")
+    private String certificateUrl;
+    /**
+     * 自我介绍
+     */
+    @ApiModelProperty(value = "自我介绍")
+    private String selfIntroduction;
+    /**
+     * 志愿者风采
+     */
+    @ApiModelProperty(value = "志愿者风采")
+    private String volunteerStyle;
+    /**
+     * 权重排序
+     */
+    @ApiModelProperty(value = "权重排序")
+    private String weightSorting;
+    /**
+     * 上下架状态( 0 下架    1 上架 )
+     */
+    @ApiModelProperty(value = "上下架状态( 0 下架    1 上架 )")
+    private String unmountType;
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date creationTime;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/NewFightNeedProblemClaim.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/NewFightNeedProblemClaim.java
new file mode 100644
index 0000000..54292f6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/NewFightNeedProblemClaim.java
@@ -0,0 +1,28 @@
+package com.panzhihua.service_community.entity;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class NewFightNeedProblemClaim implements Serializable {
+
+    private Long id;
+
+    private String taskId;
+
+    private String userId;
+
+    private Date punchStartTime;
+
+    private Date punchEndTime;
+
+    private String serviceTime;
+
+    private Date creationTime;
+
+    private Date updateTime;
+
+    private String unitId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/NewFightNeedProblemInventory.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/NewFightNeedProblemInventory.java
new file mode 100644
index 0000000..f9d6b77
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/NewFightNeedProblemInventory.java
@@ -0,0 +1,57 @@
+package com.panzhihua.service_community.entity;
+
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class NewFightNeedProblemInventory {
+
+    private Long id;
+
+    private String title;
+
+    private String classifyId;
+
+    private String claimNum;
+
+    private String address;
+
+    private String lat;
+
+    private String lon;
+
+    private Date claimStartTime;
+
+    private Date claimEndTime;
+
+    private Date needStartTime;
+
+    private Date needEndTime;
+
+    private String linkman;
+
+    private String phone;
+
+    private String signInScope;
+
+    private String signOutScope;
+
+    private String award;
+
+    private String content;
+
+    private String imgsUrl;
+
+    private Date creationTime;
+
+    private Date updateTime;
+
+    private String kind;
+
+    private String userId;
+
+    private String communityId;
+
+    private String status;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ProjectRelationVO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ProjectRelationVO.java
new file mode 100644
index 0000000..dcb0f79
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/ProjectRelationVO.java
@@ -0,0 +1,23 @@
+package com.panzhihua.service_community.entity;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.model.vos.community.social.SocialProjectVO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zzj
+ */
+@Data
+@ApiModel("相关项目")
+public class ProjectRelationVO {
+    @ApiModelProperty("一级父类项目")
+    private SocialProjectVO fatherProjectLevelOne;
+    @ApiModelProperty("二级父类项目")
+    private SocialProjectVO fatherProjectLevelTwo;
+    @ApiModelProperty("子类项目")
+    private IPage<SocialProjectVO> socialProjectVOIPage;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/RentingHourseContractConfig.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/RentingHourseContractConfig.java
new file mode 100644
index 0000000..8566041
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/RentingHourseContractConfig.java
@@ -0,0 +1,90 @@
+package com.panzhihua.service_community.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+
+/**
+ * 房屋租赁-配置项表(RentingHourseContractConfig)表实体类
+ *
+ * @author makejava
+ * @since 2021-11-23 10:46:18
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("房屋租赁-配置项表")
+public class RentingHourseContractConfig implements Serializable {
+
+    private static final long serialVersionUID = 744873176398268704L;
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 配置名称
+     */
+    @ApiModelProperty(value = "配置名称")
+    @TableField("`name`")
+    private String name;
+
+    /**
+     * 配置项目
+     */
+    @ApiModelProperty(value = "配置项目")
+    @TableField("`key`")
+    private String key;
+
+    /**
+     * 配置内容
+     */
+    @ApiModelProperty(value = "配置内容")
+    @TableField("`value`")
+    private String value;
+
+    /**
+     * 如果是合同项,填写合同内容模板
+     */
+    @ApiModelProperty(value = "如果是合同项,填写合同内容模板")
+    private String textTemplate;
+
+    /**
+     * 创建者
+     */
+    @ApiModelProperty(value = "创建者")
+    private Long createUser;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createDate;
+
+    /**
+     * 修改者
+     */
+    @ApiModelProperty(value = "修改者")
+    private Long modifyUser;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "修改时间")
+    private Date modifyDate;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/RentingHourseFile.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/RentingHourseFile.java
new file mode 100644
index 0000000..0c7adee
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/RentingHourseFile.java
@@ -0,0 +1,117 @@
+package com.panzhihua.service_community.entity;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 房屋租赁-涉及的文件表(RentingHourseFile)表实体类
+ *
+ * @author makejava
+ * @since 2021-11-23 10:46:18
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("房屋租赁-涉及的文件表")
+public class RentingHourseFile implements Serializable {
+
+    private static final long serialVersionUID = -23971845137069675L;
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 分类(1、房源图片 2、产权证明图片 3、证件照片)
+     */
+    @ApiModelProperty(value = "分类(1、房源图片 2、产权证明图片 3、证件照片)")
+    private Integer classification;
+
+    /**
+     * 租售登记表ID
+     */
+    @ApiModelProperty(value = "租售登记表ID")
+    private Long refId;
+
+    /**
+     * 事件上传的资源类型(1是图片2是音频3是视频)
+     */
+    @ApiModelProperty(value = "事件上传的资源类型(1是图片2是音频3是视频)")
+    private Integer type;
+
+    /**
+     * 资源名称
+     */
+    @ApiModelProperty(value = "资源名称")
+    private String resourceName;
+
+    /**
+     * 资源大小
+     */
+    @ApiModelProperty(value = "资源大小")
+    private String resourceSize;
+
+    /**
+     * 视频或音频时长
+     */
+    @ApiModelProperty(value = "视频或音频时长")
+    private Integer resourceTime;
+
+    /**
+     * 事件上传的资源URL地址
+     */
+    @ApiModelProperty(value = "事件上传的资源URL地址")
+    private String url;
+
+    /**
+     * 创建人
+     */
+    @ApiModelProperty(value = "创建人")
+    private Long createBy;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+
+    /**
+     * 上传标识
+     */
+    @ApiModelProperty(value = "上传标识")
+    private Integer upload;
+
+    /**
+     * 分类(1、房源图片 2、产权证明图片 3、证件照片)
+     */
+    public interface Classification {
+        int fytp = 1;
+        int cqtp = 2;
+        int zjzq = 3;
+    }
+
+    /**
+     * 事件上传的资源类型(1是图片2是音频3是视频)
+     */
+    public interface Type {
+        int picture = 1;
+        int audio = 2;
+        int video = 3;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/RentingHourseLabel.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/RentingHourseLabel.java
new file mode 100644
index 0000000..b779ed9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/RentingHourseLabel.java
@@ -0,0 +1,100 @@
+package com.panzhihua.service_community.entity;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 房屋租赁-房源标签(RentingHourseLabel)表实体类
+ *
+ * @author makejava
+ * @since 2021-11-23 10:46:37
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("房屋租赁-房源标签")
+public class RentingHourseLabel implements Serializable {
+
+    private static final long serialVersionUID = -84202933369353026L;
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 标签名
+     */
+    @ApiModelProperty(value = "标签名")
+    private String name;
+
+    /**
+     * 助记码
+     */
+    @ApiModelProperty(value = "助记码")
+    private String mnemonicCode;
+
+    /**
+     * 启用状态(0:停用,1:启用)
+     */
+    @ApiModelProperty(value = "启用状态(0:停用,1:启用)")
+    private Integer enabled;
+
+    /**
+     * 排序号
+     */
+    @ApiModelProperty(value = "排序号")
+    private Integer sort;
+
+    /**
+     * 备注说明
+     */
+    @ApiModelProperty(value = "备注说明")
+    private String remarks;
+
+    /**
+     * 创建者
+     */
+    @ApiModelProperty(value = "创建者")
+    private Long createUser;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createDate;
+
+    /**
+     * 修改者
+     */
+    @ApiModelProperty(value = "修改者")
+    private Long modifyUser;
+
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty(value = "修改时间")
+    private Date modifyDate;
+
+    /**
+     * 删除标识(0:未删除,1:已删除)
+     */
+    @ApiModelProperty(value = "删除标识(0:未删除,1:已删除)")
+    private Integer deleteFlag;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/RentingHourseOrder.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/RentingHourseOrder.java
new file mode 100644
index 0000000..538e8d9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/RentingHourseOrder.java
@@ -0,0 +1,287 @@
+package com.panzhihua.service_community.entity;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 房屋租赁-房屋订单表(RentingHourseOrder)表实体类
+ *
+ * @author makejava
+ * @since 2021-11-23 10:46:55
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("房屋租赁-房屋订单表")
+public class RentingHourseOrder implements Serializable {
+
+    private static final long serialVersionUID = -89476181595393122L;
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 街道ID
+     */
+    @ApiModelProperty(value = "街道ID")
+    private Long streetId;
+
+    /**
+     * 小区id
+     */
+    @ApiModelProperty(value = "小区id")
+    private Long villageId;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    /**
+     * 小区名称
+     */
+    @ApiModelProperty(value = "小区名称")
+    private String villageName;
+
+    /**
+     * 订单类型(1、新订单2、续租订单)
+     */
+    @ApiModelProperty(value = "订单类型(1、新订单2、续租订单)")
+    private Integer orderType;
+
+    /**
+     * 续租订单的原订单号
+     */
+    @ApiModelProperty(value = "续租订单的原订单号")
+    private String originOrderSn;
+
+    /**
+     * 订单SN号
+     */
+    @ApiModelProperty(value = "订单SN号")
+    private String orderSn;
+
+    /**
+     * 交易流水号
+     */
+    @ApiModelProperty(value = "交易流水号")
+    private Long paySn;
+
+    /**
+     * 租赁月数(多少个月)
+     */
+    @ApiModelProperty(value = "租赁月数(多少个月)")
+    private Integer rentingMonth;
+
+    /**
+     * 建筑面积
+     */
+    @ApiModelProperty(value = "建筑面积")
+    private String constructArea;
+
+    /**
+     * 房型
+     */
+    @ApiModelProperty(value = "房型")
+    private String roomType;
+
+    /**
+     * 月租金
+     */
+    @ApiModelProperty(value = "月租金")
+    private BigDecimal monthlyRentMoney;
+
+    /**
+     * 保证金
+     */
+    @ApiModelProperty(value = "保证金")
+    private BigDecimal depositAmount;
+
+    /**
+     * 服务费
+     */
+    @ApiModelProperty(value = "服务费")
+    private BigDecimal serverCharge;
+
+    /**
+     * 定金
+     */
+    @ApiModelProperty(value = "定金")
+    private BigDecimal dingAmount;
+
+    /**
+     * 支付定金的订单号
+     */
+    @ApiModelProperty(value = "支付定金的订单号")
+    private String preOrderSn;
+
+    /**
+     * 支付的定金的订单备注
+     */
+    @ApiModelProperty(value = "支付的定金的订单备注")
+    private String preOrderNote;
+
+    /**
+     * 订单是否已经平台结算
+     */
+    @ApiModelProperty(value = "订单是否已经平台结算")
+    private String settingFlag;
+
+    /**
+     * 结算金额
+     */
+    @ApiModelProperty(value = "结算金额")
+    private BigDecimal settingAmount;
+
+    /**
+     * 计算订单号
+     */
+    @ApiModelProperty(value = "计算订单号")
+    private String settingSn;
+
+    /**
+     * 平台结算时间
+     */
+    @ApiModelProperty(value = "平台结算时间")
+    private Date settingDate;
+
+    /**
+     * 总楼层
+     */
+    @ApiModelProperty(value = "总楼层")
+    private String totalFloor;
+
+    /**
+     * 朝向
+     */
+    @ApiModelProperty(value = "朝向")
+    private String orientation;
+
+    /**
+     * 装饰
+     */
+    @ApiModelProperty(value = "装饰")
+    private String decoration;
+
+    /**
+     * 房内物品
+     */
+    @ApiModelProperty(value = "房内物品")
+    private String hourseItem;
+
+    /**
+     * 房主姓名
+     */
+    @ApiModelProperty(value = "房主姓名")
+    private String hourseOwnerName;
+
+    /**
+     * 房主身份证
+     */
+    @ApiModelProperty(value = "房主身份证")
+    private String hourseIdCard;
+
+    /**
+     * 房主电话
+     */
+    @ApiModelProperty(value = "房主电话")
+    private String hoursePhone;
+
+    /**
+     * 租客的用户ID,微信用户类型
+     */
+    @ApiModelProperty(value = "租客的用户ID,微信用户类型")
+    private Long rentingUserId;
+
+    /**
+     * 租赁开始时间
+     */
+    @ApiModelProperty(value = "租赁开始时间")
+    private Date startDate;
+
+    /**
+     * 租赁结束时间
+     */
+    @ApiModelProperty(value = "租赁结束时间")
+    private Date endDate;
+
+    /**
+     * 合同内容
+     */
+    @ApiModelProperty(value = "合同内容")
+    private String contractText;
+
+    /**
+     * 已支付定金金额(已经下定金的金额)
+     */
+    @ApiModelProperty(value = "已支付定金金额(已经下定金的金额)")
+    private BigDecimal payedDingMoney;
+
+    /**
+     * 订单最终金额
+     */
+    @ApiModelProperty(value = "订单最终金额")
+    private BigDecimal totalAccount;
+
+    /**
+     * 1、订单未支付2、订单已支付,待房东签约3、房东已签约,合同生效4、已退款
+     */
+    @ApiModelProperty(value = "1、订单未支付2、订单已支付,待房东签约3、房东已签约,合同生效4、已退款")
+    private Integer status;
+
+    /**
+     * 创建者
+     */
+    @ApiModelProperty(value = "创建者")
+    private Long createUser;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createDate;
+
+    /**
+     * 房屋登记ID
+     */
+    @ApiModelProperty(value = "房屋登记ID")
+    private Long registerId;
+
+    /**
+     * 订单类型 1普通新订单 2续租订单
+     */
+    public interface orderType{
+        int pt=1;
+        int xz=2;
+    }
+
+    /**
+     * 1、订单未支付2、订单已支付,待房东签约3、房东已签约,合同生效4、已退款
+     */
+    public interface status{
+        int wzf=1;
+        int yzf=2;
+        int ysx=3;
+        int ytk=4;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/RentingHoursePayingOrder.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/RentingHoursePayingOrder.java
new file mode 100644
index 0000000..447a527
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/RentingHoursePayingOrder.java
@@ -0,0 +1,65 @@
+package com.panzhihua.service_community.entity;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 房屋租赁-支付流水记录表(RentingHoursePayingOrder)表实体类
+ *
+ * @author makejava
+ * @since 2021-11-23 10:47:15
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("房屋租赁-支付流水记录表")
+public class RentingHoursePayingOrder implements Serializable {
+
+    private static final long serialVersionUID = 549655745079867000L;
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 支付类型
+     */
+    @ApiModelProperty(value = "支付类型")
+    private String payType;
+
+    /**
+     * 支付时间
+     */
+    @ApiModelProperty(value = "支付时间")
+    private Date payDate;
+
+    /**
+     * 支付金额
+     */
+    @ApiModelProperty(value = "支付金额")
+    private BigDecimal payAmount;
+
+    /**
+     * 支付返回内容
+     */
+    @ApiModelProperty(value = "支付返回内容")
+    private String payReturnText;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/RentingHoursePreOrder.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/RentingHoursePreOrder.java
new file mode 100644
index 0000000..e17ca1d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/RentingHoursePreOrder.java
@@ -0,0 +1,136 @@
+package com.panzhihua.service_community.entity;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 房屋租赁-房屋定金订单表(RentingHoursePreOrder)表实体类
+ *
+ * @author makejava
+ * @since 2021-11-23 10:47:52
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("房屋租赁-房屋定金订单表")
+public class RentingHoursePreOrder implements Serializable {
+
+    private static final long serialVersionUID = -60478773417437988L;
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 订单SN号
+     */
+    @ApiModelProperty(value = "订单SN号")
+    private String orderSn;
+
+    /**
+     * 房屋登记ID
+     */
+    @ApiModelProperty(value = "房屋登记ID")
+    private Long registerId;
+
+    /**
+     * 定金
+     */
+    @ApiModelProperty(value = "定金")
+    private BigDecimal dingMoney;
+
+    /**
+     * 合同内容
+     */
+    @ApiModelProperty(value = "合同内容")
+    private String contractText;
+
+    /**
+     * 0 待支付 1 已缴纳定金,待抵扣 2、合同已签订,定金已抵扣 3、房东未按时处理,定金已退款  4、已退还定金 5、未按时去和房东签约订单过期,定金不退,已失效
+     */
+    @ApiModelProperty(value = "0 待支付 1 已缴纳定金,待抵扣 2、合同已签订,定金已抵扣 3、房东未按时处理,定金已退款  4、已退还定金 5、未按时去和房东签约订单过期,定金不退,已失效")
+    private Integer status;
+
+    /**
+     * 定金保留时间
+     */
+    @ApiModelProperty(value = "定金保留时间")
+    private Date expireDate;
+
+    /**
+     * 房东扫描的时候绑定微信APPID
+     */
+    @ApiModelProperty(value = "房东扫描的时候绑定微信APPID")
+    private String hourseOwnerWeixinAppid;
+
+    /**
+     * 房东的用户ID,用户表记录了房东的详细信息
+     */
+    @ApiModelProperty(value = "房东的用户ID,用户表记录了房东的详细信息")
+    private Long hourseOwnerUserId;
+
+    /**
+     * 租客的微信APPID
+     */
+    @ApiModelProperty(value = "租客的微信APPID")
+    private String tenantWeixinAppid;
+
+    /**
+     * 租客的用户ID,房东的用户ID,用户表记录了租客的详细信息
+     */
+    @ApiModelProperty(value = "租客的用户ID,房东的用户ID,用户表记录了租客的详细信息")
+    private Long tenantUserId;
+
+    /**
+     * 创建者
+     */
+    @ApiModelProperty(value = "创建者")
+    private Long createUser;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createDate;
+
+    /**
+     * 流水号
+     */
+    @ApiModelProperty(value = "流水号")
+    private Long paySn;
+
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    @ApiModelProperty(value = "房屋名称")
+    private String villageName;
+    /**
+     * 0 待支付 1 已缴纳定金,待抵扣 2、合同已签订,定金已抵扣 3、房东未按时处理,定金已退款  4、已退还定金 5、未按时去和房东签约订单过期,定金不退,已失效
+     */
+    public interface status{
+        int dzf=0;
+        int yjl=1;
+        int yqd=2;
+        int ytk=3;
+        int yth=4;
+        int ysx=5;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/RentingHourseRefundOrder.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/RentingHourseRefundOrder.java
new file mode 100644
index 0000000..556b916
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/RentingHourseRefundOrder.java
@@ -0,0 +1,65 @@
+package com.panzhihua.service_community.entity;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 房屋租赁-退款流水记录表(RentingHourseRefundOrder)表实体类
+ *
+ * @author makejava
+ * @since 2021-11-23 10:48:14
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("房屋租赁-退款流水记录表")
+public class RentingHourseRefundOrder implements Serializable {
+
+    private static final long serialVersionUID = -59941753700164541L;
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 支付类型
+     */
+    @ApiModelProperty(value = "支付类型")
+    private String refundPayType;
+
+    /**
+     * 支付时间
+     */
+    @ApiModelProperty(value = "支付时间")
+    private Date refundPayDate;
+
+    /**
+     * 支付金额
+     */
+    @ApiModelProperty(value = "支付金额")
+    private BigDecimal refundAmount;
+
+    /**
+     * 支付返回内容
+     */
+    @ApiModelProperty(value = "支付返回内容")
+    private String returnText;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/RentingHourseRegister.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/RentingHourseRegister.java
new file mode 100644
index 0000000..ae8e885
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/RentingHourseRegister.java
@@ -0,0 +1,355 @@
+package com.panzhihua.service_community.entity;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.panzhihua.common.validated.AddGroup;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 房屋租售-租赁房屋登记(RentingHourseRegister)表实体类
+ *
+ * @author makejava
+ * @since 2021-11-23 10:49:07
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("房屋租售-租赁房屋登记")
+public class RentingHourseRegister implements Serializable {
+
+    private static final long serialVersionUID = 687172975256702649L;
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 街道ID
+     */
+    @ApiModelProperty(value = "街道ID")
+    private Long streetId;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    /**
+     * 小区id
+     */
+    @ApiModelProperty(value = "小区id")
+    private Long villageId;
+
+    /**
+     * 小区名称
+     */
+    @ApiModelProperty(value = "小区名称")
+    private String villageName;
+
+    /**
+     * 街路巷
+     */
+    @ApiModelProperty(value = "街路巷")
+    private String alley;
+
+    /**
+     * 门牌号
+     */
+    @ApiModelProperty(value = "门牌号")
+    private String houseNum;
+
+    /**
+     * 楼栋号
+     */
+    @ApiModelProperty(value = "楼栋号")
+    private String buildingNo;
+
+    /**
+     * 单元号
+     */
+    @ApiModelProperty(value = "单元号")
+    private String unitNo;
+
+    /**
+     * 楼排号
+     */
+    @ApiModelProperty(value = "楼排号")
+    private String floor;
+
+    /**
+     * 户室(房间号)
+     */
+    @ApiModelProperty(value = "户室(房间号)")
+    private String houseNo;
+
+    /**
+     * 房屋编号
+     */
+    @ApiModelProperty(value = "房屋编号")
+    private String code;
+
+    /**
+     * 房屋地址
+     */
+    @ApiModelProperty(value = "房屋地址")
+    private String address;
+
+    /**
+     * 认证码
+     */
+    @ApiModelProperty(value = "认证码")
+    private String authCode;
+
+    /**
+     * 认证状态(1、未认证2、已认证)
+     */
+    @ApiModelProperty(value = "认证状态(1、未认证2、已认证)")
+    private Integer authStatus;
+
+    /**
+     * 房屋状态(1、待发布 2、已发布,待出租2、出租中3、已退租
+     */
+    @ApiModelProperty(value = "房屋状态(1、待发布 2、已发布,待出租2、出租中3、已退租")
+    private Integer status;
+
+    /**
+     * 1、待认证2、待发布3、待出租4、保留中 5出租中6、已超时7、已到期)
+     */
+    @ApiModelProperty(value = "1、待认证2、待发布3、待出租4、保留中 5出租中6、已超时7、已到期)")
+    private Integer detailStatus;
+
+    @ApiModelProperty(value = "房屋的经度")
+    private String longitude;
+
+    @ApiModelProperty(value = "房屋的纬度")
+    private String latitude;
+
+    /**
+     * 建筑面积
+     */
+    @ApiModelProperty(value = "建筑面积")
+    private BigDecimal constructArea;
+
+    /**
+     * 层次递归字段(省>市>区县>街道>社区>小区>详细地址)
+     */
+    @ApiModelProperty(value = "层次递归字段(省>市>区县>街道>社区>小区>详细地址)")
+    private String path;
+
+    /**
+     * 看房电话
+     */
+    @ApiModelProperty(value = "看房电话")
+    private String seeHourseTelephone;
+
+    /**
+     * 租房标题
+     */
+    @ApiModelProperty(value = "租房标题")
+    private String title;
+
+    /**
+     * 室数量
+     */
+    @ApiModelProperty(value = "室数量")
+    private Integer brn;
+
+    /**
+     * 厅数量
+     */
+    @ApiModelProperty(value = "厅数量")
+    private Integer lrn;
+
+    /**
+     * 卫数量
+     */
+    @ApiModelProperty(value = "卫数量")
+    private Integer wcn;
+
+    /**
+     * 房型
+     */
+    @ApiModelProperty(value = "房型")
+    private String roomType;
+
+    /**
+     * 月租金
+     */
+    @ApiModelProperty(value = "月租金")
+    private BigDecimal monthlyRentMoney;
+
+    /**
+     * 保证金
+     */
+    @ApiModelProperty(value = "保证金")
+    private BigDecimal depositMoney;
+
+    /**
+     * 服务费
+     */
+    @ApiModelProperty(value = "服务费")
+    private BigDecimal serverCharge;
+
+    /**
+     * 定金
+     */
+    @ApiModelProperty(value = "定金")
+    private BigDecimal dingMoney;
+
+    /**
+     * 总楼层
+     */
+    @ApiModelProperty(value = "总楼层")
+    private String totalFloor;
+
+    /**
+     * 朝向(1东2南3西4北5东南6东北7西南8西北9南北10东西)
+     */
+    @ApiModelProperty(value = "朝向(1东2南3西4北5东南6东北7西南8西北9南北10东西)")
+    private Integer orientation;
+
+    /**
+     * 装修情况(1.毛坯房 2.简装 3.精装修)
+     */
+    @ApiModelProperty(value = "装修情况(1.毛坯房 2.简装 3.精装修)")
+    private Integer decoration;
+
+    /**
+     * 看房时间(1.随时看房 2.提前预约)
+     */
+    @ApiModelProperty(value = "看房时间(1.随时看房 2.提前预约)")
+    private Integer seeHourseDate;
+
+    /**
+     * 房屋介绍
+     */
+    @ApiModelProperty(value = "房屋介绍")
+    private String hourseDescription;
+
+    /**
+     * 入住要求
+     */
+    @ApiModelProperty(value = "入住要求")
+    private String checkInRequirement;
+
+    /**
+     * 房内物品
+     */
+    @ApiModelProperty(value = "房内物品")
+    private String hourseItem;
+
+    /**
+     * 房屋标签
+     */
+    @ApiModelProperty(value = "房屋标签")
+    private String label;
+
+    /**
+     * 房主姓名
+     */
+    @ApiModelProperty(value = "房主姓名")
+    private String hourseOwnerName;
+
+    /**
+     * 房主身份证
+     */
+    @ApiModelProperty(value = "房主身份证")
+    private String hourseIdCard;
+
+    /**
+     * 房主电话
+     */
+    @ApiModelProperty(value = "房主电话")
+    private String hoursePhone;
+
+    /**
+     * 登记状态(1、保存草稿2、完成登记)
+     */
+    @ApiModelProperty(value = "登记状态(1、保存草稿2、完成登记)")
+    private Integer infoStatus;
+
+    /**
+     * 房东扫描的时候绑定微信APPID
+     */
+    @ApiModelProperty(value = "房东扫描的时候绑定微信APPID")
+    private String hourseOwnerWeixinAppid;
+
+    /**
+     * 房东的用户ID,用户表记录了房东的详细信息
+     */
+    @ApiModelProperty(value = "房东的用户ID,用户表记录了房东的详细信息")
+    private Long hourseOwnerUserId;
+
+    /**
+     * 租客的微信APPID
+     */
+    @ApiModelProperty(value = "租客的微信APPID")
+    private String tenantWeixinAppid;
+
+    /**
+     * 租客的用户ID,房东的用户ID,用户表记录了租客的详细信息
+     */
+    @ApiModelProperty(value = "租客的用户ID,房东的用户ID,用户表记录了租客的详细信息")
+    private Long tenantUserId;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty(value = "修改时间")
+    private Date updateAt;
+
+    /**
+     * 认证状态(1、未认证2、已认证)
+     */
+    public interface AuthStatus{
+        int wrz = 1;
+        int yrz = 2;
+    }
+
+    /**
+     * 房屋状态(1、待发布 2、已发布,待出租 3、出租中 4、已退租
+     */
+    public interface Status{
+        int dfb = 1;
+        int dcz = 2;
+        int czz = 3;
+        int ytz = 4;
+    }
+
+    /**
+     * 1、待认证2、待发布3、待出租4、保留中 5出租中6、已超时7、已到期)
+     */
+    public interface DetailStatus{
+        int drz = 1;
+        int dfb = 2;
+        int dcz = 3;
+        int blz = 4;
+        int czz = 5;
+        int ycs = 6;
+        int ydq = 7;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/RentingHourseReturnOrder.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/RentingHourseReturnOrder.java
new file mode 100644
index 0000000..dbea841
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/RentingHourseReturnOrder.java
@@ -0,0 +1,173 @@
+package com.panzhihua.service_community.entity;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 房屋租赁-房屋退租申请表(RentingHourseReturnOrder)表实体类
+ *
+ * @author makejava
+ * @since 2021-11-23 10:49:36
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("房屋租赁-房屋退租申请表")
+public class RentingHourseReturnOrder implements Serializable {
+
+    private static final long serialVersionUID = -79596119735529836L;
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 退租订单号(直接使用原订单SN作为退租订单号)
+     */
+    @ApiModelProperty(value = "退租订单号(直接使用原订单SN作为退租订单号)")
+    private String orderSn;
+
+    /**
+     * 退租时间
+     */
+    @ApiModelProperty(value = "退租时间")
+    private Date endDate;
+
+    /**
+     * 水电气扣费
+     */
+    @ApiModelProperty(value = "水电气扣费")
+    private String waterAndElectricityDeductionFee;
+
+    /**
+     * 水电气扣费说明
+     */
+    @ApiModelProperty(value = "水电气扣费说明")
+    private String waterAndElectricityDetail;
+
+    /**
+     * 水电气扣费图片
+     */
+    @ApiModelProperty(value = "水电气扣费图片")
+    private String waterAndElectricityDetailImages;
+
+    /**
+     * 物品损坏费
+     */
+    @ApiModelProperty(value = "物品损坏费")
+    private String itemDeductionFee;
+
+    /**
+     * 物品损坏图片
+     */
+    @ApiModelProperty(value = "物品损坏图片")
+    private String itemDeductionDetailImages;
+
+    /**
+     * 物品损坏费详情说明
+     */
+    @ApiModelProperty(value = "物品损坏费详情说明")
+    private String itemDeductionDetail;
+
+    /**
+     * 违约金
+     */
+    @ApiModelProperty(value = "违约金")
+    private String penaltyDeductionFee;
+
+    /**
+     * 违约金详情说明
+     */
+    @ApiModelProperty(value = "违约金详情说明")
+    private String penaltyDeductionFeeDetail;
+
+    /**
+     * 违约金图片
+     */
+    @ApiModelProperty(value = "违约金图片")
+    private String penaltyDeductionDetailImages;
+
+    /**
+     * 结算金额
+     */
+    @ApiModelProperty(value = "结算金额")
+    private BigDecimal settlementAmount;
+
+    /**
+     * 退租状态(1、提交成功2、房东核算结算3、租客核算结算4、房东完成结算,退租成功)
+     */
+    @ApiModelProperty(value = "退租状态(1、提交成功2、房东核算结算3、租客核算结算4、房东完成结算,退租成功)")
+    private Integer status;
+
+    /**
+     * 支付对象(1、房东退费2、租客补交)
+     */
+    @ApiModelProperty(value = "支付对象(1、房东退费2、租客补交)")
+    private BigDecimal payObject;
+
+    /**
+     * 支付订单号
+     */
+    @ApiModelProperty(value = "支付订单号")
+    private String payOrderSn;
+
+    /**
+     * 支付金额
+     */
+    @ApiModelProperty(value = "支付金额")
+    private BigDecimal payOrderAmount;
+
+    /**
+     * 支付时间
+     */
+    @ApiModelProperty(value = "支付时间")
+    private Date payOrderDate;
+
+    /**
+     * 备注说明
+     */
+    @ApiModelProperty(value = "备注说明")
+    private String remarks;
+
+    /**
+     * 创建者
+     */
+    @ApiModelProperty(value = "创建者")
+    private Long createUser;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createDate;
+
+    /**
+     * 修改者
+     */
+    @ApiModelProperty(value = "修改者")
+    private Long modifyUser;
+
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty(value = "修改时间")
+    private Date modifyDate;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/SysTemplateConfig.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/SysTemplateConfig.java
new file mode 100644
index 0000000..90a44b8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/SysTemplateConfig.java
@@ -0,0 +1,52 @@
+package com.panzhihua.service_community.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * (SysTemplateConfig)表实体类
+ *
+ * @author makejava
+ * @since 2022-01-13 14:46:03
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("")
+public class SysTemplateConfig implements Serializable {
+
+    private static final long serialVersionUID = 159008627741278306L;
+
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 模板id
+     */
+    @ApiModelProperty(value = "模板id")
+    private String templateId;
+
+    /**
+     * 模板类型 1活动变更 2留言回复 3活动取消 4审核状态 5认证审核 6调研问卷 7奖励发放 8报名成功 9活动即将开始 10预约提醒
+     */
+    @ApiModelProperty(value = "模板类型 1活动变更 2留言回复 3活动取消 4审核状态 5认证审核 6调研问卷 7奖励发放 8报名成功 9活动即将开始 10预约提醒 ")
+    private Integer type;
+
+    /**
+     * 区域编码
+     */
+    @ApiModelProperty(value = "区域编码")
+    private String areaCode;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/SysUser.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/SysUser.java
new file mode 100644
index 0000000..44897c2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/SysUser.java
@@ -0,0 +1,284 @@
+package com.panzhihua.service_community.entity;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 用户表 后台用户+小程序用户(SysUser)表实体类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 用户表 后台用户+小程序用户相关功能
+ *
+ * @author zzj
+ * @since 2022-06-10 15:34:16
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("用户表 后台用户+小程序用户")
+public class SysUser implements Serializable {
+
+    private static final long serialVersionUID = -70884515430727555L;
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    private Long userId;
+
+    /**
+     * 登录账户
+     */
+    @ApiModelProperty(value = "登录账户")
+    private String account;
+
+    /**
+     * 登录密码
+     */
+    @ApiModelProperty(value = "登录密码")
+    private String password;
+
+    /**
+     * 微信小程序唯一标识
+     */
+    @ApiModelProperty(value = "微信小程序唯一标识")
+    private String openid;
+
+    /**
+     * 会话密钥
+     */
+    @ApiModelProperty(value = "会话密钥")
+    private String sessionKey;
+
+    /**
+     * 用户在开放平台的唯一标识符
+     */
+    @ApiModelProperty(value = "用户在开放平台的唯一标识符")
+    private String unionid;
+
+    /**
+     * 手机号
+     */
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+
+    /**
+     * 昵称
+     */
+    @ApiModelProperty(value = "昵称")
+    private String nickName;
+
+    /**
+     * 真实名字
+     */
+    @ApiModelProperty(value = "真实名字")
+    private String name;
+
+    /**
+     * 社区ID
+     */
+    @ApiModelProperty(value = "社区ID")
+    private Long communityId;
+
+    /**
+     * 性别 1 男 2 女
+     */
+    @ApiModelProperty(value = "性别 1 男 2 女")
+    private Object sex;
+
+    /**
+     * 身份证号
+     */
+    @ApiModelProperty(value = "身份证号")
+    private String idCard;
+
+    /**
+     * 生日
+     */
+    @ApiModelProperty(value = "生日")
+    private Date birthday;
+
+    /**
+     * 头像
+     */
+    @ApiModelProperty(value = "头像")
+    private String imageUrl;
+
+    /**
+     * 用户类型 1 小程序 2 运营平台 3 社区平台 5 商家后台 6 网格综治APP 7 网格综治后台 8大屏 9城管后台 10 便民服务商家后台
+     */
+    @ApiModelProperty(value = "用户类型 1 小程序 2 运营平台 3 社区平台 5 商家后台 6 网格综治APP 7 网格综治后台 8大屏 9城管后台 10 便民服务商家后台")
+    private Object type;
+
+    /**
+     * 职业
+     */
+    @ApiModelProperty(value = "职业")
+    private String job;
+
+    /**
+     * 是否志愿者 0 否 1 是
+     */
+    @ApiModelProperty(value = "是否志愿者 0 否 1 是")
+    private Object isVolunteer;
+
+    /**
+     * 是否党员 0 否 1 是
+     */
+    @ApiModelProperty(value = "是否党员 0 否 1 是")
+    private Object isPartymember;
+
+    /**
+     * 1 启用 2 禁用
+     */
+    @ApiModelProperty(value = "1 启用 2 禁用")
+    private Object status;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createAt;
+
+    /**
+     * 最后登录时间
+     */
+    @ApiModelProperty(value = "最后登录时间")
+    private Date lastLoginTime;
+
+    /**
+     * 标签多个用,隔开
+     */
+    @ApiModelProperty(value = "标签多个用,隔开")
+    private String tags;
+
+    /**
+     * 家庭id
+     */
+    @ApiModelProperty(value = "家庭id")
+    private Long familyId;
+
+    /**
+     * 人脸采集照片url
+     */
+    @ApiModelProperty(value = "人脸采集照片url")
+    private String faceUrl;
+
+    /**
+     * 人脸采集审核状态 0 待审核 1 审核通过 2驳回
+     */
+    @ApiModelProperty(value = "人脸采集审核状态 0 待审核 1 审核通过 2驳回")
+    private Integer faceState;
+
+    /**
+     * 驳回原因
+     */
+    @ApiModelProperty(value = "驳回原因")
+    private String rejectReson;
+
+    /**
+     * 小区id
+     */
+    @ApiModelProperty(value = "小区id")
+    private Object areaId;
+
+    /**
+     * 证件照(人相面)照片
+     */
+    @ApiModelProperty(value = "证件照(人相面)照片")
+    private String cardPhotoFront;
+
+    /**
+     * 证件照(国徽面)照片
+     */
+    @ApiModelProperty(value = "证件照(国徽面)照片")
+    private String cardPhotoBack;
+
+    /**
+     * 户口本
+     */
+    @ApiModelProperty(value = "户口本")
+    private String familyBook;
+
+    /**
+     * 连续登陆天数 每天凌晨定时任务更新
+     */
+    @ApiModelProperty(value = "连续登陆天数 每天凌晨定时任务更新")
+    private Integer continuousLandingDays;
+
+    /**
+     * 小程序首页是否显示公告(1.是 2.否)
+     */
+    @ApiModelProperty(value = "小程序首页是否显示公告(1.是 2.否)")
+    private Integer isTips;
+
+    /**
+     * 网格员工作状态(1.在岗 2.脱岗 3.已下班)
+     */
+    @ApiModelProperty(value = "网格员工作状态(1.在岗 2.脱岗 3.已下班)")
+    private Integer workStatus;
+
+    /**
+     * 网格员上班开始时间
+     */
+    @ApiModelProperty(value = "网格员上班开始时间")
+    private Integer workStartTime;
+
+    /**
+     * 网格员上班结束时间
+     */
+    @ApiModelProperty(value = "网格员上班结束时间")
+    private Integer workEndTime;
+
+    /**
+     * 高龄认证显示提示(1.是 2.否)
+     */
+    @ApiModelProperty(value = "高龄认证显示提示(1.是 2.否)")
+    private Integer bigAgeTips;
+
+    /**
+     * 明文密码
+     */
+    @ApiModelProperty(value = "明文密码")
+    private String plaintextPassword;
+
+    /**
+     * 街道id
+     */
+    @ApiModelProperty(value = "街道id")
+    private Long streetId;
+
+    /**
+     * 绑定单位
+     */
+    @ApiModelProperty(value = "绑定单位")
+    private String relationName;
+
+    @ApiModelProperty(value = "爱心积分")
+    private String loveIntegral;
+
+    @ApiModelProperty(value = "积分支付密码")
+    private String playPwd;
+
+    private String appId;
+    /**
+     * 启用状态(1.启用 2.禁用)
+     */
+    public interface Status{
+        int YES = 1;
+        int NO = 2;
+    }
+    private Integer isAccept;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/UnionpayCarWash.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/UnionpayCarWash.java
new file mode 100644
index 0000000..b9e0ee2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/UnionpayCarWash.java
@@ -0,0 +1,26 @@
+package com.panzhihua.service_community.entity;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("银联支付和洗车订单关联表")
+public class UnionpayCarWash
+{
+    @ApiModelProperty(value = "主键")
+    private String id;
+    @ApiModelProperty(value = "洗车id")
+    private String carWashId;
+    @ApiModelProperty(value = "银联id")
+    private String unionpayOrderId;
+    @ApiModelProperty(value = "交易金额")
+    private String money;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerActivitiesPeople.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerActivitiesPeople.java
new file mode 100644
index 0000000..abe4a10
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerActivitiesPeople.java
@@ -0,0 +1,86 @@
+package com.panzhihua.service_community.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("志愿者活动参与人员表")
+public class VolunteerActivitiesPeople  implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    /**
+     * 活动id
+     */
+    @ApiModelProperty(value = "主键")
+    private String activityId;
+    /**
+     * 活动名称
+     */
+    @ApiModelProperty(value = "志愿者id")
+    private String volunteerId;
+
+    /**
+     * 活动名称
+     */
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+
+    /**
+     * 联系人姓名
+     */
+    @TableField(exist = false)
+    @ApiModelProperty(value = "联系人姓名")
+    private String contactName;
+    /**
+     * 联系人电话
+     */
+    @TableField(exist = false)
+    @ApiModelProperty(value = "联系人电话")
+    private String contactPhone;
+
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+    @ApiModelProperty(value = "奖励发放状态( 0 未发放   1已发放 )")
+    private String issueStatus;
+
+    @ApiModelProperty(value = "发放积分")
+    private String issuePoints;
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerActivity.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerActivity.java
new file mode 100644
index 0000000..1212d8a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerActivity.java
@@ -0,0 +1,157 @@
+package com.panzhihua.service_community.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("路北社区志愿者活动表")
+public class VolunteerActivity  implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    private String id;
+    /**
+     * 活动名称
+     */
+    @ApiModelProperty(value = "活动名称")
+    private String name;
+
+    /**
+     * 活动状态
+     */
+    @ApiModelProperty(value = "活动状态")
+    private String acType;
+    /**
+     * 活动地址
+     */
+    @ApiModelProperty(value = "活动地址")
+    private String address;
+    /**
+     * 志愿者人数
+     */
+    @ApiModelProperty(value = "志愿者人数")
+    private String volunteerNum;
+    /**
+     * 活动状态
+     */
+    @ApiModelProperty(value = "活动状态")
+    private String acState;
+    /**
+     * 奖励发放状态
+     */
+    @ApiModelProperty(value = "奖励发放状态")
+    private String awardState;
+    /**
+     * 发布时间
+     */
+    @ApiModelProperty(value = "发布时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date issueTime;
+    /**
+     * 报名开始时间
+     */
+    @ApiModelProperty(value = "报名开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date applyBeginTime;
+    /**
+     * 报名结束时间
+     */
+    @ApiModelProperty(value = "报名结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date applyEndTime;
+    /**
+     * 活动开始时间
+     */
+    @ApiModelProperty(value = "活动开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date actityBeginTime;
+    /**
+     * 活动结束时间
+     */
+    @ApiModelProperty(value = "活动结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date actityEndTime;
+    /**
+     * 志愿者上限(0无限     大于0 就是限制)
+     */
+    @ApiModelProperty(value = "志愿者上限(0无限     大于0 就是限制)")
+    private String volunteerLimit;
+    /**
+     * 奖励积分
+     */
+    @ApiModelProperty(value = "奖励积分")
+    private String bonusPoints;
+    /**
+     * 是否可以报名后取消(0 不可以   1可以)
+     */
+    @ApiModelProperty(value = "是否可以报名后取消(0 不可以   1可以)")
+    private String isCancelled;
+    /**
+     * 联系人姓名
+     */
+    @ApiModelProperty(value = "联系人姓名")
+    private String contactName;
+    /**
+     * 联系人电话
+     */
+    @ApiModelProperty(value = "联系人电话")
+    private String contactPhone;
+    /**
+     * 活动封面
+     */
+    @ApiModelProperty(value = "活动封面")
+    private String activityCoverUrl;
+    /**
+     * 活动内容
+     */
+    @ApiModelProperty(value = "活动内容")
+    private String activityContent;
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+    @ApiModelProperty(value = "纬度")
+    private String lat;
+
+    @ApiModelProperty(value = "经度")
+    private String lng;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "是否参与活动  0未参与 1参与")
+    private String isSign;
+
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerCommunityConfig.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerCommunityConfig.java
new file mode 100644
index 0000000..e64e2df
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerCommunityConfig.java
@@ -0,0 +1,63 @@
+package com.panzhihua.service_community.entity;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("志愿者社区商家配置")
+public class VolunteerCommunityConfig implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+    @ApiModelProperty(value = "折扣id")
+    private String discountId;
+
+    @ApiModelProperty(value = "兑换地址")
+    private String address;
+
+    @ApiModelProperty(value = "纬度")
+    private String lat;
+
+    @ApiModelProperty(value = "经度")
+    private String lng;
+
+    @ApiModelProperty(value = "是否开启提现 0不开  1开启")
+    private String isOpneWithdraw;
+
+    @ApiModelProperty(value = "兑换状态(1每天  2周一到周五   3周末)")
+    private String businessType;
+
+    @ApiModelProperty(value = "兑换开始时间")
+    private String businessStartTime;
+
+    @ApiModelProperty(value = "结束开始时间")
+    private String businessEndTime;
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerCommunityDiscount.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerCommunityDiscount.java
new file mode 100644
index 0000000..84c203f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerCommunityDiscount.java
@@ -0,0 +1,57 @@
+package com.panzhihua.service_community.entity;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("社区折扣")
+public class VolunteerCommunityDiscount implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    private String id;
+    /**
+     * 折扣
+     */
+    @ApiModelProperty(value = "折扣")
+    private String discount;
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+    @ApiModelProperty(value = "积分")
+    private String integral;
+
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerCreditsExchange.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerCreditsExchange.java
new file mode 100644
index 0000000..445ff45
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerCreditsExchange.java
@@ -0,0 +1,152 @@
+package com.panzhihua.service_community.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("商城积分兑换订单")
+public class VolunteerCreditsExchange implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    private String id;
+    /**
+     * 活动名称
+     */
+    @ApiModelProperty(value = "商品名称")
+    private String goodsName;
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date creationTime;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+    /**
+     * 订单号
+     */
+    @ApiModelProperty(value = "订单号")
+    private String orderNumber;
+    /**
+     * 商品id
+     */
+    @ApiModelProperty(value = "商品id")
+    private String goodsId;
+    /**
+     * 商品图片
+     */
+    @ApiModelProperty(value = "商品图片")
+    private String goodsUrl;
+    /**
+     * 所需积分
+     */
+    @ApiModelProperty(value = "所需积分")
+    private String needScore;
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+    /**
+     * 核销状态(0未核销  1已核销)
+     */
+    @ApiModelProperty(value = "核销状态(0未核销  1已核销)")
+    private String condition;
+    /**
+     * 核销时间
+     */
+    @ApiModelProperty(value = "核销时间")
+    private String disposeTime;
+
+    /**
+     * 核销时间
+     */
+    @TableField(exist = false)
+    @ApiModelProperty(value = "志愿者姓名")
+    private String userName;
+
+
+    /**
+     * 核销时间
+     */
+    @TableField(exist = false)
+    @ApiModelProperty(value = "志愿者手机号")
+    private String userPhone;
+
+
+    /**
+     * 商品数量
+     */
+    @ApiModelProperty(value = "商品数量")
+    private String good_num;
+
+    /**
+     * 商品数量
+     */
+    @ApiModelProperty(value = "1 社区兑换订单     2商家商品购买订单")
+    private String orderType;
+
+    /**
+     * 商品数量
+     */
+    @ApiModelProperty(value = "实际支付积分")
+    private String palyIntegral;
+
+    /**
+     * 商品数量
+     */
+    @ApiModelProperty(value = "商家id")
+    private String merchantId;
+
+    /**
+     * 商品购买数量
+     */
+    @ApiModelProperty(value = "商品购买数量")
+    private String palyNum;
+
+    /**
+     * 是否评价  0未评价  1已评价
+     */
+    @ApiModelProperty(value = "是否评价  0未评价  1已评价")
+    private String isEvaluate;
+
+    /**
+     * 商家名称
+     */
+    @TableField(exist = false)
+    @ApiModelProperty(value = "商家名称")
+    private String merchantName;
+
+
+
+
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerIntegralMerchant.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerIntegralMerchant.java
new file mode 100644
index 0000000..2ca0fa9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerIntegralMerchant.java
@@ -0,0 +1,104 @@
+package com.panzhihua.service_community.entity;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("爱心积分商城")
+public class VolunteerIntegralMerchant implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    private String id;
+    /**
+     * 活动名称
+     */
+    @ApiModelProperty(value = "活动名称")
+    private String name;
+
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+
+    /**
+     * 商品价值
+     */
+    @ApiModelProperty(value = "商品价值")
+    private String commodityValue;
+
+
+    /**
+     * 所需积分
+     */
+    @ApiModelProperty(value = "所需积分")
+    private String integral;
+    /**
+     * 上架状态 0下架  1上架
+     */
+    @ApiModelProperty(value = "上架状态 0下架  1上架")
+    private String state;
+    /**
+     * 商品封面url
+     */
+    @ApiModelProperty(value = "商品封面url")
+    private String coverUrl;
+    /**
+     * 商品详情
+     */
+    @ApiModelProperty(value = "商品详情")
+    private String content;
+
+
+    @ApiModelProperty(value = "0 社区商品    1 商家商品")
+    private String goodType;
+
+    @ApiModelProperty(value = "商家id")
+    private String merchantId;
+
+
+    /**
+     * 商品数量
+     */
+    @ApiModelProperty(value = "商品数量")
+    private String goodNum;
+
+
+    /**
+     * 商品数量
+     */
+    @ApiModelProperty(value = "商品图片")
+    private String goodImgs;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerIntegralRecord.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerIntegralRecord.java
new file mode 100644
index 0000000..170a54d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerIntegralRecord.java
@@ -0,0 +1,47 @@
+package com.panzhihua.service_community.entity;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("路北社区积分记录明细")
+public class VolunteerIntegralRecord implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "1志愿者活动   2 社区兑换  3商家抵扣")
+    private String iType;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private String creationTime;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private String updateTime;
+
+    @ApiModelProperty(value = "积分数量")
+    private String integral;
+
+    @ApiModelProperty(value = "志愿者id")
+    private String volunteerId;
+
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerMerchant.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerMerchant.java
new file mode 100644
index 0000000..211e28b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerMerchant.java
@@ -0,0 +1,165 @@
+package com.panzhihua.service_community.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("路北商家表")
+public class VolunteerMerchant implements Serializable
+{
+    private static final long serialVersionUID = -70884515430727555L;
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    private String id;
+    /**
+     * 活动名称
+     */
+    @ApiModelProperty(value = "活动名称")
+    private String name;
+
+    /**
+     * 商家类型
+     */
+    @ApiModelProperty(value = "商家类型")
+    private String merchantType;
+    /**
+     * 商家logo封面
+     */
+    @ApiModelProperty(value = "商家logo封面")
+    private String logoUrl;
+    /**
+     * 商家地址
+     */
+    @ApiModelProperty(value = "商家地址")
+    private String address;
+    /**
+     * 纬度
+     */
+    @ApiModelProperty(value = "纬度")
+    private String lat;
+    /**
+     * 经度
+     */
+    @ApiModelProperty(value = "经度")
+    private String lon;
+    /**
+     * 管理员id
+     */
+    @ApiModelProperty(value = "管理员id")
+    private String userId;
+    /**
+     * 对外服务电话
+     */
+    @ApiModelProperty(value = "对外服务电话")
+    private String serviceCall;
+    /**
+     * 商家简介
+     */
+    @ApiModelProperty(value = "商家简介")
+    private String merchantContent;
+    /**
+     * 商家图片
+     */
+    @ApiModelProperty(value = "商家图片")
+    private String merchantUrl;
+    /**
+     * 法人名字
+     */
+    @ApiModelProperty(value = "法人名字")
+    private String legalPersonName;
+    /**
+     * 法人联系电话
+     */
+    @ApiModelProperty(value = "法人联系电话")
+    private String legalPersonPhone;
+    /**
+     * 法人身份证
+     */
+    @ApiModelProperty(value = "法人身份证")
+    private String legalPersonIdCard;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+    /**
+     * 营业状态(1每天  2周一到周五   3周末)
+     */
+    @ApiModelProperty(value = "营业状态(1每天  2周一到周五   3周末)")
+    private String businessType;
+    /**
+     * 营业开始时间
+     */
+    @ApiModelProperty(value = "营业开始时间")
+    private String businessStartTime;
+    /**
+     * 营业结束时间
+     */
+    @ApiModelProperty(value = "营业结束时间")
+    private String businessEndTime;
+    /**
+     * 活动名称
+     */
+    @ApiModelProperty(value = "商家状态0禁用  1启用")
+    private String merchantState;
+    /**
+     * 活动名称
+     */
+    @ApiModelProperty(value = "商家折扣")
+    private String merchantDiscount;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "商家联系电话")
+    private String merchantPhone;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "商家联系人")
+    private String merchantLinkman;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "商家类型名称")
+    private String merchantTypeName;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "商家评分")
+    private String merchantGrade;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "商家商品数量")
+    private String goodNum;
+
+    @ApiModelProperty(value = "商家积分")
+    private String merchantIntegral;
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerMerchantEvaluate.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerMerchantEvaluate.java
new file mode 100644
index 0000000..0416e92
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerMerchantEvaluate.java
@@ -0,0 +1,101 @@
+package com.panzhihua.service_community.entity;
+
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("志愿者商家商品评价")
+public class VolunteerMerchantEvaluate implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "商家id")
+    private String merchantId;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "评论人用户id")
+    private String userId;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "评价内容")
+    private String evaluateContent;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "评价图片")
+    private String evaluateUrl;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "商品id")
+    private String goodId;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "评价分数")
+    private String evaluateGrade;
+
+
+    /**
+     * 订单id
+     */
+    @ApiModelProperty(value = "订单id")
+    private String orderId;
+
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "商家名称")
+    private String merchantName;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "用户名称")
+    private String userName;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "用户头像")
+    private String userUrl;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerMerchantWithdraw.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerMerchantWithdraw.java
new file mode 100644
index 0000000..92c0bdd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerMerchantWithdraw.java
@@ -0,0 +1,57 @@
+package com.panzhihua.service_community.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("路北社区商家提现")
+public class VolunteerMerchantWithdraw implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "商家id")
+    private String merchantId;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "商家名称")
+    private String merchantName;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+    @ApiModelProperty(value = "提取积分")
+    private String withdrawIntegral;
+
+    @ApiModelProperty(value = "处理时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date disposeTime;
+
+    @ApiModelProperty(value = "处理状态 0 待处理  1已处理")
+    private String disposeType;
+
+    @ApiModelProperty(value = "0 未删除    1 已删除")
+    private String isDelete;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerType.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerType.java
new file mode 100644
index 0000000..a6c03d4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/entity/VolunteerType.java
@@ -0,0 +1,58 @@
+package com.panzhihua.service_community.entity;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("路北社区志愿者活动类型表")
+public class VolunteerType implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    private String id;
+    /**
+     * 活动名称
+     */
+    @ApiModelProperty(value = "活动名称")
+    private String name;
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+    @ApiModelProperty(value = "1 志愿者活动    2 商家类型")
+    private String type;
+
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/message/AcidMessage.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/message/AcidMessage.java
new file mode 100644
index 0000000..2b5df35
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/message/AcidMessage.java
@@ -0,0 +1,132 @@
+package com.panzhihua.service_community.message;
+
+import cn.binarywang.wx.miniapp.api.WxMaService;
+import com.alibaba.fastjson.JSONArray;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActDynVO;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidDangerMemberVO;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidMemberVO;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidRecordVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.common.utlis.WxUtil;
+import com.panzhihua.service_community.dao.ComActDAO;
+import com.panzhihua.service_community.dao.SysUserDao;
+import com.panzhihua.service_community.model.dos.ComActDO;
+import com.panzhihua.service_community.service.ComActAcidMemberService;
+import com.panzhihua.service_community.util.WxMaConfiguration;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+import static java.util.Objects.nonNull;
+
+/**
+ * @author zzj
+ */
+@Component
+public class AcidMessage {
+    public static final String DELAYED_QUEUE = "huacheng.acid.queue";
+    public static final String ACID_DANGER_QUEUE = "huacheng.acid.danger.queue";
+    public static final String DIRECT_QUEUE = "huacheng.acid.direct.queue";
+    public static final String ACID_MESSAGE_QUEUE = "huacheng.acid.message.queue";
+    @Resource
+    private UserService userService;
+    @Resource
+    private ComActAcidMemberService comActAcidMemberService;
+    @Resource
+    private ComActDAO comActDAO;
+    @Resource
+    private SysUserDao sysUserDao;
+    @Resource
+    private WxMaConfiguration wxMaConfiguration;
+
+    @RabbitListener(queues = DELAYED_QUEUE)
+    public void doTemplate(ComActAcidRecordVO comActAcidRecordVO) {
+        R<LoginUserInfoVO> loginUserInfoVOR = userService.getUserInfoByUserId(comActAcidRecordVO.getUserId().toString());
+        LoginUserInfoVO loginUserInfoVO = loginUserInfoVOR.getData();
+        WxMaService maService = wxMaConfiguration.getMaService("wx118de8a734d269f0");
+        if (loginUserInfoVO != null && StringUtils.isNotEmpty(loginUserInfoVO.getOpenid())) {
+            try {
+                WxUtil.sendSubscribeTXTZ(loginUserInfoVO.getOpenid(), maService.getAccessToken(), "pov2BTQ_uILduT5OoVKubeS2dibbZ_p79cy5AMb_BGE");
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+
+        }
+    }
+
+    @RabbitListener(queues = ACID_DANGER_QUEUE)
+    public void pushMessage(ComActAcidDangerMemberVO dangerMember) {
+        R r = comActAcidMemberService.selectPushList(dangerMember.getRelationName());
+        WxMaService maService = wxMaConfiguration.getMaService("wx118de8a734d269f0");
+        if (R.isOk(r) && nonNull(r.getData())) {
+            List<ComActAcidMemberVO> members = JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ComActAcidMemberVO.class);
+            if (nonNull(members) && !members.isEmpty()) {
+                members.forEach(member -> {
+                    try {
+                        WxUtil.sendSubscribeDanger(member.getOpenid(), maService.getAccessToken(), dangerMember, "Yr5idSziLRiRo0t07mcz284sMm41Kr2KsA5UmSc0jWU");
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
+
+                });
+            }
+        }
+    }
+
+    @RabbitListener(queues = DIRECT_QUEUE)
+    public void updateUserInfo(ComActAcidRecordVO comActAcidRecordVO) {
+        //防疫登记提交默认绑定用户信息
+        R<LoginUserInfoVO> loginUserInfoVOR = userService.getUserInfoByUserId(comActAcidRecordVO.getUserId().toString());
+        if (R.isOk(loginUserInfoVOR) && loginUserInfoVOR.getData() != null) {
+            LoginUserInfoVO loginUserInfoVO = loginUserInfoVOR.getData();
+            if (StringUtils.isEmpty(loginUserInfoVO.getPhone()) || StringUtils.isEmpty(loginUserInfoVO.getIdCard())) {
+                loginUserInfoVO.setPhone(comActAcidRecordVO.getPhone());
+                loginUserInfoVO.setIdCard(comActAcidRecordVO.getIdCard());
+                loginUserInfoVO.setName(comActAcidRecordVO.getName());
+                if (StringUtils.isNotEmpty(comActAcidRecordVO.getLocalCity())) {
+                    String town = comActAcidRecordVO.getLocalCity().split(",")[2];
+                    String area = comActAcidRecordVO.getLocalCity().split(",")[1];
+                    String country = comActAcidRecordVO.getLocalCity().split(",")[0];
+                    List<ComActDO> comActDOS = comActDAO.selectList(new QueryWrapper<ComActDO>().lambda().eq(ComActDO::getName, town).eq(ComActDO::getAppId, "wx118de8a734d269f0"));
+                    if (CollectionUtils.isNotEmpty(comActDOS)) {
+                        if (comActDOS.size() == 1) {
+                            loginUserInfoVO.setCommunityId(comActDOS.get(0).getCommunityId());
+                        } else {
+                            ComActDO comActDO = comActDAO.selectOne(new QueryWrapper<ComActDO>().lambda().eq(ComActDO::getAppId, "wx118de8a734d269f0").eq(ComActDO::getName, town).and(comActDOLambdaQueryWrapper -> comActDOLambdaQueryWrapper.like(ComActDO::getAddress, town).or().like(ComActDO::getAddress, area).or().like(ComActDO::getAddress, country)));
+                            if (comActDO != null) {
+                                loginUserInfoVO.setCommunityId(comActDO.getCommunityId());
+                            }
+                        }
+                    }
+
+                }
+                userService.putUser(loginUserInfoVO);
+            }
+        }
+    }
+
+    @RabbitListener(queues = ACID_MESSAGE_QUEUE)
+    public void sendMessage(ComActDynVO comActDynVO) {
+        try {
+            List<String> openIds = sysUserDao.selectOpenId();
+            WxMaService maService = wxMaConfiguration.getMaService("wx118de8a734d269f0");
+            for (int i = 0; i < openIds.size(); i++) {
+                try {
+                    WxUtil.sendLongTimeTemplate(openIds.get(i), maService.getAccessToken(), "疫情快讯", comActDynVO.getTitle().length() > 10 ? comActDynVO.getTitle().substring(0, 10) + ".." : comActDynVO.getTitle(), "/pages/community_child/community/detail?id=" + comActDynVO.getId() + "&title=疫情快讯详情");
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/message/McsOrderMessage.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/message/McsOrderMessage.java
new file mode 100644
index 0000000..a31bab0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/message/McsOrderMessage.java
@@ -0,0 +1,26 @@
+package com.panzhihua.service_community.message;
+
+import com.panzhihua.service_community.dao.McsOrderDao;
+import com.panzhihua.service_community.entity.McsOrder;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+/**
+ * @author zzj
+ */
+@Component
+public class McsOrderMessage {
+    public static final String DELAYED_QUEUE="huacheng.mcsOrder.queue";
+    @Resource
+    private McsOrderDao mcsOrderDao;
+    @RabbitListener(queues=DELAYED_QUEUE)
+    public void cancelOrder(McsOrder mcsOrder){
+       McsOrder nowOrder=mcsOrderDao.selectById(mcsOrder.getId());
+       if(nowOrder.getStatus()==0){
+           mcsOrder.setStatus(2);
+           mcsOrderDao.updateById(mcsOrder);
+       }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/message/OrderMessage.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/message/OrderMessage.java
new file mode 100644
index 0000000..a39863e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/message/OrderMessage.java
@@ -0,0 +1,42 @@
+package com.panzhihua.service_community.message;
+
+import com.panzhihua.common.model.vos.community.rentHouse.RentingHoursePreOrderVO;
+import com.panzhihua.service_community.dao.RentingHourseOrderDao;
+import com.panzhihua.service_community.dao.RentingHoursePreOrderDao;
+import com.panzhihua.service_community.dao.RentingHourseRegisterDao;
+import com.panzhihua.service_community.entity.RentingHourseOrder;
+import com.panzhihua.service_community.entity.RentingHoursePreOrder;
+import com.panzhihua.service_community.entity.RentingHourseRegister;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+/**
+ * @author zzj
+ */
+@Component
+public class OrderMessage {
+    public static final String DELAYED_QUEUE="huacheng.order.queue";
+
+    @Resource
+    private RentingHourseOrderDao rentingHourseOrderDao;
+    @Resource
+    private RentingHourseRegisterDao rentingHourseRegisterDao;
+    @RabbitListener(queues=DELAYED_QUEUE)
+    public void cancelProOrder(RentingHourseOrder rentingHourseOrderVO){
+        RentingHourseOrder rentingHourseOrder=rentingHourseOrderDao.selectById(rentingHourseOrderVO.getId());
+        if(rentingHourseOrder!=null){
+            if(rentingHourseOrder.getStatus().equals(rentingHourseOrderVO.getStatus())){
+                rentingHourseOrder.setStatus(RentingHourseOrder.status.ytk);
+                rentingHourseOrderDao.updateById(rentingHourseOrder);
+                //超时修改房屋状态
+                RentingHourseRegister rentingHourseRegister=new RentingHourseRegister();
+                rentingHourseRegister.setId(rentingHourseOrder.getRegisterId());
+                rentingHourseRegister.setDetailStatus(3);
+                rentingHourseRegisterDao.updateById(rentingHourseRegister);
+                //退款逻辑待开发
+            }
+        }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/message/PreOrderMessage.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/message/PreOrderMessage.java
new file mode 100644
index 0000000..a9132f1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/message/PreOrderMessage.java
@@ -0,0 +1,40 @@
+package com.panzhihua.service_community.message;
+
+import com.panzhihua.common.model.vos.community.rentHouse.RentingHoursePreOrderVO;
+import com.panzhihua.service_community.dao.RentingHoursePreOrderDao;
+import com.panzhihua.service_community.dao.RentingHourseRegisterDao;
+import com.panzhihua.service_community.entity.RentingHoursePreOrder;
+import com.panzhihua.service_community.entity.RentingHourseRegister;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+/**
+ * @author zzj
+ */
+@Component
+public class PreOrderMessage {
+    public static final String DELAYED_QUEUE="huacheng.preOrder.queue";
+
+    @Resource
+    private RentingHoursePreOrderDao rentingHoursePreOrderDao;
+    @Resource
+    private RentingHourseRegisterDao rentingHourseRegisterDao;
+    @RabbitListener(queues=DELAYED_QUEUE)
+    public void cancelProOrder(RentingHoursePreOrder rentingHoursePreOrderVO){
+        if(rentingHoursePreOrderVO!=null){
+            RentingHoursePreOrder rentingHoursePreOrder=rentingHoursePreOrderDao.selectById(rentingHoursePreOrderVO.getId());
+            if(rentingHoursePreOrder.getStatus().equals(rentingHoursePreOrderVO.getStatus())){
+                rentingHoursePreOrder.setStatus(RentingHoursePreOrder.status.ysx);
+                rentingHoursePreOrderDao.updateById(rentingHoursePreOrder);
+                //超时修改房屋状态
+                RentingHourseRegister rentingHourseRegister=new RentingHourseRegister();
+                rentingHourseRegister.setId(rentingHoursePreOrderVO.getRegisterId());
+                rentingHourseRegister.setDetailStatus(3);
+                rentingHourseRegisterDao.updateById(rentingHourseRegister);
+            }
+
+        }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/message/RaffleMessage.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/message/RaffleMessage.java
new file mode 100644
index 0000000..bae83ae
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/message/RaffleMessage.java
@@ -0,0 +1,97 @@
+package com.panzhihua.service_community.message;
+
+import cn.hutool.core.date.DateUnit;
+import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.panzhihua.common.model.vos.community.raffle.ComActRaffleVO;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.dao.ComActRaffleDao;
+import com.panzhihua.service_community.dao.ComActRafflePrizeDao;
+import com.panzhihua.service_community.dao.ComActRaffleRecordDao;
+import com.panzhihua.service_community.entity.ComActRaffle;
+import com.panzhihua.service_community.entity.ComActRafflePrize;
+import com.panzhihua.service_community.entity.ComActRaffleRecord;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.amqp.rabbit.core.RabbitTemplate;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Random;
+
+/**
+ * @author zzj
+ */
+@Component
+public class RaffleMessage {
+    public static final String DELAYED_QUEUE="huacheng.raffle.queue";
+
+    @Resource
+    private ComActRaffleDao comActRaffleDao;
+    @Resource
+    private ComActRaffleRecordDao comActRaffleRecordDao;
+    @Resource
+    private ComActRafflePrizeDao comActRafflePrizeDao;
+    @Resource
+    private RabbitTemplate rabbitTemplate;
+
+    @RabbitListener(queues=DELAYED_QUEUE)
+    public void doRaffle(ComActRaffle comActRaffleVO){
+        ComActRaffle comActRaffle=comActRaffleDao.selectOne(new QueryWrapper<ComActRaffle>().lambda().eq(ComActRaffle::getId,comActRaffleVO.getId()));
+        if(comActRaffle!=null&&comActRaffle.getStatus()==2&&comActRaffle.getLotteryTime().before(new Date())){
+            List<ComActRafflePrize> comActRafflePrizeList=comActRafflePrizeDao.selectList(new QueryWrapper<ComActRafflePrize>().lambda().eq(ComActRafflePrize::getRaffleId,comActRaffleVO.getId()));
+            if(StringUtils.isNotEmpty(comActRafflePrizeList)){
+                List<ComActRaffleRecord> comActRaffleRecords=comActRaffleRecordDao.selectList(new QueryWrapper<ComActRaffleRecord>().lambda().eq(ComActRaffleRecord::getRaffleId,comActRaffleVO.getId()));
+                if(StringUtils.isNotEmpty(comActRaffleRecords)){
+                    Random random=new Random();
+                    comActRafflePrizeList.forEach(comActRafflePrize -> {
+                        int a=0;
+                        for(int i=1;i<=comActRafflePrize.getSurplus();i++){
+                            if(comActRaffleRecords.size()>0){
+                                ComActRaffleRecord comActRaffleRecord=comActRaffleRecords.get(random.nextInt(comActRaffleRecords.size()));
+                                comActRaffleRecord.setPrizeId(comActRafflePrize.getId());
+                                comActRaffleRecord.setStatus(1);
+                                comActRaffleRecordDao.updateById(comActRaffleRecord);
+                                comActRaffleRecords.remove(comActRaffleRecord);
+                                a++;
+                            }
+                        }
+                        comActRafflePrize.setSurplus(comActRafflePrize.getSurplus()-a);
+                        comActRafflePrizeDao.updateById(comActRafflePrize);
+                    });
+
+                }
+            }
+            comActRaffle.setStatus(3);
+            comActRaffleDao.updateById(comActRaffle);
+            rabbitTemplate.convertAndSend("huacheng.raffle.exchange", "huacheng.raffle.key", comActRaffleVO, message -> {
+                message.getMessageProperties().setHeader("x-delay", dateToSecond(comActRaffle.getRaffleStopTime()));
+                return message;
+            });
+        }
+        if(comActRaffle!=null&&comActRaffle.getStatus()==0&&comActRaffle.getStartTime().before(new Date())){
+            comActRaffle.setStatus(1);
+            comActRaffleDao.updateById(comActRaffle);
+            rabbitTemplate.convertAndSend("huacheng.raffle.exchange", "huacheng.raffle.key", comActRaffleVO, message -> {
+                message.getMessageProperties().setHeader("x-delay", dateToSecond(comActRaffle.getStopTime()));
+                return message;
+            });
+        }
+        if(comActRaffle!=null&&comActRaffle.getStatus()==1&&comActRaffle.getStopTime().before(new Date())){
+            comActRaffle.setStatus(2);
+            comActRaffleDao.updateById(comActRaffle);
+            rabbitTemplate.convertAndSend("huacheng.raffle.exchange", "huacheng.raffle.key", comActRaffleVO, message -> {
+                message.getMessageProperties().setHeader("x-delay", dateToSecond(comActRaffle.getLotteryTime()));
+                return message;
+            });
+        }
+        if(comActRaffle!=null&&comActRaffle.getStatus()==3&&comActRaffle.getRaffleStopTime().before(new Date())){
+            comActRaffleRecordDao.updateStatusByRaffleId(comActRaffle.getId());
+        }
+    }
+    private Long dateToSecond(Date expireTime){
+        return DateUtil.between(new Date(),expireTime, DateUnit.MS);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/message/ShopOrderMessage.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/message/ShopOrderMessage.java
new file mode 100644
index 0000000..fe0d947
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/message/ShopOrderMessage.java
@@ -0,0 +1,48 @@
+package com.panzhihua.service_community.message;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.panzhihua.common.model.vos.shop.ComShopFlowerOrderVO;
+import com.panzhihua.service_community.dao.ComShopFlowerOrderDAO;
+import com.panzhihua.service_community.dao.ComShopFlowerOrderGoodsDAO;
+import com.panzhihua.service_community.dao.RentingHourseOrderDao;
+import com.panzhihua.service_community.dao.RentingHourseRegisterDao;
+import com.panzhihua.service_community.entity.RentingHourseOrder;
+import com.panzhihua.service_community.entity.RentingHourseRegister;
+import com.panzhihua.service_community.model.dos.ComShopFlowerOrderDO;
+import com.panzhihua.service_community.model.dos.ComShopFlowerOrderGoodsDO;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+import static java.util.Objects.nonNull;
+
+/**
+ * @author yh
+ * 商城订单处理
+ */
+@Component
+@Slf4j
+public class ShopOrderMessage {
+    public static final String DELAYED_QUEUE="huacheng.shop.order.queue";
+
+    @Resource
+    private ComShopFlowerOrderDAO comShopFlowerOrderDAO;
+    @Resource
+    private ComShopFlowerOrderGoodsDAO comShopFlowerOrderGoodsDAO;
+
+    @RabbitListener(queues=DELAYED_QUEUE)
+    public void cancelOrder(ComShopFlowerOrderVO shopOrderVO){
+        ComShopFlowerOrderDO comShopFlowerOrderDO = comShopFlowerOrderDAO.selectById(shopOrderVO.getOrderId());
+        if (nonNull(comShopFlowerOrderDO)){
+            //30分钟未付款删除订单
+            if (comShopFlowerOrderDO.getStatus() == ComShopFlowerOrderDO.status.dfk){
+                log.info("30分钟超时未支付订单进行删除");
+                comShopFlowerOrderGoodsDAO.delete(new LambdaQueryWrapper<ComShopFlowerOrderGoodsDO>().eq(ComShopFlowerOrderGoodsDO::getOrderId, shopOrderVO.getOrderId()));
+                comShopFlowerOrderDAO.deleteById(shopOrderVO.getOrderId());
+            }
+        }
+
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/BaseDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/BaseDO.java
new file mode 100644
index 0000000..9fc992f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/BaseDO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+
+import lombok.Data;
+
+/**
+ * @Author: llming
+ * @Description:
+ */
+@Data
+public class BaseDO {
+    private Long createBy;
+
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    private Long updateBy;
+    @TableField(fill = FieldFill.INSERT)
+
+    private Date updateAt;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/BcDictionaryDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/BcDictionaryDO.java
new file mode 100644
index 0000000..2430edc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/BcDictionaryDO.java
@@ -0,0 +1,88 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * <p>
+ * 字典表
+ * </p>
+ *
+ * @author manailin
+ * @since 2021-06-11
+ */
+@Data
+@TableName("bc_dictionary")
+public class BcDictionaryDO implements Serializable {
+    @TableId(value = "id", type = IdType.INPUT)
+    private Long id;
+    /**
+     * 字典项名
+     */
+    private String dictName;
+
+    /**
+     * 字典项值
+     */
+    private String dictKey;
+
+    /**
+     * 父ID
+     */
+    private Long parentId;
+    /**
+     * path 路径
+     */
+    private String PathId;
+    /**
+     * 层级
+     */
+    private Integer levelIndex;
+
+    /**
+     * 启用状态(0:停用,1:启用)
+     */
+    private Boolean enabled;
+
+    /**
+     * 排序号
+     */
+    private Integer sort;
+
+    /**
+     * 备注说明
+     */
+    private String remarks;
+
+    /**
+     * 创建者
+     */
+    private Long createUser;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createDate;
+
+    /**
+     * 修改者
+     */
+    private Long modifyUser;
+
+    /**
+     * 修改时间
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date modifyDate;
+
+    /**
+     * 删除标识(0:未删除,1:已删除)
+     */
+    private Boolean deleteFlag;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/BcDictionaryItemDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/BcDictionaryItemDO.java
new file mode 100644
index 0000000..beb342c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/BcDictionaryItemDO.java
@@ -0,0 +1,93 @@
+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 lombok.Data;
+
+/**
+ * <p>
+ * 字典项表
+ * </p>
+ *
+ * @author xyh
+ * @since 2021-06-11
+ */
+@Data
+@TableName("bc_dictionary_item")
+public class BcDictionaryItemDO implements Serializable {
+
+    private static final long serialVersionUID = -7900409296242392578L;
+
+    @TableId(value = "id", type = IdType.INPUT)
+    private Long id;
+    /**
+     * 字典项名
+     */
+    private String dictItemName;
+
+    /**
+     * 字典项值
+     */
+    private String dictValue;
+
+    /**
+     * 助记码
+     */
+    private String mnemonicCode;
+
+    /**
+     * 字典id
+     */
+    private Long dictId;
+
+    /**
+     * 启用状态(0:停用,1:启用)
+     */
+    private Boolean enabled;
+
+    /**
+     * 机构id
+     */
+    private Long orgPathId;
+
+    /**
+     * 排序号
+     */
+    private Integer sort;
+
+    /**
+     * 备注说明
+     */
+    private String remarks;
+
+    /**
+     * 创建者
+     */
+    private Long createUser;
+
+    /**
+     * 创建时间
+     */
+    private Date createDate;
+
+    /**
+     * 修改者
+     */
+    private Long modifyUser;
+
+    /**
+     * 修改时间
+     */
+    private Date modifyDate;
+
+    /**
+     * 删除标识(0:未删除,1:已删除)
+     */
+    private Boolean deleteFlag;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActActEvaluateDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActActEvaluateDO.java
new file mode 100644
index 0000000..6a20c80
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActActEvaluateDO.java
@@ -0,0 +1,71 @@
+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: ComActActEvaluateDO  社区活动评价表
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 记录和展示社区活动评价内容
+ *
+ * @author txb
+ * @date 2021/8/24 10:21
+ */
+
+@Data
+@TableName("com_act_act_evaluate")
+public class ComActActEvaluateDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 自增id
+    */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+    * 所属活动id
+    */
+    private Long activityId;
+
+    /**
+    * 用户id, 和用户信息表的相关id关联
+    */
+    private Long userId;
+
+    /**
+    * 评价时间
+    */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 以什么身份报名(1.居民 2.党员 3.志愿者
+     */
+    private Integer signIdentity;
+
+    /**
+    * 评分星级1.差 2.一般 3.还不错 4.很满意 5.强烈推荐
+    */
+    private Integer starLevel;
+
+    /**
+    * 评价内容
+    */
+    private String evaluateContent;
+
+    /**
+    * 照片(多张以逗号隔开)
+    */
+    private String photo;
+}
\ No newline at end of file
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
new file mode 100644
index 0000000..a070cef
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActActPictureDO.java
@@ -0,0 +1,66 @@
+package com.panzhihua.service_community.model.dos;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * title: ComActActPictureDO  社区》活动》历史上传图片实体类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 社区》活动》历史上传图片实体类
+ *
+ * @author txb
+ * @date 2021/8/27 14:21
+ */
+
+@Data
+@TableName("com_act_act_picture")
+public class ComActActPictureDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 主键id
+    */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+    * 所属活动id
+    */
+    private Long activityId;
+
+    /**
+     * 类型(1.党建 2.节日 3.天气预报 4.疫情 5.灾害预警 6.志愿者)
+     */
+    private Integer type;
+
+    /**
+    * 用户id, 和用户信息表的相关id关联
+    */
+    private Long userId;
+
+    /**
+    * 上传时间
+    */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+    * 上传图片
+    */
+    private String uploadPicture;
+
+    /**
+    * 图片名称
+    */
+    private String 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/ComActActPrizeDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActActPrizeDO.java
new file mode 100644
index 0000000..384ae50
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActActPrizeDO.java
@@ -0,0 +1,52 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 活动奖品
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 14:14
+ **/
+@Data
+@TableName(value = "com_act_act_prize")
+public class ComActActPrizeDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 所属活动id
+     */
+    private Long activityId;
+
+    /**
+     * 奖品名称
+     */
+    private String prizeName;
+
+    /**
+     * 奖品图片路径
+     */
+    private String prizePhoto;
+
+    /**
+     * 是否报名既有 1 是 0 不是
+     */
+    private Integer type;
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActActRegistDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActActRegistDO.java
new file mode 100644
index 0000000..5e2cd0e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActActRegistDO.java
@@ -0,0 +1,90 @@
+package com.panzhihua.service_community.model.dos;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * title: ComActActRegistDO  社区》活动》活动签到表实体类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 社区》活动》活动签到表实体类
+ *
+ * @author txb
+ * @date 2021/8/24 10:21
+ */
+
+@Data
+@TableName("com_act_act_regist")
+public class ComActActRegistDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+    * 自增id
+    */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+    * 所属活动id
+    */
+    private Long activityId;
+
+    /**
+    * 用户id, 和用户信息表的相关id关联
+    */
+    private Long userId;
+
+    /**
+    * 签到时间
+    */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 开始时间
+     */
+    private Date startTime;
+
+    /**
+     * 结束时间
+     */
+    private Date endTime;
+
+    /**
+     * 奖励积分
+     */
+    private Integer award;
+
+    /**
+     * 签到位置
+     */
+    private String position;
+
+    /**
+     * 签到次数
+     */
+    private Integer times;
+
+    /**
+     * 二维码id
+     */
+    private Long codeId;
+
+    /**
+     *  活动类型 1 社区活动 4项目活动 5服务活动
+     */
+    private Integer type;
+
+    /**
+     * 以什么身份报名(1.居民 2.党员 3.志愿者
+     */
+    private Integer signIdentity;
+
+    /**
+     * 单位id(党员以单位名义报名社区活动)
+     */
+    private Long checkUnitId;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActActSignDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActActSignDO.java
new file mode 100644
index 0000000..bae66d8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActActSignDO.java
@@ -0,0 +1,72 @@
+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.FieldStrategy;
+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;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 活动报名列表
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 14:07
+ **/
+@Data
+@TableName(value = "com_act_act_sign")
+public class ComActActSignDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 所属活动id
+     */
+    private Long activityId;
+
+    /**
+     * 用户id, 和用户信息表的相关id关联
+     */
+    private Long userId;
+    /**
+     * 报名时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+    /**
+     * 以什么身份报名(1.居民 2.党员 3.志愿者)
+     */
+    private Integer signIdentity;
+
+    /**
+     * 报名状态 0 已取消 1已报名
+     */
+    private Integer status;
+    /**
+     * 单位id(党员以单位名义报名社区活动)
+     */
+    private Long checkUnitId;
+
+    /**
+     * 取消原因
+     */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private String reason;
+
+    private Integer times;
+
+    /**
+     * 是否邀请
+     */
+    private Boolean isInvite;
+}
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
new file mode 100644
index 0000000..2a8845b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActActivityDO.java
@@ -0,0 +1,290 @@
+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.FieldStrategy;
+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;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 社区活动
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 13:56
+ **/
+@Data
+@TableName(value = "com_act_activity")
+public class ComActActivityDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 活动名称
+     */
+    private String activityName;
+
+    /**
+     * 负责人userID
+     */
+    private Long sponsorId;
+
+    /**
+     * 活动地址
+     */
+    private String activityAddr;
+
+    /**
+     * 纬度
+     */
+    private String lat;
+
+    /**
+     * 经度
+     */
+    private String lng;
+
+    /**
+     * 活动状态
+     */
+    private Integer status;
+
+    /**
+     * 发布时间
+     */
+    private Date publishAt;
+
+    /**
+     * 活动结束时间
+     */
+    private Date endAt;
+
+    /**
+     * 活动开始时间
+     */
+    private Date beginAt;
+
+    /**
+     * 报名开始时间
+     */
+    private Date signUpBegin;
+
+    /**
+     * 报名结束时间
+     */
+    private Date signUpEnd;
+
+    /**
+     * 参加人群
+     */
+    private String aattendPeople;
+
+
+    /**
+     * 志愿者人数下线
+     */
+    private Integer volunteerMin;
+
+    /**
+     * 志愿者人数上限
+     */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private Integer volunteerMax;
+
+    /**
+     * 参与者人数下线
+     */
+    private Integer participantMin;
+
+    /**
+     * 参与者人数上限
+     */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private Integer participantMax;
+
+    /**
+     * 活动封面
+     */
+    private String cover;
+
+    /**
+     * 是否有奖品 1 有 0 无
+     */
+    private Integer hasPrize;
+
+    /**
+     * 是否二维码签到 1 是 0否
+     */
+    private Integer isQrCode;
+
+    /**
+     * 联系人姓名
+     */
+    private String contactName;
+
+    /**
+     * 联系人电话
+     */
+    private String contactPhone;
+
+    /**
+     * 是否签到 1 是 0否
+     */
+    private Integer isRegist;
+
+    /**
+     * 是否顶部 1 是 0否
+     */
+    private Integer isTop;
+
+    /**
+     * 奖品备注
+     */
+    private String prizeRemark;
+    /**
+     * 奖励说明
+     */
+    private String rewardDesc;
+    /**
+     * 活动内容
+     */
+    private String content;
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+    /**
+     * 取消原因
+     */
+    private String cancelReason;
+    /**
+     * 社区id
+     */
+    private Long communityId;
+    /**
+     * 活动是否已默认好评
+     */
+    private Integer isDefaultPraise;
+    /**
+     * 签到范围,默认0无限制
+     */
+    @TableField("`range`")
+    private Integer range;
+    /**
+     * 是否有积分奖励(1.是 2.否)
+     */
+    private Integer haveIntegralReward;
+    /**
+     * 居民积分奖励方式(1.按次奖励 2.记时奖励)
+     */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private Integer participantRewardWay;
+
+    /**
+     * 居民参与签到/打卡奖励积分
+     */
+    private Integer participantRewardIntegral;
+
+    /**
+     * 志愿者积分奖励方式(1.按次奖励 2.记时奖励)
+     */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private Integer volunteerRewardWay;
+
+    /**
+     * 志愿者参与签到/打卡奖励积分
+     */
+    private Integer volunteerRewardIntegral;
+
+    /**
+     * 党员积分奖励方式(1.按次奖励 2.记时奖励)
+     */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private Integer pbRewardWay;
+
+    /**
+     * 党员参与签到/打卡奖励积分
+     */
+    private Integer pbRewardIntegral;
+
+    /**
+     * 参与次数上限
+     */
+    @TableField("`limit`")
+    private Integer limit;
+    /**
+     * 是否允许取消(1.允许 2.不允许)
+     */
+    private Integer canCancel;
+    /**
+     * 取消扣除积分
+     */
+    private Integer cancelDeduct;
+    /**
+     * 活动类型
+     */
+    private String activityType;
+
+    /**
+     * 是否项目
+     */
+    private Integer isProject;
+
+    /**
+     * 项目id
+     */
+    private Long projectId;
+
+    /**
+     *  活动类型 1 社区活动 4项目活动 5服务活动
+     */
+    private Integer type;
+
+    /**
+     * 党员参与者人数下线
+     */
+    private Integer partyMemberMin;
+
+    /**
+     * 党员参与者人数上限
+     */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private Integer partyMemberMax;
+    /**
+     * 签退范围,默认0无限制
+     */
+    private Integer signOutRange;
+
+    /**
+     * 单次活动时长(小时)
+     */
+    private Integer duration;
+
+    private Integer isArticle;
+
+    private String  jumpArticleUrl;
+
+    private Long relationId;
+
+    private String phone;
+
+    private Long checkUnitId;
+
+    private Long topicId;
+
+    private String jinhuiCoinAward;
+
+    private String jinhuiCoinPunishment;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDO.java
new file mode 100644
index 0000000..a93397b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDO.java
@@ -0,0 +1,123 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 社区表
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 14:12
+ **/
+@Data
+@TableName(value = "com_act")
+public class ComActDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * community_id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long communityId;
+
+    /**
+     * 社区名字
+     */
+    private String name;
+
+    /**
+     * 社区地址
+     */
+    private String address;
+
+    /**
+     * 经度
+     */
+    private String lng;
+
+    /**
+     * 维度
+     */
+    private String lat;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 省份地址编码
+     */
+    private String provinceCode;
+
+    /**
+     * 市级地址编码
+     */
+    private String cityCode;
+
+    /**
+     * 区级地址编码
+     */
+    private String areaCode;
+
+    /**
+     * 社区面积
+     */
+    private Double square;
+
+    /**
+     * 联系人
+     */
+    private String contacts;
+
+    /**
+     * 联系人电话
+     */
+    private String contactsPhone;
+
+    /** 社区总人口 */
+    private Integer totalUser;
+    /** 社区书记-用户ID */
+    private Long managerId;
+    /** 社区书记_名称 */
+    private String managerName;
+    /** 社区介绍 */
+    private String introduce;
+    /** 层次递归字段(省>市>区县>街道>社区) */
+    private String path;
+    /**
+     * 超管账号
+     */
+    private String account;
+
+    /**
+     * 账号密码
+     */
+    private String password;
+
+    /**
+     * 状态 0 启用 1 禁用
+     */
+    private Integer state;
+
+    /**
+     * 街道ID
+     */
+    private Long streetId;
+
+    /**
+     * 明文密码
+     */
+    private String plaintextPassword;
+
+    private String appId;
+
+    @TableField(exist = false)
+    private String solvePhone;
+
+}
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
new file mode 100644
index 0000000..2d61777
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussCommentDO.java
@@ -0,0 +1,80 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 一起议评论
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-22 15:09
+ **/
+@Data
+@TableName(value = "com_act_discuss_comment")
+public class ComActDiscussCommentDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 一起议主键
+     */
+    private Long discussId;
+
+    /**
+     * varchar(500)
+     */
+    private String comment;
+
+    /**
+     * 是否置顶 0 否 1 是
+     */
+    private Integer isTopping;
+
+    /**
+     * 评论时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 是否作者本人回复 0 否 1 是
+     */
+    private Integer isAuthor;
+
+    /**
+     * 上级评论id 默认0表示一级评论
+     */
+    private Long parentId;
+
+    /**
+     * 用户主键
+     */
+    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/ComActDiscussCommentUserDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussCommentUserDO.java
new file mode 100644
index 0000000..3e67913
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussCommentUserDO.java
@@ -0,0 +1,43 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 一起议评论点赞
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-23 13:59
+ **/
+@Data
+@TableName(value = "com_act_discuss_comment_user")
+public class ComActDiscussCommentUserDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 评论主键
+     */
+    private Long disscussCommentId;
+
+    /**
+     * 用户主键
+     */
+    private Long userId;
+
+    /**
+     * 评论点赞时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+}
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
new file mode 100644
index 0000000..1fd138c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussDO.java
@@ -0,0 +1,200 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 议事投票
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-22 14:48
+ **/
+@Data
+@TableName(value = "com_act_discuss")
+public class ComActDiscussDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 主题
+     */
+    private String discussSubject;
+
+    /**
+     * 类型 1 议事 2 投票
+     */
+    private Integer type;
+
+    /**
+     * 图片地址 多个用逗号隔开
+     */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private String photoPah;
+
+    /**
+     * 地址
+     */
+    private String address;
+
+    /**
+     * 发布人主键
+     */
+    private Long userId;
+
+    /**
+     * 社区主键
+     */
+    private Long communityId;
+
+    /**
+     * create_at
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 1 单选 2 多选
+     */
+    private Integer discussOption;
+
+    /**
+     * 投票标题
+     */
+    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.院落议事 3.党群议事)
+     */
+    private Integer contentType;
+    /**
+     * 投票范围(1.全部居民 2.志愿者 3.党员)
+     */
+    private Integer voteScope;
+    /**
+     * 是否需要签名
+     */
+    private Boolean needSign;
+
+    /**
+     * 类型 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/ComActDiscussOptionDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussOptionDO.java
new file mode 100644
index 0000000..1e1c334
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussOptionDO.java
@@ -0,0 +1,52 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 一起议投票选项
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-22 15:07
+ **/
+@Data
+@TableName(value = "com_act_discuss_option")
+public class ComActDiscussOptionDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 一起议主键
+     */
+    private Long discussId;
+
+    /**
+     * 选项内容
+     */
+    private String optionContent;
+
+    /**
+     * 选项图片url
+     */
+    private String optionUrl;
+
+    /**
+     * create_at
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 是否需要填写原因
+     */
+    private Boolean needReason;
+}
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
new file mode 100644
index 0000000..6035aab
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussOptionUserDO.java
@@ -0,0 +1,58 @@
+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 lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 一起议选项投票
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-22 16:12
+ **/
+@Data
+@TableName(value = "com_act_discuss_option_user")
+public class ComActDiscussOptionUserDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 一起议选项id
+     */
+    private Long discussOptionId;
+
+    /**
+     * 投票人id
+     */
+    private Long userId;
+
+    /**
+     * 投票时间
+     */
+    private Date createAt;
+
+    /**
+     * 一起议id
+     */
+    private Long discussId;
+
+    /**
+     * 签名
+     */
+    private String signUrl;
+
+    /**
+     * 投票原因
+     */
+    private String reason;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussUserDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussUserDO.java
new file mode 100644
index 0000000..9205449
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDiscussUserDO.java
@@ -0,0 +1,42 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 一起议点赞
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-22 14:57
+ **/
+@Data
+@TableName(value = "com_act_discuss_user")
+public class ComActDiscussUserDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 一起议主键
+     */
+    private Long discussId;
+
+    /**
+     * 用户主键
+     */
+    private Long userId;
+
+    /**
+     * 点赞时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDynDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDynDO.java
new file mode 100644
index 0000000..d1fcf9c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDynDO.java
@@ -0,0 +1,110 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 社区动态
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 14:05
+ **/
+@Data
+@TableName(value = "com_act_dyn")
+public class ComActDynDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 标题
+     */
+    private String title;
+    /**
+     * 状态
+     */
+    private Integer status;
+
+    /**
+     * 是否置顶
+     */
+    private Integer isTopping;
+
+    /**
+     * 发布时间
+     */
+    private Date publishAt;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 修改时间
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateAt;
+    /**
+     * 社区id
+     */
+    private String communityId;
+    /**
+     * 动态内容富文本
+     */
+    private String content;
+    /**
+     * 封面图
+     */
+    @TableField(value = "cover", updateStrategy = FieldStrategy.IGNORED)
+    private String cover;
+
+    /**
+     * 社区动态分类id
+     */
+    private String type;
+
+    /**
+     * 封面模式:1-小图展示 2-大图展示
+     */
+    private Integer coverMode;
+
+    /**
+     * 跳转链接
+     */
+    private String jumpUrl;
+
+    /**
+     * 跳转状态
+     */
+    private Integer jumpType;
+
+    /**
+     * 类型(1.社区动态 2.党务公开 3.花城资讯)
+     */
+    private Integer category;
+
+    private Integer readNum;
+
+    private Date releaseTime;
+    /**
+     * 广告是否置顶
+     * */
+    private Integer onTop;
+
+    /**
+     * 图片链接
+     * */
+    private String imageUrl;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDynTypeDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDynTypeDO.java
new file mode 100644
index 0000000..12e06fe
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDynTypeDO.java
@@ -0,0 +1,92 @@
+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 lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-07-22 11:28:27
+ * @describe 社区动态分类实体类
+ */
+
+@Data
+@TableName("com_act_dyn_type")
+public class ComActDynTypeDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 分类名称
+     */
+    private String name;
+
+    /**
+     * 字体颜色
+     */
+    private String color;
+
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    private Integer isDel;
+
+    /**
+     * 社区id(为0时表示系统分类无法更改的)
+     */
+    private Long communityId;
+
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+
+    /**
+     * 创建人
+     */
+    private Long createBy;
+
+    /**
+     * 修改时间
+     */
+    private Date updateAt;
+
+    /**
+     * 修改人
+     */
+    private Long updateBy;
+
+
+    private String area;
+
+    /**
+     * 类型(1.社区动态 2.党务公开 3.花城资讯)
+     */
+    private Integer category;
+
+    @Override
+    public String toString() {
+        return "ComActDynTypeDO{" + "id=" + id + ", name=" + name + ", color=" + color + ", isDel=" + isDel
+            + ", communityId=" + communityId + ", createAt=" + createAt + ", createBy=" + createBy + ", updateAt="
+            + updateAt + ", updateBy=" + updateBy + "}";
+    }
+
+    /**
+     * 是否删除(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/ComActDynUserDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDynUserDO.java
new file mode 100644
index 0000000..d6526cd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActDynUserDO.java
@@ -0,0 +1,42 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 社区动态阅读记录
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-09 10:23
+ **/
+@Data
+@TableName(value = "com_act_dyn_user")
+public class ComActDynUserDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 社区动态id
+     */
+    private Long dynId;
+
+    /**
+     * user表id
+     */
+    private Long userId;
+
+    /**
+     * 阅读时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActEasyPhotoActivityDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActEasyPhotoActivityDO.java
new file mode 100644
index 0000000..035024f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActEasyPhotoActivityDO.java
@@ -0,0 +1,112 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-06-25 10:34:16
+ * @describe 随手拍活动表实体类
+ */
+
+@Data
+@TableName("com_act_easy_photo_activity")
+public class ComActEasyPhotoActivityDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 活动状态(1.待开始 2.进行中 3.已结束 4.已取消)
+     */
+    private Integer status;
+
+    /**
+     * 活动简介
+     */
+    private String content;
+
+    /**
+     * 活动开始时间
+     */
+    private Date activityStartAt;
+
+    /**
+     * 活动结束时间
+     */
+    private Date activityEndAt;
+
+    /**
+     * 发布时间
+     */
+    private Date releaseAt;
+
+    /**
+     * 优质奖励金额
+     */
+    private BigDecimal goodReward;
+
+    /**
+     * 精良奖励金额
+     */
+    private BigDecimal excellentReward;
+
+    /**
+     * 普通奖励金额
+     */
+    private BigDecimal ordinaryReward;
+
+    /**
+     * 一般奖励金额
+     */
+    private BigDecimal commonlyReward;
+
+    /**
+     * 随手拍数量
+     */
+    private Integer count;
+
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+    /**
+     * 活动图片
+     */
+    private String logo;
+
+    @Override
+    public String toString() {
+        return "ComActEasyPhotoActivityDO{" + "id=" + id + ", status=" + status + ", content=" + content
+            + ", activityStartAt=" + activityStartAt + ", activityEntAt=" + activityEndAt + ", releaseAt=" + releaseAt
+            + ", goodReward=" + goodReward + ", excellentReward=" + excellentReward + ", ordinaryReward="
+            + ordinaryReward + ", count=" + count + ", createAt=" + createAt + "}";
+    }
+
+    /**
+     * 活动状态(1.待开始 2.进行中 3.已结束 4.已取消)
+     */
+    public interface status {
+        int dks = 1;
+        int jxz = 2;
+        int yjs = 3;
+        int yqx = 4;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActEasyPhotoActivityRecordDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActEasyPhotoActivityRecordDO.java
new file mode 100644
index 0000000..d03a1bc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActEasyPhotoActivityRecordDO.java
@@ -0,0 +1,77 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-06-25 10:34:36
+ * @describe 用户参加随手拍活动记录表实体类
+ */
+
+@Data
+@TableName("com_act_easy_photo_activity_record")
+public class ComActEasyPhotoActivityRecordDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 参加活动用户id
+     */
+    private Long userId;
+
+    /**
+     * 活动id
+     */
+    private Long activityId;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 随手拍id
+     */
+    private Long easyId;
+
+    /**
+     * 活动奖励类型(1.优质 2.精良 3.普通)
+     */
+    private Integer type;
+
+    /**
+     * 奖励金额
+     */
+    private BigDecimal rewardAmount;
+
+    /**
+     * 参加活动时间
+     */
+    private Date joinAt;
+
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+
+    @Override
+    public String toString() {
+        return "ComActEasyPhotoActivityRecordDO{" + "id=" + id + ", userId=" + userId + ", activityId=" + activityId
+            + ", communityId=" + communityId + ", easyId=" + easyId + ", type=" + type + ", rewardAmount="
+            + rewardAmount + ", joinAt=" + joinAt + ", createAt=" + createAt + "}";
+    }
+}
\ No newline at end of file
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
new file mode 100644
index 0000000..e4f8f35
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActEasyPhotoClassifyDO.java
@@ -0,0 +1,80 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-08-19 15:50:58
+ * @describe 随手拍分类表实体类
+ */
+
+@Data
+@TableName("com_act_easy_photo_classify")
+public class ComActEasyPhotoClassifyDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 随手拍分类名称
+     */
+    private String name;
+
+    /**
+     * 状态(1.启用 2.禁用)
+     */
+    private Integer status;
+
+    /**
+     * 权重
+     */
+    private Integer weight;
+
+    /**
+     * 备注
+     */
+    @TableField(value = "remark", updateStrategy = FieldStrategy.IGNORED)
+    private String remark;
+
+
+    /**
+     * 1 随手拍   2网格治理
+     */
+    private String addType;
+
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+
+    /**
+     * 修改时间
+     */
+    private Date updateAt;
+
+    private String areaCode;
+
+    @Override
+    public String toString() {
+        return "ComActEasyPhotoClassifyDO{" + "id=" + id + ", name=" + name + ", status=" + status + ", weight="
+            + weight + ", remark=" + remark + ", createAt=" + createAt + ", updateAt=" + updateAt + "}";
+    }
+
+    /**
+     * 状态(1.启用 2.禁用)
+     */
+    public interface status {
+        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/ComActEasyPhotoCommentDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActEasyPhotoCommentDO.java
new file mode 100644
index 0000000..f85906c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActEasyPhotoCommentDO.java
@@ -0,0 +1,48 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 随手拍评论
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-21 14:01
+ **/
+@Data
+@TableName(value = "com_act_easy_photo_comment")
+public class ComActEasyPhotoCommentDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 随手拍主键
+     */
+    private Long easyPhotoId;
+
+    /**
+     * varchar(500)
+     */
+    private String comment;
+
+    /**
+     * 评论者id
+     */
+    private Long userId;
+
+    /**
+     * 评论时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActEasyPhotoCommentUserDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActEasyPhotoCommentUserDO.java
new file mode 100644
index 0000000..d8e0045
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActEasyPhotoCommentUserDO.java
@@ -0,0 +1,43 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 随手拍评论点赞
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-21 13:58
+ **/
+@Data
+@TableName(value = "com_act_easy_photo_comment_user")
+public class ComActEasyPhotoCommentUserDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 随手拍评论主键
+     */
+    private Long easyPhotoCommentId;
+
+    /**
+     * 点赞用户主键
+     */
+    private Long userId;
+
+    /**
+     * 点赞时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActEasyPhotoDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActEasyPhotoDO.java
new file mode 100644
index 0000000..e318157
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActEasyPhotoDO.java
@@ -0,0 +1,222 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+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;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 随手拍
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 14:21
+ **/
+@Data
+@TableName(value = "com_act_easy_photo")
+public class ComActEasyPhotoDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 发起人id
+     */
+    private Long sponsorId;
+
+    /**
+     * 1 随手拍    2网格治理
+     */
+    private String addType;
+
+    /**
+     * 发生地址
+     */
+    private String happenAddr;
+
+    /**
+     * 状态 1待审核 2进行中 3已驳回 4待评价 5.已完成
+     */
+    private Integer status;
+
+    /**
+     * 处理人id
+     */
+    private Long handlerId;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 审核时间
+     */
+    private Date examineAt;
+
+    /**
+     * 详情
+     */
+    private String detail;
+
+    /**
+     * 图片路径列表,逗号分隔
+     */
+    private String photoPathList;
+
+    /**
+     * 处理结果
+     */
+    private String handleResult;
+
+    /**
+     * 处理结果,图片路径列表,逗号分隔
+     */
+    private String handlePhotoList;
+    /**
+     * 社区id
+     */
+    private Long communityId;
+    /**
+     * 是否匿名发布
+     */
+    private Integer isHide;
+
+    /**
+     * 随手拍是否需要反馈 0 不需要 1 需要
+     */
+    private Integer isNeedFeedBack;
+    /**
+     * 反馈时间
+     */
+    private Date feedbackAt;
+    /**
+     * 拒绝原因
+     */
+    private String rejectReason;
+    /**
+     * 地址备注
+     */
+    private String addrRemark;
+
+    /**
+     * 是否删除 0 否 1 是
+     */
+    private Integer delTag;
+
+    /**
+     * 是否上报社区处理(0.否 1.是)
+     */
+    private Integer isReport;
+
+    /**
+     * 是否公示(0.否 1.是)
+     */
+    private Integer isPublicity;
+
+    /**
+     * 处理状态(1.待处理 2.已处理)
+     */
+    private Integer handleStatus;
+
+    /**
+     * 发生地址经纬度信息,逗号分割
+     */
+    private String lngLat;
+
+    /**
+     * 活动id
+     */
+    private Long activityId;
+
+    /**
+     * 参加活动标签(1.优质 2.精良 3.普通)
+     */
+    private Integer activityType;
+
+    /**
+     * 活动奖励金额
+     */
+    private BigDecimal activityAmount;
+    /**
+     * 完成人id
+     */
+    private Long completeId;
+    /**
+     * 是否上报到人大代表( 0未上报 1已上报)
+     */
+    private Integer isReportDpc;
+    /**
+     * 是否上报到城管( 0未上报 1已上报 2已退回)
+     */
+    private Integer isReportUrban;
+    /**
+     * 城管安排状态 (0未安排 1已安排 2已处理)
+     */
+    private Integer urbanStatus;
+    /**
+     * 城管退回原因
+     */
+    private String backResult;
+    /**
+     * 移交时间
+     */
+    private Date transferTime;
+    /**
+     * 移交说明
+     */
+    private String transferReason;
+    /**
+     * 退回时间
+     */
+    private Date backTime;
+    /**
+     * 随手拍分类id
+     */
+    private Long classifyId;
+    /**
+     * 单张图片宽度
+     */
+    private BigDecimal imgWidth;
+    /**
+     * 单张图片高度
+     */
+    private BigDecimal imgHeight;
+    /**
+     * 评价时间
+     */
+    private Date evaluateDate;
+
+    /**
+     * 参加活动标签(1.优质 2.精良 3.普通 4.一般)
+     */
+    public interface activityType {
+        int yz = 1;
+        int jl = 2;
+        int pt = 3;
+        int yb = 4;
+        int wu = 5;
+    }
+
+    /**
+     * 状态 1待审核 2进行中 3已驳回 4待评价 5.已完成
+     */
+    public interface status {
+        int dsh = 1;
+        int dfk = 2;
+        int ybh = 3;
+        int dpj = 4;
+        int ypj = 5;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActEasyPhotoFeedbackDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActEasyPhotoFeedbackDO.java
new file mode 100644
index 0000000..bc87e6b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActEasyPhotoFeedbackDO.java
@@ -0,0 +1,65 @@
+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 lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-08-13 14:40:06
+ * @describe 实体类
+ */
+
+@Data
+@TableName("com_act_easy_photo_feedback")
+public class ComActEasyPhotoFeedbackDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 随手拍id
+     */
+    private Long easyId;
+
+    /**
+     * 反馈内容
+     */
+    private String feedbackContent;
+
+    /**
+     * 反馈图片地址,多个以,隔开
+     */
+    private String feedbackImg;
+
+    /**
+     * 反馈时间
+     */
+    private Date createAt;
+
+    /**
+     * 反馈人
+     */
+    private Long createBy;
+
+    /**
+     * 反馈人员类型(1.普通反馈 2.人大代表反馈)
+     */
+    private Integer type;
+
+    @Override
+    public String toString() {
+        return "ComActEasyPhotoFeedbackDO{" + "id=" + id + ", easyId=" + easyId + ", feedbackContent=" + feedbackContent
+            + ", feedbackImg=" + feedbackImg + ", createAt=" + createAt + ", createBy=" + createBy + "}";
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActEasyPhotoRewardDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActEasyPhotoRewardDO.java
new file mode 100644
index 0000000..5f8c3f5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActEasyPhotoRewardDO.java
@@ -0,0 +1,74 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-07-23 14:30:03
+ * @describe 用户随手拍奖励表实体类
+ */
+
+@Data
+@TableName("com_act_easy_photo_reward")
+public class ComActEasyPhotoRewardDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 是否已读(1.是 2.否)
+     */
+    private Integer isRead;
+
+    /**
+     * 奖励金额
+     */
+    private BigDecimal amount;
+
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+
+    /**
+     * 修改时间
+     */
+    private Date updateAt;
+
+    @Override
+    public String toString() {
+        return "ComActEasyPhotoRewardDO{" + "id=" + id + ", userId=" + userId + ", communityId=" + communityId
+            + ", isRead=" + isRead + ", amount=" + amount + ", createAt=" + createAt + ", updateAt=" + updateAt + "}";
+    }
+
+    /**
+     * 是否已读(1.是 2.否)
+     */
+    public interface isRead {
+        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/ComActEasyPhotoUserDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActEasyPhotoUserDO.java
new file mode 100644
index 0000000..63fa73a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActEasyPhotoUserDO.java
@@ -0,0 +1,42 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 随手拍点赞
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-10 15:12
+ **/
+@Data
+@TableName(value = "com_act_easy_photo_user")
+public class ComActEasyPhotoUserDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 随手拍主键id
+     */
+    private Long easyPhotoId;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 点赞时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActIntegralRuleDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActIntegralRuleDO.java
new file mode 100644
index 0000000..cff4f41
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActIntegralRuleDO.java
@@ -0,0 +1,123 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-07-28 16:02:46
+ * @describe 积分规则表实体类
+ */
+
+@Data
+@TableName("com_act_integral_rule")
+public class ComActIntegralRuleDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 积分规则名称
+     */
+    private String name;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 积分奖励金额
+     */
+    private Integer amount;
+
+    /**
+     * 积分任务描述
+     */
+    private String integralDescribe;
+
+    /**
+     * 是否限制(1.是 2.否)
+     */
+    private Integer isRestrict;
+
+    /**
+     * 限制类型(1.月 2.日)
+     */
+    @TableField(value = "type", updateStrategy = FieldStrategy.IGNORED)
+    private Integer type;
+
+    /**
+     * 限制次数
+     */
+    @TableField(value = "count", updateStrategy = FieldStrategy.IGNORED)
+    private Integer count;
+
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+
+    /**
+     * 修改时间
+     */
+    private Date updateAt;
+
+    /**
+     * 积分任务类型(1.发布随手拍 2.发布微心愿 3.参与议事投票 4.社区活动-居民身份参与 " +
+     *             "5.社区活动-党员身份参与 6.社区活动-志愿者身份参与 7.参与调查问卷 8.取消活动 9.参与单位党员活动)
+     */
+    private Integer integralType;
+
+    /**
+     * 积分任务备注
+     */
+    private String remark;
+
+    @Override
+    public String toString() {
+        return "ComActIntegralRuleDO{" + "id=" + id + ", name=" + name + ", communityId=" + communityId + ", amount="
+            + amount + ", integralDescribe=" + integralDescribe + ", isRestrict=" + isRestrict + ", type=" + type
+            + ", count=" + count + ", createAt=" + createAt + ", updateAt=" + updateAt + ", integralType="
+            + integralType + ", remark=" + remark + "}";
+    }
+
+    /**
+     * 积分任务类型(1.发布随手拍 2.发布微心愿 3.参与议事投票 4.社区活动-居民身份参与 " +
+     *             "5.社区活动-党员身份参与 6.社区活动-志愿者身份参与 7.参与调查问卷 8.取消活动 9.参与单位党员活动)
+     */
+    public interface integralType {
+        int fbssp = 1;
+        int fbwxy = 2;
+        int cyystp = 3;
+        int cyjmhd = 4;
+        int cyzyzhd = 5;
+        int cydyhd = 6;
+        int cydcwj = 7;
+    }
+
+    /**
+     * 是否限制(1.是 2.否)
+     */
+    public interface isRestrict {
+        int yes = 1;
+        int no = 2;
+    }
+
+    /**
+     * 限制类型(1.月 2.日)
+     */
+    public interface type {
+        int month = 1;
+        int day = 2;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActIntegralUserChangeDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActIntegralUserChangeDO.java
new file mode 100644
index 0000000..ea7bbd2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActIntegralUserChangeDO.java
@@ -0,0 +1,194 @@
+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 lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-07-28 16:03:05
+ * @describe 用户积分账户变动记录实体类
+ */
+
+@Data
+@TableName("com_act_integral_user_change")
+public class ComActIntegralUserChangeDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 积分账户id
+     */
+    private Long integralId;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 总积分数量变动前
+     */
+    private Integer integralSumTop;
+
+    /**
+     * 总积分数量变动后
+     */
+    private Integer integralSumBack;
+
+    /**
+     * 可用总积分数量变动前
+     */
+    private Integer integralAvailableSumTop;
+
+    /**
+     * 可用总积分数量变动后
+     */
+    private Integer integralAvailableSumBack;
+
+    /**
+     * 冻结总积分数量变动前
+     */
+    private Integer integralFrozenSumTop;
+
+    /**
+     * 冻结总积分数量变动后
+     */
+    private Integer integralFrozenSumBack;
+
+    /**
+     * 党员积分数量变动前
+     */
+    private Integer integralPartyTop;
+
+    /**
+     * 党员积分数量变动后
+     */
+    private Integer integralPartyBack;
+
+    /**
+     * 可用党员积分数量变动前
+     */
+    private Integer integralAvailablePartyTop;
+
+    /**
+     * 可用党员积分数量变动后
+     */
+    private Integer integralAvailablePartyBack;
+
+    /**
+     * 冻结党员积分数量变动前
+     */
+    private Integer integralFrozenPartyTop;
+
+    /**
+     * 冻结党员积分数量变动后
+     */
+    private Integer integralFrozenPartyBack;
+
+    /**
+     * 志愿者积分数量变动前
+     */
+    private Integer integralVolunteerTop;
+
+    /**
+     * 志愿者积分数量变动后
+     */
+    private Integer integralVolunteerBack;
+
+    /**
+     * 可用志愿者积分数量变动前
+     */
+    private Integer integralAvailableVolunteerTop;
+
+    /**
+     * 可用志愿者积分数量变动后
+     */
+    private Integer integralAvailableVolunteerBack;
+
+    /**
+     * 冻结志愿者积分数量变动前
+     */
+    private Integer integralFrozenVolunteerTop;
+
+    /**
+     * 冻结志愿者积分数量变动后
+     */
+    private Integer integralFrozenVolunteerBack;
+
+    /**
+     * 居民积分数量变动前
+     */
+    private Integer integralResidentTop;
+
+    /**
+     * 居民积分数量变动后
+     */
+    private Integer integralResidentBack;
+
+    /**
+     * 可用居民积分数量变动前
+     */
+    private Integer integralAvailableResidentTop;
+
+    /**
+     * 可用居民积分数量变动后
+     */
+    private Integer integralAvailableResidentBack;
+
+    /**
+     * 冻结居民积分数量变动前
+     */
+    private Integer integralFrozenResidentTop;
+
+    /**
+     * 冻结居民积分数量变动后
+     */
+    private Integer integralFrozenResidentBack;
+
+    /**
+     * 交易记录id
+     */
+    private Long serviceId;
+
+    /**
+     * 变动时间
+     */
+    private Date createAt;
+
+    @Override
+    public String toString() {
+        return "ComActIntegralUserChangeDO{" + "id=" + id + ", userId=" + userId + ", integralId=" + integralId
+            + ", communityId=" + communityId + ", integralSumTop=" + integralSumTop + ", integralSumBack="
+            + integralSumBack + ", integralAvailableSumTop=" + integralAvailableSumTop + ", integralAvailableSumBack="
+            + integralAvailableSumBack + ", integralFrozenSumTop=" + integralFrozenSumTop + ", integralFrozenSumBack="
+            + integralFrozenSumBack + ", integralPartyTop=" + integralPartyTop + ", integralPartyBack="
+            + integralPartyBack + ", integralAvailablePartyTop=" + integralAvailablePartyTop
+            + ", integralAvailablePartyBack=" + integralAvailablePartyBack + ", integralFrozenPartyTop="
+            + integralFrozenPartyTop + ", integralFrozenPartyBack=" + integralFrozenPartyBack
+            + ", integralVolunteerTop=" + integralVolunteerTop + ", integralVolunteerBack=" + integralVolunteerBack
+            + ", integralAvailableVolunteerTop=" + integralAvailableVolunteerTop + ", integralAvailableVolunteerBack="
+            + integralAvailableVolunteerBack + ", integralFrozenVolunteerTop=" + integralFrozenVolunteerTop
+            + ", integralFrozenVolunteerBack=" + integralFrozenVolunteerBack + ", integralResidentTop="
+            + integralResidentTop + ", integralResidentBack=" + integralResidentBack + ", integralAvailableResidentTop="
+            + integralAvailableResidentTop + ", integralAvailableResidentBack=" + integralAvailableResidentBack
+            + ", integralFrozenResidentTop=" + integralFrozenResidentTop + ", integralFrozenResidentBack="
+            + integralFrozenResidentBack + ", serviceId=" + serviceId + ", createAt=" + createAt + "}";
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActIntegralUserDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActIntegralUserDO.java
new file mode 100644
index 0000000..2221cbc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActIntegralUserDO.java
@@ -0,0 +1,136 @@
+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 lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-07-28 16:02:57
+ * @describe 用户积分账户表实体类
+ */
+
+@Data
+@TableName("com_act_integral_user")
+public class ComActIntegralUserDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 总积分数量
+     */
+    private Integer integralSum;
+
+    /**
+     * 可用总积分数量
+     */
+    private Integer integralAvailableSum;
+
+    /**
+     * 冻结总积分数量
+     */
+    private Integer integralFrozenSum;
+
+    /**
+     * 党员积分数量
+     */
+    private Integer integralParty;
+
+    /**
+     * 可用党员积分数量
+     */
+    private Integer integralAvailableParty;
+
+    /**
+     * 冻结党员积分数量
+     */
+    private Integer integralFrozenParty;
+
+    /**
+     * 志愿者积分数量
+     */
+    private Integer integralVolunteer;
+
+    /**
+     * 可用志愿者积分数量
+     */
+    private Integer integralAvailableVolunteer;
+
+    /**
+     * 冻结志愿者积分数量
+     */
+    private Integer integralFrozenVolunteer;
+
+    /**
+     * 居民积分数量
+     */
+    private Integer integralResident;
+
+    /**
+     * 可用居民积分数量
+     */
+    private Integer integralAvailableResident;
+
+    /**
+     * 冻结居民积分数量
+     */
+    private Integer integralFrozenResident;
+
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+
+    /**
+     * 上次积分变动时间
+     */
+    private Date updateAt;
+
+    /**
+     * 状态(1.启用 2.禁用)
+     */
+    private Integer status;
+
+    private Integer integralPartyTime;
+
+    @Override
+    public String toString() {
+        return "ComActIntegralUserDO{" + "id=" + id + ", userId=" + userId + ", communityId=" + communityId
+            + ", integralSum=" + integralSum + ", integralAvailableSum=" + integralAvailableSum + ", integralFrozenSum="
+            + integralFrozenSum + ", integralParty=" + integralParty + ", integralAvailableParty="
+            + integralAvailableParty + ", integralFrozenParty=" + integralFrozenParty + ", integralVolunteer="
+            + integralVolunteer + ", integralAvailableVolunteer=" + integralAvailableVolunteer
+            + ", integralFrozenVolunteer=" + integralFrozenVolunteer + ", integralResident=" + integralResident
+            + ", integralAvailableResident=" + integralAvailableResident + ", integralFrozenResident="
+            + integralFrozenResident + ", createAt=" + createAt + ", updateAt=" + updateAt + "}";
+    }
+
+    /**
+     * 状态(1.启用 2.禁用)
+     */
+    public interface status {
+        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/ComActIntegralUserTradeDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActIntegralUserTradeDO.java
new file mode 100644
index 0000000..e8a9046
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActIntegralUserTradeDO.java
@@ -0,0 +1,110 @@
+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 lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-07-28 16:03:18
+ * @describe 用户积分账户交易记录实体类
+ */
+
+@Data
+@TableName("com_act_integral_user_trade")
+public class ComActIntegralUserTradeDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 积分账户id
+     */
+    private Long integralId;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 交易业务id
+     */
+    private Long serviceId;
+
+    /**
+     * 交易业务类型(1.发布随手拍 2.发布微心愿 3.参与议事投票 4.社区活动-居民身份参与 " +
+     *             "5.社区活动-党员身份参与 6.社区活动-志愿者身份参与 7.参与调查问卷 8.取消活动 9.参与单位党员活动)
+     */
+    private Integer serviceType;
+
+    /**
+     * 交易积分数量
+     */
+    private Integer amount;
+
+    /**
+     * 变动类型(1.增加 2.减少)
+     */
+    private Integer changeType;
+
+    /**
+     * 交易备注
+     */
+    private String remark;
+
+    /**
+     * 交易身份类型(1.居民 2.党员 3.志愿者)
+     */
+    private Integer identityType;
+
+    /**
+     * 交易时间
+     */
+    private Date createAt;
+
+    /**
+     * 操作人id
+     */
+    private Long createBy;
+
+    @Override
+    public String toString() {
+        return "ComActIntegralUserTradeDO{" + "id=" + id + ", userId=" + userId + ", integralId=" + integralId
+            + ", communityId=" + communityId + ", serviceId=" + serviceId + ", serviceType=" + serviceType + ", amount="
+            + amount + ", changeType=" + changeType + ", remark=" + remark + ", identityType=" + identityType
+            + ", createAt=" + createAt + ", createBy=" + createBy + "}";
+    }
+
+    /**
+     * 变动类型(1.增加 2.减少)
+     */
+    public interface changeType {
+        int add = 1;
+        int reduce = 2;
+    }
+
+    /**
+     * 交易身份类型(1.居民 2.党员 3.志愿者)
+     */
+    public interface identityType {
+        int jm = 1;
+        int dy = 2;
+        int zyz = 3;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActMessageBackDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActMessageBackDO.java
new file mode 100644
index 0000000..6134063
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActMessageBackDO.java
@@ -0,0 +1,86 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import lombok.Data;
+
+@Data
+@TableName(value = "com_act_message_back")
+public class ComActMessageBackDO {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    private Long id;
+
+    /**
+     * 留言id
+     */
+    private Long msgId;
+
+    /**
+     * 回复内容
+     */
+    private String msgContent;
+
+    /**
+     * 图片地址 多个用逗号隔开
+     */
+    private String photoPah;
+
+    /**
+     * 联系方式
+     */
+    private String phone;
+
+    /**
+     * 留言人id
+     */
+    private Long sendtoUserId;
+
+    /**
+     * 留言人姓名
+     */
+    private String sendtoUserName;
+
+    /**
+     * 状态 1 待回复 2 已回复
+     */
+    private Integer status;
+
+    /**
+     * 是否公开 1 公开 2 保密
+     */
+    private Integer ispublic;
+
+    /**
+     * 回复人主键
+     */
+    private Long userId;
+
+    /**
+     * 回复人账号
+     */
+    private String userAccount;
+
+    /**
+     * 回复人姓名
+     */
+    private String userName;
+
+    /**
+     * 社区主键
+     */
+    private Long communityId;
+
+    /**
+     * 回复时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActMessageDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActMessageDO.java
new file mode 100644
index 0000000..346216b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActMessageDO.java
@@ -0,0 +1,89 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+@Data
+@TableName(value = "com_act_message")
+public class ComActMessageDO {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 留言内容
+     */
+    private String msgContent;
+
+    /**
+     * 图片地址 多个用逗号隔开
+     */
+    private String photoPah;
+
+    /**
+     * 留言对象联系方式
+     */
+    private String phone;
+
+    /**
+     * 回复人id
+     */
+    private Long sendtoUserId;
+
+    /**
+     * 回复人姓名
+     */
+    private String sendtoUserName;
+
+    /**
+     * 状态 1 待回复 2 已回复
+     */
+    private Integer status;
+
+    /**
+     * 是否公开 1 公开 2 保密
+     */
+    private Integer ispublic;
+
+    /**
+     * 留言人主键
+     */
+    private Long userId;
+
+    /**
+     * 留言人账号
+     */
+    private String userAccount;
+
+    /**
+     * 留言人姓名
+     */
+    private String userName;
+
+    /**
+     * 社区主键
+     */
+    private Long communityId;
+
+    /**
+     * 留言对象 1 社区团队 2 社区党委 3人大代表
+     */
+
+    private Long type;
+    /**
+     * 留言人电话
+     */
+    private String userPhone;
+    /**
+     * 回复时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+}
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
new file mode 100644
index 0000000..a113ac6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActMicroWishDO.java
@@ -0,0 +1,167 @@
+package com.panzhihua.service_community.model.dos;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 微心愿
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 14:24
+ **/
+@Data
+@TableName(value = "com_act_micro_wish")
+public class ComActMicroWishDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 发起人id
+     */
+    private Long sponsorId;
+
+    /**
+     * 发起人电话号码
+     */
+    private String sponsorPhone;
+
+    /**
+     * 微心愿名称
+     */
+    private String wishName;
+
+    /**
+     * 状态
+     * 状态 1待审核  2待分配 3进行中  4已驳回 5待确认6 已完成
+     */
+    private Integer status;
+
+    /**
+     * 形式  1分配人员  2发起活动
+     */
+    private Integer form;
+
+    /**
+     * 责任人id
+     */
+    private Long responsibleId;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 审核时间
+     */
+    private Date examineAt;
+    /**
+     * 分配时间
+     */
+    private Date distributionAt;
+
+    /**
+     * 评分
+     */
+    private Integer score;
+
+    /**
+     * 详情
+     */
+    private String detail;
+
+    /**
+     * 图片路径列表,逗号分隔
+     */
+    private String photoPathList;
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 用户评价
+     */
+    private String evaluate;
+
+    /**
+     * 用户评价时间
+     */
+    private Date evaluateAt;
+
+    /**
+     * 反馈时间
+     */
+    private Date feedbackAt;
+
+    /**
+     * 完成情况图片列表,逗号分隔
+     */
+    private String finishPhotoPathList;
+
+    /**
+     * 完成情况描述
+     */
+    private String finish;
+    /**
+     * 完成时间=反馈时间
+     */
+    private Date finishAt;
+    /**
+     * 驳回理由
+     */
+    private String rejectReason;
+
+    /**
+     * 反馈文字
+     */
+    private String feedback;
+
+    /**
+     * 反馈图片集合,逗号分隔
+     */
+    private String feedbackPhotoPathList;
+    /**
+     * 目标集心数
+     */
+    private Integer aimNum;
+
+    /**
+     * 单张图片宽度
+     */
+    private BigDecimal imgWidth;
+
+    /**
+     * 单张图片高度
+     */
+    private BigDecimal imgHeight;
+
+    /**
+     * 处理人id,多个以逗号隔开
+     */
+    private String handleId;
+
+    /**
+     * 状态 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..75b0300
--- /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.ASSIGN_ID)
+        private Long 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..8d6079b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActMicroWishOperationRecordDO.java
@@ -0,0 +1,90 @@
+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.ASSIGN_ID)
+    private Long 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系统自动确认 9评价
+     */
+    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;
+        int pj = 9;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActMicroWishUserDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActMicroWishUserDO.java
new file mode 100644
index 0000000..b9a2128
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActMicroWishUserDO.java
@@ -0,0 +1,42 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 微心愿点赞
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-10 16:18
+ **/
+@Data
+@TableName(value = "com_act_micro_wish_user")
+public class ComActMicroWishUserDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 微心愿id
+     */
+    private Long microWishId;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 点赞时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleBrowseDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleBrowseDO.java
new file mode 100644
index 0000000..d9e6e6a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleBrowseDO.java
@@ -0,0 +1,49 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 13:40:53
+ * @describe 邻里圈浏览记录表实体类
+ */
+
+@Data
+@TableName("com_act_neighbor_circle_browse")
+public class ComActNeighborCircleBrowseDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 邻里圈id
+     */
+    private Long neighborId;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 浏览时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    @Override
+    public String toString() {
+        return "ComActNeighborCircleBrowseDO{" + "id=" + id + ", neighborId=" + neighborId + ", userId=" + userId
+            + ", createAt=" + createAt + "}";
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleBrowseWestDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleBrowseWestDO.java
new file mode 100644
index 0000000..0007127
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleBrowseWestDO.java
@@ -0,0 +1,49 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 13:40:53
+ * @describe 邻里圈浏览记录表实体类
+ */
+
+@Data
+@TableName("com_act_neighbor_circle_browse_west")
+public class ComActNeighborCircleBrowseWestDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 邻里圈id
+     */
+    private Long neighborId;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 浏览时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    @Override
+    public String toString() {
+        return "ComActNeighborCircleBrowseDO{" + "id=" + id + ", neighborId=" + neighborId + ", userId=" + userId
+            + ", createAt=" + createAt + "}";
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleCommentDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleCommentDO.java
new file mode 100644
index 0000000..3826aad
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleCommentDO.java
@@ -0,0 +1,83 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 09:21:33
+ * @describe 邻里圈评论表实体类
+ */
+
+@Data
+@TableName("com_act_neighbor_circle_comment")
+public class ComActNeighborCircleCommentDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 邻里圈id
+     */
+    private Long circleId;
+
+    /**
+     * 评论用户id
+     */
+    private Long userId;
+
+    /**
+     * 评论内容
+     */
+    private String content;
+
+    /**
+     * 评论用户手机号
+     */
+    private String userPhone;
+
+    /**
+     * 点赞数
+     */
+    private Integer fabulousNum;
+
+    /**
+     * 状态(1.显示 2.隐藏)
+     */
+    private Integer status;
+
+    /**
+     * 评论时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 是否是作者评论(1.是 2.否)
+     */
+    private Integer isRelease;
+
+    @Override
+    public String toString() {
+        return "ComActNeighborCircleCommentDO{" + "id=" + id + ", circleId=" + circleId + ", userId=" + userId
+            + ", content=" + content + ", userPhone=" + userPhone + ", fabulousNum=" + fabulousNum + ", status="
+            + status + ", createAt=" + createAt + ", isRelease=" + isRelease + "}";
+    }
+
+    /**
+     * 是否是作者评论(1.是 2.否)
+     */
+    public interface isRelease {
+        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/ComActNeighborCircleCommentReplyDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleCommentReplyDO.java
new file mode 100644
index 0000000..b7bf74a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleCommentReplyDO.java
@@ -0,0 +1,86 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 09:21:45
+ * @describe 邻里圈评论回复表实体类
+ */
+
+@Data
+@TableName("com_act_neighbor_circle_comment_reply")
+public class ComActNeighborCircleCommentReplyDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 邻里圈id
+     */
+    private Long circleId;
+
+    /**
+     * 评论id
+     */
+    private Long commentId;
+
+    /**
+     * 上级回复id
+     */
+    private Long parentId;
+
+    /**
+     * 上级回复用户id
+     */
+    private Long parentUserId;
+
+    /**
+     * 回复用户id
+     */
+    private Long userId;
+
+    /**
+     * 回复内容
+     */
+    private String replyContent;
+
+    /**
+     * 点赞数
+     */
+    private Integer fabulousNum;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 是否是作者回复(1.是 2.否)
+     */
+    private Integer isRelease;
+
+    /**
+     * 状态(1.显示 2.隐藏)
+     */
+    private Integer status;
+
+    @Override
+    public String toString() {
+        return "ComActNeighborCircleCommentReplyDO{" + "id=" + id + ", circleId=" + circleId + ", commentId="
+            + commentId + ", parentId=" + parentId + ", parentUserId=" + parentUserId + ", userId=" + userId
+            + ", replyContent=" + replyContent + ", fabulousNum=" + fabulousNum + ", createAt=" + createAt
+            + ", isRelease=" + isRelease + "}";
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleCommentReplyWestDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleCommentReplyWestDO.java
new file mode 100644
index 0000000..77808f2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleCommentReplyWestDO.java
@@ -0,0 +1,86 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 09:21:45
+ * @describe 邻里圈评论回复表实体类
+ */
+
+@Data
+@TableName("com_act_neighbor_circle_comment_reply_west")
+public class ComActNeighborCircleCommentReplyWestDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 邻里圈id
+     */
+    private Long circleId;
+
+    /**
+     * 评论id
+     */
+    private Long commentId;
+
+    /**
+     * 上级回复id
+     */
+    private Long parentId;
+
+    /**
+     * 上级回复用户id
+     */
+    private Long parentUserId;
+
+    /**
+     * 回复用户id
+     */
+    private Long userId;
+
+    /**
+     * 回复内容
+     */
+    private String replyContent;
+
+    /**
+     * 点赞数
+     */
+    private Integer fabulousNum;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 是否是作者回复(1.是 2.否)
+     */
+    private Integer isRelease;
+
+    /**
+     * 状态(1.显示 2.隐藏)
+     */
+    private Integer status;
+
+    @Override
+    public String toString() {
+        return "ComActNeighborCircleCommentReplyDO{" + "id=" + id + ", circleId=" + circleId + ", commentId="
+            + commentId + ", parentId=" + parentId + ", parentUserId=" + parentUserId + ", userId=" + userId
+            + ", replyContent=" + replyContent + ", fabulousNum=" + fabulousNum + ", createAt=" + createAt
+            + ", isRelease=" + isRelease + "}";
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleCommentWestDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleCommentWestDO.java
new file mode 100644
index 0000000..8d4b02c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleCommentWestDO.java
@@ -0,0 +1,83 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 09:21:33
+ * @describe 邻里圈评论表实体类
+ */
+
+@Data
+@TableName("com_act_neighbor_circle_comment_west")
+public class ComActNeighborCircleCommentWestDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 邻里圈id
+     */
+    private Long circleId;
+
+    /**
+     * 评论用户id
+     */
+    private Long userId;
+
+    /**
+     * 评论内容
+     */
+    private String content;
+
+    /**
+     * 评论用户手机号
+     */
+    private String userPhone;
+
+    /**
+     * 点赞数
+     */
+    private Integer fabulousNum;
+
+    /**
+     * 状态(1.显示 2.隐藏)
+     */
+    private Integer status;
+
+    /**
+     * 评论时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 是否是作者评论(1.是 2.否)
+     */
+    private Integer isRelease;
+
+    @Override
+    public String toString() {
+        return "ComActNeighborCircleCommentDO{" + "id=" + id + ", circleId=" + circleId + ", userId=" + userId
+            + ", content=" + content + ", userPhone=" + userPhone + ", fabulousNum=" + fabulousNum + ", status="
+            + status + ", createAt=" + createAt + ", isRelease=" + isRelease + "}";
+    }
+
+    /**
+     * 是否是作者评论(1.是 2.否)
+     */
+    public interface isRelease {
+        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/ComActNeighborCircleDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleDO.java
new file mode 100644
index 0000000..272dd76
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleDO.java
@@ -0,0 +1,219 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author lyq
+ * @create 2021-04-28 09:20:49
+ * @describe 邻里圈表实体类
+ */
+
+@Data
+@TableName("com_act_neighbor_circle")
+public class ComActNeighborCircleDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 发布人id
+     */
+    private Long releaseId;
+
+    /**
+     * 发布人电话
+     */
+    private String releasePhone;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 发布内容
+     */
+    private String releaseContent;
+
+    /**
+     * 发布图片
+     */
+    private String releaseImages;
+
+    /**
+     * 发布状态(1.待审核 2.显示 3.隐藏 4.驳回)
+     */
+    private Integer status;
+
+    /**
+     * 驳回原因
+     */
+    private String refuseReason;
+
+    /**
+     * 评论数
+     */
+    private Integer commentNum;
+
+    /**
+     * 点赞数
+     */
+    private Integer fabulousNum;
+
+    /**
+     * 转发数
+     */
+    private Integer forwardNum;
+
+    /**
+     * 浏览量
+     */
+    private Integer viewsNum;
+
+    /**
+     * 是否为精品帖(1.是 2.否)
+     */
+    private Integer isBoutique;
+
+    /**
+     * 发布时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    private String instruction;
+    /**
+     * 最后回复时间
+     */
+    private Date replyAt;
+
+    /**
+     * 近3天评论数
+     */
+    private Integer lastCommentNum;
+
+    /**
+     * 近3天评论数
+     */
+    private Integer lastFabulousNum;
+
+    /**
+     * 近3天评论数
+     */
+    private Integer lastViewsNum;
+
+    /**
+     * 话题id
+     */
+    private Long topicId;
+
+    /**
+     * 发布类型(1.小程序发布 2.后台发布)
+     */
+    private Integer type;
+
+    /**
+     * 热度
+     */
+    private Long hotNum;
+
+    /**
+     * 是否已删除(1.是   2.否)
+     */
+    private Integer isDel;
+
+    /**
+     * 使用类型(1.邻里圈 2.问题清单 3.需求清单)
+     */
+    private Integer belongType;
+
+    private Integer solveStatus;
+
+    private Integer orderStatus;
+
+    private Long solveId;
+
+    private String solveContent;
+
+    private String solveUrl;
+
+    private Date orderTime;
+
+    private Date solveTime;
+
+    private Date commentTime;
+
+    private String comment;
+
+    private Integer orderType;
+
+    private Integer helpMemberType;
+
+    private String helpMemberContent;
+
+    private Integer helpOrgType;
+
+    private String helpOrgContent;
+
+    private Long solveUnitId;
+
+    private String realServiceTime;
+
+    private String targetServiceTime;
+
+    @Override
+    public String toString() {
+        return "ComActNeighborCircleDO{" + "id=" + id + ", releaseId=" + releaseId + ", releasePhone=" + releasePhone
+            + ", communityId=" + communityId + ", releaseContent=" + releaseContent + ", releaseImages=" + releaseImages
+            + ", status=" + status + ", refuseReason=" + refuseReason + ", commentNum=" + commentNum + ", fabulousNum="
+            + fabulousNum + ", forwardNum=" + forwardNum + ", isBoutique=" + isBoutique + ", createAt=" + createAt
+            + "}";
+    }
+
+    /**
+     * 发布状态(1.待审核 2.显示 3.隐藏 4.驳回)
+     */
+    public interface status {
+        int dsh = 1;
+        int xs = 2;
+        int yc = 3;
+        int bh = 4;
+    }
+
+    /**
+     * 发布类型(1.小程序发布 2.后台发布)
+     */
+    public interface type {
+        int mini = 1;
+        int admin = 2;
+    }
+
+    /**
+     * 是否已删除(1.是   2.否)
+     */
+    public interface isDel{
+        int yes = 1;
+        int no = 2;
+    }
+
+    /**
+     * 使用类型(1.邻里圈 2.问题清单 3.需求清单)
+     */
+    public interface BelongType{
+        int LLQ = 1;
+        int WTQD = 2;
+        int XQQD = 3;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleFabulousDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleFabulousDO.java
new file mode 100644
index 0000000..5639eb6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleFabulousDO.java
@@ -0,0 +1,88 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 09:21:55
+ * @describe 邻里圈点赞表实体类
+ */
+
+@Data
+@TableName("com_act_neighbor_circle_fabulous")
+public class ComActNeighborCircleFabulousDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 点赞类型(1.邻里圈 2.评论 3.回复)
+     */
+    private Integer type;
+
+    /**
+     * 邻里圈id
+     */
+    private Long circleId;
+
+    /**
+     * 点赞上级id
+     */
+    private Long parentId;
+
+    /**
+     * 点赞用户id
+     */
+    private Long userId;
+
+    /**
+     * 有效状态(1.有效 2.取消)
+     */
+    private Integer isEffective;
+
+    /**
+     * 点赞时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 修改时间
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateAt;
+
+    @Override
+    public String toString() {
+        return "ComActNeighborCircleFabulousDO{" + "id=" + id + ", type=" + type + ", parentId=" + parentId
+            + ", userId=" + userId + ", isEffective=" + isEffective + ", createAt=" + createAt + ", updateAt="
+            + updateAt + "}";
+    }
+
+    /**
+     * 有效状态(1.有效 2.取消)
+     */
+    public interface isEffective {
+        int yes = 1;
+        int no = 2;
+    }
+
+    /**
+     * 点赞类型(1.邻里圈 2.评论 3.回复)
+     */
+    public interface type {
+        int llq = 1;
+        int pl = 2;
+        int hf = 3;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleFabulousWestDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleFabulousWestDO.java
new file mode 100644
index 0000000..fbb444f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleFabulousWestDO.java
@@ -0,0 +1,88 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 09:21:55
+ * @describe 邻里圈点赞表实体类
+ */
+
+@Data
+@TableName("com_act_neighbor_circle_fabulous_west")
+public class ComActNeighborCircleFabulousWestDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 点赞类型(1.邻里圈 2.评论 3.回复)
+     */
+    private Integer type;
+
+    /**
+     * 邻里圈id
+     */
+    private Long circleId;
+
+    /**
+     * 点赞上级id
+     */
+    private Long parentId;
+
+    /**
+     * 点赞用户id
+     */
+    private Long userId;
+
+    /**
+     * 有效状态(1.有效 2.取消)
+     */
+    private Integer isEffective;
+
+    /**
+     * 点赞时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 修改时间
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateAt;
+
+    @Override
+    public String toString() {
+        return "ComActNeighborCircleFabulousDO{" + "id=" + id + ", type=" + type + ", parentId=" + parentId
+            + ", userId=" + userId + ", isEffective=" + isEffective + ", createAt=" + createAt + ", updateAt="
+            + updateAt + "}";
+    }
+
+    /**
+     * 有效状态(1.有效 2.取消)
+     */
+    public interface isEffective {
+        int yes = 1;
+        int no = 2;
+    }
+
+    /**
+     * 点赞类型(1.邻里圈 2.评论 3.回复)
+     */
+    public interface type {
+        int llq = 1;
+        int pl = 2;
+        int hf = 3;
+    }
+}
\ 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
new file mode 100644
index 0000000..28f7e7b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleTopicDO.java
@@ -0,0 +1,99 @@
+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 lombok.Data;
+
+/**
+ * @author lyq
+ * @create 2021-07-06 15:04:37
+ * @describe 邻里圈话题表实体类
+ */
+
+@Data
+@TableName("com_act_neighbor_circle_topic")
+public class ComActNeighborCircleTopicDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 话题名称
+     */
+    private String name;
+
+    /**
+     * 状态(1.启用 2.禁用)
+     */
+    private Integer status;
+
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+
+    /**
+     * 创建人
+     */
+    private Long createBy;
+
+    /**
+     * 热度
+     */
+    private Long hotNum;
+
+    /**
+     * 邻里圈数量
+     */
+    private Integer count;
+
+    /**
+     * 使用类型(1.邻里圈 2.问题清单 3.需求清单)
+     */
+    private Integer belongType;
+
+    /**
+     * 话题logo
+     */
+    private String logo;
+
+    private Integer sort;
+
+    /**
+     * 状态(1.启用  2.禁用)
+     */
+    public interface status{
+        int yes = 1;
+        int no = 2;
+    }
+
+    @Override
+    public String toString() {
+        return "ComActNeighborCircleTopicDO{" + "id=" + id + ", name=" + name + ", status=" + status + ", createAt="
+            + createAt + ", createBy=" + createBy + "}";
+    }
+
+    /**
+     * 使用类型(1.邻里圈 2.问题清单 3.需求清单)
+     */
+    public interface BelongType{
+        int LLQ = 1;
+        int WTQD = 2;
+        int XQQD = 3;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleTopicWestDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleTopicWestDO.java
new file mode 100644
index 0000000..e0364e2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleTopicWestDO.java
@@ -0,0 +1,86 @@
+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 lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-07-06 15:04:37
+ * @describe 邻里圈话题表实体类
+ */
+
+@Data
+@TableName("com_act_neighbor_circle_topic_west")
+public class ComActNeighborCircleTopicWestDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 话题名称
+     */
+    private String name;
+
+    /**
+     * 状态(1.启用 2.禁用)
+     */
+    private Integer status;
+
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+
+    /**
+     * 创建人
+     */
+    private Long createBy;
+
+    /**
+     * 热度
+     */
+    private Long hotNum;
+
+    /**
+     * 邻里圈数量
+     */
+    private Integer count;
+    /**
+     * 使用类型(1.邻里圈话题 2.活动话题)
+     */
+    private Integer belongType;
+    /**
+     * 关联id
+     */
+    private Long refId;
+
+    /**
+     * 状态(1.启用  2.禁用)
+     */
+    public interface status{
+        int yes = 1;
+        int no = 2;
+    }
+
+    @Override
+    public String toString() {
+        return "ComActNeighborCircleTopicDO{" + "id=" + id + ", name=" + name + ", status=" + status + ", createAt="
+            + createAt + ", createBy=" + createBy + "}";
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleWestDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleWestDO.java
new file mode 100644
index 0000000..bc08106
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActNeighborCircleWestDO.java
@@ -0,0 +1,207 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 09:20:49
+ * @describe 邻里圈表实体类
+ */
+
+@Data
+@TableName("com_act_neighbor_circle_west")
+public class ComActNeighborCircleWestDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 发布人id
+     */
+    private Long releaseId;
+
+    /**
+     * 发布人电话
+     */
+    private String releasePhone;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 发布内容
+     */
+    private String releaseContent;
+
+    /**
+     * 发布图片
+     */
+    private String releaseImages;
+
+    /**
+     * 发布状态(1.待审核 2.显示 3.隐藏 4.驳回)
+     */
+    private Integer status;
+
+    /**
+     * 驳回原因
+     */
+    private String refuseReason;
+
+    /**
+     * 评论数
+     */
+    private Integer commentNum;
+
+    /**
+     * 点赞数
+     */
+    private Integer fabulousNum;
+
+    /**
+     * 转发数
+     */
+    private Integer forwardNum;
+
+    /**
+     * 浏览量
+     */
+    private Integer viewsNum;
+
+    /**
+     * 是否为精品帖(1.是 2.否)
+     */
+    private Integer isBoutique;
+
+    /**
+     * 发布时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 最后回复时间
+     */
+    private Date replyAt;
+
+    /**
+     * 近3天评论数
+     */
+    private Integer lastCommentNum;
+
+    /**
+     * 近3天评论数
+     */
+    private Integer lastFabulousNum;
+
+    /**
+     * 近3天评论数
+     */
+    private Integer lastViewsNum;
+
+    /**
+     * 话题id
+     */
+    private Long topicId;
+
+    /**
+     * 发布类型(1.小程序发布 2.后台发布)
+     */
+    private Integer type;
+
+    /**
+     * 热度
+     */
+    private Long hotNum;
+
+    /**
+     * 是否已删除(1.是   2.否)
+     */
+    private Integer isDel;
+
+    /**
+     * 使用类型(1.邻里圈 2.问题清单 3.需求清单)
+     */
+    private Integer belongType;
+
+    private Integer solveStatus;
+
+    private Integer orderStatus;
+
+    private Long solveId;
+
+    private String solveContent;
+
+    private String solveUrl;
+
+    private Date orderTime;
+
+    private Date solveTime;
+
+    private Date commentTime;
+
+    private String comment;
+
+    private Integer orderType;
+
+    private Integer helpMemberType;
+
+    private String helpMemberContent;
+
+    private Integer helpOrgType;
+
+    private String helpOrgContent;
+
+    private Long solveUnitId;
+
+    private String realServiceTime;
+
+    private String targetServiceTime;
+
+    @Override
+    public String toString() {
+        return "ComActNeighborCircleDO{" + "id=" + id + ", releaseId=" + releaseId + ", releasePhone=" + releasePhone
+            + ", communityId=" + communityId + ", releaseContent=" + releaseContent + ", releaseImages=" + releaseImages
+            + ", status=" + status + ", refuseReason=" + refuseReason + ", commentNum=" + commentNum + ", fabulousNum="
+            + fabulousNum + ", forwardNum=" + forwardNum + ", isBoutique=" + isBoutique + ", createAt=" + createAt
+            + "}";
+    }
+
+    /**
+     * 发布状态(1.待审核 2.显示 3.隐藏 4.驳回)
+     */
+    public interface status {
+        int dsh = 1;
+        int xs = 2;
+        int yc = 3;
+        int bh = 4;
+    }
+
+    /**
+     * 发布类型(1.小程序发布 2.后台发布)
+     */
+    public interface type {
+        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/ComActQuestnaireAnswerContentDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireAnswerContentDO.java
new file mode 100644
index 0000000..823a6a8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireAnswerContentDO.java
@@ -0,0 +1,50 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import lombok.Data;
+
+/**
+ * @Author: llming
+ * @Description: 问卷回答记录内容
+ */
+@Data
+@TableName(value = "com_act_questnaire_answer_content")
+public class ComActQuestnaireAnswerContentDO extends BaseDO implements Serializable {
+    private static final long serialVersionUID = 7648337436253280726L;
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 问卷回答选项
+     */
+    private String choice;
+    /**
+     * 问卷回答内容
+     */
+    private String answerContent;
+    /**
+     * 问卷题目ID
+     */
+    private Long subId;
+    /**
+     * 用户Id
+     */
+    private Long userId;
+
+    /**
+     * 题目类型 (1.选项题 2.问答题)
+     */
+    private Integer type;
+    /**
+     * 题目选项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/ComActQuestnaireDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireDO.java
new file mode 100644
index 0000000..ae0cc9c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireDO.java
@@ -0,0 +1,141 @@
+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 lombok.Data;
+
+/**
+ * @Author: llming
+ * @Description:调查问卷 问卷表
+ */
+@Data
+@TableName(value = "com_act_questnaire")
+public class ComActQuestnaireDO extends BaseDO implements Serializable {
+    private static final long serialVersionUID = 4525826123672211880L;
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 标题
+     */
+    private String title;
+    /**
+     * 问题描述
+     */
+    private String queDescribe;
+    /**
+     * 状态 1待发布 2调研中 3已结束
+     */
+    private Integer state;
+    /**
+     * 参与人数
+     */
+    private Integer joinCount;
+    /**
+     * 社区ID
+     */
+    private Long communityId;
+
+    /**
+     * 提供居民
+     */
+    private Integer forMasses;
+    /**
+     * 提供党员
+     */
+    private Integer forParty;
+    /**
+     * 提供志愿者
+     */
+    private Integer forVolunteer;
+
+    /**
+     * 是否隐藏显示 0 显示 1 隐藏
+     */
+    private Integer isHide;
+
+    /**
+     * 调研开始时间
+     */
+    private Date startTime;
+
+    /**
+     * 调研结束时间
+     */
+    private Date endTime;
+
+    /**
+     * 问卷调查备注(应用名称)
+     */
+    private String remark;
+
+    /**
+     * 是否是封面(1.是 2.否)
+     */
+    private Integer isCover;
+
+    /**
+     * 是否强制调研(1.是 2.否)
+     */
+    private Integer isForce;
+
+    /**
+     * 广告弹窗(1.是 2.否 )
+     */
+    private Integer adverPositionPopup;
+
+    /**
+     * 广告顶部(1.是 2.否)
+     */
+    private Integer adverPositionTop;
+
+    /**
+     * 广告应用(1.是 2.否)
+     */
+    private Integer adverPositionApplication;
+
+    /**
+     * 组件唯一key
+     */
+    private String projectKey;
+
+    /**
+     * 填报项数量
+     */
+    private Integer count;
+
+    /**
+     * 浏览量
+     */
+    private Long viewNum;
+    /**
+     * 发布时间
+     */
+    private Date publishTime;
+    /**
+     * 组件json数据
+     */
+    private String jsonObject;
+
+    /**
+     * 默认是否枚举
+     */
+    public interface isOk {
+        int yes = 1;
+        int no = 2;
+    }
+
+    /**
+     * 状态 1待发布 2调研中 3已结束
+     */
+    public interface state {
+        int dfb = 1;
+        int dyz = 2;
+        int yjs = 3;
+    }
+
+}
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
new file mode 100644
index 0000000..0a89bd8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireSubDO.java
@@ -0,0 +1,62 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+
+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;
+
+/**
+ * @Author: llming
+ * @Description: 问卷题目
+ */
+@Data
+@TableName(value = "com_act_questnaire_sub")
+public class ComActQuestnaireSubDO extends BaseDO implements Serializable {
+    private static final long serialVersionUID = 914683789736719693L;
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 类型 0 单选  1 多选 2 输入框 2姓名输入框 3 手机号 4 身份证 5 文字描述 6 日期选择
+     */
+    private Integer type;
+    /**
+     * 题目内容
+     */
+    private String content;
+    /**
+     * 序号
+     */
+    private int sort;
+    /**
+     * 调查问卷Id
+     */
+    private Long queId;
+
+    /**
+     * 问卷调查题目key
+     */
+    @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
new file mode 100644
index 0000000..eabd962
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireSubSelectionDO.java
@@ -0,0 +1,61 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+
+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;
+
+/**
+ * @Author: llming
+ * @Description: 问卷题目选项
+ */
+@Data
+@TableName(value = "com_act_questnaire_sub_selection")
+public class ComActQuestnaireSubSelectionDO extends BaseDO implements Serializable {
+    private static final long serialVersionUID = -2083705916360506830L;
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 问卷题目Id
+     */
+    private Long queSubId;
+    /**
+     * 选项排序
+     */
+    private Integer sort;
+    /**
+     * 选项内容
+     */
+    private String content;
+
+    /**
+     * 选项名
+     */
+    private String optionName;
+
+    /**
+     * 选项类型 0 固定选项 1 自定义选项
+     */
+    private Integer type;
+
+    /**
+     * 问卷调查Id
+     */
+    private Long queId;
+
+    /**
+     * 问卷调查选项key
+     */
+    @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/ComActQuestnaireUserAnswerDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireUserAnswerDO.java
new file mode 100644
index 0000000..48bb5db
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActQuestnaireUserAnswerDO.java
@@ -0,0 +1,55 @@
+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 lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-08-17 17:42:06
+ * @describe 问卷调查用户答题记录实体类
+ */
+
+@Data
+@TableName("com_act_questnaire_user_answer")
+public class ComActQuestnaireUserAnswerDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 调查问卷id
+     */
+    private Long questnaireId;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+
+    /**
+     * 用户答题json数据
+     */
+    private String jsonObject;
+
+    @Override
+    public String toString() {
+        return "ComActQuestnaireUserAnswerDO{" + "id=" + id + ", questnaireId=" + questnaireId + ", userId=" + userId
+            + ", createAt=" + createAt + ", jsonObject=" + jsonObject + "}";
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActReserveAnswerContentDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActReserveAnswerContentDO.java
new file mode 100644
index 0000000..a36ccb0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActReserveAnswerContentDO.java
@@ -0,0 +1,101 @@
+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;
+
+
+/**
+ * @auther lyq
+ * @create 2021-08-23 10:33:32
+ * @describe 预约登记回答记录内容 实体类
+ */
+
+@Data
+@TableName("com_act_reserve_answer_content")
+public class ComActReserveAnswerContentDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 预约登记题目id
+     */
+    private Long reserveSubId;
+
+    /**
+     * 预约登记记录id
+     */
+    private Long reserveRecordId;
+
+    /**
+     * 预约登记题目选项id
+     */
+    private Long reserveSelectionId;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 题目类型(1.选项题 2.问答题)
+     */
+    private Integer type;
+
+    /**
+     * 问卷回答选项
+     */
+    private String choice;
+
+    /**
+     * 问卷回答内容
+     */
+    private String answerContent;
+
+    /**
+     * 创建人
+     */
+    private Long createBy;
+
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+
+    /**
+     * 更新人
+     */
+    private String updateBy;
+
+    /**
+     * 更新时间
+     */
+    private Date updateAt;
+
+    @Override
+    public String toString() {
+        return "ComActReserveAnswerContentDO{" +
+                "id=" + id +
+                ", reserveSubId=" + reserveSubId +
+                ", reserveSelectionId=" + reserveSelectionId +
+                ", userId=" + userId +
+                ", type=" + type +
+                ", choice=" + choice +
+                ", answerContent=" + answerContent +
+                ", createBy=" + createBy +
+                ", createAt=" + createAt +
+                ", updateBy=" + updateBy +
+                ", 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/ComActReserveDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActReserveDO.java
new file mode 100644
index 0000000..1a6c1d8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActReserveDO.java
@@ -0,0 +1,180 @@
+package com.panzhihua.service_community.model.dos;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * @auther lyq
+ * @create 2021-08-23 10:33:11
+ * @describe 预约登记表实体类
+ */
+
+@Data
+@TableName("com_act_reserve")
+public class ComActReserveDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_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;
+
+    /**
+     * 发布时间
+     */
+    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;
+
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+
+    /**
+     * 创建人
+     */
+    private Long createBy;
+
+    /**
+     * 修改时间
+     */
+    private Date updateAt;
+
+    /**
+     * 修改人
+     */
+    private Long updateBy;
+
+    /**
+     * 结束时间
+     */
+    @TableField(value = "end_time", updateStrategy  = FieldStrategy.IGNORED)
+    private Date endTime;
+
+    /**
+     * 是否已删除(1.是 2.否)
+     */
+    private Integer isDel;
+
+    /**
+     * 默认是否枚举(1.是 2.否)
+     */
+    public interface isOk{
+        int yes = 1;
+        int no = 2;
+    }
+
+    /**
+     * 预约登记状态枚举(1.待发布 2.进行中 3.已停止)
+     */
+    public interface status{
+        int dfb = 1;
+        int jxz = 2;
+        int ytz = 3;
+    }
+
+    @Override
+    public String toString() {
+        return "ComActReserveDO{" +
+                "id=" + id +
+                ", communityId=" + communityId +
+                ", type=" + type +
+                ", title=" + title +
+                ", viewNum=" + viewNum +
+                ", joinAllCount=" + joinAllCount +
+                ", joinCount=" + joinCount +
+                ", imgType=" + imgType +
+                ", imgUrl=" + imgUrl +
+                ", status=" + status +
+                ", publishTime=" + publishTime +
+                ", isRepeat=" + isRepeat +
+                ", remark=" + remark +
+                ", jsonObject=" + jsonObject +
+                ", adverPositionTop=" + adverPositionTop +
+                ", adverPositionApplication=" + adverPositionApplication +
+                ", createAt=" + createAt +
+                ", createBy=" + createBy +
+                ", updateAt=" + updateAt +
+                ", updateBy=" + updateBy +
+                "}";
+    }
+    public interface isRepeat{
+        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/ComActReserveOperationRecordDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActReserveOperationRecordDO.java
new file mode 100644
index 0000000..69cf3ff
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActReserveOperationRecordDO.java
@@ -0,0 +1,123 @@
+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 com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * @auther lyq
+ * @create 2021-08-23 10:33:42
+ * @describe 预约登记操作记录表实体类
+ */
+
+@Data
+@TableName("com_act_reserve_operation_record")
+public class ComActReserveOperationRecordDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 预约登记id
+     */
+    private Long reserveId;
+
+    /**
+     * 预约登记记录id
+     */
+    private Long reserveRecordId;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 类型(1.本人操作 2.社区操作)
+     */
+    private Integer type;
+
+    /**
+     * 操作人手机号
+     */
+    private String phone;
+
+    /**
+     * 操作时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date reserveTime;
+
+    /**
+     * 操作内容
+     */
+    private String reserveContent;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 状态(1.提交 2.预约成功 3.预约失败 4.取消)
+     */
+    private Integer status;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    /**
+     * 创建人
+     */
+    private Long createBy;
+
+    @Override
+    public String toString() {
+        return "ComActReserveOperationRecordDO{" +
+                "id=" + id +
+                ", reserveId=" + reserveId +
+                ", reserveRecordId=" + reserveRecordId +
+                ", userId=" + userId +
+                ", type=" + type +
+                ", phone=" + phone +
+                ", reserveTime=" + reserveTime +
+                ", reserveContent=" + reserveContent +
+                ", remark=" + remark +
+                ", status=" + status +
+                ", createAt=" + createAt +
+                ", createBy=" + createBy +
+                "}";
+    }
+
+    /**
+     * 1本人 2社区
+     */
+    public interface type{
+        int br=1;
+        int sq=2;
+    }
+    /**
+     * 状态(1.提交 2.预约成功 3.预约失败 4.取消)
+     */
+    public interface status{
+        int ytj=1;
+        int cg=2;
+        int sb=3;
+        int qx=4;
+    }
+
+}
\ No newline at end of file
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
new file mode 100644
index 0000000..4456faf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActReserveRecordDO.java
@@ -0,0 +1,157 @@
+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 com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * @auther lyq
+ * @create 2021-08-23 10:33:53
+ * @describe 预约登记记录表实体类
+ */
+
+@Data
+@TableName("com_act_reserve_record")
+public class ComActReserveRecordDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 预约登记id
+     */
+    private Long reserveId;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 类型(1.预约 2.登记)
+     */
+    private Integer type;
+
+    /**
+     * 提交人名称
+     */
+    private String name;
+
+    /**
+     * 提交人手机号
+     */
+    private String phone;
+
+    /**
+     * 状态(1.待处理 2.预约成功 3.预约失败 4.已取消)
+     */
+    private Integer status;
+
+    /**
+     * 内容
+     */
+    private String content;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 社区备注
+     */
+    private String actRemark;
+
+    /**
+     * 预约时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date reserveTime;
+
+    /**
+     * 用户填报json数据
+     */
+    private String jsonObject;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    /**
+     * 创建人
+     */
+    private Long createBy;
+
+    /**
+     * 修改时间
+     */
+    private Date updateAt;
+
+    /**
+     * 修改人
+     */
+    private Long updateBy;
+
+    /**
+     * 处理人id
+     */
+    private Long handleId;
+
+    @Override
+    public String toString() {
+        return "ComActReserveRecordDO{" +
+                "id=" + id +
+                ", userId=" + userId +
+                ", reserveId=" + reserveId +
+                ", communityId=" + communityId +
+                ", type=" + type +
+                ", name=" + name +
+                ", phone=" + phone +
+                ", status=" + status +
+                ", content=" + content +
+                ", remark=" + remark +
+                ", actRemark=" + actRemark +
+                ", reserveTime=" + reserveTime +
+                ", jsonObject=" + jsonObject +
+                ", createAt=" + createAt +
+                ", createBy=" + createBy +
+                ", updateAt=" + updateAt +
+                ", updateBy=" + updateBy +
+                "}";
+    }
+
+    /**
+     * 状态(1.待处理 2.预约成功 3.预约失败 4.已取消)
+     */
+    public interface status{
+        int dcl = 1;
+        int cg = 2;
+        int sb = 3;
+        int yqx = 4;
+    }
+    /**
+     * 类型(1.预约 2.登记)
+     */
+    public interface type{
+        int yy=1;
+        int dj=2;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActReserveSubDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActReserveSubDO.java
new file mode 100644
index 0000000..d377669
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActReserveSubDO.java
@@ -0,0 +1,92 @@
+package com.panzhihua.service_community.model.dos;
+
+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;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * @auther lyq
+ * @create 2021-08-23 10:34:03
+ * @describe 预约登记题目选项实体类
+ */
+
+@Data
+@TableName("com_act_reserve_sub")
+public class ComActReserveSubDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 预约登记id
+     */
+    private Long reserveId;
+
+    /**
+     * 序号
+     */
+    private Integer sort;
+
+    /**
+     * 类型 0 单选  1 多选 2 输入框 2姓名输入框 3 手机号 4 身份证 5 文字描述 6 日期选择
+     */
+    private Integer type;
+
+    /**
+     * 问卷调查题目key
+     */
+    @TableField("`key`")
+    private String key;
+
+    /**
+     * 题目内容
+     */
+    private String content;
+
+    /**
+     * 创建人
+     */
+    private Long createBy;
+
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+
+    /**
+     * 更新人
+     */
+    private Long updateBy;
+
+    /**
+     * 更新时间
+     */
+    private Date updateAt;
+
+    @Override
+    public String toString() {
+        return "ComActReserveSubDO{" +
+                "id=" + id +
+                ", reserveId=" + reserveId +
+                ", sort=" + sort +
+                ", type=" + type +
+                ", key=" + key +
+                ", content=" + content +
+                ", createBy=" + createBy +
+                ", createAt=" + createAt +
+                ", updateBy=" + updateBy +
+                ", 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/ComActReserveSubSelectionDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActReserveSubSelectionDO.java
new file mode 100644
index 0000000..8e0296b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActReserveSubSelectionDO.java
@@ -0,0 +1,109 @@
+package com.panzhihua.service_community.model.dos;
+
+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;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * @auther lyq
+ * @create 2021-08-23 10:34:13
+ * @describe 预约登记题目选项 实体类
+ */
+
+@Data
+@TableName("com_act_reserve_sub_selection")
+public class ComActReserveSubSelectionDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 预约登记id
+     */
+    private Long reserveId;
+
+    /**
+     * 预约登记题目id
+     */
+    private Long reserveSubId;
+
+    /**
+     * 预约登记选项key
+     */
+    @TableField("`key`")
+    private String key;
+
+    /**
+     * 选项类型 0 固定选项 1 自定义选项
+     */
+    private Integer type;
+
+    /**
+     * 排序
+     */
+    private Integer sort;
+
+    /**
+     * 选项名
+     */
+    private String optionName;
+
+    /**
+     * 选项内容
+     */
+    private String content;
+
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+
+    /**
+     * 创建人
+     */
+    private Long createBy;
+
+    /**
+     * 更新时间
+     */
+    private Date updateAt;
+
+    /**
+     * 更新人
+     */
+    private Long updateBy;
+
+    /**
+     * 组件文件上传保存路径
+     */
+    private String url;
+
+    @Override
+    public String toString() {
+        return "ComActReserveSubSelectionDO{" +
+                "id=" + id +
+                ", reserveId=" + reserveId +
+                ", reserveSubId=" + reserveSubId +
+                ", key=" + key +
+                ", type=" + type +
+                ", sort=" + sort +
+                ", optionName=" + optionName +
+                ", content=" + content +
+                ", createAt=" + createAt +
+                ", createBy=" + createBy +
+                ", updateAt=" + updateAt +
+                ", updateBy=" + updateBy +
+                "}";
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActUserWalletChangeDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActUserWalletChangeDO.java
new file mode 100644
index 0000000..7e4e945
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActUserWalletChangeDO.java
@@ -0,0 +1,94 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-06-25 10:35:34
+ * @describe 用户钱包资产变动记录表实体类
+ */
+
+@Data
+@TableName("com_act_user_wallet_change")
+public class ComActUserWalletChangeDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 收益金额变动前
+     */
+    private BigDecimal incomeAmountTop;
+
+    /**
+     * 收益金额变动后
+     */
+    private BigDecimal incomeAmountBack;
+
+    /**
+     * 可用金额变动前
+     */
+    private BigDecimal availableAmountTop;
+
+    /**
+     * 可用金额变动后
+     */
+    private BigDecimal availableAmountBack;
+
+    /**
+     * 已结算金额变动前
+     */
+    private BigDecimal settlementAmountTop;
+
+    /**
+     * 已结算金额变动后
+     */
+    private BigDecimal settlementAmountBack;
+
+    /**
+     * 交易记录id
+     */
+    private Long serviceId;
+
+    /**
+     * 变动时间
+     */
+    private Date createAt;
+
+    /**
+     * 钱包id
+     */
+    private Long walletId;
+
+    @Override
+    public String toString() {
+        return "ComActUserWalletChangeDO{" + "id=" + id + ", userId=" + userId + ", communityId=" + communityId
+            + ", incomeAmountTop=" + incomeAmountTop + ", incomeAmountBack=" + incomeAmountBack
+            + ", availableAmountTop=" + availableAmountTop + ", availableAmountBack=" + availableAmountBack
+            + ", settlementAmountTop=" + settlementAmountTop + ", settlementAmountBack=" + settlementAmountBack
+            + ", serviceId=" + serviceId + ", createAt=" + createAt + "}";
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActUserWalletDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActUserWalletDO.java
new file mode 100644
index 0000000..d6fc62c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActUserWalletDO.java
@@ -0,0 +1,77 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-06-25 10:35:11
+ * @describe 用户钱包表实体类
+ */
+
+@Data
+@TableName("com_act_user_wallet")
+public class ComActUserWalletDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 收益总金额
+     */
+    private BigDecimal incomeAmount;
+
+    /**
+     * 可用金额
+     */
+    private BigDecimal availableAmount;
+
+    /**
+     * 结算金额
+     */
+    private BigDecimal settlementAmount;
+
+    /**
+     * 累计参加随手拍次数
+     */
+    private Integer easyCount;
+
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+
+    /**
+     * 上次金额变动时间
+     */
+    private Date updateAt;
+
+    @Override
+    public String toString() {
+        return "ComActUserWalletDO{" + "id=" + id + ", userId=" + userId + ", communityId=" + communityId
+            + ", incomeAmount=" + incomeAmount + ", availableAmount=" + availableAmount + ", settlementAmount="
+            + settlementAmount + ", easyCount=" + easyCount + ", 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/ComActUserWalletTradeDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActUserWalletTradeDO.java
new file mode 100644
index 0000000..97a2b57
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActUserWalletTradeDO.java
@@ -0,0 +1,103 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-06-25 10:35:22
+ * @describe 用户钱包交易记录表实体类
+ */
+
+@Data
+@TableName("com_act_user_wallet_trade")
+public class ComActUserWalletTradeDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 交易业务id
+     */
+    private Long serviceId;
+
+    /**
+     * 交易金额
+     */
+    private BigDecimal amount;
+
+    /**
+     * 交易类型(1.发布随手拍 2.结算)
+     */
+    private Integer type;
+
+    /**
+     * 交易备注
+     */
+    private String remark;
+
+    /**
+     * 交易时间
+     */
+    private Date createAt;
+
+    /**
+     * 操作人id
+     */
+    private Long createBy;
+
+    /**
+     * 钱包id
+     */
+    private Long walletId;
+
+    /**
+     * 变动类型(1.增加 2.减少)
+     */
+    private Integer changeType;
+
+    @Override
+    public String toString() {
+        return "ComActUserWalletTradeDO{" + "id=" + id + ", userId=" + userId + ", communityId=" + communityId
+            + ", serviceId=" + serviceId + ", amount=" + amount + ", type=" + type + ", remark=" + remark
+            + ", createAt=" + createAt + ", createBy=" + createBy + "}";
+    }
+
+    /**
+     * 交易类型(1.发布随手拍 2.结算)
+     */
+    public interface type {
+        int fb = 1;
+        int js = 2;
+    }
+
+    /**
+     * 变动类型(1.增加 2.减少)
+     */
+    public interface changeType {
+        int add = 1;
+        int reduce = 2;
+    }
+}
\ No newline at end of file
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..5071f35
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActWorkGuideClassifyDO.java
@@ -0,0 +1,52 @@
+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.ASSIGN_ID)
+    private Long id;
+
+    /**
+    * 分类名称
+    */
+    private String classifyName;
+
+    /**
+     * 图标地址
+     */
+    private String pictureUrl;
+
+    /**
+    * 创建时间
+    */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+    * 系统预置:1-是 0-否
+    */
+    private Integer sysFlag;
+
+    private String areaCode;
+}
\ 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
new file mode 100644
index 0000000..cf7e5fd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActWorkGuideDO.java
@@ -0,0 +1,58 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+
+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;
+
+/**
+ * @auther llming
+ * @describe: 办事指南
+ */
+@Data
+@TableName(value = "com_act_work_guide")
+public class ComActWorkGuideDO extends BaseDO implements Serializable {
+    /** 自增 id */
+    @TableId(type = IdType.ASSIGN_ID)
+    private String id;
+    /**
+     * 办事指南标题
+     */
+    private String title;
+    /**
+     * 办事指南内容
+     */
+    private String content;
+    /**
+     * 办事指南分类
+     */
+    private String classify;
+    /**
+     * 办理时间
+     */
+    private String timeAt;
+    /**
+     * 办理地点
+     */
+    private String address;
+    /**
+     * 咨询电话
+     */
+    private String phone;
+    /**
+     * 经度
+     */
+    @TableField("`lon`")
+    private String lon;
+    /**
+     * 纬度
+     */
+    @TableField("`lat`")
+    private String lat;
+
+    private String areaCode;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActWorkGuideMaterialDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActWorkGuideMaterialDO.java
new file mode 100644
index 0000000..96bb4c6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComActWorkGuideMaterialDO.java
@@ -0,0 +1,29 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import lombok.Data;
+
+/**
+ * @auther llming
+ * @describe: 办事指南材料
+ */
+@Data
+@TableName(value = "com_act_work_guide_material")
+public class ComActWorkGuideMaterialDO implements Serializable {
+    /** 自增 id */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 申报材料名称
+     */
+    private String materialName;
+    /**
+     * 办事指南id
+     */
+    private String workGuideId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComClusterOrganizationDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComClusterOrganizationDO.java
new file mode 100644
index 0000000..0ba59f1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComClusterOrganizationDO.java
@@ -0,0 +1,107 @@
+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-23 16:38:57
+ * describe 群团组织表实体类
+ */
+
+@Data
+@TableName("com_cluster_organization")
+public class ComClusterOrganizationDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 组织名称
+     */
+    private String name;
+
+    /**
+     * 联系电话
+     */
+    private String phone;
+
+    /**
+     * 详细地址
+     */
+    private String address;
+
+    /**
+     * 状态(1.启用 2.禁用)
+     */
+    private Integer status;
+
+    /**
+     * 组织logo
+     */
+    private String logo;
+
+    /**
+     * 是否删除(1.是  2.否)
+     */
+    private Integer isDel;
+
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+
+    /**
+     * 修改时间
+     */
+    private Date updateAt;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 经度
+     */
+    private String lng;
+
+    /**
+     * 纬度
+     */
+    private String lat;
+
+    /**
+     * 是否枚举(1.是  2.否)
+     */
+    public interface isOk{
+        int yes = 1;
+        int no = 2;
+    }
+
+    @Override
+    public String toString() {
+        return "ComClusterOrganizationDO{" +
+                "id=" + id +
+                ", name=" + name +
+                ", phone=" + phone +
+                ", address=" + address +
+                ", status=" + status +
+                ", logo=" + logo +
+                ", isDel=" + isDel +
+                ", 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/ComClusterOrganizationMemberDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComClusterOrganizationMemberDO.java
new file mode 100644
index 0000000..e703dd6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComClusterOrganizationMemberDO.java
@@ -0,0 +1,121 @@
+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-23 16:39:05
+ * describe 群团组织成员表实体类
+ */
+
+@Data
+@TableName("com_cluster_organization_member")
+public class ComClusterOrganizationMemberDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 所属组织id
+     */
+    private Long clusterId;
+
+    /**
+     * 组织成员姓名
+     */
+    private String name;
+
+    /**
+     * 组织成员电话
+     */
+    private String phone;
+
+    /**
+     * 组织成员住址
+     */
+    private String address;
+
+    /**
+     * 组织成员照片
+     */
+    private String imageUrl;
+
+    /**
+     * 组织成员职务
+     */
+    private String job;
+
+    /**
+     * 组织成员身份证号码
+     */
+    private String idCard;
+
+    /**
+     * 民族编号(字典表中dict_value)
+     */
+    private String nationCode;
+
+    /**
+     * 状态(1.启用 2.禁用)
+     */
+    private Integer status;
+
+    /**
+     * 是否删除(1.是 2.否)
+     */
+    private Integer isDel;
+
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+
+    /**
+     * 修改时间
+     */
+    private Date updateAt;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 是否枚举(1.是 2.否)
+     */
+    public interface isOk{
+        int yes = 1;
+        int no = 2;
+    }
+
+    @Override
+    public String toString() {
+        return "ComClusterOrganizationMemberDO{" +
+                "id=" + id +
+                ", clusterId=" + clusterId +
+                ", name=" + name +
+                ", phone=" + phone +
+                ", address=" + address +
+                ", imageUrl=" + imageUrl +
+                ", job=" + job +
+                ", idCard=" + idCard +
+                ", nationCode=" + nationCode +
+                ", status=" + status +
+                ", isDel=" + isDel +
+                ", 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/ComCorrectPopulationDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComCorrectPopulationDO.java
new file mode 100644
index 0000000..129dded
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComCorrectPopulationDO.java
@@ -0,0 +1,258 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+
+import lombok.Data;
+
+/**
+ * @auther txb
+ * @create 2021-08-10 15:57:35
+ * @describe 社区矫正人员表实体类
+ */
+
+@Data
+@TableName("com_correct_population")
+@EncryptDecryptClass
+public class ComCorrectPopulationDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 人口id
+     */
+    private Long populationId;
+
+    /**
+     * 街道id
+     */
+    private Long streetId;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 名字
+     */
+    private String name;
+
+    /**
+     * 身份证号码
+     */
+    @EncryptDecryptField
+    private String cardNo;
+
+    /**
+     * 联系电话
+     */
+    private String phone;
+
+    /**
+     * 矫正类别
+     */
+    private String correctType;
+
+    /**
+     * 矫正开始时间
+     */
+    private Date correctBegin;
+
+    /**
+     * 矫正结束时间
+     */
+    private Date correctEnd;
+
+    /**
+     * 接收方式
+     */
+    private String receiveMethod;
+
+    /**
+     * 是否累惯犯(1.是 0.否)
+     */
+    private Integer isRecidivist;
+
+    /**
+     * 四史情况
+     */
+    private String fourHistory;
+
+    /**
+     * 三涉情况
+     */
+    private String threeInvovle;
+
+    /**
+     * 是否建立矫正小组(1.是 0.否)
+     */
+    private Integer isCorrectGroup;
+
+    /**
+     * 矫正小组人员组成情况
+     */
+    private String correctGroupConstitute;
+
+    /**
+     * 矫正解除(终止)类型
+     */
+    private String correctRelieveType;
+
+    /**
+     * 是否有脱管(1.是 0.否)
+     */
+    private Integer isOutControl;
+
+    /**
+     * 脱管原因
+     */
+    private String outControlReason;
+
+    /**
+     * 脱管纠正情况
+     */
+    private String outControlCorrect;
+
+    /**
+     * 检察监督脱管情况
+     */
+    private String inspectOutControl;
+
+    /**
+     * 是否有漏管(1.是 0.否)
+     */
+    private Integer isMissControl;
+
+    /**
+     * 漏管原因
+     */
+    private String missControlReason;
+
+    /**
+     * 漏管纠正情况
+     */
+    private String missControlCorrect;
+
+    /**
+     * 检察监督漏管
+     */
+    private String inspectMissControl;
+
+    /**
+     * 奖惩情况
+     */
+    private String rewardAndPunishiment;
+
+    /**
+     * 是否重新犯罪(1.是 0.否)
+     */
+    private Integer isAgainCrime;
+
+    /**
+     * 重新犯罪名称
+     */
+    private String againCrimeName;
+
+    /**
+     * 刑罚变更执行情况
+     */
+    private String pubishmentChange;
+
+    /**
+     * 案件类别
+     */
+    private String caseType;
+
+    /**
+     * 具体罪名
+     */
+    private String specificCharge;
+
+    /**
+     * 原判刑期
+     */
+    private String originalTerm;
+
+    /**
+     * 原判刑开始日期
+     */
+    private Date originalTermBegin;
+
+    /**
+     * 原判刑结束日期
+     */
+    private Date originalTermEnd;
+
+    /**
+     * 学历
+     */
+    private String cultureLevel;
+
+    /**
+     * 社区矫正人员编号
+     */
+    private String correctPersonCode;
+
+    /**
+     * 原羁押场所
+     */
+    private String originalCustodyplace;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 创建用户
+     */
+    private Long createBy;
+
+    /**
+     * 修改时间
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateAt;
+
+    /**
+     * 修改用户
+     */
+    private Long updateBy;
+
+    @Override
+    public String toString() {
+        return "ComCorrectPopulationDO{" + "id=" + id + ", populationId=" + populationId + ", streetId=" + streetId
+            + ", communityId=" + communityId + ", name=" + name + ", cardNo=" + cardNo + ", phone=" + phone
+            + ", correctType=" + correctType + ", correctBegin=" + correctBegin + ", correctEnd=" + correctEnd
+            + ", receiveMethod=" + receiveMethod + ", isRecidivist=" + isRecidivist + ", fourHistory=" + fourHistory
+            + ", threeInvovle=" + threeInvovle + ", isCorrectGroup=" + isCorrectGroup + ", correctGroupConstitute="
+            + correctGroupConstitute + ", correctRelieveType=" + correctRelieveType + ", isOutControl=" + isOutControl
+            + ", outControlReason=" + outControlReason + ", outControlCorrect=" + outControlCorrect
+            + ", inspectOutControl=" + inspectOutControl + ", isMissControl=" + isMissControl + ", missControlReason="
+            + missControlReason + ", missControlCorrect=" + missControlCorrect + ", inspectMissControl="
+            + inspectMissControl + ", rewardAndPunishiment=" + rewardAndPunishiment + ", isAgainCrime=" + isAgainCrime
+            + ", againCrimeName=" + againCrimeName + ", pubishmentChange=" + pubishmentChange + ", caseType=" + caseType
+            + ", specificCharge=" + specificCharge + ", originalTerm=" + originalTerm + ", originalTermBegin="
+            + originalTermBegin + ", originalTermEnd=" + originalTermEnd + ", cultureLevel=" + cultureLevel
+            + ", correctPersonCode=" + correctPersonCode + ", originalCustodyplace=" + originalCustodyplace
+            + ", remark=" + remark + ", createAt=" + createAt + ", createBy=" + createBy + ", updateAt=" + updateAt
+            + ", updateBy=" + updateBy + "}";
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComCultPopulationDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComCultPopulationDO.java
new file mode 100644
index 0000000..bda74cd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComCultPopulationDO.java
@@ -0,0 +1,112 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+
+import lombok.Data;
+
+/**
+ * @auther txb
+ * @create 2021-08-10 15:58:07
+ * @describe 邪教人员表实体类
+ */
+
+@Data
+@TableName("com_cult_population")
+@EncryptDecryptClass
+public class ComCultPopulationDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 人口id
+     */
+    private Long populationId;
+
+    /**
+     * 街道id
+     */
+    private Long streetId;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 名字
+     */
+    private String name;
+
+    /**
+     * 身份证号码
+     */
+    @EncryptDecryptField
+    private String cardNo;
+
+    /**
+     * 邪教名称
+     */
+    private String cultName;
+
+    /**
+     * 基本情况(参加邪教的活动情况)
+     */
+    private String basicSituation;
+
+    /**
+     * 参加邪教时间
+     */
+    private Date joinCultDate;
+
+    /**
+     * 是否对外宣传(1.是 0.否)
+     */
+    private Integer isExternalPublicity;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 创建用户
+     */
+    private Long createBy;
+
+    /**
+     * 修改时间
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateAt;
+
+    /**
+     * 修改用户
+     */
+    private Long updateBy;
+
+    @Override
+    public String toString() {
+        return "ComCultPopulationDO{" + "id=" + id + ", populationId=" + populationId + ", streetId=" + streetId
+            + ", communityId=" + communityId + ", name=" + name + ", cardNo=" + cardNo + ", cultName=" + cultName
+            + ", basicSituation=" + basicSituation + ", joinCultDate=" + joinCultDate + ", isExternalPublicity="
+            + isExternalPublicity + ", remark=" + remark + ", createAt=" + createAt + ", createBy=" + createBy
+            + ", updateAt=" + updateAt + ", updateBy=" + updateBy + "}";
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComCvtBusinessAreaDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComCvtBusinessAreaDO.java
new file mode 100644
index 0000000..cc13af6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComCvtBusinessAreaDO.java
@@ -0,0 +1,30 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import lombok.Data;
+
+/**
+ * @description: 便民服务 商家服务范围
+ * @author: Null
+ * @date: 2021/3/11 10:48
+ */
+@Data
+@TableName(value = "com_cvt_business_area")
+public class ComCvtBusinessAreaDO implements Serializable {
+    private static final long serialVersionUID = -6760581768682304976L;
+
+    /** ID */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /** 商家ID */
+    private Long businessId;
+
+    /** 服务社区ID */
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComCvtBusinessDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComCvtBusinessDO.java
new file mode 100644
index 0000000..a2084f0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComCvtBusinessDO.java
@@ -0,0 +1,80 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @description: 便民服务 商家信息
+ * @author: Null
+ * @date: 2021/3/11 10:36
+ */
+@Data
+@TableName(value = "com_cvt_business")
+public class ComCvtBusinessDO implements Serializable {
+    private static final long serialVersionUID = -3935153251027679550L;
+    /**
+     * 商家ID
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 商家名称
+     */
+    private String name;
+
+    /**
+     * 联系人
+     */
+    private String contacts;
+
+    /**
+     * 联系方式
+     */
+    private String contactsPhone;
+
+    /**
+     * 详细地址
+     */
+    private String address;
+
+    /**
+     * 主营业务
+     */
+    private String busScope;
+
+    /**
+     * 服务范围标记:1-全攀枝花市,2-部分地区
+     */
+    private Integer areaFlag;
+
+    /**
+     * 商家logo
+     */
+    private String logo;
+
+    /**
+     * 创建人
+     */
+    private Long createBy;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    @ApiModelProperty("商家介绍媒体文件类型:1-图片 2-视频")
+    private Integer mediaType;
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComCvtBusinessIntroduceDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComCvtBusinessIntroduceDO.java
new file mode 100644
index 0000000..b2d4b52
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComCvtBusinessIntroduceDO.java
@@ -0,0 +1,30 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import lombok.Data;
+
+/**
+ * @description: 便民服务 商家介绍 图片或视频
+ * @author: Null
+ * @date: 2021/3/11 10:38
+ */
+@Data
+@TableName(value = "com_cvt_business_introduce")
+public class ComCvtBusinessIntroduceDO implements Serializable {
+    private static final long serialVersionUID = 2727023439541122421L;
+    /** 主键ID */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /** 商家ID */
+    private Long businessId;
+
+    /** 媒体文件路径 */
+    private String mediaPath;
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComCvtCategoryDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComCvtCategoryDO.java
new file mode 100644
index 0000000..a29a18b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComCvtCategoryDO.java
@@ -0,0 +1,50 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @description: 便民服务分类
+ * @author: Null
+ * @date: 2021/3/11 10:22
+ */
+@Data
+@TableName(value = "com_cvt_category")
+public class ComCvtCategoryDO implements Serializable {
+    private static final long serialVersionUID = 6973090444078148152L;
+
+    /**
+     * 分类id 自增
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 分类名称
+     */
+    private String name;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 权重
+     */
+    private Integer weight;
+
+    /**
+     * 创建人
+     */
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private String createAt;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComCvtServeDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComCvtServeDO.java
new file mode 100644
index 0000000..6350b05
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComCvtServeDO.java
@@ -0,0 +1,75 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import lombok.Data;
+
+/**
+ * @description: 便民服务列表
+ * @author: Null
+ * @date: 2021/3/11 10:52
+ */
+@Data
+@TableName(value = "com_cvt_serve")
+public class ComCvtServeDO implements Serializable {
+
+    private static final long serialVersionUID = 6641346373561429677L;
+    /**
+     * 服务主键
+     */
+    private Long id;
+
+    /**
+     * 服务名称
+     */
+    private String serviceName;
+
+    /**
+     * 服务价格
+     */
+    private BigDecimal servicePrice;
+
+    /**
+     * 服务分类ID
+     */
+    private Long categoryId;
+
+    /**
+     * 服务描述
+     */
+    private String serviceDesc;
+
+    /**
+     * 所属商家ID
+     */
+    private Long businessId;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 创建人
+     */
+    private Long createBy;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    public boolean equals(ComCvtServeDO obj) {
+        return obj.getBusinessId() == this.getBusinessId() && obj.getCategoryId() == this.getCategoryId()
+            && obj.getServiceName().equals(this.getServiceName())
+            && obj.getServicePrice().compareTo(this.getServicePrice()) == 0
+            && obj.getServiceDesc().equals(this.getServiceDesc());
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComDisabilityPopulationDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComDisabilityPopulationDO.java
new file mode 100644
index 0000000..8d1dce9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComDisabilityPopulationDO.java
@@ -0,0 +1,112 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+
+import lombok.Data;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 19:48:22
+ * @describe 实有人口导入》残疾人表实体类
+ */
+
+@Data
+@TableName("com_disability_population")
+@EncryptDecryptClass
+public class ComDisabilityPopulationDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 人口id
+     */
+    private Long populationId;
+
+    /**
+     * 街道id
+     */
+    private Long streetId;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 名字
+     */
+    private String name;
+
+    /**
+     * 身份证号码
+     */
+    @EncryptDecryptField
+    private String cardNo;
+
+    /**
+     * 联系电话
+     */
+    private String phone;
+
+    /**
+     * 办证状况
+     */
+    private String certificateSituation;
+
+    /**
+     * 残疾类别
+     */
+    private String disType;
+
+    /**
+     * 残疾等级
+     */
+    private String disLevel;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 创建用户
+     */
+    private Long createBy;
+
+    /**
+     * 修改时间
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateAt;
+
+    /**
+     * 修改用户
+     */
+    private Long updateBy;
+
+    @Override
+    public String toString() {
+        return "ComDisabilityPopulationDO{" + "id=" + id + ", populationId=" + populationId + ", streetId=" + streetId
+            + ", communityId=" + communityId + ", name=" + name + ", cardNo=" + cardNo + ", phone=" + phone
+            + ", certificateSituation=" + certificateSituation + ", disType=" + disType + ", disLevel=" + disLevel
+            + ", remark=" + remark + ", createAt=" + createAt + ", createBy=" + createBy + ", updateAt=" + updateAt
+            + ", updateBy=" + updateBy + "}";
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComDrugPopulationDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComDrugPopulationDO.java
new file mode 100644
index 0000000..7c27978
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComDrugPopulationDO.java
@@ -0,0 +1,155 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+
+import lombok.Data;
+
+/**
+ * @auther txb
+ * @create 2021-08-10 15:57:18
+ * @describe 吸毒人员表实体类
+ */
+
+@Data
+@TableName("com_drug_population")
+@EncryptDecryptClass
+public class ComDrugPopulationDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 人口id
+     */
+    private Long populationId;
+
+    /**
+     * 街道id
+     */
+    private Long streetId;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 名字
+     */
+    private String name;
+
+    /**
+     * 身份证号码
+     */
+    @EncryptDecryptField
+    private String cardNo;
+
+    /**
+     * 联系电话
+     */
+    private String phone;
+
+    /**
+     * 初次发现日期
+     */
+    private Date firstDate;
+
+    /**
+     * 管控情况
+     */
+    private String controlSituation;
+
+    /**
+     * 管控人姓名
+     */
+    private String controlPerson;
+
+    /**
+     * 管控人联系方式
+     */
+    private String controlPersonPhone;
+
+    /**
+     * 帮扶情况
+     */
+    private String helpSituation;
+
+    /**
+     * 帮扶人姓名
+     */
+    private String helpPerson;
+
+    /**
+     * 帮扶人联系方式
+     */
+    private String helpPersonPhone;
+
+    /**
+     * 吸毒原因
+     */
+    private String drugReason;
+
+    /**
+     * 吸毒后果
+     */
+    private String drugResult;
+
+    /**
+     * 有无犯罪史
+     */
+    private String haveCrime;
+
+    /**
+     * 违法犯罪情况
+     */
+    private String crimeSutiation;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 创建用户
+     */
+    private Long createBy;
+
+    /**
+     * 修改时间
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateAt;
+
+    /**
+     * 修改用户
+     */
+    private Long updateBy;
+
+    @Override
+    public String toString() {
+        return "ComDrugPopulationDO{" + "id=" + id + ", populationId=" + populationId + ", streetId=" + streetId
+            + ", communityId=" + communityId + ", name=" + name + ", cardNo=" + cardNo + ", phone=" + phone
+            + ", firstDate=" + firstDate + ", controlSituation=" + controlSituation + ", controlPerson=" + controlPerson
+            + ", controlPersonPhone=" + controlPersonPhone + ", helpSituation=" + helpSituation + ", helpPerson="
+            + helpPerson + ", helpPersonPhone=" + helpPersonPhone + ", drugReason=" + drugReason + ", drugResult="
+            + drugResult + ", haveCrime=" + haveCrime + ", crimeSutiation=" + crimeSutiation + ", remark=" + remark
+            + ", createAt=" + createAt + ", createBy=" + createBy + ", updateAt=" + updateAt + ", updateBy=" + updateBy
+            + "}";
+    }
+}
\ No newline at end of file
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..789d697
--- /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.ASSIGN_ID)
+    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..c60be5d
--- /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.ASSIGN_ID)
+    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
new file mode 100644
index 0000000..f474fbd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComEldersAuthElderlyDO.java
@@ -0,0 +1,99 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+
+import lombok.Data;
+
+/**
+ * 高龄老人库实体类
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-06-09
+ */
+@Data
+@TableName("com_elders_auth_elderly")
+@EncryptDecryptClass
+public class ComEldersAuthElderlyDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id 列: id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 名称 列: name
+     */
+    private String name;
+    /**
+     * 身份证号码 列: id_card
+     */
+    @EncryptDecryptField
+    private String idCard;
+    /**
+     * 出生年月 列: birthday
+     */
+    private String birthday;
+    /**
+     * 人员类别(1.80-89周岁 2.90-99周岁 3.100周岁(含)以上) 列: level
+     */
+    private Integer level;
+    /**
+     * 户籍地 列: domicile
+     */
+    private String domicile;
+    /**
+     * 社区id 列: community_id
+     */
+    private Long communityId;
+    /**
+     * 是否健在(1.是 2.否) 列: is_exist
+     */
+    private Integer isExist;
+    /**
+     * 是否办理高龄津贴(1.是 2.否) 列: is_big_age
+     */
+    private Integer isBigAge;
+    /**
+     * 创建时间 列: create_at
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+    /**
+     * 创建用户 列: create_by
+     */
+    private Long createBy;
+    /**
+     * 修改时间 列: update_at
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateAt;
+    /**
+     * 修改用户 列: update_by
+     */
+    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
new file mode 100644
index 0000000..cac3391
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComEldersAuthHistoryRecordDO.java
@@ -0,0 +1,143 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * 高龄老人认证记录实体类
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-06-10
+ */
+@Data
+@TableName("com_elders_auth_history_record")
+public class ComEldersAuthHistoryRecordDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id 列: id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 老人用户id 列: user_id
+     */
+    private Long userId;
+    /**
+     * 认证记录id 列:auth_id
+     */
+    private Long authId;
+    /**
+     * 名称 列: name
+     */
+    private String name;
+    /**
+     * 身份证号码 列: id_card
+     */
+    private String idCard;
+    /**
+     * 出生年月 列: brithday
+     */
+    private String brithday;
+    /**
+     * 年龄 列: age
+     */
+    private Integer age;
+    /**
+     * 户籍地 列: domicile
+     */
+    private String domicile;
+    /**
+     * 本月是否已认证(1.是 2.否) 列: is_auth
+     */
+    private Integer isAuth;
+    /**
+     * 创建时间 列: create_at
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+    /**
+     * 社区id 列:社区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;
+
+    /**
+     * 是否健在
+     */
+    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/ComEldersAuthStatisticsDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComEldersAuthStatisticsDO.java
new file mode 100644
index 0000000..aee25be
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComEldersAuthStatisticsDO.java
@@ -0,0 +1,59 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * 老人认证月统计实体类
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-06-10
+ */
+@Data
+@TableName("com_elders_auth_statistics")
+public class ComEldersAuthStatisticsDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id 列: id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 年份 列: year
+     */
+    private Integer year;
+    /**
+     * 月份 列: month
+     */
+    private Integer month;
+    /**
+     * 总人数 列: sum
+     */
+    private Integer sum;
+    /**
+     * 认证人数 列: auth_sum
+     */
+    private Integer authSum;
+    /**
+     * 未认证人数 列: no_auth_sum
+     */
+    private Integer noAuthSum;
+    /**
+     * 创建时间 列: create_at
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+    /**
+     * 社区id 列: community_id
+     */
+    private Long communityId;
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComEldersAuthUserDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComEldersAuthUserDO.java
new file mode 100644
index 0000000..b9df6ed
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComEldersAuthUserDO.java
@@ -0,0 +1,89 @@
+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;
+
+/**
+ * 用户绑定老人关系实体类
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-06-09
+ */
+@Data
+@TableName("com_elders_auth_user")
+@EncryptDecryptClass
+public class ComEldersAuthUserDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id 列: id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 用户id 列: user_id
+     */
+    private Long userId;
+    /**
+     * 与本人关系(1.父母 2.配偶 3.子女 4.兄弟姐妹 5.祖/外祖父母 6.本人 7.其他) 列: relation
+     */
+    private Integer relation;
+    /**
+     * 是否已认证(1.是 2.否) 列: is_auth
+     */
+    private Integer isAuth;
+    /**
+     * 姓名 列: name
+     */
+    private String name;
+    /**
+     * 身份证号码 列: id_card
+     */
+    @EncryptDecryptField
+    private String idCard;
+    /**
+     * 社区id 列: community_id
+     */
+    private Long communityId;
+    /**
+     * 高龄老人库id 列: big_age_id
+     */
+    private Long bigAgeId;
+    /**
+     * 创建时间 列:create_at
+     */
+    private Date createAt;
+
+    /**
+     * 是否已认证(1.是 2.否)
+     */
+    public interface isAuth {
+        int yes = 1;
+        int no = 2;
+    }
+
+    /**
+     * 与本人关系(1.父母 2.配偶 3.子女 4.兄弟姐妹 5.祖/外祖父母 6.本人 7.其他)
+     */
+    public interface relation {
+        int fm = 1;
+        int po = 2;
+        int zn = 3;
+        int xdjm = 4;
+        int zf = 5;
+        int br = 6;
+        int qt = 7;
+    }
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComExServicemanDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComExServicemanDO.java
new file mode 100644
index 0000000..c96fcfa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComExServicemanDO.java
@@ -0,0 +1,143 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+
+import lombok.Data;
+
+@Data
+@TableName(value = "com_ex_serviceman")
+public class ComExServicemanDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增 id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 用户 id
+     */
+    private Long userId;
+
+    /**
+     * 街道 id
+     */
+    private Long streetId;
+
+    /**
+     * 社区 id
+     */
+    private Long actId;
+
+    /**
+     * 0是正常1是异常 id
+     */
+    private Integer status;
+
+    /**
+     * 机构
+     */
+    private String organization;
+
+    /**
+     * 名字
+     */
+    private String name;
+
+    /**
+     * 身份证号码
+     */
+    @EncryptDecryptField
+    private String cardNo;
+
+    /**
+     * 性别
+     */
+    private String sex;
+
+    /**
+     * 出生年月
+     */
+    private String birthday;
+
+    /**
+     * 残疾人证
+     */
+    private String level;
+
+    /**
+     * 文化程度(取字典表国家编码))
+     */
+    private String cultureLevel;
+
+    /**
+     * 性别名称
+     */
+    private String sexName;
+
+    /**
+     * 联系电话
+     */
+    @EncryptDecryptField
+    private String phone;
+
+    /**
+     * 头像
+     */
+    private String image;
+
+    /**
+     * 民族
+     */
+    private String nation;
+
+    /**
+     * 残疾部位/类别
+     */
+    private String disableType;
+
+    /**
+     * 残疾界别
+     */
+    private String disableLevel;
+
+    /**
+     * 监护人联系电话
+     */
+    @EncryptDecryptField
+    private String guardianPhone;
+
+    /**
+     * 地址
+     */
+    private String address;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 创建用户
+     */
+    private Long createBy;
+
+    /**
+     * 修改时间
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateAt;
+
+    /**
+     * 修改用户
+     */
+    private Long updateBy;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComKeyPopulationDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComKeyPopulationDO.java
new file mode 100644
index 0000000..e2926d1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComKeyPopulationDO.java
@@ -0,0 +1,88 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+
+import lombok.Data;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 17:41:05
+ * @describe 实体类
+ */
+
+@Data
+@TableName("com_key_population")
+@EncryptDecryptClass
+public class ComKeyPopulationDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 人口id
+     */
+    private Long populationId;
+
+    /**
+     * 街道id
+     */
+    private Long streetId;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 名字
+     */
+    private String name;
+
+    /**
+     * 身份证号码
+     */
+    @EncryptDecryptField
+    private String cardNo;
+
+    /**
+     * 联系电话
+     */
+    private String phone;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 创建用户
+     */
+    private Long createBy;
+
+    /**
+     * 修改时间
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateAt;
+
+    /**
+     * 修改用户
+     */
+    private Long updateBy;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComLowIncomePeopleCopyDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComLowIncomePeopleCopyDO.java
new file mode 100644
index 0000000..4223b06
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComLowIncomePeopleCopyDO.java
@@ -0,0 +1,138 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+
+import lombok.Data;
+
+@Data
+@TableName(value = "com_low_income_people_copy")
+public class ComLowIncomePeopleCopyDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增 id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 用户 id
+     */
+    private Long userId;
+
+    /**
+     * 街道 id
+     */
+    private Long streetId;
+
+    /**
+     * 社区 id
+     */
+    private Long actId;
+
+    /**
+     * 月份
+     */
+    private String month;
+
+    /**
+     * 户主名字
+     */
+    private String name;
+
+    /**
+     * 性别
+     */
+    private String sex;
+
+    /**
+     * 家庭成员人数
+     */
+    private String familyMemberTotal;
+
+    /**
+     * 家庭月收入(元)
+     */
+    private String familyMonthIncome;
+
+    /**
+     * 家庭成员身份证号
+     */
+    @EncryptDecryptField
+    private String familyMemberCardNo;
+
+    /**
+     * 文化程度(取字典表国家编码))
+     */
+    private String cultureLevel;
+
+    /**
+     * 性别名称
+     */
+    private String sexName;
+
+    /**
+     * 民族
+     */
+    private String nation;
+
+    /**
+     * 身份证号码
+     */
+    @EncryptDecryptField
+    private String cardNo;
+
+    /**
+     * 联系电话
+     */
+    @EncryptDecryptField
+    private String phone;
+
+    /**
+     * 地址
+     */
+    private String address;
+
+    /**
+     * 出生年月
+     */
+    private String birthday;
+
+    /**
+     * 申请事由
+     */
+    private String applyForReason;
+
+    /**
+     * 备注
+     */
+    private String note;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 创建用户
+     */
+    private Long createBy;
+
+    /**
+     * 修改时间
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateAt;
+
+    /**
+     * 修改用户
+     */
+    private Long updateBy;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComLowSecurityPeopleDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComLowSecurityPeopleDO.java
new file mode 100644
index 0000000..cf767dc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComLowSecurityPeopleDO.java
@@ -0,0 +1,149 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+
+import lombok.Data;
+
+@Data
+@TableName(value = "com_low_security_people")
+public class ComLowSecurityPeopleDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增 id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 用户 id
+     */
+    private Long userId;
+
+    /**
+     * 街道 id
+     */
+    private Long streetId;
+
+    /**
+     * 社区 id
+     */
+    private Long actId;
+
+    /**
+     * 名字
+     */
+    private String name;
+
+    /**
+     * 性别
+     */
+    private String sex;
+
+    /**
+     * 家庭成员身份证号
+     */
+    @EncryptDecryptField
+    private String familyMemberCardNo;
+
+    /**
+     * 家庭情况
+     */
+    private String familyStatus;
+
+    /**
+     * 文化程度(取字典表国家编码))
+     */
+    private String cultureLevel;
+
+    /**
+     * 低保类别
+     */
+    private String level;
+
+    /**
+     * 性别名称
+     */
+    private String sexName;
+
+    /**
+     * 民族
+     */
+    private String nation;
+
+    /**
+     * 身份证号码
+     */
+    @EncryptDecryptField
+    private String cardNo;
+
+    /**
+     * 联系电话
+     */
+    @EncryptDecryptField
+    private String phone;
+
+    /**
+     * 地址
+     */
+    private String address;
+
+    /**
+     * 出生年月
+     */
+    private String birthday;
+
+    /**
+     * 家庭成员
+     */
+    private String familyMember;
+
+    /**
+     * 保障人数
+     */
+    private Integer securityNumber;
+
+    /**
+     * 享受低保金额(元)
+     */
+    private BigDecimal subsidiesAmount;
+
+    /**
+     * 享社保卡账号
+     */
+    private String socialSecurityCardNumber;
+
+    /**
+     * 备注
+     */
+    private String note;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 创建用户
+     */
+    private Long createBy;
+
+    /**
+     * 修改时间
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateAt;
+
+    /**
+     * 修改用户
+     */
+    private Long updateBy;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComLowSecurityPopulationDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComLowSecurityPopulationDO.java
new file mode 100644
index 0000000..e885d88
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComLowSecurityPopulationDO.java
@@ -0,0 +1,240 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+
+import lombok.Data;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 19:48:38
+ * @describe 实有人口导入》低保户人员表实体类
+ */
+
+@Data
+@TableName("com_low_security_population")
+@EncryptDecryptClass
+public class ComLowSecurityPopulationDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 人口id
+     */
+    private Long populationId;
+
+    /**
+     * 街道id
+     */
+    private Long streetId;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 名字
+     */
+    private String name;
+
+    /**
+     * 身份证号码
+     */
+    @EncryptDecryptField
+    private String cardNo;
+
+    /**
+     * 联系电话
+     */
+    private String phone;
+
+    /**
+     * 地区
+     */
+    private String region;
+
+    /**
+     * 家庭编码
+     */
+    private String familyCode;
+
+    /**
+     * 组名称
+     */
+    private String groupName;
+
+    /**
+     * 分类救助类别
+     */
+    private String classifiedRescueCategory;
+
+    /**
+     * 申请日期
+     */
+    private Date applyDate;
+
+    /**
+     * 户主姓名
+     */
+    private String houseHolderName;
+
+    /**
+     * 户主身份证
+     */
+    private String houseHolderCardNo;
+
+    /**
+     * 户主编码
+     */
+    private String houseHolderCode;
+
+    /**
+     * 居住地邮编
+     */
+    private String residencePostalCode;
+
+    /**
+     * 救助证号
+     */
+    private String salvageCertificateNo;
+
+    /**
+     * 保障人口数
+     */
+    private Integer guaranteedPopulationNumber;
+
+    /**
+     * 家庭人口数
+     */
+    private Integer familyPopulationNumber;
+
+    /**
+     * 开户人
+     */
+    private String accountPerson;
+
+    /**
+     * 开户银行
+     */
+    private String accountBank;
+
+    /**
+     * 开户人身份证号
+     */
+    private String accountCardNo;
+
+    /**
+     * 银行账号
+     */
+    private String bankAccount;
+
+    /**
+     * 供养机构
+     */
+    private String supportInstitutions;
+
+    /**
+     * 资金发放方式
+     */
+    private String distributionMethod;
+
+    /**
+     * 保障金额
+     */
+    private BigDecimal guaranteedAmount;
+
+    /**
+     * 调剂金额
+     */
+    private BigDecimal reallocationAmount;
+
+    /**
+     * 差额救助金额
+     */
+    private BigDecimal differenceReliefAmount;
+
+    /**
+     * 分类施保金额
+     */
+    private BigDecimal classifiedInsuredAmount;
+
+    /**
+     * 家庭月总收入
+     */
+    private BigDecimal totalMonthlyFamilyIncome;
+
+    /**
+     * 家庭月均收入
+     */
+    private BigDecimal averageMonthlyFamilyIncome;
+
+    /**
+     * 家庭月支出
+     */
+    private BigDecimal totalMonthlyFamilyExpenditure;
+
+    /**
+     * 经度
+     */
+    private String lng;
+
+    /**
+     * 纬度
+     */
+    private String lat;
+
+    /**
+     * 始发年月
+     */
+    private Date originateDate;
+
+    /**
+     * 护理费
+     */
+    private BigDecimal nursingFee;
+
+    /**
+     * 申请理由
+     */
+    private String applyReason;
+
+    /**
+     * 审核意见
+     */
+    private String reviewComment;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 创建用户
+     */
+    private Long createBy;
+
+    /**
+     * 修改时间
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateAt;
+
+    /**
+     * 修改用户
+     */
+    private Long updateBy;
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMajorPopulationDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMajorPopulationDO.java
new file mode 100644
index 0000000..05502cd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMajorPopulationDO.java
@@ -0,0 +1,161 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+
+import lombok.Data;
+
+/**
+ * @auther txb
+ * @create 2021-08-10 15:57:54
+ * @describe 重精人员表实体类
+ */
+
+@Data
+@TableName("com_major_population")
+@EncryptDecryptClass
+public class ComMajorPopulationDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 人口id
+     */
+    private Long populationId;
+
+    /**
+     * 街道id
+     */
+    private Long streetId;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 名字
+     */
+    private String name;
+
+    /**
+     * 身份证号码
+     */
+    @EncryptDecryptField
+    private String cardNo;
+
+    /**
+     * 经济状况
+     */
+    private String economicCondition;
+
+    /**
+     * 人员类型
+     */
+    private String personType;
+
+    /**
+     * 家庭情况
+     */
+    private String familySituation;
+
+    /**
+     * 监护人姓名
+     */
+    private String custodyPerson;
+
+    /**
+     * 与监护人关系
+     */
+    private String custodyRelation;
+
+    /**
+     * 监护人公民身份号码
+     */
+    private String custodyCardNo;
+
+    /**
+     * 监护人联系方式
+     */
+    private String custodyPersonPhone;
+
+    /**
+     * 监护人居住详址
+     */
+    private String custodyAddress;
+
+    /**
+     * 帮扶人姓名
+     */
+    private String helpPerson;
+
+    /**
+     * 帮扶人联系方式
+     */
+    private String helpPersonPhone;
+
+    /**
+     * 帮扶手段
+     */
+    private String helpMethod;
+
+    /**
+     * 帮扶情况
+     */
+    private String helpSituation;
+
+    /**
+     * 是否违法犯罪(1.是 0.否)
+     */
+    private Integer isCrime;
+
+    /**
+     * 违法犯罪情况
+     */
+    private String crimeSutiation;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 创建用户
+     */
+    private Long createBy;
+
+    /**
+     * 修改时间
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateAt;
+
+    /**
+     * 修改用户
+     */
+    private Long updateBy;
+
+    @Override
+    public String toString() {
+        return "ComMajorPopulationDO{" + "id=" + id + ", populationId=" + populationId + ", streetId=" + streetId
+            + ", communityId=" + communityId + ", name=" + name + ", cardNo=" + cardNo + ", economicCondition="
+            + economicCondition + ", personType=" + personType + ", familySituation=" + familySituation
+            + ", custodyPerson=" + custodyPerson + ", custodyRelation=" + custodyRelation + ", custodyCardNo="
+            + custodyCardNo + ", custodyPersonPhone=" + custodyPersonPhone + ", custodyAddress=" + custodyAddress
+            + ", helpPerson=" + helpPerson + ", helpPersonPhone=" + helpPersonPhone + ", helpMethod=" + helpMethod
+            + ", helpSituation=" + helpSituation + ", isCrime=" + isCrime + ", crimeSutiation=" + crimeSutiation
+            + ", createAt=" + createAt + ", createBy=" + createBy + ", updateAt=" + updateAt + ", updateBy=" + updateBy
+            + "}";
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngBuildingDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngBuildingDO.java
new file mode 100644
index 0000000..79ebe96
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngBuildingDO.java
@@ -0,0 +1,124 @@
+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 lombok.Data;
+
+/**
+ * <p>
+ * 楼栋表
+ * </p>
+ *
+ * @author xyh
+ * @since 2021-06-10
+ */
+@Data
+@TableName(value = "com_mng_building")
+public class ComMngBuildingDO implements Serializable {
+
+    private static final long serialVersionUID = 7264872297827113113L;
+
+    @TableId(value = "id", type = IdType.INPUT)
+    private Long id;
+    /**
+     * 街道Id
+     */
+    private Long streetId;
+
+    /**
+     * 社区id
+     */
+    private Long actId;
+
+    /**
+     * 小区ID
+     */
+    private Long villageId;
+
+    /**
+     * 楼栋号
+     */
+    private String name;
+
+    /**
+     * 楼层数量
+     */
+    private Integer buildFloorSum;
+
+    /**
+     * 每个楼层有多少户
+     */
+    private Integer everyFloorSum;
+
+    /**
+     * 栋楼总共有多少户
+     */
+    private Integer buildUserSum;
+
+    /**
+     * 建筑类型(高层、洋房等)
+     */
+    private String buildType;
+
+    /**
+     * 使用类型
+     */
+    private String useType;
+
+    /**
+     * 建成时间
+     */
+    private Date buildDate;
+
+    /**
+     * 单元数
+     */
+    private Integer unitTotal;
+
+    /**
+     * 电梯数
+     */
+    private Integer elevatorTotal;
+
+    /**
+     * 楼栋状态(在用、待拆迁等)
+     */
+    private Long buildStatus;
+
+    /**
+     * 层次递归字段(街道>社区>小区>楼栋)
+     */
+    private String path;
+
+    /**
+     * 经度
+     */
+    private String lng;
+
+    /**
+     * 维度
+     */
+    private String lat;
+
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+
+    /**
+     * 更新时间
+     */
+    private Date updateAt;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    private String gridId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngCarDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngCarDO.java
new file mode 100644
index 0000000..ebeb1bc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngCarDO.java
@@ -0,0 +1,67 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+
+import lombok.Data;
+
+/**
+ * @description: 车辆管理
+ * @author: Null
+ * @date: 2021/3/16 14:28
+ */
+@Data
+@TableName(value = "com_mng_car")
+public class ComMngCarDO implements Serializable {
+
+    /** 主键 */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /** 社区ID */
+    private Long communityId;
+
+    /** 小区名称 */
+    private String areaName;
+
+    /** 小区ID */
+    private Long areaId;
+
+    /** 车主姓名 */
+    private String userName;
+
+    /** 身份证号 */
+    @EncryptDecryptField
+    private String cardNo;
+
+    /** 车主用户ID */
+    private Long userId;
+
+    /** 详细住址 */
+    private String address;
+
+    /** 车主手机号码 */
+    private String mobile;
+
+    /** 车牌号 */
+    private String plateNum;
+
+    /** 车辆品牌 */
+    private String brand;
+
+    /** 车身颜色 */
+    private String color;
+
+    /** 创建时间 */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /** 创建人 */
+    private Long createBy;
+
+    /** 数据来源:1-小程序 2-后台录入 */
+    private Integer source;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngCityDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngCityDO.java
new file mode 100644
index 0000000..d9e56dc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngCityDO.java
@@ -0,0 +1,27 @@
+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;
+
+@Data
+@TableName(value = "com_mng_struct_area_city")
+public class ComMngCityDO {
+    /** 自增 id */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /** 城市名称 */
+    private String cityName;
+
+    /** 城市行政区划代码 */
+    private Integer cityAdcode;
+
+    /** 省份行政区划代码 */
+    private Integer provinceAdcode;
+
+    /** 省份 id */
+    private Long provinceId;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngDistrictDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngDistrictDO.java
new file mode 100644
index 0000000..61f7548
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngDistrictDO.java
@@ -0,0 +1,33 @@
+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;
+
+@Data
+@TableName(value = "com_mng_struct_area_district")
+public class ComMngDistrictDO {
+    /** 自增 id */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /** 区县名称 */
+    private String districtName;
+
+    /** 区县行政区划代码 */
+    private Integer districtAdcode;
+
+    /** 城市行政区划代码 */
+    private Integer cityAdcode;
+
+    /** 城市 id */
+    private Long cityId;
+
+    /** 省份行政区划代码 */
+    private Integer provinceAdcode;
+
+    /** 省份 id */
+    private Long provinceId;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationCommunityTagsDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationCommunityTagsDO.java
new file mode 100644
index 0000000..b84159f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationCommunityTagsDO.java
@@ -0,0 +1,78 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @auther txb
+ * @create 2021-08-19 14:55:29
+ * @describe 基础数据》人口社区特殊群体关系表实体类
+ */
+
+@Data
+@TableName("com_mng_population_community_tags")
+public class ComMngPopulationCommunityTagsDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 人口id
+     */
+    private Long populationId;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 标签集合(多个标签以,隔开)
+     */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private String label;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 创建用户
+     */
+    private Long createBy;
+
+    /**
+     * 修改时间
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateAt;
+
+    /**
+     * 修改用户
+     */
+    private Long updateBy;
+
+    /**
+     * 社区名字
+     */
+    @TableField(exist = false)
+    private String communityName;
+
+    @Override
+    public String toString() {
+        return "ComMngPopulationCommunityTagsDO{" + "id=" + id + ", populationId=" + populationId + ", communityId="
+            + communityId + ", label=" + label + ", createAt=" + createAt + ", createBy=" + createBy + ", updateAt="
+            + updateAt + ", updateBy=" + updateBy + "}";
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationDO.java
new file mode 100644
index 0000000..04bab5f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationDO.java
@@ -0,0 +1,334 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+
+import lombok.Data;
+
+@Data
+@TableName(value = "com_mng_population")
+@EncryptDecryptClass
+public class ComMngPopulationDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增 id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 街道id
+     */
+    private Long streetId;
+    /**
+     * 社区id
+     */
+    private Long actId;
+    /**
+     * 小区id(实有房屋id)
+     */
+    private Long villageId;
+    /**
+     * 家庭成员(姓名)
+     */
+    private String name;
+    /**
+     * 性别(1.男 2.女 3.未知)
+     */
+    private Integer sex;
+    /**
+     * 年龄
+     */
+    // private Integer age;
+
+    /**
+     * 证件类型
+     */
+    private String certificateType;
+    /**
+     * 身份证号码
+     */
+    @EncryptDecryptField
+    private String cardNo;
+
+    /**
+     * 临时用
+     */
+    private String cardNoStr;
+
+    /**
+     * 默认为身份证到期时间,可以是其他证件到期时间
+     */
+    private Date cardNoExpirationDate;
+
+    /**
+     * 街路巷
+     */
+    private String road;
+    /**
+     * 门牌号
+     */
+    private String doorNo;
+    /**
+     * 楼排号
+     */
+    private String floor;
+    /**
+     * 单元号
+     */
+    private String unitNo;
+    /**
+     * 户室(房间号)
+     */
+    private String houseNo;
+    /**
+     * 政治面貌(1.中共党员2.中共预备党员3.共青团员4.民革党员5.民盟盟员6.民建会员7.8.农工党党员9.致公党党员10.九三学社社员11.台盟盟员12.无党派人士13.群众)
+     */
+    private Integer politicalOutlook;
+    /**
+     * 工作单位/学校
+     */
+    private String workCompany;
+    /**
+     * 特殊情况
+     */
+    private String specialSituation;
+    /**
+     * 联系方式
+     */
+    @EncryptDecryptField
+    private String phone;
+    /**
+     * 外地or本地(1.本地 2.外地)
+     */
+    private Integer outOrLocal;
+    /**
+     * 户口所在地
+     */
+    private String censusRegister;
+
+    /**
+     * 人员类型(1、户籍人口2、留守人员3、外地人员4、境外人员5、流动人口6、常住人口7、暂住人口)
+     */
+    private String personType;
+
+    /**
+     * 国家code(取字典表国家标准编码)
+     */
+    private String country;
+
+    /**
+     * 离开日期(境外人员填写)
+     */
+    private Date dateOfDeparture;
+
+    /**
+     * 籍贯
+     */
+    private String nativePlace;
+
+    /**
+     * 民族code,从字典表取国家标准码
+     */
+    private String nationCode;
+
+    /**
+     * 民族
+     */
+    private String nation;
+
+    /**
+     * 是否租住(0.否 1.是)
+     */
+    private Integer isRent;
+
+    /**
+     * 文化程度(1.小学 2.初中 3.高中 4.中专 5.大专 6.本科 7.硕士 8.博士 9.其他)
+     */
+    private Integer cultureLevel;
+
+    /**
+     * 婚姻状况(1.未婚 2.已婚 3.离异 4.丧偶 5.分居 6.其他)
+     */
+    private Integer marriage;
+
+    /**
+     * 健康状况
+     */
+    private String healthy;
+
+    /**
+     * 血型
+     */
+    private String bloodType;
+
+    /**
+     * 宗教信仰
+     */
+    private String religion;
+
+    /**
+     * 职业
+     */
+    private String profession;
+
+    /**
+     * 人员状态:正常、失联、出国(取字典表)
+     */
+    private String personStatus;
+
+    /**
+     * 是否死亡 1是 、0否
+     */
+    private String death;
+
+    /**
+     * 头像图片地址
+     */
+    private String headPortrait;
+
+    /**
+     * 月收入情况
+     */
+    private String monthlyIncome;
+
+    /**
+     * 家庭情况(取字典表国家标准编码)
+     */
+    private String familyStatus;
+
+    /**
+     * 来华目的(境外人员填写)
+     */
+    private String goalInChina;
+
+    /**
+     * 出生年月日
+     */
+    private String birthday;
+
+    /**
+     * 抵达日期(境外人员填写)
+     */
+    private Date dateOfArrival;
+
+    /**
+     * 标签集合(多个标签以,隔开)
+     */
+    @TableField(fill = FieldFill.UPDATE,updateStrategy = FieldStrategy.IGNORED)
+    private String label;
+
+    /**
+     * 证件照(人面像)照片
+     */
+    private String cardPhotoFront;
+
+    /**
+     * 证件照(国徽面)照片
+     */
+    private String cardPhotoBack;
+
+    /**
+     * 户口本照片
+     */
+    private String familyBook;
+
+    /**
+     * 删除标识
+     */
+    private Integer deleteFlag;
+
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 创建用戶
+     */
+    private Long createBy;
+    /**
+     * 修改时间
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateAt;
+
+    /**
+     * 修改用戶
+     */
+    private Long updateBy;
+
+    /**
+     * 小区名字
+     */
+    @TableField(exist = false)
+    private String villageName;
+
+    /**
+     * 与户主关系(1.户主 2.配偶 3.子女 4.孙女 5.父母 6.其他)
+     */
+    // private Integer relation;
+    //
+    // private String relationStr;
+
+    /**
+     * 是否居住地
+     */
+    private String residence;
+
+    /**
+     * 居住地址
+     */
+    private String address;
+
+    /**
+     * 居住地房屋id
+     */
+    private Long houseId;
+
+    /**
+     * 性别(1.男 2.女 3.未知)
+     */
+    public interface sex {
+        int nan = 1;
+        int nv = 2;
+        int no = 3;
+    }
+
+    /**
+     * 是否租住
+     */
+    public interface isOk {
+        int yes = 1;
+        int no = 0;
+    }
+
+    /**
+     * 政治面貌
+     */
+    public interface politicalOutlook {
+        int dang = 1;
+        int tuan = 3;
+        int wu = 12;
+        int qun = 13;
+        int no = 13;
+    }
+
+    /**
+     * 外地or本地(1.本地 2.外地)
+     */
+    public interface outOrLocal {
+        int bd = 1;
+        int wd = 2;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationHouseDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationHouseDO.java
new file mode 100644
index 0000000..61f7254
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationHouseDO.java
@@ -0,0 +1,149 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-05-18 09:26:31
+ * @describe 社区管理》小区管理》实有房屋实体类
+ */
+
+@Data
+@TableName("com_mng_population_house")
+public class ComMngPopulationHouseDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 房屋地址
+     */
+    private String address;
+
+    /**
+     * 房屋编号
+     */
+    private String code;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 街路巷id
+     */
+    private String alley;
+
+    /**
+     * 门牌号
+     */
+    private String houseNum;
+
+    /**
+     * 楼排号
+     */
+    private String floor;
+    /**
+     * 单元号
+     */
+    private String unitNo;
+    /**
+     * 户室(房间号)
+     */
+    private String houseNo;
+
+    /**
+     * 房屋状态(1.自住 2.租住 3.空置 4.其他)
+     */
+    private Integer status;
+
+    /**
+     * 房屋用途(1.住宅 2.公寓 3.宿舍 4.仓库 5.其他)
+     */
+    private Integer purpose;
+
+    /**
+     * 管控状态(1.常规 2.关注 3.管控)
+     */
+    private Integer controlStatus;
+
+    /**
+     * 空户(1.是 2.否)
+     */
+    private Integer isEmpty;
+
+    /**
+     * 建筑用途
+     */
+    private String constructPurpose;
+
+    /**
+     * 建筑面积
+     */
+    private BigDecimal constructArea;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 修改时间
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateAt;
+
+    /**
+     * 小区id
+     */
+    private Long villageId;
+
+    /**
+     * 街道id
+     * 
+     * @return
+     */
+    private Long streetId;
+
+    /**
+     * 层次递归字段(省>市>区县>街道>社区>小区>详细地址)
+     */
+    private String path;
+
+    /**
+     * 楼层数
+     */
+    private Integer floorNum;
+
+    @Override
+    public String toString() {
+        return "ComMngPopulationHouseDO{" + "id=" + id + ", streetId=" + streetId + ", address=" + address + ", code="
+            + code + ", alley=" + alley + ", houseNum=" + houseNum + ", status=" + status + ", purpose=" + purpose
+            + ", controlStatus=" + controlStatus + ", isEmpty=" + isEmpty + ", constructPurpose=" + constructPurpose
+            + ", constructArea=" + constructArea + ", path=" + path + ", createAt=" + createAt + ", updateAt="
+            + updateAt + "}";
+    }
+
+    /**
+     * 房屋状态(1.自住 2.租住 3.空置 4.其他)
+     */
+    public interface status{
+        int zizhu = 1;
+        int zuzhu = 2;
+        int kongzhi = 3;
+        int qita = 4;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationHouseUserDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationHouseUserDO.java
new file mode 100644
index 0000000..2f5fd77
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngPopulationHouseUserDO.java
@@ -0,0 +1,101 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-05-18 09:26:53
+ * @describe 房屋居住信息关联表实体类
+ */
+
+@Data
+@TableName("com_mng_population_house_user")
+public class ComMngPopulationHouseUserDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 实有人口id
+     */
+    private Long populId;
+
+    /**
+     * 实有房屋id
+     */
+    private Long houseId;
+
+    /**
+     * 与户主关系(1.户主 2.配偶 3.子女 4.孙女 5.父母 6.其他)
+     */
+    private Integer relation;
+
+    /**
+     * 人和房屋关系’ (1.自住2、租住) 该字段类型改为(1.业主 2.业主家属 3.租户)
+     */
+    private Integer relationId;
+
+    /**
+     * 人和房屋关系’ (1.是、0.否)
+     */
+    private Integer residence;
+
+    /**
+     * 入住开始时间
+     */
+    private Date startAt;
+
+    /**
+     * 入住结束时间
+     */
+    private Date endAt;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 更改时间
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateAt;
+
+    @Override
+    public String toString() {
+        return "ComMngPopulationHouseUserDO{" + "id=" + id + ", populId=" + populId + ", houseId=" + houseId
+            + ", createAt=" + createAt + ", updateAt=" + updateAt + "}";
+    }
+
+    /**
+     * 与户主关系(1.户主 2.配偶 3.子女 4.孙女 5.父母 6.其他)
+     */
+    public interface relation {
+        int hz = 1;
+        int po = 2;
+        int zn = 3;
+        int sn = 4;
+        int fm = 5;
+        int qt = 6;
+    }
+
+    /**
+     * 人和房屋关系’ (1.自住2、租住) 该字段类型改为(1.业主 2.业主家属 3.租户)
+     */
+    public interface relationId {
+        int zizhu = 1;
+        int zuzhu = 2;
+        int zuhu = 3;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngProvinceDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngProvinceDO.java
new file mode 100644
index 0000000..2b18d49
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngProvinceDO.java
@@ -0,0 +1,21 @@
+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;
+
+@Data
+@TableName(value = "com_mng_struct_area_province")
+public class ComMngProvinceDO {
+    /** 自增 id */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /** 省份名称 */
+    private String provinceName;
+
+    /** 省份行政区划代码 */
+    private Integer provinceAdcode;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngRealAssetsDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngRealAssetsDO.java
new file mode 100644
index 0000000..3119db6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngRealAssetsDO.java
@@ -0,0 +1,63 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @description: 实有资产
+ * @author: Null
+ * @date: 2021/3/19 15:43
+ */
+@Data
+@TableName(value = "com_mng_real_assets")
+public class ComMngRealAssetsDO implements Serializable {
+
+    /** 主键 */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /** 社区ID */
+    private Long communityId;
+
+    /** 资产名称 */
+    private String name;
+
+    /** 分类:1-建筑类 2-公共设施类 */
+    private Integer category;
+
+    /** 建筑类型ID */
+    private Long buildTypeId;
+
+    /** 楼层类型:1-高层 2-中层 3-底层 */
+    private Integer floorType;
+
+    /** 数量 */
+    private Integer num;
+
+    /** 面积 */
+    private BigDecimal square;
+
+    /** 省份行政区划代码 */
+    private Integer provinceAdcode;
+
+    /** 城市行政区划代码 */
+    private Integer cityAdcode;
+
+    /** 区县行政区划代码 */
+    private Integer districtAdcode;
+
+    /** 详细地址 */
+    private String address;
+
+    /** 创建时间 */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /** 创建人 */
+    private Long createBy;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngRealCompanyDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngRealCompanyDO.java
new file mode 100644
index 0000000..f53648c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngRealCompanyDO.java
@@ -0,0 +1,64 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import lombok.Data;
+
+/**
+ * @description: 实有单位
+ * @author: Null
+ * @date: 2021/3/19 11:32
+ */
+@Data
+@TableName(value = "com_mng_real_company")
+public class ComMngRealCompanyDO {
+
+    /** 主键 */
+    @TableId(type = IdType.ASSIGN_ID)
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /** 社区ID */
+    private Long communityId;
+
+    /** 单位名称 */
+    private String comName;
+
+    /** 法人 */
+    private String legalPerson;
+
+    /** 负责人 */
+    private String leader;
+
+    /** 联系方式 */
+    private String contactsPhone;
+
+    /** 人员规模 */
+    private Integer scope;
+
+    /** 统一社会信用代码 */
+    private String creditCode;
+
+    /** 省份行政区划代码 */
+    private Integer provinceAdcode;
+
+    /** 城市行政区划代码 */
+    private Integer cityAdcode;
+
+    /** 区县行政区划代码 */
+    private Integer districtAdcode;
+
+    /** 详细地址 */
+    private String address;
+
+    /** 创建时间 */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /** 创建人 */
+    private Long createBy;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngStructAreaDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngStructAreaDO.java
new file mode 100644
index 0000000..c53884f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngStructAreaDO.java
@@ -0,0 +1,71 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 小区地址
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-14 16:59
+ **/
+@Data
+@TableName(value = "com_mng_struct_area")
+public class ComMngStructAreaDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 小区名称
+     */
+    private String areaName;
+
+    /**
+     * 地址详情
+     */
+    private String addressDetail;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+    /**
+     * 地址编码
+     */
+    private String areaCode;
+    /**
+     * 楼层规则 1 01 001
+     */
+    private String roleFloor;
+
+    /**
+     * 连接符 空格 或者 -
+     */
+    private String roleConnector;
+
+    /**
+     * 门牌号规则 1 01 001
+     */
+    private String roleDoor;
+
+    /**
+     * 是否累加门牌号 0 否 1 是
+     */
+    private Integer isAccumulation;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngStructAreaDistrictDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngStructAreaDistrictDO.java
new file mode 100644
index 0000000..ff6b7da
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngStructAreaDistrictDO.java
@@ -0,0 +1,58 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 区县
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-27 14:58
+ **/
+@Data
+@TableName(value = "com_mng_struct_area_district")
+public class ComMngStructAreaDistrictDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增 id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 区县名称
+     */
+    private String districtName;
+
+    /**
+     * 区县行政区划代码
+     */
+    private Integer districtAdcode;
+
+    /**
+     * 城市行政区划代码
+     */
+    private Integer cityAdcode;
+
+    /**
+     * 城市 id
+     */
+    private Long cityId;
+
+    /**
+     * 省份行政区划代码
+     */
+    private Integer provinceAdcode;
+
+    /**
+     * 省份 id
+     */
+    private Long provinceId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngStructBuildTypeDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngStructBuildTypeDO.java
new file mode 100644
index 0000000..db831c2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngStructBuildTypeDO.java
@@ -0,0 +1,36 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 其他建筑
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-14 17:04
+ **/
+@Data
+@TableName(value = "com_mng_struct_build_type")
+public class ComMngStructBuildTypeDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 建筑类型名称
+     */
+    private String name;
+    /**
+     * 社区id
+     */
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngStructHouseDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngStructHouseDO.java
new file mode 100644
index 0000000..58ef0ba
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngStructHouseDO.java
@@ -0,0 +1,66 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 房屋
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-14 17:07
+ **/
+@Data
+@TableName(value = "com_mng_struct_house")
+public class ComMngStructHouseDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 房屋地址编号
+     */
+    private String houseCode;
+
+    /**
+     * 房屋地址
+     */
+    private String houseName;
+
+    /**
+     * 父类地址编码
+     */
+    private String parentCode;
+
+    /**
+     * 地址类型 1小区 2楼栋 3 单元 4楼层 5门牌号
+     */
+    private Integer type;
+
+    /**
+     * create_at
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * update_at
+     */
+    private Date updateAt;
+
+    /**
+     * 房屋面积
+     */
+    private Double square;
+    /**
+     * 状态 1 自主 2 租住 3 商用
+     */
+    private Integer state;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngStructHouseUserDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngStructHouseUserDO.java
new file mode 100644
index 0000000..f722139
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngStructHouseUserDO.java
@@ -0,0 +1,51 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 房屋用户关系
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-15 15:13
+ **/
+@Data
+@TableName(value = "com_mng_struct_house_user")
+public class ComMngStructHouseUserDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 房屋地址编码
+     */
+    private String houseCode;
+
+    /**
+     * 绑定时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+    /**
+     * 小区地址编码
+     */
+    private String areaCode;
+    /**
+     * 身份 1租户 2房主
+     */
+    private Integer identity;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngStructOtherBuildDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngStructOtherBuildDO.java
new file mode 100644
index 0000000..aeb4577
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngStructOtherBuildDO.java
@@ -0,0 +1,66 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 其他建筑
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-14 17:21
+ **/
+@Data
+@TableName(value = "com_mng_struct_other_build")
+public class ComMngStructOtherBuildDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 建筑名称
+     */
+    private String name;
+
+    /**
+     * 建筑类型id
+     */
+    private Long typeId;
+
+    /**
+     * 面积
+     */
+    private Double square;
+
+    /**
+     * 建筑地址
+     */
+    private String address;
+
+    /**
+     * 建筑状态 1 建设中 2 使用中
+     */
+    private Integer state;
+
+    /**
+     * 楼层类型
+     */
+    private String layerType;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+    /**
+     * 社区id
+     */
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngUserTagDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngUserTagDO.java
new file mode 100644
index 0000000..9437016
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngUserTagDO.java
@@ -0,0 +1,46 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @description: 特殊群体标签
+ * @author: txb
+ * @date: 2021/7/14 10:43
+ */
+@Data
+@TableName(value = "com_mng_user_tag")
+public class ComMngUserTagDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 标签名称
+     */
+    private String tagName;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /** 创建时间 */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 系统预置:1-是 0-否
+     */
+    private Integer sysFlag;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngVaccinesDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngVaccinesDO.java
new file mode 100644
index 0000000..f377859
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngVaccinesDO.java
@@ -0,0 +1,65 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-05-19 14:17:46
+ * @describe 疫苗分类表实体类
+ */
+
+@Data
+@TableName("com_mng_vaccines")
+public class ComMngVaccinesDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 疫苗分类名称
+     */
+    private String name;
+
+    /**
+     * 疫苗分类描述
+     */
+    @TableField("`describe`")
+    private String describe;
+
+    /**
+     * 状态(1.启用 2.禁用)
+     */
+    private Integer status;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    private String areaCode;
+
+    @Override
+    public String toString() {
+        return "ComMngVaccinesDO{" + "id=" + id + ", name=" + name + ", describe=" + describe + ", status=" + status
+            + ", createAt=" + createAt + "}";
+    }
+
+    /**
+     * 状态(1.启用 2.禁用)
+     */
+    public interface status {
+        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/ComMngVaccinesEnrollRecordDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngVaccinesEnrollRecordDO.java
new file mode 100644
index 0000000..45e21dd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngVaccinesEnrollRecordDO.java
@@ -0,0 +1,103 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-05-19 14:17:53
+ * @describe 疫苗报名记录表实体类
+ */
+
+@Data
+@TableName("com_mng_vaccines_enroll_record")
+public class ComMngVaccinesEnrollRecordDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 疫苗分类id
+     */
+    private Long type;
+
+    /**
+     * 疫苗申请报名用户id
+     */
+    private Long userId;
+
+    /**
+     * 疫苗报名用户id
+     */
+    private Long familyUserId;
+
+    /**
+     * 报名时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 修改时间
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateAt;
+
+    /**
+     * 报名类型(1.小程序用户 2.小程序家庭成员)
+     */
+    private Integer familyUserType;
+
+    /**
+     * 姓名
+     */
+    private String name;
+
+    /**
+     * 年龄
+     */
+    private Integer age;
+
+    /**
+     * 手机号
+     */
+    private String phone;
+
+    /**
+     * 身份证号码
+     */
+    private String idCard;
+
+    /**
+     * 性别(1.男 2.女)
+     */
+    private Integer sex;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    @Override
+    public String toString() {
+        return "ComMngVaccinesEnrollRecordDO{" + "id=" + id + ", type=" + type + ", userId=" + userId
+            + ", familyUserId=" + familyUserId + ", createAt=" + createAt + ", updateAt=" + updateAt + "}";
+    }
+
+    /**
+     * 报名类型(1.小程序用户 2.小程序家庭成员)
+     */
+    public interface familyUserType {
+        int mini = 1;
+        int family = 2;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngVaccinesInoculationRecordDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngVaccinesInoculationRecordDO.java
new file mode 100644
index 0000000..efc9e45
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngVaccinesInoculationRecordDO.java
@@ -0,0 +1,112 @@
+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 lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-05-19 14:17:59
+ * @describe 疫苗接种记录表实体类
+ */
+
+@Data
+@TableName("com_mng_vaccines_inoculation_record")
+public class ComMngVaccinesInoculationRecordDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 疫苗类型
+     */
+    private String vaccines;
+
+    /**
+     * 接种用户id(对应家庭成员表id)
+     */
+    private Long userId;
+
+    /**
+     * 姓名
+     */
+    private String name;
+
+    /**
+     * 性别(1.男 2.女)
+     */
+    private Integer sex;
+
+    /**
+     * 年龄
+     */
+    private Integer age;
+
+    /**
+     * 手机号
+     */
+    private String phone;
+
+    /**
+     * 身份证号码
+     */
+    private String idCard;
+
+    /**
+     * 接种剂次
+     */
+    private String dosage;
+
+    /**
+     * 疫苗编号
+     */
+    private String vaccinesCode;
+
+    /**
+     * 医疗机构
+     */
+    private String medicalInstitution;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 接种时间
+     */
+    private Date inoculationAt;
+
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+
+    /**
+     * 接种用户类型(1.小程序用户 2.家庭成员用户
+     */
+    private Long userType;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    @Override
+    public String toString() {
+        return "ComMngVaccinesInoculationRecordDO{" + "id=" + id + ", vaccines=" + vaccines + ", userId=" + userId
+            + ", name=" + name + ", sex=" + sex + ", age=" + age + ", phone=" + phone + ", idCard=" + idCard
+            + ", dosage=" + dosage + ", vaccinesCode=" + vaccinesCode + ", medicalInstitution=" + medicalInstitution
+            + ", remark=" + remark + ", inoculationAt=" + inoculationAt + ", createAt=" + createAt + "}";
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngVillageDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngVillageDO.java
new file mode 100644
index 0000000..79a4cf7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngVillageDO.java
@@ -0,0 +1,94 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+
+import lombok.Data;
+
+/**
+ * @author: llming
+ * @description: 实有房屋(小区)
+ **/
+@Data
+@TableName(value = "com_mng_village")
+public class ComMngVillageDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+    /**
+     * villageId
+     */
+    @TableId(value = "village_id", type = IdType.INPUT)
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long villageId;
+    /**
+     * 街路巷
+     */
+    private String alley;
+
+    /**
+     * 门牌号
+     */
+    private String houseNum;
+    /**
+     * 小区(组)
+     */
+    private String groupAt;
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 社区id
+     */
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long communityId;
+
+    /**
+     * 街道id
+     */
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long streetId;
+
+    /**
+     * 小区类型(1.城镇 2.农村 3.未知)
+     */
+    private Integer type;
+
+    /** (城镇)小区名字 */
+    private String name;
+    /** 如果是城镇小区填写楼栋数量 */
+    private Integer buildSum;
+    /** (城镇)建筑年代 */
+    private Date buildYear;
+    /** (城镇)建筑类型 */
+    private Long buildType;
+    /** (城镇)是否存在物业公司 */
+    private String property;
+    /** (城镇)开发商 */
+    private String developers;
+    /** (城镇)小区总共居民数量/这户一共住了几口人 */
+    private Integer userSum;
+    /** 图片 */
+    private String villageImages;
+    /** 地址 */
+    private String address;
+    /** 层次递归字段(省>市>区县>街道>社区>小区) */
+    private String path;
+    /** 经度 */
+    private String lng;
+    /** 维度 */
+    private String lat;
+
+    /**
+     * 更新时间
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateAt;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngVolunteerMngDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngVolunteerMngDO.java
new file mode 100644
index 0000000..f627ad4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngVolunteerMngDO.java
@@ -0,0 +1,126 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 志愿者
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-15 09:49
+ **/
+@Data
+@TableName(value = "com_mng_volunteer_mng")
+public class ComMngVolunteerMngDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 状态:1 - 申请;2 - 通过;3 - 驳回
+     */
+    private Integer state;
+
+    /**
+     * 姓名
+     */
+    private String name;
+
+    /**
+     * 电话号码
+     */
+    private String phone;
+
+    /**
+     * 照片路径
+     */
+    private String photoPath;
+
+    /**
+     * 政治面貌:1- 党员;2 - 团员;3 - 群众
+     */
+    private Integer politicalFace;
+
+    /**
+     * 拒绝原因
+     */
+    private String rejectReson;
+
+    /**
+     * 申请原因
+     */
+    private String applyReson;
+
+    /**
+     * 居住地址
+     */
+    private String address;
+    /**
+     * 工作
+     */
+    private String job;
+    /**
+     * 年龄
+     */
+    private Integer age;
+    /**
+     * 积分
+     */
+    private Integer integral;
+    /**
+     * 社区id
+     */
+    private Long communityId;
+    /**
+     * 申请提交人ID
+     */
+    private Long submitUserId;
+    /**
+     * 身份证号
+     */
+    private String idCard;
+    /**
+     * 组织id
+     */
+    private Long orgId;
+    /**
+     * 队伍id
+     */
+    private Long teamId;
+    /**
+     * 技能id
+     */
+    private Long skillId;
+    /**
+     * 是否是在校大学生(1.是 2.否)
+     */
+    private Integer isUniversity;
+    /**
+     * 大学名称
+     */
+    private String universityName;
+    /**
+     * 所属物业公司id
+     * */
+    private Long propertyId;
+
+    /**
+     * 爱心积分
+     */
+    private String loveIntegral;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngVolunteerOrgTeam.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngVolunteerOrgTeam.java
new file mode 100644
index 0000000..f9133b5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngVolunteerOrgTeam.java
@@ -0,0 +1,53 @@
+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;
+
+/**
+ * 志愿者组织队伍表(ComMngVolunteerOrgTeam)实体类
+ *
+ * @author lyq
+ * @since 2021-10-30 15:51:23
+ */
+@Data
+@TableName("com_mng_volunteer_org_team")
+public class ComMngVolunteerOrgTeam implements Serializable {
+    private static final long serialVersionUID = 1L;
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 社区id
+     */
+    private Long communityId;
+    /**
+     * 名称
+     */
+    private String name;
+    /**
+     * 父级id,为0时则为组织,不为0则为队伍
+     */
+    private Long parentId;
+    /**
+     * 服务类型
+     */
+    private Long serviceTypeId;
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+    /**
+     * 修改时间
+     */
+    private Date updateAt;
+
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngVolunteerServiceType.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngVolunteerServiceType.java
new file mode 100644
index 0000000..7f41676
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngVolunteerServiceType.java
@@ -0,0 +1,57 @@
+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;
+
+/**
+ * 志愿者服务类型表(ComMngVolunteerServiceType)实体类
+ *
+ * @author lyq
+ * @since 2021-10-30 16:47:09
+ */
+@Data
+@TableName("com_mng_volunteer_service_type")
+public class ComMngVolunteerServiceType implements Serializable {
+    private static final long serialVersionUID = 1L;
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 社区id
+     */
+    private Long communityId;
+    /**
+     * 名称
+     */
+    private String name;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    private Long createBy;
+    /**
+     * 修改时间
+     */
+    private Date updateAt;
+    /**
+     * 修改人id
+     */
+    private Long updateBy;
+
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngVolunteerSkill.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngVolunteerSkill.java
new file mode 100644
index 0000000..2e549dd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComMngVolunteerSkill.java
@@ -0,0 +1,55 @@
+package com.panzhihua.service_community.model.dos;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 志愿者技能表(ComMngVolunteerSkill)实体类
+ *
+ * @author lyq
+ * @since 2021-10-30 16:47:36
+ */
+@Data
+public class ComMngVolunteerSkill implements Serializable {
+    private static final long serialVersionUID = -32441531233450711L;
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 社区id
+     */
+    private Long communityId;
+    /**
+     * 名称
+     */
+    private String name;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    private Long createBy;
+    /**
+     * 修改时间
+     */
+    private Date updateAt;
+    /**
+     * 修改人id
+     */
+    private Long updateBy;
+
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComOpsAccRuleDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComOpsAccRuleDO.java
new file mode 100644
index 0000000..443b7db
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComOpsAccRuleDO.java
@@ -0,0 +1,50 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 积分规则
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-28 15:56
+ **/
+@Data
+@TableName(value = "com_ops_acc_rule")
+public class ComOpsAccRuleDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增id
+     */
+    private Long id;
+
+    /**
+     * 积分功能id
+     */
+    private Integer funcId;
+
+    /**
+     * 积分项目
+     */
+    private String accItem;
+
+    /**
+     * 获得积分
+     */
+    private Integer score;
+
+    /**
+     * 每日上限
+     */
+    private Integer max;
+
+    /**
+     * 备注
+     */
+    private String appendix;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComOpsAccRuleFuncDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComOpsAccRuleFuncDO.java
new file mode 100644
index 0000000..4d5ebaa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComOpsAccRuleFuncDO.java
@@ -0,0 +1,30 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: J积分功能
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-28 16:06
+ **/
+@Data
+@TableName(value = "com_ops_acc_rule_func")
+public class ComOpsAccRuleFuncDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增id
+     */
+    private Long id;
+
+    /**
+     * 积分功能描述
+     */
+    private String desc;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComOpsAccUserDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComOpsAccUserDO.java
new file mode 100644
index 0000000..57c2fa4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComOpsAccUserDO.java
@@ -0,0 +1,47 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 积分规则用户关系
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-28 16:10
+ **/
+@Data
+@TableName(value = "com_ops_acc_user")
+public class ComOpsAccUserDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 用户id,可以关联出名称、手机、社区等信息
+     */
+    private Integer userId;
+
+    /**
+     * 积分规则id,可以关联积分功能,积分项目
+     */
+    private Integer ruleId;
+
+    /**
+     * 积分变化,可正可负
+     */
+    private Integer scoreChange;
+
+    /**
+     * 积分变化时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date changeAt;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComOpsAdvDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComOpsAdvDO.java
new file mode 100644
index 0000000..e59fcdb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComOpsAdvDO.java
@@ -0,0 +1,72 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 广告
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-28 15:37
+ **/
+@Data
+@TableName(value = "com_ops_adv")
+public class ComOpsAdvDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 广告位置id
+     */
+    private Long posId;
+
+    /**
+     * 图片路径
+     */
+    private String photoPath;
+
+    /**
+     * 链接类型:0~ 外部链接;1 ~ 内部链接
+     */
+    private Integer linkType;
+
+    /**
+     * 上架时间
+     */
+    private Date onAt;
+
+    /**
+     * 下架时间
+     */
+    private Date offAt;
+
+    /**
+     * 跳转内容id
+     */
+    private Long jumpId;
+
+    /**
+     * 跳转url地址
+     */
+    private String jumpUrl;
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+    /**
+     * 修改时间
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComOpsAdvJumpDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComOpsAdvJumpDO.java
new file mode 100644
index 0000000..2f0dae5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComOpsAdvJumpDO.java
@@ -0,0 +1,34 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 广告跳转内容
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-28 15:45
+ **/
+@Data
+@TableName(value = "com_ops_adv_jump")
+public class ComOpsAdvJumpDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    private Long id;
+
+    /**
+     * 跳转内容
+     */
+    private String jumpContent;
+    /**
+     * 是否默认 0 否 1是 默认不能删除
+     */
+    private Integer isDefault;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComOpsAdvPosDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComOpsAdvPosDO.java
new file mode 100644
index 0000000..ea99e1c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComOpsAdvPosDO.java
@@ -0,0 +1,27 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 广告位置
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-28 15:50
+ **/
+@Data
+@TableName(value = "com_ops_adv_pos")
+public class ComOpsAdvPosDO implements Serializable {
+    /**
+     * 自增id
+     */
+    private Long id;
+
+    /**
+     * 广告位置中文描述
+     */
+    private String advDesc;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComOpsHouseDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComOpsHouseDO.java
new file mode 100644
index 0000000..c9275be
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComOpsHouseDO.java
@@ -0,0 +1,156 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 房屋租售
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-22 14:48
+ **/
+@Data
+@TableName(value = "com_ops_house")
+public class ComOpsHouseDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    @ApiModelProperty(value = "主键")
+    private Long id;
+    /**
+     * 状态 0待审核 1已上架 2已驳回 3已下架
+     */
+    @ApiModelProperty(value = "状态  0待审核 1已上架 2已驳回 3已下架")
+    private Integer status;
+    /**
+     * 房屋所在社区id
+     */
+    @ApiModelProperty(value = "房屋所在社区id")
+    private Long houseCommunityId;
+    /**
+     * 房屋所在社区名字
+     */
+    @ApiModelProperty(value = "房屋所在社区名字")
+    private String houseCommunityName;
+    /**
+     * 房屋标题
+     */
+    @ApiModelProperty(value = "房屋标题")
+    private String title;
+    /**
+     * 租售类型 1 出租 2 出售
+     */
+    @ApiModelProperty(value = "租售类型 1 出租 2 出售")
+    private Integer houseType;
+    /**
+     * 租房类型 1 整租 2 合租
+     */
+    @ApiModelProperty(value = "租房类型 1 整租 2 合租")
+    private Integer rentType;
+    /**
+     * 价格
+     */
+    @ApiModelProperty(value = "价格")
+    private Double amount;
+    /**
+     * 面积
+     */
+    @ApiModelProperty(value = "面积")
+    private Integer area;
+    /**
+     * 室数量
+     */
+    @ApiModelProperty(value = "室数量")
+    private Integer brn;
+    /**
+     * 厅数量
+     */
+    @ApiModelProperty(value = "厅数量")
+    private Integer lrn;
+    /**
+     * 卫数量
+     */
+    @ApiModelProperty(value = "卫数量")
+    private Integer wcn;
+    /**
+     * 所在楼层
+     */
+    @ApiModelProperty(value = "所在楼层")
+    private Integer floor;
+    /**
+     * 总楼层
+     */
+    @ApiModelProperty(value = "总楼层")
+    private Integer totalFloor;
+    /**
+     * 朝向 0无1东2南3西4北5东南6东北7西南8西北9南北10东西
+     */
+    @ApiModelProperty(value = "朝向 0无1东2南3西4北5东南6东北7西南8西北9南北10东西")
+    private Integer orient;
+    /**
+     * 装修情况
+     */
+    @ApiModelProperty(value = "装修情况")
+    private String decoration;
+    /**
+     * 房屋简介
+     */
+    @ApiModelProperty(value = "房屋简介")
+    private String introduction;
+    /**
+     * 联系方式
+     */
+    @ApiModelProperty(value = "联系方式")
+    private String mobile;
+    /**
+     * 拒绝原因
+     */
+    @ApiModelProperty(value = "拒绝原因")
+    private String reason;
+    /**
+     * 图片地址 多个用逗号隔开
+     */
+    @ApiModelProperty(value = "图片地址 多个用逗号隔开")
+    private String photoPah;
+    /**
+     * 发布人id
+     */
+    @ApiModelProperty(value = "发布人id")
+    private Long userId;
+    /**
+     * 用户类型 1 小程序 2 运营平台 3 社区平台
+     */
+    @ApiModelProperty(value = "用户类型 1 小程序 2 运营平台 3 社区平台")
+    private Integer userType;
+    /**
+     * 社区主键
+     */
+    @ApiModelProperty(value = "社区主键")
+    private Long communityId;
+    /**
+     *
+     */
+    @ApiModelProperty(value = "")
+    private LocalDateTime approveAt;
+    /**
+     * 审核人id
+     */
+    @ApiModelProperty(value = "审核人id")
+    private Long approveBy;
+
+    /**
+     * create_at
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPbActivityDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPbActivityDO.java
new file mode 100644
index 0000000..b43a4aa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPbActivityDO.java
@@ -0,0 +1,104 @@
+package com.panzhihua.service_community.model.dos;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党员活动
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 17:54
+ **/
+@Data
+@TableName(value = "com_pb_activity")
+public class ComPbActivityDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 活动名称
+     */
+    private String name;
+
+    /**
+     * 活动地点
+     */
+    private String address;
+
+    /**
+     * 1 待发布 2 未开始 3 报名中 4 进行中 5 已结束 6 已取消
+     */
+    private Integer status;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 活动开始时间
+     */
+    private Date activityTimeBegin;
+
+    /**
+     * 活动结束时间
+     */
+    private Date activityTimeEnd;
+
+    /**
+     * 报名开始时间
+     */
+    private Date enrollTimeBegin;
+
+    /**
+     * 报名结束时间
+     */
+    private Date enrollTimeEnd;
+
+    /**
+     * 活动参入人数
+     */
+    private Integer participationNum;
+
+    /**
+     * 活动封面
+     */
+    private String cover;
+
+    /**
+     * 活动内容-富文本
+     */
+    private String richText;
+    /**
+     * 活动最低参入人数-未达到到时间自动取消
+     */
+    private Integer participationLowestNum;
+
+    /**
+     * 取消原因
+     */
+    private String cancelReason;
+
+    /**
+     * 发布人
+     */
+    private Long createBy;
+
+    /**
+     * 发布时间
+     */
+    private Date releaseTime;
+    /**
+     * 社区id
+     */
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPbMemberDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPbMemberDO.java
new file mode 100644
index 0000000..81b2c18
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPbMemberDO.java
@@ -0,0 +1,93 @@
+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;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党员
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 10:48
+ **/
+@Data
+@TableName("com_pb_member")
+public class ComPbMemberDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 党员在表中的id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 所属党组织id
+     */
+    private Long orgId;
+
+    /**
+     * 身份证号
+     */
+    private String idCard;
+
+    /**
+     * 姓名
+     */
+    private String name;
+
+    /**
+     * 头像图片路径
+     */
+    private String photoPath;
+
+    /**
+     * 入党时间
+     */
+    private Date joinTime;
+
+    /**
+     * 转正时间
+     */
+    private Date employmentTime;
+
+    /**
+     * 党员审查结果
+     */
+    private Integer auditResult;
+
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+
+    /**
+     * 修改时间
+     */
+    private Date updateAt;
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 驳回原因
+     */
+    private String refuseReason;
+
+    private String phone;
+
+    private Long checkUnitId;
+
+
+}
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..1c55118
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPensionAuthHistoryRecordDO.java
@@ -0,0 +1,176 @@
+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.ASSIGN_ID)
+    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;
+
+    /**
+     * 本期是否已认证(1.是 2.否)
+     */
+    public interface isAuth{
+        int yes = 1;
+        int no = 2;
+    }
+
+    @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..4188364
--- /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.ASSIGN_ID)
+    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 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;
+    /**
+     * 创建时间
+     */
+    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..cd2ab5d
--- /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.ASSIGN_ID)
+    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..94a6e4a
--- /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.ASSIGN_ID)
+    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/model/dos/ComPropertyPublicityDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPropertyPublicityDO.java
new file mode 100644
index 0000000..8fedbab
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComPropertyPublicityDO.java
@@ -0,0 +1,90 @@
+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 lombok.Data;
+
+/**
+ * @title: ComPropertyPublicityDO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 物业宣传实体类
+ * @author: hans
+ * @date: 2021/11/11 13:55
+ */
+@Data
+@TableName(value = "com_property_publicity")
+public class ComPropertyPublicityDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 宣传标题
+     */
+    private String title;
+
+    /**
+     * 宣传类型(0.其他 1.停水通知 2.停电通知 3.停气通知 4.物业公告 5.优秀业主
+     */
+    private Integer publicityType;
+
+    /**
+     * 其他类型自定义名称
+     */
+    private String other;
+
+    /**
+     * 封面
+     */
+    private String cover;
+
+    /**
+     * 内容形式(1.文章链接 2.自定义内容)
+     */
+    private Integer contentType;
+
+    /**
+     * 文章链接
+     */
+    private String articleUrl;
+
+    /**
+     * 自定义内容
+     */
+    private String diyContent;
+
+    /**
+     * 物业公司id
+     */
+    private Long propertyId;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 浏览量
+     */
+    private Integer viewNum;
+
+    /**
+     * 发布时间
+     */
+    private Date createdAt;
+
+    /**
+     * 更新时间
+     */
+    private Date updatedAt;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComRehabilitationPopulationDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComRehabilitationPopulationDO.java
new file mode 100644
index 0000000..606a513
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComRehabilitationPopulationDO.java
@@ -0,0 +1,203 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+
+import lombok.Data;
+
+/**
+ * @auther txb
+ * @create 2021-08-10 15:58:23
+ * @describe 实体类
+ */
+
+@Data
+@TableName("com_rehabilitation_population")
+@EncryptDecryptClass
+public class ComRehabilitationPopulationDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 人口id
+     */
+    private Long populationId;
+
+    /**
+     * 街道id
+     */
+    private Long streetId;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 名字
+     */
+    private String name;
+
+    /**
+     * 身份证号码
+     */
+    @EncryptDecryptField
+    private String cardNo;
+
+    /**
+     * 联系电话
+     */
+    private String phone;
+
+    /**
+     * 与人员关系
+     */
+    private String patientRelation;
+
+    /**
+     * 列管原因及类型
+     */
+    private String rehabReasonAndType;
+
+    /**
+     * 是否列管(1.是 0.否)
+     */
+    private Integer isRehab;
+
+    /**
+     * 是否累惯犯(1.是 0.否)
+     */
+    private Integer isRecidivist;
+
+    /**
+     * 原判刑期
+     */
+    private String originalTerm;
+
+    /**
+     * 服刑日期
+     */
+    private Date sentenceBegin;
+
+    /**
+     * 原罪名
+     */
+    private String originalCharge;
+
+    /**
+     * 释放日期
+     */
+    private Date sentenceEnd;
+
+    /**
+     * 服刑场所
+     */
+    private String sentencePlace;
+
+    /**
+     * 危险性评估
+     */
+    private String riskAssessment;
+
+    /**
+     * 衔接日期
+     */
+    private Date joinDate;
+
+    /**
+     * 衔接情况
+     */
+    private String joinSituation;
+
+    /**
+     * 是否重新犯罪(1.是 0.否)
+     */
+    private Integer isAgainCrime;
+
+    /**
+     * 重新犯罪名称
+     */
+    private String againCrimeName;
+
+    /**
+     * 安置情况
+     */
+    private String placeSituation;
+
+    /**
+     * 安置日期
+     */
+    private Date placeDate;
+
+    /**
+     * 未安置原因
+     */
+    private String notPlaceReason;
+
+    /**
+     * 帮教开始
+     */
+    private Date helpBegin;
+
+    /**
+     * 帮教结束
+     */
+    private Date helpEnd;
+
+    /**
+     * 帮教情况
+     */
+    private String helpSituation;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 创建用户
+     */
+    private Long createBy;
+
+    /**
+     * 修改时间
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateAt;
+
+    /**
+     * 修改用户
+     */
+    private Long updateBy;
+
+    @Override
+    public String toString() {
+        return "ComRehabilitationPopulationDO{" + "id=" + id + ", populationId=" + populationId + ", streetId="
+            + streetId + ", communityId=" + communityId + ", name=" + name + ", cardNo=" + cardNo + ", phone=" + phone
+            + ", patientRelation=" + patientRelation + ", rehabReasonAndType=" + rehabReasonAndType + ", isRehab="
+            + isRehab + ", isRecidivist=" + isRecidivist + ", originalTerm=" + originalTerm + ", sentenceBegin="
+            + sentenceBegin + ", originalCharge=" + originalCharge + ", sentenceEnd=" + sentenceEnd + ", sentencePlace="
+            + sentencePlace + ", riskAssessment=" + riskAssessment + ", joinDate=" + joinDate + ", joinSituation="
+            + joinSituation + ", isAgainCrime=" + isAgainCrime + ", againCrimeName=" + againCrimeName
+            + ", placeSituation=" + placeSituation + ", placeDate=" + placeDate + ", notPlaceReason=" + notPlaceReason
+            + ", helpBegin=" + helpBegin + ", helpEnd=" + helpEnd + ", helpSituation=" + helpSituation + ", remark="
+            + remark + ", createAt=" + createAt + ", createBy=" + createBy + ", updateAt=" + updateAt + ", updateBy="
+            + updateBy + "}";
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComSanshuoExpertTwoDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComSanshuoExpertTwoDO.java
new file mode 100644
index 0000000..af6551a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComSanshuoExpertTwoDO.java
@@ -0,0 +1,16 @@
+package com.panzhihua.service_community.model.dos;
+
+import com.panzhihua.service_community.entity.ComSanshuoExpert;
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+
+import java.util.List;
+
+@ApiModel("专家返回数据")
+@Data
+public class ComSanshuoExpertTwoDO {
+
+    private List<ComSanshuoExpert> comSanshuoExperts;
+
+    private List<ComSanshuoExpert> comSanshuoExpertsTwo;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComSentencePopulationDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComSentencePopulationDO.java
new file mode 100644
index 0000000..fffb09b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComSentencePopulationDO.java
@@ -0,0 +1,117 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+
+import lombok.Data;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 17:41:26
+ * @describe 实体类
+ */
+
+@Data
+@TableName("com_sentence_population")
+@EncryptDecryptClass
+public class ComSentencePopulationDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 人口id
+     */
+    private Long populationId;
+
+    /**
+     * 街道id
+     */
+    private Long streetId;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 名字
+     */
+    private String name;
+
+    /**
+     * 身份证号码
+     */
+    @EncryptDecryptField
+    private String cardNo;
+
+    /**
+     * 联系电话
+     */
+    private String phone;
+
+    /**
+     * 配偶
+     */
+    private String spouse;
+
+    /**
+     * 服刑开始时间
+     */
+    private Date sentenceBegin;
+
+    /**
+     * 服刑结束时间
+     */
+    private Date sentenceEnd;
+
+    /**
+     * 罪名
+     */
+    private String charge;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 创建用户
+     */
+    private Long createBy;
+
+    /**
+     * 修改时间
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateAt;
+
+    /**
+     * 修改用户
+     */
+    private Long updateBy;
+
+    @Override
+    public String toString() {
+        return "ComSentencePopulationDO{" + "id=" + id + ", populationId=" + populationId + ", streetId=" + streetId
+            + ", communityId=" + communityId + ", name=" + name + ", cardNo=" + cardNo + ", phone=" + phone
+            + ", spouse=" + spouse + ", sentenceBegin=" + sentenceBegin + ", sentenceEnd=" + sentenceEnd + ", charge="
+            + charge + ", remark=" + remark + ", createAt=" + createAt + ", createBy=" + createBy + ", updateAt="
+            + updateAt + ", updateBy=" + updateBy + "}";
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopCartDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopCartDO.java
new file mode 100644
index 0000000..9317e8a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopCartDO.java
@@ -0,0 +1,93 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:14
+ * @describe 购物车表实体类
+ */
+
+@Data
+@TableName("com_shop_cart")
+public class ComShopCartDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 购物车id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 商品id
+     */
+    private Long goodsId;
+
+    /**
+     * 商品名字
+     */
+    private String goodsName;
+
+    /**
+     * 店铺id
+     */
+    private Long storeId;
+
+    /**
+     * 商品规格id
+     */
+    private Long goodsAttrId;
+
+    /**
+     * 商品规格信息
+     */
+    private String goodsAttr;
+
+    /**
+     * 商品规格图
+     */
+    private String goodsAttrPic;
+
+    /**
+     * 商品数量
+     */
+    private Integer amount;
+
+    /**
+     * 商品价格
+     */
+    private BigDecimal price;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 修改时间
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateAt;
+
+    @Override
+    public String toString() {
+        return "ComShopCartDO{" + "id=" + id + ", userId=" + userId + ", goodsId=" + goodsId + ", goodsName="
+            + goodsName + ", storeId=" + storeId + ", goodsAttrId=" + goodsAttrId + ", goodsAttr=" + goodsAttr
+            + ", goodsAttrPic=" + goodsAttrPic + ", amount=" + amount + ", price=" + price + ", 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/ComShopFlowerEvaluateDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerEvaluateDO.java
new file mode 100644
index 0000000..492b367
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerEvaluateDO.java
@@ -0,0 +1,74 @@
+package com.panzhihua.service_community.model.dos;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @ClassName:  ComShopFlowerEvaluate
+ * @Author: yh
+ * @Date: 2022/11/9 16:46
+ * @Description: 评价表
+ */
+
+@TableName(value = "com_shop_flower_evaluate")
+@Data
+public class ComShopFlowerEvaluateDO  implements Serializable {
+    private static final long serialVersionUID = 1L;
+    /**
+     * ,主键
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 订单号
+     */
+    @TableField(value = "order_no")
+    private String orderNo;
+
+    /**
+     * 商品id
+     */
+    @TableField(value = "goods_id")
+    private String goodsId;
+
+    /**
+     * 评价人id
+     */
+    @TableField(value = "user_id")
+    private Long userId;
+
+    /**
+     * 评价时间
+     */
+    @TableField(value = "evaluate_time")
+    private Date evaluateTime;
+
+    /**
+     * 评价类型(5.非常满意 4.满意 3.一般 3.不满意 1.糟糕透了)
+     */
+    @TableField(value = "evaluate_type")
+    private Integer evaluateType;
+
+    /**
+     * 评价内容
+     */
+    @TableField(value = "evaluate_content")
+    private String evaluateContent;
+
+    /**
+     * 评价图片
+     */
+    @TableField(value = "evaluate_pic")
+    private String evaluatePic;
+
+    /**
+     * 创建时间
+     */
+    @TableField(value = "create_at",fill = FieldFill.INSERT)
+    private Date createAt;
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerGoodsAttrDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerGoodsAttrDO.java
new file mode 100644
index 0000000..e7f0bb3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerGoodsAttrDO.java
@@ -0,0 +1,114 @@
+package com.panzhihua.service_community.model.dos;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @auther yh
+ * @create 2022-10-21 09:36:09
+ * @describe 商品规格表实体类
+ */
+
+@Data
+@TableName("com_shop_flower_goods_attr")
+public class ComShopFlowerGoodsAttrDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 商品规格id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 商品id
+     */
+    private Long goodsId;
+
+    /**
+     * 店铺id
+     */
+    private Long storeId;
+
+    /**
+     * 商品名称
+     */
+    private String goodsName;
+
+    /**
+     * 规格名称
+     */
+    private String goodsAttrName;
+
+    /**
+     * 商品规格库存
+     */
+    private Integer stock;
+
+    /**
+     * 商品规格销量
+     */
+    private Integer sale;
+
+    /**
+     * 商品规格图
+     */
+    private String attrPic;
+
+    /**
+     * 是否是默认规格(1.是 2.否)
+     */
+    private Integer isDefault;
+
+    /**
+     * 规格价格
+     */
+    private BigDecimal price;
+
+    /**
+     * 包邮价
+     */
+    private BigDecimal freeShippingPrice;
+    /**
+     * 拼单价
+     */
+    private BigDecimal collatePrice;
+
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 修改时间
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateAt;
+
+    @Override
+    public String toString() {
+        return "ComShopFlowerGoodsAttrDO{" +
+                "id=" + id +
+                ", goodsId=" + goodsId +
+                ", storeId=" + storeId +
+                ", goodsName='" + goodsName + '\'' +
+                ", goodsAttrName='" + goodsAttrName + '\'' +
+                ", stock=" + stock +
+                ", sale=" + sale +
+                ", attrPic='" + attrPic + '\'' +
+                ", isDefault=" + isDefault +
+                ", price=" + price +
+                ", freeShippingPrice=" + freeShippingPrice +
+                ", collatePrice=" + collatePrice +
+                ", 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/ComShopFlowerGoodsDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerGoodsDO.java
new file mode 100644
index 0000000..7b47ed2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerGoodsDO.java
@@ -0,0 +1,163 @@
+package com.panzhihua.service_community.model.dos;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @auther yh
+ * @create 2022-10-21 09:36:09
+ * @describe 商品表实体类
+ */
+
+@Data
+@TableName("com_shop_flower_goods")
+public class ComShopFlowerGoodsDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 商品id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 商品分类id
+     */
+    private Long typeId;
+
+    /**
+     * 商品名称
+     */
+    @TableField("`name`")
+    private String name;
+
+    /**
+     * 店铺id
+     */
+    private Long storeId;
+
+    /**
+     * 商品主图
+     */
+    private String goodsPic;
+
+    /**
+     * 商品展示图
+     */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private String images;
+
+    /**
+     * 商品状态(1.出售中 2.已下架 3.回收站)
+     */
+    @TableField("`status`")
+    private Integer status;
+
+    /**
+     * 商品销量
+     */
+    private Integer sale;
+
+    /**
+     * 商品原价
+     */
+    private BigDecimal originalPrice;
+
+    /**
+     * 商品现价
+     */
+    private BigDecimal price;
+
+    /**
+     * 商品单位
+     */
+    private String unit;
+
+    /**
+     * 商品排序
+     */
+    @TableField("`order`")
+    private Integer order;
+
+    /**
+     * 商品总库存
+     */
+    private Integer stock;
+
+    /**
+     * 商品详情
+     */
+    private String details;
+
+    /**
+     * 商品备注
+     */
+    private String remark;
+
+    /**
+     * 商品描述
+     */
+    private String goodsDescribe;
+
+    /**
+     * 配送方式(1.自提 2.快递)
+     */
+    private String deliveryType;
+
+    /**
+     * 删除状态(1.未删除 2.已删除)
+     */
+    private Integer deleteStatus;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 修改时间
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateAt;
+
+    @Override
+    public String toString() {
+        return "ComShopGoodsDO{" + "id=" + id + ", typeId=" + typeId + ", name=" + name + ", storeId=" + storeId
+            + ", goodsPic=" + goodsPic + ", images=" + images + ", status=" + status + ", sale=" + sale
+            + ", originalPrice=" + originalPrice + ", price=" + price + ", unit=" + unit + ", order=" + order
+            + ", stock=" + stock + ", details=" + details + ", remark=" + remark + ", goodsDescribe=" + goodsDescribe
+            + ", deliveryType=" + deliveryType + ", deleteStatus=" + deleteStatus + ", createAt=" + createAt
+            + ", updateAt=" + updateAt + "}";
+    }
+
+    /**
+     * 商品状态(1.上架 2.已下架 3.回收站)
+     */
+    public interface status {
+        int sell = 1;
+        int lower = 2;
+        int recovery = 3;
+    }
+
+    /**
+     * 删除状态(1.未删除 2.已删除)
+     */
+    public interface deleteStatus {
+        int no = 1;
+        int yes = 2;
+    }
+
+    /**
+     * 配送方式(1.自提 2.快递)
+     */
+    public interface deliveryType {
+        int store = 1;
+        int express = 2;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerGoodsViewStatisticsDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerGoodsViewStatisticsDO.java
new file mode 100644
index 0000000..4caeeae
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerGoodsViewStatisticsDO.java
@@ -0,0 +1,41 @@
+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;
+
+/**
+ * @title: ComShopFlowerGoodsViewStatisticsDO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务商品浏览量统计DO
+ * @author: yh
+ * @date: 2022-11-08 17:25:45
+ */
+@Data
+@TableName(value = "com_shop_flower_goods_view_statistics")
+public class ComShopFlowerGoodsViewStatisticsDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 商家id
+     */
+    private Long goodsId;
+    /**
+     * 统计日期
+     */
+    private Date statisticDate;
+    /**
+     * 浏览量
+     */
+    private Integer viewNum;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerOrderDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerOrderDO.java
new file mode 100644
index 0000000..da9ce51
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerOrderDO.java
@@ -0,0 +1,277 @@
+package com.panzhihua.service_community.model.dos;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @ClassName:  ComShopFlowerOrder
+ * @Author: yh
+ * @Date: 2022/11/9 16:46
+ * @Description: 花城订单表
+ */
+
+@TableName(value = "com_shop_flower_order")
+@Data
+public class ComShopFlowerOrderDO  implements Serializable {
+    private static final long serialVersionUID = 1L;
+    /**
+     * 订单id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 店铺id
+     */
+    @TableField(value = "store_id")
+    private Long storeId;
+
+    /**
+     * 用户id
+     */
+    @TableField(value = "user_id")
+    private Long userId;
+
+    /**
+     * 订单号
+     */
+    @TableField(value = "order_no")
+    private String orderNo;
+
+    /**
+     * 支付单号
+     */
+    @TableField(value = "pay_no")
+    private String payNo;
+
+    /**
+     * 微信交易单号
+     */
+    @TableField(value = "wx_tarde_no")
+    private String wxTardeNo;
+
+    /**
+     * 订单状态(1.等待配送 2.配送中 3.待收货 4.待评价 5.已完成 6.已取消 7.已退款)
+     */
+    @TableField(value = "status")
+    private Integer status;
+
+    /**
+     * 支付状态(1.未支付 2.已支付)
+     */
+    @TableField(value = "pay_status")
+    private Integer payStatus;
+
+    /**
+     * 订单收货人id
+     */
+    @TableField(value = "receiver_id")
+    private Long receiverId;
+
+    /**
+     * 删除状态(1.未删除 2.已删除)
+     */
+    @TableField(value = "delete_status")
+    private Integer deleteStatus;
+
+    /**
+     * 订单总金额
+     */
+    @TableField(value = "total_amount")
+    private BigDecimal totalAmount;
+
+    /**
+     * 优惠总金额
+     */
+    @TableField(value = "discount_amount")
+    private BigDecimal discountAmount;
+
+    /**
+     * 支付总金额
+     */
+    @TableField(value = "pay_amount")
+    private BigDecimal payAmount;
+
+    /**
+     * 支付方式(1.微信支付)
+     */
+    @TableField(value = "pay_type")
+    private Integer payType;
+
+    /**
+     * 支付时间
+     */
+    @TableField(value = "pay_time")
+    private Date payTime;
+
+    /**
+     * 配送方式(1.自提  2.快递)
+     */
+    @TableField(value = "delivery_type")
+    private Integer deliveryType;
+
+    /**
+     * 订单发货状态(1.未发货  2.已发货)
+     */
+    @TableField(value = "delivery_status")
+    private Integer deliveryStatus;
+
+    /**
+     * 订单备注
+     */
+    @TableField(value = "remark")
+    private String remark;
+
+    /**
+     * 物流公司
+     */
+    @TableField(value = "logistics_company")
+    private String logisticsCompany;
+
+    /**
+     * 物流单号
+     */
+    @TableField(value = "logistics_no")
+    private String logisticsNo;
+
+    /**
+     * 下单时间
+     */
+    @TableField(value = "create_at",fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 修改时间
+     */
+    @TableField(value = "update_at",fill = FieldFill.UPDATE)
+    private Date updateAt;
+
+    /**
+     * 配送时间
+     */
+    @TableField(value = "delivery_time")
+    private Date deliveryTime;
+
+    /**
+     * 送达时间
+     */
+    @TableField(value = "service_time")
+    private Date serviceTime;
+
+    /**
+     * 收货时间
+     */
+    @TableField(value = "receiving_time")
+    private Date receivingTime;
+
+    /**
+     * 退款时间
+     */
+    @TableField(value = "refund_time")
+    private Date refundTime;
+
+    /**
+     * 自提点id
+     */
+    private Long pointId;
+
+    /**
+     * 配送单id
+     */
+    private Long deliveryId;
+
+    /**
+     * 配送单号
+     */
+    private String deliveryNo;
+
+    /**
+     * 订单状态(1.等待配送 2.配送中 3.待收货 4.待评价 5.已完成 6.已取消 7.已退款 8.待发货)
+     */
+    public interface status {
+        int dfk = 0;
+        int ddps = 1;
+        int psz = 2;
+        int dsh = 3;
+        int dpj = 4;
+        int ywc = 5;
+        int yqx = 6;
+        int ytk = 7;
+        int dfh = 8;
+    }
+
+    /**
+     * 支付状态(1.未支付 2.已支付)
+     */
+    public interface payStatus {
+        int no = 1;
+        int yes = 2;
+    }
+
+    /**
+     * 删除状态(1.未删除 2.已删除)
+     */
+    public interface deleteStatus {
+        int no = 1;
+        int yes = 2;
+    }
+
+    /**
+     * 支付方式(1.微信支付)
+     */
+    public interface payType {
+        int wx = 1;
+    }
+
+    /**
+     * 配送方式(1.商家配送 2.快递物流)
+     */
+    public interface deliveryType {
+        int store = 1;
+        int express = 2;
+    }
+
+    /**
+     * 订单发货状态(1.未发货 2.已发货)
+     */
+    public interface deliveryStatus {
+        int no = 1;
+        int yes = 2;
+    }
+
+    @Override
+    public String toString() {
+        return "ComShopFlowerOrderDO{" +
+                "id=" + id +
+                ", storeId=" + storeId +
+                ", userId=" + userId +
+                ", orderNo='" + orderNo + '\'' +
+                ", payNo='" + payNo + '\'' +
+                ", wxTardeNo='" + wxTardeNo + '\'' +
+                ", status=" + status +
+                ", payStatus=" + payStatus +
+                ", receiverId=" + receiverId +
+                ", deleteStatus=" + deleteStatus +
+                ", totalAmount=" + totalAmount +
+                ", discountAmount=" + discountAmount +
+                ", payAmount=" + payAmount +
+                ", payType=" + payType +
+                ", payTime=" + payTime +
+                ", deliveryType=" + deliveryType +
+                ", deliveryStatus=" + deliveryStatus +
+                ", remark='" + remark + '\'' +
+                ", logisticsCompany='" + logisticsCompany + '\'' +
+                ", logisticsNo='" + logisticsNo + '\'' +
+                ", createAt=" + createAt +
+                ", updateAt=" + updateAt +
+                ", deliveryTime=" + deliveryTime +
+                ", serviceTime=" + serviceTime +
+                ", receivingTime=" + receivingTime +
+                ", refundTime=" + refundTime +
+                '}';
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerOrderDeliveryDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerOrderDeliveryDO.java
new file mode 100644
index 0000000..e707f29
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerOrderDeliveryDO.java
@@ -0,0 +1,125 @@
+package com.panzhihua.service_community.model.dos;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @ClassName: ComShopFlowerOrderDelivery
+ * @Author: yh
+ * @Date: 2022/11/15 14:36
+ * @Description: 花城订单配送表
+ */
+@TableName(value = "com_shop_flower_order_delivery")
+@Data
+public class ComShopFlowerOrderDeliveryDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+    /**
+     * 配送单id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 店铺id
+     */
+    @TableField(value = "store_id")
+    private Long storeId;
+
+    /**
+     * 配送单号
+     */
+    @TableField(value = "delivery_no")
+    private String deliveryNo;
+
+    /**
+     * 配送单状态(1.配送中 2.已送达)
+     */
+    @TableField(value = "delivery_status")
+    private Integer deliveryStatus;
+
+    /**
+     * 删除状态(1.未删除 2.已删除)
+     */
+    @TableField(value = "delete_status")
+    private Integer deleteStatus;
+
+    /**
+     * 配送时间
+     */
+    @TableField(value = "delivery_time")
+    private Date deliveryTime;
+
+    /**
+     * 送达时间
+     */
+    @TableField(value = "service_time")
+    private Date serviceTime;
+
+    /**
+     * 配送方式(1.自提  2.快递)
+     */
+    @TableField(value = "delivery_type")
+    private Integer deliveryType;
+
+    /**
+     * 自提点id
+     */
+    @TableField(value = "point_id")
+    private Long pointId;
+
+    /**
+     * 自提点名称
+     */
+    @TableField(value = "point_name")
+    private String pointName;
+
+    /**
+     * 配送订单数量
+     */
+    @TableField(value = "delivery_order_num")
+    private Integer deliveryOrderNum;
+
+    /**
+     * 配送商品数量
+     */
+    @TableField(value = "delivery_goods_num")
+    private Integer deliveryGoodsNum;
+
+    /**
+     * 价值
+     */
+    @TableField(value = "delivery_amount")
+    private BigDecimal deliveryAmount;
+
+    /**
+     * 创建时间
+     */
+    @TableField(value = "create_at", fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 修改时间
+     */
+    @TableField(value = "update_at", fill = FieldFill.UPDATE)
+    private Date updateAt;
+
+    /**
+     * 配送单状态(1.配送中 2.已送达)
+     */
+    public interface deliveryStatus {
+        int psz = 1;
+        int ysd = 2;
+    }
+
+    /**
+     * 删除状态(1.未删除 2.已删除)
+     */
+    public interface deleteStatus {
+        int wsc = 1;
+        int ysc = 2;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerOrderGoodsDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerOrderGoodsDO.java
new file mode 100644
index 0000000..9dbdfb3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerOrderGoodsDO.java
@@ -0,0 +1,115 @@
+package com.panzhihua.service_community.model.dos;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @ClassName:  ComShopFlowerOrderGoods
+ * @Author: yh
+ * @Date: 2022/11/9 16:46
+ * @Description: 花城订单商品表
+ */
+@TableName(value = "com_shop_flower_order_goods")
+@Data
+public class ComShopFlowerOrderGoodsDO  implements Serializable {
+    private static final long serialVersionUID = 1L;
+    /**
+     * 订单商品id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 店铺id
+     */
+    @TableField(value = "store_id")
+    private Long storeId;
+
+    /**
+     * 订单id
+     */
+    @TableField(value = "order_id")
+    private Long orderId;
+
+    /**
+     * 用户id
+     */
+    @TableField(value = "user_id")
+    private Long userId;
+
+    /**
+     * 订单号
+     */
+    @TableField(value = "order_no")
+    private String orderNo;
+
+    /**
+     * 商品id
+     */
+    @TableField(value = "goods_id")
+    private Long goodsId;
+
+    /**
+     * 商品规格id
+     */
+    @TableField(value = "goods_attr_id")
+    private Long goodsAttrId;
+
+    /**
+     * 规格名称
+     */
+    @TableField(value = "goods_attr_name")
+    private String goodsAttrName;
+
+    /**
+     * 购买数量
+     */
+    @TableField(value = "amount")
+    private Integer amount;
+
+    /**
+     * 商品规格价格
+     */
+    @TableField(value = "goods_attr_price")
+    private BigDecimal goodsAttrPrice;
+
+    /**
+     * 商品规格图
+     */
+    @TableField(value = "goods_attr_pic")
+    private String goodsAttrPic;
+
+    /**
+     * 原价(划线价)
+     */
+    @TableField(value = "price")
+    private BigDecimal price;
+
+    /**
+     * 包邮价
+     */
+    @TableField(value = "free_shipping_price")
+    private BigDecimal freeShippingPrice;
+
+    /**
+     * 拼单价
+     */
+    @TableField(value = "collate_price")
+    private BigDecimal collatePrice;
+
+    /**
+     * 商品名称
+     */
+    @TableField(value = "goods_name")
+    private String goodsName;
+
+    /**
+     * 创建时间
+     */
+    @TableField(value = "create_at",fill = FieldFill.INSERT)
+    private Date createAt;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerOrderOperateDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerOrderOperateDO.java
new file mode 100644
index 0000000..e2e26a6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerOrderOperateDO.java
@@ -0,0 +1,71 @@
+package com.panzhihua.service_community.model.dos;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @ClassName:  ComShopFlowerOrderOperate
+ * @Author: yh
+ * @Date: 2022/11/9 16:46
+ * @Description: 花城订单操作记录表
+ */
+@TableName(value = "com_shop_flower_order_operate")
+@Data
+public class ComShopFlowerOrderOperateDO  implements Serializable {
+    private static final long serialVersionUID = 1L;
+    /**
+     * ,主键
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 订单号
+     */
+    @TableField(value = "order_no")
+    private String orderNo;
+
+    /**
+     * 操作人
+     */
+    @TableField(value = "operation_by")
+    private String operationBy;
+
+    /**
+     * 操作时间
+     */
+    @TableField(value = "operation_time")
+    private Date operationTime;
+
+    /**
+     * 操作类型(1.创建订单 2.取消订单 3.订单支付 4.订单发货 5.订单完成)
+     */
+    @TableField(value = "operation_type")
+    private Integer operationType;
+
+    /**
+     * 操作内容
+     */
+    @TableField(value = "operation_content")
+    private String operationContent;
+
+    /**
+     * 创建时间
+     */
+    @TableField(value = "create_at",fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 操作类型(1.创建订单 2.取消订单 3.订单支付 4.订单发货 5.订单完成)
+     */
+    public interface operationType {
+        int create = 1;
+        int cancel = 2;
+        int pay = 3;
+        int deliver = 4;
+        int complete = 5;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerOrderPayDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerOrderPayDO.java
new file mode 100644
index 0000000..c08eb16
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerOrderPayDO.java
@@ -0,0 +1,133 @@
+package com.panzhihua.service_community.model.dos;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @ClassName: ComShopFlowerOrderPay
+ * @Author: yh
+ * @Date: 2022/11/9 16:46
+ * @Description: 花城订单支付记录表
+ */
+@TableName(value = "com_shop_flower_order_pay")
+@Data
+public class ComShopFlowerOrderPayDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 订单号
+     */
+    @TableField(value = "order_no")
+    private String orderNo;
+
+    /**
+     * 支付单号
+     */
+    @TableField(value = "pay_no")
+    private String payNo;
+
+    /**
+     * 微信交易号
+     */
+    @TableField(value = "wx_trade_no")
+    private String wxTradeNo;
+
+    /**
+     * 支付状态(1.未支付  2.已支付)
+     */
+    @TableField(value = "pay_status")
+    private Integer payStatus;
+
+    /**
+     * 订单金额
+     */
+    @TableField(value = "order_amount")
+    private BigDecimal orderAmount;
+
+    /**
+     * 支付金额
+     */
+    @TableField(value = "pay_amount")
+    private BigDecimal payAmount;
+
+    /**
+     * 支付时间
+     */
+    @TableField(value = "pay_time")
+    private Date payTime;
+
+    /**
+     * 创建时间
+     */
+    @TableField(value = "create_at", fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 修改时间
+     */
+    @TableField(value = "update_at", fill = FieldFill.UPDATE)
+    private Date updateAt;
+
+    /**
+     * 商家id
+     */
+    private Long storeId;
+    /**
+     * 配送方式(1.自提  2.快递)
+     */
+    private Integer deliveryType;
+    /**
+     * 原始订单id
+     */
+    private Long orderId;
+    /**
+     * 退款订单号
+     */
+    private String refundOrderNo;
+    /**
+     * 退款状态(1.处理中 2.退款成功 3.退款失败 4.已取消 5.退款中)
+     */
+    private Integer refundStatus;
+    /**
+     * 类型(1.支付 2.退款 3.取消)
+     */
+    private Integer payType;
+
+    /**
+     * 支付状态(1.未支付 2.已支付)
+     */
+    public interface payStatus {
+        int no = 1;
+        int yes = 2;
+    }
+
+    /**
+     * 退款状态(1.处理中 2.退款成功 3.退款失败 4.已取消 5.退款中)
+     */
+    public interface refundStatus {
+        int clz = 1;
+        int tkcg = 2;
+        int tksb = 3;
+        int yqx = 4;
+        int tkz = 5;
+    }
+
+    /**
+     * 类型(1.支付 2.退款 3.取消)
+     */
+    public interface payType {
+        int zf = 1;
+        int tk = 2;
+        int qx = 3;
+    }
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerRefundOrderDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerRefundOrderDO.java
new file mode 100644
index 0000000..ddfe27f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerRefundOrderDO.java
@@ -0,0 +1,161 @@
+package com.panzhihua.service_community.model.dos;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @ClassName:  ComShopFlowerRefundOrder
+ * @Author: yh
+ * @Date: 2022/11/9 16:46
+ * @Description: 花城退款订单表
+ */
+@TableName(value = "com_shop_flower_refund_order")
+@Data
+public class ComShopFlowerRefundOrderDO  implements Serializable {
+    private static final long serialVersionUID = 1L;
+    /**
+     * 订单id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 店铺id
+     */
+    @TableField(value = "store_id")
+    private Long storeId;
+
+    /**
+     * 用户id
+     */
+    @TableField(value = "user_id")
+    private Long userId;
+
+    /**
+     * 原始订单号
+     */
+    @TableField(value = "order_no")
+    private String orderNo;
+
+    /**
+     * 原始订单id
+     */
+    @TableField(value = "order_id")
+    private String orderId;
+
+    /**
+     * 退款订单号
+     */
+    @TableField(value = "refund_order_no")
+    private String refundOrderNo;
+
+    /**
+     * 订单状态(9.处理中 10.退款成功 11.退款失败 12.已取消 13.退款中)
+     */
+    @TableField(value = "status")
+    private Integer status;
+
+    /**
+     * 删除状态(1.未删除 2.已删除)
+     */
+    @TableField(value = "delete_status")
+    private Integer deleteStatus;
+
+    /**
+     * 支付总金额
+     */
+    @TableField(value = "pay_amount")
+    private BigDecimal payAmount;
+
+    /**
+     * 申请退款金额
+     */
+    @TableField(value = "refund_amount")
+    private BigDecimal refundAmount;
+
+    /**
+     * 退款原因
+     */
+    @TableField(value = "refund_reason")
+    private String refundReason;
+
+    /**
+     * 退款照片
+     */
+    @TableField(value = "refund_pic")
+    private String refundPic;
+
+    /**
+     * 申请时间
+     */
+    @TableField(value = "create_at",fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 修改时间
+     */
+    @TableField(value = "update_at")
+    private Date updateAt;
+
+    /**
+     * 处理时间
+     */
+    @TableField(value = "handle_time")
+    private Date handleTime;
+
+    /**
+     * 退款时间
+     */
+    @TableField(value = "refund_time")
+    private Date refundTime;
+
+    /**
+     * 取消时间
+     */
+    @TableField(value = "cancel_time")
+    private Date cancelTime;
+
+    /**
+     * 处理结果(1.同意 2.拒绝)
+     */
+    @TableField(value = "handle_result")
+    private String handleResult;
+
+    /**
+     * 商家备注
+     */
+    @TableField(value = "remark")
+    private String remark;
+
+    /**
+     * 订单状态(9.处理中 10.退款成功 11.退款失败 12.已取消 13.退款中)
+     */
+    public interface status{
+        int clz = 9;
+        int tkcg = 10;
+        int tksb = 11;
+        int yqx = 12;
+        int tkz = 13;
+    }
+
+    /**
+     * 删除状态(1.未删除 2.已删除)
+     */
+    public interface deleteStatus {
+        int no = 1;
+        int yes = 2;
+    }
+
+
+    /**
+     * 处理结果(1.同意 2.拒绝)
+     */
+    public interface  handleResult{
+        String agree = "1";
+        String refuse = "2";
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerUserAddressDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerUserAddressDO.java
new file mode 100644
index 0000000..57c97e5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopFlowerUserAddressDO.java
@@ -0,0 +1,117 @@
+package com.panzhihua.service_community.model.dos;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @ClassName:  ComShopFlowerUserAddress
+ * @Author: yh
+ * @Date: 2022/11/9 16:46
+ * @Description: 花城用户收货地址表
+ */
+@TableName(value = "com_shop_flower_user_address")
+@Data
+public class ComShopFlowerUserAddressDO  implements Serializable {
+    private static final long serialVersionUID = 1L;
+    /**
+     * ,主键
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    @TableField(value = "user_id")
+    private Long userId;
+
+    /**
+     * 收货人名称
+     */
+    @TableField(value = "name")
+    private String name;
+
+    /**
+     * 收货人手机号
+     */
+    @TableField(value = "phone")
+    private String phone;
+
+    /**
+     * 收货人省份编码
+     */
+    @TableField(value = "province_code")
+    private String provinceCode;
+
+    /**
+     * 收货人省份名称
+     */
+    @TableField(value = "province_name")
+    private String provinceName;
+
+    /**
+     * 收货人城市编码
+     */
+    @TableField(value = "city_code")
+    private String cityCode;
+
+    /**
+     * 收货人城市名称
+     */
+    @TableField(value = "city_name")
+    private String cityName;
+
+    /**
+     * 收货人区县编码
+     */
+    @TableField(value = "district_code")
+    private String districtCode;
+
+    /**
+     * 收货人区县名称
+     */
+    @TableField(value = "district_name")
+    private String districtName;
+
+    /**
+     * 收货人详细地址
+     */
+    @TableField(value = "detail_address")
+    private String detailAddress;
+
+    /**
+     * 是否是默认地址(1.是  2.否)
+     */
+    @TableField(value = "is_default")
+    private Integer isDefault;
+
+    /**
+     * 创建时间
+     */
+    @TableField(value = "create_at",fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 修改时间
+     */
+    @TableField(value = "update_at",fill = FieldFill.UPDATE)
+    private Date updateAt;
+
+    /**
+     * 是否已删除(1.是  2.否)
+     */
+    @TableField(value = "delete_status")
+    private Integer deleteStatus;
+
+
+    /**
+     * 是否是默认地址(1.是 2.否)
+     */
+    public interface isDefault {
+        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/ComShopGoodsAttrDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopGoodsAttrDO.java
new file mode 100644
index 0000000..9baf592
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopGoodsAttrDO.java
@@ -0,0 +1,93 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:49
+ * @describe 商品规格表实体类
+ */
+
+@Data
+@TableName("com_shop_goods_attr")
+public class ComShopGoodsAttrDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 商品规格id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 商品id
+     */
+    private Long goodsId;
+
+    /**
+     * 店铺id
+     */
+    private Long storeId;
+
+    /**
+     * 商品名称
+     */
+    private String goodsName;
+
+    /**
+     * 商品规格
+     */
+    private String goodsAttr;
+
+    /**
+     * 商品规格库存
+     */
+    private Integer stock;
+
+    /**
+     * 商品规格销量
+     */
+    private Integer sale;
+
+    /**
+     * 商品规格图
+     */
+    private String attrPic;
+
+    /**
+     * 是否是默认规格(1.是 2.否)
+     */
+    private Integer isDefault;
+
+    /**
+     * 规格价格
+     */
+    private BigDecimal price;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 修改时间
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateAt;
+
+    @Override
+    public String toString() {
+        return "ComShopGoodsAttrDO{" + "id=" + id + ", goodsId=" + goodsId + ", storeId=" + storeId + ", goodsName="
+            + goodsName + ", goodsAttr=" + goodsAttr + ", stock=" + stock + ", sale=" + sale + ", attrPic=" + attrPic
+            + ", isDefault=" + isDefault + ", price=" + price + ", 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/ComShopGoodsDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopGoodsDO.java
new file mode 100644
index 0000000..43da3e5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopGoodsDO.java
@@ -0,0 +1,163 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:35
+ * @describe 商品表实体类
+ */
+
+@Data
+@TableName("com_shop_goods")
+public class ComShopGoodsDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 商品id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 商品分类id
+     */
+    private Long typeId;
+
+    /**
+     * 商品名称
+     */
+    @TableField("`name`")
+    private String name;
+
+    /**
+     * 店铺id
+     */
+    private Long storeId;
+
+    /**
+     * 商品主图
+     */
+    private String goodsPic;
+
+    /**
+     * 商品展示图
+     */
+    private String images;
+
+    /**
+     * 商品状态(1.出售中 2.已下架 3.回收站)
+     */
+    @TableField("`status`")
+    private Integer status;
+
+    /**
+     * 商品销量
+     */
+    private Integer sale;
+
+    /**
+     * 商品原价
+     */
+    private BigDecimal originalPrice;
+
+    /**
+     * 商品现价
+     */
+    private BigDecimal price;
+
+    /**
+     * 商品单位
+     */
+    private String unit;
+
+    /**
+     * 商品排序
+     */
+    @TableField("`order`")
+    private Integer order;
+
+    /**
+     * 商品总库存
+     */
+    private Integer stock;
+
+    /**
+     * 商品详情
+     */
+    private String details;
+
+    /**
+     * 商品备注
+     */
+    private String remark;
+
+    /**
+     * 商品描述
+     */
+    private String goodsDescribe;
+
+    /**
+     * 配送方式(1.商家配送 2.快递物流)
+     */
+    private Integer deliveryType;
+
+    /**
+     * 删除状态(1.未删除 2.已删除)
+     */
+    private Integer deleteStatus;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 修改时间
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateAt;
+
+    @Override
+    public String toString() {
+        return "ComShopGoodsDO{" + "id=" + id + ", typeId=" + typeId + ", name=" + name + ", storeId=" + storeId
+            + ", goodsPic=" + goodsPic + ", images=" + images + ", status=" + status + ", sale=" + sale
+            + ", originalPrice=" + originalPrice + ", price=" + price + ", unit=" + unit + ", order=" + order
+            + ", stock=" + stock + ", details=" + details + ", remark=" + remark + ", goodsDescribe=" + goodsDescribe
+            + ", deliveryType=" + deliveryType + ", deleteStatus=" + deleteStatus + ", createAt=" + createAt
+            + ", updateAt=" + updateAt + "}";
+    }
+
+    /**
+     * 商品状态(1.出售中 2.已下架 3.回收站)
+     */
+    public interface status {
+        int sell = 1;
+        int lower = 2;
+        int recovery = 3;
+    }
+
+    /**
+     * 删除状态(1.未删除 2.已删除)
+     */
+    public interface deleteStatus {
+        int no = 1;
+        int yes = 2;
+    }
+
+    /**
+     * 配送方式(1.商家配送 2.快递物流)
+     */
+    public interface deliveryType {
+        int store = 1;
+        int express = 2;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopOperLogDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopOperLogDO.java
new file mode 100644
index 0000000..181f468
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopOperLogDO.java
@@ -0,0 +1,118 @@
+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 lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 操作日志
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-25 10:34
+ **/
+@Data
+@TableName("com_shop_oper_log")
+public class ComShopOperLogDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 日志主键
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long operId;
+
+    /**
+     * 模块标题
+     */
+    private String title;
+
+    /**
+     * 业务类型(0其它 1新增 2修改 3删除)
+     */
+    private Integer businessType;
+
+    /**
+     * 方法名称
+     */
+    private String method;
+
+    /**
+     * 请求方式
+     */
+    private String requestMethod;
+
+    /**
+     * 操作类别(0其它 1后台用户 2手机端用户)
+     */
+    private Integer operatorType;
+
+    /**
+     * 操作人员
+     */
+    private String operName;
+
+    /**
+     * 部门名称
+     */
+    private String deptName;
+
+    /**
+     * 请求url
+     */
+    private String operUrl;
+
+    /**
+     * 主机地址
+     */
+    private String operIp;
+
+    /**
+     * 操作地点
+     */
+    private String operLocation;
+
+    /**
+     * 请求参数
+     */
+    private String operParam;
+
+    /**
+     * 返回参数
+     */
+    private String jsonResult;
+
+    /**
+     * 操作状态(0正常 1异常)
+     */
+    private Integer status;
+
+    /**
+     * 错误消息
+     */
+    private String errorMsg;
+
+    /**
+     * 操作时间
+     */
+    private Date operTime;
+
+    /**
+     * 操作社区id 0 标识运营后台
+     */
+    private Long communityId;
+
+    /**
+     * 操作账户
+     */
+    private String account;
+    /**
+     * 操作用户ID
+     */
+    private Long userId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopOrderDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopOrderDO.java
new file mode 100644
index 0000000..775a485
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopOrderDO.java
@@ -0,0 +1,207 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:03:01
+ * @describe 订单表实体类
+ */
+
+@Data
+@TableName("com_shop_order")
+public class ComShopOrderDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 订单id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 店铺id
+     */
+    private Long storeId;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 订单号
+     */
+    private String orderNo;
+
+    /**
+     * 支付单号
+     */
+    private String payNo;
+
+    /**
+     * 微信交易单号
+     */
+    private String wxTardeNo;
+
+    /**
+     * 订单状态(1.待付款 2.代发货 3.待收货 4.待评价 5.已完成 6.已取消)
+     */
+    private Integer status;
+
+    /**
+     * 支付状态(1.未支付 2.已支付)
+     */
+    private Integer payStatus;
+
+    /**
+     * 订单收货人id
+     */
+    private Long receiverId;
+
+    /**
+     * 是否已删除(1.是 2.否)
+     */
+    private Integer deleteStatus;
+
+    /**
+     * 订单总金额
+     */
+    private BigDecimal totalAmount;
+
+    /**
+     * 优惠总金额
+     */
+    private BigDecimal discountAmount;
+
+    /**
+     * 支付总金额
+     */
+    private BigDecimal payAmount;
+
+    /**
+     * 支付方式(1.微信支付)
+     */
+    private Integer payType;
+
+    /**
+     * 支付时间
+     */
+    private Date payTime;
+
+    /**
+     * 配送方式(1.商家配送 2.快递物流)
+     */
+    private Integer deliveryType;
+
+    /**
+     * 订单发货状态(1.未发货 2.已发货)
+     */
+    private Integer deliveryStatus;
+
+    /**
+     * 物流公司
+     */
+    private String logisticsCompany;
+
+    /**
+     * 物流单号
+     */
+    private String logisticsNo;
+
+    /**
+     * 订单备注
+     */
+    private String remark;
+
+    /**
+     * 发货时间
+     */
+    private Date deliveryTime;
+
+    /**
+     * 下单时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 修改时间
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateAt;
+
+    /**
+     * 收货时间
+     */
+    private Date receivingTime;
+
+    @Override
+    public String toString() {
+        return "ComShopOrderDO{" + "id=" + id + ", storeId=" + storeId + ", userId=" + userId + ", orderNo=" + orderNo
+            + ", payNo=" + payNo + ", wxTardeNo=" + wxTardeNo + ", status=" + status + ", payStatus=" + payStatus
+            + ", receiverId=" + receiverId + ", deleteStatus=" + deleteStatus + ", totalAmount=" + totalAmount
+            + ", discountAmount=" + discountAmount + ", payAmount=" + payAmount + ", payType=" + payType + ", payTime="
+            + payTime + ", deliveryType=" + deliveryType + ", deliveryStatus=" + deliveryStatus + ", logisticsCompany="
+            + logisticsCompany + ", logisticsNo=" + logisticsNo + ", createAt=" + createAt + ", updateAt=" + updateAt
+            + "}";
+    }
+
+    /**
+     * 订单状态(1.待付款 2.代发货 3.待收货 4.待评价 5.已完成 6.已取消)
+     */
+    public interface status {
+        int dfk = 1;
+        int dfh = 2;
+        int dsh = 3;
+        int dpj = 4;
+        int ywc = 5;
+        int yqx = 6;
+    }
+
+    /**
+     * 支付状态(1.未支付 2.已支付)
+     */
+    public interface payStatus {
+        int no = 1;
+        int yes = 2;
+    }
+
+    /**
+     * 删除状态(1.未删除 2.已删除)
+     */
+    public interface deleteStatus {
+        int no = 1;
+        int yes = 2;
+    }
+
+    /**
+     * 支付方式(1.微信支付)
+     */
+    public interface payType {
+        int wx = 1;
+    }
+
+    /**
+     * 配送方式(1.商家配送 2.快递物流)
+     */
+    public interface deliveryType {
+        int store = 1;
+        int express = 2;
+    }
+
+    /**
+     * 订单发货状态(1.未发货 2.已发货)
+     */
+    public interface deliveryStatus {
+        int no = 1;
+        int yes = 2;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopOrderGoodsDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopOrderGoodsDO.java
new file mode 100644
index 0000000..6197090
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopOrderGoodsDO.java
@@ -0,0 +1,92 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:03:17
+ * @describe 订单商品表实体类
+ */
+
+@Data
+@TableName("com_shop_order_goods")
+public class ComShopOrderGoodsDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 订单商品id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 店铺id
+     */
+    private Long storeId;
+
+    /**
+     * 订单id
+     */
+    private Long orderId;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 订单号
+     */
+    private String orderNo;
+
+    /**
+     * 商品id
+     */
+    private Long goodsId;
+
+    /**
+     * 商品规格id
+     */
+    private Long goodsAttrId;
+
+    /**
+     * 购买数量
+     */
+    private Integer amount;
+
+    /**
+     * 商品规格价格
+     */
+    private BigDecimal goodsAttrPrice;
+
+    /**
+     * 商品规格图
+     */
+    private String goodsAttrPic;
+
+    /**
+     * 商品名称
+     */
+    private String goodsName;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    @Override
+    public String toString() {
+        return "ComShopOrderGoodsDO{" + "id=" + id + ", storeId=" + storeId + ", orderId=" + orderId + ", userId="
+            + userId + ", orderNo=" + orderNo + ", goodsId=" + goodsId + ", goodsAttrId=" + goodsAttrId + ", amount="
+            + amount + ", goodsAttrPrice=" + goodsAttrPrice + ", goodsAttrPic=" + goodsAttrPic + ", goodsName="
+            + goodsName + ", createAt=" + createAt + "}";
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopOrderOperateDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopOrderOperateDO.java
new file mode 100644
index 0000000..4cc4137
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopOrderOperateDO.java
@@ -0,0 +1,76 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:03:31
+ * @describe 订单操作记录表实体类
+ */
+
+@Data
+@TableName("com_shop_order_operate")
+public class ComShopOrderOperateDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 订单号
+     */
+    private String orderNo;
+
+    /**
+     * 操作人
+     */
+    private String operationBy;
+
+    /**
+     * 操作时间
+     */
+    private Date operationTime;
+
+    /**
+     * 操作类型(1.创建订单 2.取消订单 3.订单支付 4.订单发货 5.订单完成)
+     */
+    private Integer operationType;
+
+    /**
+     * 操作内容
+     */
+    private String operationContent;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    @Override
+    public String toString() {
+        return "ComShopOrderOperateDO{" + "id=" + id + ", orderNo=" + orderNo + ", operationBy=" + operationBy
+            + ", operationTime=" + operationTime + ", operationType=" + operationType + ", operationContent="
+            + operationContent + ", createAt=" + createAt + "}";
+    }
+
+    /**
+     * 操作类型(1.创建订单 2.取消订单 3.订单支付 4.订单发货 5.订单完成)
+     */
+    public interface operationType {
+        int create = 1;
+        int cancel = 2;
+        int pay = 3;
+        int deliver = 4;
+        int complete = 5;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopOrderPayDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopOrderPayDO.java
new file mode 100644
index 0000000..15b2faa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopOrderPayDO.java
@@ -0,0 +1,90 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:03:42
+ * @describe 订单支付记录表实体类
+ */
+
+@Data
+@TableName("com_shop_order_pay")
+public class ComShopOrderPayDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 订单号
+     */
+    private String orderNo;
+
+    /**
+     * 支付单号
+     */
+    private String payNo;
+
+    /**
+     * 微信交易号
+     */
+    private String wxTradeNo;
+
+    /**
+     * 支付状态(1.未支付 2.已支付)
+     */
+    private Integer payStatus;
+
+    /**
+     * 订单金额
+     */
+    private BigDecimal orderAmount;
+
+    /**
+     * 支付金额
+     */
+    private BigDecimal payAmount;
+
+    /**
+     * 支付时间
+     */
+    private Date payTime;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 修改时间
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateAt;
+
+    @Override
+    public String toString() {
+        return "ComShopOrderPayDO{" + "id=" + id + ", orderNo=" + orderNo + ", payNo=" + payNo + ", wxTradeNo="
+            + wxTradeNo + ", payStatus=" + payStatus + ", orderAmount=" + orderAmount + ", payAmount=" + payAmount
+            + ", payTime=" + payTime + ", createAt=" + createAt + ", updateAt=" + updateAt + "}";
+    }
+
+    /**
+     * 支付状态(1.未支付 2.已支付)
+     */
+    public interface payStatus {
+        int no = 1;
+        int yes = 2;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopStoreDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopStoreDO.java
new file mode 100644
index 0000000..578bc9c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopStoreDO.java
@@ -0,0 +1,149 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:03:55
+ * @describe 店铺表实体类
+ */
+
+@Data
+@TableName("com_shop_store")
+public class ComShopStoreDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 店铺id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 店铺名称
+     */
+    private String name;
+
+    /**
+     * 店铺分类id
+     */
+    private Long classifyId;
+
+    /**
+     * 店铺logo
+     */
+    private String logo;
+
+    /**
+     * 联系方式
+     */
+    private String phone;
+
+    /**
+     * 配送方式(1.商家配送 2.快递物流)
+     */
+    private Integer deliveryType;
+
+    /**
+     * 店铺备注
+     */
+    private String remark;
+
+    /**
+     * 店铺状态(1.启用 2.禁用)
+     */
+    private Integer status;
+
+    /**
+     * 删除状态(1.未删除 2.已删除)
+     */
+    private Integer deleteStatus;
+
+    /**
+     * 店铺描述
+     */
+    private String storeDescribe;
+
+    /**
+     * 店铺销量
+     */
+    private Integer sale;
+
+    /**
+     * 店铺销售额
+     */
+    private BigDecimal saleVolume;
+
+    /**
+     * 店铺登陆账号
+     */
+    private String storeAccount;
+
+    /**
+     * 店铺登陆密码
+     */
+    private String storePassword;
+
+    /**
+     * 店铺详情
+     */
+    private String storeDetail;
+
+    /**
+     * 创建人
+     */
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 修改时间
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateAt;
+
+    /**
+     * 负责人
+     */
+    private String contacts;
+    /**
+     * 管理后台用户id
+     */
+    private Long sysUserId;
+
+    @Override
+    public String toString() {
+        return "ComShopStoreDO{" + "id=" + id + ", name=" + name + ", classifyId=" + classifyId + ", logo=" + logo
+            + ", phone=" + phone + ", deliveryType=" + deliveryType + ", remark=" + remark + ", status=" + status
+            + ", deleteStatus=" + deleteStatus + ", storeDescribe=" + storeDescribe + ", sale=" + sale + ", saleVolume="
+            + saleVolume + ", storeAccount=" + storeAccount + ", storePassword=" + storePassword + ", storeDetail="
+            + storeDetail + ", createBy=" + createBy + ", createAt=" + createAt + ", updateAt=" + updateAt + "}";
+    }
+
+    /**
+     * 店铺状态(1.启用 2.禁用)
+     */
+    public interface status {
+        int yes = 1;
+        int no = 2;
+    }
+
+    /**
+     * 删除状态(1.未删除 2.已删除)
+     */
+    public interface deleteStatus {
+        int no = 1;
+        int yes = 2;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopSysConfDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopSysConfDO.java
new file mode 100644
index 0000000..9c680e5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopSysConfDO.java
@@ -0,0 +1,61 @@
+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 lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:03:01
+ * @describe 订单表实体类
+ */
+
+@Data
+@TableName("com_shop_sys_conf")
+public class ComShopSysConfDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 订单id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 配置名称
+     */
+    private String name;
+    /**
+     * 配置备注
+     */
+    private String note;
+    /**
+     * 配置值
+     */
+    private String val;
+    /**
+     * 是否生效(0 否 1 是)
+     */
+    private String enabled;
+    /**
+     * 创建人
+     */
+    private String create_by;
+    /**
+     * 创建时间
+     */
+    private Date create_at;
+    /**
+     * 修改时间
+     */
+    private Date update_at;
+    /**
+     * 修改人
+     */
+    private String update_by;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopUserAddressDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopUserAddressDO.java
new file mode 100644
index 0000000..334386e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComShopUserAddressDO.java
@@ -0,0 +1,116 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:04:16
+ * @describe 用户收货地址表实体类
+ */
+
+@Data
+@TableName("com_shop_user_address")
+public class ComShopUserAddressDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 收货人名称
+     */
+    private String name;
+
+    /**
+     * 收货人手机号
+     */
+    private String phone;
+
+    /**
+     * 收货人省份编码
+     */
+    private String provinceCode;
+
+    /**
+     * 收货人省份名称
+     */
+    private String provinceName;
+
+    /**
+     * 收货人城市编码
+     */
+    private String cityCode;
+
+    /**
+     * 收货人城市名称
+     */
+    private String cityName;
+
+    /**
+     * 收货人区县编码
+     */
+    private String districtCode;
+
+    /**
+     * 收货人区县名称
+     */
+    private String districtName;
+
+    /**
+     * 收货人详细地址
+     */
+    private String detailAddress;
+
+    /**
+     * 是否是默认地址(1.是 2.否)
+     */
+    private Integer isDefault;
+
+    /**
+     * 是否已删除(1.是 2.否)
+     */
+    private Integer deleteStatus;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 修改时间
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateAt;
+
+    @Override
+    public String toString() {
+        return "ComShopUserAddressDO{" + "id=" + id + ", userId=" + userId + ", name=" + name + ", phone=" + phone
+            + ", provinceCode=" + provinceCode + ", provinceName=" + provinceName + ", cityCode=" + cityCode
+            + ", cityName=" + cityName + ", districtCode=" + districtCode + ", districtName=" + districtName
+            + ", detailAddress=" + detailAddress + ", isDefault=" + isDefault + ", createAt=" + createAt + ", updateAt="
+            + updateAt + "}";
+    }
+
+    /**
+     * 是否是默认地址(1.是 2.否)
+     */
+    public interface isDefault {
+        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/ComStreetDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComStreetDO.java
new file mode 100644
index 0000000..20fb1d6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComStreetDO.java
@@ -0,0 +1,78 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import lombok.Data;
+
+/**
+ * @author: llming
+ * @description: 街道表
+ **/
+@Data
+@TableName(value = "com_street")
+public class ComStreetDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+    /**
+     * streetId
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long streetId;
+    /**
+     * 街道名字
+     */
+    private String name;
+
+    /**
+     * 省份地址编码
+     */
+    private Integer provinceCode;
+    /**
+     * 市级地址编码
+     */
+    private Integer cityCode;
+    /**
+     * 区级地址编码
+     */
+    private Integer areaCode;
+    /**
+     * 街道地址
+     */
+    private String address;
+    /**
+     * 经度
+     */
+    private String lng;
+    /**
+     * 纬度
+     */
+    private String lat;
+    /**
+     * 超管账号
+     */
+    private String account;
+    /**
+     * 账号密码
+     */
+    private String password;
+    private String appId;
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 调节站电话
+     * */
+    @TableField(exist = false)
+    private String solvePhone;
+
+    @TableField(exist = false)
+    private Integer status;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComSwDangerReportDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComSwDangerReportDO.java
new file mode 100644
index 0000000..487cdfa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComSwDangerReportDO.java
@@ -0,0 +1,166 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @auther txb
+ * @create 2021-07-27 14:31:04
+ * @describe 实体类
+ */
+
+@Data
+@TableName("com_sw_danger_report")
+public class ComSwDangerReportDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id",type = IdType.INPUT)
+    private Long id;
+
+    /**
+     * 隐患编号
+     */
+    private Integer dangerNo;
+
+    /**
+     * 隐患名称
+     */
+    private String dangerName;
+
+    /**
+     * 隐患类型(1.火灾隐患 2.汛情隐患 3.疫情隐患)
+     */
+    private String dangerType;
+
+    /**
+     * 状态(1.待处理 2.待整改 3.已整改)
+     */
+    private String status;
+
+    /**
+     * 风险等级(1.红色预警 2.橙色预警 3.黄色预警 4.蓝色预警)
+     */
+    private String dangerLevel;
+
+    /**
+     * 排查时间
+     */
+    private String checkTime;
+
+    /**
+     * 主体部门、单位或个人全称
+     */
+    private String unitName;
+
+    /**
+     * 隐患简述
+     */
+    private String dagerDescription;
+
+    /**
+     * 是否立即整改(1是 、0否)
+     */
+    private Integer isRectifyImmediately;
+
+    /**
+     * 采取措施
+     */
+    private String takeSteps;
+
+    /**
+     * 采取措施照片
+     */
+    private String stepsPhoto;
+
+    /**
+     * 整改人员
+     */
+    private String rectifyPerson;
+
+    /**
+     * 人员名字,多个以逗号隔开
+     */
+    private String personName;
+
+    /**
+     * 人员电话,多个以逗号隔开
+     */
+    private String personPhone;
+
+    /**
+     * 整改时间
+     */
+    private String rectifyTime;
+
+    /**
+     * 社区处理建议
+     */
+    private String communitySuggestion;
+
+    /**
+     * 街道安全人员管理建议
+     */
+    private String streetSuggestion;
+
+    /**
+     * 承办记录
+     */
+    private String undertakeRecord;
+
+    /**
+     * 领导意见
+     */
+    private String leaderSuggestion;
+
+    /**
+     * 指派人员
+     */
+    private String assignPerson;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 创建人
+     */
+    private Long createBy;
+
+    /**
+     * 更新时间
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateAt;
+
+    /**
+     * 修改人
+     */
+    private Long updateBy;
+
+    @Override
+    public String toString() {
+        return "ComSwDangerReportDO{" + "id=" + id + ", dangerNo=" + dangerNo + ", dangerName=" + dangerName
+            + ", dangerType=" + dangerType + ", status=" + status + ", dangerLevel=" + dangerLevel + ", checkTime="
+            + checkTime + ", unitName=" + unitName + ", dagerDescription=" + dagerDescription
+            + ", isRectifyImmediately=" + isRectifyImmediately + ", takeSteps=" + takeSteps + ", stepsPhoto="
+            + stepsPhoto + ", rectifyPerson=" + rectifyPerson + ", rectifyTime=" + rectifyTime
+            + ", communitySuggestion=" + communitySuggestion + ", streetSuggestion=" + streetSuggestion
+            + ", undertakeRecord=" + undertakeRecord + ", remark=" + remark + ", createAt=" + createAt + ", createBy="
+            + createBy + ", updateAt=" + updateAt + ", updateBy=" + updateBy + "}";
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComSwPatrolRecordDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComSwPatrolRecordDO.java
new file mode 100644
index 0000000..25bb0cf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComSwPatrolRecordDO.java
@@ -0,0 +1,139 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @auther txb
+ * @create 2021-07-23 14:38:38
+ * @describe 社区》安全工作》巡查记录实体类
+ */
+
+@Data
+@TableName("com_sw_patrol_record")
+public class ComSwPatrolRecordDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 巡查时间
+     */
+    private Date patrolTime;
+
+    /**
+     * 巡查类型(1.防火巡查2.防汛巡查3.防疫巡查),多条以逗号隔开
+     */
+    private String patrolType;
+
+    /**
+     * 巡查领导
+     */
+    private String patrolLeader;
+
+    /**
+     * 巡查人员
+     */
+    private String patrolPerson;
+
+    /**
+     * 人员名字,多个以逗号隔开
+     */
+    private String personName;
+
+    /**
+     * 人员电话,多个以逗号隔开
+     */
+    private String personPhone;
+
+    /**
+     * 巡查地址
+     */
+    private String address;
+
+    /**
+     * 巡查记录
+     */
+    private String recordContent;
+
+    /**
+     * 发现记录
+     */
+    private String findRecord;
+
+    /**
+     * 记录照片
+     */
+    private String recordPhoto;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 接班领导
+     */
+    private String successionLeader;
+
+    /**
+     * 接班人员
+     */
+    private String successionPerson;
+
+    /**
+     * 接班时间
+     */
+    private Date successionTime;
+
+    /**
+     * 是否存在隐患(1是 、0否)
+     */
+    private Integer isHiddenDanger;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 创建人
+     */
+    private Long createBy;
+
+    /**
+     * 更新时间
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateAt;
+
+    /**
+     * 更新人
+     */
+    private Long updateBy;
+
+    @Override
+    public String toString() {
+        return "ComSwPatrolRecordDO{" + "id=" + id + ", patrolTime=" + patrolTime + ", patrolType=" + patrolType
+            + ", patrolLeader=" + patrolLeader + ", patrolPerson=" + patrolPerson + ", address=" + address
+            + ", recordContent=" + recordContent + ", findRecord=" + findRecord + ", recordPhoto=" + recordPhoto
+            + ", remark=" + remark + ", successionLeader=" + successionLeader + ", successionPerson=" + successionPerson
+            + ", successionTime=" + successionTime + ", isHiddenDanger=" + isHiddenDanger + ", createAt=" + createAt
+            + ", createBy=" + createBy + ", updateAt=" + updateAt + ", updateBy=" + updateBy + "}";
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComSwPatrolRecordReportDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComSwPatrolRecordReportDO.java
new file mode 100644
index 0000000..d7fdefe
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComSwPatrolRecordReportDO.java
@@ -0,0 +1,66 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @auther txb
+ * @create 2021-07-27 15:08:24
+ * @describe 社区》安全工作》巡查记录-报告关系表实体类
+ */
+
+@Data
+@TableName("com_sw_patrol_record_report")
+public class ComSwPatrolRecordReportDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 巡查记录id
+     */
+    private Long patrolRecordId;
+
+    /**
+     * 报告id
+     */
+    private Long reportId;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 创建人
+     */
+    private Long createBy;
+
+    /**
+     * 更新时间
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateAt;
+
+    /**
+     * 修改人
+     */
+    private Long updateBy;
+
+    @Override
+    public String toString() {
+        return "ComSwPatrolRecordReportDO{" + "id=" + id + ", patrolRecordId=" + patrolRecordId + ", reportId="
+            + reportId + ", createAt=" + createAt + ", createBy=" + createBy + ", updateAt=" + updateAt + ", updateBy="
+            + updateBy + "}";
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComSwRotaDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComSwRotaDO.java
new file mode 100644
index 0000000..d27920d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComSwRotaDO.java
@@ -0,0 +1,89 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @auther txb
+ * @create 2021-07-30 10:24:56
+ * @describe 社区》安全工作》值班表实体类
+ */
+
+@Data
+@TableName("com_sw_rota")
+public class ComSwRotaDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 值班表主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 社区ID
+     */
+    private Long communityId;
+
+    /**
+     * 值班时间
+     */
+    private Date rotaDate;
+
+    /**
+     * 值班领导,多个以逗号隔开
+     */
+    private String rotaLeader;
+
+    /**
+     * 领导联系电话,多个以逗号隔开
+     */
+    private String leaderName;
+
+    /**
+     * 领导联系电话,多个以逗号隔开
+     */
+    private String leaderPhone;
+
+    /**
+     * 值班人员,多个以逗号隔开
+     */
+    private String rotaPerson;
+
+    /**
+     * 人员联系电话,多个以逗号隔开
+     */
+    private String personName;
+
+    /**
+     * 人员联系电话,多个以逗号隔开
+     */
+    private String personPhone;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 创建人
+     */
+    private Long createBy;
+
+    /**
+     * 更新时间
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateAt;
+
+    /**
+     * 修改人
+     */
+    private Long updateBy;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComSwSafetyWorkRecordDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComSwSafetyWorkRecordDO.java
new file mode 100644
index 0000000..ca924ca
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComSwSafetyWorkRecordDO.java
@@ -0,0 +1,60 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @auther txb
+ * @create 2021-07-27 14:30:41
+ * @describe 实体类
+ */
+
+@Data
+@TableName("com_sw_safety_work_record")
+public class ComSwSafetyWorkRecordDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 创建人
+     */
+    private Long createBy;
+
+    /**
+     * 更新时间
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateAt;
+
+    /**
+     * 修改人
+     */
+    private Long updateBy;
+
+    @Override
+    public String toString() {
+        return "ComSwSafetyWorkRecordDO{" + "id=" + id + ", remark=" + remark + ", createAt=" + createAt + ", createBy="
+            + createBy + ", updateAt=" + updateAt + ", updateBy=" + updateBy + "}";
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComVeteransPopulationDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComVeteransPopulationDO.java
new file mode 100644
index 0000000..1e95ae7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ComVeteransPopulationDO.java
@@ -0,0 +1,323 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+
+import lombok.Data;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 19:48:54
+ * @describe 实有人口导入》退役军人表实体类
+ */
+
+@Data
+@TableName("com_veterans_population")
+@EncryptDecryptClass
+public class ComVeteransPopulationDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 人口id
+     */
+    private Long populationId;
+
+    /**
+     * 街道id
+     */
+    private Long streetId;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 名字
+     */
+    private String name;
+
+    /**
+     * 身份证号码
+     */
+    @EncryptDecryptField
+    private String cardNo;
+
+    /**
+     * 联系电话
+     */
+    private String phone;
+
+    /**
+     * 人员状态:正常、失联、出国(取字典表)
+     */
+    private String personStatus;
+
+    /**
+     * 机构
+     */
+    private String organization;
+
+    /**
+     * 照片
+     */
+    private String photo;
+
+    /**
+     * 户籍性质
+     */
+    private String regiterNature;
+
+    /**
+     * 入伍时间
+     */
+    private Date enlistDate;
+
+    /**
+     * 退伍时间
+     */
+    private Date retireDate;
+
+    /**
+     * 人员类别
+     */
+    private String personCategory;
+
+    /**
+     * 住房状况
+     */
+    private String houseSituation;
+
+    /**
+     * 住房状况其他
+     */
+    private String houseSituationOther;
+
+    /**
+     * 建筑面积
+     */
+    private String buildArea;
+
+    /**
+     * 现就业情况
+     */
+    private String employmentSituation;
+
+    /**
+     * 在职情况类型
+     */
+    private String incumbencyType;
+
+    /**
+     * 现就业情况其他
+     */
+    private String employmentSituationOther;
+
+    /**
+     * 养老保险
+     */
+    private String endowmentInsurance;
+
+    /**
+     * 医疗保险
+     */
+    private String medicalInsurance;
+
+    /**
+     * 现个人年收入(单位:元)
+     */
+    private String annualIncome;
+
+    /**
+     * 父亲健康状况
+     */
+    private String fatherHealthy;
+
+    /**
+     * 母亲健康状况
+     */
+    private String motherHealthy;
+
+    /**
+     * 配偶健康状况
+     */
+    private String spouseHealthy;
+
+    /**
+     * 儿子健康状况
+     */
+    private String sonHealthy;
+
+    /**
+     * 女儿健康状况
+     */
+    private String daughterDealthy;
+
+    /**
+     * 主要困难
+     */
+    private String mainDifficulty;
+
+    /**
+     * 其他困难
+     */
+    private String otherDifficulty;
+
+    /**
+     * 主要诉求
+     */
+    private String mainDemand;
+
+    /**
+     * 主要诉求其他事项问题(手填)
+     */
+    private String mainDemandOther;
+
+    /**
+     * 需参加的学历培训
+     */
+    private String academicTraining;
+
+    /**
+     * 是否已参加退役军人培训(政府性质)1.是 2.否
+     */
+    private Integer isVeteransTraining;
+
+    /**
+     * 入伍前学历
+     */
+    private String educationBeforeEnlistment;
+
+    /**
+     * 再教育学历
+     */
+    private String reEducation;
+
+    /**
+     * 所学专业
+     */
+    private String major;
+
+    /**
+     * 所学专业其他
+     */
+    private String majorOther;
+
+    /**
+     * 曾从事行业(含现从事行业)
+     */
+    private String onceEngagedIndustry;
+
+    /**
+     * 曾从事行业(含现从事行业)其他(手填)
+     */
+    private String onceEngagedIndustryOther;
+
+    /**
+     * 意向就业地点
+     */
+    private String intendedPlaceOfEmployment;
+
+    /**
+     * 意向就业地点其他地区(手填)
+     */
+    private String intendedPlaceOfEmploymentOther;
+
+    /**
+     * 待业期间的求职意向
+     */
+    private String unemploymedEngagedIndustry;
+
+    /**
+     * 待业期间的求职意向其他(手填)
+     */
+    private String unemploymedEngagedIndustryOther;
+
+    /**
+     * 是否有创业意愿(1.是 2.否)
+     */
+    private Integer isBusiness;
+
+    /**
+     * 创业意愿
+     */
+    private String businessDesire;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 填表单位
+     */
+    private String fillUnit;
+
+    /**
+     * 填表人
+     */
+    private String fillPerson;
+
+    /**
+     * 填表人联系电话
+     */
+    private String fillPersonPhone;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 创建用户
+     */
+    private Long createBy;
+
+    /**
+     * 修改时间
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateAt;
+
+    /**
+     * 修改用户
+     */
+    private Long updateBy;
+
+    @Override
+    public String toString() {
+        return "ComVeteransPopulationDO{" + "id=" + id + ", populationId=" + populationId + ", streetId=" + streetId
+            + ", communityId=" + communityId + ", name=" + name + ", cardNo=" + cardNo + ", phone=" + phone
+            + ", personStatus=" + personStatus + ", organization=" + organization + ", photo=" + photo
+            + ", regiterNature=" + regiterNature + ", enlistDate=" + enlistDate + ", retireDate=" + retireDate
+            + ", personCategory=" + personCategory + ", houseSituation=" + houseSituation + ", houseSituationOther="
+            + houseSituationOther + ", buildArea=" + buildArea + ", employmentSituation=" + employmentSituation
+            + ", incumbencyType=" + incumbencyType + ", employmentSituationOther=" + employmentSituationOther
+            + ", endowmentInsurance=" + endowmentInsurance + ", medicalInsurance=" + medicalInsurance
+            + ", annualIncome=" + annualIncome + ", fatherHealthy=" + fatherHealthy + ", motherHealthy=" + motherHealthy
+            + ", spouseHealthy=" + spouseHealthy + ", sonHealthy=" + sonHealthy + ", daughterDealthy=" + daughterDealthy
+            + ", mainDifficulty=" + mainDifficulty + ", otherDifficulty=" + otherDifficulty + ", mainDemand="
+            + mainDemand + ", mainDemandOther=" + mainDemandOther + ", academicTraining=" + academicTraining
+            + ", isVeteransTraining=" + isVeteransTraining + ", educationBeforeEnlistment=" + educationBeforeEnlistment
+            + ", reEducation=" + reEducation + ", major=" + major + ", majorOther=" + majorOther
+            + ", onceEngagedIndustry=" + onceEngagedIndustry + ", onceEngagedIndustryOther=" + onceEngagedIndustryOther
+            + ", intendedPlaceOfEmployment=" + intendedPlaceOfEmployment + ", intendedPlaceOfEmploymentOther="
+            + intendedPlaceOfEmploymentOther + ", unemploymedEngagedIndustry=" + unemploymedEngagedIndustry
+            + ", unemploymedEngagedIndustryOther=" + unemploymedEngagedIndustryOther + ", isBusiness=" + isBusiness
+            + ", businessDesire=" + businessDesire + ", remark=" + remark + ", fillUnit=" + fillUnit + ", fillPerson="
+            + fillPerson + ", fillPersonPhone=" + fillPersonPhone + ", createAt=" + createAt + ", createBy=" + createBy
+            + ", updateAt=" + updateAt + ", updateBy=" + updateBy + "}";
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ConvenientConsultationStatisticsDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ConvenientConsultationStatisticsDO.java
new file mode 100644
index 0000000..38d3dd3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ConvenientConsultationStatisticsDO.java
@@ -0,0 +1,42 @@
+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 lombok.Data;
+
+/**
+ * @title: ConvenientConsultationStatisticsDO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务商家咨询量统计DO
+ * @author: hans
+ * @date: 2021/09/23 13:56
+ */
+@Data
+@TableName(value = "com_convenient_consultation_statistics")
+public class ConvenientConsultationStatisticsDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 商家id
+     */
+    private Long merchantId;
+    /**
+     * 统计日期
+     */
+    private Date statisticDate;
+    /**
+     * 咨询量
+     */
+    private Integer consultationVolume;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ConvenientElevatingPointDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ConvenientElevatingPointDO.java
new file mode 100644
index 0000000..1e7f6a6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ConvenientElevatingPointDO.java
@@ -0,0 +1,106 @@
+package com.panzhihua.service_community.model.dos;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @ClassName: ConvenientElevatingPoint
+ * @Author: yh
+ * @Date: 2022/11/8 9:27
+ * @Description: 自提点
+ */
+@Data
+@TableName(value = "com_convenient_elevating_point")
+public class ConvenientElevatingPointDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 自提点名称
+     */
+    private String name;
+    /**
+     * 社区id
+     */
+    private String communityId;
+    /**
+     * 社区名称
+     */
+    private String communityName;
+    /**
+     * 提货点地址
+     */
+    private String address;
+
+    /**
+     * 提货点地址详细地址
+     */
+    private String detailAddress;
+    /**
+     * 联系人
+     */
+    private String contacts;
+    /**
+     * 纬度
+     */
+    private String lat;
+    /**
+     * 经度
+     */
+    private String lon;
+    /**
+     * 联系电话
+     */
+    private String phone;
+    /**
+     * 微信账号
+     */
+    private String wechatAccount;
+    /**
+     * 状态,1:显示,2:隐藏
+     */
+    private Integer businessStatus;
+    /**
+     * 累计商品数量
+     */
+    private Long cumulativeGoodsNum;
+    /**
+     * 待提货数量
+     */
+    private Long prepareGoodsNum;
+    /**
+     * 已提货数量
+     */
+    private Long alreadyGoodsNum;
+    /**
+     * 是否删除
+     */
+    private Boolean isDel;
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createdAt;
+
+    /**
+     * 创建人
+     */
+    private Long createdBy;
+    /**
+     * 更新时间
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updatedAt;
+    /**
+     * 更新人
+     */
+    private Long updatedBy;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ConvenientGoodsCategoryDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ConvenientGoodsCategoryDO.java
new file mode 100644
index 0000000..4360770
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ConvenientGoodsCategoryDO.java
@@ -0,0 +1,68 @@
+package com.panzhihua.service_community.model.dos;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @title: ConvenientGoodsCategoryDO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 商品分类DO
+ * @author: yh
+ * @date: 2022-10-21 09:36:09
+ */
+@Data
+@TableName(value = "com_convenient_goods_categories")
+public class ConvenientGoodsCategoryDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 分类名称
+     */
+    private String name;
+    /**
+     * 分类图标
+     */
+    private String icon;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 权重
+     */
+    private Integer weight;
+    /**
+     * 是否删除
+     */
+    private Boolean isDel;
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createdAt;
+
+    /**
+     * 创建人
+     */
+    private Long createdBy;
+    /**
+     * 更新时间
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updatedAt;
+    /**
+     * 更新人
+     */
+    private Long updatedBy;
+
+    private String areaCode;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ConvenientMerchantDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ConvenientMerchantDO.java
new file mode 100644
index 0000000..67b0292
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ConvenientMerchantDO.java
@@ -0,0 +1,150 @@
+package com.panzhihua.service_community.model.dos;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @title: ConvenientMerchantDO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务商家DO
+ * @author: hans
+ * @date: 2021/09/16 16:04
+ */
+@Data
+@TableName(value = "com_convenient_merchants")
+public class ConvenientMerchantDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 商家名称
+     */
+    private String name;
+    /**
+     * 社区id
+     */
+    private Long communityId;
+    /**
+     * 社区名称
+     */
+    private String communityName;
+    /**
+     * 商家logo
+     */
+    private String logo;
+    /**
+     * 联系人
+     */
+    private String contacts;
+    /**
+     * 身份证号码
+     */
+    private String idCard;
+    /**
+     * 咨询电话
+     */
+    private String phone;
+    /**
+     * 商家地址
+     */
+    private String address;
+
+    /**
+     * 详细地址
+     */
+    private String detailedAddress;
+    /**
+     * 纬度
+     */
+    private String lat;
+    /**
+     * 经度
+     */
+    private String lon;
+    /**
+     * 营业开始时间
+     */
+    private Date beginAt;
+    /**
+     * 营业截止时间
+     */
+    private Date endAt;
+    /**
+     * 营业周期
+     */
+    private String period;
+    /**
+     * 商家介绍
+     */
+    private String introduction;
+    /**
+     * 营业状态
+     */
+    private Boolean businessStatus;
+    /**
+     * 商家绑定用户id
+     */
+    private Long userId;
+    /**
+     * 咨询量
+     */
+    private Integer consultationVolume;
+    /**
+     * 浏览量
+     */
+    private Integer viewNum;
+    /**
+     * 是否删除
+     */
+    private Boolean isDel;
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createdAt;
+
+    /**
+     * 创建人
+     */
+    private Long createdBy;
+    /**
+     * 更新时间
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updatedAt;
+    /**
+     * 更新人
+     */
+    private Long updatedBy;
+
+    private String areaCode;
+
+    /**
+     * 服务范围
+     */
+    private Integer serviceRange;
+
+    /**
+     * 手机号
+     */
+    private String mobilePhone;
+
+    /**
+     * 店铺销量
+     */
+    private Integer sale;
+
+    /**
+     * 店铺销售额
+     */
+    private BigDecimal saleVolume;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ConvenientProductCategoryDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ConvenientProductCategoryDO.java
new file mode 100644
index 0000000..b220de0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ConvenientProductCategoryDO.java
@@ -0,0 +1,65 @@
+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;
+
+/**
+ * @title: ConvenientProductCategoryDO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务产品分类DO
+ * @author: hans
+ * @date: 2021/09/20 16:12
+ */
+@Data
+@TableName(value = "com_convenient_product_categories")
+public class ConvenientProductCategoryDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 分类名称
+     */
+    private String name;
+    /**
+     * 分类所属商家
+     */
+    private Long merchantId;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 权重
+     */
+    private Integer weight;
+    /**
+     * 是否删除
+     */
+    private Boolean isDel;
+    /**
+     * 创建时间
+     */
+    private Date createdAt;
+    /**
+     * 创建人
+     */
+    private Long createdBy;
+    /**
+     * 更新时间
+     */
+    private Date updatedAt;
+    /**
+     * 更新人
+     */
+    private Long updatedBy;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ConvenientProductDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ConvenientProductDO.java
new file mode 100644
index 0000000..b31f6a9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ConvenientProductDO.java
@@ -0,0 +1,77 @@
+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;
+
+/**
+ * @title: ConvenientProductDO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务商家DO
+ * @author: hans
+ * @date: 2021/09/16 21:01
+ */
+@Data
+@TableName(value = "com_convenient_products")
+public class ConvenientProductDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 产品名称
+     */
+    private String name;
+    /**
+     * 产品分类id
+     */
+    private Long categoryId;
+    /**
+     * 产品所属商家
+     */
+    private Long merchantId;
+    /**
+     * 是否上架
+     */
+    private Boolean onShelf;
+    /**
+     * 上架时间
+     */
+    private Date onShelfAt;
+    /**
+     * 产品介绍
+     */
+    private String introduction;
+    /**
+     * 是否删除
+     */
+    private Boolean isDel;
+    /**
+     * 浏览量
+     */
+    private Integer viewNum;
+    /**
+     * 创建时间
+     */
+    private Date createdAt;
+    /**
+     * 创建人
+     */
+    private Long createdBy;
+    /**
+     * 更新时间
+     */
+    private Date updatedAt;
+    /**
+     * 更新人
+     */
+    private Long updatedBy;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ConvenientProductSpecificationDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ConvenientProductSpecificationDO.java
new file mode 100644
index 0000000..ce0e313
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ConvenientProductSpecificationDO.java
@@ -0,0 +1,66 @@
+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.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @title: ConvenientProductSpecificationDO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务产品分类DO
+ * @author: hans
+ * @date: 2021/09/21 22:08
+ */
+@Data
+@TableName(value = "com_convenient_product_specifications")
+public class ConvenientProductSpecificationDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 规格名称
+     */
+    private String name;
+    /**
+     * 价格
+     */
+    private BigDecimal price;
+    /**
+     * 产品规格图片
+     */
+    private String image;
+    /**
+     * 所属产品ID
+     */
+    private Long productId;
+    /**
+     * 是否删除
+     */
+    private Boolean isDel;
+    /**
+     * 创建时间
+     */
+    private Date createdAt;
+    /**
+     * 创建人
+     */
+    private Long createdBy;
+    /**
+     * 更新时间
+     */
+    private Date updatedAt;
+    /**
+     * 更新人
+     */
+    private Long updatedBy;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ConvenientServiceCategoryDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ConvenientServiceCategoryDO.java
new file mode 100644
index 0000000..d033e6c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ConvenientServiceCategoryDO.java
@@ -0,0 +1,70 @@
+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: ConvenientServiceCategoryDO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务分类DO
+ * @author: hans
+ * @date: 2021/09/16 10:35
+ */
+@Data
+@TableName(value = "com_convenient_service_categories")
+public class ConvenientServiceCategoryDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 分类名称
+     */
+    private String name;
+    /**
+     * 分类图标
+     */
+    private String icon;
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 权重
+     */
+    private Integer weight;
+    /**
+     * 是否删除
+     */
+    private Boolean isDel;
+    /**
+     * 创建时间
+     */
+    private Date createdAt;
+    /**
+     * 创建人
+     */
+    private Long createdBy;
+    /**
+     * 更新时间
+     */
+    private Date updatedAt;
+    /**
+     * 更新人
+     */
+    private Long updatedBy;
+
+    private String areaCode;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ConvenientViewStatisticsDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ConvenientViewStatisticsDO.java
new file mode 100644
index 0000000..2284122
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ConvenientViewStatisticsDO.java
@@ -0,0 +1,42 @@
+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 lombok.Data;
+
+/**
+ * @title: ConvenientViewStatisticsDO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务商家浏览量统计DO
+ * @author: hans
+ * @date: 2021/09/23 16:54
+ */
+@Data
+@TableName(value = "com_convenient_view_statistics")
+public class ConvenientViewStatisticsDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 商家id
+     */
+    private Long merchantId;
+    /**
+     * 统计日期
+     */
+    private Date statisticDate;
+    /**
+     * 浏览量
+     */
+    private Integer viewNum;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/DisabledPersonsDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/DisabledPersonsDO.java
new file mode 100644
index 0000000..ef2319b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/DisabledPersonsDO.java
@@ -0,0 +1,115 @@
+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.TableField;
+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;
+
+/**
+ * Description 残疾人实体 ClassName DisabledPersons
+ *
+ * @author manailin
+ */
+@Data
+@EncryptDecryptClass
+@TableName("com_disabled_persons")
+public class DisabledPersonsDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+    /**
+     * 主键
+     */
+    private Long id;
+    private Long userId;
+    /**
+     * 街道id
+     */
+    private Long streetId;
+    /**
+     * 社区id
+     */
+    private Long actId;
+    /**
+     * 名字
+     */
+    private String name;
+    /**
+     * 身份证号码
+     */
+    @EncryptDecryptField
+    private String cardNo;
+    /**
+     * 残疾人证编码
+     */
+    private String disableSn;
+    /**
+     * 出生年月
+     */
+    private String birthday;
+    /**
+     * 残疾人证
+     */
+    private String level;
+    /**
+     * 性别(取字典表国家编码)
+     */
+    private String sex;
+    /**
+     * 性别名称
+     */
+    private String sexName;
+    /**
+     * 文化程度(取字典表国家编码))
+     */
+    private String cultureLevel;
+    /**
+     * 民族
+     */
+    private String nation;
+    /**
+     * 残疾部位/类别
+     */
+    private String disableType;
+    /**
+     * 残疾级别
+     */
+    private String disableLevel;
+    /**
+     * 联系电话
+     */
+    @EncryptDecryptField
+    private String phone;
+    /**
+     * 监护人联系电话
+     */
+    @EncryptDecryptField
+    private String guardianPhone;
+    /**
+     * 地址
+     */
+    private String address;
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+    /**
+     * 创建用户
+     */
+    private Long createBy;
+    /**
+     * 修改时间
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateAt;
+    /**
+     * 修改用户
+     */
+    private Long updateBy;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/EldersAuthDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/EldersAuthDO.java
new file mode 100644
index 0000000..9c4d7c8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/EldersAuthDO.java
@@ -0,0 +1,94 @@
+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;
+
+/**
+ * 高龄认证实体类
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ */
+@Data
+@TableName("com_elders_auth")
+@EncryptDecryptClass
+public class EldersAuthDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * ID 列: ID
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 创建人 列: CREATE_BY
+     */
+    private Long createBy;
+    /**
+     * 创建时间 列: CREATE_AT
+     */
+    private Date createAt;
+    /**
+     * 更新人 列: UPDATE_BY
+     */
+    private Long updateBy;
+    /**
+     * 更新时间 列: UPDATE_AT
+     */
+    private Date updateAt;
+    /**
+     * 身份证 列: ID_CARD
+     */
+    @EncryptDecryptField
+    private String idCard;
+    /**
+     * 认证人姓名 列: AUTH_USER_NAME
+     */
+    private String authUserName;
+    /**
+     * 视频地址 列: VIDEO_URL
+     */
+    private String videoUrl;
+    /**
+     * 提交人 列: SUMIT_USER_ID
+     */
+    private Long sumitUserId;
+    /**
+     * 户籍地 列: DOMICILE
+     */
+    private String domicile;
+    /**
+     * 状态 列: STATUS
+     */
+    private String status;
+    /**
+     * 出生日期 列: BIRTH_DAY
+     */
+    private Date birthDay;
+    /**
+     * 家庭成员ID 列: FAMILY_USER_ID
+     */
+    private Long familyUserId;
+    /**
+     * 年龄 列: age
+     */
+    private Integer age;
+    /**
+     * 核验类型(1.视频认证 2.人脸核验) 列:type
+     */
+    private Integer type;
+    /**
+     * 人脸核验结果数据 列:verification_result
+     */
+    private String verificationResult;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/EldersAuthFeedbackDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/EldersAuthFeedbackDO.java
new file mode 100644
index 0000000..2af939c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/EldersAuthFeedbackDO.java
@@ -0,0 +1,54 @@
+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 lombok.Data;
+
+/**
+ * 高龄认证社区反馈实体类
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ */
+@Data
+@TableName("com_elders_auth_feedback")
+public class EldersAuthFeedbackDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * ID 列: ID
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 创建人 列: CREATE_BY
+     */
+    private Long createBy;
+    /**
+     * 创建时间 列: CREATE_AT
+     */
+    private Date createAt;
+    /**
+     * 更新人 列: UPDATE_BY
+     */
+    private Long updateBy;
+    /**
+     * 更新时间 列: UPDATE_AT
+     */
+    private Date updateAt;
+    /**
+     * 认证ID 列: AUTH_ID
+     */
+    private Long authId;
+    /**
+     * 反馈结果 列: FEED_BACK
+     */
+    private String feedBack;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/EventDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/EventDO.java
new file mode 100644
index 0000000..fc1d6e5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/EventDO.java
@@ -0,0 +1,230 @@
+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;
+
+/**
+ * 事件实体类
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@TableName("event")
+public class EventDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id 列: id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 服务单号 列: order_sn
+     */
+    private String orderSn;
+    /**
+     * 1、办件事件2是宣传事件3是阅读事件 列: event_category
+     */
+    private Long eventCategory;
+    /**
+     * 网格员所处的街道 列: grid_member_street
+     */
+    private Long gridMemberStreet;
+    /**
+     * 网格员所处社区 列: grid_member_community
+     */
+    private Long gridMemberCommunity;
+    /**
+     * 网格ID 列: grid_id
+     */
+    private Long gridId;
+    /**
+     * 网格员 列: grid_member_id
+     */
+    private Long gridMemberId;
+    /**
+     * 网格员名字 列: grid_member_name
+     */
+    private String gridMemberName;
+    /**
+     * 网格员联系方式 列: grid_member_telephone
+     */
+    private String gridMemberTelephone;
+    /**
+     * 事件标题 列: event_title
+     */
+    private String eventTitle;
+    /**
+     * 宣传类型 列: propaganda_type
+     */
+    private String propagandaType;
+    /**
+     * 宣传时间 列: propaganda_time
+     */
+    private Date propagandaTime;
+    /**
+     * 当event_type_category是1填写事件分类1治安隐患、2公共服务、3矛盾纠纷、4不稳定因素、5突发事件、6特殊人群信息上报 列: event_type
+     */
+    private Integer eventType;
+    /**
+     * 事件类型 列: event_clazz
+     */
+    private String eventClazz;
+    /**
+     * 事件描述 列: event_des
+     */
+    private String eventDes;
+    /**
+     * 宣传对象 列: propaganda_object
+     */
+    private String propagandaObject;
+    /**
+     * 宣传人数 列: propaganda_num
+     */
+    private String propagandaNum;
+    /**
+     * 社区处理(0是无需社区1是社区处理) 列: community_process
+     */
+    private Integer communityProcess;
+    /**
+     * 发生时间 列: happen_time
+     */
+    private Date happenTime;
+    /**
+     * 事件发生地点备注 列: happent_address
+     */
+    private String happentAddress;
+    /**
+     * 事件发生地点 列: happen_address
+     */
+    private String happenAddress;
+    /**
+     * 发生的精度纬度信息(逗号隔开) 列: happent_lat_lng
+     */
+    private String happentLatLng;
+    /**
+     * 事件状态(1草稿箱2发布3逻辑删除4、撤销) 列: event_status
+     */
+    private Integer eventStatus;
+    /**
+     * 1待处理2已解决3待验证 列: event_process_status
+     */
+    private Integer eventProcessStatus;
+    /**
+     * 当前处理对象类型(1、网格员2、社区3、是街道) 列: process_type
+     */
+    private Integer processType;
+    /**
+     * 处理人ID 列: process_user_id
+     */
+    private Long processUserId;
+    /**
+     * 处理流程记录ID 列: process_record_id
+     */
+    private Long processRecordId;
+    /**
+     * 处理人名称 列: process_user_name
+     */
+    private String processUserName;
+    /**
+     * 处理时间 列: process_date
+     */
+    private Date processDate;
+    /**
+     * 解决人针对解决事件的处理描述 列: process_desc
+     */
+    private String processDesc;
+    /**
+     * 事件来源 列: event_resource
+     */
+    private String eventResource;
+    /**
+     * 危险级别 列: danger_level
+     */
+    private Integer dangerLevel;
+    /**
+     * 红牌 列: red_card
+     */
+    private Boolean redCard;
+    /**
+     * 黄牌 列: yellow_card
+     */
+    private Boolean yellowCard;
+    /**
+     * 是否有效 列: invalid
+     */
+    private Boolean invalid;
+    /**
+     * 是否重大 列: major
+     */
+    private Boolean major;
+    /**
+     * 死亡人数 列: deaths_number
+     */
+    private Integer deathsNumber;
+    /**
+     * 受伤人数 列: injuries_number
+     */
+    private Integer injuriesNumber;
+    /**
+     * 是否疑难事件 列: difficult
+     */
+    private Boolean difficult;
+    /**
+     * 是否紧急 列: urgent
+     */
+    private Boolean urgent;
+    /**
+     * 是否催办 列: urgent_dell
+     */
+    private Boolean urgentDell;
+    /**
+     * 上报提交时间 列: submit_date
+     */
+    private Date submitDate;
+    /**
+     * 事件处理状态 列: event_deal_status
+     */
+    private Integer eventDealStatus;
+    /**
+     * 创建人 列: create_by
+     */
+    private Long createBy;
+    /**
+     * 创建时间 列: create_at
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+    /**
+     * 修改人 列: update_by
+     */
+    private Long updateBy;
+    /**
+     * 修改时间 列: update_at
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateAt;
+
+    private Boolean upload;
+
+    /**
+     * 撤销人/社区ID 列: revoke_id
+     */
+    private Long revokeId;
+    /**
+     * 修改时间 列: revoke_type
+     */
+    private Integer revokeType;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/EventResourceDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/EventResourceDO.java
new file mode 100644
index 0000000..1616b01
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/EventResourceDO.java
@@ -0,0 +1,66 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * 事件或者走访中关联的图片音频和视频文件实体类
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@TableName("event_resource")
+public class EventResourceDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 分类(1、事件 2、走访 3、事件流转) 列: classification
+     */
+    private Integer classification;
+    /**
+     * ID 列: id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 事件或者走访任务关联ID 列: id
+     */
+    private Long refId;
+    /**
+     * 事件上传的资源类型(1是图片2是音频3是是视频) 列: type
+     */
+    private Integer type;
+    /**
+     * 资源名称 列: resource_name
+     */
+    private String resourceName;
+    /**
+     * 资源大小 列: resource_size
+     */
+    private String resourceSize;
+    /**
+     * 视频或音频时长 列: resource_time
+     */
+    private Integer resourceTime;
+    /**
+     * 事件上传的资源URL地址 列: url
+     */
+    private String url;
+    /**
+     * 创建人 列: create_by
+     */
+    private Long createBy;
+    /**
+     * 创建时间 列: create_at
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/GridBuildRelationDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/GridBuildRelationDO.java
new file mode 100644
index 0000000..d3740dd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/GridBuildRelationDO.java
@@ -0,0 +1,44 @@
+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 lombok.Data;
+
+/**
+ * Description 网格和建筑或楼栋关联表 ClassName GridBuildRelation
+ * 
+ * @author manailin
+ */
+@Data
+@TableName(value = "event_grid_building_relation")
+public class GridBuildRelationDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+    /** 主键 */
+    @TableId(value = "id", type = IdType.INPUT)
+    private Long id;
+    /** 网格所属街道 */
+    private Long gridStreetId;
+    /** 网格所属社区ID */
+    private Long gridCommunityId;
+    /** 网格ID */
+    private Long gridId;
+    /** 网格名称 */
+    private String gridName;
+    /** 小区类型(1.城镇 2.农村 3.未知) */
+    private Integer type;
+    /** 小区表ID */
+    private Long villageId;
+    /** 楼栋ID */
+    private Long buildId;
+    private String buildName;
+    /** 创建人 */
+    private Long createBy;
+    /** 创建时间 */
+    private Date createAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/Highlist.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/Highlist.java
new file mode 100644
index 0000000..97fa13f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/Highlist.java
@@ -0,0 +1,18 @@
+package com.panzhihua.service_community.model.dos;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zzj
+ */
+@Data
+public class Highlist {
+    private String type;
+    private String province;
+    private String city;
+    private String county;
+    private String area_name;
+    private List<String> communitys;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/KeyPersonInfoDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/KeyPersonInfoDO.java
new file mode 100644
index 0000000..bcc192c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/KeyPersonInfoDO.java
@@ -0,0 +1,149 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptField;
+
+import lombok.Data;
+
+/**
+ * Description 重点人员信息 ClassName KeyPersonInfo
+ *
+ * @author manailin
+ */
+@Data
+@EncryptDecryptClass
+@TableName("com_key_person_info")
+public class KeyPersonInfoDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.INPUT)
+    private Long id;
+    /**
+     * 街道id
+     */
+    private Long streetId;
+    /**
+     * 姓名
+     */
+    private String name;
+    /**
+     * 性别(取字典表国家编码)
+     */
+    private String sex;
+    /**
+     * 性别名称
+     */
+    private String sexName;
+    /**
+     * 身份证号码
+     */
+    @EncryptDecryptField
+    private String cardNo;
+    /**
+     * 联系方式
+     */
+    @EncryptDecryptField
+    private String phone;
+    /**
+     * 民族
+     */
+    private String nation;
+    /**
+     * 户口所在地
+     */
+    private String censusRegister;
+    /**
+     * 居住地址
+     */
+    @EncryptDecryptField
+    private String address;
+    /**
+     * 地址精度纬度信息(逗号隔开)
+     */
+    private String visiterAddressLatLng;
+    /**
+     * 人员类型1吸毒2严重精神障碍3刑释人员4社区矫正人员
+     */
+    private Integer visiterType;
+    /**
+     * (法轮功类填写)基本情况
+     */
+    private String basicInfo;
+    /**
+     * 是否有效
+     */
+    private Boolean invalid;
+    /**
+     * 备注
+     */
+    private String note;
+    /**
+     * 文化程度(取字典表国家编码))
+     */
+    private String cultureLevel;
+    /**
+     * 经济状态
+     */
+    private String economicLevel;
+    /**
+     * 修改人
+     */
+    private Long updateBy;
+    /**
+     * 修改时间
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateAt;
+    /**
+     * 创建人
+     */
+    private Long createBy;
+    /**
+     * (精神类人群填写)目前诊断
+     */
+    private String diagnose;
+    /**
+     * 上报提交时间
+     */
+    private Date submitDate;
+    /**
+     * (精神类人群填写)监护人名称
+     */
+    private String guardian;
+    /**
+     * (精神类人群填写)监护人电话
+     */
+    @EncryptDecryptField
+    private String guardianPhone;
+    /**
+     * (精神类人群填写)监护人关系
+     */
+    private String guardianRelation;
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date createAt;
+    /**
+     * 社区id
+     */
+
+    private Long actId;
+    /**
+     * 小区id(实有房屋id)
+     */
+
+    private Long villageId;
+    /**
+     * 用户ID
+     */
+
+    private Long userId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/Middlelist.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/Middlelist.java
new file mode 100644
index 0000000..7a67387
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/Middlelist.java
@@ -0,0 +1,18 @@
+package com.panzhihua.service_community.model.dos;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zzj
+ */
+@Data
+public class Middlelist {
+    private String type;
+    private String province;
+    private String city;
+    private String county;
+    private String area_name;
+    private List<String> communitys;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ReturnData.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ReturnData.java
new file mode 100644
index 0000000..d13a936
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/ReturnData.java
@@ -0,0 +1,17 @@
+package com.panzhihua.service_community.model.dos;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @author zzj
+ */
+@Data
+public class ReturnData {
+    private String end_update_time;
+    private int hcount;
+    private int mcount;
+    private List<Highlist> highlist;
+    private List<Middlelist> middlelist;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/SysConfDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/SysConfDO.java
new file mode 100644
index 0000000..ad5ab33
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/dos/SysConfDO.java
@@ -0,0 +1,59 @@
+package com.panzhihua.service_community.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * 系统配置实体类
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-06-09
+ */
+@Data
+@TableName("sys_conf")
+public class SysConfDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id 列: id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 参数名 列: name
+     */
+    private String name;
+    /**
+     * 参数唯一编码 列: code
+     */
+    private String code;
+    /**
+     * 参数值 列: value
+     */
+    private String value;
+    /**
+     * 参数描述 列: description
+     */
+    private String description;
+    /**
+     * 创建时间 列: create_at
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+    /**
+     * 创建用户 列: create_by
+     */
+    private Long createBy;
+    /**
+     * 社区id 列: community_id
+     */
+    private Long communityId;
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/helper/encrypt/ParammeterInterceptor.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/helper/encrypt/ParammeterInterceptor.java
new file mode 100644
index 0000000..4512d93
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/helper/encrypt/ParammeterInterceptor.java
@@ -0,0 +1,118 @@
+package com.panzhihua.service_community.model.helper.encrypt;
+
+import java.lang.reflect.Field;
+import java.sql.PreparedStatement;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Properties;
+
+import org.apache.ibatis.binding.BindingException;
+import org.apache.ibatis.binding.MapperMethod;
+import org.apache.ibatis.executor.parameter.ParameterHandler;
+import org.apache.ibatis.plugin.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.core.annotation.AnnotationUtils;
+import org.springframework.stereotype.Component;
+
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.EncryptQuery;
+import com.panzhihua.common.model.helper.encrypt.EncryptQueryClass;
+import com.panzhihua.common.model.helper.encrypt.IEncryptDecrypt;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 加密拦截器 包含加密字段查询时 的加密步骤
+ * 
+ * @author cedoo
+ * @since 2021-4-1 10:40:52
+ */
+@Intercepts({@Signature(type = ParameterHandler.class, method = "setParameters", args = PreparedStatement.class),})
+@ConditionalOnProperty(value = "domain.encrypt", havingValue = "true")
+@Component
+@Slf4j
+public class ParammeterInterceptor implements Interceptor {
+
+    @Autowired
+    private IEncryptDecrypt encryptDecrypt;
+
+    @Override
+    public Object intercept(Invocation invocation) throws Throwable {
+        // 拦截 ParameterHandler 的 setParameters 方法 动态设置参数
+        if (invocation.getTarget() instanceof ParameterHandler) {
+            ParameterHandler parameterHandler = (ParameterHandler)invocation.getTarget();
+            PreparedStatement ps = (PreparedStatement)invocation.getArgs()[0];
+
+            // 反射获取 参数对像
+            Field parameterField = parameterHandler.getClass().getDeclaredField("parameterObject");
+            parameterField.setAccessible(true);
+            Object parameterObject = parameterField.get(parameterHandler);
+            if (Objects.nonNull(parameterObject)) {
+                Class<?> parameterObjectClass = parameterObject.getClass();
+                EncryptDecryptClass encryptDecryptClass =
+                    AnnotationUtils.findAnnotation(parameterObjectClass, EncryptDecryptClass.class);
+                if (Objects.nonNull(encryptDecryptClass)) {
+                    Field[] declaredFields = parameterObjectClass.getDeclaredFields();
+                    final Object encrypt = encryptDecrypt.encrypt(declaredFields, parameterObject);
+                }
+                /**
+                 * 通过加密字段查询时, 将查询参数中的加密字段加密后查询
+                 */
+                if (parameterObjectClass == MapperMethod.ParamMap.class) {
+                    MapperMethod.ParamMap paramMap = (MapperMethod.ParamMap)parameterObject;
+                    boolean encrypted = false;
+                    try {
+                        /**
+                         * 分页插件,会在分页查询时 进行多次查询,需要判断是否已对加密参数加密,防止多次加密后,查询失败
+                         */
+                        encrypted = paramMap.get("encrypted") != null;
+                    } catch (BindingException be) {
+                        encrypted = false;
+                    }
+                    if (!encrypted) {
+                        Iterator iterator = paramMap.entrySet().iterator();
+                        while (iterator.hasNext()) {
+                            Map.Entry<String, Object> entry = (Map.Entry<String, Object>)iterator.next();
+                            if (entry.getKey().startsWith("param")) {
+                                Object v = entry.getValue();
+                                if (v != null) {
+                                    EncryptQueryClass encryptQueryClass =
+                                        AnnotationUtils.findAnnotation(v.getClass(), EncryptQueryClass.class);
+                                    if (Objects.nonNull(encryptQueryClass)) {
+                                        Field[] declaredFields = v.getClass().getDeclaredFields();
+                                        for (Field field : declaredFields) {
+                                            if (field.isAnnotationPresent(EncryptQuery.class)) {
+                                                try {
+                                                    final Object encrypt =
+                                                        encryptDecrypt.encrypt(new Field[] {field}, v);
+                                                    paramMap.put("encrypted", true);
+                                                } catch (IllegalAccessException e) {
+                                                    e.printStackTrace();
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    }
+
+                }
+
+            }
+        }
+        return invocation.proceed();
+    }
+
+    @Override
+    public Object plugin(Object o) {
+        return Plugin.wrap(o, this);
+    }
+
+    @Override
+    public void setProperties(Properties properties) {
+
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/helper/encrypt/ResultInterceptor.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/helper/encrypt/ResultInterceptor.java
new file mode 100644
index 0000000..9238a1c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/helper/encrypt/ResultInterceptor.java
@@ -0,0 +1,78 @@
+package com.panzhihua.service_community.model.helper.encrypt;
+
+import java.sql.Statement;
+import java.util.ArrayList;
+import java.util.Objects;
+import java.util.Properties;
+
+import org.apache.ibatis.executor.resultset.ResultSetHandler;
+import org.apache.ibatis.plugin.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.core.annotation.AnnotationUtils;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.IEncryptDecrypt;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 解密拦截器
+ *
+ * @author cedoo
+ * @since 2021-4-1 10:40:52
+ */
+@Intercepts({@Signature(type = ResultSetHandler.class, method = "handleResultSets", args = {Statement.class})})
+@ConditionalOnProperty(value = "domain.decrypt", havingValue = "true")
+@Component
+@Slf4j
+@Order(110)
+public class ResultInterceptor implements Interceptor {
+
+    @Autowired
+    private IEncryptDecrypt encryptDecrypt;
+
+    @Override
+    public Object intercept(Invocation invocation) throws Throwable {
+        Object result = invocation.proceed();
+        if (Objects.isNull(result)) {
+            return null;
+        }
+
+        if (result instanceof ArrayList) {
+            ArrayList resultList = (ArrayList)result;
+            if (resultList != null && resultList.size() > 0 && needToDecrypt(resultList.get(0))) {
+                for (int i = 0; i < resultList.size(); i++) {
+                    encryptDecrypt.decrypt(resultList.get(i));
+                }
+            }
+        } else {
+            if (needToDecrypt(result)) {
+                encryptDecrypt.decrypt(result);
+            }
+        }
+        return result;
+    }
+
+    public boolean needToDecrypt(Object object) {
+        if (object != null) {
+            Class<?> objectClass = object.getClass();
+            EncryptDecryptClass encryptDecryptClass =
+                AnnotationUtils.findAnnotation(objectClass, EncryptDecryptClass.class);
+            return Objects.nonNull(encryptDecryptClass);
+        }
+        return false;
+    }
+
+    @Override
+    public Object plugin(Object target) {
+        return Plugin.wrap(target, this);
+    }
+
+    @Override
+    public void setProperties(Properties properties) {
+
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/helper/sensitive/SensitiveInterceptor.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/helper/sensitive/SensitiveInterceptor.java
new file mode 100644
index 0000000..80f7b0f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/model/helper/sensitive/SensitiveInterceptor.java
@@ -0,0 +1,73 @@
+package com.panzhihua.service_community.model.helper.sensitive;
+
+import java.lang.reflect.Field;
+import java.sql.Statement;
+import java.util.List;
+import java.util.stream.Stream;
+
+import org.apache.ibatis.executor.resultset.ResultSetHandler;
+import org.apache.ibatis.plugin.Interceptor;
+import org.apache.ibatis.plugin.Intercepts;
+import org.apache.ibatis.plugin.Invocation;
+import org.apache.ibatis.plugin.Signature;
+import org.apache.ibatis.reflection.MetaObject;
+import org.apache.ibatis.reflection.SystemMetaObject;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+
+import com.panzhihua.common.model.helper.sensitive.Sensitive;
+import com.panzhihua.common.model.helper.sensitive.SensitiveStrategy;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 字段脱敏拦截器
+ * 
+ * @author cedoo
+ * @since 2021-4-1 10:40:52
+ */
+@Intercepts(@Signature(type = ResultSetHandler.class, method = "handleResultSets", args = {Statement.class}))
+@Slf4j
+@ConditionalOnProperty(value = "domain.sensitive", havingValue = "true")
+@Component
+@Order(120)
+public class SensitiveInterceptor implements Interceptor {
+    @SuppressWarnings("unchecked")
+    @Override
+    public Object intercept(Invocation invocation) throws Throwable {
+        // log.debug("脱敏拦截器");
+        List<Object> records = (List<Object>)invocation.proceed();
+        // 对结果集脱敏
+        records.forEach(this::sensitive);
+        return records;
+    }
+
+    private void sensitive(Object source) {
+        if (source != null) {
+            // 拿到返回值类型
+            Class<?> sourceClass = source.getClass();
+            // 初始化返回值类型的 MetaObject
+            MetaObject metaObject = SystemMetaObject.forObject(source);
+            // 捕捉到属性上的标记注解 @Sensitive 并进行对应的脱敏处理
+            Stream.of(sourceClass.getDeclaredFields()).filter(field -> field.isAnnotationPresent(Sensitive.class))
+                .forEach(field -> doSensitive(metaObject, field));
+        }
+    }
+
+    private void doSensitive(MetaObject metaObject, Field field) {
+        // 拿到属性名
+        String name = field.getName();
+        // 获取属性值
+        Object value = metaObject.getValue(name);
+        // 只有字符串类型才能脱敏 而且不能为null
+        if (String.class == metaObject.getGetterType(name) && value != null) {
+            Sensitive annotation = field.getAnnotation(Sensitive.class);
+            // 获取对应的脱敏策略 并进行脱敏
+            SensitiveStrategy type = annotation.strategy();
+            Object o = type.getDesensitizer().apply((String)value);
+            // 把脱敏后的值塞回去
+            metaObject.setValue(name, o);
+        }
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/schedule/AcidSchedule.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/schedule/AcidSchedule.java
new file mode 100644
index 0000000..507dc69
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/schedule/AcidSchedule.java
@@ -0,0 +1,51 @@
+package com.panzhihua.service_community.schedule;
+
+import com.alibaba.fastjson.JSONArray;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidMemberVO;
+import com.panzhihua.common.model.vos.community.reserve.FiveCount;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.WxUtil;
+import com.panzhihua.common.utlis.WxXCXTempSend;
+import com.panzhihua.service_community.dao.ComActAcidMemberDao;
+import com.panzhihua.service_community.dao.ComActAcidRecordDao;
+import com.panzhihua.service_community.entity.ComActAcidMember;
+import com.panzhihua.service_community.entity.ComActAcidRecord;
+import com.panzhihua.service_community.service.ComActAcidMemberService;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+import static java.util.Objects.nonNull;
+
+/**
+ * 定时每天早上推送当天防疫数据
+ * @author zzj
+ */
+@Component
+public class AcidSchedule {
+    @Resource
+    private ComActAcidMemberDao comActAcidMemberDao;
+    @Resource
+    private ComActAcidRecordDao comActAcidRecordDao;
+
+//    @Scheduled(cron = "0 0 9 * * *")
+//    public void push(){
+//       List<ComActAcidMemberVO> comActAcidMemberList=comActAcidMemberDao.selectPushList("");
+//       comActAcidMemberList.forEach(comActAcidMember -> {
+//           FiveCount fiveCount=comActAcidRecordDao.pushStatics(DateUtils.getDateFormatString(DateUtils.addDay(new Date(),-1),"yyyy-MM-dd"),comActAcidMember.getRelationName());
+//           WxXCXTempSend util = new WxXCXTempSend();
+//           String accessToken = null;
+//           try {
+//               accessToken = util.getAccessToken();
+//           } catch (Exception e) {
+//               e.printStackTrace();
+//           }
+//           WxUtil.sendSubscribeStatics(comActAcidMember.getOpenid(), accessToken, fiveCount, "Yr5idSziLRiRo0t07mcz284sMm41Kr2KsA5UmSc0jWU");
+//       });
+//    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/AutomessageSysUserService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/AutomessageSysUserService.java
new file mode 100644
index 0000000..aa9f981
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/AutomessageSysUserService.java
@@ -0,0 +1,21 @@
+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.entity.AutomessageSysUser;
+
+/**
+ * @ClassName: AutomessageSysUserService
+ * @Author: yh
+ * @Date: 2022/10/21 9:38
+ * @Description: TODO
+ */
+public interface AutomessageSysUserService extends IService<AutomessageSysUser> {
+
+    /**
+     * 通过id查询
+     * @param id
+     * @return
+     */
+    R selectAutomessageSysUserById(Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/BcDictionaryService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/BcDictionaryService.java
new file mode 100644
index 0000000..5cf4af0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/BcDictionaryService.java
@@ -0,0 +1,76 @@
+package com.panzhihua.service_community.service;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.BcDictionaryItemVO;
+import com.panzhihua.common.model.vos.BcDictionaryVO;
+import com.panzhihua.common.model.vos.DictionaryVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.BcDictionaryDO;
+import com.panzhihua.service_community.model.dos.BcDictionaryItemDO;
+
+/**
+ * @author xyh
+ * @date 2021/6/11 16:05
+ */
+public interface BcDictionaryService extends IService<BcDictionaryItemDO> {
+
+    /**
+     * 根据字典key 查询字典项
+     *
+     * @param key
+     * @return
+     */
+    R<List<BcDictionaryVO>> getDictionaryByKey(String key);
+
+    /**
+     * description 根据字典code查询自典项
+     *
+     * @param dictId
+     *            字典类型
+     * @param code
+     *            入参参数
+     * @return BcDictionaryVO 字典
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    BcDictionaryItemVO getByCode(String dictId, String code);
+
+    /**
+     * description 根据字典code查询自典项
+     *
+     * @param dictName
+     *            字典类型
+     * @param dictKey
+     *            入参参数
+     * @param parentId
+     *            入参参数
+     * @return BcDictionaryVO 字典
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    BcDictionaryDO getDictionaryByCode(String dictName, String dictKey, Long parentId);
+
+    /**
+     * 插入字典
+     *
+     * @param dictionaryVO
+     *            字典数据
+     * @return R 是否保存成功
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    R insertDiction(DictionaryVO dictionaryVO);
+
+    /**
+     * 插入字典项
+     *
+     * @param dictionaryVO
+     *            字典数据
+     * @return R 是否保存成功
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    R insertDictionItem(BcDictionaryVO dictionaryVO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/BcRegionService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/BcRegionService.java
new file mode 100644
index 0000000..5be2862
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/BcRegionService.java
@@ -0,0 +1,37 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.entity.BcRegion;
+import org.springframework.web.bind.annotation.RequestParam;
+
+/**
+ * 行政区划表(BcRegion)表服务接口
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 行政区划表相关功能
+ *
+ * @author zzj
+ * @since 2022-04-20 14:26:14
+ */
+public interface BcRegionService extends IService<BcRegion> {
+    /**
+     *
+     * @return
+     */
+    R pageList(String province, String city, String country,String town);
+
+    R selectCommunityCodeByName( String city, String country,String town,String villagetr);
+
+    /**
+     * 四级联动列表
+     * @return
+     */
+    R levelList(Integer level,String code);
+
+    /**
+     * 四级联动列表
+     * @return
+     */
+    R levelListBackstage();
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/BigScreenService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/BigScreenService.java
new file mode 100644
index 0000000..ca58504
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/BigScreenService.java
@@ -0,0 +1,88 @@
+package com.panzhihua.service_community.service;
+
+import java.util.List;
+
+import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenStatisticAgeGenderDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenStatisticPartyActivityDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.PageBigScreenStatisticPartyOrg;
+import com.panzhihua.common.model.vos.R;
+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;
+import com.panzhihua.common.model.vos.community.bigscreen.PartyBuildingMemberVO;
+import org.springframework.web.bind.annotation.RequestParam;
+
+/**
+ * @ClasssName BigScreenService
+ * @Description TODO
+ * @Author cedoo
+ * @Date 2021/6/16
+ * @Version 1.0
+ **/
+public interface BigScreenService {
+    /**
+     * 党员党支部统计信息
+     * 
+     * @param pageBigScreenStatisticPartyOrg
+     * @return
+     */
+    R partyOrgMembers(PageBigScreenStatisticPartyOrg pageBigScreenStatisticPartyOrg);
+
+    /**
+     * 党员年龄占比、男女占比
+     * 
+     * @param bigScreenStatisticAgeGenderDTO
+     * @return
+     */
+    R<BigScreenStatisticAgeGender> ageGender(BigScreenStatisticAgeGenderDTO bigScreenStatisticAgeGenderDTO);
+
+    /**
+     * 党建数据概览
+     * 
+     * @return
+     */
+    R<BigScreenStatisticPartyBuild> bigscreenPartybuild(Long communityId);
+
+    /**
+     * 党员活动参加用户排行榜-TOP3
+     * 
+     * @return
+     */
+    R<List<PartyBuildingMemberVO>> bigscreenPartyactivitytopuser(Long communityId);
+
+    /**
+     * 党员活动
+     * 
+     * @return
+     */
+    R<List<BigScreenStatisticPartyActivity>>
+        bigscreenPartyactivity(BigScreenStatisticPartyActivityDTO bigScreenStatisticPartyActivityDTO);
+
+    /**
+     * 党员活动折线图
+     * @param communityId
+     * @return
+     */
+    R partyActivityLine(Long communityId);
+
+    /**
+     *查询党员积分前3
+     * @param pageBigScreenStatisticPartyOrg
+     * @return
+     */
+    R partyActivityTop(PageBigScreenStatisticPartyOrg pageBigScreenStatisticPartyOrg);
+
+    /**
+     * 服务数据
+     * @param communityId
+     * @return
+     */
+    R serviceData(Long communityId);
+
+    /**
+     * 服务用户
+     * @param communityId
+     * @return
+     */
+    R serviceUser(Long communityId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/BigScreenStatisticsService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/BigScreenStatisticsService.java
new file mode 100644
index 0000000..303d8d5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/BigScreenStatisticsService.java
@@ -0,0 +1,349 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.dtos.PageBaseDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PagePopularMerchantDTO;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+
+/**
+ * @title: BigScreenStatisticsService
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 大屏统计服务类
+ * @author: hans
+ * @date: 2021/12/06 9:56
+ */
+public interface BigScreenStatisticsService {
+
+    /**
+     * 大数据分析平台-居民自治
+     * @param communityId
+     * @return
+     */
+    R getResidentAutonomy(Long communityId);
+
+    /**
+     * 大数据分析平台-清网治格
+     * @param communityId
+     * @return
+     */
+    R getGridsGovernance(Long communityId);
+
+    /**
+     * 大数据分析平台-社区服务
+     * @param communityId
+     * @return
+     */
+    R getCommunityServiceStatistics(Long communityId);
+
+    /**
+     * 分页获取热度排行商家
+     * @param pagePopularMerchantDTO
+     * @return
+     */
+    R getScreenPopularMerchants(PagePopularMerchantDTO pagePopularMerchantDTO);
+
+    /**
+     * 首页二级页面-微心愿
+     * @param communityId
+     * @return
+     */
+    R indexMicroWish(Long communityId);
+
+    /**
+     * 首页二级页面-随手拍
+     * @param communityId
+     * @return
+     */
+    R indexEasyPhoto(Long communityId);
+
+    /**
+     * 首页二级页面-随手拍展示列表
+     * @return
+     */
+    R indexEasyPhotoList(PageBaseDTO pageBaseDTO);
+
+    /**
+     * 首页二级页面-社区问卷
+     * @param communityId
+     * @return
+     */
+    R indexQuestionnaire(Long communityId);
+
+    /**
+     * 首页二级页面-社区动态
+     * @param communityId
+     * @return
+     */
+    R indexDyn(Long communityId);
+
+    /**
+     * 首页二级页面-社区动态展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    R indexDynList(PageBaseDTO pageBaseDTO);
+
+    /**
+     * 首页二级页面-邻里圈
+     * @param communityId
+     * @return
+     */
+    R indexNeighbor(Long communityId);
+
+    /**
+     * 首页二级页面-邻里圈展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    R indexNeighborList(PageBaseDTO pageBaseDTO);
+
+    /**
+     * 首页二级页面-便民商家
+     * @param communityId
+     * @return
+     */
+    R indexMerchant(Long communityId);
+
+    /**
+     * 首页二级页面-商家展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    R indexMerchantList(PageBaseDTO pageBaseDTO);
+
+    /**
+     * 首页二级页面-微心愿展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    R indexMicroWishList(PageBaseDTO pageBaseDTO);
+
+    /**
+     * 首页二级页面-社区问卷展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    R indexQuestionnaireList(PageBaseDTO pageBaseDTO);
+
+    /**
+     * 首页二级页面-居民活动
+     * @param communityId
+     * @return
+     */
+    R indexResidentAct(Long communityId);
+
+    /**
+     * 首页二级页面-居民活动展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    R indexResidentActList(PageBaseDTO pageBaseDTO);
+
+    /**
+     * 首页二级页面-志愿者活动
+     * @param communityId
+     * @return
+     */
+    R indexVolunteerAct(Long communityId);
+
+    /**
+     * 首页二级页面-志愿者活动展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    R indexVolunteerActList(PageBaseDTO pageBaseDTO);
+
+    /**
+     * 清网治格-根据事件分类获取近1月的社区事件数据
+     * @param type
+     * @param communityId
+     * @return
+     */
+    R getEventList(Integer type, Long communityId);
+
+    /**
+     * 清网治格-社区事件数据分页
+     * @param pageBaseDTO
+     * @return
+     */
+    R pageEventList(PageBaseDTO pageBaseDTO);
+
+    /**
+     * 河门口大屏首页
+     * @return
+     */
+    R hmkBaseInfo(CommonPage commonPage);
+
+    /**
+     * 河门口大屏折线图
+     * @return
+     */
+    R partyProjectActivityLine();
+
+    /**
+     * 活动评分排名
+     * @param commonPage
+     * @return
+     */
+    R projectActivityProject(CommonPage commonPage);
+
+    /**
+     * 根据责任方名字查询项目类型饼状图
+     * @param name
+     * @return
+     */
+    R projectType(String name);
+
+    /**
+     * 金沙定制页面-党建引领基础数据
+     * @param communityId
+     * @return
+     */
+    R getPartyBuildIngBaseData(Long communityId);
+
+    /**
+     * 党员活动展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    R pagePartyBuildIngAct(PageBaseDTO pageBaseDTO);
+
+    /**
+     * 议事投票展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    R pagePartyBuildIngDiscuss(PageBaseDTO pageBaseDTO);
+
+    /**
+     * 金沙定制页面-四长四员
+     * @param communityId
+     * @return
+     */
+    R getFourMemberBaseData(Long communityId);
+
+    /**
+     * 杨家坪定制页面-五微服务
+     * @param communityId
+     * @return
+     */
+    R getFmsBaseData(Long communityId);
+
+    /**
+     * 杨家坪定制页面-微团队展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    R pageFmsTeam(PageBaseDTO pageBaseDTO);
+
+    /**
+     * 杨家坪定制页面-居家养老基础数据
+     * @param communityId
+     * @return
+     */
+    R getAlarmBaseData(Long communityId);
+
+    /**
+     * 杨家坪定制页面-报警记录展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    R pageAlarmRecord(PageBaseDTO pageBaseDTO);
+
+    /**
+     * 杨家坪定制页面-报警设备点位图
+     * @param communityId
+     * @return
+     */
+    R getAlarmPointMap(Long communityId);
+
+    /**
+     * 杨家坪定制页面-志愿服务
+     * @param communityId
+     * @return
+     */
+    R getVolunteerBaseData(Long communityId);
+
+    /**
+     * 金沙定制页面-志愿线展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    R pagePartyBuildIngMicroWish(PageBaseDTO pageBaseDTO);
+
+    /**
+     * 金沙定制页面-四长四员解决问题展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    R pageFourMemberResolve(PageBaseDTO pageBaseDTO);
+
+    /**
+     * 金沙定制页面-四长四员院落议事展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    R pageCourtyardDiscuss(PageBaseDTO pageBaseDTO);
+
+    /**
+     * 金沙定制页面-院落议事
+     * @param communityId
+     * @return
+     */
+    R getCourtyardBaseData(Long communityId);
+
+    /**
+     * 孵化中心-基础数据
+     * @param communityId
+     * @return
+     */
+    R getHatchBaseData(Long communityId);
+
+    /**
+     * 孵化中心-孵化成果展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    R pageHatchResult(PageBaseDTO pageBaseDTO);
+
+    /**
+     * 孵化中心-孵化进度展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    R pageHatchSchedule(PageBaseDTO pageBaseDTO);
+
+    /**
+     * 五社联动基础数据
+     * @param communityId
+     * @return
+     */
+    R getFiveAssociationsBaseData(Long communityId);
+
+    /**
+     * 五社联动项目展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    R pageSocialProjectList(PageBaseDTO pageBaseDTO);
+
+    /**
+     * 五社联动社会组织展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    R pageSocialOrgList(PageBaseDTO pageBaseDTO);
+
+    /**
+     * 人大代表
+     * @param communityId
+     * @return
+     */
+    R dpcBase(Long communityId);
+
+    /**
+     * 人大代表-随手拍展示列表
+     * @return
+     */
+    R dpcEasyPhotoList(PageBaseDTO pageBaseDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/CodDataService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/CodDataService.java
new file mode 100644
index 0000000..3b6cabe
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/CodDataService.java
@@ -0,0 +1,18 @@
+package com.panzhihua.service_community.service;
+
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+
+/**
+ * 国务院防疫数据服务层
+ * @author zzj
+ */
+public interface CodDataService {
+    /**
+     * 获取风险区数据
+     */
+    public void getCodData();
+
+    void importData(MultipartFile file) throws IOException;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActAcidCheckRecordService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActAcidCheckRecordService.java
new file mode 100644
index 0000000..0a14d7c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActAcidCheckRecordService.java
@@ -0,0 +1,30 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.dtos.community.acid.ComActAcidCheckRecordDTO;
+import com.panzhihua.common.model.dtos.community.acid.ComActAcidDangerMemberDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.entity.ComActAcidCheckRecord;
+
+/**
+ * 排查跟进表(ComActAcidCheckRecord)表服务接口
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 排查跟进表相关功能
+ *
+ * @author zzj
+ * @since 2022-04-24 16:14:26
+ */
+public interface ComActAcidCheckRecordService extends IService<ComActAcidCheckRecord> {
+    /**
+     * 分页查询
+     * @param comActAcidDangerMemberDTO
+     * @return
+     */
+    R pageList(ComActAcidCheckRecordDTO comActAcidDangerMemberDTO);
+
+    /**
+     * 记录修改前的数据
+     * */
+    void saveRecordBeforeUpdate(ComActAcidCheckRecord comActAcidCheckRecord);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActAcidDangerMemberService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActAcidDangerMemberService.java
new file mode 100644
index 0000000..3be6289
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActAcidDangerMemberService.java
@@ -0,0 +1,33 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.dtos.community.acid.ComActAcidDangerMemberDTO;
+import com.panzhihua.common.model.dtos.community.acid.PageDangerMemberDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.entity.ComActAcidDangerMember;
+
+/**
+ * 风险人员表(ComActAcidDangerMember)表服务接口
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 风险人员表相关功能
+ *
+ * @author zzj
+ * @since 2022-04-24 16:12:10
+ */
+public interface ComActAcidDangerMemberService extends IService<ComActAcidDangerMember> {
+    /**
+     * 分页查询
+     *
+     * @param commonPage
+     * @return
+     */
+    R pageList(ComActAcidDangerMemberDTO commonPage);
+
+    /**
+     * 分页查询风险人员
+     * @param pageDangerMemberDTO
+     * @return
+     */
+    R pageDangerMember(PageDangerMemberDTO pageDangerMemberDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActAcidMemberService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActAcidMemberService.java
new file mode 100644
index 0000000..fe5233b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActAcidMemberService.java
@@ -0,0 +1,40 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.dtos.community.acid.ComActAcidMemberDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidMemberVO;
+import com.panzhihua.service_community.entity.ComActAcidMember;
+
+/**
+ * 防疫工作人员表(ComActAcidMember)表服务接口
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 防疫工作人员表相关功能
+ *
+ * @author zzj
+ * @since 2022-04-24 16:12:07
+ */
+public interface ComActAcidMemberService extends IService<ComActAcidMember> {
+    /**
+     * 分页查询
+     *
+     * @param commonPage
+     * @return
+     */
+    R pageList(ComActAcidMemberDTO commonPage);
+
+    /**
+     * 新增
+     * @param comActAcidMemberVO
+     * @return
+     */
+    R insert(ComActAcidMemberVO comActAcidMemberVO);
+
+    /**
+     * 根据relationName查询推送人员列表
+     * @param relationName
+     * @return
+     */
+    R selectPushList(String relationName);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActAcidRecordService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActAcidRecordService.java
new file mode 100644
index 0000000..0245ee8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActAcidRecordService.java
@@ -0,0 +1,127 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.dtos.community.acid.BatchCheckAcidRecordDTO;
+import com.panzhihua.common.model.dtos.community.acid.ComActAcidRecordDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidRecordVO;
+import com.panzhihua.service_community.entity.ComActAcidRecord;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+
+/**
+ * (ComActAcidRecord)表服务接口
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 相关功能
+ *
+ * @author zzj
+ * @since 2022-04-12 15:29:58
+ */
+public interface ComActAcidRecordService extends IService<ComActAcidRecord> {
+    /**
+     * 分页查询
+     *
+     * @param comActAcidRecordDTO
+     * @return
+     */
+    R pageList(ComActAcidRecordDTO comActAcidRecordDTO);
+
+    /**
+     * 导出
+     * @param comActAcidRecordDTO
+     * @return
+     */
+    R export(ComActAcidRecordDTO comActAcidRecordDTO);
+
+    /**
+     * 导出
+     * @param comActAcidRecordDTO
+     * @return
+     */
+    R exportNew(ComActAcidRecordDTO comActAcidRecordDTO);
+
+    /**
+     * 新增信息
+     * @param comActAcidRecordVO
+     * @return
+     */
+    R insertRecord(ComActAcidRecordVO comActAcidRecordVO);
+
+    /**
+     * 5项统计
+     * @return
+     */
+    R fiveCount(String localCity);
+
+    /**
+     * 5项统计
+     * @return
+     */
+    R fiveCountPlus(String date,String localCity,String loginAccount);
+
+    /**
+     * 图标统计
+     * @return
+     */
+    R charts(String date,String localCity);
+
+    /**
+     * 统计
+     * @return
+     */
+    R statics(String date);
+
+    /**
+     *
+     * @param comActAcidRecordVO
+     * @return
+     */
+    R updateLocalCity(ComActAcidRecordVO comActAcidRecordVO);
+
+    /**
+     *
+     * @param comActAcidRecordVO
+     * @return
+     */
+    R updateApplets(ComActAcidRecordVO comActAcidRecordVO);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    R delete(Long id);
+
+    /**
+     * 小程序查看详情
+     * @param id
+     * @return
+     */
+    R detailByApp(Long id,String localCity);
+
+    /**
+     * 后台查看详情
+     * @param id
+     * @return
+     */
+    R detailByCommunity(Long id);
+
+    R test();
+
+    /**
+     * 批量核对防疫信息数据
+     * @param batchCheckAcidRecordDTO
+     * @return
+     */
+    R batchCheck(BatchCheckAcidRecordDTO batchCheckAcidRecordDTO);
+
+    R checkCommit(Long userId);
+
+    /**
+     * 疫情防控 健康码统计
+     * @return
+     */
+    R selectColorMarkGroup();
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActActEvaluateService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActActEvaluateService.java
new file mode 100644
index 0000000..0d58821
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActActEvaluateService.java
@@ -0,0 +1,46 @@
+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.ComActActEvaluateVO;
+import com.panzhihua.service_community.model.dos.ComActActEvaluateDO;
+/**
+ * title: ComActActEvaluateService  社区》活动》活动评价表服务类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 社区》活动》活动评价表服务类
+ *
+ * @author txb
+ * @date 2021/8/24 10:21
+ */
+public interface ComActActEvaluateService extends IService<ComActActEvaluateDO> {
+
+    /**
+     * 社区活动评价功能
+     *
+     * @param comActActEvaluateVO 社区评价VO
+     * @return 评价结果
+     */
+    R activityEvaluate(ComActActEvaluateVO comActActEvaluateVO);
+
+    /**
+     * 定时任务针对活动结束后7天还未评价的用户默认好评
+     * @return 执行结果
+     */
+    R timedTaskActivityDefaultPraise();
+
+    /**
+     * 用户评价列表
+     *
+     * @param userId 用户id
+     * @return 当前用户对所有活动的评价列表
+     */
+    R listEvaluate(Long userId);
+
+    /**
+     * 我的评价
+     * @param userId
+     * @param activityId
+     * @return
+     */
+    R listMyActivityEvaluate(Long userId, Long activityId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActActPictureService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActActPictureService.java
new file mode 100644
index 0000000..26f8fec
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActActPictureService.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.ComActActPictureDO;
+
+/**
+ * title: ComActActPictureService  社区》活动》历史上传图片服务类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 社区》活动》历史上传图片服务类
+ *
+ * @author txb
+ * @date 2021/8/24 10:21
+ */
+public interface ComActActPictureService extends IService<ComActActPictureDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActActPrizeService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActActPrizeService.java
new file mode 100644
index 0000000..4ef7e0b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActActPrizeService.java
@@ -0,0 +1,14 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.model.dos.ComActActPrizeDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 奖品
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 16:31
+ **/
+public interface ComActActPrizeService extends IService<ComActActPrizeDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActActRegistService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActActRegistService.java
new file mode 100644
index 0000000..8ac68bb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActActRegistService.java
@@ -0,0 +1,19 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.ComActActRegistDO;
+
+/**
+ * title: ComActActRegistService  社区》活动》活动签到表服务类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 社区》活动》活动签到表服务类
+ *
+ * @author txb
+ * @date 2021/8/24 10:21
+ */
+public interface ComActActRegistService extends IService<ComActActRegistDO>
+{
+    R updateEndTime();
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActActivityCodeService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActActivityCodeService.java
new file mode 100644
index 0000000..cff4f28
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActActivityCodeService.java
@@ -0,0 +1,16 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.entity.ComActActivityCode;
+
+/**
+ * 签到二维码表(ComActActivityCode)表服务接口
+ *
+ * @author makejava
+ * @since 2021-10-15 15:23:09
+ */
+public interface ComActActivityCodeService extends IService<ComActActivityCode> {
+    R pageList(CommonPage commonPage);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActActivityInviteService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActActivityInviteService.java
new file mode 100644
index 0000000..33869a5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActActivityInviteService.java
@@ -0,0 +1,39 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.ActivityInviteDTO;
+import com.panzhihua.common.model.dtos.community.PageActivityInviteDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.ComActActivityInvite;
+
+import java.util.List;
+
+/**
+ * 活动邀请表(ComActActivityInvite)表服务接口
+ *
+ * @author makejava
+ * @since 2022-08-01 15:54:12
+ */
+public interface ComActActivityInviteService extends IService<ComActActivityInvite> {
+
+    /**
+     * 活动邀请列表
+     * @param pageActivityInviteDTO
+     * @return
+     */
+    R pageActivityInviteList(PageActivityInviteDTO pageActivityInviteDTO);
+
+    /**
+     * 添加邀请人员
+     * @param list
+     * @return
+     */
+    R activityInviteAdd(List<ActivityInviteDTO> list);
+
+    /**
+     * 删除邀请人员
+     * @param id
+     * @return
+     */
+    R activityInviteDelete(Long id);
+}
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
new file mode 100644
index 0000000..8c86fdc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActActivityService.java
@@ -0,0 +1,371 @@
+package com.panzhihua.service_community.service;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.PageBaseDTO;
+import com.panzhihua.common.model.dtos.community.ActivityInviteDTO;
+import com.panzhihua.common.model.dtos.community.PageActivityInviteDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.work.ScreenActActivityListDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.work.ScreenActActivityPeopleListDTO;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.*;
+import com.panzhihua.service_community.model.dos.ComActActivityDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 社区活动
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 14:35
+ **/
+public interface ComActActivityService extends IService<ComActActivityDO> {
+    /**
+     * 新增社区活动
+     * 
+     * @param comActActivityVO
+     *            新增信息
+     * @return 新增结果
+     */
+    R addActivity(ComActActivityVO comActActivityVO);
+
+    /**
+     * 编辑社区活动
+     * 
+     * @param comActActivityVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    R putActivity(ComActActivityVO comActActivityVO);
+
+    /**
+     * 分页查询社区活动
+     *
+     * @param comActActivityVO
+     *            查询参数
+     * @return 分页集合
+     */
+    R pageActivity(ComActActivityVO comActActivityVO);
+
+    /**
+     * 发布活动
+     * 
+     * @param comActActivityVO
+     *            主键id 发布时间
+     * @return 发布结果
+     */
+    R releaseActivity(ComActActivityVO comActActivityVO);
+
+    /**
+     * 取消活动
+     * 
+     * @param comActActivityVO
+     *            取消原因
+     * @return 取消结果
+     */
+    R cancelActivity(ComActActivityVO comActActivityVO);
+
+    /**
+     * 活动详情
+     * 
+     * @param id
+     *            活动id
+     * @param userId
+     *            当前登录者id
+     * @return 详情
+     */
+    ComActActivityVO inforActivity(Long id, Long userId);
+
+    /**
+     * 分页活动报名名单
+     * 
+     * @param activitySignVO
+     *            查询参数
+     * @return 报名人员集合
+     */
+    R listActivitySign(ActivitySignVO activitySignVO);
+
+    /**
+     * 活动报名名单
+     * 
+     * @param activitySignVO
+     *            查询参数
+     * @return 报名人员集合
+     */
+    R listActivitySigns(ActivitySignVO activitySignVO);
+
+    /**
+     * description  getSignLists  查询活动报名名单
+     * @param    activitySignVO  查询参数
+     * @return    R   查询结果
+     * @author txb
+     * @date 2021/8/24 14:03
+     */
+    R getSignLists(ActivitySignVO activitySignVO);
+
+    /**
+     * description  listActivityRegists  分页查询活动评价
+     * @param    comActActEvaluateVO  活动评价vo
+     * @return    R   分页查询结果
+     * @author txb
+     * @date 2021/8/24 14:03
+     */
+    R pageActivityEvaluates(ComActActEvaluateVO comActActEvaluateVO);
+
+    /**
+     * description  getEvaluateLists  查询活动评价
+     * @param    comActActEvaluateVO  查询参数
+     * @return    R   查询结果
+     * @author txb
+     * @date 2021/8/24 14:03
+     */
+    R getEvaluateLists(ComActActEvaluateVO comActActEvaluateVO);
+
+    /**
+     * description  pageActivityRegists  分页查询活动签到
+     * @param    comActActRegistVO  活动签到vo
+     * @return    R   分页查询结果
+     * @author txb
+     * @date 2021/8/24 14:03
+     */
+    R pageActivityRegists(ComActActRegistVO comActActRegistVO);
+
+    /**
+     * description  getRegistLists  查询活动签到
+     * @param    comActActRegistVO  查询参数
+     * @return    R   查询结果
+     * @author txb
+     * @date 2021/8/25 9:33
+     */
+    R getRegistLists(ComActActRegistVO comActActRegistVO);
+
+    /**
+     * description  getRegistLists  查询活动未签到
+     * @param    comActActRegistVO  查询参数
+     * @return    R   查询结果
+     * @author txb
+     * @date 2021/8/25 9:33
+     */
+    R getNoRegistLists(ComActActRegistVO comActActRegistVO);
+
+    /**
+     * description  activityStagistics  活动数据统计
+     * @param activityId 活动id
+     * @return    R   统计结果
+     * @author txb
+     * @date 2021/8/25 13:33
+     */
+    R activityStatistics(Long activityId);
+
+    /**
+     * 获取活动历史封面  getPictureList
+     * @param userId 用户id
+     * @return    R   统计结果
+     * @author txb
+     * @date 2021/8/27 13:33
+     */
+    R getPictureList(Long userId);
+
+    /**
+     * 获取系统预置图库  getSysPictureList
+     * @return    R   系统图库集
+     * @author txb
+     * @date 2021/8/27 13:33
+     */
+    R getSysPictureList(Integer type);
+
+    /**
+     * 分页展示我的所有活动 时间倒序排列
+     * 
+     * @param comActActivityVO
+     *            分页参数
+     * @return 分页集合
+     */
+    R pageMyActivity(ComActActivityVO comActActivityVO);
+
+    /**
+     * 报名/取消报名社区活动
+     * 
+     * @param signactivityVO
+     *            报名参数
+     * @return 报名 取消报名 结果
+     */
+    R signActivity(SignactivityVO signactivityVO);
+
+    /**
+     * 用户参加的所有社区活动
+     * 
+     * @param userId
+     *            用户id
+     * @param status
+     * @return 活动列表
+     */
+    R listActivity(Long userId, Integer status,Integer type);
+
+    /**
+     * 查询志愿者参与的所有已经完成的活动
+     * 
+     * @param phone
+     *            用户手机号
+     * @return 所有活动集合
+     */
+    List<ComActActivityVO> listActivityByPhone(String phone);
+
+    /**
+     * 定时任务查询所有要取消的社区活动
+     * 
+     * @return 社区活动集合
+     */
+    R timedTaskActActivity();
+
+    /**
+     * 定时任务刷新社区活动的各个状态 除取消外
+     * 
+     * @return 更新结果
+     */
+    R timedTaskActActivityAll();
+
+    /**
+     * 社区后台分页查询社区活动
+     * 
+     * @param comActActivityVO
+     *            查询参数
+     * @return 返回结果
+     */
+    R pageActivityCommunityBack(ComActActivityVO comActActivityVO);
+
+    /**
+     * 首页图表数据汇总
+     * 
+     * @param communityId
+     *            社区id
+     * @return 图表数据 IndexDataVO
+     */
+    R indexDataCommunityBackstageEchart(Long communityId);
+
+    R getScreenActActivityList(ScreenActActivityListDTO actActivityListDTO);
+
+    R getActActivityPeopleList(ScreenActActivityPeopleListDTO activityPeopleListDTO);
+
+    /**
+     * 定时任务检测即将开始的社区活动,并始用订阅消息通知用户
+     */
+    R timedTaskActivityNotice();
+
+    /**
+     * 用户签到
+     *
+     * @param comActActRegistVO 签到参数
+     * @return 签到结果
+     */
+    R activitySignIn(ComActActRegistVO comActActRegistVO);
+
+    /**
+     *用户签到记录列表
+     *
+     * @param userId 用id
+     * @return 用户签到列表
+     */
+    R listSignInActivity(Long userId);
+
+    /**
+     * 获取活动报名签到记录
+     * @param id 活动主键id
+     * @return
+     */
+    R listSignInRecord(Long id);
+
+    /**
+     * 活动签到记录
+     * @param id 活动主键
+     * @param userId 用户id
+     * @return
+     */
+    R listRegistRecord(Long id, Long userId);
+
+    /**
+     * 获取活动类型(目前只有志愿者活动需要获取)
+     * @param communityId
+     * @param type
+     * @return
+     */
+    R listActivityType(Long communityId, Integer type);
+
+    /**
+     * 添加活动类型
+     * @param comActActivityTypeVO
+     * @return
+     */
+    R addActivityType(ComActActivityTypeVO comActActivityTypeVO);
+
+    /**
+     * [方法描述] 根据社区ID查询所属城市所在区区域代码,
+     * 
+     * @param communityId
+     *            社区ID
+     * @return String 区域code
+     * @author manailin
+     * @date 2022/2/17 10:09
+     */
+    String getActBelongRegionCode(Long communityId);
+
+    /**
+     * 党员活动统计
+     * @param communityId
+     * @param year
+     * @return
+     */
+    R partyMemberCount(Long communityId,String year);
+
+    /**
+     * 党员活动个人统计
+     * @param commonPage
+     * @return
+     */
+    R partyMemberDetail(CommonPage commonPage);
+
+    /**
+     *导出党员活动
+     * @param commonPage
+     * @return
+     */
+    R exportPartyMemberDetail(CommonPage commonPage);
+
+    /**
+     * 大屏-社区活动分页
+     * @param commonPage
+     * @return
+     */
+    R pageActivityBigScreen(PageBaseDTO pageBaseDTO);
+
+
+
+
+
+    /**
+     * 报名/取消报名社区活动
+     * 金汇社区专用
+     * @param signactivityVO
+     *            报名参数
+     * @return 报名 取消报名 结果
+     */
+    R jinhuiSignActivity(SignactivityVO signactivityVO);
+
+
+
+    /**
+     * 用户签到
+     * 金汇社区专用
+     * @param comActActRegistVO 签到参数
+     * @return 签到结果
+     */
+    R jinhuiActivitySignIn(ComActActRegistVO comActActRegistVO);
+
+
+
+
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActAnnouncementService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActAnnouncementService.java
new file mode 100644
index 0000000..2607d93
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActAnnouncementService.java
@@ -0,0 +1,22 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.entity.ComActAnnouncement;
+
+/**
+ * (ComActAnnouncement)表服务接口
+ *
+ * @author makejava
+ * @since 2021-11-01 13:45:55
+ */
+public interface ComActAnnouncementService extends IService<ComActAnnouncement> {
+    /**
+     * 分页查询
+     *
+     * @param commonPage
+     * @return
+     */
+    R pageList(CommonPage commonPage);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActBuildingService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActBuildingService.java
new file mode 100644
index 0000000..c2ebe51
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActBuildingService.java
@@ -0,0 +1,83 @@
+package com.panzhihua.service_community.service;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.building.admin.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngBuildingExcelVO;
+import com.panzhihua.service_community.model.dos.ComMngBuildingDO;
+import org.springframework.web.bind.annotation.RequestParam;
+
+/**
+ * @author xyh
+ * @date 2021/6/10 13:41
+ */
+
+public interface ComActBuildingService extends IService<ComMngBuildingDO> {
+
+    R batchSaveBuilding(List<ComMngBuildingExcelVO> newVoList, Long communityId);
+
+    /**
+     * 社区后台-分页查询楼栋列表
+     * @param pageBuildingListDto   请求参数
+     * @return  楼栋列表
+     */
+    R pageBuildingAdmin(PageBuildingListDto pageBuildingListDto);
+
+    /**
+     * 社区后台-查询楼栋列表表头统计数据
+     * @param communityId   社区id
+     * @return  楼栋列表表头统计数据
+     */
+    R buildingListHeaderStatisticsAdmin(Long communityId);
+
+    /**
+     * 社区后台-查询楼栋详情
+     * @param id    楼栋id
+     * @return  楼栋详情
+     */
+    R detailBuildAdmin(Long id);
+
+    /**
+     * 查询楼栋下单元列表
+     * @param id    楼栋id
+     * @return  单元列表
+     */
+    R buildingUnitListAdmin(Long id);
+
+    /**
+     * 查询楼栋单元下房屋列表
+     * @param unitHouseListDto    请求参数
+     * @return  单元列表
+     */
+    R buildingUnitHouseListAdmin(PageBuildingUnitHouseListDto unitHouseListDto);
+
+    R buildingUnitHouseDetailAdmin(Long houseId,Long communityId);
+
+    R buildingVillageListAdmin(Long communityId);
+
+    R addBuildingUnitAdmin(AddBuildingUnitDto addBuildingUnitDto);
+
+    R editBuildingUnitAdmin(EditBuildingUnitDto editBuildingUnitDto);
+
+    R addBuildingHouseAdmin(AddBuildingHouseDto addBuildingHouseDto);
+
+    R editBuildingHouseAdmin(EditBuildingHouseDto editBuildingHouseDto);
+
+    R deleteBuildingHousePopulationAdmin(DeleteBuildingHousePopulationDto housePopulationDto);
+
+    /**
+     * 根据小区id查询楼栋列表
+     * @param villageId 小区id
+     * @return  查询楼栋列表
+     */
+    R getBuildListByVillageId(Long villageId);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    R delete(Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActColumnService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActColumnService.java
new file mode 100644
index 0000000..eb6c7ac
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActColumnService.java
@@ -0,0 +1,52 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.community.ComActColumnVO;
+import com.panzhihua.service_community.entity.ComActColumn;
+
+/**
+ * 分类列表(ComActColumn)表服务接口
+ *
+ * @author makejava
+ * @since 2021-11-01 14:38:25
+ */
+public interface ComActColumnService extends IService<ComActColumn> {
+    /**
+     * 分页查询
+     *
+     * @param commonPage
+     * @return
+     */
+    R pageList(CommonPage commonPage);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    R delete(Long id);
+
+    /**
+     * 项目级联查询
+     * @param comActColumnVO
+     */
+    R queryLevel(ComActColumnVO comActColumnVO);
+
+    /**
+     * 修改数据
+     *
+     * @param comActColumnVO 实体对象
+     * @return 修改结果
+     */
+    R updateColumn(ComActColumnVO comActColumnVO);
+
+    /**
+     * 新增数据
+     *
+     * @param comActColumnVO 实体对象
+     * @return 新增结果
+     */
+    R addColumn(ComActColumnVO comActColumnVO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActCommitteeService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActCommitteeService.java
new file mode 100644
index 0000000..376e79c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActCommitteeService.java
@@ -0,0 +1,45 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActCommiteeVO;
+import com.panzhihua.common.model.vos.community.ComActSocialOrgVO;
+import com.panzhihua.service_community.entity.ComActCommittee;
+
+/**
+ * (ComActCommittee)表服务接口
+ *
+ * @author makejava
+ * @since 2021-09-17 13:55:44
+ */
+public interface ComActCommitteeService extends IService<ComActCommittee> {
+    /**
+     * 分页查询
+     * @param commonPage
+     * @return
+     */
+    R pageList(CommonPage commonPage);
+
+
+    /**
+     * 新增
+     * @param comActCommiteeVO
+     * @return
+     */
+    R insert(ComActCommiteeVO comActCommiteeVO);
+
+    /**
+     * 更新
+     * @param comActCommiteeVO
+     * @return
+     */
+    R update(ComActCommiteeVO comActCommiteeVO);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    R delete(Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActDiscussOptionService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActDiscussOptionService.java
new file mode 100644
index 0000000..081b8a4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActDiscussOptionService.java
@@ -0,0 +1,12 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.model.dos.ComActDiscussOptionDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 一起议选项
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-22 15:47
+ **/
+public interface ComActDiscussOptionService extends IService<ComActDiscussOptionDO> {}
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
new file mode 100644
index 0000000..3b70aa9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActDiscussService.java
@@ -0,0 +1,316 @@
+package com.panzhihua.service_community.service;
+
+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: 议事投票
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-22 14:50
+ **/
+public interface ComActDiscussService {
+    /**
+     * 议事投票-新增
+     * 
+     * @param comActDiscussDTO
+     *            新增参数
+     * @return 新增结果
+     */
+    R addDiscuss(ComActDiscussDTO comActDiscussDTO);
+
+    /**
+     * 议事投票-编辑
+     * @param comActDiscussDTO  请求参数
+     * @return  编辑结果
+     */
+    R editDiscuss(ComActDiscussDTO comActDiscussDTO);
+
+    /**
+     * 议事投票-详情
+     * 
+     * @param discussDetailDTO
+     *            请求参数
+     * @return ComActDiscussVO
+     */
+    R detailDiscuss(ComActDiscussDetailDTO discussDetailDTO);
+    /**
+     * 议事投票-详情 脱敏
+     *
+     * @param discussDetailDTO
+     *            请求参数
+     * @return ComActDiscussVO
+     */
+    R detailDiscussDesensitize(ComActDiscussDetailDTO discussDetailDTO);
+
+    /**
+     * 议事投票-删除
+     * 
+     * @param id
+     *            主键
+     * @return 删除结果
+     */
+    R deleteDiscuss(Long id);
+
+    /**
+     * 议事投票-回复
+     * 
+     * @param comActDiscussCommentDTO
+     *            评论内容
+     * @return 回复结果
+     */
+    R addDiscussComment(ComActDiscussCommentDTO comActDiscussCommentDTO);
+
+    /**
+     * 议事投票-分页查询
+     * 
+     * @param pageComActDiscussDTO
+     *            查询参数
+     * @return ComActDiscussVO
+     */
+    R pageDiscuss(PageComActDiscussDTO pageComActDiscussDTO);
+
+    /**
+     * 议事投票-后台分页查询
+     * @param pageComActDiscussDTO  请求参数
+     * @return  议事投票列表
+     */
+    R pageDiscussAdmin(PageComActDiscussDTO pageComActDiscussDTO);
+
+    /**
+     * 议事投票-评论-查看
+     * 
+     * @param id
+     *            主键
+     * @return 详情
+     */
+    R detailDiscusscomment(Long id);
+
+    /**
+     * 议事投票评论详情
+     * @param pageComActDiscussCommentDTO   请求参数
+     * @return  议事投票详情
+     */
+    R detailDiscussCommentAdmin(PageComActDiscussCommentDTO pageComActDiscussCommentDTO);
+
+    /**
+     * 议事投票-评论-置顶
+     * 
+     * @param id
+     *            主键
+     * @return 置顶结果
+     */
+    R putDiscussCommentTop(Long id);
+
+    /**
+     * 议事投票-评论-回复
+     * 
+     * @param comActDiscussCommentDTO
+     *            回复内容
+     * @return 回复结果
+     */
+    R addDiscussCommentBack(ComActDiscussCommentDTO comActDiscussCommentDTO);
+
+    /**
+     * 议事投票-评论-分页查询
+     * 
+     * @param pageComActDiscussCommentDTO
+     *            分页查询参数
+     * @return ComActDiscussCommentVO
+     */
+    R pageDiscussComment(PageComActDiscussCommentDTO pageComActDiscussCommentDTO);
+
+    /**
+     * 议事投票-评论-后台分页查询
+     *
+     * @param pageComActDiscussCommentDTO
+     *            分页查询参数
+     * @return ComActDiscussCommentVO
+     */
+    R pageDiscussCommentAdmin(PageComActDiscussCommentDTO pageComActDiscussCommentDTO);
+
+
+    /**
+     * 议事投票-评论-删除
+     * @param id
+     * @return
+     */
+    R deleteId(String id);
+
+
+    /**
+     * 议事投票-分页查询 小程序
+     * 
+     * @param pageComActDiscussDTO
+     *            查询参数
+     * @return ComActDiscussVO 分页
+     */
+    R pageDiscussApplets(PageComActDiscussDTO pageComActDiscussDTO);
+    /**
+     * 议事投票-分页查询 小程序 脱敏
+     *
+     * @param pageComActDiscussDTO
+     *            查询参数
+     * @return ComActDiscussVO 分页
+     */
+    R pageDiscussAppletsDesensitize(PageComActDiscussDTO pageComActDiscussDTO);
+
+    /**
+     * 议事投票-点赞、取消点赞
+     * 
+     * @param comActDiscussUserDTO
+     *            操作类型
+     * @return 操作结果
+     */
+    R putDiscussUser(ComActDiscussUserDTO comActDiscussUserDTO);
+
+    /**
+     * 议事投票-评论-分页查询 小程序
+     * 
+     * @param pageComActDiscussCommentDTO
+     *            分页参数
+     * @return ComActDiscussCommentVO
+     */
+    R pageDiscussCommentApplets(PageComActDiscussCommentDTO pageComActDiscussCommentDTO);
+    /**
+     * 议事投票-评论-分页查询 小程序 脱敏
+     *
+     * @param pageComActDiscussCommentDTO
+     *            分页参数
+     * @return ComActDiscussCommentVO
+     */
+    R pageDiscussCommentAppletsDesensitize(PageComActDiscussCommentDTO pageComActDiscussCommentDTO);
+
+    /**
+     * 议事投票-详情 小程序
+     * 
+     * @param id
+     *            主键
+     * @param userId
+     *            用户主键
+     * @return ComActDiscussVO
+     */
+    R detailDiscussApplets(Long id, Long userId);
+    /**
+     * 议事投票-详情 小程序
+     *
+     * @param id
+     *            主键
+     * @param userId
+     *            用户主键
+     * @return ComActDiscussVO
+     */
+    R detailDiscussAppletsDesensitize(Long id, Long userId);
+
+    /**
+     * 议事投票-投票
+     * 
+     * @param discussVoteOptionDTO
+     *            投票信息
+     * @return 投票结果
+     */
+    R addDiscussOptionUser(DiscussVoteOptionDTO discussVoteOptionDTO);
+
+    /**
+     * 议事投票-评论-点赞、取消点赞
+     * 
+     * @param comActDiscussUserDTO
+     *            评论点赞
+     * @return 点赞结果
+     */
+    R putDiscussCommentUser(ComActDiscussCommentUserDTO comActDiscussUserDTO);
+
+    /**
+     * 工作大屏-议事投票列表
+     * 
+     * @param discussListDTO
+     *            请求参数
+     * @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);
+
+    /**
+     * 投票情况-分页查询
+     * @param pageVoteSituationDTO
+     * @return
+     */
+    R pageVoteSituation(PageVoteSituationDTO pageVoteSituationDTO);
+
+    /**
+     * 投票情况详情
+     * @param optionUserId
+     * @return
+     */
+    R detailVoteSituation(Long optionUserId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActDpcService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActDpcService.java
new file mode 100644
index 0000000..4c6d4e0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActDpcService.java
@@ -0,0 +1,52 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.dpc.AddDpcDTO;
+import com.panzhihua.common.model.dtos.community.dpc.EditDpcDTO;
+import com.panzhihua.common.model.dtos.community.dpc.PageDpcDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.ComActDpc;
+
+/**
+ * 人大代表(ComActDpc)表服务接口
+ *
+ * @author makejava
+ * @since 2022-06-07 10:55:32
+ */
+public interface ComActDpcService extends IService<ComActDpc> {
+
+    /**
+     * 新增人大代表
+     * @param addDpcDTO
+     * @return
+     */
+    R addDpc(AddDpcDTO addDpcDTO);
+
+    /**
+     * 修改人大代表
+     * @param editDpcDTO
+     * @return
+     */
+    R editDpc(EditDpcDTO editDpcDTO);
+
+    /**
+     * 删除人大代表
+     * @param id
+     * @return
+     */
+    R deleteDpc(Long id);
+
+    /**
+     * 获取人大代表详情
+     * @param id
+     * @return
+     */
+    R detailDpc(Long id);
+
+    /**
+     * 分页查询人大代表
+     * @param pageDpcDTO
+     * @return
+     */
+    R pageDpc(PageDpcDTO pageDpcDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActDynService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActDynService.java
new file mode 100644
index 0000000..f60e21e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActDynService.java
@@ -0,0 +1,69 @@
+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.ComActDynVO;
+import com.panzhihua.service_community.model.dos.ComActDynDO;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 社区动态
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 14:28
+ **/
+public interface ComActDynService extends IService<ComActDynDO> {
+    /**
+     * 分页查询社区动态
+     * 
+     * @param comActDynVO
+     *            查询参数
+     * @return 动态集合
+     */
+    R pageDynamic(ComActDynVO comActDynVO);
+
+    /**
+     * 社区动态详情
+     * 
+     * @param id
+     *            动态id
+     * @return 详情
+     */
+    R detailDynamic(Long id);
+
+    /**
+     * 新增社区动态浏览记录
+     * 
+     * @param id
+     *            动态主键
+     * @param userId
+     *            登录用户id
+     * @return 新增结果
+     */
+    R addDynamicUser(Long id, Long userId);
+
+    /**
+     * 定时任务刷新社区动态置顶状态
+     * 
+     * @return 刷新结果
+     */
+    R timedTaskDynIstopping();
+
+    /**
+     * 定时任务刷新社区动态发布状态
+     * 
+     * @return 刷新结果
+     */
+    R timedTaskDynStatus();
+
+    /**
+     * 管理后台分页查询社区动态
+     * 
+     * @param comActDynVO
+     *            查询参数
+     * @return 动态集合
+     */
+    R pageDynamicByAdmin(ComActDynVO comActDynVO);
+
+    String getTypeId(String communityId,String name);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActDynTypeService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActDynTypeService.java
new file mode 100644
index 0000000..d7d506d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActDynTypeService.java
@@ -0,0 +1,64 @@
+package com.panzhihua.service_community.service;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.AddComActDynTypeDTO;
+import com.panzhihua.common.model.dtos.community.EditComActDynTypeDTO;
+import com.panzhihua.common.model.dtos.community.PageComActDynTypeDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.ComActDynTypeDO;
+
+/**
+ * @auther lyq
+ * @create 2021-07-22 11:28:27
+ * @describe 社区动态分类服务类
+ */
+public interface ComActDynTypeService extends IService<ComActDynTypeDO> {
+
+    /**
+     * 分页查询社区动态分类列表
+     * 
+     * @param comActDynTypeDTO
+     *            请求参数
+     * @return 动态分类列表
+     */
+    R pageDynTypeByAdmin(PageComActDynTypeDTO comActDynTypeDTO);
+
+    /**
+     * 查询社区下所有动态分类列表
+     * 
+     * @param comActDynTypeDTO
+     *            请求参数
+     * @return 动态分类列表
+     */
+    R getDynTypeListByAdmin(PageComActDynTypeDTO comActDynTypeDTO);
+
+    /**
+     * 添加社区动态分类
+     * 
+     * @param comActDynTypeDTO
+     *            请求参数
+     * @return 添加结果
+     */
+    R addDynTypeByAdmin(AddComActDynTypeDTO comActDynTypeDTO);
+
+    /**
+     * 编辑社区动态分类
+     * 
+     * @param comActDynTypeDTO
+     *            请求参数
+     * @return 编辑结果
+     */
+    R editDynTypeByAdmin(EditComActDynTypeDTO comActDynTypeDTO);
+
+    /**
+     * 删除社区动态分类
+     * 
+     * @param ids
+     *            社区动态分类id集合
+     * @return 删除结果
+     */
+    R deleteDynTypeByAdmin(List<Long> ids);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEasyPhotoActivityRecordService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEasyPhotoActivityRecordService.java
new file mode 100644
index 0000000..7037899
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEasyPhotoActivityRecordService.java
@@ -0,0 +1,13 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.model.dos.ComActEasyPhotoActivityRecordDO;
+
+/**
+ * @auther lyq
+ * @create 2021-06-25 10:34:36
+ * @describe 用户参加随手拍活动记录表服务类
+ */
+public interface ComActEasyPhotoActivityRecordService extends IService<ComActEasyPhotoActivityRecordDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEasyPhotoActivityService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEasyPhotoActivityService.java
new file mode 100644
index 0000000..e91a29e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEasyPhotoActivityService.java
@@ -0,0 +1,77 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.easyPhoto.AddEasyPhotoActivityDTO;
+import com.panzhihua.common.model.dtos.community.easyPhoto.EditEasyPhotoActivityDTO;
+import com.panzhihua.common.model.dtos.community.easyPhoto.PageEasyPhotoActivityDTO;
+import com.panzhihua.common.model.dtos.community.easyPhoto.PageEasyPhotoActivityUserDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.ComActEasyPhotoActivityDO;
+
+/**
+ * @auther lyq
+ * @create 2021-06-25 10:34:16
+ * @describe 随手拍活动表服务类
+ */
+public interface ComActEasyPhotoActivityService extends IService<ComActEasyPhotoActivityDO> {
+
+    /**
+     * 查询随手拍是否有活动
+     * 
+     * @return 活动详情
+     */
+    R getEasyPhotoActivity(Long communityId);
+
+    /**
+     * 社区后台-分页查询随手拍活动列表
+     * 
+     * @param pageEasyPhotoActivityDTO
+     *            请求参数
+     * @return 随手拍活动列表
+     */
+    R pageActivity(PageEasyPhotoActivityDTO pageEasyPhotoActivityDTO);
+
+    /**
+     * 社区后台-添加随手拍活动
+     * 
+     * @param addEasyPhotoActivityDTO
+     *            请求参数
+     * @return 添加结果
+     */
+    R addActivity(AddEasyPhotoActivityDTO addEasyPhotoActivityDTO);
+
+    /**
+     * 社区后台-编辑随手拍活动
+     * 
+     * @param editEasyPhotoActivityDTO
+     *            请求参数
+     * @return 编辑结果
+     */
+    R editActivity(EditEasyPhotoActivityDTO editEasyPhotoActivityDTO);
+
+    /**
+     * 社区后台-取消随手拍活动
+     * 
+     * @param id
+     *            随手拍活动id
+     * @return 取消结果
+     */
+    R cancelActivity(Long id);
+
+    /**
+     * 分页查询随手拍活动下居民参与记录
+     * 
+     * @param pageEasyPhotoActivityUserDTO
+     *            请求参数
+     * @return 居民参与记录
+     */
+    R pageActivityUser(PageEasyPhotoActivityUserDTO pageEasyPhotoActivityUserDTO);
+
+    /**
+     * 随手拍活动定时任务
+     * 
+     * @return 执行结果
+     */
+    R timeTaskEasyPhotoActivity();
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEasyPhotoClassifyService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEasyPhotoClassifyService.java
new file mode 100644
index 0000000..cdc7b93
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEasyPhotoClassifyService.java
@@ -0,0 +1,67 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.easyPhoto.AddEasyPhotoClassifyDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.ComActEasyPhotoClassifyDO;
+
+/**
+ * @auther lyq
+ * @create 2021-08-19 15:50:58
+ * @describe 随手拍分类表服务类
+ */
+public interface ComActEasyPhotoClassifyService extends IService<ComActEasyPhotoClassifyDO> {
+
+    /**
+     * 运营后台-新增随手拍分类
+     * 
+     * @param addPhotoClassify
+     *            请求参数
+     * @return 新增结果
+     */
+    R addPhotoClassify(AddEasyPhotoClassifyDTO addPhotoClassify);
+
+    /**
+     * 运营后台-编辑随手拍分类
+     * 
+     * @param addPhotoClassify
+     *            请求参数
+     * @return 编辑结果
+     */
+    R editPhotoClassify(AddEasyPhotoClassifyDTO addPhotoClassify);
+
+    /**
+     * 运营后台-随手拍分类详情
+     * 
+     * @param id
+     *            随手拍分类id
+     * @return 随手拍分类
+     */
+    R detailPhotoClassify(Long id);
+
+    /**
+     * 运营后台-分页查询随手拍分类
+     * 
+     * @param addPhotoClassify
+     *            请求参数
+     * @return 随手拍分类列表
+     */
+    R pagePhotoClassify(AddEasyPhotoClassifyDTO addPhotoClassify);
+
+    /**
+     * 运营后台-查询随手拍分类列表
+     * 
+     * @return 随手拍分类列表
+     */
+    R listPhotoClassify(String areaCode);
+
+    /**
+     * 运营后台-随手拍分类删除
+     * 
+     * @param id
+     *            随手拍分类id
+     * @return 删除结果
+     */
+    R deletePhotoClassify(Long id);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEasyPhotoEvaluateService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEasyPhotoEvaluateService.java
new file mode 100644
index 0000000..b078365
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEasyPhotoEvaluateService.java
@@ -0,0 +1,94 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.Date;
+
+/**
+ * title: 随手拍、微心愿评价表表服务接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 随手拍、微心愿评价表表服务接口
+ *
+ * @author lyq
+ * @date 2022-03-01 13:44:24
+ */
+public interface ComActEasyPhotoEvaluateService {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comActEasyPhotoEvaluate 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-01 13:44:24
+     */
+    R queryByPage(PageComActEasyPhotoEvaluateDto comActEasyPhotoEvaluate);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comActEasyPhotoEvaluate 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-01 13:44:24
+     */
+    R insert(AddComActEasyPhotoEvaluateDto comActEasyPhotoEvaluate);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comActEasyPhotoEvaluate 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-01 13:44:24
+     */
+    R update(EditComActEasyPhotoEvaluateDto comActEasyPhotoEvaluate);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-01 13:44:24
+     */
+    R deleteById(Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-01 13:44:24
+     */
+    R detailById(Long id);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comActEasyPhotoEvaluate 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-01 13:44:24
+     */
+    R queryByList(PageComActEasyPhotoEvaluateDto comActEasyPhotoEvaluate);
+
+    R evaluateEasyApplets(EvaluateEasyDto whistleDto);
+
+    /**
+     * 添加随手拍、微心愿评价记录
+     * @param communityId   社区id
+     * @param userId    用户id
+     * @param serviceId 业务记录id
+     * @param score     评价分数
+     * @param content   评价内容
+     * @param nowDate   评价时间
+     * @param serviceType   业务类型(1.随手拍 2.微心愿)
+     */
+    void addEasyPhotoEvaluateRecord(Long communityId, Long userId, Long serviceId, Integer score, String content, Date nowDate,Integer serviceType);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEasyPhotoFeedbackService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEasyPhotoFeedbackService.java
new file mode 100644
index 0000000..8b63c23
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEasyPhotoFeedbackService.java
@@ -0,0 +1,13 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.model.dos.ComActEasyPhotoFeedbackDO;
+
+/**
+ * @auther lyq
+ * @create 2021-08-13 14:40:06
+ * @describe 服务类
+ */
+public interface ComActEasyPhotoFeedbackService extends IService<ComActEasyPhotoFeedbackDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEasyPhotoHandlerService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEasyPhotoHandlerService.java
new file mode 100644
index 0000000..c59f96d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEasyPhotoHandlerService.java
@@ -0,0 +1,99 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.common.ComActEasyPhotoHandlerVo;
+
+import java.util.List;
+
+/**
+ * title: 随手拍、微心愿处理人绑定表表服务接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 随手拍、微心愿处理人绑定表表服务接口
+ *
+ * @author lyq
+ * @date 2022-03-01 13:45:11
+ */
+public interface ComActEasyPhotoHandlerService {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comActEasyPhotoHandler 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-01 13:45:11
+     */
+    R queryByPage(PageComActEasyPhotoHandlerDto comActEasyPhotoHandler);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comActEasyPhotoHandler 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-01 13:45:11
+     */
+    R insert(AddComActEasyPhotoHandlerDto comActEasyPhotoHandler);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comActEasyPhotoHandler 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-01 13:45:11
+     */
+    R update(EditComActEasyPhotoHandlerDto comActEasyPhotoHandler);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-01 13:45:11
+     */
+    R deleteById(Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-01 13:45:11
+     */
+    R detailById(Long id);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comActEasyPhotoHandler 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-01 13:45:11
+     */
+    R queryByList(PageComActEasyPhotoHandlerDto comActEasyPhotoHandler);
+
+    /**
+     * 添加随手拍、微心愿处理关联记录
+     * @param communityId   社区id
+     * @param userId    用户id
+     * @param serviceId 业务id
+     * @param type  人员类型(1.后台用户 2.党员 3.志愿者 4.社工 5.四长四员)
+     * @param serviceType   业务类型(1.随手拍 2.微心愿)
+     * @param sponsorId 发起人id
+     */
+    void addHandleRecord(Long communityId,Long userId,Long serviceId,Integer type,Integer serviceType,Long sponsorId);
+
+    /**
+     * 获取处理记录
+     * @param serviceId
+     * @param serviceType
+     * @return
+     */
+    List<ComActEasyPhotoHandlerVo> selectHandleRecord(Long serviceId, Integer serviceType);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEasyPhotoMemberService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEasyPhotoMemberService.java
new file mode 100644
index 0000000..33eaefa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEasyPhotoMemberService.java
@@ -0,0 +1,24 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.entity.ComActEasyPhotoMember;
+
+/**
+ * 随手拍网格员(ComActEasyPhotoMember)表服务接口
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 随手拍网格员相关功能
+ *
+ * @author zzj
+ * @since 2022-04-12 10:33:25
+ */
+public interface ComActEasyPhotoMemberService extends IService<ComActEasyPhotoMember> {
+    /**
+     * 分页查询
+     *
+     * @param commonPage
+     * @return
+     */
+    R pageList(CommonPage commonPage);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEasyPhotoRewardService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEasyPhotoRewardService.java
new file mode 100644
index 0000000..f1a603d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEasyPhotoRewardService.java
@@ -0,0 +1,13 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.model.dos.ComActEasyPhotoRewardDO;
+
+/**
+ * @auther lyq
+ * @create 2021-07-23 14:30:03
+ * @describe 用户随手拍奖励表服务类
+ */
+public interface ComActEasyPhotoRewardService extends IService<ComActEasyPhotoRewardDO> {
+
+}
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
new file mode 100644
index 0000000..e32cbaa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEasyPhotoService.java
@@ -0,0 +1,252 @@
+package com.panzhihua.service_community.service;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.ComActEasyPhotoCommentDTO;
+import com.panzhihua.common.model.dtos.community.ComActEasyPhotoCommentUserDTO;
+import com.panzhihua.common.model.dtos.community.GrantRewardDTO;
+import com.panzhihua.common.model.dtos.community.PageComActEasyPhotoCommentDTO;
+import com.panzhihua.common.model.dtos.community.easyPhoto.ExportEasyPhotoDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActEasyPhotoVO;
+import com.panzhihua.common.model.vos.community.TodoEventsVO;
+import com.panzhihua.service_community.model.dos.ComActEasyPhotoDO;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 随手拍
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 14:31
+ **/
+public interface ComActEasyPhotoService extends IService<ComActEasyPhotoDO> {
+    /**
+     * 分页查询随手拍
+     * 
+     * @param comActEasyPhotoVO
+     *            查询参数
+     * @return 心愿列表
+     */
+    R pageEasyPhoto(ComActEasyPhotoVO comActEasyPhotoVO);
+
+
+    /**
+     *浪潮专用
+     * @param page
+     * @return
+     */
+    R pageEasyPhotoAdminLC(Long pageNum,Long pageSize);
+    /**
+     * 随手拍详情
+     * 
+     * @param id
+     *            随手拍主键
+     * @param userId
+     *            登录用户id
+     * @return 详情内容
+     */
+    R detailEasyPhoto(Long id, Long userId);
+    /**
+     * 随手拍详情 - 脱敏
+     *
+     * @param id
+     *            随手拍主键
+     * @param userId
+     *            登录用户id
+     * @return 详情内容
+     */
+    R detailEasyPhotoDesensitize(Long id, Long userId);
+
+    /**
+     * 上传随手拍
+     * 
+     * @param comActEasyPhotoVO
+     *            上传数据
+     * @return 上传结果
+     */
+    R addEasyPhoto(ComActEasyPhotoVO comActEasyPhotoVO);
+
+    /**
+     * 点赞/取消点赞随手拍
+     * 
+     * @param comActEasyPhotoVO
+     *            操作参数
+     * @return 操作结果
+     */
+    R putEasyPhoto(ComActEasyPhotoVO comActEasyPhotoVO);
+
+    /**
+     * 审核反馈随手拍
+     * 
+     * @param comActEasyPhotoVO
+     *            操作参数
+     * @return 操作结果
+     */
+    R putEasypHotoStatus(ComActEasyPhotoVO comActEasyPhotoVO);
+
+    /**
+     * 随手拍是否有待审核和带反馈的事件
+     * 
+     * @param communityId
+     *            社区id
+     * @param userId
+     *            登录用户id
+     * @return 待处理事件集合
+     */
+    List<TodoEventsVO> selectNeedToDo(Long communityId, Long userId);
+
+    /**
+     * 小程序分页查询随手拍
+     * 
+     * @param comActEasyPhotoVO
+     *            查询参数
+     * @return 返回结果
+     */
+    R pageEasyPhotoApplets(ComActEasyPhotoVO comActEasyPhotoVO);
+
+    /**
+     * 小程序分页查询随手拍
+     *
+     * @param comActEasyPhotoVO
+     *            查询参数
+     * @return 返回结果
+     */
+    R pageEasyPhotoAppletsDesensitize(ComActEasyPhotoVO comActEasyPhotoVO);
+
+    /**
+     * 随手拍评论分页查询
+     * 
+     * @param pageComActEasyPhotoCommentDTO
+     *            查询参数
+     * @return 查询结果
+     */
+    R pageComActEasyPhotoComment(PageComActEasyPhotoCommentDTO pageComActEasyPhotoCommentDTO);
+    /**
+     * 随手拍评论分页查询 - 脱敏
+     *
+     * @param pageComActEasyPhotoCommentDTO
+     *            查询参数
+     * @return 查询结果
+     */
+    R pageComActEasyPhotoCommentDesensitize(PageComActEasyPhotoCommentDTO pageComActEasyPhotoCommentDTO);
+
+
+    /**
+     * 评论点赞/取消点赞
+     * 
+     * @param comActEasyPhotoCommentUserDTO
+     *            操作
+     * @return 操作结果
+     */
+    R commentSign(ComActEasyPhotoCommentUserDTO comActEasyPhotoCommentUserDTO);
+
+    /**
+     * 随手拍--评论--新增评论
+     * 
+     * @param comActEasyPhotoCommentDTO
+     *            新增内容
+     * @return 新增结果
+     */
+    R addComActEasyPhotoComment(ComActEasyPhotoCommentDTO comActEasyPhotoCommentDTO);
+
+    /**
+     * 社区随手拍列表统计
+     * 
+     * @param communityId
+     *            社区id
+     * @return 统计结果
+     */
+    R easyPhotoStatistics(Long communityId);
+
+    /**
+     * 随手拍发放奖励
+     * 
+     * @param grantRewardDTO
+     *            请求参数
+     * @return 发放结果
+     */
+    R grantReward(GrantRewardDTO grantRewardDTO);
+
+    /**
+     * 获取最新活动和用户最新收益
+     * 
+     * @param userId
+     *            用户id
+     * @param communityId
+     *            社区id
+     * @return 最新活动和用户最新收益
+     */
+    R getUserReward(Long userId, Long communityId);
+
+    /**
+     * 获取首页弹窗接口
+     *
+     * @param userId
+     *            用户id
+     * @param communityId
+     *            社区id
+     * @return 首页弹窗接口
+     */
+    R getUserRewards(Long userId, Long communityId);
+
+    /**
+     * 读取用户随手拍奖励
+     * 
+     * @param userId
+     *            用户id
+     * @return 读取结果
+     */
+    R readUserReward(Long userId, Long communityId);
+
+    R easyPhotoCount(ComActEasyPhotoVO comActEasyPhotoVO);
+
+    /**
+     * 社区后台-切换随手拍公示状态
+     * 
+     * @param comActEasyPhotoVO
+     *            请求参数
+     * @return 切换结果
+     */
+    R easyPhotoSwitchPublicity(ComActEasyPhotoVO comActEasyPhotoVO);
+
+    R updatePageeasyphoto(ComActEasyPhotoVO comActEasyPhotoVO);
+
+    R export(ExportEasyPhotoDTO exportEasyPhotoDTO);
+
+    /**
+     * 查询社区待处理随手拍id集合
+     * 
+     * @param communityId
+     *            社区id
+     * @return 社区待处理随手拍id集合
+     */
+    R easyPhotoNoHandleList(Long communityId);
+
+    /**
+     * 获取人大代表反馈记录
+     * @param id
+     * @return
+     */
+    R getFeedbackList(Long id);
+
+    /**
+     * 人大代表反馈随手拍
+     * @param comActEasyPhotoVO
+     * @return
+     */
+    R addEasyPhotoFeedbackForDpc(ComActEasyPhotoVO comActEasyPhotoVO);
+
+    /**
+     * 获取社区置顶动态banner
+     * */
+    R getUserRewardNew(Long userId, Long communityId);
+
+    /**
+     * 统计随手拍
+     * @return
+     */
+    R selectStatisticsPhoto();
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEnterpriseService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEnterpriseService.java
new file mode 100644
index 0000000..8f373b0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEnterpriseService.java
@@ -0,0 +1,52 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.enterprise.AddEnterpriseDTO;
+import com.panzhihua.common.model.dtos.community.enterprise.EditEnterpriseDTO;
+import com.panzhihua.common.model.dtos.community.enterprise.PageEnterpriseDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.ComActEnterprise;
+
+/**
+ * (ComActEnterprise)表服务接口
+ *
+ * @author makejava
+ * @since 2022-05-31 10:17:02
+ */
+public interface ComActEnterpriseService extends IService<ComActEnterprise> {
+
+    /**
+     * 新增社区企业
+     * @param addEnterpriseDTO
+     * @return
+     */
+    R addEnterprise(AddEnterpriseDTO addEnterpriseDTO);
+
+    /**
+     * 修改社区企业
+     * @param editEnterpriseDTO
+     * @return
+     */
+    R editEnterprise(EditEnterpriseDTO editEnterpriseDTO);
+
+    /**
+     * 删除社区企业
+     * @param id
+     * @return
+     */
+    R deleteEnterprise(Long id);
+
+    /**
+     * 获取社区企业详情
+     * @param id
+     * @return
+     */
+    R detailEnterprise(Long id);
+
+    /**
+     * 分页查询社区企业
+     * @param pageEnterpriseDTO
+     * @return
+     */
+    R pageEnterprise(PageEnterpriseDTO pageEnterpriseDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEnterpriseTypeService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEnterpriseTypeService.java
new file mode 100644
index 0000000..e8ebe8f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActEnterpriseTypeService.java
@@ -0,0 +1,59 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.enterprise.AddEnterpriseTypeDTO;
+import com.panzhihua.common.model.dtos.community.enterprise.EditEnterpriseTypeDTO;
+import com.panzhihua.common.model.dtos.community.enterprise.PageEnterpriseTypeDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.ComActEnterpriseType;
+
+/**
+ * (ComActEnterpriseType)表服务接口
+ *
+ * @author makejava
+ * @since 2022-06-06 15:30:52
+ */
+public interface ComActEnterpriseTypeService extends IService<ComActEnterpriseType> {
+
+    /**
+     * 新增服务分类
+     * @param addEnterpriseTypeDTO
+     * @return
+     */
+    R addEnterpriseType(AddEnterpriseTypeDTO addEnterpriseTypeDTO);
+
+    /**
+     * 修改服务分类
+     * @param enterpriseTypeDTO
+     * @return
+     */
+    R editEnterpriseType(EditEnterpriseTypeDTO enterpriseTypeDTO);
+
+    /**
+     * 删除服务分类
+     * @param id
+     * @return
+     */
+    R deleteEnterpriseType(Long id);
+
+    /**
+     * 获取服务分类详情
+     * @param id
+     * @return
+     */
+    R detailEnterpriseType(Long id);
+
+    /**
+     * 分页查询服务分类
+     * @param pageEnterpriseTypeDTO
+     * @return
+     */
+    R pageEnterpriseType(PageEnterpriseTypeDTO pageEnterpriseTypeDTO);
+
+    /**
+     * 获取服务分类列表
+     * @param communityId
+     * @return
+     */
+    R getEnterpriseTypeList(Long communityId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActFourMemberService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActFourMemberService.java
new file mode 100644
index 0000000..28218e9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActFourMemberService.java
@@ -0,0 +1,53 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.community.ComActFourMemberVO;
+import com.panzhihua.service_community.entity.ComActFourMember;
+
+/**
+ * (ComActFourMember)表服务接口
+ *
+ * @author makejava
+ * @since 2021-09-23 10:13:31
+ */
+public interface ComActFourMemberService extends IService<ComActFourMember> {
+    /**
+     * 分页查询
+     * @param commonPage
+     * @return
+     */
+    R pageList(CommonPage commonPage);
+
+    /**
+     * 新增
+     * @param comActFourMemberVO
+     * @return
+     */
+    R insert(ComActFourMemberVO comActFourMemberVO);
+
+    /**
+     * 修改
+     * @param comActFourMemberVO
+     * @return
+     */
+    R update(ComActFourMemberVO comActFourMemberVO);
+
+    /**
+     * 删除
+     */
+    R delete(ComActFourMemberVO comActFourMemberVO);
+
+    R get(Long id);
+
+    /**
+     * 小程序四长四员查询居民列表
+     */
+    R selectByMember(CommonPage commonPage);
+
+    /**
+     * 居民详情
+     */
+    R selectById(Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActIntegralRuleService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActIntegralRuleService.java
new file mode 100644
index 0000000..e3fa819
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActIntegralRuleService.java
@@ -0,0 +1,55 @@
+package com.panzhihua.service_community.service;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.integral.admin.EditComActIntegralRuleDTO;
+import com.panzhihua.common.model.dtos.community.integral.admin.PageComActIntegralRuleDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.integral.ComActIntegralUserRuleVO;
+import com.panzhihua.service_community.model.dos.ComActIntegralRuleDO;
+
+/**
+ * @auther lyq
+ * @create 2021-07-28 16:02:46
+ * @describe 积分规则表服务类
+ */
+public interface ComActIntegralRuleService extends IService<ComActIntegralRuleDO> {
+
+    /**
+     * 查询社区下积分任务列表
+     * 
+     * @param communityId
+     *            社区id
+     * @return 查询社区下积分任务列表
+     */
+    List<ComActIntegralUserRuleVO> getIntegralReceiveApplets(Long communityId);
+
+    /**
+     * 社区后台-根据社区id查询社区下积分规则列表
+     * 
+     * @param integralRuleDTO
+     *            请求参数
+     * @return 社区下积分规则列表
+     */
+    R getIntegralRuleAdminList(PageComActIntegralRuleDTO integralRuleDTO);
+
+    /**
+     * 社区后台-编辑社区积分规则
+     * 
+     * @param integralRuleDTO
+     *            请求参数
+     * @return 编辑结果
+     */
+    R editIntegralRuleAdmin(EditComActIntegralRuleDTO integralRuleDTO);
+
+    /**
+     * 根据社区id查询社区默认积分规则列表
+     * 
+     * @param communityId
+     *            社区id
+     * @return 社区默认积分规则列表
+     */
+    List<ComActIntegralRuleDO> getIntegralRuleList(Long communityId);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActIntegralUserChangeService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActIntegralUserChangeService.java
new file mode 100644
index 0000000..8d15362
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActIntegralUserChangeService.java
@@ -0,0 +1,83 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.model.dos.ComActIntegralUserChangeDO;
+
+/**
+ * @auther lyq
+ * @create 2021-07-28 16:03:05
+ * @describe 用户积分账户变动记录服务类
+ */
+public interface ComActIntegralUserChangeService extends IService<ComActIntegralUserChangeDO> {
+
+    /**
+     * 添加用户积分账户变动记录
+     * 
+     * @param userId
+     *            用户id
+     * @param integralId
+     *            积分账户id
+     * @param communityId
+     *            社区id
+     * @param integralSumTop
+     *            总积分数量变动前
+     * @param integralSumBack
+     *            总积分数量变动后
+     * @param integralAvailableSumTop
+     *            可用总积分数量变动前
+     * @param integralAvailableSumBack
+     *            可用总积分数量变动后
+     * @param integralFrozenSumTop
+     *            冻结总积分数量变动前
+     * @param integralFrozenSumBack
+     *            冻结总积分数量变动后
+     * @param integralPartyTop
+     *            党员积分数量变动前
+     * @param integralPartyBack
+     *            党员积分数量变动后
+     * @param integralAvailablePartyTop
+     *            可用党员积分数量变动前
+     * @param integralAvailablePartyBack
+     *            可用党员积分数量变动后
+     * @param integralFrozenPartyTop
+     *            冻结党员积分数量变动前
+     * @param integralFrozenPartyBack
+     *            冻结党员积分数量变动后
+     * @param integralVolunteerTop
+     *            志愿者积分数量变动前
+     * @param integralVolunteerBack
+     *            志愿者积分数量变动后
+     * @param integralAvailableVolunteerTop
+     *            可用志愿者积分数量变动前
+     * @param integralAvailableVolunteerBack
+     *            可用志愿者积分数量变动后
+     * @param integralFrozenVolunteerTop
+     *            冻结志愿者积分数量变动前
+     * @param integralFrozenVolunteerBack
+     *            冻结志愿者积分数量变动后
+     * @param integralResidentTop
+     *            居民积分数量变动前
+     * @param integralResidentBack
+     *            居民积分数量变动后
+     * @param integralAvailableResidentTop
+     *            可用居民积分数量变动前
+     * @param integralAvailableResidentBack
+     *            可用居民积分数量变动后
+     * @param integralFrozenResidentTop
+     *            冻结居民积分数量变动前
+     * @param integralFrozenResidentBack
+     *            冻结居民积分数量变动后
+     * @param serviceId
+     *            交易记录id
+     */
+    void addIntegralUserChangeRecord(Long userId, Long integralId, Long communityId, Integer integralSumTop,
+        Integer integralSumBack, Integer integralAvailableSumTop, Integer integralAvailableSumBack,
+        Integer integralFrozenSumTop, Integer integralFrozenSumBack, Integer integralPartyTop,
+        Integer integralPartyBack, Integer integralAvailablePartyTop, Integer integralAvailablePartyBack,
+        Integer integralFrozenPartyTop, Integer integralFrozenPartyBack, Integer integralVolunteerTop,
+        Integer integralVolunteerBack, Integer integralAvailableVolunteerTop, Integer integralAvailableVolunteerBack,
+        Integer integralFrozenVolunteerTop, Integer integralFrozenVolunteerBack, Integer integralResidentTop,
+        Integer integralResidentBack, Integer integralAvailableResidentTop, Integer integralAvailableResidentBack,
+        Integer integralFrozenResidentTop, Integer integralFrozenResidentBack, Long serviceId);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActIntegralUserService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActIntegralUserService.java
new file mode 100644
index 0000000..d505f2b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActIntegralUserService.java
@@ -0,0 +1,90 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.integral.ComActIntegralCommunityRankDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.integral.IntegralUserRankVO;
+import com.panzhihua.service_community.model.dos.ComActIntegralUserDO;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @auther lyq
+ * @create 2021-07-28 16:02:57
+ * @describe 用户积分账户表服务类
+ */
+public interface ComActIntegralUserService extends IService<ComActIntegralUserDO> {
+
+    /**
+     * 小程序-查询积分说明
+     * 
+     * @return 积分说明
+     */
+    R getIntegralExplainApplets();
+
+    /**
+     * 用户查询当前社区可领取积分规则列表
+     * 
+     * @param userId
+     *            用户id
+     * @param communityId
+     *            社区id
+     * @return 可领取积分规则列表
+     */
+    R getIntegralReceiveApplets(Long userId, Long communityId);
+
+    /**
+     * 小程序-积分统计
+     * 
+     * @param userId
+     *            用户id
+     * @return 用户积分列表
+     */
+    R getIntegralUserListApplets(Long userId, Long communityId);
+
+    /**
+     * 查询社区积分账户排行榜
+     * 
+     * @param communityRankDTO
+     *            请求参数
+     * @return 社区积分账户排行榜
+     */
+    R getIntegralCommunityRankApplets(ComActIntegralCommunityRankDTO communityRankDTO);
+
+    /**
+     * 根据社区活动id查询社区活动报名且未参与人员列表
+     * 
+     * @param activityId
+     *            活动id
+     * @return 社区活动报名且未参与人员列表
+     */
+    R getTaskActivityPeopleList(Long activityId);
+
+    /**
+     * 查询我的积分余额
+     * @param userId
+     * @param communityId
+     * @return
+     */
+    R getUserIntegralBalance(Long userId, Long communityId);
+
+    /**
+     * 获取积分详情
+     * @param id
+     * @return
+     */
+    R getUserIntegralDetail(Long id);
+
+
+    /**
+     * 小程序-查询用户在当前社区积分排名
+     *
+     * @param userId
+     *            用户id
+     * @param communityId
+     *            社区id
+     * @return 用户在当前社区积分排名
+     */
+    IntegralUserRankVO getIntegralUserRank(Long communityId,Long userId);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActIntegralUserTradeService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActIntegralUserTradeService.java
new file mode 100644
index 0000000..ee13a57
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActIntegralUserTradeService.java
@@ -0,0 +1,88 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.integral.ComActIntegralCommunityRankDTO;
+import com.panzhihua.common.model.dtos.community.integral.ComActIntegralCountDTO;
+import com.panzhihua.common.model.dtos.community.integral.admin.AddComActIntegralUserDTO;
+import com.panzhihua.common.model.dtos.community.integral.admin.PageComActIntegralTradeDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.ComActIntegralUserTradeDO;
+
+/**
+ * @auther lyq
+ * @create 2021-07-28 16:03:18
+ * @describe 用户积分账户交易记录服务类
+ */
+public interface ComActIntegralUserTradeService extends IService<ComActIntegralUserTradeDO> {
+
+    /**
+     * 查询用户某个时间段交易数量
+     * 
+     * @param integralCountDTO
+     *            请求参数
+     * @return 交易数量
+     */
+    Integer getIntegralCount(ComActIntegralCountDTO integralCountDTO);
+
+    /**
+     * 添加用户积分交易记录
+     * 
+     * @param userId
+     *            用户id
+     * @param integralId
+     *            积分账户id
+     * @param communityId
+     *            社区id
+     * @param serviceId
+     *            交易业务id
+     * @param serviceType
+     *            交易业务类型(1.发布随手拍 2.发布微心愿 3.参与议事投票 4.社区活动-居民身份参与 " +
+     *             "5.社区活动-党员身份参与 6.社区活动-志愿者身份参与 7.参与调查问卷 8.取消活动 9.参与单位党员活动)
+     * @param amount
+     *            交易积分数量
+     * @param changeType
+     *            变动类型(1.增加 2.减少)
+     * @param remark
+     *            交易备注
+     * @param identityType
+     *            交易身份类型(1.居民 2.党员 3.志愿者)
+     * @param createBy
+     *            操作人id
+     */
+    Long addIntegralTradeRecord(Long userId, Long integralId, Long communityId, Long serviceId, Integer serviceType,
+        Integer amount, Integer changeType, String remark, Integer identityType, Long createBy);
+
+    /**
+     * 小程序-查询用户社区积分明细
+     * 
+     * @param communityTradeDTO
+     *            请求参数
+     * @return 用户社区积分明细
+     */
+    R getIntegralCommunityTradeApplets(ComActIntegralCommunityRankDTO communityTradeDTO);
+
+    /**
+     * 社区后台-分页查询社区下积分明细记录
+     * 
+     * @param integralRuleDTO
+     *            请求参数
+     * @return 社区下积分明细记录
+     */
+    R getIntegralTradeListAdmin(PageComActIntegralTradeDTO integralRuleDTO);
+
+    /**
+     * 给用户添加积分
+     * 
+     * @param integralUserDTO
+     *            请求参数
+     * @return 添加积分结果
+     */
+    R addIntegralTradeAdmin(AddComActIntegralUserDTO integralUserDTO);
+
+    /**
+     * 获取积分详情
+     * @param id
+     * @return
+     */
+    R getUserIntegralDetail(Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActMessageService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActMessageService.java
new file mode 100644
index 0000000..9bab41c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActMessageService.java
@@ -0,0 +1,85 @@
+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.ComActMessageBackVO;
+import com.panzhihua.common.model.vos.community.ComActMessageVO;
+import com.panzhihua.common.model.vos.community.ResetComActMessageVO;
+import com.panzhihua.service_community.model.dos.ComActMessageDO;
+
+public interface ComActMessageService extends IService<ComActMessageDO> {
+    /**
+     * 保存留言
+     * 
+     * @param comActMessageVO
+     * @return
+     */
+    R addMessage(ComActMessageVO comActMessageVO);
+
+    /**
+     * 我的留言
+     * 
+     * @param comActMessageVO
+     * @return
+     */
+    R pageMyMessageApplets(ComActMessageVO comActMessageVO);
+
+    /**
+     * 给我的留言
+     * 
+     * @param comActMessageVO
+     * @return
+     */
+    R pageSendToMessageApplets(ComActMessageVO comActMessageVO);
+
+    /**
+     * 社区留言
+     * 
+     * @param comActMessageVO
+     * @return
+     */
+    R pageMyCommunityMessageApplets(ComActMessageVO comActMessageVO);
+
+    /**
+     * 保存留言回复
+     * 
+     * @param comActMessageBackVO
+     * @return
+     */
+    R addMessageBack(ComActMessageBackVO comActMessageBackVO);
+
+    /**
+     * 根据用户id查询留言
+     * 
+     * @param id
+     * @return
+     */
+    R pageMessageByUserApplets(ComActMessageVO comActMessageVO);
+
+    /**
+     * 根据id删除留言,同时要删除回复
+     * 
+     * @param id
+     * @return
+     */
+    R deleteMessage(ComActMessageVO comActMessageVO);
+
+    /**
+     * 根据id集合批量设置是否公开
+     * 
+     * @param ids
+     *            id集合
+     * @return 删除结果
+     */
+    R resetMessagePublic(ResetComActMessageVO resetComActMessageVO);
+
+    /**
+     * 留言详情
+     *
+     * @param id
+     *            主键
+     * @return 详情内容
+     */
+    R detailMessage(Long id);
+
+}
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
new file mode 100644
index 0000000..05767fa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActMicroWishService.java
@@ -0,0 +1,123 @@
+package com.panzhihua.service_community.service;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.bigscreen.work.ScreenMicroListDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActMicroWishVO;
+import com.panzhihua.common.model.vos.community.TodoEventsVO;
+import com.panzhihua.service_community.model.dos.ComActMicroWishDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 微心愿
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 14:33
+ **/
+public interface ComActMicroWishService extends IService<ComActMicroWishDO> {
+    /**
+     * 分页查询微心愿
+     * 
+     * @param comActMicroWishVO
+     *            查询参数
+     * @return 心愿列表
+     */
+    R pageMicroWish(ComActMicroWishVO comActMicroWishVO);
+
+    R pageMicroWishApplets(ComActMicroWishVO comActMicroWishVO);
+
+    R pageMicroWishAppletsDesensitize(ComActMicroWishVO comActMicroWishVO);
+
+    /**
+     * 心愿详情
+     * 
+     * @param id
+     *            查询主键
+     * @param userId
+     *            登录用户id
+     * @return 心愿内容
+     */
+    R detailMicroWish(Long id, Long userId);
+
+    /**
+     * 心愿详情 - 脱敏
+     *
+     * @param id
+     *            查询主键
+     * @param userId
+     *            登录用户id
+     * @return 心愿内容
+     */
+    R detailMicroWishDesensitize(Long id, Long userId);
+
+    /**
+     * 审核、分配、反馈心愿
+     * 
+     * @param comActMicroWishVO
+     *            具体操作
+     * @return 操作结果
+     */
+    R putlMicroWish(ComActMicroWishVO comActMicroWishVO);
+
+    /**
+     * 点赞/取消点赞微心愿
+     * 
+     * @param comActMicroWishVO
+     *            操作参数
+     * @return 操作结果
+     */
+    R comActMicroWishVO(ComActMicroWishVO comActMicroWishVO);
+
+    /**
+     * 用户确认心愿
+     * 
+     * @param comActMicroWishVO
+     *            用户评价
+     * @return 确认结果
+     */
+    R putMicroWishConfirm(ComActMicroWishVO comActMicroWishVO);
+
+    /**
+     * 社区首页代办事件集合
+     * 
+     * @param communityId
+     *            社区id
+     * @param userId
+     *            登录用户
+     * @return 代办事件集合
+     */
+    List<TodoEventsVO> selectNeedToDo(Long communityId, Long userId);
+
+    /**
+     * 删除微心愿
+     * 
+     * @param id
+     * @return
+     */
+    R deleteMicroWish(Long id);
+
+    /**
+     * 定时任务刷新微心愿状态
+     * 
+     * @return
+     */
+    R timedTaskActMicroWishAll();
+
+    R getScreenMicroList(ScreenMicroListDTO microListDTO);
+
+    /**
+     * 微心愿处理人列表
+     * @param communityId   社区id
+     * @param type  处理人类型(1.后台用户  2.党员  3.志愿者)
+     * @return  处理人列表
+     */
+    R wishHandleListAdmin(Long communityId,Integer type);
+
+    /**
+     * 社区后台分页查询微心愿
+     * @param comActMicroWishVO 请求参数
+     * @return  微心愿列表
+     */
+    R pageMicroWishAdmin(ComActMicroWishVO comActMicroWishVO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleBrowseService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleBrowseService.java
new file mode 100644
index 0000000..5f6b915
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleBrowseService.java
@@ -0,0 +1,23 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.model.dos.ComActNeighborCircleBrowseDO;
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 13:40:53
+ * @describe 邻里圈浏览记录表服务类
+ */
+public interface ComActNeighborCircleBrowseService extends IService<ComActNeighborCircleBrowseDO> {
+
+    /**
+     * 添加邻里圈浏览记录
+     * 
+     * @param neighborId
+     *            邻里圈id
+     * @param userId
+     *            用户id
+     */
+    void addBrowseRecord(Long neighborId, Long userId);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleBrowseWestService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleBrowseWestService.java
new file mode 100644
index 0000000..574a945
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleBrowseWestService.java
@@ -0,0 +1,23 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.model.dos.ComActNeighborCircleBrowseWestDO;
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 13:40:53
+ * @describe 邻里圈浏览记录表服务类
+ */
+public interface ComActNeighborCircleBrowseWestService extends IService<ComActNeighborCircleBrowseWestDO> {
+
+    /**
+     * 添加邻里圈浏览记录
+     * 
+     * @param neighborId
+     *            邻里圈id
+     * @param userId
+     *            用户id
+     */
+    void addBrowseRecord(Long neighborId, Long userId);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleCommentReplyService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleCommentReplyService.java
new file mode 100644
index 0000000..8bacc60
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleCommentReplyService.java
@@ -0,0 +1,13 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.model.dos.ComActNeighborCircleCommentReplyDO;
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 09:21:45
+ * @describe 邻里圈评论回复表服务类
+ */
+public interface ComActNeighborCircleCommentReplyService extends IService<ComActNeighborCircleCommentReplyDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleCommentReplyWestService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleCommentReplyWestService.java
new file mode 100644
index 0000000..dadb766
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleCommentReplyWestService.java
@@ -0,0 +1,13 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.model.dos.ComActNeighborCircleCommentReplyWestDO;
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 09:21:45
+ * @describe 邻里圈评论回复表服务类
+ */
+public interface ComActNeighborCircleCommentReplyWestService extends IService<ComActNeighborCircleCommentReplyWestDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleCommentService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleCommentService.java
new file mode 100644
index 0000000..bcedfe4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleCommentService.java
@@ -0,0 +1,13 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.model.dos.ComActNeighborCircleCommentDO;
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 09:21:33
+ * @describe 邻里圈评论表服务类
+ */
+public interface ComActNeighborCircleCommentService extends IService<ComActNeighborCircleCommentDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleCommentWestService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleCommentWestService.java
new file mode 100644
index 0000000..dc3d696
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleCommentWestService.java
@@ -0,0 +1,13 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.model.dos.ComActNeighborCircleCommentWestDO;
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 09:21:33
+ * @describe 邻里圈评论表服务类
+ */
+public interface ComActNeighborCircleCommentWestService extends IService<ComActNeighborCircleCommentWestDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleFabulousService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleFabulousService.java
new file mode 100644
index 0000000..b03844d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleFabulousService.java
@@ -0,0 +1,13 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.model.dos.ComActNeighborCircleFabulousDO;
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 09:21:55
+ * @describe 邻里圈点赞表服务类
+ */
+public interface ComActNeighborCircleFabulousService extends IService<ComActNeighborCircleFabulousDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleFabulousWestService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleFabulousWestService.java
new file mode 100644
index 0000000..df53a3c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleFabulousWestService.java
@@ -0,0 +1,13 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.model.dos.ComActNeighborCircleFabulousWestDO;
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 09:21:55
+ * @describe 邻里圈点赞表服务类
+ */
+public interface ComActNeighborCircleFabulousWestService extends IService<ComActNeighborCircleFabulousWestDO> {
+
+}
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
new file mode 100644
index 0000000..bcc484d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleService.java
@@ -0,0 +1,292 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.ExcelDO;
+import com.panzhihua.common.model.dtos.PartyExcelDO;
+import com.panzhihua.common.model.dtos.neighbor.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.neighbor.AddNeighborCircleAdminVO;
+import com.panzhihua.common.model.vos.neighbor.ChangeCommentReplyStatusByAdminVO;
+import com.panzhihua.common.model.vos.neighbor.ChangeCommentStatusByAdminVO;
+import com.panzhihua.common.model.vos.neighbor.EditNeighborCircleAdminVO;
+import com.panzhihua.service_community.model.dos.ComActNeighborCircleDO;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 09:20:49
+ * @describe 邻里圈表服务类
+ */
+public interface ComActNeighborCircleService extends IService<ComActNeighborCircleDO> {
+
+    /**
+     * 分页查询邻里圈列表
+     *
+     * @param neighborCircleAppDTO
+     *            请求参数
+     * @return 邻里圈列表
+     */
+    R pageNeighborByApp(ComActNeighborCircleAppDTO neighborCircleAppDTO);
+
+    /**
+     * 分页查询邻里圈列表
+     *
+     * @param neighborCircleAppDTO
+     *            请求参数
+     * @return 邻里圈列表
+     */
+    R selectSolve(ComActNeighborCircleAppDTO neighborCircleAppDTO);
+
+    /**
+     * 用户发布邻里圈审核
+     * 
+     * @param addNeighborCircleAppDTO
+     *            邻里圈请求参数
+     * @return 发布结果
+     */
+    R addNeighborByApp(AddComActNeighborCircleAppDTO addNeighborCircleAppDTO);
+
+    /**
+     * 查看邻里圈详情
+     * 
+     * @param neighborCircleAppDTO
+     *            请求参数
+     * @return 邻里圈详情
+     */
+    R neighborDetailByApp(ComActNeighborCircleDetailAppDTO neighborCircleAppDTO);
+
+    /**
+     * 管理后台查询邻里圈列表
+     * 
+     * @return
+     */
+    R pageNeighborByAdmin(ComActNeighborCircleAdminDTO comActNeighborCircleAdminDTO);
+
+    /**
+     * 统计大屏查询清单列表
+     * @param neighborCircleAdminDTO
+     * @return
+     */
+    R pageNeighborByBigScreen(ComActNeighborCircleAdminDTO neighborCircleAdminDTO);
+
+    /**
+     * 邻里圈_添加
+     * 
+     * @param addNeighborCircleAdminVO
+     * @return
+     */
+    R addNeighborByAdmin(AddNeighborCircleAdminVO addNeighborCircleAdminVO);
+
+    /**
+     * 邻里圈_修改
+     * 
+     * @param editNeighborCircleAdminVO
+     * @return
+     */
+    R changeStatusByAdmin(EditNeighborCircleAdminVO editNeighborCircleAdminVO);
+
+    /**
+     * 后台删除未审核的邻里圈(待审核状态不可删除,显示、隐藏、已驳回的都可以删除)
+     * 
+     * @return
+     */
+    R deleteByAdmin(Long id);
+
+    /**
+     * 查看邻里圈基础_详情
+     * 
+     * @param id
+     *            邻里圈id
+     * @return
+     */
+    R detailNeighborByAdmin(Long id);
+
+    /**
+     * 邻里圈的所有评论_分页
+     * 
+     * @param detailNeighborAllCommentByAdminDTO
+     *            参数
+     * @return
+     */
+    R detailNeighborAllCommentByAdmin(DetailNeighborAllCommentByAdminDTO detailNeighborAllCommentByAdminDTO);
+
+    /**
+     * 评论的状态_修改
+     * 
+     * @param changeStatusComment
+     * @return
+     */
+    R changeCommentStatusByAdmin(ChangeCommentStatusByAdminVO changeStatusComment);
+
+    /**
+     * 邻里圈评论_详情
+     * 
+     * @param id
+     *            评论id
+     * @return
+     */
+    R detailNeighborCommentByAdmin(Long id);
+
+    /**
+     * 邻里圈评论回复_分页
+     * 
+     * @param dto
+     *            参数
+     * @return
+     */
+    R detailNeighborCommentAllReply(DetailNeighborCommentReplyByAdminDTO dto);
+
+    /**
+     * 邻里圈评论回复_基本详情
+     * 
+     * @param id
+     * @return
+     */
+    R detailNeighborCommentReply(Long id);
+
+    /**
+     * 评论的回复状态_修改
+     * 
+     * @param changeStatusReplyVO
+     * @return
+     */
+    R changeCommentReplyStatusByAdmin(ChangeCommentReplyStatusByAdminVO changeStatusReplyVO);
+
+    /**
+     * 用户查询邻里圈列表
+     * 
+     * @param neighborCircleAppDTO
+     *            请求参数
+     * @return 邻里圈列表
+     */
+    R neighborExamineByApp(ComActNeighborCircleAppDTO neighborCircleAppDTO);
+
+    /**
+     * 邻里圈点赞
+     * 
+     * @param fabulousAppDTO
+     *            请求参数
+     * @return 点赞结果
+     */
+    R neighborFabulousByApp(ComActNeighborFabulousAppDTO fabulousAppDTO);
+
+    /**
+     * 邻里圈转发
+     * 
+     * @param forwardAppDTO
+     *            请求参数
+     * @return 转发结果
+     */
+    R neighborForwardByApp(ComActNeighborForwardAppDTO forwardAppDTO);
+
+    /**
+     * 邻里圈评论
+     * 
+     * @param commentAppDTO
+     *            请求参数
+     * @return 评论结果
+     */
+    R neighborCommentByApp(ComActNeighborCommentAppDTO commentAppDTO);
+
+    /**
+     * 邻里圈回复
+     * 
+     * @param replyAppDTO
+     *            请求参数
+     * @return 回复结果
+     */
+    R neighborReplyByApp(ComActNeighborReplyAppDTO replyAppDTO);
+
+    /**
+     * 定时任务更新邻里圈近3天评论数/点赞数/浏览量
+     * 
+     * @return 执行结果
+     */
+    R timeTaskCircleFlow();
+
+    /**
+     * 邻里圈取消点赞
+     * 
+     * @param fabulousAppDTO
+     *            请求参数
+     * @return 取消点赞结果
+     */
+    R neighborFabulousCancelByApp(ComActNeighborFabulousAppDTO fabulousAppDTO);
+
+    /**
+     * 添加邻里圈浏览记录
+     * 
+     * @param addBrowseAppDTO
+     *            请求参数
+     * @return 返回参数
+     */
+    R neighborAddBrowseByApp(ComActNeighborAddBrowseAppDTO addBrowseAppDTO);
+
+    /**
+     * 分页查询评论下所有回复
+     * 
+     * @param commentReplyAppDTO
+     *            请求参数
+     * @return 回复列表
+     */
+    R neighborCommentReplyByApp(ComActNeighborCommentReplyAppDTO commentReplyAppDTO);
+
+    /**
+     * 小程序-删除邻里圈
+     * @param circleTopicAppDTO 请求参数
+     * @return  删除结果
+     */
+    R deleteNeighborByApp(DeleteNeighborCircleAppDTO circleTopicAppDTO);
+
+    /**
+     * 接单 处理接口
+     * @param editNeighborCircleAdminVO
+     * @return
+     */
+    R orderAndSolve(EditNeighborCircleAdminVO editNeighborCircleAdminVO);
+
+    /**
+     * 服务统计
+     * @param serviceStaticDTO
+     * @return
+     */
+    R serviceStatic(ServiceStaticDTO serviceStaticDTO);
+
+    /**
+     * 机关单位服务统计排行
+     * @return
+     * */
+    R institutionalUnitServiceAnalysis(Integer year, Integer type, Integer range,Long communityId,
+                                       Integer page,Integer size,String belongTo,Long unitId,String searchContent);
+
+    /**
+     * 导出
+     */
+    List<ExcelDO> export(Integer year, String belongTo, Long communityId) throws Exception;
+
+    List<PartyExcelDO> partyExcel(Integer year, String belongTo, Long communityId, Long unitId);
+
+    /**
+     * 后台服务统计
+     * @param serviceStaticDTO
+     * @return
+     */
+    R serviceStaticBackstage(ServiceStaticBackstageDTO serviceStaticDTO);
+
+    /**
+     * 求助我的问题数量统计
+     * @param type
+     * @param phone
+     * @return
+     */
+    R selectCount(@RequestParam("type")Integer type, @RequestParam("phone")String phone,@RequestParam("communityId")Long communityId);
+
+    /**
+     * 分页查询可关联清单列表
+     * @param neighborCircleAppDTO
+     * @return
+     */
+    R pageRelationList(ComActNeighborCircleAppDTO neighborCircleAppDTO);
+}
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
new file mode 100644
index 0000000..4c8ac9f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleTopicService.java
@@ -0,0 +1,67 @@
+package com.panzhihua.service_community.service;
+
+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.vos.R;
+import com.panzhihua.service_community.model.dos.ComActNeighborCircleTopicDO;
+
+/**
+ * @auther lyq
+ * @create 2021-07-06 15:04:37
+ * @describe 邻里圈话题表服务类
+ */
+public interface ComActNeighborCircleTopicService extends IService<ComActNeighborCircleTopicDO> {
+
+    /**
+     * 分页查询邻里圈话题列表
+     *
+     * @param circleTopicAdminDTO
+     *            请求参数
+     * @return 邻里圈话题列表
+     */
+    R pageNeighborTopicByAdmin(ComActNeighborCircleTopicAdminDTO circleTopicAdminDTO);
+
+    /**
+     * 添加邻里圈话题
+     *
+     * @param addCircleTopicAdminDTO
+     *            请求参数
+     * @return 添加结果
+     */
+    R addNeighborTopicByAdmin(AddNeighborCircleTopicAdminDTO addCircleTopicAdminDTO);
+
+    /**
+     * 编辑邻里圈话题
+     *
+     * @param addCircleTopicAdminDTO
+     *            请求参数
+     * @return 编辑结果
+     */
+    R editNeighborTopicByAdmin(AddNeighborCircleTopicAdminDTO addCircleTopicAdminDTO);
+
+    /**
+     * 小程序查询邻里圈话题列表
+     *
+     *            社区id
+     * @return 邻里圈话题列表
+     */
+    R getNeighborTopicByApp(String name);
+
+    R getNeighborTopicByAppNew(String name);
+
+    /**
+     * 小程序-用户新增话题
+     * @param circleTopicAppDTO 请求参数
+     * @return  新增结果
+     */
+    R addNeighborTopicByApp(AddNeighborCircleTopicAppDTO circleTopicAppDTO);
+
+    /**
+     * 删除话题
+     * @param id
+     * @return
+     */
+    R delete(Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleTopicWestService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleTopicWestService.java
new file mode 100644
index 0000000..986612a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleTopicWestService.java
@@ -0,0 +1,60 @@
+package com.panzhihua.service_community.service;
+
+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.vos.R;
+import com.panzhihua.service_community.model.dos.ComActNeighborCircleTopicWestDO;
+
+/**
+ * @auther lyq
+ * @create 2021-07-06 15:04:37
+ * @describe 邻里圈话题表服务类
+ */
+public interface ComActNeighborCircleTopicWestService extends IService<ComActNeighborCircleTopicWestDO> {
+
+    /**
+     * 分页查询邻里圈话题列表
+     * 
+     * @param circleTopicAdminDTO
+     *            请求参数
+     * @return 邻里圈话题列表
+     */
+    R pageNeighborTopicByAdmin(ComActNeighborCircleTopicAdminDTO circleTopicAdminDTO);
+
+    /**
+     * 添加邻里圈话题
+     * 
+     * @param addCircleTopicAdminDTO
+     *            请求参数
+     * @return 添加结果
+     */
+    R addNeighborTopicByAdmin(AddNeighborCircleTopicAdminDTO addCircleTopicAdminDTO);
+
+    /**
+     * 编辑邻里圈话题
+     * 
+     * @param addCircleTopicAdminDTO
+     *            请求参数
+     * @return 编辑结果
+     */
+    R editNeighborTopicByAdmin(AddNeighborCircleTopicAdminDTO addCircleTopicAdminDTO);
+
+    /**
+     * 小程序查询邻里圈话题列表
+     * 
+     * @param communityId
+     *            社区id
+     * @return 邻里圈话题列表
+     */
+    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/ComActNeighborCircleWestService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleWestService.java
new file mode 100644
index 0000000..8772e7a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActNeighborCircleWestService.java
@@ -0,0 +1,222 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.neighbor.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.neighbor.AddNeighborCircleAdminVO;
+import com.panzhihua.common.model.vos.neighbor.ChangeCommentReplyStatusByAdminVO;
+import com.panzhihua.common.model.vos.neighbor.ChangeCommentStatusByAdminVO;
+import com.panzhihua.common.model.vos.neighbor.EditNeighborCircleAdminVO;
+import com.panzhihua.service_community.model.dos.ComActNeighborCircleWestDO;
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 09:20:49
+ * @describe 邻里圈表服务类
+ */
+public interface ComActNeighborCircleWestService extends IService<ComActNeighborCircleWestDO> {
+
+    /**
+     * 分页查询邻里圈列表
+     *
+     * @param neighborCircleAppDTO
+     *            请求参数
+     * @return 邻里圈列表
+     */
+    R pageNeighborByApp(ComActNeighborCircleAppDTO neighborCircleAppDTO);
+
+    /**
+     * 用户发布邻里圈审核
+     * 
+     * @param addNeighborCircleAppDTO
+     *            邻里圈请求参数
+     * @return 发布结果
+     */
+    R addNeighborByApp(AddComActNeighborCircleAppDTO addNeighborCircleAppDTO);
+
+    /**
+     * 查看邻里圈详情
+     * 
+     * @param neighborCircleAppDTO
+     *            请求参数
+     * @return 邻里圈详情
+     */
+    R neighborDetailByApp(ComActNeighborCircleDetailAppDTO neighborCircleAppDTO);
+
+    /**
+     * 管理后台查询邻里圈列表
+     * 
+     * @return
+     */
+    R pageNeighborByAdmin(ComActNeighborCircleAdminDTO comActNeighborCircleAdminDTO);
+
+    /**
+     * 邻里圈_添加
+     * 
+     * @param addNeighborCircleAdminVO
+     * @return
+     */
+    R addNeighborByAdmin(AddNeighborCircleAdminVO addNeighborCircleAdminVO);
+
+    /**
+     * 邻里圈_修改
+     * 
+     * @param editNeighborCircleAdminVO
+     * @return
+     */
+    R changeStatusByAdmin(EditNeighborCircleAdminVO editNeighborCircleAdminVO);
+
+    /**
+     * 后台删除未审核的邻里圈(待审核状态不可删除,显示、隐藏、已驳回的都可以删除)
+     * 
+     * @return
+     */
+    R deleteByAdmin(Long id);
+
+    /**
+     * 查看邻里圈基础_详情
+     * 
+     * @param id
+     *            邻里圈id
+     * @return
+     */
+    R detailNeighborByAdmin(Long id);
+
+    /**
+     * 邻里圈的所有评论_分页
+     * 
+     * @param detailNeighborAllCommentByAdminDTO
+     *            参数
+     * @return
+     */
+    R detailNeighborAllCommentByAdmin(DetailNeighborAllCommentByAdminDTO detailNeighborAllCommentByAdminDTO);
+
+    /**
+     * 评论的状态_修改
+     * 
+     * @param changeStatusComment
+     * @return
+     */
+    R changeCommentStatusByAdmin(ChangeCommentStatusByAdminVO changeStatusComment);
+
+    /**
+     * 邻里圈评论_详情
+     * 
+     * @param id
+     *            评论id
+     * @return
+     */
+    R detailNeighborCommentByAdmin(Long id);
+
+    /**
+     * 邻里圈评论回复_分页
+     * 
+     * @param dto
+     *            参数
+     * @return
+     */
+    R detailNeighborCommentAllReply(DetailNeighborCommentReplyByAdminDTO dto);
+
+    /**
+     * 邻里圈评论回复_基本详情
+     * 
+     * @param id
+     * @return
+     */
+    R detailNeighborCommentReply(Long id);
+
+    /**
+     * 评论的回复状态_修改
+     * 
+     * @param changeStatusReplyVO
+     * @return
+     */
+    R changeCommentReplyStatusByAdmin(ChangeCommentReplyStatusByAdminVO changeStatusReplyVO);
+
+    /**
+     * 用户查询邻里圈列表
+     * 
+     * @param neighborCircleAppDTO
+     *            请求参数
+     * @return 邻里圈列表
+     */
+    R neighborExamineByApp(ComActNeighborCircleAppDTO neighborCircleAppDTO);
+
+    /**
+     * 邻里圈点赞
+     * 
+     * @param fabulousAppDTO
+     *            请求参数
+     * @return 点赞结果
+     */
+    R neighborFabulousByApp(ComActNeighborFabulousAppDTO fabulousAppDTO);
+
+    /**
+     * 邻里圈转发
+     * 
+     * @param forwardAppDTO
+     *            请求参数
+     * @return 转发结果
+     */
+    R neighborForwardByApp(ComActNeighborForwardAppDTO forwardAppDTO);
+
+    /**
+     * 邻里圈评论
+     * 
+     * @param commentAppDTO
+     *            请求参数
+     * @return 评论结果
+     */
+    R neighborCommentByApp(ComActNeighborCommentAppDTO commentAppDTO);
+
+    /**
+     * 邻里圈回复
+     * 
+     * @param replyAppDTO
+     *            请求参数
+     * @return 回复结果
+     */
+    R neighborReplyByApp(ComActNeighborReplyAppDTO replyAppDTO);
+
+    /**
+     * 定时任务更新邻里圈近3天评论数/点赞数/浏览量
+     * 
+     * @return 执行结果
+     */
+    R timeTaskCircleFlow();
+
+    /**
+     * 邻里圈取消点赞
+     * 
+     * @param fabulousAppDTO
+     *            请求参数
+     * @return 取消点赞结果
+     */
+    R neighborFabulousCancelByApp(ComActNeighborFabulousAppDTO fabulousAppDTO);
+
+    /**
+     * 添加邻里圈浏览记录
+     * 
+     * @param addBrowseAppDTO
+     *            请求参数
+     * @return 返回参数
+     */
+    R neighborAddBrowseByApp(ComActNeighborAddBrowseAppDTO addBrowseAppDTO);
+
+    /**
+     * 分页查询评论下所有回复
+     * 
+     * @param commentReplyAppDTO
+     *            请求参数
+     * @return 回复列表
+     */
+    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/ComActPictureLibraryService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActPictureLibraryService.java
new file mode 100644
index 0000000..fd17ac3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActPictureLibraryService.java
@@ -0,0 +1,21 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.vos.R;
+
+/**
+ * @title: ComActPictureLibraryService
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 公共预设图库服务类
+ * @author: hans
+ * @date: 2021/11/23 17:01
+ */
+public interface ComActPictureLibraryService {
+
+    /**
+     * 获取预设图库
+     * @param type
+     * @param subtype
+     * @return
+     */
+    R getPresetPictureLibrary(Integer type, Integer subtype);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActProceedingsService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActProceedingsService.java
new file mode 100644
index 0000000..0378a20
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActProceedingsService.java
@@ -0,0 +1,24 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.ComActProceedingsDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.ComActAcidDangerMember;
+import com.panzhihua.service_community.entity.ComActProceedings;
+
+public interface ComActProceedingsService extends IService<ComActProceedings> {
+
+    /**
+     * 分页查询议事委员会
+     * @param keyWord 搜索关键字
+     * @return 处理结果
+     * */
+    R pageProceedings(Integer page, Integer size, String keyWord);
+
+    /**
+     * 新增或修改议事委员会
+     * @param comActProceedingsDTO
+     * @return 处理结果
+     * */
+    R addOrUpdate(ComActProceedingsDTO comActProceedingsDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActQuestnaireService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActQuestnaireService.java
new file mode 100644
index 0000000..5c2df35
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActQuestnaireService.java
@@ -0,0 +1,188 @@
+package com.panzhihua.service_community.service;
+
+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.questnaire.StatisticsSummaryDTO;
+import com.panzhihua.common.model.vos.R;
+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;
+
+/**
+ * @Author: llming
+ * @Description: 问卷调查相关逻辑业务
+ */
+public interface ComActQuestnaireService {
+    /**
+     * 新增社区问卷
+     *
+     * @return
+     */
+    R addQuestnaire(QuestnaireVO questnaireVO);
+
+    /**
+     * 小程序-社区问卷列表
+     */
+    R pageQuestnaire(PageQuestnaireDTO pageQuestnaireDTO);
+
+    /**
+     * 社区后台-社区问卷列表
+     * 
+     * @param pageQuestnaireDTO
+     *            请求参数
+     * @return 社区问卷列表
+     */
+    R pageQuestnaireAdmin(PageQuestnaireDTO pageQuestnaireDTO);
+
+    /**
+     * 编辑问卷——问卷、题目、选项
+     */
+    R editQuestnaire(QuestnaireVO questnaireVO);
+
+    /**
+     * 修改问卷状态
+     */
+    R editQuestnaireDO(EditComActQuestnaireVo editComActQuestnaireVo);
+
+    /**
+     * 删除问卷 ——隐藏
+     *
+     * @param questId
+     *            问卷调查ID
+     * @return
+     */
+    R deleteQuestnaire(Long questId, Long userId);
+
+    /**
+     * 问卷详情-调查结果统计
+     *
+     * @param questId
+     *            问卷ID
+     */
+    R statQuestnaire(Long questId);
+
+    /**
+     * 问卷详细-问卷查看
+     *
+     * @param questId
+     * @return
+     */
+    R infoQuestnaire(Long questId);
+
+    /**
+     * 问卷答题详情
+     *
+     * @param userId
+     *            用户ID
+     * @param questId
+     *            问卷ID
+     */
+    R answerInfoQuestnaire(Long userId, Long questId);
+
+    /**
+     * 问卷答题结果
+     *
+     * @param questId
+     *            问卷ID
+     */
+    R answerResultList(Long questId);
+
+    /**
+     * 问答题详细回答列表
+     * 
+     * @param pageQuestnaireSubDetailsDTO
+     *            分页查询参数
+     * @return 分页查询结果
+     */
+    R qaQeustDetails(PageQuestnaireSubDetailsDTO pageQuestnaireSubDetailsDTO);
+
+    /**
+     * 社区问卷 回答分页信息
+     * 
+     * @param pageQuestnaireAnswerDTO
+     *            分页查询数据
+     * @return 分页信息
+     */
+    R pageQuestnaireAnswer(PageQuestnaireAnswerDTO pageQuestnaireAnswerDTO);
+
+    /**
+     * 居民填写问卷调查问卷
+     * 
+     * @param usersAnswerQuestnaireVO
+     * @return
+     */
+    R usersAnsweQuestnaire(UsersAnswerQuestnaireVO usersAnswerQuestnaireVO);
+
+    /**
+     * 社区后台-查询问卷调查详情
+     * 
+     * @param questId
+     *            问卷id
+     * @return 问卷调查详情
+     */
+    R getQuesDetailAdmin(Long questId);
+
+    /**
+     * 小程序-问卷调查详情
+     * 
+     * @param userId
+     *            用户id
+     * @param questId
+     *            问卷id
+     * @return 问卷调查详情
+     */
+    R getQuesDetail(Long questId, Long userId);
+
+    /**
+     * 问卷调查统计汇总
+     * 
+     * @param summaryDTO
+     *            请求参数
+     * @return 统计汇总
+     */
+    R statisticsSummary(StatisticsSummaryDTO summaryDTO);
+
+    /**
+     * 问卷调查统计汇总导出数据查询
+     * 
+     * @param questId
+     *            调查问卷id
+     * @return 调查统计汇总导出数据
+     */
+    R statisticsSummaryExport(Long questId);
+
+    /**
+     * 问卷调查统计汇总表头统计
+     * 
+     * @param questId
+     *            调查问卷id
+     * @return 问卷调查统计汇总表头统计数据
+     */
+    R statisticsSummaryHeader(Long questId, Long communityId);
+
+    /**
+     * 定时任务检测待发布,调研中的问卷调查状态
+     */
+    R timedTaskQuestionnaire();
+
+    /**
+     * 小程序-新增问卷调查浏览数量
+     * 
+     * @param questId
+     *            问卷调查id
+     * @return 增加结果
+     */
+    R addQuestnaireView(Long questId);
+
+    /**
+     * 小程序-用户弹窗添加不在提醒接口
+     * 
+     * @param questId
+     *            问卷id
+     * @param userId
+     *            用户id
+     * @return 添加结果
+     */
+    R addNoNotice(Long questId, Long userId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActQuestnaireUserAnswerService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActQuestnaireUserAnswerService.java
new file mode 100644
index 0000000..bebd419
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActQuestnaireUserAnswerService.java
@@ -0,0 +1,13 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.model.dos.ComActQuestnaireUserAnswerDO;
+
+/**
+ * @auther lyq
+ * @create 2021-08-17 17:42:06
+ * @describe 问卷调查用户答题记录服务类
+ */
+public interface ComActQuestnaireUserAnswerService extends IService<ComActQuestnaireUserAnswerDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActRafflePrizeService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActRafflePrizeService.java
new file mode 100644
index 0000000..8af5d2c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActRafflePrizeService.java
@@ -0,0 +1,24 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.entity.ComActRafflePrize;
+
+/**
+ * 抽奖活动奖品表(ComActRafflePrize)表服务接口
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 抽奖活动奖品表相关功能
+ *
+ * @author zzj
+ * @since 2022-02-18 14:31:45
+ */
+public interface ComActRafflePrizeService extends IService<ComActRafflePrize> {
+    /**
+     * 分页查询
+     *
+     * @param commonPage
+     * @return
+     */
+    R pageList(CommonPage commonPage);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActRaffleRecordService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActRaffleRecordService.java
new file mode 100644
index 0000000..86f6310
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActRaffleRecordService.java
@@ -0,0 +1,54 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.community.warehouse.QRCodeVO;
+import com.panzhihua.service_community.entity.ComActRaffleRecord;
+
+/**
+ * 抽奖活动中奖记录表(ComActRaffleRecord)表服务接口
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 抽奖活动中奖记录表相关功能
+ *
+ * @author zzj
+ * @since 2022-02-18 14:32:02
+ */
+public interface ComActRaffleRecordService extends IService<ComActRaffleRecord> {
+    /**
+     * 分页查询
+     *
+     * @param commonPage
+     * @return
+     */
+    R pageList(CommonPage commonPage);
+
+    /**
+     * 查询奖品信息
+     * @param id
+     * @return
+     */
+    R queryPrize(Long id);
+
+    /**
+     * 生成二维码
+     * @param qrCodeVO
+     * @return
+     */
+    R queryQrCode(QRCodeVO qrCodeVO);
+
+    /**
+     * 导出
+     *
+     * @param commonPage
+     * @return
+     */
+    R export(CommonPage commonPage);
+
+    /**
+     * 根据Id查询
+     * @param id
+     * @return
+     */
+    R selectById(Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActRaffleService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActRaffleService.java
new file mode 100644
index 0000000..8bf7175
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActRaffleService.java
@@ -0,0 +1,54 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.community.raffle.ComActRaffleVO;
+import com.panzhihua.service_community.entity.ComActRaffle;
+
+/**
+ * 抽奖活动表(ComActRaffle)表服务接口
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 抽奖活动表相关功能
+ *
+ * @author zzj
+ * @since 2022-02-18 14:31:20
+ */
+public interface ComActRaffleService extends IService<ComActRaffle> {
+    /**
+     * 分页查询
+     *
+     * @param commonPage
+     * @return
+     */
+    R pageList(CommonPage commonPage);
+
+    /**
+     * 新增
+     * @param comActRaffleVO
+     * @return
+     */
+    R insert(ComActRaffleVO comActRaffleVO);
+
+    /**
+     * 修改
+     * @param comActRaffleVO
+     * @return
+     */
+    R update(ComActRaffleVO comActRaffleVO);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    R delete(Long id);
+
+    /**
+     * 详情
+     * @param id
+     * @param userId
+     * @return
+     */
+    R selectById(Long id,Long userId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveAnswerContentService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveAnswerContentService.java
new file mode 100644
index 0000000..9d6fdc1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveAnswerContentService.java
@@ -0,0 +1,56 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.reserve.PageReserveRegisterDetailedAdminDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.ComActReserveAnswerContentDO;
+
+/**
+ * @auther lyq
+ * @create 2021-08-23 10:33:32
+ * @describe 预约登记回答记录内容 服务类
+ */
+public interface ComActReserveAnswerContentService extends IService<ComActReserveAnswerContentDO> {
+
+    /**
+     * 导出登记明细数据
+     * @param pageReserveRegisterDetailedAdminDTO 登记id
+     * @return  登记明细数据
+     */
+    R exportRegisterAdmin(PageReserveRegisterDetailedAdminDTO pageReserveRegisterDetailedAdminDTO);
+
+    /**
+     * 分页查询登记明细列表
+     * @param detailedAdminDTO  请求参数
+     * @return  登记明细列表
+     */
+    R registerDetailedListAdmin(PageReserveRegisterDetailedAdminDTO detailedAdminDTO);
+
+    /**
+     * 导出登记明细列表
+     * @param detailedAdminDTO  请求参数
+     * @return  登记明细列表
+     */
+    R registerDetailedListAdminExport(PageReserveRegisterDetailedAdminDTO detailedAdminDTO);
+
+    /**
+     * 分页查询居家隔离统计
+     * @param detailedAdminDTO
+     * @return
+     */
+    R pageRegisterHomeQuarantine(PageReserveRegisterDetailedAdminDTO detailedAdminDTO);
+
+    /**
+     * 居家隔离导出
+     * @param detailedAdminDTO
+     * @return
+     */
+    R exportHomeQuarantine(PageReserveRegisterDetailedAdminDTO detailedAdminDTO);
+
+    /**
+     * 大屏数据统计
+     * @param communityId
+     * @return
+     */
+    R bigScreenStaticsReserve(Long communityId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveDangerAreaService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveDangerAreaService.java
new file mode 100644
index 0000000..80b3b2a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveDangerAreaService.java
@@ -0,0 +1,38 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.dtos.community.reserve.EditDangerBatchDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.entity.ComActReserveDangerArea;
+
+/**
+ * (ComActReserveDangerArea)表服务接口
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 相关功能
+ *
+ * @author zzj
+ * @since 2022-04-07 14:22:20
+ */
+public interface ComActReserveDangerAreaService extends IService<ComActReserveDangerArea> {
+    /**
+     * 分页查询
+     *
+     * @param commonPage
+     * @return
+     */
+    R pageList(CommonPage commonPage);
+
+    /**
+     * 中高分线统计数据
+     * @return
+     */
+    R statics();
+
+    /**
+     * 批量设置起始时间
+     * @param editDangerBatchDTO
+     * @return
+     */
+    R updateBatch(EditDangerBatchDTO editDangerBatchDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveOperationRecordService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveOperationRecordService.java
new file mode 100644
index 0000000..404f8b7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveOperationRecordService.java
@@ -0,0 +1,41 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.OperationDetailDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.ComActReserveOperationRecordDO;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @auther lyq
+ * @create 2021-08-23 10:33:42
+ * @describe 预约登记操作记录表服务类
+ */
+public interface ComActReserveOperationRecordService extends IService<ComActReserveOperationRecordDO> {
+
+    /**
+     * 添加预约登记操作记录
+     * @param reserveId 预约登记id
+     * @param reserveRecordId   预约登记记录id
+     * @param userId    用户id
+     * @param type  类型(1.本人操作 2.社区操作)
+     * @param phone 操作人手机号
+     * @param reserveContent    操作内容
+     * @param remark    备注
+     * @param status    状态(1.提交 2.预约成功 3.预约失败 4.取消)
+     * @param createBy  创建人
+     * @param reserveTime  成功预约时间
+     */
+    void addReserveOperationRecord(Long reserveId, Long reserveRecordId, Long userId, Integer type
+            , String phone, String reserveContent,String remark,Integer status,Long createBy,Date reserveTime);
+
+
+    /**
+     * 多条件查询操作记录
+     * @param operationDetailDTO
+     * @return
+     */
+    R detailOperationRecord(OperationDetailDTO operationDetailDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveRecordService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveRecordService.java
new file mode 100644
index 0000000..78e716e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveRecordService.java
@@ -0,0 +1,91 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.reserve.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.community.CancelRecordDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.ComActReserveRecordDO;
+
+import java.util.List;
+
+/**
+ * @auther lyq
+ * @create 2021-08-23 10:33:53
+ * @describe 预约登记记录表服务类
+ */
+public interface ComActReserveRecordService extends IService<ComActReserveRecordDO> {
+    R cancel(CancelRecordDTO comActReserveRecordDO);
+
+    /**
+     * 社区后台-根据预约id查询预约明细
+     * @param pageMakeDTO   请求参数
+     * @return  预约明细
+     */
+    R pageMakeAdmin(PageReserveMakeAdminDTO pageMakeDTO);
+
+    /**
+     * 根据预约记录id查询预约明细操作记录
+     * @param reserveRecordId   预约记录id
+     * @return  预约明细操作记录
+     */
+    R detailMakeAdmin(Long reserveRecordId);
+
+    /**
+     * 批量取消预约记录
+     * @param reserveRecordDTO   请求参数
+     * @return  取消结果
+     */
+    R makeCancelAdmin(CancelReserveRecordDTO reserveRecordDTO);
+
+    /**
+     * 预约明细导出数据查询
+     * @param pageMakeDTO   请求参数
+     * @return  预约明细数据
+     */
+    R exportMakeAdmin(PageReserveMakeAdminDTO pageMakeDTO);
+
+    /**
+     * 分页查询登记统计汇总
+     * @param registerStatisticsDTO 请求参数
+     * @return  登记统计汇总
+     */
+    R registerStatisticsAdmin(ComActReserveRegisterStatisticsDTO registerStatisticsDTO);
+
+    /**
+     * 导出登记统计汇总
+     * @param registerStatisticsDTO 请求参数
+     * @return  登记统计汇总
+     */
+    R registerStatisticsExportAdmin(ComActReserveRegisterStatisticsDTO registerStatisticsDTO);
+
+    /**
+     * 分页查询预约处理列表
+     * @param pageMakeHandleDTO 请求参数
+     * @return  预约处理列表
+     */
+    R pageMakeHandleAdmin(PageReserveMakeHandleAdminDTO pageMakeHandleDTO);
+
+    /**
+     * 批量处理预约记录
+     * @param makeHandleDTO 请求参数
+     * @return  处理结果
+     */
+    R makeHandleAdmin(MakeHandleAdminDTO makeHandleDTO);
+
+    /**
+     * 导出预约处理列表数据查询
+     * @param pageMakeHandleDTO 请求参数
+     * @return  预约处理列表
+     */
+    R exportMakeHandleAdmin(PageReserveMakeHandleAdminDTO pageMakeHandleDTO);
+
+    R registerDetailedDetailAdmin(Long reserveRecordId);
+
+    /**
+     * 5个常规查询
+     * @param reserveId
+     * @return
+     */
+    R fiveCount(Long reserveId);
+}
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
new file mode 100644
index 0000000..ae874f0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveService.java
@@ -0,0 +1,137 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.PageUserReserveDTO;
+import com.panzhihua.common.model.dtos.community.reserve.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActReserveCommitVO;
+import com.panzhihua.common.model.vos.community.bigscreen.IndexReserve;
+import com.panzhihua.common.model.vos.community.reserve.ComActReserveDetailAdminVO;
+import com.panzhihua.service_community.model.dos.ComActReserveDO;
+
+/**
+ * @auther lyq
+ * @create 2021-08-23 10:33:11
+ * @describe 预约登记表服务类
+ */
+public interface ComActReserveService extends IService<ComActReserveDO> {
+    /**
+     * 小程序提交预约登记
+     * @param comActReserveCommitVO
+     * @return 预约登记结果
+     */
+    R commit(ComActReserveCommitVO comActReserveCommitVO);
+
+    /**
+     * 外部提交预约登记
+     * @param comActReserveCommitVO
+     * @return 预约登记结果
+     */
+    R commitNoToken(ComActReserveCommitVO comActReserveCommitVO);
+
+    /**
+     * 外部提交预约登记
+     * @param comActReserveCommitVO
+     * @return 预约登记结果
+     */
+    R homeQuarantineCommitNoToken(ComActReserveCommitVO comActReserveCommitVO);
+
+    /**
+     * 小程序我的预约登记
+     * @param pageUserReserveDTO
+     * @return 预约登记列表
+     */
+    R pageReserveList(PageUserReserveDTO pageUserReserveDTO);
+
+    /**
+     * 社区后台-分页查询预约登记列表
+     * @param pageReserveDTO    请求参数
+     * @return  预约登记列表
+     */
+    R pageReserveAdmin(PageReserveAdminDTO pageReserveDTO);
+
+    /**
+     * 社区后台-新增预约登记信息
+     * @param addReserveDTO 请求参数
+     * @return  新增结果
+     */
+    R addReserveAdmin(AddReserveAdminDTO addReserveDTO);
+
+    /**
+     * 社区后台-编辑预约登记信息
+     * @param editReserveDTO 请求参数
+     * @return  新增结果
+     */
+    R editReserveAdmin(EditReserveAdminDTO editReserveDTO);
+
+    /**
+     * 社区后台-修改预约登记状态
+     * @param editReserveDTO    请求参数
+     * @return  修改结果
+     */
+    R editReserveStatusAdmin(EditComActReserveStatusDTO editReserveDTO);
+
+    /**
+     * 社区后台-继续预约登记
+     * @param editReserveDTO    请求参数
+     * @return  修改结果
+     */
+    R editReserveInfoAdmin(EditComActReserveInfoDTO editReserveDTO);
+
+    /**
+     * 社区后台-根据预约登记id查询详情
+     * @param reserveId 预约登记id
+     * @return  预约登记详情
+     */
+    R<ComActReserveDetailAdminVO> detailReserveAdmin(Long reserveId);
+
+    /**
+     * 社区后台-根据社区id统计预约类数据
+     * @param makeStatisticsDTO   请求参数
+     * @return  统计预约类数据
+     */
+    R makeStatisticsAdmin(ComActReserveMakeStatisticsDTO makeStatisticsDTO);
+
+    /**
+     * 社区后台-查询导出预约统计汇总数据
+     * @param makeStatisticsDTO   请求参数
+     * @return  统计预约类数据
+     */
+    R makeStatisticsExportAdmin(ComActReserveMakeStatisticsDTO makeStatisticsDTO);
+
+    /**
+     * 删除预约登记信息
+     * @param reserveId 预约登记id
+     * @return  删除结果
+     */
+    R deleteReserveAdmin(Long reserveId);
+
+    /**
+     * 查询社区所有预约信息列表
+     * @param communityId   社区id
+     * @return  预约信息列表
+     */
+    R listReserveAdmin(Long communityId);
+
+    /**
+     * 小程序预约登记查询详情
+     * @param id
+     * @return
+     */
+    R getById(Long id,Long userId,Long recordId,Integer isBack);
+
+    /**
+     * 小程序查询所有进行中的预约登记
+     * @param communityId   社区id
+     * @return  社区所有进行中的预约登记列表
+     */
+    R reserveListApplets(Long communityId);
+
+    /**
+     * 返攀登记居家隔离大屏数据
+     * @param communityId
+     * @return
+     */
+    IndexReserve indexReserve(Long communityId);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveSubSelectionService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveSubSelectionService.java
new file mode 100644
index 0000000..5160fdf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveSubSelectionService.java
@@ -0,0 +1,13 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.model.dos.ComActReserveSubSelectionDO;
+
+/**
+ * @auther lyq
+ * @create 2021-08-23 10:34:13
+ * @describe 预约登记题目选项 服务类
+ */
+public interface ComActReserveSubSelectionService extends IService<ComActReserveSubSelectionDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveSubService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveSubService.java
new file mode 100644
index 0000000..06f4a34
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActReserveSubService.java
@@ -0,0 +1,31 @@
+package com.panzhihua.service_community.service;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.ComActReserveSubDO;
+
+/**
+ * @auther lyq
+ * @create 2021-08-23 10:34:03
+ * @describe 预约登记题目选项服务类
+ */
+public interface ComActReserveSubService extends IService<ComActReserveSubDO> {
+
+    /**
+     * 查询预约登记题目列表
+     * @param reserveId 预约登记id
+     * @return  约登记题目列表
+     */
+    R subjectListAdmin(Long reserveId);
+
+    /**
+     * 查询预约登记题目下属选择项列表
+     * 
+     * @param reserveSubId
+     *            预约登记id
+     * @return 查询预约登记题目下属选择项列表
+     */
+    List<String> subjectSelectionListAdmin(Long reserveSubId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActService.java
new file mode 100644
index 0000000..194a04b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActService.java
@@ -0,0 +1,137 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.dtos.community.PageComActDTO;
+import com.panzhihua.common.model.dtos.community.switchs.SearchCommunityDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActVO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 社区
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-15 10:13
+ **/
+public interface ComActService {
+    /**
+     * 新增社区
+     * 
+     * @param comActVO
+     *            社区信息
+     * @return 新增结果
+     */
+    R addCommunity(ComActVO comActVO);
+
+    /**
+     * 编辑社区
+     * 
+     * @param comActVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    R putCommunity(ComActVO comActVO);
+
+    /**
+     * 查询社区
+     * 
+     * @param comActVO
+     *            登录人的经纬度、或者指定区域的社区
+     * @return 社区集合
+     */
+    R listCommunity(ComActVO comActVO);
+
+    /**
+     * 社区详情
+     * 
+     * @param communityId
+     *            社区id
+     * @return 社区详情
+     */
+    R detailCommunity(Long communityId);
+
+    /**
+     * 分页查询社区
+     * 
+     * @param pageComActDTO
+     *            查询参数
+     * @return 分页集合
+     */
+    R pageCommunity(PageComActDTO pageComActDTO);
+
+    /**
+     * 查询平台所有的社区
+     * 
+     * @return 社区集合 按照创建顺序倒序排列
+     */
+    R listCommunityAll(String areaCode);
+
+    /**
+     * 删除社区
+     * 
+     * @param communityId
+     *            社区id
+     * @return 删除结果
+     */
+    R delectCommunity(Long communityId);
+
+    /**
+     * 综治后台-查询社区列表
+     * 
+     * @return 社区列表
+     */
+    R getCommunityLists(String appId);
+
+    /**
+     * 查询西区社区列表
+     *
+     * @return 社区列表
+     */
+    R getWestCommunityLists(String areaCode);
+
+    /**
+     * 查询社区所有列表
+     * 
+     * @return 社区列表
+     */
+    R getCommunityAllList(String appId);
+
+    /**
+     * 根据名字查询所有社区列表
+     * 
+     * @param name
+     *            社区名字
+     * @return 社区列表
+     */
+    R communitySwitchSearchList(String name,String areaCode);
+
+    /**
+     * 根据经纬度以及距离搜索附近社区列表
+     * 
+     * @param communityDTO
+     *            请求参数
+     * @return 社区列表
+     */
+    R communitySwitchSearchDistanceList(SearchCommunityDTO communityDTO);
+
+    R getCommunityPassword(Long communityId);
+
+    R selectIds(Long id);
+
+    /**
+     * 统计大屏-基础数据
+     * @return
+     */
+    R selectBasicData();
+
+    /**
+     * 统计在职干部特长
+     * @return
+     */
+    R statisticsPbMemberType();
+
+    /**
+     * 单位统计
+     * @return
+     */
+    R selectUnitByNatureName();
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialMemberService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialMemberService.java
new file mode 100644
index 0000000..4151149
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialMemberService.java
@@ -0,0 +1,49 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.vos.ComActSocialMemberVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.entity.ComActSocialMember;
+
+/**
+ * 社会组织成员表(ComActSocialMember)表服务接口
+ *
+ * @author makejava
+ * @since 2021-10-22 09:52:46
+ */
+public interface ComActSocialMemberService extends IService<ComActSocialMember> {
+    /**
+     * 分页查询
+     *
+     * @param commonPage
+     * @return
+     */
+    R pageList(CommonPage commonPage);
+
+    /**
+     * 新增
+     * @param comActSocialMemberVO
+     * @return
+     */
+    R insert(ComActSocialMemberVO comActSocialMemberVO);
+
+    /**
+     * 修改
+     * @param comActSocialMemberVO
+     * @return
+     */
+    R update(ComActSocialMemberVO comActSocialMemberVO);
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    R detail(Long id);
+
+    /**
+     * 删除
+     */
+    R delete(Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialOrgHatchAuditScheduleService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialOrgHatchAuditScheduleService.java
new file mode 100644
index 0000000..68c5a24
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialOrgHatchAuditScheduleService.java
@@ -0,0 +1,14 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.entity.ComActSocialOrgHatchAuditSchedule;
+
+/**
+ * 社会组织孵化申请进度表(ComActSocialOrgHatchAuditSchedule)表服务接口
+ *
+ * @author makejava
+ * @since 2022-04-18 15:10:48
+ */
+public interface ComActSocialOrgHatchAuditScheduleService extends IService<ComActSocialOrgHatchAuditSchedule> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialOrgHatchAuditService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialOrgHatchAuditService.java
new file mode 100644
index 0000000..d048c40
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialOrgHatchAuditService.java
@@ -0,0 +1,73 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.social.HatchAuditProcessDTO;
+import com.panzhihua.common.model.dtos.community.social.PageSocialOrgHatchAuditDTO;
+import com.panzhihua.common.model.dtos.community.social.SocialOrgHatchAuditDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.ComActSocialOrgHatchAudit;
+
+/**
+ * 社会组织孵化申请表(ComActSocialOrgHatchAudit)表服务接口
+ *
+ * @author makejava
+ * @since 2022-04-18 14:09:53
+ */
+public interface ComActSocialOrgHatchAuditService extends IService<ComActSocialOrgHatchAudit> {
+
+    /**
+     * 分页查询孵化申请
+     * @param pageHatchAuditDTO
+     * @return
+     */
+    R pageHatchAudit(PageSocialOrgHatchAuditDTO pageHatchAuditDTO);
+
+    /**
+     * 查看孵化申请详情
+     * @param id
+     * @return
+     */
+    R detailHatchAudit(Long id);
+
+    /**
+     * 修改孵化申请
+     * @param hatchAuditDTO
+     * @return
+     */
+    R updateHatchAudit(SocialOrgHatchAuditDTO hatchAuditDTO);
+
+    /**
+     * 获取孵化流程配置
+     * @return
+     */
+    R getHatchAuditProcess();
+
+    /**
+     * 修改孵化流程配置
+     * @param processDTO
+     * @return
+     */
+    R putHatchAuditProcess(HatchAuditProcessDTO processDTO);
+
+    /**
+     * 新增孵化申请
+     * @param hatchAuditDTO
+     * @return
+     */
+    R addHatchAudit(SocialOrgHatchAuditDTO hatchAuditDTO);
+
+    /**
+     * 查看孵化申请审核进度
+     * @param userId
+     * @return
+     */
+    R getHatchAuditSchedule(Long userId);
+
+    /**
+     * 删除孵化申请详情
+     * @param id
+     * @return
+     */
+    R deleteHatchAudit(Long id);
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialOrgHatchService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialOrgHatchService.java
new file mode 100644
index 0000000..67c48ea
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialOrgHatchService.java
@@ -0,0 +1,45 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.social.PageSocialOrgHatchDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.ComActSocialOrgHatch;
+
+/**
+ * 社会组织孵化表(ComActSocialOrgHatch)表服务接口
+ *
+ * @author makejava
+ * @since 2022-04-18 14:09:53
+ */
+public interface ComActSocialOrgHatchService extends IService<ComActSocialOrgHatch> {
+
+    /**
+     * 分页查询孵化数据
+     * @param pageHatchDTO
+     * @return
+     */
+    R pageOrgHatch(PageSocialOrgHatchDTO pageHatchDTO);
+
+    /**
+     * 查看孵化数据详情
+     * @param id
+     * @return
+     */
+    R detailOrgHatch(Long id);
+
+    /**
+     * 修改孵化状态
+     * @param id
+     * @param status
+     * @return
+     */
+    R updateOrgHatchStatus(Long id, Integer status);
+
+    /**
+     * 删除孵化数据
+     * @param id
+     * @return
+     */
+    R deleteOrgHatch(Long id);
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialOrgService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialOrgService.java
new file mode 100644
index 0000000..84aec78
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialOrgService.java
@@ -0,0 +1,50 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActSocialOrgVO;
+import com.panzhihua.service_community.entity.ComActSocialOrg;
+
+/**
+ * 社会组织(ComActSocialOrg)表服务接口
+ *
+ * @author makejava
+ * @since 2021-09-17 10:45:30
+ */
+public interface ComActSocialOrgService extends IService<ComActSocialOrg> {
+    /**
+     * 分页查询
+     * @param commonPage
+     * @return
+     */
+    R pageList(CommonPage commonPage);
+
+    /**
+     * id查询详情
+     * @param id
+     * @return
+     */
+    R selectById(Long id);
+
+    /**
+     * 新增
+     * @param comActSocialOrgVO
+     * @return
+     */
+    R insert(ComActSocialOrgVO comActSocialOrgVO);
+
+    /**
+     * 更新
+     * @param comActSocialOrgVO
+     * @return
+     */
+    R update(ComActSocialOrgVO comActSocialOrgVO);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    R delete(Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialProjectMemberService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialProjectMemberService.java
new file mode 100644
index 0000000..97bdeb9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialProjectMemberService.java
@@ -0,0 +1,37 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.community.social.ComActSocialProjectMemberVO;
+import com.panzhihua.service_community.entity.ComActSocialProjectMember;
+
+/**
+ * 项目人员(ComActSocialProjectMember)表服务接口
+ *
+ * @author makejava
+ * @since 2021-12-23 15:16:43
+ */
+public interface ComActSocialProjectMemberService extends IService<ComActSocialProjectMember> {
+    /**
+     * 分页查询
+     *
+     * @param commonPage
+     * @return
+     */
+    R pageList(CommonPage commonPage);
+
+    /**
+     * 添加人员
+     * @param comActSocialProjectMemberVO
+     * @return
+     */
+    R insert(ComActSocialProjectMemberVO comActSocialProjectMemberVO);
+
+    /**
+     * 批量添加
+     * @param comActSocialProjectMemberVO
+     * @return
+     */
+    R insertBatch(ComActSocialProjectMemberVO comActSocialProjectMemberVO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialProjectPublicityService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialProjectPublicityService.java
new file mode 100644
index 0000000..c9af5a9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialProjectPublicityService.java
@@ -0,0 +1,29 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.entity.ComActSocialProjectPublicity;
+
+/**
+ * 项目宣传表(ComActSocialProjectPublicity)表服务接口
+ *
+ * @author makejava
+ * @since 2021-12-23 14:30:54
+ */
+public interface ComActSocialProjectPublicityService extends IService<ComActSocialProjectPublicity> {
+    /**
+     * 分页查询
+     *
+     * @param commonPage
+     * @return
+     */
+    R pageList(CommonPage commonPage);
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    R selectOne(Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialProjectScheduleService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialProjectScheduleService.java
new file mode 100644
index 0000000..9685462
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialProjectScheduleService.java
@@ -0,0 +1,22 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.entity.ComActSocialProjectSchedule;
+
+/**
+ * 项目进度表(ComActSocialProjectSchedule)表服务接口
+ *
+ * @author makejava
+ * @since 2021-12-23 14:31:16
+ */
+public interface ComActSocialProjectScheduleService extends IService<ComActSocialProjectSchedule> {
+    /**
+     * 分页查询
+     *
+     * @param commonPage
+     * @return
+     */
+    R pageList(CommonPage commonPage);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialProjectService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialProjectService.java
new file mode 100644
index 0000000..e162434
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialProjectService.java
@@ -0,0 +1,77 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.dtos.community.social.PageProjectDTO;
+import com.panzhihua.common.model.dtos.community.social.PageProjectSignListDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.community.social.SocialProjectVO;
+import com.panzhihua.service_community.entity.ComActSocialProject;
+
+/**
+ * 三社联动项目表(ComActSocialProject)表服务接口
+ *
+ * @author makejava
+ * @since 2021-12-22 14:02:47
+ */
+public interface ComActSocialProjectService extends IService<ComActSocialProject> {
+    /**
+     * 分页查询
+     *
+     * @param commonPage
+     * @return
+     */
+    R pageList(CommonPage commonPage);
+
+    /**
+     * 小程序获取详情
+     * @param id
+     * @param userId
+     * @return
+     */
+    R getByApplet(Long id, Long userId);
+
+    /**
+     * 小程序获取详情
+     * @param id
+     * @return
+     */
+    R getByBackstage(Long id);
+
+    /**
+     * 根据项目id分页查询关联项目
+     * @param commonPage
+     * @return
+     */
+    R getProject(CommonPage commonPage);
+
+    /**
+     * 修改数据
+     *
+     * @param socialProjectVO 实体对象
+     * @return 修改结果
+     */
+    R updateProject(SocialProjectVO socialProjectVO);
+
+    /**
+     * 分页查询项目报名列表
+     * @param pageProjectSignListDTO
+     * @return
+     */
+    R pageProjectSignList(PageProjectSignListDTO pageProjectSignListDTO);
+
+    /**
+     * 项目公开报名
+     * @param projectId
+     * @param userId
+     * @return
+     */
+    R signProject(Long projectId, Long userId);
+
+    /**
+     * 分页查询用户报名的项目
+     * @param pageProjectDTO
+     * @return
+     */
+    R pageProjectWhichIsSignedByUser(PageProjectDTO pageProjectDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialWorkerService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialWorkerService.java
new file mode 100644
index 0000000..f38fed1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialWorkerService.java
@@ -0,0 +1,77 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.model.dtos.civil.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.civil.ComActSocialWorkerDetailsVO;
+import com.panzhihua.common.model.vos.civil.ComActSocialWorkerVO;
+import com.panzhihua.service_community.entity.ComActSocialWorker;
+
+import java.util.List;
+
+/**
+ * 社工(ComActSocialWorker)表服务接口
+ *
+ * @author makejava
+ * @since 2021-10-25 10:56:47
+ */
+public interface ComActSocialWorkerService extends IService<ComActSocialWorker> {
+    /**
+     * 新增社工
+     * @param comActSocialWorkerAddDTO
+     * @return 新增结果
+     */
+    R add(ComActSocialWorkerAddDTO comActSocialWorkerAddDTO);
+
+    /**
+     * 修改社工
+     * @param comActSocialWorkerEditDTO
+     * @return 维护结果
+     */
+    R edit(ComActSocialWorkerEditDTO comActSocialWorkerEditDTO);
+
+    /**
+     * 分页查找社工
+     * @param pageComActSocialWorkerDTO
+     * @return 维护结果
+     */
+    R<IPage<ComActSocialWorkerVO>> query(PageComActSocialWorkerDTO pageComActSocialWorkerDTO);
+
+    /**
+     * 删除社工
+     * @param ComActSocialWorkerDeleteDTO
+     * @return 平台用户信息
+     */
+    R delete(ComActSocialWorkerDeleteDTO ComActSocialWorkerDeleteDTO);
+
+    /**
+     * 查询社工详细信息
+     * @param id 社工 id
+     * @return 查找结果
+     */
+    R<ComActSocialWorkerVO> comActSocialWorkerDetails(Long id);
+
+    /**
+     * 导出
+     * @param lis
+     * @param communityId
+     * @return
+     */
+    R export(List<ComActSocialWorkerExcelVO> lis, Long communityId);
+
+    /**
+     * 查询活动社工
+     * @param commonPage
+     * @return
+     */
+    R activity(CommonPage commonPage);
+
+    /**
+     * 根据社工查询活动
+     * @param commonPage
+     * @return
+     */
+    R activityList(CommonPage commonPage);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialWorkerServiceService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialWorkerServiceService.java
new file mode 100644
index 0000000..4c21d1c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActSocialWorkerServiceService.java
@@ -0,0 +1,31 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.entity.ComActSocialWorkerService;
+
+/**
+ * 社工服务表(ComActSocialWorkerService)表服务接口
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 社工服务表相关功能
+ *
+ * @author zzj
+ * @since 2022-02-16 15:59:42
+ */
+public interface ComActSocialWorkerServiceService extends IService<ComActSocialWorkerService> {
+    /**
+     * 分页查询
+     * @param commonPage
+     * @return
+     */
+    R pageList(CommonPage commonPage);
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    R selectById(Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActUserWalletChangeService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActUserWalletChangeService.java
new file mode 100644
index 0000000..8812348
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActUserWalletChangeService.java
@@ -0,0 +1,43 @@
+package com.panzhihua.service_community.service;
+
+import java.math.BigDecimal;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.model.dos.ComActUserWalletChangeDO;
+
+/**
+ * @auther lyq
+ * @create 2021-06-25 10:35:34
+ * @describe 用户钱包资产变动记录表服务类
+ */
+public interface ComActUserWalletChangeService extends IService<ComActUserWalletChangeDO> {
+
+    /**
+     * 添加用户资产变动记录
+     * 
+     * @param userId
+     *            用户id
+     * @param communityId
+     *            社区id
+     * @param walletId
+     *            钱包id
+     * @param incomeAmountTop
+     *            收益金额变动前
+     * @param incomeAmountBack
+     *            收益金额变动后
+     * @param availableAmountTop
+     *            可用金额变动前
+     * @param availableAmountBack
+     *            可用金额变动后
+     * @param settlementAmountTop
+     *            已结算金额变动前
+     * @param settlementAmountBack
+     *            已结算金额变动后
+     * @param serviceId
+     *            交易记录id
+     */
+    void addWalletChange(Long userId, Long communityId, Long walletId, BigDecimal incomeAmountTop,
+        BigDecimal incomeAmountBack, BigDecimal availableAmountTop, BigDecimal availableAmountBack,
+        BigDecimal settlementAmountTop, BigDecimal settlementAmountBack, Long serviceId);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActUserWalletService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActUserWalletService.java
new file mode 100644
index 0000000..32c84fb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActUserWalletService.java
@@ -0,0 +1,70 @@
+package com.panzhihua.service_community.service;
+
+import java.math.BigDecimal;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.wallet.ComActWalletDetailDTO;
+import com.panzhihua.common.model.dtos.community.wallet.ComActWalletSettlementAdminDTO;
+import com.panzhihua.common.model.dtos.community.wallet.PageComActWalletAdminDTO;
+import com.panzhihua.common.model.dtos.community.wallet.PageComActWalletTradeDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.ComActUserWalletDO;
+
+/**
+ * @auther lyq
+ * @create 2021-06-25 10:35:11
+ * @describe 用户钱包表服务类
+ */
+public interface ComActUserWalletService extends IService<ComActUserWalletDO> {
+
+    /**
+     * 查询用户钱包信息
+     * 
+     * @param walletDetailDTO
+     *            请求参数
+     * @return 用户钱包信息
+     */
+    R getWallet(ComActWalletDetailDTO walletDetailDTO);
+
+    /**
+     * 查询用户绑定的社区收益排行榜
+     * 
+     * @param walletTradeDTO
+     *            请求参数
+     * @return 社区收益排行榜
+     */
+    R getWalletRanking(PageComActWalletTradeDTO walletTradeDTO);
+
+    /**
+     * 随手拍审核通过给用户添加收益
+     * 
+     * @param activityType
+     *            审核通过选择的随手拍标签(1.优质 2.精良 3.普通)
+     * @param easyPhotoId
+     *            随手拍id
+     * @param userId
+     *            发放用户id
+     * @param amount
+     *            发放奖励金额
+     */
+    void examineAddMoney(Integer activityType, Long easyPhotoId, Long userId, BigDecimal amount);
+
+    /**
+     * 分页查询收益结算列表
+     * 
+     * @param pageWalletAdminDTO
+     *            请求参数
+     * @return 收益结算列表
+     */
+    R pageUserWalletAdmin(PageComActWalletAdminDTO pageWalletAdminDTO);
+
+    /**
+     * 用户结算收益
+     * 
+     * @param settlementAdminDTO
+     *            请求参数
+     * @return 结算结果
+     */
+    R userWalletSettlementAdmin(ComActWalletSettlementAdminDTO settlementAdminDTO);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActUserWalletTradeService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActUserWalletTradeService.java
new file mode 100644
index 0000000..445ea6c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActUserWalletTradeService.java
@@ -0,0 +1,75 @@
+package com.panzhihua.service_community.service;
+
+import java.math.BigDecimal;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.wallet.PageComActWalletTradeAdminDTO;
+import com.panzhihua.common.model.dtos.community.wallet.PageComActWalletTradeDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.ComActUserWalletTradeDO;
+
+/**
+ * @auther lyq
+ * @create 2021-06-25 10:35:22
+ * @describe 用户钱包交易记录表服务类
+ */
+public interface ComActUserWalletTradeService extends IService<ComActUserWalletTradeDO> {
+
+    /**
+     * 查询用户收支记录列表
+     * 
+     * @param walletTradeDTO
+     *            请求参数
+     * @return 收支记录
+     */
+    R getWalletTrade(PageComActWalletTradeDTO walletTradeDTO);
+
+    /**
+     * 新增钱包交易记录
+     * 
+     * @param userId
+     *            用户id
+     * @param communityId
+     *            社区id
+     * @param serviceId
+     *            交易业务id
+     * @param amount
+     *            交易金额
+     * @param type
+     *            交易类型(1.发布随手拍 2.结算)
+     * @param remark
+     *            交易备注
+     * @param createBy
+     *            操作人id
+     * @param walletId
+     *            钱包id
+     * @param changeType
+     *            变动类型(1.增加 2.减少)
+     */
+    Long addWalletTrade(Long userId, Long communityId, Long serviceId, BigDecimal amount, Integer type, String remark,
+        Long createBy, Long walletId, Integer changeType);
+
+    /**
+     * 分页查询交易记录
+     *
+     * @param pageTradeAdminDTO
+     *            请求参数
+     * @return 交易记录列表
+     */
+    R pageUserWalletTradeAdmin(PageComActWalletTradeAdminDTO pageTradeAdminDTO);
+
+    /**
+     * 查询用户交易记录总额
+     * 
+     * @param pageTradeAdminDTO
+     *            请求参数
+     * @return 交易记录总额
+     */
+    R getTradeUserTotalWalletTradeAdmin(PageComActWalletTradeAdminDTO pageTradeAdminDTO);
+
+    R getTradeUserTotalWalletTradeExportAdmin(PageComActWalletTradeAdminDTO pageTradeAdminDTO);
+
+    R getTradeUserTotalJLWalletTradeExportAdmin(PageComActWalletTradeAdminDTO pageTradeAdminDTO);
+
+    R getTradeUserStatisticsAdmin(PageComActWalletTradeAdminDTO pageTradeAdminDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActWarehouseApplyService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActWarehouseApplyService.java
new file mode 100644
index 0000000..5865b91
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActWarehouseApplyService.java
@@ -0,0 +1,54 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.entity.ComActWarehouseApply;
+
+/**
+ * 物品申请表(ComActWarehouseApply)表服务接口
+ *
+ * @author makejava
+ * @since 2021-10-09 17:13:52
+ */
+public interface ComActWarehouseApplyService extends IService<ComActWarehouseApply> {
+    /**
+     * 分页查询
+     * @param commonPage
+     * @return
+     */
+    R pageList(CommonPage commonPage);
+
+    /**
+     * 社区id查询统计数据
+     * @param communityId
+     * @return
+     */
+    R selectStatics(Long communityId);
+
+    /**
+     * 主键查询详情
+     * @param id
+     * @return
+     */
+    R selectById(Integer id);
+
+    /**
+     * 验证用户是否社区团队
+     * @param phone
+     * @return
+     */
+    R check(String phone);
+
+    /**
+     * 更新
+     * @param comActWarehouseApply
+     * @return
+     */
+    R update(ComActWarehouseApply comActWarehouseApply);
+
+    /**
+     * 导出
+     */
+    R export(CommonPage commonPage);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActWarehouseBaseService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActWarehouseBaseService.java
new file mode 100644
index 0000000..3ae93e9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActWarehouseBaseService.java
@@ -0,0 +1,15 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.entity.ComActWarehouseBase;
+
+/**
+ * 义仓基础设置表(ComActWarehouseBase)表服务接口
+ *
+ * @author makejava
+ * @since 2021-10-11 09:21:53
+ */
+public interface ComActWarehouseBaseService extends IService<ComActWarehouseBase> {
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActWarehouseDonatesService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActWarehouseDonatesService.java
new file mode 100644
index 0000000..95132f2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActWarehouseDonatesService.java
@@ -0,0 +1,89 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.dtos.community.warehouse.ComActWarehouseApplyDTO;
+import com.panzhihua.common.model.dtos.community.warehouse.ComActWarehouseDonatesDTO;
+import com.panzhihua.common.model.dtos.community.warehouse.ExportDonatesDTO;
+import com.panzhihua.common.model.dtos.community.warehouse.PageDonatesDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.community.warehouse.WarehouseDonatesExcelVO;
+import com.panzhihua.service_community.entity.ComActWarehouseDonates;
+
+import java.util.List;
+
+/**
+ * 爱心义仓/物品捐赠表(ComActWarehouseDonates)表服务接口
+ *
+ * @author makejava
+ * @since 2021-10-09 17:14:16
+ */
+public interface ComActWarehouseDonatesService extends IService<ComActWarehouseDonates> {
+    R pageList(CommonPage commonPage);
+
+    /**
+     * 后台导入捐赠物品
+     * @param list
+     * @return
+     */
+    R batchImportWarehouseDonates(List<WarehouseDonatesExcelVO> list);
+
+    /**
+     * 后台导出捐赠物品表格
+     * @param exportDonatesDTO
+     * @return
+     */
+    R exportDonates(ExportDonatesDTO exportDonatesDTO);
+
+    /**
+     * 分页查询捐赠物品
+     * @param pageDonatesDTO
+     * @return
+     */
+    R pageDonates(PageDonatesDTO pageDonatesDTO);
+
+    /**
+     * 新增物品捐赠
+     * @param comActWarehouseDonatesDTO
+     * @return
+     */
+    R addDonates(ComActWarehouseDonatesDTO comActWarehouseDonatesDTO);
+
+    /**
+     * 查看物品捐赠详情
+     * @param donatesId
+     * @param isWhich
+     * @param userId
+     * @return
+     */
+    R getDonates(Long donatesId, Integer isWhich, Long userId);
+
+    /**
+     * 捐赠物品后台签收
+     * @param comActWarehouseDonatesDTO
+     * @return
+     */
+    R signingDonates(ComActWarehouseDonatesDTO comActWarehouseDonatesDTO);
+
+    /**
+     * 用户取消捐赠
+     * @param donatesId
+     * @param currentUser
+     * @return
+     */
+    R cancelDonates(Long donatesId, Long currentUser);
+
+    /**
+     * 捐赠物品统计查询
+     * @param communityId
+     * @return
+     */
+    R getDonatesStatistics(Long communityId);
+
+    /**
+     * 社区后台物品领用
+     * @param comActWarehouseApplyDTO
+     * @return
+     */
+    R applyDonates(ComActWarehouseApplyDTO comActWarehouseApplyDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActWarehouseOperationService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActWarehouseOperationService.java
new file mode 100644
index 0000000..75fdea2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActWarehouseOperationService.java
@@ -0,0 +1,16 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.entity.ComActWarehouseOperation;
+
+/**
+ * 爱心义操作表(ComActWarehouseOperation)表服务接口
+ *
+ * @author makejava
+ * @since 2021-10-09 17:14:34
+ */
+public interface ComActWarehouseOperationService extends IService<ComActWarehouseOperation> {
+    R pageList(CommonPage commonPage);
+}
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..bbbd5fc
--- /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(String areaCode);
+
+}
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
new file mode 100644
index 0000000..78de3cb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComActWorkGuideService.java
@@ -0,0 +1,70 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.dtos.community.ComActWorkGuideDTO;
+import com.panzhihua.common.model.dtos.community.PageActWorkGuideDTO;
+import com.panzhihua.common.model.vos.R;
+
+/**
+ * @auther llming
+ * @describe 办事指南
+ */
+public interface ComActWorkGuideService {
+    /**
+     * 办事指南_新增
+     * 
+     * @param workGuideDTO
+     *            办事指南信息
+     * @return 新增结果
+     */
+    R addWorkGuide(ComActWorkGuideDTO workGuideDTO, Long userId);
+
+    /**
+     * 办事指南_编辑
+     * 
+     * @param workGuideDTO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    R editWorkGuide(ComActWorkGuideDTO workGuideDTO, Long userId);
+
+    /**
+     * 办事指南_详情
+     * 
+     * @param workGuideId
+     *            办事指南id
+     * @return 社区详情
+     */
+    R detailWorkGuide(String workGuideId, String conmunityId);
+
+    /**
+     * 办事指南_分页
+     * 
+     * @param pageActWorkGuideDTO
+     *            查询参数
+     * @return 分页集合
+     */
+    R pageWorkGuide(PageActWorkGuideDTO pageActWorkGuideDTO);
+
+    /**
+     * 办事指南_删除
+     * 
+     * @param workGuideId
+     *            办事指南id
+     * @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/ComAreaTownCommunityService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComAreaTownCommunityService.java
new file mode 100644
index 0000000..abd2cff
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComAreaTownCommunityService.java
@@ -0,0 +1,24 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.entity.ComAreaTownCommunity;
+
+/**
+ * (ComAreaTownCommunity)表服务接口
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 相关功能
+ *
+ * @author zzj
+ * @since 2022-04-10 17:37:33
+ */
+public interface ComAreaTownCommunityService extends IService<ComAreaTownCommunity> {
+    /**
+     * 分页查询
+     *
+     * @param commonPage
+     * @return
+     */
+    R pageList(CommonPage commonPage);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommodityActivityService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommodityActivityService.java
new file mode 100644
index 0000000..65c274e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommodityActivityService.java
@@ -0,0 +1,89 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.RequestBody;
+
+/**
+ * title: 电动车商城-商家活动表表服务接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商家活动表表服务接口
+ *
+ * @author lyq
+ * @date 2022-03-29 13:17:40
+ */
+public interface ComBatteryCommodityActivityService {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommodityActivity 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-29 13:17:40
+     */
+    R queryByPage(PageComBatteryCommodityActivityDto comBatteryCommodityActivity);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comBatteryCommodityActivity 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-29 13:17:40
+     */
+    R insert(AddComBatteryCommodityActivityDto comBatteryCommodityActivity);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comBatteryCommodityActivity 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-29 13:17:40
+     */
+    R update(EditComBatteryCommodityActivityDto comBatteryCommodityActivity);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-29 13:17:40
+     */
+    R deleteById(Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @param userId 用户id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 13:17:40
+     */
+    R detailById(Long id,Long userId);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommodityActivity 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 13:17:40
+     */
+    R queryByList(PageComBatteryCommodityActivityDto comBatteryCommodityActivity);
+
+    /**
+     * 修改活动状态
+     * @param id    活动id
+     * @param status    状态
+     * @return  修改结果
+     */
+    R updateStatus(Long id,Integer status);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommodityOrderBargainRecordService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommodityOrderBargainRecordService.java
new file mode 100644
index 0000000..05e4060
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommodityOrderBargainRecordService.java
@@ -0,0 +1,78 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+
+/**
+ * title: 电动车商城-订单砍价记录表表服务接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-订单砍价记录表表服务接口
+ *
+ * @author lyq
+ * @date 2022-03-29 16:06:46
+ */
+public interface ComBatteryCommodityOrderBargainRecordService {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommodityOrderBargainRecord 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-29 16:06:46
+     */
+    R queryByPage(PageComBatteryCommodityOrderBargainRecordDto comBatteryCommodityOrderBargainRecord);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comBatteryCommodityOrderBargainRecord 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-29 16:06:46
+     */
+    R insert(AddComBatteryCommodityOrderBargainRecordDto comBatteryCommodityOrderBargainRecord);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comBatteryCommodityOrderBargainRecord 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-29 16:06:46
+     */
+    R update(EditComBatteryCommodityOrderBargainRecordDto comBatteryCommodityOrderBargainRecord);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-29 16:06:46
+     */
+    R deleteById(Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 16:06:46
+     */
+    R detailById(Long id);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommodityOrderBargainRecord 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 16:06:46
+     */
+    R queryByList(PageComBatteryCommodityOrderBargainRecordDto comBatteryCommodityOrderBargainRecord);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommodityOrderBargainService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommodityOrderBargainService.java
new file mode 100644
index 0000000..4d4e7a2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommodityOrderBargainService.java
@@ -0,0 +1,99 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+
+/**
+ * title: 电动车商城-砍价订单记录表表服务接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-砍价订单记录表表服务接口
+ *
+ * @author lyq
+ * @date 2022-03-29 16:06:35
+ */
+public interface ComBatteryCommodityOrderBargainService {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommodityOrderBargain 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-29 16:06:35
+     */
+    R queryByPage(PageComBatteryCommodityOrderBargainDto comBatteryCommodityOrderBargain);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comBatteryCommodityOrderBargain 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-29 16:06:35
+     */
+    R insert(AddComBatteryCommodityOrderBargainDto comBatteryCommodityOrderBargain);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comBatteryCommodityOrderBargain 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-29 16:06:35
+     */
+    R update(EditComBatteryCommodityOrderBargainDto comBatteryCommodityOrderBargain);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-29 16:06:35
+     */
+    R deleteById(Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 16:06:35
+     */
+    R detailById(Long id);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommodityOrderBargain 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 16:06:35
+     */
+    R queryByList(PageComBatteryCommodityOrderBargainDto comBatteryCommodityOrderBargain);
+
+    /**
+     * 创建砍价订单
+     * @param orderDto  请求参数
+     * @return  创建订单结果
+     */
+    R startBargain(StartBargainOrderDto orderDto);
+
+    /**
+     * 帮好友砍价
+     * @param orderDto  请求参数
+     * @return  创建订单结果
+     */
+    R startUserBargain(StartUserBargainOrderDto orderDto);
+
+    /**
+     * 查询砍价记录详情
+     * @param id  砍价记录id
+     * @return  创建订单结果
+     */
+    R getUserBargain(Long id);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommodityOrderCollageTeamPeopleService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommodityOrderCollageTeamPeopleService.java
new file mode 100644
index 0000000..597858e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommodityOrderCollageTeamPeopleService.java
@@ -0,0 +1,78 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+
+/**
+ * title: 电动车商城-拼团活动团队人员表表服务接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-拼团活动团队人员表表服务接口
+ *
+ * @author lyq
+ * @date 2022-03-29 16:07:09
+ */
+public interface ComBatteryCommodityOrderCollageTeamPeopleService {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommodityOrderCollageTeamPeople 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-29 16:07:09
+     */
+    R queryByPage(PageComBatteryCommodityOrderCollageTeamPeopleDto comBatteryCommodityOrderCollageTeamPeople);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comBatteryCommodityOrderCollageTeamPeople 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-29 16:07:09
+     */
+    R insert(AddComBatteryCommodityOrderCollageTeamPeopleDto comBatteryCommodityOrderCollageTeamPeople);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comBatteryCommodityOrderCollageTeamPeople 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-29 16:07:09
+     */
+    R update(EditComBatteryCommodityOrderCollageTeamPeopleDto comBatteryCommodityOrderCollageTeamPeople);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-29 16:07:09
+     */
+    R deleteById(Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 16:07:09
+     */
+    R detailById(Long id);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommodityOrderCollageTeamPeople 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 16:07:09
+     */
+    R queryByList(PageComBatteryCommodityOrderCollageTeamPeopleDto comBatteryCommodityOrderCollageTeamPeople);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommodityOrderCollageTeamService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommodityOrderCollageTeamService.java
new file mode 100644
index 0000000..d880f8c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommodityOrderCollageTeamService.java
@@ -0,0 +1,85 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+
+/**
+ * title: 电动车商城-拼团订单团队表表服务接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-拼团订单团队表表服务接口
+ *
+ * @author lyq
+ * @date 2022-03-29 16:06:57
+ */
+public interface ComBatteryCommodityOrderCollageTeamService {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommodityOrderCollageTeam 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-29 16:06:57
+     */
+    R queryByPage(PageComBatteryCommodityOrderCollageTeamDto comBatteryCommodityOrderCollageTeam);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comBatteryCommodityOrderCollageTeam 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-29 16:06:57
+     */
+    R insert(AddComBatteryCommodityOrderCollageTeamDto comBatteryCommodityOrderCollageTeam);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comBatteryCommodityOrderCollageTeam 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-29 16:06:57
+     */
+    R update(EditComBatteryCommodityOrderCollageTeamDto comBatteryCommodityOrderCollageTeam);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-29 16:06:57
+     */
+    R deleteById(Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 16:06:57
+     */
+    R detailById(Long id,Long userId);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommodityOrderCollageTeam 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 16:06:57
+     */
+    R queryByList(PageComBatteryCommodityOrderCollageTeamDto comBatteryCommodityOrderCollageTeam);
+
+    /**
+     * 创建拼团订单
+     * @param orderDto  请求参数
+     * @return  创建订单结果
+     */
+    R startFight(StartFightOrderDto orderDto);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommodityOrderService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommodityOrderService.java
new file mode 100644
index 0000000..5de2daf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommodityOrderService.java
@@ -0,0 +1,141 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.dtos.shop.WxPayNotifyOrderDTO;
+import com.panzhihua.common.model.vos.R;
+
+/**
+ * title: 电动车商城-订单表表服务接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-订单表表服务接口
+ *
+ * @author lyq
+ * @date 2022-03-29 16:05:47
+ */
+public interface ComBatteryCommodityOrderService {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommodityOrder 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-29 16:05:47
+     */
+    R queryByPage(PageComBatteryCommodityOrderDto comBatteryCommodityOrder);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comBatteryCommodityOrder 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-29 16:05:47
+     */
+    R insert(AddComBatteryCommodityOrderDto comBatteryCommodityOrder);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comBatteryCommodityOrder 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-29 16:05:47
+     */
+    R update(EditComBatteryCommodityOrderDto comBatteryCommodityOrder);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-29 16:05:47
+     */
+    R deleteById(Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 16:05:47
+     */
+    R detailById(Long id);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommodityOrder 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 16:05:47
+     */
+    R queryByList(PageComBatteryCommodityOrderDto comBatteryCommodityOrder);
+
+    /**
+     * 修改订单收货地址
+     * @param editOrderAddressDto   请求参数
+     * @return  修改结果
+     */
+    R updateOrderAddress(EditOrderAddressDto editOrderAddressDto);
+
+    /**
+     * 修改订单物流信息
+     * @param editOrderLogisticsDto 请求参数
+     * @return  修改结果
+     */
+    R updateOrderLogistics(EditOrderLogisticsDto editOrderLogisticsDto);
+
+    /**
+     * 小程序用户创建订单
+     * @param createOrderDto    请求参数
+     * @return  创建结果
+     */
+    R appletsOrderCreate(UserCreateOrderDto createOrderDto);
+
+    /**
+     * 电动车商城购买商品支付回调
+     * @param notifyOrderDTO    请求参数
+     * @return  购买商品支付回调
+     */
+    R batteryPayNotify(WxPayNotifyOrderDTO notifyOrderDTO);
+
+    /**
+     * 定时关闭5分钟未支付订单
+     * @return  操作结果
+     */
+    R syncCloseOrder();
+
+    /**
+     * 电动车商城用户确认收货
+     * @param id    订单id
+     * @param userId    用户id
+     * @return  确认结果
+     */
+    R appletsOrderReceiving(Long id, Long userId);
+
+    /**
+     * 后台订单发货
+     * @param deliverAdminDto   请求参数
+     * @return  发货结果
+     */
+    R orderDeliver(OrderDeliverAdminDto deliverAdminDto);
+
+    /**
+     * 电动车商城购买活动商品支付回调
+     * @param notifyOrderDTO    请求参数
+     * @return  购买商品支付回调
+     */
+    R batteryActivityPayNotify(WxPayNotifyOrderDTO notifyOrderDTO);
+
+    /**
+     * 创建秒杀订单
+     * @param orderDto  请求参数
+     * @return  创建订单结果
+     */
+    R startSeckill(StartSeckillOrderDto orderDto);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommodityService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommodityService.java
new file mode 100644
index 0000000..d77ce09
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommodityService.java
@@ -0,0 +1,93 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+
+/**
+ * title: 电动车商城-商品表表服务接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商品表表服务接口
+ *
+ * @author lyq
+ * @date 2022-03-28 14:59:59
+ */
+public interface ComBatteryCommodityService {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommodity 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-28 14:59:59
+     */
+    R queryByPage(PageComBatteryCommodityDto comBatteryCommodity);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comBatteryCommodity 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-28 14:59:59
+     */
+    R insert(AddComBatteryCommodityDto comBatteryCommodity);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comBatteryCommodity 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-28 14:59:59
+     */
+    R update(EditComBatteryCommodityDto comBatteryCommodity);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-28 14:59:59
+     */
+    R deleteById(Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-28 14:59:59
+     */
+    R detailById(Long id);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommodity 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-28 14:59:59
+     */
+    R queryByList(PageComBatteryCommodityDto comBatteryCommodity);
+
+    /**
+     * 修改商品状态
+     * @param id    商品id
+     * @param status    商品状态
+     * @return  修改结果
+     */
+    R updateStatus(Long id,Integer status);
+
+    /**
+     * 小程序查询商品列表
+     * @param comBatteryCommodity   请求参数
+     * @return  商品列表
+     */
+    R queryByAppletsPage(PageComBatteryCommodityDto comBatteryCommodity);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommoditySpecsService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommoditySpecsService.java
new file mode 100644
index 0000000..6399ff6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryCommoditySpecsService.java
@@ -0,0 +1,78 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+
+/**
+ * title: 电动车商城-商品规格表表服务接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商品规格表表服务接口
+ *
+ * @author lyq
+ * @date 2022-03-28 15:16:22
+ */
+public interface ComBatteryCommoditySpecsService {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommoditySpecs 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-28 15:16:22
+     */
+    R queryByPage(PageComBatteryCommoditySpecsDto comBatteryCommoditySpecs);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comBatteryCommoditySpecs 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-28 15:16:22
+     */
+    R insert(AddComBatteryCommoditySpecsDto comBatteryCommoditySpecs);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comBatteryCommoditySpecs 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-28 15:16:22
+     */
+    R update(EditComBatteryCommoditySpecsDto comBatteryCommoditySpecs);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-28 15:16:22
+     */
+    R deleteById(Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-28 15:16:22
+     */
+    R detailById(Long id);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommoditySpecs 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-28 15:16:22
+     */
+    R queryByList(PageComBatteryCommoditySpecsDto comBatteryCommoditySpecs);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryStoreClassService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryStoreClassService.java
new file mode 100644
index 0000000..043de4a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryStoreClassService.java
@@ -0,0 +1,93 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+
+/**
+ * title: 电动车商城-商家分类表表服务接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商家分类表表服务接口
+ *
+ * @author lyq
+ * @date 2022-03-29 11:01:56
+ */
+public interface ComBatteryStoreClassService {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryStoreClass 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-29 11:01:56
+     */
+    R queryByPage(PageComBatteryStoreClassDto comBatteryStoreClass);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comBatteryStoreClass 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-29 11:01:56
+     */
+    R insert(AddComBatteryStoreClassDto comBatteryStoreClass);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comBatteryStoreClass 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-29 11:01:56
+     */
+    R update(EditComBatteryStoreClassDto comBatteryStoreClass);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-29 11:01:56
+     */
+    R deleteById(Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 11:01:56
+     */
+    R detailById(Long id);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryStoreClass 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 11:01:56
+     */
+    R queryByList(PageComBatteryStoreClassDto comBatteryStoreClass);
+
+    /**
+     * 修改分类状态
+     * @param id    分类id
+     * @param status    状态
+     * @return  修改结果
+     */
+    R updateStatus(Long id,Integer status);
+
+    /**
+     * 小程序查询商家分类列表以及分类下商品列表
+     * @param comBatteryStoreClass  请求参数
+     * @return  商家分类列表以及分类下商品列表
+     */
+    R queryByAppletsList(PageComBatteryStoreClassDto comBatteryStoreClass);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryStoreService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryStoreService.java
new file mode 100644
index 0000000..137b9ab
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryStoreService.java
@@ -0,0 +1,86 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+
+/**
+ * title: 电动车商城-商家表表服务接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商家表表服务接口
+ *
+ * @author lyq
+ * @date 2022-03-28 13:44:45
+ */
+public interface ComBatteryStoreService {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryStore 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-28 13:44:45
+     */
+    R queryByPage(PageComBatteryStoreDto comBatteryStore);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comBatteryStore 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-28 13:44:45
+     */
+    R insert(AddComBatteryStoreDto comBatteryStore);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comBatteryStore 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-28 13:44:45
+     */
+    R update(EditComBatteryStoreDto comBatteryStore);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-28 13:44:45
+     */
+    R deleteById(Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-28 13:44:45
+     */
+    R detailById(Long id);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryStore 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-28 13:44:45
+     */
+    R queryByList(PageComBatteryStoreDto comBatteryStore);
+
+    /**
+     * 修改人员密码
+     * @param storeId  商户id
+     * @param passWord  用户需要修改的密码
+     * @return  重置密码结果
+     */
+    R resetPassword(Long storeId,String passWord);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryTradeOrderService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryTradeOrderService.java
new file mode 100644
index 0000000..ae53104
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryTradeOrderService.java
@@ -0,0 +1,108 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * title: 电动车商城-微信交易流水表表服务接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-微信交易流水表表服务接口
+ *
+ * @author lyq
+ * @date 2022-04-01 13:18:50
+ */
+public interface ComBatteryTradeOrderService {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryTradeOrder 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-04-01 13:18:50
+     */
+    R queryByPage(PageComBatteryTradeOrderDto comBatteryTradeOrder);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comBatteryTradeOrder 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-04-01 13:18:50
+     */
+    R insert(AddComBatteryTradeOrderDto comBatteryTradeOrder);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comBatteryTradeOrder 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-04-01 13:18:50
+     */
+    R update(EditComBatteryTradeOrderDto comBatteryTradeOrder);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-04-01 13:18:50
+     */
+    R deleteById(Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-01 13:18:50
+     */
+    R detailById(Long id);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryTradeOrder 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-04-01 13:18:50
+     */
+    R queryByList(PageComBatteryTradeOrderDto comBatteryTradeOrder);
+
+    /**
+     * 添加微信交易记录
+     * @param userId    用户id
+     * @param openId    用户openId
+     * @param orderNo   订单号
+     * @param payType   支付类型
+     * @param orderAmount   订单金额
+     * @param tradeType     交易类型(1.电动车商城购买商品)
+     * @param tradeOrderId 交易业务订单id
+     * @param tradeOrderNo 交易业务订单号
+     * @param createBy     创建人
+     * @param nowDate      创建时间
+     */
+    void addOrderTradeRecord(Long userId, String openId, String orderNo, Integer payType
+            , BigDecimal orderAmount, Integer tradeType, Long tradeOrderId, String tradeOrderNo, Long createBy, Date nowDate);
+
+    /**
+     * 更新微信支付流水记录
+     *
+     * @param orderId   订单id
+     * @param amount    实际支付金额
+     * @param wxTradeNo 微信支付订单号
+     * @param payTime   支付时间
+     * @param nowDate   当前处理时间
+     */
+    void renewPayTrade(Long orderId, BigDecimal amount, String wxTradeNo, Date payTime, Date nowDate);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryUserAddressService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryUserAddressService.java
new file mode 100644
index 0000000..3e9fd2c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComBatteryUserAddressService.java
@@ -0,0 +1,85 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+
+/**
+ * title: 电动车商城-用户收货地址表表服务接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-用户收货地址表表服务接口
+ *
+ * @author lyq
+ * @date 2022-03-29 13:18:20
+ */
+public interface ComBatteryUserAddressService {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryUserAddress 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-29 13:18:20
+     */
+    R queryByPage(PageComBatteryUserAddressDto comBatteryUserAddress);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comBatteryUserAddress 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-29 13:18:20
+     */
+    R insert(AddComBatteryUserAddressDto comBatteryUserAddress);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comBatteryUserAddress 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-29 13:18:20
+     */
+    R update(EditComBatteryUserAddressDto comBatteryUserAddress);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-29 13:18:20
+     */
+    R deleteById(Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 13:18:20
+     */
+    R detailById(Long id);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryUserAddress 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 13:18:20
+     */
+    R queryByList(PageComBatteryUserAddressDto comBatteryUserAddress);
+
+    /**
+     * 查询用户默认收货地址
+     * @param userId    用户id
+     * @return  用户默认收货地址
+     */
+    R getDefaultAddress(Long userId);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComChangeCarBrandService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComChangeCarBrandService.java
new file mode 100644
index 0000000..2cd5d68
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComChangeCarBrandService.java
@@ -0,0 +1,78 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+
+/**
+ * title: 换新车-品牌表表服务接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-品牌表表服务接口
+ *
+ * @author lyq
+ * @date 2022-04-07 13:37:24
+ */
+public interface ComChangeCarBrandService {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comChangeCarBrand 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-04-07 13:37:24
+     */
+    R queryByPage(PageComChangeCarBrandDto comChangeCarBrand);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comChangeCarBrand 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-04-07 13:37:24
+     */
+    R insert(AddComChangeCarBrandDto comChangeCarBrand);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comChangeCarBrand 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-04-07 13:37:24
+     */
+    R update(EditComChangeCarBrandDto comChangeCarBrand);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-04-07 13:37:24
+     */
+    R deleteById(Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-07 13:37:24
+     */
+    R detailById(Long id);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comChangeCarBrand 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-04-07 13:37:24
+     */
+    R queryByList(PageComChangeCarBrandDto comChangeCarBrand);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComChangeCarInquiryService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComChangeCarInquiryService.java
new file mode 100644
index 0000000..6498c6c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComChangeCarInquiryService.java
@@ -0,0 +1,78 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+
+/**
+ * title: 换新车-分期询价表表服务接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-分期询价表表服务接口
+ *
+ * @author lyq
+ * @date 2022-04-07 13:39:06
+ */
+public interface ComChangeCarInquiryService {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comChangeCarInquiry 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-04-07 13:39:06
+     */
+    R queryByPage(PageComChangeCarInquiryDto comChangeCarInquiry);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comChangeCarInquiry 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-04-07 13:39:06
+     */
+    R insert(AddComChangeCarInquiryDto comChangeCarInquiry);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comChangeCarInquiry 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-04-07 13:39:06
+     */
+    R update(EditComChangeCarInquiryDto comChangeCarInquiry);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-04-07 13:39:06
+     */
+    R deleteById(Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-07 13:39:06
+     */
+    R detailById(Long id);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comChangeCarInquiry 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-04-07 13:39:06
+     */
+    R queryByList(PageComChangeCarInquiryDto comChangeCarInquiry);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComChangeCarModelRelationService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComChangeCarModelRelationService.java
new file mode 100644
index 0000000..6832d53
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComChangeCarModelRelationService.java
@@ -0,0 +1,87 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+
+/**
+ * title: 换新车-车型与规格关联表表服务接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-车型与规格关联表表服务接口
+ *
+ * @author lyq
+ * @date 2022-04-07 13:55:30
+ */
+public interface ComChangeCarModelRelationService {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comChangeCarModelRelation 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-04-07 13:55:30
+     */
+    R queryByPage(PageComChangeCarModelRelationDto comChangeCarModelRelation);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comChangeCarModelRelation 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-04-07 13:55:30
+     */
+    R insert(AddComChangeCarModelRelationDto comChangeCarModelRelation);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comChangeCarModelRelation 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-04-07 13:55:30
+     */
+    R update(EditComChangeCarModelRelationDto comChangeCarModelRelation);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-04-07 13:55:30
+     */
+    R deleteById(Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-07 13:55:30
+     */
+    R detailById(Long id);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comChangeCarModelRelation 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-04-07 13:55:30
+     */
+    R queryByList(PageComChangeCarModelRelationDto comChangeCarModelRelation);
+
+    /**
+     * description  queryByPage  小程序分页查询
+     *
+     * @param comChangeCarModelRelation 请求参数
+     * @return 小程序分页查询返回参数
+     * @author lyq
+     * @date 2022-04-07 13:55:29
+     */
+    R queryByAppletsPage(PageComChangeCarModelRelationDto comChangeCarModelRelation);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComChangeCarModelService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComChangeCarModelService.java
new file mode 100644
index 0000000..1ad384f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComChangeCarModelService.java
@@ -0,0 +1,86 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+
+/**
+ * title: 换新车-车型管理表表服务接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-车型管理表表服务接口
+ *
+ * @author lyq
+ * @date 2022-04-07 13:41:55
+ */
+public interface ComChangeCarModelService {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comChangeCarModel 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-04-07 13:41:55
+     */
+    R queryByPage(PageComChangeCarModelDto comChangeCarModel);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comChangeCarModel 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-04-07 13:41:55
+     */
+    R insert(AddComChangeCarModelDto comChangeCarModel);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comChangeCarModel 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-04-07 13:41:55
+     */
+    R update(EditComChangeCarModelDto comChangeCarModel);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-04-07 13:41:55
+     */
+    R deleteById(Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-07 13:41:55
+     */
+    R detailById(Long id);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comChangeCarModel 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-04-07 13:41:55
+     */
+    R queryByList(PageComChangeCarModelDto comChangeCarModel);
+
+    /**
+     * 修改车型状态
+     * @param id    车型id
+     * @param status    车型状态
+     * @return  修改结果
+     */
+    R updateStatus(Long id,Integer status);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComChangeCarModelSpecsChildrenService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComChangeCarModelSpecsChildrenService.java
new file mode 100644
index 0000000..6dae115
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComChangeCarModelSpecsChildrenService.java
@@ -0,0 +1,78 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+
+/**
+ * title: 换新车-车型子规格表表服务接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-车型子规格表表服务接口
+ *
+ * @author lyq
+ * @date 2022-04-07 13:55:34
+ */
+public interface ComChangeCarModelSpecsChildrenService {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comChangeCarModelSpecsChildren 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-04-07 13:55:34
+     */
+    R queryByPage(PageComChangeCarModelSpecsChildrenDto comChangeCarModelSpecsChildren);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comChangeCarModelSpecsChildren 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-04-07 13:55:34
+     */
+    R insert(AddComChangeCarModelSpecsChildrenDto comChangeCarModelSpecsChildren);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comChangeCarModelSpecsChildren 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-04-07 13:55:34
+     */
+    R update(EditComChangeCarModelSpecsChildrenDto comChangeCarModelSpecsChildren);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-04-07 13:55:34
+     */
+    R deleteById(Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-07 13:55:34
+     */
+    R detailById(Long id);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comChangeCarModelSpecsChildren 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-04-07 13:55:34
+     */
+    R queryByList(PageComChangeCarModelSpecsChildrenDto comChangeCarModelSpecsChildren);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComChangeCarModelSpecsService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComChangeCarModelSpecsService.java
new file mode 100644
index 0000000..d27db94
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComChangeCarModelSpecsService.java
@@ -0,0 +1,78 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+
+/**
+ * title: 换新车-车型规格表表服务接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-车型规格表表服务接口
+ *
+ * @author lyq
+ * @date 2022-04-07 13:55:32
+ */
+public interface ComChangeCarModelSpecsService {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comChangeCarModelSpecs 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-04-07 13:55:32
+     */
+    R queryByPage(PageComChangeCarModelSpecsDto comChangeCarModelSpecs);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comChangeCarModelSpecs 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-04-07 13:55:32
+     */
+    R insert(AddComChangeCarModelSpecsDto comChangeCarModelSpecs);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comChangeCarModelSpecs 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-04-07 13:55:32
+     */
+    R update(EditComChangeCarModelSpecsDto comChangeCarModelSpecs);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-04-07 13:55:32
+     */
+    R deleteById(Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-07 13:55:32
+     */
+    R detailById(Long id);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comChangeCarModelSpecs 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-04-07 13:55:32
+     */
+    R queryByList(PageComChangeCarModelSpecsDto comChangeCarModelSpecs);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComClusterOrganizationMemberService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComClusterOrganizationMemberService.java
new file mode 100644
index 0000000..e98946b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComClusterOrganizationMemberService.java
@@ -0,0 +1,92 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.cluster.PageClusterMemberDto;
+import com.panzhihua.common.model.dtos.community.cluster.admin.AddClusterMemberAdminDto;
+import com.panzhihua.common.model.dtos.community.cluster.admin.EditClusterMemberAdminDto;
+import com.panzhihua.common.model.dtos.community.cluster.admin.PageClusterMemberAdminDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.cluster.admin.ComClusterMemberExcelVO;
+import com.panzhihua.service_community.model.dos.ComClusterOrganizationMemberDO;
+
+import java.util.List;
+
+/**
+ * @author lyq
+ * @date 2021-09-23 16:44:00
+ * describe  群团组织成员表服务类
+ */
+public interface ComClusterOrganizationMemberService extends IService<ComClusterOrganizationMemberDO> {
+
+    /**
+     * 群团组织成员列表-小程序分页查询
+     *
+     * @param pageClusterMemberDto 请求参数
+     * @return 群团组织成员列表
+     */
+    R pageClusterMemberApplets(PageClusterMemberDto pageClusterMemberDto);
+
+    /**
+     * 分页查询群团组织成员列表
+     *
+     * @param pageClusterMemberAdminDto 请求参数
+     * @return 群团组织成员列表
+     */
+    R pageClusterMemberAdmin(PageClusterMemberAdminDto pageClusterMemberAdminDto);
+
+    /**
+     * 新增群团组织成员
+     *
+     * @param addClusterMemberAdminDto 请求参数
+     * @return 新增结果
+     */
+    R addClusterMemberAdmin(AddClusterMemberAdminDto addClusterMemberAdminDto);
+
+    /**
+     * 编辑群团组织成员
+     *
+     * @param editClusterMemberAdminDto 请求参数
+     * @return 编辑结果
+     */
+    R editClusterMemberAdmin(EditClusterMemberAdminDto editClusterMemberAdminDto);
+
+    /**
+     * 删除群团组织成员
+     *
+     * @param id 组织成员id
+     * @return 删除结果
+     */
+    R deleteClusterMemberAdmin(Long id);
+
+    /**
+     * 群团组织成员详情
+     *
+     * @param id 组织成员id
+     * @return 群团组织成员详情
+     */
+    R detailClusterMemberAdmin(Long id);
+
+    /**
+     * 查询系统民族列表
+     *
+     * @return 民族列表
+     */
+    R memberNationListAdmin();
+
+    /**
+     * 群团组织成员导入
+     * @param list  导入数据
+     * @param communityId   社区id
+     * @param userId    操作用户id
+     * @return  导入结果
+     */
+    R importClusterMember(List<ComClusterMemberExcelVO> list, Long communityId, Long userId);
+
+    /**
+     * 群团组织导出数据查询
+     * @param pageClusterMemberAdminDto 请求参数
+     * @return  导出数据结果集
+     */
+    R exportClusterMember(PageClusterMemberAdminDto pageClusterMemberAdminDto);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComClusterOrganizationService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComClusterOrganizationService.java
new file mode 100644
index 0000000..d27ad81
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComClusterOrganizationService.java
@@ -0,0 +1,59 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.cluster.admin.AddClusterAdminDto;
+import com.panzhihua.common.model.dtos.community.cluster.admin.EditClusterAdminDto;
+import com.panzhihua.common.model.dtos.community.cluster.admin.PageClusterAdminDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.ComClusterOrganizationDO;
+
+/**
+ * @author lyq
+ * @date 2021-09-23 16:44:06
+ * describe  群团组织表服务类
+ */
+public interface ComClusterOrganizationService extends IService<ComClusterOrganizationDO> {
+
+    /**
+     * 群团组织列表-小程序查询社区群团组织列表
+     * @param communityId   社区id
+     * @return  社区群团组织列表
+     */
+    R listClusterApplets(Long communityId);
+
+    /**
+     * 分页查询群团组织列表
+     * @param pageClusterAdminDto  请求参数
+     * @return  群团组织列表
+     */
+    R pageClusterAdmin(PageClusterAdminDto pageClusterAdminDto);
+
+    /**
+     * 新增群团组织
+     * @param addClusterAdminDto    请求参数
+     * @return  新增结果
+     */
+    R addClusterAdmin(AddClusterAdminDto addClusterAdminDto);
+
+    /**
+     * 修改群团组织
+     * @param editClusterAdminDto   请求参数
+     * @return  修改结果
+     */
+    R editClusterAdmin(EditClusterAdminDto editClusterAdminDto);
+
+    /**
+     * 删除群团组织
+     * @param id    组织id
+     * @return  删除结果
+     */
+    R deleteClusterAdmin(Long id);
+
+    /**
+     * 群团组织详情
+     * @param id    组织id
+     * @return  群团组织详情
+     */
+    R detailClusterAdmin(Long id);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComCorrectPopulationService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComCorrectPopulationService.java
new file mode 100644
index 0000000..ab8b667
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComCorrectPopulationService.java
@@ -0,0 +1,13 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.model.dos.ComCorrectPopulationDO;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 16:45:25
+ * @describe 社区矫正人员表服务类
+ */
+public interface ComCorrectPopulationService extends IService<ComCorrectPopulationDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComCultPopulationService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComCultPopulationService.java
new file mode 100644
index 0000000..daa16b6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComCultPopulationService.java
@@ -0,0 +1,13 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.model.dos.ComCultPopulationDO;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 17:40:24
+ * @describe 邪教人员表服务类
+ */
+public interface ComCultPopulationService extends IService<ComCultPopulationDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComCvtBusinessAreaService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComCvtBusinessAreaService.java
new file mode 100644
index 0000000..044fb61
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComCvtBusinessAreaService.java
@@ -0,0 +1,30 @@
+package com.panzhihua.service_community.service;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.ComCvtBusinessAreaDO;
+
+/**
+ * @description: 便民服务 商家相关接口
+ * @author: Null
+ * @date: 2021/3/11 11:11
+ */
+public interface ComCvtBusinessAreaService {
+
+    /**
+     * 批量保存便民服务商家服务范围
+     * 
+     * @param comCvtBusinessAreaDOs
+     *            参数
+     */
+    R batchSave(List<ComCvtBusinessAreaDO> comCvtBusinessAreaDOs);
+
+    /**
+     * 查询商家服务范围的社区Ids集合
+     * 
+     * @param businessId
+     * @return
+     */
+    List<Long> getBusinessServiceAreaIds(Long businessId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComCvtBusinessIntroduceService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComCvtBusinessIntroduceService.java
new file mode 100644
index 0000000..2feea3f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComCvtBusinessIntroduceService.java
@@ -0,0 +1,30 @@
+package com.panzhihua.service_community.service;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.ComCvtBusinessIntroduceDO;
+
+/**
+ * @description: 便民服务商家介绍媒体文件路径
+ * @author: Null
+ * @date: 2021/3/11 15:44
+ */
+public interface ComCvtBusinessIntroduceService {
+
+    /**
+     * 保存便民服务商家介绍图片或视频文件
+     * 
+     * @param comCvtBusinessIntroduceDOS
+     *            参数
+     */
+    R batchSave(List<ComCvtBusinessIntroduceDO> comCvtBusinessIntroduceDOS);
+
+    /**
+     * 查询商家介绍媒体文件集合
+     * 
+     * @param businessId
+     * @return
+     */
+    List<String> getBusinessMediaPaths(Long businessId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComCvtBusinessService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComCvtBusinessService.java
new file mode 100644
index 0000000..41d183c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComCvtBusinessService.java
@@ -0,0 +1,72 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.dtos.community.ComCvtBusinessDTO;
+import com.panzhihua.common.model.dtos.community.PageComCvtBusinessAppletsDTO;
+import com.panzhihua.common.model.dtos.community.PageComCvtBusinessDTO;
+import com.panzhihua.common.model.vos.R;
+
+/**
+ * @description: 便民服务 商家相关接口
+ * @author: Null
+ * @date: 2021/3/11 11:11
+ */
+public interface ComCvtBusinessService {
+
+    /**
+     * 分页查询便民服务商家
+     * 
+     * @param pageComCvtBusinessDTO
+     *            查询参数
+     * @return 分页集合
+     */
+    R pageComCvtBusiness(PageComCvtBusinessDTO pageComCvtBusinessDTO);
+
+    /**
+     * 添加便民服务商家信息
+     * 
+     * @param comCvtBusinessDTO
+     * @return
+     */
+    R addComCvtBusiness(ComCvtBusinessDTO comCvtBusinessDTO);
+
+    /**
+     * 编辑便民服务商家信息
+     * 
+     * @param comCvtBusinessDTO
+     * @return
+     */
+    R putComCvtBusiness(ComCvtBusinessDTO comCvtBusinessDTO);
+
+    /**
+     * 查询便民服务商家详情
+     * 
+     * @param id
+     *            商家主键
+     * @return
+     */
+    R getComCvtBusiness(Long id);
+
+    /**
+     * 删除便民服务商家信息
+     * 
+     * @return
+     */
+    R deleteComCvtBusiness(Long id);
+
+    /**
+     * 通过服务区域 分页查询便民服务商家
+     * 
+     * @param comCvtBusinessAppletsDTO
+     *            查询参数
+     * @return 分页集合
+     */
+    R pageComCvtBusinessByServiceArea(PageComCvtBusinessAppletsDTO comCvtBusinessAppletsDTO);
+
+    /**
+     * 小程序便民服务商家详情
+     * 
+     * @param id
+     * @return
+     */
+    R getComCvtBusinessServeDetail(Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComCvtCategoryService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComCvtCategoryService.java
new file mode 100644
index 0000000..4b63158
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComCvtCategoryService.java
@@ -0,0 +1,59 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.dtos.community.ComCvtCategoryDTO;
+import com.panzhihua.common.model.dtos.community.PageComCvtCategoryDTO;
+import com.panzhihua.common.model.vos.R;
+
+/**
+ * @description: 便民服务 分类
+ * @author: Null
+ * @date: 2021/3/11 16:56
+ */
+public interface ComCvtCategoryService {
+
+    /**
+     * 分页查询便民服务分类
+     * 
+     * @param pageComCvtCategoryDTO
+     *            查询参数
+     * @return 分页集合
+     */
+    R pageComCvtCategory(PageComCvtCategoryDTO pageComCvtCategoryDTO);
+
+    /**
+     * 添加便民服务分类
+     * 
+     * @param comCvtCategoryDTO
+     * @return
+     */
+    R addComCvtCategory(ComCvtCategoryDTO comCvtCategoryDTO);
+
+    /**
+     * 编辑便民服务分类信息
+     * 
+     * @param comCvtCategoryDTO
+     * @return
+     */
+    R putComCvtCategory(ComCvtCategoryDTO comCvtCategoryDTO);
+
+    /**
+     * 查询便民服务分类详情
+     * 
+     * @return
+     */
+    R getComCvtCategory(Long id);
+
+    /**
+     * 删除便民服务分类信息
+     * 
+     * @return
+     */
+    R deleteComCvtCategory(Long id);
+
+    /**
+     * 查询便民服务所有分类
+     * 
+     * @return
+     */
+    R allComCvtCategory();
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComCvtServeService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComCvtServeService.java
new file mode 100644
index 0000000..a2e255d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComCvtServeService.java
@@ -0,0 +1,73 @@
+package com.panzhihua.service_community.service;
+
+import java.util.List;
+
+import com.panzhihua.common.model.dtos.community.ComCvtServeDTO;
+import com.panzhihua.common.model.dtos.community.PageComCvtServeDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComCvtBusinessCategoryServeVO;
+import com.panzhihua.common.model.vos.community.ComCvtServeExcelVO;
+
+/**
+ * @description: 社区 便民服务接口
+ * @author: Null
+ * @date: 2021/3/12 8:57
+ */
+public interface ComCvtServeService {
+
+    /**
+     * 分页查询便民服务
+     * 
+     * @param pageComCvtServeDTO
+     *            查询参数
+     * @return 分页集合
+     */
+    R pageComCvtServe(PageComCvtServeDTO pageComCvtServeDTO);
+
+    /**
+     * 添加便民服务
+     * 
+     * @param comCvtServeDTO
+     * @return
+     */
+    R addComCvtServe(ComCvtServeDTO comCvtServeDTO);
+
+    /**
+     * 编辑便民服务信息
+     * 
+     * @param comCvtServeDTO
+     * @return
+     */
+    R putComCvtServe(ComCvtServeDTO comCvtServeDTO);
+
+    /**
+     * 查询便民服务详情
+     * 
+     * @return
+     */
+    R getComCvtServe(Long id);
+
+    /**
+     * 删除便民服务信息
+     * 
+     * @return
+     */
+    R deleteComCvtServe(Long id);
+
+    /**
+     * 查询商家服务
+     * 
+     * @param businessId
+     *            商家主键
+     * @return
+     */
+    List<ComCvtBusinessCategoryServeVO> getBusinessCategoryServeVOS(Long businessId);
+
+    /**
+     * 导入便民服务
+     * 
+     * @param list
+     * @return
+     */
+    R listSaveConvenientServeExcelVO(List<ComCvtServeExcelVO> list, Long communityId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComDisabilityPopulationService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComDisabilityPopulationService.java
new file mode 100644
index 0000000..2dda575
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComDisabilityPopulationService.java
@@ -0,0 +1,13 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.model.dos.ComDisabilityPopulationDO;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 19:54:57
+ * @describe 实有人口导入》残疾人表服务类
+ */
+public interface ComDisabilityPopulationService extends IService<ComDisabilityPopulationDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComDrugPopulationService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComDrugPopulationService.java
new file mode 100644
index 0000000..16d5278
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComDrugPopulationService.java
@@ -0,0 +1,13 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.model.dos.ComDrugPopulationDO;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 15:37:19
+ * @describe 吸毒人员表服务类
+ */
+public interface ComDrugPopulationService extends IService<ComDrugPopulationDO> {
+
+}
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..0daa0c1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComElderAuthRecordsService.java
@@ -0,0 +1,133 @@
+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);
+
+    /**
+     * 导出  pageElderAuthRecords  导出
+     * @param    pageElderAuthRecordsDTO   查询参数
+     * @return    R  查询结果
+     * @author txb
+     * @date 2021/9/02 11:03
+     */
+    R export(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);
+
+    /**
+     * 身份认证定时任务
+     * @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);
+
+    /**
+     * 高龄认证添加
+     * @param comElderAuthRecordVO
+     * @return
+     */
+    R add(ComElderAuthRecordVO comElderAuthRecordVO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComEldersAuthElderlyService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComEldersAuthElderlyService.java
new file mode 100644
index 0000000..5734ad9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComEldersAuthElderlyService.java
@@ -0,0 +1,61 @@
+package com.panzhihua.service_community.service;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.EldersAuthElderlyDTO;
+import com.panzhihua.common.model.dtos.community.PageEldersAuthElderlyDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.EldersAuthElderlyExcelVO;
+import com.panzhihua.service_community.model.dos.ComEldersAuthElderlyDO;
+
+/**
+ * 高龄老人库 service
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-06-09
+ */
+public interface ComEldersAuthElderlyService extends IService<ComEldersAuthElderlyDO> {
+
+    /**
+     * 查询高龄老人列表
+     * 
+     * @param pageEldersAuthElderlyDTO
+     * @return
+     */
+    R pageQueryEldersAuthElderly(PageEldersAuthElderlyDTO pageEldersAuthElderlyDTO);
+
+    /**
+     * 批量保存高龄老人
+     * 
+     * @param eldersAuthElderlyExcelVOS
+     * @return
+     */
+    R batchSave(List<EldersAuthElderlyExcelVO> eldersAuthElderlyExcelVOS, Long communityId, Long createBy);
+
+    /**
+     * 查看高龄老人详情
+     * 
+     * @param id
+     * @return
+     */
+    R getEldersAuthElderlyById(Long id);
+
+    /**
+     * 修改高龄老人
+     * 
+     * @param eldersAuthElderlyDTO
+     * @return
+     */
+    R updateEldersAuthElderly(EldersAuthElderlyDTO eldersAuthElderlyDTO);
+
+    /**
+     * 删除高领老人
+     * 
+     * @param id
+     * @return
+     */
+    R deleteEldersAuthElderly(Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComEldersAuthUserService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComEldersAuthUserService.java
new file mode 100644
index 0000000..89a7363
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComEldersAuthUserService.java
@@ -0,0 +1,23 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.model.dos.ComEldersAuthUserDO;
+
+/**
+ * 用户绑定老人关系 service
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-06-09
+ */
+public interface ComEldersAuthUserService extends IService<ComEldersAuthUserDO> {
+
+    /**
+     * 检查当月是否可再次进行认证
+     * 
+     * @param elderId
+     * @return
+     */
+    boolean checkReAuthAgain(Long elderId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComExServicemanService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComExServicemanService.java
new file mode 100644
index 0000000..d571a6b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComExServicemanService.java
@@ -0,0 +1,24 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.ComExServicemanDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.ComExServicemanDO;
+
+/**
+ * @auther txb
+ * @create 2021-07-15 15:52:31
+ * @describe 退役军人服务类
+ */
+public interface ComExServicemanService extends IService<ComExServicemanDO> {
+
+    /**
+     * 分页查询退役军人列表
+     * 
+     * @param comExServicemanDTO
+     *            请求参数
+     * @return 退役军人列表
+     */
+    R getPageExServiceman(ComExServicemanDTO comExServicemanDTO);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComFmsClassroomService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComFmsClassroomService.java
new file mode 100644
index 0000000..2369fe6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComFmsClassroomService.java
@@ -0,0 +1,89 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.fms.AddFmsClassroomAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.EditFmsClassroomAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageFmsClassroomAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageFmsEventAdminDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.ComFmsClassroom;
+
+/**
+ * 五微服务-微学堂(ComFmsClassroom)表服务接口
+ *
+ * @author makejava
+ * @since 2022-02-11 13:35:52
+ */
+public interface ComFmsClassroomService extends IService<ComFmsClassroom> {
+
+    /**
+     * 后台新增微讲堂
+     * @param adminDTO
+     * @return
+     */
+    R addFmsClassroom(AddFmsClassroomAdminDTO adminDTO);
+
+    /**
+     * 后台编辑微讲堂
+     * @param adminDTO
+     * @return
+     */
+    R editFmsClassroom(EditFmsClassroomAdminDTO adminDTO);
+
+    /**
+     * 后台删除微讲堂
+     * @param id
+     * @return
+     */
+    R deleteFmsClassroom(Long id);
+
+    /**
+     * 后台获取微讲堂详情
+     * @param id
+     * @return
+     */
+    R detailFmsClassroom(Long id);
+
+    /**
+     * 后台分页查询微讲堂
+     * @param adminDTO
+     * @return
+     */
+    R pageFmsClassroomAdmin(PageFmsClassroomAdminDTO adminDTO);
+
+    /**
+     * 微讲堂顶部统计
+     * @param communityId
+     * @return
+     */
+    R statisticsFmsClassroom(Long communityId);
+
+    /**
+     * 后台分页查询微调节/微防控
+     * @param adminDTO
+     * @return
+     */
+    R pageFmsEvent(PageFmsEventAdminDTO adminDTO);
+
+    /**
+     * 微调节/微防控顶部统计
+     * @param type
+     * @param communityId
+     * @return
+     */
+    R statisticsFmsEvent(Integer type, Long communityId);
+
+    /**
+     * 小程序获取微讲堂详情
+     * @param id
+     * @return
+     */
+    R detailFmsClassroomApplets(Long id);
+
+    /**
+     * 小程序分页查询微调节/微防控
+     * @param adminDTO
+     * @return
+     */
+    R pageFmsEventApplets(PageFmsEventAdminDTO adminDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComFmsServiceEvaluationsService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComFmsServiceEvaluationsService.java
new file mode 100644
index 0000000..a0e20f2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComFmsServiceEvaluationsService.java
@@ -0,0 +1,22 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.fms.EvaluationFmsServiceDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.ComFmsServiceEvaluations;
+
+/**
+ * 五微服务-服务评价(ComFmsServiceEvaluations)表服务接口
+ *
+ * @author makejava
+ * @since 2022-02-11 13:35:53
+ */
+public interface ComFmsServiceEvaluationsService extends IService<ComFmsServiceEvaluations> {
+
+    /**
+     * 微服务评价
+     * @param evaluationFmsServiceDTO
+     * @return
+     */
+    R evaluateFmsService(EvaluationFmsServiceDTO evaluationFmsServiceDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComFmsServiceRecordService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComFmsServiceRecordService.java
new file mode 100644
index 0000000..fe9912b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComFmsServiceRecordService.java
@@ -0,0 +1,14 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.entity.ComFmsServiceRecord;
+
+/**
+ * 五微服务-服务记录(ComFmsServiceRecord)表服务接口
+ *
+ * @author makejava
+ * @since 2022-02-11 13:35:54
+ */
+public interface ComFmsServiceRecordService extends IService<ComFmsServiceRecord> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComFmsServiceService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComFmsServiceService.java
new file mode 100644
index 0000000..d7a4c74
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComFmsServiceService.java
@@ -0,0 +1,123 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.fms.AddFmsServiceAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.ApplyFmsServiceDTO;
+import com.panzhihua.common.model.dtos.community.fms.ApprovalFmsServiceAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.FeedbackFmsServiceDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageFmsServiceAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageFmsServiceAppletsDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.fms.ComFmsServiceImportExcelVO;
+import com.panzhihua.service_community.entity.ComFmsService;
+
+import java.util.List;
+
+/**
+ * 五微服务-微服务(ComFmsService)表服务接口
+ *
+ * @author makejava
+ * @since 2022-02-11 13:35:53
+ */
+public interface ComFmsServiceService extends IService<ComFmsService> {
+
+    /**
+     * 后台新增微服务
+     * @param adminDTO
+     * @return
+     */
+    R addFmsServiceAdmin(AddFmsServiceAdminDTO adminDTO);
+
+    /**
+     * 后台分页查询微服务
+     * @param adminDTO
+     * @return
+     */
+    R pageFmsServiceAdmin(PageFmsServiceAdminDTO adminDTO);
+
+    /**
+     * 后台核实微服务
+     * @param adminDTO
+     * @return
+     */
+    R approvalFmsService(ApprovalFmsServiceAdminDTO adminDTO);
+
+    /**
+     * 后台查看微服务详情
+     * @param serviceId
+     * @return
+     */
+    R detailFmsServiceAdmin(Long serviceId);
+
+    /**
+     * 后台删除微服务
+     * @param serviceId
+     * @return
+     */
+    R deleteFmsServiceAdmin(Long serviceId);
+
+    /**
+     * 微服务顶部统计
+     * @param communityId
+     * @return
+     */
+    R statisticsFmsService(Long communityId);
+
+    /**
+     * 后台导入微服务数据
+     * @param voList
+     * @param communityId
+     * @param userId
+     * @return
+     */
+    R listSaveFmsServiceExcelVO(List<ComFmsServiceImportExcelVO> voList, Long communityId, Long userId);
+
+    /**
+     * 小程序分页查询微服务
+     * @param adminDTO
+     * @return
+     */
+    R pageFmsServiceApplets(PageFmsServiceAppletsDTO adminDTO);
+
+    /**
+     * 小程序查看微服务详情
+     * @param serviceId
+     * @param userId
+     * @return
+     */
+    R detailFmsServiceApplets(Long serviceId, Long userId);
+
+    /**
+     * 微服务申请
+     * @param adminDTO
+     * @return
+     */
+    R applyFmsService(ApplyFmsServiceDTO adminDTO);
+
+    /**
+     * 分页查询我的微服务
+     * @param adminDTO
+     * @return
+     */
+    R pageMyFmsService(PageFmsServiceAppletsDTO adminDTO);
+
+    /**
+     * 微团队成员分页查询服务处理
+     * @param adminDTO
+     * @return
+     */
+    R pageDealFmsService(PageFmsServiceAppletsDTO adminDTO);
+
+    /**
+     * 微团队成员服务反馈
+     * @param adminDTO
+     * @return
+     */
+    R feedbackFmsService(FeedbackFmsServiceDTO adminDTO);
+
+    /**
+     * 定时任务针对服务结束后3天还未评价的用户默认好评
+     * @return
+     */
+    R defaultPraise();
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComFmsTeamMemberRelationService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComFmsTeamMemberRelationService.java
new file mode 100644
index 0000000..22e82d0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComFmsTeamMemberRelationService.java
@@ -0,0 +1,14 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.entity.ComFmsTeamMemberRelation;
+
+/**
+ * 五微服务-团队&成员关系表(ComFmsTeamMemberRelation)表服务接口
+ *
+ * @author makejava
+ * @since 2022-02-14 14:41:36
+ */
+public interface ComFmsTeamMemberRelationService extends IService<ComFmsTeamMemberRelation> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComFmsTeamMemberService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComFmsTeamMemberService.java
new file mode 100644
index 0000000..6a7e61f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComFmsTeamMemberService.java
@@ -0,0 +1,79 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.fms.AddTeamMemberDTO;
+import com.panzhihua.common.model.dtos.community.fms.DeleteTeamMemberDTO;
+import com.panzhihua.common.model.dtos.community.fms.EditTeamMemberDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageTeamMemberDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.fms.ComFmsTeamMemberImportExcelVO;
+import com.panzhihua.service_community.entity.ComFmsTeamMember;
+
+import java.util.List;
+
+/**
+ * 五微服务-团队成员(ComFmsTeamMember)表服务接口
+ *
+ * @author makejava
+ * @since 2022-02-11 13:35:55
+ */
+public interface ComFmsTeamMemberService extends IService<ComFmsTeamMember> {
+
+    /**
+     * 新增团队成员
+     * @param addTeamMemberDTO
+     * @return
+     */
+    R addFmsTeamMember(AddTeamMemberDTO addTeamMemberDTO);
+
+    /**
+     * 编辑团队成员
+     * @param editTeamMemberDTO
+     * @return
+     */
+    R editFmsTeamMember(EditTeamMemberDTO editTeamMemberDTO);
+
+    /**
+     * 删除团队成员
+     * @param deleteTeamMemberDTO
+     * @return
+     */
+    R deleteFmsTeamMember(DeleteTeamMemberDTO deleteTeamMemberDTO);
+
+    /**
+     * 分页查询团队成员
+     * @param pageTeamMemberDTO
+     * @return
+     */
+    R pageFmsTeamMember(PageTeamMemberDTO pageTeamMemberDTO);
+
+    /**
+     * 微团队顶部统计
+     * @param communityId
+     * @return
+     */
+    R statisticsFmsTeamMember(Long communityId);
+
+    /**
+     * 批量导入团队成员
+     * @param voList
+     * @param communityId
+     * @param userId
+     * @return
+     */
+    R listSaveFmsTeamMemberExcelVO(List<ComFmsTeamMemberImportExcelVO> voList, Long communityId, Long userId);
+
+    /**
+     * 团队人员导出
+     * @param pageTeamMemberDTO
+     * @return
+     */
+    R exportTeamMember(PageTeamMemberDTO pageTeamMemberDTO);
+
+    /**
+     * 级联查询团队服务人员
+     * @param communityId
+     * @return
+     */
+    R retrieveFmsTeamMemberCascade(Long communityId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComFmsTeamService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComFmsTeamService.java
new file mode 100644
index 0000000..74dbeae
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComFmsTeamService.java
@@ -0,0 +1,66 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.fms.AddTeamDTO;
+import com.panzhihua.common.model.dtos.community.fms.EditTeamDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageFmsTeamDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.ComFmsTeam;
+
+/**
+ * 五微服务-微团队(ComFmsTeam)表服务接口
+ *
+ * @author makejava
+ * @since 2022-02-11 13:35:55
+ */
+public interface ComFmsTeamService extends IService<ComFmsTeam> {
+
+    /**
+     * 新增团队
+     * @param addTeamDTO
+     * @return
+     */
+    R addFmsTeam(AddTeamDTO addTeamDTO);
+
+    /**
+     * 修改团队信息
+     * @param editTeamDTO
+     * @return
+     */
+    R editFmsTeam(EditTeamDTO editTeamDTO);
+
+    /**
+     * 删除团队
+     * @param teamId
+     * @return
+     */
+    R deleteFmsTeam(Long teamId);
+
+    /**
+     * 获取团队列表
+     * @param teamTypeId
+     * @return
+     */
+    R listFmsTeam(Long teamTypeId);
+
+    /**
+     * 获取团队详情
+     * @param teamId
+     * @return
+     */
+    R detailFmsTeam(Long teamId);
+
+    /**
+     * 级联查询团队数据
+     * @param communityId
+     * @return
+     */
+    R retrieveFmsTeamCascade(Long communityId);
+
+    /**
+     * 小程序分页查询团队信息
+     * @param pageFmsTeamDTO
+     * @return
+     */
+    R pageFmsTeamApplets(PageFmsTeamDTO pageFmsTeamDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComFmsTeamTypeService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComFmsTeamTypeService.java
new file mode 100644
index 0000000..43c6209
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComFmsTeamTypeService.java
@@ -0,0 +1,45 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.fms.AddTeamTypeDTO;
+import com.panzhihua.common.model.dtos.community.fms.EditTeamTypeDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.ComFmsTeamType;
+
+/**
+ * 五微服务-团队类型(ComFmsTeamType)表服务接口
+ *
+ * @author makejava
+ * @since 2022-02-11 13:35:56
+ */
+public interface ComFmsTeamTypeService extends IService<ComFmsTeamType> {
+
+    /**
+     * 新增团队类型
+     * @param addTeamTypeDTO
+     * @return
+     */
+    R addFmsTeamType(AddTeamTypeDTO addTeamTypeDTO);
+
+    /**
+     * 修改团队类型
+     * @param editTeamTypeDTO
+     * @return
+     */
+    R editFmsTeamType(EditTeamTypeDTO editTeamTypeDTO);
+
+    /**
+     * 删除团队类型
+     * @param teamTypeId
+     * @param communityId
+     * @return
+     */
+    R deleteFmsTeamType(Long teamTypeId, Long communityId);
+
+    /**
+     * 获取团队类型列表
+     * @param communityId
+     * @return
+     */
+    R listFmsTeamType(Long communityId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComKeyPopulationService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComKeyPopulationService.java
new file mode 100644
index 0000000..c94b9be
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComKeyPopulationService.java
@@ -0,0 +1,13 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.model.dos.ComKeyPopulationDO;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 17:41:05
+ * @describe 服务类
+ */
+public interface ComKeyPopulationService extends IService<ComKeyPopulationDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComLowSecurityPopulationService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComLowSecurityPopulationService.java
new file mode 100644
index 0000000..0465df9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComLowSecurityPopulationService.java
@@ -0,0 +1,13 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.model.dos.ComLowSecurityPopulationDO;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 19:52:55
+ * @describe 实有人口导入》低保户人员表服务类
+ */
+public interface ComLowSecurityPopulationService extends IService<ComLowSecurityPopulationDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMajorPopulationService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMajorPopulationService.java
new file mode 100644
index 0000000..382c972
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMajorPopulationService.java
@@ -0,0 +1,13 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.model.dos.ComMajorPopulationDO;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 17:14:17
+ * @describe 重精人员表服务类
+ */
+public interface ComMajorPopulationService extends IService<ComMajorPopulationDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngCarService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngCarService.java
new file mode 100644
index 0000000..863259a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngCarService.java
@@ -0,0 +1,70 @@
+package com.panzhihua.service_community.service;
+
+import java.util.List;
+
+import com.panzhihua.common.model.dtos.community.ComMngCarAppletDTO;
+import com.panzhihua.common.model.dtos.community.ComMngCarSaveDTO;
+import com.panzhihua.common.model.dtos.community.ExportComMngCarExcelDTO;
+import com.panzhihua.common.model.dtos.community.PageComMngCarDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngCarExcelVO;
+
+public interface ComMngCarService {
+
+    /**
+     * 小程序端:添加车辆信息
+     * 
+     * @param comCvtBusinessDTO
+     * @return
+     */
+    R addComMngCarApplet(ComMngCarAppletDTO comCvtBusinessDTO);
+
+    /**
+     * 小程序用户车辆列表
+     * 
+     * @param userId
+     * @return
+     */
+    R userComMngCarList(Long userId);
+
+    /**
+     * 分页查询车辆管理列表
+     * 
+     * @param pageComMngCarDTO
+     * @return
+     */
+    R pageQueryComMngCar(PageComMngCarDTO pageComMngCarDTO);
+
+    /**
+     * 新增或修改车辆信息
+     * 
+     * @param comMngCarSaveDTO
+     * @return
+     */
+    R saveComMngCar(ComMngCarSaveDTO comMngCarSaveDTO);
+
+    /**
+     * 删除车辆信息
+     * 
+     * @param id
+     * @return
+     */
+    R deleteComMngCar(Long id);
+
+    /**
+     * 批量导入车辆信息
+     * 
+     * @param list
+     * @param communityId
+     * @return
+     */
+    R listSaveMngCarExcelVO(List<ComMngCarExcelVO> list, Long communityId);
+
+    /**
+     * 车辆导出
+     *
+     * @param exportComMngCarExcelDTO
+     * @return
+     */
+    R exportRealCar(ExportComMngCarExcelDTO exportComMngCarExcelDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationCommunityTagsService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationCommunityTagsService.java
new file mode 100644
index 0000000..a25d438
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationCommunityTagsService.java
@@ -0,0 +1,13 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.model.dos.ComMngPopulationCommunityTagsDO;
+
+/**
+ * @auther txb
+ * @create 2021-08-19 14:55:29
+ * @describe 基础数据》人口社区特殊群体关系表服务类
+ */
+public interface ComMngPopulationCommunityTagsService extends IService<ComMngPopulationCommunityTagsDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationHouseService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationHouseService.java
new file mode 100644
index 0000000..e7ffd0c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationHouseService.java
@@ -0,0 +1,140 @@
+package com.panzhihua.service_community.service;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.CascadeHouseDTO;
+import com.panzhihua.common.model.dtos.community.ComMngPopulationHouseAdminDTO;
+import com.panzhihua.common.model.dtos.community.ComMngPopulationHouseEditAdminDTO;
+import com.panzhihua.common.model.dtos.community.ComMngPopulationHouseInsertAdminDTO;
+import com.panzhihua.common.model.dtos.grid.PageComMngVillageBuildHouseAppDTO;
+import com.panzhihua.common.model.dtos.grid.admin.ComMngPopulationRelationHouseDTO;
+import com.panzhihua.common.model.dtos.grid.admin.ComMngPopulationSubordinateDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.ComMngPopulationHouseDO;
+
+/**
+ * @auther lyq
+ * @create 2021-05-18 09:26:31
+ * @describe 社区管理》小区管理》实有房屋服务类
+ */
+public interface ComMngPopulationHouseService extends IService<ComMngPopulationHouseDO> {
+
+    /**
+     * 查询房屋级联菜单
+     * 
+     * @param cascadeHouseDTO
+     *            请求参数
+     * @return 菜单列表
+     */
+    R getCascadeHouseAddress(CascadeHouseDTO cascadeHouseDTO);
+
+    /**
+     * 查询二级房屋级联菜单
+     *
+     * @param cascadeHouseDTO
+     *            请求参数
+     * @return 菜单列表
+     */
+    R getSecondHouseAddress(CascadeHouseDTO cascadeHouseDTO);
+
+    /**
+     * 查询二级房屋级联菜单后台
+     *
+     * @param cascadeHouseDTO
+     *            请求参数
+     * @return 菜单列表
+     */
+    R getSecondHouse(CascadeHouseDTO cascadeHouseDTO);
+
+    /**
+     * 分页查询房屋列表
+     * 
+     * @param populationHouseAdminDTO
+     *            请求参数
+     * @return 房屋列表
+     */
+    R getPageHouse(ComMngPopulationHouseAdminDTO populationHouseAdminDTO);
+
+    /**
+     * 根据id查询实有房屋信息
+     * 
+     * @param houseId
+     *            房屋id
+     * @return 房屋信息
+     */
+    R getHouseDetail(Long houseId);
+
+    /**
+     * 编辑实有房屋信息
+     * 
+     * @param houseEditAdminDTO
+     *            请求参数
+     * @return 编辑结果
+     */
+    R editHouse(ComMngPopulationHouseEditAdminDTO houseEditAdminDTO);
+
+    /**
+     * 根据房屋id列表删除房屋信息
+     * 
+     * @param Ids
+     *            请求参数
+     * @return 删除结果
+     */
+    R deleteHouses(List<Long> Ids);
+
+    /**
+     * 实有房屋统计
+     * 
+     * @param communityId
+     *            社区id
+     * @return 统计结果
+     */
+    R getHouseTotalByAdmin(Long communityId);
+
+    /**
+     * 根据社区id查询社区所有省市区
+     * 
+     * @param communityId
+     *            社区id
+     * @return 社区所在省市区
+     */
+    R getRegion(Long communityId);
+
+    /**
+     * 小区楼栋下房屋列表
+     * 
+     * @param buildHouseAppDTO
+     *            请求参数
+     * @return 房屋列表
+     */
+    R getGridVillageBuildingHouseList(PageComMngVillageBuildHouseAppDTO buildHouseAppDTO);
+
+    /**
+     * 小区楼栋下房屋详情
+     * 
+     * @param houseId
+     *            房屋id
+     * @return 房屋详情
+     */
+    R getGridVillageBuildingHouseDetail(Long houseId);
+
+    R subordinate(ComMngPopulationSubordinateDTO subordinateDTO);
+
+    R populationRelationHouse(ComMngPopulationRelationHouseDTO relationHouseDTO);
+
+    /**
+     * 编辑实有房屋信息
+     *
+     * @param houseEditAdminDTO
+     *            请求参数
+     * @return 编辑结果
+     */
+    R insertHouse(ComMngPopulationHouseInsertAdminDTO houseEditAdminDTO);
+
+    /**
+     * 实有房屋数据修复定时任务
+     * @return  实有房屋数据修复定时任务
+     */
+    R timedTaskHouseJobHandler();
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationHouseUserService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationHouseUserService.java
new file mode 100644
index 0000000..792705d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationHouseUserService.java
@@ -0,0 +1,45 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.ComMngPopulationHouseUserVO;
+import com.panzhihua.common.model.dtos.grid.AddComMngHousePopulationDTO;
+import com.panzhihua.common.model.dtos.grid.DelComMngHousePopulationDTO;
+import com.panzhihua.common.model.dtos.grid.admin.PageComMngVillagePopulationHouseDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.ComMngPopulationHouseUserDO;
+
+/**
+ * @auther lyq
+ * @create 2021-05-18 09:26:53
+ * @describe 房屋居住信息关联表服务类
+ */
+public interface ComMngPopulationHouseUserService extends IService<ComMngPopulationHouseUserDO> {
+
+    /**
+     * 批量向房屋新增人员
+     * 
+     * @param housePopulationDTO
+     *            请求参数
+     * @return 添加结果
+     */
+    R addBuildingHousePopulation(AddComMngHousePopulationDTO housePopulationDTO);
+
+    /**
+     * 批量删除房屋内人员
+     * 
+     * @param housePopulationDTO
+     *            请求参数
+     * @return 删除结果
+     */
+    R delBuildingHousePopulation(DelComMngHousePopulationDTO housePopulationDTO);
+
+    R getVillagePopulationHouseAdmin(PageComMngVillagePopulationHouseDTO villagePopulationDTO);
+
+    R insert(ComMngPopulationHouseUserVO comMngPopulationHouseUserVO);
+
+    R updateAll(ComMngPopulationHouseUserVO comMngPopulationHouseUserVO);
+
+    R delete(ComMngPopulationHouseUserVO comMngPopulationHouseUserVO);
+
+    R detail(Long id);
+}
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
new file mode 100644
index 0000000..5c68b0b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngPopulationService.java
@@ -0,0 +1,559 @@
+package com.panzhihua.service_community.service;
+
+import java.util.List;
+
+import com.panzhihua.common.model.dtos.community.ComMngPopulationDTO;
+import com.panzhihua.common.model.dtos.community.ComMngPopulationEditDTO;
+import com.panzhihua.common.model.dtos.community.ComMngPopulationTagCardNoDTO;
+import com.panzhihua.common.model.dtos.community.ComMngPopulationTagDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenEventDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenEventDetailDTO;
+import com.panzhihua.common.model.dtos.grid.PageComMngPopulationDTO;
+import com.panzhihua.common.model.dtos.grid.PagePopulationListDTO;
+import com.panzhihua.common.model.dtos.grid.admin.ComMngPopulationExportDTO;
+import com.panzhihua.common.model.dtos.grid.admin.ComMngPopulationListDTO;
+import com.panzhihua.common.model.dtos.grid.admin.PageComMngVillagePopulationDTO;
+import com.panzhihua.common.model.dtos.user.PageInputUserDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.*;
+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
+ */
+public interface ComMngPopulationService {
+    /**
+     * 新增实有人口
+     * 
+     * @param comMngPopulationVO
+     *            实有人口信息
+     * @return 新增结果
+     */
+    R addPopulation(ComMngPopulationVO comMngPopulationVO);
+
+    /**
+     * 编辑实有人口
+     * 
+     * @param comMngPopulationVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    R putPopulation(ComMngPopulationVO comMngPopulationVO);
+
+    /**
+     * 查询实有人口
+     * 
+     * @param comMngPopulationVO
+     *            请求参数
+     * @return 实有人口集合
+     */
+    R listPopulation(ComMngPopulationDTO comMngPopulationVO);
+
+    /**
+     * 实有人口详情
+     * 
+     * @param populationId
+     *            实有人口id
+     * @return 实有人口详情
+     */
+    R detailPopulation(Long populationId, Long communityId);
+
+    /**
+     * 分页查询实有人口
+     * 
+     * @param comMngPopulationVO
+     *            查询参数
+     * @return 分页集合
+     */
+    R pagePopulation(ComMngPopulationDTO comMngPopulationVO);
+
+    /**
+     * 老人导出
+     *
+     * @param comMngPopulationVO
+     *            查询参数
+     * @return 分页集合
+     */
+    R exportOld(ComMngPopulationDTO comMngPopulationVO);
+
+    /**
+     * 查询平台所有的实有人口
+     * 
+     * @return 实有人口集合 按照创建顺序倒序排列
+     */
+    R listPopulationAll();
+
+    /**
+     * 删除实有人口
+     * 
+     * @param populationId
+     *            实有人口id
+     * @return 删除结果
+     */
+    R deletePopulation(Long populationId);
+
+    /**
+     * 导入实有人口
+     * 
+     * @param list
+     * @param communityId
+     * @return
+     */
+    R listSavePopulation(List<ComMngPopulationServeExcelVO> list, Long communityId, Long userId);
+
+    /**
+     * 导入吸毒人员
+     * 
+     * @param list
+     * @param communityId
+     * @return
+     */
+    R listSaveDrugPopulation(List<ComMngPopulationDrugExcelVO> list, Long communityId, Long userId);
+
+    /**
+     * 批量导入社区矫正人员
+     *
+     * @param list
+     *            社区矫正人员数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    R listSaveCorrectPopulation(List<ComMngPopulationCorrectExcelVO> list, Long communityId, Long userId);
+
+    /**
+     * 批量导入重精人员
+     *
+     * @param list
+     *            重精人员数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    R listSaveMajorPopulation(List<ComMngPopulationMajorExcelVO> list, Long communityId, Long userId);
+
+    /**
+     * 批量导入邪教人员
+     *
+     * @param list
+     *            邪教人员数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    R listSaveCultPopulation(List<ComMngPopulationCultExcelVO> list, Long communityId, Long userId);
+
+    /**
+     * 批量导入刑释人员
+     *
+     * @param list
+     *            刑释人员数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    R listSaveRehabilitationPopulation(List<ComMngPopulationRehabilitationExcelVO> list, Long communityId, Long userId);
+
+    /**
+     * 批量导入重点上访人员
+     *
+     * @param list
+     *            重点上访人员数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    R listSaveKeyPopulation(List<ComMngPopulationKeyExcelVO> list, Long communityId, Long userId);
+
+    /**
+     * 批量导入服刑人员
+     *
+     * @param list
+     *            服刑人员数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    R listSaveSentencePopulation(List<ComMngPopulationSentenceExcelVO> list, Long communityId, Long userId);
+
+    /**
+     * 批量导入退役军人
+     *
+     * @param list
+     *            退役军人数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    R listSaveVeteransPopulation(List<ComMngPopulationVeteransExcelVO> list, Long communityId, Long userId);
+
+    /**
+     * 批量导入残疾人
+     *
+     * @param list
+     *            残疾人数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    R listSaveDisabilityPopulation(List<ComMngPopulationDisabilityExcelVO> list, Long communityId, Long userId);
+
+    /**
+     * 批量导入低保户
+     *
+     * @param list
+     *            低保户数据
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    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
+     *            用户信息
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    R listSavePopulationConfirm(List<ComMngPopulationServeExcelVO> list, Long communityId);
+
+    /**
+     * 根据实有人口id修改用户标签
+     *
+     * @param populationTagDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    R editTagPopulation(ComMngPopulationTagDTO populationTagDTO);
+
+    /**
+     * 批量删除实有人口
+     *
+     * @param ids
+     *            实有人口id集合
+     * @return 删除结果
+     */
+    R deletePopulations(List<Long> ids, Long communityId);
+
+    /**
+     * 根据社区id查询所有实有人口
+     *
+     * @param communityId
+     *            社区id
+     * @return 查询结果
+     */
+    R getPopulationListByCommunityId(Long communityId);
+
+    /**
+     * 根据id集合查询实有人口
+     *
+     * @param Ids
+     *            实有人口id集合
+     * @return 查询结果
+     */
+    R getPopulationLists(List<Long> Ids);
+
+    /**
+     * 根据小区id查询实有人口
+     *
+     * @param villageId
+     *            小区id
+     * @return 查询结果
+     */
+    R getPopulationListByVillageId(Long villageId);
+
+    /**
+     * 编辑实有人口
+     *
+     * @param populationEditDTO
+     * @param communityId
+     * @return
+     */
+    R editPopulation(ComMngPopulationEditDTO populationEditDTO, Long communityId) throws Exception;
+
+    /**
+     * 分页查询特殊群体
+     *
+     * @param pageInputUserDTO
+     *            请求参数
+     * @return 特殊群体列表
+     */
+    R specialInputUser(PageInputUserDTO pageInputUserDTO);
+
+    /**
+     * 删除特殊群体人员
+     *
+     * @param id
+     *            特殊群体id
+     * @return 删除结果
+     */
+    R deleteSpecialInputUser(Long id,Long communityId);
+
+    /**
+     * 基础数据》特殊群体》分页查询标签列表
+     * 
+     * @param comMngUserTagDTO
+     * @return
+     */
+    R specialInputUserTags(PageInputUserDTO comMngUserTagDTO);
+
+    /**
+     * 新增或修改特殊群体标签
+     * 
+     * @param comMngTagVO
+     * @return
+     */
+    R saveSpecialInputUserTags(ComMngTagVO comMngTagVO);
+
+    /**
+     * 删除特殊群体标签
+     * 
+     * @param id
+     * @return
+     */
+    R deleteSpecialInputUserTags(Long id);
+
+    /**
+     * 查询实有人口电子档信息
+     *
+     * @param populationId
+     *            实有人口id
+     * @return 实有人口电子档信息
+     */
+    R electronicArchivesPopulation(Long populationId);
+
+    /**
+     * 编辑电子档案
+     * 
+     * @param userElectronicFileVO
+     * @return
+     */
+    R editUserElectronicFile(UserElectronicFileVO userElectronicFileVO);
+
+    /**
+     * 实有人口统计
+     * 
+     * @param communityId
+     *            社区id
+     * @return 统计结果
+     */
+    R getPopulationTotalByAdmin(Long communityId);
+
+    /**
+     * 首页大屏统计接口
+     * 
+     * @param communityId
+     *            社区id
+     * @return 统计结果
+     */
+    R getScreenIndex(Long communityId);
+
+    /**
+     * 事件大屏统计接口
+     * 
+     * @param screenEventDTO
+     *            请求参数
+     * @return 统计结果
+     */
+    R getScreenEvent(BigScreenEventDTO screenEventDTO);
+
+    /**
+     * 民生大屏统计接口
+     * 
+     * @param communityId
+     *            社区id
+     * @return 统计结果
+     */
+    R getScreenCivil(Long communityId);
+
+    /**
+     * description 根据身份证信息修改用户标签信息
+     *
+     * @param comMngPopulationTagCardNoDTO
+     *            查询对象
+     * @return ComMngPopulationDO 实有人口信息
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    R editTagPopulationByCardNo(ComMngPopulationTagCardNoDTO comMngPopulationTagCardNoDTO);
+
+    /**
+     * description 根据身份证信息从实有人口表查询对应信息
+     *
+     * @param cardNo
+     *            身份证号码
+     * @return ComMngPopulationDO 实有人口信息
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    ComMngPopulationDO getPopulationByCardNo(String cardNo);
+
+    /**
+     * 大屏统计实有人口
+     * 
+     * @param communityId
+     * @return
+     */
+    R screenStatistic(Long communityId);
+
+    /**
+     * 获取社区网格
+     *
+     * @param communityId
+     *            社区id
+     * @return 网格数据
+     */
+    R getScreenGirds(Long communityId);
+
+    /**
+     * 事件大屏查询事件详情
+     *
+     * @param eventDetailDTO
+     *            请求参数
+     * @return 事件详情
+     */
+    R getScreenEventDetail(BigScreenEventDetailDTO eventDetailDTO);
+
+    /**
+     * 获取人口数据信息
+     *
+     * @param populationListDTO
+     *            请求参数
+     * @return 人口数据
+     */
+    R pagePopulationListApp(PagePopulationListDTO populationListDTO);
+
+    /**
+     * 根据人口id获取人口详情
+     *
+     * @param populationId
+     *            人口id
+     * @return 人口详情
+     */
+    R getPopulationDetailApp(Long populationId);
+
+    /**
+     * 修复人口加密问题
+     *
+     * @return 修复结果
+     */
+    R getPopulationRepairByApp();
+
+    /**
+     * 综治后台-居民列表
+     * 
+     * @param populationListDTO
+     *            请求参数
+     * @return 居民列表
+     */
+    R getGridPopulationAdminList(ComMngPopulationListDTO populationListDTO);
+
+    /**
+     * 综治后台-删除居民
+     * 
+     * @param ids
+     *            居民id集合
+     * @return 删除结果
+     */
+    R delGridPopulationAdmin(List<Long> ids);
+
+    /**
+     * 查询平台人口列表
+     * 
+     * @param populationDTO
+     *            请求参数
+     * @return 人口列表
+     */
+    R getBuildingHousePopulationList(PageComMngPopulationDTO populationDTO);
+
+    R binding();
+
+    /**
+     * 综治后台-居民标签栏统计
+     * 
+     * @return 居民统计
+     */
+    R getGridPopulationStatistics(Long communityId);
+
+    /**
+     * 综治后台-居民导出查询居民数据
+     * 
+     * @param populationExportDTO
+     *            请求参数
+     * @return 导出结果
+     */
+    R getGridPopulationExport(ComMngPopulationExportDTO populationExportDTO);
+
+    /**
+     * 综治后台-居民管理小区列表
+     * 
+     * @param name
+     *            小区名字
+     * @return 小区列表
+     */
+    R relationVillage(String name);
+
+    R getVillagePopulationAdmin(PageComMngVillagePopulationDTO villagePopulationDTO);
+
+    /**
+     * 导出特殊人群
+     * @param PageInputUserDTO
+     * @return
+     */
+    R specialInputUserExport(PageInputUserDTO PageInputUserDTO);
+
+    /**
+     * 西区大屏治理数据
+     * @return
+     */
+    R westScreenStatics();
+
+    R getComprehensivePopulationStatics(Long streetId);
+
+    R getComprehensiveStreetList();
+
+    /**
+     * 新版大屏首页
+     * @param communityId
+     * @return
+     */
+    R indexInfo(Long communityId);
+
+    /**
+     * 历史数据人员类型填充
+     * @param newVoList
+     * @param communityId
+     * @param userId
+     * @return
+     */
+    R filledPopulationPersonType(List<ComMngPopulationServeExcelVO> newVoList, Long communityId, Long userId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngProvinceService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngProvinceService.java
new file mode 100644
index 0000000..389b944
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngProvinceService.java
@@ -0,0 +1,54 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.vos.R;
+
+/**
+ * @description: 行政区域接口
+ * @author: Null
+ * @date: 2021/3/20 23:37
+ */
+public interface ComMngProvinceService {
+
+    /**
+     * 查询所有省份
+     * 
+     * @return
+     */
+    R getProvince();
+
+    /**
+     * 查询省份下所有的城市
+     * 
+     * @param provinceAdcode
+     * @return
+     */
+    R getCityByProvinceCode(Integer provinceAdcode);
+
+    /**
+     * 查询城市下所有的区县
+     * 
+     * @param cityAdcode
+     * @return
+     */
+    R getDistrictByCityCode(Integer cityAdcode);
+
+    /**
+     * 获取省下的所有区域 tree结构
+     * 
+     * @param provinceAdcode
+     * @param areaCode
+     * @return
+     */
+    R getCityTreeByProvinceCode(Integer provinceAdcode, String areaCode);
+
+
+
+    /**
+     * 获取省下的所有区域 tree结构 基层公开用
+     *
+     * @param provinceAdcode
+     * @param areaCode
+     * @return
+     */
+    R getCityTreeByCode(Integer provinceAdcode, String areaCode,String appId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngRealAssetsService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngRealAssetsService.java
new file mode 100644
index 0000000..6e6461b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngRealAssetsService.java
@@ -0,0 +1,61 @@
+package com.panzhihua.service_community.service;
+
+import java.util.List;
+
+import com.panzhihua.common.model.dtos.community.ExportRealAssetsExcelDTO;
+import com.panzhihua.common.model.dtos.community.PageComMngRealAssetsDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngRealAssetsExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngRealAssetsVO;
+
+public interface ComMngRealAssetsService {
+
+    /**
+     * 社区后台实有资产管理列表
+     * 
+     * @param pageComMngRealAssetsDTO
+     * @return
+     */
+    R pageQueryComMngRealAssets(PageComMngRealAssetsDTO pageComMngRealAssetsDTO);
+
+    /**
+     * 社区后台添加修改实有资产
+     * 
+     * @param comMngRealAssetsVO
+     * @return
+     */
+    R saveComMngRealAssets(ComMngRealAssetsVO comMngRealAssetsVO);
+
+    /**
+     * 社区后台删除实有资产
+     * 
+     * @param id
+     * @return
+     */
+    R deleteComMngRealAssets(Long id);
+
+    /**
+     * 实有资产详情
+     * 
+     * @param id
+     * @return
+     */
+    R detailComMngRealAssets(Long id);
+
+    /**
+     * 导入实有资产
+     * 
+     * @param list
+     * @param communityId
+     * @return
+     */
+    R listSaveMngRealAssetsExcelVO(List<ComMngRealAssetsExcelVO> list, Long communityId);
+
+    /**
+     * 导出实有资产
+     * 
+     * @param exportRealAssetsExcelDTO
+     * @return
+     */
+    R exportRealAssetsExcel(ExportRealAssetsExcelDTO exportRealAssetsExcelDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngRealCompanyService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngRealCompanyService.java
new file mode 100644
index 0000000..653acad
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngRealCompanyService.java
@@ -0,0 +1,79 @@
+package com.panzhihua.service_community.service;
+
+import java.util.List;
+
+import com.panzhihua.common.model.dtos.community.ComMngRealCompanyBelongsDTO;
+import com.panzhihua.common.model.dtos.community.ExportRealCompanyExcelDTO;
+import com.panzhihua.common.model.dtos.community.PageComMngRealCompanyDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngRealCompanyExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngRealCompanyVO;
+
+public interface ComMngRealCompanyService {
+
+    /**
+     * 社区后台实有单位管理列表
+     * 
+     * @param pageComMngRealCompanyDTO
+     * @return
+     */
+    R pageQueryComMngRealCompany(PageComMngRealCompanyDTO pageComMngRealCompanyDTO);
+
+    /**
+     * 社区后台添加修改实有单位
+     * 
+     * @param comMngRealCompanyVO
+     * @return
+     */
+    R saveComMngRealCompany(ComMngRealCompanyVO comMngRealCompanyVO);
+
+    /**
+     * 社区后台删除实有单位
+     * 
+     * @param id
+     * @return
+     */
+    R deleteComMngRealCompany(Long id);
+
+    /**
+     * 实有单位详情
+     * 
+     * @param id
+     * @return
+     */
+    R detailComMngRealCompany(Long id);
+
+    /**
+     * 导入实有单位
+     * 
+     * @param list
+     * @param communityId
+     * @return
+     */
+    R listSaveMngRealCompanyExcelVO(List<ComMngRealCompanyExcelVO> list, Long communityId);
+
+    /**
+     * 导出实有单位
+     * 
+     * @param exportRealCompanyExcelDTO
+     * @return
+     */
+    R exportRealCompanyExcel(ExportRealCompanyExcelDTO exportRealCompanyExcelDTO);
+
+    /**
+     * 实有单位详情
+     * 
+     * @param comMngRealCompanyBelongsDTO
+     * @return
+     */
+    R belongsComMngRealCompany(ComMngRealCompanyBelongsDTO comMngRealCompanyBelongsDTO);
+
+    /**
+     * 社区后台实有单位统计
+     *
+     * @param communityId
+     *            社区id
+     * @return 统计结果
+     */
+    R getComMngRealCompanyTotalByAdmin(Long communityId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngStructAreaDistrictService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngStructAreaDistrictService.java
new file mode 100644
index 0000000..4489224
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngStructAreaDistrictService.java
@@ -0,0 +1,21 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.vos.R;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 地址
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-27 15:01
+ **/
+public interface ComMngStructAreaDistrictService {
+    /**
+     * 查询城市下属所有地区列表
+     * 
+     * @param cityAdcode
+     *            城市地址编码
+     * @return 地区列表
+     */
+    R listAreaDistrict(Long cityAdcode);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngStructAreaService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngStructAreaService.java
new file mode 100644
index 0000000..203778d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngStructAreaService.java
@@ -0,0 +1,109 @@
+package com.panzhihua.service_community.service;
+
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngStructAreaVO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 小区
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-15 15:48
+ **/
+public interface ComMngStructAreaService {
+    /**
+     * 新增小区
+     * 
+     * @param comMngStructAreaVO
+     *            小区信息
+     * @return 新增结果
+     */
+    @PostMapping("addarea")
+    R addArea(@RequestBody ComMngStructAreaVO comMngStructAreaVO);
+
+    /**
+     * 分页查询小区
+     * 
+     * @param comMngStructAreaVO
+     *            查询参数
+     * @return 分页结果
+     */
+    @PostMapping("pagearea")
+    R pageArea(@RequestBody ComMngStructAreaVO comMngStructAreaVO);
+
+    /**
+     * 编辑小区
+     * 
+     * @param comMngStructAreaVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    R putArea(ComMngStructAreaVO comMngStructAreaVO);
+
+    /**
+     * 删除小区
+     * 
+     * @param comMngStructAreaVO
+     *            地址编码
+     * @return 删除结果
+     */
+    R deleteArea(ComMngStructAreaVO comMngStructAreaVO);
+
+    /**
+     * 查询小区信息
+     * 
+     * @param areaCode
+     *            小区地址编码
+     * @return 小区信息
+     */
+    R selectAreaByAreaCode(String areaCode);
+
+    /**
+     * 获取小区的地址编码
+     * 
+     * @param areaId
+     *            小区id
+     * @return 小区地址编码
+     */
+    R selectAreaById(Long areaId);
+
+    /**
+     * 查询小区
+     * 
+     * @param communityId
+     *            社区id
+     * @return 小区集合
+     */
+    R listArea(Long communityId);
+
+    /**
+     * 小区详情
+     * 
+     * @param areaId
+     *            小区id
+     * @return 小区信息
+     */
+    R detailArea(Long areaId);
+
+    /**
+     * 选择导入的小区
+     * 
+     * @param param
+     *            小区名字 模糊查询
+     * @param communityId
+     *            社区id
+     * @return 小区集合 ComMngStructAreaVO
+     */
+    R listAreas(String param, Long communityId);
+
+    /**
+     * 检查小区是否已经批量设置过房屋并且返回小区房屋门号规则
+     * 
+     * @param id
+     *            小区id
+     * @return ComMngStructAreaVO
+     */
+    R checkAreaHouse(Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngStructHouseService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngStructHouseService.java
new file mode 100644
index 0000000..2377908
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngStructHouseService.java
@@ -0,0 +1,117 @@
+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.BatchhouseVO;
+import com.panzhihua.common.model.vos.community.ComMngStructAreaVO;
+import com.panzhihua.common.model.vos.community.ComMngStructHouseVO;
+import com.panzhihua.service_community.model.dos.ComMngStructAreaDO;
+import com.panzhihua.service_community.model.dos.ComMngStructHouseDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 房屋
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-15 15:06
+ **/
+public interface ComMngStructHouseService extends IService<ComMngStructHouseDO> {
+    /**
+     * 房屋信息
+     * 
+     * @param userId
+     *            用户id
+     * @return 房屋信息
+     */
+    R detailHouse(Long userId);
+
+    /**
+     * 小区批量建房
+     * 
+     * @param batchhouseVO
+     *            建房参数
+     * @return 建房结果
+     */
+    R batchHouse(BatchhouseVO batchhouseVO);
+
+    /**
+     * 新增小区地址
+     * 
+     * @param comMngStructAreaVO
+     *            小区地址
+     */
+    R addHouseArea(ComMngStructAreaVO comMngStructAreaVO);
+
+    /**
+     * 先删除小区小面所有房屋、删除用户和小区房屋的绑定关系
+     * 
+     * @param comMngStructAreaVO
+     *            小区地址编码
+     * @return 删除结果
+     */
+    R batchDeleteHouse(ComMngStructAreaVO comMngStructAreaVO);
+
+    /**
+     * 展示下级建筑
+     * 
+     * @param houseCode
+     *            房屋编号
+     * @return 下级建筑列表
+     */
+    R listSubordinatebuilding(String houseCode);
+
+    /**
+     * 添加同级地址
+     * 
+     * @param batchhouseVO
+     *            添加参数
+     * @param comMngStructAreaDO
+     *            小区信息-规则
+     * @return 添加结果
+     */
+    R addHouse(BatchhouseVO batchhouseVO, ComMngStructAreaDO comMngStructAreaDO);
+
+    /**
+     * 编辑地址
+     * 
+     * @param comMngStructHouseVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    R putHouse(ComMngStructHouseVO comMngStructHouseVO);
+
+    /**
+     * 删除地址
+     * 
+     * @param comMngStructHouseVO
+     *            删除指定地址和所有下级
+     * @return 删除结果
+     */
+    R deleteHouse(ComMngStructHouseVO comMngStructHouseVO);
+
+    /**
+     * 房屋地址下拉列表
+     * 
+     * @param parentCode
+     *            父级编码
+     * @return 下级列表
+     */
+    R putVolunteerPhone(String parentCode);
+
+    /**
+     * 新增房屋
+     * 
+     * @param comMngStructHouseVO
+     *            房屋信息
+     * @return 新增结果
+     */
+    R addHouses(ComMngStructHouseVO comMngStructHouseVO);
+
+    /**
+     * 导出小区房屋信息
+     * 
+     * @param areaId
+     * @return
+     */
+    R houseExport(Long areaId);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngStructOtherBuildService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngStructOtherBuildService.java
new file mode 100644
index 0000000..0ae9edf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngStructOtherBuildService.java
@@ -0,0 +1,83 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.SystemmanagementConfigVO;
+import com.panzhihua.common.model.vos.community.ComMngStructOtherBuildVO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 其他建筑
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-16 15:27
+ **/
+public interface ComMngStructOtherBuildService {
+    /**
+     * 新增其他建筑
+     *
+     * @param comMngStructOtherBuildVO
+     *            建筑参数
+     * @return 新增结果
+     */
+    R addOtherbuild(ComMngStructOtherBuildVO comMngStructOtherBuildVO);
+
+    /**
+     * 查询所有建筑类型
+     * 
+     * @return 类型列表
+     */
+    R listBuildType(Long communityId);
+
+    /**
+     * 分页查询 其他建筑
+     * 
+     * @param comMngStructOtherBuildVO
+     *            分页查询参数
+     * @return 查询结果
+     */
+    R pageOtherBuild(ComMngStructOtherBuildVO comMngStructOtherBuildVO);
+
+    /**
+     * 建筑类型
+     * 
+     * @param communityId
+     *            社区id
+     * @return 建筑集合
+     */
+    R listComMngStructBuildType(Long communityId);
+
+    /**
+     * 增加删除建筑类型
+     * 
+     * @param systemmanagementConfigVO
+     *            操作内容
+     * @return 操作结果
+     */
+    R putComMngStructBuildType(SystemmanagementConfigVO systemmanagementConfigVO);
+
+    /**
+     * 其他建筑详情
+     * 
+     * @param id
+     *            主键id
+     * @return 建筑内容
+     */
+    R detailOtherbuild(Long id);
+
+    /**
+     * 编辑其他建筑
+     * 
+     * @param comMngStructOtherBuildVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    R putOtherbuild(ComMngStructOtherBuildVO comMngStructOtherBuildVO);
+
+    /**
+     * 删除其他建筑
+     * 
+     * @param id
+     *            主键
+     * @return 删除结果
+     */
+    R deleteOtherbuild(Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngVaccinesEnrollRecordService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngVaccinesEnrollRecordService.java
new file mode 100644
index 0000000..8f7d62f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngVaccinesEnrollRecordService.java
@@ -0,0 +1,51 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.vaccines.VaccinesEnrollByAdminDTO;
+import com.panzhihua.common.model.dtos.vaccines.VaccinesEnrollByAppDTO;
+import com.panzhihua.common.model.dtos.vaccines.VaccinesEnrollUserByAppDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.ComMngVaccinesEnrollRecordDO;
+
+/**
+ * @auther lyq
+ * @create 2021-05-19 14:17:53
+ * @describe 疫苗报名记录表服务类
+ */
+public interface ComMngVaccinesEnrollRecordService extends IService<ComMngVaccinesEnrollRecordDO> {
+
+    /**
+     * 小程序-疫苗类型对应家庭成员接种列表
+     * 
+     * @return 疫苗类型对应家庭成员接种列表
+     */
+    R getVaccinesUserListByApp(VaccinesEnrollUserByAppDTO enrollUserByAppDTO);
+
+    /**
+     * 用户疫苗报名
+     * 
+     * @param enrollByAppDTO
+     *            请求参数
+     * @return 报名结果
+     */
+    R VaccinesEnrollByApp(VaccinesEnrollByAppDTO enrollByAppDTO);
+
+    /**
+     * 查询疫苗登记列表
+     * 
+     * @param vaccinesByAdminDTO
+     *            请求参数
+     * @return 登记列表
+     */
+    R getVaccinesEnrollListByAdmin(VaccinesEnrollByAdminDTO vaccinesByAdminDTO);
+
+    /**
+     * 根据条件导出疫苗登记记录
+     * 
+     * @param vaccinesByAdminDTO
+     *            请求参数
+     * @return 导出登记列表
+     */
+    R exportVaccinesEnrollListByAdmin(VaccinesEnrollByAdminDTO vaccinesByAdminDTO);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngVaccinesInoculationRecordService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngVaccinesInoculationRecordService.java
new file mode 100644
index 0000000..983e634
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngVaccinesInoculationRecordService.java
@@ -0,0 +1,42 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.vaccines.VaccinesInoculationByAdminDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.ComMngVaccinesInoculationRecordDO;
+
+/**
+ * @auther lyq
+ * @create 2021-05-19 14:17:59
+ * @describe 疫苗接种记录表服务类
+ */
+public interface ComMngVaccinesInoculationRecordService extends IService<ComMngVaccinesInoculationRecordDO> {
+
+    /**
+     * 小程序-查询用户家庭成员接种记录
+     * 
+     * @param userId
+     *            用户id
+     * @return 用户家庭成员接种记录
+     */
+    R getVaccinesUserInoculationListByApp(Long userId);
+
+    /**
+     * 查询接种记录列表
+     * 
+     * @param inoculationByAdminDTO
+     *            请求参数
+     * @return 接种记录列表
+     */
+    R getVaccinesInoculationListByAdmin(VaccinesInoculationByAdminDTO inoculationByAdminDTO);
+
+    /**
+     * 接种记录信息导出
+     * 
+     * @param inoculationByAdminDTO
+     *            请求参数
+     * @return 导出结果
+     */
+    R exportVaccinesInoculationListByAdmin(VaccinesInoculationByAdminDTO inoculationByAdminDTO);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngVaccinesService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngVaccinesService.java
new file mode 100644
index 0000000..ef5c01c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngVaccinesService.java
@@ -0,0 +1,65 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.vaccines.VaccinesByAdminDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.ComMngVaccinesDO;
+
+/**
+ * @auther lyq
+ * @create 2021-05-19 14:17:46
+ * @describe 疫苗分类表服务类
+ */
+public interface ComMngVaccinesService extends IService<ComMngVaccinesDO> {
+
+    /**
+     * 小程序-查询疫苗分类列表
+     * 
+     * @return 疫苗分类列表
+     */
+    R getVaccinesListByApp();
+
+    /**
+     * 后台管理-查询疫苗分类列表
+     * 
+     * @param vaccinesByAdminDTO
+     *            请求参数
+     * @return 疫苗分类列表
+     */
+    R getVaccinesListByAdmin(VaccinesByAdminDTO vaccinesByAdminDTO);
+
+    /**
+     * 修改疫苗分类信息
+     * 
+     * @param vaccinesByAdminDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    R editVaccinesByAdmin(VaccinesByAdminDTO vaccinesByAdminDTO);
+
+    /**
+     * 新增疫苗分类信息
+     * 
+     * @param vaccinesByAdminDTO
+     *            请求参数
+     * @return 新增结果
+     */
+    R addVaccinesByAdmin(VaccinesByAdminDTO vaccinesByAdminDTO);
+
+    /**
+     * 删除疫苗分类信息
+     * 
+     * @param id
+     *            疫苗分类id
+     * @return 删除结果
+     */
+    R deleteVaccinesByAdmin(Long id);
+
+    /**
+     * 疫苗分类列表
+     * 
+     * @return 疫苗分类列表
+     */
+    R getEnrollTypeListByAdmin();
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngVillageService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngVillageService.java
new file mode 100644
index 0000000..cc0e66b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngVillageService.java
@@ -0,0 +1,126 @@
+package com.panzhihua.service_community.service;
+
+import java.util.List;
+
+import com.panzhihua.common.model.dtos.community.PageComMngVillageDTO;
+import com.panzhihua.common.model.dtos.grid.ComMngVillageListAppDTO;
+import com.panzhihua.common.model.dtos.grid.admin.ComMngVillageListExportAdminDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngVillageServeExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngVillageVO;
+import com.panzhihua.service_community.model.dos.ComMngVillageDO;
+
+/**
+ * @author: llming
+ * @description: 实有房屋(小区)
+ **/
+public interface ComMngVillageService {
+    /**
+     * 添加实有房屋
+     * 
+     * @param comMngVillageVO
+     *            实有房屋
+     * @return 新增结果
+     */
+    R addComActVillage(ComMngVillageVO comMngVillageVO);
+
+    /**
+     * 查询实有房屋
+     * 
+     * @param comMngVillageVO
+     *            登录人的经纬度、或者指定区域的社区
+     * @return 社区集合
+     */
+    R listComActVillage(ComMngVillageVO comMngVillageVO);
+
+    /**
+     * 根据房屋id查询实有房屋
+     *
+     * @param villageId
+     *            查询条件
+     * @return 查询结果
+     */
+    ComMngVillageDO getVillageById(Long villageId);
+
+    /**
+     * 分页查询实有房屋
+     * 
+     * @param pageComMngVillageDTO
+     *            查询参数
+     * @return 分页集合
+     */
+    R pageComActVillage(PageComMngVillageDTO pageComMngVillageDTO);
+
+    /**
+     * 删除实有房屋
+     * 
+     * @param Ids
+     *            实有房屋ids
+     * @return 删除结果
+     */
+    R delecComActVillage(List<Long> Ids);
+
+    /**
+     * 批量导入实有房屋
+     * 
+     * @param list
+     * @param communityId
+     * @return
+     */
+    R listSaveVillage(List<ComMngVillageServeExcelVO> list, Long communityId);
+
+    /**
+     * 实有房屋编辑
+     * 
+     * @param villageId
+     * @param comMngVillageVO
+     * @return
+     */
+    R editVillage(Long villageId, ComMngVillageVO comMngVillageVO);
+
+    /**
+     * 统计社区内小区数量
+     * 
+     * @param communityId
+     *            社区id
+     * @return 统计小区数量
+     */
+    R villageStatistics(Long communityId);
+
+    /**
+     * 小区详情
+     * 
+     * @param villageId
+     *            小区id
+     * @return 小区详情
+     */
+    R getVillage(Long villageId);
+
+    /**
+     * 小区列表
+     * 
+     * @param villageListAppDTO
+     *            请求参数
+     * @return 小区列表
+     */
+    R getGridVillageList(ComMngVillageListAppDTO villageListAppDTO);
+
+
+    R getGridVillageListApp(ComMngVillageListAppDTO villageListAppDTO);
+
+    /**
+     * 小区下楼栋列表
+     * 
+     * @param villageId
+     *            小区id
+     * @return 小区下楼栋列表
+     */
+    R getGridVillageBuildingList(Long villageId);
+
+    R delGridVillage(List<Long> villageIds);
+
+    R getGridVillageStatistics();
+
+    R getGridVillageListExport(ComMngVillageListExportAdminDTO villageListAppDTO);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngVolunteerMngService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngVolunteerMngService.java
new file mode 100644
index 0000000..e3f563e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngVolunteerMngService.java
@@ -0,0 +1,136 @@
+package com.panzhihua.service_community.service;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngVolunteerMngVO;
+import com.panzhihua.common.model.vos.community.TodoEventsVO;
+import com.panzhihua.common.model.vos.community.volunteer.ComMngVolunteerExcelVO;
+import com.panzhihua.common.model.vos.user.UserPhoneVO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 志愿者
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-17 09:23
+ **/
+public interface ComMngVolunteerMngService {
+    /**
+     * 增加志愿者
+     *
+     * @param comMngVolunteerMngVO
+     *            志愿者信息
+     * @return 增加结果
+     */
+    R addVolunteer(ComMngVolunteerMngVO comMngVolunteerMngVO);
+
+    /**
+     * 删除志愿者
+     *
+     * @param comMngVolunteerMngVO
+     *            手机号
+     * @return 删除结果
+     */
+    R deleteVolunteer(ComMngVolunteerMngVO comMngVolunteerMngVO);
+
+    /**
+     * 编辑志愿者
+     *
+     * @param comMngVolunteerMngVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    R putVolunteer(ComMngVolunteerMngVO comMngVolunteerMngVO);
+
+    /**
+     * 分页展示志愿者
+     *
+     * @param comMngVolunteerMngVO
+     *            查询参数
+     * @return 分页集合返回
+     */
+    R pageVolunteer(ComMngVolunteerMngVO comMngVolunteerMngVO);
+
+    /**
+     * 分页展示志愿者审核
+     *
+     * @param comMngVolunteerMngVO
+     *            查询参数
+     * @return 查询结果
+     */
+    R pageVolunteerExamine(ComMngVolunteerMngVO comMngVolunteerMngVO);
+
+    /**
+     * 志愿者审核详情
+     *
+     * @param id
+     *            主键
+     * @return 详情
+     */
+    R detailVolunteerExamine(Long id);
+
+    /**
+     * 志愿者审核
+     *
+     * @param comMngVolunteerMngVO
+     *            审核操作
+     * @return 审核结果
+     */
+    R putVolunteerExamine(ComMngVolunteerMngVO comMngVolunteerMngVO);
+
+    /**
+     * 删除志愿者审核
+     *
+     * @param comMngVolunteerMngVO
+     *            主键
+     * @return 删除结果
+     */
+    R deleteVolunteerExamine(ComMngVolunteerMngVO comMngVolunteerMngVO);
+
+    /**
+     * 用户修改手机号对应的志愿者手机号也要修改
+     *
+     * @param userPhoneVO
+     *            新旧手机号
+     * @return 修改结果
+     */
+    R putVolunteerPhone(UserPhoneVO userPhoneVO);
+
+    /**
+     * 志愿者详情
+     *
+     * @param id
+     *            主键
+     * @return 志愿者
+     */
+    R detailVolunteer(Long id);
+
+    /**
+     * 社区后台数据看板
+     *
+     * @param communityId
+     *            社区id
+     * @param userId
+     *            用户id
+     * @return 人脸采集和志愿者审核集合
+     */
+    List<TodoEventsVO> selectNeedToDo(Long communityId, Long userId);
+
+    /**
+     * 获取志愿者详情
+     *
+     * @param id
+     * @return
+     */
+    R getVolunteerById(Long id);
+
+    /**
+     * 志愿者导入
+     *
+     * @param list        志愿者数据列表
+     * @param communityId 社区id
+     * @param userId      用户id
+     * @return 导入结果
+     */
+    R importVolunteerAdmin(List<ComMngVolunteerExcelVO> list, Long communityId, Long userId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngVolunteerOrgTeamService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngVolunteerOrgTeamService.java
new file mode 100644
index 0000000..f879777
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngVolunteerOrgTeamService.java
@@ -0,0 +1,68 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+
+/**
+ * 志愿者组织队伍表表服务接口
+ *
+ * @author lyq
+ * @since 2021-10-30 15:51:23
+ */
+public interface ComMngVolunteerOrgTeamService {
+
+    /**
+     * 通过ID查询单条数据
+     *
+     * @param id 主键
+     * @return 实例对象
+     */
+    R queryById(Long id);
+
+    /**
+     * 分页查询
+     *
+     * @param comMngVolunteerOrgTeam 筛选条件
+     * @return 查询结果
+     */
+    R queryByPage(PageComMngVolunteerOrgTeamDto comMngVolunteerOrgTeam);
+
+    /**
+     * 新增数据
+     *
+     * @param comMngVolunteerOrgTeam 实例对象
+     * @return 实例对象
+     */
+    R insert(AddComMngVolunteerOrgTeamDto comMngVolunteerOrgTeam);
+
+    /**
+     * 修改数据
+     *
+     * @param comMngVolunteerOrgTeam 实例对象
+     * @return 实例对象
+     */
+    R update(EditComMngVolunteerOrgTeamDto comMngVolunteerOrgTeam);
+
+    /**
+     * 通过主键删除数据
+     *
+     * @param id 主键
+     * @return 是否成功
+     */
+    R deleteById(Long id);
+
+    /**
+     * 社区后台-查询志愿者组织列表
+     * @param comMngVolunteerOrgTeam    请求参数
+     * @return  志愿者组织列表
+     */
+    R queryByList(PageComMngVolunteerOrgTeamDto comMngVolunteerOrgTeam);
+
+    /**
+     * 社区后台-志愿者组织统计
+     * @param communityId   社区id
+     * @return  志愿者组织统计
+     */
+    R statisticsVolunteerOrgAdmin(Long communityId);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngVolunteerServiceTypeService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngVolunteerServiceTypeService.java
new file mode 100644
index 0000000..3b5c05e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngVolunteerServiceTypeService.java
@@ -0,0 +1,61 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+
+/**
+ * 志愿者服务类型表表服务接口
+ *
+ * @author lyq
+ * @since 2021-10-30 16:47:10
+ */
+public interface ComMngVolunteerServiceTypeService {
+
+    /**
+     * 通过ID查询单条数据
+     *
+     * @param id 主键
+     * @return 实例对象
+     */
+    R queryById(Long id);
+
+    /**
+     * 分页查询
+     *
+     * @param comMngVolunteerServiceType 筛选条件
+     * @return 查询结果
+     */
+    R queryByPage(PageComMngVolunteerServiceTypeDto comMngVolunteerServiceType);
+
+    /**
+     * 新增数据
+     *
+     * @param comMngVolunteerServiceType 实例对象
+     * @return 实例对象
+     */
+    R insert(AddComMngVolunteerServiceTypeDto comMngVolunteerServiceType);
+
+    /**
+     * 修改数据
+     *
+     * @param comMngVolunteerServiceType 实例对象
+     * @return 实例对象
+     */
+    R update(EditComMngVolunteerServiceTypeDto comMngVolunteerServiceType);
+
+    /**
+     * 通过主键删除数据
+     *
+     * @param id 主键
+     * @return 是否成功
+     */
+    R deleteById(Long id);
+
+    /**
+     * 社区后台-查询志愿者服务类型列表
+     * @param comMngVolunteerServiceType    请求参数
+     * @return  志愿者服务列表
+     */
+    R queryByList(PageComMngVolunteerServiceTypeDto comMngVolunteerServiceType);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngVolunteerSkillService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngVolunteerSkillService.java
new file mode 100644
index 0000000..6dc517f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComMngVolunteerSkillService.java
@@ -0,0 +1,61 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+
+/**
+ * 志愿者技能表表服务接口
+ *
+ * @author lyq
+ * @since 2021-10-30 16:47:36
+ */
+public interface ComMngVolunteerSkillService {
+
+    /**
+     * 通过ID查询单条数据
+     *
+     * @param id 主键
+     * @return 实例对象
+     */
+    R queryById(Long id);
+
+    /**
+     * 分页查询
+     *
+     * @param comMngVolunteerSkill 筛选条件
+     * @return 查询结果
+     */
+    R queryByPage(PageComMngVolunteerSkillDto comMngVolunteerSkill);
+
+    /**
+     * 新增数据
+     *
+     * @param comMngVolunteerSkill 实例对象
+     * @return 实例对象
+     */
+    R insert(AddComMngVolunteerSkillDto comMngVolunteerSkill);
+
+    /**
+     * 修改数据
+     *
+     * @param comMngVolunteerSkill 实例对象
+     * @return 实例对象
+     */
+    R update(EditComMngVolunteerSkillDto comMngVolunteerSkill);
+
+    /**
+     * 通过主键删除数据
+     *
+     * @param id 主键
+     * @return 是否成功
+     */
+    R deleteById(Long id);
+
+    /**
+     * 社区后台-查询志愿者技能列表
+     * @param comMngVolunteerSkill 请求参数
+     * @return  志愿者技能列表
+     */
+    R queryByList(PageComMngVolunteerSkillDto comMngVolunteerSkill);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComOpsAccRuleService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComOpsAccRuleService.java
new file mode 100644
index 0000000..ed20c34
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComOpsAccRuleService.java
@@ -0,0 +1,9 @@
+package com.panzhihua.service_community.service;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 积分
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-28 16:03
+ **/
+public interface ComOpsAccRuleService {}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComOpsAdvService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComOpsAdvService.java
new file mode 100644
index 0000000..6121258
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComOpsAdvService.java
@@ -0,0 +1,95 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.dtos.AppletesBackstageConfigDTO;
+import com.panzhihua.common.model.dtos.advertisement.ComOpsAdvDTO;
+import com.panzhihua.common.model.dtos.advertisement.PageComOpsAdvDTO;
+import com.panzhihua.common.model.vos.R;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 广告
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-28 15:41
+ **/
+public interface ComOpsAdvService {
+    /**
+     * 获取广告跳转内容配置
+     *
+     * @return 跳转内容集合
+     */
+    R getJumpContent();
+
+    /**
+     * 编辑运营后台系统配置
+     *
+     * @param appletesBackstageConfigDTO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    R putJumpContent(AppletesBackstageConfigDTO appletesBackstageConfigDTO);
+
+    /**
+     * 首页广告banner
+     *
+     * @return 广告列表
+     */
+    R listAdvertisement(Integer type);
+
+    /**
+     * 新增广告
+     *
+     * @param comOpsAdvDTO
+     * @return 新增结果
+     */
+    R addAdvertisement(ComOpsAdvDTO comOpsAdvDTO);
+
+    /**
+     * 编辑广告
+     *
+     * @param comOpsAdvDTO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    R putAdvertisement(ComOpsAdvDTO comOpsAdvDTO);
+
+    /**
+     * 广告位置下拉列表
+     *
+     * @return 位置集合
+     */
+    R listadvpos();
+
+    /**
+     * 跳转内容下拉集合
+     *
+     * @return 跳转集合
+     */
+    R listAdvjump();
+
+    /**
+     * 分页查询广告
+     *
+     * @param pageComOpsAdvDTO
+     *            查询内容
+     * @return 查询结果 ComOpsAdvVO
+     */
+    R pageAdvertisement(PageComOpsAdvDTO pageComOpsAdvDTO);
+
+    /**
+     * 广告详情
+     *
+     * @param id
+     *            主键
+     * @return 广告内容
+     */
+    R detailAdvertisement(Long id);
+
+    /**
+     * 删除广告
+     *
+     * @param id
+     *            主键
+     * @return 删除结果
+     */
+    R deleteAdvertisement(Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComOpsHouseService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComOpsHouseService.java
new file mode 100644
index 0000000..b88fae0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComOpsHouseService.java
@@ -0,0 +1,78 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.dtos.community.ComOpsHouseDTO;
+import com.panzhihua.common.model.dtos.community.PageComOpsHouseDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComOpsHouseUndercarriageVO;
+import com.panzhihua.common.model.vos.community.ComOpsHouseVO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 房屋租售
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-22 14:50
+ **/
+public interface ComOpsHouseService {
+    /**
+     * 房屋租售-新增
+     * 
+     * @param comOpsHouseDTO
+     *            新增参数
+     * @return 新增结果
+     */
+    R addHouse(ComOpsHouseDTO comOpsHouseDTO);
+
+    /**
+     * 房屋租售-详情
+     * 
+     * @param id
+     *            主键
+     * @return ComOpsHouseVO
+     */
+    R detailHouse(Long id);
+
+    /**
+     * 房屋租售-修改
+     * 
+     * @param comOpsHouseVO
+     *            修改参数
+     * @return 修改结果
+     */
+    R putHouse(ComOpsHouseVO comOpsHouseVO);
+
+    /**
+     * 房屋租售-删除
+     * 
+     * @param id
+     *            主键
+     * @return 删除结果
+     */
+    R deleteHouse(Long id);
+
+    /**
+     * 房屋租售-分页查询
+     * 
+     * @param pageComOpsHouseDTO
+     *            查询参数
+     * @return ComOpsHouseVO
+     */
+    R pageHouse(PageComOpsHouseDTO pageComOpsHouseDTO);
+
+    /**
+     * 房屋租售-上下架
+     * 
+     * @param comOpsHouseVO
+     *            上下架参数
+     * @return 上下架结果
+     */
+    R undercarriageHouse(ComOpsHouseUndercarriageVO comOpsHouseVO);
+
+    /**
+     * 房屋租售-小程序修改
+     * 
+     * @param comOpsHouseVO
+     *            修改参数
+     * @return 修改结果
+     */
+    R putHouseByApplets(ComOpsHouseVO comOpsHouseVO);
+}
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..27ce900
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPensionAuthRecordService.java
@@ -0,0 +1,141 @@
+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.ComElderAuthRecordVO;
+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);
+
+    /**
+     * 新增认证
+     * @param comElderAuthRecordVO
+     * @return
+     */
+    R add(ComElderAuthRecordVO comElderAuthRecordVO);
+}
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/ComPropertyPublicityService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPropertyPublicityService.java
new file mode 100644
index 0000000..98b8676
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPropertyPublicityService.java
@@ -0,0 +1,75 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.ComPropertyPublicityDTO;
+import com.panzhihua.common.model.dtos.community.PageComPropertyPublicityDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.ComPropertyPublicityDO;
+
+/**
+ * @title: ComPropertyPublicityService
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 物业宣传服务类
+ * @author: hans
+ * @date: 2021/11/11 13:56
+ */
+public interface ComPropertyPublicityService extends IService<ComPropertyPublicityDO> {
+
+    /**
+     * 分页查询物业宣传
+     * @param pageComPropertyPublicityDTO
+     * @return
+     */
+    R pageComPropertyPublicity(PageComPropertyPublicityDTO pageComPropertyPublicityDTO);
+
+    /**
+     * 新增物业宣传
+     * @param comPropertyPublicityDTO
+     * @return
+     */
+    R addComPropertyPublicity(ComPropertyPublicityDTO comPropertyPublicityDTO);
+
+    /**
+     * 修改物业宣传
+     * @param comPropertyPublicityDTO
+     * @return
+     */
+    R updateComPropertyPublicity(ComPropertyPublicityDTO comPropertyPublicityDTO);
+
+    /**
+     * 查看物业宣传信息
+     * @param id
+     * @return
+     */
+    R getComPropertyPublicity(Long id);
+
+    /**
+     * 删除物业宣传
+     * @param id
+     * @return
+     */
+    R deleteComPropertyPublicity(Long id);
+
+    /**
+     * 物业公司列表
+     *
+     * @param villageId
+     * @param communityId
+     * @return
+     */
+    R listProperty(Long villageId, Long communityId);
+
+    /**
+     * 分页查询物业宣传-小程序
+     * @param pageComPropertyPublicityDTO
+     * @return
+     */
+    R pageComPropertyPublicityApplet(PageComPropertyPublicityDTO pageComPropertyPublicityDTO);
+
+    /**
+     * 增加物业宣传浏览量
+     * @param id
+     * @return
+     */
+    R incrView(Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPropertyService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPropertyService.java
new file mode 100644
index 0000000..f896326
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPropertyService.java
@@ -0,0 +1,64 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.community.ComActSocialOrgVO;
+import com.panzhihua.common.model.vos.community.ComPropertyVO;
+import com.panzhihua.service_community.entity.ComProperty;
+
+/**
+ * (ComProperty)表服务接口
+ *
+ * @author makejava
+ * @since 2021-09-18 10:46:51
+ */
+public interface ComPropertyService extends IService<ComProperty> {
+    /**
+     * 分页查询
+     * @param commonPage
+     * @return
+     */
+    R pageList(CommonPage commonPage);
+
+    /**
+     * id查询详情
+     * @param id
+     * @return
+     */
+    R selectById(Long id);
+
+    /**
+     * 新增
+     * @param comPropertyVO
+     * @return
+     */
+    R insert(ComPropertyVO comPropertyVO);
+
+    /**
+     * 更新
+     * @param comPropertyVO
+     * @return
+     */
+    R update(ComPropertyVO comPropertyVO);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    R delete(Long id);
+
+    /**
+     * 物业公司详情
+     * @param id
+     * @return
+     */
+    R detailProperty(Long id);
+
+    /**
+     * 物业公司通知公告列表
+     * @param propertyId 物业公司Id
+     * */
+    R noticeList(Integer page, Integer size, Long propertyId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPropertyWorkerService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPropertyWorkerService.java
new file mode 100644
index 0000000..651abe7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComPropertyWorkerService.java
@@ -0,0 +1,51 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.property.PagePropertyWorkerDTO;
+import com.panzhihua.common.model.dtos.property.PropertyWorkerDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.ComPropertyWorker;
+
+/**
+ * 物业公司工作人员(ComPropertyWorker)表服务接口
+ *
+ * @author makejava
+ * @since 2022-04-26 09:40:00
+ */
+public interface ComPropertyWorkerService extends IService<ComPropertyWorker> {
+
+    /**
+     * 添加物业工作人员
+     * @param propertyWorkerDTO
+     * @return
+     */
+    R addPropertyWorker(PropertyWorkerDTO propertyWorkerDTO);
+
+    /**
+     * 编辑物业工作人员
+     * @param propertyWorkerDTO
+     * @return
+     */
+    R updatePropertyWorker(PropertyWorkerDTO propertyWorkerDTO);
+
+    /**
+     * 删除物业工作人员
+     * @param id
+     * @return
+     */
+    R deletePropertyWorker(Long id);
+
+    /**
+     * 分页查询物业工作人员
+     * @param pagePropertyWorkerDTO
+     * @return
+     */
+    R pagePropertyWorker(PagePropertyWorkerDTO pagePropertyWorkerDTO);
+
+    /**
+     * 物业工作人员详情
+     * @param id
+     * @return
+     */
+    R detailPropertyWorker(Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComRehabilitationPopulationService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComRehabilitationPopulationService.java
new file mode 100644
index 0000000..d2a0255
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComRehabilitationPopulationService.java
@@ -0,0 +1,13 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.model.dos.ComRehabilitationPopulationDO;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 17:40:41
+ * @describe 服务类
+ */
+public interface ComRehabilitationPopulationService extends IService<ComRehabilitationPopulationDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSanShuoEventService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSanShuoEventService.java
new file mode 100644
index 0000000..8d314c6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSanShuoEventService.java
@@ -0,0 +1,25 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.sanshuo.ComSanshuoEventDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.ComSanshuoEvent;
+
+import java.util.List;
+
+public interface ComSanShuoEventService  extends IService<ComSanshuoEvent> {
+    /**
+     * 添加或修改事件类型
+     * @param comSanshuoEvent
+     * @return  处理结果
+     * */
+    R addOrUpdate(ComSanshuoEvent comSanshuoEvent);
+
+    /**
+     * 后台获取事件类型列表
+     * @param comSanshuoEventDTO
+     * @return  处理结果
+     * */
+    R backStageList(ComSanshuoEventDTO comSanshuoEventDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSanShuoExpertService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSanShuoExpertService.java
new file mode 100644
index 0000000..98016d2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSanShuoExpertService.java
@@ -0,0 +1,63 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.sanshuo.ComSanshuoExpertDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.ComSanshuoExpert;
+
+import javax.annotation.Resource;
+
+public interface ComSanShuoExpertService extends IService<ComSanshuoExpert> {
+    /**
+     * 添加专家
+     * @param comSanshuoExpertDTO
+     * @return 处理结果
+     * */
+    R addOrUpdateExpert(ComSanshuoExpertDTO comSanshuoExpertDTO);
+
+    /**
+     * 后台获取专家列表
+     * @param page
+     * @param keyWord
+     * @param size
+     * @return 处理结果
+     * */
+    R expertPage(String keyWord, Integer page, Integer size, LoginUserInfoVO loginUserInfo,Integer level);
+
+    /**
+     * 专家风采列表
+     * @return 出列记过
+     * */
+    R expertShow(String appId);
+
+    /**
+     * 专家级别与单位范围
+     * */
+    R expertRange(LoginUserInfoVO loginUserInfo);
+
+    /**
+     * 小程序获取专家列表
+     * */
+    R selectExpertList(Integer type,Long id,Long cid);
+
+    /**
+     * 专家风采列表
+     * */
+    R expertShowList(Integer level, Long id,String appId);
+
+    /**
+     * Excel添加专家
+     * */
+    void insertExpert(ComSanshuoExpert comSanshuoExpert);
+
+    /**
+     * 新增专家后台列表
+     * */
+    R backstageList(Integer level,LoginUserInfoVO loginUserInfoVO,Integer page,Integer size,String keyWord);
+
+    /**
+     * 事件范围筛选列表
+     * */
+    R rangeList();
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSanShuoIndustryCenterService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSanShuoIndustryCenterService.java
new file mode 100644
index 0000000..3a9ab36
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSanShuoIndustryCenterService.java
@@ -0,0 +1,27 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.sanshuo.ComSanShuoIndustryCenterDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.ComSanshuoIndustryCenter;
+
+public interface ComSanShuoIndustryCenterService extends IService<ComSanshuoIndustryCenter> {
+
+    /**
+     * 后台业务中心列表
+     * @param keyWord 搜索关键字
+     * @param page
+     * @param size
+     * @return 处理结果
+     * */
+    R pageIndustryCenter(String keyWord, Integer page, Integer size);
+
+    /**
+     * 添加或修改业务中心信息
+     * @param comSanShuoIndustryCenterDTO
+     * @return 处理结果
+     * */
+    R addOrUpdate(ComSanShuoIndustryCenterDTO comSanShuoIndustryCenterDTO);
+
+    R resetPassword(ComSanshuoIndustryCenter center);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSentencePopulationService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSentencePopulationService.java
new file mode 100644
index 0000000..b08c22c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSentencePopulationService.java
@@ -0,0 +1,13 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.model.dos.ComSentencePopulationDO;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 17:41:26
+ * @describe 服务类
+ */
+public interface ComSentencePopulationService extends IService<ComSentencePopulationDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopCartService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopCartService.java
new file mode 100644
index 0000000..532e8c5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopCartService.java
@@ -0,0 +1,63 @@
+package com.panzhihua.service_community.service;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.shop.ComShopCartDTO;
+import com.panzhihua.common.model.dtos.shop.ComShopEditNubCartDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.ComShopCartDO;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:14
+ * @describe 购物车表服务类
+ */
+public interface ComShopCartService extends IService<ComShopCartDO> {
+
+    /**
+     * 根据用户id查询购物车列表信息
+     * 
+     * @param userId
+     *            用户id
+     * @return 购物车列表信息
+     */
+    R shopCartList(Long userId);
+
+    /**
+     * 购物车添加
+     * 
+     * @param comShopCartDTO
+     *            请求参数
+     * @return 添加结果
+     */
+    R shopAddCart(ComShopCartDTO comShopCartDTO);
+
+    /**
+     * 购物车内商品数量修改
+     * 
+     * @param shopEditNubCartDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    R shopEditNubCart(ComShopEditNubCartDTO shopEditNubCartDTO);
+
+    /**
+     * 删除购物车记录
+     * 
+     * @param Ids
+     *            购物车id集合
+     * @return 删除结果
+     */
+    R shopDelCart(List<Long> Ids);
+
+    /**
+     * 查询用户购物车商品数量
+     * 
+     * @param userId
+     *            用户id
+     * @return 用户购物车商品数量
+     */
+    R shopCartUserTotal(Long userId);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerEvaluateService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerEvaluateService.java
new file mode 100644
index 0000000..d53e2e6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerEvaluateService.java
@@ -0,0 +1,44 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.shop.ComShopFlowerEvaluateDTO;
+import com.panzhihua.common.model.dtos.shop.PageComShopFlowerEvaluateDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.ComShopFlowerEvaluateDO;
+import com.panzhihua.service_community.model.dos.ComShopGoodsAttrDO;
+
+/**
+ * @auther yh
+ * @create 2022-11-08 17:25:45
+ * @describe 商品评价
+ */
+public interface ComShopFlowerEvaluateService extends IService<ComShopFlowerEvaluateDO> {
+
+    /**
+     * 保存评价
+     * @param comShopFlowerEvaluateDTO
+     * @return
+     */
+    R saveEvaluate(ComShopFlowerEvaluateDTO comShopFlowerEvaluateDTO);
+
+    /**
+     * 分页查询评价
+     * @param pageComShopFlowerEvaluateDTO
+     * @return
+     */
+    R pageEvaluate(PageComShopFlowerEvaluateDTO pageComShopFlowerEvaluateDTO);
+
+    /**
+     * 评价详情
+     * @param id
+     * @return
+     */
+    R detailEvaluate(Long id);
+
+    /**
+     * 删除评价
+     * @param id
+     * @return
+     */
+    R deleteEvaluate(Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerGoodsAttrService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerGoodsAttrService.java
new file mode 100644
index 0000000..03db7b3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerGoodsAttrService.java
@@ -0,0 +1,13 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.model.dos.ComShopFlowerGoodsAttrDO;
+
+/**
+ * @ClassName: ComShopFlowerGoodsAttrService
+ * @Author: yh
+ * @Date: 2022/11/8 17:19
+ * @Description: 商品规格
+ */
+public interface ComShopFlowerGoodsAttrService extends IService<ComShopFlowerGoodsAttrDO> {
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerGoodsService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerGoodsService.java
new file mode 100644
index 0000000..d691ece
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerGoodsService.java
@@ -0,0 +1,97 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.shop.ComShopFlowerGoodsDTO;
+import com.panzhihua.common.model.dtos.shop.ComShopGoodsDTO;
+import com.panzhihua.common.model.dtos.shop.PageComShopFlowerGoodsDTO;
+import com.panzhihua.common.model.dtos.shop.PageComShopGoodsDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.shop.AddShopFlowerGoodsVO;
+import com.panzhihua.common.model.vos.shop.AddShopGoodsVO;
+import com.panzhihua.service_community.model.dos.ComShopFlowerGoodsDO;
+
+/**
+ * @ClassName: ComShopFlowerGoodsService
+ * @Author: yh
+ * @Date: 2022/11/8 17:16
+ * @Description: 商品
+ */
+public interface ComShopFlowerGoodsService extends IService<ComShopFlowerGoodsDO> {
+
+    /**
+     * 添加商品
+     *
+     * @param addShopFlowerGoodsVO
+     * @return
+     */
+    R saveShopFlowerGoods(AddShopFlowerGoodsVO addShopFlowerGoodsVO);
+
+
+    /**
+     * 商品列表-分页查询
+     *
+     * @param pageComShopFlowerGoodsDTO
+     *            查询参数
+     * @return PageShopStoreVO
+     */
+    R pageFlowerGoodsList(PageComShopFlowerGoodsDTO pageComShopFlowerGoodsDTO);
+
+    /**
+     * 分页查询商品列表
+     *
+     * @param comShopFlowerGoodsDTO
+     *            请求参数
+     * @return 商品列表
+     */
+    R pageShopFlowerGoodsByApp(ComShopFlowerGoodsDTO comShopFlowerGoodsDTO);
+
+    /**
+     * 根据商品id查询商品信息
+     *
+     * @param goodsId
+     *            商品id
+     * @return 商品信息
+     */
+    R shopFlowerGoodsDetail(Long goodsId);
+
+    /**
+     * 编辑商品
+     *
+     * @param id
+     *            商铺ID
+     * @param addShopFlowerGoodsVO
+     * @return
+     */
+    R editFlowerShopGoods(Long id, AddShopFlowerGoodsVO addShopFlowerGoodsVO);
+
+    /**
+     * 删除商品
+     *
+     * @param id
+     * @return
+     */
+    R deleteShopFlowerGoods(Long id);
+
+    /**
+     * 修改商品状态
+     *
+     * @param id
+     * @return
+     */
+    R changeStatus(Long id, Integer status);
+
+    /**
+     * 新增商品浏览量
+     * @param goodsId
+     * @return
+     */
+    R incrGoodsView(Long goodsId);
+
+    /**
+     * 统计上架的上下架商品数量
+     * @param userId
+     * @return
+     */
+    R countSaleByUserId(Long userId);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerOrderDeliveryService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerOrderDeliveryService.java
new file mode 100644
index 0000000..0cf6caf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerOrderDeliveryService.java
@@ -0,0 +1,50 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.shop.ComShopFlowerOrderDeliveryDTO;
+import com.panzhihua.common.model.dtos.shop.PageComFlowerOrderDeliveryDTO;
+import com.panzhihua.common.model.dtos.shop.PageComFlowerOrderListDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.ComShopFlowerOrderDeliveryDO;
+
+/**
+ * @auther YH
+ * @create 2022-11-08 17:25:45
+ * @describe 配送单
+ */
+public interface ComShopFlowerOrderDeliveryService extends IService<ComShopFlowerOrderDeliveryDO> {
+
+
+    /**
+     * 保存配送单
+     * @param comShopFlowerOrderDeliveryDTO
+     */
+    R saveDelivery(ComShopFlowerOrderDeliveryDTO comShopFlowerOrderDeliveryDTO);
+
+    /**
+     * 保存配送单
+     * @param comShopFlowerOrderDeliveryDTO
+     */
+    R updateDelivery(ComShopFlowerOrderDeliveryDTO comShopFlowerOrderDeliveryDTO);
+
+    /**
+     * 已配送、已送达 分页查询
+     * @param pageComFlowerOrderDeliveryDTO
+     * @return
+     */
+    R pageDelivery(PageComFlowerOrderDeliveryDTO pageComFlowerOrderDeliveryDTO);
+
+    /**
+     * 未配送 分页查询
+     * @param pageComFlowerOrderDeliveryDTO
+     * @return
+     */
+    R pageNoDelivery(PageComFlowerOrderDeliveryDTO pageComFlowerOrderDeliveryDTO);
+
+    /**
+     * 未配送-开始配送-订单列表
+     * @param pageComFlowerOrderListDTO
+     * @return
+     */
+    R pageNoDeliveryOrderList(PageComFlowerOrderListDTO pageComFlowerOrderListDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerOrderPayService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerOrderPayService.java
new file mode 100644
index 0000000..5de2284
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerOrderPayService.java
@@ -0,0 +1,22 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.shop.PageComShopFlowerOrderPayDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.ComShopFlowerOrderPayDO;
+
+/**
+ * @ClassName: ComShopFlowerOrderPayService
+ * @Author: yh
+ * @Date: 2022/11/22 10:53
+ * @Description:
+ */
+public interface ComShopFlowerOrderPayService extends IService<ComShopFlowerOrderPayDO> {
+
+    /**
+     * 分页查询出入账
+     * @param pageComShopFlowerOrderPayDTO
+     * @return
+     */
+    R pageOrderPay(PageComShopFlowerOrderPayDTO pageComShopFlowerOrderPayDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerOrderService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerOrderService.java
new file mode 100644
index 0000000..cf6bb1d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerOrderService.java
@@ -0,0 +1,186 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.shop.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.ComShopFlowerOrderDO;
+import com.panzhihua.service_community.model.dos.ComShopOrderDO;
+
+/**
+ * @auther yh
+ * @create 2022-11-08 17:25:45
+ * @describe 订单表服务类
+ */
+public interface ComShopFlowerOrderService extends IService<ComShopFlowerOrderDO> {
+
+    /**
+     * 分页搜索订单记录
+     * 
+     * @param pageComShopOrderSearchDTO
+     *            分页数据
+     * @return 分页订单
+     */
+    R pageShopOrder(PageComShopOrderSearchDTO pageComShopOrderSearchDTO);
+
+    /**
+     * 订单预览
+     * 
+     * @param orderPreviewDTO
+     *            请求参数
+     * @return 订单预览数据
+     */
+    R orderPreview(ComShopOrderPreviewDTO orderPreviewDTO);
+
+    /**
+     * 创建订单
+     * 
+     * @param orderCreateDTO
+     *            创建订单请求参数
+     * @return 创建结果
+     */
+    R orderCreate(ComShopOrderCreateDTO orderCreateDTO);
+
+    /**
+     * 分页查询用户订单列表
+     * 
+     * @param comOrderListDTO
+     *            请求参数
+     * @return 查询结果
+     */
+    R pageOrderList(PageComFlowerOrderListDTO comOrderListDTO);
+
+    /**
+     * 根据订单id查询订单详情
+     * 
+     * @param orderId
+     *            订单id
+     * @return 订单详情
+     */
+    R orderDetail(Long orderId,String phone);
+
+    /**
+     * 根据订单id取消订单
+     * 
+     * @param comShopOrderQueryDTO
+     *            订单信息
+     * @return 取消结果
+     */
+    R orderCancel(ComShopOrderQueryDTO comShopOrderQueryDTO);
+
+    /**
+     * 根据订单id删除订单
+     * 
+     * @param orderId
+     *            订单id
+     * @return 删除结果
+     */
+    R orderDelete(Long orderId);
+
+    /**
+     * 根据订单id确认收货
+     * 
+     * @param orderId
+     *            订单id
+     * @param phone
+     *            手机号
+     * @return 确认结果
+     */
+    R orderConfirm(Long orderId, String phone);
+
+    /**
+     * 订单发货
+     * 
+     * @param orderShipDTO
+     *            订单发货信息
+     * @return 发货结果
+     */
+    R shipOrder(ComShopOrderShipDTO orderShipDTO);
+
+    /**
+     * 订单配送
+     * 
+     * @param orderDeliverDTO
+     *            订单信息
+     * @return 配送结果
+     */
+    R deliverOrder(ComShopOrderDeliverDTO orderDeliverDTO);
+
+    /**
+     * 订单完成配送
+     * 
+     * @param orderDeliverDTO
+     *            订单信息
+     * @return 完成配送结果
+     */
+    R finishDeliverOrder(ComShopOrderDeliverDTO orderDeliverDTO);
+
+
+    /**
+     * 微信支付订单回调
+     * 
+     * @param wxPayNotifyOrderDTO
+     *            订单支付回调参数
+     */
+    void wxOrderPayNotify(WxPayNotifyOrderDTO wxPayNotifyOrderDTO);
+
+    /**
+     * 用户点击去支付
+     * 
+     * @param orderPayDTO
+     *            请求参数
+     * @return 返回支付对象
+     */
+    R wxPay(OrderPayDTO orderPayDTO);
+
+    /**
+     * 商户分页查询快递订单
+     * @param pageComFlowerOrderListDTO
+     * @return
+     */
+    R pageOrderByStoreId(PageComFlowerOrderListDTO pageComFlowerOrderListDTO);
+
+    /**
+     * 查询订单总数
+     * @param deliveryType
+     * @return
+     */
+    R selectCountByDeliveryType(Integer deliveryType,Long userId);
+
+    /**
+     * 查询我的店铺各类统计数据
+     * @param storeId
+     * @return
+     */
+    R selectCountByUserId(Long storeId);
+
+    /**
+     * 获取商家的营业额和可结算金额
+     * @param storeId
+     * @return
+     */
+    R getQuota(Long storeId);
+
+    /**
+     * 商家后台经营数据统计-上
+     * @param storeId
+     * @return
+     */
+    R selectSumOrderAndAmountByStoreId(Long storeId);
+
+    /**
+     * 统计时间区域的订单量 15天 30天 一年
+     * @param storeId
+     * @param type
+     * @param tab
+     * @return
+     */
+    R selectOrderLineChart(Long storeId,Integer type,Integer tab);
+
+    /**
+     * 清点商品 确认送达详情
+     * @param pageComFlowerOrderListDTO
+     * @return
+     */
+    R pageOrderByDeliveryNo(PageComFlowerOrderListDTO pageComFlowerOrderListDTO);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerRefundOrderService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerRefundOrderService.java
new file mode 100644
index 0000000..7f1043b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerRefundOrderService.java
@@ -0,0 +1,60 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.shop.ComShopFlowerRefundOrderDTO;
+import com.panzhihua.common.model.dtos.shop.PageComOrderRefundDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.ComShopFlowerRefundOrderDO;
+
+/**
+ * @ClassName: ComShopFlowerRefundOrderService
+ * @Author: yh
+ * @Date: 2022/11/16 14:35
+ * @Description: 退款订单
+ */
+public interface ComShopFlowerRefundOrderService extends IService<ComShopFlowerRefundOrderDO> {
+
+    /**
+     * 创建退款订单
+     * @param comShopFlowerRefundOrderDTO
+     * @return
+     */
+    R createRefundOrder(ComShopFlowerRefundOrderDTO comShopFlowerRefundOrderDTO);
+
+    /**
+     * 分页查询
+     * @param pageComOrderRefundDTO
+     * @return
+     */
+    R pageRefundOrder(PageComOrderRefundDTO pageComOrderRefundDTO);
+
+    /**
+     * 修改退款订单
+     * @param comShopFlowerRefundOrderDTO
+     * @return
+     */
+    R updateRefundOrder(ComShopFlowerRefundOrderDTO comShopFlowerRefundOrderDTO);
+
+
+    /**
+     * 商家后台-退款申请统计
+     * @param storeId
+     * @return
+     */
+    R selectCountGroupStatus(Long storeId);
+
+    /**
+     * 取消退款
+     * @param id
+     * @return
+     */
+    R orderCancel(Long id);
+
+    /**
+     * 退款订单详情
+     * @param id
+     * @return
+     */
+    R refundOrderDetail(Long id);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerUserAddressService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerUserAddressService.java
new file mode 100644
index 0000000..8d6d43e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopFlowerUserAddressService.java
@@ -0,0 +1,53 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.shop.ComShopAddressDTO;
+import com.panzhihua.common.model.dtos.shop.PageComShopAddressDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.ComShopFlowerUserAddressDO;
+import com.panzhihua.service_community.model.dos.ComShopUserAddressDO;
+
+/**
+ * @auther yh
+ * @create 2022-11-08 17:25:45
+ * @describe 用户收货地址表服务类
+ */
+public interface ComShopFlowerUserAddressService extends IService<ComShopFlowerUserAddressDO> {
+
+    /**
+     * 查询用户收获地址列表
+     * 
+     * @param comShopAddressDTO
+     *            请求参数
+     * @return 用户收货地址列表
+     */
+    R shopUserAddressList(PageComShopAddressDTO comShopAddressDTO);
+
+    /**
+     * 用户添加书货地址
+     * 
+     * @param comShopAddressDTO
+     *            请求参数
+     * @return 添加结果
+     */
+    R shopAddUserAddress(ComShopAddressDTO comShopAddressDTO);
+
+    /**
+     * 用户修改收货地址
+     * 
+     * @param comShopAddressDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    R shopEditUserAddress(ComShopAddressDTO comShopAddressDTO);
+
+    /**
+     * 用户删除收货地址
+     * 
+     * @param addressId
+     *            收货地址id
+     * @return 删除结果
+     */
+    R shopDelUserAddress(Long addressId);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopGoodsAttrService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopGoodsAttrService.java
new file mode 100644
index 0000000..4e3bad8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopGoodsAttrService.java
@@ -0,0 +1,13 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.model.dos.ComShopGoodsAttrDO;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:49
+ * @describe 商品规格表服务类
+ */
+public interface ComShopGoodsAttrService extends IService<ComShopGoodsAttrDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopGoodsService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopGoodsService.java
new file mode 100644
index 0000000..6c20216
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopGoodsService.java
@@ -0,0 +1,77 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.shop.ComShopGoodsDTO;
+import com.panzhihua.common.model.dtos.shop.PageComShopGoodsDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.shop.AddShopGoodsVO;
+import com.panzhihua.service_community.model.dos.ComShopGoodsDO;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:35
+ * @describe 商品表服务类
+ */
+public interface ComShopGoodsService extends IService<ComShopGoodsDO> {
+
+    /**
+     * 分页查询商品列表
+     * 
+     * @param comShopGoodsDTO
+     *            请求参数
+     * @return 商品列表
+     */
+    R pageShopGoods(ComShopGoodsDTO comShopGoodsDTO);
+
+    /**
+     * 根据商品id查询商品信息
+     * 
+     * @param goodsId
+     *            商品id
+     * @return 商品信息
+     */
+    R shopGoodsDetail(Long goodsId);
+
+    /**
+     * 添加商品
+     * 
+     * @param addShopGoodsVO
+     * @return
+     */
+    R saveShopGoods(AddShopGoodsVO addShopGoodsVO);
+
+    /**
+     * 商品列表-分页查询
+     * 
+     * @param pageComShopGoodsDTO
+     *            查询参数
+     * @return PageShopStoreVO
+     */
+    R pageGoodsList(PageComShopGoodsDTO pageComShopGoodsDTO);
+
+    /**
+     * 编辑商品
+     *
+     * @param id
+     *            商铺ID
+     * @param addShopGoodsVO
+     * @return
+     */
+    R editShopGoods(Long id, AddShopGoodsVO addShopGoodsVO);
+
+    /**
+     * 删除商品
+     * 
+     * @param id
+     * @return
+     */
+    R deleteShopGoods(Long[] id);
+
+    /**
+     * 修改商品状态
+     * 
+     * @param id
+     * @return
+     */
+    R changeStatus(Long id, Integer status);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopOperLogService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopOperLogService.java
new file mode 100644
index 0000000..ed522c9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopOperLogService.java
@@ -0,0 +1,31 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.PageDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.shop.ShopOperLogVO;
+import com.panzhihua.service_community.model.dos.ComShopOperLogDO;
+
+/**
+ * @author cedoo
+ * @create 2021-4-16 10:49:12
+ * @describe 商城后台操作日志
+ */
+public interface ComShopOperLogService extends IService<ComShopOperLogDO> {
+    /**
+     * 通过VO添加日志
+     * 
+     * @param shopOperlog
+     *            商城后台日志VO
+     * @return
+     */
+    R saveLog(ShopOperLogVO shopOperlog);
+
+    /**
+     * 查询商城后台操作日志
+     * 
+     * @param pageDTO
+     * @return
+     */
+    R pageShopOperLog(PageDTO pageDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopOrderGoodsService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopOrderGoodsService.java
new file mode 100644
index 0000000..d99e57c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopOrderGoodsService.java
@@ -0,0 +1,13 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.model.dos.ComShopOrderGoodsDO;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:03:17
+ * @describe 订单商品表服务类
+ */
+public interface ComShopOrderGoodsService extends IService<ComShopOrderGoodsDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopOrderOperateService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopOrderOperateService.java
new file mode 100644
index 0000000..858ba55
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopOrderOperateService.java
@@ -0,0 +1,13 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.model.dos.ComShopOrderOperateDO;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:03:31
+ * @describe 订单操作记录表服务类
+ */
+public interface ComShopOrderOperateService extends IService<ComShopOrderOperateDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopOrderPayService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopOrderPayService.java
new file mode 100644
index 0000000..9329566
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopOrderPayService.java
@@ -0,0 +1,13 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.model.dos.ComShopOrderPayDO;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:03:42
+ * @describe 订单支付记录表服务类
+ */
+public interface ComShopOrderPayService extends IService<ComShopOrderPayDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopOrderService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopOrderService.java
new file mode 100644
index 0000000..4651a84
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopOrderService.java
@@ -0,0 +1,186 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.shop.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.ComShopOrderDO;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:03:01
+ * @describe 订单表服务类
+ */
+public interface ComShopOrderService extends IService<ComShopOrderDO> {
+
+    /**
+     * 分页搜索订单记录
+     * 
+     * @param pageComShopOrderSearchDTO
+     *            分页数据
+     * @return 分页订单
+     */
+    R pageShopOrder(PageComShopOrderSearchDTO pageComShopOrderSearchDTO);
+
+    /**
+     * 订单预览
+     * 
+     * @param orderPreviewDTO
+     *            请求参数
+     * @return 订单预览数据
+     */
+    R orderPreview(ComShopOrderPreviewDTO orderPreviewDTO);
+
+    /**
+     * 创建订单
+     * 
+     * @param orderCreateDTO
+     *            创建订单请求参数
+     * @return 创建结果
+     */
+    R orderCreate(ComShopOrderCreateDTO orderCreateDTO);
+
+    /**
+     * 分页查询用户订单列表
+     * 
+     * @param comOrderListDTO
+     *            请求参数
+     * @return 查询结果
+     */
+    R pageOrderList(PageComOrderListDTO comOrderListDTO);
+
+    /**
+     * 根据订单id查询订单详情
+     * 
+     * @param orderId
+     *            订单id
+     * @return 订单详情
+     */
+    R orderDetail(Long orderId);
+
+    /**
+     * 根据订单id取消订单
+     * 
+     * @param comShopOrderQueryDTO
+     *            订单信息
+     * @return 取消结果
+     */
+    R orderCancel(ComShopOrderQueryDTO comShopOrderQueryDTO);
+
+    /**
+     * 根据订单id删除订单
+     * 
+     * @param orderId
+     *            订单id
+     * @return 删除结果
+     */
+    R orderDelete(Long orderId);
+
+    /**
+     * 根据订单id确认收货
+     * 
+     * @param orderId
+     *            订单id
+     * @param phone
+     *            手机号
+     * @return 确认结果
+     */
+    R orderConfirm(Long orderId, String phone);
+
+    /**
+     * 统计用户订单数量
+     * 
+     * @param userId
+     *            用户id
+     * @return 统计结果
+     */
+    R orderStatistics(Long userId);
+
+    /**
+     * 商家资金的订单详情
+     * 
+     * @param id
+     *            订单id
+     * @return
+     */
+    R capitalDetailByStore(Long id);
+
+    /**
+     * 订单发货
+     * 
+     * @param orderShipDTO
+     *            订单发货信息
+     * @return 发货结果
+     */
+    R shipOrder(ComShopOrderShipDTO orderShipDTO);
+
+    /**
+     * 订单配送
+     * 
+     * @param orderDeliverDTO
+     *            订单信息
+     * @return 配送结果
+     */
+    R deliverOrder(ComShopOrderDeliverDTO orderDeliverDTO);
+
+    /**
+     * 订单完成配送
+     * 
+     * @param orderDeliverDTO
+     *            订单信息
+     * @return 完成配送结果
+     */
+    R finishDeliverOrder(ComShopOrderDeliverDTO orderDeliverDTO);
+
+    /**
+     * 获取订单导出数据
+     * 
+     * @param comShopOrderExportDTO
+     *            订单导出参数
+     * @return 订单数据
+     */
+    R shopOrderExportData(ComShopOrderExportDTO comShopOrderExportDTO);
+
+    /**
+     * 获取资金导出数据
+     * 
+     * @param comShopFundsExportDTO
+     *            资金导出参数
+     * @return 资金数据
+     */
+    R shopOrderFundsExportData(ComShopFundsExportDTO comShopFundsExportDTO);
+
+    /**
+     * 获取用户资金信息
+     * 
+     * @param userId
+     *            用户ID
+     * @return 统计结果
+     */
+    R getFundsStat(Long userId);
+
+    /**
+     * 获取分页 资金订单数据
+     * 
+     * @param pageComShopFundsSearchDTO
+     *            资金导出参数
+     * @return 资金订单数据
+     */
+    R pageShopFunds(PageComShopFundsSearchDTO pageComShopFundsSearchDTO);
+
+    /**
+     * 微信支付订单回调
+     * 
+     * @param wxPayNotifyOrderDTO
+     *            订单支付回调参数
+     */
+    void wxOrderPayNotify(WxPayNotifyOrderDTO wxPayNotifyOrderDTO);
+
+    /**
+     * 用户点击去支付
+     * 
+     * @param orderPayDTO
+     *            请求参数
+     * @return 返回支付对象
+     */
+    R wxPay(OrderPayDTO orderPayDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopStoreService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopStoreService.java
new file mode 100644
index 0000000..d03205f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopStoreService.java
@@ -0,0 +1,101 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.shop.PageComShopStoreDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.shop.ShopStoreVO;
+import com.panzhihua.service_community.model.dos.ComShopStoreDO;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:03:55
+ * @describe 店铺表服务类
+ */
+public interface ComShopStoreService extends IService<ComShopStoreDO> {
+
+    /**
+     * 店铺列表-分页查询
+     * 
+     * @param pageComShopStoreDTO
+     *            查询参数
+     * @return PageShopStoreVO
+     */
+    R pageStoreList(PageComShopStoreDTO pageComShopStoreDTO);
+
+    /**
+     * 根据店铺id查询店铺详情
+     * 
+     * @param comShopStoreDTO
+     *            请求参数
+     * @return 店铺详情
+     */
+    R shopStoreDetail(PageComShopStoreDTO comShopStoreDTO);
+
+    /**
+     * 保存店铺
+     * 
+     * @param storeVO
+     * @return
+     */
+    R saveStore(ShopStoreVO storeVO);
+
+    /**
+     * 新增店铺
+     * 
+     * @param storeVO
+     *            请求参数
+     * @return 新增结果
+     */
+    R addStore(ShopStoreVO storeVO);
+
+    /**
+     * 编辑店铺、启用、禁用
+     *
+     * @param id
+     *            商铺ID
+     * @param storeVO
+     * @return
+     */
+    R editStore(Long id, ShopStoreVO storeVO);
+
+    /**
+     * 删除店铺
+     * 
+     * @param id
+     * @return
+     */
+    R deleteStore(Long[] id);
+
+    /**
+     * 获取详情
+     * 
+     * @param id
+     * @return
+     */
+    R getOneInfo(Long id);
+
+    /**
+     * 获取用户商铺信息
+     * 
+     * @param userId
+     *            用户ID
+     * @return
+     */
+    R getUserStoreInfo(Long userId);
+
+    /**
+     * 获取用户商铺信息
+     * 
+     * @param account
+     *            用户账号
+     * @return
+     */
+    R getUserStoreInfo(String account);
+
+    /**
+     * check商家/店铺是否有效
+     * @param userId
+     * @return
+     */
+    Boolean checkStoreIsValid(Long userId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopSysConfService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopSysConfService.java
new file mode 100644
index 0000000..fbdce2b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopSysConfService.java
@@ -0,0 +1,13 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.model.dos.ComShopSysConfDO;
+
+/**
+ * @author cedoo
+ * @create 2021-5-11 10:47:50
+ * @describe
+ */
+public interface ComShopSysConfService extends IService<ComShopSysConfDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopUserAddressService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopUserAddressService.java
new file mode 100644
index 0000000..dc7c513
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComShopUserAddressService.java
@@ -0,0 +1,52 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.shop.ComShopAddressDTO;
+import com.panzhihua.common.model.dtos.shop.PageComShopAddressDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.ComShopUserAddressDO;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:04:16
+ * @describe 用户收货地址表服务类
+ */
+public interface ComShopUserAddressService extends IService<ComShopUserAddressDO> {
+
+    /**
+     * 查询用户收获地址列表
+     * 
+     * @param comShopAddressDTO
+     *            请求参数
+     * @return 用户收货地址列表
+     */
+    R shopUserAddressList(PageComShopAddressDTO comShopAddressDTO);
+
+    /**
+     * 用户添加书货地址
+     * 
+     * @param comShopAddressDTO
+     *            请求参数
+     * @return 添加结果
+     */
+    R shopAddUserAddress(ComShopAddressDTO comShopAddressDTO);
+
+    /**
+     * 用户修改收货地址
+     * 
+     * @param comShopAddressDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    R shopEditUserAddress(ComShopAddressDTO comShopAddressDTO);
+
+    /**
+     * 用户删除收货地址
+     * 
+     * @param addressId
+     *            收货地址id
+     * @return 删除结果
+     */
+    R shopDelUserAddress(Long addressId);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComStreetService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComStreetService.java
new file mode 100644
index 0000000..a221a88
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComStreetService.java
@@ -0,0 +1,107 @@
+package com.panzhihua.service_community.service;
+
+import java.util.List;
+
+import com.panzhihua.common.model.dtos.community.PageComStreetDTO;
+import com.panzhihua.common.model.dtos.community.building.BuildingDto;
+import com.panzhihua.common.model.dtos.community.large.AreaStreetDetail;
+import com.panzhihua.common.model.dtos.community.large.AreaStreetDetailResp;
+import com.panzhihua.common.model.dtos.community.large.SumAreaStreetResp;
+import com.panzhihua.common.model.dtos.partybuilding.QryReportResp;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActVO;
+import com.panzhihua.common.model.vos.community.ComStreetVO;
+
+/**
+ * @author: llming
+ * @description: 街道
+ **/
+public interface ComStreetService {
+    /**
+     * 添加街道
+     * 
+     * @param comStreetVO
+     *            街道信息
+     * @return 新增结果
+     */
+    R<ComStreetVO> addStreet(ComStreetVO comStreetVO);
+
+    /**
+     * 查询社区
+     * 
+     * @param comStreetVO
+     *            登录人的经纬度、或者指定区域的社区
+     * @return 社区集合
+     */
+    R listStreet(ComStreetVO comStreetVO);
+
+    /**
+     * 街道详情
+     * 
+     * @param streetId
+     *            社区id
+     * @return 社区详情
+     */
+    R detailStreet(Long streetId);
+
+    /**
+     * 分页查询街道
+     * 
+     * @param pageComStreetDTO
+     *            查询参数
+     * @return 分页集合
+     */
+    R pageStreet(PageComStreetDTO pageComStreetDTO);
+
+    /**
+     * 删除社区
+     * 
+     * @param Ids
+     *            社区id
+     * @return 删除结果
+     */
+    R delectStreat(List<Long> Ids);
+
+    /**
+     * 修改街道信息
+     * @param comStreetVO 街道信息
+     * */
+    R update(ComStreetVO comStreetVO);
+
+    /**
+     * 删除街道
+     * */
+    R remove(Long id);
+    /**
+     * 删除社区
+     * */
+    R removeCommunity(Long id);
+
+    /**
+     * 重置社区密码
+     * */
+    R repassCommunity(ComActVO comActVO);
+
+
+    /**
+     * 重置街道密码
+     * */
+    R repssStreet(ComStreetVO comActVO);
+
+    R panzhihuaMap(String areaCode);
+    R searchStreet(BuildingDto buildingDto);
+
+    R oneTagThreeReal(Long street);
+
+    R getScreenStatics();
+
+    R populationStatics(Long streetId);
+
+    R probably(Integer year,String belongTo);
+
+    SumAreaStreetResp sumAreaStreet();
+
+    AreaStreetDetail areaStreetDetail(String code, String type);
+
+    List<QryReportResp> qryReport(String yearTime);
+}
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
new file mode 100644
index 0000000..9f75dc1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSwDangerReportService.java
@@ -0,0 +1,84 @@
+package com.panzhihua.service_community.service;
+
+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
+ * @create 2021-07-27 14:31:04
+ * @describe 服务类
+ */
+public interface ComSwDangerReportService extends IService<ComSwDangerReportDO> {
+
+    /**
+     * 分页查询隐患报告
+     * 
+     * @param comSwPatrolRecordPageDTO
+     *            查询参数
+     * @return 隐患报告分页集合
+     */
+    R pageDangerReport(ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO);
+
+    /**
+     * 编辑隐患报告 editDangerReport  编辑隐患报告
+     * @param    comSwDangerReportEditDTO   编辑隐患报告参数
+     * @return    R  编辑结果
+     * @author txb
+     * @date 2021/9/08 17:03
+     */
+    R editDangerReport(ComSwDangerReportEditDTO comSwDangerReportEditDTO);
+
+    /**
+     * 根据隐患报告id查询详情
+     *
+     * @param dangerReportId
+     *            隐患报告id
+     * @return 隐患报告详情查询结果
+     */
+    R detailDangerReport(Long dangerReportId);
+
+    /**
+     * 根据巡查记录id查询隐患报告详情
+     *
+     * @param patrolRecordId
+     *            巡查记录id
+     * @return 隐患报告详情查询结果
+     */
+    R detailDangerReportByPrId(Long patrolRecordId);
+
+    /**
+     * 处理隐患报告
+     *
+     * @param comSwDangerReportHandleDTO
+     *            隐患报告处理参数
+     * @return 处理结果
+     */
+    R handleDangerReport(ComSwDangerReportHandleDTO comSwDangerReportHandleDTO);
+
+    /**
+     * 整改隐患报告
+     *
+     * @param comSwDangerReportRectifyDTO
+     *            隐患报告整改参数
+     * @return 整改结果
+     */
+    R rectifyDangerReport(ComSwDangerReportRectifyDTO comSwDangerReportRectifyDTO);
+
+    /**
+     * 隐患报告台账导出
+     *
+     * @param dangerReportIds
+     * @return
+     */
+    R exportDangerReport(List<Long> dangerReportIds);
+}
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
new file mode 100644
index 0000000..2a93946
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSwPatrolRecordService.java
@@ -0,0 +1,62 @@
+package com.panzhihua.service_community.service;
+
+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
+ * @create 2021-07-23 14:38:38
+ * @describe 社区》安全工作》巡查记录服务类
+ */
+public interface ComSwPatrolRecordService extends IService<ComSwPatrolRecordDO> {
+
+    /**
+     * 分页查询巡查记录
+     *
+     * @param comSwPatrolRecordPageDTO
+     *            查询参数
+     * @return 分页集合
+     */
+    R pagePatrolRecord(ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO);
+
+    /**
+     * 新增巡查记录
+     *
+     * @param comSwPatrolRecordAddDTO
+     *            新增参数
+     * @return 新增结果
+     */
+    R addPatrolRecord(ComSwPatrolRecordAddDTO comSwPatrolRecordAddDTO);
+
+    /**
+     * 编辑巡查记录 editPatrolRecord  编辑巡查记录
+     * @param    comSwPatrolRecordEditDTO   编辑巡查记录参数
+     * @return    R  编辑结果
+     * @author txb
+     * @date 2021/9/08 17:03
+     */
+    R editPatrolRecord(ComSwPatrolRecordEditDTO comSwPatrolRecordEditDTO);
+
+    /**
+     * 根据巡查记录id查询详情
+     *
+     * @param patrolRecordId
+     *            巡查记录id
+     * @return 巡查记录详情查询结果
+     */
+    R detailPatrolRecord(Long patrolRecordId);
+
+    /**
+     * 巡查记录统计接口
+     *
+     * @return 统计结果
+     */
+    R patrolRecordStatistics(Long communityId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSwRotaService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSwRotaService.java
new file mode 100644
index 0000000..1c78bc7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSwRotaService.java
@@ -0,0 +1,84 @@
+package com.panzhihua.service_community.service;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.ComSwRotaPageDTO;
+import com.panzhihua.common.model.dtos.community.ComSwRotaSaveDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComSwRotaExcelVO;
+import com.panzhihua.service_community.model.dos.ComSwRotaDO;
+
+/**
+ * @auther txb
+ * @create 2021-07-30 09:48:54
+ * @describe 社区》安全工作》值班表服务类
+ */
+public interface ComSwRotaService extends IService<ComSwRotaDO> {
+
+    /**
+     * 分页查询值班表
+     * 
+     * @param comSwRotaPageDTO
+     *            查询参数
+     * @return 值班表分页集合
+     */
+    R pageRota(ComSwRotaPageDTO comSwRotaPageDTO);
+
+    /**
+     * 根据id查询值班表
+     * 
+     * @param rotaId
+     *            值班表id
+     * @return 值班表详情
+     */
+    R detailRota(Long rotaId);
+
+    /**
+     * 新增值班表
+     * 
+     * @param comSwRotaSaveDTOs
+     *            新增参数
+     * @return 新增结果
+     */
+    R addRota(List<ComSwRotaSaveDTO> comSwRotaSaveDTOs);
+
+    /**
+     * 批量删除值班表
+     * 
+     * @param rotaIds
+     *            值班ids
+     * @return 删除结果
+     */
+    R deleteRota(List<Long> rotaIds);
+
+    /**
+     * 查询当天值班人员
+     * 
+     * @return 查询结果
+     */
+    R getRotaPersonByDate(String rotaDate,Long communityId);
+
+    /**
+     * 查询当天值班领导
+     * 
+     * @return 查询结果
+     */
+    R getRotaLeaderByDate(String rotaDate,Long communityId);
+
+    /**
+     * 选择人员
+     * 
+     * @return 查询结果
+     */
+    R getTotlePerson(String param, Long communityId);
+
+    /**
+     * 批量导入值班表
+     *
+     * @param list
+     *            值班表集合
+     */
+    R listSaveSwRotaExcelVO(List<ComSwRotaExcelVO> list, Long communityId);
+
+}
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
new file mode 100644
index 0000000..bbcc82f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComSwSafetyWorkRecordService.java
@@ -0,0 +1,54 @@
+package com.panzhihua.service_community.service;
+
+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
+ * @create 2021-07-27 14:30:41
+ * @describe 服务类
+ */
+public interface ComSwSafetyWorkRecordService extends IService<ComSwSafetyWorkRecordDO> {
+
+    /**
+     * 分页查询安全工作记录
+     * 
+     * @param comSwPatrolRecordPageDTO
+     *            查询参数
+     * @return 安全工作记录分页集合
+     */
+    R pageSafetyWorkRecord(ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO);
+
+    /**
+     * 编辑安全工作记录 editSafetyWork  编辑安全工作记录
+     * @param    comSwSafetyWorkEditDTO   编辑安全工作记录参数
+     * @return    R  编辑结果
+     * @author txb
+     * @date 2021/9/08 17:03
+     */
+    R editSafetyWork(ComSwSafetyWorkEditDTO comSwSafetyWorkEditDTO);
+
+    /**
+     * 根据安全工作记录id查询详情
+     *
+     * @param safetyWorkRecordId
+     *            安全工作记录
+     * @return 安全工作记录详情查询结果
+     */
+    R detailSafetyWorkRecord(Long safetyWorkRecordId, Long communityId);
+
+    /**
+     * 根据巡查记录id查询安全工作记录详情
+     *
+     * @param patrolRecordId
+     *            巡查记录id
+     * @return 安全工作记录详情查询结果
+     */
+    R detailSafetyWorkRecordByPrId(Long patrolRecordId, Long communityId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComVeteransPopulationService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComVeteransPopulationService.java
new file mode 100644
index 0000000..0eea2cf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ComVeteransPopulationService.java
@@ -0,0 +1,13 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.model.dos.ComVeteransPopulationDO;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 19:56:46
+ * @describe 实有人口导入》退役军人表服务类
+ */
+public interface ComVeteransPopulationService extends IService<ComVeteransPopulationDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/CommediateTypeService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/CommediateTypeService.java
new file mode 100644
index 0000000..f8dc9ce
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/CommediateTypeService.java
@@ -0,0 +1,26 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.sanshuo.ComMediateTypeDTO;
+import com.panzhihua.common.model.dtos.community.sanshuo.IndexDateDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.ComMediateType;
+
+public interface CommediateTypeService extends IService<ComMediateType> {
+    /**
+     * 后台获取事件列表
+     * @param keyWord
+     * @param page
+     * @param size
+     * @return 处理结果
+     * */
+    R listEvent(String keyWord, Integer page, Integer size,String appId);
+
+    /**
+     * 新增或修改事件类型
+     * @param comMediateTypeDTO
+     * @return 处理结果
+     * */
+    R addOrUpdate(ComMediateTypeDTO comMediateTypeDTO);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ConvenientElevatingPointService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ConvenientElevatingPointService.java
new file mode 100644
index 0000000..18f240c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ConvenientElevatingPointService.java
@@ -0,0 +1,68 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.convenient.ConvenientElevatingPointDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PageConvenientElevatingPointDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.ConvenientElevatingPointDO;
+
+/**
+ * @ClassName: ConvenientElevatingPointService
+ * @Author: yh
+ * @Date: 2022/11/8 10:32
+ * @Description: 自提点
+ */
+public interface ConvenientElevatingPointService extends IService<ConvenientElevatingPointDO> {
+    /**
+     * 分页查询自提点
+     *
+     * @param pageConvenientElevatingPointDTO
+     * @return
+     */
+    R pagePoint(PageConvenientElevatingPointDTO pageConvenientElevatingPointDTO);
+
+    /**
+     * 新增
+     * @param convenientElevatingPointDTO
+     * @return
+     */
+    R addPoint(ConvenientElevatingPointDTO convenientElevatingPointDTO);
+
+    /**
+     * 修改
+     * @param convenientElevatingPointDTO
+     * @return
+     */
+    R putPoint(ConvenientElevatingPointDTO convenientElevatingPointDTO);
+
+    /**
+     * 删除
+     * @param pointId
+     * @param operator
+     * @return
+     */
+    R deletePoint(Long pointId, Long operator);
+
+    /**
+     * 详情
+     * @param pointId
+     * @return
+     */
+    R detailPoint(Long pointId);
+
+    /**
+     * 根据商家查询范围内的提货点
+     * @param merchantId
+     * @return
+     */
+    R findPointByMerchantId(Long merchantId,String lat,String lng);
+
+    /**
+     * 获取商家周围 n(km)的自提点数量
+     * @param distance
+     * @param lat
+     * @param lng
+     * @return
+     */
+    R findPointNumByDistance(Integer distance, String lat, String lng);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ConvenientGoodsCategoryService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ConvenientGoodsCategoryService.java
new file mode 100644
index 0000000..9e70bff
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ConvenientGoodsCategoryService.java
@@ -0,0 +1,65 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.convenient.ConvenientGoodsCategoryDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PageConvenientGoodsCategoryDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.ConvenientGoodsCategoryDO;
+
+/**
+ * @title: ConvenientGoodsCategoryService
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务分类服务类
+ * @author: hans
+ * @date: 2021/09/16 10:31
+ */
+public interface ConvenientGoodsCategoryService extends IService<ConvenientGoodsCategoryDO> {
+    /**
+     * 商品分类新增
+     *
+     * @param convenientGoodsCategoryDTO
+     * @return 新增结果
+     */
+    R addGoodsCategory(ConvenientGoodsCategoryDTO convenientGoodsCategoryDTO);
+
+    /**
+     * 商品分类编辑
+     *
+     * @param convenientGoodsCategoryDTO
+     * @return 修改结果
+     */
+    R putGoodsCategory(ConvenientGoodsCategoryDTO convenientGoodsCategoryDTO);
+
+    /**
+     * 商品分类删除
+     *
+     * @param categoryId 便民服务分类id
+     * @param operator   操作人员
+     * @return 删除结果
+     */
+    R deleteGoodsCategoryById(Long categoryId, Long operator);
+
+    /**
+     * 获取商品分类详情
+     *
+     * @param categoryId 便民服务分类id
+     * @return 分类详情
+     */
+    R getGoodsCategoryById(Long categoryId);
+
+    /**
+     * 分页查询商品分类
+     *
+     * @param pageConvenientGoodsCategoryDTO
+     * @return 分类详情
+     */
+    R pageGoodsCategory(PageConvenientGoodsCategoryDTO pageConvenientGoodsCategoryDTO);
+
+    /**
+     * 获取所有商品分类
+     *
+     * @return
+     */
+    R getAllGoodsCategories();
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ConvenientMerchantService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ConvenientMerchantService.java
new file mode 100644
index 0000000..b5bc5f5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ConvenientMerchantService.java
@@ -0,0 +1,163 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.convenient.ConvenientMerchantDTO;
+import com.panzhihua.common.model.dtos.community.convenient.DisableOrEnableConvenientMerchantDTO;
+import com.panzhihua.common.model.dtos.community.convenient.ExportMerchantDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PageClassifyMerchantDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PageConvenientMerchantDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PagePopularMerchantDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PageSearchDTO;
+import com.panzhihua.common.model.dtos.community.convenient.ResetPasswordConvenientMerchantDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
+import com.panzhihua.service_community.model.dos.ConvenientMerchantDO;
+
+/**
+ * @title: ConvenientMerchantService
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务商家服务类
+ * @author: hans
+ * @date: 2021/09/16 16:02
+ */
+public interface ConvenientMerchantService extends IService<ConvenientMerchantDO> {
+    /**
+     * 便民服务新增商家
+     * @param convenientMerchantDTO
+     * @return 新增结果
+     */
+    R addMerchant(ConvenientMerchantDTO convenientMerchantDTO);
+
+    /**
+     * 编辑便民服务商家
+     * @param convenientMerchantDTO
+     * @return
+     */
+    R putMerchant(ConvenientMerchantDTO convenientMerchantDTO);
+
+    /**
+     * 删除便民服务商家
+     * @param merchantId 商家id
+     * @param operator 操作人员
+     * @return
+     */
+    R deleteMerchant(Long merchantId, Long operator);
+
+    /**
+     * 分页查询便民服务商家
+     * @param pageConvenientMerchantDTO
+     * @return
+     */
+    R pageMerchant(PageConvenientMerchantDTO pageConvenientMerchantDTO);
+
+    /**
+     * 获取便民服务商家详情
+     * @param merchantId
+     * @return
+     */
+    R getMerchant(Long merchantId);
+
+    /**
+     * 禁用/启用便民服务商家
+     * @param disableOrEnableConvenientMerchantDTO
+     * @return
+     */
+    R disableOrEnableMerchant(DisableOrEnableConvenientMerchantDTO disableOrEnableConvenientMerchantDTO);
+
+    /**
+     * 重置便民服务商家账号密码
+     * @param resetPasswordConvenientMerchantDTO
+     * @return
+     */
+    R resetPasswordMerchant(ResetPasswordConvenientMerchantDTO resetPasswordConvenientMerchantDTO);
+
+    /**
+     * 获取用户便民服务商家详情
+     * @param account 商家绑定账号
+     * @return
+     */
+    R<ConvenientMerchantVO> getUserMerchantInfoByAccount(String account);
+
+    /**
+     * 获取用户便民服务商家详情
+     * @param account 商家绑定账号
+     * @return
+     */
+    R<ConvenientMerchantVO> getMerchantInfoByAccount(String account);
+
+    /**
+     * 获取商便民服务商家信息
+     * @param userId
+     * @return
+     */
+    R<ConvenientMerchantVO> getUserConvenientMerchantInfo(Long userId);
+
+    /**
+     * 获取该社区下的热门商家
+     * @param pagePopularMerchantDTO
+     * @return
+     */
+    R getPopularMerchants(PagePopularMerchantDTO pagePopularMerchantDTO);
+
+    /**
+     * 分页获取服务类型下商家信息
+     * @param pageClassifyMerchantDTO
+     * @return
+     */
+    R getClassifyMerchants(PageClassifyMerchantDTO pageClassifyMerchantDTO);
+
+    /**
+     * 小程序获取商家详情
+     * @param merchantId
+     * @return
+     */
+    R getMerchantDetail(Long merchantId);
+
+    /**
+     * 搜索商家信息
+     * @param pageSearchDTO
+     * @return
+     */
+    R pageSearchMerchant(PageSearchDTO pageSearchDTO);
+
+    /**
+     * 增加商家店铺咨询量
+     * @param merchantId
+     * @return
+     */
+    R consultMerchant(Long merchantId);
+
+    /**
+     * 增加商家店铺浏览量
+     * @param merchantId
+     * @return
+     */
+    R incrMerchantView(Long merchantId);
+
+    /**
+     * 获取商家导出数据
+     * @param exportMerchantDTO
+     * @return
+     */
+    R exportMerchant(ExportMerchantDTO exportMerchantDTO);
+
+    /**
+     * 定时任务每隔半小时将商家浏览量和咨询量总值计入指定商家数据中
+     * @return
+     */
+    R timedTaskWriteDataToMerchantJobHandler();
+
+    /**
+     * check商家/店铺是否有效
+     * @param userId
+     * @return
+     */
+    Boolean checkStoreIsValid(Long userId);
+
+    /**
+     * 根据后台用户id查询
+     * @param userId
+     * @return
+     */
+    R getMerchantByUserId(Long userId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ConvenientProductCategoryService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ConvenientProductCategoryService.java
new file mode 100644
index 0000000..c20dbfc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ConvenientProductCategoryService.java
@@ -0,0 +1,60 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.convenient.ConvenientProductCategoryDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PageConvenientProductCategoryDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.ConvenientProductCategoryDO;
+
+/**
+ * @title: ConvenientProductCategoryService
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务产品服务类
+ * @author: hans
+ * @date: 2021/09/20 15:36
+ */
+public interface ConvenientProductCategoryService extends IService<ConvenientProductCategoryDO> {
+
+    /**
+     * 新增便民服务产品分类信息
+     * @param convenientProductCategoryDTO
+     * @return
+     */
+    R addProductCategory(ConvenientProductCategoryDTO convenientProductCategoryDTO);
+
+    /**
+     * 编辑便民服务产品分类信息
+     * @param convenientProductCategoryDTO
+     * @return
+     */
+    R putProductCategory(ConvenientProductCategoryDTO convenientProductCategoryDTO);
+
+    /**
+     * 删除便民服务产品分类信息
+     * @param categoryId
+     * @param operator
+     * @return
+     */
+    R deleteProductCategory(Long categoryId, Long operator);
+
+    /**
+     * 获取便民服务产品分类详情
+     * @param categoryId
+     * @return
+     */
+    R getProductCategory(Long categoryId);
+
+    /**
+     * 分页查询便民服务产品分类信息
+     * @param pageConvenientProductCategoryDTO
+     * @return
+     */
+    R pageProductCategory(PageConvenientProductCategoryDTO pageConvenientProductCategoryDTO);
+
+    /**
+     * 获取所有产品分类
+     * @return
+     * @param merchantId
+     */
+    R getAllProductCategory(Long merchantId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ConvenientProductService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ConvenientProductService.java
new file mode 100644
index 0000000..24b341d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ConvenientProductService.java
@@ -0,0 +1,90 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.convenient.ConvenientProductDTO;
+import com.panzhihua.common.model.dtos.community.convenient.DeleteConvenientProductDTO;
+import com.panzhihua.common.model.dtos.community.convenient.OnShelfOrOffShelfProductDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PageConvenientProductDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PageSearchDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.ConvenientProductDO;
+
+/**
+ * @title: ConvenientProductService
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务商家后台产品服务类
+ * @author: hans
+ * @date: 2021/09/21 21:02
+ */
+public interface ConvenientProductService extends IService<ConvenientProductDO> {
+
+    /**
+     * 便民服务商家后台新增产品
+     * @param convenientProductDTO
+     * @return
+     */
+    R addProduct(ConvenientProductDTO convenientProductDTO);
+
+    /**
+     * 便民服务商家后台编辑产品
+     * @param convenientProductDTO
+     * @return
+     */
+    R putProduct(ConvenientProductDTO convenientProductDTO);
+
+    /**
+     * 便民服务商家后台获取产品详情
+     * @param productId
+     * @return
+     */
+    R getProduct(Long productId);
+
+    /**
+     * 便民服务商家后台分页获取产品信息
+     * @param pageConvenientProductDTO
+     * @return
+     */
+    R pageProduct(PageConvenientProductDTO pageConvenientProductDTO);
+
+    /**
+     * 便民服务商家后台删除产品信息
+     * @param deleteConvenientProductDTO
+     * @return
+     */
+    R deleteProduct(DeleteConvenientProductDTO deleteConvenientProductDTO);
+
+    /**
+     * 便民服务商家后台上架/下架产品
+     * @param onShelfOrOffShelfProductDTO
+     * @return
+     */
+    R onShelfOrOffShelfProduct(OnShelfOrOffShelfProductDTO onShelfOrOffShelfProductDTO);
+
+    /**
+     * 小程序获取商家产品
+     * @param merchantId
+     * @return
+     */
+    R getMerchantProduct(Long merchantId);
+
+    /**
+     * 搜索商品信息
+     * @param pageSearchDTO
+     * @return
+     */
+    R pageSearchProduct(PageSearchDTO pageSearchDTO);
+
+    /**
+     * 增加产品浏览量
+     * @param productId
+     * @return
+     */
+    R incrProductView(Long productId);
+
+    /**
+     * 获取商家上下架产品数量
+     * @param merchantId
+     * @return
+     */
+    R getProductShelfNum(Long merchantId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ConvenientServiceCategoryService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ConvenientServiceCategoryService.java
new file mode 100644
index 0000000..2893d22
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ConvenientServiceCategoryService.java
@@ -0,0 +1,65 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.convenient.ConvenientServiceCategoryDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PageConvenientServiceCategoryDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.ConvenientServiceCategoryDO;
+
+/**
+ * @title: ConvenientServiceCategoryService
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务分类服务类
+ * @author: hans
+ * @date: 2021/09/16 10:31
+ */
+public interface ConvenientServiceCategoryService extends IService<ConvenientServiceCategoryDO> {
+    /**
+     * 便民服务新增分类
+     * @param convenientServiceCategoryDTO
+     * @return 新增结果
+     */
+    R addServiceCategory(ConvenientServiceCategoryDTO convenientServiceCategoryDTO);
+
+    /**
+     * 便民服务分类编辑
+     * @param convenientServiceCategoryDTO
+     * @return 修改结果
+     */
+    R putServiceCategory(ConvenientServiceCategoryDTO convenientServiceCategoryDTO);
+
+    /**
+     * 便民服务分类删除
+     * @param categoryId 便民服务分类id
+     * @param operator 操作人员
+     * @return 删除结果
+     */
+    R deleteServiceCategoryById(Long categoryId, Long operator);
+
+    /**
+     * 获取便民服务分类详情
+     * @param categoryId 便民服务分类id
+     * @return 分类详情
+     */
+    R getServiceCategoryById(Long categoryId);
+
+    /**
+     * 分页查询便民服务分类
+     * @param pageConvenientServiceCategoryDTO
+     * @return 分类详情
+     */
+    R pageServiceCategory(PageConvenientServiceCategoryDTO pageConvenientServiceCategoryDTO);
+
+    /**
+     * 获取所有便民服务分类
+     * @return
+     */
+    R getAllServiceCategories(String areaCode);
+
+    /**
+     * 获取该社区商家数量大于0的分类
+     * @param communityId
+     * @return
+     */
+    R getSuitableServiceCategories(Long communityId,String areaCode);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/DisabledPersonsService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/DisabledPersonsService.java
new file mode 100644
index 0000000..57b00ce
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/DisabledPersonsService.java
@@ -0,0 +1,28 @@
+package com.panzhihua.service_community.service;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.DisabledPersonsDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.DisabledPersonsDO;
+
+/**
+ * 残疾人服务
+ * 
+ * @author manailin
+ * @date 2021/6/11 16:05
+ */
+public interface DisabledPersonsService extends IService<DisabledPersonsDO> {
+
+    /**
+     * description 批量保存重点人群人员信息
+     *
+     * @param keyList
+     *            重点人群信息
+     * @return R 保存结果
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    R saveBatchDisabledPerson(List<DisabledPersonsDTO> keyList);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/EldersAuthFeedbackService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/EldersAuthFeedbackService.java
new file mode 100644
index 0000000..34e5d1d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/EldersAuthFeedbackService.java
@@ -0,0 +1,64 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.EldersAuthFeedbackAddDTO;
+import com.panzhihua.common.model.dtos.community.EldersAuthFeedbackDeleteDTO;
+import com.panzhihua.common.model.dtos.community.EldersAuthFeedbackEditDTO;
+import com.panzhihua.common.model.dtos.community.PageEldersAuthFeedbackDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.EldersAuthFeedbackDetailsVO;
+import com.panzhihua.common.model.vos.community.EldersAuthFeedbackVO;
+import com.panzhihua.service_community.model.dos.EldersAuthFeedbackDO;
+
+/**
+ * 高龄认证社区反馈 service
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ */
+public interface EldersAuthFeedbackService extends IService<EldersAuthFeedbackDO> {
+
+    /**
+     * 新增高龄认证社区反馈
+     * 
+     * @param eldersAuthFeedbackAddDTO
+     * @return 新增结果
+     */
+    R add(EldersAuthFeedbackAddDTO eldersAuthFeedbackAddDTO);
+
+    /**
+     * 修改高龄认证社区反馈
+     * 
+     * @param eldersAuthFeedbackEditDTO
+     * @return 维护结果
+     */
+    R edit(EldersAuthFeedbackEditDTO eldersAuthFeedbackEditDTO);
+
+    /**
+     * 分页查找高龄认证社区反馈
+     * 
+     * @param pageEldersAuthFeedbackDTO
+     * @return 维护结果
+     */
+    R<IPage<EldersAuthFeedbackVO>> query(PageEldersAuthFeedbackDTO pageEldersAuthFeedbackDTO);
+
+    /**
+     * 删除高龄认证社区反馈
+     * 
+     * @param EldersAuthFeedbackDeleteDTO
+     * @return 平台用户信息
+     */
+    R delete(EldersAuthFeedbackDeleteDTO EldersAuthFeedbackDeleteDTO);
+
+    /**
+     * 查询高龄认证社区反馈详细信息
+     * 
+     * @param id
+     *            高龄认证社区反馈 id
+     * @return 查找结果
+     */
+    R<EldersAuthFeedbackDetailsVO> eldersAuthFeedbackDetails(Long id);
+
+}
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
new file mode 100644
index 0000000..e5511c7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/EldersAuthService.java
@@ -0,0 +1,219 @@
+package com.panzhihua.service_community.service;
+
+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;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComEldersAuthElderlyDetailsVO;
+import com.panzhihua.common.model.vos.community.EldersAuthDetailsVO;
+import com.panzhihua.common.model.vos.community.EldersAuthVO;
+import com.panzhihua.service_community.model.dos.EldersAuthDO;
+
+/**
+ * 高龄认证 service
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ */
+public interface EldersAuthService extends IService<EldersAuthDO> {
+
+    /**
+     * 新增高龄认证
+     * 
+     * @param eldersAuthAddDTO
+     * @return 新增结果
+     */
+    R add(EldersAuthAddDTO eldersAuthAddDTO);
+
+    /**
+     * 修改高龄认证
+     * 
+     * @param eldersAuthEditDTO
+     * @return 维护结果
+     */
+    R edit(EldersAuthEditDTO eldersAuthEditDTO);
+
+    /**
+     * 分页查找高龄认证
+     * 
+     * @param pageEldersAuthDTO
+     * @return 维护结果
+     */
+    R<IPage<EldersAuthVO>> query(PageEldersAuthDTO pageEldersAuthDTO);
+
+    /**
+     * 删除高龄认证
+     * 
+     * @param EldersAuthDeleteDTO
+     * @return 平台用户信息
+     */
+    R delete(EldersAuthDeleteDTO EldersAuthDeleteDTO);
+
+    /**
+     * 查询高龄认证详细信息
+     * 
+     * @param id
+     *            高龄认证 id
+     * @return 查找结果
+     */
+    R<EldersAuthDetailsVO> eldersAuthDetails(Long id);
+
+    /**
+     * 新增高龄认证社区反馈
+     * 
+     * @param eldersAuthFeedbackAddDTO
+     * @return 新增结果
+     */
+    R addFeedback(EldersAuthFeedbackAddDTO eldersAuthFeedbackAddDTO);
+
+    /**
+     * 分页查找高龄认证导出数据
+     * 
+     * @param pageEldersAuthDTO
+     * @return 维护结果
+     */
+    R queryExportData(PageEldersAuthDTO pageEldersAuthDTO);
+
+    /**
+     * 查询籍贯
+     * 
+     * @param idCard
+     * @return
+     */
+    String queryDomicile(String idCard);
+
+    /**
+     * 人脸核验新增认证记录
+     * 
+     * @param authGetResultDTO
+     *            请求参数
+     * @return 新增结果
+     */
+    R addAuthByEldersApp(ComEldersAuthGetResultDTO authGetResultDTO) throws Exception;
+
+    /**
+     * 高龄认证分页接口
+     * 
+     * @param authPageDTO
+     *            请求参数
+     * @return 查询结果
+     */
+    R pageEldersByApp(ComEldersAuthPageDTO authPageDTO) throws Exception;
+
+    /**
+     * 添加高龄老人接口
+     * 
+     * @param authUserAddAppDTO
+     *            请求参数
+     * @return 添加结果
+     */
+    R addEldersByApp(ComEldersAuthUserAddAppDTO authUserAddAppDTO);
+
+    /**
+     * 修改高龄老人接口
+     * 
+     * @param authUserAddAppDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    R editEldersByApp(ComEldersAuthUserAddAppDTO authUserAddAppDTO);
+
+    /**
+     * 查询生存认证记录
+     * 
+     * @param pageComEldersRecordsDTO
+     * @return
+     */
+    R queryEldersRecord(PageComEldersRecordsDTO pageComEldersRecordsDTO);
+
+    /**
+     * 查询老龄认证记录详细
+     * 
+     * @param id
+     * @return
+     */
+    R<ComEldersAuthElderlyDetailsVO> comEldersAuthElderlyDetails(Long id);
+
+    /**
+     * 查询社区老龄认证 认证方式
+     * 
+     * @param eldersAuthTypeQueryDTO
+     * @return
+     */
+    R communityAuthType(EldersAuthTypeQueryDTO eldersAuthTypeQueryDTO);
+
+    /**
+     * 分页查询生存认证记录
+     * 
+     * @param pageEldersAuthElderlyDTO
+     * @return
+     */
+    R pageQueryEldersAuthRecord(PageEldersAuthRecordDTO pageEldersAuthElderlyDTO);
+
+    /**
+     * 设置社区认证方式
+     * 
+     * @param communityId
+     *            社区ID
+     * @param type
+     *            核验类型(1.视频认证 2.人脸核验)
+     * @return
+     */
+    R setCommunityAuthType(Long communityId, Integer type);
+
+    R getAuthHistoryList(PageEldersAuthHistoryDTO pageEldersAuthElderlyDTO);
+
+    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/EventResourceService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/EventResourceService.java
new file mode 100644
index 0000000..3640723
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/EventResourceService.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.EventResourceDO;
+
+/**
+ * 事件或者走访中关联的图片音频和视频文件 service
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+public interface EventResourceService extends IService<EventResourceDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/GridBuildRelationService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/GridBuildRelationService.java
new file mode 100644
index 0000000..4bdad20
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/GridBuildRelationService.java
@@ -0,0 +1,26 @@
+package com.panzhihua.service_community.service;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.GridBuildRelationDO;
+
+/**
+ * program 攀枝花智慧社区项目 description 网格和小区楼栋和建筑的关系表管理API
+ *
+ * @author manailin Date 2021-01-22 15:30
+ **/
+public interface GridBuildRelationService extends IService<GridBuildRelationDO> {
+
+    /**
+     * description 批量保存网格和小区楼栋和建筑的关系
+     *
+     * @param keyList
+     *            网格和小区楼栋和建筑的关系信息
+     * @return R 保存结果
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    R saveBatchGridBuildRelation(List<GridBuildRelationDO> keyList);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/IComEventResourceService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/IComEventResourceService.java
new file mode 100644
index 0000000..662d367
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/IComEventResourceService.java
@@ -0,0 +1,70 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.ComEventResource;
+
+import java.util.List;
+
+/**
+ * Description  三说会堂事件关联图片资源表业务层接口
+ * ClassName    IComEventResourceService
+ *
+ * @author manailin
+ * @date 2022-09-07 11:23:52
+ */
+public interface IComEventResourceService extends IService<ComEventResource> {
+
+    /**
+     * description 新增三说会堂事件关联图片资源表
+     *
+     * @param comEventResource 接口管理对象
+     * @return R  数据结果
+     * @author manailin
+     * @date 2022-09-07 11:23:52
+     */
+    R insertComEventResource(ComEventResource comEventResource);
+
+    /**
+     * description 更新三说会堂事件关联图片资源表
+     *
+     * @param comEventResource 接口管理对象
+     * @return R  数据结果
+     * @author manailin
+     * @date 2022-09-07 11:23:52
+     */
+    R updateComEventResource(ComEventResource comEventResource);
+
+    /**
+     * description 三说会堂事件关联图片资源表分页列表数据
+     *
+     * @param comEventResource 接口管理对象
+     * @param pagination       分页对象
+     * @return R  分页数据结果
+     * @author manailin
+     * @date 2022-09-07 11:23:52
+     */
+    R pageByComEventResource(ComEventResource comEventResource, Page pagination);
+
+    /**
+     * description 三说会堂事件关联图片资源表列表数据
+     *
+     * @param comEventResource 接口管理对象
+     * @return R  数据结果
+     * @author manailin
+     * @date 2022-09-07 11:23:52
+     */
+    List<ComEventResource> listByComEventResource(ComEventResource comEventResource);
+
+    /**
+     * description 修改三说会堂事件关联图片资源表状态
+     *
+     * @param id      主键id
+     * @param enabled 状态(TRUE、FALSE)
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date 2022-09-07 11:23:52
+     */
+    R updateEnabled(Long id, Boolean enabled);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/IComEventService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/IComEventService.java
new file mode 100644
index 0000000..bf097a2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/IComEventService.java
@@ -0,0 +1,109 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.sanshuo.IndexDateDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.sanshuo.ComEventArchiveVO;
+import com.panzhihua.common.model.vos.sanshuo.ComEventConciliationVO;
+import com.panzhihua.service_community.entity.ComEvent;
+
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * Description  三说会堂事件表业务层接口
+ * ClassName    IComEventService
+ *
+ * @author manailin
+ * @date 2022-09-07 11:23:51
+ */
+public interface IComEventService extends IService<ComEvent> {
+
+    /**
+     * description 新增三说会堂事件表
+     *
+     * @param comEvent 接口管理对象
+     * @return R  数据结果
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    R insertComEvent(ComEvent comEvent);
+
+    /**
+     * description 更新三说会堂事件表
+     *
+     * @param comEvent 接口管理对象
+     * @return R  数据结果
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    R updateComEvent(ComEvent comEvent);
+
+    /**
+     * description 三说会堂事件表分页列表数据
+     *
+     * @param comEvent   接口管理对象
+     * @param pagination 分页对象
+     * @return R  分页数据结果
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    R<List<ComEvent>> pageByComEvent(ComEvent comEvent, Page pagination,LoginUserInfoVO loginUserInfoVO);
+
+    /**
+     * description 三说会堂事件表列表数据
+     *
+     * @param comEvent 接口管理对象
+     * @return R  数据结果
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    List<ComEvent> listByComEvent(ComEvent comEvent,LoginUserInfoVO loginUserInfoVO);
+
+    /**
+     * description 修改三说会堂事件表状态
+     *
+     * @param id      主键id
+     * @param enabled 状态(TRUE、FALSE)
+     * @return Result  修改成功和失败
+     * @author manailin
+     * @date 2022-09-07 11:23:51
+     */
+    R updateEnabled(Long id, Boolean enabled);
+
+    R conciliationEvent(ComEventConciliationVO comEventConciliationVO, LoginUserInfoVO loginUserInfo);
+
+    R cancelRequest(Long id );
+
+    HashMap detail(String id);
+
+    R acceptRequest(Long id,Long specterId);
+
+    R reappoint(Long id, Long specialistId);
+
+    R calculate(LoginUserInfoVO loginUserInfo,Integer level,Long id);
+
+    R archiveRequest(ComEventArchiveVO comEventArchiveVO, LoginUserInfoVO sysUser);
+
+    /**
+     * 大屏事件统计
+     * @param indexDataDTO  查询入参
+     * */
+    R indexData(IndexDateDTO indexDataDTO);
+
+    /**
+     * 大屏事件统计
+     * */
+    R eventIndexData(Integer type);
+
+    /**
+     * 修改流转记录状态
+     * */
+    void updateEventStransferRecord(Long id);
+
+    R listStreetScreen();
+
+    R listCommunityScreen();
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/IComEventTransferRecordService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/IComEventTransferRecordService.java
new file mode 100644
index 0000000..4de22b5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/IComEventTransferRecordService.java
@@ -0,0 +1,60 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.ComEventTransferRecord;
+
+import java.util.List;
+
+/**
+ * Description  三说会堂事件流转表业务层接口
+ * ClassName    IComEventTransferRecordService
+ *
+ * @author manailin
+ * @date 2022-09-07 11:23:52
+ */
+public interface IComEventTransferRecordService extends IService<ComEventTransferRecord> {
+
+    /**
+     * description 新增三说会堂事件流转表
+     *
+     * @param comEventTransferRecord 接口管理对象
+     * @return R  数据结果
+     * @author manailin
+     * @date 2022-09-07 11:23:52
+     */
+    R insertComEventTransferRecord(ComEventTransferRecord comEventTransferRecord);
+
+    /**
+     * description 更新三说会堂事件流转表
+     *
+     * @param comEventTransferRecord 接口管理对象
+     * @return R  数据结果
+     * @author manailin
+     * @date 2022-09-07 11:23:52
+     */
+    R updateComEventTransferRecord(ComEventTransferRecord comEventTransferRecord);
+
+    /**
+     * description 三说会堂事件流转表分页列表数据
+     *
+     * @param comEventTransferRecord 接口管理对象
+     * @param pagination             分页对象
+     * @return R  分页数据结果
+     * @author manailin
+     * @date 2022-09-07 11:23:52
+     */
+    R pageByComEventTransferRecord(ComEventTransferRecord comEventTransferRecord, Page pagination);
+
+    /**
+     * description 三说会堂事件流转表列表数据
+     *
+     * @param comEventTransferRecord 接口管理对象
+     * @return R  数据结果
+     * @author manailin
+     * @date 2022-09-07 11:23:52
+     */
+    List<ComEventTransferRecord> listByComEventTransferRecord(ComEventTransferRecord comEventTransferRecord);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/KeyPersonInfoService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/KeyPersonInfoService.java
new file mode 100644
index 0000000..ada82c4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/KeyPersonInfoService.java
@@ -0,0 +1,27 @@
+package com.panzhihua.service_community.service;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.KeyPersonInfoDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.KeyPersonInfoDO;
+
+/**
+ * program 攀枝花智慧社区项目 description 特殊人群管理API
+ *
+ * @author manailin Date 2021-01-22 15:30
+ **/
+public interface KeyPersonInfoService extends IService<KeyPersonInfoDO> {
+
+    /**
+     * description 批量保存重点人群人员信息
+     *
+     * @param keyList
+     *            重点人群信息
+     * @return R 保存结果
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    R saveBatchKeyPerson(List<KeyPersonInfoDTO> keyList);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsConfigService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsConfigService.java
new file mode 100644
index 0000000..c91d32f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsConfigService.java
@@ -0,0 +1,30 @@
+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.microCommercialStreet.McsConfigVO;
+import com.panzhihua.service_community.entity.McsConfig;
+
+import java.util.List;
+
+/**
+ * (McsConfig)表服务接口
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:07
+ */
+public interface McsConfigService extends IService<McsConfig> {
+
+    /**
+     * 获取所有数字商业街配置
+     * @return
+     */
+    R getAllMcsConfig();
+
+    /**
+     * 修改数字商业街配置
+     * @param configs
+     * @return
+     */
+    R putMcsConfig(List<McsConfigVO> configs);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsCouponService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsCouponService.java
new file mode 100644
index 0000000..a65cc2f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsCouponService.java
@@ -0,0 +1,45 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageJoinGameListDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.McsCoupon;
+
+/**
+ * (McsCoupon)表服务接口
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:08
+ */
+public interface McsCouponService extends IService<McsCoupon> {
+
+    /**
+     * 我的戳戳卷
+     * @return
+     * @param type
+     * @param userId
+     */
+    R getMyCoupon(Integer type, Long userId);
+
+    /**
+     * 我的评价-参与游戏列表
+     * @param pageJoinGameListDTO
+     * @return
+     */
+    R getJoinGameList(PageJoinGameListDTO pageJoinGameListDTO);
+
+    /**
+     * 戳戳卷核销
+     * @param couponId
+     * @param userId
+     * @return
+     */
+    R verifyMcsCoupon(Long couponId, Long userId);
+
+    /**
+     * 游戏统计
+     * @param userId
+     * @return
+     */
+    R getMcsGameStatistics(Long userId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsEvaluateService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsEvaluateService.java
new file mode 100644
index 0000000..9c59408
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsEvaluateService.java
@@ -0,0 +1,44 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.McsEvaluateDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageMcsEvaluateDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.McsEvaluate;
+
+/**
+ * (McsEvaluate)表服务接口
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:08
+ */
+public interface McsEvaluateService extends IService<McsEvaluate> {
+
+    /**
+     * 分页查询评价记录
+     * @param pageMcsEvaluateDTO
+     * @return
+     */
+    R pageMcsEvaluate(PageMcsEvaluateDTO pageMcsEvaluateDTO);
+
+    /**
+     * 查询评价记录详情
+     * @param evaluateId
+     * @return
+     */
+    R getMcsEvaluate(Long evaluateId);
+
+    /**
+     * 删除评价记录
+     * @param evaluateId
+     * @return
+     */
+    R deleteMcsEvaluate(Long evaluateId);
+
+    /**
+     * 新增评价记录
+     * @param mcsEvaluateDTO
+     * @return
+     */
+    R addMcsEvaluate(McsEvaluateDTO mcsEvaluateDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsGameService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsGameService.java
new file mode 100644
index 0000000..5c9ed98
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsGameService.java
@@ -0,0 +1,113 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.McsGameDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageMcsGameDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.SetPopularForGameDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.SetShelfForGameDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.McsGame;
+
+/**
+ * (McsGame)表服务接口
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:09
+ */
+public interface McsGameService extends IService<McsGame> {
+
+    /**
+     * 分页查询戳戳游戏
+     * @param pageMcsGameDTO
+     * @return
+     */
+    R pageMcsGame(PageMcsGameDTO pageMcsGameDTO);
+
+    /**
+     * 设为/取消游戏热门
+     * @param setPopularForGameDTO
+     * @return
+     */
+    R setPopularForGame(SetPopularForGameDTO setPopularForGameDTO);
+
+    /**
+     * 上架/下架戳戳游戏
+     * @param setShelfForGameDTO
+     * @return
+     */
+    R setShelfForGame(SetShelfForGameDTO setShelfForGameDTO);
+
+    /**
+     * 删除戳戳游戏
+     * @param gameId
+     * @param userId
+     * @return
+     */
+    R deleteMcsGame(Long gameId, Long userId);
+
+    /**
+     * 新增戳戳游戏
+     * @param mcsGameDTO
+     * @return
+     */
+    R addMcsGame(McsGameDTO mcsGameDTO);
+
+    /**
+     * 编辑戳戳游戏
+     * @param mcsGameDTO
+     * @return
+     */
+    R putMcsGame(McsGameDTO mcsGameDTO);
+
+    /**
+     * 发布戳戳游戏
+     * @param gameId
+     * @param userId
+     * @return
+     */
+    R publishMcsGame(Long gameId, Long userId);
+
+    /**
+     * 结束戳戳游戏
+     * @param gameId
+     * @param userId
+     * @return
+     */
+    R finishMcsGame(Long gameId, Long userId);
+
+    /**
+     * 戳戳游戏顶部统计数据
+     * @param userId
+     * @param type
+     * @return
+     */
+    R getTopStatistics(Long userId, Integer type);
+
+    /**
+     * 戳戳卷领取
+     * @param gameId
+     * @param userId
+     * @return
+     */
+    R applyMcsCoupon(Long gameId, Long userId);
+
+    /**
+     * h5分页查询戳戳游戏
+     * @param pageMcsGameDTO
+     * @return
+     */
+    R pageH5McsGame(PageMcsGameDTO pageMcsGameDTO);
+
+    /**
+     * 游戏详情
+     * @param gameId
+     * @return
+     */
+    R getMcsGame(Long gameId);
+
+    /**
+     * 定时任务-每隔5分钟执行一次,将已到期的微商业街游戏结束
+     * @return
+     */
+    R endStatusForMcsGame();
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsInformationService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsInformationService.java
new file mode 100644
index 0000000..b945f20
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsInformationService.java
@@ -0,0 +1,82 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.McsInfoDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageMcsInformationDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.SetShelfForInfoDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.McsInformation;
+
+/**
+ * (McsInformation)表服务接口
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:10
+ */
+public interface McsInformationService extends IService<McsInformation> {
+
+    /**
+     * 分页查询戳戳资讯
+     * @param pageMcsInformationDTO
+     * @return
+     */
+    R pageMcsInfo(PageMcsInformationDTO pageMcsInformationDTO);
+
+    /**
+     * 上架/下架戳戳资讯
+     * @param setShelfForInfoDTO
+     * @return
+     */
+    R setShelfForMcsInfo(SetShelfForInfoDTO setShelfForInfoDTO);
+
+    /**
+     * 删除戳戳资讯
+     * @param infoId
+     * @param userId
+     * @return
+     */
+    R deleteMcsInfo(Long infoId, Long userId);
+
+    /**
+     * 戳戳资讯顶部统计数据
+     * @param userId
+     * @return
+     */
+    R getTopStatistics(Long userId);
+
+    /**
+     * 新增戳戳资讯
+     * @param mcsInfoDTO
+     * @return
+     */
+    R addMcsInfo(McsInfoDTO mcsInfoDTO);
+
+    /**
+     * 编辑戳戳资讯
+     * @param mcsInfoDTO
+     * @return
+     */
+    R putMcsInfo(McsInfoDTO mcsInfoDTO);
+
+    /**
+     * 发布戳戳资讯
+     * @param infoId
+     * @param userId
+     * @return
+     */
+    R publishMcsInfo(Long infoId, Long userId);
+
+    /**
+     * h5分页查询戳戳资讯
+     * @param pageMcsInformationDTO
+     * @return
+     */
+    R pageH5McsInfo(PageMcsInformationDTO pageMcsInformationDTO);
+
+    /**
+     * 资讯详情
+     * @param infoId
+     * @return
+     */
+    R getMcsInfo(Long infoId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsLabelService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsLabelService.java
new file mode 100644
index 0000000..f0793ff
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsLabelService.java
@@ -0,0 +1,21 @@
+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.entity.McsLabel;
+
+/**
+ * (McsLabel)表服务接口
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:11
+ */
+public interface McsLabelService extends IService<McsLabel> {
+
+    /**
+     * 获取产品标签列表
+     * @param userId
+     * @return
+     */
+    R getMcsLabelList(Long userId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsMerchantService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsMerchantService.java
new file mode 100644
index 0000000..f5c953b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsMerchantService.java
@@ -0,0 +1,119 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.DisableOrEnableMcsMerchantDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.LoginWithPhoneDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.McsMerchantDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageMcsMerchantDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PutUserInfoDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.McsMerchant;
+
+/**
+ * (McsMerchant)表服务接口
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:11
+ */
+public interface McsMerchantService extends IService<McsMerchant> {
+
+    /**
+     * 新增数字商业街商家
+     * @param mcsMerchantDTO
+     * @return
+     */
+    R addMcsMerchant(McsMerchantDTO mcsMerchantDTO);
+
+    /**
+     * 编辑数字商业街商家
+     * @param mcsMerchantDTO
+     * @return
+     */
+    R putMcsMerchant(McsMerchantDTO mcsMerchantDTO);
+
+    /**
+     * 查询数字商业街商家详情
+     * @param merchantId
+     * @return
+     */
+    R getMcsMerchant(Long merchantId);
+
+    /**
+     * 删除数字商业街商家
+     * @param merchantId
+     * @param userId
+     * @return
+     */
+    R deleteMcsMerchant(Long merchantId, Long userId);
+
+    /**
+     * 分页查询数字商业街商家
+     * @param pageMcsMerchantDTO
+     * @return
+     */
+    R pageMcsMerchant(PageMcsMerchantDTO pageMcsMerchantDTO);
+
+    /**
+     * 禁用/启用数字商业街商家
+     * @param disableOrEnableMcsMerchantDTO
+     * @return
+     */
+    R disableOrEnableMcsMerchant(DisableOrEnableMcsMerchantDTO disableOrEnableMcsMerchantDTO);
+
+    /**
+     * 根据account查询微商业街商家信息
+     * @param account
+     * @return
+     */
+    R getMcsMerchantByAccount(String account);
+
+    /**
+     * 完成订单更新/新增商家信息
+     *
+     * @param orderNo
+     * @param configId
+     * @param userId
+     * @return
+     */
+    R updateOrAddMcsMerchantAfterOrder(String orderNo, Long configId, Long userId);
+
+    /**
+     * 验证码登录
+     * @param loginDTO
+     * @return
+     */
+    R loginWithPhone(LoginWithPhoneDTO loginDTO);
+
+    /**
+     * 首页顶部数据
+     * @return
+     */
+    R getMcsIndexTopData();
+
+    /**
+     * H5分页查询数字商业街商家
+     * @param pageMcsMerchantDTO
+     * @return
+     */
+    R pageH5McsMerchant(PageMcsMerchantDTO pageMcsMerchantDTO);
+
+    /**
+     * 修改用戶信息
+     * @param putUserInfoDTO
+     * @return
+     */
+    R putUserInfo(PutUserInfoDTO putUserInfoDTO);
+
+    /**
+     * 根据userId获取商家信息
+     * @param userId
+     * @return
+     */
+    R retrieveMcsMerchantInfoByUserId(Long userId);
+
+    /**
+     * 定时任务-每隔5分钟执行一次,将已到期的微商业街商家旗下所有的游戏/资讯全部下架
+     * @return
+     */
+    R offResourceForMcsMerchant();
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsOrderService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsOrderService.java
new file mode 100644
index 0000000..d830c65
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsOrderService.java
@@ -0,0 +1,58 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsOrderVO;
+import com.panzhihua.service_community.entity.McsOrder;
+
+/**
+ * 商业街订单表(McsOrder)表服务接口
+ *
+ * @author makejava
+ * @since 2022-01-04 16:10:07
+ */
+public interface McsOrderService extends IService<McsOrder> {
+    /**
+     * 分页查询
+     *
+     * @param commonPage
+     * @return
+     */
+    R pageList(CommonPage commonPage);
+
+    /**
+     * 创建订单
+     * @param mcsOrderVO
+     * @return
+     */
+    R insert(McsOrderVO mcsOrderVO);
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    R detail(Long id);
+
+    /**
+     * 支付
+     * @param mcsOrderVO
+     * @return
+     */
+    R wxPay(McsOrderVO mcsOrderVO);
+
+    /**
+     *订单id查询手机号
+     * @param id
+     * @return
+     */
+    R sendContent(Long id);
+
+    /**
+     *微信支付回调
+     * @param mcsOrderVO
+     * @return
+     */
+    R notify(McsOrderVO mcsOrderVO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsProductLabelService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsProductLabelService.java
new file mode 100644
index 0000000..1c82894
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsProductLabelService.java
@@ -0,0 +1,14 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.entity.McsProductLabel;
+
+/**
+ * (McsProductLabel)表服务接口
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:13
+ */
+public interface McsProductLabelService extends IService<McsProductLabel> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsProductService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsProductService.java
new file mode 100644
index 0000000..649bc14
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsProductService.java
@@ -0,0 +1,60 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.DeleteProductDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.McsProductDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageMcsProductDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.SetShelfForProductDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.McsProduct;
+
+/**
+ * (McsProduct)表服务接口
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:12
+ */
+public interface McsProductService extends IService<McsProduct> {
+
+    /**
+     * 新增产品信息
+     * @param mcsProductDTO
+     * @return
+     */
+    R addMcsProduct(McsProductDTO mcsProductDTO);
+
+    /**
+     * 编辑产品信息
+     * @param mcsProductDTO
+     * @return
+     */
+    R putMcsProduct(McsProductDTO mcsProductDTO);
+
+    /**
+     * 删除产品信息
+     * @param deleteProductDTO
+     * @return
+     */
+    R deleteMcsProduct(DeleteProductDTO deleteProductDTO);
+
+    /**
+     * 上架/下架产品信息
+     * @param setShelfForProductDTO
+     * @return
+     */
+    R setShelfForMcsProduct(SetShelfForProductDTO setShelfForProductDTO);
+
+    /**
+     * 分页查询产品信息
+     * @param pageMcsProductDTO
+     * @return
+     */
+    R pageMcsProduct(PageMcsProductDTO pageMcsProductDTO);
+
+    /**
+     * 获取产品信息详情
+     * @param productId
+     * @return
+     */
+    R getMcsProduct(Long productId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsVerifiedRecordService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsVerifiedRecordService.java
new file mode 100644
index 0000000..705106c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/McsVerifiedRecordService.java
@@ -0,0 +1,22 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageVerifyRecordDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.McsVerifiedRecord;
+
+/**
+ * (McsVerifiedRecord)表服务接口
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:14
+ */
+public interface McsVerifiedRecordService extends IService<McsVerifiedRecord> {
+
+    /**
+     * 分页查询核销记录
+     * @param pageVerifyRecordDTO
+     * @return
+     */
+    R pageMcsVerifyRecord(PageVerifyRecordDTO pageVerifyRecordDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/MostBeautifulVolunteerService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/MostBeautifulVolunteerService.java
new file mode 100644
index 0000000..842d7fb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/MostBeautifulVolunteerService.java
@@ -0,0 +1,54 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.community.MostBeautifulVolunteerVO;
+import com.panzhihua.service_community.entity.MostBeautifulVolunteer;
+import org.apache.ibatis.annotations.Param;
+
+public interface MostBeautifulVolunteerService extends IService<MostBeautifulVolunteer>
+{
+
+    /**
+     * 查询单个
+     * @param Id
+     * @return
+     */
+    MostBeautifulVolunteer queryById(String Id);
+
+
+    /**
+     * 分页查询
+     * @param name
+     * @param unmountType
+     * @return
+     */
+    IPage<MostBeautifulVolunteer> queryList(int pageNum,
+                                            int pageSize,
+                                            String name,
+                                            String unmountType);
+
+    /**
+     * 新增
+     * @param mostBeautifulVolunteerVO
+     * @return
+     */
+    int insertMostBeautifulVolunteer(MostBeautifulVolunteerVO mostBeautifulVolunteerVO);
+
+
+    /**
+     * 更新
+     * @param mostBeautifulVolunteerVO
+     * @return
+     */
+    int updateById(MostBeautifulVolunteerVO mostBeautifulVolunteerVO);
+
+
+    /**
+     * 删除
+     * @param Id
+     * @return
+     */
+    int deleteById(String Id);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/RentingHourseContractConfigService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/RentingHourseContractConfigService.java
new file mode 100644
index 0000000..44c4b16
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/RentingHourseContractConfigService.java
@@ -0,0 +1,45 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.rentingHouses.PageRentingHousesConfigDTO;
+import com.panzhihua.common.model.dtos.community.rentingHouses.RentingHousesConfigDTO;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.RentingHourseContractConfig;
+
+/**
+ * 房屋租赁-配置项表(RentingHourseContractConfig)表服务接口
+ *
+ * @author makejava
+ * @since 2021-11-23 10:46:19
+ */
+public interface RentingHourseContractConfigService extends IService<RentingHourseContractConfig> {
+    /**
+     * 分页查询
+     *
+     * @param commonPage
+     * @return
+     */
+    R pageList(CommonPage commonPage);
+
+    /**
+     * 分页查询房屋租赁基础配置
+     * @param pageRentingHousesConfigDTO
+     * @return
+     */
+    R pageRentingHousesConfig(PageRentingHousesConfigDTO pageRentingHousesConfigDTO);
+
+    /**
+     * 更新配置信息
+     * @param rentingHousesConfigDTO
+     * @return
+     */
+    R updateRentingHousesConfig(RentingHousesConfigDTO rentingHousesConfigDTO);
+
+    /**
+     * 获取房屋租赁配置
+     * @return
+     * @param type
+     */
+    R getRentingHouseConfig(Integer type);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/RentingHourseFileService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/RentingHourseFileService.java
new file mode 100644
index 0000000..aa7e7e6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/RentingHourseFileService.java
@@ -0,0 +1,22 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.entity.RentingHourseFile;
+
+/**
+ * 房屋租赁-涉及的文件表(RentingHourseFile)表服务接口
+ *
+ * @author makejava
+ * @since 2021-11-23 10:46:19
+ */
+public interface RentingHourseFileService extends IService<RentingHourseFile> {
+    /**
+     * 分页查询
+     *
+     * @param commonPage
+     * @return
+     */
+    R pageList(CommonPage commonPage);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/RentingHourseLabelService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/RentingHourseLabelService.java
new file mode 100644
index 0000000..645b89b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/RentingHourseLabelService.java
@@ -0,0 +1,22 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.entity.RentingHourseLabel;
+
+/**
+ * 房屋租赁-房源标签(RentingHourseLabel)表服务接口
+ *
+ * @author makejava
+ * @since 2021-11-23 10:46:38
+ */
+public interface RentingHourseLabelService extends IService<RentingHourseLabel> {
+    /**
+     * 分页查询
+     *
+     * @param commonPage
+     * @return
+     */
+    R pageList(CommonPage commonPage);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/RentingHourseOrderService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/RentingHourseOrderService.java
new file mode 100644
index 0000000..99a4a4a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/RentingHourseOrderService.java
@@ -0,0 +1,53 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.community.rentHouse.RentingHourseOrderVO;
+import com.panzhihua.common.model.vos.community.rentHouse.WxPayNotifyOrderVO;
+import com.panzhihua.common.model.vos.community.rentHouse.WxPayOrderVO;
+import com.panzhihua.service_community.entity.RentingHourseOrder;
+
+/**
+ * 房屋租赁-房屋订单表(RentingHourseOrder)表服务接口
+ *
+ * @author makejava
+ * @since 2021-11-23 10:46:56
+ */
+public interface RentingHourseOrderService extends IService<RentingHourseOrder> {
+    /**
+     * 分页查询
+     *
+     * @param commonPage
+     * @return
+     */
+    R pageList(CommonPage commonPage);
+
+    /**
+     * 创建普通订单
+     * @param rentingHourseOrderVO
+     * @return
+     */
+    R createOrder(RentingHourseOrderVO rentingHourseOrderVO);
+
+    /**
+     * 微信成功支付回调
+     * @param wxPayNotifyOrderVO
+     * @return
+     */
+    R wxPayNotify(WxPayNotifyOrderVO wxPayNotifyOrderVO);
+
+    /**
+     * 微信支付
+     * @param wxPayOrderVO
+     * @return
+     */
+    R wxPay(WxPayOrderVO wxPayOrderVO);
+
+    /**
+     * 订单统计
+     * @param rentingHourseOrderVO
+     * @return
+     */
+    R statics(RentingHourseOrderVO rentingHourseOrderVO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/RentingHoursePayingOrderService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/RentingHoursePayingOrderService.java
new file mode 100644
index 0000000..af11a7d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/RentingHoursePayingOrderService.java
@@ -0,0 +1,22 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.entity.RentingHoursePayingOrder;
+
+/**
+ * 房屋租赁-支付流水记录表(RentingHoursePayingOrder)表服务接口
+ *
+ * @author makejava
+ * @since 2021-11-23 10:47:16
+ */
+public interface RentingHoursePayingOrderService extends IService<RentingHoursePayingOrder> {
+    /**
+     * 分页查询
+     *
+     * @param commonPage
+     * @return
+     */
+    R pageList(CommonPage commonPage);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/RentingHoursePreOrderService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/RentingHoursePreOrderService.java
new file mode 100644
index 0000000..358b43b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/RentingHoursePreOrderService.java
@@ -0,0 +1,37 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.community.rentHouse.RentingHoursePreOrderVO;
+import com.panzhihua.service_community.entity.RentingHoursePreOrder;
+
+/**
+ * 房屋租赁-房屋定金订单表(RentingHoursePreOrder)表服务接口
+ *
+ * @author makejava
+ * @since 2021-11-23 10:47:53
+ */
+public interface RentingHoursePreOrderService extends IService<RentingHoursePreOrder> {
+    /**
+     * 分页查询
+     *
+     * @param commonPage
+     * @return
+     */
+    R pageList(CommonPage commonPage);
+
+    /**
+     * 创建定金订单
+     * @param rentingHoursePreOrderVO
+     * @return
+     */
+    R createOrder(RentingHoursePreOrderVO rentingHoursePreOrderVO);
+
+    /**
+     * 定金订单统计
+     * @param rentingHoursePreOrderVO
+     * @return
+     */
+    R statics(RentingHoursePreOrderVO rentingHoursePreOrderVO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/RentingHourseRefundOrderService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/RentingHourseRefundOrderService.java
new file mode 100644
index 0000000..79fa0bc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/RentingHourseRefundOrderService.java
@@ -0,0 +1,22 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.entity.RentingHourseRefundOrder;
+
+/**
+ * 房屋租赁-退款流水记录表(RentingHourseRefundOrder)表服务接口
+ *
+ * @author makejava
+ * @since 2021-11-23 10:48:14
+ */
+public interface RentingHourseRefundOrderService extends IService<RentingHourseRefundOrder> {
+    /**
+     * 分页查询
+     *
+     * @param commonPage
+     * @return
+     */
+    R pageList(CommonPage commonPage);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/RentingHourseRegisterService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/RentingHourseRegisterService.java
new file mode 100644
index 0000000..e9419a8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/RentingHourseRegisterService.java
@@ -0,0 +1,79 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.rentingHouses.NearbyDTO;
+import com.panzhihua.common.model.dtos.community.rentingHouses.PageRentingHouseRegisterDTO;
+import com.panzhihua.common.model.dtos.community.rentingHouses.ReleaseOrCancelHouseDTO;
+import com.panzhihua.common.model.dtos.community.rentingHouses.RentingHouseRegisterDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.RentingHourseRegister;
+
+/**
+ * 房屋租售-租赁房屋登记(RentingHourseRegister)表服务接口
+ *
+ * @author makejava
+ * @since 2021-11-23 10:49:08
+ */
+public interface RentingHourseRegisterService extends IService<RentingHourseRegister> {
+    /**
+     * 新增房源信息
+     * @param registerDTO
+     * @return
+     */
+    R registerRentingHouse(RentingHouseRegisterDTO registerDTO);
+
+    /**
+     * 编辑房源信息
+     * @param registerDTO
+     * @return
+     */
+    R updateRentingHouse(RentingHouseRegisterDTO registerDTO);
+
+    /**
+     * 分页获取房源信息
+     * @param pageRegisterDTO
+     * @return
+     */
+    R pageRentingHouse(PageRentingHouseRegisterDTO pageRegisterDTO);
+
+    /**
+     * 发布/取消发布 房源信
+     * @param releaseOrCancelHouseDTO
+     * @return
+     */
+    R releaseOrCancelHouse(ReleaseOrCancelHouseDTO releaseOrCancelHouseDTO);
+
+    /**
+     * 删除房源信息
+     * @param registerId
+     * @return
+     */
+    R deleteRentingHouse(Long registerId);
+
+    /**
+     * 获取详情-房源信息
+     * @param registerId
+     * @return
+     */
+    R getRentingHouse(Long registerId);
+
+    /**
+     * 附近的房屋
+     * @param nearbyDTO
+     * @return
+     */
+    R nearby(NearbyDTO nearbyDTO);
+
+    /**
+     * 小程序分页获取房源信息
+     * @param pageRegisterDTO
+     * @return
+     */
+    R pageRentingHouseApplet(PageRentingHouseRegisterDTO pageRegisterDTO);
+
+    /**
+     * 方便手动调用批量更新
+     * @param areaCode
+     */
+    void updateAllHouseUnionAppCode(String areaCode);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/RentingHourseReturnOrderService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/RentingHourseReturnOrderService.java
new file mode 100644
index 0000000..eb36e34
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/RentingHourseReturnOrderService.java
@@ -0,0 +1,22 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_community.entity.RentingHourseReturnOrder;
+
+/**
+ * 房屋租赁-房屋退租申请表(RentingHourseReturnOrder)表服务接口
+ *
+ * @author makejava
+ * @since 2021-11-23 10:49:37
+ */
+public interface RentingHourseReturnOrderService extends IService<RentingHourseReturnOrder> {
+    /**
+     * 分页查询
+     *
+     * @param commonPage
+     * @return
+     */
+    R pageList(CommonPage commonPage);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ScreenWorkService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ScreenWorkService.java
new file mode 100644
index 0000000..3dc6d71
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/ScreenWorkService.java
@@ -0,0 +1,103 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.vos.R;
+
+/**
+ * @author xyh
+ * @date 2021/6/15 15:14
+ */
+public interface ScreenWorkService {
+
+    /**
+     * 大屏统计邻里圈
+     * 
+     * @param communityId
+     * @return
+     */
+    R statisticNeighborCircle(Long communityId);
+
+    /**
+     * 大屏统计心愿单
+     * 
+     * @param communityId
+     * @return
+     */
+    R wish(Long communityId);
+
+    /**
+     * 大屏统计社区活动
+     * 
+     * @param communityId
+     * @return
+     */
+    R activity(Long communityId);
+
+    /**
+     * 大屏统计一起议
+     * 
+     * @param communityId
+     * @return
+     */
+    R discuss(Long communityId);
+
+    /**
+     * 大屏统计党建工作
+     * 
+     * @param communityId
+     * @return
+     */
+    R pbWork(Long communityId);
+
+    /**
+     * 大屏统计随手拍
+     * 
+     * @param communityId
+     * @return
+     */
+    R easyPhoto(Long communityId);
+
+    /**
+     * 大屏统计工作情况
+     * 
+     * @param communityId
+     * @return
+     */
+    R workCount(Long communityId);
+
+    R dynamicWork(Long communityId);
+
+    /**
+     * 自治动态
+     * */
+    R autonomyDynamic(Long communityId);
+
+    /**
+     * 红色物业
+     * */
+    R property(Long communityId);
+
+    /**
+     * 党建数据
+     * */
+    R partyData(Long communityId);
+
+    /**
+     * 小区院落
+     * */
+    R yard(Long communityId);
+
+    /**
+     *居民信息
+     * */
+    R citizenInfo(Long communityId);
+
+    /**
+     * 特殊人群信息
+     * */
+    R specialPeople(Long communityId);
+
+    /**
+     * 基础数据
+     * */
+    R basicData(Long communityId);
+}
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
new file mode 100644
index 0000000..e13d897
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/SysConfService.java
@@ -0,0 +1,69 @@
+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.CommunityPublicityVO;
+import com.panzhihua.service_community.model.dos.SysConfDO;
+
+/**
+ * @auther lyq
+ * @create 2021-06-23 10:41:36
+ * @describe 系统配置表服务类
+ */
+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);
+
+
+    /**
+     * 获取社区宣传
+     * @param communityId
+     * @return
+     */
+    CommunityPublicityVO getData(String communityId);
+
+    /**
+     * 新增社区宣传
+     * @param item
+     * @return
+     */
+    int addDate(CommunityPublicityVO item);
+
+    /**
+     * 编辑社区宣传
+     * @param item
+     * @return
+     */
+    int editDate(CommunityPublicityVO item);
+
+    /**
+     * 删除社区宣传
+     * @param communityId
+     * @return
+     */
+    int deleteData(String communityId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/SysUserService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/SysUserService.java
new file mode 100644
index 0000000..3013ccc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/SysUserService.java
@@ -0,0 +1,78 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+
+/**
+ * title: 用户表 后台用户+小程序用户表服务接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 用户表 后台用户+小程序用户表服务接口
+ *
+ * @author lyq
+ * @date 2022-03-28 14:28:09
+ */
+public interface SysUserService {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param sysUser 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-28 14:28:09
+     */
+    R queryByPage(PageSysUserDto sysUser);
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param sysUser 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-28 14:28:09
+     */
+    R insert(AddSysUserDto sysUser);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param sysUser 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-28 14:28:09
+     */
+    R update(EditSysUserDto sysUser);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param userId 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-28 14:28:09
+     */
+    R deleteById(Long userId);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param userId 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-28 14:28:09
+     */
+    R detailById(Long userId);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param sysUser 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-28 14:28:09
+     */
+    R queryByList(PageSysUserDto sysUser);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/UnionpayCarWashService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/UnionpayCarWashService.java
new file mode 100644
index 0000000..68d2ea6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/UnionpayCarWashService.java
@@ -0,0 +1,12 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.service_community.entity.UnionpayCarWash;
+
+public interface UnionpayCarWashService
+{
+    UnionpayCarWash queryById(String carWashId);
+
+    UnionpayCarWash carWashById(String unionpayId);
+
+    int inset(String carWashId,String unionpayOrderId,String money);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerActivitiesPeopleService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerActivitiesPeopleService.java
new file mode 100644
index 0000000..ebbb191
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerActivitiesPeopleService.java
@@ -0,0 +1,56 @@
+package com.panzhihua.service_community.service;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.GrantIntegral;
+import com.panzhihua.common.model.vos.community.VolunteerActivitiesPeopleVO;
+import com.panzhihua.service_community.entity.VolunteerActivitiesPeople;
+
+import java.util.List;
+
+public interface VolunteerActivitiesPeopleService
+{
+    /**
+     * 志愿者单个详情
+     * @param id
+     * @return
+     */
+    VolunteerActivitiesPeople vapGetById(String id);
+
+    /**
+     * 参与人员列表
+     * @param activityId
+     * @param communityId
+     * @return
+     */
+    List<VolunteerActivitiesPeople> vapGetList(String activityId,
+                                               String communityId);
+
+    /**
+     * 添加参与人员
+     * @param volunteerActivitiesPeopleVO
+     * @return
+     */
+    int vapInsert(VolunteerActivitiesPeopleVO volunteerActivitiesPeopleVO);
+
+    /**
+     * 修改参与人员
+     * @param volunteerActivitiesPeopleVO
+     * @return
+     */
+    int vapUpdate(VolunteerActivitiesPeopleVO volunteerActivitiesPeopleVO);
+
+    /**
+     * 删除参与人员
+     * @param id
+     * @return
+     */
+    int vapDelete(String id);
+
+    /**
+     * 积分发放
+     * @return
+     */
+    R grantIntegral(GrantIntegral grantIntegral);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerActivityService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerActivityService.java
new file mode 100644
index 0000000..126bb76
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerActivityService.java
@@ -0,0 +1,51 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.community.VolunteerActivityVO;
+import com.panzhihua.service_community.entity.VolunteerActivity;
+
+import java.util.Date;
+
+public interface VolunteerActivityService extends IService<VolunteerActivity>
+{
+
+    /**
+     * 获取单个详情
+     * @param id
+     * @return
+     */
+    VolunteerActivity queryById( String id,String userId);
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    IPage<VolunteerActivity> queryList(int pageNum,int pageSize,
+                                       String name,
+                                       String acState,
+                                       String acType,
+                                       String userId,
+                                       Date actityBeginTime,
+                                       Date actityEndTime);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    int insertVolunteer(VolunteerActivityVO volunteerActivityVO);
+
+
+    int updateById(VolunteerActivityVO volunteerActivityVO);
+
+
+    int deleteById(String id);
+
+
+    int timedTaskVolunteerActivitiesJobHandler();
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerCommunityConfigService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerCommunityConfigService.java
new file mode 100644
index 0000000..8f9d46b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerCommunityConfigService.java
@@ -0,0 +1,29 @@
+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.VolunteerCommunityConfigVO;
+import com.panzhihua.service_community.entity.VolunteerCommunityConfig;
+
+public interface VolunteerCommunityConfigService extends IService<VolunteerCommunityConfig>
+{
+    /**
+     * 详情
+     * @param
+     * @return
+     */
+    R getData(String communityId);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    R insertvo(VolunteerCommunityConfigVO item);
+
+
+    R update(VolunteerCommunityConfigVO item);
+
+
+    R delete(String id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerCommunityDiscountService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerCommunityDiscountService.java
new file mode 100644
index 0000000..4435caf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerCommunityDiscountService.java
@@ -0,0 +1,31 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.community.VolunteerCommunityDiscountVO;
+import com.panzhihua.service_community.entity.VolunteerCommunityDiscount;
+
+import java.util.List;
+
+public interface VolunteerCommunityDiscountService extends IService<VolunteerCommunityDiscount>
+{
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    List<VolunteerCommunityDiscount> getList(String communityId);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    int insert(VolunteerCommunityDiscountVO item);
+
+
+    int update(VolunteerCommunityDiscountVO item);
+
+
+    int delete(String id);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerCreditsExchangeService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerCreditsExchangeService.java
new file mode 100644
index 0000000..c4b5452
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerCreditsExchangeService.java
@@ -0,0 +1,81 @@
+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.VolunteerCreditsExchangeVO;
+import com.panzhihua.service_community.entity.VolunteerCreditsExchange;
+
+public interface VolunteerCreditsExchangeService extends IService<VolunteerCreditsExchange>
+{
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    R getList(int pageNum, int pageSize,
+              String goodsId,
+              String orderNumber,
+              String goodsName,
+              String condition,
+              String userName,
+              String communityId,
+              String userId,
+              String orderType,
+              String merchantId
+
+    );
+
+    /**
+     * 查询详情
+     * @param id
+     * @return
+     */
+    R getData(String id);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    R insertData(VolunteerCreditsExchangeVO item);
+
+
+    /**
+     * 积分购买商家商品
+     * @param item
+     * @return
+     */
+    R insertMerchantData(VolunteerCreditsExchangeVO item);
+
+    /**
+     * 更新
+     * @param item
+     * @return
+     */
+    R update(VolunteerCreditsExchangeVO item);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    R delete(String id);
+
+    /**
+     * 核销
+     * @param id
+     * @return
+     */
+    R conditionData(String id);
+
+
+    /**
+     * 社区取消订单
+     * @param id  订单iD
+     * @return
+     */
+    R communityCancellation(String id);
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerIntegralMerchantService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerIntegralMerchantService.java
new file mode 100644
index 0000000..b878c19
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerIntegralMerchantService.java
@@ -0,0 +1,42 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.community.VolunteerIntegralMerchantVO;
+import com.panzhihua.service_community.entity.VolunteerIntegralMerchant;
+
+public interface VolunteerIntegralMerchantService
+{
+    /**
+     * 获取单个详情
+     * @param id
+     * @return
+     */
+    VolunteerIntegralMerchant queryById(String id);
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    IPage<VolunteerIntegralMerchant> queryList(Page page,
+                                               String name,
+                                               String state,
+                                               String goodType,
+                                               String merchantId);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    int insertVolunteer(VolunteerIntegralMerchantVO vimVO);
+
+    int updateById(VolunteerIntegralMerchantVO vimVO);
+
+    int deleteById(String id);
+
+
+    int getNum(String id);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerIntegralRecordService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerIntegralRecordService.java
new file mode 100644
index 0000000..32ca8ed
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerIntegralRecordService.java
@@ -0,0 +1,40 @@
+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.VolunteerIntegralRecordVO;
+import com.panzhihua.service_community.entity.VolunteerIntegralRecord;
+
+public interface VolunteerIntegralRecordService extends IService<VolunteerIntegralRecord> {
+
+    /**
+     * 获取单个详情
+     *
+     * @param id
+     * @return
+     */
+    R getId(String id);
+
+    /**
+     * 分页查询
+     *
+     * @param
+     * @return
+     */
+    R getList(int pageNum, int pageSize,String userId);
+
+    /**
+     * 新增
+     *
+     * @param
+     * @return
+     */
+    R insertVolunteer(VolunteerIntegralRecordVO volunteerIntegralRecordVO);
+
+
+    R updateId(VolunteerIntegralRecordVO volunteerIntegralRecordVO);
+
+
+    R deleteId(String id);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerMerchantEvaluateService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerMerchantEvaluateService.java
new file mode 100644
index 0000000..7554a7b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerMerchantEvaluateService.java
@@ -0,0 +1,44 @@
+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.VolunteerMerchantEvaluateVO;
+import com.panzhihua.service_community.entity.VolunteerMerchantEvaluate;
+import org.apache.ibatis.annotations.Param;
+
+public interface VolunteerMerchantEvaluateService extends IService<VolunteerMerchantEvaluate>
+{
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    R getList(int pageNum,int pageSize,String communityId, String merchantId);
+
+    /**
+     * 获取详情
+     * @param id
+     * @return
+     */
+    R getData(String id);
+
+    /**
+     * 新增评价
+     * @return
+     */
+    R insert(VolunteerMerchantEvaluateVO item);
+
+    /**
+     * 更新评价
+     * @return
+     */
+    R update(VolunteerMerchantEvaluateVO item);
+
+
+    /**
+     * 删除评价
+     * @param id
+     * @return
+     */
+    R delete(String id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerMerchantService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerMerchantService.java
new file mode 100644
index 0000000..f06f38c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerMerchantService.java
@@ -0,0 +1,49 @@
+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.VolunteerMerchantVO;
+import com.panzhihua.service_community.entity.VolunteerMerchant;
+import org.apache.ibatis.annotations.Param;
+
+public interface VolunteerMerchantService extends IService<VolunteerMerchant>
+{
+
+
+
+    R getById(String id);
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    R volunteerMerchantGetList(int pageNum,int pageSize,
+                               String merchantState,
+                               String merchantType,
+                               String name,
+                               String communityId);
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    R insertVolunteerMerchant(VolunteerMerchantVO vtvo);
+
+    R updateVolunteerMerchant(VolunteerMerchantVO vtvo);
+
+    R deleteVolunteerMerchant(String id);
+
+    /**
+     * 判断是否是商家
+     * @param userId
+     * @return
+     */
+    R isMerchant(@Param("userId") String userId);
+    /**
+     * 根据电话号码  或者姓名查询用户
+     * @param
+     * @return
+     */
+    R getUser(String communityId,String userName,String userPhone);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerMerchantWithdrawService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerMerchantWithdrawService.java
new file mode 100644
index 0000000..0f97022
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerMerchantWithdrawService.java
@@ -0,0 +1,46 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.VolunteerMerchantWithdrawVO;
+import com.panzhihua.service_community.entity.VolunteerMerchantWithdraw;
+import org.apache.ibatis.annotations.Param;
+
+public interface VolunteerMerchantWithdrawService extends IService<VolunteerMerchantWithdraw>
+{
+    /**
+     * 商家提现列表啊
+     * @param disposeType
+     * @return
+     */
+    R getList(int pageNum, int pageSize, String disposeType,String merchantName,String merchantId,String communityId);
+
+    /**
+     * 新增商家提现
+     * @param item
+     * @return
+     */
+    R insert(VolunteerMerchantWithdrawVO item);
+
+    /**
+     * 编辑商家提现
+     * @param item
+     * @return
+     */
+    R update(VolunteerMerchantWithdrawVO item);
+
+    /**
+     * 删除商家提现
+     * @param id
+     * @return
+     */
+    R delete(String id);
+
+    /**
+     * 处理商家提现
+     * @param id
+     * @return
+     */
+    R dispose(String id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerTypeService.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerTypeService.java
new file mode 100644
index 0000000..cb5a236
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/VolunteerTypeService.java
@@ -0,0 +1,28 @@
+package com.panzhihua.service_community.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.VolunteerTypeVO;
+import com.panzhihua.service_community.entity.VolunteerType;
+
+public interface VolunteerTypeService  extends IService<VolunteerType>
+{
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    R volunteerTypeGetList(int pageNum,int pageSize,String type);
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    R insertvolunteerType(VolunteerTypeVO volunteerTypeVO);
+
+    R volunteerTypeUpdate(VolunteerTypeVO volunteerTypeVO);
+
+    R volunteerTypeDelete(String id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/AutomessageSysUserServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/AutomessageSysUserServiceImpl.java
new file mode 100644
index 0000000..dab9bb1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/AutomessageSysUserServiceImpl.java
@@ -0,0 +1,27 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.dao.AutomessageSysUserDao;
+import com.panzhihua.service_community.entity.AutomessageSysUser;
+import com.panzhihua.service_community.service.AutomessageSysUserService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+/**
+ * @ClassName: AutomessageSysUserServiceImpl
+ * @Author: yh
+ * @Date: 2022/10/21 9:39
+ * @Description:
+ */
+@Service
+public class AutomessageSysUserServiceImpl extends ServiceImpl<AutomessageSysUserDao, AutomessageSysUser>
+        implements AutomessageSysUserService {
+    @Resource
+    private AutomessageSysUserDao automessageSysUserDao;
+    @Override
+    public R selectAutomessageSysUserById(Long id) {
+        return R.ok(automessageSysUserDao.selectAutomessageSysUserById(id));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/BcDictionaryServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/BcDictionaryServiceImpl.java
new file mode 100644
index 0000000..a7d4069
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/BcDictionaryServiceImpl.java
@@ -0,0 +1,114 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.BcDictionaryItemVO;
+import com.panzhihua.common.model.vos.BcDictionaryVO;
+import com.panzhihua.common.model.vos.DictionaryVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.utlis.CopyUtil;
+import com.panzhihua.service_community.dao.BcDictionaryDAO;
+import com.panzhihua.service_community.dao.BcDictionaryItemDAO;
+import com.panzhihua.service_community.model.dos.BcDictionaryDO;
+import com.panzhihua.service_community.model.dos.BcDictionaryItemDO;
+import com.panzhihua.service_community.service.BcDictionaryService;
+
+/**
+ * @author xyh
+ * @date 2021/6/11 16:06
+ */
+@Service
+public class BcDictionaryServiceImpl extends ServiceImpl<BcDictionaryItemDAO, BcDictionaryItemDO>
+    implements BcDictionaryService {
+
+    @Resource
+    private BcDictionaryDAO dictionaryDAO;
+
+    @Override
+    public R<List<BcDictionaryVO>> getDictionaryByKey(String key) {
+        List<BcDictionaryItemDO> list = baseMapper.getDictionaryByKey(key);
+        List<BcDictionaryVO> listVO = new ArrayList<>();
+        for (BcDictionaryItemDO dictionaryItemDO : list) {
+            BcDictionaryVO bcDictionaryVO = new BcDictionaryVO();
+            bcDictionaryVO.setCode(dictionaryItemDO.getMnemonicCode());
+            bcDictionaryVO.setDictName(dictionaryItemDO.getDictItemName());
+            bcDictionaryVO.setDictValue(dictionaryItemDO.getDictValue());
+            listVO.add(bcDictionaryVO);
+        }
+        return R.ok(listVO);
+    }
+
+    @Override
+    public BcDictionaryItemVO getByCode(String dictId, String code) {
+        BcDictionaryItemDO dictionaryItemDO =
+            baseMapper.selectOne(new QueryWrapper<BcDictionaryItemDO>().eq("dict_id", dictId).eq("dict_value", code));
+        if (dictionaryItemDO != null) {
+            return CopyUtil.copyProperties(dictionaryItemDO, BcDictionaryItemVO.class);
+        }
+        return null;
+    }
+
+    @Override
+    public BcDictionaryDO getDictionaryByCode(String dictName, String dictKey, Long parentId) {
+        return dictionaryDAO.selectOne(new QueryWrapper<BcDictionaryDO>().eq("dict_name", dictName)
+            .eq("dict_key", dictKey).eq("parent_id", parentId));
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R insertDiction(DictionaryVO dictionaryVO) {
+        if (getDictionaryByCode(dictionaryVO.getDictName(), dictionaryVO.getDictKey(),
+            dictionaryVO.getParentId()) != null) {
+            return R.fail("数据已经存在!");
+        }
+        BcDictionaryDO dictionaryDO = new BcDictionaryDO();
+        dictionaryDO.setId(dictionaryVO.getId());
+        dictionaryDO.setDictName(dictionaryVO.getDictName());
+        dictionaryDO.setDictKey(dictionaryVO.getDictKey());
+        dictionaryDO.setParentId(dictionaryVO.getParentId());
+        dictionaryDO
+            .setPathId(dictionaryVO.getParentId().toString().concat(",").concat(dictionaryVO.getId().toString()));
+        dictionaryDO.setLevelIndex(dictionaryVO.getLevelIndex());
+        dictionaryDO.setEnabled(true);
+        dictionaryDO.setSort(0);
+        dictionaryDO.setRemarks("");
+        dictionaryDO.setDeleteFlag(false);
+        dictionaryDO.setCreateUser(1L);
+        dictionaryDO.setModifyUser(1L);
+        int flag = dictionaryDAO.insert(dictionaryDO);
+        return flag > 1 ? R.ok() : R.fail();
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R insertDictionItem(BcDictionaryVO dictionaryVO) {
+        if (getByCode(dictionaryVO.getDictId().toString(), dictionaryVO.getDictValue()) != null) {
+            return R.fail("数据已经存在!");
+        }
+        BcDictionaryItemDO dictionaryItemDO = new BcDictionaryItemDO();
+        dictionaryItemDO.setDictItemName(dictionaryVO.getDictName());
+        dictionaryItemDO.setDictValue(dictionaryVO.getDictValue());
+        dictionaryItemDO.setMnemonicCode(dictionaryVO.getCode());
+        dictionaryItemDO.setDictId(dictionaryVO.getDictId());
+        dictionaryItemDO.setEnabled(true);
+        dictionaryItemDO.setOrgPathId(0L);
+        dictionaryItemDO.setSort(0);
+        dictionaryItemDO.setRemarks("");
+        dictionaryItemDO.setCreateUser(1L);
+        dictionaryItemDO.setCreateDate(new Date());
+        dictionaryItemDO.setModifyUser(1L);
+        dictionaryItemDO.setModifyDate(new Date());
+        dictionaryItemDO.setDeleteFlag(false);
+        int flag = baseMapper.insert(dictionaryItemDO);
+        return flag > 1 ? R.ok() : R.fail();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/BcRegionServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/BcRegionServiceImpl.java
new file mode 100644
index 0000000..acb7674
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/BcRegionServiceImpl.java
@@ -0,0 +1,106 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ProvinceCityReturnVO;
+import com.panzhihua.service_community.entity.BcRegion;
+import com.panzhihua.service_community.dao.BcRegionDao;
+import com.panzhihua.service_community.service.BcRegionService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 行政区划表(BcRegion)表服务实现类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 行政区划表相关功能
+ *
+ * @author zzj
+ * @since 2022-04-20 14:26:14
+ */
+@Slf4j
+@Service
+public class BcRegionServiceImpl extends ServiceImpl<BcRegionDao, BcRegion> implements BcRegionService {
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+
+    @Override
+    public R pageList(String province, String city, String country,String town) {
+        return R.ok(this.baseMapper.selectByName(province,city,country,town));
+    }
+
+    @Override
+    public R selectCommunityCodeByName( String city, String country,String town,String villagetr) {
+        return R.ok(this.baseMapper.selectCommunityCodeByName(city,country,town,villagetr));
+    }
+
+    @Override
+    public R levelList(Integer level,String code) {
+        if(level==1){
+            List<ProvinceCityReturnVO> firstLevel=this.baseMapper.selectFirst();
+            return R.ok(firstLevel);
+        }
+        if(level==2){
+            List<ProvinceCityReturnVO> secondLevel=this.baseMapper.selectSecond(code);
+            return R.ok(secondLevel);
+        }
+        if(level==3){
+            List<ProvinceCityReturnVO> thirdLevel=this.baseMapper.selectThird(code);
+            return R.ok(thirdLevel);
+        }
+        if(level==4){
+            List<ProvinceCityReturnVO> fourthLevel=this.baseMapper.selectFourth(code);
+            return R.ok(fourthLevel);
+        }
+        return R.fail("参数错误");
+//        if(stringRedisTemplate.hasKey("levelList")){
+//            return R.ok(stringRedisTemplate.opsForValue().get("levelList"));
+//        }
+//        else {
+//            List<ProvinceCityReturnVO> firstLevel=this.baseMapper.selectFirst();
+//            firstLevel.forEach(provinceCityReturnVO -> {
+//                List<ProvinceCityReturnVO> secondLevel=this.baseMapper.selectSecond(provinceCityReturnVO.getCode());
+//                secondLevel.forEach(provinceCityReturnVO1 -> {
+//                    List<ProvinceCityReturnVO> thirdLevel=this.baseMapper.selectThird(provinceCityReturnVO1.getCode());
+//                    thirdLevel.forEach(provinceCityReturnVO2 -> {
+//                        List<ProvinceCityReturnVO> fourthLevel=this.baseMapper.selectFourth(provinceCityReturnVO2.getCode());
+//                        provinceCityReturnVO2.setProvinceCityReturnVOList(fourthLevel);
+//                    });
+//                    provinceCityReturnVO1.setProvinceCityReturnVOList(thirdLevel);
+//                });
+//                provinceCityReturnVO.setProvinceCityReturnVOList(secondLevel);
+//            });
+//            stringRedisTemplate.opsForValue().set("levelList", JSON.toJSONString(firstLevel));
+//            return R.ok(firstLevel);
+//        }
+    }
+
+    @Override
+    public R levelListBackstage() {
+        if(stringRedisTemplate.hasKey("levelList")){
+            return R.ok(stringRedisTemplate.opsForValue().get("levelList"));
+        }
+        else {
+            List<ProvinceCityReturnVO> firstLevel=this.baseMapper.selectFirst();
+            firstLevel.forEach(provinceCityReturnVO -> {
+                List<ProvinceCityReturnVO> secondLevel=this.baseMapper.selectSecond(provinceCityReturnVO.getCode());
+                secondLevel.forEach(provinceCityReturnVO1 -> {
+                    List<ProvinceCityReturnVO> thirdLevel=this.baseMapper.selectThird(provinceCityReturnVO1.getCode());
+                    thirdLevel.forEach(provinceCityReturnVO2 -> {
+                        List<ProvinceCityReturnVO> fourthLevel=this.baseMapper.selectFourth(provinceCityReturnVO2.getCode());
+                        provinceCityReturnVO2.setProvinceCityReturnVOList(fourthLevel);
+                    });
+                    provinceCityReturnVO1.setProvinceCityReturnVOList(thirdLevel);
+                });
+                provinceCityReturnVO.setProvinceCityReturnVOList(secondLevel);
+            });
+            stringRedisTemplate.opsForValue().set("levelList", JSON.toJSONString(firstLevel));
+            return R.ok(firstLevel);
+        }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/BigScreenServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/BigScreenServiceImpl.java
new file mode 100644
index 0000000..38d8e1e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/BigScreenServiceImpl.java
@@ -0,0 +1,176 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.SensitiveUtil;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.dao.ComPbMemberDAO;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenStatisticAgeGenderDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenStatisticPartyActivityDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.PageBigScreenStatisticPartyOrg;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.bigscreen.*;
+import com.panzhihua.service_community.dao.BigScreenDAO;
+import com.panzhihua.service_community.service.BigScreenService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @ClasssName BigScreenService
+ * @Description TODO
+ * @Author cedoo
+ * @Date 2021/6/16
+ * @Version 1.0
+ **/
+@Slf4j
+@Service
+public class BigScreenServiceImpl implements BigScreenService {
+    @Resource
+    private BigScreenDAO bigScreenDAO;
+    @Resource
+    private ComPbMemberDAO comPbMemberDAO;
+
+    @Override
+    public R partyOrgMembers(PageBigScreenStatisticPartyOrg pageBigScreenStatisticPartyOrg) {
+        Page page = new Page<>();
+        page.setSize(pageBigScreenStatisticPartyOrg.getPageSize());
+        page.setCurrent(pageBigScreenStatisticPartyOrg.getPageNum());
+        IPage<BigScreenStatisticPartyOrg> rPage = bigScreenDAO.partyOrgMembers(page, pageBigScreenStatisticPartyOrg);
+        return R.ok(rPage);
+    }
+
+    @Override
+    public R<BigScreenStatisticAgeGender> ageGender(BigScreenStatisticAgeGenderDTO bigScreenStatisticAgeGenderDTO) {
+        BigScreenStatisticAgeGender gender = bigScreenDAO.gender(bigScreenStatisticAgeGenderDTO);
+        BigScreenStatisticAgeGender age = bigScreenDAO.age(bigScreenStatisticAgeGenderDTO);
+
+        BigScreenStatisticAgeGender ageGender = new BigScreenStatisticAgeGender();
+        if(age!=null){
+            BeanUtils.copyProperties(age, ageGender);
+            ageGender.setManTotal(gender.getManTotal());
+            ageGender.setWomeTotal(gender.getWomeTotal());
+
+            /**
+             * 计算百分比
+             */
+            Double manPer = 1.0 * ageGender.getManTotal() / (ageGender.getManTotal() + ageGender.getWomeTotal());
+            Double womenPer = 1.0 * ageGender.getWomeTotal() / (ageGender.getManTotal() + ageGender.getWomeTotal());
+            ageGender.setManPer(manPer);
+            ageGender.setWomenPer(womenPer);
+
+            Integer memTotal = ageGender.getThirtyTotal() + ageGender.getSixtyTotal() + ageGender.getBiggerTotal();
+            Double thrPer = 1.0 * ageGender.getThirtyTotal() / memTotal;
+            Double sixPer = 1.0 * ageGender.getSixtyTotal() / memTotal;
+            Double biggerPer = 1.0 * ageGender.getBiggerTotal() / memTotal;
+            ageGender.setThirtyPer(thrPer);
+            ageGender.setSixtyPer(sixPer);
+            ageGender.setBiggerPer(biggerPer);
+        }
+
+        return R.ok(ageGender);
+    }
+
+    @Override
+    public R<BigScreenStatisticPartyBuild> bigscreenPartybuild(Long communityId) {
+        return R.ok(bigScreenDAO.partybuild(communityId));
+    }
+
+    @Override
+    public R<List<PartyBuildingMemberVO>> bigscreenPartyactivitytopuser(Long communityId) {
+        List<PartyBuildingMemberVO> listRt = bigScreenDAO.bigscreenPartyactivitytopuser(communityId);
+        if (listRt == null || listRt.size() < 3) {
+            // 选择默认的党员列表
+            List<PartyBuildingMemberVO> defaultPartyactivity = bigScreenDAO.defaultPartyactivity(communityId);
+            listRt.addAll(defaultPartyactivity);
+            if (listRt.size() >= 3) {
+                listRt = listRt.subList(0, 3);
+            }
+        }
+        listRt.forEach(partyBuildingMemberVO -> {
+            if(StringUtils.isNotEmpty(partyBuildingMemberVO.getName())){
+                partyBuildingMemberVO.setName(SensitiveUtil.replaceName(partyBuildingMemberVO.getName()));
+            }
+        });
+        return R.ok(listRt);
+    }
+
+    @Override
+    public R<List<BigScreenStatisticPartyActivity>>
+        bigscreenPartyactivity(BigScreenStatisticPartyActivityDTO bigScreenStatisticPartyActivityDTO) {
+        List<BigScreenStatisticPartyActivity> listR = new ArrayList<>();
+        if (bigScreenStatisticPartyActivityDTO.getType().equals(3)) {
+            listR = bigScreenDAO.partyactivity(bigScreenStatisticPartyActivityDTO);
+        } else if (bigScreenStatisticPartyActivityDTO.getType().equals(2)) {
+            listR = bigScreenDAO.partyactivityByWeek(bigScreenStatisticPartyActivityDTO);
+        }
+        return R.ok(listR);
+    }
+
+    @Override
+    public R partyActivityLine(Long communityId) {
+        List<BigScreenActivityLine> bigScreenActivityLines=this.getPastMonth();
+        bigScreenActivityLines.forEach(bigScreenActivityLine -> {
+           BigScreenActivityLine bigScreenActivityLine1=comPbMemberDAO.selectActivityCountMonth(communityId,bigScreenActivityLine.getX(),bigScreenActivityLine.getYear());
+           bigScreenActivityLine.setY(bigScreenActivityLine1.getY());
+           bigScreenActivityLine.setCountY(bigScreenActivityLine1.getCountY());
+           bigScreenActivityLine.setX(bigScreenActivityLine.getYear().substring(2,4)+"-"+bigScreenActivityLine.getX());
+        });
+        return R.ok(bigScreenActivityLines);
+    }
+
+    @Override
+    public R partyActivityTop(PageBigScreenStatisticPartyOrg pageBigScreenStatisticPartyOrg) {
+        return R.ok(this.comPbMemberDAO.selectActivityTop(new Page(pageBigScreenStatisticPartyOrg.getPageNum(),pageBigScreenStatisticPartyOrg.getPageSize()),pageBigScreenStatisticPartyOrg.getCommunityId()));
+    }
+
+    @Override
+    public R serviceData(Long communityId) {
+        return R.ok(this.comPbMemberDAO.bigScreenServiceData(communityId));
+    }
+
+    @Override
+    public R serviceUser(Long communityId) {
+        return R.ok(this.comPbMemberDAO.bigScreenServiceUser(communityId));
+    }
+
+    public List<BigScreenActivityLine> getPoints(){
+        List<BigScreenActivityLine> bigScreenActivityLines=new ArrayList<>();
+        for(int i=1;i<=12;i++){
+            String aDate="";
+            if(i<10){
+                aDate = "0"+i;
+            }
+            else {
+                aDate=i+"";
+            }
+            BigScreenActivityLine bigScreenActivityLine=new BigScreenActivityLine();
+            bigScreenActivityLine.setX(aDate);
+            bigScreenActivityLines.add(bigScreenActivityLine);
+        }
+        return bigScreenActivityLines;
+    }
+
+    public List<BigScreenActivityLine> getPastMonth(){
+        List<BigScreenActivityLine> bigScreenActivityLines=new ArrayList<>();
+        for(int i=11;i>=0;i--){
+            BigScreenActivityLine bigScreenActivityLine=new BigScreenActivityLine();
+            String date=DateUtils.getDateFormatString(DateUtils.addMonth(new Date(),-i),"MM");
+            String year=DateUtils.getDateFormatString(DateUtils.addMonth(new Date(),-i),"yyyy");
+            bigScreenActivityLine.setX(date);
+            bigScreenActivityLine.setYear(year);
+            bigScreenActivityLines.add(bigScreenActivityLine);
+        }
+        return bigScreenActivityLines;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/BigScreenStatisticsServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/BigScreenStatisticsServiceImpl.java
new file mode 100644
index 0000000..03d420c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/BigScreenStatisticsServiceImpl.java
@@ -0,0 +1,1365 @@
+package com.panzhihua.service_community.service.impl;
+
+import cn.hutool.core.util.IdcardUtil;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.PageBaseDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PagePopularMerchantDTO;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.*;
+import com.panzhihua.common.model.vos.community.bigscreen.*;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
+import com.panzhihua.common.model.vos.community.fms.ComFmsTeamVO;
+import com.panzhihua.common.model.vos.community.screen.civil.CivilVillageStatisticsVO;
+import com.panzhihua.common.model.vos.community.screen.event.EventGridIncidentStatisticsVO;
+import com.panzhihua.common.model.vos.community.screen.event.EventGridStatisticsVO;
+import com.panzhihua.common.model.vos.grid.EventVO;
+import com.panzhihua.common.model.vos.property.ComPropertyAlarmVO;
+import com.panzhihua.common.model.vos.property.ComPropertyEquipmentVO;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.service_community.dao.*;
+import com.panzhihua.service_community.model.dos.ComActDO;
+import com.panzhihua.service_community.service.BigScreenStatisticsService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
+
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+
+/**
+ * @title: BigScreenStatisticsServiceImpl
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 大屏统计服务实现类
+ * @author: hans
+ * @date: 2021/12/06 9:56
+ */
+@Service
+@Slf4j
+public class BigScreenStatisticsServiceImpl implements BigScreenStatisticsService {
+
+    private static final Integer pageSize = 100;
+
+    @Resource
+    private ComActEasyPhotoDAO comActEasyPhotoDAO;
+
+    @Resource
+    private ComActMicroWishDAO comActMicroWishDAO;
+
+    @Resource
+    private ComActDiscussDAO comActDiscussDAO;
+
+    @Resource
+    private ComActNeighborCircleDAO comActNeighborCircleDAO;
+
+    @Resource
+    private ComPropertyDao comPropertyDao;
+
+    @Resource
+    private ComActWarehouseDonatesDao comActWarehouseDonatesDao;
+
+    @Resource
+    private ComMngPopulationDAO comMngPopulationDAO;
+
+    @Resource
+    private ConvenientMerchantDAO convenientMerchantDAO;
+
+    @Resource
+    private ComActQuestnaireDAO comActQuestnaireDAO;
+
+    @Resource
+    private ComActDynDAO comActDynDAO;
+
+    @Resource
+    private ComActActivityDAO comActActivityDAO;
+
+    @Resource
+    private ComActCommitteeDao comActCommitteeDao;
+
+    @Resource
+    private ComActSocialProjectDao comActSocialProjectDao;
+
+    @Resource
+    private ComActSocialOrgDao comActSocialOrgDao;
+
+    @Resource
+    private ComActSocialWorkerDao comActSocialWorkerDao;
+    @Resource
+    private ComActFourMemberDao comActFourMemberDao;
+    @Resource
+    private ComFmsServiceDAO comFmsServiceDAO;
+    @Resource
+    private ComMngVolunteerMngDAO comMngVolunteerMngDAO;
+    @Resource
+    private ComActSocialOrgHatchDAO comActSocialOrgHatchDAO;
+    @Resource
+    private ComActDAO comActDAO;
+    @Resource
+    private ComActEnterpriseDAO comActEnterpriseDAO;
+
+    /**
+     * 大数据分析平台-居民自治
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R getResidentAutonomy(Long communityId) {
+        ResidentAutonomyStatisticsVO statisticsVO = comActEasyPhotoDAO.selectResidentAutonomyStatistics(communityId);
+        if (isNull(statisticsVO)) {
+            statisticsVO = new ResidentAutonomyStatisticsVO();
+        }
+        List<StatisticsCommVO> easyPhotoHistogram = comActEasyPhotoDAO.selectStatisticsList(communityId);
+        //随手拍总数
+        Integer easyPhotoTotalCount = 0;
+        //随手拍柱状统计
+        if (Objects.nonNull(easyPhotoHistogram) && !easyPhotoHistogram.isEmpty()) {
+            easyPhotoTotalCount = easyPhotoHistogram.stream().map(StatisticsCommVO::getNum).mapToInt(Integer::intValue).sum();
+        }
+        statisticsVO.setEasyPhotoTotalCount(easyPhotoTotalCount);
+        statisticsVO.setEasyPhotoHistogram(easyPhotoHistogram);
+
+        //待实现&已实现数目及占比
+        List<StatisticsCommVO> microWishRealizePercent = comActMicroWishDAO.selectRealizePercent(communityId);
+        statisticsVO.setMicroWishRealizePercent(microWishRealizePercent);
+        //微心愿图片
+        List<String> microWishImages = comActMicroWishDAO.getPassedAllImages(communityId, 20);
+        statisticsVO.setMicroWishImages(microWishImages);
+
+        //议事投票类型占比
+        List<StatisticsCommVO> discussTypePercent = comActDiscussDAO.selectTypePercent(communityId);
+        statisticsVO.setDiscussTypePercent(discussTypePercent);
+        //议事标题
+        List<String> discussTitles = comActDiscussDAO.getTitles(1, communityId, pageSize);
+        statisticsVO.setDiscussTitles(discussTitles);
+        //投票标题
+        List<String> voteTitles = comActDiscussDAO.getTitles(2, communityId, pageSize);
+        statisticsVO.setVoteTitles(voteTitles);
+
+        //邻里圈图片
+        List<String> neighborImages = comActNeighborCircleDAO.getAllImages(communityId, 20);
+        statisticsVO.setNeighborImages(neighborImages);
+        //邻里圈文本内容
+        List<String> neighborContents = comActNeighborCircleDAO.getContents(communityId, pageSize);
+        statisticsVO.setNeighborContents(neighborContents);
+
+        //报事报修新增折线数据
+        List<StatisticsCommVO> repairAddPolylineData = comPropertyDao.getRepairPolylineDate(communityId);
+        statisticsVO.setRepairAddPolylineData(repairAddPolylineData);
+        //报事报修累计折线数据
+        List<StatisticsCommVO> repairTotalPolylineData = new ArrayList<>();
+        repairAddPolylineData.forEach(e -> {
+            StatisticsCommVO temp = comPropertyDao.getRepairTotalPolylineDate(communityId, e.getFiled());
+            temp.setFiled(e.getFiled());
+            repairTotalPolylineData.add(temp);
+        });
+        statisticsVO.setRepairTotalPolylineData(repairTotalPolylineData);
+
+        //捐赠记录
+        List<String> warehouseDonateRecords = comActWarehouseDonatesDao.getWarehouseDonateRecords(communityId, pageSize);
+        statisticsVO.setWarehouseDonateRecords(warehouseDonateRecords);
+        //爱心传递
+        List<String> warehouseLoveTransfer = comActWarehouseDonatesDao.getWarehouseLoveTransfer(communityId, pageSize);
+        statisticsVO.setWarehouseLoveTransfer(warehouseLoveTransfer);
+        //捐赠图片
+        List<String> warehouseImages = comActWarehouseDonatesDao.getWarehouseImages(communityId, 20);
+        statisticsVO.setWarehouseImages(warehouseImages);
+
+        //居民活动柱状统计
+        List<StatisticsCommVO> residentActHistogram = comActActivityDAO.selectResidentActHistogramData(communityId, false);
+        //居民活动新增数据
+        List<StatisticsCommVO> actAddPolylineData = comActActivityDAO.getActAddPolylineData(communityId, true);
+        //居民活动发布总数
+        int residentActTotalCount = 0;
+        if (!residentActHistogram.isEmpty()) {
+            residentActTotalCount = residentActHistogram.stream().map(StatisticsCommVO::getNum).mapToInt(Integer::intValue).sum();
+        }
+        statisticsVO.setResidentActTotalCount(residentActTotalCount);
+        statisticsVO.setResidentActHistogram(actAddPolylineData);
+        //业主委员会党员占比
+        List<StatisticsCommVO> committeePartyPercent = comActCommitteeDao.selectCommitteePartyPercent(communityId);
+        statisticsVO.setCommitteePartyPercent(committeePartyPercent);
+        return R.ok(statisticsVO);
+    }
+
+    /**
+     * 大数据分析平台-清网治格
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R getGridsGovernance(Long communityId) {
+        GridsGovernanceStatisticsVO statisticsVO = comActEasyPhotoDAO.selectGridsGovernance(communityId);
+        if (isNull(statisticsVO)) {
+            statisticsVO = new GridsGovernanceStatisticsVO();
+        }
+        // 查询网格数据
+        List<EventGridStatisticsVO> gridStatisticsList = comMngPopulationDAO.getEventScreenGridData(communityId);
+        statisticsVO.setGridStatisticsList(gridStatisticsList);
+
+        // 查询小区列表
+        List<CivilVillageStatisticsVO> villageStatisticsList = comMngPopulationDAO.getCivilScreenVillageList(communityId);
+        if (!villageStatisticsList.isEmpty()) {
+            villageStatisticsList.forEach(village -> {
+                CivilVillageStatisticsVO villageStatisticsVO =
+                        comMngPopulationDAO.getCivilScreenVillageStatistics(village.getVillageId());
+                if (villageStatisticsVO != null) {
+                    village.setPeopleNum(villageStatisticsVO.getPeopleNum());
+                    village.setHouseNum(villageStatisticsVO.getHouseNum());
+                    village.setRegisterNum(villageStatisticsVO.getRegisterNum());
+                    village.setFlowNum(villageStatisticsVO.getFlowNum());
+                    // BeanUtils.copyProperties(villageStatisticsVO,village);
+                }
+            });
+        }
+        statisticsVO.setVillageStatisticsList(villageStatisticsList);
+        //事件分析新增折线数据
+        List<StatisticsCommVO> eventAddPolylineData = comPropertyDao.getEventAddPolylineData(communityId);
+        statisticsVO.setEventAddPolylineData(eventAddPolylineData);
+        //事件分析累计折线数据
+        List<StatisticsCommVO> eventTotalPolylineData = new ArrayList<>();
+        eventAddPolylineData.forEach(e -> {
+            StatisticsCommVO temp = comPropertyDao.getEventTotalPolylineDate(communityId, e.getFiled());
+            temp.setFiled(e.getFiled());
+            eventTotalPolylineData.add(temp);
+        });
+        statisticsVO.setEventTotalPolylineData(eventTotalPolylineData);
+        statisticsVO.generateStatisticsData();
+        return R.ok(statisticsVO);
+    }
+
+    /**
+     * 大数据分析平台-社区服务
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R getCommunityServiceStatistics(Long communityId) {
+        BigScreenCommunityStatisticsVO statisticsVO = new BigScreenCommunityStatisticsVO();
+        // 查询网格数据
+        List<EventGridStatisticsVO> gridStatisticsList = comMngPopulationDAO.getEventScreenGridData(communityId);
+        statisticsVO.setGridStatisticsList(gridStatisticsList);
+        // 查询小区列表
+        List<CivilVillageStatisticsVO> villageStatisticsList = comMngPopulationDAO.getCivilScreenVillageList(communityId);
+        if (!villageStatisticsList.isEmpty()) {
+            villageStatisticsList.forEach(village -> {
+                CivilVillageStatisticsVO villageStatisticsVO =
+                        comMngPopulationDAO.getCivilScreenVillageStatistics(village.getVillageId());
+                if (villageStatisticsVO != null) {
+                    village.setPeopleNum(villageStatisticsVO.getPeopleNum());
+                    village.setHouseNum(villageStatisticsVO.getHouseNum());
+                    village.setRegisterNum(villageStatisticsVO.getRegisterNum());
+                    village.setFlowNum(villageStatisticsVO.getFlowNum());
+                }
+            });
+        }
+        statisticsVO.setVillageStatisticsList(villageStatisticsList);
+        //商家地图点位数据
+        List<ConvenientMerchantVO> merchantVOList = convenientMerchantDAO.selectMerchantListByCommunity(communityId);
+        statisticsVO.setMerchantMapDataList(merchantVOList);
+        return R.ok(statisticsVO);
+    }
+
+    /**
+     * 分页获取热度排行商家
+     * @param pagePopularMerchantDTO
+     * @return
+     */
+    @Override
+    public R getScreenPopularMerchants(PagePopularMerchantDTO pagePopularMerchantDTO) {
+        Page page = new Page<>();
+        page.setSize(pagePopularMerchantDTO.getPageSize());
+        page.setCurrent(pagePopularMerchantDTO.getPageNum());
+        List<ConvenientMerchantVO> popularMerchants = convenientMerchantDAO.getScreenPopularMerchants(page, pagePopularMerchantDTO);
+        return R.ok(popularMerchants);
+    }
+
+    /**
+     * 首页二级页面-微心愿
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R indexMicroWish(Long communityId) {
+        BigScreenMicroWishStatisticsInfo statisticsInfo = comActMicroWishDAO.selectIndexMicroWishBaseData(communityId);
+        //微心愿新增折线数据
+        Date nowDate = new Date();
+        List<StatisticsCommVO> microWishAddPolylineData = comActMicroWishDAO.getMicroWishAddPolylineData(communityId);
+        statisticsInfo.setMicroWishAddPolylineData(microWishAddPolylineData);
+        //微心愿累计折线数据
+        List<StatisticsCommVO> microWishTotalPolylineData = new ArrayList<>();
+        microWishAddPolylineData.forEach(e -> {
+            StatisticsCommVO temp = comActMicroWishDAO.getMicroWishTotalPolylineDate(communityId, e.getFiled());
+            temp.setFiled(e.getFiled());
+            microWishTotalPolylineData.add(temp);
+        });
+        statisticsInfo.setMicroWishTotalPolylineData(microWishTotalPolylineData);
+        return R.ok(statisticsInfo);
+    }
+
+    /**
+     * 首页二级页面-随手拍
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R indexEasyPhoto(Long communityId) {
+        BigScreenEasyPhotoStatisticsInfo statisticsInfo = comActEasyPhotoDAO.selectIndexEasyPhotoBaseData(communityId);
+        //随手拍新增折线数据
+        Date nowDate = new Date();
+        List<StatisticsCommVO> easyPhotoAddPolylineData = comActEasyPhotoDAO.getEasyPhotoAddPolylineData(communityId);
+        statisticsInfo.setEasyPhotoAddPolylineData(easyPhotoAddPolylineData);
+        //随手拍累计折线数据
+        List<StatisticsCommVO> easyPhotoTotalPolylineData = new ArrayList<>();
+        easyPhotoAddPolylineData.forEach(e -> {
+            StatisticsCommVO temp = comActEasyPhotoDAO.getEasyPhotoTotalPolylineDate(communityId, e.getFiled());
+            temp.setFiled(e.getFiled());
+            easyPhotoTotalPolylineData.add(temp);
+        });
+        statisticsInfo.setEasyPhotoTotalPolylineData(easyPhotoTotalPolylineData);
+        return R.ok(statisticsInfo);
+    }
+
+    /**
+     * 首页二级页面-随手拍展示列表
+     * @return
+     */
+    @Override
+    public R indexEasyPhotoList(PageBaseDTO pageBaseDTO) {
+        Page page = retrievePage(pageBaseDTO);
+        return R.ok(comActEasyPhotoDAO.indexEasyPhotoList(page, pageBaseDTO));
+    }
+
+    /**
+     * 首页二级页面-社区问卷
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R indexQuestionnaire(Long communityId) {
+        BigScreenQuestionnaireStatisticsInfo statisticsInfo = comActQuestnaireDAO.getIndexQuestionnaireBaseData(communityId);
+        //社区问卷新增折线数据
+        List<StatisticsCommVO> questionnaireAddPolylineData = comActQuestnaireDAO.getQuestionnaireAddPolylineData(communityId);
+        statisticsInfo.setQuestionnaireAddPolylineData(questionnaireAddPolylineData);
+        //社区问卷累计折线数据
+        List<StatisticsCommVO> questionnaireTotalPolylineData = new ArrayList<>();
+        questionnaireAddPolylineData.forEach(e -> {
+            StatisticsCommVO temp = comActQuestnaireDAO.getQuestionnaireTotalPolylineDate(communityId, e.getFiled());
+            temp.setFiled(e.getFiled());
+            questionnaireTotalPolylineData.add(temp);
+        });
+        statisticsInfo.setQuestionnaireTotalPolylineData(questionnaireTotalPolylineData);
+        return R.ok(statisticsInfo);
+    }
+
+    /**
+     * 首页二级页面-社区动态
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R indexDyn(Long communityId) {
+        BigScreenDynStatisticsInfo statisticsInfo = new BigScreenDynStatisticsInfo();
+        List<StatisticsCommVO> dynCircleData = comActDynDAO.getIndexDynBaseData(communityId);
+        statisticsInfo.setDynCircleData(dynCircleData);
+        if (!dynCircleData.isEmpty()) {
+            statisticsInfo.setDynNum(dynCircleData.stream().map(StatisticsCommVO::getNum).mapToInt(Integer::intValue).sum());
+        }
+        //社区动态新增折线数据
+        List<StatisticsCommVO> dynAddPolylineData = comActDynDAO.getDynAddPolylineData(communityId);
+        statisticsInfo.setDynAddPolylineData(dynAddPolylineData);
+        //社区动态累计折线数据
+        List<StatisticsCommVO> dynTotalPolylineData = new ArrayList<>();
+        dynAddPolylineData.forEach(e -> {
+            StatisticsCommVO temp = comActDynDAO.getDynTotalPolylineDate(communityId, e.getFiled());
+            temp.setFiled(e.getFiled());
+            dynTotalPolylineData.add(temp);
+        });
+        statisticsInfo.setDynTotalPolylineData(dynTotalPolylineData);
+        return R.ok(statisticsInfo);
+    }
+
+    /**
+     * 首页二级页面-社区动态展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @Override
+    public R indexDynList(PageBaseDTO pageBaseDTO) {
+        Page page = retrievePage(pageBaseDTO);
+        return R.ok(comActDynDAO.indexDynList(page, pageBaseDTO));
+    }
+
+    /**
+     * 首页二级页面-邻里圈
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R indexNeighbor(Long communityId) {
+        BigScreenNeighborStatisticsInfo statisticsInfo = new BigScreenNeighborStatisticsInfo();
+        List<StatisticsCommVO> neighborCircleData = comActNeighborCircleDAO.getIndexNeighborBaseData(communityId);
+        statisticsInfo.setNeighborCircleData(neighborCircleData);
+        if (!neighborCircleData.isEmpty()) {
+            statisticsInfo.setPublishContentNum(neighborCircleData.stream().map(StatisticsCommVO::getNum).mapToInt(Integer::intValue).sum());
+            statisticsInfo.setPublishTopicNum(neighborCircleData.stream().filter(e -> !"无话题".equals(e.getFiled())).collect(Collectors.toList()).size());
+        }
+        //邻里圈新增折线数据
+        List<StatisticsCommVO> neighborAddPolylineData = comActNeighborCircleDAO.getNeighborAddPolylineData(communityId);
+        statisticsInfo.setNeighborAddPolylineData(neighborAddPolylineData);
+        //邻里圈累计折线数据
+        List<StatisticsCommVO> neighborTotalPolylineData = new ArrayList<>();
+        neighborAddPolylineData.forEach(e -> {
+            StatisticsCommVO temp = comActNeighborCircleDAO.getNeighborTotalPolylineDate(communityId, e.getFiled());
+            temp.setFiled(e.getFiled());
+            neighborTotalPolylineData.add(temp);
+        });
+        statisticsInfo.setNeighborTotalPolylineData(neighborTotalPolylineData);
+        return R.ok(statisticsInfo);
+    }
+
+    /**
+     * 首页二级页面-邻里圈展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @Override
+    public R indexNeighborList(PageBaseDTO pageBaseDTO) {
+        Page page = retrievePage(pageBaseDTO);
+        return R.ok(comActNeighborCircleDAO.indexNeighborList(page, pageBaseDTO));
+    }
+
+    /**
+     * 首页二级页面-便民商家
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R indexMerchant(Long communityId) {
+        BigScreenMerchantStatisticsInfo statisticsInfo = convenientMerchantDAO.getIndexMerchantBaseData(communityId);
+        //资源类型饼图数据(暂无)
+//        List<StatisticsCommVO> resourceTypeCircleData;
+        //服务类型饼图数据
+        List<StatisticsCommVO> serviceTypeCircleData = convenientMerchantDAO.selectServiceTypeCircleData(communityId);
+        statisticsInfo.setServiceTypeCircleData(serviceTypeCircleData);
+        if (!serviceTypeCircleData.isEmpty()) {
+            //服务类型数
+            statisticsInfo.setServiceTypeNum(serviceTypeCircleData.size());
+        }
+        //服务次数(目前暂时使用浏览量)新增折线数据
+        List<StatisticsCommVO> serviceTimesAddPolylineData = convenientMerchantDAO.getServiceTimesAddPolylineData(communityId);
+        statisticsInfo.setServiceTimesAddPolylineData(serviceTimesAddPolylineData);
+        //服务次数(目前暂时使用浏览量)累计折线数据
+        List<StatisticsCommVO> serviceTimesTotalPolylineData = new ArrayList<>();
+        serviceTimesAddPolylineData.forEach(e -> {
+            StatisticsCommVO temp = convenientMerchantDAO.getServiceTimesTotalPolylineDate(communityId, e.getFiled());
+            temp.setFiled(e.getFiled());
+            serviceTimesTotalPolylineData.add(temp);
+        });
+        statisticsInfo.setServiceTimesTotalPolylineData(serviceTimesTotalPolylineData);
+        return R.ok(statisticsInfo);
+    }
+
+    /**
+     * 首页二级页面-商家展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @Override
+    public R indexMerchantList(PageBaseDTO pageBaseDTO) {
+        Page page = retrievePage(pageBaseDTO);
+        return R.ok(convenientMerchantDAO.indexMerchantList(page, pageBaseDTO));
+    }
+
+    /**
+     * 首页二级页面-微心愿展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @Override
+    public R indexMicroWishList(PageBaseDTO pageBaseDTO) {
+        Page page = retrievePage(pageBaseDTO);
+        return R.ok(comActMicroWishDAO.selectScreenDisplayList(page, pageBaseDTO));
+    }
+
+    /**
+     * 首页二级页面-社区问卷展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @Override
+    public R indexQuestionnaireList(PageBaseDTO pageBaseDTO) {
+        Page page = retrievePage(pageBaseDTO);
+        return R.ok(comActQuestnaireDAO.selectQuestionnaireDisplayList(page, pageBaseDTO));
+    }
+
+    /**
+     * 首页二级页面-居民活动
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R indexResidentAct(Long communityId) {
+        BigScreenResidentActStatisticsInfo statisticsInfo = new BigScreenResidentActStatisticsInfo();
+        List<StatisticsCommVO> actCircleData = comActActivityDAO.getIndexResidentActBaseData(communityId, true);
+        statisticsInfo.setActCircleData(actCircleData);
+        if (!actCircleData.isEmpty()) {
+            statisticsInfo.setJoinNum(actCircleData.stream().map(StatisticsCommVO::getNum).mapToInt(Integer::intValue).sum());
+        }
+        List<StatisticsCommVO> residentActHistogram = comActActivityDAO.selectResidentActHistogramData(communityId, true);
+        //居民活动发布总数
+        int publishNum = 0;
+        if (!residentActHistogram.isEmpty()) {
+            publishNum = residentActHistogram.stream().map(StatisticsCommVO::getNum).mapToInt(Integer::intValue).sum();
+        }
+        statisticsInfo.setPublishNum(publishNum);
+        //居民活动新增折线数据
+        List<StatisticsCommVO> actAddPolylineData = comActActivityDAO.getActAddPolylineData(communityId, true);
+        statisticsInfo.setActAddPolylineData(actAddPolylineData);
+        //居民活动累计折线数据
+        List<StatisticsCommVO> actTotalPolylineData = new ArrayList<>();
+        actAddPolylineData.forEach(e -> {
+            StatisticsCommVO temp = comActActivityDAO.getActTotalPolylineData(communityId, true, e.getFiled());
+            temp.setFiled(e.getFiled());
+            actTotalPolylineData.add(temp);
+        });
+        statisticsInfo.setActTotalPolylineData(actTotalPolylineData);
+        return R.ok(statisticsInfo);
+    }
+
+    /**
+     * 首页二级页面-居民活动展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @Override
+    public R indexResidentActList(PageBaseDTO pageBaseDTO) {
+        Page page = retrievePage(pageBaseDTO);
+        return R.ok(comActActivityDAO.indexActList(page, pageBaseDTO, true));
+    }
+
+    /**
+     * 首页二级页面-志愿者活动
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R indexVolunteerAct(Long communityId) {
+        BigScreenVolunteerActStatisticsInfo statisticsInfo = getBigScreenVolunteerActStatisticsInfo(communityId);
+        return R.ok(statisticsInfo);
+    }
+
+    private BigScreenVolunteerActStatisticsInfo getBigScreenVolunteerActStatisticsInfo(Long communityId) {
+        BigScreenVolunteerActStatisticsInfo statisticsInfo = new BigScreenVolunteerActStatisticsInfo();
+        List<StatisticsCommVO> actCircleData = comActActivityDAO.getIndexResidentActBaseData(communityId, false);
+        statisticsInfo.setActCircleData(actCircleData);
+        if (!actCircleData.isEmpty()) {
+            statisticsInfo.setJoinNum(actCircleData.stream().map(StatisticsCommVO::getNum).mapToInt(Integer::intValue).sum());
+        }
+        List<StatisticsCommVO> volunteerActHistogram = comActActivityDAO.selectResidentActHistogramData(communityId, false);
+        //志愿者活动发布总数
+        int publishNum = 0;
+        if (!volunteerActHistogram.isEmpty()) {
+            publishNum = volunteerActHistogram.stream().map(StatisticsCommVO::getNum).mapToInt(Integer::intValue).sum();
+        }
+        statisticsInfo.setPublishNum(publishNum);
+        //志愿者活动新增折线数据
+        List<StatisticsCommVO> actAddPolylineData = comActActivityDAO.getActAddPolylineData(communityId, false);
+        statisticsInfo.setActAddPolylineData(actAddPolylineData);
+        //志愿者活动累计折线数据
+        List<StatisticsCommVO> actTotalPolylineData = new ArrayList<>();
+        actAddPolylineData.forEach(e -> {
+            StatisticsCommVO temp = comActActivityDAO.getActTotalPolylineData(communityId, false, e.getFiled());
+            temp.setFiled(e.getFiled());
+            actTotalPolylineData.add(temp);
+        });
+        statisticsInfo.setActTotalPolylineData(actTotalPolylineData);
+        return statisticsInfo;
+    }
+
+    /**
+     * 首页二级页面-志愿者活动展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @Override
+    public R indexVolunteerActList(PageBaseDTO pageBaseDTO) {
+        Page page = retrievePage(pageBaseDTO);
+        return R.ok(comActActivityDAO.indexActList(page, pageBaseDTO, false));
+    }
+
+    /**
+     * 清网治格-根据事件分类获取近1月的社区事件数据
+     * @param type
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R getEventList(Integer type, Long communityId) {
+        // 查询社区事件列表
+        List<EventGridIncidentStatisticsVO> gridIncidentList = comMngPopulationDAO.getGridsGovernanceEventList(communityId);
+        List<EventGridIncidentStatisticsVO> returnGridIncidentList = new ArrayList<>();
+        if (!gridIncidentList.isEmpty()) {
+            gridIncidentList.forEach(e -> {
+                if (e.getEventType().equals(2)) {
+                    String[] lngLatString = e.getLatLng().split(",");
+                    e.setLatLng(lngLatString[1] + "," + lngLatString[0]);
+                }
+            });
+            returnGridIncidentList = gridIncidentList.stream().filter(e -> type.equals(e.getType())).collect(Collectors.toList());
+        }
+        return R.ok(returnGridIncidentList);
+    }
+
+    /**
+     * 清网治格-社区事件数据分页
+     * @param pageBaseDTO
+     * @return
+     */
+    @Override
+    public R pageEventList(PageBaseDTO pageBaseDTO) {
+        Page page = retrievePage(pageBaseDTO);
+        IPage<EventGridIncidentStatisticsVO> iPage = comMngPopulationDAO.pageEventList(page, pageBaseDTO);
+        List<EventGridIncidentStatisticsVO> gridIncidentList = iPage.getRecords();
+        if (!gridIncidentList.isEmpty()) {
+            gridIncidentList.forEach(e -> {
+                if (e.getEventType().equals(2)) {
+                    String[] lngLatString = e.getLatLng().split(",");
+                    e.setLatLng(lngLatString[1] + "," + lngLatString[0]);
+                }
+            });
+        }
+        return R.ok(iPage);
+    }
+
+    @Override
+    public R hmkBaseInfo(CommonPage commonPage) {
+        BigScreenHmkBaseInfo bigScreenHmkBaseInfo=comActSocialProjectDao.selectIndexBaseInfo();
+        //项目数据
+        BigScreenHmkProjectInfo bigScreenHmkProjectInfo=comActSocialProjectDao.selectBaseInfo(commonPage.getCommunityId());
+        List<BigScreenHmkProjectTypeInfo> typeInfo=comActSocialProjectDao.selectType(null,commonPage.getCommunityId());
+        if(bigScreenHmkProjectInfo.getCount()>0){
+            typeInfo.forEach(bigScreenHmkProjectTypeInfo -> {
+                bigScreenHmkProjectTypeInfo.setPercent(bigScreenHmkProjectTypeInfo.getCount()/bigScreenHmkProjectInfo.getCount());
+            });
+        }
+        bigScreenHmkProjectInfo.setTypeInfoList(typeInfo);
+        //活动数据
+        Integer countAll=comActSocialProjectDao.selectActivity(0,commonPage.getCommunityId());
+        BigScreenHmkProjectTypeInfo jm=new BigScreenHmkProjectTypeInfo();
+        jm.setName("居民活动");
+        jm.setCount(comActSocialProjectDao.selectActivity(2,commonPage.getCommunityId()));
+        if(countAll>0){
+            jm.setPercent(jm.getCount()/countAll);
+        }
+        BigScreenHmkProjectTypeInfo zyz=new BigScreenHmkProjectTypeInfo();
+        zyz.setName("志愿者活动");
+        zyz.setCount(comActSocialProjectDao.selectActivity(1,commonPage.getCommunityId()));
+        if(countAll>0){
+            zyz.setPercent(zyz.getCount()/countAll);
+        }
+        List<BigScreenHmkProjectTypeInfo> activityList=new ArrayList<>();
+        activityList.add(jm);
+        activityList.add(zyz);
+        bigScreenHmkProjectInfo.setActivityTypeInfoList(activityList);
+        //社会组织数据
+        BigScreenHmkSocialOrgInfo bigScreenHmkSocialOrgInfo=comActSocialOrgDao.selectInfo(commonPage.getCommunityId());
+        List<BigScreenHmkProjectTypeInfo> typeInfoList= comActSocialOrgDao.selectType(commonPage.getCommunityId());
+        if(bigScreenHmkSocialOrgInfo.getCount()>0){
+            typeInfoList.forEach(bigScreenHmkProjectTypeInfo -> {
+                bigScreenHmkProjectTypeInfo.setPercent(bigScreenHmkProjectTypeInfo.getCount()/bigScreenHmkSocialOrgInfo.getCount());
+            });
+        }
+        bigScreenHmkSocialOrgInfo.setTypeInfoList(typeInfoList);
+        bigScreenHmkBaseInfo.setBigScreenHmkSocialOrgInfo(bigScreenHmkSocialOrgInfo);
+        //社工数据
+        BigScreenHmkSocialWorkerInfo bigScreenHmkSocialWorkerInfo=new BigScreenHmkSocialWorkerInfo();
+        List<BigScreenHmkProjectTypeInfo> socialWorkerList=new ArrayList<>();
+        Integer socialAll=comActSocialWorkerDao.selectType(0,commonPage.getCommunityId());
+        BigScreenHmkProjectTypeInfo ss=new BigScreenHmkProjectTypeInfo();
+        ss.setName("30岁以下");
+        ss.setCount(comActSocialWorkerDao.selectType(1,commonPage.getCommunityId()));
+        if(socialAll>0){
+            ss.setPercent(ss.getCount()/socialAll);
+        }
+        BigScreenHmkProjectTypeInfo wj=new BigScreenHmkProjectTypeInfo();
+        wj.setName("30-59岁");
+        wj.setCount(comActSocialWorkerDao.selectType(2,commonPage.getCommunityId()));
+        if(socialAll>0){
+            wj.setPercent(wj.getCount()/socialAll);
+        }
+        BigScreenHmkProjectTypeInfo ls=new BigScreenHmkProjectTypeInfo();
+        ls.setName("60岁以上");
+        ls.setCount(comActSocialWorkerDao.selectType(3,commonPage.getCommunityId()));
+        if(socialAll>0){
+            ls.setPercent(ls.getCount()/socialAll);
+        }
+        socialWorkerList.add(ss);
+        socialWorkerList.add(wj);
+        socialWorkerList.add(ls);
+        bigScreenHmkSocialWorkerInfo.setSocialWorkerAge(socialWorkerList);
+        List<BigScreenHmkProjectTypeInfo> socialWorkerSkill=comActSocialWorkerDao.selectSkillType(commonPage.getCommunityId());
+        if(socialAll>0){
+            socialWorkerSkill.forEach(bigScreenHmkProjectTypeInfo -> {
+                bigScreenHmkProjectTypeInfo.setPercent(bigScreenHmkProjectTypeInfo.getCount()/socialAll);
+            });
+        }
+        bigScreenHmkSocialWorkerInfo.setSocialWorkerSkill(socialWorkerSkill);
+        bigScreenHmkBaseInfo.setBigScreenHmkSocialWorkerInfo(bigScreenHmkSocialWorkerInfo);
+        bigScreenHmkBaseInfo.setBigScreenHmkProjectInfo(bigScreenHmkProjectInfo);
+        return R.ok(bigScreenHmkBaseInfo);
+    }
+
+    @Override
+    public R partyProjectActivityLine() {
+        List<BigScreenActivityLine> bigScreenActivityLines=this.getPastMonth();
+        bigScreenActivityLines.forEach(bigScreenActivityLine -> {
+            BigScreenActivityLine bigScreenActivityLine1=comActSocialProjectDao.selectActivityCountMonth(bigScreenActivityLine.getX(),bigScreenActivityLine.getYear());
+            bigScreenActivityLine.setY(bigScreenActivityLine1.getY());
+            bigScreenActivityLine.setCountY(bigScreenActivityLine1.getCountY());
+            bigScreenActivityLine.setX(bigScreenActivityLine.getYear().substring(2,4)+"-"+bigScreenActivityLine.getX());
+        });
+
+        return R.ok(bigScreenActivityLines);
+    }
+
+    @Override
+    public R projectActivityProject(CommonPage commonPage) {
+        return R.ok(comActActivityDAO.selectProjectActivity(new Page(commonPage.getPage(),commonPage.getSize())));
+    }
+
+    @Override
+    public R projectType(String name) {
+        return R.ok(comActSocialProjectDao.selectType(name,null));
+    }
+
+    /**
+     * 金沙定制页面-党建引领基础数据
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R getPartyBuildIngBaseData(Long communityId) {
+        //基础统计数据查询
+        BigScreenPartyBuildIngStatisticsInfo statisticsInfo = comActDynDAO.getPartyBuildIngBaseData(communityId);
+        statisticsInfo.setAqxTotal(statisticsInfo.getJmxcTotal() + statisticsInfo.getShjdTotal() + statisticsInfo.getXqxcTotal());
+        statisticsInfo.setZyxHelpTotal(statisticsInfo.getZyxServiceTotal());
+        statisticsInfo.setZyfwTotal(statisticsInfo.getZyxServiceTotal());
+        //随手拍治安防控记录列表
+        List<ComActEasyPhotoVO> zafkList = comActEasyPhotoDAO.getPartyBuildIngRecord(communityId, pageSize);
+        statisticsInfo.setZafkList(zafkList);
+        //居民宣传记录列表
+        List<ComActDynVO> JMXCList = comActDynDAO.getPartyBuildIngDynRecord(communityId, pageSize);
+        statisticsInfo.setJmxcList(JMXCList);
+        //商户监督记录列表
+
+        //辖区巡查记录列表
+        List<ComSwPatrolRecordVO> XQXCList = comActDynDAO.getPartyBuildIngPatrolRecord(communityId, pageSize);
+        StringBuilder sb = new StringBuilder();
+        XQXCList.forEach(e -> {
+            String personName = e.getPersonName();
+            if (StringUtils.isNotBlank(personName)) {
+                String[] split = personName.split(",");
+                for (int i = 0;i < split.length;i++) {
+                    sb.append(split[i].substring(0, 1).concat(split[i].substring(1).replaceAll("\\S", "*")));
+                    if (i != split.length - 1) {
+                        sb.append(",");
+                    }
+                }
+                e.setPersonName(sb.toString());
+                sb.delete(0, sb.length());
+            }
+        });
+        statisticsInfo.setXqxcList(XQXCList);
+        return R.ok(statisticsInfo);
+    }
+
+    /**
+     * 党员活动展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @Override
+    public R pagePartyBuildIngAct(PageBaseDTO pageBaseDTO) {
+        Page page = retrievePage(pageBaseDTO);
+        return R.ok(comActDynDAO.pagePartyBuildIngAct(page, pageBaseDTO));
+    }
+
+    /**
+     * 议事投票展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @Override
+    public R pagePartyBuildIngDiscuss(PageBaseDTO pageBaseDTO) {
+        Page page = retrievePage(pageBaseDTO);
+        return R.ok(comActDynDAO.pagePartyBuildIngDiscuss(page, pageBaseDTO));
+    }
+
+    /**
+     * 金沙定制页面-四长四员
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R getFourMemberBaseData(Long communityId) {
+        //基础统计数据查询
+        BigScreenFourMemberStatisticsInfo statisticsInfo = comActFourMemberDao.getFourMemberBaseData(communityId);
+        //四长四员楼栋组织关系
+        List<ComActFourMemberVO> members = comActFourMemberDao.getFourMembers(communityId);
+        List<FourMemberOrgRelationVO> relations = new ArrayList<>();
+        if (!members.isEmpty()) {
+            members.forEach(e -> e.setJurisdictionContent(e.getJurisdictionContent().replaceAll("\\[|\"|]", "")));
+            Map<String, List<ComActFourMemberVO>> collect = members.stream().collect(Collectors.groupingBy(ComActFourMemberVO::getJurisdictionContent));
+            for (Map.Entry<String, List<ComActFourMemberVO>> entry : collect.entrySet()) {
+                FourMemberOrgRelationVO relationVO = new FourMemberOrgRelationVO();
+                relationVO.setRelation(entry.getKey());
+                relationVO.setMembers(entry.getValue());
+                relations.add(relationVO);
+            }
+        }
+        statisticsInfo.setFourMemberOrgList(relations);
+        //新增解决问题数
+        List<StatisticsCommVO> jjwtAddPolylineData = comActFourMemberDao.retrieveJJWTAddPolylineData(communityId);
+        statisticsInfo.setJjwtAddPolylineData(jjwtAddPolylineData);
+        //累计解决问题数
+        List<StatisticsCommVO> jjwtTotalPolylineData = new ArrayList<>();
+        jjwtAddPolylineData.forEach(e -> {
+            StatisticsCommVO temp = comActFourMemberDao.retrieveJJWTTotalPolylineData(communityId, e.getFiled());
+            temp.setFiled(e.getFiled());
+            jjwtTotalPolylineData.add(temp);
+        });
+        statisticsInfo.setJjwtTotalPolylineData(jjwtTotalPolylineData);
+        //新增院落议事数
+        List<StatisticsCommVO> ylysAddPolylineData = comActFourMemberDao.retrieveYLYSAddPolylineData(communityId);
+        statisticsInfo.setYlysAddPolylineData(ylysAddPolylineData);
+        //累计院落议事数
+        List<StatisticsCommVO> ylysTotalPolylineData = new ArrayList<>();
+        ylysAddPolylineData.forEach(e -> {
+            StatisticsCommVO temp = comActFourMemberDao.retrieveYLYSTotalPolylineData(communityId, e.getFiled());
+            temp.setFiled(e.getFiled());
+            ylysTotalPolylineData.add(temp);
+        });
+        statisticsInfo.setYlysTotalPolylineData(ylysTotalPolylineData);
+        return R.ok(statisticsInfo);
+    }
+
+    /**
+     * 杨家坪定制页面-五微服务
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R getFmsBaseData(Long communityId) {
+        BigScreenFmsStatisticsInfo statisticsInfo = comFmsServiceDAO.getFmsBaseData(communityId);
+        //团队类型占比圆形图
+        List<ComFmsTeamVO> preTeamTypeCircleData = comFmsServiceDAO.retrieveTeamTypeCircleData(communityId);
+        List<StatisticsCommVO> teamTypeCircleData = new ArrayList<>();
+        if (!preTeamTypeCircleData.isEmpty()) {
+            Integer teamCount = preTeamTypeCircleData.size();
+            Map<String, List<ComFmsTeamVO>> collect = preTeamTypeCircleData.stream().collect(Collectors.groupingBy(ComFmsTeamVO::getTeamTypeName));
+            for (Map.Entry<String, List<ComFmsTeamVO>> entry : collect.entrySet()) {
+                StatisticsCommVO temp = new StatisticsCommVO();
+                int size = entry.getValue().size();
+                temp.setFiled(entry.getKey());
+                temp.setNum(size);
+                temp.setPercent(new BigDecimal(size)
+                        .divide(new BigDecimal(teamCount), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
+                teamTypeCircleData.add(temp);
+            }
+        }
+        statisticsInfo.setTeamTypeCircleData(teamTypeCircleData);
+        //微服务新增折线数据
+        List<StatisticsCommVO> serviceAddPolylineData = comFmsServiceDAO.retrieveServiceAddPolylineData(communityId);
+        statisticsInfo.setServiceAddPolylineData(serviceAddPolylineData);
+        //微服务累计折线数据
+        List<StatisticsCommVO> serviceTotalPolylineData = new ArrayList<>();
+        serviceAddPolylineData.forEach(e -> {
+            StatisticsCommVO temp = comFmsServiceDAO.retrieveServiceTotalPolylineData(communityId, e.getFiled());
+            temp.setFiled(e.getFiled());
+            serviceTotalPolylineData.add(temp);
+        });
+        statisticsInfo.setServiceTotalPolylineData(serviceTotalPolylineData);
+        //微调节矛盾类型占比圆形图
+        List<EventVO> preAdjustCircleData = comFmsServiceDAO.retrieveAdjustCircleData(communityId);
+        List<StatisticsCommVO> adjustCircleData = new ArrayList<>();
+        if (!preAdjustCircleData.isEmpty()) {
+            Integer adjustCount = preAdjustCircleData.size();
+            Map<String, List<EventVO>> collect = preAdjustCircleData.stream().collect(Collectors.groupingBy(EventVO::getEventClazz));
+            for (Map.Entry<String, List<EventVO>> entry : collect.entrySet()) {
+                StatisticsCommVO temp = new StatisticsCommVO();
+                int size = entry.getValue().size();
+                temp.setFiled(entry.getKey());
+                temp.setNum(size);
+                temp.setPercent(new BigDecimal(size)
+                        .divide(new BigDecimal(adjustCount), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
+                adjustCircleData.add(temp);
+            }
+        }
+        statisticsInfo.setAdjustCircleData(adjustCircleData);
+        //新增解决矛盾折线数据
+        List<StatisticsCommVO> adjustAddPolylineData = comFmsServiceDAO.retrieveAdjustAddPolylineData(communityId);
+        statisticsInfo.setAdjustAddPolylineData(adjustAddPolylineData);
+        //累计解决矛盾折线数据
+        List<StatisticsCommVO> adjustTotalPolylineData = new ArrayList<>();
+        adjustAddPolylineData.forEach(e -> {
+            StatisticsCommVO temp = comFmsServiceDAO.retrieveAdjustTotalPolylineData(communityId, e.getFiled());
+            temp.setFiled(e.getFiled());
+            adjustTotalPolylineData.add(temp);
+        });
+        statisticsInfo.setAdjustTotalPolylineData(adjustTotalPolylineData);
+        //微防控防控类型占比圆形图
+        List<EventVO> preControlCircleData = comFmsServiceDAO.retrieveControlCircleData(communityId);
+        List<StatisticsCommVO> controlCircleData = new ArrayList<>();
+        if (!preControlCircleData.isEmpty()) {
+            Integer controlCount = preControlCircleData.size();
+            Map<String, List<EventVO>> collect = preControlCircleData.stream().collect(Collectors.groupingBy(EventVO::getEventClazz));
+            for (Map.Entry<String, List<EventVO>> entry : collect.entrySet()) {
+                StatisticsCommVO temp = new StatisticsCommVO();
+                int size = entry.getValue().size();
+                temp.setFiled(entry.getKey());
+                temp.setNum(size);
+                temp.setPercent(new BigDecimal(size)
+                        .divide(new BigDecimal(controlCount), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
+                controlCircleData.add(temp);
+            }
+        }
+        statisticsInfo.setControlCircleData(controlCircleData);
+        return R.ok(statisticsInfo);
+    }
+
+    /**
+     * 杨家坪定制页面-微团队展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @Override
+    public R pageFmsTeam(PageBaseDTO pageBaseDTO) {
+        Page page = retrievePage(pageBaseDTO);
+        return R.ok(comFmsServiceDAO.pageFmsTeam(page, pageBaseDTO));
+    }
+
+    /**
+     * 杨家坪定制页面-居家养老基础数据
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R getAlarmBaseData(Long communityId) {
+        BigScreenAlarmStatisticsInfo statisticsInfo = comPropertyDao.getAlarmBaseData(communityId);
+        //异常报警新增折线数据
+        List<StatisticsCommVO> abnormalAddPolylineData = comPropertyDao.retrieveAbnormalAddPolylineData(communityId);
+        statisticsInfo.setAbnormalAddPolylineData(abnormalAddPolylineData);
+        //异常报警累计折线数据
+        List<StatisticsCommVO> abnormalTotalPolylineData = new ArrayList<>();
+        abnormalAddPolylineData.forEach(e -> {
+            StatisticsCommVO temp = comPropertyDao.retrieveAbnormalTotalPolylineData(communityId, e.getFiled());
+            temp.setFiled(e.getFiled());
+            abnormalTotalPolylineData.add(temp);
+        });
+        statisticsInfo.setAbnormalTotalPolylineData(abnormalTotalPolylineData);
+        //一键求助服务新增折线数据
+        List<StatisticsCommVO> serviceAddPolylineData = comPropertyDao.retrieveServiceAddPolylineData(communityId);
+        statisticsInfo.setServiceAddPolylineData(serviceAddPolylineData);
+        //一键求助服务累计折线数据
+        List<StatisticsCommVO> serviceTotalPolylineData = new ArrayList<>();
+        serviceAddPolylineData.forEach(e -> {
+            StatisticsCommVO temp = comPropertyDao.retrieveServiceTotalPolylineData(communityId, e.getFiled());
+            temp.setFiled(e.getFiled());
+            serviceTotalPolylineData.add(temp);
+        });
+        statisticsInfo.setServiceTotalPolylineData(serviceTotalPolylineData);
+        return R.ok(statisticsInfo);
+    }
+
+    /**
+     * 杨家坪定制页面-报警记录展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @Override
+    public R pageAlarmRecord(PageBaseDTO pageBaseDTO) {
+        Page page = retrievePage(pageBaseDTO);
+        Integer param3 = pageBaseDTO.getParam3();
+        Long communityId = pageBaseDTO.getCommunityId();
+        IPage<ComPropertyAlarmVO> abnormalList = null;
+        switch (param3) {
+            case 1:
+                //待处理异常展示列表
+                abnormalList = comPropertyDao.getAbnormalList(page,2, 0, communityId);
+                break;
+            case 2:
+                //已处理异常展示列表
+                abnormalList = comPropertyDao.getAbnormalList(page,2, 1, communityId);
+                break;
+            case 3:
+                //待服务展示列表
+                abnormalList = comPropertyDao.getAbnormalList(page,1, 0, communityId);
+                break;
+            case 4:
+                //已服务展示列表
+                abnormalList = comPropertyDao.getAbnormalList(page,1, 1, communityId);
+                break;
+            default:
+                break;
+        }
+        return R.ok(abnormalList);
+    }
+
+    /**
+     * 杨家坪定制页面-报警设备点位图
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R getAlarmPointMap(Long communityId) {
+        List<ComPropertyEquipmentVO> list = comPropertyDao.getAlarmPointMapData(communityId);
+        List<EquipmentPointMapDataVO> pointMapDataList = new ArrayList<>();
+        if (!list.isEmpty()) {
+            Map<String, List<ComPropertyEquipmentVO>> collect = list.stream().collect(Collectors.groupingBy(e -> "[" + e.getLatitude() + "," + e.getLongitude() + "]"));
+            for (Map.Entry<String, List<ComPropertyEquipmentVO>> entry : collect.entrySet()) {
+                EquipmentPointMapDataVO pointMapDataVO = new EquipmentPointMapDataVO();
+                List<ComPropertyEquipmentVO> value = entry.getValue();
+                pointMapDataVO.setPosition(entry.getKey());
+                List<ComPropertyEquipmentVO> sortedList = value.stream()
+                        .sorted(Comparator.comparing(ComPropertyEquipmentVO::getEquipmentStatus)).collect(Collectors.toList());
+                pointMapDataVO.setEquipments(sortedList);
+                pointMapDataVO.setEquipmentNum(value.size());
+                boolean isRed = value.stream().anyMatch(e -> e.getEquipmentStatus().equals(1));
+                boolean isYellow = value.stream().anyMatch(e -> e.getEquipmentStatus().equals(2));
+                pointMapDataVO.setPointColor(isRed ? 1 : (isYellow ? 2 : 3));
+                pointMapDataList.add(pointMapDataVO);
+            }
+        }
+        return R.ok(pointMapDataList);
+    }
+
+    /**
+     * 杨家坪定制页面-志愿服务
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R getVolunteerBaseData(Long communityId) {
+        BigScreenVolunteerStatisticsInfo statisticsInfo = comMngVolunteerMngDAO.getVolunteerBaseData(communityId);
+        BigScreenVolunteerActStatisticsInfo info = getBigScreenVolunteerActStatisticsInfo(communityId);
+        BeanUtils.copyProperties(info, statisticsInfo);
+        //志愿者统计-组织人数直方图
+        statisticsInfo.setVolunteerOrgHistogram(comMngVolunteerMngDAO.retrieveVolunteerOrgHistogram(communityId));
+        //志愿者服务类型占比圆形图
+        List<ComMngVolunteerMngVO> preVolunteerServiceTypeCircleData = comMngVolunteerMngDAO.retrieveVolunteerServiceTypeCircleData(communityId);
+        List<StatisticsCommVO> volunteerServiceTypeCircleData = new ArrayList<>();
+        if (!preVolunteerServiceTypeCircleData.isEmpty()) {
+            Integer count = preVolunteerServiceTypeCircleData.size();
+            Map<String, List<ComMngVolunteerMngVO>> collect = preVolunteerServiceTypeCircleData.stream().collect(Collectors.groupingBy(ComMngVolunteerMngVO::getServiceTypeName));
+            for (Map.Entry<String, List<ComMngVolunteerMngVO>> entry : collect.entrySet()) {
+                StatisticsCommVO temp = new StatisticsCommVO();
+                int size = entry.getValue().size();
+                temp.setFiled(entry.getKey());
+                temp.setNum(size);
+                temp.setPercent(new BigDecimal(size)
+                        .divide(new BigDecimal(count), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
+                volunteerServiceTypeCircleData.add(temp);
+            }
+        }
+        statisticsInfo.setVolunteerServiceTypeCircleData(volunteerServiceTypeCircleData);
+        //志愿者年龄段占比圆形图
+        List<StatisticsCommVO> volunteerAgeCircleData = comMngVolunteerMngDAO.retrieveVolunteerAgeCircleData(communityId);
+        int sum = volunteerAgeCircleData.stream().mapToInt(StatisticsCommVO::getNum).sum();
+        volunteerAgeCircleData.forEach(e -> {
+            if (sum != 0) {
+                e.setPercent(new BigDecimal(e.getNum())
+                        .divide(new BigDecimal(sum), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
+            } else {
+                e.setPercent(new BigDecimal(0));
+            }
+        });
+        statisticsInfo.setVolunteerAgeCircleData(volunteerAgeCircleData);
+        //志愿者技能占比圆形图
+        List<ComMngVolunteerMngVO> preVolunteerSkillCircleData = comMngVolunteerMngDAO.retrieveVolunteerSkillCircleData(communityId);
+        List<StatisticsCommVO> volunteerSkillCircleData = new ArrayList<>();
+        if (!preVolunteerSkillCircleData.isEmpty()) {
+            Integer count = preVolunteerSkillCircleData.size();
+            Map<String, List<ComMngVolunteerMngVO>> collect = preVolunteerSkillCircleData.stream().collect(Collectors.groupingBy(ComMngVolunteerMngVO::getSkillName));
+            for (Map.Entry<String, List<ComMngVolunteerMngVO>> entry : collect.entrySet()) {
+                StatisticsCommVO temp = new StatisticsCommVO();
+                int size = entry.getValue().size();
+                temp.setFiled(entry.getKey());
+                temp.setNum(size);
+                temp.setPercent(new BigDecimal(size)
+                        .divide(new BigDecimal(count), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
+                volunteerSkillCircleData.add(temp);
+            }
+        }
+        statisticsInfo.setVolunteerSkillCircleData(volunteerSkillCircleData);
+        //志愿者组织数据
+        List<VolunteerOrgRelationVO> volunteerOrgRelationList = new ArrayList<>();
+        List<ComMngVolunteerMngVO> volunteerData = comMngVolunteerMngDAO.selectVolunteerByCommunityId(communityId);
+
+        if(volunteerData!=null && volunteerData.size()>0)
+        {
+            for (ComMngVolunteerMngVO ent:volunteerData)
+            {
+                if(!StringUtils.isEmpty(ent.getIdCard()))
+                {
+                    try {
+                        Integer age = IdcardUtil.getAgeByIdCard(ent.getIdCard());
+                        ent.setAge(age);
+                    }
+                    catch (Exception e)
+                    {
+                        log.error("身份证号码转换年龄失败,人员id:" + ent.getId());
+                    }
+                }
+            }
+        }
+
+        if (!volunteerData.isEmpty()) {
+            Map<String, List<ComMngVolunteerMngVO>> collect = volunteerData.stream().collect(Collectors.groupingBy(ComMngVolunteerMngVO::getOrgName));
+            for (Map.Entry<String, List<ComMngVolunteerMngVO>> entry : collect.entrySet()) {
+                VolunteerOrgRelationVO relationVO = new VolunteerOrgRelationVO();
+                relationVO.setOrg(entry.getKey());
+                relationVO.setOrgPersonNum(entry.getValue().size());
+                relationVO.setVolunteers(entry.getValue());
+                volunteerOrgRelationList.add(relationVO);
+            }
+        }
+        statisticsInfo.setVolunteerOrgRelationList(volunteerOrgRelationList);
+        return R.ok(statisticsInfo);
+    }
+
+    /**
+     * 金沙定制页面-志愿线展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @Override
+    public R pagePartyBuildIngMicroWish(PageBaseDTO pageBaseDTO) {
+        Page page = retrievePage(pageBaseDTO);
+        return R.ok(comActMicroWishDAO.pagePartyBuildIngMicroWish(page, pageBaseDTO));
+    }
+
+    /**
+     * 金沙定制页面-四长四员解决问题展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @Override
+    public R pageFourMemberResolve(PageBaseDTO pageBaseDTO) {
+        Page page = retrievePage(pageBaseDTO);
+        return R.ok(comActMicroWishDAO.pageFourMemberResolve(page, pageBaseDTO));
+    }
+
+    /**
+     * 金沙定制页面-四长四员院落议事展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @Override
+    public R pageCourtyardDiscuss(PageBaseDTO pageBaseDTO) {
+        Page page = retrievePage(pageBaseDTO);
+        return R.ok(comActDiscussDAO.pageCourtyardDiscuss(page, pageBaseDTO));
+    }
+
+    /**
+     * 金沙定制页面-院落议事
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R getCourtyardBaseData(Long communityId) {
+        BigScreenCourtyardStatisticsInfo statisticsInfo = comActDiscussDAO.getCourtyardBaseData(communityId);
+        //新增院落议事数
+        List<StatisticsCommVO> discussAddPolylineData = comActFourMemberDao.retrieveYLYSAddPolylineData(communityId);
+        statisticsInfo.setDiscussAddPolylineData(discussAddPolylineData);
+        //累计院落议事数
+        List<StatisticsCommVO> discussTotalPolylineData = new ArrayList<>();
+        discussAddPolylineData.forEach(e -> {
+            StatisticsCommVO temp = comActFourMemberDao.retrieveYLYSTotalPolylineData(communityId, e.getFiled());
+            temp.setFiled(e.getFiled());
+            discussTotalPolylineData.add(temp);
+        });
+        statisticsInfo.setDiscussTotalPolylineData(discussTotalPolylineData);
+        return R.ok(statisticsInfo);
+    }
+
+    /**
+     * 孵化中心-基础数据
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R getHatchBaseData(Long communityId) {
+        ComActDO comActDO = comActDAO.selectById(communityId);
+        BigScreenHatchStatisticsInfo statisticsInfo = comActSocialOrgHatchDAO.getHatchBaseData(communityId, comActDO.getStreetId());
+        //孵化进程占比圆形图数据
+        List<StatisticsCommVO> hatchScheduleCircleData = comActSocialOrgHatchDAO.getHatchScheduleCircleData(comActDO.getStreetId());
+        statisticsInfo.setHatchScheduleCircleData(hatchScheduleCircleData);
+        //孵化状态占比柱形数据
+        List<StatisticsCommVO> hatchStatusColumnData = comActSocialOrgHatchDAO.getHatchStatusColumnData(comActDO.getStreetId());
+        statisticsInfo.setHatchStatusColumnData(hatchStatusColumnData);
+        //街道组织占比柱形数据
+        List<StatisticsCommVO> streetOrgColumnData = comActSocialOrgHatchDAO.getStreetOrgColumnData(comActDO.getStreetId());
+        if (nonNull(streetOrgColumnData) && !streetOrgColumnData.isEmpty()) {
+            streetOrgColumnData.forEach(e -> e.setStatisticsCommVOS(comActSocialOrgHatchDAO.getStreetOrgChildData(e.getFiled())));
+        }
+        statisticsInfo.setStreetOrgColumnData(streetOrgColumnData);
+        return R.ok(statisticsInfo);
+    }
+
+    /**
+     * 孵化中心-孵化成果展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @Override
+    public R pageHatchResult(PageBaseDTO pageBaseDTO) {
+        ComActDO comActDO = comActDAO.selectById(pageBaseDTO.getCommunityId());
+        Page page = retrievePage(pageBaseDTO);
+        return R.ok(comActSocialOrgDao.pageHatchResult(page, pageBaseDTO, comActDO.getStreetId()));
+    }
+
+    /**
+     * 孵化中心-孵化进度展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @Override
+    public R pageHatchSchedule(PageBaseDTO pageBaseDTO) {
+        ComActDO comActDO = comActDAO.selectById(pageBaseDTO.getCommunityId());
+        Page page = retrievePage(pageBaseDTO);
+        return R.ok(comActSocialOrgDao.pageHatchSchedule(page, pageBaseDTO, comActDO.getStreetId()));
+    }
+
+    /**
+     * 五社联动基础数据
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R getFiveAssociationsBaseData(Long communityId) {
+        ComActDO comActDO = comActDAO.selectById(communityId);
+        BigScreenFiveAssociationsStatisticsInfo statisticsInfo = comActSocialProjectDao.getFiveAssociationsBaseData(communityId, comActDO.getStreetId());
+        //社区企业服务分类占比圆形图数据
+        Integer enterpriseNum = statisticsInfo.getEnterpriseNum();
+        List<StatisticsCommVO> enterpriseServiceTypeCircleData = comActEnterpriseDAO.getEnterpriseServiceTypeCircleData(communityId);
+        if (nonNull(enterpriseServiceTypeCircleData) && !enterpriseServiceTypeCircleData.isEmpty() && enterpriseNum > 0) {
+            enterpriseServiceTypeCircleData.forEach(e -> {
+                e.setPercent(new BigDecimal(e.getNum())
+                        .divide(new BigDecimal(enterpriseNum), 2, BigDecimal.ROUND_HALF_UP)
+                        .multiply(new BigDecimal(100)).setScale(0));
+            });
+        }
+        statisticsInfo.setEnterpriseServiceTypeCircleData(enterpriseServiceTypeCircleData);
+        //社区工作者年龄段占比圆形图数据
+        List<StatisticsCommVO> socialWorkerAgeStageCircleData = comActEnterpriseDAO.getSocialWorkerAgeStageCircleData(communityId);
+        Integer socialWorkerNum = statisticsInfo.getSocialWorkerNum();
+        if (nonNull(socialWorkerAgeStageCircleData) && !socialWorkerAgeStageCircleData.isEmpty() && socialWorkerNum > 0) {
+            socialWorkerAgeStageCircleData.forEach(e -> {
+                e.setPercent(new BigDecimal(e.getNum())
+                        .divide(new BigDecimal(socialWorkerNum), 2, BigDecimal.ROUND_HALF_UP)
+                        .multiply(new BigDecimal(100)).setScale(0));
+            });
+        }
+        statisticsInfo.setSocialWorkerAgeStageCircleData(socialWorkerAgeStageCircleData);
+        //社区工作者服务分类占比圆形图数据
+        List<StatisticsCommVO> socialWorkerServiceTypeCircleData = comActEnterpriseDAO.getSocialWorkerServiceTypeCircleData(communityId);
+        if (nonNull(socialWorkerServiceTypeCircleData) && !socialWorkerServiceTypeCircleData.isEmpty() && socialWorkerNum > 0) {
+            socialWorkerServiceTypeCircleData.forEach(e -> {
+                e.setPercent(new BigDecimal(e.getNum())
+                        .divide(new BigDecimal(socialWorkerNum), 2, BigDecimal.ROUND_HALF_UP)
+                        .multiply(new BigDecimal(100)).setScale(0));
+            });
+        }
+        statisticsInfo.setSocialWorkerServiceTypeCircleData(socialWorkerServiceTypeCircleData);
+        return R.ok(statisticsInfo);
+    }
+
+    /**
+     * 五社联动项目展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @Override
+    public R pageSocialProjectList(PageBaseDTO pageBaseDTO) {
+        ComActDO comActDO = comActDAO.selectById(pageBaseDTO.getCommunityId());
+        Page page = retrievePage(pageBaseDTO);
+        return R.ok(comActSocialProjectDao.pageSocialProjectList(page, pageBaseDTO, comActDO.getStreetId()));
+    }
+
+    /**
+     * 五社联动社会组织展示列表
+     * @param pageBaseDTO
+     * @return
+     */
+    @Override
+    public R pageSocialOrgList(PageBaseDTO pageBaseDTO) {
+        ComActDO comActDO = comActDAO.selectById(pageBaseDTO.getCommunityId());
+        Page page = retrievePage(pageBaseDTO);
+        return R.ok(comActSocialOrgDao.pageSocialOrgList(page, pageBaseDTO, comActDO.getStreetId()));
+    }
+
+    /**
+     * 人大代表
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R dpcBase(Long communityId) {
+        BigScreenDpcStatisticsInfo statisticsInfo = comActEasyPhotoDAO.selectDpcBaseData(communityId);
+        //随手拍新增折线数据
+        List<StatisticsCommVO> easyPhotoAddPolylineData = comActEasyPhotoDAO.getEasyPhotoAddPolylineDataForDpc(communityId);
+        statisticsInfo.setEasyPhotoAddPolylineData(easyPhotoAddPolylineData);
+        //随手拍累计折线数据
+        List<StatisticsCommVO> easyPhotoTotalPolylineData = new ArrayList<>();
+        easyPhotoAddPolylineData.forEach(e -> {
+            StatisticsCommVO temp = comActEasyPhotoDAO.getEasyPhotoTotalPolylineDateForDpc(communityId, e.getFiled());
+            temp.setFiled(e.getFiled());
+            easyPhotoTotalPolylineData.add(temp);
+        });
+        statisticsInfo.setEasyPhotoTotalPolylineData(easyPhotoTotalPolylineData);
+        return R.ok(statisticsInfo);
+    }
+
+    /**
+     * 人大代表-随手拍展示列表
+     * @return
+     */
+    @Override
+    public R dpcEasyPhotoList(PageBaseDTO pageBaseDTO) {
+        Page page = retrievePage(pageBaseDTO);
+        return R.ok(comActEasyPhotoDAO.dpcEasyPhotoList(page, pageBaseDTO));
+    }
+
+    private Page retrievePage(PageBaseDTO pageBaseDTO) {
+        Long pageNum = pageBaseDTO.getPageNum();
+        Long size = pageBaseDTO.getPageSize();
+        Page page = new Page<>();
+        if (nonNull(pageNum) && nonNull(size)) {
+            page.setCurrent(pageNum);
+            page.setSize(size);
+        } else {
+            page.setCurrent(1);
+            page.setSize(pageSize);
+        }
+        return page;
+    }
+    public List<BigScreenActivityLine> getPastMonth(){
+        List<BigScreenActivityLine> bigScreenActivityLines=new ArrayList<>();
+        for(int i=11;i>=0;i--){
+            BigScreenActivityLine bigScreenActivityLine=new BigScreenActivityLine();
+            String date=DateUtils.getDateFormatString(DateUtils.addMonth(new Date(),-i),"MM");
+            String year=DateUtils.getDateFormatString(DateUtils.addMonth(new Date(),-i),"yyyy");
+            bigScreenActivityLine.setX(date);
+            bigScreenActivityLine.setYear(year);
+            bigScreenActivityLines.add(bigScreenActivityLine);
+        }
+        return bigScreenActivityLines;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/CodDataServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/CodDataServiceImpl.java
new file mode 100644
index 0000000..c9c6ac6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/CodDataServiceImpl.java
@@ -0,0 +1,325 @@
+package com.panzhihua.service_community.service.impl;
+
+import cn.hutool.core.collection.CollectionUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.dao.*;
+import com.panzhihua.service_community.entity.ComPbCheckUnit;
+import com.panzhihua.service_community.entity.SysUser;
+import com.panzhihua.service_community.model.dos.*;
+import com.panzhihua.service_community.service.CodDataService;
+import com.panzhihua.service_community.service.ComActActivityService;
+import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.client.RestTemplate;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.annotation.Resource;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.time.Duration;
+import java.time.LocalDateTime;
+import java.time.ZoneOffset;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @title: BigScreenStatisticsServiceImpl
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 国务院防疫数据服务实现类
+ * @author: zzj
+ * @date: 2022/4/1 9:56
+ */
+@Service
+public class CodDataServiceImpl implements CodDataService {
+    @Override
+    public void getCodData() {
+        //获取时间戳
+        long timestamp = LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8"));
+        String url = "http://103.66.32.242:8005/zwfwMovePortal/interface/interfaceJson";
+        //以下常量值都是从网页源代码上获取到的------start
+        final String STATE_COUNCIL_SIGNATURE_KEY = "fTN2pfuisxTavbTuYVSsNJHetwq5bJvCQkjjtiLM2dCratiA";
+        final String STATE_COUNCIL_X_WIF_NONCE = "QkjjtiLM2dCratiA";
+        final String STATE_COUNCIL_X_WIF_PAASID = "smt-application";
+        //国务院疫情防控查询 appId
+        final String STATE_COUNCIL_APP_ID = "NcApplication";
+        //国务院疫情防控查询 PASSID
+        final String STATE_COUNCIL_PASSID = "zdww";
+        //国务院疫情防控查询 秘钥
+        final String STATE_COUNCIL_NONCE = "123456789abcdefg";
+        //国务院疫情防控查询 token
+        final String STATE_COUNCIL_TOEKN = "23y0ufFl5YxIyGrI8hWRUZmKkvtSjLQA";
+        //国务院疫情防控查询 key
+        final String STATE_COUNCIL_KEY = "3C502C97ABDA40D0A60FBEE50FAAD1DA";
+        //以下常量值都是从网页源代码上获取到的------end
+        HttpHeaders requestHeaders = new HttpHeaders();
+        Map<String,Object> body = new HashMap<>(10);
+        //计算签名要用的字符串
+        String signatureStr = String.format("%d%s%d",timestamp, STATE_COUNCIL_SIGNATURE_KEY,timestamp);
+        //计算签名
+        String signature = getSHA256StrJava(signatureStr).toUpperCase();
+        //请求头参数封装
+        requestHeaders.add( "x-wif-nonce",STATE_COUNCIL_X_WIF_NONCE);
+        requestHeaders.add( "x-wif-paasid",STATE_COUNCIL_X_WIF_PAASID);
+        requestHeaders.add( "x-wif-signature",signature);
+        requestHeaders.add( "x-wif-timestamp",String.valueOf(timestamp));
+        //body参数封装
+        body.put("appId",STATE_COUNCIL_APP_ID);
+        body.put("paasHeader",STATE_COUNCIL_PASSID);
+        body.put("timestampHeader",timestamp);
+        body.put("nonceHeader",STATE_COUNCIL_NONCE);
+        //请求参数
+        signatureStr = String.format("%d%s%s%d",timestamp,STATE_COUNCIL_TOEKN,STATE_COUNCIL_NONCE,timestamp);
+        String signatureHeader = getSHA256StrJava(signatureStr).toUpperCase();
+        body.put("signatureHeader",signatureHeader);
+        body.put("key",STATE_COUNCIL_KEY);
+        HttpEntity<String> httpEntity = new HttpEntity(body, requestHeaders);
+        ResponseEntity<String> response = new RestTemplate().exchange(url, HttpMethod.POST,httpEntity,String.class);
+        R r=JSONObject.parseObject(response.getBody(),R.class);
+        ReturnData returnData=JSONObject.parseObject(JSONObject.toJSONString(r.getData()), ReturnData.class);
+        List<Highlist> highlist=returnData.getHighlist();
+        List<Middlelist> middlelist=returnData.getMiddlelist();
+    }
+    //查社区的表
+    @Autowired
+    private ComActDAO comActDAO;
+    //单位表
+    @Autowired
+    private ComPbCheckUnitDao comPbCheckUnitDao;
+    //用户表
+    @Autowired
+    private SysUserDao sysUserDao;
+    //社区活动表
+    @Autowired
+    private ComActActivityDAO comActActivityDAO;
+    @Autowired
+    private ComActActivityService comActActivityService;
+    //活动报名表
+    @Autowired
+    private ComActActSignDAO comActActSignDAO;
+    //签到表
+    @Autowired
+    private ComActActRegistDAO comActActRegistDAO;
+
+    public static void main(String[] args) {
+        HashSet<Map<String,String>> set = new HashSet<>();
+
+        for (int i = 0; i < 10; i++) {
+            Map<String,String> map = new HashMap<>();
+            map.put("1","2");
+            set.add(map);
+        }
+        for (Map<String, String> map : set) {
+            System.out.println(map);
+        }
+
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void importData(MultipartFile file) throws IOException {
+//        InputStream inputStream = file.getInputStream();
+//        Workbook workbook = new XSSFWorkbook(inputStream);
+//        Sheet sheet = workbook.getSheetAt(0);
+//
+//        List<String> signAndRegist = new ArrayList<>();
+//        //key: 活动名称    value:社区id
+//        MultiValueMap<String, String> map1 = new LinkedMultiValueMap<>();
+//        //key:活动名称    value: 活动开始时间
+//        MultiValueMap<String, Date> dateHashMap = new LinkedMultiValueMap<>();
+//
+//        List<String> list = new ArrayList<>();
+//        int totalRowNum = sheet.getLastRowNum();
+//        for (int i = 1; i <= totalRowNum; i++){
+//            Row row = sheet.getRow(i);
+//            row.getCell(2).setCellType(CellType.STRING);
+//            String cellValue1 = row.getCell(2).getStringCellValue();
+//            list.add(cellValue1);
+//        }
+//        Map<String, Long> map = list.stream().collect(Collectors.groupingBy(s -> s, Collectors.counting()));
+//        for (int i = 1; i <= totalRowNum; i++) {
+//            Row row = sheet.getRow(i);
+//            System.out.println("第几行:" + i);
+//            //党组织名称
+//            row.getCell(1).setCellType(CellType.STRING);
+//            String cellValue = row.getCell(1).getStringCellValue();
+//            //活动名称
+//            row.getCell(2).setCellType(CellType.STRING);
+//            String cellValue1 = row.getCell(2).getStringCellValue();
+//            //活动内容
+//            row.getCell(3).setCellType(CellType.STRING);
+//            String cellValue2 = row.getCell(3).getStringCellValue();
+//            //活动时长
+//            row.getCell(4).setCellType(CellType.STRING);
+//            String cellValue3 = row.getCell(4).getStringCellValue();
+//            //活动所在社区名称
+//            row.getCell(5).setCellType(CellType.STRING);
+//            String cellValue4 = row.getCell(5).getStringCellValue();
+//            ComActDO comAct = comActDAO.queryByName(cellValue4);
+//            //参加活动党员姓名
+//            row.getCell(6).setCellType(CellType.STRING);
+//            String cellValue6 = row.getCell(6).getStringCellValue();
+//            QueryWrapper<SysUser> wrapper = new QueryWrapper<>();
+////            wrapper.eq("community_id",comAct.getCommunityId());
+//            wrapper.eq("app_id","wx118de8a734d269f0");
+//            wrapper.eq("name",cellValue6);
+//            wrapper.eq("status",1);
+//            List<SysUser> sysUsers = sysUserDao.selectList(wrapper);
+//            if(CollectionUtil.isEmpty(sysUsers)){
+//                continue;
+//            }
+//            Long userId = sysUsers.get(0).getUserId();
+//            //单位
+//            row.getCell(7).setCellType(CellType.STRING);
+//            String cellValue7 = row.getCell(7).getStringCellValue();
+//
+//            //管理员
+//            row.getCell(8).setCellType(CellType.STRING);
+//            String cellValue8 = row.getCell(8).getStringCellValue();
+//
+//            QueryWrapper<ComPbCheckUnit> queryWrapper = new QueryWrapper<>();
+//            queryWrapper.eq("name",cellValue7);
+//            queryWrapper.eq("belong_to","仁和区");
+//            ComPbCheckUnit comPbCheckUnit = comPbCheckUnitDao.selectOne(queryWrapper);
+//
+//            //活动发布时间
+//            Date date = row.getCell(10).getDateCellValue();
+//            //活动开始报名时间
+//            Date date1 = row.getCell(11).getDateCellValue();
+//            //活动结束报名时间
+//            Date date2 = row.getCell(12).getDateCellValue();
+//            //活动开始时间
+//            Date date3 = row.getCell(13).getDateCellValue();
+//            //活动结束时间
+//            Date date4 = row.getCell(14).getDateCellValue();
+//
+//            ComActActivityDO comActActivity = new ComActActivityDO();
+//            comActActivity.setActivityName(cellValue1);
+//            comActActivity.setActivityAddr(comAct.getAddress());
+//            comActActivity.setLng(comAct.getLng());
+//            comActActivity.setLat(comAct.getLat());
+//           // comActActivity.setStatus();
+//            comActActivity.setPublishAt(date);
+//            comActActivity.setSignUpBegin(date1);
+//            comActActivity.setSignUpEnd(date2);
+//            comActActivity.setBeginAt(date3);
+//            comActActivity.setEndAt(date4);
+//            comActActivity.setAattendPeople("居民,志愿者,党员");
+//            comActActivity.setParticipantMax(-1);
+//            comActActivity.setActivityType("志愿服务");
+//            comActActivity.setHasPrize(0);
+//            comActActivity.setIsQrCode(1);
+//            comActActivity.setContactName(cellValue8);
+//            comActActivity.setContent(cellValue2);
+//            comActActivity.setCommunityId(comAct.getCommunityId());
+//            comActActivity.setCreateAt(new Date());
+//            int sum = map.get(cellValue1).intValue();
+//            comActActivity.setParticipantRewardWay(2);
+//            comActActivity.setVolunteerRewardWay(2);
+//            comActActivity.setPbRewardWay(2);
+//            comActActivity.setDuration(sum * Integer.parseInt(cellValue3));
+//            comActActivity.setType(3);
+//            comActActivity.setPartyMemberMax(-1);
+//            comActActivity.setSignOutRange(1000);
+//
+//
+//            if( i == 1){
+//                comActActivityService.save(comActActivity);
+//                dateHashMap.add(cellValue1,date3);
+//            } else {
+//                if(dateHashMap.containsKey(cellValue1)){
+//                    List<Date> dateList = dateHashMap.get(cellValue1);
+//                    assert dateList != null;
+//                    if( !dateList.contains(date3)){
+//                        comActActivityService.save(comActActivity);
+//                        dateHashMap.add(cellValue1,date3);
+//                    } else {
+//                        QueryWrapper<ComActActivityDO> wrapper1 = new QueryWrapper<>();
+//                        wrapper1.eq("activity_name",cellValue1);
+//                        wrapper1.eq("begin_at",date3);
+//                        System.out.println(cellValue1);
+//                        System.out.println(comAct.getCommunityId());
+//                        System.out.println(cellValue6);
+//                        List<ComActActivityDO> doList = comActActivityDAO.selectList(wrapper1);
+//                        comActActivity.setId(doList.get(doList.size() - 1).getId());
+//                    }
+//                } else {
+//                    comActActivityService.save(comActActivity);
+//                    dateHashMap.add(cellValue1,date3);
+//                }
+//            }
+//
+//
+//            System.out.println(comActActivity.getId());
+//
+//            if(!signAndRegist.contains(comActActivity.getId() + "-" + userId)) {
+//                ComActActSignDO comActActSign = new ComActActSignDO();
+//                comActActSign.setActivityId(comActActivity.getId());
+//                comActActSign.setUserId(userId);
+//                comActActSign.setCreateAt(date1);
+//                comActActSign.setSignIdentity(2);
+//                comActActSign.setStatus(1);
+//                comActActSign.setCheckUnitId(comPbCheckUnit.getId());
+//                comActActSignDAO.insert(comActActSign);
+//
+//                ComActActRegistDO comActActRegist = new ComActActRegistDO();
+//                comActActRegist.setActivityId(comActActivity.getId());
+//                comActActRegist.setUserId(userId);
+//                comActActRegist.setCreateAt(date3);
+//                comActActRegist.setSignIdentity(2);
+//                comActActRegist.setCheckUnitId(comPbCheckUnit.getId());
+//                comActActRegist.setStartTime(date3);
+//
+//                Calendar calendar = Calendar.getInstance();
+//                calendar.setTime(date3);
+//                calendar.add(Calendar.HOUR_OF_DAY, Integer.parseInt(cellValue3));
+//                Date time = calendar.getTime();
+//                comActActRegist.setEndTime(time);
+//                comActActRegist.setPosition(comAct.getAddress());
+//                comActActRegist.setTimes(1);
+//                comActActRegist.setCodeId(1768091384461426690L);
+//                comActActRegist.setAward(0);
+//                comActActRegist.setType(2);
+//                comActActRegistDAO.insert(comActActRegist);
+//            }
+//            signAndRegist.add(comActActivity.getId() + "-" + userId);
+//        }
+    }
+
+    public static String getSHA256StrJava(String str) {
+        MessageDigest messageDigest;
+        String encodeStr = "";
+        try {
+            messageDigest = MessageDigest.getInstance("SHA-256");
+            messageDigest.update(str.getBytes(StandardCharsets.UTF_8));
+            byte[] bytes = messageDigest.digest();
+            StringBuffer stringBuffer = new StringBuffer();
+            String temp = null;
+            for (int i = 0; i < bytes.length; i++) {
+                temp = Integer.toHexString(bytes[i] & 0xFF);
+                if (temp.length() == 1) {
+                    //1得到一位的进行补0操作
+                    stringBuffer.append("0");
+                }
+                stringBuffer.append(temp);
+            }
+            encodeStr = stringBuffer.toString();
+        } catch (NoSuchAlgorithmException e) {
+            e.printStackTrace();
+        }
+        return encodeStr;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActAcidCheckRecordServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActAcidCheckRecordServiceImpl.java
new file mode 100644
index 0000000..34285f1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActAcidCheckRecordServiceImpl.java
@@ -0,0 +1,36 @@
+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.acid.ComActAcidCheckRecordDTO;
+import com.panzhihua.common.model.dtos.community.acid.ComActAcidDangerMemberDTO;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.ComActAcidCheckRecord;
+import com.panzhihua.service_community.dao.ComActAcidCheckRecordDao;
+import com.panzhihua.service_community.service.ComActAcidCheckRecordService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * 排查跟进表(ComActAcidCheckRecord)表服务实现类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 排查跟进表相关功能
+ *
+ * @author zzj
+ * @since 2022-04-24 16:14:26
+ */
+@Slf4j
+@Service
+public class ComActAcidCheckRecordServiceImpl extends ServiceImpl<ComActAcidCheckRecordDao, ComActAcidCheckRecord> implements ComActAcidCheckRecordService {
+
+    @Override
+    public R pageList(ComActAcidCheckRecordDTO comActAcidDangerMemberDTO) {
+        return R.ok(this.baseMapper.pageList(new Page(comActAcidDangerMemberDTO.getPage(), comActAcidDangerMemberDTO.getSize()),comActAcidDangerMemberDTO));
+    }
+
+    @Override
+    public void saveRecordBeforeUpdate(ComActAcidCheckRecord comActAcidCheckRecord) {
+
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActAcidDangerMemberServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActAcidDangerMemberServiceImpl.java
new file mode 100644
index 0000000..683bf3d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActAcidDangerMemberServiceImpl.java
@@ -0,0 +1,49 @@
+package com.panzhihua.service_community.service.impl;
+
+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.model.dtos.community.acid.ComActAcidDangerMemberDTO;
+import com.panzhihua.common.model.dtos.community.acid.PageDangerMemberDTO;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidDangerMemberVO;
+import com.panzhihua.service_community.entity.ComActAcidDangerMember;
+import com.panzhihua.service_community.dao.ComActAcidDangerMemberDao;
+import com.panzhihua.service_community.service.ComActAcidDangerMemberService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * 风险人员表(ComActAcidDangerMember)表服务实现类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 风险人员表相关功能
+ *
+ * @author zzj
+ * @since 2022-04-24 16:12:10
+ */
+@Slf4j
+@Service
+public class ComActAcidDangerMemberServiceImpl extends ServiceImpl<ComActAcidDangerMemberDao, ComActAcidDangerMember> implements ComActAcidDangerMemberService {
+
+    @Override
+    public R pageList(ComActAcidDangerMemberDTO commonPage) {
+        Page page = new Page<>();
+        page.setSize(commonPage.getSize());
+        page.setCurrent(commonPage.getPage());
+        return R.ok(this.baseMapper.pageList(page, commonPage));
+    }
+
+    /**
+     * 分页查询风险人员
+     * @param pageDangerMemberDTO
+     * @return
+     */
+    @Override
+    public R pageDangerMember(PageDangerMemberDTO pageDangerMemberDTO) {
+        Page page = new Page<>();
+        page.setSize(pageDangerMemberDTO.getPageSize());
+        page.setCurrent(pageDangerMemberDTO.getPageNum());
+        return R.ok(this.baseMapper.pageDangerMember(page, pageDangerMemberDTO));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActAcidMemberServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActAcidMemberServiceImpl.java
new file mode 100644
index 0000000..5ecf9da
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActAcidMemberServiceImpl.java
@@ -0,0 +1,57 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.community.acid.ComActAcidMemberDTO;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidMemberVO;
+import com.panzhihua.service_community.entity.ComActAcidMember;
+import com.panzhihua.service_community.dao.ComActAcidMemberDao;
+import com.panzhihua.service_community.service.ComActAcidMemberService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 防疫工作人员表(ComActAcidMember)表服务实现类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 防疫工作人员表相关功能
+ *
+ * @author zzj
+ * @since 2022-04-24 16:12:08
+ */
+@Slf4j
+@Service
+public class ComActAcidMemberServiceImpl extends ServiceImpl<ComActAcidMemberDao, ComActAcidMember> implements ComActAcidMemberService {
+
+    @Override
+    public R pageList(ComActAcidMemberDTO commonPage) {
+        return R.ok(this.baseMapper.pageList(new Page(commonPage.getPage(),commonPage.getSize()),commonPage));
+    }
+
+    @Override
+    public R insert(ComActAcidMemberVO comActAcidMemberVO) {
+        Integer count= this.baseMapper.selectCount(new QueryWrapper<ComActAcidMember>().lambda().eq(ComActAcidMember::getPhone,comActAcidMemberVO.getPhone()));
+        if(count>0){
+            return R.fail("手机号码已占用");
+        }
+        ComActAcidMember comActAcidMember=new ComActAcidMember();
+        BeanUtils.copyProperties(comActAcidMemberVO,comActAcidMember);
+        return R.ok(this.baseMapper.insert(comActAcidMember));
+    }
+
+    /**
+     * 根据relationName查询推送人员列表
+     * @param relationName
+     * @return
+     */
+    @Override
+    public R selectPushList(String relationName) {
+        return R.ok(this.baseMapper.selectPushList(relationName));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActAcidRecordServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActAcidRecordServiceImpl.java
new file mode 100644
index 0000000..72bf5de
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActAcidRecordServiceImpl.java
@@ -0,0 +1,694 @@
+package com.panzhihua.service_community.service.impl;
+
+import cn.hutool.core.util.ArrayUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.community.acid.BatchCheckAcidRecordDTO;
+import com.panzhihua.common.model.dtos.community.acid.ComActAcidRecordDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.StatisticsPhotoVO;
+import com.panzhihua.common.model.vos.community.acid.*;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.dao.*;
+import com.panzhihua.service_community.entity.*;
+import com.panzhihua.service_community.model.dos.ComActDO;
+import com.panzhihua.service_community.model.dos.ComStreetDO;
+import com.panzhihua.service_community.service.ComActAcidRecordService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.rabbit.core.RabbitTemplate;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.*;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+import static com.baomidou.mybatisplus.core.toolkit.ObjectUtils.isNotEmpty;
+import static com.baomidou.mybatisplus.core.toolkit.ObjectUtils.isNull;
+import static org.apache.commons.lang3.StringUtils.isBlank;
+
+/**
+ * (ComActAcidRecord)表服务实现类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 相关功能
+ *
+ * @author zzj
+ * @since 2022-04-12 15:29:58
+ */
+@Slf4j
+@Service
+public class ComActAcidRecordServiceImpl extends ServiceImpl<ComActAcidRecordDao, ComActAcidRecord> implements ComActAcidRecordService {
+
+    @Resource
+    private RabbitTemplate rabbitTemplate;
+    @Resource
+    private ComActAcidDangerMemberDao comActAcidDangerMemberDao;
+    @Resource
+    private UserService userService;
+    @Resource
+    private ComActDAO comActDAO;
+    @Resource
+    private ComActAcidUpdateRecordDao comActAcidUpdateRecordDao;
+    @Resource
+    private ComAreaTownCommunityDao comAreaTownCommunityDao;
+    @Resource
+    private ComCunDao comCunDao;
+    @Resource
+    private ComStreetDAO comStreetDAO;
+    @Resource
+    private SysUserDao sysUserDao;
+
+    @Override
+    public R pageList(ComActAcidRecordDTO comActAcidRecordDTO) {
+        //是否需要筛选
+        comActAcidRecordDTO.setType(isVilliage(comActAcidRecordDTO.getLoginAccount()));
+        log.info("搜索条件=========="+comActAcidRecordDTO);
+        //获取当前登录账号的社区名
+        return R.ok(this.baseMapper.pageList(new Page<>(comActAcidRecordDTO.getPage(), comActAcidRecordDTO.getSize()),comActAcidRecordDTO));
+    }
+
+    @Override
+    public R export(ComActAcidRecordDTO comActAcidRecordDTO) {
+        List<ComActAcidRecordExcelReturn> comActAcidRecordExcelVOS=new ArrayList<>();
+        if(StringUtils.isNotEmpty(comActAcidRecordDTO.getIds())){
+            comActAcidRecordExcelVOS=this.baseMapper.selectByIds(comActAcidRecordDTO.getIds());
+        }
+        else {
+            comActAcidRecordExcelVOS=this.baseMapper.export(comActAcidRecordDTO);
+        }
+        comActAcidRecordExcelVOS.forEach(comActAcidRecordExcelVO -> {
+            if(StringUtils.isNotEmpty(comActAcidRecordExcelVO.getTouristCity())&&comActAcidRecordExcelVO.getTouristCity().contains("[")){
+                JSONArray jsonArray = JSON.parseArray(comActAcidRecordExcelVO.getTouristCity());
+                if(jsonArray.isEmpty()){
+                    comActAcidRecordExcelVO.setTouristCity("");
+                }
+                else {
+                    StringBuilder touristCity= new StringBuilder();
+                    for(int i=0;i<jsonArray.size();i++){
+                        JSONObject jsonObject=jsonArray.getJSONObject(i);
+                        String name=jsonObject.getString("name");
+                        if(StringUtils.isNotEmpty(name)){
+                            touristCity.append(name).append(";");
+                        }
+                    }
+                    comActAcidRecordExcelVO.setTouristCity(touristCity.toString());
+                }
+            }
+        });
+        return R.ok(comActAcidRecordExcelVOS);
+    }
+
+    @Override
+    public R exportNew(ComActAcidRecordDTO comActAcidRecordDTO) {
+        List<ComActAcidRecordExcelReturn> comActAcidRecordExcelVOS=this.baseMapper.exportNew(comActAcidRecordDTO);
+        comActAcidRecordExcelVOS.forEach(comActAcidRecordExcelVO -> {
+            if(StringUtils.isNotEmpty(comActAcidRecordExcelVO.getTouristCity())&&comActAcidRecordExcelVO.getTouristCity().contains("[")){
+                JSONArray jsonArray = JSON.parseArray(comActAcidRecordExcelVO.getTouristCity());
+                if(jsonArray.isEmpty()){
+                    comActAcidRecordExcelVO.setTouristCity("");
+                }
+                else {
+                    StringBuilder touristCity= new StringBuilder();
+                    for(int i=0;i<jsonArray.size();i++){
+                        JSONObject jsonObject=jsonArray.getJSONObject(i);
+                        String name=jsonObject.getString("name");
+                        if(StringUtils.isNotEmpty(name)){
+                            touristCity.append(name).append(";");
+                        }
+                    }
+                    comActAcidRecordExcelVO.setTouristCity(touristCity.toString());
+                }
+            }
+        });
+        return R.ok(comActAcidRecordExcelVOS);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R insertRecord(ComActAcidRecordVO comActAcidRecordVO) {
+        Integer count= this.baseMapper.selectCount(new QueryWrapper<ComActAcidRecord>().lambda().eq(ComActAcidRecord::getIsDel,0).eq(ComActAcidRecord::getIdCard,comActAcidRecordVO.getIdCard()).ge(ComActAcidRecord::getCreateTime, DateUtils.getCurrentDate(DateUtils.yyyyMMdd_format)));
+        if(count>0){
+            return R.fail("您的社区报备信息已填写完整,请勿重复提交!");
+        }
+        if(StringUtils.isEmpty(comActAcidRecordVO.getLocalCity())){
+            rabbitTemplate.convertAndSend("huacheng.acid.exchange", "huacheng.acid.key", comActAcidRecordVO, message -> {
+                message.getMessageProperties().setHeader("x-delay", 2*60*60*1000);
+                return message;
+            });
+        }
+        else {
+            rabbitTemplate.convertAndSend("huacheng.acid.direct.exchange", "huacheng.acid.direct.key", comActAcidRecordVO);
+        }
+        ComActAcidRecord comActAcidRecord=new ComActAcidRecord();
+        BeanUtils.copyProperties(comActAcidRecordVO,comActAcidRecord);
+        comActAcidRecord.setCreateTime(new Date());
+        int result = this.baseMapper.insert(comActAcidRecord);
+        if (result > 0) {
+            String colorMark = comActAcidRecordVO.getColorMark();
+            String travelCard = comActAcidRecordVO.getTravelCard();
+            String dangerArea = comActAcidRecordVO.getDangerArea();
+            String outsideCity = comActAcidRecordVO.getOutsideCity();
+            String acidTest = comActAcidRecordVO.getAcidTest();
+            if(StringUtils.isEmpty(acidTest)){
+                acidTest="阴性";
+            }
+            if(StringUtils.isEmpty(travelCard)){
+                travelCard="否";
+            }
+            if (StringUtils.inStringIgnoreCase(colorMark, "红码", "黄码") || travelCard.equals("是")
+                    || dangerArea.equals("是") || outsideCity.equals("是") || acidTest.equals("阳性")) {
+                //风险人员
+                String riskType = retrieveRiskType(colorMark, travelCard, dangerArea, outsideCity, acidTest);
+                saveAcidDangerMember(comActAcidRecordVO, comActAcidRecord.getId(), 1, riskType);
+                return R.ok();
+            }
+            if (StringUtils.isEmpty(comActAcidRecordVO.getLocalCity())) {
+                //未填住址人员
+                saveAcidDangerMember(comActAcidRecordVO, comActAcidRecord.getId(), 2, null);
+            }
+            return R.ok(comActAcidRecord.getId().toString());
+        }
+
+        return R.fail("操作失败,请重新尝试");
+    }
+
+    private String retrieveRiskType(String colorMark, String travelCard, String dangerArea, String outsideCity, String acidTest) {
+        StringBuilder riskType = new StringBuilder();
+        if (StringUtils.inStringIgnoreCase(colorMark, "红码", "黄码")) {
+            riskType.append(",");
+            riskType.append(ComActAcidDangerMember.RiskType.COLOR);
+        }
+        if (travelCard.equals("是")) {
+            riskType.append(",");
+            riskType.append(ComActAcidDangerMember.RiskType.STAR);
+        }
+        if (dangerArea.equals("是")) {
+            riskType.append(",");
+            riskType.append(ComActAcidDangerMember.RiskType.HIGH);
+        }
+        if (outsideCity.equals("是")) {
+            riskType.append(",");
+            riskType.append(ComActAcidDangerMember.RiskType.OUT);
+        }
+        if (acidTest.equals("阳性")) {
+            riskType.append(",");
+            riskType.append(ComActAcidDangerMember.RiskType.TEST);
+        }
+        return riskType.substring(1);
+    }
+
+    private void saveAcidDangerMember(ComActAcidRecordVO comActAcidRecordVO, Long recordId, Integer type, String riskType) {
+        String localCity = comActAcidRecordVO.getLocalCity();
+        String relationName = "panzhihua";
+        if (isNotEmpty(localCity)) {
+            relationName = localCity;
+        } else {
+            String realAddress = comActAcidRecordVO.getRealAddress();
+            if(isNotEmpty(realAddress)){
+                if (realAddress.contains("攀枝花")) {
+                    if (realAddress.contains("区")) {
+                        relationName = realAddress.substring(realAddress.indexOf("市") + 1, realAddress.indexOf("区") + 1);
+                    } else {
+                        relationName = realAddress.substring(realAddress.indexOf("市") + 1, realAddress.indexOf("县") + 1);
+                    }
+                }
+            }
+        }
+        ComActAcidDangerMember dangerMember = comActAcidDangerMemberDao.selectOne(new LambdaQueryWrapper<ComActAcidDangerMember>()
+                .eq(ComActAcidDangerMember::getIdCard, comActAcidRecordVO.getIdCard()).eq(ComActAcidDangerMember::getRecordId, recordId).orderByDesc(ComActAcidDangerMember::getCreateTime).last("limit 1"));
+        if (isNull(dangerMember)) {
+            dangerMember = new ComActAcidDangerMember();
+            dangerMember.setName(comActAcidRecordVO.getName());
+            dangerMember.setPhone(comActAcidRecordVO.getPhone());
+            dangerMember.setRecordId(recordId);
+            dangerMember.setIdCard(comActAcidRecordVO.getIdCard());
+            dangerMember.setSource(1);
+            dangerMember.setStatus(6);
+            dangerMember.setType(type);
+            dangerMember.setRelationName(relationName);
+            dangerMember.setCreateTime(new Date());
+            dangerMember.setRiskType(riskType);
+            comActAcidDangerMemberDao.insert(dangerMember);
+        } else {
+            dangerMember.setName(comActAcidRecordVO.getName());
+            dangerMember.setPhone(comActAcidRecordVO.getPhone());
+            dangerMember.setRecordId(recordId);
+            dangerMember.setIdCard(comActAcidRecordVO.getIdCard());
+            dangerMember.setSource(1);
+            dangerMember.setType(type);
+            dangerMember.setRelationName(relationName);
+            dangerMember.setUpdateTime(new Date());
+            dangerMember.setRiskType(riskType);
+            comActAcidDangerMemberDao.updateById(dangerMember);
+        }
+        ComActAcidDangerMemberVO dangerMemberVO = new ComActAcidDangerMemberVO();
+        BeanUtils.copyProperties(dangerMember, dangerMemberVO);
+        rabbitTemplate.convertAndSend("huacheng.acid.danger.exchange", "huacheng.acid.danger.key", dangerMemberVO, message -> {
+            message.getMessageProperties().setHeader("x-delay", 1*60*1000);
+            return message;
+        });
+    }
+
+    @Override
+    public R fiveCount(String localCity) {
+        return R.ok(this.baseMapper.fiveCount(localCity));
+    }
+    @Override
+    public R fiveCountPlus(String date,String localCity,String loginAccount) {
+        Integer type=3;
+        if (StringUtils.isNotEmpty(loginAccount)){
+             type = isVilliage(loginAccount);
+        }
+        return R.ok(this.baseMapper.fiveCountPlus(date,localCity,type));
+    }
+
+    @Override
+    public R charts(String date, String localCity) {
+        if(StringUtils.isNotEmpty(localCity)){
+            ComActAcidCharts comActAcidCharts=new ComActAcidCharts();
+            List<ComActAcidChartsVO> acidList=new ArrayList<>();
+            List<ComActAcidChartsVO> dangerList=new ArrayList<>();
+            List<ComActAcidChartsVO> checkCount=new ArrayList<>();
+            String[] area={"东区","西区","仁和区","米易县","盐边县"};
+            if("panzhihua".equals(localCity)){
+                for(String areaValue:area){
+                    ComActAcidChartsVO acid=new ComActAcidChartsVO();
+                    acid.setName(areaValue);
+                    ComActAcidChartsVO acidCount =this.baseMapper.selectAcidCount(date,areaValue);
+                    if(acidCount!=null){
+                        acid.setNumOne(acidCount.getNumOne());
+                    }
+                    acidList.add(acid);
+                    ComActAcidChartsVO danger=new ComActAcidChartsVO();
+                    danger.setName(areaValue);
+                    ComActAcidChartsVO dangerCount =this.baseMapper.selectDangerCount(date,areaValue);
+                    if(dangerCount!=null){
+                        danger.setNumOne(dangerCount.getNumOne());
+                        danger.setNumTwo(dangerCount.getNumTwo());
+                    }else{
+                        danger.setNumOne(0);
+                        danger.setNumTwo(0);
+                    }
+                    dangerList.add(danger);
+                    checkCount =this.baseMapper.selectCheck(date,localCity);
+                    if(checkCount!=null){
+                        checkCount.forEach(comActAcidChartsVO -> {
+                            if(comActAcidChartsVO.getNumTwo()!=null){
+                                comActAcidChartsVO.setPercent(new BigDecimal(comActAcidChartsVO.getNumOne())
+                                        .divide(new BigDecimal(comActAcidChartsVO.getNumTwo()), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
+                            }
+                        });
+                    }
+
+                }
+            }
+            if(ArrayUtil.contains(area,localCity)){
+                List<String> streets=comAreaTownCommunityDao.selectDistinctTown(localCity);
+                streets.forEach(street ->{
+                    ComActAcidChartsVO acid=new ComActAcidChartsVO();
+                    acid.setName(street);
+                    ComActAcidChartsVO acidCount =this.baseMapper.selectAcidCount(date,street);
+                    if(acidCount!=null){
+                        acid.setNumOne(acidCount.getNumOne());
+                    }
+                    acidList.add(acid);
+                    ComActAcidChartsVO danger=new ComActAcidChartsVO();
+                    danger.setName(street);
+                    ComActAcidChartsVO dangerCount =this.baseMapper.selectDangerCount(date,street);
+                    if(dangerCount!=null){
+                        danger.setNumOne(dangerCount.getNumOne());
+                        danger.setNumTwo(dangerCount.getNumTwo());
+                    }
+                    dangerList.add(danger);
+                });
+            }
+            comActAcidCharts.setAcidList(acidList);
+            comActAcidCharts.setDangerList(dangerList);
+            comActAcidCharts.setCheckList(checkCount);
+            return R.ok(comActAcidCharts);
+        }
+        return R.fail();
+    }
+
+    @Override
+    public R statics(String date) {
+        List<ComAcidStaticVO> comAcidStaticVOS=new ArrayList<>();
+        String[] area={"攀枝花市","东区","西区","仁和区","米易县","盐边县","钒钛新城"};
+        String[] country={"上海市","吉林省","广东省","江苏省","浙江省","山东省","湖北省","山西省","黑龙江省","广西壮族自治区","河北省","辽宁省","河南省","福建省","安徽省","南昌市","西宁市","西安市","文山州","兰州市","邵阳市"};
+        for(String areaName:area){
+            ComAcidStaticVO comAcidStaticVO=this.baseMapper.areaStatics(areaName,date);
+            comAcidStaticVO.setAreaName(areaName);
+            List<ComAcidAreaVO> comAcidAreaVOS=new ArrayList<>();
+            for(String countryName:country){
+                Integer count=this.baseMapper.countryStatics(countryName,date,areaName);
+                ComAcidAreaVO comAcidAreaVO=new ComAcidAreaVO();
+                comAcidAreaVO.setName(countryName);
+                comAcidAreaVO.setCount(count);
+                comAcidAreaVOS.add(comAcidAreaVO);
+            }
+            comAcidStaticVO.setComAcidAreaVOS(comAcidAreaVOS);
+            comAcidStaticVOS.add(comAcidStaticVO);
+        }
+        return R.ok(comAcidStaticVOS);
+    }
+
+    @Override
+    public R updateLocalCity(ComActAcidRecordVO comActAcidRecordVO) {
+        ComActAcidUpdateRecord comActAcidUpdateRecord=new ComActAcidUpdateRecord();
+        comActAcidUpdateRecord.setRecordId(comActAcidRecordVO.getId());
+        comActAcidUpdateRecord.setUserId(comActAcidRecordVO.getUserId());
+        comActAcidUpdateRecord.setCreateTime(new Date());
+        comActAcidUpdateRecordDao.insert(comActAcidUpdateRecord);
+        ComActAcidRecord comActAcidRecord = new ComActAcidRecord();
+        BeanUtils.copyProperties(comActAcidRecordVO, comActAcidRecord);
+        String idCard = comActAcidRecordVO.getIdCard();
+        ComActAcidRecord comActAcidRecord1 = this.baseMapper.selectById(comActAcidRecordVO.getId());
+        comActAcidRecord.setUserId(comActAcidRecord1.getUserId());
+        if (isBlank(idCard)) {
+            //只修改地址
+            if (isNull(comActAcidRecord1)) {
+                return R.fail("填报纪录不存在");
+            }
+            String localCity = comActAcidRecordVO.getLocalCity();
+            String localAddress = comActAcidRecordVO.getLocalAddress();
+            Integer checkStatus=comActAcidRecordVO.getCheckStatus();
+            String remark=comActAcidRecordVO.getRemark();
+            BeanUtils.copyProperties(comActAcidRecord1, comActAcidRecordVO);
+            if(StringUtils.isNotEmpty(localCity)){
+                comActAcidRecordVO.setLocalCity(localCity);
+            }
+            if(StringUtils.isNotEmpty(localAddress)){
+                comActAcidRecordVO.setLocalAddress(localAddress);
+            }
+            BeanUtils.copyProperties(comActAcidRecord1,comActAcidRecord);
+            if(checkStatus>0){
+                comActAcidRecord.setCheckStatus(checkStatus);
+            }
+            if(StringUtils.isNotEmpty(remark)){
+                comActAcidRecord.setRemark(remark);
+            }
+        }
+        ComActAcidDangerMember comActAcidDangerMember =
+            comActAcidDangerMemberDao.selectOne(new QueryWrapper<ComActAcidDangerMember>().lambda()
+                .eq(ComActAcidDangerMember::getRecordId, comActAcidRecordVO.getId()).orderByDesc(ComActAcidDangerMember::getCreateTime).last("limit 1"));
+        String colorMark = comActAcidRecordVO.getColorMark();
+        String travelCard = comActAcidRecordVO.getTravelCard();
+        String dangerArea = comActAcidRecordVO.getDangerArea();
+        String outsideCity = comActAcidRecordVO.getOutsideCity();
+        String acidTest = comActAcidRecordVO.getAcidTest();
+        if(StringUtils.isEmpty(acidTest)){
+            acidTest="阴性";
+        }
+        if(StringUtils.isEmpty(travelCard)){
+            travelCard="否";
+        }
+        if (StringUtils.inStringIgnoreCase(colorMark, "红码", "黄码") || travelCard.equals("是") || dangerArea.equals("是")
+            || outsideCity.equals("是") || acidTest.equals("阳性")) {
+            // 风险人员
+            String riskType = retrieveRiskType(colorMark, travelCard, dangerArea, outsideCity, acidTest);
+            saveAcidDangerMember(comActAcidRecordVO, comActAcidRecord.getId(), 1, riskType);
+        } else if (StringUtils.isEmpty(comActAcidRecordVO.getLocalCity())) {
+            // 未填住址人员
+            saveAcidDangerMember(comActAcidRecordVO, comActAcidRecord.getId(), 2, null);
+        } else if (comActAcidDangerMember != null && comActAcidDangerMember.getType() == 2) {
+            this.comActAcidDangerMemberDao.deleteById(comActAcidDangerMember.getId());
+        }
+
+        return R.ok(this.baseMapper.updateById(comActAcidRecord));
+    }
+
+    @Override
+    public R updateApplets(ComActAcidRecordVO comActAcidRecordVO) {
+        ComActAcidUpdateRecord comActAcidUpdateRecord=new ComActAcidUpdateRecord();
+        comActAcidUpdateRecord.setRecordId(comActAcidRecordVO.getId());
+        comActAcidUpdateRecord.setUserId(comActAcidRecordVO.getUserId());
+        comActAcidUpdateRecord.setCreateTime(new Date());
+        comActAcidUpdateRecordDao.insert(comActAcidUpdateRecord);
+        ComActAcidRecord comActAcidRecord = new ComActAcidRecord();
+        BeanUtils.copyProperties(comActAcidRecordVO, comActAcidRecord);
+        String idCard = comActAcidRecordVO.getIdCard();
+        ComActAcidRecord comActAcidRecord1 = this.baseMapper.selectById(comActAcidRecordVO.getId());
+        comActAcidRecord.setUserId(comActAcidRecord1.getUserId());
+        if (isBlank(idCard)) {
+            //只修改核对状态
+            if (isNull(comActAcidRecord1)) {
+                return R.fail("填报纪录不存在");
+            }
+            Integer checkStatus=comActAcidRecordVO.getCheckStatus();
+            String remark=comActAcidRecordVO.getRemark();
+            BeanUtils.copyProperties(comActAcidRecord1, comActAcidRecordVO);
+            BeanUtils.copyProperties(comActAcidRecord1,comActAcidRecord);
+            if(checkStatus>0){
+                comActAcidRecord.setCheckStatus(checkStatus);
+            }
+            if(StringUtils.isNotEmpty(remark)){
+                comActAcidRecord.setRemark(remark);
+            }
+        }
+        ComActAcidDangerMember comActAcidDangerMember =
+                comActAcidDangerMemberDao.selectOne(new QueryWrapper<ComActAcidDangerMember>().lambda()
+                        .eq(ComActAcidDangerMember::getRecordId, comActAcidRecordVO.getId()).orderByDesc(ComActAcidDangerMember::getCreateTime).last("limit 1"));
+        String colorMark = comActAcidRecordVO.getColorMark();
+        String travelCard = comActAcidRecordVO.getTravelCard();
+        String dangerArea = comActAcidRecordVO.getDangerArea();
+        String outsideCity = comActAcidRecordVO.getOutsideCity();
+        String acidTest = comActAcidRecordVO.getAcidTest();
+        if(StringUtils.isEmpty(acidTest)){
+            acidTest="阴性";
+        }
+        if(StringUtils.isEmpty(travelCard)){
+            travelCard="否";
+        }
+        if (StringUtils.inStringIgnoreCase(colorMark, "红码", "黄码") || travelCard.equals("是") || dangerArea.equals("是")
+                || outsideCity.equals("是") || acidTest.equals("阳性")) {
+            // 风险人员
+            String riskType = retrieveRiskType(colorMark, travelCard, dangerArea, outsideCity, acidTest);
+            saveAcidDangerMember(comActAcidRecordVO, comActAcidRecord.getId(), 1, riskType);
+        } else if (StringUtils.isEmpty(comActAcidRecordVO.getLocalCity())) {
+            // 未填住址人员
+            saveAcidDangerMember(comActAcidRecordVO, comActAcidRecord.getId(), 2, null);
+        } else if (comActAcidDangerMember != null && comActAcidDangerMember.getType() == 2) {
+            this.comActAcidDangerMemberDao.deleteById(comActAcidDangerMember.getId());
+        }
+        return R.ok(this.baseMapper.updateById(comActAcidRecord));
+    }
+
+    @Override
+    public R delete(Long id) {
+        ComActAcidRecord comActAcidRecord=new ComActAcidRecord();
+        comActAcidRecord.setId(id);
+        comActAcidRecord.setIsDel(1);
+        this.baseMapper.updateById(comActAcidRecord);
+        List<ComActAcidDangerMember> comActAcidDangerMembers=this.comActAcidDangerMemberDao.selectList(new QueryWrapper<ComActAcidDangerMember>().lambda().eq(ComActAcidDangerMember::getRecordId,id));
+        comActAcidDangerMembers.forEach(comActAcidDangerMember -> {
+            comActAcidDangerMember.setIsDel(1);
+            this.comActAcidDangerMemberDao.updateById(comActAcidDangerMember);
+        });
+        return R.ok();
+    }
+
+    @Override
+    public R detailByApp(Long id,String localCity) {
+        ComActAcidRecord comActAcidRecord=this.baseMapper.selectById(id);
+        ComActAcidRecordVO comActAcidRecordVO=this.baseMapper.selectLastNext(id,localCity);
+        BeanUtils.copyProperties(comActAcidRecord,comActAcidRecordVO);
+        return R.ok(comActAcidRecordVO);
+    }
+
+    @Override
+    public R detailByCommunity(Long id) {
+        ComActAcidRecordVO comActAcidRecordVO=new ComActAcidRecordVO();
+        ComActAcidRecord comActAcidRecord= this.baseMapper.selectById(id);
+        BeanUtils.copyProperties(comActAcidRecord,comActAcidRecordVO);
+        List<ComActAcidUpdateRecordVO> comActAcidUpdateRecordList=this.comActAcidUpdateRecordDao.selectList(id);
+        if(!comActAcidUpdateRecordList.isEmpty()){
+            comActAcidRecordVO.setComActAcidUpdateRecordVOList(comActAcidUpdateRecordList);
+        }
+        return R.ok(comActAcidRecordVO);
+    }
+
+    @Override
+    public R test() {
+        List<ComCun> comCuns=comCunDao.selectList(new QueryWrapper<ComCun>());
+        comCuns.forEach(comCun->{
+           ComActDO comActDO= comActDAO.selectOne(new QueryWrapper<ComActDO>().lambda().eq(ComActDO::getName,comCun.getCommunity()));
+            if(comActDO==null){
+                ComStreetDO comStreetDO = comStreetDAO.selectOne(new QueryWrapper<ComStreetDO>().lambda().eq(ComStreetDO::getName,comCun.getTown()));
+                if(comStreetDO==null){
+                    comStreetDO=new ComStreetDO();
+                    comStreetDO.setName(comCun.getTown());
+                    areaCheck(comCun,comStreetDO);
+                    comStreetDO.setAccount(comCun.getAccount());
+                    comStreetDAO.insert(comStreetDO);
+                }
+                comActDO=new ComActDO();
+                comActDO.setStreetId(comStreetDO.getStreetId());
+                comActDO.setAreaCode(comStreetDO.getAreaCode().toString());
+                comActDO.setName(comCun.getCommunity());
+                comActDO.setContacts(comCun.getName());
+                comActDO.setContactsPhone(comCun.getPhone());
+                comActDAO.insert(comActDO);
+            }
+            ComAreaTownCommunity community=comAreaTownCommunityDao.selectOne(new QueryWrapper<ComAreaTownCommunity>().lambda().eq(ComAreaTownCommunity::getArea,comCun.getArea()).eq(ComAreaTownCommunity::getTown,comCun.getTown()).eq(ComAreaTownCommunity::getCommunity,comCun.getCommunity()));
+            if(community==null){
+                community=new ComAreaTownCommunity();
+                community.setArea(comCun.getArea());
+                community.setTown(comCun.getTown());
+                community.setCommunity(comCun.getCommunity());
+                comAreaTownCommunityDao.insert(community);
+            }else {
+                community.setCommunityId(comActDO.getCommunityId());
+                comAreaTownCommunityDao.updateById(community);
+            }
+            SysUser sysUser=sysUserDao.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getAccount,comCun.getAccount()));
+            if(sysUser!=null){
+                System.out.println(comCun.getAccount()+","+comCun.getCommunity());
+            }
+            else {
+                sysUser=new SysUser();
+                sysUser.setAccount(comCun.getAccount());
+                sysUser.setPassword("$2a$10$F/2lE2NMhKNHJfi5.FLmfu7jIr7ImRWgCTTeO6m3IRNR2V4sv8YR.");
+                sysUser.setName(comCun.getCommunity());
+                sysUser.setType(9);
+                sysUserDao.insert(sysUser);
+            }
+        });
+        return null;
+    }
+
+    /**
+     * 批量核对防疫信息数据
+     * @param batchCheckAcidRecordDTO
+     * @return
+     */
+    @Override
+    public R batchCheck(BatchCheckAcidRecordDTO batchCheckAcidRecordDTO) {
+        this.baseMapper.batchCheck(batchCheckAcidRecordDTO);
+        return R.ok();
+    }
+
+    @Override
+    public R checkCommit(Long userId) {
+        if(userId!=null){
+            List<ComActAcidRecord> comActAcidRecords= this.baseMapper.selectList(new QueryWrapper<ComActAcidRecord>().lambda().eq(ComActAcidRecord::getIsDel,0).eq(ComActAcidRecord::getUserId,userId).ge(ComActAcidRecord::getCreateTime, DateUtils.getCurrentDate(DateUtils.yyyyMMdd_format)).isNull(ComActAcidRecord::getColorImage));
+            return R.ok(comActAcidRecords);
+        }
+       return R.ok();
+    }
+
+    public static void areaCheck(ComCun area,ComStreetDO comStreetDO){
+        switch (area.getArea()){
+            case "西区": comStreetDO.setAreaCode(510423); break;
+            case "东区": comStreetDO.setAreaCode(510402); break;
+            case "仁和区": comStreetDO.setAreaCode(510411); break;
+            case "米易县": comStreetDO.setAreaCode(510421); break;
+            case "盐边县": comStreetDO.setAreaCode(510422); break;
+        }
+    }
+
+    /**
+     * 是否需要区分村落/社区
+     * */
+    private Integer isVilliage(String name){
+        if ("fangyipingtai".equals(name)){
+            return 3;
+        }else if ("pandashujuzhongxin".equals(name)){
+            return 1;
+        }else if ("pannongyenongcunju".equals(name)){
+            return 2;
+        }
+        return 3;
+    }
+
+    /**
+     * 统计红黄绿码
+     * @return
+     */
+    public R selectColorMarkGroup(){
+        //所有
+        List<ComActAcidColorChartsVO> comActAcidColorChartsVOS = this.baseMapper.selectColorMarkGroup();
+        int all = comActAcidColorChartsVOS.stream().mapToInt(ComActAcidColorChartsVO::getCountNum).sum();
+        for (ComActAcidColorChartsVO comActAcidColorChartsVO : comActAcidColorChartsVOS) {
+            if (0!=all){
+                BigDecimal countNum = new BigDecimal(comActAcidColorChartsVO.getCountNum());
+                BigDecimal allDecimal = new BigDecimal(all);
+                BigDecimal percent = countNum.divide(allDecimal,4, BigDecimal.ROUND_HALF_DOWN).multiply(new BigDecimal(100));
+                comActAcidColorChartsVO.setPercent(percent);
+            }
+        }
+//        Map<String, ComActAcidColorChartsVO> circleMap = comActAcidColorChartsVOS
+//                .stream()
+//                .collect(Collectors.toMap(ComActAcidColorChartsVO::getColorMark, Function.identity()));
+
+        //月份
+        List<ComActAcidColorChartsVO> comActAcidColorChartsVOS1 = this.baseMapper.selectColorMarkGroupByMonth();
+        //按颜色分组求和
+        Map<String, IntSummaryStatistics> colorCollect = comActAcidColorChartsVOS1
+                .stream()
+                .collect(Collectors.groupingBy(ComActAcidColorChartsVO::getColorMark,
+                        Collectors.summarizingInt(ComActAcidColorChartsVO::getCountNum)));
+
+        for (ComActAcidColorChartsVO comActAcidColorChartsVO : comActAcidColorChartsVOS1) {
+            String colorMark = comActAcidColorChartsVO.getColorMark();
+            if (colorCollect.containsKey(colorMark)){
+                IntSummaryStatistics intSummaryStatistics = colorCollect.get(colorMark);
+                long sum = intSummaryStatistics.getSum();
+                if (0L!=sum) {
+                    BigDecimal countNum = new BigDecimal(comActAcidColorChartsVO.getCountNum());
+                    BigDecimal sumDecimal = new BigDecimal(sum);
+                    BigDecimal percent = countNum.divide(sumDecimal, 4, BigDecimal.ROUND_HALF_DOWN).multiply(new BigDecimal(100));
+                    comActAcidColorChartsVO.setPercent(percent);
+                }
+            }
+        }
+        Map<String, Map<String, ComActAcidColorChartsVO>> colletMap = comActAcidColorChartsVOS1
+                .stream()
+                .collect(Collectors.groupingBy(ComActAcidColorChartsVO::getCountName,
+                        Collectors.toMap(ComActAcidColorChartsVO::getColorMark, Function.identity())));
+
+        String[] statusArr = {"红码","黄码","绿码"};
+        List<String> latest5Month = DateUtils.getLatest12Month(LocalDate.now(), 5);
+        for (String month : latest5Month) {
+            Map<String, ComActAcidColorChartsVO> map1;
+            if(colletMap.containsKey(month)){
+                map1 = colletMap.get(month);
+            }else {
+                map1 = new HashMap<>();
+            }
+            for (String status : statusArr) {
+                if (!map1.containsKey(status)){
+                    ComActAcidColorChartsVO comActAcidColorChartsVO = new ComActAcidColorChartsVO();
+                    comActAcidColorChartsVO.setCountNum(0);
+                    comActAcidColorChartsVO.setCountName(month);
+                    comActAcidColorChartsVO.setColorMark(status);
+                    comActAcidColorChartsVOS1.add(comActAcidColorChartsVO);
+                    map1.put(status,comActAcidColorChartsVO);
+                }
+            }
+            colletMap.put(month,map1);
+        }
+
+
+        Map<String, List<ComActAcidColorChartsVO>> chartMap = comActAcidColorChartsVOS1
+                .stream().sorted(Comparator.comparing(ComActAcidColorChartsVO::getCountName))
+                .collect(Collectors.groupingBy(ComActAcidColorChartsVO::getColorMark));
+
+        Map<String,Object> retMap = new HashMap<>();
+        retMap.put("comActAcidColorChartsVOS",comActAcidColorChartsVOS);
+        retMap.put("chartMap",chartMap);
+
+        return R.ok(retMap);
+    }
+}
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
new file mode 100644
index 0000000..f88f293
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActEvaluateServiceImpl.java
@@ -0,0 +1,191 @@
+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.stream.Collectors;
+
+import javax.annotation.Resource;
+
+import org.apache.commons.lang3.ObjectUtils;
+import org.apache.commons.lang3.time.DateUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActActEvaluateVO;
+import com.panzhihua.common.model.vos.community.MyActivityEvaluateVO;
+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;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * title: ComActActEvaluateServiceImpl  社区》活动》活动评价表服务实现类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 社区》活动》活动评价表服务实现类
+ *
+ * @author txb
+ * @date 2021/8/24 10:21
+ */
+@Slf4j
+@Service
+public class ComActActEvaluateServiceImpl extends ServiceImpl<ComActActEvaluateDAO, ComActActEvaluateDO> implements ComActActEvaluateService {
+
+    @Resource
+    private ComActActivityDAO comActActivityDAO;
+    @Resource
+    private ComActActSignDAO comActActSignDAO;
+    @Resource
+    private ComActActRegistDAO comActActRegistDAO;
+    /**
+     * 社区活动评价
+     *
+     * @param comActActEvaluateVO 社区评价VO
+     * @return 评价结果
+     */
+    @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("活动不存在");
+        }
+        ComActActSignDO comActActSignDO = comActActSignDAO
+                .selectOne(new QueryWrapper<ComActActSignDO>().lambda().eq(ComActActSignDO::getActivityId, activityId)
+                        .eq(ComActActSignDO::getUserId, userId).eq(ComActActSignDO::getStatus, 1));
+        if (isNull(comActActSignDO)) {
+            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));
+            int evaluateCount = this.baseMapper.selectCount(new QueryWrapper<ComActActEvaluateDO>().lambda()
+                    .eq(ComActActEvaluateDO::getUserId, userId).eq(ComActActEvaluateDO::getActivityId, activityId));
+            if (registCount <= evaluateCount) {
+                //未签到,不能评价
+                return R.fail("未签到,不能评价");
+            }
+        } else {
+            if (nowDate.before(beginAt)) {
+                return R.fail("活动还未开始,暂不支持评价");
+            }
+        }
+        ComActActEvaluateDO comActActEvaluateDO = new ComActActEvaluateDO();
+        BeanUtils.copyProperties(comActActEvaluateVO, comActActEvaluateDO);
+        comActActEvaluateDO.setSignIdentity(comActActSignDO.getSignIdentity());
+        int result = this.baseMapper.insert(comActActEvaluateDO);
+        if (result < 0) {
+            return R.fail("评论失败,请重试");
+        }
+        return R.ok();
+    }
+
+    /**
+     * 定时任务针对活动结束后7天还未评价的用户默认好评
+     */
+    @Override
+    public R timedTaskActivityDefaultPraise() {
+        //获取还未默认好评的活动
+        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)));
+        //获取报名记录
+        if (!ObjectUtils.isEmpty(comActActivityDOS)) {
+            List<Long> activityIds = comActActivityDOS.stream().map(ComActActivityDO::getId).collect(Collectors.toList());
+            List<ComActActSignDO> comActActSignDOS = comActActSignDAO.selectNeedEvaluateSignRecords(activityIds);
+            //批量插入好评
+            if (!ObjectUtils.isEmpty(comActActSignDOS)) {
+                List<ComActActEvaluateDO> comActActEvaluateDOList = comActActSignDOS.stream().map(comActActSignDO -> {
+                    ComActActEvaluateDO comActActEvaluateDO = new ComActActEvaluateDO();
+                    comActActEvaluateDO.setActivityId(comActActSignDO.getActivityId());
+                    comActActEvaluateDO.setSignIdentity(comActActSignDO.getSignIdentity());
+                    comActActEvaluateDO.setUserId(comActActSignDO.getUserId());
+                    comActActEvaluateDO.setCreateAt(new Date());
+                    comActActEvaluateDO.setStarLevel(5);
+                    comActActEvaluateDO.setEvaluateContent("系统默认好评!");
+                    return comActActEvaluateDO;
+                }).collect(Collectors.toList());
+                boolean result = this.saveBatch(comActActEvaluateDOList);
+                if (!result) {
+                    return R.fail("批量插入评价失败");
+                }
+                ComActActivityDO comActActivityDO = new ComActActivityDO();
+                comActActivityDO.setIsDefaultPraise(1);
+                int updateResult = comActActivityDAO.update(comActActivityDO, new UpdateWrapper<ComActActivityDO>()
+                        .lambda().in(ComActActivityDO::getId, activityIds));
+                if (updateResult < 0) {
+                    return R.fail("修改是否已默认评价状态失败");
+                }
+            }
+        }
+        return R.ok();
+    }
+
+    /**
+     * 用户评价列表
+     *
+     * @param userId 用户id
+     * @return 当前用户对所有活动的评价列表
+     */
+    @Override
+    public R listEvaluate(Long userId) {
+        List<ComActActEvaluateDO> comActActEvaluateDOList = this.baseMapper.selectList(new QueryWrapper<ComActActEvaluateDO>()
+                .lambda().eq(ComActActEvaluateDO::getUserId, userId));
+        List<ComActActEvaluateVO> comActActEvaluateVOS = new ArrayList<>();
+        if (!ObjectUtils.isEmpty(comActActEvaluateDOList)) {
+            comActActEvaluateDOList.forEach(comActActEvaluateDO -> {
+                ComActActEvaluateVO comActActEvaluateVO = new ComActActEvaluateVO();
+                BeanUtils.copyProperties(comActActEvaluateDO, comActActEvaluateVO);
+                comActActEvaluateVOS.add(comActActEvaluateVO);
+            });
+        }
+        return R.ok(comActActEvaluateVOS);
+    }
+
+    /**
+     * 我的评价
+     * @param userId
+     * @param activityId
+     * @return
+     */
+    @Override
+    public R listMyActivityEvaluate(Long userId, Long activityId) {
+        ComActActivityDO comActActivityDO = comActActivityDAO.selectById(activityId);
+        if (isNull(comActActivityDO)) {
+            return R.fail("活动不存在");
+        }
+        List<ComActActEvaluateVO> comActActEvaluateVOS = this.baseMapper.selectEvaluateList(activityId, userId);
+        int regCount = comActActRegistDAO.selectCount(new QueryWrapper<ComActActRegistDO>()
+                .lambda().eq(ComActActRegistDO::getActivityId, activityId).eq(ComActActRegistDO::getUserId, userId));
+
+        MyActivityEvaluateVO evaluateVO = new MyActivityEvaluateVO();
+        evaluateVO.setMyEvaluateList(comActActEvaluateVOS);
+        boolean needDisplay = regCount > comActActEvaluateVOS.size() &&
+                new Date().before(DateUtils.addDays(comActActivityDO.getEndAt(), 3));
+        evaluateVO.setIsDisplay(needDisplay ? 1 : 0);
+        return R.ok(evaluateVO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActPictureServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActPictureServiceImpl.java
new file mode 100644
index 0000000..c252acb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActPictureServiceImpl.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.ComActActPictureDAO;
+import com.panzhihua.service_community.model.dos.ComActActPictureDO;
+import com.panzhihua.service_community.service.ComActActPictureService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * title: ComActActPictureServiceImpl  社区》活动》历史上传图片服务实现类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 社区》活动》历史上传图片服务实现类
+ *
+ * @author txb
+ * @date 2021/8/24 10:21
+ */
+@Slf4j
+@Service
+public class ComActActPictureServiceImpl extends ServiceImpl<ComActActPictureDAO, ComActActPictureDO> implements ComActActPictureService {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActPrizeServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActPrizeServiceImpl.java
new file mode 100644
index 0000000..076d558
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActPrizeServiceImpl.java
@@ -0,0 +1,18 @@
+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.ComActActPrizeDAO;
+import com.panzhihua.service_community.model.dos.ComActActPrizeDO;
+import com.panzhihua.service_community.service.ComActActPrizeService;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 奖品
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 16:31
+ **/
+@Service
+public class ComActActPrizeServiceImpl extends ServiceImpl<ComActActPrizeDAO, ComActActPrizeDO>
+    implements ComActActPrizeService {}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActRegistServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActRegistServiceImpl.java
new file mode 100644
index 0000000..776fab0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActRegistServiceImpl.java
@@ -0,0 +1,69 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActActRegistVO;
+import com.panzhihua.service_community.dao.ComActActRegistDAO;
+import com.panzhihua.service_community.model.dos.ComActActRegistDO;
+import com.panzhihua.service_community.model.dos.ComActActivityDO;
+import com.panzhihua.service_community.service.ComActActRegistService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * title: ComActActRegistServiceImpl  社区》活动》活动签到表服务实现类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 社区》活动》活动签到表服务实现类
+ *
+ * @author txb
+ * @date 2021/8/24 10:21
+ */
+@Slf4j
+@Service
+public class ComActActRegistServiceImpl extends ServiceImpl<ComActActRegistDAO, ComActActRegistDO> implements ComActActRegistService
+{
+
+    @Override
+    public R updateEndTime()
+    {
+        //获取未签退的活动id
+        List<String> activityList=baseMapper.getNotTimeActivityList();
+        if(activityList!=null && activityList.size()>0)
+        {
+            for (String aId:activityList)
+            {
+                ComActActivityDO comActActivityDO=baseMapper.getActivityEndTime(aId);
+                if(comActActivityDO!=null)
+                {
+                    if(comActActivityDO.getEndAt().getTime()<new Date().getTime())
+                    {
+                        List<ComActActRegistVO> timeList=baseMapper.getNotTimeUser(aId);
+                        for (ComActActRegistVO user:timeList)
+                        {
+                            baseMapper.updateEndTime(user.getId()+"",comActActivityDO.getEndAt());
+                        }
+                    }
+                }
+                else
+                {
+                    List<ComActActRegistVO> timeList2=baseMapper.getNotTimeUser(aId);
+                    for(ComActActRegistVO user2:timeList2)
+                    {
+                        Calendar calendar = Calendar.getInstance();
+                        calendar.setTime(user2.getStartTime());
+                        calendar.add(Calendar.HOUR_OF_DAY, 3); // 加5小时
+                        baseMapper.updateEndTime(user2.getId()+"",calendar.getTime());
+                    }
+                }
+
+            }
+
+        }
+
+        return R.ok();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityCodeServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityCodeServiceImpl.java
new file mode 100644
index 0000000..0050729
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityCodeServiceImpl.java
@@ -0,0 +1,26 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.ComActActivityCode;
+import com.panzhihua.service_community.dao.ComActActivityCodeDao;
+import com.panzhihua.service_community.service.ComActActivityCodeService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * 签到二维码表(ComActActivityCode)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-10-15 15:23:10
+ */
+@Slf4j
+@Service
+public class ComActActivityCodeServiceImpl extends ServiceImpl<ComActActivityCodeDao, ComActActivityCode> implements ComActActivityCodeService {
+
+    @Override
+    public R pageList(CommonPage commonPage) {
+        return null;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityInviteServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityInviteServiceImpl.java
new file mode 100644
index 0000000..13cede6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityInviteServiceImpl.java
@@ -0,0 +1,95 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.panzhihua.common.constants.HttpStatus;
+import com.panzhihua.service_community.dao.ComActActSignDAO;
+import com.panzhihua.service_community.dao.ComActActivityDAO;
+import com.panzhihua.service_community.model.dos.ComActActSignDO;
+import com.panzhihua.service_community.model.dos.ComActActivityDO;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.community.ActivityInviteDTO;
+import com.panzhihua.common.model.dtos.community.PageActivityInviteDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.dao.ComActActivityInviteDAO;
+import com.panzhihua.service_community.entity.ComActActivityInvite;
+import com.panzhihua.service_community.service.ComActActivityInviteService;
+
+import javax.annotation.Resource;
+
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+
+/**
+ * 活动邀请表(ComActActivityInvite)表服务实现类
+ *
+ * @author makejava
+ * @since 2022-08-01 15:54:12
+ */
+@Service("comActActivityInviteService")
+public class ComActActivityInviteServiceImpl extends ServiceImpl<ComActActivityInviteDAO, ComActActivityInvite>
+    implements ComActActivityInviteService {
+
+    @Resource
+    private ComActActivityDAO comActActivityDAO;
+    @Resource
+    private ComActActSignDAO comActActSignDAO;
+
+    /**
+     * 活动邀请列表
+     * @param dto
+     * @return
+     */
+    @Override
+    public R pageActivityInviteList(PageActivityInviteDTO dto) {
+        return R.ok(this.baseMapper.pageActivityInviteList(new Page<>(dto.getPageNum(), dto.getPageSize()), dto));
+    }
+
+    /**
+     * 添加邀请人员
+     * @param list
+     * @return
+     */
+    @Override
+    public R activityInviteAdd(List<ActivityInviteDTO> list) {
+        ComActActivityDO activityDO = comActActivityDAO.selectById(list.get(0).getActivityId());
+        if (isNull(activityDO)) {
+            return R.fail(HttpStatus.NOT_FOUND, "活动不存在");
+        }
+        if (activityDO.getStatus().intValue() > 3) {
+            return R.fail(HttpStatus.NOT_ACCEPTABLE, "报名已结束,操作失败");
+        }
+        List<ComActActivityInvite> inviteEntityList = new ArrayList<>();
+        list.forEach(e -> {
+            ComActActivityInvite inviteEntity = new ComActActivityInvite();
+            BeanUtils.copyProperties(e, inviteEntity);
+            inviteEntityList.add(inviteEntity);
+        });
+        this.saveBatch(inviteEntityList);
+        return R.ok();
+    }
+
+    /**
+     * 删除邀请人员
+     * @param id
+     * @return
+     */
+    @Override
+    public R activityInviteDelete(Long id) {
+        ComActActivityInvite activityInvite = this.baseMapper.selectById(id);
+        ComActActSignDO signDO = comActActSignDAO.selectOne(new LambdaQueryWrapper<ComActActSignDO>()
+                .eq(ComActActSignDO::getActivityId, activityInvite.getActivityId())
+                .eq(ComActActSignDO::getUserId, activityInvite.getUserId())
+                .eq(ComActActSignDO::getStatus, 1));
+        if (nonNull(signDO)) {
+            return R.fail(HttpStatus.NOT_ACCEPTABLE, "已报名,不可删除");
+        }
+        return R.ok(this.removeById(id));
+    }
+}
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
new file mode 100644
index 0000000..0db992d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActActivityServiceImpl.java
@@ -0,0 +1,1653 @@
+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.ObjectUtils.isEmpty;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.text.DecimalFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import javax.annotation.Resource;
+
+import cn.binarywang.wx.miniapp.api.WxMaService;
+import cn.hutool.core.collection.CollUtil;
+import com.panzhihua.common.constants.HttpStatus;
+import com.panzhihua.common.model.dtos.PageBaseDTO;
+import com.panzhihua.common.model.dtos.community.ActivityInviteDTO;
+import com.panzhihua.common.model.vos.jinhui.JinhuiCoinGeneralTableVO;
+import com.panzhihua.common.model.vos.jinhui.JinhuiGoldCoinRecordVO;
+import com.panzhihua.common.service.jinhui.JinhuiCommunityService;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.dao.ComActNeighborCircleDAO;
+import com.panzhihua.service_community.dao.ComActNeighborCircleTopicWestMapper;
+import com.panzhihua.service_community.dao.ComPbMemberDAO;
+import com.panzhihua.service_community.entity.ComActActivityInvite;
+import com.panzhihua.service_community.entity.JinhuiCoinGeneralTable;
+import com.panzhihua.service_community.model.dos.ComActNeighborCircleTopicWestDO;
+import com.panzhihua.service_community.service.ComActActivityInviteService;
+import com.panzhihua.service_community.util.WxMaConfiguration;
+import org.apache.commons.lang3.time.DateUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+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.model.dtos.community.bigscreen.work.ScreenActActivityListDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.work.ScreenActActivityPeopleListDTO;
+import com.panzhihua.common.model.dtos.community.integral.admin.AddComActIntegralUserDTO;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.IndexDataVO;
+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.ComActActivityTypeVO;
+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.PartyActivityLine;
+import com.panzhihua.common.model.vos.community.PartyActivityStatics;
+import com.panzhihua.common.model.vos.community.PartyActivityTypeChart;
+import com.panzhihua.common.model.vos.community.SignactivityVO;
+import com.panzhihua.common.model.vos.community.screen.work.ActActivityListVO;
+import com.panzhihua.common.model.vos.user.SysTemplateConfigVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.Snowflake;
+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.ComActActivityCodeDao;
+import com.panzhihua.service_community.dao.ComActActivityDAO;
+import com.panzhihua.service_community.dao.ComActDAO;
+import com.panzhihua.service_community.dao.ComActSocialProjectDao;
+import com.panzhihua.service_community.dao.ComBpActivityDAO;
+import com.panzhihua.service_community.dao.ComPbCheckUnitDao;
+import com.panzhihua.service_community.dao.ComStreetDAO;
+import com.panzhihua.service_community.entity.ComActActivityCode;
+import com.panzhihua.service_community.entity.ComPbCheckUnit;
+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;
+import com.panzhihua.service_community.model.dos.ComActDO;
+import com.panzhihua.service_community.service.ComActActivityCodeService;
+import com.panzhihua.service_community.service.ComActActivityService;
+import com.panzhihua.service_community.service.ComActIntegralUserTradeService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 社区活动
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 14:35
+ **/
+@Slf4j
+@Service
+public class ComActActivityServiceImpl extends ServiceImpl<ComActActivityDAO, ComActActivityDO>
+    implements ComActActivityService {
+    private static final String DELIMITER = ":";
+    private static final String ACTIVITY_SIGN_IN = "ACTIVITY:SIGN:IN";
+    @Resource
+    private ComActActivityDAO comActActivityDAO;
+    @Resource
+    private ComActActSignDAO comActActSignDAO;
+    @Resource
+    private UserService userService;
+    @Resource
+    private ComActActEvaluateDAO comActActEvaluateDAO;
+    @Resource
+    private ComActActRegistDAO comActActRegistDAO;
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+    @Resource
+    private ComActActPictureDAO comActActPictureDAO;
+    @Resource
+    private ComActActivityCodeDao comActActivityCodeDao;
+    @Resource
+    private ComBpActivityDAO comBpActivityDAO;
+    @Resource
+    private ComActIntegralUserTradeService comActIntegralUserTradeService;
+    @Resource
+    private ComActActivityCodeService comActActivityCodeService;
+    @Resource
+    private ComActDAO comActDAO;
+    @Resource
+    private ComPbCheckUnitDao comPbCheckUnitDao;
+    @Resource
+    private ComActSocialProjectDao comActSocialProjectDao;
+    @Resource
+    private ComStreetDAO comStreetDAO;
+    @Resource
+    private ComPbMemberDAO pbMemberDAO;
+    @Resource
+    private ComActNeighborCircleTopicWestMapper comActNeighborCircleTopicWestMapper;
+    @Resource
+    private ComActActivityInviteService comActActivityInviteService;
+    @Resource
+    private ComActNeighborCircleDAO comActNeighborCircleDAO;
+    @Resource
+    private WxMaConfiguration wxMaConfiguration;
+    @Resource
+    private JinhuiCommunityService jinhuiCommunityService;
+
+    /**
+     * 新增社区活动
+     * 
+     * @param comActActivityVO
+     *            新增信息
+     * @return 新增结果
+     */
+    @Override
+    public R addActivity(ComActActivityVO comActActivityVO) {
+        ComActActivityDO comActActivityDO = new ComActActivityDO();
+        BeanUtils.copyProperties(comActActivityVO, comActActivityDO);
+        Integer status = comActActivityVO.getStatus();
+        Date now = new Date();
+        if (status.intValue() != 1) {
+            comActActivityDO.setPublishAt(now);// 发布时间
+        }
+        // 如果发布时间大于现在时间状态改为进行中
+        /*if(now.getTime()<comActActivityVO.getBeginAt().getTime()){
+            comActActivityDO.setStatus(3);
+        }*/
+        if (status.intValue() == 2) {// 点击‘保存并发布’ 按钮
+            // 报名结束时间大于当前时间则设置为“进行中”
+            if (comActActivityVO.getSignUpEnd() != null && now.getTime() < comActActivityVO.getSignUpEnd().getTime()) {
+                comActActivityDO.setStatus(3);
+            }
+        }
+        if(comActActivityVO.getType()==4){
+            comActActivityDO.setIsProject(1);
+        }
+        if(comActActivityVO.getType()==5){
+            //TODO 查询然后呢? 值都没给...
+            comPbCheckUnitDao.selectOne(new QueryWrapper<ComPbCheckUnit>().lambda()
+                    .eq(ComPbCheckUnit::getAdminPhone,comActActivityVO.getPhone()).last("limit 1"));
+        }
+
+        boolean save = this.save(comActActivityDO);
+        if (!save) {
+            return R.fail();
+        }
+        ComActActivityDO one = this.getOne(new QueryWrapper<ComActActivityDO>().lambda()
+            .eq(ComActActivityDO::getActivityName, comActActivityDO.getActivityName())
+            .orderByDesc(ComActActivityDO::getCreateAt).last(" limit 1 "));
+        Long activityId = one.getId();
+
+        List<ActivityInviteDTO> inviteList = comActActivityVO.getActivityInviteList();
+        if (!isEmpty(inviteList)) {
+            List<ComActActivityInvite> inviteEntityList = new ArrayList<>();
+            inviteList.forEach(e -> {
+                ComActActivityInvite inviteEntity = new ComActActivityInvite();
+                BeanUtils.copyProperties(e, inviteEntity);
+                inviteEntity.setActivityId(activityId);
+                inviteEntity.setCreatedBy(comActActivityVO.getUserId());
+                inviteEntityList.add(inviteEntity);
+            });
+            comActActivityInviteService.saveBatch(inviteEntityList);
+        }
+
+        ComActNeighborCircleTopicWestDO topicWestDO = new ComActNeighborCircleTopicWestDO();
+        topicWestDO.setCommunityId(comActActivityDO.getCommunityId());
+        topicWestDO.setBelongType(2);
+        topicWestDO.setRefId(activityId);
+        topicWestDO.setName(comActActivityDO.getActivityName());
+        topicWestDO.setCreateAt(new Date());
+        topicWestDO.setCount(0);
+        topicWestDO.setHotNum(0L);
+        topicWestDO.setStatus(ComActNeighborCircleTopicWestDO.status.yes);
+        comActNeighborCircleTopicWestMapper.insert(topicWestDO);
+
+        ComActActivityDO activityUpdate = new ComActActivityDO();
+        BeanUtils.copyProperties(comActActivityDO, activityUpdate);
+        activityUpdate.setTopicId(topicWestDO.getId());
+        this.baseMapper.updateById(activityUpdate);
+
+        //保存上传照片
+        ComActActPictureDO comActActPictureDO = new ComActActPictureDO();
+        comActActPictureDO.setActivityId(activityId);
+        comActActPictureDO.setUserId(comActActivityVO.getUserId());
+        comActActPictureDO.setUploadPicture(comActActivityVO.getCover());
+        comActActPictureDO.setSysFlag(0);
+        comActActPictureDAO.insert(comActActPictureDO);
+
+        ComActActivityCode comActActivityCode = new ComActActivityCode();
+        comActActivityCode.setActivityId(comActActivityDO.getId().longValue());
+        comActActivityCode.setCreateTime(new Date());
+        comActActivityCode.setType(comActActivityVO.getType());
+        comActActivityCode.setStatus(1);
+        comActActivityCodeService.save(comActActivityCode);
+        return R.ok(activityId);
+    }
+
+    /**
+     * 编辑社区活动
+     *
+     * @param comActActivityVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @Override
+    public R putActivity(ComActActivityVO comActActivityVO) {
+        ComActActivityDO comActActivityDO = this.comActActivityDAO.selectById(comActActivityVO.getId());
+        if (comActActivityDO == null) {
+            return R.fail("未找到社区活动");
+        }
+
+        if (!comActActivityDO.getActivityAddr().equals(comActActivityVO.getActivityAddr())
+            || !comActActivityDO.getBeginAt().equals(comActActivityVO.getBeginAt())) {
+            // 修改活动开始时间与活动地点需要推送订阅消息给用户
+            ActivitySignVO activitySignVO = new ActivitySignVO();
+            activitySignVO.setActivityId(comActActivityVO.getId());
+            List<ActivitySignVO> activitySignVOS = comActActSignDAO.listActivitySigns(activitySignVO);
+            if (!activitySignVOS.isEmpty()) {
+                try {
+                    WxMaService maService = wxMaConfiguration.getMaService("wx118de8a734d269f0");
+                    String accessToken = maService.getAccessToken();
+                    ComActDO comActDO=comActDAO.selectById(comActActivityDO.getCommunityId());
+                    R<SysTemplateConfigVO> r=userService.selectTemplate(comActDO.getAreaCode(),1);
+                    activitySignVOS.forEach(activitySignVO1 -> {
+                        // 变更社区活动推送订阅消息给用户
+                        WxUtil.sendSubscribeHDBG(activitySignVO1.getOpenid(), accessToken,
+                            comActActivityVO.getActivityName(),
+                            com.panzhihua.common.utlis.DateUtils.format(
+                                comActActivityDO.getBeginAt(), com.panzhihua.common.utlis.DateUtils.ymdhms_format),
+                            comActActivityDO.getActivityAddr(),
+                            com.panzhihua.common.utlis.DateUtils.format(comActActivityVO.getBeginAt(),
+                                com.panzhihua.common.utlis.DateUtils.ymdhms_format),
+                            comActActivityVO.getActivityAddr(),r.getData().getTemplateId());
+                    });
+                } catch (Exception e) {
+                    log.error("消息推送失败,失败原因:" + e.getMessage());
+                }
+            }
+        }
+        BeanUtils.copyProperties(comActActivityVO, comActActivityDO);
+
+        // 结束时间大于当前时间则设置为“进行中”
+        Date now = new Date();
+        if (comActActivityVO.getSignUpEnd() != null && now.getTime() < comActActivityVO.getSignUpEnd().getTime()
+        && now.getTime() > comActActivityVO.getSignUpBegin().getTime()) {
+            comActActivityDO.setStatus(3);
+            comActActivityDO.setPublishAt(new Date());
+        }
+        boolean b = this.updateById(comActActivityDO);
+        if (b) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 分页查询社区活动
+     *
+     * @param comActActivityVO
+     *            查询参数
+     * @return 分页集合
+     */
+    @Override
+    public R pageActivity(ComActActivityVO comActActivityVO) {
+        Page page = new Page<>();
+        Long pageNum = comActActivityVO.getPageNum();
+        Long pageSize = comActActivityVO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        Long communityId = comActActivityVO.getCommunityId();
+        if (null != communityId){
+            List<Long> communityIds = comActDAO.selectIds(communityId);
+            if (CollUtil.isEmpty(communityIds)) {
+                communityIds = new ArrayList<>();
+                communityIds.add(communityId);
+            }
+            comActActivityVO.setCommunityIds(communityIds);
+        }
+        Integer type = comActActivityVO.getType();
+        IPage<ComActActivityVO> iPage = null;
+        if (nonNull(type) && type.equals(4)) {
+            if (nonNull(comActActivityVO.getCommunityId())) {
+                    ComActDO comActDO = comActDAO.selectById(comActActivityVO.getCommunityId());
+                    if (nonNull(comActDO)) {
+                        comActActivityVO.setStreetId(comActDO.getStreetId());
+                    }
+            }
+            iPage = comActActivityDAO.pageProjectActivity(page, comActActivityVO);
+        } else {
+            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);
+//                }
+//            });
+//        }
+        return R.ok(iPage);
+    }
+
+    /**
+     * 发布活动
+     *
+     * @param comActActivityVO
+     *            主键id 发布时间
+     * @return 发布结果
+     */
+    @Override
+    public R releaseActivity(ComActActivityVO comActActivityVO) {
+        ComActActivityDO comActActivityDO = comActActivityDAO.selectById(comActActivityVO.getId());
+        comActActivityDO.setPublishAt(comActActivityVO.getPublishAt());
+        comActActivityDO.setStatus(3);
+        if (comActActivityVO.getPublishAt().after(comActActivityDO.getSignUpEnd())) {
+            comActActivityVO.setStatus(4);
+        }
+        int update = comActActivityDAO.updateById(comActActivityDO);
+        if (update > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 取消活动
+     *
+     * @param comActActivityVO
+     *            取消原因
+     * @return 取消结果
+     */
+    @Override
+    public R cancelActivity(ComActActivityVO comActActivityVO) {
+        ComActActivityDO comActActivityDO = comActActivityDAO.selectById(comActActivityVO.getId());
+        comActActivityDO.setStatus(comActActivityVO.getStatus());
+        comActActivityDO.setCancelReason(comActActivityVO.getCancelReason());
+        int update = comActActivityDAO.updateById(comActActivityDO);
+        if (update > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 活动详情
+     *
+     * @param id
+     *            活动id
+     * @param userId
+     * @return 详情
+     */
+    @Override
+    public ComActActivityVO inforActivity(Long id, Long userId) {
+        ComActActivityVO comActActivityVO = comActActivityDAO.inforActivity(id);
+        if (!ObjectUtils.isEmpty(comActActivityVO)) {
+            if (userId != null) {
+                LambdaQueryWrapper<ComActActSignDO> actSignQuery = new LambdaQueryWrapper<>();
+                actSignQuery.eq(ComActActSignDO::getActivityId, id);
+                actSignQuery.eq(ComActActSignDO::getUserId, userId);
+                actSignQuery.eq(ComActActSignDO::getStatus, 1);
+                ComActActSignDO comActActSignDO = comActActSignDAO.selectOne(actSignQuery);
+                if (!ObjectUtils.isEmpty(comActActSignDO)) {
+                    comActActivityVO.setIsSign(1);
+                    comActActivityVO.setSignIdentity(comActActSignDO.getSignIdentity());
+                }
+                List<ComActActRegistDO> regList = comActActRegistDAO.selectList(new QueryWrapper<ComActActRegistDO>().lambda()
+                        .eq(ComActActRegistDO::getUserId, userId).eq(ComActActRegistDO::getActivityId, id));
+                if (!regList.isEmpty()) {
+                    List<ComActActRegistDO> collect = regList.stream().sorted(Comparator.comparing(ComActActRegistDO::getId).reversed()).collect(Collectors.toList());
+                    comActActivityVO.setTimes(collect.get(0).getTimes());
+                    ComActActRegistDO comActActRegistDO=collect.get(0);
+                    if(comActActRegistDO.getEndTime()==null){
+                        comActActivityVO.setSignType(2);
+                    }
+                    else {
+                        comActActivityVO.setSignType(1);
+                    }
+                }
+                else {
+                    comActActivityVO.setSignType(1);
+                }
+            }
+            comActActivityVO.setCodeType(1);
+            if (comActActivityVO.getRelationId() != null) {
+                comActActivityVO.setListDetail(comActNeighborCircleDAO.neighborDetailByApp(comActActivityVO.getRelationId()));
+            }
+        }
+        return comActActivityVO;
+    }
+
+    /**
+     * 活动报名名单
+     *
+     * @param activitySignVO
+     *            查询参数
+     * @return 报名人员集合
+     */
+    @Override
+    public R listActivitySign(ActivitySignVO activitySignVO) {
+//        ComActActivityDO comActActivityDO=comActActivityDAO.selectById(activitySignVO.getActivityId());
+//        if(comActActivityDO!=null){
+//            if(comActActivityDO.getType()==3||comActActivityDO.getType()==5){
+//                IPage<ActivitySignVO> activitySignVOS = comActActSignDAO
+//                        .listActivitySignParty(new Page(activitySignVO.getPageNum(), activitySignVO.getPageSize()), activitySignVO);
+//                return R.ok(activitySignVOS);
+//            }
+//        }
+        IPage<ActivitySignVO> activitySignVOS = comActActSignDAO
+            .listActivitySign(new Page(activitySignVO.getPageNum(), activitySignVO.getPageSize()), activitySignVO);
+        return R.ok(activitySignVOS);
+    }
+
+    @Override
+    public R listActivitySigns(ActivitySignVO activitySignVO) {
+        List<ActivitySignVO> activitySignVOS = comActActSignDAO.listActivitySigns(activitySignVO);
+        return R.ok(activitySignVOS);
+    }
+
+    @Override
+    public R getSignLists(ActivitySignVO activitySignVO) {
+        return R.ok(comActActSignDAO.getSignLists(activitySignVO));
+    }
+
+    @Override
+    public R pageActivityEvaluates(ComActActEvaluateVO comActActEvaluateVO) {
+        IPage<ComActActEvaluateVO> comActActEvaluateVOIPage = comActActEvaluateDAO
+                .pageActivityEvaluates(new Page(comActActEvaluateVO.getPageNum(), comActActEvaluateVO.getPageSize()), comActActEvaluateVO);
+        return R.ok(comActActEvaluateVOIPage);
+    }
+
+    @Override
+    public R getEvaluateLists(ComActActEvaluateVO comActActEvaluateVO) {
+        return R.ok(comActActEvaluateDAO.getEvaluateLists(comActActEvaluateVO));
+    }
+
+    @Override
+    public R pageActivityRegists(ComActActRegistVO comActActRegistVO) {
+        IPage<ComActActRegistVO> comActActRegistVOIPage = comActActRegistDAO.pageActivityRegists(new Page(comActActRegistVO.getPageNum(), comActActRegistVO.getPageSize()), comActActRegistVO);
+        return R.ok(comActActRegistVOIPage);
+    }
+
+    @Override
+    public R getRegistLists(ComActActRegistVO comActActRegistVO) {
+        return R.ok(comActActRegistDAO.getRegistLists(comActActRegistVO));
+    }
+
+    @Override
+    public R getNoRegistLists(ComActActRegistVO comActActRegistVO) {
+        return R.ok(comActActRegistDAO.getNoRegistLists(comActActRegistVO));
+    }
+
+    @Override
+    public R activityStatistics(Long activityId) {
+        ComActActivityStatisticsVO comActActivityStatisticsVO = comActActivityDAO.activityStatistics(activityId);
+        if (comActActivityStatisticsVO != null) {
+            if (comActActivityStatisticsVO.getSignTotal().equals(0)){
+                comActActivityStatisticsVO.setSignTotalStr("不限");
+                comActActivityStatisticsVO.setNoSignTotalStr("");
+                comActActivityStatisticsVO.setSignPersent("");
+            }else {
+                comActActivityStatisticsVO.setSignTotalStr(String.valueOf(comActActivityStatisticsVO.getSignTotal()));
+                comActActivityStatisticsVO.setNoSignTotalStr(String.valueOf(Integer.valueOf(comActActivityStatisticsVO.getSignTotalStr()) - comActActivityStatisticsVO.getReallySignTotal()));
+                comActActivityStatisticsVO.setSignPersent(getPersent(comActActivityStatisticsVO.getReallySignTotal(),comActActivityStatisticsVO.getSignTotal()));
+            }
+            comActActivityStatisticsVO.setRegistPersent(getPersent(comActActivityStatisticsVO.getReallyRegistTotal(),comActActivityStatisticsVO.getRegistTotal()));
+            comActActivityStatisticsVO.setEvaluatePersent(getPersent(comActActivityStatisticsVO.getReallyEvaluateTotal(),comActActivityStatisticsVO.getEvaluateTotal()));
+        }
+        return R.ok(comActActivityStatisticsVO);
+    }
+
+    @Override
+    public R getPictureList(Long userId) {
+        List<ComActActPictureVO> comActActPictureVOS = new ArrayList<>();
+        List<ComActActPictureDO> comActActPictureDOS = comActActPictureDAO.selectList(new QueryWrapper<ComActActPictureDO>().lambda().
+                eq(ComActActPictureDO::getUserId, userId));
+        if (comActActPictureDOS != null && comActActPictureDOS.size() != 0) {
+            comActActPictureDOS.forEach(comActActPictureDO -> {
+                ComActActPictureVO comActActPictureVO = new ComActActPictureVO();
+                BeanUtils.copyProperties(comActActPictureDO, comActActPictureVO);
+                comActActPictureVOS.add(comActActPictureVO);
+            });
+        }
+        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);
+    }
+
+    /**
+     * 分页展示我的所有活动 时间倒序排列
+     *
+     * @param comActActivityVO
+     *            分页参数
+     * @return 分页集合
+     */
+    @Override
+    public R pageMyActivity(ComActActivityVO comActActivityVO) {
+        Page page = new Page<>();
+        Long pageNum = comActActivityVO.getPageNum();
+        Long pageSize = comActActivityVO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<ComActActivityVO> iPage = comActActivityDAO.pageMyActivity(page, comActActivityVO);
+        return R.ok(iPage);
+    }
+
+    /**
+     * 报名/取消报名社区活动
+     *
+     * @param signactivityVO
+     *            报名参数
+     * @return 报名 取消报名 结果
+     */
+    @Override
+    public R signActivity(SignactivityVO signactivityVO) {
+        Long activityId = signactivityVO.getActivityId();
+        Integer type = signactivityVO.getType();
+        Long userId = signactivityVO.getUserId();
+        Integer isVolunteer = 0;
+        // 查询社区活动
+        ComActActivityDO actActivityDO = this.baseMapper.selectById(activityId);
+        if (isNull(actActivityDO)) {
+            return R.fail("活动不存在");
+        }
+        if(actActivityDO.getSignUpBegin().after(new Date())){
+            return R.fail("未到报名时间");
+        }
+        int num = 0;
+        ComActActSignDO comActActSignDO = comActActSignDAO.selectOne(new QueryWrapper<ComActActSignDO>()
+                .lambda().eq(ComActActSignDO::getActivityId, activityId).eq(ComActActSignDO::getUserId, userId));
+        Integer signIdentity = signactivityVO.getSignIdentity();
+        if (1 == type) {
+            if (nonNull(comActActSignDO) && comActActSignDO.getStatus().equals(1)) {
+                return R.fail("已经报名过了,请勿重复提交");
+            }
+            Integer activityType = actActivityDO.getType();
+            Boolean isInvite = false;
+            if (activityType == 1) {
+                if (signIdentity == 1) {
+                    //以居民身份参与活动
+                    Integer residentMax = actActivityDO.getParticipantMax();
+                    if (residentMax == null) {
+                        return R.fail("活动暂未对居民开放");
+                    }
+                    // 查询当前活动下参与居民
+                    Integer residentCount = comActActSignDAO.selectCount(new QueryWrapper<ComActActSignDO>().lambda()
+                            .eq(ComActActSignDO::getActivityId, activityId).eq(ComActActSignDO::getSignIdentity, 1).eq(ComActActSignDO::getStatus, 1));
+                    if (residentMax != -1 && residentMax <= residentCount) {
+                        return R.fail("报名人数已满");
+                    }
+                } else if (signIdentity == 2) {
+                    //以党员身份参与活动
+                    Integer partyMemberMax = actActivityDO.getPartyMemberMax();
+                    if (partyMemberMax == null) {
+                        return R.fail("活动暂未对党员开放");
+                    }
+                    ComActActivityInvite activityInvite = comActActivityInviteService.getBaseMapper().selectOne(new LambdaQueryWrapper<ComActActivityInvite>()
+                            .eq(ComActActivityInvite::getActivityId, activityId).eq(ComActActivityInvite::getUserId, userId));
+                    if (isNull(activityInvite)) {
+                        int count = pbMemberDAO.checkIsPbMember(userId);
+                        if (count < 1) {
+                            return R.fail(HttpStatus.NOT_ACCEPTABLE, "您还不是党员");
+                        }
+                        // 查询当前活动下参与志愿者
+                        Integer partyMemberCount = comActActSignDAO.selectCount(new QueryWrapper<ComActActSignDO>().lambda()
+                                .eq(ComActActSignDO::getActivityId, activityId).eq(ComActActSignDO::getSignIdentity, 2)
+                                .eq(ComActActSignDO::getStatus, 1).eq(ComActActSignDO::getIsInvite, false));
+                        if (partyMemberMax != -1 && partyMemberMax <= partyMemberCount) {
+                            return R.fail("报名人数已满");
+                        }
+                    } else {
+                        isInvite = true;
+                    }
+                } else {
+                    //以志愿者身份参与活动
+                    Integer volunteerMax = actActivityDO.getVolunteerMax();
+                    if (volunteerMax == null) {
+                        return R.fail("活动暂未对志愿者开放");
+                    }
+                    int count = pbMemberDAO.checkIsVolunteer(userId);
+                    if (count < 1) {
+                        return R.fail(HttpStatus.NOT_ACCEPTABLE, "您还不是志愿者");
+                    }
+                    // 查询当前活动下参与志愿者
+                    Integer volunteerCount = comActActSignDAO.selectCount(new QueryWrapper<ComActActSignDO>().lambda()
+                            .eq(ComActActSignDO::getActivityId, activityId).eq(ComActActSignDO::getSignIdentity, 3).eq(ComActActSignDO::getStatus, 1));
+                    if (volunteerMax != -1 && volunteerMax <= volunteerCount) {
+                        return R.fail("报名人数已满");
+                    }
+                }
+            }
+            if (nonNull(comActActSignDO)) {
+                comActActSignDO.setStatus(1);
+                comActActSignDO.setCreateAt(new Date());
+                comActActSignDO.setReason(null);
+                comActActSignDO.setSignIdentity(signIdentity);
+                comActActSignDO.setTimes(comActActSignDO.getTimes()+1);
+                comActActSignDO.setIsInvite(isInvite);
+                comActActSignDO.setCheckUnitId(signactivityVO.getCheckUnitId());
+                num = comActActSignDAO.updateById(comActActSignDO);
+            } else {
+                comActActSignDO = new ComActActSignDO();
+                comActActSignDO.setActivityId(activityId);
+                comActActSignDO.setUserId(userId);
+                comActActSignDO.setSignIdentity(signIdentity);
+                comActActSignDO.setTimes(1);
+                comActActSignDO.setIsInvite(isInvite);
+                comActActSignDO.setCheckUnitId(signactivityVO.getCheckUnitId());
+                num = comActActSignDAO.insert(comActActSignDO);
+            }
+        } else {
+            Integer regTimes = comActActRegistDAO.selectCount(new QueryWrapper<ComActActRegistDO>().lambda()
+                    .eq(ComActActRegistDO::getActivityId, activityId).eq(ComActActRegistDO::getUserId, userId).eq(ComActActRegistDO::getType, 1));
+            Integer canCancel = actActivityDO.getCanCancel();
+            if (nonNull(canCancel) && canCancel.equals(2)) {
+                return R.fail("该活动暂不支持取消");
+            }
+            if (regTimes > 0) {
+                return R.fail("您已参与活动,不可取消");
+            }
+            if (isNull(signactivityVO.getReason())) {
+                return R.fail("缺少取消原因");
+            }
+            if (isNull(comActActSignDO)) {
+                return R.fail("未报名");
+            }
+            comActActSignDO.setStatus(0);
+            comActActSignDO.setReason(signactivityVO.getReason());
+            num = comActActSignDAO.updateById(comActActSignDO);
+            //计算用户积分
+            if (num > 0) {
+                AddComActIntegralUserDTO addComActIntegralUserDTO = new AddComActIntegralUserDTO();
+                addComActIntegralUserDTO.setUserId(userId);
+                addComActIntegralUserDTO.setIntegralType(8);
+                addComActIntegralUserDTO.setIntegral(actActivityDO.getCancelDeduct());
+                addComActIntegralUserDTO.setSignIdentity(comActActSignDO.getSignIdentity());
+                addComActIntegralUserDTO.setCommunityId(actActivityDO.getCommunityId());
+                addComActIntegralUserDTO.setServiceId(activityId);
+                addComActIntegralUserDTO.setRemark(actActivityDO.getType().intValue() == 5 ? "单位党员活动-取消报名" : "社区活动-取消报名");
+                comActIntegralUserTradeService.addIntegralTradeAdmin(addComActIntegralUserDTO);
+            }
+        }
+        if (num > 0) {
+            return R.ok(isVolunteer);
+        }
+        return R.fail();
+    }
+
+    /**
+     * 用户参加的所有社区活动
+     *
+     * @param userId
+     *            用户id
+     * @param status
+     * @return 活动列表
+     */
+    @Override
+    public R listActivity(Long userId, Integer status,Integer type) {
+        List<ActivitySignVO> activitySignVOList = comActActSignDAO.selectList(userId);
+        if (ObjectUtils.isEmpty(activitySignVOList)) {
+            return R.ok();
+        }
+        List<Long> longs = activitySignVOList.stream().map(activitySignVO -> activitySignVO.getActivityId())
+            .collect(Collectors.toList());
+        List<ComActActivityDO> comActActivityDOS = comActActivityDAO.selectBatchIds(longs);
+        List<ComActActivityVO> comActActivityVOS = new ArrayList<>();
+        if (nonNull(status)) {
+            if(status.equals(4)){
+                comActActivityDOS = comActActivityDOS.stream()
+                        .filter(activityDO -> activityDO.getStatus().equals(3)||activityDO.getStatus().equals(4)).collect(Collectors.toList());
+            }else{
+                comActActivityDOS = comActActivityDOS.stream()
+                        .filter(activityDO -> activityDO.getStatus().equals(status)).collect(Collectors.toList());
+            }
+        }
+        if(!isNull(type)){
+            comActActivityDOS=comActActivityDOS.stream().filter(comActActivityDO -> comActActivityDO.getType().equals(type)).collect(Collectors.toList());
+        }
+        if (comActActivityDOS != null  ) {
+            comActActivityDOS.forEach(comActActivityDO -> {
+                ComActActivityVO comActActivityVO = new ComActActivityVO();
+                BeanUtils.copyProperties(comActActivityDO, comActActivityVO);
+                List<ActivitySignVO> collect = activitySignVOList.stream()
+                        .filter(activitySignVO -> activitySignVO.getActivityId().equals(comActActivityVO.getId()))
+                        .collect(Collectors.toList());
+                comActActivityVO.setSignCount(collect.size());
+                comActActivityVO.setIsComment(0);
+                comActActivityVO.setIsRegist(0);
+                ActivitySignVO activitySignVO = collect.get(0);
+                Integer activityStatus = comActActivityVO.getStatus();
+                if (activityStatus !=null && activityStatus == 3) {
+                    comActActivityVO.setStatus(4);
+                }
+                Date createAt = null;
+                try {
+                    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+                    createAt = simpleDateFormat.parse(activitySignVO.getCreateAt());
+                } catch (ParseException e) {
+                    log.error("时间转换异常【{}】", e.getMessage());
+                }
+                comActActivityVO.setSingDate(createAt);
+                Integer totalAward = comActActRegistDAO.selectTotalAwardWithRegist(activitySignVO.getActivityId(), userId);
+                comActActivityVO.setAward(totalAward);
+                comActActivityVO.setActivitySignVOList(collect);
+                comActActivityVOS.add(comActActivityVO);
+            });
+        }
+        return R.ok(comActActivityVOS);
+    }
+
+    /**
+     * 查询志愿者参与的所有已经完成的活动
+     *
+     * @param phone
+     *            用户手机号
+     * @return 所有活动集合
+     */
+    @Override
+    public List<ComActActivityVO> listActivityByPhone(String phone) {
+        List<ComActActivityVO> comActActivityVOS = comActActivityDAO.listActivityByPhone(phone);
+        return comActActivityVOS;
+    }
+
+    /**
+     * 定时任务查询所有要取消的社区活动
+     *
+     * @return 社区活动集合
+     */
+    @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);
+        return R.ok();
+    }
+
+    /**
+     * 定时任务刷新社区活动的各个状态 除取消外
+     *
+     * @return 更新结果
+     */
+    @Override
+    public R timedTaskActActivityAll() {
+        // 修改发布状态 变为未开始
+        int num = comActActivityDAO.updateStatusToNotBegin();
+        log.info("定时任务--修改社区活动发布状态活动数量【{}】", num);
+        // 修改报名状态 变为报名中
+//        int num1 = comActActivityDAO.updateStatusToBeginSign();
+//        log.info("定时任务--修改社区活动报名状态活动数量【{}】", num1);
+        //报名结束 通知参与用户
+        List<Long> activityEndIds = comActActivityDAO.selectBeginIds();
+        WxMaService maService = wxMaConfiguration.getMaService("wx118de8a734d269f0");
+        if(!CollectionUtils.isEmpty(activityEndIds)){
+            activityEndIds.forEach(activityId->{
+                List<String> openIds=comActActivityDAO.selectOpenIdByActivityId(activityId);
+                if(!CollectionUtils.isEmpty(openIds)){
+                    openIds.forEach(op->{
+                        WxXCXTempSend wxXCXTempSend=new WxXCXTempSend();
+                        try {
+                            WxUtil.sendLongTimeTemplate(op,maService.getAccessToken(),"活动开始提醒","您参加的活动已开始","packageC/pages/activity/communityActivityDetails/communityActivityDetails?id="+activityId);
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                    });
+                }
+            });
+        }
+        //报名时间结束 活动变更 进行中
+        int num3 = comActActivityDAO.updateStatusToBeginAfterSingEnd();
+        log.info("定时任务--报名结束修改社区活动进行状态活动数量【{}】", num3);
+        // 修改进行状态 变为进行中或者已结束
+        List<Long> ids = comActActivityDAO.getActivityEndIds();
+        if(!CollectionUtils.isEmpty(ids)){
+            int num2 = comActActivityDAO.updateStatusToBeginActiveOrEnd();
+            log.info("定时任务--修改社区活动进行状态活动数量【{}】", num2);
+            //通知用户 活动结束
+            ids.forEach(id ->{
+                List<String> openIds=comActActivityDAO.selectOpenIdByActivityId(id);
+                if(!CollectionUtils.isEmpty(openIds)){
+                    openIds.forEach(op->{
+                        WxXCXTempSend wxXCXTempSend=new WxXCXTempSend();
+                        try {
+                            WxUtil.sendLongTimeTemplate(op,maService.getAccessToken(),"活动结束提醒","您参加的活动已结束","packageC/pages/activity/communityActivityDetails/communityActivityDetails?id="+id);
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+                    });
+                }
+            });
+        }
+
+
+        return R.ok(activityEndIds);
+    }
+
+    /**
+     * 社区后台分页查询社区活动
+     *
+     * @param comActActivityVO
+     *            查询参数
+     * @return 返回结果
+     */
+    @Override
+    public R pageActivityCommunityBack(ComActActivityVO comActActivityVO) {
+        Page page = new Page<>();
+        Long pageNum = comActActivityVO.getPageNum();
+        Long pageSize = comActActivityVO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        Long communityId = comActActivityVO.getCommunityId();
+        if (null != communityId){
+//            List<Long> communityIds = comActDAO.selectIds(communityId);
+//            if (CollUtil.isEmpty(communityIds)) {
+//                communityIds = new ArrayList<>();
+//                communityIds.add(communityId);
+//            }
+            comActActivityVO.setCommunityIds(Arrays.asList( comActActivityVO.getCommunityId() ));
+        }
+        IPage<ComActActivityVO> iPage = comActActivityDAO.pageActivityCommunityBack(page, comActActivityVO);
+        iPage.getRecords().forEach(vo ->{
+            List<ComActActEvaluateDO> comActActEvaluateDOList = comActActEvaluateDAO
+                    .selectList(new QueryWrapper<ComActActEvaluateDO>().lambda().eq(ComActActEvaluateDO::getActivityId, vo.getId()));
+            if (comActActEvaluateDOList != null && comActActEvaluateDOList.size() > 0) {
+                BigDecimal starNum = BigDecimal.ZERO;
+                //总星级
+                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);
+    }
+
+    /**
+     * 首页图表数据汇总
+     *
+     * @param communityId
+     *            社区id
+     * @return 图表数据 IndexDataVO
+     */
+    @Override
+    public R indexDataCommunityBackstageEchart(Long communityId) {
+        IndexDataVO indexDataVO = new IndexDataVO();
+        CommunityGovernanceTrendsVO communityGovernanceTrendsVO = new CommunityGovernanceTrendsVO();
+        List<CommunityActivitiesVO> communityActivitiesVOS = new ArrayList<>();
+        List<Date> dates = this.getServenDays();
+        String s = comActActivityDAO.selectCommunityGovernanceTrendsVO(communityId);
+        List<String> y = Arrays.asList(s.split(","));
+        communityGovernanceTrendsVO.setY(y);
+        communityGovernanceTrendsVO.setX(Arrays.asList("一起议", "微心愿", "随手拍", "社区活动"));
+        dates.forEach(date -> {
+            CommunityActivitiesVO communityActivitiesVO =
+                comActActivityDAO.selectCommunityActivitiesVO(communityId, date);
+            communityActivitiesVO.setDate(date);
+            communityActivitiesVOS.add(communityActivitiesVO);
+        });
+
+        indexDataVO.setCommunityGovernanceTrendsVO(communityGovernanceTrendsVO);
+        indexDataVO.setCommunityActivitiesVOS(communityActivitiesVOS);
+        return R.ok(indexDataVO);
+    }
+
+    @Override
+    public R getScreenActActivityList(ScreenActActivityListDTO actActivityListDTO) {
+        IPage<ActActivityListVO> actActivityListVOIPage = comActActivityDAO.getScreenActActivityList(
+            new Page(actActivityListDTO.getPageNum(), actActivityListDTO.getPageSize()), actActivityListDTO);
+        if (!actActivityListVOIPage.getRecords().isEmpty()) {
+            actActivityListVOIPage.getRecords().forEach(actActivityListVO -> {
+                ActActivityListVO activityListVO =
+                    comActActivityDAO.getScreenActActivityPeopleCount(actActivityListVO.getId());
+                if (activityListVO != null) {
+                    actActivityListVO.setParticipantCount(activityListVO.getParticipantCount());
+                    actActivityListVO.setVolunteerCount(activityListVO.getVolunteerCount());
+                }
+            });
+        }
+        return R.ok(actActivityListVOIPage);
+    }
+
+    @Override
+    public R getActActivityPeopleList(ScreenActActivityPeopleListDTO activityPeopleListDTO) {
+        return R.ok(comActActSignDAO.getActActivityPeopleList(
+            new Page(activityPeopleListDTO.getPageNum(), activityPeopleListDTO.getPageSize()), activityPeopleListDTO));
+    }
+
+    /**
+     * 获取最近七天的时间
+     * 
+     * @return
+     */
+    private List<Date> getServenDays() {
+        List<Date> dates = new ArrayList<>();
+        Date date = new Date();
+        for (int i = 6; i >= 0; i--) {
+            Date date1 = DateUtils.addDays(date, -i);
+            dates.add(date1);
+        }
+        return dates;
+    }
+
+    /**
+     * 定时任务检测即将开始的社区活动,并使用订阅消息通知用户
+     */
+    @Override
+    public R timedTaskActivityNotice() {
+        // 查询所有即将开始的活动
+        List<ComActActivityDO> actActivityList = comActActivityDAO.selectList(new QueryWrapper<ComActActivityDO>()
+            .lambda().le(ComActActivityDO::getBeginAt, DateUtils.addDays(new Date(), 1))
+            .ge(ComActActivityDO::getBeginAt, new Date()).notIn(ComActActivityDO::getStatus,5,6));
+        if (!actActivityList.isEmpty()) {
+            WxMaService maService = wxMaConfiguration.getMaService("wx118de8a734d269f0");
+            try {
+                String accessToken = maService.getAccessToken();
+                actActivityList.forEach(actActivity -> {
+                    ComActDO comActDO=comActDAO.selectById(actActivity.getCommunityId());
+                    R<SysTemplateConfigVO> r=userService.selectTemplate(comActDO.getAreaCode(),9);
+                    // 查询报名活动人员列表
+                    List<ComActActSignDO> actSignList = comActActSignDAO.selectList(new QueryWrapper<ComActActSignDO>()
+                        .lambda().eq(ComActActSignDO::getActivityId, actActivity.getId()));
+                    actSignList.forEach(actSign -> {
+                        // 查询用户openId
+                        Map<String, String> map = comActActSignDAO.getUserOpenId(actSign.getUserId());
+                        if (map != null) {
+
+                            String openid = map.get("openid");
+                            // 推送消息
+                            WxUtil.sendSubscribeHDJJKS(openid, accessToken, actActivity.getActivityName(),
+                                com.panzhihua.common.utlis.DateUtils.format(actActivity.getBeginAt(),
+                                    com.panzhihua.common.utlis.DateUtils.ymdhms_format),
+                                actActivity.getActivityAddr(), actSignList.size() + "",r.getData().getTemplateId());
+                        }
+
+                    });
+
+                });
+            } catch (Exception e) {
+                log.error("推送失败,错误原因:" + e.getMessage());
+            }
+        }
+        return R.ok();
+    }
+
+    private String getPersent(int x, int y){
+        if (y == 0) {
+            return "";
+        }
+        if (x == 0) {
+            return "0.00%";
+        }
+        double d1 = x * 1.0;
+        double d2 = y * 1.0;
+        DecimalFormat decimalFormat = new DecimalFormat("##.00%");
+        return decimalFormat.format(d1 / d2);
+    }
+
+    /**
+     * 用户签到
+     *
+     * @param comActActRegistVO 签到参数
+     * @return 签到结果
+     */
+    @Override
+    public R activitySignIn(ComActActRegistVO comActActRegistVO) {
+        Long activityId = comActActRegistVO.getActivityId();
+        Long userId = comActActRegistVO.getUserId();
+        if (isNull(activityId)) {
+            return R.fail("签到所属活动id不能为空!");
+        }
+        ComActActivityDO comActActivityDO = comActActivityDAO.selectById(activityId);
+        if (isNull(comActActivityDO)) {
+            return R.fail("活动不存在!");
+        }
+
+        ComActActSignDO comActActSignDO = comActActSignDAO
+            .selectOne(new QueryWrapper<ComActActSignDO>().lambda().eq(ComActActSignDO::getActivityId, activityId)
+                .eq(ComActActSignDO::getUserId, userId).eq(ComActActSignDO::getStatus, 1));
+        if (isNull(comActActSignDO)) {
+            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("不在活动时间范围内");
+        }
+        Integer rewardWay = null;
+        Integer rewardIntegral = 0;
+        Integer integralType = null;
+        String remark = "";
+        switch (comActActSignDO.getSignIdentity()) {
+            case 1:
+                rewardWay = comActActivityDO.getParticipantRewardWay();
+                rewardIntegral = comActActivityDO.getParticipantRewardIntegral();
+                integralType = 4;
+                remark = "社区活动-居民身份成功参与";
+                break;
+            case 2:
+                rewardWay = comActActivityDO.getPbRewardWay();
+                rewardIntegral = comActActivityDO.getPbRewardIntegral();
+                integralType = 5;
+                remark = "社区活动-党员身份成功参与";
+                break;
+            case 3:
+                rewardWay = comActActivityDO.getVolunteerRewardWay();
+                rewardIntegral = comActActivityDO.getVolunteerRewardIntegral();
+                integralType = 6;
+                remark = "社区活动-志愿者身份成功参与";
+                break;
+            default:
+                break;
+        }
+        if (comActActivityDO.getType().intValue() == 5) {
+            integralType = 9;
+            remark = "单位党员活动-成功参与";
+        }
+        boolean isHave = rewardIntegral > 0;
+        ComActActRegistDO comActActRegistDO = new ComActActRegistDO();
+        if (comActActRegistVO.getSignType() != null && comActActRegistVO.getSignType() == 2) {
+            ComActActRegistDO comActActActRegistDO = comActActRegistDAO.selectOne(new QueryWrapper<ComActActRegistDO>()
+                .lambda().eq(ComActActRegistDO::getActivityId, activityId).eq(ComActActRegistDO::getUserId, userId)
+                .eq(ComActActRegistDO::getCodeId, comActActRegistVO.getCodeId()));
+            if (comActActActRegistDO == null) {
+                return R.fail("未签到无法签退");
+            }
+            if (comActActActRegistDO.getEndTime() != null) {
+                return R.fail("无法重复签退");
+            }
+            int hours = com.panzhihua.common.utlis.DateUtils.getHour(comActActActRegistDO.getStartTime(), nowDate);
+            int retrieveIntegral = rewardWay == 1 ? rewardIntegral : rewardIntegral * hours;
+            comActActRegistDO.setId(comActActActRegistDO.getId());
+            comActActRegistDO.setEndTime(nowDate);
+            comActActRegistDO.setAward(retrieveIntegral);
+            int result = comActActRegistDAO.updateById(comActActRegistDO);
+            if (result > 0) {
+                if (isHave) {
+                    AddComActIntegralUserDTO addComActIntegralUserDTO = new AddComActIntegralUserDTO();
+                    addComActIntegralUserDTO.setUserId(userId);
+                    addComActIntegralUserDTO.setIntegralType(integralType);
+                    addComActIntegralUserDTO.setIntegral(retrieveIntegral);
+                    addComActIntegralUserDTO.setSignIdentity(comActActSignDO.getSignIdentity());
+                    addComActIntegralUserDTO.setCommunityId(comActActivityDO.getCommunityId());
+                    addComActIntegralUserDTO.setServiceId(activityId);
+                    addComActIntegralUserDTO.setRemark(remark);
+                    comActIntegralUserTradeService.addIntegralTradeAdmin(addComActIntegralUserDTO);
+                    return R.ok(retrieveIntegral);
+                } else {
+                    return R.ok();
+                }
+            }
+        } else {
+            int signDayCount = comActActRegistDAO.selectCount(new QueryWrapper<ComActActRegistDO>().lambda()
+                .eq(ComActActRegistDO::getActivityId, activityId).eq(ComActActRegistDO::getUserId, userId)
+                .eq(ComActActRegistDO::getCodeId, comActActRegistVO.getCodeId()));
+            int signAllCount = comActActRegistDAO.selectCount(new QueryWrapper<ComActActRegistDO>().lambda()
+                .eq(ComActActRegistDO::getActivityId, activityId).eq(ComActActRegistDO::getUserId, userId));
+            if (signDayCount > 0) {
+                return R.fail("请扫描新的签到码");
+            }
+            if (isHave) {
+                int limit = comActActivityDO.getLimit().intValue();
+                if (limit != -1 && signAllCount >= limit) {
+                    return R.fail("签到次数上限");
+                }
+            }
+            comActActRegistDO.setActivityId(activityId);
+            comActActRegistDO.setStartTime(new Date());
+            comActActRegistDO.setType(comActActivityDO.getType());
+            comActActRegistDO.setUserId(userId);
+            comActActRegistDO.setSignIdentity(comActActSignDO.getSignIdentity());
+            comActActRegistDO.setCreateAt(nowDate);
+            comActActRegistDO.setCodeId(comActActRegistVO.getCodeId());
+            comActActRegistDO.setAward(0);
+            comActActRegistDO.setPosition(comActActRegistVO.getPosition());
+            comActActRegistDO.setCheckUnitId(comActActSignDO.getCheckUnitId());
+            comActActRegistDO.setTimes(signAllCount + 1);
+            int result = comActActRegistDAO.insert(comActActRegistDO);
+            if (result > 0) {
+                return R.ok();
+            }
+        }
+        return R.fail("网络错误,请重试");
+    }
+
+    /**
+     *用户签到记录列表
+     *
+     * @param userId 用id
+     * @return 用户签到列表
+     */
+    @Override
+    public R listSignInActivity(Long userId) {
+        List<ComActActRegistDO> comActActRegistDOS = comActActRegistDAO.selectList(new QueryWrapper<ComActActRegistDO>()
+                .lambda().eq(ComActActRegistDO::getUserId, userId));
+        ArrayList<ComActActRegistVO> comActActRegistVOS = new ArrayList<>();
+        comActActRegistDOS.forEach(comActActRegistDO -> {
+            ComActActRegistVO comActActRegistVO = new ComActActRegistVO();
+            BeanUtils.copyProperties(comActActRegistDO, comActActRegistVO);
+            comActActRegistVOS.add(comActActRegistVO);
+        });
+        return R.ok(comActActRegistVOS);
+    }
+
+    /**
+     * 获取活动报名签到记录
+     * @param id 活动主键id
+     * @return
+     */
+    @Override
+    public R listSignInRecord(Long id) {
+        return R.ok(comActActSignDAO.listSignInRecord(id));
+    }
+
+    /**
+     * 活动签到记录
+     * @param id 活动主键
+     * @param userId 用户id
+     * @return
+     */
+    @Override
+    public R listRegistRecord(Long id, Long userId) {
+        return R.ok(comActActRegistDAO.listRegistRecord(id, userId));
+    }
+
+    /**
+     * 获取活动类型(目前只有志愿者活动需要获取)
+     * @param communityId
+     * @param type
+     * @return
+     */
+    @Override
+    public R listActivityType(Long communityId, Integer type) {
+        return R.ok(this.baseMapper.listActivityType(communityId, type));
+    }
+
+    /**
+     * 添加活动类型
+     * @param comActActivityTypeVO
+     * @return
+     */
+    @Override
+    public R addActivityType(ComActActivityTypeVO comActActivityTypeVO) {
+        try {
+            comActActivityTypeVO.setId(Snowflake.getId());
+            this.baseMapper.addActivityType(comActActivityTypeVO);
+        } catch (Exception e) {
+            log.error("添加活动类型错误【{}】", e.getMessage());
+            return R.fail("活动类型已存在");
+        }
+        return R.ok();
+    }
+
+    @Override
+    public String getActBelongRegionCode(Long communityId) {
+        return baseMapper.getActBelongRegionCode(communityId);
+    }
+
+    @Override
+    public R partyMemberCount(Long communityId, String year) {
+
+        List<Long> communityIds = comActDAO.selectIds(communityId);
+        if (CollUtil.isEmpty(communityIds)){
+            communityIds = new ArrayList<>();
+            communityIds.add(communityId);
+        }
+        PartyActivityStatics partyActivityStatics=this.comActActivityDAO.selectActivityStatics(communityIds);
+        List<PartyActivityTypeChart> partyActivityTypeChart=this.comActActivityDAO.selectActivityChart(communityIds);
+        if(partyActivityStatics.getActivityCount()!=null&&partyActivityStatics.getActivityCount()>0){
+            if(!CollectionUtils.isEmpty(partyActivityTypeChart)){
+                partyActivityTypeChart.forEach(partyActivityTypeChart1 -> {
+                    partyActivityTypeChart1.setPercent(partyActivityTypeChart1.getCount()/partyActivityStatics.getActivityCount());
+                });
+            }
+        }
+        partyActivityStatics.setPartyActivityTypeChartList(partyActivityTypeChart);
+        partyActivityStatics.setPartyActivityLines(getPoints(communityIds,year));
+        return R.ok(partyActivityStatics);
+    }
+
+    @Override
+    public R partyMemberDetail(CommonPage commonPage) {
+        return R.ok(comActActivityDAO.partyMemberDetail(new Page<>(commonPage.getPage(),commonPage.getSize()),commonPage));
+    }
+
+    @Override
+    public R exportPartyMemberDetail(CommonPage commonPage) {
+        return R.ok(comActActivityDAO.exportPartyMemberDetail(commonPage));
+    }
+
+    public List<PartyActivityLine> getPoints(List<Long> communityIds,String year){
+        List<PartyActivityLine> partyActivityLines=new ArrayList<>();
+        for(int i=1;i<=12;i++){
+            String x="";
+            if(i<10){
+                x="0"+i;
+            }
+            else {
+                x=i+"";
+            }
+            PartyActivityLine partyActivityLine=new PartyActivityLine();
+            partyActivityLine.setX(i+"月");
+            Integer y=this.comActActivityDAO.selectActivityLine(communityIds,year,x);
+            partyActivityLine.setY(y);
+            partyActivityLines.add(partyActivityLine);
+        }
+        return partyActivityLines;
+    }
+
+    @Override
+    public R pageActivityBigScreen(PageBaseDTO pageBaseDTO) {
+        return R.ok(comActActivityDAO.pageActivityBigScreen(new Page<>(pageBaseDTO.getPageNum(),pageBaseDTO.getPageSize())));
+    }
+
+    @Override
+    public R jinhuiSignActivity(SignactivityVO signactivityVO) {
+        Long activityId = signactivityVO.getActivityId();
+        Integer type = signactivityVO.getType();
+        Long userId = signactivityVO.getUserId();
+        Integer isVolunteer = 0;
+        // 查询社区活动
+        ComActActivityDO actActivityDO = this.baseMapper.selectById(activityId);
+        if (isNull(actActivityDO)) {
+            return R.fail("活动不存在");
+        }
+        if(actActivityDO.getSignUpBegin().after(new Date())){
+            return R.fail("未到报名时间");
+        }
+        int num = 0;
+        ComActActSignDO comActActSignDO = comActActSignDAO.selectOne(new QueryWrapper<ComActActSignDO>()
+                .lambda().eq(ComActActSignDO::getActivityId, activityId).eq(ComActActSignDO::getUserId, userId));
+        Integer signIdentity = signactivityVO.getSignIdentity();
+        if (1 == type) {
+            if (nonNull(comActActSignDO) && comActActSignDO.getStatus().equals(1)) {
+                return R.fail("已经报名过了,请勿重复提交");
+            }
+            Integer activityType = actActivityDO.getType();
+            Boolean isInvite = false;
+            if (activityType == 1) {
+                if (signIdentity == 1) {
+                    //以居民身份参与活动
+                    Integer residentMax = actActivityDO.getParticipantMax();
+                    if (residentMax == null) {
+                        return R.fail("活动暂未对居民开放");
+                    }
+                    // 查询当前活动下参与居民
+                    Integer residentCount = comActActSignDAO.selectCount(new QueryWrapper<ComActActSignDO>().lambda()
+                            .eq(ComActActSignDO::getActivityId, activityId).eq(ComActActSignDO::getSignIdentity, 1).eq(ComActActSignDO::getStatus, 1));
+                    if (residentMax != -1 && residentMax <= residentCount) {
+                        return R.fail("报名人数已满");
+                    }
+                } else if (signIdentity == 2) {
+                    //以党员身份参与活动
+                    Integer partyMemberMax = actActivityDO.getPartyMemberMax();
+                    if (partyMemberMax == null) {
+                        return R.fail("活动暂未对党员开放");
+                    }
+                    ComActActivityInvite activityInvite = comActActivityInviteService.getBaseMapper().selectOne(new LambdaQueryWrapper<ComActActivityInvite>()
+                            .eq(ComActActivityInvite::getActivityId, activityId).eq(ComActActivityInvite::getUserId, userId));
+                    if (isNull(activityInvite)) {
+//                        int count = pbMemberDAO.checkIsPbMember(userId);
+//                        if (count < 1) {
+//                            return R.fail(HttpStatus.NOT_ACCEPTABLE, "您还不是党员");
+//                        }
+                        // 查询当前活动下参与志愿者
+                        Integer partyMemberCount = comActActSignDAO.selectCount(new QueryWrapper<ComActActSignDO>().lambda()
+                                .eq(ComActActSignDO::getActivityId, activityId).eq(ComActActSignDO::getSignIdentity, 2)
+                                .eq(ComActActSignDO::getStatus, 1).eq(ComActActSignDO::getIsInvite, false));
+                        if (partyMemberMax != -1 && partyMemberMax <= partyMemberCount) {
+                            return R.fail("报名人数已满");
+                        }
+                    } else {
+                        isInvite = true;
+                    }
+                } else {
+                    //以志愿者身份参与活动
+                    Integer volunteerMax = actActivityDO.getVolunteerMax();
+                    if (volunteerMax == null) {
+                        return R.fail("活动暂未对志愿者开放");
+                    }
+//                    int count = pbMemberDAO.checkIsVolunteer(userId);
+//                    if (count < 1) {
+//                        return R.fail(HttpStatus.NOT_ACCEPTABLE, "您还不是志愿者");
+//                    }
+                    // 查询当前活动下参与志愿者
+                    Integer volunteerCount = comActActSignDAO.selectCount(new QueryWrapper<ComActActSignDO>().lambda()
+                            .eq(ComActActSignDO::getActivityId, activityId).eq(ComActActSignDO::getSignIdentity, 3).eq(ComActActSignDO::getStatus, 1));
+                    if (volunteerMax != -1 && volunteerMax <= volunteerCount) {
+                        return R.fail("报名人数已满");
+                    }
+                }
+            }
+            if (nonNull(comActActSignDO)) {
+                comActActSignDO.setStatus(1);
+                comActActSignDO.setCreateAt(new Date());
+                comActActSignDO.setReason(null);
+                comActActSignDO.setSignIdentity(signIdentity);
+                comActActSignDO.setTimes(comActActSignDO.getTimes()+1);
+                comActActSignDO.setIsInvite(isInvite);
+                comActActSignDO.setCheckUnitId(signactivityVO.getCheckUnitId());
+                num = comActActSignDAO.updateById(comActActSignDO);
+            } else {
+                comActActSignDO = new ComActActSignDO();
+                comActActSignDO.setActivityId(activityId);
+                comActActSignDO.setUserId(userId);
+                comActActSignDO.setSignIdentity(signIdentity);
+                comActActSignDO.setTimes(1);
+                comActActSignDO.setIsInvite(isInvite);
+                comActActSignDO.setCheckUnitId(signactivityVO.getCheckUnitId());
+                num = comActActSignDAO.insert(comActActSignDO);
+            }
+        } else {
+            Integer regTimes = comActActRegistDAO.selectCount(new QueryWrapper<ComActActRegistDO>().lambda()
+                    .eq(ComActActRegistDO::getActivityId, activityId).eq(ComActActRegistDO::getUserId, userId).eq(ComActActRegistDO::getType, 1));
+            Integer canCancel = actActivityDO.getCanCancel();
+            if (nonNull(canCancel) && canCancel.equals(2)) {
+                return R.fail("该活动暂不支持取消");
+            }
+            if (regTimes > 0) {
+                return R.fail("您已参与活动,不可取消");
+            }
+            if (isNull(signactivityVO.getReason())) {
+                return R.fail("缺少取消原因");
+            }
+            if (isNull(comActActSignDO)) {
+                return R.fail("未报名");
+            }
+            comActActSignDO.setStatus(0);
+            comActActSignDO.setReason(signactivityVO.getReason());
+            num = comActActSignDAO.updateById(comActActSignDO);
+            //计算用户金汇币
+            if (num > 0)
+            {
+                if(!StringUtils.isEmpty(actActivityDO.getJinhuiCoinPunishment()) && !StringUtils.equals(actActivityDO.getJinhuiCoinPunishment(),"0"))
+                {
+                    //查询个人金汇币总额
+                    JinhuiCoinGeneralTable  jinhuiCoinGeneralTable=comActActRegistDAO.getDetails(userId+"");
+                    if(jinhuiCoinGeneralTable!=null)
+                    {
+                        if (!StringUtils.isEmpty(jinhuiCoinGeneralTable.getGoldCoin()))
+                        {
+                            JinhuiCoinGeneralTableVO jinhuiVO=new JinhuiCoinGeneralTableVO();
+                            jinhuiVO.setId(jinhuiCoinGeneralTable.getId());
+
+                            int punishmentGold=Integer.valueOf(actActivityDO.getJinhuiCoinPunishment());
+                            int allGold=Integer.valueOf(jinhuiCoinGeneralTable.getGoldCoin());
+                            if(punishmentGold>=allGold)
+                            {
+                                jinhuiVO.setGoldCoin("0");
+                            }
+                            else
+                            {
+                                allGold=allGold-punishmentGold;
+                                jinhuiVO.setGoldCoin(allGold+"");
+                            }
+                            jinhuiCommunityService.coinTableEditData(jinhuiVO);
+                        }
+                    }
+
+                    JinhuiGoldCoinRecordVO jVo=new JinhuiGoldCoinRecordVO();
+                    jVo.setCommunityId(actActivityDO.getCommunityId()+"");
+                    jVo.setTitle("取消志愿者活动");
+                    jVo.setUserId(userId+"");
+                    jVo.setRemark("取消志愿者活动");
+                    jVo.setType("2");
+                    jVo.setGoldCoin(actActivityDO.getJinhuiCoinPunishment());
+                    jinhuiCommunityService.recordAddData(jVo);
+
+
+                }
+            }
+        }
+        if (num > 0) {
+            return R.ok(isVolunteer);
+        }
+        return R.fail();
+    }
+
+    @Override
+    public R jinhuiActivitySignIn(ComActActRegistVO comActActRegistVO) {
+        Long activityId = comActActRegistVO.getActivityId();
+        Long userId = comActActRegistVO.getUserId();
+        if (isNull(activityId)) {
+            return R.fail("签到所属活动id不能为空!");
+        }
+        ComActActivityDO comActActivityDO = comActActivityDAO.selectById(activityId);
+        if (isNull(comActActivityDO)) {
+            return R.fail("活动不存在!");
+        }
+
+        ComActActSignDO comActActSignDO = comActActSignDAO
+                .selectOne(new QueryWrapper<ComActActSignDO>().lambda().eq(ComActActSignDO::getActivityId, activityId)
+                        .eq(ComActActSignDO::getUserId, userId).eq(ComActActSignDO::getStatus, 1));
+        if (isNull(comActActSignDO)) {
+            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("不在活动时间范围内");
+        }
+        //奖励的金汇币
+        Integer rewardIntegral = Integer.valueOf(comActActivityDO.getJinhuiCoinAward());
+        boolean isHave = rewardIntegral > 0;
+        ComActActRegistDO comActActRegistDO = new ComActActRegistDO();
+        if (comActActRegistVO.getSignType() != null && comActActRegistVO.getSignType() == 2) {
+            ComActActRegistDO comActActActRegistDO = comActActRegistDAO.selectOne(new QueryWrapper<ComActActRegistDO>()
+                    .lambda().eq(ComActActRegistDO::getActivityId, activityId).eq(ComActActRegistDO::getUserId, userId)
+                    .eq(ComActActRegistDO::getCodeId, comActActRegistVO.getCodeId()));
+            if (comActActActRegistDO == null) {
+                return R.fail("未签到无法签退");
+            }
+            if (comActActActRegistDO.getEndTime() != null) {
+                return R.fail("无法重复签退");
+            }
+
+            //1.居民 2.党员 3.志愿者
+            switch (comActActActRegistDO.getSignIdentity())
+            {
+                case 1:
+                    if(comActActivityDO.getParticipantRewardWay()==2)
+                    {
+                        int hours = com.panzhihua.common.utlis.DateUtils.getHour(comActActActRegistDO.getStartTime(), comActActActRegistDO.getEndTime());
+                        if(hours>1)
+                        {
+                            rewardIntegral=rewardIntegral * hours;
+                        }
+                    }
+                    break;
+
+                case 2:
+                    if(comActActivityDO.getPbRewardWay()==2)
+                    {
+                        int hours = com.panzhihua.common.utlis.DateUtils.getHour(comActActActRegistDO.getStartTime(), comActActActRegistDO.getEndTime());
+                        if(hours>1)
+                        {
+                            rewardIntegral=rewardIntegral * hours;
+                        }
+                    }
+                    break;
+
+                case 3:
+                    if(comActActivityDO.getVolunteerRewardWay()==2)
+                    {
+                        int hours = com.panzhihua.common.utlis.DateUtils.getHour(comActActActRegistDO.getStartTime(), comActActActRegistDO.getEndTime());
+                        if(hours>1)
+                        {
+                            rewardIntegral=rewardIntegral * hours;
+                        }
+                    }
+                    break;
+            }
+
+            comActActRegistDO.setId(comActActActRegistDO.getId());
+            comActActRegistDO.setEndTime(nowDate);
+            comActActRegistDO.setAward(rewardIntegral);
+
+            int result = comActActRegistDAO.updateById(comActActRegistDO);
+            if (result > 0) {
+                if (isHave) {
+//                    AddComActIntegralUserDTO addComActIntegralUserDTO = new AddComActIntegralUserDTO();
+//                    addComActIntegralUserDTO.setUserId(userId);
+//                    addComActIntegralUserDTO.setIntegralType(integralType);
+//                    addComActIntegralUserDTO.setIntegral(retrieveIntegral);
+//                    addComActIntegralUserDTO.setSignIdentity(comActActSignDO.getSignIdentity());
+//                    addComActIntegralUserDTO.setCommunityId(comActActivityDO.getCommunityId());
+//                    addComActIntegralUserDTO.setServiceId(activityId);
+//                    addComActIntegralUserDTO.setRemark(remark);
+//                    comActIntegralUserTradeService.addIntegralTradeAdmin(addComActIntegralUserDTO);
+
+                    //查询个人金汇币总额
+                    JinhuiCoinGeneralTable jinhuiCoinGeneralTable=comActActRegistDAO.getDetails(userId+"");
+                    if(jinhuiCoinGeneralTable!=null)
+                    {
+                        JinhuiCoinGeneralTableVO jinhuiVO=new JinhuiCoinGeneralTableVO();
+                        jinhuiVO.setId(jinhuiCoinGeneralTable.getId());
+                        int allGold=0;
+                        if (!StringUtils.isEmpty(jinhuiCoinGeneralTable.getGoldCoin()))
+                        {
+                            allGold=Integer.valueOf(jinhuiCoinGeneralTable.getGoldCoin());
+                        }
+                        allGold=allGold+rewardIntegral;
+                        jinhuiVO.setGoldCoin(allGold+"");
+                        jinhuiCommunityService.coinTableEditData(jinhuiVO);
+                    }
+                    else
+                    {
+                        JinhuiCoinGeneralTableVO jinhuiVO=new JinhuiCoinGeneralTableVO();
+                        jinhuiVO.setCommunityId(comActActivityDO.getCommunityId()+"");
+                        jinhuiVO.setGoldCoin(rewardIntegral+"");
+                        jinhuiVO.setUserId(userId+"");
+                        jinhuiCommunityService.coinTableAddData(jinhuiVO);
+                    }
+
+                    JinhuiGoldCoinRecordVO jVo=new JinhuiGoldCoinRecordVO();
+                    jVo.setCommunityId(comActActivityDO.getCommunityId()+"");
+                    jVo.setTitle("志愿者活动奖励");
+                    jVo.setUserId(userId+"");
+                    jVo.setRemark("志愿者活动奖励");
+                    jVo.setType("1");
+                    jVo.setGoldCoin(rewardIntegral+"");
+                    jinhuiCommunityService.recordAddData(jVo);
+                    return R.ok();
+                } else {
+                    return R.ok();
+                }
+            }
+        } else {
+            int signDayCount = comActActRegistDAO.selectCount(new QueryWrapper<ComActActRegistDO>().lambda()
+                    .eq(ComActActRegistDO::getActivityId, activityId).eq(ComActActRegistDO::getUserId, userId)
+                    .eq(ComActActRegistDO::getCodeId, comActActRegistVO.getCodeId()));
+            int signAllCount = comActActRegistDAO.selectCount(new QueryWrapper<ComActActRegistDO>().lambda()
+                    .eq(ComActActRegistDO::getActivityId, activityId).eq(ComActActRegistDO::getUserId, userId));
+            if (signDayCount > 0) {
+                return R.fail("请扫描新的签到码");
+            }
+            if (isHave) {
+                int limit = comActActivityDO.getLimit().intValue();
+                if (limit != -1 && signAllCount >= limit) {
+                    return R.fail("签到次数上限");
+                }
+            }
+            comActActRegistDO.setActivityId(activityId);
+            comActActRegistDO.setStartTime(new Date());
+            comActActRegistDO.setType(comActActivityDO.getType());
+            comActActRegistDO.setUserId(userId);
+            comActActRegistDO.setSignIdentity(comActActSignDO.getSignIdentity());
+            comActActRegistDO.setCreateAt(nowDate);
+            comActActRegistDO.setCodeId(comActActRegistVO.getCodeId());
+            comActActRegistDO.setAward(0);
+            comActActRegistDO.setPosition(comActActRegistVO.getPosition());
+            comActActRegistDO.setCheckUnitId(comActActSignDO.getCheckUnitId());
+            comActActRegistDO.setTimes(signAllCount + 1);
+            int result = comActActRegistDAO.insert(comActActRegistDO);
+            if (result > 0) {
+                return R.ok();
+            }
+        }
+        return R.fail("网络错误,请重试");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActAnnouncementServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActAnnouncementServiceImpl.java
new file mode 100644
index 0000000..61d3d5d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActAnnouncementServiceImpl.java
@@ -0,0 +1,30 @@
+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.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.ComActAnnouncement;
+import com.panzhihua.service_community.dao.ComActAnnouncementDao;
+import com.panzhihua.service_community.service.ComActAnnouncementService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+/**
+ * (ComActAnnouncement)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-11-01 13:45:55
+ */
+@Slf4j
+@Service
+public class ComActAnnouncementServiceImpl extends ServiceImpl<ComActAnnouncementDao, ComActAnnouncement> implements ComActAnnouncementService {
+    @Resource
+    private ComActAnnouncementDao comActAnnouncementDao;
+    @Override
+    public R pageList(CommonPage commonPage) {
+        return R.ok(comActAnnouncementDao.pageList(new Page(commonPage.getPage(),commonPage.getSize()),commonPage));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActBuildingServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActBuildingServiceImpl.java
new file mode 100644
index 0000000..f06b13b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActBuildingServiceImpl.java
@@ -0,0 +1,654 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import javax.annotation.Resource;
+
+import cn.hutool.core.util.IdcardUtil;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.enums.PopulIsOksEnum;
+import com.panzhihua.common.enums.PopulPoliticalOutlookEnum;
+import com.panzhihua.common.model.dtos.community.building.admin.*;
+import com.panzhihua.common.model.vos.community.ComMngVillageVO;
+import com.panzhihua.common.model.vos.community.ComPopulationActVO;
+import com.panzhihua.common.model.vos.community.building.admin.BuildingUnitHouseListAdminVo;
+import com.panzhihua.common.model.vos.community.building.admin.PageBuildingListAdminVo;
+import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingHouseDetailVO;
+import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingHouseVO;
+import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingVO;
+import com.panzhihua.common.model.vos.grid.PopulationListVO;
+import com.panzhihua.service_community.dao.*;
+import com.panzhihua.service_community.model.dos.*;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.google.common.collect.Lists;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngBuildingExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationImportErrorVO;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.service.ComActBuildingService;
+import com.panzhihua.service_community.service.GridBuildRelationService;
+
+/**
+ * @author xyh
+ * @date 2021/6/10 13:46
+ */
+@Service
+public class ComActBuildingServiceImpl extends ServiceImpl<ComMngBuildingDAO, ComMngBuildingDO>
+    implements ComActBuildingService {
+
+    @Resource
+    private ComActVillageDAO comActVillageDAO;
+    @Resource
+    private ComActDAO comActDAO;
+    @Resource
+    private GridBuildRelationService gridBuildRelationService;
+    @Resource
+    private ComMngPopulationHouseDAO comMngPopulationHouseDAO;
+    @Resource
+    private ComMngPopulationDAO comMngPopulationDAO;
+    @Resource
+    private ComMngPopulationHouseUserDAO comMngPopulationHouseUserDAO;
+
+    @Override
+    public R batchSaveBuilding(List<ComMngBuildingExcelVO> newVoList, Long communityId) {
+        ArrayList<ComMngBuildingDO> list = Lists.newArrayList();
+        List<GridBuildRelationDO> keyList = new ArrayList<>();
+        List<ComMngPopulationImportErrorVO> errorList = new ArrayList<>();
+        for (ComMngBuildingExcelVO vo : newVoList) {
+            ComMngVillageDO comMngVillageDO = comActVillageDAO.selectOne(new QueryWrapper<ComMngVillageDO>()
+                .eq("alley", vo.getAlley()).eq("house_num", vo.getDoorNo()).eq("community_id", communityId));
+            if (comMngVillageDO == null) {
+                ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+                BeanUtils.copyProperties(vo,importErrorVO);
+                importErrorVO.setErrorMsg("该社区不存在此街路巷");
+                errorList.add(importErrorVO);
+                continue;
+            }
+            vo.setName(vo.getName().replace("栋", ""));
+            List<ComMngBuildingDO> buildingDOList = this.baseMapper.selectList(new QueryWrapper<ComMngBuildingDO>()
+                .eq("act_id", communityId).eq("village_id", comMngVillageDO.getVillageId()).eq("name", vo.getName()));
+            if (buildingDOList.size() > 0) {
+                ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+                BeanUtils.copyProperties(vo,importErrorVO);
+                importErrorVO.setErrorMsg("该楼栋已存在");
+                errorList.add(importErrorVO);
+                continue;
+            }
+            ComMngBuildingDO comMngBuildingDO = new ComMngBuildingDO();
+            BeanUtils.copyProperties(vo, comMngBuildingDO);
+            comMngBuildingDO.setActId(comMngVillageDO.getCommunityId());
+            comMngBuildingDO.setStreetId(comMngVillageDO.getStreetId());
+            comMngBuildingDO.setVillageId(comMngVillageDO.getVillageId());
+//            comMngBuildingDO.setElevatorTotal(vo.getElevatorTotal());
+            ComActDO actDO = comActDAO.selectById(comMngVillageDO.getCommunityId());
+            StringBuilder path = new StringBuilder();
+            path.append(vo.getAlley()).append(">").append(actDO.getName()).append(comMngVillageDO.getName()).append(">")
+                .append(vo.getName());
+            comMngBuildingDO.setPath(path.toString());
+//            comMngBuildingDO.setGridId(vo.getGridId());
+            list.add(comMngBuildingDO);
+            GridBuildRelationDO gridBuildRelation =
+                getGridBuildRelationDO(communityId, comMngVillageDO.getStreetId(), vo, comMngBuildingDO);
+            keyList.add(gridBuildRelation);
+        }
+
+        if (list.size() > 0) {
+            this.saveBatch(list);
+            if(keyList.size() > 0){
+                gridBuildRelationService.saveBatchGridBuildRelation(keyList);
+            }
+        }
+        if (errorList.size() > 0) {
+            return R.fail(errorList);
+        }
+        return R.ok();
+    }
+
+    public GridBuildRelationDO getGridBuildRelationDO(Long communityId, Long streetId, ComMngBuildingExcelVO vo,
+        ComMngBuildingDO comMngBuildingDO) {
+        GridBuildRelationDO gridBuildRelation = new GridBuildRelationDO();
+        gridBuildRelation.setId(Snowflake.getId());
+        gridBuildRelation.setBuildId(comMngBuildingDO.getId());
+        gridBuildRelation.setBuildName(comMngBuildingDO.getPath());
+        gridBuildRelation.setVillageId(comMngBuildingDO.getVillageId());
+        gridBuildRelation.setGridCommunityId(communityId);
+        gridBuildRelation.setGridStreetId(streetId);
+//        if (vo.getGridId() != null) {
+//            gridBuildRelation.setGridId(Long.valueOf(vo.getGridId()));
+//        }
+        gridBuildRelation.setGridName(vo.getGridName());
+        gridBuildRelation.setType(1);
+        gridBuildRelation.setCreateAt(new Date());
+        return gridBuildRelation;
+    }
+
+    /**
+     * 社区后台-分页查询楼栋列表
+     * @param pageBuildingListDto   请求参数
+     * @return  楼栋列表
+     */
+    @Override
+    public R pageBuildingAdmin(PageBuildingListDto pageBuildingListDto){
+        IPage<PageBuildingListAdminVo> pageBuildingList = this.baseMapper.pageBuildingAdmin(
+                new Page(pageBuildingListDto.getPageNum(),pageBuildingListDto.getPageSize()),pageBuildingListDto);
+        pageBuildingList.getRecords().forEach(building -> {
+            //查询该楼栋下最高的楼层
+            if(StringUtils.isNotEmpty(building.getBuildFloorSum())){
+                if(building.getBuildFloorSum().length() == 3){
+                    building.setBuildFloorSum(building.getBuildFloorSum().substring(0,1));
+                }else if(building.getBuildFloorSum().length() == 4){
+                    building.setBuildFloorSum(building.getBuildFloorSum().substring(0,2));
+                }else if(building.getBuildFloorSum().length() > 4){
+                    building.setBuildFloorSum(building.getBuildFloorSum().substring(0,2));
+                }
+            }
+        });
+        return R.ok(pageBuildingList);
+    }
+
+    /**
+     * 社区后台-查询楼栋列表表头统计数据
+     * @param communityId   社区id
+     * @return  楼栋列表表头统计数据
+     */
+    @Override
+    public R buildingListHeaderStatisticsAdmin(Long communityId){
+        return R.ok(this.baseMapper.buildingListHeaderStatisticsAdmin(communityId));
+    }
+
+    /**
+     * 社区后台-查询楼栋详情
+     * @param id    楼栋id
+     * @return  楼栋详情
+     */
+    @Override
+    public R detailBuildAdmin(Long id){
+        return R.ok(this.baseMapper.detailBuildAdmin(id));
+    }
+
+    /**
+     * 查询楼栋下单元列表
+     * @param id    楼栋id
+     * @return  单元列表
+     */
+    @Override
+    public R buildingUnitListAdmin(Long id){
+        //查询该楼栋信息
+        ComMngBuildingDO buildingDO = this.baseMapper.selectById(id);
+        if(buildingDO == null){
+            return R.fail("未查询到该楼栋信息");
+        }
+        List<ComMngVillageBuildingVO> buildList = new ArrayList<>();
+        if(StringUtils.isNotEmpty(buildingDO.getName())){
+            buildList = this.baseMapper.buildingUnitList(buildingDO.getVillageId(),buildingDO.getName());
+            buildList.forEach(villageBuilding -> {
+                if(StringUtils.isNotEmpty(villageBuilding.getFloor())){
+                    if (!villageBuilding.getFloor().contains("栋")) {
+                        villageBuilding.setFloorString(villageBuilding.getFloor() + "栋");
+                    } else {
+                        villageBuilding.setFloorString(villageBuilding.getFloor());
+                    }
+                }
+                if(StringUtils.isNotEmpty(villageBuilding.getUnitNo())){
+                    if (!villageBuilding.getUnitNo().contains("单元")) {
+                        villageBuilding.setUnitNoString(villageBuilding.getUnitNo() + "单元");
+                    } else {
+                        villageBuilding.setUnitNoString(villageBuilding.getUnitNo());
+                    }
+                }
+            });
+        }
+        return R.ok(buildList);
+    }
+
+    /**
+     * 查询楼栋单元下房屋列表
+     * @param unitHouseListDto    请求参数
+     * @return  单元列表
+     */
+    @Override
+    public R buildingUnitHouseListAdmin(PageBuildingUnitHouseListDto unitHouseListDto){
+
+        BuildingUnitHouseListAdminVo houseListAdminVo = new BuildingUnitHouseListAdminVo();
+        //查询该楼栋信息
+        ComMngBuildingDO buildingDO = this.baseMapper.selectById(unitHouseListDto.getId());
+        if(buildingDO == null){
+            return R.fail("未查询到该楼栋信息");
+        }
+        unitHouseListDto.setVillageId(buildingDO.getVillageId());
+        unitHouseListDto.setFloor(buildingDO.getName());
+        List<ComMngVillageBuildingHouseVO> buildHouseList = new ArrayList<>();
+        if(StringUtils.isNotEmpty(buildingDO.getName())){
+            IPage<ComMngVillageBuildingHouseVO> buildingHousePage = this.baseMapper.getBuildingUnitHouseList(new Page(unitHouseListDto.getPageNum(),unitHouseListDto.getPageSize()),unitHouseListDto);
+            buildingHousePage.getRecords().forEach(house -> {
+                if(StringUtils.isEmpty(house.getBuildingNum())){
+                    if(StringUtils.isNotEmpty(house.getHouseNo())){
+                        boolean result = house.getHouseNo().matches("[0-9]+");
+                        if (result) {// 该字段为纯数字
+                            if (house.getHouseNo().length() == 4) {
+                                house.setBuildingNum(house.getHouseNo().substring(0, 2).replaceAll("^(0+)", ""));
+                            } else if (house.getHouseNo().length() == 3) {
+                                house.setBuildingNum(house.getHouseNo().substring(0, 1).replaceAll("^(0+)", ""));
+                            }
+                        } else {
+                            house.setBuildingNum("-");
+                        }
+                    } else {
+                        house.setBuildingNum("-");
+                    }
+                }
+            });
+            buildHouseList = buildingHousePage.getRecords();
+
+            //查询统计数据
+            Map<String,Object> statisticsMap = this.baseMapper.getBuildingUnitHouseStatistics(buildingDO.getVillageId(),buildingDO.getName(),unitHouseListDto.getUnit());
+            if(statisticsMap != null){
+                houseListAdminVo.setHouseNum(Integer.parseInt(statisticsMap.get("houseNum").toString()));
+                houseListAdminVo.setLiveTotal(Integer.parseInt(statisticsMap.get("liveTotal").toString()));
+                houseListAdminVo.setLeaseTotal(Integer.parseInt(statisticsMap.get("leaseTotal").toString()));
+                houseListAdminVo.setVacantNum(Integer.parseInt(statisticsMap.get("vacantNum").toString()));
+            }
+        }
+        houseListAdminVo.setHouseList(buildHouseList);
+
+        return R.ok(houseListAdminVo);
+    }
+
+    @Override
+    public R buildingUnitHouseDetailAdmin(Long houseId,Long communityId){
+        ComMngVillageBuildingHouseDetailVO buildingHouseDetailVO =
+                this.baseMapper.buildingUnitHouseDetailAdmin(houseId);
+        if (buildingHouseDetailVO != null) {
+
+            // 转换楼层数
+            String houseNo = buildingHouseDetailVO.getHouseNo();
+            boolean result = houseNo.matches("[0-9]+");
+            if (result) {// 该字段为纯数字
+                if (houseNo.length() == 4) {
+                    buildingHouseDetailVO.setBuildingNum(houseNo.substring(0, 2).replaceAll("^(0+)", ""));
+                } else if (houseNo.length() == 3) {
+                    buildingHouseDetailVO.setBuildingNum(houseNo.substring(0, 1).replaceAll("^(0+)", ""));
+                }
+            } else {
+                buildingHouseDetailVO.setBuildingNum("-");
+            }
+
+            // 查询该房屋的户主信息
+            List<PopulationListVO> householderList =
+                    this.baseMapper.getGridVillageBuildingPopulationList(buildingHouseDetailVO.getId(),communityId, null, 1);
+            if (!householderList.isEmpty()) {
+                householderList.forEach(householder -> {
+                    if(householder.getPoliticalOutlook() != null){
+                        householder.setOutlook(PopulPoliticalOutlookEnum.getCnDescByName(householder.getPoliticalOutlook()));
+                    }else{
+                        householder.setOutlook("暂无");
+                    }
+                    try {
+                        Integer age = IdcardUtil.getAgeByIdCard(householder.getCardNo());
+                        householder.setAge(age);
+                    } catch (Exception e) {
+                        log.error("身份证号码转换年龄失败,人员id:" + householder.getId());
+                    }
+                });
+                buildingHouseDetailVO.setHouseholderList(householderList);
+            }
+            // 查询该房屋的住户信息
+            List<PopulationListVO> populationList =
+                    this.baseMapper.getGridVillageBuildingPopulationList(buildingHouseDetailVO.getId(),communityId, null, null);
+            if (!populationList.isEmpty()) {
+                populationList.forEach(population -> {
+                    if(population.getPoliticalOutlook() != null){
+                        population.setOutlook(PopulPoliticalOutlookEnum.getCnDescByName(population.getPoliticalOutlook()));
+                    }else{
+                        population.setOutlook("暂无");
+                    }
+                    try {
+                        Integer age = IdcardUtil.getAgeByIdCard(population.getCardNo());
+                        population.setAge(age);
+                    } catch (Exception e) {
+                        log.error("身份证号码转换年龄失败,人员id:" + population.getId());
+                    }
+                });
+                buildingHouseDetailVO.setPopulationList(populationList);
+            }
+        }
+        return R.ok(buildingHouseDetailVO);
+    }
+
+    @Override
+    public R buildingVillageListAdmin(Long communityId){
+        List<ComMngVillageVO> villageList = this.baseMapper.buildingVillageListAdmin(communityId);
+        villageList.forEach(village -> {
+            if(StringUtils.isEmpty(village.getName())){
+                village.setName(village.getAlley() + village.getHouseNum());
+            }
+        });
+        return R.ok(villageList);
+    }
+
+    @Override
+    public R addBuildingUnitAdmin(AddBuildingUnitDto addBuildingUnitDto){
+        //查询该楼栋信息
+        ComMngBuildingDO buildingDO = this.baseMapper.selectById(addBuildingUnitDto.getId());
+        if(buildingDO == null){
+            return R.fail("未查询到该楼栋信息");
+        }
+
+        Integer count = comMngPopulationHouseDAO.selectCount(new QueryWrapper<ComMngPopulationHouseDO>().lambda()
+                .eq(ComMngPopulationHouseDO::getVillageId,buildingDO.getVillageId())
+                .eq(ComMngPopulationHouseDO::getFloor,buildingDO.getName())
+                .eq(ComMngPopulationHouseDO::getUnitNo,addBuildingUnitDto.getUnitNo()));
+        if(count > 0){
+            return R.fail("该单元号已存在");
+        }
+
+        //查询小区信息
+        ComMngVillageDO villageDO = comActVillageDAO.selectById(buildingDO.getVillageId());
+        if(villageDO != null){
+            StringBuilder address = new StringBuilder();
+            StringBuilder housePath = new StringBuilder();
+            ComPopulationActVO populationActVO = comActDAO.getPopulationActById(addBuildingUnitDto.getCommunityId());
+            if(populationActVO != null){
+                address.append(populationActVO.getProvinceName()).append(populationActVO.getCityName())
+                        .append(populationActVO.getDistrictName()).append(populationActVO.getStreetName())
+                        .append(villageDO.getAlley()).append(villageDO.getHouseNum()).append("号");
+                if (StringUtils.isNotEmpty(buildingDO.getName())) {
+                    address.append(buildingDO.getName()).append("栋");
+                }
+                if (StringUtils.isNotEmpty(addBuildingUnitDto.getUnitNo())) {
+                    address.append(addBuildingUnitDto.getUnitNo()).append("单元");
+                }
+                housePath.append(populationActVO.getProvinceName()).append(">").append(populationActVO.getCityName()).append(">")
+                        .append(villageDO.getAlley()).append(">").append(populationActVO.getName()).append(">").append(villageDO.getName()).append(">").append(address.toString());
+            }
+            ComMngPopulationHouseDO populationHouseDO = new ComMngPopulationHouseDO();
+            populationHouseDO.setId(Snowflake.getId());
+            populationHouseDO.setStreetId(buildingDO.getStreetId());
+            populationHouseDO.setVillageId(buildingDO.getVillageId());
+            populationHouseDO.setAlley(villageDO.getAlley());
+            populationHouseDO.setHouseNum(villageDO.getHouseNum());
+            populationHouseDO.setStatus(ComMngPopulationHouseDO.status.kongzhi);
+            populationHouseDO.setCommunityId(addBuildingUnitDto.getCommunityId());
+            populationHouseDO.setFloor(buildingDO.getName());
+            populationHouseDO.setUnitNo(addBuildingUnitDto.getUnitNo());
+            populationHouseDO.setAddress(address.toString());
+            populationHouseDO.setUpdateAt(new Date());
+            populationHouseDO.setPath(housePath.toString());
+            populationHouseDO.setIsEmpty(PopulIsOksEnum.YES.getCode());
+            comMngPopulationHouseDAO.insert(populationHouseDO);
+        }else{
+            return R.fail();
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R editBuildingUnitAdmin(EditBuildingUnitDto editBuildingUnitDto){
+        //查询该楼栋信息
+        ComMngBuildingDO buildingDO = this.baseMapper.selectById(editBuildingUnitDto.getId());
+        if(buildingDO == null){
+            return R.fail("未查询到该楼栋信息");
+        }
+
+        Integer oldCount = comMngPopulationHouseDAO.selectCount(new QueryWrapper<ComMngPopulationHouseDO>().lambda()
+                .eq(ComMngPopulationHouseDO::getVillageId,buildingDO.getVillageId())
+                .eq(ComMngPopulationHouseDO::getFloor,buildingDO.getName())
+                .eq(ComMngPopulationHouseDO::getUnitNo,editBuildingUnitDto.getOldUnitNo()));
+        if(oldCount <= 0){
+            return R.fail("原单元号不存在");
+        }
+
+        Integer newCount = comMngPopulationHouseDAO.selectCount(new QueryWrapper<ComMngPopulationHouseDO>().lambda()
+                .eq(ComMngPopulationHouseDO::getVillageId,buildingDO.getVillageId())
+                .eq(ComMngPopulationHouseDO::getFloor,buildingDO.getName())
+                .eq(ComMngPopulationHouseDO::getUnitNo,editBuildingUnitDto.getNewUnitNo()));
+        if(newCount > 0){
+            return R.fail("新单元号已存在");
+        }
+
+        //查询小区信息
+        ComMngVillageDO villageDO = comActVillageDAO.selectById(buildingDO.getVillageId());
+        if(villageDO != null){
+            String unitString = editBuildingUnitDto.getNewUnitNo() + "单元";
+
+            List<ComMngPopulationHouseDO> editHouseList = new ArrayList<>();
+            //查询需要修改的房屋列表信息
+            List<ComMngPopulationHouseDO> houseList = comMngPopulationHouseDAO.selectList(new QueryWrapper<ComMngPopulationHouseDO>().lambda()
+                    .eq(ComMngPopulationHouseDO::getVillageId,villageDO.getVillageId())
+                    .eq(ComMngPopulationHouseDO::getFloor,buildingDO.getName())
+                    .eq(ComMngPopulationHouseDO::getUnitNo,editBuildingUnitDto.getOldUnitNo()));
+            houseList.forEach(house -> {
+                ComMngPopulationHouseDO houseDO = new ComMngPopulationHouseDO();
+                houseDO.setId(house.getId());
+                houseDO.setAddress(house.getAddress().replace(house.getUnitNo() + "单元", unitString));
+                houseDO.setPath(house.getPath().replace(house.getUnitNo() + "单元", unitString));
+                houseDO.setUnitNo(editBuildingUnitDto.getNewUnitNo());
+                editHouseList.add(houseDO);
+            });
+
+            List<ComMngPopulationDO> editPopulationList = new ArrayList<>();
+            //查询需要修改的人口信息
+            List<ComMngPopulationDO> populationList = comMngPopulationDAO.selectList(new QueryWrapper<ComMngPopulationDO>().lambda()
+                    .eq(ComMngPopulationDO::getVillageId,villageDO.getVillageId())
+                    .eq(ComMngPopulationDO::getFloor,buildingDO.getName())
+                    .eq(ComMngPopulationDO::getUnitNo,editBuildingUnitDto.getOldUnitNo()));
+            populationList.forEach(population -> {
+                ComMngPopulationDO populationDO = new ComMngPopulationDO();
+                populationDO.setId(population.getId());
+                populationDO.setAddress(population.getAddress().replace(population.getUnitNo() + "单元", unitString));
+                populationDO.setUnitNo(editBuildingUnitDto.getNewUnitNo());
+                editPopulationList.add(populationDO);
+            });
+
+            if(!editHouseList.isEmpty()){
+                comMngPopulationHouseDAO.updateUnitAll(editHouseList);
+            }
+
+            if(!editPopulationList.isEmpty()){
+                comMngPopulationDAO.updateAll(editPopulationList);
+            }
+        }else{
+            return R.fail();
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R addBuildingHouseAdmin(AddBuildingHouseDto addBuildingHouseDto){
+
+        //查询该楼栋信息
+        ComMngBuildingDO buildingDO = this.baseMapper.selectById(addBuildingHouseDto.getId());
+        if(buildingDO == null){
+            return R.fail("未查询到该楼栋信息");
+        }
+
+        Integer count = comMngPopulationHouseDAO.selectCount(new QueryWrapper<ComMngPopulationHouseDO>().lambda()
+                .eq(ComMngPopulationHouseDO::getVillageId,buildingDO.getVillageId())
+                .eq(ComMngPopulationHouseDO::getFloor,buildingDO.getName())
+                .eq(ComMngPopulationHouseDO::getUnitNo,addBuildingHouseDto.getUnitNo())
+                .eq(ComMngPopulationHouseDO::getHouseNo,addBuildingHouseDto.getHouseNo()));
+        if(count > 0){
+            return R.fail("该房间已存在");
+        }
+
+        //查询小区信息
+        ComMngVillageDO villageDO = comActVillageDAO.selectById(buildingDO.getVillageId());
+        if(villageDO != null){
+            StringBuilder address = new StringBuilder();
+            StringBuilder housePath = new StringBuilder();
+            ComPopulationActVO populationActVO = comActDAO.getPopulationActById(addBuildingHouseDto.getCommunityId());
+            if(populationActVO != null){
+                address.append(populationActVO.getProvinceName()).append(populationActVO.getCityName())
+                        .append(populationActVO.getDistrictName()).append(populationActVO.getStreetName())
+                        .append(villageDO.getAlley()).append(villageDO.getHouseNum()).append("号");
+                if (StringUtils.isNotEmpty(buildingDO.getName())) {
+                    address.append(buildingDO.getName()).append("栋");
+                }
+                if (StringUtils.isNotEmpty(addBuildingHouseDto.getUnitNo())) {
+                    address.append(addBuildingHouseDto.getUnitNo()).append("单元");
+                }
+                if (StringUtils.isNotEmpty(addBuildingHouseDto.getHouseNo())) {
+                    address.append(addBuildingHouseDto.getHouseNo()).append("号");
+                }
+                housePath.append(populationActVO.getProvinceName()).append(">").append(populationActVO.getCityName()).append(">")
+                        .append(villageDO.getAlley()).append(">").append(populationActVO.getName()).append(">").append(villageDO.getName()).append(">").append(address.toString());
+            }
+            ComMngPopulationHouseDO populationHouseDO = new ComMngPopulationHouseDO();
+            populationHouseDO.setId(Snowflake.getId());
+            populationHouseDO.setStreetId(buildingDO.getStreetId());
+            populationHouseDO.setVillageId(buildingDO.getVillageId());
+            populationHouseDO.setAlley(villageDO.getAlley());
+            populationHouseDO.setHouseNum(villageDO.getHouseNum());
+            populationHouseDO.setStatus(ComMngPopulationHouseDO.status.kongzhi);
+            populationHouseDO.setCommunityId(addBuildingHouseDto.getCommunityId());
+            populationHouseDO.setFloor(buildingDO.getName());
+            populationHouseDO.setUnitNo(addBuildingHouseDto.getUnitNo());
+            populationHouseDO.setHouseNo(addBuildingHouseDto.getHouseNo());
+            populationHouseDO.setFloorNum(addBuildingHouseDto.getFloorNum());
+            populationHouseDO.setAddress(address.toString());
+            populationHouseDO.setUpdateAt(new Date());
+            populationHouseDO.setPath(housePath.toString());
+            populationHouseDO.setIsEmpty(PopulIsOksEnum.YES.getCode());
+            comMngPopulationHouseDAO.insert(populationHouseDO);
+        }else{
+            return R.fail();
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R editBuildingHouseAdmin(EditBuildingHouseDto editBuildingHouseDto){
+
+        ComMngPopulationHouseDO houseDO = comMngPopulationHouseDAO.selectById(editBuildingHouseDto.getHouseId());
+        if(houseDO == null){
+            return R.fail("未查询到该户室");
+        }
+
+        Integer count = comMngPopulationHouseDAO.selectCount(new QueryWrapper<ComMngPopulationHouseDO>().lambda()
+                .eq(ComMngPopulationHouseDO::getVillageId,houseDO.getVillageId())
+                .eq(ComMngPopulationHouseDO::getFloor,houseDO.getFloor())
+                .eq(ComMngPopulationHouseDO::getUnitNo,houseDO.getUnitNo())
+                .eq(ComMngPopulationHouseDO::getHouseNo,editBuildingHouseDto.getHouseNo()));
+        if(count > 0){
+            return R.fail("该房间已存在");
+        }
+
+        //查询小区信息
+        ComMngVillageDO villageDO = comActVillageDAO.selectById(houseDO.getVillageId());
+        if(villageDO != null){
+            StringBuilder address = new StringBuilder();
+            StringBuilder housePath = new StringBuilder();
+            ComPopulationActVO populationActVO = comActDAO.getPopulationActById(editBuildingHouseDto.getCommunityId());
+            if(populationActVO != null){
+                address.append(populationActVO.getProvinceName()).append(populationActVO.getCityName())
+                        .append(populationActVO.getDistrictName()).append(populationActVO.getStreetName())
+                        .append(villageDO.getAlley()).append(villageDO.getHouseNum()).append("号");
+                if (StringUtils.isNotEmpty(houseDO.getFloor())) {
+                    address.append(houseDO.getFloor()).append("栋");
+                }
+                if (StringUtils.isNotEmpty(houseDO.getUnitNo())) {
+                    address.append(houseDO.getUnitNo()).append("单元");
+                }
+                if (StringUtils.isNotEmpty(editBuildingHouseDto.getHouseNo())) {
+                    address.append(editBuildingHouseDto.getHouseNo()).append("号");
+                }
+                housePath.append(populationActVO.getProvinceName()).append(">").append(populationActVO.getCityName()).append(">")
+                        .append(villageDO.getAlley()).append(">").append(populationActVO.getName()).append(">").append(villageDO.getName()).append(">").append(address.toString());
+                houseDO.setAddress(address.toString());
+                houseDO.setPath(housePath.toString());
+            }
+            List<ComMngPopulationDO> editPopulationList = new ArrayList<>();
+            //查询需要修改的人口信息
+            List<ComMngPopulationDO> populationList = comMngPopulationDAO.selectList(new QueryWrapper<ComMngPopulationDO>().lambda()
+                    .eq(ComMngPopulationDO::getVillageId,villageDO.getVillageId())
+                    .eq(ComMngPopulationDO::getFloor,houseDO.getFloor())
+                    .eq(ComMngPopulationDO::getUnitNo,houseDO.getUnitNo())
+                    .eq(ComMngPopulationDO::getHouseNo,houseDO.getHouseNo()));
+            populationList.forEach(population -> {
+                ComMngPopulationDO populationDO = new ComMngPopulationDO();
+                populationDO.setId(population.getId());
+                populationDO.setAddress(address.toString());
+                populationDO.setHouseNo(editBuildingHouseDto.getHouseNo());
+                editPopulationList.add(populationDO);
+            });
+
+            houseDO.setHouseNo(editBuildingHouseDto.getHouseNo());
+            houseDO.setFloorNum(editBuildingHouseDto.getFloorNum());
+            comMngPopulationHouseDAO.updateById(houseDO);
+
+            if(!editPopulationList.isEmpty()){
+                comMngPopulationDAO.updateAll(editPopulationList);
+            }
+        }else{
+            return R.fail();
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R deleteBuildingHousePopulationAdmin(DeleteBuildingHousePopulationDto housePopulationDto){
+
+        ComMngPopulationHouseDO houseDO = comMngPopulationHouseDAO.selectById(housePopulationDto.getHouseId());
+        if(houseDO == null){
+            return R.fail("未查询到该户室");
+        }
+
+        if(housePopulationDto.getType().equals(DeleteBuildingHousePopulationDto.type.yz)){
+            ComMngPopulationHouseUserDO houseUserDO = comMngPopulationHouseUserDAO.selectOne(new QueryWrapper<ComMngPopulationHouseUserDO>().lambda()
+                    .eq(ComMngPopulationHouseUserDO::getHouseId,housePopulationDto.getHouseId())
+                    .eq(ComMngPopulationHouseUserDO::getPopulId,housePopulationDto.getPopulationId()));
+            if(houseUserDO != null){
+                houseUserDO.setRelationId(ComMngPopulationHouseUserDO.relationId.zuzhu);
+                houseUserDO.setUpdateAt(new Date());
+                comMngPopulationHouseUserDAO.updateById(houseUserDO);
+            }
+        }else if(housePopulationDto.getType().equals(DeleteBuildingHousePopulationDto.type.jzr)){
+            //清理人员和房屋关联关系
+            comMngPopulationHouseUserDAO.delete(new QueryWrapper<ComMngPopulationHouseUserDO>().lambda()
+                    .eq(ComMngPopulationHouseUserDO::getHouseId,housePopulationDto.getHouseId())
+                    .eq(ComMngPopulationHouseUserDO::getPopulId,housePopulationDto.getPopulationId()));
+
+            //查询该房屋是否还有人居住
+            Integer count = comMngPopulationHouseUserDAO.selectCount(new QueryWrapper<ComMngPopulationHouseUserDO>().lambda()
+                    .eq(ComMngPopulationHouseUserDO::getHouseId,housePopulationDto.getHouseId()));
+            if(count <= 0){
+                houseDO.setStatus(ComMngPopulationHouseDO.status.kongzhi);
+                comMngPopulationHouseDAO.updateById(houseDO);
+            }else{
+                //查询该房屋的居住人中是否还有租住的人
+                Integer zCount = comMngPopulationHouseUserDAO.selectCount(new QueryWrapper<ComMngPopulationHouseUserDO>().lambda()
+                        .eq(ComMngPopulationHouseUserDO::getHouseId,housePopulationDto.getHouseId())
+                        .eq(ComMngPopulationHouseUserDO::getRelationId,ComMngPopulationHouseUserDO.relationId.zuhu));
+                if(zCount <= 0){
+                    houseDO.setStatus(ComMngPopulationHouseDO.status.zizhu);
+                    comMngPopulationHouseDAO.updateById(houseDO);
+                }
+            }
+        }
+        return R.ok();
+    }
+
+    /**
+     * 根据小区id查询楼栋列表
+     * @param villageId 小区id
+     * @return  查询楼栋列表
+     */
+    @Override
+    public R getBuildListByVillageId(Long villageId) {
+        return R.ok(this.baseMapper.getBuildListByVillageId(villageId));
+    }
+
+    @Override
+    public R delete(Long id) {
+        return R.ok(this.baseMapper.deleteById(id));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActColumnServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActColumnServiceImpl.java
new file mode 100644
index 0000000..91462ba
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActColumnServiceImpl.java
@@ -0,0 +1,161 @@
+package com.panzhihua.service_community.service.impl;
+
+import static java.util.Objects.nonNull;
+import static org.apache.commons.lang3.StringUtils.isNotBlank;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.service_community.dao.ComActDAO;
+import com.panzhihua.service_community.model.dos.ComActDO;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActColumnVO;
+import com.panzhihua.service_community.dao.ComActAnnouncementDao;
+import com.panzhihua.service_community.dao.ComActColumnDao;
+import com.panzhihua.service_community.dao.ComActSocialWorkerDao;
+import com.panzhihua.service_community.entity.ComActAnnouncement;
+import com.panzhihua.service_community.entity.ComActColumn;
+import com.panzhihua.service_community.entity.ComActSocialWorker;
+import com.panzhihua.service_community.service.ComActColumnService;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+/**
+ * 分类列表(ComActColumn)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-11-01 14:38:25
+ */
+@Slf4j
+@Service
+public class ComActColumnServiceImpl extends ServiceImpl<ComActColumnDao, ComActColumn> implements ComActColumnService {
+    @Resource
+    private ComActColumnDao comActColumnDao;
+    @Resource
+    private ComActAnnouncementDao comActAnnouncementDao;
+    @Resource
+    private ComActSocialWorkerDao comActSocialWorkerDao;
+    @Resource
+    private ComActDAO comActDAO;
+    @Override
+    public R pageList(CommonPage commonPage) {
+        return R.ok(this.comActColumnDao.pageList(new Page(commonPage.getPage(),commonPage.getSize()),commonPage));
+    }
+
+    @Override
+    public R delete(Long id) {
+        if(!comActAnnouncementDao.selectList(new QueryWrapper<ComActAnnouncement>().lambda().eq(ComActAnnouncement::getColumnId,id)).isEmpty()){
+            return R.fail("当前类型无法删除,请先处理绑定数据");
+        }
+        ComActColumn comActColumn = comActColumnDao.selectById(id);
+        if (nonNull(comActColumn) && comActColumn.getType().equals(2)) {
+            //社工技能
+            updateWorkerSkill(id);
+        }
+        return R.ok(comActColumnDao.deleteById(id));
+    }
+
+    @Override
+    public R queryLevel(ComActColumnVO comActColumnVO) {
+        Integer type = comActColumnVO.getType();
+        Long communityId = comActColumnVO.getCommunityId();
+        if (nonNull(type) && type.equals(4) && nonNull(communityId)) {
+            ComActDO comActDO = comActDAO.selectById(communityId);
+            if (nonNull(comActDO)) {
+                comActColumnVO.setStreetId(comActDO.getStreetId());
+            }
+        }
+        return R.ok(this.comActColumnDao.queryLevel(comActColumnVO));
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comActColumnVO 实体对象
+     * @return 修改结果
+     */
+    @Override
+    public R updateColumn(ComActColumnVO comActColumnVO) {
+        ComActColumn comActColumn = this.baseMapper.selectById(comActColumnVO.getId());
+        BeanUtils.copyProperties(comActColumnVO, comActColumn);
+        int result = this.baseMapper.updateById(comActColumn);
+        if (result > 0) {
+            if (comActColumn.getType().equals(2)) {
+                //社工技能
+                updateWorkerSkill(comActColumn.getId());
+            }
+            return R.ok();
+        }
+        return R.fail("操作失败,请重新尝试");
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comActColumnVO 实体对象
+     * @return 新增结果
+     */
+    @Override
+    public R addColumn(ComActColumnVO comActColumnVO) {
+        ComActColumn comActColumn = new ComActColumn();
+        BeanUtils.copyProperties(comActColumnVO, comActColumn);
+        Long communityId = comActColumnVO.getCommunityId();
+        if (nonNull(communityId)) {
+            ComActDO comActDO = comActDAO.selectById(communityId);
+            if (nonNull(comActDO)) {
+                comActColumn.setStreetId(comActDO.getStreetId());
+            }
+        }
+        int result = this.baseMapper.insert(comActColumn);
+        if (result > 0) {
+            return R.ok();
+        }
+        return R.fail("操作失败,请重新尝试");
+    }
+
+    private void updateWorkerSkill(Long id) {
+        List<ComActSocialWorker> workerList = comActSocialWorkerDao.selectIncludeSkillWorkerList(id);
+        if (!workerList.isEmpty()) {
+            workerList.forEach(e -> {
+                String skillType = e.getSkillType();
+                if (isNotBlank(skillType)) {
+                    List<String> skillList = Arrays.asList(skillType.split(","));
+                    List<String> list = new ArrayList<String>(skillList);
+                    list.remove(id.toString());
+                    StringBuilder sb = new StringBuilder();
+                    StringBuilder sb1 = new StringBuilder();
+                    for (int i = 0; i < list.size(); i++) {
+                        String skillId = list.get(i);
+                        ComActColumn skillColumn = comActColumnDao.selectById(skillId);
+                        if (i < list.size() - 1) {
+                            sb.append(skillId);
+                            sb.append(",");
+                            sb1.append(skillColumn.getName());
+                            sb1.append(",");
+                        } else {
+                            sb.append(skillId);
+                            sb1.append(skillColumn.getName());
+                        }
+                    }
+                    e.setSkillType(sb.toString());
+                    e.setSkillTypeName(sb1.toString());
+                    comActSocialWorkerDao.updateById(e);
+                }
+            });
+        }
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActCommitteeServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActCommitteeServiceImpl.java
new file mode 100644
index 0000000..68d7db5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActCommitteeServiceImpl.java
@@ -0,0 +1,105 @@
+package com.panzhihua.service_community.service.impl;
+
+import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActCommiteeVO;
+import com.panzhihua.common.model.vos.user.AdministratorsUserVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.service_community.entity.ComActCommittee;
+import com.panzhihua.service_community.dao.ComActCommitteeDao;
+import com.panzhihua.service_community.entity.ComActSocialOrg;
+import com.panzhihua.service_community.entity.ComProperty;
+import com.panzhihua.service_community.service.ComActCommitteeService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+
+/**
+ * (ComActCommittee)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-09-17 13:55:44
+ */
+@Slf4j
+@Service
+public class ComActCommitteeServiceImpl extends ServiceImpl<ComActCommitteeDao, ComActCommittee> implements ComActCommitteeService {
+    @Resource
+    private ComActCommitteeDao comActCommitteeDao;
+    @Resource
+    private UserService userService;
+    @Override
+    public R pageList(CommonPage commonPage) {
+        return R.ok(this.comActCommitteeDao.pageList(new Page(commonPage.getPage(),commonPage.getSize()),commonPage));
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R insert(ComActCommiteeVO comActCommiteeVO) {
+        if(comActCommiteeVO!=null){
+            ComActCommittee comActCommittee=new ComActCommittee();
+            BeanUtils.copyProperties(comActCommiteeVO,comActCommittee);
+            AdministratorsUserVO administratorsUserVO=new AdministratorsUserVO();
+            administratorsUserVO.setType(3);
+            administratorsUserVO.setAccount(comActCommiteeVO.getAccount());
+            administratorsUserVO.setPassword(comActCommiteeVO.getPassword());
+            administratorsUserVO.setRoleId(comActCommiteeVO.getRoleId());
+            administratorsUserVO.setCommunityId(comActCommiteeVO.getCommunityId());
+            administratorsUserVO.setAreaId(comActCommiteeVO.getAreaId());
+            administratorsUserVO.setPhone(comActCommiteeVO.getPhone());
+            administratorsUserVO.setName(comActCommiteeVO.getName());
+            R r=userService.addUserBackstageProperty(administratorsUserVO);
+            if(R.isOk(r)){
+                comActCommittee.setUserId(Long.parseLong(r.getData().toString()));
+                comActCommittee.setCreateTime(DateUtil.date());
+                this.comActCommitteeDao.insert(comActCommittee);
+                return R.ok();
+            }
+            return R.fail("账号或手机号已存在");
+        }
+        return R.fail();
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R update(ComActCommiteeVO comActCommiteeVO) {
+        if(comActCommiteeVO!=null){
+                ComActCommittee comActCommittee=new ComActCommittee();
+                BeanUtils.copyProperties(comActCommiteeVO,comActCommittee);
+                if(comActCommiteeVO.getRoleId()!=null){
+                    ComActCommittee comPropertyBase=this.comActCommitteeDao.selectById(comActCommiteeVO.getId());
+                    AdministratorsUserVO administratorsUserVO=new AdministratorsUserVO();
+                    administratorsUserVO.setUserId(comPropertyBase.getUserId());
+                    administratorsUserVO.setLastLoginTime(DateUtil.date());
+                    administratorsUserVO.setRoleId(comActCommiteeVO.getRoleId());
+                    this.userService.putUserBackstage(administratorsUserVO);
+                }
+                this.comActCommitteeDao.updateById(comActCommittee);
+                return R.ok();
+        }
+        return R.fail();
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R delete(Long id) {
+        ComActCommittee comActCommittee=comActCommitteeDao.selectById(id);
+        if(comActCommittee!=null){
+            if(comActCommittee.getUserId()!=null){
+                AdministratorsUserVO administratorsUserVO=new AdministratorsUserVO();
+                administratorsUserVO.setUserId(comActCommittee.getUserId());
+                administratorsUserVO.setCommunityId(comActCommittee.getCommunityId());
+                userService.deleteUserBackstage(administratorsUserVO);
+                this.comActCommitteeDao.deleteById(id);
+                return R.ok();
+
+            }
+        }
+        return R.fail("用户账号错误");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDiscussOptionServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDiscussOptionServiceImpl.java
new file mode 100644
index 0000000..646e901
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDiscussOptionServiceImpl.java
@@ -0,0 +1,18 @@
+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.ComActDiscussOptionDAO;
+import com.panzhihua.service_community.model.dos.ComActDiscussOptionDO;
+import com.panzhihua.service_community.service.ComActDiscussOptionService;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 一起议选项
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-22 15:48
+ **/
+@Service
+public class ComActDiscussOptionServiceImpl extends ServiceImpl<ComActDiscussOptionDAO, ComActDiscussOptionDO>
+    implements ComActDiscussOptionService {}
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
new file mode 100644
index 0000000..dec89f4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDiscussServiceImpl.java
@@ -0,0 +1,1776 @@
+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 javax.validation.constraints.NotEmpty;
+
+import cn.hutool.core.util.DesensitizedUtil;
+import com.panzhihua.common.model.dtos.community.ComActDiscussVoteOptionDTO;
+import com.panzhihua.common.model.dtos.community.DiscussVoteOptionDTO;
+import com.panzhihua.common.model.dtos.community.PageVoteSituationDTO;
+import com.panzhihua.service_community.dao.ComPbMemberDAO;
+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.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.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: 议事投票
+ * @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
+    private ComActDiscussDAO comActDiscussDAO;
+    @Resource
+    private ComActDiscussOptionUserDAO comActDiscussOptionUserDAO;
+    @Resource
+    private ComActDiscussUserDAO comActDiscussUserDAO;
+    @Resource
+    private ComActDiscussOptionDAO comActDiscussOptionDAO;
+    @Resource
+    private ComActDiscussCommentUserDAO comActDiscussCommentUserDAO;
+    @Resource
+    private ComActDiscussOptionService comActDiscussOptionService;
+    @Resource
+    private SysConfMapper sysConfDao;
+    @Resource
+    private SysConfService sysConfService;
+    @Resource
+    private UserService userService;
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+    @Resource
+    private ComPbMemberDAO pbMemberDAO;
+
+    /**
+     * 议事投票-新增
+     *
+     * @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);
+        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) {
+            //如果是投票,需要把投票的选项存储
+            if (type.equals(2)) {
+                Long comActDiscussDO1Id = comActDiscussDO.getId();
+                List<ComActDiscussOptionDTO> discussOptions = comActDiscussDTO.getDiscussOptions();
+                List<ComActDiscussOptionDO> comActDiscussOptionDOS = new ArrayList<>();
+                discussOptions.forEach(s -> {
+                    ComActDiscussOptionDO comActDiscussOptionDO = new ComActDiscussOptionDO();
+                    comActDiscussOptionDO.setDiscussId(comActDiscussDO1Id);
+                    comActDiscussOptionDO.setOptionContent(s.getOptionContent());
+                    comActDiscussOptionDO.setOptionUrl(s.getOptionUrl());
+                    comActDiscussOptionDO.setNeedReason(s.getNeedReason());
+                    comActDiscussOptionDOS.add(comActDiscussOptionDO);
+                });
+                comActDiscussOptionService.saveBatch(comActDiscussOptionDOS);
+            }
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 小程序用户验证是否拥有发布权限
+     * @param comActDiscussDTO
+     * @return
+     */
+    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;
+                } else {
+                    if (!sysAllowedRoles.contains("1")) {
+                        boolean result = sysAllowedRoles.stream().anyMatch(role -> currentUserRoles.contains(role));
+                        if (!result) {
+                            checkResult = false;
+                        }
+                    }
+                }
+            }
+        }
+        return checkResult;
+    }
+
+    /**
+     * 议事投票-编辑
+     *
+     * @param comActDiscussDTO 请求参数
+     * @return 编辑结果
+     */
+    @Override
+    @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(nowDate);
+        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 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();
+        Integer num=comActDiscussDAO.getCommentNum(id+"");
+        comActDiscussVO.setCommentNum(num);
+        if (type.equals(ComActDiscussVO.type.tp)) {
+            //查询选项列表
+            List<ComActDiscussOptionVO> comActDiscussOptionList = comActDiscussOptionDAO.getDiscussOptionList(id);
+            comActDiscussOptionList.forEach(option -> {
+                if (option.getAllNum() ==null || option.getAllNum() == 0) {
+                    option.setPercent(new BigDecimal(0));
+                } else {
+                    //占比
+                    BigDecimal percent = BigDecimal.valueOf(option.getNum()).divide(BigDecimal.valueOf(option.getAllNum()), 2, RoundingMode.HALF_UP)
+                            .multiply(BigDecimal.valueOf(100)).setScale(0);
+                    option.setPercent(percent);
+                }
+            });
+            comActDiscussVO.setComActDiscussOptionVOS(comActDiscussOptionList);
+        }
+        Long userId = comActDiscussDO.getUserId();
+        LoginUserInfoVO loginUserInfoVO = comActDiscussDAO.selectUserByUserId(userId);
+        comActDiscussVO.setUserName(loginUserInfoVO.getName());
+        comActDiscussVO.setUserNickName(loginUserInfoVO.getNickName());
+        comActDiscussVO.setImageUrl(loginUserInfoVO.getImageUrl());
+
+        //分页查询评论列表
+        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());
+        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)));
+        }
+        return R.ok(comActDiscussVO);
+    }
+
+    /**
+     * 议事投票-详情 脱敏
+     *
+     * @param discussDetailDTO 请求参数
+     * @return ComActDiscussVO
+     */
+    @Override
+    public R detailDiscussDesensitize(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();
+        Integer num=comActDiscussDAO.getCommentNum(id+"");
+        comActDiscussVO.setCommentNum(num);
+        if (type.equals(ComActDiscussVO.type.tp)) {
+            //查询选项列表
+            List<ComActDiscussOptionVO> comActDiscussOptionList = comActDiscussOptionDAO.getDiscussOptionList(id);
+            comActDiscussOptionList.forEach(option -> {
+                if (option.getAllNum() ==null || option.getAllNum() == 0) {
+                    option.setPercent(new BigDecimal(0));
+                } else {
+                    //占比
+                    BigDecimal percent = BigDecimal.valueOf(option.getNum()).divide(BigDecimal.valueOf(option.getAllNum()), 2, RoundingMode.HALF_UP)
+                            .multiply(BigDecimal.valueOf(100)).setScale(0);
+                    option.setPercent(percent);
+                }
+            });
+            comActDiscussVO.setComActDiscussOptionVOS(comActDiscussOptionList);
+        }
+        Long userId = comActDiscussDO.getUserId();
+        LoginUserInfoVO loginUserInfoVO = comActDiscussDAO.selectUserByUserId(userId);
+        comActDiscussVO.setUserName(DesensitizedUtil.chineseName(loginUserInfoVO.getName()));
+        comActDiscussVO.setUserNickName(loginUserInfoVO.getNickName());
+        comActDiscussVO.setImageUrl(loginUserInfoVO.getImageUrl());
+
+        //分页查询评论列表
+        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());
+        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)));
+        }
+        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) {
+            comActDiscussDAO.incrCommentAndJoinNumById(id, false,false);
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 议事投票-回复
+     *
+     * @param comActDiscussCommentDTO 评论内容
+     * @return 回复结果
+     */
+    @Override
+    public R addDiscussComment(ComActDiscussCommentDTO comActDiscussCommentDTO) {
+        Long discussId = comActDiscussCommentDTO.getDiscussId();
+        ComActDiscussDO comActDiscussDO = comActDiscussDAO.selectById(discussId);
+        if (ObjectUtils.isEmpty(comActDiscussDO)) {
+            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 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,true);
+            } else {
+                comActDiscussDAO.incrCommentAndJoinNumById(discussId, true,true);
+            }
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 议事投票-分页查询
+     *
+     * @param pageComActDiscussDTO 查询参数
+     * @return ComActDiscussVO
+     */
+    @Override
+    public R pageDiscuss(PageComActDiscussDTO pageComActDiscussDTO) {
+        IPage<ComActDiscussVO> iPage = comActDiscussDAO.pageDiscuss(new Page<>(pageComActDiscussDTO.getPageNum(), pageComActDiscussDTO.getPageSize()), pageComActDiscussDTO);
+        return R.ok(iPage);
+
+    }
+
+    /**
+     * 议事投票-后台分页查询
+     *
+     * @param pageComActDiscussDTO 请求参数
+     * @return 议事投票列表
+     */
+    @Override
+    public R pageDiscussAdmin(PageComActDiscussDTO pageComActDiscussDTO) {
+        IPage<ComActDiscussVO> comActDiscussVOIPage=comActDiscussDAO.pageDiscussAdmin(new Page<>(pageComActDiscussDTO.getPageNum(), pageComActDiscussDTO.getPageSize()), pageComActDiscussDTO);
+        List<ComActDiscussVO> records = comActDiscussVOIPage.getRecords();
+        if (!ObjectUtils.isEmpty(records)) {
+            records.forEach(comActDiscussVO -> {
+                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)));
+                }
+            });
+        }
+        return R.ok(comActDiscussVOIPage);
+    }
+
+    /**
+     * 议事投票-评论-查看
+     *
+     * @param id 主键
+     * @return 详情 ComActDiscussCommentVO
+     */
+    @Override
+    public R detailDiscusscomment(Long id) {
+        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());
+        return R.ok(comActDiscussCommentVO);
+    }
+
+    /**
+     * 议事投票评论详情
+     *
+     * @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
+    public R putDiscussCommentTop(Long id) {
+        ComActDiscussCommentDO comActDiscussCommentDO = comActDiscussCommentDAO.selectById(id);
+        if (ObjectUtils.isEmpty(comActDiscussCommentDO)) {
+            return R.fail("评论不存在");
+        }
+        Long parentId = comActDiscussCommentDO.getParentId();
+        if (parentId.intValue() != 0) {
+            return R.fail("二级评论不能置顶");
+        }
+        Long discussId = comActDiscussCommentDO.getDiscussId();
+        ComActDiscussCommentDO comActDiscussCommentDO1 = new ComActDiscussCommentDO();
+        comActDiscussCommentDO1.setIsTopping(0);
+        comActDiscussCommentDAO.update(comActDiscussCommentDO1,
+                new UpdateWrapper<ComActDiscussCommentDO>().lambda().eq(ComActDiscussCommentDO::getDiscussId, discussId));
+        comActDiscussCommentDO1.setIsTopping(1);
+        comActDiscussCommentDO1.setId(id);
+        int update = comActDiscussCommentDAO.updateById(comActDiscussCommentDO1);
+        if (update > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 议事投票-评论-回复
+     *
+     * @param comActDiscussCommentDTO 回复内容
+     * @return 回复结果
+     */
+    @Override
+    public R addDiscussCommentBack(ComActDiscussCommentDTO comActDiscussCommentDTO) {
+        Long id = comActDiscussCommentDTO.getId();
+        ComActDiscussCommentDO comActDiscussCommentDO = comActDiscussCommentDAO.selectById(id);
+        if (ObjectUtils.isEmpty(comActDiscussCommentDO)) {
+            return R.fail("评论不存在");
+        }
+        Long discussId = comActDiscussCommentDO.getDiscussId();
+        ComActDiscussDO comActDiscussDO = comActDiscussDAO.selectById(discussId);
+        if (ObjectUtils.isEmpty(comActDiscussDO)) {
+            return R.fail("议事投票不存在");
+        }
+        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 (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,true);
+            } else {
+                comActDiscussDAO.incrCommentAndJoinNumById(discussId, true,true);
+            }
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 议事投票-评论-分页查询
+     *
+     * @param pageComActDiscussCommentDTO 分页查询参数
+     * @return ComActDiscussCommentVO
+     */
+    @Override
+    public R pageDiscussComment(PageComActDiscussCommentDTO pageComActDiscussCommentDTO) {
+        IPage<ComActDiscussCommentVO> iPage = comActDiscussDAO.pageDiscussComment(new Page<>(pageComActDiscussCommentDTO.getPageNum(), pageComActDiscussCommentDTO.getPageSize()), pageComActDiscussCommentDTO);
+        return R.ok(iPage);
+    }
+
+    /**
+     * 议事投票-评论-后台分页查询
+     *
+     * @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);
+    }
+
+    @Override
+    public R deleteId(String id) {
+        return R.ok(comActDiscussDAO.deleteId(id));
+    }
+
+    /**
+     * 议事投票-分页查询 小程序
+     *
+     * @param pageComActDiscussDTO 查询参数
+     * @return ComActDiscussVO 分页
+     */
+    @Override
+    public R pageDiscussApplets(PageComActDiscussDTO pageComActDiscussDTO) {
+        Page page = new Page<>();
+        Long pageNum = pageComActDiscussDTO.getPageNum();
+        Long pageSize = pageComActDiscussDTO.getPageSize();
+        Long loginUserId = pageComActDiscussDTO.getLoginUserId();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        pageComActDiscussDTO.setIsPbMember(0);
+        pageComActDiscussDTO.setIsVolunteer(0);
+        if (nonNull(loginUserId)) {
+            pageComActDiscussDTO.setIsPbMember(pbMemberDAO.checkIsPbMember(loginUserId) > 0 ? 1 : 0);
+            pageComActDiscussDTO.setIsVolunteer(pbMemberDAO.checkIsVolunteer(loginUserId) > 0 ? 1 : 0);
+        }
+        IPage<ComActDiscussVO> iPage = comActDiscussDAO.pageDiscussApplets(page, pageComActDiscussDTO);
+        List<ComActDiscussVO> records = iPage.getRecords();
+        if (!ObjectUtils.isEmpty(records)) {
+            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));
+                    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));
+                        ComActDiscussOptionVO comActDiscussOptionVO = new ComActDiscussOptionVO();
+                        BeanUtils.copyProperties(comActDiscussOptionDO, comActDiscussOptionVO);
+                        comActDiscussOptionVO.setNum(selectCount);
+
+                        if (loginUserId != null) {
+                            // 判断选项是否已投票
+                            int haveVote =
+                                    comActDiscussOptionUserDAO.selectHaveVotes(comActDiscussOptionDO.getId(), loginUserId);
+                            votes.add(haveVote);
+                            comActDiscussOptionVO.setHaveVote(haveVote > 0 ? 1 : 0);
+                        }
+                        comActDiscussOptionVOS.add(comActDiscussOptionVO);
+                    });
+                    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));
+                    if (integer > 0) {
+                        comActDiscussVO.setHaveSign(1);
+                    } else {
+                        comActDiscussVO.setHaveSign(0);
+                    }
+                    // 判断是否已经投票
+                    int haveVote = comActDiscussOptionUserDAO.selectHaveVote(id, loginUserId);
+                    comActDiscussVO.setHaveVote(haveVote > 0 ? 1 : 0);
+                }
+            });
+        }
+        return R.ok(iPage);
+    }
+
+    /**
+     * 议事投票-分页查询 小程序
+     *
+     * @param pageComActDiscussDTO 查询参数
+     * @return ComActDiscussVO 分页
+     */
+    @Override
+    public R pageDiscussAppletsDesensitize(PageComActDiscussDTO pageComActDiscussDTO) {
+        Page page = new Page<>();
+        Long pageNum = pageComActDiscussDTO.getPageNum();
+        Long pageSize = pageComActDiscussDTO.getPageSize();
+        Long loginUserId = pageComActDiscussDTO.getLoginUserId();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        pageComActDiscussDTO.setIsPbMember(0);
+        pageComActDiscussDTO.setIsVolunteer(0);
+        if (nonNull(loginUserId)) {
+            pageComActDiscussDTO.setIsPbMember(pbMemberDAO.checkIsPbMember(loginUserId) > 0 ? 1 : 0);
+            pageComActDiscussDTO.setIsVolunteer(pbMemberDAO.checkIsVolunteer(loginUserId) > 0 ? 1 : 0);
+        }
+        IPage<ComActDiscussVO> iPage = comActDiscussDAO.pageDiscussApplets(page, pageComActDiscussDTO);
+        List<ComActDiscussVO> records = iPage.getRecords();
+        if (!ObjectUtils.isEmpty(records)) {
+            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));
+                    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));
+                        ComActDiscussOptionVO comActDiscussOptionVO = new ComActDiscussOptionVO();
+                        BeanUtils.copyProperties(comActDiscussOptionDO, comActDiscussOptionVO);
+                        comActDiscussOptionVO.setNum(selectCount);
+
+                        if (loginUserId != null) {
+                            // 判断选项是否已投票
+                            int haveVote =
+                                    comActDiscussOptionUserDAO.selectHaveVotes(comActDiscussOptionDO.getId(), loginUserId);
+                            votes.add(haveVote);
+                            comActDiscussOptionVO.setHaveVote(haveVote > 0 ? 1 : 0);
+                        }
+                        comActDiscussOptionVOS.add(comActDiscussOptionVO);
+                    });
+                    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);
+                        }
+                    }
+                    comActDiscussVO.setUserName(DesensitizedUtil.chineseName(comActDiscussVO.getUserName()));
+                    //填充投票记录列表
+                    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));
+                    if (integer > 0) {
+                        comActDiscussVO.setHaveSign(1);
+                    } else {
+                        comActDiscussVO.setHaveSign(0);
+                    }
+                    // 判断是否已经投票
+                    int haveVote = comActDiscussOptionUserDAO.selectHaveVote(id, loginUserId);
+                    comActDiscussVO.setHaveVote(haveVote > 0 ? 1 : 0);
+                }
+            });
+        }
+        return R.ok(iPage);
+    }
+
+    /**
+     * 判断discuss状态是否正确
+     * @param comActDiscussVO
+     */
+    private void checkDiscussStatusIsCorrect(ComActDiscussVO comActDiscussVO) {
+        //判断discuss状态是否正确
+        if(comActDiscussVO.getEndTime() != null){
+            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 操作类型
+     * @return 操作结果
+     */
+    @Override
+    public R putDiscussUser(ComActDiscussUserDTO comActDiscussUserDTO) {
+        Integer type = comActDiscussUserDTO.getType();
+        int num = 0;
+        ComActDiscussUserDO comActDiscussUserDO = new ComActDiscussUserDO();
+        BeanUtils.copyProperties(comActDiscussUserDTO, comActDiscussUserDO);
+        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()));
+        }
+        if (num > 0) {
+            //点赞成功 总数+1 || 取消点赞成功 总数-1
+            comActDiscussDAO.incrOrDecrFabulousNumByType(comActDiscussUserDTO.getDiscussId(), isIncr);
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 议事投票-评论-分页查询 小程序
+     *
+     * @param pageComActDiscussCommentDTO 分页参数
+     * @return ComActDiscussCommentVO
+     */
+    @Override
+    public R pageDiscussCommentApplets(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.pageDiscussCommentApplets(page, pageComActDiscussCommentDTO);
+        List<ComActDiscussCommentVO> records = iPage.getRecords();
+        if (!ObjectUtils.isEmpty(records)) {
+            records.forEach(comActDiscussCommentVO -> {
+                List<ComActDiscussCommentVO> comActDiscussCommentVOList = new ArrayList<>();
+                Long id = comActDiscussCommentVO.getId();
+                comActDiscussCommentVOList = comActDiscussCommentDAO.selectChilds(id);
+                if (!ObjectUtils.isEmpty(comActDiscussCommentVOList)) {
+                    List<ComActDiscussCommentVO> comActDiscussCommentVOS = comActDiscussCommentVOList;
+                    comActDiscussCommentVOList.forEach(comActDiscussCommentVO1 -> {
+                        Long parentId = comActDiscussCommentVO1.getParentId();
+                        List<ComActDiscussCommentVO> collect = comActDiscussCommentVOS.stream()
+                                .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();
+                            comActDiscussCommentVO1.setUserNameBack(userName);
+                            comActDiscussCommentVO1.setUserNickNameBack(userNickName);
+                        }
+                        List<ComActDiscussCommentVO> collect1 = records.stream()
+                                .filter(comActDiscussCommentVO2 -> comActDiscussCommentVO2.getId().equals(parentId))
+                                .collect(Collectors.toList());
+                        if (!ObjectUtils.isEmpty(collect1)) {
+                            ComActDiscussCommentVO comActDiscussCommentVOFirst = collect1.get(0);
+                            String userName = comActDiscussCommentVOFirst.getUserName();
+                            String userNickName = comActDiscussCommentVOFirst.getUserNickName();
+                            comActDiscussCommentVO1.setUserNameBack(userName);
+                            comActDiscussCommentVO1.setUserNickNameBack(userNickName);
+                        }
+                        if (pageComActDiscussCommentDTO.getLoginUserId() != null
+                                && !pageComActDiscussCommentDTO.getLoginUserId().equals(0L)) {
+                            Integer integer = comActDiscussCommentUserDAO
+                                    .selectCount(new QueryWrapper<ComActDiscussCommentUserDO>().lambda()
+                                            .eq(ComActDiscussCommentUserDO::getDisscussCommentId,
+                                                    comActDiscussCommentVO1.getId())
+                                            .eq(ComActDiscussCommentUserDO::getUserId,
+                                                    pageComActDiscussCommentDTO.getLoginUserId()));
+                            if (integer > 0) {
+                                comActDiscussCommentVO1.setHaveSign(1);
+                            } else {
+                                comActDiscussCommentVO1.setHaveSign(0);
+                            }
+                        }
+//                        if(StringUtils.isEmpty(comActDiscussCommentVO1.getUserNickNameBack())){
+//                            comActDiscussCommentVO1.setUserNickNameBack("社区管理员");
+//                        }
+                    });
+                    comActDiscussCommentVO.setComActDiscussCommentVOList(comActDiscussCommentVOList);
+                }
+                if (pageComActDiscussCommentDTO.getLoginUserId() != null
+                        && !pageComActDiscussCommentDTO.getLoginUserId().equals(0L)) {
+                    Integer integer =
+                            comActDiscussCommentUserDAO.selectCount(new QueryWrapper<ComActDiscussCommentUserDO>().lambda()
+                                    .eq(ComActDiscussCommentUserDO::getDisscussCommentId, comActDiscussCommentVO.getId())
+                                    .eq(ComActDiscussCommentUserDO::getUserId, pageComActDiscussCommentDTO.getLoginUserId()));
+                    if (integer > 0) {
+                        comActDiscussCommentVO.setHaveSign(1);
+                    } else {
+                        comActDiscussCommentVO.setHaveSign(0);
+                    }
+                }
+
+                // 判断当前评论是否是社区管理员评论
+                if (!comActDiscussCommentVO.getUserType().equals(1)) {
+                    comActDiscussCommentVO.setUserNickName("社区管理员");
+                }
+            });
+        }
+        return R.ok(iPage);
+    }
+
+ /**
+     * 议事投票-评论-分页查询 小程序
+     *
+     * @param pageComActDiscussCommentDTO 分页参数
+     * @return ComActDiscussCommentVO
+     */
+    @Override
+    public R pageDiscussCommentAppletsDesensitize(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.pageDiscussCommentApplets(page, pageComActDiscussCommentDTO);
+        List<ComActDiscussCommentVO> records = iPage.getRecords();
+        if (!ObjectUtils.isEmpty(records)) {
+            records.forEach(comActDiscussCommentVO -> {
+                List<ComActDiscussCommentVO> comActDiscussCommentVOList = new ArrayList<>();
+                Long id = comActDiscussCommentVO.getId();
+                comActDiscussCommentVO.setPhone(DesensitizedUtil.mobilePhone(comActDiscussCommentVO.getPhone()));
+                comActDiscussCommentVO.setUserName(DesensitizedUtil.chineseName(comActDiscussCommentVO.getUserName()));
+                comActDiscussCommentVO.setUserNameBack(DesensitizedUtil.chineseName(comActDiscussCommentVO.getUserNameBack()));
+                comActDiscussCommentVOList = comActDiscussCommentDAO.selectChilds(id);
+                if (!ObjectUtils.isEmpty(comActDiscussCommentVOList)) {
+                    List<ComActDiscussCommentVO> comActDiscussCommentVOS = comActDiscussCommentVOList;
+                    comActDiscussCommentVOList.forEach(comActDiscussCommentVO1 -> {
+                        Long parentId = comActDiscussCommentVO1.getParentId();
+                        List<ComActDiscussCommentVO> collect = comActDiscussCommentVOS.stream()
+                                .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();
+                            comActDiscussCommentVO1.setUserNameBack(userName);
+                            comActDiscussCommentVO1.setUserNickNameBack(userNickName);
+                        }
+                        List<ComActDiscussCommentVO> collect1 = records.stream()
+                                .filter(comActDiscussCommentVO2 -> comActDiscussCommentVO2.getId().equals(parentId))
+                                .collect(Collectors.toList());
+                        if (!ObjectUtils.isEmpty(collect1)) {
+                            ComActDiscussCommentVO comActDiscussCommentVOFirst = collect1.get(0);
+                            String userName = comActDiscussCommentVOFirst.getUserName();
+                            String userNickName = comActDiscussCommentVOFirst.getUserNickName();
+                            comActDiscussCommentVO1.setUserNameBack(userName);
+                            comActDiscussCommentVO1.setUserNickNameBack(userNickName);
+                        }
+                        comActDiscussCommentVO1.setPhone(DesensitizedUtil.mobilePhone(comActDiscussCommentVO1.getPhone()));
+                        comActDiscussCommentVO1.setUserName(DesensitizedUtil.chineseName(comActDiscussCommentVO1.getUserName()));
+                        comActDiscussCommentVO1.setUserNameBack(DesensitizedUtil.chineseName(comActDiscussCommentVO1.getUserNameBack()));
+                        if (pageComActDiscussCommentDTO.getLoginUserId() != null
+                                && !pageComActDiscussCommentDTO.getLoginUserId().equals(0L)) {
+                            Integer integer = comActDiscussCommentUserDAO
+                                    .selectCount(new QueryWrapper<ComActDiscussCommentUserDO>().lambda()
+                                            .eq(ComActDiscussCommentUserDO::getDisscussCommentId,
+                                                    comActDiscussCommentVO1.getId())
+                                            .eq(ComActDiscussCommentUserDO::getUserId,
+                                                    pageComActDiscussCommentDTO.getLoginUserId()));
+                            if (integer > 0) {
+                                comActDiscussCommentVO1.setHaveSign(1);
+                            } else {
+                                comActDiscussCommentVO1.setHaveSign(0);
+                            }
+                        }
+//                        if(StringUtils.isEmpty(comActDiscussCommentVO1.getUserNickNameBack())){
+//                            comActDiscussCommentVO1.setUserNickNameBack("社区管理员");
+//                        }
+                    });
+                    comActDiscussCommentVO.setComActDiscussCommentVOList(comActDiscussCommentVOList);
+                }
+                if (pageComActDiscussCommentDTO.getLoginUserId() != null
+                        && !pageComActDiscussCommentDTO.getLoginUserId().equals(0L)) {
+                    Integer integer =
+                            comActDiscussCommentUserDAO.selectCount(new QueryWrapper<ComActDiscussCommentUserDO>().lambda()
+                                    .eq(ComActDiscussCommentUserDO::getDisscussCommentId, comActDiscussCommentVO.getId())
+                                    .eq(ComActDiscussCommentUserDO::getUserId, pageComActDiscussCommentDTO.getLoginUserId()));
+                    if (integer > 0) {
+                        comActDiscussCommentVO.setHaveSign(1);
+                    } else {
+                        comActDiscussCommentVO.setHaveSign(0);
+                    }
+                }
+
+                // 判断当前评论是否是社区管理员评论
+                if (!comActDiscussCommentVO.getUserType().equals(1)) {
+                    comActDiscussCommentVO.setUserNickName("社区管理员");
+                }
+            });
+        }
+        return R.ok(iPage);
+    }
+
+    /**
+     * 议事投票-详情 小程序
+     *
+     * @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("议事投票不存在");
+        }
+        ComActDiscussVO comActDiscussVO = new ComActDiscussVO();
+        BeanUtils.copyProperties(comActDiscussDO, comActDiscussVO);
+        comActDiscussVO.setSignNum(comActDiscussDO.getFabulousNum());
+        Integer type = comActDiscussVO.getType();
+        Integer num=comActDiscussDAO.getCommentNum(id+"");
+        comActDiscussVO.setCommentNum(num);
+        if (type.equals(2)) {
+            List<ComActDiscussOptionDO> comActDiscussOptionDOS = comActDiscussOptionDAO.selectList(
+                    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));
+                ComActDiscussOptionVO comActDiscussOptionVO = new ComActDiscussOptionVO();
+                BeanUtils.copyProperties(comActDiscussOptionDO, comActDiscussOptionVO);
+                comActDiscussOptionVO.setNum(selectCount);
+                if (loginUserId != null && !loginUserId.equals(0L)) {
+                    // 判断选项是否已投票
+                    int haveVote =
+                            comActDiscussOptionUserDAO.selectHaveVotes(comActDiscussOptionDO.getId(), loginUserId);
+                    votes.add(haveVote);
+                    comActDiscussOptionVO.setHaveVote(haveVote > 0 ? 1 : 0);
+                }
+                comActDiscussOptionVOS.add(comActDiscussOptionVO);
+            });
+            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);
+        if (loginUserInfoVO != null) {
+            comActDiscussVO.setUserName(loginUserInfoVO.getName());
+            if (StringUtils.isEmpty(loginUserInfoVO.getNickName())) {
+                comActDiscussVO.setUserNickName(loginUserInfoVO.getName());
+            } else {
+                comActDiscussVO.setUserNickName(loginUserInfoVO.getNickName());
+            }
+            comActDiscussVO.setImageUrl(loginUserInfoVO.getImageUrl());
+            comActDiscussVO.setUserType(loginUserInfoVO.getType());
+        }
+        Long communityId = comActDiscussDO.getCommunityId();
+        Integer type1 = loginUserInfoVO.getType();
+        if (type1.intValue() > 1) {
+            ComActVO comActVO = comActDiscussDAO.selectCommunity(communityId);
+            comActDiscussVO.setUserName(comActVO.getName());
+            comActDiscussVO.setUserNickName(comActVO.getName());
+        }
+        if (loginUserId != null && !loginUserId.equals(0L)) {
+            ComActDiscussVO comActDiscussVO1 = comActDiscussDAO.selectHaveSignAndHaveVote(id, loginUserId);
+            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 id          主键
+     * @param loginUserId 登录用户主键
+     * @return ComActDiscussVO
+     */
+    @Override
+    public R detailDiscussAppletsDesensitize(Long id, Long loginUserId) {
+        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();
+        Integer num=comActDiscussDAO.getCommentNum(id+"");
+        comActDiscussVO.setCommentNum(num);
+        if (type.equals(2)) {
+            List<ComActDiscussOptionDO> comActDiscussOptionDOS = comActDiscussOptionDAO.selectList(
+                    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));
+                ComActDiscussOptionVO comActDiscussOptionVO = new ComActDiscussOptionVO();
+                BeanUtils.copyProperties(comActDiscussOptionDO, comActDiscussOptionVO);
+                comActDiscussOptionVO.setNum(selectCount);
+                if (loginUserId != null && !loginUserId.equals(0L)) {
+                    // 判断选项是否已投票
+                    int haveVote =
+                            comActDiscussOptionUserDAO.selectHaveVotes(comActDiscussOptionDO.getId(), loginUserId);
+                    votes.add(haveVote);
+                    comActDiscussOptionVO.setHaveVote(haveVote > 0 ? 1 : 0);
+                }
+                comActDiscussOptionVOS.add(comActDiscussOptionVO);
+            });
+            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);
+        if (loginUserInfoVO != null) {
+            comActDiscussVO.setUserName(DesensitizedUtil.chineseName(loginUserInfoVO.getName()));
+            if (StringUtils.isEmpty(loginUserInfoVO.getNickName())) {
+                comActDiscussVO.setUserNickName(DesensitizedUtil.chineseName(loginUserInfoVO.getName()));
+            } else {
+                comActDiscussVO.setUserNickName(loginUserInfoVO.getNickName());
+            }
+            comActDiscussVO.setImageUrl(loginUserInfoVO.getImageUrl());
+            comActDiscussVO.setUserType(loginUserInfoVO.getType());
+        }
+        Long communityId = comActDiscussDO.getCommunityId();
+        Integer type1 = loginUserInfoVO.getType();
+        if (type1.intValue() > 1) {
+            ComActVO comActVO = comActDiscussDAO.selectCommunity(communityId);
+            comActDiscussVO.setUserName(comActVO.getName());
+            comActDiscussVO.setUserNickName(comActVO.getName());
+        }
+        if (loginUserId != null && !loginUserId.equals(0L)) {
+            ComActDiscussVO comActDiscussVO1 = comActDiscussDAO.selectHaveSignAndHaveVote(id, loginUserId);
+            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 discussVoteOptionDTO 投票信息
+     * @return 投票结果
+     */
+    @Override
+    public R addDiscussOptionUser(DiscussVoteOptionDTO discussVoteOptionDTO) {
+        List<ComActDiscussVoteOptionDTO> options = discussVoteOptionDTO.getOptions();
+        Long discussOptionId = options.get(0).getId();
+        Long userId = discussVoteOptionDTO.getUserId();
+        ComActDiscussOptionDO comActDiscussOptionDO = comActDiscussOptionDAO.selectById(discussOptionId);
+        if (ObjectUtils.isEmpty(comActDiscussOptionDO)) {
+            return R.fail("选项不存在");
+        }
+        // Long discussId = comActDiscussOptionDO.getDiscussId();
+        // List<ComActDiscussOptionDO> comActDiscussOptionDOS = comActDiscussOptionDAO.selectList(new
+        // QueryWrapper<ComActDiscussOptionDO>().lambda().eq(ComActDiscussOptionDO::getDiscussId, discussId));
+        // List<Long> longList=comActDiscussOptionDOS.stream().map(comActDiscussOptionDO1 ->
+        // comActDiscussOptionDO1.getId()).collect(Collectors.toList());
+        Long discussId = comActDiscussOptionDO.getDiscussId();
+        ComActDiscussDO comActDiscussDO = comActDiscussDAO.selectById(comActDiscussOptionDO.getDiscussId());
+        if (isNull(comActDiscussOptionDO)) {
+            return R.fail("投票主题不存在");
+        }
+        boolean isRepeat = comActDiscussDO.getIsRepeat().intValue() == 1;
+        int usableVoteVotes = comActDiscussDO.getCount().intValue();
+        int currentVoteNum = options.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<>();
+        options.forEach(option -> {
+            ComActDiscussOptionUserDO comActDiscussOptionUserDO = new ComActDiscussOptionUserDO();
+            comActDiscussOptionUserDO.setUserId(userId);
+            comActDiscussOptionUserDO.setDiscussOptionId(option.getId());
+            comActDiscussOptionUserDO.setDiscussId(discussId);
+            comActDiscussOptionUserDO.setSignUrl(option.getSignUrl());
+            comActDiscussOptionUserDO.setReason(option.getReason());
+            comActDiscussOptionUserDAO.insert(comActDiscussOptionUserDO);
+        });
+        return R.ok();
+    }
+
+    /**
+     * 议事投票-评论-点赞、取消点赞
+     *
+     * @param comActDiscussCommentUserDTO 评论点赞
+     * @return 点赞结果
+     */
+    @Override
+    public R putDiscussCommentUser(ComActDiscussCommentUserDTO comActDiscussCommentUserDTO) {
+        ComActDiscussCommentDO comActDiscussCommentDO =
+                comActDiscussCommentDAO.selectById(comActDiscussCommentUserDTO.getId());
+        if (ObjectUtils.isEmpty(comActDiscussCommentDO)) {
+            return R.fail("评论不存在");
+        }
+        Integer type = comActDiscussCommentUserDTO.getType();
+        int num = 0;
+        if (type.intValue() == 1) {
+            ComActDiscussCommentUserDO comActDiscussCommentUserDO = new ComActDiscussCommentUserDO();
+            comActDiscussCommentUserDO.setUserId(comActDiscussCommentUserDTO.getUserId());
+            comActDiscussCommentUserDO.setDisscussCommentId(comActDiscussCommentUserDTO.getId());
+            num = comActDiscussCommentUserDAO.insert(comActDiscussCommentUserDO);
+        } else {
+            num = comActDiscussCommentUserDAO.delete(new QueryWrapper<ComActDiscussCommentUserDO>().lambda()
+                    .eq(ComActDiscussCommentUserDO::getUserId, comActDiscussCommentUserDTO.getUserId())
+                    .eq(ComActDiscussCommentUserDO::getDisscussCommentId, comActDiscussCommentUserDTO.getId()));
+        }
+        if (num > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 工作大屏-议事投票列表
+     *
+     * @param discussListDTO 请求参数
+     * @return 议事投票列表
+     */
+    @Override
+    public R getScreenDiscussList(ScreenDiscussListDTO discussListDTO) {
+        IPage<DiscussListVO> discussListVOIPage = comActDiscussDAO
+                .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()));
+                discussListVO.setCommentCount(integer);
+                Integer integer1 = comActDiscussUserDAO.selectCount(new QueryWrapper<ComActDiscussUserDO>().lambda()
+                        .eq(ComActDiscussUserDO::getDiscussId, discussListVO.getId()));
+                discussListVO.setFabulousCount(integer1);
+
+                if (discussListVO.getType().equals(ScreenDiscussListDTO.type.tp)) {// 投票
+                    List<ComActDiscussOptionVO> discussOptionList =
+                            comActDiscussDAO.getScreenDiscussOptionList(discussListVO.getId());
+                    if (!discussOptionList.isEmpty()) {
+                        discussListVO.setDiscussOptionList(discussOptionList);
+                    }
+                }
+            });
+        }
+        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));
+    }
+
+    /**
+     * 投票情况-分页查询
+     * @param pageVoteSituationDTO
+     * @return
+     */
+    @Override
+    public R pageVoteSituation(PageVoteSituationDTO pageVoteSituationDTO) {
+        Page page = new Page<>();
+        page.setCurrent(pageVoteSituationDTO.getPageNum());
+        page.setSize(pageVoteSituationDTO.getPageSize());
+        return R.ok(comActDiscussOptionUserDAO.pageVoteSituation(page, pageVoteSituationDTO));
+    }
+
+    /**
+     * 投票情况详情
+     * @param optionUserId
+     * @return
+     */
+    @Override
+    public R detailVoteSituation(Long optionUserId) {
+        return R.ok(comActDiscussOptionUserDAO.detailVoteSituation(optionUserId));
+    }
+
+    /**
+     * 将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();
+                List<String> idList = new ArrayList<>();
+                while (iterator.hasNext()) {
+                    String next = iterator.next();
+                    String key = String.join("_", DISCUSS_VIEW_NUM_PREFIX, next);
+                    if (stringRedisTemplate.hasKey(key)) {
+                        idList.add(next);
+                        viewNumKeys.add(key);
+                    }
+                }
+
+                ValueOperations opsForValue = stringRedisTemplate.opsForValue();
+                List<String> viewNumList = opsForValue.multiGet(viewNumKeys);
+
+                //待处理集合,以key-value/discussId-viewNum 存放
+                HashMap<Long, Integer> needDealMap = new HashMap<>();
+                if (nonNull(idList) && !idList.isEmpty()) {
+                    log.error("一起议id列表:" + idList.toString());
+                    log.error("一起议浏览量:" + viewNumList.toString());
+                    for (String discussId : idList) {
+                        try {
+                            needDealMap.put(Long.parseLong(discussId), Integer.parseInt(viewNumList.get(0)));
+                            viewNumList.remove(0);
+                        } catch (IndexOutOfBoundsException e) {
+                            log.error("数据异常:" + discussId, e.getMessage());
+                            //数据存在异常了,跳过,继续执行正确的
+                            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/ComActDpcServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDpcServiceImpl.java
new file mode 100644
index 0000000..505f85f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDpcServiceImpl.java
@@ -0,0 +1,152 @@
+package com.panzhihua.service_community.service.impl;
+
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.constants.UserConstants;
+import com.panzhihua.common.model.vos.user.SysUserVO;
+import com.panzhihua.common.utlis.Snowflake;
+import org.springframework.beans.BeanUtils;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.community.dpc.AddDpcDTO;
+import com.panzhihua.common.model.dtos.community.dpc.EditDpcDTO;
+import com.panzhihua.common.model.dtos.community.dpc.PageDpcDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.dao.ComActDpcDAO;
+import com.panzhihua.service_community.entity.ComActDpc;
+import com.panzhihua.service_community.service.ComActDpcService;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * 人大代表(ComActDpc)表服务实现类
+ *
+ * @author makejava
+ * @since 2022-06-07 10:55:32
+ */
+@Service("comActDpcService")
+public class ComActDpcServiceImpl extends ServiceImpl<ComActDpcDAO, ComActDpc> implements ComActDpcService {
+
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+    @Resource
+    private ComActDpcDAO comActDpcDAO;
+
+    /**
+     * 新增人大代表
+     * @param addDpcDTO
+     * @return
+     */
+    @Override
+    public R addDpc(AddDpcDTO addDpcDTO) {
+        ComActDpc dpc = this.baseMapper.selectOne(new LambdaQueryWrapper<ComActDpc>()
+                .eq(ComActDpc::getPhone, addDpcDTO.getPhone())
+                .eq(ComActDpc::getCommunityId, addDpcDTO.getCommunityId()));
+        if (nonNull(dpc)) {
+            if (dpc.getIsDel()) {
+                this.baseMapper.deleteById(dpc.getId());
+            } else {
+                return R.fail("手机号已存在");
+            }
+        }
+        dpc = new ComActDpc();
+        dpc.setId(Snowflake.getId());
+        dpc.setCreatedAt(new Date());
+        BeanUtils.copyProperties(addDpcDTO, dpc);
+        int result = comActDpcDAO.insertComActDpc(dpc);
+        if (result > 0) {
+            refreshAssociateUserCash(addDpcDTO.getPhone());
+            return R.ok();
+        }
+        return R.fail("操作失败,请重新尝试");
+    }
+
+    /**
+     * 修改人大代表
+     * @param editDpcDTO
+     * @return
+     */
+    @Override
+    public R editDpc(EditDpcDTO editDpcDTO) {
+        ComActDpc dpc = this.baseMapper.selectById(editDpcDTO.getId());
+        if (isNull(dpc)) {
+            return R.fail("资源不存在");
+        }
+        if (!dpc.getPhone().equals(editDpcDTO.getPhone())) {
+            ComActDpc dpc1 = this.baseMapper.selectOne(new LambdaQueryWrapper<ComActDpc>()
+                    .eq(ComActDpc::getPhone, editDpcDTO.getPhone())
+                    .eq(ComActDpc::getCommunityId, editDpcDTO.getCommunityId()));
+            if (nonNull(dpc1)) {
+                if (dpc1.getIsDel()) {
+                    this.baseMapper.deleteById(dpc1.getId());
+                } else {
+                    return R.fail("手机号已存在");
+                }
+            }
+        }
+        BeanUtils.copyProperties(editDpcDTO, dpc);
+        int result = this.baseMapper.updateById(dpc);
+        if (result > 0) {
+            refreshAssociateUserCash(editDpcDTO.getPhone());
+            return R.ok();
+        }
+        return R.fail("操作失败,请重新尝试");
+    }
+
+    /**
+     * 删除人大代表
+     * @param id
+     * @return
+     */
+    @Override
+    public R deleteDpc(Long id) {
+        ComActDpc dpc = this.baseMapper.selectById(id);
+        if (isNull(dpc)) {
+            return R.fail("资源不存在");
+        }
+        dpc.setIsDel(true);
+        int result = this.baseMapper.updateById(dpc);
+        if (result > 0) {
+            refreshAssociateUserCash(dpc.getPhone());
+            return R.ok();
+        }
+        return R.fail("操作失败,请重新尝试");
+    }
+
+    private void refreshAssociateUserCash(String phone) {
+        SysUserVO sysUser = this.baseMapper.selectUser(phone);
+        if (nonNull(sysUser)) {
+            String userKey = UserConstants.LOGIN_USER_INFO + sysUser.getUserId();
+            stringRedisTemplate.delete(userKey);
+        }
+    }
+
+    /**
+     * 获取人大代表详情
+     * @param id
+     * @return
+     */
+    @Override
+    public R detailDpc(Long id) {
+        return R.ok(this.baseMapper.detailDpc(id));
+    }
+
+    /**
+     * 分页查询人大代表
+     * @param pageDpcDTO
+     * @return
+     */
+    @Override
+    public R pageDpc(PageDpcDTO pageDpcDTO) {
+        Page page = new Page<>();
+        page.setSize(pageDpcDTO.getPageSize());
+        page.setCurrent(pageDpcDTO.getPageNum());
+        return R.ok(this.baseMapper.pageDpc(page, pageDpcDTO));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDynServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDynServiceImpl.java
new file mode 100644
index 0000000..bff7700
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDynServiceImpl.java
@@ -0,0 +1,235 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.vos.community.DataCount;
+import com.panzhihua.service_community.dao.ComActDynTypeMapper;
+import com.panzhihua.service_community.model.dos.ComActDynTypeDO;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+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.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActDynVO;
+import com.panzhihua.common.utlis.RichTextUtil;
+import com.panzhihua.service_community.dao.ComActDAO;
+import com.panzhihua.service_community.dao.ComActDynDAO;
+import com.panzhihua.service_community.dao.ComActDynUserDAO;
+import com.panzhihua.service_community.model.dos.ComActDO;
+import com.panzhihua.service_community.model.dos.ComActDynDO;
+import com.panzhihua.service_community.model.dos.ComActDynUserDO;
+import com.panzhihua.service_community.service.ComActDynService;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.util.StringUtils;
+
+import static java.util.Objects.nonNull;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 社区动态
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 14:29
+ **/
+@Slf4j
+@Service
+public class ComActDynServiceImpl extends ServiceImpl<ComActDynDAO, ComActDynDO> implements ComActDynService {
+    @Resource
+    private ComActDynDAO comActDynDAO;
+    @Resource
+    private ComActDynUserDAO comActDynUserDAO;
+    @Resource
+    private ComActDAO comActDAO;
+
+    @Resource
+    private ComActDynTypeMapper comActDynTypeMapper;
+
+    /**
+     * 分页查询社区动态
+     *
+     * @param comActDynVO
+     *            查询参数
+     * @return 动态集合
+     */
+    @Override
+    public R pageDynamic(ComActDynVO comActDynVO) {
+        Page page = new Page<>();
+        Long pageNum = comActDynVO.getPageNum();
+        Long pageSize = comActDynVO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+
+        IPage<ComActDynVO> iPage = comActDynDAO.pageDynamic(page, comActDynVO);
+        List<ComActDynVO> records = iPage.getRecords();
+        if (!ObjectUtils.isEmpty(records)) {
+            records.forEach(comActDynVO1 -> {
+                if(comActDynVO1.getCategory()!=null&&comActDynVO1.getCategory()==4){
+                    comActDynVO1.setContent(null);
+                }else {
+                    String content = comActDynVO1.getContent();
+                    if (!ObjectUtils.isEmpty(content)) {
+                        String text = RichTextUtil.getText(content);
+                        comActDynVO1.setContentText(text);
+                    }
+                }
+            });
+        }
+        return R.ok(iPage);
+    }
+
+    /**
+     * 社区动态详情
+     *
+     * @param id
+     *            动态id
+     * @return 详情
+     */
+    @Override
+    public R detailDynamic(Long id) {
+        ComActDynDO comActDynDO = this.getById(id);
+
+        ComActDynTypeDO comActDynTypeDO=comActDynTypeMapper.selectById(comActDynDO.getType());
+
+        if (ObjectUtils.isEmpty(comActDynDO)) {
+            return R.fail("社区动态不存在");
+        }
+        Integer category = comActDynDO.getCategory();
+        Integer count = comActDynUserDAO
+            .selectCount(new QueryWrapper<ComActDynUserDO>().lambda().eq(ComActDynUserDO::getDynId, id));
+        ComActDynVO comActDynVO = new ComActDynVO();
+        BeanUtils.copyProperties(comActDynDO, comActDynVO);
+        comActDynVO.setReadNum(count);
+        if (nonNull(category) && !category.equals(3)) {
+            ComActDO comActDO = comActDAO.selectById(comActDynDO.getCommunityId());
+            if(comActDO!=null){
+                comActDynVO.setCommunityName(comActDO.getName());
+            }
+        }
+        if(comActDynDO.getCategory()==4){
+            if(comActDynDO.getReadNum()!=null){
+                comActDynDO.setReadNum(comActDynDO.getReadNum()+1);
+            }
+            else {
+                comActDynDO.setReadNum(1);
+            }
+            comActDynDAO.updateById(comActDynDO);
+        }
+
+        if(comActDynTypeDO!=null && !StringUtils.isEmpty(comActDynTypeDO.getName()))
+        {
+            comActDynVO.setTypeName(comActDynTypeDO.getName());
+        }
+        return R.ok(comActDynVO);
+    }
+
+    /**
+     * 新增社区动态浏览记录
+     *
+     * @param id
+     *            动态主键
+     * @param userId
+     *            登录用户id
+     * @return 新增结果
+     */
+    @Override
+    public R addDynamicUser(Long id, Long userId) {
+        ComActDynUserDO comActDynUserDO = new ComActDynUserDO();
+        comActDynUserDO.setCreateAt(new Date());
+        comActDynUserDO.setDynId(id);
+        comActDynUserDO.setUserId(userId);
+        int insert = comActDynUserDAO.insert(comActDynUserDO);
+        if (insert > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 定时任务刷新社区动态置顶状态
+     *
+     * @return 刷新结果
+     */
+    @Override
+    public R timedTaskDynIstopping() {
+        int num = comActDynUserDAO.timedTaskDynIstopping();
+        log.info("定时任务--一共维护社区动态数量【{}】", num);
+        return R.ok(num);
+    }
+
+    /**
+     * 定时任务刷新社区动态发布状态
+     *
+     * @return 刷新结果
+     */
+    @Override
+    public R timedTaskDynStatus() {
+        int num = comActDynDAO.timedTaskDynStatus();
+        log.info("定时任务--一共刷新社区动态发布状态数量【{}】", num);
+        return R.ok(num);
+    }
+
+    /**
+     * 管理后台分页查询社区动态
+     * 
+     * @param comActDynVO
+     *            查询参数
+     * @return 动态集合
+     */
+    @Override
+    public R pageDynamicByAdmin(ComActDynVO comActDynVO) {
+
+        Long pageNum = comActDynVO.getPageNum();
+        Long pageSize = comActDynVO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        Page page = new Page<ComActDynVO>(pageNum,pageSize);
+        IPage<ComActDynVO> iPage = comActDynDAO.pageDynamicByAdmin(page, comActDynVO);
+        List<ComActDynVO> records = iPage.getRecords();
+        if (!ObjectUtils.isEmpty(records)) {
+            records.forEach(comActDynVO1 ->
+            {
+//                String content = comActDynVO1.getContent();
+//                if (!ObjectUtils.isEmpty(content)) {
+//                    String text = RichTextUtil.getText(content);
+//                    comActDynVO1.setContentText(text);
+//                }
+
+//                String content = comActDynDAO.getContent(comActDynVO1.getId()+"");
+                int num=comActDynDAO.getReadNum(comActDynVO1.getId()+"");
+                comActDynVO1.setReadNum(num);
+//                comActDynVO1.setContent(content);
+
+//                if (!ObjectUtils.isEmpty(content)) {
+//                    String text = RichTextUtil.getText(content);
+//                    comActDynVO1.setContentText(text);
+//                }
+
+            });
+        }
+        return R.ok(iPage);
+    }
+
+    @Override
+    public String getTypeId(String communityId, String name) {
+        return comActDynDAO.getTypeId(communityId,name);
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDynTypeServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDynTypeServiceImpl.java
new file mode 100644
index 0000000..0b1d7e2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActDynTypeServiceImpl.java
@@ -0,0 +1,152 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.Date;
+import java.util.List;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.community.AddComActDynTypeDTO;
+import com.panzhihua.common.model.dtos.community.EditComActDynTypeDTO;
+import com.panzhihua.common.model.dtos.community.PageComActDynTypeDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.dao.ComActDynTypeMapper;
+import com.panzhihua.service_community.model.dos.ComActDynTypeDO;
+import com.panzhihua.service_community.service.ComActDynTypeService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-07-22 11:28:27
+ * @describe 社区动态分类服务实现类
+ */
+@Slf4j
+@Service
+public class ComActDynTypeServiceImpl extends ServiceImpl<ComActDynTypeMapper, ComActDynTypeDO>
+    implements ComActDynTypeService {
+
+    /**
+     * 分页查询社区动态分类列表
+     * 
+     * @param comActDynTypeDTO
+     *            请求参数
+     * @return 动态分类列表
+     */
+    @Override
+    public R pageDynTypeByAdmin(PageComActDynTypeDTO comActDynTypeDTO) {
+        return R.ok(this.baseMapper.pageDynTypeByAdmin(
+            new Page(comActDynTypeDTO.getPageNum(), comActDynTypeDTO.getPageSize()), comActDynTypeDTO));
+    }
+
+    /**
+     * 查询社区下所有动态分类列表
+     * 
+     * @param comActDynTypeDTO
+     *            请求参数
+     * @return 动态分类列表
+     */
+    @Override
+    public R getDynTypeListByAdmin(PageComActDynTypeDTO comActDynTypeDTO) {
+        return R.ok(this.baseMapper.getDynTypeListByAdmin(comActDynTypeDTO));
+    }
+
+    /**
+     * 添加社区动态分类
+     * 
+     * @param comActDynTypeDTO
+     *            请求参数
+     * @return 添加结果
+     */
+    @Override
+    public R addDynTypeByAdmin(AddComActDynTypeDTO comActDynTypeDTO) {
+
+        ComActDynTypeDO dynTypeDO = this.baseMapper.selectOne(new QueryWrapper<ComActDynTypeDO>().lambda()
+            .eq(ComActDynTypeDO::getCommunityId, comActDynTypeDTO.getCommunityId())
+            .eq(ComActDynTypeDO::getName, comActDynTypeDTO.getName())
+            .eq(ComActDynTypeDO::getCategory, comActDynTypeDTO.getCategory())
+            .eq(ComActDynTypeDO::getIsDel, ComActDynTypeDO.isDel.no));
+        if (dynTypeDO != null) {
+            return R.fail("该分类名称已存在!");
+        }
+
+        dynTypeDO = new ComActDynTypeDO();
+        BeanUtils.copyProperties(comActDynTypeDTO, dynTypeDO);
+        dynTypeDO.setCreateBy(comActDynTypeDTO.getUserId());
+        dynTypeDO.setCreateAt(new Date());
+        dynTypeDO.setArea("2");
+
+        if (this.baseMapper.insert(dynTypeDO) > 0) {
+            return R.ok();
+        } else {
+            return R.fail("添加失败");
+        }
+    }
+
+    /**
+     * 编辑社区动态分类
+     * 
+     * @param comActDynTypeDTO
+     *            请求参数
+     * @return 编辑结果
+     */
+    @Override
+    public R editDynTypeByAdmin(EditComActDynTypeDTO comActDynTypeDTO) {
+
+        if (comActDynTypeDTO.getId().equals(1L) || comActDynTypeDTO.getId().equals(2L)) {
+            return R.fail("系统预设社区动态分类不可修改");
+        }
+
+        ComActDynTypeDO dynTypeDO = this.baseMapper.selectById(comActDynTypeDTO.getId());
+        if (dynTypeDO == null) {
+            return R.fail("未查询到记录");
+        }
+
+        Integer count = this.baseMapper.selectCount(
+            new QueryWrapper<ComActDynTypeDO>().lambda().eq(ComActDynTypeDO::getCommunityId, dynTypeDO.getCommunityId())
+                .eq(ComActDynTypeDO::getName, comActDynTypeDTO.getName())
+                .eq(ComActDynTypeDO::getCategory, dynTypeDO.getCategory())
+                .eq(ComActDynTypeDO::getIsDel, ComActDynTypeDO.isDel.no)
+                .ne(ComActDynTypeDO::getId, comActDynTypeDTO.getId()));
+
+        if (count > 0) {
+            return R.fail("该分类名称已存在!");
+        }
+
+        BeanUtils.copyProperties(comActDynTypeDTO, dynTypeDO);
+        dynTypeDO.setUpdateBy(comActDynTypeDTO.getUserId());
+        dynTypeDO.setUpdateAt(new Date());
+
+        if (this.baseMapper.updateById(dynTypeDO) > 0) {
+            return R.ok();
+        } else {
+            return R.fail("添加失败");
+        }
+    }
+
+    /**
+     * 删除社区动态分类
+     * 
+     * @param ids
+     *            社区动态分类id集合
+     * @return 删除结果
+     */
+    @Override
+    public R deleteDynTypeByAdmin(List<Long> ids) {
+
+        Integer count = this.baseMapper.getDynCountByDynTypeIds(ids);
+        if (count > 0) {
+            return R.fail("您选中的分类中包含已被引用,无法删除!");
+        }
+
+        if (this.baseMapper.deleteDynTypeByIds(ids) > 0) {
+            return R.ok();
+        } else {
+            return R.fail("删除失败");
+        }
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoActivityRecordServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoActivityRecordServiceImpl.java
new file mode 100644
index 0000000..79f47d7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoActivityRecordServiceImpl.java
@@ -0,0 +1,23 @@
+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.ComActEasyPhotoActivityRecordMapper;
+import com.panzhihua.service_community.model.dos.ComActEasyPhotoActivityRecordDO;
+import com.panzhihua.service_community.service.ComActEasyPhotoActivityRecordService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-06-25 10:34:36
+ * @describe 用户参加随手拍活动记录表服务实现类
+ */
+@Slf4j
+@Service
+public class ComActEasyPhotoActivityRecordServiceImpl
+    extends ServiceImpl<ComActEasyPhotoActivityRecordMapper, ComActEasyPhotoActivityRecordDO>
+    implements ComActEasyPhotoActivityRecordService {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoActivityServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoActivityServiceImpl.java
new file mode 100644
index 0000000..623fe85
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoActivityServiceImpl.java
@@ -0,0 +1,227 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.Date;
+import java.util.List;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.community.easyPhoto.AddEasyPhotoActivityDTO;
+import com.panzhihua.common.model.dtos.community.easyPhoto.EditEasyPhotoActivityDTO;
+import com.panzhihua.common.model.dtos.community.easyPhoto.PageEasyPhotoActivityDTO;
+import com.panzhihua.common.model.dtos.community.easyPhoto.PageEasyPhotoActivityUserDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActEasyPhotoActivityVO;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.service_community.dao.ComActEasyPhotoActivityMapper;
+import com.panzhihua.service_community.model.dos.ComActEasyPhotoActivityDO;
+import com.panzhihua.service_community.service.ComActEasyPhotoActivityService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-06-25 10:34:16
+ * @describe 随手拍活动表服务实现类
+ */
+@Slf4j
+@Service
+public class ComActEasyPhotoActivityServiceImpl extends
+    ServiceImpl<ComActEasyPhotoActivityMapper, ComActEasyPhotoActivityDO> implements ComActEasyPhotoActivityService {
+
+    /**
+     * 查询随手拍是否有活动
+     * 
+     * @return 活动详情
+     */
+    @Override
+    public R getEasyPhotoActivity(Long communityId) {
+        ComActEasyPhotoActivityVO photoActivityVO = new ComActEasyPhotoActivityVO();
+        Date nowDate = DateUtils.getCurrentDate(DateUtils.ymdhms_format);
+        List<ComActEasyPhotoActivityDO> photoActivityDOS =
+            this.baseMapper.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);
+            return R.ok(photoActivityVO);
+        }
+        return R.ok();
+    }
+
+    /**
+     * 社区后台-分页查询随手拍活动列表
+     * 
+     * @param pageEasyPhotoActivityDTO
+     *            请求参数
+     * @return 随手拍活动列表
+     */
+    @Override
+    public R pageActivity(PageEasyPhotoActivityDTO pageEasyPhotoActivityDTO) {
+        return R.ok(this.baseMapper.pageActivity(
+            new Page(pageEasyPhotoActivityDTO.getPageNum(), pageEasyPhotoActivityDTO.getPageSize()),
+            pageEasyPhotoActivityDTO));
+    }
+
+    /**
+     * 社区后台-添加随手拍活动
+     * 
+     * @param addEasyPhotoActivityDTO
+     *            请求参数
+     * @return 添加结果
+     */
+    @Override
+    public R addActivity(AddEasyPhotoActivityDTO addEasyPhotoActivityDTO) {
+
+        // 判断当前活动时间是否与其他时间有冲突
+        Integer count = this.baseMapper.getEasyPhotoActivityTimeConflict(addEasyPhotoActivityDTO.getActivityStartAt(),
+            addEasyPhotoActivityDTO.getActivityEndAt(), null, addEasyPhotoActivityDTO.getCommunityId());
+        if (count > 0) {
+            return R.fail("在此期间已有活动,请勿重复添加");
+        }
+
+        Date nowDate = new Date();
+        ComActEasyPhotoActivityDO photoActivityDO = new ComActEasyPhotoActivityDO();
+        BeanUtils.copyProperties(addEasyPhotoActivityDTO, photoActivityDO);
+        photoActivityDO.setActivityStartAt(
+            DateUtils.stringToDate(addEasyPhotoActivityDTO.getActivityStartAt(), DateUtils.ymdhm_format));
+        photoActivityDO.setActivityEndAt(
+            DateUtils.stringToDate(addEasyPhotoActivityDTO.getActivityEndAt(), DateUtils.ymdhm_format));
+        photoActivityDO.setCreateAt(new Date());
+        photoActivityDO.setReleaseAt(new Date());
+        if (photoActivityDO.getActivityEndAt().getTime() <= nowDate.getTime()) {
+            return R.fail("活动结束时间不可小于当前时间");
+        }
+
+        if (nowDate.getTime() >= photoActivityDO.getActivityStartAt().getTime()) {
+            photoActivityDO.setStatus(ComActEasyPhotoActivityDO.status.jxz);
+        } else {
+            photoActivityDO.setStatus(ComActEasyPhotoActivityDO.status.dks);
+        }
+
+        photoActivityDO.setCount(0);
+        if (this.baseMapper.insert(photoActivityDO) > 0) {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    /**
+     * 社区后台-编辑随手拍活动
+     * 
+     * @param editEasyPhotoActivityDTO
+     *            请求参数
+     * @return 编辑结果
+     */
+    @Override
+    public R editActivity(EditEasyPhotoActivityDTO editEasyPhotoActivityDTO) {
+
+        ComActEasyPhotoActivityDO photoActivityDO = this.baseMapper.selectById(editEasyPhotoActivityDTO.getId());
+        if (photoActivityDO == null) {
+            return R.fail("未查询到活动记录");
+        }
+
+        Integer count = this.baseMapper.getEasyPhotoActivityTimeConflict(editEasyPhotoActivityDTO.getActivityStartAt(),
+            editEasyPhotoActivityDTO.getActivityEndAt(), editEasyPhotoActivityDTO.getId(),
+            photoActivityDO.getCommunityId());
+        if (count > 0) {
+            return R.fail("在此期间已有活动,请勿重复添加");
+        }
+
+        BeanUtils.copyProperties(editEasyPhotoActivityDTO, photoActivityDO);
+        photoActivityDO.setActivityStartAt(
+            DateUtils.stringToDate(editEasyPhotoActivityDTO.getActivityStartAt(), DateUtils.ymdhm_format));
+        photoActivityDO.setActivityEndAt(
+            DateUtils.stringToDate(editEasyPhotoActivityDTO.getActivityEndAt(), DateUtils.ymdhm_format));
+        if (new Date().getTime() > photoActivityDO.getActivityStartAt().getTime()) {
+            photoActivityDO.setStatus(ComActEasyPhotoActivityDO.status.jxz);
+        } else {
+            photoActivityDO.setStatus(ComActEasyPhotoActivityDO.status.dks);
+        }
+
+        if (new Date().getTime() > photoActivityDO.getActivityEndAt().getTime()) {
+            photoActivityDO.setStatus(ComActEasyPhotoActivityDO.status.yjs);
+        }
+        if (this.baseMapper.updateById(photoActivityDO) > 0) {
+            return R.ok();
+        }
+        return R.fail("编辑失败");
+    }
+
+    /**
+     * 社区后台-取消随手拍活动
+     * 
+     * @param id
+     *            随手拍活动id
+     * @return 取消结果
+     */
+    @Override
+    public R cancelActivity(Long id) {
+        ComActEasyPhotoActivityDO photoActivityDO = this.baseMapper.selectById(id);
+        if (photoActivityDO == null) {
+            return R.fail("未查询到活动记录");
+        }
+        photoActivityDO.setStatus(ComActEasyPhotoActivityDO.status.yqx);
+        if (this.baseMapper.updateById(photoActivityDO) > 0) {
+            return R.ok();
+        }
+        return R.fail("取消失败");
+    }
+
+    /**
+     * 分页查询随手拍活动下居民参与记录
+     * 
+     * @param activityUserDTO
+     *            请求参数
+     * @return 居民参与记录
+     */
+    @Override
+    public R pageActivityUser(PageEasyPhotoActivityUserDTO activityUserDTO) {
+        return R.ok(this.baseMapper
+            .pageActivityUser(new Page(activityUserDTO.getPageNum(), activityUserDTO.getPageSize()), activityUserDTO));
+    }
+
+    /**
+     * 随手拍活动定时任务
+     * 
+     * @return 执行结果
+     */
+    @Override
+    public R timeTaskEasyPhotoActivity() {
+        // 定时任务扫描未开始活动,如果开始时间大于当前时间则更新活动状态
+        log.info("定时任务检测未开始的随手拍活动,判断是否开始");
+        List<ComActEasyPhotoActivityDO> photoActivityDOS =
+            this.baseMapper.selectList(new QueryWrapper<ComActEasyPhotoActivityDO>().lambda()
+                .eq(ComActEasyPhotoActivityDO::getStatus, ComActEasyPhotoActivityDO.status.dks));
+        if (!photoActivityDOS.isEmpty()) {
+            Date nowDate = new Date();
+            photoActivityDOS.forEach(photoActivity -> {
+                if (photoActivity.getActivityStartAt().getTime() <= nowDate.getTime()) {
+                    photoActivity.setStatus(ComActEasyPhotoActivityDO.status.jxz);
+                    this.baseMapper.updateById(photoActivity);
+                }
+            });
+        }
+        // 定时任务扫描已开始活动,如果结束时间大于当前时间则更新活动状态
+        log.info("定时任务检测已开始的随手拍活动,判断活动是否已结束");
+        List<ComActEasyPhotoActivityDO> oldPhotoActivityDOS =
+            this.baseMapper.selectList(new QueryWrapper<ComActEasyPhotoActivityDO>().lambda()
+                .eq(ComActEasyPhotoActivityDO::getStatus, ComActEasyPhotoActivityDO.status.jxz));
+        if (!oldPhotoActivityDOS.isEmpty()) {
+            Date nowDate = new Date();
+            oldPhotoActivityDOS.forEach(photoActivity -> {
+                if (photoActivity.getActivityEndAt().getTime() <= nowDate.getTime()) {
+                    photoActivity.setStatus(ComActEasyPhotoActivityDO.status.yjs);
+                    this.baseMapper.updateById(photoActivity);
+                }
+            });
+        }
+        return R.ok();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoClassifyServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoClassifyServiceImpl.java
new file mode 100644
index 0000000..c54b77f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoClassifyServiceImpl.java
@@ -0,0 +1,135 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.Date;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.community.easyPhoto.AddEasyPhotoClassifyDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.easyPhoto.ComActEasyPhotoClassifyVO;
+import com.panzhihua.service_community.dao.ComActEasyPhotoClassifyMapper;
+import com.panzhihua.service_community.model.dos.ComActEasyPhotoClassifyDO;
+import com.panzhihua.service_community.service.ComActEasyPhotoClassifyService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-08-19 15:50:58
+ * @describe 随手拍分类表服务实现类
+ */
+@Slf4j
+@Service
+public class ComActEasyPhotoClassifyServiceImpl extends
+    ServiceImpl<ComActEasyPhotoClassifyMapper, ComActEasyPhotoClassifyDO> implements ComActEasyPhotoClassifyService {
+
+    /**
+     * 运营后台-新增随手拍分类
+     * 
+     * @param addPhotoClassify
+     *            请求参数
+     * @return 新增结果
+     */
+    @Override
+    public R addPhotoClassify(AddEasyPhotoClassifyDTO addPhotoClassify) {
+        ComActEasyPhotoClassifyDO photoClassifyDO =
+            this.baseMapper.selectOne(new QueryWrapper<ComActEasyPhotoClassifyDO>().lambda()
+                .eq(ComActEasyPhotoClassifyDO::getName, addPhotoClassify.getName()).eq(ComActEasyPhotoClassifyDO::getAreaCode,addPhotoClassify.getAreaCode()));
+        if (photoClassifyDO != null) {
+            return R.fail("该随手拍分类已存在,请勿重复添加");
+        }
+        photoClassifyDO = new ComActEasyPhotoClassifyDO();
+        BeanUtils.copyProperties(addPhotoClassify, photoClassifyDO);
+        photoClassifyDO.setCreateAt(new Date());
+        photoClassifyDO.setStatus(ComActEasyPhotoClassifyDO.status.yes);
+        if (this.baseMapper.insert(photoClassifyDO) > 0) {
+            return R.ok();
+        } else {
+            return R.fail();
+        }
+    }
+
+    /**
+     * 运营后台-编辑随手拍分类
+     * 
+     * @param addPhotoClassify
+     *            请求参数
+     * @return 编辑结果
+     */
+    @Override
+    public R editPhotoClassify(AddEasyPhotoClassifyDTO addPhotoClassify) {
+        ComActEasyPhotoClassifyDO photoClassifyDO = this.baseMapper.selectById(addPhotoClassify.getId());
+        if (photoClassifyDO == null) {
+            return R.fail("该随手拍分类不存在");
+        }
+        BeanUtils.copyProperties(addPhotoClassify, photoClassifyDO);
+        photoClassifyDO.setUpdateAt(new Date());
+        if (this.baseMapper.updateById(photoClassifyDO) > 0) {
+            return R.ok();
+        } else {
+            return R.fail();
+        }
+    }
+
+    /**
+     * 运营后台-随手拍分类详情
+     * 
+     * @param id
+     *            随手拍分类id
+     * @return 随手拍分类
+     */
+    @Override
+    public R detailPhotoClassify(Long id) {
+        ComActEasyPhotoClassifyVO photoClassifyVO = new ComActEasyPhotoClassifyVO();
+        ComActEasyPhotoClassifyDO photoClassifyDO = this.baseMapper.selectById(id);
+        if (photoClassifyDO == null) {
+            return R.fail("该随手拍分类不存在");
+        }
+        BeanUtils.copyProperties(photoClassifyDO, photoClassifyVO);
+        return R.ok(photoClassifyVO);
+    }
+
+    /**
+     * 运营后台-分页查询随手拍分类
+     * 
+     * @param addPhotoClassify
+     *            请求参数
+     * @return 随手拍分类列表
+     */
+    @Override
+    public R pagePhotoClassify(AddEasyPhotoClassifyDTO addPhotoClassify) {
+        return R.ok(this.baseMapper.getPhotoClassifyPage(
+            new Page(addPhotoClassify.getPageNum(), addPhotoClassify.getPageSize()), addPhotoClassify));
+    }
+
+    /**
+     * 运营后台-查询随手拍分类列表
+     * 
+     * @return 随手拍分类列表
+     */
+    @Override
+    public R listPhotoClassify(String areaCode) {
+        return R.ok(this.baseMapper.getPhotoClassifyList(areaCode));
+    }
+
+    /**
+     * 运营后台-随手拍分类删除
+     * 
+     * @param id
+     *            随手拍分类id
+     * @return 删除结果
+     */
+    @Override
+    public R deletePhotoClassify(Long id) {
+        if (this.baseMapper.deleteById(id) > 0) {
+            return R.ok();
+        } else {
+            return R.fail();
+        }
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoEvaluateServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoEvaluateServiceImpl.java
new file mode 100644
index 0000000..7dcc87e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoEvaluateServiceImpl.java
@@ -0,0 +1,178 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.panzhihua.service_community.dao.ComActEasyPhotoDAO;
+import com.panzhihua.service_community.dao.ComActMicroWishDAO;
+import com.panzhihua.service_community.entity.ComActEasyPhotoEvaluate;
+import com.panzhihua.service_community.dao.ComActEasyPhotoEvaluateMapper;
+import com.panzhihua.service_community.model.dos.ComActEasyPhotoDO;
+import com.panzhihua.service_community.service.ComActEasyPhotoEvaluateService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.service_community.service.ComActMicroWishOperationRecordService;
+import org.springframework.beans.BeanUtils;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * title: 随手拍、微心愿评价表表服务实现类
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 随手拍、微心愿评价表表服务实现类
+ *
+ * @author lyq
+ * @date 2022-03-01 13:44:24
+ */
+@Service("comActEasyPhotoEvaluateService")
+public class ComActEasyPhotoEvaluateServiceImpl extends ServiceImpl<ComActEasyPhotoEvaluateMapper, ComActEasyPhotoEvaluate> implements ComActEasyPhotoEvaluateService {
+
+    @Resource
+    private ComActEasyPhotoDAO easyPhotoDAO;
+    @Resource
+    private ComActMicroWishDAO microWishDAO;
+    @Resource
+    private ComActMicroWishOperationRecordService microWishOperationRecordService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comActEasyPhotoEvaluate 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-01 13:44:24
+     */
+    @Override
+    public R queryByPage(PageComActEasyPhotoEvaluateDto comActEasyPhotoEvaluate) {
+        return R.ok(this.baseMapper.queryAllByLimit(comActEasyPhotoEvaluate, new Page(comActEasyPhotoEvaluate.getPageNum(), comActEasyPhotoEvaluate.getPageSize())));
+    }
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comActEasyPhotoEvaluate 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-01 13:44:24
+     */
+    @Override
+    public R insert(AddComActEasyPhotoEvaluateDto comActEasyPhotoEvaluate) {
+        ComActEasyPhotoEvaluate entity = new ComActEasyPhotoEvaluate();
+        BeanUtils.copyProperties(comActEasyPhotoEvaluate, entity);
+        if (this.baseMapper.insert(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    /**
+     * description  update  修改数据
+     *
+     * @param editDto 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-01 13:44:24
+     */
+    @Override
+    public R update(EditComActEasyPhotoEvaluateDto editDto) {
+        ComActEasyPhotoEvaluate entity = this.baseMapper.selectById(editDto.getId());
+        if (entity == null) {
+            return R.fail("未查询到该记录");
+        }
+        BeanUtils.copyProperties(editDto, entity);
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败");
+    }
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-01 13:44:24
+     */
+    @Override
+    public R deleteById(Long id) {
+        if (this.baseMapper.deleteById(id) > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-01 13:44:24
+     */
+    @Override
+    public R detailById(Long id) {
+        return R.ok(this.baseMapper.queryById(id));
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comActEasyPhotoEvaluate 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-01 13:44:24
+     */
+    @Override
+    public R queryByList(PageComActEasyPhotoEvaluateDto comActEasyPhotoEvaluate) {
+        return R.ok(this.baseMapper.queryAllByList(comActEasyPhotoEvaluate));
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R evaluateEasyApplets(EvaluateEasyDto whistleDto) {
+        ComActEasyPhotoDO easyPhotoDO = easyPhotoDAO.selectById(whistleDto.getId());
+        if(easyPhotoDO == null){
+            return R.fail("未查询到该记录");
+        }
+        if(!easyPhotoDO.getStatus().equals(ComActEasyPhotoDO.status.dpj)){
+            return R.fail("当前状态不可进行评价");
+        }
+        Date nowDate = new Date();
+        //新增评价记录
+        this.addEasyPhotoEvaluateRecord(easyPhotoDO.getCommunityId(),whistleDto.getUserId(),easyPhotoDO.getId(),whistleDto.getScore()
+                ,whistleDto.getContent(),nowDate,ComActEasyPhotoEvaluate.ServiceType.SSP);
+        //更新随手拍状态
+        easyPhotoDO.setStatus(ComActEasyPhotoDO.status.ypj);
+        easyPhotoDO.setEvaluateDate(nowDate);
+        easyPhotoDAO.updateById(easyPhotoDO);
+        return R.ok();
+    }
+
+    /**
+     * 添加随手拍、微心愿评价记录
+     * @param communityId   社区id
+     * @param userId    用户id
+     * @param serviceId 业务记录id
+     * @param score     评价分数
+     * @param content   评价内容
+     * @param nowDate   评价时间
+     * @param serviceType   业务类型(1.随手拍 2.微心愿)
+     */
+    @Override
+    public void addEasyPhotoEvaluateRecord(Long communityId, Long userId, Long serviceId, Integer score, String content, Date nowDate, Integer serviceType) {
+        ComActEasyPhotoEvaluate easyPhotoEvaluate = new ComActEasyPhotoEvaluate();
+        easyPhotoEvaluate.setCommunityId(communityId);
+        easyPhotoEvaluate.setUserId(userId);
+        easyPhotoEvaluate.setServiceId(serviceId);
+        easyPhotoEvaluate.setScore(score);
+        easyPhotoEvaluate.setContent(content);
+        easyPhotoEvaluate.setCreateAt(nowDate);
+        easyPhotoEvaluate.setServiceType(serviceType);
+        this.baseMapper.insert(easyPhotoEvaluate);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoFeedbackServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoFeedbackServiceImpl.java
new file mode 100644
index 0000000..fb2c730
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoFeedbackServiceImpl.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.ComActEasyPhotoFeedbackMapper;
+import com.panzhihua.service_community.model.dos.ComActEasyPhotoFeedbackDO;
+import com.panzhihua.service_community.service.ComActEasyPhotoFeedbackService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-08-13 14:40:06
+ * @describe 服务实现类
+ */
+@Slf4j
+@Service
+public class ComActEasyPhotoFeedbackServiceImpl extends
+    ServiceImpl<ComActEasyPhotoFeedbackMapper, ComActEasyPhotoFeedbackDO> implements ComActEasyPhotoFeedbackService {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoHandlerServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoHandlerServiceImpl.java
new file mode 100644
index 0000000..1f2eb0e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoHandlerServiceImpl.java
@@ -0,0 +1,156 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.panzhihua.common.model.vos.common.ComActEasyPhotoHandlerVo;
+import com.panzhihua.service_community.entity.ComActEasyPhotoHandler;
+import com.panzhihua.service_community.dao.ComActEasyPhotoHandlerMapper;
+import com.panzhihua.service_community.service.ComActEasyPhotoHandlerService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.BeanUtils;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * title: 随手拍、微心愿处理人绑定表表服务实现类
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 随手拍、微心愿处理人绑定表表服务实现类
+ *
+ * @author lyq
+ * @date 2022-03-01 13:45:11
+ */
+@Service("comActEasyPhotoHandlerService")
+public class ComActEasyPhotoHandlerServiceImpl extends ServiceImpl<ComActEasyPhotoHandlerMapper, ComActEasyPhotoHandler> implements ComActEasyPhotoHandlerService {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comActEasyPhotoHandler 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-01 13:45:11
+     */
+    @Override
+    public R queryByPage(PageComActEasyPhotoHandlerDto comActEasyPhotoHandler) {
+        return R.ok(this.baseMapper.queryAllByLimit(comActEasyPhotoHandler, new Page(comActEasyPhotoHandler.getPageNum(), comActEasyPhotoHandler.getPageSize())));
+    }
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comActEasyPhotoHandler 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-01 13:45:11
+     */
+    @Override
+    public R insert(AddComActEasyPhotoHandlerDto comActEasyPhotoHandler) {
+        ComActEasyPhotoHandler entity = new ComActEasyPhotoHandler();
+        BeanUtils.copyProperties(comActEasyPhotoHandler, entity);
+        if (this.baseMapper.insert(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    /**
+     * description  update  修改数据
+     *
+     * @param editDto 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-01 13:45:11
+     */
+    @Override
+    public R update(EditComActEasyPhotoHandlerDto editDto) {
+        ComActEasyPhotoHandler entity = this.baseMapper.selectById(editDto.getId());
+        if (entity == null) {
+            return R.fail("未查询到该记录");
+        }
+        BeanUtils.copyProperties(editDto, entity);
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败");
+    }
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-01 13:45:11
+     */
+    @Override
+    public R deleteById(Long id) {
+        if (this.baseMapper.deleteById(id) > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-01 13:45:11
+     */
+    @Override
+    public R detailById(Long id) {
+        return R.ok(this.baseMapper.queryById(id));
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comActEasyPhotoHandler 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-01 13:45:11
+     */
+    @Override
+    public R queryByList(PageComActEasyPhotoHandlerDto comActEasyPhotoHandler) {
+        return R.ok(this.baseMapper.queryAllByList(comActEasyPhotoHandler));
+    }
+
+    /**
+     * 添加随手拍、微心愿处理关联记录
+     * @param communityId   社区id
+     * @param userId    用户id
+     * @param serviceId 业务id
+     * @param type  人员类型(1.后台用户 2.党员 3.志愿者 4.社工 5.四长四员)
+     * @param serviceType   业务类型(1.随手拍 2.微心愿)
+     */
+    @Override
+    public void addHandleRecord(Long communityId, Long userId, Long serviceId, Integer type, Integer serviceType,Long sponsorId) {
+        ComActEasyPhotoHandler easyPhotoHandler = new ComActEasyPhotoHandler();
+        easyPhotoHandler.setCommunityId(communityId);
+        easyPhotoHandler.setStatus(ComActEasyPhotoHandler.Status.DZX);
+        easyPhotoHandler.setCreateTime(new Date());
+        easyPhotoHandler.setUserId(userId);
+        easyPhotoHandler.setSenderId(sponsorId);
+        easyPhotoHandler.setServiceId(serviceId);
+        easyPhotoHandler.setType(type);
+        easyPhotoHandler.setServiceType(serviceType);
+        this.baseMapper.insert(easyPhotoHandler);
+    }
+
+    /**
+     * 获取处理记录
+     * @param serviceId
+     * @param serviceType
+     * @return
+     */
+    @Override
+    public List<ComActEasyPhotoHandlerVo> selectHandleRecord(Long serviceId, Integer serviceType) {
+        return this.baseMapper.selectHandleRecord(serviceId, serviceType);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoMemberServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoMemberServiceImpl.java
new file mode 100644
index 0000000..4f97596
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoMemberServiceImpl.java
@@ -0,0 +1,29 @@
+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.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.ComActEasyPhotoMember;
+import com.panzhihua.service_community.dao.ComActEasyPhotoMemberDao;
+import com.panzhihua.service_community.service.ComActEasyPhotoMemberService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * 随手拍网格员(ComActEasyPhotoMember)表服务实现类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 随手拍网格员相关功能
+ *
+ * @author zzj
+ * @since 2022-04-12 10:33:25
+ */
+@Slf4j
+@Service
+public class ComActEasyPhotoMemberServiceImpl extends ServiceImpl<ComActEasyPhotoMemberDao, ComActEasyPhotoMember> implements ComActEasyPhotoMemberService {
+
+    @Override
+    public R pageList(CommonPage commonPage) {
+        return R.ok(this.baseMapper.pageList(new Page(commonPage.getPage(), commonPage.getSize()),commonPage));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoRewardServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoRewardServiceImpl.java
new file mode 100644
index 0000000..6b6fd68
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoRewardServiceImpl.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.ComActEasyPhotoRewardMapper;
+import com.panzhihua.service_community.model.dos.ComActEasyPhotoRewardDO;
+import com.panzhihua.service_community.service.ComActEasyPhotoRewardService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-07-23 14:30:03
+ * @describe 用户随手拍奖励表服务实现类
+ */
+@Slf4j
+@Service
+public class ComActEasyPhotoRewardServiceImpl extends ServiceImpl<ComActEasyPhotoRewardMapper, ComActEasyPhotoRewardDO>
+    implements ComActEasyPhotoRewardService {
+
+}
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
new file mode 100644
index 0000000..c312a0d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEasyPhotoServiceImpl.java
@@ -0,0 +1,1227 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.util.*;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+import javax.annotation.Resource;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.DesensitizedUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.model.dtos.common.PageComActEasyPhotoEvaluateDto;
+import com.panzhihua.common.model.vos.common.ComActEasyPhotoHandlerVo;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidColorChartsVO;
+import com.panzhihua.common.model.vos.community.easyPhoto.BannerVO;
+import com.panzhihua.service_community.entity.ComActEasyPhotoEvaluate;
+import com.panzhihua.service_community.entity.ComActEasyPhotoHandler;
+import com.panzhihua.service_community.entity.SysTemplateConfig;
+import com.panzhihua.service_community.service.ComActEasyPhotoHandlerService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+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.panzhihua.common.model.dtos.community.ComActEasyPhotoCommentDTO;
+import com.panzhihua.common.model.dtos.community.ComActEasyPhotoCommentUserDTO;
+import com.panzhihua.common.model.dtos.community.GrantRewardDTO;
+import com.panzhihua.common.model.dtos.community.PageComActEasyPhotoCommentDTO;
+import com.panzhihua.common.model.dtos.community.easyPhoto.ExportEasyPhotoDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.*;
+import com.panzhihua.common.model.vos.community.easyPhoto.ExportEasyPhotoVO;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.common.utlis.WxUtil;
+import com.panzhihua.common.utlis.WxXCXTempSend;
+import com.panzhihua.service_community.dao.*;
+import com.panzhihua.service_community.model.dos.*;
+import com.panzhihua.service_community.service.ComActEasyPhotoService;
+import com.panzhihua.service_community.service.ComActUserWalletService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 随手拍
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 14:31
+ **/
+@Slf4j
+@Service
+public class ComActEasyPhotoServiceImpl extends ServiceImpl<ComActEasyPhotoDAO, ComActEasyPhotoDO>
+    implements ComActEasyPhotoService {
+    @Resource
+    private ComActEasyPhotoDAO comActEasyPhotoDAO;
+    @Resource
+    private ComActEasyPhotoUserDAO comActEasyPhotoUserDAO;
+    @Resource
+    private ComActEasyPhotoCommentDAO comActEasyPhotoCommentDAO;
+    @Resource
+    private ComActEasyPhotoCommentUserDAO comActEasyPhotoCommentUserDAO;
+    @Resource
+    private ComActEasyPhotoActivityMapper comActEasyPhotoActivityMapper;
+    @Resource
+    private ComActEasyPhotoRewardMapper comActEasyPhotoRewardMapper;
+    @Resource
+    private ComActUserWalletService comActUserWalletService;
+    @Resource
+    private ComActActSignDAO comActActSignDAO;
+    @Resource
+    private ComActEasyPhotoFeedbackMapper comActEasyPhotoFeedbackMapper;
+    @Resource
+    private ComActQuestnaireDAO comActQuestnaireDAO;
+    @Resource
+    private ComActReserveMapper comActReserveMapper;
+    @Resource
+    private ComActActivityDAO comActActivityDAO;
+    @Resource
+    private SysTemplateConfigDao sysTemplateConfigDao;
+    @Resource
+    private ComActEasyPhotoHandlerService easyPhotoHandlerService;
+    @Resource
+    private ComActEasyPhotoEvaluateMapper comActEasyPhotoEvaluateMapper;
+    @Resource
+    private ComActReserveRecordMapper comActReserveRecordMapper;
+    /**
+     * 分页查询随手拍
+     *
+     * @param comActEasyPhotoVO
+     *            查询参数
+     * @return 心愿列表
+     */
+    @Override
+    public R pageEasyPhoto(ComActEasyPhotoVO comActEasyPhotoVO) {
+        Page page = new Page<>();
+        Long pageNum = comActEasyPhotoVO.getPageNum();
+        Long pageSize = comActEasyPhotoVO.getPageSize();
+        Long userId = comActEasyPhotoVO.getLogInUserId();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<ComActEasyPhotoVO> iPage = comActEasyPhotoDAO.pageEasyPhotoAdmin(page, comActEasyPhotoVO);
+        List<ComActEasyPhotoVO> records = iPage.getRecords();
+        if (!ObjectUtils.isEmpty(records)) {
+            records.forEach(comActEasyPhotoVO1 -> {
+                Long id = comActEasyPhotoVO1.getId();
+                ComActEasyPhotoUserDO comActEasyPhotoUserDO =
+                    comActEasyPhotoUserDAO.selectOne(new QueryWrapper<ComActEasyPhotoUserDO>().lambda()
+                        .eq(ComActEasyPhotoUserDO::getEasyPhotoId, id).eq(ComActEasyPhotoUserDO::getUserId, userId));
+                if (ObjectUtils.isEmpty(comActEasyPhotoUserDO)) {
+                    comActEasyPhotoVO1.setHaveGiveThumbsUp(0);
+                } else {
+                    comActEasyPhotoVO1.setHaveGiveThumbsUp(1);
+                }
+
+                if (comActEasyPhotoVO1.getActivityId() != null
+                    && comActEasyPhotoVO1.getStatus().equals(ComActEasyPhotoDO.status.dpj)) {
+                    // 查询随手拍活动
+                    ComActEasyPhotoActivityDO photoActivityDO =
+                        comActEasyPhotoActivityMapper.selectById(comActEasyPhotoVO1.getActivityId());
+                    if (photoActivityDO != null) {
+                        if (comActEasyPhotoVO1.getActivityType() != null) {
+                            if (comActEasyPhotoVO1.getActivityType().equals(ComActEasyPhotoDO.activityType.yz)) {
+                                comActEasyPhotoVO1.setActivityMoney(photoActivityDO.getGoodReward());
+                            } else if (comActEasyPhotoVO1.getActivityType().equals(ComActEasyPhotoDO.activityType.jl)) {
+                                comActEasyPhotoVO1.setActivityMoney(photoActivityDO.getExcellentReward());
+                            } else if (comActEasyPhotoVO1.getActivityType().equals(ComActEasyPhotoDO.activityType.pt)) {
+                                comActEasyPhotoVO1.setActivityMoney(photoActivityDO.getOrdinaryReward());
+                            } else if (comActEasyPhotoVO1.getActivityType().equals(ComActEasyPhotoDO.activityType.yb)) {
+                                comActEasyPhotoVO1.setActivityMoney(photoActivityDO.getCommonlyReward());
+                            } else if (comActEasyPhotoVO1.getActivityType().equals(ComActEasyPhotoDO.activityType.wu)) {
+                                comActEasyPhotoVO1.setActivityMoney(BigDecimal.ZERO);
+                            }
+                        }
+                    }
+                }
+            });
+            iPage.setRecords(records);
+        }
+        return R.ok(iPage);
+    }
+
+    @Override
+    public R pageEasyPhotoAdminLC(Long pageNum,Long pageSize) {
+        Page page = new Page<>();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<ComActEasyPhotoVO> iPage = comActEasyPhotoDAO.pageEasyPhotoAdminLC(page);
+        List<ComActEasyPhotoVO> records = iPage.getRecords();
+        if (!ObjectUtils.isEmpty(records)) {
+            records.forEach(comActEasyPhotoVO1 -> {
+                Long id = comActEasyPhotoVO1.getId();
+
+                if (comActEasyPhotoVO1.getActivityId() != null
+                        && comActEasyPhotoVO1.getStatus().equals(ComActEasyPhotoDO.status.dpj)) {
+                    // 查询随手拍活动
+                    ComActEasyPhotoActivityDO photoActivityDO =
+                            comActEasyPhotoActivityMapper.selectById(comActEasyPhotoVO1.getActivityId());
+                    if (photoActivityDO != null) {
+                        if (comActEasyPhotoVO1.getActivityType() != null) {
+                            if (comActEasyPhotoVO1.getActivityType().equals(ComActEasyPhotoDO.activityType.yz)) {
+                                comActEasyPhotoVO1.setActivityMoney(photoActivityDO.getGoodReward());
+                            } else if (comActEasyPhotoVO1.getActivityType().equals(ComActEasyPhotoDO.activityType.jl)) {
+                                comActEasyPhotoVO1.setActivityMoney(photoActivityDO.getExcellentReward());
+                            } else if (comActEasyPhotoVO1.getActivityType().equals(ComActEasyPhotoDO.activityType.pt)) {
+                                comActEasyPhotoVO1.setActivityMoney(photoActivityDO.getOrdinaryReward());
+                            } else if (comActEasyPhotoVO1.getActivityType().equals(ComActEasyPhotoDO.activityType.yb)) {
+                                comActEasyPhotoVO1.setActivityMoney(photoActivityDO.getCommonlyReward());
+                            } else if (comActEasyPhotoVO1.getActivityType().equals(ComActEasyPhotoDO.activityType.wu)) {
+                                comActEasyPhotoVO1.setActivityMoney(BigDecimal.ZERO);
+                            }
+                        }
+                    }
+                }
+            });
+            iPage.setRecords(records);
+        }
+        return R.ok(iPage);
+    }
+
+
+    /**
+     * 随手拍详情
+     *
+     * @param id
+     *            随手拍主键
+     * @param userId
+     * @return 详情内容
+     */
+    @Override
+    public R detailEasyPhoto(Long id, Long userId) {
+        ComActEasyPhotoVO comActEasyPhotoVO = comActEasyPhotoDAO.detailEasyPhoto(id);
+        Integer status = comActEasyPhotoVO.getStatus();
+        if (ObjectUtils.isEmpty(comActEasyPhotoVO) || null == status) {
+            return R.fail("随手拍不存在");
+        }
+        if (!userId.equals(0L)) {
+            ComActEasyPhotoUserDO comActEasyPhotoUserDO =
+                comActEasyPhotoUserDAO.selectOne(new QueryWrapper<ComActEasyPhotoUserDO>().lambda()
+                    .eq(ComActEasyPhotoUserDO::getEasyPhotoId, id).eq(ComActEasyPhotoUserDO::getUserId, userId));
+            if (ObjectUtils.isEmpty(comActEasyPhotoUserDO)) {
+                comActEasyPhotoVO.setHaveGiveThumbsUp(0);
+            } else {
+                comActEasyPhotoVO.setHaveGiveThumbsUp(1);
+            }
+        }
+
+        // if (status.equals(4)) {
+        // Date feedbackAt = comActEasyPhotoVO.getFeedbackAt();
+        // if (null==feedbackAt) {
+        // comActEasyPhotoVO.setFeedbackAt(comActEasyPhotoVO.getExamineAt());
+        // }
+        // }
+
+        // 查询反馈信息
+        List<ComActEasyPhotoFeedbackVO> photoFeedbackList =
+                comActEasyPhotoFeedbackMapper.getPhotoFeedbackList(id);
+        if (!photoFeedbackList.isEmpty()) {
+            comActEasyPhotoVO.setPhotoFeedbackList(photoFeedbackList);
+        }
+
+        // comActEasyPhotoVO.setPhone(SensitiveUtil.desensitizedPhoneNumber(comActEasyPhotoVO.getPhone()));
+        if (comActEasyPhotoVO.getAddrRemark() == null) {
+            comActEasyPhotoVO.setAddrRemark("");
+        }
+
+        if (comActEasyPhotoVO.getActivityId() != null) {
+            ComActEasyPhotoActivityDO photoActivityDO =
+                comActEasyPhotoActivityMapper.selectById(comActEasyPhotoVO.getActivityId());
+            if (photoActivityDO != null) {
+                ComActEasyPhotoActivityVO easyPhotoActivityVO = new ComActEasyPhotoActivityVO();
+                BeanUtils.copyProperties(photoActivityDO, easyPhotoActivityVO);
+                comActEasyPhotoVO.setEasyPhotoActivityVO(easyPhotoActivityVO);
+            }
+        }
+        PageComActEasyPhotoEvaluateDto evaluateDto = new PageComActEasyPhotoEvaluateDto();
+        evaluateDto.setServiceId(id);
+        evaluateDto.setServiceType(ComActEasyPhotoEvaluate.ServiceType.SSP);
+        comActEasyPhotoVO.setEvaluateList(comActEasyPhotoEvaluateMapper.queryAllByList(evaluateDto));
+        return R.ok(comActEasyPhotoVO);
+    }
+    /**
+     * 随手拍详情 - 脱敏
+     *
+     * @param id
+     *            随手拍主键
+     * @param userId
+     * @return 详情内容
+     */
+    @Override
+    public R detailEasyPhotoDesensitize(Long id, Long userId) {
+        ComActEasyPhotoVO comActEasyPhotoVO = comActEasyPhotoDAO.detailEasyPhoto(id);
+        Integer status = comActEasyPhotoVO.getStatus();
+        if (ObjectUtils.isEmpty(comActEasyPhotoVO) || null == status) {
+            return R.fail("随手拍不存在");
+        }
+        if (!userId.equals(0L)) {
+            ComActEasyPhotoUserDO comActEasyPhotoUserDO =
+                    comActEasyPhotoUserDAO.selectOne(new QueryWrapper<ComActEasyPhotoUserDO>().lambda()
+                            .eq(ComActEasyPhotoUserDO::getEasyPhotoId, id).eq(ComActEasyPhotoUserDO::getUserId, userId));
+            if (ObjectUtils.isEmpty(comActEasyPhotoUserDO)) {
+                comActEasyPhotoVO.setHaveGiveThumbsUp(0);
+            } else {
+                comActEasyPhotoVO.setHaveGiveThumbsUp(1);
+            }
+        }
+        comActEasyPhotoVO.setSponsorName(DesensitizedUtil.chineseName(comActEasyPhotoVO.getSponsorName()));
+        comActEasyPhotoVO.setHandlerName(DesensitizedUtil.chineseName(comActEasyPhotoVO.getHandlerName()));
+        comActEasyPhotoVO.setCompleteName(DesensitizedUtil.chineseName(comActEasyPhotoVO.getCompleteName()));
+        comActEasyPhotoVO.setPhone(DesensitizedUtil.mobilePhone(comActEasyPhotoVO.getPhone()));
+
+        // 查询反馈信息
+        List<ComActEasyPhotoFeedbackVO> photoFeedbackList = comActEasyPhotoFeedbackMapper.getPhotoFeedbackList(id);
+        if (!photoFeedbackList.isEmpty()) {
+            if (CollUtil.isNotEmpty(photoFeedbackList)){
+                for (ComActEasyPhotoFeedbackVO comActEasyPhotoFeedbackVO : photoFeedbackList) {
+                    comActEasyPhotoFeedbackVO.setCreateByName(DesensitizedUtil.chineseName(comActEasyPhotoFeedbackVO.getCreateByName()));
+                }
+            }
+            comActEasyPhotoVO.setPhotoFeedbackList(photoFeedbackList);
+        }
+
+        if (comActEasyPhotoVO.getAddrRemark() == null) {
+            comActEasyPhotoVO.setAddrRemark("");
+        }
+
+        if (comActEasyPhotoVO.getActivityId() != null) {
+            ComActEasyPhotoActivityDO photoActivityDO =
+                    comActEasyPhotoActivityMapper.selectById(comActEasyPhotoVO.getActivityId());
+            if (photoActivityDO != null) {
+                ComActEasyPhotoActivityVO easyPhotoActivityVO = new ComActEasyPhotoActivityVO();
+                BeanUtils.copyProperties(photoActivityDO, easyPhotoActivityVO);
+                comActEasyPhotoVO.setEasyPhotoActivityVO(easyPhotoActivityVO);
+            }
+        }
+        PageComActEasyPhotoEvaluateDto evaluateDto = new PageComActEasyPhotoEvaluateDto();
+        evaluateDto.setServiceId(id);
+        evaluateDto.setServiceType(ComActEasyPhotoEvaluate.ServiceType.SSP);
+        comActEasyPhotoVO.setEvaluateList(comActEasyPhotoEvaluateMapper.queryAllByList(evaluateDto));
+        return R.ok(comActEasyPhotoVO);
+    }
+
+    /**
+     * 上传随手拍
+     *
+     * @param comActEasyPhotoVO
+     *            上传数据
+     * @return 上传结果
+     */
+    @Override
+    public R addEasyPhoto(ComActEasyPhotoVO comActEasyPhotoVO) {
+        ComActEasyPhotoDO comActEasyPhotoDO = new ComActEasyPhotoDO();
+        BeanUtils.copyProperties(comActEasyPhotoVO, comActEasyPhotoDO);
+        // 查询是否在活动时间内
+        Date nowDate = DateUtils.getCurrentDate(DateUtils.ymdhms_format);
+        List<ComActEasyPhotoActivityDO> photoActivityDOS =
+            comActEasyPhotoActivityMapper.selectList(new QueryWrapper<ComActEasyPhotoActivityDO>().lambda()
+                .eq(ComActEasyPhotoActivityDO::getCommunityId, comActEasyPhotoVO.getCommunityId())
+                .le(ComActEasyPhotoActivityDO::getActivityStartAt, nowDate)
+                .ge(ComActEasyPhotoActivityDO::getActivityEndAt, nowDate)
+                .eq(ComActEasyPhotoActivityDO::getStatus, ComActEasyPhotoActivityDO.status.jxz));
+        if (!photoActivityDOS.isEmpty()) {
+            ComActEasyPhotoActivityDO photoActivityDO = photoActivityDOS.get(0);
+            photoActivityDO.setCount(photoActivityDO.getCount() + 1);
+            comActEasyPhotoDO.setActivityId(photoActivityDO.getId());
+            comActEasyPhotoActivityMapper.updateById(photoActivityDO);
+        }
+        int insert = comActEasyPhotoDAO.insert(comActEasyPhotoDO);
+        if (insert > 0) {
+            JSONObject jsonObject = new JSONObject();
+            jsonObject.put("id",comActEasyPhotoDO.getId());
+            return R.ok(jsonObject);
+        }
+        return R.fail();
+    }
+
+    /**
+     * 点赞/取消点赞随手拍
+     *
+     * @param comActEasyPhotoVO
+     *            操作参数
+     * @return 操作结果
+     */
+    @Override
+    public R putEasyPhoto(ComActEasyPhotoVO comActEasyPhotoVO) {
+        Integer haveGiveThumbsUp = comActEasyPhotoVO.getHaveGiveThumbsUp();
+        Long userId = comActEasyPhotoVO.getSponsorId();
+        Long easyPhotoId = comActEasyPhotoVO.getId();
+        ComActEasyPhotoUserDO comActEasyPhotoUserDO =
+            comActEasyPhotoUserDAO.selectOne(new QueryWrapper<ComActEasyPhotoUserDO>().lambda()
+                .eq(ComActEasyPhotoUserDO::getUserId, userId).eq(ComActEasyPhotoUserDO::getEasyPhotoId, easyPhotoId));
+        boolean empty = ObjectUtils.isEmpty(comActEasyPhotoUserDO);
+        int num = 0;
+        if (haveGiveThumbsUp.intValue() == 1) {
+            if (empty) {
+                ComActEasyPhotoUserDO comActEasyPhotoUserDO1 = new ComActEasyPhotoUserDO();
+                comActEasyPhotoUserDO1.setEasyPhotoId(easyPhotoId);
+                comActEasyPhotoUserDO1.setUserId(userId);
+                num = comActEasyPhotoUserDAO.insert(comActEasyPhotoUserDO1);
+            } else {
+                return R.ok();
+            }
+        } else {
+            if (empty) {
+                return R.ok();
+            } else {
+                num = comActEasyPhotoUserDAO.deleteById(comActEasyPhotoUserDO.getId());
+            }
+        }
+        if (num > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 审核反馈随手拍
+     *
+     * @param comActEasyPhotoVO
+     *            操作参数
+     * @return 操作结果
+     */
+    @Override
+    public R putEasypHotoStatus(ComActEasyPhotoVO comActEasyPhotoVO) {
+        Integer type = comActEasyPhotoVO.getType();
+        comActEasyPhotoVO.setIsNeedFeedBack(1);
+        Date nowDate = new Date();
+        // 操作类型 1审核通过 2驳回 3反馈 4完成随手拍
+        ComActEasyPhotoDO cmActEasyPhotoDO = this.comActEasyPhotoDAO.selectById(comActEasyPhotoVO.getId());
+        if (cmActEasyPhotoDO == null) {
+            return R.fail("未查询到随手拍记录");
+        }
+        switch (type) {
+            case 1:
+                if (!cmActEasyPhotoDO.getStatus().equals(ComActEasyPhotoDO.status.dsh)) {
+                    return R.fail("该随手拍已处理,不可重复操作");
+//                    return R.ok();
+                }
+                cmActEasyPhotoDO.setStatus(2);// 进行中
+                cmActEasyPhotoDO.setIsNeedFeedBack(1);
+                cmActEasyPhotoDO.setIsPublicity(comActEasyPhotoVO.getIsPublicity());
+                if (comActEasyPhotoVO.getIsReportUrban().equals(ComActEasyPhotoVO.isReportUrban.yes)) {
+                    cmActEasyPhotoDO.setIsReportUrban(ComActEasyPhotoVO.isReportUrban.yes);
+                    cmActEasyPhotoDO.setTransferReason(comActEasyPhotoVO.getTransferReason());
+                    cmActEasyPhotoDO.setTransferTime(nowDate);
+
+                } else {
+                    cmActEasyPhotoDO.setIsReportUrban(ComActEasyPhotoVO.isReportUrban.no );
+                }
+                cmActEasyPhotoDO.setExamineAt(nowDate);
+                cmActEasyPhotoDO.setActivityType(comActEasyPhotoVO.getActivityType());
+                if (StringUtils.isNotEmpty(comActEasyPhotoVO.getHandleResult())
+                    || StringUtils.isNotEmpty(comActEasyPhotoVO.getHandlePhotoList())) {
+                    // 说明此处有反馈,需要给随手拍新增反馈信息
+                    ComActEasyPhotoFeedbackDO photoFeedbackDO = new ComActEasyPhotoFeedbackDO();
+                    photoFeedbackDO.setEasyId(comActEasyPhotoVO.getId());
+                    photoFeedbackDO.setFeedbackContent(comActEasyPhotoVO.getHandleResult());
+                    photoFeedbackDO.setFeedbackImg(comActEasyPhotoVO.getHandlePhotoList());
+                    photoFeedbackDO.setCreateAt(nowDate);
+                    photoFeedbackDO.setCreateBy(comActEasyPhotoVO.getUserId());
+                    comActEasyPhotoFeedbackMapper.insert(photoFeedbackDO);
+                }
+                // 审核通过判断随手拍是否有活动并计算用户收益
+                comActUserWalletService.examineAddMoney(comActEasyPhotoVO.getActivityType(), comActEasyPhotoVO.getId(),
+                    comActEasyPhotoVO.getUserId(), BigDecimal.ZERO);
+
+                //添加分配人员
+                if(comActEasyPhotoVO.getHandleList() != null && comActEasyPhotoVO.getHandleList().size() > 0){
+                    comActEasyPhotoVO.getHandleList().forEach(handle -> {
+                        cmActEasyPhotoDO.setHandlerId(handle.getUserId());
+                        easyPhotoHandlerService.addHandleRecord(cmActEasyPhotoDO.getCommunityId(),handle.getUserId()
+                                ,cmActEasyPhotoDO.getId(),handle.getType(), ComActEasyPhotoHandler.ServiceType.SSP,comActEasyPhotoVO.getSponsorId());
+                    });
+                }
+                break;
+            case 2:
+                // if(!cmActEasyPhotoDO.getStatus().equals(ComActEasyPhotoDO.status.dsh)){
+                // return R.fail("该随手拍已处理,不可重复操作");
+                // }
+                // cmActEasyPhotoDO.setHandlerId(comActEasyPhotoVO.getUserId());
+                // cmActEasyPhotoDO.setStatus(3);//已驳回
+                // cmActEasyPhotoDO.setExamineAt(nowDate);
+                // cmActEasyPhotoDO.setRejectReason(comActEasyPhotoVO.getRejectReason());
+                break;
+            case 3:
+                if (!cmActEasyPhotoDO.getStatus().equals(ComActEasyPhotoDO.status.dfk)) {
+                    return R.fail("该随手拍不是进行中状态,不可进行反馈");
+                }
+                // 给随手拍新增反馈信息
+                ComActEasyPhotoFeedbackDO photoFeedbackDO = new ComActEasyPhotoFeedbackDO();
+                photoFeedbackDO.setEasyId(comActEasyPhotoVO.getId());
+                photoFeedbackDO.setFeedbackContent(comActEasyPhotoVO.getHandleResult());
+                photoFeedbackDO.setFeedbackImg(comActEasyPhotoVO.getHandlePhotoList());
+                photoFeedbackDO.setCreateAt(nowDate);
+                photoFeedbackDO.setCreateBy(comActEasyPhotoVO.getUserId());
+                comActEasyPhotoFeedbackMapper.insert(photoFeedbackDO);
+                break;
+            case 4:
+                if (cmActEasyPhotoDO.getStatus().equals(ComActEasyPhotoDO.status.ypj)) {
+                    return R.fail("该随手拍已完成,不可重复操作");
+                }
+                if (StringUtils.isNotEmpty(comActEasyPhotoVO.getHandleResult())
+                    || StringUtils.isNotEmpty(comActEasyPhotoVO.getHandlePhotoList())) {
+                    // 说明此处有反馈,需要给随手拍新增反馈信息
+                    ComActEasyPhotoFeedbackDO photoFeedback = new ComActEasyPhotoFeedbackDO();
+                    photoFeedback.setEasyId(comActEasyPhotoVO.getId());
+                    photoFeedback.setFeedbackContent(comActEasyPhotoVO.getHandleResult());
+                    photoFeedback.setFeedbackImg(comActEasyPhotoVO.getHandlePhotoList());
+                    photoFeedback.setCreateAt(nowDate);
+                    photoFeedback.setCreateBy(comActEasyPhotoVO.getUserId());
+                    comActEasyPhotoFeedbackMapper.insert(photoFeedback);
+                }
+                // if(cmActEasyPhotoDO.getStatus().equals(ComActEasyPhotoDO.status.dsh)){
+                // cmActEasyPhotoDO.setExamineAt(nowDate);
+                // cmActEasyPhotoDO.setHandlerId(comActEasyPhotoVO.getUserId());
+                // cmActEasyPhotoDO.setActivityType(comActEasyPhotoVO.getActivityType());
+                // //审核通过判断随手拍是否有活动并计算用户收益
+                // comActUserWalletService.examineAddMoney(comActEasyPhotoVO.getActivityType(),comActEasyPhotoVO.getId(),comActEasyPhotoVO.getUserId(),BigDecimal.ZERO);
+                // }
+                cmActEasyPhotoDO.setFeedbackAt(nowDate);
+                cmActEasyPhotoDO.setStatus(ComActEasyPhotoDO.status.dpj);
+                cmActEasyPhotoDO.setCompleteId(comActEasyPhotoVO.getUserId());
+                if(comActEasyPhotoVO.getUrbanStatus()!=null&&comActEasyPhotoVO.getUrbanStatus()==2){
+                    cmActEasyPhotoDO.setUrbanStatus(2);
+                }
+                break;
+            default:
+                break;
+        }
+        if (!ObjectUtils.isEmpty(comActEasyPhotoVO.getIsReportDpc())){
+            cmActEasyPhotoDO.setIsReportDpc(comActEasyPhotoVO.getIsReportDpc());
+        }
+        if (!type.equals(3)) {
+            int update = comActEasyPhotoDAO.updateById(cmActEasyPhotoDO);
+            if (update > 0) {
+                return R.ok();
+            }
+        } else {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 随手拍是否有待审核和带反馈的事件
+     *
+     * @param communityId
+     *            社区id
+     * @param userId
+     *            登录用户id
+     * @return 待处理事件集合
+     */
+    @Override
+    public List<TodoEventsVO> selectNeedToDo(Long communityId, Long userId) {
+        List<TodoEventsVO> todoEventsVOS = comActEasyPhotoDAO.selectNeedToDo(communityId, userId);
+        return todoEventsVOS;
+    }
+
+    /**
+     * 小程序分页查询随手拍
+     *
+     * @param comActEasyPhotoVO
+     *            查询参数
+     * @return 返回结果
+     */
+    @Override
+    public R pageEasyPhotoApplets(ComActEasyPhotoVO comActEasyPhotoVO) {
+        Page page = new Page<>();
+        Long pageNum = comActEasyPhotoVO.getPageNum();
+        Long pageSize = comActEasyPhotoVO.getPageSize();
+        Long userId = comActEasyPhotoVO.getLogInUserId();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<ComActEasyPhotoVO> iPage = comActEasyPhotoDAO.pageEasyPhotoApplets(page, comActEasyPhotoVO);
+        List<ComActEasyPhotoVO> records = iPage.getRecords();
+        if (userId != null) {
+            if (!ObjectUtils.isEmpty(records)) {
+                records.forEach(comActEasyPhotoVO1 -> {
+                    Long id = comActEasyPhotoVO1.getId();
+                    Integer status = comActEasyPhotoVO1.getStatus();
+                    Date feedbackAt = comActEasyPhotoVO1.getFeedbackAt();
+                    List<ComActEasyPhotoUserDO> comActEasyPhotoUserDO = comActEasyPhotoUserDAO.selectList(
+                        new QueryWrapper<ComActEasyPhotoUserDO>().lambda().eq(ComActEasyPhotoUserDO::getEasyPhotoId, id)
+                            .eq(ComActEasyPhotoUserDO::getUserId, userId));
+                    if (comActEasyPhotoUserDO == null || comActEasyPhotoUserDO.size() == 0) {
+                        comActEasyPhotoVO1.setHaveGiveThumbsUp(0);
+                    } else {
+                        comActEasyPhotoVO1.setHaveGiveThumbsUp(1);
+                    }
+                    if (status.intValue() == 4 && null == feedbackAt) {
+                        comActEasyPhotoVO1.setFeedbackAt(comActEasyPhotoVO1.getExamineAt());
+                    }
+                });
+                iPage.setRecords(records);
+            }
+        }
+        return R.ok(iPage);
+    }
+
+    /**
+     * 小程序分页查询随手拍 脱敏
+     *
+     * @param comActEasyPhotoVO
+     *            查询参数
+     * @return 返回结果
+     */
+    @Override
+    public R pageEasyPhotoAppletsDesensitize(ComActEasyPhotoVO comActEasyPhotoVO) {
+        Page page = new Page<>();
+        Long pageNum = comActEasyPhotoVO.getPageNum();
+        Long pageSize = comActEasyPhotoVO.getPageSize();
+        Long userId = comActEasyPhotoVO.getLogInUserId();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<ComActEasyPhotoVO> iPage = comActEasyPhotoDAO.pageEasyPhotoApplets(page, comActEasyPhotoVO);
+        List<ComActEasyPhotoVO> records = iPage.getRecords();
+        if (userId != null) {
+            if (!ObjectUtils.isEmpty(records)) {
+                records.forEach(comActEasyPhotoVO1 -> {
+                    Long id = comActEasyPhotoVO1.getId();
+                    Integer status = comActEasyPhotoVO1.getStatus();
+                    Date feedbackAt = comActEasyPhotoVO1.getFeedbackAt();
+                    comActEasyPhotoVO1.setSponsorName(DesensitizedUtil.chineseName(comActEasyPhotoVO1.getSponsorName()));
+                    comActEasyPhotoVO1.setHandlerName(DesensitizedUtil.chineseName(comActEasyPhotoVO1.getHandlerName()));
+                    comActEasyPhotoVO1.setCompleteName(DesensitizedUtil.chineseName(comActEasyPhotoVO1.getCompleteName()));
+                    comActEasyPhotoVO1.setPhone(DesensitizedUtil.mobilePhone(comActEasyPhotoVO1.getPhone()));
+                    List<ComActEasyPhotoUserDO> comActEasyPhotoUserDO = comActEasyPhotoUserDAO.selectList(
+                            new QueryWrapper<ComActEasyPhotoUserDO>().lambda().eq(ComActEasyPhotoUserDO::getEasyPhotoId, id)
+                                    .eq(ComActEasyPhotoUserDO::getUserId, userId));
+                    if (comActEasyPhotoUserDO == null || comActEasyPhotoUserDO.size() == 0) {
+                        comActEasyPhotoVO1.setHaveGiveThumbsUp(0);
+                    } else {
+                        comActEasyPhotoVO1.setHaveGiveThumbsUp(1);
+                    }
+                    if (status.intValue() == 4 && null == feedbackAt) {
+                        comActEasyPhotoVO1.setFeedbackAt(comActEasyPhotoVO1.getExamineAt());
+                    }
+                    //反馈信息列表
+                    List<ComActEasyPhotoFeedbackVO> photoFeedbackList = comActEasyPhotoVO1.getPhotoFeedbackList();
+                    if (CollUtil.isNotEmpty(photoFeedbackList)){
+                        for (ComActEasyPhotoFeedbackVO comActEasyPhotoFeedbackVO : photoFeedbackList) {
+                            comActEasyPhotoFeedbackVO.setCreateByName(DesensitizedUtil.chineseName(comActEasyPhotoFeedbackVO.getCreateByName()));
+                        }
+                    }
+                    comActEasyPhotoVO1.setPhotoFeedbackList(photoFeedbackList);
+                });
+                iPage.setRecords(records);
+            }
+        }
+        return R.ok(iPage);
+    }
+
+    /**
+     * 随手拍评论分页查询
+     *
+     * @param pageComActEasyPhotoCommentDTO
+     *            查询参数
+     * @return 查询结果
+     */
+    @Override
+    public R pageComActEasyPhotoComment(PageComActEasyPhotoCommentDTO pageComActEasyPhotoCommentDTO) {
+        Page page = new Page<>();
+        Long pageNum = pageComActEasyPhotoCommentDTO.getPageNum();
+        Long pageSize = pageComActEasyPhotoCommentDTO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<ComActEasyPhotoCommentVO> iPage =
+            comActEasyPhotoCommentDAO.pageComActEasyPhotoComment(page, pageComActEasyPhotoCommentDTO);
+        if (!iPage.getRecords().isEmpty()) {
+            for (ComActEasyPhotoCommentVO commentVO : iPage.getRecords()) {
+                if (StringUtils.isEmpty(commentVO.getName())) {
+                    commentVO.setName(commentVO.getNickName());
+                }
+            }
+        }
+        return R.ok(iPage);
+    }
+
+    /**
+     * 随手拍评论分页查询 - 脱敏
+     *
+     * @param pageComActEasyPhotoCommentDTO
+     *            查询参数
+     * @return 查询结果
+     */
+    @Override
+    public R pageComActEasyPhotoCommentDesensitize(PageComActEasyPhotoCommentDTO pageComActEasyPhotoCommentDTO) {
+        Page page = new Page<>();
+        Long pageNum = pageComActEasyPhotoCommentDTO.getPageNum();
+        Long pageSize = pageComActEasyPhotoCommentDTO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<ComActEasyPhotoCommentVO> iPage =
+                comActEasyPhotoCommentDAO.pageComActEasyPhotoComment(page, pageComActEasyPhotoCommentDTO);
+        if (!iPage.getRecords().isEmpty()) {
+            for (ComActEasyPhotoCommentVO commentVO : iPage.getRecords()) {
+                commentVO.setNickName(DesensitizedUtil.chineseName(commentVO.getNickName()));
+                if (StringUtils.isEmpty(commentVO.getName())) {
+                    commentVO.setName(commentVO.getNickName());
+                }
+            }
+        }
+        return R.ok(iPage);
+    }
+
+    /**
+     * 评论点赞/取消点赞
+     *
+     * @param comActEasyPhotoCommentUserDTO
+     *            操作
+     * @return 操作结果
+     */
+    @Override
+    public R commentSign(ComActEasyPhotoCommentUserDTO comActEasyPhotoCommentUserDTO) {
+        Long id = comActEasyPhotoCommentUserDTO.getId();
+        if (null == id || 0 == id) {
+            return R.fail("主键不能为空");
+        }
+        ComActEasyPhotoCommentDO comActEasyPhotoCommentDO = comActEasyPhotoCommentDAO.selectById(id);
+        if (ObjectUtils.isEmpty(comActEasyPhotoCommentDO)) {
+            return R.fail("评论不存在");
+        }
+        Integer type = comActEasyPhotoCommentUserDTO.getType();
+        if (null == type || type.intValue() > 2 || type.intValue() == 0) {
+            return R.fail("操作类型错误");
+        }
+        Long userId = comActEasyPhotoCommentUserDTO.getUserId();
+        int num = 0;
+        if (type.intValue() == 1) {
+            ComActEasyPhotoCommentUserDO comActEasyPhotoCommentUserDO = new ComActEasyPhotoCommentUserDO();
+            comActEasyPhotoCommentUserDO.setUserId(userId);
+            comActEasyPhotoCommentUserDO.setEasyPhotoCommentId(id);
+            ComActEasyPhotoCommentUserDO actEasyPhotoCommentUserDO =
+                comActEasyPhotoCommentUserDAO.selectOne(new QueryWrapper<ComActEasyPhotoCommentUserDO>().lambda()
+                    .eq(ComActEasyPhotoCommentUserDO::getUserId, userId)
+                    .eq(ComActEasyPhotoCommentUserDO::getEasyPhotoCommentId, id));
+            if (!ObjectUtils.isEmpty(actEasyPhotoCommentUserDO)) {
+                num = 1;
+            } else {
+                num = comActEasyPhotoCommentUserDAO.insert(comActEasyPhotoCommentUserDO);
+            }
+        } else {
+            num = comActEasyPhotoCommentUserDAO.delete(new QueryWrapper<ComActEasyPhotoCommentUserDO>().lambda()
+                .eq(ComActEasyPhotoCommentUserDO::getUserId, userId)
+                .eq(ComActEasyPhotoCommentUserDO::getEasyPhotoCommentId, id));
+        }
+        if (num > 0) {
+            return R.ok();
+        } else {
+            return R.fail();
+        }
+
+    }
+
+    /**
+     * 随手拍--评论--新增评论
+     *
+     * @param comActEasyPhotoCommentDTO
+     *            新增内容
+     * @return 新增结果
+     */
+    @Override
+    public R addComActEasyPhotoComment(ComActEasyPhotoCommentDTO comActEasyPhotoCommentDTO) {
+        Long id = comActEasyPhotoCommentDTO.getId();
+        ComActEasyPhotoDO comActEasyPhotoDO = comActEasyPhotoDAO.selectById(id);
+        if (ObjectUtils.isEmpty(comActEasyPhotoDO)) {
+            return R.fail("随手拍不存在");
+        }
+        ComActEasyPhotoCommentDO comActEasyPhotoCommentDO = new ComActEasyPhotoCommentDO();
+        comActEasyPhotoCommentDO.setComment(comActEasyPhotoCommentDTO.getComment());
+        comActEasyPhotoCommentDO.setUserId(comActEasyPhotoCommentDTO.getUserId());
+        comActEasyPhotoCommentDO.setEasyPhotoId(id);
+        int insert = comActEasyPhotoCommentDAO.insert(comActEasyPhotoCommentDO);
+        if (insert > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 社区随手拍列表统计
+     * 
+     * @param communityId
+     *            社区id
+     * @return 统计结果
+     */
+    @Override
+    public R easyPhotoStatistics(Long communityId) {
+        return R.ok(this.baseMapper.getEasyPhotoStatistics(communityId));
+    }
+
+    /**
+     * 随手拍发放奖励
+     * 
+     * @param grantRewardDTO
+     *            请求参数
+     * @return 发放结果
+     */
+    @Override
+    public R grantReward(GrantRewardDTO grantRewardDTO) {
+
+        if (grantRewardDTO.getIds() == null) {
+            return R.fail("参数错误");
+        }
+
+        for (Long id : grantRewardDTO.getIds()) {
+            // 查询随手拍
+            ComActEasyPhotoDO easyPhotoDO = this.baseMapper.selectById(id);
+            if (easyPhotoDO != null) {
+                if (easyPhotoDO.getActivityAmount() != null) {
+                    log.info("该随手拍已发放过奖励,不可重复发放,随手拍id" + easyPhotoDO.getId());
+                    continue;
+                }
+                // 审核通过判断随手拍是否有活动并计算用户收益
+                comActUserWalletService.examineAddMoney(easyPhotoDO.getActivityType(), easyPhotoDO.getId(),
+                    easyPhotoDO.getSponsorId(), grantRewardDTO.getAmount());
+
+                String activityType = "";
+                if (easyPhotoDO.getActivityType().equals(ComActEasyPhotoDO.activityType.yz)) {
+                    activityType = "优质";
+                } else if (easyPhotoDO.getActivityType().equals(ComActEasyPhotoDO.activityType.jl)) {
+                    activityType = "精良";
+                } else if (easyPhotoDO.getActivityType().equals(ComActEasyPhotoDO.activityType.pt)) {
+                    activityType = "普通";
+                } else if (easyPhotoDO.getActivityType().equals(ComActEasyPhotoDO.activityType.yb)) {
+                    activityType = "一般";
+                }
+                // 发放奖励以后给用户推送消息
+                Map<String, String> map = comActActSignDAO.getUserOpenId(easyPhotoDO.getSponsorId());
+                if (map != null) {
+                    String openid = map.get("openid");
+                    SysTemplateConfig sysTemplateConfig=sysTemplateConfigDao.selectOne(new QueryWrapper<SysTemplateConfig>().lambda().eq(SysTemplateConfig::getAreaCode, grantRewardDTO.getAreaCode()).eq(SysTemplateConfig::getType,7));
+                    WxXCXTempSend util = new WxXCXTempSend();
+                    try {
+                        WxUtil.sendSubscribeJLDZ(openid, util.getAccessToken(), "随手拍有奖活动",
+                            grantRewardDTO.getAmount(), activityType,sysTemplateConfig.getTemplateId());
+                    } catch (Exception e) {
+                        log.error("消息推送失败,失败原因:" + e.getMessage());
+                    }
+                }
+            }
+        }
+        return R.ok();
+    }
+
+    /**
+     * 获取最新活动和用户最新收益
+     * 
+     * @param userId
+     *            用户id
+     * @param communityId
+     *            社区id
+     * @return 最新活动和用户最新收益
+     */
+    @Override
+    public R getUserReward(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);
+        }
+
+        // 查询社区正在进行中的banner位置调查问卷列表
+        List<ComActQuestnaireAppVO> bannerQuestnaireList = comActQuestnaireDAO.getIndexTopQuestnaireList(communityId);
+        if (!bannerQuestnaireList.isEmpty()) {
+            easyPhotoRewardVO.setBannerQuestnaireList(bannerQuestnaireList);
+        }
+
+        //查询社区正在进行中的banner位置的社区活动
+        List<ComActActivityVO> comActActivityVOList = comActActivityDAO.getIndexTopActivityList(communityId);
+        if (!comActActivityVOList.isEmpty()) {
+            easyPhotoRewardVO.setBannerActivityList(comActActivityVOList);
+        }
+
+        // 查询社区正在进行中的应用位置调查问卷列表
+        List<ComActQuestnaireAppVO> applicationQuestnaireList =
+            comActQuestnaireDAO.getIndexApplicationQuestnaireList(communityId);
+        if (!applicationQuestnaireList.isEmpty()) {
+            easyPhotoRewardVO.setApplicationQuestnaireList(applicationQuestnaireList);
+        }
+        //查询社区正在进行中的banner预约/登记列表
+        List<ComActReserveIndexVo> comActReserveIndexVos=comActReserveMapper.indexBanner(communityId);
+        if(!comActReserveIndexVos.isEmpty()){
+            easyPhotoRewardVO.setComActReserveIndexBannerVos(comActReserveIndexVos);
+        }
+        //查询社区正在进行中的应用预约/登记列表
+        List<ComActReserveIndexVo> comActReserveIndexApplicationVos=comActReserveMapper.indexApplication(communityId);
+        if(!comActReserveIndexApplicationVos.isEmpty()){
+            comActReserveIndexApplicationVos.forEach(comActReserveIndexVo -> {
+               Integer count=comActReserveRecordMapper.selectCount(new QueryWrapper<ComActReserveRecordDO>().lambda().eq(ComActReserveRecordDO::getReserveId,comActReserveIndexVo.getId()).eq(ComActReserveRecordDO::getUserId,userId));
+               if(count>0){
+                   comActReserveIndexVo.setIsCommit(1);
+               }
+               else {
+                   comActReserveIndexVo.setIsCommit(2);
+               }
+            });
+            easyPhotoRewardVO.setComActReserveIndexApplicationVos(comActReserveIndexApplicationVos);
+        }
+        //查询banner
+        List<BannerVO> bannerVOS=this.comActEasyPhotoDAO.banner(communityId);
+        if(!bannerVOS.isEmpty()){
+            easyPhotoRewardVO.setBannerVOS(bannerVOS);
+        }
+        return R.ok(easyPhotoRewardVO);
+    }
+
+    /**
+     * 获取首页弹窗接口
+     *
+     * @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
+     *            用户id
+     * @return 读取结果
+     */
+    @Override
+    public R readUserReward(Long userId, Long communityId) {
+        ComActEasyPhotoRewardDO easyPhotoRewardDO =
+            comActEasyPhotoRewardMapper.selectOne(new QueryWrapper<ComActEasyPhotoRewardDO>().lambda()
+                .eq(ComActEasyPhotoRewardDO::getUserId, userId).eq(ComActEasyPhotoRewardDO::getCommunityId, communityId)
+                .eq(ComActEasyPhotoRewardDO::getIsRead, ComActEasyPhotoRewardDO.isRead.no));
+        if (easyPhotoRewardDO != null) {
+            easyPhotoRewardDO.setIsRead(ComActEasyPhotoRewardDO.isRead.yes);
+            easyPhotoRewardDO.setUpdateAt(new Date());
+            comActEasyPhotoRewardMapper.updateById(easyPhotoRewardDO);
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R easyPhotoCount(ComActEasyPhotoVO comActEasyPhotoVO) {
+        return R.ok(this.comActEasyPhotoDAO.easyPhotoCount(comActEasyPhotoVO));
+    }
+
+    @Override
+    public R updatePageeasyphoto(ComActEasyPhotoVO comActEasyPhotoVO) {
+        ComActEasyPhotoDO comActEasyPhotoDO = new ComActEasyPhotoDO();
+        BeanUtils.copyProperties(comActEasyPhotoVO, comActEasyPhotoDO);
+        int result = this.comActEasyPhotoDAO.updateById(comActEasyPhotoDO);
+        if (result > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    @Override
+    public R export(ExportEasyPhotoDTO exportEasyPhotoDTO) {
+        if (exportEasyPhotoDTO != null) {
+            List<ExportEasyPhotoVO> list;
+            if (!CollectionUtils.isEmpty(exportEasyPhotoDTO.getIds())) {
+                list = this.comActEasyPhotoDAO.exportByIds(exportEasyPhotoDTO.getIds());
+            } else {
+                list = this.comActEasyPhotoDAO.export(exportEasyPhotoDTO);
+            }
+            return R.ok(list);
+        }
+        return R.fail("参数错误");
+    }
+
+    /**
+     * 社区后台-切换随手拍公示状态
+     * 
+     * @param comActEasyPhotoVO
+     *            请求参数
+     * @return 切换结果
+     */
+    @Override
+    public R easyPhotoSwitchPublicity(ComActEasyPhotoVO comActEasyPhotoVO) {
+        // 查询随手拍
+        ComActEasyPhotoDO easyPhotoDO = this.baseMapper.selectById(comActEasyPhotoVO.getId());
+        if (easyPhotoDO == null) {
+            return R.fail("未查询到随手拍记录");
+        }
+        easyPhotoDO.setIsPublicity(comActEasyPhotoVO.getIsPublicity());
+        if (this.baseMapper.updateById(easyPhotoDO) > 0) {
+            return R.ok();
+        } else {
+            return R.fail();
+        }
+    }
+
+    /**
+     * 查询社区待处理随手拍id集合
+     * 
+     * @param communityId
+     *            社区id
+     * @return 社区待处理随手拍id集合
+     */
+    @Override
+    public R easyPhotoNoHandleList(Long communityId) {
+        return R.ok(this.baseMapper.easyPhotoNoHandleIds(communityId));
+    }
+
+    /**
+     * 获取人大代表反馈记录
+     * @param id 随手拍id
+     * @return
+     */
+    @Override
+    public R getFeedbackList(Long id) {
+        return R.ok(comActEasyPhotoFeedbackMapper.getPhotoFeedbackListForDpc(id));
+    }
+
+    /**
+     * 人大代表反馈随手拍
+     * @param comActEasyPhotoVO
+     * @return
+     */
+    @Override
+    public R addEasyPhotoFeedbackForDpc(ComActEasyPhotoVO comActEasyPhotoVO) {
+        Date nowDate = new Date();
+        // 操作类型 1审核通过 2驳回 3反馈 4完成随手拍
+        ComActEasyPhotoDO cmActEasyPhotoDO = this.comActEasyPhotoDAO.selectById(comActEasyPhotoVO.getId());
+        if (cmActEasyPhotoDO == null) {
+            return R.fail("未查询到随手拍记录");
+        }
+        if (!cmActEasyPhotoDO.getStatus().equals(ComActEasyPhotoDO.status.dfk)) {
+            return R.fail("该随手拍不是进行中状态,不可进行反馈");
+        }
+        // 给随手拍新增反馈信息
+        ComActEasyPhotoFeedbackDO photoFeedbackDO = new ComActEasyPhotoFeedbackDO();
+        photoFeedbackDO.setEasyId(comActEasyPhotoVO.getId());
+        photoFeedbackDO.setFeedbackContent(comActEasyPhotoVO.getHandleResult());
+        photoFeedbackDO.setFeedbackImg(comActEasyPhotoVO.getHandlePhotoList());
+        photoFeedbackDO.setType(2);
+        photoFeedbackDO.setCreateAt(nowDate);
+        photoFeedbackDO.setCreateBy(comActEasyPhotoVO.getUserId());
+        int result = comActEasyPhotoFeedbackMapper.insert(photoFeedbackDO);
+        if (result > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 获取社区置顶动态banner
+     * @param communityId
+     * */
+    @Override
+    public R getUserRewardNew(Long userId, Long communityId) {
+        ComActEasyPhotoRewardVO easyPhotoRewardVO=new ComActEasyPhotoRewardVO();
+        List<BannerVO> bannerVOS=this.comActEasyPhotoDAO.getBanner(communityId);
+        if(!bannerVOS.isEmpty()){
+            easyPhotoRewardVO.setBannerVOS(bannerVOS);
+        }
+        return R.ok(easyPhotoRewardVO);
+    }
+
+    @Override
+    public R selectStatisticsPhoto(){
+        //所有分组
+        List<StatisticsPhotoVO> statisticsPhotoVOS = this.baseMapper.selectPhotoAll();
+        int all = statisticsPhotoVOS.stream().mapToInt(StatisticsPhotoVO::getCountNum).sum();
+        for (StatisticsPhotoVO statisticsPhotoVO : statisticsPhotoVOS) {
+            if (0!=all){
+                BigDecimal countNum = new BigDecimal(statisticsPhotoVO.getCountNum());
+                BigDecimal allDecimal = new BigDecimal(all);
+                BigDecimal percent = countNum.divide(allDecimal,4, BigDecimal.ROUND_HALF_DOWN).multiply(new BigDecimal(100));
+                statisticsPhotoVO.setPercent(percent);
+            }
+        }
+//        Map<String, StatisticsPhotoVO> circleMap = statisticsPhotoVOS
+//                .stream()
+//                .collect(Collectors.toMap(StatisticsPhotoVO::getCountName, Function.identity()));
+
+
+        //按月份查询
+        List<StatisticsPhotoVO> statisticsPhotoVOS1 = this.baseMapper.selectPhotoByMonth();
+        //按类型分组求和
+        Map<String, IntSummaryStatistics> statusCollect = statisticsPhotoVOS1
+                .stream()
+                .collect(Collectors.groupingBy(StatisticsPhotoVO::getCountName,
+                        Collectors.summarizingInt(StatisticsPhotoVO::getCountNum)));
+
+        for (StatisticsPhotoVO statisticsPhotoVO : statisticsPhotoVOS1) {
+            String countName = statisticsPhotoVO.getCountName();
+            if (statusCollect.containsKey(countName)){
+                IntSummaryStatistics intSummaryStatistics = statusCollect.get(countName);
+                long sum = intSummaryStatistics.getSum();
+                if (0L!=sum) {
+                    BigDecimal countNum = new BigDecimal(statisticsPhotoVO.getCountNum());
+                    BigDecimal sumDecimal = new BigDecimal(sum);
+                    BigDecimal percent = countNum.divide(sumDecimal, 4, BigDecimal.ROUND_HALF_DOWN).multiply(new BigDecimal(100));
+                    statisticsPhotoVO.setPercent(percent);
+                }
+            }
+        }
+        Map<String, Map<String, StatisticsPhotoVO>> chartMap = statisticsPhotoVOS1.stream().collect(Collectors.groupingBy(StatisticsPhotoVO::getStatisticsDate, Collectors.toMap(StatisticsPhotoVO::getCountName, Function.identity())));
+
+
+
+
+        // 状态 1待处理   2进行中 3已驳回 4待评价 5.已完成
+        String[] statusArr = {"待处理","进行中","已驳回","待评价","已完成"};
+        List<String> latest12Month = DateUtils.getLatest12Month(LocalDate.now(), 10);
+        for (String month : latest12Month) {
+            Map<String, StatisticsPhotoVO> map1;
+            if(chartMap.containsKey(month)){
+                map1 = chartMap.get(month);
+            }else {
+                map1 = new HashMap<>();
+            }
+            for (String status : statusArr) {
+                if (!map1.containsKey(status)){
+                    StatisticsPhotoVO statisticsPhotoVO = new StatisticsPhotoVO();
+                    statisticsPhotoVO.setCountNum(0);
+                    statisticsPhotoVO.setStatisticsDate(month);
+                    statisticsPhotoVO.setCountName(status);
+                    statisticsPhotoVOS1.add(statisticsPhotoVO);
+                    map1.put(status,statisticsPhotoVO);
+                }
+            }
+            chartMap.put(month,map1);
+        }
+        Map<String, List<StatisticsPhotoVO>> stringListMap = statisticsPhotoVOS1
+                .stream()
+                .sorted(Comparator.comparing(StatisticsPhotoVO::getStatisticsDate))
+                .collect(Collectors.groupingBy(StatisticsPhotoVO::getCountName));
+
+
+        Map<String,Object> retMap = new HashMap<>();
+        retMap.put("statisticsPhotoVOS",statisticsPhotoVOS);
+        retMap.put("monthMap",stringListMap);
+
+        return R.ok(retMap);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEnterpriseServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEnterpriseServiceImpl.java
new file mode 100644
index 0000000..ea72e22
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEnterpriseServiceImpl.java
@@ -0,0 +1,106 @@
+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.enterprise.AddEnterpriseDTO;
+import com.panzhihua.common.model.dtos.community.enterprise.EditEnterpriseDTO;
+import com.panzhihua.common.model.dtos.community.enterprise.PageEnterpriseDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.dao.ComActDAO;
+import com.panzhihua.service_community.dao.ComActEnterpriseDAO;
+import com.panzhihua.service_community.entity.ComActEnterprise;
+import com.panzhihua.service_community.model.dos.ComActDO;
+import com.panzhihua.service_community.service.ComActEnterpriseService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+import static java.util.Objects.isNull;
+
+/**
+ * (ComActEnterprise)表服务实现类
+ *
+ * @author makejava
+ * @since 2022-05-31 10:17:02
+ */
+@Service("comActEnterpriseService")
+public class ComActEnterpriseServiceImpl extends ServiceImpl<ComActEnterpriseDAO, ComActEnterprise>
+    implements ComActEnterpriseService {
+
+    @Resource
+    private ComActDAO comActDAO;
+
+    /**
+     * 新增社区企业
+     * @param addEnterpriseDTO
+     * @return
+     */
+    @Override
+    public R addEnterprise(AddEnterpriseDTO addEnterpriseDTO) {
+        ComActDO comActDO = comActDAO.selectById(addEnterpriseDTO.getCommunityId());
+        ComActEnterprise enterprise = new ComActEnterprise();
+        BeanUtils.copyProperties(addEnterpriseDTO, enterprise);
+        enterprise.setStreetId(comActDO.getStreetId());
+        int result = this.baseMapper.insert(enterprise);
+        if (result > 0) {
+            return R.ok();
+        }
+        return R.fail("操作失败,请重新尝试");
+    }
+
+    /**
+     * 修改社区企业
+     * @param editEnterpriseDTO
+     * @return
+     */
+    @Override
+    public R editEnterprise(EditEnterpriseDTO editEnterpriseDTO) {
+        ComActEnterprise enterprise = this.baseMapper.selectById(editEnterpriseDTO.getId());
+        if (isNull(enterprise)) {
+            return R.fail("资源不存在");
+        }
+        ComActDO comActDO = comActDAO.selectById(editEnterpriseDTO.getCommunityId());
+        BeanUtils.copyProperties(editEnterpriseDTO, enterprise);
+        enterprise.setStreetId(comActDO.getStreetId());
+        int result = this.baseMapper.updateById(enterprise);
+        if (result > 0) {
+            return R.ok();
+        }
+        return R.fail("操作失败,请重新尝试");
+    }
+
+    /**
+     * 删除社区企业
+     * @param id
+     * @return
+     */
+    @Override
+    public R deleteEnterprise(Long id) {
+        this.baseMapper.deleteById(id);
+        return R.ok();
+    }
+
+    /**
+     * 获取社区企业详情
+     * @param id
+     * @return
+     */
+    @Override
+    public R detailEnterprise(Long id) {
+        return R.ok(this.baseMapper.detailEnterprise(id));
+    }
+
+    /**
+     * 分页查询社区企业
+     * @param pageEnterpriseDTO
+     * @return
+     */
+    @Override
+    public R pageEnterprise(PageEnterpriseDTO pageEnterpriseDTO) {
+        Page page = new Page<>();
+        page.setSize(pageEnterpriseDTO.getPageSize());
+        page.setCurrent(pageEnterpriseDTO.getPageNum());
+        return R.ok(this.baseMapper.pageEnterprise(page, pageEnterpriseDTO));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEnterpriseTypeServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEnterpriseTypeServiceImpl.java
new file mode 100644
index 0000000..d2b0bef
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActEnterpriseTypeServiceImpl.java
@@ -0,0 +1,142 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.community.enterprise.AddEnterpriseTypeDTO;
+import com.panzhihua.common.model.dtos.community.enterprise.EditEnterpriseTypeDTO;
+import com.panzhihua.common.model.dtos.community.enterprise.PageEnterpriseTypeDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.dao.ComActEnterpriseDAO;
+import com.panzhihua.service_community.dao.ComActEnterpriseTypeDAO;
+import com.panzhihua.service_community.entity.ComActEnterprise;
+import com.panzhihua.service_community.entity.ComActEnterpriseType;
+import com.panzhihua.service_community.service.ComActEnterpriseTypeService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+import java.util.List;
+
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+
+/**
+ * (ComActEnterpriseType)表服务实现类
+ *
+ * @author makejava
+ * @since 2022-06-06 15:30:52
+ */
+@Service("comActEnterpriseTypeService")
+public class ComActEnterpriseTypeServiceImpl extends ServiceImpl<ComActEnterpriseTypeDAO, ComActEnterpriseType>
+    implements ComActEnterpriseTypeService {
+
+    @Resource
+    private ComActEnterpriseDAO comActEnterpriseDAO;
+
+    /**
+     * 新增服务分类
+     * @param addEnterpriseTypeDTO
+     * @return
+     */
+    @Override
+    public R addEnterpriseType(AddEnterpriseTypeDTO addEnterpriseTypeDTO) {
+        ComActEnterpriseType enterpriseType = this.baseMapper.selectOne(new LambdaQueryWrapper<ComActEnterpriseType>()
+                .eq(ComActEnterpriseType::getCommunityId, addEnterpriseTypeDTO.getCommunityId())
+                .eq(ComActEnterpriseType::getName, addEnterpriseTypeDTO.getName()));
+        if (nonNull(enterpriseType)) {
+            return R.fail("分类名称已存在");
+        }
+        enterpriseType = new ComActEnterpriseType();
+        BeanUtils.copyProperties(addEnterpriseTypeDTO, enterpriseType);
+        int result = this.baseMapper.insert(enterpriseType);
+        if (result > 0) {
+            return R.ok();
+        }
+        return R.fail("操作失败,请重新尝试");
+    }
+
+    /**
+     * 修改服务分类
+     * @param enterpriseTypeDTO
+     * @return
+     */
+    @Override
+    public R editEnterpriseType(EditEnterpriseTypeDTO enterpriseTypeDTO) {
+        ComActEnterpriseType enterpriseType = this.baseMapper.selectById(enterpriseTypeDTO.getId());
+        if (isNull(enterpriseType)) {
+            return R.fail("资源不存在");
+        }
+        if (!enterpriseType.getName().equals(enterpriseTypeDTO.getName())) {
+            ComActEnterpriseType enterpriseType2 = this.baseMapper.selectOne(new LambdaQueryWrapper<ComActEnterpriseType>()
+                    .eq(ComActEnterpriseType::getCommunityId, enterpriseTypeDTO.getCommunityId())
+                    .eq(ComActEnterpriseType::getName, enterpriseTypeDTO.getName()));
+            if (nonNull(enterpriseType2)) {
+                return R.fail("分类名称已存在");
+            }
+        }
+        BeanUtils.copyProperties(enterpriseTypeDTO, enterpriseType);
+        int result = this.baseMapper.updateById(enterpriseType);
+        if (result > 0) {
+            return R.ok();
+        }
+        return R.fail("操作失败,请重新尝试");
+    }
+
+    /**
+     * 删除服务分类
+     * @param id
+     * @return
+     */
+    @Override
+    public R deleteEnterpriseType(Long id) {
+        ComActEnterpriseType enterpriseType = this.baseMapper.selectById(id);
+        if (isNull(enterpriseType)) {
+            return R.fail("资源不存在");
+        }
+        List<ComActEnterprise> enterpriseList = comActEnterpriseDAO.selectList(new LambdaQueryWrapper<ComActEnterprise>().eq(ComActEnterprise::getType, id));
+        if (nonNull(enterpriseList) && !enterpriseList.isEmpty()) {
+            return R.fail("该分类已被引用,无法删除");
+        }
+        enterpriseType.setIsDel(true);
+        int result = this.baseMapper.updateById(enterpriseType);
+        if (result > 0) {
+            return R.ok();
+        }
+        return R.fail("操作失败,请重新尝试");
+    }
+
+    /**
+     * 获取服务分类详情
+     * @param id
+     * @return
+     */
+    @Override
+    public R detailEnterpriseType(Long id) {
+        return R.ok(this.baseMapper.detailEnterpriseType(id));
+    }
+
+    /**
+     * 分页查询服务分类
+     * @param pageEnterpriseTypeDTO
+     * @return
+     */
+    @Override
+    public R pageEnterpriseType(PageEnterpriseTypeDTO pageEnterpriseTypeDTO) {
+        Page page = new Page<>();
+        page.setSize(pageEnterpriseTypeDTO.getPageSize());
+        page.setCurrent(pageEnterpriseTypeDTO.getPageNum());
+        return R.ok(this.baseMapper.pageEnterpriseType(page, pageEnterpriseTypeDTO));
+    }
+
+    /**
+     * 获取服务分类列表
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R getEnterpriseTypeList(Long communityId) {
+        return R.ok(this.baseMapper.getEnterpriseTypeList(communityId));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActFourMemberServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActFourMemberServiceImpl.java
new file mode 100644
index 0000000..b1fa119
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActFourMemberServiceImpl.java
@@ -0,0 +1,274 @@
+package com.panzhihua.service_community.service.impl;
+
+import cn.hutool.core.date.DateUtil;
+import com.alibaba.fastjson.JSON;
+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.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.*;
+import com.panzhihua.common.model.vos.partybuilding.ComPbMemberVO;
+import com.panzhihua.common.model.vos.user.AdministratorsUserVO;
+import com.panzhihua.common.model.vos.user.ComHouseMemberVo;
+import com.panzhihua.common.model.vos.user.ComMngHouseVo;
+import com.panzhihua.common.service.partybuilding.PartyBuildingService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.AgeUtils;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.dao.*;
+import com.panzhihua.service_community.entity.ComActCommittee;
+import com.panzhihua.service_community.entity.ComActFourMember;
+import com.panzhihua.service_community.model.dos.ComMngBuildingDO;
+import com.panzhihua.service_community.model.dos.ComMngPopulationDO;
+import com.panzhihua.service_community.model.dos.ComMngPopulationHouseUserDO;
+import com.panzhihua.service_community.model.dos.ComPbMemberDO;
+import com.panzhihua.service_community.service.ComActFourMemberService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * (ComActFourMember)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-09-23 10:13:31
+ */
+@Slf4j
+@Service
+public class ComActFourMemberServiceImpl extends ServiceImpl<ComActFourMemberDao, ComActFourMember> implements ComActFourMemberService {
+    @Resource
+    private ComActFourMemberDao comActFourMemberDao;
+    @Resource
+    private ComMngBuildingDAO comMngBuildingDAO;
+    @Resource
+    private UserService userService;
+    @Resource
+    private ComMngPopulationDAO comMngPopulationDAO;
+    @Resource
+    private ComPbMemberDAO comPbMemberDAO;
+    @Resource
+    private ComMngPopulationHouseUserDAO comMngPopulationHouseUserDAO;
+    @Resource
+    private ComMngPopulationHouseDAO comMngPopulationHouseDAO;
+    @Override
+    public R pageList(CommonPage commonPage) {
+        IPage<ComActFourMemberVO> comActFourMemberVOIPage=comActFourMemberDao.pageList(new Page(commonPage.getPage(),commonPage.getSize()),commonPage);
+        if(!comActFourMemberVOIPage.getRecords().isEmpty()){
+            comActFourMemberVOIPage.getRecords().forEach(comActFourMemberVO -> {
+                if(comActFourMemberVO.getJurisdictionContent()!=null){
+                    comActFourMemberVO.setJurisdictionContentList(JSON.parseArray(comActFourMemberVO.getJurisdictionContent(),String.class));
+                }
+            });
+        }
+        return R.ok(comActFourMemberVOIPage);
+    }
+
+    @Override
+    public R insert(ComActFourMemberVO comActFourMemberVO) {
+        if(comActFourMemberVO!=null&&comActFourMemberVO.getJurisdiction()!=null){
+            if(comActFourMemberDao.selectCount(new QueryWrapper<ComActFourMember>().lambda()
+                    .eq(ComActFourMember::getIdCard,comActFourMemberVO.getIdCard())
+                    .eq(ComActFourMember::getCommunityId, comActFourMemberVO.getCommunityId()))>0){
+                return R.fail("身份证号重复");
+            }
+            ComActFourMember comActFourMember=new ComActFourMember();
+            List<String> jurisdictionList=new ArrayList<>();
+            List<String> jurisdictionList1=comMngBuildingDAO.find(comActFourMemberVO.getJurisdiction());
+            List<String> jurisdictionList2=comMngBuildingDAO.findByVillage(comActFourMemberVO.getJurisdiction());
+            if(!jurisdictionList1.isEmpty()){
+                jurisdictionList.addAll(jurisdictionList1);
+            }
+            if(!jurisdictionList2.isEmpty()){
+                jurisdictionList.addAll(jurisdictionList2);
+            }
+            if(!jurisdictionList.isEmpty()&&jurisdictionList.size()==jurisdictionList.stream().distinct().collect(Collectors.toList()).size()){
+                AdministratorsUserVO administratorsUserVO=new AdministratorsUserVO();
+                BeanUtils.copyProperties(comActFourMemberVO,administratorsUserVO);
+                administratorsUserVO.setType(3);
+                R r=userService.addUserBackstageProperty(administratorsUserVO);
+                if(R.isOk(r)){
+                    comActFourMemberVO.setUserId(Long.parseLong(r.getData().toString()));
+                    comActFourMemberVO.setCreateTime(DateUtil.date());
+                    BeanUtils.copyProperties(comActFourMemberVO,comActFourMember);
+                    comActFourMember.setJurisdictionContent(JSON.toJSONString(jurisdictionList));
+                    this.comActFourMemberDao.insert(comActFourMember);
+                    return R.ok();
+                }
+                return R.fail("手机号或账户已存在");
+            }
+            return R.fail("绑定管辖区域不能为空或重复");
+        }
+        return R.fail();
+    }
+
+    @Override
+    public R update(ComActFourMemberVO comActFourMemberVO) {
+        if(comActFourMemberVO!=null){
+            if(comActFourMemberVO.getIds()!=null){
+                for(Integer id:comActFourMemberVO.getIds()){
+                    AdministratorsUserVO administratorsUserVO=new AdministratorsUserVO();
+                    ComActFourMember comActFourMemberBase=this.comActFourMemberDao.selectById(id);
+                    if(comActFourMemberBase!=null){
+                        comActFourMemberVO.setUserId(comActFourMemberBase.getUserId());
+                        BeanUtils.copyProperties(comActFourMemberVO,administratorsUserVO);
+                        userService.putUserBackstage(administratorsUserVO);
+                    }
+                }
+                return R.ok();
+            }
+            else {
+                ComActFourMember comActFourMember=new ComActFourMember();
+                ComActFourMember comActFourMemberBase=this.comActFourMemberDao.selectById(comActFourMemberVO.getId());
+                if(comActFourMemberBase!=null){
+                    comActFourMember.setId(comActFourMemberBase.getId());
+                    comActFourMember.setUserId(comActFourMemberBase.getUserId());
+                }
+                if(comActFourMemberVO.getJurisdiction()!=null){
+                    List<String> jurisdictionList=comMngBuildingDAO.find(comActFourMemberVO.getJurisdiction());
+                    if(!jurisdictionList.isEmpty()&&jurisdictionList.size()==jurisdictionList.stream().distinct().collect(Collectors.toList()).size()){
+                        comActFourMember.setJurisdictionContent(JSON.toJSONString(jurisdictionList));
+                    }
+                    else {
+                        return R.fail("绑定管辖区域不能为空或重复");
+                    }
+                }
+                AdministratorsUserVO administratorsUserVO=new AdministratorsUserVO();
+                BeanUtils.copyProperties(comActFourMemberVO,administratorsUserVO);
+                R r=userService.putUserBackstage(administratorsUserVO);
+                if(R.isOk(r)){
+                    BeanUtils.copyProperties(comActFourMemberVO,comActFourMember);
+                    this.comActFourMemberDao.updateById(comActFourMember);
+                    return R.ok();
+                }
+                return R.fail("修改失败");
+            }
+
+        }
+        return R.fail();
+    }
+
+    @Override
+    public R delete(ComActFourMemberVO comActFourMemberVO) {
+        if(comActFourMemberVO.getIds()!=null){
+            for(Integer id: comActFourMemberVO.getIds()){
+                ComActFourMember comActFourMember=comActFourMemberDao.selectById(id);
+                if(comActFourMember!=null){
+                    if(comActFourMember.getUserId()!=null){
+                        AdministratorsUserVO administratorsUserVO=new AdministratorsUserVO();
+                        administratorsUserVO.setUserId(comActFourMember.getUserId());
+                        administratorsUserVO.setCommunityId(comActFourMember.getCommunityId());
+                        userService.deleteUserBackstage(administratorsUserVO);
+                        this.comActFourMemberDao.deleteById(id);
+                    }
+                }
+            }
+            return R.ok();
+        }
+        else {
+            ComActFourMember comActFourMember=comActFourMemberDao.selectById(comActFourMemberVO.getId());
+            if(comActFourMember!=null){
+                if(comActFourMember.getUserId()!=null){
+                    AdministratorsUserVO administratorsUserVO=new AdministratorsUserVO();
+                    administratorsUserVO.setUserId(comActFourMember.getUserId());
+                    administratorsUserVO.setCommunityId(comActFourMember.getCommunityId());
+                    userService.deleteUserBackstage(administratorsUserVO);
+                    this.comActFourMemberDao.deleteById(comActFourMemberVO.getId());
+                    return R.ok();
+
+                }
+            }
+            return R.fail("用户账号错误");
+        }
+
+
+    }
+
+    @Override
+    public R get(Long id) {
+        return R.ok(comActFourMemberDao.getById(id));
+    }
+
+    @Override
+    public R selectByMember(CommonPage commonPage) {
+        IPage<ComMngPopulationNoSecretVO> comMngPopulationDOIPage=this.comMngPopulationDAO.query(new Page<ComMngPopulationDO>(commonPage.getPage(),commonPage.getSize()),commonPage);
+        if (!comMngPopulationDOIPage.getRecords().isEmpty()) {
+            comMngPopulationDOIPage.getRecords().forEach(populDO -> {
+                if (StringUtils.isNotEmpty(populDO.getBirthday())) {
+                    populDO.setAge(AgeUtils.getAgeFromBirthTimes(populDO.getBirthday()));
+                }
+            });
+        }
+        return R.ok(comMngPopulationDOIPage);
+    }
+
+    @Override
+    public R selectById(Long id) {
+        FourMemberDetailVO fourMemberDetailVO=new FourMemberDetailVO();
+        ComMngPopulationDO comMngPopulationDO = comMngPopulationDAO.selectById(id);
+        if (ObjectUtils.isEmpty(comMngPopulationDO)) {
+            return R.fail("用户信息不存在");
+        }
+        // if(StringUtils.isNotEmpty(comMngPopulationDO.getBirthday())){//计算年龄
+        // comMngPopulationDO.setAge(AgeUtils.getAgeFromBirthTimes(comMngPopulationDO.getBirthday()));
+        // }
+
+        ComMngPopulationNoSecretVO comMngPopulationVO = new ComMngPopulationNoSecretVO();
+        BeanUtils.copyProperties(comMngPopulationDO, comMngPopulationVO);
+
+        // 查询户主关系信息
+        // List<ComHouseMemberVo> comMngFamilyInfoVOS =
+        // populationDAO.listHouseMermberByUserId(comMngPopulationDO.getHouseId(),comMngPopulationDO.getId());
+        // if (!comMngFamilyInfoVOS.isEmpty()) {
+        // comMngPopulationVO.setComMngFamilyInfoVOS(comMngFamilyInfoVOS);
+        // }
+        // 查询户主关系信息
+        List<ComHouseMemberVo> comMngFamilyInfoVOS = comMngPopulationDAO.listHouseMermberByPopuId(comMngPopulationDO.getId());
+        if (!comMngFamilyInfoVOS.isEmpty()) {
+            for (ComHouseMemberVo comHouseMemberVo : comMngFamilyInfoVOS) {
+                comHouseMemberVo.setAge(AgeUtils.getAgeFromBirthTimes(comHouseMemberVo.getBirthDay()));
+            }
+            comMngPopulationVO.setComMngFamilyInfoVOS(comMngFamilyInfoVOS);
+        }
+        // 设置户主关系
+        List<ComMngPopulationHouseUserDO> comMngPopulationHouseUserDOS =
+                comMngPopulationHouseUserDAO.selectList((new QueryWrapper<ComMngPopulationHouseUserDO>().lambda()
+                        .eq(ComMngPopulationHouseUserDO::getPopulId, id)));
+        if (!comMngPopulationHouseUserDOS.isEmpty()) {
+            comMngPopulationVO
+                    .setRelation(comMngPopulationHouseUserDOS.get(comMngPopulationHouseUserDOS.size() - 1).getRelation());
+        }
+        // 设置年龄
+        if (StringUtils.isNotEmpty(comMngPopulationVO.getBirthday())) {
+            comMngPopulationVO.setAge(AgeUtils.getAgeFromBirthTimes(comMngPopulationVO.getBirthday()));
+        }
+        // 查询当前用户房屋信息
+        List<ComMngHouseVo> houseList = comMngPopulationHouseDAO.getPopulHouseListByPopulId(id);
+        if (!houseList.isEmpty()) {
+            houseList.forEach(house -> {
+
+            });
+            comMngPopulationVO.setHouseList(houseList);
+        }
+
+        if(comMngPopulationVO!=null&&StringUtils.isNotEmpty(comMngPopulationVO.getCardNoStr())){
+            fourMemberDetailVO.setComMngPopulationVO(comMngPopulationVO);
+            ComPbMemberVO comPbMemberDO=comPbMemberDAO.selectById(comMngPopulationVO.getCardNoStr());
+            if(comPbMemberDO!=null){
+                fourMemberDetailVO.setPartyBuildingMemberVO(comPbMemberDO);
+            }
+        }
+        return R.ok(fourMemberDetailVO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActIntegralRuleServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActIntegralRuleServiceImpl.java
new file mode 100644
index 0000000..ebc0830
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActIntegralRuleServiceImpl.java
@@ -0,0 +1,203 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.community.integral.admin.EditComActIntegralRuleDTO;
+import com.panzhihua.common.model.dtos.community.integral.admin.PageComActIntegralRuleDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.integral.ComActIntegralUserRuleVO;
+import com.panzhihua.service_community.dao.ComActIntegralRuleMapper;
+import com.panzhihua.service_community.model.dos.ComActIntegralRuleDO;
+import com.panzhihua.service_community.service.ComActIntegralRuleService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-07-28 16:02:46
+ * @describe 积分规则表服务实现类
+ */
+@Slf4j
+@Service
+public class ComActIntegralRuleServiceImpl extends ServiceImpl<ComActIntegralRuleMapper, ComActIntegralRuleDO>
+    implements ComActIntegralRuleService {
+
+    /**
+     * 查询社区下积分任务列表
+     * 
+     * @param communityId
+     *            社区id
+     * @return 查询社区下积分任务列表
+     */
+    @Override
+    public List<ComActIntegralUserRuleVO> getIntegralReceiveApplets(Long communityId) {
+        return this.baseMapper.getIntegralReceiveApplets(communityId);
+    }
+
+    /**
+     * 社区后台-根据社区id查询社区下积分规则列表
+     * 
+     * @param integralRuleDTO
+     *            请求参数
+     * @return 社区下积分规则列表
+     */
+    @Override
+    public R getIntegralRuleAdminList(PageComActIntegralRuleDTO integralRuleDTO) {
+        Integer count = this.baseMapper.selectCount(new QueryWrapper<ComActIntegralRuleDO>().lambda()
+            .eq(ComActIntegralRuleDO::getCommunityId, integralRuleDTO.getCommunityId()));
+        if (count == null || count <= 0) {
+            List<ComActIntegralRuleDO> integralRuleList = getIntegralRuleList(integralRuleDTO.getCommunityId());
+            this.saveBatch(integralRuleList);
+        }
+        return R.ok(this.baseMapper.getIntegralRuleAdminList(
+            new Page(integralRuleDTO.getPageNum(), integralRuleDTO.getPageSize()), integralRuleDTO));
+    }
+
+    /**
+     * 加载默认社区积分规则列表
+     * 
+     * @param communityId
+     *            社区id
+     * @return 默认积分规则列表
+     */
+    @Override
+    public List<ComActIntegralRuleDO> getIntegralRuleList(Long communityId) {
+        List<ComActIntegralRuleDO> integralRuleList = new ArrayList<>();
+
+        List<ComActIntegralRuleDO> defaultRuleList = this.baseMapper.getIntegralDefaultList();
+        if (!defaultRuleList.isEmpty()) {
+            defaultRuleList.forEach(defaultRule -> {
+                ComActIntegralRuleDO integralRuleDO = new ComActIntegralRuleDO();
+                integralRuleDO.setCommunityId(communityId);
+                integralRuleDO.setName(defaultRule.getName());
+                integralRuleDO.setAmount(defaultRule.getAmount());
+                integralRuleDO.setIntegralDescribe(defaultRule.getIntegralDescribe());
+                integralRuleDO.setIsRestrict(defaultRule.getIsRestrict());
+                integralRuleDO.setType(defaultRule.getType());
+                integralRuleDO.setCount(defaultRule.getCount());
+                integralRuleDO.setIntegralType(defaultRule.getIntegralType());
+                integralRuleList.add(integralRuleDO);
+            });
+            return integralRuleList;
+        }
+
+        // 随手拍默认积分规则
+        ComActIntegralRuleDO integralRuleSSPDO = new ComActIntegralRuleDO();
+        integralRuleSSPDO.setCommunityId(communityId);
+        integralRuleSSPDO.setName("发布随手拍");
+        integralRuleSSPDO.setAmount(5);
+        integralRuleSSPDO.setIntegralDescribe("发布随手拍并被公示后");
+        integralRuleSSPDO.setIsRestrict(1);
+        integralRuleSSPDO.setType(ComActIntegralRuleDO.type.day);
+        integralRuleSSPDO.setCount(0);
+        integralRuleSSPDO.setIntegralType(ComActIntegralRuleDO.integralType.fbssp);
+        integralRuleList.add(integralRuleSSPDO);
+
+        // 微心愿默认积分规则
+        // ComActIntegralRuleDO integralRuleWXYDO = new ComActIntegralRuleDO();
+        // integralRuleWXYDO.setCommunityId(communityId);
+        // integralRuleWXYDO.setName("发布微心愿");
+        // integralRuleWXYDO.setAmount(7);
+        // integralRuleWXYDO.setIntegralDescribe("发布微心愿并完成后");
+        // integralRuleWXYDO.setIsRestrict(1);
+        // integralRuleWXYDO.setType(ComActIntegralRuleDO.type.month);
+        // integralRuleWXYDO.setCount(0);
+        // integralRuleWXYDO.setIntegralType(ComActIntegralRuleDO.integralType.fbwxy);
+        // integralRuleList.add(integralRuleWXYDO);
+
+        // 议事投票默认积分规则
+        ComActIntegralRuleDO integralRuleYSTPDO = new ComActIntegralRuleDO();
+        integralRuleYSTPDO.setCommunityId(communityId);
+        integralRuleYSTPDO.setName("参与议事投票");
+        integralRuleYSTPDO.setAmount(4);
+        integralRuleYSTPDO.setIntegralDescribe("参与议事投票");
+        integralRuleYSTPDO.setIsRestrict(1);
+        integralRuleYSTPDO.setType(ComActIntegralRuleDO.type.day);
+        integralRuleYSTPDO.setCount(0);
+        integralRuleYSTPDO.setIntegralType(ComActIntegralRuleDO.integralType.cyystp);
+        integralRuleList.add(integralRuleYSTPDO);
+
+        // 问卷调查默认积分规则
+        ComActIntegralRuleDO integralRuleWJDCDO = new ComActIntegralRuleDO();
+        integralRuleWJDCDO.setCommunityId(communityId);
+        integralRuleWJDCDO.setName("参与问卷调查");
+        integralRuleWJDCDO.setAmount(4);
+        integralRuleWJDCDO.setIntegralDescribe("参与问卷调查");
+        integralRuleWJDCDO.setIsRestrict(1);
+        integralRuleWJDCDO.setType(ComActIntegralRuleDO.type.day);
+        integralRuleWJDCDO.setCount(0);
+        integralRuleWJDCDO.setIntegralType(ComActIntegralRuleDO.integralType.cydcwj);
+        integralRuleList.add(integralRuleWJDCDO);
+
+        ComActIntegralRuleDO integralRuleJMHDDO = new ComActIntegralRuleDO();
+        integralRuleWJDCDO.setCommunityId(communityId);
+        integralRuleWJDCDO.setName("参加居民活动");
+        integralRuleWJDCDO.setAmount(0);
+        integralRuleWJDCDO.setIntegralDescribe("以居民身份参与社区活动可获得对应积分奖励");
+        integralRuleWJDCDO.setIsRestrict(1);
+        integralRuleWJDCDO.setType(ComActIntegralRuleDO.type.day);
+        integralRuleWJDCDO.setCount(0);
+        integralRuleWJDCDO.setIntegralType(ComActIntegralRuleDO.integralType.cyjmhd);
+        integralRuleList.add(integralRuleJMHDDO);
+
+        ComActIntegralRuleDO integralRuleZYZHDDO = new ComActIntegralRuleDO();
+        integralRuleWJDCDO.setCommunityId(communityId);
+        integralRuleWJDCDO.setName("参加志愿者活动");
+        integralRuleWJDCDO.setAmount(0);
+        integralRuleWJDCDO.setIntegralDescribe("以志愿者身份参与社区活动可获得对应积分奖励");
+        integralRuleWJDCDO.setIsRestrict(1);
+        integralRuleWJDCDO.setType(ComActIntegralRuleDO.type.day);
+        integralRuleWJDCDO.setCount(0);
+        integralRuleWJDCDO.setIntegralType(ComActIntegralRuleDO.integralType.cyzyzhd);
+        integralRuleList.add(integralRuleZYZHDDO);
+
+        ComActIntegralRuleDO integralRuleDYHDDO = new ComActIntegralRuleDO();
+        integralRuleWJDCDO.setCommunityId(communityId);
+        integralRuleWJDCDO.setName("参加党员活动");
+        integralRuleWJDCDO.setAmount(0);
+        integralRuleWJDCDO.setIntegralDescribe("以党员身份参与社区活动可获得相应积分");
+        integralRuleWJDCDO.setIsRestrict(1);
+        integralRuleWJDCDO.setType(ComActIntegralRuleDO.type.day);
+        integralRuleWJDCDO.setCount(0);
+        integralRuleWJDCDO.setIntegralType(ComActIntegralRuleDO.integralType.cydyhd);
+        integralRuleList.add(integralRuleDYHDDO);
+
+        return integralRuleList;
+    }
+
+    /**
+     * 社区后台-编辑社区积分规则
+     * 
+     * @param integralRuleDTO
+     *            请求参数
+     * @return 编辑结果
+     */
+    @Override
+    public R editIntegralRuleAdmin(EditComActIntegralRuleDTO integralRuleDTO) {
+        // 查询社区积分规则记录
+        ComActIntegralRuleDO integralRuleDO = this.baseMapper.selectById(integralRuleDTO.getId());
+        if (integralRuleDO == null) {
+            return R.fail("未找到积分规则记录");
+        }
+        BeanUtils.copyProperties(integralRuleDTO, integralRuleDO);
+        if (integralRuleDTO.getIsRestrict().equals(ComActIntegralRuleDO.isRestrict.no)) {
+            integralRuleDO.setCount(null);
+            integralRuleDO.setType(null);
+        }
+        integralRuleDO.setUpdateAt(new Date());
+        if (this.baseMapper.updateById(integralRuleDO) > 0) {
+            return R.ok();
+        } else {
+            return R.fail("修改失败");
+        }
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActIntegralUserChangeServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActIntegralUserChangeServiceImpl.java
new file mode 100644
index 0000000..540e1cb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActIntegralUserChangeServiceImpl.java
@@ -0,0 +1,129 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.Date;
+
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.service_community.dao.ComActIntegralUserChangeMapper;
+import com.panzhihua.service_community.model.dos.ComActIntegralUserChangeDO;
+import com.panzhihua.service_community.service.ComActIntegralUserChangeService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-07-28 16:03:05
+ * @describe 用户积分账户变动记录服务实现类
+ */
+@Slf4j
+@Service
+public class ComActIntegralUserChangeServiceImpl extends
+    ServiceImpl<ComActIntegralUserChangeMapper, ComActIntegralUserChangeDO> implements ComActIntegralUserChangeService {
+
+    /**
+     * 添加用户积分账户变动记录
+     * 
+     * @param userId
+     *            用户id
+     * @param integralId
+     *            积分账户id
+     * @param communityId
+     *            社区id
+     * @param integralSumTop
+     *            总积分数量变动前
+     * @param integralSumBack
+     *            总积分数量变动后
+     * @param integralAvailableSumTop
+     *            可用总积分数量变动前
+     * @param integralAvailableSumBack
+     *            可用总积分数量变动后
+     * @param integralFrozenSumTop
+     *            冻结总积分数量变动前
+     * @param integralFrozenSumBack
+     *            冻结总积分数量变动后
+     * @param integralPartyTop
+     *            党员积分数量变动前
+     * @param integralPartyBack
+     *            党员积分数量变动后
+     * @param integralAvailablePartyTop
+     *            可用党员积分数量变动前
+     * @param integralAvailablePartyBack
+     *            可用党员积分数量变动后
+     * @param integralFrozenPartyTop
+     *            冻结党员积分数量变动前
+     * @param integralFrozenPartyBack
+     *            冻结党员积分数量变动后
+     * @param integralVolunteerTop
+     *            志愿者积分数量变动前
+     * @param integralVolunteerBack
+     *            志愿者积分数量变动后
+     * @param integralAvailableVolunteerTop
+     *            可用志愿者积分数量变动前
+     * @param integralAvailableVolunteerBack
+     *            可用志愿者积分数量变动后
+     * @param integralFrozenVolunteerTop
+     *            冻结志愿者积分数量变动前
+     * @param integralFrozenVolunteerBack
+     *            冻结志愿者积分数量变动后
+     * @param integralResidentTop
+     *            居民积分数量变动前
+     * @param integralResidentBack
+     *            居民积分数量变动后
+     * @param integralAvailableResidentTop
+     *            可用居民积分数量变动前
+     * @param integralAvailableResidentBack
+     *            可用居民积分数量变动后
+     * @param integralFrozenResidentTop
+     *            冻结居民积分数量变动前
+     * @param integralFrozenResidentBack
+     *            冻结居民积分数量变动后
+     * @param serviceId
+     *            交易记录id
+     */
+    @Override
+    public void addIntegralUserChangeRecord(Long userId, Long integralId, Long communityId, Integer integralSumTop,
+        Integer integralSumBack, Integer integralAvailableSumTop, Integer integralAvailableSumBack,
+        Integer integralFrozenSumTop, Integer integralFrozenSumBack, Integer integralPartyTop,
+        Integer integralPartyBack, Integer integralAvailablePartyTop, Integer integralAvailablePartyBack,
+        Integer integralFrozenPartyTop, Integer integralFrozenPartyBack, Integer integralVolunteerTop,
+        Integer integralVolunteerBack, Integer integralAvailableVolunteerTop, Integer integralAvailableVolunteerBack,
+        Integer integralFrozenVolunteerTop, Integer integralFrozenVolunteerBack, Integer integralResidentTop,
+        Integer integralResidentBack, Integer integralAvailableResidentTop, Integer integralAvailableResidentBack,
+        Integer integralFrozenResidentTop, Integer integralFrozenResidentBack, Long serviceId) {
+
+        ComActIntegralUserChangeDO integralUserChangeDO = new ComActIntegralUserChangeDO();
+        integralUserChangeDO.setId(Snowflake.getId());
+        integralUserChangeDO.setUserId(userId);
+        integralUserChangeDO.setIntegralId(integralId);
+        integralUserChangeDO.setCommunityId(communityId);
+        integralUserChangeDO.setIntegralSumTop(integralSumTop);
+        integralUserChangeDO.setIntegralSumBack(integralSumBack);
+        integralUserChangeDO.setIntegralAvailableSumTop(integralAvailableSumTop);
+        integralUserChangeDO.setIntegralAvailableSumBack(integralAvailableSumBack);
+        integralUserChangeDO.setIntegralFrozenSumTop(integralFrozenSumTop);
+        integralUserChangeDO.setIntegralFrozenSumBack(integralFrozenSumBack);
+        integralUserChangeDO.setIntegralPartyTop(integralPartyTop);
+        integralUserChangeDO.setIntegralPartyBack(integralPartyBack);
+        integralUserChangeDO.setIntegralAvailablePartyTop(integralAvailablePartyTop);
+        integralUserChangeDO.setIntegralAvailablePartyBack(integralAvailablePartyBack);
+        integralUserChangeDO.setIntegralFrozenPartyTop(integralFrozenPartyTop);
+        integralUserChangeDO.setIntegralFrozenPartyBack(integralFrozenPartyBack);
+        integralUserChangeDO.setIntegralVolunteerTop(integralVolunteerTop);
+        integralUserChangeDO.setIntegralVolunteerBack(integralVolunteerBack);
+        integralUserChangeDO.setIntegralAvailableVolunteerTop(integralAvailableVolunteerTop);
+        integralUserChangeDO.setIntegralAvailableVolunteerBack(integralAvailableVolunteerBack);
+        integralUserChangeDO.setIntegralFrozenVolunteerTop(integralFrozenVolunteerTop);
+        integralUserChangeDO.setIntegralFrozenVolunteerBack(integralFrozenVolunteerBack);
+        integralUserChangeDO.setIntegralResidentTop(integralResidentTop);
+        integralUserChangeDO.setIntegralResidentBack(integralResidentBack);
+        integralUserChangeDO.setIntegralAvailableResidentTop(integralAvailableResidentTop);
+        integralUserChangeDO.setIntegralAvailableResidentBack(integralAvailableResidentBack);
+        integralUserChangeDO.setIntegralFrozenResidentTop(integralFrozenResidentTop);
+        integralUserChangeDO.setIntegralFrozenResidentBack(integralFrozenResidentBack);
+        integralUserChangeDO.setServiceId(serviceId);
+        integralUserChangeDO.setCreateAt(new Date());
+        this.baseMapper.insert(integralUserChangeDO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActIntegralUserServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActIntegralUserServiceImpl.java
new file mode 100644
index 0000000..f8bb4ae
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActIntegralUserServiceImpl.java
@@ -0,0 +1,225 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.model.dtos.community.integral.ComActIntegralCommunityRankDTO;
+import com.panzhihua.common.model.dtos.community.integral.ComActIntegralCountDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.integral.ComActIntegralUserListVO;
+import com.panzhihua.common.model.vos.community.integral.ComActIntegralUserRuleVO;
+import com.panzhihua.common.model.vos.community.integral.ComActIntegralUserVO;
+import com.panzhihua.common.model.vos.community.integral.IntegralUserRankVO;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.dao.ComActDAO;
+import com.panzhihua.service_community.dao.ComActIntegralUserMapper;
+import com.panzhihua.service_community.dao.ComActUserWalletMapper;
+import com.panzhihua.service_community.model.dos.ComActDO;
+import com.panzhihua.service_community.model.dos.ComActIntegralRuleDO;
+import com.panzhihua.service_community.model.dos.ComActIntegralUserDO;
+import com.panzhihua.service_community.model.dos.ComActIntegralUserTradeDO;
+import com.panzhihua.service_community.service.ComActIntegralRuleService;
+import com.panzhihua.service_community.service.ComActIntegralUserService;
+import com.panzhihua.service_community.service.ComActIntegralUserTradeService;
+
+import lombok.extern.slf4j.Slf4j;
+
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+
+/**
+ * @auther lyq
+ * @create 2021-07-28 16:02:57
+ * @describe 用户积分账户表服务实现类
+ */
+@Slf4j
+@Service
+public class ComActIntegralUserServiceImpl extends ServiceImpl<ComActIntegralUserMapper, ComActIntegralUserDO>
+    implements ComActIntegralUserService {
+
+    @Resource
+    private ComActUserWalletMapper comActUserWalletMapper;
+    @Resource
+    private ComActIntegralRuleService comActIntegralRuleService;
+    @Resource
+    private ComActIntegralUserTradeService comActIntegralUserTradeService;
+    @Resource
+    private ComActDAO comActDAO;
+
+    /**
+     * 小程序-查询积分说明
+     * 
+     * @return 积分说明
+     */
+    @Override
+    public R getIntegralExplainApplets() {
+        String result = "";
+        Map<String, String> resultMap = comActUserWalletMapper.getAgreementContent(0L, 6);
+        if (resultMap != null) {
+            if (StringUtils.isEmpty(resultMap.get("content"))) {
+                comActUserWalletMapper.insertSysAgreement(Constants.INTEGRAL_EXPLAIN, "积分规则说明", 0L, 6);
+                result = Constants.INTEGRAL_EXPLAIN;
+            } else {
+                result = resultMap.get("content");
+            }
+        } else {
+            comActUserWalletMapper.insertSysAgreement(Constants.INTEGRAL_EXPLAIN, "积分规则说明", 0L, 6);
+            result = Constants.INTEGRAL_EXPLAIN;
+        }
+        return R.ok(result);
+    }
+
+    /**
+     * 用户查询当前社区可领取积分规则列表
+     * 
+     * @param userId
+     *            用户id
+     * @param communityId
+     *            社区id
+     * @return 可领取积分规则列表
+     */
+    @Override
+    public R getIntegralReceiveApplets(Long userId, Long communityId) {
+
+        List<ComActIntegralUserRuleVO> integralUserRuleList =
+            comActIntegralRuleService.getIntegralReceiveApplets(communityId);
+        if (integralUserRuleList.isEmpty()) {
+            // 如果没有查询到列表数据,增给社区增加默认规则列表再查询
+            List<ComActIntegralRuleDO> integralRuleList = comActIntegralRuleService.getIntegralRuleList(communityId);
+            comActIntegralRuleService.saveBatch(integralRuleList);
+            integralUserRuleList = comActIntegralRuleService.getIntegralReceiveApplets(communityId);
+        }
+        if (!integralUserRuleList.isEmpty()) {
+            integralUserRuleList.forEach(integralUserRule -> {
+                if (integralUserRule.getIsRestrict().equals(ComActIntegralRuleDO.isRestrict.no)) {
+                    integralUserRule.setIsComplete(ComActIntegralUserRuleVO.isComplete.no);
+                } else {
+                    ComActIntegralCountDTO integralCountDTO = new ComActIntegralCountDTO();
+                    integralCountDTO.setUserId(userId);
+                    integralCountDTO.setCommunityId(communityId);
+                    integralCountDTO.setType(ComActIntegralUserTradeDO.changeType.add);
+                    integralCountDTO.setServiceType(integralUserRule.getIntegralType());
+                    if (integralUserRule.getType().equals(ComActIntegralRuleDO.type.month)) {
+                        integralCountDTO.setStartTime(DateUtils.getFirstDayOfMonthString());
+                        integralCountDTO.setEndTime(DateUtils.getLastDayOfMonthString());
+                    } else if (integralUserRule.getType().equals(ComActIntegralRuleDO.type.day)) {
+                        integralCountDTO.setStartTime(DateUtils.getDayOfMonthString() + " 00:00:00");
+                        integralCountDTO.setEndTime(DateUtils.getDayOfMonthString() + " 23:59:59");
+                    }
+                    Integer count = comActIntegralUserTradeService.getIntegralCount(integralCountDTO);
+                    if (count >= integralUserRule.getCount()) {
+                        integralUserRule.setIsComplete(ComActIntegralUserRuleVO.isComplete.yes);
+                    } else {
+                        integralUserRule.setIsComplete(ComActIntegralUserRuleVO.isComplete.no);
+                    }
+                }
+            });
+        }
+        return R.ok(integralUserRuleList);
+    }
+
+    /**
+     * 小程序-积分统计
+     * 
+     * @param userId
+     *            用户id
+     * @return 用户积分列表
+     */
+    @Override
+    public R getIntegralUserListApplets(Long userId, Long communityId) {
+        if (nonNull(communityId)) {
+            // 查询该用户在本社区下的积分账户是否存在,不存在则需要给用户创建
+            ComActIntegralUserDO integralUserDO =
+                    this.baseMapper.selectOne(new QueryWrapper<ComActIntegralUserDO>().lambda()
+                            .eq(ComActIntegralUserDO::getCommunityId, communityId).eq(ComActIntegralUserDO::getUserId, userId));
+            if (integralUserDO == null) {
+                integralUserDO = new ComActIntegralUserDO();
+                integralUserDO.setCommunityId(communityId);
+                integralUserDO.setUserId(userId);
+                integralUserDO.setCreateAt(new Date());
+                this.baseMapper.insert(integralUserDO);
+            }
+        }
+        ComActIntegralUserVO integralUserVO = this.baseMapper.getUserIntegralStatistics(userId, communityId);
+        if (isNull(communityId)) {
+            // 各社区已获积分统计
+            List<ComActIntegralUserListVO> integralUserList = this.baseMapper.getIntegralUserListApplets(userId);
+            integralUserVO.setIntegralUserList(integralUserList);
+        }
+        return R.ok(integralUserVO);
+    }
+
+    /**
+     * 查询社区积分账户排行榜
+     * 
+     * @param communityRankDTO
+     *            请求参数
+     * @return 社区积分账户排行榜
+     */
+    @Override
+    public R getIntegralCommunityRankApplets(ComActIntegralCommunityRankDTO communityRankDTO) {
+        return R.ok(this.baseMapper.getIntegralCommunityRankApplets(
+            new Page(communityRankDTO.getPageNum(), communityRankDTO.getPageSize()), communityRankDTO));
+    }
+
+    /**
+     * 根据社区活动id查询社区活动报名且未参与人员列表
+     * 
+     * @param activityId
+     *            活动id
+     * @return 社区活动报名且未参与人员列表
+     */
+    @Override
+    public R getTaskActivityPeopleList(Long activityId) {
+        return R.ok(this.baseMapper.getTaskActivityPeopleList(activityId));
+    }
+
+    @Override
+    public R getUserIntegralBalance(Long userId, Long communityId) {
+        ComActIntegralUserVO integralUserVO = new ComActIntegralUserVO();
+        // 查询该用户在本社区下的积分账户是否存在,不存在则需要给用户创建
+        ComActIntegralUserDO integralUserDO =
+                this.baseMapper.selectOne(new QueryWrapper<ComActIntegralUserDO>().lambda()
+                        .eq(ComActIntegralUserDO::getCommunityId, communityId).eq(ComActIntegralUserDO::getUserId, userId));
+        if (integralUserDO == null) {
+            integralUserDO = new ComActIntegralUserDO();
+            integralUserDO.setCommunityId(communityId);
+            integralUserDO.setUserId(userId);
+            integralUserDO.setCreateAt(new Date());
+            this.baseMapper.insert(integralUserDO);
+        }
+        // 查询用户绑定社区名字
+        ComActDO actDO = comActDAO.selectById(communityId);
+        if (actDO != null) {
+            integralUserVO.setCommunityName(actDO.getName());
+        }
+        integralUserVO.setAmount(integralUserDO.getIntegralSum());
+        return R.ok(integralUserVO);
+    }
+
+    /**
+     * 获取积分详情
+     * @param id
+     * @return
+     */
+    @Override
+    public R getUserIntegralDetail(Long id) {
+        return comActIntegralUserTradeService.getUserIntegralDetail(id);
+    }
+
+    @Override
+    public IntegralUserRankVO getIntegralUserRank(Long communityId, Long userId)
+    {
+        return baseMapper.getIntegralUserRank(communityId,userId);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActIntegralUserTradeServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActIntegralUserTradeServiceImpl.java
new file mode 100644
index 0000000..eb4131b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActIntegralUserTradeServiceImpl.java
@@ -0,0 +1,443 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.Date;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.service_community.dao.ComBpActivityDAO;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+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.model.dtos.community.integral.ComActIntegralCommunityRankDTO;
+import com.panzhihua.common.model.dtos.community.integral.ComActIntegralCountDTO;
+import com.panzhihua.common.model.dtos.community.integral.admin.AddComActIntegralUserDTO;
+import com.panzhihua.common.model.dtos.community.integral.admin.PageComActIntegralTradeDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.integral.admin.ComActIntegralUserTradeAdminVO;
+import com.panzhihua.common.model.vos.community.integral.admin.IntegralUserVO;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.service_community.dao.ComActDiscussDAO;
+import com.panzhihua.service_community.dao.ComActIntegralUserTradeMapper;
+import com.panzhihua.service_community.dao.ComActQuestnaireDAO;
+import com.panzhihua.service_community.model.dos.*;
+import com.panzhihua.service_community.service.*;
+
+import lombok.extern.slf4j.Slf4j;
+
+import static java.util.Objects.nonNull;
+
+/**
+ * @auther lyq
+ * @create 2021-07-28 16:03:18
+ * @describe 用户积分账户交易记录服务实现类
+ */
+@Slf4j
+@Service
+public class ComActIntegralUserTradeServiceImpl extends
+    ServiceImpl<ComActIntegralUserTradeMapper, ComActIntegralUserTradeDO> implements ComActIntegralUserTradeService {
+
+    @Resource
+    private ComActIntegralRuleService comActIntegralRuleService;
+    @Resource
+    private ComActIntegralUserService comActIntegralUserService;
+    @Resource
+    private ComActQuestnaireDAO comActQuestnaireDAO;
+    @Resource
+    private ComActIntegralUserChangeService comActIntegralUserChangeService;
+    @Resource
+    private ComActEasyPhotoService comActEasyPhotoService;
+    @Resource
+    private ComActMicroWishService comActMicroWishService;
+    @Resource
+    private ComActDiscussDAO comActDiscussDAO;
+    @Resource
+    private ComActDiscussOptionService comActDiscussOptionService;
+    @Resource
+    private ComActActivityService comActActivityService;
+    @Resource
+    private ComBpActivityDAO comBpActivityDAO;
+
+    /**
+     * 查询用户某个时间段交易数量
+     * 
+     * @param integralCountDTO
+     *            请求参数
+     * @return 交易数量
+     */
+    @Override
+    public Integer getIntegralCount(ComActIntegralCountDTO integralCountDTO) {
+        return this.baseMapper.getIntegralCount(integralCountDTO);
+    }
+
+    /**
+     * 添加用户积分交易记录
+     * 
+     * @param userId
+     *            用户id
+     * @param integralId
+     *            积分账户id
+     * @param communityId
+     *            社区id
+     * @param serviceId
+     *            交易业务id
+     * @param serviceType
+     *            交易业务类型(1.发布随手拍 2.发布微心愿 3.参与议事投票 4.社区活动-居民身份参与 " +
+     *             "5.社区活动-党员身份参与 6.社区活动-志愿者身份参与 7.参与调查问卷 8.取消活动 9.参与单位党员活动)
+     * @param amount
+     *            交易积分数量
+     * @param changeType
+     *            变动类型(1.增加 2.减少)
+     * @param remark
+     *            交易备注
+     * @param identityType
+     *            交易身份类型(1.居民 2.党员 3.志愿者)
+     * @param createBy
+     *            操作人id
+     */
+    @Override
+    public Long addIntegralTradeRecord(Long userId, Long integralId, Long communityId, Long serviceId,
+        Integer serviceType, Integer amount, Integer changeType, String remark, Integer identityType, Long createBy) {
+        ComActIntegralUserTradeDO integralUserTradeDO = new ComActIntegralUserTradeDO();
+        integralUserTradeDO.setId(Snowflake.getId());
+        integralUserTradeDO.setUserId(userId);
+        integralUserTradeDO.setIntegralId(integralId);
+        integralUserTradeDO.setCommunityId(communityId);
+        integralUserTradeDO.setServiceId(serviceId);
+        integralUserTradeDO.setServiceType(serviceType);
+        integralUserTradeDO.setAmount(amount);
+        integralUserTradeDO.setChangeType(changeType);
+        integralUserTradeDO.setRemark(remark);
+        integralUserTradeDO.setIdentityType(identityType);
+        integralUserTradeDO.setCreateBy(createBy);
+        integralUserTradeDO.setCreateAt(new Date());
+        this.baseMapper.insert(integralUserTradeDO);
+        return integralUserTradeDO.getId();
+    }
+
+    /**
+     * 小程序-查询用户社区积分明细
+     * 
+     * @param communityTradeDTO
+     *            请求参数
+     * @return 用户社区积分明细
+     */
+    @Override
+    public R getIntegralCommunityTradeApplets(ComActIntegralCommunityRankDTO communityTradeDTO) {
+        if (communityTradeDTO.getType().equals(ComActIntegralCommunityRankDTO.type.resident)) {
+            communityTradeDTO.setIdentityType(ComActIntegralCommunityRankDTO.identityType.resident);
+        } else if (communityTradeDTO.getType().equals(ComActIntegralCommunityRankDTO.type.party)) {
+            communityTradeDTO.setIdentityType(ComActIntegralCommunityRankDTO.identityType.party);
+        } else if (communityTradeDTO.getType().equals(ComActIntegralCommunityRankDTO.type.volunteer)) {
+            communityTradeDTO.setIdentityType(ComActIntegralCommunityRankDTO.identityType.volunteer);
+        }
+        return R.ok(this.baseMapper.getIntegralCommunityTradeApplets(
+            new Page(communityTradeDTO.getPageNum(), communityTradeDTO.getPageSize()), communityTradeDTO));
+    }
+
+    /**
+     * 社区后台-分页查询社区下积分明细记录
+     * 
+     * @param integralRuleDTO
+     *            请求参数
+     * @return 社区下积分明细记录
+     */
+    @Override
+    public R getIntegralTradeListAdmin(PageComActIntegralTradeDTO integralRuleDTO) {
+        IPage<ComActIntegralUserTradeAdminVO> userTradeAdminIPage = this.baseMapper.getIntegralTradeListAdmin(
+            new Page(integralRuleDTO.getPageNum(), integralRuleDTO.getPageSize()), integralRuleDTO);
+        if (!userTradeAdminIPage.getRecords().isEmpty()) {
+            userTradeAdminIPage.getRecords().forEach(userTrade -> {
+                StringBuilder sb = new StringBuilder();
+                sb.append("居民");
+                if (userTrade.getIsVolunteer().equals(ComActIntegralUserTradeAdminVO.isVolunteer.yes)) {
+                    sb.append(",志愿者");
+                }
+                if (userTrade.getIsPartymember().equals(ComActIntegralUserTradeAdminVO.isPartymember.yes)) {
+                    sb.append(",党员");
+                }
+                userTrade.setIdentity(sb.toString());
+            });
+        }
+        return R.ok(userTradeAdminIPage);
+    }
+
+    /**
+     * 给用户添加积分
+     * 
+     * @param integralUserDTO
+     *            请求参数
+     * @return 添加积分结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R addIntegralTradeAdmin(AddComActIntegralUserDTO integralUserDTO) {
+        // 判断增加积分类型 积分任务类型(1.发布随手拍 2.发布微心愿 3.参与议事投票 4.社区活动-居民身份参与 " +
+        //            "5.社区活动-党员身份参与 6.社区活动-志愿者身份参与 7.参与调查问卷 8.取消活动 9.参与单位党员活动)
+        Integer type = integralUserDTO.getIntegralType();
+        // 业务id
+        Long serviceId = integralUserDTO.getServiceId();
+        // 用户id
+        Long userId = integralUserDTO.getUserId();
+        // 社区id
+        Long communityId = integralUserDTO.getCommunityId();
+        // 需要给用户增加的积分数量
+        Integer amount = 0;
+        // 用户增加积分的身份
+        Integer identityType = 1;
+        // 用户交易备注
+        StringBuilder remark = new StringBuilder();
+        // 当前时间
+        Date nowDate = new Date();
+
+        Integer changeType = ComActIntegralUserTradeDO.changeType.add;
+
+        if (!type.equals(8) && !type.equals(4) && !type.equals(5) && !type.equals(6) && !type.equals(9)) {
+            // 查询随手拍增加积分数量
+            ComActIntegralRuleDO integralRuleDO =
+                    comActIntegralRuleService.getOne(new QueryWrapper<ComActIntegralRuleDO>().lambda()
+                            .eq(ComActIntegralRuleDO::getIntegralType, type).eq(ComActIntegralRuleDO::getCommunityId, communityId));
+            if (integralRuleDO == null) {
+                log.error("未查询到该社区积分规则,社区id:" + communityId);
+                return R.fail("未查询到该社区积分规则,社区id:" + communityId);
+            }
+            // 判断规则是否有次数限制
+            if (integralRuleDO.getIsRestrict().equals(ComActIntegralRuleDO.isRestrict.yes)) {
+                Integer count = this.baseMapper.getIntegralCount(
+                        getIntegralCountDTO(integralRuleDO.getType(), userId, communityId, integralRuleDO.getIntegralType()));
+                if (count >= integralRuleDO.getCount()) {
+                    log.error("该用户参加任务次数已达上限");
+                    return R.fail("该用户参加任务次数已达上限");
+                }
+            }
+            amount = integralRuleDO.getAmount();
+        }
+
+        switch (type) {
+            case 1:
+                remark.append("发布随手拍奖励积分");
+                ComActEasyPhotoDO easyPhotoDO = comActEasyPhotoService.getById(serviceId);
+                if (easyPhotoDO != null) {
+                    remark.append("【");
+                    remark.append(easyPhotoDO.getDetail());
+                    remark.append("】");
+                }
+                break;
+            case 2:
+                remark.append("发布微心愿奖励积分");
+                ComActMicroWishDO microWishDO = comActMicroWishService.getById(serviceId);
+                if (microWishDO != null) {
+                    remark.append("【");
+                    remark.append(microWishDO.getWishName());
+                    remark.append("】");
+                }
+                break;
+            case 3:
+                remark.append("参与议事投票奖励积分");
+                if (integralUserDTO.getIsComment().equals(1)) {
+                    ComActDiscussDO discussDO = comActDiscussDAO.selectById(serviceId);
+                    if (discussDO != null) {
+                        remark.append("【");
+                        remark.append(discussDO.getDiscussSubject());
+                        remark.append("】");
+                    }
+                } else {
+                    ComActDiscussOptionDO discussOptionDO = comActDiscussOptionService.getById(serviceId);
+                    if (discussOptionDO != null) {
+                        ComActDiscussDO discussDO = comActDiscussDAO.selectById(discussOptionDO.getDiscussId());
+                        if (discussDO != null) {
+                            remark.append("【");
+                            remark.append(discussDO.getVoteTitle());
+                            remark.append("】");
+                        }
+                    }
+                }
+                break;
+            case 7:
+                // 查询调查问卷
+                ComActQuestnaireDO questnaireDO = comActQuestnaireDAO.selectById(serviceId);
+                if (questnaireDO == null) {
+                    log.error("未查询到调查问卷记录,记录积分失败");
+                    return R.fail("未查询到调查问卷记录,记录积分失败");
+                }
+                // 查询当前用户信息
+                IntegralUserVO integralUser = this.baseMapper.getUserInfo(userId);
+                if (integralUser == null) {
+                    log.error("未查询到用户信息,记录积分失败");
+                    return R.fail("未查询到用户信息,记录积分失败");
+                }
+                // 判断调查问卷调查的对象是什么身份,如果是党员和志愿者两种身份,则记录志愿者积分
+                if (questnaireDO.getForParty().equals(1) && integralUser.getIsPartymember().equals(1)) {
+                    identityType = 2;
+                    if (questnaireDO.getForVolunteer().equals(1) && integralUser.getIsVolunteer().equals(1)) {
+                        identityType = 3;
+                    }
+                }
+                if (questnaireDO.getForVolunteer().equals(1) && integralUser.getIsVolunteer().equals(1)) {
+                    identityType = 3;
+                }
+                remark.append("参与调查问卷奖励积分");
+                remark.append("【");
+                remark.append(questnaireDO.getTitle());
+                remark.append("】");
+                break;
+            case 8:
+                changeType = ComActIntegralUserTradeDO.changeType.reduce;
+                amount = -integralUserDTO.getIntegral();
+                remark.append(integralUserDTO.getRemark());
+                identityType = integralUserDTO.getSignIdentity();
+                break;
+            case 4:
+            case 5:
+            case 6:
+            case 9:
+                identityType = integralUserDTO.getSignIdentity();
+                remark.append(integralUserDTO.getRemark());
+                amount = integralUserDTO.getIntegral();
+                break;
+            default:
+                break;
+        }
+
+        // 查询用户积分账户
+        ComActIntegralUserDO integralUserDO =
+            comActIntegralUserService.getOne(new QueryWrapper<ComActIntegralUserDO>().lambda()
+                .eq(ComActIntegralUserDO::getUserId, userId).eq(ComActIntegralUserDO::getCommunityId, communityId));
+        if (integralUserDO == null) {
+            integralUserDO = new ComActIntegralUserDO();
+            integralUserDO.setCommunityId(communityId);
+            integralUserDO.setUserId(userId);
+            integralUserDO.setCreateAt(nowDate);
+            integralUserDO.setStatus(ComActIntegralUserDO.status.yes);
+            integralUserDO.setIntegralSum(0);
+            integralUserDO.setIntegralAvailableSum(0);
+            integralUserDO.setIntegralFrozenSum(0);
+            integralUserDO.setIntegralParty(0);
+            integralUserDO.setIntegralAvailableParty(0);
+            integralUserDO.setIntegralFrozenParty(0);
+            integralUserDO.setIntegralVolunteer(0);
+            integralUserDO.setIntegralAvailableVolunteer(0);
+            integralUserDO.setIntegralFrozenVolunteer(0);
+            integralUserDO.setIntegralResident(0);
+            integralUserDO.setIntegralAvailableResident(0);
+            integralUserDO.setIntegralFrozenResident(0);
+            comActIntegralUserService.save(integralUserDO);
+        }
+        if (integralUserDO.getStatus().equals(ComActIntegralUserDO.status.no)) {
+            log.error("用户钱包已被禁用,记录积分失败,用户id:" + userId);
+            return R.fail("用户钱包已被禁用,记录积分失败,用户id:" + userId);
+        }
+        Long integralId = integralUserDO.getId();
+        // 记录变动前钱包金额
+        Integer integralSum = integralUserDO.getIntegralSum();
+        Integer integralAvailableSum = integralUserDO.getIntegralAvailableSum();
+        Integer integralFrozenSum = integralUserDO.getIntegralFrozenSum();
+        Integer integralParty = integralUserDO.getIntegralParty();
+        Integer integralAvailableParty = integralUserDO.getIntegralAvailableParty();
+        Integer integralFrozenParty = integralUserDO.getIntegralFrozenParty();
+        Integer integralVolunteer = integralUserDO.getIntegralVolunteer();
+        Integer integralAvailableVolunteer = integralUserDO.getIntegralAvailableVolunteer();
+        Integer integralFrozenVolunteer = integralUserDO.getIntegralFrozenVolunteer();
+        Integer integralResident = integralUserDO.getIntegralResident();
+        Integer integralAvailableResident = integralUserDO.getIntegralAvailableResident();
+        Integer integralFrozenResident = integralUserDO.getIntegralFrozenResident();
+
+        // 根据不同身份,计算钱包金额
+        int reduceAmount = 0;
+        if (identityType.equals(ComActIntegralUserTradeDO.identityType.jm)) {
+            int integralResidentNow = addIntegral(integralResident + amount);
+            if (amount < 0) {
+                reduceAmount = integralResident - integralResidentNow;
+            }
+            integralUserDO.setIntegralResident(integralResidentNow);
+            integralUserDO.setIntegralAvailableResident(addIntegral(integralUserDO.getIntegralAvailableResident() + amount));
+        } else if (identityType.equals(ComActIntegralUserTradeDO.identityType.dy)) {
+            int integralPartyNow = addIntegral(integralParty + amount);
+            if (amount < 0) {
+                reduceAmount = integralParty - integralPartyNow;
+            }
+            integralUserDO.setIntegralParty(integralPartyNow);
+            integralUserDO.setIntegralAvailableParty(addIntegral(integralUserDO.getIntegralAvailableParty() + amount));
+        } else if (identityType.equals(ComActIntegralUserTradeDO.identityType.zyz)) {
+            int integralVolunteerNow = addIntegral(integralVolunteer + amount);
+            if (amount < 0) {
+                reduceAmount = integralVolunteer - integralVolunteerNow;
+            }
+            integralUserDO.setIntegralVolunteer(integralVolunteerNow);
+            integralUserDO.setIntegralAvailableVolunteer(addIntegral(integralUserDO.getIntegralAvailableVolunteer() + amount));
+        }
+        if (changeType == ComActIntegralUserTradeDO.changeType.reduce) {
+            amount = reduceAmount;
+            integralUserDO.setIntegralSum(addIntegral(integralSum - reduceAmount));
+            integralUserDO.setIntegralAvailableSum(addIntegral(integralAvailableSum - reduceAmount));
+        } else {
+            integralUserDO.setIntegralSum(addIntegral(integralSum + amount));
+            integralUserDO.setIntegralAvailableSum(addIntegral(integralAvailableSum + amount));
+        }
+        integralUserDO.setUpdateAt(nowDate);
+
+        // 更新钱包
+        comActIntegralUserService.updateById(integralUserDO);
+        // 增加积分账户交易记录
+        Long tradeId = this.addIntegralTradeRecord(userId, integralId, communityId, serviceId, type, amount,
+                changeType, remark.toString(), identityType, 2L);
+        // 增加积分账户变更记录
+        comActIntegralUserChangeService.addIntegralUserChangeRecord(userId, integralId, communityId, integralSum,
+            integralUserDO.getIntegralSum(), integralAvailableSum, integralUserDO.getIntegralAvailableSum(),
+            integralFrozenSum, integralUserDO.getIntegralFrozenSum(), integralParty, integralUserDO.getIntegralParty(),
+            integralAvailableParty, integralUserDO.getIntegralAvailableParty(), integralFrozenParty,
+            integralUserDO.getIntegralFrozenParty(), integralVolunteer, integralUserDO.getIntegralVolunteer(),
+            integralAvailableVolunteer, integralUserDO.getIntegralAvailableVolunteer(), integralFrozenVolunteer,
+            integralUserDO.getIntegralFrozenVolunteer(), integralResident, integralUserDO.getIntegralResident(),
+            integralAvailableResident, integralUserDO.getIntegralAvailableResident(), integralFrozenResident,
+            integralUserDO.getIntegralFrozenResident(), tradeId);
+        return R.ok();
+    }
+
+    /**
+     * 获取积分详情
+     * @param id
+     * @return
+     */
+    @Override
+    public R getUserIntegralDetail(Long id) {
+        return R.ok(this.baseMapper.getUserIntegralDetail(id));
+    }
+
+    private int addIntegral(int integral) {
+        return integral > 0 ? integral : 0;
+    }
+
+    /**
+     * 根据类型、用户id、社区id构建查询请求参数
+     * 
+     * @param type
+     *            类型
+     * @param userId
+     *            用户id
+     * @param communityId
+     *            社区id
+     * @return 查询请求参数
+     */
+    private ComActIntegralCountDTO getIntegralCountDTO(Integer type, Long userId, Long communityId,
+        Integer integralType) {
+        ComActIntegralCountDTO integralCountDTO = new ComActIntegralCountDTO();
+        integralCountDTO.setUserId(userId);
+        integralCountDTO.setCommunityId(communityId);
+        integralCountDTO.setServiceType(integralType);
+        integralCountDTO.setType(ComActIntegralUserTradeDO.changeType.add);
+        if (type.equals(ComActIntegralRuleDO.type.month)) {
+            integralCountDTO.setStartTime(DateUtils.getFirstDayOfMonthString());
+            integralCountDTO.setEndTime(DateUtils.getLastDayOfMonthString());
+        } else if (type.equals(ComActIntegralRuleDO.type.day)) {
+            integralCountDTO.setStartTime(DateUtils.getDayOfMonthString() + " 00:00:00");
+            integralCountDTO.setEndTime(DateUtils.getDayOfMonthString() + " 23:59:59");
+        }
+        return integralCountDTO;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActMessageServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActMessageServiceImpl.java
new file mode 100644
index 0000000..82eae92
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActMessageServiceImpl.java
@@ -0,0 +1,300 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.vos.community.ComActDpcVO;
+import com.panzhihua.common.model.vos.user.SysTemplateConfigVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.service_community.dao.ComActDAO;
+import com.panzhihua.service_community.dao.ComActDpcDAO;
+import com.panzhihua.service_community.model.dos.ComActDO;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
+
+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.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActMessageBackVO;
+import com.panzhihua.common.model.vos.community.ComActMessageVO;
+import com.panzhihua.common.model.vos.community.PageComActMessageVO;
+import com.panzhihua.common.model.vos.community.ResetComActMessageVO;
+import com.panzhihua.common.model.vos.partybuilding.ComPbServiceTeamVO;
+import com.panzhihua.common.model.vos.partybuilding.PartyCommitteeVO;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.WxUtil;
+import com.panzhihua.common.utlis.WxXCXTempSend;
+import com.panzhihua.service_community.dao.ComActActSignDAO;
+import com.panzhihua.service_community.dao.ComActMessageBackDAO;
+import com.panzhihua.service_community.dao.ComActMessageDAO;
+import com.panzhihua.service_community.model.dos.ComActMessageBackDO;
+import com.panzhihua.service_community.model.dos.ComActMessageDO;
+import com.panzhihua.service_community.service.ComActMessageService;
+
+import static java.util.Objects.isNull;
+
+@Service
+public class ComActMessageServiceImpl extends ServiceImpl<ComActMessageDAO, ComActMessageDO>
+    implements ComActMessageService {
+    @Resource
+    private ComActMessageDAO comActMessageDAO;
+    @Resource
+    private ComActMessageBackDAO comActMessageBackDAO;
+    @Resource
+    private ComActActSignDAO comActActSignDAO;
+    @Resource
+    private ComActDAO comActDAO;
+    @Resource
+    private UserService userService;
+    @Resource
+    private ComActDpcDAO comActDpcDAO;
+
+    @Override
+    public R addMessage(ComActMessageVO comActMessageVO) {
+        Long type = comActMessageVO.getType();
+        String phone = "";
+        String sendtoUserName = "";
+
+        if (type == 1) {
+            ComPbServiceTeamVO team = comActMessageDAO.selectComPbServiceTeamById(comActMessageVO.getSendtoUserId());
+            if (ObjectUtils.isEmpty(team))
+                return R.fail();
+            phone = team.getPhone();
+            sendtoUserName = team.getName();
+        } else if (type == 2) {
+            PartyCommitteeVO party = comActMessageDAO.selectPartyCommitteeById(comActMessageVO.getSendtoUserId());
+            if (ObjectUtils.isEmpty(party))
+                return R.fail();
+            phone = party.getPhone();
+            sendtoUserName = party.getName();
+        } else if (type == 3) {
+            ComActDpcVO dpcVO = comActDpcDAO.detailDpc(comActMessageVO.getSendtoUserId());
+            if (isNull(dpcVO)) {
+                return R.fail();
+            }
+            phone = dpcVO.getPhone();
+            sendtoUserName = dpcVO.getName();
+        }
+        if (ObjectUtils.isEmpty(phone))
+            return R.fail("未找到联系方式");
+        comActMessageVO.setPhone(phone);
+        comActMessageVO.setSendtoUserName(sendtoUserName);
+        ComActMessageDO comActMessageDO = new ComActMessageDO();
+        BeanUtils.copyProperties(comActMessageVO, comActMessageDO);
+        int insert = comActMessageDAO.insert(comActMessageDO);
+        if (insert > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 我发的留言
+     */
+    @Override
+    public R pageMyMessageApplets(ComActMessageVO comActMessageVO) {
+        Page page = new Page<>();
+        Long pageNum = comActMessageVO.getPageNum();
+        Long pageSize = comActMessageVO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<PageComActMessageVO> iPage = comActMessageDAO.pageMyMessageApplets(page, comActMessageVO);
+        List<PageComActMessageVO> records = iPage.getRecords();
+        if (!ObjectUtils.isEmpty(records)) {
+            records.forEach(comActMessageVO1 -> {
+                Long id = comActMessageVO1.getId();
+                List<ComActMessageBackVO> list = comActMessageDAO.selectMsgBackList(id);
+                comActMessageVO1.setBackList(list);
+            });
+            iPage.setRecords(records);
+        }
+        return R.ok(iPage);
+    }
+
+    /**
+     * 发给我的留言
+     */
+    @Override
+    public R pageSendToMessageApplets(ComActMessageVO comActMessageVO) {
+        Page page = new Page<>();
+        Long pageNum = comActMessageVO.getPageNum();
+        Long pageSize = comActMessageVO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        String phone = comActMessageVO.getPhone();
+        if (ObjectUtils.isEmpty(phone)) {
+            IPage<PageComActMessageVO> iPage = null;
+            return R.ok(iPage);
+        }
+        IPage<PageComActMessageVO> iPage = comActMessageDAO.pageSendMeMessageApplets(page, comActMessageVO);
+        List<PageComActMessageVO> records = iPage.getRecords();
+        if (!ObjectUtils.isEmpty(records)) {
+            records.forEach(comActMessageVO1 -> {
+                Long id = comActMessageVO1.getId();
+                List<ComActMessageBackVO> list = comActMessageDAO.selectMsgBackList(id);
+                comActMessageVO1.setBackList(list);
+            });
+            iPage.setRecords(records);
+        }
+        return R.ok(iPage);
+    }
+
+    /**
+     * 我的社区留言
+     */
+
+    @Override
+    public R pageMyCommunityMessageApplets(ComActMessageVO comActMessageVO) {
+        Page page = new Page<>();
+        Long pageNum = comActMessageVO.getPageNum();
+        Long pageSize = comActMessageVO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<PageComActMessageVO> iPage = comActMessageDAO.pageMyCommunityMessageApplets(page, comActMessageVO);
+        List<PageComActMessageVO> records = iPage.getRecords();
+        if (!ObjectUtils.isEmpty(records)) {
+            records.forEach(comActMessageVO1 -> {
+                Long id = comActMessageVO1.getId();
+                List<ComActMessageBackVO> list = comActMessageDAO.selectMsgBackList(id);
+                if (list != null && list.size() > 0) {
+                    list.forEach(vo -> {
+                        Long type = comActMessageVO1.getType();
+                        if (type == 1) {
+                            ComPbServiceTeamVO team =
+                                comActMessageDAO.selectComPbServiceTeamById(comActMessageVO1.getSendtoUserId());
+                            if (!ObjectUtils.isEmpty(team)) {
+                                vo.setUserJob(team.getJob());
+                            }
+                        } else if (type == 2) {
+                            PartyCommitteeVO party =
+                                comActMessageDAO.selectPartyCommitteeById(comActMessageVO1.getSendtoUserId());
+                            if (!ObjectUtils.isEmpty(party)) {
+                                vo.setUserJob(party.getPosition());
+                            }
+                        }
+                    });
+                }
+                comActMessageVO1.setBackList(list);
+            });
+            iPage.setRecords(records);
+        }
+        return R.ok(iPage);
+    }
+
+    @Override
+    public R addMessageBack(ComActMessageBackVO comActMessageBackVO) {
+        ComActMessageBackDO comActMessageBackDO = new ComActMessageBackDO();
+        BeanUtils.copyProperties(comActMessageBackVO, comActMessageBackDO);
+        int insert = comActMessageBackDAO.insert(comActMessageBackDO);
+        if (insert > 0) {
+            ComActMessageDO selectById = comActMessageDAO.selectById(comActMessageBackDO.getMsgId());
+            selectById.setStatus(2);
+            comActMessageDAO.updateById(selectById);
+
+            // 回复成功给用户推送订阅消息
+            Map<String, String> map = comActActSignDAO.getUserOpenId(selectById.getUserId());
+            if (map != null) {
+                String openid = map.get("openid");
+                WxXCXTempSend util = new WxXCXTempSend();
+                ComActDO comActDO=comActDAO.selectById(comActMessageBackVO.getCommunityId());
+                R<SysTemplateConfigVO> r=userService.selectTemplate(comActDO.getAreaCode(),2);
+                try {
+                    WxUtil.sendSubscribeLYHF(openid, util.getAccessToken(), comActMessageBackVO.getUserName(),
+                        DateUtils.format(new Date(), DateUtils.ymdhms_format), comActMessageBackVO.getMsgContent(),r.getData().getTemplateId());
+                } catch (Exception e) {
+                    log.error("消息推送失败,失败原因:" + e.getMessage());
+                }
+            }
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    @Override
+    public R pageMessageByUserApplets(ComActMessageVO comActMessageVO) {
+        Page page = new Page<>();
+        Long pageNum = comActMessageVO.getPageNum();
+        Long pageSize = comActMessageVO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<PageComActMessageVO> iPage = comActMessageDAO.pageMessageByUserApplets(page, comActMessageVO);
+        List<PageComActMessageVO> records = iPage.getRecords();
+        if (!ObjectUtils.isEmpty(records)) {
+            records.forEach(comActMessageVO1 -> {
+                Long id = comActMessageVO1.getId();
+                List<ComActMessageBackVO> list = comActMessageDAO.selectMsgBackList(id);
+
+                comActMessageVO1.setBackList(list);
+            });
+            iPage.setRecords(records);
+        }
+        return R.ok(iPage);
+    }
+
+    @Override
+    public R deleteMessage(ComActMessageVO comActMessageVO) {
+        Long id = comActMessageVO.getId();
+        comActMessageDAO.deleteById(id);
+        comActMessageBackDAO.deleteMsgBackByMsgId(id);
+        // List<ComActMessageBackVO> list = comActMessageDAO.selectMsgBackList(id);
+        // for (ComActMessageBackVO comActMessageBackVO : list) {
+        // comActMessageBackDAO.deleteById(comActMessageBackVO.getId());
+        // }
+        return R.ok();
+    }
+
+    @Override
+    public R resetMessagePublic(ResetComActMessageVO resetComActMessageVO) {
+        if (ObjectUtils.isEmpty(resetComActMessageVO))
+            return R.fail();
+        Integer ispublic = resetComActMessageVO.getIspublic();
+        if (ispublic == null || (ispublic != 1 && ispublic != 2))
+            return R.fail("状态错误");
+        List<Long> list = resetComActMessageVO.getIds();
+        for (Long id : list) {
+            comActMessageDAO.updatePublic(ispublic, id);
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R detailMessage(Long id) {
+        ComActMessageDO comActMessageDO = comActMessageDAO.selectById(id);
+        PageComActMessageVO vo = new PageComActMessageVO();
+        BeanUtils.copyProperties(comActMessageDO, vo);
+        List<ComActMessageBackVO> list = comActMessageDAO.selectMsgBackList(id);
+        vo.setBackList(list);
+        // TODO Auto-generated method stub
+        return R.ok(vo);
+    }
+
+}
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
new file mode 100644
index 0000000..b0c1a5b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActMicroWishServiceImpl.java
@@ -0,0 +1,642 @@
+package com.panzhihua.service_community.service.impl;
+
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.DesensitizedUtil;
+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.google.common.base.Joiner;
+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.model.vos.user.SysUserVO;
+import com.panzhihua.common.utlis.SensitiveUtil;
+import com.panzhihua.common.utlis.StringUtils;
+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.entity.ComActEasyPhotoHandler;
+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.ComActEasyPhotoHandlerService;
+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
+ * @description: 微心愿
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 14:34
+ **/
+@Service
+@Slf4j
+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;
+    @Resource
+    private ComActEasyPhotoHandlerService easyPhotoHandlerService;
+    /**
+     * 分页查询微心愿
+     *
+     * @param comActMicroWishVO 查询参数
+     * @return 心愿列表
+     */
+    @Override
+    public R pageMicroWish(ComActMicroWishVO comActMicroWishVO) {
+        Long userId = comActMicroWishVO.getResponsibleId();
+        Page page = new Page<>();
+        Long pageNum = comActMicroWishVO.getPageNum();
+        Long pageSize = comActMicroWishVO.getPageSize();
+        if (null==pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null==pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<ComActMicroWishVO> iPage = comActMicroWishDAO.pageMicroWish(page, 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()));
+                //查询处理人
+                comActMicroWishVO1.setResponsibleName(this.getWishHandleName(comActMicroWishVO1.getHandleId()));
+            });
+            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);
+        }
+        return R.ok(iPage);
+    }
+
+    @Override
+    public R pageMicroWishAppletsDesensitize(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()));
+                comActMicroWishVO1.setSponsorName(DesensitizedUtil.chineseName(comActMicroWishVO1.getSponsorName()));
+                comActMicroWishVO1.setResponsibleName(DesensitizedUtil.chineseName(comActMicroWishVO1.getResponsibleName()));
+            });
+            iPage.setRecords(records);
+        }
+        return R.ok(iPage);
+    }
+
+    /**
+     * 心愿详情
+     *
+     * @param id 查询主键
+     * @param userId 登录用户id
+     * @return 心愿内容
+     */
+    @Override
+    public R detailMicroWish(Long id, Long userId) {
+        ComActMicroWishVO comActMicroWishVO = comActMicroWishDAO.detailMicroWish(id);
+        if (ObjectUtils.isEmpty(comActMicroWishVO)) {
+            return R.fail("微心愿不存在");
+        }
+        Integer starNum = comActMicroWishVO.getStarNum();
+        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 (ObjectUtils.isEmpty(comActMicroWishUserDO)) {
+                comActMicroWishVO.setHaveGiveThumbsUp(0);
+            }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);
+        }
+        //查询处理人
+        comActMicroWishVO.setResponsibleName(this.getWishHandleName(comActMicroWishVO.getHandleId()));
+        return R.ok(comActMicroWishVO);
+    }
+    /**
+     * 心愿详情 - 脱敏
+     *
+     * @param id 查询主键
+     * @param userId 登录用户id
+     * @return 心愿内容
+     */
+    @Override
+    public R detailMicroWishDesensitize(Long id, Long userId) {
+        ComActMicroWishVO comActMicroWishVO = comActMicroWishDAO.detailMicroWish(id);
+        if (ObjectUtils.isEmpty(comActMicroWishVO)) {
+            return R.fail("微心愿不存在");
+        }
+        Integer starNum = comActMicroWishVO.getStarNum();
+        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 (ObjectUtils.isEmpty(comActMicroWishUserDO)) {
+                comActMicroWishVO.setHaveGiveThumbsUp(0);
+            }else {
+                comActMicroWishVO.setHaveGiveThumbsUp(1);
+            }
+        }
+        //查询反馈列表
+        List<ComActMicroWishFeedbackVO> feedList=comActMicroWishFeedbackMapper.selectByWishId(id);
+        if(!feedList.isEmpty()){
+            for (ComActMicroWishFeedbackVO comActMicroWishFeedbackVO : feedList) {
+                comActMicroWishFeedbackVO.setName(DesensitizedUtil.chineseName(comActMicroWishFeedbackVO.getName()));
+            }
+            comActMicroWishVO.setFeedbackVOList(feedList);
+        }
+        //查询操作记录
+        List<ComActMicroWishOperationRecordVO> operationList=comActMicroWishOperationRecordMapper.getByWishId(id);
+        if(!operationList.isEmpty()){
+            comActMicroWishVO.setOperationRecordVOList(operationList);
+        }
+        comActMicroWishVO.setSponsorPhone(SensitiveUtil.desensitizedPhoneNumber(comActMicroWishVO.getSponsorPhone()));
+        comActMicroWishVO.setSponsorName(DesensitizedUtil.chineseName(comActMicroWishVO.getSponsorName()));
+        comActMicroWishVO.setResponsibleName(DesensitizedUtil.chineseName(comActMicroWishVO.getResponsibleName()));
+        //查询同类型id数组
+        List<Long> idList=comActMicroWishOperationRecordMapper.selectId(comActMicroWishVO);
+        if(!idList.isEmpty()){
+            comActMicroWishVO.setIdList(idList);
+        }
+        //查询处理人
+        comActMicroWishVO.setResponsibleName(DesensitizedUtil.chineseName(this.getWishHandleName(comActMicroWishVO.getHandleId())));
+        return R.ok(comActMicroWishVO);
+    }
+
+    /**
+     * 审核、分配、反馈心愿
+     *
+     * @param comActMicroWishVO 具体操作
+     * @return 操作结果
+     */
+    @Override
+    @Transactional
+    public synchronized R putlMicroWish(ComActMicroWishVO comActMicroWishVO) {
+        Long id = comActMicroWishVO.getId();
+        int type = comActMicroWishVO.getType().intValue();
+        String rejectReason = comActMicroWishVO.getRejectReason();
+        Long responsibleId = comActMicroWishVO.getResponsibleId();
+        String feedback = comActMicroWishVO.getFeedback();
+        String feedbackPhotoPathList = comActMicroWishVO.getFeedbackPhotoPathList();
+        ComActMicroWishDO comActMicroWishDO=new ComActMicroWishDO();
+        comActMicroWishDO.setId(id);
+        Boolean isUpdate = false;
+        Date date = new Date();
+        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.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);//驳回
+                comActMicroWishOperationRecordDO.setType(ComActMicroWishOperationRecordDO.type.bh);
+                comActMicroWishOperationRecordDO.setContent(rejectReason);
+                comActMicroWishOperationRecordDO.setRemark("微心愿审核未通过");
+                comActMicroWishOperationRecordMapper.insert(comActMicroWishOperationRecordDO);
+                break;
+            case 3:
+                /**
+                 * 状态
+                 * 状态 1待审核  2待分配 3进行中  4已驳回 5待确认6 已完成
+                 */
+                if(comActMicroWishDO.getStatus()!=null && comActMicroWishDO.getStatus()!=2)
+                {
+                    return R.fail("该微心愿已认领,不可重复认领");
+                }
+
+                isUpdate = true;
+                comActMicroWishDO.setDistributionAt(date);
+                comActMicroWishDO.setResponsibleId(responsibleId);
+                comActMicroWishDO.setStatus(3);//进行中
+//                comActMicroWishDO.setForm(1);
+                if(comActMicroWishVO.getHandleIds() != null && comActMicroWishVO.getHandleIds().size() > 0){
+                    comActMicroWishDO.setHandleId(Joiner.on(",").join(comActMicroWishVO.getHandleIds()));
+                }
+                //添加操作记录
+                comActMicroWishOperationRecordDO.setType(ComActMicroWishOperationRecordDO.type.fp);
+                if(comActMicroWishDO.getForm()!=null)
+                {
+                    if(comActMicroWishDO.getForm()==3)
+                    {
+                        comActMicroWishOperationRecordDO.setContent("认领心愿");
+                        comActMicroWishOperationRecordDO.setRemark("认领心愿");
+                    }
+                    else
+                    {
+                        comActMicroWishOperationRecordDO.setContent("分配心愿");
+                        comActMicroWishOperationRecordDO.setRemark("分配心愿");
+                    }
+                }
+                else
+                {
+                    comActMicroWishOperationRecordDO.setContent("分配心愿");
+                    comActMicroWishOperationRecordDO.setRemark("分配心愿");
+                }
+                comActMicroWishOperationRecordDO.setUserId(responsibleId);
+                comActMicroWishOperationRecordMapper.insert(comActMicroWishOperationRecordDO);
+
+                //添加分配人员
+                if(comActMicroWishVO.getHandleList() != null && comActMicroWishVO.getHandleList().size() > 0){
+                    comActMicroWishVO.getHandleList().forEach(handle -> {
+                        easyPhotoHandlerService.addHandleRecord(microWishDO.getCommunityId(),handle.getUserId()
+                                ,microWishDO.getId(),handle.getType(), ComActEasyPhotoHandler.ServiceType.WXY,comActMicroWishVO.getSponsorId());
+                    });
+                }
+                break;
+            case 4:
+                isUpdate = true;
+                comActMicroWishDO.setDistributionAt(date);
+                comActMicroWishDO.setResponsibleId(responsibleId);
+                comActMicroWishDO.setStatus(3);//待确认
+                comActMicroWishDO.setForm(2);
+                if(comActMicroWishVO.getHandleIds() != null && comActMicroWishVO.getHandleIds().size() > 0){
+                    comActMicroWishDO.setHandleId(Joiner.on(",").join(comActMicroWishVO.getHandleIds()));
+                }
+                //添加操作记录
+                comActMicroWishOperationRecordDO.setType(ComActMicroWishOperationRecordDO.type.fp);
+                comActMicroWishOperationRecordDO.setContent("分配心愿");
+                comActMicroWishOperationRecordDO.setRemark("分配心愿");
+                comActMicroWishOperationRecordDO.setUserId(responsibleId);
+                comActMicroWishOperationRecordMapper.insert(comActMicroWishOperationRecordDO);
+                break;
+            case 5:
+                if(comActMicroWishVO.getFeedback().length() > 200){
+                    return R.fail("反馈字数不得超过200字");
+                }
+                //新增反馈记录
+                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);
+                    if(comActMicroWishVO.getForm()==null || comActMicroWishVO.getForm() ==3  )
+                    {
+                        comActMicroWishOperationRecordDO.setRemark("用户反馈");
+                    }
+                    else
+                    {
+                        comActMicroWishOperationRecordDO.setRemark("社区反馈");
+                    }
+                    comActMicroWishOperationRecordDO.setImgUrl(feedbackPhotoPathList);
+                    comActMicroWishOperationRecordMapper.insert(comActMicroWishOperationRecordDO);
+                }
+//                else {
+//                    comActMicroWishDO.setStatus(3);
+//                }
+                comActMicroWishFeedbackMapper.insert(comActMicroWishFeedbackDO);
+            default:
+                break;
+        }
+        if(isUpdate){
+            int update = comActMicroWishDAO.updateById(comActMicroWishDO);
+            if (update>0) {
+                return R.ok();
+            }
+        }else{
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 点赞/取消点赞微心愿
+     *
+     * @param comActMicroWishVO 操作参数
+     * @return 操作结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R comActMicroWishVO(ComActMicroWishVO comActMicroWishVO) {
+        Long userId = comActMicroWishVO.getSponsorId();
+        Long microWishId = comActMicroWishVO.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();
+                }
+            }
+        }
+        return R.fail("该微心愿不可点心");
+    }
+
+    /**
+     * 用户确认心愿
+     *
+     * @param comActMicroWishVO 用户评价
+     * @return 确认结果
+     */
+    @Override
+    public R putMicroWishConfirm(ComActMicroWishVO comActMicroWishVO) {
+        ComActMicroWishDO comActMicroWishDO1 = comActMicroWishDAO.selectById(comActMicroWishVO.getId());
+        if (ObjectUtils.isEmpty(comActMicroWishDO1)) {
+            return R.fail("心愿不存在");
+        }
+        Integer status = comActMicroWishDO1.getStatus();
+        if (!status.equals(ComActMicroWishDO.status.dqr)) {
+            return R.fail("心愿状态不是待确认状态");
+        }
+        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) {
+            //用户确认心愿添加操作记录
+            wishOperationRecordService.addOperationRecord(comActMicroWishVO.getEvaluate(),comActMicroWishDO1.getSponsorId()
+                    ,comActMicroWishDO1.getId(),ComActMicroWishOperationRecordDO.type.wc,"用户已确认",null);
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 社区首页代办事件集合
+     *
+     * @param communityId 社区id
+     * @param userId      登录用户
+     * @return 代办事件集合
+     */
+    @Override
+    public List<TodoEventsVO> selectNeedToDo(Long communityId, Long userId) {
+        List<TodoEventsVO> todoEventsVOS=comActMicroWishDAO.selectNeedToDo(communityId,userId);
+        return todoEventsVOS;
+    }
+
+    @Override
+    public R deleteMicroWish(Long id) {
+        ComActMicroWishDO comActMicroWishDO = comActMicroWishDAO.selectById(id);
+        if(comActMicroWishDO==null){
+            return R.fail("id有误!");
+        }
+        comActMicroWishDAO.deleteById(id);
+        comActMicroWishUserDAO.delete(new LambdaQueryWrapper<ComActMicroWishUserDO>().eq(ComActMicroWishUserDO::getMicroWishId,id));
+        return R.ok();
+    }
+
+    @Override
+    public R timedTaskActMicroWishAll() {
+
+        //微心愿自动确认前需要添加操作记录
+        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()){
+            microListVOIPage.getRecords().forEach(microListVO -> {
+                Integer count = comActMicroWishUserDAO.selectCount(new QueryWrapper<ComActMicroWishUserDO>().lambda()
+                        .eq(ComActMicroWishUserDO::getMicroWishId,microListVO.getId()));
+                microListVO.setStarNum(count);
+            });
+        }
+        return R.ok(microListVOIPage);
+    }
+
+    /**
+     * 微心愿处理人列表
+     * @param communityId   社区id
+     * @param type  处理人类型(1.后台用户  2.党员  3.志愿者)
+     * @return  处理人列表
+     */
+    @Override
+    public R wishHandleListAdmin(Long communityId,Integer type){
+        return R.ok(comActMicroWishDAO.getWishHandleListAdmin(type,communityId));
+    }
+
+    /**
+     * 拼接处理人
+     * @param handleId  处理人id字符串
+     * @return  处理人名称
+     */
+    private String getWishHandleName(String handleId){
+        StringBuffer sb = new StringBuffer();
+        if(StringUtils.isNotEmpty(handleId)){
+            String []handleIds = handleId.split(",");
+            if(handleIds.length > 0){
+                for (String id : handleIds) {
+                    SysUserVO user = comActMicroWishDAO.getUserByUserId(Long.parseLong(id));
+                    if(user != null){
+                        if(user.getType().equals(SysUserVO.type.xcx)){
+                            if(user.getIsPartymember().equals(SysUserVO.isOk.yes)){
+                                sb.append(user.getName() + "(党员),");
+                            }else if(user.getIsVolunteer().equals(SysUserVO.isOk.yes)){
+                                sb.append(user.getName() + "(志愿者),");
+                            }else{
+                                sb.append(user.getName());
+                            }
+                        }else if(user.getType().equals(SysUserVO.type.sqht)){
+                            sb.append(user.getName() + "(后台用户),");
+                        }
+                    }
+                }
+            }
+        }
+        String result = sb.toString();
+        if(result.length() > 0){
+            result = result.substring(0,result.length()-1);
+        }
+        return result;
+    }
+
+    /**
+     * 社区后台分页查询微心愿
+     * @param comActMicroWishVO 请求参数
+     * @return  微心愿列表
+     */
+    @Override
+    public R pageMicroWishAdmin(ComActMicroWishVO comActMicroWishVO) {
+        Long userId = comActMicroWishVO.getResponsibleId();
+        IPage<ComActMicroWishVO> iPage = comActMicroWishDAO.pageMicroWishAdmin(new Page(comActMicroWishVO.getPageNum()
+                ,comActMicroWishVO.getPageSize()), comActMicroWishVO);
+
+        iPage.getRecords().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()));
+            //查询处理人
+            comActMicroWishVO1.setResponsibleName(this.getWishHandleName(comActMicroWishVO1.getHandleId()));
+        });
+        return R.ok(iPage);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleBrowseServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleBrowseServiceImpl.java
new file mode 100644
index 0000000..a43a90b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleBrowseServiceImpl.java
@@ -0,0 +1,38 @@
+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.ComActNeighborCircleBrowseDAO;
+import com.panzhihua.service_community.model.dos.ComActNeighborCircleBrowseDO;
+import com.panzhihua.service_community.service.ComActNeighborCircleBrowseService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 13:40:53
+ * @describe 邻里圈浏览记录表服务实现类
+ */
+@Slf4j
+@Service
+public class ComActNeighborCircleBrowseServiceImpl
+    extends ServiceImpl<ComActNeighborCircleBrowseDAO, ComActNeighborCircleBrowseDO>
+    implements ComActNeighborCircleBrowseService {
+
+    /**
+     * 添加邻里圈浏览记录
+     * 
+     * @param neighborId
+     *            邻里圈id
+     * @param userId
+     *            用户id
+     */
+    public void addBrowseRecord(Long neighborId, Long userId) {
+        ComActNeighborCircleBrowseDO circleBrowseDO = new ComActNeighborCircleBrowseDO();
+        circleBrowseDO.setNeighborId(neighborId);
+        circleBrowseDO.setUserId(userId);
+        this.baseMapper.insert(circleBrowseDO);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleBrowseWestServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleBrowseWestServiceImpl.java
new file mode 100644
index 0000000..f015afe
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleBrowseWestServiceImpl.java
@@ -0,0 +1,38 @@
+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.ComActNeighborCircleBrowseWestDAO;
+import com.panzhihua.service_community.model.dos.ComActNeighborCircleBrowseWestDO;
+import com.panzhihua.service_community.service.ComActNeighborCircleBrowseWestService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 13:40:53
+ * @describe 邻里圈浏览记录表服务实现类
+ */
+@Slf4j
+@Service
+public class ComActNeighborCircleBrowseWestServiceImpl
+    extends ServiceImpl<ComActNeighborCircleBrowseWestDAO, ComActNeighborCircleBrowseWestDO>
+    implements ComActNeighborCircleBrowseWestService {
+
+    /**
+     * 添加邻里圈浏览记录
+     * 
+     * @param neighborId
+     *            邻里圈id
+     * @param userId
+     *            用户id
+     */
+    public void addBrowseRecord(Long neighborId, Long userId) {
+        ComActNeighborCircleBrowseWestDO circleBrowseDO = new ComActNeighborCircleBrowseWestDO();
+        circleBrowseDO.setNeighborId(neighborId);
+        circleBrowseDO.setUserId(userId);
+        this.baseMapper.insert(circleBrowseDO);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleCommentReplyServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleCommentReplyServiceImpl.java
new file mode 100644
index 0000000..3e48d20
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleCommentReplyServiceImpl.java
@@ -0,0 +1,23 @@
+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.ComActNeighborCircleCommentReplyDAO;
+import com.panzhihua.service_community.model.dos.ComActNeighborCircleCommentReplyDO;
+import com.panzhihua.service_community.service.ComActNeighborCircleCommentReplyService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 09:21:45
+ * @describe 邻里圈评论回复表服务实现类
+ */
+@Slf4j
+@Service
+public class ComActNeighborCircleCommentReplyServiceImpl
+    extends ServiceImpl<ComActNeighborCircleCommentReplyDAO, ComActNeighborCircleCommentReplyDO>
+    implements ComActNeighborCircleCommentReplyService {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleCommentReplyWestServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleCommentReplyWestServiceImpl.java
new file mode 100644
index 0000000..0db9e8d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleCommentReplyWestServiceImpl.java
@@ -0,0 +1,23 @@
+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.ComActNeighborCircleCommentReplyWestDAO;
+import com.panzhihua.service_community.model.dos.ComActNeighborCircleCommentReplyWestDO;
+import com.panzhihua.service_community.service.ComActNeighborCircleCommentReplyWestService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 09:21:45
+ * @describe 邻里圈评论回复表服务实现类
+ */
+@Slf4j
+@Service
+public class ComActNeighborCircleCommentReplyWestServiceImpl
+    extends ServiceImpl<ComActNeighborCircleCommentReplyWestDAO, ComActNeighborCircleCommentReplyWestDO>
+    implements ComActNeighborCircleCommentReplyWestService {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleCommentServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleCommentServiceImpl.java
new file mode 100644
index 0000000..af182a6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleCommentServiceImpl.java
@@ -0,0 +1,23 @@
+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.ComActNeighborCircleCommentDAO;
+import com.panzhihua.service_community.model.dos.ComActNeighborCircleCommentDO;
+import com.panzhihua.service_community.service.ComActNeighborCircleCommentService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 09:21:33
+ * @describe 邻里圈评论表服务实现类
+ */
+@Slf4j
+@Service
+public class ComActNeighborCircleCommentServiceImpl
+    extends ServiceImpl<ComActNeighborCircleCommentDAO, ComActNeighborCircleCommentDO>
+    implements ComActNeighborCircleCommentService {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleCommentWestServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleCommentWestServiceImpl.java
new file mode 100644
index 0000000..941f4ec
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleCommentWestServiceImpl.java
@@ -0,0 +1,23 @@
+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.ComActNeighborCircleCommentWestDAO;
+import com.panzhihua.service_community.model.dos.ComActNeighborCircleCommentWestDO;
+import com.panzhihua.service_community.service.ComActNeighborCircleCommentWestService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 09:21:33
+ * @describe 邻里圈评论表服务实现类
+ */
+@Slf4j
+@Service
+public class ComActNeighborCircleCommentWestServiceImpl
+    extends ServiceImpl<ComActNeighborCircleCommentWestDAO, ComActNeighborCircleCommentWestDO>
+    implements ComActNeighborCircleCommentWestService {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleFabulousServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleFabulousServiceImpl.java
new file mode 100644
index 0000000..60eb21b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleFabulousServiceImpl.java
@@ -0,0 +1,23 @@
+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.ComActNeighborCircleFabulousDAO;
+import com.panzhihua.service_community.model.dos.ComActNeighborCircleFabulousDO;
+import com.panzhihua.service_community.service.ComActNeighborCircleFabulousService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 09:21:55
+ * @describe 邻里圈点赞表服务实现类
+ */
+@Slf4j
+@Service
+public class ComActNeighborCircleFabulousServiceImpl
+    extends ServiceImpl<ComActNeighborCircleFabulousDAO, ComActNeighborCircleFabulousDO>
+    implements ComActNeighborCircleFabulousService {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleFabulousWestServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleFabulousWestServiceImpl.java
new file mode 100644
index 0000000..6aee130
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleFabulousWestServiceImpl.java
@@ -0,0 +1,23 @@
+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.ComActNeighborCircleFabulousWestDAO;
+import com.panzhihua.service_community.model.dos.ComActNeighborCircleFabulousWestDO;
+import com.panzhihua.service_community.service.ComActNeighborCircleFabulousWestService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 09:21:55
+ * @describe 邻里圈点赞表服务实现类
+ */
+@Slf4j
+@Service
+public class ComActNeighborCircleFabulousWestServiceImpl
+    extends ServiceImpl<ComActNeighborCircleFabulousWestDAO, ComActNeighborCircleFabulousWestDO>
+    implements ComActNeighborCircleFabulousWestService {
+
+}
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
new file mode 100644
index 0000000..6986fd9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleServiceImpl.java
@@ -0,0 +1,1922 @@
+package com.panzhihua.service_community.service.impl;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.collection.ListUtil;
+import cn.hutool.core.util.PageUtil;
+import cn.hutool.core.collection.CollUtil;
+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.constants.NeighborCircleConstants;
+import com.panzhihua.common.model.dtos.ExcelDO;
+import com.panzhihua.common.model.dtos.PartyExcelDO;
+import com.panzhihua.common.model.dtos.neighbor.*;
+import com.panzhihua.common.model.vos.PageVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.common.PbCheckUnitStatisticsVo;
+import com.panzhihua.common.model.vos.neighbor.*;
+import com.panzhihua.common.model.vos.user.AdministratorsUserVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.*;
+import com.panzhihua.service_community.dao.*;
+import com.panzhihua.service_community.entity.ComPbCheckUnit;
+import com.panzhihua.service_community.entity.NewFightNeedProblemClaim;
+import com.panzhihua.service_community.entity.NewFightNeedProblemInventory;
+import com.panzhihua.service_community.entity.SysUser;
+import com.panzhihua.service_community.model.dos.*;
+import com.panzhihua.service_community.service.ComActNeighborCircleBrowseService;
+import com.panzhihua.service_community.service.ComActNeighborCircleService;
+import com.panzhihua.service_community.service.ComActNeighborCircleTopicService;
+import com.panzhihua.service_community.util.ExcelUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.ObjectUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.math.BigDecimal;
+import java.text.DecimalFormat;
+import java.util.*;
+import java.util.stream.Collectors;
+
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 09:20:49
+ * @describe 邻里圈表服务实现类
+ */
+@Slf4j
+@Service
+public class ComActNeighborCircleServiceImpl extends ServiceImpl<ComActNeighborCircleDAO, ComActNeighborCircleDO>
+    implements ComActNeighborCircleService {
+
+    @Resource
+    ComActNeighborCircleFabulousDAO neighborCircleFabulousDAO;
+    @Resource
+    ComActNeighborCircleBrowseDAO neighborCircleBrowseDAO;
+    @Resource
+    ComActNeighborCircleCommentDAO neighborCircleCommentDAO;
+    @Resource
+    ComActNeighborCircleCommentReplyDAO neighborCircleCommentReplyDAO;
+    @Resource
+    private ComActNeighborCircleBrowseService comActNeighborCircleBrowseService;
+    @Resource
+    private ComActNeighborCircleCommentDAO comActNeighborCircleCommentDAO;
+    @Resource
+    private ComActNeighborCircleCommentReplyDAO comActNeighborCircleCommentReplyDAO;
+    @Resource
+    private ComActNeighborCircleFabulousDAO comActNeighborCircleFabulousDAO;
+    @Resource
+    private ComActNeighborCircleBrowseDAO comActNeighborCircleBrowseDAO;
+    @Resource
+    private ComActDAO comActDAO;
+    @Resource
+    private ComActNeighborCircleTopicMapper comActNeighborCircleTopicMapper;
+    @Resource
+    private ComActNeighborCircleTopicService comActNeighborCircleTopicService;
+    @Resource
+    private UserService userService;
+    @Resource
+    private ComPbMemberDAO comPbMemberDAO;
+    @Resource
+    private ComActNeighborCircleDAO comActNeighborCircleDAO;
+    @Resource
+    private ComActActivityDAO comActActivityDAO;
+    @Resource
+    private ComPbCheckUnitDao comPbCheckUnitDao;
+    @Resource
+    private SysUserDao sysUserDao;
+    @Autowired
+    private NewFightNeedProblemClaimMapper newFightNeedProblemClaimMapper;
+    @Autowired
+    private NewFightNeedProblemInventoryMapper newFightNeedProblemInventoryMapper;
+    /**
+     * 分页查询邻里圈列表
+     *
+     * @param neighborCircleAppDTO
+     *            请求参数
+     * @return 邻里圈列表
+     */
+    @Override
+    public R pageNeighborByApp(ComActNeighborCircleAppDTO neighborCircleAppDTO) {
+//        if(neighborCircleAppDTO.getCommunityId()==0L){
+//            R<LoginUserInfoVO> loginUserInfoVOR=userService.getUserInfoByUserId(neighborCircleAppDTO.getUserId().toString());
+//            if(R.isOk(loginUserInfoVOR)){
+//                LoginUserInfoVO loginUserInfoVO=loginUserInfoVOR.getData();
+//                if(loginUserInfoVO!=null){
+//                 ComPbMemberDO comPbMemberDO=comPbMemberDAO.selectOne(new QueryWrapper<ComPbMemberDO>().lambda().eq(ComPbMemberDO::getIdCard,loginUserInfoVO.getIdCard()));
+//                 if(comPbMemberDO!=null){
+//                     neighborCircleAppDTO.setCommunityId(comPbMemberDO.getCommunityId());
+//                 }
+//                }
+//            }
+//        }
+        Long communityId = neighborCircleAppDTO.getCommunityId();
+        if(null != communityId){
+            List<Long> communityIds = comActDAO.selectIds(communityId);
+            if (CollUtil.isEmpty(communityIds)) {
+                communityIds = new ArrayList<>();
+                communityIds.add(communityId);
+            }
+            neighborCircleAppDTO.setCommunityIds(communityIds);
+        }
+        Page userPage = new Page(neighborCircleAppDTO.getPageNum(), neighborCircleAppDTO.getPageSize());
+        IPage<ComActNeighborCircleAppVO> doPager = this.baseMapper.pageNeighborByApp(userPage, neighborCircleAppDTO);
+        if (!doPager.getRecords().isEmpty()) {
+            for (ComActNeighborCircleAppVO circleAppVO : doPager.getRecords()) {
+                if (neighborCircleAppDTO.getUserId() != null) {
+                    // 查询点赞信息
+                    ComActNeighborCircleFabulousDO circleFabulousDO =
+                        comActNeighborCircleFabulousDAO.selectOne(new QueryWrapper<ComActNeighborCircleFabulousDO>()
+                            .lambda().eq(ComActNeighborCircleFabulousDO::getParentId, circleAppVO.getId())
+                            .eq(ComActNeighborCircleFabulousDO::getUserId, neighborCircleAppDTO.getUserId())
+                            .eq(ComActNeighborCircleFabulousDO::getType, ComActNeighborCircleFabulousDO.type.llq)
+                            .eq(ComActNeighborCircleFabulousDO::getIsEffective,
+                                ComActNeighborCircleFabulousDO.isEffective.yes));
+                    if (circleFabulousDO != null) {
+                        circleAppVO.setHaveSign(1);
+                    } else {
+                        circleAppVO.setHaveSign(2);
+                    }
+                }
+
+                if (circleAppVO.getType() != null && circleAppVO.getType().equals(ComActNeighborCircleDO.type.admin)) {
+                    ComActDO actDO = comActDAO.selectById(circleAppVO.getCommunityId());
+                    if (actDO != null) {
+                        circleAppVO.setName(actDO.getName());
+                    }
+                }
+
+            }
+        }
+        return R.ok(doPager);
+    }
+
+    @Override
+    public R selectSolve(ComActNeighborCircleAppDTO neighborCircleAppDTO) {
+        IPage<ComActNeighborCircleAppVO> doPager=this.baseMapper.selectSolve(new Page<ComActNeighborCircleDO>(neighborCircleAppDTO.getPageNum(),neighborCircleAppDTO.getPageSize()),neighborCircleAppDTO);
+        if (!doPager.getRecords().isEmpty()) {
+            for (ComActNeighborCircleAppVO circleAppVO : doPager.getRecords()) {
+                if (neighborCircleAppDTO.getSolveId() != null) {
+                    // 查询点赞信息
+                    ComActNeighborCircleFabulousDO circleFabulousDO =
+                            comActNeighborCircleFabulousDAO.selectOne(new QueryWrapper<ComActNeighborCircleFabulousDO>()
+                                    .lambda().eq(ComActNeighborCircleFabulousDO::getParentId, circleAppVO.getId())
+                                    .eq(ComActNeighborCircleFabulousDO::getUserId, neighborCircleAppDTO.getUserId())
+                                    .eq(ComActNeighborCircleFabulousDO::getType, ComActNeighborCircleFabulousDO.type.llq)
+                                    .eq(ComActNeighborCircleFabulousDO::getIsEffective,
+                                            ComActNeighborCircleFabulousDO.isEffective.yes));
+                    if (circleFabulousDO != null) {
+                        circleAppVO.setHaveSign(1);
+                    } else {
+                        circleAppVO.setHaveSign(2);
+                    }
+                }
+                ComActDO actDO = comActDAO.selectById(circleAppVO.getCommunityId());
+                if (circleAppVO.getType() != null && circleAppVO.getType().equals(ComActNeighborCircleDO.type.admin)) {
+                    if (actDO != null) {
+                        circleAppVO.setName(actDO.getName());
+                    }
+                }
+                else {
+                    if (actDO != null) {
+                        circleAppVO.setCommunityName(actDO.getName());
+                    }
+                }
+
+            }
+        }
+        return R.ok(doPager);
+    }
+
+    /**
+     * 用户发布邻里圈审核
+     *
+     * @param addNeighborCircleAppDTO
+     *            邻里圈请求参数
+     * @return 发布结果
+     */
+    @Override
+    public R addNeighborByApp(AddComActNeighborCircleAppDTO addNeighborCircleAppDTO) {
+        // 新增邻里圈审核
+        ComActNeighborCircleDO neighborCircleDO = new ComActNeighborCircleDO();
+        BeanUtils.copyProperties(addNeighborCircleAppDTO, neighborCircleDO);
+        if (addNeighborCircleAppDTO.getUserId() != null) {
+            neighborCircleDO.setReleaseId(addNeighborCircleAppDTO.getUserId());
+        }
+        if (addNeighborCircleAppDTO.getCommunityId() != null) {
+            neighborCircleDO.setCommunityId(addNeighborCircleAppDTO.getCommunityId());
+        }
+        if (StringUtils.isNotEmpty(addNeighborCircleAppDTO.getPhone())) {
+            neighborCircleDO.setReleasePhone(addNeighborCircleAppDTO.getPhone());
+        }
+
+        //判断当前邻里圈是否需要审核
+        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("发布失败");
+        }
+    }
+
+    /**
+     * 查看邻里圈详情
+     *
+     * @param neighborCircleAppDTO
+     *            请求参数
+     * @return 邻里圈详情
+     */
+    @Override
+    public R neighborDetailByApp(ComActNeighborCircleDetailAppDTO neighborCircleAppDTO) {
+
+        // 查询邻里圈详情
+        ComActNeighborCircleDetailAppVO circleDetailAppVO =
+            this.baseMapper.neighborDetailByApp(neighborCircleAppDTO.getCircleId());
+        if (circleDetailAppVO == null) {
+            return R.fail("未找到邻里圈信息");
+        }
+
+        if (circleDetailAppVO.getType() != null
+            && circleDetailAppVO.getType().equals(ComActNeighborCircleDO.type.admin)) {
+            ComActDO actDO = comActDAO.selectById(circleDetailAppVO.getCommunityId());
+            if (actDO != null) {
+                circleDetailAppVO.setName(actDO.getName());
+            }
+        }
+        if(circleDetailAppVO.getOrderType()!=null){
+            if(circleDetailAppVO.getOrderType()==2){
+                AdministratorsUserVO user1 = this.baseMapper.selectUserByUserId(circleDetailAppVO.getSolveId());
+                circleDetailAppVO.setSolveName(SensitiveUtil.replaceName(user1.getName()));
+            }
+            if(circleDetailAppVO.getOrderType()==1){
+                ComPbCheckUnit comPbCheckUnit=comPbCheckUnitDao.selectById(circleDetailAppVO.getSolveUnitId());
+                if(comPbCheckUnit!=null){
+                    circleDetailAppVO.setSolveName(comPbCheckUnit.getName());
+                }
+            }
+        }
+
+        if (neighborCircleAppDTO.getUserId() != null) {
+            // 查询邻里圈点赞信息
+            ComActNeighborCircleFabulousDO circleFabulousDO =
+                comActNeighborCircleFabulousDAO.selectOne(new QueryWrapper<ComActNeighborCircleFabulousDO>().lambda()
+                    .eq(ComActNeighborCircleFabulousDO::getParentId, circleDetailAppVO.getId())
+                    .eq(ComActNeighborCircleFabulousDO::getUserId, neighborCircleAppDTO.getUserId())
+                    .eq(ComActNeighborCircleFabulousDO::getType, ComActNeighborCircleFabulousDO.type.llq)
+                    .eq(ComActNeighborCircleFabulousDO::getIsEffective,
+                        ComActNeighborCircleFabulousDO.isEffective.yes));
+            if (circleFabulousDO != null) {
+                circleDetailAppVO.setHaveSign(1);
+            } else {
+                circleDetailAppVO.setHaveSign(2);
+            }
+        }
+        ComActActivityDO comActActivityDO=comActActivityDAO.selectOne(new QueryWrapper<ComActActivityDO>().lambda().eq(ComActActivityDO::getRelationId,neighborCircleAppDTO.getCircleId()));
+        if(comActActivityDO!=null){
+            circleDetailAppVO.setActivityDate(comActActivityDO.getCreateAt());
+            circleDetailAppVO.setActivityId(comActActivityDO.getId());
+            circleDetailAppVO.setActivityName(comActActivityDO.getActivityName());
+        }
+        // 查询邻里圈下评论列表
+        IPage<ComActNeighborCircleCommentAppVO> circleCommentAppPage =
+            comActNeighborCircleCommentDAO.pageNeighborCommentByApp(
+                new Page(neighborCircleAppDTO.getPageNum(), neighborCircleAppDTO.getPageSize()), neighborCircleAppDTO);
+        if (!circleCommentAppPage.getRecords().isEmpty()) {
+            for (ComActNeighborCircleCommentAppVO circleCommentVo : circleCommentAppPage.getRecords()) {
+
+                if (neighborCircleAppDTO.getUserId() != null) {
+                    // 查询点赞信息
+                    ComActNeighborCircleFabulousDO circleCommentFabulousDO =
+                        comActNeighborCircleFabulousDAO.selectOne(new QueryWrapper<ComActNeighborCircleFabulousDO>()
+                            .lambda().eq(ComActNeighborCircleFabulousDO::getParentId, circleCommentVo.getId())
+                            .eq(ComActNeighborCircleFabulousDO::getUserId, neighborCircleAppDTO.getUserId())
+                            .eq(ComActNeighborCircleFabulousDO::getType, ComActNeighborCircleFabulousDO.type.pl)
+                            .eq(ComActNeighborCircleFabulousDO::getIsEffective,
+                                ComActNeighborCircleFabulousDO.isEffective.yes));
+                    if (circleCommentFabulousDO != null) {
+                        circleCommentVo.setHaveSign(1);
+                    } else {
+                        circleCommentVo.setHaveSign(2);
+                    }
+                }
+
+                // 查询评论下评论回复
+                List<ComActNeighborCircleCommentReplyAppVO> commentReplyAppVOS =
+                    comActNeighborCircleCommentReplyDAO.getCircleCommentReplyList(circleCommentVo.getId());
+                if (!commentReplyAppVOS.isEmpty()) {
+                    List<ComActNeighborCircleCommentReplyAppVO> newCommentReplyAppVOS = new ArrayList<>();
+                    if (neighborCircleAppDTO.getUserId() != null) {
+                        int i = 0;
+                        for (ComActNeighborCircleCommentReplyAppVO commentReplyVO : commentReplyAppVOS) {
+                            if (i >= 2) {
+                                break;
+                            }
+                            // 查询点赞信息
+                            ComActNeighborCircleFabulousDO circleReplyFabulousDO = comActNeighborCircleFabulousDAO
+                                .selectOne(new QueryWrapper<ComActNeighborCircleFabulousDO>().lambda()
+                                    .eq(ComActNeighborCircleFabulousDO::getParentId, commentReplyVO.getId())
+                                    .eq(ComActNeighborCircleFabulousDO::getUserId, neighborCircleAppDTO.getUserId())
+                                    .eq(ComActNeighborCircleFabulousDO::getType, ComActNeighborCircleFabulousDO.type.hf)
+                                    .eq(ComActNeighborCircleFabulousDO::getIsEffective,
+                                        ComActNeighborCircleFabulousDO.isEffective.yes));
+                            if (circleReplyFabulousDO != null) {
+                                commentReplyVO.setHaveSign(1);
+                            } else {
+                                commentReplyVO.setHaveSign(2);
+                            }
+                            newCommentReplyAppVOS.add(commentReplyVO);
+                            i++;
+                        }
+                    }
+                    circleCommentVo.setCircleCommentReplyAppList(newCommentReplyAppVOS);
+                    circleCommentVo.setCommentReplyNum(commentReplyAppVOS.size());
+                }
+            }
+        }
+        circleDetailAppVO.setCircleCommentAppList(circleCommentAppPage.getRecords());
+        return R.ok(circleDetailAppVO);
+    }
+
+    @Override
+    public R pageNeighborByAdmin(ComActNeighborCircleAdminDTO neighborCircleAdminDTO) {
+        Long communityId = neighborCircleAdminDTO.getCommunityId();
+        if(null != communityId){
+            List<Long> communityIds = comActDAO.selectIds(communityId);
+            if (CollUtil.isEmpty(communityIds)) {
+                communityIds = new ArrayList<>();
+                communityIds.add(communityId);
+            }
+            neighborCircleAdminDTO.setCommunityIds(communityIds);
+        }
+        Page page = new Page(neighborCircleAdminDTO.getPageNum(), neighborCircleAdminDTO.getPageSize());
+        IPage<ComActNeighborCircleAdminVO> doPager = this.baseMapper.pageNeighborByAdmin(page, neighborCircleAdminDTO);
+        doPager.getRecords().forEach(data -> {
+            if(data.getUserType()!=null){
+                if (data.getUserType() != 1) {
+                    data.setReleaseName(data.getCommunityName());
+                }
+            }
+        });
+        return R.ok(doPager);
+    }
+    @Override
+    public R pageNeighborByBigScreen(ComActNeighborCircleAdminDTO neighborCircleAdminDTO) {
+        Page page = new Page(neighborCircleAdminDTO.getPageNum(), neighborCircleAdminDTO.getPageSize());
+        IPage<ComActNeighborCircleAdminVO> doPager = this.baseMapper.pageNeighborByBigScreen(page, neighborCircleAdminDTO);
+        return R.ok(doPager);
+    }
+
+    @Override
+    public R addNeighborByAdmin(AddNeighborCircleAdminVO addVO) {
+        ComActNeighborCircleDO comActNeighborCircleDO = new ComActNeighborCircleDO();
+        AdministratorsUserVO adminUser = this.baseMapper.selectUserByUserId(addVO.getUserId());
+        if (adminUser == null) {
+            return R.fail("请登录重试");
+        }
+        comActNeighborCircleDO.setReleaseId(addVO.getUserId());
+        comActNeighborCircleDO.setReleasePhone(adminUser.getPhone());
+        comActNeighborCircleDO.setCommunityId(adminUser.getCommunityId());
+        comActNeighborCircleDO.setReleaseContent(addVO.getReleaseContent());
+        comActNeighborCircleDO.setReleaseImages(addVO.getReleaseImages());
+        comActNeighborCircleDO.setType(2);
+        comActNeighborCircleDO.setStatus(2);
+        comActNeighborCircleDO.setCommentNum(0);
+        comActNeighborCircleDO.setFabulousNum(0);
+        comActNeighborCircleDO.setForwardNum(0);
+        comActNeighborCircleDO.setViewsNum(0);
+        comActNeighborCircleDO.setIsBoutique(2);
+        comActNeighborCircleDO.setCreateAt(new Date());
+        comActNeighborCircleDO.setLastCommentNum(0);
+        comActNeighborCircleDO.setLastFabulousNum(0);
+        comActNeighborCircleDO.setLastViewsNum(0);
+        comActNeighborCircleDO.setBelongType(addVO.getBelongType());
+        this.baseMapper.insert(comActNeighborCircleDO);
+        return R.ok();
+    }
+
+    @Override
+    public R changeStatusByAdmin(EditNeighborCircleAdminVO editVO) {
+        ComActNeighborCircleDO neighborCircleDO = this.baseMapper.selectById(editVO.getId());
+        if (neighborCircleDO == null) {
+            return R.fail("id有误!");
+        }
+        neighborCircleDO.setStatus(editVO.getStatus());
+        if (editVO.getRefuseReason() != null) {
+            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 邻里圈列表
+     */
+    @Override
+    public R neighborExamineByApp(ComActNeighborCircleAppDTO neighborCircleAppDTO) {
+        IPage<ComActNeighborCircleAppVO> neighborCircleIPage = this.baseMapper.neighborExamineByApp(
+            new Page<>(neighborCircleAppDTO.getPageNum(), neighborCircleAppDTO.getPageSize()),
+            neighborCircleAppDTO.getUserId(),neighborCircleAppDTO.getBelongType());
+        if (!neighborCircleIPage.getRecords().isEmpty()) {
+            for (ComActNeighborCircleAppVO circleAppVO : neighborCircleIPage.getRecords()) {
+                // 查询点赞信息
+                ComActNeighborCircleFabulousDO circleFabulousDO =
+                    comActNeighborCircleFabulousDAO.selectOne(new QueryWrapper<ComActNeighborCircleFabulousDO>()
+                        .lambda().eq(ComActNeighborCircleFabulousDO::getParentId, circleAppVO.getId())
+                        .eq(ComActNeighborCircleFabulousDO::getUserId, neighborCircleAppDTO.getUserId())
+                        .eq(ComActNeighborCircleFabulousDO::getType, ComActNeighborCircleFabulousDO.type.llq)
+                        .eq(ComActNeighborCircleFabulousDO::getIsEffective,
+                            ComActNeighborCircleFabulousDO.isEffective.yes));
+                if (circleFabulousDO != null) {
+                    circleAppVO.setHaveSign(1);
+                } else {
+                    circleAppVO.setHaveSign(2);
+                }
+            }
+        }
+        return R.ok(neighborCircleIPage);
+    }
+
+    /**
+     * 邻里圈点赞
+     *
+     * @param fabulousAppDTO
+     *            请求参数
+     * @return 点赞结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R neighborFabulousByApp(ComActNeighborFabulousAppDTO fabulousAppDTO) {
+
+        ComActNeighborCircleFabulousDO circleFabulousDO = new ComActNeighborCircleFabulousDO();
+        circleFabulousDO.setUserId(fabulousAppDTO.getUserId());
+        circleFabulousDO.setType(fabulousAppDTO.getType());
+        circleFabulousDO.setParentId(fabulousAppDTO.getServiceId());
+        // 判断点赞类型
+        if (fabulousAppDTO.getType().equals(ComActNeighborFabulousAppDTO.type.llq)) {
+
+            ComActNeighborCircleFabulousDO oldCircleFabulousDO =
+                comActNeighborCircleFabulousDAO.selectOne(new QueryWrapper<ComActNeighborCircleFabulousDO>().lambda()
+                    .eq(ComActNeighborCircleFabulousDO::getType, ComActNeighborFabulousAppDTO.type.llq)
+                    .eq(ComActNeighborCircleFabulousDO::getParentId, fabulousAppDTO.getServiceId())
+                    .eq(ComActNeighborCircleFabulousDO::getIsEffective, ComActNeighborCircleFabulousDO.isEffective.yes)
+                    .eq(ComActNeighborCircleFabulousDO::getUserId, fabulousAppDTO.getUserId()));
+            if (oldCircleFabulousDO != null) {
+                return R.fail("您已点赞");
+            }
+
+            // 增加邻里圈点赞数量
+            ComActNeighborCircleDO neighborCircleDO = this.baseMapper.selectById(fabulousAppDTO.getServiceId());
+            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());
+            }
+            // 添加邻里圈浏览记录
+            comActNeighborCircleBrowseService.addBrowseRecord(fabulousAppDTO.getServiceId(),
+                fabulousAppDTO.getUserId());
+        } else if (fabulousAppDTO.getType().equals(ComActNeighborFabulousAppDTO.type.pl)) {
+            ComActNeighborCircleFabulousDO oldCircleFabulousDO =
+                comActNeighborCircleFabulousDAO.selectOne(new QueryWrapper<ComActNeighborCircleFabulousDO>().lambda()
+                    .eq(ComActNeighborCircleFabulousDO::getType, ComActNeighborFabulousAppDTO.type.pl)
+                    .eq(ComActNeighborCircleFabulousDO::getParentId, fabulousAppDTO.getServiceId())
+                    .eq(ComActNeighborCircleFabulousDO::getIsEffective,
+                        ComActNeighborCircleFabulousDO.isEffective.yes));
+            if (oldCircleFabulousDO != null) {
+                return R.fail("您已点赞");
+            }
+            // 增加邻里圈评论点赞数量
+            ComActNeighborCircleCommentDO circleCommentDO =
+                comActNeighborCircleCommentDAO.selectById(fabulousAppDTO.getServiceId());
+            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)) {
+            ComActNeighborCircleFabulousDO oldCircleFabulousDO =
+                comActNeighborCircleFabulousDAO.selectOne(new QueryWrapper<ComActNeighborCircleFabulousDO>().lambda()
+                    .eq(ComActNeighborCircleFabulousDO::getType, ComActNeighborFabulousAppDTO.type.hf)
+                    .eq(ComActNeighborCircleFabulousDO::getParentId, fabulousAppDTO.getServiceId())
+                    .eq(ComActNeighborCircleFabulousDO::getIsEffective,
+                        ComActNeighborCircleFabulousDO.isEffective.yes));
+            if (oldCircleFabulousDO != null) {
+                return R.fail("您已点赞");
+            }
+            // 增加邻里圈评论回复点赞数量
+            ComActNeighborCircleCommentReplyDO circleCommentReplyDO =
+                comActNeighborCircleCommentReplyDAO.selectById(fabulousAppDTO.getServiceId());
+            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());
+            }
+        }
+        if (comActNeighborCircleFabulousDAO.insert(circleFabulousDO) > 0) {
+            return R.ok();
+        } else {
+            return R.fail("点赞失败");
+        }
+    }
+
+    /**
+     * 邻里圈转发
+     *
+     * @param forwardAppDTO
+     *            请求参数
+     * @return 转发结果
+     */
+    @Override
+    public R neighborForwardByApp(ComActNeighborForwardAppDTO forwardAppDTO) {
+
+        if (forwardAppDTO.getUserId() != null) {
+            // 添加邻里圈浏览记录
+            comActNeighborCircleBrowseService.addBrowseRecord(forwardAppDTO.getCircleId(), forwardAppDTO.getUserId());
+        }
+
+        ComActNeighborCircleDO circleDO = this.baseMapper.selectById(forwardAppDTO.getCircleId());
+        if (circleDO == null) {
+            return R.fail("没有找到邻里圈");
+        }
+        circleDO.setForwardNum(circleDO.getForwardNum() + 1);
+        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("转发失败");
+        }
+    }
+
+    /**
+     * 邻里圈评论
+     *
+     * @param commentAppDTO
+     *            请求参数
+     * @return 评论结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R neighborCommentByApp(ComActNeighborCommentAppDTO commentAppDTO) {
+
+        ComActNeighborCircleCommentDO circleCommentDO = new ComActNeighborCircleCommentDO();
+        // 查询邻里圈更新邻里圈评论数量
+        ComActNeighborCircleDO neighborCircleDO = this.baseMapper.selectById(commentAppDTO.getCircleId());
+        if (neighborCircleDO == null) {
+            return R.fail("没有找到邻里圈");
+        }
+        neighborCircleDO.setCommentNum(neighborCircleDO.getCommentNum() + 1);
+        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());
+        circleCommentDO.setContent(commentAppDTO.getContent());
+        if (neighborCircleDO.getReleaseId().equals(commentAppDTO.getUserId())) {
+            circleCommentDO.setIsRelease(ComActNeighborCircleCommentDO.isRelease.yes);
+        }
+
+        if (comActNeighborCircleCommentDAO.insert(circleCommentDO) > 0) {
+            SysUser sysUser=sysUserDao.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId,neighborCircleDO.getSolveId()));
+            if(sysUser!=null) {
+                try {
+                    WxXCXTempSend util = new WxXCXTempSend();
+                    if (neighborCircleDO.getBelongType()==2){
+                        WxUtil.sendLongTimeTemplate(sysUser.getOpenid(),util.getAccessToken(),"你有一条新的评价信息",neighborCircleDO.getReleaseContent().length()>10?neighborCircleDO.getReleaseContent().substring(0,10)+"..":neighborCircleDO.getReleaseContent(),"packageB/pages/partySecond/problemDetails/index?id="+neighborCircleDO.getId()+"&type=888");
+                    }
+                    if (neighborCircleDO.getBelongType()==3){
+                        WxUtil.sendLongTimeTemplate(sysUser.getOpenid(),util.getAccessToken(),"你有一条新的评价信息",neighborCircleDO.getReleaseContent().length()>10?neighborCircleDO.getReleaseContent().substring(0,10)+"..":neighborCircleDO.getReleaseContent(),"packageB/pages/partySecond/problemDetails/index?id="+neighborCircleDO.getId()+"&type=777");
+                    }
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+            }
+            return R.ok();
+        } else {
+            return R.fail("评论失败");
+        }
+    }
+
+    /**
+     * 邻里圈回复
+     *
+     * @param replyAppDTO
+     *            请求参数
+     * @return 回复结果
+     */
+    @Override
+    public R neighborReplyByApp(ComActNeighborReplyAppDTO replyAppDTO) {
+
+        ComActNeighborCircleCommentReplyDO circleCommentReplyDO = new ComActNeighborCircleCommentReplyDO();
+        // 查询邻里圈更新邻里圈评论数量
+        ComActNeighborCircleDO neighborCircleDO = this.baseMapper.selectById(replyAppDTO.getCircleId());
+        if (neighborCircleDO == null) {
+            return R.fail("没有找到邻里圈");
+        }
+        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());
+        circleCommentReplyDO.setReplyContent(replyAppDTO.getContent());
+        if (neighborCircleDO.getReleaseId().equals(replyAppDTO.getUserId())) {
+            circleCommentReplyDO.setIsRelease(1);
+        }
+
+        // 判断回复类型
+        if (replyAppDTO.getType().equals(ComActNeighborReplyAppDTO.type.pl)) {
+            // 查询评论信息
+            ComActNeighborCircleCommentDO circleCommentDO =
+                comActNeighborCircleCommentDAO.selectById(replyAppDTO.getServiceId());
+            if (circleCommentDO != null) {
+                circleCommentReplyDO.setCommentId(replyAppDTO.getServiceId());
+                circleCommentReplyDO.setParentId(0L);
+                circleCommentReplyDO.setParentUserId(circleCommentDO.getUserId());
+            }
+        } else if (replyAppDTO.getType().equals(ComActNeighborReplyAppDTO.type.hf)) {
+            // 查询上级回复信息
+            ComActNeighborCircleCommentReplyDO parentCommentReplyDO =
+                comActNeighborCircleCommentReplyDAO.selectById(replyAppDTO.getServiceId());
+            if (parentCommentReplyDO != null) {
+                circleCommentReplyDO.setCommentId(parentCommentReplyDO.getCommentId());
+                circleCommentReplyDO.setParentId(parentCommentReplyDO.getId());
+                circleCommentReplyDO.setParentUserId(parentCommentReplyDO.getUserId());
+            }
+        }
+
+        if (comActNeighborCircleCommentReplyDAO.insert(circleCommentReplyDO) > 0) {
+            return R.ok();
+        } else {
+            return R.fail("回复失败");
+        }
+    }
+
+    @Override
+    public R timeTaskCircleFlow() {
+        Date oldDate = DateUtils.addDay(new Date(), -3);
+        // 查询所有状态正常的邻里圈
+        List<ComActNeighborCircleDO> circleDOList =
+            this.baseMapper.selectList(new QueryWrapper<ComActNeighborCircleDO>().lambda()
+                .eq(ComActNeighborCircleDO::getStatus, ComActNeighborCircleDO.status.xs));
+        if (!circleDOList.isEmpty()) {
+            // 遍历查询到的邻里圈,更新邻里圈内近3天的评论数,点赞数,浏览量
+            for (ComActNeighborCircleDO neighborCircleDO : circleDOList) {
+                // 查询邻里圈近3天的评论数
+                int commentCount =
+                    comActNeighborCircleCommentDAO.selectCount(new QueryWrapper<ComActNeighborCircleCommentDO>()
+                        .lambda().eq(ComActNeighborCircleCommentDO::getCircleId, neighborCircleDO.getId()));
+                // 查询邻里圈近3天的评论回复数
+                int commentReplyCount = comActNeighborCircleCommentReplyDAO
+                    .selectCount(new QueryWrapper<ComActNeighborCircleCommentReplyDO>().lambda()
+                        .eq(ComActNeighborCircleCommentReplyDO::getCircleId, neighborCircleDO.getId()));
+                // 查询邻里圈近3天的点赞数
+                int fabulousCount =
+                    comActNeighborCircleFabulousDAO.selectCount(new QueryWrapper<ComActNeighborCircleFabulousDO>()
+                        .lambda().eq(ComActNeighborCircleFabulousDO::getCircleId, neighborCircleDO.getId())
+                        .eq(ComActNeighborCircleFabulousDO::getIsEffective,
+                            ComActNeighborCircleFabulousDO.isEffective.yes));
+                // 查询邻里圈近3天的浏览量
+                int browseCount =
+                    comActNeighborCircleBrowseDAO.selectCount(new QueryWrapper<ComActNeighborCircleBrowseDO>().lambda()
+                        .eq(ComActNeighborCircleBrowseDO::getNeighborId, neighborCircleDO.getId()));
+                // 更新邻里圈信息
+                neighborCircleDO.setLastCommentNum(commentCount + commentReplyCount);
+                neighborCircleDO.setLastFabulousNum(fabulousCount);
+                neighborCircleDO.setLastViewsNum(browseCount);
+                this.baseMapper.updateById(neighborCircleDO);
+            }
+        }
+
+        return R.ok();
+    }
+
+    @Override
+    public R deleteByAdmin(Long id) {
+        ComActNeighborCircleDO comActNeighborCircleDO = this.baseMapper.selectById(id);
+        if (comActNeighborCircleDO == null) {
+            return R.fail();
+        }
+        if (comActNeighborCircleDO.getStatus() == 1) {
+            return R.fail("待审核的数据不能删除");
+        }
+        // 邻里圈删除
+        this.baseMapper.deleteById(id);
+        // 邻里圈评论删除
+        neighborCircleCommentDAO.delete(
+            new LambdaQueryWrapper<ComActNeighborCircleCommentDO>().eq(ComActNeighborCircleCommentDO::getCircleId, id));
+        // 邻里圈回复删除
+        neighborCircleCommentReplyDAO.delete(new LambdaQueryWrapper<ComActNeighborCircleCommentReplyDO>()
+            .eq(ComActNeighborCircleCommentReplyDO::getCircleId, id));
+        // 邻里圈浏览器记录
+        neighborCircleBrowseDAO.delete(
+            new LambdaQueryWrapper<ComActNeighborCircleBrowseDO>().eq(ComActNeighborCircleBrowseDO::getNeighborId, id));
+        // 邻里圈点赞删除
+        neighborCircleFabulousDAO.delete(new LambdaQueryWrapper<ComActNeighborCircleFabulousDO>()
+            .eq(ComActNeighborCircleFabulousDO::getCircleId, id));
+        return R.ok();
+
+    }
+
+    @Override
+    public R detailNeighborByAdmin(Long id) {
+        ComActNeighborCircleDetailAppVO comActNeighborCircleDO = baseMapper.neighborDetailByApp(id);
+        if (comActNeighborCircleDO == null) {
+            return R.fail("id有误");
+        }
+        AdministratorsUserVO user = this.baseMapper.selectUserByUserId(comActNeighborCircleDO.getReleaseId());
+        DetailNeighborCircleAdminVO vo = new DetailNeighborCircleAdminVO();
+        BeanUtils.copyProperties(comActNeighborCircleDO, vo);
+        if(user!=null){
+            vo.setReleaseName(user.getName());
+            vo.setImageUrl(user.getImageUrl());
+        }
+        if(comActNeighborCircleDO.getOrderType()!=null){
+            if(comActNeighborCircleDO.getOrderType()==2){
+                AdministratorsUserVO user1 = this.baseMapper.selectUserByUserId(comActNeighborCircleDO.getSolveId());
+                vo.setSolveName(user1.getName());
+            }
+            if(comActNeighborCircleDO.getOrderType()==1){
+                ComPbCheckUnit comPbCheckUnit=comPbCheckUnitDao.selectById(comActNeighborCircleDO.getSolveUnitId());
+                if(comPbCheckUnit!=null){
+                    vo.setSolveName(comPbCheckUnit.getName());
+                }
+            }
+        }
+
+        // 查询话题名称
+        if (comActNeighborCircleDO.getTopicId() != null) {
+            ComActNeighborCircleTopicDO circleTopicDO =
+                comActNeighborCircleTopicMapper.selectById(comActNeighborCircleDO.getTopicId());
+            if(circleTopicDO!=null && !StringUtils.isEmpty(circleTopicDO.getName()))
+            {
+                vo.setTopicName(circleTopicDO.getName());
+            }
+
+        }
+        return R.ok(vo);
+    }
+
+    @Override
+    public R detailNeighborAllCommentByAdmin(DetailNeighborAllCommentByAdminDTO dto) {
+        ComActNeighborCircleDO comActNeighborCircleDO = this.baseMapper.selectById(dto.getId());
+        if (comActNeighborCircleDO == null) {
+            return R.fail("id有误");
+        }
+        Page<ComActNeighborCircleCommentDO> page = new Page<>(dto.getPageNum(), dto.getPageSize());
+        // 1、先查询所有该邻里圈_的评论
+        IPage<ComActNeighborCommentByAdminVO> commentDOIPage =
+            neighborCircleCommentDAO.selectPageDetailNeighborComment(page, dto);
+        return R.ok(commentDOIPage);
+    }
+
+    @Override
+    public R changeCommentStatusByAdmin(ChangeCommentStatusByAdminVO dto) {
+        ComActNeighborCircleCommentDO commentDO = neighborCircleCommentDAO.selectById(dto.getId());
+        if (commentDO == null) {
+            return R.fail("id有误!");
+        }
+        commentDO.setStatus(dto.getStatus());
+        neighborCircleCommentDAO.updateById(commentDO);
+
+        // 查询邻里圈更新邻里圈评论数量
+        ComActNeighborCircleDO neighborCircleDO = this.baseMapper.selectById(commentDO.getCircleId());
+        if (neighborCircleDO != null) {
+            if (dto.getStatus().equals(2)) {
+                neighborCircleDO.setCommentNum(neighborCircleDO.getCommentNum() - 1);
+            } else {
+                neighborCircleDO.setCommentNum(neighborCircleDO.getCommentNum() + 1);
+            }
+            this.baseMapper.updateById(neighborCircleDO);
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R detailNeighborCommentByAdmin(Long id) {
+        ComActNeighborCircleCommentDO commentDO = neighborCircleCommentDAO.selectById(id);
+        if (commentDO == null) {
+            return R.fail("id有误!");
+        }
+        AdministratorsUserVO user = this.baseMapper.selectUserByUserId(commentDO.getUserId());
+        ComActNeighborCommentByAdminVO vo = new ComActNeighborCommentByAdminVO();
+        BeanUtils.copyProperties(commentDO, vo);
+        String name = user.getName() == null ? user.getNickName() : user.getName();
+        vo.setUserName(name);
+        vo.setUserPhone(user.getPhone());
+        return R.ok(vo);
+    }
+
+    @Override
+    public R detailNeighborCommentAllReply(DetailNeighborCommentReplyByAdminDTO dto) {
+        Page<ComActNeighborCircleCommentReplyDO> page = new Page<>(dto.getPageNum(), dto.getPageSize());
+        Page<ComActNeighborCommentReplyByAdminVO> replyPage =
+            neighborCircleCommentReplyDAO.selectListByComment(page, dto);
+        replyPage.getRecords().forEach(reply -> {
+
+        });
+        return R.ok(replyPage);
+    }
+
+    @Override
+    public R detailNeighborCommentReply(Long id) {
+        ComActNeighborCircleCommentReplyDO replyDO = neighborCircleCommentReplyDAO.selectById(id);
+        if (replyDO == null) {
+            return R.fail("id有误!");
+        }
+        AdministratorsUserVO user = this.baseMapper.selectUserByUserId(replyDO.getUserId());
+        ComActNeighborCommentReplyByAdminVO vo = new ComActNeighborCommentReplyByAdminVO();
+        BeanUtils.copyProperties(replyDO, vo);
+        vo.setUserName(user.getName());
+        vo.setUserPhone(user.getPhone());
+        return R.ok(vo);
+    }
+
+    @Override
+    public R changeCommentReplyStatusByAdmin(ChangeCommentReplyStatusByAdminVO changeStatusReplyVO) {
+        ComActNeighborCircleCommentReplyDO replyDO =
+            neighborCircleCommentReplyDAO.selectById(changeStatusReplyVO.getId());
+        if (replyDO == null) {
+            return R.fail("id有误!");
+        }
+        replyDO.setStatus(changeStatusReplyVO.getStatus());
+        neighborCircleCommentReplyDAO.updateById(replyDO);
+        return R.ok();
+    }
+
+    /**
+     * 邻里圈取消点赞
+     *
+     * @param fabulousAppDTO
+     *            请求参数
+     * @return 取消点赞结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R neighborFabulousCancelByApp(ComActNeighborFabulousAppDTO fabulousAppDTO) {
+        ComActNeighborCircleFabulousDO circleFabulousDO = null;
+        // 查询邻里圈点赞信息
+        if (fabulousAppDTO.getType().equals(ComActNeighborFabulousAppDTO.type.llq)) {
+            // 查询点赞信息
+            circleFabulousDO =
+                comActNeighborCircleFabulousDAO.selectOne(new QueryWrapper<ComActNeighborCircleFabulousDO>().lambda()
+                    .eq(ComActNeighborCircleFabulousDO::getParentId, fabulousAppDTO.getServiceId())
+                    .eq(ComActNeighborCircleFabulousDO::getUserId, fabulousAppDTO.getUserId())
+                    .eq(ComActNeighborCircleFabulousDO::getType, ComActNeighborCircleFabulousDO.type.llq)
+                    .eq(ComActNeighborCircleFabulousDO::getIsEffective,
+                        ComActNeighborCircleFabulousDO.isEffective.yes));
+            if (circleFabulousDO == null) {
+                return R.fail("未查询到点赞信息");
+            }
+
+            // 减少邻里圈点赞数量
+            ComActNeighborCircleDO neighborCircleDO = this.baseMapper.selectById(fabulousAppDTO.getServiceId());
+            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 =
+                comActNeighborCircleFabulousDAO.selectOne(new QueryWrapper<ComActNeighborCircleFabulousDO>().lambda()
+                    .eq(ComActNeighborCircleFabulousDO::getParentId, fabulousAppDTO.getServiceId())
+                    .eq(ComActNeighborCircleFabulousDO::getUserId, fabulousAppDTO.getUserId())
+                    .eq(ComActNeighborCircleFabulousDO::getType, ComActNeighborCircleFabulousDO.type.pl)
+                    .eq(ComActNeighborCircleFabulousDO::getIsEffective,
+                        ComActNeighborCircleFabulousDO.isEffective.yes));
+            if (circleFabulousDO == null) {
+                return R.fail("未查询到点赞信息");
+            }
+
+            // 减少邻里圈评论点赞数量
+            ComActNeighborCircleCommentDO circleCommentDO =
+                comActNeighborCircleCommentDAO.selectById(fabulousAppDTO.getServiceId());
+            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 =
+                comActNeighborCircleFabulousDAO.selectOne(new QueryWrapper<ComActNeighborCircleFabulousDO>().lambda()
+                    .eq(ComActNeighborCircleFabulousDO::getParentId, fabulousAppDTO.getServiceId())
+                    .eq(ComActNeighborCircleFabulousDO::getUserId, fabulousAppDTO.getUserId())
+                    .eq(ComActNeighborCircleFabulousDO::getType, ComActNeighborCircleFabulousDO.type.hf)
+                    .eq(ComActNeighborCircleFabulousDO::getIsEffective,
+                        ComActNeighborCircleFabulousDO.isEffective.yes));
+            if (circleFabulousDO == null) {
+                return R.fail("未查询到点赞信息");
+            }
+            // 减少邻里圈评论回复点赞数量
+            ComActNeighborCircleCommentReplyDO circleCommentReplyDO =
+                comActNeighborCircleCommentReplyDAO.selectById(fabulousAppDTO.getServiceId());
+            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) {
+            circleFabulousDO.setIsEffective(ComActNeighborCircleFabulousDO.isEffective.no);
+            comActNeighborCircleFabulousDAO.updateById(circleFabulousDO);
+        }
+        return R.ok();
+    }
+
+    /**
+     * 添加邻里圈浏览记录
+     *
+     * @param addBrowseAppDTO
+     *            请求参数
+     * @return 返回参数
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R neighborAddBrowseByApp(ComActNeighborAddBrowseAppDTO addBrowseAppDTO) {
+        // 添加邻里圈浏览记录
+        comActNeighborCircleBrowseService.addBrowseRecord(addBrowseAppDTO.getCircleId(), addBrowseAppDTO.getUserId());
+        // 更新邻里圈记录
+        ComActNeighborCircleDO neighborCircleDO = this.baseMapper.selectById(addBrowseAppDTO.getCircleId());
+        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 回复列表
+     */
+    @Override
+    public R neighborCommentReplyByApp(ComActNeighborCommentReplyAppDTO commentReplyAppDTO) {
+        IPage<ComActNeighborCommentReplyAppVO> neighborCircleIPage = this.baseMapper.neighborCommentReplyByApp(
+            new Page<>(commentReplyAppDTO.getPageNum(), commentReplyAppDTO.getPageSize()),
+            commentReplyAppDTO.getCommentId());
+        if (!neighborCircleIPage.getRecords().isEmpty()) {
+            for (ComActNeighborCommentReplyAppVO commentReplyAppVO : neighborCircleIPage.getRecords()) {
+                if (commentReplyAppDTO.getUserId() != null) {
+                    // 查询点赞信息
+                    ComActNeighborCircleFabulousDO circleFabulousDO =
+                        comActNeighborCircleFabulousDAO.selectOne(new QueryWrapper<ComActNeighborCircleFabulousDO>()
+                            .lambda().eq(ComActNeighborCircleFabulousDO::getParentId, commentReplyAppVO.getId())
+                            .eq(ComActNeighborCircleFabulousDO::getUserId, commentReplyAppDTO.getUserId())
+                            .eq(ComActNeighborCircleFabulousDO::getType, ComActNeighborCircleFabulousDO.type.hf)
+                            .eq(ComActNeighborCircleFabulousDO::getIsEffective,
+                                ComActNeighborCircleFabulousDO.isEffective.yes));
+                    if (circleFabulousDO != null) {
+                        commentReplyAppVO.setHaveSign(1);
+                    } else {
+                        commentReplyAppVO.setHaveSign(2);
+                    }
+                }
+            }
+        }
+        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();
+    }
+
+    @Override
+    public R orderAndSolve(EditNeighborCircleAdminVO editNeighborCircleAdminVO) {
+        ComActNeighborCircleDO comActNeighborCircleDO=new ComActNeighborCircleDO();
+        BeanUtils.copyProperties(editNeighborCircleAdminVO,comActNeighborCircleDO);
+        if(comActNeighborCircleDO.getSolveStatus()!=null && comActNeighborCircleDO.getSolveStatus() == 3){
+            comActNeighborCircleDO.setSolveTime(new Date());
+        }
+        if(comActNeighborCircleDO.getOrderStatus()!=null){
+            comActNeighborCircleDO.setOrderTime(new Date());
+        }
+        if(StringUtils.isNotEmpty(comActNeighborCircleDO.getComment())){
+            comActNeighborCircleDO.setCommentTime(new Date());
+        }
+        int result=this.baseMapper.updateById(comActNeighborCircleDO);
+        if(result>0){
+            ComActNeighborCircleDO comActNeighborCircleDO1=this.baseMapper.selectById(comActNeighborCircleDO.getId());
+            if(comActNeighborCircleDO.getOrderStatus()!=null){
+                SysUser sysUser=sysUserDao.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId,comActNeighborCircleDO1.getReleaseId()));
+                if(sysUser!=null) {
+                    try {
+                        WxXCXTempSend util = new WxXCXTempSend();
+                        if (comActNeighborCircleDO1.getBelongType()==2){
+                            WxUtil.sendLongTimeTemplate(sysUser.getOpenid(),util.getAccessToken(),"你反馈的问题已被人认领",comActNeighborCircleDO1.getReleaseContent().length()>10?comActNeighborCircleDO1.getReleaseContent().substring(0,10)+"..":comActNeighborCircleDO1.getReleaseContent(),"packageB/pages/partySecond/problemDetails/index?id="+comActNeighborCircleDO.getId()+"&type=888");
+                        }
+                        if (comActNeighborCircleDO1.getBelongType()==3){
+                            WxUtil.sendLongTimeTemplate(sysUser.getOpenid(),util.getAccessToken(),"你反馈的需求已被人认领",comActNeighborCircleDO1.getReleaseContent().length()>10?comActNeighborCircleDO1.getReleaseContent().substring(0,10)+"..":comActNeighborCircleDO1.getReleaseContent(),"packageB/pages/partySecond/problemDetails/index?id="+comActNeighborCircleDO.getId()+"&type=777");
+                        }
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
+                }
+            }
+            if(comActNeighborCircleDO.getSolveStatus()==3){
+                SysUser sysUser=sysUserDao.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId,comActNeighborCircleDO1.getReleaseId()));
+                if(sysUser!=null) {
+                    try {
+                        WxXCXTempSend util = new WxXCXTempSend();
+                        if (comActNeighborCircleDO1.getBelongType()==2){
+                            WxUtil.sendLongTimeTemplate(sysUser.getOpenid(),util.getAccessToken(),"你反馈的问题已被人处理",comActNeighborCircleDO1.getReleaseContent().length()>10?comActNeighborCircleDO1.getReleaseContent().substring(0,10)+"..":comActNeighborCircleDO1.getReleaseContent(),"packageB/pages/partySecond/problemDetails/index?id="+comActNeighborCircleDO.getId()+"&type=888");
+                        }
+                        if (comActNeighborCircleDO1.getBelongType()==3){
+                            WxUtil.sendLongTimeTemplate(sysUser.getOpenid(),util.getAccessToken(),"你反馈的需求已被人处理",comActNeighborCircleDO1.getReleaseContent().length()>10?comActNeighborCircleDO1.getReleaseContent().substring(0,10)+"..":comActNeighborCircleDO1.getReleaseContent(),"packageB/pages/partySecond/problemDetails/index?id="+comActNeighborCircleDO.getId()+"&type=777");
+                        }
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
+                }
+            }
+            if(comActNeighborCircleDO.getSolveStatus()==4){
+                SysUser sysUser=sysUserDao.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId,comActNeighborCircleDO1.getSolveId()));
+                if(sysUser!=null) {
+                    try {
+                        WxXCXTempSend util = new WxXCXTempSend();
+                        if (comActNeighborCircleDO1.getBelongType()==2){
+                            WxUtil.sendLongTimeTemplate(sysUser.getOpenid(),util.getAccessToken(),"你有一条新的评价信息",comActNeighborCircleDO1.getReleaseContent().length()>10?comActNeighborCircleDO1.getReleaseContent().substring(0,10)+"..":comActNeighborCircleDO1.getReleaseContent(),"packageB/pages/partySecond/problemDetails/index?id="+comActNeighborCircleDO.getId()+"&type=888");
+                        }
+                        if (comActNeighborCircleDO1.getBelongType()==3){
+                            WxUtil.sendLongTimeTemplate(sysUser.getOpenid(),util.getAccessToken(),"你有一条新的评价信息",comActNeighborCircleDO1.getReleaseContent().length()>10?comActNeighborCircleDO1.getReleaseContent().substring(0,10)+"..":comActNeighborCircleDO1.getReleaseContent(),"packageB/pages/partySecond/problemDetails/index?id="+comActNeighborCircleDO.getId()+"&type=777");
+                        }
+                    } catch (Exception e) {
+                        e.printStackTrace();
+                    }
+                }
+            }
+            return R.ok(result);
+        }
+        return R.fail();
+    }
+
+    @Override
+    public R serviceStatic(ServiceStaticDTO serviceStaticDTO) {
+        ServiceStaticsVO serviceStaticsVO = new ServiceStaticsVO();
+        if (serviceStaticDTO.getCheckUnitId() != null && serviceStaticDTO.getCheckUnitId()> 0)
+        {
+            //单位服务统计
+            serviceStaticsVO =
+                this.baseMapper.selectStatsCheckUnit(serviceStaticDTO.getCheckUnitId(), serviceStaticDTO.getYear());
+
+            List<ServiceDetailStaticsVO> serviceDetailStaticsVOList=this.baseMapper.selectServiceDetailList(serviceStaticDTO.getCheckUnitId(),
+                    serviceStaticDTO.getYear(), serviceStaticDTO.getServiceType());
+
+
+           if(serviceStaticDTO.getServiceType()==null  || serviceStaticDTO.getServiceType()==1)
+           {
+               List<NewFightNeedProblemClaim> list=baseMapper.getNewServiceNum("",serviceStaticDTO.getCheckUnitId()+"");
+               if(list.size()>0)
+               {
+                   //设置次数
+                   int timeNum=serviceStaticsVO.getTimes()+list.size();
+                   serviceStaticsVO.setTimes(timeNum);
+                   //设置服务时间
+                   double hours=serviceStaticsVO.getHours();
+
+                   for (NewFightNeedProblemClaim item:list)
+                   {
+                       ServiceDetailStaticsVO newItem=new ServiceDetailStaticsVO();
+
+                       String Ltime=item.getServiceTime();
+                       if(!StringUtils.isEmpty(Ltime))
+                       {
+                           double time=(Double.valueOf(Ltime)/3600000);
+                           DecimalFormat df = new DecimalFormat("#.##");
+                           String formattedNumber = df.format(time);
+                           double result = Double.parseDouble(formattedNumber);
+
+                           hours=hours+result;
+
+                           newItem.setServiceTime(result);
+                           item.setServiceTime(result+"");
+                       }
+                       newItem.setIsNew("2");
+                       newItem.setServiceId(Long.valueOf(item.getTaskId()));
+                       newItem.setServiceType(1);
+                       newItem.setServiceAt(item.getCreationTime());
+                       serviceDetailStaticsVOList.add(newItem);
+                   }
+                   DecimalFormat df = new DecimalFormat("#.##");
+                   String formattedNumber = df.format(hours);
+                   double result = Double.parseDouble(formattedNumber);
+                   serviceStaticsVO.setHours(result);
+               }
+           }
+            serviceStaticsVO.setServiceDetailStaticsList(serviceDetailStaticsVOList);
+        }
+        else
+        {
+            //个人服务统计
+
+
+            ComPbMemberDO comPbMemberDO = comPbMemberDAO.selectOne(new QueryWrapper<ComPbMemberDO>().lambda()
+                    .eq(ComPbMemberDO::getPhone, serviceStaticDTO.getPhone()).last("limit 1"));
+            Long checkUnitId = null;
+            if (comPbMemberDO != null) {
+                checkUnitId = comPbMemberDO.getCheckUnitId();
+            }
+
+            serviceStaticsVO = this.baseMapper.selectStatsUser(serviceStaticDTO.getPhone(),checkUnitId+"", serviceStaticDTO.getYear());
+
+            List<ServiceDetailStaticsVO> serviceDetailStaticsVOList=this.baseMapper.selectServiceDetailListForPersonal(checkUnitId, serviceStaticDTO.getPhone(),
+                    serviceStaticDTO.getYear(), serviceStaticDTO.getServiceType());
+
+            if(serviceStaticDTO.getServiceType()==null  || serviceStaticDTO.getServiceType()==1)
+            {
+                //获取新需求服务列表
+                List<NewFightNeedProblemClaim> list=baseMapper.getNewServiceNum(serviceStaticDTO.getPhone(),"");
+
+                if(list.size()>0)
+                {
+                    //设置次数
+                    int timeNum=serviceStaticsVO.getTimes()+list.size();
+                    //设置服务时间
+                    double hours=serviceStaticsVO.getHours();
+                    serviceStaticsVO.setTimes(timeNum);
+                    for (NewFightNeedProblemClaim item:list)
+                    {
+                        ServiceDetailStaticsVO newItem=new ServiceDetailStaticsVO();
+
+                        String Ltime=item.getServiceTime();
+                        if(!StringUtils.isEmpty(Ltime))
+                        {
+                            double time=(Double.valueOf(Ltime)/3600000);
+                            DecimalFormat df = new DecimalFormat("#.##");
+                            String formattedNumber = df.format(time);
+                            double result = Double.parseDouble(formattedNumber);
+
+                            hours=hours+result;
+
+                            newItem.setServiceTime(result);
+                            item.setServiceTime(result+"");
+                        }
+                        newItem.setIsNew("2");
+                        newItem.setServiceId(Long.valueOf(item.getTaskId()));
+                        newItem.setServiceType(1);
+                        newItem.setServiceAt(item.getCreationTime());
+                        serviceDetailStaticsVOList.add(newItem);
+                    }
+
+                    DecimalFormat df = new DecimalFormat("#.##");
+                    String formattedNumber = df.format(hours);
+                    double result = Double.parseDouble(formattedNumber);
+                    serviceStaticsVO.setHours(result);
+                }
+            }
+
+            serviceStaticsVO.setServiceDetailStaticsList(serviceDetailStaticsVOList);
+        }
+        return R.ok(serviceStaticsVO);
+    }
+
+    @Override
+    public R institutionalUnitServiceAnalysis(Integer year, Integer type, Integer range, Long communityId,
+                                              Integer page,Integer size,String belongTo,Long unitId,String searchContent) {
+        ActivityAnalysisVO activityVO=new ActivityAnalysisVO();
+        String beginTime=null;
+        String endTime=null;
+        if (null != year){
+            //设置开始,截止时间
+            beginTime=year.toString().concat("-01-01");
+            endTime=year.toString().concat("-12-31");
+        }
+        //统计党员,单位总数
+        activityVO.setPartyMemberCount(comActDAO.selectUnitCount());
+        activityVO.setUnitCount(comActDAO.selectMemberCount());
+        //获取单位活动统计数据(邻里圈)
+        List<UnitActivityAnalysisVO> unitActivityAnalysisVOS = comActNeighborCircleDAO.institutionalUnitServiceAnalysis(beginTime, endTime, belongTo,communityId,unitId);
+        //获取单位活动统计数据(活动)
+        List<UnitActivityAnalysisVO> unitActivityAnalysisVOS1 = comActNeighborCircleDAO.institutionalUnitActivityAnalysis(beginTime, endTime, belongTo,communityId,unitId);
+        //获取新双挣双评清单任务
+        List<UnitActivityAnalysisVO> newTaskList=comActNeighborCircleDAO.getNewTaskList(beginTime, endTime, belongTo,communityId);
+
+        if (unitActivityAnalysisVOS.size()>0){
+            for (UnitActivityAnalysisVO unitActivityAnalysisVO : unitActivityAnalysisVOS){
+                if (ObjectUtils.isNotEmpty(unitActivityAnalysisVO)){
+                    if (ObjectUtils.isNotEmpty(unitActivityAnalysisVO.getUnitId())){
+                        //设置单位名称
+                        unitActivityAnalysisVO.setUnitName(comActDAO.selectUnitName(unitActivityAnalysisVO.getUnitId()));
+                        //统计活动表中的活动信息
+                    }
+                    if (ObjectUtils.isNotEmpty(unitActivityAnalysisVO.getCommunityId())){
+                        unitActivityAnalysisVO.setCommunityName(comActDAO.selectById(unitActivityAnalysisVO.getCommunityId()).getName());
+                    }
+                }
+            }
+        }
+
+        if (newTaskList.size()>0){
+            for (UnitActivityAnalysisVO item : newTaskList){
+                if (ObjectUtils.isNotEmpty(item)){
+                    if (ObjectUtils.isNotEmpty(item.getUnitId())){
+                        //设置单位名称
+                        item.setUnitName(comActDAO.selectUnitName(item.getUnitId()));
+                        //统计活动表中的活动信息
+                    }
+                    if (ObjectUtils.isNotEmpty(item.getCommunityId())){
+                        item.setCommunityName(comActDAO.selectById(item.getCommunityId()).getName());
+                    }
+
+                    Double time=(item.getServiceTime()/3600000);
+                    DecimalFormat df = new DecimalFormat("#.##");
+                    String formattedNumber = df.format(time);
+                    Double result = Double.parseDouble(formattedNumber);
+                    item.setServiceTime(result);
+                }
+            }
+        }
+
+        //活动表数据处理
+        if (unitActivityAnalysisVOS1.size()>0){
+            for (UnitActivityAnalysisVO vo : unitActivityAnalysisVOS1) {
+                if(ObjectUtils.isNotEmpty(vo)){
+                    if (ObjectUtils.isNotEmpty(vo.getUnitId())){
+                        //判断邻里圈统计中是否已有该单位数据
+                        Map<String, Integer> param = alreadyAnalysis(vo.getUnitId(), unitActivityAnalysisVOS);
+                        if (param.get("flag")==1){
+                            //已有数据,将时长,次数相加
+                            Double serviceTime = vo.getServiceTime();
+                            Integer serviceTimes = vo.getServiceTimes();
+                            unitActivityAnalysisVOS.get(param.get("index")).setServiceTime(unitActivityAnalysisVOS.get(param.get("index")).getServiceTime()+serviceTime);
+                            unitActivityAnalysisVOS.get(param.get("index")).setServiceTimes(unitActivityAnalysisVOS.get(param.get("index")).getServiceTimes()+serviceTimes);
+                        }else {
+                            //新数据,获取单位,社区名
+                            vo.setUnitName(comActDAO.selectUnitName(vo.getUnitId()));
+                            if (ObjectUtils.isNotEmpty(vo.getCommunityId()))
+                            {
+                                ComActDO actDO=comActDAO.selectById(vo.getCommunityId());
+                                if(actDO!=null && !StringUtils.isEmpty(actDO.getName()))
+                                {
+                                    vo.setCommunityName(actDO.getName());
+                                }
+                            }
+                            unitActivityAnalysisVOS.add(vo);
+                        }
+                    }
+                }
+            }
+        }
+
+        if (newTaskList.size()>0){
+            for (UnitActivityAnalysisVO item : newTaskList){
+                if (ObjectUtils.isNotEmpty(item)){
+
+                    if (ObjectUtils.isNotEmpty(item.getUnitId())){
+                        //判断邻里圈统计中是否已有该单位数据
+                        Map<String, Integer> param = alreadyAnalysis(item.getUnitId(), unitActivityAnalysisVOS);
+                        if (param.get("flag")==1){
+                            //已有数据,将时长,次数相加
+                            Double serviceTime = unitActivityAnalysisVOS.get(param.get("index")).getServiceTime()+item.getServiceTime();
+                            Integer serviceTimes = item.getServiceTimes();
+
+                            DecimalFormat df2 = new DecimalFormat("#.##");
+                            String formattedNumber2 = df2.format(serviceTime);
+                            Double result2 = Double.parseDouble(formattedNumber2);
+
+                            unitActivityAnalysisVOS.get(param.get("index")).setServiceTime(result2);
+                            unitActivityAnalysisVOS.get(param.get("index")).setServiceTimes(unitActivityAnalysisVOS.get(param.get("index")).getServiceTimes()+serviceTimes);
+                        }else {
+                            //新数据,获取单位,社区名
+                            item.setUnitName(comActDAO.selectUnitName(item.getUnitId()));
+                            if (ObjectUtils.isNotEmpty(item.getCommunityId()))
+                            {
+                                ComActDO actDO=comActDAO.selectById(item.getCommunityId());
+                                if(actDO!=null && !StringUtils.isEmpty(actDO.getName()))
+                                {
+                                    item.setCommunityName(actDO.getName());
+                                }
+                            }
+
+                            unitActivityAnalysisVOS.add(item);
+                        }
+                    }
+
+                }
+            }
+        }
+
+
+
+        //获取党员活动统计数据
+        List<PartyMemberAnalysisVO> partyMemberAnalysisVOS = comActNeighborCircleDAO.institutionalPartyMemberServiceAnalysis(beginTime, endTime, belongTo,communityId,unitId,searchContent);
+        List<PartyMemberAnalysisVO> partyMemberAnalysisVOS1 = comActNeighborCircleDAO.institutionalPartyMemberActAnalysis(beginTime, endTime, belongTo,communityId,unitId,searchContent);
+        //获取新双挣双评清单任务
+        List<PartyMemberAnalysisVO> newPartyMemberList = comActNeighborCircleDAO.getNewPartyMemberTaskList(beginTime, endTime, belongTo,communityId,unitId,searchContent);
+        if (partyMemberAnalysisVOS1.size()>0){
+            for (PartyMemberAnalysisVO vo : partyMemberAnalysisVOS1) {
+                if (ObjectUtils.isNotEmpty(vo)){
+                    if (ObjectUtils.isNotEmpty(vo.getMemberId())){
+                        Map<String, Integer> param = memberAlreadyAnalysis(vo.getMemberId(), partyMemberAnalysisVOS);
+                        if (param.get("flag")==1){
+                            Double serviceTime = vo.getServiceTime();
+                            Integer serviceTimes = vo.getServiceTimes();
+                            partyMemberAnalysisVOS.get(param.get("index")).setServiceTime(partyMemberAnalysisVOS.get(param.get("index")).getServiceTime()+serviceTime);
+                            partyMemberAnalysisVOS.get(param.get("index")).setServiceTimes(partyMemberAnalysisVOS.get(param.get("index")).getServiceTimes()+serviceTimes);
+                        }else{
+                            partyMemberAnalysisVOS.add(vo);
+                        }
+                    }
+                }
+            }
+        }
+
+        if (newPartyMemberList.size()>0){
+            for (PartyMemberAnalysisVO item : newPartyMemberList)
+            {
+                Double time=(item.getServiceTime()/3600000);
+                DecimalFormat df = new DecimalFormat("#.##");
+                String formattedNumber = df.format(time);
+                Double result = Double.parseDouble(formattedNumber);
+                item.setServiceTime(result);
+                if (ObjectUtils.isNotEmpty(item)){
+                    if (ObjectUtils.isNotEmpty(item.getMemberId())){
+                        Map<String, Integer> param = memberAlreadyAnalysis(item.getMemberId(), partyMemberAnalysisVOS);
+                        if (param.get("flag")==1){
+                            Double serviceTime = partyMemberAnalysisVOS.get(param.get("index")).getServiceTime()+item.getServiceTime();
+                            Integer serviceTimes = item.getServiceTimes();
+
+                            DecimalFormat df1 = new DecimalFormat("#.##");
+                            String formattedNumber1 = df1.format(serviceTime);
+                            Double result1 = Double.parseDouble(formattedNumber1);
+
+                            partyMemberAnalysisVOS.get(param.get("index")).setServiceTime(result1);
+                            partyMemberAnalysisVOS.get(param.get("index")).setServiceTimes(partyMemberAnalysisVOS.get(param.get("index")).getServiceTimes()+serviceTimes);
+                        }else{
+
+
+                            partyMemberAnalysisVOS.add(item);
+                        }
+                    }
+                }
+            }
+        }
+
+
+        //报道单位统计积分
+        List<NewFightNeedProblemInventory> allList = newFightNeedProblemInventoryMapper.selectAll();
+        Map<Long, String> awardMap = allList.stream().filter(Objects::nonNull).collect(Collectors.toMap(NewFightNeedProblemInventory::getId, NewFightNeedProblemInventory::getAward));
+        for (UnitActivityAnalysisVO unitVO : unitActivityAnalysisVOS) {
+
+            Long unitId1 = unitVO.getUnitId();
+            LambdaQueryWrapper<NewFightNeedProblemClaim> wrapper = new LambdaQueryWrapper<>();
+            wrapper.eq(NewFightNeedProblemClaim::getUnitId,String.valueOf(unitId1));
+            List<NewFightNeedProblemClaim> inventories = newFightNeedProblemClaimMapper.selectList(wrapper);
+            Map<String, Long> collectMap = inventories.stream()
+                    .collect(Collectors.groupingBy(NewFightNeedProblemClaim::getTaskId, Collectors.counting()));
+            long sum = 0l;
+            if(unitVO.getAwardSum()!=null)
+            {
+                sum=unitVO.getAwardSum();
+            }
+            //任务id集合
+            List<String> taskIds = inventories.stream().map(NewFightNeedProblemClaim::getTaskId).distinct().collect(Collectors.toList());
+            for (String taskId : taskIds) {
+//                NewFightNeedProblemInventory newFightNeedProblemInventory = newFightNeedProblemInventoryMapper.selectById(taskId);
+//                String award = newFightNeedProblemInventory.getAward();
+                String award = awardMap.get(Long.parseLong(taskId));
+                Long count = collectMap.get(taskId);
+                if(!StringUtils.isEmpty(award) )
+                {
+                    long i = Long.parseLong(award) * count;
+                    sum = sum + i;
+                }
+            }
+            unitVO.setAwardSum(sum);
+        }
+
+        //报道党员统计积分
+        for (PartyMemberAnalysisVO memberAnalysisVO : partyMemberAnalysisVOS)
+        {
+            if(memberAnalysisVO!=null)
+            {
+                Long userId = memberAnalysisVO.getMemberId();
+                LambdaQueryWrapper<NewFightNeedProblemClaim> wrapper = new LambdaQueryWrapper<>();
+                wrapper.eq(NewFightNeedProblemClaim::getUserId,userId);
+                List<NewFightNeedProblemClaim> newFightNeedProblemInventories = newFightNeedProblemClaimMapper.selectList(wrapper);
+                long sumAward = 0l;
+
+                if(memberAnalysisVO.getPartyCount()!=null)
+                {
+                    sumAward=memberAnalysisVO.getPartyCount();
+                }
+
+                for (NewFightNeedProblemClaim inventory : newFightNeedProblemInventories) {
+                    String taskId = inventory.getTaskId();
+                    NewFightNeedProblemInventory newFightNeedProblemInventory = newFightNeedProblemInventoryMapper.selectById(taskId);
+
+                    if(newFightNeedProblemInventory!=null && !StringUtils.isEmpty(newFightNeedProblemInventory.getAward()))
+                    {
+                        String award = newFightNeedProblemInventory.getAward();
+
+                        if(!StringUtils.isEmpty(award) )
+                        {
+                            sumAward = Long.parseLong(award) + sumAward;
+                        }
+                    }
+
+                }
+                memberAnalysisVO.setPartyCount(sumAward);
+            }
+        }
+
+        //统计总时长和总次数
+        Integer unitServiceCount=0;
+        Double unitServiceTotalTime=0.0;
+        Integer memberServiceCount=0;
+        Double memberServiceTotalTome=0.0;
+        long awardSumCount=0L;
+        long partySumCount=0L;
+        for (UnitActivityAnalysisVO vo : unitActivityAnalysisVOS) {
+            //避免空指针
+            if (ObjectUtils.isNotEmpty(vo)){
+                if (ObjectUtils.isNotEmpty(vo.getServiceTime())){
+                    unitServiceTotalTime+=vo.getServiceTime();
+                }
+                if (ObjectUtils.isNotEmpty(vo.getServiceTimes())){
+                    unitServiceCount+=vo.getServiceTimes();
+                }
+            }
+        }
+        for (PartyMemberAnalysisVO vo : partyMemberAnalysisVOS) {
+            //避免空指针
+            if (ObjectUtils.isNotEmpty(vo)){
+                if (ObjectUtils.isNotEmpty(vo.getServiceTime())){
+                    memberServiceTotalTome+=vo.getServiceTime();
+                }
+                if (ObjectUtils.isNotEmpty(vo.getServiceTimes())){
+                    memberServiceCount+=vo.getServiceTimes();
+                }
+            }
+        }
+        for (UnitActivityAnalysisVO vo : unitActivityAnalysisVOS) {
+            if(ObjectUtils.isNotEmpty(vo)){
+                if(ObjectUtils.isNotEmpty(vo.getAwardSum())){
+                    awardSumCount += vo.getAwardSum();
+                }
+            }
+        }
+        for (PartyMemberAnalysisVO memberAnalysisVO : partyMemberAnalysisVOS) {
+            if(ObjectUtils.isNotEmpty(memberAnalysisVO)){
+                if(ObjectUtils.isNotEmpty(memberAnalysisVO.getPartyCount())){
+                    partySumCount += memberAnalysisVO.getPartyCount();
+                }
+            }
+        }
+        activityVO.setAwardSumCount(awardSumCount);
+        activityVO.setPartySumCount(partySumCount);
+        activityVO.setUnitServiceTotalCount(unitServiceCount);
+        activityVO.setUnitServiceTotalTime(unitServiceTotalTime);
+        activityVO.setPartyMemberServiceTotalCount(memberServiceCount);
+        activityVO.setPartyMemberServiceTotalTime(memberServiceTotalTome);
+        //处理排序
+        if (null != type){
+            if (type.equals(1)){
+                //按时长排序
+                ListUtil.sortByProperty(unitActivityAnalysisVOS, "serviceTime");
+                ListUtil.sortByProperty(partyMemberAnalysisVOS, "serviceTime");
+
+                ListUtil.reverse(unitActivityAnalysisVOS);
+                ListUtil.reverse(partyMemberAnalysisVOS);
+
+            }else if (type.equals(2)){
+                //按次数排序
+                ListUtil.sortByProperty(unitActivityAnalysisVOS, "serviceTimes");
+                ListUtil.sortByProperty(partyMemberAnalysisVOS, "serviceTimes");
+
+                ListUtil.reverse(unitActivityAnalysisVOS);
+                ListUtil.reverse(partyMemberAnalysisVOS);
+            }else if(type.equals(3)){
+                //按积分排序
+                ListUtil.sortByProperty(unitActivityAnalysisVOS,"awardSum");
+                ListUtil.reverse(unitActivityAnalysisVOS);
+             //   ListUtil.sortByProperty(unitActivityAnalysisVOS,"");
+            }
+        }
+        else
+        {
+            //按时长排序
+            ListUtil.sortByProperty(unitActivityAnalysisVOS, "serviceTime");
+            ListUtil.sortByProperty(partyMemberAnalysisVOS, "serviceTime");
+
+            ListUtil.reverse(unitActivityAnalysisVOS);
+            ListUtil.reverse(partyMemberAnalysisVOS);
+        }
+        //处理分页
+        PageVO<List<UnitActivityAnalysisVO>> unitPage=new PageVO<>();
+        PageVO<List<PartyMemberAnalysisVO>> memberPage=new PageVO<>();
+        if (ObjectUtils.isNotEmpty(page) && ObjectUtils.isNotEmpty(size)){
+            //分页处理
+            unitPage.setRecordsCount(unitActivityAnalysisVOS.size());
+            unitPage.setPage(page);
+            unitPage.setPages(getPages(unitPage.getRecordsCount(),size ));
+            memberPage.setPage(page);
+            memberPage.setRecordsCount(partyMemberAnalysisVOS.size());
+            memberPage.setPages(getPages(memberPage.getRecordsCount(), size));
+            //处理分页的结果
+            unitPage.setRecords(subUnitList((ArrayList) unitActivityAnalysisVOS, page,size));
+            memberPage.setRecords(subUnitList((ArrayList)partyMemberAnalysisVOS,page ,size));
+
+        }else {
+            unitPage.setRecords(unitActivityAnalysisVOS);
+            memberPage.setRecords(partyMemberAnalysisVOS);
+        }
+        activityVO.setUnitList(unitPage);
+        activityVO.setPartyMemberList(memberPage);
+
+        //党员数据 聚合
+        Map<String, Double> map = new HashMap<>();
+        partyMemberAnalysisVOS.forEach(vo->{
+            String name = vo.getBelongTo();
+            Double time = vo.getServiceTime();
+            if (map.containsKey(name)) {
+                time += map.get(name);
+            }
+            map.put(name, time);
+        });
+        if(CollectionUtil.isNotEmpty(map)){
+            List<PbCheckUnitStatisticsVo> list = new ArrayList<>();
+            map.keySet().forEach(vo->{
+                PbCheckUnitStatisticsVo dto = new PbCheckUnitStatisticsVo();
+                dto.setBelongTo(vo);
+                dto.setServiceTime(map.get(vo));
+                list.add(dto);
+            });
+            activityVO.setGroupPartyCount(list);
+        }
+        return R.ok(activityVO);
+
+    }
+
+    @Override
+    public List<ExcelDO> export(Integer year, String belongTo, Long communityId) throws Exception {
+        List<ExcelDO> excelDOList = new ArrayList<>();
+        String beginTime=null;
+        String endTime=null;
+        if (null != year){
+            //设置开始,截止时间
+            beginTime=year.toString().concat("-01-01");
+            endTime=year.toString().concat("-12-31");
+        }
+        //获取单位活动统计数据(邻里圈)
+        List<UnitActivityAnalysisVO> unitActivityAnalysisVOS = comActNeighborCircleDAO.institutionalUnitServiceAnalysis(beginTime, endTime, belongTo,communityId,null);
+        //获取单位活动统计数据(活动)
+        List<UnitActivityAnalysisVO> unitActivityAnalysisVOS1 = comActNeighborCircleDAO.institutionalUnitActivityAnalysis(beginTime, endTime, belongTo,communityId,null);
+        if (!unitActivityAnalysisVOS.isEmpty()){
+            for (UnitActivityAnalysisVO unitActivityAnalysisVO : unitActivityAnalysisVOS){
+                if (ObjectUtils.isNotEmpty(unitActivityAnalysisVO)){
+                    if (ObjectUtils.isNotEmpty(unitActivityAnalysisVO.getUnitId())){
+                        //设置单位名称
+                        unitActivityAnalysisVO.setUnitName(comActDAO.selectUnitName(unitActivityAnalysisVO.getUnitId()));
+                        //统计活动表中的活动信息
+                    }
+                    if (ObjectUtils.isNotEmpty(unitActivityAnalysisVO.getCommunityId())){
+                        unitActivityAnalysisVO.setCommunityName(comActDAO.selectById(unitActivityAnalysisVO.getCommunityId()).getName());
+                    }
+                }
+            }
+        }
+        //活动表数据处理
+        if (!unitActivityAnalysisVOS1.isEmpty()){
+            for (UnitActivityAnalysisVO vo : unitActivityAnalysisVOS1) {
+                if(ObjectUtils.isNotEmpty(vo)){
+                    if (ObjectUtils.isNotEmpty(vo.getUnitId())){
+                        //判断邻里圈统计中是否已有该单位数据
+                        Map<String, Integer> param = alreadyAnalysis(vo.getUnitId(), unitActivityAnalysisVOS);
+                        if (param.get("flag")==1){
+                            //已有数据,将时长,次数相加
+                            Double serviceTime = vo.getServiceTime();
+                            Integer serviceTimes = vo.getServiceTimes();
+                            unitActivityAnalysisVOS.get(param.get("index")).setServiceTime(unitActivityAnalysisVOS.get(param.get("index")).getServiceTime()+serviceTime);
+                            unitActivityAnalysisVOS.get(param.get("index")).setServiceTimes(unitActivityAnalysisVOS.get(param.get("index")).getServiceTimes()+serviceTimes);
+                        }else {
+                            //新数据,获取单位,社区名
+                            vo.setUnitName(comActDAO.selectUnitName(vo.getUnitId()));
+                            if (ObjectUtils.isNotEmpty(vo.getCommunityId()))
+                            {
+                                ComActDO actDO=comActDAO.selectById(vo.getCommunityId());
+                                if(actDO!=null && !StringUtils.isEmpty(actDO.getName()))
+                                {
+                                    vo.setCommunityName(actDO.getName());
+                                }
+                            }
+                            unitActivityAnalysisVOS.add(vo);
+                        }
+                    }
+                }
+            }
+        }
+        List<NewFightNeedProblemInventory> allList = newFightNeedProblemInventoryMapper.selectAll();
+        Map<Long, String> awardMap = allList.stream().filter(Objects::nonNull).collect(Collectors.toMap(NewFightNeedProblemInventory::getId, NewFightNeedProblemInventory::getAward));
+        for (UnitActivityAnalysisVO unitVO : unitActivityAnalysisVOS) {
+
+            Long unitId1 = unitVO.getUnitId();
+            LambdaQueryWrapper<NewFightNeedProblemClaim> wrapper = new LambdaQueryWrapper<>();
+            wrapper.eq(NewFightNeedProblemClaim::getUnitId,String.valueOf(unitId1));
+            List<NewFightNeedProblemClaim> inventories = newFightNeedProblemClaimMapper.selectList(wrapper);
+            Map<String, Long> collectMap = inventories.stream()
+                    .collect(Collectors.groupingBy(NewFightNeedProblemClaim::getTaskId, Collectors.counting()));
+            long sum = 0L;
+            //任务id集合
+            List<String> taskIds = inventories.stream().map(NewFightNeedProblemClaim::getTaskId).distinct().collect(Collectors.toList());
+            for (String taskId : taskIds) {
+//                NewFightNeedProblemInventory newFightNeedProblemInventory = newFightNeedProblemInventoryMapper.selectById(taskId);
+//                String award = newFightNeedProblemInventory.getAward();
+                String award = awardMap.get(Long.parseLong(taskId));
+                Long count = collectMap.get(taskId);
+                long i = Long.parseLong(award) * count;
+                sum = sum + i;
+            }
+            unitVO.setAwardSum(sum);
+        }
+        for (UnitActivityAnalysisVO vo : unitActivityAnalysisVOS) {
+            ExcelDO excelDO = new ExcelDO();
+            excelDO.setBelongTo(vo.getBelongTo());
+            excelDO.setOrgName(vo.getOrgName());
+            excelDO.setUnitName(vo.getUnitName());
+            excelDO.setCommunityName(vo.getCommunityName());
+            excelDO.setServiceTime(vo.getServiceTime());
+            excelDO.setAwardSum(vo.getAwardSum());
+            excelDOList.add(excelDO);
+        }
+        return excelDOList;
+    }
+
+    @Override
+    public List<PartyExcelDO> partyExcel(Integer year, String belongTo, Long communityId,Long unitId) {
+        String beginTime=null;
+        String endTime=null;
+        if (null != year){
+            //设置开始,截止时间
+            beginTime=year.toString().concat("-01-01");
+            endTime=year.toString().concat("-12-31");
+        }
+        //获取党员活动统计数据
+        List<PartyMemberAnalysisVO> partyMemberAnalysisVOS = comActNeighborCircleDAO.institutionalPartyMemberServiceAnalysis(beginTime, endTime, belongTo,communityId,unitId,null);
+        List<PartyMemberAnalysisVO> partyMemberAnalysisVOS1 = comActNeighborCircleDAO.institutionalPartyMemberActAnalysis(beginTime, endTime, belongTo,communityId,unitId,null);
+        if (partyMemberAnalysisVOS1.size()>0){
+            for (PartyMemberAnalysisVO vo : partyMemberAnalysisVOS1) {
+                if (ObjectUtils.isNotEmpty(vo)){
+                    if (ObjectUtils.isNotEmpty(vo.getMemberId())){
+                        Map<String, Integer> param = memberAlreadyAnalysis(vo.getMemberId(), partyMemberAnalysisVOS);
+                        if (param.get("flag")==1){
+                            Double serviceTime = vo.getServiceTime();
+                            Integer serviceTimes = vo.getServiceTimes();
+                            partyMemberAnalysisVOS.get(param.get("index")).setServiceTime(partyMemberAnalysisVOS.get(param.get("index")).getServiceTime()+serviceTime);
+                            partyMemberAnalysisVOS.get(param.get("index")).setServiceTimes(partyMemberAnalysisVOS.get(param.get("index")).getServiceTimes()+serviceTimes);
+                        }else{
+                            partyMemberAnalysisVOS.add(vo);
+                        }
+                    }
+                }
+            }
+        }
+
+        //报道党员统计积分
+        for (PartyMemberAnalysisVO memberAnalysisVO : partyMemberAnalysisVOS) {
+            Long userId = memberAnalysisVO.getMemberId();
+            LambdaQueryWrapper<NewFightNeedProblemClaim> wrapper = new LambdaQueryWrapper<>();
+            wrapper.eq(NewFightNeedProblemClaim::getUserId,userId);
+            List<NewFightNeedProblemClaim> newFightNeedProblemInventories = newFightNeedProblemClaimMapper.selectList(wrapper);
+            long sumAward = 0L;
+            for (NewFightNeedProblemClaim inventory : newFightNeedProblemInventories) {
+                String taskId = inventory.getTaskId();
+                NewFightNeedProblemInventory newFightNeedProblemInventory = newFightNeedProblemInventoryMapper.selectById(taskId);
+                String award = newFightNeedProblemInventory.getAward();
+                sumAward = Long.parseLong(award) + sumAward;
+            }
+            memberAnalysisVO.setPartyCount(sumAward);
+        }
+        List<PartyExcelDO> list = new ArrayList<>();
+        for (PartyMemberAnalysisVO memberAnalysisVO : partyMemberAnalysisVOS) {
+            PartyExcelDO partyExcelDO = new PartyExcelDO();
+            partyExcelDO.setBelongTo(memberAnalysisVO.getBelongTo());
+            partyExcelDO.setOrgName(memberAnalysisVO.getOrgName());
+            partyExcelDO.setUnitName(memberAnalysisVO.getUnitName());
+            partyExcelDO.setMemberName(memberAnalysisVO.getMemberName());
+            partyExcelDO.setBelongCommunity(memberAnalysisVO.getBelongCommunity());
+            partyExcelDO.setServiceTimes(memberAnalysisVO.getServiceTimes());
+            partyExcelDO.setServiceTime(memberAnalysisVO.getServiceTime());
+            partyExcelDO.setPartyCount(memberAnalysisVO.getPartyCount());
+            list.add(partyExcelDO);
+        }
+        return list;
+    }
+
+
+    @Override
+    public R serviceStaticBackstage(ServiceStaticBackstageDTO serviceStaticDTO) {
+        return null;
+    }
+
+    @Override
+    public R selectCount(Integer type, String phone,Long communityId) {
+        return R.ok(this.baseMapper.selectCount(type,phone,communityId));
+    }
+
+    /**
+     * 分页查询可关联清单列表
+     * @param neighborCircleAppDTO
+     * @return
+     */
+    @Override
+    public R pageRelationList(ComActNeighborCircleAppDTO neighborCircleAppDTO) {
+        Page userPage = new Page(neighborCircleAppDTO.getPageNum(), neighborCircleAppDTO.getPageSize());
+        IPage<ComActNeighborCircleAppVO> doPager = this.baseMapper.pageRelationList(userPage, neighborCircleAppDTO);
+        if (!doPager.getRecords().isEmpty()) {
+            for (ComActNeighborCircleAppVO circleAppVO : doPager.getRecords()) {
+                if (neighborCircleAppDTO.getUserId() != null) {
+                    // 查询点赞信息
+                    ComActNeighborCircleFabulousDO circleFabulousDO =
+                            comActNeighborCircleFabulousDAO.selectOne(new QueryWrapper<ComActNeighborCircleFabulousDO>()
+                                    .lambda().eq(ComActNeighborCircleFabulousDO::getParentId, circleAppVO.getId())
+                                    .eq(ComActNeighborCircleFabulousDO::getUserId, neighborCircleAppDTO.getUserId())
+                                    .eq(ComActNeighborCircleFabulousDO::getType, ComActNeighborCircleFabulousDO.type.llq)
+                                    .eq(ComActNeighborCircleFabulousDO::getIsEffective,
+                                            ComActNeighborCircleFabulousDO.isEffective.yes));
+                    if (circleFabulousDO != null) {
+                        circleAppVO.setHaveSign(1);
+                    } else {
+                        circleAppVO.setHaveSign(2);
+                    }
+                }
+                if (circleAppVO.getType() != null && circleAppVO.getType().equals(ComActNeighborCircleDO.type.admin)) {
+                    ComActDO actDO = comActDAO.selectById(circleAppVO.getCommunityId());
+                    if (actDO != null) {
+                        circleAppVO.setName(actDO.getName());
+                    }
+                }
+            }
+        }
+        return R.ok(doPager);
+    }
+
+    /**
+     * 判断活动统计列表中是否已有该单位的数据
+     * */
+    public Map<String,Integer> alreadyAnalysis(Long unitId,List<UnitActivityAnalysisVO> list){
+        Map<String,Integer> map=new HashMap<>();
+        if (list.size()>0){
+            for (int i=0;i<list.size();i++) {
+                UnitActivityAnalysisVO vo = list.get(i);
+                if (ObjectUtils.isNotEmpty(vo)){
+                    if (ObjectUtils.isNotEmpty(vo.getUnitId())){
+                        if (unitId.equals(vo.getUnitId())){
+                            map.put("index",i );
+                            map.put("flag",1 );
+                            return map;
+                        }
+                    }
+                }
+            }
+        }
+        map.put("flag",0 );
+        return map;
+    }
+
+    /**
+     * 计算总页数
+     * */
+    public Integer getPages(Integer record,Integer size){
+        if (null != record && null != size){
+            int pages = PageUtil.totalPage(record, size);
+            return pages;
+        }
+        return 0;
+    }
+
+    /**
+     * 分页截取
+     * */
+    public List<Object> subUnitList(List<Object> list, int page, int size){
+        try {
+            //计算endIndex是否超出List大小
+            final Boolean flag=((page-1)*size+size) > list.size();
+            if (1 == page || 0 == page){
+                //第一页
+                return list.subList(0,size);
+            }else if (flag){
+                return ListUtil.sub(list, (page-1)*size-1, list.size()-1);
+            }
+            else {
+                return list.subList((page-1)*size, (page-1)*size+size);
+            }
+        }catch (Exception e){
+            //返回原集合
+            return list;
+        }
+    }
+
+    /**
+     * 判断党员的统计是是否已存在
+     * */
+    public Map<String,Integer> memberAlreadyAnalysis(Long memberId,List<PartyMemberAnalysisVO> list){
+        Map<String,Integer> map=new HashMap<>();
+        if (memberId != null && list.size() > 0){
+            for (int i=0;i<list.size();i++) {
+                PartyMemberAnalysisVO vo = list.get(i);
+                if (ObjectUtils.isNotEmpty(vo)){
+                    if (ObjectUtils.isNotEmpty(vo.getMemberId())){
+                        if (memberId.equals(vo.getMemberId())){
+                            map.put("index",i );
+                            map.put("flag",1 );
+                            return map;
+                        }
+                    }
+                }
+            }
+        }
+        map.put("flag",0 );
+        return map;
+    }
+
+
+
+
+
+
+
+
+}
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
new file mode 100644
index 0000000..7d68d36
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleTopicServiceImpl.java
@@ -0,0 +1,157 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.Date;
+
+import com.panzhihua.service_community.dao.ComActNeighborCircleDAO;
+import com.panzhihua.service_community.dao.ComActNeighborCircleTopicNewMapper;
+import com.panzhihua.service_community.model.dos.ComActNeighborCircleDO;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.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.vos.R;
+import com.panzhihua.service_community.dao.ComActNeighborCircleTopicMapper;
+import com.panzhihua.service_community.model.dos.ComActNeighborCircleTopicDO;
+import com.panzhihua.service_community.service.ComActNeighborCircleTopicService;
+
+import lombok.extern.slf4j.Slf4j;
+
+import javax.annotation.Resource;
+
+/**
+ * @auther lyq
+ * @create 2021-07-06 15:04:37
+ * @describe 邻里圈话题表服务实现类
+ */
+@Slf4j
+@Service
+public class ComActNeighborCircleTopicServiceImpl
+    extends ServiceImpl<ComActNeighborCircleTopicMapper, ComActNeighborCircleTopicDO>
+    implements ComActNeighborCircleTopicService {
+
+    @Resource
+    private ComActNeighborCircleDAO comActNeighborCircleDAO;
+    @Autowired
+    private ComActNeighborCircleTopicNewMapper comActNeighborCircleTopicNewMapper;
+    /**
+     * 分页查询邻里圈话题列表
+     *
+     * @param circleTopicAdminDTO
+     *            请求参数
+     * @return 邻里圈话题列表
+     */
+    @Override
+    public R pageNeighborTopicByAdmin(ComActNeighborCircleTopicAdminDTO circleTopicAdminDTO) {
+        return R.ok(this.baseMapper.pageNeighborTopicByAdmin(
+            new Page(circleTopicAdminDTO.getPageNum(), circleTopicAdminDTO.getPageSize()), circleTopicAdminDTO));
+    }
+
+    /**
+     * 添加邻里圈话题
+     *
+     * @param addCircleTopicAdminDTO
+     *            请求参数
+     * @return 添加结果
+     */
+    @Override
+    public R addNeighborTopicByAdmin(AddNeighborCircleTopicAdminDTO addCircleTopicAdminDTO) {
+        ComActNeighborCircleTopicDO circleTopicDO =
+            this.baseMapper.selectOne(new QueryWrapper<ComActNeighborCircleTopicDO>().lambda()
+                .eq(ComActNeighborCircleTopicDO::getName, addCircleTopicAdminDTO.getName())
+                );
+        if (circleTopicDO != null) {
+            return R.fail("该话题已存在");
+        }
+        circleTopicDO = new ComActNeighborCircleTopicDO();
+        BeanUtils.copyProperties(addCircleTopicAdminDTO, circleTopicDO);
+        circleTopicDO.setCreateAt(new Date());
+        circleTopicDO.setCreateBy(addCircleTopicAdminDTO.getUserId());
+
+        if (this.baseMapper.insert(circleTopicDO) > 0) {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    /**
+     * 编辑邻里圈话题
+     *
+     * @param addCircleTopicAdminDTO
+     *            请求参数
+     * @return 编辑结果
+     */
+    @Override
+    public R editNeighborTopicByAdmin(AddNeighborCircleTopicAdminDTO addCircleTopicAdminDTO) {
+
+        ComActNeighborCircleTopicDO circleTopicDO = this.baseMapper.selectById(addCircleTopicAdminDTO.getId());
+        if (circleTopicDO == null) {
+            return R.fail("未找到邻里圈话题记录");
+        }
+        BeanUtils.copyProperties(addCircleTopicAdminDTO, circleTopicDO);
+        if (this.baseMapper.updateById(circleTopicDO) > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败");
+    }
+
+    /**
+     * 小程序查询邻里圈话题列表
+     *
+     *            社区id
+     * @return 邻里圈话题列表
+     */
+    @Override
+    public R getNeighborTopicByApp(String name){
+        return R.ok(this.baseMapper.getNeighborTopicByApp(name));
+    }
+
+    @Override
+    public R getNeighborTopicByAppNew(String name) {
+        return R.ok(comActNeighborCircleTopicNewMapper.getNeighborTopicByAppNew(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())
+                .eq(ComActNeighborCircleTopicDO::getBelongType,circleTopicAppDTO.getBelongType()));
+        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);
+            circleTopicDO.setBelongType(circleTopicAppDTO.getBelongType());
+            this.baseMapper.insert(circleTopicDO);
+        }
+        return R.ok(circleTopicDO);
+    }
+
+    @Override
+    public R delete(Long id) {
+        ComActNeighborCircleTopicDO comActNeighborCircleTopicDO=this.baseMapper.selectById(id);
+        if(comActNeighborCircleTopicDO==null){
+            return R.fail("参数错误");
+        }
+        Integer count=this.comActNeighborCircleDAO.selectCount(new QueryWrapper<ComActNeighborCircleDO>().lambda().eq(ComActNeighborCircleDO::getTopicId,id));
+        if(count>0){
+            return R.fail("请删除相应问题");
+        }
+        return R.ok(this.baseMapper.deleteById(id));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleTopicWestServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleTopicWestServiceImpl.java
new file mode 100644
index 0000000..bd1ca26
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleTopicWestServiceImpl.java
@@ -0,0 +1,144 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.Date;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.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.vos.R;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.dao.ComActNeighborCircleTopicWestMapper;
+import com.panzhihua.service_community.model.dos.ComActNeighborCircleTopicWestDO;
+import com.panzhihua.service_community.service.ComActNeighborCircleTopicWestService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-07-06 15:04:37
+ * @describe 邻里圈话题表服务实现类
+ */
+@Slf4j
+@Service
+public class ComActNeighborCircleTopicWestServiceImpl
+    extends ServiceImpl<ComActNeighborCircleTopicWestMapper, ComActNeighborCircleTopicWestDO>
+    implements ComActNeighborCircleTopicWestService {
+
+    /**
+     * 分页查询邻里圈话题列表
+     *
+     * @param circleTopicAdminDTO
+     *            请求参数
+     * @return 邻里圈话题列表
+     */
+    @Override
+    public R pageNeighborTopicByAdmin(ComActNeighborCircleTopicAdminDTO circleTopicAdminDTO) {
+        return R.ok(this.baseMapper.pageNeighborTopicByAdmin(
+            new Page(circleTopicAdminDTO.getPageNum(), circleTopicAdminDTO.getPageSize()), circleTopicAdminDTO));
+    }
+
+    /**
+     * 添加邻里圈话题
+     *
+     * @param addCircleTopicAdminDTO
+     *            请求参数
+     * @return 添加结果
+     */
+    @Override
+    public R addNeighborTopicByAdmin(AddNeighborCircleTopicAdminDTO addCircleTopicAdminDTO) {
+        ComActNeighborCircleTopicWestDO circleTopicDO =
+            this.baseMapper.selectOne(new QueryWrapper<ComActNeighborCircleTopicWestDO>().lambda()
+                .eq(ComActNeighborCircleTopicWestDO::getName, addCircleTopicAdminDTO.getName())
+                .eq(ComActNeighborCircleTopicWestDO::getBelongType, 1)
+                .eq(ComActNeighborCircleTopicWestDO::getCommunityId, addCircleTopicAdminDTO.getCommunityId()));
+        if (circleTopicDO != null) {
+            return R.fail("该话题已存在");
+        }
+        circleTopicDO = new ComActNeighborCircleTopicWestDO();
+        BeanUtils.copyProperties(addCircleTopicAdminDTO, circleTopicDO);
+        circleTopicDO.setCreateAt(new Date());
+        circleTopicDO.setCreateBy(addCircleTopicAdminDTO.getUserId());
+
+        if (this.baseMapper.insert(circleTopicDO) > 0) {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    /**
+     * 编辑邻里圈话题
+     *
+     * @param addCircleTopicAdminDTO
+     *            请求参数
+     * @return 编辑结果
+     */
+    @Override
+    public R editNeighborTopicByAdmin(AddNeighborCircleTopicAdminDTO addCircleTopicAdminDTO) {
+
+        ComActNeighborCircleTopicWestDO circleTopicDO = this.baseMapper.selectById(addCircleTopicAdminDTO.getId());
+        if (circleTopicDO == null) {
+            return R.fail("未找到邻里圈话题记录");
+        }
+
+        if (StringUtils.isNotEmpty(addCircleTopicAdminDTO.getName())) {
+            ComActNeighborCircleTopicWestDO oldCircleTopicDO =
+                this.baseMapper.selectOne(new QueryWrapper<ComActNeighborCircleTopicWestDO>().lambda()
+                    .eq(ComActNeighborCircleTopicWestDO::getName, addCircleTopicAdminDTO.getName())
+                    .eq(ComActNeighborCircleTopicWestDO::getCommunityId, addCircleTopicAdminDTO.getCommunityId())
+                    .eq(ComActNeighborCircleTopicWestDO::getBelongType, 1)
+                    .ne(ComActNeighborCircleTopicWestDO::getId, circleTopicDO.getId()));
+            if (oldCircleTopicDO != null && !oldCircleTopicDO.getId().equals(addCircleTopicAdminDTO.getId())) {
+                return R.fail("该话题已存在");
+            }
+        }
+
+        BeanUtils.copyProperties(addCircleTopicAdminDTO, circleTopicDO);
+        if (this.baseMapper.updateById(circleTopicDO) > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败");
+    }
+
+    /**
+     * 小程序查询邻里圈话题列表
+     *
+     * @param communityId
+     *            社区id
+     * @return 邻里圈话题列表
+     */
+    @Override
+    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){
+        ComActNeighborCircleTopicWestDO circleTopicDO = this.baseMapper.selectOne(new QueryWrapper<ComActNeighborCircleTopicWestDO>()
+                .lambda().eq(ComActNeighborCircleTopicWestDO::getCommunityId,circleTopicAppDTO.getCommunityId())
+                .eq(ComActNeighborCircleTopicWestDO::getBelongType, 1)
+                .eq(ComActNeighborCircleTopicWestDO::getName,circleTopicAppDTO.getName()));
+        if(circleTopicDO == null){
+            circleTopicDO = new ComActNeighborCircleTopicWestDO();
+            circleTopicDO.setCommunityId(circleTopicAppDTO.getCommunityId());
+            circleTopicDO.setName(circleTopicAppDTO.getName());
+            circleTopicDO.setCreateBy(circleTopicAppDTO.getUserId());
+            circleTopicDO.setCreateAt(new Date());
+            circleTopicDO.setCount(0);
+            circleTopicDO.setHotNum(0L);
+            circleTopicDO.setStatus(ComActNeighborCircleTopicWestDO.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/ComActNeighborCircleWestServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleWestServiceImpl.java
new file mode 100644
index 0000000..682895d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActNeighborCircleWestServiceImpl.java
@@ -0,0 +1,930 @@
+package com.panzhihua.service_community.service.impl;
+
+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.constants.NeighborCircleConstants;
+import com.panzhihua.common.model.dtos.neighbor.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.neighbor.*;
+import com.panzhihua.common.model.vos.user.AdministratorsUserVO;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.dao.*;
+import com.panzhihua.service_community.model.dos.*;
+import com.panzhihua.service_community.service.ComActNeighborCircleBrowseWestService;
+import com.panzhihua.service_community.service.ComActNeighborCircleTopicWestService;
+import com.panzhihua.service_community.service.ComActNeighborCircleWestService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 09:20:49
+ * @describe 邻里圈表服务实现类
+ */
+@Slf4j
+@Service
+public class ComActNeighborCircleWestServiceImpl extends ServiceImpl<ComActNeighborCircleWestDAO, ComActNeighborCircleWestDO>
+    implements ComActNeighborCircleWestService {
+
+    @Resource
+    ComActNeighborCircleFabulousWestDAO neighborCircleFabulousDAO;
+    @Resource
+    ComActNeighborCircleBrowseWestDAO neighborCircleBrowseDAO;
+    @Resource
+    ComActNeighborCircleCommentWestDAO neighborCircleCommentDAO;
+    @Resource
+    ComActNeighborCircleCommentReplyWestDAO neighborCircleCommentReplyDAO;
+    @Resource
+    private ComActNeighborCircleBrowseWestService comActNeighborCircleBrowseWestService;
+    @Resource
+    private ComActNeighborCircleCommentWestDAO comActNeighborCircleCommentWestDAO;
+    @Resource
+    private ComActNeighborCircleCommentReplyWestDAO comActNeighborCircleCommentReplyWestDAO;
+    @Resource
+    private ComActNeighborCircleFabulousWestDAO comActNeighborCircleFabulousWestDAO;
+    @Resource
+    private ComActNeighborCircleBrowseWestDAO comActNeighborCircleBrowseWestDAO;
+    @Resource
+    private ComActDAO comActDAO;
+    @Resource
+    private ComActNeighborCircleTopicWestMapper comActNeighborCircleTopicWestMapper;
+    @Resource
+    private ComActNeighborCircleTopicWestService comActNeighborCircleTopicWestService;
+
+    /**
+     * 分页查询邻里圈列表
+     *
+     * @param neighborCircleAppDTO
+     *            请求参数
+     * @return 邻里圈列表
+     */
+    @Override
+    public R pageNeighborByApp(ComActNeighborCircleAppDTO neighborCircleAppDTO) {
+        Page userPage = new Page(neighborCircleAppDTO.getPageNum(), neighborCircleAppDTO.getPageSize());
+        IPage<ComActNeighborCircleAppVO> doPager = this.baseMapper.pageNeighborByApp(userPage, neighborCircleAppDTO);
+        if (!doPager.getRecords().isEmpty()) {
+            for (ComActNeighborCircleAppVO circleAppVO : doPager.getRecords()) {
+                if (neighborCircleAppDTO.getUserId() != null) {
+                    // 查询点赞信息
+                    ComActNeighborCircleFabulousWestDO circleFabulousDO =
+                        comActNeighborCircleFabulousWestDAO.selectOne(new QueryWrapper<ComActNeighborCircleFabulousWestDO>()
+                            .lambda().eq(ComActNeighborCircleFabulousWestDO::getParentId, circleAppVO.getId())
+                            .eq(ComActNeighborCircleFabulousWestDO::getUserId, neighborCircleAppDTO.getUserId())
+                            .eq(ComActNeighborCircleFabulousWestDO::getType, ComActNeighborCircleFabulousWestDO.type.llq)
+                            .eq(ComActNeighborCircleFabulousWestDO::getIsEffective,
+                                ComActNeighborCircleFabulousWestDO.isEffective.yes));
+                    if (circleFabulousDO != null) {
+                        circleAppVO.setHaveSign(1);
+                    } else {
+                        circleAppVO.setHaveSign(2);
+                    }
+                }
+
+                if (circleAppVO.getType() != null && circleAppVO.getType().equals(ComActNeighborCircleWestDO.type.admin)) {
+                    ComActDO actDO = comActDAO.selectById(circleAppVO.getCommunityId());
+                    if (actDO != null) {
+                        circleAppVO.setName(actDO.getName());
+                    }
+                }
+
+            }
+        }
+        return R.ok(doPager);
+    }
+
+    /**
+     * 用户发布邻里圈审核
+     *
+     * @param addNeighborCircleAppDTO
+     *            邻里圈请求参数
+     * @return 发布结果
+     */
+    @Override
+    public R addNeighborByApp(AddComActNeighborCircleAppDTO addNeighborCircleAppDTO) {
+        // 新增邻里圈审核
+        ComActNeighborCircleWestDO neighborCircleDO = new ComActNeighborCircleWestDO();
+        BeanUtils.copyProperties(addNeighborCircleAppDTO, neighborCircleDO);
+        if (addNeighborCircleAppDTO.getUserId() != null) {
+            neighborCircleDO.setReleaseId(addNeighborCircleAppDTO.getUserId());
+        }
+        if (addNeighborCircleAppDTO.getCommunityId() != null) {
+            neighborCircleDO.setCommunityId(addNeighborCircleAppDTO.getCommunityId());
+        }
+        if (StringUtils.isNotEmpty(addNeighborCircleAppDTO.getPhone())) {
+            neighborCircleDO.setReleasePhone(addNeighborCircleAppDTO.getPhone());
+        }
+        //判断用户的话题是否是新增的
+        if(StringUtils.isNotEmpty(addNeighborCircleAppDTO.getTopicName())){
+            //新增邻里圈话题
+            ComActNeighborCircleTopicWestDO circleTopicDO = comActNeighborCircleTopicWestMapper.selectOne(new QueryWrapper<ComActNeighborCircleTopicWestDO>()
+                    .lambda().eq(ComActNeighborCircleTopicWestDO::getCommunityId,neighborCircleDO.getCommunityId())
+                    .eq(ComActNeighborCircleTopicWestDO::getName,addNeighborCircleAppDTO.getTopicName()));
+            if(circleTopicDO == null){
+                circleTopicDO = new ComActNeighborCircleTopicWestDO();
+                circleTopicDO.setCommunityId(neighborCircleDO.getCommunityId());
+                circleTopicDO.setName(addNeighborCircleAppDTO.getTopicName());
+                circleTopicDO.setCreateBy(neighborCircleDO.getReleaseId());
+                circleTopicDO.setCreateAt(new Date());
+                circleTopicDO.setCount(0);
+                circleTopicDO.setHotNum(0L);
+                circleTopicDO.setStatus(ComActNeighborCircleTopicWestDO.status.yes);
+                comActNeighborCircleTopicWestMapper.insert(circleTopicDO);
+            }
+            neighborCircleDO.setTopicId(circleTopicDO.getId());
+        }
+
+        //判断当前邻里圈是否需要审核
+        if(addNeighborCircleAppDTO.getIsExamine().equals(AddComActNeighborCircleAppDTO.isExamine.no)){
+            //当邻里圈不需要审核才进入自动审核
+            //判断邻里圈自动审核结果
+            if(addNeighborCircleAppDTO.getWxExamineResult().equals(AddComActNeighborCircleAppDTO.isExamine.yes)){
+                neighborCircleDO.setStatus(ComActNeighborCircleWestDO.status.xs);
+                if(neighborCircleDO.getTopicId() != null){
+                    //给邻里圈话题添加邻里圈数量
+                    comActNeighborCircleTopicWestMapper.addCount(neighborCircleDO.getTopicId());
+                }
+            }else{
+                neighborCircleDO.setStatus(ComActNeighborCircleWestDO.status.bh);
+                neighborCircleDO.setRefuseReason("内容违规");
+            }
+        }
+
+
+        if(this.baseMapper.insert(neighborCircleDO) > 0){
+            return R.ok();
+        } else {
+            return R.fail("发布失败");
+        }
+    }
+
+    /**
+     * 查看邻里圈详情
+     *
+     * @param neighborCircleAppDTO
+     *            请求参数
+     * @return 邻里圈详情
+     */
+    @Override
+    public R neighborDetailByApp(ComActNeighborCircleDetailAppDTO neighborCircleAppDTO) {
+
+        // 查询邻里圈详情
+        ComActNeighborCircleDetailAppVO circleDetailAppVO =
+            this.baseMapper.neighborDetailByApp(neighborCircleAppDTO.getCircleId());
+        if (circleDetailAppVO == null) {
+            return R.fail("未找到邻里圈信息");
+        }
+
+        if (circleDetailAppVO.getType() != null
+            && circleDetailAppVO.getType().equals(ComActNeighborCircleWestDO.type.admin)) {
+            ComActDO actDO = comActDAO.selectById(circleDetailAppVO.getCommunityId());
+            if (actDO != null) {
+                circleDetailAppVO.setName(actDO.getName());
+            }
+        }
+
+        if (neighborCircleAppDTO.getUserId() != null) {
+            // 查询邻里圈点赞信息
+            ComActNeighborCircleFabulousWestDO circleFabulousDO =
+                comActNeighborCircleFabulousWestDAO.selectOne(new QueryWrapper<ComActNeighborCircleFabulousWestDO>().lambda()
+                    .eq(ComActNeighborCircleFabulousWestDO::getParentId, circleDetailAppVO.getId())
+                    .eq(ComActNeighborCircleFabulousWestDO::getUserId, neighborCircleAppDTO.getUserId())
+                    .eq(ComActNeighborCircleFabulousWestDO::getType, ComActNeighborCircleFabulousWestDO.type.llq)
+                    .eq(ComActNeighborCircleFabulousWestDO::getIsEffective,
+                        ComActNeighborCircleFabulousWestDO.isEffective.yes));
+            if (circleFabulousDO != null) {
+                circleDetailAppVO.setHaveSign(1);
+            } else {
+                circleDetailAppVO.setHaveSign(2);
+            }
+        }
+
+        // 查询邻里圈下评论列表
+        IPage<ComActNeighborCircleCommentAppVO> circleCommentAppPage =
+            comActNeighborCircleCommentWestDAO.pageNeighborCommentByApp(
+                new Page(neighborCircleAppDTO.getPageNum(), neighborCircleAppDTO.getPageSize()), neighborCircleAppDTO);
+
+        if (!circleCommentAppPage.getRecords().isEmpty()) {
+            for (ComActNeighborCircleCommentAppVO circleCommentVo : circleCommentAppPage.getRecords()) {
+
+                if (neighborCircleAppDTO.getUserId() != null) {
+                    // 查询点赞信息
+                    ComActNeighborCircleFabulousWestDO circleCommentFabulousDO =
+                        comActNeighborCircleFabulousWestDAO.selectOne(new QueryWrapper<ComActNeighborCircleFabulousWestDO>()
+                            .lambda().eq(ComActNeighborCircleFabulousWestDO::getParentId, circleCommentVo.getId())
+                            .eq(ComActNeighborCircleFabulousWestDO::getUserId, neighborCircleAppDTO.getUserId())
+                            .eq(ComActNeighborCircleFabulousWestDO::getType, ComActNeighborCircleFabulousWestDO.type.pl)
+                            .eq(ComActNeighborCircleFabulousWestDO::getIsEffective,
+                                ComActNeighborCircleFabulousWestDO.isEffective.yes));
+                    if (circleCommentFabulousDO != null) {
+                        circleCommentVo.setHaveSign(1);
+                    } else {
+                        circleCommentVo.setHaveSign(2);
+                    }
+                }
+
+                // 查询评论下评论回复
+                List<ComActNeighborCircleCommentReplyAppVO> commentReplyAppVOS =
+                    comActNeighborCircleCommentReplyWestDAO.getCircleCommentReplyList(circleCommentVo.getId());
+                if (!commentReplyAppVOS.isEmpty()) {
+                    List<ComActNeighborCircleCommentReplyAppVO> newCommentReplyAppVOS = new ArrayList<>();
+                    if (neighborCircleAppDTO.getUserId() != null) {
+                        int i = 0;
+                        for (ComActNeighborCircleCommentReplyAppVO commentReplyVO : commentReplyAppVOS) {
+                            if (i >= 2) {
+                                break;
+                            }
+                            // 查询点赞信息
+                            ComActNeighborCircleFabulousWestDO circleReplyFabulousDO = comActNeighborCircleFabulousWestDAO
+                                .selectOne(new QueryWrapper<ComActNeighborCircleFabulousWestDO>().lambda()
+                                    .eq(ComActNeighborCircleFabulousWestDO::getParentId, commentReplyVO.getId())
+                                    .eq(ComActNeighborCircleFabulousWestDO::getUserId, neighborCircleAppDTO.getUserId())
+                                    .eq(ComActNeighborCircleFabulousWestDO::getType, ComActNeighborCircleFabulousWestDO.type.hf)
+                                    .eq(ComActNeighborCircleFabulousWestDO::getIsEffective,
+                                        ComActNeighborCircleFabulousWestDO.isEffective.yes));
+                            if (circleReplyFabulousDO != null) {
+                                commentReplyVO.setHaveSign(1);
+                            } else {
+                                commentReplyVO.setHaveSign(2);
+                            }
+                            newCommentReplyAppVOS.add(commentReplyVO);
+                            i++;
+                        }
+                    }
+                    circleCommentVo.setCircleCommentReplyAppList(newCommentReplyAppVOS);
+                    circleCommentVo.setCommentReplyNum(commentReplyAppVOS.size());
+                }
+            }
+        }
+
+        circleDetailAppVO.setCircleCommentAppList(circleCommentAppPage.getRecords());
+        return R.ok(circleDetailAppVO);
+    }
+
+    @Override
+    public R pageNeighborByAdmin(ComActNeighborCircleAdminDTO neighborCircleAdminDTO) {
+        Page page = new Page(neighborCircleAdminDTO.getPageNum(), neighborCircleAdminDTO.getPageSize());
+        IPage<ComActNeighborCircleAdminVO> doPager = this.baseMapper.pageNeighborByAdmin(page, neighborCircleAdminDTO);
+        doPager.getRecords().forEach(data -> {
+            if(data.getUserType()!=null){
+                if (data.getUserType() != 1) {
+                    data.setReleaseName(data.getCommunityName());
+                }
+            }
+        });
+        return R.ok(doPager);
+    }
+
+    @Override
+    public R addNeighborByAdmin(AddNeighborCircleAdminVO addVO) {
+        ComActNeighborCircleWestDO comActNeighborCircleWestDO = new ComActNeighborCircleWestDO();
+        AdministratorsUserVO adminUser = this.baseMapper.selectUserByUserId(addVO.getUserId());
+        if (adminUser == null) {
+            return R.fail("请登录重试");
+        }
+        comActNeighborCircleWestDO.setReleaseId(addVO.getUserId());
+        comActNeighborCircleWestDO.setReleasePhone(adminUser.getPhone());
+        comActNeighborCircleWestDO.setCommunityId(adminUser.getCommunityId());
+        comActNeighborCircleWestDO.setReleaseContent(addVO.getReleaseContent());
+        comActNeighborCircleWestDO.setReleaseImages(addVO.getReleaseImages());
+        comActNeighborCircleWestDO.setType(2);
+        comActNeighborCircleWestDO.setStatus(2);
+        comActNeighborCircleWestDO.setCommentNum(0);
+        comActNeighborCircleWestDO.setFabulousNum(0);
+        comActNeighborCircleWestDO.setForwardNum(0);
+        comActNeighborCircleWestDO.setViewsNum(0);
+        comActNeighborCircleWestDO.setIsBoutique(2);
+        comActNeighborCircleWestDO.setCreateAt(new Date());
+        comActNeighborCircleWestDO.setLastCommentNum(0);
+        comActNeighborCircleWestDO.setLastFabulousNum(0);
+        comActNeighborCircleWestDO.setLastViewsNum(0);
+        this.baseMapper.insert(comActNeighborCircleWestDO);
+        return R.ok();
+    }
+
+    @Override
+    public R changeStatusByAdmin(EditNeighborCircleAdminVO editVO) {
+        ComActNeighborCircleWestDO neighborCircleDO = this.baseMapper.selectById(editVO.getId());
+        if (neighborCircleDO == null) {
+            return R.fail("id有误!");
+        }
+        neighborCircleDO.setStatus(editVO.getStatus());
+        if (editVO.getRefuseReason() != null) {
+            neighborCircleDO.setRefuseReason(editVO.getRefuseReason());
+        }
+        this.baseMapper.updateById(neighborCircleDO);
+
+        if(editVO.getStatus().equals(EditNeighborCircleAdminVO.status.xs) && neighborCircleDO.getTopicId() != null){
+            //给邻里圈话题添加邻里圈数量
+            comActNeighborCircleTopicWestMapper.addCount(neighborCircleDO.getTopicId());
+        }
+        return R.ok(neighborCircleDO.getReleaseId());
+    }
+
+    /**
+     * 用户查询邻里圈列表
+     *
+     * @param neighborCircleAppDTO
+     *            请求参数
+     * @return 邻里圈列表
+     */
+    @Override
+    public R neighborExamineByApp(ComActNeighborCircleAppDTO neighborCircleAppDTO) {
+        IPage<ComActNeighborCircleAppVO> neighborCircleIPage = this.baseMapper.neighborExamineByApp(
+            new Page<>(neighborCircleAppDTO.getPageNum(), neighborCircleAppDTO.getPageSize()),
+            neighborCircleAppDTO.getUserId());
+        if (!neighborCircleIPage.getRecords().isEmpty()) {
+            for (ComActNeighborCircleAppVO circleAppVO : neighborCircleIPage.getRecords()) {
+                // 查询点赞信息
+                ComActNeighborCircleFabulousWestDO circleFabulousDO =
+                    comActNeighborCircleFabulousWestDAO.selectOne(new QueryWrapper<ComActNeighborCircleFabulousWestDO>()
+                        .lambda().eq(ComActNeighborCircleFabulousWestDO::getParentId, circleAppVO.getId())
+                        .eq(ComActNeighborCircleFabulousWestDO::getUserId, neighborCircleAppDTO.getUserId())
+                        .eq(ComActNeighborCircleFabulousWestDO::getType, ComActNeighborCircleFabulousWestDO.type.llq)
+                        .eq(ComActNeighborCircleFabulousWestDO::getIsEffective,
+                            ComActNeighborCircleFabulousWestDO.isEffective.yes));
+                if (circleFabulousDO != null) {
+                    circleAppVO.setHaveSign(1);
+                } else {
+                    circleAppVO.setHaveSign(2);
+                }
+            }
+        }
+        return R.ok(neighborCircleIPage);
+    }
+
+    /**
+     * 邻里圈点赞
+     *
+     * @param fabulousAppDTO
+     *            请求参数
+     * @return 点赞结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R neighborFabulousByApp(ComActNeighborFabulousAppDTO fabulousAppDTO) {
+
+        ComActNeighborCircleFabulousWestDO circleFabulousDO = new ComActNeighborCircleFabulousWestDO();
+        circleFabulousDO.setUserId(fabulousAppDTO.getUserId());
+        circleFabulousDO.setType(fabulousAppDTO.getType());
+        circleFabulousDO.setParentId(fabulousAppDTO.getServiceId());
+        // 判断点赞类型
+        if (fabulousAppDTO.getType().equals(ComActNeighborFabulousAppDTO.type.llq)) {
+
+            ComActNeighborCircleFabulousWestDO oldCircleFabulousDO =
+                comActNeighborCircleFabulousWestDAO.selectOne(new QueryWrapper<ComActNeighborCircleFabulousWestDO>().lambda()
+                    .eq(ComActNeighborCircleFabulousWestDO::getType, ComActNeighborFabulousAppDTO.type.llq)
+                    .eq(ComActNeighborCircleFabulousWestDO::getParentId, fabulousAppDTO.getServiceId())
+                    .eq(ComActNeighborCircleFabulousWestDO::getIsEffective, ComActNeighborCircleFabulousWestDO.isEffective.yes)
+                    .eq(ComActNeighborCircleFabulousWestDO::getUserId, fabulousAppDTO.getUserId()));
+            if (oldCircleFabulousDO != null) {
+                return R.fail("您已点赞");
+            }
+
+            // 增加邻里圈点赞数量
+            ComActNeighborCircleWestDO neighborCircleDO = this.baseMapper.selectById(fabulousAppDTO.getServiceId());
+            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);
+                comActNeighborCircleTopicWestMapper.addHotNum(neighborCircleDO.getTopicId(),hotNum);
+                circleFabulousDO.setCircleId(neighborCircleDO.getId());
+            }
+            // 添加邻里圈浏览记录
+            comActNeighborCircleBrowseWestService.addBrowseRecord(fabulousAppDTO.getServiceId(),
+                fabulousAppDTO.getUserId());
+        } else if (fabulousAppDTO.getType().equals(ComActNeighborFabulousAppDTO.type.pl)) {
+            ComActNeighborCircleFabulousWestDO oldCircleFabulousDO =
+                comActNeighborCircleFabulousWestDAO.selectOne(new QueryWrapper<ComActNeighborCircleFabulousWestDO>().lambda()
+                    .eq(ComActNeighborCircleFabulousWestDO::getType, ComActNeighborFabulousAppDTO.type.pl)
+                    .eq(ComActNeighborCircleFabulousWestDO::getParentId, fabulousAppDTO.getServiceId())
+                    .eq(ComActNeighborCircleFabulousWestDO::getIsEffective,
+                        ComActNeighborCircleFabulousWestDO.isEffective.yes));
+            if (oldCircleFabulousDO != null) {
+                return R.fail("您已点赞");
+            }
+            // 增加邻里圈评论点赞数量
+            ComActNeighborCircleCommentWestDO circleCommentDO =
+                comActNeighborCircleCommentWestDAO.selectById(fabulousAppDTO.getServiceId());
+            if (circleCommentDO != null) {
+                circleCommentDO.setFabulousNum(circleCommentDO.getFabulousNum() + 1);
+                comActNeighborCircleCommentWestDAO.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)) {
+            ComActNeighborCircleFabulousWestDO oldCircleFabulousDO =
+                comActNeighborCircleFabulousWestDAO.selectOne(new QueryWrapper<ComActNeighborCircleFabulousWestDO>().lambda()
+                    .eq(ComActNeighborCircleFabulousWestDO::getType, ComActNeighborFabulousAppDTO.type.hf)
+                    .eq(ComActNeighborCircleFabulousWestDO::getParentId, fabulousAppDTO.getServiceId())
+                    .eq(ComActNeighborCircleFabulousWestDO::getIsEffective,
+                        ComActNeighborCircleFabulousWestDO.isEffective.yes));
+            if (oldCircleFabulousDO != null) {
+                return R.fail("您已点赞");
+            }
+            // 增加邻里圈评论回复点赞数量
+            ComActNeighborCircleCommentReplyWestDO circleCommentReplyDO =
+                comActNeighborCircleCommentReplyWestDAO.selectById(fabulousAppDTO.getServiceId());
+            if (circleCommentReplyDO != null) {
+                circleCommentReplyDO.setFabulousNum(circleCommentReplyDO.getFabulousNum() + 1);
+                comActNeighborCircleCommentReplyWestDAO.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());
+            }
+        }
+        if (comActNeighborCircleFabulousWestDAO.insert(circleFabulousDO) > 0) {
+            return R.ok();
+        } else {
+            return R.fail("点赞失败");
+        }
+    }
+
+    /**
+     * 邻里圈转发
+     *
+     * @param forwardAppDTO
+     *            请求参数
+     * @return 转发结果
+     */
+    @Override
+    public R neighborForwardByApp(ComActNeighborForwardAppDTO forwardAppDTO) {
+
+        if (forwardAppDTO.getUserId() != null) {
+            // 添加邻里圈浏览记录
+            comActNeighborCircleBrowseWestService.addBrowseRecord(forwardAppDTO.getCircleId(), forwardAppDTO.getUserId());
+        }
+
+        ComActNeighborCircleWestDO circleDO = this.baseMapper.selectById(forwardAppDTO.getCircleId());
+        if (circleDO == null) {
+            return R.fail("没有找到邻里圈");
+        }
+        circleDO.setForwardNum(circleDO.getForwardNum() + 1);
+        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("转发失败");
+        }
+    }
+
+    /**
+     * 邻里圈评论
+     *
+     * @param commentAppDTO
+     *            请求参数
+     * @return 评论结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R neighborCommentByApp(ComActNeighborCommentAppDTO commentAppDTO) {
+
+        ComActNeighborCircleCommentWestDO circleCommentDO = new ComActNeighborCircleCommentWestDO();
+        // 查询邻里圈更新邻里圈评论数量
+        ComActNeighborCircleWestDO neighborCircleDO = this.baseMapper.selectById(commentAppDTO.getCircleId());
+        if (neighborCircleDO == null) {
+            return R.fail("没有找到邻里圈");
+        }
+        neighborCircleDO.setCommentNum(neighborCircleDO.getCommentNum() + 1);
+        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());
+        circleCommentDO.setContent(commentAppDTO.getContent());
+        if (neighborCircleDO.getReleaseId().equals(commentAppDTO.getUserId())) {
+            circleCommentDO.setIsRelease(ComActNeighborCircleCommentWestDO.isRelease.yes);
+        }
+
+        if (comActNeighborCircleCommentWestDAO.insert(circleCommentDO) > 0) {
+            return R.ok();
+        } else {
+            return R.fail("评论失败");
+        }
+    }
+
+    /**
+     * 邻里圈回复
+     *
+     * @param replyAppDTO
+     *            请求参数
+     * @return 回复结果
+     */
+    @Override
+    public R neighborReplyByApp(ComActNeighborReplyAppDTO replyAppDTO) {
+
+        ComActNeighborCircleCommentReplyWestDO circleCommentReplyDO = new ComActNeighborCircleCommentReplyWestDO();
+        // 查询邻里圈更新邻里圈评论数量
+        ComActNeighborCircleWestDO neighborCircleDO = this.baseMapper.selectById(replyAppDTO.getCircleId());
+        if (neighborCircleDO == null) {
+            return R.fail("没有找到邻里圈");
+        }
+        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());
+        circleCommentReplyDO.setReplyContent(replyAppDTO.getContent());
+        if (neighborCircleDO.getReleaseId().equals(replyAppDTO.getUserId())) {
+            circleCommentReplyDO.setIsRelease(1);
+        }
+
+        // 判断回复类型
+        if (replyAppDTO.getType().equals(ComActNeighborReplyAppDTO.type.pl)) {
+            // 查询评论信息
+            ComActNeighborCircleCommentWestDO circleCommentDO =
+                comActNeighborCircleCommentWestDAO.selectById(replyAppDTO.getServiceId());
+            if (circleCommentDO != null) {
+                circleCommentReplyDO.setCommentId(replyAppDTO.getServiceId());
+                circleCommentReplyDO.setParentId(0L);
+                circleCommentReplyDO.setParentUserId(circleCommentDO.getUserId());
+            }
+        } else if (replyAppDTO.getType().equals(ComActNeighborReplyAppDTO.type.hf)) {
+            // 查询上级回复信息
+            ComActNeighborCircleCommentReplyWestDO parentCommentReplyDO =
+                comActNeighborCircleCommentReplyWestDAO.selectById(replyAppDTO.getServiceId());
+            if (parentCommentReplyDO != null) {
+                circleCommentReplyDO.setCommentId(parentCommentReplyDO.getCommentId());
+                circleCommentReplyDO.setParentId(parentCommentReplyDO.getId());
+                circleCommentReplyDO.setParentUserId(parentCommentReplyDO.getUserId());
+            }
+        }
+
+        if (comActNeighborCircleCommentReplyWestDAO.insert(circleCommentReplyDO) > 0) {
+            return R.ok();
+        } else {
+            return R.fail("回复失败");
+        }
+    }
+
+    @Override
+    public R timeTaskCircleFlow() {
+        Date oldDate = DateUtils.addDay(new Date(), -3);
+        // 查询所有状态正常的邻里圈
+        List<ComActNeighborCircleWestDO> circleDOList =
+            this.baseMapper.selectList(new QueryWrapper<ComActNeighborCircleWestDO>().lambda()
+                .eq(ComActNeighborCircleWestDO::getStatus, ComActNeighborCircleWestDO.status.xs));
+        if (!circleDOList.isEmpty()) {
+            // 遍历查询到的邻里圈,更新邻里圈内近3天的评论数,点赞数,浏览量
+            for (ComActNeighborCircleWestDO neighborCircleDO : circleDOList) {
+                // 查询邻里圈近3天的评论数
+                int commentCount =
+                    comActNeighborCircleCommentWestDAO.selectCount(new QueryWrapper<ComActNeighborCircleCommentWestDO>()
+                        .lambda().eq(ComActNeighborCircleCommentWestDO::getCircleId, neighborCircleDO.getId()));
+                // 查询邻里圈近3天的评论回复数
+                int commentReplyCount = comActNeighborCircleCommentReplyWestDAO
+                    .selectCount(new QueryWrapper<ComActNeighborCircleCommentReplyWestDO>().lambda()
+                        .eq(ComActNeighborCircleCommentReplyWestDO::getCircleId, neighborCircleDO.getId()));
+                // 查询邻里圈近3天的点赞数
+                int fabulousCount =
+                    comActNeighborCircleFabulousWestDAO.selectCount(new QueryWrapper<ComActNeighborCircleFabulousWestDO>()
+                        .lambda().eq(ComActNeighborCircleFabulousWestDO::getCircleId, neighborCircleDO.getId())
+                        .eq(ComActNeighborCircleFabulousWestDO::getIsEffective,
+                            ComActNeighborCircleFabulousWestDO.isEffective.yes));
+                // 查询邻里圈近3天的浏览量
+                int browseCount =
+                    comActNeighborCircleBrowseWestDAO.selectCount(new QueryWrapper<ComActNeighborCircleBrowseWestDO>().lambda()
+                        .eq(ComActNeighborCircleBrowseWestDO::getNeighborId, neighborCircleDO.getId()));
+                // 更新邻里圈信息
+                neighborCircleDO.setLastCommentNum(commentCount + commentReplyCount);
+                neighborCircleDO.setLastFabulousNum(fabulousCount);
+                neighborCircleDO.setLastViewsNum(browseCount);
+                this.baseMapper.updateById(neighborCircleDO);
+            }
+        }
+
+        return R.ok();
+    }
+
+    @Override
+    public R deleteByAdmin(Long id) {
+        ComActNeighborCircleWestDO comActNeighborCircleWestDO = this.baseMapper.selectById(id);
+        if (comActNeighborCircleWestDO == null) {
+            return R.fail();
+        }
+        if (comActNeighborCircleWestDO.getStatus() == 1) {
+            return R.fail("待审核的邻里圈不能删除");
+        }
+        // 邻里圈删除
+        this.baseMapper.deleteById(id);
+        // 邻里圈评论删除
+        neighborCircleCommentDAO.delete(
+            new LambdaQueryWrapper<ComActNeighborCircleCommentWestDO>().eq(ComActNeighborCircleCommentWestDO::getCircleId, id));
+        // 邻里圈回复删除
+        neighborCircleCommentReplyDAO.delete(new LambdaQueryWrapper<ComActNeighborCircleCommentReplyWestDO>()
+            .eq(ComActNeighborCircleCommentReplyWestDO::getCircleId, id));
+        // 邻里圈浏览器记录
+        neighborCircleBrowseDAO.delete(
+            new LambdaQueryWrapper<ComActNeighborCircleBrowseWestDO>().eq(ComActNeighborCircleBrowseWestDO::getNeighborId, id));
+        // 邻里圈点赞删除
+        neighborCircleFabulousDAO.delete(new LambdaQueryWrapper<ComActNeighborCircleFabulousWestDO>()
+            .eq(ComActNeighborCircleFabulousWestDO::getCircleId, id));
+        return R.ok();
+
+    }
+
+    @Override
+    public R detailNeighborByAdmin(Long id) {
+        ComActNeighborCircleWestDO comActNeighborCircleWestDO = this.baseMapper.selectById(id);
+        if (comActNeighborCircleWestDO == null) {
+            return R.fail("id有误");
+        }
+        AdministratorsUserVO user = this.baseMapper.selectUserByUserId(comActNeighborCircleWestDO.getReleaseId());
+        DetailNeighborCircleAdminVO vo = new DetailNeighborCircleAdminVO();
+        BeanUtils.copyProperties(comActNeighborCircleWestDO, vo);
+        vo.setReleaseName(user.getName());
+        vo.setImageUrl(user.getImageUrl());
+
+        // 查询话题名称
+        if (comActNeighborCircleWestDO.getTopicId() != null) {
+            ComActNeighborCircleTopicWestDO circleTopicDO =
+                comActNeighborCircleTopicWestMapper.selectById(comActNeighborCircleWestDO.getTopicId());
+            vo.setTopicName(circleTopicDO.getName());
+        }
+        return R.ok(vo);
+    }
+
+    @Override
+    public R detailNeighborAllCommentByAdmin(DetailNeighborAllCommentByAdminDTO dto) {
+        ComActNeighborCircleWestDO comActNeighborCircleWestDO = this.baseMapper.selectById(dto.getId());
+        if (comActNeighborCircleWestDO == null) {
+            return R.fail("id有误");
+        }
+        Page<ComActNeighborCircleCommentWestDO> page = new Page<>(dto.getPageNum(), dto.getPageSize());
+        // 1、先查询所有该邻里圈_的评论
+        IPage<ComActNeighborCommentByAdminVO> commentDOIPage =
+            neighborCircleCommentDAO.selectPageDetailNeighborComment(page, dto);
+        return R.ok(commentDOIPage);
+    }
+
+    @Override
+    public R changeCommentStatusByAdmin(ChangeCommentStatusByAdminVO dto) {
+        ComActNeighborCircleCommentWestDO commentDO = neighborCircleCommentDAO.selectById(dto.getId());
+        if (commentDO == null) {
+            return R.fail("id有误!");
+        }
+        commentDO.setStatus(dto.getStatus());
+        neighborCircleCommentDAO.updateById(commentDO);
+
+        // 查询邻里圈更新邻里圈评论数量
+        ComActNeighborCircleWestDO neighborCircleDO = this.baseMapper.selectById(commentDO.getCircleId());
+        if (neighborCircleDO != null) {
+            if (dto.getStatus().equals(2)) {
+                neighborCircleDO.setCommentNum(neighborCircleDO.getCommentNum() - 1);
+            } else {
+                neighborCircleDO.setCommentNum(neighborCircleDO.getCommentNum() + 1);
+            }
+            this.baseMapper.updateById(neighborCircleDO);
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R detailNeighborCommentByAdmin(Long id) {
+        ComActNeighborCircleCommentWestDO commentDO = neighborCircleCommentDAO.selectById(id);
+        if (commentDO == null) {
+            return R.fail("id有误!");
+        }
+        AdministratorsUserVO user = this.baseMapper.selectUserByUserId(commentDO.getUserId());
+        ComActNeighborCommentByAdminVO vo = new ComActNeighborCommentByAdminVO();
+        BeanUtils.copyProperties(commentDO, vo);
+        String name = user.getName() == null ? user.getNickName() : user.getName();
+        vo.setUserName(name);
+        vo.setUserPhone(user.getPhone());
+        return R.ok(vo);
+    }
+
+    @Override
+    public R detailNeighborCommentAllReply(DetailNeighborCommentReplyByAdminDTO dto) {
+        Page<ComActNeighborCircleCommentReplyWestDO> page = new Page<>(dto.getPageNum(), dto.getPageSize());
+        Page<ComActNeighborCommentReplyByAdminVO> replyPage =
+            neighborCircleCommentReplyDAO.selectListByComment(page, dto);
+        replyPage.getRecords().forEach(reply -> {
+
+        });
+        return R.ok(replyPage);
+    }
+
+    @Override
+    public R detailNeighborCommentReply(Long id) {
+        ComActNeighborCircleCommentReplyWestDO replyDO = neighborCircleCommentReplyDAO.selectById(id);
+        if (replyDO == null) {
+            return R.fail("id有误!");
+        }
+        AdministratorsUserVO user = this.baseMapper.selectUserByUserId(replyDO.getUserId());
+        ComActNeighborCommentReplyByAdminVO vo = new ComActNeighborCommentReplyByAdminVO();
+        BeanUtils.copyProperties(replyDO, vo);
+        vo.setUserName(user.getName());
+        vo.setUserPhone(user.getPhone());
+        return R.ok(vo);
+    }
+
+    @Override
+    public R changeCommentReplyStatusByAdmin(ChangeCommentReplyStatusByAdminVO changeStatusReplyVO) {
+        ComActNeighborCircleCommentReplyWestDO replyDO =
+            neighborCircleCommentReplyDAO.selectById(changeStatusReplyVO.getId());
+        if (replyDO == null) {
+            return R.fail("id有误!");
+        }
+        replyDO.setStatus(changeStatusReplyVO.getStatus());
+        neighborCircleCommentReplyDAO.updateById(replyDO);
+        return R.ok();
+    }
+
+    /**
+     * 邻里圈取消点赞
+     *
+     * @param fabulousAppDTO
+     *            请求参数
+     * @return 取消点赞结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R neighborFabulousCancelByApp(ComActNeighborFabulousAppDTO fabulousAppDTO) {
+        ComActNeighborCircleFabulousWestDO circleFabulousDO = null;
+        // 查询邻里圈点赞信息
+        if (fabulousAppDTO.getType().equals(ComActNeighborFabulousAppDTO.type.llq)) {
+            // 查询点赞信息
+            circleFabulousDO =
+                comActNeighborCircleFabulousWestDAO.selectOne(new QueryWrapper<ComActNeighborCircleFabulousWestDO>().lambda()
+                    .eq(ComActNeighborCircleFabulousWestDO::getParentId, fabulousAppDTO.getServiceId())
+                    .eq(ComActNeighborCircleFabulousWestDO::getUserId, fabulousAppDTO.getUserId())
+                    .eq(ComActNeighborCircleFabulousWestDO::getType, ComActNeighborCircleFabulousWestDO.type.llq)
+                    .eq(ComActNeighborCircleFabulousWestDO::getIsEffective,
+                        ComActNeighborCircleFabulousWestDO.isEffective.yes));
+            if (circleFabulousDO == null) {
+                return R.fail("未查询到点赞信息");
+            }
+
+            // 减少邻里圈点赞数量
+            ComActNeighborCircleWestDO neighborCircleDO = this.baseMapper.selectById(fabulousAppDTO.getServiceId());
+            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 =
+                comActNeighborCircleFabulousWestDAO.selectOne(new QueryWrapper<ComActNeighborCircleFabulousWestDO>().lambda()
+                    .eq(ComActNeighborCircleFabulousWestDO::getParentId, fabulousAppDTO.getServiceId())
+                    .eq(ComActNeighborCircleFabulousWestDO::getUserId, fabulousAppDTO.getUserId())
+                    .eq(ComActNeighborCircleFabulousWestDO::getType, ComActNeighborCircleFabulousWestDO.type.pl)
+                    .eq(ComActNeighborCircleFabulousWestDO::getIsEffective,
+                        ComActNeighborCircleFabulousWestDO.isEffective.yes));
+            if (circleFabulousDO == null) {
+                return R.fail("未查询到点赞信息");
+            }
+
+            // 减少邻里圈评论点赞数量
+            ComActNeighborCircleCommentWestDO circleCommentDO =
+                comActNeighborCircleCommentWestDAO.selectById(fabulousAppDTO.getServiceId());
+            if (circleCommentDO != null) {
+                circleCommentDO.setFabulousNum(circleCommentDO.getFabulousNum() - 1);
+                comActNeighborCircleCommentWestDAO.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 =
+                comActNeighborCircleFabulousWestDAO.selectOne(new QueryWrapper<ComActNeighborCircleFabulousWestDO>().lambda()
+                    .eq(ComActNeighborCircleFabulousWestDO::getParentId, fabulousAppDTO.getServiceId())
+                    .eq(ComActNeighborCircleFabulousWestDO::getUserId, fabulousAppDTO.getUserId())
+                    .eq(ComActNeighborCircleFabulousWestDO::getType, ComActNeighborCircleFabulousWestDO.type.hf)
+                    .eq(ComActNeighborCircleFabulousWestDO::getIsEffective,
+                        ComActNeighborCircleFabulousWestDO.isEffective.yes));
+            if (circleFabulousDO == null) {
+                return R.fail("未查询到点赞信息");
+            }
+            // 减少邻里圈评论回复点赞数量
+            ComActNeighborCircleCommentReplyWestDO circleCommentReplyDO =
+                comActNeighborCircleCommentReplyWestDAO.selectById(fabulousAppDTO.getServiceId());
+            if (circleCommentReplyDO != null) {
+                circleCommentReplyDO.setFabulousNum(circleCommentReplyDO.getFabulousNum() - 1);
+                comActNeighborCircleCommentReplyWestDAO.updateById(circleCommentReplyDO);
+                //计算需要增加的热度值
+                Long hotNum = NeighborCircleConstants.FABULOUS_HOT_NUM;
+                this.baseMapper.addHotNum(circleCommentReplyDO.getCircleId(),-hotNum);
+                this.baseMapper.addTopicHotNum(circleCommentReplyDO.getCircleId(),-hotNum);
+            }
+        }
+        if (circleFabulousDO != null) {
+            circleFabulousDO.setIsEffective(ComActNeighborCircleFabulousWestDO.isEffective.no);
+            comActNeighborCircleFabulousWestDAO.updateById(circleFabulousDO);
+        }
+        return R.ok();
+    }
+
+    /**
+     * 添加邻里圈浏览记录
+     *
+     * @param addBrowseAppDTO
+     *            请求参数
+     * @return 返回参数
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R neighborAddBrowseByApp(ComActNeighborAddBrowseAppDTO addBrowseAppDTO) {
+        // 添加邻里圈浏览记录
+        comActNeighborCircleBrowseWestService.addBrowseRecord(addBrowseAppDTO.getCircleId(), addBrowseAppDTO.getUserId());
+        // 更新邻里圈记录
+        ComActNeighborCircleWestDO neighborCircleDO = this.baseMapper.selectById(addBrowseAppDTO.getCircleId());
+        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 回复列表
+     */
+    @Override
+    public R neighborCommentReplyByApp(ComActNeighborCommentReplyAppDTO commentReplyAppDTO) {
+        IPage<ComActNeighborCommentReplyAppVO> neighborCircleIPage = this.baseMapper.neighborCommentReplyByApp(
+            new Page<>(commentReplyAppDTO.getPageNum(), commentReplyAppDTO.getPageSize()),
+            commentReplyAppDTO.getCommentId());
+        if (!neighborCircleIPage.getRecords().isEmpty()) {
+            for (ComActNeighborCommentReplyAppVO commentReplyAppVO : neighborCircleIPage.getRecords()) {
+                if (commentReplyAppDTO.getUserId() != null) {
+                    // 查询点赞信息
+                    ComActNeighborCircleFabulousWestDO circleFabulousDO =
+                        comActNeighborCircleFabulousWestDAO.selectOne(new QueryWrapper<ComActNeighborCircleFabulousWestDO>()
+                            .lambda().eq(ComActNeighborCircleFabulousWestDO::getParentId, commentReplyAppVO.getId())
+                            .eq(ComActNeighborCircleFabulousWestDO::getUserId, commentReplyAppDTO.getUserId())
+                            .eq(ComActNeighborCircleFabulousWestDO::getType, ComActNeighborCircleFabulousWestDO.type.hf)
+                            .eq(ComActNeighborCircleFabulousWestDO::getIsEffective,
+                                ComActNeighborCircleFabulousWestDO.isEffective.yes));
+                    if (circleFabulousDO != null) {
+                        commentReplyAppVO.setHaveSign(1);
+                    } else {
+                        commentReplyAppVO.setHaveSign(2);
+                    }
+                }
+            }
+        }
+        return R.ok(neighborCircleIPage);
+    }
+
+    /**
+     * 小程序-删除邻里圈
+     * @param circleTopicAppDTO 请求参数
+     * @return  删除结果
+     */
+    @Override
+    public R deleteNeighborByApp(DeleteNeighborCircleAppDTO circleTopicAppDTO){
+        ComActNeighborCircleWestDO neighborCircleDO = new ComActNeighborCircleWestDO();
+        neighborCircleDO.setId(circleTopicAppDTO.getId());
+        neighborCircleDO.setIsDel(ComActNeighborCircleWestDO.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/ComActPictureLibraryServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActPictureLibraryServiceImpl.java
new file mode 100644
index 0000000..c1a5bfc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActPictureLibraryServiceImpl.java
@@ -0,0 +1,38 @@
+package com.panzhihua.service_community.service.impl;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.vos.community.ComActPictureLibraryVO;
+import org.springframework.stereotype.Service;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.dao.ComActPictureLibraryDAO;
+import com.panzhihua.service_community.service.ComActPictureLibraryService;
+
+/**
+ * @title: ComActPictureLibraryServiceImpl
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 公共预设图库服务实现类
+ * @author: hans
+ * @date: 2021/11/23 17:03
+ */
+@Service
+public class ComActPictureLibraryServiceImpl implements ComActPictureLibraryService {
+
+    @Resource
+    private ComActPictureLibraryDAO comActPictureLibraryDAO;
+
+
+    /**
+     * 获取预设图库
+     * @param type
+     * @param subtype
+     * @return
+     */
+    @Override
+    public R getPresetPictureLibrary(Integer type, Integer subtype) {
+        ComActPictureLibraryVO libraryVO = new ComActPictureLibraryVO();
+        libraryVO.setPresetPictures(comActPictureLibraryDAO.getPresetPictureLibrary(type, subtype));
+        return R.ok(libraryVO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActProceedingsServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActProceedingsServiceImpl.java
new file mode 100644
index 0000000..a0b1b63
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActProceedingsServiceImpl.java
@@ -0,0 +1,70 @@
+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.ComActProceedingsDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActProceedingsVO;
+import com.panzhihua.common.utlis.CopyUtil;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.service_community.dao.ComActProceedingsDao;
+import com.panzhihua.service_community.entity.ComActProceedings;
+import com.panzhihua.service_community.service.ComActProceedingsService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+import java.util.Date;
+import java.util.List;
+
+import static java.util.Objects.isNull;
+
+@Service
+public class ComActProceedingsServiceImpl extends ServiceImpl<ComActProceedingsDao, ComActProceedings> implements ComActProceedingsService {
+
+    @Resource
+    private ComActProceedingsDao comActProceedingsDao;
+    /**
+     * 分页查询议事委员会
+     * @param keyWord 搜索关键字
+     * @return 处理结果
+     * */
+    @Override
+    public R pageProceedings(Integer page, Integer size, String keyWord) {
+        List<ComActProceedingsVO> comActProceedingsVOS = comActProceedingsDao.pageProceedings(new Page(page, size), keyWord);
+        return R.ok(comActProceedingsVOS);
+    }
+
+    /**
+     * 新增或修改议事委员会
+     * @param comActProceedingsDTO
+     * @return 处理结果
+     * */
+    @Override
+    public R addOrUpdate(ComActProceedingsDTO comActProceedingsDTO) {
+        if(isNull(comActProceedingsDTO.getId())){
+            //新增
+            ComActProceedings comActProceedings=new ComActProceedings();
+            comActProceedings.setId(Snowflake.getId());
+            comActProceedings.setCreateTime(new Date());
+            comActProceedings.setDelFlag(0);
+            comActProceedings.setStatus(0);
+            BeanUtils.copyProperties(comActProceedingsDTO, comActProceedings);
+            int i = comActProceedingsDao.insert(comActProceedings);
+            if (i>0){
+                return R.ok();
+            }
+        }else{
+            //修改
+            ComActProceedings comActProceedings=new ComActProceedings();
+            BeanUtils.copyProperties(comActProceedingsDTO, comActProceedings);
+            comActProceedings.setUpdateTime(new Date());
+            int i = comActProceedingsDao.updateById(comActProceedings);
+            if (i>0){
+                return R.ok();
+            }
+        }
+        return R.fail("操作失败");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireAnswerContentServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireAnswerContentServiceImpl.java
new file mode 100644
index 0000000..430f66b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireAnswerContentServiceImpl.java
@@ -0,0 +1,17 @@
+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.ComActQuestnaireAnswerContentDAO;
+import com.panzhihua.service_community.model.dos.ComActQuestnaireAnswerContentDO;
+
+/**
+ * @Author: llming
+ * @Description: 问卷题目
+ */
+@Service
+public class ComActQuestnaireAnswerContentServiceImpl
+    extends ServiceImpl<ComActQuestnaireAnswerContentDAO, ComActQuestnaireAnswerContentDO> {
+
+}
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
new file mode 100644
index 0000000..0e892a6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireServiceImpl.java
@@ -0,0 +1,847 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.alibaba.fastjson.JSON;
+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.google.common.collect.Lists;
+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.QuestnaireAnswersDTO;
+import com.panzhihua.common.model.dtos.community.questnaire.StatisticsSummaryDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActQuestnaireAnswerContentVO;
+import com.panzhihua.common.model.vos.community.ComActQuestnaireSubSelectionVO;
+import com.panzhihua.common.model.vos.community.ComActQuestnaireSubVO;
+import com.panzhihua.common.model.vos.community.ComActQuestnaireVO;
+import com.panzhihua.common.model.vos.community.questnaire.*;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.service_community.dao.*;
+import com.panzhihua.service_community.model.dos.*;
+import com.panzhihua.service_community.service.ComActQuestnaireService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @Author: llming
+ * @Description:
+ */
+@Slf4j
+@Service
+public class ComActQuestnaireServiceImpl implements ComActQuestnaireService {
+    @Resource
+    ComActQuestnaireDAO questnaireDAO;
+    @Resource
+    ComActQuestnaireSubDAO questnaireSubDAO;
+    @Resource
+    ComActDynUserDAO userDAO;
+    @Resource
+    ComActQuestnaireSubSelectionDAO questnaireSubSelectionDAO;
+    @Resource
+    ComActQuestnaireAnswerContentDAO questnaireAnswerContentDAO;
+    @Resource
+    ComActQuestnaireSubServiceImpl questnaireSubService;
+    @Resource
+    ComActQuestnaireSubSelectionServiceImpl subSelectionService;
+    @Resource
+    ComActQuestnaireAnswerContentServiceImpl answerContentService;
+    @Resource
+    UserService userService;
+    @Resource
+    private ComActQuestnaireUserAnswerMapper comActQuestnaireUserAnswerMapper;
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R addQuestnaire(QuestnaireVO questnaireVO) {
+        Long userId = questnaireVO.getUserId();
+        if (questnaireVO.getAdverPositionPopup().equals(ComActQuestnaireDO.isOk.yes)) {
+            // 查询当前时间段是否已有弹窗提醒了
+            Integer count = questnaireDAO.getAdvPopupCount(questnaireVO.getCommunityId(), questnaireVO.getStartTime(),
+                questnaireVO.getEndTime(), null);
+            if (count > 0) {
+                return R.fail("所选时间段已设置了问卷调查弹窗,暂不支持再次添加!");
+            }
+        }
+        ComActQuestnaireDO comActQuestnaireDO = new ComActQuestnaireDO();
+        Date nowDate = new Date();
+        BeanUtils.copyProperties(questnaireVO, comActQuestnaireDO);
+        comActQuestnaireDO.setState(ComActQuestnaireDO.state.dfb);
+        comActQuestnaireDO.setTitle(questnaireVO.getTitle());
+        comActQuestnaireDO.setJoinCount(0);
+        comActQuestnaireDO.setCreateBy(userId);
+        comActQuestnaireDO.setCreateAt(nowDate);
+        Date startDate = DateUtils.stringToDate(questnaireVO.getStartTime(), DateUtils.ymdhms_format);
+        if (startDate != null && startDate.getTime() <= nowDate.getTime()) {
+            comActQuestnaireDO.setState(ComActQuestnaireDO.state.dyz);
+            comActQuestnaireDO.setPublishTime(nowDate);
+        }
+        Date endDate = DateUtils.stringToDate(questnaireVO.getEndTime(), DateUtils.ymdhms_format);
+        if (endDate != null && endDate.getTime() <= nowDate.getTime()) {
+            comActQuestnaireDO.setState(ComActQuestnaireDO.state.yjs);
+        }
+        comActQuestnaireDO.setStartTime(startDate);
+        comActQuestnaireDO.setEndTime(endDate);
+        if (questnaireVO.getIdentity().equals(QuestnaireVO.identity.jm)) {
+            comActQuestnaireDO.setForMasses(ComActQuestnaireDO.isOk.yes);
+        } else if (questnaireVO.getIdentity().equals(QuestnaireVO.identity.dy)) {
+            comActQuestnaireDO.setForParty(ComActQuestnaireDO.isOk.yes);
+        } else if (questnaireVO.getIdentity().equals(QuestnaireVO.identity.zyz)) {
+            comActQuestnaireDO.setForVolunteer(ComActQuestnaireDO.isOk.yes);
+        }
+
+        if (questnaireVO.getIsRelease() != null && questnaireVO.getIsRelease().equals(1)) {
+            comActQuestnaireDO.setStartTime(nowDate);
+        }
+        // 统计该调查问卷填报题目数量
+        int count = 0;
+        List<QuestnaiteSubVO> questnaiteSubVOS = JSON.parseArray(questnaireVO.getJsonObject(), QuestnaiteSubVO.class);
+        if (!questnaiteSubVOS.isEmpty()) {
+            count = questnaiteSubVOS.size();
+        }
+        comActQuestnaireDO.setCount(count);
+        comActQuestnaireDO.setJsonObject(questnaireVO.getJsonObject());
+
+        int quesCount = questnaireDAO.insert(comActQuestnaireDO);
+        if (quesCount != 1) {
+            return R.fail("创建失败");
+        }
+
+        if (!questnaiteSubVOS.isEmpty()) {
+            questnaiteSubVOS.forEach(sub -> {
+                ComActQuestnaireSubDO comActQuestnaireSubDO = new ComActQuestnaireSubDO();
+                comActQuestnaireSubDO.setType(sub.getType());
+                comActQuestnaireSubDO.setContent(sub.getLabel());
+                comActQuestnaireSubDO.setSort(sub.getSort());
+                comActQuestnaireSubDO.setQueId(comActQuestnaireDO.getId());
+                comActQuestnaireSubDO.setCreateBy(userId);
+                comActQuestnaireSubDO.setKey(sub.getKey());
+                questnaireSubDAO.insert(comActQuestnaireSubDO);
+                ArrayList<ComActQuestnaireSubSelectionDO> subSelectionList = Lists.newArrayList();
+                if (sub.getOptions() != null && !sub.getOptions().isEmpty()) {
+                    List<QuestnaiteSubSelectionVO> subOptions = sub.getOptions();
+                    for (int i = 0; i < subOptions.size(); i++) {
+                        QuestnaiteSubSelectionVO subSelect = subOptions.get(i);
+                        ComActQuestnaireSubSelectionDO subSelectionDO = new ComActQuestnaireSubSelectionDO();
+                        subSelectionDO.setQueSubId(comActQuestnaireSubDO.getId());
+                        if (subSelect.getType().equals(1)) {
+                            // 添加选项名称
+                            subSelectionDO.setOptionName(subSelect.getOptionName());
+                        } else {
+                            subSelectionDO.setOptionName(String.valueOf(Character.toChars('A' + i)));
+                        }
+                        subSelectionDO.setContent(subSelect.getLabel());
+                        subSelectionDO.setQueId(comActQuestnaireDO.getId());
+                        subSelectionDO.setCreateBy(userId);
+                        subSelectionDO.setType(subSelect.getType());
+                        subSelectionDO.setKey(subSelect.getKey());
+                        subSelectionDO.setUrl(subSelect.getUrl());
+                        subSelectionList.add(subSelectionDO);
+                    }
+                }
+                subSelectionService.saveBatch(subSelectionList);
+            });
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R pageQuestnaire(PageQuestnaireDTO pageQuestnaireDTO) {
+        IPage<QuestnaireListVo> voPage = questnaireDAO.selectPageList(
+            new Page<>(pageQuestnaireDTO.getPageNum(), pageQuestnaireDTO.getPageSize()), pageQuestnaireDTO);
+        return R.ok(voPage);
+    }
+
+    @Override
+    public R pageQuestnaireAdmin(PageQuestnaireDTO pageQuestnaireDTO) {
+        IPage<QuestnaireListAdminVO> voPage = questnaireDAO.selectPageListAdmin(
+            new Page<>(pageQuestnaireDTO.getPageNum(), pageQuestnaireDTO.getPageSize()), pageQuestnaireDTO);
+        if (!voPage.getRecords().isEmpty()) {
+            voPage.getRecords().forEach(vo -> {
+                // 判断调查人员身份
+                if (vo.getForMasses().equals(ComActQuestnaireDO.isOk.yes)) {
+                    vo.setIdentity("全部居民");
+                } else if (vo.getForParty().equals(ComActQuestnaireDO.isOk.yes)) {
+                    vo.setIdentity("党员");
+                } else if (vo.getForVolunteer().equals(ComActQuestnaireDO.isOk.yes)) {
+                    vo.setIdentity("志愿者");
+                }
+                // 判断广告位置
+                StringBuilder sb = new StringBuilder();
+                if (vo.getAdverPositionPopup().equals(ComActQuestnaireDO.isOk.yes)) {
+                    sb.append("首页弹窗,");
+                }
+                if (vo.getAdverPositionTop().equals(ComActQuestnaireDO.isOk.yes)) {
+                    sb.append("首页顶部,");
+                }
+                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) {
+                    vo.setAdvertPosition(advertPosition.substring(0, advertPosition.length() - 1));
+                } else {
+                    vo.setAdvertPosition("无");
+                }
+            });
+        }
+        return R.ok(voPage);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R editQuestnaire(QuestnaireVO questnaireVO) {
+        Long queId = questnaireVO.getId();
+        Long userId = questnaireVO.getUserId();
+        ComActQuestnaireDO questnaireDO = this.questnaireDAO.selectById(queId);
+        if (questnaireDO == null) {
+            return R.fail("未查询到该问卷调查");
+        }
+
+        if (!questnaireDO.getState().equals(1)) {
+            return R.fail("该调查问卷不是待发布状态,不可编辑");
+        }
+
+        if (questnaireVO.getAdverPositionPopup().equals(ComActQuestnaireDO.isOk.yes)) {
+            // 查询当前时间段是否已有弹窗提醒了
+            Integer count = questnaireDAO.getAdvPopupCount(questnaireVO.getCommunityId(), questnaireVO.getStartTime(),
+                questnaireVO.getEndTime(), queId);
+            if (count > 0) {
+                return R.fail("所选时间段已设置了问卷调查弹窗,暂不支持再次添加!");
+            }
+        }
+
+        // 更新调查问卷信息
+        Date nowDate = new Date();
+        BeanUtils.copyProperties(questnaireVO, questnaireDO);
+        questnaireDO.setState(ComActQuestnaireDO.state.dfb);
+        questnaireDO.setTitle(questnaireVO.getTitle());
+        questnaireDO.setUpdateBy(userId);
+        questnaireDO.setUpdateAt(nowDate);
+        Date startDate = DateUtils.stringToDate(questnaireVO.getStartTime(), DateUtils.ymdhms_format);
+        if (startDate != null && startDate.getTime() <= nowDate.getTime()) {
+            questnaireDO.setState(ComActQuestnaireDO.state.dyz);
+            questnaireDO.setPublishTime(nowDate);
+        }
+        Date endDate = DateUtils.stringToDate(questnaireVO.getEndTime(), DateUtils.ymdhms_format);
+        if (endDate != null && endDate.getTime() <= nowDate.getTime()) {
+            questnaireDO.setState(ComActQuestnaireDO.state.yjs);
+        }
+        questnaireDO.setStartTime(startDate);
+        questnaireDO.setEndTime(endDate);
+        if (questnaireVO.getIdentity().equals(QuestnaireVO.identity.jm)) {
+            questnaireDO.setForMasses(ComActQuestnaireDO.isOk.yes);
+        } else if (questnaireVO.getIdentity().equals(QuestnaireVO.identity.dy)) {
+            questnaireDO.setForParty(ComActQuestnaireDO.isOk.yes);
+        } else if (questnaireVO.getIdentity().equals(QuestnaireVO.identity.zyz)) {
+            questnaireDO.setForVolunteer(ComActQuestnaireDO.isOk.yes);
+        }
+
+        if (questnaireVO.getIsRelease() != null && questnaireVO.getIsRelease().equals(1)) {
+            questnaireDO.setStartTime(nowDate);
+        }
+        // 统计该调查问卷填报题目数量
+        int count = 0;
+        List<QuestnaiteSubVO> questnaiteSubVOS = JSON.parseArray(questnaireVO.getJsonObject(), QuestnaiteSubVO.class);
+        if (!questnaiteSubVOS.isEmpty()) {
+            count = questnaiteSubVOS.size();
+        }
+        questnaireDO.setCount(count);
+        questnaireDO.setJsonObject(questnaireVO.getJsonObject());
+        questnaireDAO.updateById(questnaireDO);
+        // 删除原调查问卷题目以及选项,重新进行新增
+        questnaireDAO.deleteQuesSubAll(queId);
+        questnaireDAO.deleteQuesSubAll2(queId);
+        // 重新新增题目以及题目选项
+        if (!questnaiteSubVOS.isEmpty()) {
+            questnaiteSubVOS.forEach(sub -> {
+                ComActQuestnaireSubDO comActQuestnaireSubDO = new ComActQuestnaireSubDO();
+                comActQuestnaireSubDO.setType(sub.getType());
+                comActQuestnaireSubDO.setContent(sub.getLabel());
+                comActQuestnaireSubDO.setSort(sub.getSort());
+                comActQuestnaireSubDO.setKey(sub.getKey());
+                comActQuestnaireSubDO.setQueId(queId);
+                comActQuestnaireSubDO.setCreateBy(userId);
+                questnaireSubDAO.insert(comActQuestnaireSubDO);
+                ArrayList<ComActQuestnaireSubSelectionDO> subSelectionList = Lists.newArrayList();
+                if (sub.getOptions() != null && !sub.getOptions().isEmpty()) {
+                    List<QuestnaiteSubSelectionVO> subOptions = sub.getOptions();
+                    for (int i = 0; i < subOptions.size(); i++) {
+                        QuestnaiteSubSelectionVO subSelect = subOptions.get(i);
+                        ComActQuestnaireSubSelectionDO subSelectionDO = new ComActQuestnaireSubSelectionDO();
+                        subSelectionDO.setQueSubId(comActQuestnaireSubDO.getId());
+                        if (subSelect.getType().equals(1)) {
+                            // 添加选项名称
+                            subSelectionDO.setOptionName(subSelect.getOptionName());
+                        } else {
+                            subSelectionDO.setOptionName(String.valueOf(Character.toChars('A' + i)));
+                        }
+                        subSelectionDO.setKey(subSelect.getKey());
+                        subSelectionDO.setContent(subSelect.getLabel());
+                        subSelectionDO.setQueId(queId);
+                        subSelectionDO.setCreateBy(userId);
+                        subSelectionDO.setType(subSelect.getType());
+                        subSelectionList.add(subSelectionDO);
+                    }
+                }
+                subSelectionService.saveBatch(subSelectionList);
+            });
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R editQuestnaireDO(EditComActQuestnaireVo editComActQuestnaireVo) {
+        Long userId = editComActQuestnaireVo.getUserId();
+        LambdaQueryWrapper<ComActQuestnaireDO> subParam = new LambdaQueryWrapper<ComActQuestnaireDO>()
+            .eq(ComActQuestnaireDO::getId, editComActQuestnaireVo.getQuestId());
+        ComActQuestnaireDO questDO = questnaireDAO.selectOne(subParam);
+        if (questDO == null) {
+            return R.fail("未查询到调查问卷记录");
+        }
+        if (editComActQuestnaireVo.getType().equals(EditComActQuestnaireVo.type.jx)) {
+            questDO.setEndTime(DateUtils.stringToDate(editComActQuestnaireVo.getEndTime(), DateUtils.ymdhms_format));
+            questDO.setState(ComActQuestnaireDO.state.dyz);
+        } else if (editComActQuestnaireVo.getType().equals(EditComActQuestnaireVo.type.tz)) {
+            questDO.setState(ComActQuestnaireDO.state.yjs);
+        } else if (editComActQuestnaireVo.getType().equals(EditComActQuestnaireVo.type.fb)) {
+            questDO.setState(ComActQuestnaireDO.state.dyz);
+            questDO.setStartTime(new Date());
+        }
+        questDO.setUpdateBy(userId);
+        questDO.setUpdateAt(new Date());
+        if (questnaireDAO.updateById(questDO) > 0) {
+            return R.ok();
+        } else {
+            return R.fail();
+        }
+    }
+
+    @Override
+    public R deleteQuestnaire(Long questId, Long userId) {
+        ComActQuestnaireDO queDO = questnaireDAO.selectById(questId);
+        if (queDO == null) {
+            return R.fail("未查询到调查问卷记录");
+        }
+//        if (!queDO.getState().equals(ComActQuestnaireDO.state.dfb) ) {
+
+//        return R.fail("该调查问卷不是待发布状态,不可删除");
+        if (queDO.getState().equals(ComActQuestnaireDO.state.dyz) ) {
+            return R.fail("该调查问卷不是待发布状态或已结束状态,不可删除");
+        }
+        queDO.setUpdateBy(userId);
+        queDO.setUpdateAt(new Date());
+        queDO.setIsHide(1);
+        if (questnaireDAO.updateById(queDO) > 0) {
+            return R.ok();
+        } else {
+            return R.fail();
+        }
+    }
+
+    @Override
+    public R statQuestnaire(Long questId) {
+        ComActQuestnaireDO comActQuestnaireDO = questnaireDAO.selectOne(new QueryWrapper<ComActQuestnaireDO>().lambda()
+            .eq(ComActQuestnaireDO::getId, questId).eq(ComActQuestnaireDO::getIsHide, 0));
+
+        if (comActQuestnaireDO == null) {
+            return R.fail("问卷已删除!");
+        }
+
+        QuestnaireAnswerStatVO usersAnswerStatVO = new QuestnaireAnswerStatVO();
+        // 问卷信息
+        ComActQuestnaireVO comActQuestnaireVO = new ComActQuestnaireVO();
+        BeanUtils.copyProperties(comActQuestnaireDO, comActQuestnaireVO);
+        usersAnswerStatVO.setQuestnaire(comActQuestnaireVO);
+
+        // 问卷题目列表
+        List<ComActQuestnaireSubDO> comActQuestnaireSubDOList = questnaireSubDAO.selectList(
+            new QueryWrapper<ComActQuestnaireSubDO>().lambda().eq(ComActQuestnaireSubDO::getQueId, questId));
+        // 题目统计信息
+        List<UserSubAnswerSelectionStatVO> usearSubAnswerSelectionStatVOList =
+            questnaireAnswerContentDAO.selectQuestnaireStat(questId);
+
+        List<UsersSubAnswerStatVO> usersSubAnswerStatVOList = new ArrayList<>();
+
+        comActQuestnaireSubDOList.forEach(comActQuestnaireSubDO -> {
+            UsersSubAnswerStatVO usersSubAnswerStatVO = new UsersSubAnswerStatVO();
+
+            ComActQuestnaireSubVO comActQuestnaireSubVO = new ComActQuestnaireSubVO();
+            BeanUtils.copyProperties(comActQuestnaireSubDO, comActQuestnaireSubVO);
+            usersSubAnswerStatVO.setQuestSubVO(comActQuestnaireSubVO);
+
+            List<UserSubAnswerSelectionStatVO> userSubAnswerSelectionStatVOList = new ArrayList<>();
+            usersSubAnswerStatVO.setTotal(0);
+
+            usearSubAnswerSelectionStatVOList.forEach(stat -> {
+                if (stat.getSubId().equals(comActQuestnaireSubDO.getId()) && stat.getTotal() > 0) {
+                    userSubAnswerSelectionStatVOList.add(stat);
+                }
+            });
+            usersSubAnswerStatVO.setUsersAnswer(userSubAnswerSelectionStatVOList);
+            Integer count = questnaireAnswerContentDAO
+                .selectCount(new QueryWrapper<ComActQuestnaireAnswerContentDO>().select(" DISTINCT sub_id, user_id ")
+                    .lambda().eq(ComActQuestnaireAnswerContentDO::getSubId, comActQuestnaireSubDO.getId()));
+            usersSubAnswerStatVO.setTotal(count);
+            usersSubAnswerStatVOList.add(usersSubAnswerStatVO);
+        });
+        usersAnswerStatVO.setUsersSubAnswerStat(usersSubAnswerStatVOList);
+        return R.ok(usersAnswerStatVO);
+    }
+
+    @Override
+    public R infoQuestnaire(Long questId) {
+        return answerInfoQuestnaire(null, questId);
+    }
+
+    @Override
+    public R answerInfoQuestnaire(Long userId, Long questId) {
+        ComActQuestnaireDO comActQuestnaireDO = questnaireDAO.selectOne(new QueryWrapper<ComActQuestnaireDO>().lambda()
+            .eq(ComActQuestnaireDO::getId, questId).eq(ComActQuestnaireDO::getIsHide, 0));
+        if (comActQuestnaireDO == null) {
+            return R.fail("问卷不存在!");
+        }
+
+        UsersAnswerVO usersAnswerVO = new UsersAnswerVO();
+        ComActQuestnaireVO comActQuestnaireVO = new ComActQuestnaireVO();
+        BeanUtils.copyProperties(comActQuestnaireDO, comActQuestnaireVO);
+        usersAnswerVO.setQuestnaire(comActQuestnaireVO);
+
+        List<ComActQuestnaireSubDO> list = questnaireSubDAO.selectList(
+            new QueryWrapper<ComActQuestnaireSubDO>().lambda().eq(ComActQuestnaireSubDO::getQueId, questId));
+        list.sort(Comparator.comparing(ComActQuestnaireSubDO::getSort));
+        List<UsersSubAnswerVO> usersSubAnswerVOList = new ArrayList<>();
+
+        list.forEach(comActQuestnaireSubDO -> {
+            UsersSubAnswerVO usersSubAnswerVO = new UsersSubAnswerVO();
+            // 问卷调查题目
+            ComActQuestnaireSubVO comActQuestnaireSubVO = new ComActQuestnaireSubVO();
+            BeanUtils.copyProperties(comActQuestnaireSubDO, comActQuestnaireSubVO);
+            usersSubAnswerVO.setQuestSubVO(comActQuestnaireSubVO);
+
+            // 问卷调查题目-选项
+            Long subId = comActQuestnaireSubDO.getId();
+            List<ComActQuestnaireSubSelectionDO> comActQuestnaireSubSelectionDOs =
+                questnaireSubSelectionDAO.selectList(new QueryWrapper<ComActQuestnaireSubSelectionDO>().lambda()
+                    .eq(ComActQuestnaireSubSelectionDO::getQueSubId, subId));
+
+            List<ComActQuestnaireSubSelectionVO> comActQuestnaireSubSelectionVOs = new ArrayList<>();
+            comActQuestnaireSubSelectionDOs.forEach(comActQuestnaireSubSelectionDO -> {
+                ComActQuestnaireSubSelectionVO comActQuestnaireSubSelectionVO = new ComActQuestnaireSubSelectionVO();
+                BeanUtils.copyProperties(comActQuestnaireSubSelectionDO, comActQuestnaireSubSelectionVO);
+                comActQuestnaireSubSelectionVOs.add(comActQuestnaireSubSelectionVO);
+            });
+            usersSubAnswerVO.setQuestSelectionList(comActQuestnaireSubSelectionVOs);
+            // 用户回答
+            if (userId != null) {
+                List<ComActQuestnaireAnswerContentDO> questnaireAnswerContentDOList =
+                    questnaireAnswerContentDAO.selectList(new QueryWrapper<ComActQuestnaireAnswerContentDO>().lambda()
+                        .eq(ComActQuestnaireAnswerContentDO::getUserId, userId)
+                        .eq(ComActQuestnaireAnswerContentDO::getSubId, subId));
+
+                List<ComActQuestnaireAnswerContentVO> questnaireAnswerContentVOList = new ArrayList<>();
+                questnaireAnswerContentDOList.forEach(questnaireAnswerContentDO -> {
+                    ComActQuestnaireAnswerContentVO comActQuestnaireSubSelectionVO =
+                        new ComActQuestnaireAnswerContentVO();
+                    BeanUtils.copyProperties(questnaireAnswerContentDO, comActQuestnaireSubSelectionVO);
+                    questnaireAnswerContentVOList.add(comActQuestnaireSubSelectionVO);
+                });
+
+                usersSubAnswerVO.setUsersAnswer(questnaireAnswerContentVOList);
+            }
+            usersSubAnswerVOList.add(usersSubAnswerVO);
+        });
+        usersAnswerVO.setUsersSubAnswer(usersSubAnswerVOList);
+
+        return R.ok(usersAnswerVO);
+    }
+
+    @Override
+    public R answerResultList(Long questId) {
+        QuestnaireAnswersDTO questnaireAnswersDTO = new QuestnaireAnswersDTO();
+        /**
+         * 查询题目
+         */
+        List<ComActQuestnaireSubDO> list = questnaireSubDAO.selectList(
+            new QueryWrapper<ComActQuestnaireSubDO>().lambda()
+                    .eq(ComActQuestnaireSubDO::getQueId, questId).orderByAsc(ComActQuestnaireSubDO::getCreateAt));
+        List<ComActQuestnaireSubVO> listSubVo = new ArrayList<>();
+        list.forEach(subDo -> {
+            if(!subDo.getType().equals(ComActQuestnaireSubDO.type.describe)){
+                ComActQuestnaireSubVO comActQuestnaireSubVO = new ComActQuestnaireSubVO();
+                BeanUtils.copyProperties(subDo, comActQuestnaireSubVO);
+                listSubVo.add(comActQuestnaireSubVO);
+            }
+        });
+        questnaireAnswersDTO.setSubs(listSubVo);
+        /**
+         * 查询用户回答
+         */
+        List<ComActQuestnaireAnswerContentVO> questnaireAnswerContentDOList =
+            questnaireAnswerContentDAO.selectListByQuestnaire(questId);
+        questnaireAnswersDTO.setAnswers(questnaireAnswerContentDOList);
+
+        return R.ok(questnaireAnswersDTO);
+    }
+
+    @Override
+    public R qaQeustDetails(PageQuestnaireSubDetailsDTO pageQuestnaireSubDetailsDTO) {
+        Page userPage = new Page(pageQuestnaireSubDetailsDTO.getPageNum(), pageQuestnaireSubDetailsDTO.getPageSize());
+        IPage<ComActQuestnaireAnswerContentVO> doPager =
+            questnaireAnswerContentDAO.selectVoByPage(userPage, pageQuestnaireSubDetailsDTO);
+        return R.ok(doPager);
+    }
+
+    @Override
+    public R pageQuestnaireAnswer(PageQuestnaireAnswerDTO pageQuestnaireAnswerDTO) {
+        if (pageQuestnaireAnswerDTO.getPageNum() == null || pageQuestnaireAnswerDTO.getPageNum().longValue() == 0) {
+            pageQuestnaireAnswerDTO.setPageNum(1L);
+        }
+        if (pageQuestnaireAnswerDTO.getPageSize() == null || pageQuestnaireAnswerDTO.getPageSize().longValue() == 0) {
+            pageQuestnaireAnswerDTO.setPageSize(10L);
+        }
+        Page userPage = new Page(pageQuestnaireAnswerDTO.getPageNum(), pageQuestnaireAnswerDTO.getPageSize());
+        IPage<ComActQuestnaireAnswerContentVO> doPager =
+            questnaireAnswerContentDAO.selectAnswersByPage(userPage, pageQuestnaireAnswerDTO);
+        return R.ok(doPager);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R usersAnsweQuestnaire(UsersAnswerQuestnaireVO answerQuestnaireVO) {
+        if (answerQuestnaireVO == null || answerQuestnaireVO.getJsonObject() == null) {
+            return R.fail("数据为空!");
+        }
+        Long userId = answerQuestnaireVO.getUserId();
+        Long questId = answerQuestnaireVO.getQuestId();
+        Date nowDate = new Date();
+
+        ComActQuestnaireDO questnaireDO = questnaireDAO.selectById(questId);
+        if (questnaireDO == null) {
+            return R.fail("调查问卷不存在!");
+        }
+
+        if (!questnaireDO.getState().equals(ComActQuestnaireDO.state.dyz)) {
+            return R.fail("该调查问卷已结束,不可提交!");
+        }
+
+        ComActQuestnaireUserAnswerDO oldUserAnswerDO =
+            comActQuestnaireUserAnswerMapper.selectOne(new QueryWrapper<ComActQuestnaireUserAnswerDO>().lambda()
+                .eq(ComActQuestnaireUserAnswerDO::getQuestnaireId, questId)
+                .eq(ComActQuestnaireUserAnswerDO::getUserId, userId));
+        if (oldUserAnswerDO != null) {
+            return R.fail("您已填写该问卷,不可重复提交");
+        }
+
+        // 查询填报人员信息
+        R<LoginUserInfoVO> userResult = userService.getUserInfoByUserId(userId + "");
+        if (!R.isOk(userResult)) {
+            log.error("填写问卷调查失败,未查询到用户信息");
+            return R.fail("填写失败");
+        }
+        LoginUserInfoVO userInfo = userResult.getData();
+        if (questnaireDO.getForParty().equals(ComActQuestnaireDO.isOk.yes)) {
+            if (!userInfo.getIsPartymember().equals(1)) {
+                return R.fail("您还未进行党员认证,无法填报");
+            }
+        }
+        if (questnaireDO.getForVolunteer().equals(ComActQuestnaireDO.isOk.yes)) {
+            if (!userInfo.getIsVolunteer().equals(1)) {
+                return R.fail("您还未进行志愿者认证,无法填报");
+            }
+        }
+
+        List<ComActQuestnaireAnswerContentDO> answerContentList = new ArrayList<>();
+
+        // 解析用户上传json数据
+        List<QuestnaiteSubVO> questnaiteSubVOS =
+            JSON.parseArray(answerQuestnaireVO.getJsonObject(), QuestnaiteSubVO.class);
+        if (!questnaiteSubVOS.isEmpty()) {
+            for (QuestnaiteSubVO questnaiteSub : questnaiteSubVOS) {
+                // 查询用户填写题目
+                ComActQuestnaireSubDO questnaireSubDO = questnaireSubDAO.selectOne(
+                    new QueryWrapper<ComActQuestnaireSubDO>().lambda().eq(ComActQuestnaireSubDO::getQueId, questId)
+                        .eq(ComActQuestnaireSubDO::getKey, questnaiteSub.getKey()));
+                if (questnaireSubDO == null) {
+                    log.error("未查询到调查问卷题目,题目名称:" + questnaiteSub.getLabel() + "题目key:" + questnaiteSub.getKey());
+                    continue;
+                }
+
+                Long queSubId = questnaireSubDO.getId();
+                // 根据上传的类型查询不同的题目选项
+                if (questnaiteSub.getType().equals(QuestnaiteSubVO.type.danxuan) || questnaiteSub.getType().equals(QuestnaiteSubVO.type.imgselect)) {
+                    // 单选题处理
+                    ComActQuestnaireSubSelectionDO subSelectionDO =
+                        questnaireSubSelectionDAO.selectOne(new QueryWrapper<ComActQuestnaireSubSelectionDO>().lambda()
+                            .eq(ComActQuestnaireSubSelectionDO::getQueSubId, queSubId)
+                            .eq(ComActQuestnaireSubSelectionDO::getQueId, questId)
+                            .eq(ComActQuestnaireSubSelectionDO::getKey, questnaiteSub.getValues()));
+                    if (subSelectionDO == null) {
+                        log.error("未查询到调查问卷选项,题目名称:" + questnaiteSub.getLabel() + "选项key:" + questnaiteSub.getValues());
+                        continue;
+                    }
+
+                    ComActQuestnaireAnswerContentDO answerContentDO = new ComActQuestnaireAnswerContentDO();
+                    answerContentDO.setUserId(userId);
+                    answerContentDO.setCreateAt(nowDate);
+                    answerContentDO.setCreateBy(userId);
+                    answerContentDO.setSelectionId(subSelectionDO.getId());
+                    answerContentDO.setSubId(queSubId);
+                    answerContentDO.setType(1);
+                    answerContentDO.setChoice(subSelectionDO.getOptionName());
+                    answerContentDO.setAnswerContent(subSelectionDO.getContent());
+                    answerContentList.add(answerContentDO);
+                } else if (questnaiteSub.getType().equals(QuestnaiteSubVO.type.duoxuan)) {
+                    // 多选题处理
+                    String values = questnaiteSub.getValues();
+                    String[] value = values.split(",");
+                    for (int i = 0; i < value.length; i++) {
+                        ComActQuestnaireSubSelectionDO subSelectionDO =
+                            questnaireSubSelectionDAO.selectOne(new QueryWrapper<ComActQuestnaireSubSelectionDO>()
+                                .lambda().eq(ComActQuestnaireSubSelectionDO::getQueSubId, queSubId)
+                                .eq(ComActQuestnaireSubSelectionDO::getQueId, questId)
+                                .eq(ComActQuestnaireSubSelectionDO::getKey, value[i]));
+                        if (subSelectionDO == null) {
+                            log.error(
+                                "未查询到调查问卷选项,题目名称:" + questnaiteSub.getLabel() + "选项key:" + questnaiteSub.getValues());
+                            continue;
+                        }
+                        ComActQuestnaireAnswerContentDO answerContentDO = new ComActQuestnaireAnswerContentDO();
+                        answerContentDO.setUserId(userId);
+                        answerContentDO.setCreateAt(nowDate);
+                        answerContentDO.setCreateBy(userId);
+                        answerContentDO.setSelectionId(subSelectionDO.getId());
+                        answerContentDO.setSubId(queSubId);
+                        answerContentDO.setType(1);
+                        answerContentDO.setChoice(subSelectionDO.getOptionName());
+                        answerContentDO.setAnswerContent(subSelectionDO.getContent());
+                        answerContentList.add(answerContentDO);
+                    }
+                } else {
+                    // 问答题处理
+                    String values = questnaiteSub.getValues();
+                    ComActQuestnaireAnswerContentDO answerContentDO = new ComActQuestnaireAnswerContentDO();
+                    answerContentDO.setUserId(userId);
+                    answerContentDO.setCreateAt(nowDate);
+                    answerContentDO.setCreateBy(userId);
+                    answerContentDO.setSubId(queSubId);
+                    answerContentDO.setType(2);
+                    answerContentDO.setAnswerContent(values);
+                    answerContentList.add(answerContentDO);
+                }
+            }
+        }
+        // 新增用户填写的答卷
+        if (!answerContentList.isEmpty()) {
+            // 更新回答用户数量
+            Integer joinCount = questnaireDO.getJoinCount();
+            questnaireDO.setJoinCount(joinCount != null ? joinCount + 1 : 1);
+            questnaireDAO.updateById(questnaireDO);
+
+            // 新增用户答题记录
+            ComActQuestnaireUserAnswerDO userAnswerDO = new ComActQuestnaireUserAnswerDO();
+            userAnswerDO.setQuestnaireId(questId);
+            userAnswerDO.setUserId(userId);
+            userAnswerDO.setCreateAt(nowDate);
+            userAnswerDO.setJsonObject(answerQuestnaireVO.getJsonObject());
+            comActQuestnaireUserAnswerMapper.insert(userAnswerDO);
+
+            answerContentList.forEach(answerContent -> {
+                answerContent.setAnswerId(userAnswerDO.getId());
+            });
+            answerContentService.saveBatch(answerContentList);
+
+        }
+        return R.ok();
+    }
+
+    /**
+     * 社区后台-查询问卷调查详情
+     * 
+     * @param questId
+     *            问卷id
+     * @return 问卷调查详情
+     */
+    @Override
+    public R getQuesDetailAdmin(Long questId) {
+        QuestnaireDetailAdminVO result = questnaireDAO.getQuesDetailAdmin(questId);
+        if (result == null) {
+            return R.fail("未查询到该记录");
+        }
+        return R.ok(result);
+    }
+
+    /**
+     * 小程序-问卷调查详情
+     * 
+     * @param userId
+     *            用户id
+     * @param questId
+     *            问卷id
+     * @return 问卷调查详情
+     */
+    @Override
+    public R getQuesDetail(Long questId, Long userId) {
+        QuestnaireDetailAdminVO result = questnaireDAO.getQuesDetail(questId, userId);
+        if (result == null) {
+            return R.fail("未查询到该记录");
+        }
+        ComActQuestnaireUserAnswerDO oldUserAnswerDO =
+            comActQuestnaireUserAnswerMapper.selectOne(new QueryWrapper<ComActQuestnaireUserAnswerDO>().lambda()
+                .eq(ComActQuestnaireUserAnswerDO::getQuestnaireId, questId)
+                .eq(ComActQuestnaireUserAnswerDO::getUserId, userId));
+        if (oldUserAnswerDO != null) {
+            result.setIsOk(1);
+        }
+
+        return R.ok(result);
+    }
+
+    /**
+     * 问卷调查统计汇总
+     * 
+     * @param summaryDTO
+     *            请求参数
+     * @return 统计汇总
+     */
+    @Override
+    public R statisticsSummary(StatisticsSummaryDTO summaryDTO) {
+        IPage<QuestnaireStatisticsSummaryAdminVO> summaryAdminList = questnaireDAO
+            .getStatisticsSummaryAdmin(new Page(summaryDTO.getPageNum(), summaryDTO.getPageSize()), summaryDTO);
+        summaryAdminList.getRecords().forEach(summary -> {
+            if (summary.getAllCount().equals(0)) {
+                summary.setTag(BigDecimal.ZERO);
+            } else {
+                summary.setTag(BigDecimal.valueOf(summary.getCount())
+                    .divide(BigDecimal.valueOf(summary.getAllCount()), 2, RoundingMode.HALF_UP)
+                    .multiply(BigDecimal.valueOf(100)));
+            }
+        });
+        return R.ok(summaryAdminList);
+    }
+
+    /**
+     * 问卷调查统计汇总导出数据查询
+     * 
+     * @param questId
+     *            调查问卷id
+     * @return 调查统计汇总导出数据
+     */
+    @Override
+    public R statisticsSummaryExport(Long questId) {
+        List<QuestnaireStatisticsSummaryExcelAdminVO> summaryExcelList =
+            questnaireDAO.getStatisticsSummaryExcelAdmin(questId);
+        summaryExcelList.forEach(summary -> {
+            if (summary.getAllCount().equals(0)) {
+                summary.setTag(BigDecimal.ZERO);
+            } else {
+                summary.setTag(BigDecimal.valueOf(summary.getCount())
+                    .divide(BigDecimal.valueOf(summary.getAllCount()), 2, RoundingMode.HALF_UP)
+                    .multiply(BigDecimal.valueOf(100)));
+            }
+        });
+        return R.ok(summaryExcelList);
+    }
+
+    /**
+     * 问卷调查统计汇总表头统计
+     * 
+     * @param questId
+     *            调查问卷id
+     * @return 问卷调查统计汇总表头统计数据
+     */
+    @Override
+    public R statisticsSummaryHeader(Long questId, Long communityId) {
+        QuestnaireStatisticsSummaryHeaderAdminVO summaryHeaderAdminVO =
+            this.questnaireDAO.statisticsSummaryHeader(questId, communityId);
+        if (summaryHeaderAdminVO != null) {
+            if (!summaryHeaderAdminVO.getUserCount().equals(0)) {
+                BigDecimal nub1 = BigDecimal.valueOf(summaryHeaderAdminVO.getAllCount());
+                BigDecimal nub2 = BigDecimal.valueOf(summaryHeaderAdminVO.getUserCount());
+                BigDecimal result = nub1.divide(nub2, 2, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
+                summaryHeaderAdminVO.setTag(result);
+            }
+        }
+        return R.ok(summaryHeaderAdminVO);
+    }
+
+    /**
+     * 定时任务检测待发布,调研中的问卷调查状态
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R timedTaskQuestionnaire() {
+        Date nowDate = new Date();
+        // 查询所有开始时间已经超过当前时间的待发布状态调查问卷
+        List<ComActQuestnaireDO> questnaireDOList = questnaireDAO.selectList(new QueryWrapper<ComActQuestnaireDO>()
+            .lambda().eq(ComActQuestnaireDO::getState, ComActQuestnaireDO.state.dfb)
+            .eq(ComActQuestnaireDO::getIsHide, 0).le(ComActQuestnaireDO::getStartTime, nowDate));
+        questnaireDOList.forEach(questnaire -> {
+            questnaire.setState(ComActQuestnaireDO.state.dyz);
+            questnaire.setPublishTime(nowDate);
+            questnaireDAO.updateById(questnaire);
+        });
+
+        // 查询所有结束时间已经超过当前时间的调研中状态调查问卷
+        List<ComActQuestnaireDO> questnaireList = questnaireDAO.selectList(new QueryWrapper<ComActQuestnaireDO>()
+            .lambda().eq(ComActQuestnaireDO::getState, ComActQuestnaireDO.state.dyz)
+            .eq(ComActQuestnaireDO::getIsHide, 0).le(ComActQuestnaireDO::getEndTime, nowDate));
+        questnaireList.forEach(questnaire -> {
+            questnaire.setState(ComActQuestnaireDO.state.yjs);
+            questnaireDAO.updateById(questnaire);
+        });
+        return R.ok();
+    }
+
+    /**
+     * 小程序-新增问卷调查浏览数量
+     * 
+     * @param questId
+     *            问卷调查id
+     * @return 增加结果
+     */
+    @Override
+    public R addQuestnaireView(Long questId) {
+        ComActQuestnaireDO questnaireDO = questnaireDAO.selectById(questId);
+        if (questnaireDO != null) {
+            questnaireDO.setViewNum(questnaireDO.getViewNum() + 1);
+            questnaireDAO.updateById(questnaireDO);
+        }
+        return R.ok();
+    }
+
+    /**
+     * 小程序-用户弹窗添加不在提醒接口
+     * 
+     * @param questId
+     *            问卷id
+     * @param userId
+     *            用户id
+     * @return 添加结果
+     */
+    @Override
+    public R addNoNotice(Long questId, Long userId) {
+        questnaireDAO.addNoNotice(questId, userId);
+        return R.ok();
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireSubSelectionServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireSubSelectionServiceImpl.java
new file mode 100644
index 0000000..887bf78
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireSubSelectionServiceImpl.java
@@ -0,0 +1,17 @@
+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.ComActQuestnaireSubSelectionDAO;
+import com.panzhihua.service_community.model.dos.ComActQuestnaireSubSelectionDO;
+
+/**
+ * @Author: llming
+ * @Description: 问卷题目
+ */
+@Service
+public class ComActQuestnaireSubSelectionServiceImpl
+    extends ServiceImpl<ComActQuestnaireSubSelectionDAO, ComActQuestnaireSubSelectionDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireSubServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireSubServiceImpl.java
new file mode 100644
index 0000000..af01cb9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireSubServiceImpl.java
@@ -0,0 +1,16 @@
+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.ComActQuestnaireSubDAO;
+import com.panzhihua.service_community.model.dos.ComActQuestnaireSubDO;
+
+/**
+ * @Author: llming
+ * @Description: 问卷题目
+ */
+@Service
+public class ComActQuestnaireSubServiceImpl extends ServiceImpl<ComActQuestnaireSubDAO, ComActQuestnaireSubDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireUserAnswerServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireUserAnswerServiceImpl.java
new file mode 100644
index 0000000..fba69e4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActQuestnaireUserAnswerServiceImpl.java
@@ -0,0 +1,23 @@
+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.ComActQuestnaireUserAnswerMapper;
+import com.panzhihua.service_community.model.dos.ComActQuestnaireUserAnswerDO;
+import com.panzhihua.service_community.service.ComActQuestnaireUserAnswerService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-08-17 17:42:06
+ * @describe 问卷调查用户答题记录服务实现类
+ */
+@Slf4j
+@Service
+public class ComActQuestnaireUserAnswerServiceImpl
+    extends ServiceImpl<ComActQuestnaireUserAnswerMapper, ComActQuestnaireUserAnswerDO>
+    implements ComActQuestnaireUserAnswerService {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActRafflePrizeServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActRafflePrizeServiceImpl.java
new file mode 100644
index 0000000..4b96698
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActRafflePrizeServiceImpl.java
@@ -0,0 +1,28 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.ComActRafflePrize;
+import com.panzhihua.service_community.dao.ComActRafflePrizeDao;
+import com.panzhihua.service_community.service.ComActRafflePrizeService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * 抽奖活动奖品表(ComActRafflePrize)表服务实现类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 抽奖活动奖品表相关功能
+ *
+ * @author zzj
+ * @since 2022-02-18 14:31:45
+ */
+@Slf4j
+@Service
+public class ComActRafflePrizeServiceImpl extends ServiceImpl<ComActRafflePrizeDao, ComActRafflePrize> implements ComActRafflePrizeService {
+
+    @Override
+    public R pageList(CommonPage commonPage) {
+        return null;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActRaffleRecordServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActRaffleRecordServiceImpl.java
new file mode 100644
index 0000000..15e6b7b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActRaffleRecordServiceImpl.java
@@ -0,0 +1,67 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.raffle.ComActRafflePrizeCount;
+import com.panzhihua.common.model.vos.community.raffle.ComActRaffleRecordVO;
+import com.panzhihua.common.model.vos.community.warehouse.QRCodeVO;
+import com.panzhihua.service_community.dao.ComActRafflePrizeDao;
+import com.panzhihua.service_community.entity.ComActRaffleRecord;
+import com.panzhihua.service_community.dao.ComActRaffleRecordDao;
+import com.panzhihua.service_community.service.ComActRaffleRecordService;
+import com.panzhihua.service_community.util.QRCodeUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+/**
+ * 抽奖活动中奖记录表(ComActRaffleRecord)表服务实现类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 抽奖活动中奖记录表相关功能
+ *
+ * @author zzj
+ * @since 2022-02-18 14:32:02
+ */
+@Slf4j
+@Service
+public class ComActRaffleRecordServiceImpl extends ServiceImpl<ComActRaffleRecordDao, ComActRaffleRecord> implements ComActRaffleRecordService {
+    @Resource
+    private ComActRafflePrizeDao comActRafflePrizeDao;
+    @Resource
+    private ComActRaffleRecordDao comActRaffleRecordDao;
+
+    @Override
+    public R pageList(CommonPage commonPage) {
+        return R.ok(this.baseMapper.pageList(new Page(commonPage.getPage(),commonPage.getSize()),commonPage));
+    }
+
+    @Override
+    public R queryPrize(Long id) {
+        ComActRafflePrizeCount comActRafflePrizeCount= comActRafflePrizeDao.selectCount(id);
+        comActRafflePrizeCount.setComActRafflePrizeVOList(comActRafflePrizeDao.selectByRaffleId(id));
+        return R.ok(comActRafflePrizeCount);
+    }
+
+    @Override
+    public R queryQrCode(QRCodeVO qrCodeVO) {
+        ComActRaffleRecordVO comActRaffleRecord=comActRaffleRecordDao.selectOneById((long)qrCodeVO.getId());
+        if(comActRaffleRecord!=null){
+            return R.ok(QRCodeUtil.getBase64QRCode(JSON.toJSONString(qrCodeVO)));
+        }
+        return R.fail("抽奖记录不存在");
+    }
+
+    @Override
+    public R export(CommonPage commonPage) {
+        return R.ok(this.baseMapper.export(commonPage));
+    }
+
+    @Override
+    public R selectById(Long id) {
+        return R.ok(this.baseMapper.selectOneById(id));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActRaffleServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActRaffleServiceImpl.java
new file mode 100644
index 0000000..08139d6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActRaffleServiceImpl.java
@@ -0,0 +1,141 @@
+package com.panzhihua.service_community.service.impl;
+
+import cn.hutool.core.date.DateUnit;
+import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.raffle.ComActRaffleRecordVO;
+import com.panzhihua.common.model.vos.community.raffle.ComActRaffleVO;
+import com.panzhihua.service_community.dao.ComActRafflePrizeDao;
+import com.panzhihua.service_community.dao.ComActRaffleRecordDao;
+import com.panzhihua.service_community.entity.ComActRaffle;
+import com.panzhihua.service_community.dao.ComActRaffleDao;
+import com.panzhihua.service_community.entity.ComActRafflePrize;
+import com.panzhihua.service_community.entity.ComActRaffleRecord;
+import com.panzhihua.service_community.service.ComActRaffleService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.rabbit.core.RabbitTemplate;
+import org.springframework.beans.BeanUtils;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * 抽奖活动表(ComActRaffle)表服务实现类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 抽奖活动表相关功能
+ *
+ * @author zzj
+ * @since 2022-02-18 14:31:20
+ */
+@Slf4j
+@Service
+public class ComActRaffleServiceImpl extends ServiceImpl<ComActRaffleDao, ComActRaffle> implements ComActRaffleService {
+
+    @Resource
+    private ComActRafflePrizeDao comActRafflePrizeDao;
+    @Resource
+    private ComActRaffleRecordDao comActRaffleRecordDao;
+    @Resource
+    private RabbitTemplate rabbitTemplate;
+    @Override
+    public R pageList(CommonPage commonPage) {
+        return R.ok(this.baseMapper.pageList(new Page(commonPage.getPage(),commonPage.getSize()),commonPage));
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R insert(ComActRaffleVO comActRaffleVO) {
+        ComActRaffle comActRaffle=new ComActRaffle();
+        BeanUtils.copyProperties(comActRaffleVO,comActRaffle);
+        comActRaffle.setCreateTime(new Date());
+        comActRaffle.setStatus(0);
+        int count= this.baseMapper.insert(comActRaffle);
+        if(count>0){
+            rabbitTemplate.convertAndSend("raffle.exchange", "raffle.key", comActRaffle, message -> {
+                message.getMessageProperties().setHeader("x-delay", dateToSecond(comActRaffle.getStartTime()));
+                return message;
+            });
+            if(!CollectionUtils.isEmpty(comActRaffleVO.getComActRafflePrizeVOList())){
+                comActRaffleVO.getComActRafflePrizeVOList().forEach(comActRafflePrizeVO -> {
+                    ComActRafflePrize comActRafflePrize=new ComActRafflePrize();
+                    BeanUtils.copyProperties(comActRafflePrizeVO,comActRafflePrize);
+                    comActRafflePrize.setRaffleId(comActRaffle.getId());
+                    comActRafflePrize.setSurplus(comActRafflePrize.getTotal());
+                    comActRafflePrizeDao.insert(comActRafflePrize);
+                });
+            }
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R update(ComActRaffleVO comActRaffleVO) {
+        ComActRaffle comActRaffle=new ComActRaffle();
+        BeanUtils.copyProperties(comActRaffleVO,comActRaffle);
+        comActRaffle.setCreateTime(new Date());
+        comActRaffle.setStatus(0);
+        int count=this.baseMapper.updateById(comActRaffle);
+        if(count>0){
+            if(!CollectionUtils.isEmpty(comActRaffleVO.getComActRafflePrizeVOList())){
+                comActRafflePrizeDao.delete(new QueryWrapper<ComActRafflePrize>().lambda().eq(ComActRafflePrize::getRaffleId,comActRaffle.getId()));
+                comActRaffleVO.getComActRafflePrizeVOList().forEach(comActRafflePrizeVO -> {
+                    ComActRafflePrize comActRafflePrize=new ComActRafflePrize();
+                    BeanUtils.copyProperties(comActRafflePrizeVO,comActRafflePrize);
+                    comActRafflePrize.setRaffleId(comActRaffle.getId());
+                    comActRafflePrize.setSurplus(comActRafflePrize.getTotal());
+                    comActRafflePrizeDao.insert(comActRafflePrize);
+                });
+            }
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R delete(Long id) {
+        int count=this.baseMapper.deleteById(id);
+        if(count>0){
+            comActRafflePrizeDao.delete(new QueryWrapper<ComActRafflePrize>().lambda().eq(ComActRafflePrize::getRaffleId,id));
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    @Override
+    public R selectById(Long id,Long userId) {
+        ComActRaffleVO comActRaffleVO=this.baseMapper.selectById(id);
+        if(comActRaffleVO!=null){
+            comActRaffleVO.setComActRafflePrizeVOList(comActRafflePrizeDao.selectByRaffleId(id));
+        }
+        if(userId!=null){
+          ComActRaffleRecordVO comActRaffleRecordVO=comActRaffleRecordDao.selectByUserId(userId,id);
+          if(comActRaffleRecordVO!=null){
+              comActRaffleVO.setComActRaffleRecordVO(comActRaffleRecordVO);
+              comActRaffleVO.setJoinStatus(0);
+          }
+          else {
+              if(comActRaffleVO.getStatus()==1){
+                  comActRaffleVO.setJoinStatus(1);
+              }
+              else {
+                  comActRaffleVO.setJoinStatus(0);
+              }
+          }
+        }
+        return R.ok(comActRaffleVO);
+    }
+    private Long dateToSecond(Date expireTime){
+        return DateUtil.between(new Date(),expireTime, DateUnit.MS);
+    }
+}
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
new file mode 100644
index 0000000..1ba4fac
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveAnswerContentServiceImpl.java
@@ -0,0 +1,403 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.math.BigDecimal;
+import java.net.URL;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+
+import javax.annotation.Resource;
+import javax.xml.bind.DatatypeConverter;
+
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenStaticsReserve;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenStaticsReserveMonth;
+import com.panzhihua.common.model.vos.community.reserve.*;
+import com.panzhihua.service_community.dao.ComActReserveMapper;
+import com.panzhihua.service_community.dao.ComActReserveRecordMapper;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+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.model.dtos.community.QuestnaireAnswersDTO;
+import com.panzhihua.common.model.dtos.community.reserve.PageReserveRegisterDetailedAdminDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActQuestnaireAnswerContentVO;
+import com.panzhihua.common.model.vos.community.ComActQuestnaireSubVO;
+import com.panzhihua.common.model.vos.community.reserve.ComActReserveRegisterDetailedAnswerVO;
+import com.panzhihua.common.model.vos.community.reserve.ComActReserveRegisterDetailedVO;
+import com.panzhihua.common.model.vos.community.reserve.HomeQuarantineRegisterStatisticsVO;
+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.ComActReserveAnswerContentDO;
+import com.panzhihua.service_community.model.dos.ComActReserveSubDO;
+import com.panzhihua.service_community.service.ComActReserveAnswerContentService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-08-23 10:33:32
+ * @describe 预约登记回答记录内容 服务实现类
+ */
+@Slf4j
+@Service
+public class ComActReserveAnswerContentServiceImpl extends ServiceImpl<ComActReserveAnswerContentMapper, ComActReserveAnswerContentDO> implements ComActReserveAnswerContentService {
+
+    @Resource
+    private ComActReserveSubMapper comActReserveSubMapper;
+    @Resource
+    private ComActReserveRecordMapper comActReserveRecordMapper;
+    @Resource
+    private ComActReserveMapper comActReserveMapper;
+
+    /**
+     * 导出登记明细数据
+     * @param pageReserveRegisterDetailedAdminDTO 登记id
+     * @return  登记明细数据
+     */
+    @Override
+    public R exportRegisterAdmin(PageReserveRegisterDetailedAdminDTO pageReserveRegisterDetailedAdminDTO){
+        QuestnaireAnswersDTO result = new QuestnaireAnswersDTO();
+        result.setSubs(retrieveQuestnaireSub(pageReserveRegisterDetailedAdminDTO));
+
+        //查询用户回答
+        List<ComActQuestnaireAnswerContentVO> vos = this.baseMapper.export(pageReserveRegisterDetailedAdminDTO);
+        vos.forEach(vo->{
+            if(vo.getType()==4){
+                vo.setAnswerContent(vo.getAnswerContent().replaceAll("(?<=\\w{3})\\w(?=\\w{4})", "*"));
+            }
+        });
+        result.setAnswers(vos);
+
+        return R.ok(result);
+    }
+
+    /**
+     * 分页查询登记明细列表
+     * @param detailedAdminDTO  请求参数
+     * @return  登记明细列表
+     */
+    @Override
+    public R registerDetailedListAdmin(PageReserveRegisterDetailedAdminDTO detailedAdminDTO){
+        IPage<HashMap<String,String>> resultPage = new Page<>();
+
+        IPage<ComActReserveRegisterDetailedVO> registerDetailedPage = this.baseMapper.pageRegisterDetailedListAdmin(new Page(detailedAdminDTO.getPageNum(),detailedAdminDTO.getPageSize()),detailedAdminDTO);
+        resultPage.setCurrent(registerDetailedPage.getCurrent());
+        resultPage.setTotal(registerDetailedPage.getTotal());
+        resultPage.setSize(registerDetailedPage.getSize());
+        resultPage.setPages(registerDetailedPage.getPages());
+
+        List<HashMap<String,String>> resultMapList = new ArrayList<>();
+        int nub = 1;
+        if(!registerDetailedPage.getRecords().isEmpty()){
+            for (ComActReserveRegisterDetailedVO registerDetailed:registerDetailedPage.getRecords()) {
+                //渲染序号
+                HashMap<String,String> map = new HashMap<>();
+                map.put("nub",nub + "");
+                //渲染登记时间
+                map.put("time", DateUtils.format(registerDetailed.getCreateAt(),DateUtils.ymdhms_format));
+                //渲染用户昵称
+                map.put("nickName",registerDetailed.getNickName());
+                //查询记录填写答案并装载到数据集中
+                List<ComActReserveRegisterDetailedAnswerVO> registerDetailedAnswerList = this.baseMapper.getRegisterDetailedAnswerList(registerDetailed.getId());
+                if(!registerDetailedAnswerList.isEmpty()){
+                    for (ComActReserveRegisterDetailedAnswerVO detailed:registerDetailedAnswerList) {
+                        if(detailed.getType()==4){
+                            detailed.setAnswerContent(detailed.getAnswerContent().replaceAll("(?<=\\w{3})\\w(?=\\w{4})", "*"));
+                        }
+                        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() + "");
+                resultMapList.add(map);
+                nub++;
+            }
+        }
+        resultPage.setRecords(resultMapList);
+        return R.ok(resultPage);
+    }
+
+    @Override
+    public R registerDetailedListAdminExport(PageReserveRegisterDetailedAdminDTO detailedAdminDTO) {
+        String communityPhone=comActReserveMapper.selectCommunityPhoneByReserveId(detailedAdminDTO.getReserveId());
+        List<ComActReserveRegisterDetailedVO> comActReserveRegisterDetailedVOS = this.baseMapper.pageRegisterDetailedListAdminExport(detailedAdminDTO);
+        if(!comActReserveRegisterDetailedVOS.isEmpty()){
+            List<ReservePdfExportVO> reservePdfExportVOS=new ArrayList<>();
+            comActReserveRegisterDetailedVOS.forEach(comActReserveRegisterDetailedVO -> {
+                List<ComActReserveRegisterDetailedAnswerVO> registerDetailedAnswerList = this.baseMapper.getRegisterDetailedAnswerList(comActReserveRegisterDetailedVO.getId());
+                if(!registerDetailedAnswerList.isEmpty()){
+                    ReservePdfExportVO reservePdfExportVO=new ReservePdfExportVO();
+                    reservePdfExportVO.setAddress(registerDetailedAnswerList.get(0).getAnswerContent());
+                    reservePdfExportVO.setSign(registerDetailedAnswerList.get(1).getAnswerContent());
+                    if(detailedAdminDTO.getPdfType()==1){
+                        reservePdfExportVO.setTime(registerDetailedAnswerList.get(2).getAnswerContent());
+                    }
+                    if(detailedAdminDTO.getPdfType()==2){
+                        reservePdfExportVO.setPhone(registerDetailedAnswerList.get(2).getAnswerContent());
+                        reservePdfExportVO.setTime(registerDetailedAnswerList.get(3).getAnswerContent());
+                        reservePdfExportVO.setCommunityPhone(communityPhone);
+                    }
+                    reservePdfExportVOS.add(reservePdfExportVO);
+                }
+            });
+            return R.ok(reservePdfExportVOS);
+        }
+        return R.ok();
+    }
+
+    /**
+     * 分页查询居家隔离统计
+     * @param detailedAdminDTO
+     * @return
+     */
+    @Override
+    public R pageRegisterHomeQuarantine(PageReserveRegisterDetailedAdminDTO detailedAdminDTO) {
+        IPage<HashMap<String,String>> resultPage = new Page<>();
+
+        Page page = new Page(detailedAdminDTO.getPageNum(), detailedAdminDTO.getPageSize());
+        IPage<String> statisticsVOIPage = this.baseMapper.pageRegisterHomeQuarantine(page, detailedAdminDTO);
+
+        resultPage.setCurrent(statisticsVOIPage.getCurrent());
+        resultPage.setTotal(statisticsVOIPage.getTotal());
+        resultPage.setSize(statisticsVOIPage.getSize());
+        resultPage.setPages(statisticsVOIPage.getPages());
+
+        List<String> records = statisticsVOIPage.getRecords();
+        List<HashMap<String,String>> resultMapList = new ArrayList<>();
+        if (!records.isEmpty()) {
+            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+            int nub = 1;
+            for (String record : records) {
+                //渲染序号
+                HashMap<String,String> map = new HashMap<>();
+                map.put("nub", nub + "");
+                List<HomeQuarantineRegisterStatisticsVO> statisticsList = this.baseMapper.selectStatistics(detailedAdminDTO.getReserveId(), record);
+                StringBuffer conditions = new StringBuffer();
+                //渲染首次登记时间
+                map.put("time", DateUtils.format(statisticsList.get(0).getCreateAt(), DateUtils.ymdhms_format));
+                statisticsList.forEach(e -> {
+                    String reserveSubContent = e.getReserveSubContent();
+                    String dateString = dateFormat.format(e.getCreateAt());
+                    if (reserveSubContent.contains("今日上午体温(℃)")) {
+                        int index = conditions.indexOf(dateString + " " + "上午体温");
+                        if (index == -1) {
+                            conditions.append(dateString + " " + "上午体温:" + e.getAnswerContent() + "℃" + "\n");
+                        } else {
+                            conditions.replace(index, conditions.indexOf("℃", index),
+                                    dateString + " " + "上午体温:" + e.getAnswerContent());
+                        }
+                    } else if (reserveSubContent.contains("今日下午体温(℃)")) {
+                        int index = conditions.indexOf(dateString + " " + "下午体温");
+                        if (index == -1) {
+                            conditions.append(dateString + " " + "下午体温:" + e.getAnswerContent() + "℃" + "\n");
+                        } else {
+                            conditions.replace(index, conditions.indexOf("℃", index),
+                                    dateString + " " + "下午体温:" + e.getAnswerContent());
+                        }
+                    } else if (reserveSubContent.contains("隔离情况")) {
+                        int index = conditions.indexOf(dateString + " " + "当日隔离情况");
+                        if (index == -1) {
+                            conditions.append(dateString + " " + "当日隔离情况:" + e.getAnswerContent() + "\n");
+                            conditions.append("————————" + "\n");
+                        } else {
+                            conditions.replace(index, conditions.indexOf("\n", index),
+                                    dateString + " " + "当日隔离情况:" + e.getAnswerContent());
+                        }
+                    } else {
+                        map.put(e.getReserveSubId() + "", e.getAnswerContent());
+                    }
+                });
+                map.put("isolation", conditions.toString());
+                resultMapList.add(map);
+                nub++;
+            }
+        }
+        resultPage.setRecords(resultMapList);
+        return R.ok(resultPage);
+    }
+
+    /**
+     * 居家隔离导出
+     * @param detailedAdminDTO
+     * @return
+     */
+    @Override
+    public R exportHomeQuarantine(PageReserveRegisterDetailedAdminDTO detailedAdminDTO) {
+        HomeQuarantineRegisterExportVO exportVO = new HomeQuarantineRegisterExportVO();
+        //题目
+        exportVO.setSubs(retrieveQuestnaireSub(detailedAdminDTO));
+        //结果数据集合
+        List<List<Object>> resultList = new ArrayList<>();
+        List<String> idCards = this.baseMapper.exportHomeQuarantine(detailedAdminDTO);
+        if (!idCards.isEmpty()) {
+            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+            for (String idCard : idCards) {
+                //构建单个用户数据
+                List<Object> userData = new ArrayList<>();
+                List<HomeQuarantineRegisterStatisticsVO> statisticsList = this.baseMapper.selectStatistics(detailedAdminDTO.getReserveId(), idCard);
+                HomeQuarantineRegisterStatisticsVO firstStatisticsVO = statisticsList.get(0);
+                userData.add(firstStatisticsVO.getNickName());
+                userData.add(DateUtils.format(firstStatisticsVO.getCreateAt(), DateUtils.ymdhms_format));
+                int size = statisticsList.size();
+                List<HomeQuarantineRegisterStatisticsVO> lastStatisticsVOList = statisticsList.subList(size - 13, size);
+                for (HomeQuarantineRegisterStatisticsVO statisticsVO : lastStatisticsVOList) {
+                    //判断当前的组件类型是否是图片上传,导出时需要导出图片
+                    if (statisticsVO.getOptionType().equals(11)) {
+                        try {
+                            userData.add(new URL(statisticsVO.getAnswerContent()));
+                        } catch (Exception e) {
+                            userData.add(" ");
+                            log.error("导出转换图片失败!");
+                        }
+                        continue;
+                    }
+                    //判断当前组件类型是否签名
+                    if (statisticsVO.getOptionType().equals(12)) {
+                        try {
+                            userData.add(DatatypeConverter.parseBase64Binary(statisticsVO.getAnswerContent().substring(statisticsVO.getAnswerContent().indexOf(",") + 1)));
+                        } catch (Exception e) {
+                            userData.add(" ");
+                            log.error("导出转换图片失败!");
+                        }
+                        continue;
+                    }
+                    userData.add(statisticsVO.getAnswerContent());
+                }
+                StringBuffer conditions = new StringBuffer();
+                statisticsList.forEach(e -> {
+                    String reserveSubContent = e.getReserveSubContent();
+                    String dateString = dateFormat.format(e.getCreateAt());
+                    if (reserveSubContent.contains("今日上午体温(℃)")) {
+                        int index = conditions.indexOf(dateString + " " + "上午体温");
+                        if (index == -1) {
+                            conditions.append(dateString + " " + "上午体温:" + e.getAnswerContent() + "℃" + "\n");
+                        } else {
+                            conditions.replace(index, conditions.indexOf("℃", index),
+                                    dateString + " " + "上午体温:" + e.getAnswerContent());
+                        }
+                    } else if (reserveSubContent.contains("今日下午体温(℃)")) {
+                        int index = conditions.indexOf(dateString + " " + "下午体温");
+                        if (index == -1) {
+                            conditions.append(dateString + " " + "下午体温:" + e.getAnswerContent() + "℃" + "\n");
+                        } else {
+                            conditions.replace(index, conditions.indexOf("℃", index),
+                                    dateString + " " + "下午体温:" + e.getAnswerContent());
+                        }
+                    } else if (reserveSubContent.contains("隔离情况")) {
+                        int index = conditions.indexOf(dateString + " " + "当日隔离情况");
+                        if (index == -1) {
+                            conditions.append(dateString + " " + "当日隔离情况:" + e.getAnswerContent() + "\n");
+                            conditions.append("————————" + "\n");
+                        } else {
+                            conditions.replace(index, conditions.indexOf("\n", index),
+                                    dateString + " " + "当日隔离情况:" + e.getAnswerContent());
+                        }
+                    }
+                });
+                userData.add(conditions.toString());
+                resultList.add(userData);
+            }
+        }
+        exportVO.setDataList(resultList);
+        return R.ok(exportVO);
+    }
+
+    @Override
+    public R bigScreenStaticsReserve(Long communityId) {
+        BigScreenStaticsReserve bigScreenStaticsReserve=comActReserveRecordMapper.biggestScreen(communityId);
+        bigScreenStaticsReserve.setReservePercent(BigDecimal.valueOf(bigScreenStaticsReserve.getReserveCount()*100d/ bigScreenStaticsReserve.getCount()).setScale(2,BigDecimal.ROUND_HALF_UP));
+        bigScreenStaticsReserve.setFirePercent(BigDecimal.valueOf(bigScreenStaticsReserve.getFireCount()*100d/ bigScreenStaticsReserve.getCount()).setScale(2,BigDecimal.ROUND_HALF_UP));
+        bigScreenStaticsReserve.setHomePercent(BigDecimal.valueOf(bigScreenStaticsReserve.getHomeCount()*100d/ bigScreenStaticsReserve.getCount()).setScale(2,BigDecimal.ROUND_HALF_UP));
+        bigScreenStaticsReserve.setGasPercent(BigDecimal.valueOf(bigScreenStaticsReserve.getGasCount()*100d/ bigScreenStaticsReserve.getCount()).setScale(2,BigDecimal.ROUND_HALF_UP));
+        List<BigScreenStaticsReserveMonth> bigScreenStaticsReserveMonthList=this.getPoints();
+        bigScreenStaticsReserveMonthList.forEach(bigScreenStaticsReserveMonth -> {
+            BigScreenStaticsReserveMonth bigScreenStaticsReserveMonth1=comActReserveRecordMapper.biggestScreenMonth(communityId,bigScreenStaticsReserveMonth.getX(), bigScreenStaticsReserveMonth.getYear());
+            bigScreenStaticsReserveMonth.setCount(bigScreenStaticsReserveMonth1.getCount());
+            bigScreenStaticsReserveMonth.setReserveCount(bigScreenStaticsReserveMonth1.getReserveCount());
+            bigScreenStaticsReserveMonth.setFireCount(bigScreenStaticsReserveMonth1.getFireCount());
+            bigScreenStaticsReserveMonth.setGasCount(bigScreenStaticsReserveMonth1.getGasCount());
+            bigScreenStaticsReserveMonth.setHomeCount(bigScreenStaticsReserveMonth1.getHomeCount());
+        });
+        bigScreenStaticsReserve.setBigScreenStaticsReserveMonthList(bigScreenStaticsReserveMonthList);
+        return R.ok(bigScreenStaticsReserve);
+    }
+
+    private List<ComActQuestnaireSubVO> retrieveQuestnaireSub(PageReserveRegisterDetailedAdminDTO detailedAdminDTO) {
+        //查询题目
+        List<ComActReserveSubDO> list = comActReserveSubMapper.selectList(new QueryWrapper<ComActReserveSubDO>().lambda()
+                .eq(ComActReserveSubDO::getReserveId, detailedAdminDTO.getReserveId()).orderByAsc(ComActReserveSubDO::getCreateAt).orderByAsc(ComActReserveSubDO::getId));
+        List<ComActQuestnaireSubVO> listSubVo = new ArrayList<>();
+        list.forEach(subDo -> {
+            if(!subDo.getType().equals(5)){
+                ComActQuestnaireSubVO comActQuestnaireSubVO = new ComActQuestnaireSubVO();
+                BeanUtils.copyProperties(subDo, comActQuestnaireSubVO);
+                listSubVo.add(comActQuestnaireSubVO);
+            }
+        });
+        return listSubVo;
+    }
+
+    public List<BigScreenStaticsReserveMonth> getPoints(){
+        List<BigScreenStaticsReserveMonth> bigScreenStaticsReserveMonths=new ArrayList<>();
+        String nowMonth=DateUtils.getDateFormatString(new Date(),"MM");
+        String nowYear=DateUtils.getDateFormatString(new Date(),"yyyy");
+        String nowYearMonth=DateUtils.getDateFormatString(new Date(),"yyyyMM");
+        if(Integer.parseInt(nowYearMonth)<202212){
+            for(int i=9;i<=12;i++){
+                String aDate="";
+                if(i<10){
+                    aDate = "0"+i;
+                }
+                else {
+                    aDate=i+"";
+                }
+                BigScreenStaticsReserveMonth bigScreenStaticsReserveMonth=new BigScreenStaticsReserveMonth();
+                bigScreenStaticsReserveMonth.setYear("2021");
+                bigScreenStaticsReserveMonth.setX(aDate);
+                bigScreenStaticsReserveMonths.add(bigScreenStaticsReserveMonth);
+            }
+        }
+        if(Integer.parseInt(nowYear)>2021){
+            for(int i=1;i<=Integer.parseInt(nowMonth);i++){
+                if(bigScreenStaticsReserveMonths.size()>=12){
+                    bigScreenStaticsReserveMonths.remove(0);
+                }
+                String aDate="";
+                if(i<10){
+                    aDate = "0"+i;
+                }
+                else {
+                    aDate=i+"";
+                }
+                BigScreenStaticsReserveMonth bigScreenStaticsReserveMonth=new BigScreenStaticsReserveMonth();
+                bigScreenStaticsReserveMonth.setX(aDate);
+                bigScreenStaticsReserveMonth.setYear(nowYear);
+                bigScreenStaticsReserveMonths.add(bigScreenStaticsReserveMonth);
+            }
+        }
+        return bigScreenStaticsReserveMonths;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveDangerAreaServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveDangerAreaServiceImpl.java
new file mode 100644
index 0000000..6f52866
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveDangerAreaServiceImpl.java
@@ -0,0 +1,46 @@
+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.reserve.EditDangerBatchDTO;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.ComActReserveDangerArea;
+import com.panzhihua.service_community.dao.ComActReserveDangerAreaDao;
+import com.panzhihua.service_community.service.ComActReserveDangerAreaService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * (ComActReserveDangerArea)表服务实现类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 相关功能
+ *
+ * @author zzj
+ * @since 2022-04-07 14:22:21
+ */
+@Slf4j
+@Service
+public class ComActReserveDangerAreaServiceImpl extends ServiceImpl<ComActReserveDangerAreaDao, ComActReserveDangerArea> implements ComActReserveDangerAreaService {
+
+    @Override
+    public R pageList(CommonPage commonPage) {
+        return R.ok(this.baseMapper.pageList(new Page(commonPage.getPage(), commonPage.getSize()),commonPage));
+    }
+
+    @Override
+    public R statics() {
+        return R.ok(this.baseMapper.statics());
+    }
+
+    @Override
+    public R updateBatch(EditDangerBatchDTO editDangerBatchDTO) {
+        editDangerBatchDTO.getIds().forEach(id ->{
+            ComActReserveDangerArea comActReserveDangerArea=new ComActReserveDangerArea();
+            comActReserveDangerArea.setId(id);
+            comActReserveDangerArea.setScreenTime(editDangerBatchDTO.getScreenTime());
+            this.baseMapper.updateById(comActReserveDangerArea);
+        });
+        return R.ok();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveOperationRecordServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveOperationRecordServiceImpl.java
new file mode 100644
index 0000000..8671caa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveOperationRecordServiceImpl.java
@@ -0,0 +1,90 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.community.OperationDetailDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.reserve.ComOperationDetailVO;
+import com.panzhihua.common.model.vos.community.reserve.ComOperationListVO;
+import com.panzhihua.service_community.dao.ComActReserveMapper;
+import com.panzhihua.service_community.dao.ComActReserveOperationRecordMapper;
+import com.panzhihua.service_community.dao.ComActReserveRecordMapper;
+import com.panzhihua.service_community.model.dos.ComActReserveDO;
+import com.panzhihua.service_community.model.dos.ComActReserveOperationRecordDO;
+import com.panzhihua.service_community.model.dos.ComActReserveRecordDO;
+import com.panzhihua.service_community.service.ComActReserveOperationRecordService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @auther lyq
+ * @create 2021-08-23 10:33:42
+ * @describe 预约登记操作记录表服务实现类
+ */
+@Slf4j
+@Service
+public class ComActReserveOperationRecordServiceImpl extends ServiceImpl<ComActReserveOperationRecordMapper, ComActReserveOperationRecordDO> implements ComActReserveOperationRecordService {
+    @Resource
+    private ComActReserveMapper comActReserveMapper;
+    @Resource
+    private ComActReserveRecordMapper comActReserveRecordMapper;
+    /**
+     * 添加预约登记操作记录
+     * @param reserveId 预约登记id
+     * @param reserveRecordId   预约登记记录id
+     * @param userId    用户id
+     * @param type  类型(1.本人操作 2.社区操作)
+     * @param phone 操作人手机号
+     * @param reserveContent    操作内容
+     * @param remark    备注
+     * @param status    状态(1.提交 2.预约成功 3.预约失败 4.取消)
+     * @param createBy  创建人
+     * @param reserveTime  预约成功时间
+     */
+    @Override
+    public void addReserveOperationRecord(Long reserveId, Long reserveRecordId, Long userId, Integer type
+            , String phone, String reserveContent,String remark,Integer status,Long createBy,Date reserveTime){
+        Date nowDate = new Date();
+        ComActReserveOperationRecordDO operationRecordDO = new ComActReserveOperationRecordDO();
+        operationRecordDO.setReserveId(reserveId);
+        operationRecordDO.setReserveRecordId(reserveRecordId);
+        operationRecordDO.setUserId(userId);
+        operationRecordDO.setType(type);
+        operationRecordDO.setPhone(phone);
+        operationRecordDO.setReserveContent(reserveContent);
+        operationRecordDO.setRemark(remark);
+        operationRecordDO.setStatus(status);
+        operationRecordDO.setCreateBy(createBy);
+        operationRecordDO.setCreateAt(nowDate);
+        operationRecordDO.setReserveTime(reserveTime);
+        this.baseMapper.insert(operationRecordDO);
+    }
+
+    @Override
+    public R detailOperationRecord(OperationDetailDTO comActReserveOperationRecordDO) {
+        if(comActReserveOperationRecordDO!=null){
+            ComOperationDetailVO comOperationDetailVO=new ComOperationDetailVO();
+            List<ComOperationListVO> comOperationListVOS=comActReserveRecordMapper.queryAll(comActReserveOperationRecordDO);
+            if(!comOperationListVOS.isEmpty()){
+                comOperationDetailVO.setList(comOperationListVOS);
+                ComActReserveRecordDO comActReserveRecordDO= comActReserveRecordMapper.selectById(comActReserveOperationRecordDO.getReserveRecordId());
+                if(comActReserveRecordDO.getStatus()==ComActReserveRecordDO.status.yqx||comActReserveRecordDO.getStatus()==ComActReserveRecordDO.status.sb){
+                    ComActReserveDO com=comActReserveMapper.selectById(comOperationListVOS.get(0).getReserveId());
+                    if(com!=null&&com.getStatus()==ComActReserveDO.status.jxz){
+                        comOperationDetailVO.setIsContinue(1);
+                    }
+                }
+            }
+
+            return R.ok(comOperationDetailVO);
+        }
+        return R.fail("未查询到数据");
+    }
+
+}
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
new file mode 100644
index 0000000..137c772
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveRecordServiceImpl.java
@@ -0,0 +1,345 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.community.reserve.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.reserve.*;
+import com.panzhihua.common.model.vos.user.SysTemplateConfigVO;
+import com.panzhihua.common.service.user.UserService;
+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;
+import com.panzhihua.service_community.dao.ComActReserveOperationRecordMapper;
+import com.panzhihua.service_community.model.dos.ComActReserveDO;
+import com.panzhihua.service_community.model.dos.ComActReserveOperationRecordDO;
+import com.panzhihua.service_community.model.dos.ComActReserveRecordDO;
+import com.panzhihua.service_community.service.ComActReserveOperationRecordService;
+import com.panzhihua.service_community.service.ComActReserveRecordService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+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;
+
+/**
+ * @auther lyq
+ * @create 2021-08-23 10:33:53
+ * @describe 预约登记记录表服务实现类
+ */
+@Slf4j
+@Service
+public class ComActReserveRecordServiceImpl extends ServiceImpl<ComActReserveRecordMapper, ComActReserveRecordDO> implements ComActReserveRecordService {
+    @Resource
+    private ComActReserveRecordMapper comActReserveRecordMapper;
+    @Resource
+    private ComActReserveMapper comActReserveMapper;
+    @Resource
+    private ComActReserveAnswerContentMapper comActReserveAnswerContentMapper;
+    @Resource
+    private ComActReserveOperationRecordMapper comActReserveOperationRecordMapper;
+    @Resource
+    private ComActReserveOperationRecordService comActReserveOperationRecordService;
+    @Resource
+    private ComActActSignDAO comActActSignDAO;
+    @Resource
+    private UserService userService;
+
+    private final static String CANCEL="用户取消";
+    @Override
+    @Transactional
+    public R cancel(CancelRecordDTO comActReserveRecord) {
+        if(comActReserveRecord!=null&&comActReserveRecord.getId()!=null){
+            //查询当前操作数据并判断取消状态
+            ComActReserveRecordDO comActReserveRecordDO=comActReserveRecordMapper.selectById(comActReserveRecord.getId());
+            if(comActReserveRecordDO!=null&&comActReserveRecordDO.getStatus()!=ComActReserveRecordDO.status.yqx){
+                comActReserveRecordDO.setStatus(ComActReserveRecordDO.status.yqx);
+                comActReserveRecordDO.setRemark(comActReserveRecord.getContent());
+                comActReserveRecordDO.setReserveTime(DateUtil.date());
+                int result =comActReserveRecordMapper.updateById(comActReserveRecordDO);
+                //判断取消状态并添加操作记录
+                if(result>0){
+                    //更新回答用户数量
+                    ComActReserveDO comActReserveDO=comActReserveMapper.selectById(comActReserveRecordDO.getReserveId());
+                    Integer joinCount = comActReserveDO.getJoinCount();
+                    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);
+                    comActReserveOperationRecordDO.setCreateAt(DateUtil.date());
+                    comActReserveOperationRecordDO.setReserveContent(CANCEL);
+                    comActReserveOperationRecordDO.setPhone(comActReserveRecordDO.getPhone());
+                    comActReserveOperationRecordDO.setStatus(ComActReserveOperationRecordDO.status.qx);
+                    comActReserveOperationRecordDO.setUserId(comActReserveRecord.getUserId());
+                    comActReserveOperationRecordDO.setReserveTime(DateUtil.date());
+                    comActReserveOperationRecordMapper.insert(comActReserveOperationRecordDO);
+                    return R.ok();
+                }
+            }
+            return R.fail("无法重复取消");
+        }
+
+        return R.fail("参数异常");
+    }
+
+
+    /**
+     * 社区后台-根据预约id查询预约明细
+     * @param pageMakeDTO   请求参数
+     * @return  预约明细
+     */
+    @Override
+    public R pageMakeAdmin(PageReserveMakeAdminDTO pageMakeDTO){
+        return R.ok(this.baseMapper.pageMakeAdmin(new Page(pageMakeDTO.getPageNum(),pageMakeDTO.getPageSize()),pageMakeDTO));
+    }
+
+    /**
+     * 根据预约记录id查询预约明细操作记录
+     * @param reserveRecordId   预约记录id
+     * @return  预约明细操作记录
+     */
+    @Override
+    public R detailMakeAdmin(Long reserveRecordId){
+        ComActReserveMakeDetailAdminVO makeDetailAdminVO = this.baseMapper.getMakeDetailAdmin(reserveRecordId);
+        if(makeDetailAdminVO != null){
+            //查询预约明细操作记录
+            List<ComActReserveMakeOperationAdminVO> makeOperationList = comActReserveOperationRecordMapper.getMakeOperationList(reserveRecordId);
+            makeDetailAdminVO.setOperationList(makeOperationList);
+        }
+        return R.ok(makeDetailAdminVO);
+    }
+
+    /**
+     * 批量取消预约记录
+     * @param reserveRecordDTO   请求参数
+     * @return  取消结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R makeCancelAdmin(CancelReserveRecordDTO reserveRecordDTO){
+        Integer count = this.baseMapper.getReserveStatusById(reserveRecordDTO.getIds());
+        if(count > 0){
+            return R.fail("仅预约成功的可以进行取消操作");
+        }
+        if(this.baseMapper.editReserveStatusById(reserveRecordDTO.getIds()) > 0){
+            Long userId = reserveRecordDTO.getUserId();
+            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,new Date());
+                }
+            });
+            return R.ok();
+        }else{
+            return R.fail();
+        }
+    }
+
+    /**
+     * 预约明细导出数据查询
+     * @param pageMakeDTO   请求参数
+     * @return  预约明细数据
+     */
+    @Override
+    public R exportMakeAdmin(PageReserveMakeAdminDTO pageMakeDTO){
+        return R.ok(this.baseMapper.exportMakeAdmin(pageMakeDTO));
+    }
+
+    /**
+     * 分页查询登记统计汇总
+     * @param registerStatisticsDTO 请求参数
+     * @return  登记统计汇总
+     */
+    @Override
+    public R registerStatisticsAdmin(ComActReserveRegisterStatisticsDTO registerStatisticsDTO){
+        IPage<ComActReserveRegisterStatisticsAdminVO> registerStatisticsList = this.baseMapper.registerStatisticsAdmin(new Page(registerStatisticsDTO.getPageNum()
+                ,registerStatisticsDTO.getPageSize()),registerStatisticsDTO);
+        registerStatisticsList.getRecords().forEach(registerStatistics -> {
+            BigDecimal tag = BigDecimal.ZERO;
+            if(registerStatistics.getAllCount() > 0){
+                tag = BigDecimal.valueOf(registerStatistics.getCount()).divide(BigDecimal.valueOf(registerStatistics.getAllCount()),4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
+            }
+            registerStatistics.setTag(tag);
+        });
+        return R.ok(registerStatisticsList.getRecords());
+    }
+
+    /**
+     * 导出登记统计汇总
+     * @param registerStatisticsDTO 请求参数
+     * @return  登记统计汇总
+     */
+    @Override
+    public R registerStatisticsExportAdmin(ComActReserveRegisterStatisticsDTO registerStatisticsDTO){
+        List<ComActReserveRegisterStatisticsAdminVO> registerStatisticsList = this.baseMapper.registerStatisticsExportAdmin(registerStatisticsDTO);
+        registerStatisticsList.forEach(registerStatistics -> {
+            BigDecimal tag = BigDecimal.ZERO;
+            if(registerStatistics.getAllCount() > 0){
+                tag = BigDecimal.valueOf(registerStatistics.getCount()).divide(BigDecimal.valueOf(registerStatistics.getAllCount()),4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
+            }
+            registerStatistics.setTag(tag);
+        });
+        return R.ok(registerStatisticsList);
+    }
+
+    /**
+     * 分页查询预约处理列表
+     * @param pageMakeHandleDTO 请求参数
+     * @return  预约处理列表
+     */
+    @Override
+    public R pageMakeHandleAdmin(PageReserveMakeHandleAdminDTO pageMakeHandleDTO){
+        return R.ok(this.baseMapper.pageMakeHandleAdmin(new Page(pageMakeHandleDTO.getPageNum(),pageMakeHandleDTO.getPageSize()),pageMakeHandleDTO));
+    }
+
+    /**
+     * 批量处理预约记录
+     * @param makeHandleDTO 请求参数
+     * @return  处理结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R makeHandleAdmin(MakeHandleAdminDTO makeHandleDTO){
+        if(makeHandleDTO.getIds() == null || makeHandleDTO.getIds().isEmpty()){
+            return R.fail("请勾选预约记录");
+        }
+        //判断选中的所有记录是否都是待处理记录
+        if(this.baseMapper.getReserveListCountByIds(makeHandleDTO.getIds()) > 0){
+            return R.fail("您勾选的记录中存在不是待处理状态的记录,请核对后再进行处理");
+        }
+        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());
+                R<SysTemplateConfigVO> sysTemplateConfigVO=userService.selectTemplate(makeHandleDTO.getAreaCode(),10);
+                //判断处理是否通过
+                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.getAccessToken(), "预约成功",
+                                    reserveDO.getTitle(), reserveRecordDO.getName(), makeHandleDTO.getMakeTime(),sysTemplateConfigVO.getData().getTemplateId());
+                        } 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.getAccessToken(), "预约失败",
+                                    reserveDO.getTitle(), reserveRecordDO.getName(), DateUtils.format(reserveRecordDO.getReserveTime(),DateUtils.ymdhms_format),sysTemplateConfigVO.getData().getTemplateId());
+                        } 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);
+            }
+        });
+
+        if(!updateList.isEmpty()){
+            this.updateBatchById(updateList);
+        }
+        return R.ok();
+    }
+
+    /**
+     * 导出预约处理列表数据查询
+     * @param pageMakeHandleDTO 请求参数
+     * @return  预约处理列表
+     */
+    @Override
+    public R exportMakeHandleAdmin(PageReserveMakeHandleAdminDTO pageMakeHandleDTO){
+        return R.ok(this.baseMapper.exportMakeHandleAdmin(pageMakeHandleDTO));
+    }
+
+    @Override
+    public R registerDetailedDetailAdmin(Long reserveRecordId){
+        //查询用户信息
+        ComActReserveRegisterDetailedVO registerDetailedVO = this.baseMapper.getRegisterDetailedByRecordId(reserveRecordId);
+        if(registerDetailedVO != null){
+            //组装用户身份信息
+            StringBuilder sb = new StringBuilder();
+            if(registerDetailedVO.getIsPartymember().equals(1)){
+                sb.append("党员/");
+            }
+            if(registerDetailedVO.getIsVolunteer().equals(1)){
+                sb.append("志愿者/");
+            }
+            if(sb.length() == 0){
+                sb.append("居民/");
+            }
+            String identity = sb.toString();
+            registerDetailedVO.setIdentity(identity.substring(0,identity.length()-1));
+            //查询答题数据
+            List<ComActReserveRegisterDetailedAnswerVO> answerList = comActReserveAnswerContentMapper.getRegisterDetailedAnswerList(reserveRecordId);
+            answerList.forEach(answer ->{
+                if(answer.getType()==4){
+                    answer.setAnswerContent(answer.getAnswerContent().replaceAll("(?<=\\w{3})\\w(?=\\w{4})", "*"));
+                }
+            });
+            registerDetailedVO.setAnswerList(answerList);
+        }
+        return R.ok(registerDetailedVO);
+    }
+
+    @Override
+    public R fiveCount(Long reserveId) {
+        return R.ok(comActReserveAnswerContentMapper.fiveCount(reserveId));
+    }
+
+}
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
new file mode 100644
index 0000000..812e50f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveServiceImpl.java
@@ -0,0 +1,1037 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.service_community.util.RSAUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.alibaba.fastjson.JSON;
+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.collect.Lists;
+import com.panzhihua.common.model.dtos.community.OperationDetailDTO;
+import com.panzhihua.common.model.dtos.community.PageUserReserveDTO;
+import com.panzhihua.common.model.dtos.community.reserve.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActReserveCommitVO;
+import com.panzhihua.common.model.vos.community.bigscreen.IndexBackReserve;
+import com.panzhihua.common.model.vos.community.bigscreen.IndexReserve;
+import com.panzhihua.common.model.vos.community.questnaire.QuestnaiteSubSelectionVO;
+import com.panzhihua.common.model.vos.community.questnaire.QuestnaiteSubVO;
+import com.panzhihua.common.model.vos.community.reserve.*;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.dao.*;
+import com.panzhihua.service_community.model.dos.*;
+import com.panzhihua.service_community.service.ComActReserveAnswerContentService;
+import com.panzhihua.service_community.service.ComActReserveRecordService;
+import com.panzhihua.service_community.service.ComActReserveService;
+import com.panzhihua.service_community.service.ComActReserveSubSelectionService;
+
+import cn.hutool.core.date.DateUtil;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-08-23 10:33:11
+ * @describe 预约登记表服务实现类
+ */
+@Slf4j
+@Service
+public class ComActReserveServiceImpl extends ServiceImpl<ComActReserveMapper, ComActReserveDO> implements ComActReserveService {
+    @Resource
+    private ComActReserveMapper comActReserveMapper;
+    @Resource
+    private ComActReserveSubMapper comActReserveSubMapper;
+    @Resource
+    private ComActReserveSubSelectionMapper comActReserveSubSelectionMapper;
+    @Resource
+    private ComActReserveAnswerContentService comActReserveAnswerContentService;
+    @Resource
+    private ComActReserveRecordMapper comActReserveRecordMapper;
+    @Resource
+    private ComActReserveOperationRecordMapper comActReserveOperationRecordMapper;
+    @Resource
+    private ComActReserveSubSelectionService comActReserveSubSelectionService;
+    @Resource
+    private ComActReserveRecordService comActReserveRecordService;
+    @Resource
+    private ComMngPopulationDAO comMngPopulationDAO;
+    @Resource
+    private ComMngPopulationHouseDAO comMngPopulationHouseDAO;
+    @Resource
+    private ComMngPopulationCommunityTagsDAO comMngPopulationCommunityTagsDAO;
+    @Resource
+    private ComMngPopulationHouseUserDAO comMngPopulationHouseUserDAO;
+    @Value("${domain.aesKey:}")
+    private String aesKey;
+
+    private final static String COMMIT="用户已提交";
+    @Override
+    @Transactional
+    public R commit(ComActReserveCommitVO comActReserveCommitVO) {
+        if(comActReserveCommitVO!=null){
+            ComMngPopulationHouseDO comMngPopulationHouseDO=new ComMngPopulationHouseDO();
+            Long userId=comActReserveCommitVO.getUserId();
+            Date nowDate=DateUtil.date();
+            //查询预约登记记录
+            ComActReserveDO comActReserveDO=comActReserveMapper.selectById(comActReserveCommitVO.getId());
+            if(comActReserveDO!=null){
+                //查询当前用户是否已预约并判断是否能继续预约
+                if(comActReserveDO.getJoinAllCount()!=0){
+                    Integer count=comActReserveRecordMapper.selectCount(new QueryWrapper<ComActReserveRecordDO>()
+                            .eq("reserve_id",comActReserveCommitVO.getId())
+                            .eq("status",ComActReserveRecordDO.status.cg));
+                    if(count>=comActReserveDO.getJoinAllCount()){
+                        return R.fail("预约已上限");
+                    }
+                }
+                if(comActReserveCommitVO.getRecordId()!=null){
+                    comActReserveRecordMapper.deleteById(comActReserveCommitVO.getRecordId());
+                    comActReserveDO.setJoinCount(comActReserveDO.getJoinCount()-1);
+                }
+                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){
+                    return R.fail("提交失败,不可重复预约");
+                }
+                else {
+                    List<QuestnaiteSubVO> questnaiteSubVOS = JSON.parseArray(comActReserveCommitVO.getJsonObject(),QuestnaiteSubVO.class);
+                    if(!questnaiteSubVOS.isEmpty()){
+                        String idCard="";
+                        String houseId="";
+                        String phone="";
+                        Long questId=comActReserveCommitVO.getId();
+                        List<ComActReserveAnswerContentDO> answerContentList=new ArrayList<>();
+                        for(QuestnaiteSubVO questnaiteSub:questnaiteSubVOS){
+                            //查询用户填写题目
+                            ComActReserveSubDO questnaireSubDO = comActReserveSubMapper.selectOne(new QueryWrapper<ComActReserveSubDO>().lambda()
+                                    .eq(ComActReserveSubDO::getReserveId,questId).eq(ComActReserveSubDO::getKey,questnaiteSub.getKey()));
+                            if(questnaireSubDO == null){
+                                log.error("未查询到调查问卷题目,题目名称:" + questnaiteSub.getLabel() + "题目key:" + questnaiteSub.getKey());
+                                continue;
+                            }
+
+                            Long queSubId = questnaireSubDO.getId();
+                            //根据上传的类型查询不同的题目选项
+                            if(questnaiteSub.getType().equals(QuestnaiteSubVO.type.danxuan) || questnaiteSub.getType().equals(QuestnaiteSubVO.type.imgselect)){
+
+                                //单选题处理
+                                ComActReserveSubSelectionDO subSelectionDO = comActReserveSubSelectionMapper.selectOne(new QueryWrapper<ComActReserveSubSelectionDO>()
+                                        .lambda().eq(ComActReserveSubSelectionDO::getReserveSubId,queSubId).eq(ComActReserveSubSelectionDO::getReserveId,questId)
+                                        .eq(ComActReserveSubSelectionDO::getKey,questnaiteSub.getValues()));
+                                if(subSelectionDO == null){
+                                    log.error("未查询到调查问卷选项,题目名称:" + questnaiteSub.getLabel() + "选项key:" + questnaiteSub.getValues());
+                                    continue;
+                                }
+
+                                ComActReserveAnswerContentDO answerContentDO = new ComActReserveAnswerContentDO();
+                                answerContentDO.setUserId(userId);
+                                answerContentDO.setCreateAt(nowDate);
+                                answerContentDO.setCreateBy(userId);
+                                answerContentDO.setReserveSelectionId(subSelectionDO.getId());
+                                answerContentDO.setReserveSubId(queSubId);
+                                answerContentDO.setType(1);
+                                answerContentDO.setChoice(subSelectionDO.getOptionName());
+                                answerContentDO.setAnswerContent(subSelectionDO.getContent());
+                                answerContentList.add(answerContentDO);
+                            }else if(questnaiteSub.getType().equals(QuestnaiteSubVO.type.duoxuan)){
+                                //多选题处理
+                                String values = questnaiteSub.getValues();
+                                String []value = values.split(",");
+                                for (int i = 0; i < value.length; i++) {
+                                    ComActReserveSubSelectionDO subSelectionDO = comActReserveSubSelectionMapper.selectOne(new QueryWrapper<ComActReserveSubSelectionDO>()
+                                            .lambda().eq(ComActReserveSubSelectionDO::getReserveSubId,queSubId).eq(ComActReserveSubSelectionDO::getReserveId,questId)
+                                            .eq(ComActReserveSubSelectionDO::getKey,value[i]));
+                                    if(subSelectionDO == null){
+                                        log.error("未查询到调查问卷选项,题目名称:" + questnaiteSub.getLabel() + "选项key:" + questnaiteSub.getValues());
+                                        continue;
+                                    }
+                                    ComActReserveAnswerContentDO answerContentDO = new ComActReserveAnswerContentDO();
+                                    answerContentDO.setUserId(userId);
+                                    answerContentDO.setCreateAt(nowDate);
+                                    answerContentDO.setCreateBy(userId);
+                                    answerContentDO.setReserveSelectionId(subSelectionDO.getId());
+                                    answerContentDO.setReserveSubId(queSubId);
+                                    answerContentDO.setType(1);
+                                    answerContentDO.setChoice(subSelectionDO.getOptionName());
+                                    answerContentDO.setAnswerContent(subSelectionDO.getContent());
+                                    answerContentList.add(answerContentDO);
+                                }
+                            }
+                            else{
+                                //文字描述不做处理
+                                if(!questnaiteSub.getType().equals(QuestnaiteSubVO.type.describe)&&!questnaiteSub.getType().equals(QuestnaiteSubVO.type.address)){
+                                    //问答题处理
+                                    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.card)){
+                                    idCard=questnaiteSub.getValues();
+                                }
+                                if(questnaiteSub.getType().equals(QuestnaiteSubVO.type.phone)){
+                                    phone=questnaiteSub.getValues();
+                                }
+                                if(questnaiteSub.getType().equals(QuestnaiteSubVO.type.address)){
+                                    houseId=questnaiteSub.getValues();
+                                    comMngPopulationHouseDO=comMngPopulationHouseDAO.selectById(houseId);
+                                    ComActReserveAnswerContentDO answerContentDO = new ComActReserveAnswerContentDO();
+                                    answerContentDO.setUserId(userId);
+                                    answerContentDO.setCreateAt(nowDate);
+                                    answerContentDO.setCreateBy(userId);
+                                    answerContentDO.setReserveSubId(queSubId);
+                                    answerContentDO.setType(2);
+                                    if(comMngPopulationHouseDO!=null){
+                                        answerContentDO.setAnswerContent(comMngPopulationHouseDO.getAddress());
+                                    }
+                                    else {
+                                        answerContentDO.setAnswerContent("");
+                                    }
+                                    answerContentList.add(answerContentDO);
+                                }
+                            }
+                        }
+                        if(!answerContentList.isEmpty()){
+                            //判断实有人口情况
+                            if(StringUtils.isNotEmpty(idCard)&&StringUtils.isNotEmpty(houseId)){
+                                Integer count=comMngPopulationDAO.selectCount(new QueryWrapper<ComMngPopulationDO>().lambda().eq(ComMngPopulationDO::getCardNoStr,idCard));
+                                if(count==0){
+                                    ComMngPopulationDO comMngPopulationDO=savePopulation(idCard);
+                                    if(comMngPopulationHouseDO!=null){
+                                        comMngPopulationDO.setId(Snowflake.getId());
+                                        comMngPopulationDO.setAddress(comMngPopulationHouseDO.getAddress());
+                                        comMngPopulationDO.setActId(comMngPopulationHouseDO.getCommunityId());
+                                        comMngPopulationDO.setStreetId(comMngPopulationHouseDO.getStreetId());
+                                        comMngPopulationDO.setVillageId(comMngPopulationHouseDO.getVillageId());
+                                        comMngPopulationDO.setHouseId(comMngPopulationHouseDO.getId());
+                                        comMngPopulationDO.setOutOrLocal(1);
+                                        comMngPopulationDO.setPhone(phone);
+                                        comMngPopulationDO.setName(comActReserveCommitVO.getName());
+                                        comMngPopulationDO.setRoad(comMngPopulationHouseDO.getAlley());
+                                        comMngPopulationDO.setDoorNo(comMngPopulationHouseDO.getHouseNum());
+                                        comMngPopulationDO.setFloor(comMngPopulationHouseDO.getFloor());
+                                        comMngPopulationDO.setUnitNo(comMngPopulationHouseDO.getUnitNo());
+                                        comMngPopulationDO.setHouseNo(comMngPopulationHouseDO.getHouseNo());
+                                        comMngPopulationDAO.insert(comMngPopulationDO);
+                                        ComMngPopulationCommunityTagsDO comMngPopulationCommunityTagsDO=new ComMngPopulationCommunityTagsDO();
+                                        comMngPopulationCommunityTagsDO.setCommunityId(comMngPopulationDO.getActId());
+                                        comMngPopulationCommunityTagsDO.setPopulationId(comMngPopulationDO.getId());
+                                        comMngPopulationCommunityTagsDO.setId(Snowflake.getId());
+                                        comMngPopulationCommunityTagsDO.setCreateAt(new Date());
+                                        comMngPopulationCommunityTagsDAO.insert(comMngPopulationCommunityTagsDO);
+                                        ComMngPopulationHouseUserDO comMngPopulationHouseUserDO=new ComMngPopulationHouseUserDO();
+                                        comMngPopulationHouseUserDO.setId(Snowflake.getId());
+                                        comMngPopulationHouseUserDO.setPopulId(comMngPopulationDO.getId());
+                                        comMngPopulationHouseUserDO.setHouseId(Long.parseLong(houseId));
+                                        comMngPopulationHouseUserDO.setRelation(1);
+                                        comMngPopulationHouseUserDO.setRelationId(1);
+                                        comMngPopulationHouseUserDO.setResidence(1);
+                                        comMngPopulationHouseUserDO.setCreateAt(new Date());
+                                        comMngPopulationHouseUserDAO.insert(comMngPopulationHouseUserDO);
+                                    }
+                                }
+                            }
+                            //更新回答用户数量
+                            Integer joinCount = comActReserveDO.getJoinCount();
+                            comActReserveDO.setJoinCount(joinCount != null ? joinCount + 1 : 1);
+                            comActReserveMapper.updateById(comActReserveDO);
+                            //新增用户答题记录
+                            ComActReserveRecordDO userAnswerDO = new ComActReserveRecordDO();
+                            userAnswerDO.setContent(comActReserveCommitVO.getContent());
+                            userAnswerDO.setName(comActReserveCommitVO.getName());
+                            userAnswerDO.setCommunityId(comActReserveCommitVO.getCommunityId());
+                            userAnswerDO.setPhone(comActReserveCommitVO.getPhone());
+                            userAnswerDO.setReserveId(questId);
+                            userAnswerDO.setReserveTime(comActReserveCommitVO.getReserveTime());
+                            userAnswerDO.setUserId(userId);
+                            userAnswerDO.setType(comActReserveCommitVO.getType());
+                            userAnswerDO.setCreateAt(nowDate);
+                            userAnswerDO.setJsonObject(comActReserveCommitVO.getJsonObject());
+                            if(comActReserveCommitVO.getType()==ComActReserveRecordDO.type.yy){
+                                userAnswerDO.setStatus(ComActReserveRecordDO.status.dcl);
+                            }
+                            else {
+                                userAnswerDO.setStatus(ComActReserveRecordDO.status.cg);
+                            }
+                            comActReserveRecordService.saveOrUpdate(userAnswerDO);
+
+                            //给答题记录赋值预约登记记录id
+                            answerContentList.forEach(answerContent -> {
+                                answerContent.setReserveRecordId(userAnswerDO.getId());
+                            });
+                            comActReserveAnswerContentService.saveBatch(answerContentList);
+                            //新增用户操作记录
+                            ComActReserveOperationRecordDO comActReserveOperationRecordDO=new ComActReserveOperationRecordDO();
+                            comActReserveOperationRecordDO.setReserveId(comActReserveCommitVO.getId());
+                            comActReserveOperationRecordDO.setReserveRecordId(userAnswerDO.getId());
+                            comActReserveOperationRecordDO.setType(ComActReserveOperationRecordDO.type.br);
+                            comActReserveOperationRecordDO.setCreateAt(DateUtil.date());
+                            comActReserveOperationRecordDO.setReserveTime(comActReserveCommitVO.getReserveTime());
+                            comActReserveOperationRecordDO.setReserveContent(COMMIT);
+                            comActReserveOperationRecordDO.setPhone(comActReserveCommitVO.getPhone());
+                            comActReserveOperationRecordDO.setStatus(ComActReserveOperationRecordDO.status.ytj);
+                            comActReserveOperationRecordDO.setUserId(comActReserveCommitVO.getUserId());
+                            comActReserveOperationRecordDO.setRemark(comActReserveCommitVO.getContent());
+                            comActReserveOperationRecordMapper.insert(comActReserveOperationRecordDO);
+                        return R.ok("提交成功");
+                        }
+                    }
+                }
+
+            }
+        }
+        return R.fail("参数错误");
+    }
+
+    @Override
+    public R commitNoToken(ComActReserveCommitVO comActReserveCommitVO) {
+        if(comActReserveCommitVO!=null){
+            ComActReserveDO comActReserveDO=new ComActReserveDO();
+            Date nowDate=DateUtil.date();
+            //查询预约登记记录
+            List<ComActReserveDO> list=comActReserveMapper.selectList(new QueryWrapper<ComActReserveDO>().lambda().eq(ComActReserveDO::getCommunityId,comActReserveCommitVO.getCommunityId()).eq(ComActReserveDO::getTitle,"返攀登记"));
+            if(!list.isEmpty()){
+                comActReserveDO=list.get(0);
+            }
+            comActReserveCommitVO.setId(comActReserveDO.getId());
+            if(comActReserveDO!=null){
+                    List<QuestnaiteSubVO> questnaiteSubVOS = JSON.parseArray(comActReserveCommitVO.getJsonObject(),QuestnaiteSubVO.class);
+                    if(!questnaiteSubVOS.isEmpty()){
+                        Long questId=comActReserveCommitVO.getId();
+                        List<ComActReserveAnswerContentDO> answerContentList=new ArrayList<>();
+                        for(QuestnaiteSubVO questnaiteSub:questnaiteSubVOS){
+                            //查询用户填写题目
+                            ComActReserveSubDO questnaireSubDO = comActReserveSubMapper.selectOne(new QueryWrapper<ComActReserveSubDO>().lambda()
+                                    .eq(ComActReserveSubDO::getReserveId,questId).eq(ComActReserveSubDO::getKey,questnaiteSub.getKey()));
+                            if(questnaireSubDO == null){
+                                log.error("未查询到调查问卷题目,题目名称:" + questnaiteSub.getLabel() + "题目key:" + questnaiteSub.getKey());
+                                continue;
+                            }
+                            Long queSubId = questnaireSubDO.getId();
+                            if(questnaiteSub.getType().equals(QuestnaiteSubVO.type.phone)||questnaiteSub.getType().equals(QuestnaiteSubVO.type.name)||questnaiteSub.getType().equals(QuestnaiteSubVO.type.card)){
+                                try {
+                                    questnaiteSub.setValues(RSAUtils.decrypt(questnaiteSub.getValues(),"MIICeAIBADANBgkqhkiG9w0BAQEFAASCAmIwggJeAgEAAoGBAJJuFUH/4m9H5hCCzxtd9BxpjWlG9gbejqiJpV0XJKaU1V7xDBJasswxPY7Zc15RoxWClPoKPwKrbWKm49dgBJebJq5xd4sLCSbboxRkKxpRiJHMZ4LJjYa5h9Ei9RyfoUzqGHqH4UrDy3m3IwPiP19cIBqoU50shyQf92ZpcGZhAgMBAAECgYEAiadU8pODoUs82x6tZbPALQmJN4PO+wwznfqv6sA74yGdKECAMazz0oMjtGt1SiCCqFD2jcweCftvvELZg3mvNg1V0vRQRD1ZCA8HDp8DXm20d11K3+RX39tR4KgyyM3HsSEhkUDujMxKIpYjyiB5iEtV7Ja9bZ2fROszq+mUIqUCQQDQQf6vWRMLBqfnDcU77vuDGOhXbjkF2ytLxLW3fbKaW3GWvC3n93zPM+mcvWSXgkl448+jFjpMktm1Vn+w+YX3AkEAs/+bbRbod6AcVbLu8C5E44qDRoRpu+LF7Cphp8tlSAIRjm2yGP5acMWGRUtH9MF2QJYPF0PgDzdmUSVqWnCAZwJBALnSuRri4wAKn1SmT+ALfLZcSiyBODZGeppv2ijw6qWahH8YR+ncRaxoyMFHqPMbmM1akJIXqktbGREaLnPOIb8CQQCdJycJaL3Qa98xR4dr9cm5rF6PO96g5w6M8jfO6ztjUkMHymh7f99wpFRlvaN2Y06edyV315ARWPohEPy5N44zAkBlLuDHLm1TkTTAfdlL5r2OcdjpaJYloTdn05Mp3+J+w1zTX8k6Mz8lFZtLUcoMeTfQ9rm/+u2KwxS8NljtSZWH"));
+                                } catch (Exception e) {
+                                    e.printStackTrace();
+                                }
+                            }
+                            //根据上传的类型查询不同的题目选项
+                            if(questnaiteSub.getType().equals(QuestnaiteSubVO.type.danxuan) || questnaiteSub.getType().equals(QuestnaiteSubVO.type.imgselect)){
+                                //单选题处理
+                                ComActReserveSubSelectionDO subSelectionDO = comActReserveSubSelectionMapper.selectOne(new QueryWrapper<ComActReserveSubSelectionDO>()
+                                        .lambda().eq(ComActReserveSubSelectionDO::getReserveSubId,queSubId).eq(ComActReserveSubSelectionDO::getReserveId,questId)
+                                        .eq(ComActReserveSubSelectionDO::getKey,questnaiteSub.getValues()));
+                                if(subSelectionDO == null){
+                                    log.error("未查询到调查问卷选项,题目名称:" + questnaiteSub.getLabel() + "选项key:" + questnaiteSub.getValues());
+                                    continue;
+                                }
+
+                                ComActReserveAnswerContentDO answerContentDO = new ComActReserveAnswerContentDO();
+                                answerContentDO.setCreateAt(nowDate);
+                                answerContentDO.setReserveSelectionId(subSelectionDO.getId());
+                                answerContentDO.setReserveSubId(queSubId);
+                                answerContentDO.setType(1);
+                                answerContentDO.setChoice(subSelectionDO.getOptionName());
+                                answerContentDO.setAnswerContent(subSelectionDO.getContent());
+                                answerContentList.add(answerContentDO);
+                            }else if(questnaiteSub.getType().equals(QuestnaiteSubVO.type.duoxuan)){
+                                //多选题处理
+                                String values = questnaiteSub.getValues();
+                                String []value = values.split(",");
+                                for (int i = 0; i < value.length; i++) {
+                                    ComActReserveSubSelectionDO subSelectionDO = comActReserveSubSelectionMapper.selectOne(new QueryWrapper<ComActReserveSubSelectionDO>()
+                                            .lambda().eq(ComActReserveSubSelectionDO::getReserveSubId,queSubId).eq(ComActReserveSubSelectionDO::getReserveId,questId)
+                                            .eq(ComActReserveSubSelectionDO::getKey,value[i]));
+                                    if(subSelectionDO == null){
+                                        log.error("未查询到调查问卷选项,题目名称:" + questnaiteSub.getLabel() + "选项key:" + questnaiteSub.getValues());
+                                        continue;
+                                    }
+                                    ComActReserveAnswerContentDO answerContentDO = new ComActReserveAnswerContentDO();
+                                    answerContentDO.setCreateAt(nowDate);
+                                    answerContentDO.setReserveSelectionId(subSelectionDO.getId());
+                                    answerContentDO.setReserveSubId(queSubId);
+                                    answerContentDO.setType(1);
+                                    answerContentDO.setChoice(subSelectionDO.getOptionName());
+                                    answerContentDO.setAnswerContent(subSelectionDO.getContent());
+                                    answerContentList.add(answerContentDO);
+                                }
+                            }else{
+                                //文字描述不做处理
+                                if(!questnaiteSub.getType().equals(QuestnaiteSubVO.type.describe)){
+                                    //问答题处理
+                                    String values = questnaiteSub.getValues();
+                                    ComActReserveAnswerContentDO answerContentDO = new ComActReserveAnswerContentDO();
+                                    answerContentDO.setCreateAt(nowDate);
+                                    answerContentDO.setReserveSubId(queSubId);
+                                    answerContentDO.setType(2);
+                                    answerContentDO.setAnswerContent(values);
+                                    answerContentList.add(answerContentDO);
+                                }
+                            }
+                        }
+                        if(!answerContentList.isEmpty()){
+                            //更新回答用户数量
+                            Integer joinCount = comActReserveDO.getJoinCount();
+                            comActReserveDO.setJoinCount(joinCount != null ? joinCount + 1 : 1);
+                            comActReserveMapper.updateById(comActReserveDO);
+                            //新增用户答题记录
+                            ComActReserveRecordDO userAnswerDO = new ComActReserveRecordDO();
+                            userAnswerDO.setContent(comActReserveCommitVO.getContent()!=null?comActReserveCommitVO.getContent():"");
+                            userAnswerDO.setName(comActReserveCommitVO.getName()!=null?comActReserveCommitVO.getName():"");
+                            userAnswerDO.setCommunityId(comActReserveCommitVO.getCommunityId());
+                            userAnswerDO.setPhone(comActReserveCommitVO.getPhone()!=null?comActReserveCommitVO.getPhone():"");
+                            userAnswerDO.setReserveId(questId);
+                            userAnswerDO.setReserveTime(comActReserveCommitVO.getReserveTime()!=null?comActReserveCommitVO.getReserveTime():new Date());
+                            userAnswerDO.setType(comActReserveCommitVO.getType()!=null? comActReserveCommitVO.getType() : 2);
+                            userAnswerDO.setCreateAt(nowDate);
+                            userAnswerDO.setJsonObject(comActReserveCommitVO.getJsonObject());
+                            userAnswerDO.setStatus(ComActReserveRecordDO.status.cg);
+                            comActReserveRecordService.saveOrUpdate(userAnswerDO);
+
+                            //给答题记录赋值预约登记记录id
+                            answerContentList.forEach(answerContent -> {
+                                answerContent.setReserveRecordId(userAnswerDO.getId());
+                            });
+                            comActReserveAnswerContentService.saveBatch(answerContentList);
+                            //新增用户操作记录
+                            ComActReserveOperationRecordDO comActReserveOperationRecordDO=new ComActReserveOperationRecordDO();
+                            comActReserveOperationRecordDO.setReserveId(comActReserveCommitVO.getId());
+                            comActReserveOperationRecordDO.setReserveRecordId(userAnswerDO.getId());
+                            comActReserveOperationRecordDO.setType(ComActReserveOperationRecordDO.type.br);
+                            comActReserveOperationRecordDO.setCreateAt(DateUtil.date());
+                            comActReserveOperationRecordDO.setReserveTime(comActReserveCommitVO.getReserveTime());
+                            comActReserveOperationRecordDO.setReserveContent(COMMIT);
+                            //comActReserveOperationRecordDO.setPhone(comActReserveCommitVO.getPhone());
+                            comActReserveOperationRecordDO.setStatus(ComActReserveOperationRecordDO.status.ytj);
+                            //comActReserveOperationRecordDO.setRemark(comActReserveCommitVO.getContent());
+                            comActReserveOperationRecordMapper.insert(comActReserveOperationRecordDO);
+                            return R.ok("提交成功");
+                        }
+                    }
+
+
+            }
+        }
+        return R.fail("参数错误");
+    }
+
+    @Override
+    public R homeQuarantineCommitNoToken(ComActReserveCommitVO comActReserveCommitVO) {
+        if(comActReserveCommitVO!=null){
+            ComActReserveDO comActReserveDO=new ComActReserveDO();
+            Date nowDate=DateUtil.date();
+            //查询预约登记记录
+            List<ComActReserveDO> list=comActReserveMapper.selectList(new QueryWrapper<ComActReserveDO>().lambda().eq(ComActReserveDO::getCommunityId,comActReserveCommitVO.getCommunityId()).eq(ComActReserveDO::getTitle,"居家隔离"));
+            if(!list.isEmpty()){
+                comActReserveDO=list.get(0);
+            }
+            comActReserveCommitVO.setId(comActReserveDO.getId());
+            if(comActReserveDO!=null){
+                List<QuestnaiteSubVO> questnaiteSubVOS = JSON.parseArray(comActReserveCommitVO.getJsonObject(),QuestnaiteSubVO.class);
+                if(!questnaiteSubVOS.isEmpty()){
+                    Long questId=comActReserveCommitVO.getId();
+                    List<ComActReserveAnswerContentDO> answerContentList=new ArrayList<>();
+                    for(QuestnaiteSubVO questnaiteSub:questnaiteSubVOS){
+                        //查询用户填写题目
+                        ComActReserveSubDO questnaireSubDO = comActReserveSubMapper.selectOne(new QueryWrapper<ComActReserveSubDO>().lambda()
+                                .eq(ComActReserveSubDO::getReserveId,questId).eq(ComActReserveSubDO::getKey,questnaiteSub.getKey()));
+                        if(questnaireSubDO == null){
+                            log.error("未查询到调查问卷题目,题目名称:" + questnaiteSub.getLabel() + "题目key:" + questnaiteSub.getKey());
+                            continue;
+                        }
+                        Long queSubId = questnaireSubDO.getId();
+                        //根据上传的类型查询不同的题目选项
+                        if(questnaiteSub.getType().equals(QuestnaiteSubVO.type.danxuan) || questnaiteSub.getType().equals(QuestnaiteSubVO.type.imgselect)){
+                            //单选题处理
+                            ComActReserveSubSelectionDO subSelectionDO = comActReserveSubSelectionMapper.selectOne(new QueryWrapper<ComActReserveSubSelectionDO>()
+                                    .lambda().eq(ComActReserveSubSelectionDO::getReserveSubId,queSubId).eq(ComActReserveSubSelectionDO::getReserveId,questId)
+                                    .eq(ComActReserveSubSelectionDO::getKey,questnaiteSub.getValues()));
+                            if(subSelectionDO == null){
+                                log.error("未查询到调查问卷选项,题目名称:" + questnaiteSub.getLabel() + "选项key:" + questnaiteSub.getValues());
+                                continue;
+                            }
+
+                            ComActReserveAnswerContentDO answerContentDO = new ComActReserveAnswerContentDO();
+                            answerContentDO.setCreateAt(nowDate);
+                            answerContentDO.setReserveSelectionId(subSelectionDO.getId());
+                            answerContentDO.setReserveSubId(queSubId);
+                            answerContentDO.setType(1);
+                            answerContentDO.setChoice(subSelectionDO.getOptionName());
+                            answerContentDO.setAnswerContent(subSelectionDO.getContent());
+                            answerContentList.add(answerContentDO);
+                        }else if(questnaiteSub.getType().equals(QuestnaiteSubVO.type.duoxuan)){
+                            //多选题处理
+                            String values = questnaiteSub.getValues();
+                            String []value = values.split(",");
+                            for (int i = 0; i < value.length; i++) {
+                                ComActReserveSubSelectionDO subSelectionDO = comActReserveSubSelectionMapper.selectOne(new QueryWrapper<ComActReserveSubSelectionDO>()
+                                        .lambda().eq(ComActReserveSubSelectionDO::getReserveSubId,queSubId).eq(ComActReserveSubSelectionDO::getReserveId,questId)
+                                        .eq(ComActReserveSubSelectionDO::getKey,value[i]));
+                                if(subSelectionDO == null){
+                                    log.error("未查询到调查问卷选项,题目名称:" + questnaiteSub.getLabel() + "选项key:" + questnaiteSub.getValues());
+                                    continue;
+                                }
+                                ComActReserveAnswerContentDO answerContentDO = new ComActReserveAnswerContentDO();
+                                answerContentDO.setCreateAt(nowDate);
+                                answerContentDO.setReserveSelectionId(subSelectionDO.getId());
+                                answerContentDO.setReserveSubId(queSubId);
+                                answerContentDO.setType(1);
+                                answerContentDO.setChoice(subSelectionDO.getOptionName());
+                                answerContentDO.setAnswerContent(subSelectionDO.getContent());
+                                answerContentList.add(answerContentDO);
+                            }
+                        }else{
+                            //文字描述不做处理
+                            if(!questnaiteSub.getType().equals(QuestnaiteSubVO.type.describe)){
+                                //问答题处理
+                                String values = questnaiteSub.getValues();
+                                ComActReserveAnswerContentDO answerContentDO = new ComActReserveAnswerContentDO();
+                                answerContentDO.setCreateAt(nowDate);
+                                answerContentDO.setReserveSubId(queSubId);
+                                answerContentDO.setType(2);
+                                answerContentDO.setAnswerContent(values);
+                                answerContentList.add(answerContentDO);
+                            }
+                        }
+                    }
+                    if(!answerContentList.isEmpty()){
+                        //更新回答用户数量
+                        Integer joinCount = comActReserveDO.getJoinCount();
+                        comActReserveDO.setJoinCount(joinCount != null ? joinCount + 1 : 1);
+                        comActReserveMapper.updateById(comActReserveDO);
+                        //新增用户答题记录
+                        ComActReserveRecordDO userAnswerDO = new ComActReserveRecordDO();
+                        userAnswerDO.setContent(comActReserveCommitVO.getContent()!=null?comActReserveCommitVO.getContent():"");
+                        userAnswerDO.setName(comActReserveCommitVO.getName()!=null?comActReserveCommitVO.getName():"");
+                        userAnswerDO.setCommunityId(comActReserveCommitVO.getCommunityId());
+                        userAnswerDO.setPhone(comActReserveCommitVO.getPhone()!=null?comActReserveCommitVO.getPhone():"");
+                        userAnswerDO.setReserveId(questId);
+                        userAnswerDO.setReserveTime(comActReserveCommitVO.getReserveTime()!=null?comActReserveCommitVO.getReserveTime():new Date());
+                        userAnswerDO.setType(comActReserveCommitVO.getType()!=null? comActReserveCommitVO.getType() : 2);
+                        userAnswerDO.setCreateAt(nowDate);
+                        userAnswerDO.setJsonObject(comActReserveCommitVO.getJsonObject());
+                        userAnswerDO.setStatus(ComActReserveRecordDO.status.cg);
+                        comActReserveRecordService.saveOrUpdate(userAnswerDO);
+
+                        //给答题记录赋值预约登记记录id
+                        answerContentList.forEach(answerContent -> {
+                            answerContent.setReserveRecordId(userAnswerDO.getId());
+                        });
+                        comActReserveAnswerContentService.saveBatch(answerContentList);
+                        //新增用户操作记录
+                        ComActReserveOperationRecordDO comActReserveOperationRecordDO=new ComActReserveOperationRecordDO();
+                        comActReserveOperationRecordDO.setReserveId(comActReserveCommitVO.getId());
+                        comActReserveOperationRecordDO.setReserveRecordId(userAnswerDO.getId());
+                        comActReserveOperationRecordDO.setType(ComActReserveOperationRecordDO.type.br);
+                        comActReserveOperationRecordDO.setCreateAt(DateUtil.date());
+                        comActReserveOperationRecordDO.setReserveTime(comActReserveCommitVO.getReserveTime());
+                        comActReserveOperationRecordDO.setReserveContent(COMMIT);
+                        //comActReserveOperationRecordDO.setPhone(comActReserveCommitVO.getPhone());
+                        comActReserveOperationRecordDO.setStatus(ComActReserveOperationRecordDO.status.ytj);
+                        //comActReserveOperationRecordDO.setRemark(comActReserveCommitVO.getContent());
+                        comActReserveOperationRecordMapper.insert(comActReserveOperationRecordDO);
+                        return R.ok("提交成功");
+                    }
+                }
+
+
+            }
+        }
+        return R.fail("参数错误");
+    }
+
+
+    /**
+     * 社区后台-分页查询预约登记列表
+     * @param pageReserveDTO    请求参数
+     * @return  预约登记列表
+     */
+    @Override
+    public R pageReserveAdmin(PageReserveAdminDTO pageReserveDTO){
+        IPage<ComActReserveListAdminVO> reservePage = this.baseMapper.pageReserveAdmin(new Page(pageReserveDTO.getPageNum(),pageReserveDTO.getPageSize()),pageReserveDTO);
+        reservePage.getRecords().forEach(reserve -> {
+            //判断广告位置
+            StringBuilder sb = new StringBuilder();
+            if(reserve.getAdverPositionTop().equals(ComActQuestnaireDO.isOk.yes)){
+                sb.append("首页顶部,");
+            }
+            if(reserve.getAdverPositionApplication().equals(ComActQuestnaireDO.isOk.yes)){
+                sb.append("首页应用,");
+            }
+            String advertPosition = sb.toString();
+            if(advertPosition.length() > 0){
+                reserve.setAdvertPosition(advertPosition.substring(0,advertPosition.length()-1));
+            }else{
+                reserve.setAdvertPosition("无");
+            }
+        });
+        return R.ok(reservePage);
+    }
+
+    /**
+     * 社区后台-新增预约登记信息
+     * @param addReserveDTO 请求参数
+     * @return  新增结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R addReserveAdmin(AddReserveAdminDTO addReserveDTO){
+        Date nowDate = new Date();
+        Long userId = addReserveDTO.getUserId();
+        //新增预约登记信息
+        ComActReserveDO reserveDO = new ComActReserveDO();
+        BeanUtils.copyProperties(addReserveDTO,reserveDO);
+        reserveDO.setStatus(ComActReserveDO.status.dfb);
+        reserveDO.setCreateAt(nowDate);
+        reserveDO.setCreateBy(userId);
+
+        if(addReserveDTO.getIsPublish().equals(ComActReserveDO.isOk.yes)){
+            reserveDO.setStatus(ComActReserveDO.status.jxz);
+            reserveDO.setPublishTime(nowDate);
+        }
+        this.baseMapper.insert(reserveDO);
+
+        //根据上传的json数据录入选项以及题目到数据库
+        if(StringUtils.isEmpty(addReserveDTO.getJsonObject())){
+            return R.fail("组件json数据为空,录入失败");
+        }
+        List<QuestnaiteSubVO> reserveSubVOS = JSON.parseArray(addReserveDTO.getJsonObject(),QuestnaiteSubVO.class);
+        reserveSubVOS.forEach(reserveSub -> {
+            ComActReserveSubDO comActReserveSubDO = new ComActReserveSubDO();
+            comActReserveSubDO.setType(reserveSub.getType());
+            comActReserveSubDO.setContent(reserveSub.getLabel());
+            comActReserveSubDO.setSort(reserveSub.getSort());
+            comActReserveSubDO.setReserveId(reserveDO.getId());
+            comActReserveSubDO.setCreateBy(userId);
+            comActReserveSubDO.setCreateAt(nowDate);
+            comActReserveSubDO.setKey(reserveSub.getKey());
+            comActReserveSubMapper.insert(comActReserveSubDO);
+
+            ArrayList<ComActReserveSubSelectionDO> subSelectionList = Lists.newArrayList();
+            if(reserveSub.getOptions() != null && !reserveSub.getOptions().isEmpty()) {
+                List<QuestnaiteSubSelectionVO> subOptions = reserveSub.getOptions();
+                for(int i=0; i<subOptions.size(); i++){
+                    QuestnaiteSubSelectionVO subSelect = subOptions.get(i);
+                    ComActReserveSubSelectionDO subSelectionDO = new ComActReserveSubSelectionDO();
+                    subSelectionDO.setReserveSubId(comActReserveSubDO.getId());
+                    if(subSelect.getType().equals(1)){
+                        //添加选项名称
+                        subSelectionDO.setOptionName(subSelect.getOptionName());
+                    }else {
+                        subSelectionDO.setOptionName(String.valueOf(Character.toChars('A' + i)));
+                    }
+                    subSelectionDO.setContent(subSelect.getLabel());
+                    subSelectionDO.setReserveId(reserveDO.getId());
+                    subSelectionDO.setCreateBy(userId);
+                    subSelectionDO.setCreateAt(nowDate);
+                    subSelectionDO.setType(subSelect.getType());
+                    subSelectionDO.setKey(subSelect.getKey());
+                    subSelectionDO.setUrl(subSelect.getUrl());
+                    subSelectionList.add(subSelectionDO);
+                }
+            }
+            comActReserveSubSelectionService.saveBatch(subSelectionList);
+        });
+
+        return R.ok();
+    }
+
+    /**
+     * 社区后台-编辑预约登记信息
+     * @param editReserveDTO 请求参数
+     * @return  新增结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R editReserveAdmin(EditReserveAdminDTO editReserveDTO){
+        Date nowDate = new Date();
+        Long userId = editReserveDTO.getUserId();
+        Long reserveId = editReserveDTO.getId();
+        //查询预约登记信息
+        ComActReserveDO reserveDO = this.baseMapper.selectById(reserveId);
+        if(reserveDO == null){
+            return R.fail("未查询到预约登记记录");
+        }
+        if(!reserveDO.getStatus().equals(ComActReserveDO.status.dfb)){
+            return R.fail("不可修改不是待发布状态的预约登记记录");
+        }
+        BeanUtils.copyProperties(editReserveDTO,reserveDO);
+        reserveDO.setStatus(ComActReserveDO.status.dfb);
+        reserveDO.setUpdateAt(nowDate);
+        reserveDO.setUpdateBy(userId);
+        if(editReserveDTO.getIsPublish().equals(ComActReserveDO.isOk.yes)){
+            reserveDO.setStatus(ComActReserveDO.status.jxz);
+            reserveDO.setPublishTime(nowDate);
+        }
+        this.baseMapper.updateById(reserveDO);
+
+        //根据上传的json数据录入选项以及题目到数据库
+        if(StringUtils.isEmpty(editReserveDTO.getJsonObject())){
+            return R.fail("组件json数据为空,录入失败");
+        }
+
+        //清除原来预约登记题目以及题目选项
+        this.baseMapper.deleteReserveSubAll(reserveId);
+        //清除原有的,添加更新的
+        List<QuestnaiteSubVO> reserveSubVOS = JSON.parseArray(editReserveDTO.getJsonObject(),QuestnaiteSubVO.class);
+        if(reserveSubVOS.isEmpty()){
+            return R.fail("组件json数据为空,录入失败");
+        }
+        reserveSubVOS.forEach(reserveSub -> {
+            ComActReserveSubDO comActReserveSubDO = new ComActReserveSubDO();
+            comActReserveSubDO.setType(reserveSub.getType());
+            comActReserveSubDO.setContent(reserveSub.getLabel());
+            comActReserveSubDO.setSort(reserveSub.getSort());
+            comActReserveSubDO.setReserveId(reserveDO.getId());
+            comActReserveSubDO.setCreateBy(userId);
+            comActReserveSubDO.setCreateAt(nowDate);
+            comActReserveSubDO.setKey(reserveSub.getKey());
+            comActReserveSubMapper.insert(comActReserveSubDO);
+
+            ArrayList<ComActReserveSubSelectionDO> subSelectionList = Lists.newArrayList();
+            if(reserveSub.getOptions() != null && !reserveSub.getOptions().isEmpty()) {
+                List<QuestnaiteSubSelectionVO> subOptions = reserveSub.getOptions();
+                for(int i=0; i<subOptions.size(); i++){
+                    QuestnaiteSubSelectionVO subSelect = subOptions.get(i);
+                    ComActReserveSubSelectionDO subSelectionDO = new ComActReserveSubSelectionDO();
+                    subSelectionDO.setReserveSubId(comActReserveSubDO.getId());
+                    if(subSelect.getType().equals(1)){
+                        //添加选项名称
+                        subSelectionDO.setOptionName(subSelect.getOptionName());
+                    }else {
+                        subSelectionDO.setOptionName(String.valueOf(Character.toChars('A' + i)));
+                    }
+                    subSelectionDO.setContent(subSelect.getLabel());
+                    subSelectionDO.setReserveId(reserveDO.getId());
+                    subSelectionDO.setCreateBy(userId);
+                    subSelectionDO.setCreateAt(nowDate);
+                    subSelectionDO.setType(subSelect.getType());
+                    subSelectionDO.setKey(subSelect.getKey());
+                    subSelectionList.add(subSelectionDO);
+                }
+            }
+            comActReserveSubSelectionService.saveBatch(subSelectionList);
+        });
+        return R.ok();
+    }
+
+    /**
+     * 社区后台-修改预约登记状态
+     * @param editReserveDTO    请求参数
+     * @return  修改结果
+     */
+    @Override
+    public R editReserveStatusAdmin(EditComActReserveStatusDTO editReserveDTO){
+        Date nowDate = new Date();
+        Long userId = editReserveDTO.getUserId();
+        Long reserveId = editReserveDTO.getId();
+        //查询预约登记信息
+        ComActReserveDO reserveDO = this.baseMapper.selectById(reserveId);
+        if(reserveDO == null){
+            return R.fail("未查询到预约登记记录");
+        }
+
+        if(editReserveDTO.getType().equals(EditComActReserveStatusDTO.type.tz)){
+            reserveDO.setStatus(ComActReserveDO.status.ytz);
+            reserveDO.setEndTime(nowDate);
+        }else if(editReserveDTO.getType().equals(EditComActReserveStatusDTO.type.fb)){
+            reserveDO.setStatus(ComActReserveDO.status.jxz);
+            reserveDO.setPublishTime(nowDate);
+        }
+        reserveDO.setUpdateBy(userId);
+        reserveDO.setUpdateAt(nowDate);
+        if(this.baseMapper.updateById(reserveDO) > 0){
+            return R.ok();
+        }else{
+            return R.fail();
+        }
+    }
+
+    /**
+     * 社区后台-继续预约登记
+     * @param editReserveDTO    请求参数
+     * @return  修改结果
+     */
+    @Override
+    public R editReserveInfoAdmin(EditComActReserveInfoDTO editReserveDTO){
+        Date nowDate = new Date();
+        Long userId = editReserveDTO.getUserId();
+        Long reserveId = editReserveDTO.getId();
+        //查询预约登记信息
+        ComActReserveDO reserveDO = this.baseMapper.selectById(reserveId);
+        if(reserveDO == null){
+            return R.fail("未查询到预约登记记录");
+        }
+        BeanUtils.copyProperties(editReserveDTO,reserveDO);
+        reserveDO.setStatus(ComActReserveDO.status.jxz);
+        reserveDO.setUpdateAt(nowDate);
+        reserveDO.setUpdateBy(userId);
+        reserveDO.setEndTime(null);
+        if(this.baseMapper.updateById(reserveDO) > 0){
+            return R.ok();
+        }else{
+            return R.fail();
+        }
+    }
+
+    /**
+     * 社区后台-根据预约登记id查询详情
+     * @param reserveId 预约登记id
+     * @return  预约登记详情
+     */
+    @Override
+    public R<ComActReserveDetailAdminVO> detailReserveAdmin(Long reserveId) {
+        ComActReserveDetailAdminVO reserveDetailAdminVO = new ComActReserveDetailAdminVO();
+        //查询预约登记信息
+        ComActReserveDO reserveDO = this.baseMapper.selectById(reserveId);
+        BeanUtils.copyProperties(reserveDO,reserveDetailAdminVO);
+        return R.ok(reserveDetailAdminVO);
+    }
+
+    /**
+     * 社区后台-根据社区id统计预约类数据
+     * @param makeStatisticsDTO   请求参数
+     * @return  统计预约类数据
+     */
+    @Override
+    public R makeStatisticsAdmin(ComActReserveMakeStatisticsDTO makeStatisticsDTO){
+        Long communityId = makeStatisticsDTO.getCommunityId();
+        ComActReserveMakeStatisticsAdminVO makeStatisticsAdminVO = new ComActReserveMakeStatisticsAdminVO();
+        //查询预约登记统计汇总左边数据
+        List<ComActReserveMakeLeftStatisticsAdminVO> leftStatisticsList = this.baseMapper.getReserveMakeLeftStatistics(communityId);
+        if(!leftStatisticsList.isEmpty()){
+            makeStatisticsAdminVO.setLeftStatisticsList(leftStatisticsList);
+        }
+
+        //查询预约登记统计汇总右边数据
+        List<ComActReserveMakeRightStatisticsAdminVO> rightStatisticsList = getRightStatisticsList(makeStatisticsDTO);
+        if(!rightStatisticsList.isEmpty()){
+            makeStatisticsAdminVO.setRightStatisticsList(rightStatisticsList);
+        }
+        return R.ok(makeStatisticsAdminVO);
+    }
+
+    /**
+     * 社区后台-查询预约统计汇总右边数据
+     * @param makeStatisticsDTO 请求参数
+     * @return  预约统计汇总右边数据
+     */
+    private List<ComActReserveMakeRightStatisticsAdminVO> getRightStatisticsList(ComActReserveMakeStatisticsDTO makeStatisticsDTO){
+        Long communityId = makeStatisticsDTO.getCommunityId();
+        //查询预约登记统计汇总右边数据
+        List<ComActReserveMakeRightStatisticsAdminVO> rightStatisticsList = this.baseMapper.getReserveMakeRightStatistics(makeStatisticsDTO);
+        if(!rightStatisticsList.isEmpty()){
+            rightStatisticsList.forEach(rightStatistics -> {
+                String date = rightStatistics.getReserveTime();
+                Integer count = this.baseMapper.getReserveRecordCount(communityId,date + " 00:00:00",date + " 23:59:59");
+                rightStatistics.setAllCount(count);
+
+                //计算百分比
+                BigDecimal tag = BigDecimal.ZERO;
+                if(count >= 0){
+                    tag = BigDecimal.valueOf(rightStatistics.getCount()).divide(BigDecimal.valueOf(count),2, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100));
+                }
+                rightStatistics.setTag(tag);
+            });
+        }
+        return rightStatisticsList;
+    }
+
+    /**
+     * 社区后台-查询导出预约统计汇总数据
+     * @param makeStatisticsDTO   请求参数
+     * @return  统计预约类数据
+     */
+    @Override
+    public R makeStatisticsExportAdmin(ComActReserveMakeStatisticsDTO makeStatisticsDTO){
+        return R.ok(getRightStatisticsList(makeStatisticsDTO));
+    }
+
+    /**
+     * 删除预约登记信息
+     * @param reserveId 预约登记id
+     * @return  删除结果
+     */
+    @Override
+    public R deleteReserveAdmin(Long reserveId){
+        //查询预约登记信息
+        ComActReserveDO reserveDO = this.baseMapper.selectById(reserveId);
+        if(reserveDO == null){
+            return R.fail("未查询到预约登记信息");
+        }
+        reserveDO.setIsDel(ComActReserveDO.isOk.yes);
+        reserveDO.setUpdateAt(new Date());
+
+        if(this.baseMapper.updateById(reserveDO) > 0){
+            return R.ok();
+        }else{
+            return R.fail();
+        }
+    }
+
+    /**
+     * 查询社区所有预约信息列表
+     * @param communityId   社区id
+     * @return  预约信息列表
+     */
+    @Override
+    public R listReserveAdmin(Long communityId){
+        return R.ok(this.baseMapper.listReserveAdmin(communityId));
+    }
+
+    @Override
+    public R getById(Long id,Long userId,Long recordId,Integer isBack) {
+        ComActReserveDO comActReserveDO=comActReserveMapper.selectById(id);
+        if(comActReserveDO!=null){
+            comActReserveDO.setViewNum(comActReserveDO.getViewNum()+1);
+            ComActReserveDetailVO comActReserveDetailVO=new ComActReserveDetailVO();
+            if(isBack!=1){
+                comActReserveDO.setViewNum(comActReserveDO.getViewNum()+1);
+                BeanUtils.copyProperties(comActReserveDO,comActReserveDetailVO);
+                List<ComActReserveRecordDO> list=comActReserveRecordMapper.selectList(new QueryWrapper<ComActReserveRecordDO>().eq("user_id",userId).eq("reserve_id",id).in("status",1,2).orderByDesc("create_at"));
+                List<ComActReserveRecordDO> secondlist=comActReserveRecordMapper.selectList(new QueryWrapper<ComActReserveRecordDO>().eq("user_id",userId).eq("reserve_id",id).orderByDesc("create_at"));
+                //判断当前数据是否可重复提交
+                if(comActReserveDO.getIsRepeat()==ComActReserveDetailVO.isOk.y||list.isEmpty()){
+                    comActReserveDetailVO.setIsOk(ComActReserveDetailVO.isOk.n);
+                }else {
+                    comActReserveDetailVO.setIsOk(ComActReserveDetailVO.isOk.y);
+                }
+                //如果用户已提交返回最新一条记录 列表时间倒序排列
+                if(!list.isEmpty()){
+                    comActReserveDetailVO.setJsonObject(list.get(0).getJsonObject());
+                    comActReserveDetailVO.setReserveTime(list.get(0).getReserveTime());
+                }
+                if(!secondlist.isEmpty()&&recordId!=null){
+                    secondlist.forEach(comActReserveRecordDO -> {
+                        if(comActReserveRecordDO.getId().equals(recordId)){
+                            comActReserveDetailVO.setRecordStatus(comActReserveRecordDO.getStatus());
+                        }
+                    });
+                }
+                //更新浏览量
+                comActReserveMapper.updateById(comActReserveDO);
+                return R.ok(comActReserveDetailVO);
+            }
+            ComActReserveRecordDO comActReserveRecordDO =comActReserveRecordMapper.selectById(recordId);
+            if(comActReserveRecordDO!=null){
+                BeanUtils.copyProperties(comActReserveRecordDO,comActReserveDetailVO);
+            }
+            //更新浏览量
+            comActReserveMapper.updateById(comActReserveDO);
+            return R.ok(comActReserveDetailVO);
+        }
+        return R.fail("未查询到数据");
+
+    }
+
+    @Override
+    public R pageReserveList(PageUserReserveDTO pageUserReserveDTO) {
+        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));
+    }
+
+    @Override
+    public IndexReserve indexReserve(Long communityId) {
+        List<ComActReserveDO> comActReserveDOS=this.comActReserveMapper.selectList(new QueryWrapper<ComActReserveDO>().lambda().eq(ComActReserveDO::getCommunityId,communityId).orderByDesc(ComActReserveDO::getCreateAt).like(ComActReserveDO::getTitle,"返攀登记").eq(ComActReserveDO::getStatus,ComActReserveDO.status.jxz));
+        if(!comActReserveDOS.isEmpty()){
+            IndexBackReserve indexBackReserve=new IndexBackReserve();
+            indexBackReserve.setCount(this.comActReserveRecordMapper.selectCount(new QueryWrapper<ComActReserveRecordDO>().lambda().eq(ComActReserveRecordDO::getReserveId,comActReserveDOS.get(0).getId())));
+
+        }
+
+        return null;
+    }
+
+    public ComMngPopulationDO savePopulation(String idCard){
+        ComMngPopulationDO comMngPopulationDO=new ComMngPopulationDO();
+        comMngPopulationDO.setDeath("1");
+        comMngPopulationDO.setCardNoStr(idCard);
+        comMngPopulationDO.setCardNo(idCard);
+        comMngPopulationDO.setSex(getSex(idCard));
+        comMngPopulationDO.setBirthday(getBirthday(idCard));
+        return comMngPopulationDO;
+    }
+    public Integer getSex(String idCard){
+        char c = idCard.charAt(idCard.length() - 2);
+        Integer gender = Integer.parseInt(String.valueOf(c));
+        if(gender % 2 == 1){
+            return 1;
+        }else{
+            return 2;
+        }
+    }
+    public String getBirthday(String idCard){
+        return idCard.substring(6).substring(0, 4)+"-"+idCard.substring(10).substring(0, 2)+"-"+idCard.substring(12).substring(0,2);
+    }
+
+
+    public static void getFileByBytes(byte[] bytes, String filePath, String fileName) {
+        BufferedOutputStream bos = null;
+        FileOutputStream fos = null;
+        File file = null;
+        try {
+            File dir = new File(filePath);
+            if (!dir.exists()) {// 判断文件目录是否存在
+                dir.mkdirs();
+            }
+            file = new File(filePath + fileName);
+            fos = new FileOutputStream(file);
+            bos = new BufferedOutputStream(fos);
+            bos.write(bytes);
+        } catch (Exception e) {
+            e.printStackTrace();
+        } finally {
+            if (bos != null) {
+                try {
+                    bos.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+            if (fos != null) {
+                try {
+                    fos.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveSubSelectionServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveSubSelectionServiceImpl.java
new file mode 100644
index 0000000..101ca44
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveSubSelectionServiceImpl.java
@@ -0,0 +1,19 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.service_community.dao.ComActReserveSubSelectionMapper;
+import com.panzhihua.service_community.model.dos.ComActReserveSubSelectionDO;
+import com.panzhihua.service_community.service.ComActReserveSubSelectionService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * @auther lyq
+ * @create 2021-08-23 10:34:13
+ * @describe 预约登记题目选项 服务实现类
+ */
+@Slf4j
+@Service
+public class ComActReserveSubSelectionServiceImpl extends ServiceImpl<ComActReserveSubSelectionMapper, ComActReserveSubSelectionDO> implements ComActReserveSubSelectionService {
+
+}
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
new file mode 100644
index 0000000..ea6c1ad
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActReserveSubServiceImpl.java
@@ -0,0 +1,55 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.reserve.ComActReserveSubListVO;
+import com.panzhihua.service_community.dao.ComActReserveSubMapper;
+import com.panzhihua.service_community.model.dos.ComActReserveSubDO;
+import com.panzhihua.service_community.service.ComActReserveSubService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-08-23 10:34:03
+ * @describe 预约登记题目选项服务实现类
+ */
+@Slf4j
+@Service
+public class ComActReserveSubServiceImpl extends ServiceImpl<ComActReserveSubMapper, ComActReserveSubDO> implements ComActReserveSubService {
+
+    /**
+     * 查询预约登记题目列表
+     * @param reserveId 预约登记id
+     * @return  约登记题目列表
+     */
+    @Override
+    public R subjectListAdmin(Long reserveId){
+        List<ComActReserveSubListVO> resultList = new ArrayList<>(100);
+        resultList.add(new ComActReserveSubListVO("nub","序号"));
+        resultList.add(new ComActReserveSubListVO("time","登记时间"));
+        resultList.add(new ComActReserveSubListVO("nickName","用户昵称"));
+        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","登记流水"));
+        return R.ok(resultList);
+    }
+
+    @Override
+    public List<String> subjectSelectionListAdmin(Long reserveSubId) {
+        return baseMapper.subjectSelectionListAdmin(reserveSubId);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActServiceImpl.java
new file mode 100644
index 0000000..6e29422
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActServiceImpl.java
@@ -0,0 +1,354 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.vos.community.ComActPasswordVo;
+import com.panzhihua.common.model.vos.community.ComBasicDataVo;
+import com.panzhihua.common.model.vos.partybuilding.ComPbMemberTypeVO;
+import com.panzhihua.service_community.dao.ComPbMemberDAO;
+import com.panzhihua.service_community.util.MyAESUtil;
+import org.springframework.beans.BeanUtils;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.stereotype.Service;
+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.panzhihua.common.model.dtos.community.PageComActDTO;
+import com.panzhihua.common.model.dtos.community.switchs.SearchCommunityDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActVO;
+import com.panzhihua.common.model.vos.community.switchs.CommunitySwitchAllAppletsVO;
+import com.panzhihua.common.model.vos.community.switchs.StreetAllAppletsVO;
+import com.panzhihua.service_community.dao.ComActDAO;
+import com.panzhihua.service_community.dao.ComStreetDAO;
+import com.panzhihua.service_community.model.dos.ComActDO;
+import com.panzhihua.service_community.model.dos.ComStreetDO;
+import com.panzhihua.service_community.service.ComActService;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 社区
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-15 10:13
+ **/
+@Service
+public class ComActServiceImpl implements ComActService {
+    @Resource
+    private ComActDAO comActDAO;
+    @Resource
+    private ComStreetDAO comStreetDAO;
+    @Resource
+    private ComPbMemberDAO comPbMemberDAO;
+
+    /**
+     * 新增社区
+     *
+     * @param comActVO
+     *            社区信息
+     * @return 新增结果
+     */
+    @Override
+    public R addCommunity(ComActVO comActVO) {
+        String password = comActVO.getPassword();
+        String encode = new BCryptPasswordEncoder().encode(password);
+        comActVO.setPassword(encode);
+        ComStreetDO comStreetDO = comStreetDAO.selectById(comActVO.getStreetId());
+        if (comStreetDO == null) {
+            return R.fail("当前街道不存在!");
+        }
+        ComActDO comActDO = new ComActDO();
+        Integer integer =
+            comActDAO.selectCount(new QueryWrapper<ComActDO>().lambda()
+                    .eq(ComActDO::getName, comActVO.getName())
+                    .eq(ComActDO::getCityCode,comActVO.getCityCode())
+                    .eq(ComActDO::getAreaCode,comActVO.getAreaCode())
+                    .eq(ComActDO::getProvinceCode,comActVO.getProvinceCode())
+                    .eq(ComActDO::getAppId,comActVO.getAppId())
+            );
+        if (integer > 0) {
+            return R.fail("社区已经存在");
+        }
+        BeanUtils.copyProperties(comActVO, comActDO);
+        comActDO.setPlaintextPassword(password);
+        int insert = comActDAO.insert(comActDO);
+        if (insert > 0) {
+            ComActDO comActDO1 =
+                comActDAO.selectOne(new QueryWrapper<ComActDO>().lambda()
+                        .eq(ComActDO::getCommunityId, comActVO.getCommunityId())
+                );
+            BeanUtils.copyProperties(comActDO1, comActVO);
+            return R.ok(comActVO);
+        }
+        return R.fail();
+    }
+
+    /**
+     * 编辑社区
+     *
+     * @param comActVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @Override
+    public R putCommunity(ComActVO comActVO) {
+        ComActDO comActDO = new ComActDO();
+        String password = comActVO.getPassword();
+        String account = comActVO.getAccount();
+        Long communityId = comActVO.getCommunityId();
+        // String contacts = comActVO.getContacts();
+        int a = 0;
+        if (!ObjectUtils.isEmpty(password)) {
+            String encode = new BCryptPasswordEncoder().encode(password);
+            comActVO.setPassword(encode);
+            comActDO.setPlaintextPassword(password);
+            a = 1;
+        }
+        ComStreetDO comStreetDO = comStreetDAO.selectById(comActVO.getStreetId());
+        if (comStreetDO == null) {
+            return R.fail("当前街道不存在!");
+        }
+        // if(!ObjectUtils.isEmpty(account)||!ObjectUtils.isEmpty(contacts)){
+        // a=1;
+        // }
+        BeanUtils.copyProperties(comActVO, comActDO);
+//        ComActDO selectOne = comActDAO.selectOne(new QueryWrapper<ComActDO>().lambda().eq(ComActDO::getAccount, account));
+//        if (null != selectOne && selectOne.getAccount().equals(comActVO.getAccount())) {
+//            return R.fail("该登录账号重复,请重新修改");
+//        }
+        int update = comActDAO.updateById(comActDO);
+        if (update > 0) {
+            if (a == 1) {
+                // 修改登录账户的密码
+                comActDAO.updateAccountPassword(comActVO.getPassword(), account, communityId);
+            }
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 查询社区
+     *
+     * @param comActVO
+     *            登录人的经纬度、或者指定区域的社区
+     * @return 社区集合
+     */
+    @Override
+    public R listCommunity(ComActVO comActVO) {
+        List<ComActVO> comActVOS = comActDAO.listCommunity(comActVO);
+        return R.ok(comActVOS);
+    }
+
+    /**
+     * 社区详情
+     *
+     * @param communityId
+     *            社区id
+     * @return 社区详情
+     */
+    @Override
+    public R detailCommunity(Long communityId) {
+        ComActDO comActDO = comActDAO.selectById(communityId);
+        if (ObjectUtils.isEmpty(comActDO)) {
+            return R.fail();
+        }
+        ComActVO comActVO = new ComActVO();
+        BeanUtils.copyProperties(comActDO, comActVO);
+        comActVO.setAreaName(comActDAO.selectAreaName(comActVO.getAreaCode()));
+        comActVO.setAccount(null);
+        comActVO.setPassword(null);
+        comActVO.setAddress(null);
+        comActVO.setContacts(null);
+        comActVO.setCreateAt(null);
+        comActVO.setState(null);
+        comActVO.setDistance(null);
+        return R.ok(comActVO);
+    }
+
+    /**
+     * 分页查询社区
+     *
+     * @param pageComActDTO
+     *            查询参数
+     * @return 分页集合
+     */
+    @Override
+    public R pageCommunity(PageComActDTO pageComActDTO) {
+        Page page = new Page<>();
+        Long pageNum = pageComActDTO.getPageNum();
+        Long pageSize = pageComActDTO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<ComActVO> iPage = comActDAO.pageCommunity(page, pageComActDTO);
+        return R.ok(iPage);
+    }
+
+    /**
+     * 查询平台所有的社区
+     *
+     * @return 社区集合 按照创建顺序倒序排列
+     */
+    @Override
+    public R listCommunityAll(String areaCode) {
+        List<ComActDO> comActDOS = comActDAO.selectList(new QueryWrapper<ComActDO>().lambda().eq(ComActDO::getState, 0)
+            .eq(ComActDO::getAreaCode, areaCode).orderByDesc(ComActDO::getCreateAt));
+        List<ComActVO> comActVOS = new ArrayList<>();
+        if (!ObjectUtils.isEmpty(comActDOS)) {
+            comActDOS.forEach(comActDO -> {
+                ComActVO comActVO = new ComActVO();
+                BeanUtils.copyProperties(comActDO, comActVO);
+                comActVOS.add(comActVO);
+            });
+        }
+        return R.ok(comActVOS);
+    }
+
+    /**
+     * 删除社区
+     *
+     * @param communityId
+     *            社区id
+     * @return 删除结果
+     */
+    @Override
+    public R delectCommunity(Long communityId) {
+        int delete = comActDAO.deleteById(communityId);
+        if (delete > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 综治后台-查询社区列表
+     * 
+     * @return 社区列表
+     */
+    @Override
+    public R getCommunityLists(String appId) {
+        return R.ok(this.comActDAO.getCommunityLists(appId));
+    }
+
+    @Override
+    public R getWestCommunityLists(String areaCode) {
+        return R.ok(this.comActDAO.getWestCommunityLists(areaCode));
+    }
+
+    /**
+     * 查询社区所有列表
+     * 
+     * @return 社区列表
+     */
+    @Override
+    public R getCommunityAllList(String appId) {
+        // 查询街道列表
+        List<StreetAllAppletsVO> streetList = this.comActDAO.getStreetList(appId);
+        streetList.forEach(street -> {
+            // 查询街道下社区列表
+            List<CommunitySwitchAllAppletsVO> communityList =
+                this.comActDAO.getCommunityListByStreetId(street.getStreetId());
+            if (!communityList.isEmpty()) {
+                street.setChildList(communityList);
+                street.setCount(communityList.size());
+            }
+        });
+        streetList = streetList.stream().sorted(Comparator.comparing(StreetAllAppletsVO::getCount).reversed())
+            .collect(Collectors.toList());
+        return R.ok(streetList);
+    }
+
+    /**
+     * 根据名字查询所有社区列表
+     * 
+     * @param name
+     *            社区名字
+     * @return 社区列表
+     */
+    @Override
+    public R communitySwitchSearchList(String name,String appId) {
+        return R.ok(this.comActDAO.getCommunityListByName(name,appId));
+    }
+
+    /**
+     * 根据经纬度以及距离搜索附近社区列表
+     * 
+     * @param communityDTO
+     *            请求参数
+     * @return 社区列表
+     */
+    @Override
+    public R communitySwitchSearchDistanceList(SearchCommunityDTO communityDTO) {
+        return R.ok(this.comActDAO.getCommunityListByNearby(communityDTO));
+    }
+
+    @Override
+    public R getCommunityPassword(Long communityId){
+        ComActPasswordVo comActPasswordVo=comActDAO.getCommunityPassword(communityId);
+        try {
+            comActPasswordVo.setPassword(MyAESUtil.Decrypt(comActPasswordVo.getPassword(),"Ryo7M3n8loC5Abcd"));
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return R.ok(comActPasswordVo);
+    }
+    @Override
+    public R selectIds(Long id){
+        return R.ok(this.comActDAO.selectIds(id));
+    }
+
+    @Override
+    public R selectBasicData(){
+        //社区数
+        Integer community = comActDAO.countCommunity();
+        //商家数
+        Integer merchants = comActDAO.countMerchants();
+        //党员数
+        Integer pbMember = comActDAO.countPbMember();
+        //报道单位
+        Integer pbUnit = comActDAO.countPbUnit();
+        //实有人口
+        Integer population = comActDAO.countPopulation();
+        //实有房屋
+        Integer populationHouse = comActDAO.countPopulationHouse();
+        //社会组织
+        Integer socialOrg = comActDAO.countSocialOrg();
+        //志愿者
+        Integer volunteer = comActDAO.countVolunteer();
+
+        ComBasicDataVo comBasicDataVo = new ComBasicDataVo();
+        comBasicDataVo.setCommunity(community);
+        comBasicDataVo.setMerchants(merchants);
+        comBasicDataVo.setPbMember(pbMember);
+        comBasicDataVo.setPbUnit(pbUnit);
+        comBasicDataVo.setPopulation(population);
+        comBasicDataVo.setPopulationHouse(populationHouse);
+        comBasicDataVo.setSocialOrg(socialOrg);
+        comBasicDataVo.setVolunteer(volunteer);
+        return R.ok(comBasicDataVo);
+    }
+
+    @Override
+    public R statisticsPbMemberType(){
+        List<ComPbMemberTypeVO> comPbMemberTypeVOS = comPbMemberDAO.statisticsPbMemberType();
+        return R.ok(comPbMemberTypeVOS);
+    }
+
+    public R selectUnitByNatureName(){
+        List<ComPbMemberTypeVO> comPbMemberTypeVOS = comPbMemberDAO.selectUnitByNatureName();
+        return R.ok(comPbMemberTypeVOS);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialMemberServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialMemberServiceImpl.java
new file mode 100644
index 0000000..0e6adf5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialMemberServiceImpl.java
@@ -0,0 +1,119 @@
+package com.panzhihua.service_community.service.impl;
+
+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.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.ComActSocialMemberVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.user.AdministratorsUserVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.service_community.dao.ComActSocialOrgDao;
+import com.panzhihua.service_community.entity.ComActSocialMember;
+import com.panzhihua.service_community.dao.ComActSocialMemberDao;
+import com.panzhihua.service_community.entity.ComActSocialOrg;
+import com.panzhihua.service_community.service.ComActSocialMemberService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+import static java.util.Objects.nonNull;
+
+/**
+ * 社会组织成员表(ComActSocialMember)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-10-22 09:52:47
+ */
+@Slf4j
+@Service
+public class ComActSocialMemberServiceImpl extends ServiceImpl<ComActSocialMemberDao, ComActSocialMember> implements ComActSocialMemberService {
+    @Resource
+    private ComActSocialMemberDao comActSocialMemberDao;
+    @Resource
+    private UserService userService;
+    @Resource
+    private ComActSocialOrgDao comActSocialOrgDao;
+    @Override
+    public R pageList(CommonPage commonPage) {
+        Integer userType = commonPage.getUserType();
+        if (nonNull(userType) && userType.equals(3)) {
+            ComActSocialOrg comActSocialOrg = comActSocialOrgDao.selectOne(new LambdaQueryWrapper<ComActSocialOrg>()
+                    .eq(ComActSocialOrg::getUserId, commonPage.getUserId()));
+            if (nonNull(comActSocialOrg)) {
+                commonPage.setParamId(comActSocialOrg.getId());
+            }
+        }
+        return R.ok(this.comActSocialMemberDao.pageList(new Page(commonPage.getPage(),commonPage.getSize()),commonPage));
+    }
+
+    @Override
+    public R insert(ComActSocialMemberVO comActSocialMemberVO) {
+        ComActSocialMember comActSocialMember=new ComActSocialMember();
+        BeanUtils.copyProperties(comActSocialMemberVO,comActSocialMember);
+        Integer count=this.comActSocialMemberDao.selectCount(new QueryWrapper<ComActSocialMember>().lambda().eq(ComActSocialMember::getAccount,comActSocialMemberVO.getAccount()).eq(ComActSocialMember::getName,comActSocialMemberVO.getName()));
+        if(count>0){
+            return R.fail("姓名或账号已存在");
+        }
+        AdministratorsUserVO administratorsUserVO=new AdministratorsUserVO();
+        administratorsUserVO.setType(3);
+        administratorsUserVO.setAccount(comActSocialMemberVO.getAccount());
+        administratorsUserVO.setPassword(comActSocialMemberVO.getPassword());
+        //根据roleId判断是普通社会组织还是定制三社
+        administratorsUserVO.setSocialType(3);
+        administratorsUserVO.setRoleId(777777777L);
+        if(comActSocialMemberVO.getStreetId()!=null){
+            administratorsUserVO.setStreetId(comActSocialMemberVO.getStreetId());
+        }
+        administratorsUserVO.setCommunityId(comActSocialMemberVO.getCommunityId());
+        administratorsUserVO.setName(comActSocialMemberVO.getName());
+        administratorsUserVO.setPhone(comActSocialMemberVO.getPhone());
+        R r=userService.addUserBackstageProperty(administratorsUserVO);
+        if(R.isOk(r)){
+            comActSocialMember.setCreateTime(new Date());
+            comActSocialMember.setUserId(Long.parseLong(r.getData().toString()));
+            this.comActSocialMemberDao.insert(comActSocialMember);
+            return R.ok();
+        }
+        return r;
+    }
+
+    @Override
+    public R update(ComActSocialMemberVO comActSocialMemberVO) {
+        ComActSocialMember comActSocialMember=this.comActSocialMemberDao.selectById(comActSocialMemberVO.getId());
+        if(comActSocialMember!=null){
+            if(comActSocialMemberVO.getStatus()==0){
+                AdministratorsUserVO administratorsUserVO=new AdministratorsUserVO();
+                administratorsUserVO.setUserId(comActSocialMember.getUserId());
+                administratorsUserVO.setStatus(0);
+                userService.putUserBackstage(administratorsUserVO);
+            }
+            ComActSocialMember comActSocialMember1=new ComActSocialMember();
+            BeanUtils.copyProperties(comActSocialMemberVO,comActSocialMember1);
+            return this.comActSocialMemberDao.updateById(comActSocialMember1)>0?R.ok():R.fail();
+        }
+        return R.fail("参数错误");
+    }
+
+    @Override
+    public R detail(Long id) {
+        return R.ok(this.comActSocialMemberDao.detail(id));
+    }
+
+    @Override
+    public R delete(Long id) {
+        ComActSocialMember comActSocialMember=this.comActSocialMemberDao.selectById(id);
+        if(comActSocialMember!=null){
+            AdministratorsUserVO administratorsUserVO=new AdministratorsUserVO();
+            administratorsUserVO.setUserId(comActSocialMember.getUserId());
+            userService.deleteUserBackstage(administratorsUserVO);
+            return this.comActSocialMemberDao.deleteById(id)>0?R.ok():R.fail();
+        }
+        return R.fail("参数错误");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialOrgHatchAuditScheduleServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialOrgHatchAuditScheduleServiceImpl.java
new file mode 100644
index 0000000..e45f0ba
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialOrgHatchAuditScheduleServiceImpl.java
@@ -0,0 +1,20 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.service_community.dao.ComActSocialOrgHatchAuditScheduleDAO;
+import com.panzhihua.service_community.entity.ComActSocialOrgHatchAuditSchedule;
+import com.panzhihua.service_community.service.ComActSocialOrgHatchAuditScheduleService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 社会组织孵化申请进度表(ComActSocialOrgHatchAuditSchedule)表服务实现类
+ *
+ * @author makejava
+ * @since 2022-04-18 15:10:48
+ */
+@Service("comActSocialOrgHatchAuditScheduleService")
+public class ComActSocialOrgHatchAuditScheduleServiceImpl
+    extends ServiceImpl<ComActSocialOrgHatchAuditScheduleDAO, ComActSocialOrgHatchAuditSchedule>
+    implements ComActSocialOrgHatchAuditScheduleService {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialOrgHatchAuditServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialOrgHatchAuditServiceImpl.java
new file mode 100644
index 0000000..97e311a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialOrgHatchAuditServiceImpl.java
@@ -0,0 +1,231 @@
+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 javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.community.social.HatchAuditProcessDTO;
+import com.panzhihua.common.model.dtos.community.social.PageSocialOrgHatchAuditDTO;
+import com.panzhihua.common.model.dtos.community.social.SocialOrgHatchAuditDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.social.SocialOrgHatchAuditScheduleVO;
+import com.panzhihua.common.model.vos.community.social.SocialOrgHatchAuditVO;
+import com.panzhihua.service_community.dao.ComActSocialOrgHatchAuditDAO;
+import com.panzhihua.service_community.dao.ComActSocialOrgHatchAuditScheduleDAO;
+import com.panzhihua.service_community.dao.ComActSocialOrgHatchDAO;
+import com.panzhihua.service_community.dao.SysConfMapper;
+import com.panzhihua.service_community.entity.ComActSocialOrgHatch;
+import com.panzhihua.service_community.entity.ComActSocialOrgHatchAudit;
+import com.panzhihua.service_community.entity.ComActSocialOrgHatchAuditSchedule;
+import com.panzhihua.service_community.model.dos.SysConfDO;
+import com.panzhihua.service_community.service.ComActSocialOrgHatchAuditService;
+
+/**
+ * 社会组织孵化申请表(ComActSocialOrgHatchAudit)表服务实现类
+ *
+ * @author makejava
+ * @since 2022-04-18 14:09:53
+ */
+@Service("comActSocialOrgHatchAuditService")
+public class ComActSocialOrgHatchAuditServiceImpl extends ServiceImpl<ComActSocialOrgHatchAuditDAO, ComActSocialOrgHatchAudit> implements ComActSocialOrgHatchAuditService {
+
+    private static final String SOCIAL_ORG_HATCH_AUDIT_PROCESS_KEY = "SOCIAL_ORG_PROCESS";
+    private static final String SOCIAL_ORG_HATCH_AUDIT_PROCESS_NAME = "社会组织孵化流程";
+
+    @Resource
+    private ComActSocialOrgHatchDAO comActSocialOrgHatchDAO;
+    @Resource
+    private ComActSocialOrgHatchAuditScheduleDAO comActSocialOrgHatchAuditScheduleDAO;
+    @Resource
+    private SysConfMapper sysConfMapper;
+
+    /**
+     * 分页查询孵化申请
+     * @param pageHatchAuditDTO
+     * @return
+     */
+    @Override
+    public R pageHatchAudit(PageSocialOrgHatchAuditDTO pageHatchAuditDTO) {
+        Page page = new Page<>();
+        page.setSize(pageHatchAuditDTO.getPageSize());
+        page.setCurrent(pageHatchAuditDTO.getPageNum());
+        return R.ok(this.baseMapper.pageHatchAudit(page, pageHatchAuditDTO));
+    }
+
+    /**
+     * 查看孵化申请详情
+     * @param id
+     * @return
+     */
+    @Override
+    public R detailHatchAudit(Long id) {
+        return R.ok(this.baseMapper.detailHatchAudit(id));
+    }
+
+    /**
+     * 修改孵化申请
+     * @param hatchAuditDTO
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R updateHatchAudit(SocialOrgHatchAuditDTO hatchAuditDTO) {
+        ComActSocialOrgHatchAudit hatchAudit = this.baseMapper.selectById(hatchAuditDTO.getId());
+        if (isNull(hatchAudit)) {
+            return R.fail("资源不存在");
+        }
+        Integer preStatus = hatchAudit.getStatus();
+        Integer status = hatchAuditDTO.getStatus();
+        BeanUtils.copyProperties(hatchAuditDTO, hatchAudit);
+        int result = this.baseMapper.updateById(hatchAudit);
+        if (nonNull(status) && !preStatus.equals(status) && status.equals(1)) {
+            //重新提交
+            if (result > 0) {
+                //创建申请进度记录
+                ComActSocialOrgHatchAuditSchedule hatchAuditSchedule = new ComActSocialOrgHatchAuditSchedule();
+                hatchAuditSchedule.setAuditId(hatchAuditDTO.getId());
+                hatchAuditSchedule.setStage(ComActSocialOrgHatchAuditSchedule.Stage.cxtj);
+                comActSocialOrgHatchAuditScheduleDAO.insert(hatchAuditSchedule);
+            }
+        } else if (nonNull(status) && !preStatus.equals(status) && status.equals(2)) {
+            //审核通过
+            if (result > 0) {
+                //创建孵化数据
+                ComActSocialOrgHatchAudit newHatchAudit = this.baseMapper.selectById(hatchAuditDTO.getId());
+                ComActSocialOrgHatch socialOrgHatch = new ComActSocialOrgHatch();
+                BeanUtils.copyProperties(newHatchAudit, socialOrgHatch);
+                socialOrgHatch.setCreatedAt(null);
+                socialOrgHatch.setId(null);
+                socialOrgHatch.setStatus(1);
+                socialOrgHatch.setUpdatedAt(null);
+                socialOrgHatch.setAuditId(hatchAudit.getId());
+                comActSocialOrgHatchDAO.insert(socialOrgHatch);
+                //创建申请进度记录
+                ComActSocialOrgHatchAuditSchedule hatchAuditSchedule = new ComActSocialOrgHatchAuditSchedule();
+                hatchAuditSchedule.setAuditId(hatchAuditDTO.getId());
+                hatchAuditSchedule.setStage(ComActSocialOrgHatchAuditSchedule.Stage.shtg);
+                comActSocialOrgHatchAuditScheduleDAO.insert(hatchAuditSchedule);
+            }
+        } else if (nonNull(status) && !preStatus.equals(status) && status.equals(3)) {
+            //驳回申请
+            if (result > 0) {
+                //创建申请进度记录
+                ComActSocialOrgHatchAuditSchedule hatchAuditSchedule = new ComActSocialOrgHatchAuditSchedule();
+                hatchAuditSchedule.setAuditId(hatchAuditDTO.getId());
+                hatchAuditSchedule.setStage(ComActSocialOrgHatchAuditSchedule.Stage.ybh);
+                hatchAuditSchedule.setDetail(hatchAuditDTO.getRefuseReason());
+                comActSocialOrgHatchAuditScheduleDAO.insert(hatchAuditSchedule);
+            }
+        }
+        return result > 0 ? R.ok() : R.fail("操作失败,请重新尝试");
+    }
+
+    /**
+     * 获取孵化流程配置
+     * @return
+     */
+    @Override
+    public R getHatchAuditProcess() {
+        return R.ok(sysConfMapper.getSysConfValue(SOCIAL_ORG_HATCH_AUDIT_PROCESS_KEY, null));
+    }
+
+    /**
+     * 修改孵化流程配置
+     * @param processDTO
+     * @return
+     */
+    @Override
+    public R putHatchAuditProcess(HatchAuditProcessDTO processDTO) {
+        SysConfDO sysConfDO = sysConfMapper.selectOne(new LambdaQueryWrapper<SysConfDO>().eq(SysConfDO::getCode, SOCIAL_ORG_HATCH_AUDIT_PROCESS_KEY));
+        int result = 0;
+        if (isNull(sysConfDO)) {
+            sysConfDO=new SysConfDO();
+            //创建
+            sysConfDO.setName(SOCIAL_ORG_HATCH_AUDIT_PROCESS_NAME);
+            sysConfDO.setCode(SOCIAL_ORG_HATCH_AUDIT_PROCESS_KEY);
+            sysConfDO.setDescription(SOCIAL_ORG_HATCH_AUDIT_PROCESS_NAME);
+            sysConfDO.setCreateAt(new Date());
+            result = sysConfMapper.insert(sysConfDO);
+        } else {
+            sysConfDO.setValue(processDTO.getProcess());
+            result = sysConfMapper.update(sysConfDO, new LambdaQueryWrapper<SysConfDO>().eq(SysConfDO::getCode, SOCIAL_ORG_HATCH_AUDIT_PROCESS_KEY));
+        }
+        return result > 0 ? R.ok() : R.fail("操作失败,请重新尝试");
+    }
+
+    /**
+     * 新增孵化申请
+     * @param hatchAuditDTO
+     * @return
+     */
+    @Override
+    public R addHatchAudit(SocialOrgHatchAuditDTO hatchAuditDTO) {
+        SocialOrgHatchAuditVO orgHatchAuditVO = this.baseMapper.getHatchAuditSchedule(hatchAuditDTO.getUserId());
+        if (nonNull(orgHatchAuditVO)) {
+            return R.fail("请勿重复申请");
+        }
+        ComActSocialOrgHatchAudit orgHatchAudit = new ComActSocialOrgHatchAudit();
+        BeanUtils.copyProperties(hatchAuditDTO, orgHatchAudit);
+        orgHatchAudit.setStatus(1);
+        int result = this.baseMapper.insert(orgHatchAudit);
+        if (result > 0) {
+            //创建申请进度记录
+            ComActSocialOrgHatchAuditSchedule hatchAuditSchedule = new ComActSocialOrgHatchAuditSchedule();
+            hatchAuditSchedule.setAuditId(orgHatchAudit.getId());
+            hatchAuditSchedule.setStage(ComActSocialOrgHatchAuditSchedule.Stage.tjzl);
+            comActSocialOrgHatchAuditScheduleDAO.insert(hatchAuditSchedule);
+            return R.ok();
+        }
+        return R.fail("操作失败,请重新尝试");
+    }
+
+    /**
+     * 查看孵化申请审核进度
+     * @param userId
+     * @return
+     */
+    @Override
+    public R getHatchAuditSchedule(Long userId) {
+        SocialOrgHatchAuditVO orgHatchAuditVO = this.baseMapper.getHatchAuditSchedule(userId);
+        if (nonNull(orgHatchAuditVO)) {
+            List<ComActSocialOrgHatchAuditSchedule> schedules = comActSocialOrgHatchAuditScheduleDAO.selectList(new LambdaQueryWrapper<ComActSocialOrgHatchAuditSchedule>()
+                    .eq(ComActSocialOrgHatchAuditSchedule::getAuditId, orgHatchAuditVO.getId()).orderByAsc(ComActSocialOrgHatchAuditSchedule::getCreatedAt));
+            if (!schedules.isEmpty()) {
+                List<SocialOrgHatchAuditScheduleVO> scheduleVOList = new ArrayList<>();
+                schedules.stream().forEach(e -> {
+                    SocialOrgHatchAuditScheduleVO scheduleVO = new SocialOrgHatchAuditScheduleVO();
+                    BeanUtils.copyProperties(e, scheduleVO);
+                    scheduleVOList.add(scheduleVO);
+                });
+                orgHatchAuditVO.setScheduleVOList(scheduleVOList);
+            }
+        }
+        return R.ok(orgHatchAuditVO);
+    }
+
+    /**
+     * 删除孵化申请详情
+     * @param id
+     * @return
+     */
+    @Override
+    public R deleteHatchAudit(Long id) {
+        this.baseMapper.deleteById(id);
+        comActSocialOrgHatchAuditScheduleDAO.delete(new LambdaQueryWrapper<ComActSocialOrgHatchAuditSchedule>()
+                .eq(ComActSocialOrgHatchAuditSchedule::getAuditId, id));
+        return R.ok();
+    }
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialOrgHatchServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialOrgHatchServiceImpl.java
new file mode 100644
index 0000000..ced04a7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialOrgHatchServiceImpl.java
@@ -0,0 +1,95 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.model.dtos.community.social.PageSocialOrgHatchDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.social.SocialOrgHatchVO;
+import com.panzhihua.service_community.dao.ComActSocialOrgHatchAuditDAO;
+import com.panzhihua.service_community.dao.ComActSocialOrgHatchAuditScheduleDAO;
+import com.panzhihua.service_community.dao.ComActSocialOrgHatchDAO;
+import com.panzhihua.service_community.entity.ComActSocialOrgHatch;
+import com.panzhihua.service_community.entity.ComActSocialOrgHatchAudit;
+import com.panzhihua.service_community.entity.ComActSocialOrgHatchAuditSchedule;
+import com.panzhihua.service_community.service.ComActSocialOrgHatchService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+import static java.util.Objects.nonNull;
+
+/**
+ * 社会组织孵化表(ComActSocialOrgHatch)表服务实现类
+ *
+ * @author makejava
+ * @since 2022-04-18 14:09:53
+ */
+@Service("comActSocialOrgHatchService")
+public class ComActSocialOrgHatchServiceImpl extends ServiceImpl<ComActSocialOrgHatchDAO, ComActSocialOrgHatch> implements ComActSocialOrgHatchService {
+
+    @Resource
+    private ComActSocialOrgHatchAuditDAO comActSocialOrgHatchAuditDAO;
+    @Resource
+    private ComActSocialOrgHatchAuditScheduleDAO comActSocialOrgHatchAuditScheduleDAO;
+
+    /**
+     * 分页查询孵化数据
+     * @param pageHatchDTO
+     * @return
+     */
+    @Override
+    public R pageOrgHatch(PageSocialOrgHatchDTO pageHatchDTO) {
+        Page page = new Page<>();
+        page.setSize(pageHatchDTO.getPageSize());
+        page.setCurrent(pageHatchDTO.getPageNum());
+        return R.ok(this.baseMapper.pageOrgHatch(page, pageHatchDTO));
+    }
+
+    /**
+     * 查看孵化数据详情
+     * @param id
+     * @return
+     */
+    @Override
+    public R detailOrgHatch(Long id) {
+        return R.ok(this.baseMapper.detailOrgHatch(id));
+    }
+
+    /**
+     * 修改孵化状态
+     * @param id
+     * @param status
+     * @return
+     */
+    @Override
+    public R updateOrgHatchStatus(Long id, Integer status) {
+        ComActSocialOrgHatch socialOrgHatch = new ComActSocialOrgHatch();
+        socialOrgHatch.setStatus(status);
+        int result = this.baseMapper.update(socialOrgHatch, new LambdaQueryWrapper<ComActSocialOrgHatch>().eq(ComActSocialOrgHatch::getId, id));
+        return result > 0 ? R.ok() : R.fail("操作失败,请重新尝试");
+    }
+
+    /**
+     * 删除孵化数据
+     * @param id
+     * @return
+     */
+    @Override
+    public R deleteOrgHatch(Long id) {
+        ComActSocialOrgHatch orgHatch = this.baseMapper.selectById(id);
+        Long auditId = orgHatch.getAuditId();
+        if (nonNull(orgHatch)) {
+            int result = this.baseMapper.deleteById(id);
+            if (result > 0) {
+                comActSocialOrgHatchAuditDAO.delete(new LambdaQueryWrapper<ComActSocialOrgHatchAudit>()
+                        .eq(ComActSocialOrgHatchAudit::getId, auditId));
+                comActSocialOrgHatchAuditScheduleDAO.delete(new LambdaQueryWrapper<ComActSocialOrgHatchAuditSchedule>()
+                        .eq(ComActSocialOrgHatchAuditSchedule::getAuditId, auditId));
+            }
+        }
+        return R.ok();
+    }
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialOrgServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialOrgServiceImpl.java
new file mode 100644
index 0000000..a55482d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialOrgServiceImpl.java
@@ -0,0 +1,135 @@
+package com.panzhihua.service_community.service.impl;
+
+import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActSocialOrgVO;
+import com.panzhihua.common.model.vos.user.AdministratorsUserVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.service_community.dao.ComActDAO;
+import com.panzhihua.service_community.entity.ComActCommittee;
+import com.panzhihua.service_community.entity.ComActSocialOrg;
+import com.panzhihua.service_community.dao.ComActSocialOrgDao;
+import com.panzhihua.service_community.model.dos.ComActDO;
+import com.panzhihua.service_community.service.ComActSocialOrgService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+
+/**
+ * 社会组织(ComActSocialOrg)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-09-17 10:45:30
+ */
+@Slf4j
+@Service
+public class ComActSocialOrgServiceImpl extends ServiceImpl<ComActSocialOrgDao, ComActSocialOrg> implements ComActSocialOrgService {
+@Resource
+private ComActSocialOrgDao comActSocialOrgDao;
+@Resource
+private UserService userService;
+@Resource
+private ComActDAO comActDAO;
+    @Override
+    public R pageList(CommonPage commonPage) {
+        return R.ok(comActSocialOrgDao.pageList(new Page(commonPage.getPage(),commonPage.getSize()),commonPage));
+    }
+
+    @Override
+    public R selectById(Long id) {
+        return R.ok(comActSocialOrgDao.detail(id));
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R insert(ComActSocialOrgVO comActSocialOrgVO) {
+        if(comActSocialOrgVO!=null){
+            ComActSocialOrg comActSocialOrg=new ComActSocialOrg();
+            BeanUtils.copyProperties(comActSocialOrgVO,comActSocialOrg);
+            AdministratorsUserVO administratorsUserVO=new AdministratorsUserVO();
+            administratorsUserVO.setType(3);
+            administratorsUserVO.setAccount(comActSocialOrgVO.getAccount());
+            administratorsUserVO.setPassword(comActSocialOrgVO.getPassword());
+            //根据roleId判断是普通社会组织还是定制三社
+            if(comActSocialOrgVO.getRoleId()==null){
+                administratorsUserVO.setSocialType(2);
+                administratorsUserVO.setRoleId(777777777L);
+                comActSocialOrg.setIsSociety(1);
+                Long affiliatedUnit = comActSocialOrg.getAffiliatedUnit();
+                Integer affiliatedUnitType = comActSocialOrg.getAffiliatedUnitType();
+                if (affiliatedUnitType.equals(2)) {
+                    administratorsUserVO.setCommunityId(affiliatedUnit);
+                    ComActDO comActDO = comActDAO.selectById(affiliatedUnit);
+                    comActSocialOrg.setStreetId(comActDO.getStreetId());
+                }
+                administratorsUserVO.setName(comActSocialOrgVO.getCorporationName());
+            } else {
+                administratorsUserVO.setRoleId(comActSocialOrgVO.getRoleId());
+                if(comActSocialOrg.getCommunityId()!=null){
+                    administratorsUserVO.setCommunityId(comActSocialOrg.getCommunityId());
+                    ComActDO comActDO = comActDAO.selectById(comActSocialOrg.getCommunityId());
+                    comActSocialOrg.setStreetId(comActDO.getStreetId());
+                }
+                administratorsUserVO.setName(comActSocialOrgVO.getContactName());
+            }
+            administratorsUserVO.setPhone(comActSocialOrgVO.getContactPhone());
+            R r=userService.addUserBackstageProperty(administratorsUserVO);
+            if(R.isOk(r)){
+                comActSocialOrg.setUserId(Long.parseLong(r.getData().toString()));
+                comActSocialOrg.setCreateAt(DateUtil.date());
+                this.comActSocialOrgDao.insert(comActSocialOrg);
+                return R.ok();
+            }
+            return R.fail("账号或手机号已存在");
+        }
+        return R.fail();
+    }
+
+    @Override
+    public R update(ComActSocialOrgVO comActSocialOrgVO) {
+        if(comActSocialOrgVO!=null){
+            ComActSocialOrg comActSocialOrg=new ComActSocialOrg();
+            BeanUtils.copyProperties(comActSocialOrgVO,comActSocialOrg);
+            AdministratorsUserVO administratorsUserVO=new AdministratorsUserVO();
+            if(comActSocialOrgVO.getRoleId() == null) {
+                administratorsUserVO.setRoleId(777777777L);
+            } else {
+                administratorsUserVO.setRoleId(comActSocialOrgVO.getRoleId());
+            }
+            ComActSocialOrg comPropertyBase=this.comActSocialOrgDao.selectById(comActSocialOrgVO.getId());
+            administratorsUserVO.setUserId(comPropertyBase.getUserId());
+            administratorsUserVO.setLastLoginTime(DateUtil.date());
+            administratorsUserVO.setAccount(comActSocialOrgVO.getAccount());
+            administratorsUserVO.setPassword(comActSocialOrgVO.getPassword());
+            Integer status = comActSocialOrgVO.getStatus();
+            administratorsUserVO.setStatus(status.equals(0) ? 2 : 1);
+            this.userService.putUserBackstage(administratorsUserVO);
+            this.comActSocialOrgDao.updateById(comActSocialOrg);
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R delete(Long id) {
+        ComActSocialOrg comActSocialOrg=comActSocialOrgDao.selectById(id);
+        if(comActSocialOrg!=null){
+            if(comActSocialOrg.getUserId()!=null){
+                AdministratorsUserVO administratorsUserVO=new AdministratorsUserVO();
+                administratorsUserVO.setUserId(comActSocialOrg.getUserId());
+                administratorsUserVO.setCommunityId(comActSocialOrg.getCommunityId());
+                userService.deleteUserBackstage(administratorsUserVO);
+                this.comActSocialOrgDao.deleteById(id);
+                return R.ok();
+            }
+        }
+        return R.fail("用户账号错误");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialProjectMemberServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialProjectMemberServiceImpl.java
new file mode 100644
index 0000000..ae6cee8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialProjectMemberServiceImpl.java
@@ -0,0 +1,181 @@
+package com.panzhihua.service_community.service.impl;
+
+import static java.util.Objects.nonNull;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.social.ComActSocialProjectMemberVO;
+import com.panzhihua.common.model.vos.partybuilding.ComPbServiceTeamVO;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.service_community.dao.ComActSocialMemberDao;
+import com.panzhihua.service_community.dao.ComActSocialProjectMemberDao;
+import com.panzhihua.service_community.dao.ComActSocialWorkerDao;
+import com.panzhihua.service_community.dao.ComMngVolunteerMngDAO;
+import com.panzhihua.service_community.entity.ComActSocialMember;
+import com.panzhihua.service_community.entity.ComActSocialProjectMember;
+import com.panzhihua.service_community.entity.ComActSocialWorker;
+import com.panzhihua.service_community.model.dos.ComMngVolunteerMngDO;
+import com.panzhihua.service_community.service.ComActSocialProjectMemberService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 项目人员(ComActSocialProjectMember)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-12-23 15:16:43
+ */
+@Slf4j
+@Service
+public class ComActSocialProjectMemberServiceImpl extends ServiceImpl<ComActSocialProjectMemberDao, ComActSocialProjectMember> implements ComActSocialProjectMemberService {
+
+    @Resource
+    private ComActSocialProjectMemberDao comActSocialProjectMemberDao;
+    @Resource
+    private ComActSocialWorkerDao comActSocialWorkerDao;
+    @Resource
+    private ComMngVolunteerMngDAO comMngVolunteerMngDAO;
+    @Resource
+    private ComActSocialMemberDao comActSocialMemberDao;
+
+    @Override
+    public R pageList(CommonPage commonPage) {
+        return R.ok(this.comActSocialProjectMemberDao.pageList(new Page(commonPage.getPage(),commonPage.getSize()),commonPage));
+    }
+
+    @Override
+    public R insert(ComActSocialProjectMemberVO comActSocialProjectMemberVO) {
+        if(comActSocialProjectMemberVO.getType()==1){
+            ComActSocialWorker comActSocialWorker=comActSocialWorkerDao.selectById(comActSocialProjectMemberVO.getParamId());
+            if(comActSocialWorker!=null){
+                List<ComActSocialProjectMember> list= comActSocialProjectMemberDao.selectList(new QueryWrapper<ComActSocialProjectMember>().lambda().eq(ComActSocialProjectMember::getPhone,comActSocialWorker.getTelephone()).eq(ComActSocialProjectMember::getType,comActSocialProjectMemberVO.getType()).eq(ComActSocialProjectMember::getProjectId,comActSocialProjectMemberVO.getProjectId()));
+                if(CollectionUtils.isEmpty(list)){
+                    ComActSocialProjectMember comActSocialProjectMember=new ComActSocialProjectMember();
+                    BeanUtils.copyProperties(comActSocialProjectMemberVO,comActSocialProjectMember);
+                    comActSocialProjectMember.setAge(getAge(comActSocialWorker.getIdCard()));
+                    comActSocialProjectMember.setImage(comActSocialWorker.getImage());
+                    comActSocialProjectMember.setName(comActSocialWorker.getName());
+                    comActSocialProjectMember.setPhone(comActSocialWorker.getTelephone());
+                    comActSocialProjectMember.setCreateTime(new Date());
+                    comActSocialProjectMemberDao.insert(comActSocialProjectMember);
+                    return R.ok();
+                }
+            }
+        }
+        else {
+            ComMngVolunteerMngDO comMngVolunteerMngDO=comMngVolunteerMngDAO.selectById(comActSocialProjectMemberVO.getParamId());
+            if(comMngVolunteerMngDO!=null){
+                ComActSocialProjectMember comActSocialProjectMember=new ComActSocialProjectMember();
+                BeanUtils.copyProperties(comActSocialProjectMemberVO,comActSocialProjectMember);
+                comActSocialProjectMember.setAge(comMngVolunteerMngDO.getAge());
+                comActSocialProjectMember.setImage(comMngVolunteerMngDO.getPhotoPath());
+                comActSocialProjectMember.setName(comMngVolunteerMngDO.getName());
+                comActSocialProjectMember.setPhone(comMngVolunteerMngDO.getPhone());
+                comActSocialProjectMember.setCreateTime(new Date());
+                comActSocialProjectMemberDao.insert(comActSocialProjectMember);
+                return R.ok();
+            }
+        }
+        return R.fail("参数异常");
+    }
+
+    @Override
+    public R insertBatch(ComActSocialProjectMemberVO comActSocialProjectMemberVO) {
+        if(CollectionUtils.isNotEmpty(comActSocialProjectMemberVO.getIds())){
+            Integer type = comActSocialProjectMemberVO.getType();
+            comActSocialProjectMemberVO.getIds().forEach(id ->{
+                if(type ==1) {
+                    ComActSocialWorker comActSocialWorker=comActSocialWorkerDao.selectById(id);
+                    if(comActSocialWorker!=null){
+                        List<ComActSocialProjectMember> list= comActSocialProjectMemberDao.selectList(new QueryWrapper<ComActSocialProjectMember>().lambda().eq(ComActSocialProjectMember::getPhone,comActSocialWorker.getTelephone()).eq(ComActSocialProjectMember::getType, type).eq(ComActSocialProjectMember::getProjectId,comActSocialProjectMemberVO.getParamId()));
+                        if(CollectionUtils.isEmpty(list)){
+                            ComActSocialProjectMember comActSocialProjectMember=new ComActSocialProjectMember();
+                            BeanUtils.copyProperties(comActSocialProjectMemberVO,comActSocialProjectMember);
+                            comActSocialProjectMember.setAge(getAge(comActSocialWorker.getIdCard()));
+                            comActSocialProjectMember.setImage(comActSocialWorker.getImage());
+                            comActSocialProjectMember.setName(comActSocialWorker.getName());
+                            comActSocialProjectMember.setPhone(comActSocialWorker.getTelephone());
+                            comActSocialProjectMember.setCreateTime(new Date());
+                            comActSocialProjectMember.setType(1);
+                            comActSocialProjectMember.setCommunityId(comActSocialWorker.getCommunityId());
+                            comActSocialProjectMember.setProjectId(comActSocialProjectMemberVO.getParamId());
+                            comActSocialProjectMemberDao.insert(comActSocialProjectMember);
+                        }
+                    }
+                } else if (type == 2) {
+                    ComMngVolunteerMngDO comMngVolunteerMngDO=comMngVolunteerMngDAO.selectById(id);
+                    if(comMngVolunteerMngDO!=null){
+                        List<ComActSocialProjectMember> list= comActSocialProjectMemberDao.selectList(new QueryWrapper<ComActSocialProjectMember>().lambda().eq(ComActSocialProjectMember::getPhone,comMngVolunteerMngDO.getPhone()).eq(ComActSocialProjectMember::getType, type).eq(ComActSocialProjectMember::getProjectId,comActSocialProjectMemberVO.getParamId()));
+                        if(CollectionUtils.isEmpty(list)){
+                            ComActSocialProjectMember comActSocialProjectMember=new ComActSocialProjectMember();
+                            BeanUtils.copyProperties(comActSocialProjectMemberVO,comActSocialProjectMember);
+                            comActSocialProjectMember.setAge(comMngVolunteerMngDO.getAge());
+                            comActSocialProjectMember.setImage(comMngVolunteerMngDO.getPhotoPath());
+                            comActSocialProjectMember.setName(comMngVolunteerMngDO.getName());
+                            comActSocialProjectMember.setPhone(comMngVolunteerMngDO.getPhone());
+                            comActSocialProjectMember.setCreateTime(new Date());
+                            comActSocialProjectMember.setType(2);
+                            comActSocialProjectMember.setCommunityId(comMngVolunteerMngDO.getCommunityId());
+                            comActSocialProjectMember.setProjectId(comActSocialProjectMemberVO.getParamId());
+                            comActSocialProjectMemberDao.insert(comActSocialProjectMember);
+                        }
+                    }
+                } else if (type == 3) {
+                    ComPbServiceTeamVO comPbServiceTeamVO = comActSocialMemberDao.selectPbServiceTeamById(id);
+                    if (nonNull(comPbServiceTeamVO)) {
+                        List<ComActSocialProjectMember> list= comActSocialProjectMemberDao.selectList(new QueryWrapper<ComActSocialProjectMember>().lambda().eq(ComActSocialProjectMember::getPhone,comPbServiceTeamVO.getPhone()).eq(ComActSocialProjectMember::getType, type).eq(ComActSocialProjectMember::getProjectId,comActSocialProjectMemberVO.getParamId()));
+                        if(CollectionUtils.isEmpty(list)) {
+                            ComActSocialProjectMember comActSocialProjectMember=new ComActSocialProjectMember();
+                            BeanUtils.copyProperties(comActSocialProjectMemberVO,comActSocialProjectMember);
+                            comActSocialProjectMember.setImage(comPbServiceTeamVO.getUrl());
+                            comActSocialProjectMember.setName(comPbServiceTeamVO.getName());
+                            comActSocialProjectMember.setPhone(comPbServiceTeamVO.getPhone());
+                            comActSocialProjectMember.setCreateTime(new Date());
+                            comActSocialProjectMember.setType(3);
+                            comActSocialProjectMember.setCommunityId(comPbServiceTeamVO.getCommunityId());
+                            comActSocialProjectMember.setProjectId(comActSocialProjectMemberVO.getParamId());
+                            comActSocialProjectMemberDao.insert(comActSocialProjectMember);
+                        }
+                    }
+                } else {
+                    ComActSocialMember comActSocialMember = comActSocialMemberDao.selectById(id);
+                    if (nonNull(comActSocialMember)) {
+                        List<ComActSocialProjectMember> list= comActSocialProjectMemberDao.selectList(new QueryWrapper<ComActSocialProjectMember>().lambda().eq(ComActSocialProjectMember::getPhone,comActSocialMember.getPhone()).eq(ComActSocialProjectMember::getType, type).eq(ComActSocialProjectMember::getProjectId,comActSocialProjectMemberVO.getParamId()));
+                        if(CollectionUtils.isEmpty(list)) {
+                            ComActSocialProjectMember comActSocialProjectMember=new ComActSocialProjectMember();
+                            BeanUtils.copyProperties(comActSocialProjectMemberVO,comActSocialProjectMember);
+                            comActSocialProjectMember.setAge(getAge(comActSocialMember.getIdCard()));
+                            comActSocialProjectMember.setImage(comActSocialMember.getImage());
+                            comActSocialProjectMember.setName(comActSocialMember.getName());
+                            comActSocialProjectMember.setPhone(comActSocialMember.getPhone());
+                            comActSocialProjectMember.setCreateTime(new Date());
+                            comActSocialProjectMember.setType(4);
+                            comActSocialProjectMember.setCommunityId(comActSocialProjectMemberVO.getCommunityId());
+                            comActSocialProjectMember.setProjectId(comActSocialProjectMemberVO.getParamId());
+                            comActSocialProjectMemberDao.insert(comActSocialProjectMember);
+                        }
+                    }
+                }
+            });
+        }
+        return R.ok();
+    }
+
+    public Integer getAge(String idCard){
+        Integer year=Integer.parseInt(idCard.substring(6,10));
+        Integer nowYear= DateUtils.getYear(new Date());
+        return nowYear-year;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialProjectPublicityServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialProjectPublicityServiceImpl.java
new file mode 100644
index 0000000..bb6d38a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialProjectPublicityServiceImpl.java
@@ -0,0 +1,48 @@
+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.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.dao.ComActDAO;
+import com.panzhihua.service_community.entity.ComActSocialProjectPublicity;
+import com.panzhihua.service_community.dao.ComActSocialProjectPublicityDao;
+import com.panzhihua.service_community.model.dos.ComActDO;
+import com.panzhihua.service_community.service.ComActSocialProjectPublicityService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+import static java.util.Objects.nonNull;
+
+/**
+ * 项目宣传表(ComActSocialProjectPublicity)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-12-23 14:30:55
+ */
+@Slf4j
+@Service
+public class ComActSocialProjectPublicityServiceImpl extends ServiceImpl<ComActSocialProjectPublicityDao, ComActSocialProjectPublicity> implements ComActSocialProjectPublicityService {
+
+    @Resource
+    private ComActSocialProjectPublicityDao comActSocialProjectPublicityDao;
+    @Resource
+    private ComActDAO comActDAO;
+    @Override
+    public R pageList(CommonPage commonPage) {
+        if (nonNull(commonPage.getCommunityId())) {
+            ComActDO comActDO = comActDAO.selectById(commonPage.getCommunityId());
+            if (nonNull(comActDO)) {
+                commonPage.setStreetId(comActDO.getStreetId());
+            }
+        }
+        return R.ok(comActSocialProjectPublicityDao.pageList(new Page(commonPage.getPage(),commonPage.getSize()),commonPage));
+    }
+
+    @Override
+    public R selectOne(Long id) {
+        return R.ok(comActSocialProjectPublicityDao.selectOne(id));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialProjectScheduleServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialProjectScheduleServiceImpl.java
new file mode 100644
index 0000000..e9ae2a7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialProjectScheduleServiceImpl.java
@@ -0,0 +1,31 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.ComActSocialProjectSchedule;
+import com.panzhihua.service_community.dao.ComActSocialProjectScheduleDao;
+import com.panzhihua.service_community.service.ComActSocialProjectScheduleService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+/**
+ * 项目进度表(ComActSocialProjectSchedule)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-12-23 14:31:16
+ */
+@Slf4j
+@Service
+public class ComActSocialProjectScheduleServiceImpl extends ServiceImpl<ComActSocialProjectScheduleDao, ComActSocialProjectSchedule> implements ComActSocialProjectScheduleService {
+
+    @Resource
+    private ComActSocialProjectScheduleDao comActSocialProjectScheduleDao;
+    @Override
+    public R pageList(CommonPage commonPage) {
+        return R.ok(comActSocialProjectScheduleDao.selectList(new QueryWrapper<ComActSocialProjectSchedule>().lambda().eq(ComActSocialProjectSchedule::getProjectId,commonPage.getParamId()).orderByDesc(ComActSocialProjectSchedule::getCreateTime)));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialProjectServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialProjectServiceImpl.java
new file mode 100644
index 0000000..968cdda
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialProjectServiceImpl.java
@@ -0,0 +1,241 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.model.dtos.community.social.PageProjectDTO;
+import com.panzhihua.common.model.dtos.community.social.PageProjectSignListDTO;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.social.SocialProjectVO;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.service_community.dao.ComActDAO;
+import com.panzhihua.service_community.dao.ComActSocialMemberDao;
+import com.panzhihua.service_community.dao.ComActSocialOrgDao;
+import com.panzhihua.service_community.dao.ComActSocialProjectSignDAO;
+import com.panzhihua.service_community.entity.ComActSocialMember;
+import com.panzhihua.service_community.entity.ComActSocialOrg;
+import com.panzhihua.service_community.entity.ComActSocialProject;
+import com.panzhihua.service_community.dao.ComActSocialProjectDao;
+import com.panzhihua.service_community.entity.ComActSocialProjectSign;
+import com.panzhihua.service_community.entity.ProjectRelationVO;
+import com.panzhihua.service_community.model.dos.ComActDO;
+import com.panzhihua.service_community.service.ComActSocialProjectService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+
+/**
+ * 三社联动项目表(ComActSocialProject)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-12-22 14:02:48
+ */
+@Slf4j
+@Service
+public class ComActSocialProjectServiceImpl extends ServiceImpl<ComActSocialProjectDao, ComActSocialProject> implements ComActSocialProjectService {
+
+    @Resource
+    private ComActSocialProjectDao comActSocialProjectDao;
+    @Resource
+    private ComActDAO comActDAO;
+    @Resource
+    private ComActSocialOrgDao comActSocialOrgDao;
+    @Resource
+    private ComActSocialProjectSignDAO comActSocialProjectSignDAO;
+    @Resource
+    private ComActSocialMemberDao comActSocialMemberDao;
+
+    @Override
+    public R pageList(CommonPage commonPage) {
+        if(commonPage.getParamId2()!=null){
+            ComActDO comActDO=comActDAO.selectById(commonPage.getCommunityId());
+            if(comActDO!=null){
+                commonPage.setStreetId(comActDO.getStreetId());
+            }
+        }
+        Integer userType = commonPage.getUserType();
+        if (nonNull(userType) && userType.equals(3)) {
+            ComActSocialOrg comActSocialOrg = comActSocialOrgDao.selectOne(new LambdaQueryWrapper<ComActSocialOrg>()
+                    .eq(ComActSocialOrg::getUserId, commonPage.getUserId()));
+            if (nonNull(comActSocialOrg)) {
+                commonPage.setOrgId(comActSocialOrg.getId());
+            }
+        }
+        if (nonNull(userType) && userType.equals(4)) {
+            ComActSocialMember socialMember = comActSocialMemberDao.selectOne(new LambdaQueryWrapper<ComActSocialMember>()
+                    .eq(ComActSocialMember::getUserId, commonPage.getUserId()));
+            if (nonNull(socialMember)) {
+                commonPage.setOrgId(socialMember.getOrgId());
+            }
+        }
+        IPage<SocialProjectVO> pageList = comActSocialProjectDao.pageList(new Page(commonPage.getPage(), commonPage.getSize()), commonPage);
+        setSignUpStatus(pageList.getRecords());
+        return R.ok(pageList);
+    }
+
+    private void setSignUpStatus(List<SocialProjectVO> projectVOList) {
+        if (!projectVOList.isEmpty()) {
+            projectVOList.forEach(e -> {
+                Integer status = e.getStatus();
+                Date signUpEnd = e.getSignUpEnd();
+                if (status.equals(2) && nonNull(signUpEnd)) {
+                    e.setSignUpStatus(signUpEnd.compareTo(new Date()) >= 0 ? 1 : 2);
+                } else if (!status.equals(2)) {
+                    e.setSignUpStatus(3);
+                }
+            });
+        }
+    }
+
+    @Override
+    public R getByApplet(Long id, Long userId) {
+        ComActSocialProject comActSocialProject=this.comActSocialProjectDao.selectById(id);
+        comActSocialProject.setViews(comActSocialProject.getViews()+1);
+        comActSocialProjectDao.updateById(comActSocialProject);
+        SocialProjectVO projectVO = comActSocialProjectDao.getByApplet(id);
+        if (nonNull(projectVO)) {
+            List<SocialProjectVO> list = new ArrayList<>();
+            list.add(projectVO);
+            setSignUpStatus(list);
+            ComActSocialOrg socialOrg = comActSocialOrgDao.selectOrgByUserId(userId);
+            Integer signCount = nonNull(socialOrg) ? comActSocialProjectSignDAO.selectCount(new LambdaQueryWrapper<ComActSocialProjectSign>()
+                    .eq(ComActSocialProjectSign::getProjectId, projectVO.getId()).eq(ComActSocialProjectSign::getOrgId, socialOrg.getId())) : 0;
+            if(!projectVO.getSignUpStatus().equals(1) || signCount > 0) {
+                projectVO.setIsCouldSign(2);
+            } else {
+                projectVO.setIsCouldSign(1);
+            }
+        }
+        return R.ok(projectVO);
+    }
+
+    @Override
+    public R getByBackstage(Long id) {
+        return R.ok(comActSocialProjectDao.getByApplet(id));
+    }
+
+    @Override
+    public R getProject(CommonPage commonPage) {
+        if(commonPage.getParamId()==null){
+            return R.fail("数据异常");
+        }
+        ProjectRelationVO projectRelationVO=new ProjectRelationVO();
+        SocialProjectVO comActSocialProject=this.comActSocialProjectDao.selectByLevel(commonPage.getParamId());
+        if(comActSocialProject.getLevel()==2){
+            SocialProjectVO comActSocialProject1=this.comActSocialProjectDao.selectByLevel(comActSocialProject.getParentId());
+            if(comActSocialProject1!=null){
+                projectRelationVO.setFatherProjectLevelOne(comActSocialProject1);
+            }
+        }
+        if(comActSocialProject.getLevel()==3){
+            SocialProjectVO comActSocialProject1=this.comActSocialProjectDao.selectByLevel(comActSocialProject.getParentId());
+            if(comActSocialProject1!=null){
+                projectRelationVO.setFatherProjectLevelTwo(comActSocialProject1);
+                SocialProjectVO comActSocialProject2=this.comActSocialProjectDao.selectByLevel(comActSocialProject1.getParentId());
+                if(comActSocialProject2!=null){
+                    projectRelationVO.setFatherProjectLevelOne(comActSocialProject2);
+                }
+            }
+        }
+        IPage<SocialProjectVO> socialProjectVOIPage=this.comActSocialProjectDao.pageList(new Page(commonPage.getPage(),commonPage.getSize()),commonPage);
+        projectRelationVO.setSocialProjectVOIPage(socialProjectVOIPage);
+        return R.ok(projectRelationVO);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param socialProjectVO 实体对象
+     * @return 修改结果
+     */
+    @Override
+    public R updateProject(SocialProjectVO socialProjectVO) {
+        Integer status = socialProjectVO.getStatus();
+        if (nonNull(status) && status.equals(4)) {
+            List<ComActSocialProject> unEndProject = this.baseMapper.selectList(new LambdaQueryWrapper<ComActSocialProject>()
+                    .eq(ComActSocialProject::getParentId, socialProjectVO.getId())
+                    .notIn(ComActSocialProject::getStatus, 4));
+            if (!unEndProject.isEmpty()) {
+                return R.fail("该项目尚有子项目未结束");
+            }
+        }
+        ComActSocialProject comActSocialProject=new ComActSocialProject();
+        BeanUtils.copyProperties(socialProjectVO,comActSocialProject);
+        int result = this.baseMapper.updateById(comActSocialProject);
+        if (result > 0) {
+            return R.ok();
+        }
+        return R.fail("操作失败,请重试");
+    }
+
+    /**
+     * 分页查询项目报名列表
+     * @param pageProjectSignListDTO
+     * @return
+     */
+    @Override
+    public R pageProjectSignList(PageProjectSignListDTO pageProjectSignListDTO) {
+        Page page = new Page<>();
+        page.setCurrent(pageProjectSignListDTO.getPageNum());
+        page.setSize(pageProjectSignListDTO.getPageSize());
+        return R.ok(this.baseMapper.pageProjectSignList(page, pageProjectSignListDTO));
+    }
+
+    /**
+     * 项目公开报名
+     * @param projectId
+     * @param userId
+     * @return
+     */
+    @Override
+    public R signProject(Long projectId, Long userId) {
+        ComActSocialProject project = this.baseMapper.selectById(projectId);
+        if (isNull(project)) {
+            return R.fail("资源不存在");
+        }
+        if (!project.getStatus().equals(2)) {
+            return R.fail("项目暂未公示");
+        }
+        ComActSocialOrg socialOrg = comActSocialOrgDao.selectOrgByUserId(userId);
+        if (isNull(socialOrg)) {
+            return R.fail("您不是组织联系人,暂无法进行报名");
+        }
+        Integer signCount = comActSocialProjectSignDAO.selectCount(new LambdaQueryWrapper<ComActSocialProjectSign>()
+                .eq(ComActSocialProjectSign::getProjectId, projectId).eq(ComActSocialProjectSign::getOrgId, socialOrg.getId()));
+        if (signCount > 0) {
+            return R.fail("请勿重复报名");
+        }
+        ComActSocialProjectSign socialProjectSign = new ComActSocialProjectSign();
+        socialProjectSign.setProjectId(projectId);
+        socialProjectSign.setOrgId(socialOrg.getId());
+        socialProjectSign.setUserId(userId);
+        int result = comActSocialProjectSignDAO.insert(socialProjectSign);
+        return result > 0 ? R.ok() : R.fail("操作失败,请重新尝试");
+    }
+
+    /**
+     * 分页查询用户报名的项目
+     * @param pageProjectDTO
+     * @return
+     */
+    @Override
+    public R pageProjectWhichIsSignedByUser(PageProjectDTO pageProjectDTO) {
+        Page page = new Page<>();
+        page.setCurrent(pageProjectDTO.getPageNum());
+        page.setSize(pageProjectDTO.getPageSize());
+        IPage<SocialProjectVO> pageList = this.baseMapper.pageProjectWhichIsSignedByUser(page, pageProjectDTO);
+        setSignUpStatus(pageList.getRecords());
+        return R.ok(pageList);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialWorkerServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialWorkerServiceImpl.java
new file mode 100644
index 0000000..071de62
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialWorkerServiceImpl.java
@@ -0,0 +1,220 @@
+package com.panzhihua.service_community.service.impl;
+
+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.model.dtos.civil.*;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.civil.ComActSocialWorkerDetailsVO;
+import com.panzhihua.common.model.vos.civil.ComActSocialWorkerVO;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.dao.*;
+import com.panzhihua.service_community.entity.ComActColumn;
+import com.panzhihua.service_community.entity.ComActSocialOrg;
+import com.panzhihua.service_community.entity.ComActSocialWorker;
+import com.panzhihua.service_community.model.dos.ComActDO;
+import com.panzhihua.service_community.model.dos.ComStreetDO;
+import com.panzhihua.service_community.service.ComActSocialWorkerService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+
+import static java.util.Objects.nonNull;
+import static org.apache.commons.lang3.StringUtils.isNotBlank;
+
+/**
+ * 社工(ComActSocialWorker)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-10-25 10:56:48
+ */
+@Slf4j
+@Service
+public class ComActSocialWorkerServiceImpl extends ServiceImpl<ComActSocialWorkerDao, ComActSocialWorker> implements ComActSocialWorkerService {
+    @Resource
+    private ComActSocialWorkerDao comActSocialWorkerMapper;
+    @Resource
+    private ComStreetDAO comStreetDAO;
+    @Resource
+    private ComActSocialOrgDao comActSocialOrgMapper;
+    @Resource
+    private ComActDAO comActDAO;
+    @Resource
+    private ComActActivityDAO comActActivityDAO;
+    @Resource
+    private ComActColumnDao comActColumnDao;
+    /**
+     * 新增社工
+     * @param comActSocialWorkerAddDTO
+     * @return 新增结果
+     */
+    @Override
+    public R add(ComActSocialWorkerAddDTO comActSocialWorkerAddDTO){
+        ComActSocialWorker comActSocialWorker = comActSocialWorkerMapper.selectOne(new LambdaQueryWrapper<ComActSocialWorker>()
+                .eq(ComActSocialWorker::getTelephone, comActSocialWorkerAddDTO.getTelephone())
+                .eq(ComActSocialWorker::getCommunityId, comActSocialWorkerAddDTO.getCommunityId()));
+        if (nonNull(comActSocialWorker)) {
+            return R.fail("手机号已存在");
+        }
+        ComActSocialWorker comActSocialWorker1 = comActSocialWorkerMapper.selectOne(new LambdaQueryWrapper<ComActSocialWorker>()
+                .eq(ComActSocialWorker::getIdCard, comActSocialWorkerAddDTO.getIdCard())
+                .eq(ComActSocialWorker::getCommunityId, comActSocialWorkerAddDTO.getCommunityId()));
+        if (nonNull(comActSocialWorker1)) {
+            return R.fail("当前身份证号码已存在社工");
+        }
+        ComActSocialWorker comActSocialWorkerDO = new ComActSocialWorker();
+        BeanUtils.copyProperties(comActSocialWorkerAddDTO, comActSocialWorkerDO);
+        comActSocialWorkerDO.setCreateBy(comActSocialWorkerAddDTO.getUserId());
+        comActSocialWorkerDO.setCreateAt(new Date());
+        if(comActSocialWorkerMapper.insert(comActSocialWorkerDO)>0){
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 修改社工
+     * @param comActSocialWorkerEditDTO
+     * @return 维护结果
+     */
+    @Override
+    public R edit(ComActSocialWorkerEditDTO comActSocialWorkerEditDTO){
+        ComActSocialWorker comActSocialWorkerDO = new ComActSocialWorker();
+        BeanUtils.copyProperties(comActSocialWorkerEditDTO, comActSocialWorkerDO);
+        //comActSocialWorkerDO.setUpdateAt(new Date());
+        updateWorkerSkill(comActSocialWorkerDO);
+        if(comActSocialWorkerMapper.updateById(comActSocialWorkerDO)>0){
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    private void updateWorkerSkill(ComActSocialWorker socialWorker) {
+        String skillType = socialWorker.getSkillType();
+        if (isNotBlank(skillType)) {
+            List<String> skillList = Arrays.asList(skillType.split(","));
+            List<String> list = new ArrayList<String>(skillList);
+            list.remove(socialWorker.toString());
+            StringBuilder sb = new StringBuilder();
+            StringBuilder sb1 = new StringBuilder();
+            for (int i = 0; i < list.size(); i++) {
+                String skillId = list.get(i);
+                ComActColumn skillColumn = comActColumnDao.selectById(skillId);
+                if (i < list.size() - 1) {
+                    sb.append(skillId);
+                    sb.append(",");
+                    sb1.append(skillColumn.getName());
+                    sb1.append(",");
+                } else {
+                    sb.append(skillId);
+                    sb1.append(skillColumn.getName());
+                }
+            }
+            socialWorker.setSkillType(sb.toString());
+            socialWorker.setSkillTypeName(sb1.toString());
+        }
+    }
+
+    /**
+     * 分页查找社工
+     * @param pageComActSocialWorkerDTO
+     * @return 维护结果
+     */
+    @Override
+    public R<IPage<ComActSocialWorkerVO>> query(PageComActSocialWorkerDTO pageComActSocialWorkerDTO){
+        Page page = new Page(1,10);
+        if(pageComActSocialWorkerDTO.getPageNum()!=null) {
+            page.setCurrent(pageComActSocialWorkerDTO.getPageNum());
+        }
+        if(pageComActSocialWorkerDTO.getPageSize()!=null) {
+            page.setSize(pageComActSocialWorkerDTO.getPageSize());
+        }
+        return R.ok(comActSocialWorkerMapper.findByPage(page, pageComActSocialWorkerDTO));
+    }
+
+    /**
+     * 删除社工
+     * @param ComActSocialWorkerDeleteDTO
+     * @return 平台用户信息
+     */
+    @Override
+    public R delete(ComActSocialWorkerDeleteDTO ComActSocialWorkerDeleteDTO){
+        return R.ok(this.comActSocialWorkerMapper.deleteById(ComActSocialWorkerDeleteDTO.getId()));
+    }
+
+    /**
+     * 查询社工详细信息
+     * @param id 社工 id
+     * @return 查找结果
+     */
+    @Override
+    public R<ComActSocialWorkerVO> comActSocialWorkerDetails(Long id){
+        ComActSocialWorkerVO comActSocialWorkerDO = comActSocialWorkerMapper.selectOneById(id);
+        return R.ok(comActSocialWorkerDO);
+    }
+
+    @Override
+    public R export(List<ComActSocialWorkerExcelVO> lis, Long communityId) {
+        if(!CollectionUtils.isEmpty(lis)){
+            List<ComActSocialWorker> list=new ArrayList<>();
+            for(ComActSocialWorkerExcelVO comActSocialWorkerExcelVO:lis) {
+                ComActSocialWorker comActSocialWorkerDO = new ComActSocialWorker();
+                BeanUtils.copyProperties(comActSocialWorkerExcelVO,comActSocialWorkerDO);
+                if(StringUtils.isNotEmpty(comActSocialWorkerExcelVO.getCommunityId())){
+                    ComActDO comActDO= comActDAO.selectOne(new QueryWrapper<ComActDO>().eq("name",comActSocialWorkerExcelVO.getCommunityId()));
+                    if(comActDO!=null){
+                        comActSocialWorkerDO.setCommunityId(comActDO.getCommunityId());
+                    }
+                }
+                if(StringUtils.isNotEmpty(comActSocialWorkerExcelVO.getGen())){
+                    if("男".equals(comActSocialWorkerExcelVO.getGen())){
+                        comActSocialWorkerDO.setGen(1);
+                    }
+                    else {
+                        comActSocialWorkerDO.setGen(0);
+                    }
+                }
+                if(StringUtils.isNotEmpty(comActSocialWorkerExcelVO.getCredential())){
+                    if("是".equals(comActSocialWorkerExcelVO.getCredential())){
+                        comActSocialWorkerDO.setCredential(1);
+                    }
+                    else {
+                        comActSocialWorkerDO.setCredential(0);
+                    }
+                }
+                if(StringUtils.isNotEmpty(comActSocialWorkerExcelVO.getCredential())){
+                    if("是".equals(comActSocialWorkerExcelVO.getCredential())){
+                        comActSocialWorkerDO.setCredential(1);
+                    }
+                    else {
+                        comActSocialWorkerDO.setCredential(0);
+                    }
+                }
+                list.add(comActSocialWorkerDO);
+            }
+            this.saveBatch(list);
+        }
+
+        return R.ok();
+    }
+
+    @Override
+    public R activity(CommonPage commonPage) {
+        return R.ok(comActSocialWorkerMapper.selectActivity(new Page(commonPage.getPage(),commonPage.getSize()),commonPage.getParamId()));
+    }
+
+    @Override
+    public R activityList(CommonPage commonPage) {
+        return R.ok(comActActivityDAO.selectActivityBySocialWorker(new Page(commonPage.getPage(),commonPage.getSize()),commonPage));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialWorkerServiceServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialWorkerServiceServiceImpl.java
new file mode 100644
index 0000000..926d8c5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActSocialWorkerServiceServiceImpl.java
@@ -0,0 +1,39 @@
+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.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.dao.ComActSocialWorkerDao;
+import com.panzhihua.service_community.entity.ComActSocialWorkerService;
+import com.panzhihua.service_community.dao.ComActSocialWorkerServiceDao;
+import com.panzhihua.service_community.service.ComActSocialWorkerServiceService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+/**
+ * 社工服务表(ComActSocialWorkerService)表服务实现类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 社工服务表相关功能
+ *
+ * @author zzj
+ * @since 2022-02-16 15:59:42
+ */
+@Slf4j
+@Service
+public class ComActSocialWorkerServiceServiceImpl extends ServiceImpl<ComActSocialWorkerServiceDao, ComActSocialWorkerService> implements ComActSocialWorkerServiceService {
+
+    @Resource
+    private ComActSocialWorkerServiceDao comActSocialWorkerServiceDao;
+    @Override
+    public R pageList(CommonPage commonPage) {
+        return R.ok(comActSocialWorkerServiceDao.pageList(new Page<>(commonPage.getPage(),commonPage.getSize()),commonPage));
+    }
+
+    @Override
+    public R selectById(Long id) {
+        return R.ok(comActSocialWorkerServiceDao.getById(id));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActUserWalletChangeServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActUserWalletChangeServiceImpl.java
new file mode 100644
index 0000000..801c2f2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActUserWalletChangeServiceImpl.java
@@ -0,0 +1,69 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.service_community.dao.ComActUserWalletChangeMapper;
+import com.panzhihua.service_community.model.dos.ComActUserWalletChangeDO;
+import com.panzhihua.service_community.service.ComActUserWalletChangeService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-06-25 10:35:34
+ * @describe 用户钱包资产变动记录表服务实现类
+ */
+@Slf4j
+@Service
+public class ComActUserWalletChangeServiceImpl extends
+    ServiceImpl<ComActUserWalletChangeMapper, ComActUserWalletChangeDO> implements ComActUserWalletChangeService {
+
+    /**
+     * 添加用户资产变动记录
+     * 
+     * @param userId
+     *            用户id
+     * @param communityId
+     *            社区id
+     * @param walletId
+     *            钱包id
+     * @param incomeAmountTop
+     *            收益金额变动前
+     * @param incomeAmountBack
+     *            收益金额变动后
+     * @param availableAmountTop
+     *            可用金额变动前
+     * @param availableAmountBack
+     *            可用金额变动后
+     * @param settlementAmountTop
+     *            已结算金额变动前
+     * @param settlementAmountBack
+     *            已结算金额变动后
+     * @param serviceId
+     *            交易记录id
+     */
+    @Override
+    public void addWalletChange(Long userId, Long communityId, Long walletId, BigDecimal incomeAmountTop,
+        BigDecimal incomeAmountBack, BigDecimal availableAmountTop, BigDecimal availableAmountBack,
+        BigDecimal settlementAmountTop, BigDecimal settlementAmountBack, Long serviceId) {
+
+        ComActUserWalletChangeDO walletChangeDO = new ComActUserWalletChangeDO();
+        walletChangeDO.setUserId(userId);
+        walletChangeDO.setCommunityId(communityId);
+        walletChangeDO.setWalletId(walletId);
+        walletChangeDO.setIncomeAmountTop(incomeAmountTop);
+        walletChangeDO.setIncomeAmountBack(incomeAmountBack);
+        walletChangeDO.setAvailableAmountTop(availableAmountTop);
+        walletChangeDO.setAvailableAmountBack(availableAmountBack);
+        walletChangeDO.setSettlementAmountTop(settlementAmountTop);
+        walletChangeDO.setSettlementAmountBack(settlementAmountBack);
+        walletChangeDO.setServiceId(serviceId);
+        walletChangeDO.setCreateAt(new Date());
+        this.baseMapper.insert(walletChangeDO);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActUserWalletServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActUserWalletServiceImpl.java
new file mode 100644
index 0000000..4ccb547
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActUserWalletServiceImpl.java
@@ -0,0 +1,325 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.Date;
+import java.util.Map;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.service_community.entity.SysTemplateConfig;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.model.dtos.community.wallet.ComActWalletDetailDTO;
+import com.panzhihua.common.model.dtos.community.wallet.ComActWalletSettlementAdminDTO;
+import com.panzhihua.common.model.dtos.community.wallet.PageComActWalletAdminDTO;
+import com.panzhihua.common.model.dtos.community.wallet.PageComActWalletTradeDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.wallet.ComActWalletVO;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.common.utlis.WxUtil;
+import com.panzhihua.common.utlis.WxXCXTempSend;
+import com.panzhihua.service_community.dao.*;
+import com.panzhihua.service_community.model.dos.*;
+import com.panzhihua.service_community.service.ComActUserWalletChangeService;
+import com.panzhihua.service_community.service.ComActUserWalletService;
+import com.panzhihua.service_community.service.ComActUserWalletTradeService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-06-25 10:35:11
+ * @describe 用户钱包表服务实现类
+ */
+@Slf4j
+@Service
+public class ComActUserWalletServiceImpl extends ServiceImpl<ComActUserWalletMapper, ComActUserWalletDO>
+    implements ComActUserWalletService {
+
+    @Resource
+    private ComActEasyPhotoDAO comActEasyPhotoDAO;
+    @Resource
+    private ComActEasyPhotoActivityMapper comActEasyPhotoActivityMapper;
+    @Resource
+    private ComActUserWalletMapper comActUserWalletMapper;
+    @Resource
+    private ComActUserWalletTradeService comActUserWalletTradeService;
+    @Resource
+    private ComActUserWalletChangeService comActUserWalletChangeService;
+    @Resource
+    private ComActEasyPhotoRewardMapper comActEasyPhotoRewardMapper;
+    @Resource
+    private ComActActSignDAO comActActSignDAO;
+    @Resource
+    private ComActDAO comActDAO;
+    @Resource
+    private SysTemplateConfigDao sysTemplateConfigDao;
+
+    /**
+     * 查询用户钱包信息
+     * 
+     * @param walletDetailDTO
+     *            请求参数
+     * @return 用户钱包信息
+     */
+    @Override
+    public R getWallet(ComActWalletDetailDTO walletDetailDTO) {
+        ComActWalletVO comActWalletVO = new ComActWalletVO();
+        // 查询用户钱包
+        ComActUserWalletDO userWalletDO = this.baseMapper.selectOne(new QueryWrapper<ComActUserWalletDO>().lambda()
+            .eq(ComActUserWalletDO::getUserId, walletDetailDTO.getUserId())
+            .eq(ComActUserWalletDO::getCommunityId, walletDetailDTO.getCommunityId()));
+        if (userWalletDO == null) {// 若钱包不存在则新建钱包
+            userWalletDO = new ComActUserWalletDO();
+            userWalletDO.setIncomeAmount(BigDecimal.ZERO);
+            userWalletDO.setAvailableAmount(BigDecimal.ZERO);
+            userWalletDO.setSettlementAmount(BigDecimal.ZERO);
+            userWalletDO.setUserId(walletDetailDTO.getUserId());
+            userWalletDO.setCommunityId(walletDetailDTO.getCommunityId());
+            userWalletDO.setEasyCount(0);
+            userWalletDO.setCreateAt(new Date());
+            this.baseMapper.insert(userWalletDO);
+        }
+        BeanUtils.copyProperties(userWalletDO, comActWalletVO);
+        Map<String, String> resultMap = this.baseMapper.getCommunityName(walletDetailDTO.getCommunityId(), 5);
+        if (resultMap != null && !resultMap.isEmpty()) {
+            comActWalletVO.setCommunityName(resultMap.get("name"));
+            if (StringUtils.isEmpty(resultMap.get("content"))) {
+                this.baseMapper.insertSysAgreement(Constants.PROFIT_EXPLAIN, "收益说明", walletDetailDTO.getCommunityId(),
+                    5);
+                comActWalletVO.setAgreement(Constants.PROFIT_EXPLAIN);
+            } else {
+                comActWalletVO.setAgreement(resultMap.get("content"));
+            }
+        } else {
+            this.baseMapper.insertSysAgreement(Constants.PROFIT_EXPLAIN, "收益说明", walletDetailDTO.getCommunityId(), 5);
+            comActWalletVO.setAgreement(Constants.PROFIT_EXPLAIN);
+        }
+
+        Integer easyCount = 0;
+        // 查询用户发布随手拍数量
+        easyCount = comActEasyPhotoDAO.selectCount(new QueryWrapper<ComActEasyPhotoDO>().lambda()
+            .eq(ComActEasyPhotoDO::getSponsorId, walletDetailDTO.getUserId())
+            .eq(ComActEasyPhotoDO::getCommunityId, walletDetailDTO.getCommunityId()));
+        comActWalletVO.setEasyCount(easyCount);
+
+        return R.ok(comActWalletVO);
+    }
+
+    /**
+     * 查询用户绑定的社区收益排行榜
+     * 
+     * @param walletTradeDTO
+     *            请求参数
+     * @return 社区收益排行榜
+     */
+    @Override
+    public R getWalletRanking(PageComActWalletTradeDTO walletTradeDTO) {
+        return R.ok(this.baseMapper
+            .getWalletRanking(new Page(walletTradeDTO.getPageNum(), walletTradeDTO.getPageSize()), walletTradeDTO));
+    }
+
+    /**
+     * 随手拍审核通过给用户添加收益
+     * 
+     * @param easyPhotoId
+     *            随手拍id
+     */
+    @Override
+    public void examineAddMoney(Integer activityType, Long easyPhotoId, Long userId, BigDecimal amount) {
+
+        // 查询随手拍信息
+        ComActEasyPhotoDO easyPhotoDO = comActEasyPhotoDAO.selectById(easyPhotoId);
+        if (easyPhotoDO == null) {
+            log.error("给用户添加收益失败,原因:未查到随手拍记录,随手拍id:" + easyPhotoId);
+            return;
+        }
+
+        if (easyPhotoDO.getActivityId() == null) {// 用户未参加活动,无需添加收益
+            log.error("给用户添加收益失败,原因:用户未参加活动,无需添加收益,随手拍id:" + easyPhotoId);
+            return;
+        }
+
+        // 查询随手拍活动
+        ComActEasyPhotoActivityDO photoActivityDO =
+            comActEasyPhotoActivityMapper.selectById(easyPhotoDO.getActivityId());
+        if (photoActivityDO == null) {
+            log.error("给用户添加收益失败,原因:未查到活动记录,活动id:" + easyPhotoDO.getActivityId());
+            return;
+        }
+
+        // if(photoActivityDO.getStatus() != ComActEasyPhotoActivityDO.status.jxz){
+        // log.error("给用户添加收益失败,原因:活动未在进行中,活动id:" + easyPhotoDO.getActivityId());
+        // return;
+        // }
+
+        // 计算收益
+        if (activityType.equals(ComActEasyPhotoDO.activityType.yz)) {
+            amount = photoActivityDO.getGoodReward();
+        } else if (activityType.equals(ComActEasyPhotoDO.activityType.jl)) {
+            amount = photoActivityDO.getExcellentReward();
+        } else if (activityType.equals(ComActEasyPhotoDO.activityType.pt)) {
+            amount = photoActivityDO.getOrdinaryReward();
+        } else if (activityType.equals(ComActEasyPhotoDO.activityType.yb)) {
+            amount = photoActivityDO.getCommonlyReward();
+        }
+
+        // Date nowDate = new Date();
+        // 查询用户钱包
+        ComActUserWalletDO userWalletDO = comActUserWalletMapper.selectOne(new QueryWrapper<ComActUserWalletDO>()
+            .lambda().eq(ComActUserWalletDO::getUserId, easyPhotoDO.getSponsorId())
+            .eq(ComActUserWalletDO::getCommunityId, easyPhotoDO.getCommunityId()));
+        if (userWalletDO == null) {
+            userWalletDO = new ComActUserWalletDO();
+            userWalletDO.setIncomeAmount(BigDecimal.ZERO);
+            userWalletDO.setAvailableAmount(BigDecimal.ZERO);
+            userWalletDO.setSettlementAmount(BigDecimal.ZERO);
+            userWalletDO.setUserId(easyPhotoDO.getSponsorId());
+            userWalletDO.setCommunityId(easyPhotoDO.getCommunityId());
+            userWalletDO.setEasyCount(0);
+            userWalletDO.setCreateAt(new Date());
+            this.baseMapper.insert(userWalletDO);
+        }
+
+        if (amount.compareTo(BigDecimal.ZERO) == 0) {
+            log.error("此次参加活动的随手拍收益为0,不记录本次交易");
+            return;
+        } else {
+            // 记录钱包变动前金额
+            BigDecimal oldIncomeAmount = userWalletDO.getIncomeAmount();
+            BigDecimal oldAvailableAmount = userWalletDO.getAvailableAmount();
+            BigDecimal oldSettlementAmount = userWalletDO.getSettlementAmount();
+
+            // 更新钱包金额
+            userWalletDO.setIncomeAmount(userWalletDO.getIncomeAmount().add(amount));
+            userWalletDO.setAvailableAmount(userWalletDO.getAvailableAmount().add(amount));
+            comActUserWalletMapper.updateById(userWalletDO);
+
+            // 新增钱包资金交易记录
+            Long tradeId = comActUserWalletTradeService.addWalletTrade(easyPhotoDO.getSponsorId(),
+                easyPhotoDO.getCommunityId(), easyPhotoDO.getId(), amount, ComActUserWalletTradeDO.type.fb,
+                easyPhotoDO.getDetail(), userId, userWalletDO.getId(), ComActUserWalletTradeDO.changeType.add);
+
+            // 新增钱包资金变动记录
+            comActUserWalletChangeService.addWalletChange(easyPhotoDO.getSponsorId(), easyPhotoDO.getCommunityId(),
+                userWalletDO.getId(), oldIncomeAmount, userWalletDO.getIncomeAmount(), oldAvailableAmount,
+                userWalletDO.getAvailableAmount(), oldSettlementAmount, userWalletDO.getSettlementAmount(), tradeId);
+
+            // 查询用户未读奖励金额
+            ComActEasyPhotoRewardDO easyPhotoRewardDO =
+                comActEasyPhotoRewardMapper.selectOne(new QueryWrapper<ComActEasyPhotoRewardDO>().lambda()
+                    .eq(ComActEasyPhotoRewardDO::getCommunityId, easyPhotoDO.getCommunityId())
+                    .eq(ComActEasyPhotoRewardDO::getUserId, easyPhotoDO.getSponsorId())
+                    .eq(ComActEasyPhotoRewardDO::getIsRead, ComActEasyPhotoRewardDO.isRead.no));
+            if (easyPhotoRewardDO == null) {
+                easyPhotoRewardDO = new ComActEasyPhotoRewardDO();
+                easyPhotoRewardDO.setCommunityId(easyPhotoDO.getCommunityId());
+                easyPhotoRewardDO.setUserId(easyPhotoDO.getSponsorId());
+                easyPhotoRewardDO.setIsRead(ComActEasyPhotoRewardDO.isRead.no);
+                easyPhotoRewardDO.setCreateAt(new Date());
+                easyPhotoRewardDO.setAmount(amount);
+                comActEasyPhotoRewardMapper.insert(easyPhotoRewardDO);
+            } else {
+                easyPhotoRewardDO.setAmount(easyPhotoRewardDO.getAmount().add(amount));
+                easyPhotoRewardDO.setUpdateAt(new Date());
+                comActEasyPhotoRewardMapper.updateById(easyPhotoRewardDO);
+            }
+        }
+        // 更新随手拍活动信息
+        easyPhotoDO.setActivityType(activityType);
+        easyPhotoDO.setActivityAmount(amount);
+        comActEasyPhotoDAO.updateById(easyPhotoDO);
+
+        String activityTypeName = "";
+        if (easyPhotoDO.getActivityType().equals(ComActEasyPhotoDO.activityType.yz)) {
+            activityTypeName = "优质";
+        } else if (easyPhotoDO.getActivityType().equals(ComActEasyPhotoDO.activityType.jl)) {
+            activityTypeName = "精良";
+        } else if (easyPhotoDO.getActivityType().equals(ComActEasyPhotoDO.activityType.pt)) {
+            activityTypeName = "普通";
+        } else if (easyPhotoDO.getActivityType().equals(ComActEasyPhotoDO.activityType.yb)) {
+            activityTypeName = "一般";
+        }
+        // 发放奖励以后给用户推送消息
+        Map<String, String> map = comActActSignDAO.getUserOpenId(easyPhotoDO.getSponsorId());
+        if (map != null) {
+            String openid = map.get("openid");
+            ComActDO comActDO=comActDAO.selectById(easyPhotoDO.getCommunityId());
+            SysTemplateConfig sysTemplateConfig=sysTemplateConfigDao.selectOne(new QueryWrapper<SysTemplateConfig>().lambda().eq(SysTemplateConfig::getAreaCode, comActDO.getAreaCode()).eq(SysTemplateConfig::getType,7));
+            WxXCXTempSend util = new WxXCXTempSend();
+            try {
+                WxUtil.sendSubscribeJLDZ(openid, util.getAccessToken(), "随手拍有奖活动",
+                    amount.setScale(2, RoundingMode.HALF_UP), activityTypeName,sysTemplateConfig.getTemplateId());
+            } catch (Exception e) {
+                log.error("消息推送失败,失败原因:" + e.getMessage());
+            }
+        }
+    }
+
+    /**
+     * 分页查询收益结算列表
+     * 
+     * @param pageWalletAdminDTO
+     *            请求参数
+     * @return 收益结算列表
+     */
+    @Override
+    public R pageUserWalletAdmin(PageComActWalletAdminDTO pageWalletAdminDTO) {
+        return R.ok(this.baseMapper.getUserWalletList(
+            new Page(pageWalletAdminDTO.getPageNum(), pageWalletAdminDTO.getPageSize()), pageWalletAdminDTO));
+    }
+
+    /**
+     * 用户结算收益
+     * 
+     * @param settlementAdminDTO
+     *            请求参数
+     * @return 结算结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R userWalletSettlementAdmin(ComActWalletSettlementAdminDTO settlementAdminDTO) {
+        // 查询用户钱包
+        ComActUserWalletDO userWalletDO = this.baseMapper.selectById(settlementAdminDTO.getId());
+        if (userWalletDO == null) {
+            return R.fail("未查询到用户钱包");
+        }
+        if (userWalletDO.getAvailableAmount().compareTo(settlementAdminDTO.getSettlementAmount()) < 0) {
+            return R.fail("结算金额不能高于钱包可结算金额");
+        }
+        try {
+            BigDecimal oldIncomeAmount = userWalletDO.getIncomeAmount();
+            BigDecimal oldAvailableAmount = userWalletDO.getAvailableAmount();
+            BigDecimal oldSettlementAmount = userWalletDO.getSettlementAmount();
+            userWalletDO.setAvailableAmount(
+                userWalletDO.getAvailableAmount().subtract(settlementAdminDTO.getSettlementAmount()));
+            userWalletDO
+                .setSettlementAmount(userWalletDO.getSettlementAmount().add(settlementAdminDTO.getSettlementAmount()));
+            userWalletDO.setUpdateAt(new Date());
+            this.baseMapper.updateById(userWalletDO);
+            // 添加钱包交易记录
+            Long tradeServiceId = comActUserWalletTradeService.addWalletTrade(userWalletDO.getUserId(),
+                userWalletDO.getCommunityId(), null, settlementAdminDTO.getSettlementAmount(),
+                ComActUserWalletTradeDO.type.js, settlementAdminDTO.getRemark(), settlementAdminDTO.getUserId(),
+                userWalletDO.getId(), ComActUserWalletTradeDO.changeType.reduce);
+            // 添加钱包变动记录
+            comActUserWalletChangeService.addWalletChange(userWalletDO.getUserId(), userWalletDO.getCommunityId(),
+                userWalletDO.getId(), oldIncomeAmount, userWalletDO.getIncomeAmount(), oldAvailableAmount,
+                userWalletDO.getAvailableAmount(), oldSettlementAmount, userWalletDO.getSettlementAmount(),
+                tradeServiceId);
+
+            return R.ok();
+        } catch (Exception e) {
+            log.error("给用户结算收益失败,原因:" + e.getMessage());
+            return R.fail("结算失败");
+        }
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActUserWalletTradeServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActUserWalletTradeServiceImpl.java
new file mode 100644
index 0000000..466013b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActUserWalletTradeServiceImpl.java
@@ -0,0 +1,135 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.community.wallet.PageComActWalletTradeAdminDTO;
+import com.panzhihua.common.model.dtos.community.wallet.PageComActWalletTradeDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActUserWalletTradeRewardExcelVO;
+import com.panzhihua.service_community.dao.ComActUserWalletTradeMapper;
+import com.panzhihua.service_community.model.dos.ComActUserWalletTradeDO;
+import com.panzhihua.service_community.service.ComActUserWalletTradeService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-06-25 10:35:22
+ * @describe 用户钱包交易记录表服务实现类
+ */
+@Slf4j
+@Service
+public class ComActUserWalletTradeServiceImpl extends ServiceImpl<ComActUserWalletTradeMapper, ComActUserWalletTradeDO>
+    implements ComActUserWalletTradeService {
+
+    /**
+     * 查询用户收支记录列表
+     * 
+     * @param walletTradeDTO
+     *            请求参数
+     * @return 收支记录
+     */
+    @Override
+    public R getWalletTrade(PageComActWalletTradeDTO walletTradeDTO) {
+        return R.ok(this.baseMapper.getUserWalletTradeList(
+            new Page(walletTradeDTO.getPageNum(), walletTradeDTO.getPageSize()), walletTradeDTO));
+    }
+
+    /**
+     * 新增钱包交易记录
+     * 
+     * @param userId
+     *            用户id
+     * @param communityId
+     *            社区id
+     * @param serviceId
+     *            交易业务id
+     * @param amount
+     *            交易金额
+     * @param type
+     *            交易类型(1.发布随手拍 2.结算)
+     * @param remark
+     *            交易备注
+     * @param createBy
+     *            操作人id
+     * @param walletId
+     *            钱包id
+     * @param changeType
+     *            变动类型(1.增加 2.减少)
+     */
+    @Override
+    public Long addWalletTrade(Long userId, Long communityId, Long serviceId, BigDecimal amount, Integer type,
+        String remark, Long createBy, Long walletId, Integer changeType) {
+        ComActUserWalletTradeDO walletTradeDO = new ComActUserWalletTradeDO();
+        walletTradeDO.setUserId(userId);
+        walletTradeDO.setCommunityId(communityId);
+        walletTradeDO.setServiceId(serviceId);
+        walletTradeDO.setAmount(amount);
+        walletTradeDO.setType(type);
+        walletTradeDO.setRemark(remark);
+        walletTradeDO.setCreateBy(createBy);
+        walletTradeDO.setWalletId(walletId);
+        walletTradeDO.setChangeType(changeType);
+        walletTradeDO.setCreateAt(new Date());
+        this.baseMapper.insert(walletTradeDO);
+        return walletTradeDO.getId();
+    }
+
+    /**
+     * 分页查询交易记录
+     *
+     * @param pageTradeAdminDTO
+     *            请求参数
+     * @return 交易记录列表
+     */
+    @Override
+    public R pageUserWalletTradeAdmin(PageComActWalletTradeAdminDTO pageTradeAdminDTO) {
+        return R.ok(this.baseMapper.getUserWalletTradeAdmin(
+            new Page(pageTradeAdminDTO.getPageNum(), pageTradeAdminDTO.getPageSize()), pageTradeAdminDTO));
+    }
+
+    /**
+     * 查询用户交易记录总额
+     * 
+     * @param pageTradeAdminDTO
+     *            请求参数
+     * @return 交易记录总额
+     */
+    @Override
+    public R getTradeUserTotalWalletTradeAdmin(PageComActWalletTradeAdminDTO pageTradeAdminDTO) {
+        BigDecimal total = this.baseMapper.getTradeUserTotalWalletTradeAdmin(pageTradeAdminDTO);
+        if (total == null) {
+            total = BigDecimal.ZERO;
+        }
+        return R.ok(total);
+    }
+
+    @Override
+    public R getTradeUserTotalWalletTradeExportAdmin(PageComActWalletTradeAdminDTO pageTradeAdminDTO) {
+        return R.ok(this.baseMapper.getTradeUserTotalWalletTradeExportAdmin(pageTradeAdminDTO));
+    }
+
+    @Override
+    public R getTradeUserTotalJLWalletTradeExportAdmin(PageComActWalletTradeAdminDTO pageTradeAdminDTO) {
+        List<ComActUserWalletTradeRewardExcelVO> tradeList =
+            this.baseMapper.getTradeUserTotalJLWalletTradeExportAdmin(pageTradeAdminDTO);
+        tradeList.forEach(trade -> {
+            if (trade.getType().equals("1")) {
+                trade.setType("发布随手拍");
+            }
+        });
+        return R.ok(tradeList);
+    }
+
+    @Override
+    public R getTradeUserStatisticsAdmin(PageComActWalletTradeAdminDTO pageTradeAdminDTO) {
+        return R.ok(this.baseMapper.getTradeUserStatisticsAdmin(pageTradeAdminDTO));
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActWarehouseApplyServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActWarehouseApplyServiceImpl.java
new file mode 100644
index 0000000..420fa25
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActWarehouseApplyServiceImpl.java
@@ -0,0 +1,92 @@
+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.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.warehouse.ComActWarehouseApplyVO;
+import com.panzhihua.common.model.vos.community.warehouse.ComActWarehouseOperationVO;
+import com.panzhihua.service_community.dao.ComActWarehouseDonatesDao;
+import com.panzhihua.service_community.dao.ComActWarehouseOperationDao;
+import com.panzhihua.service_community.dao.ComPbServiceTeamDao;
+import com.panzhihua.service_community.dao.ComActWarehouseApplyDao;
+import com.panzhihua.service_community.entity.ComActWarehouseApply;
+import com.panzhihua.service_community.entity.ComActWarehouseDonates;
+import com.panzhihua.service_community.entity.ComActWarehouseOperation;
+import com.panzhihua.service_community.entity.ComPbServiceTeam;
+import com.panzhihua.service_community.service.ComActWarehouseApplyService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * 物品申请表(ComActWarehouseApply)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-10-09 17:13:53
+ */
+@Slf4j
+@Service
+public class ComActWarehouseApplyServiceImpl extends ServiceImpl<ComActWarehouseApplyDao, ComActWarehouseApply> implements ComActWarehouseApplyService {
+    @Resource
+    private ComActWarehouseApplyDao comActWarehouseApplyDao;
+    @Resource
+    private ComPbServiceTeamDao comPbServiceTeamDao;
+    @Resource
+    private ComActWarehouseDonatesDao comActWarehouseDonatesDao;
+    @Resource
+    private ComActWarehouseOperationDao comActWarehouseOperationDao;
+    @Override
+    public R pageList(CommonPage commonPage) {
+        IPage<ComActWarehouseApplyVO> iPage=this.comActWarehouseApplyDao.queryAll(new Page<>(commonPage.getPage(),commonPage.getSize()),commonPage);
+        return R.ok(iPage);
+    }
+
+    @Override
+    public R selectStatics(Long communityId) {
+        return R.ok(this.comActWarehouseApplyDao.selectStatics(communityId));
+    }
+
+    @Override
+    public R selectById(Integer id) {
+        return R.ok(this.comActWarehouseApplyDao.selectById(id));
+    }
+
+    @Override
+    public R check(String phone) {
+        Integer count=comPbServiceTeamDao.selectCount(new QueryWrapper<ComPbServiceTeam>().lambda().eq(ComPbServiceTeam::getPhone,phone));
+        return count>0? R.ok():R.fail("无权限");
+    }
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public R update(ComActWarehouseApply comActWarehouseApply) {
+        ComActWarehouseApply comActWarehouseApply1=this.comActWarehouseApplyDao.selectById(comActWarehouseApply.getId());
+        if(comActWarehouseApply.getStatus().equals(ComActWarehouseApplyVO.status.ylq)){
+            ComActWarehouseDonates comActWarehouseDonates=this.comActWarehouseDonatesDao.selectById(comActWarehouseApply1.getGoodsId());
+            if(comActWarehouseDonates!=null&&comActWarehouseDonates.getSurplusQuantity()>=comActWarehouseApply1.getGoodsNum()){
+                comActWarehouseDonates.setSurplusQuantity(comActWarehouseDonates.getSurplusQuantity()-comActWarehouseApply1.getGoodsNum());
+                this.comActWarehouseDonatesDao.updateById(comActWarehouseDonates);
+                ComActWarehouseOperation comActWarehouseOperation=new ComActWarehouseOperation();
+                comActWarehouseOperation.setGoodsId(comActWarehouseApply1.getGoodsId());
+                comActWarehouseOperation.setCreateTime(new Date());
+                comActWarehouseOperation.setType(ComActWarehouseOperation.type.xs);
+                comActWarehouseOperation.setApplyId(comActWarehouseApply.getId());
+                this.comActWarehouseOperationDao.insert(comActWarehouseOperation);
+            }
+            else {
+                return R.fail("库存不足");
+            }
+        }
+        return R.ok(this.comActWarehouseApplyDao.updateById(comActWarehouseApply));
+    }
+
+    @Override
+    public R export(CommonPage commonPage) {
+        return R.ok(this.comActWarehouseApplyDao.queryAll(commonPage));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActWarehouseBaseServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActWarehouseBaseServiceImpl.java
new file mode 100644
index 0000000..ba41047
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActWarehouseBaseServiceImpl.java
@@ -0,0 +1,22 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.ComActWarehouseBase;
+import com.panzhihua.service_community.dao.ComActWarehouseBaseDao;
+import com.panzhihua.service_community.service.ComActWarehouseBaseService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * 义仓基础设置表(ComActWarehouseBase)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-10-11 09:21:53
+ */
+@Slf4j
+@Service
+public class ComActWarehouseBaseServiceImpl extends ServiceImpl<ComActWarehouseBaseDao, ComActWarehouseBase> implements ComActWarehouseBaseService {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActWarehouseDonatesServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActWarehouseDonatesServiceImpl.java
new file mode 100644
index 0000000..297b301
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActWarehouseDonatesServiceImpl.java
@@ -0,0 +1,354 @@
+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.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+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.exceptions.ServiceException;
+import com.panzhihua.common.model.dtos.community.warehouse.ComActWarehouseApplyDTO;
+import com.panzhihua.common.model.dtos.community.warehouse.ComActWarehouseDonatesDTO;
+import com.panzhihua.common.model.dtos.community.warehouse.ExportDonatesDTO;
+import com.panzhihua.common.model.dtos.community.warehouse.PageDonatesDTO;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.warehouse.ComActWarehouseApplyVO;
+import com.panzhihua.common.model.vos.community.warehouse.ComActWarehouseDonatesVO;
+import com.panzhihua.common.model.vos.community.warehouse.ComActWarehouseOperationVO;
+import com.panzhihua.common.model.vos.community.warehouse.DonatesStatisticsVO;
+import com.panzhihua.common.model.vos.community.warehouse.WarehouseDonatesExcelVO;
+import com.panzhihua.service_community.dao.ComActWarehouseApplyDao;
+import com.panzhihua.service_community.dao.ComActWarehouseDonatesDao;
+import com.panzhihua.service_community.dao.ComActWarehouseOperationDao;
+import com.panzhihua.service_community.entity.ComActWarehouseApply;
+import com.panzhihua.service_community.entity.ComActWarehouseDonates;
+import com.panzhihua.service_community.entity.ComActWarehouseOperation;
+import com.panzhihua.service_community.service.ComActWarehouseDonatesService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 爱心义仓/物品捐赠表(ComActWarehouseDonates)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-10-09 17:14:16
+ */
+@Slf4j
+@Service
+public class ComActWarehouseDonatesServiceImpl extends ServiceImpl<ComActWarehouseDonatesDao, ComActWarehouseDonates> implements ComActWarehouseDonatesService {
+
+    @Resource
+    private ComActWarehouseOperationDao comActWarehouseOperationDao;
+    @Resource
+    private ComActWarehouseApplyDao comActWarehouseApplyDao;
+
+    @Override
+    public R pageList(CommonPage commonPage) {
+        return null;
+    }
+
+    /**
+     * 后台导入捐赠物品
+     * @param list
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R batchImportWarehouseDonates(List<WarehouseDonatesExcelVO> list) {
+        try {
+            if (!list.isEmpty()) {
+                List<ComActWarehouseDonates> donateList = list.stream().map(excelVO -> {
+                    ComActWarehouseDonates donates = new ComActWarehouseDonates();
+                    BeanUtils.copyProperties(excelVO, donates);
+                    if (excelVO.getIsAnonymous().equals("是")) {
+                        donates.setIsAnonymous(1);
+                    } else {
+                        donates.setIsAnonymous(2);
+                    }
+                    return donates;
+                }).collect(Collectors.toList());
+                this.baseMapper.batchInsertDonates(donateList);
+                List<ComActWarehouseOperation> operationList = new ArrayList<>();
+                Date nowDate = new Date();
+                donateList.forEach(donate -> {
+                    Long donateId = donate.getId();
+                    if (nonNull(donateId)) {
+                        ComActWarehouseOperation comActWarehouseOperation = new ComActWarehouseOperation();
+                        comActWarehouseOperation.setGoodsId(donateId);
+                        comActWarehouseOperation.setUserId(donate.getSigningBy());
+                        comActWarehouseOperation.setContent("工作人员完成了物品签收");
+                        comActWarehouseOperation.setCreateTime(nowDate);
+                        comActWarehouseOperation.setType(ComActWarehouseOperation.type.bxs);
+                        operationList.add(comActWarehouseOperation);
+                    }
+                });
+                if (!operationList.isEmpty()) {
+                    comActWarehouseOperationDao.batchInsertOperation(operationList);
+                }
+            }
+        } catch (Exception e) {
+            log.error("导入捐赠物品失败【{}】", e.getMessage());
+            return R.fail("导入捐赠物品失败");
+        }
+        return R.ok();
+    }
+
+    /**
+     * 后台导出捐赠物品表格
+     * @param exportDonatesDTO
+     * @return
+     */
+    @Override
+    public R exportDonates(ExportDonatesDTO exportDonatesDTO) {
+        List<Long> needExportIds = exportDonatesDTO.getIds();
+        if (nonNull(needExportIds) && !needExportIds.isEmpty()) {
+            //根据id导出
+            return R.ok(this.baseMapper.exportDonatesByIds(needExportIds));
+        }
+        return R.ok(this.baseMapper.exportDonatesBySearch(exportDonatesDTO));
+    }
+
+    /**
+     * 分页查询捐赠物品
+     * @param pageDonatesDTO
+     * @return
+     */
+    @Override
+    public R pageDonates(PageDonatesDTO pageDonatesDTO) {
+        Page page = new Page<>();
+        page.setCurrent(pageDonatesDTO.getPageNum());
+        page.setSize(pageDonatesDTO.getPageSize());
+        IPage<ComActWarehouseDonatesVO> donatesVOIPage = this.baseMapper.pageDonates(page, pageDonatesDTO);
+        Integer isWhich = pageDonatesDTO.getIsWhich();
+        if (nonNull(isWhich) && isWhich.intValue() == 3) {
+            List<ComActWarehouseDonatesVO> records = donatesVOIPage.getRecords();
+            if (!records.isEmpty()) {
+                records.forEach(record -> {
+                    String name = record.getName();
+                    if (record.getIsAnonymous().equals(ComActWarehouseDonatesVO.isAnonymous.yes) || isBlank(name)) {
+                        record.setName("匿名用户");
+                    } else {
+                        record.setName(name.substring(0, 1).concat(name.substring(1).replaceAll("\\S", "*")));
+                    }
+                    record.setPhone(null);
+                });
+            }
+        }
+        return R.ok(donatesVOIPage);
+    }
+
+    /**
+     * 新增物品捐赠
+     * @param comActWarehouseDonatesDTO
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R addDonates(ComActWarehouseDonatesDTO comActWarehouseDonatesDTO) {
+        ComActWarehouseDonates comActWarehouseDonates = new ComActWarehouseDonates();
+        BeanUtils.copyProperties(comActWarehouseDonatesDTO, comActWarehouseDonates);
+        Date nowDate = new Date();
+        comActWarehouseDonates.setRegisterAt(nowDate);
+        comActWarehouseDonates.setSurplusQuantity(comActWarehouseDonatesDTO.getQuantity());
+        if (isNull(comActWarehouseDonatesDTO.getUserId())) {
+            //userId为空代表后台新增
+            comActWarehouseDonates.setSigningAt(nowDate);
+            comActWarehouseDonates.setStatus(2);
+        } else {
+            comActWarehouseDonates.setStatus(1);
+        }
+        int result = this.baseMapper.insert(comActWarehouseDonates);
+        if (result > 0) {
+            if (comActWarehouseDonates.getStatus().intValue() == 2) {
+                ComActWarehouseOperation comActWarehouseOperation = new ComActWarehouseOperation();
+                comActWarehouseOperation.setGoodsId(comActWarehouseDonates.getId());
+                comActWarehouseOperation.setUserId(comActWarehouseDonates.getSigningBy());
+                comActWarehouseOperation.setContent("工作人员完成了物品签收");
+                comActWarehouseOperation.setCreateTime(nowDate);
+                comActWarehouseOperation.setType(ComActWarehouseOperation.type.bxs);
+                comActWarehouseOperationDao.insert(comActWarehouseOperation);
+            }
+            return R.ok();
+        }
+        return R.fail("添加失败,请重试");
+    }
+
+    /**
+     * 查看物品捐赠详情
+     * @param donatesId
+     * @param isWhich
+     * @param userId
+     * @return
+     */
+    @Override
+    public R getDonates(Long donatesId, Integer isWhich, Long userId) {
+        ComActWarehouseDonatesVO comActWarehouseDonatesVO = this.baseMapper.selectDetailById(donatesId);
+        if (isNull(comActWarehouseDonatesVO)) {
+            return R.fail("捐赠物品记录不存在");
+        }
+        if (nonNull(isWhich) && isWhich.intValue() != 0) {
+            if (isWhich.intValue() == 3) {
+                String name = comActWarehouseDonatesVO.getName();
+                if (comActWarehouseDonatesVO.getIsAnonymous().equals(ComActWarehouseDonatesVO.isAnonymous.yes) || isBlank(name)) {
+                    comActWarehouseDonatesVO.setName("匿名用户");
+                } else {
+                    comActWarehouseDonatesVO.setName(name.substring(0, 1).concat(name.substring(1).replaceAll("\\S", "*")));
+                }
+                comActWarehouseDonatesVO.setPhone(null);
+            }
+            if (isWhich.intValue() == 1 && !userId.equals(comActWarehouseDonatesVO.getUserId())) {
+                return R.fail("无法获取他人捐赠记录");
+            }
+            List<ComActWarehouseOperationVO> operationList = comActWarehouseOperationDao.selectList(donatesId);
+            comActWarehouseDonatesVO.setOperationList(operationList);
+        }
+        return R.ok(comActWarehouseDonatesVO);
+    }
+
+    /**
+     * 捐赠物品后台签收
+     * @param comActWarehouseDonatesDTO
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R signingDonates(ComActWarehouseDonatesDTO comActWarehouseDonatesDTO) {
+        ComActWarehouseDonates comActWarehouseDonates = this.baseMapper.selectById(comActWarehouseDonatesDTO.getId());
+        if (isNull(comActWarehouseDonates)) {
+            return R.fail("捐赠物品记录不存在");
+        }
+        if (comActWarehouseDonates.getStatus().intValue() != 1) {
+            return R.fail("捐赠物品已被签收或已被取消");
+        }
+        BeanUtils.copyProperties(comActWarehouseDonatesDTO, comActWarehouseDonates);
+        Date nowDate = new Date();
+        if (nonNull(comActWarehouseDonatesDTO.getQuantity())) {
+            comActWarehouseDonates.setSurplusQuantity(comActWarehouseDonatesDTO.getQuantity());
+        }
+        comActWarehouseDonates.setSigningAt(nowDate);
+        comActWarehouseDonates.setStatus(2);
+        int result = this.baseMapper.updateById(comActWarehouseDonates);
+        if (result > 0) {
+            ComActWarehouseOperation comActWarehouseOperation = new ComActWarehouseOperation();
+            comActWarehouseOperation.setGoodsId(comActWarehouseDonates.getId());
+            comActWarehouseOperation.setUserId(comActWarehouseDonates.getSigningBy());
+            comActWarehouseOperation.setContent("工作人员完成了物品签收");
+            comActWarehouseOperation.setCreateTime(nowDate);
+            comActWarehouseOperation.setType(ComActWarehouseOperation.type.bxs);
+            comActWarehouseOperationDao.insert(comActWarehouseOperation);
+            return R.ok();
+        }
+        return R.fail("签收失败");
+    }
+
+    /**
+     * 用户取消捐赠
+     * @param donatesId
+     * @param currentUser
+     * @return
+     */
+    @Override
+    public R cancelDonates(Long donatesId, Long currentUser) {
+        ComActWarehouseDonates comActWarehouseDonates = this.baseMapper.selectById(donatesId);
+        if (isNull(comActWarehouseDonates)) {
+            return R.fail("没有你的捐赠记录");
+        }
+        if (!currentUser.equals(comActWarehouseDonates.getUserId())) {
+            return R.fail("不能取消他人的捐赠记录");
+        }
+        if (comActWarehouseDonates.getStatus().equals(ComActWarehouseDonates.status.yqx)) {
+            return R.ok();
+        }
+        comActWarehouseDonates.setStatus(ComActWarehouseDonates.status.yqx);
+        int result = this.baseMapper.updateById(comActWarehouseDonates);
+        if (result > 0) {
+            ComActWarehouseOperation comActWarehouseOperation = new ComActWarehouseOperation();
+            comActWarehouseOperation.setGoodsId(comActWarehouseDonates.getId());
+            comActWarehouseOperation.setUserId(currentUser);
+            comActWarehouseOperation.setContent("已取消捐赠");
+            comActWarehouseOperation.setCreateTime(new Date());
+            comActWarehouseOperation.setType(ComActWarehouseOperation.type.bxs);
+            comActWarehouseOperationDao.insert(comActWarehouseOperation);
+        }
+        return R.ok();
+    }
+
+    /**
+     * 捐赠物品统计查询
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R getDonatesStatistics(Long communityId) {
+        Date nowDate = new Date();
+        SimpleDateFormat yearFormat = new SimpleDateFormat("yyyy");
+        SimpleDateFormat monthFormat = new SimpleDateFormat("yyyy-MM");
+        SimpleDateFormat dayFormat = new SimpleDateFormat("yyyy-MM-dd");
+        String currentYear = yearFormat.format(nowDate).concat("%");
+        String currentMonth = monthFormat.format(nowDate).concat("%");
+        String today = dayFormat.format(nowDate).concat("%");
+        DonatesStatisticsVO donatesStatisticsVO = this.baseMapper.selectDonatesStatistics(communityId, currentYear, currentMonth, today);
+        donatesStatisticsVO.setTotalDec(donatesStatisticsVO.getTotalInc().intValue() - donatesStatisticsVO.getSurplus().intValue());
+        return R.ok(donatesStatisticsVO);
+    }
+
+    /**
+     * 社区后台物品领用
+     * @param comActWarehouseApplyDTO
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R applyDonates(ComActWarehouseApplyDTO comActWarehouseApplyDTO) {
+        List<ComActWarehouseApplyVO> applyItems = comActWarehouseApplyDTO.getApplyItems();
+        if (!applyItems.isEmpty()) {
+            Date nowDate = new Date();
+            applyItems.forEach(item -> {
+                Long goodsId = item.getGoodsId();
+                Integer goodsNum = item.getGoodsNum();
+                if (isNull(goodsId) || isNull(goodsNum)) {
+                    throw new ServiceException("请求参数有误");
+                }
+                ComActWarehouseDonates warehouseDonates = this.baseMapper.selectById(goodsId);
+                if (nonNull(warehouseDonates) && warehouseDonates.getSurplusQuantity() - goodsNum >= 0) {
+                    warehouseDonates.setSurplusQuantity(warehouseDonates.getSurplusQuantity() - goodsNum);
+                    this.baseMapper.updateById(warehouseDonates);
+
+                    ComActWarehouseApply apply = new ComActWarehouseApply();
+                    BeanUtils.copyProperties(comActWarehouseApplyDTO, apply);
+                    apply.setActualTime(nowDate);
+                    apply.setCreateTime(nowDate);
+                    apply.setGoodsId(goodsId);
+                    apply.setGoodsNum(goodsNum);
+                    apply.setReserveTime(nowDate);
+                    apply.setStatus(ComActWarehouseApplyVO.status.ylq);
+                    apply.setWriteOffUserId(comActWarehouseApplyDTO.getOperateUserId());
+                    comActWarehouseApplyDao.insert(apply);
+
+                    ComActWarehouseOperation comActWarehouseOperation=new ComActWarehouseOperation();
+                    comActWarehouseOperation.setGoodsId(goodsId);
+                    comActWarehouseOperation.setCreateTime(nowDate);
+                    comActWarehouseOperation.setContent("爱心传递给了"+comActWarehouseApplyDTO.getApplyName().charAt(0)+"**,"+"减少了"+comActWarehouseApplyDTO.getReason()+"的困难,谢谢你的帮助");
+                    comActWarehouseOperation.setType(ComActWarehouseOperation.type.xs);
+                    comActWarehouseOperation.setApplyId(apply.getId());
+                    comActWarehouseOperationDao.insert(comActWarehouseOperation);
+                }
+            });
+        }
+        return R.ok("领取成功,部分物品可能因剩余数量不足领取失败,请以实际领取记录为准");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActWarehouseOperationServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActWarehouseOperationServiceImpl.java
new file mode 100644
index 0000000..8a794ec
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActWarehouseOperationServiceImpl.java
@@ -0,0 +1,34 @@
+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.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.warehouse.ComActWarehouseOperationVO;
+import com.panzhihua.service_community.entity.ComActWarehouseOperation;
+import com.panzhihua.service_community.dao.ComActWarehouseOperationDao;
+import com.panzhihua.service_community.service.ComActWarehouseOperationService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+/**
+ * 爱心义操作表(ComActWarehouseOperation)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-10-09 17:14:34
+ */
+@Slf4j
+@Service
+public class ComActWarehouseOperationServiceImpl extends ServiceImpl<ComActWarehouseOperationDao, ComActWarehouseOperation> implements ComActWarehouseOperationService {
+    @Resource
+    private ComActWarehouseOperationDao comActWarehouseOperationDao;
+    @Override
+    public R pageList(CommonPage commonPage) {
+        IPage<ComActWarehouseOperationVO> page=comActWarehouseOperationDao.pageList(new Page<>(commonPage.getPage(),commonPage.getSize()),commonPage);
+        return R.ok(page);
+    }
+}
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..1f78b5c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActWorkGuideClassifyServiceImpl.java
@@ -0,0 +1,143 @@
+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())
+                            .eq(ComActWorkGuideClassifyDO::getAreaCode, comActWorkGuideClassifyVO.getAreaCode()));
+            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())
+                            .eq(ComActWorkGuideClassifyDO::getAreaCode, comActWorkGuideClassifyVO.getAreaCode()));
+            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(String areaCode) {
+        List<ComActWorkGuideClassifyDO> comActWorkGuideClassifyDOS = comActWorkGuideClassifyDAO.selectList(new QueryWrapper<ComActWorkGuideClassifyDO>().lambda().eq(ComActWorkGuideClassifyDO::getAreaCode,areaCode));
+        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
new file mode 100644
index 0000000..fb0f90a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComActWorkGuideServiceImpl.java
@@ -0,0 +1,214 @@
+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;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.model.dtos.community.ComActWorkGuideDTO;
+import com.panzhihua.common.model.dtos.community.PageActWorkGuideDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActWorkGuideMaterialVO;
+import com.panzhihua.common.model.vos.community.ComActWorkGuideVO;
+import com.panzhihua.service_community.dao.ComActDAO;
+import com.panzhihua.service_community.dao.ComActWorkGuideDAO;
+import com.panzhihua.service_community.dao.ComActWorkGuideMaterialDAO;
+import com.panzhihua.service_community.model.dos.ComActDO;
+import com.panzhihua.service_community.model.dos.ComActWorkGuideDO;
+import com.panzhihua.service_community.model.dos.ComActWorkGuideMaterialDO;
+import com.panzhihua.service_community.service.ComActWorkGuideService;
+
+/**
+ * @auther llming
+ * @describe 办事指南
+ */
+@Service
+public class ComActWorkGuideServiceImpl extends ServiceImpl<ComActWorkGuideDAO, ComActWorkGuideDO>
+    implements ComActWorkGuideService {
+    static String AK = "W3x8DhCWKc2UFIwYgclpRBdL6BeGLLQt"; // 百度地图密钥
+    @Resource
+    ComActWorkGuideMaterialDAO workGuideMaterialDAO;
+    @Resource
+    private ComActWorkGuideClassifyDAO comActWorkGuideClassifyDAO;
+    @Resource
+    ComActDAO comActDAO;
+
+    @Override
+    public R addWorkGuide(ComActWorkGuideDTO workGuideDTO, Long userId) {
+        ComActWorkGuideDO comActWorkGuideDO = new ComActWorkGuideDO();
+        BeanUtils.copyProperties(workGuideDTO, comActWorkGuideDO);
+        comActWorkGuideDO.setCreateBy(userId);
+        this.baseMapper.insert(comActWorkGuideDO);
+        // 保存办事指南材料
+        workGuideDTO.getMaterials().forEach(material -> {
+            ComActWorkGuideMaterialDO workGuideMaterialDO = new ComActWorkGuideMaterialDO();
+            workGuideMaterialDO.setMaterialName(material.getMaterialName());
+            workGuideMaterialDO.setWorkGuideId(comActWorkGuideDO.getId());
+            workGuideMaterialDAO.insert(workGuideMaterialDO);
+        });
+        return R.ok();
+    }
+
+    @Override
+    public R editWorkGuide(ComActWorkGuideDTO workGuideDTO, Long userId) {
+        if (workGuideDTO.getId() == 0L) {
+            return R.fail("Id有误!");
+        }
+        ComActWorkGuideDO workGuideDO = this.baseMapper.selectById(workGuideDTO.getId());
+        if (workGuideDO == null) {
+            return R.fail("Id有误!");
+        }
+        BeanUtils.copyProperties(workGuideDTO, workGuideDO);
+        workGuideDO.setUpdateBy(userId);
+        this.baseMapper.updateById(workGuideDO);
+        if (workGuideDTO.getMaterials().size() == 0) {// 若编辑材料为null,执行删除操作
+            workGuideMaterialDAO.delete(new LambdaQueryWrapper<ComActWorkGuideMaterialDO>()
+                .eq(ComActWorkGuideMaterialDO::getWorkGuideId, workGuideDTO.getId()));
+        } else {// 若材料不为空,但是少了数据条数,也要执行删除
+            List<ComActWorkGuideMaterialDO> workGuideMaterialDOS =
+                workGuideMaterialDAO.selectList(new LambdaQueryWrapper<ComActWorkGuideMaterialDO>()
+                    .eq(ComActWorkGuideMaterialDO::getWorkGuideId, workGuideDTO.getId()));
+            // 1、筛选vo里面和db里,需要删除的材料数据
+            List<Long> voMaterialIds =
+                workGuideDTO.getMaterials().stream().filter(materialVo -> materialVo.getId() != null)
+                    .map(ComActWorkGuideMaterialVO::getId).collect(Collectors.toList());
+            List<Long> deleteMaterialIds = workGuideMaterialDOS.stream()
+                .filter(workGuideMaterialDO -> !voMaterialIds.contains(workGuideMaterialDO.getId()))
+                .map(ComActWorkGuideMaterialDO::getId).collect(Collectors.toList());
+            if (deleteMaterialIds.size() != 0) {
+                workGuideMaterialDAO.deleteBatchIds(deleteMaterialIds);
+            }
+            workGuideDTO.getMaterials().forEach(materialsVO -> {
+                if (materialsVO.getId() != null && materialsVO.getId() != 0L) {
+                    ComActWorkGuideMaterialDO workGuideMaterialDO1 = workGuideMaterialDOS.stream()
+                        .filter(workGuideMaterialDO -> workGuideMaterialDO.getId().equals(materialsVO.getId()))
+                        .findFirst().orElse(null);
+                    if (workGuideMaterialDO1 != null) {// 2、如果db有,执行编辑
+                        workGuideMaterialDO1.setMaterialName(materialsVO.getMaterialName());
+                        workGuideMaterialDAO.updateById(workGuideMaterialDO1);
+                    }
+                } else {// 3、如果db没有,执行新增
+                    ComActWorkGuideMaterialDO newWorkGuideMaterialDO = new ComActWorkGuideMaterialDO();
+                    newWorkGuideMaterialDO.setMaterialName(materialsVO.getMaterialName());
+                    newWorkGuideMaterialDO.setWorkGuideId(workGuideDO.getId());
+                    workGuideMaterialDAO.insert(newWorkGuideMaterialDO);
+                }
+            });
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R detailWorkGuide(String workGuideId, String communityId) {
+        ComActWorkGuideDO workGuideDO = this.baseMapper.selectById(workGuideId);
+        if (workGuideDO == null) {
+            return R.fail("Id有误!");
+        }
+        ComActWorkGuideVO vo = new ComActWorkGuideVO();
+        BeanUtils.copyProperties(workGuideDO, vo);
+
+        if(!StringUtils.isEmpty(communityId))
+        {
+            ComActDO comActDO = comActDAO.selectById(communityId);
+            if (comActDO != null) {
+                vo.setAddress(comActDO.getAddress());
+                vo.setPhone(comActDO.getContactsPhone());
+                vo.setLon(comActDO.getLng());
+                vo.setLat(comActDO.getLat());
+            }
+
+            List<ComActWorkGuideMaterialDO> workGuideMaterialDOS =
+                    workGuideMaterialDAO.selectList(new LambdaQueryWrapper<ComActWorkGuideMaterialDO>()
+                            .eq(ComActWorkGuideMaterialDO::getWorkGuideId, workGuideId));
+            workGuideMaterialDOS.forEach(workGuideMaterialDO -> {
+                ComActWorkGuideMaterialVO workGuideMaterialVO = new ComActWorkGuideMaterialVO();
+                workGuideMaterialVO.setId(workGuideMaterialDO.getId());
+                workGuideMaterialVO.setMaterialName(workGuideMaterialDO.getMaterialName());
+                vo.getMaterials().add(workGuideMaterialVO);
+            });
+        }
+        return R.ok(vo);
+    }
+
+    @Override
+    public R pageWorkGuide(PageActWorkGuideDTO pageActWorkGuideDTO) {
+        Page page = new Page<>();
+        Long pageNum = pageActWorkGuideDTO.getPageNum();
+        Long pageSize = pageActWorkGuideDTO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        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);
+    }
+
+    @Override
+    public R delectWorkGuide(Long workGuideId) {
+        this.baseMapper.deleteById(workGuideId);
+        workGuideMaterialDAO.delete(new LambdaQueryWrapper<ComActWorkGuideMaterialDO>()
+            .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(pageActWorkGuideDTO.getAreaCode());
+        //通过办事指南分类查询分类下办事指南
+        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/ComAreaTownCommunityServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComAreaTownCommunityServiceImpl.java
new file mode 100644
index 0000000..b43b497
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComAreaTownCommunityServiceImpl.java
@@ -0,0 +1,35 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.ComAreaTownCommunity;
+import com.panzhihua.service_community.dao.ComAreaTownCommunityDao;
+import com.panzhihua.service_community.service.ComAreaTownCommunityService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.ArrayUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Random;
+import java.util.stream.Collectors;
+
+/**
+ * (ComAreaTownCommunity)表服务实现类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 相关功能
+ *
+ * @author zzj
+ * @since 2022-04-10 17:37:33
+ */
+@Slf4j
+@Service
+public class ComAreaTownCommunityServiceImpl extends ServiceImpl<ComAreaTownCommunityDao, ComAreaTownCommunity> implements ComAreaTownCommunityService {
+
+    @Override
+    public R pageList(CommonPage commonPage) {
+        return null;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityActivityServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityActivityServiceImpl.java
new file mode 100644
index 0000000..6e8f049
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityActivityServiceImpl.java
@@ -0,0 +1,177 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.panzhihua.common.model.vos.common.ComBatteryActivityTeamVo;
+import com.panzhihua.common.model.vos.common.ComBatteryCommodityActivityVo;
+import com.panzhihua.common.model.vos.common.ComBatteryCommodityOrderVo;
+import com.panzhihua.common.model.vos.common.ComBatteryCommodityVo;
+import com.panzhihua.service_community.dao.ComBatteryCommodityMapper;
+import com.panzhihua.service_community.dao.ComBatteryCommodityOrderMapper;
+import com.panzhihua.service_community.entity.ComBatteryCommodityActivity;
+import com.panzhihua.service_community.dao.ComBatteryCommodityActivityMapper;
+import com.panzhihua.service_community.service.ComBatteryCommodityActivityService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.BeanUtils;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * title: 电动车商城-商家活动表表服务实现类
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商家活动表表服务实现类
+ *
+ * @author lyq
+ * @date 2022-03-29 13:17:40
+ */
+@Service("comBatteryCommodityActivityService")
+public class ComBatteryCommodityActivityServiceImpl extends ServiceImpl<ComBatteryCommodityActivityMapper, ComBatteryCommodityActivity> implements ComBatteryCommodityActivityService {
+
+    @Resource
+    private ComBatteryCommodityMapper commodityMapper;
+    @Resource
+    private ComBatteryCommodityOrderMapper commodityOrderMapper;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommodityActivity 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-29 13:17:40
+     */
+    @Override
+    public R queryByPage(PageComBatteryCommodityActivityDto comBatteryCommodityActivity) {
+        return R.ok(this.baseMapper.queryAllByLimit(comBatteryCommodityActivity, new Page(comBatteryCommodityActivity.getPageNum(), comBatteryCommodityActivity.getPageSize())));
+    }
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comBatteryCommodityActivity 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-29 13:17:40
+     */
+    @Override
+    public R insert(AddComBatteryCommodityActivityDto comBatteryCommodityActivity) {
+        ComBatteryCommodityActivity entity = new ComBatteryCommodityActivity();
+        BeanUtils.copyProperties(comBatteryCommodityActivity, entity);
+        if (this.baseMapper.insert(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    /**
+     * description  update  修改数据
+     *
+     * @param editDto 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-29 13:17:40
+     */
+    @Override
+    public R update(EditComBatteryCommodityActivityDto editDto) {
+        ComBatteryCommodityActivity entity = this.baseMapper.selectById(editDto.getId());
+        if (entity == null) {
+            return R.fail("未查询到该记录");
+        }
+        BeanUtils.copyProperties(editDto, entity);
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败");
+    }
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-29 13:17:40
+     */
+    @Override
+    public R deleteById(Long id) {
+        ComBatteryCommodityActivity entity = new ComBatteryCommodityActivity();
+        entity.setId(id);
+        entity.setIsDel(ComBatteryCommodityActivity.IsDel.YES);
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @param userId 用户id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 13:17:40
+     */
+    @Override
+    public R detailById(Long id,Long userId) {
+        ComBatteryCommodityActivityVo commodityActivityVo = this.baseMapper.queryById(id);
+        if(commodityActivityVo != null){
+            ComBatteryCommodityVo commodityVo = commodityMapper.queryById(commodityActivityVo.getCommodityId());
+            commodityActivityVo.setCommodityVo(commodityVo);
+            if(userId != null && userId > 0){
+                //查询用户参与拼团活动信息
+                ComBatteryActivityTeamVo ptResult = commodityOrderMapper.queryTeamIdByUserId(userId,id);
+                if(ptResult != null && ptResult.getTeamId() != null){
+                    commodityActivityVo.setIsOpen(2);
+                    commodityActivityVo.setTeamId(ptResult.getTeamId());
+                    commodityActivityVo.setTeamEndTime(ptResult.getTeamEndTime());
+                }
+                //查询用户参与砍价活动信息
+                ComBatteryActivityTeamVo kjResult =commodityOrderMapper.queryTeamIdByUserIdBargain(userId,id);
+                if(kjResult != null && kjResult.getTeamId() != null){
+                    commodityActivityVo.setIsBargain(2);
+                    commodityActivityVo.setBargainId(kjResult.getTeamId());
+                    commodityActivityVo.setBargainEndTime(kjResult.getTeamEndTime());
+                }
+            }
+        }
+        return R.ok(commodityActivityVo);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommodityActivity 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 13:17:40
+     */
+    @Override
+    public R queryByList(PageComBatteryCommodityActivityDto comBatteryCommodityActivity) {
+        return R.ok(this.baseMapper.queryAllByList(comBatteryCommodityActivity));
+    }
+
+    /**
+     * 修改活动状态
+     * @param id    活动id
+     * @param status    状态
+     * @return  修改结果
+     */
+    @Override
+    public R updateStatus(Long id, Integer status) {
+        ComBatteryCommodityActivity entity = new ComBatteryCommodityActivity();
+        entity.setId(id);
+        entity.setStatus(status);
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败");
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityOrderBargainRecordServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityOrderBargainRecordServiceImpl.java
new file mode 100644
index 0000000..603deb0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityOrderBargainRecordServiceImpl.java
@@ -0,0 +1,119 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.panzhihua.service_community.entity.ComBatteryCommodityOrderBargainRecord;
+import com.panzhihua.service_community.dao.ComBatteryCommodityOrderBargainRecordMapper;
+import com.panzhihua.service_community.service.ComBatteryCommodityOrderBargainRecordService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.BeanUtils;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+/**
+ * title: 电动车商城-订单砍价记录表表服务实现类
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-订单砍价记录表表服务实现类
+ *
+ * @author lyq
+ * @date 2022-03-29 16:06:47
+ */
+@Service("comBatteryCommodityOrderBargainRecordService")
+public class ComBatteryCommodityOrderBargainRecordServiceImpl extends ServiceImpl<ComBatteryCommodityOrderBargainRecordMapper, ComBatteryCommodityOrderBargainRecord> implements ComBatteryCommodityOrderBargainRecordService {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommodityOrderBargainRecord 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-29 16:06:47
+     */
+    @Override
+    public R queryByPage(PageComBatteryCommodityOrderBargainRecordDto comBatteryCommodityOrderBargainRecord) {
+        return R.ok(this.baseMapper.queryAllByLimit(comBatteryCommodityOrderBargainRecord, new Page(comBatteryCommodityOrderBargainRecord.getPageNum(), comBatteryCommodityOrderBargainRecord.getPageSize())));
+    }
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comBatteryCommodityOrderBargainRecord 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-29 16:06:47
+     */
+    @Override
+    public R insert(AddComBatteryCommodityOrderBargainRecordDto comBatteryCommodityOrderBargainRecord) {
+        ComBatteryCommodityOrderBargainRecord entity = new ComBatteryCommodityOrderBargainRecord();
+        BeanUtils.copyProperties(comBatteryCommodityOrderBargainRecord, entity);
+        if (this.baseMapper.insert(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    /**
+     * description  update  修改数据
+     *
+     * @param editDto 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-29 16:06:47
+     */
+    @Override
+    public R update(EditComBatteryCommodityOrderBargainRecordDto editDto) {
+        ComBatteryCommodityOrderBargainRecord entity = this.baseMapper.selectById(editDto.getId());
+        if (entity == null) {
+            return R.fail("未查询到该记录");
+        }
+        BeanUtils.copyProperties(editDto, entity);
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败");
+    }
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-29 16:06:47
+     */
+    @Override
+    public R deleteById(Long id) {
+        if (this.baseMapper.deleteById(id) > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 16:06:47
+     */
+    @Override
+    public R detailById(Long id) {
+        return R.ok(this.baseMapper.queryById(id));
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommodityOrderBargainRecord 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 16:06:47
+     */
+    @Override
+    public R queryByList(PageComBatteryCommodityOrderBargainRecordDto comBatteryCommodityOrderBargainRecord) {
+        return R.ok(this.baseMapper.queryAllByList(comBatteryCommodityOrderBargainRecord));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityOrderBargainServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityOrderBargainServiceImpl.java
new file mode 100644
index 0000000..dee84a8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityOrderBargainServiceImpl.java
@@ -0,0 +1,433 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.panzhihua.common.constants.PayCpmstant;
+import com.panzhihua.common.model.vos.common.ComBatteryCommodityOrderBargainRecordVo;
+import com.panzhihua.common.model.vos.common.ComBatteryCommodityOrderBargainVo;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.MathUtils;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.common.utlis.WxPayUtils;
+import com.panzhihua.service_community.dao.*;
+import com.panzhihua.service_community.entity.*;
+import com.panzhihua.service_community.service.ComBatteryCommodityOrderBargainService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.service_community.service.ComBatteryTradeOrderService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.*;
+
+/**
+ * title: 电动车商城-砍价订单记录表表服务实现类
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-砍价订单记录表表服务实现类
+ *
+ * @author lyq
+ * @date 2022-03-29 16:06:35
+ */
+@Slf4j
+@Service("comBatteryCommodityOrderBargainService")
+public class ComBatteryCommodityOrderBargainServiceImpl extends ServiceImpl<ComBatteryCommodityOrderBargainMapper, ComBatteryCommodityOrderBargain> implements ComBatteryCommodityOrderBargainService {
+
+    @Resource
+    private ComBatteryCommodityActivityMapper commodityActivityMapper;
+    @Resource
+    private ComBatteryUserAddressMapper userAddressMapper;
+    @Resource
+    private SysUserMapper userMapper;
+    @Resource
+    private ComBatteryTradeOrderService tradeOrderService;
+    @Resource
+    private ComBatteryCommodityMapper commodityMapper;
+    @Resource
+    private ComBatteryCommoditySpecsMapper commoditySpecsMapper;
+    @Resource
+    private ComBatteryCommodityOrderMapper commodityOrderMapper;
+    @Resource
+    private ComBatteryCommodityOrderBargainRecordMapper orderBargainRecordMapper;
+    @Value("${min.app.isTest}")
+    private Boolean isTest;
+    @Value("${min.app.appid}")
+    private String appid;
+    @Value("${min.app.payKey}")
+    private String payKey;
+    @Value("${min.app.mchId}")
+    private String mchId;
+//    @Value("${min.app.currencyNotifyUrl}")
+//    private String currencyNotifyUrl;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommodityOrderBargain 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-29 16:06:35
+     */
+    @Override
+    public R queryByPage(PageComBatteryCommodityOrderBargainDto comBatteryCommodityOrderBargain) {
+        return R.ok(this.baseMapper.queryAllByLimit(comBatteryCommodityOrderBargain, new Page(comBatteryCommodityOrderBargain.getPageNum(), comBatteryCommodityOrderBargain.getPageSize())));
+    }
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comBatteryCommodityOrderBargain 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-29 16:06:35
+     */
+    @Override
+    public R insert(AddComBatteryCommodityOrderBargainDto comBatteryCommodityOrderBargain) {
+        ComBatteryCommodityOrderBargain entity = new ComBatteryCommodityOrderBargain();
+        BeanUtils.copyProperties(comBatteryCommodityOrderBargain, entity);
+        if (this.baseMapper.insert(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    /**
+     * description  update  修改数据
+     *
+     * @param editDto 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-29 16:06:35
+     */
+    @Override
+    public R update(EditComBatteryCommodityOrderBargainDto editDto) {
+        ComBatteryCommodityOrderBargain entity = this.baseMapper.selectById(editDto.getId());
+        if (entity == null) {
+            return R.fail("未查询到该记录");
+        }
+        BeanUtils.copyProperties(editDto, entity);
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败");
+    }
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-29 16:06:35
+     */
+    @Override
+    public R deleteById(Long id) {
+        if (this.baseMapper.deleteById(id) > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 16:06:35
+     */
+    @Override
+    public R detailById(Long id) {
+        return R.ok(this.baseMapper.queryById(id));
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommodityOrderBargain 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 16:06:35
+     */
+    @Override
+    public R queryByList(PageComBatteryCommodityOrderBargainDto comBatteryCommodityOrderBargain) {
+        return R.ok(this.baseMapper.queryAllByList(comBatteryCommodityOrderBargain));
+    }
+
+    /**
+     * 创建砍价订单
+     * @param orderDto  请求参数
+     * @return  创建订单结果
+     */
+    @Override
+    public R startBargain(StartBargainOrderDto orderDto) {
+        ComBatteryCommodityActivity commodityActivity = commodityActivityMapper.selectById(orderDto.getActivityId());
+        if(commodityActivity == null){
+            return R.fail("未查询到砍价活动");
+        }
+        if(commodityActivity.getEndTime().getTime() - System.currentTimeMillis() <= 0
+                || commodityActivity.getStatus().equals(ComBatteryCommodityActivity.Status.YJS)){
+            return R.fail("该活动已结束");
+        }
+        if(commodityActivity.getStatus().equals(ComBatteryCommodityActivity.Status.YXJ)){
+            return R.fail("该活动已下架");
+        }
+        if(commodityActivity.getCommodityNum() <= commodityActivity.getCommoditySaleNum()){
+            return R.fail("活动商品已售空");
+        }
+        Integer notSaleNum = commodityActivity.getCommodityNum() - commodityActivity.getCommoditySaleNum();
+        if(notSaleNum <= orderDto.getCount()){
+            return R.fail("活动商品库存不足");
+        }
+        //查询商品
+        ComBatteryCommodity commodity = commodityMapper.selectById(orderDto.getCommodityId());
+        if(commodity == null){
+            return R.fail("未查询到商品信息");
+        }
+        //查询商品规格信息
+        ComBatteryCommoditySpecs commoditySpecs = commoditySpecsMapper.selectById(commodityActivity.getSpecsId());
+        if(commoditySpecs == null){
+            return R.fail("未查询到商品规格信息");
+        }
+        if(commoditySpecs.getStock() < orderDto.getCount()){
+            return R.fail("该商品库存不足,无法下单");
+        }
+        //查询用户信息
+        SysUser user = userMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId,orderDto.getUserId()));
+        if(user == null){
+            return R.fail("未查询到用户信息");
+        }
+        //查询用户收货地址
+        ComBatteryUserAddress userAddress = userAddressMapper.selectById(orderDto.getAddressId());
+        if(userAddress == null){
+            return R.fail("未查询到用户收货地址");
+        }
+        Date nowDate = new Date();
+        //初始化订单数据
+        Integer count = commodityOrderMapper.selectCount(new QueryWrapper<ComBatteryCommodityOrder>()
+                .lambda().eq(ComBatteryCommodityOrder::getStatus,ComBatteryCommodityOrder.Status.DKJ)
+                .eq(ComBatteryCommodityOrder::getBargainStatus,ComBatteryCommodityOrder.BargainStatus.KJZ)
+                .eq(ComBatteryCommodityOrder::getIsDel,ComBatteryCommodityOrder.IsDel.NO)
+                .eq(ComBatteryCommodityOrder::getActivityId,orderDto.getActivityId())
+                .eq(ComBatteryCommodityOrder::getUserId,orderDto.getUserId()));
+        if(count > 0){
+            return R.fail("您已存在正在砍价中的订单,不可再发起砍价订单");
+        }
+        ComBatteryCommodityOrder commodityOrder = getCreateOrder(commodity,userAddress,user,commoditySpecs,orderDto,nowDate,commodityActivity);
+        Map<String,Object> resultMap = new HashMap<>(2);
+        if(commodityOrderMapper.insert(commodityOrder) > 0){
+            //更新活动商品库存
+            commodityActivity.setCommoditySaleNum(commodityActivity.getCommoditySaleNum() + orderDto.getCount());
+            commodityActivityMapper.updateById(commodityActivity);
+            //更新商品库存
+            commoditySpecs.setStock(commoditySpecs.getStock() - orderDto.getCount());
+            commoditySpecsMapper.updateById(commoditySpecs);
+            //微信支付需要调取小程序微信支付
+            String result = getWxPayResult(commodityOrder.getFinalAmount(),commodityOrder.getOpenId()
+                    ,commodityOrder.getOrderNo(),"购买商品",null);
+            resultMap.put("payResult",result);
+            resultMap.put("orderId",commodityOrder.getId());
+            // 添加微信支付交易流水
+            String wxTradeOrderNo = "wx" + Snowflake.getId();
+            tradeOrderService.addOrderTradeRecord(user.getUserId(), user.getOpenid(), wxTradeOrderNo, ComBatteryTradeOrder.PayType.WX,
+                    commodityOrder.getFinalAmount(), ComBatteryTradeOrder.TradeType.DDC_SHOP, commodityOrder.getId(),
+                    commodityOrder.getOrderNo(), user.getUserId(), nowDate);
+        }
+        return R.ok(resultMap);
+    }
+
+
+    /**
+     * 初始化订单数据
+     * @param commodity         商品数据
+     * @param userAddress       用户收货地址信息
+     * @param user              用户数据
+     * @param commoditySpecs    商品规格数据
+     * @param orderDto          用户请求参数
+     * @param nowDate           操作时间
+     * @param commodityActivity           拼团活动数据
+     * @return  初始化订单数据
+     */
+    public static ComBatteryCommodityOrder getCreateOrder(ComBatteryCommodity commodity, ComBatteryUserAddress userAddress
+            , SysUser user, ComBatteryCommoditySpecs commoditySpecs, StartBargainOrderDto orderDto, Date nowDate
+            ,ComBatteryCommodityActivity commodityActivity){
+        ComBatteryCommodityOrder commodityOrder = new ComBatteryCommodityOrder();
+        commodityOrder.setUserId(user.getUserId());
+        commodityOrder.setOpenId(user.getOpenid());
+        commodityOrder.setStoreId(commodity.getStoreId());
+        commodityOrder.setActivityId(commodityActivity.getId());
+        commodityOrder.setCommodityId(commodity.getId());
+        commodityOrder.setSpecsId(commoditySpecs.getId());
+        commodityOrder.setOrderNo("KJ" + Snowflake.getId());
+        commodityOrder.setActivityType(commodityActivity.getType());
+        commodityOrder.setStatus(ComBatteryCommodityOrder.Status.DFK);
+        commodityOrder.setPayStatus(ComBatteryCommodityOrder.PayStatus.WZF);
+        commodityOrder.setIsDel(ComBatteryCommodityOrder.IsDel.NO);
+        commodityOrder.setPayType(ComBatteryCommodityOrder.PayType.WX);
+        commodityOrder.setCount(orderDto.getCount());
+        commodityOrder.setPrice(commodityActivity.getPrice());
+        commodityOrder.setAmount(commodityActivity.getPrice().multiply(BigDecimal.valueOf(orderDto.getCount())));
+        commodityOrder.setFreight(commodity.getPostage());
+        commodityOrder.setFinalAmount(commodityOrder.getAmount().add(commodityOrder.getFreight()));
+        commodityOrder.setCreateAt(nowDate);
+        commodityOrder.setCreateBy(user.getUserId());
+        commodityOrder.setRemark(orderDto.getRemark());
+        //收货地址
+        commodityOrder.setAddressId(userAddress.getId());
+        commodityOrder.setReceivingName(userAddress.getName());
+        commodityOrder.setReceivingPhone(userAddress.getPhone());
+        commodityOrder.setReceivingRegionCode(userAddress.getProvinceAdcode() + "-" + userAddress.getCityAdcode() + "-" + userAddress.getDistrictAdcode());
+        commodityOrder.setReceivingRegion(userAddress.getProvinceName() + userAddress.getCityName() + userAddress.getDistrictName());
+        commodityOrder.setReceivingAddress(userAddress.getAddress());
+        return commodityOrder;
+    }
+
+    /**
+     * 小程序唤起微信支付
+     *
+     * @param money
+     *            需要支付的金额
+     * @param openId
+     *            用户唤起微信支付的openid
+     * @param orderNo
+     *            业务订单号
+     * @param remark
+     *            交易备注
+     * @return 小程序支付参数
+     */
+    private String getWxPayResult(BigDecimal money, String openId, String orderNo, String remark,String type) {
+        String result = "";
+        // 将剩余金额调起微信支付
+        if (isTest) {
+            money = BigDecimal.valueOf(0.01);
+        }
+        // 调用wx支付
+//        result = WxPayUtils.getUnifiedorder(appid, mchId, payKey, currencyNotifyUrl + PayCpmstant.BATTERY_STORE_ACTIVITY_PAY_NOTIFY_URL
+//                , remark, openId, orderNo, money,type);
+        log.info("用户购买商品微信支付返回参数:" + result);
+        return result;
+    }
+
+    /**
+     * 帮好友砍价
+     * @param orderDto  请求参数
+     * @return  创建订单结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public synchronized R startUserBargain(StartUserBargainOrderDto orderDto) {
+        //查询砍价记录
+        ComBatteryCommodityOrderBargain orderBargain = this.baseMapper.selectById(orderDto.getBargainId());
+        if(orderBargain == null){
+            return R.fail("未查询到用户砍价记录");
+        }
+        if(orderBargain.getUserId().equals(orderDto.getUserId())){
+            return R.fail("您不可砍自己的订单");
+        }
+        //查询砍价订单
+        ComBatteryCommodityOrder commodityOrder = commodityOrderMapper.selectById(orderBargain.getOrderId());
+        if(commodityOrder == null){
+            return R.fail("未查询到砍价订单");
+        }
+        Date nowDate = new Date();
+        //判断当前砍价订单的截止时间是否已结束
+        Date deadline = DateUtils.addDay(commodityOrder.getCreateAt(),1);
+        if(DateUtils.dateCompare(deadline,nowDate) == -1){
+            return R.fail("该订单已超过砍价截止时间");
+        }
+        //查询砍价活动
+        ComBatteryCommodityActivity commodityActivity = commodityActivityMapper.selectById(commodityOrder.getActivityId());
+        if(commodityActivity != null){
+            if(DateUtils.dateCompare(commodityActivity.getEndTime(),nowDate) == -1){
+                return R.fail("该砍价活动已结束");
+            }
+        }
+        Integer count = orderBargainRecordMapper.selectCount(new QueryWrapper<ComBatteryCommodityOrderBargainRecord>().lambda()
+                .eq(ComBatteryCommodityOrderBargainRecord::getBargainId,orderDto.getBargainId())
+                .eq(ComBatteryCommodityOrderBargainRecord::getUserId,orderDto.getUserId()));
+        if(count > 0){
+            return R.fail("您已经参加此砍价,不可重复参加");
+        }
+        //商品原价
+        BigDecimal originalPrice = orderBargain.getOriginalPrice();
+        //商品目标价格
+        BigDecimal targetPrice = orderBargain.getTargetPrice();
+        //商品当前价格
+        BigDecimal currentPrice = orderBargain.getCurrentPrice();
+        //商品当前剩余砍价金额
+        BigDecimal surplusPrice = currentPrice.subtract(targetPrice);
+
+        //获取砍价随机金额
+        BigDecimal maxPrice = originalPrice.subtract(targetPrice).multiply(BigDecimal.valueOf(0.1));
+        BigDecimal minPrice = originalPrice.subtract(targetPrice).multiply(BigDecimal.valueOf(0.05));
+        BigDecimal randomNumber = MathUtils.getRandomNumber(maxPrice,minPrice);
+        if(randomNumber.compareTo(surplusPrice) > 0){
+            randomNumber = surplusPrice;
+        }
+        //初始化用户帮砍价记录
+        ComBatteryCommodityOrderBargainRecord orderBargainRecord = getOrderBargainRecord(orderBargain.getId()
+                ,orderDto.getUserId(),randomNumber,commodityOrder.getUserId(),nowDate);
+        orderBargainRecordMapper.insert(orderBargainRecord);
+
+        //更新砍价记录
+        orderBargain.setCurrentPrice(orderBargain.getCurrentPrice().subtract(randomNumber));
+        orderBargain.setCount(orderBargain.getCount() + 1);
+        this.baseMapper.updateById(orderBargain);
+
+        //判断当前砍价订单是否已完成
+        if(orderBargain.getCurrentPrice().compareTo(orderBargain.getTargetPrice()) == 0){
+            //砍价完成,更新订单为已完成
+            commodityOrder.setStatus(ComBatteryCommodityOrder.Status.DFH);
+            commodityOrder.setBargainStatus(ComBatteryCommodityOrder.BargainStatus.KJCG);
+            commodityOrder.setUpdateAt(nowDate);
+            commodityOrder.setUpdateBy(orderDto.getUserId());
+            commodityOrderMapper.updateById(commodityOrder);
+        }
+        return R.ok(randomNumber);
+    }
+
+    /**
+     * 初始化用户帮砍价记录
+     * @param bargainId 砍价记录id
+     * @param userId    帮砍价用户id
+     * @param amount    砍价金额
+     * @param oldUserId 原发布砍价订单用户id
+     * @param nowDate   操作时间
+     * @return  用户帮砍价记录
+     */
+    private ComBatteryCommodityOrderBargainRecord getOrderBargainRecord(Long bargainId,Long userId
+            ,BigDecimal amount,Long oldUserId,Date nowDate){
+        ComBatteryCommodityOrderBargainRecord orderBargainRecord = new ComBatteryCommodityOrderBargainRecord();
+        orderBargainRecord.setBargainId(bargainId);
+        orderBargainRecord.setUserId(userId);
+        orderBargainRecord.setAmount(amount);
+        orderBargainRecord.setOldUserId(oldUserId);
+        orderBargainRecord.setCreateAt(nowDate);
+        orderBargainRecord.setCreateBy(userId);
+        return orderBargainRecord;
+    }
+
+    /**
+     * 查询砍价记录详情
+     * @param id  砍价记录id
+     * @return  创建订单结果
+     */
+    @Override
+    public R getUserBargain(Long id) {
+        //查询砍价记录
+        ComBatteryCommodityOrderBargainVo orderBargainVo = this.baseMapper.queryById(id);
+        if(orderBargainVo != null){
+            //查询帮砍价记录
+            List<ComBatteryCommodityOrderBargainRecordVo> orderBargainRecordList = orderBargainRecordMapper.queryAllByBargainId(id);
+            orderBargainVo.setOrderBargainRecordList(orderBargainRecordList);
+        }
+        return R.ok(orderBargainVo);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityOrderCollageTeamPeopleServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityOrderCollageTeamPeopleServiceImpl.java
new file mode 100644
index 0000000..0c93256
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityOrderCollageTeamPeopleServiceImpl.java
@@ -0,0 +1,119 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.panzhihua.service_community.entity.ComBatteryCommodityOrderCollageTeamPeople;
+import com.panzhihua.service_community.dao.ComBatteryCommodityOrderCollageTeamPeopleMapper;
+import com.panzhihua.service_community.service.ComBatteryCommodityOrderCollageTeamPeopleService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.BeanUtils;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+/**
+ * title: 电动车商城-拼团活动团队人员表表服务实现类
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-拼团活动团队人员表表服务实现类
+ *
+ * @author lyq
+ * @date 2022-03-29 16:07:09
+ */
+@Service("comBatteryCommodityOrderCollageTeamPeopleService")
+public class ComBatteryCommodityOrderCollageTeamPeopleServiceImpl extends ServiceImpl<ComBatteryCommodityOrderCollageTeamPeopleMapper, ComBatteryCommodityOrderCollageTeamPeople> implements ComBatteryCommodityOrderCollageTeamPeopleService {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommodityOrderCollageTeamPeople 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-29 16:07:09
+     */
+    @Override
+    public R queryByPage(PageComBatteryCommodityOrderCollageTeamPeopleDto comBatteryCommodityOrderCollageTeamPeople) {
+        return R.ok(this.baseMapper.queryAllByLimit(comBatteryCommodityOrderCollageTeamPeople, new Page(comBatteryCommodityOrderCollageTeamPeople.getPageNum(), comBatteryCommodityOrderCollageTeamPeople.getPageSize())));
+    }
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comBatteryCommodityOrderCollageTeamPeople 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-29 16:07:09
+     */
+    @Override
+    public R insert(AddComBatteryCommodityOrderCollageTeamPeopleDto comBatteryCommodityOrderCollageTeamPeople) {
+        ComBatteryCommodityOrderCollageTeamPeople entity = new ComBatteryCommodityOrderCollageTeamPeople();
+        BeanUtils.copyProperties(comBatteryCommodityOrderCollageTeamPeople, entity);
+        if (this.baseMapper.insert(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    /**
+     * description  update  修改数据
+     *
+     * @param editDto 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-29 16:07:09
+     */
+    @Override
+    public R update(EditComBatteryCommodityOrderCollageTeamPeopleDto editDto) {
+        ComBatteryCommodityOrderCollageTeamPeople entity = this.baseMapper.selectById(editDto.getId());
+        if (entity == null) {
+            return R.fail("未查询到该记录");
+        }
+        BeanUtils.copyProperties(editDto, entity);
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败");
+    }
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-29 16:07:09
+     */
+    @Override
+    public R deleteById(Long id) {
+        if (this.baseMapper.deleteById(id) > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 16:07:09
+     */
+    @Override
+    public R detailById(Long id) {
+        return R.ok(this.baseMapper.queryById(id));
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommodityOrderCollageTeamPeople 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 16:07:09
+     */
+    @Override
+    public R queryByList(PageComBatteryCommodityOrderCollageTeamPeopleDto comBatteryCommodityOrderCollageTeamPeople) {
+        return R.ok(this.baseMapper.queryAllByList(comBatteryCommodityOrderCollageTeamPeople));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityOrderCollageTeamServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityOrderCollageTeamServiceImpl.java
new file mode 100644
index 0000000..02877ce
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityOrderCollageTeamServiceImpl.java
@@ -0,0 +1,382 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.constants.PayCpmstant;
+import com.panzhihua.common.model.vos.common.ComBatteryCommodityOrderCollageTeamPeopleVo;
+import com.panzhihua.common.model.vos.common.ComBatteryCommodityOrderCollageTeamVo;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.common.utlis.WxPayUtils;
+import com.panzhihua.service_community.dao.*;
+import com.panzhihua.service_community.entity.*;
+import com.panzhihua.service_community.service.ComBatteryCommodityOrderCollageTeamService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.service_community.service.ComBatteryTradeOrderService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * title: 电动车商城-拼团订单团队表表服务实现类
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-拼团订单团队表表服务实现类
+ *
+ * @author lyq
+ * @date 2022-03-29 16:06:58
+ */
+@Slf4j
+@Service("comBatteryCommodityOrderCollageTeamService")
+public class ComBatteryCommodityOrderCollageTeamServiceImpl extends ServiceImpl<ComBatteryCommodityOrderCollageTeamMapper, ComBatteryCommodityOrderCollageTeam> implements ComBatteryCommodityOrderCollageTeamService {
+
+    @Resource
+    private ComBatteryCommodityActivityMapper commodityActivityMapper;
+    @Resource
+    private ComBatteryCommodityOrderCollageTeamMapper orderCollageTeamMapper;
+    @Resource
+    private ComBatteryCommodityOrderCollageTeamPeopleMapper orderCollageTeamPeopleMapper;
+    @Resource
+    private ComBatteryUserAddressMapper userAddressMapper;
+    @Resource
+    private SysUserMapper userMapper;
+    @Resource
+    private ComBatteryTradeOrderService tradeOrderService;
+    @Value("${min.app.isTest}")
+    private Boolean isTest;
+    @Value("${min.app.appid}")
+    private String appid;
+    @Value("${min.app.payKey}")
+    private String payKey;
+    @Value("${min.app.mchId}")
+    private String mchId;
+//    @Value("${min.app.currencyNotifyUrl}")
+//    private String currencyNotifyUrl;
+    @Resource
+    private ComBatteryCommodityMapper commodityMapper;
+    @Resource
+    private ComBatteryCommoditySpecsMapper commoditySpecsMapper;
+    @Resource
+    private ComBatteryCommodityOrderMapper commodityOrderMapper;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommodityOrderCollageTeam 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-29 16:06:58
+     */
+    @Override
+    public R queryByPage(PageComBatteryCommodityOrderCollageTeamDto comBatteryCommodityOrderCollageTeam) {
+        IPage<ComBatteryCommodityOrderCollageTeamVo> orderCollageTeamVoIPage = this.baseMapper.queryAllByLimit(comBatteryCommodityOrderCollageTeam
+                , new Page(comBatteryCommodityOrderCollageTeam.getPageNum(), comBatteryCommodityOrderCollageTeam.getPageSize()));
+        //判断该用户是否参与了以下拼团
+        if(comBatteryCommodityOrderCollageTeam.getUserId() != null && comBatteryCommodityOrderCollageTeam.getUserId() != 0L){
+            Long userId = comBatteryCommodityOrderCollageTeam.getUserId();
+            orderCollageTeamVoIPage.getRecords().forEach(orderCollageTeam -> {
+                Map<String,Object> resultMap = this.baseMapper.getUserCollageDetail(orderCollageTeam.getId(),userId);
+                if(resultMap != null){
+                    if(Integer.parseInt(resultMap.get("ktCount").toString()) > 0){
+                        orderCollageTeam.setIsPartake(2);
+                    }
+                    if(Integer.parseInt(resultMap.get("ptCount").toString()) > 0){
+                        orderCollageTeam.setIsPartake(2);
+                    }
+                }
+            });
+        }
+        return R.ok(orderCollageTeamVoIPage);
+    }
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comBatteryCommodityOrderCollageTeam 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-29 16:06:58
+     */
+    @Override
+    public R insert(AddComBatteryCommodityOrderCollageTeamDto comBatteryCommodityOrderCollageTeam) {
+        ComBatteryCommodityOrderCollageTeam entity = new ComBatteryCommodityOrderCollageTeam();
+        BeanUtils.copyProperties(comBatteryCommodityOrderCollageTeam, entity);
+        if (this.baseMapper.insert(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    /**
+     * description  update  修改数据
+     *
+     * @param editDto 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-29 16:06:58
+     */
+    @Override
+    public R update(EditComBatteryCommodityOrderCollageTeamDto editDto) {
+        ComBatteryCommodityOrderCollageTeam entity = this.baseMapper.selectById(editDto.getId());
+        if (entity == null) {
+            return R.fail("未查询到该记录");
+        }
+        BeanUtils.copyProperties(editDto, entity);
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败");
+    }
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-29 16:06:58
+     */
+    @Override
+    public R deleteById(Long id) {
+        if (this.baseMapper.deleteById(id) > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 16:06:58
+     */
+    @Override
+    public R detailById(Long id,Long userId) {
+        ComBatteryCommodityOrderCollageTeamVo orderCollageTeamVo = this.baseMapper.queryById(id);
+        if(orderCollageTeamVo != null){
+            List<ComBatteryCommodityOrderCollageTeamPeopleVo> collageTeamPeopleList = orderCollageTeamPeopleMapper.queryAllByTeamId(id);
+            orderCollageTeamVo.setOrderCollageTeamPeopleList(collageTeamPeopleList);
+            //判断该用户是否参与了以下拼团
+            if(userId != null && userId != 0L){
+                Map<String,Object> resultMap = this.baseMapper.getUserCollageDetail(orderCollageTeamVo.getId(),userId);
+                if(resultMap != null){
+                    if(Integer.parseInt(resultMap.get("ktCount").toString()) > 0){
+                        orderCollageTeamVo.setIsPartake(2);
+                    }
+                    if(Integer.parseInt(resultMap.get("ptCount").toString()) > 0){
+                        orderCollageTeamVo.setIsPartake(2);
+                    }
+                }
+            }
+
+        }
+        return R.ok(orderCollageTeamVo);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommodityOrderCollageTeam 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 16:06:58
+     */
+    @Override
+    public R queryByList(PageComBatteryCommodityOrderCollageTeamDto comBatteryCommodityOrderCollageTeam) {
+        return R.ok(this.baseMapper.queryAllByList(comBatteryCommodityOrderCollageTeam));
+    }
+
+    /**
+     * 创建拼团订单
+     * @param orderDto  请求参数
+     * @return  创建订单结果
+     */
+    @Override
+    public synchronized R startFight(StartFightOrderDto orderDto) {
+        //查询拼团活动
+        ComBatteryCommodityActivity commodityActivity = commodityActivityMapper.selectById(orderDto.getActivityId());
+        if(commodityActivity == null){
+            return R.fail("未查询到拼团活动");
+        }
+        if(commodityActivity.getStatus().equals(ComBatteryCommodityActivity.Status.YXJ)){
+            return R.fail("该活动已下架");
+        }
+        if(commodityActivity.getEndTime().getTime() - System.currentTimeMillis() <= 0
+                || commodityActivity.getStatus().equals(ComBatteryCommodityActivity.Status.YJS)){
+            return R.fail("该活动已结束");
+        }
+        if(orderDto.getType().equals(StartFightOrderDto.Type.PT)){
+            //判断该团队人数是否已满
+            Integer count = orderCollageTeamPeopleMapper.selectCount(new QueryWrapper<ComBatteryCommodityOrderCollageTeamPeople>().lambda()
+                    .eq(ComBatteryCommodityOrderCollageTeamPeople::getTeamId,orderDto.getTeamId()));
+            if(count >= commodityActivity.getCollagePeopleNum()){
+                return R.fail("拼团人数已满");
+            }
+            //判断该团是否已参与
+            Integer userCount = orderCollageTeamPeopleMapper.selectCount(new QueryWrapper<ComBatteryCommodityOrderCollageTeamPeople>().lambda()
+                    .eq(ComBatteryCommodityOrderCollageTeamPeople::getTeamId,orderDto.getTeamId())
+                    .eq(ComBatteryCommodityOrderCollageTeamPeople::getUserId,orderDto.getUserId()));
+            if(userCount >= commodityActivity.getCollagePeopleNum()){
+                return R.fail("您已参与该拼团,不可重复参与");
+            }
+            //查询拼团团队
+            ComBatteryCommodityOrderCollageTeam orderCollageTeam = orderCollageTeamMapper.selectById(orderDto.getTeamId());
+            if(orderCollageTeam == null){
+                return R.fail("该拼团不存在");
+            }
+            if(orderDto.getUserId().equals(orderCollageTeam.getUserId())){
+                return R.fail("您不可拼自己的团");
+            }
+            if(!orderCollageTeam.getStatus().equals(ComBatteryCommodityOrderCollageTeam.Status.DDPT)){
+                return R.fail("该拼团已成功");
+            }
+        }else{
+            Integer count = orderCollageTeamMapper.selectCount(new QueryWrapper<ComBatteryCommodityOrderCollageTeam>().lambda()
+                    .eq(ComBatteryCommodityOrderCollageTeam::getActivityId,orderDto.getActivityId())
+                    .eq(ComBatteryCommodityOrderCollageTeam::getStatus,ComBatteryCommodityOrderCollageTeam.Status.DDPT)
+                    .eq(ComBatteryCommodityOrderCollageTeam::getUserId,orderDto.getUserId()));
+            if(count > 0){
+                return R.fail("当前活动商品您正在拼团中,不可重复开团");
+            }
+            Integer maxCount = orderCollageTeamMapper.selectCount(new QueryWrapper<ComBatteryCommodityOrderCollageTeam>().lambda()
+                    .eq(ComBatteryCommodityOrderCollageTeam::getActivityId,orderDto.getActivityId())
+                    .eq(ComBatteryCommodityOrderCollageTeam::getStatus,ComBatteryCommodityOrderCollageTeam.Status.DDPT));
+            if(maxCount >= commodityActivity.getCollageNum()){
+                return R.fail("当前正在拼团的数量已达到最大值,不可在开团");
+            }
+        }
+        //查询商品
+        ComBatteryCommodity commodity = commodityMapper.selectById(orderDto.getCommodityId());
+        if(commodity == null){
+            return R.fail("未查询到商品信息");
+        }
+        //查询用户信息
+        SysUser user = userMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId,orderDto.getUserId()));
+        if(user == null){
+            return R.fail("未查询到用户信息");
+        }
+        //查询商品规格信息
+        ComBatteryCommoditySpecs commoditySpecs = commoditySpecsMapper.selectById(commodityActivity.getSpecsId());
+        if(commoditySpecs == null){
+            return R.fail("未查询到商品规格信息");
+        }
+        if(commoditySpecs.getStock() < orderDto.getCount()){
+            return R.fail("该商品库存不足,无法下单");
+        }
+        //查询用户收货地址
+        ComBatteryUserAddress userAddress = userAddressMapper.selectById(orderDto.getAddressId());
+        if(userAddress == null){
+            return R.fail("未查询到用户收货地址");
+        }
+        Date nowDate = new Date();
+        //初始化订单数据
+        ComBatteryCommodityOrder commodityOrder = getCreateOrder(commodity,userAddress,user,commoditySpecs,orderDto,nowDate,commodityActivity);
+        Map<String,Object> resultMap = new HashMap<>(2);
+        if(commodityOrderMapper.insert(commodityOrder) > 0){
+            //更新商品库存
+            commoditySpecs.setStock(commoditySpecs.getStock() - orderDto.getCount());
+            commoditySpecsMapper.updateById(commoditySpecs);
+
+            //微信支付需要调取小程序微信支付
+            String result = getWxPayResult(commodityOrder.getFinalAmount(),commodityOrder.getOpenId()
+                    ,commodityOrder.getOrderNo(),"购买商品",orderDto.getType().toString());
+            resultMap.put("payResult",result);
+            resultMap.put("orderId",commodityOrder.getId());
+            // 添加微信支付交易流水
+            String wxTradeOrderNo = "wx" + Snowflake.getId();
+            tradeOrderService.addOrderTradeRecord(user.getUserId(), user.getOpenid(), wxTradeOrderNo, ComBatteryTradeOrder.PayType.WX,
+                    commodityOrder.getFinalAmount(), ComBatteryTradeOrder.TradeType.DDC_SHOP, commodityOrder.getId(),
+                    commodityOrder.getOrderNo(), user.getUserId(), nowDate);
+        }
+        return R.ok(resultMap);
+    }
+
+    /**
+     * 小程序唤起微信支付
+     *
+     * @param money
+     *            需要支付的金额
+     * @param openId
+     *            用户唤起微信支付的openid
+     * @param orderNo
+     *            业务订单号
+     * @param remark
+     *            交易备注
+     * @return 小程序支付参数
+     */
+    private String getWxPayResult(BigDecimal money, String openId, String orderNo, String remark,String type) {
+        String result = "";
+        // 将剩余金额调起微信支付
+        if (isTest) {
+            money = BigDecimal.valueOf(0.01);
+        }
+        // 调用wx支付
+//        result = WxPayUtils.getUnifiedorder(appid, mchId, payKey, currencyNotifyUrl + PayCpmstant.BATTERY_STORE_ACTIVITY_PAY_NOTIFY_URL
+//                , remark, openId, orderNo, money,type);
+        log.info("用户购买商品微信支付返回参数:" + result);
+        return result;
+    }
+
+    /**
+     * 初始化订单数据
+     * @param commodity         商品数据
+     * @param userAddress       用户收货地址信息
+     * @param user              用户数据
+     * @param commoditySpecs    商品规格数据
+     * @param orderDto          用户请求参数
+     * @param nowDate           操作时间
+     * @param commodityActivity           拼团活动数据
+     * @return  初始化订单数据
+     */
+    public static ComBatteryCommodityOrder getCreateOrder(ComBatteryCommodity commodity, ComBatteryUserAddress userAddress
+            , SysUser user, ComBatteryCommoditySpecs commoditySpecs, StartFightOrderDto orderDto, Date nowDate
+            ,ComBatteryCommodityActivity commodityActivity){
+        ComBatteryCommodityOrder commodityOrder = new ComBatteryCommodityOrder();
+        commodityOrder.setUserId(user.getUserId());
+        commodityOrder.setOpenId(user.getOpenid());
+        commodityOrder.setStoreId(commodity.getStoreId());
+        commodityOrder.setActivityId(commodityActivity.getId());
+        commodityOrder.setCommodityId(commodity.getId());
+        commodityOrder.setSpecsId(commoditySpecs.getId());
+        commodityOrder.setOrderNo("PT" + Snowflake.getId());
+        commodityOrder.setActivityType(commodityActivity.getType());
+        commodityOrder.setStatus(ComBatteryCommodityOrder.Status.DFK);
+        commodityOrder.setPayStatus(ComBatteryCommodityOrder.PayStatus.WZF);
+        commodityOrder.setIsDel(ComBatteryCommodityOrder.IsDel.NO);
+        commodityOrder.setPayType(ComBatteryCommodityOrder.PayType.WX);
+        commodityOrder.setCount(orderDto.getCount());
+        commodityOrder.setPrice(commodityActivity.getPrice());
+        commodityOrder.setAmount(commodityActivity.getPrice().multiply(BigDecimal.valueOf(orderDto.getCount())));
+        commodityOrder.setFreight(commodity.getPostage());
+        commodityOrder.setFinalAmount(commodityOrder.getAmount().add(commodityOrder.getFreight()));
+        commodityOrder.setCreateAt(nowDate);
+        commodityOrder.setCreateBy(user.getUserId());
+        commodityOrder.setRemark(orderDto.getRemark());
+        //收货地址
+        commodityOrder.setAddressId(userAddress.getId());
+        commodityOrder.setReceivingName(userAddress.getName());
+        commodityOrder.setReceivingPhone(userAddress.getPhone());
+        commodityOrder.setReceivingRegionCode(userAddress.getProvinceAdcode() + "-" + userAddress.getCityAdcode() + "-" + userAddress.getDistrictAdcode());
+        commodityOrder.setReceivingRegion(userAddress.getProvinceName() + userAddress.getCityName() + userAddress.getDistrictName());
+        commodityOrder.setReceivingAddress(userAddress.getAddress());
+        if(orderDto.getTeamId() != null){
+            commodityOrder.setTeamId(orderDto.getTeamId());
+        }
+        return commodityOrder;
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityOrderServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityOrderServiceImpl.java
new file mode 100644
index 0000000..4c81f60
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityOrderServiceImpl.java
@@ -0,0 +1,792 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.panzhihua.common.constants.PayCpmstant;
+import com.panzhihua.common.model.dtos.shop.WxPayNotifyOrderDTO;
+import com.panzhihua.common.model.vos.common.ComBatteryCommodityOrderVo;
+import com.panzhihua.common.model.vos.common.ComBatteryCommoditySpecsVo;
+import com.panzhihua.common.model.vos.common.ComBatteryCommodityVo;
+import com.panzhihua.common.model.vos.common.ComBatteryUserAddressVo;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.common.utlis.WxPayUtils;
+import com.panzhihua.service_community.dao.*;
+import com.panzhihua.service_community.entity.*;
+import com.panzhihua.service_community.service.ComBatteryCommodityOrderService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.service_community.service.ComBatteryTradeOrderService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * title: 电动车商城-订单表表服务实现类
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-订单表表服务实现类
+ *
+ * @author lyq
+ * @date 2022-03-29 16:05:48
+ */
+@Slf4j
+@Service("comBatteryCommodityOrderService")
+public class ComBatteryCommodityOrderServiceImpl extends ServiceImpl<ComBatteryCommodityOrderMapper, ComBatteryCommodityOrder> implements ComBatteryCommodityOrderService {
+
+    @Resource
+    private ComBatteryCommodityMapper commodityMapper;
+    @Resource
+    private ComBatteryCommoditySpecsMapper commoditySpecsMapper;
+    @Resource
+    private ComBatteryUserAddressMapper userAddressMapper;
+    @Resource
+    private SysUserMapper userMapper;
+    @Resource
+    private ComBatteryTradeOrderService tradeOrderService;
+    @Value("${min.app.isTest}")
+    private Boolean isTest;
+    @Value("${min.app.appid}")
+    private String appid;
+    @Value("${min.app.payKey}")
+    private String payKey;
+    @Value("${min.app.mchId}")
+    private String mchId;
+//    @Value("${min.app.currencyNotifyUrl}")
+//    private String currencyNotifyUrl;
+    @Resource
+    private ComBatteryCommodityOrderCollageTeamMapper orderCollageTeamMapper;
+    @Resource
+    private ComBatteryCommodityOrderCollageTeamPeopleMapper orderCollageTeamPeopleMapper;
+    @Resource
+    private ComBatteryCommodityActivityMapper commodityActivityMapper;
+    @Resource
+    private ComBatteryCommodityOrderBargainMapper orderBargainMapper;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommodityOrder 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-29 16:05:48
+     */
+    @Override
+    public R queryByPage(PageComBatteryCommodityOrderDto comBatteryCommodityOrder) {
+        return R.ok(this.baseMapper.queryAllByLimit(comBatteryCommodityOrder, new Page(comBatteryCommodityOrder.getPageNum(), comBatteryCommodityOrder.getPageSize())));
+    }
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comBatteryCommodityOrder 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-29 16:05:48
+     */
+    @Override
+    public R insert(AddComBatteryCommodityOrderDto comBatteryCommodityOrder) {
+        ComBatteryCommodityOrder entity = new ComBatteryCommodityOrder();
+        BeanUtils.copyProperties(comBatteryCommodityOrder, entity);
+        if (this.baseMapper.insert(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    /**
+     * description  update  修改数据
+     *
+     * @param editDto 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-29 16:05:48
+     */
+    @Override
+    public R update(EditComBatteryCommodityOrderDto editDto) {
+        ComBatteryCommodityOrder entity = this.baseMapper.selectById(editDto.getId());
+        if (entity == null) {
+            return R.fail("未查询到该记录");
+        }
+        BeanUtils.copyProperties(editDto, entity);
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败");
+    }
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-29 16:05:48
+     */
+    @Override
+    public R deleteById(Long id) {
+        ComBatteryCommodityOrder entity = new ComBatteryCommodityOrder();
+        entity.setId(id);
+        entity.setIsDel(ComBatteryCommodityOrder.IsDel.YES);
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 16:05:48
+     */
+    @Override
+    public R detailById(Long id) {
+        ComBatteryCommodityOrderVo commodityOrderVo = this.baseMapper.queryById(id);
+        if (commodityOrderVo != null) {
+            //查询商品信息
+            ComBatteryCommodityVo commodityVo = commodityMapper.queryById(commodityOrderVo.getCommodityId());
+            commodityOrderVo.setCommodityVo(commodityVo);
+            //查询商品规格信息
+            ComBatteryCommoditySpecsVo commoditySpecsVo = commoditySpecsMapper.queryById(commodityOrderVo.getSpecsId());
+            commodityOrderVo.setCommoditySpecsVo(commoditySpecsVo);
+            //查询用户收货地址
+            ComBatteryUserAddressVo userAddressVo = userAddressMapper.queryById(commodityOrderVo.getAddressId());
+            commodityOrderVo.setUserAddressVo(userAddressVo);
+        }
+        return R.ok(commodityOrderVo);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommodityOrder 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 16:05:48
+     */
+    @Override
+    public R queryByList(PageComBatteryCommodityOrderDto comBatteryCommodityOrder) {
+        return R.ok(this.baseMapper.queryAllByList(comBatteryCommodityOrder));
+    }
+
+    /**
+     * 修改订单收货地址
+     *
+     * @param editOrderAddressDto 请求参数
+     * @return 修改结果
+     */
+    @Override
+    public R updateOrderAddress(EditOrderAddressDto editOrderAddressDto) {
+        ComBatteryCommodityOrder entity = new ComBatteryCommodityOrder();
+        BeanUtils.copyProperties(editOrderAddressDto, entity);
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败");
+    }
+
+    /**
+     * 修改订单物流信息
+     *
+     * @param editOrderLogisticsDto 请求参数
+     * @return 修改结果
+     */
+    @Override
+    public R updateOrderLogistics(EditOrderLogisticsDto editOrderLogisticsDto) {
+        ComBatteryCommodityOrder entity = new ComBatteryCommodityOrder();
+        BeanUtils.copyProperties(editOrderLogisticsDto, entity);
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败");
+    }
+
+    /**
+     * 电动车商城购买商品支付回调
+     *
+     * @param notifyOrderDTO 请求参数
+     * @return 购买商品支付回调
+     */
+    @Override
+    public R batteryPayNotify(WxPayNotifyOrderDTO notifyOrderDTO) {
+        Date payTime = DateUtils.stringToDate(notifyOrderDTO.getPayTime(), new SimpleDateFormat("yyyyMMddHHmmss"));
+        Date nowDate = new Date();
+        String orderNo = notifyOrderDTO.getOrderTradeNo();
+        String payNo = notifyOrderDTO.getWxTradeNo();
+        BigDecimal cashFee = new BigDecimal(notifyOrderDTO.getCashFee());
+        ComBatteryCommodityOrder commodityOrder = this.baseMapper.selectOne(new QueryWrapper<ComBatteryCommodityOrder>().lambda()
+                .eq(ComBatteryCommodityOrder::getOrderNo, orderNo));
+        if (commodityOrder == null) {
+            log.error("用户购买商品订单微信支付回调错误,未查询到支付订单记录,支付订单号:" + orderNo);
+            return R.fail("未查询到用户购买商品支付订单记录");
+        }
+        if (!commodityOrder.getPayStatus().equals(ComBatteryCommodityOrder.PayStatus.WZF)) {
+            log.error("用户购买商品订单微信支付回调错误,错误原因:支付订单状态已发生改变,不可重复回调,订单号:" + orderNo);
+            return R.fail("支付订单状态已发生改变,不可重复回调");
+        }
+        //更新订单
+        commodityOrder.setStatus(ComBatteryCommodityOrder.Status.DFH);
+        commodityOrder.setPayStatus(ComBatteryCommodityOrder.PayStatus.YZF);
+        commodityOrder.setPayNo(payNo);
+        commodityOrder.setPayAmount(cashFee);
+        commodityOrder.setUpdateAt(nowDate);
+        commodityOrder.setPayTime(payTime);
+        this.baseMapper.updateById(commodityOrder);
+
+        // 更新微信支付流水记录
+        tradeOrderService.renewPayTrade(commodityOrder.getId(), cashFee, notifyOrderDTO.getWxTradeNo(), payTime, nowDate);
+        return R.ok();
+    }
+
+    /**
+     * 小程序用户创建订单
+     *
+     * @param createOrderDto 请求参数
+     * @return 创建结果
+     */
+    @Override
+    public R appletsOrderCreate(UserCreateOrderDto createOrderDto) {
+        //查询商品
+        ComBatteryCommodity commodity = commodityMapper.selectById(createOrderDto.getCommodityId());
+        if (commodity == null) {
+            return R.fail("未查询到商品信息");
+        }
+        //查询商品规格信息
+        ComBatteryCommoditySpecs commoditySpecs = commoditySpecsMapper.selectById(createOrderDto.getSpecsId());
+        if (commoditySpecs == null) {
+            return R.fail("未查询到商品规格信息");
+        }
+        //判断商品库存
+        if (commoditySpecs.getStock() < createOrderDto.getCount()) {
+            return R.fail("您购买的商品库存不足");
+        }
+        //查询用户收货地址
+        ComBatteryUserAddress userAddress = userAddressMapper.selectById(createOrderDto.getAddressId());
+        if (userAddress == null) {
+            return R.fail("未查询到用户收货地址");
+        }
+        //查询用户信息
+        SysUser user = userMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId,createOrderDto.getUserId()));
+        if (user == null) {
+            return R.fail("未查询到用户信息");
+        }
+        Date nowDate = new Date();
+        //初始化订单信息
+        ComBatteryCommodityOrder commodityOrder = getCreateOrder(commodity, userAddress, user, commoditySpecs, createOrderDto, nowDate);
+        Map<String, Object> resultMap = new HashMap<>(2);
+        if (this.baseMapper.insert(commodityOrder) > 0) {
+            //更新商品库存
+            commoditySpecs.setStock(commoditySpecs.getStock() - createOrderDto.getCount());
+            commoditySpecsMapper.updateById(commoditySpecs);
+
+            //微信支付需要调取小程序微信支付
+            String result = getWxPayResult(commodityOrder.getFinalAmount(), commodityOrder.getOpenId(), commodityOrder.getOrderNo(), "购买商品");
+            resultMap.put("payResult", result);
+            resultMap.put("orderId", commodityOrder.getId());
+
+            // 添加微信支付交易流水
+            String wxTradeOrderNo = "wx" + Snowflake.getId();
+            tradeOrderService.addOrderTradeRecord(user.getUserId(), user.getOpenid(), wxTradeOrderNo, ComBatteryTradeOrder.PayType.WX,
+                    commodityOrder.getFinalAmount(), ComBatteryTradeOrder.TradeType.DDC_SHOP, commodityOrder.getId(),
+                    commodityOrder.getOrderNo(), user.getUserId(), nowDate);
+        }
+        return R.ok(resultMap);
+    }
+
+    /**
+     * 初始化订单数据
+     *
+     * @param commodity      商品数据
+     * @param userAddress    用户收货地址信息
+     * @param user           用户数据
+     * @param commoditySpecs 商品规格数据
+     * @param createOrderDto 用户请求参数
+     * @param nowDate        操作时间
+     * @return 初始化订单数据
+     */
+    public static ComBatteryCommodityOrder getCreateOrder(ComBatteryCommodity commodity, ComBatteryUserAddress userAddress
+            , SysUser user, ComBatteryCommoditySpecs commoditySpecs, UserCreateOrderDto createOrderDto, Date nowDate) {
+        ComBatteryCommodityOrder commodityOrder = new ComBatteryCommodityOrder();
+        commodityOrder.setUserId(user.getUserId());
+        commodityOrder.setOpenId(user.getOpenid());
+        commodityOrder.setStoreId(commodity.getStoreId());
+        commodityOrder.setCommodityId(commodity.getId());
+        commodityOrder.setSpecsId(commoditySpecs.getId());
+        commodityOrder.setOrderNo("BS" + Snowflake.getId());
+        commodityOrder.setStatus(ComBatteryCommodityOrder.Status.DFK);
+        commodityOrder.setPayStatus(ComBatteryCommodityOrder.PayStatus.WZF);
+        commodityOrder.setIsDel(ComBatteryCommodityOrder.IsDel.NO);
+        commodityOrder.setPayType(ComBatteryCommodityOrder.PayType.WX);
+        commodityOrder.setCount(createOrderDto.getCount());
+        commodityOrder.setPrice(commoditySpecs.getPrice());
+        commodityOrder.setAmount(commoditySpecs.getPrice().multiply(BigDecimal.valueOf(createOrderDto.getCount())));
+        commodityOrder.setFreight(commodity.getPostage());
+        commodityOrder.setFinalAmount(commodityOrder.getAmount().add(commodityOrder.getFreight()));
+        commodityOrder.setCreateAt(nowDate);
+        commodityOrder.setCreateBy(user.getUserId());
+        commodityOrder.setRemark(createOrderDto.getRemark());
+        //收货地址
+        commodityOrder.setAddressId(userAddress.getId());
+        commodityOrder.setReceivingName(userAddress.getName());
+        commodityOrder.setReceivingPhone(userAddress.getPhone());
+        commodityOrder.setReceivingRegionCode(userAddress.getProvinceAdcode() + "-" + userAddress.getCityAdcode() + "-" + userAddress.getDistrictAdcode());
+        commodityOrder.setReceivingRegion(userAddress.getProvinceName() + userAddress.getCityName() + userAddress.getDistrictName());
+        commodityOrder.setReceivingAddress(userAddress.getAddress());
+        return commodityOrder;
+    }
+
+    /**
+     * 小程序唤起微信支付
+     *
+     * @param money   需要支付的金额
+     * @param openId  用户唤起微信支付的openid
+     * @param orderNo 业务订单号
+     * @param remark  交易备注
+     * @return 小程序支付参数
+     */
+    private String getWxPayResult(BigDecimal money, String openId, String orderNo, String remark) {
+        String result = "";
+        // 将剩余金额调起微信支付
+        if (isTest) {
+            money = BigDecimal.valueOf(0.01);
+        }
+        // 调用wx支付
+//        result = WxPayUtils.getUnifiedorder(appid, mchId, payKey, currencyNotifyUrl + PayCpmstant.BATTERY_STORE_PAY_NOTIFY_URL
+//                , remark, openId, orderNo, money,null);
+        log.info("用户购买商品微信支付返回参数:" + result);
+        return result;
+    }
+
+    /**
+     * 定时关闭5分钟未支付订单
+     *
+     * @return 操作结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R syncCloseOrder() {
+        log.info("定时器定时关闭超过5分钟未支付订单,并返回商品库存");
+        Date nowDate = new Date();
+        //获取当前时间减30分钟时间
+        Date oldDate = DateUtils.addMinutes(nowDate, -5);
+        List<ComBatteryCommodityOrder> commodityOrderList = this.baseMapper.selectList(new QueryWrapper<ComBatteryCommodityOrder>()
+                .lambda().eq(ComBatteryCommodityOrder::getStatus, ComBatteryCommodityOrder.Status.DFK)
+                .eq(ComBatteryCommodityOrder::getPayStatus, ComBatteryCommodityOrder.PayStatus.WZF)
+                .eq(ComBatteryCommodityOrder::getIsDel, ComBatteryCommodityOrder.IsDel.NO)
+                .lt(ComBatteryCommodityOrder::getCreateAt, oldDate));
+        commodityOrderList.forEach(commodityOrder -> {
+            commodityOrder.setStatus(ComBatteryCommodityOrder.Status.YGB);
+            commodityOrder.setUpdateAt(nowDate);
+            this.baseMapper.updateById(commodityOrder);
+            //归还库存
+            ComBatteryCommoditySpecs commoditySpecs = commoditySpecsMapper.selectById(commodityOrder.getSpecsId());
+            if (commoditySpecs != null) {
+                commoditySpecs.setStock(commoditySpecs.getStock() + commodityOrder.getCount());
+                commoditySpecs.setUpdateAt(nowDate);
+                commoditySpecsMapper.updateById(commoditySpecs);
+            }
+            if(commodityOrder.getActivityId() != null){
+                ComBatteryCommodityActivity commodityActivity = commodityActivityMapper.selectById(commodityOrder.getActivityId());
+                if(!commodityActivity.getType().equals(ComBatteryCommodityActivity.Type.PT)){
+                    commodityActivity.setCommoditySaleNum(commodityActivity.getCommoditySaleNum() - commodityOrder.getCount());
+                    commodityActivityMapper.updateById(commodityActivity);
+                }
+            }
+        });
+        return R.ok();
+    }
+
+    /**
+     * 电动车商城用户确认收货
+     *
+     * @param id     订单id
+     * @param userId 用户id
+     * @return 确认结果
+     */
+    @Override
+    public R appletsOrderReceiving(Long id, Long userId) {
+        ComBatteryCommodityOrder commodityOrder = this.baseMapper.selectById(id);
+        if (commodityOrder == null) {
+            return R.fail("未查询到订单信息");
+        }
+        //确认收货
+        commodityOrder.setStatus(ComBatteryCommodityOrder.Status.YWC);
+        commodityOrder.setReceivingTime(new Date());
+        commodityOrder.setUpdateAt(new Date());
+        commodityOrder.setUpdateBy(userId);
+        if (this.baseMapper.updateById(commodityOrder) > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 后台订单发货
+     *
+     * @param deliverAdminDto 请求参数
+     * @return 发货结果
+     */
+    @Override
+    public R orderDeliver(OrderDeliverAdminDto deliverAdminDto) {
+        //查询订单
+        ComBatteryCommodityOrder commodityOrder = this.baseMapper.selectById(deliverAdminDto.getId());
+        if (commodityOrder == null) {
+            return R.fail("未查询到订单信息");
+        }
+        Date nowDate = new Date();
+        //判断操作类型
+        if (deliverAdminDto.getType().equals(OrderDeliverAdminDto.Type.FH)) {
+            commodityOrder.setLogisticsCompany(deliverAdminDto.getLogisticsCompany());
+            commodityOrder.setLogisticsNo(deliverAdminDto.getLogisticsNo());
+            commodityOrder.setUpdateBy(deliverAdminDto.getUserId());
+            commodityOrder.setUpdateAt(nowDate);
+            commodityOrder.setDeliveryTime(nowDate);
+            commodityOrder.setStatus(ComBatteryCommodityOrder.Status.DSH);
+        } else if (deliverAdminDto.getType().equals(OrderDeliverAdminDto.Type.XGWL)) {
+            commodityOrder.setLogisticsCompany(deliverAdminDto.getLogisticsCompany());
+            commodityOrder.setLogisticsNo(deliverAdminDto.getLogisticsNo());
+            commodityOrder.setUpdateBy(deliverAdminDto.getUserId());
+            commodityOrder.setUpdateAt(nowDate);
+        }
+        if (this.baseMapper.updateById(commodityOrder) > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 电动车商城购买活动商品支付回调
+     *
+     * @param notifyOrderDTO 请求参数
+     * @return 购买商品支付回调
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public synchronized R batteryActivityPayNotify(WxPayNotifyOrderDTO notifyOrderDTO) {
+        Date payTime = DateUtils.stringToDate(notifyOrderDTO.getPayTime(), new SimpleDateFormat("yyyyMMddHHmmss"));
+        Date nowDate = new Date();
+        String orderNo = notifyOrderDTO.getOrderTradeNo();
+        String payNo = notifyOrderDTO.getWxTradeNo();
+        BigDecimal cashFee = new BigDecimal(notifyOrderDTO.getCashFee());
+        //查询该订单数据
+        ComBatteryCommodityOrder commodityOrder = this.baseMapper.selectOne(new QueryWrapper<ComBatteryCommodityOrder>().lambda()
+                .eq(ComBatteryCommodityOrder::getOrderNo, orderNo));
+        if (commodityOrder == null) {
+            log.error("用户购买商品订单微信支付回调错误,未查询到支付订单记录,支付订单号:" + orderNo);
+            return R.fail("未查询到用户购买商品支付订单记录");
+        }
+        if (!commodityOrder.getPayStatus().equals(ComBatteryCommodityOrder.PayStatus.WZF)) {
+            log.error("用户购买商品订单微信支付回调错误,错误原因:支付订单状态已发生改变,不可重复回调,订单号:" + orderNo);
+            return R.fail("支付订单状态已发生改变,不可重复回调");
+        }
+        //更新订单
+        if (commodityOrder.getActivityId() != null) {
+            switch (commodityOrder.getActivityType()) {
+                case ComBatteryCommodityOrder.ActivityType.PT:
+                    //拼团订单成功支付处理
+                    commodityOrder.setCollageStatus(ComBatteryCommodityOrder.CollageStatus.PTZ);
+                    commodityOrder.setStatus(ComBatteryCommodityOrder.Status.DPT);
+                    ComBatteryCommodityOrderCollageTeam orderCollageTeam = null;
+                    if(notifyOrderDTO.getAttach() != null && notifyOrderDTO.getAttach().equals("1")){
+                        //用户开团,创建团队信息
+                        orderCollageTeam = getOrderCollageTeam(commodityOrder,nowDate);
+                        orderCollageTeamMapper.insert(orderCollageTeam);
+                        commodityOrder.setTeamId(orderCollageTeam.getId());
+                    }else{
+                        //用户参团,查询参加的团队信息
+                        orderCollageTeam = orderCollageTeamMapper.selectById(commodityOrder.getTeamId());
+                    }
+                    if(orderCollageTeam != null){
+                        //创建用户开团人员记录
+                        ComBatteryCommodityOrderCollageTeamPeople orderCollageTeamPeople = getOrderCollageTeamPeople(commodityOrder.getUserId()
+                                ,nowDate,orderCollageTeam,notifyOrderDTO.getAttach());
+                        orderCollageTeamPeopleMapper.insert(orderCollageTeamPeople);
+                    }
+                    break;
+                case ComBatteryCommodityOrder.ActivityType.KJ:
+                    //砍价订单成功支付处理
+                    commodityOrder.setBargainStatus(ComBatteryCommodityOrder.BargainStatus.KJZ);
+                    commodityOrder.setStatus(ComBatteryCommodityOrder.Status.DKJ);
+                    //创建用户发布待砍价记录
+                    ComBatteryCommodityOrderBargain orderBargain = getOrderBargain(commodityOrder,nowDate);
+                    orderBargainMapper.insert(orderBargain);
+                    break;
+                case ComBatteryCommodityOrder.ActivityType.MS:
+                    commodityOrder.setStatus(ComBatteryCommodityOrder.Status.DFH);
+                    break;
+                default:
+                    break;
+            }
+        }
+        // 更新微信支付流水记录
+        tradeOrderService.renewPayTrade(commodityOrder.getId(), cashFee, notifyOrderDTO.getWxTradeNo(), payTime, nowDate);
+
+        commodityOrder.setPayStatus(ComBatteryCommodityOrder.PayStatus.YZF);
+        commodityOrder.setPayNo(payNo);
+        commodityOrder.setPayAmount(cashFee);
+        commodityOrder.setUpdateAt(nowDate);
+        commodityOrder.setPayTime(payTime);
+        this.baseMapper.updateById(commodityOrder);
+
+        if(commodityOrder.getTeamId() != null){
+            //判断当前拼团人员是否已足够成团
+            syncAssortedDoughStatus(commodityOrder.getTeamId(),nowDate);
+        }
+        if(commodityOrder.getActivityId() != null && commodityOrder.getActivityType().equals(ComBatteryCommodityOrder.ActivityType.PT)){
+            //判断当前拼团活动是否已完成
+            syncAssortedDoughActivityStatus(commodityOrder.getActivityId(),nowDate);
+        }
+        return R.ok();
+    }
+
+    /**
+     * 初始化拼团团队数据
+     * @param commodityOrder    用户订单数据
+     * @param nowDate   操作时间
+     * @return  拼团团队数据
+     */
+    private ComBatteryCommodityOrderCollageTeam getOrderCollageTeam(ComBatteryCommodityOrder commodityOrder,Date nowDate){
+        ComBatteryCommodityOrderCollageTeam orderCollageTeam = new ComBatteryCommodityOrderCollageTeam();
+        orderCollageTeam.setActivityId(commodityOrder.getActivityId());
+        orderCollageTeam.setOrderId(commodityOrder.getId());
+        orderCollageTeam.setOrderNo(commodityOrder.getOrderNo());
+        orderCollageTeam.setUserId(commodityOrder.getUserId());
+        orderCollageTeam.setStatus(ComBatteryCommodityOrderCollageTeam.Status.DDPT);
+        orderCollageTeam.setCreateAt(nowDate);
+        return orderCollageTeam;
+    }
+
+    /**
+     * 初始化拼团团队人员数据
+     * @param userId    用户id
+     * @param nowDate   操作时间
+     * @param orderCollageTeam  拼团团队数据
+     * @param type  拼团类型(1.开团 2.参团)
+     * @return  拼团团队人员数据
+     */
+    private ComBatteryCommodityOrderCollageTeamPeople getOrderCollageTeamPeople(Long userId
+            ,Date nowDate,ComBatteryCommodityOrderCollageTeam orderCollageTeam,String type){
+        ComBatteryCommodityOrderCollageTeamPeople orderCollageTeamPeople = new ComBatteryCommodityOrderCollageTeamPeople();
+        orderCollageTeamPeople.setUserId(userId);
+        orderCollageTeamPeople.setTeamId(orderCollageTeam.getId());
+        orderCollageTeamPeople.setHeadUserId(orderCollageTeam.getUserId());
+        orderCollageTeamPeople.setType(Integer.parseInt(type));
+        orderCollageTeamPeople.setCreateAt(nowDate);
+        orderCollageTeamPeople.setCreateBy(userId);
+        return orderCollageTeamPeople;
+    }
+
+    /**
+     * 同步拼团活动状态
+     * @param activityId    活动id
+     */
+    private void syncAssortedDoughActivityStatus(Long activityId,Date nowDate){
+        ComBatteryCommodityActivity commodityActivity = commodityActivityMapper.selectById(activityId);
+        if(commodityActivity != null){
+            //查询该活动已成团数量
+            Integer count = orderCollageTeamMapper.selectCount(new QueryWrapper<ComBatteryCommodityOrderCollageTeam>().lambda()
+                    .eq(ComBatteryCommodityOrderCollageTeam::getActivityId,activityId)
+                    .eq(ComBatteryCommodityOrderCollageTeam::getStatus,ComBatteryCommodityOrderCollageTeam.Status.PTCG));
+            if(count >= commodityActivity.getCollageNum()){
+                //该活动已达到活动拼团数量,修改为已结束状态
+                commodityActivity.setStatus(ComBatteryCommodityActivity.Status.YJS);
+                commodityActivity.setUpdateAt(nowDate);
+                commodityActivityMapper.updateById(commodityActivity);
+            }
+        }
+    }
+
+    /**
+     * 判断当前拼团团队是否已满足拼团条件
+     * @param teamId    拼团团队id
+     * @param nowDate    操作时间
+     */
+    private void syncAssortedDoughStatus(Long teamId,Date nowDate){
+        //查询拼团团队id
+        ComBatteryCommodityOrderCollageTeam orderCollageTeam = orderCollageTeamMapper.selectById(teamId);
+        if(orderCollageTeam != null){
+            ComBatteryCommodityActivity commodityActivity = commodityActivityMapper.selectById(orderCollageTeam.getActivityId());
+            if(commodityActivity != null){
+                Integer count = orderCollageTeamPeopleMapper.selectCount(new QueryWrapper<ComBatteryCommodityOrderCollageTeamPeople>()
+                        .lambda().eq(ComBatteryCommodityOrderCollageTeamPeople::getTeamId,teamId));
+                if(count >= commodityActivity.getCollagePeopleNum()){
+                    //拼团条件满足,将所有已拼单的用户的订单更新为待发货状态
+                    //更新拼团团队记录
+                    orderCollageTeam.setStatus(ComBatteryCommodityOrderCollageTeam.Status.PTCG);
+                    orderCollageTeamMapper.updateById(orderCollageTeam);
+                    //查询拼团订单并进行更新
+                    List<ComBatteryCommodityOrder> commodityOrderList = this.baseMapper.selectList(new QueryWrapper<ComBatteryCommodityOrder>().lambda()
+                            .eq(ComBatteryCommodityOrder::getTeamId,teamId).eq(ComBatteryCommodityOrder::getStatus,ComBatteryCommodityOrder.Status.DPT)
+                            .eq(ComBatteryCommodityOrder::getCollageStatus,ComBatteryCommodityOrder.CollageStatus.PTZ)
+                            .eq(ComBatteryCommodityOrder::getActivityType,ComBatteryCommodityOrder.ActivityType.PT));
+                    commodityOrderList.forEach(commodityOrder -> {
+                        commodityOrder.setStatus(ComBatteryCommodityOrder.Status.DFH);
+                        commodityOrder.setCollageStatus(ComBatteryCommodityOrder.CollageStatus.PTCG);
+                        commodityOrder.setUpdateAt(nowDate);
+                        this.baseMapper.updateById(commodityOrder);
+                    });
+                }
+            }
+        }
+    }
+
+    /**
+     * 初始化砍价记录
+     * @param commodityOrder    订单数据
+     * @param nowDate   操作时间
+     * @return  砍价记录
+     */
+    private ComBatteryCommodityOrderBargain getOrderBargain(ComBatteryCommodityOrder commodityOrder,Date nowDate){
+        ComBatteryCommodityOrderBargain orderBargain = new ComBatteryCommodityOrderBargain();
+        BeanUtils.copyProperties(commodityOrder,orderBargain);
+        orderBargain.setOrderId(commodityOrder.getId());
+        orderBargain.setOrderNo(commodityOrder.getOrderNo());
+        orderBargain.setCount(0);
+        orderBargain.setCreateAt(nowDate);
+        orderBargain.setCreateBy(commodityOrder.getUserId());
+        //查询商品信息
+        ComBatteryCommodity commodity = commodityMapper.selectById(commodityOrder.getCommodityId());
+        if(commodity != null){
+            orderBargain.setOriginalPrice(commodity.getPrice());
+            orderBargain.setCurrentPrice(commodity.getPrice());
+        }
+        //查询活动信息
+        ComBatteryCommodityActivity commodityActivity = commodityActivityMapper.selectById(commodityOrder.getActivityId());
+        if(commodityActivity != null){
+            orderBargain.setTargetPrice(commodityActivity.getPrice());
+        }
+        return orderBargain;
+    }
+
+    /**
+     * 创建秒杀订单
+     * @param orderDto  请求参数
+     * @return  创建订单结果
+     */
+    @Override
+    public R startSeckill(StartSeckillOrderDto orderDto) {
+        ComBatteryCommodityActivity commodityActivity = commodityActivityMapper.selectById(orderDto.getActivityId());
+        if(commodityActivity == null){
+            return R.fail("未查询到秒杀活动");
+        }
+        if(commodityActivity.getCommodityNum() <= commodityActivity.getCommoditySaleNum()){
+            return R.fail("活动商品已售空");
+        }
+        if(commodityActivity.getEndTime().getTime() - System.currentTimeMillis() <= 0
+                || commodityActivity.getStatus().equals(ComBatteryCommodityActivity.Status.YJS)){
+            return R.fail("该活动已结束");
+        }
+        if(commodityActivity.getStatus().equals(ComBatteryCommodityActivity.Status.YXJ)){
+            return R.fail("该活动已下架");
+        }
+        Integer notSaleNum = commodityActivity.getCommodityNum() - commodityActivity.getCommoditySaleNum();
+        if(notSaleNum <= orderDto.getCount()){
+            return R.fail("活动商品库存不足");
+        }
+        //查询商品
+        ComBatteryCommodity commodity = commodityMapper.selectById(orderDto.getCommodityId());
+        if(commodity == null){
+            return R.fail("未查询到商品信息");
+        }
+        //查询商品规格信息
+        ComBatteryCommoditySpecs commoditySpecs = commoditySpecsMapper.selectById(commodityActivity.getSpecsId());
+        if(commoditySpecs == null){
+            return R.fail("未查询到商品规格信息");
+        }
+        if(commoditySpecs.getStock() < orderDto.getCount()){
+            return R.fail("该商品库存不足,无法下单");
+        }
+        //查询用户信息
+        SysUser user = userMapper.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getUserId,orderDto.getUserId()));
+        if(user == null){
+            return R.fail("未查询到用户信息");
+        }
+        //查询用户收货地址
+        ComBatteryUserAddress userAddress = userAddressMapper.selectById(orderDto.getAddressId());
+        if(userAddress == null){
+            return R.fail("未查询到用户收货地址");
+        }
+        Date nowDate = new Date();
+        ComBatteryCommodityOrder commodityOrder = getCreateActivityOrder(commodity,userAddress,user,commoditySpecs,orderDto,nowDate,commodityActivity);
+        Map<String,Object> resultMap = new HashMap<>(2);
+        if(this.baseMapper.insert(commodityOrder) > 0){
+            //更新活动商品库存
+            commodityActivity.setCommoditySaleNum(commodityActivity.getCommoditySaleNum() + orderDto.getCount());
+            commodityActivityMapper.updateById(commodityActivity);
+            //更新商品库存
+            commoditySpecs.setStock(commoditySpecs.getStock() - orderDto.getCount());
+            commoditySpecsMapper.updateById(commoditySpecs);
+            //微信支付需要调取小程序微信支付
+            String result = getWxPayResult(commodityOrder.getFinalAmount(),commodityOrder.getOpenId()
+                    ,commodityOrder.getOrderNo(),"购买商品");
+            resultMap.put("payResult",result);
+            resultMap.put("orderId",commodityOrder.getId());
+            // 添加微信支付交易流水
+            String wxTradeOrderNo = "wx" + Snowflake.getId();
+            tradeOrderService.addOrderTradeRecord(user.getUserId(), user.getOpenid(), wxTradeOrderNo, ComBatteryTradeOrder.PayType.WX,
+                    commodityOrder.getFinalAmount(), ComBatteryTradeOrder.TradeType.DDC_SHOP, commodityOrder.getId(),
+                    commodityOrder.getOrderNo(), user.getUserId(), nowDate);
+        }
+        return R.ok(resultMap);
+    }
+
+    /**
+     * 初始化活动订单数据
+     * @param commodity         商品数据
+     * @param userAddress       用户收货地址信息
+     * @param user              用户数据
+     * @param commoditySpecs    商品规格数据
+     * @param orderDto          用户请求参数
+     * @param nowDate           操作时间
+     * @param commodityActivity           拼团活动数据
+     * @return  初始化订单数据
+     */
+    public static ComBatteryCommodityOrder getCreateActivityOrder(ComBatteryCommodity commodity, ComBatteryUserAddress userAddress
+            , SysUser user, ComBatteryCommoditySpecs commoditySpecs, StartSeckillOrderDto orderDto, Date nowDate
+            ,ComBatteryCommodityActivity commodityActivity){
+        ComBatteryCommodityOrder commodityOrder = new ComBatteryCommodityOrder();
+        commodityOrder.setUserId(user.getUserId());
+        commodityOrder.setOpenId(user.getOpenid());
+        commodityOrder.setStoreId(commodity.getStoreId());
+        commodityOrder.setActivityId(commodityActivity.getId());
+        commodityOrder.setCommodityId(commodity.getId());
+        commodityOrder.setSpecsId(commoditySpecs.getId());
+        commodityOrder.setOrderNo("PT" + Snowflake.getId());
+        commodityOrder.setActivityType(commodityActivity.getType());
+        commodityOrder.setStatus(ComBatteryCommodityOrder.Status.DFK);
+        commodityOrder.setPayStatus(ComBatteryCommodityOrder.PayStatus.WZF);
+        commodityOrder.setIsDel(ComBatteryCommodityOrder.IsDel.NO);
+        commodityOrder.setPayType(ComBatteryCommodityOrder.PayType.WX);
+        commodityOrder.setCount(orderDto.getCount());
+        commodityOrder.setPrice(commodityActivity.getPrice());
+        commodityOrder.setAmount(commodityActivity.getPrice().multiply(BigDecimal.valueOf(orderDto.getCount())));
+        commodityOrder.setFreight(commodity.getPostage());
+        commodityOrder.setFinalAmount(commodityOrder.getAmount().add(commodityOrder.getFreight()));
+        commodityOrder.setCreateAt(nowDate);
+        commodityOrder.setCreateBy(user.getUserId());
+        commodityOrder.setRemark(orderDto.getRemark());
+        //收货地址
+        commodityOrder.setAddressId(userAddress.getId());
+        commodityOrder.setReceivingName(userAddress.getName());
+        commodityOrder.setReceivingPhone(userAddress.getPhone());
+        commodityOrder.setReceivingRegionCode(userAddress.getProvinceAdcode() + "-" + userAddress.getCityAdcode() + "-" + userAddress.getDistrictAdcode());
+        commodityOrder.setReceivingRegion(userAddress.getProvinceName() + userAddress.getCityName() + userAddress.getDistrictName());
+        commodityOrder.setReceivingAddress(userAddress.getAddress());
+        return commodityOrder;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityServiceImpl.java
new file mode 100644
index 0000000..3b88128
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommodityServiceImpl.java
@@ -0,0 +1,166 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.panzhihua.common.model.vos.common.ComBatteryCommoditySpecsVo;
+import com.panzhihua.common.model.vos.common.ComBatteryCommodityVo;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.service_community.dao.ComBatteryCommoditySpecsMapper;
+import com.panzhihua.service_community.entity.ComBatteryCommodity;
+import com.panzhihua.service_community.dao.ComBatteryCommodityMapper;
+import com.panzhihua.service_community.service.ComBatteryCommodityService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.BeanUtils;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * title: 电动车商城-商品表表服务实现类
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商品表表服务实现类
+ *
+ * @author lyq
+ * @date 2022-03-28 14:59:59
+ */
+@Service("comBatteryCommodityService")
+public class ComBatteryCommodityServiceImpl extends ServiceImpl<ComBatteryCommodityMapper, ComBatteryCommodity> implements ComBatteryCommodityService {
+
+    @Resource
+    private ComBatteryCommoditySpecsMapper commoditySpecsMapper;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommodity 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-28 14:59:59
+     */
+    @Override
+    public R queryByPage(PageComBatteryCommodityDto comBatteryCommodity) {
+        return R.ok(this.baseMapper.queryAllByLimit(comBatteryCommodity, new Page(comBatteryCommodity.getPageNum(), comBatteryCommodity.getPageSize())));
+    }
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comBatteryCommodity 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-28 14:59:59
+     */
+    @Override
+    public R insert(AddComBatteryCommodityDto comBatteryCommodity) {
+        ComBatteryCommodity entity = new ComBatteryCommodity();
+        BeanUtils.copyProperties(comBatteryCommodity, entity);
+        entity.setCode("GD" + Snowflake.getId());
+        if (this.baseMapper.insert(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    /**
+     * description  update  修改数据
+     *
+     * @param editDto 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-28 14:59:59
+     */
+    @Override
+    public R update(EditComBatteryCommodityDto editDto) {
+        ComBatteryCommodity entity = this.baseMapper.selectById(editDto.getId());
+        if (entity == null) {
+            return R.fail("未查询到该记录");
+        }
+        BeanUtils.copyProperties(editDto, entity);
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败");
+    }
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-28 14:59:59
+     */
+    @Override
+    public R deleteById(Long id) {
+        ComBatteryCommodity entity = new ComBatteryCommodity();
+        entity.setId(id);
+        entity.setIsDel(ComBatteryCommodity.IsDel.YES);
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-28 14:59:59
+     */
+    @Override
+    public R detailById(Long id) {
+        ComBatteryCommodityVo commodityVo = this.baseMapper.queryById(id);
+        if(commodityVo != null){
+            //查询商品规格列表
+            List<ComBatteryCommoditySpecsVo> commoditySpecsVoList = commoditySpecsMapper.queryAllByCommodityId(commodityVo.getId());
+            commodityVo.setCommoditySpecsVoList(commoditySpecsVoList);
+        }
+        return R.ok(commodityVo);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommodity 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-28 14:59:59
+     */
+    @Override
+    public R queryByList(PageComBatteryCommodityDto comBatteryCommodity) {
+        return R.ok(this.baseMapper.queryAllByList(comBatteryCommodity));
+    }
+
+    /**
+     * 修改商品状态
+     * @param id    商品id
+     * @param status    商品状态
+     * @return  修改结果
+     */
+    @Override
+    public R updateStatus(Long id, Integer status) {
+        ComBatteryCommodity entity = new ComBatteryCommodity();
+        entity.setId(id);
+        entity.setStatus(status);
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败");
+    }
+
+    /**
+     * 小程序查询商品列表
+     * @param comBatteryCommodity   请求参数
+     * @return  商品列表
+     */
+    @Override
+    public R queryByAppletsPage(PageComBatteryCommodityDto comBatteryCommodity) {
+        return R.ok(this.baseMapper.queryByAppletsPage(comBatteryCommodity, new Page(comBatteryCommodity.getPageNum(), comBatteryCommodity.getPageSize())));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommoditySpecsServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommoditySpecsServiceImpl.java
new file mode 100644
index 0000000..2f72e0d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryCommoditySpecsServiceImpl.java
@@ -0,0 +1,122 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.panzhihua.service_community.entity.ComBatteryCommoditySpecs;
+import com.panzhihua.service_community.dao.ComBatteryCommoditySpecsMapper;
+import com.panzhihua.service_community.service.ComBatteryCommoditySpecsService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.BeanUtils;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+/**
+ * title: 电动车商城-商品规格表表服务实现类
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商品规格表表服务实现类
+ *
+ * @author lyq
+ * @date 2022-03-28 15:16:22
+ */
+@Service("comBatteryCommoditySpecsService")
+public class ComBatteryCommoditySpecsServiceImpl extends ServiceImpl<ComBatteryCommoditySpecsMapper, ComBatteryCommoditySpecs> implements ComBatteryCommoditySpecsService {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryCommoditySpecs 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-28 15:16:22
+     */
+    @Override
+    public R queryByPage(PageComBatteryCommoditySpecsDto comBatteryCommoditySpecs) {
+        return R.ok(this.baseMapper.queryAllByLimit(comBatteryCommoditySpecs, new Page(comBatteryCommoditySpecs.getPageNum(), comBatteryCommoditySpecs.getPageSize())));
+    }
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comBatteryCommoditySpecs 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-28 15:16:22
+     */
+    @Override
+    public R insert(AddComBatteryCommoditySpecsDto comBatteryCommoditySpecs) {
+        ComBatteryCommoditySpecs entity = new ComBatteryCommoditySpecs();
+        BeanUtils.copyProperties(comBatteryCommoditySpecs, entity);
+        if (this.baseMapper.insert(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    /**
+     * description  update  修改数据
+     *
+     * @param editDto 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-28 15:16:22
+     */
+    @Override
+    public R update(EditComBatteryCommoditySpecsDto editDto) {
+        ComBatteryCommoditySpecs entity = this.baseMapper.selectById(editDto.getId());
+        if (entity == null) {
+            return R.fail("未查询到该记录");
+        }
+        BeanUtils.copyProperties(editDto, entity);
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败");
+    }
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-28 15:16:22
+     */
+    @Override
+    public R deleteById(Long id) {
+        ComBatteryCommoditySpecs entity = new ComBatteryCommoditySpecs();
+        entity.setId(id);
+        entity.setIsDel(ComBatteryCommoditySpecs.IsDel.YES);
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-28 15:16:22
+     */
+    @Override
+    public R detailById(Long id) {
+        return R.ok(this.baseMapper.queryById(id));
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryCommoditySpecs 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-28 15:16:22
+     */
+    @Override
+    public R queryByList(PageComBatteryCommoditySpecsDto comBatteryCommoditySpecs) {
+        return R.ok(this.baseMapper.queryAllByList(comBatteryCommoditySpecs));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryStoreClassServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryStoreClassServiceImpl.java
new file mode 100644
index 0000000..9bd0c9a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryStoreClassServiceImpl.java
@@ -0,0 +1,167 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.panzhihua.common.model.vos.common.ComBatteryCommodityVo;
+import com.panzhihua.common.model.vos.common.ComBatteryStoreClassVo;
+import com.panzhihua.service_community.dao.ComBatteryCommodityMapper;
+import com.panzhihua.service_community.entity.ComBatteryCommodity;
+import com.panzhihua.service_community.entity.ComBatteryStoreClass;
+import com.panzhihua.service_community.dao.ComBatteryStoreClassMapper;
+import com.panzhihua.service_community.service.ComBatteryStoreClassService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.BeanUtils;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * title: 电动车商城-商家分类表表服务实现类
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商家分类表表服务实现类
+ *
+ * @author lyq
+ * @date 2022-03-29 11:01:56
+ */
+@Service("comBatteryStoreClassService")
+public class ComBatteryStoreClassServiceImpl extends ServiceImpl<ComBatteryStoreClassMapper, ComBatteryStoreClass> implements ComBatteryStoreClassService {
+
+    @Resource
+    private ComBatteryCommodityMapper commodityMapper;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryStoreClass 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-29 11:01:56
+     */
+    @Override
+    public R queryByPage(PageComBatteryStoreClassDto comBatteryStoreClass) {
+        return R.ok(this.baseMapper.queryAllByLimit(comBatteryStoreClass, new Page(comBatteryStoreClass.getPageNum(), comBatteryStoreClass.getPageSize())));
+    }
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comBatteryStoreClass 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-29 11:01:56
+     */
+    @Override
+    public R insert(AddComBatteryStoreClassDto comBatteryStoreClass) {
+        ComBatteryStoreClass entity = new ComBatteryStoreClass();
+        BeanUtils.copyProperties(comBatteryStoreClass, entity);
+        if (this.baseMapper.insert(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    /**
+     * description  update  修改数据
+     *
+     * @param editDto 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-29 11:01:56
+     */
+    @Override
+    public R update(EditComBatteryStoreClassDto editDto) {
+        ComBatteryStoreClass entity = this.baseMapper.selectById(editDto.getId());
+        if (entity == null) {
+            return R.fail("未查询到该记录");
+        }
+        BeanUtils.copyProperties(editDto, entity);
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败");
+    }
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-29 11:01:56
+     */
+    @Override
+    public R deleteById(Long id) {
+        Integer count = commodityMapper.selectCount(new QueryWrapper<ComBatteryCommodity>().lambda()
+                .eq(ComBatteryCommodity::getClassId,id).eq(ComBatteryCommodity::getIsDel,ComBatteryCommodity.IsDel.NO));
+        if(count > 0){
+            return R.fail("该分类下已绑定商品,不可删除");
+        }
+        if (this.baseMapper.deleteById(id) > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 11:01:56
+     */
+    @Override
+    public R detailById(Long id) {
+        return R.ok(this.baseMapper.queryById(id));
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryStoreClass 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 11:01:56
+     */
+    @Override
+    public R queryByList(PageComBatteryStoreClassDto comBatteryStoreClass) {
+        return R.ok(this.baseMapper.queryAllByList(comBatteryStoreClass));
+    }
+
+    /**
+     * 修改分类状态
+     * @param id    分类id
+     * @param status    状态
+     * @return  修改结果
+     */
+    @Override
+    public R updateStatus(Long id, Integer status) {
+        ComBatteryStoreClass entity = new ComBatteryStoreClass();
+        entity.setId(id);
+        entity.setStatus(status);
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败");
+    }
+
+    /**
+     * 小程序查询商家分类列表以及分类下商品列表
+     * @param comBatteryStoreClass  请求参数
+     * @return  商家分类列表以及分类下商品列表
+     */
+    @Override
+    public R queryByAppletsList(PageComBatteryStoreClassDto comBatteryStoreClass) {
+        List<ComBatteryStoreClassVo> storeClassList = this.baseMapper.queryAllByList(comBatteryStoreClass);
+        storeClassList.forEach(storeClass -> {
+            List<ComBatteryCommodityVo> commodityList = commodityMapper.queryAllByClassIdList(storeClass.getId());
+            storeClass.setCommodityList(commodityList);
+        });
+        return R.ok(storeClassList);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryStoreServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryStoreServiceImpl.java
new file mode 100644
index 0000000..c2b6a1e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryStoreServiceImpl.java
@@ -0,0 +1,180 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.service_community.dao.SysUserMapper;
+import com.panzhihua.service_community.entity.ComBatteryStore;
+import com.panzhihua.service_community.dao.ComBatteryStoreMapper;
+import com.panzhihua.service_community.entity.SysUser;
+import com.panzhihua.service_community.service.ComBatteryStoreService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.BeanUtils;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+
+/**
+ * title: 电动车商城-商家表表服务实现类
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-商家表表服务实现类
+ *
+ * @author lyq
+ * @date 2022-03-28 13:44:45
+ */
+@Service("comBatteryStoreService")
+public class ComBatteryStoreServiceImpl extends ServiceImpl<ComBatteryStoreMapper, ComBatteryStore> implements ComBatteryStoreService {
+
+    @Resource
+    private SysUserMapper userDao;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryStore 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-28 13:44:45
+     */
+    @Override
+    public R queryByPage(PageComBatteryStoreDto comBatteryStore) {
+        return R.ok(this.baseMapper.queryAllByLimit(comBatteryStore, new Page(comBatteryStore.getPageNum(), comBatteryStore.getPageSize())));
+    }
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comBatteryStore 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-28 13:44:45
+     */
+    @Transactional
+    @Override
+    public R insert(AddComBatteryStoreDto comBatteryStore) {
+        ComBatteryStore entity = new ComBatteryStore();
+        BeanUtils.copyProperties(comBatteryStore, entity);
+        Integer storeAccountCount = this.baseMapper.getStoreUserCountByAccount(comBatteryStore.getAccount());
+        if(storeAccountCount > 0){
+            return R.fail("该账号已存在");
+        }
+        Integer storePhoneCount = this.baseMapper.getStoreUserCountByPhone(comBatteryStore.getAccount());
+        if(storePhoneCount > 0){
+            return R.fail("该手机号已注册,不可重复注册");
+        }
+        if (this.baseMapper.insert(entity) > 0) {
+            //新增电动车商城商家账号
+            SysUser sysUser = new SysUser();
+            sysUser.setUserId(Snowflake.getId());
+            sysUser.setType(20);
+            sysUser.setStatus(SysUser.Status.YES);
+            sysUser.setAccount(comBatteryStore.getAccount());
+            String encode = new BCryptPasswordEncoder().encode(comBatteryStore.getPassword());
+            sysUser.setPassword(encode);
+            sysUser.setPhone(comBatteryStore.getRegPhone());
+            sysUser.setName(comBatteryStore.getName() + "管理员");
+            sysUser.setPlaintextPassword(comBatteryStore.getPassword());
+            sysUser.setCommunityId(entity.getId());
+            sysUser.setAppId("wx0cef797390444b75");
+            userDao.insert(sysUser);
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    /**
+     * description  update  修改数据
+     *
+     * @param editDto 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-28 13:44:45
+     */
+    @Override
+    public R update(EditComBatteryStoreDto editDto) {
+        ComBatteryStore entity = this.baseMapper.selectById(editDto.getId());
+        if (entity == null) {
+            return R.fail("未查询到该记录");
+        }
+        BeanUtils.copyProperties(editDto, entity);
+        //注册手机不可修改
+        entity.setRegPhone(null);
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败");
+    }
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-28 13:44:45
+     */
+    @Override
+    public R deleteById(Long id) {
+        ComBatteryStore entity = new ComBatteryStore();
+        entity.setId(id);
+        entity.setIsDel(ComBatteryStore.IsDel.YES);
+        if (this.baseMapper.updateById(entity) > 0) {
+            //同时删除账号
+            this.baseMapper.deleteStoreUserByStoreId(id);
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-28 13:44:45
+     */
+    @Override
+    public R detailById(Long id) {
+        return R.ok(this.baseMapper.queryById(id));
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryStore 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-28 13:44:45
+     */
+    @Override
+    public R queryByList(PageComBatteryStoreDto comBatteryStore) {
+        return R.ok(this.baseMapper.queryAllByList(comBatteryStore));
+    }
+
+    /**
+     * 修改人员密码
+     * @param storeId  商户id
+     * @param passWord  用户需要修改的密码
+     * @return  重置密码结果
+     */
+    @Override
+    public R resetPassword(Long storeId, String passWord) {
+        String encode = new BCryptPasswordEncoder().encode(passWord);
+        int update = userDao.updatePassWord(storeId,passWord,encode);
+        if (update > 0) {
+            ComBatteryStore entity = new ComBatteryStore();
+            entity.setId(storeId);
+            entity.setPassword(passWord);
+            this.baseMapper.updateById(entity);
+            return R.ok();
+        }
+        return R.fail();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryTradeOrderServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryTradeOrderServiceImpl.java
new file mode 100644
index 0000000..f2d2673
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryTradeOrderServiceImpl.java
@@ -0,0 +1,187 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.panzhihua.service_community.entity.ComBatteryTradeOrder;
+import com.panzhihua.service_community.dao.ComBatteryTradeOrderMapper;
+import com.panzhihua.service_community.service.ComBatteryTradeOrderService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.BeanUtils;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * title: 电动车商城-微信交易流水表表服务实现类
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-微信交易流水表表服务实现类
+ *
+ * @author lyq
+ * @date 2022-04-01 13:18:50
+ */
+@Service("comBatteryTradeOrderService")
+public class ComBatteryTradeOrderServiceImpl extends ServiceImpl<ComBatteryTradeOrderMapper, ComBatteryTradeOrder> implements ComBatteryTradeOrderService {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryTradeOrder 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-04-01 13:18:50
+     */
+    @Override
+    public R queryByPage(PageComBatteryTradeOrderDto comBatteryTradeOrder) {
+        return R.ok(this.baseMapper.queryAllByLimit(comBatteryTradeOrder, new Page(comBatteryTradeOrder.getPageNum(), comBatteryTradeOrder.getPageSize())));
+    }
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comBatteryTradeOrder 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-04-01 13:18:50
+     */
+    @Override
+    public R insert(AddComBatteryTradeOrderDto comBatteryTradeOrder) {
+        ComBatteryTradeOrder entity = new ComBatteryTradeOrder();
+        BeanUtils.copyProperties(comBatteryTradeOrder, entity);
+        if (this.baseMapper.insert(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    /**
+     * description  update  修改数据
+     *
+     * @param editDto 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-04-01 13:18:50
+     */
+    @Override
+    public R update(EditComBatteryTradeOrderDto editDto) {
+        ComBatteryTradeOrder entity = this.baseMapper.selectById(editDto.getId());
+        if (entity == null) {
+            return R.fail("未查询到该记录");
+        }
+        BeanUtils.copyProperties(editDto, entity);
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败");
+    }
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-04-01 13:18:50
+     */
+    @Override
+    public R deleteById(Long id) {
+        if (this.baseMapper.deleteById(id) > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-01 13:18:50
+     */
+    @Override
+    public R detailById(Long id) {
+        return R.ok(this.baseMapper.queryById(id));
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryTradeOrder 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-04-01 13:18:50
+     */
+    @Override
+    public R queryByList(PageComBatteryTradeOrderDto comBatteryTradeOrder) {
+        return R.ok(this.baseMapper.queryAllByList(comBatteryTradeOrder));
+    }
+
+    /**
+     * 添加微信交易记录
+     * @param userId    用户id
+     * @param openId    用户openId
+     * @param orderNo   订单号
+     * @param payType   支付类型
+     * @param orderAmount   订单金额
+     * @param tradeType     交易类型(1.电动车商城购买商品)
+     * @param tradeOrderId 交易业务订单id
+     * @param tradeOrderNo 交易业务订单号
+     * @param createBy     创建人
+     * @param nowDate      创建时间
+     */
+    @Override
+    public void addOrderTradeRecord(Long userId, String openId, String orderNo, Integer payType, BigDecimal orderAmount, Integer tradeType, Long tradeOrderId, String tradeOrderNo, Long createBy, Date nowDate) {
+        ComBatteryTradeOrder entity = new ComBatteryTradeOrder();
+        entity.setUserId(userId);
+        entity.setOpenId(openId);
+        entity.setOrderNo(orderNo);
+        entity.setStatus(ComBatteryTradeOrder.Status.DFZ);
+        entity.setPayType(payType);
+        entity.setPayStatus(ComBatteryTradeOrder.PayStatus.DZF);
+        entity.setOrderAmount(orderAmount);
+        entity.setTradeType(tradeType);
+        entity.setTradeOrderId(tradeOrderId);
+        entity.setTradeOrderNo(tradeOrderNo);
+        entity.setCreateAt(nowDate);
+        entity.setCreateBy(createBy);
+        this.baseMapper.insert(entity);
+    }
+
+    /**
+     * 更新微信支付流水记录
+     *
+     * @param orderId   订单id
+     * @param amount    实际支付金额
+     * @param wxTradeNo 微信支付订单号
+     * @param payTime   支付时间
+     * @param nowDate   当前处理时间
+     */
+    @Override
+    public void renewPayTrade(Long orderId, BigDecimal amount, String wxTradeNo, Date payTime, Date nowDate) {
+        List<ComBatteryTradeOrder> tradeOrderList = this.baseMapper.selectList(new QueryWrapper<ComBatteryTradeOrder>().lambda()
+                .eq(ComBatteryTradeOrder::getTradeOrderId, orderId).orderByDesc(ComBatteryTradeOrder::getCreateAt));
+        if(tradeOrderList != null && tradeOrderList.size() > 0){
+            for (int i = 0; i < tradeOrderList.size(); i++) {
+                ComBatteryTradeOrder tradeOrder = tradeOrderList.get(i);
+                if (i == 0) {
+                    tradeOrder.setPayStatus(ComBatteryTradeOrder.PayStatus.YZF);
+                    tradeOrder.setStatus(ComBatteryTradeOrder.Status.YZF);
+                    tradeOrder.setPayAmount(amount);
+                    tradeOrder.setPayNo(wxTradeNo);
+                    tradeOrder.setPayTime(payTime);
+                    tradeOrder.setUpdateAt(nowDate);
+                } else {
+                    tradeOrder.setStatus(ComBatteryTradeOrder.Status.YGB);
+                    tradeOrder.setUpdateAt(nowDate);
+                }
+                this.baseMapper.updateById(tradeOrder);
+            }
+        }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryUserAddressServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryUserAddressServiceImpl.java
new file mode 100644
index 0000000..adfb9b3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComBatteryUserAddressServiceImpl.java
@@ -0,0 +1,158 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.panzhihua.common.model.vos.common.ComBatteryUserAddressVo;
+import com.panzhihua.service_community.entity.ComBatteryUserAddress;
+import com.panzhihua.service_community.dao.ComBatteryUserAddressMapper;
+import com.panzhihua.service_community.service.ComBatteryUserAddressService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.BeanUtils;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import java.util.List;
+
+/**
+ * title: 电动车商城-用户收货地址表表服务实现类
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 电动车商城-用户收货地址表表服务实现类
+ *
+ * @author lyq
+ * @date 2022-03-29 13:18:20
+ */
+@Service("comBatteryUserAddressService")
+public class ComBatteryUserAddressServiceImpl extends ServiceImpl<ComBatteryUserAddressMapper, ComBatteryUserAddress> implements ComBatteryUserAddressService {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comBatteryUserAddress 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-29 13:18:20
+     */
+    @Override
+    public R queryByPage(PageComBatteryUserAddressDto comBatteryUserAddress) {
+        return R.ok(this.baseMapper.queryAllByLimit(comBatteryUserAddress, new Page(comBatteryUserAddress.getPageNum(), comBatteryUserAddress.getPageSize())));
+    }
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comBatteryUserAddress 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-29 13:18:20
+     */
+    @Override
+    public R insert(AddComBatteryUserAddressDto comBatteryUserAddress) {
+        ComBatteryUserAddress entity = new ComBatteryUserAddress();
+        if(comBatteryUserAddress.getIsDefault().equals(ComBatteryUserAddress.IsDefault.yes)){
+            //修改用户原来所有收货地址为不默认状态
+            this.baseMapper.updateUserAddressIsDefault(comBatteryUserAddress.getUserId());
+        }
+        BeanUtils.copyProperties(comBatteryUserAddress, entity);
+        if (this.baseMapper.insert(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    /**
+     * description  update  修改数据
+     *
+     * @param editDto 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-29 13:18:20
+     */
+    @Override
+    public R update(EditComBatteryUserAddressDto editDto) {
+        ComBatteryUserAddress entity = this.baseMapper.selectById(editDto.getId());
+        if (entity == null) {
+            return R.fail("未查询到该记录");
+        }
+        if(editDto.getIsDefault().equals(ComBatteryUserAddress.IsDefault.yes)){
+            //修改用户原来所有收货地址为不默认状态
+            this.baseMapper.updateUserAddressIsDefault(editDto.getUserId());
+        }
+        BeanUtils.copyProperties(editDto, entity);
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败");
+    }
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-29 13:18:20
+     */
+    @Override
+    public R deleteById(Long id) {
+        if (this.baseMapper.deleteById(id) > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-29 13:18:20
+     */
+    @Override
+    public R detailById(Long id) {
+        return R.ok(this.baseMapper.queryById(id));
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comBatteryUserAddress 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-29 13:18:20
+     */
+    @Override
+    public R queryByList(PageComBatteryUserAddressDto comBatteryUserAddress) {
+        return R.ok(this.baseMapper.queryAllByList(comBatteryUserAddress));
+    }
+
+    /**
+     * 查询用户默认收货地址
+     * @param userId    用户id
+     * @return  用户默认收货地址
+     */
+    @Override
+    public R getDefaultAddress(Long userId) {
+        ComBatteryUserAddressVo userAddressVo = new ComBatteryUserAddressVo();
+        //判断当前用户是否拥有默认地址
+        Integer count = this.baseMapper.selectCount(new QueryWrapper<ComBatteryUserAddress>().lambda()
+                .eq(ComBatteryUserAddress::getUserId,userId).eq(ComBatteryUserAddress::getIsDefault,ComBatteryUserAddress.IsDefault.yes));
+        if(count > 0){
+            ComBatteryUserAddress userAddress = this.baseMapper.selectList(new QueryWrapper<ComBatteryUserAddress>().lambda()
+                    .eq(ComBatteryUserAddress::getUserId,userId).eq(ComBatteryUserAddress::getIsDefault,ComBatteryUserAddress.IsDefault.yes)
+                    .orderByDesc(ComBatteryUserAddress::getCreateAt)).get(0);
+            BeanUtils.copyProperties(userAddress, userAddressVo);
+        }else{
+            List<ComBatteryUserAddress> userAddressList = this.baseMapper.selectList(new QueryWrapper<ComBatteryUserAddress>().lambda()
+                    .eq(ComBatteryUserAddress::getUserId,userId).orderByDesc(ComBatteryUserAddress::getCreateAt));
+            if(!userAddressList.isEmpty()){
+                ComBatteryUserAddress userAddress = userAddressList.get(0);
+                BeanUtils.copyProperties(userAddress, userAddressVo);
+            }
+        }
+        return R.ok(userAddressVo);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComChangeCarBrandServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComChangeCarBrandServiceImpl.java
new file mode 100644
index 0000000..1820f6f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComChangeCarBrandServiceImpl.java
@@ -0,0 +1,136 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.panzhihua.service_community.dao.ComChangeCarModelMapper;
+import com.panzhihua.service_community.entity.ComChangeCarBrand;
+import com.panzhihua.service_community.dao.ComChangeCarBrandMapper;
+import com.panzhihua.service_community.entity.ComChangeCarModel;
+import com.panzhihua.service_community.service.ComChangeCarBrandService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.BeanUtils;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import javax.annotation.Resource;
+
+/**
+ * title: 换新车-品牌表表服务实现类
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-品牌表表服务实现类
+ *
+ * @author lyq
+ * @date 2022-04-07 13:37:24
+ */
+@Service("comChangeCarBrandService")
+public class ComChangeCarBrandServiceImpl extends ServiceImpl<ComChangeCarBrandMapper, ComChangeCarBrand> implements ComChangeCarBrandService {
+
+    @Resource
+    private ComChangeCarModelMapper carModelMapper;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comChangeCarBrand 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-04-07 13:37:24
+     */
+    @Override
+    public R queryByPage(PageComChangeCarBrandDto comChangeCarBrand) {
+        return R.ok(this.baseMapper.queryAllByLimit(comChangeCarBrand, new Page(comChangeCarBrand.getPageNum(), comChangeCarBrand.getPageSize())));
+    }
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comChangeCarBrand 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-04-07 13:37:24
+     */
+    @Override
+    public R insert(AddComChangeCarBrandDto comChangeCarBrand) {
+        ComChangeCarBrand entity = new ComChangeCarBrand();
+        BeanUtils.copyProperties(comChangeCarBrand, entity);
+        if (this.baseMapper.insert(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    /**
+     * description  update  修改数据
+     *
+     * @param editDto 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-04-07 13:37:24
+     */
+    @Override
+    public R update(EditComChangeCarBrandDto editDto) {
+        ComChangeCarBrand entity = this.baseMapper.selectById(editDto.getId());
+        if (entity == null) {
+            return R.fail("未查询到该记录");
+        }
+        BeanUtils.copyProperties(editDto, entity);
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败");
+    }
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-04-07 13:37:24
+     */
+    @Override
+    public R deleteById(Long id) {
+        //判断是否有车型关联
+        Integer count = carModelMapper.selectCount(new QueryWrapper<ComChangeCarModel>().lambda().eq(ComChangeCarModel::getBrandId,id)
+                .eq(ComChangeCarModel::getIsDel,ComChangeCarModel.IsDel.NO));
+        if(count > 0){
+            return R.fail("该品牌已被引用,不可删除");
+        }
+        ComChangeCarBrand entity = new ComChangeCarBrand();
+        entity.setId(id);
+        entity.setIsDel(ComChangeCarBrand.IsDel.YES);
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-07 13:37:24
+     */
+    @Override
+    public R detailById(Long id) {
+        return R.ok(this.baseMapper.queryById(id));
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comChangeCarBrand 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-04-07 13:37:24
+     */
+    @Override
+    public R queryByList(PageComChangeCarBrandDto comChangeCarBrand) {
+        return R.ok(this.baseMapper.queryAllByList(comChangeCarBrand));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComChangeCarInquiryServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComChangeCarInquiryServiceImpl.java
new file mode 100644
index 0000000..dd6ca68
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComChangeCarInquiryServiceImpl.java
@@ -0,0 +1,122 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.panzhihua.service_community.entity.ComChangeCarInquiry;
+import com.panzhihua.service_community.dao.ComChangeCarInquiryMapper;
+import com.panzhihua.service_community.service.ComChangeCarInquiryService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.BeanUtils;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+/**
+ * title: 换新车-分期询价表表服务实现类
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-分期询价表表服务实现类
+ *
+ * @author lyq
+ * @date 2022-04-07 13:39:06
+ */
+@Service("comChangeCarInquiryService")
+public class ComChangeCarInquiryServiceImpl extends ServiceImpl<ComChangeCarInquiryMapper, ComChangeCarInquiry> implements ComChangeCarInquiryService {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comChangeCarInquiry 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-04-07 13:39:06
+     */
+    @Override
+    public R queryByPage(PageComChangeCarInquiryDto comChangeCarInquiry) {
+        return R.ok(this.baseMapper.queryAllByLimit(comChangeCarInquiry, new Page(comChangeCarInquiry.getPageNum(), comChangeCarInquiry.getPageSize())));
+    }
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comChangeCarInquiry 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-04-07 13:39:06
+     */
+    @Override
+    public R insert(AddComChangeCarInquiryDto comChangeCarInquiry) {
+        ComChangeCarInquiry entity = new ComChangeCarInquiry();
+        BeanUtils.copyProperties(comChangeCarInquiry, entity);
+        if (this.baseMapper.insert(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    /**
+     * description  update  修改数据
+     *
+     * @param editDto 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-04-07 13:39:06
+     */
+    @Override
+    public R update(EditComChangeCarInquiryDto editDto) {
+        ComChangeCarInquiry entity = this.baseMapper.selectById(editDto.getId());
+        if (entity == null) {
+            return R.fail("未查询到该记录");
+        }
+        BeanUtils.copyProperties(editDto, entity);
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败");
+    }
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-04-07 13:39:06
+     */
+    @Override
+    public R deleteById(Long id) {
+        ComChangeCarInquiry entity = new ComChangeCarInquiry();
+        entity.setId(id);
+        entity.setIsDel(ComChangeCarInquiry.IsDel.YES);
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-07 13:39:06
+     */
+    @Override
+    public R detailById(Long id) {
+        return R.ok(this.baseMapper.queryById(id));
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comChangeCarInquiry 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-04-07 13:39:06
+     */
+    @Override
+    public R queryByList(PageComChangeCarInquiryDto comChangeCarInquiry) {
+        return R.ok(this.baseMapper.queryAllByList(comChangeCarInquiry));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComChangeCarModelRelationServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComChangeCarModelRelationServiceImpl.java
new file mode 100644
index 0000000..e45ac7f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComChangeCarModelRelationServiceImpl.java
@@ -0,0 +1,158 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.model.vos.common.ComChangeCarModelRelationVo;
+import com.panzhihua.common.model.vos.common.ComChangeCarModelVo;
+import com.panzhihua.service_community.entity.ComChangeCarModelRelation;
+import com.panzhihua.service_community.dao.ComChangeCarModelRelationMapper;
+import com.panzhihua.service_community.service.ComChangeCarModelRelationService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.BeanUtils;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import java.util.List;
+
+/**
+ * title: 换新车-车型与规格关联表表服务实现类
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-车型与规格关联表表服务实现类
+ *
+ * @author lyq
+ * @date 2022-04-07 13:55:30
+ */
+@Service("comChangeCarModelRelationService")
+public class ComChangeCarModelRelationServiceImpl extends ServiceImpl<ComChangeCarModelRelationMapper, ComChangeCarModelRelation> implements ComChangeCarModelRelationService {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comChangeCarModelRelation 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-04-07 13:55:30
+     */
+    @Override
+    public R queryByPage(PageComChangeCarModelRelationDto comChangeCarModelRelation) {
+        return R.ok(this.baseMapper.queryAllByLimit(comChangeCarModelRelation, new Page(comChangeCarModelRelation.getPageNum(), comChangeCarModelRelation.getPageSize())));
+    }
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comChangeCarModelRelation 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-04-07 13:55:30
+     */
+    @Override
+    public R insert(AddComChangeCarModelRelationDto comChangeCarModelRelation) {
+        ComChangeCarModelRelation entity = this.baseMapper.selectOne(new QueryWrapper<ComChangeCarModelRelation>().lambda()
+                .eq(ComChangeCarModelRelation::getModelId,comChangeCarModelRelation.getModelId())
+                .eq(ComChangeCarModelRelation::getModelSpecsId,comChangeCarModelRelation.getModelSpecsId()));
+        if(entity == null){
+            entity = new ComChangeCarModelRelation();
+            BeanUtils.copyProperties(comChangeCarModelRelation, entity);
+            if (this.baseMapper.insert(entity) > 0) {
+                return R.ok();
+            }
+        }else{
+            if(entity.getModelSpecsChildrenId() == null){
+                BeanUtils.copyProperties(comChangeCarModelRelation, entity);
+                if (this.baseMapper.updateById(entity) > 0) {
+                    return R.ok();
+                }
+            }else{
+                return R.fail("已关联该规格,不可重复关联");
+            }
+        }
+        return R.fail("添加失败");
+    }
+
+    /**
+     * description  update  修改数据
+     *
+     * @param editDto 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-04-07 13:55:30
+     */
+    @Override
+    public R update(EditComChangeCarModelRelationDto editDto) {
+        ComChangeCarModelRelation entity = this.baseMapper.selectById(editDto.getId());
+        if (entity == null) {
+            return R.fail("未查询到该记录");
+        }
+        BeanUtils.copyProperties(editDto, entity);
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败");
+    }
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-04-07 13:55:30
+     */
+    @Override
+    public R deleteById(Long id) {
+        if (this.baseMapper.deleteById(id) > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-07 13:55:30
+     */
+    @Override
+    public R detailById(Long id) {
+        return R.ok(this.baseMapper.queryById(id));
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comChangeCarModelRelation 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-04-07 13:55:30
+     */
+    @Override
+    public R queryByList(PageComChangeCarModelRelationDto comChangeCarModelRelation) {
+        return R.ok(this.baseMapper.queryAllByList(comChangeCarModelRelation));
+    }
+
+    /**
+     * description  queryByPage  小程序分页查询
+     *
+     * @param comChangeCarModelRelation 请求参数
+     * @return 小程序分页查询返回参数
+     * @author lyq
+     * @date 2022-04-07 13:55:29
+     */
+    @Override
+    public R queryByAppletsPage(PageComChangeCarModelRelationDto comChangeCarModelRelation) {
+        IPage<ComChangeCarModelVo> carModelVoIPage = this.baseMapper.queryAllByAppletsLimit(comChangeCarModelRelation, new Page(comChangeCarModelRelation.getPageNum(), comChangeCarModelRelation.getPageSize()));
+        carModelVoIPage.getRecords().forEach(carModel -> {
+            //查询车型规格列表
+            List<ComChangeCarModelRelationVo> carModelRelationVoList = this.baseMapper.queryAllByModelId(carModel.getId());
+            carModel.setCarModelRelationList(carModelRelationVoList);
+        });
+        return R.ok(carModelVoIPage);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComChangeCarModelServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComChangeCarModelServiceImpl.java
new file mode 100644
index 0000000..50564af
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComChangeCarModelServiceImpl.java
@@ -0,0 +1,153 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.panzhihua.common.model.vos.common.ComChangeCarModelRelationVo;
+import com.panzhihua.common.model.vos.common.ComChangeCarModelVo;
+import com.panzhihua.service_community.dao.ComChangeCarModelRelationMapper;
+import com.panzhihua.service_community.entity.ComChangeCarModel;
+import com.panzhihua.service_community.dao.ComChangeCarModelMapper;
+import com.panzhihua.service_community.service.ComChangeCarModelService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.BeanUtils;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * title: 换新车-车型管理表表服务实现类
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-车型管理表表服务实现类
+ *
+ * @author lyq
+ * @date 2022-04-07 13:41:55
+ */
+@Service("comChangeCarModelService")
+public class ComChangeCarModelServiceImpl extends ServiceImpl<ComChangeCarModelMapper, ComChangeCarModel> implements ComChangeCarModelService {
+
+    @Resource
+    private ComChangeCarModelRelationMapper modelRelationMapper;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comChangeCarModel 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-04-07 13:41:55
+     */
+    @Override
+    public R queryByPage(PageComChangeCarModelDto comChangeCarModel) {
+        return R.ok(this.baseMapper.queryAllByLimit(comChangeCarModel, new Page(comChangeCarModel.getPageNum(), comChangeCarModel.getPageSize())));
+    }
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comChangeCarModel 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-04-07 13:41:55
+     */
+    @Override
+    public R insert(AddComChangeCarModelDto comChangeCarModel) {
+        ComChangeCarModel entity = new ComChangeCarModel();
+        BeanUtils.copyProperties(comChangeCarModel, entity);
+        if (this.baseMapper.insert(entity) > 0) {
+            return R.ok(entity.getId());
+        }
+        return R.fail("添加失败");
+    }
+
+    /**
+     * description  update  修改数据
+     *
+     * @param editDto 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-04-07 13:41:55
+     */
+    @Override
+    public R update(EditComChangeCarModelDto editDto) {
+        ComChangeCarModel entity = this.baseMapper.selectById(editDto.getId());
+        if (entity == null) {
+            return R.fail("未查询到该记录");
+        }
+        BeanUtils.copyProperties(editDto, entity);
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败");
+    }
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-04-07 13:41:55
+     */
+    @Override
+    public R deleteById(Long id) {
+        ComChangeCarModel entity = new ComChangeCarModel();
+        entity.setId(id);
+        entity.setIsDel(ComChangeCarModel.IsDel.YES);
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-07 13:41:55
+     */
+    @Override
+    public R detailById(Long id) {
+        ComChangeCarModelVo carModelVo = this.baseMapper.queryById(id);
+        if(carModelVo != null){
+            List<ComChangeCarModelRelationVo> modelRelationList = modelRelationMapper.queryAllByModelId(id);
+            carModelVo.setCarModelRelationList(modelRelationList);
+        }
+        return R.ok(carModelVo);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comChangeCarModel 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-04-07 13:41:55
+     */
+    @Override
+    public R queryByList(PageComChangeCarModelDto comChangeCarModel) {
+        return R.ok(this.baseMapper.queryAllByList(comChangeCarModel));
+    }
+
+    /**
+     * 修改车型状态
+     * @param id    车型id
+     * @param status    车型状态
+     * @return  修改结果
+     */
+    @Override
+    public R updateStatus(Long id, Integer status) {
+        ComChangeCarModel entity = new ComChangeCarModel();
+        entity.setId(id);
+        entity.setStatus(status);
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComChangeCarModelSpecsChildrenServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComChangeCarModelSpecsChildrenServiceImpl.java
new file mode 100644
index 0000000..9e2c1e7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComChangeCarModelSpecsChildrenServiceImpl.java
@@ -0,0 +1,136 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.panzhihua.service_community.dao.ComChangeCarModelRelationMapper;
+import com.panzhihua.service_community.entity.ComChangeCarModelRelation;
+import com.panzhihua.service_community.entity.ComChangeCarModelSpecsChildren;
+import com.panzhihua.service_community.dao.ComChangeCarModelSpecsChildrenMapper;
+import com.panzhihua.service_community.service.ComChangeCarModelSpecsChildrenService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.BeanUtils;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import javax.annotation.Resource;
+
+/**
+ * title: 换新车-车型子规格表表服务实现类
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-车型子规格表表服务实现类
+ *
+ * @author lyq
+ * @date 2022-04-07 13:55:34
+ */
+@Service("comChangeCarModelSpecsChildrenService")
+public class ComChangeCarModelSpecsChildrenServiceImpl extends ServiceImpl<ComChangeCarModelSpecsChildrenMapper, ComChangeCarModelSpecsChildren> implements ComChangeCarModelSpecsChildrenService {
+
+    @Resource
+    private ComChangeCarModelRelationMapper modelRelationMapper;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comChangeCarModelSpecsChildren 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-04-07 13:55:34
+     */
+    @Override
+    public R queryByPage(PageComChangeCarModelSpecsChildrenDto comChangeCarModelSpecsChildren) {
+        return R.ok(this.baseMapper.queryAllByLimit(comChangeCarModelSpecsChildren, new Page(comChangeCarModelSpecsChildren.getPageNum(), comChangeCarModelSpecsChildren.getPageSize())));
+    }
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comChangeCarModelSpecsChildren 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-04-07 13:55:34
+     */
+    @Override
+    public R insert(AddComChangeCarModelSpecsChildrenDto comChangeCarModelSpecsChildren) {
+        ComChangeCarModelSpecsChildren entity = new ComChangeCarModelSpecsChildren();
+        BeanUtils.copyProperties(comChangeCarModelSpecsChildren, entity);
+        if (this.baseMapper.insert(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    /**
+     * description  update  修改数据
+     *
+     * @param editDto 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-04-07 13:55:34
+     */
+    @Override
+    public R update(EditComChangeCarModelSpecsChildrenDto editDto) {
+        ComChangeCarModelSpecsChildren entity = this.baseMapper.selectById(editDto.getId());
+        if (entity == null) {
+            return R.fail("未查询到该记录");
+        }
+        BeanUtils.copyProperties(editDto, entity);
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败");
+    }
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-04-07 13:55:34
+     */
+    @Override
+    public R deleteById(Long id) {
+        //判断当前规格是否有被引用
+        Integer count = modelRelationMapper.selectCount(new QueryWrapper<ComChangeCarModelRelation>().lambda()
+                .eq(ComChangeCarModelRelation::getModelSpecsChildrenId,id));
+        if(count > 0){
+            return R.fail("该规格已被引用,不可删除");
+        }
+        ComChangeCarModelSpecsChildren entity = new ComChangeCarModelSpecsChildren();
+        entity.setId(id);
+        entity.setIsDel(ComChangeCarModelSpecsChildren.IsDel.YES);
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-07 13:55:34
+     */
+    @Override
+    public R detailById(Long id) {
+        return R.ok(this.baseMapper.queryById(id));
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comChangeCarModelSpecsChildren 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-04-07 13:55:34
+     */
+    @Override
+    public R queryByList(PageComChangeCarModelSpecsChildrenDto comChangeCarModelSpecsChildren) {
+        return R.ok(this.baseMapper.queryAllByList(comChangeCarModelSpecsChildren));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComChangeCarModelSpecsServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComChangeCarModelSpecsServiceImpl.java
new file mode 100644
index 0000000..d1be23c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComChangeCarModelSpecsServiceImpl.java
@@ -0,0 +1,158 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.model.vos.common.ComChangeCarModelSpecsChildrenVo;
+import com.panzhihua.common.model.vos.common.ComChangeCarModelSpecsVo;
+import com.panzhihua.service_community.dao.ComChangeCarModelRelationMapper;
+import com.panzhihua.service_community.dao.ComChangeCarModelSpecsChildrenMapper;
+import com.panzhihua.service_community.entity.ComChangeCarModelRelation;
+import com.panzhihua.service_community.entity.ComChangeCarModelSpecs;
+import com.panzhihua.service_community.dao.ComChangeCarModelSpecsMapper;
+import com.panzhihua.service_community.entity.ComChangeCarModelSpecsChildren;
+import com.panzhihua.service_community.service.ComChangeCarModelSpecsService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.BeanUtils;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * title: 换新车-车型规格表表服务实现类
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 换新车-车型规格表表服务实现类
+ *
+ * @author lyq
+ * @date 2022-04-07 13:55:32
+ */
+@Service("comChangeCarModelSpecsService")
+public class ComChangeCarModelSpecsServiceImpl extends ServiceImpl<ComChangeCarModelSpecsMapper, ComChangeCarModelSpecs> implements ComChangeCarModelSpecsService {
+
+    @Resource
+    private ComChangeCarModelSpecsChildrenMapper carModelSpecsChildrenMapper;
+    @Resource
+    private ComChangeCarModelRelationMapper modelRelationMapper;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comChangeCarModelSpecs 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-04-07 13:55:32
+     */
+    @Override
+    public R queryByPage(PageComChangeCarModelSpecsDto comChangeCarModelSpecs) {
+        IPage<ComChangeCarModelSpecsVo> carModelSpecsPage = this.baseMapper.queryAllByLimit(comChangeCarModelSpecs
+                , new Page(comChangeCarModelSpecs.getPageNum(), comChangeCarModelSpecs.getPageSize()));
+        carModelSpecsPage.getRecords().forEach(carModelSpecs -> {
+            //查询该规格下的子规格列表
+            List<ComChangeCarModelSpecsChildren> carModelSpecsChildrenList = carModelSpecsChildrenMapper.selectList(new QueryWrapper<ComChangeCarModelSpecsChildren>().lambda()
+                    .eq(ComChangeCarModelSpecsChildren::getSpecsId,carModelSpecs.getId()));
+            carModelSpecs.setSpecsString(carModelSpecsChildrenList.stream().map(ComChangeCarModelSpecsChildren::getName).collect(Collectors.joining(",")));
+        });
+        return R.ok(carModelSpecsPage);
+    }
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comChangeCarModelSpecs 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-04-07 13:55:32
+     */
+    @Override
+    public R insert(AddComChangeCarModelSpecsDto comChangeCarModelSpecs) {
+        ComChangeCarModelSpecs entity = new ComChangeCarModelSpecs();
+        BeanUtils.copyProperties(comChangeCarModelSpecs, entity);
+        if (this.baseMapper.insert(entity) > 0) {
+            return R.ok(entity.getId());
+        }
+        return R.fail("添加失败");
+    }
+
+    /**
+     * description  update  修改数据
+     *
+     * @param editDto 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-04-07 13:55:32
+     */
+    @Override
+    public R update(EditComChangeCarModelSpecsDto editDto) {
+        ComChangeCarModelSpecs entity = this.baseMapper.selectById(editDto.getId());
+        if (entity == null) {
+            return R.fail("未查询到该记录");
+        }
+        BeanUtils.copyProperties(editDto, entity);
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败");
+    }
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-04-07 13:55:32
+     */
+    @Override
+    public R deleteById(Long id) {
+        //判断当前规格是否有被引用
+        Integer count = modelRelationMapper.selectCount(new QueryWrapper<ComChangeCarModelRelation>().lambda()
+                .eq(ComChangeCarModelRelation::getModelSpecsId,id));
+        if(count > 0){
+            return R.fail("该规格已被引用,不可删除");
+        }
+        ComChangeCarModelSpecs entity = new ComChangeCarModelSpecs();
+        entity.setId(id);
+        entity.setIsDel(ComChangeCarModelSpecs.IsDel.YES);
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-04-07 13:55:32
+     */
+    @Override
+    public R detailById(Long id) {
+        return R.ok(this.baseMapper.queryById(id));
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comChangeCarModelSpecs 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-04-07 13:55:32
+     */
+    @Override
+    public R queryByList(PageComChangeCarModelSpecsDto comChangeCarModelSpecs) {
+        List<ComChangeCarModelSpecsVo> carModelSpecsList = this.baseMapper.queryAllByList(comChangeCarModelSpecs);
+        carModelSpecsList.forEach(carModelSpecs -> {
+            List<ComChangeCarModelSpecsChildrenVo> modelSpecsChildrenList = carModelSpecsChildrenMapper.queryAllBySpecsId(carModelSpecs.getId());
+            carModelSpecs.setModelSpecsChildrenList(modelSpecsChildrenList);
+        });
+        return R.ok(carModelSpecsList);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComClusterOrganizationMemberServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComClusterOrganizationMemberServiceImpl.java
new file mode 100644
index 0000000..c070136
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComClusterOrganizationMemberServiceImpl.java
@@ -0,0 +1,285 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.google.common.collect.Lists;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.model.dtos.community.cluster.PageClusterMemberDto;
+import com.panzhihua.common.model.dtos.community.cluster.admin.AddClusterMemberAdminDto;
+import com.panzhihua.common.model.dtos.community.cluster.admin.EditClusterMemberAdminDto;
+import com.panzhihua.common.model.dtos.community.cluster.admin.PageClusterMemberAdminDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.cluster.admin.ClusterMemberNationVo;
+import com.panzhihua.common.model.vos.community.cluster.admin.ComClusterMemberExcelErrorVO;
+import com.panzhihua.common.model.vos.community.cluster.admin.ComClusterMemberExcelVO;
+import com.panzhihua.common.model.vos.community.cluster.admin.PageClusterMemberAdminVo;
+import com.panzhihua.service_community.dao.ComClusterOrganizationMapper;
+import com.panzhihua.service_community.dao.ComClusterOrganizationMemberMapper;
+import com.panzhihua.service_community.model.dos.ComClusterOrganizationDO;
+import com.panzhihua.service_community.model.dos.ComClusterOrganizationMemberDO;
+import com.panzhihua.service_community.service.ComClusterOrganizationMemberService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * @author lyq
+ * @date  2021-09-23 16:44:00
+ * describe 群团组织成员表服务实现类
+ */
+@Slf4j
+@Service
+public class ComClusterOrganizationMemberServiceImpl extends ServiceImpl<ComClusterOrganizationMemberMapper, ComClusterOrganizationMemberDO> implements ComClusterOrganizationMemberService {
+
+    @Resource
+    private ComClusterOrganizationMapper comClusterOrganizationMapper;
+
+    /**
+     * 群团组织成员列表-小程序分页查询
+     * @param pageClusterMemberDto  请求参数
+     * @return  群团组织成员列表
+     */
+    @Override
+    public R pageClusterMemberApplets(PageClusterMemberDto pageClusterMemberDto){
+        return R.ok(this.baseMapper.pageClusterMemberApplets(new Page(pageClusterMemberDto.getPageNum(),pageClusterMemberDto.getPageSize()),pageClusterMemberDto));
+    }
+
+    /**
+     * 分页查询群团组织成员列表
+     * @param pageClusterMemberAdminDto 请求参数
+     * @return  群团组织成员列表
+     */
+    @Override
+    public R pageClusterMemberAdmin(PageClusterMemberAdminDto pageClusterMemberAdminDto){
+        return R.ok(this.baseMapper.pageClusterMemberAdmin(new Page(pageClusterMemberAdminDto.getPageNum(),pageClusterMemberAdminDto.getPageSize()),pageClusterMemberAdminDto));
+    }
+
+    /**
+     * 新增群团组织成员
+     * @param addClusterMemberAdminDto  请求参数
+     * @return  新增结果
+     */
+    @Override
+    public R addClusterMemberAdmin(AddClusterMemberAdminDto addClusterMemberAdminDto){
+
+        ComClusterOrganizationMemberDO organizationMemberDO = this.baseMapper.selectOne(new QueryWrapper<ComClusterOrganizationMemberDO>()
+                .lambda().eq(ComClusterOrganizationMemberDO::getIdCard,addClusterMemberAdminDto.getIdCard())
+                .eq(ComClusterOrganizationMemberDO::getIsDel,ComClusterOrganizationMemberDO.isOk.no)
+                .eq(ComClusterOrganizationMemberDO::getCommunityId,addClusterMemberAdminDto.getCommunityId()));
+        if(organizationMemberDO != null){
+            return R.fail("该身份证号已存在,不可重复添加");
+        }
+        organizationMemberDO = new ComClusterOrganizationMemberDO();
+        BeanUtils.copyProperties(addClusterMemberAdminDto,organizationMemberDO);
+        organizationMemberDO.setCreateAt(new Date());
+        if(this.baseMapper.insert(organizationMemberDO) > 0){
+            return R.ok("添加成功");
+        }
+        return R.fail("添加失败");
+    }
+
+    /**
+     * 编辑群团组织成员
+     * @param editClusterMemberAdminDto 请求参数
+     * @return  编辑结果
+     */
+    @Override
+    public R editClusterMemberAdmin(EditClusterMemberAdminDto editClusterMemberAdminDto){
+        ComClusterOrganizationMemberDO organizationMemberDO = this.baseMapper.selectById(editClusterMemberAdminDto.getId());
+        if(organizationMemberDO == null){
+            return R.fail("该组织成员不存在");
+        }
+
+        Integer count = this.baseMapper.selectCount(new QueryWrapper<ComClusterOrganizationMemberDO>().lambda()
+                .eq(ComClusterOrganizationMemberDO::getCommunityId,editClusterMemberAdminDto.getCommunityId())
+                .eq(ComClusterOrganizationMemberDO::getIdCard,editClusterMemberAdminDto.getIdCard())
+                .eq(ComClusterOrganizationMemberDO::getIsDel,ComClusterOrganizationMemberDO.isOk.no)
+                .ne(ComClusterOrganizationMemberDO::getId,editClusterMemberAdminDto.getId()));
+        if(count > 0){
+            return R.fail("该身份证号已存在,不可重复添加");
+        }
+        BeanUtils.copyProperties(editClusterMemberAdminDto,organizationMemberDO);
+        organizationMemberDO.setUpdateAt(new Date());
+        if(this.baseMapper.updateById(organizationMemberDO) > 0){
+            return R.ok("编辑成功");
+        }
+        return R.fail("编辑失败");
+    }
+
+    /**
+     * 删除群团组织成员
+     * @param id    组织成员id
+     * @return  删除结果
+     */
+    @Override
+    public R deleteClusterMemberAdmin(Long id){
+        ComClusterOrganizationMemberDO organizationMemberDO = new ComClusterOrganizationMemberDO();
+        organizationMemberDO.setId(id);
+        organizationMemberDO.setIsDel(ComClusterOrganizationMemberDO.isOk.yes);
+        organizationMemberDO.setUpdateAt(new Date());
+        if(this.baseMapper.updateById(organizationMemberDO) > 0){
+            return R.ok("删除成功");
+        }
+        return R.fail("删除失败");
+    }
+
+    /**
+     * 群团组织成员详情
+     * @param id    组织成员id
+     * @return  群团组织成员详情
+     */
+    @Override
+    public R detailClusterMemberAdmin(Long id){
+        ComClusterOrganizationMemberDO organizationMemberDO = this.baseMapper.selectById(id);
+        if(organizationMemberDO == null){
+            return R.fail("该组织成员不存在");
+        }
+        PageClusterMemberAdminVo memberAdminVo = new PageClusterMemberAdminVo();
+        BeanUtils.copyProperties(organizationMemberDO,memberAdminVo);
+        return R.ok(memberAdminVo);
+    }
+
+    /**
+     * 查询系统民族列表
+     * @return  民族列表
+     */
+    @Override
+    public R memberNationListAdmin(){
+        return R.ok(this.baseMapper.memberNationListAdmin(Constants.NATION_DICT_KEY));
+    }
+
+    /**
+     * 群团组织成员导入
+     * @param memberExcelList  导入数据
+     * @param communityId   社区id
+     * @param userId    操作用户id
+     * @return  导入结果
+     */
+    @Override
+    public R importClusterMember(List<ComClusterMemberExcelVO> memberExcelList, Long communityId, Long userId){
+
+        //需要新增的数据
+        List<ComClusterOrganizationMemberDO> saveList = Lists.newArrayList();
+        //错误数据
+        ArrayList<ComClusterMemberExcelErrorVO> mistakes = Lists.newArrayList();
+        //查询当前社区现有的所有群团组织成员列表
+        List<ComClusterOrganizationMemberDO> memberList = this.baseMapper.selectList(new QueryWrapper<ComClusterOrganizationMemberDO>().lambda()
+                .eq(ComClusterOrganizationMemberDO::getCommunityId,communityId)
+                .eq(ComClusterOrganizationMemberDO::getIsDel,ComClusterOrganizationMemberDO.isOk.no));
+        HashMap<String, Object> memberMap = new HashMap<>();
+        memberList.forEach(member -> {
+            String key = member.getIdCard();
+            memberMap.put(key, member);
+        });
+
+        //查询该社区现有的所有群团组织
+        List<ComClusterOrganizationDO> clusterList = comClusterOrganizationMapper.selectList(new QueryWrapper<ComClusterOrganizationDO>().lambda()
+                .eq(ComClusterOrganizationDO::getCommunityId,communityId).eq(ComClusterOrganizationDO::getIsDel,ComClusterOrganizationDO.isOk.no));
+        HashMap<String, Object> clusterMap = new HashMap<>();
+        clusterList.forEach(cluster -> {
+            String key = cluster.getName();
+            clusterMap.put(key, cluster);
+        });
+
+        List<ClusterMemberNationVo> nationList = this.baseMapper.memberNationListAdmin(Constants.NATION_DICT_KEY);
+        HashMap<String, Object> nationMap = new HashMap<>();
+        nationList.forEach(nation -> {
+            String key = nation.getNationName();
+            nationMap.put(key, nation.getNationCode());
+        });
+        Date nowDate = new Date();
+        for (ComClusterMemberExcelVO memberExcel : memberExcelList) {
+            Long clusterId = 0L;
+
+            String nationCode = "";
+
+            //判断成员是否已存在
+            if(!isOnly(memberExcel.getIdCard(),memberMap)){
+                ComClusterMemberExcelErrorVO memberExcelErrorVO = new ComClusterMemberExcelErrorVO();
+                BeanUtils.copyProperties(memberExcel,memberExcelErrorVO);
+                //判断该成员是否是已存在还是身份证号码重复
+                ComClusterOrganizationMemberDO memberDO = (ComClusterOrganizationMemberDO)memberMap.get(memberExcel.getIdCard());
+                if(memberDO.getName().equals(memberExcel.getName())){
+                    memberExcelErrorVO.setError("该成员已存在");
+                }else{
+                    memberExcelErrorVO.setError("身份证号重复");
+                }
+                mistakes.add(memberExcelErrorVO);
+                continue;
+            }
+
+            //判断组织是否存在
+            if(isOnly(memberExcel.getClusterName(),clusterMap)){
+                ComClusterMemberExcelErrorVO memberExcelErrorVO = new ComClusterMemberExcelErrorVO();
+                BeanUtils.copyProperties(memberExcel,memberExcelErrorVO);
+                memberExcelErrorVO.setError("该组织在本社区不存在");
+                mistakes.add(memberExcelErrorVO);
+                continue;
+            }else{
+                ComClusterOrganizationDO clusterDO = (ComClusterOrganizationDO)clusterMap.get(memberExcel.getClusterName());
+                clusterId = clusterDO.getId();
+            }
+
+            //判断民族是否存在
+            if(isOnly(memberExcel.getNation(),nationMap)){
+                ComClusterMemberExcelErrorVO memberExcelErrorVO = new ComClusterMemberExcelErrorVO();
+                BeanUtils.copyProperties(memberExcel,memberExcelErrorVO);
+                memberExcelErrorVO.setError("您填写的民族不存在");
+                mistakes.add(memberExcelErrorVO);
+                continue;
+            }else{
+                nationCode = nationMap.get(memberExcel.getNation()).toString();
+            }
+
+            ComClusterOrganizationMemberDO clusterMember = new ComClusterOrganizationMemberDO();
+            BeanUtils.copyProperties(memberExcel,clusterMember);
+            clusterMember.setClusterId(clusterId);
+            clusterMember.setNationCode(nationCode);
+            clusterMember.setImageUrl(Constants.CLUSTER_MEMBER_DEFAULT_IMAGE_URL);
+            clusterMember.setCreateAt(nowDate);
+            clusterMember.setCommunityId(communityId);
+            saveList.add(clusterMember);
+            memberMap.put(clusterMember.getIdCard(),clusterMember);
+        }
+        //执行导入
+        if(saveList.size() > 0){
+           this.saveBatch(saveList);
+        }
+        //有错误,返回错误数据
+        if(mistakes.size() > 0){
+            return R.fail(mistakes);
+        }
+        return R.ok();
+    }
+
+    /**
+     * 判重方法
+     *
+     * @param key
+     *            主键
+     * @param hashMap
+     *            数据集
+     * @return 存在即为false 不存在则为true
+     */
+    private boolean isOnly(String key, HashMap<String, Object> hashMap) {
+        return ObjectUtils.isEmpty(hashMap.get(key));
+    }
+
+    /**
+     * 群团组织导出数据查询
+     * @param pageClusterMemberAdminDto 请求参数
+     * @return  导出数据结果集
+     */
+    @Override
+    public R exportClusterMember(PageClusterMemberAdminDto pageClusterMemberAdminDto){
+        return R.ok(this.baseMapper.exportClusterMember(pageClusterMemberAdminDto));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComClusterOrganizationServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComClusterOrganizationServiceImpl.java
new file mode 100644
index 0000000..f71c41a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComClusterOrganizationServiceImpl.java
@@ -0,0 +1,145 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.community.cluster.admin.AddClusterAdminDto;
+import com.panzhihua.common.model.dtos.community.cluster.admin.EditClusterAdminDto;
+import com.panzhihua.common.model.dtos.community.cluster.admin.PageClusterAdminDto;
+import com.panzhihua.common.model.vos.community.cluster.admin.ClusterDetailAdminVo;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.dao.ComClusterOrganizationMapper;
+import com.panzhihua.service_community.dao.ComClusterOrganizationMemberMapper;
+import com.panzhihua.service_community.model.dos.ComClusterOrganizationDO;
+import com.panzhihua.service_community.model.dos.ComClusterOrganizationMemberDO;
+import com.panzhihua.service_community.service.ComClusterOrganizationService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * @author lyq
+ * @date  2021-09-23 16:44:06
+ * describe 群团组织表服务实现类
+ */
+@Slf4j
+@Service
+public class ComClusterOrganizationServiceImpl extends ServiceImpl<ComClusterOrganizationMapper, ComClusterOrganizationDO> implements ComClusterOrganizationService {
+
+    @Resource
+    private ComClusterOrganizationMemberMapper comClusterOrganizationMemberMapper;
+
+    /**
+     * 群团组织列表-小程序查询社区群团组织列表
+     * @param communityId   社区id
+     * @return  社区群团组织列表
+     */
+    @Override
+    public R listClusterApplets(Long communityId){
+        return R.ok(this.baseMapper.listClusterApplets(communityId));
+    }
+
+    /**
+     * 分页查询群团组织列表
+     * @param pageClusterAdminDto  请求参数
+     * @return  群团组织列表
+     */
+    @Override
+    public R pageClusterAdmin(PageClusterAdminDto pageClusterAdminDto){
+        return R.ok(this.baseMapper.pageClusterAdmin(new Page(pageClusterAdminDto.getPageNum(),pageClusterAdminDto.getPageSize()),pageClusterAdminDto));
+    }
+
+    /**
+     * 新增群团组织
+     * @param addClusterAdminDto    请求参数
+     * @return  新增结果
+     */
+    @Override
+    public R addClusterAdmin(AddClusterAdminDto addClusterAdminDto){
+
+        ComClusterOrganizationDO organizationDO = this.baseMapper.selectOne(new QueryWrapper<ComClusterOrganizationDO>().lambda()
+                .eq(ComClusterOrganizationDO::getCommunityId,addClusterAdminDto.getCommunityId())
+                .eq(ComClusterOrganizationDO::getName,addClusterAdminDto.getName())
+                .eq(ComClusterOrganizationDO::getIsDel,ComClusterOrganizationDO.isOk.no));
+        if(organizationDO != null){
+            return R.fail("该组织已存在,不可重复添加");
+        }
+        organizationDO = new ComClusterOrganizationDO();
+        BeanUtils.copyProperties(addClusterAdminDto,organizationDO);
+        organizationDO.setCreateAt(new Date());
+        if(this.baseMapper.insert(organizationDO) > 0){
+            return R.ok("新增成功");
+        }
+        return R.fail("新增失败");
+    }
+
+    /**
+     * 修改群团组织
+     * @param editClusterAdminDto   请求参数
+     * @return  修改结果
+     */
+    @Override
+    public R editClusterAdmin(EditClusterAdminDto editClusterAdminDto){
+        ComClusterOrganizationDO organizationDO = this.baseMapper.selectById(editClusterAdminDto.getId());
+        if(organizationDO == null){
+            return R.fail("该组织不存在");
+        }
+        Integer count = this.baseMapper.selectCount(new QueryWrapper<ComClusterOrganizationDO>().lambda()
+                .eq(ComClusterOrganizationDO::getCommunityId,editClusterAdminDto.getCommunityId())
+                .eq(ComClusterOrganizationDO::getName,editClusterAdminDto.getName())
+                .eq(ComClusterOrganizationDO::getIsDel,ComClusterOrganizationDO.isOk.no)
+                .ne(ComClusterOrganizationDO::getId,editClusterAdminDto.getId()));
+        if(count > 0){
+            return R.fail("该组织已存在");
+        }
+        BeanUtils.copyProperties(editClusterAdminDto,organizationDO);
+        organizationDO.setUpdateAt(new Date());
+        if(this.baseMapper.updateById(organizationDO) > 0){
+            return R.ok("编辑成功");
+        }
+        return R.fail("编辑失败");
+    }
+
+    /**
+     * 删除群团组织
+     * @param id    组织id
+     * @return  删除结果
+     */
+    @Override
+    public R deleteClusterAdmin(Long id){
+        Integer count = comClusterOrganizationMemberMapper.selectCount(new QueryWrapper<ComClusterOrganizationMemberDO>().lambda()
+                .eq(ComClusterOrganizationMemberDO::getClusterId,id)
+                .eq(ComClusterOrganizationMemberDO::getIsDel,ComClusterOrganizationMemberDO.isOk.no));
+        if(count > 0){
+            return R.fail("该组织下存在成员,不可删除");
+        }
+        ComClusterOrganizationDO organizationDO = new ComClusterOrganizationDO();
+        organizationDO.setId(id);
+        organizationDO.setIsDel(ComClusterOrganizationDO.isOk.yes);
+        organizationDO.setUpdateAt(new Date());
+        if(this.baseMapper.updateById(organizationDO) > 0){
+            return R.ok("删除成功");
+        }
+        return R.fail("删除失败");
+    }
+
+    /**
+     * 群团组织详情
+     * @param id    组织id
+     * @return  群团组织详情
+     */
+    @Override
+    public R detailClusterAdmin(Long id){
+        ComClusterOrganizationDO organizationDO = this.baseMapper.selectById(id);
+        if(organizationDO == null){
+            return R.fail("该组织不存在");
+        }
+        ClusterDetailAdminVo detailAdminVo = new ClusterDetailAdminVo();
+        BeanUtils.copyProperties(organizationDO,detailAdminVo);
+        return R.ok(detailAdminVo);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComCorrectPopulationServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComCorrectPopulationServiceImpl.java
new file mode 100644
index 0000000..1dbe2cb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComCorrectPopulationServiceImpl.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.ComCorrectPopulationDAO;
+import com.panzhihua.service_community.model.dos.ComCorrectPopulationDO;
+import com.panzhihua.service_community.service.ComCorrectPopulationService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 16:45:25
+ * @describe 社区矫正人员表服务实现类
+ */
+@Slf4j
+@Service
+public class ComCorrectPopulationServiceImpl extends ServiceImpl<ComCorrectPopulationDAO, ComCorrectPopulationDO>
+    implements ComCorrectPopulationService {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComCultPopulationServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComCultPopulationServiceImpl.java
new file mode 100644
index 0000000..29b282b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComCultPopulationServiceImpl.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.ComCultPopulationDAO;
+import com.panzhihua.service_community.model.dos.ComCultPopulationDO;
+import com.panzhihua.service_community.service.ComCultPopulationService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 17:40:24
+ * @describe 邪教人员表服务实现类
+ */
+@Slf4j
+@Service
+public class ComCultPopulationServiceImpl extends ServiceImpl<ComCultPopulationDAO, ComCultPopulationDO>
+    implements ComCultPopulationService {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComCvtBusinessAreaServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComCvtBusinessAreaServiceImpl.java
new file mode 100644
index 0000000..76955fa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComCvtBusinessAreaServiceImpl.java
@@ -0,0 +1,47 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.dao.ComCvtBusinessAreaDAO;
+import com.panzhihua.service_community.model.dos.ComCvtBusinessAreaDO;
+import com.panzhihua.service_community.service.ComCvtBusinessAreaService;
+
+/**
+ * @description: 便民服务商家服务范围接口
+ * @author: Null
+ * @date: 2021/3/11 11:11
+ */
+@Service
+public class ComCvtBusinessAreaServiceImpl extends ServiceImpl<ComCvtBusinessAreaDAO, ComCvtBusinessAreaDO>
+    implements ComCvtBusinessAreaService {
+
+    @Resource
+    private ComCvtBusinessAreaDAO comCvtBusinessAreaDAO;
+
+    @Override
+    public R batchSave(List<ComCvtBusinessAreaDO> comCvtBusinessAreaDOs) {
+        boolean result = this.saveBatch(comCvtBusinessAreaDOs);
+        if (result) {
+            R.ok();
+        }
+        return R.fail();
+    }
+
+    @Override
+    public List<Long> getBusinessServiceAreaIds(Long businessId) {
+        List<ComCvtBusinessAreaDO> comCvtBusinessAreaDOS = comCvtBusinessAreaDAO.selectList(
+            new QueryWrapper<ComCvtBusinessAreaDO>().lambda().eq(ComCvtBusinessAreaDO::getBusinessId, businessId));
+        List<Long> ids = comCvtBusinessAreaDOS.stream()
+            .map(comCvtBusinessAreaDO -> comCvtBusinessAreaDO.getCommunityId()).collect(Collectors.toList());
+        return ids;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComCvtBusinessIntroduceServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComCvtBusinessIntroduceServiceImpl.java
new file mode 100644
index 0000000..5beb702
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComCvtBusinessIntroduceServiceImpl.java
@@ -0,0 +1,53 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.dao.ComCvtBusinessIntroduceDAO;
+import com.panzhihua.service_community.model.dos.ComCvtBusinessIntroduceDO;
+import com.panzhihua.service_community.service.ComCvtBusinessIntroduceService;
+
+/**
+ * @description: 便民服务商家介绍媒体文件路径
+ * @author: Null
+ * @date: 2021/3/11 15:46
+ */
+@Service
+public class ComCvtBusinessIntroduceServiceImpl extends
+    ServiceImpl<ComCvtBusinessIntroduceDAO, ComCvtBusinessIntroduceDO> implements ComCvtBusinessIntroduceService {
+
+    @Resource
+    private ComCvtBusinessIntroduceDAO comCvtBusinessIntroduceDAO;
+
+    @Override
+    public R batchSave(List<ComCvtBusinessIntroduceDO> comCvtBusinessIntroduceDOS) {
+        boolean result = this.saveBatch(comCvtBusinessIntroduceDOS);
+        if (result) {
+            R.ok();
+        }
+        return R.fail();
+    }
+
+    @Override
+    public List<String> getBusinessMediaPaths(Long businessId) {
+        List<String> mediaPaths = new ArrayList<>();
+        List<ComCvtBusinessIntroduceDO> comCvtBusinessIntroduceDOS =
+            comCvtBusinessIntroduceDAO.selectList(new QueryWrapper<ComCvtBusinessIntroduceDO>().lambda()
+                .eq(ComCvtBusinessIntroduceDO::getBusinessId, businessId));
+        if (!ObjectUtils.isEmpty(comCvtBusinessIntroduceDOS)) {
+
+            comCvtBusinessIntroduceDOS.forEach(media -> {
+                mediaPaths.add(media.getMediaPath());
+            });
+        }
+        return mediaPaths;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComCvtBusinessServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComCvtBusinessServiceImpl.java
new file mode 100644
index 0000000..6a7aa51
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComCvtBusinessServiceImpl.java
@@ -0,0 +1,243 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+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.model.dtos.community.ComCvtBusinessDTO;
+import com.panzhihua.common.model.dtos.community.PageComCvtBusinessAppletsDTO;
+import com.panzhihua.common.model.dtos.community.PageComCvtBusinessDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActVO;
+import com.panzhihua.common.model.vos.community.ComCvtBusinessDetailVO;
+import com.panzhihua.common.model.vos.community.ComCvtBusinessVO;
+import com.panzhihua.service_community.dao.ComActDAO;
+import com.panzhihua.service_community.dao.ComCvtBusinessAreaDAO;
+import com.panzhihua.service_community.dao.ComCvtBusinessDAO;
+import com.panzhihua.service_community.dao.ComCvtBusinessIntroduceDAO;
+import com.panzhihua.service_community.model.dos.ComActDO;
+import com.panzhihua.service_community.model.dos.ComCvtBusinessAreaDO;
+import com.panzhihua.service_community.model.dos.ComCvtBusinessDO;
+import com.panzhihua.service_community.model.dos.ComCvtBusinessIntroduceDO;
+import com.panzhihua.service_community.service.ComCvtBusinessAreaService;
+import com.panzhihua.service_community.service.ComCvtBusinessIntroduceService;
+import com.panzhihua.service_community.service.ComCvtBusinessService;
+import com.panzhihua.service_community.service.ComCvtServeService;
+
+/**
+ * @description: 便民服务商家接口
+ * @author: Null
+ * @date: 2021/3/11 11:11
+ */
+@Service
+public class ComCvtBusinessServiceImpl extends ServiceImpl<ComCvtBusinessDAO, ComCvtBusinessDO>
+    implements ComCvtBusinessService {
+
+    @Resource
+    private ComCvtBusinessDAO comCvtBusinessDAO;
+    @Resource
+    private ComCvtBusinessAreaDAO comCvtBusinessAreaDAO;
+    @Resource
+    private ComCvtBusinessIntroduceDAO comCvtBusinessIntroduceDAO;
+    @Resource
+    private ComCvtBusinessAreaService comCvtBusinessAreaService;
+    @Resource
+    private ComCvtBusinessIntroduceService comCvtBusinessIntroduceService;
+    @Resource
+    private ComCvtServeService comCvtServeService;
+    @Resource
+    private ComActDAO comActDAO;
+
+    @Override
+    public R pageComCvtBusiness(PageComCvtBusinessDTO pageComCvtBusinessDTO) {
+        Page page = new Page<>();
+        Long pageNum = pageComCvtBusinessDTO.getPageNum();
+        Long pageSize = pageComCvtBusinessDTO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<ComCvtBusinessVO> iPage = comCvtBusinessDAO.pageComCvtBusiness(page, pageComCvtBusinessDTO);
+        return R.ok(iPage);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R addComCvtBusiness(ComCvtBusinessDTO comCvtBusinessDTO) {
+        ComCvtBusinessDO comCvtBusinessDO = new ComCvtBusinessDO();
+        BeanUtils.copyProperties(comCvtBusinessDTO, comCvtBusinessDO);
+        comCvtBusinessDO.setCreateAt(new Date());
+        int count = comCvtBusinessDAO.insert(comCvtBusinessDO);
+        if (count < 1) {
+            return R.fail();
+        }
+        if (comCvtBusinessDTO.getAreaFlag() == 2 && !ObjectUtils.isEmpty(comCvtBusinessDTO.getCommunityIds())) {
+            List<ComCvtBusinessAreaDO> comCvtBusinessAreaDOS = new ArrayList<>();
+            comCvtBusinessDTO.getCommunityIds().stream().forEach(areaId -> {
+                ComCvtBusinessAreaDO comCvtBusinessAreaDO = new ComCvtBusinessAreaDO();
+                comCvtBusinessAreaDO.setBusinessId(comCvtBusinessDO.getId());
+                comCvtBusinessAreaDO.setCommunityId(areaId);
+                comCvtBusinessAreaDOS.add(comCvtBusinessAreaDO);
+            });
+            comCvtBusinessAreaService.batchSave(comCvtBusinessAreaDOS);
+        }
+        if (!ObjectUtils.isEmpty(comCvtBusinessDTO.getMediaPaths())) {
+            List<ComCvtBusinessIntroduceDO> comCvtBusinessIntroduceDOS = new ArrayList<>();
+            comCvtBusinessDTO.getMediaPaths().stream().forEach(mediaPath -> {
+                ComCvtBusinessIntroduceDO comCvtBusinessIntroduceDO = new ComCvtBusinessIntroduceDO();
+                comCvtBusinessIntroduceDO.setBusinessId(comCvtBusinessDO.getId());
+                comCvtBusinessIntroduceDO.setMediaPath(mediaPath);
+                comCvtBusinessIntroduceDOS.add(comCvtBusinessIntroduceDO);
+            });
+            comCvtBusinessIntroduceService.batchSave(comCvtBusinessIntroduceDOS);
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R putComCvtBusiness(ComCvtBusinessDTO comCvtBusinessDTO) {
+        ComCvtBusinessDO comCvtBusinessDO = comCvtBusinessDAO.selectById(comCvtBusinessDTO.getId());
+        if (null == comCvtBusinessDO) {
+            return R.fail("商家不存在");
+        }
+        BeanUtils.copyProperties(comCvtBusinessDTO, comCvtBusinessDO);
+        comCvtBusinessDAO.updateById(comCvtBusinessDO);
+        // 删除服务范围
+        comCvtBusinessAreaDAO.delete(new QueryWrapper<ComCvtBusinessAreaDO>().lambda()
+            .eq(ComCvtBusinessAreaDO::getBusinessId, comCvtBusinessDO.getId()));
+        // 删除商家介绍媒体文件
+        comCvtBusinessIntroduceDAO.delete(new QueryWrapper<ComCvtBusinessIntroduceDO>().lambda()
+            .eq(ComCvtBusinessIntroduceDO::getBusinessId, comCvtBusinessDO.getId()));
+        if (comCvtBusinessDTO.getAreaFlag() == 2 && !ObjectUtils.isEmpty(comCvtBusinessDTO.getCommunityIds())) {
+            List<ComCvtBusinessAreaDO> comCvtBusinessAreaDOS = new ArrayList<>();
+            comCvtBusinessDTO.getCommunityIds().stream().forEach(areaId -> {
+                ComCvtBusinessAreaDO comCvtBusinessAreaDO = new ComCvtBusinessAreaDO();
+                comCvtBusinessAreaDO.setBusinessId(comCvtBusinessDO.getId());
+                comCvtBusinessAreaDO.setCommunityId(areaId);
+                comCvtBusinessAreaDOS.add(comCvtBusinessAreaDO);
+            });
+            comCvtBusinessAreaService.batchSave(comCvtBusinessAreaDOS);
+        }
+        if (!ObjectUtils.isEmpty(comCvtBusinessDTO.getMediaPaths())) {
+            List<ComCvtBusinessIntroduceDO> comCvtBusinessIntroduceDOS = new ArrayList<>();
+            comCvtBusinessDTO.getMediaPaths().stream().forEach(mediaPath -> {
+                ComCvtBusinessIntroduceDO comCvtBusinessIntroduceDO = new ComCvtBusinessIntroduceDO();
+                comCvtBusinessIntroduceDO.setBusinessId(comCvtBusinessDO.getId());
+                comCvtBusinessIntroduceDO.setMediaPath(mediaPath);
+                comCvtBusinessIntroduceDOS.add(comCvtBusinessIntroduceDO);
+            });
+            comCvtBusinessIntroduceService.batchSave(comCvtBusinessIntroduceDOS);
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R getComCvtBusiness(Long id) {
+        ComCvtBusinessDO comCvtBusinessDO = comCvtBusinessDAO.selectById(id);
+        if (null == comCvtBusinessDO) {
+            return R.fail("商家不存在");
+        }
+        ComCvtBusinessVO comCvtBusinessVO = new ComCvtBusinessVO();
+        BeanUtils.copyProperties(comCvtBusinessDO, comCvtBusinessVO);
+        List<ComActDO> comActDOS = new ArrayList<>();
+
+        if (comCvtBusinessDO.getAreaFlag() == 1) {
+            LambdaQueryWrapper<ComActDO> lambdaQueryWrapper =
+                new LambdaQueryWrapper<ComActDO>().eq(ComActDO::getState, 0);
+            comActDOS = comActDAO.selectList(lambdaQueryWrapper);
+        } else {
+            List<Long> areaIds = comCvtBusinessAreaService.getBusinessServiceAreaIds(comCvtBusinessDO.getId());
+            if (!ObjectUtils.isEmpty(areaIds)) {
+                comActDOS = comActDAO.selectBatchIds(areaIds);
+            }
+        }
+
+        if (!ObjectUtils.isEmpty(comActDOS)) {
+            List<ComActVO> comActVOS = new ArrayList<>();
+            comActDOS.forEach(comActDO -> {
+                ComActVO comActVO = new ComActVO();
+                BeanUtils.copyProperties(comActDO, comActVO);
+                comActVOS.add(comActVO);
+            });
+            comCvtBusinessVO.setComActVOS(comActVOS);
+        }
+        List<String> mediaPaths = comCvtBusinessIntroduceService.getBusinessMediaPaths(id);
+        comCvtBusinessVO.setMediaPaths(mediaPaths);
+        return R.ok(comCvtBusinessVO);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R deleteComCvtBusiness(Long id) {
+        int delete = comCvtBusinessDAO.deleteById(id);
+        if (delete == 0) {
+            return R.fail();
+        }
+        // 删除服务范围
+        comCvtBusinessAreaDAO
+            .delete(new QueryWrapper<ComCvtBusinessAreaDO>().lambda().eq(ComCvtBusinessAreaDO::getBusinessId, id));
+        // 删除商家介绍媒体文件
+        comCvtBusinessIntroduceDAO.delete(
+            new QueryWrapper<ComCvtBusinessIntroduceDO>().lambda().eq(ComCvtBusinessIntroduceDO::getBusinessId, id));
+        return R.ok();
+    }
+
+    @Override
+    public R pageComCvtBusinessByServiceArea(PageComCvtBusinessAppletsDTO comCvtBusinessAppletsDTO) {
+        Page page = new Page<>();
+        Long pageNum = comCvtBusinessAppletsDTO.getPageNum();
+        Long pageSize = comCvtBusinessAppletsDTO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<ComCvtBusinessVO> iPage =
+            comCvtBusinessDAO.pageComCvtBusinessByServiceArea(page, comCvtBusinessAppletsDTO);
+        return R.ok(iPage);
+    }
+
+    @Override
+    public R getComCvtBusinessServeDetail(Long id) {
+        ComCvtBusinessDO comCvtBusinessDO = comCvtBusinessDAO.selectById(id);
+        if (null == comCvtBusinessDO) {
+            return R.fail("商家不存在");
+        }
+        ComCvtBusinessDetailVO comCvtBusinessDetailVO = new ComCvtBusinessDetailVO();
+        BeanUtils.copyProperties(comCvtBusinessDO, comCvtBusinessDetailVO);
+        if (comCvtBusinessDO.getAreaFlag() != 1) {
+            List<Long> areaIds = comCvtBusinessAreaService.getBusinessServiceAreaIds(comCvtBusinessDO.getId());
+            List<ComActDO> comActDOS = comActDAO.selectBatchIds(areaIds);
+            if (!ObjectUtils.isEmpty(comActDOS)) {
+                List<String> comActVOS = new ArrayList<>();
+                comActDOS.forEach(comActDO -> {
+                    comActVOS.add(comActDO.getName());
+                });
+                comCvtBusinessDetailVO.setComActVOS(comActVOS);
+            }
+        }
+        List<String> mediaPaths = comCvtBusinessIntroduceService.getBusinessMediaPaths(id);
+        comCvtBusinessDetailVO.setMediaPaths(mediaPaths);
+        comCvtBusinessDetailVO.setCategoryServeVOS(comCvtServeService.getBusinessCategoryServeVOS(id));
+        return R.ok(comCvtBusinessDetailVO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComCvtCategoryServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComCvtCategoryServiceImpl.java
new file mode 100644
index 0000000..98df337
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComCvtCategoryServiceImpl.java
@@ -0,0 +1,124 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+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.panzhihua.common.model.dtos.community.ComCvtCategoryDTO;
+import com.panzhihua.common.model.dtos.community.PageComCvtCategoryDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComCvtCategoryVO;
+import com.panzhihua.service_community.dao.ComCvtCategoryDAO;
+import com.panzhihua.service_community.model.dos.ComCvtCategoryDO;
+import com.panzhihua.service_community.service.ComCvtCategoryService;
+
+/**
+ * @description:
+ * @author: Null
+ * @date: 2021/3/11 16:56
+ */
+@Service
+public class ComCvtCategoryServiceImpl implements ComCvtCategoryService {
+
+    @Resource
+    private ComCvtCategoryDAO comCvtCategoryDAO;
+
+    @Override
+    public R pageComCvtCategory(PageComCvtCategoryDTO pageComCvtCategoryDTO) {
+        Page page = new Page<>();
+        Long pageNum = pageComCvtCategoryDTO.getPageNum();
+        Long pageSize = pageComCvtCategoryDTO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<ComCvtCategoryVO> iPage = comCvtCategoryDAO.pageComCvtCategory(page, pageComCvtCategoryDTO);
+        return R.ok(iPage);
+    }
+
+    @Override
+    public R addComCvtCategory(ComCvtCategoryDTO comCvtCategoryDTO) {
+        ComCvtCategoryDO comCvtCategoryDO = comCvtCategoryDAO.selectOne(
+            new QueryWrapper<ComCvtCategoryDO>().lambda().eq(ComCvtCategoryDO::getName, comCvtCategoryDTO.getName()));
+        if (null != comCvtCategoryDO) {
+            return R.fail("分类名称重复");
+        }
+        comCvtCategoryDO = new ComCvtCategoryDO();
+        BeanUtils.copyProperties(comCvtCategoryDTO, comCvtCategoryDO);
+        int count = comCvtCategoryDAO.insert(comCvtCategoryDO);
+        if (count < 1) {
+            return R.fail();
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R putComCvtCategory(ComCvtCategoryDTO comCvtCategoryDTO) {
+        ComCvtCategoryDO old = comCvtCategoryDAO.selectById(comCvtCategoryDTO.getId());
+        if (null == old) {
+            return R.fail("分类不存在");
+        }
+        ComCvtCategoryDO comCvtCategoryDO = comCvtCategoryDAO.selectOne(
+            new QueryWrapper<ComCvtCategoryDO>().lambda().eq(ComCvtCategoryDO::getName, comCvtCategoryDTO.getName()));
+        if (null != comCvtCategoryDO && !old.getName().equals(comCvtCategoryDO.getName())) {
+            return R.fail("分类名称重复");
+        }
+        BeanUtils.copyProperties(comCvtCategoryDTO, old);
+        int count = comCvtCategoryDAO.updateById(old);
+        if (count < 1) {
+            return R.fail();
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R getComCvtCategory(Long id) {
+        ComCvtCategoryDO comCvtCategoryDO = comCvtCategoryDAO.selectById(id);
+        if (null == comCvtCategoryDO) {
+            return R.fail("分类不存在");
+        }
+        ComCvtCategoryVO comCvtCategoryVO = new ComCvtCategoryVO();
+        BeanUtils.copyProperties(comCvtCategoryDO, comCvtCategoryVO);
+        return R.ok(comCvtCategoryVO);
+    }
+
+    @Override
+    public R deleteComCvtCategory(Long id) {
+        ComCvtCategoryDO comCvtCategoryDO = comCvtCategoryDAO.selectById(id);
+        if (null == comCvtCategoryDO) {
+            return R.fail("分类不存在");
+        }
+        int count = comCvtCategoryDAO.deleteById(id);
+        if (count < 1) {
+            return R.fail("删除失败");
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R allComCvtCategory() {
+        List<ComCvtCategoryVO> comCvtCategoryVOS = new ArrayList<>();
+        List<ComCvtCategoryDO> categoryDOS = comCvtCategoryDAO
+            .selectList(new QueryWrapper<ComCvtCategoryDO>().lambda().orderByDesc(ComCvtCategoryDO::getWeight));
+        if (!ObjectUtils.isEmpty(categoryDOS)) {
+            categoryDOS.forEach(categoryDO -> {
+                ComCvtCategoryVO comCvtCategoryVO = new ComCvtCategoryVO();
+                BeanUtils.copyProperties(categoryDO, comCvtCategoryVO);
+                comCvtCategoryVOS.add(comCvtCategoryVO);
+            });
+        }
+        return R.ok(comCvtCategoryVOS);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComCvtServeServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComCvtServeServiceImpl.java
new file mode 100644
index 0000000..ff49f3d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComCvtServeServiceImpl.java
@@ -0,0 +1,280 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
+
+import com.alibaba.fastjson.JSON;
+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.model.dtos.community.ComCvtServeDTO;
+import com.panzhihua.common.model.dtos.community.PageComCvtServeDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComCvtBusinessCategoryServeVO;
+import com.panzhihua.common.model.vos.community.ComCvtServeExcelVO;
+import com.panzhihua.common.model.vos.community.ComCvtServeVO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationImportErrorVO;
+import com.panzhihua.service_community.dao.ComCvtBusinessDAO;
+import com.panzhihua.service_community.dao.ComCvtCategoryDAO;
+import com.panzhihua.service_community.dao.ComCvtServeDAO;
+import com.panzhihua.service_community.model.dos.ComCvtBusinessDO;
+import com.panzhihua.service_community.model.dos.ComCvtCategoryDO;
+import com.panzhihua.service_community.model.dos.ComCvtServeDO;
+import com.panzhihua.service_community.service.ComCvtServeService;
+
+/**
+ * @description: 社区 便民服务接口实现类
+ * @author: Null
+ * @date: 2021/3/12 8:58
+ */
+@Service
+public class ComCvtServeServiceImpl extends ServiceImpl<ComCvtServeDAO, ComCvtServeDO> implements ComCvtServeService {
+
+    @Resource
+    private ComCvtServeDAO comCvtServeDAO;
+
+    @Resource
+    private ComCvtBusinessDAO comCvtBusinessDAO;
+
+    @Resource
+    private ComCvtCategoryDAO comCvtCategoryDAO;
+
+    @Override
+    public R pageComCvtServe(PageComCvtServeDTO pageComCvtServeDTO) {
+        Page page = new Page<>();
+        Long pageNum = pageComCvtServeDTO.getPageNum();
+        Long pageSize = pageComCvtServeDTO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<ComCvtServeVO> iPage = comCvtServeDAO.pageComCvtServe(page, pageComCvtServeDTO);
+        return R.ok(iPage);
+
+    }
+
+    @Override
+    public R addComCvtServe(ComCvtServeDTO comCvtServeDTO) {
+        ComCvtServeDO comCvtServeDO = new ComCvtServeDO();
+        BeanUtils.copyProperties(comCvtServeDTO, comCvtServeDO);
+        if (checkRepeat(comCvtServeDO)) {
+            return R.fail("服务已存在");
+        }
+        int insert = comCvtServeDAO.insert(comCvtServeDO);
+        if (insert > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    @Override
+    public R putComCvtServe(ComCvtServeDTO comCvtServeDTO) {
+        ComCvtServeDO comCvtServeDO = comCvtServeDAO.selectById(comCvtServeDTO.getId());
+        if (null == comCvtServeDO) {
+            return R.fail("该服务不存在");
+        }
+        ComCvtServeDO comCvtServeDO2 = new ComCvtServeDO();
+        BeanUtils.copyProperties(comCvtServeDTO, comCvtServeDO2);
+        if (!comCvtServeDO.equals(comCvtServeDO2) && checkRepeat(comCvtServeDO2)) {
+            return R.fail("该服务与其他服务重复");
+        }
+        int update = comCvtServeDAO.updateById(comCvtServeDO2);
+        if (update > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    @Override
+    public R getComCvtServe(Long id) {
+        ComCvtServeDO comCvtServeDO = comCvtServeDAO.selectById(id);
+        if (null == comCvtServeDO) {
+            return R.fail("该服务不存在");
+        }
+        ComCvtServeVO comCvtServeVO = new ComCvtServeVO();
+        BeanUtils.copyProperties(comCvtServeDO, comCvtServeVO);
+        ComCvtBusinessDO comCvtBusinessDO = comCvtBusinessDAO.selectById(comCvtServeDO.getBusinessId());
+        if (null != comCvtBusinessDO) {
+            comCvtServeVO.setBusinessName(comCvtBusinessDO.getName());
+        }
+        ComCvtCategoryDO comCvtCategoryDO = comCvtCategoryDAO.selectById(comCvtServeDO.getCategoryId());
+        if (null != comCvtCategoryDO) {
+            comCvtServeVO.setCategoryName(comCvtCategoryDO.getName());
+        }
+        return R.ok(comCvtServeDO);
+    }
+
+    @Override
+    public R deleteComCvtServe(Long id) {
+        ComCvtServeDO comCvtServeDO = comCvtServeDAO.selectById(id);
+        if (null == comCvtServeDO) {
+            return R.fail("该服务不存在");
+        }
+        int count = comCvtServeDAO.deleteById(id);
+        if (count < 1) {
+            return R.fail("删除失败");
+        }
+        return R.ok();
+    }
+
+    @Override
+    public List<ComCvtBusinessCategoryServeVO> getBusinessCategoryServeVOS(Long businessId) {
+        List<ComCvtBusinessCategoryServeVO> comCvtBusinessCategoryServeVOS = new ArrayList<>();
+        List<ComCvtServeDO> comCvtServeDOS = comCvtServeDAO
+            .selectList(new QueryWrapper<ComCvtServeDO>().lambda().eq(ComCvtServeDO::getBusinessId, businessId));
+        List<ComCvtCategoryDO> categoryDOS = comCvtCategoryDAO
+            .selectList(new QueryWrapper<ComCvtCategoryDO>().lambda().orderByDesc(ComCvtCategoryDO::getWeight));
+        categoryDOS.stream().forEach(categoryDO -> {
+            List<ComCvtServeVO> serveVOS = getComCvtServeDOSByCategory(comCvtServeDOS, categoryDO.getId());
+            if (!ObjectUtils.isEmpty(serveVOS)) {
+                ComCvtBusinessCategoryServeVO comCvtServeVo = new ComCvtBusinessCategoryServeVO();
+                comCvtServeVo.setCategoryName(categoryDO.getName());
+                comCvtServeVo.setComCvtServeVOS(serveVOS);
+                comCvtBusinessCategoryServeVOS.add(comCvtServeVo);
+            }
+        });
+        return comCvtBusinessCategoryServeVOS;
+    }
+
+    /**
+     * 按分类筛选
+     *
+     * @param comCvtServeDOS
+     * @param categoryId
+     * @return
+     */
+    private List<ComCvtServeVO> getComCvtServeDOSByCategory(List<ComCvtServeDO> comCvtServeDOS, Long categoryId) {
+        List<ComCvtServeVO> comCvtServeVOS = new ArrayList<>();
+        comCvtServeDOS =
+            comCvtServeDOS.stream().filter(dos -> dos.getCategoryId() == categoryId).collect(Collectors.toList());
+        comCvtServeDOS.forEach(comCvtServeDO -> {
+            ComCvtServeVO vo = new ComCvtServeVO();
+            BeanUtils.copyProperties(comCvtServeDO, vo);
+            comCvtServeVOS.add(vo);
+        });
+        return comCvtServeVOS;
+    }
+
+    @Override
+    public R listSaveConvenientServeExcelVO(List<ComCvtServeExcelVO> list, Long communityId) {
+        List<ComCvtServeDO> comCvtServeDOS = new ArrayList<>();
+        List<ComMngPopulationImportErrorVO> populationImportErrorVOList = new ArrayList<>();
+        List<ComCvtCategoryDO> categoryDOS = comCvtCategoryDAO
+            .selectList(new QueryWrapper<ComCvtCategoryDO>().lambda().orderByDesc(ComCvtCategoryDO::getWeight));
+        Map<String, Long> categoryMap = getCategoryMap(categoryDOS);
+        List<ComCvtBusinessDO> comCvtBusinessDOS;
+        if (null != communityId && communityId != 0) {
+            comCvtBusinessDOS = comCvtBusinessDAO.selectList(
+                new QueryWrapper<ComCvtBusinessDO>().lambda().eq(ComCvtBusinessDO::getCommunityId, communityId));
+        } else {
+            comCvtBusinessDOS = comCvtBusinessDAO.selectList(new LambdaQueryWrapper<>());
+        }
+        Map<String, Long> businessMap = getBusinessMap(comCvtBusinessDOS);
+        int index = 2;
+        for (ComCvtServeExcelVO comCvtServeExcelVO : list) {
+
+            /**
+             * 便民服务分类存在 并且 便民服务商家 匹配上
+             */
+            if (categoryMap.containsKey(comCvtServeExcelVO.getCategoryName())
+                && businessMap.containsKey(comCvtServeExcelVO.getBusinessName())) {
+                ComCvtServeDO comCvtServeDO = new ComCvtServeDO();
+                BeanUtils.copyProperties(comCvtServeExcelVO, comCvtServeDO);
+                comCvtServeDO.setCategoryId(categoryMap.get(comCvtServeExcelVO.getCategoryName()));
+                comCvtServeDO.setBusinessId(businessMap.get(comCvtServeExcelVO.getBusinessName()));
+                // 检查商家是否已有某服务
+                if (!checkRepeat(comCvtServeDO)) {
+                    comCvtServeDOS.add(comCvtServeDO);
+                } else {
+                    ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+                    importErrorVO.setErrorMsg(String.format("导入失败:商家【%s】下已有服务【%s】",
+                        comCvtServeExcelVO.getBusinessName(), comCvtServeExcelVO.getServiceName()));
+//                    importErrorVO.setErrorPosition("第" + index + "行");
+                    populationImportErrorVOList.add(importErrorVO);
+                    log.error(String.format("导入失败:商家【%s】下已有服务【%s】", comCvtServeExcelVO.getBusinessName(),
+                        comCvtServeExcelVO.getServiceName()));
+                }
+            } else {
+                if (!categoryMap.containsKey(comCvtServeExcelVO.getCategoryName())) {
+                    ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+                    importErrorVO.setErrorMsg("导入失败: 服务分类" + comCvtServeExcelVO.getCategoryName() + "不存在");
+//                    importErrorVO.setErrorPosition("第" + index + "行,第1列");
+                    populationImportErrorVOList.add(importErrorVO);
+                    // errorInfo.add(comCvtServeExcelVO.getCategoryName() +"导入失败: 服务分类不存在");
+                }
+                if (!businessMap.containsKey(comCvtServeExcelVO.getBusinessName())) {
+                    ComMngPopulationImportErrorVO importErrorVO = new ComMngPopulationImportErrorVO();
+                    importErrorVO.setErrorMsg("导入失败: 便民服务商家" + comCvtServeExcelVO.getBusinessName() + "不存在");
+//                    importErrorVO.setErrorPosition("第" + index + "行,第5列");
+                    populationImportErrorVOList.add(importErrorVO);
+                }
+            }
+            index++;
+        }
+        boolean saveBatched = this.saveBatch(comCvtServeDOS);
+        if (saveBatched) {
+            if (comCvtServeDOS.size() > 0 && populationImportErrorVOList.size() > 0) {
+                return R.fail(JSON.toJSONString(populationImportErrorVOList));
+            }
+            if (comCvtServeDOS.size() == 0 && populationImportErrorVOList.size() > 0) {
+                return R.fail(JSON.toJSONString(populationImportErrorVOList));
+            }
+        } else {
+            return R.fail(JSON.toJSONString(populationImportErrorVOList));
+        }
+        return R.ok("共计导入服务数量:" + comCvtServeDOS.size());
+    }
+
+    // 获取分类集合
+    private Map<String, Long> getCategoryMap(List<ComCvtCategoryDO> categoryDOS) {
+        Map<String, Long> categoryMap = new HashMap<>();
+        if (!ObjectUtils.isEmpty(categoryDOS)) {
+            categoryDOS.forEach(categoryDO -> {
+                categoryMap.put(categoryDO.getName(), categoryDO.getId());
+            });
+        }
+        return categoryMap;
+    }
+
+    // 获取商家集合
+    private Map<String, Long> getBusinessMap(List<ComCvtBusinessDO> comCvtBusinessDOS) {
+        Map<String, Long> businessMap = new HashMap<>();
+        if (!ObjectUtils.isEmpty(comCvtBusinessDOS)) {
+            comCvtBusinessDOS.forEach(businessDO -> {
+                businessMap.put(businessDO.getName(), businessDO.getId());
+            });
+        }
+        return businessMap;
+    }
+
+    /**
+     * 检查服务是否重复 商家名称、分类名称,服务名称、服务价格、服务描述不能同时重复
+     * 
+     * @param comCvtServeDO
+     * @return
+     */
+    private boolean checkRepeat(ComCvtServeDO comCvtServeDO) {
+        Integer count = comCvtServeDAO.selectCount(
+            new QueryWrapper<ComCvtServeDO>().lambda().eq(ComCvtServeDO::getBusinessId, comCvtServeDO.getBusinessId())
+                .and(wrapper -> wrapper.eq(ComCvtServeDO::getCategoryId, comCvtServeDO.getCategoryId()))
+                .and(wrapper -> wrapper.eq(ComCvtServeDO::getServiceName, comCvtServeDO.getServiceName()))
+                .and(wrapper -> wrapper.eq(ComCvtServeDO::getServicePrice, comCvtServeDO.getServicePrice()))
+                .and(wrapper -> wrapper.eq(ComCvtServeDO::getServiceDesc, comCvtServeDO.getServiceDesc())));
+        return count > 0;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComDisabilityPopulationServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComDisabilityPopulationServiceImpl.java
new file mode 100644
index 0000000..c418239
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComDisabilityPopulationServiceImpl.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.ComDisabilityPopulationDAO;
+import com.panzhihua.service_community.model.dos.ComDisabilityPopulationDO;
+import com.panzhihua.service_community.service.ComDisabilityPopulationService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 19:54:57
+ * @describe 实有人口导入》残疾人表服务实现类
+ */
+@Slf4j
+@Service
+public class ComDisabilityPopulationServiceImpl extends
+    ServiceImpl<ComDisabilityPopulationDAO, ComDisabilityPopulationDO> implements ComDisabilityPopulationService {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComDrugPopulationServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComDrugPopulationServiceImpl.java
new file mode 100644
index 0000000..0225005
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComDrugPopulationServiceImpl.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.ComDrugPopulationDAO;
+import com.panzhihua.service_community.model.dos.ComDrugPopulationDO;
+import com.panzhihua.service_community.service.ComDrugPopulationService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 15:37:19
+ * @describe 吸毒人员表服务实现类
+ */
+@Slf4j
+@Service
+public class ComDrugPopulationServiceImpl extends ServiceImpl<ComDrugPopulationDAO, ComDrugPopulationDO>
+    implements ComDrugPopulationService {
+
+}
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..7c7ea6a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComElderAuthRecordsServiceImpl.java
@@ -0,0 +1,660 @@
+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.Map;
+import java.util.Objects;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.vos.user.SysTemplateConfigVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.service_community.dao.*;
+import com.panzhihua.service_community.model.dos.*;
+import com.panzhihua.service_community.service.ComElderAuthElderliesService;
+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.panzhihua.common.model.dtos.community.AddIdentityAuthDTO;
+import com.panzhihua.common.model.dtos.community.PageElderAuthRecordsDTO;
+import com.panzhihua.common.model.dtos.community.PageIdentityAuthRecordDTO;
+import com.panzhihua.common.model.dtos.community.elder.PageElderAuthStatisticDTO;
+import com.panzhihua.common.model.helper.AESUtil;
+import com.panzhihua.common.model.vos.R;
+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 com.panzhihua.common.model.vos.community.ComElderAuthRecordVO;
+import com.panzhihua.common.utlis.AgeUtils;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.common.utlis.WxUtil;
+import com.panzhihua.common.utlis.WxXCXTempSend;
+import com.panzhihua.service_community.service.ComElderAuthRecordsService;
+
+import cn.hutool.core.util.IdcardUtil;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 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;
+    @Resource
+    private ComActActSignDAO comActActSignDAO;
+    @Value("${domain.aesKey:}")
+    private String aesKey;
+    @Resource
+    private ComEldersAuthHistoryRecordMapper comEldersAuthHistoryRecordMapper;
+    @Resource
+    private ComPensionAuthHistoryRecordMapper comPensionAuthHistoryRecordMapper;
+    @Resource
+    private ComPensionAuthRecordDAO comPensionAuthRecordDAO;
+    @Resource
+    private ComPensionAuthPensionerDAO comPensionAuthPensionerDAO;
+    @Resource
+    private ComElderAuthElderliesService comElderAuthElderliesService;
+    @Resource
+    private UserService userService;
+
+    @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);
+
+        try {
+            //关键词为空时需要进行加密,通过加密去检索身份证号筛选高龄认证记录
+            String idCard = AESUtil.encrypt128(pageElderAuthRecordsDTO.getSearchKey(), aesKey);
+            pageElderAuthRecordsDTO.setIdCard(idCard);
+        }catch (Exception e){
+            log.error("查询高龄认证记录转换身份证号失败");
+        }
+
+        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 export(PageElderAuthRecordsDTO pageElderAuthRecordsDTO) {
+        try {
+            //关键词为空时需要进行加密,通过加密去检索身份证号筛选高龄认证记录
+            String idCard = AESUtil.encrypt128(pageElderAuthRecordsDTO.getSearchKey(), aesKey);
+            pageElderAuthRecordsDTO.setIdCard(idCard);
+        }catch (Exception e){
+            log.error("查询高龄认证记录转换身份证号失败");
+        }
+        return R.ok(comElderAuthRecordsDAO.export(pageElderAuthRecordsDTO));
+    }
+
+    @Override
+    public R detailElderAuthRecords(Long authRecordId) {
+        ComElderAuthRecordVO comElderAuthRecordVO = comElderAuthRecordsDAO.detailElderAuthRecords(authRecordId);
+        comElderAuthRecordVO.setNextIds(comElderAuthRecordsDAO.getNextIds(comElderAuthRecordVO.getCommunityId(),authRecordId));
+        try {
+            comElderAuthRecordVO.setAge(IdcardUtil.getAgeByIdCard(comElderAuthRecordVO.getIdCard()));
+        }catch (Exception e){
+            log.error("身份证转换失败");
+        }
+        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);
+            sendAuthSubscribe(comElderAuthRecordsDO.getSubmitUserId(), "高龄认证", "认证成功!",comElderAuthRecordVO.getAreaCode());
+
+            authElderliesDO.setAddress(comElderAuthRecordVO.getAddress());
+            comElderAuthElderliesDAO.updateById(authElderliesDO);
+        } else {
+            sendAuthSubscribe(comElderAuthRecordsDO.getSubmitUserId(), "高龄认证", comElderAuthRecordVO.getRejectReason(),comElderAuthRecordVO.getAreaCode());
+        }
+//        comElderAuthRecordsDO.setApprovalDate(new Date());
+        int nub = comElderAuthRecordsDAO.updateById(comElderAuthRecordsDO);
+        if (nub < 1) {
+            return R.fail("审核失败");
+        }
+        return R.ok();
+    }
+
+    private void sendAuthSubscribe(Long userId, String name, String result,String areaCode) {
+        //发送订阅通知
+        Map<String, String> map = comActActSignDAO.getUserOpenId(userId);
+        if (map != null) {
+            String openid = map.get("openid");
+            try {
+                WxXCXTempSend util = new WxXCXTempSend();
+                String accessToken = util.getAccessToken();
+                R<SysTemplateConfigVO> sysTemplateConfigVO=userService.selectTemplate(areaCode,5);
+                WxUtil.sendSubscribeRZSH(openid, accessToken, name,
+                        DateUtils.format(new Date(), DateUtils.ymdhms_format),
+                        result,sysTemplateConfigVO.getData().getTemplateId());
+            } catch (Exception e) {
+                log.error("推送审核状态订阅消息失败,失败原因:" + e.getMessage());
+            }
+        }
+    }
+
+    @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<>();
+        //需要更新的老人信息
+        List<ComElderAuthElderliesDO> updateElderliesList = new ArrayList<>();
+        log.info("开始处理导入数据");
+
+
+        List<ComElderAuthRecordImportMistakeExcelVO> mistakes = new ArrayList<>();
+        try {
+            // 查询所有人口数据放入HashMap中
+//            List<ComMngPopulationDO> populationList = comMngPopulationDAO.selectList(null);
+            List<ComMngPopulationDO> populationList = comMngPopulationDAO.selectListIds();
+            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);
+
+                                        if(StringUtils.isNotEmpty(vo.getAddress())){
+                                            comElderAuthElderliesDO.setAddress(vo.getAddress());
+                                            updateElderliesList.add(comElderAuthElderliesDO);
+                                        }
+                                    }else {
+                                        // 驳回状态,则新增
+                                        comElderAuthRecordsDO = saveElderAuthRecordsDO(vo, comElderAuthElderliesDO, authPeriod, userId,communityId,nowDate);
+                                        saveList.add(comElderAuthRecordsDO);
+
+                                        if(StringUtils.isNotEmpty(vo.getAddress())){
+                                            comElderAuthElderliesDO.setAddress(vo.getAddress());
+                                            updateElderliesList.add(comElderAuthElderliesDO);
+                                        }
+                                    }
+                                }else {
+                                    // 不存在记录,则新增
+                                    comElderAuthRecordsDO = saveElderAuthRecordsDO(vo, comElderAuthElderliesDO, authPeriod, userId,communityId,nowDate);
+                                    saveList.add(comElderAuthRecordsDO);
+
+                                    if(StringUtils.isNotEmpty(vo.getAddress())){
+                                        comElderAuthElderliesDO.setAddress(vo.getAddress());
+                                        updateElderliesList.add(comElderAuthElderliesDO);
+                                    }
+                                }
+                            }
+                        }
+                    }
+                } 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("数据库更新线下认证记录完成");
+        }
+        if(!updateElderliesList.isEmpty()){
+            comElderAuthElderliesService.updateBatchById(updateElderliesList);
+        }
+        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);
+    }
+
+    /**
+     * 身份认证定时任务
+     * @return  执行结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R timedTaskElderAuthStatisticsJobHandler() {
+        //查询高龄认证记录列表
+        List<ComElderAuthRecordsDO> authRecordsList = comElderAuthRecordsDAO.selectList(new QueryWrapper<ComElderAuthRecordsDO>().lambda()
+                .eq(ComElderAuthRecordsDO::getAuthStatus,ComElderAuthRecordsDO.authStatus.yrz));
+        //遍历高龄认证记录列表
+        authRecordsList.forEach(authRecords -> {
+            if(authRecords.getApprovalStatus().equals(ComElderAuthRecordsDO.approvalStatus.tg)){
+                ComEldersAuthHistoryRecordDO authHistoryRecordDO = comEldersAuthHistoryRecordMapper.selectOne(new QueryWrapper<ComEldersAuthHistoryRecordDO>().lambda()
+                        .eq(ComEldersAuthHistoryRecordDO::getElderliesId,authRecords.getElderliesId())
+                        .eq(ComEldersAuthHistoryRecordDO::getAuthPeriod,authRecords.getAuthPeriod()));
+                if(authHistoryRecordDO != null){//存在记录
+                    if(authHistoryRecordDO.getIsAuth().equals(ComEldersAuthHistoryRecordDO.isAuth.no)){
+                        //查询老人信息
+                        ComElderAuthElderliesDO authElderliesDO = comElderAuthElderliesDAO.selectById(authRecords.getElderliesId());
+                        if(authElderliesDO != null){
+                            Long authId = authHistoryRecordDO.getId();
+                            BeanUtils.copyProperties(authElderliesDO,authHistoryRecordDO);
+                            authHistoryRecordDO.setId(authId);
+                            authHistoryRecordDO.setBrithday(DateUtils.format(IdcardUtil.getBirthDate(authElderliesDO.getIdCard()),DateUtils.yyyyMMdd_format));
+                            authHistoryRecordDO.setAge(IdcardUtil.getAgeByIdCard(authElderliesDO.getIdCard()));
+                        }
+                        authHistoryRecordDO.setIsAuth(ComEldersAuthHistoryRecordDO.isAuth.yes);
+                        authHistoryRecordDO.setAuthDate(authRecords.getApprovalDate());
+                        authHistoryRecordDO.setApprovalDate(authRecords.getApprovalDate());
+                        authHistoryRecordDO.setApproverId(authRecords.getApproverId());
+                        authHistoryRecordDO.setSubmitUserId(authRecords.getSubmitUserId());
+                        authHistoryRecordDO.setAuthMethod(authRecords.getAuthMethod());
+                        authHistoryRecordDO.setVerificationResult(authRecords.getVerificationResult());
+                        authHistoryRecordDO.setAuthId(authRecords.getId());
+
+                        comEldersAuthHistoryRecordMapper.updateById(authHistoryRecordDO);
+                    }
+                }else{
+                    authHistoryRecordDO = new ComEldersAuthHistoryRecordDO();
+                    //查询老人信息
+                    ComElderAuthElderliesDO authElderliesDO = comElderAuthElderliesDAO.selectById(authRecords.getElderliesId());
+                    if(authElderliesDO != null){
+                        BeanUtils.copyProperties(authElderliesDO,authHistoryRecordDO);
+                        authHistoryRecordDO.setBrithday(DateUtils.format(IdcardUtil.getBirthDate(authElderliesDO.getIdCard()),DateUtils.yyyyMMdd_format));
+                        authHistoryRecordDO.setAge(IdcardUtil.getAgeByIdCard(authElderliesDO.getIdCard()));
+                    }
+                    BeanUtils.copyProperties(authRecords,authHistoryRecordDO);
+                    authHistoryRecordDO.setAuthDate(authRecords.getApprovalDate());
+                    authHistoryRecordDO.setMark(null);
+                    authHistoryRecordDO.setIsAuth(ComEldersAuthHistoryRecordDO.isAuth.yes);
+                    authHistoryRecordDO.setAuthId(authRecords.getId());
+                    comEldersAuthHistoryRecordMapper.insert(authHistoryRecordDO);
+                }
+            }
+        });
+
+        //查询养老认证记录列表
+        List<ComPensionAuthRecordDO> pensionAuthList = comPensionAuthRecordDAO.selectList(new QueryWrapper<ComPensionAuthRecordDO>().lambda()
+                .eq(ComPensionAuthRecordDO::getAuthStatus,ComPensionAuthRecordDO.authStatus.rez));
+        //遍历养老认证记录列表
+        pensionAuthList.forEach(authRecords -> {
+            ComPensionAuthHistoryRecordDO pensionAuthDO = comPensionAuthHistoryRecordMapper.selectOne(new QueryWrapper<ComPensionAuthHistoryRecordDO>().lambda()
+                    .eq(ComPensionAuthHistoryRecordDO::getElderliesId,authRecords.getPensionerId())
+                    .eq(ComPensionAuthHistoryRecordDO::getAuthPeriod,authRecords.getAuthPeriod()));
+            if(pensionAuthDO != null){//存在记录
+                if(pensionAuthDO.getIsAuth().equals(ComPensionAuthHistoryRecordDO.isAuth.no)){
+                    //查询老人信息
+                    ComPensionAuthPensionerDO authPensionerDO = comPensionAuthPensionerDAO.selectById(authRecords.getPensionerId());
+                    if(authPensionerDO != null){
+                        Long authId = pensionAuthDO.getId();
+                        BeanUtils.copyProperties(authPensionerDO,pensionAuthDO);
+                        pensionAuthDO.setId(authId);
+                        pensionAuthDO.setBrithday(DateUtils.format(IdcardUtil.getBirthDate(authPensionerDO.getIdCard()),DateUtils.yyyyMMdd_format));
+                        pensionAuthDO.setAge(IdcardUtil.getAgeByIdCard(authPensionerDO.getIdCard()));
+                    }
+                    pensionAuthDO.setIsAuth(ComPensionAuthHistoryRecordDO.isAuth.yes);
+                    pensionAuthDO.setAuthDate(authRecords.getApprovalDate());
+                    pensionAuthDO.setApprovalDate(authRecords.getApprovalDate());
+                    pensionAuthDO.setApproverId(authRecords.getApproverId());
+                    pensionAuthDO.setSubmitUserId(authRecords.getSubmitUserId());
+                    pensionAuthDO.setAuthMethod(authRecords.getAuthMethod());
+                    pensionAuthDO.setVerificationResult(authRecords.getVerificationResult());
+                    pensionAuthDO.setAuthId(authRecords.getId());
+                    comPensionAuthHistoryRecordMapper.updateById(pensionAuthDO);
+                }
+            }else{
+                pensionAuthDO = new ComPensionAuthHistoryRecordDO();
+                //查询老人信息
+                ComPensionAuthPensionerDO authPensionerDO = comPensionAuthPensionerDAO.selectById(authRecords.getPensionerId());
+                if(authPensionerDO != null){
+                    BeanUtils.copyProperties(authPensionerDO,pensionAuthDO);
+                    pensionAuthDO.setBrithday(DateUtils.format(IdcardUtil.getBirthDate(authPensionerDO.getIdCard()),DateUtils.yyyyMMdd_format));
+                    pensionAuthDO.setAge(IdcardUtil.getAgeByIdCard(authPensionerDO.getIdCard()));
+                }
+                BeanUtils.copyProperties(authRecords,pensionAuthDO);
+                pensionAuthDO.setAuthDate(authRecords.getApprovalDate());
+                pensionAuthDO.setMark(null);
+                pensionAuthDO.setIsAuth(ComPensionAuthHistoryRecordDO.isAuth.yes);
+                pensionAuthDO.setAuthId(authRecords.getId());
+                comPensionAuthHistoryRecordMapper.insert(pensionAuthDO);
+            }
+        });
+        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.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("认证失败,请重新尝试");
+        }
+        if (addIdentityAuthDTO.getAuthMethod().intValue() == FACE_AUTH.getMethod()) {
+            sendAuthSubscribe(addIdentityAuthDTO.getSubmitUserId(), "高龄认证", "认证成功!",addIdentityAuthDTO.getAreaCode());
+        }
+        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));
+    }
+
+    @Override
+    public R add(ComElderAuthRecordVO comElderAuthRecordVO) {
+        if(!comElderAuthRecordVO.getIdCard().isEmpty()){
+            List<ComMngPopulationDO>  comMngPopulationDOS=comMngPopulationDAO.selectList(new QueryWrapper<ComMngPopulationDO>().lambda().eq(ComMngPopulationDO::getCardNoStr,comElderAuthRecordVO.getIdCard()).orderByDesc(ComMngPopulationDO::getCreateAt));
+            if(!comMngPopulationDOS.isEmpty()){
+                ComMngPopulationDO comMngPopulationDO=comMngPopulationDOS.get(0);
+                ComElderAuthElderliesDO comElderAuthElderliesDO=comElderAuthElderliesDAO.selectOne(new QueryWrapper<ComElderAuthElderliesDO>().lambda().eq(ComElderAuthElderliesDO::getPopulationId,comMngPopulationDO.getId()));
+                if(comElderAuthElderliesDO!=null){
+                    Integer count=comElderAuthRecordsDAO.selectCount(new QueryWrapper<ComElderAuthRecordsDO>().lambda().eq(ComElderAuthRecordsDO::getElderliesId,comElderAuthElderliesDO.getId()).eq(ComElderAuthRecordsDO::getAuthPeriod,comElderAuthRecordVO.getAuthPeriod()));
+                    if(count==0){
+                        ComElderAuthRecordsDO comElderAuthRecordsDO=new ComElderAuthRecordsDO();
+                        BeanUtils.copyProperties(comElderAuthRecordVO,comElderAuthRecordsDO);
+                        comElderAuthRecordsDO.setElderliesId(comElderAuthElderliesDO.getId());
+                        comElderAuthRecordsDO.setApprovalStatus(PASS_THROUGH.getStatus());
+                        comElderAuthRecordsDO.setApprovalDate(new Date());
+                        comElderAuthRecordsDO.setAuthStatus(CERTIFIED.getStatus());
+                        comElderAuthRecordsDO.setAuthMethod(ComPensionAuthRecordDO.authMethod.xxrz);
+                        comElderAuthRecordsDO.setApproverId(comElderAuthRecordVO.getSubmitUserId());
+                        comElderAuthRecordsDO.setSubmitUserId(comElderAuthRecordVO.getSubmitUserId());
+                        if (this.baseMapper.insert(comElderAuthRecordsDO) < 0) {
+                            return R.fail("认证失败,请重新尝试");
+                        }
+                        comMngPopulationDO.setPhone(comElderAuthRecordVO.getPhone());
+                        comMngPopulationDAO.updateById(comMngPopulationDO);
+                        comElderAuthElderliesDO.setAddress(comElderAuthRecordVO.getAddress());
+                        comElderAuthElderliesDO.setPhone(comElderAuthRecordVO.getPhone());
+                        comElderAuthElderliesDO.setIdCard(null);
+                        comElderAuthElderliesDAO.updateById(comElderAuthElderliesDO);
+                        ComPensionAuthPensionerDO comPensionAuthPensionerDO=comPensionAuthPensionerDAO.selectOne(new QueryWrapper<ComPensionAuthPensionerDO>().lambda().eq(ComPensionAuthPensionerDO::getPopulationId,comMngPopulationDO.getId()));
+                        if(comPensionAuthPensionerDO!=null){
+                            comPensionAuthPensionerDO.setAddress(comElderAuthRecordVO.getAddress());
+                            comPensionAuthPensionerDO.setPhone(comElderAuthRecordVO.getPhone());
+                            comPensionAuthPensionerDO.setIdCard(null);
+                            comPensionAuthPensionerDAO.updateById(comPensionAuthPensionerDO);
+                        }
+                        return R.ok();
+                    }
+                    return R.fail("当前期数已认证,请勿重复认证");
+                }
+                return R.fail("无养老认证数据");
+            }
+            return R.fail("该身份证无实有人口信息");
+        }
+        return R.fail("身份证不能为空");
+    }
+}
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
new file mode 100644
index 0000000..37f987b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEldersAuthElderlyServiceImpl.java
@@ -0,0 +1,178 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.ArrayList;
+import java.util.Date;
+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.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.dtos.community.EldersAuthElderlyDTO;
+import com.panzhihua.common.model.dtos.community.PageComEldersAuthElderlyDTO;
+import com.panzhihua.common.model.dtos.community.PageEldersAuthElderlyDTO;
+import com.panzhihua.common.model.helper.AESUtil;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComEldersAuthElderlyVO;
+import com.panzhihua.common.model.vos.community.EldersAuthElderlyExcelVO;
+import com.panzhihua.service_community.dao.ComEldersAuthElderlyMapper;
+import com.panzhihua.service_community.model.dos.ComEldersAuthElderlyDO;
+import com.panzhihua.service_community.service.ComEldersAuthElderlyService;
+import com.panzhihua.service_community.service.EldersAuthService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 高龄老人库 serviceImpl
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-06-09
+ */
+@Slf4j
+@Service
+public class ComEldersAuthElderlyServiceImpl extends ServiceImpl<ComEldersAuthElderlyMapper, ComEldersAuthElderlyDO>
+    implements ComEldersAuthElderlyService {
+
+    @Resource
+    private ComEldersAuthElderlyMapper comEldersAuthElderlyMapper;
+
+    @Value("${domain.aesKey:}")
+    private String aesKey;
+
+    @Resource
+    private EldersAuthService eldersAuthService;
+
+    @Override
+    public R pageQueryEldersAuthElderly(PageEldersAuthElderlyDTO pageEldersAuthElderlyDTO) {
+        PageComEldersAuthElderlyDTO pageComEldersAuthElderlyDTO = new PageComEldersAuthElderlyDTO();
+        BeanUtils.copyProperties(pageEldersAuthElderlyDTO, pageComEldersAuthElderlyDTO);
+        IPage<ComEldersAuthElderlyVO> page = comEldersAuthElderlyMapper.findByPage(
+            new Page(pageEldersAuthElderlyDTO.getPageNum(), pageEldersAuthElderlyDTO.getPageSize()),
+            pageComEldersAuthElderlyDTO);
+        return R.ok(page);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R batchSave(List<EldersAuthElderlyExcelVO> list, Long communityId, Long createBy) {
+        List<ComEldersAuthElderlyDO> listNewDO = new ArrayList<>();
+        List<ComEldersAuthElderlyDO> listUpdateDO = new ArrayList<>();
+        list.forEach(e -> {
+            String idCardProto = e.getIdCard();
+            if (idCardProto != null && idCardProto.contains("x")) {
+                idCardProto = idCardProto.replaceAll("x", "X");
+            }
+            String idCardEncrypted = idCardProto;
+            try {
+                idCardEncrypted = AESUtil.encrypt128(idCardEncrypted, aesKey);
+            } catch (Exception exp) {
+                exp.printStackTrace();
+            }
+            List<ComEldersAuthElderlyDO> comEldersAuthElderlyDOList = comEldersAuthElderlyMapper.selectList(
+                new LambdaQueryWrapper<ComEldersAuthElderlyDO>().eq(ComEldersAuthElderlyDO::getIdCard, idCardEncrypted)
+                    .orderByDesc(ComEldersAuthElderlyDO::getCreateAt));
+
+            if (comEldersAuthElderlyDOList != null && comEldersAuthElderlyDOList.size() > 0) {
+                ComEldersAuthElderlyDO lastestOne = comEldersAuthElderlyDOList.get(0);
+                lastestOne.setName(e.getName());
+                lastestOne.setCommunityId(communityId);
+                lastestOne.setUpdateBy(createBy);
+                lastestOne.setIdCard(null);
+                lastestOne.setDomicile(eldersAuthService.queryDomicile(e.getIdCard()));
+                lastestOne.setIsExist(Objects.equals("是", e.getIsExist()) ? 1 : 2);
+                lastestOne.setIsBigAge(Objects.equals("是", e.getIsBigAge()) ? 1 : 2);
+                lastestOne.setUpdateAt(new Date());
+                listUpdateDO.add(lastestOne);
+            } else {
+                ComEldersAuthElderlyDO comEldersAuthElderlyDO = new ComEldersAuthElderlyDO();
+                comEldersAuthElderlyDO.setName(e.getName());
+                comEldersAuthElderlyDO.setIdCard(e.getIdCard());
+                comEldersAuthElderlyDO.setCommunityId(communityId);
+                comEldersAuthElderlyDO.setCreateBy(createBy);
+                comEldersAuthElderlyDO.setDomicile(eldersAuthService.queryDomicile(e.getIdCard()));
+                comEldersAuthElderlyDO.setIsExist(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);
+            }
+
+        });
+        boolean noImport =
+            (listNewDO == null || listNewDO.size() == 0) && (listUpdateDO == null || listUpdateDO.size() == 0);
+        if (noImport) {
+            throw new ServiceException("未发现高龄老人数据");
+        }
+        if (listNewDO != null && listNewDO.size() > 0) {
+            boolean batchAdd = this.saveBatch(listNewDO);
+            if (!batchAdd) {
+                throw new ServiceException("批量插入失败");
+            }
+        }
+        if (listUpdateDO != null && listUpdateDO.size() > 0) {
+            boolean batchUpdate = this.updateBatchById(listUpdateDO);
+            if (!batchUpdate) {
+                throw new ServiceException("批量更新失败");
+            }
+        }
+
+        return R.ok("共计导入高龄老人数量:" + list.size());
+    }
+
+    @Override
+    public R getEldersAuthElderlyById(Long id) {
+        ComEldersAuthElderlyDO comEldersAuthElderlyDO = this.baseMapper.selectById(id);
+        if (comEldersAuthElderlyDO == null) {
+            return R.fail("记录不存在");
+        }
+        ComEldersAuthElderlyVO comEldersAuthElderlyVO = new ComEldersAuthElderlyVO();
+        BeanUtils.copyProperties(comEldersAuthElderlyDO, comEldersAuthElderlyVO);
+        return R.ok(comEldersAuthElderlyVO);
+    }
+
+    @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());
+        }
+        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();
+    }
+
+    @Override
+    public R deleteEldersAuthElderly(Long id) {
+        if (this.baseMapper.deleteById(id) > 0) {
+            // 删除用户关联的老人信息
+            this.baseMapper.deleteEldersAuthUserById(id);
+            return R.ok();
+        }
+        return R.fail();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEldersAuthUserServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEldersAuthUserServiceImpl.java
new file mode 100644
index 0000000..d15bc15
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEldersAuthUserServiceImpl.java
@@ -0,0 +1,35 @@
+package com.panzhihua.service_community.service.impl;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.service_community.dao.ComEldersAuthUserMapper;
+import com.panzhihua.service_community.model.dos.ComEldersAuthUserDO;
+import com.panzhihua.service_community.service.ComEldersAuthUserService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 用户绑定老人关系 serviceImpl
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-06-09
+ */
+@Slf4j
+@Service
+public class ComEldersAuthUserServiceImpl extends ServiceImpl<ComEldersAuthUserMapper, ComEldersAuthUserDO>
+    implements ComEldersAuthUserService {
+
+    @Resource
+    private ComEldersAuthUserMapper comEldersAuthUserMapper;
+
+    @Override
+    public boolean checkReAuthAgain(Long elderId) {
+        int validAuthRecord = comEldersAuthUserMapper.countCurrentMonthValidAuthRecord(elderId);
+        return validAuthRecord == 0;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventResourceServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventResourceServiceImpl.java
new file mode 100644
index 0000000..074f443
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventResourceServiceImpl.java
@@ -0,0 +1,80 @@
+package com.panzhihua.service_community.service.impl;
+
+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.ReturnMsgConstants;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.service_community.dao.ComEventResourceMapper;
+import com.panzhihua.service_community.entity.ComEventResource;
+import com.panzhihua.service_community.service.IComEventResourceService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Collections;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * Description 三说会堂事件关联图片资源表业务层实现类
+ * ClassName   ComEventResourceServiceImpl
+ *
+ * @author manailin
+ * @date 2022-09-07 11:23:52
+ */
+@Slf4j
+@Service("comEventResourceService")
+public class ComEventResourceServiceImpl extends ServiceImpl<ComEventResourceMapper, ComEventResource> implements IComEventResourceService {
+
+    @Override
+    public R pageByComEventResource(ComEventResource comEventResource, Page pagination) {
+        IPage<ComEventResource> list = baseMapper.pageByComEventResource(comEventResource, pagination);
+        if (list.getRecords().size() < 1) {
+            return R.ok(Collections.emptyList());
+        }
+        return R.ok(list);
+    }
+
+    @Override
+    public List<ComEventResource> listByComEventResource(ComEventResource comEventResource) {
+        List<ComEventResource> list = baseMapper.listByComEventResource(comEventResource);
+        if (list.size() < 1) {
+            return Collections.emptyList();
+        }
+        return list;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R insertComEventResource(ComEventResource comEventResource) {
+        comEventResource.setId(Snowflake.getId());
+        comEventResource.setCreateAt(new Date());
+        boolean flag = save(comEventResource);
+        if (!flag) {
+            return R.fail(ReturnMsgConstants.DATA_EXIST);
+        }
+        return R.ok(ReturnMsgConstants.SAVE_SUCCESS);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R updateComEventResource(ComEventResource comEventResource) {
+        int flag = baseMapper.updateById(comEventResource);
+        return flag > 0 ? R.ok(comEventResource, ReturnMsgConstants.UPDATE_SUCCESS) : R.fail(ReturnMsgConstants.UPDATE_FALSE);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R updateEnabled(Long id, Boolean enabled) {
+        ComEventResource comEventResource = baseMapper.selectById(id);
+        if (comEventResource == null) {
+            return R.fail(ReturnMsgConstants.DATA_NOT_EXIST);
+        }
+        comEventResource.setDeleteFlag(enabled);
+        Boolean flag = updateById(comEventResource);
+        return flag ? R.ok(comEventResource, ReturnMsgConstants.UPDATE_SUCCESS) : R.fail(ReturnMsgConstants.UPDATE_FALSE);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventServiceImpl.java
new file mode 100644
index 0000000..3d6ee67
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventServiceImpl.java
@@ -0,0 +1,1305 @@
+package com.panzhihua.service_community.service.impl;
+
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.collection.ListUtil;
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.lang.generator.SnowflakeGenerator;
+import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.util.RandomUtil;
+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.constants.Constants;
+import com.panzhihua.common.constants.ReturnMsgConstants;
+import com.panzhihua.common.enums.SanShuoEventStatusEnum;
+import com.panzhihua.common.model.dtos.community.sanshuo.IndexDateDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.SanShuoMessageVO;
+import com.panzhihua.common.model.vos.community.switchs.CommunitySwitchAllAppletsVO;
+import com.panzhihua.common.model.vos.sanshuo.*;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.CopyUtil;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.api.ComSanShuoEventTransferRecordController;
+import com.panzhihua.service_community.dao.*;
+import com.panzhihua.service_community.entity.*;
+import com.panzhihua.service_community.model.dos.ComActDO;
+import com.panzhihua.service_community.model.dos.ComStreetDO;
+import com.panzhihua.service_community.service.*;
+import com.panzhihua.service_community.util.WXMessageUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.RandomUtils;
+import org.checkerframework.checker.units.qual.A;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.*;
+
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+
+/**
+ * Description 三说会堂事件表业务层实现类
+ * ClassName   ComEventServiceImpl
+ *
+ * @author manailin
+ * @date 2022-09-07 11:23:51
+ */
+@Slf4j
+@Service("comEventService")
+public class ComEventServiceImpl extends ServiceImpl<ComEventMapper, ComEvent> implements IComEventService {
+
+    @Resource
+    private IComEventTransferRecordService comEventTransferRecordService;
+
+    @Resource
+    private ComSanShuoExpertService comSanShuoExpertService;
+
+    @Resource
+    private IComEventResourceService comEventResourceService;
+
+    @Resource
+    private ComActDAO comActDAO;
+
+    @Resource
+    private ComStreetDAO comStreetDAO;
+
+    @Resource
+    private ComSanShuoIndustryCenterService comSanShuoIndustryCenterService;
+
+    @Resource
+    private ComEventMapper comEventMapper;
+
+    @Resource
+    private UserService userService;
+
+    @Resource
+    private CommediateTypeService commediateTypeService;
+
+    @Resource
+    private ComSanshuoExpertDao comSanshuoExpertDao;
+
+    @Resource
+    private SysUserDao sysUserDao;
+
+
+    @Override
+    public R pageByComEvent(ComEvent comEvent, Page pagination,LoginUserInfoVO loginUserInfoVO) {
+        log.info("当前登录信息"+loginUserInfoVO);
+        Boolean isExpertCheck=false;
+        Long expertId=null;
+        Boolean isStretAccount = isStreetAccount(loginUserInfoVO);
+        comEvent.setAppId(loginUserInfoVO.getAppId());
+        if (nonNull(comEvent.getUserType())){
+            if (comEvent.getUserType().equals(1)){
+                //个人账号权限
+                comEvent.setRequestUserId(loginUserInfoVO.getUserId());
+            }else if (comEvent.getUserType().equals(2) || loginUserInfoVO.getType().equals(13) || loginUserInfoVO.getType().equals(11)){
+                ComSanshuoExpert expert=new ComSanshuoExpert();
+                //专家账号权限(小程序和后台)
+                if (nonNull(loginUserInfoVO.getPhone())){
+                    expert = comSanShuoExpertService.getOne(new QueryWrapper<ComSanshuoExpert>().lambda().eq(ComSanshuoExpert::getPhone, loginUserInfoVO.getPhone()));
+                }else{
+                    //账号获取
+                    expert = comSanShuoExpertService.getOne(new QueryWrapper<ComSanshuoExpert>().lambda().eq(ComSanshuoExpert::getAccount, loginUserInfoVO.getAccount()));
+                }
+                comEvent.setUserType(2);
+                if (nonNull(expert)){
+                    comEvent.setSpecialistId(expert.getId());
+                    isExpertCheck=true;
+                    expertId=expert.getId();
+                }
+            }else if (loginUserInfoVO.getType().equals(12)){
+                //行业分中心权限
+                comEvent.setUserType(3);
+                //获取行业分中心id
+                ComSanshuoIndustryCenter center = comSanShuoIndustryCenterService.getOne(new QueryWrapper<ComSanshuoIndustryCenter>().lambda().eq(ComSanshuoIndustryCenter::getAccount, loginUserInfoVO.getAccount()));
+                if (nonNull(center)){
+                    comEvent.setCenterId(center.getId().toString());
+                }
+            }else if (loginUserInfoVO.getType().equals(3)){
+                //社区后台权限
+                comEvent.setUserType(4);
+                comEvent.setCommunityId(loginUserInfoVO.getCommunityId());
+            }else if (isStretAccount){
+                //街道权限,查看街道范围下的所有社区事件
+                //获取街道下属社区id
+                List<Long> cids = comActDAO.selectCommunityByStreetId(loginUserInfoVO.getStreetId());
+                comEvent.setUserType(5);
+                comEvent.setCommunityIds(cids);
+            }
+        }
+        if (nonNull(loginUserInfoVO.getAccount())){
+            if (loginUserInfoVO.getAccount().equals("admin")){
+                comEvent.setUserType(9);
+            }
+        }
+        IPage<ComEvent> list=null;
+        //是否为专家查看自己发布的事件
+        if (isExpertCheck && comEvent.getUserType()!=1){
+            List<Long> ids=comEventMapper.listEventIds(expertId);
+            if (ids!=null && ids.size()>0 ){
+                list = comEventMapper.pageByComEventExpert(ids, comEvent, pagination);
+            }
+            else
+            {
+                list = comEventMapper.pageByComEventExpert(null, comEvent, pagination);
+            }
+        }else{
+            list = baseMapper.pageByComEvent(comEvent, pagination);
+        }
+        if (list==null || list.getRecords().size() < 1) {
+            return R.ok(Collections.emptyList());
+        }
+        list.getRecords().forEach(comEvent1 -> {
+            List<ComEventResource> resourceList = comEventResourceService.list(new QueryWrapper<ComEventResource>().lambda().eq(ComEventResource::getRefId, comEvent1.getId()));
+            List<ComEventRequestImageVO> comEventRequestImageVO = CopyUtil.deepCopyListObject(resourceList, ComEventRequestImageVO.class);
+            comEvent1.setImages(comEventRequestImageVO);
+            if (nonNull(userService.getUserInfoByUserId(comEvent1.getRequestUserId().toString()).getData().getImageUrl())){
+                comEvent1.setIcon(userService.getUserInfoByUserId(comEvent1.getRequestUserId().toString()).getData().getImageUrl());
+            }
+            ComMediateType category = commediateTypeService.getById(comEvent1.getEventCategory());
+            comEvent1.setEventCategoryName(category.getName());
+            comEvent1.setHasPerm(hasPermission(comEvent1,loginUserInfoVO ));
+            this.accountMenu(comEvent1,comEvent.getUserType(),loginUserInfoVO,isStretAccount);
+            });
+        return R.ok(list);
+    }
+
+    /**
+     * 当前账号对事件的操作权限
+     * 1有权限 0无权限
+     * 1、用户提交调解申请后,调解专家状态为待受理,可操作受理、查看,专家所在部门状态为待受理,可操作受理(帮专家进行受理处理)、查看、删除,
+     * 所在部门上级部门状态为待受理,仅可查看、删除;ok
+     * 2、专家拒绝受理后,专家看不到该调解申请,所在单位状态变为待分配,可操作分配、调解、查看、删除,所在单位的上级单位状态变为待分配,仅可查看、删除; ok
+     * 3、专家受理后,专家状态变为调解中,可操作调解、查看,专家所在部门状态变为调解中,可操作调解、查看、删除,专家做在单位的上级单位状态变为调解中,仅可查看、删除;
+     * 4、专家调解调解完成未上报上级,专家状态变为已完成、可操作归档、查看,专家所在部门状态变为已完成,可操作归档、查看,专家所在部门的上级单位状态变为已完成,
+     * 可查看、删除;
+     * 5、专家所在部门调解完成未上报上级,专家状态变为已完成、可操作归档、查看,专家所在部门状态变为已完成,可操作归档、查看,专家所在部门的上级单位状态变为已完成,
+     * 可查看、删除;
+     * 6、专家调解完成上报上级,专家状态变为已完成、可操作归档、查看,专家所在部门状态变为待分配,可操作分配专家、调解、查看、删除,专家所在部门的上级单位状态变为调解中,可查看、删除;
+     * 7、专家所在部门调解完成上报上级,专家状态变为已完成、可操作归档、查看,专家所在部门状态变为已完成,可操作归档、查看、删除,专家所在部门的上级单位状态变为待分配,可分配专家、查看、删除,
+     * 上上级单位状态变为调解中,可查看、删除;
+     * 8、专家调解/专家所在部门调解未完成,专家状态变为调解中,可操作调解、查看,专家所在部门状态变为调解中,可操作更换专家、调解、查看、删除,专家所在部门的上级单位状态变为调解中,可查看、删除;
+     * 9、专家所在部门分配给专家后,专家状态变为待受理,可操作受理、查看,专家所在部门状态变为待受理,可操作受理(帮专家进行受理处理)、查看、删除,专家所在部门的上级部门状态变为待受理,
+     * 仅可查看、删除;
+     * 10、专家所在部门更换专家,原专家状态已完成,专家所在部门状态不变,专家所在部门的上级单位状态不变;
+     * */
+    public void accountMenu(ComEvent comEvent,Integer userType,LoginUserInfoVO loginUserInfoVO,Boolean isStreet){
+        //四个账号级别
+        Boolean isAdmin=false;
+        if (userType.equals(9)){
+            isAdmin=true;
+        }
+        comEvent.setDelete(1);
+        comEvent.setArchive(1);
+        comEvent.setSolve(1);
+        comEvent.setConciliation(1);
+        comEvent.setDistribution(1);
+        comEvent.setChangeExpert(1);
+        if (userType.equals(2)){
+            //专家后台权限,根据事件的流转信息决定专家对此事件的操作权限
+            //细分到事件的每个状态和流转情况
+            ComSanshuoExpert expert=new ComSanshuoExpert();
+            comEvent.setDistribution(0);
+            comEvent.setChangeExpert(0);
+            comEvent.setDelete(0);
+            if (nonNull(loginUserInfoVO.getPhone())){
+                expert = comSanShuoExpertService.getOne(new QueryWrapper<ComSanshuoExpert>().lambda().eq(ComSanshuoExpert::getPhone, loginUserInfoVO.getPhone()));
+            }else{
+                //账号获取
+                expert = comSanShuoExpertService.getOne(new QueryWrapper<ComSanshuoExpert>().lambda().eq(ComSanshuoExpert::getAccount, loginUserInfoVO.getAccount()));
+            }
+            if (!comEvent.getCurrentProcessType().equals(5)){
+                if (comEvent.getSpecialistId().equals(expert.getId()) && comEvent.getEventProcessStatus().equals(3)){
+                    //更高级别分配给该专家,可以受理
+                    comEvent.setConciliation(0);
+                    comEvent.setArchive(0);
+                    //comEvent.setSolve(0);
+                    return;
+                }
+                //已经上报或者重新分配专家,只能查看
+                comEvent.setConciliation(0);
+                //comEvent.setArchive(0);
+                comEvent.setSolve(0);
+                return;
+            }//未上报,根据状态决定权限
+            if (comEvent.getEventProcessStatus().equals(1)){
+                //待受理和待验证状态,仅有查看和受理权限,可能为用户选择该专家或上级单位分配给该专家
+                //关闭调解和归档
+                comEvent.setArchive(0);
+                comEvent.setConciliation(0);
+            }
+            else if (comEvent.getEventProcessStatus().equals(5)){
+                //调解中,可以查看,调解
+                comEvent.setArchive(0);
+                comEvent.setSolve(0);
+            }else if (comEvent.getEventProcessStatus().equals(3)){
+                //重新分配给该专家的事件,可以进行受理
+               // comEvent.setSolve(0);
+                comEvent.setConciliation(0);
+                comEvent.setArchive(0);
+            } else if (comEvent.getEventProcessStatus().equals(6)){
+                //调解完成,可以归档,查看
+                comEvent.setSolve(0);
+                comEvent.setConciliation(0);
+            }
+        }else if (userType.equals(4)){
+            //社区后台权限
+            //如果未上报到街道,当前事件权限和专家一样
+            if (comEvent.getCurrentProcessType().equals(5)){
+                //根据事件状态决定权限
+                if (comEvent.getEventProcessStatus().equals(1) ){
+                    //待受理和待验证状态,可以受理,分配专家
+                    //关闭调解和归档
+                    comEvent.setArchive(0);
+                    comEvent.setConciliation(0);
+                    comEvent.setChangeExpert(0);
+                    comEvent.setDistribution(0);
+                } else if(comEvent.getEventProcessStatus().equals(2)){
+                    //待分配和待验证状态,可以受理,分配专家
+                    //关闭调解和归档
+                    comEvent.setArchive(0);
+                    comEvent.setConciliation(0);
+                    comEvent.setChangeExpert(0);
+                    if (comEvent.getSpecialistName().equals("待分配")){
+                        comEvent.setSolve(0);
+                    }
+                }
+                else if (comEvent.getEventProcessStatus().equals(5)){
+                    //调解中,可以查看,调解,更换专家,删除
+                    comEvent.setDistribution(0);
+                    comEvent.setSolve(0);
+                    comEvent.setArchive(0);
+                } else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventSucceed().equals(2)){
+                    //调解完成,可以归档,查看
+                    comEvent.setSolve(0);
+                    comEvent.setDistribution(0);
+                    comEvent.setChangeExpert(0);
+                    comEvent.setConciliation(0);
+                }
+            }else if (comEvent.getCurrentProcessType().equals(2)){
+                //上报到社区后,增加分配专家权限
+                if (comEvent.getEventProcessStatus().equals(1) || comEvent.getEventProcessStatus().equals(2)){
+                    //待受理和待验证状态,可以受理,更换专家
+                    //关闭调解和归档
+                    comEvent.setArchive(0);
+                    comEvent.setConciliation(0);
+                    comEvent.setDistribution(0);
+                }
+                else if (comEvent.getEventProcessStatus().equals(3)){
+                    //分配新专家后
+                    comEvent.setDistribution(0);
+                    comEvent.setArchive(0);
+                    comEvent.setChangeExpert(0);
+                    comEvent.setSolve(0);
+                    comEvent.setEventResult(null);
+                    comEvent.setEventProcessStatus(1);
+                }else if (comEvent.getEventProcessStatus().equals(5)){
+                    //调解中,可以查看,调解,更换专家,删除
+                    comEvent.setSolve(0);
+                    comEvent.setArchive(0);
+                    comEvent.setDistribution(0);
+                } else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventResult().equals(1) && !comEvent.getIsEnd().equals(1)){
+                    //上报并且调解失败,此时事件的状态为6,事件结果为调解失败
+                    //comEvent.setDistribution(0);
+                    comEvent.setEventResult(null);
+                    comEvent.setEventProcessStatus(2);
+                    comEvent.setChangeExpert(0);
+                    comEvent.setSolve(0);
+                    //comEvent.setConciliation(0);
+                    comEvent.setArchive(0);
+                }else if (comEvent.getEventProcessStatus().equals(6)  && comEvent.getEventResult().equals(2) && comEvent.getEventSucceed().equals(2)){
+                    //调解完成,可以归档,查看
+                    //关闭所有权限
+                    comEvent.setDistribution(0);
+                    comEvent.setChangeExpert(0);
+                    comEvent.setSolve(0);
+                    comEvent.setConciliation(0);
+                    //comEvent.setArchive(0);
+                }
+                else if (comEvent.getEventProcessStatus().equals(6)  && comEvent.getEventSucceed().equals(2)){
+                    //调解完成,可以归档,查看
+                    //关闭所有权限
+                    comEvent.setDistribution(0);
+                    comEvent.setSolve(0);
+                    //comEvent.setArchive(0);
+                    comEvent.setChangeExpert(0);
+                    comEvent.setConciliation(0);
+                }
+
+            }
+            else{
+                //已上报到街道或三说会堂,社区没有分配和受理权限权限
+                comEvent.setDistribution(0);
+                comEvent.setChangeExpert(0);
+                //comEvent.setDelete(0);
+                comEvent.setSolve(0);
+                comEvent.setConciliation(0);
+            }
+        }else if (userType.equals(3)){
+            //分配行业分中心操作权限
+            //是否上报到行业分中心
+            if (comEvent.getCurrentProcessType().equals(1)){
+                //已经报到行业分中心
+                if (comEvent.getEventProcessStatus().equals(1) ){
+                    //待受理和待验证状态,可以受理,分配专家
+                    //关闭调解和归档
+                    comEvent.setArchive(0);
+                    comEvent.setConciliation(0);
+                }else if(comEvent.getEventProcessStatus().equals(2)){
+                    //待分配和待验证状态,可以受理,分配专家
+                    //关闭调解和归档
+                    comEvent.setArchive(0);
+                    comEvent.setConciliation(0);
+                    comEvent.setChangeExpert(0);
+                    if (comEvent.getSpecialistName().equals("待分配")){
+                        comEvent.setSolve(0);
+                    }
+                }
+                else if (comEvent.getEventProcessStatus().equals(3)){
+                    //分配新专家后
+                    comEvent.setDistribution(0);
+                    comEvent.setArchive(0);
+                    comEvent.setChangeExpert(0);
+                    comEvent.setSolve(0);
+                    comEvent.setEventResult(null);
+                    comEvent.setEventProcessStatus(1);
+                }else if (comEvent.getEventProcessStatus().equals(5)){
+                    //调解中,可以查看,调解,更换专家,删除
+                    comEvent.setDistribution(0);
+                    comEvent.setArchive(0);
+                    comEvent.setSolve(0);
+                }else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventResult().equals(1) && !comEvent.getIsEnd().equals(1)){
+                    //调解完成,可以归档,查看
+                    comEvent.setEventResult(null);
+                    comEvent.setEventProcessStatus(2);
+                    comEvent.setSolve(0);
+                    comEvent.setDistribution(0);
+                    //comEvent.setChangeExpert(0);
+                    //comEvent.setArchive(0);
+                    comEvent.setConciliation(0);
+                }else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventSucceed().equals(2)){
+                    //调解完成,可以归档,查看
+                    comEvent.setSolve(0);
+                    comEvent.setDistribution(0);
+                    comEvent.setChangeExpert(0);
+                    comEvent.setConciliation(0);
+                }
+            }else if (comEvent.getCurrentProcessType().equals(5)){
+                //根据事件状态决定权限
+                if (comEvent.getEventProcessStatus().equals(1) ){
+                    //待受理和待验证状态,可以受理,分配专家
+                    //关闭调解和归档
+                    comEvent.setArchive(0);
+                    comEvent.setConciliation(0);
+                    comEvent.setChangeExpert(0);
+                } else if(comEvent.getEventProcessStatus().equals(2)){
+                    //待分配和待验证状态,可以受理,分配专家
+                    //关闭调解和归档
+                    comEvent.setArchive(0);
+                    //comEvent.setConciliation(0);
+                    comEvent.setChangeExpert(0);
+                    if (comEvent.getSpecialistName().equals("待分配")){
+                        comEvent.setSolve(0);
+                    }
+                }
+                else if (comEvent.getEventProcessStatus().equals(5)){
+                    //调解中,可以查看,调解,更换专家,删除
+                    comEvent.setDistribution(0);
+                    comEvent.setSolve(0);
+                    comEvent.setArchive(0);
+                }else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventResult().equals(2) && comEvent.getEventSucceed().equals(2)){
+                    //调解完成并且成功,可以归档,查看
+                    comEvent.setSolve(0);
+                    comEvent.setDistribution(0);
+                    comEvent.setChangeExpert(0);
+                    comEvent.setConciliation(0);
+                }
+                else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventSucceed().equals(2)){
+                    //调解完成,可以归档,查看
+                    comEvent.setSolve(0);
+                    comEvent.setDistribution(0);
+                    comEvent.setChangeExpert(0);
+                    comEvent.setConciliation(0);
+                }
+            }
+            else{
+                //未上上报到行业分中心,或者已上报到区三说会堂,仅查看
+                //comEvent.setArchive(0);
+                comEvent.setSolve(0);
+                comEvent.setDistribution(0);
+                comEvent.setChangeExpert(0);
+                comEvent.setConciliation(0);
+
+            }
+        }else if (userType.equals(5)  || isStreet){
+            //街道权限,操作街道下属社区的所有事件
+            //是否上报到街道
+            if (comEvent.getCurrentProcessType().equals(3)){
+                //已上报到街道
+                if (comEvent.getEventProcessStatus().equals(1) ){
+                    //待受理和待验证状态,可以受理,分配专家
+                    //关闭调解和归档
+                    comEvent.setArchive(0);
+                    comEvent.setConciliation(0);
+                    comEvent.setChangeExpert(0);
+                    //comEvent.setDistribution(0);
+                    comEvent.setSolve(0);
+                } else if(comEvent.getEventProcessStatus().equals(2)){
+                    //待分配和待验证状态,可以受理,分配专家
+                    //关闭调解和归档
+                    comEvent.setArchive(0);
+                    comEvent.setConciliation(0);
+                    comEvent.setChangeExpert(0);
+                    if (comEvent.getSpecialistName().equals("待分配")){
+                        comEvent.setSolve(0);
+                    }
+                }else if (comEvent.getEventProcessStatus().equals(5)){
+                    //调解中,可以查看,调解,更换专家,删除
+                    comEvent.setDistribution(0);
+                    comEvent.setArchive(0);
+                    comEvent.setSolve(0);
+                }else if (comEvent.getEventProcessStatus().equals(3)){
+                    //分配新专家后
+                    comEvent.setDistribution(0);
+                    comEvent.setArchive(0);
+                    comEvent.setChangeExpert(0);
+                    comEvent.setSolve(0);
+                    comEvent.setEventResult(null);
+                    comEvent.setEventProcessStatus(1);
+                }
+                else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventResult().equals(1) && !comEvent.getIsEnd().equals(1)){
+                    //设置为待受理
+                    comEvent.setEventResult(null);
+                    comEvent.setEventProcessStatus(2);
+                    //上报到单位,并且调解失败,
+                    //调解完成,可以归档,查看
+                    comEvent.setSolve(0);
+                    //comEvent.setDistribution(0);
+                    comEvent.setChangeExpert(0);
+                    //comEvent.setConciliation(0);
+                    comEvent.setArchive(0);
+                }
+                else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventSucceed().equals(2)){
+                    //调解完成,可以归档,查看
+                    comEvent.setSolve(0);
+                    comEvent.setDistribution(0);
+                    comEvent.setChangeExpert(0);
+                    comEvent.setConciliation(0);
+                }
+            }else if (comEvent.getCurrentProcessType().equals(4)){
+                //未上报到街道,仅查看
+                comEvent.setSolve(0);
+                comEvent.setDistribution(0);
+                comEvent.setChangeExpert(0);
+                comEvent.setConciliation(0);
+
+            }else {
+                comEvent.setArchive(0);
+                comEvent.setSolve(0);
+                comEvent.setDistribution(0);
+                comEvent.setChangeExpert(0);
+                comEvent.setConciliation(0);
+            }
+        }else if (isAdmin){
+            //区三说会堂账号,最高权限全部开放
+            // 是否上报到三说会堂
+            if(comEvent.getCurrentProcessType()==null)
+            {
+                //未上报到三说会堂,仅查看
+                comEvent.setArchive(0);
+                comEvent.setSolve(0);
+                comEvent.setDistribution(0);
+                comEvent.setChangeExpert(0);
+                comEvent.setConciliation(0);
+            }
+            else
+            {
+                if (comEvent.getCurrentProcessType().equals(4) || comEvent.getReportHall().equals(1)){
+                    //已上报到三说会堂,可以操作
+                    if (comEvent.getEventProcessStatus().equals(1)){
+                        //待受理和待验证状态,可以受理,分配专家
+                        //关闭调解和归档
+                        comEvent.setArchive(0);
+                        comEvent.setSolve(0);
+                        comEvent.setConciliation(0);
+                        comEvent.setChangeExpert(0);
+                    }
+                    else if(comEvent.getEventProcessStatus().equals(2)){
+                        //待分配和待验证状态,可以受理,分配专家
+                        //关闭调解和归档
+                        comEvent.setArchive(0);
+                        comEvent.setConciliation(0);
+                        comEvent.setChangeExpert(0);
+                        if (comEvent.getSpecialistName().equals("待分配")){
+                            comEvent.setSolve(0);
+                        }
+                    }else if (comEvent.getEventProcessStatus().equals(3)){
+                        //新分配给专家并且专家还未受理
+                        comEvent.setDistribution(0);
+                        comEvent.setArchive(0);
+                        //comEvent.setConciliation(0);
+                        comEvent.setChangeExpert(0);
+                        comEvent.setSolve(0);
+                    }
+                    else if (comEvent.getEventProcessStatus().equals(5)){
+                        //调解中,可以查看,调解,更换专家,删除
+                        comEvent.setDistribution(0);
+                        comEvent.setSolve(0);
+                        comEvent.setArchive(0);
+                    } else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventResult().equals(1) && !comEvent.getIsEnd().equals(1)){
+                        //失败后转交三说会堂
+                        comEvent.setSolve(0);
+                        comEvent.setDistribution(0);
+                        //comEvent.setConciliation(0);
+                        comEvent.setEventProcessStatus(2);
+                        comEvent.setArchive(0);
+                        //comEvent.setChangeExpert(0);
+                    }
+                    else if (comEvent.getEventProcessStatus().equals(6) && comEvent.getEventSucceed().equals(2)){
+                        //调解完成,可以归档,查看
+                        comEvent.setConciliation(0);
+                        comEvent.setSolve(0);
+                        comEvent.setDistribution(0);
+                        comEvent.setChangeExpert(0);
+                    }
+                }else{
+                    //未上报到三说会堂,仅查看
+                    comEvent.setArchive(0);
+                    comEvent.setSolve(0);
+                    comEvent.setDistribution(0);
+                    comEvent.setChangeExpert(0);
+                    comEvent.setConciliation(0);
+                }
+            }
+
+        }
+    }
+
+    /**
+     * 当前账号是否有操作事件权限
+     * */
+    public Integer hasPermission(ComEvent comEvent,LoginUserInfoVO sysUser){
+        String account="";
+        Integer perm=1;
+
+        if(comEvent==null || sysUser == null )
+        {
+            return perm;
+        }
+
+        if (nonNull(sysUser.getAccount())){
+            account=sysUser.getAccount();
+        }
+        //上报级别是否匹配当前账号级别
+        if (sysUser.getType().equals(12) ){
+            if (comEvent.getCurrentProcessType()!=null && !comEvent.getCurrentProcessType().equals(1)){
+                perm=0;
+            }
+        }else if (StringUtils.equals("admin",account)){
+            if ( comEvent.getCurrentProcessType()!=null && comEvent.getCurrentProcessType()!=4){
+                perm=0;
+            }
+        }else if (isStreetAccount(sysUser)){
+            if (comEvent.getCurrentProcessType()!=null && comEvent.getCurrentProcessType()!=3){
+                perm=0;
+            }
+        }
+        return perm;
+    }
+    /**
+     * 是否为综治后台街道账号
+     * */
+    public Boolean isStreetAccount(LoginUserInfoVO sysUser){
+        Boolean flag=false;
+        String[] account={"glpz","qxpjd","tjdjd","dbdjd","yqjd","bcg","hmkjd","dhjd","jsgyy","dzhljd"};
+        if (nonNull(sysUser.getAccount())){
+            if (ArrayUtil.contains(account,sysUser.getAccount() )){
+                flag=true;
+            }
+        }
+        return flag;
+    }
+
+    @Override
+    public List<ComEvent> listByComEvent(ComEvent comEvent,LoginUserInfoVO loginUserInfoVO) {
+        List<ComEvent> list = baseMapper.listByComEvent(comEvent,null);
+        if (list.size() < 1) {
+            return Collections.emptyList();
+        }
+        return list;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R insertComEvent(ComEvent comEvent) {
+        ComSanshuoExpert expert = comSanShuoExpertService.getById(comEvent.getSpecialistId());
+        if (comEvent.getRequestUserCommunity() != null) {
+            //创建时处理级别都是专家
+            ComActDO community = comActDAO.selectById(comEvent.getRequestUserCommunity());
+            comEvent.setCurrentOrgName(community.getName());
+            comEvent.setCurrentOrgId(community.getCommunityId().toString());
+            comEvent.setCurrentProcessType(5);
+        }
+        if (!StringUtils.isEmpty(comEvent.getCenterId()))   {
+            //创建时处理级别都是专家
+            ComSanshuoIndustryCenter center = comSanShuoIndustryCenterService.getById(comEvent.getCenterId());
+            comEvent.setCurrentOrgName(center.getName());
+            comEvent.setCurrentOrgId(center.getId().toString());
+            comEvent.setCurrentProcessType(5);
+        }
+        if (StringUtils.isNotEmpty(comEvent.getCenterId())){
+            comEvent.setRequestUserCommunity(null);
+        }
+        comEvent.setUserEventStatus(2);
+        //设置为未上报
+        comEvent.setReportLevel(0);
+        comEvent.setEventProcessStatus(SanShuoEventStatusEnum.UNDO.getCode());
+        comEvent.setSpecialistName(expert.getName());
+        comEvent.setOrderSn(DateUtils.getDateFormatString(new Date(), "yyyyMMddHHmmss") + RandomUtils.nextLong(1, 10000));
+        comEvent.setInvalid(true);
+        comEvent.setId(Snowflake.getId());
+        comEvent.setSubmitDate(new Date());
+        comEvent.setCreateAt(new Date());
+        comEvent.setCreateBy(comEvent.getRequestUserId());
+        comEvent.setUpdateBy(comEvent.getRequestUserId());
+        comEvent.setUpdateAt(new Date());
+        boolean flag = save(comEvent);
+        //推送消息到专家微信
+        sendMessage(comEvent.getSpecialistId(),comEvent);
+        //添加一条对应记录
+        comEventMapper.insertEventAndExpertRecord(comEvent.getId(),expert.getId(),0);
+        if (!flag) {
+            return R.fail(ReturnMsgConstants.DATA_EXIST);
+        }
+        //提交不视为一次流转记录,不保存图片
+        saveEventImageList(comEvent.getImages(), comEvent.getId(),null,1);
+        return R.ok(ReturnMsgConstants.SAVE_SUCCESS);
+    }
+
+    public void sendMessage(Long expertId,ComEvent comEvent){
+        if (nonNull(comEvent.getRequestUserCommunity()) && comEvent.getRequestUserCommunity().equals(10172)){
+            return;
+        }
+        //获取专家的openId
+        ComSanshuoExpert expert = comSanShuoExpertService.getById(expertId);
+        SysUser sysUser = sysUserDao.selectOne(new QueryWrapper<SysUser>().lambda().eq(SysUser::getPhone, expert.getPhone()).eq(SysUser::getType, 1).eq(SysUser::getAppId,"wx0cef797390444b75" ));
+        SanShuoMessageVO vo=new SanShuoMessageVO();
+        if (isNull(sysUser)){
+            return;
+        }
+        if (isNull(sysUser.getOpenid())){
+           log.info("专家未登陆APP,无法推送");
+           return;
+        }
+        vo.setTouser(sysUser.getOpenid());
+        vo.setThing1(commediateTypeService.getById(comEvent.getEventCategory()).getName());
+        vo.setThing5("您有一个新的调解事件需处理");
+        vo.setThing2(comEvent.getRequestUserName());
+        vo.setTime3(DateUtil.now());
+        WXMessageUtil.sendStatusMessage(vo);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean saveEventImageList(List<ComEventRequestImageVO> images, Long id,Long transferId,Integer status) {
+        List<ComEventResource> comEventResourceList = new ArrayList<>();
+        if (!StringUtils.isEmpty(images)) {
+            List<ComEventRequestImageVO> imagesList = images;
+            imagesList.forEach(comEventRequestImageVO -> {
+                ComEventResource comEventResource = new ComEventResource();
+                comEventResource.setId(Snowflake.getId());
+                comEventResource.setRefId(id);
+                comEventResource.setTransferId(transferId);
+                comEventResource.setStatus(status);
+                comEventResource.setType(1);
+                comEventResource.setResourceName(comEventRequestImageVO.getName());
+                comEventResource.setResourceSize(comEventRequestImageVO.getSize());
+                comEventResource.setUrl(comEventRequestImageVO.getUrl());
+                comEventResource.setDeleteFlag(false);
+                comEventResourceList.add(comEventResource);
+            });
+        }
+        return comEventResourceService.saveBatch(comEventResourceList);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R updateComEvent(ComEvent comEvent) {
+/*        if (checkExist(comEvent.getOrderSn(), comEvent.getId())) {
+            return R.fail(ReturnMsgConstants.DATA_EXIST);
+        }*/
+        //清除专家信息
+        comEvent.setSpecialistId(null);
+        comEvent.setSpecialistName(null);
+        int flag = baseMapper.updateById(comEvent);
+        return flag > 0 ? R.ok(comEvent, ReturnMsgConstants.UPDATE_SUCCESS) : R.fail(ReturnMsgConstants.UPDATE_FALSE);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R updateEnabled(Long id, Boolean enabled) {
+        ComEvent comEvent = baseMapper.selectById(id);
+        if (comEvent == null) {
+            return R.fail(ReturnMsgConstants.DATA_NOT_EXIST);
+        }
+        comEvent.setInvalid(enabled);
+        Boolean flag = updateById(comEvent);
+        return flag ? R.ok(comEvent, ReturnMsgConstants.UPDATE_SUCCESS) : R.fail(ReturnMsgConstants.UPDATE_FALSE);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R conciliationEvent(ComEventConciliationVO comEventConciliationVO, LoginUserInfoVO loginUserInfo) {
+        ComEvent comEvent = baseMapper.selectById(comEventConciliationVO.getId());
+        comEvent.setEventSucceed(comEventConciliationVO.getEventSucceed());
+        comEvent.setEventResult(comEventConciliationVO.getEventResult());
+        comEvent.setReportSuperior(comEventConciliationVO.getReportSuperior());
+        ComEventTransferRecord comEventTransferRecord = new ComEventTransferRecord();
+        if(comEventConciliationVO.getEventSucceed().equals(2)){
+            comEvent.setEventProcessStatus(6);
+        }
+        comEvent.setCurrentEventProcessResult(comEventConciliationVO.getCurrentEventProcessResult());
+        //如果当前请求,需要上报上级进行处理
+        if (comEventConciliationVO.getReportSuperior()) {
+            //判断当前的处理级别
+            if (comEvent.getCurrentProcessType() == 5) {
+                //获取专家账号级别决定上报的级别
+                ComSanshuoExpert expert = comSanShuoExpertService.getById(comEvent.getSpecialistId());
+                if (expert.getLevel().equals(4)){
+                    //上报到社区
+                    //查询社区账号,由专家转交到社区
+                    comEvent.setCurrentProcessType(2);
+                    comEvent.setSpecialistName("待分配");
+                    comEvent.setSpecialistId(99999L);
+                    comEvent.setReportCommunity(1);
+                    ComActDO comActDO = comActDAO.selectById(expert.getCommunityId());
+                    comEvent.setCurrentOrgId(comActDO.getStreetId().toString());
+                    //生成一次流转记录
+                    comEvent.setCurrentEventProcessResult("(专家上报到"+comActDO.getName()+")"+comEventConciliationVO.getCurrentEventProcessResult());
+                    //更改当前处理部门
+                    comEvent.setCurrentOrgName(comActDO.getName()+"调解站");
+                    comEventTransferRecord.setFromId(comEvent.getSpecialistId());
+                    comEventTransferRecord.setToId(Long.parseLong(comEvent.getCurrentOrgId()));
+                    comEventTransferRecord.setReportLevel(4);
+                    comEvent.setReportLevel(4);
+                }else if (expert.getLevel().equals(2)){
+                    //上报到行业分中心
+                    comEvent.setReportCenter(1);
+                    comEvent.setCurrentProcessType(1);
+                    comEvent.setCurrentOrgId(expert.getIndustryCenterId().toString());
+                    comEvent.setSpecialistName("待分配");
+                    comEvent.setSpecialistId(99999L);
+                    //生成一次流转记录
+                    ComSanshuoIndustryCenter center = comSanShuoIndustryCenterService.getById(comEvent.getCurrentOrgId());
+                    comEvent.setCurrentEventProcessResult("(专家上报到"+center.getName()+")"+comEventConciliationVO.getCurrentEventProcessResult());
+                    comEvent.setCurrentOrgName(expert.getUnit());
+                    comEventTransferRecord.setFromId(comEvent.getSpecialistId());
+                    comEventTransferRecord.setToId(expert.getIndustryCenterId());
+                    comEventTransferRecord.setReportLevel(3);
+                    comEvent.setReportLevel(3);
+                }
+            }else if (comEvent.getCurrentProcessType() == 1){
+                //行业分中心上报到区三说会堂
+                comEvent.setCurrentProcessType(4);
+                comEvent.setCurrentOrgId("99999");
+                //生成一次流转记录
+                comEvent.setReportHall(1);
+                comEvent.setCurrentEventProcessResult("(行业分中心上报到区三说会堂中心)"+comEventConciliationVO.getCurrentEventProcessResult());
+                comEvent.setCurrentOrgName("区三说会堂");
+                comEventTransferRecord.setFromId(comEvent.getSpecialistId());
+                comEventTransferRecord.setToId(99999L);
+                comEventTransferRecord.setReportLevel(5);
+                comEvent.setReportLevel(5);
+            }else if(comEvent.getCurrentProcessType() == 2){
+                //社区上报到街道
+                comEvent.setCurrentProcessType(3);
+                //获取街道id
+                comEvent.setReportStreet(1);
+                ComActDO comActDO = comActDAO.selectOne(new QueryWrapper<ComActDO>().lambda().eq(ComActDO::getCommunityId, comEvent.getRequestUserCommunity()).eq(ComActDO::getAppId, "wx0cef797390444b75"));
+                comEvent.setCurrentOrgId(comActDO.getStreetId().toString());
+                //生成一次流转记录
+                comEvent.setCurrentEventProcessResult("(社区上报到"+comStreetDAO.selectById(comActDO.getStreetId()).getName()+")"+comEventConciliationVO.getCurrentEventProcessResult());
+                comEvent.setCurrentOrgName(comStreetDAO.selectById(comActDO.getStreetId()).getName()+"调解站");
+                comEventTransferRecord.setFromId(comEvent.getRequestUserCommunity());
+                comEventTransferRecord.setToId(comActDO.getStreetId());
+                comEventTransferRecord.setReportLevel(2);
+                comEvent.setReportLevel(2);
+            }else if(comEvent.getCurrentProcessType() == 3){
+                //街道上报到区三说会堂
+                comEvent.setCurrentProcessType(4);
+                comEvent.setReportHall(1);
+                comEvent.setCurrentOrgId("99999");
+                comEvent.setCurrentOrgName("区三说会堂");
+                //生成一次流转记录
+                comEvent.setCurrentEventProcessResult("(街道上报到区三说会堂中心)"+comEventConciliationVO.getCurrentEventProcessResult());
+                comEventTransferRecord.setFromId(Long.parseLong(comEvent.getCurrentOrgId()));
+                comEventTransferRecord.setReportLevel(1);
+                comEvent.setReportLevel(1);
+            }else {
+                //已是最高上报级别,无法上报
+            }
+        }
+
+        //是否为已完成并且不上报
+        if (!comEventConciliationVO.getReportSuperior() && comEventConciliationVO.getEventSucceed().equals(2)){
+            comEvent.setIsEnd(1);
+        }
+        int flag = baseMapper.updateById(comEvent);
+        comEventTransferRecord.setEventId(comEvent.getId());
+        comEventTransferRecord.setSave(true);
+        comEventTransferRecord.setProcessResult(comEvent.getCurrentEventProcessResult());
+        comEventTransferRecord.setProcessResultData(new Date().toString());
+        comEventTransferRecord.setProcessDate(new Date());
+        comEventTransferRecord.setProcessBy(loginUserInfo.getUserId());
+        comEventTransferRecord.setProcessByName(loginUserInfo.getName());
+        comEventTransferRecord.setProcessType(1);
+        comEventTransferRecord.setCreateAt(new Date());
+        comEventTransferRecord.setSpecialistId(comEvent.getSpecialistId());
+        comEventTransferRecord.setSpecialistOrg(comEvent.getCurrentOrgId());
+        comEventTransferRecord.setSpecialistLevel(comEvent.getSpecialistLevel());
+        comEventTransferRecord.setSpecialistName(comEvent.getSpecialistName());
+        comEventTransferRecord.setEventResult(comEvent.getEventSucceed());
+        comEventTransferRecord.setEventStatus(comEvent.getEventProcessStatus());
+        //雪花id失效,使用eventId随机生成
+        comEventTransferRecord.setId(Snowflake.getId());
+        //saveEventImageList(comEvent.getImages(),comEvent.getId(),comEventTransferRecord.getId(),4);
+        saveEventImageList(comEventConciliationVO.getImages(), comEventConciliationVO.getId(),comEventTransferRecord.getId(),4);
+        comEventTransferRecordService.insertComEventTransferRecord(comEventTransferRecord);
+        return flag > 0 ? R.ok() : R.fail(ReturnMsgConstants.UPDATE_FALSE);
+    }
+
+    /**
+     * 创建上报记录
+     * */
+    public  void createTransferLog(ComEventTransferRecord record) {
+        record.setId(Snowflake.getId());
+        comEventTransferRecordService.insertComEventTransferRecord(record);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R cancelRequest(Long id) {
+        ComEvent comEvent = baseMapper.selectById(id);
+        if (comEvent.getEventProcessStatus() == SanShuoEventStatusEnum.UNDO.getCode().intValue()
+                || comEvent.getEventProcessStatus() == SanShuoEventStatusEnum.VALID.getCode().intValue()) {
+            comEvent.setId(id);
+            comEvent.setUserEventStatus(4);
+            comEvent.setEventProcessStatus(9);
+            comEvent.setRevokeDes("用户手动取消");
+            comEvent.setRevokeDate(new Date());
+            int flag = baseMapper.updateById(comEvent);
+            return flag > 0 ? R.ok() : R.fail(ReturnMsgConstants.UPDATE_FALSE);
+        } else {
+            return R.fail("当前申请已经受理,不能取消!");
+        }
+    }
+
+    @Override
+    public HashMap detail(String id) {
+        HashMap map = new HashMap(3);
+        ComEventDetailVO comEventDetailVO = new ComEventDetailVO();
+        ComEvent comEvent = baseMapper.selectById(id);
+        ComSanshuoExpert specter = comSanShuoExpertService.getById(comEvent.getSpecialistId());
+        CopyUtil.copyProperties(comEvent, comEventDetailVO);
+        comEventDetailVO.setCategoryName(commediateTypeService.getById(comEventDetailVO.getEventCategory()).getName());
+        List<ComEventResource> resourceList = comEventResourceService.list(new QueryWrapper<ComEventResource>().lambda().eq(ComEventResource::getRefId, id)
+                .eq(ComEventResource::getStatus,1));
+        List<ComEventRequestImageVO> comEventRequestImageVO = CopyUtil.deepCopyListObject(resourceList, ComEventRequestImageVO.class);
+        comEventDetailVO.setImages(comEventRequestImageVO);
+        map.put("specter", specter);
+        map.put("eventDetail", comEventDetailVO);
+        List<ComEventTransferRecord> archiveLog=new ArrayList<>();
+        List<ComEventTransferRecord> transferRecord = comEventTransferRecordService.list(new QueryWrapper<ComEventTransferRecord>().lambda().eq(ComEventTransferRecord::getEventId, id).orderByDesc(ComEventTransferRecord::getCreateAt));
+        transferRecord.forEach(comEventTransferRecord -> {
+            List<ComEventResource> list = comEventResourceService.list(new QueryWrapper<ComEventResource>().lambda().eq(ComEventResource::getRefId, comEvent.getId()).notIn(ComEventResource::getStatus,(1)).eq(ComEventResource::getTransferId, comEventTransferRecord.getId()));
+            List<ComEventRequestImageVO> ImageVO = CopyUtil.deepCopyListObject(list, ComEventRequestImageVO.class);
+            comEventTransferRecord.setImages(ImageVO);
+            if (comEventTransferRecord.getEventStatus().equals(7)){
+                archiveLog.add(comEventTransferRecord);
+            }
+        });
+        map.put("archiveLog", archiveLog);
+        //迭代器迭代删除归档记录
+        Iterator<ComEventTransferRecord> iterator = transferRecord.iterator();
+        while (iterator.hasNext()){
+            ComEventTransferRecord comEventTransferRecord = iterator.next();
+            if (comEventTransferRecord.getEventStatus().equals(7)){
+                iterator.remove();
+            }
+        }
+        map.put("transferLog", transferRecord);
+        List<ComEventResource> resource = comEventResourceService.list(new QueryWrapper<ComEventResource>().lambda().eq(ComEventResource::getRefId, id)
+                .eq(ComEventResource::getStatus, 5));
+        map.put("archiveImage", resource);
+        map.put("contact", getPhone(comEvent));
+        return map;
+    }
+
+    public String getPhone(ComEvent comEvent)
+    {
+        if(comEvent==null)
+        {
+            return  "";
+        }
+        if (isNull(comEvent.getRequestUserCommunity())){
+            ComSanshuoIndustryCenter sanshuoIndustryCenter=comSanShuoIndustryCenterService.getById(comEvent.getCenterId());
+            if(sanshuoIndustryCenter==null)
+            {
+                return "";
+            }
+            else
+            {
+                return sanshuoIndustryCenter.getPhone();
+            }
+
+        }else {
+            ComActDO comActDO=comActDAO.selectById(comEvent.getRequestUserCommunity());
+            if(comActDO!=null)
+            {
+                String contactsPhone = comActDO.getContactsPhone();
+                if (isNull(contactsPhone)){
+                    return "";
+                }
+                else
+                {
+                    return contactsPhone;
+                }
+            }
+            return "";
+        }
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R acceptRequest(Long id, Long specterId) {
+        ComEvent comEvent = new ComEvent();
+        comEvent.setId(id);
+        comEvent.setSpecialistId(specterId);
+        ComSanshuoExpert specter = comSanShuoExpertService.getById(specterId);
+        comEvent.setSpecialistAcceptTime(new Date());
+        comEvent.setSpecialistName(specter.getName());
+        comEvent.setEventProcessStatus(SanShuoEventStatusEnum.conciliation.getCode());
+        int flag = baseMapper.updateById(comEvent);
+        return flag > 0 ? R.ok() : R.fail(ReturnMsgConstants.UPDATE_FALSE);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R reappoint(Long id, Long specialistId) {
+        ComEvent comEvent = new ComEvent();
+        comEvent.setId(id);
+        comEvent.setSpecialistId(specialistId);
+        ComSanshuoExpert specter = comSanShuoExpertService.getById(specialistId);
+        comEvent.setSpecialistAcceptTime(new Date());
+        comEvent.setSpecialistName(specter.getName());
+        comEvent.setEventProcessStatus(SanShuoEventStatusEnum.VALID.getCode());
+        int flag = baseMapper.updateById(comEvent);
+        ComEvent comEvent1 = comEventMapper.selectById(id);
+        sendMessage(specialistId,comEvent1 );
+        //添加一条对应记录
+        comEventMapper.insertEventAndExpertRecord(id, specialistId,1);
+        return flag > 0 ? R.ok() : R.fail(ReturnMsgConstants.UPDATE_FALSE);
+    }
+
+    @Override
+    public R calculate(LoginUserInfoVO loginUserInfoVO,Integer level,Long id) {
+        ComEvent comEvent=new ComEvent();
+        Boolean isExpertCheck=false;
+        Long expertId=null;
+        Boolean isStretAccount = isStreetAccount(loginUserInfoVO);
+        if (loginUserInfoVO.getType().equals(13) || loginUserInfoVO.getType().equals(11)){
+                ComSanshuoExpert expert=new ComSanshuoExpert();
+                //专家后台账号
+            if (nonNull(loginUserInfoVO.getPhone())){
+                    expert = comSanShuoExpertService.getOne(new QueryWrapper<ComSanshuoExpert>().lambda().eq(ComSanshuoExpert::getPhone, loginUserInfoVO.getPhone()));
+            }else{
+                    //账号获取
+                    expert = comSanShuoExpertService.getOne(new QueryWrapper<ComSanshuoExpert>().lambda().eq(ComSanshuoExpert::getAccount, loginUserInfoVO.getAccount()));
+            }
+            comEvent.setUserType(2);
+            if (nonNull(expert)){
+                    comEvent.setSpecialistId(expert.getId());
+                    isExpertCheck=true;
+                    expertId=expert.getId();
+//                    level=expert.getLevel();
+//                    id=expert.getCommunityId();
+                    comEvent.setCommunityId(expert.getCommunityId());
+            }
+
+
+            }else if (loginUserInfoVO.getType().equals(12)){
+                //行业分中心权限
+                comEvent.setUserType(3);
+                //获取行业分中心id
+                ComSanshuoIndustryCenter center = comSanShuoIndustryCenterService.getOne(new QueryWrapper<ComSanshuoIndustryCenter>().lambda().eq(ComSanshuoIndustryCenter::getAccount, loginUserInfoVO.getAccount()));
+                if (nonNull(center)){
+                    comEvent.setCenterId(center.getId().toString());
+                }
+            }else if (loginUserInfoVO.getType().equals(3)){
+                //社区后台权限
+                comEvent.setUserType(4);
+                comEvent.setCommunityId(loginUserInfoVO.getCommunityId());
+            }else if (isStretAccount){
+                //街道权限,查看街道范围下的所有社区事件
+                //获取街道下属社区id
+                List<Long> cids = comActDAO.selectCommunityByStreetId(loginUserInfoVO.getStreetId());
+                comEvent.setUserType(5);
+                comEvent.setCommunityIds(cids);
+        }
+        if (isExpertCheck){
+            List<Long> eventIds = comEventMapper.listEventIds(expertId);
+            if(eventIds!=null && eventIds.size()>0){
+
+                //获取该专家的所有事件
+                comEvent.setEventIds(eventIds);
+            }
+        }
+        if (nonNull(loginUserInfoVO.getAccount())){
+            if (loginUserInfoVO.getAccount().equals("admin")){
+                comEvent.setUserType(9);
+            }
+        }
+        log.info("当前userType===="+comEvent.getUserType());
+        //comEvent.setAppId(loginUserInfoVO.getAppId());
+//        R<LoginUserInfoVO> r = userService.detailUser(loginUserInfoVO.getUserId());
+//        LoginUserInfoVO user = r.getData();
+        LoginUserInfoVO user = loginUserInfoVO;
+        if (nonNull(user.getAppId())){
+            comEvent.setAppId(user.getAppId());
+        }
+        if (nonNull(level) && nonNull(id)){
+            comEvent.setLevel(level);
+            comEvent.setSearchId(id);
+            comEvent.setUserType(null);
+        }
+        List<ComEventCalculateVO> calculateList = baseMapper.calculate(comEvent);
+        ComEventCalculateVO comEventCalculateVO =new ComEventCalculateVO();
+        comEventCalculateVO.setStatus("0");
+        comEventCalculateVO.setSum(baseMapper.caculateSum(comEvent)+"");
+        calculateList.add(comEventCalculateVO);
+        return R.ok(calculateList);
+    }
+
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R archiveRequest(ComEventArchiveVO comEventArchiveVO, LoginUserInfoVO sysUser) {
+        ComEvent comEvent = baseMapper.selectById(comEventArchiveVO.getId());
+        //不再设置已归档状态
+//        if (comEvent.getEventSucceed() == 2) {
+//            comEvent.setEventProcessStatus(7);
+//        } else {
+//            comEvent.setEventProcessStatus(6);
+//        }
+        comEvent.setResult(comEventArchiveVO.getResult());
+        baseMapper.updateById(comEvent);
+        ComEventTransferRecord comEventTransferRecord = new ComEventTransferRecord();
+        comEventTransferRecord.setEventId(comEvent.getId());
+        comEventTransferRecord.setSave(true);
+        comEventTransferRecord.setProcessResult(comEventArchiveVO.getResult());
+        comEventTransferRecord.setProcessResultData(new Date().toString());
+        comEventTransferRecord.setProcessDate(new Date());
+        comEventTransferRecord.setProcessBy(sysUser.getUserId());
+        comEventTransferRecord.setProcessByName(sysUser.getName());
+        comEventTransferRecord.setProcessType(1);
+        comEventTransferRecord.setCreateAt(new Date());
+        comEventTransferRecord.setSpecialistId(comEvent.getSpecialistId());
+        comEventTransferRecord.setSpecialistOrg(comEvent.getCurrentOrgId());
+        comEventTransferRecord.setSpecialistLevel(comEvent.getSpecialistLevel());
+        comEventTransferRecord.setSpecialistName(comEvent.getSpecialistName());
+        comEventTransferRecord.setEventResult(comEvent.getEventSucceed());
+        comEventTransferRecord.setFromUserId(sysUser.getUserId());
+        //归档操作统一设置为7
+        comEventTransferRecord.setEventStatus(7);
+        comEventTransferRecord.setId(Snowflake.getId());
+        saveEventImageList(comEventArchiveVO.getImages(), comEvent.getId(), comEventTransferRecord.getId(), 5);
+        return comEventTransferRecordService.insertComEventTransferRecord(comEventTransferRecord);
+    }
+
+
+    /**
+     * 大屏事件统计
+     * @param indexDataDTO  查询入参
+     * */
+    @Override
+    public R indexData(IndexDateDTO indexDataDTO) {
+        IndexDateVO vo = comEventMapper.dateAnalysis(indexDataDTO,DateUtil.beginOfMonth(new Date()),DateUtil.endOfMonth(new Date()));
+        //计算率
+        if (nonNull(vo.getSuccess()) && !vo.getSuccess().equals(0)){
+            if (nonNull(vo.getAccepted()) && !vo.getAccepted().equals(0)){
+                //计算成功率
+                try {
+                    vo.setSuccessRate(NumberUtil.div(vo.getSuccess(),vo.getAccepted(),2));
+                }catch (NullPointerException e){
+                    vo.setSuccessRate(new BigDecimal(0));
+                }
+
+            }
+        }
+        vo.setExpert(comSanshuoExpertDao.selectExpertCount(indexDataDTO));
+        //查询当前级别下的专家
+        //折线图X轴
+        List<Date> dates = pastTwelveMoth();
+        vo.setX(getYAndM(dates));
+        //新增
+        List<Integer> Y1=new ArrayList<>();
+        List<Integer> Y2=new ArrayList<>();
+        for (Date date : dates) {
+            Y1.add(comEventMapper.dateAnalysisY(date,DateUtil.endOfMonth(date),indexDataDTO));
+            Y2.add(comEventMapper.dateAnalysisYTwo(date,DateUtil.endOfMonth(date),indexDataDTO));
+        }
+        vo.setY1(Y1);
+        vo.setY2(Y2);
+        return R.ok(vo);
+    }
+
+
+    @Override
+    public R eventIndexData(Integer type) {
+        //获取事件总数
+        Integer eventCount = comEventMapper.selectCount(new QueryWrapper<ComEvent>().notIn("event_process_status",(9)));
+        if (type.equals(1)){
+            //受理级别占比
+            List<EventRateVO> eventRateVOS = comEventMapper.eventRate();
+            //获取专家受理的数量
+            Integer expertCount=comEventMapper.expertSolveCountCommunity();
+            //获取行业分中心受理数量
+            Integer centerCount=comEventMapper.expertSolveCountCenter();
+            for (EventRateVO eventRateVO : eventRateVOS) {
+                if (nonNull(eventRateVO)){
+                    eventRateVO.setName(typeToName(eventRateVO.getType()));
+//                    if (eventRateVO.getCurrentProcessType().equals(2)){
+//                        eventRateVO.setCount(eventRateVO.getCount()+expertCount);
+//                    }
+//                    if (eventRateVO.getCurrentProcessType().equals(1)){
+//                        eventRateVO.setCount(eventRateVO.getCount()+centerCount);
+//                    }
+                    if (nonNull(eventCount) && !eventCount.equals(0)){
+                        //计算占比
+                        eventRateVO.setRate(NumberUtil.div(eventRateVO.getCount(),eventCount,2));
+                    }
+                }
+            }
+            return R.ok(eventRateVOS);
+        }else if (type.equals(2)){
+            //专家级别
+            List<EventRateVO> eventRateVOS = comEventMapper.expertRate();
+            for (EventRateVO eventRateVO : eventRateVOS) {
+                if (nonNull(eventRateVO)){
+                    eventRateVO.setName(typeToNameExpert(eventRateVO.getType()));
+                    if (nonNull(eventCount) && !eventCount.equals(0)){
+                        //计算占比
+                        eventRateVO.setRate(NumberUtil.div(eventRateVO.getCount(),eventCount,2));
+                    }
+                }
+            }
+            return R.ok(eventRateVOS);
+        }else{
+            //事件类型占比
+            List<EventRateVO> eventRateVOS = comEventMapper.mediateTypeRate();
+            for (EventRateVO eventRateVO : eventRateVOS) {
+                if (nonNull(eventRateVO)){
+                    if (nonNull(eventCount) && !eventCount.equals(0)){
+                        //计算占比
+                        eventRateVO.setRate(NumberUtil.div(eventRateVO.getCount(),eventCount,2));
+                    }
+                }
+            }
+            return R.ok(eventRateVOS);
+        }
+    }
+
+    @Override
+    public void updateEventStransferRecord(Long id) {
+        ComEvent comEvent = comEventMapper.selectById(id);
+        comEventMapper.updateLog(id,comEvent.getSpecialistId());
+    }
+
+    @Override
+    public R listStreetScreen() {
+        return R.ok(comStreetDAO.selectList(new QueryWrapper<ComStreetDO>().eq("app_id", "wx0cef797390444b75").in("name",("大宝鼎街道"),("格里坪镇"),("河门口街道"),("清香坪街道"),("陶家渡街道"),("玉泉街道"))));
+    }
+
+    @Override
+    public R listCommunityScreen() {
+        return R.ok(comActDAO.selectList(new QueryWrapper<ComActDO>().lambda().eq(ComActDO::getAppId, "wx0cef797390444b75").in(ComActDO::getStreetId,("1552661139563876352"),("1552661132500668416"),("1552661143879815168"),("1552661138704044032"),("1552661135428292608"),("1552661136451702784"))));
+    }
+
+    public String typeToName(Integer type){
+        switch (type){
+            case 1:
+                return "行业分中心受理";
+            case 3:
+                return "镇/街道受理案件";
+            case 2:
+                return "村/社区受理案件";
+            case 4:
+                return "区三说会堂中心受理";
+        }
+        return null;
+    }
+
+    public String typeToNameExpert(Integer type){
+        switch (type){
+            case 1:
+                return "区三说会堂中心专家";
+            case 2:
+                return "行业分中心专家";
+            case 3:
+                return "镇/街道调解专家";
+            case 4:
+                return "村/社区调解专家";
+        }
+        return null;
+    }
+
+    /**
+     * 过去12个月的月份
+     * */
+    private List<Date> pastTwelveMoth(){
+        List<Date> list=new ArrayList<>();
+        Date now = new Date();
+        for (int i = 0; i < 12; i++) {
+            //本月
+            DateTime dateTime = DateUtil.beginOfMonth(now);
+            DateUtil.format(dateTime,"yyyy-MM-dd");
+            list.add(dateTime);
+            //减一天进入下一个月
+            now=DateUtil.offsetDay(dateTime,-1);
+        }
+        return list;
+    }
+
+    /**
+     * 截取年,月
+     * */
+    private List<String> getYAndM(List<Date> dateList){
+        List<String> list=new ArrayList<>();
+        for (Date date : dateList) {
+            list.add(DateUtil.format(date,"yyyy-MM").toString());
+        }
+        return list;
+    }
+
+
+    private Boolean checkExist(String sn, Long id) {
+        ComEvent comEvent = new ComEvent();
+        comEvent.setOrderSn(sn);
+        QueryWrapper<ComEvent> queryWrapper = new QueryWrapper<>(comEvent);
+        if (id != null) {
+            queryWrapper.ne("id", id);
+        }
+        Integer count = baseMapper.selectCount(queryWrapper);
+        return count > 0;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventTransferRecordServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventTransferRecordServiceImpl.java
new file mode 100644
index 0000000..c1d2b7f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComEventTransferRecordServiceImpl.java
@@ -0,0 +1,79 @@
+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.constants.ReturnMsgConstants;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.service_community.dao.ComEventMapper;
+import com.panzhihua.service_community.dao.ComEventTransferRecordMapper;
+import com.panzhihua.service_community.entity.ComEventTransferRecord;
+import com.panzhihua.service_community.service.IComEventTransferRecordService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.Collections;
+import java.util.Date;
+import java.util.List;
+
+import static java.util.Objects.isNull;
+
+/**
+ * Description 三说会堂事件流转表业务层实现类
+ * ClassName   ComEventTransferRecordServiceImpl
+ *
+ * @author manailin
+ * @date 2022-09-07 11:23:52
+ */
+@Slf4j
+@Service("comEventTransferRecordService")
+public class ComEventTransferRecordServiceImpl extends ServiceImpl<ComEventTransferRecordMapper, ComEventTransferRecord> implements IComEventTransferRecordService {
+
+    @Resource
+    private ComEventTransferRecordMapper comEventTransferRecordMapper;
+    @Override
+    public R pageByComEventTransferRecord(ComEventTransferRecord comEventTransferRecord, Page pagination) {
+        IPage<ComEventTransferRecord> list = baseMapper.pageByComEventTransferRecord(comEventTransferRecord, pagination);
+        if (list.getRecords().size() < 1) {
+            return R.ok(Collections.emptyList());
+        }
+        return R.ok(list);
+    }
+
+    @Override
+    public List<ComEventTransferRecord> listByComEventTransferRecord(ComEventTransferRecord comEventTransferRecord) {
+        List<ComEventTransferRecord> list = baseMapper.listByComEventTransferRecord(comEventTransferRecord);
+        if (list.size() < 1) {
+            return Collections.emptyList();
+        }
+        return list;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R insertComEventTransferRecord(ComEventTransferRecord comEventTransferRecord) {
+        if (isNull(comEventTransferRecord.getId())){
+            comEventTransferRecord.setId(Snowflake.getId());
+        }
+        comEventTransferRecord.setCreateAt(new Date());
+        int i = comEventTransferRecordMapper.insertSelective(comEventTransferRecord);
+        if (!(i>0)) {
+            return R.fail(ReturnMsgConstants.DATA_EXIST);
+        }
+        return R.ok(ReturnMsgConstants.SAVE_SUCCESS);
+    }
+
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R updateComEventTransferRecord(ComEventTransferRecord comEventTransferRecord) {
+        int flag = baseMapper.updateById(comEventTransferRecord);
+        return flag > 0 ? R.ok(comEventTransferRecord, ReturnMsgConstants.UPDATE_SUCCESS) : R.fail(ReturnMsgConstants.UPDATE_FALSE);
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComExServicemanServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComExServicemanServiceImpl.java
new file mode 100644
index 0000000..908ff54
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComExServicemanServiceImpl.java
@@ -0,0 +1,45 @@
+package com.panzhihua.service_community.service.impl;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Service;
+
+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.model.dtos.community.ComExServicemanDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComExServicemanVO;
+import com.panzhihua.service_community.dao.ComExServicemanDAO;
+import com.panzhihua.service_community.model.dos.ComExServicemanDO;
+import com.panzhihua.service_community.service.ComExServicemanService;
+
+/**
+ * @description: 退役军人
+ * @author: txb
+ * @date: 2021/7/15 16:00
+ */
+@Service
+public class ComExServicemanServiceImpl extends ServiceImpl<ComExServicemanDAO, ComExServicemanDO>
+    implements ComExServicemanService {
+
+    @Resource
+    private ComExServicemanDAO comExServicemanDAO;
+
+    @Override
+    public R getPageExServiceman(ComExServicemanDTO comExServicemanDTO) {
+        Page page = new Page<>();
+        Long pageNum = comExServicemanDTO.getPageNum();
+        Long pageSize = comExServicemanDTO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<ComExServicemanVO> iPage = comExServicemanDAO.pageQueryComExServiceman(page, comExServicemanDTO);
+        return R.ok(iPage);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComFmsClassroomServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComFmsClassroomServiceImpl.java
new file mode 100644
index 0000000..765583b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComFmsClassroomServiceImpl.java
@@ -0,0 +1,232 @@
+package com.panzhihua.service_community.service.impl;
+
+import static java.util.Objects.isNull;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.model.dtos.community.fms.PageFmsEventAdminDTO;
+import com.panzhihua.common.model.vos.community.fms.FmsEventTopStatisticsVO;
+import com.panzhihua.common.model.vos.community.fms.FmsEventVO;
+import com.panzhihua.common.model.vos.grid.EventResourceVO;
+import com.panzhihua.common.model.vos.grid.EventVO;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.dao.EventMapper;
+import com.panzhihua.service_community.model.dos.EventResourceDO;
+import com.panzhihua.service_community.service.EventResourceService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.community.fms.AddFmsClassroomAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.EditFmsClassroomAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageFmsClassroomAdminDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.fms.ComFmsClassroomVO;
+import com.panzhihua.service_community.dao.ComFmsClassroomDAO;
+import com.panzhihua.service_community.entity.ComFmsClassroom;
+import com.panzhihua.service_community.service.ComFmsClassroomService;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 五微服务-微学堂(ComFmsClassroom)表服务实现类
+ *
+ * @author makejava
+ * @since 2022-02-11 13:35:52
+ */
+@Service("comFmsClassroomService")
+public class ComFmsClassroomServiceImpl extends ServiceImpl<ComFmsClassroomDAO, ComFmsClassroom>
+    implements ComFmsClassroomService {
+
+    @Resource
+    private EventMapper eventMapper;
+    @Resource
+    private EventResourceService eventResourceService;
+
+    /**
+     * 后台新增微讲堂
+     * @param adminDTO
+     * @return
+     */
+    @Override
+    public R addFmsClassroom(AddFmsClassroomAdminDTO adminDTO) {
+        ComFmsClassroom fmsClassroom = new ComFmsClassroom();
+        BeanUtils.copyProperties(adminDTO, fmsClassroom);
+        int num = this.baseMapper.insert(fmsClassroom);
+        if (num > 0) {
+            return R.ok();
+        }
+        return R.fail("操作失败,请重新尝试");
+    }
+
+    /**
+     * 后台编辑微讲堂
+     * @param adminDTO
+     * @return
+     */
+    @Override
+    public R editFmsClassroom(EditFmsClassroomAdminDTO adminDTO) {
+        ComFmsClassroom comFmsClassroom = this.baseMapper.selectById(adminDTO.getId());
+        if (isNull(comFmsClassroom)) {
+            return R.fail("资源不存在");
+        }
+        BeanUtils.copyProperties(adminDTO, comFmsClassroom);
+        int num = this.baseMapper.updateById(comFmsClassroom);
+        if (num > 0) {
+            return R.ok();
+        }
+        return R.fail("操作失败,请重新尝试");
+    }
+
+    /**
+     * 后台删除微讲堂
+     * @param id
+     * @return
+     */
+    @Override
+    public R deleteFmsClassroom(Long id) {
+        this.baseMapper.deleteById(id);
+        return R.ok();
+    }
+
+    /**
+     * 后台获取微讲堂详情
+     * @param id
+     * @return
+     */
+    @Override
+    public R detailFmsClassroom(Long id) {
+        ComFmsClassroom comFmsClassroom = this.baseMapper.selectById(id);
+        if (isNull(comFmsClassroom)) {
+            return R.fail("资源不存在");
+        }
+        ComFmsClassroomVO comFmsClassroomVO = new ComFmsClassroomVO();
+        BeanUtils.copyProperties(comFmsClassroom, comFmsClassroomVO);
+        return R.ok(comFmsClassroomVO);
+    }
+
+    /**
+     * 后台分页查询微讲堂
+     * @param adminDTO
+     * @return
+     */
+    @Override
+    public R pageFmsClassroomAdmin(PageFmsClassroomAdminDTO adminDTO) {
+        Page page = new Page<>();
+        page.setCurrent(adminDTO.getPageNum());
+        page.setSize(adminDTO.getPageSize());
+        return R.ok(this.baseMapper.pageFmsClassroomAdmin(page, adminDTO));
+    }
+
+    /**
+     * 微讲堂顶部统计
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R statisticsFmsClassroom(Long communityId) {
+        return R.ok(this.baseMapper.statisticsFmsClassroom(communityId));
+    }
+
+    /**
+     * 后台分页查询微调节/微防控
+     * @param adminDTO
+     * @return
+     */
+    @Override
+    public R pageFmsEvent(PageFmsEventAdminDTO adminDTO) {
+        Page page = new Page<>();
+        page.setCurrent(adminDTO.getPageNum());
+        page.setSize(adminDTO.getPageSize());
+        return R.ok(this.baseMapper.pageFmsEvent(page, adminDTO));
+    }
+
+    /**
+     * 微调节/微防控顶部统计
+     * @param type
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R statisticsFmsEvent(Integer type, Long communityId) {
+        return R.ok(this.baseMapper.statisticsFmsEvent(type, communityId));
+    }
+
+    /**
+     * 小程序获取微讲堂详情
+     * @param id
+     * @return
+     */
+    @Override
+    public R detailFmsClassroomApplets(Long id) {
+        ComFmsClassroom comFmsClassroom = this.baseMapper.selectById(id);
+        if (isNull(comFmsClassroom)) {
+            return R.fail("资源不存在");
+        }
+        //增加浏览量
+        comFmsClassroom.setViewNum(comFmsClassroom.getViewNum() + 1);
+        this.baseMapper.updateById(comFmsClassroom);
+        ComFmsClassroomVO comFmsClassroomVO = new ComFmsClassroomVO();
+        BeanUtils.copyProperties(comFmsClassroom, comFmsClassroomVO);
+        return R.ok(comFmsClassroomVO);
+    }
+
+    /**
+     * 小程序分页查询微调节/微防控
+     * @param adminDTO
+     * @return
+     */
+    @Override
+    public R pageFmsEventApplets(PageFmsEventAdminDTO adminDTO) {
+        Page page = new Page();
+        page.setCurrent(adminDTO.getPageNum());
+        page.setSize(adminDTO.getPageSize());
+        IPage<EventVO> ipage = this.baseMapper.pageFmsEventApplets(page, adminDTO);
+        if (ipage != null) {
+            List<EventVO> eventVOList = ipage.getRecords();
+            eventVOList.forEach(eventVO -> {
+                List<EventResourceDO> eventResourceDOList =
+                        eventResourceService.getBaseMapper().selectList(new LambdaQueryWrapper<EventResourceDO>()
+                                .eq(EventResourceDO::getClassification, 1).eq(EventResourceDO::getRefId, eventVO.getId()));
+                List<EventResourceVO> picList = new ArrayList<>();
+                List<EventResourceVO> audioList = new ArrayList<>();
+                List<EventResourceVO> videoList = new ArrayList<>();
+                eventResourceDOList.forEach(eventResourceDO -> {
+                    switch (eventResourceDO.getType()) {
+                        case 1:
+                            EventResourceVO picEventResourceVO = new EventResourceVO();
+                            BeanUtils.copyProperties(eventResourceDO, picEventResourceVO);
+                            picList.add(picEventResourceVO);
+                            break;
+                        case 2:
+                            EventResourceVO audioResourceVO = new EventResourceVO();
+                            BeanUtils.copyProperties(eventResourceDO, audioResourceVO);
+                            audioList.add(audioResourceVO);
+                            break;
+                        case 3:
+                            EventResourceVO videoResourceVO = new EventResourceVO();
+                            BeanUtils.copyProperties(eventResourceDO, videoResourceVO);
+                            videoList.add(videoResourceVO);
+                            break;
+                    }
+                });
+                eventVO.setAudios(audioList);
+                eventVO.setPics(picList);
+                eventVO.setVideos(videoList);
+
+                // 查询网格员头像
+                Map<String, String> userMap = eventMapper.getGridMemberImageUrl(eventVO.getGridMemberId());
+                if (StringUtils.isNotEmpty(userMap)) {
+                    eventVO.setGridMemberName(userMap.get("nick_name"));
+                    eventVO.setGridMemberImageUrl(userMap.get("image_url"));
+                }
+            });
+            return R.ok(ipage);
+        }
+        return R.fail();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComFmsServiceEvaluationsServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComFmsServiceEvaluationsServiceImpl.java
new file mode 100644
index 0000000..e3f67db
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComFmsServiceEvaluationsServiceImpl.java
@@ -0,0 +1,54 @@
+package com.panzhihua.service_community.service.impl;
+
+import static java.util.Objects.isNull;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.community.fms.EvaluationFmsServiceDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.dao.ComFmsServiceDAO;
+import com.panzhihua.service_community.dao.ComFmsServiceEvaluationsDAO;
+import com.panzhihua.service_community.entity.ComFmsService;
+import com.panzhihua.service_community.entity.ComFmsServiceEvaluations;
+import com.panzhihua.service_community.service.ComFmsServiceEvaluationsService;
+
+/**
+ * 五微服务-服务评价(ComFmsServiceEvaluations)表服务实现类
+ *
+ * @author makejava
+ * @since 2022-02-11 13:35:53
+ */
+@Service("comFmsServiceEvaluationsService")
+public class ComFmsServiceEvaluationsServiceImpl extends
+    ServiceImpl<ComFmsServiceEvaluationsDAO, ComFmsServiceEvaluations> implements ComFmsServiceEvaluationsService {
+
+    @Resource
+    private ComFmsServiceDAO comFmsServiceDAO;
+
+    /**
+     * 微服务评价
+     * @param evaluationFmsServiceDTO
+     * @return
+     */
+    @Override
+    public R evaluateFmsService(EvaluationFmsServiceDTO evaluationFmsServiceDTO) {
+        ComFmsService comFmsService = comFmsServiceDAO.selectById(evaluationFmsServiceDTO.getServiceId());
+        if (isNull(comFmsService)) {
+            return R.fail("资源不存在");
+        }
+        ComFmsServiceEvaluations evaluations = new ComFmsServiceEvaluations();
+        BeanUtils.copyProperties(evaluationFmsServiceDTO, evaluations);
+        int num = this.baseMapper.insert(evaluations);
+        if (num > 0) {
+            comFmsService.setServiceStatus(ComFmsService.ServiceStatus.ywc);
+            comFmsService.setUpdatedBy(evaluationFmsServiceDTO.getUserId());
+            comFmsServiceDAO.updateById(comFmsService);
+            return R.ok();
+        }
+        return R.fail("操作失败,请重新尝试");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComFmsServiceRecordServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComFmsServiceRecordServiceImpl.java
new file mode 100644
index 0000000..e2ab1cc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComFmsServiceRecordServiceImpl.java
@@ -0,0 +1,19 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.service_community.dao.ComFmsServiceRecordDAO;
+import com.panzhihua.service_community.entity.ComFmsServiceRecord;
+import com.panzhihua.service_community.service.ComFmsServiceRecordService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 五微服务-服务记录(ComFmsServiceRecord)表服务实现类
+ *
+ * @author makejava
+ * @since 2022-02-11 13:35:54
+ */
+@Service("comFmsServiceRecordService")
+public class ComFmsServiceRecordServiceImpl extends ServiceImpl<ComFmsServiceRecordDAO, ComFmsServiceRecord>
+    implements ComFmsServiceRecordService {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComFmsServiceServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComFmsServiceServiceImpl.java
new file mode 100644
index 0000000..8eee21d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComFmsServiceServiceImpl.java
@@ -0,0 +1,423 @@
+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 javax.annotation.Resource;
+
+import com.panzhihua.service_community.dao.ComFmsTeamMemberDAO;
+import com.panzhihua.service_community.entity.ComFmsTeamMember;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+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.model.dtos.community.fms.AddFmsServiceAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.ApplyFmsServiceDTO;
+import com.panzhihua.common.model.dtos.community.fms.ApprovalFmsServiceAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.FeedbackFmsServiceDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageFmsServiceAdminDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageFmsServiceAppletsDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.fms.ComFmsServiceEvaluateVO;
+import com.panzhihua.common.model.vos.community.fms.ComFmsServiceImportExcelVO;
+import com.panzhihua.common.model.vos.community.fms.ComFmsServiceRecordVO;
+import com.panzhihua.common.model.vos.community.fms.ComFmsServiceVO;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.service_community.dao.ComFmsServiceDAO;
+import com.panzhihua.service_community.dao.ComFmsServiceEvaluationsDAO;
+import com.panzhihua.service_community.dao.ComFmsServiceRecordDAO;
+import com.panzhihua.service_community.entity.ComFmsService;
+import com.panzhihua.service_community.entity.ComFmsServiceEvaluations;
+import com.panzhihua.service_community.entity.ComFmsServiceRecord;
+import com.panzhihua.service_community.service.ComFmsServiceService;
+
+/**
+ * 五微服务-微服务(ComFmsService)表服务实现类
+ *
+ * @author makejava
+ * @since 2022-02-11 13:35:53
+ */
+@Service("comFmsServiceService")
+public class ComFmsServiceServiceImpl extends ServiceImpl<ComFmsServiceDAO, ComFmsService>
+    implements ComFmsServiceService {
+
+    @Resource
+    private ComFmsServiceRecordDAO comFmsServiceRecordDAO;
+    @Resource
+    private ComFmsServiceEvaluationsDAO comFmsServiceEvaluationsDAO;
+    @Resource
+    private ComFmsTeamMemberDAO comFmsTeamMemberDAO;
+
+    /**
+     * 后台新增微服务
+     * @param adminDTO
+     * @return
+     */
+    @Override
+    public R addFmsServiceAdmin(AddFmsServiceAdminDTO adminDTO) {
+        ComFmsService comFmsService = new ComFmsService();
+        BeanUtils.copyProperties(adminDTO, comFmsService);
+        comFmsService.setServiceStatus(ComFmsService.ServiceStatus.ywc);
+        comFmsService.setApprovalAt(new Date());
+        int num = this.baseMapper.insert(comFmsService);
+        if (num > 0) {
+            //服务记录
+            ComFmsServiceRecord comFmsServiceRecord = new ComFmsServiceRecord();
+            comFmsServiceRecord.setServiceId(comFmsService.getId());
+            comFmsServiceRecord.setContent(adminDTO.getServiceProcess());
+            comFmsServiceRecord.setImage(adminDTO.getProcessImage());
+            comFmsServiceRecord.setStage(ComFmsServiceRecord.Stage.WCFW);
+            comFmsServiceRecord.setCreatedBy(adminDTO.getCreatedBy());
+            comFmsServiceRecordDAO.insert(comFmsServiceRecord);
+            //默认好评
+            ComFmsServiceEvaluations evaluation = new ComFmsServiceEvaluations();
+            evaluation.setServiceId(comFmsService.getId());
+            evaluation.setStarLevel(5);
+            evaluation.setEvaluateContent("系统默认好评!");
+            evaluation.setUserId(comFmsService.getUserId());
+            comFmsServiceEvaluationsDAO.insert(evaluation);
+            return R.ok();
+        }
+        return R.fail("操作失败,请重新尝试");
+    }
+
+    /**
+     * 后台分页查询微服务
+     * @param adminDTO
+     * @return
+     */
+    @Override
+    public R pageFmsServiceAdmin(PageFmsServiceAdminDTO adminDTO) {
+        Page page = new Page<>();
+        page.setSize(adminDTO.getPageSize());
+        page.setCurrent(adminDTO.getPageNum());
+        return R.ok(this.baseMapper.pageFmsServiceAdmin(page, adminDTO));
+    }
+
+    /**
+     * 后台核实微服务
+     * @param adminDTO
+     * @return
+     */
+    @Override
+    public R approvalFmsService(ApprovalFmsServiceAdminDTO adminDTO) {
+        ComFmsService comFmsService = this.baseMapper.selectById(adminDTO.getServiceId());
+        if (isNull(comFmsService)) {
+            return R.fail("资源不存在");
+        }
+        comFmsService.setServiceStatus(adminDTO.getIsPass() ? ComFmsService.ServiceStatus.jxz : ComFmsService.ServiceStatus.wtg);
+        comFmsService.setApprovalContent(adminDTO.getContent());
+        comFmsService.setApprovalAt(new Date());
+        if (adminDTO.getIsPass()) {
+            comFmsService.setMemberId(adminDTO.getMemberId());
+        }
+        comFmsService.setUpdatedBy(adminDTO.getUpdatedBy());
+        int num = this.baseMapper.updateById(comFmsService);
+        if (num > 0) {
+            ComFmsServiceRecord comFmsServiceRecord = new ComFmsServiceRecord();
+            comFmsServiceRecord.setServiceId(comFmsService.getId());
+            comFmsServiceRecord.setContent(adminDTO.getContent());
+            comFmsServiceRecord.setStage(adminDTO.getIsPass() ? ComFmsServiceRecord.Stage.SHTG : ComFmsServiceRecord.Stage.HSBTG);
+            comFmsServiceRecord.setCreatedBy(adminDTO.getUpdatedBy());
+            comFmsServiceRecordDAO.insert(comFmsServiceRecord);
+            return R.ok();
+        }
+        return R.fail("操作失败,请重新尝试");
+    }
+
+    /**
+     * 后台查看微服务详情
+     * @param serviceId
+     * @return
+     */
+    @Override
+    public R detailFmsServiceAdmin(Long serviceId) {
+        ComFmsServiceVO serviceVO = this.baseMapper.detailFmsServiceAdmin(serviceId);
+        if (isNull(serviceVO)) {
+            return R.fail("资源不存在");
+        }
+        List<ComFmsServiceRecord> serviceRecords = comFmsServiceRecordDAO.selectList(new LambdaQueryWrapper<ComFmsServiceRecord>()
+                .eq(ComFmsServiceRecord::getServiceId, serviceId)
+                .orderByDesc(ComFmsServiceRecord::getCreatedAt));
+        if (!serviceRecords.isEmpty()) {
+            List<ComFmsServiceRecordVO> recordVOList = new ArrayList<>();
+            serviceRecords.forEach(e -> {
+                ComFmsServiceRecordVO recordVO = new ComFmsServiceRecordVO();
+                BeanUtils.copyProperties(e, recordVO);
+                recordVOList.add(recordVO);
+            });
+            serviceVO.setServiceRecords(recordVOList);
+        }
+        return R.ok(serviceVO);
+    }
+
+    /**
+     * 后台删除微服务
+     * @param serviceId
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R deleteFmsServiceAdmin(Long serviceId) {
+        int num = this.baseMapper.deleteById(serviceId);
+        if (num > 0) {
+            comFmsServiceRecordDAO.delete(new LambdaQueryWrapper<ComFmsServiceRecord>().eq(ComFmsServiceRecord::getServiceId, serviceId));
+            comFmsServiceEvaluationsDAO.delete(new LambdaQueryWrapper<ComFmsServiceEvaluations>().eq(ComFmsServiceEvaluations::getServiceId, serviceId));
+            return R.ok();
+        }
+        return R.fail("操作失败,请重新尝试");
+    }
+
+    /**
+     * 微服务顶部统计
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R statisticsFmsService(Long communityId) {
+        return R.ok(this.baseMapper.statisticsFmsService(communityId));
+    }
+
+    /**
+     * 后台导入微服务数据
+     * @param voList
+     * @param communityId
+     * @param userId
+     * @return
+     */
+    @Override
+    public R listSaveFmsServiceExcelVO(List<ComFmsServiceImportExcelVO> voList, Long communityId, Long userId) {
+        voList.forEach(e -> {
+            ComFmsService comFmsService = new ComFmsService();
+            BeanUtils.copyProperties(e, comFmsService);
+            comFmsService.setCommunityId(communityId);
+            comFmsService.setCreatedBy(userId);
+            comFmsService.setUpdatedBy(userId);
+            comFmsService.setServiceStatus(ComFmsService.ServiceStatus.ywc);
+            int num = this.baseMapper.insert(comFmsService);
+            if (num > 0) {
+                ComFmsServiceRecord comFmsServiceRecord = new ComFmsServiceRecord();
+                comFmsServiceRecord.setServiceId(comFmsService.getId());
+                comFmsServiceRecord.setContent(e.getServiceProcess());
+                comFmsServiceRecord.setStage(ComFmsServiceRecord.Stage.WCFW);
+                comFmsServiceRecord.setCreatedBy(userId);
+                comFmsServiceRecordDAO.insert(comFmsServiceRecord);
+
+                //默认好评
+                ComFmsServiceEvaluations evaluation = new ComFmsServiceEvaluations();
+                evaluation.setServiceId(comFmsService.getId());
+                evaluation.setStarLevel(5);
+                evaluation.setEvaluateContent("系统默认好评!");
+                evaluation.setUserId(comFmsService.getUserId());
+                comFmsServiceEvaluationsDAO.insert(evaluation);
+            }
+        });
+        return R.ok();
+    }
+
+    /**
+     * 小程序分页查询微服务
+     * @param adminDTO
+     * @return
+     */
+    @Override
+    public R pageFmsServiceApplets(PageFmsServiceAppletsDTO adminDTO) {
+        Page page = new Page<>();
+        page.setSize(adminDTO.getPageSize());
+        page.setCurrent(adminDTO.getPageNum());
+        return R.ok(this.baseMapper.pageFmsServiceAdminApplets(page, adminDTO));
+    }
+
+    /**
+     * 小程序查看微服务详情
+     * @param serviceId
+     * @param userId
+     * @return
+     */
+    @Override
+    public R detailFmsServiceApplets(Long serviceId, Long userId) {
+        ComFmsServiceVO serviceDetail = this.baseMapper.detailFmsServiceApplets(serviceId);
+        if (nonNull(serviceDetail)) {
+            List<ComFmsServiceRecord> serviceRecords = comFmsServiceRecordDAO.selectList(new LambdaQueryWrapper<ComFmsServiceRecord>()
+                    .eq(ComFmsServiceRecord::getServiceId, serviceId)
+                    .orderByDesc(ComFmsServiceRecord::getCreatedAt));
+            if (!serviceRecords.isEmpty()) {
+                List<ComFmsServiceRecordVO> recordVOList = new ArrayList<>();
+                serviceRecords.forEach(e -> {
+                    ComFmsServiceRecordVO recordVO = new ComFmsServiceRecordVO();
+                    BeanUtils.copyProperties(e, recordVO);
+                    recordVOList.add(recordVO);
+                });
+                serviceDetail.setServiceRecords(recordVOList);
+            }
+            ComFmsServiceEvaluations evaluation = comFmsServiceEvaluationsDAO.selectOne(new LambdaQueryWrapper<ComFmsServiceEvaluations>()
+                    .eq(ComFmsServiceEvaluations::getServiceId, serviceId));
+            if (nonNull(evaluation)) {
+                ComFmsServiceEvaluateVO evaluateVO = new ComFmsServiceEvaluateVO();
+                BeanUtils.copyProperties(evaluation, evaluateVO);
+                serviceDetail.setEvaluateVO(evaluateVO);
+            }
+            serviceDetail.setIsMyself(nonNull(userId) && userId.equals(serviceDetail.getUserId()));
+            if (serviceDetail.getServiceStatus().equals(ComFmsService.ServiceStatus.dpj)) {
+                Date autoEvaluateAt = DateUtils.addDay(serviceDetail.getCreatedAt(), 3);
+                Date nowDate = new Date();
+                serviceDetail.setAutoEvaluateAt(autoEvaluateAt.getTime() - nowDate.getTime());
+            }
+        }
+        return R.ok(serviceDetail);
+    }
+
+    /**
+     * 微服务申请
+     * @param adminDTO
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R applyFmsService(ApplyFmsServiceDTO adminDTO) {
+        LoginUserInfoVO userInfo = adminDTO.getUserInfo();
+        ComFmsService comFmsService = new ComFmsService();
+        BeanUtils.copyProperties(adminDTO, comFmsService);
+        comFmsService.setCommunityId(userInfo.getCommunityId());
+        comFmsService.setCreatedBy(userInfo.getUserId());
+        comFmsService.setUpdatedBy(userInfo.getUserId());
+        comFmsService.setUserId(userInfo.getUserId());
+        comFmsService.setUserName(userInfo.getNickName());
+        comFmsService.setPhone(userInfo.getPhone());
+        int num = this.baseMapper.addBracelet(comFmsService);
+        if (num > 0) {
+            ComFmsServiceRecord comFmsServiceRecord = new ComFmsServiceRecord();
+            comFmsServiceRecord.setServiceId(Long.valueOf(baseMapper.getLastId()));
+            comFmsServiceRecord.setContent(adminDTO.getServiceContent());
+            comFmsServiceRecord.setImage(adminDTO.getServiceImage());
+            comFmsServiceRecord.setStage(ComFmsServiceRecord.Stage.TJFWSQ);
+            comFmsServiceRecord.setCreatedBy(userInfo.getUserId());
+            comFmsServiceRecordDAO.insertOneBatch(comFmsServiceRecord);
+            return R.ok();
+        }
+        return R.fail("操作失败,请重新尝试");
+    }
+
+    /**
+     * 分页查询我的微服务
+     * @param adminDTO
+     * @return
+     */
+    @Override
+    public R pageMyFmsService(PageFmsServiceAppletsDTO adminDTO) {
+        Page page = new Page<>();
+        page.setSize(adminDTO.getPageSize());
+        page.setCurrent(adminDTO.getPageNum());
+        IPage<ComFmsServiceVO> serviceVOIPage = this.baseMapper.pageMyFmsService(page, adminDTO);
+        List<ComFmsServiceVO> serviceVOList = serviceVOIPage.getRecords();
+        if (!serviceVOList.isEmpty()) {
+            serviceVOList.forEach(e -> {
+                if (e.getServiceStatus().equals(ComFmsService.ServiceStatus.dpj)) {
+                    Date autoEvaluateAt = DateUtils.addDay(e.getCreatedAt(), 3);
+                    Date nowDate = new Date();
+                    e.setAutoEvaluateAt(autoEvaluateAt.getTime() - nowDate.getTime());
+                }
+            });
+        }
+        return R.ok(serviceVOList);
+    }
+
+    /**
+     * 微团队成员分页查询服务处理
+     * @param adminDTO
+     * @return
+     */
+    @Override
+    public R pageDealFmsService(PageFmsServiceAppletsDTO adminDTO) {
+        Page page = new Page<>();
+        page.setSize(adminDTO.getPageSize());
+        page.setCurrent(adminDTO.getPageNum());
+        LoginUserInfoVO userInfo = adminDTO.getUserInfo();
+        ComFmsTeamMember comFmsTeamMember = comFmsTeamMemberDAO.selectOne(new LambdaQueryWrapper<ComFmsTeamMember>()
+                .eq(ComFmsTeamMember::getPhone, userInfo.getPhone())
+                .eq(ComFmsTeamMember::getCommunityId, userInfo.getCommunityId()));
+        if (nonNull(comFmsTeamMember)) {
+            adminDTO.setMemberId(comFmsTeamMember.getId());
+        }
+        return R.ok(this.baseMapper.pageDealFmsService(page, adminDTO));
+    }
+
+    /**
+     * 微团队成员服务反馈
+     * @param adminDTO
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R feedbackFmsService(FeedbackFmsServiceDTO adminDTO) {
+        ComFmsService comFmsService = this.baseMapper.selectById(adminDTO.getServiceId());
+        if (isNull(comFmsService)) {
+            return R.fail("资源不存在");
+        }
+        if (isNull(comFmsService.getMemberId())) {
+            return R.fail("还未分配服务人员");
+        }
+        LoginUserInfoVO userInfo = adminDTO.getUserInfo();
+        ComFmsTeamMember comFmsTeamMember = comFmsTeamMemberDAO.selectOne(new LambdaQueryWrapper<ComFmsTeamMember>()
+                .eq(ComFmsTeamMember::getPhone, userInfo.getPhone())
+                .eq(ComFmsTeamMember::getCommunityId, userInfo.getCommunityId()));
+        if (isNull(comFmsTeamMember) || !comFmsService.getMemberId().equals(comFmsTeamMember.getId())) {
+            return R.fail("不是指定的分配服务人员");
+        }
+        Boolean isEnd = adminDTO.getIsEnd();
+        ComFmsServiceRecord comFmsServiceRecord = new ComFmsServiceRecord();
+        comFmsServiceRecord.setServiceId(comFmsService.getId());
+        comFmsServiceRecord.setContent(adminDTO.getFeedbackContent());
+        comFmsServiceRecord.setImage(adminDTO.getImage());
+        comFmsServiceRecord.setStage(isEnd ? ComFmsServiceRecord.Stage.WCFW : ComFmsServiceRecord.Stage.FWFK);
+        comFmsServiceRecord.setCreatedBy(adminDTO.getUserId());
+        int num = comFmsServiceRecordDAO.insert(comFmsServiceRecord);
+        if (num > 0) {
+            if (isEnd) {
+                comFmsService.setServiceStatus(ComFmsService.ServiceStatus.dpj);
+                comFmsService.setServiceAt(new Date());
+                this.baseMapper.updateById(comFmsService);
+            }
+            return R.ok();
+        }
+        return R.fail("操作失败,请重新尝试");
+    }
+
+    /**
+     * 定时任务针对服务结束后3天还未评价的用户默认好评
+     * @return
+     */
+    @Override
+    public R defaultPraise() {
+        List<ComFmsService> fmsServiceList = this.baseMapper.selectList(new QueryWrapper<ComFmsService>().lambda()
+                .eq(ComFmsService::getServiceStatus, ComFmsService.ServiceStatus.dpj)
+                .le(ComFmsService::getServiceAt, DateUtils.addDay(new Date(), -3)));
+        if (!fmsServiceList.isEmpty()) {
+            List<ComFmsServiceEvaluations> evaluations = new ArrayList<>();
+            fmsServiceList.forEach(e -> {
+                ComFmsServiceEvaluations evaluation = new ComFmsServiceEvaluations();
+                evaluation.setServiceId(e.getId());
+                evaluation.setStarLevel(5);
+                evaluation.setEvaluateContent("系统默认好评!");
+                evaluation.setUserId(e.getUserId());
+                evaluations.add(evaluation);
+            });
+            int num = comFmsServiceEvaluationsDAO.insertBatch(evaluations);
+            if (num > 0) {
+                fmsServiceList.forEach(e -> e.setServiceStatus(ComFmsService.ServiceStatus.ywc));
+                this.updateBatchById(fmsServiceList);
+            }
+        }
+        return R.ok();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComFmsTeamMemberRelationServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComFmsTeamMemberRelationServiceImpl.java
new file mode 100644
index 0000000..8021a88
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComFmsTeamMemberRelationServiceImpl.java
@@ -0,0 +1,19 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.service_community.dao.ComFmsTeamMemberRelationDAO;
+import com.panzhihua.service_community.entity.ComFmsTeamMemberRelation;
+import com.panzhihua.service_community.service.ComFmsTeamMemberRelationService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 五微服务-团队&成员关系表(ComFmsTeamMemberRelation)表服务实现类
+ *
+ * @author makejava
+ * @since 2022-02-14 14:41:37
+ */
+@Service("comFmsTeamMemberRelationService")
+public class ComFmsTeamMemberRelationServiceImpl extends
+    ServiceImpl<ComFmsTeamMemberRelationDAO, ComFmsTeamMemberRelation> implements ComFmsTeamMemberRelationService {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComFmsTeamMemberServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComFmsTeamMemberServiceImpl.java
new file mode 100644
index 0000000..611775f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComFmsTeamMemberServiceImpl.java
@@ -0,0 +1,378 @@
+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.isNotBlank;
+import static org.apache.commons.lang3.StringUtils.isNotEmpty;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.alibaba.fastjson.JSONArray;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.collect.Lists;
+import com.panzhihua.common.model.dtos.community.fms.AddTeamMemberDTO;
+import com.panzhihua.common.model.dtos.community.fms.DeleteTeamMemberDTO;
+import com.panzhihua.common.model.dtos.community.fms.EditTeamMemberDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageTeamMemberDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.fms.CascadeCommVO;
+import com.panzhihua.common.model.vos.community.fms.ComFmsTeamMemberExportExcelVO;
+import com.panzhihua.common.model.vos.community.fms.ComFmsTeamMemberImportExcelVO;
+import com.panzhihua.common.model.vos.community.fms.ComFmsTeamMemberImportMistakeExcelVO;
+import com.panzhihua.common.model.vos.community.fms.ComFmsTeamMemberVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.service_community.dao.ComFmsTeamDAO;
+import com.panzhihua.service_community.dao.ComFmsTeamMemberDAO;
+import com.panzhihua.service_community.dao.ComFmsTeamMemberRelationDAO;
+import com.panzhihua.service_community.dao.ComFmsTeamTypeDAO;
+import com.panzhihua.service_community.entity.ComFmsTeam;
+import com.panzhihua.service_community.entity.ComFmsTeamMember;
+import com.panzhihua.service_community.entity.ComFmsTeamMemberRelation;
+import com.panzhihua.service_community.entity.ComFmsTeamType;
+import com.panzhihua.service_community.service.ComFmsTeamMemberService;
+
+import cn.hutool.core.util.IdcardUtil;
+
+/**
+ * 五微服务-团队成员(ComFmsTeamMember)表服务实现类
+ *
+ * @author makejava
+ * @since 2022-02-11 13:35:56
+ */
+@Service("comFmsTeamMemberService")
+public class ComFmsTeamMemberServiceImpl extends ServiceImpl<ComFmsTeamMemberDAO, ComFmsTeamMember>
+    implements ComFmsTeamMemberService {
+
+    @Resource
+    private ComFmsTeamDAO comFmsTeamDAO;
+    @Resource
+    private ComFmsTeamMemberRelationDAO comFmsTeamMemberRelationDAO;
+    @Resource
+    private ComFmsTeamTypeDAO comFmsTeamTypeDAO;
+    @Resource
+    private UserService userService;
+
+    /**
+     * 新增团队成员
+     * @param addTeamMemberDTO
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R addFmsTeamMember(AddTeamMemberDTO addTeamMemberDTO) {
+        String idCard = addTeamMemberDTO.getIdCard();
+        if (isNotBlank(idCard) && !IdcardUtil.isValidCard(idCard)) {
+            return R.fail("身份证号码有误");
+        }
+        List<Long> teamIds = addTeamMemberDTO.getTeamIds();
+        List<ComFmsTeam> comFmsTeam = comFmsTeamDAO.selectBatchIds(teamIds);
+        if (comFmsTeam.size() != teamIds.size() || comFmsTeam.stream().anyMatch(e -> !e.getCommunityId().equals(addTeamMemberDTO.getCommunityId()))) {
+            return R.fail("团队id有误");
+        }
+        Integer countMember = this.baseMapper.countMember(addTeamMemberDTO.getCommunityId(),
+                addTeamMemberDTO.getIdCard(), addTeamMemberDTO.getPhone());
+        if (countMember > 0) {
+            return R.fail("团队成员已存在,如需添加团队关系,请编辑该成员");
+        }
+        ComFmsTeamMember comFmsTeamMember = new ComFmsTeamMember();
+        BeanUtils.copyProperties(addTeamMemberDTO, comFmsTeamMember);
+        if (isNotBlank(idCard)) {
+            comFmsTeamMember.setGender(IdcardUtil.getGenderByIdCard(idCard) == 1 ? 1 : 2);
+        }
+        this.baseMapper.insert(comFmsTeamMember);
+        Long memberId = comFmsTeamMember.getId();
+        if (nonNull(memberId)) {
+            List<ComFmsTeamMemberRelation> teamMemberRelations = new ArrayList<>();
+            List<List<Long>> cascadeIds = new ArrayList<>();
+            teamIds.forEach(e -> {
+                Long teamType = comFmsTeam.stream().filter(team -> team.getId().equals(e)).collect(Collectors.toList()).get(0).getTeamType();
+                ComFmsTeamMemberRelation teamMemberRelation = new ComFmsTeamMemberRelation();
+                teamMemberRelation.setTeamId(e);
+                teamMemberRelation.setMemberId(memberId);
+                teamMemberRelations.add(teamMemberRelation);
+                cascadeIds.add(Arrays.asList(teamType, e));
+            });
+            int num = comFmsTeamMemberRelationDAO.insertBatch(teamMemberRelations);
+            if (num > 0) {
+                comFmsTeamMember.setCascadeIds(cascadeIds.toString());
+                this.baseMapper.updateById(comFmsTeamMember);
+                return R.ok();
+            }
+        }
+        return R.fail("新增失败,请重新尝试");
+    }
+
+    /**
+     * 编辑团队成员
+     * @param editTeamMemberDTO
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R editFmsTeamMember(EditTeamMemberDTO editTeamMemberDTO) {
+        String idCard = editTeamMemberDTO.getIdCard();
+        if (isNotBlank(idCard) && !IdcardUtil.isValidCard(idCard)) {
+            return R.fail("身份证号码有误");
+        }
+        List<Long> teamIds = editTeamMemberDTO.getTeamIds();
+        List<ComFmsTeam> comFmsTeam = comFmsTeamDAO.selectBatchIds(teamIds);
+        if (comFmsTeam.size() != teamIds.size() || comFmsTeam.stream().anyMatch(e -> !e.getCommunityId().equals(editTeamMemberDTO.getCommunityId()))) {
+            return R.fail("团队id有误");
+        }
+        ComFmsTeamMember comFmsTeamMember = this.baseMapper.selectById(editTeamMemberDTO.getId());
+        if (isNull(comFmsTeamMember)) {
+            return R.fail("团队成员不存在");
+        }
+        Integer countMember = 0;
+        if (!comFmsTeamMember.getPhone().equals(editTeamMemberDTO.getPhone())) {
+            countMember = this.baseMapper.selectCount(new LambdaQueryWrapper<ComFmsTeamMember>()
+                    .eq(ComFmsTeamMember::getCommunityId, editTeamMemberDTO.getCommunityId())
+                    .eq(ComFmsTeamMember::getPhone, editTeamMemberDTO.getPhone()));
+        }
+        if (isNotBlank(idCard) && !idCard.equals(comFmsTeamMember.getIdCard())) {
+            countMember = this.baseMapper.selectCount(new LambdaQueryWrapper<ComFmsTeamMember>()
+                    .eq(ComFmsTeamMember::getCommunityId, editTeamMemberDTO.getCommunityId())
+                    .eq(ComFmsTeamMember::getIdCard, editTeamMemberDTO.getIdCard()));
+        }
+        if (countMember > 0) {
+            return R.fail("该手机号或身份证号已存在团队成员");
+        }
+        BeanUtils.copyProperties(editTeamMemberDTO, comFmsTeamMember);
+        if (isNotBlank(idCard)) {
+            comFmsTeamMember.setGender(IdcardUtil.getGenderByIdCard(idCard) == 1 ? 1 : 2);
+        }
+        comFmsTeamMemberRelationDAO.delete(new LambdaQueryWrapper<ComFmsTeamMemberRelation>()
+                .eq(ComFmsTeamMemberRelation::getMemberId, editTeamMemberDTO.getId()));
+        List<ComFmsTeamMemberRelation> teamMemberRelations = new ArrayList<>();
+        List<List<Long>> cascadeIds = new ArrayList<>();
+        teamIds.forEach(e -> {
+            Long teamType = comFmsTeam.stream().filter(team -> team.getId().equals(e)).collect(Collectors.toList()).get(0).getTeamType();
+            ComFmsTeamMemberRelation teamMemberRelation = new ComFmsTeamMemberRelation();
+            teamMemberRelation.setTeamId(e);
+            teamMemberRelation.setMemberId(editTeamMemberDTO.getId());
+            teamMemberRelations.add(teamMemberRelation);
+            cascadeIds.add(Arrays.asList(teamType, e));
+        });
+        comFmsTeamMemberRelationDAO.insertBatch(teamMemberRelations);
+        comFmsTeamMember.setCascadeIds(cascadeIds.toString());
+        int num = this.baseMapper.updateById(comFmsTeamMember);
+        if (num > 0) {
+            return R.ok();
+        }
+        return R.fail("编辑失败,请重新尝试");
+    }
+
+    /**
+     * 删除团队成员
+     * @param deleteTeamMemberDTO
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R deleteFmsTeamMember(DeleteTeamMemberDTO deleteTeamMemberDTO) {
+        ComFmsTeamMember comFmsTeamMember = this.baseMapper.selectById(deleteTeamMemberDTO.getId());
+        if (isNull(comFmsTeamMember)) {
+            return R.fail("资源不存在");
+        }
+        if (!comFmsTeamMember.getCommunityId().equals(deleteTeamMemberDTO.getCommunityId())) {
+            return R.fail("非本社区工作人员");
+        }
+        Integer count = comFmsTeamMemberRelationDAO.selectCount(new LambdaQueryWrapper<ComFmsTeamMemberRelation>()
+                .eq(ComFmsTeamMemberRelation::getMemberId, deleteTeamMemberDTO.getId()));
+        int num = comFmsTeamMemberRelationDAO.delete(new LambdaQueryWrapper<ComFmsTeamMemberRelation>()
+                .eq(ComFmsTeamMemberRelation::getMemberId, deleteTeamMemberDTO.getId()).eq(ComFmsTeamMemberRelation::getTeamId, deleteTeamMemberDTO.getTeamId()));
+        if (num > 0) {
+            if (count == 1) {
+                //只存在一个团队中直接删除
+                this.baseMapper.deleteById(deleteTeamMemberDTO.getId());
+                // 删除用户信息缓存
+                userService.deleteUserCashByPhone(comFmsTeamMember.getPhone());
+            } else {
+                //存在多个团队中,删除与该团队关联
+                ComFmsTeam fmsTeam = comFmsTeamDAO.selectById(deleteTeamMemberDTO.getTeamId());
+                String cascadeIds = comFmsTeamMember.getCascadeIds();
+                List<List> lists = JSONArray.parseArray(cascadeIds, List.class);
+                List<List> collect = lists.stream().filter(e -> !e.toString().equals(Arrays.asList(fmsTeam.getTeamType(), fmsTeam.getId()).toString())).collect(Collectors.toList());
+                comFmsTeamMember.setCascadeIds(collect.toString());
+                this.baseMapper.updateById(comFmsTeamMember);
+            }
+            return R.ok();
+        }
+        return R.fail("删除失败,请重新尝试");
+    }
+
+    /**
+     * 分页查询团队成员
+     * @param pageTeamMemberDTO
+     * @return
+     */
+    @Override
+    public R pageFmsTeamMember(PageTeamMemberDTO pageTeamMemberDTO) {
+        Page page = new Page<>();
+        page.setSize(pageTeamMemberDTO.getPageSize());
+        page.setCurrent(pageTeamMemberDTO.getPageNum());
+        IPage<ComFmsTeamMemberVO> memberVOIPage = this.baseMapper.pageFmsTeamMember(page, pageTeamMemberDTO);
+        List<ComFmsTeamMemberVO> records = memberVOIPage.getRecords();
+        if (!records.isEmpty()) {
+            records.forEach(e -> {
+                String idCard = e.getIdCard();
+                if (isNotEmpty(idCard)) {
+                    e.setAge(IdcardUtil.getAgeByIdCard(idCard));
+                }
+            });
+        }
+        return R.ok(memberVOIPage);
+    }
+
+    /**
+     * 微团队顶部统计
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R statisticsFmsTeamMember(Long communityId) {
+        return R.ok(this.baseMapper.statisticsFmsTeamMember(communityId));
+    }
+
+    /**
+     * 批量导入团队成员
+     * @param voList
+     * @param communityId
+     * @param userId
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R listSaveFmsTeamMemberExcelVO(List<ComFmsTeamMemberImportExcelVO> voList, Long communityId, Long userId) {
+        List<ComFmsTeamType> comFmsTeamTypes = comFmsTeamTypeDAO.selectList(new LambdaQueryWrapper<ComFmsTeamType>().eq(ComFmsTeamType::getCommunityId, communityId));
+        List<ComFmsTeam> comFmsTeams = comFmsTeamDAO.selectList(new LambdaQueryWrapper<ComFmsTeam>().eq(ComFmsTeam::getCommunityId, communityId));
+        List<ComFmsTeamMemberRelation> teamMemberRelations = new ArrayList<>();
+        List<ComFmsTeamMemberImportMistakeExcelVO> mistakes = Lists.newArrayList();
+        for (ComFmsTeamMemberImportExcelVO e : voList) {
+            String teamType = e.getTeamType();
+            String teamName = e.getTeamName();
+            ComFmsTeamType fmsTeamType = comFmsTeamTypes.stream().filter(type -> type.getName().equals(teamType)).findFirst().orElse(null);
+            if (isNull(fmsTeamType)) {
+                ComFmsTeamMemberImportMistakeExcelVO mistake = new ComFmsTeamMemberImportMistakeExcelVO();
+                BeanUtils.copyProperties(e, mistake);
+                mistake.setMistake("团队类型有误,请填写正确的团队类型");
+                mistakes.add(mistake);
+                continue;
+            }
+            ComFmsTeam fmsTeam = comFmsTeams.stream().filter(team -> team.getName().equals(teamName)).findFirst().orElse(null);
+            if (isNull(fmsTeam)) {
+                ComFmsTeamMemberImportMistakeExcelVO mistake = new ComFmsTeamMemberImportMistakeExcelVO();
+                BeanUtils.copyProperties(e, mistake);
+                mistake.setMistake("团队名称有误,请填写正确的团队名称");
+                mistakes.add(mistake);
+                continue;
+            }
+            String idCard = e.getIdCard();
+            Integer countMember = this.baseMapper.countMember(communityId, idCard, e.getPhone());
+            if (countMember > 0) {
+                ComFmsTeamMemberImportMistakeExcelVO mistake = new ComFmsTeamMemberImportMistakeExcelVO();
+                BeanUtils.copyProperties(e, mistake);
+                mistake.setMistake("团队成员已存在,如需添加团队关系,请编辑该成员");
+                mistakes.add(mistake);
+                continue;
+            }
+            ComFmsTeamMember comFmsTeamMember = new ComFmsTeamMember();
+            comFmsTeamMember.setName(e.getTeamMember());
+            comFmsTeamMember.setPhone(e.getPhone());
+            comFmsTeamMember.setIdCard(idCard);
+            if (isNotBlank(idCard)) {
+                comFmsTeamMember.setGender(IdcardUtil.getGenderByIdCard(idCard) == 1 ? 1 : 2);
+            }
+            comFmsTeamMember.setCascadeIds(Arrays.asList(fmsTeamType.getId(), fmsTeam.getId()).toString());
+            comFmsTeamMember.setCommunityId(communityId);
+            comFmsTeamMember.setCreatedBy(userId);
+            comFmsTeamMember.setUpdatedBy(userId);
+            int num = this.baseMapper.insert(comFmsTeamMember);
+            if (num > 0) {
+                ComFmsTeamMemberRelation teamMemberRelation = new ComFmsTeamMemberRelation();
+                teamMemberRelation.setMemberId(comFmsTeamMember.getId());
+                teamMemberRelation.setTeamId(fmsTeam.getId());
+                teamMemberRelations.add(teamMemberRelation);
+            }
+        }
+        if (!teamMemberRelations.isEmpty()) {
+            comFmsTeamMemberRelationDAO.insertBatch(teamMemberRelations);
+        }
+        return R.ok(mistakes);
+    }
+
+    /**
+     * 团队人员导出
+     * @param pageTeamMemberDTO
+     * @return
+     */
+    @Override
+    public R exportTeamMember(PageTeamMemberDTO pageTeamMemberDTO) {
+        List<ComFmsTeamMemberExportExcelVO> memberExportExcelVOList = this.baseMapper.exportTeamMember(pageTeamMemberDTO);
+        if (!memberExportExcelVOList.isEmpty()) {
+            memberExportExcelVOList.forEach(e -> {
+                if (isNotBlank(e.getIdCard())) {
+                    e.setAge(IdcardUtil.getAgeByIdCard(e.getIdCard()) + "");
+                } else {
+                    e.setAge("未知");
+                }
+            });
+        }
+        return R.ok(memberExportExcelVOList);
+    }
+
+    /**
+     * 级联查询团队服务人员
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R retrieveFmsTeamMemberCascade(Long communityId) {
+        List<ComFmsTeamMemberVO> memberList = this.baseMapper.selectListByCommunityId(communityId);
+        List<CascadeCommVO> cascade = null;
+        if (!memberList.isEmpty()) {
+            Map<Long, List<CascadeCommVO>> allMemberGroup = memberList.stream().map(e -> {
+                CascadeCommVO cascadeCommVO = new CascadeCommVO();
+                cascadeCommVO.setValue(e.getId());
+                cascadeCommVO.setParentId(e.getTeamId());
+                cascadeCommVO.setLabel(e.getName());
+                return cascadeCommVO;
+            }).collect(Collectors.groupingBy(CascadeCommVO::getParentId));
+            List<ComFmsTeam> teamList = comFmsTeamDAO.selectBatchIds(allMemberGroup.keySet());
+            if (!teamList.isEmpty()) {
+                Map<Long, List<CascadeCommVO>> allTeamGroup = teamList.stream().map(e -> {
+                    CascadeCommVO cascadeCommVO = new CascadeCommVO();
+                    cascadeCommVO.setValue(e.getId());
+                    cascadeCommVO.setParentId(e.getTeamType());
+                    cascadeCommVO.setLabel(e.getName());
+                    return cascadeCommVO;
+                }).collect(Collectors.groupingBy(CascadeCommVO::getParentId));
+                List<ComFmsTeamType> teamTypeList = comFmsTeamTypeDAO.selectBatchIds(allTeamGroup.keySet());
+                if (!teamTypeList.isEmpty()) {
+                    cascade = teamTypeList.stream().map(e -> {
+                        CascadeCommVO cascadeCommVO = new CascadeCommVO();
+                        cascadeCommVO.setValue(e.getId());
+                        cascadeCommVO.setLabel(e.getName());
+                        return cascadeCommVO;
+                    }).collect(Collectors.toList());
+                    cascade.forEach(e1 -> e1.setChildren(allTeamGroup.get(e1.getValue())));
+                    cascade.forEach(e1 -> e1.getChildren().forEach(e2 -> e2.setChildren(allMemberGroup.get(e2.getValue()))));
+                }
+            }
+        }
+        return R.ok(cascade);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComFmsTeamServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComFmsTeamServiceImpl.java
new file mode 100644
index 0000000..c7ddf85
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComFmsTeamServiceImpl.java
@@ -0,0 +1,225 @@
+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.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.model.dtos.community.fms.AddTeamDTO;
+import com.panzhihua.common.model.dtos.community.fms.EditTeamDTO;
+import com.panzhihua.common.model.dtos.community.fms.PageFmsTeamDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.fms.CascadeCommVO;
+import com.panzhihua.common.model.vos.community.fms.ComFmsTeamMemberVO;
+import com.panzhihua.common.model.vos.community.fms.ComFmsTeamVO;
+import com.panzhihua.service_community.dao.ComFmsTeamDAO;
+import com.panzhihua.service_community.dao.ComFmsTeamMemberDAO;
+import com.panzhihua.service_community.dao.ComFmsTeamMemberRelationDAO;
+import com.panzhihua.service_community.dao.ComFmsTeamTypeDAO;
+import com.panzhihua.service_community.entity.ComFmsTeam;
+import com.panzhihua.service_community.entity.ComFmsTeamMemberRelation;
+import com.panzhihua.service_community.entity.ComFmsTeamType;
+import com.panzhihua.service_community.service.ComFmsTeamService;
+
+/**
+ * 五微服务-微团队(ComFmsTeam)表服务实现类
+ *
+ * @author makejava
+ * @since 2022-02-11 13:35:55
+ */
+@Service("comFmsTeamService")
+public class ComFmsTeamServiceImpl extends ServiceImpl<ComFmsTeamDAO, ComFmsTeam> implements ComFmsTeamService {
+
+    @Resource
+    private ComFmsTeamMemberDAO comFmsTeamMemberDAO;
+    @Resource
+    private ComFmsTeamTypeDAO comFmsTeamTypeDAO;
+    @Resource
+    private ComFmsTeamMemberRelationDAO comFmsTeamMemberRelationDAO;
+
+    /**
+     * 新增团队
+     * @param addTeamDTO
+     * @return
+     */
+    @Override
+    public R addFmsTeam(AddTeamDTO addTeamDTO) {
+        Integer count = this.baseMapper.selectCount(new LambdaQueryWrapper<ComFmsTeam>()
+                .eq(ComFmsTeam::getName, addTeamDTO.getName())
+                .eq(ComFmsTeam::getTeamType, addTeamDTO.getTeamType()));
+        if (count > 0) {
+            return R.fail("该团队已存在于目标类型下");
+        }
+        ComFmsTeam comFmsTeam = new ComFmsTeam();
+        BeanUtils.copyProperties(addTeamDTO, comFmsTeam);
+        int num = this.baseMapper.insert(comFmsTeam);
+        if (num > 0) {
+            return R.ok();
+        }
+        return R.fail("新增失败,请重新尝试");
+    }
+
+    /**
+     * 修改团队信息
+     * @param editTeamDTO
+     * @return
+     */
+    @Override
+    public R editFmsTeam(EditTeamDTO editTeamDTO) {
+        ComFmsTeam comFmsTeam = this.baseMapper.selectById(editTeamDTO.getId());
+        if (isNull(comFmsTeam)) {
+            return R.fail("资源不存在");
+        }
+        Integer count = this.baseMapper.selectCount(new LambdaQueryWrapper<ComFmsTeam>()
+                .eq(ComFmsTeam::getName, editTeamDTO.getName())
+                .eq(ComFmsTeam::getTeamType, editTeamDTO.getTeamType()));
+        if (count > 0) {
+            return R.fail("该团队已存在于目标类型下");
+        }
+        BeanUtils.copyProperties(editTeamDTO, comFmsTeam);
+        int num = this.baseMapper.updateById(comFmsTeam);
+        if (num > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败,请重新尝试");
+    }
+
+    /**
+     * 删除团队
+     * @param teamId
+     * @return
+     */
+    @Override
+    public R deleteFmsTeam(Long teamId) {
+        ComFmsTeam comFmsTeam = this.baseMapper.selectById(teamId);
+        if (isNull(comFmsTeam)) {
+            return R.fail("资源不存在");
+        }
+        Integer count = comFmsTeamMemberRelationDAO.selectCount(new LambdaQueryWrapper<ComFmsTeamMemberRelation>().eq(ComFmsTeamMemberRelation::getTeamId, teamId));
+        if (count > 0) {
+            return R.fail("该数据已被引用,无法删除!");
+        }
+        int num = this.baseMapper.deleteById(teamId);
+        if (num > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败,请重新尝试");
+    }
+
+    /**
+     * 获取团队列表
+     * @param teamTypeId
+     * @return
+     */
+    @Override
+    public R listFmsTeam(Long teamTypeId) {
+        List<ComFmsTeam> comFmsTeams = this.baseMapper.selectList(new LambdaQueryWrapper<ComFmsTeam>()
+                .eq(ComFmsTeam::getTeamType, teamTypeId).orderByDesc(ComFmsTeam::getCreatedAt));
+        List<ComFmsTeamVO> fmsTeamVOList = new ArrayList<>();
+        if (!comFmsTeams.isEmpty()) {
+            comFmsTeams.forEach(comFmsTeam -> {
+                ComFmsTeamVO comFmsTeamVO = new ComFmsTeamVO();
+                BeanUtils.copyProperties(comFmsTeam, comFmsTeamVO);
+                fmsTeamVOList.add(comFmsTeamVO);
+            });
+        }
+        return R.ok(fmsTeamVOList);
+    }
+
+    /**
+     * 获取团队详情
+     * @param teamId
+     * @return
+     */
+    @Override
+    public R detailFmsTeam(Long teamId) {
+        ComFmsTeam comFmsTeam = this.baseMapper.selectById(teamId);
+        if (isNull(comFmsTeam)) {
+            return R.fail("资源不存在");
+        }
+        ComFmsTeamVO comFmsTeamVO = new ComFmsTeamVO();
+        BeanUtils.copyProperties(comFmsTeam, comFmsTeamVO);
+        return R.ok(comFmsTeamVO);
+    }
+
+    /**
+     * 级联查询团队数据
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R retrieveFmsTeamCascade(Long communityId) {
+        List<ComFmsTeamType> teamTypeList = comFmsTeamTypeDAO.selectList(new LambdaQueryWrapper<ComFmsTeamType>()
+                .eq(ComFmsTeamType::getCommunityId, communityId).orderByDesc(ComFmsTeamType::getCreatedAt));
+        List<CascadeCommVO> cascade = null;
+        if (!teamTypeList.isEmpty()) {
+            List<ComFmsTeam> teamList = this.baseMapper.selectList(new LambdaQueryWrapper<ComFmsTeam>().eq(ComFmsTeam::getCommunityId, communityId));
+            List<CascadeCommVO> allTeamType = teamTypeList.stream().map(e -> {
+                CascadeCommVO cascadeCommVO = new CascadeCommVO();
+                cascadeCommVO.setValue(e.getId());
+                cascadeCommVO.setLabel(e.getName());
+                return cascadeCommVO;
+            }).collect(Collectors.toList());
+            if (!teamList.isEmpty()) {
+                Map<Long, List<CascadeCommVO>> allTeamGroup = teamList.stream().map(e -> {
+                    CascadeCommVO cascadeCommVO = new CascadeCommVO();
+                    cascadeCommVO.setValue(e.getId());
+                    cascadeCommVO.setParentId(e.getTeamType());
+                    cascadeCommVO.setLabel(e.getName());
+                    return cascadeCommVO;
+                }).collect(Collectors.groupingBy(CascadeCommVO::getParentId));
+                allTeamType.forEach(e -> e.setChildren(allTeamGroup.get(e.getValue())));
+            }
+            cascade = allTeamType.stream().filter(e -> nonNull(e.getChildren()) && !e.getChildren().isEmpty()).collect(Collectors.toList());
+        }
+        return R.ok(cascade);
+    }
+
+    /**
+     * 小程序分页查询团队信息
+     * @param pageFmsTeamDTO
+     * @return
+     */
+    @Override
+    public R pageFmsTeamApplets(PageFmsTeamDTO pageFmsTeamDTO) {
+        Long pageNum = pageFmsTeamDTO.getPageNum();
+        Long pageSize = pageFmsTeamDTO.getPageSize();
+        List<ComFmsTeamVO> teamList;
+        if (nonNull(pageNum) && nonNull(pageSize)) {
+            Page page = new Page<>();
+            page.setSize(pageSize);
+            page.setCurrent(pageNum);
+            IPage<ComFmsTeamVO> fmsTeamIPage = this.baseMapper.pageFmsTeamApplets(page, pageFmsTeamDTO);
+            teamList = fmsTeamIPage.getRecords();
+            if (!teamList.isEmpty()) {
+                teamList.forEach(e -> {
+                    List<ComFmsTeamMemberVO> members = comFmsTeamMemberDAO.selectVOListByTeamId(e.getId());
+                    e.setTeamMemberTotal(members.size());
+                    e.setMemberList(members);
+                });
+            }
+            return R.ok(fmsTeamIPage);
+        }
+        teamList = this.baseMapper.listFmsTeamApplets(pageFmsTeamDTO);
+        if (!teamList.isEmpty()) {
+            teamList.forEach(e -> {
+                List<ComFmsTeamMemberVO> members = comFmsTeamMemberDAO.selectVOListByTeamId(e.getId());
+                e.setTeamMemberTotal(members.size());
+                e.setMemberList(members);
+            });
+        }
+        return R.ok(teamList);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComFmsTeamTypeServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComFmsTeamTypeServiceImpl.java
new file mode 100644
index 0000000..983071b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComFmsTeamTypeServiceImpl.java
@@ -0,0 +1,127 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.community.fms.AddTeamTypeDTO;
+import com.panzhihua.common.model.dtos.community.fms.EditTeamTypeDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.fms.ComFmsTeamTypeVO;
+import com.panzhihua.service_community.dao.ComFmsTeamDAO;
+import com.panzhihua.service_community.dao.ComFmsTeamTypeDAO;
+import com.panzhihua.service_community.entity.ComFmsTeam;
+import com.panzhihua.service_community.entity.ComFmsTeamType;
+import com.panzhihua.service_community.service.ComFmsTeamTypeService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+
+/**
+ * 五微服务-团队类型(ComFmsTeamType)表服务实现类
+ *
+ * @author makejava
+ * @since 2022-02-11 13:35:56
+ */
+@Service("comFmsTeamTypeService")
+public class ComFmsTeamTypeServiceImpl extends ServiceImpl<ComFmsTeamTypeDAO, ComFmsTeamType>
+    implements ComFmsTeamTypeService {
+
+    @Resource
+    private ComFmsTeamDAO comFmsTeamDAO;
+
+    /**
+     * 新增团队类型
+     * @param addTeamTypeDTO
+     * @return
+     */
+    @Override
+    public R addFmsTeamType(AddTeamTypeDTO addTeamTypeDTO) {
+        ComFmsTeamType comFmsTeamType = this.baseMapper.selectOne(new LambdaQueryWrapper<ComFmsTeamType>()
+                .eq(ComFmsTeamType::getName, addTeamTypeDTO.getName())
+                .eq(ComFmsTeamType::getCommunityId, addTeamTypeDTO.getCommunityId()));
+        if (nonNull(comFmsTeamType)) {
+            return R.fail("团队类型已存在");
+        }
+        comFmsTeamType = new ComFmsTeamType();
+        BeanUtils.copyProperties(addTeamTypeDTO, comFmsTeamType);
+        int num = this.baseMapper.insert(comFmsTeamType);
+        if (num > 0) {
+            return R.ok();
+        }
+        return R.fail("添加失败,请重新尝试");
+    }
+
+    /**
+     * 修改团队类型
+     * @param editTeamTypeDTO
+     * @return
+     */
+    @Override
+    public R editFmsTeamType(EditTeamTypeDTO editTeamTypeDTO) {
+        ComFmsTeamType comFmsTeamType = this.baseMapper.selectById(editTeamTypeDTO.getId());
+        if (isNull(comFmsTeamType)) {
+            return R.fail("资源不存在");
+        }
+        if (!editTeamTypeDTO.getCommunityId().equals(comFmsTeamType.getCommunityId())) {
+            return R.fail("非本社区工作人员");
+        }
+        BeanUtils.copyProperties(editTeamTypeDTO, comFmsTeamType);
+        int num = this.baseMapper.updateById(comFmsTeamType);
+        if (num > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败,请重新尝试");
+    }
+
+    /**
+     * 删除团队类型
+     * @param teamTypeId
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R deleteFmsTeamType(Long teamTypeId, Long communityId) {
+        ComFmsTeamType comFmsTeamType = this.baseMapper.selectById(teamTypeId);
+        if (isNull(comFmsTeamType)) {
+            return R.fail("团队类型不存在");
+        }
+        if (!communityId.equals(comFmsTeamType.getCommunityId())) {
+            return R.fail("非本社区工作人员");
+        }
+        Integer count = comFmsTeamDAO.selectCount(new LambdaQueryWrapper<ComFmsTeam>().eq(ComFmsTeam::getTeamType, teamTypeId));
+        if (count > 0) {
+            return R.fail("该数据已被引用,无法删除!");
+        }
+        int num = this.baseMapper.deleteById(teamTypeId);
+        if (num > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败,请重新尝试");
+    }
+
+    /**
+     * 获取团队类型列表
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R listFmsTeamType(Long communityId) {
+        List<ComFmsTeamType> comFmsTeamTypes = this.baseMapper.selectList(new LambdaQueryWrapper<ComFmsTeamType>()
+                .eq(ComFmsTeamType::getCommunityId, communityId).orderByDesc(ComFmsTeamType::getCreatedAt));
+        List<ComFmsTeamTypeVO> teamTypeVOList = new ArrayList<>();
+        if (!comFmsTeamTypes.isEmpty()) {
+            comFmsTeamTypes.forEach(comFmsTeamType -> {
+                ComFmsTeamTypeVO comFmsTeamTypeVO = new ComFmsTeamTypeVO();
+                BeanUtils.copyProperties(comFmsTeamType, comFmsTeamTypeVO);
+                teamTypeVOList.add(comFmsTeamTypeVO);
+            });
+        }
+        return R.ok(teamTypeVOList);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComKeyPopulationServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComKeyPopulationServiceImpl.java
new file mode 100644
index 0000000..6dfbaa2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComKeyPopulationServiceImpl.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.ComKeyPopulationDAO;
+import com.panzhihua.service_community.model.dos.ComKeyPopulationDO;
+import com.panzhihua.service_community.service.ComKeyPopulationService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 17:41:05
+ * @describe 服务实现类
+ */
+@Slf4j
+@Service
+public class ComKeyPopulationServiceImpl extends ServiceImpl<ComKeyPopulationDAO, ComKeyPopulationDO>
+    implements ComKeyPopulationService {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComLowSecurityPopulationServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComLowSecurityPopulationServiceImpl.java
new file mode 100644
index 0000000..3344356
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComLowSecurityPopulationServiceImpl.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.ComLowSecurityPopulationDAO;
+import com.panzhihua.service_community.model.dos.ComLowSecurityPopulationDO;
+import com.panzhihua.service_community.service.ComLowSecurityPopulationService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 19:52:55
+ * @describe 实有人口导入》低保户人员表服务实现类
+ */
+@Slf4j
+@Service
+public class ComLowSecurityPopulationServiceImpl extends
+    ServiceImpl<ComLowSecurityPopulationDAO, ComLowSecurityPopulationDO> implements ComLowSecurityPopulationService {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMajorPopulationServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMajorPopulationServiceImpl.java
new file mode 100644
index 0000000..34bf40c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMajorPopulationServiceImpl.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.ComMajorPopulationDAO;
+import com.panzhihua.service_community.model.dos.ComMajorPopulationDO;
+import com.panzhihua.service_community.service.ComMajorPopulationService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 17:14:17
+ * @describe 重精人员表服务实现类
+ */
+@Slf4j
+@Service
+public class ComMajorPopulationServiceImpl extends ServiceImpl<ComMajorPopulationDAO, ComMajorPopulationDO>
+    implements ComMajorPopulationService {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngCarServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngCarServiceImpl.java
new file mode 100644
index 0000000..8cf20eb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngCarServiceImpl.java
@@ -0,0 +1,229 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.*;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.utlis.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
+
+import com.alibaba.fastjson.JSONObject;
+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.model.dtos.community.ComMngCarAppletDTO;
+import com.panzhihua.common.model.dtos.community.ComMngCarSaveDTO;
+import com.panzhihua.common.model.dtos.community.ExportComMngCarExcelDTO;
+import com.panzhihua.common.model.dtos.community.PageComMngCarDTO;
+import com.panzhihua.common.model.helper.AESUtil;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngCarExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngCarVO;
+import com.panzhihua.common.model.vos.user.SysUserVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.ParamRegularUtil;
+import com.panzhihua.service_community.dao.ComMngCarDAO;
+import com.panzhihua.service_community.dao.ComMngStructAreaDAO;
+import com.panzhihua.service_community.dao.ComMngVillageDAO;
+import com.panzhihua.service_community.model.dos.ComMngCarDO;
+import com.panzhihua.service_community.model.dos.ComMngStructAreaDO;
+import com.panzhihua.service_community.model.dos.ComMngVillageDO;
+import com.panzhihua.service_community.service.ComMngCarService;
+
+/**
+ * @description:
+ * @author: Null
+ * @date: 2021/3/16 14:33
+ */
+@Service
+public class ComMngCarServiceImpl extends ServiceImpl<ComMngCarDAO, ComMngCarDO> implements ComMngCarService {
+
+    @Resource
+    private ComMngCarDAO comMngCarDAO;
+    @Resource
+    private ComMngStructAreaDAO comMngStructAreaDAO;
+    @Resource
+    private ComMngVillageDAO comMngVillageDAO;
+    @Resource
+    private UserService userService;
+    @Value("${domain.aesKey:}")
+    private String aesKey;
+
+    @Override
+    public R addComMngCarApplet(ComMngCarAppletDTO comCvtBusinessDTO) {
+        int count = comMngCarDAO.selectCount(
+            new QueryWrapper<ComMngCarDO>().lambda().eq(ComMngCarDO::getPlateNum, comCvtBusinessDTO.getPlateNum())
+                .and(wrapper -> wrapper.eq(ComMngCarDO::getSource, 1)));
+        if (count > 0) {
+            return R.ok("车辆已存在");
+        }
+        ComMngCarDO comMngCarDO = new ComMngCarDO();
+        BeanUtils.copyProperties(comCvtBusinessDTO, comMngCarDO);
+        comMngCarDO.setCreateAt(new Date());
+        boolean insert = this.save(comMngCarDO);
+        if (insert) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    @Override
+    public R userComMngCarList(Long userId) {
+        List<ComMngCarVO> comMngCarVOS = new ArrayList<>();
+        List<ComMngCarDO> carDOS =
+            comMngCarDAO.selectList(new QueryWrapper<ComMngCarDO>().lambda().eq(ComMngCarDO::getUserId, userId));
+        carDOS.forEach(carDO -> {
+            ComMngCarVO carVO = new ComMngCarVO();
+            BeanUtils.copyProperties(carDO, carVO);
+            comMngCarVOS.add(carVO);
+        });
+        return R.ok(comMngCarVOS);
+    }
+
+    @Override
+    public R pageQueryComMngCar(PageComMngCarDTO pageComMngCarDTO) {
+        Page page = new Page<>();
+        Long pageNum = pageComMngCarDTO.getPageNum();
+        Long pageSize = pageComMngCarDTO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum.longValue());
+        IPage<ComMngCarVO> iPage = comMngCarDAO.pageQueryComMngCar(page, pageComMngCarDTO);
+        return R.ok(iPage);
+    }
+
+    @Override
+    public R saveComMngCar(ComMngCarSaveDTO comMngCarSaveDTO) {
+        boolean carResult = ParamRegularUtil.carNumRegular(comMngCarSaveDTO.getPlateNum());
+        if (!carResult) {
+            return R.fail("车牌号有误!");
+        }
+        if (comMngCarSaveDTO.getId() == null) {
+            List<ComMngCarDO> existList = comMngCarDAO.selectList(
+                new QueryWrapper<ComMngCarDO>().lambda().eq(ComMngCarDO::getPlateNum, comMngCarSaveDTO.getPlateNum()));
+            if (!existList.isEmpty()) {
+                return R.fail("车辆已存在");
+            }
+        }
+        ComMngVillageDO comMngVillageDO = comMngVillageDAO.selectById(comMngCarSaveDTO.getAreaId());
+        if (ObjectUtils.isEmpty(comMngVillageDO)) {
+            return R.fail("小区不存在");
+        }
+        if (ObjectUtils.isEmpty(comMngCarSaveDTO.getMobile())) {
+            return R.fail("车主手机号码不能为空");
+        }
+        if (ObjectUtils.isEmpty(comMngCarSaveDTO.getCardNo())) {
+            return R.fail("车主身份证号码不能为空");
+        }
+        ComMngCarDO comMngCarDO = new ComMngCarDO();
+        BeanUtils.copyProperties(comMngCarSaveDTO, comMngCarDO);
+        //如果小区没有名字,则将街路巷和地区号拼接起来
+        if(comMngVillageDO.getName() != null && StringUtils.isNotEmpty(comMngVillageDO.getName())){
+            comMngCarDO.setAreaName(comMngVillageDO.getName());
+        }else{
+            StringBuilder sb = new StringBuilder();
+            sb.append(comMngVillageDO.getAlley());
+            if(!comMngVillageDO.getHouseNum().contains("号")){
+                sb.append(comMngVillageDO.getHouseNum() + "号");
+            }
+            comMngCarDO.setAreaName(sb.toString());
+        }
+//        if(comMngVillageDO.getGroupAt() == null){
+//            comMngCarDO.setAreaName(comMngVillageDO.getGroupAt());
+//        }
+        comMngCarDO.setCommunityId(comMngVillageDO.getCommunityId());
+        try {
+            comMngCarDO.setCardNo(AESUtil.encrypt128(comMngCarSaveDTO.getCardNo(), aesKey));
+        } catch (Exception e) {
+
+        }
+        comMngCarDO.setCreateAt(new Date());
+        comMngCarDO.setSource(2);
+        R<SysUserVO> sysUserVOR = userService.getSysUserVOByPhone(comMngCarSaveDTO.getMobile());
+        if (R.isOk(sysUserVOR)) {
+            SysUserVO sysUserVO =
+                JSONObject.parseObject(JSONObject.toJSONString(sysUserVOR.getData()), SysUserVO.class);
+            comMngCarSaveDTO.setUserId(sysUserVO.getUserId());
+        }
+        if (null != comMngCarDO.getId() && comMngCarDO.getId() != 0) {
+            boolean update = this.updateById(comMngCarDO);
+            if (update) {
+                return R.ok();
+            }
+        } else {
+            boolean insert = this.save(comMngCarDO);
+            if (insert) {
+                return R.ok();
+            }
+        }
+        return R.fail();
+    }
+
+    @Override
+    public R deleteComMngCar(Long id) {
+        int delete = comMngCarDAO.deleteById(id);
+        if (delete == 0) {
+            return R.fail("车辆信息不存在");
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R listSaveMngCarExcelVO(List<ComMngCarExcelVO> list, Long communityId) {
+        // 获取社区下所有的小区
+        List<ComMngVillageDO> comMngVillageDOS = comMngVillageDAO.selectList(
+            new QueryWrapper<ComMngVillageDO>().lambda().eq(ComMngVillageDO::getCommunityId, communityId));
+        Map<String, ComMngVillageDO> areaMap = new HashMap<>(comMngVillageDOS.size());
+        comMngVillageDOS.forEach(comMngVillageDO -> {
+            areaMap.put(comMngVillageDO.getName(),comMngVillageDO);
+        });
+        List<ComMngCarDO> comMngCarDOS = new ArrayList<>();
+        list.forEach(vo -> {
+            int count = comMngCarDAO.selectCount(new QueryWrapper<ComMngCarDO>().lambda()
+                .eq(ComMngCarDO::getPlateNum, vo.getPlateNum()).and(wrapper -> wrapper.eq(ComMngCarDO::getSource, 2)));
+            ComMngCarDO comMngCarDO = new ComMngCarDO();
+            BeanUtils.copyProperties(vo, comMngCarDO);
+            if (count == 0 ) {
+                if(StringUtils.isNotEmpty(vo.getAreaName())&&areaMap.containsKey(vo.getAreaName())){
+                    comMngCarDO.setAreaId(areaMap.get(vo.getAreaName()).getVillageId());
+                }
+                try {
+                    comMngCarDO.setCardNo(AESUtil.encrypt128(vo.getCardNo(), aesKey));
+                } catch (Exception e) {
+
+                }
+                comMngCarDO.setCommunityId(communityId);
+                R<SysUserVO> sysUserVOR = userService.getSysUserVOByPhone(vo.getMobile());
+                if (R.isOk(sysUserVOR)) {
+                    SysUserVO sysUserVO =
+                        JSONObject.parseObject(JSONObject.toJSONString(sysUserVOR.getData()), SysUserVO.class);
+                    comMngCarDO.setUserId(sysUserVO.getUserId());
+                }
+                comMngCarDO.setSource(2);
+                comMngCarDOS.add(comMngCarDO);
+            }
+        });
+        if(comMngCarDOS.isEmpty()){
+            return R.fail("导入数据有误");
+        }
+        else {
+            this.saveBatch(comMngCarDOS);
+            return R.ok("共计导入车辆数量:" + comMngCarDOS.size());
+        }
+    }
+
+    @Override
+    public R exportRealCar(ExportComMngCarExcelDTO exportComMngCarExcelDTO) {
+        List<ComMngCarExcelVO> list = comMngCarDAO.exportRealCar(exportComMngCarExcelDTO);
+        return R.ok(list);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationCommunityTagsServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationCommunityTagsServiceImpl.java
new file mode 100644
index 0000000..1cb4529
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationCommunityTagsServiceImpl.java
@@ -0,0 +1,23 @@
+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.ComMngPopulationCommunityTagsDAO;
+import com.panzhihua.service_community.model.dos.ComMngPopulationCommunityTagsDO;
+import com.panzhihua.service_community.service.ComMngPopulationCommunityTagsService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther txb
+ * @create 2021-08-19 14:55:29
+ * @describe 基础数据》人口社区特殊群体关系表服务实现类
+ */
+@Slf4j
+@Service
+public class ComMngPopulationCommunityTagsServiceImpl
+    extends ServiceImpl<ComMngPopulationCommunityTagsDAO, ComMngPopulationCommunityTagsDO>
+    implements ComMngPopulationCommunityTagsService {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationHouseServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationHouseServiceImpl.java
new file mode 100644
index 0000000..30b810c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationHouseServiceImpl.java
@@ -0,0 +1,624 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.*;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.function.Function;
+import java.util.function.Predicate;
+import java.util.stream.Collectors;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.dtos.community.ComMngPopulationHouseInsertAdminDTO;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.service.ComMngPopulationHouseUserService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+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.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.community.CascadeHouseDTO;
+import com.panzhihua.common.model.dtos.community.ComMngPopulationHouseAdminDTO;
+import com.panzhihua.common.model.dtos.community.ComMngPopulationHouseEditAdminDTO;
+import com.panzhihua.common.model.dtos.grid.PageComMngVillageBuildHouseAppDTO;
+import com.panzhihua.common.model.dtos.grid.admin.ComMngPopulationRelationHouseDTO;
+import com.panzhihua.common.model.dtos.grid.admin.ComMngPopulationSubordinateDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngCascadeHouseVO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationHouseDetailAdminVO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationHouseTotalVO;
+import com.panzhihua.common.model.vos.community.ComMngPopulationHouseUserAdminVO;
+import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingHouseDetailVO;
+import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingHouseVO;
+import com.panzhihua.common.model.vos.grid.PopulationListVO;
+import com.panzhihua.common.model.vos.grid.admin.ComMngSubordinateVO;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.service_community.dao.ComActVillageDAO;
+import com.panzhihua.service_community.dao.ComMngPopulationDAO;
+import com.panzhihua.service_community.dao.ComMngPopulationHouseDAO;
+import com.panzhihua.service_community.dao.ComMngPopulationHouseUserDAO;
+import com.panzhihua.service_community.model.dos.ComMngPopulationDO;
+import com.panzhihua.service_community.model.dos.ComMngPopulationHouseDO;
+import com.panzhihua.service_community.model.dos.ComMngPopulationHouseUserDO;
+import com.panzhihua.service_community.model.dos.ComMngVillageDO;
+import com.panzhihua.service_community.service.ComMngPopulationHouseService;
+
+import cn.hutool.core.util.IdcardUtil;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-05-18 09:26:31
+ * @describe 社区管理》小区管理》实有房屋服务实现类
+ */
+@Slf4j
+@Service
+public class ComMngPopulationHouseServiceImpl extends ServiceImpl<ComMngPopulationHouseDAO, ComMngPopulationHouseDO>
+    implements ComMngPopulationHouseService {
+
+    @Resource
+    private ComMngPopulationHouseUserDAO comMngPopulationHouseUserDAO;
+    @Resource
+    private ComMngPopulationDAO comMngPopulationDAO;
+    @Resource
+    private ComActVillageDAO comActVillageDAO;
+    @Resource
+    private ComMngPopulationHouseDAO comMngPopulationHouseDAO;
+    @Resource
+    private ComMngPopulationHouseService comMngPopulationHouseService;
+    @Resource
+    private ComMngPopulationHouseUserService comMngPopulationHouseUserService;
+
+    private static <T> Predicate<T> distinctByKey(Function<? super T, Object> keyExtractor) {
+        Map<Object, Boolean> seen = new ConcurrentHashMap<>();
+        return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
+    }
+
+    /**
+     * 查询房屋级联菜单
+     *
+     * @param cascadeHouseDTO
+     *            请求参数
+     * @return 菜单列表
+     */
+    @Override
+    public R getCascadeHouseAddress(CascadeHouseDTO cascadeHouseDTO) {
+        List<ComMngCascadeHouseVO> cascadeHouseVOList = new ArrayList<>();
+
+        ComMngPopulationHouseDO houseDO = null;
+        if (cascadeHouseDTO.getHouseId() != null) {
+            houseDO = this.baseMapper.selectById(cascadeHouseDTO.getHouseId());
+        }
+
+        switch (cascadeHouseDTO.getLevel()) {
+            case 1:
+                cascadeHouseVOList = this.baseMapper.getHouseLevelByAlley(cascadeHouseDTO.getCommunityId(),
+                    cascadeHouseDTO.getVillageId());
+                cascadeHouseVOList = cascadeHouseVOList.stream()
+                    .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
+                            Comparator.comparing(ComMngCascadeHouseVO::getAlley))),ArrayList::new));
+                cascadeHouseVOList.forEach(cascade -> {
+                    cascade.setName(cascade.getAlley());
+                });
+                break;
+            case 2:
+                if (houseDO != null) {
+                    ComMngVillageDO villageDO = comActVillageDAO.selectById(houseDO.getVillageId());
+                    cascadeHouseVOList = this.baseMapper.getHouseLevelByHouseNum(villageDO.getAlley(),
+                        cascadeHouseDTO.getCommunityId(), cascadeHouseDTO.getVillageId());
+                    cascadeHouseVOList =
+                        cascadeHouseVOList.stream()
+                            .collect(Collectors.collectingAndThen(Collectors.toCollection(
+                                () -> new TreeSet<>(Comparator.comparing(o -> o.getAlley() + ";" + o.getHouseNum()))),
+                                ArrayList::new));
+                    cascadeHouseVOList.forEach(cascade -> {
+                        cascade.setName(cascade.getHouseNum()+"("+cascade.getName()+")");
+                    });
+                }
+                break;
+            case 3:
+                if (houseDO != null) {
+                    ComMngVillageDO villageDO = comActVillageDAO.selectById(houseDO.getVillageId());
+                    cascadeHouseVOList = this.baseMapper.getHouseLevelByFloor(villageDO.getAlley(),
+                        villageDO.getHouseNum(), cascadeHouseDTO.getCommunityId(), cascadeHouseDTO.getVillageId());
+                    cascadeHouseVOList = cascadeHouseVOList.stream()
+                        .collect(Collectors.collectingAndThen(
+                            Collectors.toCollection(() -> new TreeSet<>(
+                                Comparator.comparing(o -> o.getAlley() + ";" + o.getHouseNum() + ";" + o.getFloor()))),
+                            ArrayList::new));
+                    cascadeHouseVOList.forEach(cascade -> {
+                        cascade.setName(cascade.getFloor());
+                    });
+                }
+                break;
+            case 4:
+                if (houseDO != null) {
+                    cascadeHouseVOList =
+                        this.baseMapper.getHouseLevelByUnitNo(houseDO.getAlley(), houseDO.getHouseNum(),
+                            houseDO.getFloor(), cascadeHouseDTO.getCommunityId(), cascadeHouseDTO.getVillageId());
+                    cascadeHouseVOList = cascadeHouseVOList.stream()
+                        .collect(Collectors.collectingAndThen(
+                            Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(
+                                o -> o.getAlley() + ";" + o.getHouseNum() + ";" + o.getFloor() + ";" + o.getUnitNo()))),
+                            ArrayList::new));
+                    cascadeHouseVOList.forEach(cascade -> {
+                        cascade.setName(cascade.getUnitNo());
+                    });
+                }
+                break;
+            case 5:
+                if (houseDO != null) {
+                    cascadeHouseVOList = this.baseMapper.getHouseLevelByHouseNo(houseDO.getAlley(),
+                        houseDO.getHouseNum(), houseDO.getFloor(), houseDO.getUnitNo(),
+                        cascadeHouseDTO.getCommunityId(), cascadeHouseDTO.getVillageId());
+                    cascadeHouseVOList = cascadeHouseVOList.stream()
+                        .collect(Collectors.collectingAndThen(
+                            Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getAlley() + ";"
+                                + o.getHouseNum() + ";" + o.getFloor() + ";" + o.getUnitNo() + ";" + o.getHouseNo()))),
+                            ArrayList::new));
+                    cascadeHouseVOList.forEach(cascade -> {
+                        cascade.setName(cascade.getHouseNo());
+                    });
+                }
+                break;
+            default:
+                break;
+        }
+        return R.ok(cascadeHouseVOList);
+    }
+
+    @Override
+    public R getSecondHouseAddress(CascadeHouseDTO cascadeHouseDTO) {
+        return R.ok(this.comMngPopulationDAO.getSecondHouseAddress(cascadeHouseDTO.getCommunityId()));
+    }
+
+    @Override
+    public R getSecondHouse(CascadeHouseDTO cascadeHouseDTO) {
+        return R.ok(this.comMngPopulationDAO.getSecondHouse(cascadeHouseDTO.getCommunityId()));
+    }
+
+    /**
+     * 分页查询房屋列表
+     *
+     * @param populationHouseAdminDTO
+     *            请求参数
+     * @return 房屋列表
+     */
+    @Override
+    public R getPageHouse(ComMngPopulationHouseAdminDTO populationHouseAdminDTO) {
+
+        if (populationHouseAdminDTO.getHouseId() != null) {
+            ComMngPopulationHouseDO houseDO = this.baseMapper.selectById(populationHouseAdminDTO.getHouseId());
+            if (houseDO != null) {
+                switch (populationHouseAdminDTO.getLevel()) {
+                    case 1:
+                        populationHouseAdminDTO.setRoad(houseDO.getAlley());
+                        break;
+                    case 2:
+                        populationHouseAdminDTO.setRoad(houseDO.getAlley());
+//                        populationHouseAdminDTO.setDoorNo(houseDO.getHouseNum());
+                        break;
+                    case 3:
+                        populationHouseAdminDTO.setRoad(houseDO.getAlley());
+                        populationHouseAdminDTO.setDoorNo(houseDO.getHouseNum());
+//                        populationHouseAdminDTO.setFloor(houseDO.getFloor());
+                        break;
+                    case 4:
+                        populationHouseAdminDTO.setRoad(houseDO.getAlley());
+                        populationHouseAdminDTO.setDoorNo(houseDO.getHouseNum());
+                        populationHouseAdminDTO.setFloor(houseDO.getFloor());
+//                        populationHouseAdminDTO.setUnitNo(houseDO.getUnitNo());
+                        break;
+                    case 5:
+                        populationHouseAdminDTO.setRoad(houseDO.getAlley());
+                        populationHouseAdminDTO.setDoorNo(houseDO.getHouseNum());
+                        populationHouseAdminDTO.setFloor(houseDO.getFloor());
+                        populationHouseAdminDTO.setUnitNo(houseDO.getUnitNo());
+                        if(populationHouseAdminDTO.getLevelIsAll() == null){
+                            populationHouseAdminDTO.setHouseNo(houseDO.getHouseNo());
+                        }
+                        break;
+                    default:
+                        break;
+                }
+            }
+        }
+        return R.ok(this.baseMapper.getPageHouse(
+            new Page(populationHouseAdminDTO.getPageNum(), populationHouseAdminDTO.getPageSize()),
+            populationHouseAdminDTO));
+    }
+
+    /**
+     * 根据id查询实有房屋信息
+     *
+     * @param houseId
+     *            房屋id
+     * @return 房屋信息
+     */
+    @Override
+    public R getHouseDetail(Long houseId) {
+        ComMngPopulationHouseDetailAdminVO houseDetailAdminVO = this.baseMapper.getHouseDetail(houseId);
+        if (houseDetailAdminVO != null) {
+            // 查询房屋下住户信息
+            List<ComMngPopulationHouseUserAdminVO> houseUserList =
+                comMngPopulationHouseUserDAO.getHouseUserByHouseId(houseDetailAdminVO.getId());
+            if (!houseUserList.isEmpty()) {
+                houseDetailAdminVO.setHouseUserList(houseUserList);
+            }
+        }
+        return R.ok(houseDetailAdminVO);
+    }
+
+    /**
+     * 编辑实有房屋信息
+     *
+     * @param houseEditAdminDTO
+     *            请求参数
+     * @return 编辑结果
+     */
+    @Override
+    public R editHouse(ComMngPopulationHouseEditAdminDTO houseEditAdminDTO) {
+
+        // 查询实有房屋信息
+        ComMngPopulationHouseDO houseDO = this.baseMapper.selectById(houseEditAdminDTO.getHouseId());
+        if (houseDO == null) {
+            return R.fail("参数错误");
+        }
+
+        BeanUtils.copyProperties(houseEditAdminDTO, houseDO);
+        houseDO.setUpdateAt(new Date());
+        if (this.baseMapper.updateById(houseDO) > 0) {
+            return R.ok();
+        } else {
+            return R.fail();
+        }
+    }
+
+    /**
+     * 根据房屋id列表删除房屋信息
+     *
+     * @param Ids
+     *            请求参数
+     * @return 删除结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R deleteHouses(List<Long> Ids) {
+        LambdaQueryWrapper<ComMngPopulationHouseUserDO> paramWrapper = Wrappers.lambdaQuery();
+        paramWrapper.in(ComMngPopulationHouseUserDO::getHouseId, Ids);
+        List<ComMngPopulationHouseUserDO> mngPopulationDOList = comMngPopulationHouseUserDAO.selectList(paramWrapper);
+        if (!mngPopulationDOList.isEmpty()) {
+            return R.fail("无法删除,已绑定实有人口!");
+        }
+
+        if (this.baseMapper.deleteBatchIds(Ids) > 0) {
+            return R.ok();
+        } else {
+            return R.fail();
+        }
+    }
+
+    /**
+     * 实有房屋统计
+     *
+     * @param communityId
+     *            社区id
+     * @return 统计结果
+     */
+    @Override
+    public R getHouseTotalByAdmin(Long communityId) {
+        ComMngPopulationHouseTotalVO houseTotalVO = new ComMngPopulationHouseTotalVO();
+        if (communityId != null) {
+            houseTotalVO = this.baseMapper.getHouseTotalByAdmin(communityId);
+        }
+        return R.ok(houseTotalVO);
+    }
+
+    /**
+     * 根据社区id查询社区所有省市区
+     *
+     * @param communityId
+     *            社区id
+     * @return 社区所在省市区
+     */
+    @Override
+    public R getRegion(Long communityId) {
+        return R.ok(this.baseMapper.getRegion(communityId));
+    }
+
+    /**
+     * 小区楼栋下房屋列表
+     *
+     * @param buildHouseAppDTO
+     *            请求参数
+     * @return 房屋列表
+     */
+    @Override
+    public R getGridVillageBuildingHouseList(PageComMngVillageBuildHouseAppDTO buildHouseAppDTO) {
+
+        IPage<ComMngVillageBuildingHouseVO> buildingHouseVOIPage = this.baseMapper.getGridVillageBuildingHouseList(
+            new Page(buildHouseAppDTO.getPageNum(), buildHouseAppDTO.getPageSize()), buildHouseAppDTO);
+        if (!buildingHouseVOIPage.getRecords().isEmpty()) {
+            buildingHouseVOIPage.getRecords().forEach(house -> {
+                boolean result = house.getHouseNo().matches("[0-9]+");
+                if (result) {// 该字段为纯数字
+                    if (house.getHouseNo().length() == 4) {
+                        house.setBuildingNum(house.getHouseNo().substring(0, 2).replaceAll("^(0+)", ""));
+                    } else if (house.getHouseNo().length() == 3) {
+                        house.setBuildingNum(house.getHouseNo().substring(0, 1).replaceAll("^(0+)", ""));
+                    }
+                } else {
+                    house.setBuildingNum("-");
+                }
+            });
+        }
+        return R.ok(buildingHouseVOIPage);
+    }
+
+    /**
+     * 小区楼栋下房屋信息
+     *
+     * @param houseId
+     *            房屋id
+     * @return 房屋信息
+     */
+    @Override
+    public R getGridVillageBuildingHouseDetail(Long houseId) {
+
+        ComMngVillageBuildingHouseDetailVO buildingHouseDetailVO =
+            this.baseMapper.getGridVillageBuildingHouseDetail(houseId);
+        if (buildingHouseDetailVO != null) {
+
+            // 转换楼层数
+            String houseNo = buildingHouseDetailVO.getHouseNo();
+            boolean result = houseNo.matches("[0-9]+");
+            if (result) {// 该字段为纯数字
+                if (houseNo.length() == 4) {
+                    buildingHouseDetailVO.setBuildingNum(houseNo.substring(0, 2).replaceAll("^(0+)", ""));
+                } else if (houseNo.length() == 3) {
+                    buildingHouseDetailVO.setBuildingNum(houseNo.substring(0, 1).replaceAll("^(0+)", ""));
+                }
+            } else {
+                buildingHouseDetailVO.setBuildingNum("-");
+            }
+
+            // 查询该房屋的户主信息
+            List<PopulationListVO> householderList =
+                this.baseMapper.getGridVillageBuildingPopulationList(buildingHouseDetailVO.getId(), 1, null);
+            if (!householderList.isEmpty()) {
+                householderList.forEach(householder -> {
+                    try {
+                        Integer age = IdcardUtil.getAgeByIdCard(householder.getCardNo());
+                        householder.setAge(age);
+                    } catch (Exception e) {
+                        log.error("身份证号码转换年龄失败,人员id:" + householder.getId());
+                    }
+                });
+                buildingHouseDetailVO.setHouseholderList(householderList);
+            }
+            // 查询该房屋的住户信息
+            List<PopulationListVO> populationList =
+                this.baseMapper.getGridVillageBuildingPopulationList(buildingHouseDetailVO.getId(), null, null);
+            if (!populationList.isEmpty()) {
+                populationList.forEach(population -> {
+                    try {
+                        Integer age = IdcardUtil.getAgeByIdCard(population.getCardNo());
+                        population.setAge(age);
+                    } catch (Exception e) {
+                        log.error("身份证号码转换年龄失败,人员id:" + population.getId());
+                    }
+                });
+                buildingHouseDetailVO.setPopulationList(populationList);
+            }
+        }
+        return R.ok(buildingHouseDetailVO);
+    }
+
+    @Override
+    public R subordinate(ComMngPopulationSubordinateDTO subordinateDTO) {
+
+        List<ComMngSubordinateVO> subordinateList = new ArrayList<>();
+
+        ComMngPopulationHouseDO houseDO = null;
+        if (subordinateDTO.getHouseId() != null) {
+            houseDO = this.baseMapper.selectById(subordinateDTO.getHouseId());
+        }
+
+        switch (subordinateDTO.getType()) {
+            case 1:
+                subordinateList = this.baseMapper.getHouseLevelByFloors(subordinateDTO.getVillageId());
+                // subordinateList =
+                // subordinateList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new
+                // TreeSet<>(Comparator.comparing(o -> o.getFloor()))), ArrayList::new));
+//                subordinateList = subordinateList.stream().filter(distinctByKey(ComMngSubordinateVO::getFloor))
+//                    .collect(Collectors.toList());
+                subordinateList.forEach(cascade -> {
+                    if (cascade.getFloor().contains("栋")) {
+                        cascade.setName(cascade.getFloor());
+                    } else {
+                        cascade.setName(cascade.getFloor() + "栋");
+                    }
+                });
+                break;
+            case 2:
+                if (houseDO != null) {
+                    subordinateList =
+                        this.baseMapper.getHouseLevelByUnitNos(houseDO.getVillageId(), houseDO.getFloor());
+//                    subordinateList = subordinateList.stream().filter(distinctByKey(ComMngSubordinateVO::getUnitNo))
+//                        .collect(Collectors.toList());
+                    // subordinateList =
+                    // subordinateList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new
+                    // TreeSet<>(Comparator.comparing(o -> o.getUnitNo()))), ArrayList::new));
+                    subordinateList.forEach(cascade -> {
+                        if (cascade.getUnitNo().contains("单元")) {
+                            cascade.setName(cascade.getUnitNo());
+                        } else {
+                            cascade.setName(cascade.getUnitNo() + "单元");
+                        }
+                    });
+                }
+                break;
+            case 3:
+                if (houseDO != null) {
+                    subordinateList = this.baseMapper.getHouseLevelByHouseNos(houseDO.getVillageId(),
+                        houseDO.getFloor(), houseDO.getUnitNo());
+//                    subordinateList = subordinateList.stream().filter(distinctByKey(ComMngSubordinateVO::getHouseNo))
+//                        .collect(Collectors.toList());
+                    // subordinateList =
+                    // subordinateList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new
+                    // TreeSet<>(Comparator.comparing(o -> o.getHouseNo()))), ArrayList::new));
+                    subordinateList.forEach(cascade -> {
+                        cascade.setName(cascade.getHouseNo());
+                    });
+                }
+                break;
+            default:
+                break;
+        }
+        return R.ok(subordinateList);
+    }
+
+    @Override
+    public R populationRelationHouse(ComMngPopulationRelationHouseDTO relationHouseDTO) {
+
+        if (relationHouseDTO.getPopulationId().isEmpty()) {
+            return R.fail("请选择居民");
+        }
+
+        // 查询房屋信息
+        ComMngPopulationHouseDO houseDO = comMngPopulationHouseDAO.selectById(relationHouseDTO.getHouseId());
+        if (houseDO == null) {
+            return R.fail("未查到房屋信息");
+        }
+
+        relationHouseDTO.getPopulationId().forEach(population -> {
+            // 修改人口信息
+            ComMngPopulationDO populationDO = new ComMngPopulationDO();
+            populationDO.setId(population);
+            populationDO.setHouseId(houseDO.getId());
+            populationDO.setRoad(houseDO.getAlley());
+            populationDO.setDoorNo(houseDO.getHouseNum());
+            populationDO.setFloor(houseDO.getFloor());
+            populationDO.setUnitNo(houseDO.getUnitNo());
+            populationDO.setHouseNo(houseDO.getHouseNo());
+            comMngPopulationDAO.updateById(populationDO);
+
+            // 添加房屋关系
+            ComMngPopulationHouseUserDO houseUserDO =
+                comMngPopulationHouseUserDAO.selectOne(new QueryWrapper<ComMngPopulationHouseUserDO>().lambda()
+                    .eq(ComMngPopulationHouseUserDO::getPopulId, population)
+                    .eq(ComMngPopulationHouseUserDO::getHouseId, relationHouseDTO.getHouseId()));
+            if (houseUserDO == null) {
+                houseUserDO = new ComMngPopulationHouseUserDO();
+                houseUserDO.setId(Snowflake.getId());
+                houseUserDO.setHouseId(relationHouseDTO.getHouseId());
+                houseUserDO.setPopulId(population);
+                houseUserDO.setRelationId(ComMngPopulationHouseUserDO.relationId.zizhu);
+                comMngPopulationHouseUserDAO.insert(houseUserDO);
+            } else {
+                houseUserDO.setRelationId(ComMngPopulationHouseUserDO.relationId.zizhu);
+                comMngPopulationHouseUserDAO.updateById(houseUserDO);
+            }
+        });
+        return R.ok();
+    }
+
+    @Override
+    @Transactional
+    public R insertHouse(ComMngPopulationHouseInsertAdminDTO houseEditAdminDTO) {
+        ComMngPopulationHouseDO houseDO=new ComMngPopulationHouseDO();
+        BeanUtils.copyProperties(houseEditAdminDTO, houseDO);
+        houseDO.setCreateAt(new Date());
+        if (this.baseMapper.insert(houseDO) > 0) {
+            ComMngPopulationHouseUserDO comMngPopulationHouseUserDO=new ComMngPopulationHouseUserDO();
+            comMngPopulationHouseUserDO.setHouseId(houseDO.getId());
+            comMngPopulationHouseUserDO.setPopulId(houseEditAdminDTO.getPopulationId());
+            comMngPopulationHouseUserDAO.insert(comMngPopulationHouseUserDO);
+            return R.ok();
+        } else {
+            return R.fail();
+        }
+    }
+
+    /**
+     * 实有房屋数据修复定时任务
+     * @return  实有房屋数据修复定时任务
+     */
+    @Override
+    @Transactional
+    public R timedTaskHouseJobHandler(){
+
+        //需要修改的房屋信息
+        List<ComMngPopulationHouseDO> updateHouseList = new ArrayList<>();
+        //需要修改的房屋人员关系信息
+        List<ComMngPopulationHouseUserDO> updateHouseUserList = new ArrayList<>();
+
+        ComMngPopulationDO population = new ComMngPopulationDO();
+
+        //查询所有房屋列表信息
+        List<ComMngPopulationHouseDO> houseList = comMngPopulationHouseDAO.selectList(null);
+        //遍历房屋信息
+        for (ComMngPopulationHouseDO house : houseList) {
+            List<ComMngPopulationHouseUserDO> houseUserList = comMngPopulationHouseUserDAO.selectList(new QueryWrapper<ComMngPopulationHouseUserDO>()
+                    .lambda().eq(ComMngPopulationHouseUserDO::getHouseId,house.getId()));
+            if(houseUserList.isEmpty()){
+                house.setStatus(ComMngPopulationHouseDO.status.kongzhi);
+            }else{
+                house.setStatus(ComMngPopulationHouseDO.status.zizhu);
+
+                //查询该房屋下人员是否是租住状态
+                List<Long> populationIds = houseUserList.stream().map(ComMngPopulationHouseUserDO::getPopulId).collect(Collectors.toList());
+                Integer count = comMngPopulationHouseUserDAO.getHouseUserIsRent(populationIds);
+                if(count > 0){
+                    house.setStatus(ComMngPopulationHouseDO.status.zuzhu);
+                }
+
+                //查询该房屋下人员的关联信息的关系
+                for (ComMngPopulationHouseUserDO houseUser : houseUserList) {
+                    population = comMngPopulationDAO.selectById(houseUser.getPopulId());
+                    if(population != null){
+                        if(population.getIsRent() != null && population.getIsRent().equals(ComMngPopulationDO.isOk.yes)){
+                            houseUser.setRelationId(ComMngPopulationHouseUserDO.relationId.zuhu);
+                        }else {
+                            houseUser.setRelationId(ComMngPopulationHouseUserDO.relationId.zuzhu);
+                        }
+                        updateHouseUserList.add(houseUser);
+                    }
+                }
+            }
+
+            //查看房子的楼层排序
+            if(house.getFloorNum() == null && StringUtils.isNotEmpty(house.getHouseNo())){
+                boolean result = house.getHouseNo().matches("[0-9]+");
+                if (result) {// 该字段为纯数字
+                    if (house.getHouseNo().length() == 4) {
+                        String floorNum = house.getHouseNo().substring(0, 2).replaceAll("^(0+)", "");
+                        if(StringUtils.isNotEmpty(floorNum)){
+                            house.setFloorNum(Integer.parseInt(floorNum));
+                        }
+                    } else if (house.getHouseNo().length() == 3) {
+                        String floorNum = house.getHouseNo().substring(0, 1).replaceAll("^(0+)", "");
+                        if(StringUtils.isNotEmpty(floorNum)){
+                            house.setFloorNum(Integer.parseInt(floorNum));
+                        }
+                    }
+                }
+            }
+            updateHouseList.add(house);
+        }
+
+        if(!updateHouseList.isEmpty()){
+            comMngPopulationHouseService.updateBatchById(updateHouseList);
+        }
+
+        if(!updateHouseUserList.isEmpty()){
+            comMngPopulationHouseUserService.updateBatchById(updateHouseUserList);
+        }
+        return R.ok();
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationHouseUserServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationHouseUserServiceImpl.java
new file mode 100644
index 0000000..6e992e4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationHouseUserServiceImpl.java
@@ -0,0 +1,143 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import com.panzhihua.common.model.dtos.community.ComMngPopulationHouseUserVO;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.grid.AddComMngHousePopulationDTO;
+import com.panzhihua.common.model.dtos.grid.DelComMngHousePopulationDTO;
+import com.panzhihua.common.model.dtos.grid.admin.PageComMngVillagePopulationHouseDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.service_community.dao.ComMngPopulationHouseUserDAO;
+import com.panzhihua.service_community.model.dos.ComMngPopulationHouseUserDO;
+import com.panzhihua.service_community.service.ComMngPopulationHouseUserService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-05-18 09:26:53
+ * @describe 房屋居住信息关联表服务实现类
+ */
+@Slf4j
+@Service
+public class ComMngPopulationHouseUserServiceImpl extends
+    ServiceImpl<ComMngPopulationHouseUserDAO, ComMngPopulationHouseUserDO> implements ComMngPopulationHouseUserService {
+
+    /**
+     * 批量向房屋新增人员
+     * 
+     * @param housePopulationDTO
+     *            请求参数
+     * @return 添加结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R addBuildingHousePopulation(AddComMngHousePopulationDTO housePopulationDTO) {
+        List<ComMngPopulationHouseUserDO> populationHouseUserDOList = new ArrayList<>();
+        if (!housePopulationDTO.getPopulationIds().isEmpty()) {
+            housePopulationDTO.getPopulationIds().forEach(housePopulationId -> {
+                ComMngPopulationHouseUserDO populationHouseUserDO =
+                    this.baseMapper.selectOne(new QueryWrapper<ComMngPopulationHouseUserDO>().lambda()
+                        .eq(ComMngPopulationHouseUserDO::getHouseId, housePopulationDTO.getHouseId())
+                        .eq(ComMngPopulationHouseUserDO::getPopulId, housePopulationId));
+                if (populationHouseUserDO == null) {
+                    populationHouseUserDO = new ComMngPopulationHouseUserDO();
+                    populationHouseUserDO.setId(Snowflake.getId());
+                    populationHouseUserDO.setHouseId(housePopulationDTO.getHouseId());
+                    populationHouseUserDO.setPopulId(housePopulationId);
+                    populationHouseUserDO.setRelationId(ComMngPopulationHouseUserDO.relationId.zizhu);
+                    populationHouseUserDO.setStartAt(new Date());
+                    populationHouseUserDO.setCreateAt(new Date());
+                    if (housePopulationDTO.getType().equals(AddComMngHousePopulationDTO.type.hz)) {
+                        populationHouseUserDO.setRelation(ComMngPopulationHouseUserDO.relation.hz);
+                    }
+                    populationHouseUserDOList.add(populationHouseUserDO);
+                } else {
+                    if (housePopulationDTO.getType().equals(AddComMngHousePopulationDTO.type.hz)) {
+                        populationHouseUserDO.setRelation(ComMngPopulationHouseUserDO.relation.hz);
+                    }
+                    populationHouseUserDO.setRelationId(ComMngPopulationHouseUserDO.relationId.zizhu);
+                    this.baseMapper.updateById(populationHouseUserDO);
+                }
+            });
+        }
+        this.saveBatch(populationHouseUserDOList);
+        return R.ok();
+    }
+
+    /**
+     * 批量删除房屋内人员
+     * 
+     * @param housePopulationDTO
+     *            请求参数
+     * @return 删除结果
+     */
+    @Override
+    public R delBuildingHousePopulation(DelComMngHousePopulationDTO housePopulationDTO) {
+
+        ComMngPopulationHouseUserDO houseUserDO = this.baseMapper.selectById(housePopulationDTO.getHousePopulationId());
+        if (houseUserDO == null) {
+            return R.fail("未查询到居住用户数据");
+        }
+        if (housePopulationDTO.getType().equals(DelComMngHousePopulationDTO.type.hz)) {
+            if (houseUserDO.getRelationId() == null
+                || !houseUserDO.getRelationId().equals(ComMngPopulationHouseUserDO.relationId.zizhu)) {
+                this.baseMapper.deleteById(housePopulationDTO.getHousePopulationId());
+            } else {
+                this.baseMapper.delBuildingHousePopulationRelation(housePopulationDTO.getHousePopulationId());
+            }
+        } else {
+            if (houseUserDO.getRelation() == null
+                || !houseUserDO.getRelation().equals(ComMngPopulationHouseUserDO.relation.hz)) {
+                this.baseMapper.deleteById(housePopulationDTO.getHousePopulationId());
+            } else {
+                this.baseMapper.delBuildingHousePopulationRelationId(housePopulationDTO.getHousePopulationId());
+            }
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R getVillagePopulationHouseAdmin(PageComMngVillagePopulationHouseDTO villagePopulationDTO) {
+        return R.ok(this.baseMapper.getVillagePopulationHouseAdmin(
+            new Page(villagePopulationDTO.getPageNum(), villagePopulationDTO.getPageSize()), villagePopulationDTO));
+    }
+
+    @Override
+    public R insert(ComMngPopulationHouseUserVO comMngPopulationHouseUserVO) {
+        ComMngPopulationHouseUserDO comMngPopulationHouseUserDO=new ComMngPopulationHouseUserDO();
+        BeanUtils.copyProperties(comMngPopulationHouseUserVO,comMngPopulationHouseUserDO);
+        comMngPopulationHouseUserDO.setId(Snowflake.getId());
+        this.baseMapper.insert(comMngPopulationHouseUserDO);
+        return R.ok();
+    }
+
+    @Override
+    public R updateAll(ComMngPopulationHouseUserVO comMngPopulationHouseUserVO) {
+        ComMngPopulationHouseUserDO comMngPopulationHouseUserDO=new ComMngPopulationHouseUserDO();
+        BeanUtils.copyProperties(comMngPopulationHouseUserVO,comMngPopulationHouseUserDO);
+        this.baseMapper.updateById(comMngPopulationHouseUserDO);
+        return R.ok();
+    }
+
+    @Override
+    public R delete(ComMngPopulationHouseUserVO comMngPopulationHouseUserVO) {
+        return R.ok(this.baseMapper.deleteById(comMngPopulationHouseUserVO.getId()));
+    }
+
+    @Override
+    public R detail(Long id) {
+        return R.ok(this.baseMapper.detail(id));
+    }
+
+}
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
new file mode 100644
index 0000000..80c12a7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngPopulationServiceImpl.java
@@ -0,0 +1,8890 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.stream.Collectors;
+
+import javax.annotation.Resource;
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
+import com.panzhihua.common.model.vos.community.bigscreen.WestScreenStatics;
+import com.panzhihua.common.model.vos.community.screen.civil.*;
+import com.panzhihua.common.model.vos.community.bigscreen.*;
+import com.panzhihua.common.utlis.*;
+import com.panzhihua.service_community.util.WxDataUtil;
+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;
+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.conditions.update.UpdateWrapper;
+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.google.common.collect.Lists;
+import com.panzhihua.common.enums.*;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.dtos.community.*;
+import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenEventDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.BigScreenEventDetailDTO;
+import com.panzhihua.common.model.dtos.grid.PageComMngPopulationDTO;
+import com.panzhihua.common.model.dtos.grid.PagePopulationListDTO;
+import com.panzhihua.common.model.dtos.grid.admin.ComMngPopulationExportDTO;
+import com.panzhihua.common.model.dtos.grid.admin.ComMngPopulationListDTO;
+import com.panzhihua.common.model.dtos.grid.admin.PageComMngVillagePopulationDTO;
+import com.panzhihua.common.model.dtos.user.PageInputUserDTO;
+import com.panzhihua.common.model.helper.AESUtil;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.*;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenStatisticPartyBuild;
+import com.panzhihua.common.model.vos.community.screen.civil.CivilPopulationStatisticsVO;
+import com.panzhihua.common.model.vos.community.screen.civil.CivilStatisticsVO;
+import com.panzhihua.common.model.vos.community.screen.civil.CivilVillageStatisticsVO;
+import com.panzhihua.common.model.vos.community.screen.event.*;
+import com.panzhihua.common.model.vos.community.screen.event.EventTransferRecordVO;
+import com.panzhihua.common.model.vos.community.screen.index.*;
+import com.panzhihua.common.model.vos.grid.*;
+import com.panzhihua.common.model.vos.grid.admin.ComMngPopulationListVO;
+import com.panzhihua.common.model.vos.grid.admin.ComMngPopulationVillageVO;
+import com.panzhihua.common.model.vos.grid.admin.excel.ComMngPopulationExportExcelVO;
+import com.panzhihua.common.model.vos.screen.ComActPopulationCultureVO;
+import com.panzhihua.common.model.vos.screen.ComActPopulationScreenVO;
+import com.panzhihua.common.model.vos.screen.ComMngPopulationAgeVO;
+import com.panzhihua.common.model.vos.user.*;
+import com.panzhihua.service_community.dao.*;
+import com.panzhihua.service_community.model.dos.*;
+import com.panzhihua.service_community.service.*;
+
+import cn.hutool.core.util.IdcardUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import static java.util.Objects.nonNull;
+
+/**
+ * 实有人口Service实现类
+ */
+@Slf4j
+@Service
+public class ComMngPopulationServiceImpl extends ServiceImpl<ComMngPopulationDAO, ComMngPopulationDO> implements ComMngPopulationService {
+    @Resource
+    private ComMngPopulationDAO populationDAO;
+    @Resource
+    private ComActDAO comActDAO;
+    @Resource
+    private ComActVillageDAO comActVillageDAO;
+    @Resource
+    private ComMngPopulationHouseDAO comMngPopulationHouseDAO;
+    @Resource
+    private ComStreetDAO comStreetDAO;
+    @Resource
+    private ComMngCarDAO comMngCarDAO;
+    @Resource
+    private ComMngPopulationHouseUserDAO comMngPopulationHouseUserDAO;
+    @Resource
+    private ComMngPopulationCommunityTagsDAO comMngPopulationCommunityTagsDAO;
+    @Resource
+    private ComMngPopulationCommunityTagsService comMngPopulationCommunityTagsService;
+    @Resource
+    private ComMngPopulationDAO comMngPopulationDAO;
+    @Resource
+    private ComMngPopulationHouseUserService comMngPopulationHouseUserService;
+    @Resource
+    private ComMngPopulationHouseService comMngPopulationHouseService;
+    @Resource
+    private EventResourceService eventResourceService;
+    @Resource
+    private BigScreenDAO bigScreenDAO;
+    @Resource
+    private ComMngUserTagDAO comMngUserTagDAO;
+    @Resource
+    private ComDrugPopulationDAO comDrugPopulationDAO;
+    @Resource
+    private ComCorrectPopulationDAO comCorrectPopulationDAO;
+    @Resource
+    private ComMajorPopulationDAO comMajorPopulationDAO;
+    @Resource
+    private ComCultPopulationDAO comCultPopulationDAO;
+    @Resource
+    private ComRehabilitationPopulationDAO comRehabilitationPopulationDAO;
+    @Resource
+    private ComKeyPopulationDAO comKeyPopulationDAO;
+    @Resource
+    private ComSentencePopulationDAO comSentencePopulationDAO;
+    @Resource
+    private ComVeteransPopulationDAO comVeteransPopulationDAO;
+    @Resource
+    private ComDisabilityPopulationDAO comDisabilityPopulationDAO;
+    @Resource
+    private ComLowSecurityPopulationDAO comLowSecurityPopulationDAO;
+    @Resource
+    private ComElderAuthElderliesDAO comElderAuthElderliesDAO;
+    @Resource
+    private ComPensionAuthPensionerDAO comPensionAuthPensionerDAO;
+    @Resource
+    private ComEldersAuthStatisticsMapper comEldersAuthStatisticsMapper;
+    @Resource
+    private ComPensionAuthStatisticsDAO comPensionAuthStatisticsDAO;
+    @Resource
+    private ComActReserveMapper comActReserveMapper;
+    @Value("${domain.aesKey:}")
+    private String aesKey;
+    @Resource
+    private ComActEasyPhotoDAO comActEasyPhotoDAO;
+    @Resource
+    private ComMngBuildingDAO comMngBuildingDAO;
+
+    /**
+     * 新增实有人口
+     *
+     * @param comMngPopulationVO
+     *            新增信息
+     * @return 新增结果
+     */
+    @Override
+    public R addPopulation(ComMngPopulationVO comMngPopulationVO) {
+        ComMngPopulationDO comMngPopulationDO = new ComMngPopulationDO();
+        Integer integer = populationDAO.selectCount(new QueryWrapper<ComMngPopulationDO>().lambda()
+            .eq(ComMngPopulationDO::getCardNo, comMngPopulationVO.getCardNo()));
+        if (integer > 0) {
+            return R.fail("实有人口已经存在");
+        }
+        BeanUtils.copyProperties(comMngPopulationVO, comMngPopulationDO);
+
+        int nub = populationDAO.insert(comMngPopulationDO);
+        if (nub < 1) {
+            return R.fail();
+        }
+        return R.ok(nub);
+    }
+
+    /**
+     * 编辑实有人口
+     *
+     * @param comMngPopulationVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @Override
+    public R putPopulation(ComMngPopulationVO comMngPopulationVO) {
+        ComMngPopulationDO comMngPopulationDO = populationDAO.selectById(comMngPopulationVO.getId());
+        if (comMngPopulationDO == null) {
+            return R.fail("未查询到人口记录");
+        }
+        BeanUtils.copyProperties(comMngPopulationVO, comMngPopulationDO);
+
+        int nub = populationDAO.updateById(comMngPopulationDO);
+        if (nub < 1) {
+            return R.fail();
+        }
+        return R.ok();
+    }
+
+    /**
+     * 查询实有人口
+     *
+     * @param comMngPopulationVO
+     *            查询条件
+     * @return 实有人口集合
+     */
+    @Override
+    public R listPopulation(ComMngPopulationDTO comMngPopulationVO) {
+        List<ComMngPopulationVO> populationVOS = populationDAO.listPopulation(comMngPopulationVO);
+        return R.ok(populationVOS);
+    }
+
+    /**
+     * 实有人口详情
+     *
+     * @param populationId
+     *            实有人口id
+     * @return 实有人口详情
+     */
+    @Override
+    public R detailPopulation(Long populationId, Long communityId) {
+        ComMngPopulationDO comMngPopulationDO = populationDAO.selectById(populationId);
+        if (ObjectUtils.isEmpty(comMngPopulationDO)) {
+            return R.fail("用户信息不存在");
+        }
+        // if(StringUtils.isNotEmpty(comMngPopulationDO.getBirthday())){//计算年龄
+        // comMngPopulationDO.setAge(AgeUtils.getAgeFromBirthTimes(comMngPopulationDO.getBirthday()));
+        // }
+
+        ComMngPopulationVO comMngPopulationVO = new ComMngPopulationVO();
+        BeanUtils.copyProperties(comMngPopulationDO, comMngPopulationVO);
+        comMngPopulationVO.setCultureLevelName(PopulCultureLevelEnum.getCnDescByName(comMngPopulationVO.getCultureLevel()));
+        // 查询户主关系信息
+        // List<ComHouseMemberVo> comMngFamilyInfoVOS =
+        // populationDAO.listHouseMermberByUserId(comMngPopulationDO.getHouseId(),comMngPopulationDO.getId());
+        // if (!comMngFamilyInfoVOS.isEmpty()) {
+        // comMngPopulationVO.setComMngFamilyInfoVOS(comMngFamilyInfoVOS);
+        // }
+        // 查询户主关系信息
+        List<ComHouseMemberVo> comMngFamilyInfoVOS = populationDAO.listHouseMermberByPopuId(comMngPopulationDO.getId());
+        if (!comMngFamilyInfoVOS.isEmpty()) {
+            for (ComHouseMemberVo comHouseMemberVo : comMngFamilyInfoVOS) {
+                comHouseMemberVo.setAge(AgeUtils.getAgeFromBirthTimes(comHouseMemberVo.getBirthDay()));
+            }
+            comMngPopulationVO.setComMngFamilyInfoVOS(comMngFamilyInfoVOS);
+        }
+        // 设置户主关系
+        List<ComMngPopulationHouseUserDO> comMngPopulationHouseUserDOS =
+            comMngPopulationHouseUserDAO.selectList((new QueryWrapper<ComMngPopulationHouseUserDO>().lambda()
+                .eq(ComMngPopulationHouseUserDO::getPopulId, populationId)));
+        if (!comMngPopulationHouseUserDOS.isEmpty()) {
+            comMngPopulationVO
+                .setRelation(comMngPopulationHouseUserDOS.get(comMngPopulationHouseUserDOS.size() - 1).getRelation());
+            comMngPopulationVO.setRelationName(PopulRelationEnum.getCnDescByName(comMngPopulationVO.getRelation()));
+        }
+        // 设置年龄
+        if (StringUtils.isNotEmpty(comMngPopulationVO.getBirthday())) {
+            comMngPopulationVO.setAge(AgeUtils.getAgeFromBirthTimes(comMngPopulationVO.getBirthday()));
+        }
+        // 设置特殊群体标签
+        ComMngPopulationCommunityTagsDO comMngPopulationCommunityTagsDO =
+            comMngPopulationCommunityTagsDAO.selectOne(new QueryWrapper<ComMngPopulationCommunityTagsDO>().lambda()
+                    .eq(ComMngPopulationCommunityTagsDO::getPopulationId, populationId)
+                    .eq(ComMngPopulationCommunityTagsDO::getCommunityId, communityId));
+        if (null != comMngPopulationCommunityTagsDO) {
+            comMngPopulationVO.setLabel(comMngPopulationCommunityTagsDO.getLabel());
+        }
+
+        // 查询当前用户电子档信息
+        if (!StringUtils.isEmpty(comMngPopulationDO.getCardNo())) {
+            UserElectronicFileVO electronicFileVO =
+                populationDAO.getSysUserElectronicFile(comMngPopulationDO.getCardNo());
+            if (electronicFileVO != null) {
+                comMngPopulationVO.setUserElectronicFileVO(electronicFileVO);
+                // 查询家庭成员信息
+                List<ComMngFamilyInfoVO> familyInfoVOList =
+                    populationDAO.listFamilyByUserId(electronicFileVO.getUserId());
+                if (!familyInfoVOList.isEmpty()) {
+                    comMngPopulationVO.setFamilyInfoVOList(familyInfoVOList);
+                }
+            }
+        }
+
+        // 查询当前用户房屋信息
+        List<ComMngHouseVo> houseList = comMngPopulationHouseDAO.getPopulHouseListByPopulId(populationId);
+        if (!houseList.isEmpty()) {
+            houseList.forEach(house -> {
+
+            });
+            comMngPopulationVO.setHouseList(houseList);
+        }
+
+        // 查询当前实有人口车辆信息
+        List<ComMngPopulationCarVO> carList = comMngCarDAO.getPopulationCarListByIdCard(comMngPopulationDO.getCardNo());
+        if (!carList.isEmpty()) {
+            comMngPopulationVO.setCarList(carList);
+        }
+
+        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)
+                            .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)
+                            .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)
+                            .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)
+                            .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)
+                            .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)
+                            .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)
+                            .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)
+                            .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);
+    }
+
+    /**
+     * 分页查询社区
+     *
+     * @param comMngPopulationVO
+     *            查询参数
+     * @return 分页集合
+     */
+    @Override
+    public R pagePopulation(ComMngPopulationDTO comMngPopulationVO) {
+        Page page = new Page<>();
+        Long pageNum = comMngPopulationVO.getPageNum();
+        Long pageSize = comMngPopulationVO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1L;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10L;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+
+        if (comMngPopulationVO.getHouseId() != null) {
+            ComMngPopulationHouseDO houseDO = comMngPopulationHouseDAO.selectById(comMngPopulationVO.getHouseId());
+            if (houseDO != null) {
+                switch (comMngPopulationVO.getLevel()) {
+                    case 1:
+                        comMngPopulationVO.setRoad(houseDO.getAlley());
+                        break;
+                    case 2:
+                        comMngPopulationVO.setRoad(houseDO.getAlley());
+//                        comMngPopulationVO.setDoorNo(houseDO.getHouseNum());
+                        break;
+                    case 3:
+                        comMngPopulationVO.setRoad(houseDO.getAlley());
+                        comMngPopulationVO.setDoorNo(houseDO.getHouseNum());
+//                        comMngPopulationVO.setFloor(houseDO.getFloor());
+                        break;
+                    case 4:
+                        comMngPopulationVO.setRoad(houseDO.getAlley());
+                        comMngPopulationVO.setDoorNo(houseDO.getHouseNum());
+                        comMngPopulationVO.setFloor(houseDO.getFloor());
+//                        comMngPopulationVO.setUnitNo(houseDO.getUnitNo());
+                        break;
+                    case 5:
+                        comMngPopulationVO.setRoad(houseDO.getAlley());
+                        comMngPopulationVO.setDoorNo(houseDO.getHouseNum());
+                        comMngPopulationVO.setFloor(houseDO.getFloor());
+                        comMngPopulationVO.setUnitNo(houseDO.getUnitNo());
+                        if(comMngPopulationVO.getLevelIsAll() == null){
+                            comMngPopulationVO.setHouseNo(houseDO.getHouseNo());
+                        }
+                        break;
+                    default:
+                        break;
+                }
+            }
+        }
+
+        if(comMngPopulationVO.getType()!=null){
+            switch (comMngPopulationVO.getType()){
+                case 1 : comMngPopulationVO.setAgeStart("80");
+                         comMngPopulationVO.setAgeEnd("89");
+                         break;
+                case 2 : comMngPopulationVO.setAgeStart("90");
+                         comMngPopulationVO.setAgeEnd("99");
+                         break;
+                case 3 : comMngPopulationVO.setAgeStart("100");
+                         break;
+            }
+        }
+
+        if (StringUtils.isNotEmpty(comMngPopulationVO.getAgeStart())) {
+            String ageStartTime = DateUtils.getDateFormatString(
+                DateUtils.yearAddNum(new Date(), -(Integer.parseInt(comMngPopulationVO.getAgeStart()))), "yyyy-MM-dd");
+            if (StringUtils.isNotEmpty(ageStartTime)) {
+                comMngPopulationVO.setAgeStartTime(ageStartTime);
+            }
+        }
+
+        if (StringUtils.isNotEmpty(comMngPopulationVO.getAgeEnd())) {
+            String ageEndTime = DateUtils.getDateFormatString(
+                DateUtils.yearAddNum(new Date(), -(Integer.parseInt(comMngPopulationVO.getAgeEnd()))), "yyyy-MM-dd");
+            if (StringUtils.isNotEmpty(ageEndTime)) {
+                comMngPopulationVO.setAgeEndTime(ageEndTime);
+            }
+        }
+        if (comMngPopulationVO.getAgeStartTime() != null && !"".equals(comMngPopulationVO.getAgeStartTime())
+            && comMngPopulationVO.getAgeEndTime() != null && !"".equals(comMngPopulationVO.getAgeEndTime())) {
+            if (comMngPopulationVO.getAgeStartTime().equals(comMngPopulationVO.getAgeEndTime())) {
+                Date endAge =
+                    DateUtils.stringToDate(comMngPopulationVO.getAgeEndTime(), new SimpleDateFormat("yyyy-MM-dd"));
+                String ageStartTime = DateUtils.getDateFormatString(DateUtils.yearAddNum(endAge, -1), "yyyy-MM-dd");
+                if (StringUtils.isNotEmpty(ageStartTime)) {
+                    comMngPopulationVO.setAgeStartTimeEnd(ageStartTime);
+                }
+            } else {
+                Date endAge =
+                    DateUtils.stringToDate(comMngPopulationVO.getAgeEndTime(), new SimpleDateFormat("yyyy-MM-dd"));
+                String ageStartTime = DateUtils.getDateFormatString(DateUtils.yearAddNum(endAge, -1), "yyyy-MM-dd");
+                if (StringUtils.isNotEmpty(ageStartTime)) {
+                    comMngPopulationVO.setAgeEndTimeEnd(ageStartTime);
+                }
+            }
+        }
+        IPage<ComMngPopulationVO> iPage = populationDAO.pagePopulation(page, comMngPopulationVO);
+        if (!iPage.getRecords().isEmpty()) {
+            iPage.getRecords().forEach(populDO -> {
+                if (StringUtils.isNotEmpty(populDO.getBirthday())) {
+                    populDO.setAge(AgeUtils.getAgeFromBirthTimes(populDO.getBirthday()));
+                    populDO.setRelationName(PopulRelationEnum.getCnDescByName(populDO.getRelation()));
+                    populDO.setCultureLevelName(PopulCultureLevelEnum.getCnDescByName(populDO.getCultureLevel()));
+                    populDO.setPoliticalOutlookName(
+                        PopulPoliticalOutlookEnum.getCnDescByName(populDO.getPoliticalOutlook()));
+                    populDO.setMarriageName(PopulMarriageEnum.getCnDescByName(populDO.getMarriage()));
+                    if(populDO.getAge()>=80&&populDO.getAge()<=89){
+                        populDO.setType(1);
+                    }
+                    if(populDO.getAge()>=90&&populDO.getAge()<=99){
+                        populDO.setType(2);
+                    }
+                    if(populDO.getAge()>=100){
+                        populDO.setType(3);
+                    }
+                }
+            });
+        }
+        return R.ok(iPage);
+    }
+
+    @Override
+    public R exportOld(ComMngPopulationDTO comMngPopulationVO) {
+        if (StringUtils.isNotEmpty(comMngPopulationVO.getAgeStart())) {
+            String ageStartTime = DateUtils.getDateFormatString(
+                    DateUtils.yearAddNum(new Date(), -(Integer.parseInt(comMngPopulationVO.getAgeStart()))), "yyyy-MM-dd");
+            if (StringUtils.isNotEmpty(ageStartTime)) {
+                comMngPopulationVO.setAgeStartTime(ageStartTime);
+            }
+        }
+
+        if (StringUtils.isNotEmpty(comMngPopulationVO.getAgeEnd())) {
+            String ageEndTime = DateUtils.getDateFormatString(
+                    DateUtils.yearAddNum(new Date(), -(Integer.parseInt(comMngPopulationVO.getAgeEnd()))), "yyyy-MM-dd");
+            if (StringUtils.isNotEmpty(ageEndTime)) {
+                comMngPopulationVO.setAgeEndTime(ageEndTime);
+            }
+        }
+        if (comMngPopulationVO.getAgeStartTime() != null && !"".equals(comMngPopulationVO.getAgeStartTime())
+                && comMngPopulationVO.getAgeEndTime() != null && !"".equals(comMngPopulationVO.getAgeEndTime())) {
+            if (comMngPopulationVO.getAgeStartTime().equals(comMngPopulationVO.getAgeEndTime())) {
+                Date endAge =
+                        DateUtils.stringToDate(comMngPopulationVO.getAgeEndTime(), new SimpleDateFormat("yyyy-MM-dd"));
+                String ageStartTime = DateUtils.getDateFormatString(DateUtils.yearAddNum(endAge, -1), "yyyy-MM-dd");
+                if (StringUtils.isNotEmpty(ageStartTime)) {
+                    comMngPopulationVO.setAgeStartTimeEnd(ageStartTime);
+                }
+            } else {
+                Date endAge =
+                        DateUtils.stringToDate(comMngPopulationVO.getAgeEndTime(), new SimpleDateFormat("yyyy-MM-dd"));
+                String ageStartTime = DateUtils.getDateFormatString(DateUtils.yearAddNum(endAge, -1), "yyyy-MM-dd");
+                if (StringUtils.isNotEmpty(ageStartTime)) {
+                    comMngPopulationVO.setAgeEndTimeEnd(ageStartTime);
+                }
+            }
+        }
+        List<ComMngPopulationVO> comMngPopulationVOS=this.comMngPopulationDAO.exportOld(comMngPopulationVO);
+        if(!comMngPopulationVOS.isEmpty()){
+            comMngPopulationVOS.forEach(populDO -> {
+                if (StringUtils.isNotEmpty(populDO.getBirthday())) {
+                    populDO.setAge(AgeUtils.getAgeFromBirthTimes(populDO.getBirthday()));
+                    populDO.setRelationName(PopulRelationEnum.getCnDescByName(populDO.getRelation()));
+                    populDO.setCultureLevelName(PopulCultureLevelEnum.getCnDescByName(populDO.getCultureLevel()));
+                    populDO.setPoliticalOutlookName(
+                            PopulPoliticalOutlookEnum.getCnDescByName(populDO.getPoliticalOutlook()));
+                    populDO.setMarriageName(PopulMarriageEnum.getCnDescByName(populDO.getMarriage()));
+                    if(populDO.getAge()>=80&&populDO.getAge()<=89){
+                        populDO.setType(1);
+                    }
+                    if(populDO.getAge()>=90&&populDO.getAge()<=99){
+                        populDO.setType(2);
+                    }
+                    if(populDO.getAge()>=100){
+                        populDO.setType(3);
+                    }
+                }
+            });
+        }
+        return R.ok(comMngPopulationVOS);
+    }
+
+    /**
+     * 删除实有人口
+     *
+     * @param populationId
+     *            实有人口id
+     * @return 删除结果
+     */
+    @Override
+    public R deletePopulation(Long populationId) {
+        int delete = populationDAO.deleteById(populationId);
+        if (delete > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 查询所有实有人口
+     *
+     * @return 实有人口集合 按照创建顺序倒序排列
+     */
+    @Override
+    public R listPopulationAll() {
+        List<ComMngPopulationDO> populationDOS = populationDAO
+            .selectList(new QueryWrapper<ComMngPopulationDO>().lambda().orderByDesc(ComMngPopulationDO::getCreateAt));
+        List<ComMngPopulationVO> populationVOS = new ArrayList<>();
+        if (!ObjectUtils.isEmpty(populationDOS)) {
+            populationDOS.forEach(comActDO -> {
+                ComMngPopulationVO populationVO = new ComMngPopulationVO();
+                BeanUtils.copyProperties(comActDO, populationVO);
+                populationVOS.add(populationVO);
+            });
+        }
+        return R.ok(populationVOS);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R listSavePopulation(List<ComMngPopulationServeExcelVO> list, Long communityId, Long userId) {
+        // 需要新增的房屋集合
+        List<ComMngPopulationHouseDO> houseList = new ArrayList<>();
+        // 需要新增的人口集合
+        List<ComMngPopulationDO> saveList = new ArrayList<>();
+        // 需要修改的人口集合
+        List<ComMngPopulationDO> updateList = new ArrayList<>();
+        // 需要新增的人口与房屋关系集合
+        List<ComMngPopulationHouseUserDO> houseUserList = new ArrayList<>();
+        // 需要新增的人口与社区关系集合
+        List<ComMngPopulationCommunityTagsDO> savePopulationCommunityList = new ArrayList<>();
+        // 需要新增的人口与社区关系集合
+        List<ComMngPopulationCommunityTagsDO> updatePopulationCommunityList = new ArrayList<>();
+
+        log.info("开始处理导入数据");
+        List<ComMngPopulationMistakeExcelVO> 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(new QueryWrapper<ComMngPopulationDO>().lambda().eq(ComMngPopulationDO::getActId,communityId));
+            HashMap<String, Object> populationMap = new HashMap<>();
+            populationList.forEach(population -> {
+                String key = population.getCardNo();
+                populationMap.put(key, population);
+            });
+            // 查询所有房屋信息放入到HashMap中
+            List<ComMngPopulationHouseDO> houseLists = comMngPopulationHouseDAO.selectList(new QueryWrapper<ComMngPopulationHouseDO>().lambda().eq(ComMngPopulationHouseDO::getCommunityId,communityId));
+            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(new QueryWrapper<ComMngVillageDO>().lambda().eq(ComMngVillageDO::getCommunityId,communityId));
+            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.selectListIndex(communityId);
+            HashMap<String, Object> houseUserMap = new HashMap<>();
+            houseUserLists.forEach(houseUser -> {
+                String key = houseUser.getPopulId() + houseUser.getHouseId() + "";
+                houseUserMap.put(key, houseUser);
+            });
+
+            List<ComMngPopulationCommunityTagsDO> populationCommunityLists =
+                comMngPopulationCommunityTagsDAO.selectList(new QueryWrapper<ComMngPopulationCommunityTagsDO>().lambda().eq(ComMngPopulationCommunityTagsDO::getCommunityId,communityId));
+            HashMap<String, Object> populationCommunityMap = new HashMap<>();
+            populationCommunityLists.forEach(populationCommunity -> {
+                String key = populationCommunity.getPopulationId() + populationCommunity.getCommunityId() + "";
+                populationCommunityMap.put(key, populationCommunity);
+            });
+
+            for (ComMngPopulationServeExcelVO 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 {
+                    ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
+                    BeanUtils.copyProperties(vo, mistake);
+                    setMistake(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;
+                // 先判断房屋是否存在
+                if(StringUtils.isNotEmpty(vo.getFloor())&&StringUtils.isNotEmpty(vo.getHouseNo())&&StringUtils.isNotEmpty(vo.getUnitNo())){
+                    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 =
+                                    savePopulationHouse(vo, comMngVillageDO, communityId, areaPath, populationActVO.getName());
+                            houseList.add(populationHouseDO);
+                        }
+                    } else {
+                        populationHouseDO = (ComMngPopulationHouseDO)houseMap.get(houseKey);
+                    }
+                    vo.setHouseId(populationHouseDO.getId());
+                    log.info("查询房屋是否存在完成");
+                }else {
+                    ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
+                    BeanUtils.copyProperties(vo, mistake);
+                    setMistake(mistake, vo);
+                    mistake.setMistake("房屋数据填报不完整" );
+                    mistakes.add(mistake);
+                    log.info("房屋数据填报不完整");
+                    continue;
+                }
+
+
+
+                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 = updatePopulationDO(vo, populationDO, communityId, userId);
+                    updateList.add(updatePopulationDO);
+                } else {
+                    // 不存在实有人口,则新增
+                    populationDO = savePopulationDO(vo, populationActVO, comMngVillageDO, userId);
+                    saveList.add(populationDO);
+                    populationMap.put(populationKey,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);
+                        populationCommunityMap.put(populationCommunityKey,cpopulationCommunityTagsDO);
+                        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);
+
+                        ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
+                        BeanUtils.copyProperties(vo, mistake);
+                        setMistake(mistake, vo);
+                        mistake.setMistake("该实有人口已存在于该社区,执行更新");
+                        mistakes.add(mistake);
+                    }
+                }
+                log.info("查询实有人口存在社区信息完成");
+
+                log.info("开始处理楼栋信息");
+                List<ComMngBuildingDO> comMngBuildingDOList= comMngBuildingDAO.selectList(new QueryWrapper<ComMngBuildingDO>().lambda().eq(ComMngBuildingDO::getVillageId,comMngVillageDO.getVillageId()).eq(ComMngBuildingDO::getName,vo.getFloor()));
+                if(comMngBuildingDOList.isEmpty()){
+                   ComMngBuildingDO  comMngBuildingDO=new ComMngBuildingDO();
+                   comMngBuildingDO.setId(Snowflake.getId());
+                   comMngBuildingDO.setVillageId(comMngVillageDO.getVillageId());
+                   comMngBuildingDO.setName(vo.getFloor());
+                   comMngBuildingDO.setActId(comMngVillageDO.getCommunityId());
+                   comMngBuildingDO.setStreetId(comMngVillageDO.getStreetId());
+                   comMngBuildingDAO.insert(comMngBuildingDO);
+                }
+            }
+        } 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.updateBatchById(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("执行数据库更新人口社区关系");
+            comMngPopulationCommunityTagsService.updateBatchById(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 listSaveDrugPopulation(List<ComMngPopulationDrugExcelVO> list, Long communityId, Long userId) {
+        // 需要新增的房屋集合
+        List<ComMngPopulationHouseDO> houseList = new ArrayList<>();
+        // 需要新增的人口集合
+        List<ComMngPopulationDO> saveList = new ArrayList<>();
+        // 需要修改的人口集合
+        List<ComMngPopulationDO> updateList = new ArrayList<>();
+        // 需要新增的人口与房屋关系集合
+        List<ComMngPopulationHouseUserDO> houseUserList = new ArrayList<>();
+        // 需要新增的人口与社区关系集合
+        List<ComMngPopulationCommunityTagsDO> savePopulationCommunityList = new ArrayList<>();
+        // 需要新增的人口与社区关系集合
+        List<ComMngPopulationCommunityTagsDO> updatePopulationCommunityList = new ArrayList<>();
+
+        log.info("开始处理导入数据");
+        List<ComMngPopulationDrugMistakeExcelVO> 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(new QueryWrapper<ComMngPopulationDO>().lambda().eq(ComMngPopulationDO::getActId,communityId));
+            HashMap<String, Object> populationMap = new HashMap<>();
+            populationList.forEach(population -> {
+                String key = population.getCardNo();
+                populationMap.put(key, population);
+            });
+            // 查询所有房屋信息放入到HashMap中
+            List<ComMngPopulationHouseDO> houseLists = comMngPopulationHouseDAO.selectList(new QueryWrapper<ComMngPopulationHouseDO>().lambda().eq(ComMngPopulationHouseDO::getCommunityId,communityId));
+            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(new QueryWrapper<ComMngVillageDO>().lambda().eq(ComMngVillageDO::getCommunityId,communityId));
+            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.selectListIndex(communityId);
+            HashMap<String, Object> houseUserMap = new HashMap<>();
+            houseUserLists.forEach(houseUser -> {
+                String key = houseUser.getPopulId() + houseUser.getHouseId() + "";
+                houseUserMap.put(key, houseUser);
+            });
+
+            List<ComMngPopulationCommunityTagsDO> populationCommunityLists =
+                comMngPopulationCommunityTagsDAO.selectList(new QueryWrapper<ComMngPopulationCommunityTagsDO>().lambda().eq(ComMngPopulationCommunityTagsDO::getCommunityId,communityId));
+            HashMap<String, Object> populationCommunityMap = new HashMap<>();
+            populationCommunityLists.forEach(populationCommunity -> {
+                String key = populationCommunity.getPopulationId() + populationCommunity.getCommunityId() + "";
+                populationCommunityMap.put(key, populationCommunity);
+            });
+
+            for (ComMngPopulationDrugExcelVO 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 {
+                    ComMngPopulationDrugMistakeExcelVO mistake = new ComMngPopulationDrugMistakeExcelVO();
+                    BeanUtils.copyProperties(vo, mistake);
+                    setDrugMistake(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;
+                // 先判断房屋是否存在
+                if(StringUtils.isNotEmpty(vo.getFloor())&&StringUtils.isNotEmpty(vo.getHouseNo())&&StringUtils.isNotEmpty(vo.getUnitNo())){
+                    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 =
+                                    saveDrugPopulationHouse(vo, comMngVillageDO, communityId, areaPath, populationActVO.getName());
+                            houseList.add(populationHouseDO);
+                        }
+                    } else {
+                        populationHouseDO = (ComMngPopulationHouseDO)houseMap.get(houseKey);
+                    }
+                    vo.setHouseId(populationHouseDO.getId());
+                    log.info("查询房屋是否存在完成");
+                }else {
+                    ComMngPopulationDrugMistakeExcelVO mistake = new ComMngPopulationDrugMistakeExcelVO();
+                    BeanUtils.copyProperties(vo, mistake);
+                    setDrugMistake(mistake, vo);
+                    mistake.setMistake("房屋数据填报不完整" );
+                    mistakes.add(mistake);
+                    log.info("房屋数据填报不完整");
+                    continue;
+                }
+
+
+                if (StringUtils.isEmpty(vo.getName()) && StringUtils.isEmpty(vo.getCardNo())) {
+                    // 空户处理完房屋信息,直接返回
+                    continue;
+                }
+                // 判断实有人口是否已存在
+                log.info("开始查询实有人口是否已存在");
+                ComMngPopulationDO populationDO = null;
+                String populationKey = vo.getCardNo();
+                if (!isOnly(populationKey, populationMap)) {
+                    // 存在实有人口信息,则更新
+                    populationDO = (ComMngPopulationDO)populationMap.get(populationKey);
+                    ComMngPopulationDO updatePopulationDO =
+                        updateDrugPopulationDO(vo, populationDO, communityId, userId);
+                    updateList.add(updatePopulationDO);
+                } else {
+                    // 不存在实有人口,则新增
+                    populationDO = saveDrugPopulationDO(vo, populationActVO, comMngVillageDO, userId);
+                    saveList.add(populationDO);
+                    populationMap.put(populationDO.getCardNo(),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();
+                        }
+                        if(StringUtils.isNotEmpty(comMngPopulationCommunityTagsDO.getLabel())){
+                            for(String tag:userTag){
+                                if(!comMngPopulationCommunityTagsDO.getLabel().contains(tag)){
+                                    comMngPopulationCommunityTagsDO.setLabel(comMngPopulationCommunityTagsDO.getLabel()+","+tag);
+                                }
+                            }
+                        }
+                        else{
+                            comMngPopulationCommunityTagsDO.setLabel(Joiner.on(",").join(userTag));
+                        }
+                        comMngPopulationCommunityTagsDO.setUpdateBy(userId);
+                        updatePopulationCommunityList.add(comMngPopulationCommunityTagsDO);
+
+                        ComMngPopulationDrugMistakeExcelVO mistake = new ComMngPopulationDrugMistakeExcelVO();
+                        BeanUtils.copyProperties(vo, mistake);
+                        setDrugMistake(mistake, vo);
+                        mistake.setMistake("该实有人口已存在于该社区,执行更新");
+                        mistakes.add(mistake);
+                    }
+                }
+
+                log.info("查询实有人口存在社区信息完成");
+
+                log.info("开始处理楼栋信息");
+                List<ComMngBuildingDO> comMngBuildingDOList= comMngBuildingDAO.selectList(new QueryWrapper<ComMngBuildingDO>().lambda().eq(ComMngBuildingDO::getVillageId,comMngVillageDO.getVillageId()).eq(ComMngBuildingDO::getName,vo.getFloor()));
+                if(comMngBuildingDOList.isEmpty()){
+	   ComMngBuildingDO  comMngBuildingDO=new ComMngBuildingDO();
+                   comMngBuildingDO.setId(Snowflake.getId());
+                   comMngBuildingDO.setVillageId(comMngVillageDO.getVillageId());
+                   comMngBuildingDO.setName(vo.getFloor());
+                   comMngBuildingDO.setActId(comMngVillageDO.getCommunityId());
+                   comMngBuildingDO.setStreetId(comMngVillageDO.getStreetId());
+                   comMngBuildingDAO.insert(comMngBuildingDO);
+                }
+            }
+        } 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.updateBatchById(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("执行数据库更新人口社区关系");
+            comMngPopulationCommunityTagsService.updateBatchById(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 listSaveCorrectPopulation(List<ComMngPopulationCorrectExcelVO> list, Long communityId, Long userId) {
+        // 需要新增的房屋集合
+        List<ComMngPopulationHouseDO> houseList = new ArrayList<>();
+        // 需要新增的人口集合
+        List<ComMngPopulationDO> saveList = new ArrayList<>();
+        // 需要修改的人口集合
+        List<ComMngPopulationDO> updateList = new ArrayList<>();
+        // 需要新增的人口与房屋关系集合
+        List<ComMngPopulationHouseUserDO> houseUserList = new ArrayList<>();
+        // 需要新增的人口与社区关系集合
+        List<ComMngPopulationCommunityTagsDO> savePopulationCommunityList = new ArrayList<>();
+        // 需要新增的人口与社区关系集合
+        List<ComMngPopulationCommunityTagsDO> updatePopulationCommunityList = new ArrayList<>();
+
+        log.info("开始处理导入数据");
+        List<ComMngPopulationCorrectMistakeExcelVO> 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(new QueryWrapper<ComMngPopulationDO>().lambda().eq(ComMngPopulationDO::getActId,communityId));
+            HashMap<String, Object> populationMap = new HashMap<>();
+            populationList.forEach(population -> {
+                String key = population.getCardNo();
+                populationMap.put(key, population);
+            });
+            // 查询所有房屋信息放入到HashMap中
+            List<ComMngPopulationHouseDO> houseLists = comMngPopulationHouseDAO.selectList(new QueryWrapper<ComMngPopulationHouseDO>().lambda().eq(ComMngPopulationHouseDO::getCommunityId,communityId));
+            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(new QueryWrapper<ComMngVillageDO>().lambda().eq(ComMngVillageDO::getCommunityId,communityId));
+            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.selectListIndex(communityId);
+            HashMap<String, Object> houseUserMap = new HashMap<>();
+            houseUserLists.forEach(houseUser -> {
+                String key = houseUser.getPopulId() + houseUser.getHouseId() + "";
+                houseUserMap.put(key, houseUser);
+            });
+
+            List<ComMngPopulationCommunityTagsDO> populationCommunityLists =
+                comMngPopulationCommunityTagsDAO.selectList(new QueryWrapper<ComMngPopulationCommunityTagsDO>().lambda().eq(ComMngPopulationCommunityTagsDO::getCommunityId,communityId));
+            HashMap<String, Object> populationCommunityMap = new HashMap<>();
+            populationCommunityLists.forEach(populationCommunity -> {
+                String key = populationCommunity.getPopulationId() + populationCommunity.getCommunityId() + "";
+                populationCommunityMap.put(key, populationCommunity);
+            });
+
+            for (ComMngPopulationCorrectExcelVO 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 {
+                    ComMngPopulationCorrectMistakeExcelVO mistake = new ComMngPopulationCorrectMistakeExcelVO();
+                    BeanUtils.copyProperties(vo, mistake);
+                    setCorrectMistake(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;
+                // 先判断房屋是否存在
+                if(StringUtils.isNotEmpty(vo.getFloor())&&StringUtils.isNotEmpty(vo.getHouseNo())&&StringUtils.isNotEmpty(vo.getUnitNo())){
+                    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 =
+                                    saveCorrectPopulationHouse(vo, comMngVillageDO, communityId, areaPath, populationActVO.getName());
+                            houseList.add(populationHouseDO);
+                        }
+                    } else {
+                        populationHouseDO = (ComMngPopulationHouseDO)houseMap.get(houseKey);
+                    }
+                    vo.setHouseId(populationHouseDO.getId());
+                    log.info("查询房屋是否存在完成");
+                }else {
+                    ComMngPopulationCorrectMistakeExcelVO mistake = new ComMngPopulationCorrectMistakeExcelVO();
+                    BeanUtils.copyProperties(vo, mistake);
+                    setCorrectMistake(mistake, vo);
+                    mistake.setMistake("房屋数据填报不完整" );
+                    mistakes.add(mistake);
+                    log.info("房屋数据填报不完整");
+                    continue;
+                }
+
+
+                if (StringUtils.isEmpty(vo.getName()) && StringUtils.isEmpty(vo.getCardNo())) {
+                    // 空户处理完房屋信息,直接返回
+                    continue;
+                }
+                // 判断实有人口是否已存在
+                log.info("开始查询实有人口是否已存在");
+                ComMngPopulationDO populationDO = null;
+                String populationKey = vo.getCardNo();
+                if (!isOnly(populationKey, populationMap)) {
+                    // 存在实有人口信息,则更新
+                    populationDO = (ComMngPopulationDO)populationMap.get(populationKey);
+                    ComMngPopulationDO updatePopulationDO =
+                        updateCorrectPopulationDO(vo, populationDO, communityId, userId);
+                    updateList.add(updatePopulationDO);
+                } else {
+                    // 不存在实有人口,则新增
+                    populationDO = saveCorrectPopulationDO(vo, populationActVO, comMngVillageDO, userId);
+                    saveList.add(populationDO);
+                    populationMap.put(populationDO.getCardNo(),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();
+                        }
+                        if(StringUtils.isNotEmpty(comMngPopulationCommunityTagsDO.getLabel())){
+                            for(String tag:userTag){
+                                if(!comMngPopulationCommunityTagsDO.getLabel().contains(tag)){
+                                    comMngPopulationCommunityTagsDO.setLabel(comMngPopulationCommunityTagsDO.getLabel()+","+tag);
+                                }
+                            }
+                        }
+                        else{
+                            comMngPopulationCommunityTagsDO.setLabel(Joiner.on(",").join(userTag));
+                        }
+                        comMngPopulationCommunityTagsDO.setUpdateBy(userId);
+                        updatePopulationCommunityList.add(comMngPopulationCommunityTagsDO);
+
+                        ComMngPopulationCorrectMistakeExcelVO mistake = new ComMngPopulationCorrectMistakeExcelVO();
+                        BeanUtils.copyProperties(vo, mistake);
+                        setCorrectMistake(mistake, vo);
+                        mistake.setMistake("该实有人口已存在于该社区,执行更新");
+                        mistakes.add(mistake);
+                    }
+                }
+
+                log.info("查询实有人口存在社区信息完成");
+
+                log.info("开始处理楼栋信息");
+                List<ComMngBuildingDO> comMngBuildingDOList= comMngBuildingDAO.selectList(new QueryWrapper<ComMngBuildingDO>().lambda().eq(ComMngBuildingDO::getVillageId,comMngVillageDO.getVillageId()).eq(ComMngBuildingDO::getName,vo.getFloor()));
+                if(comMngBuildingDOList.isEmpty()){
+	   ComMngBuildingDO  comMngBuildingDO=new ComMngBuildingDO();
+                   comMngBuildingDO.setId(Snowflake.getId());
+                   comMngBuildingDO.setVillageId(comMngVillageDO.getVillageId());
+                   comMngBuildingDO.setName(vo.getFloor());
+                   comMngBuildingDO.setActId(comMngVillageDO.getCommunityId());
+                   comMngBuildingDO.setStreetId(comMngVillageDO.getStreetId());
+                   comMngBuildingDAO.insert(comMngBuildingDO);
+                }
+            }
+        } 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.updateBatchById(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("执行数据库更新人口社区关系");
+            comMngPopulationCommunityTagsService.updateBatchById(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 listSaveMajorPopulation(List<ComMngPopulationMajorExcelVO> list, Long communityId, Long userId) {
+        // 需要新增的房屋集合
+        List<ComMngPopulationHouseDO> houseList = new ArrayList<>();
+        // 需要新增的人口集合
+        List<ComMngPopulationDO> saveList = new ArrayList<>();
+        // 需要修改的人口集合
+        List<ComMngPopulationDO> updateList = new ArrayList<>();
+        // 需要新增的人口与房屋关系集合
+        List<ComMngPopulationHouseUserDO> houseUserList = new ArrayList<>();
+        // 需要新增的人口与社区关系集合
+        List<ComMngPopulationCommunityTagsDO> savePopulationCommunityList = new ArrayList<>();
+        // 需要新增的人口与社区关系集合
+        List<ComMngPopulationCommunityTagsDO> updatePopulationCommunityList = new ArrayList<>();
+
+        log.info("开始处理导入数据");
+        List<ComMngPopulationMajorMistakeExcelVO> 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(new QueryWrapper<ComMngPopulationDO>().lambda().eq(ComMngPopulationDO::getActId,communityId));
+            HashMap<String, Object> populationMap = new HashMap<>();
+            populationList.forEach(population -> {
+                String key = population.getCardNo();
+                populationMap.put(key, population);
+            });
+            // 查询所有房屋信息放入到HashMap中
+            List<ComMngPopulationHouseDO> houseLists = comMngPopulationHouseDAO.selectList(new QueryWrapper<ComMngPopulationHouseDO>().lambda().eq(ComMngPopulationHouseDO::getCommunityId,communityId));
+            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(new QueryWrapper<ComMngVillageDO>().lambda().eq(ComMngVillageDO::getCommunityId,communityId));
+            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.selectListIndex(communityId);
+            HashMap<String, Object> houseUserMap = new HashMap<>();
+            houseUserLists.forEach(houseUser -> {
+                String key = houseUser.getPopulId() + houseUser.getHouseId() + "";
+                houseUserMap.put(key, houseUser);
+            });
+
+            List<ComMngPopulationCommunityTagsDO> populationCommunityLists =
+                comMngPopulationCommunityTagsDAO.selectList(new QueryWrapper<ComMngPopulationCommunityTagsDO>().lambda().eq(ComMngPopulationCommunityTagsDO::getCommunityId,communityId));
+            HashMap<String, Object> populationCommunityMap = new HashMap<>();
+            populationCommunityLists.forEach(populationCommunity -> {
+                String key = populationCommunity.getPopulationId() + populationCommunity.getCommunityId() + "";
+                populationCommunityMap.put(key, populationCommunity);
+            });
+
+            for (ComMngPopulationMajorExcelVO 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 {
+                    ComMngPopulationMajorMistakeExcelVO mistake = new ComMngPopulationMajorMistakeExcelVO();
+                    BeanUtils.copyProperties(vo, mistake);
+                    setMajorMistake(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;
+                // 先判断房屋是否存在
+                if(StringUtils.isNotEmpty(vo.getFloor())&&StringUtils.isNotEmpty(vo.getHouseNo())&&StringUtils.isNotEmpty(vo.getUnitNo())){
+                    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 =
+                                    saveMajorPopulationHouse(vo, comMngVillageDO, communityId, areaPath, populationActVO.getName());
+                            houseList.add(populationHouseDO);
+                        }
+                    } else {
+                        populationHouseDO = (ComMngPopulationHouseDO)houseMap.get(houseKey);
+                    }
+                    vo.setHouseId(populationHouseDO.getId());
+                    log.info("查询房屋是否存在完成");
+                }else {
+                    ComMngPopulationMajorMistakeExcelVO mistake = new ComMngPopulationMajorMistakeExcelVO();
+                    BeanUtils.copyProperties(vo, mistake);
+                    setMajorMistake(mistake, vo);
+                    mistake.setMistake("房屋数据填报不完整" );
+                    mistakes.add(mistake);
+                    log.info("房屋数据填报不完整");
+                    continue;
+                }
+
+
+                if (StringUtils.isEmpty(vo.getName()) && StringUtils.isEmpty(vo.getCardNo())) {
+                    // 空户处理完房屋信息,直接返回
+                    continue;
+                }
+                // 判断实有人口是否已存在
+                log.info("开始查询实有人口是否已存在");
+                ComMngPopulationDO populationDO = null;
+                String populationKey = vo.getCardNo();
+                if (!isOnly(populationKey, populationMap)) {
+                    // 存在实有人口信息,则更新
+                    populationDO = (ComMngPopulationDO)populationMap.get(populationKey);
+                    ComMngPopulationDO updatePopulationDO =
+                        updateMajorPopulationDO(vo, populationDO, communityId, userId);
+                    updateList.add(updatePopulationDO);
+                } else {
+                    // 不存在实有人口,则新增
+                    populationDO = saveMajorPopulationDO(vo, populationActVO, comMngVillageDO, userId);
+                    saveList.add(populationDO);
+                    populationMap.put(populationDO.getCardNo(),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();
+                        }
+                        if(StringUtils.isNotEmpty(comMngPopulationCommunityTagsDO.getLabel())){
+                            for(String tag:userTag){
+                                if(!comMngPopulationCommunityTagsDO.getLabel().contains(tag)){
+                                    comMngPopulationCommunityTagsDO.setLabel(comMngPopulationCommunityTagsDO.getLabel()+","+tag);
+                                }
+                            }
+                        }
+                        else{
+                            comMngPopulationCommunityTagsDO.setLabel(Joiner.on(",").join(userTag));
+                        }
+                        comMngPopulationCommunityTagsDO.setUpdateBy(userId);
+                        updatePopulationCommunityList.add(comMngPopulationCommunityTagsDO);
+
+                        ComMngPopulationMajorMistakeExcelVO mistake = new ComMngPopulationMajorMistakeExcelVO();
+                        BeanUtils.copyProperties(vo, mistake);
+                        setMajorMistake(mistake, vo);
+                        mistake.setMistake("该实有人口已存在于该社区,执行更新");
+                        mistakes.add(mistake);
+                    }
+                }
+
+                log.info("查询实有人口存在社区信息完成");
+
+                log.info("开始处理楼栋信息");
+                List<ComMngBuildingDO> comMngBuildingDOList= comMngBuildingDAO.selectList(new QueryWrapper<ComMngBuildingDO>().lambda().eq(ComMngBuildingDO::getVillageId,comMngVillageDO.getVillageId()).eq(ComMngBuildingDO::getName,vo.getFloor()));
+                if(comMngBuildingDOList.isEmpty()){
+	   ComMngBuildingDO  comMngBuildingDO=new ComMngBuildingDO();
+                   comMngBuildingDO.setId(Snowflake.getId());
+                   comMngBuildingDO.setVillageId(comMngVillageDO.getVillageId());
+                   comMngBuildingDO.setName(vo.getFloor());
+                   comMngBuildingDO.setActId(comMngVillageDO.getCommunityId());
+                   comMngBuildingDO.setStreetId(comMngVillageDO.getStreetId());
+                   comMngBuildingDAO.insert(comMngBuildingDO);
+                }
+            }
+        } 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.updateBatchById(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("执行数据库更新人口社区关系");
+            comMngPopulationCommunityTagsService.updateBatchById(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 listSaveCultPopulation(List<ComMngPopulationCultExcelVO> list, Long communityId, Long userId) {
+        // 需要新增的房屋集合
+        List<ComMngPopulationHouseDO> houseList = new ArrayList<>();
+        // 需要新增的人口集合
+        List<ComMngPopulationDO> saveList = new ArrayList<>();
+        // 需要修改的人口集合
+        List<ComMngPopulationDO> updateList = new ArrayList<>();
+        // 需要新增的人口与房屋关系集合
+        List<ComMngPopulationHouseUserDO> houseUserList = new ArrayList<>();
+        // 需要新增的人口与社区关系集合
+        List<ComMngPopulationCommunityTagsDO> savePopulationCommunityList = new ArrayList<>();
+        // 需要新增的人口与社区关系集合
+        List<ComMngPopulationCommunityTagsDO> updatePopulationCommunityList = new ArrayList<>();
+
+        log.info("开始处理导入数据");
+        List<ComMngPopulationCultMistakeExcelVO> 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(new QueryWrapper<ComMngPopulationDO>().lambda().eq(ComMngPopulationDO::getActId,communityId));
+            HashMap<String, Object> populationMap = new HashMap<>();
+            populationList.forEach(population -> {
+                String key = population.getCardNo();
+                populationMap.put(key, population);
+            });
+            // 查询所有房屋信息放入到HashMap中
+            List<ComMngPopulationHouseDO> houseLists = comMngPopulationHouseDAO.selectList(new QueryWrapper<ComMngPopulationHouseDO>().lambda().eq(ComMngPopulationHouseDO::getCommunityId,communityId));
+            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(new QueryWrapper<ComMngVillageDO>().lambda().eq(ComMngVillageDO::getCommunityId,communityId));
+            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.selectListIndex(communityId);
+            HashMap<String, Object> houseUserMap = new HashMap<>();
+            houseUserLists.forEach(houseUser -> {
+                String key = houseUser.getPopulId() + houseUser.getHouseId() + "";
+                houseUserMap.put(key, houseUser);
+            });
+
+            List<ComMngPopulationCommunityTagsDO> populationCommunityLists =
+                comMngPopulationCommunityTagsDAO.selectList(new QueryWrapper<ComMngPopulationCommunityTagsDO>().lambda().eq(ComMngPopulationCommunityTagsDO::getCommunityId,communityId));
+            HashMap<String, Object> populationCommunityMap = new HashMap<>();
+            populationCommunityLists.forEach(populationCommunity -> {
+                String key = populationCommunity.getPopulationId() + populationCommunity.getCommunityId() + "";
+                populationCommunityMap.put(key, populationCommunity);
+            });
+
+            for (ComMngPopulationCultExcelVO 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 {
+                    ComMngPopulationCultMistakeExcelVO mistake = new ComMngPopulationCultMistakeExcelVO();
+                    BeanUtils.copyProperties(vo, mistake);
+                    setCultMistake(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;
+                // 先判断房屋是否存在
+                if(StringUtils.isNotEmpty(vo.getFloor())&&StringUtils.isNotEmpty(vo.getHouseNo())&&StringUtils.isNotEmpty(vo.getUnitNo())){
+                    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 =
+                                    saveCultPopulationHouse(vo, comMngVillageDO, communityId, areaPath, populationActVO.getName());
+                            houseList.add(populationHouseDO);
+                        }
+                    } else {
+                        populationHouseDO = (ComMngPopulationHouseDO)houseMap.get(houseKey);
+                    }
+                    vo.setHouseId(populationHouseDO.getId());
+                    log.info("查询房屋是否存在完成");
+                }else {
+                    ComMngPopulationCultMistakeExcelVO mistake = new ComMngPopulationCultMistakeExcelVO();
+                    BeanUtils.copyProperties(vo, mistake);
+                    setCultMistake(mistake, vo);
+                    mistake.setMistake("房屋数据填报不完整" );
+                    mistakes.add(mistake);
+                    log.info("房屋数据填报不完整");
+                    continue;
+                }
+
+
+                if (StringUtils.isEmpty(vo.getName()) && StringUtils.isEmpty(vo.getCardNo())) {
+                    // 空户处理完房屋信息,直接返回
+                    continue;
+                }
+                // 判断实有人口是否已存在
+                log.info("开始查询实有人口是否已存在");
+                ComMngPopulationDO populationDO = null;
+                String populationKey = vo.getCardNo();
+                if (!isOnly(populationKey, populationMap)) {
+                    // 存在实有人口信息,则更新
+                    populationDO = (ComMngPopulationDO)populationMap.get(populationKey);
+                    ComMngPopulationDO updatePopulationDO =
+                        updateCultPopulationDO(vo, populationDO, communityId, userId);
+                    updateList.add(updatePopulationDO);
+                } else {
+                    // 不存在实有人口,则新增
+                    populationDO = saveCultPopulationDO(vo, populationActVO, comMngVillageDO, userId);
+                    saveList.add(populationDO);
+                    populationMap.put(populationDO.getCardNo(),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();
+                        }
+                        if(StringUtils.isNotEmpty(comMngPopulationCommunityTagsDO.getLabel())){
+                            for(String tag:userTag){
+                                if(!comMngPopulationCommunityTagsDO.getLabel().contains(tag)){
+                                    comMngPopulationCommunityTagsDO.setLabel(comMngPopulationCommunityTagsDO.getLabel()+","+tag);
+                                }
+                            }
+                        }
+                        else{
+                            comMngPopulationCommunityTagsDO.setLabel(Joiner.on(",").join(userTag));
+                        }
+                        comMngPopulationCommunityTagsDO.setUpdateBy(userId);
+                        updatePopulationCommunityList.add(comMngPopulationCommunityTagsDO);
+
+                        ComMngPopulationCultMistakeExcelVO mistake = new ComMngPopulationCultMistakeExcelVO();
+                        BeanUtils.copyProperties(vo, mistake);
+                        setCultMistake(mistake, vo);
+                        mistake.setMistake("该实有人口已存在于该社区,执行更新");
+                        mistakes.add(mistake);
+                    }
+                }
+
+                log.info("查询实有人口存在社区信息完成");
+
+                log.info("开始处理楼栋信息");
+                List<ComMngBuildingDO> comMngBuildingDOList= comMngBuildingDAO.selectList(new QueryWrapper<ComMngBuildingDO>().lambda().eq(ComMngBuildingDO::getVillageId,comMngVillageDO.getVillageId()).eq(ComMngBuildingDO::getName,vo.getFloor()));
+                if(comMngBuildingDOList.isEmpty()){
+	   ComMngBuildingDO  comMngBuildingDO=new ComMngBuildingDO();
+                   comMngBuildingDO.setId(Snowflake.getId());
+                   comMngBuildingDO.setVillageId(comMngVillageDO.getVillageId());
+                   comMngBuildingDO.setName(vo.getFloor());
+                   comMngBuildingDO.setActId(comMngVillageDO.getCommunityId());
+                   comMngBuildingDO.setStreetId(comMngVillageDO.getStreetId());
+                   comMngBuildingDAO.insert(comMngBuildingDO);
+                }
+            }
+        } 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.updateBatchById(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("执行数据库更新人口社区关系");
+            comMngPopulationCommunityTagsService.updateBatchById(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 listSaveRehabilitationPopulation(List<ComMngPopulationRehabilitationExcelVO> list, Long communityId,
+        Long userId) {
+        // 需要新增的房屋集合
+        List<ComMngPopulationHouseDO> houseList = new ArrayList<>();
+        // 需要新增的人口集合
+        List<ComMngPopulationDO> saveList = new ArrayList<>();
+        // 需要修改的人口集合
+        List<ComMngPopulationDO> updateList = new ArrayList<>();
+        // 需要新增的人口与房屋关系集合
+        List<ComMngPopulationHouseUserDO> houseUserList = new ArrayList<>();
+        // 需要新增的人口与社区关系集合
+        List<ComMngPopulationCommunityTagsDO> savePopulationCommunityList = new ArrayList<>();
+        // 需要新增的人口与社区关系集合
+        List<ComMngPopulationCommunityTagsDO> updatePopulationCommunityList = new ArrayList<>();
+
+        log.info("开始处理导入数据");
+        List<ComMngPopulationRehabilitationMistakeExcelVO> 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(new QueryWrapper<ComMngPopulationDO>().lambda().eq(ComMngPopulationDO::getActId,communityId));
+            HashMap<String, Object> populationMap = new HashMap<>();
+            populationList.forEach(population -> {
+                String key = population.getCardNo();
+                populationMap.put(key, population);
+            });
+            // 查询所有房屋信息放入到HashMap中
+            List<ComMngPopulationHouseDO> houseLists = comMngPopulationHouseDAO.selectList(new QueryWrapper<ComMngPopulationHouseDO>().lambda().eq(ComMngPopulationHouseDO::getCommunityId,communityId));
+            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(new QueryWrapper<ComMngVillageDO>().lambda().eq(ComMngVillageDO::getCommunityId,communityId));
+            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.selectListIndex(communityId);
+            HashMap<String, Object> houseUserMap = new HashMap<>();
+            houseUserLists.forEach(houseUser -> {
+                String key = houseUser.getPopulId() + houseUser.getHouseId() + "";
+                houseUserMap.put(key, houseUser);
+            });
+
+            List<ComMngPopulationCommunityTagsDO> populationCommunityLists =
+                comMngPopulationCommunityTagsDAO.selectList(new QueryWrapper<ComMngPopulationCommunityTagsDO>().lambda().eq(ComMngPopulationCommunityTagsDO::getCommunityId,communityId));
+            HashMap<String, Object> populationCommunityMap = new HashMap<>();
+            populationCommunityLists.forEach(populationCommunity -> {
+                String key = populationCommunity.getPopulationId() + populationCommunity.getCommunityId() + "";
+                populationCommunityMap.put(key, populationCommunity);
+            });
+
+            for (ComMngPopulationRehabilitationExcelVO 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 {
+                    ComMngPopulationRehabilitationMistakeExcelVO mistake =
+                        new ComMngPopulationRehabilitationMistakeExcelVO();
+                    BeanUtils.copyProperties(vo, mistake);
+                    setRehabilitationMistake(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;
+                // 先判断房屋是否存在
+                if(StringUtils.isNotEmpty(vo.getFloor())&&StringUtils.isNotEmpty(vo.getHouseNo())&&StringUtils.isNotEmpty(vo.getUnitNo())){
+                    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 =
+                                    saveRehabilitationPopulationHouse(vo, comMngVillageDO, communityId, areaPath, populationActVO.getName());
+                            houseList.add(populationHouseDO);
+                        }
+                    } else {
+                        populationHouseDO = (ComMngPopulationHouseDO)houseMap.get(houseKey);
+                    }
+                    vo.setHouseId(populationHouseDO.getId());
+                    log.info("查询房屋是否存在完成");
+                }else {
+                    ComMngPopulationRehabilitationMistakeExcelVO mistake = new ComMngPopulationRehabilitationMistakeExcelVO();
+                    BeanUtils.copyProperties(vo, mistake);
+                    setRehabilitationMistake(mistake, vo);
+                    mistake.setMistake("房屋数据填报不完整" );
+                    mistakes.add(mistake);
+                    log.info("房屋数据填报不完整");
+                    continue;
+                }
+
+                if (StringUtils.isEmpty(vo.getName()) && StringUtils.isEmpty(vo.getCardNo())) {
+                    // 空户处理完房屋信息,直接返回
+                    continue;
+                }
+                // 判断实有人口是否已存在
+                log.info("开始查询实有人口是否已存在");
+                ComMngPopulationDO populationDO = null;
+                String populationKey = vo.getCardNo();
+                if (!isOnly(populationKey, populationMap)) {
+                    // 存在实有人口信息,则更新
+                    populationDO = (ComMngPopulationDO)populationMap.get(populationKey);
+                    ComMngPopulationDO updatePopulationDO =
+                        updateRehabilitationPopulationDO(vo, populationDO, communityId, userId);
+                    updateList.add(updatePopulationDO);
+                } else {
+                    // 不存在实有人口,则新增
+                    populationDO = saveRehabilitationPopulationDO(vo, populationActVO, comMngVillageDO, userId);
+                    saveList.add(populationDO);
+                    populationMap.put(populationDO.getCardNo(),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();
+                        }
+                        if(StringUtils.isNotEmpty(comMngPopulationCommunityTagsDO.getLabel())){
+                            for(String tag:userTag){
+                                if(!comMngPopulationCommunityTagsDO.getLabel().contains(tag)){
+                                    comMngPopulationCommunityTagsDO.setLabel(comMngPopulationCommunityTagsDO.getLabel()+","+tag);
+                                }
+                            }
+                        }
+                        else{
+                            comMngPopulationCommunityTagsDO.setLabel(Joiner.on(",").join(userTag));
+                        }
+                        comMngPopulationCommunityTagsDO.setUpdateBy(userId);
+                        updatePopulationCommunityList.add(comMngPopulationCommunityTagsDO);
+
+                        ComMngPopulationRehabilitationMistakeExcelVO mistake =
+                                new ComMngPopulationRehabilitationMistakeExcelVO();
+                        BeanUtils.copyProperties(vo, mistake);
+                        setRehabilitationMistake(mistake, vo);
+                        mistake.setMistake("该实有人口已存在于该社区,执行更新");
+                        mistakes.add(mistake);
+                    }
+                }
+
+                log.info("查询实有人口存在社区信息完成");
+
+                log.info("开始处理楼栋信息");
+                List<ComMngBuildingDO> comMngBuildingDOList= comMngBuildingDAO.selectList(new QueryWrapper<ComMngBuildingDO>().lambda().eq(ComMngBuildingDO::getVillageId,comMngVillageDO.getVillageId()).eq(ComMngBuildingDO::getName,vo.getFloor()));
+                if(comMngBuildingDOList.isEmpty()){
+	   ComMngBuildingDO  comMngBuildingDO=new ComMngBuildingDO();
+                   comMngBuildingDO.setId(Snowflake.getId());
+                   comMngBuildingDO.setVillageId(comMngVillageDO.getVillageId());
+                   comMngBuildingDO.setName(vo.getFloor());
+                   comMngBuildingDO.setActId(comMngVillageDO.getCommunityId());
+                   comMngBuildingDO.setStreetId(comMngVillageDO.getStreetId());
+                   comMngBuildingDAO.insert(comMngBuildingDO);
+                }
+            }
+        } 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.updateBatchById(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("执行数据库更新人口社区关系");
+            comMngPopulationCommunityTagsService.updateBatchById(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 listSaveKeyPopulation(List<ComMngPopulationKeyExcelVO> list, Long communityId, Long userId) {
+        // 需要新增的房屋集合
+        List<ComMngPopulationHouseDO> houseList = new ArrayList<>();
+        // 需要新增的人口集合
+        List<ComMngPopulationDO> saveList = new ArrayList<>();
+        // 需要修改的人口集合
+        List<ComMngPopulationDO> updateList = new ArrayList<>();
+        // 需要新增的人口与房屋关系集合
+        List<ComMngPopulationHouseUserDO> houseUserList = new ArrayList<>();
+        // 需要新增的人口与社区关系集合
+        List<ComMngPopulationCommunityTagsDO> savePopulationCommunityList = new ArrayList<>();
+        // 需要新增的人口与社区关系集合
+        List<ComMngPopulationCommunityTagsDO> updatePopulationCommunityList = new ArrayList<>();
+
+        log.info("开始处理导入数据");
+        List<ComMngPopulationKeyMistakeExcelVO> 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(new QueryWrapper<ComMngPopulationDO>().lambda().eq(ComMngPopulationDO::getActId,communityId));
+            HashMap<String, Object> populationMap = new HashMap<>();
+            populationList.forEach(population -> {
+                String key = population.getCardNo();
+                populationMap.put(key, population);
+            });
+            // 查询所有房屋信息放入到HashMap中
+            List<ComMngPopulationHouseDO> houseLists = comMngPopulationHouseDAO.selectList(new QueryWrapper<ComMngPopulationHouseDO>().lambda().eq(ComMngPopulationHouseDO::getCommunityId,communityId));
+            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(new QueryWrapper<ComMngVillageDO>().lambda().eq(ComMngVillageDO::getCommunityId,communityId));
+            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.selectListIndex(communityId);
+            HashMap<String, Object> houseUserMap = new HashMap<>();
+            houseUserLists.forEach(houseUser -> {
+                String key = houseUser.getPopulId() + houseUser.getHouseId() + "";
+                houseUserMap.put(key, houseUser);
+            });
+
+            List<ComMngPopulationCommunityTagsDO> populationCommunityLists =
+                comMngPopulationCommunityTagsDAO.selectList(new QueryWrapper<ComMngPopulationCommunityTagsDO>().lambda().eq(ComMngPopulationCommunityTagsDO::getCommunityId,communityId));
+            HashMap<String, Object> populationCommunityMap = new HashMap<>();
+            populationCommunityLists.forEach(populationCommunity -> {
+                String key = populationCommunity.getPopulationId() + populationCommunity.getCommunityId() + "";
+                populationCommunityMap.put(key, populationCommunity);
+            });
+
+            for (ComMngPopulationKeyExcelVO 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 {
+                    ComMngPopulationKeyMistakeExcelVO mistake = new ComMngPopulationKeyMistakeExcelVO();
+                    BeanUtils.copyProperties(vo, mistake);
+                    setKeyMistake(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;
+                // 先判断房屋是否存在
+                if(StringUtils.isNotEmpty(vo.getFloor())&&StringUtils.isNotEmpty(vo.getHouseNo())&&StringUtils.isNotEmpty(vo.getUnitNo())){
+                    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 =
+                                    saveKeyPopulationHouse(vo, comMngVillageDO, communityId, areaPath, populationActVO.getName());
+                            houseList.add(populationHouseDO);
+                        }
+                    } else {
+                        populationHouseDO = (ComMngPopulationHouseDO)houseMap.get(houseKey);
+                    }
+                    vo.setHouseId(populationHouseDO.getId());
+                    log.info("查询房屋是否存在完成");
+                }else {
+                    ComMngPopulationKeyMistakeExcelVO mistake = new ComMngPopulationKeyMistakeExcelVO();
+                    BeanUtils.copyProperties(vo, mistake);
+                    setKeyMistake(mistake, vo);
+                    mistake.setMistake("房屋数据填报不完整" );
+                    mistakes.add(mistake);
+                    log.info("房屋数据填报不完整");
+                    continue;
+                }
+
+                if (StringUtils.isEmpty(vo.getName()) && StringUtils.isEmpty(vo.getCardNo())) {
+                    // 空户处理完房屋信息,直接返回
+                    continue;
+                }
+                // 判断实有人口是否已存在
+                log.info("开始查询实有人口是否已存在");
+                ComMngPopulationDO populationDO = null;
+                String populationKey = vo.getCardNo();
+                if (!isOnly(populationKey, populationMap)) {
+                    // 存在实有人口信息,则更新
+                    populationDO = (ComMngPopulationDO)populationMap.get(populationKey);
+                    ComMngPopulationDO updatePopulationDO =
+                        updateKeyPopulationDO(vo, populationDO, communityId, userId);
+                    updateList.add(updatePopulationDO);
+                } else {
+                    // 不存在实有人口,则新增
+                    populationDO = saveKeyPopulationDO(vo, populationActVO, comMngVillageDO, userId);
+                    saveList.add(populationDO);
+                    populationMap.put(populationDO.getCardNo(),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();
+                        }
+                        if(StringUtils.isNotEmpty(comMngPopulationCommunityTagsDO.getLabel())){
+                            for(String tag:userTag){
+                                if(!comMngPopulationCommunityTagsDO.getLabel().contains(tag)){
+                                    comMngPopulationCommunityTagsDO.setLabel(comMngPopulationCommunityTagsDO.getLabel()+","+tag);
+                                }
+                            }
+                        }
+                        else{
+                            comMngPopulationCommunityTagsDO.setLabel(Joiner.on(",").join(userTag));
+                        }
+                        comMngPopulationCommunityTagsDO.setUpdateBy(userId);
+                        updatePopulationCommunityList.add(comMngPopulationCommunityTagsDO);
+
+                        ComMngPopulationKeyMistakeExcelVO mistake = new ComMngPopulationKeyMistakeExcelVO();
+                        BeanUtils.copyProperties(vo, mistake);
+                        setKeyMistake(mistake, vo);
+                        mistake.setMistake("该实有人口已存在于该社区,执行更新");
+                        mistakes.add(mistake);
+                    }
+                }
+
+                log.info("查询实有人口存在社区信息完成");
+
+                log.info("开始处理楼栋信息");
+                List<ComMngBuildingDO> comMngBuildingDOList= comMngBuildingDAO.selectList(new QueryWrapper<ComMngBuildingDO>().lambda().eq(ComMngBuildingDO::getVillageId,comMngVillageDO.getVillageId()).eq(ComMngBuildingDO::getName,vo.getFloor()));
+                if(comMngBuildingDOList.isEmpty()){
+	   ComMngBuildingDO  comMngBuildingDO=new ComMngBuildingDO();
+                   comMngBuildingDO.setId(Snowflake.getId());
+                   comMngBuildingDO.setVillageId(comMngVillageDO.getVillageId());
+                   comMngBuildingDO.setName(vo.getFloor());
+                   comMngBuildingDO.setActId(comMngVillageDO.getCommunityId());
+                   comMngBuildingDO.setStreetId(comMngVillageDO.getStreetId());
+                   comMngBuildingDAO.insert(comMngBuildingDO);
+                }
+            }
+        } 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.updateBatchById(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("执行数据库更新人口社区关系");
+            comMngPopulationCommunityTagsService.updateBatchById(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 listSaveSentencePopulation(List<ComMngPopulationSentenceExcelVO> list, Long communityId, Long userId) {
+        // 需要新增的房屋集合
+        List<ComMngPopulationHouseDO> houseList = new ArrayList<>();
+        // 需要新增的人口集合
+        List<ComMngPopulationDO> saveList = new ArrayList<>();
+        // 需要修改的人口集合
+        List<ComMngPopulationDO> updateList = new ArrayList<>();
+        // 需要新增的人口与房屋关系集合
+        List<ComMngPopulationHouseUserDO> houseUserList = new ArrayList<>();
+        // 需要新增的人口与社区关系集合
+        List<ComMngPopulationCommunityTagsDO> savePopulationCommunityList = new ArrayList<>();
+        // 需要新增的人口与社区关系集合
+        List<ComMngPopulationCommunityTagsDO> updatePopulationCommunityList = new ArrayList<>();
+
+        log.info("开始处理导入数据");
+        List<ComMngPopulationSentenceMistakeExcelVO> 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(new QueryWrapper<ComMngPopulationDO>().lambda().eq(ComMngPopulationDO::getActId,communityId));
+            HashMap<String, Object> populationMap = new HashMap<>();
+            populationList.forEach(population -> {
+                String key = population.getCardNo();
+                populationMap.put(key, population);
+            });
+            // 查询所有房屋信息放入到HashMap中
+            List<ComMngPopulationHouseDO> houseLists = comMngPopulationHouseDAO.selectList(new QueryWrapper<ComMngPopulationHouseDO>().lambda().eq(ComMngPopulationHouseDO::getCommunityId,communityId));
+            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(new QueryWrapper<ComMngVillageDO>().lambda().eq(ComMngVillageDO::getCommunityId,communityId));
+            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.selectListIndex(communityId);
+            HashMap<String, Object> houseUserMap = new HashMap<>();
+            houseUserLists.forEach(houseUser -> {
+                String key = houseUser.getPopulId() + houseUser.getHouseId() + "";
+                houseUserMap.put(key, houseUser);
+            });
+
+            List<ComMngPopulationCommunityTagsDO> populationCommunityLists =
+                comMngPopulationCommunityTagsDAO.selectList(new QueryWrapper<ComMngPopulationCommunityTagsDO>().lambda().eq(ComMngPopulationCommunityTagsDO::getCommunityId,communityId));
+            HashMap<String, Object> populationCommunityMap = new HashMap<>();
+            populationCommunityLists.forEach(populationCommunity -> {
+                String key = populationCommunity.getPopulationId() + populationCommunity.getCommunityId() + "";
+                populationCommunityMap.put(key, populationCommunity);
+            });
+
+            for (ComMngPopulationSentenceExcelVO 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 {
+                    ComMngPopulationSentenceMistakeExcelVO mistake = new ComMngPopulationSentenceMistakeExcelVO();
+                    BeanUtils.copyProperties(vo, mistake);
+                    setSentenceMistake(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;
+                // 先判断房屋是否存在
+                if(StringUtils.isNotEmpty(vo.getFloor())&&StringUtils.isNotEmpty(vo.getHouseNo())&&StringUtils.isNotEmpty(vo.getUnitNo())){
+                    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 =
+                                    saveSentencePopulationHouse(vo, comMngVillageDO, communityId, areaPath, populationActVO.getName());
+                            houseList.add(populationHouseDO);
+                        }
+                    } else {
+                        populationHouseDO = (ComMngPopulationHouseDO)houseMap.get(houseKey);
+                    }
+                    vo.setHouseId(populationHouseDO.getId());
+                    log.info("查询房屋是否存在完成");
+                }else {
+                    ComMngPopulationSentenceMistakeExcelVO mistake = new ComMngPopulationSentenceMistakeExcelVO();
+                    BeanUtils.copyProperties(vo, mistake);
+                    setSentenceMistake(mistake, vo);
+                    mistake.setMistake("房屋数据填报不完整" );
+                    mistakes.add(mistake);
+                    log.info("房屋数据填报不完整");
+                    continue;
+                }
+
+                if (StringUtils.isEmpty(vo.getName()) && StringUtils.isEmpty(vo.getCardNo())) {
+                    // 空户处理完房屋信息,直接返回
+                    continue;
+                }
+                // 判断实有人口是否已存在
+                log.info("开始查询实有人口是否已存在");
+                ComMngPopulationDO populationDO = null;
+                String populationKey = vo.getCardNo();
+                if (!isOnly(populationKey, populationMap)) {
+                    // 存在实有人口信息,则更新
+                    populationDO = (ComMngPopulationDO)populationMap.get(populationKey);
+                    ComMngPopulationDO updatePopulationDO =
+                        updateSentencePopulationDO(vo, populationDO, communityId, userId);
+                    updateList.add(updatePopulationDO);
+                } else {
+                    // 不存在实有人口,则新增
+                    populationDO = saveSentencePopulationDO(vo, populationActVO, comMngVillageDO, userId);
+                    saveList.add(populationDO);
+                    populationMap.put(populationDO.getCardNo(),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();
+                        }
+                        if(StringUtils.isNotEmpty(comMngPopulationCommunityTagsDO.getLabel())){
+                            for(String tag:userTag){
+                                if(!comMngPopulationCommunityTagsDO.getLabel().contains(tag)){
+                                    comMngPopulationCommunityTagsDO.setLabel(comMngPopulationCommunityTagsDO.getLabel()+","+tag);
+                                }
+                            }
+                        }
+                        else{
+                            comMngPopulationCommunityTagsDO.setLabel(Joiner.on(",").join(userTag));
+                        }
+                        comMngPopulationCommunityTagsDO.setUpdateBy(userId);
+                        updatePopulationCommunityList.add(comMngPopulationCommunityTagsDO);
+
+                        ComMngPopulationSentenceMistakeExcelVO mistake = new ComMngPopulationSentenceMistakeExcelVO();
+                        BeanUtils.copyProperties(vo, mistake);
+                        setSentenceMistake(mistake, vo);
+                        mistake.setMistake("该实有人口已存在于该社区,执行更新");
+                        mistakes.add(mistake);
+                    }
+                }
+
+                log.info("查询实有人口存在社区信息完成");
+
+                log.info("开始处理楼栋信息");
+                List<ComMngBuildingDO> comMngBuildingDOList= comMngBuildingDAO.selectList(new QueryWrapper<ComMngBuildingDO>().lambda().eq(ComMngBuildingDO::getVillageId,comMngVillageDO.getVillageId()).eq(ComMngBuildingDO::getName,vo.getFloor()));
+                if(comMngBuildingDOList.isEmpty()){
+	   ComMngBuildingDO  comMngBuildingDO=new ComMngBuildingDO();
+                   comMngBuildingDO.setId(Snowflake.getId());
+                   comMngBuildingDO.setVillageId(comMngVillageDO.getVillageId());
+                   comMngBuildingDO.setName(vo.getFloor());
+                   comMngBuildingDO.setActId(comMngVillageDO.getCommunityId());
+                   comMngBuildingDO.setStreetId(comMngVillageDO.getStreetId());
+                   comMngBuildingDAO.insert(comMngBuildingDO);
+                }
+            }
+        } 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.updateBatchById(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("执行数据库更新人口社区关系");
+            comMngPopulationCommunityTagsService.updateBatchById(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 listSaveVeteransPopulation(List<ComMngPopulationVeteransExcelVO> list, Long communityId, Long userId) {
+        // 需要新增的房屋集合
+        List<ComMngPopulationHouseDO> houseList = new ArrayList<>();
+        // 需要新增的人口集合
+        List<ComMngPopulationDO> saveList = new ArrayList<>();
+        // 需要修改的人口集合
+        List<ComMngPopulationDO> updateList = new ArrayList<>();
+        // 需要新增的人口与房屋关系集合
+        List<ComMngPopulationHouseUserDO> houseUserList = new ArrayList<>();
+        // 需要新增的人口与社区关系集合
+        List<ComMngPopulationCommunityTagsDO> savePopulationCommunityList = new ArrayList<>();
+        // 需要新增的人口与社区关系集合
+        List<ComMngPopulationCommunityTagsDO> updatePopulationCommunityList = new ArrayList<>();
+
+        log.info("开始处理导入数据");
+        List<ComMngPopulationVeteransMistakeExcelVO> 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(new QueryWrapper<ComMngPopulationDO>().lambda().eq(ComMngPopulationDO::getActId,communityId));
+            HashMap<String, Object> populationMap = new HashMap<>();
+            populationList.forEach(population -> {
+                String key = population.getCardNo();
+                populationMap.put(key, population);
+            });
+            // 查询所有房屋信息放入到HashMap中
+            List<ComMngPopulationHouseDO> houseLists = comMngPopulationHouseDAO.selectList(new QueryWrapper<ComMngPopulationHouseDO>().lambda().eq(ComMngPopulationHouseDO::getCommunityId,communityId));
+            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(new QueryWrapper<ComMngVillageDO>().lambda().eq(ComMngVillageDO::getCommunityId,communityId));
+            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.selectListIndex(communityId);
+            HashMap<String, Object> houseUserMap = new HashMap<>();
+            houseUserLists.forEach(houseUser -> {
+                String key = houseUser.getPopulId() + houseUser.getHouseId() + "";
+                houseUserMap.put(key, houseUser);
+            });
+
+            List<ComMngPopulationCommunityTagsDO> populationCommunityLists =
+                comMngPopulationCommunityTagsDAO.selectList(new QueryWrapper<ComMngPopulationCommunityTagsDO>().lambda().eq(ComMngPopulationCommunityTagsDO::getCommunityId,communityId));
+            HashMap<String, Object> populationCommunityMap = new HashMap<>();
+            populationCommunityLists.forEach(populationCommunity -> {
+                String key = populationCommunity.getPopulationId() + populationCommunity.getCommunityId() + "";
+                populationCommunityMap.put(key, populationCommunity);
+            });
+
+            for (ComMngPopulationVeteransExcelVO 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 {
+                    ComMngPopulationVeteransMistakeExcelVO mistake = new ComMngPopulationVeteransMistakeExcelVO();
+                    BeanUtils.copyProperties(vo, mistake);
+                    setVeteransMistake(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;
+                // 先判断房屋是否存在
+                if(StringUtils.isNotEmpty(vo.getFloor())&&StringUtils.isNotEmpty(vo.getHouseNo())&&StringUtils.isNotEmpty(vo.getUnitNo())){
+                    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 =
+                                    saveVeteransPopulationHouse(vo, comMngVillageDO, communityId, areaPath, populationActVO.getName());
+                            houseList.add(populationHouseDO);
+                        }
+                    } else {
+                        populationHouseDO = (ComMngPopulationHouseDO)houseMap.get(houseKey);
+                    }
+                    vo.setHouseId(populationHouseDO.getId());
+                    log.info("查询房屋是否存在完成");
+                }else {
+                    ComMngPopulationVeteransMistakeExcelVO mistake = new ComMngPopulationVeteransMistakeExcelVO();
+                    BeanUtils.copyProperties(vo, mistake);
+                    setVeteransMistake(mistake, vo);
+                    mistake.setMistake("房屋数据填报不完整" );
+                    mistakes.add(mistake);
+                    log.info("房屋数据填报不完整");
+                    continue;
+                }
+
+                if (StringUtils.isEmpty(vo.getName()) && StringUtils.isEmpty(vo.getCardNo())) {
+                    // 空户处理完房屋信息,直接返回
+                    continue;
+                }
+                // 判断实有人口是否已存在
+                log.info("开始查询实有人口是否已存在");
+                ComMngPopulationDO populationDO = null;
+                String populationKey = vo.getCardNo();
+                if (!isOnly(populationKey, populationMap)) {
+                    // 存在实有人口信息,则更新
+                    populationDO = (ComMngPopulationDO)populationMap.get(populationKey);
+                    ComMngPopulationDO updatePopulationDO =
+                        updateVeteransPopulationDO(vo, populationDO, communityId, userId);
+                    updateList.add(updatePopulationDO);
+                } else {
+                    // 不存在实有人口,则新增
+                    populationDO = saveVeteransPopulationDO(vo, populationActVO, comMngVillageDO, userId);
+                    saveList.add(populationDO);
+                    populationMap.put(populationDO.getCardNo(),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();
+                        }
+                        if(StringUtils.isNotEmpty(comMngPopulationCommunityTagsDO.getLabel())){
+                            for(String tag:userTag){
+                                if(!comMngPopulationCommunityTagsDO.getLabel().contains(tag)){
+                                    comMngPopulationCommunityTagsDO.setLabel(comMngPopulationCommunityTagsDO.getLabel()+","+tag);
+                                }
+                            }
+                        }
+                        else{
+                            comMngPopulationCommunityTagsDO.setLabel(Joiner.on(",").join(userTag));
+                        }
+                        comMngPopulationCommunityTagsDO.setUpdateBy(userId);
+                        updatePopulationCommunityList.add(comMngPopulationCommunityTagsDO);
+
+                        ComMngPopulationVeteransMistakeExcelVO mistake = new ComMngPopulationVeteransMistakeExcelVO();
+                        BeanUtils.copyProperties(vo, mistake);
+                        setVeteransMistake(mistake, vo);
+                        mistake.setMistake("该实有人口已存在于该社区,执行更新");
+                        mistakes.add(mistake);
+                    }
+                }
+
+                log.info("查询实有人口存在社区信息完成");
+
+                log.info("开始处理楼栋信息");
+                List<ComMngBuildingDO> comMngBuildingDOList= comMngBuildingDAO.selectList(new QueryWrapper<ComMngBuildingDO>().lambda().eq(ComMngBuildingDO::getVillageId,comMngVillageDO.getVillageId()).eq(ComMngBuildingDO::getName,vo.getFloor()));
+                if(comMngBuildingDOList.isEmpty()){
+	   ComMngBuildingDO  comMngBuildingDO=new ComMngBuildingDO();
+                   comMngBuildingDO.setId(Snowflake.getId());
+                   comMngBuildingDO.setVillageId(comMngVillageDO.getVillageId());
+                   comMngBuildingDO.setName(vo.getFloor());
+                   comMngBuildingDO.setActId(comMngVillageDO.getCommunityId());
+                   comMngBuildingDO.setStreetId(comMngVillageDO.getStreetId());
+                   comMngBuildingDAO.insert(comMngBuildingDO);
+                }
+            }
+        } 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.updateBatchById(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("执行数据库更新人口社区关系");
+            comMngPopulationCommunityTagsService.updateBatchById(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 listSaveDisabilityPopulation(List<ComMngPopulationDisabilityExcelVO> list, Long communityId, Long userId) {
+        // 需要新增的房屋集合
+        List<ComMngPopulationHouseDO> houseList = new ArrayList<>();
+        // 需要新增的人口集合
+        List<ComMngPopulationDO> saveList = new ArrayList<>();
+        // 需要修改的人口集合
+        List<ComMngPopulationDO> updateList = new ArrayList<>();
+        // 需要新增的人口与房屋关系集合
+        List<ComMngPopulationHouseUserDO> houseUserList = new ArrayList<>();
+        // 需要新增的人口与社区关系集合
+        List<ComMngPopulationCommunityTagsDO> savePopulationCommunityList = new ArrayList<>();
+        // 需要新增的人口与社区关系集合
+        List<ComMngPopulationCommunityTagsDO> updatePopulationCommunityList = new ArrayList<>();
+
+        log.info("开始处理导入数据");
+        List<ComMngPopulationDisabilityMistakeExcelVO> 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(new QueryWrapper<ComMngPopulationDO>().lambda().eq(ComMngPopulationDO::getActId,communityId));
+            HashMap<String, Object> populationMap = new HashMap<>();
+            populationList.forEach(population -> {
+                String key = population.getCardNo();
+                populationMap.put(key, population);
+            });
+            // 查询所有房屋信息放入到HashMap中
+            List<ComMngPopulationHouseDO> houseLists = comMngPopulationHouseDAO.selectList(new QueryWrapper<ComMngPopulationHouseDO>().lambda().eq(ComMngPopulationHouseDO::getCommunityId,communityId));
+            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(new QueryWrapper<ComMngVillageDO>().lambda().eq(ComMngVillageDO::getCommunityId,communityId));
+            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.selectListIndex(communityId);
+            HashMap<String, Object> houseUserMap = new HashMap<>();
+            houseUserLists.forEach(houseUser -> {
+                String key = houseUser.getPopulId() + houseUser.getHouseId() + "";
+                houseUserMap.put(key, houseUser);
+            });
+
+            List<ComMngPopulationCommunityTagsDO> populationCommunityLists =
+                comMngPopulationCommunityTagsDAO.selectList(new QueryWrapper<ComMngPopulationCommunityTagsDO>().lambda().eq(ComMngPopulationCommunityTagsDO::getCommunityId,communityId));
+            HashMap<String, Object> populationCommunityMap = new HashMap<>();
+            populationCommunityLists.forEach(populationCommunity -> {
+                String key = populationCommunity.getPopulationId() + populationCommunity.getCommunityId() + "";
+                populationCommunityMap.put(key, populationCommunity);
+            });
+
+            for (ComMngPopulationDisabilityExcelVO 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 {
+                    ComMngPopulationDisabilityMistakeExcelVO mistake = new ComMngPopulationDisabilityMistakeExcelVO();
+                    BeanUtils.copyProperties(vo, mistake);
+                    setDisabilityMistake(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;
+                // 先判断房屋是否存在
+                if(StringUtils.isNotEmpty(vo.getFloor())&&StringUtils.isNotEmpty(vo.getHouseNo())&&StringUtils.isNotEmpty(vo.getUnitNo())){
+                    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 =
+                                    saveDisabilityPopulationHouse(vo, comMngVillageDO, communityId, areaPath, populationActVO.getName());
+                            houseList.add(populationHouseDO);
+                        }
+                    } else {
+                        populationHouseDO = (ComMngPopulationHouseDO)houseMap.get(houseKey);
+                    }
+                    vo.setHouseId(populationHouseDO.getId());
+                    log.info("查询房屋是否存在完成");
+                }else {
+                    ComMngPopulationDisabilityMistakeExcelVO mistake = new ComMngPopulationDisabilityMistakeExcelVO();
+                    BeanUtils.copyProperties(vo, mistake);
+                    setDisabilityMistake(mistake, vo);
+                    mistake.setMistake("房屋数据填报不完整" );
+                    mistakes.add(mistake);
+                    log.info("房屋数据填报不完整");
+                    continue;
+                }
+
+                if (StringUtils.isEmpty(vo.getName()) && StringUtils.isEmpty(vo.getCardNo())) {
+                    // 空户处理完房屋信息,直接返回
+                    continue;
+                }
+                // 判断实有人口是否已存在
+                log.info("开始查询实有人口是否已存在");
+                ComMngPopulationDO populationDO = null;
+                String populationKey = vo.getCardNo();
+                if (!isOnly(populationKey, populationMap)) {
+                    // 存在实有人口信息,则更新
+                    populationDO = (ComMngPopulationDO)populationMap.get(populationKey);
+                    ComMngPopulationDO updatePopulationDO =
+                        updateDisabilityPopulationDO(vo, populationDO, communityId, userId);
+                    updateList.add(updatePopulationDO);
+                } else {
+                    // 不存在实有人口,则新增
+                    populationDO = saveDisabilityPopulationDO(vo, populationActVO, comMngVillageDO, userId);
+                    saveList.add(populationDO);
+                    populationMap.put(populationDO.getCardNo(),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();
+                        }
+                        if(StringUtils.isNotEmpty(comMngPopulationCommunityTagsDO.getLabel())){
+                            for(String tag:userTag){
+                                if(!comMngPopulationCommunityTagsDO.getLabel().contains(tag)){
+                                    comMngPopulationCommunityTagsDO.setLabel(comMngPopulationCommunityTagsDO.getLabel()+","+tag);
+                                }
+                            }
+                        }
+                        else{
+                            comMngPopulationCommunityTagsDO.setLabel(Joiner.on(",").join(userTag));
+                        }
+                        comMngPopulationCommunityTagsDO.setUpdateBy(userId);
+                        updatePopulationCommunityList.add(comMngPopulationCommunityTagsDO);
+
+                        ComMngPopulationDisabilityMistakeExcelVO mistake = new ComMngPopulationDisabilityMistakeExcelVO();
+                        BeanUtils.copyProperties(vo, mistake);
+                        setDisabilityMistake(mistake, vo);
+                        mistake.setMistake("该实有人口已存在于该社区,执行更新");
+                        mistakes.add(mistake);
+                    }
+                }
+
+                log.info("查询实有人口存在社区信息完成");
+
+                log.info("开始处理楼栋信息");
+                List<ComMngBuildingDO> comMngBuildingDOList= comMngBuildingDAO.selectList(new QueryWrapper<ComMngBuildingDO>().lambda().eq(ComMngBuildingDO::getVillageId,comMngVillageDO.getVillageId()).eq(ComMngBuildingDO::getName,vo.getFloor()));
+                if(comMngBuildingDOList.isEmpty()){
+	   ComMngBuildingDO  comMngBuildingDO=new ComMngBuildingDO();
+                   comMngBuildingDO.setId(Snowflake.getId());
+                   comMngBuildingDO.setVillageId(comMngVillageDO.getVillageId());
+                   comMngBuildingDO.setName(vo.getFloor());
+                   comMngBuildingDO.setActId(comMngVillageDO.getCommunityId());
+                   comMngBuildingDO.setStreetId(comMngVillageDO.getStreetId());
+                   comMngBuildingDAO.insert(comMngBuildingDO);
+                }
+            }
+        } 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.updateBatchById(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("执行数据库更新人口社区关系");
+            comMngPopulationCommunityTagsService.updateBatchById(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 listSaveLowSecurityPopulation(List<ComMngPopulationLowSecurityExcelVO> 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<ComMngPopulationLowSecurityMistakeExcelVO> 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(new QueryWrapper<ComMngPopulationDO>().lambda().eq(ComMngPopulationDO::getActId,communityId));
+            HashMap<String, Object> populationMap = new HashMap<>();
+            populationList.forEach(population -> {
+                String key = population.getCardNo();
+                populationMap.put(key, population);
+            });
+            // 查询所有房屋信息放入到HashMap中
+            List<ComMngPopulationHouseDO> houseLists = comMngPopulationHouseDAO.selectList(new QueryWrapper<ComMngPopulationHouseDO>().lambda().eq(ComMngPopulationHouseDO::getCommunityId,communityId));
+            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(new QueryWrapper<ComMngVillageDO>().lambda().eq(ComMngVillageDO::getCommunityId,communityId));
+            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.selectListIndex(communityId);
+            HashMap<String, Object> houseUserMap = new HashMap<>();
+            houseUserLists.forEach(houseUser -> {
+                String key = houseUser.getPopulId() + houseUser.getHouseId() + "";
+                houseUserMap.put(key, houseUser);
+            });
+
+            List<ComMngPopulationCommunityTagsDO> populationCommunityLists =
+                comMngPopulationCommunityTagsDAO.selectList(new QueryWrapper<ComMngPopulationCommunityTagsDO>().lambda().eq(ComMngPopulationCommunityTagsDO::getCommunityId,communityId));
+            HashMap<String, Object> populationCommunityMap = new HashMap<>();
+            populationCommunityLists.forEach(populationCommunity -> {
+                String key = populationCommunity.getPopulationId() + populationCommunity.getCommunityId() + "";
+                populationCommunityMap.put(key, populationCommunity);
+            });
+
+            for (ComMngPopulationLowSecurityExcelVO 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 {
+                    ComMngPopulationLowSecurityMistakeExcelVO mistake = new ComMngPopulationLowSecurityMistakeExcelVO();
+                    BeanUtils.copyProperties(vo, mistake);
+                    setLowSecurityMistake(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;
+                // 先判断房屋是否存在
+                if(StringUtils.isNotEmpty(vo.getFloor())&&StringUtils.isNotEmpty(vo.getHouseNo())&&StringUtils.isNotEmpty(vo.getUnitNo())){
+                    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 =
+                                    saveLowSecurityPopulationHouse(vo, comMngVillageDO, communityId, areaPath, populationActVO.getName());
+                            houseList.add(populationHouseDO);
+                        }
+                    } else {
+                        populationHouseDO = (ComMngPopulationHouseDO)houseMap.get(houseKey);
+                    }
+                    vo.setHouseId(populationHouseDO.getId());
+                    log.info("查询房屋是否存在完成");
+                }else {
+                    ComMngPopulationLowSecurityMistakeExcelVO mistake = new ComMngPopulationLowSecurityMistakeExcelVO();
+                    BeanUtils.copyProperties(vo, mistake);
+                    setLowSecurityMistake(mistake, vo);
+                    mistake.setMistake("房屋数据填报不完整" );
+                    mistakes.add(mistake);
+                    log.info("房屋数据填报不完整");
+                    continue;
+                }
+
+                if (StringUtils.isEmpty(vo.getName()) && StringUtils.isEmpty(vo.getCardNo())) {
+                    // 空户处理完房屋信息,直接返回
+                    continue;
+                }
+                // 判断实有人口是否已存在
+                log.info("开始查询实有人口是否已存在");
+                ComMngPopulationDO populationDO = null;
+                String populationKey = vo.getCardNo();
+                if (!isOnly(populationKey, populationMap)) {
+                    // 存在实有人口信息,则更新
+                    populationDO = (ComMngPopulationDO)populationMap.get(populationKey);
+                    ComMngPopulationDO updatePopulationDO =
+                        updateLowSecurityPopulationDO(vo, populationDO, communityId, userId);
+                    updateList.add(updatePopulationDO);
+                } else {
+                    // 不存在实有人口,则新增
+                    populationDO = saveLowSecurityPopulationDO(vo, populationActVO, comMngVillageDO, userId);
+                    saveList.add(populationDO);
+                    populationMap.put(populationDO.getCardNo(),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();
+                        }
+                        if(StringUtils.isNotEmpty(comMngPopulationCommunityTagsDO.getLabel())){
+                            for(String tag:userTag){
+                                if(!comMngPopulationCommunityTagsDO.getLabel().contains(tag)){
+                                    comMngPopulationCommunityTagsDO.setLabel(comMngPopulationCommunityTagsDO.getLabel()+","+tag);
+                                }
+                            }
+                        }
+                        else{
+                            comMngPopulationCommunityTagsDO.setLabel(Joiner.on(",").join(userTag));
+                        }
+                        comMngPopulationCommunityTagsDO.setUpdateBy(userId);
+                        updatePopulationCommunityList.add(comMngPopulationCommunityTagsDO);
+
+                        ComMngPopulationLowSecurityMistakeExcelVO mistake = new ComMngPopulationLowSecurityMistakeExcelVO();
+                        BeanUtils.copyProperties(vo, mistake);
+                        setLowSecurityMistake(mistake, vo);
+                        mistake.setMistake("该实有人口已存在于该社区,执行更新");
+                        mistakes.add(mistake);
+                    }
+                }
+
+                log.info("查询实有人口存在社区信息完成");
+
+                log.info("开始处理楼栋信息");
+                List<ComMngBuildingDO> comMngBuildingDOList= comMngBuildingDAO.selectList(new QueryWrapper<ComMngBuildingDO>().lambda().eq(ComMngBuildingDO::getVillageId,comMngVillageDO.getVillageId()).eq(ComMngBuildingDO::getName,vo.getFloor()));
+                if(comMngBuildingDOList.isEmpty()){
+	   ComMngBuildingDO  comMngBuildingDO=new ComMngBuildingDO();
+                   comMngBuildingDO.setId(Snowflake.getId());
+                   comMngBuildingDO.setVillageId(comMngVillageDO.getVillageId());
+                   comMngBuildingDO.setName(vo.getFloor());
+                   comMngBuildingDO.setActId(comMngVillageDO.getCommunityId());
+                   comMngBuildingDO.setStreetId(comMngVillageDO.getStreetId());
+                   comMngBuildingDAO.insert(comMngBuildingDO);
+                }
+            }
+        } 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.updateBatchById(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("执行数据库更新人口社区关系");
+            comMngPopulationCommunityTagsService.updateBatchById(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<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.selectListIndex(communityId);
+            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;
+                // 先判断房屋是否存在
+                if(StringUtils.isNotEmpty(vo.getFloor())&&StringUtils.isNotEmpty(vo.getHouseNo())&&StringUtils.isNotEmpty(vo.getUnitNo())){
+                    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("查询房屋是否存在完成");
+                }else {
+                    ComMngPopulationElderMistakeExcelVO mistake = new ComMngPopulationElderMistakeExcelVO();
+                    BeanUtils.copyProperties(vo, mistake);
+                    setElderMistake(mistake, vo);
+                    mistake.setMistake("房屋数据填报不完整" );
+                    mistakes.add(mistake);
+                    log.info("房屋数据填报不完整");
+                    continue;
+                }
+
+                if (StringUtils.isEmpty(vo.getName()) && StringUtils.isEmpty(vo.getCardNo())) {
+                    // 空户处理完房屋信息,直接返回
+                    continue;
+                }
+                // 判断实有人口是否已存在
+                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);
+                    populationMap.put(populationDO.getCardNo(),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(StringUtils.isNotEmpty(comMngPopulationCommunityTagsDO.getLabel())
+                                    && comMngPopulationCommunityTagsDO.getLabel().contains(s)){
+                                iterator.remove();
+                            }
+                        }
+                        if(StringUtils.isNotEmpty(comMngPopulationCommunityTagsDO.getLabel())){
+                            for(String tag:userTag){
+                                if(!comMngPopulationCommunityTagsDO.getLabel().contains(tag)){
+                                    comMngPopulationCommunityTagsDO.setLabel(comMngPopulationCommunityTagsDO.getLabel()+","+tag);
+                                }
+                            }
+                        }
+                        else{
+                            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("查询实有人口存在社区信息完成");
+
+                log.info("开始处理楼栋信息");
+                List<ComMngBuildingDO> comMngBuildingDOList= comMngBuildingDAO.selectList(new QueryWrapper<ComMngBuildingDO>().lambda().eq(ComMngBuildingDO::getVillageId,comMngVillageDO.getVillageId()).eq(ComMngBuildingDO::getName,vo.getFloor()));
+                if(comMngBuildingDOList.isEmpty()){
+	   ComMngBuildingDO  comMngBuildingDO=new ComMngBuildingDO();
+                   comMngBuildingDO.setId(Snowflake.getId());
+                   comMngBuildingDO.setVillageId(comMngVillageDO.getVillageId());
+                   comMngBuildingDO.setName(vo.getFloor());
+                   comMngBuildingDO.setActId(comMngVillageDO.getCommunityId());
+                   comMngBuildingDO.setStreetId(comMngVillageDO.getStreetId());
+                   comMngBuildingDAO.insert(comMngBuildingDO);
+                }
+            }
+        } 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.updateBatchById(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("执行数据库更新人口社区关系");
+            comMngPopulationCommunityTagsService.updateBatchById(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<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.selectListIndex(communityId);
+            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;
+                // 先判断房屋是否存在
+                if(StringUtils.isNotEmpty(vo.getFloor())&&StringUtils.isNotEmpty(vo.getHouseNo())&&StringUtils.isNotEmpty(vo.getUnitNo())){
+                    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("查询房屋是否存在完成");
+                }else {
+                    ComMngPopulationPensionMistakeExcelVO mistake = new ComMngPopulationPensionMistakeExcelVO();
+                    BeanUtils.copyProperties(vo, mistake);
+                    setPensionMistake(mistake, vo);
+                    mistake.setMistake("房屋数据填报不完整" );
+                    mistakes.add(mistake);
+                    log.info("房屋数据填报不完整");
+                    continue;
+                }
+
+                if (StringUtils.isEmpty(vo.getName()) && StringUtils.isEmpty(vo.getCardNo())) {
+                    // 空户处理完房屋信息,直接返回
+                    continue;
+                }
+                // 判断实有人口是否已存在
+                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);
+                    populationMap.put(populationDO.getCardNo(),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(StringUtils.isNotEmpty(comMngPopulationCommunityTagsDO.getLabel())
+                                    && comMngPopulationCommunityTagsDO.getLabel().contains(s)){
+                                iterator.remove();
+                            }
+                        }
+                        if(StringUtils.isNotEmpty(comMngPopulationCommunityTagsDO.getLabel())){
+                            for(String tag:userTag){
+                                if(!comMngPopulationCommunityTagsDO.getLabel().contains(tag)){
+                                    comMngPopulationCommunityTagsDO.setLabel(comMngPopulationCommunityTagsDO.getLabel()+","+tag);
+                                }
+                            }
+                        }
+                        else{
+                            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);
+                    }
+                }
+
+                log.info("查询实有人口存在社区信息完成");
+
+                log.info("开始处理楼栋信息");
+                List<ComMngBuildingDO> comMngBuildingDOList= comMngBuildingDAO.selectList(new QueryWrapper<ComMngBuildingDO>().lambda().eq(ComMngBuildingDO::getVillageId,comMngVillageDO.getVillageId()).eq(ComMngBuildingDO::getName,vo.getFloor()));
+                if(comMngBuildingDOList.isEmpty()){
+	   ComMngBuildingDO  comMngBuildingDO=new ComMngBuildingDO();
+                   comMngBuildingDO.setId(Snowflake.getId());
+                   comMngBuildingDO.setVillageId(comMngVillageDO.getVillageId());
+                   comMngBuildingDO.setName(vo.getFloor());
+                   comMngBuildingDO.setActId(comMngVillageDO.getCommunityId());
+                   comMngBuildingDO.setStreetId(comMngVillageDO.getStreetId());
+                   comMngBuildingDAO.insert(comMngBuildingDO);
+                }
+            }
+        } 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.updateBatchById(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("执行数据库更新人口社区关系");
+            comMngPopulationCommunityTagsService.updateBatchById(updatePopulationCommunityList);
+            log.info("数据库更新人口社区关系完成");
+        }
+        log.info("执行数据库导入完成");
+
+        if (!mistakes.isEmpty()) {
+            log.info("返回错误数据");
+            return R.fail(mistakes);
+        }
+        return R.ok(mistakes);
+    }
+
+    private ComMngPopulationDO updatePopulationDO(ComMngPopulationServeExcelVO vo, ComMngPopulationDO populationDO,
+        Long communityId, Long userId) {
+        BeanUtils.copyProperties(vo, populationDO);
+        Integer personType = vo.getPersonType();
+        if (nonNull(personType)) {
+            populationDO.setPersonType(personType.toString());
+        }
+        // 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);
+        return populationDO;
+    }
+
+    private ComMngPopulationDO updateDrugPopulationDO(ComMngPopulationDrugExcelVO vo, ComMngPopulationDO populationDO,
+        Long communityId, Long userId) {
+        BeanUtils.copyProperties(vo, populationDO);
+        ComDrugPopulationDO comDrugPopulationDO = comDrugPopulationDAO.selectOne(new QueryWrapper<ComDrugPopulationDO>()
+            .lambda().eq(ComDrugPopulationDO::getPopulationId, populationDO.getId()).eq(ComDrugPopulationDO::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 (comDrugPopulationDO != null) {
+            BeanUtils.copyProperties(vo, comDrugPopulationDO);
+            comDrugPopulationDO.setCardNo(cardNoAES);
+            comDrugPopulationDAO.updateById(comDrugPopulationDO);
+        } else {
+            comDrugPopulationDO = new ComDrugPopulationDO();
+            BeanUtils.copyProperties(vo, comDrugPopulationDO);
+            comDrugPopulationDO.setId(Snowflake.getId());
+            comDrugPopulationDO.setPopulationId(populationDO.getId());
+            comDrugPopulationDO.setCommunityId(communityId);
+            comDrugPopulationDO.setStreetId(populationDO.getStreetId());
+            comDrugPopulationDAO.insert(comDrugPopulationDO);
+        }
+        return populationDO;
+    }
+
+    private ComMngPopulationDO updateCorrectPopulationDO(ComMngPopulationCorrectExcelVO vo,
+        ComMngPopulationDO populationDO, Long communityId, Long userId) {
+        BeanUtils.copyProperties(vo, populationDO);
+        ComCorrectPopulationDO comCorrectPopulationDO =
+            comCorrectPopulationDAO.selectOne(new QueryWrapper<ComCorrectPopulationDO>().lambda()
+                .eq(ComCorrectPopulationDO::getPopulationId, populationDO.getId()).eq(ComCorrectPopulationDO::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 (comCorrectPopulationDO != null) {
+            BeanUtils.copyProperties(vo, comCorrectPopulationDO);
+            comCorrectPopulationDO.setCardNo(cardNoAES);
+            comCorrectPopulationDAO.updateById(comCorrectPopulationDO);
+        } else {
+            comCorrectPopulationDO = new ComCorrectPopulationDO();
+            BeanUtils.copyProperties(vo, comCorrectPopulationDO);
+            comCorrectPopulationDO.setId(Snowflake.getId());
+            comCorrectPopulationDO.setPopulationId(populationDO.getId());
+            comCorrectPopulationDO.setCommunityId(communityId);
+            comCorrectPopulationDO.setStreetId(populationDO.getStreetId());
+            comCorrectPopulationDAO.insert(comCorrectPopulationDO);
+        }
+        return populationDO;
+    }
+
+    private ComMngPopulationDO updateMajorPopulationDO(ComMngPopulationMajorExcelVO vo, ComMngPopulationDO populationDO,
+        Long communityId, Long userId) {
+        BeanUtils.copyProperties(vo, populationDO);
+        ComMajorPopulationDO comMajorPopulationDO =
+            comMajorPopulationDAO.selectOne(new QueryWrapper<ComMajorPopulationDO>().lambda()
+                .eq(ComMajorPopulationDO::getPopulationId, populationDO.getId()).eq(ComMajorPopulationDO::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 (comMajorPopulationDO != null) {
+            BeanUtils.copyProperties(vo, comMajorPopulationDO);
+            comMajorPopulationDO.setCardNo(cardNoAES);
+            comMajorPopulationDAO.updateById(comMajorPopulationDO);
+        } else {
+            comMajorPopulationDO = new ComMajorPopulationDO();
+            BeanUtils.copyProperties(vo, comMajorPopulationDO);
+            comMajorPopulationDO.setId(Snowflake.getId());
+            comMajorPopulationDO.setPopulationId(populationDO.getId());
+            comMajorPopulationDO.setCommunityId(communityId);
+            comMajorPopulationDO.setStreetId(populationDO.getStreetId());
+            comMajorPopulationDAO.insert(comMajorPopulationDO);
+        }
+        return populationDO;
+    }
+
+    private ComMngPopulationDO updateCultPopulationDO(ComMngPopulationCultExcelVO vo, ComMngPopulationDO populationDO,
+        Long communityId, Long userId) {
+        BeanUtils.copyProperties(vo, populationDO);
+        ComCultPopulationDO comCultPopulationDO = comCultPopulationDAO.selectOne(new QueryWrapper<ComCultPopulationDO>()
+            .lambda().eq(ComCultPopulationDO::getPopulationId, populationDO.getId()).eq(ComCultPopulationDO::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 (comCultPopulationDO != null) {
+            BeanUtils.copyProperties(vo, comCultPopulationDO);
+            comCultPopulationDO.setCardNo(cardNoAES);
+            comCultPopulationDAO.updateById(comCultPopulationDO);
+        } else {
+            comCultPopulationDO = new ComCultPopulationDO();
+            BeanUtils.copyProperties(vo, comCultPopulationDO);
+            comCultPopulationDO.setId(Snowflake.getId());
+            comCultPopulationDO.setPopulationId(populationDO.getId());
+            comCultPopulationDO.setCommunityId(communityId);
+            comCultPopulationDO.setStreetId(populationDO.getStreetId());
+            comCultPopulationDAO.insert(comCultPopulationDO);
+        }
+        return populationDO;
+    }
+
+    private ComMngPopulationDO updateRehabilitationPopulationDO(ComMngPopulationRehabilitationExcelVO vo,
+        ComMngPopulationDO populationDO, Long communityId, Long userId) {
+        BeanUtils.copyProperties(vo, populationDO);
+        ComRehabilitationPopulationDO comRehabilitationPopulationDO =
+            comRehabilitationPopulationDAO.selectOne(new QueryWrapper<ComRehabilitationPopulationDO>().lambda()
+                .eq(ComRehabilitationPopulationDO::getPopulationId, populationDO.getId()).eq(ComRehabilitationPopulationDO::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 (comRehabilitationPopulationDO != null) {
+            BeanUtils.copyProperties(vo, comRehabilitationPopulationDO);
+            comRehabilitationPopulationDO.setCardNo(cardNoAES);
+            comRehabilitationPopulationDAO.updateById(comRehabilitationPopulationDO);
+        } else {
+            comRehabilitationPopulationDO = new ComRehabilitationPopulationDO();
+            BeanUtils.copyProperties(vo, comRehabilitationPopulationDO);
+            comRehabilitationPopulationDO.setId(Snowflake.getId());
+            comRehabilitationPopulationDO.setPopulationId(populationDO.getId());
+            comRehabilitationPopulationDO.setCommunityId(communityId);
+            comRehabilitationPopulationDO.setStreetId(populationDO.getStreetId());
+            comRehabilitationPopulationDAO.insert(comRehabilitationPopulationDO);
+        }
+
+        return populationDO;
+    }
+
+    private ComMngPopulationDO updateKeyPopulationDO(ComMngPopulationKeyExcelVO vo, ComMngPopulationDO populationDO,
+        Long communityId, Long userId) {
+        BeanUtils.copyProperties(vo, populationDO);
+        ComKeyPopulationDO comKeyPopulationDO = comKeyPopulationDAO.selectOne(new QueryWrapper<ComKeyPopulationDO>()
+            .lambda().eq(ComKeyPopulationDO::getPopulationId, populationDO.getId()).eq(ComKeyPopulationDO::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 (comKeyPopulationDO != null) {
+            BeanUtils.copyProperties(vo, comKeyPopulationDO);
+            comKeyPopulationDO.setCardNo(cardNoAES);
+            comKeyPopulationDAO.updateById(comKeyPopulationDO);
+        } else {
+            comKeyPopulationDO = new ComKeyPopulationDO();
+            BeanUtils.copyProperties(vo, comKeyPopulationDO);
+            comKeyPopulationDO.setId(Snowflake.getId());
+            comKeyPopulationDO.setPopulationId(populationDO.getId());
+            comKeyPopulationDO.setCommunityId(communityId);
+            comKeyPopulationDO.setStreetId(populationDO.getStreetId());
+            comKeyPopulationDAO.insert(comKeyPopulationDO);
+        }
+        return populationDO;
+    }
+
+    private ComMngPopulationDO updateSentencePopulationDO(ComMngPopulationSentenceExcelVO vo,
+        ComMngPopulationDO populationDO, Long communityId, Long userId) {
+        BeanUtils.copyProperties(vo, populationDO);
+        ComSentencePopulationDO comSentencePopulationDO =
+            comSentencePopulationDAO.selectOne(new QueryWrapper<ComSentencePopulationDO>().lambda()
+                .eq(ComSentencePopulationDO::getPopulationId, populationDO.getId()).eq(ComSentencePopulationDO::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 (comSentencePopulationDO != null) {
+            BeanUtils.copyProperties(vo, comSentencePopulationDO);
+            comSentencePopulationDO.setCardNo(cardNoAES);
+            comSentencePopulationDAO.updateById(comSentencePopulationDO);
+        } else {
+            comSentencePopulationDO = new ComSentencePopulationDO();
+            BeanUtils.copyProperties(vo, comSentencePopulationDO);
+            comSentencePopulationDO.setId(Snowflake.getId());
+            comSentencePopulationDO.setPopulationId(populationDO.getId());
+            comSentencePopulationDO.setCommunityId(communityId);
+            comSentencePopulationDO.setStreetId(populationDO.getStreetId());
+            comSentencePopulationDAO.insert(comSentencePopulationDO);
+        }
+        return populationDO;
+    }
+
+    private ComMngPopulationDO updateVeteransPopulationDO(ComMngPopulationVeteransExcelVO vo,
+        ComMngPopulationDO populationDO, Long communityId, Long userId) {
+        BeanUtils.copyProperties(vo, populationDO);
+        ComVeteransPopulationDO comVeteransPopulationDO =
+            comVeteransPopulationDAO.selectOne(new QueryWrapper<ComVeteransPopulationDO>().lambda()
+                .eq(ComVeteransPopulationDO::getPopulationId, populationDO.getId()).eq(ComVeteransPopulationDO::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 (comVeteransPopulationDO != null) {
+            BeanUtils.copyProperties(vo, comVeteransPopulationDO);
+            comVeteransPopulationDO.setCardNo(cardNoAES);
+            comVeteransPopulationDAO.updateById(comVeteransPopulationDO);
+        } else {
+            comVeteransPopulationDO = new ComVeteransPopulationDO();
+            BeanUtils.copyProperties(vo, comVeteransPopulationDO);
+            comVeteransPopulationDO.setId(Snowflake.getId());
+            comVeteransPopulationDO.setPopulationId(populationDO.getId());
+            comVeteransPopulationDO.setCommunityId(communityId);
+            comVeteransPopulationDO.setStreetId(populationDO.getStreetId());
+            comVeteransPopulationDAO.insert(comVeteransPopulationDO);
+        }
+        return populationDO;
+    }
+
+    private ComMngPopulationDO updateDisabilityPopulationDO(ComMngPopulationDisabilityExcelVO vo,
+        ComMngPopulationDO populationDO, Long communityId, Long userId) {
+        BeanUtils.copyProperties(vo, populationDO);
+        ComDisabilityPopulationDO comDisabilityPopulationDO =
+            comDisabilityPopulationDAO.selectOne(new QueryWrapper<ComDisabilityPopulationDO>().lambda()
+                .eq(ComDisabilityPopulationDO::getPopulationId, populationDO.getId()).eq(ComDisabilityPopulationDO::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 (comDisabilityPopulationDO != null) {
+            BeanUtils.copyProperties(vo, comDisabilityPopulationDO);
+            comDisabilityPopulationDO.setCardNo(cardNoAES);
+            comDisabilityPopulationDAO.updateById(comDisabilityPopulationDO);
+        } else {
+            comDisabilityPopulationDO = new ComDisabilityPopulationDO();
+            BeanUtils.copyProperties(vo, comDisabilityPopulationDO);
+            comDisabilityPopulationDO.setId(Snowflake.getId());
+            comDisabilityPopulationDO.setPopulationId(populationDO.getId());
+            comDisabilityPopulationDO.setCommunityId(communityId);
+            comDisabilityPopulationDO.setStreetId(populationDO.getStreetId());
+            comDisabilityPopulationDAO.insert(comDisabilityPopulationDO);
+        }
+        return populationDO;
+    }
+
+    private ComMngPopulationDO updateLowSecurityPopulationDO(ComMngPopulationLowSecurityExcelVO vo,
+        ComMngPopulationDO populationDO, Long communityId, Long userId) {
+        BeanUtils.copyProperties(vo, populationDO);
+        ComLowSecurityPopulationDO comLowSecurityPopulationDO =
+            comLowSecurityPopulationDAO.selectOne(new QueryWrapper<ComLowSecurityPopulationDO>().lambda()
+                .eq(ComLowSecurityPopulationDO::getPopulationId, populationDO.getId()).eq(ComLowSecurityPopulationDO::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 (comLowSecurityPopulationDO != null) {
+            BeanUtils.copyProperties(vo, comLowSecurityPopulationDO);
+            comLowSecurityPopulationDO.setCardNo(cardNoAES);
+            comLowSecurityPopulationDAO.updateById(comLowSecurityPopulationDO);
+        } else {
+            comLowSecurityPopulationDO = new ComLowSecurityPopulationDO();
+            BeanUtils.copyProperties(vo, comLowSecurityPopulationDO);
+            comLowSecurityPopulationDO.setId(Snowflake.getId());
+            comLowSecurityPopulationDO.setPopulationId(populationDO.getId());
+            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));
+        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);
+                }
+            }
+            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(vo.getCardNo());
+            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);
+                }
+            }
+            comElderAuthElderliesDAO.insert(comElderAuthElderliesDO);
+        }
+
+        //维护养老认证健在状态
+        comPensionAuthPensionerDAO.editPensionIsAlive(populationDO.getId(),vo.getIsAlive());
+        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));
+        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());
+            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(vo.getCardNo());
+            comPensionAuthPensionerDO.setAddress(vo.getNowAddress());
+            comPensionAuthPensionerDAO.insert(comPensionAuthPensionerDO);
+        }
+        //维护高龄老人健在状态
+        comElderAuthElderliesDAO.editEditIsAlive(populationDO.getId(),vo.getIsAlive());
+        return populationDO;
+    }
+
+    private ComMngPopulationDO savePopulationDO(ComMngPopulationServeExcelVO vo, ComPopulationActVO comActDO,
+        ComMngVillageDO comMngVillageDO, Long userId) {
+        ComMngPopulationDO populationDO = new ComMngPopulationDO();
+        BeanUtils.copyProperties(vo, populationDO);
+        Integer personType = vo.getPersonType();
+        if (nonNull(personType)) {
+            populationDO.setPersonType(personType.toString());
+        }
+        populationDO.setId(Snowflake.getId());
+        // 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());
+        populationDO.setDeath(vo.getDeath().toString());
+
+        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);
+        return populationDO;
+    }
+
+    private ComMngPopulationDO saveDrugPopulationDO(ComMngPopulationDrugExcelVO vo, ComPopulationActVO comActDO,
+        ComMngVillageDO comMngVillageDO, Long userId) {
+        ComMngPopulationDO populationDO = new ComMngPopulationDO();
+        BeanUtils.copyProperties(vo, populationDO);
+        ComDrugPopulationDO comDrugPopulationDO = new ComDrugPopulationDO();
+        BeanUtils.copyProperties(vo, comDrugPopulationDO);
+        Long populationId = Snowflake.getId();
+        populationDO.setId(populationId);
+        comDrugPopulationDO.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);
+        comDrugPopulationDO.setId(Snowflake.getId());
+        comDrugPopulationDO.setCommunityId(comActDO.getCommunityId());
+        comDrugPopulationDO.setStreetId(comActDO.getStreetId());
+        comDrugPopulationDAO.insert(comDrugPopulationDO);
+        return populationDO;
+    }
+
+    private ComMngPopulationDO saveCorrectPopulationDO(ComMngPopulationCorrectExcelVO vo, ComPopulationActVO comActDO,
+        ComMngVillageDO comMngVillageDO, Long userId) {
+        ComMngPopulationDO populationDO = new ComMngPopulationDO();
+        BeanUtils.copyProperties(vo, populationDO);
+        ComCorrectPopulationDO comCorrectPopulationDO = new ComCorrectPopulationDO();
+        BeanUtils.copyProperties(vo, comCorrectPopulationDO);
+        Long populationId = Snowflake.getId();
+        populationDO.setId(populationId);
+        comCorrectPopulationDO.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);
+        comCorrectPopulationDO.setId(Snowflake.getId());
+        comCorrectPopulationDO.setCommunityId(comActDO.getCommunityId());
+        comCorrectPopulationDO.setStreetId(comActDO.getStreetId());
+        comCorrectPopulationDAO.insert(comCorrectPopulationDO);
+        return populationDO;
+    }
+
+    private ComMngPopulationDO saveMajorPopulationDO(ComMngPopulationMajorExcelVO vo, ComPopulationActVO comActDO,
+        ComMngVillageDO comMngVillageDO, Long userId) {
+        ComMngPopulationDO populationDO = new ComMngPopulationDO();
+        BeanUtils.copyProperties(vo, populationDO);
+        ComMajorPopulationDO comMajorPopulationDO = new ComMajorPopulationDO();
+        BeanUtils.copyProperties(vo, comMajorPopulationDO);
+        Long populationId = Snowflake.getId();
+        populationDO.setId(populationId);
+        comMajorPopulationDO.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);
+        comMajorPopulationDO.setId(Snowflake.getId());
+        comMajorPopulationDO.setCommunityId(comActDO.getCommunityId());
+        comMajorPopulationDO.setStreetId(comActDO.getStreetId());
+        comMajorPopulationDAO.insert(comMajorPopulationDO);
+        return populationDO;
+    }
+
+    private ComMngPopulationDO saveCultPopulationDO(ComMngPopulationCultExcelVO vo, ComPopulationActVO comActDO,
+        ComMngVillageDO comMngVillageDO, Long userId) {
+        ComMngPopulationDO populationDO = new ComMngPopulationDO();
+        BeanUtils.copyProperties(vo, populationDO);
+        ComCultPopulationDO comCultPopulationDO = new ComCultPopulationDO();
+        BeanUtils.copyProperties(vo, comCultPopulationDO);
+        Long populationId = Snowflake.getId();
+        populationDO.setId(populationId);
+        comCultPopulationDO.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);
+        comCultPopulationDO.setId(Snowflake.getId());
+        comCultPopulationDO.setCommunityId(comActDO.getCommunityId());
+        comCultPopulationDO.setStreetId(comActDO.getStreetId());
+        comCultPopulationDAO.insert(comCultPopulationDO);
+        return populationDO;
+    }
+
+    private ComMngPopulationDO saveRehabilitationPopulationDO(ComMngPopulationRehabilitationExcelVO vo,
+        ComPopulationActVO comActDO, ComMngVillageDO comMngVillageDO, Long userId) {
+        ComMngPopulationDO populationDO = new ComMngPopulationDO();
+        BeanUtils.copyProperties(vo, populationDO);
+        ComRehabilitationPopulationDO comRehabilitationPopulationDO = new ComRehabilitationPopulationDO();
+        BeanUtils.copyProperties(vo, comRehabilitationPopulationDO);
+        Long populationId = Snowflake.getId();
+        populationDO.setId(populationId);
+        comRehabilitationPopulationDO.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);
+        comRehabilitationPopulationDO.setId(Snowflake.getId());
+        comRehabilitationPopulationDO.setCommunityId(comActDO.getCommunityId());
+        comRehabilitationPopulationDO.setStreetId(comActDO.getStreetId());
+        comRehabilitationPopulationDAO.insert(comRehabilitationPopulationDO);
+        return populationDO;
+    }
+
+    private ComMngPopulationDO saveKeyPopulationDO(ComMngPopulationKeyExcelVO vo, ComPopulationActVO comActDO,
+        ComMngVillageDO comMngVillageDO, Long userId) {
+        ComMngPopulationDO populationDO = new ComMngPopulationDO();
+        BeanUtils.copyProperties(vo, populationDO);
+        ComKeyPopulationDO comKeyPopulationDO = new ComKeyPopulationDO();
+        BeanUtils.copyProperties(vo, comKeyPopulationDO);
+        Long populationId = Snowflake.getId();
+        populationDO.setId(populationId);
+        comKeyPopulationDO.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);
+        comKeyPopulationDO.setId(Snowflake.getId());
+        comKeyPopulationDO.setCommunityId(comActDO.getCommunityId());
+        comKeyPopulationDO.setStreetId(comActDO.getStreetId());
+        comKeyPopulationDAO.insert(comKeyPopulationDO);
+        return populationDO;
+    }
+
+    private ComMngPopulationDO saveSentencePopulationDO(ComMngPopulationSentenceExcelVO vo, ComPopulationActVO comActDO,
+        ComMngVillageDO comMngVillageDO, Long userId) {
+        ComMngPopulationDO populationDO = new ComMngPopulationDO();
+        BeanUtils.copyProperties(vo, populationDO);
+        ComSentencePopulationDO comSentencePopulationDO = new ComSentencePopulationDO();
+        BeanUtils.copyProperties(vo, comSentencePopulationDO);
+        Long populationId = Snowflake.getId();
+        populationDO.setId(populationId);
+        comSentencePopulationDO.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);
+        comSentencePopulationDO.setId(Snowflake.getId());
+        comSentencePopulationDO.setCommunityId(comActDO.getCommunityId());
+        comSentencePopulationDO.setStreetId(comActDO.getStreetId());
+        comSentencePopulationDAO.insert(comSentencePopulationDO);
+        return populationDO;
+    }
+
+    private ComMngPopulationDO saveVeteransPopulationDO(ComMngPopulationVeteransExcelVO vo, ComPopulationActVO comActDO,
+        ComMngVillageDO comMngVillageDO, Long userId) {
+        ComMngPopulationDO populationDO = new ComMngPopulationDO();
+        BeanUtils.copyProperties(vo, populationDO);
+        ComVeteransPopulationDO comVeteransPopulationDO = new ComVeteransPopulationDO();
+        BeanUtils.copyProperties(vo, comVeteransPopulationDO);
+        Long populationId = Snowflake.getId();
+        populationDO.setId(populationId);
+        comVeteransPopulationDO.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);
+        comVeteransPopulationDO.setId(Snowflake.getId());
+        comVeteransPopulationDO.setCommunityId(comActDO.getCommunityId());
+        comVeteransPopulationDO.setStreetId(comActDO.getStreetId());
+        comVeteransPopulationDAO.insert(comVeteransPopulationDO);
+        return populationDO;
+    }
+
+    private ComMngPopulationDO saveDisabilityPopulationDO(ComMngPopulationDisabilityExcelVO vo,
+        ComPopulationActVO comActDO, ComMngVillageDO comMngVillageDO, Long userId) {
+        ComMngPopulationDO populationDO = new ComMngPopulationDO();
+        BeanUtils.copyProperties(vo, populationDO);
+        ComDisabilityPopulationDO comDisabilityPopulationDO = new ComDisabilityPopulationDO();
+        BeanUtils.copyProperties(vo, comDisabilityPopulationDO);
+        Long populationId = Snowflake.getId();
+        populationDO.setId(populationId);
+        comDisabilityPopulationDO.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);
+        comDisabilityPopulationDO.setId(Snowflake.getId());
+        comDisabilityPopulationDO.setCommunityId(comActDO.getCommunityId());
+        comDisabilityPopulationDO.setStreetId(comActDO.getStreetId());
+        comDisabilityPopulationDAO.insert(comDisabilityPopulationDO);
+        return populationDO;
+    }
+
+    private ComMngPopulationDO saveLowSecurityPopulationDO(ComMngPopulationLowSecurityExcelVO vo,
+        ComPopulationActVO comActDO, ComMngVillageDO comMngVillageDO, Long userId) {
+        ComMngPopulationDO populationDO = new ComMngPopulationDO();
+        ComLowSecurityPopulationDO comLowSecurityPopulationDO = new ComLowSecurityPopulationDO();
+        BeanUtils.copyProperties(vo, populationDO);
+        BeanUtils.copyProperties(vo, comLowSecurityPopulationDO);
+        Long populationId = Snowflake.getId();
+        populationDO.setId(populationId);
+        comLowSecurityPopulationDO.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);
+        comLowSecurityPopulationDO.setId(Snowflake.getId());
+        comLowSecurityPopulationDO.setCommunityId(comActDO.getCommunityId());
+        comLowSecurityPopulationDO.setStreetId(comActDO.getStreetId());
+        comLowSecurityPopulationDAO.insert(comLowSecurityPopulationDO);
+        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);
+        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(vo.getCardNo());
+        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);
+            }
+        }
+        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(vo.getCardNo());
+        comPensionAuthPensionerDO.setAddress(vo.getNowAddress());
+        comPensionAuthPensionerDAO.insert(comPensionAuthPensionerDO);
+        return populationDO;
+    }
+
+    private ComMngPopulationHouseDO savePopulationHouse(ComMngPopulationServeExcelVO 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.getBuildPurpose());
+        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 saveDrugPopulationHouse(ComMngPopulationDrugExcelVO 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 saveCorrectPopulationHouse(ComMngPopulationCorrectExcelVO 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 saveMajorPopulationHouse(ComMngPopulationMajorExcelVO 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 saveCultPopulationHouse(ComMngPopulationCultExcelVO 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 saveRehabilitationPopulationHouse(ComMngPopulationRehabilitationExcelVO 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 saveKeyPopulationHouse(ComMngPopulationKeyExcelVO 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 saveSentencePopulationHouse(ComMngPopulationSentenceExcelVO 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 saveVeteransPopulationHouse(ComMngPopulationVeteransExcelVO 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 saveDisabilityPopulationHouse(ComMngPopulationDisabilityExcelVO 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 saveLowSecurityPopulationHouse(ComMngPopulationLowSecurityExcelVO 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 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) {
+        // 查询该房屋未建立,执行建立房屋信息
+        ComMngPopulationHouseUserDO populationHouseUserDO = new ComMngPopulationHouseUserDO();
+        populationHouseUserDO.setId(Snowflake.getId());
+        populationHouseUserDO.setPopulId(comMngPopulationDO.getId());
+        populationHouseUserDO.setHouseId(comMngPopulationHouseDO.getId());
+        populationHouseUserDO.setRelationId(comMngPopulationHouseDO.getStatus());
+        populationHouseUserDO.setRelation(vo.getRelation());
+        populationHouseUserDO.setCreateAt(new Date());
+        comMngPopulationHouseUserDAO.insert(populationHouseUserDO);
+        return populationHouseUserDO;
+    }
+
+    /**
+     * 确认导入实有人口(有则更新,无则新建)
+     *
+     * @param list
+     *            用户信息
+     * @param communityId
+     *            社区id
+     * @return 导入结果
+     */
+    @Override
+    public R listSavePopulationConfirm(List<ComMngPopulationServeExcelVO> list, Long communityId) {
+        if (list.size() == 0) {
+            return R.fail("数据为空!");
+        }
+        List<ComMngPopulationDO> comMngPopulationDOS = populationDAO
+            .selectList(new QueryWrapper<ComMngPopulationDO>().lambda().eq(ComMngPopulationDO::getActId, communityId));
+        // 查询该社区所有(实有房屋)小区
+        // List<ComMngVillageDO> villageDOList = comActVillageDAO.selectList(new
+        // QueryWrapper<ComMngVillageDO>().lambda().eq(ComMngVillageDO::getCommunityId, communityId));
+        ComActDO comActDO = comActDAO.selectById(communityId);
+        ArrayList<ComMngPopulationDO> populationDOList = Lists.newArrayList();
+        list.forEach(vo -> {
+            ComMngPopulationDO comMngPopulationDO = new ComMngPopulationDO();
+            // 查询街路巷是否存在
+            ComMngVillageDO comMngVillageDO = comActVillageDAO.selectOne(new QueryWrapper<ComMngVillageDO>()
+                .eq("alley", vo.getRoad()).eq("house_num", vo.getDoorNo()).eq("community_id", communityId));
+            // ComMngVillageDO comMngVillageDO = villageDOList.stream().filter(village ->
+            // village.getAlley().equals(vo.getRoad()) &&
+            // village.getHouseNum().equals(Integer.valueOf(vo.getDoorNo()))).findFirst().orElse(null);
+            BeanUtils.copyProperties(vo, comMngPopulationDO);
+            if (comMngVillageDO == null) {
+                throw new ServiceException("街道巷:" + vo.getRoad() + "不存在!");
+            }
+            comMngPopulationDO.setVillageId(comMngVillageDO.getVillageId());
+            comMngPopulationDO.setActId(comActDO.getCommunityId());
+            comMngPopulationDO.setStreetId(comActDO.getStreetId());
+            List<String> userTag =
+                vo.getUserTagStr().stream().map(userTagStr -> userTagStr.split("\\(")[0]).collect(Collectors.toList());
+            comMngPopulationDO.setLabel(Joiner.on(",").join(userTag));
+            comMngPopulationDO.setVillageName(comMngVillageDO.getGroupAt());
+            populationDOList.add(comMngPopulationDO);
+        });
+
+        if (!populationDOList.isEmpty()) {
+            // 循环遍历待导入人员信息,如果数据库存在则更新,如果不存在则新建
+            populationDOList.forEach(population -> {
+                try {
+                    // 加密身份证号码
+                    String cardNo = AESUtil.encrypt128(population.getCardNo(), aesKey);
+                    population.setCardNo(cardNo);
+                    // 查询这个用户是否存在
+                    ComMngPopulationDO comMngPopulationDO =
+                        this.populationDAO.selectOne(new QueryWrapper<ComMngPopulationDO>().lambda()
+                            .eq(ComMngPopulationDO::getCardNo, population.getCardNo()));
+                    if (comMngPopulationDO != null) {
+                        population.setId(comMngPopulationDO.getId());
+                        BeanUtils.copyProperties(population, comMngPopulationDO);
+                        this.populationDAO.updateById(population);
+                    } else {
+                        this.populationDAO.insert(population);
+                    }
+                } catch (Exception e) {
+                    log.error("导入实有人口失败");
+                }
+            });
+        }
+        return R.ok("共计导入实有人口数量:" + populationDOList.size());
+    }
+
+    public boolean isNumeric(String str) {
+        for (int i = 0; i < str.length(); i++) {
+            System.out.println(str.charAt(i));
+            if (!Character.isDigit(str.charAt(i))) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    /**
+     * 根据id修改实有人口标签
+     *
+     * @param populationTagDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    @Override
+    public R editTagPopulation(ComMngPopulationTagDTO populationTagDTO) {
+        ComMngPopulationDO comMngPopulationDO = populationDAO.selectById(populationTagDTO.getId());
+        if (comMngPopulationDO == null) {
+            return R.fail("未查询到人口记录");
+        }
+        BeanUtils.copyProperties(populationTagDTO, comMngPopulationDO);
+
+        int nub = populationDAO.updateById(comMngPopulationDO);
+        if (nub < 1) {
+            return R.fail();
+        }
+        return R.ok();
+    }
+
+    /**
+     * 批量删除实有人口
+     *
+     * @param ids 实有人口id集合
+     * @return  删除结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R deletePopulations(List<Long> ids, Long communityId) {
+        for(Long id:ids){
+            comMngPopulationCommunityTagsDAO.delete(new QueryWrapper<ComMngPopulationCommunityTagsDO>().lambda().eq(ComMngPopulationCommunityTagsDO::getPopulationId,id));
+            comMngPopulationDAO.deleteById(id);
+            comMngPopulationHouseUserDAO.delete(new QueryWrapper<ComMngPopulationHouseUserDO>().lambda().eq(ComMngPopulationHouseUserDO::getPopulId,id));
+        }
+        return R.ok();
+    }
+
+    /**
+     * 根据社区id查询所有实有人口
+     *
+     * @param communityId
+     *            社区id
+     * @return 查询结果
+     */
+    @Override
+    public R getPopulationListByCommunityId(Long communityId) {
+        List<ComMngPopulationDO> list =
+            populationDAO.selectList(new QueryWrapper<ComMngPopulationDO>().eq("act_id", communityId));
+        List<ComMngPopulationVO> resultList = new ArrayList<>();
+        if (list.size() > 0) {
+            list.forEach(populationDO -> {
+                ComMngPopulationVO populationVO = new ComMngPopulationVO();
+                BeanUtils.copyProperties(populationDO, populationVO);
+                resultList.add(populationVO);
+            });
+        }
+        return R.ok(resultList);
+    }
+
+    /**
+     * 根据id集合查询实有人口
+     *
+     * @param Ids
+     *            实有人口id集合
+     * @return 查询结果
+     */
+    @Override
+    public R getPopulationLists(List<Long> Ids) {
+        List<ComMngPopulationDO> list = populationDAO.selectBatchIds(Ids);
+        List<ComMngPopulationVO> resultList = new ArrayList<>();
+        if (list.size() > 0) {
+            list.forEach(populationDO -> {
+                ComMngPopulationVO populationVO = new ComMngPopulationVO();
+                BeanUtils.copyProperties(populationDO, populationVO);
+                resultList.add(populationVO);
+            });
+        }
+        return R.ok(resultList);
+    }
+
+    @Override
+    public R getPopulationListByVillageId(Long villageId) {
+        List<ComMngPopulationDO> list =
+            populationDAO.selectList(new QueryWrapper<ComMngPopulationDO>().eq("village_id", villageId));
+        List<ComMngPopulationVO> resultList = new ArrayList<>();
+        if (list.size() > 0) {
+            list.forEach(populationDO -> {
+                ComMngPopulationVO populationVO = new ComMngPopulationVO();
+                BeanUtils.copyProperties(populationDO, populationVO);
+                ComMngPopulationCommunityTagsDO comMngPopulationCommunityTagsDO=comMngPopulationCommunityTagsDAO.selectOne(new QueryWrapper<ComMngPopulationCommunityTagsDO>().lambda().eq(ComMngPopulationCommunityTagsDO::getPopulationId,populationDO.getId()));
+                if(comMngPopulationCommunityTagsDO!=null){
+                    populationVO.setLabel(comMngPopulationCommunityTagsDO.getLabel());
+                }
+                resultList.add(populationVO);
+            });
+        }
+        return R.ok(resultList);
+    }
+
+    @Override
+    public R editPopulation(ComMngPopulationEditDTO vo, Long communityId) throws Exception {
+        ComMngPopulationDO populationDO = populationDAO.selectById(vo.getId());
+        if (populationDO == null) {
+            return R.fail();
+        }
+        BeanUtils.copyProperties(vo, populationDO);
+        if (StringUtils.isEmpty(vo.getLabel())) {
+            populationDO.setLabel(null);
+        }
+        if (StringUtils.isEmpty(vo.getRemark())) {
+            populationDO.setRemark(null);
+        }
+        populationDO.setCardNo(null);
+        populationDO.setPhone(AESUtil.encrypt128(vo.getPhone(), aesKey));
+
+        ComActDO comActDO = comActDAO.selectById(communityId);
+        if (comActDO != null) {
+            populationDO.setActId(comActDO.getCommunityId());
+            populationDO.setStreetId(comActDO.getStreetId());
+        }
+
+        //修改人员标签
+        List<ComMngPopulationCommunityTagsDO> communityTagsDOList = comMngPopulationCommunityTagsDAO
+                .selectList(new QueryWrapper<ComMngPopulationCommunityTagsDO>().lambda()
+                .eq(ComMngPopulationCommunityTagsDO::getCommunityId,communityId)
+                .eq(ComMngPopulationCommunityTagsDO::getPopulationId,vo.getId()));
+        communityTagsDOList.forEach(communityTags -> {
+            communityTags.setLabel(vo.getLabel());
+            comMngPopulationCommunityTagsDAO.updateById(communityTags);
+        });
+
+        // 查询当前用户所有房屋id
+        List<Long> houseIds = comMngPopulationHouseUserDAO.getPopulationHouseIdByUserId(vo.getId());
+        // 清除用户房屋居住信息
+        comMngPopulationHouseUserDAO.deletePopulationHouseByUserId(vo.getId());
+        if (!houseIds.isEmpty()) {
+            houseIds.forEach(houseId -> {
+                // 查询当前房屋下是否有人口信息,如果没有则将房屋设置为空户
+                List<Long> oldHouseIds = comMngPopulationHouseUserDAO.getPopulationHouseIdByhHosueId(houseId);
+                if (oldHouseIds.isEmpty()) {
+                    // 修改房屋信息为空户
+                    comMngPopulationHouseDAO.updateHouseByIsEmpty(houseId, 1);
+                }
+            });
+        }
+
+        // 更新用户的房屋信息
+        Long houseId = null;
+        List<ComMngPopulationHouseUserDO> populationHouseUserDOList = new ArrayList<>();
+        if (!vo.getHouseEditDTOList().isEmpty()) {
+            for (ComMngPopulationHouseEditDTO houseEditDto : vo.getHouseEditDTOList()) {
+                ComMngPopulationHouseUserDO populationHouseUserDO = new ComMngPopulationHouseUserDO();
+                populationHouseUserDO.setId(Snowflake.getId());
+                populationHouseUserDO.setPopulId(populationDO.getId());
+                populationHouseUserDO.setHouseId(houseEditDto.getId());
+                populationHouseUserDO.setRelation(houseEditDto.getRelation());
+                if (houseEditDto.getIsResidence().equals(ComMngPopulationHouseEditDTO.isResidence.yes)) {
+                    houseId = houseEditDto.getId();// 居住地
+                    populationHouseUserDO.setResidence(ComMngPopulationHouseEditDTO.isResidence.yes);
+                } else {
+                    populationHouseUserDO.setResidence(ComMngPopulationHouseEditDTO.isResidence.no);
+                }
+                populationHouseUserDOList.add(populationHouseUserDO);
+
+                // 修改房屋信息不为空户
+                comMngPopulationHouseDAO.updateHouseByIsEmpty(houseEditDto.getId(), 2);
+            }
+        }
+        comMngPopulationHouseUserService.saveBatch(populationHouseUserDOList);
+
+        if (houseId != null) {// 居住地更新
+            ComMngPopulationHouseDO houseDO = comMngPopulationHouseDAO.selectById(houseId);
+            if (houseDO != null) {
+                populationDO.setRoad(houseDO.getAlley());
+                populationDO.setDoorNo(houseDO.getHouseNum());
+                populationDO.setFloor(houseDO.getFloor());
+                populationDO.setUnitNo(houseDO.getUnitNo());
+                populationDO.setHouseNo(houseDO.getHouseNo());
+                ComMngVillageDO comMngVillageDO = comActVillageDAO.selectOne(
+                    new QueryWrapper<ComMngVillageDO>().lambda().eq(ComMngVillageDO::getAlley, houseDO.getAlley())
+                        .eq(ComMngVillageDO::getHouseNum, houseDO.getHouseNum())
+                        .eq(ComMngVillageDO::getCommunityId, communityId));
+                if (comMngVillageDO != null) {
+                    populationDO.setVillageId(comMngVillageDO.getVillageId());
+                    if (!StringUtils.isEmpty(comMngVillageDO.getGroupAt())) {
+                        populationDO.setVillageName(comMngVillageDO.getGroupAt());
+                    }
+                }
+            }
+        }
+
+        // ComMngPopulationHouseUserDO comMngPopulationHouseUserDO = comMngPopulationHouseUserDAO.selectOne(new
+        // QueryWrapper<ComMngPopulationHouseUserDO>().lambda()
+        // .eq(ComMngPopulationHouseUserDO::getPopulId, vo.getId()));
+        // if (comMngPopulationHouseUserDO != null) {
+        // comMngPopulationHouseUserDO.setRelation(vo.getRelation());
+        // comMngPopulationHouseUserDAO.updateById(comMngPopulationHouseUserDO);
+        // }else {
+        // comMngPopulationHouseUserDO = new ComMngPopulationHouseUserDO();
+        // comMngPopulationHouseUserDO.setId(Snowflake.getId());
+        // comMngPopulationHouseUserDO.setPopulId(vo.getId());
+        // comMngPopulationHouseUserDO.setRelation(vo.getRelation());
+        // 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 {
+            return R.fail("修改失败");
+        }
+    }
+
+    @Override
+    public R specialInputUser(PageInputUserDTO pageInputUserDTO) {
+        IPage<InputUserInfoVO> iPage = populationDAO.specialInputUser(
+            new Page<>(pageInputUserDTO.getPageNum(), pageInputUserDTO.getPageSize()), pageInputUserDTO);
+        if(iPage!=null){
+            iPage.getRecords().forEach(page -> {
+                if(page.getAreaName() == null || StringUtils.isEmpty(page.getAreaName())){
+                    StringBuilder sb = new StringBuilder();
+                    sb.append(page.getAlley());
+                    if(!page.getHouseNum().contains("号")){
+                        sb.append(page.getHouseNum() + "号");
+                    }
+                    page.setAreaName(sb.toString());
+                }
+            });
+        }
+
+        return R.ok(iPage);
+    }
+
+    /**
+     * 删除特殊群体人员
+     *
+     * @param id
+     *            特殊群体id
+     * @return 删除结果
+     */
+    @Override
+    public R deleteSpecialInputUser(Long id,Long communityId) {
+        // 查询特殊群体人员
+        ComMngPopulationDO populationDO = this.baseMapper.selectById(id);
+        if (populationDO == null) {
+            return R.fail("未查询到该记录");
+        }
+        populationDO.setLabel(null);
+
+        //  清理社区与人口关联信息的label信息
+        List<ComMngPopulationCommunityTagsDO> communityTagsDOList = comMngPopulationCommunityTagsDAO.selectList(new QueryWrapper<ComMngPopulationCommunityTagsDO>()
+                .lambda().eq(ComMngPopulationCommunityTagsDO::getPopulationId,id).eq(ComMngPopulationCommunityTagsDO::getCommunityId,communityId));
+        if(communityTagsDOList != null && communityTagsDOList.size() > 0){
+            communityTagsDOList.forEach(communityTags -> {
+                communityTags.setLabel(null);
+                comMngPopulationCommunityTagsDAO.updateById(communityTags);
+            });
+        }
+
+        if (this.baseMapper.updateById(populationDO) > 0) {
+            return R.ok();
+        } else {
+            return R.fail();
+        }
+    }
+
+    @Override
+    public R specialInputUserTags(PageInputUserDTO comMngUserTagDTO) {
+        IPage<ComMngTagVO> iPage = populationDAO.specialInputUserTags(
+            new Page<>(comMngUserTagDTO.getPageNum(), comMngUserTagDTO.getPageSize()), comMngUserTagDTO);
+        return R.ok(iPage);
+    }
+
+    @Override
+    public R saveSpecialInputUserTags(ComMngTagVO comMngTagVO) {
+        if (null != comMngTagVO.getId() && comMngTagVO.getId() != 0) {
+            // 修改
+            ComMngUserTagDO comMngUserTagDO = comMngUserTagDAO.selectById(comMngTagVO.getId());
+            if (null == comMngUserTagDO) {
+                return R.fail("该标签不存在");
+            }
+            ComMngUserTagDO checkCreditCode = comMngUserTagDAO.selectOne(
+                new QueryWrapper<ComMngUserTagDO>().lambda().eq(ComMngUserTagDO::getTagName, comMngTagVO.getTagName()));
+            if (null != checkCreditCode && !comMngUserTagDO.getId().equals(checkCreditCode.getId())) {
+                return R.fail("该标签已存在,标签名称重复");
+            }
+
+            BeanUtils.copyProperties(comMngTagVO, comMngUserTagDO);
+            int update = comMngUserTagDAO.updateById(comMngUserTagDO);
+            if (update > 0) {
+                return R.ok();
+            }
+        } else {
+            // 新增
+            Integer count = comMngUserTagDAO.selectCount(
+                new QueryWrapper<ComMngUserTagDO>().lambda().eq(ComMngUserTagDO::getTagName, comMngTagVO.getTagName()));
+            if (count > 0) {
+                return R.fail("该标签已存在,标签名称重复");
+            }
+            ComMngUserTagDO comMngUserTagDO = new ComMngUserTagDO();
+            BeanUtils.copyProperties(comMngTagVO, comMngUserTagDO);
+            int insert = comMngUserTagDAO.insert(comMngUserTagDO);
+            if (insert > 0) {
+                return R.ok();
+            }
+        }
+
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R deleteSpecialInputUserTags(Long id) {
+        // 查询特殊群体人员
+        ComMngUserTagDO comMngUserTagDO = comMngUserTagDAO.selectById(id);
+        if (comMngUserTagDO == null) {
+            return R.fail("该标签不存在");
+        }
+        int delete = comMngUserTagDAO.deleteById(id);
+        if (delete > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    /**
+     * 查询实有人口电子档信息
+     *
+     * @param populationId
+     *            实有人口id
+     * @return 实有人口电子档信息
+     */
+    @Override
+    public R electronicArchivesPopulation(Long populationId) {
+        ComMngPopulationDO comMngPopulationDO = populationDAO.selectById(populationId);
+        if (ObjectUtils.isEmpty(comMngPopulationDO)) {
+            return R.fail("用户信息不存在");
+        }
+        // 查询当前用户电子档信息
+        if (!StringUtils.isEmpty(comMngPopulationDO.getCardNo())) {
+            UserElectronicFileVO electronicFileVO =
+                populationDAO.getSysUserElectronicFile(comMngPopulationDO.getCardNo());
+            if (electronicFileVO != null) {
+                return R.ok(electronicFileVO);
+            }
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R editUserElectronicFile(UserElectronicFileVO userElectronicFileVO) {
+        UserElectronicFileVO electronicFileVO = populationDAO.getSysUserById(userElectronicFileVO.getUserId());
+        if (electronicFileVO == null) {
+            return R.fail("id有误!");
+        }
+        populationDAO.updateSysUserElectronicFile(userElectronicFileVO);
+        return R.ok();
+    }
+
+    /**
+     * 实有人口统计
+     *
+     * @param communityId
+     *            社区id
+     * @return 统计结果
+     */
+    @Override
+    public R getPopulationTotalByAdmin(Long communityId) {
+        return R.ok(this.baseMapper.getPopulationTotalByAdmin(communityId));
+    }
+
+    @Override
+    public R editTagPopulationByCardNo(ComMngPopulationTagCardNoDTO comMngPopulationTagCardNoDTO) {
+        ComMngPopulationDO comMngPopulationDO = getPopulationByCardNo(comMngPopulationTagCardNoDTO.getCardNo());
+        if (comMngPopulationDO == null) {
+            return R.fail("未查询到人口记录");
+        }
+        ComMngPopulationDO comMngPopulation = new ComMngPopulationDO();
+        if (comMngPopulationDO.getLabel() != null) {
+            if (!comMngPopulationDO.getLabel().contains(comMngPopulationTagCardNoDTO.getLabel())) {
+                comMngPopulation.setLabel(
+                    comMngPopulationTagCardNoDTO.getLabel().concat(",").concat(comMngPopulationDO.getLabel()));
+            }
+        } else {
+            comMngPopulation.setLabel(comMngPopulationTagCardNoDTO.getLabel());
+        }
+        comMngPopulation.setCardNo(null);
+        comMngPopulation.setId(comMngPopulationDO.getId());
+        int nub = populationDAO.updateById(comMngPopulation);
+        if (nub < 1) {
+            return R.fail();
+        }
+        return R.ok();
+    }
+
+    @Override
+    public ComMngPopulationDO getPopulationByCardNo(String cardNo) {
+        try {
+            String aesCardNo = AESUtil.encrypt128(cardNo, aesKey);
+            return baseMapper.selectOne(new QueryWrapper<ComMngPopulationDO>().eq("card_no", aesCardNo));
+        } catch (Exception e) {
+            log.error("根据身份证查询业务-加密证件信息出错:{}", e.getCause());
+        }
+        return null;
+    }
+
+    /**
+     * 首页大屏统计接口
+     *
+     * @param communityId
+     *            社区id
+     * @return 统计结果
+     */
+    @Override
+    public R getScreenIndex(Long communityId) {
+        // 创建统计返回参数
+        IndexStatisticsVO statisticsVO = new IndexStatisticsVO();
+
+        // 查询基础数据模块
+        IndexBasicsStatisticsVO basicsStatisticsVO = comMngPopulationDAO.getScreenIndexByBasics(communityId);
+        statisticsVO.setBasicsStatistics(basicsStatisticsVO);
+
+        // 查询实有人口统计模块
+        IndexPopulationStatisticsVO populationStatisticsVO = new IndexPopulationStatisticsVO();
+        // 查询实有人口性别统计
+        List<IndexPopulationSexStatisticsVO> sexPopulationList =
+            comMngPopulationDAO.getScreenIndexByPopulationSex(communityId);
+        populationStatisticsVO.setSexPopulationList(sexPopulationList);
+        // 查询实有人口年龄统计
+        List<IndexPopulationAgeStatisticsVO> agePopulationList = statisticsAge(communityId);
+        populationStatisticsVO.setAgePopulationList(agePopulationList);
+        statisticsVO.setPopulationStatisticsVO(populationStatisticsVO);
+
+        // 查询实有人口实时治理信息
+        List<IndexEventListStatisticsVO> eventListStatisticsList =
+            comMngPopulationDAO.getScreenIndexByEventList(communityId);
+        statisticsVO.setEventListStatisticsList(eventListStatisticsList);
+
+        // 查询社区治理动态信息
+        IndexDynamicStatisticsVO dynamicStatisticsVO = comMngPopulationDAO.getScreenIndexByDynamic(communityId);
+        dynamicStatisticsVO
+            .setCultureActivityTotal(dynamicStatisticsVO.getPbTotal() + dynamicStatisticsVO.getActTotal());
+        statisticsVO.setDynamicStatisticsVO(dynamicStatisticsVO);
+
+        // 查询网格化治理
+        IndexEventGridStatisticsVO eventGridStatisticsVO = new IndexEventGridStatisticsVO();
+        List<IndexGridStatisticsVO> gridStatisticsList = new ArrayList<>();
+        // 查询网格化事件数据
+        IndexGridEventStatisticsVO gridEventStatistics = comMngPopulationDAO.getGridEventStatisticsList(communityId);
+        eventGridStatisticsVO.setGridEventStatisticsList(gridEventStatistics);
+        // 查询网格数据
+        List<EventGridDataVO> gridDataList = comMngPopulationDAO.getGridDataListByCommunityId(communityId);
+        if (!gridDataList.isEmpty()) {
+            gridDataList.forEach(gridData -> {
+                if (gridData != null) {
+                    IndexGridStatisticsVO gridStatisticsVO = new IndexGridStatisticsVO();
+                    gridStatisticsVO.setEventData(gridData.getGridName());
+                    // 根据网格id查询网格事件列表
+                    IndexGridEventStatisticsVO gridEventList =
+                        comMngPopulationDAO.getGridEventByGirdId(gridData.getId());
+                    gridStatisticsVO.setGridEventStatisticsList(gridEventList);
+                    gridStatisticsList.add(gridStatisticsVO);
+                }
+            });
+        }
+        eventGridStatisticsVO.setGridStatisticsList(gridStatisticsList);
+        statisticsVO.setEventGridStatisticsVO(eventGridStatisticsVO);
+
+        // 查询党建数据
+        BigScreenStatisticPartyBuild statisticPartyBuild = bigScreenDAO.partybuild(communityId);
+        statisticsVO.setStatisticPartyBuild(statisticPartyBuild);
+
+        // 查询特殊人群统计
+        List<IndexSpecialStatisticsVO> specialStatisticsVOList = new ArrayList<>();
+
+        // 查询特殊人群标签列表
+        List<ComMngUserTagVO> userTagList = comMngPopulationDAO.getUserTagListByCommunityId(communityId);
+        IndexSpecialStatisticsVO otherSpecialVO = new IndexSpecialStatisticsVO();
+        otherSpecialVO.setTitle("其他");
+        otherSpecialVO.setSum(0);
+        if (!userTagList.isEmpty()) {
+            userTagList.forEach(userTag -> {
+                if (userTag != null) {
+                    if (userTag.getSysFlag().equals(0)) {
+                        Integer count = comMngPopulationDAO.getSpecialStatisticsByLabel(userTag.getTagName(),communityId);
+                        otherSpecialVO.setSum(otherSpecialVO.getSum() + count);
+                    } else {
+                        if (StringUtils.isNotEmpty(userTag.getTagName())) {
+                            if (userTag.getTagName().equals("特扶家庭")) {
+                                IndexSpecialStatisticsVO specialStatisticsVO = new IndexSpecialStatisticsVO();
+                                specialStatisticsVO.setTitle(userTag.getTagName());
+                                specialStatisticsVO.setSum(22);
+                                specialStatisticsVOList.add(specialStatisticsVO);
+                            } else if (userTag.getTagName().equals("低保户")) {
+                                IndexSpecialStatisticsVO specialStatisticsVO = new IndexSpecialStatisticsVO();
+                                specialStatisticsVO.setTitle(userTag.getTagName());
+                                specialStatisticsVO.setSum(94);
+                                specialStatisticsVOList.add(specialStatisticsVO);
+                            } else if (userTag.getTagName().equals("低收入人群")) {
+                                IndexSpecialStatisticsVO specialStatisticsVO = new IndexSpecialStatisticsVO();
+                                specialStatisticsVO.setTitle(userTag.getTagName());
+                                specialStatisticsVO.setSum(2);
+                                specialStatisticsVOList.add(specialStatisticsVO);
+                            } else if (userTag.getTagName().equals("退役军人")) {
+                                IndexSpecialStatisticsVO specialStatisticsVO = new IndexSpecialStatisticsVO();
+                                specialStatisticsVO.setTitle(userTag.getTagName());
+                                specialStatisticsVO.setSum(264);
+                                specialStatisticsVOList.add(specialStatisticsVO);
+                            } else if (userTag.getTagName().equals("高龄老人")) {
+                                IndexSpecialStatisticsVO specialStatisticsVO = new IndexSpecialStatisticsVO();
+                                specialStatisticsVO.setTitle(userTag.getTagName());
+                                specialStatisticsVO.setSum(comMngPopulationDAO.getStatisticsCount(communityId));
+                                specialStatisticsVOList.add(specialStatisticsVO);
+                            } else {
+                                IndexSpecialStatisticsVO specialStatisticsVO = new IndexSpecialStatisticsVO();
+                                specialStatisticsVO.setTitle(userTag.getTagName());
+                                Integer count = comMngPopulationDAO.getSpecialStatisticsByLabel(userTag.getTagName(),communityId);
+                                specialStatisticsVO.setSum(count);
+                                specialStatisticsVOList.add(specialStatisticsVO);
+                            }
+                        }
+                    }
+                }
+            });
+        }
+        specialStatisticsVOList.add(otherSpecialVO);
+        statisticsVO.setSpecialStatisticsVOList(specialStatisticsVOList);
+        return R.ok(statisticsVO);
+    }
+
+    private List<IndexPopulationAgeStatisticsVO> statisticsAge(Long communityId) {
+        Map<String, Long> ageMap = populationDAO.indexCountByAge(communityId);
+        List<IndexPopulationAgeStatisticsVO> agePopulationList = new ArrayList<>();
+        IndexPopulationAgeStatisticsVO ageStatisticsVO1 = new IndexPopulationAgeStatisticsVO();
+        IndexPopulationAgeStatisticsVO ageStatisticsVO2 = new IndexPopulationAgeStatisticsVO();
+        IndexPopulationAgeStatisticsVO ageStatisticsVO3 = new IndexPopulationAgeStatisticsVO();
+        IndexPopulationAgeStatisticsVO ageStatisticsVO4 = new IndexPopulationAgeStatisticsVO();
+        IndexPopulationAgeStatisticsVO ageStatisticsVO5 = new IndexPopulationAgeStatisticsVO();
+        IndexPopulationAgeStatisticsVO ageStatisticsVO6 = new IndexPopulationAgeStatisticsVO();
+        IndexPopulationAgeStatisticsVO ageStatisticsVO7 = new IndexPopulationAgeStatisticsVO();
+        IndexPopulationAgeStatisticsVO ageStatisticsVO8 = new IndexPopulationAgeStatisticsVO();
+        ageStatisticsVO1.setType(1);
+        ageStatisticsVO2.setType(2);
+        ageStatisticsVO3.setType(3);
+        ageStatisticsVO4.setType(4);
+        ageStatisticsVO5.setType(5);
+        ageStatisticsVO6.setType(6);
+        ageStatisticsVO7.setType(7);
+        ageStatisticsVO8.setType(8);
+        if (ageMap.isEmpty()) {
+            ageStatisticsVO1.setSum(0);
+            ageStatisticsVO2.setSum(0);
+            ageStatisticsVO3.setSum(0);
+            ageStatisticsVO4.setSum(0);
+            ageStatisticsVO5.setSum(0);
+            ageStatisticsVO6.setSum(0);
+            ageStatisticsVO7.setSum(0);
+            ageStatisticsVO8.setSum(0);
+        } else {
+            int count=ageMap.get("age16").intValue()+ageMap.get("age27").intValue()+ageMap.get("age35").intValue()
+                    +ageMap.get("age45").intValue()+ageMap.get("age55").intValue()+ageMap.get("age55over").intValue()+ageMap.get("age65").intValue()+ageMap.get("age75").intValue();
+            ageStatisticsVO1.setSum(ageMap.get("age16").intValue());
+            if(count == 0){
+                ageStatisticsVO1.setSum(0);
+                ageStatisticsVO2.setSum(0);
+                ageStatisticsVO3.setSum(0);
+                ageStatisticsVO4.setSum(0);
+                ageStatisticsVO5.setSum(0);
+                ageStatisticsVO6.setSum(0);
+                ageStatisticsVO7.setSum(0);
+                ageStatisticsVO8.setSum(0);
+                ageStatisticsVO1.setPercent(BigDecimal.ZERO);
+                ageStatisticsVO2.setPercent(BigDecimal.ZERO);
+                ageStatisticsVO3.setPercent(BigDecimal.ZERO);
+                ageStatisticsVO4.setPercent(BigDecimal.ZERO);
+                ageStatisticsVO5.setPercent(BigDecimal.ZERO);
+                ageStatisticsVO6.setPercent(BigDecimal.ZERO);
+                ageStatisticsVO7.setPercent(BigDecimal.ZERO);
+                ageStatisticsVO8.setPercent(BigDecimal.ZERO);
+            }else {
+                BigDecimal rate = BigDecimal.valueOf(ageMap.get("age16").intValue() * 100d).divide(BigDecimal.valueOf(count), 2, BigDecimal.ROUND_HALF_UP);
+                ageStatisticsVO1.setPercent(rate);
+                ageStatisticsVO2.setSum(ageMap.get("age27").intValue());
+                rate = BigDecimal.valueOf(ageMap.get("age27").intValue() * 100d).divide(BigDecimal.valueOf(count), 2, BigDecimal.ROUND_HALF_UP);
+                ageStatisticsVO2.setPercent(rate);
+                ageStatisticsVO3.setSum(ageMap.get("age35").intValue());
+                rate = BigDecimal.valueOf(ageMap.get("age35").intValue() * 100d).divide(BigDecimal.valueOf(count), 2, BigDecimal.ROUND_HALF_UP);
+                ageStatisticsVO3.setPercent(rate);
+                ageStatisticsVO4.setSum(ageMap.get("age45").intValue());
+                rate = BigDecimal.valueOf(ageMap.get("age45").intValue() * 100d).divide(BigDecimal.valueOf(count), 2, BigDecimal.ROUND_HALF_UP);
+                ageStatisticsVO4.setPercent(rate);
+                ageStatisticsVO5.setSum(ageMap.get("age55").intValue());
+                rate = BigDecimal.valueOf(ageMap.get("age55").intValue() * 100d).divide(BigDecimal.valueOf(count), 2, BigDecimal.ROUND_HALF_UP);
+                ageStatisticsVO5.setPercent(rate);
+                ageStatisticsVO6.setSum(ageMap.get("age55over").intValue());
+                rate = BigDecimal.valueOf(ageMap.get("age55over").intValue() * 100d).divide(BigDecimal.valueOf(count), 2, BigDecimal.ROUND_HALF_UP);
+                ageStatisticsVO6.setPercent(rate);
+                ageStatisticsVO7.setSum(ageMap.get("age65").intValue());
+                rate = BigDecimal.valueOf(ageMap.get("age65").intValue() * 100d).divide(BigDecimal.valueOf(count), 2, BigDecimal.ROUND_HALF_UP);
+                ageStatisticsVO7.setPercent(rate);
+                ageStatisticsVO8.setSum(ageMap.get("age75").intValue());
+                rate = BigDecimal.valueOf(ageMap.get("age75").intValue() * 100d).divide(BigDecimal.valueOf(count), 2, BigDecimal.ROUND_HALF_UP);
+                ageStatisticsVO8.setPercent(rate);
+            }
+        }
+
+        agePopulationList.add(ageStatisticsVO1);
+        agePopulationList.add(ageStatisticsVO2);
+        agePopulationList.add(ageStatisticsVO3);
+        agePopulationList.add(ageStatisticsVO4);
+        agePopulationList.add(ageStatisticsVO5);
+        agePopulationList.add(ageStatisticsVO6);
+        agePopulationList.add(ageStatisticsVO7);
+        agePopulationList.add(ageStatisticsVO8);
+        return agePopulationList;
+    }
+
+    /**
+     * 事件大屏统计接口
+     *
+     * @param screenEventDTO
+     *            请求参数
+     * @return 统计结果
+     */
+    @Override
+    public R getScreenEvent(BigScreenEventDTO screenEventDTO) {
+
+        Long communityId = screenEventDTO.getCommunityId();
+        // 创建统计返回参数
+        EventStatisticsVO statisticsVO = new EventStatisticsVO();
+
+        // 查询页面左边数据
+        EventLeftStatisticsVO leftStatisticsVO = new EventLeftStatisticsVO();
+        // 查询左上数据
+        EventLeftTopStatisticsVO leftTopStatisticsVO = this.baseMapper.getEventScreenLeftTop(screenEventDTO);
+        // 查询时间频发月份
+        List<Integer> monthList = this.baseMapper.getFrequentlyEventMonth(communityId);
+        leftTopStatisticsVO.setOftenMonth(monthList);
+        leftStatisticsVO.setLeftTopStatisticsVO(leftTopStatisticsVO);
+        // 查询左下数据
+        EventLeftDownStatisticsVO leftDownStatisticsVO = this.baseMapper.getEventScreenLeftDown(screenEventDTO);
+        leftStatisticsVO.setLeftDownStatisticsVO(leftDownStatisticsVO);
+        statisticsVO.setLeftStatisticsVO(leftStatisticsVO);
+
+        // 查询事件播报模块数据
+        EventNewStatisticsVO newStatisticsVO = this.baseMapper.getEventScreenRightTop(communityId);
+        if (newStatisticsVO != null) {
+            // 查询事件资源文件
+            List<EventResourceDO> eventResourceDOList =
+                eventResourceService.getBaseMapper().selectList(new LambdaQueryWrapper<EventResourceDO>()
+                    .eq(EventResourceDO::getClassification, 1).eq(EventResourceDO::getRefId, newStatisticsVO.getId()));
+            List<EventResourceVO> picList = new ArrayList<>();
+            List<EventResourceVO> audioList = new ArrayList<>();
+            List<EventResourceVO> videoList = new ArrayList<>();
+            eventResourceDOList.forEach(eventResourceDO -> {
+                switch (eventResourceDO.getType()) {
+                    case 1:
+                        EventResourceVO picEventResourceVO = new EventResourceVO();
+                        BeanUtils.copyProperties(eventResourceDO, picEventResourceVO);
+                        picList.add(picEventResourceVO);
+                        break;
+                    case 2:
+                        EventResourceVO audioResourceVO = new EventResourceVO();
+                        BeanUtils.copyProperties(eventResourceDO, audioResourceVO);
+                        audioList.add(audioResourceVO);
+                        break;
+                    case 3:
+                        EventResourceVO videoResourceVO = new EventResourceVO();
+                        BeanUtils.copyProperties(eventResourceDO, videoResourceVO);
+                        videoList.add(videoResourceVO);
+                        break;
+                }
+            });
+            newStatisticsVO.setAudios(audioList);
+            newStatisticsVO.setPics(picList);
+            newStatisticsVO.setVideos(videoList);
+
+            // 查询事件流转记录
+            List<EventTransferRecordVO> transferRecordList =
+                this.baseMapper.getEventScreenEventTransList(newStatisticsVO.getId());
+            newStatisticsVO.setTransferRecordList(transferRecordList);
+        }
+        statisticsVO.setNewStatisticsVO(newStatisticsVO);
+
+        // 查询网格数据
+        List<EventGridStatisticsVO> gridStatisticsList = this.baseMapper.getEventScreenGridData(communityId);
+        statisticsVO.setGridStatisticsList(gridStatisticsList);
+
+        // 查询社区事件列表
+        List<EventGridIncidentStatisticsVO> gridIncidentList = this.baseMapper.getEventScreenEventList(screenEventDTO);
+        statisticsVO.setGridIncidentList(gridIncidentList);
+
+        // 查询小区列表
+        List<CivilVillageStatisticsVO> villageStatisticsList = this.baseMapper.getCivilScreenVillageList(communityId);
+        if (!villageStatisticsList.isEmpty()) {
+            villageStatisticsList.forEach(village -> {
+                CivilVillageStatisticsVO villageStatisticsVO =
+                    this.baseMapper.getCivilScreenVillageStatistics(village.getVillageId());
+                if (villageStatisticsVO != null) {
+                    village.setPeopleNum(villageStatisticsVO.getPeopleNum());
+                    village.setHouseNum(villageStatisticsVO.getHouseNum());
+                    village.setRegisterNum(villageStatisticsVO.getRegisterNum());
+                    village.setFlowNum(villageStatisticsVO.getFlowNum());
+                    // BeanUtils.copyProperties(villageStatisticsVO,village);
+                }
+            });
+        }
+        statisticsVO.setVillageStatisticsList(villageStatisticsList);
+
+        // 查询统计人口数据
+        ComMngPopulationTotalVO populationTotalVO = populationDAO.getPopulationTotalByAdmin(communityId);
+        if (communityId.equals(2L)) {
+            populationTotalVO.setSpecialTotal(36);
+        }
+        statisticsVO.setPopulationTotalVO(populationTotalVO);
+
+        return R.ok(statisticsVO);
+    }
+
+    /**
+     * 民生大屏统计接口
+     *
+     * @param communityId
+     *            社区id
+     * @return 统计结果
+     */
+    @Override
+    public R getScreenCivil(Long communityId) {
+        // 创建统计返回参数
+        CivilStatisticsVO civilStatisticsVO = new CivilStatisticsVO();
+
+        // 查询特殊人群统计
+        List<IndexSpecialStatisticsVO> specialStatisticsVOList = new ArrayList<>();
+
+        //查询特殊人群标签列表
+        List<ComMngUserTagVO> userTagList = comMngPopulationDAO.getUserTagListByCommunityId(communityId);
+        IndexSpecialStatisticsVO otherSpecialVO = new IndexSpecialStatisticsVO();
+        otherSpecialVO.setTitle("其他");
+        otherSpecialVO.setSum(0);
+        if (!userTagList.isEmpty()) {
+            userTagList.forEach(userTag -> {
+                if (userTag != null) {
+                    if (userTag.getSysFlag().equals(0)) {
+                        Integer count = comMngPopulationDAO.getSpecialStatisticsByLabel(userTag.getTagName(),communityId);
+                        otherSpecialVO.setSum(otherSpecialVO.getSum() + count);
+                    } else {
+                        if (StringUtils.isNotEmpty(userTag.getTagName())) {
+                            if (userTag.getTagName().equals("特扶家庭")) {
+                                IndexSpecialStatisticsVO specialStatisticsVO = new IndexSpecialStatisticsVO();
+                                specialStatisticsVO.setTitle(userTag.getTagName());
+                                specialStatisticsVO.setSum(22);
+                                specialStatisticsVOList.add(specialStatisticsVO);
+                            } else if (userTag.getTagName().equals("低保户")) {
+                                IndexSpecialStatisticsVO specialStatisticsVO = new IndexSpecialStatisticsVO();
+                                specialStatisticsVO.setTitle(userTag.getTagName());
+                                specialStatisticsVO.setSum(94);
+                                specialStatisticsVOList.add(specialStatisticsVO);
+                            } else if (userTag.getTagName().equals("低收入人群")) {
+                                IndexSpecialStatisticsVO specialStatisticsVO = new IndexSpecialStatisticsVO();
+                                specialStatisticsVO.setTitle(userTag.getTagName());
+                                specialStatisticsVO.setSum(2);
+                                specialStatisticsVOList.add(specialStatisticsVO);
+                            } else if (userTag.getTagName().equals("退役军人")) {
+                                IndexSpecialStatisticsVO specialStatisticsVO = new IndexSpecialStatisticsVO();
+                                specialStatisticsVO.setTitle(userTag.getTagName());
+                                specialStatisticsVO.setSum(264);
+                                specialStatisticsVOList.add(specialStatisticsVO);
+                            } else if (userTag.getTagName().equals("高龄老人")) {
+                                IndexSpecialStatisticsVO specialStatisticsVO = new IndexSpecialStatisticsVO();
+                                specialStatisticsVO.setTitle(userTag.getTagName());
+                                specialStatisticsVO.setSum(comMngPopulationDAO.getStatisticsCount(communityId));
+                                specialStatisticsVOList.add(specialStatisticsVO);
+                            } else {
+                                IndexSpecialStatisticsVO specialStatisticsVO = new IndexSpecialStatisticsVO();
+                                specialStatisticsVO.setTitle(userTag.getTagName());
+                                Integer count = comMngPopulationDAO.getSpecialStatisticsByLabel(userTag.getTagName(),communityId);
+                                specialStatisticsVO.setSum(count);
+                                specialStatisticsVOList.add(specialStatisticsVO);
+                            }
+                        }
+                    }
+                }
+            });
+        }
+        // 计算特殊人群总数
+        specialStatisticsVOList.add(otherSpecialVO);
+        Integer specialNum = 0;
+        if (!specialStatisticsVOList.isEmpty()) {
+            for (IndexSpecialStatisticsVO special : specialStatisticsVOList) {
+                specialNum += special.getSum();
+            }
+        }
+        civilStatisticsVO.setSpecialNum(specialNum);
+        civilStatisticsVO.setSpecialStatisticsList(specialStatisticsVOList);
+
+        // 计算环比上月增长率
+        BigDecimal rate = BigDecimal.ZERO;
+        CivilPopulationStatisticsVO populationStatisticsVO =
+            this.baseMapper.getCivilScreenPopulation(communityId, DateUtils.getFirstDayOfMonth());
+        if (populationStatisticsVO != null) {
+            if (populationStatisticsVO.getToMonthSpecialTotal().equals(0)) {
+                rate = BigDecimal.valueOf(100);
+            } else {
+                rate = BigDecimal
+                    .valueOf(populationStatisticsVO.getSpecialTotal() - populationStatisticsVO.getToMonthSpecialTotal())
+                    .divide(BigDecimal.valueOf(populationStatisticsVO.getToMonthSpecialTotal()), 3,
+                        BigDecimal.ROUND_HALF_UP)
+                    .multiply(BigDecimal.valueOf(100));
+            }
+        }
+        civilStatisticsVO.setRate(rate);
+
+        // 查询网格数据
+        List<EventGridStatisticsVO> gridStatisticsList = this.baseMapper.getEventScreenGridData(communityId);
+        civilStatisticsVO.setGridStatisticsList(gridStatisticsList);
+
+        // 查询小区列表
+        List<CivilVillageStatisticsVO> villageStatisticsList = this.baseMapper.getCivilScreenVillageList(communityId);
+//        villageStatisticsList.forEach(civilVillageStatisticsVO -> {
+//            civilVillageStatisticsVO.setUserSum(comMngPopulationDAO.selectCount(new QueryWrapper<ComMngPopulationDO>().lambda().eq(ComMngPopulationDO::getVillageId,civilVillageStatisticsVO.getVillageId())));
+//            List<IndexSpecialStatisticsVO> specialStatisticsVOS = new ArrayList<>();
+//            IndexSpecialStatisticsVO otherSpecial = new IndexSpecialStatisticsVO();
+//            otherSpecial.setTitle("其他");
+//            otherSpecial.setSum(0);
+//            // 查询特殊人群标签列表
+//            List<ComMngUserTagVO> userTagVOS = comMngPopulationDAO.getUserTagListByCommunityId(communityId);
+//
+//            userTagVOS.forEach(comMngUserTagVO -> {
+//              Integer count=comMngPopulationDAO.selectCountByVillageId(civilVillageStatisticsVO.getVillageId(),comMngUserTagVO.getTagName());
+//              IndexSpecialStatisticsVO indexSpecialStatisticsVO=new IndexSpecialStatisticsVO();
+//              indexSpecialStatisticsVO.setTitle(comMngUserTagVO.getTagName());
+//              indexSpecialStatisticsVO.setSum(count);
+//              otherSpecial.setSum(otherSpecial.getSum()+count);
+//              specialStatisticsVOS.add(indexSpecialStatisticsVO);
+//            });
+//            otherSpecial.setSum(civilVillageStatisticsVO.getUserSum()-otherSpecial.getSum());
+//            specialStatisticsVOS.add(otherSpecial);
+//            civilVillageStatisticsVO.setSpecialStatisticsList(specialStatisticsVOS);
+//        });
+        civilStatisticsVO.setVillageStatisticsList(villageStatisticsList);
+
+        //查询党建引领数据
+        CivilPartyStatisticsVO civilParty = this.baseMapper.getCivilParty(communityId);
+        if(civilParty != null){
+            civilStatisticsVO.setCivilPartyStatisticsVO(civilParty);
+        }
+        //查询社区治理数据
+        CivilGovernmentStatisticsVO civilGovernment = this.baseMapper.getCivilGovernment(communityId);
+        if(civilGovernment != null){
+            civilStatisticsVO.setCivilGovernmentStatisticsVO(civilGovernment);
+        }
+        //查询网格管理数据
+        CivilGridStatisticsVO civilGrid = this.baseMapper.getCivilGrid(communityId);
+        if(civilGrid != null){
+            civilStatisticsVO.setCivilGridStatisticsVO(civilGrid);
+        }
+        //查询便民服务数据
+        CivilConvenienceStatisticsVO civilConvenience = this.baseMapper.getCivilConvenience(communityId);
+        if(civilConvenience != null){
+            civilStatisticsVO.setCivilConvenienceStatisticsVO(civilConvenience);
+        }
+        return R.ok(civilStatisticsVO);
+    }
+
+    @Override
+    public R screenStatistic(Long communityId) {
+        ComActPopulationScreenVO comActPopulationScreenVO = new ComActPopulationScreenVO();
+        ComMngPopulationTotalVO vo = populationDAO.getPopulationTotalByAdmin(communityId);
+        comActPopulationScreenVO.setTotalNum(vo.getPopulationTotal() == null ? 0 : vo.getPopulationTotal());
+        comActPopulationScreenVO.setLocalNum(vo.getLocalTotal() == null ? 0 : vo.getLocalTotal().longValue());
+        comActPopulationScreenVO.setOutNum(vo.getOutTotal() == null ? 0 : vo.getOutTotal().longValue());
+
+        // 查询特殊人群统计
+        List<IndexSpecialStatisticsVO> specialStatisticsVOList = new ArrayList<>();
+
+        // 查询特殊人群标签列表
+        List<ComMngUserTagVO> userTagList = comMngPopulationDAO.getUserTagListByCommunityId(communityId);
+        IndexSpecialStatisticsVO otherSpecialVO = new IndexSpecialStatisticsVO();
+        otherSpecialVO.setTitle("其他");
+        otherSpecialVO.setSum(0);
+        if (!userTagList.isEmpty()) {
+            userTagList.forEach(userTag -> {
+                if (userTag != null) {
+                    if (userTag.getSysFlag().equals(0)) {
+                        Integer count = comMngPopulationDAO.getSpecialStatisticsByLabel(userTag.getTagName(),communityId);
+                        otherSpecialVO.setSum(otherSpecialVO.getSum() + count);
+                    } else {
+                        if (StringUtils.isNotEmpty(userTag.getTagName())) {
+                            if (userTag.getTagName().equals("特扶家庭")) {
+                                IndexSpecialStatisticsVO specialStatisticsVO = new IndexSpecialStatisticsVO();
+                                specialStatisticsVO.setTitle(userTag.getTagName());
+                                specialStatisticsVO.setSum(22);
+                                specialStatisticsVOList.add(specialStatisticsVO);
+                            } else if (userTag.getTagName().equals("低保户")) {
+                                IndexSpecialStatisticsVO specialStatisticsVO = new IndexSpecialStatisticsVO();
+                                specialStatisticsVO.setTitle(userTag.getTagName());
+                                specialStatisticsVO.setSum(94);
+                                specialStatisticsVOList.add(specialStatisticsVO);
+                            } else if (userTag.getTagName().equals("低收入人群")) {
+                                IndexSpecialStatisticsVO specialStatisticsVO = new IndexSpecialStatisticsVO();
+                                specialStatisticsVO.setTitle(userTag.getTagName());
+                                specialStatisticsVO.setSum(2);
+                                specialStatisticsVOList.add(specialStatisticsVO);
+                            } else if (userTag.getTagName().equals("退役军人")) {
+                                IndexSpecialStatisticsVO specialStatisticsVO = new IndexSpecialStatisticsVO();
+                                specialStatisticsVO.setTitle(userTag.getTagName());
+                                specialStatisticsVO.setSum(264);
+                                specialStatisticsVOList.add(specialStatisticsVO);
+                            } else if (userTag.getTagName().equals("高龄老人")) {
+                                IndexSpecialStatisticsVO specialStatisticsVO = new IndexSpecialStatisticsVO();
+                                specialStatisticsVO.setTitle(userTag.getTagName());
+                                specialStatisticsVO.setSum(comMngPopulationDAO.getStatisticsCount(communityId));
+                                specialStatisticsVOList.add(specialStatisticsVO);
+                            } else {
+                                IndexSpecialStatisticsVO specialStatisticsVO = new IndexSpecialStatisticsVO();
+                                specialStatisticsVO.setTitle(userTag.getTagName());
+                                Integer count = comMngPopulationDAO.getSpecialStatisticsByLabel(userTag.getTagName(),communityId);
+                                specialStatisticsVO.setSum(count);
+                                specialStatisticsVOList.add(specialStatisticsVO);
+                            }
+                        }
+                    }
+                }
+            });
+        }
+        // 计算特殊人群总数
+        specialStatisticsVOList.add(otherSpecialVO);
+        Integer specialNum = 0;
+        if (!specialStatisticsVOList.isEmpty()) {
+            for (IndexSpecialStatisticsVO special : specialStatisticsVOList) {
+                specialNum += special.getSum();
+            }
+        }
+        comActPopulationScreenVO.setSpecialNum(specialNum.longValue());
+        // 统计已使用社区通人数
+        Long count = populationDAO.countUsedCommunityPopulation(communityId);
+        comActPopulationScreenVO.setUsedCommunityNum(count == null ? 0 : count);
+        // comActPopulationScreenVO.setUsedCommunityNum(1183L);
+
+        // 统计性别
+        Map<String, Long> sexMap = populationDAO.countBySex(communityId);
+        comActPopulationScreenVO.setWoman(sexMap.get("woman") == null ? 0L : sexMap.get("woman"));
+        comActPopulationScreenVO.setManNum(sexMap.get("man") == null ? 0L : sexMap.get("man"));
+        int manPoint =
+            (int)(((double)comActPopulationScreenVO.getManNum() / (double)comActPopulationScreenVO.getTotalNum())
+                * 100);
+        comActPopulationScreenVO.setManPoint(manPoint);
+        comActPopulationScreenVO.setWomanPoint(100 - manPoint);
+
+        // 统计年龄结构
+        setAgeGroup(comActPopulationScreenVO, communityId);
+        // 统计学历
+        setCultureGroup(comActPopulationScreenVO, communityId);
+
+        // 查询网格数据
+        List<EventGridStatisticsVO> gridStatisticsList = this.baseMapper.getEventScreenGridData(communityId);
+        comActPopulationScreenVO.setGridStatisticsList(gridStatisticsList);
+
+        // 查询小区列表
+        List<CivilVillageStatisticsVO> villageStatisticsList = this.baseMapper.getCivilScreenVillageList(communityId);
+        comActPopulationScreenVO.setVillageStatisticsList(villageStatisticsList);
+
+        return R.ok(comActPopulationScreenVO);
+    }
+
+    private void setCultureGroup(ComActPopulationScreenVO comActPopulationScreenVO, Long communityId) {
+        Map<String, Long> cultureMap = populationDAO.countByCulture(communityId);
+        List<ComActPopulationCultureVO> cultureGroup = new ArrayList<>();
+        ComActPopulationCultureVO xx = new ComActPopulationCultureVO();
+        xx.setLevel(PopulCultureLevelEnum.XX.getName());
+        xx.setNum(cultureMap.get("xx"));
+        cultureGroup.add(xx);
+
+        ComActPopulationCultureVO cz = new ComActPopulationCultureVO();
+        cz.setLevel(PopulCultureLevelEnum.CZ.getName());
+        cz.setNum(cultureMap.get("cz"));
+        cultureGroup.add(cz);
+
+        ComActPopulationCultureVO gz = new ComActPopulationCultureVO();
+        gz.setLevel(PopulCultureLevelEnum.GZ.getName());
+        gz.setNum(cultureMap.get("gz"));
+        cultureGroup.add(gz);
+
+        ComActPopulationCultureVO zz = new ComActPopulationCultureVO();
+        zz.setLevel(PopulCultureLevelEnum.ZZ.getName());
+        zz.setNum(cultureMap.get("zz"));
+        cultureGroup.add(zz);
+
+        ComActPopulationCultureVO dz = new ComActPopulationCultureVO();
+        dz.setLevel(PopulCultureLevelEnum.DZ.getName());
+        dz.setNum(cultureMap.get("dz"));
+        cultureGroup.add(dz);
+
+        ComActPopulationCultureVO bk = new ComActPopulationCultureVO();
+        bk.setLevel(PopulCultureLevelEnum.BK.getName());
+        bk.setNum(cultureMap.get("bk"));
+        cultureGroup.add(bk);
+
+        ComActPopulationCultureVO ss = new ComActPopulationCultureVO();
+        ss.setLevel(PopulCultureLevelEnum.SS.getName());
+        ss.setNum(cultureMap.get("ss"));
+        cultureGroup.add(ss);
+
+        ComActPopulationCultureVO bs = new ComActPopulationCultureVO();
+        bs.setLevel(PopulCultureLevelEnum.BS.getName());
+        bs.setNum(cultureMap.get("bs"));
+        cultureGroup.add(bs);
+
+        ComActPopulationCultureVO qt = new ComActPopulationCultureVO();
+        qt.setLevel(PopulCultureLevelEnum.QT.getName());
+        qt.setNum(cultureMap.get("qt"));
+        cultureGroup.add(qt);
+
+        comActPopulationScreenVO.setCultureGroup(cultureGroup);
+    }
+
+    private void setAgeGroup(ComActPopulationScreenVO comActPopulationScreenVO, Long communityId) {
+        Map<String, Long> ageMap = populationDAO.countByAge(communityId);
+        List<ComMngPopulationAgeVO> ageList = new ArrayList<>();
+        ComMngPopulationAgeVO ageVO16 = new ComMngPopulationAgeVO();
+        ageVO16.setGroup("0-16岁");
+        ageVO16.setNum(ageMap.get("age16"));
+        ageList.add(ageVO16);
+        ComMngPopulationAgeVO ageVO25 = new ComMngPopulationAgeVO();
+        ageVO25.setGroup("16-25岁");
+        ageVO25.setNum(ageMap.get("age25"));
+        ageList.add(ageVO25);
+
+        ComMngPopulationAgeVO ageVO35 = new ComMngPopulationAgeVO();
+        ageVO35.setGroup("25-35岁");
+        ageVO35.setNum(ageMap.get("age35"));
+        ageList.add(ageVO35);
+        ComMngPopulationAgeVO ageVO45 = new ComMngPopulationAgeVO();
+        ageVO45.setGroup("35-45岁");
+        ageVO45.setNum(ageMap.get("age45"));
+        ageList.add(ageVO45);
+        ComMngPopulationAgeVO ageVO55 = new ComMngPopulationAgeVO();
+        ageVO55.setGroup("45-55岁");
+        ageVO55.setNum(ageMap.get("age55"));
+        ageList.add(ageVO55);
+        ComMngPopulationAgeVO ageVO55over = new ComMngPopulationAgeVO();
+        ageVO55over.setGroup("55岁以上");
+        ageVO55over.setNum(ageMap.get("age55over"));
+        ageList.add(ageVO55over);
+        comActPopulationScreenVO.setAgeGroup(ageList);
+    }
+
+    /**
+     * 获取社区网格
+     *
+     * @param communityId
+     *            社区id
+     * @return 网格数据
+     */
+    @Override
+    public R getScreenGirds(Long communityId) {
+        return R.ok(this.baseMapper.getEventScreenGridData(communityId));
+    }
+
+    /**
+     * 事件大屏查询事件详情
+     *
+     * @param eventDetailDTO
+     *            请求参数
+     * @return 事件详情
+     */
+    @Override
+    public R getScreenEventDetail(BigScreenEventDetailDTO eventDetailDTO) {
+        EventNewStatisticsVO statisticsVO = new EventNewStatisticsVO();
+        Integer eventType = eventDetailDTO.getEventType();
+        boolean isNewReq = nonNull(eventType) && eventType.equals(2);
+        if (eventDetailDTO.getType().equals(7) || isNewReq) {// 随手拍详情
+            if (isNewReq) {
+                statisticsVO = this.baseMapper.getEventScreenSSPDateilNew(eventDetailDTO.getEventId());
+            } else {
+                statisticsVO = this.baseMapper.getEventScreenSSPDateil(eventDetailDTO.getEventId());
+            }
+            if (statisticsVO != null && StringUtils.isNotEmpty(statisticsVO.getPhotoPathList())) {
+                statisticsVO.setDangerLevel("0");
+                statisticsVO.setMajor(false);
+                statisticsVO.setUrgent(false);
+                if (statisticsVO.getEventDealStatus().equals(2)||statisticsVO.getEventDealStatus().equals(1)) {
+                    statisticsVO.setEventDealStatus(1);
+                }
+                else {
+                    statisticsVO.setEventDealStatus(2);
+                }
+                List<EventResourceVO> picList = new ArrayList<>();
+                String[] pics = statisticsVO.getPhotoPathList().split(",");
+                if (pics.length > 0) {
+                    for (int i = 0; i < pics.length; i++) {
+                        EventResourceVO resourceVO = new EventResourceVO();
+                        resourceVO.setType(1);
+                        resourceVO.setUrl(pics[i]);
+                        picList.add(resourceVO);
+                    }
+                }
+                statisticsVO.setPics(picList);
+            }
+        } else {// 事件详情
+            statisticsVO = this.baseMapper.getEventScreenEventDetail(eventDetailDTO.getEventId());
+            if (statisticsVO != null) {
+                // 查询事件资源文件
+                List<EventResourceDO> eventResourceDOList =
+                    eventResourceService.getBaseMapper().selectList(new LambdaQueryWrapper<EventResourceDO>()
+                        .eq(EventResourceDO::getClassification, 1).eq(EventResourceDO::getRefId, statisticsVO.getId()));
+                List<EventResourceVO> picList = new ArrayList<>();
+                List<EventResourceVO> audioList = new ArrayList<>();
+                List<EventResourceVO> videoList = new ArrayList<>();
+                eventResourceDOList.forEach(eventResourceDO -> {
+                    switch (eventResourceDO.getType()) {
+                        case 1:
+                            EventResourceVO picEventResourceVO = new EventResourceVO();
+                            BeanUtils.copyProperties(eventResourceDO, picEventResourceVO);
+                            picList.add(picEventResourceVO);
+                            break;
+                        case 2:
+                            EventResourceVO audioResourceVO = new EventResourceVO();
+                            BeanUtils.copyProperties(eventResourceDO, audioResourceVO);
+                            audioList.add(audioResourceVO);
+                            break;
+                        case 3:
+                            EventResourceVO videoResourceVO = new EventResourceVO();
+                            BeanUtils.copyProperties(eventResourceDO, videoResourceVO);
+                            videoList.add(videoResourceVO);
+                            break;
+                    }
+                });
+                statisticsVO.setAudios(audioList);
+                statisticsVO.setPics(picList);
+                statisticsVO.setVideos(videoList);
+
+                // 查询事件流转记录
+                List<EventTransferRecordVO> transferRecordList =
+                    this.baseMapper.getEventScreenEventTransList(eventDetailDTO.getEventId());
+                if (!transferRecordList.isEmpty()) {
+                    transferRecordList.forEach(transfer -> {
+                        if (transfer.getFromType().equals(EventTransferRecordVO.fromType.wgy)) {
+                            // 查询上级网格信息
+                            EventTransferRecordDetailVO transferRecordDetailVO =
+                                this.baseMapper.getEventScreenEventTransDetail(transfer.getEventId());
+                            transfer.setSuperiorRelationship(
+                                transferRecordDetailVO.getStreetName() + "-" + transferRecordDetailVO.getCommunityName()
+                                    + "-" + transferRecordDetailVO.getGridName());
+                        } else if (transfer.getFromType().equals(EventTransferRecordVO.fromType.sq)) {
+                            // 查询上级社区信息
+                            EventTransferRecordDetailVO transferRecordDetailVO =
+                                this.baseMapper.getEventScreenEventTransDetailByCommunityId(transfer.getFromId());
+                            transfer.setSuperiorRelationship(transferRecordDetailVO.getStreetName() + "-"
+                                + transferRecordDetailVO.getCommunityName());
+                        }
+                    });
+                }
+                statisticsVO.setTransferRecordList(transferRecordList);
+            }
+        }
+        return R.ok(statisticsVO);
+    }
+
+    /**
+     * 获取人口数据信息
+     *
+     * @param populationListDTO
+     *            请求参数
+     * @return 人口数据
+     */
+    @Override
+    public R pagePopulationListApp(PagePopulationListDTO populationListDTO) {
+        if(populationListDTO.getLabel() != null && "户籍人口".equals(populationListDTO.getLabel())){
+            populationListDTO.setLabel(null);
+            populationListDTO.setOutOrLocal(PagePopulationListDTO.outOrLocal.bd);
+        }
+        if(populationListDTO.getLabel() != null && "流动人口".equals(populationListDTO.getLabel())){
+            populationListDTO.setLabel(null);
+            populationListDTO.setOutOrLocal(PagePopulationListDTO.outOrLocal.wd);
+        }
+        IPage<PopulationListVO> pagePopulationList = this.baseMapper.pagePopulationListApp(
+            new Page(populationListDTO.getPageNum(), populationListDTO.getPageSize()), populationListDTO);
+        if (!pagePopulationList.getRecords().isEmpty()) {
+            pagePopulationList.getRecords().forEach(population -> {
+                population.setAge(IdcardUtil.getAgeByIdCard(population.getCardNo()));
+            });
+        }
+        return R.ok(pagePopulationList);
+    }
+
+    /**
+     * 根据人口id获取人口详情
+     *
+     * @param populationId
+     *            人口id
+     * @return 人口详情
+     */
+    @Override
+    public R getPopulationDetailApp(Long populationId) {
+        PopulationDetailVO detail = this.baseMapper.getPopulationDetailApp(populationId);
+        if (detail != null) {
+            detail.setAge(IdcardUtil.getAgeByIdCard(detail.getCardNo()));
+            if (StringUtils.isNotEmpty(detail.getCultureLevel())) {
+                detail
+                    .setCultureLevel(PopulCultureLevelEnum.getCnDescByName(Integer.parseInt(detail.getCultureLevel())));
+            }
+            if (StringUtils.isNotEmpty(detail.getMarriage())) {
+                detail.setMarriage(PopulMarriageEnum.getCnDescByName(Integer.parseInt(detail.getMarriage())));
+            }
+            //查询该人口的标签
+            List<ComMngPopulationCommunityTagsVo> communityTagsList = this.baseMapper.getCommunityTagList(populationId);
+            String label = LabelUtils.assembleLabel(communityTagsList);
+            detail.setLabel(label);
+        }
+        return R.ok(detail);
+    }
+
+    /**
+     * 修复人口加密问题
+     *
+     * @return 修复结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R getPopulationRepairByApp() {
+        List<ComMngPopulationDO> populationDOList = this.baseMapper.selectList(new QueryWrapper<ComMngPopulationDO>());
+        if (!populationDOList.isEmpty()) {
+            populationDOList.forEach(population -> {
+                try {
+                    population.setCardNo(AESUtil.encrypt128(population.getCardNoStr(), aesKey));
+                } catch (Exception e) {
+
+                }
+                this.baseMapper.updateById(population);
+            });
+        }
+        return R.ok();
+    }
+
+    /**
+     * 综治后台-居民列表
+     *
+     * @param populationListDTO
+     *            请求参数
+     * @return 居民列表
+     */
+    @Override
+    public R getGridPopulationAdminList(ComMngPopulationListDTO populationListDTO) {
+        if (StringUtils.isNotEmpty(populationListDTO.getKeyWord())) {
+            try {
+                populationListDTO.setCardNo(AESUtil.encrypt128(populationListDTO.getKeyWord(), aesKey));
+            } catch (Exception e) {
+                log.error("转换身份证号码失败");
+            }
+        }
+
+        IPage<ComMngPopulationListVO> populationListIPage = this.baseMapper.getGridPopulationAdminList(
+            new Page(populationListDTO.getPageNum(), populationListDTO.getPageSize()), populationListDTO);
+        if (!populationListIPage.getRecords().isEmpty()) {
+            populationListIPage.getRecords().forEach(population -> {
+                try {
+                    Integer age = IdcardUtil.getAgeByIdCard(population.getCardNo());
+                    population.setAge(age);
+                } catch (Exception e) {
+                    log.error("当前人口身份证获取年龄失败,实有人口id:" + population.getId());
+                }
+                // 查询此用户在当前房屋是否是户主
+                Integer relation =
+                    this.baseMapper.getPopulationRelationByHouseId(population.getHouseId(), population.getId());
+                if (relation == null || relation != 1) {
+                    population.setIsRelation(2);
+                } else {
+                    population.setIsRelation(1);
+                }
+            });
+        }
+        return R.ok(populationListIPage);
+    }
+
+    /**
+     * 综治后台-删除居民
+     *
+     * @param ids
+     *            居民id集合
+     * @return 删除结果
+     */
+    @Override
+    public R delGridPopulationAdmin(List<Long> ids) {
+        Integer count = this.baseMapper.getPopulationVisitingCount(ids);
+        if (count > 0) {
+            return R.fail("您选择的数据中存在被引用的,无法删除");
+        }
+        this.baseMapper.deleteBatchIds(ids);
+        //删除人口并删除人口和社区关联关系
+        this.baseMapper.deletePopulaitonRelation(ids);
+        return R.ok("删除成功");
+    }
+
+    @Override
+    public R binding() {
+        QueryWrapper<ComMngPopulationDO> query = new QueryWrapper<>();
+        query.isNull("house_id");
+        List<ComMngPopulationDO> list = baseMapper.selectList(query);
+        list.forEach(e -> {
+            QueryWrapper<ComMngPopulationHouseDO> houseQuery = new QueryWrapper<>();
+            houseQuery.lambda().eq(ComMngPopulationHouseDO::getCommunityId, e.getActId())
+                .eq(ComMngPopulationHouseDO::getAlley, e.getRoad()).eq(ComMngPopulationHouseDO::getFloor, e.getFloor())
+                .eq(ComMngPopulationHouseDO::getUnitNo, e.getUnitNo())
+                .eq(ComMngPopulationHouseDO::getHouseNo, e.getHouseNo());
+            List<ComMngPopulationHouseDO> houseList = comMngPopulationHouseDAO.selectList(houseQuery);
+            if (!CollectionUtils.isEmpty(houseList)) {
+                UpdateWrapper<ComMngPopulationDO> updateWrapper = new UpdateWrapper();
+                updateWrapper.eq("id", e.getId());
+                ComMngPopulationDO populationDO = new ComMngPopulationDO();
+                populationDO.setHouseId(houseList.get(0).getId());
+                baseMapper.update(populationDO, updateWrapper);
+            }
+        });
+        return R.ok();
+    }
+
+    /**
+     * 查询平台人口列表
+     *
+     * @param populationDTO
+     *            请求参数
+     * @return 人口列表
+     */
+    @Override
+    public R getBuildingHousePopulationList(PageComMngPopulationDTO populationDTO) {
+
+        IPage<EventSpecialPopulationVO> populationVOIPage = this.baseMapper.getBuildingHousePopulationList(
+            new Page(populationDTO.getPageNum(), populationDTO.getPageSize()), populationDTO);
+        if (!populationVOIPage.getRecords().isEmpty()) {
+            populationVOIPage.getRecords().forEach(population -> {
+                try {
+                    Integer age = IdcardUtil.getAgeByIdCard(population.getIdCard());
+                    population.setAge(age);
+                } catch (Exception e) {
+                    log.error("人员身份证转换年龄失败,人员id:" + population.getId());
+                }
+            });
+        }
+        return R.ok(populationVOIPage);
+    }
+
+    /**
+     * 综治后台-居民标签栏统计
+     *
+     * @return 居民统计
+     */
+    @Override
+    public R getGridPopulationStatistics(Long communityId) {
+        return R.ok(this.baseMapper.getGridPopulationStatistics(communityId));
+    }
+
+    /**
+     * 综治后台-居民导出查询居民数据
+     *
+     * @param populationExportDTO
+     *            请求参数
+     * @return 导出结果
+     */
+    @Override
+    public R getGridPopulationExport(ComMngPopulationExportDTO populationExportDTO) {
+        // 结果集
+        List<ComMngPopulationExportExcelVO> resultPopulationList = new ArrayList<>();
+        // 查询人口信息
+        List<ComMngPopulationListVO> populationListVOList =
+            this.baseMapper.getGridPopulationAdminLists(populationExportDTO);
+        if (!populationListVOList.isEmpty()) {
+            populationListVOList.forEach(population -> {
+                ComMngPopulationExportExcelVO populationExportExcelVO = new ComMngPopulationExportExcelVO();
+                BeanUtils.copyProperties(population, populationExportExcelVO);
+                if (population.getSex() != null) {
+                    populationExportExcelVO.setSex(PopulSexEnum.getCnDescByName(population.getSex()));
+                }
+                if (population.getPoliticalOutlook() != null) {
+                    populationExportExcelVO.setPoliticalOutlook(
+                        PopulPoliticalOutlookEnum.getCnDescByName(population.getPoliticalOutlook()));
+                }
+                if (population.getIsHouse() != null) {
+                    if (!population.getIsHouse().equals(0L)) {
+                        populationExportExcelVO.setIsHouse("是");
+                    } else {
+                        populationExportExcelVO.setIsHouse("否");
+                    }
+                }
+                if (population.getEventStatus() != null) {
+                    populationExportExcelVO
+                        .setEventStatus(EventStatusEnum.getCnDescByName(population.getEventStatus()));
+                }
+                try {
+                    Integer age = IdcardUtil.getAgeByIdCard(population.getCardNo());
+                    populationExportExcelVO.setAge(age);
+                } catch (Exception e) {
+                    log.error("当前人口身份证获取年龄失败,实有人口id:" + population.getId());
+                }
+                resultPopulationList.add(populationExportExcelVO);
+            });
+        }
+        return R.ok(resultPopulationList);
+    }
+
+    /**
+     * 综治后台-居民管理小区列表
+     *
+     * @param name
+     *            小区名字
+     * @return 小区列表
+     */
+    @Override
+    public R relationVillage(String name) {
+        List<ComMngPopulationVillageVO> populationVillageList = new ArrayList<>();
+        QueryWrapper<ComMngVillageDO> villageQuery = new QueryWrapper<>();
+        if (StringUtils.isNotEmpty(name)) {
+            villageQuery.lambda().like(ComMngVillageDO::getName, name);
+        }
+
+        List<ComMngVillageDO> villageList = comActVillageDAO.selectList(villageQuery);
+        if (!villageList.isEmpty()) {
+            villageList.forEach(village -> {
+                ComMngPopulationVillageVO populationVillageVO = new ComMngPopulationVillageVO();
+                BeanUtils.copyProperties(village, populationVillageVO);
+                populationVillageList.add(populationVillageVO);
+            });
+        }
+        return R.ok(populationVillageList);
+    }
+
+    @Override
+    public R getVillagePopulationAdmin(PageComMngVillagePopulationDTO villagePopulationDTO) {
+        return R.ok(this.baseMapper.getVillagePopulationAdmin(
+            new Page(villagePopulationDTO.getPageNum(), villagePopulationDTO.getPageSize()), villagePopulationDTO));
+    }
+
+    @Override
+    public R specialInputUserExport(PageInputUserDTO pageInputUserDTO) {
+        return R.ok(this.comMngPopulationDAO.specialInputUserExport(pageInputUserDTO));
+    }
+
+    @Override
+    public R westScreenStatics() {
+        WestScreenStatics westScreenStatics=this.comMngPopulationDAO.westScreenStatics();
+        WxDataUtil wxDataUtil=new WxDataUtil();
+        westScreenStatics.setDayUser(wxDataUtil.getDayUser());
+        westScreenStatics.setCountUser(wxDataUtil.getMonthUser());
+        return R.ok(westScreenStatics);
+    }
+
+    @Override
+    public R getComprehensivePopulationStatics(Long streetId){
+        EventPopulationStatisticsVO statisticsVo = new EventPopulationStatisticsVO();
+        //查询人口数据
+        List<EventPopulationBasicsStatisticsVO> basicsList = comMngPopulationDAO.getBasicsList(streetId);
+        if(basicsList != null){
+            for (EventPopulationBasicsStatisticsVO basics : basicsList) {
+                statisticsVo.setPopulationNum(statisticsVo.getPopulationNum() + basics.getPopulationNum());
+                statisticsVo.setVillageNum(statisticsVo.getVillageNum() + basics.getVillageNum());
+                statisticsVo.setHouseNum(statisticsVo.getHouseNum() + basics.getHouseNum());
+            }
+            statisticsVo.setBasicsList(basicsList);
+        }
+        //查询特殊人群数据
+        EventPopulationSpecialStatisticsVO populationSpecial = comMngPopulationDAO.getPopulationSpecial(streetId);
+        if(populationSpecial != null){
+            populationSpecial.setOtherTotal(populationSpecial.getZjTotal() + populationSpecial.getSfTotal()
+                    + populationSpecial.getXsTotal() + populationSpecial.getXjTotal()
+                    + populationSpecial.getJzTotal() + populationSpecial.getXdTotal());
+            populationSpecial.setLnTotal(comMngPopulationDAO.getPopulationAge(streetId,60));
+            populationSpecial.setGlTotal(comMngPopulationDAO.getPopulationAge(streetId,80));
+            statisticsVo.setSpecialStatisticsVo(populationSpecial);
+        }
+        return R.ok(statisticsVo);
+    }
+
+    @Override
+    public R getComprehensiveStreetList(){
+        return R.ok(comMngPopulationDAO.getComprehensiveStreetList());
+    }
+
+    @Override
+    public R indexInfo(Long communityId) {
+        IndexInfo indexInfo=new IndexInfo();
+        //基础数据
+        BaseInfo baseInfo=this.comMngPopulationDAO.baseInfo(communityId);
+        indexInfo.setBaseInfo(baseInfo);
+        // 查询实有人口统计模块
+        IndexPopulationStatisticsVO populationStatisticsVO = new IndexPopulationStatisticsVO();
+        // 查询实有人口性别统计
+        List<IndexPopulationSexStatisticsVO> sexPopulationList =
+                comMngPopulationDAO.getScreenIndexByPopulationSex(communityId);
+        populationStatisticsVO.setSexPopulationList(sexPopulationList);
+        // 查询实有人口年龄统计
+        List<IndexPopulationAgeStatisticsVO> agePopulationList = statisticsAge(communityId);
+        populationStatisticsVO.setAgePopulationList(agePopulationList);
+        indexInfo.setIndexPopulationStatisticsVO(populationStatisticsVO);
+        // 查询特殊人群统计
+        List<IndexSpecialStatisticsVO> specialStatisticsVOList = new ArrayList<>();
+
+        // 查询特殊人群标签列表
+        List<ComMngUserTagVO> userTagList = comMngPopulationDAO.getUserTagListByCommunityId(communityId);
+        IndexSpecialStatisticsVO otherSpecialVO = new IndexSpecialStatisticsVO();
+        otherSpecialVO.setTitle("其他");
+        otherSpecialVO.setSum(0);
+        IndexSpecialStatisticsVO otherSpecialVO1 = new IndexSpecialStatisticsVO();
+        otherSpecialVO1.setTitle("普通居民");
+        otherSpecialVO1.setSum(0);
+        int countNormal=comMngPopulationDAO.getSpecialStatistics(communityId);
+        int countElder=comMngPopulationDAO.getStatisticsCount(communityId);
+        int countAll=countElder+countNormal;
+        if (!userTagList.isEmpty()) {
+            userTagList.forEach(userTag -> {
+                if (userTag != null) {
+                    if(userTag.getTagName().equals("高龄老人")||userTag.getTagName().equals("残疾人")||userTag.getTagName().equals("低保户")||userTag.getTagName().equals("退役军人")||userTag.getTagName().equals("养老金人员")||userTag.getTagName().equals("低收入人群")){
+                        IndexSpecialStatisticsVO specialStatisticsVO = new IndexSpecialStatisticsVO();
+                        specialStatisticsVO.setTitle(userTag.getTagName());
+                        Integer count =0;
+                        if (userTag.getTagName().equals("高龄老人")) {
+                            count=countElder;
+                        }
+                        else {
+                            count= comMngPopulationDAO.getSpecialStatisticsByLabel(userTag.getTagName(),communityId);
+                        }
+                        specialStatisticsVO.setSum(count);
+                        if(countAll == 0){
+                            specialStatisticsVO.setPercent(BigDecimal.ZERO);
+                        }else{
+                            specialStatisticsVO.setPercent(BigDecimal.valueOf(specialStatisticsVO.getSum()*100d/countAll).setScale(2,BigDecimal.ROUND_HALF_UP));
+                        }
+                        otherSpecialVO1.setSum(otherSpecialVO1.getSum()+count);
+                        specialStatisticsVOList.add(specialStatisticsVO);
+                    }
+                    else{
+                        Integer count = comMngPopulationDAO.getSpecialStatisticsByLabel(userTag.getTagName(),communityId);
+                        otherSpecialVO.setSum(otherSpecialVO.getSum()+count);
+                        otherSpecialVO1.setSum(otherSpecialVO1.getSum()+count);
+                    }
+                }
+            });
+        }
+        if(countAll == 0){
+            otherSpecialVO.setPercent(BigDecimal.ZERO);
+            otherSpecialVO1.setPercent(BigDecimal.ZERO);
+        }else{
+            otherSpecialVO.setPercent(BigDecimal.valueOf(otherSpecialVO.getSum()*100d/countAll).setScale(2,BigDecimal.ROUND_HALF_UP));
+            otherSpecialVO1.setPercent(BigDecimal.valueOf(otherSpecialVO1.getSum()*100d/countAll).setScale(2,BigDecimal.ROUND_HALF_UP));
+        }
+        specialStatisticsVOList.add(otherSpecialVO);
+        otherSpecialVO1.setSum(countAll-otherSpecialVO1.getSum());
+
+        specialStatisticsVOList.add(otherSpecialVO1);
+        indexInfo.setSpecialStatisticsVOList(specialStatisticsVOList);
+        // 查询网格化治理
+        IndexEventGridStatisticsVO eventGridStatisticsVO = new IndexEventGridStatisticsVO();
+        List<IndexGridStatisticsVO> gridStatisticsList = new ArrayList<>();
+        // 查询网格化事件数据
+        IndexGridEventStatisticsVO gridEventStatistics = comMngPopulationDAO.getGridEventStatisticsList(communityId);
+        int count=gridEventStatistics.getEventGGTotal()+gridEventStatistics.getEventBWDTotal()+gridEventStatistics.getEventMDTotal()+gridEventStatistics.getEventTFTotal()+gridEventStatistics.getEventTSTotal()+gridEventStatistics.getEventZATotal();
+        if(count!=0){
+            gridEventStatistics.setGgPercent(BigDecimal.valueOf(gridEventStatistics.getEventGGTotal()*100d/count).setScale(2,BigDecimal.ROUND_HALF_UP));
+            gridEventStatistics.setBwdPercent(BigDecimal.valueOf(gridEventStatistics.getEventBWDTotal()*100d/count).setScale(2,BigDecimal.ROUND_HALF_UP));
+            gridEventStatistics.setMdPercent(BigDecimal.valueOf(gridEventStatistics.getEventMDTotal()*100d/count).setScale(2,BigDecimal.ROUND_HALF_UP));
+            gridEventStatistics.setTfPercent(BigDecimal.valueOf(gridEventStatistics.getEventTFTotal()*100d/count).setScale(2,BigDecimal.ROUND_HALF_UP));
+            gridEventStatistics.setTsPercent(BigDecimal.valueOf(gridEventStatistics.getEventTSTotal()*100d/count).setScale(2,BigDecimal.ROUND_HALF_UP));
+            gridEventStatistics.setZaPercent(BigDecimal.valueOf(gridEventStatistics.getEventZATotal()*100d/count).setScale(2,BigDecimal.ROUND_HALF_UP));
+        }else{
+            gridEventStatistics.setGgPercent(BigDecimal.valueOf(0));
+            gridEventStatistics.setBwdPercent(BigDecimal.valueOf(0));
+            gridEventStatistics.setMdPercent(BigDecimal.valueOf(0));
+            gridEventStatistics.setTfPercent(BigDecimal.valueOf(0));
+            gridEventStatistics.setTsPercent(BigDecimal.valueOf(0));
+            gridEventStatistics.setZaPercent(BigDecimal.valueOf(0));
+        }
+
+        eventGridStatisticsVO.setGridEventStatisticsList(gridEventStatistics);
+        // 查询网格数据
+        List<EventGridDataVO> gridDataList = comMngPopulationDAO.getGridDataListByCommunityId(communityId);
+        if (!gridDataList.isEmpty()) {
+            gridDataList.forEach(gridData -> {
+                if (gridData != null) {
+                    IndexGridStatisticsVO gridStatisticsVO = new IndexGridStatisticsVO();
+                    gridStatisticsVO.setEventData(gridData.getGridName());
+                    // 根据网格id查询网格事件列表
+                    IndexGridEventStatisticsVO gridEventList =
+                            comMngPopulationDAO.getGridEventByGirdId(gridData.getId());
+                    gridStatisticsVO.setGridEventStatisticsList(gridEventList);
+                    gridStatisticsList.add(gridStatisticsVO);
+                }
+            });
+        }
+        eventGridStatisticsVO.setGridStatisticsList(gridStatisticsList);
+        indexInfo.setEventGridStatisticsVO(eventGridStatisticsVO);
+        //首页业务统计
+        IndexDynamic indexDynamic=this.populationDAO.indexDynamic(communityId);
+        indexInfo.setIndexDynamic(indexDynamic);
+        //返攀登记居家隔离数据统计
+        IndexReserve indexReserve=new IndexReserve();
+        IndexBackReserve indexBackReserve=new IndexBackReserve();
+        indexBackReserve.setCount(comActReserveMapper.indexBackReserve(communityId));
+        indexBackReserve.setIndexReserveSubList(comActReserveMapper.indexBackReserveSub(communityId));
+        indexBackReserve.getIndexReserveSubList().forEach(indexReserveSub -> {
+            if(indexReserveSub.getAllCount()!=0){
+                indexReserveSub.setPercent(BigDecimal.valueOf(indexReserveSub.getNum()*100d/indexReserveSub.getAllCount()).setScale(2,BigDecimal.ROUND_HALF_UP));
+            }
+            else {
+                indexReserveSub.setPercent(BigDecimal.valueOf(0d));
+            }
+        });
+        IndexHomeQuarantine indexHomeQuarantine=new IndexHomeQuarantine();
+        indexHomeQuarantine.setCount(comActReserveMapper.indexHomeQuarantine(communityId));
+        indexHomeQuarantine.setIndexReserveSubList(comActReserveMapper.IndexHomeQuarantineSub(communityId));
+        indexHomeQuarantine.getIndexReserveSubList().forEach(indexReserveSub -> {
+            if(indexReserveSub.getAllCount()!=0){
+                indexReserveSub.setPercent(BigDecimal.valueOf(indexReserveSub.getNum()*100d/indexReserveSub.getAllCount()).setScale(2,BigDecimal.ROUND_HALF_UP));
+            }
+            else {
+                indexReserveSub.setPercent(BigDecimal.valueOf(0d));
+            }
+        });
+        indexReserve.setIndexBackReserve(indexBackReserve);
+        indexReserve.setIndexHomeQuarantine(indexHomeQuarantine);
+        indexInfo.setIndexReserve(indexReserve);
+        BigscreenGridsGovernanceStatisticsVO bigscreenGridsGovernanceStatisticsVO=comActEasyPhotoDAO.selectBigscreenGridsGovern(communityId);
+        indexInfo.setBigScreenGridStaticsReturn(setData(bigscreenGridsGovernanceStatisticsVO));
+
+        return R.ok(indexInfo);
+    }
+
+    /**
+     * 历史数据人员类型填充
+     * @param list
+     * @param communityId
+     * @param userId
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R filledPopulationPersonType(List<ComMngPopulationServeExcelVO> list, Long communityId, Long userId) {
+        // 需要修改的人口集合
+        List<ComMngPopulationDO> updateList = new ArrayList<>();
+        log.info("开始处理导入数据");
+        List<ComMngPopulationMistakeExcelVO> mistakes = new ArrayList<>();
+        try {
+            // 查询所有人口数据放入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);
+            });
+            for (ComMngPopulationServeExcelVO vo : list) {
+                // 判断实有人口是否已存在
+                log.info("开始查询实有人口是否已存在");
+                ComMngPopulationDO populationDO = null;
+                String populationKey = vo.getCardNo();
+                if (!isOnly(populationKey, populationMap)) {
+                    // 存在实有人口信息,则更新人员类型
+                    populationDO = (ComMngPopulationDO)populationMap.get(populationKey);
+                    Integer personType = vo.getPersonType();
+                    if (nonNull(personType)) {
+                        populationDO.setPersonType(personType.toString());
+                    }
+                    updateList.add(populationDO);
+                } else {
+                    // 不存在实有人口,返回
+                    ComMngPopulationMistakeExcelVO mistake = new ComMngPopulationMistakeExcelVO();
+                    BeanUtils.copyProperties(vo, mistake);
+                    setMistake(mistake, vo);
+                    mistake.setMistake("人口信息不存在,请下载实有人口模板导入");
+                    mistakes.add(mistake);
+                }
+            }
+        } catch (Exception e) {
+            log.info("出现错误,错误原因:" + e.getMessage());
+        }
+        if (!updateList.isEmpty()) {
+            log.info("执行数据库更新人口");
+            this.baseMapper.updateAll(updateList);
+            log.info("数据库更新人口完成");
+        }
+        if (!mistakes.isEmpty()) {
+            log.info("返回错误数据");
+            return R.fail(mistakes);
+        }
+        return R.ok(mistakes);
+    }
+
+    private void setMistake(ComMngPopulationMistakeExcelVO mvo, ComMngPopulationServeExcelVO vo) {
+        mvo.setPoliticalOutlook(PopulPoliticalOutlookEnum.getCnDescByName(vo.getPoliticalOutlook()));
+        mvo.setIsRent(PopulHouseUseEnum.getCnDescByName(vo.getIsRent()));
+        mvo.setRelation(PopulRelationEnum.getCnDescByName(vo.getRelation()));
+        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.setResidence(PopulRelationEnum.getCnDescByName(vo.getResidence()));
+        mvo.setPersonType(PopulPersonTypeEnum.getCnDescByName(vo.getPersonType()));
+        mvo.setDeath(PopulOutOrLocalEnum.getCnDescByName(vo.getDeath()));
+    }
+
+    private void setDrugMistake(ComMngPopulationDrugMistakeExcelVO mvo, ComMngPopulationDrugExcelVO vo) {
+        // mvo.setPoliticalOutlook(PopulPoliticalOutlookEnum.getCnDescByName(vo.getPoliticalOutlook()));
+        mvo.setIsRent(PopulHouseUseEnum.getCnDescByName(vo.getIsRent()));
+        // mvo.setRelation(PopulRelationEnum.getCnDescByName(vo.getRelation()));
+        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.setResidence(PopulRelationEnum.getCnDescByName(vo.getResidence()));
+        // mvo.setPersonType(PopulPersonTypeEnum.getCnDescByName(vo.getPersonType()));
+        // mvo.setDeath(PopulOutOrLocalEnum.getCnDescByName(vo.getDeath()));
+    }
+
+    private void setCorrectMistake(ComMngPopulationCorrectMistakeExcelVO mvo, ComMngPopulationCorrectExcelVO vo) {
+        // mvo.setPoliticalOutlook(PopulPoliticalOutlookEnum.getCnDescByName(vo.getPoliticalOutlook()));
+        mvo.setIsRent(PopulHouseUseEnum.getCnDescByName(vo.getIsRent()));
+        // mvo.setRelation(PopulRelationEnum.getCnDescByName(vo.getRelation()));
+        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.setIsCorrectGroup(PopulHouseUseEnum.getCnDescByName(vo.getIsCorrectGroup()));
+        mvo.setIsMissControl(PopulHouseUseEnum.getCnDescByName(vo.getIsMissControl()));
+        mvo.setIsAgainCrime(PopulHouseUseEnum.getCnDescByName(vo.getIsAgainCrime()));
+        mvo.setIsOutControl(PopulHouseUseEnum.getCnDescByName(vo.getIsOutControl()));
+        mvo.setIsRecidivist(PopulHouseUseEnum.getCnDescByName(vo.getIsRecidivist()));
+        // mvo.setResidence(PopulRelationEnum.getCnDescByName(vo.getResidence()));
+        // mvo.setPersonType(PopulPersonTypeEnum.getCnDescByName(vo.getPersonType()));
+        // mvo.setDeath(PopulOutOrLocalEnum.getCnDescByName(vo.getDeath()));
+    }
+
+    private void setMajorMistake(ComMngPopulationMajorMistakeExcelVO mvo, ComMngPopulationMajorExcelVO vo) {
+        // mvo.setPoliticalOutlook(PopulPoliticalOutlookEnum.getCnDescByName(vo.getPoliticalOutlook()));
+        mvo.setIsRent(PopulHouseUseEnum.getCnDescByName(vo.getIsRent()));
+//        mvo.setCustodyRelation(PopulRelationEnum.getCnDescByName(vo.getCustodyRelation()));
+        // mvo.setRelation(PopulRelationEnum.getCnDescByName(vo.getRelation()));
+        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.setIsCrime(PopulHouseUseEnum.getCnDescByName(vo.getIsCrime()));
+        // mvo.setResidence(PopulRelationEnum.getCnDescByName(vo.getResidence()));
+        // mvo.setPersonType(PopulPersonTypeEnum.getCnDescByName(vo.getPersonType()));
+        // mvo.setDeath(PopulOutOrLocalEnum.getCnDescByName(vo.getDeath()));
+    }
+
+    private void setCultMistake(ComMngPopulationCultMistakeExcelVO mvo, ComMngPopulationCultExcelVO vo) {
+        mvo.setPoliticalOutlook(PopulPoliticalOutlookEnum.getCnDescByName(vo.getPoliticalOutlook()));
+        mvo.setIsRent(PopulHouseUseEnum.getCnDescByName(vo.getIsRent()));
+        // mvo.setRelation(PopulRelationEnum.getCnDescByName(vo.getRelation()));
+        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.setIsExternalPublicity(PopulHouseUseEnum.getCnDescByName(vo.getIsExternalPublicity()));
+        // mvo.setResidence(PopulRelationEnum.getCnDescByName(vo.getResidence()));
+        // mvo.setPersonType(PopulPersonTypeEnum.getCnDescByName(vo.getPersonType()));
+        // mvo.setDeath(PopulOutOrLocalEnum.getCnDescByName(vo.getDeath()));
+    }
+
+    private void setRehabilitationMistake(ComMngPopulationRehabilitationMistakeExcelVO mvo,
+        ComMngPopulationRehabilitationExcelVO vo) {
+        // mvo.setPoliticalOutlook(PopulPoliticalOutlookEnum.getCnDescByName(vo.getPoliticalOutlook()));
+        mvo.setIsRent(PopulHouseUseEnum.getCnDescByName(vo.getIsRent()));
+//        mvo.setPatientRelation(PopulRelationEnum.getCnDescByName(vo.getPatientRelation()));
+        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.setIsRehab(PopulHouseUseEnum.getCnDescByName(vo.getIsRehab()));
+        mvo.setIsRecidivist(PopulHouseUseEnum.getCnDescByName(vo.getIsRecidivist()));
+        mvo.setIsAgainCrime(PopulHouseUseEnum.getCnDescByName(vo.getIsAgainCrime()));
+        // mvo.setResidence(PopulRelationEnum.getCnDescByName(vo.getResidence()));
+        // mvo.setPersonType(PopulPersonTypeEnum.getCnDescByName(vo.getPersonType()));
+        // mvo.setDeath(PopulOutOrLocalEnum.getCnDescByName(vo.getDeath()));
+    }
+
+    private void setKeyMistake(ComMngPopulationKeyMistakeExcelVO mvo, ComMngPopulationKeyExcelVO vo) {
+        // mvo.setPoliticalOutlook(PopulPoliticalOutlookEnum.getCnDescByName(vo.getPoliticalOutlook()));
+        mvo.setIsRent(PopulHouseUseEnum.getCnDescByName(vo.getIsRent()));
+        // mvo.setPatientRelation(PopulRelationEnum.getCnDescByName(vo.getPatientRelation()));
+        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.setIsRehab(PopulHouseUseEnum.getCnDescByName(vo.getIsRehab()));
+        // mvo.setResidence(PopulRelationEnum.getCnDescByName(vo.getResidence()));
+        // mvo.setPersonType(PopulPersonTypeEnum.getCnDescByName(vo.getPersonType()));
+        // mvo.setDeath(PopulOutOrLocalEnum.getCnDescByName(vo.getDeath()));
+    }
+
+    private void setSentenceMistake(ComMngPopulationSentenceMistakeExcelVO mvo, ComMngPopulationSentenceExcelVO vo) {
+        // mvo.setPoliticalOutlook(PopulPoliticalOutlookEnum.getCnDescByName(vo.getPoliticalOutlook()));
+        mvo.setIsRent(PopulHouseUseEnum.getCnDescByName(vo.getIsRent()));
+        // mvo.setPatientRelation(PopulRelationEnum.getCnDescByName(vo.getPatientRelation()));
+        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.setIsRehab(PopulHouseUseEnum.getCnDescByName(vo.getIsRehab()));
+        // mvo.setResidence(PopulRelationEnum.getCnDescByName(vo.getResidence()));
+        // mvo.setPersonType(PopulPersonTypeEnum.getCnDescByName(vo.getPersonType()));
+        // mvo.setDeath(PopulOutOrLocalEnum.getCnDescByName(vo.getDeath()));
+    }
+
+    private void setVeteransMistake(ComMngPopulationVeteransMistakeExcelVO mvo, ComMngPopulationVeteransExcelVO vo) {
+//        mvo.setRegiterNature(PopulRegiterNatureEnum.getCnDescByName(vo.getRegiterNature()));
+        mvo.setPoliticalOutlook(PopulPoliticalOutlookEnum.getCnDescByName(vo.getPoliticalOutlook()));
+        mvo.setIsRent(PopulHouseUseEnum.getCnDescByName(vo.getIsRent()));
+        // mvo.setPatientRelation(PopulRelationEnum.getCnDescByName(vo.getPatientRelation()));
+        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.setIsVeteransTraining(PopulHouseUseEnum.getCnDescByName(vo.getIsVeteransTraining()));
+        mvo.setIsBusiness(PopulHouseUseEnum.getCnDescByName(vo.getIsBusiness()));
+        // mvo.setIsRehab(PopulHouseUseEnum.getCnDescByName(vo.getIsRehab()));
+        // mvo.setResidence(PopulRelationEnum.getCnDescByName(vo.getResidence()));
+        // mvo.setPersonType(PopulPersonTypeEnum.getCnDescByName(vo.getPersonType()));
+        // mvo.setDeath(PopulOutOrLocalEnum.getCnDescByName(vo.getDeath()));
+    }
+
+    private void setDisabilityMistake(ComMngPopulationDisabilityMistakeExcelVO mvo,
+        ComMngPopulationDisabilityExcelVO vo) {
+        // mvo.setRegiterNature(PopulRegiterNatureEnum.getCnDescByName(vo.getRegiterNature()));
+        // mvo.setPoliticalOutlook(PopulPoliticalOutlookEnum.getCnDescByName(vo.getPoliticalOutlook()));
+        mvo.setIsRent(PopulHouseUseEnum.getCnDescByName(vo.getIsRent()));
+        // mvo.setPatientRelation(PopulRelationEnum.getCnDescByName(vo.getPatientRelation()));
+        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.setIsVeteransTraining(PopulHouseUseEnum.getCnDescByName(vo.getIsVeteransTraining()));
+        // mvo.setIsBusiness(PopulHouseUseEnum.getCnDescByName(vo.getIsBusiness()));
+        // mvo.setIsRehab(PopulHouseUseEnum.getCnDescByName(vo.getIsRehab()));
+        // mvo.setResidence(PopulRelationEnum.getCnDescByName(vo.getResidence()));
+        // mvo.setPersonType(PopulPersonTypeEnum.getCnDescByName(vo.getPersonType()));
+        // mvo.setDeath(PopulOutOrLocalEnum.getCnDescByName(vo.getDeath()));
+    }
+
+    private void setLowSecurityMistake(ComMngPopulationLowSecurityMistakeExcelVO mvo,
+        ComMngPopulationLowSecurityExcelVO vo) {
+        // mvo.setRegiterNature(PopulRegiterNatureEnum.getCnDescByName(vo.getRegiterNature()));
+        // mvo.setPoliticalOutlook(PopulPoliticalOutlookEnum.getCnDescByName(vo.getPoliticalOutlook()));
+        mvo.setIsRent(PopulHouseUseEnum.getCnDescByName(vo.getIsRent()));
+        // mvo.setPatientRelation(PopulRelationEnum.getCnDescByName(vo.getPatientRelation()));
+        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.setIsVeteransTraining(PopulHouseUseEnum.getCnDescByName(vo.getIsVeteransTraining()));
+        // mvo.setIsBusiness(PopulHouseUseEnum.getCnDescByName(vo.getIsBusiness()));
+        // mvo.setIsRehab(PopulHouseUseEnum.getCnDescByName(vo.getIsRehab()));
+        // mvo.setResidence(PopulRelationEnum.getCnDescByName(vo.getResidence()));
+        // mvo.setPersonType(PopulPersonTypeEnum.getCnDescByName(vo.getPersonType()));
+        // 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()));
+    }
+
+    /**
+     * 判重方法
+     *
+     * @param key
+     *            主键
+     * @param hashMap
+     *            数据集
+     * @return 存在即为false 不存在则为true
+     */
+    private boolean isOnly(String key, HashMap<String, Object> hashMap) {
+        return ObjectUtils.isEmpty(hashMap.get(key));
+    }
+
+
+    private BigScreenGridStaticsReturn setData(BigscreenGridsGovernanceStatisticsVO bigscreenGridsGovernanceStatisticsVO){
+        List<BigScreenGridStaticsReturn> bigScreenGridStaticsReturnList=new ArrayList<>();
+        BigScreenGridStaticsReturn bigScreenGridStaticsReturn=new BigScreenGridStaticsReturn();
+        bigScreenGridStaticsReturn.setCount(bigscreenGridsGovernanceStatisticsVO.getEventTotal()+bigscreenGridsGovernanceStatisticsVO.getOtherTotal()+bigscreenGridsGovernanceStatisticsVO.getSafety());
+        BigScreenGridStaticsReturn bigScreenGridStaticsReturn1=new BigScreenGridStaticsReturn();
+        bigScreenGridStaticsReturn1.setTitle("突发事件报告");
+        bigScreenGridStaticsReturn1.setNum(bigscreenGridsGovernanceStatisticsVO.getEventTFTotal());
+        if(bigScreenGridStaticsReturn.getCount()>0) {
+            bigScreenGridStaticsReturn1.setPercent(BigDecimal.valueOf(bigscreenGridsGovernanceStatisticsVO.getEventTFTotal() * 100d / bigScreenGridStaticsReturn.getCount()).setScale(2, BigDecimal.ROUND_HALF_UP));
+        }
+        else {
+            bigScreenGridStaticsReturn1.setPercent(BigDecimal.valueOf(0).setScale(2, BigDecimal.ROUND_HALF_UP));
+        }
+        bigScreenGridStaticsReturnList.add(bigScreenGridStaticsReturn1);
+        BigScreenGridStaticsReturn bigScreenGridStaticsReturn2=new BigScreenGridStaticsReturn();
+        bigScreenGridStaticsReturn2.setTitle("特殊人群服务");
+        bigScreenGridStaticsReturn2.setNum(bigscreenGridsGovernanceStatisticsVO.getEventTSTotal());
+        if(bigScreenGridStaticsReturn.getCount()>0) {
+            bigScreenGridStaticsReturn2.setPercent(BigDecimal.valueOf(bigscreenGridsGovernanceStatisticsVO.getEventTSTotal()*100d/bigScreenGridStaticsReturn.getCount()).setScale(2,BigDecimal.ROUND_HALF_UP));
+        }
+        else {
+            bigScreenGridStaticsReturn2.setPercent(BigDecimal.valueOf(0).setScale(2, BigDecimal.ROUND_HALF_UP));
+        }
+        bigScreenGridStaticsReturnList.add(bigScreenGridStaticsReturn2);
+        BigScreenGridStaticsReturn bigScreenGridStaticsReturn3=new BigScreenGridStaticsReturn();
+        bigScreenGridStaticsReturn3.setTitle("治安防控");
+        bigScreenGridStaticsReturn3.setNum(bigscreenGridsGovernanceStatisticsVO.getEventZATotal());
+        if(bigScreenGridStaticsReturn.getCount()>0) {
+            bigScreenGridStaticsReturn3.setPercent(BigDecimal.valueOf(bigscreenGridsGovernanceStatisticsVO.getEventZATotal()*100d/bigScreenGridStaticsReturn.getCount()).setScale(2,BigDecimal.ROUND_HALF_UP));
+        }
+        else {
+            bigScreenGridStaticsReturn3.setPercent(BigDecimal.valueOf(0).setScale(2, BigDecimal.ROUND_HALF_UP));
+        }
+        bigScreenGridStaticsReturnList.add(bigScreenGridStaticsReturn3);
+        BigScreenGridStaticsReturn bigScreenGridStaticsReturn4=new BigScreenGridStaticsReturn();
+        bigScreenGridStaticsReturn4.setTitle("民生服务");
+        bigScreenGridStaticsReturn4.setNum(bigscreenGridsGovernanceStatisticsVO.getEventMSTotal());
+        if(bigScreenGridStaticsReturn.getCount()>0) {
+            bigScreenGridStaticsReturn4.setPercent(BigDecimal.valueOf(bigscreenGridsGovernanceStatisticsVO.getEventMSTotal()*100d/bigScreenGridStaticsReturn.getCount()).setScale(2,BigDecimal.ROUND_HALF_UP));
+        }
+        else {
+            bigScreenGridStaticsReturn4.setPercent(BigDecimal.valueOf(0).setScale(2, BigDecimal.ROUND_HALF_UP));
+        }
+        bigScreenGridStaticsReturnList.add(bigScreenGridStaticsReturn4);
+        BigScreenGridStaticsReturn bigScreenGridStaticsReturn5=new BigScreenGridStaticsReturn();
+        bigScreenGridStaticsReturn5.setTitle("矛盾劝解");
+        bigScreenGridStaticsReturn5.setNum(bigscreenGridsGovernanceStatisticsVO.getEventMDTotal());
+        if(bigScreenGridStaticsReturn.getCount()>0) {
+            bigScreenGridStaticsReturn5.setPercent(BigDecimal.valueOf(bigscreenGridsGovernanceStatisticsVO.getEventMDTotal()*100d/bigScreenGridStaticsReturn.getCount()).setScale(2,BigDecimal.ROUND_HALF_UP));
+        }
+        else {
+            bigScreenGridStaticsReturn5.setPercent(BigDecimal.valueOf(0).setScale(2, BigDecimal.ROUND_HALF_UP));
+        }
+        bigScreenGridStaticsReturnList.add(bigScreenGridStaticsReturn5);
+        BigScreenGridStaticsReturn bigScreenGridStaticsReturn6=new BigScreenGridStaticsReturn();
+        bigScreenGridStaticsReturn6.setTitle("防灾减灾");
+        bigScreenGridStaticsReturn6.setNum(bigscreenGridsGovernanceStatisticsVO.getEventFJTotal());
+        if(bigScreenGridStaticsReturn.getCount()>0) {
+            bigScreenGridStaticsReturn6.setPercent(BigDecimal.valueOf(bigscreenGridsGovernanceStatisticsVO.getEventFJTotal()*100d/bigScreenGridStaticsReturn.getCount()).setScale(2,BigDecimal.ROUND_HALF_UP));
+        }
+        else {
+            bigScreenGridStaticsReturn6.setPercent(BigDecimal.valueOf(0).setScale(2, BigDecimal.ROUND_HALF_UP));
+        }
+        bigScreenGridStaticsReturnList.add(bigScreenGridStaticsReturn6);
+        BigScreenGridStaticsReturn bigScreenGridStaticsReturn7=new BigScreenGridStaticsReturn();
+        bigScreenGridStaticsReturn7.setTitle("政策法规宣传");
+        bigScreenGridStaticsReturn7.setNum(bigscreenGridsGovernanceStatisticsVO.getEventFGTotal());
+        if(bigScreenGridStaticsReturn.getCount()>0) {
+            bigScreenGridStaticsReturn7.setPercent(BigDecimal.valueOf(bigscreenGridsGovernanceStatisticsVO.getEventFGTotal()*100d/bigScreenGridStaticsReturn.getCount()).setScale(2,BigDecimal.ROUND_HALF_UP));
+        }
+        else {
+            bigScreenGridStaticsReturn7.setPercent(BigDecimal.valueOf(0).setScale(2, BigDecimal.ROUND_HALF_UP));
+        }
+        bigScreenGridStaticsReturnList.add(bigScreenGridStaticsReturn7);
+        BigScreenGridStaticsReturn bigScreenGridStaticsReturn8=new BigScreenGridStaticsReturn();
+        bigScreenGridStaticsReturn8.setTitle("安全巡查");
+        bigScreenGridStaticsReturn8.setNum(bigscreenGridsGovernanceStatisticsVO.getSafety());
+        if(bigScreenGridStaticsReturn.getCount()>0) {
+            bigScreenGridStaticsReturn8.setPercent(BigDecimal.valueOf(bigscreenGridsGovernanceStatisticsVO.getSafety()*100d/bigScreenGridStaticsReturn.getCount()).setScale(2,BigDecimal.ROUND_HALF_UP));
+        }
+        else {
+            bigScreenGridStaticsReturn8.setPercent(BigDecimal.valueOf(0).setScale(2, BigDecimal.ROUND_HALF_UP));
+        }
+        bigScreenGridStaticsReturnList.add(bigScreenGridStaticsReturn8);
+        BigScreenGridStaticsReturn bigScreenGridStaticsReturn9=new BigScreenGridStaticsReturn();
+        bigScreenGridStaticsReturn9.setTitle("其他");
+        bigScreenGridStaticsReturn9.setNum(bigscreenGridsGovernanceStatisticsVO.getOtherTotal());
+        if(bigScreenGridStaticsReturn.getCount()>0) {
+            bigScreenGridStaticsReturn9.setPercent(BigDecimal.valueOf(bigscreenGridsGovernanceStatisticsVO.getOtherTotal()*100d/bigScreenGridStaticsReturn.getCount()).setScale(2,BigDecimal.ROUND_HALF_UP));
+        }
+        else {
+            bigScreenGridStaticsReturn9.setPercent(BigDecimal.valueOf(0).setScale(2, BigDecimal.ROUND_HALF_UP));
+        }
+        bigScreenGridStaticsReturnList.add(bigScreenGridStaticsReturn9);
+        bigScreenGridStaticsReturn.setBigScreenGridStaticsReturnList(bigScreenGridStaticsReturnList);
+        return bigScreenGridStaticsReturn;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngProvinceServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngProvinceServiceImpl.java
new file mode 100644
index 0000000..110a540
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngProvinceServiceImpl.java
@@ -0,0 +1,176 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import javax.annotation.Resource;
+
+import com.google.common.collect.Lists;
+import com.panzhihua.common.model.vos.community.*;
+import com.panzhihua.common.model.vos.community.switchs.CommunitySwitchAllAppletsVO;
+import com.panzhihua.common.model.vos.community.switchs.StreetAllAppletsVO;
+import com.panzhihua.service_community.dao.*;
+import com.panzhihua.service_community.model.dos.ComStreetDO;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.model.dos.ComMngCityDO;
+import com.panzhihua.service_community.model.dos.ComMngDistrictDO;
+import com.panzhihua.service_community.model.dos.ComMngProvinceDO;
+import com.panzhihua.service_community.service.ComMngProvinceService;
+
+@Service
+public class ComMngProvinceServiceImpl implements ComMngProvinceService {
+
+    @Resource
+    private ComMngProvinceDAO comMngProvinceDAO;
+
+    @Resource
+    private ComMngCityDAO comMngCityDAO;
+
+    @Resource
+    private ComMngDistrictDAO comMngDistrictDAO;
+
+    @Resource
+    private ComStreetDAO comStreetDAO;
+
+
+    @Resource
+    private ComActDAO comActDAO;
+
+    @Override
+    public R getProvince() {
+        List<ComMngProvinceDO> provinceDOS = comMngProvinceDAO.selectList(new LambdaQueryWrapper<>());
+        List<ComMngProvinceVO> vos = new ArrayList<>();
+        provinceDOS.forEach(p -> {
+            ComMngProvinceVO vo = new ComMngProvinceVO();
+            BeanUtils.copyProperties(p, vo);
+            vos.add(vo);
+        });
+        return R.ok(vos);
+    }
+
+    @Override
+    public R getCityByProvinceCode(Integer provinceAdcode) {
+        List<ComMngCityDO> comMngCityDOS = comMngCityDAO
+            .selectList(new QueryWrapper<ComMngCityDO>().lambda().eq(ComMngCityDO::getProvinceAdcode, provinceAdcode));
+        List<ComMngCityVO> vos = new ArrayList<>();
+        comMngCityDOS.forEach(c -> {
+            ComMngCityVO vo = new ComMngCityVO();
+            BeanUtils.copyProperties(c, vo);
+            vos.add(vo);
+        });
+        return R.ok(vos);
+    }
+
+    @Override
+    public R getDistrictByCityCode(Integer cityAdcode) {
+        List<ComMngDistrictDO> comMngDistrictDOS = comMngDistrictDAO
+            .selectList(new QueryWrapper<ComMngDistrictDO>().lambda().eq(ComMngDistrictDO::getCityAdcode, cityAdcode));
+        List<ComMngDistrictVO> vos = new ArrayList<>();
+        comMngDistrictDOS.forEach(c -> {
+            ComMngDistrictVO vo = new ComMngDistrictVO();
+            BeanUtils.copyProperties(c, vo);
+            vos.add(vo);
+        });
+        return R.ok(vos);
+    }
+
+    @Override
+    public R getCityTreeByProvinceCode(Integer provinceAdcode,String areaCode) {
+        //省份
+        List<ComMngProvinceDO> provinceDOS = comMngProvinceDAO.selectList(
+            new QueryWrapper<ComMngProvinceDO>().lambda().eq(ComMngProvinceDO::getProvinceAdcode, provinceAdcode));
+        //市
+        List<ComMngCityDO> cityDOS = comMngCityDAO.selectList(new QueryWrapper<>());
+
+        List<ComMngDistrictDO> districtDOS = comMngDistrictDAO.selectList(new QueryWrapper<>());
+        List<ComMngAreaVO> vos = new ArrayList<>();
+        provinceDOS.forEach(p -> {
+            ComMngAreaVO pvo = new ComMngAreaVO(p.getProvinceAdcode(), p.getProvinceName());
+            List<ComMngCityDO> citys = cityDOS.stream().filter(
+                city -> city.getProvinceAdcode().equals(p.getProvinceAdcode()) && city.getCityAdcode().equals(510400))
+                .collect(Collectors.toList());
+            citys.forEach(c -> {
+                ComMngAreaVO cityVo = new ComMngAreaVO(c.getCityAdcode(), c.getCityName());
+                BeanUtils.copyProperties(c, cityVo);
+                pvo.getChildren().add(cityVo);
+                List<ComMngDistrictDO> districts =
+                    districtDOS.stream().filter(district -> district.getCityAdcode().equals(c.getCityAdcode()))
+                        .collect(Collectors.toList());
+                districts.forEach(d -> {
+                    ComMngAreaVO districtVo = new ComMngAreaVO(d.getDistrictAdcode(), d.getDistrictName());
+                    BeanUtils.copyProperties(d, districtVo);
+                    cityVo.getChildren().add(districtVo);
+                });
+            });
+            vos.add(pvo);
+        });
+        return R.ok(vos);
+    }
+
+    @Override
+    public R getCityTreeByCode(Integer provinceAdcode, String areaCode,String appId) {
+        //四川省
+        List<ComMngProvinceDO> provinceDOS = comMngProvinceDAO.selectList(
+                new QueryWrapper<ComMngProvinceDO>().lambda().eq(ComMngProvinceDO::getProvinceAdcode, provinceAdcode));
+        List<ComMngCityDO> cityDOS = comMngCityDAO.selectList(new QueryWrapper<>());
+        List<ComMngDistrictDO> districtDOS = comMngDistrictDAO.selectList(new QueryWrapper<>());
+        List<ComMngAreaVO> vos = new ArrayList<>();
+        provinceDOS.forEach(p -> {
+            ComMngAreaVO pvo = new ComMngAreaVO(p.getProvinceAdcode(), p.getProvinceName());
+            List<ComMngCityDO> citys = cityDOS.stream().filter(
+                            city -> city.getProvinceAdcode().equals(p.getProvinceAdcode()) && city.getCityAdcode().equals(510400))
+                    .collect(Collectors.toList());
+            citys.forEach(c -> {
+                ComMngAreaVO cityVo = new ComMngAreaVO(c.getCityAdcode(), c.getCityName());
+                BeanUtils.copyProperties(c, cityVo);
+                pvo.getChildren().add(cityVo);
+                List<ComMngDistrictDO> districts =
+                        districtDOS.stream().filter(district -> district.getCityAdcode().equals(c.getCityAdcode()))
+                                .collect(Collectors.toList());
+                districts.forEach(d -> {
+                    ComMngAreaVO districtVo = new ComMngAreaVO(d.getDistrictAdcode(), d.getDistrictName());
+                    BeanUtils.copyProperties(d, districtVo);
+                    cityVo.getChildren().add(districtVo);
+                    vos.add(districtVo);
+
+                    LambdaQueryWrapper<ComStreetDO> param = new QueryWrapper<ComStreetDO>().lambda();
+                    ComStreetVO comStreetVO=new ComStreetVO();
+                    comStreetVO.setAreaCode(d.getDistrictAdcode());
+                    if (comStreetVO.getAreaCode() != null) {
+                        param.eq(ComStreetDO::getAreaCode, comStreetVO.getAreaCode())
+                                .eq(ComStreetDO::getAppId, appId);
+                    }
+                    List<ComStreetDO> comStreetDOS = comStreetDAO.selectList(param);
+                    comStreetDOS.forEach(dos ->
+                    {
+                        ComMngAreaVO csd = new ComMngAreaVO(0, dos.getName());
+                        BeanUtils.copyProperties(dos, csd);
+                        districtVo.getChildren().add(csd);
+
+                        // 查询街道下社区列表
+                        List<CommunitySwitchAllAppletsVO> communityList = comActDAO.getCommunityListByStreetId(dos.getStreetId());
+
+                        communityList.forEach(commItem ->
+                        {
+                            ComMngAreaVO cssd = new ComMngAreaVO(0, commItem.getName(),commItem.getCommunityId()+"");
+                            BeanUtils.copyProperties(commItem, cssd);
+                            csd.getChildren().add(cssd);
+                        });
+
+
+                    });
+
+
+                });
+            });
+        });
+        return R.ok(vos);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngRealAssetsServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngRealAssetsServiceImpl.java
new file mode 100644
index 0000000..6c1d348
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngRealAssetsServiceImpl.java
@@ -0,0 +1,147 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.RealAssetsCategoryType;
+import com.panzhihua.common.enums.RealAssetsFloorType;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.dtos.community.ExportRealAssetsExcelDTO;
+import com.panzhihua.common.model.dtos.community.PageComMngRealAssetsDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngRealAssetsExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngRealAssetsVO;
+import com.panzhihua.service_community.dao.ComMngRealAssetsDAO;
+import com.panzhihua.service_community.dao.ComMngStructBuildTypeDAO;
+import com.panzhihua.service_community.model.dos.ComMngRealAssetsDO;
+import com.panzhihua.service_community.model.dos.ComMngStructBuildTypeDO;
+import com.panzhihua.service_community.service.ComMngRealAssetsService;
+
+/**
+ * @description: 实有资产
+ * @author: Null
+ * @date: 2021/3/19 11:55
+ */
+@Service
+public class ComMngRealAssetsServiceImpl extends ServiceImpl<ComMngRealAssetsDAO, ComMngRealAssetsDO>
+    implements ComMngRealAssetsService {
+
+    @Resource
+    private ComMngRealAssetsDAO comMngRealAssetsDAO;
+    @Resource
+    private ComMngStructBuildTypeDAO buildTypeDAO;
+
+    @Override
+    public R pageQueryComMngRealAssets(PageComMngRealAssetsDTO pageComMngRealAssetsDTO) {
+        Page page = new Page<>();
+        Long pageNum = pageComMngRealAssetsDTO.getPageNum();
+        Long pageSize = pageComMngRealAssetsDTO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<ComMngRealAssetsVO> iPage = comMngRealAssetsDAO.pageQueryComMngRealAssets(page, pageComMngRealAssetsDTO);
+        return R.ok(iPage);
+    }
+
+    @Override
+    public R saveComMngRealAssets(ComMngRealAssetsVO comMngRealAssetsVO) {
+        if (null != comMngRealAssetsVO.getId() && comMngRealAssetsVO.getId() != 0) {
+            // 修改
+            ComMngRealAssetsDO comMngRealAssetsDO = comMngRealAssetsDAO.selectById(comMngRealAssetsVO.getId());
+            BeanUtils.copyProperties(comMngRealAssetsVO, comMngRealAssetsDO);
+            int update = comMngRealAssetsDAO.updateById(comMngRealAssetsDO);
+            if (update > 0) {
+                return R.ok();
+            }
+        } else {
+            ComMngRealAssetsDO comMngRealAssetsDO = new ComMngRealAssetsDO();
+            BeanUtils.copyProperties(comMngRealAssetsVO, comMngRealAssetsDO);
+            int insert = comMngRealAssetsDAO.insert(comMngRealAssetsDO);
+            if (insert > 0) {
+                return R.ok();
+            }
+        }
+
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R deleteComMngRealAssets(Long id) {
+        ComMngRealAssetsDO comMngRealAssetsDO = comMngRealAssetsDAO.selectById(id);
+        if (null == comMngRealAssetsDO) {
+            return R.fail("该资产不存在");
+        }
+        int delete = comMngRealAssetsDAO.deleteById(id);
+        if (delete > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    @Override
+    public R detailComMngRealAssets(Long id) {
+        ComMngRealAssetsDO comMngRealAssetsDO = comMngRealAssetsDAO.selectById(id);
+        if (null == comMngRealAssetsDO) {
+            return R.fail("该资产不存在");
+        }
+        ComMngRealAssetsVO comMngRealAssetsVO = new ComMngRealAssetsVO();
+        BeanUtils.copyProperties(comMngRealAssetsDO, comMngRealAssetsVO);
+        return R.ok(comMngRealAssetsVO);
+    }
+
+    @Override
+    public R listSaveMngRealAssetsExcelVO(List<ComMngRealAssetsExcelVO> list, Long communityId) {
+        List<ComMngRealAssetsDO> comMngRealAssetsDOS = new ArrayList<>();
+        List<ComMngStructBuildTypeDO> buildTypeDOS = buildTypeDAO.selectList(new LambdaQueryWrapper<>());
+        list.forEach(l -> {
+            ComMngStructBuildTypeDO buildTypeDO = buildTypeDOS.stream()
+                .filter(buildType -> buildType.getName().equals(l.getBuildTypeName())).findFirst().orElse(null);
+            if (buildTypeDO == null) {
+                throw new ServiceException("不存在类型建筑类型:" + l.getBuildTypeName());
+            }
+            ComMngRealAssetsDO comMngRealAssetsDO = new ComMngRealAssetsDO();
+            comMngRealAssetsDO.setBuildTypeId(buildTypeDO.getId());
+            BeanUtils.copyProperties(l, comMngRealAssetsDO);
+            comMngRealAssetsDO.setCommunityId(communityId);
+            if (l.getFloorType().equals(RealAssetsFloorType.HIGN.getInfo())) {
+                comMngRealAssetsDO.setFloorType(RealAssetsFloorType.HIGN.getCode());
+            } else if (l.getFloorType().equals(RealAssetsFloorType.CENTRE.getInfo())) {
+                comMngRealAssetsDO.setFloorType(RealAssetsFloorType.CENTRE.getCode());
+            } else if (l.getFloorType().equals(RealAssetsFloorType.LOW.getInfo())) {
+                comMngRealAssetsDO.setFloorType(RealAssetsFloorType.LOW.getCode());
+            }
+            if (l.getCategory().equals(RealAssetsCategoryType.PUBLIC.getInfo())) {
+                comMngRealAssetsDO.setCategory(RealAssetsCategoryType.PUBLIC.getCode());
+            }
+            if (l.getCategory().equals(RealAssetsCategoryType.BUILD.getInfo())) {
+                comMngRealAssetsDO.setCategory(RealAssetsCategoryType.BUILD.getCode());
+            }
+            comMngRealAssetsDOS.add(comMngRealAssetsDO);
+        });
+        boolean batch = this.saveBatch(comMngRealAssetsDOS);
+        if (batch) {
+            return R.ok();
+        }
+        return R.fail("请检查数据是否重复,格合是否正确");
+    }
+
+    @Override
+    public R exportRealAssetsExcel(ExportRealAssetsExcelDTO exportRealAssetsExcelDTO) {
+        List<ComMngRealAssetsExcelVO> list = comMngRealAssetsDAO.exportRealAssetsExcel(exportRealAssetsExcelDTO);
+        return R.ok(list);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngRealCompanyServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngRealCompanyServiceImpl.java
new file mode 100644
index 0000000..0cb1c6d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngRealCompanyServiceImpl.java
@@ -0,0 +1,161 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+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.model.dtos.community.ComMngRealCompanyBelongsDTO;
+import com.panzhihua.common.model.dtos.community.ExportRealCompanyExcelDTO;
+import com.panzhihua.common.model.dtos.community.PageComMngRealCompanyDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngRealCompanyBelongsVO;
+import com.panzhihua.common.model.vos.community.ComMngRealCompanyExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngRealCompanyVO;
+import com.panzhihua.service_community.dao.ComMngRealCompanyDAO;
+import com.panzhihua.service_community.model.dos.ComMngRealCompanyDO;
+import com.panzhihua.service_community.service.ComMngRealCompanyService;
+
+/**
+ * @description: 实有单位
+ * @author: Null
+ * @date: 2021/3/19 11:55
+ */
+@Service
+public class ComMngRealCompanyServiceImpl extends ServiceImpl<ComMngRealCompanyDAO, ComMngRealCompanyDO>
+    implements ComMngRealCompanyService {
+
+    @Resource
+    private ComMngRealCompanyDAO comMngRealCompanyDAO;
+
+    @Override
+    public R pageQueryComMngRealCompany(PageComMngRealCompanyDTO pageComMngRealCompanyDTO) {
+        Page page = new Page<>();
+        Long pageNum = pageComMngRealCompanyDTO.getPageNum();
+        Long pageSize = pageComMngRealCompanyDTO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<ComMngRealCompanyVO> iPage =
+            comMngRealCompanyDAO.pageQueryComMngRealCompany(page, pageComMngRealCompanyDTO);
+        return R.ok(iPage);
+    }
+
+    @Override
+    public R saveComMngRealCompany(ComMngRealCompanyVO comMngRealCompanyVO) {
+        if (null != comMngRealCompanyVO.getId() && comMngRealCompanyVO.getId() != 0) {
+            // 修改
+            ComMngRealCompanyDO comMngRealCompanyDO = comMngRealCompanyDAO.selectById(comMngRealCompanyVO.getId());
+            if (null == comMngRealCompanyDO) {
+                return R.fail("该单位不存在");
+            }
+            ComMngRealCompanyDO checkCreditCode = comMngRealCompanyDAO.selectOne(new QueryWrapper<ComMngRealCompanyDO>()
+                .lambda().eq(ComMngRealCompanyDO::getCreditCode, comMngRealCompanyVO.getCreditCode()));
+            if (null != checkCreditCode && comMngRealCompanyDO.getId() != checkCreditCode.getId()) {
+                return R.fail("该单位已存在,信用代码重复");
+            }
+
+            BeanUtils.copyProperties(comMngRealCompanyVO, comMngRealCompanyDO);
+            int update = comMngRealCompanyDAO.updateById(comMngRealCompanyDO);
+            if (update > 0) {
+                return R.ok();
+            }
+        } else {
+            // 新增
+            Integer count = comMngRealCompanyDAO.selectCount(new QueryWrapper<ComMngRealCompanyDO>().lambda()
+                .eq(ComMngRealCompanyDO::getCreditCode, comMngRealCompanyVO.getCreditCode()));
+            if (count > 0) {
+                return R.fail("该单位已存在,信用代码重复");
+            }
+            ComMngRealCompanyDO comMngRealCompanyDO = new ComMngRealCompanyDO();
+            BeanUtils.copyProperties(comMngRealCompanyVO, comMngRealCompanyDO);
+            int insert = comMngRealCompanyDAO.insert(comMngRealCompanyDO);
+            if (insert > 0) {
+                return R.ok();
+            }
+        }
+
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R deleteComMngRealCompany(Long id) {
+        ComMngRealCompanyDO comMngRealCompanyDO = comMngRealCompanyDAO.selectById(id);
+        if (null == comMngRealCompanyDO) {
+            return R.fail("该单位不存在");
+        }
+        int delete = comMngRealCompanyDAO.deleteById(id);
+        if (delete > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    @Override
+    public R detailComMngRealCompany(Long id) {
+        ComMngRealCompanyDO comMngRealCompanyDO = comMngRealCompanyDAO.selectById(id);
+        if (null == comMngRealCompanyDO) {
+            return R.fail("该单位不存在");
+        }
+        ComMngRealCompanyVO comMngRealCompanyVO = new ComMngRealCompanyVO();
+        BeanUtils.copyProperties(comMngRealCompanyDO, comMngRealCompanyVO);
+        return R.ok(comMngRealCompanyVO);
+    }
+
+    @Override
+    public R listSaveMngRealCompanyExcelVO(List<ComMngRealCompanyExcelVO> list, Long communityId) {
+        List<ComMngRealCompanyDO> dbComMngRealCompany =
+            comMngRealCompanyDAO.selectList(new QueryWrapper<ComMngRealCompanyDO>().lambda());
+        List<ComMngRealCompanyDO> comMngRealCompanyDOS = new ArrayList<>();
+        list.forEach(l -> {
+            ComMngRealCompanyDO realCompany = dbComMngRealCompany.stream()
+                .filter(db -> db.getCreditCode().equals(l.getCreditCode())).findFirst().orElse(null);
+            if (realCompany == null) {
+                ComMngRealCompanyDO comMngRealCompanyDO = new ComMngRealCompanyDO();
+                BeanUtils.copyProperties(l, comMngRealCompanyDO);
+                comMngRealCompanyDO.setCommunityId(communityId);
+                comMngRealCompanyDOS.add(comMngRealCompanyDO);
+            } else {
+                BeanUtils.copyProperties(l, realCompany);
+                realCompany.setCommunityId(communityId);
+                comMngRealCompanyDOS.add(realCompany);
+            }
+        });
+        boolean batch = this.saveOrUpdateBatch(comMngRealCompanyDOS);
+        if (batch) {
+            return R.ok();
+        }
+        return R.fail("请检查格式是否正确");
+    }
+
+    @Override
+    public R exportRealCompanyExcel(ExportRealCompanyExcelDTO exportRealCompanyExcelDTO) {
+        List<ComMngRealCompanyExcelVO> list = comMngRealCompanyDAO.exportRealCompanyExcel(exportRealCompanyExcelDTO);
+        return R.ok(list);
+    }
+
+    @Override
+    public R belongsComMngRealCompany(ComMngRealCompanyBelongsDTO comMngRealCompanyBelongsDTO) {
+        ComMngRealCompanyBelongsVO comMngRealCompanyBelongsVO =
+            comMngRealCompanyDAO.queryComMngRealCompanyBelongs(comMngRealCompanyBelongsDTO);
+        return R.ok(comMngRealCompanyBelongsVO);
+    }
+
+    @Override
+    public R getComMngRealCompanyTotalByAdmin(Long communityId) {
+        return R.ok(this.baseMapper.getComMngRealCompanyTotalByAdmin(communityId));
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngStructAreaDistrictServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngStructAreaDistrictServiceImpl.java
new file mode 100644
index 0000000..16d33d7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngStructAreaDistrictServiceImpl.java
@@ -0,0 +1,71 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngStructAreaCityVO;
+import com.panzhihua.common.model.vos.community.ComMngStructAreaDistrictVO;
+import com.panzhihua.common.model.vos.community.ComMngStructAreaProvinceVO;
+import com.panzhihua.service_community.dao.ComMngStructAreaDistrictDAO;
+import com.panzhihua.service_community.model.dos.ComMngStructAreaDistrictDO;
+import com.panzhihua.service_community.service.ComMngStructAreaDistrictService;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 地址
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-27 15:02
+ **/
+@Service
+public class ComMngStructAreaDistrictServiceImpl implements ComMngStructAreaDistrictService {
+    @Resource
+    private ComMngStructAreaDistrictDAO comMngStructAreaDistrictDAO;
+
+    /**
+     * 查询城市下属所有地区列表
+     *
+     * @param cityAdcode
+     *            城市地址编码
+     * @return 地区列表
+     */
+    @Override
+    public R listAreaDistrict(Long cityAdcode) {
+        List<ComMngStructAreaProvinceVO> comMngStructAreaProvinceVOS = new ArrayList<>();
+        ComMngStructAreaProvinceVO comMngStructAreaProvinceVO = new ComMngStructAreaProvinceVO();
+        comMngStructAreaProvinceVO.setId(23L);
+        comMngStructAreaProvinceVO.setProvinceAdcode(510000);
+        comMngStructAreaProvinceVO.setProvinceName("四川省");
+        List<ComMngStructAreaCityVO> comMngStructAreaCityVOS = new ArrayList<>();
+        ComMngStructAreaCityVO comMngStructAreaCityVO = new ComMngStructAreaCityVO();
+        comMngStructAreaCityVO.setCityAdcode(510400);
+        comMngStructAreaCityVO.setCityName("攀枝花市");
+        comMngStructAreaCityVO.setId(256L);
+        comMngStructAreaCityVO.setProvinceAdcode(510000);
+        comMngStructAreaCityVO.setProvinceId(23L);
+        List<ComMngStructAreaDistrictDO> comMngStructAreaDistrictDOS =
+            comMngStructAreaDistrictDAO.selectList(new QueryWrapper<ComMngStructAreaDistrictDO>().lambda()
+                .eq(ComMngStructAreaDistrictDO::getCityAdcode, cityAdcode));
+        List<ComMngStructAreaDistrictVO> comMngStructAreaDistrictVOS = new ArrayList<>();
+        if (!ObjectUtils.isEmpty(comMngStructAreaDistrictDOS)) {
+            comMngStructAreaDistrictDOS.forEach(comMngStructAreaDistrictDO -> {
+                ComMngStructAreaDistrictVO comMngStructAreaDistrictVO = new ComMngStructAreaDistrictVO();
+                BeanUtils.copyProperties(comMngStructAreaDistrictDO, comMngStructAreaDistrictVO);
+                comMngStructAreaDistrictVOS.add(comMngStructAreaDistrictVO);
+            });
+        }
+        comMngStructAreaCityVO.setComMngStructAreaDistrictVOS(comMngStructAreaDistrictVOS);
+        comMngStructAreaCityVOS.add(comMngStructAreaCityVO);
+        comMngStructAreaProvinceVO.setComMngStructAreaCityVOS(comMngStructAreaCityVOS);
+        comMngStructAreaProvinceVOS.add(comMngStructAreaProvinceVO);
+        return R.ok(comMngStructAreaDistrictVOS);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngStructAreaServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngStructAreaServiceImpl.java
new file mode 100644
index 0000000..62df433
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngStructAreaServiceImpl.java
@@ -0,0 +1,254 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
+
+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.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngStructAreaVO;
+import com.panzhihua.service_community.dao.ComMngStructAreaDAO;
+import com.panzhihua.service_community.model.dos.ComMngStructAreaDO;
+import com.panzhihua.service_community.service.ComMngStructAreaService;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 小区
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-15 15:48
+ **/
+@Service
+public class ComMngStructAreaServiceImpl implements ComMngStructAreaService {
+    @Resource
+    private ComMngStructAreaDAO comMngStructAreaDAO;
+
+    /**
+     * 新增小区
+     *
+     * @param comMngStructAreaVO
+     *            小区信息
+     * @return 新增结果
+     */
+    @Override
+    public R addArea(ComMngStructAreaVO comMngStructAreaVO) {
+        ComMngStructAreaDO comMngStructAreaDO = new ComMngStructAreaDO();
+        BeanUtils.copyProperties(comMngStructAreaVO, comMngStructAreaDO);
+        long areaCode = 510000510400000001l;// 攀枝花区域地址编码+000001
+        ComMngStructAreaDO comMngStructAreaDO1 = comMngStructAreaDAO.selectOne(new QueryWrapper<ComMngStructAreaDO>()
+            .lambda().orderByDesc(ComMngStructAreaDO::getAreaCode).last(" limit 1 "));
+        if (!ObjectUtils.isEmpty(comMngStructAreaDO1)) {
+            areaCode = Long.valueOf(comMngStructAreaDO1.getAreaCode()) + 1;
+        }
+        comMngStructAreaDO.setAreaCode(areaCode + "");
+        int insert = 0;
+        try {
+            insert = comMngStructAreaDAO.insert(comMngStructAreaDO);
+        } catch (Exception e) {
+            if (e.getMessage().contains("unique_address_detail")) {
+                return R.fail("小区地址已经存在");
+            }
+        }
+        if (insert > 0) {
+            return R.ok(areaCode);
+        }
+        return R.fail();
+    }
+
+    /**
+     * 分页查询小区
+     *
+     * @param comMngStructAreaVO
+     *            查询参数
+     * @return 分页结果
+     */
+    @Override
+    public R pageArea(ComMngStructAreaVO comMngStructAreaVO) {
+        Page page = new Page<>();
+        Long pageNum = comMngStructAreaVO.getPageNum();
+        Long pageSize = comMngStructAreaVO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<ComMngStructAreaVO> iPage = comMngStructAreaDAO.pageArea(page, comMngStructAreaVO);
+        return R.ok(iPage);
+    }
+
+    /**
+     * 编辑小区
+     *
+     * @param comMngStructAreaVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @Override
+    public R putArea(ComMngStructAreaVO comMngStructAreaVO) {
+        ComMngStructAreaDO comMngStructAreaDO = new ComMngStructAreaDO();
+        BeanUtils.copyProperties(comMngStructAreaVO, comMngStructAreaDO);
+        int update = comMngStructAreaDAO.update(comMngStructAreaDO, new UpdateWrapper<ComMngStructAreaDO>().lambda()
+            .eq(ComMngStructAreaDO::getAreaCode, comMngStructAreaVO.getAreaCode()));
+        if (update > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 删除小区
+     *
+     * @param comMngStructAreaVO
+     *            地址编码
+     * @return 删除结果
+     */
+    @Override
+    public R deleteArea(ComMngStructAreaVO comMngStructAreaVO) {
+        int delete = comMngStructAreaDAO.delete(new QueryWrapper<ComMngStructAreaDO>().lambda()
+            .eq(ComMngStructAreaDO::getAreaCode, comMngStructAreaVO.getAreaCode()));
+        if (delete > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 查询小区信息
+     *
+     * @param areaCode
+     *            小区地址编码
+     * @return 小区信息
+     */
+    @Override
+    public R selectAreaByAreaCode(String areaCode) {
+        ComMngStructAreaDO comMngStructAreaDO = comMngStructAreaDAO
+            .selectOne(new QueryWrapper<ComMngStructAreaDO>().lambda().eq(ComMngStructAreaDO::getAreaCode, areaCode));
+        if (ObjectUtils.isEmpty(comMngStructAreaDO)) {
+            return R.fail();
+        }
+        return R.ok(comMngStructAreaDO);
+    }
+
+    /**
+     * 获取小区的地址编码
+     *
+     * @param areaId
+     *            小区id
+     * @return 小区地址编码
+     */
+    @Override
+    public R selectAreaById(Long areaId) {
+        ComMngStructAreaDO comMngStructAreaDO = comMngStructAreaDAO.selectById(areaId);
+        if (ObjectUtils.isEmpty(comMngStructAreaDO)) {
+            return R.fail("小区不存在");
+        }
+        return R.ok(comMngStructAreaDO.getAreaCode());
+    }
+
+    /**
+     * 查询小区
+     *
+     * @param communityId
+     *            社区id
+     * @return 小区集合
+     */
+    @Override
+    public R listArea(Long communityId) {
+        List<ComMngStructAreaVO> comMngStructAreaVOS = new ArrayList<>();
+        List<ComMngStructAreaDO> comMngStructAreaDOS = comMngStructAreaDAO.selectList(
+            new QueryWrapper<ComMngStructAreaDO>().lambda().eq(ComMngStructAreaDO::getCommunityId, communityId));
+        if (!ObjectUtils.isEmpty(comMngStructAreaDOS)) {
+            comMngStructAreaDOS.forEach(comMngStructAreaDO -> {
+                ComMngStructAreaVO comMngStructAreaVO = new ComMngStructAreaVO();
+                BeanUtils.copyProperties(comMngStructAreaDO, comMngStructAreaVO);
+                comMngStructAreaVOS.add(comMngStructAreaVO);
+            });
+
+        }
+        return R.ok(comMngStructAreaVOS);
+    }
+
+    /**
+     * 小区详情
+     *
+     * @param areaId
+     *            小区id
+     * @return 小区信息
+     */
+    @Override
+    public R detailArea(Long areaId) {
+        ComMngStructAreaDO comMngStructAreaDO = comMngStructAreaDAO.selectById(areaId);
+        if (ObjectUtils.isEmpty(comMngStructAreaDO)) {
+            return R.fail("小区不存在");
+        }
+        ComMngStructAreaVO comMngStructAreaVO = new ComMngStructAreaVO();
+        BeanUtils.copyProperties(comMngStructAreaDO, comMngStructAreaVO);
+        return R.ok(comMngStructAreaVO);
+    }
+
+    /**
+     * 选择导入的小区
+     *
+     * @param param
+     *            小区名字 模糊查询
+     * @param communityId
+     *            社区id
+     * @return 小区集合 ComMngStructAreaVO
+     */
+    @Override
+    public R listAreas(String param, Long communityId) {
+        List<ComMngStructAreaVO> comMngStructAreaVOS = new ArrayList<>();
+        comMngStructAreaVOS = comMngStructAreaDAO.listAreas(param, communityId);
+        if (!ObjectUtils.isEmpty(comMngStructAreaVOS)) {
+            comMngStructAreaVOS.forEach(comMngStructAreaVO -> {
+                String roleConnector = comMngStructAreaVO.getRoleConnector();
+                String roleFloor = comMngStructAreaVO.getRoleFloor();
+                String roleDoor = comMngStructAreaVO.getRoleDoor();
+                String doorNum = "1-1-1-" + roleFloor + roleConnector + roleDoor;
+                if (!ObjectUtils.isEmpty(roleFloor)) {
+                    comMngStructAreaVO.setDoorNum(doorNum);
+                }
+            });
+        }
+        return R.ok(comMngStructAreaVOS);
+    }
+
+    /**
+     * 检查小区是否已经批量设置过房屋并且返回小区房屋门号规则
+     *
+     * @param id
+     *            小区id
+     * @return ComMngStructAreaVO
+     */
+    @Override
+    public R checkAreaHouse(Long id) {
+        ComMngStructAreaDO comMngStructAreaDO = comMngStructAreaDAO.selectById(id);
+        if (null == comMngStructAreaDO) {
+            return R.fail("小区不存在");
+        }
+        String roleFloor = comMngStructAreaDO.getRoleFloor();
+        String roleDoor = comMngStructAreaDO.getRoleDoor();
+        String areaCode = comMngStructAreaDO.getAreaCode();
+        if (ObjectUtils.isEmpty(roleDoor) || ObjectUtils.isEmpty(roleFloor)) {
+            return R.fail("小区未批量设置房屋,请先去社区后台配置");
+        }
+        Integer num = comMngStructAreaDAO.selectCountHouseByParentHouseCode(areaCode);
+        if (num.intValue() == 0) {
+            return R.fail("小区未批量设置房屋,请先去社区后台配置");
+        }
+        ComMngStructAreaVO comMngStructAreaVO = new ComMngStructAreaVO();
+        BeanUtils.copyProperties(comMngStructAreaDO, comMngStructAreaVO);
+        return R.ok(comMngStructAreaVO);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngStructHouseServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngStructHouseServiceImpl.java
new file mode 100644
index 0000000..1b8b4cb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngStructHouseServiceImpl.java
@@ -0,0 +1,546 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+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.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.community.ExcelHouseDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.BatchhouseVO;
+import com.panzhihua.common.model.vos.community.ComMngStructAreaVO;
+import com.panzhihua.common.model.vos.community.ComMngStructHouseVO;
+import com.panzhihua.service_community.dao.ComMngStructAreaDAO;
+import com.panzhihua.service_community.dao.ComMngStructHouseDAO;
+import com.panzhihua.service_community.dao.ComMngStructHouseUserDAO;
+import com.panzhihua.service_community.model.dos.ComMngStructAreaDO;
+import com.panzhihua.service_community.model.dos.ComMngStructHouseDO;
+import com.panzhihua.service_community.model.dos.ComMngStructHouseUserDO;
+import com.panzhihua.service_community.service.ComMngStructHouseService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 房屋
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-15 15:07
+ **/
+@Slf4j
+@Service
+public class ComMngStructHouseServiceImpl extends ServiceImpl<ComMngStructHouseDAO, ComMngStructHouseDO>
+    implements ComMngStructHouseService {
+    @Resource
+    private ComMngStructHouseDAO comMngStructHouseDAO;
+    @Resource
+    private ComMngStructHouseUserDAO comMngStructHouseUserDAO;
+    @Resource
+    private ComMngStructAreaDAO comMngStructAreaDAO;
+
+    /**
+     * 房屋信息
+     *
+     * @param userId
+     *            用户id
+     * @return 房屋信息
+     */
+    @Override
+    public R detailHouse(Long userId) {
+        List<ComMngStructHouseVO> comMngStructHouseVOS = new ArrayList<>();
+            List<ComMngStructHouseUserDO> comMngStructHouseUserDOS = comMngStructHouseUserDAO.selectList(
+                new QueryWrapper<ComMngStructHouseUserDO>().lambda().eq(ComMngStructHouseUserDO::getUserId, userId));
+            if (!ObjectUtils.isEmpty(comMngStructHouseUserDOS)) {
+                String areaCode = comMngStructHouseUserDOS.get(0).getAreaCode();
+                ComMngStructHouseDO comMngStructHouseDO1 = comMngStructHouseDAO.selectOne(
+                    new QueryWrapper<ComMngStructHouseDO>().lambda().eq(ComMngStructHouseDO::getHouseCode, areaCode));
+                String houseName = comMngStructHouseDO1.getHouseName();
+                comMngStructHouseUserDOS.forEach(comMngStructHouseUserDO -> {
+                    ComMngStructHouseDO comMngStructHouseDO =
+                        comMngStructHouseDAO.selectOne(new QueryWrapper<ComMngStructHouseDO>().lambda()
+                            .eq(ComMngStructHouseDO::getHouseCode, comMngStructHouseUserDO.getHouseCode()));
+                    ComMngStructHouseVO comMngStructHouseVO = new ComMngStructHouseVO();
+                    BeanUtils.copyProperties(comMngStructHouseDO, comMngStructHouseVO);
+                    comMngStructHouseVO.setIdentity(comMngStructHouseUserDO.getIdentity());
+                    comMngStructHouseVOS.add(comMngStructHouseVO);
+                });
+                return R.ok(comMngStructHouseVOS);
+            }
+        return R.ok(comMngStructHouseVOS);
+    }
+
+    /**
+     * 小区批量建房
+     *
+     * @param batchhouseVO
+     *            建房参数
+     * @return 建房结果
+     */
+    @Override
+    public R batchHouse(BatchhouseVO batchhouseVO) {
+        String areaCode = batchhouseVO.getAreaCode();
+        Integer integer = comMngStructHouseDAO.selectCount(
+            new QueryWrapper<ComMngStructHouseDO>().lambda().eq(ComMngStructHouseDO::getParentCode, areaCode));
+        if (null != integer && integer.intValue() > 0) {
+            return R.fail("小区房屋已经存在,删除后批量创建或者使用编辑功能单独创建");
+        }
+        this.batchSaveHouse(batchhouseVO);
+        return R.ok();
+    }
+
+    /**
+     * 批量添加地址功能提取出一个公共方法
+     * 
+     * @param batchhouseVO
+     *            批量添加小区、同级(楼栋、单元、楼层、房间)
+     */
+    @Transactional(rollbackFor = Exception.class)
+    void batchSaveHouse(BatchhouseVO batchhouseVO) {
+        String areaCode = batchhouseVO.getAreaCode();
+        ComMngStructHouseDO comMngStructHouseDO = comMngStructHouseDAO.selectOne(
+            new QueryWrapper<ComMngStructHouseDO>().lambda().eq(ComMngStructHouseDO::getHouseCode, areaCode));
+        String areaName = comMngStructHouseDO.getHouseName();// 小区地址
+        int buildingBegin = batchhouseVO.getBuildingBegin().intValue();
+        int buildingEnd = batchhouseVO.getBuildingEnd().intValue();
+        int unitBegin = batchhouseVO.getUnitBegin().intValue();
+        int unitEnd = batchhouseVO.getUnitEnd().intValue();
+        int floorBegin = batchhouseVO.getFloorBegin().intValue();
+        int floorEnd = batchhouseVO.getFloorEnd().intValue();
+        int doorBegin = batchhouseVO.getDoorBegin().intValue();
+        int doorEnd = batchhouseVO.getDoorEnd().intValue();
+        int isAccumulation = batchhouseVO.getIsAccumulation().intValue();
+        String ruleFloor = batchhouseVO.getRuleFloor();
+        String ruleConnector = batchhouseVO.getRuleConnector();
+        String ruleDoor = batchhouseVO.getRuleDoor();
+        List<ComMngStructHouseDO> comMngStructHouseDOList = new ArrayList<>();
+        long buildCode = 510000;
+        long unitCode = 410000;
+        long floorCode = 310000;
+        long doorCode = 210000;
+        Integer type = batchhouseVO.getType();
+        ComMngStructHouseDO comMngStructHouseDOParent =
+            comMngStructHouseDAO.selectOne(new QueryWrapper<ComMngStructHouseDO>().lambda()
+                .eq(ComMngStructHouseDO::getHouseCode, batchhouseVO.getParentCode()));
+        // 2楼栋 3 单元 4楼层 5门牌号
+        for (int i = buildingBegin; i <= buildingEnd; i++) {// 楼栋
+            ComMngStructHouseDO comMngStructHouseDO1 = new ComMngStructHouseDO();
+            if (buildingBegin == buildingEnd && null != type && type == 3) {
+                comMngStructHouseDO1 = comMngStructHouseDOParent;
+            } else {
+                comMngStructHouseDO1.setHouseName(areaName + i + "栋");
+                comMngStructHouseDO1.setHouseCode(areaCode + (buildCode + i));
+                comMngStructHouseDO1.setParentCode(areaCode);
+                comMngStructHouseDO1.setType(2);
+                comMngStructHouseDOList.add(comMngStructHouseDO1);
+            }
+
+            for (int m = unitBegin; m <= unitEnd; m++) {// 单元
+                ComMngStructHouseDO comMngStructHouseDO2 = new ComMngStructHouseDO();
+                if (unitBegin == unitEnd && null != type && type == 4) {
+                    comMngStructHouseDO2 = comMngStructHouseDOParent;
+                } else {
+                    comMngStructHouseDO2.setType(3);
+                    comMngStructHouseDO2.setParentCode(comMngStructHouseDO1.getHouseCode());
+                    comMngStructHouseDO2.setHouseName(comMngStructHouseDO1.getHouseName() + m + "单元");
+                    comMngStructHouseDO2.setHouseCode(comMngStructHouseDO1.getHouseCode() + (unitCode + m));
+                    comMngStructHouseDOList.add(comMngStructHouseDO2);
+                }
+                int num = 0;// 门牌累加时使用
+
+                for (int k = floorBegin; k <= floorEnd; k++) {// 楼层
+                    ComMngStructHouseDO comMngStructHouseDO3 = new ComMngStructHouseDO();
+                    if (floorBegin == floorEnd && null != type && type == 5) {
+                        comMngStructHouseDO3 = comMngStructHouseDOParent;
+                    } else {
+                        comMngStructHouseDO3.setType(4);
+                        comMngStructHouseDO3.setParentCode(comMngStructHouseDO2.getHouseCode());
+                        comMngStructHouseDO3.setHouseName(comMngStructHouseDO2.getHouseName() + k + "层");
+                        comMngStructHouseDO3.setHouseCode(comMngStructHouseDO2.getHouseCode() + (floorCode + k));
+                        comMngStructHouseDOList.add(comMngStructHouseDO3);
+                    }
+
+                    for (int h = doorBegin; h <= doorEnd; h++) {// 门牌
+                        num++;
+                        ComMngStructHouseDO comMngStructHouseDO4 = new ComMngStructHouseDO();
+                        comMngStructHouseDO4.setType(5);
+                        comMngStructHouseDO4.setParentCode(comMngStructHouseDO3.getHouseCode());
+                        String doorName = "";
+                        String floorName = "";
+                        // 楼层规则
+                        if (ruleFloor.equals("1")) {
+                            floorName = k + "";
+                        } else if (ruleFloor.equals("01")) {
+                            if (k < 10) {
+                                floorName = "0" + k;
+                            } else {
+                                floorName = "" + k;
+                            }
+                        } else {// 001
+                            if (k < 10) {
+                                floorName = "00" + k;
+                            } else if (k < 100) {
+                                floorName = "0" + k;
+                            } else {
+                                floorName = "" + k;
+                            }
+                        }
+                        // 门牌规则
+                        if (ruleDoor.equals("1")) {
+                            if (isAccumulation == 1) {// 累加
+                                doorName = "" + num;
+                            } else {
+                                doorName = "" + h;
+                            }
+                        } else if (ruleDoor.equals("01")) {
+                            if (k < 10) {
+                                if (isAccumulation == 1) {// 累加
+                                    doorName = "0" + num;
+                                } else {
+                                    doorName = "0" + h;
+                                }
+                            } else {
+                                if (isAccumulation == 1) {// 累加
+                                    doorName = "" + num;
+                                } else {
+                                    doorName = "" + h;
+                                }
+                            }
+
+                        } else if (ruleDoor.equals("001")) {
+                            if (k < 10) {
+                                if (isAccumulation == 1) {// 累加
+                                    doorName = "00" + num;
+                                } else {
+                                    doorName = "00" + h;
+                                }
+                            } else if (k < 100) {
+                                if (isAccumulation == 1) {// 累加
+                                    doorName = "0" + num;
+                                } else {
+                                    doorName = "0" + h;
+                                }
+                            } else {
+                                if (isAccumulation == 1) {// 累加
+                                    doorName = "" + num;
+                                } else {
+                                    doorName = "" + h;
+                                }
+                            }
+                        }
+                        comMngStructHouseDO4
+                            .setHouseName(comMngStructHouseDO3.getHouseName() + floorName + ruleConnector + doorName);
+                        comMngStructHouseDO4.setHouseCode(comMngStructHouseDO3.getHouseCode() + (doorCode + num));
+                        comMngStructHouseDO4.setType(5);
+                        comMngStructHouseDO4.setParentCode(comMngStructHouseDO3.getHouseCode());
+                        comMngStructHouseDOList.add(comMngStructHouseDO4);
+                    }
+
+                }
+            }
+        }
+        boolean b = this.saveBatch(comMngStructHouseDOList);
+        if (b) {
+            log.info("batchhouse----楼栋数一共【{}】", buildingEnd - buildingBegin + 1);
+            log.info("batchhouse----单元数一共【{}】", (unitEnd - unitBegin + 1) * (buildingEnd - buildingBegin + 1));
+            log.info("batchhouse----楼层数一共【{}】",
+                (unitEnd - unitBegin + 1) * (buildingEnd - buildingBegin + 1) * (floorEnd - floorBegin + 1));
+            log.info("batchhouse----房间数量一共【{}】", (unitEnd - unitBegin + 1) * (buildingEnd - buildingBegin + 1)
+                * (floorEnd - floorBegin + 1) * (doorEnd - doorBegin + 1));
+            log.info("batchhouse----批量新增房屋地址数量【{}】", comMngStructHouseDOList.size());
+        }
+    }
+
+    /**
+     * 新增小区地址
+     *
+     * @param comMngStructAreaVO
+     *            小区地址
+     */
+    @Override
+    public R addHouseArea(ComMngStructAreaVO comMngStructAreaVO) {
+        ComMngStructHouseDO comMngStructHouseDO = new ComMngStructHouseDO();
+        comMngStructHouseDO.setHouseCode(comMngStructAreaVO.getAreaCode());
+        comMngStructHouseDO.setHouseName(comMngStructAreaVO.getAddressDetail());
+        comMngStructHouseDO.setType(1);
+        comMngStructHouseDO.setParentCode("0");
+        int insert = 0;
+        try {
+            insert = comMngStructHouseDAO.insert(comMngStructHouseDO);
+        } catch (Exception e) {
+            log.error("新增地址错误【{}】", e.getMessage());
+            if (e.getMessage().contains("unique_house_name")) {
+                return R.fail("小区已经存在");
+            }
+        }
+        if (insert > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 先删除小区小面所有房屋、删除用户和小区房屋的绑定关系
+     *
+     * @param comMngStructAreaVO
+     *            小区地址编码
+     * @return 删除结果
+     */
+    @Override
+    public R batchDeleteHouse(ComMngStructAreaVO comMngStructAreaVO) {
+        String areaCode = comMngStructAreaVO.getAreaCode();
+        try {
+            int i = comMngStructHouseDAO.batchDeleteHouse(areaCode);// 调用存储过程删除
+            log.info("调用存储工程共删除地址数量【{}】", i);
+        } catch (Exception e) {
+            log.error(e.getMessage());
+            return R.fail();
+        }
+        return R.ok();
+    }
+
+    /**
+     * 展示下级建筑
+     *
+     * @param houseCode
+     *            房屋编号
+     * @return 下级建筑列表
+     */
+    @Override
+    public R listSubordinatebuilding(String houseCode) {
+        List<ComMngStructHouseVO> comMngStructHouseVOS = new ArrayList<>();
+        List<ComMngStructHouseDO> comMngStructHouseDOList = comMngStructHouseDAO.selectList(
+            new QueryWrapper<ComMngStructHouseDO>().lambda().eq(ComMngStructHouseDO::getParentCode, houseCode));
+        if (!ObjectUtils.isEmpty(comMngStructHouseDOList)) {
+            comMngStructHouseDOList.forEach(comMngStructHouseDO -> {
+                ComMngStructHouseVO comMngStructHouseVO = new ComMngStructHouseVO();
+                int type = comMngStructHouseDO.getType().intValue();
+                String houseCode1 = comMngStructHouseDO.getHouseCode();
+                BeanUtils.copyProperties(comMngStructHouseDO, comMngStructHouseVO);
+                if (type == 5) {
+                    List<LoginUserInfoVO> loginUserInfoVOS = comMngStructHouseUserDAO.selectListHouseUser(houseCode1);
+                    if (!ObjectUtils.isEmpty(loginUserInfoVOS)) {
+                        String names = loginUserInfoVOS.stream().map(loginUserInfoVO -> loginUserInfoVO.getName())
+                            .collect(Collectors.joining(","));
+                        String phones = loginUserInfoVOS.stream().map(loginUserInfoVO -> loginUserInfoVO.getPhone())
+                            .collect(Collectors.joining(","));
+                        comMngStructHouseVO.setNames(names);
+                        comMngStructHouseVO.setPhones(phones);
+                    }
+                }
+
+                comMngStructHouseVOS.add(comMngStructHouseVO);
+            });
+        }
+        return R.ok(comMngStructHouseVOS);
+    }
+
+    /**
+     * 添加同级地址
+     *
+     * @param batchhouseVO
+     *            添加参数
+     * @param comMngStructAreaDO
+     *            小区信息-规则
+     * @return 添加结果
+     */
+    @Override
+    public R addHouse(BatchhouseVO batchhouseVO, ComMngStructAreaDO comMngStructAreaDO) {
+        String roleConnector = comMngStructAreaDO.getRoleConnector();
+        String roleDoor = comMngStructAreaDO.getRoleDoor();
+        String roleFloor = comMngStructAreaDO.getRoleFloor();
+        int type = batchhouseVO.getType().intValue();
+        String parentCode1 = batchhouseVO.getParentCode();
+        List<ComMngStructHouseDO> comMngStructHouseDOList =
+            comMngStructHouseDAO.selectList(new QueryWrapper<ComMngStructHouseDO>().lambda()
+                .eq(ComMngStructHouseDO::getType, type).eq(ComMngStructHouseDO::getParentCode, parentCode1));
+        List<String> stringList = new ArrayList<>();
+        if (!ObjectUtils.isEmpty(comMngStructHouseDOList)) {
+            stringList = comMngStructHouseDOList.stream().map(comMngStructHouseDO -> comMngStructHouseDO.getHouseName())
+                .collect(Collectors.toList());
+        }
+        int begin = 0, end = 0;
+        String typeName = "";
+        // 2楼栋 3 单元 4楼层 5房间
+        switch (type) {
+            case 2:
+                begin = batchhouseVO.getBuildingBegin().intValue();
+                end = batchhouseVO.getBuildingEnd().intValue();
+                typeName = "栋";
+                break;
+            case 3:
+                begin = batchhouseVO.getUnitBegin();
+                end = batchhouseVO.getUnitEnd();
+                typeName = "单元";
+                batchhouseVO.setBuildingBegin(1);
+                batchhouseVO.setBuildingEnd(1);
+                break;
+            case 4:
+                begin = batchhouseVO.getFloorBegin();
+                end = batchhouseVO.getFloorEnd();
+                typeName = "层";
+                batchhouseVO.setBuildingBegin(1);
+                batchhouseVO.setBuildingEnd(1);
+                batchhouseVO.setUnitBegin(1);
+                batchhouseVO.setUnitEnd(1);
+                break;
+            case 5:
+                begin = batchhouseVO.getDoorBegin();
+                end = batchhouseVO.getDoorEnd();
+                batchhouseVO.setBuildingBegin(1);
+                batchhouseVO.setBuildingEnd(1);
+                batchhouseVO.setUnitBegin(1);
+                batchhouseVO.setUnitEnd(1);
+                batchhouseVO.setFloorBegin(1);
+                batchhouseVO.setFloorEnd(1);
+                break;
+            default:
+                break;
+        }
+        if (!ObjectUtils.isEmpty(stringList)) {
+            for (int i = begin; i <= end; i++) {
+                String address = i + typeName;
+                if (stringList.contains(address)) {
+                    return R.fail(address + "已经存在,请删除后重新添加");
+                }
+            }
+        }
+        batchhouseVO.setRuleConnector(roleConnector);
+        batchhouseVO.setRuleDoor(roleDoor);
+        batchhouseVO.setRuleFloor(roleFloor);
+        this.batchSaveHouse(batchhouseVO);
+        return R.ok();
+    }
+
+    /**
+     * 编辑地址
+     *
+     * @param comMngStructHouseVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @Override
+    public R putHouse(ComMngStructHouseVO comMngStructHouseVO) {
+        ComMngStructHouseDO comMngStructHouseDO = new ComMngStructHouseDO();
+        comMngStructHouseDO.setSquare(comMngStructHouseVO.getSquare());
+        int update = comMngStructHouseDAO.update(comMngStructHouseDO, new UpdateWrapper<ComMngStructHouseDO>().lambda()
+            .eq(ComMngStructHouseDO::getHouseCode, comMngStructHouseVO.getHouseCode()));
+        if (update > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 删除地址
+     *
+     * @param comMngStructHouseVO
+     *            删除指定地址和所有下级
+     * @return 删除结果
+     */
+    @Override
+    public R deleteHouse(ComMngStructHouseVO comMngStructHouseVO) {
+        String houseCode = comMngStructHouseVO.getHouseCode();
+        int i = comMngStructHouseDAO.batchDeleteHouse(houseCode);
+        if (i > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 房屋地址下拉列表
+     *
+     * @param parentCode
+     *            父级编码
+     * @return 下级列表
+     */
+    @Override
+    public R putVolunteerPhone(String parentCode) {
+        List<ComMngStructHouseVO> comMngStructHouseVOS = new ArrayList<>();
+        ComMngStructHouseDO comMngStructHouseDO1 = comMngStructHouseDAO.selectOne(
+            new QueryWrapper<ComMngStructHouseDO>().lambda().eq(ComMngStructHouseDO::getHouseCode, parentCode));
+        String houseName = comMngStructHouseDO1.getHouseName();
+        List<ComMngStructHouseDO> comMngStructHouseDOList = comMngStructHouseDAO.selectList(
+            new QueryWrapper<ComMngStructHouseDO>().lambda().eq(ComMngStructHouseDO::getParentCode, parentCode));
+        if (!ObjectUtils.isEmpty(comMngStructHouseDOList)) {
+            comMngStructHouseDOList.forEach(comMngStructHouseDO -> {
+                ComMngStructHouseVO comMngStructHouseVO = new ComMngStructHouseVO();
+                BeanUtils.copyProperties(comMngStructHouseDO, comMngStructHouseVO);
+                comMngStructHouseVO.setHouseShortName(comMngStructHouseVO.getHouseName().replaceAll(houseName, ""));
+                comMngStructHouseVOS.add(comMngStructHouseVO);
+            });
+        }
+        return R.ok(comMngStructHouseVOS);
+    }
+
+    /**
+     * 新增房屋
+     *
+     * @param comMngStructHouseVO
+     *            房屋信息
+     * @return 新增结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R addHouses(ComMngStructHouseVO comMngStructHouseVO) {
+        String houseCode = comMngStructHouseVO.getHouseCode();
+        Integer states1 = comMngStructHouseVO.getState();
+        ComMngStructHouseDO comMngStructHouseDO1 = comMngStructHouseDAO.selectOne(
+            new QueryWrapper<ComMngStructHouseDO>().lambda().eq(ComMngStructHouseDO::getHouseCode, houseCode));
+        if (ObjectUtils.isEmpty(comMngStructHouseDO1)) {
+            return R.fail("房屋不存在");
+        }
+        Integer states = comMngStructHouseDO1.getState();
+        if (null != states && 0 != states.intValue()) {
+            if (states1.intValue() != states.intValue()) {
+                return R.fail("房屋已经被绑定了,请通过意见反馈联系后台处理");
+            }
+        }
+        ComMngStructHouseDO comMngStructHouseDO = new ComMngStructHouseDO();
+        comMngStructHouseDO.setSquare(comMngStructHouseVO.getSquare());
+        comMngStructHouseDO.setState(states1);
+        comMngStructHouseDO.setId(comMngStructHouseDO1.getId());
+        int update = comMngStructHouseDAO.updateById(comMngStructHouseDO);
+        if (update == 0) {
+            return R.fail("修改房屋面积、状态失败");
+        }
+        ComMngStructHouseUserDO comMngStructHouseUserDO1 =
+            comMngStructHouseUserDAO.selectOne(new QueryWrapper<ComMngStructHouseUserDO>().lambda()
+                .eq(ComMngStructHouseUserDO::getUserId, comMngStructHouseVO.getUserId())
+                .eq(ComMngStructHouseUserDO::getHouseCode, comMngStructHouseVO.getHouseCode()));
+        if (!ObjectUtils.isEmpty(comMngStructHouseUserDO1)) {
+            return R.ok();
+        }
+        ComMngStructHouseUserDO comMngStructHouseUserDO = new ComMngStructHouseUserDO();
+        comMngStructHouseUserDO.setUserId(comMngStructHouseVO.getUserId());
+        comMngStructHouseUserDO.setIdentity(comMngStructHouseVO.getIdentity());
+        comMngStructHouseUserDO.setAreaCode(comMngStructHouseVO.getAreaCode());
+        comMngStructHouseUserDO.setHouseCode(comMngStructHouseVO.getHouseCode());
+        int insert = comMngStructHouseUserDAO.insert(comMngStructHouseUserDO);
+        if (insert > 0) {
+            return R.ok();
+        }
+        throw new RuntimeException("绑定房屋和人员关系失败");
+    }
+
+    @Override
+    public R houseExport(Long areaId) {
+        ComMngStructAreaDO comMngStructAreaDO = comMngStructAreaDAO.selectById(areaId);
+        if (ObjectUtils.isEmpty(comMngStructAreaDO)) {
+            return R.fail("小区不存在");
+        }
+        List<ExcelHouseDTO> houseDTOS = comMngStructHouseDAO.houseExport(comMngStructAreaDO.getAreaCode());
+        return R.ok(houseDTOS);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngStructOtherBuildServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngStructOtherBuildServiceImpl.java
new file mode 100644
index 0000000..9689d63
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngStructOtherBuildServiceImpl.java
@@ -0,0 +1,233 @@
+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 org.springframework.beans.BeanUtils;
+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.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.SystemmanagementConfigVO;
+import com.panzhihua.common.model.vos.community.ComMngStructBuildTypeVO;
+import com.panzhihua.common.model.vos.community.ComMngStructOtherBuildVO;
+import com.panzhihua.service_community.dao.ComMngStructBuildTypeDAO;
+import com.panzhihua.service_community.dao.ComMngStructOtherBuildDAO;
+import com.panzhihua.service_community.model.dos.ComMngStructBuildTypeDO;
+import com.panzhihua.service_community.model.dos.ComMngStructOtherBuildDO;
+import com.panzhihua.service_community.service.ComMngStructOtherBuildService;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: ComMngStructOtherBuildService
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-16 15:27
+ **/
+@Service
+public class ComMngStructOtherBuildServiceImpl implements ComMngStructOtherBuildService {
+    @Resource
+    private ComMngStructOtherBuildDAO comMngStructOtherBuildDAO;
+    @Resource
+    private ComMngStructBuildTypeDAO comMngStructBuildTypeDAO;
+
+    /**
+     * 新增其他建筑
+     *
+     * @param comMngStructOtherBuildVO
+     *            建筑参数
+     * @return 新增结果
+     */
+    @Override
+    public R addOtherbuild(ComMngStructOtherBuildVO comMngStructOtherBuildVO) {
+        ComMngStructOtherBuildDO comMngStructOtherBuildDO = new ComMngStructOtherBuildDO();
+        BeanUtils.copyProperties(comMngStructOtherBuildVO, comMngStructOtherBuildDO);
+        int insert = comMngStructOtherBuildDAO.insert(comMngStructOtherBuildDO);
+        if (insert > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 查询所有建筑类型
+     *
+     * @return 类型列表
+     */
+    @Override
+    public R listBuildType(Long communityId) {
+        List<ComMngStructBuildTypeVO> comMngStructBuildTypeVOS = new ArrayList<>();
+        List<ComMngStructBuildTypeDO> comMngStructBuildTypeDOS =
+            comMngStructBuildTypeDAO.selectList(new QueryWrapper<ComMngStructBuildTypeDO>().lambda().eq(ComMngStructBuildTypeDO::getCommunityId,communityId));
+        if (!ObjectUtils.isEmpty(comMngStructBuildTypeDOS)) {
+            comMngStructBuildTypeDOS.forEach(comMngStructBuildTypeDO -> {
+                ComMngStructBuildTypeVO comMngStructBuildTypeVO = new ComMngStructBuildTypeVO();
+                BeanUtils.copyProperties(comMngStructBuildTypeDO, comMngStructBuildTypeVO);
+                comMngStructBuildTypeVOS.add(comMngStructBuildTypeVO);
+            });
+        }
+        return R.ok(comMngStructBuildTypeVOS);
+    }
+
+    /**
+     * 分页查询 其他建筑
+     *
+     * @param comMngStructOtherBuildVO
+     *            分页查询参数
+     * @return 查询结果
+     */
+    @Override
+    public R pageOtherBuild(ComMngStructOtherBuildVO comMngStructOtherBuildVO) {
+        Page page = new Page<>();
+        Long pageNum = comMngStructOtherBuildVO.getPageNum();
+        Long pageSize = comMngStructOtherBuildVO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<ComMngStructOtherBuildVO> iPage =
+            comMngStructOtherBuildDAO.pageOtherBuild(page, comMngStructOtherBuildVO);
+        return R.ok(iPage);
+    }
+
+    /**
+     * 建筑类型
+     *
+     * @param communityId
+     *            社区id
+     * @return 建筑集合
+     */
+    @Override
+    public R listComMngStructBuildType(Long communityId) {
+        List<ComMngStructBuildTypeDO> comMngStructBuildTypeDOS =
+            comMngStructBuildTypeDAO.selectList(new QueryWrapper<ComMngStructBuildTypeDO>().lambda()
+                .eq(ComMngStructBuildTypeDO::getCommunityId, communityId));
+        if (ObjectUtils.isEmpty(comMngStructBuildTypeDOS)) {
+            return R.fail();
+        }
+        List<ComMngStructBuildTypeVO> comMngStructBuildTypeVOList = new ArrayList<>();
+        comMngStructBuildTypeDOS.forEach(comMngStructBuildTypeDO -> {
+            ComMngStructBuildTypeVO comMngStructBuildTypeVO = new ComMngStructBuildTypeVO();
+            BeanUtils.copyProperties(comMngStructBuildTypeDO, comMngStructBuildTypeVO);
+            comMngStructBuildTypeVOList.add(comMngStructBuildTypeVO);
+        });
+        return R.ok(comMngStructBuildTypeVOList);
+    }
+
+    /**
+     * 增加删除建筑类型
+     *
+     * @param systemmanagementConfigVO
+     *            操作内容
+     * @return 操作结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R putComMngStructBuildType(SystemmanagementConfigVO systemmanagementConfigVO) {
+        Long communityId = systemmanagementConfigVO.getCommunityId();
+        List<ComMngStructBuildTypeVO> comMngStructBuildTypeVOList =
+            systemmanagementConfigVO.getComMngStructBuildTypeVOList();
+        if (ObjectUtils.isEmpty(comMngStructBuildTypeVOList)) {
+            return R.fail("建筑类型不能为空");
+        }
+        List<Long> collect = comMngStructBuildTypeVOList.stream()
+            .map(comMngStructBuildTypeVO -> comMngStructBuildTypeVO.getId()).collect(Collectors.toList());
+        List<Long> buildTypdIds = comMngStructOtherBuildDAO.selectAllBuildTypeIds(communityId);
+        buildTypdIds.forEach(aLong -> {
+            if (!collect.contains(aLong)) {
+                ComMngStructBuildTypeDO comMngStructBuildTypeDO = comMngStructBuildTypeDAO.selectById(aLong);
+                if (!ObjectUtils.isEmpty(comMngStructBuildTypeDO)) {
+                    throw new ServiceException(comMngStructBuildTypeDO.getName() + "已经在使用无法删除");
+                }
+            }
+        });
+        comMngStructBuildTypeDAO.delete(new QueryWrapper<ComMngStructBuildTypeDO>().lambda()
+            .eq(ComMngStructBuildTypeDO::getCommunityId, communityId));
+        comMngStructBuildTypeVOList.forEach(comMngStructBuildTypeVO -> {
+            String name = comMngStructBuildTypeVO.getName();
+            if (ObjectUtils.isEmpty(name)) {
+                throw new RuntimeException("建筑类型名称不能为空");
+            }
+            ComMngStructBuildTypeDO comMngStructBuildTypeDO = new ComMngStructBuildTypeDO();
+            comMngStructBuildTypeDO.setCommunityId(communityId);
+            comMngStructBuildTypeDO.setName(name);
+            comMngStructBuildTypeDAO.insert(comMngStructBuildTypeDO);
+        });
+        return R.ok();
+    }
+
+    /**
+     * 其他建筑详情
+     *
+     * @param id
+     *            主键id
+     * @return 建筑内容
+     */
+    @Override
+    public R detailOtherbuild(Long id) {
+        ComMngStructOtherBuildDO comMngStructOtherBuildDO = comMngStructOtherBuildDAO.selectById(id);
+        if (ObjectUtils.isEmpty(comMngStructOtherBuildDO)) {
+            return R.fail("建筑不存在");
+        }
+        Long typeId = comMngStructOtherBuildDO.getTypeId();
+        ComMngStructBuildTypeDO comMngStructBuildTypeDO = comMngStructBuildTypeDAO.selectById(typeId);
+        if (ObjectUtils.isEmpty(comMngStructBuildTypeDO)) {
+            return R.fail("建筑类型不存在");
+        }
+        ComMngStructOtherBuildVO comMngStructOtherBuildVO = new ComMngStructOtherBuildVO();
+        BeanUtils.copyProperties(comMngStructOtherBuildDO, comMngStructOtherBuildVO);
+        comMngStructOtherBuildVO.setBuileTypeName(comMngStructBuildTypeDO.getName());
+        return R.ok(comMngStructOtherBuildVO);
+    }
+
+    /**
+     * 编辑其他建筑
+     *
+     * @param comMngStructOtherBuildVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @Override
+    public R putOtherbuild(ComMngStructOtherBuildVO comMngStructOtherBuildVO) {
+        Long typeId = comMngStructOtherBuildVO.getTypeId();
+        ComMngStructBuildTypeDO comMngStructBuildTypeDO = comMngStructBuildTypeDAO.selectById(typeId);
+        if (ObjectUtils.isEmpty(comMngStructBuildTypeDO)) {
+            return R.fail("建筑类型不存在");
+        }
+        ComMngStructOtherBuildDO comMngStructOtherBuildDO = new ComMngStructOtherBuildDO();
+        BeanUtils.copyProperties(comMngStructOtherBuildVO, comMngStructOtherBuildDO);
+        int update = comMngStructOtherBuildDAO.updateById(comMngStructOtherBuildDO);
+        if (update > 0) {
+            return R.ok("编辑成功过");
+        }
+        return R.fail("编辑失败");
+    }
+
+    /**
+     * 删除其他建筑
+     *
+     * @param id
+     *            主键
+     * @return 删除结果
+     */
+    @Override
+    public R deleteOtherbuild(Long id) {
+        int delete = comMngStructOtherBuildDAO.deleteById(id);
+        if (delete > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVaccinesEnrollRecordServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVaccinesEnrollRecordServiceImpl.java
new file mode 100644
index 0000000..d008b81
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVaccinesEnrollRecordServiceImpl.java
@@ -0,0 +1,197 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Service;
+
+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.model.dtos.vaccines.EnrollUserByAppDTO;
+import com.panzhihua.common.model.dtos.vaccines.VaccinesEnrollByAdminDTO;
+import com.panzhihua.common.model.dtos.vaccines.VaccinesEnrollByAppDTO;
+import com.panzhihua.common.model.dtos.vaccines.VaccinesEnrollUserByAppDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.vaccines.VaccinesEnrollByAdminVO;
+import com.panzhihua.common.model.vos.vaccines.VaccinesEnrollUserByAppVO;
+import com.panzhihua.common.utlis.IdCard;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.dao.ComMngVaccinesDAO;
+import com.panzhihua.service_community.dao.ComMngVaccinesEnrollRecordDAO;
+import com.panzhihua.service_community.model.dos.ComMngVaccinesDO;
+import com.panzhihua.service_community.model.dos.ComMngVaccinesEnrollRecordDO;
+import com.panzhihua.service_community.service.ComMngVaccinesEnrollRecordService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-05-19 14:17:53
+ * @describe 疫苗报名记录表服务实现类
+ */
+@Slf4j
+@Service
+public class ComMngVaccinesEnrollRecordServiceImpl
+    extends ServiceImpl<ComMngVaccinesEnrollRecordDAO, ComMngVaccinesEnrollRecordDO>
+    implements ComMngVaccinesEnrollRecordService {
+
+    @Resource
+    private ComMngVaccinesDAO comMngVaccinesDAO;
+
+    /**
+     * 小程序-疫苗类型对应家庭成员接种列表
+     * 
+     * @return 疫苗类型对应家庭成员接种列表
+     */
+    @Override
+    public R getVaccinesUserListByApp(VaccinesEnrollUserByAppDTO enrollUserByAppDTO) {
+        // 查询当前用户的家庭成员列表
+        List<VaccinesEnrollUserByAppVO> userLists = new ArrayList<>();
+        // 将自己的信息组装进家庭成员列表中
+        VaccinesEnrollUserByAppVO ownUser = this.baseMapper.getSysUser(enrollUserByAppDTO.getUserId());
+        if (ownUser != null) {
+            ownUser.setIsUser(1);
+            // 计算年龄
+            ownUser.setAge(IdCard.IdNOToAge(ownUser.getIdCard()));
+            userLists.add(ownUser);
+        }
+        List<VaccinesEnrollUserByAppVO> userList = this.baseMapper.getFamilyUserList(enrollUserByAppDTO.getUserId());
+        if (!userList.isEmpty()) {
+            userLists.addAll(userList);
+        }
+
+        if (!userLists.isEmpty()) {
+            userLists.forEach(user -> {
+                if (user.getIsUser() == null) {
+                    user.setIsUser(2);
+                }
+                if (StringUtils.isEmpty(user.getJob())) {
+                    user.setJob("暂无");
+                }
+                // 查询当前用户是否已经报名
+                ComMngVaccinesEnrollRecordDO enrollRecordDO =
+                    this.baseMapper.selectOne(new QueryWrapper<ComMngVaccinesEnrollRecordDO>().lambda()
+                        .eq(ComMngVaccinesEnrollRecordDO::getFamilyUserId, user.getUserId())
+                        .eq(ComMngVaccinesEnrollRecordDO::getType, enrollUserByAppDTO.getVaccinesId())
+                        .eq(ComMngVaccinesEnrollRecordDO::getFamilyUserType, user.getIsUser()));
+                if (enrollRecordDO != null) {
+                    user.setIsEnroll(VaccinesEnrollUserByAppVO.isEnroll.yes);
+                } else {
+                    user.setIsEnroll(VaccinesEnrollUserByAppVO.isEnroll.no);
+                }
+            });
+        }
+
+        List<VaccinesEnrollUserByAppVO> newUserLists = userLists.stream()
+            .sorted(Comparator.comparing(VaccinesEnrollUserByAppVO::getIsEnroll).reversed()
+                .thenComparing(Comparator.comparing(VaccinesEnrollUserByAppVO::getCreateAt).reversed()))
+            .collect(Collectors.toList());
+        return R.ok(newUserLists);
+    }
+
+    /**
+     * 用户疫苗报名
+     * 
+     * @param enrollByAppDTO
+     *            请求参数
+     * @return 报名结果
+     */
+    @Override
+    public R VaccinesEnrollByApp(VaccinesEnrollByAppDTO enrollByAppDTO) {
+        // 查询疫苗信息
+        ComMngVaccinesDO vaccinesDO = comMngVaccinesDAO.selectById(enrollByAppDTO.getVaccinesId());
+        if (vaccinesDO == null) {
+            return R.fail("未找到到疫苗信息");
+        }
+        List<ComMngVaccinesEnrollRecordDO> vaccinesEnrollRecordDOList = new ArrayList<>();
+        if (!enrollByAppDTO.getEnrollUserList().isEmpty()) {
+            for (EnrollUserByAppDTO userByAppDTO : enrollByAppDTO.getEnrollUserList()) {
+                ComMngVaccinesEnrollRecordDO enrollRecordDO =
+                    this.baseMapper.selectOne(new QueryWrapper<ComMngVaccinesEnrollRecordDO>().lambda()
+                        .eq(ComMngVaccinesEnrollRecordDO::getFamilyUserType, userByAppDTO.getIsUser())
+                        .eq(ComMngVaccinesEnrollRecordDO::getFamilyUserId, userByAppDTO.getUserId())
+                        .eq(ComMngVaccinesEnrollRecordDO::getUserId, enrollByAppDTO.getUserId())
+                        .eq(ComMngVaccinesEnrollRecordDO::getType, enrollByAppDTO.getVaccinesId()));
+                if (enrollRecordDO != null) {
+                    continue;
+                }
+                // 报名疫苗填充对象
+                ComMngVaccinesEnrollRecordDO vaccinesEnrollRecordDO = new ComMngVaccinesEnrollRecordDO();
+                if (userByAppDTO.getIsUser().equals(EnrollUserByAppDTO.isUser.yes)) {
+                    // 如果是自己就查询自己的信息
+                    VaccinesEnrollUserByAppVO enrollUserByAppVO =
+                        this.baseMapper.getSysUser(enrollByAppDTO.getUserId());
+                    if (enrollUserByAppVO != null) {
+                        vaccinesEnrollRecordDO.setName(enrollUserByAppVO.getName());
+                        vaccinesEnrollRecordDO.setIdCard(enrollUserByAppVO.getIdCard());
+                        vaccinesEnrollRecordDO.setAge(enrollUserByAppVO.getAge());
+                        vaccinesEnrollRecordDO.setPhone(enrollUserByAppVO.getPhone());
+                        vaccinesEnrollRecordDO.setSex(IdCard.sex(enrollUserByAppVO.getIdCard()));
+                    }
+                    vaccinesEnrollRecordDO.setFamilyUserType(ComMngVaccinesEnrollRecordDO.familyUserType.mini);
+                } else {
+                    VaccinesEnrollUserByAppVO enrollUserByAppVO =
+                        this.baseMapper.getFamilyUser(userByAppDTO.getUserId());
+                    if (enrollUserByAppVO != null) {
+                        vaccinesEnrollRecordDO.setName(enrollUserByAppVO.getName());
+                        vaccinesEnrollRecordDO.setIdCard(enrollUserByAppVO.getIdCard());
+                        vaccinesEnrollRecordDO.setAge(enrollUserByAppVO.getAge());
+                        vaccinesEnrollRecordDO.setPhone(enrollUserByAppVO.getPhone());
+                        vaccinesEnrollRecordDO.setSex(IdCard.sex(enrollUserByAppVO.getIdCard()));
+                    }
+                }
+                vaccinesEnrollRecordDO.setUserId(enrollByAppDTO.getUserId());
+                vaccinesEnrollRecordDO.setFamilyUserId(userByAppDTO.getUserId());
+                vaccinesEnrollRecordDO.setType(enrollByAppDTO.getVaccinesId());
+                vaccinesEnrollRecordDO.setCommunityId(enrollByAppDTO.getCommunityId());
+                vaccinesEnrollRecordDOList.add(vaccinesEnrollRecordDO);
+            }
+        }
+        if (!vaccinesEnrollRecordDOList.isEmpty()) {
+            this.saveBatch(vaccinesEnrollRecordDOList);
+        }
+        return R.ok();
+    }
+
+    /**
+     * 查询疫苗登记列表
+     * 
+     * @param vaccinesByAdminDTO
+     *            请求参数
+     * @return 登记列表
+     */
+    @Override
+    public R getVaccinesEnrollListByAdmin(VaccinesEnrollByAdminDTO vaccinesByAdminDTO) {
+        IPage<VaccinesEnrollByAdminVO> enrollByAdminVOIPage = this.baseMapper.getVaccinesEnrollListByAdmin(
+            new Page<VaccinesEnrollByAdminVO>(vaccinesByAdminDTO.getPageNum(), vaccinesByAdminDTO.getPageSize()),
+            vaccinesByAdminDTO);
+        if (!enrollByAdminVOIPage.getRecords().isEmpty()) {
+            for (VaccinesEnrollByAdminVO enroll : enrollByAdminVOIPage.getRecords()) {
+                if (enroll.getIdCard().length() != 18) {
+                    enroll.setSex(3);
+                } else {
+                    enroll.setSex(IdCard.sex(enroll.getIdCard()));
+                }
+            }
+        }
+        return R.ok(enrollByAdminVOIPage);
+    }
+
+    /**
+     * 根据条件导出疫苗登记记录
+     * 
+     * @param vaccinesByAdminDTO
+     *            请求参数
+     * @return 导出登记列表
+     */
+    @Override
+    public R exportVaccinesEnrollListByAdmin(VaccinesEnrollByAdminDTO vaccinesByAdminDTO) {
+        return R.ok(this.baseMapper.exportVaccinesEnrollListByAdmin(vaccinesByAdminDTO));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVaccinesInoculationRecordServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVaccinesInoculationRecordServiceImpl.java
new file mode 100644
index 0000000..4ab2c70
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVaccinesInoculationRecordServiceImpl.java
@@ -0,0 +1,70 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.vaccines.VaccinesInoculationByAdminDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.vaccines.VaccinesEnrollUserByAppVO;
+import com.panzhihua.service_community.dao.ComMngVaccinesEnrollRecordDAO;
+import com.panzhihua.service_community.dao.ComMngVaccinesInoculationRecordDAO;
+import com.panzhihua.service_community.model.dos.ComMngVaccinesInoculationRecordDO;
+import com.panzhihua.service_community.service.ComMngVaccinesInoculationRecordService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-05-19 14:17:59
+ * @describe 疫苗接种记录表服务实现类
+ */
+@Slf4j
+@Service
+public class ComMngVaccinesInoculationRecordServiceImpl
+    extends ServiceImpl<ComMngVaccinesInoculationRecordDAO, ComMngVaccinesInoculationRecordDO>
+    implements ComMngVaccinesInoculationRecordService {
+
+    @Resource
+    private ComMngVaccinesEnrollRecordDAO comMngVaccinesEnrollRecordDAO;
+
+    @Override
+    public R getVaccinesUserInoculationListByApp(Long userId) {
+        // 查询当前用户的家庭成员列表
+        List<VaccinesEnrollUserByAppVO> userLists = comMngVaccinesEnrollRecordDAO.getFamilyUserList(userId);
+        List<Long> userIds = userLists.stream().map(comPbActivityMemberDO -> comPbActivityMemberDO.getUserId())
+            .collect(Collectors.toList());
+        return R.ok(this.baseMapper.getUserInoculationListByApp(userIds, userId));
+    }
+
+    /**
+     * 查询接种记录列表
+     * 
+     * @param inoculationByAdminDTO
+     *            请求参数
+     * @return 接种记录列表
+     */
+    @Override
+    public R getVaccinesInoculationListByAdmin(VaccinesInoculationByAdminDTO inoculationByAdminDTO) {
+        return R.ok(this.baseMapper.getVaccinesInoculationListByAdmin(
+            new Page(inoculationByAdminDTO.getPageNum(), inoculationByAdminDTO.getPageSize()), inoculationByAdminDTO));
+    }
+
+    /**
+     * 接种记录信息导出
+     * 
+     * @param inoculationByAdminDTO
+     *            请求参数
+     * @return 导出结果
+     */
+    @Override
+    public R exportVaccinesInoculationListByAdmin(VaccinesInoculationByAdminDTO inoculationByAdminDTO) {
+        return R.ok(this.baseMapper.exportVaccinesInoculationListByAdmin(inoculationByAdminDTO));
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVaccinesServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVaccinesServiceImpl.java
new file mode 100644
index 0000000..c28acdc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVaccinesServiceImpl.java
@@ -0,0 +1,142 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.vaccines.VaccinesByAdminDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.vaccines.VaccinesByAppVO;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.dao.ComMngVaccinesDAO;
+import com.panzhihua.service_community.model.dos.ComMngVaccinesDO;
+import com.panzhihua.service_community.service.ComMngVaccinesService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-05-19 14:17:46
+ * @describe 疫苗分类表服务实现类
+ */
+@Slf4j
+@Service
+public class ComMngVaccinesServiceImpl extends ServiceImpl<ComMngVaccinesDAO, ComMngVaccinesDO>
+    implements ComMngVaccinesService {
+
+    /**
+     * 小程序-查询疫苗分类列表
+     * 
+     * @return 疫苗分类列表
+     */
+    @Override
+    public R getVaccinesListByApp() {
+        List<ComMngVaccinesDO> vaccinesDOList = this.baseMapper.selectList(
+            new QueryWrapper<ComMngVaccinesDO>().lambda().eq(ComMngVaccinesDO::getStatus, ComMngVaccinesDO.status.yes));
+        List<VaccinesByAppVO> vaccinesList = new ArrayList<>();
+        if (!vaccinesDOList.isEmpty()) {
+            vaccinesDOList.forEach(vaccines -> {
+                VaccinesByAppVO vaccinesVO = new VaccinesByAppVO();
+                BeanUtils.copyProperties(vaccines, vaccinesVO);
+                vaccinesList.add(vaccinesVO);
+            });
+        }
+        return R.ok(vaccinesList);
+    }
+
+    /**
+     * 后台管理-查询疫苗分类列表
+     * 
+     * @param vaccinesByAdminDTO
+     *            请求参数
+     * @return 疫苗分类列表
+     */
+    @Override
+    public R getVaccinesListByAdmin(VaccinesByAdminDTO vaccinesByAdminDTO) {
+        return R.ok(this.baseMapper.getVaccinesByName(
+            new Page<ComMngVaccinesDO>(vaccinesByAdminDTO.getPageNum(), vaccinesByAdminDTO.getPageSize()),
+            vaccinesByAdminDTO));
+    }
+
+    /**
+     * 修改疫苗分类信息
+     * 
+     * @param vaccinesByAdminDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    @Override
+    public R editVaccinesByAdmin(VaccinesByAdminDTO vaccinesByAdminDTO) {
+        ComMngVaccinesDO vaccinesDO = this.baseMapper.selectById(vaccinesByAdminDTO.getId());
+        if (vaccinesDO == null) {
+            return R.fail("未找到疫苗分类记录");
+        }
+        if (StringUtils.isNotEmpty(vaccinesByAdminDTO.getName())) {
+            vaccinesDO.setName(vaccinesByAdminDTO.getName());
+        }
+        if (StringUtils.isNotEmpty(vaccinesByAdminDTO.getDescribe())) {
+            vaccinesDO.setDescribe(vaccinesByAdminDTO.getDescribe());
+        }
+        if (this.baseMapper.updateById(vaccinesDO) > 0) {
+            return R.ok();
+        } else {
+            return R.fail();
+        }
+    }
+
+    /**
+     * 新增疫苗分类信息
+     * 
+     * @param vaccinesByAdminDTO
+     *            请求参数
+     * @return 新增结果
+     */
+    @Override
+    public R addVaccinesByAdmin(VaccinesByAdminDTO vaccinesByAdminDTO) {
+        ComMngVaccinesDO vaccinesDO = new ComMngVaccinesDO();
+        BeanUtils.copyProperties(vaccinesByAdminDTO, vaccinesDO);
+        if (this.baseMapper.insert(vaccinesDO) > 0) {
+            return R.ok();
+        } else {
+            return R.fail();
+        }
+    }
+
+    /**
+     * 删除疫苗分类信息
+     * 
+     * @param id
+     *            疫苗分类id
+     * @return 删除结果
+     */
+    @Override
+    public R deleteVaccinesByAdmin(Long id) {
+        ComMngVaccinesDO vaccinesDO = this.baseMapper.selectById(id);
+        if (vaccinesDO == null) {
+            return R.fail("未找到疫苗分类记录");
+        }
+
+        if (this.baseMapper.deleteById(id) > 0) {
+            return R.ok();
+        } else {
+            return R.fail();
+        }
+    }
+
+    /**
+     * 疫苗分类列表
+     * 
+     * @return 疫苗分类列表
+     */
+    public R getEnrollTypeListByAdmin() {
+        List<ComMngVaccinesDO> vaccinesDOList = this.baseMapper
+            .selectList(new QueryWrapper<ComMngVaccinesDO>().lambda().eq(ComMngVaccinesDO::getStatus, 1));
+        return R.ok(vaccinesDOList);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVillageServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVillageServiceImpl.java
new file mode 100644
index 0000000..24d319a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVillageServiceImpl.java
@@ -0,0 +1,393 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.service_community.dao.*;
+import com.panzhihua.service_community.model.dos.*;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+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.core.toolkit.Wrappers;
+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.PageComMngVillageDTO;
+import com.panzhihua.common.model.dtos.grid.ComMngVillageListAppDTO;
+import com.panzhihua.common.model.dtos.grid.admin.ComMngVillageListExportAdminDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngVillageServeExcelVO;
+import com.panzhihua.common.model.vos.community.ComMngVillageVO;
+import com.panzhihua.common.model.vos.grid.ComMngVillageBuildingVO;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.service.ComMngVillageService;
+import org.springframework.util.CollectionUtils;
+
+/**
+ * @author: llming
+ * @description: 实有房屋
+ **/
+@Service
+public class ComMngVillageServiceImpl extends ServiceImpl<ComActVillageDAO, ComMngVillageDO>
+    implements ComMngVillageService {
+    @Resource
+    ComActVillageDAO comActVillageDAO;
+    @Resource
+    ComActDAO comActDAO;
+    @Resource
+    ComMngPopulationDAO populationDAO;
+    @Resource
+    private ComMngPopulationHouseDAO comMngPopulationHouseDAO;
+    @Resource
+    private ComMngBuildingDAO comMngBuildingDAO;
+
+    @Override
+    public R addComActVillage(ComMngVillageVO comMngVillageVO) {
+        ComMngVillageDO comMngVillageDO = new ComMngVillageDO();
+        LambdaQueryWrapper<ComMngVillageDO> param = new QueryWrapper<ComMngVillageDO>().lambda();
+        param.eq(ComMngVillageDO::getCommunityId, comMngVillageVO.getCommunityId());
+        param.eq(ComMngVillageDO::getAlley, comMngVillageVO.getAlley());
+        param.eq(ComMngVillageDO::getHouseNum, comMngVillageVO.getHouseNum());
+        Integer resultCount = comActVillageDAO.selectCount(param);
+        if (resultCount > 0) {
+            return R.fail("实有房屋已经存在");
+        }
+        BeanUtils.copyProperties(comMngVillageVO, comMngVillageDO);
+        ComActDO comActDO = comActDAO.selectById(comMngVillageDO.getCommunityId());
+        if (comActDO == null || comActDO.getStreetId() == null) {
+            return R.fail("社区没有绑定街道,请绑定后操作!");
+        }
+        comMngVillageDO.setVillageId(Snowflake.getId());
+        comMngVillageDO.setStreetId(comActDO.getStreetId());
+        comMngVillageDO.setUpdateAt(new Date());
+        int insert = comActVillageDAO.insert(comMngVillageDO);
+        if (insert > 0) {
+            // param.eq(ComMngVillageDO::getAlley, comMngVillageVO.getAlley());
+            // param.eq(ComMngVillageDO::getHouseNum, comMngVillageVO.getHouseNum());
+            // ComMngVillageDO comMngVillageDO1 = comActVillageDAO.selectOne(param);
+            BeanUtils.copyProperties(comMngVillageDO, comMngVillageVO);
+            return R.ok(comMngVillageVO);
+        }
+        return R.fail();
+    }
+
+    @Override
+    public R listComActVillage(ComMngVillageVO comMngVillageVO) {
+        List<ComMngVillageDO> vos = Lists.newArrayList();
+        if(comMngVillageVO.getCommunityId()!=null){
+            LambdaQueryWrapper<ComMngVillageDO> param = new QueryWrapper<ComMngVillageDO>().lambda();
+            if(StringUtils.isNotEmpty(comMngVillageVO.getName())){
+                param.like(ComMngVillageDO::getName, comMngVillageVO.getName());
+            }
+            if(comMngVillageVO.getCommunityId()!=0){
+                param.eq(ComMngVillageDO::getCommunityId, comMngVillageVO.getCommunityId());
+            }
+            List<ComMngVillageDO> comMngVillageDOS = comActVillageDAO.selectList(param);
+            BeanUtils.copyProperties(comMngVillageDOS, vos);
+            if(CollectionUtils.isEmpty(comMngVillageDOS)){
+                //默认添加小区
+                ComMngVillageDO comMngVillageDO=new ComMngVillageDO();
+                comMngVillageDO.setVillageId(1540264792718184449L);
+                comMngVillageDO.setType(1);
+                comMngVillageDO.setName("该社区/村暂未添加小区(院落),请先选择本项");
+                comMngVillageDOS.add(comMngVillageDO);
+            }
+            return R.ok(comMngVillageDOS);
+        }
+        if(CollectionUtils.isEmpty(vos)){
+            //默认添加小区
+            ComMngVillageDO comMngVillageDO=new ComMngVillageDO();
+            comMngVillageDO.setVillageId(1540264792718184449L);
+            comMngVillageDO.setType(1);
+            comMngVillageDO.setName("该社区/村暂未添加小区(院落),请先选择本项");
+            vos.add(comMngVillageDO);
+        }
+        return R.ok(vos);
+    }
+
+    @Override
+    public ComMngVillageDO getVillageById(Long villageId) {
+        ComMngVillageDO comMngVillageDO = new ComMngVillageDO();
+        comMngVillageDO = comActVillageDAO.selectById(villageId);
+        return comMngVillageDO;
+    }
+
+    @Override
+    public R pageComActVillage(PageComMngVillageDTO pageComMngVillageDTO) {
+        LambdaQueryWrapper<ComMngVillageDO> userLambdaQueryWrapper = Wrappers.lambdaQuery();
+        if (pageComMngVillageDTO.getCommunityId() != null) {
+            userLambdaQueryWrapper.eq(ComMngVillageDO::getCommunityId, pageComMngVillageDTO.getCommunityId());
+        }
+        if (pageComMngVillageDTO.getAlley() != null) {
+            userLambdaQueryWrapper.like(ComMngVillageDO::getAlley, pageComMngVillageDTO.getAlley());
+        }
+        if (StringUtils.isNotEmpty(pageComMngVillageDTO.getHouseNum())) {
+            userLambdaQueryWrapper.eq(ComMngVillageDO::getHouseNum, pageComMngVillageDTO.getHouseNum());
+        }
+        if (StringUtils.isNotEmpty(pageComMngVillageDTO.getGroupAt())) {
+            userLambdaQueryWrapper.eq(ComMngVillageDO::getGroupAt, pageComMngVillageDTO.getGroupAt());
+        }
+        if (pageComMngVillageDTO.getType() != null) {
+            userLambdaQueryWrapper.eq(ComMngVillageDO::getType, pageComMngVillageDTO.getType());
+        }
+        Page userPage = new Page(pageComMngVillageDTO.getPageNum(), pageComMngVillageDTO.getPageSize());
+        IPage<ComMngVillageDO> doPager =
+            comActVillageDAO.selectPage(userPage, userLambdaQueryWrapper.orderByDesc(ComMngVillageDO::getName));
+
+        IPage<ComMngVillageVO> villageVOIPage = new Page<>();
+        villageVOIPage.setCurrent(doPager.getCurrent());
+        villageVOIPage.setPages(doPager.getPages());
+        villageVOIPage.setSize(doPager.getSize());
+        villageVOIPage.setTotal(doPager.getTotal());
+        if (!doPager.getRecords().isEmpty()) {
+            List<ComMngVillageVO> villageVOList = new ArrayList<>();
+            // 统计小区下的数据
+            doPager.getRecords().forEach(village -> {
+                ComMngVillageVO villageVO = new ComMngVillageVO();
+                BeanUtils.copyProperties(village, villageVO);
+                // 查询小区统计数据
+                ComMngVillageVO villageTotal = comActVillageDAO.getStatisticsCount(village.getVillageId());
+                if (villageTotal != null) {
+                    villageVO.setFloorTotal(villageTotal.getFloorTotal());
+                    villageVO.setCarTotal(villageTotal.getCarTotal());
+                    villageVO.setHouseTotal(villageTotal.getHouseTotal());
+                    villageVO.setPopulationTotal(villageTotal.getPopulationTotal());
+                }
+                villageVOList.add(villageVO);
+            });
+            villageVOIPage.setRecords(villageVOList);
+        }
+        return R.ok(villageVOIPage);
+    }
+
+    @Override
+    public R delecComActVillage(List<Long> Ids) {
+        LambdaQueryWrapper<ComMngPopulationHouseDO> paramHouseWrapper = Wrappers.lambdaQuery();
+        paramHouseWrapper.in(ComMngPopulationHouseDO::getVillageId, Ids);
+        List<ComMngPopulationHouseDO> populationHouseDOList = comMngPopulationHouseDAO.selectList(paramHouseWrapper);
+        if (!populationHouseDOList.isEmpty()) {
+            return R.fail("无法删除,已绑定实有房屋!");
+        }
+
+        LambdaQueryWrapper<ComMngPopulationDO> paramWrapper = Wrappers.lambdaQuery();
+        paramWrapper.in(ComMngPopulationDO::getVillageId, Ids);
+        List<ComMngPopulationDO> mngPopulationDOList = populationDAO.selectList(paramWrapper);
+        if (!mngPopulationDOList.isEmpty()) {
+            return R.fail("无法删除,已绑定实有人口!");
+        }
+        int delete = comActVillageDAO.deleteBatchIds(Ids);
+        if (delete > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    @Override
+    public R listSaveVillage(List<ComMngVillageServeExcelVO> list, Long communityId) {
+        // 思路:获取社区下所有的实有房屋(小区),打印已经存在的重复数据
+        if (list.size() == 0) {
+            return R.fail("数据为空!");
+        }
+        List<ComMngVillageDO> comMngVillageDOs = comActVillageDAO
+            .selectList(new QueryWrapper<ComMngVillageDO>().lambda().eq(ComMngVillageDO::getCommunityId, communityId));
+        int index = 2;
+        for (ComMngVillageServeExcelVO vo : list) {
+            if (vo.getHouseNum() == null) {
+                return R.fail("门牌号第" + index + "行为空!");
+            }
+            if (vo.getAlley() == null) {
+                return R.fail("街路巷第" + index + "行为空!");
+            }
+            // 判断DB和exel数据重复判断
+            boolean result = comMngVillageDOs.stream().anyMatch(
+                village -> village.getAlley().equals(vo.getAlley()) && village.getHouseNum().equals(vo.getHouseNum()));
+            if (result) {
+                return R.fail("导入街路巷重复(" + vo.getAlley() + ")");
+            }
+            ComMngVillageDO comMngVillageDO=new ComMngVillageDO();
+            BeanUtils.copyProperties(vo,comMngVillageDO);
+            comMngVillageDOs.add(comMngVillageDO);
+            index++;
+        }
+        ComActDO comActDO = comActDAO.selectById(communityId);
+        if (comActDO.getStreetId() == null || comActDO.getStreetId().toString().equals("")) {
+            return R.fail("请绑定街道,再操作!");
+        }
+        ArrayList<ComMngVillageDO> comMngVillageDOS = Lists.newArrayList();
+        list.forEach(vo -> {
+            ComMngVillageDO comMngVillageDO = new ComMngVillageDO();
+            BeanUtils.copyProperties(vo, comMngVillageDO);
+            if(StringUtils.isNotEmpty(vo.getType())){
+                if("城镇".equals(vo.getType())){
+                    comMngVillageDO.setType(1);
+                }
+                else {
+                    comMngVillageDO.setType(2);
+                }
+            }
+            comMngVillageDO.setCommunityId(comActDO.getCommunityId());
+            comMngVillageDO.setStreetId(comActDO.getStreetId());
+            StringBuilder path = new StringBuilder();
+            path.append(vo.getAlley()).append(">").append(vo.getHouseNum()).append(">").append(vo.getGroupAt());
+            comMngVillageDO.setPath(path.toString());
+            comMngVillageDO.setUpdateAt(new Date());
+            comMngVillageDO.setName(comMngVillageDO.getGroupAt());
+            comMngVillageDOS.add(comMngVillageDO);
+        });
+        this.saveBatch(comMngVillageDOS);
+        return R.ok("共计导入实有小区数量:" + comMngVillageDOS.size());
+    }
+
+    @Override
+    public R editVillage(Long villageId, ComMngVillageVO comMngVillageVO) {
+        ComMngVillageDO comMngVillageDO = this.baseMapper.selectById(villageId);
+        if (comMngVillageDO == null) {
+            return R.fail("id有误!");
+        }
+        if(!comMngVillageVO.getAlley().equals(comMngVillageDO.getAlley())&&!comMngVillageVO.getHouseNum().equals(comMngVillageDO.getHouseNum())){
+            Integer count= this.baseMapper.selectCount(new QueryWrapper<ComMngVillageDO>().lambda().eq(ComMngVillageDO::getAlley,comMngVillageVO.getAlley()).eq(ComMngVillageDO::getHouseNum,comMngVillageVO.getHouseNum()));
+            if(count>0){
+                return R.fail("街路巷已存在");
+            }
+            //历史人口数据处理
+            List<ComMngPopulationDO> populationDOS=this.populationDAO.selectList(new QueryWrapper<ComMngPopulationDO>().lambda().eq(ComMngPopulationDO::getVillageId,villageId));
+            if(!populationDOS.isEmpty()){
+                populationDOS.forEach(comMngPopulationDO -> {
+                    comMngPopulationDO.setRoad(comMngVillageVO.getAlley());
+                    comMngPopulationDO.setDoorNo(comMngVillageVO.getHouseNum());
+                    comMngPopulationDO.setAddress(comMngPopulationDO.getAddress().replace(comMngVillageDO.getAlley()+comMngVillageDO.getHouseNum(),comMngVillageVO.getAlley()+comMngVillageVO.getHouseNum()));
+                    this.populationDAO.updateById(comMngPopulationDO);
+                });
+            }
+            //历史房屋数据处理
+            List<ComMngPopulationHouseDO> comMngPopulationHouseDOS=this.comMngPopulationHouseDAO.selectList(new QueryWrapper<ComMngPopulationHouseDO>().lambda().eq(ComMngPopulationHouseDO::getVillageId,comMngVillageVO.getVillageId()));
+            if(!comMngPopulationHouseDOS.isEmpty()){
+                comMngPopulationHouseDOS.forEach(comMngPopulationHouseDO -> {
+                    comMngPopulationHouseDO.setAlley(comMngVillageVO.getAlley());
+                    comMngPopulationHouseDO.setHouseNum(comMngVillageVO.getHouseNum());
+                    comMngPopulationHouseDO.setAddress(comMngPopulationHouseDO.getAddress().replace(comMngVillageDO.getAlley()+comMngVillageDO.getHouseNum(),comMngVillageVO.getAlley()+comMngVillageVO.getHouseNum()));
+                    this.comMngPopulationHouseDAO.updateById(comMngPopulationHouseDO);
+                });
+            }
+        }
+        ComActDO comActDO = comActDAO.selectById(comMngVillageDO.getCommunityId());
+        if (comActDO == null || comActDO.getStreetId() == null) {
+            return R.fail("社区没有绑定街道,请绑定后操作!");
+        }
+        BeanUtils.copyProperties(comMngVillageVO, comMngVillageDO);
+        comMngVillageDO.setName(comMngVillageVO.getGroupAt());
+        comMngVillageDO.setStreetId(comActDO.getStreetId());
+        int update = this.baseMapper.update(comMngVillageDO,
+            new LambdaQueryWrapper<ComMngVillageDO>().eq(ComMngVillageDO::getVillageId, villageId));
+        if (update > 0) {
+            return R.ok(comMngVillageVO);
+        }
+        return R.fail();
+    }
+
+    /**
+     * 统计社区内小区数量
+     * 
+     * @param communityId
+     *            社区id
+     * @return 统计小区数量
+     */
+    @Override
+    public R villageStatistics(Long communityId) {
+        return R.ok(this.baseMapper.getVillageStatisticsCount(communityId));
+    }
+
+    /**
+     * 小区详情
+     * 
+     * @param villageId
+     *            小区id
+     * @return 小区详情
+     */
+    @Override
+    public R getVillage(Long villageId) {
+        return R.ok(this.baseMapper.getVillageById(villageId));
+    }
+
+    /**
+     * 综治app-小区列表
+     * 
+     * @param villageListAppDTO
+     *            请求参数
+     * @return 小区列表
+     */
+    @Override
+    public R getGridVillageList(ComMngVillageListAppDTO villageListAppDTO) {
+        return R.ok(this.baseMapper.getGridVillageList(
+            new Page(villageListAppDTO.getPageNum(), villageListAppDTO.getPageSize()), villageListAppDTO));
+    }
+
+    @Override
+    public R getGridVillageListApp(ComMngVillageListAppDTO villageListAppDTO) {
+        return R.ok(this.baseMapper.getGridVillageList(
+                new Page(villageListAppDTO.getPageNum(), villageListAppDTO.getPageSize()), villageListAppDTO));
+    }
+
+    /**
+     * 综治app-根据小区id查询小区下楼栋列表
+     * 
+     * @param villageId
+     *            小区id
+     * @return 楼栋列表
+     */
+    @Override
+    public R getGridVillageBuildingList(Long villageId) {
+
+        List<ComMngVillageBuildingVO> villageBuildingList = this.baseMapper.getGridVillageBuildingList(villageId);
+        if (!villageBuildingList.isEmpty()) {
+            villageBuildingList.forEach(villageBuilding -> {
+                if (!villageBuilding.getFloor().contains("栋")) {
+                    villageBuilding.setFloorString(villageBuilding.getFloor() + "栋");
+                } else {
+                    villageBuilding.setFloorString(villageBuilding.getFloor());
+                }
+                if (!villageBuilding.getUnitNo().contains("单元")) {
+                    villageBuilding.setUnitNoString(villageBuilding.getUnitNo() + "单元");
+                } else {
+                    villageBuilding.setUnitNoString(villageBuilding.getUnitNo());
+                }
+            });
+        }
+        return R.ok(villageBuildingList);
+    }
+
+    @Override
+    public R delGridVillage(List<Long> villageIds) {
+
+        if (villageIds.isEmpty()) {
+            return R.fail("请选择需要删除的小区");
+        }
+        // 查询需要删除的小区下面是否绑定的有房屋
+        Integer count = this.baseMapper.getVillageHouseCount(villageIds);
+        if (count > 0) {
+            return R.fail("您选择的小区已被引用,无法删除");
+        }
+        if (this.baseMapper.deleteBatchIds(villageIds) > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    @Override
+    public R getGridVillageStatistics() {
+        return R.ok(this.baseMapper.getGridVillageStatistics());
+    }
+
+    @Override
+    public R getGridVillageListExport(ComMngVillageListExportAdminDTO villageListAppDTO) {
+        return R.ok(this.baseMapper.getGridVillageLists(villageListAppDTO));
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVolunteerMngServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVolunteerMngServiceImpl.java
new file mode 100644
index 0000000..fed909f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVolunteerMngServiceImpl.java
@@ -0,0 +1,367 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import cn.hutool.core.util.IdcardUtil;
+import com.panzhihua.common.model.vos.community.volunteer.ComMngVolunteerErrorExcelVO;
+import com.panzhihua.common.model.vos.community.volunteer.ComMngVolunteerExcelVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.dao.ComMngVolunteerOrgTeamMapper;
+import com.panzhihua.service_community.dao.ComMngVolunteerSkillMapper;
+import com.panzhihua.service_community.model.dos.ComMngVolunteerOrgTeam;
+import com.panzhihua.service_community.model.dos.ComMngVolunteerSkill;
+import org.springframework.beans.BeanUtils;
+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.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngVolunteerMngAppletsVO;
+import com.panzhihua.common.model.vos.community.ComMngVolunteerMngVO;
+import com.panzhihua.common.model.vos.community.TodoEventsVO;
+import com.panzhihua.common.model.vos.user.UserPhoneVO;
+import com.panzhihua.common.utlis.SensitiveUtil;
+import com.panzhihua.service_community.dao.ComMngVolunteerMngDAO;
+import com.panzhihua.service_community.model.dos.ComMngVolunteerMngDO;
+import com.panzhihua.service_community.service.ComMngVolunteerMngService;
+
+import static java.util.Objects.nonNull;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 志愿者
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-17 09:23
+ **/
+@Service
+public class ComMngVolunteerMngServiceImpl implements ComMngVolunteerMngService {
+    @Resource
+    private ComMngVolunteerMngDAO comMngVolunteerMngDAO;
+    @Resource
+    private ComMngVolunteerOrgTeamMapper comMngVolunteerOrgTeamMapper;
+    @Resource
+    private ComMngVolunteerSkillMapper comMngVolunteerSkillMapper;
+    @Resource
+    private UserService userService;
+
+    /**
+     * 增加志愿者
+     *
+     * @param comMngVolunteerMngVO
+     *            志愿者信息
+     * @return 增加结果
+     */
+    @Override
+    public R addVolunteer(ComMngVolunteerMngVO comMngVolunteerMngVO) {
+        String phone = comMngVolunteerMngVO.getPhone();
+        String idCard = comMngVolunteerMngVO.getIdCard();
+        Integer integer = comMngVolunteerMngDAO.selectCount(new QueryWrapper<ComMngVolunteerMngDO>().lambda()
+                .and(wrapper -> wrapper.eq(ComMngVolunteerMngDO::getPhone, phone).or().eq(ComMngVolunteerMngDO::getIdCard, idCard))
+                .in(ComMngVolunteerMngDO::getState, Arrays.asList(1, 2)));
+        if (null != integer && integer.intValue() > 0) {
+            return R.fail("请勿重复申请");
+        }
+        ComMngVolunteerMngDO comMngVolunteerMngDO = new ComMngVolunteerMngDO();
+        BeanUtils.copyProperties(comMngVolunteerMngVO, comMngVolunteerMngDO);
+        int insert = comMngVolunteerMngDAO.insert(comMngVolunteerMngDO);
+        if (insert > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 删除志愿者
+     *
+     * @param comMngVolunteerMngVO
+     *            手机号
+     * @return 删除结果
+     */
+    @Override
+    public R deleteVolunteer(ComMngVolunteerMngVO comMngVolunteerMngVO) {
+        ComMngVolunteerMngDO comMngVolunteerMngDO = comMngVolunteerMngDAO.selectById(comMngVolunteerMngVO.getId());
+        int delete = comMngVolunteerMngDAO.delete(new QueryWrapper<ComMngVolunteerMngDO>().lambda()
+            .eq(ComMngVolunteerMngDO::getId, comMngVolunteerMngDO.getId()));
+        if (delete > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 编辑志愿者
+     *
+     * @param comMngVolunteerMngVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @Override
+    public R putVolunteer(ComMngVolunteerMngVO comMngVolunteerMngVO) {
+        ComMngVolunteerMngDO comMngVolunteerMngDO = new ComMngVolunteerMngDO();
+        BeanUtils.copyProperties(comMngVolunteerMngVO, comMngVolunteerMngDO);
+        int update = comMngVolunteerMngDAO.updateById(comMngVolunteerMngDO);
+        if (update > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 分页展示志愿者
+     *
+     * @param comMngVolunteerMngVO
+     *            查询参数
+     * @return 分页集合返回
+     */
+    @Override
+    public R pageVolunteer(ComMngVolunteerMngVO comMngVolunteerMngVO) {
+        Page page = new Page<>();
+        Long pageNum = comMngVolunteerMngVO.getPageNum();
+        Long pageSize = comMngVolunteerMngVO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<ComMngVolunteerMngVO> iPage = comMngVolunteerMngDAO.pageVolunteer(page, comMngVolunteerMngVO);
+        iPage.getRecords().forEach(record -> {
+            if(StringUtils.isNotEmpty(record.getIdCard())){
+                record.setAge(IdcardUtil.getAgeByIdCard(record.getIdCard()));
+            }
+        });
+        return R.ok(iPage);
+    }
+
+    /**
+     * 分页展示志愿者审核
+     *
+     * @param comMngVolunteerMngVO
+     *            查询参数
+     * @return 查询结果
+     */
+    @Override
+    public R pageVolunteerExamine(ComMngVolunteerMngVO comMngVolunteerMngVO) {
+        Page page = new Page<>();
+        Long pageNum = comMngVolunteerMngVO.getPageNum();
+        Long pageSize = comMngVolunteerMngVO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<ComMngVolunteerMngVO> iPage = comMngVolunteerMngDAO.pageVolunteerExamine(page, comMngVolunteerMngVO);
+        return R.ok(iPage);
+    }
+
+    /**
+     * 志愿者审核详情
+     *
+     * @param id
+     *            主键
+     * @return 详情
+     */
+    @Override
+    public R detailVolunteerExamine(Long id) {
+        ComMngVolunteerMngVO comMngVolunteerMngVO = comMngVolunteerMngDAO.detailVolunteerExamine(id);
+        // String phone = comMngVolunteerMngVO.getPhone();
+        // comMngVolunteerMngVO.setUserId(comMngVolunteerMngDAO.selectUserIdByPhone(phone));
+        return R.ok(comMngVolunteerMngVO);
+    }
+
+    /**
+     * 志愿者审核
+     *
+     * @param comMngVolunteerMngVO
+     *            审核操作
+     * @return 审核结果
+     */
+    @Override
+    public R putVolunteerExamine(ComMngVolunteerMngVO comMngVolunteerMngVO) {
+        ComMngVolunteerMngDO comMngVolunteerMngDO = new ComMngVolunteerMngDO();
+        BeanUtils.copyProperties(comMngVolunteerMngVO, comMngVolunteerMngDO);
+        int update = comMngVolunteerMngDAO.updateById(comMngVolunteerMngDO);
+        if (update > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 删除志愿者审核
+     *
+     * @param comMngVolunteerMngVO
+     *            主键
+     * @return 删除结果
+     */
+    @Override
+    public R deleteVolunteerExamine(ComMngVolunteerMngVO comMngVolunteerMngVO) {
+        int delete = comMngVolunteerMngDAO.deleteById(comMngVolunteerMngVO.getId());
+        if (delete > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 用户修改手机号对应的志愿者手机号也要修改
+     *
+     * @param userPhoneVO
+     *            新旧手机号
+     * @return 修改结果
+     */
+    @Override
+    public R putVolunteerPhone(UserPhoneVO userPhoneVO) {
+        ComMngVolunteerMngDO comMngVolunteerMngDO = new ComMngVolunteerMngDO();
+        comMngVolunteerMngDO.setPhone(userPhoneVO.getNewPhone());
+        int update = comMngVolunteerMngDAO.update(comMngVolunteerMngDO, new UpdateWrapper<ComMngVolunteerMngDO>()
+            .lambda().eq(ComMngVolunteerMngDO::getPhone, userPhoneVO.getOldPhone()));
+        if (update > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 志愿者详情
+     *
+     * @param id
+     *            主键
+     * @return 志愿者
+     */
+    @Override
+    public R detailVolunteer(Long id) {
+        ComMngVolunteerMngDO comMngVolunteerMngDO = comMngVolunteerMngDAO.selectById(id);
+        if (ObjectUtils.isEmpty(comMngVolunteerMngDO)) {
+            return R.fail("志愿者不存在");
+        }
+        ComMngVolunteerMngAppletsVO comMngVolunteerMngAppletsVO = new ComMngVolunteerMngAppletsVO();
+        BeanUtils.copyProperties(comMngVolunteerMngDO, comMngVolunteerMngAppletsVO);
+        return R.ok(comMngVolunteerMngAppletsVO);
+    }
+
+    /**
+     * 社区后台数据看板
+     *
+     * @param communityId
+     *            社区id
+     * @param userId
+     *            用户id
+     * @return 人脸采集和志愿者审核集合
+     */
+    @Override
+    public List<TodoEventsVO> selectNeedToDo(Long communityId, Long userId) {
+        List<TodoEventsVO> todoEventsVOS = comMngVolunteerMngDAO.selectNeedToDo(communityId);
+        return todoEventsVOS;
+    }
+
+    @Override
+    public R getVolunteerById(Long id) {
+        ComMngVolunteerMngDO comMngVolunteerMngDO = comMngVolunteerMngDAO.selectById(id);
+        ComMngVolunteerMngAppletsVO vo = new ComMngVolunteerMngAppletsVO();
+        BeanUtils.copyProperties(comMngVolunteerMngDO, vo);
+        return R.ok(vo);
+    }
+
+    /**
+     * 志愿者导入
+     *
+     * @param list        志愿者数据列表
+     * @param communityId 社区id
+     * @param userId      用户id
+     * @return 导入结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R importVolunteerAdmin(List<ComMngVolunteerExcelVO> list, Long communityId, Long userId){
+        //错误集合
+        List<ComMngVolunteerErrorExcelVO> errorList = new ArrayList<>();
+        for (ComMngVolunteerExcelVO excel : list) {
+            //查询组织
+            ComMngVolunteerOrgTeam orgVo = comMngVolunteerOrgTeamMapper.selectOne(new QueryWrapper<ComMngVolunteerOrgTeam>().lambda()
+                    .eq(ComMngVolunteerOrgTeam::getName,excel.getOrgName()).eq(ComMngVolunteerOrgTeam::getCommunityId,communityId)
+                    .eq(ComMngVolunteerOrgTeam::getParentId,0));
+//            if(orgVo == null){
+//                ComMngVolunteerErrorExcelVO errorExcelVO = new ComMngVolunteerErrorExcelVO();
+//                BeanUtils.copyProperties(excel,errorExcelVO);
+//                errorExcelVO.setError("该志愿者组织不存在,请先通过后台添加该志愿者组织");
+//                errorList.add(errorExcelVO);
+//                continue;
+//            }
+            //查询队伍
+            ComMngVolunteerOrgTeam teamVo = comMngVolunteerOrgTeamMapper.selectOne(new QueryWrapper<ComMngVolunteerOrgTeam>().lambda()
+                    .eq(ComMngVolunteerOrgTeam::getName,excel.getTeamName()).eq(ComMngVolunteerOrgTeam::getCommunityId,communityId)
+                    .eq(ComMngVolunteerOrgTeam::getParentId, nonNull(orgVo) ? orgVo.getId() : null));
+//            if(teamVo == null){
+//                ComMngVolunteerErrorExcelVO errorExcelVO = new ComMngVolunteerErrorExcelVO();
+//                BeanUtils.copyProperties(excel,errorExcelVO);
+//                errorExcelVO.setError("该志愿者队伍不存在,请先通过后台添加该志愿者队伍");
+//                errorList.add(errorExcelVO);
+//                continue;
+//            }
+            //查询技能
+            ComMngVolunteerSkill skillVo = comMngVolunteerSkillMapper.selectOne(new QueryWrapper<ComMngVolunteerSkill>().lambda()
+                    .eq(ComMngVolunteerSkill::getName,excel.getSkillName()).eq(ComMngVolunteerSkill::getCommunityId,communityId));
+//            if(skillVo == null){
+//                ComMngVolunteerErrorExcelVO errorExcelVO = new ComMngVolunteerErrorExcelVO();
+//                BeanUtils.copyProperties(excel,errorExcelVO);
+//                errorExcelVO.setError("该志愿者技能不存在,请先通过后台添加该志愿者技能");
+//                errorList.add(errorExcelVO);
+//                continue;
+//            }
+            Date nowDate = new Date();
+            ComMngVolunteerMngDO comMngVolunteerMngDO = comMngVolunteerMngDAO.selectOne(new QueryWrapper<ComMngVolunteerMngDO>().lambda()
+                    .eq(ComMngVolunteerMngDO::getIdCard,excel.getIdCard()).in(ComMngVolunteerMngDO::getState,1,2));
+            if(comMngVolunteerMngDO != null){
+                if(comMngVolunteerMngDO.getState().equals(1)){
+                    BeanUtils.copyProperties(excel,comMngVolunteerMngDO);
+                    comMngVolunteerMngDO.setState(2);
+                    comMngVolunteerMngDO.setOrgId(nonNull(orgVo) ? orgVo.getId() : null);
+                    comMngVolunteerMngDO.setTeamId(nonNull(teamVo) ? teamVo.getId() : null);
+                    comMngVolunteerMngDO.setSkillId(nonNull(skillVo) ? skillVo.getId() : null);
+                    comMngVolunteerMngDAO.updateById(comMngVolunteerMngDO);
+                }else{
+                    ComMngVolunteerErrorExcelVO errorExcelVO = new ComMngVolunteerErrorExcelVO();
+                    BeanUtils.copyProperties(excel,errorExcelVO);
+                    errorExcelVO.setError("该志愿者已存在,不可重复添加");
+                    errorList.add(errorExcelVO);
+                }
+            }else{
+                comMngVolunteerMngDO = new ComMngVolunteerMngDO();
+                BeanUtils.copyProperties(excel,comMngVolunteerMngDO);
+                comMngVolunteerMngDO.setCommunityId(communityId);
+                comMngVolunteerMngDO.setState(2);
+                comMngVolunteerMngDO.setOrgId(nonNull(orgVo) ? orgVo.getId() : null);
+                comMngVolunteerMngDO.setTeamId(nonNull(teamVo) ? teamVo.getId() : null);
+                comMngVolunteerMngDO.setSkillId(nonNull(skillVo) ? skillVo.getId() : null);
+                comMngVolunteerMngDO.setCreateAt(nowDate);
+                //查询用户id,如果存在则需要绑定
+                Long volunteerUserId = comMngVolunteerMngDAO.selectUserIdByIdCard(excel.getIdCard());
+                if(volunteerUserId != null){
+                    comMngVolunteerMngDO.setSubmitUserId(volunteerUserId);
+                }
+                comMngVolunteerMngDAO.insert(comMngVolunteerMngDO);
+                userService.putUserIsVolunteer(comMngVolunteerMngDO.getPhone(), 1);
+            }
+        }
+        if(errorList.size() > 0){
+            return R.fail(errorList);
+        }
+        return R.ok();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVolunteerOrgTeamServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVolunteerOrgTeamServiceImpl.java
new file mode 100644
index 0000000..60f9e99
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVolunteerOrgTeamServiceImpl.java
@@ -0,0 +1,158 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.common.ComMngVolunteerOrgTeamVo;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.service_community.dao.ComMngVolunteerMngDAO;
+import com.panzhihua.service_community.dao.ComMngVolunteerOrgTeamMapper;
+import com.panzhihua.service_community.model.dos.ComMngVolunteerMngDO;
+import com.panzhihua.service_community.model.dos.ComMngVolunteerOrgTeam;
+import com.panzhihua.service_community.service.ComMngVolunteerOrgTeamService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+
+/**
+ * 志愿者组织队伍表(ComMngVolunteerOrgTeam)表服务实现类
+ *
+ * @author lyq
+ * @since 2021-10-30 16:32:54
+ */
+@Service
+public class ComMngVolunteerOrgTeamServiceImpl  extends ServiceImpl<ComMngVolunteerOrgTeamMapper, ComMngVolunteerOrgTeam> implements ComMngVolunteerOrgTeamService {
+
+    @Resource
+    private ComMngVolunteerMngDAO comMngVolunteerMngDAO;
+
+
+    /**
+     * 通过ID查询单条数据
+     *
+     * @param id 主键
+     * @return 实例对象
+     */
+    @Override
+    public R queryById(Long id) {
+        return R.ok(this.baseMapper.queryById(id));
+    }
+
+    /**
+     * 分页查询
+     *
+     * @param comMngVolunteerOrgTeam 筛选条件
+     * @return 查询结果
+     */
+    @Override
+    public R queryByPage(PageComMngVolunteerOrgTeamDto comMngVolunteerOrgTeam) {
+        return R.ok(this.baseMapper.queryAllByLimit(comMngVolunteerOrgTeam,new Page(comMngVolunteerOrgTeam.getPageNum(), comMngVolunteerOrgTeam.getPageSize())));
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comMngVolunteerOrgTeam 实例对象
+     * @return 实例对象
+     */
+    @Override
+    public R insert(AddComMngVolunteerOrgTeamDto comMngVolunteerOrgTeam) {
+        ComMngVolunteerOrgTeam entity = new ComMngVolunteerOrgTeam();
+        BeanUtils.copyProperties(comMngVolunteerOrgTeam, entity);
+        if (this.baseMapper.insert(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param editDto 实例对象
+     * @return 实例对象
+     */
+    @Override
+    public R update(EditComMngVolunteerOrgTeamDto editDto) {
+        ComMngVolunteerOrgTeam entity = this.baseMapper.selectById(editDto.getId());
+        if(entity == null){
+            return R.fail("未查询到该记录");
+        }
+        BeanUtils.copyProperties(editDto, entity);
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败");
+    }
+
+    /**
+     * 通过主键删除数据
+     *
+     * @param id 主键
+     * @return 是否成功
+     */
+    @Override
+    public R deleteById(Long id) {
+        ComMngVolunteerOrgTeam volunteerOrgTeam = this.baseMapper.selectById(id);
+        if(volunteerOrgTeam != null){
+            //组织
+            if(volunteerOrgTeam.getParentId().equals(0L)){
+                Integer count = this.baseMapper.selectCount(new QueryWrapper<ComMngVolunteerOrgTeam>().lambda()
+                        .eq(ComMngVolunteerOrgTeam::getParentId,id));
+                if(count > 0){
+                    return R.fail("内容已引用,无法删除!");
+                }
+                Integer volunteerCount = comMngVolunteerMngDAO.selectCount(new QueryWrapper<ComMngVolunteerMngDO>().lambda()
+                        .eq(ComMngVolunteerMngDO::getOrgId,id).ne(ComMngVolunteerMngDO::getState,3));
+                if(volunteerCount > 0){
+                    return R.fail("内容已引用,无法删除!");
+                }
+            }else{//队伍
+                Integer volunteerCount = comMngVolunteerMngDAO.selectCount(new QueryWrapper<ComMngVolunteerMngDO>().lambda()
+                        .eq(ComMngVolunteerMngDO::getTeamId,id).ne(ComMngVolunteerMngDO::getState,3));
+                if(volunteerCount > 0){
+                    return R.fail("内容已引用,无法删除!");
+                }
+            }
+        }
+        if(this.baseMapper.deleteById(id) > 0){
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 社区后台-查询志愿者组织列表
+     * @param comMngVolunteerOrgTeam    请求参数
+     * @return  志愿者组织列表
+     */
+    @Override
+    public R queryByList(PageComMngVolunteerOrgTeamDto comMngVolunteerOrgTeam){
+        //查询所有组织列表
+        List<ComMngVolunteerOrgTeamVo> orgList = this.baseMapper.queryAll(comMngVolunteerOrgTeam);
+        for (ComMngVolunteerOrgTeamVo org : orgList) {
+            comMngVolunteerOrgTeam = new PageComMngVolunteerOrgTeamDto();
+            comMngVolunteerOrgTeam.setParentId(org.getId());
+            comMngVolunteerOrgTeam.setCommunityId(org.getCommunityId());
+            List<ComMngVolunteerOrgTeamVo> teamList = this.baseMapper.queryAll(comMngVolunteerOrgTeam);
+            if(!teamList.isEmpty()){
+                org.setChildList(teamList);
+            }
+        }
+        return R.ok(orgList);
+    }
+
+    /**
+     * 社区后台-志愿者组织统计
+     * @param communityId   社区id
+     * @return  志愿者组织统计
+     */
+    @Override
+    public R statisticsVolunteerOrgAdmin(Long communityId){
+        return R.ok(this.baseMapper.statisticsVolunteerOrgAdmin(communityId));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVolunteerServiceTypeServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVolunteerServiceTypeServiceImpl.java
new file mode 100644
index 0000000..798e356
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVolunteerServiceTypeServiceImpl.java
@@ -0,0 +1,122 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.service_community.dao.ComMngVolunteerOrgTeamMapper;
+import com.panzhihua.service_community.dao.ComMngVolunteerServiceTypeMapper;
+import com.panzhihua.service_community.model.dos.ComMngVolunteerOrgTeam;
+import com.panzhihua.service_community.model.dos.ComMngVolunteerServiceType;
+import com.panzhihua.service_community.service.ComMngVolunteerServiceTypeService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+
+/**
+ * 志愿者服务类型表(ComMngVolunteerServiceType)表服务实现类
+ *
+ * @author lyq
+ * @since 2021-10-30 16:47:10
+ */
+@Service
+public class ComMngVolunteerServiceTypeServiceImpl extends ServiceImpl<ComMngVolunteerServiceTypeMapper, ComMngVolunteerServiceType> implements ComMngVolunteerServiceTypeService {
+
+    @Resource
+    private ComMngVolunteerOrgTeamMapper comMngVolunteerOrgTeamMapper;
+
+    /**
+     * 通过ID查询单条数据
+     *
+     * @param id 主键
+     * @return 实例对象
+     */
+    @Override
+    public R queryById(Long id) {
+        return R.ok(this.baseMapper.queryById(id));
+    }
+
+    /**
+     * 分页查询
+     *
+     * @param comMngVolunteerServiceType 筛选条件
+     * @return 查询结果
+     */
+    @Override
+    public R queryByPage(PageComMngVolunteerServiceTypeDto comMngVolunteerServiceType) {
+        return R.ok(this.baseMapper.queryAllByLimit(comMngVolunteerServiceType,new Page(comMngVolunteerServiceType.getPageNum(), comMngVolunteerServiceType.getPageSize())));
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comMngVolunteerServiceType 实例对象
+     * @return 实例对象
+     */
+    @Override
+    public R insert(AddComMngVolunteerServiceTypeDto comMngVolunteerServiceType) {
+        ComMngVolunteerServiceType entity = new ComMngVolunteerServiceType();
+        BeanUtils.copyProperties(comMngVolunteerServiceType, entity);
+        entity.setCreateAt(new Date());
+        entity.setCreateBy(comMngVolunteerServiceType.getUserId());
+        if (this.baseMapper.insert(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param editDto 实例对象
+     * @return 实例对象
+     */
+    @Override
+    public R update(EditComMngVolunteerServiceTypeDto editDto) {
+        ComMngVolunteerServiceType entity = this.baseMapper.selectById(editDto.getId());
+        if (entity == null) {
+            return R.fail("未查询到该记录");
+        }
+        BeanUtils.copyProperties(editDto, entity);
+        entity.setUpdateAt(new Date());
+        entity.setUpdateBy(editDto.getUserId());
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败");
+    }
+
+    /**
+     * 通过主键删除数据
+     *
+     * @param id 主键
+     * @return 是否成功
+     */
+    @Override
+    public R deleteById(Long id) {
+        Integer count = comMngVolunteerOrgTeamMapper.selectCount(new QueryWrapper<ComMngVolunteerOrgTeam>().lambda()
+                .eq(ComMngVolunteerOrgTeam::getServiceTypeId,id));
+        if(count > 0){
+            return R.fail("该分类名称已被引用,无法删除!");
+        }
+        if (this.baseMapper.deleteById(id) > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    /**
+     * 社区后台-查询志愿者服务类型列表
+     * @param comMngVolunteerServiceType    请求参数
+     * @return  志愿者服务列表
+     */
+    @Override
+    public R queryByList(PageComMngVolunteerServiceTypeDto comMngVolunteerServiceType){
+        return R.ok(this.baseMapper.queryAll(comMngVolunteerServiceType));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVolunteerSkillServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVolunteerSkillServiceImpl.java
new file mode 100644
index 0000000..67ae994
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComMngVolunteerSkillServiceImpl.java
@@ -0,0 +1,122 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.dao.ComMngVolunteerMngDAO;
+import com.panzhihua.service_community.dao.ComMngVolunteerSkillMapper;
+import com.panzhihua.service_community.model.dos.ComMngVolunteerMngDO;
+import com.panzhihua.service_community.model.dos.ComMngVolunteerSkill;
+import com.panzhihua.service_community.service.ComMngVolunteerSkillService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+
+/**
+ * 志愿者技能表(ComMngVolunteerSkill)表服务实现类
+ *
+ * @author lyq
+ * @since 2021-10-30 16:47:37
+ */
+@Service("comMngVolunteerSkillService")
+public class ComMngVolunteerSkillServiceImpl extends ServiceImpl<ComMngVolunteerSkillMapper, ComMngVolunteerSkill> implements ComMngVolunteerSkillService {
+
+    @Resource
+    private ComMngVolunteerMngDAO comMngVolunteerMngDAO;
+
+
+    /**
+     * 通过ID查询单条数据
+     *
+     * @param id 主键
+     * @return 实例对象
+     */
+    @Override
+    public R queryById(Long id) {
+        return R.ok(this.baseMapper.queryById(id));
+    }
+
+    /**
+     * 分页查询
+     *
+     * @param comMngVolunteerSkill 筛选条件
+     * @return 查询结果
+     */
+    @Override
+    public R queryByPage(PageComMngVolunteerSkillDto comMngVolunteerSkill) {
+        return R.ok(this.baseMapper.queryAllByLimit(comMngVolunteerSkill,new Page(comMngVolunteerSkill.getPageNum(), comMngVolunteerSkill.getPageSize())));
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comMngVolunteerSkill 实例对象
+     * @return 实例对象
+     */
+    @Override
+    public R insert(AddComMngVolunteerSkillDto comMngVolunteerSkill) {
+        ComMngVolunteerSkill entity = new ComMngVolunteerSkill();
+        BeanUtils.copyProperties(comMngVolunteerSkill, entity);
+        entity.setCreateBy(comMngVolunteerSkill.getUserId());
+        entity.setCreateAt(new Date());
+        if (this.baseMapper.insert(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param editDto 实例对象
+     * @return 实例对象
+     */
+    @Override
+    public R update(EditComMngVolunteerSkillDto editDto) {
+        ComMngVolunteerSkill entity = this.baseMapper.selectById(editDto.getId());
+        if (entity == null) {
+            return R.fail("未查询到该记录");
+        }
+        BeanUtils.copyProperties(editDto, entity);
+        entity.setUpdateAt(new Date());
+        entity.setUpdateBy(editDto.getUserId());
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败");
+    }
+
+    /**
+     * 通过主键删除数据
+     *
+     * @param id 主键
+     * @return 是否成功
+     */
+    @Override
+    public R deleteById(Long id) {
+        Integer count = comMngVolunteerMngDAO.selectCount(new QueryWrapper<ComMngVolunteerMngDO>().lambda()
+                .eq(ComMngVolunteerMngDO::getSkillId,id).ne(ComMngVolunteerMngDO::getState,3));
+        if(count > 0){
+            return R.fail("该技能已被引用,无法删除!");
+        }
+        if (this.baseMapper.deleteById(id) > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    /**
+     * 社区后台-查询志愿者技能列表
+     * @param comMngVolunteerSkill 请求参数
+     * @return  志愿者技能列表
+     */
+    @Override
+    public R queryByList(PageComMngVolunteerSkillDto comMngVolunteerSkill){
+        return R.ok(this.baseMapper.queryAll(comMngVolunteerSkill));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComOpsAccRuleServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComOpsAccRuleServiceImpl.java
new file mode 100644
index 0000000..46475b7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComOpsAccRuleServiceImpl.java
@@ -0,0 +1,14 @@
+package com.panzhihua.service_community.service.impl;
+
+import org.springframework.stereotype.Service;
+
+import com.panzhihua.service_community.service.ComOpsAccRuleService;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 积分
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-28 16:03
+ **/
+@Service
+public class ComOpsAccRuleServiceImpl implements ComOpsAccRuleService {}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComOpsAdvServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComOpsAdvServiceImpl.java
new file mode 100644
index 0000000..0f72e5b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComOpsAdvServiceImpl.java
@@ -0,0 +1,267 @@
+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 org.springframework.beans.BeanUtils;
+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.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.dtos.AppletesBackstageConfigDTO;
+import com.panzhihua.common.model.dtos.advertisement.ComOpsAdvDTO;
+import com.panzhihua.common.model.dtos.advertisement.ComOpsAdvJumpDTO;
+import com.panzhihua.common.model.dtos.advertisement.PageComOpsAdvDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.advertisement.ComOpsAdvJumpVO;
+import com.panzhihua.common.model.vos.advertisement.ComOpsAdvPosVO;
+import com.panzhihua.common.model.vos.advertisement.ComOpsAdvVO;
+import com.panzhihua.service_community.dao.ComOpsAdvDAO;
+import com.panzhihua.service_community.dao.ComOpsAdvJumpDAO;
+import com.panzhihua.service_community.dao.ComOpsAdvPosDAO;
+import com.panzhihua.service_community.model.dos.ComOpsAdvDO;
+import com.panzhihua.service_community.model.dos.ComOpsAdvJumpDO;
+import com.panzhihua.service_community.model.dos.ComOpsAdvPosDO;
+import com.panzhihua.service_community.service.ComOpsAdvService;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 广告
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-28 15:41
+ **/
+@Service
+public class ComOpsAdvServiceImpl implements ComOpsAdvService {
+    @Resource
+    private ComOpsAdvJumpDAO comOpsAdvJumpDAO;
+    @Resource
+    private ComOpsAdvDAO comOpsAdvDAO;
+    @Resource
+    private ComOpsAdvPosDAO comOpsAdvPosDAO;
+
+    /**
+     * 获取广告跳转内容配置
+     *
+     * @return 跳转内容集合
+     */
+    @Override
+    public R getJumpContent() {
+        List<ComOpsAdvJumpVO> comOpsAdvJumpVOS = new ArrayList<>();
+        List<ComOpsAdvJumpDO> comOpsAdvJumpDOS = comOpsAdvJumpDAO.selectList(new QueryWrapper<>());
+        if (!ObjectUtils.isEmpty(comOpsAdvJumpDOS)) {
+            comOpsAdvJumpDOS.forEach(comOpsAdvJumpDO -> {
+                ComOpsAdvJumpVO comOpsAdvJumpVO = new ComOpsAdvJumpVO();
+                comOpsAdvJumpVO.setId(comOpsAdvJumpDO.getId());
+                comOpsAdvJumpVO.setJumpContent(comOpsAdvJumpDO.getJumpContent());
+                comOpsAdvJumpVOS.add(comOpsAdvJumpVO);
+            });
+        }
+        return R.ok(comOpsAdvJumpVOS);
+    }
+
+    /**
+     * 编辑运营后台系统配置
+     *
+     * @param appletesBackstageConfigDTO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R putJumpContent(AppletesBackstageConfigDTO appletesBackstageConfigDTO) {
+        List<ComOpsAdvJumpDTO> comOpsAdvJumpDTOS = appletesBackstageConfigDTO.getComOpsAdvJumpDTOS();
+        if (ObjectUtils.isEmpty(comOpsAdvJumpDTOS)) {
+            return R.fail("广告跳转内容不能为空");
+        }
+        // 查询所有正在使用的跳转内容id
+        List<Long> ids = comOpsAdvDAO.selectAllBeUsedContent();
+        List<Long> notDeleteIds = new ArrayList<>();
+        List<Long> collect =
+            comOpsAdvJumpDTOS.stream().map(comOpsAdvJumpDTO -> comOpsAdvJumpDTO.getId()).collect(Collectors.toList());
+        if (!ObjectUtils.isEmpty(ids)) {
+            ids.forEach(aLong -> {
+                if (!collect.contains(aLong)) {
+                    ComOpsAdvJumpDO comOpsAdvJumpDO = comOpsAdvJumpDAO.selectById(aLong);
+                    if (!ObjectUtils.isEmpty(comOpsAdvJumpDO)) {
+                        String jumpContent = comOpsAdvJumpDO.getJumpContent();
+                        throw new ServiceException(jumpContent + " 已经在使用无法删除");
+                    }
+                } else {
+                    notDeleteIds.add(aLong);
+                }
+            });
+        }
+        if (!ObjectUtils.isEmpty(notDeleteIds)) {
+            comOpsAdvJumpDAO
+                .delete(new QueryWrapper<ComOpsAdvJumpDO>().lambda().notIn(ComOpsAdvJumpDO::getId, notDeleteIds));
+        } else {
+            comOpsAdvJumpDAO.delete(null);
+        }
+        comOpsAdvJumpDTOS.forEach(comOpsAdvJumpDTO -> {
+            Long id = comOpsAdvJumpDTO.getId();
+            if (!ids.contains(id)) {
+                ComOpsAdvJumpDO comOpsAdvJumpDO = new ComOpsAdvJumpDO();
+                String jumpContent = comOpsAdvJumpDTO.getJumpContent();
+                if (ObjectUtils.isEmpty(jumpContent)) {
+                    throw new ServiceException("广告跳转内容不能为空");
+                }
+                comOpsAdvJumpDO.setJumpContent(jumpContent);
+                comOpsAdvJumpDAO.insert(comOpsAdvJumpDO);
+            }
+        });
+        return R.ok();
+    }
+
+    /**
+     * 首页广告banner
+     *
+     * @return 广告列表
+     */
+    @Override
+    public R listAdvertisement(Integer type) {
+        List<ComOpsAdvDO> comOpsAdvDOS = comOpsAdvDAO
+            .selectList(new QueryWrapper<ComOpsAdvDO>().lambda().eq(ComOpsAdvDO::getPosId,type)
+                    .last(" and SYSDATE() BETWEEN on_at and off_at  "));
+        List<ComOpsAdvVO> comOpsAdvVOS = new ArrayList<>();
+        if (!ObjectUtils.isEmpty(comOpsAdvDOS)) {
+            comOpsAdvDOS.forEach(comOpsAdvDO -> {
+                ComOpsAdvVO comOpsAdvVO = new ComOpsAdvVO();
+                BeanUtils.copyProperties(comOpsAdvDO, comOpsAdvVO);
+                comOpsAdvVOS.add(comOpsAdvVO);
+            });
+        }
+        return R.ok(comOpsAdvVOS);
+    }
+
+    /**
+     * 新增广告
+     *
+     * @param comOpsAdvDTO
+     * @return 新增结果
+     */
+    @Override
+    public R addAdvertisement(ComOpsAdvDTO comOpsAdvDTO) {
+        ComOpsAdvDO comOpsAdvDO = new ComOpsAdvDO();
+        BeanUtils.copyProperties(comOpsAdvDTO, comOpsAdvDO);
+        int insert = comOpsAdvDAO.insert(comOpsAdvDO);
+        if (insert > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 编辑广告
+     *
+     * @param comOpsAdvDTO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @Override
+    public R putAdvertisement(ComOpsAdvDTO comOpsAdvDTO) {
+        ComOpsAdvDO comOpsAdvDO = new ComOpsAdvDO();
+        BeanUtils.copyProperties(comOpsAdvDTO, comOpsAdvDO);
+        int update = comOpsAdvDAO.updateById(comOpsAdvDO);
+        if (update > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 广告位置下拉列表
+     *
+     * @return 位置集合
+     */
+    @Override
+    public R listadvpos() {
+        List<ComOpsAdvPosDO> comOpsAdvPosDOS = comOpsAdvPosDAO.selectList(new LambdaQueryWrapper<>());
+        List<ComOpsAdvPosVO> comOpsAdvPosVOS = new ArrayList<>();
+        comOpsAdvPosDOS.forEach(comOpsAdvPosDO -> {
+            ComOpsAdvPosVO comOpsAdvPosVO = new ComOpsAdvPosVO();
+            BeanUtils.copyProperties(comOpsAdvPosDO, comOpsAdvPosVO);
+            comOpsAdvPosVOS.add(comOpsAdvPosVO);
+        });
+        return R.ok(comOpsAdvPosVOS);
+    }
+
+    /**
+     * 跳转内容下拉集合
+     *
+     * @return 跳转集合
+     */
+    @Override
+    public R listAdvjump() {
+        List<ComOpsAdvJumpDO> comOpsAdvJumpDOS = comOpsAdvJumpDAO.selectList(new LambdaQueryWrapper<>());
+        List<ComOpsAdvJumpVO> comOpsAdvJumpVOS = new ArrayList<>();
+        if (!ObjectUtils.isEmpty(comOpsAdvJumpDOS)) {
+            comOpsAdvJumpDOS.forEach(comOpsAdvJumpDO -> {
+                ComOpsAdvJumpVO comOpsAdvJumpVO = new ComOpsAdvJumpVO();
+                BeanUtils.copyProperties(comOpsAdvJumpDO, comOpsAdvJumpVO);
+                comOpsAdvJumpVOS.add(comOpsAdvJumpVO);
+            });
+        }
+        return R.ok(comOpsAdvJumpVOS);
+    }
+
+    /**
+     * 分页查询广告
+     *
+     * @param pageComOpsAdvDTO
+     *            查询内容
+     * @return 查询结果 ComOpsAdvVO
+     */
+    @Override
+    public R pageAdvertisement(PageComOpsAdvDTO pageComOpsAdvDTO) {
+        Page page = new Page<>();
+        Long pageNum = pageComOpsAdvDTO.getPageNum();
+        Long pageSize = pageComOpsAdvDTO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<ComOpsAdvVO> iPage = comOpsAdvDAO.pageAdvertisement(page, pageComOpsAdvDTO);
+        return R.ok(iPage);
+    }
+
+    /**
+     * 广告详情
+     *
+     * @param id
+     *            主键
+     * @return 广告内容 ComOpsAdvVO
+     */
+    @Override
+    public R detailAdvertisement(Long id) {
+        ComOpsAdvVO comOpsAdvVO = comOpsAdvDAO.detailAdvertisement(id);
+        return R.ok(comOpsAdvVO);
+    }
+
+    /**
+     * 删除广告
+     *
+     * @param id
+     *            主键
+     * @return 删除结果
+     */
+    @Override
+    public R deleteAdvertisement(Long id) {
+        int delete = comOpsAdvDAO.deleteById(id);
+        if (delete > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComOpsHouseServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComOpsHouseServiceImpl.java
new file mode 100644
index 0000000..ea7ac77
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComOpsHouseServiceImpl.java
@@ -0,0 +1,201 @@
+package com.panzhihua.service_community.service.impl;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.ObjectUtils;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.enums.OpsHouseStatus;
+import com.panzhihua.common.model.dtos.community.ComOpsHouseDTO;
+import com.panzhihua.common.model.dtos.community.PageComOpsHouseDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComOpsHouseUndercarriageVO;
+import com.panzhihua.common.model.vos.community.ComOpsHouseVO;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.dao.ComOpsHouseDAO;
+import com.panzhihua.service_community.model.dos.ComOpsHouseDO;
+import com.panzhihua.service_community.service.ComOpsHouseService;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 房屋租售
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-22 14:51
+ **/
+@Service
+public class ComOpsHouseServiceImpl implements ComOpsHouseService {
+    @Resource
+    private ComOpsHouseDAO comOpsHouseDAO;
+
+    /**
+     * 房屋租售-新增
+     *
+     * @param comOpsHouseDTO
+     *            新增参数
+     * @return 新增结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R addHouse(ComOpsHouseDTO comOpsHouseDTO) {
+        ComOpsHouseDO comOpsHouseDO = new ComOpsHouseDO();
+        BeanUtils.copyProperties(comOpsHouseDTO, comOpsHouseDO);
+        int inserted = comOpsHouseDAO.insert(comOpsHouseDO);
+        return inserted == 1 ? R.ok() : R.fail();
+    }
+
+    /**
+     * 房屋租售-详情
+     *
+     * @param id
+     *            主键
+     * @return ComOpsHouseVO
+     */
+    @Override
+    public R detailHouse(Long id) {
+        ComOpsHouseDO comOpsHouseDO = comOpsHouseDAO.selectById(id);
+        if (ObjectUtils.isEmpty(comOpsHouseDO)) {
+            return R.fail("房屋租售不存在");
+        }
+        ComOpsHouseVO comOpsHouseVO = new ComOpsHouseVO();
+        BeanUtils.copyProperties(comOpsHouseDO, comOpsHouseVO);
+        Long userId = comOpsHouseDO.getUserId();
+        LoginUserInfoVO loginUserInfoVO = comOpsHouseDAO.selectUserByUserId(userId);
+        comOpsHouseVO.setUserName(loginUserInfoVO.getName());
+
+        return R.ok(comOpsHouseVO);
+    }
+
+    /**
+     * 房屋租售-修改
+     * 
+     * @param comOpsHouseVO
+     *            修改参数
+     * @return 修改结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R putHouse(ComOpsHouseVO comOpsHouseVO) {
+        ComOpsHouseDO comOpsHouseDO = new ComOpsHouseDO();
+        BeanUtils.copyProperties(comOpsHouseVO, comOpsHouseDO);
+        comOpsHouseDAO.updateById(comOpsHouseDO);
+        return R.ok();
+    }
+
+    /**
+     * 房屋租售-删除
+     *
+     * @param id
+     *            主键
+     * @return 删除结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R deleteHouse(Long id) {
+        if (id == null) {
+            return R.fail("参数错误");
+        }
+        ComOpsHouseDO oldComOpsHouseDO = comOpsHouseDAO.selectById(id);
+        if (oldComOpsHouseDO == null) {
+            return R.fail("该房屋租售信息不存在");
+        }
+        if (oldComOpsHouseDO.getStatus().equals(OpsHouseStatus.AUDIT.getCode())) {
+            return R.fail("该房屋租售信息不可删除,请刷新");
+        }
+
+        int delete = comOpsHouseDAO.deleteById(id);
+        if (delete > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 房屋租售-分页查询
+     *
+     * @param pageComOpsHouseDTO
+     *            查询参数
+     * @return ComOpsHouseVO
+     */
+    @Override
+    public R pageHouse(PageComOpsHouseDTO pageComOpsHouseDTO) {
+        Page page = new Page<>();
+        Long pageNum = pageComOpsHouseDTO.getPageNum();
+        Long pageSize = pageComOpsHouseDTO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        if (!StringUtils.isEmpty(pageComOpsHouseDTO.getUserName())) {
+            Long userId = comOpsHouseDAO.selectUserIdByName(pageComOpsHouseDTO.getUserName());
+            if (userId == null) {
+                userId = -1L;
+            }
+            pageComOpsHouseDTO.setUserId(userId);
+        }
+        IPage<ComOpsHouseVO> iPage = comOpsHouseDAO.pageHouse(page, pageComOpsHouseDTO);
+        return R.ok(iPage);
+
+    }
+
+    /**
+     * 房屋租售-上下架
+     * 
+     * @param comOpsHouseVO
+     *            上下架参数
+     * @return 上下架结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R undercarriageHouse(ComOpsHouseUndercarriageVO comOpsHouseVO) {
+
+        // 判断当前房屋租售信息状态
+        ComOpsHouseDO oldComOpsHouseDO = comOpsHouseDAO.selectById(comOpsHouseVO.getId());
+        if (oldComOpsHouseDO == null) {
+            return R.fail("该房屋租售信息不存在");
+        }
+        if (oldComOpsHouseDO.getStatus().equals(OpsHouseStatus.AUDIT.getCode())) {
+            return R.fail("该房屋租售信息不可修改,请刷新");
+        }
+
+        BeanUtils.copyProperties(comOpsHouseVO, oldComOpsHouseDO);
+        comOpsHouseDAO.updateById(oldComOpsHouseDO);
+        return R.ok();
+    }
+
+    /**
+     * 房屋租售-小程序修改
+     * 
+     * @param comOpsHouseVO
+     *            修改参数
+     * @return 修改结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R putHouseByApplets(ComOpsHouseVO comOpsHouseVO) {
+
+        ComOpsHouseDO oldComOpsHouseDO = comOpsHouseDAO.selectById(comOpsHouseVO.getId());
+        if (oldComOpsHouseDO == null) {
+            return R.fail("该房屋租售信息不存在");
+        }
+        if (oldComOpsHouseDO.getStatus().equals(OpsHouseStatus.AUDIT.getCode())) {
+            return R.fail("该房屋租售信息不可修改,请刷新");
+        }
+
+        ComOpsHouseDO comOpsHouseDO = new ComOpsHouseDO();
+        BeanUtils.copyProperties(comOpsHouseVO, comOpsHouseDO);
+        // 设置房屋租售信息为待审核
+        comOpsHouseDO.setStatus(OpsHouseStatus.AUDIT.getCode());
+        comOpsHouseDAO.updateById(comOpsHouseDO);
+        return R.ok();
+    }
+
+}
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..2f22169
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthHistoryRecordServiceImpl.java
@@ -0,0 +1,71 @@
+package com.panzhihua.service_community.service.impl;
+
+import cn.hutool.core.util.IdcardUtil;
+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.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.common.model.vos.elders.ComPensionAuthStatisticVO;
+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){
+        IPage<ComPensionAuthStatisticVO> authStatisticPage = this.baseMapper.pageAuthStatisticAdmin(new Page(
+                pensionAuthStatisticDTO.getPageNum(),pensionAuthStatisticDTO.getPageSize()),pensionAuthStatisticDTO);
+        authStatisticPage.getRecords().forEach(authStatistic -> {
+            authStatistic.setAge(IdcardUtil.getAgeByIdCard(authStatistic.getIdCard()));
+            authStatistic.setBirthday(IdcardUtil.getBirth(authStatistic.getIdCard()));
+        });
+        return R.ok(authStatisticPage);
+    }
+
+    /**
+     * 养老认证记标记
+     * @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..ab6d0ff
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPensionAuthRecordServiceImpl.java
@@ -0,0 +1,585 @@
+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.Map;
+import java.util.Objects;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.vos.community.*;
+import com.panzhihua.common.model.vos.user.SysTemplateConfigVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.service_community.dao.*;
+import com.panzhihua.service_community.model.dos.*;
+import com.panzhihua.service_community.service.ComPensionAuthPensionerService;
+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.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.utlis.AgeUtils;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.common.utlis.WxUtil;
+import com.panzhihua.common.utlis.WxXCXTempSend;
+import com.panzhihua.service_community.service.ComPensionAuthRecordService;
+
+import cn.hutool.core.util.IdcardUtil;
+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;
+    @Resource
+    private ComActActSignDAO comActActSignDAO;
+    @Value("${domain.aesKey:}")
+    private String aesKey;
+    @Resource
+    private ComPensionAuthPensionerService comPensionAuthPensionerService;
+    @Resource
+    private ComElderAuthElderliesDAO comElderAuthElderliesDAO;
+    @Resource
+    private UserService userService;
+
+    @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);
+        try {
+            //关键词为空时需要进行加密,通过加密去检索身份证号筛选高龄认证记录
+            String idCard = AESUtil.encrypt128(pageElderAuthRecordsDTO.getSearchKey(), aesKey);
+            pageElderAuthRecordsDTO.setIdCard(idCard);
+        }catch (Exception e){
+            log.error("查询高龄认证记录转换身份证号失败");
+        }
+        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);
+        comPensionAuthRecordVO.setNextIds(comPensionAuthRecordDAO.getNextIds(comPensionAuthRecordVO.getCommunityId(),authRecordId));
+        try {
+            comPensionAuthRecordVO.setAge(IdcardUtil.getAgeByIdCard(comPensionAuthRecordVO.getIdCard()));
+        }catch (Exception e){
+            log.error("身份证转换失败");
+        }
+        return R.ok(comPensionAuthRecordVO);
+    }
+
+    @Override
+    public R examinePensionAuthRecords(ComPensionAuthRecordVO comPensionAuthRecordVO) {
+        ComPensionAuthRecordDO comPensionAuthRecordDO = comPensionAuthRecordDAO.selectById(comPensionAuthRecordVO.getId());
+        if (comPensionAuthRecordDO == null) {
+            return R.fail("未查询到养老认证记录");
+        }
+
+        ComPensionAuthPensionerDO authPensionerDO = comPensionAuthPensionerDAO.selectById(comPensionAuthRecordDO.getPensionerId());
+        if(authPensionerDO == null){
+            return R.fail("未查询到老人信息");
+        }
+
+        BeanUtils.copyProperties(comPensionAuthRecordVO, comPensionAuthRecordDO);
+        if (comPensionAuthRecordVO.getApprovalStatus().equals(PASS_THROUGH.getStatus())) {
+            comPensionAuthRecordDO.setAuthStatus(CERTIFIED.getStatus());
+            sendAuthSubscribe(comPensionAuthRecordDO.getSubmitUserId(), "养老认证", "认证成功!", comPensionAuthRecordVO.getAreaCode());
+
+            authPensionerDO.setAddress(comPensionAuthRecordVO.getAddress());
+            comPensionAuthPensionerDAO.updateById(authPensionerDO);
+        } else {
+            sendAuthSubscribe(comPensionAuthRecordDO.getSubmitUserId(), "养老认证", comPensionAuthRecordVO.getRejectReason(),comPensionAuthRecordVO.getAreaCode());
+        }
+        comPensionAuthRecordDO.setApprovalDate(new Date());
+        int nub = comPensionAuthRecordDAO.updateById(comPensionAuthRecordDO);
+        if (nub < 1) {
+            return R.fail("审核失败");
+        }
+        return R.ok();
+    }
+
+    private void sendAuthSubscribe(Long userId, String name, String result,String areaCode) {
+        //发送订阅通知
+        Map<String, String> map = comActActSignDAO.getUserOpenId(userId);
+        if (map != null) {
+            String openid = map.get("openid");
+            try {
+                WxXCXTempSend util = new WxXCXTempSend();
+                String accessToken = util.getAccessToken();
+                R<SysTemplateConfigVO> sysTemplateConfigVO=userService.selectTemplate(areaCode,5);
+                WxUtil.sendSubscribeRZSH(openid, accessToken, name,
+                        DateUtils.format(new Date(), DateUtils.ymdhms_format),
+                        result,sysTemplateConfigVO.getData().getTemplateId());
+            } catch (Exception e) {
+                log.error("推送审核状态订阅消息失败,失败原因:" + e.getMessage());
+            }
+        }
+    }
+
+    @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<>();
+        // 需要更新的老人信息
+        List<ComPensionAuthPensionerDO> updatePensionerList = 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);
+
+                                    if(StringUtils.isNotEmpty(vo.getAddress())){
+                                        comPensionAuthPensionerDO.setAddress(vo.getAddress());
+                                        updatePensionerList.add(comPensionAuthPensionerDO);
+                                    }
+                                }else {
+                                    // 不存在记录,则新增
+                                    comPensionAuthRecordDO = savePensionAuthRecordsDO(vo, comPensionAuthPensionerDO, authPeriod, userId,communityId,nowDate);
+                                    saveList.add(comPensionAuthRecordDO);
+
+                                    if(StringUtils.isNotEmpty(vo.getAddress())){
+                                        comPensionAuthPensionerDO.setAddress(vo.getAddress());
+                                        updatePensionerList.add(comPensionAuthPensionerDO);
+                                    }
+                                }
+                            }else {
+                                // 不存在记录,则新增
+                                comPensionAuthRecordDO = savePensionAuthRecordsDO(vo, comPensionAuthPensionerDO, authPeriod, userId,communityId,nowDate);
+                                saveList.add(comPensionAuthRecordDO);
+
+                                if(StringUtils.isNotEmpty(vo.getAddress())){
+                                    comPensionAuthPensionerDO.setAddress(vo.getAddress());
+                                    updatePensionerList.add(comPensionAuthPensionerDO);
+                                }
+                            }
+                        }
+                    }
+                } 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("数据库更新线下认证记录完成");
+        }
+        if(!updatePensionerList.isEmpty()){
+            comPensionAuthPensionerService.updateBatchById(updatePensionerList);
+        }
+        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);
+        });
+
+
+        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.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();
+        List<ComPensionAuthRecordDO> currentAuthPeriodRecords = comPensionAuthRecordDAO
+                .selectList(new QueryWrapper<ComPensionAuthRecordDO>().lambda()
+                        .eq(ComPensionAuthRecordDO::getAuthPeriod, comPensionAuthPensionerDO)
+                        .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期已认证无需重复认证", addIdentityAuthDTO.getAuthPeriod()));
+            }
+            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(addIdentityAuthDTO.getAuthTime());
+        comPensionAuthRecordDO.setAuthPeriod(addIdentityAuthDTO.getAuthPeriod());
+        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("认证失败,请重新尝试");
+        }
+        if (addIdentityAuthDTO.getAuthMethod().intValue() == FACE_AUTH.getMethod()) {
+            sendAuthSubscribe(comPensionAuthRecordDO.getSubmitUserId(), "养老认证", "认证成功!", addIdentityAuthDTO.getAreaCode());
+        }
+        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));
+    }
+
+    @Override
+    public R add(ComElderAuthRecordVO comElderAuthRecordVO) {
+        if(!comElderAuthRecordVO.getIdCard().isEmpty()){
+            List<ComMngPopulationDO>  comMngPopulationDOS=comMngPopulationDAO.selectList(new QueryWrapper<ComMngPopulationDO>().lambda().eq(ComMngPopulationDO::getCardNoStr,comElderAuthRecordVO.getIdCard()).orderByDesc(ComMngPopulationDO::getCreateAt));
+            if(!comMngPopulationDOS.isEmpty()){
+                ComMngPopulationDO comMngPopulationDO=comMngPopulationDOS.get(0);
+                ComPensionAuthPensionerDO comPensionAuthPensionerDO=comPensionAuthPensionerDAO.selectOne(new QueryWrapper<ComPensionAuthPensionerDO>().lambda().eq(ComPensionAuthPensionerDO::getPopulationId,comMngPopulationDO.getId()));
+                if(comPensionAuthPensionerDO!=null){
+                   Integer count=comPensionAuthRecordDAO.selectCount(new QueryWrapper<ComPensionAuthRecordDO>().lambda().eq(ComPensionAuthRecordDO::getPensionerId,comPensionAuthPensionerDO.getId()).eq(ComPensionAuthRecordDO::getAuthPeriod,comElderAuthRecordVO.getAuthPeriod()));
+                   if(count==0){
+                       ComPensionAuthRecordDO comPensionAuthRecordDO=new ComPensionAuthRecordDO();
+                       BeanUtils.copyProperties(comElderAuthRecordVO,comPensionAuthRecordDO);
+                       comPensionAuthRecordDO.setApprovalStatus(PASS_THROUGH.getStatus());
+                       comPensionAuthRecordDO.setApprovalDate(new Date());
+                       comPensionAuthRecordDO.setAuthStatus(CERTIFIED.getStatus());
+                       comPensionAuthRecordDO.setAuthMethod(ComPensionAuthRecordDO.authMethod.xxrz);
+                       comPensionAuthRecordDO.setPensionerId(comPensionAuthPensionerDO.getId());
+                       comPensionAuthRecordDO.setSubmitUserId(comElderAuthRecordVO.getSubmitUserId());
+                       comPensionAuthRecordDO.setApproverId(comElderAuthRecordVO.getSubmitUserId());
+                       if (this.baseMapper.insert(comPensionAuthRecordDO) < 0) {
+                           return R.fail("认证失败,请重新尝试");
+                       }
+                       comMngPopulationDO.setPhone(comElderAuthRecordVO.getPhone());
+                       comMngPopulationDAO.updateById(comMngPopulationDO);
+                       comPensionAuthPensionerDO.setAddress(comElderAuthRecordVO.getAddress());
+                       comPensionAuthPensionerDO.setPhone(comElderAuthRecordVO.getPhone());
+                       comPensionAuthPensionerDO.setIdCard(null);
+                       comPensionAuthPensionerDAO.updateById(comPensionAuthPensionerDO);
+                       ComElderAuthElderliesDO comElderAuthElderliesDO=comElderAuthElderliesDAO.selectOne(new QueryWrapper<ComElderAuthElderliesDO>().lambda().eq(ComElderAuthElderliesDO::getPopulationId,comMngPopulationDO.getId()));
+                       if(comElderAuthElderliesDO!=null){
+                           comElderAuthElderliesDO.setAddress(comElderAuthRecordVO.getAddress());
+                           comElderAuthElderliesDO.setPhone(comElderAuthRecordVO.getPhone());
+                           comElderAuthElderliesDO.setIdCard(null);
+                           comElderAuthElderliesDAO.updateById(comElderAuthElderliesDO);
+                       }
+                       return R.ok();
+                   }
+                   return R.fail("当前期数已认证,请勿重复认证");
+                }
+                return R.fail("无养老认证数据");
+            }
+            return R.fail("该身份证无实有人口信息");
+        }
+        return R.fail("身份证不能为空");
+    }
+}
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/ComPropertyPublicityServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPropertyPublicityServiceImpl.java
new file mode 100644
index 0000000..0bd02ba
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPropertyPublicityServiceImpl.java
@@ -0,0 +1,185 @@
+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 javax.annotation.Resource;
+
+import com.panzhihua.common.model.vos.community.ComMngVillageVO;
+import com.panzhihua.common.utlis.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.community.ComPropertyPublicityDTO;
+import com.panzhihua.common.model.dtos.community.PageComPropertyPublicityDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngStructAreaVO;
+import com.panzhihua.service_community.dao.ComMngStructAreaDAO;
+import com.panzhihua.service_community.dao.ComPropertyDao;
+import com.panzhihua.service_community.dao.ComPropertyPublicityDAO;
+import com.panzhihua.service_community.entity.ComProperty;
+import com.panzhihua.service_community.model.dos.ComMngStructAreaDO;
+import com.panzhihua.service_community.model.dos.ComPropertyPublicityDO;
+import com.panzhihua.service_community.service.ComPropertyPublicityService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @title: ComPropertyPublicityServiceImpl
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 物业宣传服务实现类
+ * @author: hans
+ * @date: 2021/11/11 13:57
+ */
+@Service
+@Slf4j
+public class ComPropertyPublicityServiceImpl extends ServiceImpl<ComPropertyPublicityDAO, ComPropertyPublicityDO> implements ComPropertyPublicityService {
+
+    @Resource
+    private ComPropertyDao comPropertyDao;
+    @Resource
+    private ComMngStructAreaDAO comMngStructAreaDAO;
+
+    /**
+     * 分页查询物业宣传
+     * @param pageComPropertyPublicityDTO
+     * @return
+     */
+    @Override
+    public R pageComPropertyPublicity(PageComPropertyPublicityDTO pageComPropertyPublicityDTO) {
+        Long userId = pageComPropertyPublicityDTO.getUserId();
+        ComProperty comProperty = comPropertyDao.selectOne(new QueryWrapper<ComProperty>().lambda().eq(ComProperty::getUserId, userId));
+        if (nonNull(comProperty)) {
+            //用户为物业
+            pageComPropertyPublicityDTO.setPropertyId(comProperty.getId());
+            pageComPropertyPublicityDTO.setVillageId(comProperty.getAreaId());
+        } else {
+            //非物业用户查看是否拥有菜单权限
+            List<String> menuList = this.baseMapper.retrieveUserMenuList(userId);
+            if (menuList.isEmpty() || !menuList.contains("物业宣传栏")) {
+                return R.fail("暂无权限");
+            }
+        }
+        Page page = new Page<>();
+        page.setSize(pageComPropertyPublicityDTO.getPageSize());
+        page.setCurrent(pageComPropertyPublicityDTO.getPageNum());
+        return R.ok(this.baseMapper.pageComPropertyPublicity(page, pageComPropertyPublicityDTO));
+    }
+
+    /**
+     * 新增物业宣传
+     * @param comPropertyPublicityDTO
+     * @return
+     */
+    @Override
+    public R addComPropertyPublicity(ComPropertyPublicityDTO comPropertyPublicityDTO) {
+        Long userId = comPropertyPublicityDTO.getUserId();
+        ComProperty comProperty = comPropertyDao.selectOne(new QueryWrapper<ComProperty>().lambda().eq(ComProperty::getUserId, userId));
+        if (isNull(comProperty)) {
+            return R.fail("暂无权限");
+        }
+        comPropertyPublicityDTO.setPropertyId(comProperty.getId());
+        ComPropertyPublicityDO publicityDO = new ComPropertyPublicityDO();
+        BeanUtils.copyProperties(comPropertyPublicityDTO, publicityDO);
+        Date nowDate = new Date();
+        publicityDO.setCreatedAt(nowDate);
+        publicityDO.setUpdatedAt(nowDate);
+        int result = this.baseMapper.insert(publicityDO);
+        if (result > 0) {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    /**
+     * 修改物业宣传
+     * @param comPropertyPublicityDTO
+     * @return
+     */
+    @Override
+    public R updateComPropertyPublicity(ComPropertyPublicityDTO comPropertyPublicityDTO) {
+        ComPropertyPublicityDO comPropertyPublicityDO = this.baseMapper.selectById(comPropertyPublicityDTO.getId());
+        if (isNull(comPropertyPublicityDO)) {
+            return R.fail("信息不存在");
+        }
+        BeanUtils.copyProperties(comPropertyPublicityDTO, comPropertyPublicityDO);
+        comPropertyPublicityDO.setUpdatedAt(new Date());
+        int result = this.baseMapper.updateById(comPropertyPublicityDO);
+        if (result > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败");
+    }
+
+    /**
+     * 查看物业宣传信息
+     * @param id
+     * @return
+     */
+    @Override
+    public R getComPropertyPublicity(Long id) {
+        return R.ok(this.baseMapper.selectDetail(id));
+    }
+
+    /**
+     * 删除物业宣传
+     * @param id
+     * @return
+     */
+    @Override
+    public R deleteComPropertyPublicity(Long id) {
+        this.baseMapper.deleteById(id);
+        return R.ok();
+    }
+
+    /**
+     * 物业公司列表
+     *
+     * @param villageId
+     * @param communityId
+     * @return
+     */
+    @Override
+    public R listProperty(Long villageId, Long communityId) {
+        List<ComProperty> propertyList;
+        if (nonNull(villageId)) {
+            propertyList = comPropertyDao.selectList(new QueryWrapper<ComProperty>().lambda()
+                    .eq(ComProperty::getCommunityId, communityId).eq(ComProperty::getAreaId, villageId));
+        } else {
+            propertyList = comPropertyDao.selectList(new QueryWrapper<ComProperty>().lambda().eq(ComProperty::getCommunityId, communityId));
+        }
+        return R.ok(propertyList);
+    }
+
+    /**
+     * 分页查询物业宣传-小程序
+     * @param pageComPropertyPublicityDTO
+     * @return
+     */
+    @Override
+    public R pageComPropertyPublicityApplet(PageComPropertyPublicityDTO pageComPropertyPublicityDTO) {
+        Page page = new Page<>();
+        page.setSize(pageComPropertyPublicityDTO.getPageSize());
+        page.setCurrent(pageComPropertyPublicityDTO.getPageNum());
+        return R.ok(this.baseMapper.pageComPropertyPublicityApplet(page, pageComPropertyPublicityDTO));
+    }
+
+    /**
+     * 增加物业宣传浏览量
+     * @param id
+     * @return
+     */
+    @Override
+    public R incrView(Long id) {
+        this.baseMapper.incrView(id);
+        return R.ok();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPropertyServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPropertyServiceImpl.java
new file mode 100644
index 0000000..476b59d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPropertyServiceImpl.java
@@ -0,0 +1,154 @@
+package com.panzhihua.service_community.service.impl;
+
+import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.constants.UserConstants;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComPropertyVO;
+import com.panzhihua.common.model.vos.user.AdministratorsUserVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.service_community.entity.ComActSocialOrg;
+import com.panzhihua.service_community.entity.ComProperty;
+import com.panzhihua.service_community.dao.ComPropertyDao;
+import com.panzhihua.service_community.service.ComPropertyService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+import static org.apache.commons.lang3.StringUtils.isNotBlank;
+
+/**
+ * (ComProperty)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-09-18 10:46:51
+ */
+@Slf4j
+@Service
+public class ComPropertyServiceImpl extends ServiceImpl<ComPropertyDao, ComProperty> implements ComPropertyService {
+    @Resource
+    private ComPropertyDao comPropertyDao;
+    @Resource
+    private UserService userService;
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+    @Override
+    public R pageList(CommonPage commonPage) {
+        return R.ok(comPropertyDao.pageList(new Page(commonPage.getPage(),commonPage.getSize()),commonPage));
+    }
+
+    @Override
+    public R selectById(Long id) {
+        return null;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R insert(ComPropertyVO comPropertyVO) {
+        if(comPropertyVO!=null){
+            ComProperty comProperty=new ComProperty();
+            BeanUtils.copyProperties(comPropertyVO,comProperty);
+            if (isNotBlank(comPropertyVO.getAccount())) {
+                AdministratorsUserVO administratorsUserVO=new AdministratorsUserVO();
+                administratorsUserVO.setType(3);
+                if (comPropertyVO.getCommunityId().equals(10172)){
+                    administratorsUserVO.setType(20);
+                }
+                administratorsUserVO.setAccount(comPropertyVO.getAccount());
+                administratorsUserVO.setPassword(comPropertyVO.getPassword());
+                administratorsUserVO.setRoleId(comPropertyVO.getRoleId());
+                administratorsUserVO.setCommunityId(comPropertyVO.getCommunityId());
+                administratorsUserVO.setAreaId(comPropertyVO.getAreaId());
+                administratorsUserVO.setName(comPropertyVO.getContactName());
+                administratorsUserVO.setPhone(comPropertyVO.getPhone());
+                administratorsUserVO.setAppid(userService.detailUser(comPropertyVO.getCreateUserId()).getData().getAppId());
+                R r=userService.addUserBackstageProperty(administratorsUserVO);
+                if(R.isOk(r)){
+                    comProperty.setUserId(Long.parseLong(r.getData().toString()));
+                    comProperty.setCreateTime(DateUtil.date());
+                    this.comPropertyDao.insert(comProperty);
+                    return R.ok();
+                }
+            } else {
+                comProperty.setCreateTime(DateUtil.date());
+                this.comPropertyDao.insert(comProperty);
+                return R.ok();
+            }
+            return R.fail("账号或手机号已存在");
+        }
+        return R.fail();
+    }
+
+    @Override
+    public R update(ComPropertyVO comPropertyVO) {
+        if(comPropertyVO!=null){
+            ComProperty comProperty=new ComProperty();
+            BeanUtils.copyProperties(comPropertyVO,comProperty);
+            if(comPropertyVO.getRoleId()!=null){
+                ComProperty comPropertyBase=this.comPropertyDao.selectById(comPropertyVO.getId());
+                AdministratorsUserVO administratorsUserVO=new AdministratorsUserVO();
+                administratorsUserVO.setUserId(comPropertyBase.getUserId());
+                administratorsUserVO.setAccount(comPropertyVO.getAccount());
+                administratorsUserVO.setPassword(comPropertyVO.getPassword());
+                administratorsUserVO.setRoleId(comPropertyVO.getRoleId());
+                administratorsUserVO.setLastLoginTime(DateUtil.date());
+                administratorsUserVO.setAreaId(comPropertyVO.getAreaId());
+                this.userService.putUserBackstage(administratorsUserVO);
+                // 删除用户信息缓存
+                String userKey = UserConstants.LOGIN_USER_INFO + comPropertyBase.getUserId();
+                stringRedisTemplate.delete(userKey);
+            }
+            this.comPropertyDao.updateById(comProperty);
+
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    @Override
+    public R delete(Long id) {
+        ComProperty comProperty=comPropertyDao.selectById(id);
+        if(comProperty!=null){
+            if(comProperty.getUserId()!=null){
+                AdministratorsUserVO administratorsUserVO=new AdministratorsUserVO();
+                administratorsUserVO.setUserId(comProperty.getUserId());
+                administratorsUserVO.setCommunityId(comProperty.getCommunityId());
+                userService.deleteUserBackstage(administratorsUserVO);
+            }
+            this.comPropertyDao.deleteById(id);
+            return R.ok();
+        }
+        return R.fail("用户账号错误");
+    }
+
+    /**
+     * 物业公司详情
+     * @param id
+     * @return
+     */
+    @Override
+    public R detailProperty(Long id) {
+        ComProperty comProperty = comPropertyDao.selectById(id);
+        if (isNull(comProperty)) {
+            return R.fail("资源不存在");
+        }
+        ComPropertyVO comPropertyVO = new ComPropertyVO();
+        BeanUtils.copyProperties(comProperty, comPropertyVO);
+        comPropertyVO.setPassword(null);
+        return R.ok(comPropertyVO);
+    }
+
+    @Override
+    public R noticeList(Integer page, Integer size, Long propertyId) {
+        return R.ok(comPropertyDao.noticeList(new Page(page,size),propertyId));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPropertyWorkerServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPropertyWorkerServiceImpl.java
new file mode 100644
index 0000000..2ba3efd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComPropertyWorkerServiceImpl.java
@@ -0,0 +1,96 @@
+package com.panzhihua.service_community.service.impl;
+
+import static java.util.Objects.isNull;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.property.PagePropertyWorkerDTO;
+import com.panzhihua.common.model.dtos.property.PropertyWorkerDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.property.ComPropertyWorkerVO;
+import com.panzhihua.service_community.dao.ComPropertyWorkerDAO;
+import com.panzhihua.service_community.entity.ComPropertyWorker;
+import com.panzhihua.service_community.service.ComPropertyWorkerService;
+
+/**
+ * 物业公司工作人员(ComPropertyWorker)表服务实现类
+ *
+ * @author makejava
+ * @since 2022-04-26 09:40:00
+ */
+@Service("comPropertyWorkerService")
+public class ComPropertyWorkerServiceImpl extends ServiceImpl<ComPropertyWorkerDAO, ComPropertyWorker>
+    implements ComPropertyWorkerService {
+
+    /**
+     * 添加物业工作人员
+     * @param propertyWorkerDTO
+     * @return
+     */
+    @Override
+    public R addPropertyWorker(PropertyWorkerDTO propertyWorkerDTO) {
+        ComPropertyWorker propertyWorker = new ComPropertyWorker();
+        BeanUtils.copyProperties(propertyWorkerDTO, propertyWorker);
+        int result = this.baseMapper.insert(propertyWorker);
+        return result > 0 ? R.ok() : R.fail("操作失败,请重试");
+    }
+
+    /**
+     * 编辑物业工作人员
+     * @param propertyWorkerDTO
+     * @return
+     */
+    @Override
+    public R updatePropertyWorker(PropertyWorkerDTO propertyWorkerDTO) {
+        ComPropertyWorker propertyWorker = this.baseMapper.selectById(propertyWorkerDTO.getId());
+        if (isNull(propertyWorker)) {
+            return R.fail("资源不存在");
+        }
+        BeanUtils.copyProperties(propertyWorkerDTO, propertyWorker);
+        int result = this.baseMapper.updateById(propertyWorker);
+        return result > 0 ? R.ok() : R.fail("操作失败,请重试");
+    }
+
+    /**
+     * 删除物业工作人员
+     * @param id
+     * @return
+     */
+    @Override
+    public R deletePropertyWorker(Long id) {
+        this.baseMapper.deleteById(id);
+        return R.ok();
+    }
+
+    /**
+     * 分页查询物业工作人员
+     * @param pagePropertyWorkerDTO
+     * @return
+     */
+    @Override
+    public R pagePropertyWorker(PagePropertyWorkerDTO pagePropertyWorkerDTO) {
+        Page page = new Page<>();
+        page.setCurrent(pagePropertyWorkerDTO.getPageNum());
+        page.setSize(pagePropertyWorkerDTO.getPageSize());
+        return R.ok(this.baseMapper.pagePropertyWorker(page, pagePropertyWorkerDTO));
+    }
+
+    /**
+     * 物业工作人员详情
+     * @param id
+     * @return
+     */
+    @Override
+    public R detailPropertyWorker(Long id) {
+        ComPropertyWorker propertyWorker = this.baseMapper.selectById(id);
+        if (isNull(propertyWorker)) {
+            return R.fail("资源不存在");
+        }
+        ComPropertyWorkerVO propertyWorkerVO = new ComPropertyWorkerVO();
+        BeanUtils.copyProperties(propertyWorker, propertyWorkerVO);
+        return R.ok(propertyWorkerVO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComRehabilitationPopulationServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComRehabilitationPopulationServiceImpl.java
new file mode 100644
index 0000000..249ea5f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComRehabilitationPopulationServiceImpl.java
@@ -0,0 +1,23 @@
+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.ComRehabilitationPopulationDAO;
+import com.panzhihua.service_community.model.dos.ComRehabilitationPopulationDO;
+import com.panzhihua.service_community.service.ComRehabilitationPopulationService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 17:40:41
+ * @describe 服务实现类
+ */
+@Slf4j
+@Service
+public class ComRehabilitationPopulationServiceImpl
+    extends ServiceImpl<ComRehabilitationPopulationDAO, ComRehabilitationPopulationDO>
+    implements ComRehabilitationPopulationService {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSanShuoEventServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSanShuoEventServiceImpl.java
new file mode 100644
index 0000000..641ce06
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSanShuoEventServiceImpl.java
@@ -0,0 +1,61 @@
+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.sanshuo.ComSanshuoEventDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.dao.ComSanshuoEventDao;
+import com.panzhihua.service_community.entity.ComSanshuoEvent;
+import com.panzhihua.service_community.service.ComSanShuoEventService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+import static java.util.Objects.isNull;
+
+@Service
+public class ComSanShuoEventServiceImpl extends ServiceImpl<ComSanshuoEventDao, ComSanshuoEvent> implements ComSanShuoEventService {
+
+    @Resource
+    private ComSanshuoEventDao sanshuoEventDao;
+
+    /**
+     * 添加或修改事件类型
+     *
+     * @param comSanshuoEvent
+     * @return 处理结果
+     */
+    @Override
+    public R addOrUpdate(ComSanshuoEvent comSanshuoEvent) {
+        if (isNull(comSanshuoEvent.getName())) {
+            return R.fail("名称不能为空!");
+        }
+        if (isNull(comSanshuoEvent.getId())) {
+            //添加操作
+            comSanshuoEvent.setCreateTime(new Date());
+            int insert = sanshuoEventDao.insert(comSanshuoEvent);
+            if (insert > 0) {
+                return R.ok();
+            }
+        }
+        //修改
+        comSanshuoEvent.setUpdateTime(new Date());
+        int i = sanshuoEventDao.updateById(comSanshuoEvent);
+        if (i > 0) {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    /**
+     * 后台获取事件类型列表
+     *
+     * @param comSanshuoEventDTO
+     * @return 处理结果
+     */
+    @Override
+    public R backStageList(ComSanshuoEventDTO comSanshuoEventDTO) {
+        return R.ok(this.baseMapper.pageEvent(new Page(comSanshuoEventDTO.getPage(), comSanshuoEventDTO.getSize()), comSanshuoEventDTO));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSanShuoExpertServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSanShuoExpertServiceImpl.java
new file mode 100644
index 0000000..bf755e5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSanShuoExpertServiceImpl.java
@@ -0,0 +1,508 @@
+package com.panzhihua.service_community.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.NumberUtil;
+import cn.hutool.extra.pinyin.PinyinUtil;
+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.model.dtos.community.sanshuo.ComSanshuoExpertDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.sanshuo.ComSanshuoExpertVO;
+import com.panzhihua.common.model.vos.sanshuo.ExpertRangeVO;
+import com.panzhihua.common.model.vos.sanshuo.ExpertShowVO;
+import com.panzhihua.common.model.vos.user.AdministratorsUserVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.service_community.dao.*;
+import com.panzhihua.service_community.entity.ComEvent;
+import com.panzhihua.service_community.entity.ComSanshuoExpert;
+import com.panzhihua.service_community.entity.ComSanshuoIndustryCenter;
+import com.panzhihua.service_community.model.dos.ComActDO;
+import com.panzhihua.service_community.model.dos.ComSanshuoExpertTwoDO;
+import com.panzhihua.service_community.model.dos.ComStreetDO;
+import com.panzhihua.service_community.service.ComSanShuoExpertService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+
+@Service
+@Slf4j
+public class ComSanShuoExpertServiceImpl  extends ServiceImpl<ComSanshuoExpertDao, ComSanshuoExpert> implements ComSanShuoExpertService {
+
+    @Resource
+    private ComSanshuoExpertDao comSanshuoExpertDao;
+    @Resource
+    private UserService userService;
+    @Resource
+    private ComSanshuoIndustryCenterDao comSanshuoIndustryCenterDao;
+    @Resource
+    private ComStreetDAO comStreetDAO;
+    @Resource
+    private ComActDAO comActDAO;
+    @Resource
+    private ComEventMapper comEventMapper;
+
+
+    /**
+     * 添加专家
+     * @param comSanshuoExpertDTO
+     * @return 处理结果
+     * */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R addOrUpdateExpert(ComSanshuoExpertDTO comSanshuoExpertDTO) {
+        if (isNull(comSanshuoExpertDTO.getId())){
+            //是否重名
+            List<ComSanshuoExpert> checkExpert=comSanshuoExpertDao.selectExpertByNameOrPhoneOrAccount(comSanshuoExpertDTO);
+            if (checkExpert.size() != 0){
+                return R.fail("账号信息有重复");
+            }
+            ComSanshuoExpert expert=new ComSanshuoExpert();
+            BeanUtil.copyProperties(comSanshuoExpertDTO,expert);
+            if (nonNull(comSanshuoExpertDTO.getUnit())){
+                String id = comSanshuoExpertDTO.getUnit();
+                String[] split = id.split(",");
+                expert.setUnitId(split[split.length-1]);
+            }
+            expert.setId(Snowflake.getId());
+            expert.setCreateTime(new Date());
+            if (expert.getLevel()==2){
+                expert.setIndustryCenterId(Long.parseLong(expert.getUnitId()));
+                expert.setUnit(comSanshuoIndustryCenterDao.selectById(expert.getUnitId()).getName());
+            }else if(expert.getLevel()==3){
+                expert.setStreetId(Long.parseLong(expert.getUnitId()));
+                expert.setUnit(comStreetDAO.selectById(expert.getUnitId()).getName()+"调解站");
+            }else if(expert.getLevel()==4){
+                expert.setCommunityId(Long.parseLong(expert.getUnitId()));
+                expert.setUnit(comActDAO.selectById(expert.getUnitId()).getName()+"调解室");
+            }else{
+                expert.setUnit("区三说会堂");
+            }
+            expert.setStatus(1);
+            expert.setDelFlag(1);
+            int insert = comSanshuoExpertDao.insert(expert);
+            if (insert>0){
+                try {
+                    comSanshuoExpertDTO.setPassword(comSanshuoExpertDTO.getPassword());
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                //生成后台账号
+                //如果是普达社区专家则不生成后台账号
+                if (nonNull(expert.getCommunityId()) && !expert.getCommunityId().equals(10172)){
+                   return R.ok();
+                }
+                AdministratorsUserVO user=new AdministratorsUserVO();
+                user.setUserId(Snowflake.getId());
+                user.setAccount(comSanshuoExpertDTO.getAccount());
+                user.setPassword(comSanshuoExpertDTO.getPassword());
+                user.setName(comSanshuoExpertDTO.getName());
+                user.setType(11);
+                user.setImageUrl(comSanshuoExpertDTO.getAvatar());
+                user.setPhone(comSanshuoExpertDTO.getPhone());
+                userService.sanShuoAddUser(user);
+                return R.ok();
+            }
+        }else {
+            ComSanshuoExpert expert=new ComSanshuoExpert();
+            BeanUtil.copyProperties(comSanshuoExpertDTO,expert);
+            if (nonNull(comSanshuoExpertDTO.getUnit())){
+                String id = comSanshuoExpertDTO.getUnit();
+                String[] split = id.split(",");
+                expert.setUnitId(split[split.length-1]);
+            }
+            expert.setUpdateTime(new Date());
+            if (expert.getLevel()==2){
+                expert.setIndustryCenterId(Long.parseLong(expert.getUnitId()));
+                expert.setUnit(comSanshuoIndustryCenterDao.selectById(expert.getUnitId()).getName()+"调解站");
+            }else if(expert.getLevel()==3){
+                expert.setStreetId(Long.parseLong(expert.getUnitId()));
+                expert.setUnit(comStreetDAO.selectById(expert.getUnitId()).getName()+"调解站");
+            }else if(expert.getLevel()==4){
+                if (nonNull(expert.getUnitId())){
+                    expert.setCommunityId(Long.parseLong(expert.getUnitId()));
+                    expert.setUnit(comActDAO.selectById(expert.getUnitId()).getName()+"调解站");
+                }
+            }
+            return R.ok(comSanshuoExpertDao.updateById(expert));
+        }
+
+        return R.fail("操作失败");
+    }
+
+
+    /**
+     * 后台获取专家列表
+     * @param page
+     * @param keyWord
+     * @param size
+     * @param loginUserInfo 登陆账号信息
+     * @return 处理结果
+     * */
+    @Override
+    public R expertPage(String keyWord, Integer page, Integer size, LoginUserInfoVO loginUserInfo,Integer level) {
+        //range:1.三说会堂下属,2业务中心下属,3街道下属,4社区下属
+        //id:社区或街道或业务中心id
+        //账号级别
+        Long id=null;
+        Integer range=null;
+        if (nonNull(loginUserInfo)){
+            if (nonNull(loginUserInfo.getUserType()) || nonNull(loginUserInfo.getType())){
+                if (nonNull(loginUserInfo.getUserType())){
+                    if (loginUserInfo.getUserType().equals(1)){
+                        range=3;
+                        id=loginUserInfo.getStreetId();
+                    }else if (loginUserInfo.getUserType().equals(2)){
+                        range=4;
+                        id=loginUserInfo.getCommunityId();
+                    }
+                }else if (loginUserInfo.getType().equals(11)){
+                    range=2;
+                    id=loginUserInfo.getCommunityId();
+                }else if (loginUserInfo.getType().equals(7)){
+                    //街道后台
+                    range=3;
+                    id=loginUserInfo.getStreetId();
+                }else if (loginUserInfo.getType().equals(12)){
+                    range=2;
+                    id=comSanshuoIndustryCenterDao.selectOne(new QueryWrapper<ComSanshuoIndustryCenter>().lambda().eq(ComSanshuoIndustryCenter::getAccount,loginUserInfo.getAccount() )).getId();
+                }else if (loginUserInfo.getType().equals(3)){
+                    //社区后台账号
+                    range=4;
+                    id=loginUserInfo.getCommunityId();
+                }
+            }
+        }
+        if (loginUserInfo.getAccount().equals("admin")){
+            //三说会堂查看所有专家
+            id=null;
+            range=1;
+        }
+        log.info("");
+        IPage<ComSanshuoExpertVO> comSanshuoExpertVOIPage = comSanshuoExpertDao.expertPage(new Page(page, size), keyWord, range, id, level,loginUserInfo.getAppId());
+        for (ComSanshuoExpertVO record : comSanshuoExpertVOIPage.getRecords()) {
+            //获取调解次数和成功率
+            record.setCount(comEventMapper.selectCount(new QueryWrapper<ComEvent>().lambda().eq(ComEvent::getSpecialistId, record.getId())));
+            record.setSuccessCount(comEventMapper.selectCount(new QueryWrapper<ComEvent>().lambda().eq(ComEvent::getSpecialistId, record.getId()).eq(ComEvent::getEventResult,2 )));
+            if (nonNull(record.getCount()) && nonNull(record.getSuccessCount())){
+                if (!record.getCount().equals(0) && !record.getSuccessCount().equals(0)){
+                    record.setRate(NumberUtil.div(record.getSuccessCount(), record.getCount(),2));
+                }
+
+            }
+        }
+        return R.ok(comSanshuoExpertVOIPage);
+    }
+
+    /**
+     * 专家风采
+     * */
+    @Override
+    public R expertShow(String appId) {
+        List<ExpertShowVO> expertShowVOS = comSanshuoExpertDao.expertShow(appId);
+        for (ExpertShowVO expertShowVO : expertShowVOS) {
+            if (nonNull(expertShowVO.getLevel())){
+                if (1==expertShowVO.getLevel()) {
+                    expertShowVO.setName("区三说会堂调解专家");
+                    expertShowVO.setCount(comSanshuoExpertDao.selectExpertVoList());
+                }else if (2==expertShowVO.getLevel()){
+                    expertShowVO.setName("行业分中心调解专家");
+                    List<ExpertShowVO> expertShowVOS1 = comSanshuoExpertDao.selectExpertIndustry();
+                    expertShowVO.setChildList(expertShowVOS1);
+                }else if (3==expertShowVO.getLevel()){
+                    expertShowVO.setName("镇/街道调解站调解专家");
+                    List<ExpertShowVO> expertShowVOS1 = comSanshuoExpertDao.selectExpertStreet();
+                    expertShowVO.setChildList(expertShowVOS1);
+                }else {
+                    expertShowVO.setName("村/社区调解站调解专家");
+                    List<ExpertShowVO> expertShowVOS1 = comSanshuoExpertDao.selectExpertCommunity(appId);
+                    expertShowVO.setChildList(expertShowVOS1);
+                }
+            }
+        }
+        return R.ok(expertShowVOS);
+    }
+
+
+    /**
+     * 专家级别与单位范围
+     * */
+    @Override
+    public R expertRange(LoginUserInfoVO loginUserInfo) {
+//        if (loginUserInfo!=null){
+            if (loginUserInfo.getAccount().equals("zhengfawei") || loginUserInfo.getAccount().equals("admin")){
+                List<ExpertRangeVO> list=new ArrayList<>();
+                for (int i = 1; i < 5; i++) {
+                    ExpertRangeVO vo=new ExpertRangeVO();
+                    vo.setLevel(i);
+                    if (i==2){
+                        //设置行业分中心为childList
+                        vo.setId(2L);
+                        vo.setChildList(comSanshuoIndustryCenterDao.indstryList());
+                        vo.setName("行业分中心");
+                    }else if (i==3){
+                        vo.setId(3L);
+                        vo.setChildList(comSanshuoIndustryCenterDao.streetList());
+                        vo.setName("街道调解站");
+                    }else if (i==4){
+                        vo.setId(4L);
+                        vo.setChildList(comSanshuoIndustryCenterDao.communityList());
+                        vo.setName("社区调解室");
+                    }else if(i==1){
+                        vo.setId(1L);
+                        vo.setName("三说会堂");
+                    }
+                    list.add(vo);
+                }
+                return R.ok(list);
+            }else if (loginUserInfo.getType().equals(11)){
+                //三说会堂后台
+                List<ExpertRangeVO> list=new ArrayList<>();
+                ExpertRangeVO vo=new ExpertRangeVO();
+                vo.setLevel(1);
+                vo.setName("区三说会堂");
+                list.add(vo);
+                return R.ok(list);
+            }else if (loginUserInfo.getType().equals(12)){
+                //行业分中心后台
+                List<ExpertRangeVO> list=new ArrayList<>();
+                ExpertRangeVO vo=new ExpertRangeVO();
+                vo.setLevel(2);
+                vo.setName("行业分中心");
+                vo.setId(comSanshuoIndustryCenterDao.selectOne(new QueryWrapper<ComSanshuoIndustryCenter>().lambda().eq(ComSanshuoIndustryCenter::getAccount, loginUserInfo.getAccount())).getId());
+                list.add(vo);
+                return R.ok(list);
+            }else if (loginUserInfo.getType().equals(3)) {
+                //社区账号
+                ComActDO comStreetDO = comActDAO.selectById(loginUserInfo.getCommunityId());
+                List<ExpertRangeVO> list = new ArrayList<>();
+                ExpertRangeVO vo = new ExpertRangeVO();
+                vo.setLevel(4);
+                vo.setName(comStreetDO.getName() + "调解室");
+                vo.setId(loginUserInfo.getCommunityId());
+                list.add(vo);
+                return R.ok(list);
+            } else if (loginUserInfo.getType().equals(7)){
+                //街道账号
+                ComStreetDO comActDO = comStreetDAO.selectById(loginUserInfo.getStreetId());
+                List<ExpertRangeVO> list=new ArrayList<>();
+                ExpertRangeVO vo=new ExpertRangeVO();
+                vo.setLevel(4);
+                vo.setName(comActDO.getName()+"调解站");
+                vo.setId(loginUserInfo.getStreetId());
+                list.add(vo);
+                return R.ok(list);
+            }
+//        }
+        return R.ok("测试陈宫:"+loginUserInfo.getUserType());
+    }
+
+    /**
+     * 小程序获取专家列表
+     * */
+    @Override
+    public R selectExpertList(Integer type,Long id,Long cid) {
+        List<ComSanshuoExpert> list=new ArrayList<>();
+        if (type.equals(1)){
+            //行业分中心下属专家
+            list=comSanshuoExpertDao.selectList(new QueryWrapper<ComSanshuoExpert>().lambda().
+                    eq(ComSanshuoExpert::getStatus, 1).
+                    eq(ComSanshuoExpert::getDelFlag,1 ).
+                    eq(ComSanshuoExpert::getIndustryCenterId, id));
+        }else {
+            if (nonNull(id)){
+                list=comSanshuoExpertDao.selectList(new QueryWrapper<ComSanshuoExpert>().lambda().
+                        eq(ComSanshuoExpert::getStatus, 1).
+                        eq(ComSanshuoExpert::getDelFlag,1 ).
+                        eq(ComSanshuoExpert::getCommunityId, id));
+            }else {
+                list=comSanshuoExpertDao.selectList(new QueryWrapper<ComSanshuoExpert>().lambda().
+                        eq(ComSanshuoExpert::getStatus, 1).
+                        eq(ComSanshuoExpert::getDelFlag,1 ).
+                        eq(ComSanshuoExpert::getCommunityId,cid ));
+            }
+        }
+        return R.ok(list);
+    }
+
+
+    /**
+     * 专家风采列表
+     * */
+    @Override
+    public R expertShowList(Integer level, Long id,String appId) {
+        QueryWrapper<ComSanshuoExpert> wrapper=new QueryWrapper<>();
+        if (level==0){
+            wrapper.eq("app_id",appId );
+        }else {
+            if (level!=7){
+                wrapper.eq("level",level);
+                wrapper.eq("app_id",appId);
+                wrapper.eq("status",1 );
+                wrapper.eq("del_flag",1 );
+                if (level.equals(2)){
+                    wrapper.eq("industry_center_id", id);
+                }else if (level.equals(3)){
+                    wrapper.eq("street_id",id );
+                }else if (level.equals(4)){
+                    wrapper.eq("community_id",id );
+                }
+            }else {
+                wrapper.eq("id",id );
+            }
+        }
+        wrapper.orderByDesc("(select count(*) FROM com_sanshuo_event_info where specialist_id=com_sanshuo_expert.id and event_process_status=6 and event_result=2)/(select count(*) FROM com_sanshuo_event_info where specialist_id=com_sanshuo_expert.id and event_process_status=6 ) ");
+        wrapper.orderByDesc("(select count(*) FROM com_sanshuo_event_info where specialist_id=com_sanshuo_expert.id and event_process_status=6 )");
+        List<ComSanshuoExpert> comSanshuoExperts = comSanshuoExpertDao.selectList(wrapper);
+        for (ComSanshuoExpert comSanshuoExpert : comSanshuoExperts) {
+            //获取成功率
+            //查询成功率
+            Integer count = comEventMapper.selectCount(new QueryWrapper<ComEvent>().lambda().eq(ComEvent::getSpecialistId, comSanshuoExpert.getId()).eq(ComEvent::getEventProcessStatus, 6));
+            Integer successCount = comEventMapper.selectCount(new QueryWrapper<ComEvent>().lambda().eq(ComEvent::getSpecialistId, comSanshuoExpert.getId()).eq(ComEvent::getEventProcessStatus, 6).eq(ComEvent::getEventResult, 2));
+            comSanshuoExpert.setCount(count);
+            if (nonNull(successCount) && nonNull(count)){
+                if (!successCount.equals(0) && !count.equals(0)){
+                        //计算成功率
+                        comSanshuoExpert.setRate(NumberUtil.div(successCount, count,2));
+                }
+                else {
+                    comSanshuoExpert.setRate(new BigDecimal(0));
+                }
+            }else {
+                comSanshuoExpert.setRate(new BigDecimal(0));
+            }
+
+        }
+        ComSanshuoExpertTwoDO comSanshuoExpertTwoVo=new ComSanshuoExpertTwoDO();
+        List<ComSanshuoExpert> comSanshuoExpertsOne=new ArrayList<>();
+        List<ComSanshuoExpert> comSanshuoExpertsTwo=new ArrayList<>();
+        for (ComSanshuoExpert comSanshuoExpert : comSanshuoExperts){
+            if (comSanshuoExpert.getId()%2==1){
+                comSanshuoExpertsOne.add(comSanshuoExpert);
+            }else {
+                comSanshuoExpertsTwo.add(comSanshuoExpert);
+            }
+        }
+        if (level==0){
+            comSanshuoExpertTwoVo.setComSanshuoExperts(comSanshuoExpertsOne);
+            comSanshuoExpertTwoVo.setComSanshuoExpertsTwo(comSanshuoExpertsTwo);
+            return R.ok(comSanshuoExpertTwoVo);
+        }
+        else {
+            return R.ok(comSanshuoExperts);
+        }
+     }
+
+    @Override
+    public void insertExpert(ComSanshuoExpert expert) {
+//            if (nonNull(comSanshuoExpertDTO.getUnit())){
+//                String id = comSanshuoExpertDTO.getUnit();
+//                String[] split = id.split(",");
+//                expert.setUnitId(split[split.length-1]);
+//            }
+            expert.setId(Snowflake.getId());
+            expert.setCreateTime(new Date());
+            if (expert.getLevel()==2){
+                expert.setIndustryCenterId(Long.parseLong(expert.getUnitId()));
+                expert.setUnit(comSanshuoIndustryCenterDao.selectById(expert.getUnitId()).getName()+"调解站");
+            }else if(expert.getLevel()==3){
+                expert.setStreetId(Long.parseLong(expert.getUnitId()));
+                expert.setUnit(comStreetDAO.selectById(expert.getUnitId()).getName()+"调解站");
+            }else if(expert.getLevel()==4){
+                expert.setCommunityId(Long.parseLong(expert.getUnitId()));
+                expert.setUnit(comActDAO.selectById(expert.getUnitId()).getName()+"调解站");
+            }
+            expert.setStatus(1);
+            expert.setDelFlag(1);
+            expert.setCreateBy("admin");
+            expert.setCreateTime(new Date());
+            expert.setAdded(0);
+            expert.setPassword("Huacheng@123");
+            expert.setAccount(PinyinUtil.getPinyin(expert.getName(),""));
+            int insert = comSanshuoExpertDao.insert(expert);
+            if (insert>0){
+                log.info(expert.getName()+"添加完成");
+            }
+//            if (insert>0){
+//                try {
+//                    comSanshuoExpertDTO.setPassword(comSanshuoExpertDTO.getPassword());
+//                } catch (Exception e) {
+//                    e.printStackTrace();
+//                }
+//                //生成后台账号
+//                AdministratorsUserVO user=new AdministratorsUserVO();
+//                user.setUserId(Snowflake.getId());
+//                user.setAccount(comSanshuoExpertDTO.getAccount());
+//                user.setPassword(comSanshuoExpertDTO.getPassword());
+//                user.setName(comSanshuoExpertDTO.getName());
+//                user.setType(11);
+//                user.setImageUrl(comSanshuoExpertDTO.getAvatar());
+//                user.setPhone(comSanshuoExpertDTO.getPhone());
+//                userService.sanShuoAddUser(user);
+//            }
+    }
+
+    @Override
+    public R backstageList(Integer level,LoginUserInfoVO loginUserInfoVO,Integer page,Integer size,String keyWord) {
+        if (nonNull(level)){
+            if (level.equals(1)){
+                //三说会堂权限,查看所有
+                return R.ok(comSanshuoExpertDao.expertList(new Page(page,size),level,null ,loginUserInfoVO.getAppId(),keyWord));
+            }else if (level.equals(2)){
+                //行业分中心
+                ComSanshuoIndustryCenter center = comSanshuoIndustryCenterDao.selectOne(new QueryWrapper<ComSanshuoIndustryCenter>().lambda().eq(ComSanshuoIndustryCenter::getAccount, loginUserInfoVO.getAccount()));
+                return R.ok(comSanshuoExpertDao.expertList(new Page(page,size),level,center.getId(),loginUserInfoVO.getAppId(),keyWord));
+            }else if (level.equals(3)){
+                //街道
+                return R.ok(comSanshuoExpertDao.expertList(new Page(page,size),level,loginUserInfoVO.getStreetId(),loginUserInfoVO.getAppId(),keyWord));
+            }else if(level.equals(4)){
+                return R.ok(comSanshuoExpertDao.expertList(new Page(page,size),level,loginUserInfoVO.getCommunityId(),loginUserInfoVO.getAppId(),keyWord));
+            }
+        }else {
+            return R.ok(comSanshuoExpertDao.expertList(new Page(page,size),level,loginUserInfoVO.getCommunityId(),loginUserInfoVO.getAppId(),keyWord));
+        }
+        return null;
+    }
+
+    @Override
+    public R rangeList() {
+        List<ExpertRangeVO> list=new ArrayList<>();
+        for (int i = 1; i < 5; i++) {
+            ExpertRangeVO vo=new ExpertRangeVO();
+            vo.setLevel(i);
+            if (i==2){
+                //设置行业分中心为childList
+                vo.setId(2L);
+                vo.setChildList(comSanshuoIndustryCenterDao.indstryList());
+                vo.setName("行业分中心");
+            }else if (i==3){
+                vo.setId(3L);
+                vo.setChildList(comSanshuoIndustryCenterDao.streetList());
+                vo.setName("街道调解站");
+            }else if (i==4){
+                vo.setId(4L);
+                vo.setChildList(comSanshuoIndustryCenterDao.communityList());
+                vo.setName("社区调解站");
+            }else if(i==1){
+                vo.setId(1L);
+                vo.setName("三说会堂");
+            }
+            list.add(vo);
+        }
+        return R.ok(list);
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSanShuoIndustryCenterServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSanShuoIndustryCenterServiceImpl.java
new file mode 100644
index 0000000..f97541c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSanShuoIndustryCenterServiceImpl.java
@@ -0,0 +1,101 @@
+package com.panzhihua.service_community.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+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.model.dtos.community.sanshuo.ComSanShuoIndustryCenterDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.user.AdministratorsUserVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.service_community.dao.ComSanshuoIndustryCenterDao;
+import com.panzhihua.service_community.dao.SysUserDao;
+import com.panzhihua.service_community.entity.ComSanshuoIndustryCenter;
+import com.panzhihua.service_community.entity.SysUser;
+import com.panzhihua.service_community.service.ComSanShuoIndustryCenterService;
+import com.panzhihua.service_community.util.MyAESUtil;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+import java.util.Date;
+
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+
+@Service
+public class ComSanShuoIndustryCenterServiceImpl extends ServiceImpl<ComSanshuoIndustryCenterDao, ComSanshuoIndustryCenter> implements ComSanShuoIndustryCenterService {
+
+    @Resource
+    private ComSanshuoIndustryCenterDao comSanshuoIndustryCenterDao;
+    @Resource
+    private UserService userService;
+
+    /**
+     * 后台业务中心列表
+     * @param keyWord 搜索关键字
+     * @param page
+     * @param size
+     * @return 处理结果
+     * */
+    @Override
+    public R pageIndustryCenter(String keyWord, Integer page, Integer size) {
+        return R.ok(comSanshuoIndustryCenterDao.pageIndustryCenter(new Page(page,size),keyWord));
+    }
+
+    /**
+     * 添加或修改业务中心信息
+     * @param comSanShuoIndustryCenterDTO
+     * @return 处理结果
+     * */
+    @Override
+    public R addOrUpdate(ComSanShuoIndustryCenterDTO comSanShuoIndustryCenterDTO) {
+        ComSanshuoIndustryCenter comSanshuoIndustryCenter = comSanshuoIndustryCenterDao.selectOne(new QueryWrapper<ComSanshuoIndustryCenter>().eq("name", comSanShuoIndustryCenterDTO.getName()));
+        if (isNull(comSanShuoIndustryCenterDTO.getId())){
+            if (nonNull(comSanshuoIndustryCenter)){
+                return R.fail("业务中心已存在");
+            }
+            ComSanshuoIndustryCenter center=new ComSanshuoIndustryCenter();
+            BeanUtil.copyProperties(comSanShuoIndustryCenterDTO,center);
+            //添加
+            center.setId(Snowflake.getId());
+            center.setCreateTime(new Date());
+            int insert = comSanshuoIndustryCenterDao.insert(center);
+            if (insert>0){
+                //创建后台登陆账号
+                AdministratorsUserVO user=new AdministratorsUserVO();
+                user.setUserId(Snowflake.getId());
+                user.setAccount(comSanShuoIndustryCenterDTO.getAccount());
+                user.setName(comSanShuoIndustryCenterDTO.getName());
+                user.setType(12);
+                try {
+                    user.setPassword(comSanShuoIndustryCenterDTO.getPassword());
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                return userService.sanShuoAddUser(user);
+            }
+        }else {
+            ComSanshuoIndustryCenter center=new ComSanshuoIndustryCenter();
+            BeanUtil.copyProperties(comSanShuoIndustryCenterDTO,center);
+            center.setUpdateTime(new Date());
+            int i = comSanshuoIndustryCenterDao.updateById(center);
+            if (i>0){
+                return R.ok();
+            }
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R resetPassword(ComSanshuoIndustryCenter center) {
+        try {
+            return userService.sanShuoResetPassword(center.getAccount(), center.getPassword());
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return R.fail();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSentencePopulationServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSentencePopulationServiceImpl.java
new file mode 100644
index 0000000..93079b6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSentencePopulationServiceImpl.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.ComSentencePopulationDAO;
+import com.panzhihua.service_community.model.dos.ComSentencePopulationDO;
+import com.panzhihua.service_community.service.ComSentencePopulationService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 17:41:26
+ * @describe 服务实现类
+ */
+@Slf4j
+@Service
+public class ComSentencePopulationServiceImpl extends ServiceImpl<ComSentencePopulationDAO, ComSentencePopulationDO>
+    implements ComSentencePopulationService {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopCartServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopCartServiceImpl.java
new file mode 100644
index 0000000..8cd2187
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopCartServiceImpl.java
@@ -0,0 +1,247 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.shop.ComShopCartDTO;
+import com.panzhihua.common.model.dtos.shop.ComShopEditNubCartDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.shop.ComShopCartListVO;
+import com.panzhihua.common.model.vos.shop.ComShopCartStoreVO;
+import com.panzhihua.common.model.vos.shop.ComShopCartVO;
+import com.panzhihua.service_community.dao.ComShopCartDAO;
+import com.panzhihua.service_community.dao.ComShopGoodsAttrDAO;
+import com.panzhihua.service_community.dao.ComShopGoodsDAO;
+import com.panzhihua.service_community.dao.ComShopStoreDAO;
+import com.panzhihua.service_community.model.dos.ComShopCartDO;
+import com.panzhihua.service_community.model.dos.ComShopGoodsAttrDO;
+import com.panzhihua.service_community.model.dos.ComShopGoodsDO;
+import com.panzhihua.service_community.model.dos.ComShopStoreDO;
+import com.panzhihua.service_community.service.ComShopCartService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:14
+ * @describe 购物车表服务实现类
+ */
+@Slf4j
+@Service
+public class ComShopCartServiceImpl extends ServiceImpl<ComShopCartDAO, ComShopCartDO> implements ComShopCartService {
+
+    @Resource
+    private ComShopGoodsDAO shopGoodsDAO;
+    @Resource
+    private ComShopStoreDAO shopStoreDAO;
+    @Resource
+    private ComShopGoodsAttrDAO shopGoodsAttrDAO;
+
+    /**
+     * 根据用户id查询购物车列表
+     * 
+     * @param userId
+     *            用户id
+     * @return 购物车列表
+     */
+    @Override
+    public R shopCartList(Long userId) {
+        // 返回参数
+        ComShopCartListVO comShopCart = new ComShopCartListVO();
+        // 失效宝贝集合
+        List<ComShopCartVO> invalidCartList = new ArrayList<>();
+        // 有效宝贝集合
+        List<ComShopCartStoreVO> cartList = new ArrayList<>();
+
+        List<ComShopCartDO> shopCartDOList =
+            this.baseMapper.selectList(new QueryWrapper<ComShopCartDO>().eq("user_id", userId));
+        if (!shopCartDOList.isEmpty()) {
+            shopCartDOList.forEach(shopCart -> {
+                // 查询当前商品是否是有效商品
+                ComShopGoodsDO goodsDO =
+                    shopGoodsDAO.selectOne(new QueryWrapper<ComShopGoodsDO>().eq("id", shopCart.getGoodsId())
+                        .eq("delete_status", ComShopGoodsDO.deleteStatus.no).eq("status", ComShopGoodsDO.status.sell));
+                if (goodsDO == null) {
+                    ComShopCartVO invalidCart = new ComShopCartVO();
+                    BeanUtils.copyProperties(shopCart, invalidCart);
+                    invalidCartList.add(invalidCart);
+                    return;
+                }
+
+                // 有效商品区分店铺
+                if (cartList.isEmpty()) {
+                    ComShopCartStoreVO cartStoreVO = new ComShopCartStoreVO();
+                    // 查询商品所属店铺
+                    ComShopStoreDO shopStoreDO = shopStoreDAO.selectById(goodsDO.getStoreId());
+                    if (shopStoreDO != null) {
+                        cartStoreVO.setStoreId(shopStoreDO.getId());
+                        cartStoreVO.setStoreName(shopStoreDO.getName());
+                        cartStoreVO.setStoreLogo(shopStoreDO.getLogo());
+                    }
+                    List<ComShopCartVO> cartsList = new ArrayList<>();
+                    ComShopCartVO cartVO = new ComShopCartVO();
+                    BeanUtils.copyProperties(shopCart, cartVO);
+                    cartsList.add(cartVO);
+                    cartStoreVO.setCartList(cartsList);
+                    cartList.add(cartStoreVO);
+                } else {
+                    boolean isOk = true;
+                    for (ComShopCartStoreVO vo : cartList) {
+                        if (vo.getStoreId().equals(goodsDO.getStoreId())) {
+                            isOk = false;
+                            ComShopCartVO cartVO = new ComShopCartVO();
+                            BeanUtils.copyProperties(shopCart, cartVO);
+                            vo.getCartList().add(cartVO);
+                        }
+                    }
+
+                    if (isOk) {
+                        ComShopCartStoreVO cartStoreVO = new ComShopCartStoreVO();
+                        // 查询商品所属店铺
+                        ComShopStoreDO shopStoreDO = shopStoreDAO.selectById(goodsDO.getStoreId());
+                        if (shopStoreDO != null) {
+                            cartStoreVO.setStoreId(shopStoreDO.getId());
+                            cartStoreVO.setStoreName(shopStoreDO.getName());
+                            cartStoreVO.setStoreLogo(shopStoreDO.getLogo());
+                        }
+                        List<ComShopCartVO> cartsList = new ArrayList<>();
+                        ComShopCartVO cartVO = new ComShopCartVO();
+                        BeanUtils.copyProperties(shopCart, cartVO);
+                        cartsList.add(cartVO);
+                        cartStoreVO.setCartList(cartsList);
+                        cartList.add(cartStoreVO);
+                    }
+
+                }
+
+            });
+            // 设置返回参数
+            comShopCart.setInvalidCartList(invalidCartList);
+            comShopCart.setCartList(cartList);
+        }
+        return R.ok(comShopCart);
+    }
+
+    /**
+     * 购物车添加
+     * 
+     * @param comShopCartDTO
+     *            请求参数
+     * @return 添加结果
+     */
+    @Override
+    public R shopAddCart(ComShopCartDTO comShopCartDTO) {
+        // 查询当前商品是否已经在购物车中
+        ComShopCartDO shopCartDO =
+            this.baseMapper.selectOne(new QueryWrapper<ComShopCartDO>().eq("user_id", comShopCartDTO.getUserId())
+                .eq("goods_id", comShopCartDTO.getGoodsId()).eq("goods_attr_id", comShopCartDTO.getGoodsAttrId()));
+        if (shopCartDO == null) {// 购物车表里未有该商品的记录
+            shopCartDO = new ComShopCartDO();
+            shopCartDO.setUserId(comShopCartDTO.getUserId());
+            shopCartDO.setAmount(comShopCartDTO.getNumber());
+            // 查询商品
+            ComShopGoodsDO shopGoodsDO = shopGoodsDAO.selectById(comShopCartDTO.getGoodsId());
+            if (shopGoodsDO == null) {
+                return R.fail("未查询到商品信息");
+            }
+            shopCartDO.setGoodsName(shopGoodsDO.getName());
+            shopCartDO.setGoodsId(shopGoodsDO.getId());
+            shopCartDO.setStoreId(shopGoodsDO.getStoreId());
+            // 查询商品规格
+            ComShopGoodsAttrDO shopGoodsAttrDO = shopGoodsAttrDAO.selectById(comShopCartDTO.getGoodsAttrId());
+            if (shopGoodsAttrDO == null) {
+                return R.fail("未查询到商品规格");
+            }
+            shopCartDO.setGoodsAttrId(shopGoodsAttrDO.getId());
+            shopCartDO.setGoodsAttr(shopGoodsAttrDO.getGoodsAttr());
+            shopCartDO.setGoodsAttrPic(shopGoodsAttrDO.getAttrPic());
+            shopCartDO.setPrice(shopGoodsAttrDO.getPrice());
+            // 执行添加操作
+            if (this.baseMapper.insert(shopCartDO) > 0) {
+                return R.ok();
+            } else {
+                return R.fail("添加购物车失败");
+            }
+        } else {// 购物车已有该商品
+            shopCartDO.setAmount(shopCartDO.getAmount() + comShopCartDTO.getNumber());
+            // 执行修改操作
+            if (this.baseMapper.updateById(shopCartDO) > 0) {
+                return R.ok();
+            } else {
+                return R.fail("添加购物车失败");
+            }
+        }
+    }
+
+    /**
+     * 购物车内商品数量修改
+     * 
+     * @param shopEditNubCartDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    @Override
+    public R shopEditNubCart(ComShopEditNubCartDTO shopEditNubCartDTO) {
+        // 查询购物车记录
+        ComShopCartDO shopCartDO = this.baseMapper.selectById(shopEditNubCartDTO.getCartId());
+        if (shopCartDO == null) {
+            return R.fail("未查询到购物车记录");
+        }
+        shopCartDO.setAmount(shopEditNubCartDTO.getNumber());
+        // 执行修改操作
+        if (this.baseMapper.updateById(shopCartDO) > 0) {
+            return R.ok();
+        } else {
+            return R.fail("修改失败");
+        }
+    }
+
+    /**
+     * 删除购物车记录
+     * 
+     * @param Ids
+     *            购物车id集合
+     * @return 删除结果
+     */
+    public R shopDelCart(List<Long> Ids) {
+        if (this.baseMapper.deleteBatchIds(Ids) > 0) {
+            return R.ok();
+        } else {
+            return R.fail("修改失败");
+        }
+    }
+
+    /**
+     * 查询用户购物车商品数量
+     * 
+     * @param userId
+     *            用户id
+     * @return 用户购物车商品数量
+     */
+    public R shopCartUserTotal(Long userId) {
+        int goodsNum = 0;
+        // 查询用户购物车所有商品集合
+        List<ComShopCartDO> shopCartDOList =
+            this.baseMapper.selectList(new QueryWrapper<ComShopCartDO>().eq("user_id", userId));
+        if (!shopCartDOList.isEmpty()) {
+            for (ComShopCartDO cartDO : shopCartDOList) {
+                // 查询当前商品是否是有效商品
+                ComShopGoodsDO goodsDO =
+                    shopGoodsDAO.selectOne(new QueryWrapper<ComShopGoodsDO>().eq("id", cartDO.getGoodsId())
+                        .eq("delete_status", ComShopGoodsDO.deleteStatus.no).eq("status", ComShopGoodsDO.status.sell));
+
+                if (goodsDO != null) {
+                    goodsNum++;
+                }
+            }
+        }
+        return R.ok(goodsNum);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerEvaluateServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerEvaluateServiceImpl.java
new file mode 100644
index 0000000..d0eb48d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerEvaluateServiceImpl.java
@@ -0,0 +1,74 @@
+package com.panzhihua.service_community.service.impl;
+
+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.model.dtos.shop.ComShopFlowerEvaluateDTO;
+import com.panzhihua.common.model.dtos.shop.PageComShopFlowerEvaluateDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.shop.ComShopFlowerEvaluateVO;
+import com.panzhihua.service_community.dao.ComShopFlowerEvaluateDAO;
+import com.panzhihua.service_community.dao.ComShopFlowerOrderDAO;
+import com.panzhihua.service_community.model.dos.ComShopFlowerEvaluateDO;
+import com.panzhihua.service_community.model.dos.ComShopFlowerOrderDO;
+import com.panzhihua.service_community.service.ComShopFlowerEvaluateService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.Objects;
+
+/**
+ * @auther yh
+ * @create 2022-11-08 17:25:45
+ * @describe 商品评价
+ */
+@Slf4j
+@Service
+public class ComShopFlowerEvaluateServiceImpl extends ServiceImpl<ComShopFlowerEvaluateDAO, ComShopFlowerEvaluateDO>
+    implements ComShopFlowerEvaluateService {
+
+    @Resource
+    private ComShopFlowerOrderDAO comShopFlowerOrderDAO;
+
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R saveEvaluate(ComShopFlowerEvaluateDTO comShopFlowerEvaluateDTO) {
+        ComShopFlowerEvaluateDO comShopFlowerEvaluateDO = new ComShopFlowerEvaluateDO();
+        BeanUtils.copyProperties(comShopFlowerEvaluateDTO,comShopFlowerEvaluateDO);
+        //评价时间
+        comShopFlowerEvaluateDO.setEvaluateTime(new Date());
+        ComShopFlowerOrderDO comShopFlowerOrderDO = comShopFlowerOrderDAO.selectOne(new LambdaQueryWrapper<ComShopFlowerOrderDO>().eq(ComShopFlowerOrderDO::getOrderNo, comShopFlowerEvaluateDTO.getOrderNo()));
+        if (Objects.isNull(comShopFlowerOrderDO)){
+            R.fail("未找到该订单");
+        }
+        comShopFlowerOrderDO.setStatus(ComShopFlowerOrderDO.status.ywc);
+        comShopFlowerOrderDAO.updateById(comShopFlowerOrderDO);
+        this.baseMapper.insert(comShopFlowerEvaluateDO);
+        return R.ok();
+    }
+
+    @Override
+    public R pageEvaluate(PageComShopFlowerEvaluateDTO pageComShopFlowerEvaluateDTO) {
+        Page page = new Page<>(pageComShopFlowerEvaluateDTO.getPageNum(),pageComShopFlowerEvaluateDTO.getPageSize());
+        IPage<ComShopFlowerEvaluateVO> comShopFlowerEvaluateVOIPage = this.baseMapper.pageEvaluate(page,pageComShopFlowerEvaluateDTO);
+        return R.ok(comShopFlowerEvaluateVOIPage);
+    }
+
+    @Override
+    public R detailEvaluate(Long id) {
+        return R.ok(this.baseMapper.selectById(id));
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R deleteEvaluate(Long id) {
+        return R.ok(this.baseMapper.deleteById(id));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerGoodsAttrServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerGoodsAttrServiceImpl.java
new file mode 100644
index 0000000..e033b98
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerGoodsAttrServiceImpl.java
@@ -0,0 +1,23 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.service_community.dao.ComShopFlowerGoodsAttrDAO;
+import com.panzhihua.service_community.dao.ComShopGoodsAttrDAO;
+import com.panzhihua.service_community.model.dos.ComShopFlowerGoodsAttrDO;
+import com.panzhihua.service_community.model.dos.ComShopGoodsAttrDO;
+import com.panzhihua.service_community.service.ComShopFlowerGoodsAttrService;
+import com.panzhihua.service_community.service.ComShopGoodsAttrService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * @auther yh
+ * @create 2022-11-08 17:25:45
+ * @describe 商品规格表服务实现类
+ */
+@Slf4j
+@Service
+public class ComShopFlowerGoodsAttrServiceImpl extends ServiceImpl<ComShopFlowerGoodsAttrDAO, ComShopFlowerGoodsAttrDO>
+    implements ComShopFlowerGoodsAttrService {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerGoodsServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerGoodsServiceImpl.java
new file mode 100644
index 0000000..79f80b0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerGoodsServiceImpl.java
@@ -0,0 +1,366 @@
+package com.panzhihua.service_community.service.impl;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.NumberUtil;
+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.google.common.collect.Lists;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.dtos.shop.ComShopFlowerGoodsDTO;
+import com.panzhihua.common.model.dtos.shop.PageComShopFlowerGoodsDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
+import com.panzhihua.common.model.vos.shop.*;
+import com.panzhihua.common.utlis.DifferentLongListUtil;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.service_community.dao.*;
+import com.panzhihua.service_community.model.dos.*;
+import com.panzhihua.service_community.service.ComShopFlowerGoodsAttrService;
+import com.panzhihua.service_community.service.ComShopFlowerGoodsService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+
+/**
+ * @ClassName: ComShopFlowerGoodsServiceImpl
+ * @Author: yh
+ * @Date: 2022/11/8 17:17
+ * @Description: 商品
+ */
+@Service
+@Slf4j
+public class ComShopFlowerGoodsServiceImpl extends ServiceImpl<ComShopFlowerGoodsDAO, ComShopFlowerGoodsDO> implements ComShopFlowerGoodsService {
+
+    @Resource
+    private ComShopFlowerGoodsAttrService comShopFlowerGoodsAttrService;
+    @Resource
+    private ComShopFlowerGoodsAttrDAO shopFlowerGoodsAttrDAO;
+    @Resource
+    private ConvenientMerchantDAO convenientMerchantDAO;
+    @Resource
+    private ConvenientGoodsCategoryDAO convenientGoodsCategoryDAO;
+    @Resource
+    private ComShopFlowerOrderGoodsDAO comShopFlowerOrderGoodsDAO;
+    @Resource
+    private ComShopFlowerEvaluateDAO comShopFlowerEvaluateDAO;
+    @Resource
+    private ComShopFlowerGoodsViewStatisticsDAO comShopFlowerGoodsViewStatisticsDAO;
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R saveShopFlowerGoods(AddShopFlowerGoodsVO addShopFlowerGoodsVO) {
+        if (addShopFlowerGoodsVO == null) {
+            return R.ok("500", "数据为空!");
+        }
+
+        ComShopFlowerGoodsDO shopGoodsDO = new ComShopFlowerGoodsDO();
+        BeanUtils.copyProperties(addShopFlowerGoodsVO, shopGoodsDO);
+        shopGoodsDO.setOriginalPrice(addShopFlowerGoodsVO.getPrice());
+        shopGoodsDO.setSale(0);
+        int goodsId = this.baseMapper.insert(shopGoodsDO);
+        if (goodsId > 0) {
+
+            //保存规格
+            ArrayList<ComShopFlowerGoodsAttrDO> goodsAttrDOS = Lists.newArrayList();
+            ComShopFlowerGoodsDO goodDO = this.baseMapper.selectById(shopGoodsDO.getId());
+            addShopFlowerGoodsVO.getGoodsAttrVOList().forEach(goodsAttr -> {
+                // 维护商品规格表
+                if (goodDO == null) {
+                    throw new ServiceException("商品id不存在!");
+                }
+                ComShopFlowerGoodsAttrDO shopGoodsAttrDO = new ComShopFlowerGoodsAttrDO();
+                shopGoodsAttrDO.setGoodsId(shopGoodsDO.getId());
+                shopGoodsAttrDO.setStoreId(goodDO.getStoreId());
+                shopGoodsAttrDO.setGoodsName(goodDO.getName());
+                shopGoodsAttrDO.setGoodsAttrName(goodsAttr.getGoodsAttrName());
+                shopGoodsAttrDO.setIsDefault(1);
+                shopGoodsAttrDO.setPrice(goodsAttr.getPrice());
+                shopGoodsAttrDO.setCollatePrice(goodsAttr.getCollatePrice());
+                shopGoodsAttrDO.setFreeShippingPrice(goodsAttr.getFreeShippingPrice());
+                shopGoodsAttrDO.setAttrPic(goodsAttr.getAttrPic());
+                shopGoodsAttrDO.setStock(goodsAttr.getStock());
+                shopGoodsAttrDO.setSale(0);
+                goodsAttrDOS.add(shopGoodsAttrDO);
+            });
+            if (goodsAttrDOS.size() > 0) {
+                comShopFlowerGoodsAttrService.saveBatch(goodsAttrDOS);
+            }
+
+            //保存商品分类
+            Long goodId = shopGoodsDO.getId();
+            if (nonNull(goodId)) {
+                //添加分类
+                List<Long> categoryIds = addShopFlowerGoodsVO.getCategoryIds();
+                categoryIds.forEach(categoryId -> {
+                    ConvenientGoodsCategoryDO convenientGoodsCategoryDO = convenientGoodsCategoryDAO.selectById(categoryId);
+                    convenientGoodsCategoryDAO.createGoodsCategoryRelation(Snowflake.getId(),goodId, categoryId,
+                            convenientGoodsCategoryDO.getName(), convenientGoodsCategoryDO.getCreatedBy());
+                });
+            }
+        }
+
+
+        return R.ok();
+    }
+
+    /**
+     * 分页查询
+     *
+     * @param pageComShopFlowerGoodsDTO 查询参数
+     * @return
+     */
+    @Override
+    public R pageFlowerGoodsList(PageComShopFlowerGoodsDTO pageComShopFlowerGoodsDTO) {
+        long pageNum = pageComShopFlowerGoodsDTO.getPageNum() != null ? pageComShopFlowerGoodsDTO.getPageNum() : 1;
+        long pageSize = pageComShopFlowerGoodsDTO.getPageSize() != null ? pageComShopFlowerGoodsDTO.getPageSize() : 10;
+        Page page = new Page<>(pageNum, pageSize);
+        IPage<PageShopFlowerGoodsVO> comShopStoreVOIPage = this.baseMapper.pageShopGoods(page, pageComShopFlowerGoodsDTO);
+        if (!comShopStoreVOIPage.getRecords().isEmpty()) {
+            comShopStoreVOIPage.getRecords().forEach(shopGoods -> {
+                List<ComShopFlowerGoodsAttrDO> goodsAttrDOs =
+                        shopFlowerGoodsAttrDAO.selectList(new QueryWrapper<ComShopFlowerGoodsAttrDO>().lambda()
+                                .eq(ComShopFlowerGoodsAttrDO::getGoodsId, shopGoods.getId()));
+                ArrayList<AddShopFlowerGoodsAttrVO> goodsAttrVOList = Lists.newArrayList();
+                StringBuilder sbr = new StringBuilder();
+                int stock = 0;
+                for (ComShopFlowerGoodsAttrDO oneGoodsAttrDO : goodsAttrDOs) {
+                    AddShopFlowerGoodsAttrVO goodsAttrVO = new AddShopFlowerGoodsAttrVO();
+                    BeanUtils.copyProperties(oneGoodsAttrDO, goodsAttrVO);
+                    goodsAttrVO.setId(oneGoodsAttrDO.getId());
+                    goodsAttrVOList.add(goodsAttrVO);
+                    stock = stock +oneGoodsAttrDO.getStock();
+                    sbr.append(oneGoodsAttrDO.getGoodsAttrName()).append(" ");
+                }
+                shopGoods.setGoodsAttrName(sbr.toString());
+                shopGoods.setGoodsAttrs(goodsAttrVOList);
+                if (CollUtil.isNotEmpty(goodsAttrDOs)){
+                    shopGoods.setGoodsPic(goodsAttrDOs.get(0).getAttrPic());
+                }
+                //设置商品总浏览量
+                shopGoods.setViewNum(comShopFlowerGoodsViewStatisticsDAO.selectTotalViewNum(shopGoods.getId()));
+                String categoryNames = convenientGoodsCategoryDAO.selectCategoryScopeByGoodsId(shopGoods.getId());
+                shopGoods.setCategoryName(categoryNames);
+                shopGoods.setStock(stock);
+            });
+        }
+        return R.ok(comShopStoreVOIPage);
+    }
+
+
+    /**
+     * 分页查询商品列表
+     *
+     * @param comShopFlowerGoodsDTO 请求参数
+     * @return
+     */
+    @Override
+    public R pageShopFlowerGoodsByApp(ComShopFlowerGoodsDTO comShopFlowerGoodsDTO) {
+        Page page = new Page<>(comShopFlowerGoodsDTO.getPageNum(), comShopFlowerGoodsDTO.getPageSize());
+        IPage<ComShopFlowerGoodsVO> goodsVOIPage = this.baseMapper.pageShopGoodByApps(page, comShopFlowerGoodsDTO);
+        if (!goodsVOIPage.getRecords().isEmpty()) {
+            goodsVOIPage.getRecords().forEach(goodsVo -> {
+                Long goodsId = goodsVo.getId();
+                List<ComShopFlowerGoodsAttrVO> goodsAttrList = shopFlowerGoodsAttrDAO.getGoodsAttr(goodsId);
+                if (!goodsAttrList.isEmpty()) {
+                    ComShopFlowerGoodsAttrVO comShopFlowerGoodsAttrVO = goodsAttrList.get(0);
+                    goodsVo.setGoodsAttrList(goodsAttrList);
+                    goodsVo.setGoodsPic(comShopFlowerGoodsAttrVO.getAttrPic());
+                    goodsVo.setOriginalPrice(comShopFlowerGoodsAttrVO.getPrice());
+                    goodsVo.setCollatePrice(comShopFlowerGoodsAttrVO.getCollatePrice());
+                    goodsVo.setFreeShippingPrice(comShopFlowerGoodsAttrVO.getFreeShippingPrice());
+                }
+                //设置商品总浏览量
+                goodsVo.setViewNum(comShopFlowerGoodsViewStatisticsDAO.selectTotalViewNum(goodsId));
+            });
+        }
+        return R.ok(goodsVOIPage);
+    }
+
+    @Override
+    public R shopFlowerGoodsDetail(Long goodsId) {
+        // 根据id查询商品信息
+        ComShopFlowerGoodsDO goodsDO = this.baseMapper.selectById(goodsId);
+        if (goodsDO == null || goodsDO.getDeleteStatus().equals(ComShopFlowerGoodsDO.deleteStatus.yes)) {
+            return R.fail(403, "商品不存在");
+        }
+//        if (!goodsDO.getStatus().equals(ComShopFlowerGoodsDO.status.sell)) {
+//            return R.fail(405, "商品已下架");
+//        }
+
+        // 根据商品id查询商品规格信息
+        List<ComShopFlowerGoodsAttrVO> goodsAttrList = new ArrayList<>();
+        List<ComShopFlowerGoodsAttrDO> goodsAttrDOS =
+                shopFlowerGoodsAttrDAO.selectList(new QueryWrapper<ComShopFlowerGoodsAttrDO>().eq("goods_id", goodsId));
+//        List<String> images = new ArrayList<>();
+        int stock = 0;
+        for (ComShopFlowerGoodsAttrDO attrDO : goodsAttrDOS) {
+            ComShopFlowerGoodsAttrVO goodsAttrVO = new ComShopFlowerGoodsAttrVO();
+            BeanUtils.copyProperties(attrDO, goodsAttrVO);
+            String attrPic = attrDO.getAttrPic();
+//            images.add(attrPic);
+            goodsAttrList.add(goodsAttrVO);
+            stock = stock +attrDO.getStock();
+        }
+        // 查询商品店铺信息
+        ConvenientMerchantDO convenientMerchantDO = convenientMerchantDAO.selectById(goodsDO.getStoreId());
+        ConvenientMerchantVO convenientMerchantVO = new ConvenientMerchantVO();
+        BeanUtils.copyProperties(convenientMerchantDO, convenientMerchantVO);
+        BigDecimal score = comShopFlowerEvaluateDAO.statisticsScore(convenientMerchantDO.getId());
+        convenientMerchantVO.setScore(null == score ? BigDecimal.ZERO : NumberUtil.round(score, 1));
+        // 设置值
+        ComShopFlowerGoodsVO shopGoods = new ComShopFlowerGoodsVO();
+        BeanUtils.copyProperties(goodsDO, shopGoods);
+        shopGoods.setGoodsAttrList(goodsAttrList);
+        shopGoods.setConvenientMerchantVO(convenientMerchantVO);
+//        shopGoods.setImages(StringUtils.join(images,","));
+        Integer orderNum = comShopFlowerOrderGoodsDAO.selectCount(new LambdaQueryWrapper<ComShopFlowerOrderGoodsDO>().eq(ComShopFlowerOrderGoodsDO::getGoodsId, goodsId));
+        shopGoods.setOrderNum(orderNum);
+        List<ComShopFlowerEvaluateVO> comShopFlowerEvaluateVOList = comShopFlowerEvaluateDAO.selectListLimit(goodsId);
+        shopGoods.setShopFlowerEvaluateVOList(comShopFlowerEvaluateVOList);
+        Integer evaluateNum = comShopFlowerEvaluateDAO.selectCountByGoodsId(goodsId);
+        shopGoods.setEvaluateNum(evaluateNum);
+
+        List<Long> categoryIds = convenientGoodsCategoryDAO.selectCategoryIdsForGoods(goodsId);
+        shopGoods.setCategoryIds(categoryIds);
+        ComShopFlowerGoodsAttrVO comShopFlowerGoodsAttrVO = goodsAttrList.get(0);
+        shopGoods.setOriginalPrice(comShopFlowerGoodsAttrVO.getPrice());
+        shopGoods.setCollatePrice(comShopFlowerGoodsAttrVO.getCollatePrice());
+        shopGoods.setFreeShippingPrice(comShopFlowerGoodsAttrVO.getFreeShippingPrice());
+        shopGoods.setStock(stock);
+
+
+        return R.ok(shopGoods);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R editFlowerShopGoods(Long id, AddShopFlowerGoodsVO addShopFlowerGoodsVO) {
+        if (addShopFlowerGoodsVO == null) {
+            return R.ok("500", "数据为空!");
+        }
+        LambdaQueryWrapper<ComShopFlowerGoodsDO> query =
+                new LambdaQueryWrapper<ComShopFlowerGoodsDO>().eq(ComShopFlowerGoodsDO::getId, id);
+        ComShopFlowerGoodsDO shopGoodsDO = new ComShopFlowerGoodsDO();
+        BeanUtils.copyProperties(addShopFlowerGoodsVO, shopGoodsDO);
+        shopGoodsDO.setOriginalPrice(addShopFlowerGoodsVO.getPrice());
+        int update = this.baseMapper.update(shopGoodsDO, query);
+        if (update < 1) {
+            throw new ServiceException("修改失败");
+        }
+        // 修改规格表
+        List<ComShopFlowerGoodsAttrDO> comShopFlowerGoodsAttrDOS = shopFlowerGoodsAttrDAO
+                .selectList(new LambdaQueryWrapper<ComShopFlowerGoodsAttrDO>().eq(ComShopFlowerGoodsAttrDO::getGoodsId, id));
+        if (addShopFlowerGoodsVO.getGoodsAttrVOList().size() == 0) {
+            shopFlowerGoodsAttrDAO
+                    .delete(new LambdaQueryWrapper<ComShopFlowerGoodsAttrDO>().eq(ComShopFlowerGoodsAttrDO::getGoodsId, id));
+            ComShopFlowerGoodsAttrDO comShopFlowerGoodsAttrDO = new ComShopFlowerGoodsAttrDO();
+            comShopFlowerGoodsAttrDO.setGoodsId(id);
+            comShopFlowerGoodsAttrDO.setStoreId(shopGoodsDO.getStoreId());
+            comShopFlowerGoodsAttrDO.setGoodsName(addShopFlowerGoodsVO.getName());
+            comShopFlowerGoodsAttrDO.setGoodsAttrName("默认");
+            comShopFlowerGoodsAttrDO.setAttrPic(addShopFlowerGoodsVO.getGoodsPic());
+            comShopFlowerGoodsAttrDO.setIsDefault(1);
+            comShopFlowerGoodsAttrDO.setPrice(addShopFlowerGoodsVO.getPrice());
+            shopFlowerGoodsAttrDAO.insert(comShopFlowerGoodsAttrDO);
+        } else {
+            List<Long> attrIds =
+                    comShopFlowerGoodsAttrDOS.stream().map(ComShopFlowerGoodsAttrDO::getId).collect(Collectors.toList());
+            List<Long> voAttrIds = addShopFlowerGoodsVO.getGoodsAttrVOList().stream().map(AddShopFlowerGoodsAttrVO::getId)
+                    .collect(Collectors.toList());
+            // 需要删除的规格ID——针对编辑时删除了规格的情况
+            List<Long> deleteIds = DifferentLongListUtil.getDiffrent(attrIds, voAttrIds);
+            if (deleteIds.size() != 0) {
+                shopFlowerGoodsAttrDAO.deleteBatchIds(deleteIds);
+            }
+            addShopFlowerGoodsVO.getGoodsAttrVOList().forEach(goodsAttr -> {
+                ComShopFlowerGoodsAttrDO comShopGoodsAttrDO = shopFlowerGoodsAttrDAO.selectById(goodsAttr.getId());
+                if (comShopGoodsAttrDO != null) {
+                    comShopGoodsAttrDO.setPrice(goodsAttr.getPrice());
+                    comShopGoodsAttrDO.setCollatePrice(goodsAttr.getCollatePrice());
+                    comShopGoodsAttrDO.setFreeShippingPrice(goodsAttr.getFreeShippingPrice());
+                    comShopGoodsAttrDO.setGoodsAttrName(goodsAttr.getGoodsAttrName());
+                    comShopGoodsAttrDO.setAttrPic(goodsAttr.getAttrPic());
+                    comShopGoodsAttrDO.setStock(goodsAttr.getStock());
+                    shopFlowerGoodsAttrDAO.updateById(comShopGoodsAttrDO);
+                } else {
+                    comShopGoodsAttrDO = new ComShopFlowerGoodsAttrDO();
+                    comShopGoodsAttrDO.setGoodsId(id);
+                    comShopGoodsAttrDO.setStoreId(shopGoodsDO.getStoreId());
+                    comShopGoodsAttrDO.setGoodsName(shopGoodsDO.getName());
+                    comShopGoodsAttrDO.setGoodsAttrName(goodsAttr.getGoodsAttrName());
+                    comShopGoodsAttrDO.setIsDefault(1);
+                    comShopGoodsAttrDO.setPrice(goodsAttr.getPrice());
+                    comShopGoodsAttrDO.setCollatePrice(goodsAttr.getCollatePrice());
+                    comShopGoodsAttrDO.setFreeShippingPrice(goodsAttr.getFreeShippingPrice());
+                    comShopGoodsAttrDO.setAttrPic(goodsAttr.getAttrPic());
+                    comShopGoodsAttrDO.setStock(goodsAttr.getStock());
+                    comShopGoodsAttrDO.setSale(0);
+                    shopFlowerGoodsAttrDAO.insert(comShopGoodsAttrDO);
+                }
+            });
+        }
+        return R.ok();
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R deleteShopFlowerGoods(Long id) {
+        ComShopFlowerGoodsDO comShopFlowerGoodsDO = this.baseMapper.selectById(id);
+        comShopFlowerGoodsDO.setDeleteStatus(ComShopFlowerGoodsDO.deleteStatus.yes);
+        this.baseMapper.updateById(comShopFlowerGoodsDO);
+        return R.ok();
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R changeStatus(Long id, Integer status) {
+        ComShopFlowerGoodsDO shopGoodsDO = this.baseMapper.selectById(id);
+        if (shopGoodsDO == null) {
+            return R.fail("id有误!");
+        }
+        shopGoodsDO.setStatus(status);
+        this.baseMapper.updateById(shopGoodsDO);
+        return R.ok();
+    }
+
+    @Override
+    public R incrGoodsView(Long goodsId) {
+        ComShopFlowerGoodsDO comShopFlowerGoodsDO = this.baseMapper.selectById(goodsId);
+        if (isNull(comShopFlowerGoodsDO)) {
+            return R.fail("商品不存在");
+        }
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+        String nowDate = simpleDateFormat.format(new Date());
+        ComShopFlowerGoodsViewStatisticsDO statisticsDO = comShopFlowerGoodsViewStatisticsDAO.selectOne(new LambdaQueryWrapper<ComShopFlowerGoodsViewStatisticsDO>()
+                .eq(ComShopFlowerGoodsViewStatisticsDO::getGoodsId, goodsId).eq(ComShopFlowerGoodsViewStatisticsDO::getStatisticDate, nowDate));
+        if (isNull(statisticsDO)) {
+            comShopFlowerGoodsViewStatisticsDAO.createTodayStatistic(goodsId,nowDate);
+        } else {
+            comShopFlowerGoodsViewStatisticsDAO.incrViewNum(goodsId, nowDate);
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R countSaleByUserId(Long userId){
+        List<ComShopOrderStoreIdCountVO> comShopOrderStoreIdCountVOS = this.baseMapper.countSaleByUserId(userId);
+        Map<String, Integer> collect = comShopOrderStoreIdCountVOS.stream().collect(Collectors.toMap(ComShopOrderStoreIdCountVO::getCountName, ComShopOrderStoreIdCountVO::getCountNum));
+        return R.ok(collect);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerOrderDeliveryServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerOrderDeliveryServiceImpl.java
new file mode 100644
index 0000000..fb02a2a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerOrderDeliveryServiceImpl.java
@@ -0,0 +1,180 @@
+package com.panzhihua.service_community.service.impl;
+
+import cn.binarywang.wx.miniapp.api.WxMaService;
+import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.Constants;
+import com.panzhihua.common.model.dtos.shop.ComShopFlowerOrderDeliveryDTO;
+import com.panzhihua.common.model.dtos.shop.PageComFlowerOrderDeliveryDTO;
+import com.panzhihua.common.model.dtos.shop.PageComFlowerOrderListDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientElevatingPointOrderVO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientElevatingPointVO;
+import com.panzhihua.common.model.vos.shop.ComShopFlowerOrderDeliveryVO;
+import com.panzhihua.common.model.vos.shop.ComShopFlowerOrderPageVO;
+import com.panzhihua.common.model.vos.user.SysUserVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.OrderNoUtils;
+import com.panzhihua.common.utlis.WxUtil;
+import com.panzhihua.service_community.dao.ComShopFlowerOrderDAO;
+import com.panzhihua.service_community.dao.ComShopFlowerOrderDeliveryDAO;
+import com.panzhihua.service_community.dao.ConvenientElevatingPointDAO;
+import com.panzhihua.service_community.entity.SysUser;
+import com.panzhihua.service_community.model.dos.ComShopFlowerOrderDO;
+import com.panzhihua.service_community.model.dos.ComShopFlowerOrderDeliveryDO;
+import com.panzhihua.service_community.model.dos.ConvenientElevatingPointDO;
+import com.panzhihua.service_community.service.ComShopFlowerOrderDeliveryService;
+import com.panzhihua.service_community.util.WxMaConfiguration;
+import lombok.extern.slf4j.Slf4j;
+import me.chanjar.weixin.common.error.WxErrorException;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+import static java.util.Objects.nonNull;
+
+/**
+ * @auther yh
+ * @create 2022-11-08 17:25:45
+ * @describe 配送单
+ */
+@Slf4j
+@Service
+public class ComShopFlowerOrderDeliveryServiceImpl extends ServiceImpl<ComShopFlowerOrderDeliveryDAO, ComShopFlowerOrderDeliveryDO>
+        implements ComShopFlowerOrderDeliveryService {
+
+    @Resource
+    private ComShopFlowerOrderDAO comShopFlowerOrderDAO;
+    @Resource
+    private ConvenientElevatingPointDAO convenientElevatingPointDAO;
+    @Resource
+    private WxMaConfiguration wxMaConfiguration;
+    @Resource
+    private UserService userService;
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R saveDelivery(ComShopFlowerOrderDeliveryDTO comShopFlowerOrderDeliveryDTO) {
+        ComShopFlowerOrderDeliveryDO comShopFlowerOrderDeliveryDO = new ComShopFlowerOrderDeliveryDO();
+        BeanUtils.copyProperties(comShopFlowerOrderDeliveryDTO,comShopFlowerOrderDeliveryDO);
+        //创建配送单号
+        String deliveryNo = OrderNoUtils.nextDeliveryNo();
+        comShopFlowerOrderDeliveryDO.setDeliveryNo(deliveryNo);
+        comShopFlowerOrderDeliveryDO.setDeliveryTime(new Date());
+        comShopFlowerOrderDeliveryDO.setDeleteStatus(ComShopFlowerOrderDeliveryDO.deliveryStatus.psz);
+        comShopFlowerOrderDeliveryDO.setDeleteStatus(ComShopFlowerOrderDeliveryDO.deleteStatus.wsc);
+        int insert = this.baseMapper.insert(comShopFlowerOrderDeliveryDO);
+        if (insert > 0){
+            Long deliveryId = comShopFlowerOrderDeliveryDO.getId();
+            List<Long> orderIds = comShopFlowerOrderDeliveryDTO.getOrderIds();
+            if (CollUtil.isNotEmpty(orderIds)){
+                comShopFlowerOrderDAO.updateOrder(orderIds,deliveryId,comShopFlowerOrderDeliveryDO.getDeliveryNo(), ComShopFlowerOrderDO.status.psz,comShopFlowerOrderDeliveryDO.getDeliveryTime());
+
+                //订单配送通知
+                WxMaService maService = wxMaConfiguration.getMaService(Constants.HC_APP_ID);
+                List<ComShopFlowerOrderDO> comShopFlowerOrderDOS = comShopFlowerOrderDAO.selectList(new LambdaQueryWrapper<ComShopFlowerOrderDO>().in(ComShopFlowerOrderDO::getId, orderIds));
+                for (ComShopFlowerOrderDO comShopFlowerOrderDO : comShopFlowerOrderDOS) {
+                    Long userId = comShopFlowerOrderDO.getUserId();
+                    R userOpenId = userService.getUserOpenId(userId);
+                    if (R.isOk(userOpenId)) {
+                        String openid = userOpenId.getData().toString();
+                        try {
+                            WxUtil.sendStartShipping(openid,maService.getAccessToken(),comShopFlowerOrderDO.getOrderNo());
+                        } catch (WxErrorException e) {
+                            e.printStackTrace();
+                        }
+                    }
+
+
+                }
+            }
+        }
+        return R.ok(comShopFlowerOrderDeliveryDO.getId());
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R updateDelivery(ComShopFlowerOrderDeliveryDTO comShopFlowerOrderDeliveryDTO) {
+        Long id = comShopFlowerOrderDeliveryDTO.getId();
+        if (null == id){
+            return R.fail("配送单id不能为空");
+        }
+        ComShopFlowerOrderDeliveryDO comShopFlowerOrderDeliveryDO = this.baseMapper.selectById(id);
+        if (Objects.isNull(comShopFlowerOrderDeliveryDO)){
+            return R.fail("不存在该配送单");
+        }
+        comShopFlowerOrderDeliveryDO.setServiceTime(new Date());
+        comShopFlowerOrderDeliveryDO.setDeliveryStatus(ComShopFlowerOrderDeliveryDO.deliveryStatus.ysd);
+        int update = this.baseMapper.updateById(comShopFlowerOrderDeliveryDO);
+        if (update > 0){
+            //一个自提订单算一个货
+            ConvenientElevatingPointDO convenientElevatingPointDO = convenientElevatingPointDAO.selectById(comShopFlowerOrderDeliveryDO.getPointId());
+
+            convenientElevatingPointDO.setCumulativeGoodsNum(convenientElevatingPointDO.getCumulativeGoodsNum() + comShopFlowerOrderDeliveryDO.getDeliveryOrderNum());
+            convenientElevatingPointDO.setPrepareGoodsNum(convenientElevatingPointDO.getPrepareGoodsNum()+comShopFlowerOrderDeliveryDO.getDeliveryOrderNum());
+            convenientElevatingPointDAO.updateById(convenientElevatingPointDO);
+
+            comShopFlowerOrderDAO.updateOrderStatus(comShopFlowerOrderDeliveryDO.getId(),comShopFlowerOrderDeliveryDO.getServiceTime(),ComShopFlowerOrderDO.status.dsh);
+            WxMaService maService = wxMaConfiguration.getMaService(Constants.HC_APP_ID);
+            List<ComShopFlowerOrderDO> comShopFlowerOrderDOS = comShopFlowerOrderDAO.selectList(new LambdaQueryWrapper<ComShopFlowerOrderDO>().eq(ComShopFlowerOrderDO::getDeliveryId, id));
+            for (ComShopFlowerOrderDO comShopFlowerOrderDO : comShopFlowerOrderDOS) {
+                Long userId = comShopFlowerOrderDO.getUserId();
+                R userOpenId = userService.getUserOpenId(userId);
+                if (R.isOk(userOpenId)) {
+                    String openid = userOpenId.getData().toString();
+                    try {
+                        WxUtil.sendService(openid,maService.getAccessToken(),comShopFlowerOrderDeliveryDO.getPointName());
+                    } catch (WxErrorException e) {
+                        e.printStackTrace();
+                    }
+                }
+            }
+
+        }
+        return  R.ok();
+    }
+
+    @Override
+    public R pageDelivery(PageComFlowerOrderDeliveryDTO pageComFlowerOrderDeliveryDTO) {
+        Page page = new Page<>(pageComFlowerOrderDeliveryDTO.getPageNum(),pageComFlowerOrderDeliveryDTO.getPageSize());
+        IPage<ComShopFlowerOrderDeliveryVO> page1 = this.baseMapper.pageDelivery(page, pageComFlowerOrderDeliveryDTO);
+        for (ComShopFlowerOrderDeliveryVO record : page1.getRecords()) {
+            Long pointId = record.getPointId();
+            ConvenientElevatingPointDO convenientElevatingPointDO = convenientElevatingPointDAO.selectById(pointId);
+            ConvenientElevatingPointVO convenientElevatingPointVO = new ConvenientElevatingPointVO();
+            BeanUtils.copyProperties(convenientElevatingPointDO,convenientElevatingPointVO);
+            record.setConvenientElevatingPointVO(convenientElevatingPointVO);
+        }
+
+        return R.ok(page1);
+    }
+
+    @Override
+    public R pageNoDelivery(PageComFlowerOrderDeliveryDTO pageComFlowerOrderDeliveryDTO) {
+        Page page = new Page<>(pageComFlowerOrderDeliveryDTO.getPageNum(),pageComFlowerOrderDeliveryDTO.getPageSize());
+        IPage<ConvenientElevatingPointVO> page1 = convenientElevatingPointDAO.pageNoDelivery(page, pageComFlowerOrderDeliveryDTO);
+        return R.ok(page1);
+    }
+
+    @Override
+    public R pageNoDeliveryOrderList(PageComFlowerOrderListDTO pageComFlowerOrderListDTO) {
+        Page page = new Page<>(pageComFlowerOrderListDTO.getPageNum(),pageComFlowerOrderListDTO.getPageSize());
+        IPage<ComShopFlowerOrderPageVO> iPage = comShopFlowerOrderDAO.pageOrderListNoDelivery(page, pageComFlowerOrderListDTO);
+        ConvenientElevatingPointVO convenientElevatingPointVO = convenientElevatingPointDAO.selectOrderNum(pageComFlowerOrderListDTO);
+        ConvenientElevatingPointOrderVO convenientElevatingPointOrderVO = new ConvenientElevatingPointOrderVO();
+        convenientElevatingPointOrderVO.setConvenientElevatingPointVO(convenientElevatingPointVO);
+        convenientElevatingPointOrderVO.setIPage(iPage);
+        return R.ok(convenientElevatingPointOrderVO);
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerOrderPayServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerOrderPayServiceImpl.java
new file mode 100644
index 0000000..b67cf1f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerOrderPayServiceImpl.java
@@ -0,0 +1,30 @@
+package com.panzhihua.service_community.service.impl;
+
+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.model.dtos.shop.PageComShopFlowerOrderPayDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.shop.ComShopFlowerOrderPayVO;
+import com.panzhihua.service_community.dao.ComShopFlowerOrderPayDAO;
+import com.panzhihua.service_community.model.dos.ComShopFlowerOrderPayDO;
+import com.panzhihua.service_community.service.ComShopFlowerOrderPayService;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * @ClassName: ComShopFlowerOrderPayServiceImpl
+ * @Author: yh
+ * @Date: 2022/11/22 10:53
+ * @Description: 流水
+ */
+@Service
+public class ComShopFlowerOrderPayServiceImpl extends ServiceImpl<ComShopFlowerOrderPayDAO, ComShopFlowerOrderPayDO> implements ComShopFlowerOrderPayService {
+
+    @Override
+    public R pageOrderPay(PageComShopFlowerOrderPayDTO pageComShopFlowerOrderPayDTO) {
+        Page page = new Page<>(pageComShopFlowerOrderPayDTO.getPageNum(),pageComShopFlowerOrderPayDTO.getPageSize());
+        IPage<ComShopFlowerOrderPayVO> comShopFlowerOrderPayVOIPage = this.baseMapper.pageOrderPay(page, pageComShopFlowerOrderPayDTO);
+        return R.ok(comShopFlowerOrderPayVOIPage);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerOrderServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerOrderServiceImpl.java
new file mode 100644
index 0000000..17e2145
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerOrderServiceImpl.java
@@ -0,0 +1,1221 @@
+package com.panzhihua.service_community.service.impl;
+
+import cn.binarywang.wx.miniapp.api.WxMaService;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.DateUnit;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.model.dtos.shop.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientElevatingPointVO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
+import com.panzhihua.common.model.vos.shop.*;
+import com.panzhihua.common.model.vos.user.SysUserVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.*;
+import com.panzhihua.common.utlis.wx.WXPayUtil;
+import com.panzhihua.service_community.dao.*;
+import com.panzhihua.service_community.model.dos.*;
+import com.panzhihua.service_community.service.ComShopFlowerOrderService;
+import com.panzhihua.service_community.util.WxMaConfiguration;
+import lombok.extern.slf4j.Slf4j;
+import me.chanjar.weixin.common.error.WxErrorException;
+import org.springframework.amqp.rabbit.core.RabbitTemplate;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.text.DecimalFormat;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.stream.Collectors;
+
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:03:01
+ * @describe 订单表服务实现类
+ */
+@Slf4j
+@Service
+public class ComShopFlowerOrderServiceImpl extends ServiceImpl<ComShopFlowerOrderDAO, ComShopFlowerOrderDO>
+        implements ComShopFlowerOrderService {
+
+    @Resource
+    private ComShopFlowerGoodsDAO comShopFlowerGoodsDAO;
+    @Resource
+    private ComShopFlowerGoodsAttrDAO comShopFlowerGoodsAttrDAO;
+    @Resource
+    private ComShopCartDAO comShopCartDAO;
+    @Resource
+    private ConvenientMerchantDAO convenientMerchantDAO;
+    @Resource
+    private ComShopFlowerUserAddressDAO comShopFlowerUserAddressDAO;
+    @Resource
+    private ComShopFlowerOrderOperateDAO comShopFlowerOrderOperateDAO;
+    @Resource
+    private ComShopFlowerOrderGoodsDAO comShopFlowerOrderGoodsDAO;
+    @Resource
+    private ComShopFlowerOrderDAO comShopFlowerOrderDAO;
+    @Resource
+    private ComShopFlowerOrderPayDAO comShopFlowerOrderPayDAO;
+    @Resource
+    private ConvenientElevatingPointDAO convenientElevatingPointDAO;
+    @Resource
+    private ComShopFlowerEvaluateDAO comShopFlowerEvaluateDAO;
+    @Resource
+    private ComShopFlowerRefundOrderDAO comShopFlowerRefundOrderDAO;
+    @Resource
+    private ComShopFlowerOrderDeliveryDAO comShopFlowerOrderDeliveryDAO;
+    @Resource
+    private WxMaConfiguration wxMaConfiguration;
+    @Resource
+    private UserService userService;
+    @Resource
+    private RabbitTemplate rabbitTemplate;
+
+
+    @Value("${hcMin.app.isTest}")
+    private Boolean isTest;
+    @Value("${hcMin.app.appid}")
+    private String appid;
+    @Value("${hcMin.app.payKey}")
+    private String payKey;
+    @Value("${hcMin.app.mchId}")
+    private String mchId;
+    @Value("${hcMin.app.notifyUrl}")
+    private String notifyUrl;
+
+    /**
+     * 订单预览
+     *
+     * @param orderPreviewDTO 请求参数
+     * @return 订单预览数据
+     */
+    @Override
+    public R orderPreview(ComShopOrderPreviewDTO orderPreviewDTO) {
+
+        // 返回参数
+        ComShopFlowerOrderPreviewVO orderPreviewVO = new ComShopFlowerOrderPreviewVO();
+        // 返回商品列表
+        List<ComShopOrderGoodsVO> orderGoodsList = new ArrayList<>();
+        Long storeId = 0L;
+        BigDecimal orderTotal = BigDecimal.ZERO;
+        Integer orderGoodsTotal = 0;
+        // 判断提交方式
+        if (orderPreviewDTO.getSubmitType().equals(ComShopOrderPreviewDTO.submitType.details)) {// 详情页提交
+            // 查询商品信息
+            ComShopFlowerGoodsDO goodsDO =
+                    comShopFlowerGoodsDAO.selectOne(new QueryWrapper<ComShopFlowerGoodsDO>().eq("id", orderPreviewDTO.getGoodsId())
+                            .eq("status", ComShopGoodsDO.status.sell).eq("delete_status", ComShopGoodsDO.deleteStatus.no));
+            if (goodsDO == null) {
+                return R.fail("商品已下架或已删除");
+            }
+            // 设置店铺id
+            storeId = goodsDO.getStoreId();
+
+            // 查询商品规格信息
+            ComShopFlowerGoodsAttrDO goodsAttrDO = comShopFlowerGoodsAttrDAO.selectById(orderPreviewDTO.getGoodsAttrId());
+            if (goodsAttrDO == null) {
+                return R.fail("商品规格不存在");
+            }
+            if (goodsAttrDO.getSale() < orderPreviewDTO.getBuyNum()) {
+                return R.fail("该规格库存不足,无法下单");
+            }
+
+            orderTotal = goodsAttrDO.getPrice().multiply(BigDecimal.valueOf(orderPreviewDTO.getBuyNum()));
+            orderGoodsTotal = orderPreviewDTO.getBuyNum();
+            // 商品信息赋值
+            ComShopOrderGoodsVO orderGoodsVO = new ComShopOrderGoodsVO();
+            orderGoodsVO.setGoodsName(goodsDO.getName());
+            orderGoodsVO.setGoodsId(goodsDO.getId());
+            orderGoodsVO.setGoodsAttrId(goodsAttrDO.getId());
+            orderGoodsVO.setGoodsPic(goodsAttrDO.getAttrPic());
+            orderGoodsVO.setPrice(goodsAttrDO.getPrice());
+            orderGoodsVO.setNum(orderPreviewDTO.getBuyNum());
+            orderGoodsList.add(orderGoodsVO);
+        } else if (orderPreviewDTO.getSubmitType().equals(ComShopOrderPreviewDTO.submitType.cart)) {// 购物车提交
+            List<ComShopCartDO> cartList = comShopCartDAO.selectBatchIds(orderPreviewDTO.getCartIds());
+            if (cartList.isEmpty()) {
+                return R.fail("未找到购物车商品信息");
+            }
+            // 设置店铺id
+            storeId = cartList.get(0).getStoreId();
+            // 循环遍历购物车商品信息
+            for (ComShopCartDO cartDO : cartList) {
+                // 商品信息赋值
+                ComShopOrderGoodsVO orderGoodsVO = new ComShopOrderGoodsVO();
+                orderGoodsVO.setGoodsId(cartDO.getGoodsId());
+                orderGoodsVO.setGoodsAttrId(cartDO.getGoodsAttrId());
+                orderGoodsVO.setGoodsPic(cartDO.getGoodsAttrPic());
+                orderGoodsVO.setNum(cartDO.getAmount());
+                orderGoodsVO.setGoodsName(cartDO.getGoodsName());
+                // 查询商品规格
+                ComShopFlowerGoodsAttrDO goodsAttrDO = comShopFlowerGoodsAttrDAO.selectById(cartDO.getGoodsAttrId());
+                if (goodsAttrDO != null) {
+                    orderGoodsVO.setPrice(goodsAttrDO.getPrice());
+                } else {
+                    orderGoodsVO.setPrice(BigDecimal.ZERO);
+                }
+                orderTotal = orderTotal.add(orderGoodsVO.getPrice().multiply(BigDecimal.valueOf(cartDO.getAmount())));
+                orderGoodsTotal += cartDO.getAmount();
+                orderGoodsList.add(orderGoodsVO);
+            }
+        }
+        orderPreviewVO.setOrderTotal(orderTotal);
+        orderPreviewVO.setOrderGoodsTotal(orderGoodsTotal);
+
+        // 查询店铺信息
+        ConvenientMerchantDO convenientMerchantDO = convenientMerchantDAO.selectById(storeId);
+        if (convenientMerchantDO != null) {
+            ConvenientMerchantVO shopStoreVO = new ConvenientMerchantVO();
+            BeanUtils.copyProperties(convenientMerchantDO, shopStoreVO);
+            orderPreviewVO.setConvenientMerchantVO(shopStoreVO);
+        }
+
+        // 查询默认收货地址
+        ComShopFlowerUserAddressDO userDefaultAddressDO =
+                comShopFlowerUserAddressDAO.selectOne(new QueryWrapper<ComShopFlowerUserAddressDO>().eq("delete_status", 2)
+                        .eq("user_id", orderPreviewDTO.getUserId()).eq("is_default", ComShopUserAddressDO.isDefault.yes));
+
+        // 查询用户收货地址中的默认地址
+        if (userDefaultAddressDO != null) {
+            ComShopUserAddressVO userAddressVO = new ComShopUserAddressVO();
+            BeanUtils.copyProperties(userDefaultAddressDO, userAddressVO);
+            orderPreviewVO.setUserAddressVO(userAddressVO);
+        } else {
+            // 查询上次购买记录的收货地址
+            // 查询到用户上一笔订单
+            List<ComShopFlowerOrderDO> shopOrders = this.baseMapper.selectList(new QueryWrapper<ComShopFlowerOrderDO>()
+                    .eq("delete_status", 2).eq("user_id", orderPreviewDTO.getUserId()).orderByDesc("create_at"));
+            if (shopOrders != null && shopOrders.size() > 0) {
+                ComShopFlowerUserAddressDO userAddressDO =
+                        comShopFlowerUserAddressDAO.selectById(shopOrders.get(0).getReceiverId());
+                if (userAddressDO != null) {
+                    ComShopUserAddressVO userAddressVO = new ComShopUserAddressVO();
+                    BeanUtils.copyProperties(userAddressDO, userAddressVO);
+                    orderPreviewVO.setUserAddressVO(userAddressVO);
+                }
+            }
+        }
+
+        return R.ok(orderPreviewVO);
+    }
+
+    /**
+     * 创建订单
+     *
+     * @param orderCreateDTO 创建订单请求参数
+     * @return 创建结果
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public R orderCreate(ComShopOrderCreateDTO orderCreateDTO) {
+        // 创建返回参数
+        ComShopFlowerOrderVO shopOrderVO = new ComShopFlowerOrderVO();
+        // 查询用户收货地址
+        ComShopFlowerUserAddressDO userAddressDO = comShopFlowerUserAddressDAO.selectById(orderCreateDTO.getReceiverId());
+        if (userAddressDO == null || userAddressDO.getDeleteStatus() != 2) {
+            return R.fail("收货地址不存在");
+        }
+        // 用户id
+        Long userId = orderCreateDTO.getUserId();
+        // 店铺id
+        Long storeId = 0L;
+        // 生成订单号
+        String orderNo = OrderNoUtils.NextOrderNoFlower(userId);
+        // 配送方式
+        Integer deliveryType = 1;
+        // 订单总金额
+        BigDecimal orderTotal = BigDecimal.ZERO;
+        // 创建订单商品信息
+        List<ComShopFlowerOrderGoodsDO> orderGoodsDOList = new ArrayList<>();
+        if (!orderCreateDTO.getOrderGoodsList().isEmpty()) {
+            for (ComShopOrderCreateGoodsDTO createGoodsDTO : orderCreateDTO.getOrderGoodsList()) {
+                // 查询当前商品信息
+                ComShopFlowerGoodsDO goodsDO =
+                        comShopFlowerGoodsDAO.selectOne(new QueryWrapper<ComShopFlowerGoodsDO>().eq("id", createGoodsDTO.getGoodsId())
+                                .eq("delete_status", ComShopGoodsDO.deleteStatus.no).eq("status", ComShopGoodsDO.status.sell));
+                if (goodsDO == null) {
+                    log.error("未查询到商品信息,商品已下架活已删除,商品id" + createGoodsDTO.getGoodsId());
+                    continue;
+                }
+                storeId = goodsDO.getStoreId();
+                deliveryType = orderCreateDTO.getDeliveryType();
+                ComShopFlowerOrderGoodsDO orderGoodsDO = new ComShopFlowerOrderGoodsDO();
+                orderGoodsDO.setGoodsId(goodsDO.getId());
+                orderGoodsDO.setGoodsName(goodsDO.getName());
+
+                orderGoodsDO.setStoreId(storeId);
+                orderGoodsDO.setUserId(userId);
+                orderGoodsDO.setAmount(createGoodsDTO.getNum());
+                orderGoodsDO.setOrderNo(orderNo);
+                // 查询当前商品规格
+                ComShopFlowerGoodsAttrDO goodsAttrDO = comShopFlowerGoodsAttrDAO.selectById(createGoodsDTO.getGoodsAttrId());
+                if (goodsAttrDO == null) {
+                    log.error(
+                            "未查询到商品规格信息,商品id" + createGoodsDTO.getGoodsId() + "商品规格id:" + createGoodsDTO.getGoodsAttrId());
+                    continue;
+                }
+
+                if (goodsAttrDO.getStock() < createGoodsDTO.getNum()) {
+                    return R.fail("该规格库存不足,无法下单");
+                }
+                orderGoodsDO.setGoodsAttrName(goodsAttrDO.getGoodsAttrName());
+                orderGoodsDO.setGoodsAttrId(goodsAttrDO.getId());
+                orderGoodsDO.setGoodsAttrPrice(createGoodsDTO.getPrice());
+                orderGoodsDO.setPrice(goodsAttrDO.getPrice());
+                orderGoodsDO.setCollatePrice(goodsAttrDO.getCollatePrice());
+                orderGoodsDO.setFreeShippingPrice(goodsAttrDO.getFreeShippingPrice());
+                orderGoodsDO.setGoodsAttrPic(goodsAttrDO.getAttrPic());
+                orderGoodsDOList.add(orderGoodsDO);
+                // 将商品金额计算到订单总金额
+                orderTotal = orderTotal
+                        .add(createGoodsDTO.getPrice().multiply(BigDecimal.valueOf(createGoodsDTO.getNum())));
+            }
+        }
+        // 创建订单信息
+        ComShopFlowerOrderDO shopOrderDO = new ComShopFlowerOrderDO();
+        shopOrderDO.setOrderNo(orderNo);
+        shopOrderDO.setStoreId(storeId);
+        shopOrderDO.setUserId(userId);
+        //TODO
+        shopOrderDO.setStatus(ComShopFlowerOrderDO.status.dfk);
+        shopOrderDO.setPayStatus(ComShopFlowerOrderDO.payStatus.no);
+        shopOrderDO.setReceiverId(orderCreateDTO.getReceiverId());
+        shopOrderDO.setDeleteStatus(ComShopFlowerOrderDO.deleteStatus.no);
+        shopOrderDO.setTotalAmount(orderTotal);
+        shopOrderDO.setDiscountAmount(BigDecimal.ZERO);
+        shopOrderDO.setDeliveryType(deliveryType);
+        shopOrderDO.setPointId(orderCreateDTO.getPointId());
+        if (StringUtils.isNotEmpty(orderCreateDTO.getRemark())) {
+            shopOrderDO.setRemark(orderCreateDTO.getRemark());
+        }
+        this.baseMapper.insert(shopOrderDO);
+        if (!orderGoodsDOList.isEmpty()) {
+            orderGoodsDOList.forEach(orderGoods -> {
+                orderGoods.setOrderId(shopOrderDO.getId());
+                comShopFlowerOrderGoodsDAO.insert(orderGoods);
+            });
+        }
+        // 创建订单操作记录
+        ComShopFlowerOrderOperateDO orderOperateDO = new ComShopFlowerOrderOperateDO();
+        orderOperateDO.setOrderNo(orderNo);
+        orderOperateDO.setOperationType(ComShopOrderOperateDO.operationType.create);
+        orderOperateDO.setOperationTime(new Date());
+        if (StringUtils.isNotEmpty(orderCreateDTO.getPhone())) {
+            orderOperateDO.setOperationContent("用户" + orderCreateDTO.getPhone() + "下单");
+            orderOperateDO.setOperationBy("用户" + orderCreateDTO.getPhone());
+        } else {
+            orderOperateDO.setOperationContent("用户下单");
+            orderOperateDO.setOperationBy("用户");
+        }
+        comShopFlowerOrderOperateDAO.insert(orderOperateDO);
+        shopOrderVO.setOrderNo(orderNo);
+        shopOrderVO.setOrderTotal(orderTotal);
+        shopOrderVO.setOrderId(shopOrderDO.getId());
+
+        try {
+            BigDecimal money = orderTotal;
+            if (isTest) {
+                money = BigDecimal.valueOf(0.01);
+            }
+            // 调用wx支付
+            String xml = WxPayUtils.getUnifiedorder(appid, mchId, payKey, notifyUrl, "商品购买", orderCreateDTO.getOpenId(),
+                    orderNo, money, null);
+            log.info("微信支付返回参数:" + xml);
+            shopOrderVO.setPayResult(xml);
+        } catch (Exception e) {
+            log.error("调用微信支付异常,异常原因:" + e.getMessage());
+        }
+        //发送消息到mq
+        rabbitTemplate.convertAndSend("huacheng.shop.order.exchange", "huacheng.shop.order.key", shopOrderVO, message -> {
+            //30分钟后
+            message.getMessageProperties().setHeader("x-delay", 1800*1000);
+            return message;
+        });
+        return R.ok(shopOrderVO);
+    }
+
+    /**
+     * 分页查询用户订单列表
+     *
+     * @param comOrderListDTO 请求参数
+     * @return 查询结果
+     */
+    @Override
+    public R pageOrderList(PageComFlowerOrderListDTO comOrderListDTO) {
+        Page page = new Page<>(comOrderListDTO.getPageNum(), comOrderListDTO.getPageSize());
+        IPage<ComShopFlowerOrderPageVO> orderPageVOIPage = this.baseMapper.pageOrderList(page, comOrderListDTO);
+        if (!orderPageVOIPage.getRecords().isEmpty()) {
+            orderPageVOIPage.getRecords().forEach(orderVo -> {
+                List<ComShopFlowerOrderGoodsVO> orderGoodsVOS = new ArrayList<>();
+                // 查询订单下商品信息
+                List<ComShopFlowerOrderGoodsDO> orderGoodsDOList = comShopFlowerOrderGoodsDAO
+                        .selectList(new QueryWrapper<ComShopFlowerOrderGoodsDO>().eq("order_no", orderVo.getOrderNo()));
+                if (!orderGoodsDOList.isEmpty()) {
+                    orderGoodsDOList.forEach(orderGoods -> {
+                        ComShopFlowerOrderGoodsVO orderGoodsVO = new ComShopFlowerOrderGoodsVO();
+                        BeanUtils.copyProperties(orderGoods, orderGoodsVO);
+                        // 根据商品规格id查询商品规格
+//                        ComShopFlowerGoodsAttrDO goodsAttrDO = comShopFlowerGoodsAttrDAO.selectById(orderGoods.getGoodsAttrId());
+//                        if (goodsAttrDO != null) {
+                            orderGoodsVO.setGoodsAttr(orderGoods.getGoodsAttrName());
+//                        }
+                        orderGoodsVO.setNum(orderGoods.getAmount());
+                        orderGoodsVO.setGoodsPic(orderGoods.getGoodsAttrPic());
+                        orderGoodsVO.setPrice(orderGoods.getGoodsAttrPrice());
+                        orderGoodsVOS.add(orderGoodsVO);
+                    });
+                    orderVo.setGoodsAttrName(orderGoodsDOList.get(0).getGoodsAttrName());
+                }
+                orderVo.setOrderGoodsVOList(orderGoodsVOS);
+
+                ConvenientMerchantVO shopStoreVO = new ConvenientMerchantVO();
+                // 查询店铺信息
+                ConvenientMerchantDO convenientMerchantDO = convenientMerchantDAO.selectById(orderVo.getStoreId());
+                if (convenientMerchantDO != null) {
+                    BeanUtils.copyProperties(convenientMerchantDO, shopStoreVO);
+                }
+                orderVo.setConvenientMerchantVO(shopStoreVO);
+                //已完成、已退款才有评论
+                if (ComShopFlowerOrderDO.status.ywc == orderVo.getStatus() || ComShopFlowerOrderDO.status.ytk == orderVo.getStatus()) {
+                    ComShopFlowerEvaluateVO comShopFlowerEvaluateVO = comShopFlowerEvaluateDAO.selectByOrderNo(orderVo.getOrderNo());
+                    if (nonNull(comShopFlowerEvaluateVO)) {
+                        orderVo.setComShopFlowerEvaluateVO(comShopFlowerEvaluateVO);
+                    }
+                }
+
+                //判断是否可以退款 订单是否已超过15天 是否已有退款订单
+                int count = comShopFlowerRefundOrderDAO.selectCountRefundNowByOrderId(orderVo.getOrderId());
+                if (count > 0){
+                    orderVo.setRefundable(2);
+                }else {
+                    if (null == orderVo.getReceivingTime()){
+                        orderVo.setRefundable(2);
+                    }else {
+                        //收货时间往前推15天和当前时间做比较
+                        Date date = DateUtils.addDay(orderVo.getReceivingTime(), 15);
+                        if(date.before(new Date())){
+                            orderVo.setRefundable(2);
+                        }
+                    }
+                }
+
+
+            });
+        }
+        return R.ok(orderPageVOIPage);
+    }
+
+    /**
+     * 根据订单id查询订单详情
+     *
+     * @param orderId 订单id
+     * @return 订单详情
+     */
+    @Override
+    public R orderDetail(Long orderId, String phone) {
+        ComShopFlowerOrderPageVO orderVO = new ComShopFlowerOrderPageVO();
+        ComShopFlowerOrderDO shopOrderDO = null;
+        if (StrUtil.isEmpty(phone)) {
+            // 查询订单信息
+            shopOrderDO = this.baseMapper.selectById(orderId);
+        } else {
+            //查询自提点信息
+            ConvenientElevatingPointDO convenientElevatingPointDO = convenientElevatingPointDAO.selectOne(new LambdaQueryWrapper<ConvenientElevatingPointDO>().eq(ConvenientElevatingPointDO::getWechatAccount, phone));
+            if (isNull(convenientElevatingPointDO)) {
+                return R.ok("订单不在该自提点");
+            }
+            Long pointDOId = convenientElevatingPointDO.getId();
+            shopOrderDO = this.baseMapper.selectOne(new LambdaQueryWrapper<ComShopFlowerOrderDO>().eq(ComShopFlowerOrderDO::getId, orderId).eq(ComShopFlowerOrderDO::getPointId, pointDOId));
+        }
+
+
+        if (shopOrderDO == null) {
+            return R.fail("未查询到订单");
+        }
+        BeanUtils.copyProperties(shopOrderDO, orderVO);
+        orderVO.setOrderTotal(shopOrderDO.getTotalAmount());
+        orderVO.setOrderId(orderId);
+        ConvenientMerchantVO shopStoreVO = new ConvenientMerchantVO();
+        // 查询店铺信息
+        ConvenientMerchantDO shopStoreDO = convenientMerchantDAO.selectById(shopOrderDO.getStoreId());
+        if (shopStoreDO != null) {
+            BeanUtils.copyProperties(shopStoreDO, shopStoreVO);
+        }
+        orderVO.setConvenientMerchantVO(shopStoreVO);
+
+        List<ComShopFlowerOrderGoodsVO> orderGoodsVOS = new ArrayList<>();
+        // 查询订单下商品信息
+        List<ComShopFlowerOrderGoodsDO> orderGoodsDOList = comShopFlowerOrderGoodsDAO
+                .selectList(new QueryWrapper<ComShopFlowerOrderGoodsDO>().eq("order_no", shopOrderDO.getOrderNo()));
+        StringBuilder sbr = new StringBuilder();
+        if (!orderGoodsDOList.isEmpty()) {
+            orderGoodsDOList.forEach(orderGoods -> {
+                ComShopFlowerOrderGoodsVO orderGoodsVO = new ComShopFlowerOrderGoodsVO();
+                BeanUtils.copyProperties(orderGoods, orderGoodsVO);
+                orderGoodsVO.setNum(orderGoods.getAmount());
+                orderGoodsVO.setGoodsPic(orderGoods.getGoodsAttrPic());
+                orderGoodsVO.setPrice(orderGoods.getGoodsAttrPrice());
+                // 查询商品信息判断商品状态
+             /*   ComShopFlowerGoodsDO goodsDO = comShopFlowerGoodsDAO.selectById(orderGoods.getGoodsId());
+                if (goodsDO == null || goodsDO.getDeleteStatus().equals(ComShopFlowerGoodsDO.deleteStatus.yes)
+                        || goodsDO.getDeleteStatus().equals(ComShopFlowerGoodsDO.status.recovery)) {
+                    orderGoodsVO.setGoodsStatus(ComShopFlowerOrderGoodsVO.goodsStatus.ysc);
+                } else if (goodsDO.getStatus().equals(ComShopFlowerGoodsDO.status.lower)) {
+                    orderGoodsVO.setGoodsStatus(ComShopFlowerOrderGoodsVO.goodsStatus.yxj);
+                } else if (goodsDO.getStatus().equals(ComShopFlowerGoodsDO.status.sell)) {
+                    orderGoodsVO.setGoodsStatus(ComShopFlowerOrderGoodsVO.goodsStatus.csz);
+                }*/
+
+                // 根据商品规格id查询商品规格
+//                ComShopFlowerGoodsAttrDO goodsAttrDO = comShopFlowerGoodsAttrDAO.selectById(orderGoods.getGoodsAttrId());
+                orderGoodsVO.setGoodsAttr(orderGoods.getGoodsAttrName());
+                orderGoodsVOS.add(orderGoodsVO);
+                sbr.append(orderGoods.getGoodsName()).append(" ");
+            });
+            orderVO.setGoodsAttrPic(orderGoodsDOList.get(0).getGoodsAttrPic());
+            orderVO.setGoodsAttrName(orderGoodsDOList.get(0).getGoodsAttrName());
+        }
+
+        orderVO.setOrderGoodsVOList(orderGoodsVOS);
+        orderVO.setGoodsName(sbr.toString());
+
+        ComShopUserAddressVO userAddressVO = new ComShopUserAddressVO();
+        // 查询用户收货地址
+        ComShopFlowerUserAddressDO userAddressDO = comShopFlowerUserAddressDAO.selectById(shopOrderDO.getReceiverId());
+        if (userAddressDO != null) {
+            BeanUtils.copyProperties(userAddressDO, userAddressVO);
+            orderVO.setUserAddressVO(userAddressVO);
+        }
+
+        // 操作日志
+/*        List<ComShopFlowerOrderOperateDO> listOperLog =
+                comShopFlowerOrderOperateDAO.selectList(new LambdaQueryWrapper<ComShopFlowerOrderOperateDO>()
+                        .eq(ComShopFlowerOrderOperateDO::getOrderNo, shopOrderDO.getOrderNo()));
+        List<ComShopFlowerOrderOperateVO> listOperLogVO = new ArrayList<>(listOperLog.size());
+        listOperLog.forEach(logDO -> {
+            ComShopFlowerOrderOperateVO copyVO = new ComShopFlowerOrderOperateVO();
+            BeanUtils.copyProperties(logDO, copyVO);
+            listOperLogVO.add(copyVO);
+        });
+        orderVO.setLogs(listOperLogVO);*/
+        Long pointId = shopOrderDO.getPointId();
+        if (null != pointId) {
+            ConvenientElevatingPointDO convenientElevatingPointDO = convenientElevatingPointDAO.selectById(pointId);
+            ConvenientElevatingPointVO convenientElevatingPointVO = new ConvenientElevatingPointVO();
+            BeanUtils.copyProperties(convenientElevatingPointDO, convenientElevatingPointVO);
+            orderVO.setConvenientElevatingPointVO(convenientElevatingPointVO);
+        }
+        //已完成、已退款才有评论
+        if (ComShopFlowerOrderDO.status.ywc == shopOrderDO.getStatus() || ComShopFlowerOrderDO.status.ytk == shopOrderDO.getStatus()) {
+            ComShopFlowerEvaluateVO comShopFlowerEvaluateVO = comShopFlowerEvaluateDAO.selectByOrderNo(shopOrderDO.getOrderNo());
+            if (nonNull(comShopFlowerEvaluateVO)) {
+                orderVO.setComShopFlowerEvaluateVO(comShopFlowerEvaluateVO);
+            }
+        }
+        //设置退款金额
+        ComShopFlowerRefundOrderDO comShopFlowerRefundOrderDO = comShopFlowerRefundOrderDAO.selectOne(new LambdaQueryWrapper<ComShopFlowerRefundOrderDO>().eq(ComShopFlowerRefundOrderDO::getOrderId, shopOrderDO.getId()));
+        if (nonNull(comShopFlowerRefundOrderDO)) {
+            orderVO.setRefundAmount(comShopFlowerRefundOrderDO.getRefundAmount());
+            orderVO.setRefundTime(comShopFlowerRefundOrderDO.getRefundTime());
+        }
+
+        //如果状态时取消状态,更新时间为去取消时间
+        if (shopOrderDO.getStatus() == ComShopFlowerOrderDO.status.yqx) {
+            orderVO.setCancelTime(shopOrderDO.getUpdateAt());
+        }
+        //判断是否可以退款 订单是否已超过15天 是否已有退款订单
+        int count = comShopFlowerRefundOrderDAO.selectCountRefundNowByOrderId(orderId);
+        if (count > 0){
+            orderVO.setRefundable(2);
+        }else {
+            if (null == orderVO.getReceivingTime()){
+                orderVO.setRefundable(2);
+            }else {
+                //收货时间往前推15天和当前时间做比较
+                Date date = DateUtils.addDay(orderVO.getReceivingTime(), 15);
+                if(date.before(new Date())){
+                    orderVO.setRefundable(2);
+                }
+            }
+        }
+
+
+
+        return R.ok(orderVO);
+    }
+
+    /**
+     * 根据订单id取消订单
+     *
+     * @param comShopOrderQueryDTO 订单信息
+     * @return 取消结果
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public R orderCancel(ComShopOrderQueryDTO comShopOrderQueryDTO) {
+        // 查询订单
+        ComShopFlowerOrderDO shopOrderDO = this.baseMapper.selectById(comShopOrderQueryDTO.getOrderId());
+        if (shopOrderDO == null) {
+            return R.fail("未查询到订单");
+        }
+        if (shopOrderDO.getStatus().equals(ComShopFlowerOrderDO.status.ddps)||shopOrderDO.getStatus().equals(ComShopFlowerOrderDO.status.dfh)) {
+            // 取消订单
+            shopOrderDO.setStatus(ComShopFlowerOrderDO.status.yqx);
+            //退款
+            String refundNo = WXPayUtil.generateNonceStr();
+            try {
+                String refundStr = WxPayUtils.refund(appid, mchId, shopOrderDO.getOrderNo(), shopOrderDO.getPayAmount(),
+                        shopOrderDO.getPayAmount(), refundNo, isTest);
+                log.info("退款请求接口返回参数:{}", refundStr);
+                Map<String, String> mapResult = WXPayUtil.xmlToMap(refundStr);
+                if (CollUtil.isNotEmpty(mapResult)) {
+                    String return_code = (String) mapResult.get("return_code");
+                    String result_code = (String) mapResult.get("result_code");
+                    String return_msg = mapResult.get("return_msg");
+                    ComShopFlowerOrderPayDO orderPayDO = new ComShopFlowerOrderPayDO();
+
+                    orderPayDO.setOrderNo(shopOrderDO.getOrderNo());
+                    orderPayDO.setOrderAmount(shopOrderDO.getTotalAmount());
+                    orderPayDO.setPayTime(new Date());
+                    orderPayDO.setStoreId(shopOrderDO.getStoreId());
+                    orderPayDO.setDeliveryType(shopOrderDO.getDeliveryType());
+                    orderPayDO.setOrderId(shopOrderDO.getId());
+                    orderPayDO.setPayType(ComShopFlowerOrderPayDO.payType.qx);
+                    if ("SUCCESS".equals(return_code) && return_code.equals(result_code)) {
+                        //退款成功
+                        // 添加订单支付记录表
+                        orderPayDO.setPayStatus(ComShopFlowerOrderPayDO.payStatus.yes);
+                        orderPayDO.setRefundStatus(ComShopFlowerOrderPayDO.refundStatus.tkcg);
+
+                    } else {
+                        //退款失败
+                        // 添加订单支付记录表
+                        orderPayDO.setPayStatus(ComShopFlowerOrderPayDO.payStatus.no);
+                        orderPayDO.setRefundStatus(ComShopFlowerOrderPayDO.refundStatus.tksb);
+                        shopOrderDO.setRemark(shopOrderDO.getRemark() + "_" + return_msg);
+                    }
+                    comShopFlowerOrderPayDAO.insert(orderPayDO);
+                }
+            } catch (Exception e) {
+                log.error("申请退款失败," + e.getMessage());
+                e.printStackTrace();
+                return R.fail("取消订单失败");
+            }
+            if (this.baseMapper.updateById(shopOrderDO) > 0) {
+                // 添加订单操作记录
+                ComShopFlowerOrderOperateDO orderOperateDO = new ComShopFlowerOrderOperateDO();
+                orderOperateDO.setOrderNo(shopOrderDO.getOrderNo());
+                orderOperateDO.setOperationType(ComShopOrderOperateDO.operationType.cancel);
+                orderOperateDO.setOperationTime(new Date());
+                if (comShopOrderQueryDTO.getIsAdmin()) {
+                    orderOperateDO.setOperationContent("管理员" + comShopOrderQueryDTO.getOperUserAccount() + "取消订单");
+                    orderOperateDO.setOperationBy("用户" + comShopOrderQueryDTO.getOperUserAccount());
+                } else {
+                    orderOperateDO.setOperationContent("用户取消订单");
+                    orderOperateDO.setOperationBy("用户");
+                }
+                comShopFlowerOrderOperateDAO.insert(orderOperateDO);
+                return R.ok();
+            } else {
+                return R.fail("取消订单失败");
+            }
+        }else {
+            return R.fail("该订单不可取消");
+        }
+
+
+    }
+
+    /**
+     * 根据订单id删除订单
+     *
+     * @param orderId 订单id
+     * @return 删除结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R orderDelete(Long orderId) {
+        // 查询订单
+        ComShopFlowerOrderDO shopOrderDO = this.baseMapper.selectById(orderId);
+        if (shopOrderDO == null) {
+            return R.fail("未查询到订单");
+        }
+        if (!shopOrderDO.getStatus().equals(ComShopFlowerOrderDO.status.ywc)
+                && !shopOrderDO.getStatus().equals(ComShopFlowerOrderDO.status.yqx)) {
+            return R.fail("该订单状态不可删除");
+        }
+
+        shopOrderDO.setDeleteStatus(ComShopFlowerOrderDO.deleteStatus.yes);
+        if (this.baseMapper.updateById(shopOrderDO) > 0) {
+            return R.ok();
+        } else {
+            return R.fail("取消订单失败");
+        }
+    }
+
+    /**
+     * 根据订单id确认收货
+     *
+     * @param orderId 订单id
+     * @param phone   手机号
+     * @return 确认结果
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public R orderConfirm(Long orderId, String phone) {
+        // 查询订单
+        ComShopFlowerOrderDO shopOrderDO = this.baseMapper.selectById(orderId);
+        if (shopOrderDO == null) {
+            return R.fail("未查询到订单");
+        }
+        if (!shopOrderDO.getStatus().equals(ComShopFlowerOrderDO.status.dsh)) {
+            return R.fail("该订单状态不可确认收货");
+        }
+        // 订单确认收货
+        shopOrderDO.setStatus(ComShopFlowerOrderDO.status.dpj);
+        shopOrderDO.setReceivingTime(new Date());
+        if (this.baseMapper.updateById(shopOrderDO) > 0) {
+            // 添加订单操作记录
+            ComShopFlowerOrderOperateDO orderOperateDO = new ComShopFlowerOrderOperateDO();
+            orderOperateDO.setOrderNo(shopOrderDO.getOrderNo());
+            orderOperateDO.setOperationType(ComShopFlowerOrderOperateDO.operationType.complete);
+            orderOperateDO.setOperationTime(new Date());
+            if (StringUtils.isNotEmpty(phone)) {
+                orderOperateDO.setOperationContent("用户" + phone + "确认收货");
+                orderOperateDO.setOperationBy("用户" + phone);
+            } else {
+                orderOperateDO.setOperationContent("用户确认收货");
+                orderOperateDO.setOperationBy("用户");
+            }
+            comShopFlowerOrderOperateDAO.insert(orderOperateDO);
+
+            //一个自提订单算一个货
+            if (ComShopFlowerOrderDO.deliveryType.store == shopOrderDO.getDeliveryType()){
+                ConvenientElevatingPointDO convenientElevatingPointDO = convenientElevatingPointDAO.selectById(shopOrderDO.getPointId());
+                convenientElevatingPointDO.setPrepareGoodsNum(convenientElevatingPointDO.getPrepareGoodsNum() - 1);
+                convenientElevatingPointDO.setAlreadyGoodsNum(convenientElevatingPointDO.getAlreadyGoodsNum() + 1);
+                convenientElevatingPointDAO.updateById(convenientElevatingPointDO);
+            }
+            return R.ok();
+        } else {
+            return R.fail("确认收货失败");
+        }
+    }
+
+
+    /**
+     * 订单发货
+     *
+     * @param orderShipDTO 订单发货信息
+     * @return 发货结果
+     */
+    @Override
+    public R shipOrder(ComShopOrderShipDTO orderShipDTO) {
+        ComShopFlowerOrderDO comShopOrderDO = comShopFlowerOrderDAO.selectById(orderShipDTO.getOrderId());
+        if (comShopOrderDO == null) {
+            return R.fail("订单不存在");
+        }
+        if (!(comShopOrderDO.getStatus() == ComShopFlowerOrderDO.status.dfh) || (comShopOrderDO.getDeliveryStatus() == ComShopFlowerOrderDO.deliveryStatus.yes)) {
+            return R.fail("订单发货失败,订单状态不允许发货");
+        }
+
+      /*  ConvenientMerchantDO convenientMerchantDO = convenientMerchantDAO.selectById(comShopOrderDO.getStoreId());
+        if (convenientMerchantDO.getDeliveryType() != 2) {
+            return R.fail("该商家不支持通过快递物流发货");
+        }*/
+        comShopOrderDO.setDeliveryStatus(2);
+        comShopOrderDO.setDeliveryType(2);
+        comShopOrderDO.setStatus(3);
+        comShopOrderDO.setDeliveryTime(Calendar.getInstance().getTime());
+        comShopOrderDO.setLogisticsCompany(orderShipDTO.getLogisticsCompany());
+        comShopOrderDO.setLogisticsNo(orderShipDTO.getLogisticsNo());
+        int updated = comShopFlowerOrderDAO.updateById(comShopOrderDO);
+        if (updated == 1) {
+            // 创建订单操作记录
+            ComShopFlowerOrderOperateDO orderOperateDO = new ComShopFlowerOrderOperateDO();
+            orderOperateDO.setOrderNo(comShopOrderDO.getOrderNo());
+            orderOperateDO.setOperationType(ComShopFlowerOrderOperateDO.operationType.deliver);
+            orderOperateDO.setOperationTime(new Date());
+
+            orderOperateDO.setOperationContent(orderShipDTO.getOperUserAccount() + "已发货");
+            orderOperateDO.setOperationBy(orderShipDTO.getOperUserAccount());
+            int inserted = comShopFlowerOrderOperateDAO.insert(orderOperateDO);
+            if (inserted != 1) {
+                log.error("订单发货日志保存错误");
+            }
+            //发货通知
+            WxMaService maService = wxMaConfiguration.getMaService(Constants.HC_APP_ID);
+            R userOpenId = userService.getUserOpenId(comShopOrderDO.getUserId());
+            if (R.isOk(userOpenId)) {
+                String openid = userOpenId.getData().toString();
+                try {
+                    WxUtil.sendDeliverGoodsNotice(openid,maService.getAccessToken(),orderShipDTO.getLogisticsCompany(),orderShipDTO.getLogisticsNo(),comShopOrderDO.getOrderNo(), DateUtil.format(new Date(), "yyyy-MM-dd HH:mm"));
+                } catch (WxErrorException e) {
+                    e.printStackTrace();
+                }
+            }
+            return R.ok("发货成功");
+        }
+        return R.fail("发货失败!");
+    }
+
+    @Override
+    public R deliverOrder(ComShopOrderDeliverDTO orderDeliverDTO) {
+        ComShopFlowerOrderDO comShopOrderDO = comShopFlowerOrderDAO.selectById(orderDeliverDTO.getOrderId());
+        if (comShopOrderDO == null) {
+            return R.fail("订单不存在");
+        }
+        if (!(comShopOrderDO.getStatus() == 2) || !(comShopOrderDO.getDeliveryStatus() == 1)) {
+            return R.fail("当前订单不能配送");
+        }
+
+        comShopOrderDO.setDeliveryStatus(4);
+        comShopOrderDO.setDeliveryType(1);
+        comShopOrderDO.setStatus(3);
+        comShopOrderDO.setDeliveryTime(Calendar.getInstance().getTime());
+        int updated = comShopFlowerOrderDAO.updateById(comShopOrderDO);
+        if (updated == 1) {
+
+            // 创建订单操作记录
+            ComShopFlowerOrderOperateDO orderOperateDO = new ComShopFlowerOrderOperateDO();
+            orderOperateDO.setOrderNo(comShopOrderDO.getOrderNo());
+            orderOperateDO.setOperationType(ComShopOrderOperateDO.operationType.deliver);
+            orderOperateDO.setOperationTime(new Date());
+            if (orderDeliverDTO.getIsAdmin()) {
+                orderOperateDO.setOperationContent(orderDeliverDTO.getOperUserAccount() + "已发货");
+                orderOperateDO.setOperationBy(orderDeliverDTO.getOperUserAccount());
+            } else {
+                orderOperateDO.setOperationContent(orderDeliverDTO.getOperUserAccount() + "已发货");
+                orderOperateDO.setOperationBy(orderDeliverDTO.getOperUserAccount());
+            }
+            int inserted = comShopFlowerOrderOperateDAO.insert(orderOperateDO);
+            if (inserted != 1) {
+                log.error("订单发货日志保存错误");
+            }
+            return R.ok("开始配送");
+        }
+        return R.fail("操作失败!");
+    }
+
+    @Override
+    public R finishDeliverOrder(ComShopOrderDeliverDTO orderDeliverDTO) {
+        ComShopFlowerOrderDO comShopOrderDO = comShopFlowerOrderDAO.selectById(orderDeliverDTO.getOrderId());
+        if (comShopOrderDO == null) {
+            return R.fail("订单不存在");
+        }
+        if (comShopOrderDO.getDeliveryStatus() != 4 && comShopOrderDO.getDeliveryStatus() != 3) {
+            return R.fail("订单还未开始配送");
+        }
+        if (!(comShopOrderDO.getStatus() == 3)) {
+            return R.fail("订单还未发货");
+        }
+        // comShopOrderDO.setStatus(4);
+        comShopOrderDO.setDeliveryStatus(2);
+        int updated = comShopFlowerOrderDAO.updateById(comShopOrderDO);
+        if (updated == 1) {
+            // 创建订单操作记录
+            ComShopFlowerOrderOperateDO orderOperateDO = new ComShopFlowerOrderOperateDO();
+            orderOperateDO.setOrderNo(comShopOrderDO.getOrderNo());
+            orderOperateDO.setOperationType(ComShopOrderOperateDO.operationType.complete);
+            orderOperateDO.setOperationTime(new Date());
+            if (orderDeliverDTO.getIsAdmin()) {
+                orderOperateDO.setOperationContent("订单已完成");
+                orderOperateDO.setOperationBy(orderDeliverDTO.getOperUserAccount());
+            } else {
+                orderOperateDO.setOperationContent("订单已完成");
+                orderOperateDO.setOperationBy(orderDeliverDTO.getOperUserAccount());
+            }
+            int inserted = comShopFlowerOrderOperateDAO.insert(orderOperateDO);
+            if (inserted != 1) {
+                log.error("订单发货日志保存错误");
+            }
+            return R.ok("配送完成");
+        }
+        return R.fail("操作失败!");
+    }
+
+
+    @Override
+    public R pageShopOrder(PageComShopOrderSearchDTO pageComShopOrderSearchDTO) {
+        Long pageNum = pageComShopOrderSearchDTO.getPageNum();
+        Long pageSize = pageComShopOrderSearchDTO.getPageSize();
+        Page page = new Page();
+
+        page.setCurrent(pageNum);
+        page.setSize(pageSize);
+        if (pageNum == null || 0 == pageNum.longValue()) {
+            page.setCurrent(1l);
+        }
+        if (pageSize == null || 0 == pageSize.longValue()) {
+            page.setSize(10l);
+        }
+
+        IPage<ComShopOrderSearchVO> ipage = this.baseMapper.pageOrderBy(page, pageComShopOrderSearchDTO);
+        return R.ok(ipage);
+    }
+
+    /**
+     * 微信支付订单回调
+     *
+     * @param wxPayNotifyOrderDTO 订单支付回调参数
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void wxOrderPayNotify(WxPayNotifyOrderDTO wxPayNotifyOrderDTO) {
+        log.info("微信订单支付回调开始处理逻辑");
+        if (StringUtils.isEmpty(wxPayNotifyOrderDTO.getOrderTradeNo())) {
+            log.error("微信支付回调失败,订单号为空");
+            return;
+        }
+
+        log.info("微信订单支付回调开始查询订单");
+        // 查询订单
+        ComShopFlowerOrderDO shopOrderDO = this.baseMapper.selectOne(new QueryWrapper<ComShopFlowerOrderDO>().lambda()
+                .eq(ComShopFlowerOrderDO::getOrderNo, wxPayNotifyOrderDTO.getOrderTradeNo()));
+        if (shopOrderDO == null) {
+            log.error("未查询到支付订单,订单回调失败,订单号:" + wxPayNotifyOrderDTO.getOrderTradeNo());
+            return;
+        }
+        if (ComShopFlowerOrderDO.deliveryType.store == shopOrderDO.getDeliveryType()) {
+            shopOrderDO.setStatus(ComShopFlowerOrderDO.status.ddps);
+        } else {
+            shopOrderDO.setStatus(ComShopFlowerOrderDO.status.dfh);
+        }
+
+        shopOrderDO.setPayType(ComShopFlowerOrderDO.payType.wx);
+        shopOrderDO.setPayStatus(ComShopFlowerOrderDO.payStatus.yes);
+        shopOrderDO.setPayAmount(BigDecimal.valueOf(Double.valueOf(wxPayNotifyOrderDTO.getCashFee()) / 100));
+        shopOrderDO.setWxTardeNo(wxPayNotifyOrderDTO.getWxTradeNo());
+        shopOrderDO.setPayTime(
+                DateUtils.stringToDate(wxPayNotifyOrderDTO.getPayTime(), new SimpleDateFormat("yyyyMMddHHmmss")));
+        this.baseMapper.updateById(shopOrderDO);
+
+        // 查询订单商品
+        List<ComShopFlowerOrderGoodsDO> orderGoodsList =
+                comShopFlowerOrderGoodsDAO.selectList(new QueryWrapper<ComShopFlowerOrderGoodsDO>().lambda()
+                        .eq(ComShopFlowerOrderGoodsDO::getOrderNo, shopOrderDO.getOrderNo()));
+
+        ConvenientMerchantDO storeDO = convenientMerchantDAO.selectById(shopOrderDO.getStoreId());
+
+        if (!orderGoodsList.isEmpty()) {
+            int goodsNub = 0;
+            for (ComShopFlowerOrderGoodsDO orderGood : orderGoodsList) {
+                goodsNub += orderGood.getAmount();
+                // 更新商品信息
+                ComShopFlowerGoodsDO goodsDO = comShopFlowerGoodsDAO.selectById(orderGood.getGoodsId());
+                if (goodsDO != null) {
+                    goodsDO.setSale(goodsDO.getSale() + orderGood.getAmount());
+                    comShopFlowerGoodsDAO.updateById(goodsDO);
+                }
+
+                // 更新商品规格
+                ComShopFlowerGoodsAttrDO goodsAttrDO = comShopFlowerGoodsAttrDAO.selectById(orderGood.getGoodsAttrId());
+                if (goodsAttrDO != null) {
+                    goodsAttrDO.setSale(goodsAttrDO.getSale() + orderGood.getAmount());
+                    //减库存
+                    goodsAttrDO.setStock(goodsAttrDO.getStock() - orderGood.getAmount());
+                    comShopFlowerGoodsAttrDAO.updateById(goodsAttrDO);
+                }
+            }
+
+            // 更新店铺销量以及销售额
+            if (storeDO != null) {
+                storeDO.setSale(storeDO.getSale() + goodsNub);
+                storeDO.setSaleVolume(storeDO.getSaleVolume().add(shopOrderDO.getTotalAmount()));
+                convenientMerchantDAO.updateById(storeDO);
+            }
+        }
+
+        // 添加订单操作记录
+        ComShopFlowerOrderOperateDO orderOperateDO = new ComShopFlowerOrderOperateDO();
+        orderOperateDO.setOrderNo(shopOrderDO.getOrderNo());
+        orderOperateDO.setOperationType(ComShopFlowerOrderOperateDO.operationType.pay);
+        orderOperateDO.setOperationTime(new Date());
+        orderOperateDO.setOperationContent("用户支付订单");
+        orderOperateDO.setOperationBy("用户");
+        comShopFlowerOrderOperateDAO.insert(orderOperateDO);
+
+        // 添加订单支付记录表
+        ComShopFlowerOrderPayDO orderPayDO = new ComShopFlowerOrderPayDO();
+        orderPayDO.setOrderNo(shopOrderDO.getOrderNo());
+        orderPayDO.setOrderAmount(shopOrderDO.getTotalAmount());
+        orderPayDO.setWxTradeNo(wxPayNotifyOrderDTO.getWxTradeNo());
+        orderPayDO.setPayStatus(ComShopFlowerOrderPayDO.payStatus.yes);
+        orderPayDO.setPayAmount(shopOrderDO.getPayAmount());
+        orderPayDO.setPayTime(shopOrderDO.getPayTime());
+        orderPayDO.setStoreId(shopOrderDO.getStoreId());
+        orderPayDO.setDeliveryType(shopOrderDO.getDeliveryType());
+        orderPayDO.setOrderId(shopOrderDO.getId());
+        orderPayDO.setPayType(ComShopFlowerOrderPayDO.payType.zf);
+        comShopFlowerOrderPayDAO.insert(orderPayDO);
+        if (nonNull(storeDO)){
+            WxMaService maService = wxMaConfiguration.getMaService(Constants.HC_APP_ID);
+            R sysUserVOR = userService.getSysUserVOByPhone(storeDO.getMobilePhone());
+            if (R.isOk(sysUserVOR)) {
+                SysUserVO sysUserVO = JSONObject.parseObject(JSONObject.toJSONString(sysUserVOR.getData()), SysUserVO.class);
+                try {
+                    DecimalFormat df = new DecimalFormat("#.00");
+                    WxUtil.sendNewOrderNotice(sysUserVO.getOpenid(),maService.getAccessToken(),shopOrderDO.getOrderNo(),
+                            shopOrderDO.getDeliveryType()==1?"拼单订单":"快递订单",orderGoodsList.get(0).getGoodsName(),
+                            df.format(shopOrderDO.getTotalAmount()),
+                            DateUtil.format(shopOrderDO.getCreateAt(),"yyyy-MM-dd HH:mm"));
+                } catch (WxErrorException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+
+    }
+
+    /**
+     * 订单去支付
+     *
+     * @param orderPayDTO 请求参数
+     * @return 支付对象
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R wxPay(OrderPayDTO orderPayDTO) {
+        // 创建返回参数
+        ComShopFlowerOrderVO shopOrderVO = new ComShopFlowerOrderVO();
+        // 查询订单
+        ComShopFlowerOrderDO orderDO = comShopFlowerOrderDAO.selectOne(
+                new QueryWrapper<ComShopFlowerOrderDO>().lambda().eq(ComShopFlowerOrderDO::getOrderNo, orderPayDTO.getOrderNo()));
+        if (orderDO == null) {
+            return R.fail("订单不存在");
+        }
+        try {
+            BigDecimal money = orderDO.getTotalAmount();
+            if (isTest) {
+                money = BigDecimal.valueOf(0.01);
+            }
+            // 调用wx支付
+            String xml = WxPayUtils.getUnifiedorder(appid, mchId, payKey, notifyUrl, "商品购买", orderPayDTO.getOpenId(),
+                    orderDO.getOrderNo(), money, null);
+            log.info("微信支付返回参数:" + xml);
+            shopOrderVO.setPayResult(xml);
+        } catch (Exception e) {
+            log.error("调用微信支付异常,异常原因:" + e.getMessage());
+        }
+        shopOrderVO.setOrderId(orderDO.getId());
+        shopOrderVO.setOrderNo(orderDO.getOrderNo());
+        shopOrderVO.setOrderTotal(orderDO.getTotalAmount());
+        return R.ok(shopOrderVO);
+    }
+
+    @Override
+    public R pageOrderByStoreId(PageComFlowerOrderListDTO pageComFlowerOrderListDTO) {
+        Page page = new Page(pageComFlowerOrderListDTO.getPageNum(), pageComFlowerOrderListDTO.getPageSize());
+        IPage<ComShopFlowerOrderStoreListVO> orderPageVOIPage = this.baseMapper.pageOrderByStoreId(page, pageComFlowerOrderListDTO);
+        if (!orderPageVOIPage.getRecords().isEmpty()) {
+            orderPageVOIPage.getRecords().forEach(orderVo -> {
+                if (null != orderVo.getPointId()) {
+                    ConvenientElevatingPointDO convenientElevatingPointDO = convenientElevatingPointDAO.selectById(orderVo.getPointId());
+                    ConvenientElevatingPointVO convenientElevatingPointVO = new ConvenientElevatingPointVO();
+                    BeanUtils.copyProperties(convenientElevatingPointDO, convenientElevatingPointVO);
+                    orderVo.setConvenientElevatingPointVO(convenientElevatingPointVO);
+
+                }
+            });
+        }
+        return R.ok(orderPageVOIPage);
+    }
+
+    @Override
+    public R selectCountByDeliveryType(Integer deliveryType, Long userId) {
+        //1.等待配送 2.配送中 3.待收货 4.待评价 5.已完成 6.已取消 7.已退款 8.待发货
+        String[] statusStr = {"ddps", "psz", "dsh", "dpj", "ywc", "yqx", "ytk", "dfh"};
+        ConvenientMerchantVO convenientMerchantVO = convenientMerchantDAO.selectMerchantByUserId(userId);
+        List<ComShopOrderCountVO> comShopOrderCountVOS = this.baseMapper.selectCountByDeliveryType(deliveryType, convenientMerchantVO.getId());
+        Map<Integer, Integer> collect = comShopOrderCountVOS.stream().collect(Collectors.toMap(ComShopOrderCountVO::getStatus, ComShopOrderCountVO::getAmount));
+        Map<String, Integer> retMap = new HashMap<>();
+        int amountTotal = 0;
+        for (int i = 0; i < statusStr.length; i++) {
+            if (collect.containsKey(i+1)) {
+                Integer amount = collect.get(i+1);
+                amountTotal = amountTotal + amount;
+                retMap.put(statusStr[i], amount);
+            } else {
+                retMap.put(statusStr[i], 0);
+            }
+        }
+        retMap.put("zdd", amountTotal);
+
+        return R.ok(retMap);
+    }
+
+    @Override
+    public R selectCountByUserId(Long userId) {
+        ConvenientMerchantVO convenientMerchantVO = convenientMerchantDAO.selectMerchantByUserId(userId);
+        Long storeId = convenientMerchantVO.getId();
+        Map<String, Object> retMap = new HashMap<>();
+        //查询我的店铺订单量
+        List<ComShopOrderStoreIdCountVO> comShopOrderStoreIdCountVOS = this.baseMapper.selectCountByStoreId(storeId, null);
+        Map<String, Integer> zddlMap = comShopOrderStoreIdCountVOS.stream().collect(Collectors.toMap(ComShopOrderStoreIdCountVO::getCountName, ComShopOrderStoreIdCountVO::getCountNum));
+        retMap.put("zddl", zddlMap);
+        //查询我的店铺拼单订单
+        List<ComShopOrderStoreIdCountVO> comShopOrderStoreIdCountVOS1 = this.baseMapper.selectCountByStoreId(storeId, ComShopFlowerOrderDO.deliveryType.store);
+        Map<String, Integer> pdddMap = comShopOrderStoreIdCountVOS1.stream().collect(Collectors.toMap(ComShopOrderStoreIdCountVO::getCountName, ComShopOrderStoreIdCountVO::getCountNum));
+        retMap.put("pddd", pdddMap);
+        //查询我的店铺快递订单
+        List<ComShopOrderStoreIdCountVO> comShopOrderStoreIdCountVOS2 = this.baseMapper.selectCountByStoreId(storeId, ComShopFlowerOrderDO.deliveryType.express);
+        Map<String, Integer> kdddMap = comShopOrderStoreIdCountVOS2.stream().collect(Collectors.toMap(ComShopOrderStoreIdCountVO::getCountName, ComShopOrderStoreIdCountVO::getCountNum));
+        retMap.put("kddd", kdddMap);
+
+        //拼单订单各状态
+        R r = this.selectCountByDeliveryType(ComShopFlowerOrderDO.deliveryType.store, userId);
+        retMap.put("pdddStatus", r.getData());
+
+        //快递订单各状态
+        R r1 = this.selectCountByDeliveryType(ComShopFlowerOrderDO.deliveryType.express, userId);
+        retMap.put("kdddStatus", r1.getData());
+        //营业额
+        List<ComShopOrderStoreIdNumVO> comShopOrderStoreIdCountVOS3 = this.baseMapper.selectSumAmountByStoreId(storeId);
+        Map<String, BigDecimal> yyeMap = comShopOrderStoreIdCountVOS3.stream().collect(Collectors.toMap(ComShopOrderStoreIdNumVO::getCountName, ComShopOrderStoreIdNumVO::getCountNum));
+        retMap.put("yye", yyeMap);
+        //在售商品
+        Integer countSale = comShopFlowerGoodsDAO.selectCountSaleByStoreId(storeId);
+        retMap.put("countSale", countSale);
+        //退款申请
+        Integer refundOrder = comShopFlowerRefundOrderDAO.selectCountByStoreId(storeId);
+        retMap.put("refundOrder", refundOrder);
+        return R.ok(retMap);
+    }
+
+
+    /**
+     * 获取商家的营业额和可结算金额
+     *
+     * @param storeId
+     * @return
+     */
+    @Override
+    public R getQuota(Long storeId) {
+        //营业额
+        BigDecimal turnover = this.baseMapper.selectTurnover(storeId);
+        //可结算
+        BigDecimal settlement = this.baseMapper.selectSettlement(storeId);
+
+        Map<String, Object> retMap = new HashMap<>();
+        retMap.put("turnover", turnover);
+        retMap.put("settlement", settlement);
+        return R.ok(retMap);
+
+    }
+
+
+    @Override
+    public R selectSumOrderAndAmountByStoreId(Long storeId) {
+        List<ComShopOrderStoreIdNumVO> comShopOrderStoreIdCountVOS = this.baseMapper.selectSumOrderAndAmountByStoreId(storeId);
+        Map<String, Object> retMap = comShopOrderStoreIdCountVOS.stream().collect(Collectors.toMap(ComShopOrderStoreIdNumVO::getCountName, ComShopOrderStoreIdNumVO::getCountNum));
+        return R.ok(retMap);
+    }
+
+    public R selectOrderLineChart(Long storeId, Integer type, Integer tab) {
+        if (tab == 1) {
+            if (1 == type) {
+                //近15天的订单量
+                int days = 15;
+                return getCountByStoreIdAndDays(storeId, days);
+            } else if (2 == type) {
+                //近30天的订单量
+                int days = 30;
+                return getCountByStoreIdAndDays(storeId, days);
+            } else {
+                //今年所有月份订单量
+                List<ComShopOrderStoreIdCountVO> comShopOrderStoreIdCountVOS = this.baseMapper.selectCountOrderMonthByStoreId(storeId);
+                Map<String, Integer> retMap = comShopOrderStoreIdCountVOS.stream().collect(Collectors.toMap(ComShopOrderStoreIdCountVO::getCountName, ComShopOrderStoreIdCountVO::getCountNum));
+                List<String> yearMonths = DateUtils.getYearMonths();
+                for (String yearMonth : yearMonths) {
+                    if (!retMap.containsKey(yearMonth)) {
+                        retMap.put(yearMonth, 0);
+                    }
+                }
+                return R.ok(retMap);
+            }
+        } else if (2 == tab) {
+            if (1 == type) {
+                //近15天的营收
+                int days = 15;
+                return getSumByStoreIdAndDays(storeId, days);
+            } else if (2 == type) {
+                //近30天的营收
+                int days = 30;
+                return getSumByStoreIdAndDays(storeId, days);
+            } else {
+                //今年所有月份订单量
+                List<ComShopOrderStoreIdNumVO> comShopOrderStoreIdCountVOS = this.baseMapper.selectOrderSumMonthByStoreId(storeId);
+                Map<String, BigDecimal> retMap = comShopOrderStoreIdCountVOS.stream().collect(Collectors.toMap(ComShopOrderStoreIdNumVO::getCountName, ComShopOrderStoreIdNumVO::getCountNum));
+                List<String> yearMonths = DateUtils.getYearMonths();
+                for (String yearMonth : yearMonths) {
+                    if (!retMap.containsKey(yearMonth)) {
+                        retMap.put(yearMonth, BigDecimal.ZERO);
+                    }
+                }
+                return R.ok(retMap);
+            }
+        }
+        return R.ok();
+
+    }
+
+    private R getCountByStoreIdAndDays(Long storeId, int days) {
+        List<ComShopOrderStoreIdCountVO> comShopOrderStoreIdCountVOS = this.baseMapper.selectCountOrderDayByStoreId(storeId, days);
+        Map<String, Integer> retMap = comShopOrderStoreIdCountVOS.stream().collect(Collectors.toMap(ComShopOrderStoreIdCountVO::getCountName, ComShopOrderStoreIdCountVO::getCountNum));
+        List<String> beforeDays = DateUtils.getBeforeDays(days);
+        for (String beforeDay : beforeDays) {
+            if (!retMap.containsKey(beforeDay)) {
+                retMap.put(beforeDay, 0);
+            }
+        }
+        return R.ok(retMap);
+    }
+
+    private R getSumByStoreIdAndDays(Long storeId, int days) {
+        List<ComShopOrderStoreIdNumVO> comShopOrderStoreIdNumVOS = this.baseMapper.selectOrderSumPayDayByStoreId(storeId, days);
+        Map<String, BigDecimal> retMap = comShopOrderStoreIdNumVOS.stream().collect(Collectors.toMap(ComShopOrderStoreIdNumVO::getCountName, ComShopOrderStoreIdNumVO::getCountNum));
+        List<String> beforeDays = DateUtils.getBeforeDays(days);
+        for (String beforeDay : beforeDays) {
+            if (!retMap.containsKey(beforeDay)) {
+                retMap.put(beforeDay, BigDecimal.ZERO);
+            }
+        }
+        return R.ok(retMap);
+    }
+
+    @Override
+    public R pageOrderByDeliveryNo(PageComFlowerOrderListDTO pageComFlowerOrderListDTO) {
+        Page page = new Page(pageComFlowerOrderListDTO.getPageNum(), pageComFlowerOrderListDTO.getPageSize());
+        IPage<ComShopFlowerOrderStoreListVO> orderPageVOIPage = this.baseMapper.pageOrderByDeliveryNo(page, pageComFlowerOrderListDTO);
+        ComShopFlowerOrderDeliveryNoListVO comShopFlowerOrderDeliveryNoListVO = new ComShopFlowerOrderDeliveryNoListVO();
+        ComShopFlowerOrderDeliveryDO comShopFlowerOrderDeliveryDO = comShopFlowerOrderDeliveryDAO.selectById(pageComFlowerOrderListDTO.getDeliveryId());
+        ComShopFlowerOrderDeliveryVO comShopFlowerOrderDeliveryVO = new ComShopFlowerOrderDeliveryVO();
+        BeanUtils.copyProperties(comShopFlowerOrderDeliveryDO, comShopFlowerOrderDeliveryVO);
+
+        Long pointId = comShopFlowerOrderDeliveryDO.getPointId();
+        ConvenientElevatingPointDO convenientElevatingPointDO = convenientElevatingPointDAO.selectById(pointId);
+        ConvenientElevatingPointVO convenientElevatingPointVO = new ConvenientElevatingPointVO();
+        BeanUtils.copyProperties(convenientElevatingPointDO, convenientElevatingPointVO);
+        comShopFlowerOrderDeliveryVO.setConvenientElevatingPointVO(convenientElevatingPointVO);
+        comShopFlowerOrderDeliveryNoListVO.setComShopFlowerOrderDeliveryVO(comShopFlowerOrderDeliveryVO);
+        comShopFlowerOrderDeliveryNoListVO.setPage(orderPageVOIPage);
+        return R.ok(comShopFlowerOrderDeliveryNoListVO);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerRefundOrderServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerRefundOrderServiceImpl.java
new file mode 100644
index 0000000..9bf0c48
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerRefundOrderServiceImpl.java
@@ -0,0 +1,343 @@
+package com.panzhihua.service_community.service.impl;
+
+import cn.binarywang.wx.miniapp.api.WxMaService;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DateUtil;
+import com.alibaba.fastjson.JSONObject;
+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.constants.Constants;
+import com.panzhihua.common.model.dtos.shop.ComShopFlowerRefundOrderDTO;
+import com.panzhihua.common.model.dtos.shop.ComShopOrderQueryDTO;
+import com.panzhihua.common.model.dtos.shop.PageComOrderRefundDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
+import com.panzhihua.common.model.vos.shop.ComShopFlowerOrderGoodsVO;
+import com.panzhihua.common.model.vos.shop.ComShopFlowerRefundOrderVO;
+import com.panzhihua.common.model.vos.shop.ComShopOrderCountVO;
+import com.panzhihua.common.model.vos.user.SysUserVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.OrderNoUtils;
+import com.panzhihua.common.utlis.WxPayUtils;
+import com.panzhihua.common.utlis.WxUtil;
+import com.panzhihua.common.utlis.wx.WXPayUtil;
+import com.panzhihua.service_community.dao.*;
+import com.panzhihua.service_community.model.dos.*;
+import com.panzhihua.service_community.service.ComShopFlowerRefundOrderService;
+import com.panzhihua.service_community.util.WxMaConfiguration;
+import lombok.extern.slf4j.Slf4j;
+import me.chanjar.weixin.common.error.WxErrorException;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.text.DecimalFormat;
+import java.util.*;
+import java.util.stream.Collectors;
+
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+
+/**
+ * @ClassName: ComShopFlowerRefundOrderServiceImpl
+ * @Author: yh
+ * @Date: 2022/11/16 14:36
+ * @Description: 退款订单
+ */
+@Slf4j
+@Service
+public class ComShopFlowerRefundOrderServiceImpl extends ServiceImpl<ComShopFlowerRefundOrderDAO, ComShopFlowerRefundOrderDO>
+        implements ComShopFlowerRefundOrderService {
+
+    @Value("${hcMin.app.isTest}")
+    private Boolean isTest;
+    @Value("${hcMin.app.appid}")
+    private String appid;
+    @Value("${hcMin.app.payKey}")
+    private String payKey;
+    @Value("${hcMin.app.mchId}")
+    private String mchId;
+    @Value("${hcMin.app.notifyUrl}")
+    private String notifyUrl;
+
+    @Resource
+    private ComShopFlowerOrderDAO comShopFlowerOrderDAO;
+    @Resource
+    private ComShopFlowerOrderPayDAO comShopFlowerOrderPayDAO;
+    @Resource
+    private ComShopFlowerOrderGoodsDAO comShopFlowerOrderGoodsDAO;
+    @Resource
+    private ComShopFlowerGoodsDAO comShopFlowerGoodsDAO;
+    @Resource
+    private ComShopFlowerGoodsAttrDAO comShopFlowerGoodsAttrDAO;
+    @Resource
+    private ConvenientMerchantDAO convenientMerchantDAO;
+    @Resource
+    private WxMaConfiguration wxMaConfiguration;
+    @Resource
+    private UserService userService;
+    @Resource
+    private ConvenientElevatingPointDAO convenientElevatingPointDAO;
+
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R createRefundOrder(ComShopFlowerRefundOrderDTO comShopFlowerRefundOrderDTO) {
+        ComShopFlowerRefundOrderDO comShopFlowerRefundOrderDO = new ComShopFlowerRefundOrderDO();
+        BeanUtils.copyProperties(comShopFlowerRefundOrderDTO, comShopFlowerRefundOrderDO);
+        // 生成退款订单号
+        String refundOrderNo = OrderNoUtils.NextOrderNoFlower(comShopFlowerRefundOrderDTO.getUserId());
+        comShopFlowerRefundOrderDO.setRefundOrderNo(refundOrderNo);
+        comShopFlowerRefundOrderDO.setStatus(ComShopFlowerRefundOrderDO.status.clz);
+        comShopFlowerRefundOrderDO.setDeleteStatus(ComShopFlowerRefundOrderDO.deleteStatus.no);
+        this.baseMapper.insert(comShopFlowerRefundOrderDO);
+        //商家接受退款信息
+        ConvenientMerchantVO convenientMerchantVO = convenientMerchantDAO.selectMerchantById(comShopFlowerRefundOrderDTO.getStoreId());
+        WxMaService maService = wxMaConfiguration.getMaService(Constants.HC_APP_ID);
+        R sysUserVOR = userService.getSysUserVOByPhone(convenientMerchantVO.getMobilePhone());
+        if (R.isOk(sysUserVOR)) {
+            SysUserVO sysUserVO = JSONObject.parseObject(JSONObject.toJSONString(sysUserVOR.getData()), SysUserVO.class);
+            try {
+                DecimalFormat df = new DecimalFormat("#.00");
+                WxUtil.sendNewRefundOrderNotice(sysUserVO.getOpenid(),maService.getAccessToken(),refundOrderNo,df.format(comShopFlowerRefundOrderDO.getRefundAmount()),DateUtil.format(comShopFlowerRefundOrderDO.getRefundTime(),"yyyy-MM-dd HH:mm"));
+            } catch (WxErrorException e) {
+                e.printStackTrace();
+            }
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R pageRefundOrder(PageComOrderRefundDTO pageComOrderRefundDTO) {
+        Page page = new Page<>(pageComOrderRefundDTO.getPageNum(), pageComOrderRefundDTO.getPageSize());
+        IPage<ComShopFlowerRefundOrderVO> pages = this.baseMapper.pageRefundOrder(page, pageComOrderRefundDTO);
+        for (ComShopFlowerRefundOrderVO comShopFlowerRefundOrderVO : pages.getRecords()) {
+            String orderNo = comShopFlowerRefundOrderVO.getOrderNo();
+            ComShopFlowerOrderDO comShopFlowerOrderDO = comShopFlowerOrderDAO.selectById(comShopFlowerRefundOrderVO.getOrderId());
+            if (nonNull(comShopFlowerOrderDO)){
+                comShopFlowerRefundOrderVO.setTotalAmount(comShopFlowerOrderDO.getTotalAmount());
+                ConvenientElevatingPointDO convenientElevatingPointDO = convenientElevatingPointDAO.selectById(comShopFlowerOrderDO.getPointId());
+                if (nonNull(convenientElevatingPointDO)){
+                    comShopFlowerRefundOrderVO.setPointName(convenientElevatingPointDO.getName());
+                }
+            }
+
+            List<ComShopFlowerOrderGoodsVO> orderGoodsVOS = new ArrayList<>();
+            // 查询订单下商品信息
+            List<ComShopFlowerOrderGoodsDO> orderGoodsDOList = comShopFlowerOrderGoodsDAO
+                    .selectList(new QueryWrapper<ComShopFlowerOrderGoodsDO>().eq("order_no",orderNo));
+            StringBuilder sbr = new StringBuilder();
+            if (!orderGoodsDOList.isEmpty()) {
+                orderGoodsDOList.forEach(orderGoods -> {
+                    ComShopFlowerOrderGoodsVO orderGoodsVO = new ComShopFlowerOrderGoodsVO();
+                    BeanUtils.copyProperties(orderGoods, orderGoodsVO);
+                    orderGoodsVO.setNum(orderGoods.getAmount());
+                    orderGoodsVO.setGoodsPic(orderGoods.getGoodsAttrPic());
+                    orderGoodsVO.setPrice(orderGoods.getGoodsAttrPrice());
+                    orderGoodsVO.setGoodsAttr(orderGoods.getGoodsAttrName());
+                    orderGoodsVOS.add(orderGoodsVO);
+                    sbr.append(orderGoods.getGoodsName()).append(" ");
+                });
+                comShopFlowerRefundOrderVO.setGoodsAttrName(orderGoodsDOList.get(0).getGoodsAttrName());
+            }
+            comShopFlowerRefundOrderVO.setOrderGoodsVOList(orderGoodsVOS);
+            comShopFlowerRefundOrderVO.setGoodsName(sbr.toString());
+
+
+            // 查询店铺信息
+/*           ConvenientMerchantVO shopStoreVO = new ConvenientMerchantVO();
+            ConvenientMerchantDO shopStoreDO = convenientMerchantDAO.selectById(comShopFlowerRefundOrderVO.getStoreId());
+            if (shopStoreDO != null) {
+                BeanUtils.copyProperties(shopStoreDO, shopStoreVO);
+            }
+            comShopFlowerRefundOrderVO.setConvenientMerchantVO(shopStoreVO);
+*/
+
+        }
+        return R.ok(pages);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R updateRefundOrder(ComShopFlowerRefundOrderDTO comShopFlowerRefundOrderDTO) {
+        ComShopFlowerRefundOrderDO comShopFlowerRefundOrderDO = this.baseMapper.selectById(comShopFlowerRefundOrderDTO.getId());
+
+        if (Objects.isNull(comShopFlowerRefundOrderDO)) {
+            return R.fail("不存在该退款订单");
+        } ComShopFlowerOrderDO comShopFlowerOrderDO = comShopFlowerOrderDAO.selectById(comShopFlowerRefundOrderDO.getOrderId());
+
+        if (ComShopFlowerRefundOrderDO.handleResult.agree.equals(comShopFlowerRefundOrderDTO.getHandleResult())) {
+            //处理退款事宜
+            comShopFlowerRefundOrderDO.setRefundTime(new Date());
+            comShopFlowerRefundOrderDO.setHandleTime(new Date());
+            comShopFlowerRefundOrderDO.setHandleResult(ComShopFlowerRefundOrderDO.handleResult.agree);
+            //微信处理退款
+            try {
+                String refundNo = WXPayUtil.generateNonceStr();
+                String refundStr = WxPayUtils.refund(appid, mchId, comShopFlowerOrderDO.getOrderNo(), comShopFlowerRefundOrderDO.getPayAmount(),
+                        comShopFlowerRefundOrderDO.getPayAmount(), refundNo, isTest);
+                log.info("退款请求接口返回参数:{}" , refundStr);
+                Map<String, String> mapResult  = WXPayUtil.xmlToMap(refundStr);
+                if (CollUtil.isNotEmpty(mapResult)) {
+                    String return_code = (String) mapResult.get("return_code");
+                    String result_code = (String) mapResult.get("result_code");
+                    String return_msg = mapResult.get("return_msg");
+                    ComShopFlowerOrderPayDO orderPayDO = new ComShopFlowerOrderPayDO();
+
+                    orderPayDO.setOrderNo(comShopFlowerOrderDO.getOrderNo());
+                    orderPayDO.setOrderAmount(comShopFlowerOrderDO.getTotalAmount());
+                    orderPayDO.setPayTime(new Date());
+                    orderPayDO.setStoreId(comShopFlowerOrderDO.getStoreId());
+                    orderPayDO.setDeliveryType(comShopFlowerOrderDO.getDeliveryType());
+                    orderPayDO.setOrderId(comShopFlowerOrderDO.getId());
+                    orderPayDO.setPayType(ComShopFlowerOrderPayDO.payType.tk);
+                    orderPayDO.setRefundOrderNo(comShopFlowerRefundOrderDO.getRefundOrderNo());
+                    orderPayDO.setPayAmount(comShopFlowerRefundOrderDO.getRefundAmount());
+                    if ("SUCCESS".equals(return_code) && return_code.equals(result_code)) {
+                        //退款成功
+                        comShopFlowerRefundOrderDO.setStatus(ComShopFlowerRefundOrderDO.status.tkcg);
+                        // 添加订单支付记录表
+//                        orderPayDO.setWxTradeNo(wxPayNotifyOrderDTO.getWxTradeNo());
+                        orderPayDO.setPayStatus(ComShopFlowerOrderPayDO.payStatus.yes);
+                        orderPayDO.setRefundStatus(ComShopFlowerOrderPayDO.refundStatus.tkcg);
+                        //更新订单状态
+                        comShopFlowerOrderDO.setStatus(ComShopFlowerOrderDO.status.ytk);
+                        comShopFlowerOrderDAO.updateById(comShopFlowerOrderDO);
+
+                        //退款成功发送消息
+                        sendRefundNotice(comShopFlowerRefundOrderDO, comShopFlowerOrderDO,"同意退款");
+                    }else {
+                        //退款失败
+                        comShopFlowerRefundOrderDO.setStatus(ComShopFlowerRefundOrderDO.status.tksb);
+                        comShopFlowerRefundOrderDO.setRemark(comShopFlowerRefundOrderDO.getRemark() + "_退款失败");
+                        // 添加订单支付记录表
+                        orderPayDO.setPayStatus(ComShopFlowerOrderPayDO.payStatus.no);
+                        orderPayDO.setRefundStatus(ComShopFlowerOrderPayDO.refundStatus.tksb);
+                        //退款失败发送消息
+                        sendRefundNotice(comShopFlowerRefundOrderDO, comShopFlowerOrderDO,"退款失败");
+                    }
+                    comShopFlowerOrderPayDAO.insert(orderPayDO);
+                }
+            } catch (Exception e) {
+                log.error("申请退款失败,"+e.getMessage());
+                e.printStackTrace();
+            }
+
+        } else if (ComShopFlowerRefundOrderDO.handleResult.refuse.equals(comShopFlowerRefundOrderDTO.getHandleResult())) {
+            comShopFlowerRefundOrderDO.setHandleTime(new Date());
+            comShopFlowerRefundOrderDO.setStatus(ComShopFlowerRefundOrderDO.status.tksb);
+            comShopFlowerRefundOrderDO.setHandleResult(ComShopFlowerRefundOrderDO.handleResult.refuse);
+            //拒绝退款发送消息
+            sendRefundNotice(comShopFlowerRefundOrderDO, comShopFlowerOrderDO,"拒绝退款");
+        }
+        this.baseMapper.updateById(comShopFlowerRefundOrderDO);
+        return R.ok();
+    }
+
+    private void sendRefundNotice(ComShopFlowerRefundOrderDO comShopFlowerRefundOrderDO, ComShopFlowerOrderDO comShopFlowerOrderDO,String msg) {
+        WxMaService maService = wxMaConfiguration.getMaService(Constants.HC_APP_ID);
+        R userOpenId = userService.getUserOpenId(comShopFlowerOrderDO.getUserId());
+        if (R.isOk(userOpenId)) {
+            String openid = userOpenId.getData().toString();
+            try {
+                DecimalFormat df = new DecimalFormat("#.00");
+                WxUtil.sendRefundNotice(openid,maService.getAccessToken(),comShopFlowerRefundOrderDO.getRefundOrderNo(),df.format(comShopFlowerRefundOrderDO.getRefundAmount()),msg);
+            } catch (WxErrorException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    @Override
+    public R selectCountGroupStatus(Long storeId){
+        String[] statusStr = {"clz","tkcg","tksb","yqx","tkz"};
+        List<ComShopOrderCountVO> comShopOrderCountVOS = this.baseMapper.selectCountGroupStatus(storeId);
+        Map<Integer, Integer> collect = comShopOrderCountVOS.stream().collect(Collectors.toMap(ComShopOrderCountVO::getStatus, ComShopOrderCountVO::getAmount));
+        Map<String,Integer> retMap = new HashMap<>();
+        int amountTotal = 0;
+        for (int i = 0; i < statusStr.length; i++) {
+            if (collect.containsKey(i)) {
+                Integer amount = collect.get(i);
+                amountTotal = amountTotal + amount;
+                retMap.put(statusStr[i],amount);
+            }else {
+                retMap.put(statusStr[i],0);
+            }
+        }
+        retMap.put("zdd",amountTotal);
+        return R.ok(retMap);
+    }
+
+    /**
+     * 根据订单id取消订单
+     *
+     * @param \
+     * @return 取消结果
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public R orderCancel(Long id) {
+        this.baseMapper.updateCancel(id,ComShopFlowerRefundOrderDO.status.yqx);
+        return R.ok();
+    }
+
+
+    @Override
+    public R refundOrderDetail(Long id){
+        ComShopFlowerRefundOrderDO comShopFlowerRefundOrderDO = this.baseMapper.selectById(id);
+        if (isNull(comShopFlowerRefundOrderDO)){
+            return R.fail("未查询到该退款订单");
+        }
+        ComShopFlowerRefundOrderVO comShopFlowerRefundOrderVO = new ComShopFlowerRefundOrderVO();
+        BeanUtils.copyProperties(comShopFlowerRefundOrderDO,comShopFlowerRefundOrderVO);
+        String orderNo = comShopFlowerRefundOrderDO.getOrderNo();
+        List<ComShopFlowerOrderGoodsVO> orderGoodsVOS = new ArrayList<>();
+        // 查询订单下商品信息
+        List<ComShopFlowerOrderGoodsDO> orderGoodsDOList = comShopFlowerOrderGoodsDAO
+                .selectList(new QueryWrapper<ComShopFlowerOrderGoodsDO>().eq("order_no",orderNo));
+        StringBuilder sbr = new StringBuilder();
+        if (!orderGoodsDOList.isEmpty()) {
+            orderGoodsDOList.forEach(orderGoods -> {
+                ComShopFlowerOrderGoodsVO orderGoodsVO = new ComShopFlowerOrderGoodsVO();
+                BeanUtils.copyProperties(orderGoods, orderGoodsVO);
+                orderGoodsVO.setNum(orderGoods.getAmount());
+                orderGoodsVO.setGoodsPic(orderGoods.getGoodsAttrPic());
+                orderGoodsVO.setPrice(orderGoods.getGoodsAttrPrice());
+                // 查询商品信息判断商品状态
+                ComShopFlowerGoodsDO goodsDO = comShopFlowerGoodsDAO.selectById(orderGoods.getGoodsId());
+                if (goodsDO == null || goodsDO.getDeleteStatus().equals(ComShopFlowerGoodsDO.deleteStatus.yes)
+                        || goodsDO.getDeleteStatus().equals(ComShopFlowerGoodsDO.status.recovery)) {
+                    orderGoodsVO.setGoodsStatus(ComShopFlowerOrderGoodsVO.goodsStatus.ysc);
+                } else if (goodsDO.getStatus().equals(ComShopFlowerGoodsDO.status.lower)) {
+                    orderGoodsVO.setGoodsStatus(ComShopFlowerOrderGoodsVO.goodsStatus.yxj);
+                } else if (goodsDO.getStatus().equals(ComShopFlowerGoodsDO.status.sell)) {
+                    orderGoodsVO.setGoodsStatus(ComShopFlowerOrderGoodsVO.goodsStatus.csz);
+                }
+
+                // 根据商品规格id查询商品规格
+                ComShopFlowerGoodsAttrDO goodsAttrDO = comShopFlowerGoodsAttrDAO.selectById(orderGoods.getGoodsAttrId());
+                if (goodsAttrDO != null) {
+                    orderGoodsVO.setGoodsAttr(goodsAttrDO.getGoodsAttrName());
+                }
+                comShopFlowerRefundOrderVO.setGoodsAttrName(orderGoodsDOList.get(0).getGoodsAttrName());
+                orderGoodsVOS.add(orderGoodsVO);
+                sbr.append(orderGoods.getGoodsName()).append(" ");
+            });
+        }
+        comShopFlowerRefundOrderVO.setOrderGoodsVOList(orderGoodsVOS);
+        comShopFlowerRefundOrderVO.setGoodsName(sbr.toString());
+
+        ConvenientMerchantVO shopStoreVO = new ConvenientMerchantVO();
+        // 查询店铺信息
+        ConvenientMerchantDO shopStoreDO = convenientMerchantDAO.selectById(comShopFlowerRefundOrderDO.getStoreId());
+        if (shopStoreDO != null) {
+            BeanUtils.copyProperties(shopStoreDO, shopStoreVO);
+        }
+        comShopFlowerRefundOrderVO.setConvenientMerchantVO(shopStoreVO);
+        return R.ok(comShopFlowerRefundOrderVO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerUserAddressServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerUserAddressServiceImpl.java
new file mode 100644
index 0000000..cb60747
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerUserAddressServiceImpl.java
@@ -0,0 +1,132 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.shop.ComShopAddressDTO;
+import com.panzhihua.common.model.dtos.shop.PageComShopAddressDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.dao.ComShopFlowerUserAddressDAO;
+import com.panzhihua.service_community.dao.ComShopUserAddressDAO;
+import com.panzhihua.service_community.model.dos.ComShopFlowerUserAddressDO;
+import com.panzhihua.service_community.model.dos.ComShopUserAddressDO;
+import com.panzhihua.service_community.service.ComShopFlowerUserAddressService;
+import com.panzhihua.service_community.service.ComShopUserAddressService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * @auther yh
+ * @create 2022-11-08 17:25:45
+ * @describe 用户收货地址表服务实现类
+ */
+@Slf4j
+@Service
+public class ComShopFlowerUserAddressServiceImpl extends ServiceImpl<ComShopFlowerUserAddressDAO, ComShopFlowerUserAddressDO>
+    implements ComShopFlowerUserAddressService {
+
+    /**
+     * 查询用户收获地址列表
+     * 
+     * @param comShopAddressDTO
+     *            请求参数
+     * @return 用户收货地址列表
+     */
+    @Override
+    public R shopUserAddressList(PageComShopAddressDTO comShopAddressDTO) {
+        Page page = new Page<>(comShopAddressDTO.getPageNum(), comShopAddressDTO.getPageSize());
+        return R.ok(this.baseMapper.pageUserAddressList(page, comShopAddressDTO.getUserId()));
+    }
+
+    /**
+     * 用户添加收货地址
+     * 
+     * @param comShopAddressDTO
+     *            请求参数
+     * @return 添加结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R shopAddUserAddress(ComShopAddressDTO comShopAddressDTO) {
+        ComShopFlowerUserAddressDO userAddressDO = new ComShopFlowerUserAddressDO();
+        BeanUtils.copyProperties(comShopAddressDTO, userAddressDO);
+
+        // 如果新增的地址为默认地址,需要修改原来的默认地址为不默认
+        if (userAddressDO.getIsDefault().equals(ComShopFlowerUserAddressDO.isDefault.yes)) {
+            ComShopFlowerUserAddressDO oldUserAddressDO = this.baseMapper.selectOne(new QueryWrapper<ComShopFlowerUserAddressDO>()
+                .eq("user_id", comShopAddressDTO.getUserId()).eq("is_default", ComShopFlowerUserAddressDO.isDefault.yes));
+            if (oldUserAddressDO != null) {
+                oldUserAddressDO.setIsDefault(ComShopFlowerUserAddressDO.isDefault.no);
+                this.baseMapper.updateById(oldUserAddressDO);
+            }
+        }
+
+        if (this.baseMapper.insert(userAddressDO) > 0) {
+            return R.ok();
+        } else {
+            return R.fail("添加收货地址失败");
+        }
+    }
+
+    /**
+     * 用户修改收货地址
+     * 
+     * @param comShopAddressDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R shopEditUserAddress(ComShopAddressDTO comShopAddressDTO) {
+
+        // 查询用户收货地址
+        ComShopFlowerUserAddressDO userAddressDO = this.baseMapper.selectById(comShopAddressDTO.getAddressId());
+        if (userAddressDO == null) {
+            return R.fail("未查询到用户收货地址信息");
+        }
+
+        BeanUtils.copyProperties(comShopAddressDTO, userAddressDO);
+        // 如果要修改的地址为默认地址,需要修改原来的默认地址为不默认
+        if (comShopAddressDTO.getIsDefault().equals(ComShopFlowerUserAddressDO.isDefault.yes)) {
+            ComShopFlowerUserAddressDO oldUserAddressDO = this.baseMapper.selectOne(new QueryWrapper<ComShopFlowerUserAddressDO>()
+                .eq("user_id", comShopAddressDTO.getUserId()).eq("is_default", ComShopFlowerUserAddressDO.isDefault.yes));
+            if (oldUserAddressDO != null) {
+                // 判断当前要修改的默认地址是否本来就是默认地址
+                if (!oldUserAddressDO.getId().equals(userAddressDO.getId())) {
+                    oldUserAddressDO.setIsDefault(ComShopFlowerUserAddressDO.isDefault.no);
+                    this.baseMapper.updateById(oldUserAddressDO);
+                }
+            }
+        }
+
+        if (this.baseMapper.updateById(userAddressDO) > 0) {
+            return R.ok();
+        } else {
+            return R.fail("添加收货地址失败");
+        }
+    }
+
+    /**
+     * 用户删除收货地址
+     * 
+     * @param addressId
+     *            收货地址id
+     * @return 删除结果
+     */
+    public R shopDelUserAddress(Long addressId) {
+        // 查询用户收货地址
+        ComShopFlowerUserAddressDO userAddressDO = this.baseMapper.selectById(addressId);
+        if (userAddressDO == null) {
+            return R.fail("未查询到用户收货地址信息");
+        }
+        userAddressDO.setDeleteStatus(1);
+        if (this.baseMapper.updateById(userAddressDO) > 0) {
+            return R.ok();
+        } else {
+            return R.fail("删除收货地址失败");
+        }
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopGoodsAttrServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopGoodsAttrServiceImpl.java
new file mode 100644
index 0000000..7fc5a51
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopGoodsAttrServiceImpl.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.ComShopGoodsAttrDAO;
+import com.panzhihua.service_community.model.dos.ComShopGoodsAttrDO;
+import com.panzhihua.service_community.service.ComShopGoodsAttrService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:49
+ * @describe 商品规格表服务实现类
+ */
+@Slf4j
+@Service
+public class ComShopGoodsAttrServiceImpl extends ServiceImpl<ComShopGoodsAttrDAO, ComShopGoodsAttrDO>
+    implements ComShopGoodsAttrService {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopGoodsServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopGoodsServiceImpl.java
new file mode 100644
index 0000000..2c1a459
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopGoodsServiceImpl.java
@@ -0,0 +1,274 @@
+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 org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+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.google.common.collect.Lists;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.dtos.shop.ComShopGoodsDTO;
+import com.panzhihua.common.model.dtos.shop.PageComShopGoodsDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.shop.*;
+import com.panzhihua.common.utlis.DifferentLongListUtil;
+import com.panzhihua.service_community.dao.ComShopGoodsAttrDAO;
+import com.panzhihua.service_community.dao.ComShopGoodsDAO;
+import com.panzhihua.service_community.dao.ComShopStoreDAO;
+import com.panzhihua.service_community.model.dos.ComShopGoodsAttrDO;
+import com.panzhihua.service_community.model.dos.ComShopGoodsDO;
+import com.panzhihua.service_community.model.dos.ComShopStoreDO;
+import com.panzhihua.service_community.service.ComShopGoodsService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:02:35
+ * @describe 商品表服务实现类
+ */
+@Slf4j
+@Service
+public class ComShopGoodsServiceImpl extends ServiceImpl<ComShopGoodsDAO, ComShopGoodsDO>
+    implements ComShopGoodsService {
+    @Resource
+    private ComShopGoodsAttrServiceImpl goodsAttrService;
+    @Resource
+    private ComShopGoodsAttrDAO shopGoodsAttrDAO;
+    @Resource
+    private ComShopStoreDAO shopStoreDAO;
+
+    @Override
+    public R saveShopGoods(AddShopGoodsVO addShopGoodsVO) {
+        if (addShopGoodsVO == null) {
+            return R.ok("500", "数据为空!");
+        }
+        String[] images = addShopGoodsVO.getGoodsPic().split(",");
+        ComShopGoodsDO shopGoodsDO = new ComShopGoodsDO();
+        BeanUtils.copyProperties(addShopGoodsVO, shopGoodsDO);
+        shopGoodsDO.setOriginalPrice(addShopGoodsVO.getPrice());
+        if (images.length > 1) {
+            shopGoodsDO.setGoodsPic(images[0]);
+        }
+        shopGoodsDO.setImages(addShopGoodsVO.getGoodsPic());
+        shopGoodsDO.setSale(0);
+        shopGoodsDO.setDetails(addShopGoodsVO.getDetails());
+        int goodsId = this.baseMapper.insert(shopGoodsDO);
+        if (goodsId > 0) {
+            ArrayList<ComShopGoodsAttrDO> goodsAttrDOS = Lists.newArrayList();
+            ComShopGoodsDO goodDO = this.baseMapper.selectById(shopGoodsDO.getId());
+            addShopGoodsVO.getGoodsAttrVOList().forEach(goodsAttr -> {// 维护商品规格表
+                if (goodDO == null) {
+                    throw new ServiceException("商家id不存在!");
+                }
+                ComShopGoodsAttrDO shopGoodsAttrDO = new ComShopGoodsAttrDO();
+                shopGoodsAttrDO.setGoodsId(shopGoodsDO.getId());
+                shopGoodsAttrDO.setStoreId(goodDO.getStoreId());
+                shopGoodsAttrDO.setGoodsName(goodDO.getName());
+                shopGoodsAttrDO.setGoodsAttr(goodsAttr.getGoodsAttr());
+                shopGoodsAttrDO.setIsDefault(1);
+                shopGoodsAttrDO.setPrice(goodsAttr.getAttrPrice());
+                shopGoodsAttrDO.setAttrPic(images[0]);
+                goodsAttrDOS.add(shopGoodsAttrDO);
+            });
+            if (addShopGoodsVO.getGoodsAttrVOList().size() < 1) {// 如果没有规格参数加默认
+                ComShopGoodsAttrDO shopGoodsAttrDO = new ComShopGoodsAttrDO();
+                shopGoodsAttrDO.setGoodsId(shopGoodsDO.getId());
+                shopGoodsAttrDO.setStoreId(goodDO.getStoreId());
+                shopGoodsAttrDO.setGoodsName(goodDO.getName());
+                shopGoodsAttrDO.setGoodsAttr("默认");
+                shopGoodsAttrDO.setIsDefault(1);
+                shopGoodsAttrDO.setPrice(goodDO.getPrice());
+                shopGoodsAttrDO.setAttrPic(images[0]);
+                goodsAttrService.save(shopGoodsAttrDO);
+            }
+            if (goodsAttrDOS.size() > 0) {
+                goodsAttrService.saveBatch(goodsAttrDOS);
+            }
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R pageGoodsList(PageComShopGoodsDTO pageComShopGoodsDTO) {
+        long pageNum = pageComShopGoodsDTO.getPageNum() != null ? pageComShopGoodsDTO.getPageNum() : 1;
+        long pageSize = pageComShopGoodsDTO.getPageSize() != null ? pageComShopGoodsDTO.getPageSize() : 10;
+        Page page = new Page<>(pageNum, pageSize);
+        IPage<PageShopGoodsVO> comShopStoreVOIPage = this.baseMapper.pageShopGoods(page, pageComShopGoodsDTO);
+        if (!comShopStoreVOIPage.getRecords().isEmpty()) {
+            comShopStoreVOIPage.getRecords().forEach(shopGoods -> {
+                List<ComShopGoodsAttrDO> goodsAttrDOs =
+                    shopGoodsAttrDAO.selectList(new QueryWrapper<ComShopGoodsAttrDO>().lambda()
+                        .eq(ComShopGoodsAttrDO::getGoodsId, shopGoods.getId()));
+                ArrayList<AddShopGoodsAttrVO> goodsAttrVOList = Lists.newArrayList();
+                for (ComShopGoodsAttrDO oneGoodsAttrDO : goodsAttrDOs) {
+                    AddShopGoodsAttrVO goodsAttrVO = new AddShopGoodsAttrVO();
+                    goodsAttrVO.setGoodsAttrId(oneGoodsAttrDO.getId());
+                    goodsAttrVO.setGoodsAttr(oneGoodsAttrDO.getGoodsAttr());
+                    goodsAttrVO.setAttrPrice(oneGoodsAttrDO.getPrice());
+                    goodsAttrVOList.add(goodsAttrVO);
+                }
+                shopGoods.setGoodsAttts(goodsAttrVOList);
+            });
+        }
+        return R.ok(comShopStoreVOIPage);
+    }
+
+    @Override
+    public R editShopGoods(Long id, AddShopGoodsVO addShopGoodsVO) {
+        if (addShopGoodsVO == null) {
+            return R.ok("500", "数据为空!");
+        }
+        LambdaQueryWrapper<ComShopGoodsDO> query =
+            new LambdaQueryWrapper<ComShopGoodsDO>().eq(ComShopGoodsDO::getId, id);
+        ComShopGoodsDO shopGoodsDO = new ComShopGoodsDO();
+        BeanUtils.copyProperties(addShopGoodsVO, shopGoodsDO);
+        shopGoodsDO.setOriginalPrice(addShopGoodsVO.getPrice());
+        int update = this.baseMapper.update(shopGoodsDO, query);
+        if (update < 1) {
+            throw new ServiceException("修改失败");
+        }
+        // 修改规格表
+        List<ComShopGoodsAttrDO> comShopGoodsAttrDOS = shopGoodsAttrDAO
+            .selectList(new LambdaQueryWrapper<ComShopGoodsAttrDO>().eq(ComShopGoodsAttrDO::getGoodsId, id));
+        if (addShopGoodsVO.getGoodsAttrVOList().size() == 0) {
+            shopGoodsAttrDAO
+                .delete(new LambdaQueryWrapper<ComShopGoodsAttrDO>().eq(ComShopGoodsAttrDO::getGoodsId, id));
+            ComShopGoodsAttrDO comShopGoodsAttrDO = new ComShopGoodsAttrDO();
+            comShopGoodsAttrDO.setGoodsId(id);
+            comShopGoodsAttrDO.setStoreId(addShopGoodsVO.getStoreId());
+            comShopGoodsAttrDO.setGoodsName(addShopGoodsVO.getName());
+            comShopGoodsAttrDO.setGoodsAttr("默认");
+            comShopGoodsAttrDO.setAttrPic(addShopGoodsVO.getGoodsPic());
+            comShopGoodsAttrDO.setIsDefault(1);
+            comShopGoodsAttrDO.setPrice(addShopGoodsVO.getPrice());
+            shopGoodsAttrDAO.insert(comShopGoodsAttrDO);
+        } else {
+            List<Long> attrIds =
+                comShopGoodsAttrDOS.stream().map(ComShopGoodsAttrDO::getId).collect(Collectors.toList());
+            List<Long> voAttrIds = addShopGoodsVO.getGoodsAttrVOList().stream().map(AddShopGoodsAttrVO::getGoodsAttrId)
+                .collect(Collectors.toList());
+            // 需要删除的规格ID——针对编辑时删除了规格的情况
+            List<Long> deleteIds = DifferentLongListUtil.getDiffrent(attrIds, voAttrIds);
+            if (deleteIds.size() != 0) {
+                shopGoodsAttrDAO.deleteBatchIds(deleteIds);
+            }
+            addShopGoodsVO.getGoodsAttrVOList().forEach(goodsAttr -> {
+                ComShopGoodsAttrDO comShopGoodsAttrDO = shopGoodsAttrDAO.selectById(goodsAttr.getGoodsAttrId());
+                if (comShopGoodsAttrDO != null) {
+                    comShopGoodsAttrDO.setPrice(goodsAttr.getAttrPrice());
+                    comShopGoodsAttrDO.setGoodsAttr(goodsAttr.getGoodsAttr());
+                    shopGoodsAttrDAO.updateById(comShopGoodsAttrDO);
+                } else {
+                    comShopGoodsAttrDO = new ComShopGoodsAttrDO();
+                    comShopGoodsAttrDO.setGoodsId(id);
+                    comShopGoodsAttrDO.setStoreId(addShopGoodsVO.getStoreId());
+                    comShopGoodsAttrDO.setGoodsName(addShopGoodsVO.getName());
+                    comShopGoodsAttrDO.setGoodsAttr(goodsAttr.getGoodsAttr());
+                    comShopGoodsAttrDO.setAttrPic(addShopGoodsVO.getGoodsPic());
+                    comShopGoodsAttrDO.setIsDefault(1);
+                    comShopGoodsAttrDO.setPrice(goodsAttr.getAttrPrice());
+                    shopGoodsAttrDAO.insert(comShopGoodsAttrDO);
+                }
+            });
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R deleteShopGoods(Long[] id) {
+        LambdaQueryWrapper<ComShopGoodsDO> query =
+            new LambdaQueryWrapper<ComShopGoodsDO>().in(ComShopGoodsDO::getId, id);
+        List<ComShopGoodsDO> comShopGoodsDOS = this.baseMapper.selectList(query);
+        for (ComShopGoodsDO one : comShopGoodsDOS) {
+            one.setDeleteStatus(2);
+            this.baseMapper.updateById(one);
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R changeStatus(Long id, Integer status) {
+        ComShopGoodsDO shopGoodsDO = this.baseMapper.selectById(id);
+        if (shopGoodsDO == null) {
+            return R.fail("id有误!");
+        }
+        shopGoodsDO.setStatus(status);
+        this.baseMapper.updateById(shopGoodsDO);
+        return R.ok();
+    }
+
+    /**
+     * 分页查询商品列表
+     *
+     * @param comShopGoodsDTO
+     *            请求参数
+     * @return 商品列表
+     */
+    @Override
+    public R pageShopGoods(ComShopGoodsDTO comShopGoodsDTO) {
+        Page page = new Page<>(comShopGoodsDTO.getPageNum(), comShopGoodsDTO.getPageSize());
+        IPage<ComShopGoodsVO> goodsVOIPage = this.baseMapper.pageShopGoodByApps(page, comShopGoodsDTO);
+        if (!goodsVOIPage.getRecords().isEmpty()) {
+            goodsVOIPage.getRecords().forEach(goodsVo -> {
+                List<ComShopGoodsAttrVO> goodsAttrList = shopGoodsAttrDAO.getGoodsAttr(goodsVo.getId());
+                if (!goodsAttrList.isEmpty()) {
+                    goodsVo.setGoodsAttrList(goodsAttrList);
+                }
+            });
+        }
+        return R.ok(goodsVOIPage);
+    }
+
+    /**
+     * 根据商品id查询商品信息
+     *
+     * @param goodsId
+     *            商品id
+     * @return 商品信息
+     */
+    @Override
+    public R shopGoodsDetail(Long goodsId) {
+
+        // 根据id查询商品信息
+        ComShopGoodsDO goodsDO = this.baseMapper.selectById(goodsId);
+        if (goodsDO == null || goodsDO.getDeleteStatus().equals(ComShopGoodsDO.deleteStatus.yes)) {
+            return R.fail(403, "商品不存在");
+        }
+        if (!goodsDO.getStatus().equals(ComShopGoodsDO.status.sell)) {
+            return R.fail(405, "商品已下架");
+        }
+
+        // 根据商品id查询商品规格信息
+        List<ComShopGoodsAttrVO> goodsAttrList = new ArrayList<>();
+        List<ComShopGoodsAttrDO> goodsAttrDOS =
+            shopGoodsAttrDAO.selectList(new QueryWrapper<ComShopGoodsAttrDO>().eq("goods_id", goodsId));
+        goodsAttrDOS.forEach(attrDO -> {
+            ComShopGoodsAttrVO goodsAttrVO = new ComShopGoodsAttrVO();
+            BeanUtils.copyProperties(attrDO, goodsAttrVO);
+            goodsAttrList.add(goodsAttrVO);
+        });
+
+        // 查询商品店铺信息
+        ComShopStoreDO shopStoreDO = shopStoreDAO.selectById(goodsDO.getStoreId());
+        PageShopStoreVO shopStoreVO = new PageShopStoreVO();
+        BeanUtils.copyProperties(shopStoreDO, shopStoreVO);
+
+        // 设置值
+        ComShopGoodsVO shopGoods = new ComShopGoodsVO();
+        BeanUtils.copyProperties(goodsDO, shopGoods);
+        shopGoods.setGoodsAttrList(goodsAttrList);
+        shopGoods.setShopStoreVO(shopStoreVO);
+        return R.ok(shopGoods);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOperLogServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOperLogServiceImpl.java
new file mode 100644
index 0000000..6790db0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOperLogServiceImpl.java
@@ -0,0 +1,120 @@
+package com.panzhihua.service_community.service.impl;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.model.dtos.PageDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.shop.ShopOperLogVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.service_community.dao.ComShopOperLogDAO;
+import com.panzhihua.service_community.model.dos.ComShopOperLogDO;
+import com.panzhihua.service_community.service.ComShopOperLogService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther cedoo
+ * @create 2021-4-17 10:51:12
+ * @describe 日志服务
+ */
+@Slf4j
+@Service
+public class ComShopOperLogServiceImpl extends ServiceImpl<ComShopOperLogDAO, ComShopOperLogDO>
+    implements ComShopOperLogService {
+
+    @Resource
+    private UserService userService;
+
+    @Override
+    public R saveLog(ShopOperLogVO shopOperLogVO) {
+        if (shopOperLogVO == null) {
+            return R.ok("500", "数据为空!");
+        }
+        ComShopOperLogDO theDo = new ComShopOperLogDO();
+        BeanUtils.copyProperties(shopOperLogVO, theDo);
+        this.baseMapper.insert(theDo);
+        return R.ok();
+    }
+
+    @Override
+    public R pageShopOperLog(PageDTO pageDTO) {
+        Page page = new Page<>(pageDTO.getPageNum(), pageDTO.getPageSize());
+        IPage<ComShopOperLogDO> comShopOperLogDOIPage =
+            this.baseMapper.selectPage(page, new LambdaQueryWrapper<ComShopOperLogDO>()
+                .orderByDesc(ComShopOperLogDO::getOperTime).eq(ComShopOperLogDO::getUserId, pageDTO.getUserId()));
+
+        IPage<ShopOperLogVO> comShopOperLogVOIPage = comShopOperLogDOIPage.convert(comShopOperLogDO -> {
+            ShopOperLogVO shopOperLogVO = new ShopOperLogVO();
+            BeanUtils.copyProperties(comShopOperLogDO, shopOperLogVO);
+            /**
+             * 隐藏敏感信息
+             */
+            shopOperLogVO.setJsonResult("****");
+            shopOperLogVO.setOperParam("****");
+
+            String businessTypeName = "";
+            switch (comShopOperLogDO.getBusinessType()) {
+                case 1:
+                    businessTypeName = "登录";
+                    break;
+                case 2:
+                    businessTypeName = "修改密码";
+                    break;
+                case 3:
+                    businessTypeName = "添加商品";
+                    break;
+                case 4:
+                    businessTypeName = "编辑商品";
+                    break;
+                case 5:
+                    businessTypeName = "下架商品";
+                    break;
+                case 6:
+                    businessTypeName = "上架商品";
+                    break;
+                case 7:
+                    businessTypeName = "删除商品";
+                    break;
+                case 8:
+                    businessTypeName = "取消订单";
+                    break;
+                case 9:
+                    businessTypeName = "发货";
+                    break;
+                case 10:
+                    businessTypeName = "配送";
+                    break;
+                case 11:
+                    businessTypeName = "查看订单详情";
+                    break;
+                case 12:
+                    businessTypeName = "导出订单";
+                    break;
+                case 13:
+                    businessTypeName = "导出资金流水";
+                    break;
+                default:
+                    break;
+            }
+            shopOperLogVO.setBusinessName(businessTypeName);
+
+            R<LoginUserInfoVO> usrInfo = userService.getUserInfoByUserId(comShopOperLogDO.getUserId() + "");
+            if (R.isOk(usrInfo)) {
+                LoginUserInfoVO loginUserInfoVO =
+                    JSONObject.parseObject(JSONObject.toJSONString(usrInfo.getData()), LoginUserInfoVO.class);
+                shopOperLogVO.setUserName(loginUserInfoVO.getName());
+            }
+            return shopOperLogVO;
+        });
+        return R.ok(comShopOperLogVOIPage);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOrderGoodsServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOrderGoodsServiceImpl.java
new file mode 100644
index 0000000..feac4a4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOrderGoodsServiceImpl.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.ComShopOrderGoodsDAO;
+import com.panzhihua.service_community.model.dos.ComShopOrderGoodsDO;
+import com.panzhihua.service_community.service.ComShopOrderGoodsService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:03:17
+ * @describe 订单商品表服务实现类
+ */
+@Slf4j
+@Service
+public class ComShopOrderGoodsServiceImpl extends ServiceImpl<ComShopOrderGoodsDAO, ComShopOrderGoodsDO>
+    implements ComShopOrderGoodsService {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOrderOperateServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOrderOperateServiceImpl.java
new file mode 100644
index 0000000..cee786c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOrderOperateServiceImpl.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.ComShopOrderOperateDAO;
+import com.panzhihua.service_community.model.dos.ComShopOrderOperateDO;
+import com.panzhihua.service_community.service.ComShopOrderOperateService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:03:31
+ * @describe 订单操作记录表服务实现类
+ */
+@Slf4j
+@Service
+public class ComShopOrderOperateServiceImpl extends ServiceImpl<ComShopOrderOperateDAO, ComShopOrderOperateDO>
+    implements ComShopOrderOperateService {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOrderPayServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOrderPayServiceImpl.java
new file mode 100644
index 0000000..aec61c4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOrderPayServiceImpl.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.ComShopOrderPayDAO;
+import com.panzhihua.service_community.model.dos.ComShopOrderPayDO;
+import com.panzhihua.service_community.service.ComShopOrderPayService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:03:42
+ * @describe 订单支付记录表服务实现类
+ */
+@Slf4j
+@Service
+public class ComShopOrderPayServiceImpl extends ServiceImpl<ComShopOrderPayDAO, ComShopOrderPayDO>
+    implements ComShopOrderPayService {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOrderServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOrderServiceImpl.java
new file mode 100644
index 0000000..8151e13
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopOrderServiceImpl.java
@@ -0,0 +1,920 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+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 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.model.dtos.shop.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.shop.*;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.OrderNoUtils;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.common.utlis.WxPayUtils;
+import com.panzhihua.service_community.dao.*;
+import com.panzhihua.service_community.model.dos.*;
+import com.panzhihua.service_community.service.ComShopOrderService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:03:01
+ * @describe 订单表服务实现类
+ */
+@Slf4j
+@Service
+public class ComShopOrderServiceImpl extends ServiceImpl<ComShopOrderDAO, ComShopOrderDO>
+    implements ComShopOrderService {
+
+    @Resource
+    private ComShopGoodsDAO comShopGoodsDAO;
+    @Resource
+    private ComShopGoodsAttrDAO comShopGoodsAttrDAO;
+    @Resource
+    private ComShopCartDAO comShopCartDAO;
+    @Resource
+    private ComShopStoreDAO comShopStoreDAO;
+    @Resource
+    private ComShopUserAddressDAO comShopUserAddressDAO;
+    @Resource
+    private ComShopOrderOperateDAO comShopOrderOperateDAO;
+    @Resource
+    private ComShopOrderGoodsDAO comShopOrderGoodsDAO;
+    @Resource
+    private ComShopOrderDAO comShopOrderDAO;
+    @Resource
+    private ComShopOrderPayDAO comShopOrderPayDAO;
+    @Value("${min.app.isTest}")
+    private Boolean isTest;
+    @Value("${min.app.appid}")
+    private String appid;
+    @Value("${min.app.payKey}")
+    private String payKey;
+    @Value("${min.app.mchId}")
+    private String mchId;
+    @Value("${min.app.notifyUrl}")
+    private String notifyUrl;
+
+    public static void main(String[] args) {
+        BigDecimal one = BigDecimal.valueOf(Double.valueOf("1") / 100);
+        System.out.println();
+    }
+
+    /**
+     * 订单预览
+     *
+     * @param orderPreviewDTO
+     *            请求参数
+     * @return 订单预览数据
+     */
+    @Override
+    public R orderPreview(ComShopOrderPreviewDTO orderPreviewDTO) {
+
+        // 返回参数
+        ComShopOrderPreviewVO orderPreviewVO = new ComShopOrderPreviewVO();
+        // 返回商品列表
+        List<ComShopOrderGoodsVO> orderGoodsList = new ArrayList<>();
+        Long storeId = 0L;
+        BigDecimal orderTotal = BigDecimal.ZERO;
+        Integer orderGoodsTotal = 0;
+        // 判断提交方式
+        if (orderPreviewDTO.getSubmitType().equals(ComShopOrderPreviewDTO.submitType.details)) {// 详情页提交
+            // 查询商品信息
+            ComShopGoodsDO goodsDO =
+                comShopGoodsDAO.selectOne(new QueryWrapper<ComShopGoodsDO>().eq("id", orderPreviewDTO.getGoodsId())
+                    .eq("status", ComShopGoodsDO.status.sell).eq("delete_status", ComShopGoodsDO.deleteStatus.no));
+            if (goodsDO == null) {
+                return R.fail("商品已下架或已删除");
+            }
+            // 设置店铺id
+            storeId = goodsDO.getStoreId();
+
+            // 查询商品规格信息
+            ComShopGoodsAttrDO goodsAttrDO = comShopGoodsAttrDAO.selectById(orderPreviewDTO.getGoodsAttrId());
+            if (goodsAttrDO == null) {
+                return R.fail("商品规格不存在");
+            }
+
+            orderTotal = goodsAttrDO.getPrice().multiply(BigDecimal.valueOf(orderPreviewDTO.getBuyNum()));
+            orderGoodsTotal = orderPreviewDTO.getBuyNum();
+            // 商品信息赋值
+            ComShopOrderGoodsVO orderGoodsVO = new ComShopOrderGoodsVO();
+            orderGoodsVO.setGoodsName(goodsDO.getName());
+            orderGoodsVO.setGoodsId(goodsDO.getId());
+            orderGoodsVO.setGoodsAttrId(goodsAttrDO.getId());
+            orderGoodsVO.setGoodsPic(goodsAttrDO.getAttrPic());
+            orderGoodsVO.setPrice(goodsAttrDO.getPrice());
+            orderGoodsVO.setNum(orderPreviewDTO.getBuyNum());
+            orderGoodsList.add(orderGoodsVO);
+        } else if (orderPreviewDTO.getSubmitType().equals(ComShopOrderPreviewDTO.submitType.cart)) {// 购物车提交
+            List<ComShopCartDO> cartList = comShopCartDAO.selectBatchIds(orderPreviewDTO.getCartIds());
+            if (cartList.isEmpty()) {
+                return R.fail("未找到购物车商品信息");
+            }
+            // 设置店铺id
+            storeId = cartList.get(0).getStoreId();
+            // 循环遍历购物车商品信息
+            for (ComShopCartDO cartDO : cartList) {
+                // 商品信息赋值
+                ComShopOrderGoodsVO orderGoodsVO = new ComShopOrderGoodsVO();
+                orderGoodsVO.setGoodsId(cartDO.getGoodsId());
+                orderGoodsVO.setGoodsAttrId(cartDO.getGoodsAttrId());
+                orderGoodsVO.setGoodsPic(cartDO.getGoodsAttrPic());
+                orderGoodsVO.setNum(cartDO.getAmount());
+                orderGoodsVO.setGoodsName(cartDO.getGoodsName());
+                // 查询商品规格
+                ComShopGoodsAttrDO goodsAttrDO = comShopGoodsAttrDAO.selectById(cartDO.getGoodsAttrId());
+                if (goodsAttrDO != null) {
+                    orderGoodsVO.setPrice(goodsAttrDO.getPrice());
+                } else {
+                    orderGoodsVO.setPrice(BigDecimal.ZERO);
+                }
+                orderTotal = orderTotal.add(orderGoodsVO.getPrice().multiply(BigDecimal.valueOf(cartDO.getAmount())));
+                orderGoodsTotal += cartDO.getAmount();
+                orderGoodsList.add(orderGoodsVO);
+            }
+        }
+        orderPreviewVO.setOrderTotal(orderTotal);
+        orderPreviewVO.setOrderGoodsTotal(orderGoodsTotal);
+        orderPreviewVO.setOrderGoodsList(orderGoodsList);
+
+        // 查询店铺信息
+        ComShopStoreDO storeDO = comShopStoreDAO.selectById(storeId);
+        if (storeDO != null) {
+            PageShopStoreVO shopStoreVO = new PageShopStoreVO();
+            BeanUtils.copyProperties(storeDO, shopStoreVO);
+            orderPreviewVO.setShopStoreVO(shopStoreVO);
+        }
+
+        // 查询默认收货地址
+        ComShopUserAddressDO userDefaultAddressDO =
+            comShopUserAddressDAO.selectOne(new QueryWrapper<ComShopUserAddressDO>().eq("delete_status", 2)
+                .eq("user_id", orderPreviewDTO.getUserId()).eq("is_default", ComShopUserAddressDO.isDefault.yes));
+
+        // 查询用户收货地址中的默认地址
+        if (userDefaultAddressDO != null) {
+            ComShopUserAddressVO userAddressVO = new ComShopUserAddressVO();
+            BeanUtils.copyProperties(userDefaultAddressDO, userAddressVO);
+            orderPreviewVO.setUserAddressVO(userAddressVO);
+        } else {
+            // 查询上次购买记录的收货地址
+            // 查询到用户上一笔订单
+            List<ComShopOrderDO> shopOrders = this.baseMapper.selectList(new QueryWrapper<ComShopOrderDO>()
+                .eq("delete_status", 2).eq("user_id", orderPreviewDTO.getUserId()).orderByDesc("create_at"));
+            if (shopOrders != null && shopOrders.size() > 0) {
+                ComShopUserAddressDO userAddressDO =
+                    comShopUserAddressDAO.selectById(shopOrders.get(0).getReceiverId());
+                if (userAddressDO != null) {
+                    ComShopUserAddressVO userAddressVO = new ComShopUserAddressVO();
+                    BeanUtils.copyProperties(userAddressDO, userAddressVO);
+                    orderPreviewVO.setUserAddressVO(userAddressVO);
+                }
+            }
+            // 无默认地址, 无上一单记录 地址
+            /*
+            if(orderPreviewVO.getUserAddressVO()==null){
+                List<ComShopUserAddressDO> userAddressDOList = comShopUserAddressDAO.selectList(new QueryWrapper<ComShopUserAddressDO>()
+                        .eq("user_id",orderPreviewDTO.getUserId()).orderByDesc("create_at"));
+                if(!userAddressDOList.isEmpty()){
+                    ComShopUserAddressVO userAddressVO = new ComShopUserAddressVO();
+                    BeanUtils.copyProperties(userAddressDOList.get(0),userAddressVO);
+                    orderPreviewVO.setUserAddressVO(userAddressVO);
+                }
+            }
+            */
+        }
+
+        return R.ok(orderPreviewVO);
+    }
+
+    /**
+     * 创建订单
+     *
+     * @param orderCreateDTO
+     *            创建订单请求参数
+     * @return 创建结果
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public R orderCreate(ComShopOrderCreateDTO orderCreateDTO) {
+        // 创建返回参数
+        ComShopOrderVO shopOrderVO = new ComShopOrderVO();
+        // 查询用户收货地址
+        ComShopUserAddressDO userAddressDO = comShopUserAddressDAO.selectById(orderCreateDTO.getReceiverId());
+        if (userAddressDO == null || userAddressDO.getDeleteStatus() != 2) {
+            return R.fail("收货地址不存在");
+        }
+        // 用户id
+        Long userId = orderCreateDTO.getUserId();
+        // 店铺id
+        Long storeId = 0L;
+        // 生成订单号
+        String orderNo = OrderNoUtils.NextOrderNo(userId);
+        // 配送方式
+        Integer deliveryType = 0;
+        // 订单总金额
+        BigDecimal orderTotal = BigDecimal.ZERO;
+        // 创建订单商品信息
+        List<ComShopOrderGoodsDO> orderGoodsDOList = new ArrayList<>();
+        if (!orderCreateDTO.getOrderGoodsList().isEmpty()) {
+            for (ComShopOrderCreateGoodsDTO createGoodsDTO : orderCreateDTO.getOrderGoodsList()) {
+                // 查询当前商品信息
+                ComShopGoodsDO goodsDO =
+                    comShopGoodsDAO.selectOne(new QueryWrapper<ComShopGoodsDO>().eq("id", createGoodsDTO.getGoodsId())
+                        .eq("delete_status", ComShopGoodsDO.deleteStatus.no).eq("status", ComShopGoodsDO.status.sell));
+                if (goodsDO == null) {
+                    log.error("未查询到商品信息,商品已下架活已删除,商品id" + createGoodsDTO.getGoodsId());
+                    continue;
+                }
+                storeId = goodsDO.getStoreId();
+                deliveryType = goodsDO.getDeliveryType();
+                ComShopOrderGoodsDO orderGoodsDO = new ComShopOrderGoodsDO();
+                orderGoodsDO.setGoodsId(goodsDO.getId());
+                orderGoodsDO.setGoodsName(goodsDO.getName());
+                orderGoodsDO.setStoreId(storeId);
+                orderGoodsDO.setUserId(userId);
+                orderGoodsDO.setAmount(createGoodsDTO.getNum());
+                orderGoodsDO.setOrderNo(orderNo);
+                // 查询当前商品规格
+                ComShopGoodsAttrDO goodsAttrDO = comShopGoodsAttrDAO.selectById(createGoodsDTO.getGoodsAttrId());
+                if (goodsAttrDO == null) {
+                    log.error(
+                        "未查询到商品规格信息,商品id" + createGoodsDTO.getGoodsId() + "商品规格id:" + createGoodsDTO.getGoodsAttrId());
+                    continue;
+                }
+                orderGoodsDO.setGoodsAttrId(goodsAttrDO.getId());
+                orderGoodsDO.setGoodsAttrPrice(goodsAttrDO.getPrice());
+                orderGoodsDO.setGoodsAttrPic(goodsAttrDO.getAttrPic());
+                orderGoodsDOList.add(orderGoodsDO);
+                // 将商品金额计算到订单总金额
+                orderTotal = orderTotal
+                    .add(orderGoodsDO.getGoodsAttrPrice().multiply(BigDecimal.valueOf(orderGoodsDO.getAmount())));
+            }
+        }
+        // 如果是购物车提交,需要将购物车内商品移除
+        if (orderCreateDTO.getSubmitType().equals(ComShopOrderCreateDTO.submitType.cart)) {
+            comShopCartDAO.deleteBatchIds(orderCreateDTO.getCartIds());
+        }
+        // 创建订单信息
+        ComShopOrderDO shopOrderDO = new ComShopOrderDO();
+        shopOrderDO.setOrderNo(orderNo);
+        shopOrderDO.setStoreId(storeId);
+        shopOrderDO.setUserId(userId);
+        shopOrderDO.setStatus(ComShopOrderDO.status.dfk);
+        shopOrderDO.setPayStatus(ComShopOrderDO.payStatus.no);
+        shopOrderDO.setReceiverId(orderCreateDTO.getReceiverId());
+        shopOrderDO.setDeleteStatus(ComShopOrderDO.deleteStatus.no);
+        shopOrderDO.setTotalAmount(orderTotal);
+        shopOrderDO.setDiscountAmount(BigDecimal.ZERO);
+        shopOrderDO.setDeliveryType(deliveryType);
+        if (StringUtils.isNotEmpty(orderCreateDTO.getRemark())) {
+            shopOrderDO.setRemark(orderCreateDTO.getRemark());
+        }
+        this.baseMapper.insert(shopOrderDO);
+        if (!orderGoodsDOList.isEmpty()) {
+            orderGoodsDOList.forEach(orderGoods -> {
+                orderGoods.setOrderId(shopOrderDO.getId());
+                comShopOrderGoodsDAO.insert(orderGoods);
+            });
+        }
+        // 创建订单操作记录
+        ComShopOrderOperateDO orderOperateDO = new ComShopOrderOperateDO();
+        orderOperateDO.setOrderNo(orderNo);
+        orderOperateDO.setOperationType(ComShopOrderOperateDO.operationType.create);
+        orderOperateDO.setOperationTime(new Date());
+        if (StringUtils.isNotEmpty(orderCreateDTO.getPhone())) {
+            orderOperateDO.setOperationContent("用户" + orderCreateDTO.getPhone() + "下单");
+            orderOperateDO.setOperationBy("用户" + orderCreateDTO.getPhone());
+        } else {
+            orderOperateDO.setOperationContent("用户下单");
+            orderOperateDO.setOperationBy("用户");
+        }
+        comShopOrderOperateDAO.insert(orderOperateDO);
+        shopOrderVO.setOrderNo(orderNo);
+        shopOrderVO.setOrderTotal(orderTotal);
+        shopOrderVO.setOrderId(shopOrderDO.getId());
+
+        try {
+            BigDecimal money = orderTotal;
+            if (isTest) {
+                money = BigDecimal.valueOf(0.01);
+            }
+            // 调用wx支付
+            String xml = WxPayUtils.getUnifiedorder(appid, mchId, payKey, notifyUrl, "商品购买", orderCreateDTO.getOpenId(),
+                orderNo, money,null);
+            log.info("微信支付返回参数:" + xml);
+            shopOrderVO.setPayResult(xml);
+        } catch (Exception e) {
+            log.error("调用微信支付异常,异常原因:" + e.getMessage());
+        }
+        return R.ok(shopOrderVO);
+    }
+
+    /**
+     * 分页查询用户订单列表
+     *
+     * @param comOrderListDTO
+     *            请求参数
+     * @return 查询结果
+     */
+    @Override
+    public R pageOrderList(PageComOrderListDTO comOrderListDTO) {
+        Page page = new Page<>(comOrderListDTO.getPageNum(), comOrderListDTO.getPageSize());
+        IPage<ComShopOrderPageVO> orderPageVOIPage = this.baseMapper.pageOrderList(page, comOrderListDTO);
+        if (!orderPageVOIPage.getRecords().isEmpty()) {
+            orderPageVOIPage.getRecords().forEach(orderVo -> {
+                List<ComShopOrderGoodsVO> orderGoodsVOS = new ArrayList<>();
+                // 查询订单下商品信息
+                List<ComShopOrderGoodsDO> orderGoodsDOList = comShopOrderGoodsDAO
+                    .selectList(new QueryWrapper<ComShopOrderGoodsDO>().eq("order_no", orderVo.getOrderNo()));
+                if (!orderGoodsDOList.isEmpty()) {
+                    orderGoodsDOList.forEach(orderGoods -> {
+                        ComShopOrderGoodsVO orderGoodsVO = new ComShopOrderGoodsVO();
+                        BeanUtils.copyProperties(orderGoods, orderGoodsVO);
+                        // 根据商品规格id查询商品规格
+                        ComShopGoodsAttrDO goodsAttrDO = comShopGoodsAttrDAO.selectById(orderGoods.getGoodsAttrId());
+                        if (goodsAttrDO != null) {
+                            orderGoodsVO.setGoodsAttr(goodsAttrDO.getGoodsAttr());
+                        }
+                        orderGoodsVO.setNum(orderGoods.getAmount());
+                        orderGoodsVO.setGoodsPic(orderGoods.getGoodsAttrPic());
+                        orderGoodsVO.setPrice(orderGoods.getGoodsAttrPrice());
+                        orderGoodsVOS.add(orderGoodsVO);
+                    });
+                }
+                orderVo.setOrderGoodsVOList(orderGoodsVOS);
+
+                PageShopStoreVO shopStoreVO = new PageShopStoreVO();
+                // 查询店铺信息
+                ComShopStoreDO shopStoreDO = comShopStoreDAO.selectById(orderVo.getStoreId());
+                if (shopStoreDO != null) {
+                    BeanUtils.copyProperties(shopStoreDO, shopStoreVO);
+                }
+                orderVo.setShopStoreVO(shopStoreVO);
+            });
+        }
+        return R.ok(orderPageVOIPage);
+    }
+
+    /**
+     * 根据订单id查询订单详情
+     *
+     * @param orderId
+     *            订单id
+     * @return 订单详情
+     */
+    @Override
+    public R orderDetail(Long orderId) {
+
+        ComShopOrderPageVO orderVO = new ComShopOrderPageVO();
+        // 查询订单信息
+        ComShopOrderDO shopOrderDO = this.baseMapper.selectById(orderId);
+        if (shopOrderDO == null) {
+            return R.fail("未查询到订单");
+        }
+        BeanUtils.copyProperties(shopOrderDO, orderVO);
+        orderVO.setOrderTotal(shopOrderDO.getTotalAmount());
+
+        PageShopStoreVO shopStoreVO = new PageShopStoreVO();
+        // 查询店铺信息
+        ComShopStoreDO shopStoreDO = comShopStoreDAO.selectById(shopOrderDO.getStoreId());
+        if (shopStoreDO != null) {
+            BeanUtils.copyProperties(shopStoreDO, shopStoreVO);
+        }
+        orderVO.setShopStoreVO(shopStoreVO);
+
+        List<ComShopOrderGoodsVO> orderGoodsVOS = new ArrayList<>();
+        // 查询订单下商品信息
+        List<ComShopOrderGoodsDO> orderGoodsDOList = comShopOrderGoodsDAO
+            .selectList(new QueryWrapper<ComShopOrderGoodsDO>().eq("order_no", shopOrderDO.getOrderNo()));
+        StringBuilder sbr = new StringBuilder();
+        if (!orderGoodsDOList.isEmpty()) {
+            orderGoodsDOList.forEach(orderGoods -> {
+                ComShopOrderGoodsVO orderGoodsVO = new ComShopOrderGoodsVO();
+                BeanUtils.copyProperties(orderGoods, orderGoodsVO);
+                orderGoodsVO.setNum(orderGoods.getAmount());
+                orderGoodsVO.setGoodsPic(orderGoods.getGoodsAttrPic());
+                orderGoodsVO.setPrice(orderGoods.getGoodsAttrPrice());
+                // 查询商品信息判断商品状态
+                ComShopGoodsDO goodsDO = comShopGoodsDAO.selectById(orderGoods.getGoodsId());
+                if (goodsDO == null || goodsDO.getDeleteStatus().equals(ComShopGoodsDO.deleteStatus.yes)
+                    || goodsDO.getDeleteStatus().equals(ComShopGoodsDO.status.recovery)) {
+                    orderGoodsVO.setGoodsStatus(ComShopOrderGoodsVO.goodsStatus.ysc);
+                } else if (goodsDO.getStatus().equals(ComShopGoodsDO.status.lower)) {
+                    orderGoodsVO.setGoodsStatus(ComShopOrderGoodsVO.goodsStatus.yxj);
+                } else if (goodsDO.getStatus().equals(ComShopGoodsDO.status.sell)) {
+                    orderGoodsVO.setGoodsStatus(ComShopOrderGoodsVO.goodsStatus.csz);
+                }
+
+                // 根据商品规格id查询商品规格
+                ComShopGoodsAttrDO goodsAttrDO = comShopGoodsAttrDAO.selectById(orderGoods.getGoodsAttrId());
+                if (goodsAttrDO != null) {
+                    orderGoodsVO.setGoodsAttr(goodsAttrDO.getGoodsAttr());
+                }
+                orderGoodsVOS.add(orderGoodsVO);
+                sbr.append(orderGoods.getGoodsName() + " ");
+            });
+        }
+        orderVO.setOrderGoodsVOList(orderGoodsVOS);
+        orderVO.setGoodsName(sbr.toString());
+
+        ComShopUserAddressVO userAddressVO = new ComShopUserAddressVO();
+        // 查询用户收货地址
+        ComShopUserAddressDO userAddressDO = comShopUserAddressDAO.selectById(shopOrderDO.getReceiverId());
+        if (userAddressDO != null) {
+            BeanUtils.copyProperties(userAddressDO, userAddressVO);
+            orderVO.setUserAddressVO(userAddressVO);
+        }
+
+        // 操作日志
+        List<ComShopOrderOperateDO> listOperLog =
+            comShopOrderOperateDAO.selectList(new LambdaQueryWrapper<ComShopOrderOperateDO>()
+                .eq(ComShopOrderOperateDO::getOrderNo, shopOrderDO.getOrderNo()));
+        List<ComShopOrderOperateVO> listOperLogVO = new ArrayList<>(listOperLog.size());
+        listOperLog.forEach(logDO -> {
+            ComShopOrderOperateVO copyVO = new ComShopOrderOperateVO();
+            BeanUtils.copyProperties(logDO, copyVO);
+            listOperLogVO.add(copyVO);
+        });
+        orderVO.setLogs(listOperLogVO);
+        return R.ok(orderVO);
+    }
+
+    /**
+     * 根据订单id取消订单
+     *
+     * @param comShopOrderQueryDTO
+     *            订单信息
+     * @return 取消结果
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public R orderCancel(ComShopOrderQueryDTO comShopOrderQueryDTO) {
+        // 查询订单
+        ComShopOrderDO shopOrderDO = this.baseMapper.selectById(comShopOrderQueryDTO.getOrderId());
+        if (shopOrderDO == null) {
+            return R.fail("未查询到订单");
+        }
+        if (!shopOrderDO.getStatus().equals(ComShopOrderDO.status.dfk)) {
+            return R.fail("已支付订单不可取消");
+        }
+        // 取消订单
+        shopOrderDO.setStatus(ComShopOrderDO.status.yqx);
+        if (this.baseMapper.updateById(shopOrderDO) > 0) {
+            // 添加订单操作记录
+            ComShopOrderOperateDO orderOperateDO = new ComShopOrderOperateDO();
+            orderOperateDO.setOrderNo(shopOrderDO.getOrderNo());
+            orderOperateDO.setOperationType(ComShopOrderOperateDO.operationType.cancel);
+            orderOperateDO.setOperationTime(new Date());
+            if (comShopOrderQueryDTO.getIsAdmin()) {
+                orderOperateDO.setOperationContent("管理员" + comShopOrderQueryDTO.getOperUserAccount() + "取消订单");
+                orderOperateDO.setOperationBy("用户" + comShopOrderQueryDTO.getOperUserAccount());
+            } else {
+                orderOperateDO.setOperationContent("用户取消订单");
+                orderOperateDO.setOperationBy("用户");
+            }
+            comShopOrderOperateDAO.insert(orderOperateDO);
+            return R.ok();
+        } else {
+            return R.fail("取消订单失败");
+        }
+
+    }
+
+    /**
+     * 根据订单id删除订单
+     *
+     * @param orderId
+     *            订单id
+     * @return 删除结果
+     */
+    @Override
+    public R orderDelete(Long orderId) {
+        // 查询订单
+        ComShopOrderDO shopOrderDO = this.baseMapper.selectById(orderId);
+        if (shopOrderDO == null) {
+            return R.fail("未查询到订单");
+        }
+        if (!shopOrderDO.getStatus().equals(ComShopOrderDO.status.ywc)
+            && !shopOrderDO.getStatus().equals(ComShopOrderDO.status.yqx)) {
+            return R.fail("该订单状态不可删除");
+        }
+
+        shopOrderDO.setDeleteStatus(ComShopOrderDO.deleteStatus.yes);
+        if (this.baseMapper.updateById(shopOrderDO) > 0) {
+            return R.ok();
+        } else {
+            return R.fail("取消订单失败");
+        }
+    }
+
+    /**
+     * 根据订单id确认收货
+     *
+     * @param orderId
+     *            订单id
+     * @param phone
+     *            手机号
+     * @return 确认结果
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public R orderConfirm(Long orderId, String phone) {
+        // 查询订单
+        ComShopOrderDO shopOrderDO = this.baseMapper.selectById(orderId);
+        if (shopOrderDO == null) {
+            return R.fail("未查询到订单");
+        }
+        if (!shopOrderDO.getStatus().equals(ComShopOrderDO.status.dsh)) {
+            return R.fail("该订单状态不可确认收货");
+        }
+        // 订单确认收货
+        shopOrderDO.setStatus(ComShopOrderDO.status.ywc);
+        shopOrderDO.setReceivingTime(new Date());
+        if (this.baseMapper.updateById(shopOrderDO) > 0) {
+            // 添加订单操作记录
+            ComShopOrderOperateDO orderOperateDO = new ComShopOrderOperateDO();
+            orderOperateDO.setOrderNo(shopOrderDO.getOrderNo());
+            orderOperateDO.setOperationType(ComShopOrderOperateDO.operationType.complete);
+            orderOperateDO.setOperationTime(new Date());
+            if (StringUtils.isNotEmpty(phone)) {
+                orderOperateDO.setOperationContent("用户" + phone + "确认收货");
+                orderOperateDO.setOperationBy("用户" + phone);
+            } else {
+                orderOperateDO.setOperationContent("用户确认收货");
+                orderOperateDO.setOperationBy("用户");
+            }
+            comShopOrderOperateDAO.insert(orderOperateDO);
+            return R.ok();
+        } else {
+            return R.fail("确认收货失败");
+        }
+    }
+
+    /**
+     * 统计用户订单数量
+     *
+     * @param userId
+     *            用户id
+     * @return 统计结果
+     */
+    @Override
+    public R orderStatistics(Long userId) {
+        OrderStatisticsVO orderStatisticsVO = new OrderStatisticsVO();
+        // 待付款订单数
+        Integer paymentNum = 0;
+        // 待发货订单数
+        Integer deliverNum = 0;
+        // 待收货订单数
+        Integer receivingNum = 0;
+        List<ComShopOrderDO> shopOrderList = this.baseMapper.selectList(new QueryWrapper<ComShopOrderDO>()
+            .eq("user_id", userId).eq("delete_status", ComShopOrderDO.deleteStatus.no));
+        if (!shopOrderList.isEmpty()) {
+            for (ComShopOrderDO orderDO : shopOrderList) {
+                if (orderDO.getStatus().equals(ComShopOrderDO.status.dfk)) {
+                    paymentNum++;
+                } else if (orderDO.getStatus().equals(ComShopOrderDO.status.dfh)) {
+                    deliverNum++;
+                } else if (orderDO.getStatus().equals(ComShopOrderDO.status.dsh)) {
+                    receivingNum++;
+                }
+            }
+        }
+        orderStatisticsVO.setPaymentNum(paymentNum);
+        orderStatisticsVO.setDeliverNum(deliverNum);
+        orderStatisticsVO.setReceivingNum(receivingNum);
+        return R.ok(orderStatisticsVO);
+    }
+
+    @Override
+    public R shipOrder(ComShopOrderShipDTO orderShipDTO) {
+        ComShopOrderDO comShopOrderDO = comShopOrderDAO.selectById(orderShipDTO.getOrderId());
+        if (comShopOrderDO == null) {
+            return R.fail("订单不存在");
+        }
+        if (!(comShopOrderDO.getStatus() == 2) || !(comShopOrderDO.getDeliveryStatus() == 1)) {
+            return R.fail("订单发货失败,订单状态不允许发货");
+        }
+
+        ComShopStoreDO storeDO = comShopStoreDAO.selectById(comShopOrderDO.getStoreId());
+        if (storeDO.getDeliveryType() != 2) {
+            return R.fail("该商家不支持通过快递物流发货");
+        }
+        comShopOrderDO.setDeliveryStatus(2);
+        comShopOrderDO.setDeliveryType(2);
+        comShopOrderDO.setStatus(3);
+        comShopOrderDO.setDeliveryTime(Calendar.getInstance().getTime());
+        comShopOrderDO.setLogisticsCompany(orderShipDTO.getLogisticsCompany());
+        comShopOrderDO.setLogisticsNo(orderShipDTO.getLogisticsNo());
+        int updated = comShopOrderDAO.updateById(comShopOrderDO);
+        if (updated == 1) {
+            // 创建订单操作记录
+            ComShopOrderOperateDO orderOperateDO = new ComShopOrderOperateDO();
+            orderOperateDO.setOrderNo(comShopOrderDO.getOrderNo());
+            orderOperateDO.setOperationType(ComShopOrderOperateDO.operationType.deliver);
+            orderOperateDO.setOperationTime(new Date());
+            if (orderShipDTO.getIsAdmin()) {
+                orderOperateDO.setOperationContent(orderShipDTO.getOperUserAccount() + "已发货");
+                orderOperateDO.setOperationBy(orderShipDTO.getOperUserAccount());
+            } else {
+                orderOperateDO.setOperationContent(orderShipDTO.getOperUserAccount() + "已发货");
+                orderOperateDO.setOperationBy(orderShipDTO.getOperUserAccount());
+            }
+            int inserted = comShopOrderOperateDAO.insert(orderOperateDO);
+            if (inserted != 1) {
+                log.error("订单发货日志保存错误");
+            }
+            return R.ok("发货成功");
+        }
+        return R.fail("发货失败!");
+    }
+
+    @Override
+    public R deliverOrder(ComShopOrderDeliverDTO orderDeliverDTO) {
+        ComShopOrderDO comShopOrderDO = comShopOrderDAO.selectById(orderDeliverDTO.getOrderId());
+        if (comShopOrderDO == null) {
+            return R.fail("订单不存在");
+        }
+        if (!(comShopOrderDO.getStatus() == 2) || !(comShopOrderDO.getDeliveryStatus() == 1)) {
+            return R.fail("当前订单不能配送");
+        }
+        ComShopStoreDO storeDO = comShopStoreDAO.selectById(comShopOrderDO.getStoreId());
+        if (storeDO.getDeliveryType() != 1) {
+            return R.fail("该商家不支持通过商家配送");
+        }
+        comShopOrderDO.setDeliveryStatus(4);
+        comShopOrderDO.setDeliveryType(1);
+        comShopOrderDO.setStatus(3);
+        comShopOrderDO.setDeliveryTime(Calendar.getInstance().getTime());
+        int updated = comShopOrderDAO.updateById(comShopOrderDO);
+        if (updated == 1) {
+
+            // 创建订单操作记录
+            ComShopOrderOperateDO orderOperateDO = new ComShopOrderOperateDO();
+            orderOperateDO.setOrderNo(comShopOrderDO.getOrderNo());
+            orderOperateDO.setOperationType(ComShopOrderOperateDO.operationType.deliver);
+            orderOperateDO.setOperationTime(new Date());
+            if (orderDeliverDTO.getIsAdmin()) {
+                orderOperateDO.setOperationContent(orderDeliverDTO.getOperUserAccount() + "已发货");
+                orderOperateDO.setOperationBy(orderDeliverDTO.getOperUserAccount());
+            } else {
+                orderOperateDO.setOperationContent(orderDeliverDTO.getOperUserAccount() + "已发货");
+                orderOperateDO.setOperationBy(orderDeliverDTO.getOperUserAccount());
+            }
+            int inserted = comShopOrderOperateDAO.insert(orderOperateDO);
+            if (inserted != 1) {
+                log.error("订单发货日志保存错误");
+            }
+            return R.ok("开始配送");
+        }
+        return R.fail("操作失败!");
+    }
+
+    @Override
+    public R finishDeliverOrder(ComShopOrderDeliverDTO orderDeliverDTO) {
+        ComShopOrderDO comShopOrderDO = comShopOrderDAO.selectById(orderDeliverDTO.getOrderId());
+        if (comShopOrderDO == null) {
+            return R.fail("订单不存在");
+        }
+        if (comShopOrderDO.getDeliveryStatus() != 4 && comShopOrderDO.getDeliveryStatus() != 3) {
+            return R.fail("订单还未开始配送");
+        }
+        if (!(comShopOrderDO.getStatus() == 3)) {
+            return R.fail("订单还未发货");
+        }
+        // comShopOrderDO.setStatus(4);
+        comShopOrderDO.setDeliveryStatus(5);
+        int updated = comShopOrderDAO.updateById(comShopOrderDO);
+        if (updated == 1) {
+            // 创建订单操作记录
+            ComShopOrderOperateDO orderOperateDO = new ComShopOrderOperateDO();
+            orderOperateDO.setOrderNo(comShopOrderDO.getOrderNo());
+            orderOperateDO.setOperationType(ComShopOrderOperateDO.operationType.complete);
+            orderOperateDO.setOperationTime(new Date());
+            if (orderDeliverDTO.getIsAdmin()) {
+                orderOperateDO.setOperationContent("订单已完成");
+                orderOperateDO.setOperationBy(orderDeliverDTO.getOperUserAccount());
+            } else {
+                orderOperateDO.setOperationContent("订单已完成");
+                orderOperateDO.setOperationBy(orderDeliverDTO.getOperUserAccount());
+            }
+            int inserted = comShopOrderOperateDAO.insert(orderOperateDO);
+            if (inserted != 1) {
+                log.error("订单发货日志保存错误");
+            }
+            return R.ok("配送完成");
+        }
+        return R.fail("操作失败!");
+    }
+
+    @Override
+    public R shopOrderExportData(ComShopOrderExportDTO comShopOrderExportDTO) {
+        Page page = new Page();
+        page.setSize(10000);
+        page.setCurrent(1);
+        IPage<ExcelShopOrderDTO> excelShopOrderDTO = comShopOrderDAO.selectOrderExport(page, comShopOrderExportDTO);
+        return R.ok(excelShopOrderDTO.getRecords());
+    }
+
+    @Override
+    public R shopOrderFundsExportData(ComShopFundsExportDTO comShopFundsExportDTO) {
+        Page page = new Page();
+        page.setSize(10000);
+        page.setCurrent(1);
+        IPage<ExcelShopFundsDTO> excelShopFundsDTO = comShopOrderDAO.selectFundsExport(page, comShopFundsExportDTO);
+        return R.ok(excelShopFundsDTO.getRecords());
+    }
+
+    @Override
+    public R getFundsStat(Long userId) {
+        ComShopFundsVO comShopFundsVO = comShopOrderDAO.queryStatis(userId);
+        if (comShopFundsVO == null) {
+            comShopFundsVO = new ComShopFundsVO();
+            comShopFundsVO.setMonthTotal(new BigDecimal(0));
+            comShopFundsVO.setTodayTotal(new BigDecimal(0));
+            comShopFundsVO.setWeekTotal(new BigDecimal(0));
+        }
+        return R.ok(comShopFundsVO);
+    }
+
+    @Override
+    public R pageShopFunds(PageComShopFundsSearchDTO pageComShopFundsSearchDTO) {
+        Long pageNum = pageComShopFundsSearchDTO.getPageNum();
+        Long pageSize = pageComShopFundsSearchDTO.getPageSize();
+        Page page = new Page();
+        if (pageNum == null || 0 == pageNum.longValue()) {
+            pageNum = 1l;
+        }
+        if (pageSize == null || 0 == pageSize.longValue()) {
+            pageSize = 10l;
+        }
+        page.setCurrent(pageNum);
+        page.setSize(pageSize);
+        IPage<ComShopFundsOrderVO> comShopFundsOrderVOIPage =
+            comShopOrderDAO.pageShopFunds(page, pageComShopFundsSearchDTO);
+        return R.ok(comShopFundsOrderVOIPage);
+    }
+
+    @Override
+    public R pageShopOrder(PageComShopOrderSearchDTO pageComShopOrderSearchDTO) {
+        Long pageNum = pageComShopOrderSearchDTO.getPageNum();
+        Long pageSize = pageComShopOrderSearchDTO.getPageSize();
+        Page page = new Page();
+
+        page.setCurrent(pageNum);
+        page.setSize(pageSize);
+        if (pageNum == null || 0 == pageNum.longValue()) {
+            page.setCurrent(1l);
+        }
+        if (pageSize == null || 0 == pageSize.longValue()) {
+            page.setSize(10l);
+        }
+
+        IPage<ComShopOrderSearchVO> ipage = this.baseMapper.pageOrderBy(page, pageComShopOrderSearchDTO);
+        return R.ok(ipage);
+    }
+
+    @Override
+    public R capitalDetailByStore(Long id) {
+        if (id == null) {
+            R.fail("订单号不能为空!");
+        }
+        CapitalDetailVO vo = this.baseMapper.capitalDetailByStore(id);
+        return R.ok(vo);
+    }
+
+    /**
+     * 微信支付订单回调
+     *
+     * @param wxPayNotifyOrderDTO
+     *            订单支付回调参数
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void wxOrderPayNotify(WxPayNotifyOrderDTO wxPayNotifyOrderDTO) {
+        log.info("微信订单支付回调开始处理逻辑");
+        if (StringUtils.isEmpty(wxPayNotifyOrderDTO.getOrderTradeNo())) {
+            log.error("微信支付回调失败,订单号为空");
+            return;
+        }
+
+        log.info("微信订单支付回调开始查询订单");
+        // 查询订单
+        ComShopOrderDO shopOrderDO = this.baseMapper.selectOne(new QueryWrapper<ComShopOrderDO>().lambda()
+            .eq(ComShopOrderDO::getOrderNo, wxPayNotifyOrderDTO.getOrderTradeNo()));
+        if (shopOrderDO == null) {
+            log.error("未查询到支付订单,订单回调失败,订单号:" + wxPayNotifyOrderDTO.getOrderTradeNo());
+            return;
+        }
+        shopOrderDO.setStatus(ComShopOrderDO.status.dfh);
+        shopOrderDO.setPayType(ComShopOrderDO.payType.wx);
+        shopOrderDO.setPayStatus(ComShopOrderDO.payStatus.yes);
+        shopOrderDO.setPayAmount(BigDecimal.valueOf(Double.valueOf(wxPayNotifyOrderDTO.getCashFee()) / 100));
+        shopOrderDO.setWxTardeNo(wxPayNotifyOrderDTO.getWxTradeNo());
+        shopOrderDO.setPayTime(
+            DateUtils.stringToDate(wxPayNotifyOrderDTO.getPayTime(), new SimpleDateFormat("yyyyMMddHHmmss")));
+        this.baseMapper.updateById(shopOrderDO);
+
+        // 查询订单商品
+        List<ComShopOrderGoodsDO> orderGoodsList =
+            comShopOrderGoodsDAO.selectList(new QueryWrapper<ComShopOrderGoodsDO>().lambda()
+                .eq(ComShopOrderGoodsDO::getOrderNo, shopOrderDO.getOrderNo()));
+        if (!orderGoodsList.isEmpty()) {
+            int goodsNub = 0;
+            for (ComShopOrderGoodsDO orderGood : orderGoodsList) {
+                goodsNub += orderGood.getAmount();
+                // 更新商品信息
+                ComShopGoodsDO goodsDO = comShopGoodsDAO.selectById(orderGood.getGoodsId());
+                if (goodsDO != null) {
+                    goodsDO.setSale(goodsDO.getSale() + orderGood.getAmount());
+                    comShopGoodsDAO.updateById(goodsDO);
+                }
+
+                // 更新商品规格
+                ComShopGoodsAttrDO goodsAttrDO = comShopGoodsAttrDAO.selectById(orderGood.getGoodsAttrId());
+                if (goodsAttrDO != null) {
+                    goodsAttrDO.setSale(goodsAttrDO.getSale() + orderGood.getAmount());
+                    comShopGoodsAttrDAO.updateById(goodsAttrDO);
+                }
+            }
+
+            // 更新店铺销量以及销售额
+            ComShopStoreDO storeDO = comShopStoreDAO.selectById(shopOrderDO.getStoreId());
+            if (storeDO != null) {
+                storeDO.setSale(storeDO.getSale() + goodsNub);
+                storeDO.setSaleVolume(storeDO.getSaleVolume().add(shopOrderDO.getTotalAmount()));
+                comShopStoreDAO.updateById(storeDO);
+            }
+        }
+
+        // 添加订单操作记录
+        ComShopOrderOperateDO orderOperateDO = new ComShopOrderOperateDO();
+        orderOperateDO.setOrderNo(shopOrderDO.getOrderNo());
+        orderOperateDO.setOperationType(ComShopOrderOperateDO.operationType.pay);
+        orderOperateDO.setOperationTime(new Date());
+        orderOperateDO.setOperationContent("用户支付订单");
+        orderOperateDO.setOperationBy("用户");
+        comShopOrderOperateDAO.insert(orderOperateDO);
+
+        // 添加订单支付记录表
+        ComShopOrderPayDO orderPayDO = new ComShopOrderPayDO();
+        orderPayDO.setOrderNo(shopOrderDO.getOrderNo());
+        orderPayDO.setOrderAmount(shopOrderDO.getTotalAmount());
+        orderPayDO.setWxTradeNo(wxPayNotifyOrderDTO.getWxTradeNo());
+        orderPayDO.setPayStatus(ComShopOrderPayDO.payStatus.yes);
+        orderPayDO.setPayAmount(shopOrderDO.getPayAmount());
+        orderPayDO.setPayTime(shopOrderDO.getPayTime());
+        comShopOrderPayDAO.insert(orderPayDO);
+    }
+
+    /**
+     * 订单去支付
+     *
+     * @param orderPayDTO
+     *            请求参数
+     * @return 支付对象
+     */
+    public R wxPay(OrderPayDTO orderPayDTO) {
+        // 创建返回参数
+        ComShopOrderVO shopOrderVO = new ComShopOrderVO();
+        // 查询订单
+        ComShopOrderDO orderDO = comShopOrderDAO.selectOne(
+            new QueryWrapper<ComShopOrderDO>().lambda().eq(ComShopOrderDO::getOrderNo, orderPayDTO.getOrderNo()));
+        if (orderDO == null) {
+            return R.fail("订单不存在");
+        }
+        try {
+            BigDecimal money = orderDO.getTotalAmount();
+            if (isTest) {
+                money = BigDecimal.valueOf(0.01);
+            }
+            // 调用wx支付
+            String xml = WxPayUtils.getUnifiedorder(appid, mchId, payKey, notifyUrl, "商品购买", orderPayDTO.getOpenId(),
+                orderDO.getOrderNo(), money,null);
+            log.info("微信支付返回参数:" + xml);
+            shopOrderVO.setPayResult(xml);
+        } catch (Exception e) {
+            log.error("调用微信支付异常,异常原因:" + e.getMessage());
+        }
+        shopOrderVO.setOrderId(orderDO.getId());
+        shopOrderVO.setOrderNo(orderDO.getOrderNo());
+        shopOrderVO.setOrderTotal(orderDO.getTotalAmount());
+        return R.ok(shopOrderVO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopStoreServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopStoreServiceImpl.java
new file mode 100644
index 0000000..c2e426b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopStoreServiceImpl.java
@@ -0,0 +1,325 @@
+package com.panzhihua.service_community.service.impl;
+
+import static com.baomidou.mybatisplus.core.toolkit.ObjectUtils.isNull;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
+import java.util.stream.Collectors;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.model.dtos.shop.PageComShopStoreDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.shop.ComShopGoodsAttrVO;
+import com.panzhihua.common.model.vos.shop.ComShopGoodsVO;
+import com.panzhihua.common.model.vos.shop.PageShopStoreVO;
+import com.panzhihua.common.model.vos.shop.ShopStoreVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.service_community.dao.ComShopGoodsAttrDAO;
+import com.panzhihua.service_community.dao.ComShopGoodsDAO;
+import com.panzhihua.service_community.dao.ComShopStoreDAO;
+import com.panzhihua.service_community.model.dos.ComShopGoodsAttrDO;
+import com.panzhihua.service_community.model.dos.ComShopGoodsDO;
+import com.panzhihua.service_community.model.dos.ComShopOrderDO;
+import com.panzhihua.service_community.model.dos.ComShopStoreDO;
+import com.panzhihua.service_community.service.ComShopOrderService;
+import com.panzhihua.service_community.service.ComShopStoreService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:03:55
+ * @describe 店铺表服务实现类
+ */
+@Slf4j
+@Service
+public class ComShopStoreServiceImpl extends ServiceImpl<ComShopStoreDAO, ComShopStoreDO>
+    implements ComShopStoreService {
+
+    @Resource
+    private ComShopGoodsDAO shopGoodsDAO;
+    @Resource
+    private ComShopGoodsAttrDAO comShopGoodsAttrDAO;
+    @Resource
+    private ComShopOrderService orderService;
+    @Resource
+    private UserService userService;
+
+    /**
+     * 查询店铺列表
+     *
+     * @param pageComShopStoreDTO
+     *            请求参数
+     * @return 店铺列表
+     */
+
+    @Override
+    public R pageStoreList(PageComShopStoreDTO pageComShopStoreDTO) {
+        Page page = new Page<>(pageComShopStoreDTO.getPageNum(), pageComShopStoreDTO.getPageSize());
+        IPage<PageShopStoreVO> comShopStoreVOIPage = this.baseMapper.pageShopStore(page, pageComShopStoreDTO);
+        if (comShopStoreVOIPage != null) {
+            Optional.ofNullable(comShopStoreVOIPage.getRecords()).orElse(new ArrayList<>()).forEach(shopStoreVO -> {
+                List<Integer> notDoneOrderStatus = new ArrayList<>();
+                notDoneOrderStatus.add(1);
+                notDoneOrderStatus.add(2);
+                notDoneOrderStatus.add(3);
+                notDoneOrderStatus.add(4);
+                Integer orderCount = orderService.getBaseMapper().selectCount(
+                    new LambdaQueryWrapper<ComShopOrderDO>().eq(ComShopOrderDO::getStoreId, shopStoreVO.getId())
+                        .eq(ComShopOrderDO::getDeleteStatus, 1).in(ComShopOrderDO::getStatus, notDoneOrderStatus));
+                if (orderCount == null || orderCount.intValue() <= 0) {
+                    shopStoreVO.setOrderDone(true);
+                } else {
+                    shopStoreVO.setOrderDone(false);
+                }
+            });
+        }
+        return R.ok(comShopStoreVOIPage);
+    }
+
+    /**
+     * 查询店铺详情
+     *
+     * @param comShopStoreDTO
+     *            请求参数
+     * @return 店铺详情
+     */
+    @Override
+    public R shopStoreDetail(PageComShopStoreDTO comShopStoreDTO) {
+        // 查询店铺
+        ComShopStoreDO storeDO = this.baseMapper.selectById(comShopStoreDTO.getStoreId());
+        boolean storeDeleted = storeDO != null && 2 == storeDO.getDeleteStatus();
+        if (storeDO == null || storeDeleted) {
+            return R.fail(401, "店铺不存在");
+        }
+        if (storeDO.getStatus().equals(ComShopStoreDO.status.no)) {
+            return R.fail(402, "店铺已被禁用");
+        }
+        PageShopStoreVO shopStoreVO = new PageShopStoreVO();
+        BeanUtils.copyProperties(storeDO, shopStoreVO);
+
+        // 查询店铺下商品信息
+        Page page = new Page<>(comShopStoreDTO.getPageNum(), comShopStoreDTO.getPageSize());
+
+        List<ComShopGoodsVO> goodsList = shopGoodsDAO.pageShopGoodsByStoreId(page, comShopStoreDTO).getRecords();
+        if (!goodsList.isEmpty()) {
+            // 查询商品规格列表
+            goodsList.forEach(goods -> {
+                List<ComShopGoodsAttrVO> goodsAttrList = comShopGoodsAttrDAO.getGoodsAttr(goods.getId());
+                if (!goodsAttrList.isEmpty()) {
+                    goods.setGoodsAttrList(goodsAttrList);
+                }
+            });
+        }
+        shopStoreVO.setGoodsList(goodsList);
+        return R.ok(shopStoreVO);
+
+    }
+
+    @Override
+    public R saveStore(ShopStoreVO storeVO) {
+        if (storeVO == null) {
+            return R.fail("数据为空!");
+        }
+        // 判断店铺是否存在
+        ComShopStoreDO oldComShopStoreDO = this.baseMapper.selectOne(
+            new LambdaQueryWrapper<ComShopStoreDO>().eq(ComShopStoreDO::getStoreAccount, storeVO.getStoreAccount())
+                .eq(ComShopStoreDO::getDeleteStatus, ComShopStoreDO.deleteStatus.no));
+        if (oldComShopStoreDO != null) {
+            return R.fail("商家已注册");
+        }
+        // //新增店铺先判断是否拥有已删除的店铺
+        // ComShopStoreDO comShopStoreDO = this.baseMapper.selectOne(new LambdaQueryWrapper<ComShopStoreDO>()
+        // .eq(ComShopStoreDO::getStoreAccount,
+        // storeVO.getStoreAccount()).eq(ComShopStoreDO::getDeleteStatus,ComShopStoreDO.deleteStatus.yes));
+        // if(comShopStoreDO != null){
+        // //删除店铺规格信息
+        // comShopGoodsAttrDAO.delete(new
+        // QueryWrapper<ComShopGoodsAttrDO>().lambda().eq(ComShopGoodsAttrDO::getStoreId,comShopStoreDO.getId()));
+        // //删除店铺商品
+        // shopGoodsDAO.delete(new
+        // QueryWrapper<ComShopGoodsDO>().lambda().eq(ComShopGoodsDO::getStoreId,comShopStoreDO.getId()));
+        // //删除关联的sysUser用户权限
+        // this.baseMapper.deleteSysRoleByAccount(Constants.SHOP_ROLE_KEY + comShopStoreDO.getStoreAccount());
+        // //删除关联的sysUser用户
+        // this.baseMapper.deleteSysUserBySysUserId(comShopStoreDO.getSysUserId());
+        // //删除店铺
+        // this.baseMapper.deleteById(comShopStoreDO.getId());
+        // }
+        ComShopStoreDO storeDO = new ComShopStoreDO();
+        BeanUtils.copyProperties(storeVO, storeDO);
+        storeDO.setSale(0);
+        this.baseMapper.insert(storeDO);
+        return R.ok();
+    }
+
+    public R addStore(ShopStoreVO storeVO) {
+        // 判断店铺是否存在
+        ComShopStoreDO oldComShopStoreDO = this.baseMapper.selectOne(
+            new LambdaQueryWrapper<ComShopStoreDO>().eq(ComShopStoreDO::getStoreAccount, storeVO.getStoreAccount())
+                .eq(ComShopStoreDO::getDeleteStatus, ComShopStoreDO.deleteStatus.no));
+        if (oldComShopStoreDO != null) {
+            return R.fail("商家账号已注册");
+        }
+        int reasonable1 = this.baseMapper.reasonableUserByPhone(storeVO.getPhone());
+        int reasonable2 = this.baseMapper.reasonableUserByAccount(storeVO.getStoreAccount());
+        if (reasonable1 > 0) {
+            return R.fail("手机号:" + storeVO.getPhone() + "在系统用户中已存在");
+        }
+        if (reasonable2 > 0) {
+            return R.fail("账号:" + storeVO.getStoreAccount() + "在系统用户中已存在");
+        }
+        // 新增店铺先判断是否拥有已删除的店铺
+        ComShopStoreDO comShopStoreDO = this.baseMapper.selectOne(
+            new LambdaQueryWrapper<ComShopStoreDO>().eq(ComShopStoreDO::getStoreAccount, storeVO.getStoreAccount())
+                .eq(ComShopStoreDO::getDeleteStatus, ComShopStoreDO.deleteStatus.yes));
+        if (comShopStoreDO != null) {
+            // 删除店铺规格信息
+            comShopGoodsAttrDAO.delete(new QueryWrapper<ComShopGoodsAttrDO>().lambda()
+                .eq(ComShopGoodsAttrDO::getStoreId, comShopStoreDO.getId()));
+            // 删除店铺商品
+            shopGoodsDAO.delete(
+                new QueryWrapper<ComShopGoodsDO>().lambda().eq(ComShopGoodsDO::getStoreId, comShopStoreDO.getId()));
+            // 删除关联的sysUser用户权限
+            this.baseMapper.deleteSysRoleByAccount(Constants.SHOP_ROLE_KEY + comShopStoreDO.getStoreAccount());
+            // 删除关联的sysUser用户
+            this.baseMapper.deleteSysUserBySysUserId(comShopStoreDO.getSysUserId());
+            // 删除店铺
+            this.baseMapper.deleteById(comShopStoreDO.getId());
+        }
+        ComShopStoreDO storeDO = new ComShopStoreDO();
+        BeanUtils.copyProperties(storeVO, storeDO);
+        storeDO.setSale(0);
+        if (this.baseMapper.insert(storeDO) > 0) {
+            return R.ok();
+        } else {
+            return R.fail();
+        }
+    }
+
+    @Override
+    public R editStore(Long id, ShopStoreVO storeVO) {
+        ComShopStoreDO storeDO = this.baseMapper.selectById(id);
+        if (storeDO == null) {
+            return R.fail("商家不存在");
+        }
+        BeanUtils.copyProperties(storeVO, storeDO);
+        if (this.baseMapper.updateById(storeDO) > 0) {
+            return R.ok();
+        } else {
+            return R.fail();
+        }
+    }
+
+    @Override
+    public R deleteStore(Long[] id) {
+        LambdaQueryWrapper<ComShopStoreDO> query =
+            new LambdaQueryWrapper<ComShopStoreDO>().in(ComShopStoreDO::getId, id);
+        List<ComShopStoreDO> comShopStoreDO = this.baseMapper.selectList(query);
+        if (!comShopStoreDO.isEmpty()) {
+            for (ComShopStoreDO shopStoreDO : comShopStoreDO) {
+                // 判断店铺下是否拥有正常的商品
+                List<ComShopGoodsDO> shopGoodsList = shopGoodsDAO.selectList(
+                    new QueryWrapper<ComShopGoodsDO>().lambda().eq(ComShopGoodsDO::getStoreId, shopStoreDO.getId())
+                        .eq(ComShopGoodsDO::getDeleteStatus, ComShopGoodsDO.deleteStatus.no)
+                        .eq(ComShopGoodsDO::getStatus, ComShopGoodsDO.status.sell));
+                if (!shopGoodsList.isEmpty()) {// 如果有正常商品则提示无法删除
+                    return R.fail("店铺下有商品正在出售,无法删除店铺");
+                }
+                List<ComShopOrderDO> comShopOrderDOS = orderService.getBaseMapper().selectList(
+                    new LambdaQueryWrapper<ComShopOrderDO>().eq(ComShopOrderDO::getStoreId, shopStoreDO.getId()));
+                List<ComShopOrderDO> filterOrder = comShopOrderDOS.stream()
+                    .filter(order -> order.getStatus() < ComShopOrderDO.status.dpj).collect(Collectors.toList());
+                if (!filterOrder.isEmpty()) {
+                    return R.fail("该商家还有订单未完成,不能删除");
+                }
+                // 删除商家下的订单
+                comShopOrderDOS.forEach(order -> {
+                    order.setDeleteStatus(ComShopOrderDO.deleteStatus.yes);
+                    orderService.getBaseMapper().updateById(order);
+                });
+                shopStoreDO.setDeleteStatus(2);
+                this.baseMapper.updateById(shopStoreDO);
+                // 删除sys_user 物理删除
+                this.baseMapper.deleteSysUserBySysUserId(shopStoreDO.getSysUserId());
+            }
+        } else {
+            return R.fail("未查询到店铺");
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R getOneInfo(Long id) {
+        ComShopStoreDO comShopStoreDO = this.baseMapper.selectById(id);
+        if (comShopStoreDO == null) {
+            return R.fail(500, "商铺不存在");
+        }
+        ShopStoreVO shopStoreVO = new ShopStoreVO();
+        BeanUtils.copyProperties(comShopStoreDO, shopStoreVO);
+        return R.ok(shopStoreVO);
+    }
+
+    @Override
+    public R getUserStoreInfo(Long userId) {
+        ComShopStoreDO comShopStoreDO = this.baseMapper.selectOne(new LambdaQueryWrapper<ComShopStoreDO>()
+            .eq(ComShopStoreDO::getDeleteStatus, 1).eq(ComShopStoreDO::getSysUserId, userId));
+        if (comShopStoreDO == null) {
+            return R.fail(500, "商铺不存在");
+        }
+        ShopStoreVO shopStoreVO = new ShopStoreVO();
+        BeanUtils.copyProperties(comShopStoreDO, shopStoreVO);
+        return R.ok(shopStoreVO);
+    }
+
+    @Override
+    public R getUserStoreInfo(String account) {
+        try {
+            R<LoginUserInfoVO> loginUserInfoVOR = userService.getUserInfo(account + "_5");
+            LoginUserInfoVO loginUserInfoVO =
+                JSONObject.parseObject(JSONObject.toJSONString(loginUserInfoVOR.getData()), LoginUserInfoVO.class);
+
+            if (loginUserInfoVO == null) {
+                return R.fail(500, "该账号不存在");
+            }
+            ComShopStoreDO comShopStoreDO = this.baseMapper.selectOne(new LambdaQueryWrapper<ComShopStoreDO>()
+                .eq(ComShopStoreDO::getDeleteStatus, 1).eq(ComShopStoreDO::getSysUserId, loginUserInfoVO.getUserId()));
+            if (comShopStoreDO == null) {
+                return R.fail(500, "该账号不存在");
+            }
+            ShopStoreVO shopStoreVO = new ShopStoreVO();
+            BeanUtils.copyProperties(comShopStoreDO, shopStoreVO);
+            return R.ok(shopStoreVO);
+        } catch (Exception e) {
+            return R.fail();
+        }
+    }
+
+    /**
+     * check商家/店铺是否有效
+     * @param userId
+     * @return
+     */
+    @Override
+    public Boolean checkStoreIsValid(Long userId) {
+        ComShopStoreDO comShopStoreDO = this.baseMapper.selectOne(new LambdaQueryWrapper<ComShopStoreDO>()
+                .eq(ComShopStoreDO::getDeleteStatus, 1).eq(ComShopStoreDO::getSysUserId, userId));
+        if (isNull(comShopStoreDO) || comShopStoreDO.getStatus() != 1) {
+            return false;
+        }
+        return true;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopSysConfServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopSysConfServiceImpl.java
new file mode 100644
index 0000000..f182e83
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopSysConfServiceImpl.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.ComShopSysConfDAO;
+import com.panzhihua.service_community.model.dos.ComShopSysConfDO;
+import com.panzhihua.service_community.service.ComShopSysConfService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther cedoo
+ * @create 2021-5-11 12:20:37
+ * @describe 商品系统配置
+ */
+@Slf4j
+@Service
+public class ComShopSysConfServiceImpl extends ServiceImpl<ComShopSysConfDAO, ComShopSysConfDO>
+    implements ComShopSysConfService {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopUserAddressServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopUserAddressServiceImpl.java
new file mode 100644
index 0000000..e32a082
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopUserAddressServiceImpl.java
@@ -0,0 +1,131 @@
+package com.panzhihua.service_community.service.impl;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.shop.ComShopAddressDTO;
+import com.panzhihua.common.model.dtos.shop.PageComShopAddressDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.dao.ComShopUserAddressDAO;
+import com.panzhihua.service_community.model.dos.ComShopUserAddressDO;
+import com.panzhihua.service_community.service.ComShopUserAddressService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:04:16
+ * @describe 用户收货地址表服务实现类
+ */
+@Slf4j
+@Service
+public class ComShopUserAddressServiceImpl extends ServiceImpl<ComShopUserAddressDAO, ComShopUserAddressDO>
+    implements ComShopUserAddressService {
+
+    /**
+     * 查询用户收获地址列表
+     * 
+     * @param comShopAddressDTO
+     *            请求参数
+     * @return 用户收货地址列表
+     */
+    @Override
+    public R shopUserAddressList(PageComShopAddressDTO comShopAddressDTO) {
+        Page page = new Page<>(comShopAddressDTO.getPageNum(), comShopAddressDTO.getPageSize());
+        return R.ok(this.baseMapper.pageUserAddressList(page, comShopAddressDTO.getUserId()));
+    }
+
+    /**
+     * 用户添加收货地址
+     * 
+     * @param comShopAddressDTO
+     *            请求参数
+     * @return 添加结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R shopAddUserAddress(ComShopAddressDTO comShopAddressDTO) {
+        ComShopUserAddressDO userAddressDO = new ComShopUserAddressDO();
+        BeanUtils.copyProperties(comShopAddressDTO, userAddressDO);
+
+        // 如果新增的地址为默认地址,需要修改原来的默认地址为不默认
+        if (userAddressDO.getIsDefault().equals(ComShopUserAddressDO.isDefault.yes)) {
+            ComShopUserAddressDO oldUserAddressDO = this.baseMapper.selectOne(new QueryWrapper<ComShopUserAddressDO>()
+                .eq("user_id", comShopAddressDTO.getUserId()).eq("is_default", ComShopUserAddressDO.isDefault.yes));
+            if (oldUserAddressDO != null) {
+                oldUserAddressDO.setIsDefault(ComShopUserAddressDO.isDefault.no);
+                this.baseMapper.updateById(oldUserAddressDO);
+            }
+        }
+
+        if (this.baseMapper.insert(userAddressDO) > 0) {
+            return R.ok();
+        } else {
+            return R.fail("添加收货地址失败");
+        }
+    }
+
+    /**
+     * 用户修改收货地址
+     * 
+     * @param comShopAddressDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R shopEditUserAddress(ComShopAddressDTO comShopAddressDTO) {
+
+        // 查询用户收货地址
+        ComShopUserAddressDO userAddressDO = this.baseMapper.selectById(comShopAddressDTO.getAddressId());
+        if (userAddressDO == null) {
+            return R.fail("未查询到用户收货地址信息");
+        }
+
+        BeanUtils.copyProperties(comShopAddressDTO, userAddressDO);
+        // 如果要修改的地址为默认地址,需要修改原来的默认地址为不默认
+        if (comShopAddressDTO.getIsDefault().equals(ComShopUserAddressDO.isDefault.yes)) {
+            ComShopUserAddressDO oldUserAddressDO = this.baseMapper.selectOne(new QueryWrapper<ComShopUserAddressDO>()
+                .eq("user_id", comShopAddressDTO.getUserId()).eq("is_default", ComShopUserAddressDO.isDefault.yes));
+            if (oldUserAddressDO != null) {
+                // 判断当前要修改的默认地址是否本来就是默认地址
+                if (!oldUserAddressDO.getId().equals(userAddressDO.getId())) {
+                    oldUserAddressDO.setIsDefault(ComShopUserAddressDO.isDefault.no);
+                    this.baseMapper.updateById(oldUserAddressDO);
+                }
+            }
+        }
+
+        if (this.baseMapper.updateById(userAddressDO) > 0) {
+            return R.ok();
+        } else {
+            return R.fail("添加收货地址失败");
+        }
+    }
+
+    /**
+     * 用户删除收货地址
+     * 
+     * @param addressId
+     *            收货地址id
+     * @return 删除结果
+     */
+    public R shopDelUserAddress(Long addressId) {
+        // 查询用户收货地址
+        ComShopUserAddressDO userAddressDO = this.baseMapper.selectById(addressId);
+        if (userAddressDO == null) {
+            return R.fail("未查询到用户收货地址信息");
+        }
+        userAddressDO.setDeleteStatus(1);
+        if (this.baseMapper.updateById(userAddressDO) > 0) {
+            return R.ok();
+        } else {
+            return R.fail("删除收货地址失败");
+        }
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComStreetServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComStreetServiceImpl.java
new file mode 100644
index 0000000..6041455
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComStreetServiceImpl.java
@@ -0,0 +1,434 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.*;
+import java.util.stream.Collectors;
+
+
+import javax.annotation.Resource;
+
+
+import cn.hutool.core.collection.CollectionUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.model.dtos.community.building.BuildingDto;
+import com.panzhihua.common.model.dtos.community.large.AreaStreetDetail;
+import com.panzhihua.common.model.dtos.community.large.AreaStreetDetailResp;
+import com.panzhihua.common.model.dtos.community.large.SumAreaStreetResp;
+import com.panzhihua.common.model.dtos.partybuilding.QryReportResp;
+import com.panzhihua.common.model.vos.StreetVO;
+import com.panzhihua.common.model.vos.area.StreetAndBuildVO;
+import com.panzhihua.common.model.vos.community.bigscreen.ScreenStatics;
+import com.panzhihua.common.model.vos.community.screen.event.EventPopulationSpecialStatisticsVO;
+import com.panzhihua.common.model.vos.neighbor.ActivityAnalysisVO;
+import com.panzhihua.common.model.vos.neighbor.UnitActivityAnalysisVO;
+import com.panzhihua.common.model.vos.user.AdministratorsUserVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.service_community.dao.*;
+
+import com.panzhihua.service_community.entity.ComEvent;
+
+import com.panzhihua.service_community.service.ComAreaTownCommunityService;
+import com.panzhihua.service_community.util.MyAESUtil;
+import com.panzhihua.service_community.util.WxDataUtil;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.StringRedisTemplate;
+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.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.google.common.collect.Lists;
+import com.panzhihua.common.model.dtos.community.PageComStreetDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActVO;
+import com.panzhihua.common.model.vos.community.ComStreetVO;
+import com.panzhihua.service_community.model.dos.ComActDO;
+import com.panzhihua.service_community.model.dos.ComStreetDO;
+import com.panzhihua.service_community.service.ComStreetService;
+import org.springframework.util.StringUtils;
+
+/**
+ * @author: llming
+ * @description: 街道
+ **/
+@Service
+public class ComStreetServiceImpl implements ComStreetService {
+    @Resource
+    private ComActDAO comActDAO;
+
+    @Resource
+    private ComStreetDAO comStreetDAO;
+
+    @Resource
+    private UserService userService;
+
+    @Resource
+    private ComEventMapper comEventMapper;
+
+    @Autowired
+    private CommunityService communityService;
+
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+
+    /**
+     * 新增社区
+     *
+     * @param comStreetVO
+     *            街道信息
+     * @return 新增结果
+     */
+    @Override
+    @Transactional
+    public R<ComStreetVO> addStreet(ComStreetVO comStreetVO) {
+        ComStreetDO comStreetDO = new ComStreetDO();
+        LambdaQueryWrapper<ComStreetDO> param = new QueryWrapper<ComStreetDO>().lambda();
+        param.eq(ComStreetDO::getName, comStreetVO.getName());
+        param.eq(ComStreetDO::getProvinceCode, comStreetVO.getProvinceCode());
+        param.eq(ComStreetDO::getCityCode, comStreetVO.getCityCode());
+        param.eq(ComStreetDO::getAreaCode, comStreetVO.getAreaCode());
+        Integer integer = comStreetDAO.selectCount(param);
+        if (integer > 0) {
+            return R.fail(500, "街道已经存在");
+        }
+        AdministratorsUserVO administratorsUserVO=new AdministratorsUserVO();
+        administratorsUserVO.setType(3);
+        administratorsUserVO.setAccount(comStreetVO.getAccount());
+        administratorsUserVO.setPassword(comStreetVO.getPassword());
+        administratorsUserVO.setSocialType(1);
+        administratorsUserVO.setRoleId(777777777L);
+        administratorsUserVO.setStreetId(0L);
+        administratorsUserVO.setName(comStreetVO.getName());
+        administratorsUserVO.setUserId(Snowflake.getId());
+        R r=userService.addUserBackstageProperty(administratorsUserVO);
+        if(R.isOk(r)){
+            BeanUtils.copyProperties(comStreetVO, comStreetDO);
+            int insert = comStreetDAO.insert(comStreetDO);
+            if (insert > 0) {
+                AdministratorsUserVO administratorsUserVO1=new AdministratorsUserVO();
+                administratorsUserVO1.setUserId(Long.parseLong(r.getData().toString()));
+                administratorsUserVO1.setStreetId(comStreetDO.getStreetId());
+                userService.updateStreet(administratorsUserVO1);
+                ComStreetDO comStreetDO1 = comStreetDAO.selectOne(param);
+                BeanUtils.copyProperties(comStreetDO1, comStreetVO);
+                return R.ok(comStreetVO);
+            }
+            return R.fail(500, "");
+        }
+        return R.fail("账号已存在");
+    }
+
+    /**
+     * 查询街道
+     *
+     * @param comStreetVO
+     *            街道名
+     * @return 社区集合
+     */
+    @Override
+    public R listStreet(ComStreetVO comStreetVO) {
+        LambdaQueryWrapper<ComStreetDO> param = new QueryWrapper<ComStreetDO>().lambda();
+        if (comStreetVO.getProvinceCode() != null) {
+            param.eq(ComStreetDO::getProvinceCode, comStreetVO.getProvinceCode());
+        }
+        if (comStreetVO.getCityCode() != null) {
+            param.eq(ComStreetDO::getCityCode, comStreetVO.getCityCode());
+        }
+        if (comStreetVO.getAreaCode() != null) {
+            param.eq(ComStreetDO::getAreaCode, comStreetVO.getAreaCode());
+        }
+        List<ComStreetVO> voList = Lists.newArrayList();
+        List<ComStreetDO> comStreetDOS = comStreetDAO.selectList(param);
+        comStreetDOS.forEach(dos -> {
+            ComStreetVO vo = new ComStreetVO();
+            BeanUtils.copyProperties(dos, vo);
+            voList.add(vo);
+        });
+        return R.ok(voList);
+    }
+
+    /**
+     * 社区详情
+     *
+     * @param streetId
+     *            街道id
+     * @return 社区详情
+     */
+    @Override
+    public R detailStreet(Long streetId) {
+        ComStreetDO comStreetDO = comStreetDAO.selectById(streetId);
+        if (ObjectUtils.isEmpty(comStreetDO)) {
+            return R.fail();
+        }
+        ComStreetVO comStreetVO = new ComStreetVO();
+        BeanUtils.copyProperties(comStreetDO, comStreetVO);
+        comStreetVO.setAdministrativeRegions(comStreetDAO.retrieveRegions(comStreetVO.getAreaCode().toString()));
+        return R.ok(comStreetVO);
+    }
+
+    /**
+     * 分页查询社区
+     *
+     * @param pageComStreetDTO
+     *            查询参数
+     * @return 分页集合
+     */
+    @Override
+    public R pageStreet(PageComStreetDTO pageComStreetDTO) {
+        Page page = new Page<>();
+        Long pageNum = pageComStreetDTO.getPageNum();
+        Long pageSize = pageComStreetDTO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1L;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10L;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        LambdaQueryWrapper<ComStreetDO> userLambdaQueryWrapper = Wrappers.lambdaQuery();
+        if (pageComStreetDTO.getName() != null) {
+            userLambdaQueryWrapper.like(ComStreetDO::getName, pageComStreetDTO.getName());
+        }
+        if (pageComStreetDTO.getAreaCode() != null) {
+            userLambdaQueryWrapper.like(ComStreetDO::getAreaCode, pageComStreetDTO.getAreaCode());
+        }
+        Page userPage = new Page(pageNum, pageSize);
+        IPage<ComStreetDO> doPager =
+            comStreetDAO.selectPage(userPage, userLambdaQueryWrapper.orderByDesc(ComStreetDO::getCreateAt));
+        return R.ok(doPager);
+    }
+
+    /**
+     * 批量删除街道
+     *
+     * @param streetIds
+     *            社区id
+     * @return 删除结果
+     */
+    @Override
+    public R delectStreat(List<Long> streetIds) {
+        // 不能删除,已经绑定了社区的街道
+        LambdaQueryWrapper<ComActDO> comActDOParam =
+            new QueryWrapper<ComActDO>().lambda().in(ComActDO::getStreetId, streetIds);
+        List<ComActDO> comActDOS = comActDAO.selectList(comActDOParam);
+        if (comActDOS != null && comActDOS.size() > 0) {
+            return R.fail("删除失败,批量删除街道中,街道下有社区无法删除!");
+        }
+        int delete = comStreetDAO.deleteBatchIds(streetIds);
+        if (delete > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+
+    /**
+     * 修改街道信息
+     * @param comStreetVO 街道信息
+     * */
+    @Override
+    public R update(ComStreetVO comStreetVO) {
+        ComStreetDO comStreetDO=new ComStreetDO();
+        BeanUtils.copyProperties(comStreetVO,comStreetDO );
+        return R.ok(comStreetDAO.updateById(comStreetDO));
+    }
+
+    /**
+     * 删除街道
+     * */
+    @Override
+    public R remove(Long id) {
+        //是否有未结事件
+        List<Long> longs = comActDAO.selectCommunityByStreetId(id);
+        List<ComEvent> comEvents = comEventMapper.selectList(new QueryWrapper<ComEvent>().lambda().in(ComEvent::getEventProcessStatus, (4), (6), (7), (8)).in(ComEvent::getRequestUserCommunity, longs));
+        if (comEvents.size()!=0){
+            return R.fail("有未结事件不可删除");
+        }
+        comStreetDAO.deleteById(id);
+        return R.ok();
+    }
+
+    @Override
+    public R removeCommunity(Long id) {
+        //是否有未结案件
+        List<ComEvent> comEvents = comEventMapper.selectList(new QueryWrapper<ComEvent>().lambda().in(ComEvent::getEventProcessStatus, (4), (6), (7), (8)).eq(ComEvent::getRequestUserCommunity, id));
+        if (comEvents.size()!=0){
+            return R.fail("有未结事件不可删除");
+        }
+        comActDAO.deleteById(id);
+        return R.ok();
+    }
+
+    @Override
+    public R repassCommunity(ComActVO comActVO) {
+        ComActDO comActDO=new ComActDO();
+        try {
+            comActDO.setPassword(MyAESUtil.Encrypt(comActVO.getPassword(),"Ryo7M3n8loC5Abcd" ));
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        comActDO.setCommunityId(comActVO.getCommunityId());
+        return R.ok(comActDAO.updateById(comActDO));
+    }
+
+    @Override
+    public R repssStreet(ComStreetVO comActVO) {
+        ComStreetDO comStreetDO=new ComStreetDO();
+        try {
+            comStreetDO.setPassword(MyAESUtil.Encrypt(comActVO.getPassword(),"Ryo7M3n8loC5Abcd" ));
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        comStreetDO.setStreetId(comActVO.getStreetId());
+        return R.ok(comStreetDAO.updateById(comStreetDO));
+    }
+
+    @Override
+    public R panzhihuaMap(String areaCode) {
+
+        List<ComActVO> comActVOS = comActDAO.panzhihuaMap(areaCode);
+        return R.ok(comActVOS);
+    }
+
+    @Override
+    public R searchStreet(BuildingDto buildingDto) {
+        QueryWrapper<ComStreetDO> wrapper = new QueryWrapper<>();
+        wrapper.eq(buildingDto.getAreaCode()!= null,"area_code",buildingDto.getAreaCode());
+        wrapper.eq("app_id","wx118de8a734d269f0");
+        List<ComStreetDO> comStreetDOS = comStreetDAO.selectList(wrapper);
+//        ArrayList<ComStreetDO> collect = comStreetDOS.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(
+//                Comparator.comparing(ComStreetDO::getAreaCode))), ArrayList::new));
+        List<StreetVO> list = comStreetDOS.stream().map(v -> {
+            StreetVO vo = new StreetVO();
+            vo.setStreetId(String.valueOf(v.getStreetId()));
+            vo.setName(v.getName());
+            return vo;
+        }).collect(Collectors.toList());
+        return R.ok(list);
+    }
+
+    @Override
+    public R oneTagThreeReal(Long street) {
+        List<StreetAndBuildVO> streetAndBuildVOS = comActDAO.oneTagThreeReal(street);
+        return R.ok(streetAndBuildVOS);
+    }
+
+    @Override
+    public R getScreenStatics() {
+        ScreenStatics screenStatics = comActDAO.getScreenStatics();
+        WxDataUtil wxDataUtil=new WxDataUtil();
+        //微信查询较慢 数据时有 时没有  缓存到 redis 里
+        //日 活跃
+        if(null != wxDataUtil.getDayUser()){
+            stringRedisTemplate.opsForValue().set("WxDataUtil_Day",String.valueOf(wxDataUtil.getDayUser()));
+            screenStatics.setDayUser(wxDataUtil.getDayUser());
+        }else {
+            Object obj = stringRedisTemplate.opsForValue().get("WxDataUtil_Day");
+            screenStatics.setDayUser(Integer.valueOf((String)obj));
+        }
+        //月 活跃
+        if(null != wxDataUtil.getMonthUser()){
+            stringRedisTemplate.opsForValue().set("WxDataUtil_Month",String.valueOf(wxDataUtil.getMonthUser()));
+            screenStatics.setCountUser(wxDataUtil.getMonthUser());
+        }else {
+            Object obj = stringRedisTemplate.opsForValue().get("WxDataUtil_Month");
+            screenStatics.setCountUser(Integer.valueOf((String)obj));
+        }
+        return R.ok(screenStatics);
+    }
+
+    @Override
+    public R populationStatics(Long streetId) {
+        StreetAndBuildVO vo = new StreetAndBuildVO();
+        List<StreetAndBuildVO> list = comActDAO.oneTagThreeReal(streetId);
+        if(list != null){
+            for (StreetAndBuildVO basics : list) {
+                vo.setPeopleNum(vo.getPeopleNum() + basics.getPeopleNum());
+                vo.setVillageNum(vo.getVillageNum() + basics.getVillageNum());
+                vo.setBuildNum(vo.getBuildNum() + basics.getBuildNum());
+            }
+        }
+        EventPopulationSpecialStatisticsVO populationSpecial = comActDAO.getPopulationSpecial(streetId);
+        if(populationSpecial != null){
+            populationSpecial.setOtherTotal(populationSpecial.getZjTotal() + populationSpecial.getSfTotal()
+                    + populationSpecial.getXsTotal() + populationSpecial.getXjTotal()
+                    + populationSpecial.getJzTotal() + populationSpecial.getXdTotal());
+            populationSpecial.setLnTotal(comActDAO.getPopulationAge(streetId,60));
+            populationSpecial.setGlTotal(comActDAO.getPopulationAge(streetId,80));
+            vo.setSpecialStatisticsVo(populationSpecial);
+        }
+        vo.setSpecialStatisticsVo(populationSpecial);
+        return R.ok(vo);
+    }
+
+    @Override
+    public R probably(Integer year,String belongTo) {
+        ActivityAnalysisVO activityVO=new ActivityAnalysisVO();
+//        String beginTime=null;
+//        String endTime=null;
+//        if (null != year){
+//            //设置开始,截止时间
+//            beginTime=year.toString().concat("-01-01");
+//            endTime=year.toString().concat("-12-31");
+//        }
+        activityVO.setUnitCount(comActDAO.arriveUnit(belongTo));
+        R r = communityService.institutionalUnitServiceAnalysis(year, null, null, null,
+                null, null, belongTo, null, null,null);
+        Object data = r.getData();
+        String jsonString = JSON.toJSONString(data);
+        ActivityAnalysisVO activityAnalysisVO = JSON.parseObject(jsonString, ActivityAnalysisVO.class);
+        activityVO.setUnitServiceTotalTime(activityAnalysisVO.getUnitServiceTotalTime());
+        return R.ok(activityVO);
+    }
+
+    @Override
+    public SumAreaStreetResp sumAreaStreet() {
+        SumAreaStreetResp resp = comActDAO.sumAreaStreet();
+        return resp;
+    }
+
+    @Override
+    public AreaStreetDetail areaStreetDetail(String code, String type) {
+        //根据层级 查询 社区id
+        LambdaQueryWrapper<ComActDO> qry = new LambdaQueryWrapper<>();
+        if(type.equals("1")){// 1 查询 大区
+            qry.eq( !StringUtils.isEmpty(code),ComActDO::getAreaCode,code);
+        }
+        if(type.equals("2")){// 2 查询 街道
+            qry.eq( !StringUtils.isEmpty(code),ComActDO::getStreetId,code);
+        }
+        if(type.equals("3")){// 3 查询 小区
+            qry.eq( !StringUtils.isEmpty(code),ComActDO::getCommunityId,code);
+        }
+//        qry.eq(ComActDO::getAppId,"wx118de8a734d269f0");
+        List<ComActDO> doList = comActDAO.selectList(qry);
+        //解析 社区id
+        List<Long> ids = doList.stream().map(ComActDO::getCommunityId).collect(Collectors.toList());
+
+        AreaStreetDetail result = new AreaStreetDetail();
+        if(CollectionUtil.isNotEmpty(ids)){
+            //查询 街道相关信息
+            AreaStreetDetailResp village = comActDAO.selectVillage(ids,type);
+            result.setAreaStreetDetailResp(village);
+            //查询 人口相关数据
+            EventPopulationSpecialStatisticsVO eventResult = comActDAO.selectEvent(ids);
+            result.setEventPopulationVO(eventResult);
+        }
+        return result;
+    }
+
+
+    @Override
+    public List<QryReportResp> qryReport(String yearTime) {
+        List<QryReportResp> result = comActDAO.qryReport(yearTime);
+        return result;
+    }
+}
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
new file mode 100644
index 0000000..7be2c3b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwDangerReportServiceImpl.java
@@ -0,0 +1,426 @@
+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.dao.ComActDAO;
+import com.panzhihua.service_community.model.dos.ComSwSafetyWorkRecordDO;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+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.SafeWordStatusEnum;
+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.common.model.vos.community.ComSwDangerReportExcelVO;
+import com.panzhihua.common.model.vos.community.ComSwDangerReportVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.dao.ComSwDangerReportDAO;
+import com.panzhihua.service_community.dao.ComSwPatrolRecordDAO;
+import com.panzhihua.service_community.dao.ComSwPatrolRecordReportDAO;
+import com.panzhihua.service_community.model.dos.ComSwDangerReportDO;
+import com.panzhihua.service_community.model.dos.ComSwPatrolRecordDO;
+import com.panzhihua.service_community.model.dos.ComSwPatrolRecordReportDO;
+import com.panzhihua.service_community.service.ComSwDangerReportService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther txb
+ * @create 2021-07-27 14:31:04
+ * @describe 服务实现类
+ */
+@Slf4j
+@Service
+public class ComSwDangerReportServiceImpl extends ServiceImpl<ComSwDangerReportDAO, ComSwDangerReportDO>
+    implements ComSwDangerReportService {
+
+    @Resource
+    private ComSwDangerReportDAO comSwDangerReportDAO;
+
+    @Resource
+    private ComSwPatrolRecordDAO comSwPatrolRecordDAO;
+
+    @Resource
+    private ComSwPatrolRecordReportDAO comSwPatrolRecordReportDAO;
+
+    @Resource
+    private UserService userService;
+
+    @Resource
+    private ComActDAO comActDAO;
+
+    @Override
+    public R pageDangerReport(ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO) {
+        Page page = new Page<>();
+        Long pageNum = comSwPatrolRecordPageDTO.getPageNum();
+        Long pageSize = comSwPatrolRecordPageDTO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1L;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10L;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+
+        IPage<ComSwDangerReportVO> iPage = comSwDangerReportDAO.pageDangerReport(page, comSwPatrolRecordPageDTO);
+        if (!iPage.getRecords().isEmpty()) {
+            iPage.getRecords().forEach(comSwDangerReportVO -> {
+                if (StringUtils.isNotEmpty(comSwDangerReportVO.getStatus())
+                    && "2".equals(comSwDangerReportVO.getStatus())) {
+                    comSwDangerReportVO.setIsAssign(ComSwDangerReportVO.isOk.yes);
+                } else {
+                    comSwDangerReportVO.setIsAssign(ComSwDangerReportVO.isOk.no);
+                }
+                StringBuilder patrolNameString = new StringBuilder();
+                StringBuilder patrolPhoneString = new StringBuilder();
+                // 巡查人员id查询巡查人员的名字和电话
+                if (StringUtils.isNotEmpty(comSwDangerReportVO.getPatrolPerson())) {
+                    String[] patrolIds = comSwDangerReportVO.getPatrolPerson().split(",");
+                    for (int i = 0; i < patrolIds.length; i++) {
+                        Map<String, String> leader = comSwPatrolRecordDAO.getPbServiceTeamById(patrolIds[i]);
+                        if (leader != null) {
+                            if (i != 0) {
+                                patrolNameString.append(",");
+                                patrolPhoneString.append(",");
+                            }
+                            patrolNameString.append(leader.get("name"));
+                            patrolPhoneString.append(leader.get("phone"));
+                        }
+                    }
+                    comSwDangerReportVO.setPPersonName(patrolNameString.toString());
+                    comSwDangerReportVO.setPPersonPhone(patrolPhoneString.toString());
+                }
+                // 整改人员id查询整改人员的名字和电话
+                StringBuilder dangerNameString = new StringBuilder();
+                StringBuilder dangerPhoneString = new StringBuilder();
+                if (StringUtils.isNotEmpty(comSwDangerReportVO.getRectifyPerson())) {
+                    String[] dangerIds = comSwDangerReportVO.getRectifyPerson().split(",");
+                    for (int i = 0; i < dangerIds.length; i++) {
+                        Map<String, String> person = comSwPatrolRecordDAO.getPbServiceTeamById(dangerIds[i]);
+                        if (person != null) {
+                            if (i != 0) {
+                                dangerNameString.append(",");
+                                dangerPhoneString.append(",");
+                            }
+                            dangerNameString.append(person.get("name"));
+                            dangerPhoneString.append(person.get("phone"));
+                        }
+                    }
+                    comSwDangerReportVO.setDPersonName(dangerNameString.toString());
+                    comSwDangerReportVO.setDPersonPhone(dangerPhoneString.toString());
+                }
+            });
+        }
+        return R.ok(iPage);
+    }
+
+    @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) {
+            return R.fail("该隐患报告不存在");
+        }
+        ComSwDangerReportVO comSwDangerReportVO = new ComSwDangerReportVO();
+        ComSwPatrolRecordReportDO comSwPatrolRecordReportDO =
+            comSwPatrolRecordReportDAO.selectOne(new QueryWrapper<ComSwPatrolRecordReportDO>().lambda()
+                .eq(ComSwPatrolRecordReportDO::getReportId, dangerReportId));
+        if (null != comSwPatrolRecordReportDO) {
+            ComSwPatrolRecordDO comSwPatrolRecordDO =
+                comSwPatrolRecordDAO.selectById(comSwPatrolRecordReportDO.getPatrolRecordId());
+            BeanUtils.copyProperties(comSwPatrolRecordDO, comSwDangerReportVO);
+            comSwDangerReportVO.setPatrolTime(new SimpleDateFormat("yyyy-MM-dd").format(comSwPatrolRecordDO.getPatrolTime()));
+        }
+        BeanUtils.copyProperties(comSwDangerReportDO, comSwDangerReportVO);
+
+        // 组装巡查类型
+        if (StringUtils.isNotEmpty(comSwDangerReportVO.getPatrolType())) {
+            StringBuilder sb = new StringBuilder();
+            String[] patrolTypes = comSwDangerReportVO.getPatrolType().split(",");
+            for (int i = 0; i < patrolTypes.length; i++) {
+                if (i != 0) {
+                    sb.append(",");
+                }
+                if (patrolTypes[i].equals("1")) {
+                    sb.append("防火巡查");
+                } else if (patrolTypes[i].equals("2")) {
+                    sb.append("防汛巡查");
+                } else if (patrolTypes[i].equals("3")) {
+                    sb.append("防疫巡查");
+                }
+            }
+            comSwDangerReportVO.setPatrolType(sb.toString());
+        }
+
+        // 查询整改人员信息
+        if (StringUtils.isNotEmpty(comSwDangerReportVO.getRectifyPerson())) {
+            StringBuilder sb = new StringBuilder();
+            String[] personIds = comSwDangerReportVO.getRectifyPerson().split(",");
+            for (int i = 0; i < personIds.length; i++) {
+                if (i != 0) {
+                    sb.append(",");
+                }
+                Map<String, String> personMap = comSwPatrolRecordDAO.getPbServiceTeamById(personIds[i]);
+                if (personMap != null) {
+                    sb.append(personMap.get("name"));
+                }
+            }
+            comSwDangerReportVO.setPersonName(sb.toString());
+        }
+
+        // 查询填报人名称
+        if (comSwDangerReportVO.getCreateBy() != null) {
+            comSwDangerReportVO.setCreateName(comSwPatrolRecordDAO.getCreateName(comSwDangerReportVO.getCreateBy()));
+        }
+
+        // 所属社区名称
+        comSwDangerReportVO.setCommunityName(comActDAO.selectById(comSwDangerReportVO.getCommunityId()).getName());
+
+        // 查询指派人名称
+        if (StringUtils.isNotEmpty(comSwDangerReportVO.getAssignPerson())) {
+            StringBuilder sb = new StringBuilder();
+            String[] personIds = comSwDangerReportVO.getAssignPerson().split(",");
+            for (int i = 0; i < personIds.length; i++) {
+                if (i != 0) {
+                    sb.append(",");
+                }
+                Map<String, String> personMap = comSwPatrolRecordDAO.getPbServiceTeamById(personIds[i]);
+                if (personMap != null) {
+                    sb.append(personMap.get("name"));
+                }
+            }
+            comSwDangerReportVO.setAssignPersonName(sb.toString());
+        }
+
+        StringBuilder patrolNameString = new StringBuilder();
+        StringBuilder patrolPhoneString = new StringBuilder();
+        // 巡查人员id查询巡查人员的名字和电话
+        if (StringUtils.isNotEmpty(comSwDangerReportVO.getPatrolPerson())) {
+            String[] patrolIds = comSwDangerReportVO.getPatrolPerson().split(",");
+            for (int i = 0; i < patrolIds.length; i++) {
+                Map<String, String> leader = comSwPatrolRecordDAO.getPbServiceTeamById(patrolIds[i]);
+                if (leader != null) {
+                    if (i != 0) {
+                        patrolNameString.append(",");
+                        patrolPhoneString.append(",");
+                    }
+                    patrolNameString.append(leader.get("name"));
+                    patrolPhoneString.append(leader.get("phone"));
+                }
+            }
+            comSwDangerReportVO.setPPersonName(patrolNameString.toString());
+            comSwDangerReportVO.setPPersonPhone(patrolPhoneString.toString());
+        }
+        // 整改人员id查询整改人员的名字和电话
+        StringBuilder dangerNameString = new StringBuilder();
+        StringBuilder dangerPhoneString = new StringBuilder();
+        if (StringUtils.isNotEmpty(comSwDangerReportVO.getRectifyPerson())) {
+            String[] dangerIds = comSwDangerReportVO.getRectifyPerson().split(",");
+            for (int i = 0; i < dangerIds.length; i++) {
+                Map<String, String> person = comSwPatrolRecordDAO.getPbServiceTeamById(dangerIds[i]);
+                if (person != null) {
+                    if (i != 0) {
+                        dangerNameString.append(",");
+                        dangerPhoneString.append(",");
+                    }
+                    dangerNameString.append(person.get("name"));
+                    dangerPhoneString.append(person.get("phone"));
+                }
+            }
+            comSwDangerReportVO.setDPersonName(dangerNameString.toString());
+            comSwDangerReportVO.setDPersonPhone(dangerPhoneString.toString());
+        }
+
+        return R.ok(comSwDangerReportVO);
+    }
+
+    @Override
+    public R detailDangerReportByPrId(Long patrolRecordId) {
+        ComSwPatrolRecordDO comSwPatrolRecordDO = comSwPatrolRecordDAO.selectById(patrolRecordId);
+        if (comSwPatrolRecordDO == null) {
+            return R.fail("该隐患报告不存在");
+        }
+        ComSwDangerReportVO comSwDangerReportVO = new ComSwDangerReportVO();
+        ComSwPatrolRecordReportDO comSwPatrolRecordReportDO =
+            comSwPatrolRecordReportDAO.selectOne(new QueryWrapper<ComSwPatrolRecordReportDO>().lambda()
+                .eq(ComSwPatrolRecordReportDO::getPatrolRecordId, patrolRecordId));
+        if (null != comSwPatrolRecordReportDO) {
+            ComSwDangerReportDO comSwDangerReportDO =
+                comSwDangerReportDAO.selectById(comSwPatrolRecordReportDO.getReportId());
+            if (null == comSwDangerReportDO) {
+                return R.fail("该隐患报告不存在");
+            }
+            BeanUtils.copyProperties(comSwDangerReportDO, comSwDangerReportVO);
+        }
+        BeanUtils.copyProperties(comSwPatrolRecordDO, comSwDangerReportVO);
+        StringBuilder patrolNameString = new StringBuilder();
+        StringBuilder patrolPhoneString = new StringBuilder();
+        // 巡查人员id查询巡查人员的名字和电话
+        if (StringUtils.isNotEmpty(comSwDangerReportVO.getPatrolPerson())) {
+            String[] patrolIds = comSwDangerReportVO.getPatrolPerson().split(",");
+            for (int i = 0; i < patrolIds.length; i++) {
+                Map<String, String> leader = comSwPatrolRecordDAO.getPbServiceTeamById(patrolIds[i]);
+                if (leader != null) {
+                    if (i != 0) {
+                        patrolNameString.append(",");
+                        patrolPhoneString.append(",");
+                    }
+                    patrolNameString.append(leader.get("name"));
+                    patrolPhoneString.append(leader.get("phone"));
+                }
+            }
+            comSwDangerReportVO.setPPersonName(patrolNameString.toString());
+            comSwDangerReportVO.setPPersonPhone(patrolPhoneString.toString());
+        }
+        // 整改人员id查询整改人员的名字和电话
+        StringBuilder dangerNameString = new StringBuilder();
+        StringBuilder dangerPhoneString = new StringBuilder();
+        if (StringUtils.isNotEmpty(comSwDangerReportVO.getRectifyPerson())) {
+            String[] dangerIds = comSwDangerReportVO.getRectifyPerson().split(",");
+            for (int i = 0; i < dangerIds.length; i++) {
+                Map<String, String> person = comSwPatrolRecordDAO.getPbServiceTeamById(dangerIds[i]);
+                if (person != null) {
+                    if (i != 0) {
+                        dangerNameString.append(",");
+                        dangerPhoneString.append(",");
+                    }
+                    dangerNameString.append(person.get("name"));
+                    dangerPhoneString.append(person.get("phone"));
+                }
+            }
+            comSwDangerReportVO.setDPersonName(dangerNameString.toString());
+            comSwDangerReportVO.setDPersonPhone(dangerPhoneString.toString());
+        }
+        return R.ok(comSwDangerReportVO);
+    }
+
+    @Override
+    public R handleDangerReport(ComSwDangerReportHandleDTO comSwDangerReportHandleDTO) {
+        ComSwDangerReportDO comSwDangerReportDO =
+            comSwDangerReportDAO.selectById(comSwDangerReportHandleDTO.getDangerReportId());
+        if (null == comSwDangerReportDO) {
+            return R.fail("该隐患报告不存在");
+        }
+        BeanUtils.copyProperties(comSwDangerReportHandleDTO, comSwDangerReportDO);
+        comSwDangerReportDO.setStatus(String.valueOf(SafeWordStatusEnum.YCL.getCode()));
+        ComSwDangerReportDO comSwDangerReportDO1 =
+            comSwDangerReportDAO.selectById(comSwDangerReportHandleDTO.getDangerReportId());
+        if (!comSwDangerReportDO1.getStatus().equals(String.valueOf(SafeWordStatusEnum.DCL.getCode()))) {
+            return R.fail("该隐患报告已处理,请勿重复操作");
+        }
+        int update = comSwDangerReportDAO.updateById(comSwDangerReportDO);
+        if (update > 0) {
+            return R.ok();
+        }
+        return R.fail("处理失败");
+    }
+
+    @Override
+    public R rectifyDangerReport(ComSwDangerReportRectifyDTO comSwDangerReportRectifyDTO) {
+        ComSwDangerReportDO comSwDangerReportDO =
+            comSwDangerReportDAO.selectById(comSwDangerReportRectifyDTO.getDangerReportId());
+        if (null == comSwDangerReportDO) {
+            return R.fail("该隐患报告不存在");
+        }
+        BeanUtils.copyProperties(comSwDangerReportRectifyDTO, comSwDangerReportDO);
+        comSwDangerReportDO.setStatus(String.valueOf(SafeWordStatusEnum.YZG.getCode()));
+        comSwDangerReportDO.setRectifyTime(DateUtils.getCurrentDateStr());
+        ComSwDangerReportDO comSwDangerReportDO1 =
+            comSwDangerReportDAO.selectById(comSwDangerReportRectifyDTO.getDangerReportId());
+        if (comSwDangerReportDO1.getStatus().equals(String.valueOf(SafeWordStatusEnum.YZG.getCode()))) {
+            return R.fail("该隐患报告已整改,请勿重复操作");
+        }
+        int update = comSwDangerReportDAO.updateById(comSwDangerReportDO);
+        if (update > 0) {
+            return R.ok();
+        }
+        return R.fail("整改失败");
+    }
+
+    @Override
+    public R exportDangerReport(List<Long> dangerReportIds) {
+        List<ComSwDangerReportExcelVO> list = comSwDangerReportDAO.exportDangerReport(dangerReportIds);
+         list.forEach(comSwDangerReportExcelVO -> {
+             // 整改人员id查询整改人员的名字和电话
+             StringBuilder dangerNameString = new StringBuilder();
+             StringBuilder dangerPhoneString = new StringBuilder();
+             if (StringUtils.isNotEmpty(comSwDangerReportExcelVO.getDpersonName())) {
+                 String[] dangerIds = comSwDangerReportExcelVO.getDpersonName().split(",");
+                 for (int i = 0; i < dangerIds.length; i++) {
+                     Map<String, String> person = comSwPatrolRecordDAO.getPbServiceTeamById(dangerIds[i]);
+                     if (person != null) {
+                         if (i != 0) {
+                             dangerNameString.append(",");
+                             dangerPhoneString.append(",");
+                         }
+                         dangerNameString.append(person.get("name"));
+                         dangerPhoneString.append(person.get("phone"));
+                     }
+                 }
+                 comSwDangerReportExcelVO.setDpersonName(dangerNameString.toString());
+                 comSwDangerReportExcelVO.setDpersonPhone(dangerPhoneString.toString());
+             }
+         });
+        return R.ok(list);
+    }
+}
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
new file mode 100644
index 0000000..e497c51
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwPatrolRecordServiceImpl.java
@@ -0,0 +1,325 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.text.SimpleDateFormat;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.dtos.community.ComSwPatrolRecordEditDTO;
+import com.panzhihua.service_community.dao.*;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+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.SafeWordStatusEnum;
+import com.panzhihua.common.model.dtos.community.ComSwPatrolRecordAddDTO;
+import com.panzhihua.common.model.dtos.community.ComSwPatrolRecordPageDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComSwPatrolRecordVO;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.model.dos.ComSwDangerReportDO;
+import com.panzhihua.service_community.model.dos.ComSwPatrolRecordDO;
+import com.panzhihua.service_community.model.dos.ComSwPatrolRecordReportDO;
+import com.panzhihua.service_community.model.dos.ComSwSafetyWorkRecordDO;
+import com.panzhihua.service_community.service.ComSwPatrolRecordService;
+
+import lombok.extern.slf4j.Slf4j;
+
+import static java.util.Objects.isNull;
+import static org.apache.commons.lang3.StringUtils.isBlank;
+
+/**
+ * @auther txb
+ * @create 2021-07-23 14:38:38
+ * @describe 社区》安全工作》巡查记录服务实现类
+ */
+@Slf4j
+@Service
+public class ComSwPatrolRecordServiceImpl extends ServiceImpl<ComSwPatrolRecordDAO, ComSwPatrolRecordDO>
+    implements ComSwPatrolRecordService {
+
+    @Resource
+    private ComSwPatrolRecordDAO comSwPatrolRecordDAO;
+
+    @Resource
+    private ComSwSafetyWorkRecordDAO comSwSafetyWorkRecordDAO;
+
+    @Resource
+    private ComSwDangerReportDAO comSwDangerReportDAO;
+
+    @Resource
+    private ComSwPatrolRecordReportDAO comSwPatrolRecordReportDAO;
+
+    @Resource
+    private ComActDAO comActDAO;
+
+    @Override
+    public R pagePatrolRecord(ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO) {
+        // 是否是查询自己的巡查记录
+        if (StringUtils.isNotEmpty(comSwPatrolRecordPageDTO.getPatrolPerson())) {
+            Map<String, Object> map =
+                comSwPatrolRecordDAO.getPbServiceTeamCardNo(comSwPatrolRecordPageDTO.getPatrolPerson());
+            if (map != null) {
+                comSwPatrolRecordPageDTO.setPatrolPerson(map.get("id").toString());
+            }
+        }
+        IPage<ComSwPatrolRecordVO> iPage = comSwPatrolRecordDAO.pagePatrolRecord(
+            new Page(comSwPatrolRecordPageDTO.getPageNum(), comSwPatrolRecordPageDTO.getPageSize()),
+            comSwPatrolRecordPageDTO);
+        if (!iPage.getRecords().isEmpty()) {
+            iPage.getRecords().forEach(patrol -> {
+                ComSwPatrolRecordReportDO recordReportDO =
+                    comSwPatrolRecordReportDAO.selectOne(new QueryWrapper<ComSwPatrolRecordReportDO>().lambda()
+                        .eq(ComSwPatrolRecordReportDO::getPatrolRecordId, patrol.getId()));
+                if (recordReportDO != null) {
+                    patrol.setServiceId(recordReportDO.getReportId());
+                    if (null != comSwDangerReportDAO.selectById(recordReportDO.getReportId())) {
+                        patrol.setDangerOrRecord(1);
+                    } else {
+                        patrol.setDangerOrRecord(2);
+                    }
+                }
+            });
+        }
+        return R.ok(iPage);
+    }
+
+    @Override
+    public R addPatrolRecord(ComSwPatrolRecordAddDTO comSwPatrolRecordAddDTO) {
+        String patrolTypeString = comSwPatrolRecordAddDTO.getPatrolType();
+        Integer isHiddenDanger = comSwPatrolRecordAddDTO.getIsHiddenDanger();
+        String hiddenDangerTypeString = comSwPatrolRecordAddDTO.getHiddenDangerType();
+        if (isBlank(patrolTypeString)) {
+            return R.fail("巡查类型不能为空");
+        }
+        if (isNull(isHiddenDanger) || (isHiddenDanger.intValue() == ComSwPatrolRecordAddDTO.isOk.yes
+                && isBlank(hiddenDangerTypeString))) {
+            return R.fail("隐患类型不能为空");
+        }
+        StringBuilder nameString = new StringBuilder();
+        StringBuilder phoneString = new StringBuilder();
+        // 根据传递的巡查人员id查询巡查人员的名字和电话
+        if (StringUtils.isNotEmpty(comSwPatrolRecordAddDTO.getPatrolPerson())) {
+            String[] personIds = comSwPatrolRecordAddDTO.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"));
+                }
+            }
+        }
+        if (StringUtils.isNotEmpty(comSwPatrolRecordAddDTO.getDangerDescription())) {
+            comSwPatrolRecordAddDTO.setDagerDescription(comSwPatrolRecordAddDTO.getDangerDescription());
+        }
+        if (StringUtils.isNotEmpty(comSwPatrolRecordAddDTO.getDagerName())) {
+            comSwPatrolRecordAddDTO.setDangerName(comSwPatrolRecordAddDTO.getDagerName());
+        }
+        List<String> patrolTypes = Arrays.asList(patrolTypeString.split(","));
+        patrolTypes.forEach(patrolType -> {
+            // 巡查记录
+            ComSwPatrolRecordDO comSwPatrolRecordDO = new ComSwPatrolRecordDO();
+            BeanUtils.copyProperties(comSwPatrolRecordAddDTO, comSwPatrolRecordDO);
+            Long patrolRecordId = Snowflake.getId();
+            comSwPatrolRecordDO.setId(patrolRecordId);
+            comSwPatrolRecordDO.setPatrolType(patrolType);
+            if(StringUtils.isEmpty(comSwPatrolRecordAddDTO.getPatrolTime())){
+                comSwPatrolRecordDO.setPatrolTime(new Date());
+            }else {
+                comSwPatrolRecordDO.setPatrolTime(
+                        DateUtils.stringToDate(comSwPatrolRecordAddDTO.getPatrolTime(), DateUtils.yyyyMMdd_format));
+            }
+//        comSwPatrolRecordDO.setPatrolTime(new Date());
+            comSwPatrolRecordDO.setSuccessionTime(
+                    DateUtils.stringToDate(comSwPatrolRecordAddDTO.getSuccessionTime(), DateUtils.yyyyMMdd_format));
+            comSwPatrolRecordDO.setPersonName(nameString.toString());
+            comSwPatrolRecordDO.setPersonPhone(phoneString.toString());
+            comSwPatrolRecordDAO.insert(comSwPatrolRecordDO);
+            // 巡查记录和关联报告信息
+            ComSwPatrolRecordReportDO comSwPatrolRecordReportDO = new ComSwPatrolRecordReportDO();
+            Long patrolRecordReport = Snowflake.getId();
+            comSwPatrolRecordReportDO.setId(patrolRecordReport);
+            comSwPatrolRecordReportDO.setPatrolRecordId(patrolRecordId);
+
+            if (isHiddenDanger.intValue() == ComSwPatrolRecordAddDTO.isOk.yes && hiddenDangerTypeString.contains(patrolType)) {
+                // 如果存在安全隐患,自动生成安全隐患报告
+                ComSwDangerReportDO comSwDangerReportDO = new ComSwDangerReportDO();
+                Long dangerReportId = Snowflake.getId();
+                comSwDangerReportDO.setId(dangerReportId);
+                comSwPatrolRecordReportDO.setReportId(dangerReportId);
+                comSwDangerReportDO.setDangerType(patrolType);
+                if (comSwPatrolRecordAddDTO.getIsRectifyImmediately().intValue() == ComSwPatrolRecordAddDTO.isOk.yes
+                        && StringUtils.isNotEmpty(comSwPatrolRecordAddDTO.getTakeSteps())) {
+                    comSwDangerReportDO.setStatus(String.valueOf(SafeWordStatusEnum.YZG.getCode()));
+                    comSwDangerReportDO.setRectifyTime(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
+                } else {
+                    comSwDangerReportDO.setStatus(String.valueOf(SafeWordStatusEnum.DCL.getCode()));
+                }
+                BeanUtils.copyProperties(comSwPatrolRecordAddDTO, comSwDangerReportDO);
+                comSwDangerReportDO.setPersonName(comSwPatrolRecordAddDTO.getDPersonName());
+                comSwDangerReportDO.setPersonPhone(comSwPatrolRecordAddDTO.getDPersonPhone());
+                comSwDangerReportDAO.insert(comSwDangerReportDO);
+            } else {
+                // 不存在安全隐患,生成安全工作记录
+                ComSwSafetyWorkRecordDO comSwSafetyWorkRecordDO = new ComSwSafetyWorkRecordDO();
+                BeanUtils.copyProperties(comSwPatrolRecordAddDTO, comSwSafetyWorkRecordDO);
+                Long safetyWorkRecord = Snowflake.getId();
+                comSwSafetyWorkRecordDO.setId(safetyWorkRecord);
+                comSwPatrolRecordReportDO.setReportId(safetyWorkRecord);
+                comSwSafetyWorkRecordDAO.insert(comSwSafetyWorkRecordDO);
+            }
+            comSwPatrolRecordReportDAO.insert(comSwPatrolRecordReportDO);
+        });
+        return R.ok();
+    }
+
+    @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) {
+            return R.fail("该巡查记录不存在");
+        }
+        ComSwPatrolRecordVO comSwPatrolRecordVO = new ComSwPatrolRecordVO();
+        BeanUtils.copyProperties(comSwPatrolRecordDO, comSwPatrolRecordVO);
+        ComSwPatrolRecordReportDO comSwPatrolRecordReportDO =
+            comSwPatrolRecordReportDAO.selectOne(new QueryWrapper<ComSwPatrolRecordReportDO>().lambda()
+                .eq(ComSwPatrolRecordReportDO::getPatrolRecordId, patrolRecordId));
+        if (null != comSwPatrolRecordReportDO) {
+            if (comSwPatrolRecordVO.getIsHiddenDanger().equals(ComSwPatrolRecordVO.isOk.yes)) {
+                ComSwDangerReportDO comSwDangerReportDO=comSwDangerReportDAO.selectById(comSwPatrolRecordReportDO.getReportId());
+                if (null != comSwDangerReportDO) {
+                    comSwPatrolRecordVO.setDisplayButton(3);
+                    comSwPatrolRecordVO.setDagerNo(comSwDangerReportDO.getDangerNo());
+                } else {
+                    comSwPatrolRecordVO.setDisplayButton(2);
+                }
+            } else {
+                if (null != comSwSafetyWorkRecordDAO.selectById(comSwPatrolRecordReportDO.getReportId())) {
+                    comSwPatrolRecordVO.setDisplayButton(1);
+                }
+            }
+        }
+
+        // 组装巡查类型
+        if (StringUtils.isNotEmpty(comSwPatrolRecordVO.getPatrolType())) {
+            StringBuilder sb = new StringBuilder();
+            String[] patrolTypes = comSwPatrolRecordVO.getPatrolType().split(",");
+            for (int i = 0; i < patrolTypes.length; i++) {
+                if (i != 0) {
+                    sb.append(",");
+                }
+                if (patrolTypes[i].equals("1")) {
+                    sb.append("防火巡查");
+                } else if (patrolTypes[i].equals("2")) {
+                    sb.append("防汛巡查");
+                } else if (patrolTypes[i].equals("3")) {
+                    sb.append("防疫巡查");
+                }
+            }
+            comSwPatrolRecordVO.setPatrolType(sb.toString());
+        }
+        // 查询接班人员信息
+        if (StringUtils.isNotEmpty(comSwPatrolRecordVO.getSuccessionPerson())) {
+            StringBuilder sb = new StringBuilder();
+            String[] personIds = comSwPatrolRecordVO.getSuccessionPerson().split(",");
+            for (int i = 0; i < personIds.length; i++) {
+                if (i != 0) {
+                    sb.append(",");
+                }
+                Map<String, String> personMap = comSwPatrolRecordDAO.getPbServiceTeamById(personIds[i]);
+                if (personMap != null) {
+                    sb.append(personMap.get("name"));
+                }
+            }
+            comSwPatrolRecordVO.setSuccessionPerson(sb.toString());
+        }
+
+        // 查询填报人名称
+        if (comSwPatrolRecordVO.getCreateBy() != null) {
+            comSwPatrolRecordVO.setCreateName(comSwPatrolRecordDAO.getCreateName(comSwPatrolRecordVO.getCreateBy()));
+        }
+        // 所属社区名称
+        comSwPatrolRecordVO.setCommunityName(comActDAO.selectById(comSwPatrolRecordVO.getCommunityId()).getName());
+
+        ComSwPatrolRecordReportDO recordReportDO =
+            comSwPatrolRecordReportDAO.selectOne(new QueryWrapper<ComSwPatrolRecordReportDO>().lambda()
+                .eq(ComSwPatrolRecordReportDO::getPatrolRecordId, comSwPatrolRecordVO.getId()));
+        if (recordReportDO != null) {
+            comSwPatrolRecordVO.setServiceId(recordReportDO.getReportId());
+        }
+        return R.ok(comSwPatrolRecordVO);
+    }
+
+    @Override
+    public R patrolRecordStatistics(Long communityId) {
+        return R.ok(this.comSwSafetyWorkRecordDAO.patrolRecordStatistics(communityId));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwRotaServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwRotaServiceImpl.java
new file mode 100644
index 0000000..e043486
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwRotaServiceImpl.java
@@ -0,0 +1,350 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+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.model.dtos.community.ComSwRotaPageDTO;
+import com.panzhihua.common.model.dtos.community.ComSwRotaSaveDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComSwRotaExcelVO;
+import com.panzhihua.common.model.vos.community.ComSwRotaPersonVO;
+import com.panzhihua.common.model.vos.community.ComSwRotaVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.dao.ComSwPatrolRecordDAO;
+import com.panzhihua.service_community.dao.ComSwRotaDAO;
+import com.panzhihua.service_community.model.dos.ComSwRotaDO;
+import com.panzhihua.service_community.service.ComSwRotaService;
+
+import cn.hutool.core.date.DateUtil;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther txb
+ * @create 2021-07-30 09:48:54
+ * @describe 社区》安全工作》值班表服务实现类
+ */
+@Slf4j
+@Service
+public class ComSwRotaServiceImpl extends ServiceImpl<ComSwRotaDAO, ComSwRotaDO> implements ComSwRotaService {
+
+    @Resource
+    private ComSwRotaDAO comSwRotaDAO;
+    @Resource
+    private UserService userService;
+
+    @Resource
+    private ComSwPatrolRecordDAO comSwPatrolRecordDAO;
+
+    @Override
+    public R pageRota(ComSwRotaPageDTO comSwRotaPageDTO) {
+        Page page = new Page<>();
+        Long pageNum = comSwRotaPageDTO.getPageNum();
+        Long pageSize = comSwRotaPageDTO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1L;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10L;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+
+        IPage<ComSwRotaVO> iPage = comSwRotaDAO.pageRota(page, comSwRotaPageDTO);
+        if (null != iPage.getRecords()) {
+            iPage.getRecords().forEach(comSwRotaVO -> {
+                comSwRotaVO.setWeekDay(DateUtils.dateToWeek(comSwRotaVO.getRotaDate()));
+                StringBuilder leaderNameString = new StringBuilder();
+                StringBuilder leaderPhoneString = new StringBuilder();
+                // 值班领导id查询值班领导的名字和电话
+                if (StringUtils.isNotEmpty(comSwRotaVO.getRotaLeader())) {
+                    String[] leaderIds = comSwRotaVO.getRotaLeader().split(",");
+                    for (int i = 0; i < leaderIds.length; i++) {
+                        Map<String, String> leader = comSwPatrolRecordDAO.getPbServiceTeamById(leaderIds[i]);
+                        if (leader != null) {
+                            if (i != 0) {
+                                leaderNameString.append(",");
+                                leaderPhoneString.append(",");
+                            }
+                            leaderNameString.append(leader.get("name"));
+                            leaderPhoneString.append(leader.get("phone"));
+                        }
+                    }
+                    comSwRotaVO.setLeaderName(leaderNameString.toString());
+                    comSwRotaVO.setLeaderPhone(leaderPhoneString.toString());
+                }
+                // 值班人员id查询值班人员的名字和电话
+                StringBuilder personNameString = new StringBuilder();
+                StringBuilder personPhoneString = new StringBuilder();
+                if (StringUtils.isNotEmpty(comSwRotaVO.getRotaPerson())) {
+                    String[] personIds = comSwRotaVO.getRotaPerson().split(",");
+                    for (int i = 0; i < personIds.length; i++) {
+                        Map<String, String> person = comSwPatrolRecordDAO.getPbServiceTeamById(personIds[i]);
+                        if (person != null) {
+                            if (i != 0) {
+                                personNameString.append(",");
+                                personPhoneString.append(",");
+                            }
+                            personNameString.append(person.get("name"));
+                            personPhoneString.append(person.get("phone"));
+                        }
+                    }
+                    comSwRotaVO.setPersonName(personNameString.toString());
+                    comSwRotaVO.setPersonPhone(personPhoneString.toString());
+                }
+            });
+        }
+        return R.ok(iPage);
+    }
+
+    @Override
+    public R detailRota(Long rotaId) {
+        ComSwRotaVO comSwRotaVO = new ComSwRotaVO();
+        ComSwRotaDO comSwRotaDO = comSwRotaDAO.selectById(rotaId);
+        if (null == comSwRotaDO) {
+            return R.fail("该值班表不存在");
+        }
+        BeanUtils.copyProperties(comSwRotaDO, comSwRotaVO);
+        if (null != comSwRotaDO.getRotaDate()) {
+            comSwRotaVO.setRotaDate(new SimpleDateFormat("yyyy-MM-dd").format(comSwRotaDO.getRotaDate()));
+        }
+        comSwRotaVO.setWeekDay(DateUtils.dateToWeek(comSwRotaVO.getRotaDate()));
+        StringBuilder leaderNameString = new StringBuilder();
+        StringBuilder leaderPhoneString = new StringBuilder();
+        // 值班领导id查询值班领导的名字和电话
+        if (StringUtils.isNotEmpty(comSwRotaDO.getRotaLeader())) {
+            String[] leaderIds = comSwRotaDO.getRotaLeader().split(",");
+            for (int i = 0; i < leaderIds.length; i++) {
+                Map<String, String> leader = comSwPatrolRecordDAO.getPbServiceTeamById(leaderIds[i]);
+                if (leader != null) {
+                    if (i != 0) {
+                        leaderNameString.append(",");
+                        leaderPhoneString.append(",");
+                    }
+                    leaderNameString.append(leader.get("name"));
+                    leaderPhoneString.append(leader.get("phone"));
+                }
+            }
+            comSwRotaVO.setLeaderName(leaderNameString.toString());
+            comSwRotaVO.setLeaderPhone(leaderPhoneString.toString());
+        }
+        // 值班人员id查询值班人员的名字和电话
+        StringBuilder personNameString = new StringBuilder();
+        StringBuilder personPhoneString = new StringBuilder();
+        if (StringUtils.isNotEmpty(comSwRotaDO.getRotaPerson())) {
+            String[] personIds = comSwRotaDO.getRotaPerson().split(",");
+            for (int i = 0; i < personIds.length; i++) {
+                Map<String, String> person = comSwPatrolRecordDAO.getPbServiceTeamById(personIds[i]);
+                if (person != null) {
+                    if (i != 0) {
+                        personNameString.append(",");
+                        personPhoneString.append(",");
+                    }
+                    personNameString.append(person.get("name"));
+                    personPhoneString.append(person.get("phone"));
+                }
+            }
+            comSwRotaVO.setPersonName(personNameString.toString());
+            comSwRotaVO.setPersonPhone(personPhoneString.toString());
+        }
+        return R.ok(comSwRotaVO);
+    }
+
+    @Override
+    public R addRota(List<ComSwRotaSaveDTO> comSwRotaSaveDTOs) {
+        for (ComSwRotaSaveDTO comSwRotaSaveDTO : comSwRotaSaveDTOs) {
+            if (comSwRotaSaveDTO.getId() != null && comSwRotaSaveDTO.getId() != 0) {
+                ComSwRotaDO comSwRotaDO = comSwRotaDAO.selectById(comSwRotaSaveDTO.getId());
+                if (null == comSwRotaDO) {
+                    return R.fail("该值班表不存在");
+                }
+                ComSwRotaDO checkCreditCode = comSwRotaDAO.selectOne(new QueryWrapper<ComSwRotaDO>().lambda()
+                    .eq(ComSwRotaDO::getRotaDate, comSwRotaSaveDTO.getRotaDate()).eq(ComSwRotaDO::getCommunityId,comSwRotaSaveDTO.getCommunityId()));
+                if (null != checkCreditCode && !comSwRotaDO.getId().equals(checkCreditCode.getId())) {
+                    return R.fail("该值班表已存在,值班日期重复");
+                }
+                BeanUtils.copyProperties(comSwRotaSaveDTO, comSwRotaDO);
+                try {
+                    comSwRotaDO.setRotaDate(new SimpleDateFormat("yyyy-MM-dd").parse(comSwRotaSaveDTO.getRotaDate()));
+                } catch (ParseException e) {
+                    e.printStackTrace();
+                }
+                comSwRotaDAO.updateById(comSwRotaDO);
+            } else {
+                Integer count = comSwRotaDAO.selectCount(new QueryWrapper<ComSwRotaDO>().lambda()
+                    .eq(ComSwRotaDO::getRotaDate, comSwRotaSaveDTO.getRotaDate()).eq(ComSwRotaDO::getCommunityId,comSwRotaSaveDTO.getCommunityId()));
+                if (count > 0) {
+                    return R.fail("该值班表已存在,值班日期重复");
+                }
+                ComSwRotaDO comSwRotaDO = new ComSwRotaDO();
+                BeanUtils.copyProperties(comSwRotaSaveDTO, comSwRotaDO);
+                comSwRotaDO.setId(Snowflake.getId());
+                try {
+                    comSwRotaDO.setRotaDate(new SimpleDateFormat("yyyy-MM-dd").parse(comSwRotaSaveDTO.getRotaDate()));
+                } catch (ParseException e) {
+                    e.printStackTrace();
+                }
+                comSwRotaDAO.insert(comSwRotaDO);
+            }
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R deleteRota(List<Long> rotaIds) {
+        int delete = comSwRotaDAO.deleteBatchIds(rotaIds);
+        if (delete > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    @Override
+    public R getRotaPersonByDate(String rotaDate,Long communityId) {
+        ComSwRotaDO comSwRotaDO = new ComSwRotaDO();
+        try {
+            comSwRotaDO = comSwRotaDAO.selectOne(new QueryWrapper<ComSwRotaDO>().lambda().eq(ComSwRotaDO::getRotaDate,
+                new SimpleDateFormat("yyyy-MM-dd").parse(rotaDate)).eq(ComSwRotaDO::getCommunityId,communityId));
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        if (comSwRotaDO == null) {
+            return R.fail(rotaDate + "值班表不存在");
+        }
+        List<ComSwRotaPersonVO> rotaPersons = new ArrayList<>();
+        if (null != comSwRotaDO) {
+            String rotaPerson = comSwRotaDO.getRotaPerson();
+            String[] rotaPersonArray = rotaPerson.split(",");
+            for (int i = 0; i <= rotaPersonArray.length - 1; i++) {
+                ComSwRotaPersonVO comSwRotaPersonVO = new ComSwRotaPersonVO();
+                comSwRotaPersonVO.setId(Long.valueOf(rotaPersonArray[i]));
+                Map<String, String> userMap = this.comSwRotaDAO.getImageUrl(Long.valueOf(rotaPersonArray[i]));
+                if (userMap != null) {
+                    comSwRotaPersonVO.setPhone(userMap.get("phone"));
+                    comSwRotaPersonVO.setImageUrl(userMap.get("url"));
+                    comSwRotaPersonVO.setName(userMap.get("name"));
+                }
+                rotaPersons.add(comSwRotaPersonVO);
+            }
+        }
+        return R.ok(rotaPersons);
+    }
+
+    @Override
+    public R getRotaLeaderByDate(String rotaDate,Long communityId) {
+        ComSwRotaDO comSwRotaDO = new ComSwRotaDO();
+        try {
+            comSwRotaDO = comSwRotaDAO.selectOne(new QueryWrapper<ComSwRotaDO>().lambda().eq(ComSwRotaDO::getRotaDate,
+                new SimpleDateFormat("yyyy-MM-dd").parse(rotaDate)).eq(ComSwRotaDO::getCommunityId,communityId));
+        } catch (ParseException e) {
+            e.printStackTrace();
+        }
+        if (comSwRotaDO == null) {
+            return R.fail(rotaDate + "值班表不存在");
+        }
+        List<ComSwRotaPersonVO> rotaLeaders = new ArrayList<>();
+        if (null != comSwRotaDO) {
+            String rotaPerson = comSwRotaDO.getRotaLeader();
+            String[] rotaPersonArray = rotaPerson.split(",");
+            for (int i = 0; i <= rotaPersonArray.length - 1; i++) {
+                ComSwRotaPersonVO comSwRotaPersonVO = new ComSwRotaPersonVO();
+                comSwRotaPersonVO.setId(Long.valueOf(rotaPersonArray[i]));
+                Map<String, String> userMap = this.comSwRotaDAO.getImageUrl(Long.valueOf(rotaPersonArray[i]));
+                if (userMap != null) {
+                    comSwRotaPersonVO.setPhone(userMap.get("phone"));
+                    comSwRotaPersonVO.setImageUrl(userMap.get("url"));
+                    comSwRotaPersonVO.setName(userMap.get("name"));
+                }
+                rotaLeaders.add(comSwRotaPersonVO);
+            }
+        }
+        return R.ok(rotaLeaders);
+    }
+
+    @Override
+    public R getTotlePerson(String param, Long communityId) {
+        return userService.listActivityManager(param, communityId);
+    }
+
+    @Override
+    public R listSaveSwRotaExcelVO(List<ComSwRotaExcelVO> list, Long communityId) {
+        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"};
+        List<ComSwRotaDO> comSwRotaDOS = new ArrayList<>();
+        for (ComSwRotaExcelVO comSwRotaExcelVO : list) {
+            Date date = DateUtil.parse(comSwRotaExcelVO.getRotaDate(), parsePatterns);
+            Integer count =
+                comSwRotaDAO.selectCount(new QueryWrapper<ComSwRotaDO>().lambda().eq(ComSwRotaDO::getRotaDate, date)
+                        .eq(ComSwRotaDO::getCommunityId,communityId));
+            if (count > 0) {
+                return R.fail("值班日期已存在," + comSwRotaExcelVO.getRotaDate() + "重复");
+            }
+            ComSwRotaDO comSwRotaDO = new ComSwRotaDO();
+            String[] leaderPhones = comSwRotaExcelVO.getLeaderPhone().split("、");
+            String[] leaderNames = comSwRotaExcelVO.getLeaderName().split("、");
+            List<String> leaderIds = new ArrayList<>();
+            for (int i = 0; i < leaderPhones.length; i++) {
+                String id = comSwRotaDAO.getTeamIdsByTeamPhone(leaderPhones[i]);
+                if (StringUtils.isEmpty(id)) {
+                    return R.fail(leaderNames[i] + "为非社区团队人员或该人员电话未维护!");
+                }
+                leaderIds.add(id);
+            }
+
+            String[] personPhones = comSwRotaExcelVO.getPersonPhone().split("、");
+            String[] personNames = comSwRotaExcelVO.getPersonName().split("、");
+            List<String> personIds = new ArrayList<>();
+            for (int i = 0; i < personPhones.length; i++) {
+                String id = comSwRotaDAO.getTeamIdsByTeamPhone(personPhones[i]);
+                if (StringUtils.isEmpty(id)) {
+                    return R.fail(personNames[i] + "为非社区团队人员或该人员电话未维护!");
+                }
+                personIds.add(id);
+            }
+            BeanUtils.copyProperties(comSwRotaExcelVO, comSwRotaDO);
+            comSwRotaDO.setId(Snowflake.getId());
+            comSwRotaDO.setCommunityId(communityId);
+            // if (StringUtils.isNotEmpty(comSwRotaExcelVO.getRotaDate())) {
+            // String el =
+            // "(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)
+            // \n" +
+            // "(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)
+            // ";
+            // Pattern p = Pattern.compile(el);
+            // Matcher m = p.matcher(comSwRotaExcelVO.getRotaDate());
+            // if (!m.matches()) {
+            // return R.fail(comSwRotaExcelVO.getRotaDate() + "日期格式不正确");
+            // }
+            // }
+            // try {
+            // SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+            // comSwRotaDO.setRotaDate(sdf.parse(comSwRotaExcelVO.getRotaDate()));
+            // } catch (ParseException e) {
+            // e.printStackTrace();
+            // }
+            comSwRotaDO.setRotaDate(date);
+            comSwRotaDO.setRotaLeader(StringUtils.join(leaderIds, ","));
+            comSwRotaDO.setRotaPerson(StringUtils.join(personIds, ","));
+            comSwRotaDO.setLeaderName(comSwRotaExcelVO.getLeaderName().replace("、", ","));
+            comSwRotaDO.setPersonName(comSwRotaExcelVO.getPersonName().replace("、", ","));
+            comSwRotaDOS.add(comSwRotaDO);
+        }
+        this.saveBatch(comSwRotaDOS);
+        return R.ok();
+    }
+}
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
new file mode 100644
index 0000000..03784df
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComSwSafetyWorkRecordServiceImpl.java
@@ -0,0 +1,228 @@
+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 com.panzhihua.service_community.model.dos.ComActDO;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+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.model.dtos.community.ComSwPatrolRecordPageDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComSwSafetyWorkRecordVO;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.dao.ComActDAO;
+import com.panzhihua.service_community.dao.ComSwPatrolRecordDAO;
+import com.panzhihua.service_community.dao.ComSwPatrolRecordReportDAO;
+import com.panzhihua.service_community.dao.ComSwSafetyWorkRecordDAO;
+import com.panzhihua.service_community.model.dos.ComSwPatrolRecordDO;
+import com.panzhihua.service_community.model.dos.ComSwPatrolRecordReportDO;
+import com.panzhihua.service_community.model.dos.ComSwSafetyWorkRecordDO;
+import com.panzhihua.service_community.service.ComSwSafetyWorkRecordService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther txb
+ * @create 2021-07-27 14:30:41
+ * @describe 服务实现类
+ */
+@Slf4j
+@Service
+public class ComSwSafetyWorkRecordServiceImpl extends ServiceImpl<ComSwSafetyWorkRecordDAO, ComSwSafetyWorkRecordDO>
+    implements ComSwSafetyWorkRecordService {
+
+    @Resource
+    private ComSwSafetyWorkRecordDAO comSwSafetyWorkRecordDAO;
+
+    @Resource
+    private ComSwPatrolRecordDAO comSwPatrolRecordDAO;
+
+    @Resource
+    private ComSwPatrolRecordReportDAO comSwPatrolRecordReportDAO;
+
+    @Resource
+    private ComActDAO comActDAO;
+
+    @Override
+    public R pageSafetyWorkRecord(ComSwPatrolRecordPageDTO comSwPatrolRecordPageDTO) {
+        Page page = new Page<>();
+        Long pageNum = comSwPatrolRecordPageDTO.getPageNum();
+        Long pageSize = comSwPatrolRecordPageDTO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1L;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10L;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+
+        IPage<ComSwSafetyWorkRecordVO> iPage =
+            comSwSafetyWorkRecordDAO.pageSafetyWorkRecord(page, comSwPatrolRecordPageDTO);
+        if (!iPage.getRecords().isEmpty()) {
+            iPage.getRecords().forEach(work -> {
+                // 查询人员信息
+                if (StringUtils.isNotEmpty(work.getPatrolPerson())) {
+                    StringBuilder sb = new StringBuilder();
+                    String[] personIds = work.getPatrolPerson().split(",");
+                    for (int i = 0; i < personIds.length; i++) {
+                        if (i != 0) {
+                            sb.append(",");
+                        }
+                        Map<String, String> personMap = comSwPatrolRecordDAO.getPbServiceTeamById(personIds[i]);
+                        if (personMap != null) {
+                            sb.append(personMap.get("name"));
+                        }
+                    }
+                    work.setPersonName(sb.toString());
+                }
+            });
+        }
+        return R.ok(iPage);
+    }
+
+    @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) {
+            return R.fail("该安全工作记录不存在");
+        }
+        ComSwPatrolRecordReportDO comSwPatrolRecordReportDO =
+            comSwPatrolRecordReportDAO.selectOne(new QueryWrapper<ComSwPatrolRecordReportDO>().lambda()
+                .eq(ComSwPatrolRecordReportDO::getReportId, safetyWorkRecordId));
+        ComSwSafetyWorkRecordVO comSwSafetyWorkRecordVO = new ComSwSafetyWorkRecordVO();
+        if (null != comSwPatrolRecordReportDO) {
+            ComSwPatrolRecordDO comSwPatrolRecordDO =
+                comSwPatrolRecordDAO.selectById(comSwPatrolRecordReportDO.getPatrolRecordId());
+            BeanUtils.copyProperties(comSwPatrolRecordDO, comSwSafetyWorkRecordVO);
+        }
+
+        BeanUtils.copyProperties(swSafetyWorkRecordDO, comSwSafetyWorkRecordVO);
+
+        // 组装巡查类型
+        if (StringUtils.isNotEmpty(comSwSafetyWorkRecordVO.getPatrolType())) {
+            StringBuilder sb = new StringBuilder();
+            String[] patrolTypes = comSwSafetyWorkRecordVO.getPatrolType().split(",");
+            for (int i = 0; i < patrolTypes.length; i++) {
+                if (i != 0) {
+                    sb.append(",");
+                }
+                if (patrolTypes[i].equals("1")) {
+                    sb.append("防火巡查");
+                } else if (patrolTypes[i].equals("2")) {
+                    sb.append("防汛巡查");
+                } else if (patrolTypes[i].equals("3")) {
+                    sb.append("防疫巡查");
+                }
+            }
+            comSwSafetyWorkRecordVO.setPatrolType(sb.toString());
+        }
+
+        // 查询人员信息
+        if (StringUtils.isNotEmpty(comSwSafetyWorkRecordVO.getPatrolPerson())) {
+            StringBuilder sb = new StringBuilder();
+            String[] personIds = comSwSafetyWorkRecordVO.getPatrolPerson().split(",");
+            for (int i = 0; i < personIds.length; i++) {
+                if (i != 0) {
+                    sb.append(",");
+                }
+                Map<String, String> personMap = comSwPatrolRecordDAO.getPbServiceTeamById(personIds[i]);
+                if (personMap != null) {
+                    sb.append(personMap.get("name"));
+                }
+            }
+            comSwSafetyWorkRecordVO.setPersonName(sb.toString());
+        }
+
+        // 查询填报人名称
+        if (comSwSafetyWorkRecordVO.getCreateBy() != null) {
+            comSwSafetyWorkRecordVO
+                .setCreateName(comSwPatrolRecordDAO.getCreateName(comSwSafetyWorkRecordVO.getCreateBy()));
+        }
+
+        // 所属社区名称
+        ComActDO comActDO=comActDAO.selectById(comSwSafetyWorkRecordVO.getCommunityId());
+        if(comActDO!=null&&StringUtils.isNotEmpty(comActDO.getName())){
+            comSwSafetyWorkRecordVO.setCommunityName(comActDO.getName());
+        }
+
+        return R.ok(comSwSafetyWorkRecordVO);
+    }
+
+    @Override
+    public R detailSafetyWorkRecordByPrId(Long patrolRecordId, Long communityId) {
+        ComSwSafetyWorkRecordVO comSwSafetyWorkRecordVO = new ComSwSafetyWorkRecordVO();
+        ComSwPatrolRecordDO comSwPatrolRecordDO = comSwPatrolRecordDAO.selectById(patrolRecordId);
+        ComSwPatrolRecordReportDO comSwPatrolRecordReportDO =
+            comSwPatrolRecordReportDAO.selectOne(new QueryWrapper<ComSwPatrolRecordReportDO>().lambda()
+                .eq(ComSwPatrolRecordReportDO::getPatrolRecordId, patrolRecordId));
+        if (null != comSwPatrolRecordReportDO) {
+            ComSwSafetyWorkRecordDO comSwSafetyWorkRecordDO =
+                comSwSafetyWorkRecordDAO.selectById(comSwPatrolRecordReportDO.getReportId());
+            if (null == comSwSafetyWorkRecordDO) {
+                return R.fail("该安全工作记录不存在");
+            }
+            BeanUtils.copyProperties(comSwPatrolRecordDO, comSwSafetyWorkRecordVO);
+            BeanUtils.copyProperties(comSwSafetyWorkRecordDO, comSwSafetyWorkRecordVO);
+        }
+        // 所属社区名称
+        comSwSafetyWorkRecordVO.setCommunityName(comActDAO.selectById(communityId).getName());
+        return R.ok(comSwSafetyWorkRecordVO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComVeteransPopulationServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComVeteransPopulationServiceImpl.java
new file mode 100644
index 0000000..d2ab07d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComVeteransPopulationServiceImpl.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.ComVeteransPopulationDAO;
+import com.panzhihua.service_community.model.dos.ComVeteransPopulationDO;
+import com.panzhihua.service_community.service.ComVeteransPopulationService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther txb
+ * @create 2021-08-09 19:56:46
+ * @describe 实有人口导入》退役军人表服务实现类
+ */
+@Slf4j
+@Service
+public class ComVeteransPopulationServiceImpl extends ServiceImpl<ComVeteransPopulationDAO, ComVeteransPopulationDO>
+    implements ComVeteransPopulationService {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/CommediateTypeServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/CommediateTypeServiceImpl.java
new file mode 100644
index 0000000..0ffdf8d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/CommediateTypeServiceImpl.java
@@ -0,0 +1,82 @@
+package com.panzhihua.service_community.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+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.model.dtos.community.sanshuo.ComMediateTypeDTO;
+import com.panzhihua.common.model.dtos.community.sanshuo.IndexDateDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.service_community.dao.ComEventMapper;
+import com.panzhihua.service_community.dao.ComMediateTypeDao;
+import com.panzhihua.service_community.entity.ComMediateType;
+import com.panzhihua.service_community.service.CommediateTypeService;
+import org.apache.commons.lang3.ObjectUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+import java.util.Date;
+import java.util.List;
+
+import static java.util.Objects.nonNull;
+
+@Service
+public class CommediateTypeServiceImpl extends ServiceImpl<ComMediateTypeDao, ComMediateType> implements CommediateTypeService {
+
+    @Resource
+    private ComMediateTypeDao comMediateTypeDao;
+    @Resource
+    private ComEventMapper comEventMapper;
+
+    /**
+     * 后台获取事件列表
+     * @param keyWord
+     * @param page
+     * @param size
+     * @return 处理结果
+     * */
+    @Override
+    public R listEvent(String keyWord, Integer page, Integer size,String appId) {
+        IPage<ComMediateType> comMediateTypeIPage = comMediateTypeDao.eventList(new Page(page, size), keyWord);
+        List<ComMediateType> records = comMediateTypeIPage.getRecords();
+        for (ComMediateType record : records) {
+            //查询事件数量
+            if (nonNull(record) && nonNull(record.getId())){
+                record.setEventCount(comMediateTypeDao.selectEventCount(record.getId(),appId));
+            }
+        }
+        comMediateTypeIPage.setRecords(records);
+        return R.ok(comMediateTypeIPage);
+    }
+
+    /**
+     * 新增事件类型
+     * @param comMediateTypeDTO
+     * @return 处理结果
+     * */
+    @Override
+    public R addOrUpdate(ComMediateTypeDTO comMediateTypeDTO) {
+        ComMediateType name = comMediateTypeDao.selectOne(new QueryWrapper<ComMediateType>().eq("name", comMediateTypeDTO.getName()));
+        ComMediateType mediateType=new ComMediateType();
+        if (nonNull(comMediateTypeDTO.getId())){
+            //修改
+            BeanUtil.copyProperties(comMediateTypeDTO,mediateType);
+            return R.ok(comMediateTypeDao.updateById(mediateType));
+        }
+        //新增
+        if (nonNull(name)){
+            return R.fail("事件已存在");
+        }
+        BeanUtil.copyProperties(comMediateTypeDTO,mediateType);
+        mediateType.setId(Snowflake.getId());
+        mediateType.setCreateDate(new Date());
+        mediateType.setEnabled(true);
+        mediateType.setDeleteFlag(false);
+        return R.ok(comMediateTypeDao.insert(mediateType));
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientElevatingPointServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientElevatingPointServiceImpl.java
new file mode 100644
index 0000000..8a090d5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientElevatingPointServiceImpl.java
@@ -0,0 +1,193 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.model.dtos.community.convenient.ConvenientElevatingPointDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PageConvenientElevatingPointDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientElevatingPointVO;
+import com.panzhihua.service_community.dao.ComActDAO;
+import com.panzhihua.service_community.dao.ConvenientElevatingPointDAO;
+import com.panzhihua.service_community.dao.ConvenientMerchantDAO;
+import com.panzhihua.service_community.model.dos.ComActDO;
+import com.panzhihua.service_community.model.dos.ConvenientElevatingPointDO;
+import com.panzhihua.service_community.model.dos.ConvenientMerchantDO;
+import com.panzhihua.service_community.service.ConvenientElevatingPointService;
+import com.panzhihua.service_community.util.MapDistance;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.*;
+
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+
+/**
+ * @ClassName: ConvenientElevatingPointServiceImpl
+ * @Author: yh
+ * @Date: 2022/11/8 10:34
+ * @Description: 自提点
+ */
+@Service
+@Slf4j
+public class ConvenientElevatingPointServiceImpl extends ServiceImpl<ConvenientElevatingPointDAO, ConvenientElevatingPointDO> implements ConvenientElevatingPointService {
+    @Resource
+    private ComActDAO comActDAO;
+    @Resource
+    private ConvenientMerchantDAO convenientMerchantDAO;
+
+    /**
+     * 分页查询
+     *
+     * @param pageConvenientElevatingPointDTO
+     * @return
+     */
+    @Override
+    public R pagePoint(PageConvenientElevatingPointDTO pageConvenientElevatingPointDTO) {
+        Page page = new Page<>();
+        page.setSize(pageConvenientElevatingPointDTO.getPageSize());
+        page.setCurrent(pageConvenientElevatingPointDTO.getPageNum());
+        IPage<ConvenientElevatingPointVO> iPage = this.baseMapper.page(page, pageConvenientElevatingPointDTO);
+        return R.ok(iPage);
+    }
+
+    /**
+     * 新增
+     *
+     * @param convenientElevatingPointDTO
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R addPoint(ConvenientElevatingPointDTO convenientElevatingPointDTO) {
+        ConvenientElevatingPointDO convenientElevatingPointDODB = this.baseMapper.selectOne(new LambdaQueryWrapper<ConvenientElevatingPointDO>().eq(ConvenientElevatingPointDO::getWechatAccount, convenientElevatingPointDTO.getWechatAccount()));
+        if (!Objects.isNull(convenientElevatingPointDODB)){
+            return  R.fail("该微信手机号已使用,请更换");
+        }
+        ConvenientElevatingPointDO convenientElevatingPointDO = new ConvenientElevatingPointDO();
+        BeanUtils.copyProperties(convenientElevatingPointDTO, convenientElevatingPointDO);
+        String communityId = convenientElevatingPointDTO.getCommunityId();
+        if (nonNull(communityId)) {
+            ComActDO comActDO = comActDAO.selectById(Long.parseLong(communityId.substring(communityId.lastIndexOf(",") + 1)));
+            if (comActDO != null) {
+                convenientElevatingPointDO.setCommunityName(comActDO.getName());
+            }
+        }
+        this.baseMapper.insert(convenientElevatingPointDO);
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     *
+     * @param convenientElevatingPointDTO
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R putPoint(ConvenientElevatingPointDTO convenientElevatingPointDTO) {
+        ConvenientElevatingPointDO convenientElevatingPointDODB = this.baseMapper.selectOne(new LambdaQueryWrapper<ConvenientElevatingPointDO>().eq(ConvenientElevatingPointDO::getWechatAccount, convenientElevatingPointDTO.getWechatAccount()));
+
+        Long id = convenientElevatingPointDTO.getId();
+        ConvenientElevatingPointDO convenientElevatingPointDO = this.baseMapper.selectById(id);
+        if (isNull(convenientElevatingPointDO)) {
+            return R.fail("自提点不存在");
+        }
+        if (nonNull(convenientElevatingPointDODB) && !convenientElevatingPointDODB.getId().equals(convenientElevatingPointDO.getId())) {
+            R.fail("该微信手机号:" + convenientElevatingPointDTO.getWechatAccount() + "已被使用!请更换");
+        }
+        String communityId = convenientElevatingPointDTO.getCommunityId();
+        if (nonNull(communityId)) {
+            ComActDO comActDO = comActDAO.selectById(Long.parseLong(communityId.substring(communityId.lastIndexOf(",") + 1)));
+            if (comActDO != null) {
+                convenientElevatingPointDO.setCommunityName(comActDO.getName());
+            }
+        }
+        BeanUtils.copyProperties(convenientElevatingPointDTO, convenientElevatingPointDO);
+        this.baseMapper.updateById(convenientElevatingPointDO);
+        return R.ok();
+    }
+
+
+    @Override
+    public R deletePoint(Long pointId, Long operator) {
+        ConvenientElevatingPointDO convenientElevatingPointDO = this.baseMapper.selectById(pointId);
+        if (convenientElevatingPointDO.getPrepareGoodsNum() > 0) {
+            return R.fail("该提货点暂时无法删除!若想删除需保证待提货数量为0");
+        }
+        int result = this.baseMapper.deletePointById(pointId, operator);
+        if (result > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    @Override
+    public R detailPoint(Long pointId) {
+        ConvenientElevatingPointDO convenientElevatingPointDO = this.baseMapper.selectById(pointId);
+        ConvenientElevatingPointVO convenientElevatingPointVO = new ConvenientElevatingPointVO();
+        BeanUtils.copyProperties(convenientElevatingPointDO,convenientElevatingPointVO);
+        return R.ok(convenientElevatingPointVO);
+    }
+
+    public R findPointByMerchantId(Long merchantId, String lat, String lng) {
+        ConvenientMerchantDO convenientMerchantDO = convenientMerchantDAO.selectById(merchantId);
+        //服务最远距离 km
+        Integer serviceRange = convenientMerchantDO.getServiceRange();
+
+        Map<Object, Object> around = MapDistance.getAround(convenientMerchantDO.getLat(), convenientMerchantDO.getLon(), serviceRange * 1000d);
+        String maxLat = around.get("maxLat").toString();
+        String minLat = around.get("minLat").toString();
+        String minLng = around.get("minLng").toString();
+        String maxLng = around.get("maxLng").toString();
+        List<ConvenientElevatingPointDO> convenientElevatingPointDOS = this.baseMapper.selectList(
+                new LambdaQueryWrapper<ConvenientElevatingPointDO>()
+                        .ge(ConvenientElevatingPointDO::getLat, Double.parseDouble(minLng))
+                        .le(ConvenientElevatingPointDO::getLat, Double.parseDouble(maxLng))
+                        .ge(ConvenientElevatingPointDO::getLon, Double.parseDouble(minLat))
+                        .le(ConvenientElevatingPointDO::getLon, Double.parseDouble(maxLat))
+                        .eq(ConvenientElevatingPointDO::getBusinessStatus,1));
+        List<ConvenientElevatingPointVO> convenientElevatingPointVOS = new ArrayList<>();
+        convenientElevatingPointDOS.forEach(f -> {
+            ConvenientElevatingPointVO convenientElevatingPointVO = new ConvenientElevatingPointVO();
+            BeanUtils.copyProperties(f, convenientElevatingPointVO);
+            Double distance = MapDistance.distanceOfTwoPoints(lat, lng, f.getLon(), f.getLat());
+            convenientElevatingPointVO.setDistance(distance);
+            convenientElevatingPointVOS.add(convenientElevatingPointVO);
+        });
+        Collections.sort(convenientElevatingPointVOS);
+        return R.ok(convenientElevatingPointVOS);
+
+    }
+
+    @Override
+    public R findPointNumByDistance(Integer distance, String lat, String lng) {
+        Map<Object, Object> around = MapDistance.getAround(lat, lng, distance * 1000d);
+        String maxLat = around.get("maxLat").toString();
+        String minLat = around.get("minLat").toString();
+        String minLng = around.get("minLng").toString();
+        String maxLng = around.get("maxLng").toString();
+        List<ConvenientElevatingPointDO> convenientElevatingPointDOS = this.baseMapper.selectList(
+                new LambdaQueryWrapper<ConvenientElevatingPointDO>()
+                        .ge(ConvenientElevatingPointDO::getLat, Double.parseDouble(minLng))
+                        .le(ConvenientElevatingPointDO::getLat, Double.parseDouble(maxLng))
+                        .ge(ConvenientElevatingPointDO::getLon, Double.parseDouble(minLat))
+                        .le(ConvenientElevatingPointDO::getLon, Double.parseDouble(maxLat))
+                        .eq(ConvenientElevatingPointDO::getBusinessStatus,1));
+        List<ConvenientElevatingPointVO> convenientElevatingPointVOS = new ArrayList<>();
+        convenientElevatingPointDOS.forEach(f -> {
+            ConvenientElevatingPointVO convenientElevatingPointVO = new ConvenientElevatingPointVO();
+            BeanUtils.copyProperties(f, convenientElevatingPointVO);
+            Double distancem = MapDistance.distanceOfTwoPoints(lat, lng, f.getLon(), f.getLat());
+            convenientElevatingPointVO.setDistance(distancem);
+            convenientElevatingPointVOS.add(convenientElevatingPointVO);
+        });
+        Collections.sort(convenientElevatingPointVOS);
+        return R.ok(convenientElevatingPointVOS.size());
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientGoodsCategoryServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientGoodsCategoryServiceImpl.java
new file mode 100644
index 0000000..99bdab2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientGoodsCategoryServiceImpl.java
@@ -0,0 +1,127 @@
+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.model.dtos.community.convenient.ConvenientGoodsCategoryDTO;
+import com.panzhihua.common.model.dtos.community.convenient.ConvenientServiceCategoryDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PageConvenientGoodsCategoryDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PageConvenientServiceCategoryDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientGoodsCategoryVO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientServiceCategoryVO;
+import com.panzhihua.service_community.dao.ConvenientGoodsCategoryDAO;
+import com.panzhihua.service_community.dao.ConvenientServiceCategoryDAO;
+import com.panzhihua.service_community.model.dos.ConvenientGoodsCategoryDO;
+import com.panzhihua.service_community.model.dos.ConvenientServiceCategoryDO;
+import com.panzhihua.service_community.service.ConvenientGoodsCategoryService;
+import com.panzhihua.service_community.service.ConvenientServiceCategoryService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import static java.util.Objects.isNull;
+
+/**
+ * @title: ConvenientGoodsCategoryServiceImpl
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 商品分类服务实现类
+ * @author: yh
+ * @date: 2022-10-21 09:36:09
+ */
+@Service
+public class ConvenientGoodsCategoryServiceImpl extends ServiceImpl<ConvenientGoodsCategoryDAO, ConvenientGoodsCategoryDO>
+        implements ConvenientGoodsCategoryService {
+
+    @Override
+    public R addGoodsCategory(ConvenientGoodsCategoryDTO convenientGoodsCategoryDTO) {
+        ConvenientGoodsCategoryDO convenientGoodsCategoryDO = new ConvenientGoodsCategoryDO();
+        BeanUtils.copyProperties(convenientGoodsCategoryDTO, convenientGoodsCategoryDO);
+        convenientGoodsCategoryDO.setCreatedAt(new Date());
+        int result = this.baseMapper.insert(convenientGoodsCategoryDO);
+        if (result > 0) {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R putGoodsCategory(ConvenientGoodsCategoryDTO convenientGoodsCategoryDTO) {
+        ConvenientGoodsCategoryDO convenientGoodsCategoryDO = this.baseMapper.selectById(convenientGoodsCategoryDTO.getId());
+        if (isNull(convenientGoodsCategoryDO)) {
+            return R.fail("分类id不存在");
+        }
+        BeanUtils.copyProperties(convenientGoodsCategoryDTO, convenientGoodsCategoryDO);
+        int result = this.baseMapper.updateById(convenientGoodsCategoryDO);
+        if (result > 0) {
+            return R.ok();
+        }
+        return R.fail("更新失败");
+    }
+
+    @Override
+    public R deleteGoodsCategoryById(Long categoryId, Long operator) {
+        if (isNull(categoryId)) {
+            return R.fail("分类id不能为空");
+        }
+        ConvenientGoodsCategoryDO convenientGoodsCategoryDO = this.baseMapper.selectById(categoryId);
+        if (isNull(convenientGoodsCategoryDO)) {
+            return R.fail("分类id不存在");
+        }
+        int count = this.baseMapper.checkCategoryIsUsing(categoryId);
+        if (count > 0) {
+            return R.fail("该分类名称已被引用,无法删除!");
+        }
+        convenientGoodsCategoryDO.setIsDel(true);
+        convenientGoodsCategoryDO.setUpdatedBy(operator);
+        int result = this.baseMapper.updateById(convenientGoodsCategoryDO);
+        if (result > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    @Override
+    public R getGoodsCategoryById(Long goodsId) {
+        if (isNull(goodsId)) {
+            return R.fail("分类id不能为空");
+        }
+        ConvenientGoodsCategoryDO convenientGoodsCategoryDO = this.baseMapper.selectById(goodsId);
+        if (isNull(convenientGoodsCategoryDO)) {
+            return R.fail("分类id不存在");
+        }
+        ConvenientGoodsCategoryVO convenientGoodsCategoryVO = new ConvenientGoodsCategoryVO();
+        BeanUtils.copyProperties(convenientGoodsCategoryDO, convenientGoodsCategoryVO);
+        return R.ok(convenientGoodsCategoryVO);
+    }
+
+    @Override
+    public R pageGoodsCategory(PageConvenientGoodsCategoryDTO pageConvenientGoodsCategoryDTO) {
+        Page page = new Page<>();
+        page.setSize(pageConvenientGoodsCategoryDTO.getPageSize());
+        page.setCurrent(pageConvenientGoodsCategoryDTO.getPageNum());
+        IPage<ConvenientGoodsCategoryVO> iPage = this.baseMapper.pageGoodsCategory(page, pageConvenientGoodsCategoryDTO);
+        return R.ok(iPage);
+    }
+
+    @Override
+    public R getAllGoodsCategories() {
+        List<ConvenientGoodsCategoryVO> categoryVOList = new ArrayList<>();
+        List<ConvenientGoodsCategoryDO> categoryDOS = this.baseMapper.selectList(new QueryWrapper<ConvenientGoodsCategoryDO>()
+                .lambda().eq(ConvenientGoodsCategoryDO::getIsDel,0).orderByDesc(ConvenientGoodsCategoryDO::getWeight));
+        if (!ObjectUtils.isEmpty(categoryDOS)) {
+            categoryDOS.forEach(categoryDO -> {
+                ConvenientGoodsCategoryVO categoryVO = new ConvenientGoodsCategoryVO();
+                BeanUtils.copyProperties(categoryDO, categoryVO);
+                categoryVOList.add(categoryVO);
+            });
+        }
+        return R.ok(categoryVOList);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientMerchantServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientMerchantServiceImpl.java
new file mode 100644
index 0000000..9110be3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientMerchantServiceImpl.java
@@ -0,0 +1,513 @@
+package com.panzhihua.service_community.service.impl;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.NumberUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.dtos.community.convenient.*;
+import com.panzhihua.common.model.dtos.grid.EventGridMemberPassResetDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.convenient.*;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.service_community.dao.*;
+import com.panzhihua.service_community.model.dos.*;
+import com.panzhihua.service_community.service.ConvenientMerchantService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+import static org.apache.commons.lang3.StringUtils.isNotBlank;
+
+/**
+ * @title: ConvenientMerchantServiceImpl
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务商家服务实现类
+ * @author: hans
+ * @date: 2021/09/16 16:14
+ */
+@Service
+@Slf4j
+public class ConvenientMerchantServiceImpl extends ServiceImpl<ConvenientMerchantDAO, ConvenientMerchantDO>
+        implements ConvenientMerchantService {
+
+    @Resource
+    private UserService userService;
+    @Resource
+    private ConvenientServiceCategoryDAO convenientServiceCategoryDAO;
+    @Resource
+    private ComActDAO comActDAO;
+    @Resource
+    private ConvenientProductDAO convenientProductDAO;
+    @Resource
+    private ConvenientConsultationStatisticsDAO convenientConsultationStatisticsDAO;
+    @Resource
+    private ConvenientViewStatisticsDAO convenientViewStatisticsDAO;
+    @Resource
+    private ComShopFlowerEvaluateDAO comShopFlowerEvaluateDAO;
+
+    private static final String DQ = "510402";
+    private static final String RHQ = "510411";
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R addMerchant(ConvenientMerchantDTO convenientMerchantDTO) {
+        //校验微信手机号是否已使用
+        String mobilePhone = convenientMerchantDTO.getMobilePhone();
+        Integer count = this.baseMapper.selectCount(new LambdaQueryWrapper<ConvenientMerchantDO>().eq(ConvenientMerchantDO::getMobilePhone, mobilePhone));
+        if (count > 0) {
+            R.fail("该微信手机号:" + mobilePhone + "已被使用!请更换");
+        }
+        ConvenientMerchantDO convenientMerchantDO = new ConvenientMerchantDO();
+        BeanUtils.copyProperties(convenientMerchantDTO, convenientMerchantDO);
+        if (convenientMerchantDTO.getCommunityId() == 0) {
+            if (DQ.equals(convenientMerchantDTO.getAreaCode())) {
+                convenientMerchantDO.setCommunityName("东区社区");
+            } else if (RHQ.equals(convenientMerchantDTO.getAreaCode())) {
+                convenientMerchantDO.setCommunityName("仁和区社区");
+            } else {
+                convenientMerchantDO.setCommunityName("西区社区");
+            }
+        } else {
+            ComActDO comActDO = comActDAO.selectById(convenientMerchantDTO.getCommunityId());
+            convenientMerchantDO.setCommunityName(comActDO.getName());
+        }
+        convenientMerchantDO.setUserId(0L);
+        convenientMerchantDO.setCreatedAt(new Date());
+        int insertResult = this.baseMapper.insert(convenientMerchantDO);
+        if (insertResult > 0) {
+            Long merchantId = convenientMerchantDO.getId();
+            if (nonNull(merchantId)) {
+                //添加服务
+                List<Long> serviceIds = convenientMerchantDTO.getServiceIds();
+                serviceIds.forEach(serviceId -> {
+                    ConvenientServiceCategoryDO convenientServiceCategoryDO = convenientServiceCategoryDAO.selectById(serviceId);
+                    convenientServiceCategoryDAO.createMerchantServiceRelation(Snowflake.getId(), merchantId, serviceId,
+                            convenientServiceCategoryDO.getName(), convenientMerchantDTO.getCreatedBy());
+                });
+            }
+        }
+        //添加user
+        R addUserResult = userService.addConvenientMerchantUser(convenientMerchantDTO);
+        if (R.isOk(addUserResult)) {
+            Long merchantUserId = Long.parseLong(addUserResult.getData().toString());
+            convenientMerchantDO.setUserId(merchantUserId);
+            this.baseMapper.updateById(convenientMerchantDO);
+        } else {
+            throw new ServiceException("406", addUserResult.getMsg());
+        }
+        return R.ok();
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R putMerchant(ConvenientMerchantDTO convenientMerchantDTO) {
+        Long merchantId = convenientMerchantDTO.getId();
+        String mobilePhone = convenientMerchantDTO.getMobilePhone();
+        ConvenientMerchantDO merchantDO = this.baseMapper.selectOne(new LambdaQueryWrapper<ConvenientMerchantDO>().eq(ConvenientMerchantDO::getMobilePhone, mobilePhone));
+        ConvenientMerchantDO convenientMerchantDO = this.baseMapper.selectById(merchantId);
+        if (isNull(convenientMerchantDO)) {
+            return R.fail("商家不存在");
+        }
+        Long createBy = convenientMerchantDO.getCreatedBy();
+        BeanUtils.copyProperties(convenientMerchantDTO, convenientMerchantDO);
+        if (nonNull(merchantDO) && !merchantDO.getId().equals(convenientMerchantDO.getId())) {
+            R.fail("该微信手机号:" + mobilePhone + "已被使用!请更换");
+        }
+        Long communityId = convenientMerchantDTO.getCommunityId();
+        if (nonNull(communityId)) {
+            ComActDO comActDO = comActDAO.selectById(communityId);
+            if (comActDO != null) {
+                convenientMerchantDO.setCommunityName(comActDO.getName());
+            } else {
+                convenientMerchantDO.setCommunityName("西区社区");
+            }
+        }
+        String account = convenientMerchantDTO.getAccount();
+        if (isNotBlank(account)) {
+            //修改商家绑定账户号
+            R putAccountResult = userService.putUserAccount(convenientMerchantDO.getUserId(), account);
+            if (!R.isOk(putAccountResult)) {
+                return putAccountResult;
+            }
+        }
+        List<Long> serviceIds = convenientMerchantDTO.getServiceIds();
+        if (!serviceIds.isEmpty()) {
+            convenientServiceCategoryDAO.deleteMerchantServiceRelation(merchantId);
+            serviceIds.forEach(serviceId -> {
+                ConvenientServiceCategoryDO convenientServiceCategoryDO = convenientServiceCategoryDAO.selectById(serviceId);
+                convenientServiceCategoryDAO.createMerchantServiceRelation(Snowflake.getId(), merchantId, serviceId,
+                        convenientServiceCategoryDO.getName(), createBy);
+            });
+        }
+
+        convenientMerchantDO.setIntroduction(convenientMerchantDTO.getIntroduction());
+        this.baseMapper.updateById(convenientMerchantDO);
+        return R.ok();
+    }
+
+    @Override
+    public R deleteMerchant(Long merchantId, Long operator) {
+        int result = this.baseMapper.deleteMerchantById(merchantId, operator);
+        if (result > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    @Override
+    public R pageMerchant(PageConvenientMerchantDTO pageConvenientMerchantDTO) {
+        Page page = new Page<>();
+        page.setSize(pageConvenientMerchantDTO.getPageSize());
+        page.setCurrent(pageConvenientMerchantDTO.getPageNum());
+        IPage<ConvenientMerchantVO> iPage = this.baseMapper.pageMerchant(page, pageConvenientMerchantDTO);
+        if (nonNull(pageConvenientMerchantDTO.getServiceId())) {
+            List<ConvenientMerchantVO> records = iPage.getRecords();
+            if (!records.isEmpty()) {
+                records.forEach(record -> {
+                    String serviceScope = convenientServiceCategoryDAO.selectServiceScopeByMerchantId(record.getId());
+                    record.setServiceScope(serviceScope);
+                });
+            }
+        }
+        return R.ok(iPage);
+    }
+
+    @Override
+    public R getMerchant(Long merchantId) {
+        ConvenientMerchantVO convenientMerchantVO = this.baseMapper.selectMerchantById(merchantId);
+        List<String> serviceIds = convenientServiceCategoryDAO.selectServiceIdsForMerchant(merchantId);
+        convenientMerchantVO.setServiceIds(serviceIds);
+        return R.ok(convenientMerchantVO);
+    }
+
+    @Override
+    public R disableOrEnableMerchant(DisableOrEnableConvenientMerchantDTO disableOrEnableConvenientMerchantDTO) {
+        List<ConvenientMerchantDO> convenientMerchantDOList = this.baseMapper.selectList(new QueryWrapper<ConvenientMerchantDO>()
+                .lambda().in(ConvenientMerchantDO::getId, disableOrEnableConvenientMerchantDTO.getIds()));
+        List<Long> userIds = convenientMerchantDOList.stream().map(ConvenientMerchantDO::getUserId).collect(Collectors.toList());
+        disableOrEnableConvenientMerchantDTO.setUserIds(userIds);
+        R result = userService.disableOrEnableMerchantUsers(disableOrEnableConvenientMerchantDTO);
+        int type = disableOrEnableConvenientMerchantDTO.getType().intValue();
+        if (type == 2) {
+            this.baseMapper.batchUpdateBusinessStatus(convenientMerchantDOList, 0);
+        }
+        if (R.isOk(result)) {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R resetPasswordMerchant(ResetPasswordConvenientMerchantDTO resetPasswordConvenientMerchantDTO) {
+        List<ConvenientMerchantDO> convenientMerchantDOList = this.baseMapper.selectList(new QueryWrapper<ConvenientMerchantDO>()
+                .lambda().in(ConvenientMerchantDO::getId, resetPasswordConvenientMerchantDTO.getIds()));
+        List<Long> userIds = convenientMerchantDOList.stream().map(ConvenientMerchantDO::getUserId).collect(Collectors.toList());
+        EventGridMemberPassResetDTO eventGridMemberPassResetDTO = new EventGridMemberPassResetDTO();
+        eventGridMemberPassResetDTO.setPassword(resetPasswordConvenientMerchantDTO.getPassword());
+        eventGridMemberPassResetDTO.setIds(userIds);
+        return userService.gridMemberPassReset(eventGridMemberPassResetDTO);
+    }
+
+    @Override
+    public R<ConvenientMerchantVO> getUserMerchantInfoByAccount(String account) {
+        try {
+            R<LoginUserInfoVO> loginUserInfoVOR = userService.getUserInfo(account + "_5");
+            LoginUserInfoVO loginUserInfoVO =
+                    JSONObject.parseObject(JSONObject.toJSONString(loginUserInfoVOR.getData()), LoginUserInfoVO.class);
+
+            if (isNull(loginUserInfoVO)) {
+                return R.fail(500, "该账号不存在");
+            }
+            ConvenientMerchantDO merchantDO = this.baseMapper.selectOne(new LambdaQueryWrapper<ConvenientMerchantDO>()
+                    .eq(ConvenientMerchantDO::getIsDel, false).eq(ConvenientMerchantDO::getUserId, loginUserInfoVO.getUserId()));
+            if (isNull(merchantDO)) {
+                return R.fail(500, "该账号不存在");
+            }
+            ConvenientMerchantVO merchantVO = new ConvenientMerchantVO();
+            BeanUtils.copyProperties(merchantDO, merchantVO);
+            merchantVO.setAccount(account);
+            merchantVO.setAccountStatus(loginUserInfoVO.getStatus());
+            return R.ok(merchantVO);
+        } catch (Exception e) {
+            return R.fail();
+        }
+    }
+
+    @Override
+    public R<ConvenientMerchantVO> getMerchantInfoByAccount(String account) {
+        try {
+            List<ConvenientMerchantVO> merchantDetailByAccount = this.baseMapper.getMerchantDetailByAccount(account);
+            if (CollUtil.isEmpty(merchantDetailByAccount)) {
+                return R.fail(500, "该账号不存在");
+            }
+            ConvenientMerchantVO convenientMerchantVO = merchantDetailByAccount.get(0);
+            return R.ok(convenientMerchantVO);
+        } catch (Exception e) {
+            return R.fail();
+        }
+    }
+
+    @Override
+    public R<ConvenientMerchantVO> getUserConvenientMerchantInfo(Long userId) {
+        ConvenientMerchantDO merchantDO = this.baseMapper.selectOne(new QueryWrapper<ConvenientMerchantDO>()
+                .lambda().eq(ConvenientMerchantDO::getUserId, userId));
+        if (isNull(merchantDO)) {
+            return R.fail("商家不存在");
+        }
+        Long merchantId = merchantDO.getId();
+        ConvenientMerchantVO convenientMerchantVO = new ConvenientMerchantVO();
+        BeanUtils.copyProperties(merchantDO, convenientMerchantVO);
+        List<String> serviceIds = convenientServiceCategoryDAO.selectServiceIdsForMerchant(merchantId);
+        convenientMerchantVO.setServiceIds(serviceIds);
+        Date nowDate = new Date();
+        SimpleDateFormat mothFormat = new SimpleDateFormat("yyyy-MM");
+        SimpleDateFormat dayFormat = new SimpleDateFormat("yyyy-MM-dd");
+        String moth = mothFormat.format(nowDate);
+        String day = dayFormat.format(nowDate);
+        int consultationCount = convenientConsultationStatisticsDAO.selectTotalConsultationVolume(merchantId);
+        int monthConsultationVolume = convenientConsultationStatisticsDAO.selectMonthConsultationVolume(merchantId, moth);
+        int dayConsultationVolume = convenientConsultationStatisticsDAO.selectDayConsultationVolume(merchantId, day);
+        Integer viewCount = convenientViewStatisticsDAO.selectTotalViewNum(merchantId);
+        int monthViewNum = convenientViewStatisticsDAO.selectMonthViewNum(merchantId, moth);
+        int dayViewNum = convenientViewStatisticsDAO.selectDayViewNum(merchantId, day);
+        convenientMerchantVO.setConsultationVolume(consultationCount);
+        convenientMerchantVO.setViewNum(viewCount);
+        convenientMerchantVO.setMonthConsultationVolume(monthConsultationVolume);
+        convenientMerchantVO.setDayConsultationVolume(dayConsultationVolume);
+        convenientMerchantVO.setMonthViewNum(monthViewNum);
+        convenientMerchantVO.setDayViewNum(dayViewNum);
+        return R.ok(convenientMerchantVO);
+    }
+
+    @Override
+    public R getPopularMerchants(PagePopularMerchantDTO pagePopularMerchantDTO) {
+        Date nowDate = new Date();
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM");
+        String currentMon = simpleDateFormat.format(nowDate).concat("%");
+        Page page = new Page<>();
+        page.setSize(pagePopularMerchantDTO.getPageSize());
+        page.setCurrent(pagePopularMerchantDTO.getPageNum());
+        IPage<ConvenientMerchantVO> merchantVOList = this.baseMapper.getPopularMerchants(page, pagePopularMerchantDTO.getCommunityId(), currentMon, pagePopularMerchantDTO.getAreaCode());
+        if (pagePopularMerchantDTO.getPageNum().equals(1L)) {
+            //金沙江默认第一个
+            List<ConvenientMerchantVO> merchantVOS = new ArrayList<>();
+            ConvenientMerchantVO merchantVO = new ConvenientMerchantVO();
+            merchantVO.setName("金沙江智慧物流商贸城");
+            merchantVO.setLogo("https://www.psciio.com//idcard/0694d975ed4d4c49bcfb728a678518f2.jpg");
+            merchantVO.setIntroduction("农产直销、综合商贸、冷链储运、中央厨房、检验检疫、农博会展、总部商务、综合服务。");
+            merchantVO.setServiceScope("");
+            merchantVO.setConsultationVolume(0);
+            merchantVO.setMonthConsultationVolume(0);
+            merchantVOS.add(merchantVO);
+            //第一页默认把犇师傅维修中心加载到第一个
+            List<ConvenientMerchantVO> merchantList = this.baseMapper.selectMerchantByName(pagePopularMerchantDTO.getCommunityId(), currentMon);
+            if (merchantList != null && merchantList.size() > 0) {
+                merchantVOS.addAll(merchantList);
+                merchantVOS.addAll(merchantVOList.getRecords());
+                merchantVOList.setRecords(merchantVOS);
+            }
+
+        }
+        return R.ok(merchantVOList);
+    }
+
+    @Override
+    public R getClassifyMerchants(PageClassifyMerchantDTO pageClassifyMerchantDTO) {
+        Date nowDate = new Date();
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM");
+        String currentMon = simpleDateFormat.format(nowDate).concat("%");
+        Page page = new Page<>();
+        page.setSize(pageClassifyMerchantDTO.getPageSize());
+        page.setCurrent(pageClassifyMerchantDTO.getPageNum());
+        IPage<ConvenientMerchantVO> merchantVOList = this.baseMapper.getClassifyMerchants(page, pageClassifyMerchantDTO, currentMon);
+        List<ConvenientMerchantVO> records = merchantVOList.getRecords();
+        if (!records.isEmpty()) {
+            records.forEach(record -> {
+                String serviceScope = convenientServiceCategoryDAO.selectServiceScopeByMerchantId(record.getId());
+                record.setServiceScope(serviceScope);
+            });
+        }
+        return R.ok(merchantVOList);
+    }
+
+    /**
+     * 小程序获取商家详情
+     *
+     * @param merchantId
+     * @return
+     */
+    @Override
+    public R getMerchantDetail(Long merchantId) {
+        Date nowDate = new Date();
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM");
+        String currentMon = simpleDateFormat.format(nowDate).concat("%");
+        return R.ok(this.baseMapper.getMerchantDetail(merchantId, currentMon));
+    }
+
+    @Override
+    public R pageSearchMerchant(PageSearchDTO pageSearchDTO) {
+        Date nowDate = new Date();
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM");
+        String currentMon = simpleDateFormat.format(nowDate).concat("%");
+        Page page = new Page<>();
+        page.setSize(pageSearchDTO.getPageSize());
+        page.setCurrent(pageSearchDTO.getPageNum());
+        IPage<ConvenientMerchantVO> merchantVOIPage = this.baseMapper.pageSearchMerchant(page, pageSearchDTO, currentMon);
+        List<ConvenientMerchantVO> records = merchantVOIPage.getRecords();
+        if (!records.isEmpty()) {
+            records.forEach(record -> {
+                List<ConvenientProductVO> merchantProduct = convenientProductDAO.getMerchantProduct(record.getId());
+                List<ConvenientProductSpecificationVO> productSpecifications = convenientProductDAO.getProductSpecifications(record.getId());
+                if (!merchantProduct.isEmpty()) {
+                    if (merchantProduct.size() > 2) {
+                        merchantProduct = merchantProduct.subList(0, 2);
+                    }
+                    merchantProduct.forEach(product -> {
+                        List<ConvenientProductSpecificationVO> list = new ArrayList<>();
+                        productSpecifications.forEach(specification -> {
+                            if (product.getId().equals(specification.getProductId())) {
+                                list.add(specification);
+                            }
+                        });
+                        product.setProductSpecificationVOList(list);
+                    });
+                }
+                record.setProductVOList(merchantProduct);
+            });
+        }
+        return R.ok(merchantVOIPage);
+    }
+
+    @Override
+    public R consultMerchant(Long merchantId) {
+        ConvenientMerchantDO merchantDO = this.baseMapper.selectById(merchantId);
+        if (isNull(merchantDO)) {
+            return R.fail("商家不存在");
+        }
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+        String nowDate = simpleDateFormat.format(new Date());
+        ConvenientConsultationStatisticsDO statisticsDO = convenientConsultationStatisticsDAO.selectOne(new LambdaQueryWrapper<ConvenientConsultationStatisticsDO>()
+                .eq(ConvenientConsultationStatisticsDO::getMerchantId, merchantId).eq(ConvenientConsultationStatisticsDO::getStatisticDate, nowDate));
+        if (isNull(statisticsDO)) {
+            convenientConsultationStatisticsDAO.createTodayStatistic(merchantId);
+        } else {
+            convenientConsultationStatisticsDAO.incrConsultationNum(merchantId, nowDate);
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R incrMerchantView(Long merchantId) {
+        ConvenientMerchantDO merchantDO = this.baseMapper.selectById(merchantId);
+        if (isNull(merchantDO)) {
+            return R.fail("商家不存在");
+        }
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+        String nowDate = simpleDateFormat.format(new Date());
+        ConvenientViewStatisticsDO statisticsDO = convenientViewStatisticsDAO.selectOne(new LambdaQueryWrapper<ConvenientViewStatisticsDO>()
+                .eq(ConvenientViewStatisticsDO::getMerchantId, merchantId).eq(ConvenientViewStatisticsDO::getStatisticDate, nowDate));
+        if (isNull(statisticsDO)) {
+            convenientViewStatisticsDAO.createTodayStatistic(merchantId);
+        } else {
+            convenientViewStatisticsDAO.incrViewNum(merchantId, nowDate);
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R exportMerchant(ExportMerchantDTO exportMerchantDTO) {
+        List<Long> needExportIds = exportMerchantDTO.getIds();
+        if (nonNull(needExportIds) && !needExportIds.isEmpty()) {
+            //根据id导出
+            return R.ok(this.baseMapper.exportMerchantByIds(needExportIds));
+        }
+        List<ExportMerchantVO> exportMerchantVOList = this.baseMapper.exportMerchantBySearch(exportMerchantDTO);
+        if (nonNull(exportMerchantDTO.getServiceId()) && !exportMerchantVOList.isEmpty()) {
+            exportMerchantVOList.forEach(merchant -> {
+                String serviceScope = convenientServiceCategoryDAO.selectServiceScopeByMerchantId(merchant.getId());
+                merchant.setServiceScope(serviceScope);
+            });
+        }
+        return R.ok(exportMerchantVOList);
+    }
+
+    /**
+     * 定时任务每隔半小时将商家浏览量和咨询量总值计入指定商家数据中
+     *
+     * @return
+     */
+    @Override
+    public R timedTaskWriteDataToMerchantJobHandler() {
+        List<ConvenientConsultationStatisticsVO> consultationVOList = convenientConsultationStatisticsDAO.selectSumForConsultationNum();
+        List<ConvenientViewStatisticsVO> viewVOList = convenientViewStatisticsDAO.selectSumForViewNum();
+        this.baseMapper.batchUpdateMerchantConsultationNum(consultationVOList);
+        this.baseMapper.batchUpdateMerchantViewNum(viewVOList);
+        return R.ok();
+    }
+
+    /**
+     * check商家/店铺是否有效
+     *
+     * @param userId
+     * @return
+     */
+    @Override
+    public Boolean checkStoreIsValid(Long userId) {
+        R<LoginUserInfoVO> loginUserInfo = userService.getUserInfoByUserId(userId.toString());
+        LoginUserInfoVO loginUserInfoVO =
+                JSONObject.parseObject(JSONObject.toJSONString(loginUserInfo.getData()), LoginUserInfoVO.class);
+        if (isNull(loginUserInfoVO) || !loginUserInfoVO.getType().equals(10) || loginUserInfoVO.getStatus() != 1) {
+            return false;
+        }
+        return true;
+    }
+
+    @Override
+    public R getMerchantByUserId(Long userId) {
+        ConvenientMerchantVO convenientMerchantVO = this.baseMapper.selectMerchantByUserId(userId);
+        if (isNull(convenientMerchantVO)) {
+            return R.fail("商家不存在");
+        }
+        Long merchantId = convenientMerchantVO.getId();
+        List<String> serviceIds = convenientServiceCategoryDAO.selectServiceIdsForMerchant(merchantId);
+        convenientMerchantVO.setServiceIds(serviceIds);
+        BigDecimal score = comShopFlowerEvaluateDAO.statisticsScore(merchantId);
+        convenientMerchantVO.setScore(null == score ? BigDecimal.ZERO : NumberUtil.round(score, 1));
+        Date nowDate = new Date();
+        SimpleDateFormat mothFormat = new SimpleDateFormat("yyyy-MM");
+        SimpleDateFormat dayFormat = new SimpleDateFormat("yyyy-MM-dd");
+        String moth = mothFormat.format(nowDate);
+        String day = dayFormat.format(nowDate);
+        int consultationCount = convenientConsultationStatisticsDAO.selectTotalConsultationVolume(merchantId);
+        int monthConsultationVolume = convenientConsultationStatisticsDAO.selectMonthConsultationVolume(merchantId, moth);
+        int dayConsultationVolume = convenientConsultationStatisticsDAO.selectDayConsultationVolume(merchantId, day);
+        Integer viewCount = convenientViewStatisticsDAO.selectTotalViewNum(merchantId);
+        int monthViewNum = convenientViewStatisticsDAO.selectMonthViewNum(merchantId, moth);
+        int dayViewNum = convenientViewStatisticsDAO.selectDayViewNum(merchantId, day);
+        convenientMerchantVO.setConsultationVolume(consultationCount);
+        convenientMerchantVO.setViewNum(viewCount);
+        convenientMerchantVO.setMonthConsultationVolume(monthConsultationVolume);
+        convenientMerchantVO.setDayConsultationVolume(dayConsultationVolume);
+        convenientMerchantVO.setMonthViewNum(monthViewNum);
+        convenientMerchantVO.setDayViewNum(dayViewNum);
+        return R.ok(convenientMerchantVO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientProductCategoryServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientProductCategoryServiceImpl.java
new file mode 100644
index 0000000..1416978
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientProductCategoryServiceImpl.java
@@ -0,0 +1,115 @@
+package com.panzhihua.service_community.service.impl;
+
+import static java.util.Objects.isNull;
+
+import java.util.Date;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+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.model.dtos.community.convenient.ConvenientProductCategoryDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PageConvenientProductCategoryDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientProductCategoryVO;
+import com.panzhihua.service_community.dao.ConvenientProductCategoryDAO;
+import com.panzhihua.service_community.dao.ConvenientProductDAO;
+import com.panzhihua.service_community.model.dos.ConvenientProductCategoryDO;
+import com.panzhihua.service_community.model.dos.ConvenientProductDO;
+import com.panzhihua.service_community.service.ConvenientProductCategoryService;
+
+/**
+ * @title: ConvenientProductCategoryServiceImpl
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务产品分类服务实现类
+ * @author: hans
+ * @date: 2021/09/20 16:13
+ */
+@Service
+public class ConvenientProductCategoryServiceImpl extends ServiceImpl<ConvenientProductCategoryDAO, ConvenientProductCategoryDO> implements ConvenientProductCategoryService {
+
+    @Resource
+    private ConvenientProductDAO convenientProductDAO;
+
+    @Override
+    public R addProductCategory(ConvenientProductCategoryDTO convenientProductCategoryDTO) {
+        ConvenientProductCategoryDO convenientProductCategoryDO = new ConvenientProductCategoryDO();
+        BeanUtils.copyProperties(convenientProductCategoryDTO, convenientProductCategoryDO);
+        convenientProductCategoryDO.setCreatedAt(new Date());
+        int result = this.baseMapper.insert(convenientProductCategoryDO);
+        if (result > 0) {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R putProductCategory(ConvenientProductCategoryDTO convenientProductCategoryDTO) {
+        ConvenientProductCategoryDO convenientProductCategoryDO = this.baseMapper.selectById(convenientProductCategoryDTO.getId());
+        if (isNull(convenientProductCategoryDO)) {
+            return R.fail("分类id不存在");
+        }
+        BeanUtils.copyProperties(convenientProductCategoryDTO, convenientProductCategoryDO);
+        int result = this.baseMapper.updateById(convenientProductCategoryDO);
+        if (result > 0) {
+            return R.ok();
+        }
+        return R.fail("更新失败");
+    }
+
+    @Override
+    public R deleteProductCategory(Long categoryId, Long operator) {
+        if (isNull(categoryId)) {
+            return R.fail("分类id不能为空");
+        }
+        ConvenientProductCategoryDO convenientProductCategoryDO = this.baseMapper.selectById(categoryId);
+        if (isNull(convenientProductCategoryDO)) {
+            return R.fail("分类id不存在");
+        }
+        int quotedCount = convenientProductDAO.selectCount(new QueryWrapper<ConvenientProductDO>()
+                .lambda().eq(ConvenientProductDO::getCategoryId, categoryId).eq(ConvenientProductDO::getIsDel, false));
+        if (quotedCount > 0) {
+            return R.fail("该分类名称已被引用,无法删除!");
+        }
+        convenientProductCategoryDO.setIsDel(true);
+        convenientProductCategoryDO.setUpdatedBy(operator);
+        int result = this.baseMapper.updateById(convenientProductCategoryDO);
+        if (result > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    @Override
+    public R getProductCategory(Long categoryId) {
+        if (isNull(categoryId)) {
+            return R.fail("分类id不能为空");
+        }
+        ConvenientProductCategoryDO convenientProductCategoryDO = this.baseMapper.selectById(categoryId);
+        if (isNull(convenientProductCategoryDO)) {
+            return R.fail("分类id不存在");
+        }
+        ConvenientProductCategoryVO convenientProductCategoryVO = new ConvenientProductCategoryVO();
+        BeanUtils.copyProperties(convenientProductCategoryDO, convenientProductCategoryVO);
+        return R.ok(convenientProductCategoryVO);
+    }
+
+    @Override
+    public R pageProductCategory(PageConvenientProductCategoryDTO pageConvenientProductCategoryDTO) {
+        Page page = new Page<>();
+        page.setSize(pageConvenientProductCategoryDTO.getPageSize());
+        page.setCurrent(pageConvenientProductCategoryDTO.getPageNum());
+        IPage<ConvenientProductCategoryVO> iPage = this.baseMapper.pageProductCategory(page, pageConvenientProductCategoryDTO);
+        return R.ok(iPage);
+    }
+
+    @Override
+    public R getAllProductCategory(Long merchantId) {
+        return R.ok(this.baseMapper.selectAllCategories(merchantId));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientProductServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientProductServiceImpl.java
new file mode 100644
index 0000000..0c51aed
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientProductServiceImpl.java
@@ -0,0 +1,302 @@
+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.Comparator;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.model.dtos.community.convenient.ConvenientProductDTO;
+import com.panzhihua.common.model.dtos.community.convenient.ConvenientProductSpecificationDTO;
+import com.panzhihua.common.model.dtos.community.convenient.DeleteConvenientProductDTO;
+import com.panzhihua.common.model.dtos.community.convenient.OnShelfOrOffShelfProductDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PageConvenientProductDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PageSearchDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientProductLevelInfoVO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientProductShelfVO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientProductSpecificationVO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientProductVO;
+import com.panzhihua.service_community.dao.ConvenientProductCategoryDAO;
+import com.panzhihua.service_community.dao.ConvenientProductDAO;
+import com.panzhihua.service_community.dao.ConvenientProductSpecificationDAO;
+import com.panzhihua.service_community.model.dos.ConvenientProductCategoryDO;
+import com.panzhihua.service_community.model.dos.ConvenientProductDO;
+import com.panzhihua.service_community.model.dos.ConvenientProductSpecificationDO;
+import com.panzhihua.service_community.service.ConvenientProductService;
+
+/**
+ * @title: ConvenientProductServiceImpl
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务商家后台产品服务实现类
+ * @author: hans
+ * @date: 2021/09/21 21:33
+ */
+@Service
+public class ConvenientProductServiceImpl extends ServiceImpl<ConvenientProductDAO, ConvenientProductDO> implements ConvenientProductService {
+
+    @Resource
+    private ConvenientProductCategoryDAO convenientProductCategoryDAO;
+    @Resource
+    private ConvenientProductSpecificationDAO convenientProductSpecificationDAO;
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R addProduct(ConvenientProductDTO convenientProductDTO) {
+        ConvenientProductCategoryDO convenientProductCategoryDO = convenientProductCategoryDAO.selectById(convenientProductDTO.getCategoryId());
+        if (isNull(convenientProductCategoryDO)) {
+            return R.fail("产品分类不存在");
+        }
+        ConvenientProductDO convenientProductDO = new ConvenientProductDO();
+        BeanUtils.copyProperties(convenientProductDTO, convenientProductDO);
+        Date nowDate = new Date();
+        if (convenientProductDTO.getOnShelf()) {
+            convenientProductDO.setOnShelfAt(nowDate);
+        }
+        convenientProductDO.setCreatedAt(nowDate);
+        this.baseMapper.insert(convenientProductDO);
+        Long productId = convenientProductDO.getId();
+        if (nonNull(productId)) {
+            //规格
+            List<ConvenientProductSpecificationDTO> productSpecificationDTOList = convenientProductDTO.getProductSpecificationDTOList();
+            List<ConvenientProductSpecificationDO> productSpecificationDOList = productSpecificationDTOList.stream().map(specificationDTO -> {
+                ConvenientProductSpecificationDO convenientProductSpecificationDO = new ConvenientProductSpecificationDO();
+                BeanUtils.copyProperties(specificationDTO, convenientProductSpecificationDO);
+                convenientProductSpecificationDO.setProductId(productId);
+                convenientProductSpecificationDO.setCreatedAt(nowDate);
+                convenientProductSpecificationDO.setCreatedBy(convenientProductDTO.getCreatedBy());
+                return convenientProductSpecificationDO;
+            }).collect(Collectors.toList());
+            convenientProductSpecificationDAO.batchInsert(productSpecificationDOList);
+        }
+        return R.ok();
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R putProduct(ConvenientProductDTO convenientProductDTO) {
+        Long productId = convenientProductDTO.getId();
+        Long updatedBy = convenientProductDTO.getUpdatedBy();
+        ConvenientProductDO convenientProductDO = this.baseMapper.selectById(productId);
+        Boolean isOnShelf = convenientProductDO.getOnShelf();
+        if (isNull(convenientProductDO)) {
+            return R.fail("产品不存在");
+        }
+        BeanUtils.copyProperties(convenientProductDTO, convenientProductDO);
+        Date nowDate = new Date();
+        if (!isOnShelf && convenientProductDTO.getOnShelf()) {
+            convenientProductDO.setOnShelfAt(nowDate);
+        }
+        convenientProductDO.setUpdatedBy(updatedBy);
+        this.baseMapper.updateById(convenientProductDO);
+        List<ConvenientProductSpecificationDTO> productSpecificationDTOList = convenientProductDTO.getProductSpecificationDTOList();
+        List<Long> notNeedDelIds = new ArrayList<>();
+        productSpecificationDTOList.forEach(specificationDTO -> {
+            Long specificationId = specificationDTO.getId();
+            if (isNull(specificationId)) {
+                //新增
+                ConvenientProductSpecificationDO convenientProductSpecificationDO = new ConvenientProductSpecificationDO();
+                BeanUtils.copyProperties(specificationDTO, convenientProductSpecificationDO);
+                convenientProductSpecificationDO.setProductId(productId);
+                convenientProductSpecificationDO.setCreatedAt(nowDate);
+                convenientProductSpecificationDO.setCreatedBy(updatedBy);
+                convenientProductSpecificationDAO.insert(convenientProductSpecificationDO);
+                notNeedDelIds.add(convenientProductSpecificationDO.getId());
+            } else {
+                //更新
+                ConvenientProductSpecificationDO convenientProductSpecificationDO = convenientProductSpecificationDAO.selectById(specificationId);
+                BeanUtils.copyProperties(specificationDTO, convenientProductSpecificationDO);
+                convenientProductSpecificationDO.setUpdatedBy(updatedBy);
+                convenientProductSpecificationDAO.updateById(convenientProductSpecificationDO);
+                notNeedDelIds.add(specificationId);
+            }
+        });
+        //删除已失去关联的规格
+        convenientProductSpecificationDAO.deleteLoseRelationSpecifications(notNeedDelIds, productId);
+        return R.ok();
+    }
+
+    @Override
+    public R getProduct(Long productId) {
+        if (isNull(productId)) {
+            return R.fail("产品ID不能为空");
+        }
+        ConvenientProductDO convenientProductDO = this.baseMapper.selectById(productId);
+        if (isNull(convenientProductDO)) {
+            return R.fail("产品不存在");
+        }
+        ConvenientProductVO convenientProductVO = new ConvenientProductVO();
+        BeanUtils.copyProperties(convenientProductDO, convenientProductVO);
+        //查找产品规格
+        List<ConvenientProductSpecificationDO> convenientProductSpecificationDOList = convenientProductSpecificationDAO.selectList(new LambdaQueryWrapper<ConvenientProductSpecificationDO>()
+                .eq(ConvenientProductSpecificationDO::getProductId, productId).eq(ConvenientProductSpecificationDO::getIsDel, false));
+        List<ConvenientProductSpecificationVO> convenientProductSpecificationVOList = new ArrayList<>();
+        if (!convenientProductSpecificationDOList.isEmpty()) {
+            convenientProductSpecificationDOList.forEach(specificationDO -> {
+                ConvenientProductSpecificationVO convenientProductSpecificationVO = new ConvenientProductSpecificationVO();
+                BeanUtils.copyProperties(specificationDO, convenientProductSpecificationVO);
+                convenientProductSpecificationVOList.add(convenientProductSpecificationVO);
+            });
+        }
+        convenientProductVO.setProductSpecificationVOList(convenientProductSpecificationVOList);
+        return R.ok(convenientProductVO);
+    }
+
+    @Override
+    public R pageProduct(PageConvenientProductDTO pageConvenientProductDTO) {
+        Page page = new Page<>();
+        page.setSize(pageConvenientProductDTO.getPageSize());
+        page.setCurrent(pageConvenientProductDTO.getPageNum());
+        IPage<ConvenientProductVO> productVOIPage = this.baseMapper.pageProduct(page, pageConvenientProductDTO);
+        List<ConvenientProductVO> convenientProductVOList = productVOIPage.getRecords();
+        //图片填充
+        if (!convenientProductVOList.isEmpty()) {
+            convenientProductVOList.forEach(product -> {
+                List<ConvenientProductSpecificationDO> specificationDOList = convenientProductSpecificationDAO.selectList(new LambdaQueryWrapper<ConvenientProductSpecificationDO>()
+                        .eq(ConvenientProductSpecificationDO::getProductId, product.getId()).isNotNull(ConvenientProductSpecificationDO::getImage));
+                product.setImage(specificationDOList.isEmpty() ? null : specificationDOList.get(0).getImage());
+            });
+        }
+        return R.ok(productVOIPage);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R deleteProduct(DeleteConvenientProductDTO deleteConvenientProductDTO) {
+        List<Long> needDelIds = deleteConvenientProductDTO.getIds();
+        //删除产品
+        int result = this.baseMapper.batchDeleteByIds(needDelIds);
+        if (result > 0) {
+            //删除规格
+            convenientProductSpecificationDAO.batchDeleteByProductIds(needDelIds);
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R onShelfOrOffShelfProduct(OnShelfOrOffShelfProductDTO onShelfOrOffShelfProductDTO) {
+        Integer type = onShelfOrOffShelfProductDTO.getType();
+        Long updatedBy = onShelfOrOffShelfProductDTO.getUpdatedBy();
+        List<Long> needDelIds = onShelfOrOffShelfProductDTO.getIds();
+        if (type.intValue() == 1) {
+            //上架
+            this.baseMapper.batchOnShelfOrOffShelfByIds(needDelIds, updatedBy, true);
+        } else if (type.intValue() == 2) {
+            //下架
+            this.baseMapper.batchOnShelfOrOffShelfByIds(needDelIds, updatedBy, false);
+        } else {
+            return R.fail("处理类型错误");
+        }
+        return R.ok();
+    }
+
+    /**
+     * 小程序获取商家产品
+     * @param merchantId
+     * @return
+     */
+    @Override
+    public R getMerchantProduct(Long merchantId) {
+        List<ConvenientProductVO> productVOList = this.baseMapper.getMerchantProduct(merchantId);
+        List<ConvenientProductSpecificationVO> specificationVOList = this.baseMapper.getProductSpecifications(merchantId);
+        List<ConvenientProductLevelInfoVO> levelInfoVOList = new ArrayList<>();
+        List<String> categoryList = new ArrayList<>();
+        if (!productVOList.isEmpty()) {
+            productVOList.forEach(productVO -> {
+                List<ConvenientProductSpecificationVO> currentProductSpecificationVOList = new ArrayList<>();
+                specificationVOList.forEach(specificationVO -> {
+                    if (productVO.getId().equals(specificationVO.getProductId())) {
+                        currentProductSpecificationVOList.add(specificationVO);
+                    }
+                });
+                productVO.setProductSpecificationVOList(currentProductSpecificationVOList);
+                if (!categoryList.contains(productVO.getCategoryName())) {
+                    categoryList.add(productVO.getCategoryName());
+                }
+            });
+            //分类
+            Map<String, List<ConvenientProductVO>> levelGroup = productVOList.stream()
+                    .collect(Collectors.groupingBy(ConvenientProductVO::getCategoryName));
+            categoryList.forEach(category -> {
+                ConvenientProductLevelInfoVO levelInfoVOLevelInfoVO = new ConvenientProductLevelInfoVO();
+                levelInfoVOLevelInfoVO.setCategoryName(category);
+                List<ConvenientProductVO> productVOS = levelGroup.get(category);
+                List<ConvenientProductVO> sortedProductVOS = productVOS.stream()
+                        .sorted(Comparator.comparing(ConvenientProductVO::getOnShelfAt).reversed()).collect(Collectors.toList());
+                levelInfoVOLevelInfoVO.setProductVOList(sortedProductVOS);
+                levelInfoVOList.add(levelInfoVOLevelInfoVO);
+            });
+        }
+        return R.ok(levelInfoVOList);
+    }
+
+    @Override
+    public R pageSearchProduct(PageSearchDTO pageSearchDTO) {
+        Page page = new Page<>();
+        page.setSize(pageSearchDTO.getPageSize());
+        page.setCurrent(pageSearchDTO.getPageNum());
+        IPage<ConvenientProductVO> productVOIPage = this.baseMapper.pageSearchProduct(page, pageSearchDTO);
+        List<ConvenientProductVO> records = productVOIPage.getRecords();
+        if (!records.isEmpty()) {
+            List<Long> productIds = records.stream().map(ConvenientProductVO::getId).collect(Collectors.toList());
+            List<ConvenientProductSpecificationDO> specificationDOS = convenientProductSpecificationDAO
+                    .selectList(new LambdaQueryWrapper<ConvenientProductSpecificationDO>()
+                    .eq(ConvenientProductSpecificationDO::getIsDel, false).in(ConvenientProductSpecificationDO::getProductId, productIds));
+            List<ConvenientProductSpecificationVO> specificationVOList = new ArrayList<>();
+            if (!specificationDOS.isEmpty()) {
+                specificationDOS.forEach(specificationDO -> {
+                    ConvenientProductSpecificationVO specificationVO = new ConvenientProductSpecificationVO();
+                    BeanUtils.copyProperties(specificationDO, specificationVO);
+                    specificationVOList.add(specificationVO);
+                });
+                Map<Long, List<ConvenientProductSpecificationVO>> collect = specificationVOList
+                        .stream().collect(Collectors.groupingBy(ConvenientProductSpecificationVO::getProductId));
+                Set<Long> keySet = collect.keySet();
+                Iterator<Long> iterator = keySet.iterator();
+                while (iterator.hasNext()) {
+                    Long productId = iterator.next();
+                    records.forEach(record -> {
+                        if (record.getId().equals(productId)) {
+                            record.setProductSpecificationVOList(collect.get(productId));
+                        }
+                    });
+                }
+            }
+        }
+        return R.ok(productVOIPage);
+    }
+
+    @Override
+    public R incrProductView(Long productId) {
+        this.baseMapper.incrProductView(productId);
+        return R.ok();
+    }
+
+    @Override
+    public R getProductShelfNum(Long merchantId) {
+        int onShelfTotalNum = this.baseMapper.selectCount(new LambdaQueryWrapper<ConvenientProductDO>().eq(ConvenientProductDO::getMerchantId, merchantId)
+                .eq(ConvenientProductDO::getIsDel, false).eq(ConvenientProductDO::getOnShelf, true));
+        int offShelfTotalNum = this.baseMapper.selectCount(new LambdaQueryWrapper<ConvenientProductDO>().eq(ConvenientProductDO::getMerchantId, merchantId)
+                .eq(ConvenientProductDO::getIsDel, false).eq(ConvenientProductDO::getOnShelf, false));
+        ConvenientProductShelfVO convenientProductShelfVO = new ConvenientProductShelfVO();
+        convenientProductShelfVO.setOnShelfTotalNum(onShelfTotalNum);
+        convenientProductShelfVO.setOffShelfTotalNum(offShelfTotalNum);
+        return R.ok(convenientProductShelfVO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientServiceCategoryServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientServiceCategoryServiceImpl.java
new file mode 100644
index 0000000..187497c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ConvenientServiceCategoryServiceImpl.java
@@ -0,0 +1,126 @@
+package com.panzhihua.service_community.service.impl;
+
+import static java.util.Objects.isNull;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+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.panzhihua.common.model.dtos.community.convenient.ConvenientServiceCategoryDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PageConvenientServiceCategoryDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientServiceCategoryVO;
+import com.panzhihua.service_community.dao.ConvenientServiceCategoryDAO;
+import com.panzhihua.service_community.model.dos.ConvenientServiceCategoryDO;
+import com.panzhihua.service_community.service.ConvenientServiceCategoryService;
+
+/**
+ * @title: ConvenientServiceCategoryServiceImpl
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务分类服务实现类
+ * @author: hans
+ * @date: 2021/09/16 10:56
+ */
+@Service
+public class ConvenientServiceCategoryServiceImpl extends ServiceImpl<ConvenientServiceCategoryDAO, ConvenientServiceCategoryDO>
+        implements ConvenientServiceCategoryService {
+
+    @Override
+    public R addServiceCategory(ConvenientServiceCategoryDTO convenientServiceCategoryDTO) {
+        ConvenientServiceCategoryDO convenientServiceCategoryDO = new ConvenientServiceCategoryDO();
+        BeanUtils.copyProperties(convenientServiceCategoryDTO, convenientServiceCategoryDO);
+        convenientServiceCategoryDO.setCreatedAt(new Date());
+        int result = this.baseMapper.insert(convenientServiceCategoryDO);
+        if (result > 0) {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R putServiceCategory(ConvenientServiceCategoryDTO convenientServiceCategoryDTO) {
+        ConvenientServiceCategoryDO convenientServiceCategoryDO = this.baseMapper.selectById(convenientServiceCategoryDTO.getId());
+        if (isNull(convenientServiceCategoryDO)) {
+            return R.fail("分类id不存在");
+        }
+        BeanUtils.copyProperties(convenientServiceCategoryDTO, convenientServiceCategoryDO);
+        int result = this.baseMapper.updateById(convenientServiceCategoryDO);
+        if (result > 0) {
+            return R.ok();
+        }
+        return R.fail("更新失败");
+    }
+
+    @Override
+    public R deleteServiceCategoryById(Long categoryId, Long operator) {
+        if (isNull(categoryId)) {
+            return R.fail("分类id不能为空");
+        }
+        ConvenientServiceCategoryDO convenientServiceCategoryDO = this.baseMapper.selectById(categoryId);
+        if (isNull(convenientServiceCategoryDO)) {
+            return R.fail("分类id不存在");
+        }
+        int count = this.baseMapper.checkCategoryIsUsing(categoryId);
+        if (count > 0) {
+            return R.fail("该分类名称已被引用,无法删除!");
+        }
+        convenientServiceCategoryDO.setIsDel(true);
+        convenientServiceCategoryDO.setUpdatedBy(operator);
+        int result = this.baseMapper.updateById(convenientServiceCategoryDO);
+        if (result > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    @Override
+    public R getServiceCategoryById(Long categoryId) {
+        if (isNull(categoryId)) {
+            return R.fail("分类id不能为空");
+        }
+        ConvenientServiceCategoryDO convenientServiceCategoryDO = this.baseMapper.selectById(categoryId);
+        if (isNull(convenientServiceCategoryDO)) {
+            return R.fail("分类id不存在");
+        }
+        ConvenientServiceCategoryVO convenientServiceCategoryVO = new ConvenientServiceCategoryVO();
+        BeanUtils.copyProperties(convenientServiceCategoryDO, convenientServiceCategoryVO);
+        return R.ok(convenientServiceCategoryVO);
+    }
+
+    @Override
+    public R pageServiceCategory(PageConvenientServiceCategoryDTO pageConvenientServiceCategoryDTO) {
+        Page page = new Page<>();
+        page.setSize(pageConvenientServiceCategoryDTO.getPageSize());
+        page.setCurrent(pageConvenientServiceCategoryDTO.getPageNum());
+        IPage<ConvenientServiceCategoryVO> iPage = this.baseMapper.pageServiceCategory(page, pageConvenientServiceCategoryDTO);
+        return R.ok(iPage);
+    }
+
+    @Override
+    public R getAllServiceCategories(String areaCode) {
+        List<ConvenientServiceCategoryVO> categoryVOList = new ArrayList<>();
+        List<ConvenientServiceCategoryDO> categoryDOS = this.baseMapper.selectList(new QueryWrapper<ConvenientServiceCategoryDO>()
+                .lambda().eq(ConvenientServiceCategoryDO::getAreaCode,areaCode).orderByDesc(ConvenientServiceCategoryDO::getWeight));
+        if (!ObjectUtils.isEmpty(categoryDOS)) {
+            categoryDOS.forEach(categoryDO -> {
+                ConvenientServiceCategoryVO categoryVO = new ConvenientServiceCategoryVO();
+                BeanUtils.copyProperties(categoryDO, categoryVO);
+                categoryVOList.add(categoryVO);
+            });
+        }
+        return R.ok(categoryVOList);
+    }
+
+    @Override
+    public R getSuitableServiceCategories(Long communityId,String areaCode) {
+        return R.ok(this.baseMapper.selectSuitableServiceCategories(communityId,areaCode));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/DisabledPersonsServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/DisabledPersonsServiceImpl.java
new file mode 100644
index 0000000..bad19a4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/DisabledPersonsServiceImpl.java
@@ -0,0 +1,93 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.List;
+
+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 com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.community.DisabledPersonsDTO;
+import com.panzhihua.common.model.helper.AESUtil;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.dao.DisablePersonDAO;
+import com.panzhihua.service_community.model.dos.ComMngPopulationDO;
+import com.panzhihua.service_community.model.dos.DisabledPersonsDO;
+import com.panzhihua.service_community.service.ComMngPopulationService;
+import com.panzhihua.service_community.service.DisabledPersonsService;
+
+/**
+ * 残疾人服务
+ *
+ * @author manailin
+ * @date 2021/6/11 16:05
+ */
+@Service
+public class DisabledPersonsServiceImpl extends ServiceImpl<DisablePersonDAO, DisabledPersonsDO>
+    implements DisabledPersonsService {
+
+    @Value("${domain.aesKey:}")
+    private String aesKey;
+
+    @Resource
+    private ComMngPopulationService comMngPopulationService;
+
+    /**
+     * description 批量保存重点人群人员信息
+     *
+     * @param list
+     *            重点人群信息
+     * @return R 保存结果
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R saveBatchDisabledPerson(List<DisabledPersonsDTO> list) {
+        list.forEach(disabledPersonsDTO -> {
+            DisabledPersonsDO dbKeyPerson = checkExistFromDb(disabledPersonsDTO);
+            ComMngPopulationDO population =
+                comMngPopulationService.getPopulationByCardNo(disabledPersonsDTO.getCardNo());
+            if (population != null) {
+                disabledPersonsDTO.setUserId(population.getId());
+            }
+            if (dbKeyPerson != null) {
+                // 已经存在数据,进行数据更新操作
+                DisabledPersonsDO disabledPersonsDO = new DisabledPersonsDO();
+                BeanUtils.copyProperties(disabledPersonsDTO, disabledPersonsDO);
+                disabledPersonsDO.setId(dbKeyPerson.getId());
+                try {
+                    String aesCardNo = AESUtil.encrypt128(disabledPersonsDTO.getCardNo(), aesKey);
+                    String phone = AESUtil.encrypt128(disabledPersonsDTO.getPhone(), aesKey);
+                    String guardianPhone = AESUtil.encrypt128(disabledPersonsDTO.getGuardianPhone(), aesKey);
+                    disabledPersonsDO.setCardNo(aesCardNo);
+                    disabledPersonsDO.setPhone(phone);
+                    disabledPersonsDO.setGuardianPhone(guardianPhone);
+                    updateById(disabledPersonsDO);
+                } catch (Exception e) {
+                    log.error("根据身份证查询残疾人群业务-加密证件信息出错");
+                }
+            } else {
+                DisabledPersonsDO disabledPersonsDO = new DisabledPersonsDO();
+                BeanUtils.copyProperties(disabledPersonsDTO, disabledPersonsDO);
+                save(disabledPersonsDO);
+            }
+        });
+        return R.ok();
+    }
+
+    private DisabledPersonsDO checkExistFromDb(DisabledPersonsDTO DisabledPersonsDO) {
+        try {
+            String aesCardNo = AESUtil.encrypt128(DisabledPersonsDO.getCardNo(), aesKey);
+            return baseMapper.selectOne(new QueryWrapper<DisabledPersonsDO>().eq("act_id", DisabledPersonsDO.getActId())
+                .eq("card_no", aesCardNo));
+        } catch (Exception e) {
+            log.error("根据身份证查询残疾人群业务-加密证件信息出错");
+        }
+        return null;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/EldersAuthFeedbackServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/EldersAuthFeedbackServiceImpl.java
new file mode 100644
index 0000000..4b4cc8a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/EldersAuthFeedbackServiceImpl.java
@@ -0,0 +1,103 @@
+package com.panzhihua.service_community.service.impl;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.community.EldersAuthFeedbackAddDTO;
+import com.panzhihua.common.model.dtos.community.EldersAuthFeedbackDeleteDTO;
+import com.panzhihua.common.model.dtos.community.EldersAuthFeedbackEditDTO;
+import com.panzhihua.common.model.dtos.community.PageEldersAuthFeedbackDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.EldersAuthFeedbackDetailsVO;
+import com.panzhihua.common.model.vos.community.EldersAuthFeedbackVO;
+import com.panzhihua.service_community.dao.EldersAuthFeedbackDAO;
+import com.panzhihua.service_community.model.dos.EldersAuthFeedbackDO;
+import com.panzhihua.service_community.service.EldersAuthFeedbackService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:03:01
+ * @describe 订单表服务实现类
+ */
+@Slf4j
+@Service
+public class EldersAuthFeedbackServiceImpl extends ServiceImpl<EldersAuthFeedbackDAO, EldersAuthFeedbackDO>
+    implements EldersAuthFeedbackService {
+
+    @Resource
+    private EldersAuthFeedbackDAO eldersAuthFeedbackDAO;
+
+    /**
+     * 新增高龄认证社区反馈
+     * 
+     * @param eldersAuthFeedbackAddDTO
+     * @return 新增结果
+     */
+    public R add(EldersAuthFeedbackAddDTO eldersAuthFeedbackAddDTO) {
+        EldersAuthFeedbackDO eldersAuthFeedbackDO = new EldersAuthFeedbackDO();
+        BeanUtils.copyProperties(eldersAuthFeedbackAddDTO, eldersAuthFeedbackDO);
+        if (eldersAuthFeedbackDAO.insert(eldersAuthFeedbackDO) > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 修改高龄认证社区反馈
+     * 
+     * @param eldersAuthFeedbackEditDTO
+     * @return 维护结果
+     */
+    public R edit(EldersAuthFeedbackEditDTO eldersAuthFeedbackEditDTO) {
+        EldersAuthFeedbackDO eldersAuthFeedbackDO = new EldersAuthFeedbackDO();
+        BeanUtils.copyProperties(eldersAuthFeedbackEditDTO, eldersAuthFeedbackDO);
+        if (eldersAuthFeedbackDAO.updateById(eldersAuthFeedbackDO) > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 分页查找高龄认证社区反馈
+     * 
+     * @param pageEldersAuthFeedbackDTO
+     * @return 维护结果
+     */
+    public R<IPage<EldersAuthFeedbackVO>> query(PageEldersAuthFeedbackDTO pageEldersAuthFeedbackDTO) {
+        return R.fail();
+    }
+
+    /**
+     * 删除高龄认证社区反馈
+     * 
+     * @param EldersAuthFeedbackDeleteDTO
+     * @return 平台用户信息
+     */
+    public R delete(EldersAuthFeedbackDeleteDTO EldersAuthFeedbackDeleteDTO) {
+        return R.fail();
+    }
+
+    /**
+     * 查询高龄认证社区反馈详细信息
+     * 
+     * @param id
+     *            高龄认证社区反馈 id
+     * @return 查找结果
+     */
+    public R<EldersAuthFeedbackDetailsVO> eldersAuthFeedbackDetails(Long id) {
+        EldersAuthFeedbackDO eldersAuthFeedbackDO = eldersAuthFeedbackDAO.selectById(id);
+        if (eldersAuthFeedbackDO != null) {
+            EldersAuthFeedbackDetailsVO eldersAuthFeedbackDetailsVO = new EldersAuthFeedbackDetailsVO();
+            BeanUtils.copyProperties(eldersAuthFeedbackDO, eldersAuthFeedbackDetailsVO);
+            return R.ok(eldersAuthFeedbackDetailsVO);
+        }
+        return R.fail();
+    }
+
+}
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
new file mode 100644
index 0000000..2fb3c82
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/EldersAuthServiceImpl.java
@@ -0,0 +1,719 @@
+package com.panzhihua.service_community.service.impl;
+
+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 com.panzhihua.common.model.vos.elders.ComEldersAuthStatisticVO;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+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.exceptions.ServiceException;
+import com.panzhihua.common.model.dtos.community.*;
+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.helper.AESUtil;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.*;
+import com.panzhihua.common.model.vos.elders.ComElderAuthUserAppVO;
+import com.panzhihua.common.model.vos.partybuilding.ComEldersAuthHistoryExcelVO;
+import com.panzhihua.common.model.vos.user.SysUserVO;
+import com.panzhihua.common.utlis.AgeUtils;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.dao.*;
+import com.panzhihua.service_community.model.dos.*;
+import com.panzhihua.service_community.service.EldersAuthService;
+
+import cn.hutool.core.util.IdcardUtil;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:03:01
+ * @describe 服务实现类
+ */
+@Slf4j
+@Service
+public class EldersAuthServiceImpl extends ServiceImpl<EldersAuthDAO, EldersAuthDO> implements EldersAuthService {
+
+    @Resource
+    private EldersAuthDAO eldersAuthDAO;
+    @Resource
+    private EldersAuthFeedbackDAO eldersAuthFeedbackDAO;
+    @Resource
+    private ComEldersAuthUserMapper comEldersAuthUserMapper;
+    @Resource
+    private ComEldersAuthElderlyMapper comEldersAuthElderlyMapper;
+    @Resource
+    private SysConfMapper sysConfDao;
+    @Resource
+    private ComEldersAuthHistoryRecordMapper comEldersAuthHistoryRecordMapper;
+    @Resource
+    private ComEldersAuthStatisticsMapper comEldersAuthStatisticsMapper;
+    @Resource
+    private ComActDAO comActDAO;
+    @Resource
+    private ComElderAuthRecordsDAO comElderAuthRecordsDAO;
+    @Resource
+    private ComElderAuthElderliesDAO comElderAuthElderliesDAO;
+    @Resource
+    private ComPensionAuthHistoryRecordMapper comPensionAuthHistoryRecordMapper;
+    @Resource
+    private ComPensionAuthRecordDAO comPensionAuthRecordDAO;
+    @Resource
+    private ComPensionAuthPensionerDAO comPensionAuthPensionerDAO;
+
+    @Value("${domain.aesKey:}")
+    private String aesKey;
+
+    /**
+     * 新增高龄认证
+     * 
+     * @param eldersAuthAddDTO
+     * @return 新增结果
+     */
+    public R add(EldersAuthAddDTO eldersAuthAddDTO) {
+        EldersAuthDO eldersAuthDO = new EldersAuthDO();
+        BeanUtils.copyProperties(eldersAuthAddDTO, eldersAuthDO);
+        eldersAuthDO.setCreateAt(new Date());
+        eldersAuthDO.setCreateBy(eldersAuthAddDTO.getSumitUserId());
+        if (eldersAuthDAO.insert(eldersAuthDO) > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 修改高龄认证
+     * 
+     * @param eldersAuthEditDTO
+     * @return 维护结果
+     */
+    public R edit(EldersAuthEditDTO eldersAuthEditDTO) {
+        EldersAuthDO eldersAuthDO = new EldersAuthDO();
+        BeanUtils.copyProperties(eldersAuthEditDTO, eldersAuthDO);
+        eldersAuthDO.setUpdateAt(new Date());
+        eldersAuthDO.setUpdateBy(eldersAuthEditDTO.getSumitUserId());
+        if (eldersAuthDAO.updateById(eldersAuthDO) > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 分页查找高龄认证
+     * 
+     * @param pageEldersAuthDTO
+     * @return 维护结果
+     */
+    public R<IPage<EldersAuthVO>> query(PageEldersAuthDTO pageEldersAuthDTO) {
+        Page page = new Page<>();
+        page.setSize(pageEldersAuthDTO.getPageSize());
+        page.setCurrent(pageEldersAuthDTO.getPageNum());
+        return R.ok(eldersAuthDAO.selectByPage(page, pageEldersAuthDTO));
+    }
+
+    /**
+     * 删除高龄认证
+     * 
+     * @param EldersAuthDeleteDTO
+     * @return 平台用户信息
+     */
+    public R delete(EldersAuthDeleteDTO EldersAuthDeleteDTO) {
+        return R.fail();
+    }
+
+    /**
+     * 查询高龄认证详细信息
+     * 
+     * @param id
+     *            高龄认证 id
+     * @return 查找结果
+     */
+    public R<EldersAuthDetailsVO> eldersAuthDetails(Long id) {
+        EldersAuthDetailsVO eldersAuthDetailsVO = eldersAuthDAO.selectDetails(id);
+        if (eldersAuthDetailsVO != null) {
+            // 社区反馈
+            List<EldersAuthFeedbackDO> list =
+                eldersAuthFeedbackDAO.selectList(new LambdaQueryWrapper<EldersAuthFeedbackDO>()
+                    .eq(EldersAuthFeedbackDO::getAuthId, eldersAuthDetailsVO.getId()));
+            List<EldersAuthFeedbackVO> listVO = new ArrayList<>();
+            list.forEach(feedDo -> {
+                EldersAuthFeedbackVO eldersAuthFeedbackVO = new EldersAuthFeedbackVO();
+                BeanUtils.copyProperties(feedDo, eldersAuthFeedbackVO);
+                listVO.add(eldersAuthFeedbackVO);
+            });
+            eldersAuthDetailsVO.setEldersAuthFeedbackVOList(listVO);
+            return R.ok(eldersAuthDetailsVO);
+        }
+        return R.fail();
+    }
+
+    /**
+     * 新增高龄认证社区反馈
+     * 
+     * @param eldersAuthFeedbackAddDTO
+     * @return 新增结果
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public R addFeedback(EldersAuthFeedbackAddDTO eldersAuthFeedbackAddDTO) {
+        EldersAuthDO eldersAuthDO = eldersAuthDAO.selectById(eldersAuthFeedbackAddDTO.getAuthId());
+        if (eldersAuthDO == null) {
+            return R.fail("认证记录不存在");
+        }
+        if (eldersAuthDO.getType() == null) {
+            return R.fail("认证方式未知");
+        }
+        if (eldersAuthDO.getType().intValue() != 1) {
+            return R.fail("当前认证方式不能进行反馈");
+        }
+        EldersAuthFeedbackDO eldersAuthFeedbackDO = new EldersAuthFeedbackDO();
+        eldersAuthFeedbackDO.setCreateBy(eldersAuthFeedbackAddDTO.getUserId());
+        eldersAuthFeedbackDO.setCreateAt(new Date());
+        BeanUtils.copyProperties(eldersAuthFeedbackAddDTO, eldersAuthFeedbackDO);
+        if (eldersAuthFeedbackDAO.insert(eldersAuthFeedbackDO) > 0) {
+            eldersAuthDO.setStatus("1");
+            eldersAuthDO.setIdCard(null);
+            int updated = eldersAuthDAO.updateById(eldersAuthDO);
+            if (updated != 1) {
+                throw new ServiceException("更新认证记录状态失败");
+            }
+            Long familyUserId = eldersAuthDO.getFamilyUserId();
+            ComEldersAuthUserDO comEldersAuthUserDO = comEldersAuthUserMapper.selectById(familyUserId);
+            /**
+             * ComEldersAuthUserDO comEldersAuthUserDOToUpdate = new ComEldersAuthUserDO();
+             * 
+             * comEldersAuthUserDOToUpdate.setId(comEldersAuthUserDO.getId());
+             * comEldersAuthUserDOToUpdate.setIsAuth(2);//是否已认证(1.是 2.否) int updatedEAU =
+             * comEldersAuthUserMapper.updateById(comEldersAuthUserDOToUpdate); if(updatedEAU!=1){ throw new
+             * ServiceException("更新认证记录状态失败"); }
+             */
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 查找高龄认证导出数据
+     * 
+     * @param pageEldersAuthDTO
+     * @return 维护结果
+     */
+    public R<List<ExcelElderAuthDTO>> queryExportData(PageEldersAuthDTO pageEldersAuthDTO) {
+        Page page = new Page<>();
+        page.setSize(pageEldersAuthDTO.getPageSize());
+        page.setCurrent(10000);
+        return R.ok(eldersAuthDAO.selectByParams(pageEldersAuthDTO));
+    }
+
+    @Override
+    public String queryDomicile(String idCard) {
+        return eldersAuthDAO.selectDomicile(idCard);
+    }
+
+    @Override
+    public R queryEldersRecord(PageComEldersRecordsDTO pageComEldersRecordsDTO) {
+        Page page = new Page<>();
+        page.setSize(pageComEldersRecordsDTO.getPageSize());
+        page.setCurrent(pageComEldersRecordsDTO.getPageNum());
+        List<ComEldersAuthRecordVO> eldersAuthDOList =
+            eldersAuthDAO.selectEldersRecordByPage(page, pageComEldersRecordsDTO);
+        return R.ok(eldersAuthDOList);
+    }
+
+    @Override
+    public R<ComEldersAuthElderlyDetailsVO> comEldersAuthElderlyDetails(Long id) {
+        EldersAuthDO eldersAuthDO = eldersAuthDAO.selectById(id);
+        if (eldersAuthDO == null) {
+            return R.fail("未查询到认证记录");
+        }
+        ComEldersAuthElderlyDetailsVO comEldersAuthElderlyDetailsVO = new ComEldersAuthElderlyDetailsVO();
+        BeanUtils.copyProperties(eldersAuthDO, comEldersAuthElderlyDetailsVO);
+
+        String communityName = eldersAuthDAO.selectCommunityNameByAuth(id);
+        comEldersAuthElderlyDetailsVO.setCommunityName(communityName);
+
+        List<EldersAuthFeedbackDO> eldersAuthFeedbackDOList = eldersAuthFeedbackDAO
+            .selectList(new LambdaQueryWrapper<EldersAuthFeedbackDO>().eq(EldersAuthFeedbackDO::getAuthId, id));
+        List<EldersAuthFeedbackVO> eldersAuthFeedbackVOList = new ArrayList<>();
+        eldersAuthFeedbackDOList.forEach(edo -> {
+            EldersAuthFeedbackVO eldersAuthFeedbackVO = new EldersAuthFeedbackVO();
+            BeanUtils.copyProperties(edo, eldersAuthFeedbackVO);
+            eldersAuthFeedbackVOList.add(eldersAuthFeedbackVO);
+        });
+        comEldersAuthElderlyDetailsVO.setFeedback(eldersAuthFeedbackVOList);
+        return R.ok(comEldersAuthElderlyDetailsVO);
+    }
+
+    @Override
+    public R communityAuthType(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, eldersAuthTypeQueryDTO.getOperUserId())
+                .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 authGetResultDTO
+     *            请求参数
+     * @return 新增结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R addAuthByEldersApp(ComEldersAuthGetResultDTO authGetResultDTO) throws Exception {
+        ComEldersAuthUserDO authUserDO = comEldersAuthUserMapper.selectById(authGetResultDTO.getAuthUserId());
+        if (authUserDO != null) {
+            String idCard = authUserDO.getIdCard();
+            EldersAuthDO eldersAuthDO = new EldersAuthDO();
+            eldersAuthDO.setIdCard(idCard);
+            eldersAuthDO.setAuthUserName(authUserDO.getName());
+            eldersAuthDO.setCreateBy(authGetResultDTO.getUserId());
+            eldersAuthDO.setCreateAt(new Date());
+            eldersAuthDO.setSumitUserId(authGetResultDTO.getUserId());
+            String domicile = this.baseMapper.selectDomicile(idCard);
+            if (org.springframework.util.StringUtils.isEmpty(domicile)) {
+                domicile = "暂无";
+            }
+            eldersAuthDO.setDomicile(domicile);
+            eldersAuthDO.setBirthDay(IdcardUtil.getBirthDate(idCard));
+            eldersAuthDO.setFamilyUserId(authUserDO.getId());
+            Integer age = IdcardUtil.getAgeByIdCard(idCard);
+
+            eldersAuthDO.setAge(age);
+            eldersAuthDO.setType(2);
+            eldersAuthDO.setVerificationResult(authGetResultDTO.getVerificationResult());
+
+            this.baseMapper.insert(eldersAuthDO);
+
+            // 认证成功 添加认证记录
+            List<ComEldersAuthHistoryRecordDO> authHistoryRecordDOList =
+                comEldersAuthHistoryRecordMapper.selectList(new QueryWrapper<ComEldersAuthHistoryRecordDO>().lambda()
+                    .eq(ComEldersAuthHistoryRecordDO::getIdCard, eldersAuthDO.getIdCard())
+                    .ge(ComEldersAuthHistoryRecordDO::getCreateAt, DateUtils.getFirstDayOfMonth()));
+            if (authHistoryRecordDOList.isEmpty()) {
+                ComEldersAuthHistoryRecordDO authHistoryRecordDO = new ComEldersAuthHistoryRecordDO();
+                authHistoryRecordDO.setUserId(authGetResultDTO.getAuthUserId());
+                authHistoryRecordDO.setAuthId(eldersAuthDO.getId());
+                BeanUtils.copyProperties(eldersAuthDO, authHistoryRecordDO);
+                authHistoryRecordDO.setId(null);
+                authHistoryRecordDO.setBrithday(AgeUtils.getAgeFormatBirthday(IdcardUtil.getBirthByIdCard(idCard)));
+                authHistoryRecordDO.setAge(age);
+                authHistoryRecordDO.setIsAuth(1);
+                authHistoryRecordDO.setDomicile(domicile);
+                comEldersAuthHistoryRecordMapper.insert(authHistoryRecordDO);
+            }
+
+            authUserDO.setIsAuth(ComEldersAuthUserDO.isAuth.yes);
+            authUserDO.setIdCard(AESUtil.encrypt128(authUserDO.getIdCard(), aesKey));
+            comEldersAuthUserMapper.updateById(authUserDO);
+
+            return R.ok(eldersAuthDO.getId());
+        }
+        log.error("人脸核验新增认证记录失败,错误原因:未查询到老人记录,老人id:" + authGetResultDTO.getAuthUserId());
+        return R.fail();
+    }
+
+    /**
+     * 高龄认证分页接口
+     * 
+     * @param authPageDTO
+     *            请求参数
+     * @return 查询结果
+     */
+    @Override
+    public R pageEldersByApp(ComEldersAuthPageDTO authPageDTO) throws Exception {
+        // 判断当前用户是否是高龄老人,如果是则将这个人新增到高龄老人的列表里
+        SysUserVO userVO = this.eldersAuthDAO.getSysUserByUserId(authPageDTO.getUserId());
+        if (userVO != null) {
+            String idCard = userVO.getIdCard();
+            userVO.setIdCard(AESUtil.encrypt128(userVO.getIdCard(), aesKey));
+            // 查询当前用户是否已存在用户关联中
+            ComEldersAuthUserDO oldAuthUserDO =
+                comEldersAuthUserMapper.selectOne(new QueryWrapper<ComEldersAuthUserDO>().lambda()
+                    .eq(ComEldersAuthUserDO::getIdCard, userVO.getIdCard()));
+            if (oldAuthUserDO == null) {
+                // 查询老人库是否存在当前用户信息
+                ComEldersAuthElderlyDO authElderlyDO =
+                    comEldersAuthElderlyMapper.selectOne(new QueryWrapper<ComEldersAuthElderlyDO>().lambda()
+                        .eq(ComEldersAuthElderlyDO::getIdCard, userVO.getIdCard()));
+                if (authElderlyDO != null) {
+                    ComEldersAuthUserDO authUserDO = new ComEldersAuthUserDO();
+                    authUserDO.setUserId(userVO.getUserId());
+                    authUserDO.setRelation(ComEldersAuthUserDO.relation.br);
+                    authUserDO.setName(userVO.getName());
+                    authUserDO.setIdCard(idCard);
+                    authUserDO.setCommunityId(authElderlyDO.getCommunityId());
+                    authUserDO.setBigAgeId(authElderlyDO.getId());
+                    comEldersAuthUserMapper.insert(authUserDO);
+                }
+            }
+        }
+
+        IPage<ComElderAuthUserAppVO> authUserAppVOIPage = comEldersAuthUserMapper
+            .findByPage(new Page(authPageDTO.getPageNum(), authPageDTO.getPageSize()), authPageDTO.getUserId());
+        if (!authUserAppVOIPage.getRecords().isEmpty()) {
+            authUserAppVOIPage.getRecords().forEach(authUser -> {
+
+                if (authUser.getIsAuth().equals(ComEldersAuthUserDO.isAuth.yes)) {
+                    List<EldersAuthDO> authDOS = eldersAuthDAO.selectList(new QueryWrapper<EldersAuthDO>().lambda()
+                        .eq(EldersAuthDO::getFamilyUserId, authUser.getElderId())
+                        .orderByDesc(EldersAuthDO::getCreateAt));
+                    if (!authDOS.isEmpty()) {
+                        EldersAuthDO authDO = authDOS.get(0);
+                        if (authDO.getType().equals(1)) {// 视频认证
+                            Integer count = eldersAuthFeedbackDAO.selectCount(new QueryWrapper<EldersAuthFeedbackDO>()
+                                .lambda().eq(EldersAuthFeedbackDO::getAuthId, authDO.getId()));
+                            if (count > 0) {
+                                authUser.setIsFeedback(1);
+                            }
+                        }
+                    }
+                }
+
+                ComEldersAuthUserDO authUserDO = comEldersAuthUserMapper.selectById(authUser.getElderId());
+                if (authUserDO != null) {
+                    try {
+                        authUser.setAge(IdcardUtil.getAgeByIdCard(authUserDO.getIdCard()));
+                    } catch (NullPointerException e) {
+                        log.error("获取用户年龄出错了:" + authUser.getIdCard());
+                    }
+                }
+            });
+        }
+        return R.ok(authUserAppVOIPage);
+    }
+
+    /**
+     * 添加高龄老人接口
+     * 
+     * @param authUserAddAppDTO
+     *            请求参数
+     * @return 添加结果
+     */
+    @Override
+    public R addEldersByApp(ComEldersAuthUserAddAppDTO authUserAddAppDTO) {
+
+        ComEldersAuthUserDO authUserDO = comEldersAuthUserMapper.selectOne(new QueryWrapper<ComEldersAuthUserDO>()
+            .lambda().eq(ComEldersAuthUserDO::getIdCard, authUserAddAppDTO.getIdCard()));
+        if (authUserDO != null) {
+            return R.fail("当前老人已存在");
+        }
+
+        String encryptedIdCard = authUserAddAppDTO.getIdCard();
+        try {
+            encryptedIdCard = AESUtil.encrypt128(authUserAddAppDTO.getIdCard(), aesKey);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        ComEldersAuthElderlyDO authElderlyDO = comEldersAuthElderlyMapper.selectOne(
+            new QueryWrapper<ComEldersAuthElderlyDO>().lambda().eq(ComEldersAuthElderlyDO::getIdCard, encryptedIdCard));
+        if (authElderlyDO == null) {
+            return R.fail("未在系统找到相符的高龄老人!请检查信息是否正确,或联系社区工作人员");
+        }
+
+        authUserDO = new ComEldersAuthUserDO();
+        BeanUtils.copyProperties(authUserAddAppDTO, authUserDO);
+        authUserDO.setBigAgeId(authElderlyDO.getId());
+        authUserDO.setName(authElderlyDO.getName());
+        if (comEldersAuthUserMapper.insert(authUserDO) > 0) {
+            return R.ok(authUserDO.getId());
+        }
+
+        return R.fail("添加失败");
+    }
+
+    /**
+     * 修改高龄老人接口
+     * 
+     * @param authUserAddAppDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    @Override
+    public R editEldersByApp(ComEldersAuthUserAddAppDTO authUserAddAppDTO) {
+
+        ComEldersAuthUserDO authUserDO = comEldersAuthUserMapper.selectById(authUserAddAppDTO.getElderId());
+        if (authUserDO == null) {
+            return R.fail("未查询到老人信息");
+        }
+        if (StringUtils.isNotEmpty(authUserAddAppDTO.getName())) {
+            authUserDO.setName(authUserAddAppDTO.getName());
+        }
+        if (authUserAddAppDTO.getRelation() != null) {
+            authUserDO.setRelation(authUserAddAppDTO.getRelation());
+        }
+        if (comEldersAuthUserMapper.updateById(authUserDO) > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    @Override
+    public R pageQueryEldersAuthRecord(PageEldersAuthRecordDTO pageEldersAuthElderlyDTO) {
+        Page page = new Page();
+        page.setCurrent(pageEldersAuthElderlyDTO.getPageNum());
+        page.setSize(pageEldersAuthElderlyDTO.getPageSize());
+        IPage<ComEldersAuthRecordForCommunityVO> ipage =
+            eldersAuthDAO.selectCommunityEldersRecordByPage(page, pageEldersAuthElderlyDTO);
+        return R.ok(ipage);
+    }
+
+    @Override
+    public R setCommunityAuthType(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 getAuthHistoryList(PageEldersAuthHistoryDTO pageEldersAuthElderlyDTO) {
+        return R.ok(comEldersAuthStatisticsMapper.findByPage(
+            new Page(pageEldersAuthElderlyDTO.getPageNum(), pageEldersAuthElderlyDTO.getPageSize()),
+            pageEldersAuthElderlyDTO));
+    }
+
+    @Override
+    public R getAuthHistoryExport(PageEldersAuthHistoryDTO pageEldersAuthElderlyDTO) {
+        Date startTime =
+            DateUtils.getYearMonthStart(pageEldersAuthElderlyDTO.getYear(), pageEldersAuthElderlyDTO.getMonth());
+        Date endTime =
+            DateUtils.getYearMonthEnd(pageEldersAuthElderlyDTO.getYear(), pageEldersAuthElderlyDTO.getMonth());
+
+        List<ComEldersAuthHistoryRecordDO> userList =
+            comEldersAuthHistoryRecordMapper.selectList(new QueryWrapper<ComEldersAuthHistoryRecordDO>().lambda()
+                .eq(ComEldersAuthHistoryRecordDO::getCommunityId, pageEldersAuthElderlyDTO.getCommunityId())
+                .ge(ComEldersAuthHistoryRecordDO::getCreateAt, startTime)
+                .le(ComEldersAuthHistoryRecordDO::getCreateAt, endTime));
+
+        List<ComEldersAuthHistoryExcelVO> authHistoryExcelVOS = new ArrayList<>();
+        userList.forEach(user -> {
+            ComEldersAuthHistoryExcelVO authHistoryExcelVO = new ComEldersAuthHistoryExcelVO();
+            BeanUtils.copyProperties(user, authHistoryExcelVO);
+            authHistoryExcelVOS.add(authHistoryExcelVO);
+        });
+        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();
+
+        //高龄认证本期期数
+        String elderAuthPeriod = DateUtils.getCurrentDateString_YYYY_MM();
+        //养老认证本期期数
+        String pensionAuthPeriod = DateUtils.getCurrentDateString_YYYY();
+
+        //查询所有老人信息并加入到老人认证历史记录表中,如果不存在则新增,存在则不做操作
+        List<ComElderAuthElderliesDO> authElderliesList = comElderAuthElderliesDAO.getAuthElderLiesList();
+        authElderliesList.forEach(authElderlies -> {
+            //查询高龄认证记录
+            ComEldersAuthHistoryRecordDO authHistoryRecordDO = comEldersAuthHistoryRecordMapper.selectOne(new QueryWrapper<ComEldersAuthHistoryRecordDO>().lambda()
+                    .eq(ComEldersAuthHistoryRecordDO::getElderliesId,authElderlies.getId())
+                    .eq(ComEldersAuthHistoryRecordDO::getAuthPeriod,elderAuthPeriod));
+            if(authHistoryRecordDO == null){
+                authHistoryRecordDO = new ComEldersAuthHistoryRecordDO();
+                BeanUtils.copyProperties(authElderlies,authHistoryRecordDO);
+                authHistoryRecordDO.setIsAuth(ComEldersAuthHistoryRecordDO.isAuth.no);
+                authHistoryRecordDO.setElderliesId(authElderlies.getId());
+                authHistoryRecordDO.setAuthPeriod(elderAuthPeriod);
+                authHistoryRecordDO.setCreateAt(nowDate);
+                authHistoryRecordDO.setBrithday(IdcardUtil.getBirthByIdCard(authElderlies.getIdCard()));
+                authHistoryRecordDO.setAge(IdcardUtil.getAgeByIdCard(authElderlies.getIdCard()));
+                comEldersAuthHistoryRecordMapper.insert(authHistoryRecordDO);
+            }
+        });
+
+        //查询所有养老人员信息并加入到老人认证历史记录表中,如果不存在则新增,存在则不做操作
+        List<ComPensionAuthPensionerDO> pensionAuthPensionerList = comPensionAuthPensionerDAO.getAuthPensionList();
+        pensionAuthPensionerList.forEach(authPension -> {
+            //查询养老认证记录
+            ComPensionAuthHistoryRecordDO pensionAuthDO = comPensionAuthHistoryRecordMapper.selectOne(new QueryWrapper<ComPensionAuthHistoryRecordDO>().lambda()
+                    .eq(ComPensionAuthHistoryRecordDO::getElderliesId,authPension.getId())
+                    .eq(ComPensionAuthHistoryRecordDO::getAuthPeriod,pensionAuthPeriod));
+            if(pensionAuthDO == null){
+                pensionAuthDO = new ComPensionAuthHistoryRecordDO();
+                BeanUtils.copyProperties(authPension,pensionAuthDO);
+                pensionAuthDO.setIsAuth(ComPensionAuthHistoryRecordDO.isAuth.no);
+                pensionAuthDO.setElderliesId(authPension.getId());
+                pensionAuthDO.setAuthPeriod(pensionAuthPeriod);
+                pensionAuthDO.setCreateAt(nowDate);
+                pensionAuthDO.setBrithday(IdcardUtil.getBirthByIdCard(authPension.getIdCard()));
+                pensionAuthDO.setAge(IdcardUtil.getAgeByIdCard(authPension.getIdCard()));
+                comPensionAuthHistoryRecordMapper.insert(pensionAuthDO);
+            }
+        });
+        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){
+        IPage<ComEldersAuthStatisticVO> authStatisticPage = comEldersAuthHistoryRecordMapper.pageAuthStatisticAdmin(
+                new Page(pageElderAuthStatisticDTO.getPageNum(),pageElderAuthStatisticDTO.getPageSize()),pageElderAuthStatisticDTO);
+        authStatisticPage.getRecords().forEach(authStatistic -> {
+            authStatistic.setAge(IdcardUtil.getAgeByIdCard(authStatistic.getIdCard()));
+            authStatistic.setBirthday(IdcardUtil.getBirth(authStatistic.getIdCard()));
+        });
+        return R.ok(authStatisticPage);
+    }
+
+    /**
+     * 高龄认证统计-标记
+     * @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/EventResourceServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/EventResourceServiceImpl.java
new file mode 100644
index 0000000..5975242
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/EventResourceServiceImpl.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.EventResourceMapper;
+import com.panzhihua.service_community.model.dos.EventResourceDO;
+import com.panzhihua.service_community.service.EventResourceService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:03:01
+ * @describe 订单表服务实现类
+ */
+@Slf4j
+@Service
+public class EventResourceServiceImpl extends ServiceImpl<EventResourceMapper, EventResourceDO>
+    implements EventResourceService {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/GridBuildRelationServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/GridBuildRelationServiceImpl.java
new file mode 100644
index 0000000..8a7c535
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/GridBuildRelationServiceImpl.java
@@ -0,0 +1,61 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.List;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.dao.GridBuildRelationDAO;
+import com.panzhihua.service_community.model.dos.GridBuildRelationDO;
+import com.panzhihua.service_community.service.GridBuildRelationService;
+
+/**
+ * program 攀枝花智慧社区项目 description 特殊人群管理API
+ *
+ * @author manailin Date 2021-01-22 15:30
+ **/
+@Service
+public class GridBuildRelationServiceImpl extends ServiceImpl<GridBuildRelationDAO, GridBuildRelationDO>
+    implements GridBuildRelationService {
+
+    /**
+     * description 批量保存重点人群人员信息 处理逻辑:同一个人的信息可以被多个社区重复录入 一个人的信息如果被同一个社区重复导入。以最新的导入数据为准。将之前的数据进行更新操作。
+     *
+     * @param keyList
+     *            重点人群信息
+     * @return R 保存结果
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R saveBatchGridBuildRelation(List<GridBuildRelationDO> keyList) {
+        keyList.forEach(keyPersonInfoDTO -> {
+            GridBuildRelationDO dbKeyPerson = checkExistFromDb(keyPersonInfoDTO);
+            if (dbKeyPerson != null) {
+                // 已经存在数据,进行数据更新操作
+                GridBuildRelationDO keyPersonInfoDO = new GridBuildRelationDO();
+                BeanUtils.copyProperties(keyPersonInfoDTO, keyPersonInfoDO);
+                keyPersonInfoDO.setId(dbKeyPerson.getId());
+                updateById(keyPersonInfoDO);
+            } else {
+                GridBuildRelationDO keyPersonInfoDO = new GridBuildRelationDO();
+                BeanUtils.copyProperties(keyPersonInfoDTO, keyPersonInfoDO);
+                save(keyPersonInfoDO);
+            }
+        });
+        return R.ok();
+    }
+
+    private GridBuildRelationDO checkExistFromDb(GridBuildRelationDO gridBuildRelationDO) {
+        return baseMapper.selectOne(
+            new QueryWrapper<GridBuildRelationDO>().eq("grid_community_id", gridBuildRelationDO.getGridCommunityId())
+                .eq("grid_id", gridBuildRelationDO.getGridId()).eq("village_id", gridBuildRelationDO.getVillageId())
+                .eq("build_id", gridBuildRelationDO.getBuildId()));
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/KeyPersonInfoServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/KeyPersonInfoServiceImpl.java
new file mode 100644
index 0000000..53fef7e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/KeyPersonInfoServiceImpl.java
@@ -0,0 +1,121 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.Date;
+import java.util.List;
+
+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 com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.enums.KeyPersonLabelEnum;
+import com.panzhihua.common.model.dtos.community.ComMngPopulationTagCardNoDTO;
+import com.panzhihua.common.model.dtos.community.KeyPersonInfoDTO;
+import com.panzhihua.common.model.helper.AESUtil;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.dao.KeyPersonInfoDAO;
+import com.panzhihua.service_community.model.dos.ComMngPopulationDO;
+import com.panzhihua.service_community.model.dos.KeyPersonInfoDO;
+import com.panzhihua.service_community.service.ComMngPopulationService;
+import com.panzhihua.service_community.service.KeyPersonInfoService;
+
+/**
+ * program 攀枝花智慧社区项目 description 特殊人群管理API
+ *
+ * @author manailin Date 2021-01-22 15:30
+ **/
+@Service
+public class KeyPersonInfoServiceImpl extends ServiceImpl<KeyPersonInfoDAO, KeyPersonInfoDO>
+    implements KeyPersonInfoService {
+
+    @Resource
+    private ComMngPopulationService comMngPopulationService;
+
+    @Value("${domain.aesKey:}")
+    private String aesKey;
+
+    /**
+     * description 批量保存重点人群人员信息 处理逻辑:同一个人的信息可以被多个社区重复录入 一个人的信息如果被同一个社区重复导入。以最新的导入数据为准。将之前的数据进行更新操作。
+     *
+     * @param list
+     *            重点人群信息
+     * @return R 保存结果
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R saveBatchKeyPerson(List<KeyPersonInfoDTO> list) {
+        list.forEach(keyPersonInfoDTO -> {
+            KeyPersonInfoDO dbKeyPerson = checkExistFromDb(keyPersonInfoDTO);
+            ComMngPopulationDO population = comMngPopulationService.getPopulationByCardNo(keyPersonInfoDTO.getCardNo());
+            if (population != null) {
+                keyPersonInfoDTO.setUserId(population.getId());
+            }
+            if (dbKeyPerson != null) {
+                // 已经存在数据,进行数据更新操作
+                KeyPersonInfoDO keyPersonInfoDO = new KeyPersonInfoDO();
+                BeanUtils.copyProperties(keyPersonInfoDTO, keyPersonInfoDO);
+                keyPersonInfoDO.setId(dbKeyPerson.getId());
+                ComMngPopulationTagCardNoDTO comMngPopulationTagCardNoDTO = new ComMngPopulationTagCardNoDTO();
+                comMngPopulationTagCardNoDTO.setCardNo(dbKeyPerson.getCardNo());
+                comMngPopulationTagCardNoDTO.setLabel(calculateLabel(dbKeyPerson));
+                comMngPopulationService.editTagPopulationByCardNo(comMngPopulationTagCardNoDTO);
+                try {
+                    String aesCardNo = AESUtil.encrypt128(keyPersonInfoDTO.getCardNo(), aesKey);
+                    String phone = AESUtil.encrypt128(keyPersonInfoDTO.getPhone(), aesKey);
+                    String guardianPhone = AESUtil.encrypt128(keyPersonInfoDTO.getGuardianPhone(), aesKey);
+                    keyPersonInfoDO.setCardNo(aesCardNo);
+                    keyPersonInfoDO.setPhone(phone);
+                    keyPersonInfoDO.setGuardianPhone(guardianPhone);
+                    keyPersonInfoDO.setVisiterType(Integer.parseInt(keyPersonInfoDTO.getVisiterType()));
+                    keyPersonInfoDO.setInvalid(false);
+                    keyPersonInfoDO.setSubmitDate(new Date());
+                    updateById(keyPersonInfoDO);
+                } catch (Exception e) {
+                    log.error("根据身份证查询残疾人群业务-加密证件信息出错");
+                }
+            } else {
+                KeyPersonInfoDO keyPersonInfoDO = new KeyPersonInfoDO();
+                BeanUtils.copyProperties(keyPersonInfoDTO, keyPersonInfoDO);
+                keyPersonInfoDO.setVisiterType(Integer.parseInt(keyPersonInfoDTO.getVisiterType()));
+                keyPersonInfoDO.setInvalid(false);
+                keyPersonInfoDO.setSubmitDate(new Date());
+                save(keyPersonInfoDO);
+            }
+        });
+        return R.ok();
+    }
+
+    private String calculateLabel(KeyPersonInfoDO dbKeyPerson) {
+        switch (dbKeyPerson.getVisiterType()) {
+            case 1:
+                return KeyPersonLabelEnum.XD.getName();
+            case 2:
+                return KeyPersonLabelEnum.ZJ.getName();
+
+            case 3:
+                return KeyPersonLabelEnum.XJ.getName();
+
+            case 4:
+                return KeyPersonLabelEnum.QT.getName();
+            default:
+                return "";
+        }
+    }
+
+    private KeyPersonInfoDO checkExistFromDb(KeyPersonInfoDTO keyPersonInfoDTO) {
+        try {
+            String aesCardNo = AESUtil.encrypt128(keyPersonInfoDTO.getCardNo(), aesKey);
+            return baseMapper.selectOne(new QueryWrapper<KeyPersonInfoDO>().eq("act_id", keyPersonInfoDTO.getActId())
+                .eq("card_no", aesCardNo).eq("visiter_type", keyPersonInfoDTO.getVisiterType()));
+        } catch (Exception e) {
+            log.error("根据身份证查询特殊人群业务-加密证件信息出错");
+        }
+        return null;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsConfigServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsConfigServiceImpl.java
new file mode 100644
index 0000000..6ed72b0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsConfigServiceImpl.java
@@ -0,0 +1,68 @@
+package com.panzhihua.service_community.service.impl;
+
+import static java.util.Objects.nonNull;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsConfigVO;
+import com.panzhihua.service_community.dao.McsConfigDAO;
+import com.panzhihua.service_community.entity.McsConfig;
+import com.panzhihua.service_community.service.McsConfigService;
+
+/**
+ * (McsConfig)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:07
+ */
+@Service("mcsConfigService")
+public class McsConfigServiceImpl extends ServiceImpl<McsConfigDAO, McsConfig> implements McsConfigService {
+
+    /**
+     * 获取所有数字商业街配置
+     * @return
+     */
+    @Override
+    public R getAllMcsConfig() {
+        List<McsConfig> mcsConfigs = this.baseMapper.selectList(null);
+        List<McsConfigVO> configList = new ArrayList<>();
+        if (!mcsConfigs.isEmpty()) {
+            mcsConfigs.forEach(e -> {
+                McsConfigVO configVO = new McsConfigVO();
+                BeanUtils.copyProperties(e, configVO);
+                configList.add(configVO);
+            });
+        }
+        return R.ok(configList);
+    }
+
+    /**
+     * 修改数字商业街配置
+     * @param configs
+     * @return
+     */
+    @Override
+    public R putMcsConfig(List<McsConfigVO> configs) {
+        if (nonNull(configs) && !configs.isEmpty()) {
+            List<McsConfig> mcsConfigs = new ArrayList<>();
+            configs.forEach(e -> {
+                McsConfig mcsConfig = this.baseMapper.selectOne(new QueryWrapper<McsConfig>().lambda().eq(McsConfig::getKey, e.getKey()));
+                if (nonNull(mcsConfig)) {
+                    mcsConfig.setValue(e.getValue());
+                    mcsConfigs.add(mcsConfig);
+                }
+            });
+            if (!mcsConfigs.isEmpty()) {
+                this.updateBatchById(mcsConfigs);
+            }
+        }
+        return R.ok();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsCouponServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsCouponServiceImpl.java
new file mode 100644
index 0000000..b18c0a2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsCouponServiceImpl.java
@@ -0,0 +1,154 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.util.Date;
+import java.util.List;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.GameStatisticsVO;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.VerifiedReturnVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.service_community.dao.McsGameDAO;
+import com.panzhihua.service_community.dao.McsMerchantDAO;
+import com.panzhihua.service_community.dao.McsVerifiedRecordDAO;
+import com.panzhihua.service_community.entity.McsGame;
+import com.panzhihua.service_community.entity.McsMerchant;
+import com.panzhihua.service_community.entity.McsVerifiedRecord;
+import org.springframework.stereotype.Service;
+
+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.model.dtos.community.microCommercialStreet.PageJoinGameListDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsCouponVO;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.MyCouponVO;
+import com.panzhihua.service_community.dao.McsCouponDAO;
+import com.panzhihua.service_community.entity.McsCoupon;
+import com.panzhihua.service_community.service.McsCouponService;
+
+import javax.annotation.Resource;
+
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+
+/**
+ * (McsCoupon)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:08
+ */
+@Service("mcsCouponService")
+public class McsCouponServiceImpl extends ServiceImpl<McsCouponDAO, McsCoupon> implements McsCouponService {
+
+    @Resource
+    private McsVerifiedRecordDAO mcsVerifiedRecordDAO;
+    @Resource
+    private McsGameDAO mcsGameDAO;
+    @Resource
+    private UserService userService;
+    @Resource
+    private McsMerchantDAO mcsMerchantDAO;
+
+    /**
+     * 我的戳戳卷
+     * @return
+     * @param type
+     * @param userId
+     */
+    @Override
+    public R getMyCoupon(Integer type, Long userId) {
+        MyCouponVO myCouponVO = this.baseMapper.getMyCouponData(userId);
+        List<McsCouponVO> mcsCoupons = this.baseMapper.getCouponList(type, userId);
+        myCouponVO.setCouponList(mcsCoupons);
+        return R.ok(myCouponVO);
+    }
+
+    /**
+     * 我的评价-参与游戏列表
+     * @param pageJoinGameListDTO
+     * @return
+     */
+    @Override
+    public R getJoinGameList(PageJoinGameListDTO pageJoinGameListDTO) {
+        Page page = new Page<>();
+        page.setSize(pageJoinGameListDTO.getPageSize());
+        page.setCurrent(pageJoinGameListDTO.getPageNum());
+        IPage<McsCouponVO> mcsCoupons = this.baseMapper.pageJoinGameList(page, pageJoinGameListDTO);
+        return R.ok(mcsCoupons);
+    }
+
+    /**
+     * 戳戳卷核销
+     * @param couponId
+     * @param userId
+     * @return
+     */
+    @Override
+    public R verifyMcsCoupon(Long couponId, Long userId) {
+        McsCoupon mcsCoupon = this.baseMapper.selectById(couponId);
+        if (isNull(mcsCoupon)) {
+            return R.fail("无效券码");
+        }
+        McsGame mcsGame = mcsGameDAO.selectById(mcsCoupon.getGameId());
+        if (isNull(mcsGame)) {
+            return R.fail("资源不存在");
+        }
+        McsMerchant mcsMerchant = mcsMerchantDAO.selectById(mcsGame.getMerchantId());
+        if (isNull(mcsMerchant)) {
+            return R.fail("资源不存在");
+        }
+        if (!mcsMerchant.getUserId().equals(userId)) {
+            return R.fail("限指定商家核验");
+        }
+        if (mcsCoupon.getIsVerified()) {
+            return R.fail("该券已核销");
+        }
+        Date nowDate = new Date();
+        if (mcsGame.getExpireAt().before(nowDate)) {
+            return R.fail("已过期");
+        }
+        R<LoginUserInfoVO> userInfoVOR = userService.getUserInfoByUserId(mcsCoupon.getUserId().toString());
+        String nickName;
+        if (R.isOk(userInfoVOR) && nonNull(userInfoVOR.getData())) {
+            LoginUserInfoVO loginUserInfoVO = JSONObject.parseObject(JSONObject.toJSONString(userInfoVOR.getData()), LoginUserInfoVO.class);
+            nickName = loginUserInfoVO.getName();
+        } else {
+            nickName = "默认昵称";
+        }
+        McsVerifiedRecord mcsVerifiedRecord = new McsVerifiedRecord();
+        mcsVerifiedRecord.setCouponId(couponId);
+        mcsVerifiedRecord.setAward(mcsCoupon.getAward());
+        mcsVerifiedRecord.setName(mcsGame.getName());
+        mcsVerifiedRecord.setNickName(nickName);
+        mcsVerifiedRecord.setGameId(mcsGame.getId());
+        mcsVerifiedRecord.setMerchantId(mcsGame.getMerchantId());
+        int num = mcsVerifiedRecordDAO.insert(mcsVerifiedRecord);
+        if (num > 0) {
+            mcsCoupon.setIsVerified(true);
+            this.baseMapper.updateById(mcsCoupon);
+            VerifiedReturnVO verifiedReturnVO = new VerifiedReturnVO();
+            verifiedReturnVO.setAward(mcsCoupon.getAward());
+            verifiedReturnVO.setAwardType(mcsGame.getAwardType());
+            verifiedReturnVO.setCouponId(couponId);
+            verifiedReturnVO.setCover(mcsGame.getCover());
+            verifiedReturnVO.setGameName(mcsGame.getName());
+            verifiedReturnVO.setNickName(nickName);
+            verifiedReturnVO.setVerifiedAt(nowDate);
+            return R.ok(verifiedReturnVO);
+        }
+        return R.fail("核验失败,请重试");
+    }
+
+    /**
+     * 游戏统计
+     * @param userId
+     * @return
+     */
+    @Override
+    public R getMcsGameStatistics(Long userId) {
+        GameStatisticsVO gameStatisticsVO = this.baseMapper.getMcsGameStatistics(userId);
+        return R.ok(gameStatisticsVO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsEvaluateServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsEvaluateServiceImpl.java
new file mode 100644
index 0000000..bf696d7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsEvaluateServiceImpl.java
@@ -0,0 +1,96 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.McsEvaluateDTO;
+import com.panzhihua.service_community.dao.McsCouponDAO;
+import com.panzhihua.service_community.entity.McsCoupon;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+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.model.dtos.community.microCommercialStreet.PageMcsEvaluateDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsEvaluateVO;
+import com.panzhihua.service_community.dao.McsEvaluateDAO;
+import com.panzhihua.service_community.entity.McsEvaluate;
+import com.panzhihua.service_community.service.McsEvaluateService;
+
+import javax.annotation.Resource;
+
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+
+/**
+ * (McsEvaluate)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:09
+ */
+@Service("mcsEvaluateService")
+public class McsEvaluateServiceImpl extends ServiceImpl<McsEvaluateDAO, McsEvaluate> implements McsEvaluateService {
+
+    @Resource
+    private McsCouponDAO mcsCouponDAO;
+
+    /**
+     * 分页查询评价记录
+     * @param pageMcsEvaluateDTO
+     * @return
+     */
+    @Override
+    public R pageMcsEvaluate(PageMcsEvaluateDTO pageMcsEvaluateDTO) {
+        Page page = new Page<>();
+        page.setSize(pageMcsEvaluateDTO.getPageSize());
+        page.setCurrent(pageMcsEvaluateDTO.getPageNum());
+        IPage<McsEvaluateVO> mcsEvaluates = this.baseMapper.pageMcsEvaluate(page, pageMcsEvaluateDTO);
+        return R.ok(mcsEvaluates);
+    }
+
+    /**
+     * 查询评价记录详情
+     * @param evaluateId
+     * @return
+     */
+    @Override
+    public R getMcsEvaluate(Long evaluateId) {
+        return R.ok(this.baseMapper.getMcsEvaluate(evaluateId));
+    }
+
+    /**
+     * 删除评价记录
+     * @param evaluateId
+     * @return
+     */
+    @Override
+    public R deleteMcsEvaluate(Long evaluateId) {
+        this.baseMapper.deleteById(evaluateId);
+        return R.ok();
+    }
+
+    /**
+     * 新增评价记录
+     * @param mcsEvaluateDTO
+     * @return
+     */
+    @Override
+    public R addMcsEvaluate(McsEvaluateDTO mcsEvaluateDTO) {
+        McsCoupon mcsCoupon = mcsCouponDAO.selectById(mcsEvaluateDTO.getCouponId());
+        if (isNull(mcsCoupon)) {
+            return R.fail("资源不存在");
+        }
+        McsEvaluate mcsEvaluate = this.baseMapper.selectOne(new QueryWrapper<McsEvaluate>().lambda().eq(McsEvaluate::getCouponId, mcsEvaluateDTO.getCouponId()));
+        if (nonNull(mcsEvaluate)) {
+            return R.fail("请勿重复评论");
+        }
+        mcsEvaluate = new McsEvaluate();
+        BeanUtils.copyProperties(mcsEvaluateDTO, mcsEvaluate);
+        mcsEvaluate.setGameId(mcsCoupon.getGameId());
+        int num = this.baseMapper.insert(mcsEvaluate);
+        if (num > 0) {
+            return R.ok();
+        }
+        return R.fail("请求失败,请重试");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsGameServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsGameServiceImpl.java
new file mode 100644
index 0000000..67f7d1c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsGameServiceImpl.java
@@ -0,0 +1,562 @@
+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.Random;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+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.model.dtos.community.microCommercialStreet.McsGameDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageMcsGameDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.SetPopularForGameDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.SetShelfForGameDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsCouponVO;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsGameVO;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.TopStatisticsVO;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.service_community.dao.McsCouponDAO;
+import com.panzhihua.service_community.dao.McsEvaluateDAO;
+import com.panzhihua.service_community.dao.McsGameDAO;
+import com.panzhihua.service_community.dao.McsMerchantDAO;
+import com.panzhihua.service_community.entity.McsCoupon;
+import com.panzhihua.service_community.entity.McsGame;
+import com.panzhihua.service_community.entity.McsMerchant;
+import com.panzhihua.service_community.service.McsGameService;
+import com.panzhihua.service_community.util.QRCodeUtil;
+
+/**
+ * (McsGame)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:09
+ */
+@Service("mcsGameService")
+public class McsGameServiceImpl extends ServiceImpl<McsGameDAO, McsGame> implements McsGameService {
+
+    @Resource
+    private McsMerchantDAO mcsMerchantDAO;
+    @Resource
+    private McsCouponDAO mcsCouponDAO;
+    @Resource
+    private McsEvaluateDAO mcsEvaluateDAO;
+
+    /**
+     * 分页查询戳戳游戏
+     * @param pageMcsGameDTO
+     * @return
+     */
+    @Override
+    public R pageMcsGame(PageMcsGameDTO pageMcsGameDTO) {
+        Page page = new Page<>();
+        page.setSize(pageMcsGameDTO.getPageSize());
+        page.setCurrent(pageMcsGameDTO.getPageNum());
+        IPage<McsGameVO> mcsGames = this.baseMapper.pageMcsGame(page, pageMcsGameDTO);
+        return R.ok(mcsGames);
+    }
+
+    /**
+     * 设为/取消游戏热门
+     * @param setPopularForGameDTO
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R setPopularForGame(SetPopularForGameDTO setPopularForGameDTO) {
+        McsGame mcsGame = this.baseMapper.selectById(setPopularForGameDTO.getGameId());
+        if (isNull(mcsGame)) {
+            return R.fail("修改数据不存在");
+        }
+        Integer type = setPopularForGameDTO.getType();
+        if (type.equals(1)) {
+            //设为热门
+            List<McsGame> popularGames = this.baseMapper.selectList(new QueryWrapper<McsGame>().lambda().eq(McsGame::getIsPopular, true));
+            if (nonNull(popularGames) && !popularGames.isEmpty()) {
+                popularGames.forEach(e -> e.setIsPopular(false));
+                this.updateBatchById(popularGames);
+            }
+            mcsGame.setIsPopular(true);
+        } else if (type.equals(2)) {
+            //取消热门
+            mcsGame.setIsPopular(false);
+        } else {
+            return R.fail("未知错误");
+        }
+        int num = this.baseMapper.updateById(mcsGame);
+        if (num > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败,请重新尝试");
+    }
+
+    /**
+     * 上架/下架戳戳游戏
+     * @param setShelfForGameDTO
+     * @return
+     */
+    @Override
+    public R setShelfForGame(SetShelfForGameDTO setShelfForGameDTO) {
+        McsGame mcsGame = this.baseMapper.selectById(setShelfForGameDTO.getGameId());
+        if (isNull(mcsGame)) {
+            return R.fail("修改数据不存在");
+        }
+        Integer type = setShelfForGameDTO.getType();
+        if (type.equals(1)) {
+            //上架
+            McsMerchant mcsMerchant = mcsMerchantDAO.selectById(mcsGame.getMerchantId());
+            Integer publishLimit = mcsMerchant.getPublishLimit();
+            Integer publishCount = this.baseMapper.selectPublishCount(mcsGame.getMerchantId());
+            if (publishCount >= publishLimit) {
+                return R.fail("空闲戳戳点不足");
+            }
+            mcsGame.setStatus(2);
+        } else if (type.equals(2)) {
+            //下架
+            mcsGame.setStatus(3);
+        } else {
+            return R.fail("未知错误");
+        }
+        int num = this.baseMapper.updateById(mcsGame);
+        if (num > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败,请重新尝试");
+    }
+
+    /**
+     * 删除戳戳游戏
+     * @param gameId
+     * @param userId
+     * @return
+     */
+    @Override
+    public R deleteMcsGame(Long gameId, Long userId) {
+        McsGame mcsGame = this.baseMapper.selectById(gameId);
+        if (isNull(mcsGame)) {
+            return R.fail("修改数据不存在");
+        }
+        mcsGame.setIsDel(true);
+        mcsGame.setStatus(McsGame.Status.yxj);
+        mcsGame.setUpdatedBy(userId);
+        int num = this.baseMapper.updateById(mcsGame);
+        if (num > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败,请重新尝试");
+    }
+
+    /**
+     * 新增戳戳游戏
+     * @param mcsGameDTO
+     * @return
+     */
+    @Override
+    public R addMcsGame(McsGameDTO mcsGameDTO) {
+        Long userId = mcsGameDTO.getCreatedBy();
+        McsMerchant mcsMerchant = mcsMerchantDAO.selectOne(new QueryWrapper<McsMerchant>().lambda().eq(McsMerchant::getUserId, userId));
+        if (isNull(mcsMerchant)) {
+            return R.fail("未查询到商家信息");
+        }
+        Integer type = mcsGameDTO.getType();
+        McsGame mcsGame = new McsGame();
+        if (type.equals(1)) {
+            //1.戳戳币游戏
+            Integer allocation = mcsGameDTO.getAllocation();
+            Integer coins = mcsGameDTO.getCoins();
+            if (isNull(allocation)) {
+                return R.fail("缺少分配方式");
+            }
+            if (isNull(coins)) {
+                return R.fail("未设置戳戳币额度");
+            }
+            if (allocation.equals(1)) {
+                mcsGame.setSurplusCoins(mcsGameDTO.getCoins());
+            }
+        } else if (type.equals(2)) {
+            //2.体验游戏
+            Integer awardType = mcsGameDTO.getAwardType();
+            if (isNull(awardType)) {
+                return R.fail("缺少奖励类型");
+            }
+        } else {
+            return R.fail("未知错误");
+        }
+        BeanUtils.copyProperties(mcsGameDTO, mcsGame);
+        mcsGame.setSurplusCoupons(mcsGameDTO.getCoupons());
+        mcsGame.setStatus(McsGame.Status.wfb);
+        mcsGame.setMerchantId(mcsMerchant.getId());
+        int num = this.baseMapper.insert(mcsGame);
+        if (num > 0) {
+            return R.ok();
+        }
+        return R.fail("新增失败,请重新尝试");
+    }
+
+    /**
+     * 编辑戳戳游戏
+     * @param mcsGameDTO
+     * @return
+     */
+    @Override
+    public R putMcsGame(McsGameDTO mcsGameDTO) {
+        McsGame mcsGame = this.baseMapper.selectById(mcsGameDTO.getId());
+        if (isNull(mcsGame)) {
+            return R.fail("资源不存在");
+        }
+        Integer type = mcsGameDTO.getType();
+        if (type.equals(1)) {
+            //1.戳戳币游戏
+            Integer allocation = mcsGameDTO.getAllocation();
+            Integer coins = mcsGameDTO.getCoins();
+            if (isNull(allocation)) {
+                return R.fail("缺少分配方式");
+            }
+            if (isNull(coins)) {
+                return R.fail("未设置戳戳币额度");
+            }
+            Integer beforeCoins = mcsGame.getCoins();
+            Integer beforeSurplusCoins = mcsGame.getSurplusCoins();
+            if (isNull(beforeSurplusCoins)) {
+                beforeSurplusCoins = beforeCoins;
+            }
+            Integer beforeUsedCoins = beforeCoins - beforeSurplusCoins;
+            Integer surplusCoins = coins - beforeUsedCoins;
+            if (surplusCoins < 0) {
+                return R.fail("戳戳币总额少于已发出的数量");
+            }
+            mcsGame.setSurplusCoins(surplusCoins);
+        } else if (type.equals(2)) {
+            //2.体验游戏
+            Integer awardType = mcsGameDTO.getAwardType();
+            if (isNull(awardType)) {
+                return R.fail("缺少奖励类型");
+            }
+        } else {
+            return R.fail("未知错误");
+        }
+        Integer beforeCoupons = mcsGame.getCoupons();
+        Integer beforeSurplusCoupons = mcsGame.getSurplusCoupons();
+        Integer beforeUsedCoupons = beforeCoupons - beforeSurplusCoupons;
+        BeanUtils.copyProperties(mcsGameDTO, mcsGame);
+        Integer coupons = mcsGame.getCoupons();
+        Integer surplusCoupons = coupons - beforeUsedCoupons;
+        if (surplusCoupons < 0) {
+            return R.fail("卷总数少于已发出的数量");
+        }
+        mcsGame.setSurplusCoupons(surplusCoupons);
+        int num = this.baseMapper.updateById(mcsGame);
+        if (num > 0) {
+            return R.ok();
+        }
+        return R.fail("编辑失败,请重新尝试");
+    }
+
+    /**
+     * 发布戳戳游戏
+     * @param gameId
+     * @param userId
+     * @return
+     */
+    @Override
+    public R publishMcsGame(Long gameId, Long userId) {
+        McsGame mcsGame = this.baseMapper.selectById(gameId);
+        if (isNull(mcsGame)) {
+            return R.fail("资源不存在");
+        }
+        McsMerchant mcsMerchant = mcsMerchantDAO.selectById(mcsGame.getMerchantId());
+        Integer publishLimit = mcsMerchant.getPublishLimit();
+        Integer publishCount = this.baseMapper.selectPublishCount(mcsGame.getMerchantId());
+        if (publishCount >= publishLimit) {
+            return R.fail("空闲戳戳点不足");
+        }
+        mcsGame.setStatus(McsGame.Status.jxz);
+        mcsGame.setPublishAt(new Date());
+        mcsGame.setUpdatedBy(userId);
+        int num = this.baseMapper.updateById(mcsGame);
+        if (num > 0) {
+            return R.ok();
+        }
+        return R.fail("发布失败,请重新尝试");
+    }
+
+    /**
+     * 结束戳戳游戏
+     * @param gameId
+     * @param userId
+     * @return
+     */
+    @Override
+    public R finishMcsGame(Long gameId, Long userId) {
+        McsGame mcsGame = this.baseMapper.selectById(gameId);
+        if (isNull(mcsGame)) {
+            return R.fail("资源不存在");
+        }
+        mcsGame.setStatus(McsGame.Status.yjs);
+        mcsGame.setUpdatedBy(userId);
+        int num = this.baseMapper.updateById(mcsGame);
+        if (num > 0) {
+            return R.ok();
+        }
+        return R.fail("结束失败,请重新尝试");
+    }
+
+    /**
+     * 戳戳游戏顶部统计数据
+     * @param userId
+     * @param type
+     * @return
+     */
+    @Override
+    public R getTopStatistics(Long userId, Integer type) {
+        McsMerchant mcsMerchant = mcsMerchantDAO.selectOne(new QueryWrapper<McsMerchant>().lambda().eq(McsMerchant::getUserId, userId));
+        if (isNull(mcsMerchant)) {
+            return R.fail("未查询到商家信息");
+        }
+        TopStatisticsVO topStatisticsVO = new TopStatisticsVO();
+        topStatisticsVO.setExpireAt(mcsMerchant.getExpireAt());
+        if (nonNull(mcsMerchant.getExpireAt())) {
+            int surplusLitDays = DateUtils.retrieveRemainingDays(mcsMerchant.getExpireAt());
+            topStatisticsVO.setSurplusLitDays(surplusLitDays > 0 ? surplusLitDays : 0);
+        }
+        Integer appliedCount = this.baseMapper.selectAppliedCount(mcsMerchant.getId(), type);
+        topStatisticsVO.setAppliedTotal(appliedCount);
+        Integer verifiedCount = this.baseMapper.selectVerifiedCount(mcsMerchant.getId(), type);
+        topStatisticsVO.setVerifiedTotal(verifiedCount);
+
+        Integer publishLimit = mcsMerchant.getPublishLimit();
+        Integer publishCount = this.baseMapper.selectPublishCount(mcsMerchant.getId());
+        Integer idleTotal = publishLimit - publishCount;
+        topStatisticsVO.setIdleTotal(idleTotal > 0 ? idleTotal : 0);
+        return R.ok(topStatisticsVO);
+    }
+
+    /**
+     * 戳戳卷领取
+     * @param gameId
+     * @param userId
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R applyMcsCoupon(Long gameId, Long userId) {
+        McsGame mcsGame = this.baseMapper.selectById(gameId);
+        if (isNull(mcsGame) || mcsGame.getIsDel()) {
+            return R.fail("游戏已下架");
+        }
+        Integer userAppliedCount = mcsCouponDAO.selectCount(new QueryWrapper<McsCoupon>().lambda().eq(McsCoupon::getGameId, gameId).eq(McsCoupon::getUserId, userId));
+        if (userAppliedCount > 0) {
+            return R.fail("请勿重复领取");
+        }
+        Integer surplusCoupons = mcsGame.getSurplusCoupons();
+        if (surplusCoupons <= 0) {
+            return R.fail("抢光了");
+        }
+        McsCoupon mcsCoupon = new McsCoupon();
+        Long snowflakeId = Snowflake.getId();
+        mcsCoupon.setId(snowflakeId);
+        mcsCoupon.setGameId(gameId);
+        mcsCoupon.setUserId(userId);
+        mcsCoupon.setQrCode(QRCodeUtil.getBase64QRCode(snowflakeId.toString()));
+        Integer type = mcsGame.getType();
+        if (type.equals(1)) {
+            //戳戳币游戏
+            Integer allocation = mcsGame.getAllocation();
+            if (allocation.equals(1)) {
+                //随机分配
+                Integer surplusCoins = mcsGame.getSurplusCoins();
+                Integer coin = getRandomCoins(surplusCoins, mcsGame.getSurplusCoupons());
+                mcsCoupon.setCoin(coin);
+                mcsCoupon.setAward("戳戳币:" + coin);
+                mcsGame.setSurplusCoins(surplusCoins - coin);
+            } else {
+                //固定值
+                mcsCoupon.setCoin(mcsGame.getCoins());
+                mcsCoupon.setAward("戳戳币:" + mcsGame.getCoins());
+            }
+        } else {
+            //体验游戏
+            Integer awardType = mcsGame.getAwardType();
+            if (awardType.equals(1)) {
+                mcsCoupon.setAward("免费领");
+            } else if (awardType.equals(2)) {
+                mcsCoupon.setAward("产品试用");
+            } else if (awardType.equals(3)) {
+                mcsCoupon.setAward("消费赠礼");
+            } else {
+                mcsCoupon.setAward("优惠券");
+            }
+        }
+        int num = mcsCouponDAO.insert(mcsCoupon);
+        if (num > 0) {
+            mcsGame.setSurplusCoupons(surplusCoupons - 1);
+            this.baseMapper.updateById(mcsGame);
+            McsCouponVO mcsCouponVO = new McsCouponVO();
+            mcsCouponVO.setId(snowflakeId);
+            mcsCouponVO.setIsVerified(false);
+            mcsCouponVO.setQrCode(mcsCoupon.getQrCode());
+            mcsCouponVO.setAward(mcsCoupon.getAward());
+            return R.ok(mcsCouponVO);
+        }
+        return R.fail("领取失败,请重试");
+    }
+
+    /**
+     * h5分页查询戳戳游戏
+     * @param pageMcsGameDTO
+     * @return
+     */
+    @Override
+    public R pageH5McsGame(PageMcsGameDTO pageMcsGameDTO) {
+        Page page = new Page<>();
+        page.setSize(pageMcsGameDTO.getPageSize());
+        page.setCurrent(pageMcsGameDTO.getPageNum());
+        IPage<McsGameVO> mcsGames = this.baseMapper.pageH5McsGame(page, pageMcsGameDTO);
+        return R.ok(mcsGames);
+    }
+
+    /**
+     * 游戏详情
+     * @param gameId
+     * @return
+     */
+    @Override
+    public R getMcsGame(Long gameId) {
+        McsGameVO mcsGameVO = this.baseMapper.selectDetailById(gameId);
+        Integer gameCount = this.baseMapper.selectCount(new QueryWrapper<McsGame>().lambda()
+                .eq(McsGame::getMerchantId, mcsGameVO.getMerchantId()).eq(McsGame::getStatus, McsGame.Status.jxz)
+                .eq(McsGame::getType, mcsGameVO.getType()).eq(McsGame::getIsDel, false));
+        mcsGameVO.setGameCount(gameCount);
+        return R.ok(mcsGameVO);
+    }
+
+    /**
+     * 定时任务-每隔5分钟执行一次,将已到期的微商业街游戏结束
+     * @return
+     */
+    @Override
+    public R endStatusForMcsGame() {
+        List<McsGame> games = this.baseMapper.selectNeedDealExpire();
+        if (nonNull(games) && !games.isEmpty()) {
+            games.forEach(e -> e.setStatus(McsGame.Status.yjs));
+            this.updateBatchById(games);
+        }
+        return R.ok();
+    }
+
+    public static void main(String[] args) {
+        int total = 500;
+        int people = 10;
+        for (int i = 1;i <= 10; i++) {
+            Integer decrease = getRandomCoins(total, people);
+            total -= decrease;
+            people --;
+            System.out.println("第:" + i + "个人领取到:" + decrease + "戳戳币,总数还剩下:" + total);
+        }
+    }
+
+    public static Integer getRandomCoins(int totalCoins, int peopleTotal) {
+        List<Integer> list = new ArrayList<>(peopleTotal);
+        if (peopleTotal == 1) {
+            return totalCoins;
+        }
+        Random random = new Random();
+        // 平均分配
+        int average = totalCoins / peopleTotal;
+        int max = (int) Math.floor(totalCoins * 0.6);
+        int min = (int) Math.floor(average * 0.5);
+        float thresh = 0.95F;
+        int rest = totalCoins - average * peopleTotal;
+        for (int i = 0; i < peopleTotal; i++) {
+            if (i < rest) {
+                list.add(average + 1);
+            } else {
+                list.add(average);
+            }
+        }
+        // 根据阀值进行数据随机处理
+        int randOfRange = 0;
+        int randRom = 0;
+        int nextIndex = 0;
+        int nextValue = 0;
+        //多余
+        int surplus = 0;
+        //缺少
+        int lack = 0;
+        for (int i = 0; i < peopleTotal - 1; i++) {
+            nextIndex = i + 1;
+            int itemThis = list.get(i);
+            int itemNext = list.get(nextIndex);
+            boolean isLt = itemThis < itemNext;
+            int rangeThis = isLt ? max - itemThis : itemThis - min;
+            int rangeNext = isLt ? itemNext - min : max - itemNext;
+            int rangeFinal = (int) Math.ceil(thresh * (Math.min(rangeThis, rangeNext) + 1));
+            randOfRange = random.nextInt(rangeFinal);
+            randRom = isLt ? 1 : -1;
+            int iValue = list.get(i) + randRom * randOfRange;
+            nextValue = list.get(nextIndex) + randRom * randOfRange * -1;
+            if (iValue > max) {
+                surplus += (iValue - max);
+                list.set(i, max);
+            } else if (iValue < min) {
+                list.set(i, min);
+                lack += (min - iValue);
+            } else {
+                list.set(i, iValue);
+            }
+            list.set(nextIndex, nextValue);
+        }
+        if (nextValue > max) {
+            surplus += (nextValue - max);
+            list.set(nextIndex, max);
+        }
+        if (nextValue < min) {
+            lack += (min - nextValue);
+            list.set(nextIndex, min);
+        }
+        if (surplus - lack > 0) {
+            //分少了 给低于max的凑到max
+            for (int i = 0; i < list.size(); i++) {
+                int value = list.get(i);
+                if (value < max) {
+                    int tmp = max - value;
+                    if (surplus >= tmp) {
+                        surplus -= tmp;
+                        list.set(i, max);
+                    } else {
+                        list.set(i, value + surplus);
+                        return list.get(random.nextInt(list.size() - 1));
+                    }
+                }
+            }
+        } else if (lack - surplus > 0) {
+            //分多了 给超过高于min的人凑到min
+            for (int i = 0; i < list.size(); i++) {
+                int value = list.get(i);
+                if (value > min) {
+                    int tmp = value - min;
+                    if (lack >= tmp) {
+                        lack -= tmp;
+                        list.set(i, min);
+                    } else {
+                        list.set(i, min + tmp - lack);
+                        return list.get(random.nextInt(list.size() - 1));
+                    }
+                }
+            }
+        }
+        return list.get(random.nextInt(list.size() - 1));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsInformationServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsInformationServiceImpl.java
new file mode 100644
index 0000000..0139e47
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsInformationServiceImpl.java
@@ -0,0 +1,252 @@
+package com.panzhihua.service_community.service.impl;
+
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+
+import java.util.Date;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+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.model.dtos.community.microCommercialStreet.McsInfoDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageMcsInformationDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.SetShelfForInfoDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsInformationVO;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsMerchantVO;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.TopStatisticsVO;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.service_community.dao.McsGameDAO;
+import com.panzhihua.service_community.dao.McsInformationDAO;
+import com.panzhihua.service_community.dao.McsMerchantDAO;
+import com.panzhihua.service_community.entity.McsInformation;
+import com.panzhihua.service_community.entity.McsMerchant;
+import com.panzhihua.service_community.service.McsInformationService;
+
+/**
+ * (McsInformation)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:10
+ */
+@Service("mcsInformationService")
+public class McsInformationServiceImpl extends ServiceImpl<McsInformationDAO, McsInformation>
+    implements McsInformationService {
+
+    @Resource
+    private McsGameDAO mcsGameDAO;
+    @Resource
+    private McsMerchantDAO mcsMerchantDAO;
+
+    /**
+     * 分页查询戳戳资讯
+     * @param pageMcsInformationDTO
+     * @return
+     */
+    @Override
+    public R pageMcsInfo(PageMcsInformationDTO pageMcsInformationDTO) {
+        Page page = new Page<>();
+        page.setSize(pageMcsInformationDTO.getPageSize());
+        page.setCurrent(pageMcsInformationDTO.getPageNum());
+        IPage<McsInformationVO> mcsInfos = this.baseMapper.pageMcsInfo(page, pageMcsInformationDTO);
+        return R.ok(mcsInfos);
+    }
+
+    /**
+     * 上架/下架戳戳资讯
+     * @param setShelfForInfoDTO
+     * @return
+     */
+    @Override
+    public R setShelfForMcsInfo(SetShelfForInfoDTO setShelfForInfoDTO) {
+        McsInformation mcsInformation = this.baseMapper.selectById(setShelfForInfoDTO.getInfoId());
+        if (isNull(mcsInformation)) {
+            return R.fail("修改数据不存在");
+        }
+        Integer type = setShelfForInfoDTO.getType();
+        if (type.equals(1)) {
+            //上架
+            McsMerchant mcsMerchant = mcsMerchantDAO.selectById(mcsInformation.getMerchantId());
+            Integer publishLimit = mcsMerchant.getPublishLimit();
+            Integer publishCount = mcsGameDAO.selectPublishCount(mcsInformation.getMerchantId());
+            if (publishCount >= publishLimit) {
+                return R.fail("空闲戳戳点不足");
+            }
+            mcsInformation.setStatus(2);
+        } else if (type.equals(2)) {
+            //下架
+            mcsInformation.setStatus(3);
+        } else {
+            return R.fail("未知错误");
+        }
+        int num = this.baseMapper.updateById(mcsInformation);
+        if (num > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败,请重新尝试");
+    }
+
+    /**
+     * 删除戳戳资讯
+     * @param infoId
+     * @param userId
+     * @return
+     */
+    @Override
+    public R deleteMcsInfo(Long infoId, Long userId) {
+        McsInformation mcsInformation = this.baseMapper.selectById(infoId);
+        if (isNull(mcsInformation)) {
+            return R.fail("修改数据不存在");
+        }
+        mcsInformation.setIsDel(true);
+        mcsInformation.setStatus(McsInformation.Status.yxj);
+        mcsInformation.setUpdatedBy(userId);
+        int num = this.baseMapper.updateById(mcsInformation);
+        if (num > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败,请重新尝试");
+    }
+
+    /**
+     * 戳戳资讯顶部统计数据
+     * @param userId
+     * @return
+     */
+    @Override
+    public R getTopStatistics(Long userId) {
+        McsMerchant mcsMerchant = mcsMerchantDAO.selectOne(new QueryWrapper<McsMerchant>().lambda().eq(McsMerchant::getUserId, userId));
+        if (isNull(mcsMerchant)) {
+            return R.fail("未查询到商家信息");
+        }
+        TopStatisticsVO topStatisticsVO = new TopStatisticsVO();
+        topStatisticsVO.setExpireAt(mcsMerchant.getExpireAt());
+        if (nonNull(mcsMerchant.getExpireAt())) {
+            int surplusLitDays = DateUtils.retrieveRemainingDays(mcsMerchant.getExpireAt());
+            topStatisticsVO.setSurplusLitDays(surplusLitDays > 0 ? surplusLitDays : 0);
+        }
+
+        Integer publishLimit = mcsMerchant.getPublishLimit();
+        Integer publishCount = mcsGameDAO.selectPublishCount(mcsMerchant.getId());
+        Integer idleTotal = publishLimit - publishCount;
+        topStatisticsVO.setIdleTotal(idleTotal > 0 ? idleTotal : 0);
+        return R.ok(topStatisticsVO);
+    }
+
+    /**
+     * 新增戳戳资讯
+     * @param mcsInfoDTO
+     * @return
+     */
+    @Override
+    public R addMcsInfo(McsInfoDTO mcsInfoDTO) {
+        Long userId = mcsInfoDTO.getCreatedBy();
+        McsMerchant mcsMerchant = mcsMerchantDAO.selectOne(new QueryWrapper<McsMerchant>().lambda().eq(McsMerchant::getUserId, userId));
+        if (isNull(mcsMerchant)) {
+            return R.fail("未查询到商家信息");
+        }
+        McsInformation mcsInformation = new McsInformation();
+        BeanUtils.copyProperties(mcsInfoDTO, mcsInformation);
+        mcsInformation.setMerchantId(mcsMerchant.getId());
+        mcsInformation.setStatus(McsInformation.Status.wfb);
+        int num = this.baseMapper.insert(mcsInformation);
+        if (num > 0) {
+            return R.ok();
+        }
+        return R.fail("新增失败,请重新尝试");
+    }
+
+    /**
+     * 编辑戳戳资讯
+     * @param mcsInfoDTO
+     * @return
+     */
+    @Override
+    public R putMcsInfo(McsInfoDTO mcsInfoDTO) {
+        McsInformation mcsInformation = this.baseMapper.selectById(mcsInfoDTO.getId());
+        if (isNull(mcsInformation)) {
+            return R.fail("资源不存在");
+        }
+        BeanUtils.copyProperties(mcsInfoDTO, mcsInformation);
+        int num = this.baseMapper.updateById(mcsInformation);
+        if (num > 0) {
+            return R.ok();
+        }
+        return R.fail("编辑失败,请重新尝试");
+    }
+
+    /**
+     * 发布戳戳资讯
+     * @param infoId
+     * @param userId
+     * @return
+     */
+    @Override
+    public R publishMcsInfo(Long infoId, Long userId) {
+        McsInformation mcsInformation = this.baseMapper.selectById(infoId);
+        if (isNull(mcsInformation)) {
+            return R.fail("资源不存在");
+        }
+        McsMerchant mcsMerchant = mcsMerchantDAO.selectById(mcsInformation.getMerchantId());
+        Integer publishLimit = mcsMerchant.getPublishLimit();
+        Integer publishCount = mcsGameDAO.selectPublishCount(mcsInformation.getMerchantId());
+        if (publishCount >= publishLimit) {
+            return R.fail("空闲戳戳点不足");
+        }
+        mcsInformation.setStatus(McsInformation.Status.yfb);
+        mcsInformation.setPublishAt(new Date());
+        int num = this.baseMapper.updateById(mcsInformation);
+        if (num > 0) {
+            return R.ok();
+        }
+        return R.fail("发布失败,请重新尝试");
+    }
+
+    /**
+     * h5分页查询戳戳资讯
+     * @param pageMcsInformationDTO
+     * @return
+     */
+    @Override
+    public R pageH5McsInfo(PageMcsInformationDTO pageMcsInformationDTO) {
+        Page page = new Page<>();
+        page.setSize(pageMcsInformationDTO.getPageSize());
+        page.setCurrent(pageMcsInformationDTO.getPageNum());
+        IPage<McsInformationVO> mcsInfos = this.baseMapper.pageH5McsInfo(page, pageMcsInformationDTO);
+        return R.ok(mcsInfos);
+    }
+
+    /**
+     * 资讯详情
+     * @param infoId
+     * @return
+     */
+    @Override
+    public R getMcsInfo(Long infoId) {
+        McsInformation mcsInformation = this.baseMapper.selectById(infoId);
+        if (isNull(mcsInformation)) {
+            return R.fail("资源不存在");
+        }
+        McsInformationVO mcsInformationVO = new McsInformationVO();
+        BeanUtils.copyProperties(mcsInformation, mcsInformationVO);
+        McsMerchant mcsMerchant = mcsMerchantDAO.selectById(mcsInformation.getMerchantId());
+        McsMerchantVO mcsMerchantVO = new McsMerchantVO();
+        if (nonNull(mcsMerchant)) {
+            mcsMerchantVO.setId(mcsMerchant.getId());
+            mcsMerchantVO.setName(mcsMerchant.getName());
+            mcsMerchantVO.setLogo(mcsMerchant.getLogo());
+            mcsMerchantVO.setIntroduction(mcsMerchant.getIntroduction());
+            mcsMerchantVO.setLat(mcsMerchant.getLat());
+            mcsMerchantVO.setLon(mcsMerchant.getLon());
+            mcsMerchantVO.setAddress(mcsMerchant.getAddress());
+        }
+        mcsInformationVO.setMerchantInfo(mcsMerchantVO);
+        return R.ok(mcsInformationVO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsLabelServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsLabelServiceImpl.java
new file mode 100644
index 0000000..1eb5c3e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsLabelServiceImpl.java
@@ -0,0 +1,29 @@
+package com.panzhihua.service_community.service.impl;
+
+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.McsLabelDAO;
+import com.panzhihua.service_community.entity.McsLabel;
+import com.panzhihua.service_community.service.McsLabelService;
+
+/**
+ * (McsLabel)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:11
+ */
+@Service("mcsLabelService")
+public class McsLabelServiceImpl extends ServiceImpl<McsLabelDAO, McsLabel> implements McsLabelService {
+
+    /**
+     * 获取产品标签列表
+     * @param userId
+     * @return
+     */
+    @Override
+    public R getMcsLabelList(Long userId) {
+        return R.ok(this.baseMapper.selectVOList(userId));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsMerchantServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsMerchantServiceImpl.java
new file mode 100644
index 0000000..7c20dff
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsMerchantServiceImpl.java
@@ -0,0 +1,464 @@
+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.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import java.util.Random;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.alibaba.fastjson.JSONObject;
+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.exceptions.ServiceException;
+import com.panzhihua.common.model.dtos.community.convenient.DisableOrEnableConvenientMerchantDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.DisableOrEnableMcsMerchantDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.LoginWithPhoneDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.McsMerchantDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageMcsMerchantDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PutUserInfoDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.IndexTopStatisticsVO;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsGameVO;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsLoginUserInfoVO;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsMerchantVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.service_community.dao.McsConfigDAO;
+import com.panzhihua.service_community.dao.McsGameDAO;
+import com.panzhihua.service_community.dao.McsInformationDAO;
+import com.panzhihua.service_community.dao.McsMerchantDAO;
+import com.panzhihua.service_community.dao.McsOrderDao;
+import com.panzhihua.service_community.entity.McsConfig;
+import com.panzhihua.service_community.entity.McsMerchant;
+import com.panzhihua.service_community.entity.McsOrder;
+import com.panzhihua.service_community.service.McsMerchantService;
+
+/**
+ * (McsMerchant)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:11
+ */
+@Service("mcsMerchantService")
+public class McsMerchantServiceImpl extends ServiceImpl<McsMerchantDAO, McsMerchant> implements McsMerchantService {
+
+    private static final String MERCHANT_PUBLISH_LIMIT_KEY = "MERCHANT_PUBLISH_LIMIT";
+    private static final String DEFAULT_IMAGE_URL = "https://www.psciio.com//idcard/91313573d071436ab1f934231b31c6e5.jpg";
+    private static final int DEFAULT_PUBLISH_LIMIT = 2;
+    private static final String CUSTOMER_SERVICE_CONTACT_NUM="CUSTOMER_SERVICE_CONTACT_NUM";
+
+    @Resource
+    private UserService userService;
+    @Resource
+    private McsConfigDAO mcsConfigDAO;
+    @Resource
+    private McsGameDAO mcsGameDAO;
+    @Resource
+    private McsInformationDAO mcsInformationDAO;
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+    @Resource
+    private McsOrderDao mcsOrderDao;
+
+    /**
+     * 新增数字商业街商家
+     * @param mcsMerchantDTO
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R addMcsMerchant(McsMerchantDTO mcsMerchantDTO) {
+        McsMerchant existMerchant = this.baseMapper.selectOne(new QueryWrapper<McsMerchant>().lambda().eq(McsMerchant::getPhone, mcsMerchantDTO.getPhone()));
+        if (nonNull(existMerchant)) {
+            if (existMerchant.getIsDel()) {
+                this.baseMapper.deleteById(existMerchant.getId());
+            } else {
+                return R.fail("手机号已存在");
+            }
+        }
+        McsMerchant mcsMerchant = new McsMerchant();
+        BeanUtils.copyProperties(mcsMerchantDTO, mcsMerchant);
+        Integer litDays = mcsMerchantDTO.getLitDays();
+        mcsMerchant.setExpireAt(DateUtils.addDay(new Date(), litDays));
+        mcsMerchant.setFirstLitAt(new Date());
+        McsConfig publishLimitConfig = mcsConfigDAO.selectOne(new QueryWrapper<McsConfig>().lambda().eq(McsConfig::getKey, MERCHANT_PUBLISH_LIMIT_KEY));
+        mcsMerchant.setPublishLimit(nonNull(publishLimitConfig) ? Integer.parseInt(publishLimitConfig.getValue()) : DEFAULT_PUBLISH_LIMIT);
+        mcsMerchant.setUserId(0L);
+        int insertResult = this.baseMapper.insert(mcsMerchant);
+        if (insertResult > 0) {
+            //添加user
+            R addUserResult = userService.addMcsMerchantUser(mcsMerchantDTO);
+            if (R.isOk(addUserResult)) {
+                LoginUserInfoVO loginUserInfoVO = JSONObject.parseObject(JSONObject.toJSONString(addUserResult.getData()), LoginUserInfoVO.class);
+                mcsMerchant.setUserId(loginUserInfoVO.getUserId());
+                this.baseMapper.updateById(mcsMerchant);
+            } else {
+                throw new ServiceException("406", addUserResult.getMsg());
+            }
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    /**
+     * 编辑数字商业街商家
+     * @param mcsMerchantDTO
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R putMcsMerchant(McsMerchantDTO mcsMerchantDTO) {
+        McsMerchant mcsMerchant = this.baseMapper.selectById(mcsMerchantDTO.getId());
+        Long userId = mcsMerchant.getUserId();
+        if (isNull(mcsMerchant)) {
+            return R.fail("商家不存在");
+        }
+        if (mcsMerchantDTO.getLevel().equals(1)) {
+            Integer litDays = mcsMerchantDTO.getLitDays();
+            if (nonNull(litDays)) {
+                mcsMerchant.setExpireAt(DateUtils.addDay(new Date(), litDays));
+            }
+        }
+        BeanUtils.copyProperties(mcsMerchantDTO, mcsMerchant);
+        int result = this.baseMapper.updateById(mcsMerchant);
+        if (result > 0) {
+            //修改商家绑定账户号
+            mcsMerchantDTO.setUserId(userId);
+            R putResult = userService.putMcsMerchantUser(mcsMerchantDTO);
+            if (!R.isOk(putResult)) {
+                throw new ServiceException("406", putResult.getMsg());
+            }
+            return R.ok();
+        }
+        return R.fail("修改失败,请重新尝试");
+    }
+
+    /**
+     * 查询数字商业街商家详情
+     * @param merchantId
+     * @return
+     */
+    @Override
+    public R getMcsMerchant(Long merchantId) {
+        McsMerchantVO merchantVO = this.baseMapper.getMcsMerchantById(merchantId);
+        if (nonNull(merchantVO)) {
+            retrieveMerchantSurplusLitDays(merchantVO);
+        }
+        return R.ok(merchantVO);
+    }
+
+    /**
+     * 删除数字商业街商家
+     * @param merchantId
+     * @param userId
+     * @return
+     */
+    @Override
+    public R deleteMcsMerchant(Long merchantId, Long userId) {
+        McsMerchant mcsMerchant = this.baseMapper.selectById(merchantId);
+        if (isNull(mcsMerchant)) {
+            return R.fail("商家不存在");
+        }
+        mcsMerchant.setIsDel(true);
+        int num = this.baseMapper.updateById(mcsMerchant);
+        if (num > 0) {
+            this.baseMapper.enableUserStatus(mcsMerchant.getUserId());
+        }
+        return R.ok();
+    }
+
+    /**
+     * 分页查询数字商业街商家
+     * @param pageMcsMerchantDTO
+     * @return
+     */
+    @Override
+    public R pageMcsMerchant(PageMcsMerchantDTO pageMcsMerchantDTO) {
+        Page page = new Page<>();
+        page.setSize(pageMcsMerchantDTO.getPageSize());
+        page.setCurrent(pageMcsMerchantDTO.getPageNum());
+        IPage<McsMerchantVO> mcsMerchants = this.baseMapper.pageMcsMerchant(page, pageMcsMerchantDTO);
+        List<McsMerchantVO> records = mcsMerchants.getRecords();
+        if (nonNull(records) && !records.isEmpty()) {
+            records.forEach(e -> retrieveMerchantSurplusLitDays(e));
+        }
+        return R.ok(mcsMerchants);
+    }
+
+    /**
+     * 禁用/启用数字商业街商家
+     * @param disableOrEnableMcsMerchantDTO
+     * @return
+     */
+    @Override
+    public R disableOrEnableMcsMerchant(DisableOrEnableMcsMerchantDTO disableOrEnableMcsMerchantDTO) {
+        McsMerchant mcsMerchant = this.baseMapper.selectById(disableOrEnableMcsMerchantDTO.getMerchantId());
+        if (isNull(mcsMerchant)) {
+            return R.fail("商家不存在");
+        }
+        Integer type = disableOrEnableMcsMerchantDTO.getType();
+        if (type.equals(1) || type.equals(2)) {
+            //启用 or 禁用
+            DisableOrEnableConvenientMerchantDTO dto = new DisableOrEnableConvenientMerchantDTO();
+            dto.setType(type);
+            dto.setUserIds(Arrays.asList(mcsMerchant.getUserId()));
+            R r = userService.disableOrEnableMerchantUsers(dto);
+            return r;
+        } else {
+            return R.fail("未知错误");
+        }
+    }
+
+    /**
+     * 根据account查询微商业街商家信息
+     * @param account
+     * @return
+     */
+    @Override
+    public R getMcsMerchantByAccount(String account) {
+        McsMerchantVO merchantVO = this.baseMapper.getMcsMerchantByAccount(account);
+        if (isNull(merchantVO)) {
+            return R.fail("账号不存在");
+        }
+        retrieveMerchantSurplusLitDays(merchantVO);
+        McsConfig mcsConfig=mcsConfigDAO.selectOne(new QueryWrapper<McsConfig>().lambda().eq(McsConfig::getKey,CUSTOMER_SERVICE_CONTACT_NUM));
+        if(mcsConfig!=null){
+            merchantVO.setCustomPhone(mcsConfig.getValue());
+        }
+
+        return R.ok(merchantVO);
+    }
+
+    /**
+     * 完成订单更新/新增商家信息
+     *
+     * @param orderNo
+     * @param configId
+     * @param userId
+     * @return
+     */
+    @Override
+    public R updateOrAddMcsMerchantAfterOrder(String orderNo, Long configId, Long userId) {
+        McsOrder mcsOrder = mcsOrderDao.selectOne(new QueryWrapper<McsOrder>().lambda().eq(McsOrder::getOrderNo, orderNo));
+        if (isNull(mcsOrder)) {
+            return R.fail("订单不存在");
+        }
+        McsMerchant mcsMerchant = this.baseMapper.selectOne(new QueryWrapper<McsMerchant>().lambda().eq(McsMerchant::getUserId, userId));
+        McsConfig mcsConfig = mcsConfigDAO.selectById(configId);
+        if (isNull(mcsConfig) || isBlank(mcsConfig.getValue())) {
+            return R.fail("套餐配置不存在");
+        }
+        JSONObject packageObject = JSONObject.parseObject(mcsConfig.getValue());
+        if (!packageObject.containsKey("day")) {
+            return R.fail("配置有误");
+        }
+        Integer litDays = (Integer)packageObject.get("day");
+        String merchantName = mcsOrder.getMerchantName();
+        Date nowDate = new Date();
+        int num;
+        if (isNull(mcsMerchant)) {
+            //新增商家
+            R<LoginUserInfoVO> userInfoVOR = userService.getUserInfoByUserId(userId.toString());
+            if (R.isOk(userInfoVOR) && nonNull(userInfoVOR.getData())) {
+                LoginUserInfoVO loginUserInfoVO = JSONObject.parseObject(JSONObject.toJSONString(userInfoVOR.getData()), LoginUserInfoVO.class);
+                mcsMerchant = new McsMerchant();
+                mcsMerchant.setName(isBlank(merchantName) ? loginUserInfoVO.getName() : merchantName);
+                mcsMerchant.setPhone(loginUserInfoVO.getPhone());
+                mcsMerchant.setAccount(loginUserInfoVO.getAccount());
+                mcsMerchant.setLevel(1);
+                mcsMerchant.setExpireAt(DateUtils.addDay(nowDate, litDays));
+                mcsMerchant.setFirstLitAt(nowDate);
+                McsConfig publishLimitConfig = mcsConfigDAO.selectOne(new QueryWrapper<McsConfig>().lambda().eq(McsConfig::getKey, MERCHANT_PUBLISH_LIMIT_KEY));
+                mcsMerchant.setPublishLimit(nonNull(publishLimitConfig) ? Integer.parseInt(publishLimitConfig.getValue()) : DEFAULT_PUBLISH_LIMIT);
+                mcsMerchant.setUserId(userId);
+                mcsMerchant.setCreatedBy(userId);
+                mcsMerchant.setUpdatedBy(userId);
+                mcsMerchant.setAddress(mcsOrder.getAddress());
+                mcsMerchant.setLat(mcsOrder.getLat());
+                mcsMerchant.setLon(mcsOrder.getLon());
+                num = this.baseMapper.insert(mcsMerchant);
+                McsMerchantDTO mcsMerchantDTO = new McsMerchantDTO();
+                mcsMerchantDTO.setName(mcsMerchant.getName());
+                userService.putMcsMerchantUser(mcsMerchantDTO);
+            } else {
+                return R.fail("获取用户信息失败");
+            }
+        } else {
+            //更新商家
+            Date previousExpireAt = mcsMerchant.getExpireAt();
+            Date nowExpireAt;
+            if (isNull(previousExpireAt) || previousExpireAt.before(nowDate)) {
+                nowExpireAt = DateUtils.addDay(nowDate, litDays);
+            } else {
+                nowExpireAt = DateUtils.addDay(previousExpireAt, litDays);
+            }
+            mcsMerchant.setExpireAt(nowExpireAt);
+            mcsMerchant.setUpdatedBy(userId);
+            num = this.baseMapper.updateById(mcsMerchant);
+        }
+        if (num > 0) {
+            return R.ok(mcsMerchant.getId());
+        } else {
+            return R.fail();
+        }
+    }
+
+    /**
+     * 验证码登录
+     * @param loginDTO
+     * @return
+     */
+    @Override
+    public R loginWithPhone(LoginWithPhoneDTO loginDTO) {
+        String phone = loginDTO.getPhone();
+        String redisKey = String.join("::", phone, loginDTO.getCode());
+        Boolean hasKey = stringRedisTemplate.hasKey(redisKey);
+        if (hasKey) {
+            //通过验证
+            R r = userService.getSysUserByPhone(phone, 11);
+            if (R.isOk(r)) {
+                if (nonNull(r.getData())) {
+                    //已有用户
+                    McsLoginUserInfoVO loginUserInfoVO = JSONObject.parseObject(JSONObject.toJSONString(r.getData()), McsLoginUserInfoVO.class);
+                    stringRedisTemplate.delete(redisKey);
+                    return R.ok(loginUserInfoVO);
+                } else {
+                    //自动创建用户
+                    McsMerchantDTO mcsMerchantDTO = new McsMerchantDTO();
+                    mcsMerchantDTO.setAccount(phone);
+                    mcsMerchantDTO.setPassword("88888888");
+                    mcsMerchantDTO.setAccountStatus(1);
+                    mcsMerchantDTO.setPhone(phone);
+                    mcsMerchantDTO.setName("用户" + retrieveRandomCode(5));
+                    mcsMerchantDTO.setImageUrl(DEFAULT_IMAGE_URL);
+                    R addUserResult = userService.addMcsMerchantUser(mcsMerchantDTO);
+                    if (R.isOk(addUserResult)) {
+                        McsLoginUserInfoVO loginUserInfoVO = JSONObject.parseObject(JSONObject.toJSONString(addUserResult.getData()), McsLoginUserInfoVO.class);
+                        loginUserInfoVO.setPlaintextPassword("88888888");
+                        stringRedisTemplate.delete(redisKey);
+                        return R.ok(loginUserInfoVO);
+                    }
+                    return addUserResult;
+                }
+            }
+            return r;
+        } else {
+            return R.fail("验证码错误");
+        }
+    }
+
+    /**
+     * 首页顶部数据
+     * @return
+     */
+    @Override
+    public R getMcsIndexTopData() {
+        IndexTopStatisticsVO statisticsVO = this.baseMapper.getMcsIndexTopData();
+        McsGameVO mcsGameVO = mcsGameDAO.selectPopularGame();
+        statisticsVO.setPopularGame(mcsGameVO);
+        return R.ok(statisticsVO);
+    }
+
+    /**
+     * H5分页查询数字商业街商家
+     * @param pageMcsMerchantDTO
+     * @return
+     */
+    @Override
+    public R pageH5McsMerchant(PageMcsMerchantDTO pageMcsMerchantDTO) {
+        Page page = new Page<>();
+        page.setSize(pageMcsMerchantDTO.getPageSize());
+        page.setCurrent(pageMcsMerchantDTO.getPageNum());
+        IPage<McsMerchantVO> mcsMerchants = this.baseMapper.pageH5McsMerchant(page, pageMcsMerchantDTO);
+        return R.ok(mcsMerchants);
+    }
+
+    /**
+     * 修改用戶信息
+     * @param putUserInfoDTO
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R putUserInfo(PutUserInfoDTO putUserInfoDTO) {
+        McsMerchant mcsMerchant = this.baseMapper.selectOne(new QueryWrapper<McsMerchant>().lambda().eq(McsMerchant::getUserId, putUserInfoDTO.getUserId()));
+        if (nonNull(mcsMerchant)) {
+            //修改商家名称
+            mcsMerchant.setLogo(putUserInfoDTO.getImageUrl());
+            mcsMerchant.setName(putUserInfoDTO.getName());
+            this.baseMapper.updateById(mcsMerchant);
+        }
+        LoginUserInfoVO loginUserInfoVO = new LoginUserInfoVO();
+        loginUserInfoVO.setImageUrl(putUserInfoDTO.getImageUrl());
+        loginUserInfoVO.setName(putUserInfoDTO.getName());
+        loginUserInfoVO.setUserId(putUserInfoDTO.getUserId());
+        userService.putUser(loginUserInfoVO);
+        return R.ok();
+    }
+
+    /**
+     * 根据userId获取商家信息
+     * @param userId
+     * @return
+     */
+    @Override
+    public R retrieveMcsMerchantInfoByUserId(Long userId) {
+        McsMerchant mcsMerchant = this.baseMapper.selectOne(new QueryWrapper<McsMerchant>().lambda()
+                .eq(McsMerchant::getUserId, userId).eq(McsMerchant::getIsDel, false));
+        McsMerchantVO mcsMerchantVO = null;
+        if (nonNull(mcsMerchant)) {
+            mcsMerchantVO = new McsMerchantVO();
+            BeanUtils.copyProperties(mcsMerchant, mcsMerchantVO);
+        }
+        return R.ok(mcsMerchantVO);
+    }
+
+    /**
+     * 定时任务-每隔5分钟执行一次,将已到期的微商业街商家旗下所有的游戏/资讯全部下架
+     * @return
+     */
+    @Override
+    public R offResourceForMcsMerchant() {
+        int num = 0;
+        List<Long> needDealIds = this.baseMapper.selectNeedDealExpiredMerchant();
+        if (nonNull(needDealIds) && !needDealIds.isEmpty()) {
+            mcsGameDAO.setOffByMerchantIds(needDealIds);
+            mcsInformationDAO.setOffByMerchantIds(needDealIds);
+            num = this.baseMapper.updateIsPauseStatus(needDealIds);
+        }
+        return R.ok("执行任务数:" + num);
+    }
+
+    private void retrieveMerchantSurplusLitDays(McsMerchantVO merchantVO) {
+        Integer publishLimit = merchantVO.getPublishLimit();
+        Integer publishCount = mcsGameDAO.selectPublishCount(merchantVO.getId());
+        Integer idleTotal = publishLimit - publishCount;
+        merchantVO.setIdleTotal(idleTotal > 0 ? idleTotal : 0);
+        if (nonNull(merchantVO.getExpireAt())) {
+            int surplusLitDays = DateUtils.retrieveRemainingDays(merchantVO.getExpireAt());
+            merchantVO.setSurplusLitDays(surplusLitDays > 0 ? surplusLitDays : 0);
+        }
+    }
+
+    private String retrieveRandomCode(int length) {
+        Random r = new Random();
+        StringBuilder rs = new StringBuilder();
+        for (int i = 0; i < length; i++) {
+            rs.append(r.nextInt(10));
+        }
+        return rs.toString();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsOrderServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsOrderServiceImpl.java
new file mode 100644
index 0000000..b8c4da8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsOrderServiceImpl.java
@@ -0,0 +1,158 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsOrderVO;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.SmsUtil;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.common.utlis.WxPayUtils;
+import com.panzhihua.service_community.dao.McsMerchantDAO;
+import com.panzhihua.service_community.entity.McsMerchant;
+import com.panzhihua.service_community.entity.McsOrder;
+import com.panzhihua.service_community.dao.McsOrderDao;
+import com.panzhihua.service_community.service.McsMerchantService;
+import com.panzhihua.service_community.service.McsOrderService;
+import com.panzhihua.service_community.util.QRCodeUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.rabbit.core.RabbitTemplate;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.Date;
+
+import static java.util.Objects.nonNull;
+
+/**
+ * 商业街订单表(McsOrder)表服务实现类
+ *
+ * @author makejava
+ * @since 2022-01-04 16:10:07
+ */
+@Slf4j
+@Service
+public class McsOrderServiceImpl extends ServiceImpl<McsOrderDao, McsOrder> implements McsOrderService {
+    @Value("${min.app.isTest}")
+    private Boolean isTest;
+    @Value("${min.app.appid}")
+    private String appid;
+    @Value("${min.app.payKey}")
+    private String payKey;
+    @Value("${min.app.mchId}")
+    private String mchId;
+    @Value("${mcs.notifyUrl}")
+    private String notifyUrl;
+    @Resource
+    private RabbitTemplate rabbitTemplate;
+    @Resource
+    private McsMerchantService mcsMerchantService;
+    @Resource
+    private McsMerchantDAO mcsMerchantDAO;
+
+    private static String H5_LOGIN_APPID="wx475fcd33c8030df8";
+    @Override
+    public R pageList(CommonPage commonPage) {
+        return R.ok(this.baseMapper.pageList(new Page(commonPage.getPage(),commonPage.getSize()),commonPage));
+    }
+
+    @Override
+    public R insert(McsOrderVO mcsOrderVO) {
+        McsMerchant mcsMerchant = mcsMerchantDAO.selectOne(new QueryWrapper<McsMerchant>().lambda()
+                .eq(McsMerchant::getUserId, mcsOrderVO.getUserId()));
+        McsOrder mcsOrder=new McsOrder();
+        BeanUtils.copyProperties(mcsOrderVO,mcsOrder);
+        if (nonNull(mcsMerchant)) {
+            if (mcsMerchant.getIsDel()) {
+                mcsMerchantDAO.deleteById(mcsMerchant.getId());
+            } else {
+                mcsOrder.setMerchantId(mcsMerchant.getId());
+            }
+        }
+        mcsOrder.setStatus(0);
+        mcsOrder.setCreateTime(new Date());
+        mcsOrder.setOrderNo(DateUtils.getCurrentDateStrNoSignal());
+        this.baseMapper.insert(mcsOrder);
+        rabbitTemplate.convertAndSend("huacheng.mcsOrder.exchange", "huacheng.mcsOrder.key", mcsOrder, message -> {
+            message.getMessageProperties().setHeader("x-delay",  1000 * 1800);
+            return message;
+        });
+        return R.ok(mcsOrder);
+    }
+
+    @Override
+    public R detail(Long id) {
+        McsOrderVO detail = this.baseMapper.detail(id);
+        Date cancelAt = DateUtils.addMinutes(detail.getCreateTime(), 30);
+        Date nowDate = new Date();
+        detail.setCancelCountdown(cancelAt.getTime() - nowDate.getTime());
+        return R.ok(detail);
+    }
+
+    @Override
+    public R wxPay(McsOrderVO mcsOrderVO) {
+        McsOrder mcsOrder=this.baseMapper.selectById(mcsOrderVO.getId());
+        if(mcsOrder!=null&&mcsOrder.getStatus()==0){
+            try {
+                BigDecimal money = mcsOrder.getMoney();
+                if (isTest) {
+                    money = BigDecimal.valueOf(0.01);
+                }
+                // 调用wx支付
+                String realAppId=appid;
+                if(mcsOrderVO.getTradeType().equals("JSAPI")){
+                    realAppId=H5_LOGIN_APPID;
+                }
+                String result = WxPayUtils.h5pay(realAppId, mchId, payKey, notifyUrl, "点亮支付", mcsOrderVO.getOpenId(),
+                        mcsOrder.getOrderNo(), money,mcsOrderVO.getTradeType(), mcsOrderVO.getClientIp());
+                if (mcsOrderVO.getTradeType().equals("NATIVE")) {
+                    JSONObject jsonObjectResult = JSONObject.parseObject(result);
+                    result = QRCodeUtil.getBase64QRCode(jsonObjectResult.get("codeUrl").toString());
+                }
+                return R.ok(result);
+            } catch (Exception e) {
+                log.error("调用微信支付异常,异常原因:" + e.getMessage());
+            }
+        }
+        return R.fail("订单状态异常");
+    }
+
+    @Override
+    public R sendContent(Long id) {
+        String phone=this.baseMapper.selectPhone(id);
+        if(StringUtils.isNotEmpty(phone)){
+            SmsUtil smsUtil=new SmsUtil();
+            int result=smsUtil.sendContent(phone);
+            if(result>0){
+                return R.ok();
+            }
+        }
+        return R.fail("短信发送异常");
+    }
+
+    @Override
+    @Transactional
+    public R notify(McsOrderVO mcsOrderVO) {
+        McsOrder mcsOrderBase=this.baseMapper.selectOne(new QueryWrapper<McsOrder>().lambda().eq(McsOrder::getOrderNo,mcsOrderVO.getOrderNo()));
+        mcsOrderBase.setStatus(1);
+        mcsOrderBase.setPayNo(mcsOrderVO.getPayNo());
+        mcsOrderBase.setPayTime(mcsOrderVO.getPayTime());
+        mcsOrderBase.setPaymentMethod("微信支付");
+        int i=this.baseMapper.updateById(mcsOrderBase);
+        if(i>0){
+            R r = mcsMerchantService.updateOrAddMcsMerchantAfterOrder(mcsOrderBase.getOrderNo(), mcsOrderBase.getConfigId(), mcsOrderBase.getUserId());
+            if (R.isOk(r) && nonNull(r.getData())) {
+                mcsOrderBase.setMerchantId(JSONObject.parseObject(JSONObject.toJSONString(r.getData()), Long.class));
+                this.baseMapper.updateById(mcsOrderBase);
+            }
+        }
+        return R.ok();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsProductLabelServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsProductLabelServiceImpl.java
new file mode 100644
index 0000000..be6dbff
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsProductLabelServiceImpl.java
@@ -0,0 +1,19 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.service_community.dao.McsProductLabelDAO;
+import com.panzhihua.service_community.entity.McsProductLabel;
+import com.panzhihua.service_community.service.McsProductLabelService;
+import org.springframework.stereotype.Service;
+
+/**
+ * (McsProductLabel)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:13
+ */
+@Service("mcsProductLabelService")
+public class McsProductLabelServiceImpl extends ServiceImpl<McsProductLabelDAO, McsProductLabel>
+    implements McsProductLabelService {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsProductServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsProductServiceImpl.java
new file mode 100644
index 0000000..4dc4d5f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsProductServiceImpl.java
@@ -0,0 +1,209 @@
+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.List;
+import java.util.stream.Collectors;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+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.model.dtos.community.microCommercialStreet.DeleteProductDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.McsProductDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.PageMcsProductDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.SetShelfForProductDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsProductVO;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.service_community.dao.McsLabelDAO;
+import com.panzhihua.service_community.dao.McsMerchantDAO;
+import com.panzhihua.service_community.dao.McsProductDAO;
+import com.panzhihua.service_community.dao.McsProductLabelDAO;
+import com.panzhihua.service_community.entity.McsLabel;
+import com.panzhihua.service_community.entity.McsMerchant;
+import com.panzhihua.service_community.entity.McsProduct;
+import com.panzhihua.service_community.entity.McsProductLabel;
+import com.panzhihua.service_community.service.McsProductService;
+
+/**
+ * (McsProduct)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:12
+ */
+@Service("mcsProductService")
+public class McsProductServiceImpl extends ServiceImpl<McsProductDAO, McsProduct> implements McsProductService {
+
+    @Resource
+    private McsMerchantDAO mcsMerchantDAO;
+    @Resource
+    private McsLabelDAO mcsLabelDAO;
+    @Resource
+    private McsProductLabelDAO mcsProductLabelDAO;
+
+    /**
+     * 新增产品信息
+     * @param mcsProductDTO
+     * @return
+     */
+    @Override
+    public R addMcsProduct(McsProductDTO mcsProductDTO) {
+        Long userId = mcsProductDTO.getCreatedBy();
+        McsMerchant mcsMerchant = mcsMerchantDAO.selectOne(new QueryWrapper<McsMerchant>().lambda().eq(McsMerchant::getUserId, userId));
+        if (isNull(mcsMerchant)) {
+            return R.fail("商家信息不存在");
+        }
+        McsProduct mcsProduct = new McsProduct();
+        BeanUtils.copyProperties(mcsProductDTO, mcsProduct);
+        mcsProduct.setMerchantId(mcsMerchant.getId());
+        mcsProduct.setStatus(McsProduct.Status.yxj);
+        mcsProduct.setId(Snowflake.getId());
+        int num = this.baseMapper.insert(mcsProduct);
+        if (num > 0) {
+            List<Long> labelIds = mcsProductDTO.getLabelIds();
+            if (nonNull(labelIds) && !labelIds.isEmpty()) {
+                List<McsLabel> mcsLabels = mcsLabelDAO.selectBatchIds(labelIds);
+                if (nonNull(mcsLabels) && !mcsLabels.isEmpty()) {
+                    List<McsProductLabel> mcsProductLabelList = new ArrayList<>();
+                    mcsLabels.forEach(e -> {
+                        McsProductLabel productLabel = new McsProductLabel();
+                        productLabel.setLabelId(e.getId());
+                        productLabel.setProductId(mcsProduct.getId());
+                        productLabel.setLabelName(e.getName());
+                        mcsProductLabelList.add(productLabel);
+                    });
+                    mcsProductLabelDAO.insertBatch(mcsProductLabelList);
+                }
+            }
+            return R.ok();
+        }
+        return R.fail("新增失败,请重新尝试");
+    }
+
+    /**
+     * 编辑产品信息
+     * @param mcsProductDTO
+     * @return
+     */
+    @Override
+    public R putMcsProduct(McsProductDTO mcsProductDTO) {
+        McsProduct mcsProduct = this.baseMapper.selectById(mcsProductDTO.getId());
+        if (isNull(mcsProduct)) {
+            return R.fail("资源不存在");
+        }
+        BeanUtils.copyProperties(mcsProductDTO, mcsProduct);
+        int num = this.baseMapper.updateById(mcsProduct);
+        if (num > 0) {
+            List<Long> labelIds = mcsProductDTO.getLabelIds();
+            mcsProductLabelDAO.delete(new QueryWrapper<McsProductLabel>().lambda().eq(McsProductLabel::getProductId, mcsProduct.getId()));
+            if (nonNull(labelIds) && !labelIds.isEmpty()) {
+                List<McsLabel> mcsLabels = mcsLabelDAO.selectBatchIds(labelIds);
+                if (nonNull(mcsLabels) && !mcsLabels.isEmpty()) {
+                    List<McsProductLabel> mcsProductLabelList = new ArrayList<>();
+                    mcsLabels.forEach(e -> {
+                        McsProductLabel productLabel = new McsProductLabel();
+                        productLabel.setLabelId(e.getId());
+                        productLabel.setProductId(mcsProduct.getId());
+                        productLabel.setLabelName(e.getName());
+                        mcsProductLabelList.add(productLabel);
+                    });
+                    mcsProductLabelDAO.insertBatch(mcsProductLabelList);
+                }
+            }
+            return R.ok();
+        }
+        return R.fail("编辑失败,请重新尝试");
+    }
+
+    /**
+     * 删除产品信息
+     * @param deleteProductDTO
+     * @return
+     */
+    @Override
+    public R deleteMcsProduct(DeleteProductDTO deleteProductDTO) {
+        List<McsProduct> mcsProducts = this.baseMapper.selectBatchIds(deleteProductDTO.getProductIds());
+        if (nonNull(mcsProducts) && !mcsProducts.isEmpty()) {
+            mcsProducts.forEach(e -> {
+                e.setIsDel(true);
+                e.setUpdatedBy(deleteProductDTO.getUpdatedBy());
+            });
+            this.updateBatchById(mcsProducts);
+        }
+        return R.ok();
+    }
+
+    /**
+     * 上架/下架产品信息
+     * @param setShelfForProductDTO
+     * @return
+     */
+    @Override
+    public R setShelfForMcsProduct(SetShelfForProductDTO setShelfForProductDTO) {
+        Integer type = setShelfForProductDTO.getType();
+        List<McsProduct> mcsProducts = this.baseMapper.selectBatchIds(setShelfForProductDTO.getProductIds());
+        if (nonNull(mcsProducts) && !mcsProducts.isEmpty()) {
+            if (type.equals(1)) {
+                //上架
+                mcsProducts.forEach(e -> {
+                    e.setStatus(McsProduct.Status.sjz);
+                    e.setUpdatedBy(setShelfForProductDTO.getUpdatedBy());
+                });
+            } else if (type.equals(2)) {
+                //下架
+                mcsProducts.forEach(e -> {
+                    e.setStatus(McsProduct.Status.yxj);
+                    e.setUpdatedBy(setShelfForProductDTO.getUpdatedBy());
+                });
+            } else {
+                return R.fail("未知错误");
+            }
+            this.updateBatchById(mcsProducts);
+        }
+        return R.ok();
+    }
+
+    /**
+     * 分页查询产品信息
+     * @param pageMcsProductDTO
+     * @return
+     */
+    @Override
+    public R pageMcsProduct(PageMcsProductDTO pageMcsProductDTO) {
+        Page page = new Page<>();
+        page.setSize(pageMcsProductDTO.getPageSize());
+        page.setCurrent(pageMcsProductDTO.getPageNum());
+        IPage<McsProductVO> mcsProduct = this.baseMapper.pageMcsProduct(page, pageMcsProductDTO);
+        return R.ok(mcsProduct);
+    }
+
+    /**
+     * 获取产品信息详情
+     * @param productId
+     * @return
+     */
+    @Override
+    public R getMcsProduct(Long productId) {
+        McsProduct mcsProduct = this.baseMapper.selectById(productId);
+        if (isNull(mcsProduct)) {
+            return R.fail("资源不存在");
+        }
+        McsProductVO mcsProductVO = new McsProductVO();
+        BeanUtils.copyProperties(mcsProduct, mcsProductVO);
+        List<McsProductLabel> mcsProductLabelList = mcsProductLabelDAO.selectList(new QueryWrapper<McsProductLabel>().lambda()
+                .eq(McsProductLabel::getProductId, productId));
+        if (nonNull(mcsProductLabelList) && !mcsProductLabelList.isEmpty()) {
+            List<Long> labelIds = mcsProductLabelList.stream().map(McsProductLabel::getLabelId).collect(Collectors.toList());
+            mcsProductVO.setLabelIds(labelIds);
+        }
+        return R.ok(mcsProductVO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsVerifiedRecordServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsVerifiedRecordServiceImpl.java
new file mode 100644
index 0000000..801557d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/McsVerifiedRecordServiceImpl.java
@@ -0,0 +1,38 @@
+package com.panzhihua.service_community.service.impl;
+
+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.model.dtos.community.microCommercialStreet.PageVerifyRecordDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsCouponVO;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsVerifyRecordVO;
+import com.panzhihua.service_community.dao.McsVerifiedRecordDAO;
+import com.panzhihua.service_community.entity.McsVerifiedRecord;
+import com.panzhihua.service_community.service.McsVerifiedRecordService;
+import org.springframework.stereotype.Service;
+
+/**
+ * (McsVerifiedRecord)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-12-28 14:37:14
+ */
+@Service("mcsVerifiedRecordService")
+public class McsVerifiedRecordServiceImpl extends ServiceImpl<McsVerifiedRecordDAO, McsVerifiedRecord>
+    implements McsVerifiedRecordService {
+
+    /**
+     * 分页查询核销记录
+     * @param pageVerifyRecordDTO
+     * @return
+     */
+    @Override
+    public R pageMcsVerifyRecord(PageVerifyRecordDTO pageVerifyRecordDTO) {
+        Page page = new Page<>();
+        page.setSize(pageVerifyRecordDTO.getPageSize());
+        page.setCurrent(pageVerifyRecordDTO.getPageNum());
+        IPage<McsVerifyRecordVO> verifyRecords = this.baseMapper.pageMcsVerifyRecord(page, pageVerifyRecordDTO);
+        return R.ok(verifyRecords);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/MostBeautifulVolunteerServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/MostBeautifulVolunteerServiceImpl.java
new file mode 100644
index 0000000..2315944
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/MostBeautifulVolunteerServiceImpl.java
@@ -0,0 +1,45 @@
+package com.panzhihua.service_community.service.impl;
+
+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.model.vos.community.MostBeautifulVolunteerVO;
+import com.panzhihua.service_community.dao.MostBeautifulVolunteerDao;
+import com.panzhihua.service_community.entity.MostBeautifulVolunteer;
+import com.panzhihua.service_community.service.MostBeautifulVolunteerService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+@Slf4j
+@Service
+public class MostBeautifulVolunteerServiceImpl extends ServiceImpl<MostBeautifulVolunteerDao,
+        MostBeautifulVolunteer> implements MostBeautifulVolunteerService
+{
+
+    @Override
+    public MostBeautifulVolunteer queryById(String Id) {
+        return baseMapper.queryById(Id);
+    }
+
+    @Override
+    public IPage<MostBeautifulVolunteer> queryList(int pageNum,int pageSize, String name, String unmountType)
+    {
+        Page page = new Page<MostBeautifulVolunteer>(pageNum,pageSize);
+        return baseMapper.queryList(page, name,unmountType);
+    }
+
+    @Override
+    public int insertMostBeautifulVolunteer(MostBeautifulVolunteerVO mostBeautifulVolunteerVO) {
+        return baseMapper.insertMostBeautifulVolunteer(mostBeautifulVolunteerVO);
+    }
+
+    @Override
+    public int updateById(MostBeautifulVolunteerVO mostBeautifulVolunteerVO) {
+        return baseMapper.updateById(mostBeautifulVolunteerVO);
+    }
+
+    @Override
+    public int deleteById(String Id) {
+        return baseMapper.deleteById(Id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHourseContractConfigServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHourseContractConfigServiceImpl.java
new file mode 100644
index 0000000..b40aee9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHourseContractConfigServiceImpl.java
@@ -0,0 +1,104 @@
+package com.panzhihua.service_community.service.impl;
+
+import static java.util.Objects.nonNull;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.community.rentingHouses.PageRentingHousesConfigDTO;
+import com.panzhihua.common.model.dtos.community.rentingHouses.RentingHousesConfigDTO;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.rentingHouses.RentingHousesConfigVO;
+import com.panzhihua.service_community.dao.RentingHourseContractConfigDao;
+import com.panzhihua.service_community.entity.RentingHourseContractConfig;
+import com.panzhihua.service_community.service.RentingHourseContractConfigService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 房屋租赁-配置项表(RentingHourseContractConfig)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-11-23 10:46:20
+ */
+@Slf4j
+@Service
+public class RentingHourseContractConfigServiceImpl extends ServiceImpl<RentingHourseContractConfigDao, RentingHourseContractConfig> implements RentingHourseContractConfigService {
+
+    @Override
+    public R pageList(CommonPage commonPage) {
+        return null;
+    }
+
+    /**
+     * 分页查询房屋租赁基础配置
+     * @param pageRentingHousesConfigDTO
+     * @return
+     */
+    @Override
+    public R pageRentingHousesConfig(PageRentingHousesConfigDTO pageRentingHousesConfigDTO) {
+        Page page = new Page<>();
+        page.setCurrent(pageRentingHousesConfigDTO.getPageNum());
+        page.setSize(pageRentingHousesConfigDTO.getPageSize());
+        return R.ok(this.baseMapper.pageRentingHousesConfig(page, pageRentingHousesConfigDTO));
+    }
+
+    /**
+     * 更新配置信息
+     * @param rentingHousesConfigDTO
+     * @return
+     */
+    @Override
+    public R updateRentingHousesConfig(RentingHousesConfigDTO rentingHousesConfigDTO) {
+        RentingHourseContractConfig config = this.baseMapper.selectById(rentingHousesConfigDTO.getId());
+        if (nonNull(config)) {
+            config.setValue(rentingHousesConfigDTO.getValue());
+            this.baseMapper.updateById(config);
+        }
+        return R.ok();
+    }
+
+    /**
+     * 获取房屋租赁配置
+     * @return
+     * @param type
+     */
+    @Override
+    public R getRentingHouseConfig(Integer type) {
+        String configKey = "";
+        switch (type) {
+            case 1:
+                configKey = "houseRentalContract";
+                break;
+            case 2:
+                configKey = "leaseContractModificationAgreement";
+                break;
+            case 3:
+                configKey = "earnestDepositAgreement";
+                break;
+            case 4:
+                configKey = "houseAgencyContract";
+                break;
+            case 5:
+                configKey = "platformInstructions";
+                break;
+            case 6:
+                configKey = "houseLabel";
+                break;
+            default:
+                break;
+        }
+        RentingHourseContractConfig houseConfig = this.baseMapper.selectOne(new QueryWrapper<RentingHourseContractConfig>()
+                .lambda().eq(RentingHourseContractConfig::getKey, configKey));
+        if (nonNull(houseConfig)) {
+            RentingHousesConfigVO configVO = new RentingHousesConfigVO();
+            BeanUtils.copyProperties(houseConfig, configVO);
+            return R.ok(configVO);
+        }
+        return R.ok();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHourseFileServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHourseFileServiceImpl.java
new file mode 100644
index 0000000..880f9c7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHourseFileServiceImpl.java
@@ -0,0 +1,26 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.RentingHourseFile;
+import com.panzhihua.service_community.dao.RentingHourseFileDao;
+import com.panzhihua.service_community.service.RentingHourseFileService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * 房屋租赁-涉及的文件表(RentingHourseFile)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-11-23 10:46:20
+ */
+@Slf4j
+@Service
+public class RentingHourseFileServiceImpl extends ServiceImpl<RentingHourseFileDao, RentingHourseFile> implements RentingHourseFileService {
+
+    @Override
+    public R pageList(CommonPage commonPage) {
+        return null;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHourseLabelServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHourseLabelServiceImpl.java
new file mode 100644
index 0000000..525128d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHourseLabelServiceImpl.java
@@ -0,0 +1,26 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.RentingHourseLabel;
+import com.panzhihua.service_community.dao.RentingHourseLabelDao;
+import com.panzhihua.service_community.service.RentingHourseLabelService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * 房屋租赁-房源标签(RentingHourseLabel)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-11-23 10:46:39
+ */
+@Slf4j
+@Service
+public class RentingHourseLabelServiceImpl extends ServiceImpl<RentingHourseLabelDao, RentingHourseLabel> implements RentingHourseLabelService {
+
+    @Override
+    public R pageList(CommonPage commonPage) {
+        return null;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHourseOrderServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHourseOrderServiceImpl.java
new file mode 100644
index 0000000..4cedd14
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHourseOrderServiceImpl.java
@@ -0,0 +1,182 @@
+package com.panzhihua.service_community.service.impl;
+
+import cn.hutool.core.date.DateUnit;
+import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.rentHouse.RentingHourseOrderVO;
+import com.panzhihua.common.model.vos.community.rentHouse.WxPayNotifyOrderVO;
+import com.panzhihua.common.model.vos.community.rentHouse.WxPayOrderVO;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.common.utlis.WxPayUtils;
+import com.panzhihua.common.utlis.WxUtil;
+import com.panzhihua.service_community.dao.RentingHoursePayingOrderDao;
+import com.panzhihua.service_community.dao.RentingHoursePreOrderDao;
+import com.panzhihua.service_community.dao.RentingHourseRegisterDao;
+import com.panzhihua.service_community.entity.RentingHourseOrder;
+import com.panzhihua.service_community.dao.RentingHourseOrderDao;
+import com.panzhihua.service_community.entity.RentingHoursePayingOrder;
+import com.panzhihua.service_community.entity.RentingHoursePreOrder;
+import com.panzhihua.service_community.entity.RentingHourseRegister;
+import com.panzhihua.service_community.service.RentingHourseOrderService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.rabbit.core.RabbitTemplate;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 房屋租赁-房屋订单表(RentingHourseOrder)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-11-23 10:46:57
+ */
+@Slf4j
+@Service
+public class RentingHourseOrderServiceImpl extends ServiceImpl<RentingHourseOrderDao, RentingHourseOrder> implements RentingHourseOrderService {
+
+    @Resource
+    private RentingHoursePreOrderDao rentingHoursePreOrderDao;
+    @Resource
+    private RentingHourseOrderDao rentingHourseOrderDao;
+    @Resource
+    private RentingHoursePayingOrderDao rentingHoursePayingOrderDao;
+    @Resource
+    private RentingHourseRegisterDao rentingHourseRegisterDao;
+    @Resource
+    private RabbitTemplate rabbitTemplate;
+    @Value("${min.app.isTest}")
+    private Boolean isTest;
+    @Value("${min.app.appid}")
+    private String appid;
+    @Value("${min.app.payKey}")
+    private String payKey;
+    @Value("${min.app.mchId}")
+    private String mchId;
+    @Value("${min.app.notifyUrl}")
+    private String notifyUrl;
+    @Override
+    public R pageList(CommonPage commonPage) {
+        return R.ok(rentingHourseOrderDao.pageList(new Page(commonPage.getPage(), commonPage.getSize()),commonPage));
+    }
+
+    @Override
+    public R createOrder(RentingHourseOrderVO rentingHourseOrderVO) {
+        RentingHourseOrder rentingHourseOrder=new RentingHourseOrder();
+        BeanUtils.copyProperties(rentingHourseOrderVO,rentingHourseOrder);
+        RentingHourseRegister rentingHourseRegister=rentingHourseRegisterDao.selectById(rentingHourseOrderVO.getRegisterId());
+        if(rentingHourseRegister==null){
+            return R.fail("未查询到该租房信息");
+        }
+        if(rentingHourseRegister.getStatus()!=RentingHourseRegister.Status.dcz&&rentingHourseRegister.getDetailStatus()!=3){
+            return R.fail("该房屋状态不可出租");
+        }
+        rentingHourseOrder.setVillageId(rentingHourseRegister.getVillageId());
+        rentingHourseOrder.setVillageName(rentingHourseRegister.getVillageName());
+        rentingHourseOrder.setStreetId(rentingHourseRegister.getStreetId());
+        rentingHourseOrder.setCreateDate(new Date());
+        rentingHourseOrder.setId(Snowflake.getId());
+        rentingHourseOrder.setOrderSn(DateUtils.getCurrentDateTimeStamp()+"");
+        rentingHourseOrder.setStatus(RentingHourseOrder.status.wzf);
+        rentingHourseOrder.setOrderType(RentingHourseOrder.orderType.pt);
+        if(rentingHourseOrderDao.insert(rentingHourseOrder)>0){
+            return R.ok(rentingHourseOrder.getOrderSn());
+        }
+        return R.fail("添加失败");
+    }
+
+    /**
+     * 支付回调  判断订单类型并进行相应的逻辑处理
+     * @param wxPayNotifyOrderVO
+     * @return
+     */
+    @Override
+    public R wxPayNotify(WxPayNotifyOrderVO wxPayNotifyOrderVO) {
+        RentingHoursePayingOrder rentingHoursePayingOrder=new RentingHoursePayingOrder();
+        BeanUtils.copyProperties(wxPayNotifyOrderVO,rentingHoursePayingOrder);
+        rentingHoursePayingOrder.setId(Snowflake.getId());
+        rentingHoursePayingOrderDao.insert(rentingHoursePayingOrder);
+        RentingHourseOrder rentingHourseOrder=rentingHourseOrderDao.selectOne(new QueryWrapper<RentingHourseOrder>().lambda().eq(RentingHourseOrder::getOrderSn,wxPayNotifyOrderVO.getOrderSn()));
+        RentingHoursePreOrder rentingHoursePreOrder=rentingHoursePreOrderDao.selectOne(new QueryWrapper<RentingHoursePreOrder>().lambda().eq(RentingHoursePreOrder::getOrderSn,wxPayNotifyOrderVO.getOrderSn()));
+        if(rentingHourseOrder!=null){
+            rentingHourseOrder.setStatus(RentingHourseOrder.status.yzf);
+            rentingHourseOrder.setPaySn(rentingHoursePayingOrder.getId());
+            rentingHourseOrderDao.updateById(rentingHourseOrder);
+            RentingHourseRegister rentingHourseRegister=rentingHourseRegisterDao.selectById(rentingHourseOrder.getRegisterId());
+            rentingHourseRegister.setStatus(2);
+            rentingHourseRegister.setDetailStatus(4);
+            rentingHourseRegisterDao.updateById(rentingHourseRegister);
+            rabbitTemplate.convertAndSend("huacheng.order.exchange", "huacheng.order.key", rentingHourseOrder, message -> {
+                message.getMessageProperties().setHeader("x-delay", dateToSecond(DateUtil.endOfDay(DateUtil.date())) * 1000 * 3600);
+                return message;
+            });
+        }
+        if(rentingHoursePreOrder!=null){
+            rentingHoursePreOrder.setStatus(RentingHoursePreOrder.status.yjl);
+            rentingHoursePreOrder.setPaySn(rentingHoursePayingOrder.getId());
+            rentingHoursePreOrderDao.updateById(rentingHoursePreOrder);
+            RentingHourseRegister rentingHourseRegister=rentingHourseRegisterDao.selectById(rentingHourseOrder.getRegisterId());
+            rentingHourseRegister.setStatus(2);
+            rentingHourseRegister.setDetailStatus(4);
+            rentingHourseRegisterDao.updateById(rentingHourseRegister);
+            rabbitTemplate.convertAndSend("huacheng.preOrder.exchange", "huacheng.preOrder.key", rentingHoursePreOrder, message -> {
+                message.getMessageProperties().setHeader("x-delay", dateToSecond(rentingHoursePreOrder.getExpireDate()) * 1000 * 3600);
+                return message;
+            });
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R wxPay(WxPayOrderVO wxPayOrderVO) {
+        RentingHourseOrder rentingHourseOrder=rentingHourseOrderDao.selectOne(new QueryWrapper<RentingHourseOrder>().lambda().eq(RentingHourseOrder::getOrderSn,wxPayOrderVO.getOrderSn()));
+        RentingHoursePreOrder rentingHoursePreOrder=rentingHoursePreOrderDao.selectOne(new QueryWrapper<RentingHoursePreOrder>().lambda().eq(RentingHoursePreOrder::getOrderSn,wxPayOrderVO.getOrderSn()));
+        if(rentingHourseOrder!=null){
+            try {
+                BigDecimal money = rentingHourseOrder.getTotalAccount();
+                if (isTest) {
+                    money = BigDecimal.valueOf(0.01);
+                }
+                // 调用wx支付
+                WxPayUtils.getUnifiedorder(appid, mchId, payKey, notifyUrl, "签订租房合同", wxPayOrderVO.getOpenId(),
+                        wxPayOrderVO.getOrderSn(), money,null);
+                return R.ok();
+            } catch (Exception e) {
+                log.error("调用微信支付异常,异常原因:" + e.getMessage());
+            }
+        }
+        if(rentingHoursePreOrder!=null){
+            try {
+                BigDecimal money = rentingHoursePreOrder.getDingMoney();
+                if (isTest) {
+                    money = BigDecimal.valueOf(0.01);
+                }
+                // 调用wx支付
+                WxPayUtils.getUnifiedorder(appid, mchId, payKey, notifyUrl, "定金支付", wxPayOrderVO.getOpenId(),
+                        wxPayOrderVO.getOrderSn(), money,null);
+                return R.ok();
+            } catch (Exception e) {
+                log.error("调用微信支付异常,异常原因:" + e.getMessage());
+            }
+        }
+        return R.fail("订单信息异常");
+    }
+
+    @Override
+    public R statics(RentingHourseOrderVO rentingHourseOrderVO) {
+        return R.ok(this.rentingHourseOrderDao.orderStatics(rentingHourseOrderVO));
+    }
+
+    private Long dateToSecond(Date expireTime){
+        return DateUtil.between(new Date(),expireTime, DateUnit.MS);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHoursePayingOrderServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHoursePayingOrderServiceImpl.java
new file mode 100644
index 0000000..920ad97
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHoursePayingOrderServiceImpl.java
@@ -0,0 +1,26 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.RentingHoursePayingOrder;
+import com.panzhihua.service_community.dao.RentingHoursePayingOrderDao;
+import com.panzhihua.service_community.service.RentingHoursePayingOrderService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * 房屋租赁-支付流水记录表(RentingHoursePayingOrder)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-11-23 10:47:17
+ */
+@Slf4j
+@Service
+public class RentingHoursePayingOrderServiceImpl extends ServiceImpl<RentingHoursePayingOrderDao, RentingHoursePayingOrder> implements RentingHoursePayingOrderService {
+
+    @Override
+    public R pageList(CommonPage commonPage) {
+        return null;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHoursePreOrderServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHoursePreOrderServiceImpl.java
new file mode 100644
index 0000000..1cf51fa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHoursePreOrderServiceImpl.java
@@ -0,0 +1,69 @@
+package com.panzhihua.service_community.service.impl;
+
+import cn.hutool.core.date.DateUnit;
+import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.rentHouse.RentingHoursePreOrderVO;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.service_community.dao.RentingHourseRegisterDao;
+import com.panzhihua.service_community.entity.RentingHoursePreOrder;
+import com.panzhihua.service_community.dao.RentingHoursePreOrderDao;
+import com.panzhihua.service_community.entity.RentingHourseRegister;
+import com.panzhihua.service_community.service.RentingHoursePreOrderService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.rabbit.core.RabbitTemplate;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * 房屋租赁-房屋定金订单表(RentingHoursePreOrder)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-11-23 10:47:54
+ */
+@Slf4j
+@Service
+public class RentingHoursePreOrderServiceImpl extends ServiceImpl<RentingHoursePreOrderDao, RentingHoursePreOrder> implements RentingHoursePreOrderService {
+
+    @Resource
+    private RentingHoursePreOrderDao rentingHoursePreOrderDao;
+    @Resource
+    private RentingHourseRegisterDao rentingHourseRegisterDao;
+    @Override
+    public R pageList(CommonPage commonPage) {
+        return R.ok(this.rentingHoursePreOrderDao.pageList(new Page(commonPage.getPage(), commonPage.getSize()),commonPage));
+    }
+
+    @Override
+    public R createOrder(RentingHoursePreOrderVO rentingHoursePreOrderVO) {
+        RentingHourseRegister rentingHourseRegister=rentingHourseRegisterDao.selectById(rentingHoursePreOrderVO.getRegisterId());
+        if(rentingHourseRegister==null){
+            return R.fail("未查询到该租房信息");
+        }
+        if(rentingHourseRegister.getStatus()!=RentingHourseRegister.Status.dcz&&rentingHourseRegister.getDetailStatus()!=3){
+            return R.fail("该房屋状态不可出租");
+        }
+        RentingHoursePreOrder rentingHoursePreOrder=new RentingHoursePreOrder();
+        BeanUtils.copyProperties(rentingHoursePreOrderVO,rentingHoursePreOrder);
+        rentingHoursePreOrder.setVillageName(rentingHourseRegister.getVillageName());
+        rentingHoursePreOrder.setId(Snowflake.getId());
+        rentingHoursePreOrder.setOrderSn(DateUtils.getCurrentDateTimeStamp()+"");
+        rentingHoursePreOrder.setStatus(RentingHoursePreOrder.status.dzf);
+        if(rentingHoursePreOrderDao.insert(rentingHoursePreOrder)>0){
+            return R.ok(rentingHoursePreOrder.getOrderSn());
+        }
+        return R.fail("创建定金订单失败");
+    }
+
+    @Override
+    public R statics(RentingHoursePreOrderVO rentingHoursePreOrderVO) {
+        return R.ok(this.rentingHoursePreOrderDao.statics(rentingHoursePreOrderVO));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHourseRefundOrderServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHourseRefundOrderServiceImpl.java
new file mode 100644
index 0000000..3467888
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHourseRefundOrderServiceImpl.java
@@ -0,0 +1,26 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.RentingHourseRefundOrder;
+import com.panzhihua.service_community.dao.RentingHourseRefundOrderDao;
+import com.panzhihua.service_community.service.RentingHourseRefundOrderService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * 房屋租赁-退款流水记录表(RentingHourseRefundOrder)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-11-23 10:48:15
+ */
+@Slf4j
+@Service
+public class RentingHourseRefundOrderServiceImpl extends ServiceImpl<RentingHourseRefundOrderDao, RentingHourseRefundOrder> implements RentingHourseRefundOrderService {
+
+    @Override
+    public R pageList(CommonPage commonPage) {
+        return null;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHourseRegisterServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHourseRegisterServiceImpl.java
new file mode 100644
index 0000000..37d3d22
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHourseRegisterServiceImpl.java
@@ -0,0 +1,459 @@
+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.isNotBlank;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import javax.annotation.Resource;
+import javax.validation.constraints.NotNull;
+
+import com.panzhihua.common.exceptions.ServiceException;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.community.rentingHouses.NearbyDTO;
+import com.panzhihua.common.model.dtos.community.rentingHouses.PageRentingHouseRegisterDTO;
+import com.panzhihua.common.model.dtos.community.rentingHouses.ReleaseOrCancelHouseDTO;
+import com.panzhihua.common.model.dtos.community.rentingHouses.RentingHouseRegisterDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.rentingHouses.RentingHouseRegisterVO;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.service_community.dao.ComActVillageDAO;
+import com.panzhihua.service_community.dao.RentingHourseContractConfigDao;
+import com.panzhihua.service_community.dao.RentingHourseRegisterDao;
+import com.panzhihua.service_community.entity.RentingHourseContractConfig;
+import com.panzhihua.service_community.entity.RentingHourseFile;
+import com.panzhihua.service_community.entity.RentingHourseRegister;
+import com.panzhihua.service_community.model.dos.ComMngVillageDO;
+import com.panzhihua.service_community.service.RentingHourseFileService;
+import com.panzhihua.service_community.service.RentingHourseRegisterService;
+import com.panzhihua.service_community.util.NearbyUtil;
+import com.panzhihua.service_community.util.WxMaConfiguration;
+import com.spatial4j.core.shape.Rectangle;
+
+import cn.binarywang.wx.miniapp.api.WxMaQrcodeService;
+import cn.hutool.core.codec.Base64;
+import lombok.extern.slf4j.Slf4j;
+import me.chanjar.weixin.common.error.WxErrorException;
+
+/**
+ * 房屋租售-租赁房屋登记(RentingHourseRegister)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-11-23 10:49:08
+ */
+@Slf4j
+@Service
+public class RentingHourseRegisterServiceImpl extends ServiceImpl<RentingHourseRegisterDao, RentingHourseRegister> implements RentingHourseRegisterService {
+
+    @Resource
+    private ComActVillageDAO comActVillageDAO;
+    @Resource
+    private RentingHourseFileService rentingHourseFileService;
+    @Resource
+    private RentingHourseContractConfigDao rentingHourseContractConfigDao;
+    @Resource
+    private WxMaConfiguration wxMaConfiguration;
+
+    @Value("${rentinghouse.min-app.jump-page}")
+    private String minAppJumpPage;
+
+    /**
+     * 新增房源信息
+     * @param registerDTO
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R registerRentingHouse(RentingHouseRegisterDTO registerDTO) {
+        checkDepositMoney(registerDTO);
+        Long communityId = registerDTO.getCommunityId();
+        Long userId = registerDTO.getUserId();
+        RentingHourseRegister houseRegister = new RentingHourseRegister();
+        BeanUtils.copyProperties(registerDTO, houseRegister);
+        Date nowDate = new Date();
+        houseRegister.setId(Snowflake.getId());
+        houseRegister.setAuthStatus(RentingHourseRegister.AuthStatus.wrz);
+        houseRegister.setStatus(RentingHourseRegister.Status.dfb);
+        houseRegister.setDetailStatus(RentingHourseRegister.DetailStatus.drz);
+        houseRegister.setInfoStatus(2);
+        houseRegister.setCreateAt(nowDate);
+        houseRegister.setUpdateAt(nowDate);
+        try {
+            WxMaQrcodeService qrCodeService = wxMaConfiguration.getMaService(registerDTO.getAreaCode()).getQrcodeService();
+            byte[] bytes = qrCodeService.createWxaCodeUnlimitBytes("id=" + houseRegister.getId() + "&type=6",
+                    minAppJumpPage, 30, true, null, false);
+            String authCode = String.format("data:image/png;base64,%s", Base64.encode(bytes));
+            houseRegister.setAuthCode(authCode);
+        } catch (WxErrorException e) {
+            log.error("生成房源认证码失败【{}】", e.getMessage());
+            return R.fail("生成房源认证码失败,请稍后重试");
+        }
+        //街道id
+        //小区id
+        List<ComMngVillageDO> villageList = comActVillageDAO.selectList(new QueryWrapper<ComMngVillageDO>().lambda()
+                .eq(ComMngVillageDO::getCommunityId, communityId)
+                .eq(ComMngVillageDO::getAlley, registerDTO.getAlley())
+                .eq(ComMngVillageDO::getHouseNum, registerDTO.getHouseNum()));
+        Long streetId = 0L;
+        Long villageId = 0L;
+        if (!villageList.isEmpty()) {
+            ComMngVillageDO village = villageList.stream().sorted(Comparator.comparing(ComMngVillageDO::getCreateAt).reversed()).findFirst().get();
+            streetId = village.getStreetId();
+            villageId = village.getVillageId();
+            houseRegister.setStreetId(streetId);
+            houseRegister.setVillageId(villageId);
+        }
+        //房屋编号 streetId + communityId + villageId + timestamp
+        String code = "" + streetId + communityId + villageId + nowDate.toInstant().getEpochSecond();
+        houseRegister.setCode(code);
+        int result = this.baseMapper.insert(houseRegister);
+        if (result > 0) {
+            //图片存储
+            Long registerId = houseRegister.getId();
+            List<RentingHourseFile> files = new ArrayList<>();
+            List<String> housePictures = registerDTO.getHousePictures();
+            if (!housePictures.isEmpty()) {
+                housePictures.forEach(e -> {
+                    if (StringUtils.isNotBlank(e)) {
+                        RentingHourseFile file = new RentingHourseFile();
+                        file.setId(Snowflake.getId());
+                        file.setClassification(RentingHourseFile.Classification.fytp);
+                        file.setRefId(registerId);
+                        file.setType(RentingHourseFile.Type.picture);
+                        file.setUrl(e);
+                        file.setCreateBy(userId);
+                        file.setCreateAt(nowDate);
+                        files.add(file);
+                    }
+                });
+            }
+            List<String> propertyPictures = registerDTO.getPropertyPictures();
+            if (!propertyPictures.isEmpty()) {
+                propertyPictures.forEach(e -> {
+                    if (StringUtils.isNotBlank(e)) {
+                        RentingHourseFile file = new RentingHourseFile();
+                        file.setId(Snowflake.getId());
+                        file.setClassification(RentingHourseFile.Classification.cqtp);
+                        file.setRefId(registerId);
+                        file.setType(RentingHourseFile.Type.picture);
+                        file.setUrl(e);
+                        file.setCreateBy(userId);
+                        file.setCreateAt(nowDate);
+                        files.add(file);
+                    }
+                });
+            }
+            List<String> credentialsPictures = registerDTO.getCredentialsPictures();
+            if (!credentialsPictures.isEmpty()) {
+                credentialsPictures.forEach(e -> {
+                    if (StringUtils.isNotBlank(e)) {
+                        RentingHourseFile file = new RentingHourseFile();
+                        file.setId(Snowflake.getId());
+                        file.setClassification(RentingHourseFile.Classification.zjzq);
+                        file.setRefId(registerId);
+                        file.setType(RentingHourseFile.Type.picture);
+                        file.setUrl(e);
+                        file.setCreateBy(userId);
+                        file.setCreateAt(nowDate);
+                        files.add(file);
+                    }
+                });
+            }
+            rentingHourseFileService.saveBatch(files);
+            return R.ok();
+        }
+        return R.fail("新增房源失败");
+    }
+
+    private void checkDepositMoney(RentingHouseRegisterDTO registerDTO) {
+        BigDecimal dingMoney = registerDTO.getDingMoney();
+        BigDecimal monthlyRentMoney = registerDTO.getMonthlyRentMoney();
+        if (nonNull(dingMoney) && nonNull(monthlyRentMoney) && dingMoney.compareTo(monthlyRentMoney) == 1) {
+            throw new ServiceException("500", "定金不能超过月租金");
+        }
+    }
+
+    /**
+     * 编辑房源信息
+     * @param registerDTO
+     * @return
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R updateRentingHouse(RentingHouseRegisterDTO registerDTO) {
+        checkDepositMoney(registerDTO);
+        Long id = registerDTO.getId();
+        Long userId = registerDTO.getUserId();
+        RentingHourseRegister houseRegister = this.baseMapper.selectById(id);
+        if (isNull(houseRegister)) {
+            return R.fail("房源不存在");
+        }
+        if (houseRegister.getStatus().intValue() == RentingHourseRegister.Status.czz ||
+                houseRegister.getStatus().intValue() == RentingHourseRegister.Status.ytz) {
+            return R.fail("出租中、结算中不可进行编辑操作");
+        }
+        if (houseRegister.getStatus().intValue() == RentingHourseRegister.Status.dcz) {
+            return R.fail("编辑房源请先取消发布");
+        }
+        Date nowDate = new Date();
+        BeanUtils.copyProperties(registerDTO, houseRegister);
+        houseRegister.setUpdateAt(nowDate);
+        String alley = registerDTO.getAlley();
+        String houseNum = registerDTO.getHouseNum();
+        boolean isChange = isNotBlank(alley) && isNotBlank(houseNum)
+                && (!houseRegister.getAlley().equals(alley) || !houseRegister.getHouseNum().equals(houseNum));
+        if (isChange) {
+            List<ComMngVillageDO> villageList = comActVillageDAO.selectList(new QueryWrapper<ComMngVillageDO>().lambda()
+                    .eq(ComMngVillageDO::getCommunityId, registerDTO.getCommunityId())
+                    .eq(ComMngVillageDO::getAlley, alley)
+                    .eq(ComMngVillageDO::getHouseNum, houseNum));
+            if (!villageList.isEmpty()) {
+                ComMngVillageDO village = villageList.stream().sorted(Comparator.comparing(ComMngVillageDO::getCreateAt).reversed()).findFirst().get();
+                houseRegister.setStreetId(village.getStreetId());
+                houseRegister.setVillageId(village.getVillageId());
+            }
+        }
+        int result = this.baseMapper.updateById(houseRegister);
+        if (result > 0) {
+            List<RentingHourseFile> files = new ArrayList<>();
+            List<String> housePictures = registerDTO.getHousePictures();
+            if (nonNull(housePictures) && !housePictures.isEmpty()) {
+                rentingHourseFileService.remove(new QueryWrapper<RentingHourseFile>().lambda()
+                        .eq(RentingHourseFile::getRefId, id)
+                        .eq(RentingHourseFile::getClassification, RentingHourseFile.Classification.fytp)
+                        .eq(RentingHourseFile::getType, RentingHourseFile.Type.picture));
+                housePictures.forEach(e -> {
+                    if (StringUtils.isNotBlank(e)) {
+                        RentingHourseFile file = new RentingHourseFile();
+                        file.setId(Snowflake.getId());
+                        file.setClassification(RentingHourseFile.Classification.fytp);
+                        file.setRefId(id);
+                        file.setType(RentingHourseFile.Type.picture);
+                        file.setUrl(e);
+                        file.setCreateBy(userId);
+                        file.setCreateAt(nowDate);
+                        files.add(file);
+                    }
+                });
+            }
+            List<String> propertyPictures = registerDTO.getPropertyPictures();
+            if (nonNull(propertyPictures) && !propertyPictures.isEmpty()) {
+                rentingHourseFileService.remove(new QueryWrapper<RentingHourseFile>().lambda()
+                        .eq(RentingHourseFile::getRefId, id)
+                        .eq(RentingHourseFile::getClassification, RentingHourseFile.Classification.cqtp)
+                        .eq(RentingHourseFile::getType, RentingHourseFile.Type.picture));
+                propertyPictures.forEach(e -> {
+                    if (StringUtils.isNotBlank(e)) {
+                        RentingHourseFile file = new RentingHourseFile();
+                        file.setId(Snowflake.getId());
+                        file.setClassification(RentingHourseFile.Classification.cqtp);
+                        file.setRefId(id);
+                        file.setType(RentingHourseFile.Type.picture);
+                        file.setUrl(e);
+                        file.setCreateBy(userId);
+                        file.setCreateAt(nowDate);
+                        files.add(file);
+                    }
+                });
+            }
+            List<String> credentialsPictures = registerDTO.getCredentialsPictures();
+            if (nonNull(credentialsPictures) && !credentialsPictures.isEmpty()) {
+                rentingHourseFileService.remove(new QueryWrapper<RentingHourseFile>().lambda()
+                        .eq(RentingHourseFile::getRefId, id)
+                        .eq(RentingHourseFile::getClassification, RentingHourseFile.Classification.zjzq)
+                        .eq(RentingHourseFile::getType, RentingHourseFile.Type.picture));
+                credentialsPictures.forEach(e -> {
+                    if (StringUtils.isNotBlank(e)) {
+                        RentingHourseFile file = new RentingHourseFile();
+                        file.setId(Snowflake.getId());
+                        file.setClassification(RentingHourseFile.Classification.zjzq);
+                        file.setRefId(id);
+                        file.setType(RentingHourseFile.Type.picture);
+                        file.setUrl(e);
+                        file.setCreateBy(userId);
+                        file.setCreateAt(nowDate);
+                        files.add(file);
+                    }
+                });
+            }
+            rentingHourseFileService.saveBatch(files);
+            return R.ok();
+        }
+        return R.fail("修改失败");
+    }
+
+    /**
+     * 分页获取房源信息
+     * @param pageRegisterDTO
+     * @return
+     */
+    @Override
+    public R pageRentingHouse(PageRentingHouseRegisterDTO pageRegisterDTO) {
+        Page page = new Page<>();
+        page.setCurrent(pageRegisterDTO.getPageNum());
+        page.setSize(pageRegisterDTO.getPageSize());
+        return R.ok(this.baseMapper.pageRentingHouse(page, pageRegisterDTO));
+    }
+
+    /**
+     * 发布/取消发布 房源信
+     * @param releaseOrCancelHouseDTO
+     * @return
+     */
+    @Override
+    public R releaseOrCancelHouse(ReleaseOrCancelHouseDTO releaseOrCancelHouseDTO) {
+        RentingHourseRegister houseRegister = this.baseMapper.selectById(releaseOrCancelHouseDTO.getRegisterId());
+        if (isNull(houseRegister)) {
+            return R.fail("房源不存在");
+        }
+        Integer type = releaseOrCancelHouseDTO.getType();
+        Integer status = houseRegister.getStatus();
+        Integer authStatus = houseRegister.getAuthStatus();
+        if (type.intValue() == 1) {
+            //发布
+            if (authStatus.intValue() == RentingHourseRegister.AuthStatus.wrz) {
+                return R.fail("房源还未认证");
+            }
+            if (status.intValue() != RentingHourseRegister.Status.dfb) {
+                return R.fail("已发布,请勿重复操作");
+            }
+            houseRegister.setStatus(RentingHourseRegister.Status.dcz);
+            houseRegister.setDetailStatus(RentingHourseRegister.DetailStatus.dcz);
+        } else {
+            if (status.intValue() != RentingHourseRegister.Status.dcz) {
+                return R.fail("暂不可取消发布");
+            }
+            //取消发布
+            houseRegister.setStatus(RentingHourseRegister.Status.dfb);
+            if (authStatus.intValue() == RentingHourseRegister.AuthStatus.yrz) {
+                houseRegister.setDetailStatus(RentingHourseRegister.DetailStatus.dfb);
+            } else {
+                houseRegister.setDetailStatus(RentingHourseRegister.DetailStatus.drz);
+            }
+        }
+        houseRegister.setUpdateAt(new Date());
+        int result = this.baseMapper.updateById(houseRegister);
+        if (result > 0) {
+            return R.ok();
+        }
+        return R.fail("失败,请重试");
+    }
+
+    /**
+     * 删除房源信息
+     * @param registerId
+     * @return
+     */
+    @Override
+    public R deleteRentingHouse(Long registerId) {
+        RentingHourseRegister houseRegister = this.baseMapper.selectById(registerId);
+        if (isNull(houseRegister)) {
+            return R.fail("房源不存在");
+        }
+        Integer status = houseRegister.getStatus();
+        if (status.intValue() != RentingHourseRegister.Status.dfb) {
+            return R.fail("已发布房源不支持删除");
+        }
+        rentingHourseFileService.remove(new QueryWrapper<RentingHourseFile>().lambda()
+                .eq(RentingHourseFile::getRefId, registerId));
+        int result = this.baseMapper.deleteById(registerId);
+        if (result > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败,请重试");
+    }
+
+    /**
+     * 获取详情-房源信息
+     * @param registerId
+     * @return
+     */
+    @Override
+    public R getRentingHouse(Long registerId) {
+        RentingHourseRegister houseRegister = this.baseMapper.selectById(registerId);
+        if (isNull(houseRegister)) {
+            return R.fail("房源不存在");
+        }
+        RentingHouseRegisterVO registerVO = new RentingHouseRegisterVO();
+        BeanUtils.copyProperties(houseRegister, registerVO);
+        List<RentingHourseFile> files = rentingHourseFileService.list(new QueryWrapper<RentingHourseFile>().lambda()
+                .eq(RentingHourseFile::getRefId, registerId)
+                .eq(RentingHourseFile::getType, RentingHourseFile.Type.picture));
+        if (!files.isEmpty()) {
+            Map<Integer, List<RentingHourseFile>> fileGroupMap = files.stream()
+                    .collect(Collectors.groupingBy(RentingHourseFile::getClassification));
+            for (Map.Entry<Integer, List<RentingHourseFile>> entry : fileGroupMap.entrySet()) {
+                List<String> urls = entry.getValue().stream().map(RentingHourseFile::getUrl).collect(Collectors.toList());
+                switch (entry.getKey()) {
+                    case RentingHourseFile.Classification.fytp:
+                        registerVO.setHousePictures(urls);
+                        registerVO.setUrl(urls.get(0));
+                        break;
+                    case RentingHourseFile.Classification.cqtp:
+                        registerVO.setPropertyPictures(urls);
+                        break;
+                    case RentingHourseFile.Classification.zjzq:
+                        registerVO.setCredentialsPictures(urls);
+                    default:
+                        break;
+                }
+            }
+        }
+        RentingHourseContractConfig contractConfig = rentingHourseContractConfigDao
+                .selectOne(new QueryWrapper<RentingHourseContractConfig>()
+                .lambda().eq(RentingHourseContractConfig::getName, "房屋委托代理合同"));
+        if (nonNull(contractConfig)) {
+            registerVO.setHouseAgencyContract(contractConfig.getValue());
+        }
+        return R.ok(registerVO);
+    }
+
+    @Override
+    public R nearby(NearbyDTO nearbyDTO) {
+        Rectangle rectangle =new NearbyUtil().getRectangle(nearbyDTO.getDistance(), Double.parseDouble(nearbyDTO.getLongitude()), Double.parseDouble(nearbyDTO.getLatitude()));
+        return R.ok(this.baseMapper.nearby(rectangle.getMinX(),rectangle.getMaxX(),
+                rectangle.getMinY(),rectangle.getMaxY(), nearbyDTO));
+    }
+
+    @Override
+    public R pageRentingHouseApplet(PageRentingHouseRegisterDTO pageRegisterDTO) {
+        Page page = new Page<>();
+        page.setCurrent(pageRegisterDTO.getPageNum());
+        page.setSize(pageRegisterDTO.getPageSize());
+        return R.ok(this.baseMapper.pageRentingHouseApplet(page, pageRegisterDTO));
+    }
+
+    @Override
+    public void updateAllHouseUnionAppCode(String areaCode) {
+        List<RentingHourseRegister> list = this.baseMapper.selectList(null);
+        if (!list.isEmpty()) {
+            list.stream().forEach(houseRegister -> {
+                try {
+                    WxMaQrcodeService qrCodeService = wxMaConfiguration.getMaService(areaCode).getQrcodeService();
+                    byte[] bytes = qrCodeService.createWxaCodeUnlimitBytes("id=" + houseRegister.getId() + "&type=6",
+                            minAppJumpPage, 30, true, null, false);
+                    String authCode = String.format("data:image/png;base64,%s", Base64.encode(bytes));
+                    houseRegister.setAuthCode(authCode);
+                } catch (WxErrorException e) {
+                    log.error("生成房源认证码失败【{}】", e.getMessage());
+                }
+            });
+            this.updateBatchById(list);
+        }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHourseReturnOrderServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHourseReturnOrderServiceImpl.java
new file mode 100644
index 0000000..7780b8d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/RentingHourseReturnOrderServiceImpl.java
@@ -0,0 +1,26 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.entity.RentingHourseReturnOrder;
+import com.panzhihua.service_community.dao.RentingHourseReturnOrderDao;
+import com.panzhihua.service_community.service.RentingHourseReturnOrderService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * 房屋租赁-房屋退租申请表(RentingHourseReturnOrder)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-11-23 10:49:37
+ */
+@Slf4j
+@Service
+public class RentingHourseReturnOrderServiceImpl extends ServiceImpl<RentingHourseReturnOrderDao, RentingHourseReturnOrder> implements RentingHourseReturnOrderService {
+
+    @Override
+    public R pageList(CommonPage commonPage) {
+        return null;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ScreenWorkServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ScreenWorkServiceImpl.java
new file mode 100644
index 0000000..f6ad587
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ScreenWorkServiceImpl.java
@@ -0,0 +1,435 @@
+package com.panzhihua.service_community.service.impl;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.*;
+
+import javax.annotation.Resource;
+
+import cn.hutool.core.util.NumberUtil;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.model.vos.DateVO;
+import com.panzhihua.common.model.vos.community.building.admin.BuildingListHeaderStatisticsAdminVo;
+import com.panzhihua.common.model.vos.community.building.admin.PageBuildingListAdminVo;
+import com.panzhihua.common.model.vos.puda.BasicDataVO;
+import com.panzhihua.common.model.vos.puda.CitizenInfoVO;
+import com.panzhihua.common.model.vos.puda.DynamicVO;
+import com.panzhihua.common.model.vos.puda.SpecialPeopleVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.service_community.service.ComActBuildingService;
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.screen.*;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.dao.*;
+import com.panzhihua.service_community.model.dos.ComActDO;
+import com.panzhihua.service_community.model.dos.ComActDynDO;
+import com.panzhihua.service_community.service.ScreenWorkService;
+
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+
+/**
+ * @author xyh
+ * @date 2021/6/15 15:14
+ */
+@Service
+public class ScreenWorkServiceImpl implements ScreenWorkService {
+
+    private static final Integer pageSize = 200;
+    private final String moth_format_str = "yyyy-MM";
+    private final String[] monthStr = new String[] {"一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二"};
+    @Resource
+    private ComActDAO comActDAO;
+    @Resource
+    private ComActNeighborCircleDAO comActNeighborCircleDAO;
+    @Resource
+    private ComActDynDAO comActDynDAO;
+    @Resource
+    private ComActMicroWishDAO comActMicroWishDAO;
+    @Resource
+    private ComActActivityDAO actActivityDAO;
+    @Resource
+    private ComActDiscussDAO comActDiscussDAO;
+    @Resource
+    private ComPbDynDAO comPbDynDAO;
+    @Resource
+    private ComActEasyPhotoDAO comActEasyPhotoDAO;
+    @Resource
+    private ComScreenDao comScreenDao;
+    @Resource
+    private ComActBuildingService comActBuildingService;
+
+    @Override
+    public R statisticNeighborCircle(Long communityId) {
+
+        ComActNeighborCircleScreenVO comActNeighborCircleScreenVO = new ComActNeighborCircleScreenVO();
+        String date = DateUtils.getDateFormatString(new Date(), moth_format_str);
+        Map<String, Long> countMap = comActNeighborCircleDAO.countByCommunityId(communityId, date);
+        comActNeighborCircleScreenVO.setCurrentNum(countMap.get("currentNum"));
+        comActNeighborCircleScreenVO.setTotalNum(countMap.get("totalNum"));
+        Map<String, Object> sumMap = comActNeighborCircleDAO.sumScreenNum(communityId);
+        comActNeighborCircleScreenVO.setFabulousNum(
+            sumMap.get("fabulousNum") == null ? 0L : Long.valueOf(sumMap.get("fabulousNum").toString()));
+        comActNeighborCircleScreenVO
+            .setCommentNum(sumMap.get("commentNum") == null ? 0L : Long.valueOf(sumMap.get("commentNum").toString()));
+        comActNeighborCircleScreenVO
+            .setSharedNum(sumMap.get("forwardNum") == null ? 0L : Long.valueOf(sumMap.get("forwardNum").toString()));
+        // 查询最近发布的邻里圈
+        comActNeighborCircleScreenVO.setList(comActNeighborCircleDAO.screenNeighborCircle(communityId, pageSize));
+        // 查询最近发布的邻里圈图片
+        comActNeighborCircleScreenVO
+            .setImgs(convertStringList(comActNeighborCircleDAO.screenNeighborCircleImgs(communityId, pageSize)));
+        return R.ok(comActNeighborCircleScreenVO);
+    }
+
+    @Override
+    public R wish(Long communityId) {
+        ComActMicroWishScreenVO wishScreenVO = new ComActMicroWishScreenVO();
+        String date = DateUtils.getDateFormatString(new Date(), moth_format_str);
+        // 统计本月新增,累计实现,待实现
+        Map<String, Long> countMap = comActMicroWishDAO.countByCommunityId(communityId, date);
+        wishScreenVO.setCompletedNum(countMap.get("completedNum") == null ? 0L : countMap.get("completedNum"));
+        wishScreenVO.setWillNum(countMap.get("willNum") == null ? 0L : countMap.get("willNum"));
+        wishScreenVO.setCurrentNum(countMap.get("currentNum") == null ? 0L : countMap.get("currentNum"));
+        // 微心愿轮播图片
+        wishScreenVO.setImgs(convertStringList(comActMicroWishDAO.getAllImgs(communityId, pageSize)));
+        return R.ok(wishScreenVO);
+    }
+
+    private List<String> convertStringList(List<String> imgList) {
+        List<String> imgs = new ArrayList<>();
+        for (String img : imgList) {
+            if (StringUtils.isEmpty(img)) {
+                continue;
+            }
+            String[] arrs = img.split(",");
+            if (arrs.length > 1) {
+                for (String arr : arrs) {
+                    imgs.add(arr);
+                }
+            } else {
+                imgs.add(img);
+            }
+        }
+        return imgs;
+    }
+
+    @Override
+    public R activity(Long communityId) {
+        ComActActivityScreenVO comActActivityScreenVO = new ComActActivityScreenVO();
+
+        comActActivityScreenVO.setImgs(convertStringList(actActivityDAO.listImg(communityId)));
+        // 统计本月新增、居民活动,志愿者活动
+        String date = DateUtils.getDateFormatString(new Date(), moth_format_str);
+        Map<String, Long> countMap = actActivityDAO.countByCommunityId(communityId, date);
+        comActActivityScreenVO.setTotalNum(countMap.get("totalNum") == null ? 0L : countMap.get("totalNum"));
+        comActActivityScreenVO.setCurrentNum(countMap.get("currentNum") == null ? 0L : countMap.get("currentNum"));
+        comActActivityScreenVO.setCommonNum(countMap.get("commonNum") == null ? 0L : countMap.get("commonNum"));
+        comActActivityScreenVO
+            .setCommonPeopleNum(countMap.get("commonPeopleNum") == null ? 0L : countMap.get("commonPeopleNum"));
+        comActActivityScreenVO
+            .setVolunteerNum(countMap.get("volunteerNum") == null ? 0L : countMap.get("volunteerNum"));
+        comActActivityScreenVO.setVolunteerPeopleNum(
+            countMap.get("volunteerPeopleNum") == null ? 0L : countMap.get("volunteerPeopleNum"));
+        // 最近活动
+        comActActivityScreenVO.setList(actActivityDAO.screenActivity(communityId, pageSize));
+        return R.ok(comActActivityScreenVO);
+    }
+
+    @Override
+    public R discuss(Long communityId) {
+        ComActDiscussScreenVO discussScreenVO = new ComActDiscussScreenVO();
+        // 统计本月新增,总共,图文,投票
+        String date = DateUtils.getDateFormatString(new Date(), moth_format_str);
+        Map<String, Long> countMap = comActDiscussDAO.countByCommunityId(communityId, date);
+        discussScreenVO.setCurrentNum(countMap.get("currentNum") == null ? 0L : countMap.get("currentNum"));
+        discussScreenVO.setTotalNum(countMap.get("totalNum") == null ? 0L : countMap.get("totalNum"));
+        discussScreenVO.setImgNum(countMap.get("imgNum") == null ? 0L : countMap.get("imgNum"));
+        discussScreenVO.setImgPeopleNum(countMap.get("imgPeopleNum") == null ? 0L : countMap.get("imgPeopleNum"));
+        discussScreenVO.setVoteNum(discussScreenVO.getTotalNum() - discussScreenVO.getImgNum());
+        discussScreenVO.setVotePeopleNum(countMap.get("votePeopleNum") == null ? 0L : countMap.get("votePeopleNum"));
+        discussScreenVO.setList(comActDiscussDAO.screenDiscuss(communityId, pageSize));
+        return R.ok(discussScreenVO);
+    }
+
+    @Override
+    public R pbWork(Long communityId) {
+        ComPbWorkScreenVO pbWorkScreenVO = new ComPbWorkScreenVO();
+        String date = DateUtils.getDateFormatString(new Date(), moth_format_str);
+        Map<String, Long> countMap = comPbDynDAO.countByCommunityId(communityId, date);
+        pbWorkScreenVO.setActivityNum(countMap.get("activityNum") == null ? 0L : countMap.get("activityNum"));
+        pbWorkScreenVO.setDynNum(countMap.get("dynNum") == null ? 0L : countMap.get("dynNum"));
+        pbWorkScreenVO.setTotalNum(pbWorkScreenVO.getActivityNum() + pbWorkScreenVO.getDynNum());
+        pbWorkScreenVO.setCurrentNum(countMap.get("currentNum") == null ? 0L : countMap.get("currentNum"));
+        // 统计近半年数据
+        List<PbWorkVO> list = new ArrayList<>();
+        for (PbWorkVO workVO : listHalfYear()) {
+            PbWorkVO result = comPbDynDAO.countByTime(workVO.getStart(), workVO.getEnd(), communityId);
+            result.setMonth(workVO.getMonth());
+            list.add(result);
+        }
+        pbWorkScreenVO.setList(list);
+        return R.ok(pbWorkScreenVO);
+    }
+
+    private List<PbWorkVO> listHalfYear() {
+        List<PbWorkVO> dateList = new ArrayList<>();
+        Date now = new Date();
+        for (int i = 6; i >= 1; i--) {
+            Date date = DateUtils.getDateM(now, -i);
+            DateTime endDay = DateUtil.endOfMonth(date);
+
+            int m = DateUtil.month(endDay);
+            if (m == 0) {
+                m = 12;
+            }
+            m--;
+            int day = DateUtil.dayOfMonth(endDay);
+            int half = day / 2;
+            String month = DateUtil.format(date, moth_format_str);
+            PbWorkVO pbWorkVO = new PbWorkVO();
+            pbWorkVO.setMonth(monthStr[m] + "月上旬");
+            pbWorkVO.setStart(month + "-01 00:00:00");
+            pbWorkVO.setEnd(month + "-" + half + " 23:59:58");
+            dateList.add(pbWorkVO);
+            PbWorkVO pbWorkVO2 = new PbWorkVO();
+            pbWorkVO2.setMonth(monthStr[m] + "月下旬");
+            pbWorkVO2.setStart(month + "-" + half + " 23:59:58");
+            pbWorkVO2.setEnd(DateUtils.getDateFormatString(endDay, "yyyy-MM-dd HH:mm:ss"));
+            dateList.add(pbWorkVO2);
+        }
+        return dateList;
+
+    }
+
+    @Override
+    public R easyPhoto(Long communityId) {
+        ComActEasyPhotoScreenVO comActEasyPhotoScreenVO = new ComActEasyPhotoScreenVO();
+        comActEasyPhotoScreenVO.setDeal(comActEasyPhotoDAO.countDeal(communityId));
+        comActEasyPhotoScreenVO.setPub(comActEasyPhotoDAO.countPub(communityId));
+        comActEasyPhotoScreenVO.setApproved(comActEasyPhotoDAO.countApproved(communityId));
+        String date = DateUtils.getDateFormatString(new Date(), moth_format_str);
+        Map<String, Object> countMap = comActEasyPhotoDAO.countByCommunityId(communityId, date);
+        comActEasyPhotoScreenVO.setCurrentNum(
+            countMap.get("currentNum") == null ? 0L : Long.valueOf(countMap.get("currentNum").toString()));
+        comActEasyPhotoScreenVO
+            .setNoneDeal(countMap.get("noneDeal") == null ? 0L : Long.valueOf(countMap.get("noneDeal").toString()));
+        comActEasyPhotoScreenVO
+            .setPubPoint(countMap.get("pubPoint") == null ? 0 : Integer.valueOf(countMap.get("pubPoint").toString()));
+        comActEasyPhotoScreenVO.setDealTime(
+            countMap.get("dealTime") == null ? 0 : Double.valueOf(countMap.get("dealTime").toString()).intValue());
+        List<EastPhotoVO> list = new ArrayList<>();
+        for (PbWorkVO workVO : listHalfYear()) {
+            String nowDate = DateUtils.getDateFormatString(DateUtil.parseDate(workVO.getStart()), moth_format_str);
+            EastPhotoVO result =
+                comActEasyPhotoDAO.countByTime(workVO.getStart(), workVO.getEnd(), nowDate, communityId);
+            result.setMonth(workVO.getMonth());
+            list.add(result);
+        }
+        comActEasyPhotoScreenVO.setList(list);
+        return R.ok(comActEasyPhotoScreenVO);
+    }
+
+    private List<EasyPhotoPointVO> getList(Map<String, Long> dealMap) {
+        Set<Map.Entry<String, Long>> entrySet = dealMap.entrySet();
+
+        List<EasyPhotoPointVO> list = new ArrayList<>();
+        for (Map.Entry<String, Long> en : entrySet) {
+            EasyPhotoPointVO easyPhotoPointVO = new EasyPhotoPointVO();
+            easyPhotoPointVO.setTypeName(en.getKey());
+            easyPhotoPointVO.setPoint(en.getValue().intValue());
+            list.add(easyPhotoPointVO);
+        }
+        return list;
+
+    }
+
+    @Override
+    public R workCount(Long communityId) {
+        ComActWorkScreenVO comActWorkScreenVO = new ComActWorkScreenVO();
+        // 已完成
+        comActWorkScreenVO.setCompletetList(comActNeighborCircleDAO.countAllCompletedWorkByCommunityId(communityId));
+
+        // 未完成
+        comActWorkScreenVO.setNoneList(comActNeighborCircleDAO.countAllNoneCompletedWorkByCommunityId(communityId));
+        comActWorkScreenVO
+            .setTotalCompleted(comActWorkScreenVO.getCompletetList().stream().mapToInt(PieElementVO::getNum).sum());
+        comActWorkScreenVO
+            .setTotalNoneCompleted(comActWorkScreenVO.getNoneList().stream().mapToInt(PieElementVO::getNum).sum());
+
+        // 统计平均耗时、平均每天完成个数
+        Map<String, Object> avgMap = comActNeighborCircleDAO.countAvgByCommunityId(communityId);
+        comActWorkScreenVO.setAvgTime(avgMap.get("avgTime") == null ? "0h"
+            : convertTimeStr(Double.valueOf(avgMap.get("avgTime").toString()).intValue()));
+
+        ComActDO comActDO = comActDAO.selectById(communityId);
+        BigDecimal days = new BigDecimal(DateUtil.betweenDay(comActDO.getCreateAt(), new Date(), false));
+        BigDecimal num = new BigDecimal(comActWorkScreenVO.getTotalCompleted());
+        BigDecimal rt = num.divide(days, 1, RoundingMode.HALF_UP);
+        comActWorkScreenVO.setEveryDayNum(rt.toString());
+        return R.ok(comActWorkScreenVO);
+    }
+
+    private String convertTimeStr(int minute) {
+        int hour = minute / 60;
+        int min = minute % 60;
+        StringBuilder timestr = new StringBuilder();
+        if (hour > 0) {
+            timestr.append(hour).append("h");
+        }
+        if (min > 0) {
+            timestr.append(min).append("min");
+        }
+        return timestr.toString();
+    }
+
+    @Override
+    public R dynamicWork(Long communityId) {
+        ComDynamicWorkScreenVO workScreenVO = new ComDynamicWorkScreenVO();
+        String date = DateUtils.getDateFormatString(new Date(), moth_format_str);
+        Map<String, Long> countMap = comActDynDAO.countByCommunityId(communityId, date);
+        if (!countMap.isEmpty()) {
+            workScreenVO
+                .setTotalNum(countMap.get("dynTotal") == null ? 0L : Long.valueOf(countMap.get("dynTotal").toString()));
+            workScreenVO.setCurrentNum(
+                countMap.get("currentNum") == null ? 0L : Long.valueOf(countMap.get("currentNum").toString()));
+        }
+
+        // 计算平均每天动态
+        DateScreenVO countAvg = comActDynDAO.countByAvgCommunityId(communityId);
+        if (countAvg != null) {
+            int day = DateUtils.differentDays(countAvg.getStartTime(), countAvg.getEndTime());
+            if (day > 0) {
+                workScreenVO.setCurrentAvgNum(workScreenVO.getTotalNum().intValue() / day);
+            }
+        }
+
+        // 查询最新的10条社区动态
+        List<String> dynList = new ArrayList<>();
+        List<ComActDynDO> actDynDOList = comActDynDAO.selectList(new QueryWrapper<ComActDynDO>().lambda()
+            .eq(ComActDynDO::getCommunityId, communityId).orderByDesc(ComActDynDO::getCreateAt).last("limit 10"));
+        if (!actDynDOList.isEmpty()) {
+            actDynDOList.forEach(actDyn -> {
+                dynList.add(actDyn.getTitle());
+            });
+        }
+        workScreenVO.setDynList(dynList);
+
+        // 统计近半年数据
+        List<DynamicWorkVO> list = new ArrayList<>();
+        for (DynamicWorkVO dynamicWorkVO : listHalfYearByDyn()) {
+            DynamicWorkVO result =
+                comActDynDAO.countByTime(dynamicWorkVO.getStart(), dynamicWorkVO.getEnd(), communityId);
+            result.setMonth(dynamicWorkVO.getMonth());
+            list.add(result);
+        }
+        workScreenVO.setList(list);
+
+        return R.ok(workScreenVO);
+    }
+
+    @Override
+    public R autonomyDynamic(Long communityId) {
+        DynamicVO dynamicVO =comScreenDao.autonomyDynamic(communityId);
+        return R.ok(dynamicVO);
+    }
+
+    @Override
+    public R property(Long communityId) {
+        return R.ok(comScreenDao.propertyData(communityId));
+    }
+
+    @Override
+    public R partyData(Long communityId) {
+        return R.ok(comScreenDao.partyData(communityId));
+    }
+
+    @Override
+    public R yard(Long communityId) {
+        return R.ok(comScreenDao.yard(communityId));
+    }
+
+    @Override
+    public R citizenInfo(Long communityId) {
+        DateVO vo=new DateVO();
+        vo.setCommunityId(communityId);
+        //当前日期
+        vo.setNow(DateUtil.now());
+        //16年前
+        vo.setOffset16(DateUtil.offsetMonth(DateUtil.date(), -192).toDateStr());
+        //27年前
+        vo.setOffset27(DateUtil.offsetMonth(DateUtil.date(), -324).toDateStr());
+        //35年前
+        vo.setOffset35(DateUtil.offsetMonth(DateUtil.date(), -420).toDateStr());
+        //45年前
+        vo.setOffset45(DateUtil.offsetMonth(DateUtil.date(), -540).toDateStr());
+        //55年前
+        vo.setOffset55(DateUtil.offsetMonth(DateUtil.date(), -660).toDateStr());
+        CitizenInfoVO citizenInfoVO = comScreenDao.ageRange(vo);
+        citizenInfoVO.setTotal(comScreenDao.buildingListHeaderStatisticsAdmin(communityId).getPopulationNum());
+        citizenInfoVO.setMaleRate(NumberUtil.div(citizenInfoVO.getMaleNum(), citizenInfoVO.getTotal(), 2));
+        citizenInfoVO.setFemaleRate(NumberUtil.div(citizenInfoVO.getFemaleNum(), citizenInfoVO.getTotal(), 2));
+        //男性占比
+        return R.ok(citizenInfoVO);
+    }
+
+    @Override
+    public R specialPeople(Long communityId) {
+        SpecialPeopleVO vo=new SpecialPeopleVO();
+        vo.setTotal(0);
+        List<SpecialPeopleVO> specialPeopleVOS = comScreenDao.specialPeople(communityId);
+        //求和
+        for (SpecialPeopleVO specialPeopleVO : specialPeopleVOS) {
+            vo.setTotal(vo.getTotal()+specialPeopleVO.getCount());
+        }
+        //计算占比
+        for (SpecialPeopleVO specialPeopleVO : specialPeopleVOS) {
+            specialPeopleVO.setRate(NumberUtil.div(specialPeopleVO.getCount(),vo.getTotal() ,2 ));
+        }
+        vo.setChildList(specialPeopleVOS);
+        return R.ok(vo);
+    }
+
+    @Override
+    public R basicData(Long communityId) {
+        BuildingListHeaderStatisticsAdminVo buildingListHeaderStatisticsAdminVo=comScreenDao.buildingListHeaderStatisticsAdmin(communityId);
+        BasicDataVO vo=new BasicDataVO();
+        vo.setVillage(buildingListHeaderStatisticsAdminVo.getBuildNum());
+        vo.setPeople(buildingListHeaderStatisticsAdminVo.getPopulationNum());
+        vo.setBuildings(buildingListHeaderStatisticsAdminVo.getHouseNum());
+//        vo.setBuildings(comScreenDao.assetAnalysis(communityId));
+        return R.ok(vo);
+    }
+
+    private List<DynamicWorkVO> listHalfYearByDyn() {
+        List<DynamicWorkVO> dateList = new ArrayList<>();
+        Date now = new Date();
+        for (int i = 5; i >= 0; i--) {
+            Date date = DateUtils.getDateM(now, -i);
+            DateTime endDay = DateUtil.endOfMonth(date);
+
+            int m = DateUtil.month(endDay);
+            m++;
+            int day = DateUtil.dayOfMonth(endDay);
+            int half = day / 2;
+            String month = DateUtil.format(date, moth_format_str);
+            DynamicWorkVO dynamicWorkVO = new DynamicWorkVO();
+            dynamicWorkVO.setMonth(monthStr[m-1] + "月上旬");
+            dynamicWorkVO.setStart(month + "-01 00:00:00");
+            dynamicWorkVO.setEnd(month + "-" + half + " 23:59:58");
+            dateList.add(dynamicWorkVO);
+            DynamicWorkVO dynamicWorkVO1 = new DynamicWorkVO();
+            dynamicWorkVO1.setMonth(monthStr[m-1] + "月下旬");
+            dynamicWorkVO1.setStart(month + "-" + half + " 23:59:58");
+            dynamicWorkVO1.setEnd(DateUtils.getDateFormatString(endDay, "yyyy-MM-dd HH:mm:ss"));
+            dateList.add(dynamicWorkVO1);
+        }
+        return dateList;
+    }
+
+
+}
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
new file mode 100644
index 0000000..39f8f05
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/SysConfServiceImpl.java
@@ -0,0 +1,111 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.panzhihua.common.constants.NeighborCircleConstants;
+import com.panzhihua.common.model.vos.community.CommunityPublicityVO;
+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
+ * @create 2021-06-23 10:41:36
+ * @describe 系统配置表服务实现类
+ */
+@Slf4j
+@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();
+        }
+    }
+
+
+
+
+    @Override
+    public CommunityPublicityVO getData(String communityId) {
+        return baseMapper.getData(communityId);
+    }
+
+    @Override
+    public int addDate(CommunityPublicityVO item)
+    {
+        CommunityPublicityVO vo=baseMapper.getData(item.getCommunityId());
+        if(vo==null)
+        {
+            return baseMapper.addDate(item);
+        }
+        else
+        {
+            return baseMapper.editDate(item);
+        }
+    }
+
+    @Override
+    public int editDate(CommunityPublicityVO item) {
+        return baseMapper.editDate(item);
+    }
+
+    @Override
+    public int deleteData(String communityId) {
+        return baseMapper.deleteData(communityId);
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/SysUserServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/SysUserServiceImpl.java
new file mode 100644
index 0000000..85c362d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/SysUserServiceImpl.java
@@ -0,0 +1,119 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.panzhihua.service_community.entity.SysUser;
+import com.panzhihua.service_community.dao.SysUserMapper;
+import com.panzhihua.service_community.service.SysUserService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.BeanUtils;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+/**
+ * title: 用户表 后台用户+小程序用户表服务实现类
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 用户表 后台用户+小程序用户表服务实现类
+ *
+ * @author lyq
+ * @date 2022-03-28 14:28:09
+ */
+@Service("sysUserService")
+public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements SysUserService {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param sysUser 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-03-28 14:28:09
+     */
+    @Override
+    public R queryByPage(PageSysUserDto sysUser) {
+        return R.ok(this.baseMapper.queryAllByLimit(sysUser, new Page(sysUser.getPageNum(), sysUser.getPageSize())));
+    }
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param sysUser 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-03-28 14:28:09
+     */
+    @Override
+    public R insert(AddSysUserDto sysUser) {
+        SysUser entity = new SysUser();
+        BeanUtils.copyProperties(sysUser, entity);
+        if (this.baseMapper.insert(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    /**
+     * description  update  修改数据
+     *
+     * @param editDto 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-03-28 14:28:09
+     */
+    @Override
+    public R update(EditSysUserDto editDto) {
+        SysUser entity = this.baseMapper.selectById(editDto.getUserId());
+        if (entity == null) {
+            return R.fail("未查询到该记录");
+        }
+        BeanUtils.copyProperties(editDto, entity);
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败");
+    }
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param userId 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-03-28 14:28:09
+     */
+    @Override
+    public R deleteById(Long userId) {
+        if (this.baseMapper.deleteById(userId) > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param userId 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-03-28 14:28:09
+     */
+    @Override
+    public R detailById(Long userId) {
+        return R.ok(this.baseMapper.queryById(userId));
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param sysUser 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-03-28 14:28:09
+     */
+    @Override
+    public R queryByList(PageSysUserDto sysUser) {
+        return R.ok(this.baseMapper.queryAllByList(sysUser));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/UnionpayCarWashServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/UnionpayCarWashServiceImpl.java
new file mode 100644
index 0000000..86c5fdf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/UnionpayCarWashServiceImpl.java
@@ -0,0 +1,42 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_community.dao.AutomessageSysUserDao;
+import com.panzhihua.service_community.dao.UnionpayCarWashDao;
+import com.panzhihua.service_community.entity.AutomessageSysUser;
+import com.panzhihua.service_community.entity.UnionpayCarWash;
+import com.panzhihua.service_community.service.AutomessageSysUserService;
+import com.panzhihua.service_community.service.UnionpayCarWashService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+/**
+ * @ClassName: UnionpayCarWashServiceImpl
+ * @Author: yh
+ * @Date: 2022/10/21 9:39
+ * @Description:
+ */
+@Slf4j
+@Service
+public class UnionpayCarWashServiceImpl extends ServiceImpl<UnionpayCarWashDao, UnionpayCarWash>
+        implements UnionpayCarWashService
+{
+
+    @Override
+    public UnionpayCarWash queryById(String carWashId) {
+        return baseMapper.queryById(carWashId);
+    }
+
+    @Override
+    public UnionpayCarWash carWashById(String unionpayId) {
+        return baseMapper.carWashById(unionpayId);
+    }
+
+    @Override
+    public int inset(String carWashId, String unionpayOrderId, String money) {
+        return baseMapper.inset(carWashId,unionpayOrderId,money);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerActivitiesPeopleServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerActivitiesPeopleServiceImpl.java
new file mode 100644
index 0000000..eaeebd9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerActivitiesPeopleServiceImpl.java
@@ -0,0 +1,123 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.*;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.dao.VolunteerActivitiesPeopleDao;
+import com.panzhihua.service_community.entity.SysUser;
+import com.panzhihua.service_community.entity.VolunteerActivitiesPeople;
+import com.panzhihua.service_community.service.ComMngVolunteerMngService;
+import com.panzhihua.service_community.service.VolunteerActivitiesPeopleService;
+import com.panzhihua.service_community.service.VolunteerActivityService;
+import com.panzhihua.service_community.service.VolunteerIntegralRecordService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Slf4j
+@Service
+public class VolunteerActivitiesPeopleServiceImpl extends ServiceImpl<VolunteerActivitiesPeopleDao,
+        VolunteerActivitiesPeople> implements VolunteerActivitiesPeopleService
+{
+    @Resource
+    private VolunteerActivityService volunteerActivityService;
+
+    @Resource
+    private VolunteerIntegralRecordService volunteerIntegralRecordService;
+
+    @Resource
+    private UserService userService;
+
+
+    @Override
+    public VolunteerActivitiesPeople vapGetById(String id)
+    {
+        return baseMapper.vapGetById(id);
+    }
+
+    @Override
+    public List<VolunteerActivitiesPeople> vapGetList(String activityId, String communityId) {
+        return baseMapper.vapGetList(activityId,communityId);
+    }
+
+    @Override
+    public int vapInsert(VolunteerActivitiesPeopleVO volunteerActivitiesPeopleVO) {
+        return baseMapper.vapInsert(volunteerActivitiesPeopleVO);
+    }
+
+    @Override
+    public int vapUpdate(VolunteerActivitiesPeopleVO volunteerActivitiesPeopleVO) {
+        return baseMapper.vapUpdate(volunteerActivitiesPeopleVO);
+    }
+
+    @Override
+    public int vapDelete(String id) {
+        return baseMapper.vapDelete(id);
+    }
+
+    @Override
+    public R grantIntegral(GrantIntegral grantIntegral)
+    {
+        for (GrantIntegral item: grantIntegral.getPeopleAndGranList() )
+        {
+            if(StringUtils.isEmpty(item.getId()))
+            {
+                return R.fail("奖励发放id不能为空!");
+            }
+
+            if(StringUtils.isEmpty(item.getGrantIntegral()))
+            {
+                return R.fail("奖励发放积分不能为空!");
+            }
+
+
+            //用户新增积分
+            LoginUserInfoVO sysUser=userService.getUserInfoByUserId(item.getUserId()).getData();
+
+            VolunteerActivitiesPeopleVO vla=new VolunteerActivitiesPeopleVO();
+            vla.setId(item.getId());
+            vla.setUserId(item.getUserId());
+            vla.setIssuePoints(item.getGrantIntegral());
+            vla.setCommunityId(sysUser.getCommunityId()+"");
+            vla.setIssueStatus("1");
+            baseMapper.vapUpdate(vla);
+
+
+            int grant=0;
+            if(!StringUtils.isEmpty(sysUser.getLoveIntegral()))
+            {
+                grant=Integer.valueOf(sysUser.getLoveIntegral());
+            }
+            grant+=Integer.valueOf(item.getGrantIntegral());
+            sysUser.setLoveIntegral(grant+"");
+            userService.putUser(sysUser);
+
+            //新增积分记录
+            VolunteerIntegralRecordVO volunteerIntegralRecordVO=new VolunteerIntegralRecordVO();
+            volunteerIntegralRecordVO.setIntegral(item.getGrantIntegral());
+            volunteerIntegralRecordVO.setVolunteerId(item.getVolunteerId());
+            volunteerIntegralRecordVO.setUserId(item.getUserId());
+            volunteerIntegralRecordVO.setIType("1");
+            volunteerIntegralRecordVO.setCommunityId(sysUser.getCommunityId()+"");
+            volunteerIntegralRecordService.insertVolunteer(volunteerIntegralRecordVO);
+
+        }
+        //判断活动奖励是否发放完
+        int  num=baseMapper.vapGetUnissuedQuantity(grantIntegral.getActivityId());
+        if(num==0)
+        {
+            VolunteerActivityVO activityVO=new VolunteerActivityVO();
+            activityVO.setId(grantIntegral.getActivityId());
+            activityVO.setAwardState("1");
+            volunteerActivityService.updateById(activityVO);
+        }
+        return R.ok();
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerActivityServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerActivityServiceImpl.java
new file mode 100644
index 0000000..97bab78
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerActivityServiceImpl.java
@@ -0,0 +1,157 @@
+package com.panzhihua.service_community.service.impl;
+
+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.model.vos.community.VolunteerActivityVO;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.dao.VolunteerActivityDao;
+import com.panzhihua.service_community.entity.VolunteerActivity;
+import com.panzhihua.service_community.service.VolunteerActivityService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+@Slf4j
+@Service
+public class VolunteerActivityServiceImpl extends ServiceImpl<VolunteerActivityDao,
+        VolunteerActivity> implements VolunteerActivityService
+{
+
+    @Override
+    public VolunteerActivity queryById(String Id,String userId) {
+        return baseMapper.queryById(Id,userId);
+    }
+
+    @Override
+    public IPage<VolunteerActivity> queryList(int pageNum,int pageSize,
+                                              String name,
+                                              String acState,
+                                              String acType,
+                                              String userId,
+                                              Date actityBeginTime,
+                                              Date actityEndTime)
+    {
+        Page page = new Page<VolunteerActivity>(pageNum,pageSize);
+        return baseMapper.queryList(page, name, acState, acType, userId, actityBeginTime, actityEndTime);
+    }
+
+    @Override
+    public int insertVolunteer(VolunteerActivityVO mostBeautifulVolunteerVO)
+    {
+        Long applyBegintime = mostBeautifulVolunteerVO.getApplyBeginTime().getTime();
+        //活动报名结束时间
+        Long applyEndtime = mostBeautifulVolunteerVO.getApplyEndTime().getTime();
+
+        //活动开始时间
+        Long actityBegintime = mostBeautifulVolunteerVO.getActityBeginTime().getTime();
+        //活动结束时间
+        Long actityEndtime = mostBeautifulVolunteerVO.getActityEndTime().getTime();
+
+        Long newTiem=System.currentTimeMillis();
+
+        //判断是否在报名中
+        if (newTiem >= applyBegintime && newTiem < applyEndtime)
+        {
+            mostBeautifulVolunteerVO.setAcState("3");
+        }
+        else if (newTiem>applyEndtime  && newTiem <actityBegintime )
+        {
+             mostBeautifulVolunteerVO.setAcState("4");
+        }
+        else if (newTiem >= actityBegintime && newTiem <= actityEndtime)
+        {
+            //判断是否活动进行中
+            mostBeautifulVolunteerVO.setAcState("4");
+        }
+        else if(newTiem>actityEndtime)
+        {
+            //活动结束
+            mostBeautifulVolunteerVO.setAcState("5");
+        }
+
+        return baseMapper.insertVolunteer(mostBeautifulVolunteerVO);
+    }
+
+    @Override
+    public int updateById(VolunteerActivityVO mostBeautifulVolunteerVO) {
+        return baseMapper.updateById(mostBeautifulVolunteerVO);
+    }
+
+    @Override
+    public int deleteById(String Id) {
+        return baseMapper.deleteById(Id);
+    }
+
+
+    /**
+     * 定时任务
+     * @return
+     */
+    @Override
+    public int timedTaskVolunteerActivitiesJobHandler()
+    {
+        List<VolunteerActivity> list = baseMapper.timedTaskList();
+        Long newTiem=System.currentTimeMillis();
+        if(list.size()>0)
+        {
+            for (VolunteerActivity itemDate:list)
+            {
+                String state = itemDate.getAcState();
+                //2未开始  3报名中", 4进行中"
+                //活动报名开始时间
+                Long applyBegintime = itemDate.getApplyBeginTime().getTime();
+                //活动报名结束时间
+                Long applyEndtime = itemDate.getApplyEndTime().getTime();
+
+                //活动开始时间
+                Long actityBegintime = itemDate.getActityBeginTime().getTime();
+                //活动结束时间
+                Long actityEndtime = itemDate.getActityEndTime().getTime();
+
+                //判断是否在报名中
+                if (newTiem >= applyBegintime && newTiem < applyEndtime)
+                {
+                    state = "3";
+                }
+                else if (newTiem>applyEndtime  && newTiem <actityBegintime )
+                {
+                    //报名如果截止  报名人数为0   结束活动
+                    Integer num=0;
+                    if(!StringUtils.isEmpty(itemDate.getVolunteerNum()))
+                    {
+                        num=Integer.valueOf(itemDate.getVolunteerNum());
+                    }
+                    if(num<=0)
+                    {
+                        state = "6";
+                    }
+                }
+                else if (newTiem >= actityBegintime && newTiem <= actityEndtime)
+                {
+                    //判断是否活动进行中
+                    state = "4";
+                }
+                else if(newTiem>actityEndtime)
+                {
+                    //活动结束
+                    state = "5";
+                }
+
+                if(!StringUtils.equals(state,itemDate.getAcState()))
+                {
+                    itemDate.setAcState(state);
+
+                    VolunteerActivityVO comActDynVO = new VolunteerActivityVO();
+                    comActDynVO.setId(itemDate.getId());
+                    BeanUtils.copyProperties(itemDate, comActDynVO);
+                    baseMapper.updateById(comActDynVO);
+                }
+            }
+        }
+        return 1;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerCommunityConfigServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerCommunityConfigServiceImpl.java
new file mode 100644
index 0000000..1bff338
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerCommunityConfigServiceImpl.java
@@ -0,0 +1,54 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.VolunteerCommunityConfigVO;
+import com.panzhihua.service_community.dao.VolunteerCommunityConfigDao;
+import com.panzhihua.service_community.entity.VolunteerCommunityConfig;
+import com.panzhihua.service_community.service.VolunteerCommunityConfigService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+
+@Slf4j
+@Service
+public class VolunteerCommunityConfigServiceImpl extends ServiceImpl<VolunteerCommunityConfigDao,
+        VolunteerCommunityConfig> implements VolunteerCommunityConfigService {
+
+
+    @Override
+    public R  getData(String communityId)
+    {
+        return R.ok(baseMapper.getData(communityId));
+    }
+
+    @Override
+    public R  insertvo(VolunteerCommunityConfigVO item) {
+        int num= baseMapper.insertvo(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R  update(VolunteerCommunityConfigVO item) {
+        int num= baseMapper.update(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R  delete(String id) {
+        int num= baseMapper.delete(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerCommunityDiscountServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerCommunityDiscountServiceImpl.java
new file mode 100644
index 0000000..ef25a61
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerCommunityDiscountServiceImpl.java
@@ -0,0 +1,39 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.community.VolunteerCommunityDiscountVO;
+import com.panzhihua.service_community.dao.VolunteerCommunityDiscountDao;
+import com.panzhihua.service_community.entity.VolunteerCommunityDiscount;
+import com.panzhihua.service_community.service.VolunteerCommunityDiscountService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+
+@Slf4j
+@Service
+public class VolunteerCommunityDiscountServiceImpl extends ServiceImpl<VolunteerCommunityDiscountDao,
+        VolunteerCommunityDiscount> implements VolunteerCommunityDiscountService
+{
+
+    @Override
+    public List<VolunteerCommunityDiscount> getList(String communityId) {
+        return baseMapper.getList(communityId);
+    }
+
+    @Override
+    public int insert(VolunteerCommunityDiscountVO item) {
+        return baseMapper.insert(item);
+    }
+
+    @Override
+    public int update(VolunteerCommunityDiscountVO item) {
+        return baseMapper.update(item);
+    }
+
+    @Override
+    public int delete(String id) {
+        return baseMapper.delete(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerCreditsExchangeServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerCreditsExchangeServiceImpl.java
new file mode 100644
index 0000000..56ee325
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerCreditsExchangeServiceImpl.java
@@ -0,0 +1,327 @@
+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.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.VolunteerCreditsExchangeVO;
+import com.panzhihua.common.model.vos.community.VolunteerIntegralMerchantVO;
+import com.panzhihua.common.model.vos.community.VolunteerIntegralRecordVO;
+import com.panzhihua.common.model.vos.community.VolunteerMerchantVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.dao.VolunteerCreditsExchangeDao;
+import com.panzhihua.service_community.entity.VolunteerCreditsExchange;
+import com.panzhihua.service_community.entity.VolunteerIntegralMerchant;
+import com.panzhihua.service_community.entity.VolunteerMerchant;
+import com.panzhihua.service_community.service.VolunteerCreditsExchangeService;
+import com.panzhihua.service_community.service.VolunteerIntegralMerchantService;
+import com.panzhihua.service_community.service.VolunteerIntegralRecordService;
+import com.panzhihua.service_community.service.VolunteerMerchantService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+
+@Slf4j
+@Service
+public class VolunteerCreditsExchangeServiceImpl extends ServiceImpl<VolunteerCreditsExchangeDao,
+        VolunteerCreditsExchange> implements VolunteerCreditsExchangeService {
+
+    @Resource
+    private VolunteerIntegralMerchantService goodsService;
+
+    @Resource
+    private UserService userService;
+
+    @Resource
+    private VolunteerIntegralRecordService virService;
+
+    @Resource
+    private VolunteerMerchantService vmService;
+
+
+    @Override
+    public R getList(int pageNum, int pageSize, String goodsId, String orderNumber,
+                     String goodsName, String condition, String userName,String communityId,
+                     String userId,String orderType,String merchantId) {
+
+        Page page=new Page<VolunteerCreditsExchange>(pageNum,pageSize);
+        return R.ok(baseMapper.getList(page,goodsId,orderNumber,goodsName,condition,
+                userName,communityId,userId,orderType,merchantId));
+    }
+
+    @Override
+    public R getData(String id) {
+        return R.ok(baseMapper.getData(id));
+    }
+
+    @Override
+    public R insertData(VolunteerCreditsExchangeVO item)
+    {
+        if (item==null)
+        {
+            return R.fail("参数不能为空");
+        }
+
+        if(StringUtils.isEmpty(item.getGoodsId()))
+        {
+            return R.fail("商品id不能为空");
+        }
+
+        VolunteerIntegralMerchant goods=goodsService.queryById(item.getGoodsId());
+
+        LoginUserInfoVO loginUserInfoVOR=userService.getUserInfoByUserId(item.getUserId()).getData();
+
+        if(goods==null)
+        {
+            return R.fail("商品不存在");
+        }
+
+        int integral=0;
+        if(!StringUtils.isEmpty(loginUserInfoVOR.getLoveIntegral()))
+        {
+            integral=Integer.valueOf(loginUserInfoVOR.getLoveIntegral());
+        }
+
+        if(integral<Integer.valueOf(goods.getIntegral()))
+        {
+            return R.fail("剩余积分不足!无法下单兑换");
+        }
+
+        item.setNeedScore(goods.getIntegral());
+
+        if(StringUtils.isEmpty(item.getUserId()))
+        {
+            return R.fail("兑换用户id不能为空");
+        }
+
+//        if(StringUtils.isEmpty(goods.getGoodNum()))
+//        {
+//            return R.fail("商品库存不足");
+//        }
+//        else
+//        {
+//            int goodNum=Integer.valueOf(goods.getGoodNum());
+//            if(goodNum<=0)
+//            {
+//                return R.fail("商品库存不足");
+//            }
+//
+//            goodNum--;
+//
+//            VolunteerIntegralMerchantVO vo=new VolunteerIntegralMerchantVO();
+//            vo.setId(goods.getId());
+//            vo.setGoodNum(goodNum+"");
+//            goodsService.updateById(vo);
+//        }
+
+        int num1=integral-Integer.valueOf(goods.getIntegral());
+        loginUserInfoVOR.setLoveIntegral(num1+"");
+        userService.putUser(loginUserInfoVOR);
+
+        item.setPalyIntegral(goods.getIntegral());
+
+
+        //增加积分明细记录
+        VolunteerIntegralRecordVO virvo=new VolunteerIntegralRecordVO();
+        virvo.setUserId(loginUserInfoVOR.getUserId()+"");
+        virvo.setIType("2");
+        virvo.setIntegral(item.getPalyIntegral());
+        virvo.setCommunityId(item.getCommunityId());
+        virService.insertVolunteer(virvo);
+
+
+        //设置订单号
+        item.setOrderNumber(Snowflake.getId()+"");
+        int num= baseMapper.insertData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R insertMerchantData(VolunteerCreditsExchangeVO item)
+    {
+        if (item==null)
+        {
+            return R.fail("参数不能为空");
+        }
+
+        if(StringUtils.isEmpty(item.getMerchantId()))
+        {
+            return R.fail("商家id不能为空");
+        }
+
+        LoginUserInfoVO loginUserInfoVOR=userService.getUserInfoByUserId(item.getUserId()).getData();
+
+        if(StringUtils.isEmpty(item.getPalyIntegral()))
+        {
+            return R.fail("支付积分不能为空");
+        }
+
+        int integral=0;
+        if(!StringUtils.isEmpty(loginUserInfoVOR.getLoveIntegral()))
+        {
+            integral=Integer.valueOf(loginUserInfoVOR.getLoveIntegral());
+        }
+
+        if(integral<Integer.valueOf(item.getPalyIntegral()))
+        {
+            return R.fail("剩余积分不足!无法支付");
+        }
+
+        if(StringUtils.isEmpty(item.getUserId()))
+        {
+            return R.fail("兑换用户id不能为空");
+        }
+
+        //增加积分明细记录
+        VolunteerIntegralRecordVO virvo=new VolunteerIntegralRecordVO();
+        virvo.setUserId(loginUserInfoVOR.getUserId()+"");
+        virvo.setIType("3");
+        virvo.setIntegral(item.getPalyIntegral());
+        virvo.setCommunityId(item.getCommunityId());
+        virService.insertVolunteer(virvo);
+
+        //修改个人积分
+        int num1=integral-Integer.valueOf(item.getPalyIntegral());
+        loginUserInfoVOR.setLoveIntegral(num1+"");
+        userService.putUser(loginUserInfoVOR);
+
+
+        //修改商家积分
+        R<VolunteerMerchant> vm= vmService.getById(item.getMerchantId());
+
+        int vmNum=0;
+        if(!StringUtils.isEmpty(vm.getData().getMerchantIntegral()))
+        {
+            vmNum=Integer.valueOf(vm.getData().getMerchantIntegral());
+        }
+
+        vmNum+=Integer.valueOf(item.getPalyIntegral());
+
+        VolunteerMerchantVO vmvo=new VolunteerMerchantVO();
+        vmvo.setId(item.getMerchantId());
+        vmvo.setMerchantIntegral(vmNum+"");
+        vmService.updateVolunteerMerchant(vmvo);
+
+        item.setCondition("3");
+        //设置订单号
+        String orderNum=Snowflake.getId()+"";
+        item.setOrderNumber(orderNum);
+        int num= baseMapper.insertData(item);
+        if(num>0)
+        {
+            return R.ok(orderNum);
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R update(VolunteerCreditsExchangeVO item)
+    {
+        if (item==null)
+        {
+            return R.fail("参数不能为空");
+        }
+
+        int num= baseMapper.update(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R delete(String id) {
+        if(StringUtils.isEmpty(id))
+        {
+            return R.fail("删除订单id不能为空");
+        }
+
+
+        int num= baseMapper.delete(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R conditionData(String id)
+    {
+        if(StringUtils.isEmpty(id))
+        {
+            return R.fail("核销订单id不能为空");
+        }
+
+        int num= baseMapper.conditionData(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    /**
+     * 社区订单取消
+     * @param id  订单iD
+     * @return
+     */
+    @Override
+    public R communityCancellation(String id)
+    {
+        if(StringUtils.isEmpty(id))
+        {
+            return R.fail("订单id不能为空");
+        }
+        //查询订单
+        VolunteerCreditsExchange vce=baseMapper.getData(id);
+        if(StringUtils.equals("0",vce.getCondition()))
+        {
+            //修改订单状态为取消
+            VolunteerCreditsExchangeVO volunteerCreditsExchangeVO=new VolunteerCreditsExchangeVO();
+            volunteerCreditsExchangeVO.setId(id);
+            volunteerCreditsExchangeVO.setCondition("2");
+            baseMapper.update(volunteerCreditsExchangeVO);
+
+            //查询用户详情
+            LoginUserInfoVO loginUserInfoVOR=userService.getUserInfoByUserId(vce.getUserId()).getData();
+            int integral=0;
+            if(!StringUtils.isEmpty(loginUserInfoVOR.getLoveIntegral()))
+            {
+                integral=Integer.valueOf(loginUserInfoVOR.getLoveIntegral());
+            }
+            integral=integral+Integer.valueOf(vce.getPalyIntegral());
+            loginUserInfoVOR.setLoveIntegral(integral+"");
+            userService.putUser(loginUserInfoVOR);
+
+            //更新商品库存
+            VolunteerIntegralMerchant goods=goodsService.queryById(vce.getGoodsId());
+            VolunteerIntegralMerchantVO vimvo=new VolunteerIntegralMerchantVO();
+            int goodNum=Integer.valueOf(goods.getGoodNum());
+            goodNum++;
+            vimvo.setId(goods.getId());
+            vimvo.setGoodNum(goodNum+"");
+            goodsService.updateById(vimvo);
+
+            //增加积分明细记录
+            VolunteerIntegralRecordVO virvo=new VolunteerIntegralRecordVO();
+            virvo.setUserId(loginUserInfoVOR.getUserId()+"");
+            virvo.setIType("4");
+            virvo.setIntegral(vce.getPalyIntegral());
+            virvo.setCommunityId(vce.getCommunityId());
+            virService.insertVolunteer(virvo);
+        }
+        return R.fail("订单不是未核销订单");
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerIntegralMerchantServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerIntegralMerchantServiceImpl.java
new file mode 100644
index 0000000..3840d05
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerIntegralMerchantServiceImpl.java
@@ -0,0 +1,49 @@
+package com.panzhihua.service_community.service.impl;
+
+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.model.vos.community.VolunteerIntegralMerchantVO;
+import com.panzhihua.service_community.dao.VolunteerIntegralMerchantDao;
+import com.panzhihua.service_community.entity.VolunteerIntegralMerchant;
+import com.panzhihua.service_community.service.VolunteerIntegralMerchantService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+@Slf4j
+@Service
+public class VolunteerIntegralMerchantServiceImpl extends ServiceImpl<VolunteerIntegralMerchantDao,
+        VolunteerIntegralMerchant> implements VolunteerIntegralMerchantService
+{
+
+
+    @Override
+    public VolunteerIntegralMerchant queryById(String id) {
+        return baseMapper.queryById(id);
+    }
+
+    @Override
+    public IPage<VolunteerIntegralMerchant> queryList(Page page, String name, String state,String goodType,String merchantId) {
+        return baseMapper.queryList(page,name,state,goodType,merchantId);
+    }
+
+    @Override
+    public int insertVolunteer(VolunteerIntegralMerchantVO vimVO) {
+        return baseMapper.insertVolunteer(vimVO);
+    }
+
+    @Override
+    public int updateById(VolunteerIntegralMerchantVO vimVO) {
+        return baseMapper.updateById(vimVO);
+    }
+
+    @Override
+    public int deleteById(String id) {
+        return baseMapper.deleteById(id);
+    }
+
+    @Override
+    public int getNum(String id) {
+        return baseMapper.getNum(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerIntegralRecordServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerIntegralRecordServiceImpl.java
new file mode 100644
index 0000000..c13d7f3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerIntegralRecordServiceImpl.java
@@ -0,0 +1,63 @@
+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.vos.R;
+import com.panzhihua.common.model.vos.community.VolunteerIntegralRecordVO;
+import com.panzhihua.service_community.dao.VolunteerIntegralRecordDao;
+import com.panzhihua.service_community.entity.VolunteerActivity;
+import com.panzhihua.service_community.entity.VolunteerIntegralRecord;
+import com.panzhihua.service_community.service.VolunteerIntegralRecordService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+@Slf4j
+@Service
+public class VolunteerIntegralRecordServiceImpl extends ServiceImpl<VolunteerIntegralRecordDao,
+        VolunteerIntegralRecord> implements VolunteerIntegralRecordService
+{
+
+
+    @Override
+    public R getId(String id) {
+        return R.ok(baseMapper.getId(id));
+    }
+
+    @Override
+    public R getList(int pageNum, int pageSize, String userId)
+    {
+        Page page = new Page<VolunteerIntegralRecord>(pageNum,pageSize);
+        return R.ok(baseMapper.getList(page,userId,null));
+    }
+
+    @Override
+    public R insertVolunteer(VolunteerIntegralRecordVO volunteerIntegralRecordVO)
+    {
+        int num= baseMapper.insertVolunteer(volunteerIntegralRecordVO);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R updateId(VolunteerIntegralRecordVO volunteerIntegralRecordVO) {
+        int num= baseMapper.updateId(volunteerIntegralRecordVO);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R deleteId(String id) {
+        int num= baseMapper.deleteId(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerMerchantEvaluateImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerMerchantEvaluateImpl.java
new file mode 100644
index 0000000..6ef4cc9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerMerchantEvaluateImpl.java
@@ -0,0 +1,87 @@
+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.vos.R;
+import com.panzhihua.common.model.vos.community.VolunteerCreditsExchangeVO;
+import com.panzhihua.common.model.vos.community.VolunteerMerchantEvaluateVO;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.dao.VolunteerMerchantEvaluateDao;
+import com.panzhihua.service_community.entity.VolunteerCreditsExchange;
+import com.panzhihua.service_community.entity.VolunteerMerchantEvaluate;
+import com.panzhihua.service_community.service.VolunteerCreditsExchangeService;
+import com.panzhihua.service_community.service.VolunteerMerchantEvaluateService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+
+@Slf4j
+@Service
+public class VolunteerMerchantEvaluateImpl extends ServiceImpl<VolunteerMerchantEvaluateDao,
+        VolunteerMerchantEvaluate> implements VolunteerMerchantEvaluateService
+{
+
+
+    @Resource
+    private VolunteerCreditsExchangeService vceService;
+
+    @Override
+    public R getList(int pageNum, int pageSize,String communityId,String merchantId)
+    {
+        Page<VolunteerMerchantEvaluate> page=new Page(pageNum,pageSize);
+        return R.ok(baseMapper.getList(page,communityId,merchantId));
+    }
+
+    @Override
+    public R getData(String id)
+    {
+        if(StringUtils.isEmpty(id))
+        {
+            return R.fail("id不能为空");
+        }
+        return R.ok(baseMapper.getData(id));
+    }
+
+    @Override
+    public R insert(VolunteerMerchantEvaluateVO item)
+    {
+        if(StringUtils.isEmpty(item.getOrderId()))
+        {
+            return R.fail("orderId不能为空");
+        }
+        int num= baseMapper.insert(item);
+        R<VolunteerCreditsExchange> volunteerCreditsExchangeR=vceService.getData(item.getOrderId());
+        VolunteerCreditsExchangeVO vce=new VolunteerCreditsExchangeVO();
+        vce.setId(volunteerCreditsExchangeR.getData().getId());
+        vce.setIsEvaluate("1");
+        vceService.update(vce);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R update(VolunteerMerchantEvaluateVO item) {
+        int num= baseMapper.update(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R delete(String id) {
+        int num= baseMapper.delete(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerMerchantServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerMerchantServiceImpl.java
new file mode 100644
index 0000000..37dc7af
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerMerchantServiceImpl.java
@@ -0,0 +1,193 @@
+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.vos.R;
+import com.panzhihua.common.model.vos.community.VolunteerMerchantVO;
+import com.panzhihua.common.model.vos.community.VolunteerTypeVO;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.dao.VolunteerMerchantDao;
+import com.panzhihua.service_community.dao.VolunteerTypeDao;
+import com.panzhihua.service_community.entity.SysUser;
+import com.panzhihua.service_community.entity.VolunteerActivity;
+import com.panzhihua.service_community.entity.VolunteerMerchant;
+import com.panzhihua.service_community.entity.VolunteerType;
+import com.panzhihua.service_community.service.VolunteerIntegralMerchantService;
+import com.panzhihua.service_community.service.VolunteerMerchantService;
+import com.panzhihua.service_community.service.VolunteerTypeService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+
+@Slf4j
+@Service
+public class VolunteerMerchantServiceImpl extends ServiceImpl<VolunteerMerchantDao,
+        VolunteerMerchant> implements VolunteerMerchantService
+{
+    @Resource
+    private VolunteerMerchantService vmService;
+
+
+    @Resource
+    private VolunteerIntegralMerchantService vimService;
+
+    @Override
+    public R getById(String id) {
+        return R.ok(baseMapper.getById(id));
+    }
+
+    @Override
+    public R volunteerMerchantGetList(int pageNum, int pageSize, String merchantState,
+                                      String merchantType, String name, String communityId) {
+        Page page=new Page<VolunteerMerchant>(pageNum,pageSize);
+        return R.ok(baseMapper.getList(page, merchantState,merchantType,name,communityId));
+    }
+
+    @Override
+    public R insertVolunteerMerchant(VolunteerMerchantVO vtvo)
+    {
+        if(vtvo==null)
+        {
+            return R.fail("参数不能为空");
+        }
+
+        if(StringUtils.isEmpty(vtvo.getName()))
+        {
+            return R.fail("商家姓名不能为空");
+        }
+
+        if(StringUtils.isEmpty(vtvo.getBusinessType()))
+        {
+            return R.fail("商家类型不能为空");
+        }
+
+        if(StringUtils.isEmpty(vtvo.getLogoUrl()))
+        {
+            return R.fail("商家logo封面不能为空");
+        }
+
+        if(StringUtils.isEmpty(vtvo.getAddress()))
+        {
+            return R.fail("商家地址不能为空");
+        }
+
+
+        if(StringUtils.isEmpty(vtvo.getLat()))
+        {
+            return R.fail("商家经纬度不能为空");
+        }
+
+
+        if(StringUtils.isEmpty(vtvo.getUserId()))
+        {
+            return R.fail("管理员不能为空");
+        }
+
+
+        if(vtvo.getBusinessStartTime()==null || vtvo.getBusinessEndTime()==null )
+        {
+            return R.fail("营业时间不能为空");
+        }
+
+
+        if(StringUtils.isEmpty(vtvo.getMerchantType()))
+        {
+            return R.fail("营业状态不能为空");
+        }
+
+
+        if(StringUtils.isEmpty(vtvo.getServiceCall()))
+        {
+            return R.fail("对外服务电话不能为空");
+        }
+
+        if(StringUtils.isEmpty(vtvo.getMerchantContent()))
+        {
+            return R.fail("商家简介不能为空");
+        }
+
+        if(StringUtils.isEmpty(vtvo.getMerchantUrl()))
+        {
+            return R.fail("商家图片不能为空");
+        }
+
+
+        if(StringUtils.isEmpty(vtvo.getLegalPersonName()))
+        {
+            return R.fail("法人代表不能为空");
+        }
+
+        if(StringUtils.isEmpty(vtvo.getLegalPersonPhone()))
+        {
+            return R.fail("法人联系电话不能为空");
+        }
+
+        if(StringUtils.isEmpty(vtvo.getLegalPersonIdCard()))
+        {
+            return R.fail("法人身份证不能为空");
+        }
+
+        R<String> isM=vmService.isMerchant(vtvo.getUserId());
+
+        if(!StringUtils.isEmpty(isM.getData()))
+        {
+            return R.fail("已有商家!不能重复添加");
+        }
+
+        int num= baseMapper.insertData(vtvo);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R updateVolunteerMerchant(VolunteerMerchantVO vtvo)
+    {
+        if(vtvo==null)
+        {
+            return R.fail("参数不能为空");
+        }
+        int num= baseMapper.Update(vtvo);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R deleteVolunteerMerchant(String id)
+    {
+
+        int goodNum=vimService.getNum(id);
+
+        if(goodNum>0)
+        {
+            return R.fail("请下架所有商铺商品");
+        }
+
+        int num= baseMapper.delete(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("失败");
+    }
+
+    @Override
+    public R isMerchant(String userId) {
+        return R.ok(baseMapper.isMerchant(userId));
+    }
+
+    @Override
+    public R getUser(String communityId, String userName, String userPhone)
+    {
+        return R.ok(baseMapper.getUser(communityId,userName,userPhone));
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerMerchantWithdrawServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerMerchantWithdrawServiceImpl.java
new file mode 100644
index 0000000..2222291
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerMerchantWithdrawServiceImpl.java
@@ -0,0 +1,108 @@
+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.vos.R;
+import com.panzhihua.common.model.vos.community.VolunteerMerchantVO;
+import com.panzhihua.common.model.vos.community.VolunteerMerchantWithdrawVO;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_community.dao.VolunteerMerchantWithdrawDao;
+import com.panzhihua.service_community.entity.VolunteerMerchant;
+import com.panzhihua.service_community.entity.VolunteerMerchantWithdraw;
+import com.panzhihua.service_community.service.VolunteerMerchantService;
+import com.panzhihua.service_community.service.VolunteerMerchantWithdrawService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+
+@Slf4j
+@Service
+public class VolunteerMerchantWithdrawServiceImpl extends ServiceImpl<VolunteerMerchantWithdrawDao,
+        VolunteerMerchantWithdraw> implements VolunteerMerchantWithdrawService {
+
+    @Resource
+    private VolunteerMerchantService  vmService;
+
+    @Override
+    public R getList(int pageNum, int pageSize, String disposeType,String merchantName,String merchantId,String communityId)
+    {
+        Page<VolunteerMerchantWithdraw> page=new Page(pageNum,pageSize);
+        return R.ok(baseMapper.getList(page,disposeType,merchantName,merchantId,communityId));
+    }
+
+    @Override
+    public R insert(VolunteerMerchantWithdrawVO item)
+    {
+        if(item==null)
+        {
+            return R.fail("参数不能为空");
+        }
+
+        if(StringUtils.isEmpty(item.getMerchantId()))
+        {
+            return R.fail("商家id不能为空");
+        }
+
+        if(StringUtils.isEmpty(item.getWithdrawIntegral()))
+        {
+            return R.fail("提现积分不能为空");
+        }
+
+        R<VolunteerMerchant> volunteerMerchantR=vmService.getById(item.getMerchantId());
+        int merchant=Integer.valueOf(volunteerMerchantR.getData().getMerchantIntegral());
+
+        int WithdrawIntegral=Integer.valueOf(item.getWithdrawIntegral());
+
+        if(WithdrawIntegral>merchant)
+        {
+            return R.fail("提现积分不足!");
+        }
+
+        merchant=merchant-WithdrawIntegral;
+
+        VolunteerMerchantVO merchantVO=new VolunteerMerchantVO();
+        merchantVO.setId(item.getMerchantId());
+        merchantVO.setMerchantIntegral(merchant+"");
+        vmService.updateVolunteerMerchant(merchantVO);
+
+        int num= baseMapper.insert(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R update(VolunteerMerchantWithdrawVO item) {
+        int num= baseMapper.update(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R delete(String id) {
+        int num= baseMapper.delete(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R dispose(String id) {
+        int num= baseMapper.dispose(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerTypeServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerTypeServiceImpl.java
new file mode 100644
index 0000000..a744a75
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/VolunteerTypeServiceImpl.java
@@ -0,0 +1,58 @@
+package com.panzhihua.service_community.service.impl;
+
+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.model.vos.R;
+import com.panzhihua.common.model.vos.community.VolunteerTypeVO;
+import com.panzhihua.service_community.dao.VolunteerTypeDao;
+import com.panzhihua.service_community.entity.VolunteerActivity;
+import com.panzhihua.service_community.entity.VolunteerType;
+import com.panzhihua.service_community.service.VolunteerTypeService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+
+@Slf4j
+@Service
+public class VolunteerTypeServiceImpl  extends ServiceImpl<VolunteerTypeDao,
+        VolunteerType> implements VolunteerTypeService {
+    @Override
+    public R volunteerTypeGetList(int pageNum,int pageSize,String type)
+    {
+        Page page = new Page<VolunteerActivity>(pageNum,pageSize);
+        return R.ok(baseMapper.volunteerTypeGetList(page,type));
+    }
+
+
+    @Override
+    public R insertvolunteerType(VolunteerTypeVO volunteerTypeVO)
+    {
+        int num= baseMapper.insertvolunteerType(volunteerTypeVO);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R volunteerTypeUpdate(VolunteerTypeVO volunteerTypeVO) {
+        int num= baseMapper.volunteerTypeUpdate(volunteerTypeVO);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R volunteerTypeDelete(String id) {
+        int num= baseMapper.volunteerTypeDelete(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/ExcelListener.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/ExcelListener.java
new file mode 100644
index 0000000..eb7b928
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/ExcelListener.java
@@ -0,0 +1,54 @@
+package com.panzhihua.service_community.util;
+
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.metadata.CellData;
+import com.alibaba.excel.metadata.CellExtra;
+import com.alibaba.excel.read.listener.ReadListener;
+import com.panzhihua.service_community.entity.ComSanshuoExpert;
+import com.panzhihua.service_community.service.ComSanShuoExpertService;
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.Map;
+@Slf4j
+public class ExcelListener implements ReadListener<ComSanshuoExpert> {
+
+    private ComSanShuoExpertService comSanShuoExpertService;
+    /**
+     * 如果使用了spring,请使用这个构造方法。每次创建Listener的时候需要把spring管理的类传进来
+     */
+    public ExcelListener (ComSanShuoExpertService comSanShuoExpertService){
+        this.comSanShuoExpertService=comSanShuoExpertService;
+    }
+
+
+    @Override
+    public void onException(Exception e, AnalysisContext analysisContext) throws Exception {
+
+    }
+
+    @Override
+    public void invokeHead(Map<Integer, CellData> map, AnalysisContext analysisContext) {
+
+    }
+
+    @Override
+    public void invoke(ComSanshuoExpert comSanshuoExpert, AnalysisContext analysisContext) {
+        log.info("插入一条数据"+comSanshuoExpert);
+        comSanShuoExpertService.insertExpert(comSanshuoExpert);
+    }
+
+    @Override
+    public void extra(CellExtra cellExtra, AnalysisContext analysisContext) {
+
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
+
+    }
+
+    @Override
+    public boolean hasNext(AnalysisContext analysisContext) {
+        return false;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/ExcelUtils.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/ExcelUtils.java
new file mode 100644
index 0000000..e525344
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/ExcelUtils.java
@@ -0,0 +1,85 @@
+package com.panzhihua.service_community.util;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.support.ExcelTypeEnum;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.io.IOUtils;
+
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletResponse;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.util.List;
+
+@Slf4j
+public class ExcelUtils {
+
+    /**
+     * 导出Excel(07版.xlsx)到指定路径下
+     *
+     * @param path      路径
+     * @param excelName Excel名称
+     * @param sheetName sheet页名称
+     * @param clazz     Excel要转换的类型
+     * @param data      要导出的数据
+     */
+    public static void export2File(String path, String excelName, String sheetName, Class clazz, List data) {
+        String fileName = path.concat(excelName).concat(ExcelTypeEnum.XLSX.getValue());
+        EasyExcel.write(fileName, clazz).sheet(sheetName).doWrite(data);
+    }
+
+    /**
+     * 导出Excel(07版.xlsx)到web
+     *
+     * @param response  响应
+     * @param excelName Excel名称
+     * @param sheetName sheet页名称
+     * @param clazz     Excel要转换的类型
+     * @param data      要导出的数据
+     * @throws Exception
+     */
+    public static void export2Web(HttpServletResponse response, String excelName, String sheetName, Class clazz, List data) throws Exception {
+        response.setContentType("application/vnd.ms-excel");
+        response.setCharacterEncoding("utf-8");
+        // 这里URLEncoder.encode可以防止中文乱码
+        excelName = URLEncoder.encode(excelName, "UTF-8");
+        response.setHeader("Content-disposition", "attachment;filename=" + excelName + ExcelTypeEnum.XLSX.getValue());
+        EasyExcel.write(response.getOutputStream(), clazz).sheet(sheetName).doWrite(data);
+    }
+
+    /**
+     * 将指定位置指定名称的Excel导出到web
+     *
+     * @param response  响应
+     * @param path      文件路径
+     * @param excelName 文件名称
+     * @return
+     * @throws UnsupportedEncodingException
+     */
+    public static String export2Web4File(HttpServletResponse response, String path, String excelName) throws UnsupportedEncodingException {
+        File file = new File(path.concat(excelName).concat(ExcelTypeEnum.XLSX.getValue()));
+        if (!file.exists()) {
+            return "文件不存在!";
+        }
+
+        response.setContentType("application/vnd.ms-excel");
+        response.setCharacterEncoding("utf-8");
+        // 这里URLEncoder.encode可以防止中文乱码
+        excelName = URLEncoder.encode(excelName, "UTF-8");
+        response.setHeader("Content-disposition", "attachment;filename=" + excelName + ExcelTypeEnum.XLSX.getValue());
+
+        try (
+                FileInputStream in = new FileInputStream(file);
+                ServletOutputStream out = response.getOutputStream();
+        ) {
+            IOUtils.copy(in, out);
+            return "导出成功!";
+        } catch (Exception e) {
+            log.error("导出文件异常:", e);
+        }
+
+        return "导出失败!";
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/JsoupUtil.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/JsoupUtil.java
new file mode 100644
index 0000000..ba5c34c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/JsoupUtil.java
@@ -0,0 +1,95 @@
+package com.panzhihua.service_community.util;
+
+import java.nio.charset.StandardCharsets;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.time.LocalDateTime;
+import java.time.ZoneOffset;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Component;
+import org.springframework.web.client.RestTemplate;
+
+import com.alibaba.fastjson.JSONObject;
+
+/**
+ * @author zzj
+ */
+@Component
+public class JsoupUtil {
+
+    public static String getSHA256StrJava(String str) {
+        MessageDigest messageDigest;
+        String encodeStr = "";
+        try {
+            messageDigest = MessageDigest.getInstance("SHA-256");
+            messageDigest.update(str.getBytes(StandardCharsets.UTF_8));
+            byte[] bytes = messageDigest.digest();
+            StringBuffer stringBuffer = new StringBuffer();
+            String temp = null;
+            for (int i = 0; i < bytes.length; i++) {
+                temp = Integer.toHexString(bytes[i] & 0xFF);
+                if (temp.length() == 1) {
+                    //1得到一位的进行补0操作
+                    stringBuffer.append("0");
+                }
+                stringBuffer.append(temp);
+            }
+            encodeStr = stringBuffer.toString();
+        } catch (NoSuchAlgorithmException e) {
+            e.printStackTrace();
+        }
+        return encodeStr;
+    }
+
+    public  void test() {
+        //获取时间戳
+        long timestamp = LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8"));
+        String url = "http://103.66.32.242:8005/zwfwMovePortal/interface/interfaceJson";
+        //以下常量值都是从网页源代码上获取到的------start
+        final String STATE_COUNCIL_SIGNATURE_KEY = "fTN2pfuisxTavbTuYVSsNJHetwq5bJvCQkjjtiLM2dCratiA";
+        final String STATE_COUNCIL_X_WIF_NONCE = "QkjjtiLM2dCratiA";
+        final String STATE_COUNCIL_X_WIF_PAASID = "smt-application";
+        //国务院疫情防控查询 appId
+        final String STATE_COUNCIL_APP_ID = "NcApplication";
+        //国务院疫情防控查询 PASSID
+        final String STATE_COUNCIL_PASSID = "zdww";
+        //国务院疫情防控查询 秘钥
+        final String STATE_COUNCIL_NONCE = "123456789abcdefg";
+        //国务院疫情防控查询 token
+        final String STATE_COUNCIL_TOEKN = "23y0ufFl5YxIyGrI8hWRUZmKkvtSjLQA";
+        //国务院疫情防控查询 key
+        final String STATE_COUNCIL_KEY = "3C502C97ABDA40D0A60FBEE50FAAD1DA";
+        //以下常量值都是从网页源代码上获取到的------end
+        HttpHeaders requestHeaders = new HttpHeaders();
+        Map<String,Object> body = new HashMap<>(10);
+        //计算签名要用的字符串
+        String signatureStr = String.format("%d%s%d",timestamp, STATE_COUNCIL_SIGNATURE_KEY,timestamp);
+        //计算签名
+        String signature = getSHA256StrJava(signatureStr).toUpperCase();
+        //请求头参数封装
+        requestHeaders.add( "x-wif-nonce",STATE_COUNCIL_X_WIF_NONCE);
+        requestHeaders.add( "x-wif-paasid",STATE_COUNCIL_X_WIF_PAASID);
+        requestHeaders.add( "x-wif-signature",signature);
+        requestHeaders.add( "x-wif-timestamp",String.valueOf(timestamp));
+        //body参数封装
+        body.put("appId",STATE_COUNCIL_APP_ID);
+        body.put("paasHeader",STATE_COUNCIL_PASSID);
+        body.put("timestampHeader",timestamp);
+        body.put("nonceHeader",STATE_COUNCIL_NONCE);
+        //请求参数
+        signatureStr = String.format("%d%s%s%d",timestamp,STATE_COUNCIL_TOEKN,STATE_COUNCIL_NONCE,timestamp);
+        String signatureHeader = getSHA256StrJava(signatureStr).toUpperCase();
+        body.put("signatureHeader",signatureHeader);
+        body.put("key",STATE_COUNCIL_KEY);
+        HttpEntity<String> httpEntity = new HttpEntity(body, requestHeaders);
+        ResponseEntity<String> response = new RestTemplate().exchange(url, HttpMethod.POST,httpEntity,String.class);
+        System.out.println(JSONObject.toJSONString(JSONObject.parseObject(response.getBody()),true));
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/MapDistance.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/MapDistance.java
new file mode 100644
index 0000000..c409d29
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/MapDistance.java
@@ -0,0 +1,127 @@
+package com.panzhihua.service_community.util;
+
+import lombok.extern.slf4j.Slf4j;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @ClassName: MapDistance
+ * @Author: yh
+ * @Date: 2022/11/11 15:21
+ * @Description: 经纬度处理
+ */
+@Slf4j
+public class MapDistance {
+    private static double EARTH_RADIUS = 6378.137;
+
+
+    private static double rad(double d) {
+        return d * Math.PI / 180.0;
+    }
+
+    private static final double EARTH_RADIUS1 = 6370996.81;
+
+    // 弧度
+    private static double radian(double d) {
+        return d * Math.PI / 180.0;
+    }
+
+    public static Double distanceOfTwoPoints(String lat1Str, String lng1Str, String lat2Str, String lng2Str) {
+        Double lat1 = Double.parseDouble(lat1Str);
+        Double lng1 = Double.parseDouble(lng1Str);
+        Double lat2 = Double.parseDouble(lat2Str);
+        Double lng2 = Double.parseDouble(lng2Str);
+
+        double radLat1 = radian(lat1);
+        double radLat2 = radian(lat2);
+        double a = radLat1 - radLat2;
+        double b = radian(lng1) - radian(lng2);
+        double s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2)
+                + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
+        s = s * EARTH_RADIUS1;
+        s = Math.round(s * 10000) / 10000;
+        return s;
+    }
+
+
+    /**
+     * 根据两个位置的经纬度,来计算两地的距离(单位为KM)
+     * 参数为String类型
+     * @return
+     */
+    public static String getDistance(String lat1Str, String lng1Str, String lat2Str, String lng2Str) {
+        Double lat1 = Double.parseDouble(lat1Str);
+        Double lng1 = Double.parseDouble(lng1Str);
+        Double lat2 = Double.parseDouble(lat2Str);
+        Double lng2 = Double.parseDouble(lng2Str);
+        double patm = 2;
+        double radLat1 = rad(lat1);
+        double radLat2 = rad(lat2);
+        double difference = radLat1 - radLat2;
+        double mdifference = rad(lng1) - rad(lng2);
+        double distance = patm * Math.asin(Math.sqrt(Math.pow(Math.sin(difference / patm), patm)
+                + Math.cos(radLat1) * Math.cos(radLat2)
+                * Math.pow(Math.sin(mdifference / patm), patm)));
+        distance = distance * EARTH_RADIUS;
+        String distanceStr = String.valueOf(distance);
+        return distanceStr;
+    }
+
+    /**
+     * 获取当前用户一定距离以内的经纬度值
+     * 单位米 return minLat
+     * 最小经度 minLng
+     * 最小纬度 maxLat
+     * 最大经度 maxLng
+     * 最大纬度 minLat
+     */
+    public static Map<Object,Object> getAround(String latStr, String lngStr, double raidusMile) {
+        log.info("latStr:"+latStr+",lngStr:"+lngStr+",raidusMile:"+raidusMile);
+        Map<Object,Object> map = new HashMap<Object,Object>();
+
+        Double latitude = Double.parseDouble(latStr);// 传值给经度
+        Double longitude = Double.parseDouble(lngStr);// 传值给纬度
+
+        Double degree = (24901 * 1609) / 360.0; // 获取每度
+//        double raidusMile = Double.parseDouble(raidus);
+
+        Double mpdLng = Double.parseDouble((degree * Math.cos(latitude * (Math.PI / 180))+"").replace("-", ""));
+        Double dpmLng = 1 / mpdLng;
+        Double radiusLng = dpmLng * raidusMile;
+        //获取最小经度
+        Double minLat = longitude - radiusLng;
+        // 获取最大经度
+        Double maxLat = longitude + radiusLng;
+
+        Double dpmLat = 1 / degree;
+        Double radiusLat = dpmLat * raidusMile;
+        // 获取最小纬度
+        Double minLng = latitude - radiusLat;
+        // 获取最大纬度
+        Double maxLng = latitude + radiusLat;
+
+        map.put("minLat", minLat+"");
+        map.put("maxLat", maxLat+"");
+        map.put("minLng", minLng+"");
+        map.put("maxLng", maxLng+"");
+
+        return map;
+    }
+
+    public static void main(String[] args) {
+        //济南国际会展中心经纬度:117.11811  36.68484
+        //趵突泉:117.00999000000002  36.66123
+        //103.962128,30.57568
+        //103.957232,30.636726
+//        System.out.println(getDistance("30.57568","103.962128","30.636726","103.957232"));
+
+        //103.842654,30.560987
+        System.out.println(getAround("104.082679", "30.592872", 900000d));
+        //117.01028712333508(Double), 117.22593287666493(Double),
+        //36.44829619896034(Double), 36.92138380103966(Double)
+        //104.03035080138962(String), 104.12020319861038(String), 30.271352899925574(String), 30.64081710007443(String)
+//        distanceOfTwoPoints("30.57568","103.962128","30.636726","103.957232");
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/MyAESUtil.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/MyAESUtil.java
new file mode 100644
index 0000000..7c6a73b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/MyAESUtil.java
@@ -0,0 +1,61 @@
+package com.panzhihua.service_community.util;
+
+import sun.misc.BASE64Decoder;
+import sun.misc.BASE64Encoder;
+
+import javax.crypto.Cipher;
+import javax.crypto.spec.SecretKeySpec;
+
+public class MyAESUtil {
+
+    // 加密
+    public static String Encrypt(String sSrc, String sKey) throws Exception {
+        if (sKey == null) {
+            System.out.print("Key为空null");
+            return null;
+        }
+        // 判断Key是否为16位
+        if (sKey.length() != 16) {
+            System.out.print("Key长度不是16位");
+            return null;
+        }
+        byte[] raw = sKey.getBytes("utf-8");
+        SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
+        Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");//"算法/模式/补码方式"
+        cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
+        byte[] encrypted = cipher.doFinal(sSrc.getBytes("utf-8"));
+        return new BASE64Encoder().encode(encrypted);//此处使用BASE64做转码功能,同时能起到2次加密的作用。
+    }
+
+    // 解密
+    public static String Decrypt(String sSrc, String sKey) throws Exception {
+        try {
+            // 判断Key是否正确
+            if (sKey == null) {
+                System.out.print("Key为空null");
+                return null;
+            }
+            // 判断Key是否为16位
+            if (sKey.length() != 16) {
+                System.out.print("Key长度不是16位");
+                return null;
+            }
+            byte[] raw = sKey.getBytes("utf-8");
+            SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
+            Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
+            cipher.init(Cipher.DECRYPT_MODE, skeySpec);
+            byte[] encrypted1 = new BASE64Decoder().decodeBuffer(sSrc);//先用base64解密
+            try {
+                byte[] original = cipher.doFinal(encrypted1);
+                String originalString = new String(original,"utf-8");
+                return originalString;
+            } catch (Exception e) {
+                System.out.println(e.toString());
+                return null;
+            }
+        } catch (Exception ex) {
+            System.out.println(ex.toString());
+            return null;
+        }
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/NearbyUtil.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/NearbyUtil.java
new file mode 100644
index 0000000..6549064
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/NearbyUtil.java
@@ -0,0 +1,18 @@
+package com.panzhihua.service_community.util;
+
+import com.spatial4j.core.context.SpatialContext;
+import com.spatial4j.core.distance.DistanceUtils;
+import com.spatial4j.core.shape.Rectangle;
+
+/**
+ * @author zzj
+ */
+public class NearbyUtil {
+    private SpatialContext spatialContext = SpatialContext.GEO;
+
+    public  Rectangle getRectangle(double distance, double userLng, double userLat) {
+        return spatialContext.getDistCalc()
+                .calcBoxByDistFromPt(spatialContext.makePoint(userLng, userLat),
+                        distance * DistanceUtils.KM_TO_DEG, spatialContext, null);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/QRCodeUtil.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/QRCodeUtil.java
new file mode 100644
index 0000000..2df2b5d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/QRCodeUtil.java
@@ -0,0 +1,205 @@
+package com.panzhihua.service_community.util;
+
+import cn.hutool.core.codec.Base64;
+import cn.hutool.core.util.StrUtil;
+import com.google.zxing.BarcodeFormat;
+import com.google.zxing.EncodeHintType;
+import com.google.zxing.common.BitMatrix;
+import com.google.zxing.qrcode.QRCodeWriter;
+import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
+import lombok.experimental.UtilityClass;
+import lombok.extern.slf4j.Slf4j;
+
+import javax.imageio.ImageIO;
+import javax.servlet.ServletOutputStream;
+import java.awt.*;
+import java.awt.geom.RoundRectangle2D;
+import java.awt.image.BufferedImage;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.net.URL;
+import java.util.HashMap;
+
+@Slf4j
+@UtilityClass
+public class QRCodeUtil {
+    /**
+     * 默认宽度
+     */
+    private static final Integer WIDTH = 140;
+    /**
+     * 默认高度
+     */
+    private static final Integer HEIGHT = 140;
+
+    /**
+     * LOGO 默认宽度
+     */
+    private static final Integer LOGO_WIDTH = 22;
+    /**
+     * LOGO 默认高度
+     */
+    private static final Integer LOGO_HEIGHT = 22;
+
+    /**
+     * 图片格式
+     */
+    private static final String IMAGE_FORMAT = "png";
+    private static final String CHARSET = "utf-8";
+    /**
+     * 原生转码前面没有 data:image/png;base64 这些字段,返回给前端是无法被解析
+     */
+    private static final String BASE64_IMAGE = "data:image/png;base64,%s";
+
+    /**
+     * 生成二维码,使用默认尺寸
+     *
+     * @param content 内容
+     * @return
+     */
+    public String getBase64QRCode(String content) {
+        return getBase64Image(content, WIDTH, HEIGHT, null, null, null);
+    }
+
+    /**
+     * 生成二维码,使用默认尺寸二维码,插入默认尺寸logo
+     *
+     * @param content 内容
+     * @param logoUrl logo地址
+     * @return
+     */
+    public String getBase64QRCode(String content, String logoUrl) {
+        return getBase64Image(content, WIDTH, HEIGHT, logoUrl, LOGO_WIDTH, LOGO_HEIGHT);
+    }
+
+    /**
+     * 生成二维码
+     *
+     * @param content    内容
+     * @param width      二维码宽度
+     * @param height     二维码高度
+     * @param logoUrl    logo 在线地址
+     * @param logoWidth  logo 宽度
+     * @param logoHeight logo 高度
+     * @return
+     */
+    public String getBase64QRCode(String content, Integer width, Integer height, String logoUrl, Integer logoWidth, Integer logoHeight) {
+        return getBase64Image(content, width, height, logoUrl, logoWidth, logoHeight);
+    }
+
+    private String getBase64Image(String content, Integer width, Integer height, String logoUrl, Integer logoWidth, Integer logoHeight) {
+        ByteArrayOutputStream os = new ByteArrayOutputStream();
+        BufferedImage bufferedImage = crateQRCode(content, width, height, logoUrl, logoWidth, logoHeight);
+        try {
+            ImageIO.write(bufferedImage, IMAGE_FORMAT, os);
+        } catch (IOException e) {
+            log.error("[生成二维码,错误{}]", e);
+        }
+        // 转出即可直接使用
+        return String.format(BASE64_IMAGE, Base64.encode(os.toByteArray()));
+    }
+
+
+    /**
+     * 生成二维码
+     *
+     * @param content    内容
+     * @param width      二维码宽度
+     * @param height     二维码高度
+     * @param logoUrl    logo 在线地址
+     * @param logoWidth  logo 宽度
+     * @param logoHeight logo 高度
+     * @return
+     */
+    private BufferedImage crateQRCode(String content, Integer width, Integer height, String logoUrl, Integer logoWidth, Integer logoHeight) {
+        if (StrUtil.isNotBlank(content)) {
+            ServletOutputStream stream = null;
+            HashMap<EncodeHintType, Comparable> hints = new HashMap<>(4);
+            // 指定字符编码为utf-8
+            hints.put(EncodeHintType.CHARACTER_SET, CHARSET);
+            // 指定二维码的纠错等级为中级
+            hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);
+            // 设置图片的边距
+            hints.put(EncodeHintType.MARGIN, 2);
+            try {
+                QRCodeWriter writer = new QRCodeWriter();
+                BitMatrix bitMatrix = writer.encode(content, BarcodeFormat.QR_CODE, width, height, hints);
+                BufferedImage bufferedImage = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
+                for (int x = 0; x < width; x++) {
+                    for (int y = 0; y < height; y++) {
+                        bufferedImage.setRGB(x, y, bitMatrix.get(x, y) ? 0xFF000000 : 0xFFFFFFFF);
+                    }
+                }
+                if (StrUtil.isNotBlank(logoUrl)) {
+                    insertLogo(bufferedImage, width, height, logoUrl, logoWidth, logoHeight);
+                }
+                return bufferedImage;
+            } catch (Exception e) {
+                e.printStackTrace();
+            } finally {
+                if (stream != null) {
+                    try {
+                        stream.flush();
+                        stream.close();
+                    } catch (IOException e) {
+                        e.printStackTrace();
+                    }
+                }
+            }
+        }
+        return null;
+    }
+
+    /**
+     * 二维码插入logo
+     *
+     * @param source     二维码
+     * @param width      二维码宽度
+     * @param height     二维码高度
+     * @param logoUrl    logo 在线地址
+     * @param logoWidth  logo 宽度
+     * @param logoHeight logo 高度
+     * @throws Exception
+     */
+    private void insertLogo(BufferedImage source, Integer width, Integer height, String logoUrl, Integer logoWidth, Integer logoHeight) throws Exception {
+        // logo 源可为 File/InputStream/URL
+        Image src = ImageIO.read(new URL(logoUrl));
+        // 插入LOGO
+        Graphics2D graph = source.createGraphics();
+        int x = (width - logoWidth) / 2;
+        int y = (height - logoHeight) / 2;
+        graph.drawImage(src, x, y, logoWidth, logoHeight, null);
+        Shape shape = new RoundRectangle2D.Float(x, y, logoWidth, logoHeight, 6, 6);
+        graph.setStroke(new BasicStroke(3f));
+        graph.draw(shape);
+        graph.dispose();
+    }
+
+
+    /**
+     * 获取二维码
+     *
+     * @param content 内容
+     * @param output  输出流
+     * @throws IOException
+     */
+    public void getQRCode(String content, OutputStream output) throws IOException {
+        BufferedImage image = crateQRCode(content, WIDTH, HEIGHT, null, null, null);
+        ImageIO.write(image, IMAGE_FORMAT, output);
+    }
+
+    /**
+     * 获取二维码
+     *
+     * @param content 内容
+     * @param logoUrl logo资源
+     * @param output  输出流
+     * @throws Exception
+     */
+    public void getQRCode(String content, String logoUrl, OutputStream output) throws Exception {
+        BufferedImage image = crateQRCode(content, WIDTH, HEIGHT, logoUrl, LOGO_WIDTH, LOGO_HEIGHT);
+        ImageIO.write(image, IMAGE_FORMAT, output);
+    }
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/RSAUtils.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/RSAUtils.java
new file mode 100644
index 0000000..4575b6c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/RSAUtils.java
@@ -0,0 +1,164 @@
+package com.panzhihua.service_community.util;
+
+import java.security.KeyFactory;
+import java.security.KeyPair;
+import java.security.KeyPairGenerator;
+import java.security.NoSuchAlgorithmException;
+import java.security.PublicKey;
+import java.security.SecureRandom;
+import java.security.Signature;
+import java.security.interfaces.RSAPrivateKey;
+import java.security.interfaces.RSAPublicKey;
+import java.security.spec.ECGenParameterSpec;
+import java.security.spec.PKCS8EncodedKeySpec;
+import java.security.spec.X509EncodedKeySpec;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.crypto.Cipher;
+
+import org.apache.commons.codec.binary.Base64;
+import org.bouncycastle.jce.provider.BouncyCastleProvider;
+
+import com.alibaba.fastjson.JSONObject;
+import org.jsoup.internal.StringUtil;
+
+
+public class RSAUtils {
+
+	private static Map<Integer, String> keyMap = new HashMap<Integer, String>(); // 用于封装随机产生的公钥与私钥
+
+	
+	/**
+	 * 随机生成密钥对
+	 * 
+	 * @throws NoSuchAlgorithmException
+	 */
+	public static void genKeyPair() throws NoSuchAlgorithmException {
+		// KeyPairGenerator类用于生成公钥和私钥对,基于RSA算法生成对象
+		KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("RSA");
+		// 初始化密钥对生成器,密钥大小为96-1024位
+		keyPairGen.initialize(1024, new SecureRandom());
+		// 生成一个密钥对,保存在keyPair中
+		KeyPair keyPair = keyPairGen.generateKeyPair();
+		RSAPrivateKey privateKey = (RSAPrivateKey) keyPair.getPrivate(); // 得到私钥
+		RSAPublicKey publicKey = (RSAPublicKey) keyPair.getPublic(); // 得到公钥
+		String publicKeyString = new String(Base64.encodeBase64(publicKey.getEncoded()));
+		// 得到私钥字符串
+		String privateKeyString = new String(Base64.encodeBase64((privateKey.getEncoded())));
+		// 将公钥和私钥保存到Map
+		System.out.println("publicKeyString:" + publicKeyString);
+		System.out.println("privateKeyString:" + privateKeyString);
+		keyMap.put(0, publicKeyString); // 0表示公钥
+		keyMap.put(1, privateKeyString); // 1表示私钥
+	}
+
+	/**
+	 * RSA公钥加密
+	 *
+	 * @param str       加密字符串
+	 * @param publicKey 公钥
+	 * @return 密文
+	 * @throws Exception 加密过程中的异常信息
+	 */
+	public static String encrypt(String str, String publicKey) throws Exception {
+		if (StringUtil.isBlank(str)) {
+			return "";
+		}
+		// base64编码的公钥
+		byte[] decoded = Base64.decodeBase64(publicKey);
+		RSAPublicKey pubKey = (RSAPublicKey) KeyFactory.getInstance("RSA")
+				.generatePublic(new X509EncodedKeySpec(decoded));
+		// RSA加密
+		Cipher cipher = Cipher.getInstance("RSA");
+		cipher.init(Cipher.ENCRYPT_MODE, pubKey);
+		String outStr = Base64.encodeBase64String(cipher.doFinal(str.getBytes("UTF-8")));
+		return outStr;
+	}
+
+	/**
+	 * RSA私钥解密
+	 *
+	 * @param str        加密字符串
+	 * @param privateKey 私钥
+	 * @return 铭文
+	 * @throws Exception 解密过程中的异常信息
+	 */
+	public static String decrypt(String str, String privateKey) throws Exception {
+		// 64位解码加密后的字符串
+		byte[] inputByte = Base64.decodeBase64(str.getBytes("UTF-8"));
+		// base64编码的私钥
+		byte[] decoded = Base64.decodeBase64(privateKey);
+		RSAPrivateKey priKey = (RSAPrivateKey) KeyFactory.getInstance("RSA")
+				.generatePrivate(new PKCS8EncodedKeySpec(decoded));
+		// RSA解密
+		Cipher cipher = Cipher.getInstance("RSA");
+		cipher.init(Cipher.DECRYPT_MODE, priKey);
+		String outStr = new String(cipher.doFinal(inputByte));
+		return outStr;
+	}
+
+	/**
+	 * RSA私钥解密
+	 *
+	 * @param str        加密字符串
+	 * @param privateKey 私钥
+	 * @return 铭文
+	 * @throws Exception 解密过程中的异常信息
+	 */
+	public static String decrypt2(String str, String privateKey) throws Exception {
+		str = str.replace(" ", "+");
+		// 64位解码加密后的字符串
+		byte[] inputByte = Base64.decodeBase64(str.getBytes("UTF-8"));
+		// base64编码的私钥
+		byte[] decoded = Base64.decodeBase64(privateKey);
+		RSAPrivateKey priKey = (RSAPrivateKey) KeyFactory.getInstance("RSA")
+				.generatePrivate(new PKCS8EncodedKeySpec(decoded));
+		// RSA解密
+		Cipher cipher = Cipher.getInstance("RSA");
+		cipher.init(Cipher.DECRYPT_MODE, priKey);
+		String outStr = new String(cipher.doFinal(inputByte));
+		return outStr;
+	}
+
+	public static String rsaEncrypt(String input, String rsaPublicKey) {
+		String result = "";
+		try {
+			// 将Base64编码后的公钥转换成PublicKey对象
+			byte[] buffer = Base64.decodeBase64(rsaPublicKey);
+			KeyFactory keyFactory = KeyFactory.getInstance("RSA");
+			X509EncodedKeySpec keySpec = new X509EncodedKeySpec(buffer);
+			PublicKey publicKey = keyFactory.generatePublic(keySpec);
+			// 加密
+			Cipher cipher = Cipher.getInstance("RSA");
+			cipher.init(Cipher.ENCRYPT_MODE, publicKey);// ubli
+			byte[] inputArray = input.getBytes();
+			int inputLength = inputArray.length;
+			// System.out.println("加密字节数:" + inputLength);
+			// 最大加密字节数,超出最大字节数需要分组加密
+			int MAX_ENCRYPT_BLOCK = 117;
+			// 标识
+			int offSet = 0;
+			byte[] resultBytes = {};
+			byte[] cache = {};
+			while (inputLength - offSet > 0) {
+				if (inputLength - offSet > MAX_ENCRYPT_BLOCK) {
+					cache = cipher.doFinal(inputArray, offSet, MAX_ENCRYPT_BLOCK);
+					offSet += MAX_ENCRYPT_BLOCK;
+				} else {
+					cache = cipher.doFinal(inputArray, offSet, inputLength - offSet);
+					offSet = inputLength;
+				}
+				resultBytes = Arrays.copyOf(resultBytes, resultBytes.length + cache.length);
+				System.arraycopy(cache, 0, resultBytes, resultBytes.length - cache.length, cache.length);
+			}
+			result = Base64.encodeBase64String(resultBytes);
+		} catch (Exception e) {
+			System.out.println("rsaEncrypt error:" + e.getMessage());
+		}
+		// System.out.println("加密的结果:" + result);
+		return result;
+	}
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/ResultEntity.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/ResultEntity.java
new file mode 100644
index 0000000..22982c1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/ResultEntity.java
@@ -0,0 +1,12 @@
+package com.panzhihua.service_community.util;
+
+import lombok.Data;
+
+/**
+ * @author zzj
+ */
+@Data
+public class ResultEntity {
+    private Integer key;
+    private Integer value;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/UnionDoorUtil.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/UnionDoorUtil.java
new file mode 100644
index 0000000..d3678e2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/UnionDoorUtil.java
@@ -0,0 +1,24 @@
+package com.panzhihua.service_community.util;
+
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.model.vos.R;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import static com.panzhihua.common.utlis.HttpClientUtil.httpGet;
+
+@Slf4j
+@Service
+public class UnionDoorUtil {
+
+
+    /**
+     * 刷新token
+     *
+     * @return token
+     * @throws Exception
+     */
+    public R refreshToken(String qRCode,String phone) throws Exception {
+        String url = "https://userinner.pzhszgh.cn/unionOutdoor/unionUser/openDoorByPhone?qRCode+"+qRCode+"&phone="+phone;
+        return JSONObject.parseObject(httpGet(url, null), R.class);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/WXMessageUtil.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/WXMessageUtil.java
new file mode 100644
index 0000000..c86af40
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/WXMessageUtil.java
@@ -0,0 +1,57 @@
+package com.panzhihua.service_community.util;
+
+import cn.hutool.http.HttpUtil;
+import cn.hutool.json.JSONUtil;
+import com.panzhihua.common.model.vos.SanShuoMessageVO;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang.StringUtils;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@Slf4j
+public class WXMessageUtil {
+    private static final String APP_ID="wx0cef797390444b75";
+    private static final String SEND_MESSAGE_URL="https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=";
+    private static final String TOKEN_URL="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential";
+    private static final String SECRET="c7ea9aaa7e391a487e8a5b9ba61045d1";
+    private static final String TEMPLATE_ID="iy8r0YbGlvmysbjGcbEj0yx-kftKBjC-HrXlSeNBrE0";
+    public static String queryToken(){
+        String tokenUrl=TOKEN_URL+"&appid="+APP_ID+"&secret="+SECRET;
+        String result= HttpUtil.get(tokenUrl);
+        cn.hutool.json.JSONObject obj = JSONUtil.parseObj(result);
+        String token = obj.get("access_token").toString();
+        return token;
+    }
+
+    public static String sendStatusMessage(SanShuoMessageVO vo){
+        String token = queryToken();
+        if (StringUtils.isNotEmpty(token)){
+            //发送消息
+            String url=SEND_MESSAGE_URL+token;
+            Map<String,Object> param=new HashMap<>();
+            param.put("touser", vo.getTouser());
+            param.put("template_id", TEMPLATE_ID);
+            param.put("page","packageE/page/sanShuo/mediationRoom/mediationRoom");
+            Map<String,Object> data=new HashMap<>();
+            data.put("thing1", formData(vo.getThing1()));
+            data.put("thing5", formData(vo.getThing5()));
+            data.put("thing2", formData(vo.getThing2()));
+            data.put("time3", formData(vo.getTime3()));
+            param.put("data", data);
+            String paramMap = JSONUtil.toJsonStr(param);
+            log.info("===============推送参数:"+paramMap);
+            String result = HttpUtil.post(url, paramMap);
+            log.info("状态推送结果"+result);
+            return result;
+        }
+        return null;
+    }
+
+    public static Map<String,Object> formData(String param){
+        Map<String,Object> data=new HashMap<>();
+        data.put("value",param );
+        return data;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/WxDataUtil.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/WxDataUtil.java
new file mode 100644
index 0000000..14ac068
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/WxDataUtil.java
@@ -0,0 +1,62 @@
+package com.panzhihua.service_community.util;
+
+import cn.hutool.core.date.DateUtil;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.utlis.*;
+
+import java.util.Date;
+
+/**
+ * 微信活跃用户工具类
+ * @author zzj
+ */
+public class WxDataUtil {
+    WxXCXTempSend wxXCXTempSend=new WxXCXTempSend();
+    String accessToken;
+    {
+        try {
+            accessToken = wxXCXTempSend.getAccessToken();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    public Integer getDayUser(){
+       try {
+           String dayUrl="https://api.weixin.qq.com/datacube/getweanalysisappiddailyretaininfo?access_token="+accessToken;
+           WxRequestEntity wxRequestEntity=new WxRequestEntity();
+           wxRequestEntity.setAccess_token(accessToken);
+           String date=DateUtil.format(DateUtil.offsetDay(new Date(),-1),"yyyyMMdd");
+           wxRequestEntity.setBegin_date(date);
+           wxRequestEntity.setEnd_date(date);
+           String result=HttpClientUtil.httpPost(dayUrl, JSONObject.toJSONString(wxRequestEntity));
+           if(StringUtils.isNotEmpty(result)&result.contains("visit_uv")){
+               JSONArray jsonArray=(JSONArray) JSONObject.parseObject(result).get("visit_uv");
+               JSONObject jsonObject=(JSONObject)jsonArray.get(0);
+               return  jsonObject.getInteger("value");
+           }
+       } catch (Exception e) {
+           e.printStackTrace();
+       }
+       return null;
+   }
+   public Integer getMonthUser(){
+       try {
+           String dayUrl="https://api.weixin.qq.com/datacube/getweanalysisappidmonthlyvisittrend?access_token="+accessToken;
+           WxRequestEntity wxRequestEntity=new WxRequestEntity();
+           wxRequestEntity.setAccess_token(accessToken);
+           wxRequestEntity.setBegin_date(DateUtils.getOldMonthFirstDay());
+           wxRequestEntity.setEnd_date(DateUtils.getOldMonthLastDay());
+           String result=HttpClientUtil.httpPost(dayUrl, JSONObject.toJSONString(wxRequestEntity));
+           if(StringUtils.isNotEmpty(result)&result.contains("session_cnt")){
+               JSONArray resultEntity= (JSONArray) JSONObject.parseObject(result).get("list");
+               JSONObject resultObject= (JSONObject) resultEntity.get(0);
+               return  resultObject.getInteger("session_cnt");
+           }
+       } catch (Exception e) {
+           e.printStackTrace();
+       }
+       return null;
+   }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/WxMaConfiguration.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/WxMaConfiguration.java
new file mode 100644
index 0000000..459effe
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/WxMaConfiguration.java
@@ -0,0 +1,70 @@
+package com.panzhihua.service_community.util;
+
+import javax.annotation.Resource;
+
+import cn.binarywang.wx.miniapp.config.impl.WxMaRedisBetterConfigImpl;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.user.SysAppConfigVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.StringUtils;
+import me.chanjar.weixin.common.redis.RedisTemplateWxRedisOps;
+import me.chanjar.weixin.common.redis.WxRedisOps;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.stereotype.Component;
+
+import cn.binarywang.wx.miniapp.api.WxMaService;
+import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl;
+import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: wexin
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-23 15:07
+ **/
+@Slf4j
+@Component
+public class WxMaConfiguration {
+
+    @Resource
+    private WxMaProperties properties;
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+
+    @Resource
+    private UserService userService;
+
+
+    public WxMaService getMaService() {
+        WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl();
+        config.setAppid(properties.getAppid());
+        config.setSecret(properties.getSecret());
+        config.setMsgDataFormat(properties.getMsgDataFormat());
+        WxMaService wxMaService = new WxMaServiceImpl();
+        wxMaService.setWxMaConfig(config);
+        return wxMaService;
+    }
+
+    public WxMaService getMaService(String appid) {
+        WxRedisOps redisOps = new RedisTemplateWxRedisOps(stringRedisTemplate);
+        WxMaRedisBetterConfigImpl config = new WxMaRedisBetterConfigImpl(redisOps, "access_token");
+        if(StringUtils.isNotEmpty(appid)){
+            R<SysAppConfigVO> r=userService.selectByAppid(appid);
+            if(R.isOk(r)){
+                SysAppConfigVO sysAppConfigVO= r.getData();
+                config.setAppid(sysAppConfigVO.getAppId());
+                config.setSecret(sysAppConfigVO.getSecret());
+                config.setMsgDataFormat(properties.getMsgDataFormat());
+            }
+        }
+        else{
+            config.setAppid(properties.getAppid());
+            config.setSecret(properties.getSecret());
+            config.setMsgDataFormat(properties.getMsgDataFormat());
+        }
+        WxMaService wxMaService = new WxMaServiceImpl();
+        wxMaService.setWxMaConfig(config);
+        return wxMaService;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/WxMaProperties.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/WxMaProperties.java
new file mode 100644
index 0000000..b68b3d7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/WxMaProperties.java
@@ -0,0 +1,58 @@
+package com.panzhihua.service_community.util;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 微信配置
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-23 14:52
+ **/
+@Data
+@Component
+@ConfigurationProperties(prefix = "wx.miniapp")
+public class WxMaProperties {
+
+    /**
+     * 设置微信小程序的appid
+     */
+    private String appid;
+
+    /**
+     * 设置微信小程序的Secret
+     */
+    private String secret;
+
+    /**
+     * 设置微信小程序消息服务器配置的token
+     */
+    private String token;
+
+    /**
+     * 设置微信小程序消息服务器配置的EncodingAESKey
+     */
+    private String aesKey;
+
+    /**
+     * 消息格式,XML或者JSON
+     */
+    private String msgDataFormat;
+
+    /**
+     * 商户号
+     */
+    private String mchId;
+
+    /**
+     * 微信支付密钥
+     */
+    private String payKey;
+
+    /**
+     * 微信支付回调地址
+     */
+    private String notifyUrl;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/WxRequestEntity.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/WxRequestEntity.java
new file mode 100644
index 0000000..ccc7506
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/util/WxRequestEntity.java
@@ -0,0 +1,13 @@
+package com.panzhihua.service_community.util;
+
+import lombok.Data;
+
+/**
+ * @author zzj
+ */
+@Data
+public class WxRequestEntity {
+    private String access_token;
+    private String begin_date;
+    private String end_date;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/bootstrap.yml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..2439f01
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/bootstrap.yml
@@ -0,0 +1,43 @@
+spring:
+  application:
+    name: huacheng-community
+  cloud:
+    config:
+      discovery:
+        enabled: true
+        service-id: huacheng-config  # 注册中心的服务名
+      profile: ${ENV:dev}  # 指定配置文件的环境
+      uri: http://${CONFIG_URL:localhost}:6193/
+  profiles:
+    active: ${ENV:dev}
+  servlet:
+    multipart:
+      max-file-size: 10MB
+      max-request-size: 10MB
+
+
+eureka:
+  client:
+    service-url:
+      defaultZone: http://${EUREKA_URL:localhost}:8192/eureka
+
+#实体加密、解密、字段脱敏拦截设置
+domain:
+  decrypt: true
+  encrypt: true
+  aesKey: Ryo7M3n8loC5
+  sensitive: true
+
+management:
+  endpoints:
+    web:
+      exposure:
+        include: '*'
+
+  endpoint:
+    health:
+      show-details: always
+
+  metrics:
+    tags:
+      application: huacheng-community
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/logback-spring.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..3289870
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/logback-spring.xml
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration debug="false">
+    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
+    <springProfile name="dev">
+        <property name="LOG_HOME" value="F:\log"/>
+    </springProfile>
+       <springProfile name="test">
+        <property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    </springProfile>
+<property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    <!-- 控制台输出 -->
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+    </appender>
+    <!-- 按照每天生成日志文件 -->
+    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!--日志文件输出的文件名-->
+            <FileNamePattern>${LOG_HOME}/huachengservice_community.log.%d{yyyy-MM-dd}.log</FileNamePattern>
+            <!--日志文件保留天数-->
+            <MaxHistory>30</MaxHistory>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+        <!--日志文件最大的大小-->
+        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <MaxFileSize>10MB</MaxFileSize>
+        </triggeringPolicy>
+    </appender>
+
+    <!--myibatis log configure-->
+    <logger name="com.apache.ibatis" level="TRACE"/>
+    <logger name="java.sql.Connection" level="DEBUG"/>
+    <logger name="java.sql.Statement" level="DEBUG"/>
+    <logger name="java.sql.PreparedStatement" level="DEBUG"/>
+    <logger name="com.panzhihua.service_community" level="DEBUG"/>
+
+    <!-- 日志输出级别 -->
+    <root level="DEBUG">
+        <appender-ref ref="STDOUT" />
+    </root>
+    <root level="INFO">
+        <appender-ref ref="STDOUT" />
+        <appender-ref ref="FILE" />
+    </root>
+
+    <!--慢接口和方法日志记录到不同的文件-->
+    <appender name="slowClassAndMethodAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <File>${LOG_HOME}/slow_service_community.log</File>
+        <append>true</append>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>INFO</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${LOG_HOME}/slow_service_community.%d.%i.log</fileNamePattern>
+            <maxHistory>10</maxHistory>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>10MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+        </rollingPolicy>
+        <encoder>
+            <pattern>%d{yyyy/MM/dd HH:mm:ss.SSS} %-5level [%thread] [%c{0}:%L] : %msg%n</pattern>
+            <charset>UTF-8</charset>
+        </encoder>
+    </appender>
+
+    <!--这是我们定义的慢接口和方法日志传入的名称-->
+    <logger name="slowClassAndMethodLog" additivity="false" level="INFO">
+        <appender-ref ref="slowClassAndMethodAppender"/>
+    </logger>
+</configuration>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/BcRegionMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/BcRegionMapper.xml
new file mode 100644
index 0000000..d9cfd95
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/BcRegionMapper.xml
@@ -0,0 +1,70 @@
+<?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.BcRegionDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.BcRegion" id="BcRegionBaseResultMap">
+        <result property="regionId" column="region_id"/>
+        <result property="regionCode" column="region_code"/>
+        <result property="regionName" column="region_name"/>
+        <result property="parentId" column="parent_id"/>
+        <result property="hierarchyOrder" column="hierarchy_order"/>
+        <result property="levelOrder" column="level_order"/>
+        <result property="formatCode" column="format_code"/>
+        <result property="createUserId" column="create_user_id"/>
+        <result property="createDatetime" column="create_datetime"/>
+        <result property="modifyUserId" column="modify_user_id"/>
+        <result property="modifyDatetime" column="modify_datetime"/>
+        <result property="deleteFlag" column="delete_flag"/>
+        <result property="childrenNum" column="children_num"/>
+    </resultMap>
+
+    <select id="selectByName" resultType="string">
+        SELECT distinct left(code,6) FROM area_index_2022 where 1=1
+        <if test="province !=null and province!=''">
+            and province = #{province}
+        </if>
+        <if test="city !=null and city!=''">
+            and city =#{city}
+        </if>
+        <if test="county !=null and county!=''">
+            and county like concat(#{county},'%')
+        </if>
+        <if test="town !=null and town!=''">
+            and town = #{town}
+        </if>
+        limit 1
+    </select>
+
+    <select id="selectCommunityCodeByName" resultType="string">
+        SELECT distinct code FROM area_index_2022 where 1=1
+        <if test="city !=null and city!=''">
+            and city =#{city}
+        </if>
+        <if test="county !=null and county!=''">
+            and county like concat(#{county},'%')
+        </if>
+        <if test="town !=null and town!=''">
+            and town = #{town}
+        </if>
+        <if test="villagetr !=null and villagetr!=''">
+            and villagetr like concat(#{villagetr},'%')
+        </if>
+        limit 1
+    </select>
+
+    <select id="selectFirst" resultType="com.panzhihua.common.model.vos.community.ProvinceCityReturnVO">
+        select distinct  name,code from area_code_2022 where level=1
+    </select>
+
+    <select id="selectSecond" resultType="com.panzhihua.common.model.vos.community.ProvinceCityReturnVO">
+        select distinct  name,code from area_code_2022 where level=2 and pcode=#{name}
+    </select>
+
+    <select id="selectThird" resultType="com.panzhihua.common.model.vos.community.ProvinceCityReturnVO">
+        select distinct  name,code from area_code_2022 where level=3 and pcode=#{name}
+    </select>
+
+    <select id="selectFourth" resultType="com.panzhihua.common.model.vos.community.ProvinceCityReturnVO">
+        select distinct  name,code from area_code_2022 where level=4 and pcode=#{name}
+    </select>
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActAcidCheckRecordMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActAcidCheckRecordMapper.xml
new file mode 100644
index 0000000..543cfee
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActAcidCheckRecordMapper.xml
@@ -0,0 +1,25 @@
+<?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.ComActAcidCheckRecordDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComActAcidCheckRecord"
+               id="ComActAcidCheckRecordBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="memberId" column="member_id"/>
+        <result property="status" column="status"/>
+        <result property="remark" column="remark"/>
+        <result property="createTime" column="create_time"/>
+        <result property="username" column="username"/>
+    </resultMap>
+
+    <select id="pageList" resultType="com.panzhihua.common.model.vos.community.acid.ComActAcidCheckRecordVO">
+            select * from com_act_acid_check_record
+            <where>
+                <if test="dto.memberId !=null and dto.memberId !=''">
+                    and member_id = #{dto.memberId}
+                </if>
+            </where>
+            order by create_time desc
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActAcidDangerMemberMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActAcidDangerMemberMapper.xml
new file mode 100644
index 0000000..5d284bd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActAcidDangerMemberMapper.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.ComActAcidDangerMemberDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComActAcidDangerMember"
+               id="ComActAcidDangerMemberBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="createTime" column="create_time"/>
+        <result property="recordId" column="record_id"/>
+        <result property="name" column="name"/>
+        <result property="phone" column="phone"/>
+        <result property="idCard" column="id_card"/>
+        <result property="type" column="type"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="relationName" column="relation_name"/>
+        <result property="riskType" column="risk_type"/>
+    </resultMap>
+
+    <select id="pageList" resultType="com.panzhihua.common.model.vos.community.acid.ComActAcidDangerMemberVO">
+        SELECT t1.id, t1.`name`, t1.`status`, t1.record_id, t1.phone, t1.risk_type, t2.local_city,
+        t1.source, t2.create_time AS reportTime, t2.real_address, MAX(t3.create_time) AS checkTime
+        FROM com_act_acid_danger_member t1
+        LEFT JOIN com_act_acid_record t2 ON t1.record_id = t2.id
+        LEFT JOIN com_act_acid_check_record t3 ON t1.id = t3.member_id
+        <where>
+            t1.is_del=0
+            <if test="commonPage.keyword!=null and commonPage.keyword !=''">
+                and (t1.`name` like concat('%',#{commonPage.keyword},'%')
+                or t1.phone like concat('%',#{commonPage.keyword},'%')
+                or t1.id_card like concat('%',#{commonPage.keyword},'%'))
+            </if>
+            <if test="commonPage.source!=null">
+                and t1.source =#{commonPage.source}
+            </if>
+            <if test="commonPage.status!=null">
+                and t1.`status` =#{commonPage.status}
+            </if>
+            <if test="commonPage.status==null">
+                and t1.`status` != 5
+            </if>
+            <if test="commonPage.type != null">
+                AND t1.`type` = #{commonPage.type}
+            </if>
+            <if test="commonPage.relationName !=null and commonPage.relationName !='' and commonPage.relationName !='panzhihua'">
+                and t1.relation_name like concat('%',#{commonPage.relationName},'%')
+            </if>
+            <if test="commonPage.isAddress !=null">
+                <if test="commonPage.isAddress == 0">
+                    and (t2.local_city is null OR LENGTH(TRIM(t2.local_city)) = 0)
+                </if>
+                <if test="commonPage.isAddress == 1">
+                    and t2.local_city is not null AND LENGTH(TRIM(t2.local_city)) > 0
+                </if>
+            </if>
+            <if test="commonPage.localCity !=null and commonPage.localCity !='' and commonPage.localCity !='panzhihua'">
+                and t2.local_city like concat('%',#{commonPage.localCity},'%')
+            </if>
+            <if test="commonPage.riskType != null and commonPage.riskType != &quot;&quot;">
+                AND t1.risk_type LIKE CONCAT('%', #{commonPage.riskType}, '%')
+            </if>
+        </where>
+        GROUP BY t1.id
+        HAVING 1=1
+        <if test="commonPage.type == 1">
+            <if test="commonPage.startTime!=null">
+                AND checkTime >= #{commonPage.startTime}
+            </if>
+            <if test="commonPage.stopTime!=null">
+                AND concat(SUBSTR(#{commonPage.stopTime} FROM 1 FOR 10),' 23:59:59') >= checkTime
+            </if>
+            order by checkTime asc,reportTime desc
+        </if>
+        <if test="commonPage.type == 2">
+            <if test="commonPage.startTime!=null">
+                AND reportTime >= #{commonPage.startTime}
+            </if>
+            <if test="commonPage.stopTime!=null">
+                AND concat(SUBSTR(#{commonPage.stopTime} FROM 1 FOR 10),' 23:59:59') >= reportTime
+            </if>
+            order by reportTime desc
+        </if>
+    </select>
+    <select id="pageDangerMember"
+            resultType="com.panzhihua.common.model.vos.community.acid.ComActAcidDangerMemberVO">
+        SELECT t1.id, t1.`name`, t1.`status`, t1.record_id, t1.phone, t2.color_mark, t2.acid_test, MAX(t3.create_time) AS checkTime,t1.create_time
+        FROM com_act_acid_danger_member t1
+        LEFT JOIN com_act_acid_record t2 ON t1.record_id = t2.id
+        LEFT JOIN com_act_acid_check_record t3 ON t1.id = t3.member_id
+        <where>
+            t1.is_del=0
+            <if test="pageDangerMemberDTO.keyword != null and pageDangerMemberDTO.keyword != &quot;&quot;">
+                AND t1.`name` LIKE CONCAT('%', #{pageDangerMemberDTO.keyword}, '%')
+            </if>
+            <if test="pageDangerMemberDTO.isFill != null">
+                <if test="pageDangerMemberDTO.isFill == 1">
+                    AND t2.local_city IS NOT NULL AND LENGTH(TRIM(t2.local_city)) > 0
+                </if>
+                <if test="pageDangerMemberDTO.isFill == 2">
+                    AND (t2.local_city IS NULL OR LENGTH(TRIM(t2.local_city)) = 0)
+                </if>
+            </if>
+            <if test="pageDangerMemberDTO.type != null">
+                AND t1.`type` = #{pageDangerMemberDTO.type}
+            </if>
+            <if test="pageDangerMemberDTO.relationName !=null and pageDangerMemberDTO.relationName !='' and pageDangerMemberDTO.relationName !='panzhihua'">
+                and t1.relation_name like concat('%',#{pageDangerMemberDTO.relationName},'%')
+            </if>
+        </where>
+        GROUP BY t1.id ORDER BY checkTime ASC
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActAcidMemberMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActAcidMemberMapper.xml
new file mode 100644
index 0000000..2536540
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActAcidMemberMapper.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.ComActAcidMemberDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComActAcidMember" id="ComActAcidMemberBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="name" column="name"/>
+        <result property="phone" column="phone"/>
+        <result property="pushStatus" column="push_status"/>
+        <result property="relationName" column="relation_name"/>
+        <result property="createTime" column="create_time"/>
+    </resultMap>
+
+    <select id="pageList" resultType="com.panzhihua.common.model.vos.community.acid.ComActAcidMemberVO">
+        select * from com_act_acid_member
+        <where>
+            <if test="commonPage.keyword!=null and commonPage.keyword!=''">
+                and (name like concat('%',#{commonPage.keyword},'%') or phone like concat('%',#{commonPage.keyword},'%'))
+            </if>
+            <if test="commonPage.pushStatus!=null">
+                and push_status = #{commonPage.pushStatus}
+            </if>
+            <if test="commonPage.relationName!=null and commonPage.relationName !=''">
+                and relation_name =#{commonPage.relationName}
+            </if>
+        </where>
+        order by create_time desc
+    </select>
+    <select id="selectPushList" resultType="com.panzhihua.common.model.vos.community.acid.ComActAcidMemberVO">
+        SELECT t1.id, t1.`name`, t1.phone, t2.openid
+        FROM com_act_acid_member t1
+        JOIN sys_user t2 ON t1.phone = t2.phone AND `type` = 1
+        WHERE t1.push_status = 1 <if test="relationName!=null and relationName !=''">AND t1.relation_name = #{relationName}</if>
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActAcidRecordMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActAcidRecordMapper.xml
new file mode 100644
index 0000000..2357f2f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActAcidRecordMapper.xml
@@ -0,0 +1,447 @@
+<?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.ComActAcidRecordDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComActAcidRecord" id="ComActAcidRecordBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="name" column="name"/>
+        <result property="idCard" column="id_card"/>
+        <result property="phone" column="phone"/>
+        <result property="departureCity" column="departure_city"/>
+        <result property="departureAddress" column="departure_address"/>
+        <result property="departureDate" column="departure_date"/>
+        <result property="touristCity" column="tourist_city"/>
+        <result property="localCity" column="local_city"/>
+        <result property="localAddress" column="local_address"/>
+        <result property="arriveDate" column="arrive_date"/>
+        <result property="colorMark" column="color_mark"/>
+        <result property="travelCard" column="travel_card"/>
+        <result property="dangerArea" column="danger_area"/>
+        <result property="outsideCity" column="outside_city"/>
+        <result property="vaccination" column="vaccination"/>
+        <result property="acidTest" column="acid_test"/>
+    </resultMap>
+    <update id="batchCheck">
+        UPDATE com_act_acid_record SET check_status = 1
+        <if test="batchCheckAcidRecordDTO.remark != null and batchCheckAcidRecordDTO.remark != &quot;&quot;">
+            ,remark = #{batchCheckAcidRecordDTO.remark}
+        </if>
+        WHERE id IN
+        <foreach collection="batchCheckAcidRecordDTO.ids" item="id" index="index" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </update>
+
+    <select id="pageList" resultType="com.panzhihua.common.model.vos.community.acid.ComActAcidRecordVO">
+        select * from com_act_acid_record
+        <where>
+            is_del=0
+            <if test="commonPage.userId !=null">
+                and user_id = #{commonPage.userId}
+            </if>
+            <if test="commonPage.checkStatus !=null and commonPage.checkStatus !=''">
+                and check_status = #{commonPage.checkStatus}
+            </if>
+            <if test="commonPage.keyword !=null and commonPage.keyword!=''">
+                and (name like concat('%',#{commonPage.keyword},'%') or phone like concat('%',#{commonPage.keyword},'%')
+                or id_card like concat('%',#{commonPage.keyword},'%'))
+            </if>
+            <if test="commonPage.startTime !=null and commonPage.startTime !=''">
+                and create_time between #{commonPage.startTime} and #{commonPage.stopTime}
+            </if>
+            <if test="commonPage.isAddress !=null">
+                <if test="commonPage.isAddress == 0">
+                    and (local_city is null OR LENGTH(TRIM(local_city)) = 0)
+                </if>
+                <if test="commonPage.isAddress == 1">
+                    and local_city is not null AND LENGTH(TRIM(local_city)) > 0
+                </if>
+            </if>
+            <if test="commonPage.departureCity !=null and commonPage.departureCity !=''">
+                and departure_city like concat('%',#{commonPage.departureCity},'%')
+            </if>
+            <if test="commonPage.touristCity !=null and commonPage.touristCity !=''">
+                and tourist_city like concat('%',#{commonPage.touristCity},'%')
+            </if>
+            <if test="commonPage.dangerArea !=null and commonPage.dangerArea !=''">
+                and danger_area = #{commonPage.dangerArea}
+            </if>
+            <if test="commonPage.localCity !=null and commonPage.localCity !='' and commonPage.localCity !='panzhihua'">
+                and local_city like concat('%',#{commonPage.localCity},'%')
+            </if>
+            <if test="commonPage.colorMark !=null and commonPage.colorMark !=''">
+                and color_mark like concat('%',#{commonPage.colorMark},'%')
+            </if>
+            <if test="commonPage.travelCard !=null and commonPage.travelCard !=''">
+                and travel_card like concat('%',#{commonPage.travelCard},'%')
+            </if>
+            <if test="commonPage.type == 1">
+                and local_city like concat('%','社区')
+            </if>
+            <if test="commonPage.type == 2">
+                and local_city like concat('%','村')
+            </if>
+        </where>
+        order by check_status asc,create_time desc
+    </select>
+
+    <select id="export" resultType="com.panzhihua.common.model.vos.community.acid.ComActAcidRecordExcelReturn">
+        select t.*,t1.status from com_act_acid_record t left join com_act_acid_danger_member t1 on t.id = t1.record_id
+        <where>
+            t.is_del=0 and t.name is not null and t.id_card is not null and t.phone is not null
+            <if test="commonPage.userId !=null">
+                and t.user_id = #{commonPage.userId}
+            </if>
+            <if test="commonPage.checkStatus !=null and commonPage.checkStatus !=''">
+                and check_status = #{commonPage.checkStatus}
+            </if>
+            <if test="commonPage.keyword !=null and commonPage.keyword!=''">
+                and (t.name like concat('%',#{commonPage.keyword},'%') or t.phone like
+                concat('%',#{commonPage.keyword},'%') or t.id_card like concat('%',#{commonPage.keyword},'%'))
+            </if>
+            <if test="commonPage.startTime !=null and commonPage.startTime !=''">
+                and t.create_time between #{commonPage.startTime} and #{commonPage.stopTime}
+            </if>
+            <if test="commonPage.isAddress !=null">
+                <if test="commonPage.isAddress == 0">
+                    and (local_city is null OR LENGTH(TRIM(local_city)) = 0)
+                </if>
+                <if test="commonPage.isAddress == 1">
+                    and local_city is not null AND LENGTH(TRIM(local_city)) > 0
+                </if>
+            </if>
+            <if test="commonPage.departureCity !=null and commonPage.departureCity !=''">
+                and departure_city like concat('%',#{commonPage.departureCity},'%')
+            </if>
+            <if test="commonPage.touristCity !=null and commonPage.touristCity !=''">
+                and tourist_city like concat('%',#{commonPage.touristCity},'%')
+            </if>
+            <if test="commonPage.dangerArea !=null and commonPage.dangerArea !=''">
+                and danger_area = #{commonPage.dangerArea}
+            </if>
+            <if test="commonPage.localCity !=null and commonPage.localCity !='' and commonPage.localCity !='panzhihua'">
+                and local_city like concat('%',#{commonPage.localCity},'%')
+            </if>
+            <if test="commonPage.colorMark !=null and commonPage.colorMark !=''">
+                and color_mark like concat('%',#{commonPage.colorMark},'%')
+            </if>
+            <if test="commonPage.travelCard !=null and commonPage.travelCard !=''">
+                and travel_card like concat('%',#{commonPage.travelCard},'%')
+            </if>
+        </where>
+        order by t.create_time desc
+    </select>
+
+    <select id="selectByIds" resultType="com.panzhihua.common.model.vos.community.acid.ComActAcidRecordExcelReturn">
+        select t.*,t1.status from com_act_acid_record t left join com_act_acid_danger_member t1 on t.id = t1.record_id
+        <where>
+            t.is_del=0 and t.name is not null and t.id_card is not null and t.phone is not null
+            <if test="ids !=null and ids !=''">
+                and t.id  in (${ids})
+            </if>
+        </where>
+        order by t.create_time desc
+    </select>
+
+    <select id="exportNew" resultType="com.panzhihua.common.model.vos.community.acid.ComActAcidRecordExcelReturn">
+        select t.*,t1.status from com_act_acid_record t left join com_act_acid_danger_member t1 on t.id = t1.record_id
+        <where>
+            t.is_del=0 and t.name is not null and t.id_card is not null and t.phone is not null
+            <if test="commonPage.userId !=null">
+                and t.user_id = #{commonPage.userId}
+            </if>
+            <if test="commonPage.keyword !=null and commonPage.keyword!=''">
+                and (t.name like concat('%',#{commonPage.keyword},'%') or t.phone like
+                concat('%',#{commonPage.keyword},'%') or t.id_card like concat('%',#{commonPage.keyword},'%'))
+            </if>
+            <if test="commonPage.startTime !=null and commonPage.startTime !=''">
+                and t.create_time between #{commonPage.startTime} and concat(#{commonPage.stopTime},' 23:59:59')
+            </if>
+            <if test="commonPage.isAddress !=null">
+                <if test="commonPage.isAddress == 0">
+                    and (local_city is null OR LENGTH(TRIM(local_city)) = 0)
+                </if>
+                <if test="commonPage.isAddress == 1">
+                    and local_city is not null AND LENGTH(TRIM(local_city)) > 0
+                </if>
+            </if>
+            <if test="commonPage.departureCity !=null and commonPage.departureCity !=''">
+                and departure_city like concat('%',#{commonPage.departureCity},'%')
+            </if>
+            <if test="commonPage.localCity !=null and commonPage.localCity !='' and commonPage.localCity !='panzhihua'">
+                and local_city like concat('%',#{commonPage.localCity},'%')
+            </if>
+            <if test="commonPage.colorMark !=null and commonPage.colorMark !=''">
+                and color_mark like concat('%',#{commonPage.colorMark},'%')
+            </if>
+            <if test="commonPage.travelCard !=null and commonPage.travelCard !=''">
+                and travel_card like concat('%',#{commonPage.travelCard},'%')
+            </if>
+        </where>
+        order by t.create_time desc
+    </select>
+
+    <select id="fiveCount" resultType="com.panzhihua.common.model.vos.community.reserve.FiveCount">
+        select (select count(*) from com_act_acid_record where is_del=0 <if test="localCity!=null and localCity!=''">and
+        local_city like concat('%',#{localCity},'%')</if>) allCount,
+        (select count(*) from com_act_acid_record where danger_area = '是' and is_del=0<if
+            test="localCity!=null and localCity!=''">and local_city like concat('%',#{localCity},'%')</if>) dangerCount,
+        (select count(*) from com_act_acid_record where color_mark = '绿码' and is_del=0 <if
+            test="localCity!=null and localCity!=''">and local_city like concat('%',#{localCity},'%')</if>) greenMark,
+        (select count(*) from com_act_acid_record where color_mark = '红码' and is_del=0<if
+            test="localCity!=null and localCity!=''">and local_city like concat('%',#{localCity},'%')</if>) redMark,
+        (select count(*) from com_act_acid_record where color_mark = '黄码' and is_del=0<if
+            test="localCity!=null and localCity!=''">and local_city like concat('%',#{localCity},'%')</if>) yellowMark,
+        (select count(*) from com_act_acid_record where travel_card = '是' and is_del=0<if
+            test="localCity!=null and localCity!=''">and local_city like concat('%',#{localCity},'%')</if>) travelCount
+    </select>
+
+    <select id="areaStatics" resultType="com.panzhihua.common.model.vos.community.acid.ComAcidStaticVO">
+        select (select count(*) from com_act_acid_record where is_del=0
+        <if
+                test="localCity!=null and localCity!='' and localCity!='攀枝花市'">and local_city like
+            concat('%',#{localCity},'%')
+        </if>
+        <if test="date!=null and date!=''">and create_time between concat(#{date},' 00:00:00') and concat(#{date},'
+            23:23:59')</if>) allCount,
+        (select count(*) from com_act_acid_record where danger_area = '是' and is_del=0
+        <if
+                test="localCity!=null and localCity!='' and localCity!='攀枝花市'">and local_city like
+            concat('%',#{localCity},'%')
+        </if>
+        <if test="date!=null and date!=''">and create_time between concat(#{date},' 00:00:00') and concat(#{date},'
+            23:23:59')</if>) dangerCount,
+        (select count(*) from com_act_acid_record where color_mark = '绿码' and is_del=0
+        <if test="localCity!=null and localCity!='' and localCity!='攀枝花市'">and local_city like
+            concat('%',#{localCity},'%')
+        </if>
+        <if test="date!=null and date!=''">and create_time between concat(#{date},' 00:00:00') and concat(#{date},'
+            23:23:59')</if>) greenMark,
+        (select count(*) from com_act_acid_record where color_mark = '红码' and is_del=0
+        <if test="localCity!=null and localCity!='' and localCity!='攀枝花市'">and local_city like
+            concat('%',#{localCity},'%')
+        </if>
+        <if test="date!=null and date!=''">and create_time between concat(#{date},' 00:00:00') and concat(#{date},'
+            23:23:59')</if>) redMark,
+        (select count(*) from com_act_acid_record where color_mark = '黄码' and is_del=0
+        <if test="localCity!=null and localCity!='' and localCity!='攀枝花市'">and local_city like
+            concat('%',#{localCity},'%')
+        </if>
+        <if test="date!=null and date!=''">and create_time between concat(#{date},' 00:00:00') and concat(#{date},'
+            23:23:59')</if>) yellowMark,
+        (select count(*) from com_act_acid_record where travel_card = '是' and is_del=0
+        <if test="localCity!=null and localCity!='' and localCity!='攀枝花市'">and local_city like
+            concat('%',#{localCity},'%')
+        </if>
+        <if test="date!=null and date!=''">and create_time between concat(#{date},' 00:00:00') and concat(#{date},'
+            23:23:59')</if>) travelCount
+    </select>
+
+    <select id="countryStatics" resultType="Integer">
+        select count(*) from com_act_acid_record where is_del=0 and departure_city like concat('%',#{departureCity},'%')
+        <if
+                test="date!=null and date!=''">and create_time between concat(#{date},' 00:00:00') and concat(#{date},'
+            23:23:59')
+        </if>
+        <if test="localCity!=null and localCity!='' and localCity!='攀枝花市'">and local_city like
+            concat('%',#{localCity},'%')
+        </if>
+    </select>
+
+    <select id="fiveCountPlus" resultType="com.panzhihua.common.model.vos.community.reserve.FiveCount">
+        select (select count(*) from com_act_acid_record where 1=1 and is_del=0
+        <if test="type == 1">
+            and local_city like
+            concat('%','社区')
+        </if>
+        <if test="type == 2">
+            and local_city like
+            concat('%','村')
+        </if>
+        <if test="date!=null and date!=''">and
+            create_time between concat(#{date},' 00:00:00') and concat(#{date},' 23:23:59')
+        </if>
+        <if test="localCity!=null and localCity!='' and localCity !='panzhihua'">and local_city like
+            concat('%',#{localCity},'%')
+            <if test="type == 1">
+                and local_city like
+                concat('%','社区')
+            </if>
+            <if test="type == 2">
+                and local_city like
+                concat('%','村')
+            </if></if>) allCount,
+        (select count(*) from com_act_acid_record where danger_area = '是' and is_del=0
+        <if test="date!=null and date!=''">and create_time between concat(#{date},' 00:00:00') and concat(#{date},'
+            23:23:59')
+        </if>
+        <if test="type == 1">
+            and local_city like
+            concat('%','社区')
+        </if>
+        <if test="type == 2">
+            and local_city like
+            concat('%','村')
+        </if>
+        <if test="localCity!=null and localCity!='' and localCity !='panzhihua'">and local_city like
+            concat('%',#{localCity},'%')
+            </if>) dangerCount,
+        (select count(*) from com_act_acid_record where color_mark = '绿码' and is_del=0
+        <if test="date!=null and date!=''">and create_time between concat(#{date},' 00:00:00') and concat(#{date},'
+            23:23:59')
+        </if>
+        <if test="localCity!=null and localCity!='' and localCity !='panzhihua'">and local_city like
+            concat('%',#{localCity},'%')</if>
+        <if test="type == 1">
+            and local_city like
+            concat('%','社区')
+        </if>
+        <if test="type == 2">
+            and local_city like
+            concat('%','村')
+        </if>) greenMark,
+        (select count(*) from com_act_acid_record where color_mark = '红码' and is_del=0
+        <if test="date!=null and date!=''">and create_time between concat(#{date},' 00:00:00') and concat(#{date},'
+            23:23:59')
+        </if>
+        <if test="type == 1">
+            and local_city like
+            concat('%','社区')
+        </if>
+        <if test="type == 2">
+            and local_city like
+            concat('%','村')
+        </if>
+        <if test="localCity!=null and localCity!='' and localCity !='panzhihua'">and local_city like
+            concat('%',#{localCity},'%')
+            </if>) redMark,
+        (select count(*) from com_act_acid_record where color_mark = '黄码' and is_del=0
+        <if test="type == 1">
+            and local_city like
+            concat('%','社区')
+        </if>
+        <if test="type == 2">
+            and local_city like
+            concat('%','村')
+        </if>
+        <if test="date!=null and date!=''">and create_time between concat(#{date},' 00:00:00') and concat(#{date},'
+            23:23:59')
+        </if>
+        <if test="localCity!=null and localCity!='' and localCity !='panzhihua'">and local_city like
+            concat('%',#{localCity},'%')
+        </if>) yellowMark,
+        (select count(*) from com_act_acid_record where travel_card = '是' and is_del=0
+        <if test="type == 1">
+            and local_city like
+            concat('%','社区')
+        </if>
+        <if test="type == 2">
+            and local_city like
+            concat('%','村')
+        </if>
+        <if test="date!=null and date!=''">and create_time between concat(#{date},' 00:00:00') and concat(#{date},'
+            23:23:59')
+        </if>
+        <if test="localCity!=null and localCity!='' and localCity !='panzhihua'">and local_city like
+            concat('%',#{localCity},'%')
+           </if>) travelCount,
+        (select count(*) from com_act_acid_record where outside_city = '是' and is_del=0
+        <if test="type == 1">
+            and local_city like
+            concat('%','社区')
+        </if>
+        <if test="type == 2">
+            and local_city like
+            concat('%','村')
+        </if>
+        <if test="date!=null and date!=''">and create_time between concat(#{date},' 00:00:00') and concat(#{date},'
+            23:23:59')
+        </if>
+        <if test="localCity!=null and localCity!='' and localCity !='panzhihua'">and local_city like
+            concat('%',#{localCity},'%')
+           </if>) outsideCount
+    </select>
+
+    <select id="pushStatics" resultType="com.panzhihua.common.model.vos.community.reserve.FiveCount">
+        select (select count(*) from com_act_acid_record where 1=1 and is_del=0
+        <if test="date!=null and date!=''">and
+            create_time between concat(#{date},' 00:00:00') and concat(#{date},' 23:23:59')
+        </if>
+        <if test="localCity!=null and localCity!='' and localCity !='panzhihua'">and local_city like
+            concat('%',#{localCity},'%')</if>) allCount,
+        (select count(*) from com_act_acid_danger_member t LEFT JOIN com_act_acid_danger_member t1 on t.record_id =
+        t1.id where 1=1 and t.is_del=0
+        <if test="date!=null and date!=''">and t.create_time between concat(#{date},'
+            00:00:00') and concat(#{date},' 23:23:59')
+        </if>
+        <if test="localCity!=null and localCity!='' and localCity !='panzhihua'">and t1.local_city like
+            concat('%',#{localCity},'%')</if>) dangerCount
+    </select>
+
+    <select id="selectLastNext" resultType="com.panzhihua.common.model.vos.community.acid.ComActAcidRecordVO">
+        select(select min(id) from com_act_acid_record where id > #{id} and check_status = 0 and is_del =0 <if test="localCity!=null and localCity!='' and localCity !='panzhihua'">and local_city like
+        concat('%',#{localCity},'%')</if>)            last_id,
+              (select max(id) as next_id from com_act_acid_record where #{id} > id and check_status = 0 and is_del =0 <if test="localCity!=null and localCity!='' and localCity !='panzhihua'">and local_city like
+        concat('%',#{localCity},'%')</if>) next_id
+    </select>
+
+    <select id="selectAcidCount" resultType="com.panzhihua.common.model.vos.community.acid.ComActAcidChartsVO">
+        select count(*) as numOne from com_act_acid_record where 1=1 and is_del=0
+        <if test="date!=null and date!=''">and
+            create_time between concat(#{date},' 00:00:00') and concat(#{date},' 23:23:59')
+        </if>
+        <if test="localCity!=null and localCity!='' and localCity !='panzhihua'">and local_city like
+            concat('%',#{localCity},'%')
+        </if>
+    </select>
+
+    <select id="selectDangerCount" resultType="com.panzhihua.common.model.vos.community.acid.ComActAcidChartsVO">
+        select (select count(*) as numOne from com_act_acid_danger_member where type = 1
+        <if test="date!=null and date!=''">
+            and create_time between concat(#{date},' 00:00:00') and concat(#{date},' 23:23:59')
+        </if>
+        <if test="localCity!=null and localCity!='' and localCity !='panzhihua'">and relation_name like
+            concat('%',#{localCity},'%')</if>) numOne,
+        (select count(*) as numTwo from com_act_acid_danger_member where type = 2
+        <if test="date!=null and date!=''">and
+            create_time between concat(#{date},' 00:00:00') and concat(#{date},' 23:23:59')
+        </if>
+        <if test="localCity!=null and localCity!='' and localCity !='panzhihua'">and relation_name like
+            concat('%',#{localCity},'%')</if>) numTwo
+    </select>
+
+    <select id="selectCheck" resultType="com.panzhihua.common.model.vos.community.acid.ComActAcidChartsVO">
+        select (select count(id) from com_act_acid_danger_member where type=1
+        <if test="date!=null and date!=''">and
+            create_time between concat(#{date},' 00:00:00') and concat(#{date},' 23:23:59')
+        </if>
+        <if test="localCity!=null and localCity!='' and localCity !='panzhihua'">and relation_name like
+            concat('%',#{localCity},'%')</if>) numTwo,count(id) numOne,
+        case
+        WHEN status = 1 THEN "集中隔离"
+        WHEN status = 2 THEN "居家隔离"
+        WHEN status = 3 THEN "健康监测"
+        WHEN status = 4 THEN "失联或尚需追踪"
+        WHEN status = 5 THEN "排除风险"
+        WHEN status = 6 THEN "暂未管控" end name
+        from com_act_acid_danger_member where type=1
+        <if test="date!=null and date!=''">and
+            create_time between concat(#{date},' 00:00:00') and concat(#{date},' 23:23:59')
+        </if>
+        <if test="localCity!=null and localCity!='' and localCity !='panzhihua'">and relation_name like
+            concat('%',#{localCity},'%')
+        </if>
+        GROUP BY status
+    </select>
+
+    <select id="selectColorMarkGroup"
+            resultType="com.panzhihua.common.model.vos.community.acid.ComActAcidColorChartsVO">
+        SELECT count(1) count_num,color_mark FROM `com_act_acid_record` GROUP BY color_mark
+    </select>
+    <select id="selectColorMarkGroupByMonth"
+            resultType="com.panzhihua.common.model.vos.community.acid.ComActAcidColorChartsVO">
+        SELECT COUNT(1) count_num,date_format(create_time,'%Y-%m')   as count_name,color_mark FROM `com_act_acid_record`
+        WHERE date_format(create_time,'%Y-%m') >= date_format(date_sub(now(), INTERVAL 4 MONTH),'%Y-%m') GROUP BY  count_name,color_mark
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActAcidUpdateRecordMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActAcidUpdateRecordMapper.xml
new file mode 100644
index 0000000..2fd36ad
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActAcidUpdateRecordMapper.xml
@@ -0,0 +1,17 @@
+<?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.ComActAcidUpdateRecordDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComActAcidUpdateRecord"
+               id="ComActAcidUpdateRecordBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="recordId" column="record_id"/>
+        <result property="userId" column="user_id"/>
+        <result property="createTime" column="create_time"/>
+    </resultMap>
+
+
+    <select id="selectList" resultType="com.panzhihua.common.model.vos.community.acid.ComActAcidUpdateRecordVO">
+            select t.create_time,t1.phone,t1.name from com_act_acid_update_record t left join sys_user t1 on t.user_id = t1.user_id where t.record_id = #{id} order by t.create_time desc
+    </select>
+</mapper>
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
new file mode 100644
index 0000000..4533218
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActEvaluateMapper.xml
@@ -0,0 +1,131 @@
+<?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.ComActActEvaluateDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActActEvaluateDO">
+                <id column="id" property="id" />
+                <result column="activity_id" property="activityId" />
+                <result column="user_id" property="userId" />
+                <result column="create_at" property="createAt" />
+                <result column="sign_identity" property="signIdentity" />
+                <result column="star_level" property="starLevel" />
+                <result column="evaluate_content" property="evaluateContent" />
+                <result column="photo" property="photo" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, activity_id, user_id, create_at, sign_identity, star_level, evaluate_content, photo
+    </sql>
+
+    <select id="pageActivityEvaluates" resultType="com.panzhihua.common.model.vos.community.ComActActEvaluateVO">
+        SELECT
+            caae.id,
+            caae.activity_id,
+            caae.create_at,
+            caae.photo,
+            caae.star_level,
+            caae.evaluate_content,
+            su.user_id,
+            su.`name`,
+            su.nick_name,
+            su.phone,
+            su.image_url,
+            su.tags,
+            caae.sign_identity AS identity
+
+        FROM
+            com_act_act_evaluate caae
+            LEFT JOIN sys_user su ON caae.user_id = su.user_id
+            LEFT JOIN com_act_activity t on caae.activity_id = t.id
+        where caae.activity_id = #{comActActEvaluateVO.activityId}
+        <if test="comActActEvaluateVO.phone != null and comActActEvaluateVO.phone !=''">
+            AND su.phone = #{comActActEvaluateVO.phone}
+        </if>
+        <if test="comActActEvaluateVO.name != null and comActActEvaluateVO.name !=''">
+            AND su.`name` = #{comActActEvaluateVO.name}
+        </if>
+        <if test="comActActEvaluateVO.starLevel != null and comActActEvaluateVO.starLevel != 0">
+            AND caae.star_level = #{comActActEvaluateVO.starLevel}
+        </if>
+        <if test="comActActEvaluateVO.createAt != null">
+            AND caae.create_at = #{comActActEvaluateVO.createAt}
+        </if>
+        <if test="comActActEvaluateVO.startTime != null">
+            AND caae.create_at >= #{comActActEvaluateVO.startTime}
+        </if>
+        <if test="comActActEvaluateVO.endTime != null">
+            AND  #{comActActEvaluateVO.endTime} >= caae.create_at
+        </if>
+        order by caae.create_at desc
+    </select>
+
+    <select id="getEvaluateLists" resultType="com.panzhihua.common.model.vos.community.ComActActEvaluateExcelVO">
+        SELECT
+        caae.create_at,
+        CASE
+        WHEN caae.star_level = 1 THEN
+        '一星'
+        WHEN caae.star_level = 2 THEN
+        '二星'
+        WHEN caae.star_level = 3 THEN
+        '三星'
+        WHEN caae.star_level = 4 THEN
+        '四星'
+        WHEN caae.star_level = 5 THEN
+        '五星' ELSE '未评价'
+        END `star_level`,
+        caae.evaluate_content,
+        su.`name`,
+        su.phone,
+        caae.sign_identity AS identity
+
+        FROM
+        com_act_act_evaluate caae
+        LEFT JOIN sys_user su ON caae.user_id = su.user_id
+        left join com_act_activity t on caae.activity_id = t.id
+        where caae.activity_id = #{comActActEvaluateVO.activityId}
+        <if test="comActActEvaluateVO.phone != null and comActActEvaluateVO.phone !=''">
+            AND su.phone = #{comActActEvaluateVO.phone}
+        </if>
+        <if test="comActActEvaluateVO.name != null and comActActEvaluateVO.name !=''">
+            AND su.`name` = #{comActActEvaluateVO.name}
+        </if>
+        <if test="comActActEvaluateVO.starLevel != null and comActActEvaluateVO.starLevel != 0">
+            AND caae.star_level = #{comActActEvaluateVO.starLevel}
+        </if>
+        <if test="comActActEvaluateVO.createAt != null">
+            AND caae.create_at = #{comActActEvaluateVO.createAt}
+        </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>
+    <select id="selectEvaluateList" 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
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActPictureMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActPictureMapper.xml
new file mode 100644
index 0000000..d37c9a2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActPictureMapper.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_community.dao.ComActActPictureDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActActPictureDO">
+                <id column="id" property="id" />
+                <result column="activity_id" property="activityId" />
+                <result column="user_id" property="userId" />
+                <result column="create_at" property="createAt" />
+                <result column="upload_picture" property="uploadPicture" />
+                <result column="picture_name" property="pictureName" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, activity_id, user_id, create_at, upload_picture, picture_name
+    </sql>
+
+</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
new file mode 100644
index 0000000..157a904
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActRegistMapper.xml
@@ -0,0 +1,205 @@
+<?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.ComActActRegistDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActActRegistDO">
+                <id column="id" property="id" />
+                <result column="activity_id" property="activityId" />
+                <result column="user_id" property="userId" />
+                <result column="create_at" property="createAt" />
+                <result column="sign_identity" property="signIdentity" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, activity_id, user_id, create_at, sign_identity
+    </sql>
+
+    <select id="pageActivityRegists" resultType="com.panzhihua.common.model.vos.community.ComActActRegistVO">
+        SELECT
+        caar.id,
+        caar.activity_id,
+        caar.start_time,
+        caar.end_time,
+        caar.create_at,
+        caar.position,
+        caar.times,
+        caar.award,
+        su.user_id,
+        su.`name`,
+        su.nick_name,
+        su.phone,
+        su.image_url,
+        su.tags,
+        caar.sign_identity AS identity,
+        t.duration
+
+        FROM
+        com_act_act_regist caar
+        LEFT JOIN sys_user su ON caar.user_id = su.user_id
+        LEFT JOIN com_act_activity t on caar.activity_id = t.id
+        where caar.activity_id = #{comActActRegistVO.activityId}
+        <if test="comActActRegistVO.phone != null and comActActRegistVO.phone !=''">
+            AND su.phone = #{comActActRegistVO.phone}
+        </if>
+        <if test="comActActRegistVO.name != null and comActActRegistVO.name !=''">
+            AND su.`name` = #{comActActRegistVO.name}
+        </if>
+        <if test="comActActRegistVO.tags != null and comActActRegistVO.tags !=''">
+            AND su.tags like concat ('%', #{comActActRegistVO.tags}, '%')
+        </if>
+        <if test="comActActRegistVO.createAt != null">
+            AND caar.create_at = #{comActActRegistVO.createAt}
+        </if>
+        <if test="comActActRegistVO.startTime != null">
+            AND caar.create_at &gt;= #{comActActRegistVO.startTime}
+        </if>
+        <if test="comActActRegistVO.endTime != null">
+            AND caar.create_at &lt;= #{comActActRegistVO.endTime}
+        </if>
+        <if test="comActActRegistVO.type != null">
+            AND caar.type = #{comActActRegistVO.type}
+        </if>
+        order by caar.create_at desc
+    </select>
+
+    <select id="getRegistLists" resultType="com.panzhihua.common.model.vos.community.ComActActRegistExcelVO">
+        SELECT
+        caar.create_at,
+        caar.start_time,
+        caar.end_time,
+        caar.position,
+        caar.times,
+        caar.award,
+        su.`name`,
+        su.phone,
+        su.tags,
+        caar.sign_identity AS identity
+        FROM
+        com_act_act_regist caar
+        LEFT JOIN sys_user su ON caar.user_id = su.user_id
+        left join com_act_activity t on caar.activity_id = t.id
+        where caar.activity_id = #{comActActRegistVO.activityId}
+        <if test="comActActRegistVO.phone != null and comActActRegistVO.phone !=''">
+            AND su.phone = #{comActActRegistVO.phone}
+        </if>
+        <if test="comActActRegistVO.name != null and comActActRegistVO.name !=''">
+            AND su.`name` = #{comActActRegistVO.name}
+        </if>
+        <if test="comActActRegistVO.tags != null and comActActRegistVO.tags !=''">
+            AND su.tags like ('%', #{comActActRegistVO.tags}, '%')
+        </if>
+        <if test="comActActRegistVO.createAt != null">
+            AND caar.create_at = #{comActActRegistVO.createAt}
+        </if>
+        <if test="comActActRegistVO.type != null">
+            AND caar.type = #{comActActRegistVO.type}
+        </if>
+        order by caar.create_at desc
+    </select>
+
+    <select id="getNoRegistLists" resultType="com.panzhihua.common.model.vos.community.ComActActRegistExcelVO">
+        SELECT
+            caas.create_at,
+            caar.positon,
+            caar.times,
+            caar.award,
+            su.`name`
+            su.phone,
+            su.tags,
+            caas.sign_identity AS identity
+        FROM
+        (SELECT * FROM com_act_act_sign WHERE `status` = 1) caas
+        LEFT JOIN sys_user su ON caas.user_id = su.user_id
+        WHERE NOT EXISTS ( SELECT 1 FROM com_act_act_regist caar WHERE caas.user_id = caar.user_id )
+        AND caas.activity_id = #{comActActRegistVO.activityId}
+        <if test="comActActRegistVO.phone != null and comActActRegistVO.phone !=''">
+            AND su.phone = #{comActActRegistVO.phone}
+        </if>
+        <if test="comActActRegistVO.name != null and comActActRegistVO.name !=''">
+            AND su.`name` = #{comActActRegistVO.name}
+        </if>
+        <if test="comActActRegistVO.tags != null and comActActRegistVO.tags !=''">
+            AND su.tags like ('%', #{comActActRegistVO.tags}, '%')
+        </if>
+        <if test="comActActRegistVO.createAt != null">
+            AND caar.create_at = #{comActActRegistVO.createAt}
+        </if>
+        <if test="comActActRegistVO.type != null">
+            AND caar.type = #{comActActRegistVO.type}
+        </if>
+    </select>
+    <select id="listRegistRecord" resultType="com.panzhihua.common.model.vos.community.ComActActRegistVO">
+        SELECT
+            caar.id,
+            caar.activity_id,
+            caar.create_at,
+            caar.position,
+            caar.times,
+            caar.award,
+            su.user_id,
+            su.`name`,
+            su.nick_name,
+            su.phone,
+            su.image_url,
+            su.tags,
+            caar.sign_identity,
+            t.duration,
+            t.status,
+            caar.start_time,
+            caar.end_time
+
+        FROM
+            com_act_act_regist caar
+            LEFT JOIN sys_user su ON caar.user_id = su.user_id
+            LEFT JOIN com_act_activity t on caar.activity_id = t.id
+        WHERE caar.activity_id = #{id} AND caar.user_id = #{userId} ORDER BY caar.id DESC
+    </select>
+    <select id="selectTotalAwardWithRegist" resultType="java.lang.Integer">
+        SELECT SUM(award) FROM com_act_act_regist WHERE activity_id = #{activityId} AND user_id = #{userId} AND `type` = 1
+    </select>
+
+
+
+
+    <select id="getDetails" resultType="com.panzhihua.service_community.entity.JinhuiCoinGeneralTable">
+        select
+            id,
+            user_id,
+            gold_coin,
+            creation_time,
+            update_time,
+            community_id
+        from jinhui_coin_general_table
+        where
+            user_id=#{userId}
+    </select>
+
+
+
+    <select id="getNotTimeActivityList" resultType="String">
+        select activity_id from com_act_act_regist where end_time is null group by activity_id
+    </select>
+
+
+    <!--  根据活动id获取没有签退的人员  -->
+    <select id="getNotTimeUser" resultType="com.panzhihua.common.model.vos.community.ComActActRegistVO">
+        select id,start_time from com_act_act_regist where end_time is null and activity_id =#{activityId}
+    </select>
+
+
+    <select id="getActivityEndTime" resultType="com.panzhihua.service_community.model.dos.ComActActivityDO">
+        select id,end_at from com_act_activity where id=#{activityId}
+    </select>
+
+
+    <update id="updateEndTime">
+        update com_act_act_regist
+        set end_time=#{data}
+        where id = #{id}
+    </update>
+
+
+
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActSignMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActSignMapper.xml
new file mode 100644
index 0000000..e6ca328
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActSignMapper.xml
@@ -0,0 +1,214 @@
+<?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.ComActActSignDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActActSignDO">
+                <id column="id" property="id" />
+                <result column="activity_id" property="activityId" />
+                <result column="user_id" property="userId" />
+                <result column="create_at" property="createAt" />
+                <result column="sign_identity" property="signIdentity" />
+                <result column="status" property="status" />
+                <result column="reason" property="reason" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, activity_id, user_id, create_at, sign_identity
+    </sql>
+
+    <select id="getSignLists" resultType="com.panzhihua.common.model.vos.community.ComActActSignExcelVO">
+        SELECT
+        caas.create_at,
+        caas.times,
+        CASE
+        WHEN caas.status = 1 THEN
+        '已报名' ELSE '已取消'
+        END status,
+        caas.reason,
+        IF(r.times IS NULL, 0, r.award * r.times) AS award,
+        t.limit,
+        su.`name`,
+        su.phone,
+        su.tags,
+        caas.sign_identity AS identity
+
+        FROM
+        com_act_act_sign caas
+        LEFT JOIN sys_user su ON caas.user_id = su.user_id
+        left join com_act_activity t on caas.activity_id = t.id
+        LEFT JOIN (
+            SELECT * FROM (
+                SELECT * FROM com_act_act_regist
+                WHERE activity_id = #{activitySignVO.activityId}
+                ORDER BY id DESC LIMIT 1000000
+            ) temp GROUP BY activity_id, user_id
+        ) r ON caas.activity_id = r.activity_id AND caas.user_id = r.user_id
+        where caas.activity_id = #{activitySignVO.activityId}
+        <if test="activitySignVO.phone != null and activitySignVO.phone !=''">
+            AND su.phone = #{activitySignVO.phone}
+        </if>
+        <if test='activitySignVO.status != null'>
+            AND caas.status = #{activitySignVO.status}
+        </if>
+        <if test="activitySignVO.name != null and activitySignVO.name !=''">
+            AND su.`name` = #{activitySignVO.name}
+        </if>
+        <if test="activitySignVO.createAt != null and activitySignVO.createAt !=''">
+            AND caas.create_at = #{activitySignVO.createAt}
+        </if>
+        <if test="activitySignVO.tags != null and activitySignVO.tags !=''">
+            AND su.tags like concat('%', #{activitySignVO.tags}, '%')
+        </if>
+        order by caas.create_at desc
+    </select>
+
+    <select id="selectNeedEvaluateSignRecords" resultMap="BaseResultMap">
+        SELECT s.id,s.activity_id,s.user_id,s.create_at,s.sign_identity
+        FROM `com_act_act_sign` s
+        LEFT JOIN `com_act_act_evaluate` e
+        ON s.activity_id=e.activity_id AND s.user_id=e.user_id
+        WHERE s.activity_id IN
+        <foreach collection="activityIds" item="id" index="index" open="(" close=")" separator=",">
+        #{id}
+        </foreach> AND e.id IS NULL
+    </select>
+    <select id="listActivitySign" resultType="com.panzhihua.common.model.vos.community.ActivitySignVO">
+        SELECT u.user_id id, u.image_url, u.name, u.nick_name,
+        a.sign_identity AS identity,
+            u.phone, u.tags, a.create_at,  a.sign_identity, a.status , a.times,
+            a.reason, IF(r.times IS NULL, 0, r.award * r.times) AS award, t.limit, a.is_invite
+        FROM com_act_act_sign a
+        JOIN sys_user u ON a.user_id = u.user_id
+        left join com_act_activity t on a.activity_id = t.id
+        LEFT JOIN (
+                SELECT * FROM (
+                SELECT * FROM com_act_act_regist
+                WHERE activity_id = #{activitySignVO.activityId}
+                ORDER BY id DESC LIMIT 1000000
+            ) temp GROUP BY activity_id, user_id
+        ) r ON a.activity_id = r.activity_id AND a.user_id = r.user_id
+        WHERE a.activity_id = #{activitySignVO.activityId}
+            <if test='activitySignVO.phone != null and activitySignVO.phone != &quot;&quot;'>
+                AND u.phone = #{activitySignVO.phone}
+            </if>
+            <if test='activitySignVO.status != null'>
+                AND a.status = #{activitySignVO.status}
+            </if>
+            <if test='activitySignVO.tags != null and activitySignVO.tags != &quot;&quot;'>
+                AND u.tags like concat('%',#{activitySignVO.tags},'%')
+            </if>
+            <if test='activitySignVO.name != null and activitySignVO.name != &quot;&quot;'>
+                AND u.`name` = #{activitySignVO.name}
+            </if>
+            <if test='activitySignVO.identity != null'>
+                AND a.sign_identity = #{activitySignVO.identity}
+            </if>
+        order by a.create_at desc
+    </select>
+    <select id="listActivitySignParty" resultType="com.panzhihua.common.model.vos.community.ActivitySignVO">
+        SELECT u.user_id id, u.image_url, cpm.name, u.nick_name,
+        CASE WHEN t.type = 1 and a.is_volunteer = 1 THEN '志愿者' WHEN t.type = 1 and a.is_volunteer = 0 THEN '居民' WHEN t.type=2 THEN '居民' ELSE '党员' END identity,
+        u.phone, u.tags, a.create_at,  a.is_volunteer, a.status , a.times,
+        a.reason, IF(r.times IS NULL, 0, r.award * r.times) AS award, t.limit
+        FROM com_act_act_sign a
+        JOIN sys_user u ON a.user_id = u.user_id
+        JOIN com_pb_member cpm on a.user_id = cpm.user_id
+        left join com_act_activity t on a.activity_id = t.id
+        LEFT JOIN (
+        SELECT * FROM (
+        SELECT * FROM com_act_act_regist
+        WHERE activity_id = #{activitySignVO.activityId}
+        ORDER BY id DESC LIMIT 1000000
+        ) temp GROUP BY activity_id, user_id
+        ) r ON a.activity_id = r.activity_id AND a.user_id = r.user_id
+        WHERE a.activity_id = #{activitySignVO.activityId}
+        <if test='activitySignVO.phone != null and activitySignVO.phone != &quot;&quot;'>
+            AND u.phone = #{activitySignVO.phone}
+        </if>
+        <if test='activitySignVO.status != null'>
+            AND a.status = #{activitySignVO.status}
+        </if>
+        <if test='activitySignVO.tags != null and activitySignVO.tags != &quot;&quot;'>
+            AND u.tags like concat('%',#{activitySignVO.tags},'%')
+        </if>
+        <if test='activitySignVO.name != null and activitySignVO.name != &quot;&quot;'>
+            AND u.`name` = #{activitySignVO.name}
+        </if>
+        <if test='activitySignVO.identity != null and activitySignVO.identity != &quot;&quot; and activitySignVO.identity==1'>
+            AND u.is_partymember = 0 and a.is_volunteer=0
+        </if>
+        <if test='activitySignVO.identity != null and activitySignVO.identity != &quot;&quot; and activitySignVO.identity==2'>
+            AND u.is_partymember = 1
+        </if>
+        <if test='activitySignVO.identity != null and activitySignVO.identity != &quot;&quot; and activitySignVO.identity==3'>
+            AND a.is_volunteer=1
+        </if>
+        <if test='activitySignVO.type != null and activitySignVO.type != 0'>
+            AND a.is_volunteer=#{activitySignVO.type}-1
+        </if>
+        order by a.create_at desc
+    </select>
+    <select id="selectList" resultType="com.panzhihua.common.model.vos.community.ActivitySignVO">
+        SELECT s.id,s.activity_id,s.user_id,s.create_at,s.sign_identity, r.times, r.times * r.award AS award
+        FROM `com_act_act_sign` s
+        LEFT JOIN (
+            SELECT * FROM (
+                SELECT * FROM com_act_act_regist
+                WHERE user_id = #{userId} AND type = 1
+                ORDER BY id DESC LIMIT 1000000
+            ) temp GROUP BY activity_id
+        ) r ON s.activity_id = r.activity_id
+        WHERE s.user_id = #{userId} AND s.status = 1
+    </select>
+    <select id="listSignInRecord" resultType="com.panzhihua.common.model.vos.community.ActivitySignInRecordVO">
+        SELECT s.activity_id, s.create_at, s.user_id, u.name, a.limit, r.type, r.times
+        FROM com_act_act_sign s
+        LEFT JOIN sys_user u ON s.user_id = u.user_id
+        LEFT JOIN com_act_activity a ON s.activity_id = a.id
+        LEFT JOIN (
+            SELECT * FROM (
+                SELECT * FROM com_act_act_regist
+                WHERE activity_id = #{id}
+                ORDER BY id DESC LIMIT 1000000
+            ) temp GROUP BY activity_id, user_id
+        ) r ON s.activity_id = r.activity_id AND s.user_id = r.user_id
+        WHERE s.activity_id = #{id}
+    </select>
+    <select id="listActivitySigns" resultType="com.panzhihua.common.model.vos.community.ActivitySignVO">
+        SELECT
+        u.user_id id,
+        u.image_url,
+        u.NAME,
+        u.nick_name,
+        u.openid,
+        a.sign_identity AS identity,
+        u.phone,
+        u.tags,
+        a.create_at,
+        a.sign_identity,
+        a.STATUS,
+        a.reason,
+        t.limit
+        FROM
+        com_act_act_sign a
+        JOIN sys_user u ON a.user_id = u.user_id
+        LEFT JOIN com_act_activity t ON a.activity_id = t.id
+        WHERE
+        a.activity_id = #{activitySignVO.activityId}
+        <if test='activitySignVO.phone != null and activitySignVO.phone != &quot;&quot;'>
+            AND u.phone = #{activitySignVO.phone}
+        </if>
+        <if test='activitySignVO.status != null'>
+            AND a.status = #{activitySignVO.status}
+        </if>
+        <if test='activitySignVO.name != null and activitySignVO.name != &quot;&quot;'>
+            AND u.`name` = #{activitySignVO.name}
+        </if>
+        <if test='activitySignVO.identity != null'>
+            AND a.sign_identity = #{activitySignVO.identity}
+        </if>
+        ORDER BY a.create_at DESC
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActivityCodeMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActivityCodeMapper.xml
new file mode 100644
index 0000000..0d9049d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActivityCodeMapper.xml
@@ -0,0 +1,13 @@
+<?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.ComActActivityCodeDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComActActivityCode" id="ComActActivityCodeBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="activityId" column="activity_id"/>
+        <result property="code" column="code"/>
+        <result property="status" column="status"/>
+        <result property="createTime" column="create_time"/>
+    </resultMap>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActivityInviteMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActivityInviteMapper.xml
new file mode 100644
index 0000000..4001821
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActivityInviteMapper.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.ComActActivityInviteDAO">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComActActivityInvite" id="ComActActivityInviteMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="activityId" column="activity_id" jdbcType="INTEGER"/>
+        <result property="userId" column="user_id" jdbcType="INTEGER"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="phone" column="phone" jdbcType="VARCHAR"/>
+        <result property="isSign" column="is_sign" jdbcType="VARCHAR"/>
+        <result property="createdBy" column="created_by" jdbcType="INTEGER"/>
+        <result property="createdAt" column="created_at" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+
+    <select id="pageActivityInviteList" resultType="com.panzhihua.common.model.vos.community.ActivityInviteVO">
+        SELECT * FROM com_act_activity_invite WHERE activity_id = #{dto.activityId}
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActivityMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActivityMapper.xml
new file mode 100644
index 0000000..8296b40
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActActivityMapper.xml
@@ -0,0 +1,546 @@
+<?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.ComActActivityDAO">
+
+        <!-- 通用查询映射结果 -->
+        <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActActivityDO">
+                    <id column="id" property="id" />
+                    <result column="activity_name" property="activityName" />
+                    <result column="sponsor_id" property="sponsorId" />
+                    <result column="activity_addr" property="activityAddr" />
+                    <result column="lat" property="lat" />
+                    <result column="lng" property="lng" />
+                    <result column="status" property="status" />
+                    <result column="publish_at" property="publishAt" />
+                    <result column="end_at" property="endAt" />
+                    <result column="begin_at" property="beginAt" />
+                    <result column="sign_up_begin" property="signUpBegin" />
+                    <result column="sign_up_end" property="signUpEnd" />
+                    <result column="aattend_people" property="aattendPeople" />
+                    <result column="volunteer_min" property="volunteerMin" />
+                    <result column="volunteer_max" property="volunteerMax" />
+                    <result column="participant_min" property="participantMin" />
+                    <result column="participant_max" property="participantMax" />
+                    <result column="cover" property="cover" />
+                    <result column="has_prize" property="hasPrize" />
+                    <result column="is_qr_code" property="isQrCode" />
+                    <result column="contact_name" property="contactName" />
+                    <result column="contact_phone" property="contactPhone" />
+                    <result column="is_regist" property="isRegist" />
+                    <result column="is_top" property="isTop" />
+                    <result column="prize_remark" property="prizeRemark" />
+                    <result column="reward_desc" property="rewardDesc" />
+                    <result column="content" property="content" />
+                    <result column="community_id" property="communityId" />
+                    <result column="create_at" property="createAt" />
+                    <result column="cancel_reason" property="cancelReason" />
+                    <result column="range" property="range" />
+                    <result column="have_integral_reward" property="haveIntegralReward" />
+                    <result column="participant_reward_way" property="participantRewardWay" />
+                    <result column="participant_reward_integral" property="participantRewardIntegral" />
+                    <result column="volunteer_reward_way" property="volunteerRewardWay" />
+                    <result column="volunteer_reward_integral" property="volunteerRewardIntegral" />
+                    <result column="pb_reward_way" property="pbRewardWay" />
+                    <result column="pb_reward_integral" property="pbRewardIntegral" />
+                    <result column="limit" property="limit" />
+                    <result column="can_cancel" property="canCancel" />
+                    <result column="cancel_deduct" property="cancelDeduct" />
+                    <result column="activity_type" property="activityType" />
+        </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, activity_name, sponsor_id, activity_addr, lat, lng, status, publish_at, end_at, begin_at, sign_up_begin, sign_up_end, aattend_people, volunteer_min, volunteer_max, participant_min, participant_max, cover, has_prize, is_qr_code, contact_name, contact_phone, is_regist, is_top, prize_remark, reward_desc, content, community_id, create_at, cancel_reason
+    </sql>
+    <insert id="addActivityType">
+        INSERT INTO com_act_activity_type (id,`name`, `type`, community_id)
+        VALUES (#{comActActivityTypeVO.id},#{comActActivityTypeVO.name}, #{comActActivityTypeVO.type}, #{comActActivityTypeVO.communityId})
+    </insert>
+
+    <select id="activityStatistics" resultType="com.panzhihua.common.model.vos.community.ComActActivityStatisticsVO">
+        SELECT IFNULL(volunteer_max,0) + IFNULL(participant_max,0) as signTotal
+             ,(SELECT count(id) FROM com_act_act_sign WHERE activity_id = #{activityId} AND `status` = 1) as reallySignTotal
+             ,(SELECT count(id) FROM com_act_act_sign WHERE activity_id = #{activityId} AND `status` = 1) as registTotal
+             ,(SELECT count(id) FROM com_act_act_regist WHERE activity_id = #{activityId}) as reallyRegistTotal
+             ,((SELECT count(id) FROM com_act_act_sign WHERE activity_id = #{activityId} AND `status` = 1) - (SELECT count(id) FROM com_act_act_regist WHERE activity_id = #{activityId})) as noRegistTotal
+             ,(SELECT count(id) FROM com_act_act_sign WHERE activity_id = #{activityId} AND `status` = 1) as evaluateTotal
+             ,(SELECT count(id) FROM com_act_act_evaluate WHERE activity_id = #{activityId}) as reallyEvaluateTotal
+             ,((SELECT count(id) FROM com_act_act_sign WHERE activity_id = #{activityId} AND `status` = 1) - (SELECT count(id) FROM com_act_act_evaluate WHERE activity_id = #{activityId})) as noEvaluateTotal
+        FROM com_act_activity where id = #{activityId}
+    </select>
+    <select id="getIndexTopActivityList" resultMap="BaseResultMap">
+        SELECT * FROM `com_act_activity`
+        WHERE community_id = ${communityId} and is_top = 1 and sign_up_end &gt;= now()
+    </select>
+    <select id="pageActivityCommunityBack"
+            resultType="com.panzhihua.common.model.vos.community.ComActActivityVO">
+        SELECT  a.id, a.activity_name, u.`name` sponsorName, a.activity_addr, a.participant_max, a.contact_name,
+        count(IF( s.sign_identity = 1, s.id, NULL )) participant_now,
+        count(IF( s.sign_identity = 2, s.id, NULL )) partyMemberNow,
+        count(IF( s.sign_identity = 3, s.id, NULL )) volunteer_now, a.volunteer_max, a.`status`, a.publish_at,
+        a.is_qr_code, a.begin_at, a.end_at, a.sign_up_begin, a.sign_up_end, a.participant_reward_way,
+        a.volunteer_reward_way,a.pb_reward_way,
+        a.activity_type, a.have_integral_reward ,a.participant_reward_integral,a.volunteer_reward_integral,a.pb_reward_integral,
+        a.party_member_max,a.party_member_min,a.cover,a.type,a.duration<if test='comActActivityVO.type != null and comActActivityVO.type == 4'>,so.socialCount</if>
+        FROM  com_act_activity a
+        LEFT JOIN sys_user u ON a.sponsor_id=u.user_id
+        LEFT JOIN (SELECT * FROM com_act_act_sign WHERE `status` = 1) s ON a.id=s.activity_id
+        <if test='comActActivityVO.type != null and comActActivityVO.type == 4'>
+            left join  (select count(t.id) as socialCount,activity_id from   com_act_act_regist  t LEFT JOIN sys_user t1 on  t.user_id = t1.user_id LEFT JOIN com_act_social_worker t2 on t1.phone = t2.telephone where t2.id is not null GROUP BY t.activity_id) so on a.id = so.activity_id
+        </if>
+        WHERE  1=1
+        <if test="comActActivityVO.communityIds != null and comActActivityVO.communityIds.size() != 0">
+            and a.community_id in
+            <foreach collection="comActActivityVO.communityIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test='comActActivityVO.type != null'>
+            AND a.type = #{comActActivityVO.type}
+        </if>
+        <if test='comActActivityVO.activityType != null and comActActivityVO.activityType !=&quot;&quot;'>
+            AND a.activity_type = #{comActActivityVO.activityType}
+        </if>
+        <if test='comActActivityVO.activityName != null and comActActivityVO.activityName !=&quot;&quot;'>
+            AND a.activity_name LIKE concat( #{comActActivityVO.activityName}, '%' )
+        </if>
+        <if test='comActActivityVO.projectId != null'>
+            AND a.project_id = #{comActActivityVO.projectId}
+        </if>
+        <if test='comActActivityVO.status != null and comActActivityVO.status !=0 '>
+            AND a.`status` = #{comActActivityVO.status}
+        </if>
+        <if test='comActActivityVO.beginAt != null '>
+            AND a.begin_at <![CDATA[ >= ]]> #{comActActivityVO.beginAt} AND a.end_at <![CDATA[ <= ]]> #{comActActivityVO.endAt}
+        </if>
+        GROUP BY a.id ORDER BY a.status = 99 desc,a.publish_at DESC
+    </select>
+    <select id="inforActivity" resultType="com.panzhihua.common.model.vos.community.ComActActivityVO">
+        SELECT  u.name sponsorName, ca.name communityName,
+        count(IF( s.sign_identity = 1, s.id, NULL )) participant_now,
+        count(IF( s.sign_identity = 2, s.id, NULL )) partyMemberNow,
+        count(IF( s.sign_identity = 3, s.id, NULL )) volunteer_now, a.*,t1.name as projectName
+        FROM  com_act_activity a
+        left join sys_user u on a.sponsor_id=u.user_id
+        left join (select * from com_act_act_sign where `status` = 1) s on a.id=s.activity_id
+        left join com_act ca on a.community_id=ca.community_id  left join com_act_social_project t1 on a.project_id = t1.id where a.id = #{id} group by a.id
+
+    </select>
+    <select id="listActivityType" resultType="com.panzhihua.common.model.vos.community.ComActActivityTypeVO">
+        SELECT * FROM com_act_activity_type WHERE `type` = #{type} AND community_id = ${communityId} ORDER BY id ASC
+    </select>
+<!--    <select id="selectResidentActHistogramData"-->
+<!--            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">-->
+<!--        SELECT activity_type AS filed, COUNT(id) AS num-->
+<!--        FROM com_act_activity-->
+<!--        WHERE community_id = ${communityId} AND `status` IN(2,3,4,5)-->
+<!--        <if test="isResidentAct">-->
+<!--            AND `type` = 2-->
+<!--        </if>-->
+<!--        <if test="!isResidentAct">-->
+<!--            AND `type` = 1-->
+<!--        </if>-->
+<!--        GROUP BY filed-->
+<!--    </select>-->
+
+    <select id="selectResidentActHistogramData"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT activity_type AS filed, COUNT(id) AS num
+        FROM com_act_activity
+        WHERE community_id = ${communityId} AND `status` IN(2,3,4,5)
+        GROUP BY filed
+    </select>
+
+    <select id="getIndexResidentActBaseData"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT filed, num, IF(total = 0,0,ROUND(num/total,2)) AS percent FROM
+        (SELECT t1.activity_type AS filed, COUNT(t2.id) AS num
+        FROM com_act_activity t1
+        LEFT JOIN (SELECT * FROM com_act_act_sign WHERE `status` = 1) t2 ON t1.id = t2.activity_id
+        WHERE t1.community_id = ${communityId}
+        <if test="isResidentAct">
+            AND t1.`type` = 2
+        </if>
+        <if test="!isResidentAct">
+            AND t1.`type` = 1
+        </if>
+        GROUP BY filed) temp1,
+        (SELECT COUNT(t2.id) AS total
+        FROM com_act_activity t1
+        LEFT JOIN (SELECT * FROM com_act_act_sign WHERE `status` = 1) t2 ON t1.id = t2.activity_id
+        WHERE t1.community_id = ${communityId}
+        <if test="isResidentAct">
+            AND t1.`type` = 2
+        </if>
+        <if test="!isResidentAct">
+            AND t1.`type` = 1
+        </if>
+        ) temp2
+    </select>
+<!--    <select id="getActAddPolylineData" resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">-->
+<!--        SELECT filed, SUM(num) AS num FROM (-->
+<!--            SELECT DATE_FORMAT( create_at, '%Y-%m' ) AS filed, COUNT(id) AS num-->
+<!--            FROM com_act_activity-->
+<!--            WHERE community_id = ${communityId} AND `status` IN(2,3,4,5)-->
+<!--            <if test="isResidentAct">-->
+<!--                AND `type` = 2-->
+<!--            </if>-->
+<!--            <if test="!isResidentAct">-->
+<!--                AND `type` = 1-->
+<!--            </if>-->
+<!--            AND DATE_FORMAT( create_at, '%Y-%m' ) &gt; DATE_FORMAT(date_sub(curdate(), interval 12 month),'%Y-%m') GROUP BY filed-->
+<!--            UNION ALL SELECT * FROM-->
+<!--            (-->
+<!--                SELECT DATE_FORMAT(curdate(),'%Y-%m') AS filed, 0 AS num union-->
+<!--                SELECT DATE_FORMAT(date_sub(curdate(), interval 1 month),'%Y-%m') AS filed, 0 AS num union-->
+<!--                SELECT DATE_FORMAT(date_sub(curdate(), interval 2 month),'%Y-%m') AS filed, 0 AS num union-->
+<!--                SELECT DATE_FORMAT(date_sub(curdate(), interval 3 month),'%Y-%m') AS filed, 0 AS num union-->
+<!--                SELECT DATE_FORMAT(date_sub(curdate(), interval 4 month),'%Y-%m') AS filed, 0 AS num union-->
+<!--                SELECT DATE_FORMAT(date_sub(curdate(), interval 5 month),'%Y-%m') AS filed, 0 AS num union-->
+<!--                SELECT DATE_FORMAT(date_sub(curdate(), interval 6 month),'%Y-%m') AS filed, 0 AS num union-->
+<!--                SELECT DATE_FORMAT(date_sub(curdate(), interval 7 month),'%Y-%m') AS filed, 0 AS num union-->
+<!--                SELECT DATE_FORMAT(date_sub(curdate(), interval 8 month),'%Y-%m') AS filed, 0 AS num union-->
+<!--                SELECT DATE_FORMAT(date_sub(curdate(), interval 9 month),'%Y-%m') AS filed, 0 AS num union-->
+<!--                SELECT DATE_FORMAT(date_sub(curdate(), interval 10 month),'%Y-%m') AS filed, 0 AS num union-->
+<!--                SELECT DATE_FORMAT(date_sub(curdate(), interval 11 month),'%Y-%m') AS filed, 0 AS num-->
+<!--            ) temT-->
+<!--        ) temp GROUP BY filed ORDER BY filed ASC-->
+<!--    </select>-->
+
+
+    <select id="getActAddPolylineData" resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT filed, SUM(num) AS num FROM (
+        SELECT DATE_FORMAT( create_at, '%Y-%m' ) AS filed, COUNT(id) AS num
+        FROM com_act_activity
+        WHERE community_id = ${communityId} AND `status` IN(2,3,4,5)
+        AND DATE_FORMAT( create_at, '%Y-%m' ) &gt; DATE_FORMAT(date_sub(curdate(), interval 12 month),'%Y-%m') GROUP BY filed
+        UNION ALL SELECT * FROM
+        (
+        SELECT DATE_FORMAT(curdate(),'%Y-%m') AS filed, 0 AS num union
+        SELECT DATE_FORMAT(date_sub(curdate(), interval 1 month),'%Y-%m') AS filed, 0 AS num union
+        SELECT DATE_FORMAT(date_sub(curdate(), interval 2 month),'%Y-%m') AS filed, 0 AS num union
+        SELECT DATE_FORMAT(date_sub(curdate(), interval 3 month),'%Y-%m') AS filed, 0 AS num union
+        SELECT DATE_FORMAT(date_sub(curdate(), interval 4 month),'%Y-%m') AS filed, 0 AS num union
+        SELECT DATE_FORMAT(date_sub(curdate(), interval 5 month),'%Y-%m') AS filed, 0 AS num union
+        SELECT DATE_FORMAT(date_sub(curdate(), interval 6 month),'%Y-%m') AS filed, 0 AS num union
+        SELECT DATE_FORMAT(date_sub(curdate(), interval 7 month),'%Y-%m') AS filed, 0 AS num union
+        SELECT DATE_FORMAT(date_sub(curdate(), interval 8 month),'%Y-%m') AS filed, 0 AS num union
+        SELECT DATE_FORMAT(date_sub(curdate(), interval 9 month),'%Y-%m') AS filed, 0 AS num union
+        SELECT DATE_FORMAT(date_sub(curdate(), interval 10 month),'%Y-%m') AS filed, 0 AS num union
+        SELECT DATE_FORMAT(date_sub(curdate(), interval 11 month),'%Y-%m') AS filed, 0 AS num
+        ) temT
+        ) temp GROUP BY filed ORDER BY filed ASC
+    </select>
+
+
+
+    <select id="getActTotalPolylineData"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT COUNT(id) AS num
+        FROM com_act_activity
+        WHERE community_id = ${communityId} AND `status` IN(2,3,4,5)
+        <if test="isResidentAct">
+            AND `type` = 2
+        </if>
+        <if test="!isResidentAct">
+            AND `type` = 1
+        </if>
+        AND DATE_FORMAT( create_at, '%Y-%m' ) &lt;= #{date}
+    </select>
+    <select id="indexActList" resultType="com.panzhihua.common.model.vos.community.ComActActivityVO">
+        SELECT id, `status`, activity_type, activity_name, cover
+        FROM com_act_activity
+        WHERE 1=1
+        <if test="pageBaseDTO.communityIds != null and pageBaseDTO.communityIds.size > 0">
+            AND community_id IN
+            <foreach collection="pageBaseDTO.communityIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="pageBaseDTO.communityIds == null">
+            AND community_id = ${pageBaseDTO.communityId}
+        </if>
+        <if test="isResidentAct">
+            AND `type` = 2
+        </if>
+        <if test="!isResidentAct">
+            AND `type` = 1
+        </if>
+        <if test="pageBaseDTO.param2 != null and pageBaseDTO.param2 != &quot;&quot;">
+            AND activity_type = #{pageBaseDTO.param2}
+        </if>
+        ORDER BY id DESC
+    </select>
+
+    <select id="selectProjectActivity" resultType="com.panzhihua.common.model.vos.community.ComActActivityVO">
+        SELECT  a.id, a.activity_name, u.`name` sponsorName, a.activity_addr, a.participant_max, a.contact_name,
+                count(IF( s.sign_identity = 1, s.id, NULL )) participant_now,
+                count(IF( s.sign_identity = 2, s.id, NULL )) partyMemberNow,
+                count(IF( s.sign_identity = 3, s.id, NULL )) volunteer_now, a.volunteer_max,a.`status`, a.publish_at, a.is_qr_code,
+                a.begin_at, a.end_at, a.sign_up_begin, a.sign_up_end, a.participant_reward_way,
+                a.volunteer_reward_way,a.pb_reward_way, a.activity_type, a.have_integral_reward , a.cover , t1.evaluateLevel
+        FROM  com_act_activity a
+                  LEFT JOIN sys_user u ON a.sponsor_id=u.user_id
+                  LEFT JOIN (SELECT * FROM com_act_act_sign WHERE `status` = 1) s ON a.id=s.activity_id
+                  LEFT JOIN (select AVG(star_level) as evaluateLevel,activity_id from com_act_act_evaluate GROUP BY activity_id) t1 on a.id = t1.activity_id
+        WHERE   is_project=1 order by t1.evaluateLevel desc
+    </select>
+
+    <select id="selectActivityBySocialWorker" resultType="com.panzhihua.common.model.vos.community.ComActActivityVO">
+        select t.* from com_act_activity t left join com_act_act_regist t1 on t.id=t1.activity_id where t1.user_id =
+        (select t1.user_id from com_act_social_worker t LEFT JOIN sys_user t1 on t.telephone = t1.phone where t.id = #{id})
+    </select>
+
+    <select id="getActBelongRegionCode" resultType="java.lang.String">
+        SELECT district_adcode FROM com_mng_struct_area_district WHERE district_adcode = ( SELECT area_code FROM com_street WHERE street_id =( SELECT street_id FROM com_act WHERE community_id = #{communityId} ))
+    </select>
+
+    <select id="selectActivityStatics" resultType="com.panzhihua.common.model.vos.community.PartyActivityStatics">
+        select (select count(*)  from com_act_activity where type = 3
+        <if test="communityIds != null and communityIds.size() != 0">
+            and community_id in
+            <foreach collection="communityIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        ) activityCount,
+        (select count(*)  from com_pb_member where audit_result=1
+            <if test="communityIds != null and communityIds.size() != 0">
+                and community_id in
+                <foreach collection="communityIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+        ) memberCount
+    </select>
+
+    <select id="selectActivityChart" resultType="com.panzhihua.common.model.vos.community.PartyActivityTypeChart">
+        select count(*) as count,activity_type as name from com_act_activity  where type = 3
+        <if test="communityIds != null and communityIds.size() != 0">
+            and community_id in
+            <foreach collection="communityIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        GROUP BY activity_type
+    </select>
+
+    <select id="selectActivityLine" resultType="integer">
+        select count(*) from com_act_activity where type = 3 and publish_at >= DATE_FORMAT(  CONCAT(#{year},'-',#{date},'-00'), '%Y-%m-00 00:00:00') and DATE_FORMAT( LAST_DAY(CONCAT(#{year},'-',#{date},'-00')), '%Y-%m-%d 23:59:59') >=publish_at
+        <if test="communityIds != null and communityIds.size() != 0">
+            and community_id in
+            <foreach collection="communityIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+    </select>
+
+    <select id="partyMemberDetail" resultType="com.panzhihua.common.model.vos.community.PartyMemberDetailVO">
+        select t.activity_name,t.activity_addr,t.begin_at,t1.position,t1.start_time,t1.end_time,t.duration,t.participant_reward_integral,t.volunteer_reward_integral,t.pb_reward_integral from com_act_activity t LEFT JOIN com_act_act_regist t1 on t.id = t1.activity_id
+        where t.type = 3 and t1.user_id = #{commonPage.userId}
+        <if test="commonPage.beginTime !=null">
+            and t.begin_at between #{commonPage.beginTime} and #{commonPage.endTime}
+        </if>
+        order by t.begin_at desc
+    </select>
+
+    <select id="exportPartyMemberDetail" resultType="com.panzhihua.common.model.vos.community.PartyMemberDetailVO">
+        select t.activity_name,t.activity_addr,t.begin_at,t1.position,t1.start_time,t1.end_time,t.duration,t.participant_reward_integral,t.volunteer_reward_integral,t.pb_reward_integral from com_act_activity t LEFT JOIN com_act_act_regist t1 on t.id = t1.activity_id
+        where t.type = 3 and t1.user_id = #{commonPage.userId}
+        <if test="commonPage.beginTime !=null">
+            and t.begin_at between #{commonPage.beginTime} and #{commonPage.endTime}
+        </if>
+        order by t.begin_at desc
+    </select>
+
+    <select id="selectListByRelationId" resultType="com.panzhihua.common.model.vos.community.ComActActivityVO">
+        SELECT  a.id, a.activity_name, u.`name` sponsorName, a.activity_addr, a.participant_max, a.contact_name,
+         a.volunteer_max,
+         a.`status`, a.publish_at,
+        a.is_qr_code, a.begin_at, a.end_at, a.sign_up_begin, a.sign_up_end, a.participant_reward_way,
+        a.volunteer_reward_way,a.pb_reward_way, a.activity_type, a.have_integral_reward ,a.participant_reward_integral,a.volunteer_reward_integral,a.pb_reward_integral,a.party_member_max,a.party_member_min,a.cover,a.type,a.duration
+        FROM  com_act_activity a
+        LEFT JOIN sys_user u ON a.sponsor_id=u.user_id
+        LEFT JOIN com_act_act_regist  s ON a.id=s.activity_id
+        where s.end_time is not null and  a.check_unit_id = #{relationId} and publish_at between concat(#{date},'-01-01 00:00:00') and concat(#{date},'-12-31 23:59:59') group by a.id
+    </select>
+
+    <select id="selectListByCommunityId" resultType="com.panzhihua.common.model.vos.community.ComActActivityVO">
+        SELECT t.* FROM `com_act_activity` t left join com_act_act_regist t1 on t.id = t1.activity_id left join sys_user t2 on t1.user_id = t2.user_id
+        WHERE t1.end_time is not null and  t.community_id = #{communityId} and t.type = 3 and publish_at between concat(#{date},'-01-01 00:00:00') and concat(#{date},'-12-31 23:59:59') group by t.id
+    </select>
+<!--    <select id="pageProjectActivity" resultType="com.panzhihua.common.model.vos.community.ComActActivityVO">-->
+<!--        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.sign_identity = 1, s.id, NULL )) participant_now,-->
+<!--            count(IF( s.sign_identity = 2, s.id, NULL )) partyMemberNow,-->
+<!--            count(IF( s.sign_identity = 3, s.id, NULL )) volunteer_now,-->
+<!--            a.participant_max,-->
+<!--            a.sign_up_begin,-->
+<!--            a.sign_up_end,-->
+<!--            ca.NAME AS communityName,-->
+<!--            a.type,-->
+<!--            a.party_member_max,-->
+<!--            a.topic_id-->
+<!--        FROM-->
+<!--            com_act_activity a-->
+<!--                LEFT JOIN sys_user u ON a.sponsor_id = u.user_id-->
+<!--                LEFT JOIN ( SELECT * FROM com_act_act_sign WHERE `status` = 1 ) s ON a.id = s.activity_id-->
+<!--                LEFT JOIN com_act ca ON a.community_id = ca.community_id-->
+<!--                JOIN (SELECT * FROM com_act_social_project WHERE (street_id = #{comActActivityVO.streetId} OR community_id = #{comActActivityVO.communityId}) AND `status` =3) t ON a.project_id = t.id-->
+<!--        GROUP BY a.id   ORDER BY a.status = 99 desc,a.publish_at DESC-->
+<!--    </select>-->
+
+
+
+    <select id="pageProjectActivity" resultType="com.panzhihua.common.model.vos.community.ComActActivityVO">
+        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.sign_identity = 1, s.id, NULL )) participant_now,
+            count(IF( s.sign_identity = 2, s.id, NULL )) partyMemberNow,
+            count(IF( s.sign_identity = 3, s.id, NULL )) volunteer_now,
+            a.participant_max,
+            a.sign_up_begin,
+            a.sign_up_end,
+            ca.NAME AS communityName,
+            (SELECT responsibility FROM com_act_social_project casp WHERE	a.project_id = casp.id) AS responsibilityName,
+            a.type,
+            a.party_member_max,
+            a.topic_id,
+           a.jinhui_coin_award,
+           a.jinhui_coin_punishment
+        FROM
+            com_act_activity a
+                LEFT JOIN sys_user u ON a.sponsor_id = u.user_id
+                LEFT JOIN ( SELECT * FROM com_act_act_sign WHERE `status` = 1 ) s ON a.id = s.activity_id
+                LEFT JOIN com_act ca ON a.community_id = ca.community_id
+                JOIN (SELECT * FROM com_act_social_project WHERE (street_id = #{comActActivityVO.streetId}
+                OR community_id = #{comActActivityVO.communityId})) t ON a.project_id = t.id
+        <where>
+            <if test="comActActivityVO.aattendPeople != null and comActActivityVO.aattendPeople != ''  ">
+                a.aattend_people = #{comActActivityVO.aattendPeople}
+            </if>
+        </where>
+        GROUP BY a.id   ORDER BY a.status = 99 desc,a.publish_at DESC
+
+    </select>
+
+    <select id="pageActivity" resultType="com.panzhihua.common.model.vos.community.ComActActivityVO">
+        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.sign_identity = 1, s.id, NULL )) participant_now,
+        count(IF( s.sign_identity = 2, s.id, NULL )) partyMemberNow,
+        count(IF( s.sign_identity = 3, s.id, NULL )) volunteer_now,
+        a.participant_max,
+        a.sign_up_begin,
+        a.sign_up_end,
+        ca.NAME AS communityName,
+        a.type,
+        a.party_member_max,
+        a.topic_id,
+        a.jinhui_coin_award,
+        a.jinhui_coin_punishment
+        FROM
+        com_act_activity a
+        LEFT JOIN sys_user u ON a.sponsor_id = u.user_id
+        LEFT JOIN ( SELECT * FROM com_act_act_sign WHERE `status` = 1 ) 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.communityIds != null and comActActivityVO.communityIds.size() != 0">
+            <if test="comActActivityVO.checkUnitId != null">
+                AND (a.community_id in
+                <foreach collection="comActActivityVO.communityIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+                OR a.check_unit_id = #{comActActivityVO.checkUnitId})
+            </if>
+            <if test="comActActivityVO.checkUnitId == null">
+                AND a.community_id in
+                <foreach collection="comActActivityVO.communityIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+                <if test="comActActivityVO.type == null">
+                    AND a.`type` != 5
+                </if>
+            </if>
+        </if>
+        <if test ="comActActivityVO.phone != null and comActActivityVO.phone != &quot;&quot;">
+            AND a.phone = ${comActActivityVO.phone}
+        </if>
+        <if test ="comActActivityVO.areaCode != null">
+            AND ca.area_code = ${comActActivityVO.areaCode}
+        </if>
+        <if test ="comActActivityVO.checkUnitId != null and comActActivityVO.communityId == null">
+            AND a.check_unit_id = #{comActActivityVO.checkUnitId}
+        </if>
+        <if test="comActActivityVO.activityName != null and comActActivityVO.activityName.trim() != &quot;&quot;">
+            AND a.activity_name LIKE concat(#{comActActivityVO.activityName},'%')
+        </if>
+        <if test="comActActivityVO.status != null and comActActivityVO.status != 0 and comActActivityVO.isIng == null">
+            AND a.`status` = #{comActActivityVO.status}
+        </if>
+        <if test="comActActivityVO.status != null and comActActivityVO.status != 0 and comActActivityVO.isIng != null and comActActivityVO.isIng == 1">
+            AND a.`status` IN (3,4)
+        </if>
+        <if test="comActActivityVO.isApplets != null and comActActivityVO.isApplets == 1">
+            AND a.`status` != 1 AND  a.`status` != 6
+        </if>
+        <if test="comActActivityVO.beginAt != null">
+            AND a.begin_at &gt;= #{comActActivityVO.beginAt} AND a.end_at &lt;= #{comActActivityVO.endAt}
+        </if>
+        <if test="comActActivityVO.type != null">
+            AND a.type = #{comActActivityVO.type}
+        </if>
+        <if test="comActActivityVO.aattendPeople != null and comActActivityVO.aattendPeople != ''  ">
+            AND a.aattend_people = #{comActActivityVO.aattendPeople}
+        </if>
+        GROUP BY a.id
+        ORDER BY a.status = 99 DESC,a.publish_at DESC
+    </select>
+
+    <select id="selectOpenIdByActivityId" resultType="String">
+        select distinct openid from com_act_act_sign t LEFT JOIN sys_user t1 on t.user_id = t1.user_id where t.activity_id =#{id} and t.status = 1
+    </select>
+
+
+    <select id="pageActivityBigScreen"
+            resultType="com.panzhihua.common.model.vos.community.ComActActivityBigScreenVO">
+        SELECT a.id,a.cover,a.activity_type,a.activity_name,a.`status`,a.begin_at,a.end_at,a.publish_at,
+        (SELECT count(1) FROM com_act_act_sign s WHERE s.activity_id = a.id) as person_num
+        FROM com_act_activity a
+        WHERE a.type = 1 ORDER BY a.create_at desc
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActAnnouncementMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActAnnouncementMapper.xml
new file mode 100644
index 0000000..93a941b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActAnnouncementMapper.xml
@@ -0,0 +1,34 @@
+<?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.ComActAnnouncementDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComActAnnouncement" id="ComActAnnouncementBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="content" column="content"/>
+        <result property="createTime" column="create_time"/>
+        <result property="userId" column="user_id"/>
+        <result property="columnId" column="column_id"/>
+        <result property="communityId" column="community_id"/>
+    </resultMap>
+
+    <select id="pageList" resultType="com.panzhihua.common.model.vos.community.ComActAnnouncementVO">
+        select t.*,t1.name as username,t2.name as columnName from com_act_announcement t left join sys_user t1 on t.user_id = t1.user_id left join com_act_column t2 on t.column_id = t2.id
+        <where>
+            1=1
+            <if test="commonPage.communityId!=null">
+                and t.community_id = ${commonPage.communityId}
+            </if>
+            <if test="commonPage.paramId!=null">
+                and t.column_id =#{commonPage.paramId}
+            </if>
+            <if test="commonPage.keyword!=null and commonPage.keyword !=''">
+                and t.content like concat('%',#{commonPage.keyword},'%')
+            </if>
+            <if test="commonPage.propertyId!=null and commonPage.propertyId !=''">
+                and t.property_id=#{commonPage.propertyId}
+            </if>
+        </where>
+        order by t.create_time desc
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActColumnMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActColumnMapper.xml
new file mode 100644
index 0000000..c2cf136
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActColumnMapper.xml
@@ -0,0 +1,77 @@
+<?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.ComActColumnDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComActColumn" id="ComActColumnBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="name" column="name"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="status" column="status"/>
+        <result property="type" column="type"/>
+        <result property="description" column="description"/>
+    </resultMap>
+    <select id="pageList" resultType="com.panzhihua.common.model.vos.community.ComActColumnVO">
+        select * from com_act_column
+        <where>
+            1=1
+            <if test="commonPage.type!=null">
+                and type = #{commonPage.type}
+            </if>
+            <if test="commonPage.type != 1">
+                <if test="commonPage.communityId!=null">
+                    and community_id = ${commonPage.communityId}
+                </if>
+                <if test="commonPage.streetId!=null">
+                    and street_id = #{commonPage.streetId}
+                </if>
+            </if>
+            <if test="commonPage.status!=null">
+                and status =#{commonPage.status}
+            </if>
+            <if test="commonPage.keyword!=null and commonPage.keyword!=''">
+                and name like concat('%',#{commonPage.keyword},'%')
+            </if>
+            <if test="commonPage.name!=null and commonPage.name!=''">
+                and name like concat('%',#{commonPage.name},'%')
+            </if>
+            <if test="commonPage.paramId !=null">
+                and parent_id = #{commonPage.paramId}
+            </if>
+        </where>
+        order by create_time desc
+    </select>
+
+    <resultMap id="levelMap" type="com.panzhihua.common.model.vos.community.ComActColumnLevelVO">
+        <result property="id" column="id"/>
+        <result property="name" column="name"/>
+        <collection property="comActColumnVOList" column="id=parent_id" ofType="com.panzhihua.common.model.vos.community.ComActColumnVO" javaType="java.util.ArrayList">
+            <result property="id" column="sid"/>
+            <result property="name" column="sname"/>
+        </collection>
+    </resultMap>
+    <select id="queryLevel" resultMap="levelMap">
+        select t.id,t.name,t1.id as sid,t1.name as sname from com_act_column t left join com_act_column t1 on t.id =t1.parent_id
+        <where>
+            1=1
+            <if test="type !=null ">
+                and t.type =#{type}
+            </if>
+            <if test="type != 4">
+                <if test="communityId !=null ">
+                    and t.community_id =#{communityId}
+                </if>
+                <if test="streetId !=null ">
+                    and t.street_id =#{streetId}
+                </if>
+            </if>
+            <if test="parentId !=null">
+                and t.parent_id=#{parentId}
+            </if>
+        </where>
+        order by t.create_time desc
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActCommitteeMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActCommitteeMapper.xml
new file mode 100644
index 0000000..2c7397b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActCommitteeMapper.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.ComActCommitteeDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComActCommittee" id="ComActCommitteeBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="name" column="name"/>
+        <result property="contactName" column="contact_name"/>
+        <result property="phone" column="phone"/>
+        <result property="areaId" column="area_id"/>
+        <result property="userId" column="user_id"/>
+        <result property="createTime" column="create_time"/>
+        <result property="communityId" column="communityId"/>
+    </resultMap>
+
+    <select id="pageList" resultType="com.panzhihua.common.model.vos.community.ComActCommiteeVO">
+        select t.*,t1.account,t1.password,t2.address as areaName,t3.role_id as roleId from com_act_committee t
+        left join sys_user t1 on t.user_id = t1.user_id
+        left join com_mng_village t2 on t.area_id = t2.village_id
+        left join sys_user_role t3 on t.user_id = t3.user_id
+        <where>
+            1=1
+            <if test="commonPage.areaId!=null and commonPage.areaId !=''">
+                and t.area_id  =#{commonPage.areaId}
+            </if>
+            <if test="commonPage.name!=null and commonPage.name!=''">
+                and t.name like concat(#{commonPage.name},'%')
+            </if>
+            <if test="commonPage.phone!=null and commonPage.phone!=''">
+                and t.phone like concat(#{commonPage.phone},'%')
+            </if>
+            <if test="commonPage.username!=null and commonPage.username!=''">
+                and t.contact_name like concat(#{commonPage.username},'%')
+            </if>
+            <if test="commonPage.paramId!=null">
+                and t.community_id = ${commonPage.paramId}
+            </if>
+        </where>
+        order by t.create_time desc
+    </select>
+    <select id="selectCommitteePartyPercent"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT `name` AS filed, 0 AS num, 0 AS percent
+        FROM com_act_committee
+        WHERE community_id = ${communityId}
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDaoMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDaoMapper.xml
new file mode 100644
index 0000000..e1d0f5f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDaoMapper.xml
@@ -0,0 +1,417 @@
+<?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.ComActDAO">
+
+
+
+
+
+
+
+    <select id="getCommunityListByName" resultType="com.panzhihua.common.model.vos.community.switchs.CommunitySwitchAllAppletsVO">
+        select ca.`name`,ca.street_id,ca.community_id,cs.`name` as streetName
+        from com_act as ca
+        left join com_street as cs on cs.street_id = ca.street_id
+        where ca.state = 0 and ca.name like concat('%',#{name},'%')
+        <if test='appId !=null and appId !=&quot;&quot;'>
+          and cs.app_id = #{appId}
+        </if>
+    </select>
+
+
+
+
+
+
+
+
+
+    <select id="oneTagThreeReal" resultType="com.panzhihua.common.model.vos.area.StreetAndBuildVO">
+        select ca.name name,ca.community_id as communityId,
+               (select
+                     count( cmpct.id )
+                from com_mng_population_community_tags cmpct left join com_mng_population cmp on cmp.id = cmpct.population_id where cmpct.community_id = ca.community_id )peopleNum,
+               (select count(cmv.village_id) from com_mng_village cmv where cmv.community_id = ca.community_id) villageNum,
+               (select count(id) from com_mng_population_house as cmph where cmph.community_id = ca.community_id) buildNum
+        from com_act ca where ca.street_id = #{streetId}
+    </select>
+
+    <select id="getScreenStatics"
+            resultType="com.panzhihua.common.model.vos.community.bigscreen.ScreenStatics">
+        select
+               (select count(user_id) from sys_user t left join com_act t1 on t.community_id = t1.community_id
+                where t.type=1 and t.community_id is not null) user,
+               (select count(id) from com_mng_volunteer_mng t left join com_act t1 on t.community_id = t1.community_id where  t.state = 2)  volunteer,
+               (select count(*) from  com_act_micro_wish AS camw  left join com_act t1 on camw.community_id = t1.community_id
+                  where camw.status = 6 ) microWish,
+               (select (select count(*) from com_act_activity t left join com_act t1 on t.community_id = t1.community_id  where status !=6 and status !=1 )
+               + (select count(id) from com_pb_activity t left join com_act t1 on t.community_id = t1.community_id  where status !=6 and status !=1 )) activity,
+               (select count(*) from com_act_easy_photo t left join com_act t1 on t.community_id = t1.community_id  where status in (1,2,4) and del_tag = 0 ) neighbor,
+               (select count(id) from com_pb_org t left join com_act t1 on t.community_id = t1.community_id where parent_id = 0) partyOrg,
+               (select count(id) from com_pb_member t left join com_act t1 on t.community_id = t1.community_id where audit_result = 1) partyMember,
+               (select count(*) from com_property t left join  com_act t1 on t.community_id = t1.community_id where t.is_red = 1) red,
+               (select count( id ) from com_act_easy_photo t left join com_act t1 on t.community_id = t1.community_id where `status` = 5 and del_tag = 0 ) grid,
+               (select count(*) from com_act_discuss t left join com_act t1 on t.community_id = t1.community_id where t.is_del =2 ) discuss,
+               (select count(*) from new_fight_community_construction t left join com_act t1 on t.construction_community_id = t1.community_id) agreement,
+               (select count(m.id) from com_pb_member m left join com_pb_check_unit as cpcu on m.check_unit_id = cpcu.id where m.audit_result = 1) arrivePartyMember,
+
+			   ( SELECT count(*) from automessage_transaction_event ) as transactionEvent,
+                (SELECT count(*) from com_convenient_merchants as cm INNER JOIN com_act as ca on  ca.community_id = cm.community_id ) as merchantsCount ,
+                (
+                    SELECT count(*) FROM com_convenient_consultation_statistics ccs inner JOIN
+                    ( SELECT cm.id from com_convenient_merchants as cm INNER JOIN com_act as ca on  ca.community_id = cm.community_id
+                        )  as mc on mc.id = ccs.merchant_id
+                ) as consultationStatistics,
+
+                ( SELECT count(*) FROM event_grid_member_relation as mr INNER JOIN com_act as ca  on ca.community_id  = mr.grid_community_id
+                       ) as gridMember,
+                (SELECT Round( (
+                        (select count(*) from com_act_easy_photo as ep INNER JOIN com_act as ca on ca.community_id = ep.community_id WHERE `status` in ('4','5') )
+                                        /
+                        ( select count(*) from com_act_easy_photo as ep INNER JOIN com_act as ca on ca.community_id = ep.community_id )
+                ) * 100 , 2)  )  as easyPhotoPercentage ,
+                (SELECT Round( (
+                    (select count(*) from com_act_micro_wish as ep INNER JOIN com_act as ca on ca.community_id = ep.community_id WHERE `status` in ('6','5') )
+                        /
+                    ( select count(*) from com_act_micro_wish as ep INNER JOIN com_act as ca on ca.community_id = ep.community_id )
+                ) * 100 , 2) ) as microWishPercentage ,
+        (SELECT
+            Round(
+                        (
+                                (  SELECT count(1) FROM (
+                                    SELECT
+                                        count( 1 )
+                                    FROM
+                                        com_act_discuss AS ad
+                                            INNER JOIN com_act AS ca ON ca.community_id = ad.community_id
+                                            INNER JOIN com_act_discuss_option_user AS ou ON ou.discuss_id = ad.id GROUP BY ad.id  ) as ddd
+                                ) / (
+                                    SELECT
+                                        count( 1 )
+                                    FROM
+                                        com_act_discuss AS ad
+                                            INNER JOIN com_act AS ca ON ca.community_id = ad.community_id
+                                )
+                            ) * 100,
+                        2
+                ) )as discussPercentage,
+            ( SELECT count(*) from com_act as ca INNER JOIN com_mng_volunteer_org_team as vm on ca.community_id = vm.community_id
+                where vm.parent_id != '0'
+            )  AS volunteerTeam ,
+            (  SELECT count(*) from com_act as ca INNER JOIN com_mng_volunteer_org_team as vm on ca.community_id = vm.community_id
+                where vm.parent_id != '0'
+             ) as volunteerOrg ,
+            (   SELECT count(1) fROM com_act_discuss AS ad
+                    INNER JOIN com_act AS ca ON ca.community_id = ad.community_id
+                    INNER JOIN com_act_discuss_option_user as ado on ado.discuss_id = ad.id
+                ) as discussCount,
+        (SELECT count(*) from com_act as ca INNER JOIN com_act_questnaire as aq  on ca.community_id = aq.community_id ) as questnaireCount
+
+
+    </select>
+    <select id="getPopulationSpecial"
+            resultType="com.panzhihua.common.model.vos.community.screen.event.EventPopulationSpecialStatisticsVO">
+        SELECT
+        count( cmpct.id ) AS cjTotal,
+        (
+        SELECT
+        count( cmpct1.id )
+        FROM
+        com_mng_population_community_tags AS cmpct1
+        LEFT JOIN com_act AS ca1 ON ca1.community_id = cmpct1.community_id
+        LEFT JOIN com_street AS cs1 ON cs1.street_id = ca1.street_id
+        WHERE
+        cmpct1.label LIKE '%低保户%' and ca1.is_screen_statistics = 1
+        <if test="streetId != null and streetId != 0">
+            and cs1.street_id = #{streetId}
+        </if>
+        ) as dbTotal ,
+        (
+        SELECT
+        count( cmpct3.id )
+        FROM
+        com_mng_population_community_tags AS cmpct3
+        LEFT JOIN com_act AS ca3 ON ca3.community_id = cmpct3.community_id
+        LEFT JOIN com_street AS cs3 ON cs3.street_id = ca3.street_id
+        WHERE
+        cmpct3.label LIKE '%特殊情况(重大病史/孕)%'  and ca3.is_screen_statistics = 1
+        <if test="streetId != null and streetId != 0">
+            and cs3.street_id = #{streetId}
+        </if>
+        ) as tsTotal ,
+        (
+        SELECT
+        count( cmpct4.id )
+        FROM
+        com_mng_population_community_tags AS cmpct4
+        LEFT JOIN com_act AS ca4 ON ca4.community_id = cmpct4.community_id
+        LEFT JOIN com_street AS cs4 ON cs4.street_id = ca4.street_id
+        WHERE
+        cmpct4.label LIKE '%特扶家庭%' and ca4.is_screen_statistics = 1
+        <if test="streetId != null and streetId != 0">
+            and cs4.street_id = #{streetId}
+        </if>
+        ) as tfTotal,
+        (
+        SELECT
+        count( cmpct5.id )
+        FROM
+        com_mng_population_community_tags AS cmpct5
+        LEFT JOIN com_act AS ca5 ON ca5.community_id = cmpct5.community_id
+        LEFT JOIN com_street AS cs5 ON cs5.street_id = ca5.street_id
+        WHERE
+        cmpct5.label LIKE '%退役军人%' and ca5.is_screen_statistics = 1
+        <if test="streetId != null and streetId != 0">
+            and cs5.street_id = #{streetId}
+        </if>
+        ) as tyTotal,
+        (
+        SELECT
+        count( cmpct7.id )
+        FROM
+        com_mng_population_community_tags AS cmpct7
+        LEFT JOIN com_act AS ca7 ON ca7.community_id = cmpct7.community_id
+        LEFT JOIN com_street AS cs7 ON cs7.street_id = ca7.street_id
+        WHERE
+        cmpct7.label LIKE '%吸毒人员%' and ca7.is_screen_statistics = 1
+        <if test="streetId != null and streetId != 0">
+            and cs7.street_id = #{streetId}
+        </if>
+        ) as xdTotal,
+        (
+        SELECT
+        count( cmpct8.id )
+        FROM
+        com_mng_population_community_tags AS cmpct8
+        LEFT JOIN com_act AS ca8 ON ca8.community_id = cmpct8.community_id
+        LEFT JOIN com_street AS cs8 ON cs8.street_id = ca8.street_id
+        WHERE
+        cmpct8.label LIKE '%社区矫正%' and ca8.is_screen_statistics = 1
+        <if test="streetId != null and streetId != 0">
+            and cs8.street_id = #{streetId}
+        </if>
+        ) as jzTotal,
+        (
+        SELECT
+        count( cmpct9.id )
+        FROM
+        com_mng_population_community_tags AS cmpct9
+        LEFT JOIN com_act AS ca9 ON ca9.community_id = cmpct9.community_id
+        LEFT JOIN com_street AS cs9 ON cs9.street_id = ca9.street_id
+        WHERE
+        cmpct9.label LIKE '%邪教人员%' and ca9.is_screen_statistics = 1
+        <if test="streetId != null and streetId != 0">
+            and cs9.street_id = #{streetId}
+        </if>
+        ) as xjTotal,
+        (
+        SELECT
+        count( cmpct10.id )
+        FROM
+        com_mng_population_community_tags AS cmpct10
+        LEFT JOIN com_act AS ca10 ON ca10.community_id = cmpct10.community_id
+        LEFT JOIN com_street AS cs10 ON cs10.street_id = ca10.street_id
+        WHERE
+        cmpct10.label LIKE '%刑满释放%' and ca10.is_screen_statistics = 1
+        <if test="streetId != null and streetId != 0">
+            and cs10.street_id = #{streetId}
+        </if>
+        ) as xsTotal,
+        (
+        SELECT
+        count( cmpct11.id )
+        FROM
+        com_mng_population_community_tags AS cmpct11
+        LEFT JOIN com_act AS ca11 ON ca11.community_id = cmpct11.community_id
+        LEFT JOIN com_street AS cs11 ON cs11.street_id = ca11.street_id
+        WHERE
+        cmpct11.label LIKE '%上访人员%'  and ca11.is_screen_statistics = 1
+        <if test="streetId != null and streetId != 0">
+            and cs11.street_id = #{streetId}
+        </if>
+        ) as sfTotal,
+        (
+        SELECT
+        count( cmpct12.id )
+        FROM
+        com_mng_population_community_tags AS cmpct12
+        LEFT JOIN com_act AS ca12 ON ca12.community_id = cmpct12.community_id
+        LEFT JOIN com_street AS cs12 ON cs12.street_id = ca12.street_id
+        WHERE
+        cmpct12.label LIKE '%精神障碍患者%' and ca12.is_screen_statistics = 1
+        <if test="streetId != null and streetId != 0">
+            and cs12.street_id = #{streetId}
+        </if>
+        ) as zjTotal
+        FROM
+        com_mng_population_community_tags AS cmpct
+        LEFT JOIN com_act AS ca ON ca.community_id = cmpct.community_id
+        LEFT JOIN com_street AS cs ON cs.street_id = ca.street_id
+        WHERE
+        cmpct.label LIKE '%残疾人%'  and ca.is_screen_statistics = 1
+        <if test="streetId != null and streetId != 0">
+            and cs.street_id = #{streetId}
+        </if>
+    </select>
+    <select id="getPopulationAge" resultType="java.lang.Integer">
+        select count(age) from (
+        SELECT
+        YEAR (now()) - YEAR (substring(cmp.card_no_str, 7, 8)) age
+        FROM
+        com_mng_population_community_tags AS cmpct
+        LEFT JOIN com_mng_population AS cmp ON cmp.id = cmpct.population_id
+        LEFT JOIN com_act AS ca ON ca.community_id = cmpct.community_id
+        LEFT JOIN com_street AS cs ON cs.street_id = ca.street_id
+
+        <where>
+            and ca.is_screen_statistics = 1
+            <if test="streetId != null and streetId != 0">
+                and cs.street_id = #{streetId}
+            </if>
+        </where>
+        having age >= #{age}
+        ) as ageDual
+    </select>
+
+    <select id="institutionalUnitServiceAnalysis" resultType="com.panzhihua.common.model.vos.neighbor.UnitActivityAnalysisVO">
+        select cpcu.belong_to unitName,sum(canc.real_service_time) as serviceTime
+        from com_act_neighbor_circle canc left join com_pb_check_unit cpcu on canc.solve_unit_id = cpcu.id
+        <where>
+            <if test="beginTime != null">
+                and canc.order_time between #{beginTime} and #{endTime}
+            </if>
+                and cpcu.belong_to != ''
+        </where>
+        GROUP BY cpcu.belong_to
+
+        SELECT  cpcu.belong_to unitName,sum(caa.duration) as serviceTime
+        FROM com_act_activity as caa
+        left join com_pb_check_unit as cpcu on caa.check_unit_id=cpcu.id
+        <where>
+            <if test="beginTime != null">
+                and caa.publish_at between #{beginTime} and #{endTime}
+            </if>
+                and cpcu.belong_to != ''
+        </where>
+        GROUP BY cpcu.belong_to
+    </select>
+
+    <select id="institutionalUnitActivityAnalysis"
+            resultType="com.panzhihua.common.model.vos.neighbor.UnitActivityAnalysisVO">
+
+    </select>
+    <select id="sumAreaStreet" resultType="com.panzhihua.common.model.dtos.community.large.SumAreaStreetResp">
+        SELECT
+            ( select count(*) FROM (
+                SELECT cs.street_id,cs.area_code FROM ( SELECT street_id from com_act where app_id = 'wx118de8a734d269f0' GROUP BY street_id   )   as ca INNER  JOIN com_street cs on cs.street_id = ca.street_id
+                GROUP BY area_code) as gr	) as areaCount ,
+
+            ( SELECT count(*) FROM ( SELECT street_id from com_act where app_id = 'wx118de8a734d269f0' GROUP BY street_id )  as dd  )as streetCount ,
+
+            ( SELECT count(*) FROM ( SELECT street_id from com_act where app_id = 'wx118de8a734d269f0' GROUP BY community_id ) as adfd )as actCount ,
+
+            ( SELECT count(*) from `com_mng_population` cmp RIGHT JOIN ( SELECT street_id from com_act where app_id = 'wx118de8a734d269f0' GROUP BY street_id) cs on cs.street_id = cmp.street_id where cmp.death = '0' ) as populationCount ,
+
+            ( SELECT count(*) from `com_mng_village` cmv RIGHT JOIN ( SELECT street_id from com_act where app_id = 'wx118de8a734d269f0' GROUP BY street_id) cs on cs.street_id = cmv.street_id  ) as villageCount ,
+
+            ( SELECT count(*) from `com_mng_population_house` cmph RIGHT JOIN ( SELECT street_id from com_act where app_id = 'wx118de8a734d269f0' GROUP BY street_id) cs on cmph.street_id = cs.street_id  ) as houseCount
+    </select>
+    <select id="selectVillage" resultType="com.panzhihua.common.model.dtos.community.large.AreaStreetDetailResp">
+        select
+               <if test="type = '1'.toString() " >
+                   ( SELECT count(*) from (SELECT 1 from com_act WHERE community_id in (
+                   <foreach collection="ids" item="id" separator=",">
+                       #{id}
+                   </foreach>
+                   ) GROUP BY street_id ) as countAS ) as streetCount  ,
+               </if>
+        <if test="type = '2'.toString() or type = '1'.toString()" >
+            ( SELECT  count(*) from com_act WHERE community_id in (
+            <foreach collection="ids" item="id" separator=",">
+                #{id}
+            </foreach>
+            ) ) as actCount ,
+        </if>
+            ( SELECT count(*) FROM com_mng_population WHERE act_id in(
+        <foreach collection="ids" item="id" separator=",">
+            #{id}
+        </foreach>
+        ) and death = '0' ) as populationCount ,
+
+            ( SELECT count( * ) FROM  com_mng_village  WHERE  community_id IN (
+        <foreach collection="ids" item="id" separator=",">
+            #{id}
+        </foreach>
+        ) ) AS villageCount,
+
+            ( SELECT count( * ) FROM  com_mng_village  WHERE  community_id IN (
+        <foreach collection="ids" item="id" separator=",">
+            #{id}
+        </foreach>
+        ) and type = '1' ) as cityVillageCount,
+
+            ( SELECT count( * ) FROM  com_mng_village  WHERE  community_id IN (
+        <foreach collection="ids" item="id" separator=",">
+            #{id}
+        </foreach>
+        ) and type = '2' ) as countryVillageCount
+
+
+    </select>
+    <select id="selectEvent" resultType="com.panzhihua.common.model.vos.community.screen.event.EventPopulationSpecialStatisticsVO">
+        SELECT
+            ( SELECT count(*) FROM com_mng_population_community_tags WHERE  community_id IN (
+        <foreach collection="ids" item="id" separator=",">
+            #{id}
+        </foreach>
+                )  and label like concat('%','残疾','%')  ) as cjTotal,
+            ( SELECT count(*) FROM com_mng_population_community_tags WHERE  community_id IN (
+        <foreach collection="ids" item="id" separator=",">
+            #{id}
+        </foreach>
+        )  and label like concat('%','低保','%')  ) as dbTotal,
+            ( SELECT count(*) FROM com_mng_population_community_tags WHERE  community_id IN (
+        <foreach collection="ids" item="id" separator=",">
+            #{id}
+        </foreach>
+        )  and label like concat('%','养老金','%')  ) as lnTotal,
+            ( SELECT count(*) FROM com_mng_population_community_tags WHERE  community_id IN (
+        <foreach collection="ids" item="id" separator=",">
+            #{id}
+        </foreach>
+        )  and label like concat('%','高龄','%')  ) as glTotal,
+            ( SELECT count(*) FROM com_mng_population_community_tags WHERE  community_id IN (
+        <foreach collection="ids" item="id" separator=",">
+            #{id}
+        </foreach>
+        )  and label like concat('%','退役','%')  ) as tyTotal,
+            ( SELECT count(*) FROM com_mng_population_community_tags WHERE  community_id IN (
+        <foreach collection="ids" item="id" separator=",">
+            #{id}
+        </foreach>
+        )  and label like concat('%','留守','%')  ) as lsTotal
+    </select>
+
+    <select id="qryReport" resultType="com.panzhihua.common.model.dtos.partybuilding.QryReportResp">
+        SELECT
+        ctn.id as categoryId,
+        sum( IF(npi.id is null,0,1) ) as sum,
+        ctn.`name` as categoryName
+        FROM
+        com_act_neighbor_circle_topic_new AS ctn
+        LEFT JOIN (
+        SELECT new_fight_need_problem_inventory.* from new_fight_need_problem_inventory  inner join (
+            SELECT community_id from com_act
+        ) as ca on  ca.community_id = new_fight_need_problem_inventory.community_id
+        <if test="yearTime != null and yearTime != '' ">
+            WHERE  creation_time &lt;= concat(#{yearTime},'-12-31 59:59:59')
+        </if>
+        )
+        AS npi ON npi.classify_id = ctn.id
+        GROUP BY
+            ctn.id
+
+    </select>
+
+
+</mapper>
\ No newline at end of file
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..2cb0992
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussCommentDOMapper.xml
@@ -0,0 +1,61 @@
+<?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 userName,
+            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
+            c.parent_id = #{parentId} 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..c76aee1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussDOMapper.xml
@@ -0,0 +1,377 @@
+<?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
+        <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,
+        d.content_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>
+        <if test="pageComActDiscussDTO.contentType != null">
+            and d.content_type = #{pageComActDiscussDTO.contentType}
+        </if>
+        GROUP BY   d.id  )t
+        order by t.create_at desc
+    </select>
+
+    <select id="getCommentNum" resultType="Integer">
+        select COUNT( DISTINCT id ) from com_act_discuss_comment where discuss_id=#{id}
+    </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,
+        (select count(id) from com_act_discuss_comment where discuss_id = d.id and is_del = 2 and parent_id = 0) as comment_num,
+        d.fabulous_num as signNum,
+        d.views_num,
+        d.status,
+        d.content_type,
+        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>
+        <if test="pageComActDiscussDTO.contentType != null">
+            and d.content_type = #{pageComActDiscussDTO.contentType}
+        </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.content_type,
+                d.`discuss_subject`, d.type, d.end_time, d.status, d.views_num, d.join_num, d.fabulous_num AS signNum,
+                (select count(id) from com_act_discuss_comment where discuss_id = d.id and is_del = 2 and parent_id = 0) 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_comment cadc on d.id = cadc.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.is_del = 2 AND d.status != 1
+                <if test="pageComActDiscussDTO.communityId !=null and pageComActDiscussDTO.communityId !='' ">
+                    AND d.community_id = ${pageComActDiscussDTO.communityId}
+                </if>
+                <if test="pageComActDiscussDTO.status !=null and pageComActDiscussDTO.status !='' ">
+                    AND d.status = ${pageComActDiscussDTO.status}
+                </if>
+                <if test="pageComActDiscussDTO.keyWord !=null and pageComActDiscussDTO.keyWord !='' ">
+                    AND  d.discuss_subject like concat('%',#{pageComActDiscussDTO.keyWord},'%')
+                </if>
+                <if test="pageComActDiscussDTO.isPbMember == 0">
+                    AND d.vote_scope != 3
+                </if>
+                <if test="pageComActDiscussDTO.isVolunteer == 0">
+                    AND d.vote_scope != 2
+                </if>
+                <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>
+                <if test="pageComActDiscussDTO.contentType != null">
+                    and d.content_type = #{pageComActDiscussDTO.contentType}
+                </if>
+            GROUP BY d.id
+        ) t ORDER BY t.create_at DESC
+    </select>
+
+
+
+    <select id="pageDiscussCommentAdmin" parameterType="com.panzhihua.common.model.dtos.community.PageComActDiscussCommentDTO"
+            resultType="com.panzhihua.common.model.vos.community.ComActDiscussCommentVO">
+        SELECT
+            *
+        FROM
+            (
+            SELECT
+                u.user_id,
+                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.is_author,
+                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,
+            su.image_url as imageUrl,
+            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>
+    <select id="selectTypePercent" resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT t1.filed, t1.num, ROUND( t1.num / t2.sum * 100, 2 ) AS percent
+        FROM
+        (SELECT IF(`type` = 1,'议事','投票') AS filed, COUNT(id) AS num FROM com_act_discuss
+        WHERE community_id = ${communityId} AND is_del = 2 GROUP BY filed) t1,
+        (SELECT COUNT(id) AS sum FROM com_act_discuss WHERE community_id = ${communityId} AND is_del = 2) t2
+    </select>
+    <select id="getTitles" resultType="java.lang.String">
+        SELECT discuss_subject FROM com_act_discuss WHERE community_id = ${communityId} AND `type` = #{type} AND is_del = 2 ORDER BY release_at DESC limit #{pageSize}
+    </select>
+    <select id="countByCommunityId" resultType="Map">
+        SELECT
+            COUNT( id ) AS totalNum,
+            (
+            SELECT
+                COUNT( id )
+            FROM
+                com_act_discuss
+            WHERE
+                community_id = ${communityId}
+                AND create_at BETWEEN DATE_ADD(curdate(),interval -day(curdate())+1 day)
+            AND now()) AS currentNum,
+            ( SELECT COUNT( id ) FROM com_act_discuss WHERE community_id = ${communityId} AND TYPE = 1 ) AS imgNum,
+            (
+            SELECT
+                count( DISTINCT cadc.user_id )
+            FROM
+                com_act_discuss_comment AS cadc
+                LEFT JOIN com_act_discuss AS cad ON cad.id = cadc.discuss_id
+            WHERE
+                cad.type = 1
+                AND cad.community_id = ${communityId}
+            ) AS imgPeopleNum,
+            (
+            SELECT
+                count( user_id )
+            FROM
+                (
+                SELECT DISTINCT
+                    cadc.user_id
+                FROM
+                    com_act_discuss_comment AS cadc
+                    LEFT JOIN com_act_discuss AS cad ON cad.id = cadc.discuss_id
+                WHERE
+                    cad.type = 2
+                    AND cad.community_id = ${communityId} UNION ALL
+                SELECT DISTINCT
+                    cadou.user_id
+                FROM
+                    com_act_discuss_option_user AS cadou
+                    LEFT JOIN com_act_discuss_option AS cado ON cado.id = cadou.discuss_option_id
+                    LEFT JOIN com_act_discuss AS cad ON cad.id = cado.discuss_id
+                WHERE
+                    cad.community_id = ${communityId}
+                ) t
+            ) AS votePeopleNum
+        FROM
+            com_act_discuss
+        WHERE
+            community_id = ${communityId}
+    </select>
+    <select id="pageCourtyardDiscuss" resultType="com.panzhihua.common.model.vos.community.ComActDiscussVO">
+        SELECT id, `type`, discuss_subject, photo_pah, create_at FROM com_act_discuss
+        WHERE community_id = #{pageBaseDTO.communityId}
+        AND content_type = 2 AND is_del = 2
+        <if test="pageBaseDTO.param3 != null">
+            AND `type` = #{pageBaseDTO.param3}
+        </if>
+        ORDER BY create_at DESC
+    </select>
+    <select id="getCourtyardBaseData"
+            resultType="com.panzhihua.common.model.vos.community.bigscreen.BigScreenCourtyardStatisticsInfo">
+        SELECT
+        (SELECT COUNT(id) FROM com_act_discuss WHERE community_id = #{communityId} AND content_type = 2 AND is_del = 2) AS discussTotal,
+        (SELECT COUNT(id) FROM com_act_discuss WHERE community_id = #{communityId} AND content_type = 2 AND is_del = 2 AND `type` = 1) AS ysTotal,
+        (SELECT COUNT(id) FROM com_act_discuss WHERE community_id = #{communityId} AND content_type = 2 AND is_del = 2 AND `type` = 2) AS tpTotal
+    </select>
+
+
+    <delete id="deleteId">
+        delete from com_act_discuss_comment where id=#{id}
+    </delete>
+
+
+</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..a0b183a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDiscussOptionUserDOMapper.xml
@@ -0,0 +1,60 @@
+<?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>
+    <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} GROUP BY cadou.user_id 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>
+    <select id="pageVoteSituation"
+            resultType="com.panzhihua.common.model.vos.community.ComActDiscussOptionUserVO">
+        SELECT
+            cadou.*,
+            su.nick_name AS userNickName,
+            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 = #{pageVoteSituationDTO.discussId}
+    </select>
+    <select id="detailVoteSituation"
+            resultType="com.panzhihua.common.model.vos.community.ComActDiscussOptionUserVO">
+        SELECT
+            cadou.*,
+            su.nick_name AS userNickName,
+            su.image_url,
+            cado.option_content,
+            cado.option_url
+        FROM `com_act_discuss_option_user` cadou
+        LEFT JOIN com_act_discuss_option cado ON cadou.discuss_option_id = cado.id
+        LEFT JOIN `sys_user` su ON cadou.user_id = su.user_id
+        WHERE cadou.id = #{optionUserId}
+    </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/ComActDpcMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDpcMapper.xml
new file mode 100644
index 0000000..fd4162a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDpcMapper.xml
@@ -0,0 +1,155 @@
+<?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.ComActDpcDAO">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComActDpc" id="ComActDpcMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="phone" column="phone" jdbcType="VARCHAR"/>
+        <result property="nation" column="nation" jdbcType="VARCHAR"/>
+        <result property="sex" column="sex" jdbcType="INTEGER"/>
+        <result property="area" column="area" jdbcType="VARCHAR"/>
+        <result property="belong" column="belong" jdbcType="VARCHAR"/>
+        <result property="category" column="category" jdbcType="VARCHAR"/>
+        <result property="position" column="position" jdbcType="VARCHAR"/>
+        <result property="photo" column="photo" jdbcType="VARCHAR"/>
+        <result property="isDel" column="is_del" jdbcType="VARCHAR"/>
+        <result property="createdBy" column="created_by" jdbcType="INTEGER"/>
+        <result property="createdAt" column="created_at" jdbcType="TIMESTAMP"/>
+        <result property="updatedBy" column="updated_by" jdbcType="INTEGER"/>
+        <result property="updatedAt" column="updated_at" jdbcType="TIMESTAMP"/>
+        <result property="communityId" column="community_id" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <!-- 批量插入 -->
+    <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.com_act_dpc(name, phone, nation, sex, area, belong, category, position, photo, is_del,
+        created_by, created_at, updated_by, updated_at, community_id)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.name}, #{entity.phone}, #{entity.nation}, #{entity.sex}, #{entity.area}, #{entity.belong},
+            #{entity.category}, #{entity.position}, #{entity.photo}, #{entity.isDel}, #{entity.createdBy},
+            #{entity.createdAt}, #{entity.updatedBy}, #{entity.updatedAt}, #{entity.communityId})
+        </foreach>
+    </insert>
+    <!-- 批量插入或按主键更新 -->
+    <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.com_act_dpc(name, phone, nation, sex, area, belong, category, position, photo, is_del,
+        created_by, created_at, updated_by, updated_at, community_id)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.name}, #{entity.phone}, #{entity.nation}, #{entity.sex}, #{entity.area}, #{entity.belong},
+            #{entity.category}, #{entity.position}, #{entity.photo}, #{entity.isDel}, #{entity.createdBy},
+            #{entity.createdAt}, #{entity.updatedBy}, #{entity.updatedAt}, #{entity.communityId})
+        </foreach>
+        on duplicate key update
+        name = values(name) , phone = values(phone) , nation = values(nation) , sex = values(sex) , area = values(area)
+        , belong = values(belong) , category = values(category) , position = values(position) , photo = values(photo) ,
+        is_del = values(is_del) , created_by = values(created_by) , created_at = values(created_at) , updated_by =
+        values(updated_by) , updated_at = values(updated_at) , community_id = values(community_id)
+    </insert>
+    <select id="detailDpc" resultType="com.panzhihua.common.model.vos.community.ComActDpcVO">
+        SELECT * FROM com_act_dpc WHERE id = #{id}
+    </select>
+    <select id="pageDpc" resultType="com.panzhihua.common.model.vos.community.ComActDpcVO">
+        SELECT * FROM com_act_dpc
+        WHERE community_id = #{pageDpcDTO.communityId} AND is_del = 0
+        <if test="pageDpcDTO.keyword != null and pageDpcDTO.keyword != &quot;&quot;">
+            AND (`name` LIKE CONCAT(#{pageDpcDTO.keyword}, '%')
+            OR phone LIKE CONCAT(#{pageDpcDTO.keyword}, '%'))
+        </if>
+        ORDER BY created_at DESC
+    </select>
+    <select id="selectUser" resultType="com.panzhihua.common.model.vos.user.SysUserVO">
+        SELECT user_id, `name`, phone
+        FROM sys_user WHERE `type` = 1 AND phone = #{phone}
+    </select>
+    <insert id="insertComActDpc">
+        insert into com_act_dpc
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="comActDpc.id != null">
+                id,
+            </if>
+            <if test="comActDpc.name != null and comActDpc.name != ''">
+                name,
+            </if>
+            <if test="comActDpc.phone != null and comActDpc.phone != ''">
+                phone,
+            </if>
+            <if test="comActDpc.nation != null and comActDpc.nation != ''">
+            nation,
+            </if>
+            <if test="comActDpc.sex != null">
+                sex,
+            </if>
+            <if test="comActDpc.area != null and comActDpc.area != ''">
+                area,
+            </if>
+            <if test="comActDpc.belong != null and comActDpc.belong != ''">
+                belong,
+            </if>
+            <if test="comActDpc.category != null and comActDpc.category != ''">
+                category,
+            </if>
+            <if test="comActDpc.position != null and comActDpc.position != ''">
+                position,
+            </if>
+            <if test="comActDpc.photo != null and comActDpc.photo != ''">
+                photo,
+            </if>
+            <if test="comActDpc.communityId != null">
+                community_id,
+            </if>
+            <if test="comActDpc.createdBy != null ">
+                created_by,
+            </if>
+            <if test="comActDpc.createdAt != null ">
+                created_at,
+            </if>
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="comActDpc.id != null">
+                #{comActDpc.id},
+            </if>
+            <if test="comActDpc.name != null and comActDpc.name != ''">
+                #{comActDpc.name},
+            </if>
+            <if test="comActDpc.phone != null and comActDpc.phone != ''">
+                #{comActDpc.phone},
+            </if>
+            <if test="comActDpc.nation != null and comActDpc.nation != ''">
+              #{comActDpc.nation},
+            </if>
+            <if test="comActDpc.sex != null">
+                #{comActDpc.sex},
+            </if>
+            <if test="comActDpc.area != null and comActDpc.area != ''">
+                #{comActDpc.area},
+            </if>
+            <if test="comActDpc.belong != null and comActDpc.belong != ''">
+                #{comActDpc.belong},
+            </if>
+            <if test="comActDpc.category != null and comActDpc.category != ''">
+                #{comActDpc.category},
+            </if>
+            <if test="comActDpc.position != null and comActDpc.position != ''">
+                #{comActDpc.position},
+            </if>
+            <if test="comActDpc.photo != null and comActDpc.photo != ''">
+                #{comActDpc.photo},
+            </if>
+            <if test="comActDpc.communityId != null ">
+                #{comActDpc.communityId},
+            </if>
+            <if test="comActDpc.createdBy != null ">
+                #{comActDpc.createdBy},
+            </if>
+            <if test="comActDpc.createdAt != null ">
+                #{comActDpc.createdAt},
+            </if>
+        </trim>
+    </insert>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDynDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDynDOMapper.xml
new file mode 100644
index 0000000..ce73562
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDynDOMapper.xml
@@ -0,0 +1,335 @@
+<?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.ComActDynDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActDynDO">
+        <id column="id" property="id" />
+        <result column="title" property="title" />
+        <result column="status" property="status" />
+        <result column="is_topping" property="isTopping" />
+        <result column="publish_at" property="publishAt" />
+        <result column="create_at" property="createAt" />
+        <result column="update_at" property="updateAt" />
+        <result column="community_id" property="communityId" />
+        <result column="content" property="content" />
+        <result column="cover" property="cover" />
+        <result column="type" property="type" />
+        <result column="cover_mode" property="coverMode" />
+        <result column="jump_url" property="jumpUrl" />
+        <result column="jump_type" property="jumpType" />
+        <result column="category" property="category" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id
+    </sql>
+    <select id="getIndexDynBaseData" resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT filed, num, ROUND(num/total,2) AS percent FROM
+        (SELECT t2.`name` AS filed, COUNT(1) AS num FROM com_act_dyn t1
+        LEFT JOIN com_act_dyn_type t2 ON t1.type = t2.id
+        WHERE t1.community_id = ${communityId} AND t1.`status` = 1 GROUP BY filed) temp1,
+        (SELECT COUNT(t1.id) AS total FROM com_act_dyn t1
+        LEFT JOIN com_act_dyn_type t2 ON t1.type = t2.id
+        WHERE t1.community_id = ${communityId} AND t1.`status` = 1) temp2
+    </select>
+    <select id="getDynAddPolylineData" resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT filed, SUM(num) AS num FROM (
+        SELECT DATE_FORMAT( create_at, '%Y-%m' ) AS filed, COUNT(id) AS num
+        FROM com_act_dyn
+        WHERE community_id = ${communityId} AND `status` = 1
+        AND DATE_FORMAT( create_at, '%Y-%m' ) &gt; DATE_FORMAT(date_sub(curdate(), interval 12 month),'%Y-%m') GROUP BY filed
+        UNION ALL SELECT * FROM
+            (
+                SELECT DATE_FORMAT(curdate(),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 1 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 2 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 3 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 4 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 5 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 6 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 7 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 8 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 9 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 10 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 11 month),'%Y-%m') AS filed, 0 AS num
+            ) temT
+        ) temp GROUP BY filed ORDER BY filed ASC
+    </select>
+    <select id="getDynTotalPolylineDate"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT COUNT(id) AS num FROM com_act_dyn
+        WHERE community_id = ${communityId} AND `status` = 1 AND DATE_FORMAT( create_at, '%Y-%m' ) &lt;= #{date}
+    </select>
+    <select id="indexDynList" resultType="com.panzhihua.common.model.vos.community.ComActDynVO">
+        SELECT t1.id, t1.title, t1.cover, t2.`name` AS typeName
+        FROM com_act_dyn t1
+        LEFT JOIN com_act_dyn_type t2 ON t1.type = t2.id
+        WHERE 1=1 and cadt.area='2'
+        <if test="pageBaseDTO.communityIds != null and pageBaseDTO.communityIds.size > 0">
+            AND t1.community_id IN
+            <foreach collection="pageBaseDTO.communityIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="pageBaseDTO.communityIds == null">
+            AND t1.community_id = ${pageBaseDTO.communityId}
+        </if>
+        AND t1.`status` = 1 AND t2.is_del = 2
+        <if test="pageBaseDTO.paramId != null">
+            AND t1.type = #{pageBaseDTO.paramId}
+        </if>
+        ORDER BY t1.id DESC
+    </select>
+    <select id="getPartyBuildIngBaseData"
+            resultType="com.panzhihua.common.model.vos.community.bigscreen.BigScreenPartyBuildIngStatisticsInfo">
+        SELECT
+        (SELECT COUNT( d.id ) FROM com_pb_dyn d LEFT JOIN com_pb_dyn_user u ON d.id = u.dyn_id LEFT JOIN com_act t ON d.community_id = t.community_id WHERE d.type = 1 AND d.community_id = #{communityId}) AS djdtTotal,
+        (SELECT COUNT( a.id ) FROM com_pb_activity a LEFT JOIN sys_user u ON a.create_by = u.user_id WHERE a.community_id = #{communityId} AND a.`status` IN ( 3, 4, 5 )) AS djhdTotal,
+        (SELECT COUNT(id) FROM com_act_discuss WHERE community_id = #{communityId} AND is_del = 2) AS ystpTotal,
+        (SELECT COUNT(DISTINCT d2.user_id) FROM com_act_discuss d1 INNER JOIN com_act_discuss_comment d2 ON d1.id = d2.discuss_id WHERE d1.community_id = #{communityId} AND d1.is_del = 2) AS ystpcyTotal,
+        (SELECT COUNT(id) FROM com_act_discuss WHERE community_id = #{communityId} AND is_del = 2 AND `type` = 1) AS ysTotal,
+        (SELECT COUNT(id) FROM com_act_discuss WHERE community_id = #{communityId} AND is_del = 2 AND `type` = 2) AS tpTotal,
+        (SELECT COUNT(id) FROM com_act_discuss WHERE community_id = #{communityId} AND content_type = 2 AND is_del = 2) AS ylysTotal,
+        (SELECT COUNT(id) FROM com_act_discuss WHERE community_id = #{communityId} AND content_type = 1 AND is_del = 2) AS sqysTotal,
+        (SELECT COUNT(id) FROM com_pb_member WHERE community_id = #{communityId} AND audit_result = 1) AS dyTotal,
+        (SELECT COUNT(id) FROM com_act_four_member WHERE community_id = #{communityId}) AS szsyTotal,
+        (SELECT COUNT(id) FROM com_act_four_member WHERE community_id = #{communityId} AND (position LIKE CONCAT('%','居民小组长','%') OR position = '全部')) AS jmxzzTotal,
+        (SELECT COUNT(id) FROM com_act_four_member WHERE community_id = #{communityId} AND (position LIKE CONCAT('%','妇女小组长','%') OR position = '全部')) AS fnxzzTotal,
+        (SELECT COUNT(id) FROM com_act_four_member WHERE community_id = #{communityId} AND (position LIKE CONCAT('%','党小组长','%') OR position = '全部')) AS dxzzTotal,
+        (SELECT COUNT(id) FROM com_act_four_member WHERE community_id = #{communityId} AND (position LIKE CONCAT('%','楼栋长','%') OR position = '全部')) AS ldzTotal,
+        (SELECT COUNT(id) FROM com_act_four_member WHERE community_id = #{communityId} AND (position LIKE CONCAT('%','调解员','%') OR position = '全部')) AS tjyTotal,
+        (SELECT COUNT(id) FROM com_act_four_member WHERE community_id = #{communityId} AND (position LIKE CONCAT('%','安全员','%') OR position = '全部')) AS aqyTotal,
+        (SELECT COUNT(id) FROM com_act_four_member WHERE community_id = #{communityId} AND (position LIKE CONCAT('%','宣传员','%') OR position = '全部')) AS xcyTotal,
+        (SELECT COUNT(id) FROM com_act_four_member WHERE community_id = #{communityId} AND (position LIKE CONCAT('%','监督员','%') OR position = '全部')) AS jdyTotal,
+        (SELECT COUNT(t1.id) FROM com_act_easy_photo_handler t1 INNER JOIN com_act_micro_wish t2 ON t1.service_id = t2.id
+        WHERE t1.community_id = #{communityId} AND t1.`type` = 2 AND t1.service_type = 2 AND t2.`status` = 6) AS zyxServiceTotal,
+        (SELECT COUNT(id) FROM com_act_dyn WHERE community_id = #{communityId} AND `status` = 1) AS jmxcTotal,
+        (SELECT COUNT(id) FROM com_sw_patrol_record WHERE community_id = #{communityId}) AS xqxcTotal,
+        (SELECT IF(AVG(t1.score) IS NULL,0,ROUND(AVG(t1.score),1)) FROM com_act_easy_photo_evaluate t1
+        INNER JOIN com_act_easy_photo t2 ON t1.service_id = t2.id WHERE t1.community_id = #{communityId} AND t1.service_type = 1 AND t2.del_tag = 0) AS qzmydStar
+    </select>
+    <select id="pagePartyBuildIngAct"
+            resultType="com.panzhihua.common.model.vos.partybuilding.PartyBuildingActivityVO">
+        SELECT
+            id,
+            activity_name AS name,
+            publish_at AS releaseTime,
+            cover
+        FROM com_act_activity
+        WHERE community_id = #{pageBaseDTO.communityId} AND `status` IN ( 3, 4, 5 ) AND `type` = 3
+        ORDER BY publish_at desc
+    </select>
+    <select id="pagePartyBuildIngDiscuss"
+            resultType="com.panzhihua.common.model.vos.community.ComActDiscussVO">
+        SELECT
+            id,
+            discuss_subject,
+            `type`,
+            photo_pah
+        FROM com_act_discuss
+        WHERE community_id = #{pageBaseDTO.communityId} AND is_del = 2
+        ORDER BY create_at DESC
+    </select>
+    <select id="getPartyBuildIngDynRecord" resultType="com.panzhihua.common.model.vos.community.ComActDynVO">
+        SELECT id,title,publish_at FROM com_act_dyn WHERE community_id = #{communityId} AND `status` = 1 LIMIT #{pageSize}
+    </select>
+    <select id="getPartyBuildIngPatrolRecord"
+            resultType="com.panzhihua.common.model.vos.community.ComSwPatrolRecordVO">
+        SELECT id,person_name,patrol_type,patrol_time FROM com_sw_patrol_record WHERE community_id = #{communityId} LIMIT #{pageSize}
+    </select>
+    <select id="pageDynamic" resultType="com.panzhihua.common.model.vos.community.ComActDynVO">
+        SELECT
+        d.id,
+        d.title,
+        IFNULL( u.readNum, 0 ) readNum,
+        d.`status`,
+        d.`cover`,
+        d.`type`,
+        d.`cover_mode`,
+        d.jump_url,
+        d.jump_type,
+        d.is_topping,
+        d.publish_at,
+        d.create_at,
+        cadt.`name` AS typeName,
+        cadt.color AS typeColor,
+        ca.NAME AS communityName,
+        d.release_time,
+        d.category
+        FROM
+        com_act_dyn d
+        LEFT JOIN ( SELECT dyn_id, count( id ) AS readNum FROM com_act_dyn_user GROUP BY dyn_id ) u ON d.id = u.dyn_id
+        LEFT JOIN com_act_dyn_type AS cadt ON cadt.id = d.type
+        LEFT JOIN com_act ca ON d.community_id = ca.community_id
+        WHERE
+        1 = 1
+        <if test='comActDynVO.choice == 0 '>
+            AND d.community_id in (${comActDynVO.communityId})
+        </if>
+        <if test="comActDynVO.category != null and comActDynVO.category != '' ">
+            AND d.category = #{comActDynVO.category}
+        </if>
+        <if test='comActDynVO.areaCode !=null and comActDynVO.category == 1 '>
+            AND ca.area_code = ${comActDynVO.areaCode}
+        </if>
+        <if test="comActDynVO.title != null and comActDynVO.title.trim() != '' ">
+            AND d.title LIKE concat(#{comActDynVO.title},'%')
+        </if>
+        <if test="comActDynVO.isTopping != null and comActDynVO.isTopping != '' ">
+            AND d.is_topping = #{comActDynVO.isTopping}
+        </if>
+        <if test="comActDynVO.status != null and comActDynVO.status != '' ">
+            AND d.`status` = #{comActDynVO.status}
+        </if>
+        <if test="comActDynVO.type != null and comActDynVO.type != '' ">
+            AND d.type in (${comActDynVO.type})
+        </if>
+        <if test="comActDynVO.publishAtBegin != null and comActDynVO.publishAtBegin != '' ">
+            AND d.publish_at BETWEEN #{comActDynVO.publishAtBegin} AND #{comActDynVO.publishAtEnd}
+        </if>
+        <if test="comActDynVO.isOrgHatch == 1">
+            AND (cadt.`name` = '社会组织培训' OR cadt.`name` = '社工培训')
+        </if>
+        ORDER BY d.is_topping DESC, d.create_at DESC
+    </select>
+
+<!--    <select id="pageDynamicByAdmin" resultType="com.panzhihua.common.model.vos.community.ComActDynVO">-->
+<!--        SELECT d.id, d.title,(SELECT COUNT(u.id) FROM com_act_dyn_user u WHERE d.id = u.dyn_id ) readNum,-->
+<!--               d.`status`, d.`content`, d.`cover`, d.`type`, d.`cover_mode`,-->
+<!--        d.is_topping, d.publish_at, d.create_at, cadt.`name` as typeName, ca.name as communityName,d.release_time-->
+<!--        FROM com_act_dyn d-->
+<!--        LEFT JOIN com_act_dyn_type as cadt ON cadt.id = d.type-->
+<!--        LEFT JOIN com_act ca ON d.community_id = ca.community_id-->
+<!--        WHERE 1=1-->
+<!--        <if test="comActDynVO.communityId != null and comActDynVO.communityId != '' ">-->
+<!--            and d.community_id in (${comActDynVO.communityId})-->
+<!--        </if>-->
+
+<!--        <if test="comActDynVO.communityId == null  and  comActDynVO.streetId != null"  >-->
+<!--            and d.community_id in (select community_id from com_act where street_id=#{comActDynVO.streetId})-->
+<!--        </if>-->
+
+<!--        <if test="comActDynVO.category != null and comActDynVO.category != '' ">-->
+<!--            AND d.category = #{comActDynVO.category}-->
+<!--        </if>-->
+<!--        <if test="comActDynVO.title != null and comActDynVO.title.trim() != '' ">-->
+<!--            AND d.title like concat(#{comActDynVO.title},'%')-->
+<!--        </if>-->
+<!--        <if test="comActDynVO.isTopping != null and comActDynVO.isTopping != '' ">-->
+<!--            AND d.is_topping = #{comActDynVO.isTopping}-->
+<!--        </if>-->
+<!--        <if test="comActDynVO.status != null and comActDynVO.status != '' ">-->
+<!--            AND d.`status` = #{comActDynVO.status}-->
+<!--        </if>-->
+
+<!--        <if test="comActDynVO.typeS == null or comActDynVO.typeS != 2 ">-->
+<!--            <if test="comActDynVO.type != null and comActDynVO.type != '' ">-->
+<!--                AND d.type = #{comActDynVO.type}-->
+<!--            </if>-->
+<!--        </if>-->
+
+<!--         <if test="comActDynVO.typeS != null and comActDynVO.typeS == 2 ">-->
+<!--             AND d.type in (-->
+<!--             SELECT cadt.id FROM `com_act_dyn_type` as cadt WHERE cadt.name in-->
+<!--             <foreach collection="comActDynVO.typeList" item="id" index="index" open="(" close=")" separator=",">-->
+<!--                 #{id}-->
+<!--             </foreach>-->
+<!--             <if test="comActDynVO.communityId != null and comActDynVO.communityId != '' ">-->
+<!--                 and cadt.community_id in (${comActDynVO.communityId})-->
+<!--             </if>-->
+<!--             union-->
+<!--             SELECT cadt2.id FROM `com_act_dyn_type` as cadt2 WHERE  cadt2.area=1 and cadt2.name in-->
+<!--             <foreach collection="comActDynVO.typeList" item="id" index="index" open="(" close=")" separator=",">-->
+<!--                 #{id}-->
+<!--             </foreach>-->
+
+<!--             )-->
+<!--        </if>-->
+
+<!--        <if test="comActDynVO.publishAtBegin != null and comActDynVO.publishAtBegin != '' ">-->
+<!--            AND (d.publish_at BETWEEN #{comActDynVO.publishAtBegin} AND #{comActDynVO.publishAtEnd})-->
+<!--        </if>-->
+<!--        order by d.is_topping desc, d.create_at desc-->
+<!--    </select>-->
+
+
+    <select id="pageDynamicByAdmin" resultType="com.panzhihua.common.model.vos.community.ComActDynVO">
+        SELECT d.id, d.title,
+        d.`status`, d.`cover`, d.`type`, d.`cover_mode`,
+        d.is_topping, d.publish_at, d.create_at, cadt.`name` as typeName, ca.name as communityName,d.release_time
+        FROM com_act_dyn d
+        LEFT JOIN com_act_dyn_type as cadt ON cadt.id = d.type
+        LEFT JOIN com_act ca ON d.community_id = ca.community_id
+        WHERE 1=1
+        <if test="comActDynVO.communityId != null and comActDynVO.communityId != '' ">
+            and d.community_id in (${comActDynVO.communityId})
+        </if>
+
+        <if test="comActDynVO.communityId == null  and  comActDynVO.streetId != null"  >
+            and d.community_id in (select community_id from com_act where street_id=#{comActDynVO.streetId})
+        </if>
+
+        <if test="comActDynVO.category != null and comActDynVO.category != '' ">
+            AND d.category = #{comActDynVO.category}
+        </if>
+        <if test="comActDynVO.title != null and comActDynVO.title.trim() != '' ">
+            AND d.title like concat(#{comActDynVO.title},'%')
+        </if>
+        <if test="comActDynVO.isTopping != null and comActDynVO.isTopping != '' ">
+            AND d.is_topping = #{comActDynVO.isTopping}
+        </if>
+        <if test="comActDynVO.status != null and comActDynVO.status != '' ">
+            AND d.`status` = #{comActDynVO.status}
+        </if>
+
+        <if test="comActDynVO.typeS == null or comActDynVO.typeS != 2 ">
+            <if test="comActDynVO.type != null and comActDynVO.type != '' ">
+                AND d.type = #{comActDynVO.type}
+            </if>
+        </if>
+
+        <if test="comActDynVO.typeS != null and comActDynVO.typeS == 2 ">
+            AND d.type in (
+            SELECT cadt.id FROM `com_act_dyn_type` as cadt WHERE cadt.name in
+            <foreach collection="comActDynVO.typeList" item="id" index="index" open="(" close=")" separator=",">
+                #{id}
+            </foreach>
+            <if test="comActDynVO.communityId != null and comActDynVO.communityId != '' ">
+                and cadt.community_id in (${comActDynVO.communityId})
+            </if>
+            union
+            SELECT cadt2.id FROM `com_act_dyn_type` as cadt2 WHERE  cadt2.area=1 and cadt2.name in
+            <foreach collection="comActDynVO.typeList" item="id" index="index" open="(" close=")" separator=",">
+                #{id}
+            </foreach>
+
+            )
+        </if>
+
+        <if test="comActDynVO.publishAtBegin != null ">
+            AND (d.publish_at BETWEEN #{comActDynVO.publishAtBegin} AND #{comActDynVO.publishAtEnd})
+        </if>
+        order by d.is_topping desc, d.create_at desc
+    </select>
+
+
+    <select id="getContent" resultType="String" parameterType="String">
+        SELECT content FROM `com_act_dyn` WHERE id=#{id}
+    </select>
+
+
+    <select id="getReadNum" resultType="Integer" parameterType="String">
+        SELECT COUNT(id) FROM `com_act_dyn_user` WHERE dyn_id=#{dynId}
+    </select>
+
+
+    <select id="getTypeId" resultType="String">
+        select id from com_act_dyn_type where community_id=#{communityId} and name=#{name} and area in (1,2) and is_del=2
+    </select>
+
+
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDynTypeDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDynTypeDOMapper.xml
new file mode 100644
index 0000000..bf9f079
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActDynTypeDOMapper.xml
@@ -0,0 +1,167 @@
+<?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.ComActDynTypeMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActDynTypeDO">
+        <id column="id" property="id" />
+        <result column="name" property="name" />
+        <result column="color" property="color" />
+        <result column="is_del" property="isDel" />
+        <result column="community_id" property="communityId" />
+        <result column="create_at" property="createAt" />
+        <result column="create_by" property="createBy" />
+        <result column="update_at" property="updateAt" />
+        <result column="update_by" property="updateBy" />
+        <result column="category" property="category" />
+        <result column="area" property="area" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, name, color, is_del, community_id, create_at, create_by, update_at, update_by
+    </sql>
+
+    <select id="pageDynTypeByAdmin" parameterType="com.panzhihua.common.model.dtos.community.PageComActDynTypeDTO"
+            resultType="com.panzhihua.common.model.vos.community.ComActDynTypeVO">
+        SELECT
+            cadt.id,
+            cadt.`name`,
+            cadt.color,
+            cadt.community_id,
+            cadt.create_at,
+            cadt.update_at,
+            su.`name` AS createBy,
+            su1.`name` AS updateBy,
+               cadt.category
+        FROM
+            com_act_dyn_type AS cadt
+            LEFT JOIN sys_user AS su ON su.user_id = cadt.create_by
+            LEFT JOIN sys_user AS su1 ON su1.user_id = cadt.update_by
+            where cadt.community_id = 0 and cadt.is_del = 2
+            <if test="comActDynTypeDTO.area == '2'">
+                AND cadt.area in (1,2)
+            </if>
+            <if test="comActDynTypeDTO.area == null or comActDynTypeDTO.area == '1' ">
+                AND cadt.area in (1)
+            </if>
+            <if test="comActDynTypeDTO.category != null">
+                AND cadt.category = #{comActDynTypeDTO.category}
+            </if>
+            <if test="comActDynTypeDTO.keyWord != null and comActDynTypeDTO.keyWord != &quot;&quot;">
+                and (cadt.id = #{comActDynTypeDTO.keyWord} or cadt.`name` like concat (#{comActDynTypeDTO.keyWord},'%'))
+            </if>
+            union all
+
+        SELECT
+        cadt.id,
+        cadt.`name`,
+        cadt.color,
+        cadt.community_id,
+        cadt.create_at,
+        cadt.update_at,
+        su.`name` AS createBy,
+        su1.`name` AS updateBy,
+        cadt.category
+        FROM
+        com_act_dyn_type AS cadt
+        LEFT JOIN sys_user AS su ON su.user_id = cadt.create_by
+        LEFT JOIN sys_user AS su1 ON su1.user_id = cadt.update_by
+        where cadt.is_del = 2
+        <if test="comActDynTypeDTO.area == '2'">
+            AND cadt.area in (1,2)
+        </if>
+        <if test="comActDynTypeDTO.area == null or comActDynTypeDTO.area == '1' ">
+            AND cadt.area in (1)
+        </if>
+        <if test='comActDynTypeDTO.category != null '>
+            AND cadt.category = #{comActDynTypeDTO.category}
+        </if>
+        <if test="comActDynTypeDTO.communityId != null">
+            <if test="comActDynTypeDTO.communityId == 0">
+                AND 1=2
+            </if>
+            and cadt.community_id = ${comActDynTypeDTO.communityId}
+        </if>
+        <if test="comActDynTypeDTO.keyWord != null and comActDynTypeDTO.keyWord != &quot;&quot;">
+            and (cadt.id = #{comActDynTypeDTO.keyWord} or cadt.`name` like concat (#{comActDynTypeDTO.keyWord},'%'))
+        </if>
+        order by create_at desc
+    </select>
+
+    <select id="getDynTypeListByAdmin" parameterType="com.panzhihua.common.model.dtos.community.PageComActDynTypeDTO"
+            resultType="com.panzhihua.common.model.vos.community.ComActDynTypeVO">
+        SELECT
+        cadt.id,
+        cadt.`name`,
+        cadt.color,
+        cadt.community_id,
+        cadt.create_at,
+        cadt.update_at,
+        su.`name` AS createBy,
+        su1.`name` AS updateBy
+        FROM
+        com_act_dyn_type AS cadt
+        LEFT JOIN sys_user AS su ON su.user_id = cadt.create_by
+        LEFT JOIN sys_user AS su1 ON su1.user_id = cadt.update_by
+        where cadt.community_id = 0 and cadt.is_del = 2
+        <if test="comActDynTypeDTO.area == '2'">
+            AND cadt.area in (1,2)
+        </if>
+        <if test="comActDynTypeDTO.area == null or comActDynTypeDTO.area == '1' ">
+            AND cadt.area in (1)
+        </if>
+        <if test="comActDynTypeDTO.category != null">
+            AND cadt.category = #{comActDynTypeDTO.category}
+        </if>
+        <if test="comActDynTypeDTO.keyWord != null and comActDynTypeDTO.keyWord != &quot;&quot;">
+            and (cadt.id = #{comActDynTypeDTO.keyWord} or cadt.`name` like concat (#{comActDynTypeDTO.keyWord},'%'))
+        </if>
+        union all
+
+        SELECT
+        cadt.id,
+        cadt.`name`,
+        cadt.color,
+        cadt.community_id,
+        cadt.create_at,
+        cadt.update_at,
+        su.`name` AS createBy,
+        su1.`name` AS updateBy
+        FROM
+        com_act_dyn_type AS cadt
+        LEFT JOIN sys_user AS su ON su.user_id = cadt.create_by
+        LEFT JOIN sys_user AS su1 ON su1.user_id = cadt.update_by
+        where cadt.is_del = 2
+        <if test="comActDynTypeDTO.area == '2'">
+            AND cadt.area in (1,2)
+        </if>
+        <if test="comActDynTypeDTO.area == null or comActDynTypeDTO.area == '1' ">
+            AND cadt.area in (1)
+        </if>
+        <if test='comActDynTypeDTO.category != null '>
+            AND cadt.category = #{comActDynTypeDTO.category}
+        </if>
+        <if test="comActDynTypeDTO.communityId != null and comActDynTypeDTO.communityId != 0 ">
+            AND cadt.community_id = ${comActDynTypeDTO.communityId}
+        </if>
+        <if test="comActDynTypeDTO.keyWord != null and comActDynTypeDTO.keyWord != &quot;&quot;">
+            and (cadt.id = #{comActDynTypeDTO.keyWord} or cadt.`name` like concat (#{comActDynTypeDTO.keyWord},'%'))
+        </if>
+    </select>
+
+    <select id="getDynCountByDynTypeIds" parameterType="List" resultType="Integer">
+        select count(id) from com_act_dyn where `type` in
+        <foreach collection='ids' item='id' index='index' open='(' close=')' separator=',' >
+        #{id}
+        </foreach>
+    </select>
+
+    <update id="deleteDynTypeByIds" parameterType="List">
+        update com_act_dyn_type set is_del = 1 where id in
+        <foreach collection='ids' item='id' index='index' open='(' close=')' separator=',' >
+            #{id}
+        </foreach>
+    </update>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoActivityDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoActivityDOMapper.xml
new file mode 100644
index 0000000..f850c2d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoActivityDOMapper.xml
@@ -0,0 +1,94 @@
+<?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.ComActEasyPhotoActivityMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActEasyPhotoActivityDO">
+        <id column="id" property="id" />
+        <result column="status" property="status" />
+        <result column="content" property="content" />
+        <result column="activity_start_at" property="activityStartAt" />
+        <result column="activity_ent_at" property="activityEndAt" />
+        <result column="release_at" property="releaseAt" />
+        <result column="good_reward" property="goodReward" />
+        <result column="excellent_reward" property="excellentReward" />
+        <result column="ordinary_reward" property="ordinaryReward" />
+        <result column="count" property="count" />
+        <result column="logo" property="logo" />
+        <result column="create_at" property="createAt" />
+        <result column="commonly_reward" property="commonlyReward" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, status, content, activity_start_at, activity_end_at, release_at, good_reward, excellent_reward, ordinary_reward, count, create_at, logo, commonly_reward
+    </sql>
+
+    <select id="pageActivity" parameterType="com.panzhihua.common.model.dtos.community.easyPhoto.PageEasyPhotoActivityDTO"
+            resultType="com.panzhihua.common.model.vos.community.ComActEasyPhotoActivityVO">
+        select id,community_id,status,content,activity_start_at,activity_end_at,release_at,good_reward
+        ,excellent_reward,ordinary_reward,commonly_reward,count,logo from com_act_easy_photo_activity
+        <where>
+            <if test="pageEasyPhotoActivityDTO.status != null">
+                and status = #{pageEasyPhotoActivityDTO.status}
+            </if>
+
+            <if test="pageEasyPhotoActivityDTO.communityId != null">
+                and community_id = ${pageEasyPhotoActivityDTO.communityId}
+            </if>
+
+            <if test="pageEasyPhotoActivityDTO.startTime != null and pageEasyPhotoActivityDTO.startTime != &quot;&quot;
+            and pageEasyPhotoActivityDTO.endTime != null and pageEasyPhotoActivityDTO.endTime != &quot;&quot;">
+                and (
+                #{pageEasyPhotoActivityDTO.startTime} BETWEEN activity_start_at AND activity_end_at OR
+                #{pageEasyPhotoActivityDTO.endTime} BETWEEN activity_start_at AND activity_end_at OR
+                activity_start_at BETWEEN #{pageEasyPhotoActivityDTO.startTime} AND #{pageEasyPhotoActivityDTO.endTime} OR
+                activity_end_at   BETWEEN #{pageEasyPhotoActivityDTO.startTime} AND #{pageEasyPhotoActivityDTO.endTime}
+                )
+            </if>
+        </where>
+
+        order by release_at desc
+    </select>
+
+    <select id="getEasyPhotoActivityTimeConflict" resultType="Integer">
+        SELECT count(id)
+        FROM com_act_easy_photo_activity
+        WHERE status in (1,2) and (
+        #{startTime} BETWEEN activity_start_at AND activity_end_at OR
+        #{endTime} BETWEEN activity_start_at AND activity_end_at OR
+        activity_start_at BETWEEN #{startTime} AND #{endTime} OR
+        activity_end_at   BETWEEN #{startTime} AND #{endTime}
+        )
+        <if test="activityId != null">
+            and id != #{activityId}
+        </if>
+
+        and community_id = ${communityId}
+
+    </select>
+
+    <select id="pageActivityUser" parameterType="com.panzhihua.common.model.dtos.community.easyPhoto.PageEasyPhotoActivityUserDTO"
+            resultType="com.panzhihua.common.model.vos.community.easyPhoto.ComActEasyPhotoActivityUserVO">
+        SELECT
+            caep.id,
+            su.nick_name,
+            su.name as userName,
+            su.phone,
+            caep.detail,
+            caep.activity_type,
+            caep.activity_amount,
+            caep.`status`,
+            caep.create_at
+        FROM
+            com_act_easy_photo AS caep
+            LEFT JOIN sys_user AS su ON su.user_id = caep.sponsor_id
+            <where>
+                <if test="pageEasyPhotoActivityUserDTO.activityId != null">
+                    and activity_id = #{pageEasyPhotoActivityUserDTO.activityId}
+                </if>
+            </where>
+            order by caep.create_at desc
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoActivityRecordDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoActivityRecordDOMapper.xml
new file mode 100644
index 0000000..bc6609d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoActivityRecordDOMapper.xml
@@ -0,0 +1,23 @@
+<?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.ComActEasyPhotoActivityRecordMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActEasyPhotoActivityRecordDO">
+        <id column="id" property="id" />
+        <result column="user_id" property="userId" />
+        <result column="activity_id" property="activityId" />
+        <result column="community_id" property="communityId" />
+        <result column="easy_id" property="easyId" />
+        <result column="type" property="type" />
+        <result column="reward_amount" property="rewardAmount" />
+        <result column="join_at" property="joinAt" />
+        <result column="create_at" property="createAt" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, user_id, activity_id, community_id, easy_id, type, reward_amount, join_at, create_at
+    </sql>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoClassifyDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoClassifyDOMapper.xml
new file mode 100644
index 0000000..4cf293a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoClassifyDOMapper.xml
@@ -0,0 +1,46 @@
+<?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.ComActEasyPhotoClassifyMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActEasyPhotoClassifyDO">
+        <id column="id" property="id" />
+        <result column="name" property="name" />
+        <result column="status" property="status" />
+        <result column="weight" property="weight" />
+        <result column="remark" property="remark" />
+        <result column="create_at" property="createAt" />
+        <result column="update_at" property="updateAt" />
+        <result column="add_type" property="addType" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, name, status, weight, remark, create_at, update_at,add_type
+    </sql>
+
+    <select id="getPhotoClassifyPage" resultType="com.panzhihua.common.model.vos.community.easyPhoto.ComActEasyPhotoClassifyVO">
+        select id,`name`,`status`,weight,remark,create_at,update_at,add_type
+        from com_act_easy_photo_classify
+        <where>
+            <if test="photoClassifyDTO.name != null and photoClassifyDTO.name != &quot;&quot;">
+                and `name` like concat (#{photoClassifyDTO.name},'%')
+            </if>
+            <if test="photoClassifyDTO.areaCode != null and photoClassifyDTO.areaCode != &quot;&quot;">
+                and area_code = #{photoClassifyDTO.areaCode}
+            </if>
+            <if test="photoClassifyDTO.addType != null and photoClassifyDTO.addType != &quot;&quot;">
+                and `add_type` = #{photoClassifyDTO.addType}
+            </if>
+        </where>
+        order by create_at desc
+    </select>
+
+    <select id="getPhotoClassifyList" resultType="com.panzhihua.common.model.vos.community.easyPhoto.ComActEasyPhotoClassifyVO">
+        select id,`name`,`status`,weight,remark,create_at,update_at,add_type
+        from com_act_easy_photo_classify
+        where area_code = #{areaCode}
+        order by create_at desc
+    </select>
+
+</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
new file mode 100644
index 0000000..3a61676
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoDOMapper.xml
@@ -0,0 +1,698 @@
+<?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.ComActEasyPhotoDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActEasyPhotoDO">
+        <id column="id" property="id" />
+        <result column="sponsor_id" property="sponsorId" />
+        <result column="happen_addr" property="happenAddr" />
+        <result column="addr_remark" property="addrRemark" />
+        <result column="status" property="status" />
+        <result column="handler_id" property="handlerId" />
+        <result column="create_at" property="createAt" />
+        <result column="examine_at" property="examineAt" />
+        <result column="detail" property="detail" />
+        <result column="photo_path_list" property="photoPathList" />
+        <result column="handle_result" property="handleResult" />
+        <result column="handle_photo_list" property="handlePhotoList" />
+        <result column="community_id" property="communityId" />
+        <result column="is_hide" property="isHide" />
+        <result column="is_need_feed_back" property="isNeedFeedBack" />
+        <result column="feedback_at" property="feedbackAt" />
+        <result column="reject_reason" property="rejectReason" />
+        <result column="del_tag" property="delTag" />
+        <result column="is_report" property="isReport" />
+        <result column="is_publicity" property="isPublicity" />
+        <result column="handle_status" property="handleStatus" />
+        <result column="lng_lat" property="lngLat" />
+        <result column="activity_type" property="activityType" />
+        <result column="activity_amount" property="activityAmount" />
+        <result column="activity_id" property="activityId" />
+        <result column="img_width" property="imgWidth" />
+        <result column="img_height" property="imgHeight" />
+        <result column="add_type" property="addType" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, sponsor_id, happen_addr, addr_remark, status, handler_id, create_at, examine_at, detail, photo_path_list
+        , handle_result, handle_photo_list, community_id, is_hide, is_need_feed_back, feedback_at, reject_reason
+        , del_tag, is_report, is_publicity, handle_status, lng_lat, activity_type, activity_amount, activity_id
+        , img_width, img_height,add_type
+    </sql>
+
+    <select id="pageEasyPhotoAdmin" parameterType="com.panzhihua.common.model.vos.community.ComActEasyPhotoVO"
+            resultType="com.panzhihua.common.model.vos.community.ComActEasyPhotoVO">
+        SELECT
+            p.id,
+            u.`name` sponsor_name,
+            u.phone phone,
+            count( pu.id ) giveThumbsUpNum,
+            u.image_url,
+            p.happen_addr,
+            su.`name` handler_name,
+            p.`status`,
+            p.`detail`,
+            p.`is_need_feed_back`,
+            p.`photo_path_list`,
+            p.create_at,
+            p.feedback_at,
+            p.is_report,
+            p.is_publicity,
+            p.activity_type,
+            p.activity_amount,
+            p.activity_id,
+            p.is_report_urban,
+            p.is_report_dpc,
+            p.classify_id,
+            ca.`name` as classifyName,
+            p.examine_at,
+            c.name  communityName,
+            p.urban_status,
+            p.transfer_reason,
+            p.add_type,
+        p.handle_status
+        FROM
+            com_act_easy_photo p
+            LEFT JOIN sys_user u ON p.sponsor_id = u.user_id
+            LEFT JOIN com_act_easy_photo_user pu ON p.id = pu.easy_photo_id
+            LEFT JOIN sys_user su ON p.handler_id = su.user_id
+            left join com_act c on p.community_id =c.community_id
+            left join com_act_easy_photo_classify ca on ca.id = p.classify_id
+        WHERE
+            p.del_tag = 0 and p.`status` != 3
+        <if test='comActEasyPhotoVO.communityId != null and comActEasyPhotoVO.communityId != 0'>
+          and p.community_id = ${comActEasyPhotoVO.communityId}
+        </if>
+        <if test='comActEasyPhotoVO.addType != null'>
+            and p.add_type = #{comActEasyPhotoVO.addType}
+        </if>
+        <if test='comActEasyPhotoVO.status != null and comActEasyPhotoVO.status!=0' >
+          AND p.`status` = #{comActEasyPhotoVO.status}
+        </if>
+        <if test='comActEasyPhotoVO.isPublicity != null' >
+            AND p.`is_publicity` = #{comActEasyPhotoVO.isPublicity}
+        </if>
+        <if test='comActEasyPhotoVO.isReportUrban != null' >
+            AND p.`is_report_urban` = #{comActEasyPhotoVO.isReportUrban}
+        </if>
+        <if test='comActEasyPhotoVO.isReportDpc != null' >
+            AND p.`is_report_dpc` = #{comActEasyPhotoVO.isReportDpc}
+        </if>
+        <if test='comActEasyPhotoVO.classifyId != null' >
+            AND p.`classify_id` = #{comActEasyPhotoVO.classifyId}
+        </if>
+        <if test='comActEasyPhotoVO.urbanStatus != null' >
+            AND p.`urban_status` = #{comActEasyPhotoVO.urbanStatus}
+        </if>
+        <if test='comActEasyPhotoVO.createBegin != null  '>
+        AND p.create_at BETWEEN #{comActEasyPhotoVO.createBegin}
+        AND #{comActEasyPhotoVO.createEnd}
+        </if>
+        <if test='comActEasyPhotoVO.activityType != null'>
+            AND p.activity_type =#{comActEasyPhotoVO.activityType}
+        </if>
+
+        <if test='comActEasyPhotoVO.keyWord != null and comActEasyPhotoVO.keyWord != &quot;&quot;'>
+            AND (u.`name` like concat(#{comActEasyPhotoVO.keyWord},'%') or
+            p.happen_addr like concat(#{comActEasyPhotoVO.keyWord},'%') or
+            su.`name` like concat(#{comActEasyPhotoVO.keyWord},'%') or
+            p.detail like concat(#{comActEasyPhotoVO.keyWord},'%') or u.phone like concat(#{comActEasyPhotoVO.keyWord},'%')
+            )
+        </if>
+        GROUP BY
+            p.id
+        ORDER BY
+            p.create_at DESC
+
+    </select>
+
+    <select id="getEasyPhotoStatistics" resultType="com.panzhihua.common.model.vos.community.easyPhoto.ComActEasyPhotoStatisticsVO">
+        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` in (1,2,4,5) AND `is_publicity` = 1 AND community_id = ${communityId} AND del_tag = 0 ) AS rejectNum,
+            ( SELECT count( id ) FROM com_act_easy_photo WHERE `status` = 5 AND community_id = ${communityId} AND del_tag = 0 ) AS completeNum,
+            ( SELECT count( id ) FROM com_act_easy_photo WHERE `status` = 4 AND community_id = ${communityId} AND del_tag = 0 ) AS commitAmount,
+            (select count(id) from com_act_easy_photo where `status` in (2,4,5) 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,5) 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,
+            (select count(id) from com_act_easy_photo where `status` in (2,4,5) AND community_id = ${communityId} and del_tag = 0 and activity_type = 2) as jlAllTotal,
+            (select count(id) from com_act_easy_photo where `status` in (2,4,5) AND community_id = ${communityId} and del_tag = 0 and activity_type = 2 and examine_at between timestamp(date_add(curdate(), interval - 0 day)) and now()) as jlDayTotal,
+            (select count(id) from com_act_easy_photo where `status` in (2,4,5) AND community_id = ${communityId} and del_tag = 0 and activity_type = 3) as ptAllTotal,
+            (select count(id) from com_act_easy_photo where `status` in (2,4,5) AND community_id = ${communityId} and del_tag = 0 and activity_type = 3 and examine_at between timestamp(date_add(curdate(), interval - 0 day)) and now()) as ptDayTotal,
+            (select count(id) from com_act_easy_photo where `status` in (2,4,5) AND community_id = ${communityId} and del_tag = 0 and activity_type = 4) as ybAllTotal,
+            (select count(id) from com_act_easy_photo where `status` in (2,4,5) AND community_id = ${communityId} and del_tag = 0 and activity_type = 4 and examine_at between timestamp(date_add(curdate(), interval - 0 day)) and now()) as ybDayTotal,
+            (select IFNULL(sum(activity_amount),0) from com_act_easy_photo where `status` in (2,4,5) AND community_id = ${communityId} and del_tag = 0) as allRewardAmount,
+            (select IFNULL(sum(activity_amount),0)  from com_act_easy_photo where `status` in (2,4,5) AND community_id = ${communityId} and del_tag = 0 and examine_at between timestamp(date_add(curdate(), interval - 0 day)) and now()) as dayRewardAmount
+        FROM
+            com_act_easy_photo
+        WHERE
+            `status` = 1
+            AND community_id = ${communityId}
+            AND del_tag = 0
+    </select>
+
+    <select id="easyPhotoCount" resultType="com.panzhihua.common.model.vos.community.easyPhoto.ComActEasyPhotoCountVO">
+        select count(*) total,(select count(*) today from com_act_easy_photo where transfer_time BETWEEN DATE_FORMAT(CURDATE(),'%Y-%m-%d %H:%i:%s')  and DATE_ADD(CURRENT_DATE, INTERVAL 1 DAY)
+       <if test="urbanStatus !=null">
+        and urban_status=#{urbanStatus}
+        </if>)
+            today from com_act_easy_photo
+        <where>
+            1=1
+            <if test="urbanStatus !=null">
+                    and urban_status=#{urbanStatus}
+            </if>
+        </where>
+    </select>
+
+    <select id="export" resultType="com.panzhihua.common.model.vos.community.ComActEasyPhotoVO">
+        SELECT
+            p.id,
+            u.`name` sponsor_name,
+            u.phone phone,
+            count( pu.id ) giveThumbsUpNum,
+            u.image_url,
+            p.happen_addr,
+            su.`name` handler_name,
+            p.`status`,
+            p.`detail`,
+            p.`is_need_feed_back`,
+            p.`photo_path_list`,
+            p.create_at,
+            p.feedback_at,
+            p.is_report,
+            p.is_publicity,
+            p.activity_type,
+            p.activity_amount,
+            p.activity_id,
+            p.examine_at,
+            c.name  communityName,
+            p.is_report_urban,
+            p.urban_status,
+            p.add_type,
+            ca.`name` as photoType
+        FROM
+            com_act_easy_photo p
+                LEFT JOIN sys_user u ON p.sponsor_id = u.user_id
+                LEFT JOIN com_act_easy_photo_user pu ON p.id = pu.easy_photo_id
+                LEFT JOIN sys_user su ON p.handler_id = su.user_id
+                left join com_act c on p.community_id =c.community_id
+                left join com_act_easy_photo_classify ca on ca.id = p.classify_id
+        WHERE
+            p.del_tag = 0 and p.`is_report_urban` =1
+        <if test='communityId != null and communityId != 0'>
+            and p.community_id = ${communityId}
+        </if>
+        <if test='urbanStatus != null ' >
+            AND p.`urban_status` = #{urbanStatus}
+        </if>
+        <if test='createBegin != null  '>
+            AND p.create_at BETWEEN #{createBegin}
+            AND #{createEnd}
+        </if>
+
+        <if test='keyWord != null and keyWord != &quot;&quot;'>
+            AND (u.`name` like concat(#{keyWord},'%') or
+            p.happen_addr like concat(#{keyWord},'%') or
+            su.`name` like concat(#{keyWord},'%') or
+            p.detail like concat(#{keyWord},'%') or u.phone like concat(#{comActEasyPhotoVO.keyWord},'%')
+            )
+        </if>
+        GROUP BY
+        p.id
+        ORDER BY
+        p.create_at DESC
+    </select>
+
+    <select id="exportByIds" resultType="com.panzhihua.common.model.vos.community.easyPhoto.ExportEasyPhotoVO">
+        SELECT
+        p.id,
+        u.`name` sponsor_name,
+        u.phone phone,
+        count( pu.id ) giveThumbsUpNum,
+        u.image_url,
+        p.happen_addr,
+        su.`name` handler_name,
+        p.`status`,
+        p.`detail`,
+        p.`is_need_feed_back`,
+        p.`photo_path_list`,
+        p.create_at,
+        p.feedback_at,
+        p.is_report,
+        p.is_publicity,
+        p.activity_type,
+        p.activity_amount,
+        p.activity_id,
+        p.examine_at,
+        c.name  communityName,
+        p.is_report_urban,
+        p.is_report_dpc,
+        p.urban_status,
+        p.add_type,
+        ca.`name` as photoType
+        FROM
+        com_act_easy_photo p
+        LEFT JOIN sys_user u ON p.sponsor_id = u.user_id
+        LEFT JOIN com_act_easy_photo_user pu ON p.id = pu.easy_photo_id
+        LEFT JOIN sys_user su ON p.handler_id = su.user_id
+        left join com_act c on p.community_id =c.community_id
+        left join com_act_easy_photo_classify ca on ca.id = p.classify_id
+        WHERE
+        p.id in
+        <foreach collection="list" item="ids" index="index"
+                 open="(" close=")" separator=",">
+        #{ids}
+        </foreach>
+        GROUP BY
+        p.id
+        ORDER BY
+        p.create_at DESC
+    </select>
+
+    <select id="easyPhotoNoHandleIds" resultType="Long">
+        select id from com_act_easy_photo where `status` = 1 and community_id = ${communityId} and del_tag = 0
+    </select>
+
+    <select id="banner" resultType="com.panzhihua.common.model.vos.community.easyPhoto.BannerVO">
+        select id,cover,publish_at as show_time,1 as type,jump_url,jump_type  from com_act_dyn where status =1 and category !=10 and cover is not null and community_id = ${communityId}
+        UNION ALL
+        select id,cover,publish_at as show_time,2 as type,"" as   jump_url,"" as jump_type from com_act_activity  where status =3 and cover is not null and community_id = ${communityId}
+        UNION ALL
+        select id,cover,release_time as show_time,3 as type,"" as   jump_url,"" as jump_type from com_pb_activity  where status =3 and cover is not null and community_id = ${communityId}
+        UNION ALL
+        select id,"" as cover,publish_time as show_time,4 as type,"" as   jump_url,"" as jump_type from com_act_questnaire  where state =2   and community_id = ${communityId}
+        UNION ALL
+        select id,cover,publish_at as show_time,5 as type,jump_url,jump_type from com_pb_dyn  where status =2 and cover is not null and community_id = ${communityId}
+        UNION ALL
+        select id,img_url as cover,publish_time as show_time,6 as type,"" as   jump_url,"" as jump_type from com_act_reserve  where status =2 and community_id = ${communityId}
+        UNION ALL
+        select id,logo as cover,release_at as show_time,7 as type,"" as   jump_url,"" as jump_type from com_act_easy_photo_activity  where status =2  and community_id = ${communityId}
+        order by show_time desc limit 30
+    </select>
+    <select id="selectStatisticsList" resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT t1.`name` AS filed, COUNT(t2.id) AS num
+        FROM com_act_easy_photo_classify t1
+        LEFT JOIN (SELECT * FROM com_act_easy_photo WHERE community_id = ${communityId} AND `status` IN (1,2,4,5) AND del_tag = 0) t2 ON t1.id = t2.classify_id
+        WHERE t1.`status` = 1 GROUP BY filed
+    </select>
+    <select id="selectResidentAutonomyStatistics"
+            resultType="com.panzhihua.common.model.vos.community.bigscreen.ResidentAutonomyStatisticsVO">
+        SELECT * FROM
+        (SELECT COUNT(id) AS easyPhotoCurrentMonCount FROM com_act_easy_photo WHERE community_id = ${communityId} AND del_tag = 0 AND DATE_FORMAT( create_at, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )) t1,
+        (SELECT COUNT(id) AS microWishCurrentMonCount FROM com_act_micro_wish WHERE community_id = ${communityId} AND DATE_FORMAT( create_at, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )) t2,
+        (SELECT IF(SUM(aim_num) IS NULL,0,SUM(aim_num)) AS aimNum FROM com_act_micro_wish WHERE community_id = ${communityId} AND `status` != 4) t3,
+        (SELECT COUNT(id) AS microWishTotal FROM com_act_micro_wish WHERE community_id = ${communityId} AND `status` != 4) t4,
+        (SELECT COUNT(id) AS committeeCurrentMonCount FROM com_act_committee WHERE community_id = ${communityId} AND DATE_FORMAT( create_time, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )) t5,
+        (SELECT COUNT(id) AS committeeTotal FROM com_act_committee WHERE community_id = ${communityId}) t6,
+        (SELECT ROUND( a.num / b.total * 100, 2 ) AS areaCoverPercent FROM
+            (SELECT COUNT(DISTINCT(area_id)) AS num FROM com_act_committee WHERE community_id = ${communityId}) a,
+            (SELECT COUNT(village_id) AS total FROM com_mng_village WHERE community_id = ${communityId}) b
+        ) t7,
+        (SELECT COUNT(id) AS discussCurrentMonCount FROM com_act_discuss WHERE community_id = ${communityId} AND is_del = 2 AND DATE_FORMAT( create_at, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )) t8,
+        (SELECT COUNT(id) AS discussTotal FROM com_act_discuss WHERE community_id = ${communityId} AND is_del = 2) t9,
+        (SELECT COUNT(id) AS neighborCurrentMonCount FROM com_act_neighbor_circle WHERE community_id = ${communityId} AND is_del = 2 AND DATE_FORMAT( create_at, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )) t10,
+        (SELECT COUNT(id) AS neighborTotal, SUM(fabulous_num) AS neighborFabulousNum, SUM(forward_num) AS neighborForwardNum,
+            SUM(comment_num) AS neighborCommentNum FROM com_act_neighbor_circle WHERE community_id = ${communityId} AND is_del = 2) t11,
+        (SELECT COUNT(c1.id) AS repairCurrentMonCount FROM com_property_repair c1
+            LEFT JOIN com_property c2 ON c1.property_id = c2.id
+            WHERE c2.community_id = ${communityId} AND DATE_FORMAT( c1.create_time, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )) t12,
+        (SELECT COUNT(c1.id) AS repairTotal FROM com_property_repair c1
+            LEFT JOIN com_property c2 ON c1.property_id = c2.id
+            WHERE c2.community_id = ${communityId}) t13,
+        (SELECT IF(SUM(quantity) IS NULL,0,SUM(quantity)) AS warehouseCurrentMonCount FROM com_act_warehouse_donates WHERE community_id = ${communityId} AND `status` = 2 AND DATE_FORMAT( signing_at, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )) t14,
+        (SELECT warehouseTotal, warehouseSurplusTotal, warehouseTotal - warehouseSurplusTotal AS warehouseApplyTotal FROM
+            (SELECT IF(SUM(quantity) IS NULL,0,SUM(quantity)) AS warehouseTotal, IF(SUM(surplus_quantity) IS NULL,0,SUM(surplus_quantity)) AS warehouseSurplusTotal FROM com_act_warehouse_donates WHERE community_id = ${communityId} AND `status` = 2) temp) t15,
+        (SELECT COUNT(DISTINCT d2.user_id) AS discussCount FROM com_act_discuss d1
+            INNER JOIN com_act_discuss_comment d2 ON d1.id = d2.discuss_id
+            WHERE d1.community_id = ${communityId} AND d1.is_del = 2 AND `type` = 1) t16,
+        (SELECT COUNT(DISTINCT d2.user_id) AS voteCount FROM com_act_discuss d1
+            INNER JOIN com_act_discuss_option_user d2 ON d1.id = d2.discuss_id
+            WHERE d1.community_id = ${communityId} AND d1.is_del = 2 AND `type` = 2) t17,
+        (SELECT COUNT(id) AS residentActCurrentMonCount
+            FROM com_act_activity
+            WHERE community_id = ${communityId} AND volunteer_max = 0 AND DATE_FORMAT( publish_at, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )) t18
+    </select>
+    <select id="selectGridsGovernance"
+            resultType="com.panzhihua.common.model.vos.community.bigscreen.GridsGovernanceStatisticsVO">
+        SELECT
+        IFNULL((SELECT  count( e.id ) FROM   `event` AS e
+        LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+        WHERE   e.event_category = 1   AND e.event_type = 5   AND e.event_status = 2    AND egd.grid_community_id = ${communityId}), 0) +
+        IFNULL((SELECT COUNT(1) FROM com_act_easy_photo
+        WHERE community_id = ${communityId} AND `status` IN (1,2,4,5) AND del_tag = 0 AND classify_id = 7), 0) AS eventTFTotal,
+
+        IFNULL((   SELECT  count( e1.id )   FROM   `event` AS e1
+        LEFT JOIN event_grid_data AS egd1 ON egd1.id = e1.grid_id     WHERE    event_category = 1     AND event_type = 1     AND event_status = 2      AND egd1.grid_community_id = ${communityId}     ),   0   ) +
+        IFNULL((SELECT COUNT(1) FROM com_act_easy_photo
+        WHERE community_id = ${communityId} AND `status` IN (1,2,4,5) AND del_tag = 0 AND classify_id = 4), 0) AS eventZATotal,
+
+        IFNULL((   SELECT    count( e2.id )    FROM    `event` AS e2     LEFT JOIN event_grid_data AS egd2 ON egd2.id = e2.grid_id    WHERE    event_category = 1      AND event_type = 3     AND event_status = 2     AND egd2.grid_community_id = ${communityId}      ),   0   ) +
+        IFNULL((SELECT COUNT(1) FROM com_act_easy_photo
+        WHERE community_id = ${communityId} AND `status` IN (1,2,4,5) AND del_tag = 0 AND classify_id = 5), 0) AS eventMDTotal,
+
+        IFNULL((   SELECT    count( e3.id )    FROM     `event` AS e3    LEFT JOIN event_grid_data AS egd3 ON egd3.id = e3.grid_id    WHERE     event_category = 1     AND event_type = 6     AND event_status = 2      AND egd3.grid_community_id = ${communityId}     ),   0   ) +
+        IFNULL((SELECT COUNT(1) FROM com_act_easy_photo
+        WHERE community_id = ${communityId} AND `status` IN (1,2,4,5) AND del_tag = 0 AND classify_id = 3), 0) AS eventTSTotal,
+
+        IFNULL((SELECT COUNT(1) FROM com_act_easy_photo
+        WHERE community_id = ${communityId} AND `status` IN (1,2,4,5) AND del_tag = 0 AND classify_id = 8), 0) AS eventFJTotal,
+
+        IFNULL((   SELECT    count( e5.id )    FROM     `event` AS e5    LEFT JOIN event_grid_data AS egd5 ON egd5.id = e5.grid_id    WHERE     event_category = 1     AND event_type = 2     AND event_status = 2      AND egd5.grid_community_id = ${communityId}     ),   0   ) +
+        IFNULL((SELECT COUNT(1) FROM com_act_easy_photo
+        WHERE community_id = ${communityId} AND `status` IN (1,2,4,5) AND del_tag = 0 AND classify_id = 6), 0) AS eventMSTotal,
+
+        IFNULL((SELECT COUNT(1) FROM com_act_easy_photo
+        WHERE community_id = ${communityId} AND `status` IN (1,2,4,5) AND del_tag = 0 AND classify_id = 1), 0) AS otherTotal,
+
+        IFNULL((SELECT  count( e.id ) FROM   `event` AS e
+        LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+        WHERE   e.event_category = 1   AND e.event_type = 5   AND e.event_deal_status = 4    AND egd.grid_community_id = ${communityId}), 0) +
+        IFNULL((SELECT COUNT(1) FROM com_act_easy_photo
+        WHERE community_id = ${communityId} AND `status` IN(4,5) AND del_tag = 0 AND classify_id = 7), 0) AS eventTFDeal,
+
+        IFNULL((   SELECT  count( e1.id )   FROM   `event` AS e1
+        LEFT JOIN event_grid_data AS egd1 ON egd1.id = e1.grid_id     WHERE    event_category = 1     AND event_type = 1     AND event_deal_status = 4      AND egd1.grid_community_id = ${communityId}     ),   0   ) +
+        IFNULL((SELECT COUNT(1) FROM com_act_easy_photo
+        WHERE community_id = ${communityId} AND `status` IN(4,5) AND del_tag = 0 AND classify_id = 4), 0) AS eventZADeal,
+
+        IFNULL((   SELECT    count( e2.id )    FROM    `event` AS e2     LEFT JOIN event_grid_data AS egd2 ON egd2.id = e2.grid_id    WHERE    event_category = 1      AND event_type = 3     AND event_deal_status = 4     AND egd2.grid_community_id = ${communityId}      ),   0   ) +
+        IFNULL((SELECT COUNT(1) FROM com_act_easy_photo
+        WHERE community_id = ${communityId} AND `status` IN(4,5) AND del_tag = 0 AND classify_id = 5), 0) AS eventMDDeal,
+
+        IFNULL((   SELECT    count( e3.id )    FROM     `event` AS e3    LEFT JOIN event_grid_data AS egd3 ON egd3.id = e3.grid_id    WHERE     event_category = 1     AND event_type = 6     AND event_deal_status = 4      AND egd3.grid_community_id = ${communityId}     ),   0   ) +
+        IFNULL((SELECT COUNT(1) FROM com_act_easy_photo
+        WHERE community_id = ${communityId} AND `status` IN(4,5) AND del_tag = 0 AND classify_id = 3), 0) AS eventTSDeal,
+
+        IFNULL((SELECT COUNT(1) FROM com_act_easy_photo
+        WHERE community_id = ${communityId} AND `status` IN(4,5) AND del_tag = 0 AND classify_id = 8), 0) AS eventFJDeal,
+
+        IFNULL((   SELECT    count( e5.id )    FROM     `event` AS e5    LEFT JOIN event_grid_data AS egd5 ON egd5.id = e5.grid_id    WHERE     event_category = 1     AND event_type = 2     AND event_deal_status = 4      AND egd5.grid_community_id = ${communityId}     ),   0   ) +
+        IFNULL((SELECT COUNT(1) FROM com_act_easy_photo
+        WHERE community_id = ${communityId} AND `status` IN(4,5) AND del_tag = 0 AND classify_id = 6), 0) AS eventMSDeal,
+
+        IFNULL((SELECT COUNT(1) FROM com_act_easy_photo
+        WHERE community_id = ${communityId} AND `status` IN(4,5) AND del_tag = 0 AND classify_id = 1), 0) AS otherDeal,
+        IFNULL((SELECT  count(id) FROM  event_grid_data WHERE  grid_community_id = ${communityId}), 0) AS gridTotal,
+        IFNULL((select count(egmr.id) from event_grid_member_relation as egmr left join event_grid_data as egd1 on egd1.id = egmr.grid_id where egd1.grid_community_id = ${communityId}), 0) AS gridMemberTotal
+    </select>
+    <select id="selectIndexEasyPhotoBaseData"
+            resultType="com.panzhihua.common.model.vos.community.bigscreen.BigScreenEasyPhotoStatisticsInfo">
+        SELECT
+        (SELECT COUNT(id) FROM com_act_easy_photo WHERE community_id = ${communityId} AND `status` IN(4,5) AND del_tag = 0 AND classify_id IN (1552663338578743296,1552663345243492353,1552663345524510720,1552663345570648064,1552663345683894273,1552663345751003136,1552663345885220866)) AS eventDealTotal,
+        (SELECT COUNT(id) FROM com_act_easy_photo WHERE community_id = ${communityId} AND `status` IN(4,5) AND del_tag = 0 AND classify_id = 1552663345751003136) AS eventTFDeal,
+        (SELECT COUNT(id) FROM com_act_easy_photo WHERE community_id = ${communityId} AND `status` IN(4,5) AND del_tag = 0 AND classify_id = 1552663345524510720) AS eventZADeal,
+        (SELECT COUNT(id) FROM com_act_easy_photo WHERE community_id = ${communityId} AND `status` IN(4,5) AND del_tag = 0 AND classify_id = 1552663345570648064) AS eventMDDeal,
+        (SELECT COUNT(id) FROM com_act_easy_photo WHERE community_id = ${communityId} AND `status` IN(4,5) AND del_tag = 0 AND classify_id = 1552663345243492353) AS eventTSDeal,
+        (SELECT COUNT(id) FROM com_act_easy_photo WHERE community_id = ${communityId} AND `status` IN(4,5) AND del_tag = 0 AND classify_id = 1552663345683894273) AS eventMSDeal,
+        (SELECT COUNT(id) FROM com_act_easy_photo WHERE community_id = ${communityId} AND `status` IN(4,5) AND del_tag = 0 AND classify_id = 1552663345885220866) AS eventFJDeal,
+        (SELECT COUNT(id) FROM com_act_easy_photo WHERE community_id = ${communityId} AND `status` IN(4,5) AND del_tag = 0 AND classify_id = 1552663338578743296) AS otherDeal
+    </select>
+    <select id="getEasyPhotoAddPolylineData"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT filed, SUM(num) AS num FROM (
+        SELECT DATE_FORMAT( create_at, '%Y-%m' ) AS filed, COUNT(id) AS num
+        FROM com_act_easy_photo
+        WHERE community_id = ${communityId} AND del_tag = 0
+        AND DATE_FORMAT( create_at, '%Y-%m' ) &gt; DATE_FORMAT(date_sub(curdate(), interval 12 month),'%Y-%m') GROUP BY filed
+        UNION ALL SELECT * FROM
+            (
+                SELECT DATE_FORMAT(curdate(),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 1 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 2 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 3 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 4 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 5 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 6 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 7 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 8 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 9 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 10 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 11 month),'%Y-%m') AS filed, 0 AS num
+            ) temT
+        ) temp GROUP BY filed ORDER BY filed ASC
+    </select>
+    <select id="getEasyPhotoTotalPolylineDate"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT COUNT(id) AS num FROM com_act_easy_photo
+        WHERE community_id = ${communityId} AND del_tag = 0
+        AND DATE_FORMAT( create_at, '%Y-%m' ) &lt;= #{date}
+    </select>
+    <select id="indexEasyPhotoList" resultType="com.panzhihua.common.model.vos.community.ComActEasyPhotoVO">
+        SELECT t1.id, t1.detail, t1.photo_path_list, t1.`status`, t2.`name` AS classifyName
+        FROM com_act_easy_photo t1
+        LEFT JOIN com_act_easy_photo_classify t2 ON t1.classify_id = t2.id
+        WHERE t1.community_id = ${pageBaseDTO.communityId} AND t1.`status` IN(4,5) AND t1.del_tag = 0
+        <if test="pageBaseDTO.paramId != null">
+            AND t1.classify_id = #{pageBaseDTO.paramId}
+        </if>
+        ORDER BY t1.id DESC
+    </select>
+
+    <select id="selectBigscreenGridsGovern" resultType="com.panzhihua.common.model.vos.community.bigscreen.BigscreenGridsGovernanceStatisticsVO">
+        SELECT
+                IFNULL((SELECT  count( e.id ) FROM   `event` AS e
+                                                         LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+                        WHERE   e.event_category = 1   AND e.event_type = 5   AND e.event_status = 2    AND egd.grid_community_id = ${communityId}), 0) +
+                IFNULL((SELECT COUNT(1) FROM com_act_easy_photo
+                        WHERE community_id = ${communityId} AND `status` IN (1,2,4,5) AND del_tag = 0 AND classify_id = 7), 0) AS eventTFTotal,
+
+                IFNULL((   SELECT  count( e1.id )   FROM   `event` AS e1
+                                                               LEFT JOIN event_grid_data AS egd1 ON egd1.id = e1.grid_id     WHERE    event_category = 1     AND event_type = 1     AND event_status = 2      AND egd1.grid_community_id = ${communityId}     ),   0   ) +
+                IFNULL((SELECT COUNT(1) FROM com_act_easy_photo
+                        WHERE community_id = ${communityId} AND `status` IN (1,2,4,5) AND del_tag = 0 AND classify_id = 4), 0) AS eventZATotal,
+
+                IFNULL((   SELECT    count( e2.id )    FROM    `event` AS e2     LEFT JOIN event_grid_data AS egd2 ON egd2.id = e2.grid_id    WHERE    event_category = 1      AND event_type = 3     AND event_status = 2     AND egd2.grid_community_id = ${communityId}      ),   0   ) +
+                IFNULL((SELECT COUNT(1) FROM com_act_easy_photo
+                        WHERE community_id = ${communityId} AND `status` IN (1,2,4,5) AND del_tag = 0 AND classify_id = 5), 0) AS eventMDTotal,
+
+                IFNULL((   SELECT    count( e3.id )    FROM     `event` AS e3    LEFT JOIN event_grid_data AS egd3 ON egd3.id = e3.grid_id    WHERE     event_category = 1     AND event_type = 6     AND event_status = 2      AND egd3.grid_community_id = ${communityId}     ),   0   ) +
+                IFNULL((SELECT COUNT(1) FROM com_act_easy_photo
+                        WHERE community_id = ${communityId} AND `status` IN (1,2,4,5) AND del_tag = 0 AND classify_id = 3), 0) AS eventTSTotal,
+
+                IFNULL((SELECT COUNT(1) FROM com_act_easy_photo
+                        WHERE community_id = ${communityId} AND `status` IN (1,2,4,5) AND del_tag = 0 AND classify_id = 8), 0) AS eventFJTotal,
+
+                IFNULL((   SELECT    count( e5.id )    FROM     `event` AS e5    LEFT JOIN event_grid_data AS egd5 ON egd5.id = e5.grid_id    WHERE     event_category = 1     AND event_type = 2     AND event_status = 2      AND egd5.grid_community_id = ${communityId}     ),   0   ) +
+                IFNULL((SELECT COUNT(1) FROM com_act_easy_photo
+                        WHERE community_id = ${communityId} AND `status` IN (1,2,4,5) AND del_tag = 0 AND classify_id = 6), 0) AS eventMSTotal,
+
+                IFNULL((   SELECT    count( e5.id )    FROM     `event` AS e5    LEFT JOIN event_grid_data AS egd5 ON egd5.id = e5.grid_id    WHERE     event_category = 1     AND event_type = 8     AND event_status = 2      AND egd5.grid_community_id = ${communityId}     ),   0   ) +
+                IFNULL((SELECT COUNT(1) FROM com_act_easy_photo
+                        WHERE community_id = ${communityId} AND `status` IN (1,2,4,5) AND del_tag = 0 AND classify_id = 2), 0) AS eventFGTotal,
+
+                IFNULL((SELECT COUNT(1) FROM com_act_easy_photo
+                        WHERE community_id = ${communityId} AND `status` IN (1,2,4,5) AND del_tag = 0 AND classify_id = 1), 0) AS otherTotal,
+                IFNULL((SELECT  count( e.id ) FROM   `event` AS e
+                                                         LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+                        WHERE   e.event_category = 1     AND e.event_status = 2    AND egd.grid_community_id = ${communityId}), 0) AS eventTotal,
+
+                IFNULL((SELECT  count(id) FROM  com_sw_patrol_record WHERE  community_id = ${communityId}), 0) AS safety
+    </select>
+    <select id="getPartyBuildIngRecord"
+            resultType="com.panzhihua.common.model.vos.community.ComActEasyPhotoVO">
+        SELECT t1.id, t1.create_at, t2.`name` AS classifyName, t3.nick_name AS userNickName, t4.score
+        FROM com_act_easy_photo t1
+        LEFT JOIN com_act_easy_photo_classify t2 ON t1.classify_id = t2.id
+        LEFT JOIN sys_user t3 ON t1.sponsor_id = t3.user_id
+        LEFT JOIN (SELECT * FROM com_act_easy_photo_evaluate WHERE service_type = 1) t4 ON t1.id = t4.service_id
+        WHERE t1.community_id = #{communityId} AND t1.`status` = 5 AND t1.del_tag = 0 LIMIT #{pageSize}
+    </select>
+    <select id="pageEasyPhotoApplets" resultType="com.panzhihua.common.model.vos.community.ComActEasyPhotoVO">
+        SELECT
+        p.id,
+        u.`name` sponsor_name,
+        u.`nick_name` userNickName,
+        u.phone sponsor_phone,
+        (SELECT  count(pu.id) FROM com_act_easy_photo_user pu WHERE pu.easy_photo_id = p.id) giveThumbsUpNum,
+        (SELECT  count(c.id) FROM com_act_easy_photo_comment c WHERE c.easy_photo_id =p.id) commentNum,
+        u.image_url,
+        p.happen_addr,
+        p.addr_remark,
+        su.`name` handler_name,
+        p.`status`,
+        p.`is_hide`,
+        p.`detail`,
+        p.`is_need_feed_back`,
+        p.`photo_path_list`,
+        p.create_at,
+        p.feedback_at,
+        p.activity_type,
+        p.activity_amount,
+        p.classify_id,
+        p.community_id,
+        ca.name as communityName,
+        class.`name` AS classifyName,
+        p.img_width,
+        p.img_height,
+        p.examine_at,
+        p.add_type,
+        f.id AS fid,
+        p.handle_status
+        FROM
+        com_act_easy_photo p
+        JOIN sys_user u ON p.sponsor_id = u.user_id
+        LEFT JOIN sys_user su ON p.handler_id = su.user_id
+        LEFT JOIN com_act ca ON ca.community_id=p.community_id
+        LEFT JOIN com_act_easy_photo_classify class ON p.classify_id = class.id
+        LEFT JOIN (SELECT * FROM com_act_easy_photo_feedback WHERE `type` = 2) f ON p.id = f.easy_id
+        <where> p.del_tag = 0
+            <if test = 'comActEasyPhotoVO.communityId != null and comActEasyPhotoVO.communityId != 0' >
+                AND p.community_id = ${comActEasyPhotoVO.communityId}
+            </if>
+            <if test="comActEasyPhotoVO.addType != null and comActEasyPhotoVO.addType != ''">
+                AND p.add_type=${comActEasyPhotoVO.addType}
+            </if>
+            <if test = 'comActEasyPhotoVO.status != null and comActEasyPhotoVO.status!=0' >
+                AND p.`status` = #{comActEasyPhotoVO.status}
+            </if>
+            <if test='comActEasyPhotoVO.sponsorId != null and comActEasyPhotoVO.sponsorId != 0'>
+                AND p.sponsor_id = #{comActEasyPhotoVO.sponsorId}
+            </if>
+            <if test='comActEasyPhotoVO.sponsorId == null or comActEasyPhotoVO.sponsorId==0'>
+                AND p.`status` in (2,4,5)
+                <if test="comActEasyPhotoVO.isFeedBackForDpc == null or comActEasyPhotoVO.isDpcMember == 0">
+                    AND p.is_publicity = 1
+                </if>
+            </if>
+            <if test='comActEasyPhotoVO.isReportDpc != null' >
+                AND p.`is_report_dpc` = #{comActEasyPhotoVO.isReportDpc}
+            </if>
+            <if test='comActEasyPhotoVO.keyWord != null and comActEasyPhotoVO.keyWord != &quot;&quot;'>
+                AND (class.`name` like concat(#{comActEasyPhotoVO.keyWord},'%') or p.detail like concat(#{comActEasyPhotoVO.keyWord},'%'))
+            </if>
+            <if test='comActEasyPhotoVO.classifyId != null and comActEasyPhotoVO.classifyId != &quot;&quot;'>
+                AND p.classify_id =#{comActEasyPhotoVO.classifyId}
+            </if>
+        </where>
+        group by p.id
+        <if test="comActEasyPhotoVO.isFeedBackForDpc != null">
+            HAVING
+            <if test="comActEasyPhotoVO.isFeedBackForDpc == 1">
+                fid IS NULL
+            </if>
+            <if test="comActEasyPhotoVO.isFeedBackForDpc == 2">
+                fid IS NOT NULL
+            </if>
+        </if>
+        order by p.create_at desc
+    </select>
+    <select id="getEasyPhotoAddPolylineDataForDpc"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT filed, SUM(num) AS num FROM (
+        SELECT DATE_FORMAT( create_at, '%Y-%m' ) AS filed, COUNT(id) AS num
+        FROM com_act_easy_photo
+        WHERE community_id = ${communityId} AND del_tag = 0 AND is_report_dpc = 1
+        AND DATE_FORMAT( create_at, '%Y-%m' ) &gt; DATE_FORMAT(date_sub(curdate(), interval 12 month),'%Y-%m') GROUP BY filed
+        UNION ALL SELECT * FROM
+            (
+                SELECT DATE_FORMAT(curdate(),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 1 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 2 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 3 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 4 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 5 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 6 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 7 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 8 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 9 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 10 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 11 month),'%Y-%m') AS filed, 0 AS num
+            ) temT
+        ) temp GROUP BY filed ORDER BY filed ASC
+    </select>
+    <select id="getEasyPhotoTotalPolylineDateForDpc"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT COUNT(id) AS num FROM com_act_easy_photo
+        WHERE community_id = ${communityId} AND del_tag = 0 AND is_report_dpc = 1
+        AND DATE_FORMAT( create_at, '%Y-%m' ) &lt;= #{date}
+    </select>
+    <select id="dpcEasyPhotoList" resultType="com.panzhihua.common.model.vos.community.ComActEasyPhotoVO">
+        SELECT t1.id, t1.detail, t1.photo_path_list, t1.`status`, t2.`name` AS classifyName
+        FROM com_act_easy_photo t1
+        LEFT JOIN com_act_easy_photo_classify t2 ON t1.classify_id = t2.id
+        WHERE t1.community_id = ${pageBaseDTO.communityId} AND t1.`status` IN(4,5) AND t1.del_tag = 0 AND t1.is_report_dpc = 1
+        <if test="pageBaseDTO.paramId != null">
+            AND t1.classify_id = #{pageBaseDTO.paramId}
+        </if>
+        ORDER BY t1.id DESC
+    </select>
+    <select id="selectDpcBaseData"
+            resultType="com.panzhihua.common.model.vos.community.bigscreen.BigScreenDpcStatisticsInfo">
+        SELECT
+        (select count(id) from com_act_dpc where community_id = ${communityId} AND is_del = 0) AS dpcNum
+    </select>
+    <select id="getBanner" resultType="com.panzhihua.common.model.vos.community.easyPhoto.BannerVO">
+        select id,type,cover,jump_url,jump_type,image_url from com_act_dyn where type=1 AND on_top=1
+    </select>
+
+    <select id="selectPhotoAll" resultType="com.panzhihua.common.model.vos.community.StatisticsPhotoVO">
+        SELECT count(1) count_num,(case `status` when 1 THEN '待处理' WHEN 2 THEN '进行中' WHEN 3 THEN '已驳回' WHEN 4 THEN '待评价' WHEN 5 THEN '已完成' ELSE '其他' END) count_name
+         FROM `com_act_easy_photo` where del_tag = 0  GROUP BY `status`
+    </select>
+    <select id="selectPhotoByMonth" resultType="com.panzhihua.common.model.vos.community.StatisticsPhotoVO">
+        SELECT count(1) count_num,(case `status` when 1 THEN '待处理' WHEN 2 THEN '进行中' WHEN 3 THEN '已驳回' WHEN 4 THEN '待评价' WHEN 5 THEN '已完成' ELSE '其他' END) count_name,date_format(create_at,'%Y-%m') as statistics_date
+        FROM `com_act_easy_photo` WHERE date_format(create_at,'%Y-%m') >= date_format(date_sub(now(), INTERVAL 9 MONTH),'%Y-%m') and del_tag = 0 GROUP BY  statistics_date, `status`
+    </select>
+
+
+
+    <!--  浪潮专用接口  -->
+    <select id="pageEasyPhotoAdminLC" resultType="com.panzhihua.common.model.vos.community.ComActEasyPhotoVO">
+        SELECT
+        p.id,
+        u.`name` sponsor_name,
+        u.phone phone,
+        count( pu.id ) giveThumbsUpNum,
+        u.image_url,
+        p.happen_addr,
+        su.`name` handler_name,
+        p.`status`,
+        p.`detail`,
+        p.`is_need_feed_back`,
+        p.`photo_path_list`,
+        p.create_at,
+        p.feedback_at,
+        p.is_report,
+        p.is_publicity,
+        p.activity_type,
+        p.activity_amount,
+        p.activity_id,
+        p.is_report_urban,
+        p.is_report_dpc,
+        p.classify_id,
+        ca.`name` as classifyName,
+        p.examine_at,
+        c.name  communityName,
+        p.urban_status,
+        p.transfer_reason,
+        p.add_type,
+        p.handle_status
+        FROM
+        com_act_easy_photo p
+        LEFT JOIN sys_user u ON p.sponsor_id = u.user_id
+        LEFT JOIN com_act_easy_photo_user pu ON p.id = pu.easy_photo_id
+        LEFT JOIN sys_user su ON p.handler_id = su.user_id
+        left join com_act c on p.community_id =c.community_id
+        left join com_act_easy_photo_classify ca on ca.id = p.classify_id
+        WHERE
+        p.del_tag = 0
+        and p.add_type = 1
+        AND p.`status` = 5
+        GROUP BY
+        p.id
+        ORDER BY
+        p.create_at DESC
+
+    </select>
+
+
+
+
+
+
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoEvaluateMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoEvaluateMapper.xml
new file mode 100644
index 0000000..c8c71b2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoEvaluateMapper.xml
@@ -0,0 +1,93 @@
+<?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.ComActEasyPhotoEvaluateMapper">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComActEasyPhotoEvaluate" id="ComActEasyPhotoEvaluateMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="communityId" column="community_id" jdbcType="INTEGER"/>
+        <result property="serviceId" column="service_id" jdbcType="INTEGER"/>
+        <result property="userId" column="user_id" jdbcType="INTEGER"/>
+        <result property="score" column="score" jdbcType="INTEGER"/>
+        <result property="content" column="content" jdbcType="VARCHAR"/>
+        <result property="createAt" column="create_at" jdbcType="TIMESTAMP"/>
+        <result property="serviceType" column="service_type" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <!--查询单个-->
+    <select id="queryById" resultMap="ComActEasyPhotoEvaluateMap">
+        select
+          id, community_id, service_id, user_id, score, content, create_at, service_type
+        from com_act_easy_photo_evaluate
+        where id = #{id}
+    </select>
+
+    <!--查询指定行数据-->
+    <select id="queryAllByLimit" resultMap="ComActEasyPhotoEvaluateMap">
+        select
+        id, community_id, service_id, user_id, score, content, create_at, service_type
+        from com_act_easy_photo_evaluate
+        <where>
+            <if test="dto.id != null">
+                and id = #{dto.id}
+            </if>
+            <if test="dto.communityId != null">
+                and community_id = #{dto.communityId}
+            </if>
+            <if test="dto.serviceId != null">
+                and service_id = #{dto.serviceId}
+            </if>
+            <if test="dto.userId != null">
+                and user_id = #{dto.userId}
+            </if>
+            <if test="dto.score != null">
+                and score = #{dto.score}
+            </if>
+            <if test="dto.content != null and dto.content != ''">
+                and content = #{dto.content}
+            </if>
+            <if test="dto.createAt != null">
+                and create_at = #{dto.createAt}
+            </if>
+            <if test="dto.serviceType != null">
+                and service_type = #{dto.serviceType}
+            </if>
+        </where>
+        order by create_at desc
+    </select>
+
+    <!--查询所有数据-->
+    <select id="queryAllByList" resultMap="ComActEasyPhotoEvaluateMap">
+        select
+        id, community_id, service_id, user_id, score, content, create_at, service_type
+        from com_act_easy_photo_evaluate
+        <where>
+            <if test="dto.id != null">
+                and id = #{dto.id}
+            </if>
+            <if test="dto.communityId != null">
+                and community_id = #{dto.communityId}
+            </if>
+            <if test="dto.serviceId != null">
+                and service_id = #{dto.serviceId}
+            </if>
+            <if test="dto.userId != null">
+                and user_id = #{dto.userId}
+            </if>
+            <if test="dto.score != null">
+                and score = #{dto.score}
+            </if>
+            <if test="dto.content != null and dto.content != ''">
+                and content = #{dto.content}
+            </if>
+            <if test="dto.createAt != null">
+                and create_at = #{dto.createAt}
+            </if>
+            <if test="dto.serviceType != null">
+                and service_type = #{dto.serviceType}
+            </if>
+        </where>
+        order by create_at desc
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoFeedbackDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoFeedbackDOMapper.xml
new file mode 100644
index 0000000..3cdf2dd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoFeedbackDOMapper.xml
@@ -0,0 +1,60 @@
+<?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.ComActEasyPhotoFeedbackMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActEasyPhotoFeedbackDO">
+        <id column="id" property="id" />
+        <result column="easy_id" property="easyId" />
+        <result column="type" property="type" />
+        <result column="feedback_content" property="feedbackContent" />
+        <result column="feedback_img" property="feedbackImg" />
+        <result column="create_at" property="createAt" />
+        <result column="create_by" property="createBy" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, easy_id, feedback_content, feedback_img, create_at, create_by
+    </sql>
+
+    <select id="getPhotoFeedbackList" resultType="com.panzhihua.common.model.vos.community.ComActEasyPhotoFeedbackVO">
+        SELECT
+            caepf.id,
+            caepf.easy_id,
+            caepf.feedback_content,
+            caepf.feedback_img,
+            caepf.create_at,
+            caepf.create_by,
+            su.`name` as createByName,
+            su.image_url as createByImage
+        FROM
+            com_act_easy_photo_feedback AS caepf
+            LEFT JOIN sys_user AS su ON su.user_id = caepf.create_by
+        WHERE
+            caepf.easy_id = #{easyId}
+        ORDER BY caepf.create_at desc
+    </select>
+<!--    AND caepf.type = 1-->
+    <select id="getPhotoFeedbackListForDpc"
+            resultType="com.panzhihua.common.model.vos.community.ComActEasyPhotoFeedbackVO">
+        SELECT
+            caepf.id,
+            caepf.easy_id,
+            caepf.feedback_content,
+            caepf.feedback_img,
+            caepf.create_at,
+            caepf.create_by,
+            dpc.`name` as createByName,
+            dpc.photo as createByImage
+        FROM
+            com_act_easy_photo_feedback AS caepf
+            LEFT JOIN sys_user AS su ON su.user_id = caepf.create_by
+            LEFT JOIN com_act_dpc dpc ON su.phone = dpc.phone
+        WHERE
+            caepf.easy_id = #{easyId} AND caepf.type = 2
+        ORDER BY caepf.create_at desc
+    </select>
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoHandlerMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoHandlerMapper.xml
new file mode 100644
index 0000000..da11d42
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoHandlerMapper.xml
@@ -0,0 +1,83 @@
+<?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.ComActEasyPhotoHandlerMapper">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComActEasyPhotoHandler" id="ComActEasyPhotoHandlerMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="communityId" column="community_id" jdbcType="INTEGER"/>
+        <result property="userId" column="user_id" jdbcType="INTEGER"/>
+        <result property="serviceId" column="service_id" jdbcType="INTEGER"/>
+        <result property="type" column="type" jdbcType="INTEGER"/>
+        <result property="serviceType" column="service_type" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <!--查询单个-->
+    <select id="queryById" resultType="com.panzhihua.common.model.vos.common.ComActEasyPhotoHandlerVo">
+        select t.*,t1.name as senderName from com_act_easy_photo_handler t left join sys_user t1 on t.sender_id = t1.user_id where t.id = #{id}
+    </select>
+
+    <!--查询指定行数据-->
+    <select id="queryAllByLimit" resultType="com.panzhihua.common.model.vos.common.ComActEasyPhotoHandlerVo">
+        select
+        t.id, t.community_id, t.user_id, t.service_id, t.type, t.service_type ,t.status ,t1.name as senderName ,t.create_time
+        from com_act_easy_photo_handler t left join sys_user t1 on t.sender_id = t1.user_id
+        <where>
+            <if test="dto.id != null">
+                and t.id = #{dto.id}
+            </if>
+            <if test="dto.communityId != null">
+                and t.community_id = #{dto.communityId}
+            </if>
+            <if test="dto.userId != null">
+                and t.user_id = #{dto.userId}
+            </if>
+            <if test="dto.serviceId != null">
+                and t.service_id = #{dto.serviceId}
+            </if>
+            <if test="dto.type != null">
+                and t.type = #{dto.type}
+            </if>
+            <if test="dto.serviceType != null">
+                and t.service_type = #{dto.serviceType}
+            </if>
+            <if test="dto.status !=null">
+                and t.status = #{dto.status}
+            </if>
+        </where>
+        order by t.create_time desc
+    </select>
+
+    <!--查询所有数据-->
+    <select id="queryAllByList" resultMap="ComActEasyPhotoHandlerMap">
+        select
+        id, community_id, user_id, service_id, type, service_type
+        from com_act_easy_photo_handler
+        <where>
+            <if test="dto.id != null">
+                and id = #{dto.id}
+            </if>
+            <if test="dto.communityId != null">
+                and community_id = #{dto.communityId}
+            </if>
+            <if test="dto.userId != null">
+                and user_id = #{dto.userId}
+            </if>
+            <if test="dto.serviceId != null">
+                and service_id = #{dto.serviceId}
+            </if>
+            <if test="dto.type != null">
+                and type = #{dto.type}
+            </if>
+            <if test="dto.serviceType != null">
+                and service_type = #{dto.serviceType}
+            </if>
+        </where>
+        order by create_at desc
+    </select>
+    <select id="selectHandleRecord"
+            resultType="com.panzhihua.common.model.vos.common.ComActEasyPhotoHandlerVo">
+        SELECT * FROM com_act_easy_photo_handler WHERE service_id = #{serviceId} AND service_type = #{serviceType}
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoMemberMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoMemberMapper.xml
new file mode 100644
index 0000000..1116337
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoMemberMapper.xml
@@ -0,0 +1,30 @@
+<?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.ComActEasyPhotoMemberDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComActEasyPhotoMember"
+               id="ComActEasyPhotoMemberBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="communityId" column="community_id"/>
+        <result property="name" column="name"/>
+        <result property="phone" column="phone"/>
+        <result property="createTime" column="create_time"/>
+    </resultMap>
+
+    <select id="pageList" resultType="com.panzhihua.common.model.vos.community.easyPhoto.ComActEasyPhotoMemberVO">
+        select * from com_act_easy_photo_member
+        <where>
+        1=1
+            <if test="commonPage.name !=null and commonPage.name !=''">
+                and name like concat('%',#{commonPage.name},'%')
+            </if>
+            <if test="commonPage.phone !=null and commonPage.phone !=''">
+                and phone like concat('%',#{commonPage.phone},'%')
+            </if>
+            <if test="commonPage.communityId !=null and commonPage.communityId !=0">
+                and community_id = #{commonPage.communityId}
+            </if>
+        </where>
+        order by create_time desc
+    </select>
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoRewardDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoRewardDOMapper.xml
new file mode 100644
index 0000000..148665e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEasyPhotoRewardDOMapper.xml
@@ -0,0 +1,25 @@
+<?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.ComActEasyPhotoRewardMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActEasyPhotoRewardDO">
+        <id column="id" property="id" />
+        <result column="user_id" property="userId" />
+        <result column="community_id" property="communityId" />
+        <result column="is_read" property="isRead" />
+        <result column="amount" property="amount" />
+        <result column="create_at" property="createAt" />
+        <result column="update_at" property="updateAt" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, user_id, community_id, is_read, amount, create_at, update_at
+    </sql>
+
+    <select id="getUserReward" resultType="java.math.BigDecimal">
+        select amount from com_act_easy_photo_reward where user_id = #{userId} and is_read = 2 and community_id = ${communityId}
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEnterpriseMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEnterpriseMapper.xml
new file mode 100644
index 0000000..8d333a6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEnterpriseMapper.xml
@@ -0,0 +1,125 @@
+<?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.ComActEnterpriseDAO">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComActEnterprise" id="ComActEnterpriseMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="agencyCode" column="agency_code" jdbcType="VARCHAR"/>
+        <result property="legalRepresentative" column="legal_representative" jdbcType="VARCHAR"/>
+        <result property="phone" column="phone" jdbcType="VARCHAR"/>
+        <result property="registeAt" column="registe_at" jdbcType="TIMESTAMP"/>
+        <result property="communityId" column="community_id" jdbcType="INTEGER"/>
+        <result property="address" column="address" jdbcType="VARCHAR"/>
+        <result property="introduct" column="introduct" jdbcType="VARCHAR"/>
+        <result property="logo" column="logo" jdbcType="VARCHAR"/>
+        <result property="createdBy" column="created_by" jdbcType="INTEGER"/>
+        <result property="createdAt" column="created_at" jdbcType="TIMESTAMP"/>
+        <result property="updatedBy" column="updated_by" jdbcType="INTEGER"/>
+        <result property="updatedAt" column="updated_at" jdbcType="TIMESTAMP"/>
+        <result property="status" column="status" jdbcType="INTEGER"/>
+        <result property="streetId" column="street_id" jdbcType="INTEGER"/>
+        <result property="type" column="type" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <!-- 批量插入 -->
+    <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.com_act_enterprise(name, agency_code, legal_representative, phone, registe_at,
+        community_id, address, introduct, logo, created_by, created_at, updated_by, updated_at, status, street_id)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.name}, #{entity.agencyCode}, #{entity.legalRepresentative}, #{entity.phone}, #{entity.registeAt},
+            #{entity.communityId}, #{entity.address}, #{entity.introduct}, #{entity.logo}, #{entity.createdBy},
+            #{entity.createdAt}, #{entity.updatedBy}, #{entity.updatedAt}, #{entity.status}, #{entity.streetId})
+        </foreach>
+    </insert>
+    <!-- 批量插入或按主键更新 -->
+    <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.com_act_enterprise(name, agency_code, legal_representative, phone, registe_at,
+        community_id, address, introduct, logo, created_by, created_at, updated_by, updated_at, status, street_id)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.name}, #{entity.agencyCode}, #{entity.legalRepresentative}, #{entity.phone}, #{entity.registeAt},
+            #{entity.communityId}, #{entity.address}, #{entity.introduct}, #{entity.logo}, #{entity.createdBy},
+            #{entity.createdAt}, #{entity.updatedBy}, #{entity.updatedAt}, #{entity.status}, #{entity.streetId})
+        </foreach>
+        on duplicate key update
+        name = values(name) , agency_code = values(agency_code) , legal_representative = values(legal_representative) ,
+        phone = values(phone) , registe_at = values(registe_at) , community_id = values(community_id) , address =
+        values(address) , introduct = values(introduct) , logo = values(logo) , created_by = values(created_by) ,
+        created_at = values(created_at) , updated_by = values(updated_by) , updated_at = values(updated_at) , status =
+        values(status) , street_id = values(street_id)
+    </insert>
+    <select id="detailEnterprise" resultType="com.panzhihua.common.model.vos.community.ComActEnterpriseVO">
+        SELECT t1.*, t2.`name` AS communityName, t3.`name` AS typeName
+        FROM com_act_enterprise t1
+        LEFT JOIN com_act t2 ON t1.community_id = t2.community_id
+        LEFT JOIN com_act_enterprise_type t3 ON t1.type = t3.id
+        WHERE t1.id = #{id}
+    </select>
+    <select id="pageEnterprise" resultType="com.panzhihua.common.model.vos.community.ComActEnterpriseVO">
+        SELECT t1.*, t2.`name` AS communityName, t3.`name` AS typeName
+        FROM com_act_enterprise t1
+        LEFT JOIN com_act t2 ON t1.community_id = t2.community_id
+        LEFT JOIN com_act_enterprise_type t3 ON t1.type = t3.id
+        <where>
+            <if test="pageEnterpriseDTO.streetId != null and pageEnterpriseDTO.communityId == null">
+                AND t1.street_id = #{pageEnterpriseDTO.streetId}
+            </if>
+            <if test="pageEnterpriseDTO.communityId != null">
+                AND t1.community_id = #{pageEnterpriseDTO.communityId}
+            </if>
+            <if test="pageEnterpriseDTO.status != null">
+                AND t1.status = #{pageEnterpriseDTO.status}
+            </if>
+            <if test="pageEnterpriseDTO.type != null">
+                AND t1.type = #{pageEnterpriseDTO.type}
+            </if>
+            <if test="pageEnterpriseDTO.keyword != null and pageEnterpriseDTO.keyword != &quot;&quot;">
+                AND(t1.`name` LIKE CONCAT(#{pageEnterpriseDTO.keyword}, '%')
+                OR t1.legal_representative LIKE CONCAT(#{pageEnterpriseDTO.keyword}, '%')
+                OR t1.phone LIKE CONCAT(#{pageEnterpriseDTO.keyword}, '%'))
+            </if>
+        </where>
+        ORDER BY t1.created_at DESC
+    </select>
+    <select id="getEnterpriseServiceTypeCircleData"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT t1.`name` AS filed, COUNT(t1.`name`) AS num
+        FROM com_act_enterprise t
+        LEFT JOIN com_act_enterprise_type t1 ON t.type = t1.id
+        WHERE t.community_id = ${communityId} AND t.`status` = 1
+        GROUP BY filed
+    </select>
+    <select id="getSocialWorkerAgeStageCircleData"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT filed, SUM(num) AS num FROM (
+            SELECT filed, COUNT(filed) AS num FROM (
+            SELECT
+            CASE
+            WHEN TIMESTAMPDIFF(YEAR, SUBSTRING(id_card, 7, 8), NOW()) &lt; 30 THEN '30岁以下'
+            WHEN TIMESTAMPDIFF(YEAR, SUBSTRING(id_card, 7, 8), NOW()) BETWEEN 30 AND 59 THEN '30-59岁'
+            WHEN TIMESTAMPDIFF(YEAR, SUBSTRING(id_card, 7, 8), NOW()) >= 60 THEN '60岁及以上'
+            END filed
+            FROM com_act_social_worker WHERE community_id = ${communityId}
+            ) temp WHERE filed is not null GROUP BY filed
+            UNION ALL
+            (SELECT '30岁以下' AS filed, 0 AS num)
+            UNION ALL
+            (SELECT '30-59岁' AS filed, 0 AS num)
+            UNION ALL
+            (SELECT '60岁及以上' AS filed, 0 AS num)
+        ) t GROUP BY filed
+    </select>
+    <select id="getSocialWorkerServiceTypeCircleData"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT filed, COUNT(filed) AS num FROM(
+            SELECT substring_index( substring_index( t.skill_type_name, ',', b.help_topic_id + 1 ), ',',- 1 ) AS filed
+            FROM com_act_social_worker t
+            JOIN mysql.help_topic b ON b.help_topic_id &lt; ( length( t.skill_type_name ) - length( REPLACE ( t.skill_type_name, ',', '' ))+ 1 )
+            WHERE t.community_id = ${communityId}
+        ) temp GROUP BY filed
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEnterpriseTypeMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEnterpriseTypeMapper.xml
new file mode 100644
index 0000000..58117a0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActEnterpriseTypeMapper.xml
@@ -0,0 +1,75 @@
+<?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.ComActEnterpriseTypeDAO">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComActEnterpriseType" id="ComActEnterpriseTypeMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="communityId" column="community_id" jdbcType="INTEGER"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="description" column="description" jdbcType="VARCHAR"/>
+        <result property="status" column="status" jdbcType="INTEGER"/>
+        <result property="isDel" column="is_del" jdbcType="VARCHAR"/>
+        <result property="createdBy" column="created_by" jdbcType="INTEGER"/>
+        <result property="createdAt" column="created_at" jdbcType="TIMESTAMP"/>
+        <result property="updatedBy" column="updated_by" jdbcType="INTEGER"/>
+        <result property="updatedAt" column="updated_at" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+    <!-- 批量插入 -->
+    <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.com_act_enterprise_type(community_id, name, description, status, is_del, created_by,
+        created_at, updated_by, updated_at)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.communityId}, #{entity.name}, #{entity.description}, #{entity.status}, #{entity.isDel},
+            #{entity.createdBy}, #{entity.createdAt}, #{entity.updatedBy}, #{entity.updatedAt})
+        </foreach>
+    </insert>
+    <!-- 批量插入或按主键更新 -->
+    <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.com_act_enterprise_type(community_id, name, description, status, is_del, created_by,
+        created_at, updated_by, updated_at)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.communityId}, #{entity.name}, #{entity.description}, #{entity.status}, #{entity.isDel},
+            #{entity.createdBy}, #{entity.createdAt}, #{entity.updatedBy}, #{entity.updatedAt})
+        </foreach>
+        on duplicate key update
+        community_id = values(community_id) , name = values(name) , description = values(description) , status =
+        values(status) , is_del = values(is_del) , created_by = values(created_by) , created_at = values(created_at) ,
+        updated_by = values(updated_by) , updated_at = values(updated_at)
+    </insert>
+    <select id="detailEnterpriseType"
+            resultType="com.panzhihua.common.model.vos.community.ComActEnterpriseTypeVO">
+        SELECT t.id, t.`name`, t.description, t.status, t1.`name` AS createdBy, t2.`name` AS updatedBy
+        FROM com_act_enterprise_type t
+        LEFT JOIN sys_user t1 ON t.created_by = t1.user_id
+        LEFT JOIN sys_user t2 ON t.updated_by = t2.user_id
+        WHERE t.id = #{id}
+    </select>
+    <select id="pageEnterpriseType"
+            resultType="com.panzhihua.common.model.vos.community.ComActEnterpriseTypeVO">
+        SELECT t.id, t.`name`, t.description, t.status, t1.`name` AS createdBy, t2.`name` AS updatedBy
+        FROM com_act_enterprise_type t
+        LEFT JOIN sys_user t1 ON t.created_by = t1.user_id
+        LEFT JOIN sys_user t2 ON t.updated_by = t2.user_id
+        WHERE t.community_id = #{pageEnterpriseTypeDTO.communityId} AND t.is_del = 0
+        <if test="pageEnterpriseTypeDTO.status != null">
+            AND t.status = #{pageEnterpriseTypeDTO.status}
+        </if>
+        <if test="pageEnterpriseTypeDTO.keyword != null and pageEnterpriseTypeDTO.keyword != &quot;&quot;">
+            AND t.`name` LIKE CONCAT(#{pageEnterpriseTypeDTO.keyword}, '%')
+        </if>
+        ORDER BY t.created_at DESC
+    </select>
+    <select id="getEnterpriseTypeList"
+            resultType="com.panzhihua.common.model.vos.community.ComActEnterpriseTypeVO">
+        SELECT t.id, t.`name`, t.description, t.status, t1.`name` AS createdBy, t2.`name` AS updatedBy
+        FROM com_act_enterprise_type t
+        LEFT JOIN sys_user t1 ON t.created_by = t1.user_id
+        LEFT JOIN sys_user t2 ON t.updated_by = t2.user_id
+        WHERE t.community_id = #{communityId} AND t.is_del = 0 AND t.status = 1
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActFourMemberMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActFourMemberMapper.xml
new file mode 100644
index 0000000..3503387
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActFourMemberMapper.xml
@@ -0,0 +1,171 @@
+<?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.ComActFourMemberDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComActFourMember" id="ComActFourMemberBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="userId" column="user_id"/>
+        <result property="position" column="position"/>
+        <result property="jurisdiction" column="jurisdiction"/>
+        <result property="communityId" column="community_id"/>
+        <result property="createTime" column="create_time"/>
+        <result property="jurisdictionContent" column="jurisdiction_content"/>
+        <result property="idCard" column="id_card"/>
+    </resultMap>
+
+    <resultMap id="baseResultMap" type="com.panzhihua.common.model.vos.community.ComActFourMemberVO">
+        <collection property="buildings"
+                    ofType="String"
+                    column="{id = jurisdiction}"
+                    select="selectBuilding"
+                    javaType="java.util.ArrayList" />
+    </resultMap>
+
+    <select id="pageList" resultMap="baseResultMap">
+        select t.*,t1.*,t2.role_id from com_act_four_member t left join sys_user t1 on t.user_id = t1.user_id left join sys_user_role t2 on t.user_id =t2.user_id
+        <where>
+            1=1
+            <if test="commonPage.paramId !=null">
+                and t.community_id = ${commonPage.paramId}
+            </if>
+            <if test="commonPage.position !=null and commonPage.position !=''">
+                and t.position like concat('%',#{commonPage.position},'%')
+            </if>
+            <if test="commonPage.keyword !=null and commonPage.keyword !=''">
+                and (t1.name like concat(#{commonPage.keyword},'%') or t1.phone like concat(#{commonPage.keyword},'%') or t.jurisdiction_content like concat('%',#{commonPage.keyword},'%'))
+            </if>
+            <if test="commonPage.status !=null">
+                and t1.status =#{commonPage.status}
+            </if>
+        </where>
+        order by t.create_time desc
+    </select>
+
+    <select id="selectBuilding" resultType="String">
+        select distinct concat(alley,house_num,'号',IFNULL(floor,0),'栋') from com_mng_population_house   where id in (${id})
+    </select>
+
+    <select id="getById" resultMap="baseResultMap">
+        select t.*,t1.*,t2.role_id from com_act_four_member t left join sys_user t1 on t.user_id = t1.user_id left join sys_user_role t2 on t.user_id =t2.user_id where t.id =#{id}
+    </select>
+    <select id="getFourMemberBaseData"
+            resultType="com.panzhihua.common.model.vos.community.bigscreen.BigScreenFourMemberStatisticsInfo">
+        SELECT
+        (SELECT COUNT(id) FROM com_act_four_member WHERE community_id = #{communityId}) AS szsyTotal,
+        (SELECT COUNT(id) FROM com_act_four_member WHERE community_id = #{communityId} AND (position LIKE CONCAT('%','居民小组长','%') OR position = '全部')) AS jmxzzTotal,
+        (SELECT COUNT(id) FROM com_act_four_member WHERE community_id = #{communityId} AND (position LIKE CONCAT('%','妇女小组长','%') OR position = '全部')) AS fnxzzTotal,
+        (SELECT COUNT(id) FROM com_act_four_member WHERE community_id = #{communityId} AND (position LIKE CONCAT('%','党小组长','%') OR position = '全部')) AS dxzzTotal,
+        (SELECT COUNT(id) FROM com_act_four_member WHERE community_id = #{communityId} AND (position LIKE CONCAT('%','楼栋长','%') OR position = '全部')) AS ldzTotal,
+        (SELECT COUNT(id) FROM com_act_four_member WHERE community_id = #{communityId} AND (position LIKE CONCAT('%','调解员','%') OR position = '全部')) AS tjyTotal,
+        (SELECT COUNT(id) FROM com_act_four_member WHERE community_id = #{communityId} AND (position LIKE CONCAT('%','安全员','%') OR position = '全部')) AS aqyTotal,
+        (SELECT COUNT(id) FROM com_act_four_member WHERE community_id = #{communityId} AND (position LIKE CONCAT('%','宣传员','%') OR position = '全部')) AS xcyTotal,
+        (SELECT COUNT(id) FROM com_act_four_member WHERE community_id = #{communityId} AND (position LIKE CONCAT('%','监督员','%') OR position = '全部')) AS jdyTotal,
+        (SELECT
+            (SELECT COUNT(t1.id)
+            FROM com_act_easy_photo_handler t1
+            INNER JOIN com_act_easy_photo t2 ON t1.service_id = t2.id
+            WHERE t1.community_id = #{communityId} AND t1.`type` = 5 AND t1.service_type = 1 AND t2.`status` = 5
+            ) +
+            (SELECT COUNT(t1.id)
+            FROM com_act_easy_photo_handler t1
+            INNER JOIN com_act_micro_wish t2 ON t1.service_id = t2.id
+            WHERE t1.community_id = #{communityId} AND t1.`type` = 5 AND t1.service_type = 2 AND t2.`status` = 6
+            )
+        ) AS jjwtTotal,
+        (SELECT COUNT(id) FROM com_act_discuss WHERE community_id = #{communityId} AND content_type = 2 AND is_del = 2) AS ylysTotal
+    </select>
+    <select id="getFourMembers" resultType="com.panzhihua.common.model.vos.community.ComActFourMemberVO">
+        SELECT
+        a.id,
+        su.`name`,
+        su.phone,
+        a.position,
+        a.url,
+        substring_index( substring_index( a.jurisdiction_content, ',', b.help_topic_id + 1 ), ',',- 1 ) AS jurisdiction_content
+        FROM
+        com_act_four_member a
+        LEFT JOIN sys_user su ON a.user_id = su.user_id
+        JOIN mysql.help_topic b ON b.help_topic_id &lt; ( length( a.jurisdiction_content ) - length( REPLACE ( a.jurisdiction_content, ',', '' ))+ 1 )
+        WHERE
+        a.community_id = #{communityId}
+    </select>
+    <select id="retrieveJJWTAddPolylineData"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT filed, SUM(num) AS num FROM (
+            SELECT DATE_FORMAT( create_at, '%Y-%m' ) AS filed, COUNT(1) AS num
+            FROM com_act_easy_photo_handler t1
+            INNER JOIN com_act_easy_photo t2 ON t1.service_id = t2.id
+            WHERE t1.community_id = #{communityId} AND t1.`type` = 5 AND t1.service_type = 1 AND t2.`status` = 5 AND DATE_FORMAT( create_at, '%Y-%m' ) &gt; DATE_FORMAT(date_sub(curdate(), interval 12 month),'%Y-%m'
+            ) GROUP BY filed
+            UNION ALL
+            SELECT DATE_FORMAT( create_at, '%Y-%m' ) AS filed, COUNT(1) AS num
+            FROM com_act_easy_photo_handler t1
+            INNER JOIN com_act_micro_wish t2 ON t1.service_id = t2.id
+            WHERE t1.community_id = #{communityId} AND t1.`type` = 5 AND t1.service_type = 2 AND t2.`status` = 6 AND DATE_FORMAT( create_at, '%Y-%m' ) &gt; DATE_FORMAT(date_sub(curdate(), interval 12 month),'%Y-%m'
+            ) GROUP BY filed
+            UNION ALL SELECT * FROM
+            (
+                    SELECT DATE_FORMAT(curdate(),'%Y-%m') AS filed, 0 AS num union
+                    SELECT DATE_FORMAT(date_sub(curdate(), interval 1 month),'%Y-%m') AS filed, 0 AS num union
+                    SELECT DATE_FORMAT(date_sub(curdate(), interval 2 month),'%Y-%m') AS filed, 0 AS num union
+                    SELECT DATE_FORMAT(date_sub(curdate(), interval 3 month),'%Y-%m') AS filed, 0 AS num union
+                    SELECT DATE_FORMAT(date_sub(curdate(), interval 4 month),'%Y-%m') AS filed, 0 AS num union
+                    SELECT DATE_FORMAT(date_sub(curdate(), interval 5 month),'%Y-%m') AS filed, 0 AS num union
+                    SELECT DATE_FORMAT(date_sub(curdate(), interval 6 month),'%Y-%m') AS filed, 0 AS num union
+                    SELECT DATE_FORMAT(date_sub(curdate(), interval 7 month),'%Y-%m') AS filed, 0 AS num union
+                    SELECT DATE_FORMAT(date_sub(curdate(), interval 8 month),'%Y-%m') AS filed, 0 AS num union
+                    SELECT DATE_FORMAT(date_sub(curdate(), interval 9 month),'%Y-%m') AS filed, 0 AS num union
+                    SELECT DATE_FORMAT(date_sub(curdate(), interval 10 month),'%Y-%m') AS filed, 0 AS num union
+                    SELECT DATE_FORMAT(date_sub(curdate(), interval 11 month),'%Y-%m') AS filed, 0 AS num
+            ) temT
+        ) temp GROUP BY filed ORDER BY filed ASC
+    </select>
+    <select id="retrieveJJWTTotalPolylineData"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT
+        (SELECT COUNT(1) AS num
+        FROM com_act_easy_photo_handler t1
+        INNER JOIN com_act_easy_photo t2 ON t1.service_id = t2.id
+        WHERE t1.community_id = #{communityId} AND t1.`type` = 5
+        AND t1.service_type = 1 AND t2.`status` = 5 AND DATE_FORMAT( t2.create_at, '%Y-%m' ) &lt;= #{date}
+        )
+        +
+        (SELECT COUNT(1) AS num
+        FROM com_act_easy_photo_handler t1
+        INNER JOIN com_act_micro_wish t2 ON t1.service_id = t2.id
+        WHERE t1.community_id = #{communityId} AND t1.`type` = 5
+        AND t1.service_type = 2 AND t2.`status` = 6 AND DATE_FORMAT( t2.create_at, '%Y-%m' ) &lt;= #{date}
+        ) AS num
+    </select>
+    <select id="retrieveYLYSAddPolylineData"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT filed, SUM(num) AS num FROM (
+            SELECT DATE_FORMAT( create_at, '%Y-%m' ) AS filed, COUNT(1) AS num
+            FROM com_act_discuss
+            WHERE community_id = #{communityId} AND content_type = 2 AND is_del = 2 AND DATE_FORMAT( create_at, '%Y-%m' ) &gt; DATE_FORMAT(date_sub(curdate(), interval 12 month),'%Y-%m'
+            ) GROUP BY filed
+            UNION ALL SELECT * FROM
+            (
+                    SELECT DATE_FORMAT(curdate(),'%Y-%m') AS filed, 0 AS num union
+                    SELECT DATE_FORMAT(date_sub(curdate(), interval 1 month),'%Y-%m') AS filed, 0 AS num union
+                    SELECT DATE_FORMAT(date_sub(curdate(), interval 2 month),'%Y-%m') AS filed, 0 AS num union
+                    SELECT DATE_FORMAT(date_sub(curdate(), interval 3 month),'%Y-%m') AS filed, 0 AS num union
+                    SELECT DATE_FORMAT(date_sub(curdate(), interval 4 month),'%Y-%m') AS filed, 0 AS num union
+                    SELECT DATE_FORMAT(date_sub(curdate(), interval 5 month),'%Y-%m') AS filed, 0 AS num union
+                    SELECT DATE_FORMAT(date_sub(curdate(), interval 6 month),'%Y-%m') AS filed, 0 AS num union
+                    SELECT DATE_FORMAT(date_sub(curdate(), interval 7 month),'%Y-%m') AS filed, 0 AS num union
+                    SELECT DATE_FORMAT(date_sub(curdate(), interval 8 month),'%Y-%m') AS filed, 0 AS num union
+                    SELECT DATE_FORMAT(date_sub(curdate(), interval 9 month),'%Y-%m') AS filed, 0 AS num union
+                    SELECT DATE_FORMAT(date_sub(curdate(), interval 10 month),'%Y-%m') AS filed, 0 AS num union
+                    SELECT DATE_FORMAT(date_sub(curdate(), interval 11 month),'%Y-%m') AS filed, 0 AS num
+            ) temT
+        ) temp GROUP BY filed ORDER BY filed ASC
+    </select>
+    <select id="retrieveYLYSTotalPolylineData"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT COUNT(1) AS num
+        FROM com_act_discuss
+        WHERE community_id = #{communityId} AND content_type = 2 AND is_del = 2 AND DATE_FORMAT( create_at, '%Y-%m' ) &lt;= #{date}
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActIntegralRuleDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActIntegralRuleDOMapper.xml
new file mode 100644
index 0000000..da28919
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActIntegralRuleDOMapper.xml
@@ -0,0 +1,37 @@
+<?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.ComActIntegralRuleMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActIntegralRuleDO">
+        <id column="id" property="id" />
+        <result column="name" property="name" />
+        <result column="community_id" property="communityId" />
+        <result column="amount" property="amount" />
+        <result column="integral_describe" property="integralDescribe" />
+        <result column="is_restrict" property="isRestrict" />
+        <result column="type" property="type" />
+        <result column="count" property="count" />
+        <result column="create_at" property="createAt" />
+        <result column="update_at" property="updateAt" />
+        <result column="integral_type" property="integralType" />
+        <result column="remark" property="remark" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, name, community_id, amount, integral_describe, is_restrict, type, count, create_at, update_at, integral_type, remark
+    </sql>
+
+    <select id="getIntegralReceiveApplets" resultType="com.panzhihua.common.model.vos.community.integral.ComActIntegralUserRuleVO">
+        select id,`name`,amount,integral_describe,is_restrict,type,count,integral_type,remark from com_act_integral_rule where community_id = ${communityId}
+    </select>
+
+    <select id="getIntegralRuleAdminList" resultType="com.panzhihua.common.model.vos.community.integral.admin.ComActIntegralUserRuleAdminVO">
+        select id,`name`,amount,integral_describe,is_restrict,type,count,integral_type,remark,create_at,update_at from com_act_integral_rule where community_id = ${integralRuleDTO.communityId}
+    </select>
+
+    <select id="getIntegralDefaultList" resultType="com.panzhihua.service_community.model.dos.ComActIntegralRuleDO">
+        select * from com_act_integral_rule_default where `status` = 1
+    </select>
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActIntegralUserChangeDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActIntegralUserChangeDOMapper.xml
new file mode 100644
index 0000000..7bc4f91
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActIntegralUserChangeDOMapper.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.ComActIntegralUserChangeMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActIntegralUserChangeDO">
+        <id column="id" property="id" />
+        <result column="user_id" property="userId" />
+        <result column="integral_id" property="integralId" />
+        <result column="community_id" property="communityId" />
+        <result column="integral_sum_top" property="integralSumTop" />
+        <result column="integral_sum_back" property="integralSumBack" />
+        <result column="integral_available_sum_top" property="integralAvailableSumTop" />
+        <result column="integral_available_sum_back" property="integralAvailableSumBack" />
+        <result column="integral_frozen_sum_top" property="integralFrozenSumTop" />
+        <result column="integral_frozen_sum_back" property="integralFrozenSumBack" />
+        <result column="integral_party_top" property="integralPartyTop" />
+        <result column="integral_party_back" property="integralPartyBack" />
+        <result column="integral_available_party_top" property="integralAvailablePartyTop" />
+        <result column="integral_available_party_back" property="integralAvailablePartyBack" />
+        <result column="integral_frozen_party_top" property="integralFrozenPartyTop" />
+        <result column="integral_frozen_party_back" property="integralFrozenPartyBack" />
+        <result column="integral_volunteer_top" property="integralVolunteerTop" />
+        <result column="integral_volunteer_back" property="integralVolunteerBack" />
+        <result column="integral_available_volunteer_top" property="integralAvailableVolunteerTop" />
+        <result column="integral_available_volunteer_back" property="integralAvailableVolunteerBack" />
+        <result column="integral_frozen_volunteer_top" property="integralFrozenVolunteerTop" />
+        <result column="integral_frozen_volunteer_back" property="integralFrozenVolunteerBack" />
+        <result column="integral_resident_top" property="integralResidentTop" />
+        <result column="integral_resident_back" property="integralResidentBack" />
+        <result column="integral_available_resident_top" property="integralAvailableResidentTop" />
+        <result column="integral_available_resident_back" property="integralAvailableResidentBack" />
+        <result column="integral_frozen_resident_top" property="integralFrozenResidentTop" />
+        <result column="integral_frozen_resident_back" property="integralFrozenResidentBack" />
+        <result column="service_id" property="serviceId" />
+        <result column="create_at" property="createAt" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, user_id, integral_id, community_id, integral_sum_top, integral_sum_back, integral_available_sum_top, integral_available_sum_back, integral_frozen_sum_top, integral_frozen_sum_back, integral_party_top, integral_party_back, integral_available_party_top, integral_available_party_back, integral_frozen_party_top, integral_frozen_party_back, integral_volunteer_top, integral_volunteer_back, integral_available_volunteer_top, integral_available_volunteer_back, integral_frozen_volunteer_top, integral_frozen_volunteer_back, integral_resident_top, integral_resident_back, integral_available_resident_top, integral_available_resident_back, integral_frozen_resident_top, integral_frozen_resident_back, service_id, create_at
+    </sql>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActIntegralUserDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActIntegralUserDOMapper.xml
new file mode 100644
index 0000000..18371ed
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActIntegralUserDOMapper.xml
@@ -0,0 +1,140 @@
+<?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.ComActIntegralUserMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActIntegralUserDO">
+        <id column="id" property="id" />
+        <result column="user_id" property="userId" />
+        <result column="community_id" property="communityId" />
+        <result column="integral_sum" property="integralSum" />
+        <result column="integral_available_sum" property="integralAvailableSum" />
+        <result column="integral_frozen_sum" property="integralFrozenSum" />
+        <result column="integral_party" property="integralParty" />
+        <result column="integral_available_party" property="integralAvailableParty" />
+        <result column="integral_frozen_party" property="integralFrozenParty" />
+        <result column="integral_volunteer" property="integralVolunteer" />
+        <result column="integral_available_volunteer" property="integralAvailableVolunteer" />
+        <result column="integral_frozen_volunteer" property="integralFrozenVolunteer" />
+        <result column="integral_resident" property="integralResident" />
+        <result column="integral_available_resident" property="integralAvailableResident" />
+        <result column="integral_frozen_resident" property="integralFrozenResident" />
+        <result column="create_at" property="createAt" />
+        <result column="update_at" property="updateAt" />
+        <result column="status" property="status" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, user_id, community_id, integral_sum, integral_available_sum, integral_frozen_sum, integral_party, integral_available_party, integral_frozen_party, integral_volunteer, integral_available_volunteer, integral_frozen_volunteer, integral_resident, integral_available_resident, integral_frozen_resident, create_at, update_at
+    </sql>
+
+    <select id="getIntegralUserListApplets" resultType="com.panzhihua.common.model.vos.community.integral.ComActIntegralUserListVO">
+        SELECT
+            SUM(t.amount) AS amount,
+            t1.community_id,
+            t1.`name` AS communityName
+        FROM
+        com_act_integral_user_trade t
+        INNER JOIN com_act t1 ON t.community_id = t1.community_id
+        WHERE
+        t.change_type = 1 AND t.user_id = #{userId}
+        GROUP BY t1.community_id
+        ORDER BY amount DESC
+    </select>
+
+<!--    WHERE-->
+<!--    caiu.community_id = #{communityId}-->
+    <select id="getIntegralUserRank" resultType="com.panzhihua.common.model.vos.community.integral.IntegralUserRankVO">
+        SELECT
+            *
+        FROM
+            (
+                SELECT
+                    t1.user_id,
+                    @rank := @rank + 1 AS rank
+                FROM
+                    (
+                    SELECT
+                    caiu.user_id,
+                    caiu.integral_sum
+                    FROM
+                    com_act_integral_user as caiu
+                    left join sys_user as su on su.user_id = caiu.user_id
+
+                    ORDER BY
+                    caiu.integral_sum DESC,su.create_at asc
+                    ) AS t1,
+                    ( SELECT @rank := 0 ) AS t2
+            ) AS m
+        WHERE
+            user_id = #{userId} limit 1
+    </select>
+
+    <select id="getIntegralCommunityRankApplets" parameterType="com.panzhihua.common.model.dtos.community.integral.ComActIntegralCommunityRankDTO"
+            resultType="com.panzhihua.common.model.vos.community.integral.ComActIntegralCommunityRankVO">
+        SELECT
+            su.nick_name,
+            su.image_url,
+            <if test="communityRankDTO.type == 1">
+                SUM(caiu.integral_sum) as amount,
+            </if>
+            <if test="communityRankDTO.type == 2">
+                SUM(caiu.integral_resident) as amount,
+            </if>
+            <if test="communityRankDTO.type == 3">
+                SUM(caiu.integral_volunteer) as amount,
+            </if>
+            <if test="communityRankDTO.type == 4">
+                SUM(caiu.integral_party) as amount,
+            </if>
+            su.is_partymember,
+            su.is_volunteer
+        FROM
+            com_act_integral_user AS caiu
+            LEFT JOIN sys_user AS su ON su.user_id = caiu.user_id
+        WHERE su.nick_name is not null
+            <if test="communityRankDTO.communityId != null">
+                AND caiu.community_id = ${communityRankDTO.communityId}
+            </if>
+            <if test="communityRankDTO.type == 3">
+                and su.is_volunteer = 1
+            </if>
+            <if test="communityRankDTO.type == 4">
+                and su.is_partymember = 1
+            </if>
+        GROUP BY caiu.user_id
+        ORDER BY amount desc
+    </select>
+
+    <select id="getTaskActivityPeopleList" resultType="com.panzhihua.common.model.vos.community.integral.admin.ComActActivityPeopleVO">
+        select caas.user_id,caas.activity_id,caa.community_id,caas.sign_identity
+        from (SELECT * FROM com_act_act_sign WHERE `status` = 1) as caas
+        left join com_act_activity as caa on caa.id = caas.activity_id
+        left join com_act_act_regist AS caar ON caas.user_id = caar.user_id AND caas.activity_id = caar.activity_id
+        where caa.id = #{activityId}  AND caar.id IS NULL
+    </select>
+    <select id="getUserIntegralStatistics"
+            resultType="com.panzhihua.common.model.vos.community.integral.ComActIntegralUserVO">
+        SELECT
+        SUM(t.amount) AS amount,
+        SUM(IF(t.service_type IN(4,5,6),t.amount,0)) AS actAmount,
+        SUM(IF(t.service_type = 4,t.amount,0)) AS residentAmount,
+        SUM(IF(t.service_type = 5,t.amount,0)) AS partyMemberAmount,
+        SUM(IF(t.service_type = 6,t.amount,0)) AS volunteerAmount,
+        SUM(IF(t.service_type = 9,t.amount,0)) AS unitPartyMemberAmount
+        <if test="communityId != null">
+            ,t1.community_id,
+            t1.`name` AS communityName
+        </if>
+        FROM
+        com_act_integral_user_trade t
+        INNER JOIN com_act t1 ON t.community_id = t1.community_id
+        WHERE
+        t.change_type = 1 AND t.user_id = #{userId}
+        <if test="communityId != null">
+            AND t.community_id = #{communityId}
+        </if>
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActIntegralUserTradeDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActIntegralUserTradeDOMapper.xml
new file mode 100644
index 0000000..16549f2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActIntegralUserTradeDOMapper.xml
@@ -0,0 +1,123 @@
+<?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.ComActIntegralUserTradeMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActIntegralUserTradeDO">
+        <id column="id" property="id" />
+        <result column="user_id" property="userId" />
+        <result column="integral_id" property="integralId" />
+        <result column="community_id" property="communityId" />
+        <result column="service_id" property="serviceId" />
+        <result column="service_type" property="serviceType" />
+        <result column="amount" property="amount" />
+        <result column="change_type" property="changeType" />
+        <result column="remark" property="remark" />
+        <result column="identity_type" property="identityType" />
+        <result column="create_at" property="createAt" />
+        <result column="create_by" property="createBy" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, user_id, integral_id, community_id, service_id, service_type, amount, change_type, remark, identity_type, create_at, create_by
+    </sql>
+
+    <select id="getIntegralCount" resultType="Integer" parameterType="com.panzhihua.common.model.dtos.community.integral.ComActIntegralCountDTO">
+        select count(id) from com_act_integral_user_trade where community_id = ${integralCountDTO.communityId} and service_type = #{integralCountDTO.serviceType} and user_id = #{integralCountDTO.userId} and change_type = #{integralCountDTO.type} and create_at between #{integralCountDTO.startTime} and #{integralCountDTO.endTime}
+    </select>
+
+    <select id="getIntegralCommunityTradeApplets" parameterType="com.panzhihua.common.model.dtos.community.integral.ComActIntegralCommunityRankDTO"
+            resultType="com.panzhihua.common.model.vos.community.integral.ComActIntegralCommunityTradeVO">
+        SELECT
+            caiut.id,
+            caiut.amount,
+            caiut.service_type,
+            caiut.remark,
+            caiut.create_at,
+            caiut.change_type,
+            caiut.identity_type,
+            ca.`name` AS communityName
+        FROM
+            com_act_integral_user_trade AS caiut
+            LEFT JOIN com_act AS ca ON ca.community_id = caiut.community_id
+            <where>
+                1=1
+                <if test="communityTradeDTO.changeType != null">
+                    AND caiut.change_type = #{communityTradeDTO.changeType}
+                </if>
+                <if test="communityTradeDTO.communityId != null">
+                    and caiut.community_id = ${communityTradeDTO.communityId}
+                </if>
+
+                <if test="communityTradeDTO.userId != null">
+                    and caiut.user_id = #{communityTradeDTO.userId}
+                </if>
+
+                <if test="communityTradeDTO.identityType != null">
+                    and caiut.identity_type = #{communityTradeDTO.identityType}
+                </if>
+            </where>
+            order by caiut.create_at desc
+    </select>
+
+    <select id="getIntegralTradeListAdmin" parameterType="com.panzhihua.common.model.dtos.community.integral.admin.PageComActIntegralTradeDTO"
+            resultType="com.panzhihua.common.model.vos.community.integral.admin.ComActIntegralUserTradeAdminVO">
+        SELECT
+            caiut.id,
+            su.nick_name,
+            su.phone,
+            su.`name`,
+            su.is_volunteer,
+            su.is_partymember,
+            caiut.amount,
+            caiut.identity_type,
+            caiut.remark,
+            caiut.create_at
+        FROM
+            com_act_integral_user_trade AS caiut
+            LEFT JOIN sys_user AS su ON su.user_id = caiut.user_id
+            <where>
+                <if test="integralRuleDTO.communityId != null">
+                    and caiut.community_id = ${integralRuleDTO.communityId}
+                </if>
+                <if test="integralRuleDTO.identityType != null">
+                    and caiut.identity_type = #{integralRuleDTO.identityType}
+                </if>
+                <if test="integralRuleDTO.name != null and integralRuleDTO.name != &quot;&quot;">
+                    and (su.nick_name like concat (#{integralRuleDTO.name},'%') or su.name like concat (#{integralRuleDTO.name},'%'))
+                </if>
+                <if test="integralRuleDTO.phone != null and integralRuleDTO.phone != &quot;&quot;">
+                    and su.phone = #{integralRuleDTO.phone}
+                </if>
+                <if test="integralRuleDTO.userIdentity != null and integralRuleDTO.userIdentity == 2">
+                    and su.is_partymember = 1
+                </if>
+                <if test="integralRuleDTO.userIdentity != null and integralRuleDTO.userIdentity == 3">
+                    and su.is_volunteer = 1
+                </if>
+            </where>
+            order by caiut.create_at desc
+    </select>
+
+    <select id="getUserInfo" resultType="com.panzhihua.common.model.vos.community.integral.admin.IntegralUserVO">
+        select user_id,phone,nick_name,id_card,`name`,`status`,is_volunteer,is_partymember,create_at from sys_user where user_id = #{userId}
+    </select>
+    <select id="getUserIntegralDetail"
+            resultType="com.panzhihua.common.model.vos.community.integral.IntegralTradeVO">
+        SELECT
+            caiut.id,
+            caiut.amount,
+            caiut.service_type,
+            caiut.service_id,
+            caiut.remark,
+            caiut.create_at,
+            caiut.change_type,
+            caiut.identity_type,
+            ca.`name` AS communityName
+        FROM
+        com_act_integral_user_trade AS caiut
+        LEFT JOIN com_act AS ca ON ca.community_id = caiut.community_id
+        WHERE caiut.id = #{id}
+    </select>
+</mapper>
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..c956861
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActMicroWishDOMapper.xml
@@ -0,0 +1,317 @@
+<?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 (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`  in (2,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>
+            <if test='comActMicroWishVO.sponsorId != null and comActMicroWishVO.sponsorId != 0'>
+                AND w.sponsor_id  =#{comActMicroWishVO.sponsorId}
+            </if>
+            <if test='comActMicroWishVO.handleId != null and comActMicroWishVO.handleId != 0'>
+                AND FIND_IN_SET(#{comActMicroWishVO.handleId},w.handle_id) &gt; 0
+            </if>
+        </where>
+        group by w.id
+        ORDER BY  w.create_at desc
+    </select>
+
+    <select id="getWishHandleListAdmin" resultType="com.panzhihua.common.model.vos.user.SysUserVO">
+        <if test="type != null and type == 1">
+            select user_id,`name` as `name` from sys_user where `type` = 3 and community_id = ${communityId} and status = 1
+        </if>
+        <if test="type != null and type == 2">
+            select user_id,IFNULL(`name`,nick_name) as `name` from sys_user where `type` = 1 and user_id IN (select user_id from com_pb_member where community_id = ${communityId} AND audit_result = 1) and status = 1 and is_partymember = 1
+        </if>
+        <if test="type != null and type == 3">
+            select user_id,IFNULL(`name`,nick_name) as `name` from sys_user where `type` = 1 and user_id IN (select user_id from com_mng_volunteer_mng where community_id = ${communityId} AND state = 2) and status = 1 and is_volunteer = 1
+        </if>
+        <if test="type != null and type == 4">
+            select user_id,IFNULL(`name`,nick_name) as `name` from sys_user where `type` = 1 AND phone in (select DISTINCT(telephone) from com_act_social_worker where community_id = ${communityId}) and status = 1
+        </if>
+        <if test="type != null and type == 5">
+            select user_id,IFNULL(`name`,nick_name) as `name` from sys_user where `type` = 1 AND id_card in (select id_card from com_act_four_member where community_id = ${communityId}) and status = 1
+        </if>
+    </select>
+
+    <select id="getUserByUserId" resultType="com.panzhihua.common.model.vos.user.SysUserVO">
+        select user_id,IFNULL(`name`,nick_name) as `name`,`type`,is_volunteer,is_partymember from sys_user where user_id = #{userId}
+    </select>
+
+    <select id="pageMicroWishAdmin" 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,
+        w.score,
+        w.img_width,
+        w.finish_at,
+        w.aim_num,
+        w.img_height,
+        w.handle_id,
+        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 (SELECT * FROM com_act_easy_photo_handler WHERE service_type = 2) ch ON w.id = ch.service_id
+        LEFT JOIN sys_user u2 ON ch.user_id = u2.user_id
+        <where>
+            <if test='comActMicroWishVO.communityId != null and comActMicroWishVO.communityId != 0'>
+                and w.community_id = ${comActMicroWishVO.communityId}
+            </if>
+            <if test='comActMicroWishVO.createBegin != null '>
+                AND w.create_at BETWEEN #{comActMicroWishVO.createBegin}
+                AND #{comActMicroWishVO.createEnd}
+            </if>
+            <if test='comActMicroWishVO.sponsorPhone != null and comActMicroWishVO.sponsorPhone != &quot;&quot;'>
+                AND u.`phone` like concat(#{comActMicroWishVO.sponsorPhone},'%')
+            </if>
+            <if test='comActMicroWishVO.sponsorName != null and comActMicroWishVO.sponsorName != &quot;&quot;'>
+                AND u.`name` like concat(#{comActMicroWishVO.sponsorName},'%')
+            </if>
+            <if test='comActMicroWishVO.responsibleName != null and comActMicroWishVO.responsibleName != &quot;&quot;'>
+                AND u2.`name` like concat(#{comActMicroWishVO.responsibleName},'%')
+            </if>
+            <if test='comActMicroWishVO.status != null'>
+                AND w.`status` = #{comActMicroWishVO.status}
+            </if>
+        </where>
+        group by w.id
+
+        ORDER BY  w.create_at desc
+    </select>
+
+
+    <select id="detailMicroWish" resultType="com.panzhihua.common.model.vos.community.ComActMicroWishVO">
+       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.handle_id,
+            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
+            LEFT JOIN (SELECT * FROM com_act_easy_photo_handler WHERE service_type = 2) ch ON w.id = ch.service_id
+            LEFT JOIN sys_user u2 ON ch.user_id = u2.user_id
+            WHERE
+            w.id =#{id}
+    </select>
+
+
+
+
+<!--    <select id="selectRealizePercent" resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">-->
+<!--        SELECT t1.filed, t1.num, ROUND( t1.num / t2.sum * 100, 2 ) AS percent-->
+<!--        FROM-->
+<!--        (SELECT IF(`status` = 6,'已实现','待实现') AS filed, COUNT(`status`) AS num FROM com_act_micro_wish-->
+<!--        WHERE community_id = ${communityId} AND `status` NOT IN(1,4) GROUP BY filed) t1,-->
+<!--        (SELECT COUNT(id) AS sum FROM com_act_micro_wish WHERE community_id = ${communityId} AND  `status` NOT IN(1,4)) t2-->
+<!--    </select>-->
+
+    <select id="selectRealizePercent" resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT t1.filed, t1.num, ROUND( t1.num / t2.sum * 100, 2 ) AS percent
+        FROM
+        (SELECT IF(`state` = 2,'已实现','待实现') AS filed, COUNT(`state`) AS num FROM jinhui_micro_volunteering
+         GROUP BY filed) t1,
+        (SELECT COUNT(id) AS sum FROM jinhui_micro_volunteering) t2
+    </select>
+<!--    <select id="getPassedAllImages" resultType="java.lang.String">-->
+<!--        SELECT photo_path_list FROM com_act_micro_wish-->
+<!--        WHERE community_id = ${communityId} AND (`status` =2 OR `status` = 3 OR `status` = 5 OR `status` = 6 OR `status` = 7)-->
+<!--        AND photo_path_list IS NOT NULL AND photo_path_list != ''-->
+<!--        ORDER BY create_at DESC limit #{pageSize}-->
+<!--    </select>-->
+
+    <select id="getPassedAllImages" resultType="java.lang.String">
+        SELECT img_url as photoPathList FROM jinhui_micro_volunteering
+        WHERE img_url IS NOT NULL AND img_url != ''
+        ORDER BY creation_time DESC limit #{pageSize}
+    </select>
+
+    <select id="selectIndexMicroWishBaseData"
+            resultType="com.panzhihua.common.model.vos.community.bigscreen.BigScreenMicroWishStatisticsInfo">
+        SELECT
+        (SELECT COUNT(id) FROM com_act_micro_wish WHERE community_id = ${communityId} AND `status` NOT IN(1,4)) AS microWishTotal,
+        (SELECT COUNT(id) FROM com_act_micro_wish WHERE community_id = ${communityId} AND `status` = 6) AS microWishRealized,
+        (SELECT COUNT(id) FROM com_act_micro_wish WHERE community_id = ${communityId} AND `status` NOT IN(1,4,6)) AS microWishUnrealized
+    </select>
+    <select id="getMicroWishAddPolylineData"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT filed, SUM(num) AS num FROM (
+            SELECT DATE_FORMAT( create_at, '%Y-%m' ) AS filed, COUNT(id) AS num FROM com_act_micro_wish
+            WHERE community_id = ${communityId} AND `status` NOT IN(1,4) AND DATE_FORMAT( create_at, '%Y-%m' ) &gt; DATE_FORMAT(date_sub(curdate(), interval 12 month),'%Y-%m') GROUP BY filed
+            UNION ALL SELECT * FROM
+            (
+                SELECT DATE_FORMAT(curdate(),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 1 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 2 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 3 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 4 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 5 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 6 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 7 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 8 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 9 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 10 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 11 month),'%Y-%m') AS filed, 0 AS num
+            ) temT
+        ) temp GROUP BY filed ORDER BY filed ASC
+    </select>
+    <select id="getMicroWishTotalPolylineDate"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT COUNT(id) AS num FROM com_act_micro_wish
+        WHERE community_id = ${communityId} AND `status` NOT IN(1,4) AND DATE_FORMAT( create_at, '%Y-%m' ) &lt;= #{date}
+    </select>
+    <select id="selectScreenDisplayList"
+            resultType="com.panzhihua.common.model.vos.community.ComActMicroWishVO">
+        SELECT id, `status`, detail, photo_path_list
+        FROM com_act_micro_wish
+        WHERE community_id = ${pageBaseDTO.communityId} AND `status` NOT IN(1,4) ORDER BY create_at DESC
+    </select>
+    <select id="pagePartyBuildIngMicroWish"
+            resultType="com.panzhihua.common.model.vos.community.ComActMicroWishVO">
+        SELECT t2.id, t2.photo_path_list
+        FROM com_act_easy_photo_handler t1
+        INNER JOIN com_act_micro_wish t2 ON t1.service_id = t2.id
+        WHERE t1.community_id = #{pageBaseDTO.communityId} AND t1.`type` = 2 AND t1.service_type = 2 AND t2.`status` = 6 AND t2.photo_path_list IS NOT NULL
+    </select>
+    <select id="pageFourMemberResolve" resultType="com.panzhihua.common.model.vos.community.ComActMicroWishVO">
+        SELECT * FROM(
+            SELECT t2.id, t2.photo_path_list
+            FROM com_act_easy_photo_handler t1
+            INNER JOIN com_act_micro_wish t2 ON t1.service_id = t2.id
+            WHERE t1.community_id = #{pageBaseDTO.communityId} AND t1.`type` = 5 AND t1.service_type = 2 AND t2.`status` = 6 AND t2.photo_path_list IS NOT NULL
+            UNION ALL
+            SELECT t2.id, t2.photo_path_list
+            FROM com_act_easy_photo_handler t1
+            INNER JOIN com_act_easy_photo t2 ON t1.service_id = t2.id
+            WHERE t1.community_id = #{pageBaseDTO.communityId} AND t1.`type` = 5 AND t1.service_type = 1 AND t2.`status` = 5 AND t2.photo_path_list IS NOT NULL
+        ) temp
+    </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..52a1b0f
--- /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/ComActNeighborCircleCommentReplyWestDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActNeighborCircleCommentReplyWestDOMapper.xml
new file mode 100644
index 0000000..04f8760
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActNeighborCircleCommentReplyWestDOMapper.xml
@@ -0,0 +1,78 @@
+<?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.ComActNeighborCircleCommentReplyWestDAO">
+
+    <select id="getCircleCommentReplyList" resultType="com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleCommentReplyAppVO">
+        select * from (
+            select
+              reply.id,reply.comment_id, reply.reply_content,reply.fabulous_num,
+              reply.create_at,reply.is_release,su1.nick_name as userName,
+              su1.image_url as userHeadUrl,su2.nick_name as parentUserName
+            from com_act_neighbor_circle_comment_reply as reply
+                   left join sys_user su1 on su1.user_id = reply.user_id
+                   left join sys_user su2 on su2.user_id = reply.parent_user_id
+            where reply.status = 1 and reply.comment_id = #{commentId}
+            union
+            select
+              reply.id,reply.comment_id, reply.reply_content,reply.fabulous_num,
+              reply.create_at,reply.is_release,su1.nick_name as userName,
+              su1.image_url as userHeadUrl,su2.nick_name as parentUserName
+            from com_act_neighbor_circle_comment_reply_west as reply
+                   left join sys_user su1 on su1.user_id = reply.user_id
+                   left join sys_user su2 on su2.user_id = reply.parent_user_id
+            where reply.status = 1 and reply.comment_id = #{commentId}
+        ) temp
+        order by temp.create_at desc
+    </select>
+
+
+    <select id="selectListByComment" resultType="com.panzhihua.common.model.vos.neighbor.ComActNeighborCommentReplyByAdminVO">
+        select * from (
+            select
+                cr.id,
+                cr.circle_id,
+                cr.comment_id,
+                cr.parent_id,
+                cr.parent_user_id,
+                cr.user_id,
+                cr.reply_content,
+                cr.fabulous_num,
+                cr.create_at,
+                cr.is_release,
+                cr.status,
+                u.name as userName,u.phone as userPhone,u.nick_name as userNickName
+            from com_act_neighbor_circle_comment_reply cr
+            left join sys_user u on cr.user_id=u.user_id
+            <where>
+                <if test='dto.id != null and dto.id!= 0l'>
+                    cr.comment_id = #{dto.id}
+                </if>
+            </where>
+        union
+            select
+                cr.id,
+                cr.circle_id,
+                cr.comment_id,
+                cr.parent_id,
+                cr.parent_user_id,
+                cr.user_id,
+                cr.reply_content,
+                cr.fabulous_num,
+                cr.create_at,
+                cr.is_release,
+                cr.status,
+                u.name as userName,u.phone as userPhone,u.nick_name as userNickName
+            from com_act_neighbor_circle_comment_reply_west cr
+            left join sys_user u on cr.user_id=u.user_id
+            <where>
+                <if test='dto.id != null and dto.id!= 0l'>
+                    cr.comment_id = #{dto.id}
+                </if>
+            </where>
+        ) temp
+        ORDER BY temp.create_at
+    </select>
+
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActNeighborCircleCommentWestDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActNeighborCircleCommentWestDOMapper.xml
new file mode 100644
index 0000000..51be0d9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActNeighborCircleCommentWestDOMapper.xml
@@ -0,0 +1,75 @@
+<?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.ComActNeighborCircleCommentWestDAO">
+
+
+
+    <select id="pageNeighborCommentByApp" resultType="com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleCommentAppVO">
+        select * FROM (
+        select cancc.id,cancc.circle_id,cancc.user_id,cancc.content,cancc.fabulous_num,
+        cancc.create_at,cancc.is_release,su.nick_name as userName,su.image_url as userHeadUrl
+        from com_act_neighbor_circle_comment as cancc
+        left join sys_user as su on su.user_id = cancc.user_id
+        where cancc.circle_id = #{neighborCircleAppDTO.circleId} and cancc.status = 1
+        union
+        select cancc.id,cancc.circle_id,cancc.user_id,cancc.content,cancc.fabulous_num,
+        cancc.create_at,cancc.is_release,su.nick_name as userName,su.image_url as userHeadUrl
+        from com_act_neighbor_circle_comment_west as cancc
+        left join sys_user as su on su.user_id = cancc.user_id
+        where cancc.circle_id = #{neighborCircleAppDTO.circleId} and cancc.status = 1) temp
+        <if test='neighborCircleAppDTO.order != null and neighborCircleAppDTO.order == 1'>
+            order by temp.create_at desc
+        </if>
+        <if test='neighborCircleAppDTO.order != null and neighborCircleAppDTO.order == 2'>
+            order by temp.create_at asc
+        </if>
+
+    </select>
+
+
+    <select id="selectPageDetailNeighborComment" resultType="com.panzhihua.common.model.vos.neighbor.ComActNeighborCommentByAdminVO">
+        select * FROM (
+            (select
+                nc.id,
+                nc.circle_id,
+                nc.user_id,
+                nc.content,
+                nc.user_phone,
+                nc.fabulous_num,
+                nc.status,
+                nc.create_at,
+                nc.is_release,u.nick_name as userName,u.phone as userPhone
+            from com_act_neighbor_circle_comment nc
+            eft join sys_user u on nc.user_id=u.user_id
+            <where>
+                <if test='dto.id != null and dto.id!= 0l'>
+                    nc.circle_id = #{dto.id}
+                </if>
+            </where>
+            )
+        union
+            (select  nc.id,
+                nc.circle_id,
+                nc.user_id,
+                nc.content,
+                nc.user_phone,
+                nc.fabulous_num,
+                nc.status,
+                nc.create_at,
+                nc.is_release,
+                u.nick_name as userName,u.phone as userPhone
+            from com_act_neighbor_circle_comment_west nc left join sys_user u on nc.user_id=u.user_id
+            <where>
+                <if test='dto.id != null and dto.id!= 0l'>
+                    nc.circle_id = #{dto.id}
+                </if>
+            </where>
+            )
+        ) temp
+        ORDER BY temp.create_at
+    </select>
+
+
+
+
+</mapper>
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..beb2e79
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActNeighborCircleDOMapper.xml
@@ -0,0 +1,980 @@
+<?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.*,
+        su.nick_name as name,
+        su.community_id,
+        ca.`name` as communityName,
+        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
+        left join com_act as ca on ca.community_id = canc.community_id
+        where is_del = 2 and canc.status = 2
+        and canc.community_id in
+        <foreach collection="neighborCircleAppDTO.communityIds" item="item" index="index" open="(" separator="," close=")">
+            ${item}
+        </foreach>
+        <if test='neighborCircleAppDTO.topicId != null '>
+            and canc.topic_id = #{neighborCircleAppDTO.topicId}
+        </if>
+        <if test='neighborCircleAppDTO.belongType != null '>
+            and canc.belong_type = #{neighborCircleAppDTO.belongType}
+        </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>
+        <if test="neighborCircleAppDTO.isHelp ==1">
+            and (canc.help_member_content like concat ('%',#{neighborCircleAppDTO.phone},'%') or canc.help_org_content like concat ('%',#{neighborCircleAppDTO.phone},'%') )
+        </if>
+        <if test="neighborCircleAppDTO.solveStatus !=null">
+            <if test="neighborCircleAppDTO.solveStatus ==1">
+                and canc.solve_status in (0,1)
+            </if>
+            <if test="neighborCircleAppDTO.solveStatus ==2">
+                and canc.solve_status =2
+            </if>
+            <if test="neighborCircleAppDTO.solveStatus ==3">
+                and canc.solve_status in(3,4)
+            </if>
+        </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,nc.solve_status
+        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 in
+            <foreach collection="neighborCircleAdminDTO.communityIds" item="item" index="index" open="(" separator="," close=")">
+                ${item}
+            </foreach>
+                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.topicId != null '>
+                and canc.topic_id = #{neighborCircleAdminDTO.topicId}
+            </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>
+            <if test='neighborCircleAdminDTO.belongType != null '>
+                and nc.belong_type = #{neighborCircleAdminDTO.belongType}
+            </if>
+            <if test="neighborCircleAdminDTO.solveStatus !=null">
+                <if test="neighborCircleAdminDTO.solveStatus ==1">
+                    and nc.solve_status in (0,1)
+                </if>
+                <if test="neighborCircleAdminDTO.solveStatus ==2">
+                    and nc.solve_status =2
+                </if>
+                <if test="neighborCircleAdminDTO.solveStatus ==3">
+                    and nc.solve_status in(3,4)
+                </if>
+            </if>
+        </where>
+        order by
+        case when nc.`status`=1 then 0 else 1 end,
+        nc.`status` asc,nc.create_at desc
+    </select>
+    <select id="getAllImages" resultType="java.lang.String">
+        SELECT release_images FROM com_act_neighbor_circle
+        WHERE community_id = ${communityId} AND `status` = 2 and belong_type = 1 AND release_images IS NOT NULL AND release_images != ''
+        ORDER BY create_at DESC limit #{pageSize}
+    </select>
+    <select id="getContents" resultType="java.lang.String">
+        SELECT release_content FROM com_act_neighbor_circle
+        WHERE community_id = ${communityId} AND `status` = 2 and belong_type = 1 AND release_content IS NOT NULL AND release_content != ''
+        ORDER BY create_at DESC limit #{pageSize}
+    </select>
+    <select id="getIndexNeighborBaseData"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT filed, num, ROUND(num/total,2) AS percent FROM
+        (SELECT IF(t2.`name` IS NULL,'无话题',t2.`name`) AS filed, COUNT(1) AS num FROM com_act_neighbor_circle t1
+        LEFT JOIN com_act_neighbor_circle_topic t2 ON t1.topic_id = t2.id
+        WHERE t1.community_id = ${communityId} AND t1.`status` IN (2,3) AND t1.is_del = 2 AND (t2.`status` = 1 OR t2.id IS NULL) GROUP BY filed) temp1,
+        (SELECT COUNT(t1.id) AS total FROM com_act_neighbor_circle t1
+        LEFT JOIN com_act_neighbor_circle_topic t2 ON t1.topic_id = t2.id
+        WHERE t1.community_id = ${communityId} AND t1.`status` IN (2,3) AND t1.is_del = 2 AND (t2.`status` = 1 OR t2.id IS NULL)) temp2
+    </select>
+    <select id="getNeighborAddPolylineData"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT filed, SUM(num) AS num FROM (
+        SELECT DATE_FORMAT( t1.create_at, '%Y-%m' ) AS filed, COUNT(t1.id) AS num
+        FROM com_act_neighbor_circle t1
+        LEFT JOIN com_act_neighbor_circle_topic t2 ON t1.topic_id = t2.id
+        WHERE t1.community_id = ${communityId} AND t1.`status` IN (2,3) AND t1.is_del = 2 AND (t2.`status` = 1 OR t2.id IS NULL)
+        AND DATE_FORMAT( t1.create_at, '%Y-%m' ) &gt; DATE_FORMAT(date_sub(curdate(), interval 12 month),'%Y-%m') GROUP BY filed
+        UNION ALL SELECT * FROM
+            (
+                SELECT DATE_FORMAT(curdate(),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 1 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 2 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 3 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 4 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 5 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 6 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 7 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 8 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 9 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 10 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 11 month),'%Y-%m') AS filed, 0 AS num
+            ) temT
+        ) temp GROUP BY filed ORDER BY filed ASC
+    </select>
+    <select id="getNeighborTotalPolylineDate"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT COUNT(t1.id) AS num FROM com_act_neighbor_circle t1
+        LEFT JOIN com_act_neighbor_circle_topic t2 ON t1.topic_id = t2.id
+        WHERE t1.community_id = ${communityId} AND t1.`status` IN (2,3) AND t1.is_del = 2 AND (t2.`status` = 1 OR t2.id IS NULL) AND DATE_FORMAT( t1.create_at, '%Y-%m' ) &lt;= #{date}
+    </select>
+    <select id="indexNeighborList"
+            resultType="com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleAdminVO">
+        SELECT t1.id, t1.release_content, t1.release_images, t1.comment_num, t1.fabulous_num, t2.`name` AS topicName
+        FROM com_act_neighbor_circle t1
+        LEFT JOIN com_act_neighbor_circle_topic t2 ON t1.topic_id = t2.id
+        WHERE 1=1
+        <if test="pageBaseDTO.communityIds != null and pageBaseDTO.communityIds.size > 0">
+            AND t1.community_id IN
+            <foreach collection="pageBaseDTO.communityIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="pageBaseDTO.communityIds == null">
+            AND t1.community_id = ${pageBaseDTO.communityId}
+        </if>
+        AND t1.`status` IN (2,3) AND t1.is_del = 2 AND (t2.`status` = 1 OR t2.id IS NULL)
+        <if test="pageBaseDTO.paramId != null">
+            AND t1.topic_id = #{pageBaseDTO.paramId}
+        </if>
+        ORDER BY t1.id DESC
+    </select>
+
+    <select id="selectSolve" resultType="com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleAppVO">
+        select canc.id,canc.release_content,canc.release_images,canc.status,canc.create_at,canct.name as topicName
+        ,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,canc.solve_status,canc.community_id
+         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>
+            <if test="neighborCircleAppDTO.solveId !=null">
+                and canc.solve_id =#{neighborCircleAppDTO.solveId}
+            </if>
+            <if test="neighborCircleAppDTO.solveStatus !=null">
+                and canc.solve_status =#{neighborCircleAppDTO.solveStatus}
+            </if>
+            <if test="neighborCircleAppDTO.belongType !=null">
+                and canc.belong_type =#{neighborCircleAppDTO.belongType}
+            </if>
+            <if test="neighborCircleAppDTO.orderType !=null">
+                and canc.order_type =#{neighborCircleAppDTO.orderType}
+            </if>
+        </where>  order by create_at desc
+    </select>
+
+
+<!--    SELECT-->
+<!--    canc.*,-->
+<!--    su.nick_name as name,-->
+<!--    su.community_id,-->
+<!--    ca.`name` as communityName,-->
+<!--    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-->
+<!--    left join com_act as ca on ca.community_id = canc.community_id-->
+<!--    where canc.id =${circleId}-->
+
+    <select id="neighborDetailByApp" resultType="com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleDetailAppVO">
+
+        SELECT
+            canc.*,
+            su.nick_name as name,
+            su.community_id as communityId,
+            ca.`name` as communityName,
+            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
+        left join com_act as ca on ca.community_id = canc.community_id
+        where canc.id =${circleId}
+
+
+    </select>
+
+
+    <select id="selectStatsCheckUnit" resultType="com.panzhihua.common.model.vos.neighbor.ServiceStaticsVO">
+         select count(t1.checkId) as times,COALESCE(sum(t1.hours),0) as hours from
+         ((select real_service_time as hours,solve_unit_id  as checkId  from com_act_neighbor_circle  where order_type = 1 AND is_del = 2 and solve_status = 4 and solve_unit_id = #{checkUnitId} and order_time between concat(#{date},'-01-01 00:00:00') and concat(#{date},'-12-31 23:59:59'))
+          union all
+         (select duration as hours,check_unit_id as checkId from com_act_activity  where check_unit_id = #{checkUnitId} AND `status` = 5 and publish_at between concat(#{date},'-01-01 00:00:00') and concat(#{date},'-12-31 23:59:59'))
+          union all
+         (SELECT a.duration AS hours,s.check_unit_id AS checkId FROM com_act_activity a LEFT JOIN com_act_act_regist s ON a.id = s.activity_id
+            WHERE s.end_time IS NOT NULL AND s.check_unit_id = #{checkUnitId} AND s.start_time BETWEEN concat( #{date}, '-01-01 00:00:00' ) AND concat( #{date}, '-12-31 23:59:59' ) GROUP BY a.id)
+         ) t1
+    </select>
+    <select id="selectListByCheckUnitId" resultType="com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleAppVO">
+        SELECT
+            canc.*,
+            su.nick_name as name,
+            su.community_id,
+            ca.`name` as communityName,
+            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
+                left join com_act as ca on ca.community_id = canc.community_id
+        where is_del = 2 and canc.solve_status=4 and   canc.solve_unit_id = #{checkUnitId} and canc.create_at between concat(#{date},'-01-01 00:00:00') and concat(#{date},'-12-31 23:59:59')
+    </select>
+
+    <select id="selectServiceDetailList" resultType="com.panzhihua.common.model.vos.neighbor.ServiceDetailStaticsVO">
+        <if test="serviceType == null">
+            SELECT * FROM (
+                SELECT
+                id AS serviceId,
+                order_time AS serviceAt,
+                real_service_time AS serviceTime,
+                1 AS serviceType
+                FROM
+                com_act_neighbor_circle
+                WHERE
+                order_type = 1
+                AND is_del = 2
+                AND solve_status = 4
+                AND solve_unit_id = #{checkUnitId}
+                AND order_time BETWEEN concat(#{date}, '-01-01 00:00:00')
+                AND concat(#{date}, '-12-31 23:59:59')
+                UNION ALL
+                SELECT
+                a.id AS serviceId,
+                a.publish_at AS serviceAt,
+                a.duration AS serviceTime,
+                2 AS serviceType
+                FROM
+                com_act_activity a
+                LEFT JOIN com_act_act_regist s ON a.id = s.activity_id
+                WHERE
+                s.end_time IS NOT NULL
+                AND s.check_unit_id = #{checkUnitId}
+                AND s.start_time BETWEEN concat( #{date}, '-01-01 00:00:00' )
+                AND concat( #{date}, '-12-31 23:59:59' )
+                GROUP BY
+                a.id
+                UNION ALL
+                SELECT
+                id AS serviceId,
+                publish_at AS serviceAt,
+                duration AS serviceTime,
+                3 AS serviceType
+                FROM
+                com_act_activity
+                WHERE
+                check_unit_id = #{checkUnitId}
+                AND `status` = 5
+                AND publish_at BETWEEN concat( #{date}, '-01-01 00:00:00' )
+                AND concat( #{date}, '-12-31 23:59:59' )
+            ) temp ORDER BY serviceAt
+        </if>
+        <if test="serviceType == 1">
+            SELECT
+            id AS serviceId,
+            order_time AS serviceAt,
+            real_service_time AS serviceTime,
+            1 AS serviceType
+            FROM
+            com_act_neighbor_circle
+            WHERE
+            order_type = 1
+            AND is_del = 2
+            AND solve_status = 4
+            AND solve_unit_id = #{checkUnitId}
+            AND order_time BETWEEN concat(#{date}, '-01-01 00:00:00')
+            AND concat(#{date}, '-12-31 23:59:59')
+            ORDER BY serviceAt
+        </if>
+        <if test="serviceType == 2">
+            SELECT
+            a.id AS serviceId,
+            a.publish_at AS serviceAt,
+            a.duration AS serviceTime,
+            2 AS serviceType
+            FROM
+            com_act_activity a
+            LEFT JOIN com_act_act_regist s ON a.id = s.activity_id
+            WHERE
+            s.end_time IS NOT NULL
+            AND s.check_unit_id = #{checkUnitId}
+            AND s.start_time BETWEEN concat( #{date}, '-01-01 00:00:00' )
+            AND concat( #{date}, '-12-31 23:59:59' )
+            GROUP BY a.id
+            ORDER BY serviceAt
+        </if>
+        <if test="serviceType == 3">
+            SELECT
+            id AS serviceId,
+            publish_at AS serviceAt,
+            duration AS serviceTime,
+            3 AS serviceType
+            FROM
+            com_act_activity
+            WHERE
+            check_unit_id = #{checkUnitId}
+            AND `status` = 5
+            AND publish_at BETWEEN concat( #{date}, '-01-01 00:00:00' )
+            AND concat( #{date}, '-12-31 23:59:59' )
+            ORDER BY serviceAt
+        </if>
+    </select>
+
+    <select id="selectServiceDetailListForPersonal" resultType="com.panzhihua.common.model.vos.neighbor.ServiceDetailStaticsVO">
+        <if test="serviceType == null">
+            SELECT * FROM (
+            SELECT
+            canc.id AS serviceId,
+            canc.order_time AS serviceAt,
+            canc.real_service_time AS serviceTime,
+            1 AS serviceType
+            FROM
+            com_act_neighbor_circle AS canc
+            LEFT JOIN sys_user su1 ON su1.user_id = canc.solve_id
+            WHERE
+            canc.order_type = 2
+            AND canc.is_del = 2
+            AND canc.solve_status = 4
+            AND su1.phone = #{phone}
+            AND canc.order_time BETWEEN concat( #{date}, '-01-01 00:00:00' )
+            AND concat( #{date}, '-12-31 23:59:59' )
+            <if test="checkUnitId != null and checkUnitId != '' ">
+                UNION ALL
+                SELECT
+                a.id AS serviceId,
+                a.publish_at AS serviceAt,
+                ROUND((TIMESTAMPDIFF(SECOND, s.start_time, s.end_time) / 3600), 2) as serviceTime,
+                2 AS serviceType
+                FROM
+                com_act_activity a
+                LEFT JOIN com_act_act_regist s ON a.id = s.activity_id
+                LEFT JOIN sys_user su ON su.user_id = s.user_id
+                WHERE
+                s.end_time IS NOT NULL
+                AND s.check_unit_id = #{checkUnitId}
+                AND su.phone = #{phone}
+                AND s.start_time BETWEEN concat( #{date}, '-01-01 00:00:00' )
+                AND concat( #{date}, '-12-31 23:59:59' )
+                and s.start_time IS NOT NULL
+                and s.end_time IS NOT NULL
+                GROUP BY
+                a.id
+            </if>
+            UNION ALL
+            SELECT
+            a.id AS serviceId,
+            a.publish_at AS serviceAt,
+            ROUND((TIMESTAMPDIFF(SECOND, s.start_time, s.end_time) / 3600), 2)  AS serviceTime,
+            3 AS serviceType
+            FROM
+            com_act_activity a
+            LEFT JOIN com_act_act_regist s ON a.id = s.activity_id
+            LEFT JOIN sys_user su ON su.user_id = s.user_id
+            WHERE
+            s.end_time IS NOT NULL
+            AND a.check_unit_id IS NOT NULL
+            AND su.phone = #{phone}
+            AND s.start_time BETWEEN concat( #{date}, '-01-01 00:00:00' )
+            AND concat( #{date}, '-12-31 23:59:59' )
+            GROUP BY
+            a.id
+            UNION ALL
+            SELECT
+            a.id AS serviceId,
+            a.publish_at AS serviceAt,
+            ROUND((TIMESTAMPDIFF(SECOND, s.start_time, s.end_time) / 3600), 2) AS serviceTime,
+            4 AS serviceType
+            FROM
+            com_act_activity a
+            LEFT JOIN com_act_act_regist s ON a.id = s.activity_id
+            LEFT JOIN sys_user su ON su.user_id = s.user_id
+            WHERE
+            s.end_time IS NOT NULL
+            AND s.check_unit_id IS NULL
+            AND s.sign_identity = 2
+            AND su.phone = #{phone}
+            AND s.start_time BETWEEN concat( #{date}, '-01-01 00:00:00' )
+            AND concat( #{date}, '-12-31 23:59:59' )
+            GROUP BY
+            a.id
+            ) temp ORDER BY serviceAt
+        </if>
+        <if test="serviceType == 1">
+            SELECT
+            canc.id AS serviceId,
+            canc.order_time AS serviceAt,
+            canc.real_service_time AS serviceTime,
+            1 AS serviceType
+            FROM
+            com_act_neighbor_circle AS canc
+            LEFT JOIN sys_user su1 ON su1.user_id = canc.solve_id
+            WHERE
+            canc.order_type = 2
+            AND canc.is_del = 2
+            AND canc.solve_status = 4
+            AND su1.phone = #{phone}
+            AND canc.order_time BETWEEN concat( #{date}, '-01-01 00:00:00' )
+            AND concat( #{date}, '-12-31 23:59:59' )
+            ORDER BY serviceAt
+        </if>
+        <if test="serviceType == 2 and checkUnitId != null">
+            SELECT
+            a.id AS serviceId,
+            a.publish_at AS serviceAt,
+            ROUND((TIMESTAMPDIFF(SECOND, s.start_time, s.end_time) / 3600), 2) AS serviceTime,
+            2 AS serviceType
+            FROM
+            com_act_activity a
+            LEFT JOIN com_act_act_regist s ON a.id = s.activity_id
+            LEFT JOIN sys_user su ON su.user_id = s.user_id
+            WHERE
+            s.end_time IS NOT NULL
+            AND s.check_unit_id = #{checkUnitId}
+            AND su.phone = #{phone}
+            AND s.start_time BETWEEN concat( #{date}, '-01-01 00:00:00' )
+            AND concat( #{date}, '-12-31 23:59:59' )
+            GROUP BY a.id
+            ORDER BY serviceAt
+        </if>
+        <if test="serviceType == 3">
+            SELECT
+            a.id AS serviceId,
+            a.publish_at AS serviceAt,
+            ROUND((TIMESTAMPDIFF(SECOND, s.start_time, s.end_time) / 3600), 2) AS serviceTime,
+            3 AS serviceType
+            FROM
+            com_act_activity a
+            LEFT JOIN com_act_act_regist s ON a.id = s.activity_id
+            LEFT JOIN sys_user su ON su.user_id = s.user_id
+            WHERE
+            s.end_time IS NOT NULL
+            AND a.check_unit_id IS NOT NULL
+            AND su.phone = #{phone}
+            AND s.start_time BETWEEN concat( #{date}, '-01-01 00:00:00' )
+            AND concat( #{date}, '-12-31 23:59:59' )
+            GROUP BY a.id
+            ORDER BY serviceAt
+        </if>
+        <if test="serviceType == 4">
+            SELECT
+            a.id AS serviceId,
+            a.publish_at AS serviceAt,
+            ROUND((TIMESTAMPDIFF(SECOND, s.start_time, s.end_time) / 3600), 2) AS serviceTime,
+            4 AS serviceType
+            FROM
+            com_act_activity a
+            LEFT JOIN com_act_act_regist s ON a.id = s.activity_id
+            LEFT JOIN sys_user su ON su.user_id = s.user_id
+            WHERE
+            s.end_time IS NOT NULL
+            AND a.check_unit_id IS NULL
+            AND s.sign_identity = 2
+            AND su.phone = #{phone}
+            AND s.start_time BETWEEN concat( #{date}, '-01-01 00:00:00' )
+            AND concat( #{date}, '-12-31 23:59:59' )
+            GROUP BY a.id
+            ORDER BY serviceAt
+        </if>
+    </select>
+
+
+    <select id="getNewServiceNum" resultType="com.panzhihua.service_community.entity.NewFightNeedProblemClaim">
+        SELECT
+            id,
+            user_id,
+            update_time,
+            unit_id,
+            task_id,
+            service_time,
+            punch_start_time,
+            punch_end_time,
+            creation_time
+        FROM new_fight_need_problem_claim
+        <where>
+            service_time is not null
+            <if test=" phone != null and phone != '' ">
+                and user_id =(SELECT user_id FROM sys_user WHERE phone=#{phone}
+                and app_id="wx118de8a734d269f0" and type=1)
+            </if>
+            <if test=" unitId != null and unitId != '' ">
+                and unit_id =#{unitId}
+            </if>
+        </where>
+
+    </select>
+
+
+
+    <select id="selectStatsUser" resultType="com.panzhihua.common.model.vos.neighbor.ServiceStaticsVO">
+        select
+               count(t1.checkId) as times,
+               sum(t1.hours) as hours
+        from  ((select real_service_time as hours,solve_id  as checkId from com_act_neighbor_circle canc
+            left join sys_user su on canc.solve_id = su.user_id  where order_type = 2 AND canc.is_del = 2 and solve_status = 4
+                and su.phone = #{phone} and canc.order_time between concat(#{date},'-01-01 00:00:00') and concat(#{date},'-12-31 23:59:59'))
+            union all
+                (select ROUND((TIMESTAMPDIFF(SECOND, caas.start_time, caas.end_time) / 3600), 2) as hours,caas.user_id as checkId
+                from com_act_activity caa LEFT JOIN com_act_act_regist caas on caa.id = caas.activity_id
+                left join sys_user su on caas.user_id = su.user_id
+                where caas.sign_identity = 2
+                    and caas.end_time is not null and su.phone =#{phone}
+                    and publish_at between concat(#{date},'-01-01 00:00:00') and concat(#{date},'-12-31 23:59:59')
+                    and caas.start_time IS NOT NULL
+                    and caas.end_time IS NOT NULL
+                    and caas.check_unit_id IS NULL
+                group by caa.id)
+
+            <if test="checkUnitId != null and checkUnitId!='' ">
+                UNION ALL
+                (SELECT
+                ROUND((TIMESTAMPDIFF(SECOND, s.start_time, s.end_time) / 3600), 2) as hours,
+                a.id AS checkId
+                FROM
+                com_act_activity a
+                LEFT JOIN com_act_act_regist s ON a.id = s.activity_id
+                LEFT JOIN sys_user su ON su.user_id = s.user_id
+                WHERE
+                s.end_time IS NOT NULL
+                AND s.check_unit_id = #{checkUnitId}
+                AND su.phone = #{phone}
+                AND s.start_time BETWEEN concat( #{date}, '-01-01 00:00:00' )
+                AND concat( #{date}, '-12-31 23:59:59' )
+                and s.start_time IS NOT NULL
+                and s.end_time IS NOT NULL
+                GROUP BY
+                a.id)
+            </if>
+            ) t1
+    </select>
+
+    <select id="selectListByPhone" resultType="com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleAppVO">
+        SELECT
+            canc.*,
+            su.nick_name as name,
+            su.community_id,
+            ca.`name` as communityName,
+            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
+                left join com_act as ca on ca.community_id = canc.community_id
+                left join sys_user su1 on su1.user_id = canc.solve_id
+        where is_del = 2 and canc.solve_status=4 and su1.phone = #{phone} and canc.create_at between concat(#{date},'-01-01 00:00:00') and concat(#{date},'-12-31 23:59:59')
+    </select>
+    <select id="institutionalUnitServiceAnalysis"
+            resultType="com.panzhihua.common.model.vos.neighbor.UnitActivityAnalysisVO">
+        select canc.solve_unit_id as unitId,sum(canc.real_service_time) as serviceTime,count(canc.real_service_time) as serviceTimes,canc.community_id as communityId,
+               cpcu.belong_to as belongTo,cpcu.org_name as orgName
+        from com_act_neighbor_circle as canc
+        left join com_pb_check_unit as cpcu on canc.solve_unit_id=cpcu.id
+        where
+        canc.order_type = 1
+        AND is_del = 2
+        AND solve_status = 4
+        AND canc.solve_unit_id&lt;>''
+        <if test="beginTime != null">
+            and canc.order_time between #{beginTime} and #{endTime}
+        </if>
+        <if test="belongTo != null and belongTo != ''">
+            and belong_to=#{belongTo}
+        </if>
+        <if test="communityId != null">
+            and canc.community_id=#{communityId}
+        </if>
+        <if test="unitId != null and unitId != ''">
+            and canc.solve_unit_id = #{unitId}
+        </if>
+        group by(canc.solve_unit_id)
+        having serviceTimes&lt;>'' and serviceTime&lt;>''
+        order by serviceTime desc
+    </select>
+
+    <select id="getNewTaskList" resultType="com.panzhihua.common.model.vos.neighbor.UnitActivityAnalysisVO">
+        SELECT
+            nfnpc.unit_id,
+            sum(nfnpc.service_time) as serviceTime,
+            count(nfnpc.service_time) as serviceTimes,
+            cpcu.belong_to as belongTo,
+            cpcu.org_name as orgName,
+            cpcu.community_id,
+            sum(nfnpi.award) as awardSum
+        FROM new_fight_need_problem_claim as nfnpc
+        left join com_pb_check_unit as cpcu on nfnpc.unit_id=cpcu.id
+        LEFT JOIN new_fight_need_problem_inventory as nfnpi on nfnpc.task_id=nfnpi.id
+        WHERE nfnpc.service_time iS NOT NULL AND nfnpc.unit_id IS NOT NULL
+        <if test="beginTime != null">
+            and nfnpc.creation_time between #{beginTime} and #{endTime}
+        </if>
+        <if test="belongTo != null and belongTo != ''">
+            and cpcu.belong_to=#{belongTo}
+        </if>
+        <if test="communityId != null">
+            and cpcu.community_id=#{communityId}
+        </if>
+        group by nfnpc.unit_id
+        having serviceTimes&lt;>'' and serviceTime&lt;>''
+        order by serviceTime desc
+    </select>
+
+
+
+
+    <select id="institutionalUnitActivityAnalysis"
+            resultType="com.panzhihua.common.model.vos.neighbor.UnitActivityAnalysisVO">
+        SELECT sum(serviceTimes) AS serviceTimes, sum(serviceTime) as serviceTime, unitId, communityId, belong_to, sum(award) as awardSum
+        FROM (
+            SELECT count(caa.check_unit_id) as serviceTimes,sum(caa.duration) as serviceTime,caa.check_unit_id as
+            unitId,caa.community_id as communityId,cpcu.belong_to,caa.pb_reward_integral as award
+            FROM com_act_activity as caa
+            left join com_pb_check_unit as cpcu on caa.check_unit_id=cpcu.id
+            where caa.`status` = 5 AND caa.check_unit_id&lt;>''
+            and caa.type=5
+            <if test="beginTime != null">
+                and caa.publish_at between #{beginTime} and #{endTime}
+            </if>
+            <if test="belongTo != null and belongTo != ''">
+                and belong_to=#{belongTo}
+            </if>
+            <if test="communityId != null">
+                and caa.community_id=#{communityId}
+            </if>
+            <if test="unitId != null and unitId != ''">
+                and caa.check_unit_id = #{unitId}
+            </if>
+            GROUP BY (caa.check_unit_id)
+            UNION ALL
+            SELECT count(id) as serviceTimes, sum(duration) as serviceTime, check_unit_id as unitId, community_id as
+            communityId, belong_to,award
+            FROM(
+                SELECT caa.id, caa.duration, s.check_unit_id , cpcu.community_id , cpcu.belong_to,caa.pb_reward_integral as award
+                FROM com_act_activity caa
+                LEFT JOIN com_act_act_regist s ON caa.id = s.activity_id
+                left join com_pb_check_unit as cpcu on s.check_unit_id = cpcu.id
+                WHERE s.end_time IS NOT NULL AND s.check_unit_id IS NOT NULL
+                <if test="beginTime != null">
+                  AND s.start_time BETWEEN #{beginTime} and #{endTime}
+                </if>
+                <if test="belongTo != null and belongTo != ''">
+                  and belong_to=#{belongTo}
+                </if>
+                <if test="communityId != null">
+                    and caa.community_id=#{communityId}
+                </if>
+                <if test="unitId != null and unitId != ''">
+                    and caa.check_unit_id = #{unitId}
+                </if>
+                GROUP BY caa.id,s.check_unit_id
+            ) temp
+            GROUP BY check_unit_id
+        ) temp2 GROUP BY unitId
+        having serviceTimes&lt;>'' and serviceTime&lt;>''
+        order by serviceTime desc
+    </select>
+
+
+    <select id="getNewPartyMemberTaskList" resultType="com.panzhihua.common.model.vos.neighbor.PartyMemberAnalysisVO">
+        SELECT
+        nfnpc.unit_id,
+        sum(nfnpc.service_time) as serviceTime,
+        count(nfnpc.service_time) as serviceTimes,
+        cpcu.belong_to as belongTo,
+        cpcu.org_name as orgName,
+        nfnpi.community_id,
+        sum(nfnpi.award) as partyCount,
+        cpcu.name as unitName,
+        cpcu.org_name as orgName,
+        nfnpc.user_id as memberId,
+        su.name as memberName,
+        cpcu.name as belongUnit,
+        ca.name as belongCommunity
+        FROM new_fight_need_problem_claim as nfnpc
+        left join sys_user as su on nfnpc.user_id=su.user_id
+        left join com_pb_check_unit as cpcu on nfnpc.unit_id=cpcu.id
+        LEFT JOIN new_fight_need_problem_inventory as nfnpi on nfnpc.task_id=nfnpi.id
+        left join com_act as ca on nfnpi.community_id=ca.community_id
+        WHERE nfnpc.service_time iS NOT NULL
+        <if test="beginTime != null">
+            and nfnpc.creation_time between #{beginTime} and #{endTime}
+        </if>
+        <if test="belongTo != null and belongTo != ''">
+            and cpcu.belong_to=#{belongTo}
+        </if>
+        <if test="communityId != null">
+            and nfnpi.community_id=#{communityId}
+        </if>
+        <if test="unitId != null">
+            and cpcu.id=#{unitId}
+        </if>
+        <if test="searchContent != null and searchContent != ''">
+            and (su.name like concat('%',#{searchContent},'%')
+            or su.phone like concat('%',#{searchContent},'%')
+            or ca.name like concat('%',#{searchContent},'%')
+            or cpcu.name like concat('%',#{searchContent},'%'))
+        </if>
+        group by nfnpc.user_id
+        having serviceTimes&lt;>'' and serviceTime&lt;>''
+        order by serviceTime desc
+    </select>
+
+
+
+    <select id="institutionalPartyMemberServiceAnalysis"
+            resultType="com.panzhihua.common.model.vos.neighbor.PartyMemberAnalysisVO">
+        SELECT count(id) as serviceTimes, sum(duration) as serviceTime, unitId,unitName,orgName,
+        communityId, memberId, memberName, belongUnit, belongCommunity, belongTo,sum(award) as partyCount
+        FROM (
+            SELECT caa.id, ROUND((TIMESTAMPDIFF(SECOND, caar.start_time, caar.end_time) / 3600), 2) as duration, cpcu.id as unitId,cpcu.name as unitName,cpcu.org_name as orgName, cpcu.community_id as communityId, su.user_id as
+            memberId, su.name as memberName, cpcu.name as belongUnit, ca.name as belongCommunity, cpcu.belong_to belongTo,caa.pb_reward_integral as award
+            FROM `com_act_activity` as caa
+            left join com_act_act_regist as caar on caa.id=caar.activity_id
+            left join sys_user as su on caar.user_id=su.user_id
+            left join com_pb_member as cpm on su.phone=cpm.phone
+            left join com_pb_check_unit as cpcu on cpm.check_unit_id=cpcu.id
+            left join com_act as ca on cpcu.community_id=ca.community_id
+            where caar.sign_identity = 2
+                AND cpcu.id IS NOT NULL
+                and caar.start_time IS NOT NULL
+                and caar.end_time IS NOT NULL
+            <if test="beginTime != null">
+                and caar.start_time between #{beginTime} and #{endTime}
+            </if>
+            <if test="belongTo != null and belongTo != ''">
+                and cpcu.belong_to=#{belongTo}
+            </if>
+            <if test="communityId != null">
+                and cpcu.community_id=#{communityId}
+            </if>
+            <if test="unitId != null">
+                and cpcu.id=#{unitId}
+            </if>
+            <if test="searchContent != null and searchContent != ''">
+                and (su.name like concat('%',#{searchContent},'%')
+                         or su.phone like concat('%',#{searchContent},'%')
+                         or ca.name like concat('%',#{searchContent},'%')
+                         or cpcu.name like concat('%',#{searchContent},'%'))
+            </if>
+            GROUP BY caa.id,caar.user_id
+        ) temp GROUP BY memberId
+        having serviceTimes&lt;>'' and serviceTime&lt;>'' and memberName&lt;>''
+        order by serviceTime desc
+    </select>
+    <select id="institutionalPartyMemberActAnalysis"
+            resultType="com.panzhihua.common.model.vos.neighbor.PartyMemberAnalysisVO">
+        SELECT count(canc.solve_id) as serviceTimes,sum(canc.real_service_time) as serviceTime
+        ,cpcu.community_id as communityId,canc.solve_id as memberId,su.name as memberName,cpcu.name  as belongUnit,
+               ca.name as belongCommunity,cpcu.belong_to
+        FROM `com_act_neighbor_circle` as canc
+        left join sys_user as su on canc.solve_id=su.user_id
+        left join com_pb_member as cpm on su.phone=cpm.phone
+        left join com_pb_check_unit as cpcu on cpm.check_unit_id=cpcu.id
+        left join com_act as ca on cpcu.community_id=ca.community_id
+        where cpcu.id IS NOT NULL
+        <if test="beginTime != null">
+            and canc.order_time between #{beginTime} and #{endTime}
+        </if>
+        <if test="belongTo != null and belongTo != ''">
+            and cpcu.belong_to=#{belongTo}
+        </if>
+        <if test="communityId != null">
+            and cpcu.community_id=#{communityId}
+        </if>
+        <if test="unitId != null">
+            and cpcu.id=#{unitId}
+        </if>
+        <if test="searchContent != null and searchContent != ''">
+            and (su.name like concat('%',#{searchContent},'%')
+            or su.phone like concat('%',#{searchContent},'%')
+            or ca.name like concat('%',#{searchContent},'%')
+            or cpcu.name like concat('%',#{searchContent},'%'))
+        </if>
+        GROUP BY (canc.solve_id)
+        having serviceTimes&lt;>'' and serviceTime&lt;>'' and memberName&lt;>''
+        order by serviceTime desc
+    </select>
+    <select id="institutionalPartyMemberServiceAnalysisByServicesTimes"
+            resultType="com.panzhihua.common.model.vos.neighbor.PartyMemberAnalysisVO">
+        SELECT count(caa.check_unit_id) as serviceTimes,sum(caa.duration) as serviceTime,caa.check_unit_id as unitId,
+               caa.community_id as communityId,cpcu.belong_to
+        FROM com_act_activity as caa
+        left join com_pb_check_unit as cpcu on caa.check_unit_id=cpcu.id
+        where caa.check_unit_id&lt;>''
+        and caa.type=5
+        <if test="beginTime != null">
+            and caa.create_at between #{beginTime} and #{endTime}
+        </if>
+        <if test="belongTo != null and belongTo != ''">
+            and belong_to=#{belongTo}
+        </if>
+        GROUP BY (caa.check_unit_id)
+        having serviceTimes&lt;>'' and serviceTime&lt;>''
+        order by serviceTimes desc
+    </select>
+     <select id="selectCount" resultType="Integer">
+        select count(id)  from com_act_neighbor_circle
+        <where>
+            <if test="type!=null">
+                and belong_type = #{type}
+            </if>
+            <if test="phone!=null and phone !=''">
+                and (help_member_content like concat('%',#{phone},'%') or help_org_content like concat('%',#{phone},'%') )
+            </if>
+            <if test="communityId!=null">
+                and community_id = #{communityId}
+            </if>
+        </where>
+    </select>
+    <select id="pageRelationList"
+            resultType="com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleAppVO">
+        SELECT
+        canc.*,
+        su.nick_name as name,
+        su.community_id,
+        ca.`name` as communityName,
+        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
+        left join com_act as ca on ca.community_id = canc.community_id
+        LEFT JOIN com_act_activity t ON canc.id = t.relation_id
+        where is_del = 2 and canc.status = 2 AND canc.order_type = 1 and canc.solve_status in (2,3,4) and canc.community_id = ${neighborCircleAppDTO.communityId} AND t.id IS NULL
+        <if test='neighborCircleAppDTO.topicId != null '>
+            and canc.topic_id = #{neighborCircleAppDTO.topicId}
+        </if>
+        <if test='neighborCircleAppDTO.checkUnitId != null '>
+            and canc.solve_unit_id = #{neighborCircleAppDTO.checkUnitId}
+        </if>
+        <if test='neighborCircleAppDTO.belongType != null '>
+            and canc.belong_type = #{neighborCircleAppDTO.belongType}
+        </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>
+        <if test="neighborCircleAppDTO.isHelp ==1">
+            and (canc.help_member_content like concat ('%',#{neighborCircleAppDTO.phone},'%') or canc.help_org_content like concat ('%',#{neighborCircleAppDTO.phone},'%') )
+        </if>
+        order by canc.create_at desc
+    </select>
+
+    <select id="pageNeighborByBigScreen" 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,nc.solve_status
+        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.belong_type in (2,3) and is_del = 2
+
+            <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.status != null '>
+                and nc.status = #{neighborCircleAdminDTO.status}
+            </if>
+<!--            <if test='neighborCircleAdminDTO.belongType != null '>-->
+<!--                and nc.belong_type = #{neighborCircleAdminDTO.belongType}-->
+<!--            </if>-->
+            <if test="neighborCircleAdminDTO.solveStatus !=null">
+                <if test="neighborCircleAdminDTO.solveStatus ==1">
+                    and nc.solve_status in (0,1)
+                </if>
+                <if test="neighborCircleAdminDTO.solveStatus ==2">
+                    and nc.solve_status =2
+                </if>
+                <if test="neighborCircleAdminDTO.solveStatus ==3">
+                    and nc.solve_status in(3,4)
+                </if>
+            </if>
+        </where>
+        order by 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
new file mode 100644
index 0000000..a83f5e2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActNeighborCircleTopicDOMapper.xml
@@ -0,0 +1,59 @@
+<?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.ComActNeighborCircleTopicMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActNeighborCircleTopicDO">
+        <id column="id" property="id" />
+        <result column="community_id" property="communityId" />
+        <result column="name" property="name" />
+        <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, count, hot_num
+    </sql>
+
+    <select id="pageNeighborTopicByAdmin" parameterType="com.panzhihua.common.model.dtos.neighbor.ComActNeighborCircleTopicAdminDTO"
+            resultType="com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleTopicAdminVO">
+        SELECT
+            canct.id,
+            canct.`name`,
+            canct.`status`,
+            canct.create_at,
+            canct.logo,
+            su.`name` as createBy,
+            canct.sort
+        FROM
+            com_act_neighbor_circle_topic AS canct
+            LEFT JOIN sys_user AS su ON su.user_id = canct.create_by
+        <where>
+            <if test="circleTopicAdminDTO.name != null and circleTopicAdminDTO.name != &quot;&quot;">
+                and canct.name like concat(#{circleTopicAdminDTO.name},'%')
+            </if>
+        </where>
+        order by canct.sort asc
+    </select>
+
+    <select id="getNeighborTopicByApp" resultType="com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleTopicAppVO">
+        SELECT canct.id, canct.`name`,`logo`, canct.hot_num
+         from com_act_neighbor_circle_topic as canct where canct.`status` = 1
+        <if test="name != null and name != &quot;&quot;">
+            and canct.`name` like concat('%',#{name},'%')
+        </if>
+        order by canct.sort asc
+    </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/ComActNeighborCircleTopicNewMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActNeighborCircleTopicNewMapper.xml
new file mode 100644
index 0000000..119658d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActNeighborCircleTopicNewMapper.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_community.dao.ComActNeighborCircleTopicNewMapper">
+
+    <select id="getNeighborTopicByAppNew"
+            resultType="com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleTopicAppVO">
+        SELECT canct.id, canct.`name`,`logo`, canct.hot_num
+        from com_act_neighbor_circle_topic_new as canct where canct.`status` = 1
+        <if test="name != null and name != &quot;&quot;">
+            and canct.`name` like concat('%',#{name},'%')
+        </if>
+        order by canct.sort asc
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActNeighborCircleTopicWestDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActNeighborCircleTopicWestDOMapper.xml
new file mode 100644
index 0000000..0c5c992
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActNeighborCircleTopicWestDOMapper.xml
@@ -0,0 +1,68 @@
+<?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.ComActNeighborCircleTopicWestMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActNeighborCircleTopicWestDO">
+        <id column="id" property="id" />
+        <result column="community_id" property="communityId" />
+        <result column="name" property="name" />
+        <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, count, hot_num
+    </sql>
+
+    <select id="pageNeighborTopicByAdmin" parameterType="com.panzhihua.common.model.dtos.neighbor.ComActNeighborCircleTopicAdminDTO"
+            resultType="com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleTopicAdminVO">
+        SELECT
+            canct.id,
+            canct.`name`,
+            canct.`status`,
+            canct.create_at,
+            ( SELECT count( id ) FROM com_act_neighbor_circle_west WHERE is_del = 2 AND `status` = 2 and topic_id = canct.id) AS `count`,
+            su.`name` as createBy
+        FROM
+            com_act_neighbor_circle_topic_west AS canct
+            LEFT JOIN sys_user AS su ON su.user_id = canct.create_by
+        <where>
+            canct.belong_type = 1
+            <if test="circleTopicAdminDTO.communityId != null">
+                and canct.community_id = ${circleTopicAdminDTO.communityId}
+            </if>
+            <if test="circleTopicAdminDTO.status != null">
+                and canct.status = #{circleTopicAdminDTO.status}
+            </if>
+            <if test="circleTopicAdminDTO.name != null and circleTopicAdminDTO.name != &quot;&quot;">
+                and canct.name like concat(#{circleTopicAdminDTO.name},'%')
+            </if>
+        </where>
+        order by canct.create_at desc
+    </select>
+
+    <select id="getNeighborTopicByApp" resultType="com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleTopicAppVO">
+        SELECT canct.id, canct.`name`, canct.hot_num,( SELECT count( id ) FROM com_act_neighbor_circle_west WHERE is_del = 2 AND `status` = 2 and topic_id = canct.id) AS `count`
+         from com_act_neighbor_circle_topic_west as canct where canct.`status` = 1 and canct.community_id = ${communityId} AND canct.belong_type = 1
+        <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_west set hot_num = hot_num + #{hotNum} where id = #{circleTopicId}
+    </update>
+
+    <update id="addCount">
+        update com_act_neighbor_circle_topic_west set `count` = `count` + 1 where id = #{circleTopicId}
+    </update>
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActNeighborCircleWestDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActNeighborCircleWestDOMapper.xml
new file mode 100644
index 0000000..ceb0952
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActNeighborCircleWestDOMapper.xml
@@ -0,0 +1,208 @@
+<?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.ComActNeighborCircleWestDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActNeighborCircleWestDO">
+        <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_west AS canc
+        left join sys_user as su on su.user_id = canc.release_id
+        left join com_act_neighbor_circle_topic_west 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_west set hot_num = hot_num + #{hotNum} where id = #{circleId}
+    </update>
+
+    <update id="addTopicHotNum">
+        update com_act_neighbor_circle_topic_west set hot_num = hot_num + 1 where id = (select topic_id from com_act_neighbor_circle_west 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_west nc
+        LEFT JOIN sys_user u ON nc.release_id = u.user_id
+        LEFT JOIN com_act_neighbor_circle_topic_west 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.topicId != null '>
+                and canc.topic_id = #{neighborCircleAdminDTO.topicId}
+            </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>
+            <if test='neighborCircleAdminDTO.belongType != null '>
+                and nc.belong_type = #{neighborCircleAdminDTO.belongType}
+            </if>
+            <if test="neighborCircleAdminDTO.solveStatus !=null">
+                <if test="neighborCircleAdminDTO.solveStatus ==1">
+                    and nc.solve_status in (0,1)
+                </if>
+                <if test="neighborCircleAdminDTO.solveStatus ==2">
+                    and nc.solve_status =2
+                </if>
+                <if test="neighborCircleAdminDTO.solveStatus ==3">
+                    and nc.solve_status in(3,4)
+                </if>
+            </if>
+        </where>
+        order by
+        case when nc.`status`=1 then 0 else 1 end,
+        nc.`status` asc,nc.create_at desc
+    </select>
+    <select id="getAllImages" resultType="java.lang.String">
+        SELECT release_images FROM com_act_neighbor_circle_west
+        WHERE community_id = ${communityId} AND `status` = 2 AND release_images IS NOT NULL AND release_images != ''
+        ORDER BY create_at DESC limit #{pageSize}
+    </select>
+    <select id="getContents" resultType="java.lang.String">
+        SELECT release_content FROM com_act_neighbor_circle_west
+        WHERE community_id = ${communityId} AND `status` = 2 AND release_content IS NOT NULL AND release_content != ''
+        ORDER BY create_at DESC limit #{pageSize}
+    </select>
+    <select id="getIndexNeighborBaseData"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT filed, num, ROUND(num/total,2) AS percent FROM
+        (SELECT IF(t2.`name` IS NULL,'无话题',t2.`name`) AS filed, COUNT(1) AS num FROM com_act_neighbor_circle_west t1
+        LEFT JOIN com_act_neighbor_circle_topic_west t2 ON t1.topic_id = t2.id
+        WHERE t1.community_id = ${communityId} AND t1.`status` IN (2,3) AND t1.is_del = 2 AND (t2.`status` = 1 OR t2.id IS NULL) GROUP BY filed) temp1,
+        (SELECT COUNT(t1.id) AS total FROM com_act_neighbor_circle_west t1
+        LEFT JOIN com_act_neighbor_circle_topic_west t2 ON t1.topic_id = t2.id
+        WHERE t1.community_id = ${communityId} AND t1.`status` IN (2,3) AND t1.is_del = 2 AND (t2.`status` = 1 OR t2.id IS NULL)) temp2
+    </select>
+    <select id="getNeighborAddPolylineData"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT filed, SUM(num) AS num FROM (
+        SELECT DATE_FORMAT( t1.create_at, '%Y-%m' ) AS filed, COUNT(t1.id) AS num
+        FROM com_act_neighbor_circle_west t1
+        LEFT JOIN com_act_neighbor_circle_topic_west t2 ON t1.topic_id = t2.id
+        WHERE t1.community_id = ${communityId} AND t1.`status` IN (2,3) AND t1.is_del = 2 AND (t2.`status` = 1 OR t2.id IS NULL)
+        AND DATE_FORMAT( t1.create_at, '%Y-%m' ) &gt; DATE_FORMAT(date_sub(curdate(), interval 12 month),'%Y-%m') GROUP BY filed
+        UNION ALL SELECT * FROM
+            (
+                SELECT DATE_FORMAT(curdate(),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 1 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 2 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 3 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 4 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 5 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 6 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 7 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 8 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 9 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 10 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 11 month),'%Y-%m') AS filed, 0 AS num
+            ) temT
+        ) temp GROUP BY filed ORDER BY filed ASC
+    </select>
+    <select id="getNeighborTotalPolylineDate"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT COUNT(t1.id) AS num FROM com_act_neighbor_circle_west t1
+        LEFT JOIN com_act_neighbor_circle_topic_west t2 ON t1.topic_id = t2.id
+        WHERE t1.community_id = ${communityId} AND t1.`status` IN (2,3) AND t1.is_del = 2 AND (t2.`status` = 1 OR t2.id IS NULL) AND DATE_FORMAT( t1.create_at, '%Y-%m' ) &lt;= #{date}
+    </select>
+    <select id="indexNeighborList"
+            resultType="com.panzhihua.common.model.vos.neighbor.ComActNeighborCircleAdminVO">
+        SELECT t1.id, t1.release_content, t1.release_images, t1.comment_num, t1.fabulous_num, t2.`name` AS topicName
+        FROM com_act_neighbor_circle_west t1
+        LEFT JOIN com_act_neighbor_circle_topic_west t2 ON t1.topic_id = t2.id
+        WHERE 1=1
+        <if test="pageBaseDTO.communityIds != null and pageBaseDTO.communityIds.size > 0">
+            AND t1.community_id IN
+            <foreach collection="pageBaseDTO.communityIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="pageBaseDTO.communityIds == null">
+            AND t1.community_id = ${pageBaseDTO.communityId}
+        </if>
+        AND t1.`status` IN (2,3) AND t1.is_del = 2 AND (t2.`status` = 1 OR t2.id IS NULL)
+        <if test="pageBaseDTO.paramId != null">
+            AND t1.topic_id = #{pageBaseDTO.paramId}
+        </if>
+        ORDER BY t1.id DESC
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActPictureLibrary.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActPictureLibrary.xml
new file mode 100644
index 0000000..4c1f814
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActPictureLibrary.xml
@@ -0,0 +1,10 @@
+<?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.ComActPictureLibraryDAO">
+
+    <select id="getPresetPictureLibrary" resultType="java.lang.String">
+        SELECT upload_picture FROM com_act_picture_library t1
+        LEFT JOIN com_act_library_type t2 ON t1.library_type_id = t2.id
+        WHERE t2.type = #{type} AND t2.subtype = #{subtype}
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActProceedingsDao.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActProceedingsDao.xml
new file mode 100644
index 0000000..3c8952c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActProceedingsDao.xml
@@ -0,0 +1,168 @@
+<?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.ComActProceedingsDao">
+  <resultMap id="BaseResultMap" type="com.panzhihua.service_community.entity.ComActProceedings">
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="name" jdbcType="VARCHAR" property="name" />
+    <result column="unit_name" jdbcType="VARCHAR" property="unitName" />
+    <result column="unit_id" jdbcType="BIGINT" property="unitId" />
+    <result column="introduce" jdbcType="VARCHAR" property="introduce" />
+    <result column="del_flag" jdbcType="BIT" property="delFlag" />
+    <result column="status" jdbcType="BIT" property="status" />
+    <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
+    <result column="create_by" jdbcType="VARCHAR" property="createBy" />
+    <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
+    <result column="update_by" jdbcType="TIMESTAMP" property="updateBy" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    id, `name`, unit_name, unit_id, introduce, del_flag, `status`, create_time, create_by, 
+    update_time, update_by
+  </sql>
+  <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
+    select 
+    <include refid="Base_Column_List" />
+    from com_act_proceedings
+    where id = #{id,jdbcType=BIGINT}
+  </select>
+  <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
+    delete from com_act_proceedings
+    where id = #{id,jdbcType=BIGINT}
+  </delete>
+  <insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.panzhihua.service_community.entity.ComActProceedings" useGeneratedKeys="true">
+    insert into com_act_proceedings (id,`name`, unit_name, unit_id,
+      introduce, del_flag, `status`, work_time,
+      create_time)
+    values (#{id},#{name,jdbcType=VARCHAR}, #{unitName,jdbcType=VARCHAR}, #{unitId,jdbcType=BIGINT},
+      #{introduce,jdbcType=VARCHAR}, #{delFlag,jdbcType=BIT}, #{status,jdbcType=BIT}, #{workTime},
+      #{createTime,jdbcType=TIMESTAMP})
+  </insert>
+  <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.panzhihua.service_community.entity.ComActProceedings" useGeneratedKeys="true">
+    insert into com_act_proceedings
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        `id`,
+      </if>
+      <if test="name != null">
+        `name`,
+      </if>
+      <if test="unitName != null">
+        unit_name,
+      </if>
+      <if test="unitId != null">
+        unit_id,
+      </if>
+      <if test="introduce != null">
+        introduce,
+      </if>
+      <if test="delFlag != null">
+        del_flag,
+      </if>
+      <if test="status != null">
+        `status`,
+      </if>
+      <if test="createTime != null">
+        create_time,
+      </if>
+      <if test="createBy != null">
+        create_by,
+      </if>
+      <if test="updateTime != null">
+        update_time,
+      </if>
+      <if test="updateBy != null">
+        update_by,
+      </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+      <if test="id != null">
+        #{id,jdbcType=BIGINT},
+      </if>
+      <if test="name != null">
+        #{name,jdbcType=VARCHAR},
+      </if>
+      <if test="unitName != null">
+        #{unitName,jdbcType=VARCHAR},
+      </if>
+      <if test="unitId != null">
+        #{unitId,jdbcType=BIGINT},
+      </if>
+      <if test="introduce != null">
+        #{introduce,jdbcType=VARCHAR},
+      </if>
+      <if test="delFlag != null">
+        #{delFlag,jdbcType=BIT},
+      </if>
+      <if test="status != null">
+        #{status,jdbcType=BIT},
+      </if>
+      <if test="createTime != null">
+        #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="createBy != null">
+        #{createBy,jdbcType=VARCHAR},
+      </if>
+      <if test="updateTime != null">
+        #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="updateBy != null">
+        #{updateBy,jdbcType=TIMESTAMP},
+      </if>
+    </trim>
+  </insert>
+  <update id="updateByPrimaryKeySelective" parameterType="com.panzhihua.service_community.entity.ComActProceedings">
+    update com_act_proceedings
+    <set>
+      <if test="name != null">
+        `name` = #{name,jdbcType=VARCHAR},
+      </if>
+      <if test="unitName != null">
+        unit_name = #{unitName,jdbcType=VARCHAR},
+      </if>
+      <if test="unitId != null">
+        unit_id = #{unitId,jdbcType=BIGINT},
+      </if>
+      <if test="introduce != null">
+        introduce = #{introduce,jdbcType=VARCHAR},
+      </if>
+      <if test="delFlag != null">
+        del_flag = #{delFlag,jdbcType=BIT},
+      </if>
+      <if test="status != null">
+        `status` = #{status,jdbcType=BIT},
+      </if>
+      <if test="createTime != null">
+        create_time = #{createTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="createBy != null">
+        create_by = #{createBy,jdbcType=VARCHAR},
+      </if>
+      <if test="updateTime != null">
+        update_time = #{updateTime,jdbcType=TIMESTAMP},
+      </if>
+      <if test="updateBy != null">
+        update_by = #{updateBy,jdbcType=TIMESTAMP},
+      </if>
+    </set>
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+  <update id="updateByPrimaryKey" parameterType="com.panzhihua.service_community.entity.ComActProceedings">
+    update com_act_proceedings
+    set `name` = #{name,jdbcType=VARCHAR},
+      unit_name = #{unitName,jdbcType=VARCHAR},
+      unit_id = #{unitId,jdbcType=BIGINT},
+      introduce = #{introduce,jdbcType=VARCHAR},
+      del_flag = #{delFlag,jdbcType=BIT},
+      `status` = #{status,jdbcType=BIT},
+      create_time = #{createTime,jdbcType=TIMESTAMP},
+      create_by = #{createBy,jdbcType=VARCHAR},
+      update_time = #{updateTime,jdbcType=TIMESTAMP},
+      update_by = #{updateBy,jdbcType=TIMESTAMP}
+    where id = #{id,jdbcType=BIGINT}
+  </update>
+  <select id="pageProceedings" resultType="com.panzhihua.common.model.vos.community.ComActProceedingsVO">
+    select * from com_act_proceedings where del_flag=0
+    <if test="keyWord != null and keyWord != ''">
+      AND name like concat("%",#{keyWord},"%")
+    </if>
+  </select>
+</mapper>
\ No newline at end of file
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..2cb5a67
--- /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.sub_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
new file mode 100644
index 0000000..429fb64
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActQuestnaireDOMapper.xml
@@ -0,0 +1,259 @@
+<?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.ComActQuestnaireDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActQuestnaireDO">
+        <id column="id" property="id" />
+        <result column="create_by" property="createBy" />
+        <result column="community_id" property="communityId" />
+        <result column="create_at" property="createAt" />
+        <result column="update_by" property="updateBy" />
+        <result column="update_at" property="updateAt" />
+        <result column="for_masses" property="forMasses" />
+        <result column="for_party" property="forParty" />
+        <result column="for_volunteer" property="forVolunteer" />
+        <result column="title" property="title" />
+        <result column="que_describe" property="queDescribe" />
+        <result column="state" property="state" />
+        <result column="join_count" property="joinCount" />
+        <result column="is_hide" property="isHide" />
+        <result column="project_key" property="projectKey" />
+        <result column="start_time" property="startTime" />
+        <result column="end_time" property="endTime" />
+        <result column="remark" property="remark" />
+        <result column="is_cover" property="isCover" />
+        <result column="is_force" property="isForce" />
+        <result column="adver_position_popup" property="adverPositionPopup" />
+        <result column="adver_position_top" property="adverPositionTop" />
+        <result column="adver_position_application" property="adverPositionApplication" />
+        <result column="count" property="count" />
+        <result column="view_num" property="viewNum" />
+        <result column="publish_time" property="publishTime" />
+        <result column="json_object" property="jsonObject" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        create_by, id, community_id, create_at, update_by, update_at, for_masses, for_party, for_volunteer, title, que_describe, state, join_count, is_hide, project_key, start_time, end_time, remark, is_cover, is_force, adver_position_popup, adver_position_top, adver_position_application, count, view_num, publish_time, json_object
+    </sql>
+
+    <select id="getAdvPopupCount" resultType="integer">
+        SELECT
+            count( id )
+        FROM
+            com_act_questnaire
+        WHERE
+            adver_position_popup = 1
+            and community_id = ${communityId}
+            AND (
+                #{startTime} BETWEEN start_time AND end_time OR
+                #{endTime} BETWEEN start_time AND end_time OR
+                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>
+    </select>
+
+    <delete id="deleteQuesSubAll">
+        delete from com_act_questnaire_sub where que_id = #{queId}
+    </delete>
+
+    <delete id="deleteQuesSubAll2">
+        delete from com_act_questnaire_sub_selection where que_id = #{queId}
+    </delete>
+
+    <select id="getQuesDetailAdmin" resultType="com.panzhihua.common.model.vos.community.questnaire.QuestnaireDetailAdminVO">
+        SELECT
+            id,
+            community_id,
+            create_at,
+            for_masses,
+            for_party,
+            for_volunteer,
+            title,
+            state,
+            join_count,
+            start_time,
+            end_time,
+            remark,
+            is_cover,
+            is_force,
+            adver_position_top,
+            adver_position_popup,
+            adver_position_application,
+            count,
+            view_num,
+            publish_time,
+            json_object
+        FROM
+            com_act_questnaire
+            where id = #{queId}
+    </select>
+
+    <select id="getQuesDetail" resultType="com.panzhihua.common.model.vos.community.questnaire.QuestnaireDetailAdminVO">
+        SELECT
+            caq.id,
+            caq.community_id,
+            caq.create_at,
+            caq.for_masses,
+            caq.for_party,
+            caq.for_volunteer,
+            caq.title,
+            caq.state,
+            caq.join_count,
+            caq.start_time,
+            caq.end_time,
+            caq.remark,
+            caq.is_cover,
+            caq.is_force,
+            caq.adver_position_top,
+            caq.adver_position_popup,
+            caq.adver_position_application,
+            caq.count,
+            caq.view_num,
+            caq.publish_time,
+            IFNULL(caqua.json_object,caq.json_object) as json_object
+        FROM
+            com_act_questnaire as caq
+            left join com_act_questnaire_user_answer as caqua on caqua.questnaire_id = caq.id and caqua.user_id = #{userId}
+            where caq.id = #{questId}
+    </select>
+
+    <select id="getStatisticsSummaryAdmin" parameterType="com.panzhihua.common.model.dtos.community.questnaire.StatisticsSummaryDTO"
+            resultType="com.panzhihua.common.model.vos.community.questnaire.QuestnaireStatisticsSummaryAdminVO">
+        SELECT
+            caqs.content AS `subject`,
+            caqss.content as `option`,(
+            SELECT
+                count( id )
+            FROM
+                com_act_questnaire_answer_content
+            WHERE
+                sub_id = caqss.que_sub_id
+                AND selection_id = caqss.id
+            ) AS count,
+            (select count(id) from com_act_questnaire_answer_content where sub_id = caqss.que_sub_id) as allCount
+        FROM
+            com_act_questnaire_sub_selection AS caqss
+            LEFT JOIN com_act_questnaire_sub AS caqs ON caqs.id = caqss.que_sub_id
+        WHERE
+            caqss.que_id = #{summaryDTO.questId}
+        order by caqss.create_at asc
+    </select>
+
+    <select id="getStatisticsSummaryExcelAdmin" resultType="com.panzhihua.common.model.vos.community.questnaire.QuestnaireStatisticsSummaryExcelAdminVO">
+        SELECT
+            caqs.content AS `subject`,
+            caqss.content as `option`,(
+            SELECT
+                count( id )
+            FROM
+                com_act_questnaire_answer_content
+            WHERE
+                sub_id = caqss.que_sub_id
+                AND selection_id = caqss.id
+            ) AS count,
+            (select count(id) from com_act_questnaire_answer_content where sub_id = caqss.que_sub_id) as allCount
+        FROM
+            com_act_questnaire_sub_selection AS caqss
+            LEFT JOIN com_act_questnaire_sub AS caqs ON caqs.id = caqss.que_sub_id
+        WHERE
+            caqss.que_id = #{questId}
+        order by caqss.create_at asc
+    </select>
+
+    <select id="statisticsSummaryHeader" resultType="com.panzhihua.common.model.vos.community.questnaire.QuestnaireStatisticsSummaryHeaderAdminVO">
+        SELECT
+            count( caqua.id ) AS volunteerCount,
+            (
+            SELECT
+                count( id )
+            FROM
+                com_act_questnaire_user_answer AS caqua
+                LEFT JOIN sys_user AS su ON su.user_id = caqua.user_id
+            WHERE
+                su.is_partymember = 1
+                AND caqua.questnaire_id = #{questId}
+            ) AS partymemberCount,
+            ( SELECT count( id ) FROM com_act_questnaire_user_answer WHERE questnaire_id = #{questId} ) AS allCount,(
+            SELECT
+                view_num
+            FROM
+                com_act_questnaire
+            WHERE
+                id = #{questId}
+            ) AS viewNum,
+            ( SELECT count( id ) FROM com_act_questnaire_user_answer WHERE questnaire_id = #{questId} AND create_at BETWEEN DATE_FORMAT( CURDATE(), '%Y-%m-%d %H:%i:%s' ) AND NOW() ) AS todayCount,
+            (
+            SELECT
+                count( user_id )
+            FROM
+                sys_user AS su
+            WHERE
+                is_volunteer = 1
+            AND user_id NOT IN ( SELECT user_id FROM com_act_questnaire_user_answer WHERE questnaire_id = #{questId} )) AS noVolunteerCount,
+            (
+            SELECT
+                count( id )
+            FROM
+                (
+                SELECT id FROM com_pb_member AS su  WHERE community_id = ${communityId} AND user_id IS NULL UNION ALL
+                SELECT id FROM com_pb_member AS su  WHERE community_id = ${communityId} AND user_id IS NOT NULL
+                AND user_id NOT IN ( SELECT user_id FROM com_act_questnaire_user_answer WHERE questnaire_id = #{questId}  )
+                ) AS member) AS noPartymemberCount,
+            (select count(user_id) from sys_user where community_id = 2 and type = 1) as userCount
+        FROM
+            com_act_questnaire_user_answer AS caqua
+            LEFT JOIN com_act_questnaire AS caq ON caq.id = caqua.questnaire_id
+            LEFT JOIN sys_user AS su ON su.user_id = caqua.user_id
+        WHERE
+            su.is_volunteer = 1
+            AND caqua.questnaire_id = #{questId}
+    </select>
+    <select id="getIndexQuestionnaireBaseData"
+            resultType="com.panzhihua.common.model.vos.community.bigscreen.BigScreenQuestionnaireStatisticsInfo">
+        SELECT COUNT(id) AS questionnaireNum, SUM(join_count) AS joinNum FROM com_act_questnaire WHERE community_id = ${communityId} AND state IN (2,3)
+    </select>
+    <select id="getQuestionnaireAddPolylineData"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT filed, SUM(num) AS num FROM (
+        SELECT DATE_FORMAT( create_at, '%Y-%m' ) AS filed, COUNT(id) AS num
+        FROM com_act_questnaire
+        WHERE community_id = ${communityId} AND state IN (2,3)
+        AND DATE_FORMAT( create_at, '%Y-%m' ) &gt; DATE_FORMAT(date_sub(curdate(), interval 12 month),'%Y-%m') GROUP BY filed
+        UNION ALL SELECT * FROM
+            (
+                SELECT DATE_FORMAT(curdate(),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 1 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 2 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 3 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 4 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 5 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 6 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 7 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 8 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 9 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 10 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 11 month),'%Y-%m') AS filed, 0 AS num
+            ) temT
+        ) temp GROUP BY filed ORDER BY filed ASC
+    </select>
+    <select id="getQuestionnaireTotalPolylineDate"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT COUNT(id) AS num FROM com_act_questnaire
+        WHERE community_id = ${communityId} AND state IN (2,3) AND DATE_FORMAT( create_at, '%Y-%m' ) &lt;= #{date}
+    </select>
+    <select id="selectQuestionnaireDisplayList"
+            resultType="com.panzhihua.common.model.vos.community.ComActQuestnaireVO">
+        SELECT id, title, `count`, view_num, join_count, is_cover, state FROM com_act_questnaire
+        WHERE community_id = ${pageBaseDTO.communityId} AND state IN (2,3) ORDER BY id DESC
+    </select>
+    <insert id="addNoNotice">
+        insert into com_act_questnaire_user(questnaire_id,user_id,create_at)
+        values(#{questId},#{userId},now())
+    </insert>
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActQuestnaireUserAnswerDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActQuestnaireUserAnswerDOMapper.xml
new file mode 100644
index 0000000..212f96f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActQuestnaireUserAnswerDOMapper.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_community.dao.ComActQuestnaireUserAnswerMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActQuestnaireUserAnswerDO">
+        <id column="id" property="id" />
+        <result column="questnaire_id" property="questnaireId" />
+        <result column="user_id" property="userId" />
+        <result column="create_at" property="createAt" />
+        <result column="json_object" property="jsonObject" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, questnaire_id, user_id, create_at, json_object
+    </sql>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActRaffleMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActRaffleMapper.xml
new file mode 100644
index 0000000..8d4d9de
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActRaffleMapper.xml
@@ -0,0 +1,59 @@
+<?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.ComActRaffleDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComActRaffle" id="ComActRaffleBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="name" column="name"/>
+        <result property="startTime" column="start_time"/>
+        <result property="stopTime" column="stop_time"/>
+        <result property="lotteryTime" column="lottery_time"/>
+        <result property="raffleStartTime" column="raffle_start_time"/>
+        <result property="raffleStopTime" column="raffle_stop_time"/>
+        <result property="workTime" column="work_time"/>
+        <result property="address" column="address"/>
+        <result property="longitude" column="longitude"/>
+        <result property="latitude" column="latitude"/>
+        <result property="phone" column="phone"/>
+        <result property="cover" column="cover"/>
+        <result property="createTime" column="create_time"/>
+        <result property="status" column="status"/>
+        <result property="createBy" column="create_by"/>
+        <result property="communityId" column="community_id"/>
+    </resultMap>
+
+    <select id="pageList" resultType="com.panzhihua.common.model.vos.community.raffle.ComActRaffleVO">
+        select t.*,t2.waitRaffleCount,t3.joinCount,t4.name as createName,t5.raffleCount,t6.prizeCount,ISNULL(t7.isJoin) as isJoin from com_act_raffle t
+         LEFT JOIN (select count(*) waitRaffleCount,raffle_id from com_act_raffle_record where status = 1 group by raffle_id) t2 on t.id = t2.raffle_id
+         LEFT JOIN (select count(*) as joinCount,raffle_id from com_act_raffle_record GROUP BY raffle_id) t3 on t.id = t3.raffle_id
+         LEFT JOIN sys_user t4 on t.create_by = t4.user_id
+         LEFT JOIN (select count(*) as raffleCount,raffle_id from com_act_raffle_record where status >0 GROUP BY raffle_id) t5 on t.id = t5.raffle_id
+         LEFT JOIN (select sum(total) as prizeCount,raffle_id from com_act_raffle_prize GROUP BY raffle_id) t6 on t.id = t6.raffle_id
+         LEFT JOIN (select count(*)  as isJoin,raffle_id from com_act_raffle_record <if test="commonPage.userId !=null"> where user_id = ${commonPage.userId} </if> group by raffle_id) t7 on t.id = t7.raffle_id
+
+         <where>
+             <if test="commonPage.communityId!=null">
+                 and t.community_id = #{commonPage.communityId}
+             </if>
+             <if test="commonPage.status !=null">
+                 and t.status =#{commonPage.status}
+             </if>
+             <if test="commonPage.keyword !=null">
+                 and t.name like concat('%',#{commonPage.keyword},'%')
+             </if>
+             <if test="commonPage.type!=null">
+                 and t.status > 0
+             </if>
+         </where>
+         order by t.create_time desc
+    </select>
+
+    <select id="selectById" resultType="com.panzhihua.common.model.vos.community.raffle.ComActRaffleVO">
+         select t.*,t2.waitRaffleCount,t3.joinCount,t4.name as createName,t5.raffleCount from com_act_raffle t
+         LEFT JOIN (select sum(surplus) as waitRaffleCount,raffle_id from com_act_raffle_prize GROUP BY raffle_id) t2 on t.id = t2.raffle_id
+         LEFT JOIN (select count(*) as joinCount,raffle_id from com_act_raffle_record GROUP BY raffle_id) t3 on t.id = t3.raffle_id
+         LEFT JOIN sys_user t4 on t.create_by = t4.user_id
+         LEFT JOIN (select count(*) as raffleCount,raffle_id from com_act_raffle_record where status >0 GROUP BY raffle_id) t5 on t.id = t5.raffle_id
+         where t.id=#{id}
+    </select>
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActRafflePrizeMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActRafflePrizeMapper.xml
new file mode 100644
index 0000000..6d66098
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActRafflePrizeMapper.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.ComActRafflePrizeDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComActRafflePrize" id="ComActRafflePrizeBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="name" column="name"/>
+        <result property="total" column="total"/>
+        <result property="surplus" column="surplus"/>
+        <result property="image" column="image"/>
+        <result property="raffleId" column="raffle_id"/>
+    </resultMap>
+
+    <select id="selectByRaffleId" resultType="com.panzhihua.common.model.vos.community.raffle.ComActRafflePrizeVO">
+        select * from com_act_raffle_prize where raffle_id = #{id}
+    </select>
+
+    <select id="selectCount" resultType="com.panzhihua.common.model.vos.community.raffle.ComActRafflePrizeCount">
+        select sum(total) as total,sum(surplus) as surplus from com_act_raffle_prize where raffle_id = #{id}
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActRaffleRecordMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActRaffleRecordMapper.xml
new file mode 100644
index 0000000..5515ecf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActRaffleRecordMapper.xml
@@ -0,0 +1,90 @@
+<?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.ComActRaffleRecordDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComActRaffleRecord" id="ComActRaffleRecordBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="userId" column="user_id"/>
+        <result property="createTime" column="create_time"/>
+        <result property="prizeId" column="prize_id"/>
+        <result property="staffId" column="staff_id"/>
+        <result property="staffTime" column="staff_time"/>
+        <result property="status" column="status"/>
+    </resultMap>
+
+    <select id="selectByUserId" resultType="com.panzhihua.common.model.vos.community.raffle.ComActRaffleRecordVO">
+        select t.*, t1.image, t1.name as prizeName, t2.nick_name, t2.phone, t2.`name` as username, t3.name as staffName
+        from com_act_raffle_record t
+        left join com_act_raffle_prize t1 on t.prize_id = t1.id
+        left join sys_user t2 on t.user_id = t2.user_id
+        left join sys_user t3 on t.staff_id = t3.user_id
+        where 1=1 <if test="userId !=null and userId !=0"> and t.user_id = #{userId} </if>
+          and t.raffle_id = #{raffleId}
+    </select>
+
+    <select id="pageList" resultType="com.panzhihua.common.model.vos.community.raffle.ComActRaffleRecordVO">
+        select t.*, t1.image, t1.name as prizeName, t2.nick_name, t2.phone, t2.`name` as username, t3.name as staffName,t4.raffle_start_time as raffleStartTime,t4.raffle_stop_time as raffleStopTime
+        from com_act_raffle_record t
+        left join com_act_raffle_prize t1 on t.prize_id = t1.id
+        left join sys_user t2 on t.user_id = t2.user_id
+        left join sys_user t3 on t.staff_id = t3.user_id
+        left join com_act_raffle t4 on t.raffle_id = t4.id
+        <where>
+                t.status >0
+            <if test="commonPage.status!=null">
+                and t.status = #{commonPage.status}
+            </if>
+            <if test="commonPage.keyword!=null and commonPage.keyword!=''">
+                and (t2.name like concat('%',#{commonPage.keyword},'%') or t2.phone like
+                concat('%',#{commonPage.keyword},'%') or t1.name like concat('%',#{commonPage.keyword},'%') )
+            </if>
+            <if test="commonPage.paramId !=null">
+                and t.raffle_id = #{commonPage.paramId}
+            </if>
+            <if test="commonPage.userId !=null">
+                and t.user_id = #{commonPage.userId}
+            </if>
+            <if test="commonPage.paramId2 !=null">
+                and t.staff_id = #{commonPage.paramId2}
+            </if>
+        </where>
+        order by t.create_time desc
+    </select>
+
+    <select id="export" resultType="com.panzhihua.common.model.vos.community.raffle.ComActRaffleRecordExcelVO">
+        select t.*, t1.image as imageUrl, t1.name as prizeName, t2.nick_name, t2.phone, t2.`name` as username, t3.name as staffName
+        from com_act_raffle_record t
+        left join com_act_raffle_prize t1 on t.prize_id = t1.id
+        left join sys_user t2 on t.user_id = t2.user_id
+        left join sys_user t3 on t.staff_id = t3.user_id
+        <where>
+            <if test="commonPage.status!=null">
+                and t.status = #{commonPage.status}
+            </if>
+            <if test="commonPage.keyword!=null and commonPage.keyword!=''">
+                and (t2.name like concat('%',#{commonPage.keyword},'%') or t2.phone like
+                concat('%',#{commonPage.keyword},'%') or t1.name like concat('%',#{commonPage.keyword},'%') )
+            </if>
+            <if test="commonPage.paramId !=null">
+                and t.raffle_id = #{commonPage.paramId}
+            </if>
+            <if test="commonPage.userId !=null">
+                and t.user_id = #{commonPage.userId}
+            </if>
+        </where>
+        order by t.create_time desc
+    </select>
+
+    <select id="selectOneById" resultType="com.panzhihua.common.model.vos.community.raffle.ComActRaffleRecordVO">
+        select t.*, t1.`name` as prizeName, t1.image,t2.phone, t2.`name` as username, t3.name as staffName
+        from com_act_raffle_record t
+        LEFT JOIN com_act_raffle_prize t1 on t.prize_id = t1.id
+        left join sys_user t2 on t.user_id = t2.user_id
+        left join sys_user t3 on t.staff_id = t3.user_id
+        where t.id=#{id}
+    </select>
+
+    <update id="updateStatusByRaffleId">
+        update com_act_raffle_record set status = 3 where raffle_id = #{id} and status = 1
+    </update>
+</mapper>
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
new file mode 100644
index 0000000..dd3611f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveAnswerContentMapper.xml
@@ -0,0 +1,235 @@
+<?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.ComActReserveAnswerContentMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActReserveAnswerContentDO">
+        <id column="id" property="id"/>
+        <result column="reserve_sub_id" property="reserveSubId"/>
+        <result column="reserve_selection_id" property="reserveSelectionId"/>
+        <result column="user_id" property="userId"/>
+        <result column="type" property="type"/>
+        <result column="choice" property="choice"/>
+        <result column="answer_content" property="answerContent"/>
+        <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="reserve_record_id" property="reserveRecordId"/>
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, reserve_sub_id, reserve_selection_id, user_id, type, choice, answer_content, create_by, create_at, update_by, update_at, reserve_record_id
+    </sql>
+
+    <select id="selectListByReserve" resultType="com.panzhihua.common.model.vos.community.ComActQuestnaireAnswerContentVO">
+        SELECT
+            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
+            LEFT JOIN com_act_reserve qn ON qs.reserve_id = qn.id
+            LEFT JOIN sys_user su ON ac.user_id = su.user_id
+            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"
+            resultType="com.panzhihua.common.model.vos.community.reserve.ComActReserveRegisterDetailedVO">
+        SELECT
+            carr.id,
+            su.nick_name,
+            carr.create_at
+        FROM
+            com_act_reserve_record AS carr
+            LEFT JOIN sys_user AS su ON su.user_id = carr.user_id
+            left join com_act_reserve_answer_content carac on carr.id=carac.reserve_record_id
+        WHERE
+            reserve_id = #{detailedAdminDTO.reserveId}
+            <if test='detailedAdminDTO.startTime != null and detailedAdminDTO.startTime != &quot;&quot;'>
+                AND carr.create_at <![CDATA[ >= ]]> #{detailedAdminDTO.startTime}
+            </if>
+            <if test='detailedAdminDTO.endTime != null and detailedAdminDTO.endTime != &quot;&quot;'>
+                AND carr.create_at <![CDATA[ <= ]]> #{detailedAdminDTO.endTime}
+            </if>
+            <if test='detailedAdminDTO.beginTime != null and detailedAdminDTO.beginTime != &quot;&quot;'>
+                AND STR_TO_DATE(carac.answer_content,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{detailedAdminDTO.beginTime}
+            </if>
+            <if test='detailedAdminDTO.stopTime != null and detailedAdminDTO.stopTime != &quot;&quot;'>
+                AND STR_TO_DATE(carac.answer_content,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{detailedAdminDTO.stopTime}
+            </if>
+        <if test="detailedAdminDTO.keyword!=null and detailedAdminDTO.keyword != &quot;&quot;">
+            AND carr.json_object like concat ('%',#{detailedAdminDTO.keyword},'%')
+        </if>
+        <if test="detailedAdminDTO.area!=null and detailedAdminDTO.area != &quot;&quot;">
+            AND JSON_EXTRACT(json_object, '$[6].values') like concat ('%',#{detailedAdminDTO.area},'%')
+        </if>
+        <if test="detailedAdminDTO.from!=null and detailedAdminDTO.from != &quot;&quot;">
+            AND JSON_EXTRACT(json_object, '$[3].values') like concat ('%',#{detailedAdminDTO.from},'%')
+        </if>
+        group by carr.id order by carr.id desc
+    </select>
+
+    <select id="pageRegisterDetailedListAdminExport" parameterType="com.panzhihua.common.model.dtos.community.reserve.PageReserveRegisterDetailedAdminDTO"
+            resultType="com.panzhihua.common.model.vos.community.reserve.ComActReserveRegisterDetailedVO">
+        SELECT
+        carr.id,
+        su.nick_name,
+        carr.create_at
+        FROM
+        com_act_reserve_record AS carr
+        LEFT JOIN sys_user AS su ON su.user_id = carr.user_id
+        left join com_act_reserve_answer_content carac on carr.id=carac.reserve_record_id
+        WHERE
+        reserve_id = #{detailedAdminDTO.reserveId}
+        <if test='detailedAdminDTO.startTime != null and detailedAdminDTO.startTime != &quot;&quot;'>
+            AND carr.create_at <![CDATA[ >= ]]> #{detailedAdminDTO.startTime}
+        </if>
+        <if test='detailedAdminDTO.endTime != null and detailedAdminDTO.endTime != &quot;&quot;'>
+            AND carr.create_at <![CDATA[ <= ]]> #{detailedAdminDTO.endTime}
+        </if>
+        <if test='detailedAdminDTO.beginTime != null and detailedAdminDTO.beginTime != &quot;&quot;'>
+            AND STR_TO_DATE(carac.answer_content,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{detailedAdminDTO.beginTime}
+        </if>
+        <if test='detailedAdminDTO.stopTime != null and detailedAdminDTO.stopTime != &quot;&quot;'>
+            AND STR_TO_DATE(carac.answer_content,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{detailedAdminDTO.stopTime}
+        </if>
+        <if test="detailedAdminDTO.keyword!=null and detailedAdminDTO.keyword != &quot;&quot;">
+            AND carr.json_object like concat ('%',#{detailedAdminDTO.keyword},'%')
+        </if>
+        <if test="detailedAdminDTO.area!=null and detailedAdminDTO.area != &quot;&quot;">
+            AND carr.json_object like concat ('%',#{detailedAdminDTO.area},'%')
+        </if>
+        group by carr.id order by carr.id desc
+    </select>
+
+    <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.`type`
+        FROM
+            com_act_reserve_answer_content AS carac
+            LEFT JOIN com_act_reserve_sub AS car ON car.id = carac.reserve_sub_id
+        where carac.reserve_record_id = #{reserveRecordId} order by carac.id asc
+    </select>
+
+    <select id="getRegisterDetailedById" resultType="com.panzhihua.common.model.vos.community.reserve.ComActReserveRegisterDetailedVO">
+        SELECT
+            carr.id,
+            su.nick_name,
+            carr.create_at
+        FROM
+            com_act_reserve_record AS carr
+            LEFT JOIN sys_user AS su ON su.user_id = carr.user_id
+            where carr.id = #{reserveRecordId}
+    </select>
+
+    <select id="export" resultType="com.panzhihua.common.model.vos.community.ComActQuestnaireAnswerContentVO">
+        select ac.*,ac.create_at as time,u.nick_name,cars.type as optionType from com_act_reserve_record carr
+        left join com_act_reserve_answer_content ac on ac.reserve_record_id = carr.id
+        left join sys_user u on carr.user_id = u.user_id
+        left join com_act_reserve_sub cars on ac.reserve_sub_id = cars.id
+        where carr.reserve_id = #{detailedAdminDTO.reserveId} and ac.reserve_record_id in ( SELECT DISTINCT
+        carr.id
+        FROM
+        com_act_reserve_record carr
+        LEFT JOIN com_act_reserve_answer_content ac ON carr.id = ac.reserve_record_id
+        WHERE
+        carr.reserve_id =#{detailedAdminDTO.reserveId}
+        <if test='detailedAdminDTO.startTime != null and detailedAdminDTO.startTime != &quot;&quot;'>
+            AND carr.create_at <![CDATA[ >= ]]> #{detailedAdminDTO.startTime}
+        </if>
+        <if test='detailedAdminDTO.endTime != null and detailedAdminDTO.endTime != &quot;&quot;'>
+            AND carr.create_at <![CDATA[ <= ]]> #{detailedAdminDTO.endTime}
+        </if>
+        <if test='detailedAdminDTO.beginTime != null and detailedAdminDTO.beginTime != &quot;&quot;'>
+            AND STR_TO_DATE(ac.answer_content,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{detailedAdminDTO.beginTime}
+        </if>
+        <if test='detailedAdminDTO.stopTime != null and detailedAdminDTO.stopTime != &quot;&quot;'>
+            AND STR_TO_DATE(ac.answer_content,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{detailedAdminDTO.stopTime}
+        </if>
+        <if test="detailedAdminDTO.keyword!=null and detailedAdminDTO.keyword != &quot;&quot;">
+            AND carr.json_object like concat ('%',#{detailedAdminDTO.keyword},'%')
+        </if>
+        <if test="detailedAdminDTO.area!=null and detailedAdminDTO.area != &quot;&quot;">
+            AND JSON_EXTRACT(json_object, '$[6].values') like concat ('%',#{detailedAdminDTO.area},'%')
+        </if>
+        <if test="detailedAdminDTO.from!=null and detailedAdminDTO.from != &quot;&quot;">
+            AND JSON_EXTRACT(json_object, '$[3].values') like concat ('%',#{detailedAdminDTO.from},'%')
+        </if>
+        )
+        order by ac.reserve_record_id DESC,ac.id ASC
+    </select>
+    <select id="pageRegisterHomeQuarantine" resultType="java.lang.String">
+        SELECT answer_content FROM (
+        SELECT carr.id, carac.answer_content
+        FROM com_act_reserve_record AS carr
+        LEFT JOIN com_act_reserve_answer_content carac ON carr.id=carac.reserve_record_id
+        LEFT JOIN com_act_reserve_sub t ON carac.reserve_sub_id = t.id
+        WHERE carr.reserve_id = #{detailedAdminDTO.reserveId} AND t.content LIKE '身份证%'
+        <if test="detailedAdminDTO.keyword!=null and detailedAdminDTO.keyword != &quot;&quot;">
+            AND carac.answer_content LIKE CONCAT (#{detailedAdminDTO.keyword},'%')
+        </if>
+        ORDER BY carr.id ASC LIMIT 9999999) temp
+        WHERE 1=1
+        <if test='detailedAdminDTO.startTime != null and detailedAdminDTO.startTime != &quot;&quot;'>
+            AND temp.create_at <![CDATA[ >= ]]> #{detailedAdminDTO.startTime}
+        </if>
+        <if test='detailedAdminDTO.endTime != null and detailedAdminDTO.endTime != &quot;&quot;'>
+            AND temp.create_at <![CDATA[ <= ]]> #{detailedAdminDTO.endTime}
+        </if>
+        GROUP BY answer_content ORDER BY id DESC
+    </select>
+    <select id="selectStatistics"
+            resultType="com.panzhihua.common.model.vos.community.reserve.HomeQuarantineRegisterStatisticsVO">
+        SELECT carr.id, carr.create_at, su.nick_name, carac.reserve_record_id, car.content AS reserveSubContent,
+        carac.answer_content AS answerContent, carac.reserve_sub_id AS reserveSubId, car.`type` AS optionType
+        FROM com_act_reserve_record AS carr
+        LEFT JOIN com_act_reserve_answer_content carac ON carr.id=carac.reserve_record_id
+        LEFT JOIN com_act_reserve_sub AS car ON carac.reserve_sub_id = car.id
+        LEFT JOIN sys_user su ON carr.user_id = su.user_id
+        WHERE carr.id IN (
+            SELECT t1.reserve_record_id FROM com_act_reserve_answer_content t1
+            LEFT JOIN com_act_reserve_record t2 ON t1.reserve_record_id = t2.id
+            WHERE t2.reserve_id = #{reserveId} AND t1.answer_content = #{record}
+        ) ORDER BY carr.id ASC
+    </select>
+    <select id="exportHomeQuarantine" resultType="java.lang.String">
+        SELECT answer_content FROM (
+        SELECT carr.id, carac.answer_content
+        FROM com_act_reserve_record AS carr
+        LEFT JOIN com_act_reserve_answer_content carac ON carr.id=carac.reserve_record_id
+        LEFT JOIN com_act_reserve_sub t ON carac.reserve_sub_id = t.id
+        WHERE carr.reserve_id = #{detailedAdminDTO.reserveId} AND t.content LIKE '身份证%'
+        <if test="detailedAdminDTO.keyword!=null and detailedAdminDTO.keyword != &quot;&quot;">
+            AND carac.answer_content LIKE CONCAT (#{detailedAdminDTO.keyword},'%')
+        </if>
+        ORDER BY carr.id ASC LIMIT 9999999) temp
+        WHERE 1=1
+        <if test='detailedAdminDTO.startTime != null and detailedAdminDTO.startTime != &quot;&quot;'>
+            AND temp.create_at <![CDATA[ >= ]]> #{detailedAdminDTO.startTime}
+        </if>
+        <if test='detailedAdminDTO.endTime != null and detailedAdminDTO.endTime != &quot;&quot;'>
+            AND temp.create_at <![CDATA[ <= ]]> #{detailedAdminDTO.endTime}
+        </if>
+        GROUP BY answer_content ORDER BY id DESC
+    </select>
+
+    <select id="fiveCount" resultType="com.panzhihua.common.model.vos.community.reserve.FiveCount">
+        select (
+                   select count(*) from   com_act_reserve_record where reserve_id = #{reserveId}
+                                                                   and  JSON_EXTRACT(json_object, '$[9].values') = 0
+
+               ) redMark,(
+                   select count(*) from   com_act_reserve_record where reserve_id = #{reserveId}
+                                                                   and  JSON_EXTRACT(json_object, '$[9].values') = 1
+               ) yellowMark,(
+                   select count(*) from   com_act_reserve_record where reserve_id = #{reserveId}
+                                                                   and  JSON_EXTRACT(json_object, '$[9].values') = 2
+               ) greenMark,(select count(*) from   com_act_reserve_record where reserve_id = #{reserveId}
+                                                                            and  JSON_EXTRACT(json_object, '$[10].values') = 0  ) dangerCount,
+               ( select count(*) from   com_act_reserve_record where reserve_id = #{reserveId}) allCount
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveDangerAreaMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveDangerAreaMapper.xml
new file mode 100644
index 0000000..40c22db
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveDangerAreaMapper.xml
@@ -0,0 +1,38 @@
+<?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.ComActReserveDangerAreaDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComActReserveDangerArea"
+               id="ComActReserveDangerAreaBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="type" column="type"/>
+        <result property="areaName" column="area_name"/>
+        <result property="county" column="county"/>
+        <result property="province" column="province"/>
+        <result property="city" column="city"/>
+        <result property="createTime" column="create_time"/>
+        <result property="screenTime" column="screen_time"/>
+    </resultMap>
+
+    <select id="pageList" resultType="com.panzhihua.common.model.vos.community.reserve.ComActReserveDangerAreaVO">
+        select * from com_act_reserve_danger_area
+        <where>
+            status = 1
+            <if test="commonPage.type !=null">
+                <if test="commonPage.type == 0">
+                    and screen_time is null
+                </if>
+                <if test="commonPage.type == 1">
+                    and screen_time is not null
+                </if>
+            </if>
+            <if test="commonPage.address !=null and commonPage.address !=''">
+                and (area_name like concat('%',#{commonPage.address},'%') or country like concat('%',#{commonPage.address},'%') or province like concat('%',#{commonPage.address},'%') or city like concat('%',#{commonPage.address},'%'))
+            </if>
+        </where>
+    </select>
+
+    <select id="statics" resultType="com.panzhihua.common.model.vos.community.reserve.DangerAreaStatics">
+        select (select count(*) from com_act_reserve_danger_area where status = 1 and type = 1) middleCount,(select count(*) from com_act_reserve_danger_area where status = 1 and type = 2) highCount
+    </select>
+</mapper>
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
new file mode 100644
index 0000000..742b80a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveMapper.xml
@@ -0,0 +1,234 @@
+<?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.ComActReserveMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActReserveDO">
+        <id column="id" property="id"/>
+        <result column="community_id" property="communityId"/>
+        <result column="type" property="type"/>
+        <result column="title" property="title"/>
+        <result column="view_num" property="viewNum"/>
+        <result column="join_all_count" property="joinAllCount"/>
+        <result column="join_count" property="joinCount"/>
+        <result column="img_type" property="imgType"/>
+        <result column="img_url" property="imgUrl"/>
+        <result column="status" property="status"/>
+        <result column="publish_time" property="publishTime"/>
+        <result column="is_repeat" property="isRepeat"/>
+        <result column="remark" property="remark"/>
+        <result column="json_object" property="jsonObject"/>
+        <result column="adver_position_top" property="adverPositionTop"/>
+        <result column="adver_position_application" property="adverPositionApplication"/>
+        <result column="create_at" property="createAt"/>
+        <result column="create_by" property="createBy"/>
+        <result column="update_at" property="updateAt"/>
+        <result column="update_by" property="updateBy"/>
+        <result column="end_time" property="endTime"/>
+        <result column="is_del" property="isDel"/>
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, community_id, type, title, view_num, join_all_count, join_count, img_type, img_url, status, publish_time, is_repeat, remark, json_object, adver_position_top, adver_position_application, create_at, create_by, update_at, update_by, end_time, is_del
+    </sql>
+
+    <select id="indexBanner" 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 adver_position_top = 1
+            <if test="communityId !=null">
+                and community_id = ${communityId}
+            </if>
+
+    </select>
+
+    <select id="indexApplication" 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 adver_position_application = 1
+            <if test="communityId !=null">
+                and community_id = ${communityId}
+            </if>
+        </where>
+        order by create_at desc
+    </select>
+
+
+
+    <select id="pageReserveAdmin" parameterType="com.panzhihua.common.model.dtos.community.reserve.PageReserveAdminDTO"
+            resultType="com.panzhihua.common.model.vos.community.reserve.ComActReserveListAdminVO">
+            SELECT
+            t.id,
+            t.community_id,
+            t.`type`,
+            t.title,
+            view_num,
+            join_all_count,
+            join_count,
+            t.`status`,
+            publish_time,
+            t.create_at,
+            end_time,
+            adver_position_top,
+            adver_position_application,
+            t1.`name` as community_name
+            FROM
+            com_act_reserve t left join com_act t1 on t.community_id = t1.community_id
+            <where>
+                and t.is_del = 2
+                <if test="pageReserveDTO.communityId != null and pageReserveDTO.communityId !=0">
+                    and t.community_id = ${pageReserveDTO.communityId}
+                </if>
+                <if test="pageReserveDTO.areaCode !=null">
+                    and t1.area_code = #{pageReserveDTO.areaCode}
+                </if>
+                <if test="pageReserveDTO.type != null and pageReserveDTO.type.size > 0">
+                    and t.`type` in
+                    <foreach collection='pageReserveDTO.type' item='id' index='index' open='(' close=')' separator=',' >
+                        #{id}
+                    </foreach>
+                </if>
+                <if test="pageReserveDTO.status != null">
+                    and t.status = #{pageReserveDTO.status}
+                </if>
+                <if test="pageReserveDTO.advertType != null and pageReserveDTO.advertType == 1">
+                    and adver_position_top = 2 and adver_position_application = 2
+                </if>
+                <if test="pageReserveDTO.advertType != null and pageReserveDTO.advertType == 2">
+                    and adver_position_top = 1
+                </if>
+                <if test="pageReserveDTO.advertType != null and pageReserveDTO.advertType == 3">
+                    and adver_position_application = 1
+                </if>
+                <if test="pageReserveDTO.keyWord != null and pageReserveDTO.keyWord != &quot;&quot;">
+                    and title like concat (#{pageReserveDTO.keyWord},'%')
+                </if>
+                <if test="pageReserveDTO.startTime != null and pageReserveDTO.startTime != &quot;&quot;">
+                    AND DATE_FORMAT(t.create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{pageReserveDTO.startTime}
+                </if>
+                <if test="pageReserveDTO.endTime != null and pageReserveDTO.endTime != &quot;&quot;">
+                    AND DATE_FORMAT(t.create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{pageReserveDTO.endTime}
+                </if>
+                <if test="pageReserveDTO.isWjw !=null">
+                    AND (title like '%返攀%' or title like '%居家%')
+                </if>
+            </where>
+            order by t.create_at desc
+    </select>
+
+    <delete id="deleteReserveSubAll">
+        delete from com_act_reserve_sub where reserve_id = #{reserveId};
+        delete from com_act_reserve_sub_selection where reserve_id = #{reserveId};
+    </delete>
+
+    <select id="getReserveMakeLeftStatistics" resultType="com.panzhihua.common.model.vos.community.reserve.ComActReserveMakeLeftStatisticsAdminVO">
+        SELECT
+            date_format( reserve_time, '%Y-%m-%d' ) AS reserveTime,
+            count( id ) AS count
+        FROM
+            com_act_reserve_record
+        WHERE
+            `status` = 2
+            AND type = 1
+            AND community_id = ${communityId}
+
+            group by reserveTime
+    </select>
+
+    <select id="getReserveMakeRightStatistics" parameterType="com.panzhihua.common.model.dtos.community.reserve.ComActReserveMakeStatisticsDTO"
+            resultType="com.panzhihua.common.model.vos.community.reserve.ComActReserveMakeRightStatisticsAdminVO">
+        SELECT
+            date_format( carr.reserve_time, '%Y-%m-%d' ) AS reserveTime,
+            car.title AS title,
+            count( carr.id ) AS count
+        FROM
+            com_act_reserve_record AS carr
+            LEFT JOIN com_act_reserve AS car ON car.id = carr.reserve_id
+        WHERE
+            carr.`status` = 2
+            AND carr.type = 1
+            AND carr.community_id = ${makeStatisticsDTO.communityId}
+            <if test="makeStatisticsDTO.startTime != null and makeStatisticsDTO.startTime != &quot;&quot;">
+                AND carr.reserve_time <![CDATA[ >= ]]> #{makeStatisticsDTO.startTime}
+            </if>
+            <if test="makeStatisticsDTO.endTime != null and makeStatisticsDTO.endTime != &quot;&quot;">
+                AND carr.reserve_time <![CDATA[ <= ]]> #{makeStatisticsDTO.endTime}
+            </if>
+        GROUP BY
+            reserveTime,
+            car.id
+    </select>
+
+    <select id="getReserveRecordCount" resultType="integer">
+        select count(id) from com_act_reserve_record
+        where `status` = 2 and `type` = 1 and community_id = ${communityId}
+        and reserve_time <![CDATA[ >= ]]> #{startTime}
+        and reserve_time <![CDATA[ <= ]]> #{endTime}
+    </select>
+
+    <select id="listReserveAdmin"  parameterType="com.panzhihua.common.model.dtos.community.reserve.PageReserveAdminDTO"
+            resultType="com.panzhihua.common.model.vos.community.reserve.ComActReserveListAdminVO">
+        SELECT
+            id,
+            community_id,
+            `type`,
+            title,
+            view_num,
+            join_all_count,
+            join_count,
+            `status`,
+            publish_time,
+            create_at,
+            end_time,
+            adver_position_top,
+            adver_position_application
+        FROM
+            com_act_reserve
+            where is_del = 2 and `type` = 1 and community_id = ${communityId}
+    </select>
+
+    <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}
+        order by create_at desc
+    </select>
+
+    <select id="indexBackReserve" resultType="Integer">
+        select count(*) from com_act_reserve t  LEFT JOIN com_act_reserve_record t3 on t.id=t3.reserve_id where t.community_id = ${communityId} and ( t.title like '%返攀登记%' or t.title like '%来攀登记%')
+    </select>
+
+    <select id="indexHomeQuarantine" resultType="Integer">
+        select count(*) from com_act_reserve t  LEFT JOIN com_act_reserve_record t3 on t.id=t3.reserve_id where t.community_id = ${communityId} and t.title like '%居家隔离%'
+    </select>
+
+    <select id="indexBackReserveSub" resultType="com.panzhihua.common.model.vos.community.bigscreen.IndexReserveSub">
+        select a.*,IFNULL(b.num,0) num from (select count(t2.id) as allCount,t1.key from com_act_reserve t
+                                                                                             LEFT JOIN com_act_reserve_sub t1 on t.id = t1.reserve_id
+                                                                                             LEFT JOIN com_act_reserve_answer_content t2 on t1.id = t2.reserve_sub_id
+                                             where t.community_id = ${communityId} and ( t.title like '%返攀登记%' or t.title like '%来攀登记%') and t1.`key` in (1,2,3,17,19,26) group by t1.key) a LEFT JOIN
+                                            (select count(t2.id) as num,t1.key from com_act_reserve t
+                                                                                        LEFT JOIN com_act_reserve_sub t1 on t.id = t1.reserve_id
+                                                                                        LEFT JOIN com_act_reserve_answer_content t2 on t1.id = t2.reserve_sub_id
+                                             where t.community_id = ${communityId} and ( t.title like '%返攀登记%' or t.title like '%来攀登记%') and t1.`key` in (1,2,3,17,19,26) and t2.answer_content = '是' group by t1.key) b on a.key = b.key
+    </select>
+
+    <select id="IndexHomeQuarantineSub" resultType="com.panzhihua.common.model.vos.community.bigscreen.IndexReserveSub">
+        select a.*,IFNULL(b.num,0) num from (select count(t2.id) as allCount,t1.key from com_act_reserve t
+                                                                                             LEFT JOIN com_act_reserve_sub t1 on t.id = t1.reserve_id
+                                                                                             LEFT JOIN com_act_reserve_answer_content t2 on t1.id = t2.reserve_sub_id
+                                             where t.community_id = ${communityId} and t.title like '%居家隔离%' and t1.`key` in (12,14,16) group by t1.key) a LEFT JOIN
+                                            (select count(t2.id) as num,t1.key from com_act_reserve t
+                                                                                        LEFT JOIN com_act_reserve_sub t1 on t.id = t1.reserve_id
+                                                                                        LEFT JOIN com_act_reserve_answer_content t2 on t1.id = t2.reserve_sub_id
+                                             where t.community_id = ${communityId} and t.title like '%居家隔离%' and t1.`key` in (12,14,16) and t2.answer_content = '是' group by t1.key) b on a.key = b.key
+    </select>
+
+    <select id="selectCommunityPhoneByReserveId" resultType="string">
+        select contacts_phone from com_act_reserve t left join com_act t1 on t.community_id = t1.community_id where t.id = #{reserveId}
+    </select>
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveOperationRecordMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveOperationRecordMapper.xml
new file mode 100644
index 0000000..debd66f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveOperationRecordMapper.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.ComActReserveOperationRecordMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActReserveOperationRecordDO">
+        <id column="id" property="id"/>
+        <result column="reserve_id" property="reserveId"/>
+        <result column="reserve_record_id" property="reserveRecordId"/>
+        <result column="user_id" property="userId"/>
+        <result column="type" property="type"/>
+        <result column="phone" property="phone"/>
+        <result column="reserve_time" property="reserveTime"/>
+        <result column="reserve_content" property="reserveContent"/>
+        <result column="remark" property="remark"/>
+        <result column="status" property="status"/>
+        <result column="create_at" property="createAt"/>
+        <result column="create_by" property="createBy"/>
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, reserve_id, reserve_record_id, user_id, type, phone, reserve_time, reserve_content, remark, status, create_at, create_by
+    </sql>
+
+
+    <select id="getMakeOperationList" resultType="com.panzhihua.common.model.vos.community.reserve.ComActReserveMakeOperationAdminVO">
+        SELECT
+            caror.reserve_id,
+            caror.reserve_record_id,
+            caror.create_at,
+            caror.type,
+            caror.`status`,
+            caror.reserve_time,
+            caror.reserve_content,
+            su.`name`,
+            su.phone,
+            caror.remark,
+            su1.`name` as createByName
+        FROM
+            com_act_reserve_operation_record AS caror
+            left join sys_user as su on su.user_id = caror.user_id
+            left join sys_user as su1 on su1.user_id = caror.create_by
+            where caror.reserve_record_id = #{reserveRecordId}
+            order by caror.create_at desc
+    </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
new file mode 100644
index 0000000..3384128
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveRecordMapper.xml
@@ -0,0 +1,338 @@
+<?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.ComActReserveRecordMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActReserveRecordDO">
+        <id column="id" property="id"/>
+        <result column="user_id" property="userId"/>
+        <result column="reserve_id" property="reserveId"/>
+        <result column="community_id" property="communityId"/>
+        <result column="type" property="type"/>
+        <result column="name" property="name"/>
+        <result column="phone" property="phone"/>
+        <result column="status" property="status"/>
+        <result column="content" property="content"/>
+        <result column="remark" property="remark"/>
+        <result column="act_remark" property="actRemark"/>
+        <result column="reserve_time" property="reserveTime"/>
+        <result column="json_object" property="jsonObject"/>
+        <result column="create_at" property="createAt"/>
+        <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, handle_id
+    </sql>
+
+    <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
+            <if test="pageUserReserveDTO.type !=null">
+                and t.type =#{pageUserReserveDTO.type}
+            </if>
+            <if test="pageUserReserveDTO.status !=null">
+                and t.status =#{pageUserReserveDTO.status}
+            </if>
+            <if test="pageUserReserveDTO.userId !=null">
+                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"
+            resultType="com.panzhihua.common.model.vos.community.reserve.ComActReserveMakeListAdminVO">
+        SELECT
+            carr.id,
+            su.nick_name,
+            su1.`name` as handleName,
+            carr.`name`,
+            carr.phone,
+            carr.reserve_time,
+            carr.`content`,
+            carr.remark,
+            carr.act_remark,
+            carr.create_at
+        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
+            where carr.status = 2 and carr.`type` = 1 and carr.reserve_id = #{pageMakeDTO.reserveId}
+            <if test="pageMakeDTO.startTime != null and pageMakeDTO.startTime != &quot;&quot;">
+                AND carr.reserve_time <![CDATA[ >= ]]> #{pageMakeDTO.startTime}
+            </if>
+            <if test="pageMakeDTO.endTime != null and pageMakeDTO.endTime != &quot;&quot;">
+                AND carr.reserve_time <![CDATA[ <= ]]> #{pageMakeDTO.endTime}
+            </if>
+            order by carr.create_at desc
+    </select>
+
+    <select id="getMakeDetailAdmin" resultType="com.panzhihua.common.model.vos.community.reserve.ComActReserveMakeDetailAdminVO">
+        SELECT
+            carr.id,
+            su.nick_name,
+            su1.`name` as handleName,
+            carr.`name`,
+            carr.phone,
+            carr.reserve_time,
+            carr.`content`,
+            carr.remark,
+            carr.act_remark,
+            carr.create_at
+        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
+            where carr.id = #{reserveRecordId}
+    </select>
+
+    <select id="getReserveStatusById" resultType="integer">
+        select count(id) from com_act_reserve_record where `status` in (3,4) and id in
+        <foreach collection='ids' item='id' index='index' open='(' close=')' separator=',' >
+            #{id}
+        </foreach>
+    </select>
+
+    <update id="editReserveStatusById">
+        update com_act_reserve_record set `status` = 4 where id in
+        <foreach collection='ids' item='id' index='index' open='(' close=')' separator=',' >
+            #{id}
+        </foreach>
+    </update>
+
+    <select id="exportMakeAdmin" parameterType="com.panzhihua.common.model.dtos.community.reserve.PageReserveMakeAdminDTO"
+            resultType="com.panzhihua.common.model.vos.community.reserve.ComActReserveMakeListAdminVO">
+        SELECT
+        carr.id,
+        su.nick_name,
+        su.`name` as handleName,
+        carr.`name`,
+        carr.phone,
+        carr.reserve_time,
+        carr.`content`,
+        carr.remark,
+        carr.act_remark,
+        carr.create_at
+        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
+        where carr.status = 2 and carr.`type` = 1 and carr.reserve_id = #{pageMakeDTO.reserveId}
+        <if test="pageMakeDTO.startTime != null and pageMakeDTO.startTime != &quot;&quot;">
+            AND carr.reserve_time <![CDATA[ >= ]]> #{pageMakeDTO.startTime}
+        </if>
+        <if test="pageMakeDTO.endTime != null and pageMakeDTO.endTime != &quot;&quot;">
+            AND carr.reserve_time <![CDATA[ <= ]]> #{pageMakeDTO.endTime}
+        </if>
+        <if test="pageMakeDTO.ids != null and pageMakeDTO.ids.size > 0">
+            AND carr.id in
+            <foreach collection='pageMakeDTO.ids' item='id' index='index' open='(' close=')' separator=',' >
+                #{id}
+            </foreach>
+        </if>
+        order by carr.create_at desc
+    </select>
+
+    <select id="registerStatisticsAdmin" 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
+        FROM
+            com_act_reserve_record AS carr
+            LEFT JOIN com_act_reserve AS car ON car.id = carr.reserve_id
+        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>
+        GROUP BY
+            car.id
+    </select>
+
+    <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
+        FROM
+        com_act_reserve_record AS carr
+        LEFT JOIN com_act_reserve AS car ON car.id = carr.reserve_id
+        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>
+        GROUP BY
+        car.id
+    </select>
+
+    <select id="pageMakeHandleAdmin" parameterType="com.panzhihua.common.model.dtos.community.reserve.PageReserveMakeHandleAdminDTO"
+            resultType="com.panzhihua.common.model.vos.community.reserve.ComActReserveMakeHandleListAdminVO">
+        SELECT
+            carr.id,
+            su.nick_name,
+            carr.`name`,
+            carr.phone,
+            carr.reserve_time,
+            carr.`content`,
+            su1.`name` as remark,
+            carr.act_remark,
+            carr.`status`,
+            car.`title`,
+            carr.create_at
+        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
+            <if test="pageMakeHandleDTO.keyWord != null and pageMakeHandleDTO.keyWord != &quot;&quot;">
+                and (car.`title` like concat (#{pageMakeHandleDTO.keyWord},'%')
+                or carr.`name` like concat (#{pageMakeHandleDTO.keyWord},'%')
+                or su.nick_name like concat (#{pageMakeHandleDTO.keyWord},'%'))
+            </if>
+            <if test="pageMakeHandleDTO.status != null and pageMakeHandleDTO.status.size > 0">
+                and carr.`status` in
+                <foreach collection='pageMakeHandleDTO.status' item='id' index='index' open='(' close=')' separator=',' >
+                    #{id}
+                </foreach>
+            </if>
+            <if test="pageMakeHandleDTO.reserveId != null ">
+                and carr.reserve_id = #{pageMakeHandleDTO.reserveId}
+            </if>
+            <if test="pageMakeHandleDTO.communityId != null ">
+                and carr.community_id = ${pageMakeHandleDTO.communityId}
+            </if>
+            <if test="pageMakeHandleDTO.startTime != null and pageMakeHandleDTO.startTime != &quot;&quot;">
+                AND DATE_FORMAT(carr.reserve_time,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{pageMakeHandleDTO.startTime}
+            </if>
+            <if test="pageMakeHandleDTO.endTime != null and pageMakeHandleDTO.endTime != &quot;&quot;">
+                AND DATE_FORMAT(carr.reserve_time,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{pageMakeHandleDTO.endTime}
+            </if>
+        order by carr.create_at desc
+    </select>
+
+    <select id="getReserveListCountByIds" resultType="integer">
+        select count(id) from com_act_reserve_record where `status` != 1 and `type` = 1 and id in
+        <foreach collection='ids' item='id' index='index' open='(' close=')' separator=',' >
+            #{id}
+        </foreach>
+    </select>
+
+    <select id="exportMakeHandleAdmin" parameterType="com.panzhihua.common.model.dtos.community.reserve.PageReserveMakeHandleAdminDTO"
+            resultType="com.panzhihua.common.model.vos.community.reserve.ComActReserveMakeHandleListAdminVO">
+        SELECT
+        carr.id,
+        su.nick_name,
+        su1.`name` as handleName,
+        carr.`name`,
+        carr.phone,
+        carr.reserve_time,
+        carr.`content`,
+        carr.remark,
+        carr.act_remark,
+        carr.`status`,
+        car.`title`,
+        carr.create_at
+        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
+        <if test="pageMakeHandleDTO.keyWord != null and pageMakeHandleDTO.keyWord != &quot;&quot;">
+            and (car.`title` like concat (#{pageMakeHandleDTO.keyWord},'%')
+            or carr.`name` like concat (#{pageMakeHandleDTO.keyWord},'%')
+            or su.nick_name like concat (#{pageMakeHandleDTO.keyWord},'%'))
+        </if>
+        <if test="pageMakeHandleDTO.status != null and pageMakeHandleDTO.status.size > 0">
+            and carr.`status` in
+            <foreach collection='pageMakeHandleDTO.status' item='id' index='index' open='(' close=')' separator=',' >
+                #{id}
+            </foreach>
+        </if>
+        <if test="pageMakeHandleDTO.reserveId != null ">
+            and carr.reserve_id = #{pageMakeHandleDTO.reserveId}
+        </if>
+        <if test="pageMakeHandleDTO.communityId != null ">
+            and carr.community_id = ${pageMakeHandleDTO.communityId}
+        </if>
+        <if test="pageMakeHandleDTO.startTime != null and pageMakeHandleDTO.startTime != &quot;&quot;">
+            AND DATE_FORMAT(carr.reserve_time,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{pageMakeHandleDTO.startTime}
+        </if>
+        <if test="pageMakeHandleDTO.endTime != null and pageMakeHandleDTO.endTime != &quot;&quot;">
+            AND DATE_FORMAT(carr.reserve_time,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{pageMakeHandleDTO.endTime}
+        </if>
+        <if test="pageMakeHandleDTO.ids != null and pageMakeHandleDTO.ids.size > 0">
+            and carr.id in
+            <foreach collection='pageMakeHandleDTO.ids' item='id' index='index' open='(' close=')' separator=',' >
+                #{id}
+            </foreach>
+        </if>
+        order by carr.create_at desc
+    </select>
+
+    <select id="getRegisterDetailedByRecordId" resultType="com.panzhihua.common.model.vos.community.reserve.ComActReserveRegisterDetailedVO">
+        SELECT
+            carr.create_at,
+            carr.id,
+            su.nick_name,
+            su.is_partymember,
+            su.is_volunteer
+        FROM
+            com_act_reserve_record AS carr
+            LEFT JOIN sys_user AS su ON su.user_id = carr.user_id
+            where carr.id = #{reserveRecordId}
+    </select>
+
+    <select id="queryAll" resultType="com.panzhihua.common.model.vos.community.reserve.ComOperationListVO" parameterType="com.panzhihua.common.model.dtos.community.OperationDetailDTO">
+        select * from com_act_reserve_operation_record
+        <where>
+            <if test="reserveRecordId!=null">
+                and reserve_record_id =#{reserveRecordId}
+            </if>
+            <if test="type!=null">
+                and type =#{type}
+            </if>
+        </where>
+        order by create_at desc
+    </select>
+
+    <select id="biggestScreen" resultType="com.panzhihua.common.model.vos.community.bigscreen.BigScreenStaticsReserve">
+        select   (select count(*)  from com_act_reserve_record t LEFT JOIN com_act_reserve t1 on t.reserve_id = t1.id where (t1.title like '%居家%' or t1.title like '%返攀%' or t1.title like '%来攀%' or t1.title like '%燃气%' or t1.title like '%防火%') and t1.community_id = ${communityId}) count,
+					(select count(*)  from com_act_reserve_record t LEFT JOIN com_act_reserve t1 on t.reserve_id = t1.id where (t1.title like '%居家%' or t1.title like '%返攀%' or t1.title like '%来攀%' ) and t1.community_id = ${communityId}) epidemicCount,
+					(select count(*)  from com_act_reserve_record t LEFT JOIN com_act_reserve t1 on t.reserve_id = t1.id where (t1.title like '%燃气%' ) and t1.community_id = ${communityId}) gasCount,
+					(select count(*)  from com_act_reserve_record t LEFT JOIN com_act_reserve t1 on t.reserve_id = t1.id where (t1.title like '%防火%' ) and t1.community_id = ${communityId}) fireCount,
+					(select count(*)  from com_act_reserve_record t LEFT JOIN com_act_reserve t1 on t.reserve_id = t1.id where (t1.title like '%居家%' ) and t1.community_id = ${communityId}) homeCount,
+					(select count(*)  from com_act_reserve_record t LEFT JOIN com_act_reserve t1 on t.reserve_id = t1.id where (t1.title like '%返攀%' or t1.title like '%来攀%' ) and t1.community_id = ${communityId}) reserveCount
+    </select>
+
+    <select id="biggestScreenMonth" resultType="com.panzhihua.common.model.vos.community.bigscreen.BigScreenStaticsReserveMonth">
+        select   (select count(*)  from com_act_reserve_record t LEFT JOIN com_act_reserve t1 on t.reserve_id = t1.id where (t1.title like '%居家%' or t1.title like '%返攀%' or t1.title like '%来攀%' or t1.title like '%燃气%' or t1.title like '%防火%') and t1.community_id = ${communityId} and t.create_at >= DATE_FORMAT(  CONCAT(#{year},'-',#{date},'-00'), '%Y-%m-00 00:00:00') and  DATE_FORMAT( LAST_DAY(CONCAT(#{year},'-',#{date},'-00')), '%Y-%m-%d 23:59:59') >=t.create_at ) count,
+				 (select count(*)  from com_act_reserve_record t LEFT JOIN com_act_reserve t1 on t.reserve_id = t1.id where (t1.title like '%燃气%' ) and t1.community_id = ${communityId} and t.create_at >= DATE_FORMAT(  CONCAT(#{year},'-',#{date},'-00'), '%Y-%m-00 00:00:00') and  DATE_FORMAT( LAST_DAY(CONCAT(#{year},'-',#{date},'-00')), '%Y-%m-%d 23:59:59') >=t.create_at) gasCount,
+            (select count(*)  from com_act_reserve_record t LEFT JOIN com_act_reserve t1 on t.reserve_id = t1.id where (t1.title like '%防火%' ) and t1.community_id = ${communityId} and t.create_at >= DATE_FORMAT(  CONCAT(#{year},'-',#{date},'-00'), '%Y-%m-00 00:00:00') and  DATE_FORMAT( LAST_DAY(CONCAT(#{year},'-',#{date},'-00')), '%Y-%m-%d 23:59:59') >=t.create_at) fireCount,
+            (select count(*)  from com_act_reserve_record t LEFT JOIN com_act_reserve t1 on t.reserve_id = t1.id where (t1.title like '%居家%' ) and t1.community_id = ${communityId} and t.create_at >= DATE_FORMAT(  CONCAT(#{year},'-',#{date},'-00'), '%Y-%m-00 00:00:00') and  DATE_FORMAT( LAST_DAY(CONCAT(#{year},'-',#{date},'-00')), '%Y-%m-%d 23:59:59') >=t.create_at) homeCount,
+            (select count(*)  from com_act_reserve_record t LEFT JOIN com_act_reserve t1 on t.reserve_id = t1.id where (t1.title like '%返攀%' or t1.title like '%来攀%' ) and t1.community_id = ${communityId} and t.create_at >= DATE_FORMAT(  CONCAT(#{year},'-',#{date},'-00'), '%Y-%m-00 00:00:00') and  DATE_FORMAT( LAST_DAY(CONCAT(#{year},'-',#{date},'-00')), '%Y-%m-%d 23:59:59') >=t.create_at) reserveCount
+    </select>
+</mapper>
\ No newline at end of file
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
new file mode 100644
index 0000000..202c08f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveSubMapper.xml
@@ -0,0 +1,32 @@
+<?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.ComActReserveSubMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActReserveSubDO">
+        <id column="id" property="id"/>
+        <result column="reserve_id" property="reserveId"/>
+        <result column="sort" property="sort"/>
+        <result column="type" property="type"/>
+        <result column="key" property="key"/>
+        <result column="content" property="content"/>
+        <result column="create_by" property="createBy"/>
+        <result column="create_at" property="createAt"/>
+        <result column="update_by" property="updateBy"/>
+        <result column="update_at" property="updateAt"/>
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, reserve_id, sort, type, key, content, create_by, create_at, update_by, update_at
+    </sql>
+
+    <select id="getReserveSubjectList" resultType="com.panzhihua.common.model.vos.community.reserve.ComActReserveSubListVO">
+        select id,content,`type` from com_act_reserve_sub where reserve_id = #{reserveId} order by id asc
+    </select>
+
+    <select id="subjectSelectionListAdmin" resultType="java.lang.String">
+         select content from com_act_reserve_sub_selection where reserve_sub_id = #{reserveSubId} 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
new file mode 100644
index 0000000..b25b1c5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActReserveSubSelectionMapper.xml
@@ -0,0 +1,27 @@
+<?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.ComActReserveSubSelectionMapper">
+
+        <!-- 通用查询映射结果 -->
+        <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActReserveSubSelectionDO">
+                    <id column="id" property="id" />
+                    <result column="reserve_id" property="reserveId" />
+                    <result column="reserve_sub_id" property="reserveSubId" />
+                    <result column="key" property="key" />
+                    <result column="type" property="type" />
+                    <result column="sort" property="sort" />
+                    <result column="option_name" property="optionName" />
+                    <result column="content" property="content" />
+                    <result column="create_at" property="createAt" />
+                    <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, url
+    </sql>
+
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialMemberMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialMemberMapper.xml
new file mode 100644
index 0000000..13075b9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialMemberMapper.xml
@@ -0,0 +1,54 @@
+<?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.ComActSocialMemberDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComActSocialMember" id="ComActSocialMemberBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="name" column="name"/>
+        <result property="phone" column="phone"/>
+        <result property="orgId" column="org_id"/>
+        <result property="position" column="position"/>
+        <result property="idCard" column="id_card"/>
+        <result property="account" column="account"/>
+        <result property="password" column="password"/>
+        <result property="status" column="status"/>
+        <result property="image" column="image"/>
+        <result property="createTime" column="create_time"/>
+        <result property="streetId" column="street_id"/>
+    </resultMap>
+
+    <select id="pageList" resultType="com.panzhihua.common.model.vos.ComActSocialMemberVO">
+        select t.*,t1.name as orgName, TIMESTAMPDIFF(YEAR, SUBSTRING(t.id_card, 7, 8), NOW()) AS age
+        from com_act_social_member t
+        left join com_act_social_org t1 on t.org_id = t1.id
+        <where>
+            1=1
+            <if test="commonPage.keyword!=null and commonPage.keyword !=''">
+                and (t.name like concat('%',#{commonPage.keyword},'%') or t.phone like concat('%',#{commonPage.keyword},'%') or t.account like concat('%',#{commonPage.keyword},'%') )
+            </if>
+            <if test="commonPage.status!=null ">
+                and t.status = #{commonPage.status}
+            </if>
+            <if test="commonPage.paramId!=null ">
+                and t.org_id = #{commonPage.paramId}
+            </if>
+            <if test="commonPage.streetId!=null ">
+                and t1.street_id = #{commonPage.streetId}
+            </if>
+            <if test="commonPage.communityId!=null ">
+                and t1.affiliated_unit_type = 2 AND t1.affiliated_unit = #{commonPage.communityId}
+            </if>
+        </where>
+        order by t.create_time desc
+    </select>
+
+    <select id="detail" resultType="com.panzhihua.common.model.vos.ComActSocialMemberVO">
+        select t.*,t1.name from com_act_social_member t left join com_street t1 on t.street_id = t1.street_id
+        where t.id =#{id}
+    </select>
+    <select id="selectPbServiceTeamById"
+            resultType="com.panzhihua.common.model.vos.partybuilding.ComPbServiceTeamVO">
+        SELECT * FROM com_pb_service_team WHERE id = #{id}
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialOrgHatchAuditMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialOrgHatchAuditMapper.xml
new file mode 100644
index 0000000..9a88cf9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialOrgHatchAuditMapper.xml
@@ -0,0 +1,89 @@
+<?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.ComActSocialOrgHatchAuditDAO">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComActSocialOrgHatchAudit"
+               id="ComActSocialOrgHatchAuditMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="responsibility" column="responsibility" jdbcType="VARCHAR"/>
+        <result property="phone" column="phone" jdbcType="VARCHAR"/>
+        <result property="hatchUnit" column="hatch_unit" jdbcType="INTEGER"/>
+        <result property="hatchUnitType" column="hatch_unit_type" jdbcType="INTEGER"/>
+        <result property="hatchUnitName" column="hatch_unit_name" jdbcType="VARCHAR"/>
+        <result property="userId" column="user_id" jdbcType="INTEGER"/>
+        <result property="status" column="status" jdbcType="INTEGER"/>
+        <result property="createdAt" column="created_at" jdbcType="TIMESTAMP"/>
+        <result property="updatedAt" column="updated_at" jdbcType="TIMESTAMP"/>
+        <result property="introduction" column="introduction" jdbcType="VARCHAR"/>
+        <result property="logo" column="logo" jdbcType="VARCHAR"/>
+        <result property="applyReason" column="apply_reason" jdbcType="VARCHAR"/>
+        <result property="serviceScope" column="service_scope" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <!-- 批量插入 -->
+    <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.com_act_social_org_hatch_audit(name, responsibility, phone, hatch_unit, hatch_unit_type,
+        hatch_unit_name, user_id, status, created_at, updated_at, introduction, logo, apply_reason, service_scope)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.name}, #{entity.responsibility}, #{entity.phone}, #{entity.hatchUnit}, #{entity.hatchUnitType},
+            #{entity.hatchUnitName}, #{entity.userId}, #{entity.status}, #{entity.createdAt}, #{entity.updatedAt},
+            #{entity.introduction}, #{entity.logo}, #{entity.applyReason}, #{entity.serviceScope})
+        </foreach>
+    </insert>
+    <!-- 批量插入或按主键更新 -->
+    <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.com_act_social_org_hatch_audit(name, responsibility, phone, hatch_unit, hatch_unit_type,
+        hatch_unit_name, user_id, status, created_at, updated_at, introduction, logo, apply_reason, service_scope)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.name}, #{entity.responsibility}, #{entity.phone}, #{entity.hatchUnit}, #{entity.hatchUnitType},
+            #{entity.hatchUnitName}, #{entity.userId}, #{entity.status}, #{entity.createdAt}, #{entity.updatedAt},
+            #{entity.introduction}, #{entity.logo}, #{entity.applyReason}, #{entity.serviceScope})
+        </foreach>
+        on duplicate key update
+        name = values(name) , responsibility = values(responsibility) , phone = values(phone) , hatch_unit =
+        values(hatch_unit) , hatch_unit_type = values(hatch_unit_type) , hatch_unit_name = values(hatch_unit_name) ,
+        user_id = values(user_id) , status = values(status) , created_at = values(created_at) , updated_at =
+        values(updated_at) , introduction = values(introduction) , logo = values(logo) , apply_reason =
+        values(apply_reason) , service_scope = values(service_scope)
+    </insert>
+    <select id="pageHatchAudit"
+            resultType="com.panzhihua.common.model.vos.community.social.SocialOrgHatchAuditVO">
+        SELECT id, `name`, responsibility, phone, hatch_unit_name, created_at, `status`
+        FROM com_act_social_org_hatch_audit
+        <where>
+            <if test="pageHatchAuditDTO.keyword != null and pageHatchAuditDTO.keyword != &quot;&quot;">
+                AND (`name` LIKE CONCAT(#{pageHatchAuditDTO.keyword}, '%')
+                OR responsibility LIKE CONCAT(#{pageHatchAuditDTO.keyword}, '%')
+                OR phone LIKE CONCAT(#{pageHatchAuditDTO.keyword}, '%'))
+            </if>
+            <if test="pageHatchAuditDTO.hatchUnit != null and pageHatchAuditDTO.hatchUnitType != null">
+                AND hatch_unit = #{pageHatchAuditDTO.hatchUnit} AND hatch_unit_type = #{pageHatchAuditDTO.hatchUnitType}
+            </if>
+            <if test="pageHatchAuditDTO.status != null">
+                AND `status` = #{pageHatchAuditDTO.status}
+            </if>
+        </where>
+        ORDER BY created_at DESC
+    </select>
+    <select id="detailHatchAudit"
+            resultType="com.panzhihua.common.model.vos.community.social.SocialOrgHatchAuditVO">
+        SELECT a.*, GROUP_CONCAT(c.`name`) AS serviceScopeName
+        FROM com_act_social_org_hatch_audit a
+        JOIN mysql.help_topic b ON b.help_topic_id &lt; ( length( a.service_scope ) - length( REPLACE ( a.service_scope, ',', '' ))+ 1 )
+        LEFT JOIN com_act_column c ON substring_index( substring_index( a.service_scope, ',', b.help_topic_id + 1 ), ',',- 1 ) = c.id
+        WHERE a.id = #{id}
+    </select>
+    <select id="getHatchAuditSchedule"
+            resultType="com.panzhihua.common.model.vos.community.social.SocialOrgHatchAuditVO">
+        SELECT a.*, GROUP_CONCAT(c.`name`) AS serviceScopeName
+        FROM com_act_social_org_hatch_audit a
+        JOIN mysql.help_topic b ON b.help_topic_id &lt; ( length( a.service_scope ) - length( REPLACE ( a.service_scope, ',', '' ))+ 1 )
+        LEFT JOIN com_act_column c ON substring_index( substring_index( a.service_scope, ',', b.help_topic_id + 1 ), ',',- 1 ) = c.id
+        WHERE a.user_id = #{userId}
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialOrgHatchAuditScheduleMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialOrgHatchAuditScheduleMapper.xml
new file mode 100644
index 0000000..52df335
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialOrgHatchAuditScheduleMapper.xml
@@ -0,0 +1,34 @@
+<?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.ComActSocialOrgHatchAuditScheduleDAO">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComActSocialOrgHatchAuditSchedule"
+               id="ComActSocialOrgHatchAuditScheduleMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="auditId" column="audit_id" jdbcType="INTEGER"/>
+        <result property="stage" column="stage" jdbcType="VARCHAR"/>
+        <result property="detail" column="detail" jdbcType="VARCHAR"/>
+        <result property="createdAt" column="created_at" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+    <!-- 批量插入 -->
+    <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.com_act_social_org_hatch_audit_schedule(audit_id, stage, detail, created_at)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.auditId}, #{entity.stage}, #{entity.detail}, #{entity.createdAt})
+        </foreach>
+    </insert>
+    <!-- 批量插入或按主键更新 -->
+    <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.com_act_social_org_hatch_audit_schedule(audit_id, stage, detail, created_at)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.auditId}, #{entity.stage}, #{entity.detail}, #{entity.createdAt})
+        </foreach>
+        on duplicate key update
+        audit_id = values(audit_id) , stage = values(stage) , detail = values(detail) , created_at = values(created_at)
+    </insert>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialOrgHatchMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialOrgHatchMapper.xml
new file mode 100644
index 0000000..cd32a27
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialOrgHatchMapper.xml
@@ -0,0 +1,193 @@
+<?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.ComActSocialOrgHatchDAO">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComActSocialOrgHatch" id="ComActSocialOrgHatchMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="responsibility" column="responsibility" jdbcType="VARCHAR"/>
+        <result property="phone" column="phone" jdbcType="VARCHAR"/>
+        <result property="hatchUnit" column="hatch_unit" jdbcType="INTEGER"/>
+        <result property="hatchUnitType" column="hatch_unit_type" jdbcType="INTEGER"/>
+        <result property="hatchUnitName" column="hatch_unit_name" jdbcType="VARCHAR"/>
+        <result property="status" column="status" jdbcType="INTEGER"/>
+        <result property="createdAt" column="created_at" jdbcType="TIMESTAMP"/>
+        <result property="updatedAt" column="updated_at" jdbcType="TIMESTAMP"/>
+        <result property="introduction" column="introduction" jdbcType="VARCHAR"/>
+        <result property="logo" column="logo" jdbcType="VARCHAR"/>
+        <result property="applyReason" column="apply_reason" jdbcType="VARCHAR"/>
+        <result property="serviceScope" column="service_scope" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <!-- 批量插入 -->
+    <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.com_act_social_org_hatch(name, responsibility, phone, hatch_unit, hatch_unit_type,
+        hatch_unit_name, status, created_at, updated_at, introduction, logo, apply_reason, service_scope)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.name}, #{entity.responsibility}, #{entity.phone}, #{entity.hatchUnit}, #{entity.hatchUnitType},
+            #{entity.hatchUnitName}, #{entity.status}, #{entity.createdAt}, #{entity.updatedAt}, #{entity.introduction},
+            #{entity.logo}, #{entity.applyReason}, #{entity.serviceScope})
+        </foreach>
+    </insert>
+    <!-- 批量插入或按主键更新 -->
+    <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.com_act_social_org_hatch(name, responsibility, phone, hatch_unit, hatch_unit_type,
+        hatch_unit_name, status, created_at, updated_at, introduction, logo, apply_reason, service_scope)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.name}, #{entity.responsibility}, #{entity.phone}, #{entity.hatchUnit}, #{entity.hatchUnitType},
+            #{entity.hatchUnitName}, #{entity.status}, #{entity.createdAt}, #{entity.updatedAt}, #{entity.introduction},
+            #{entity.logo}, #{entity.applyReason}, #{entity.serviceScope})
+        </foreach>
+        on duplicate key update
+        name = values(name) , responsibility = values(responsibility) , phone = values(phone) , hatch_unit =
+        values(hatch_unit) , hatch_unit_type = values(hatch_unit_type) , hatch_unit_name = values(hatch_unit_name) ,
+        status = values(status) , created_at = values(created_at) , updated_at = values(updated_at) , introduction =
+        values(introduction) , logo = values(logo) , apply_reason = values(apply_reason) , service_scope =
+        values(service_scope)
+    </insert>
+    <select id="pageOrgHatch" resultType="com.panzhihua.common.model.vos.community.social.SocialOrgHatchVO">
+        SELECT id, `name`, responsibility, phone, hatch_unit_name, created_at, `status`
+        FROM com_act_social_org_hatch
+        <where>
+            <if test="pageHatchDTO.keyword != null and pageHatchDTO.keyword != &quot;&quot;">
+                AND (`name` LIKE CONCAT(#{pageHatchDTO.keyword}, '%')
+                OR responsibility LIKE CONCAT(#{pageHatchDTO.keyword}, '%')
+                OR phone LIKE CONCAT(#{pageHatchDTO.keyword}, '%'))
+            </if>
+            <if test="pageHatchDTO.hatchUnit != null and pageHatchDTO.hatchUnitType != null">
+                AND hatch_unit = #{pageHatchDTO.hatchUnit} AND hatch_unit_type = #{pageHatchDTO.hatchUnitType}
+            </if>
+            <if test="pageHatchDTO.status != null">
+                AND `status` = #{pageHatchDTO.status}
+            </if>
+        </where>
+        ORDER BY created_at DESC
+    </select>
+    <select id="detailOrgHatch" resultType="com.panzhihua.common.model.vos.community.social.SocialOrgHatchVO">
+        SELECT a.*, GROUP_CONCAT(c.`name`) AS serviceScopeName
+        FROM com_act_social_org_hatch a
+        JOIN mysql.help_topic b ON b.help_topic_id &lt; ( length( a.service_scope ) - length( REPLACE ( a.service_scope, ',', '' ))+ 1 )
+        LEFT JOIN com_act_column c ON substring_index( substring_index( a.service_scope, ',', b.help_topic_id + 1 ), ',',- 1 ) = c.id
+        WHERE a.id = #{id}
+    </select>
+    <select id="getHatchBaseData"
+            resultType="com.panzhihua.common.model.vos.community.bigscreen.BigScreenHatchStatisticsInfo">
+        SELECT
+        (SELECT COUNT(id) FROM (SELECT id
+        FROM com_act_social_org_hatch_audit t
+        LEFT JOIN com_act t1 ON t.hatch_unit = t1.community_id
+        WHERE t.hatch_unit_type = 2 AND t.`status` IN(1,2) AND t1.street_id = #{streetId}
+        UNION ALl
+        SELECT id
+        FROM com_act_social_org_hatch_audit
+        WHERE hatch_unit_type = 1 AND `status` IN(1,2) AND hatch_unit = #{streetId}
+        UNION ALL
+        SELECT id
+        FROM com_act_social_org t
+        LEFT JOIN com_act t1 ON t.affiliated_unit = t1.community_id
+        WHERE t.build_type = 1 AND t.is_society = 1 AND t.affiliated_unit_type = 2 AND t.`status` = 1 AND t1.street_id = #{streetId}
+        UNION ALl
+        SELECT id
+        FROM com_act_social_org
+        WHERE build_type = 1 AND is_society = 1 AND affiliated_unit_type = 1 AND `status` = 1 AND affiliated_unit = #{streetId}
+        ) temp) AS hatchCenterTotal,
+        (SELECT COUNT(id) FROM (SELECT id
+        FROM com_act_social_org t
+        LEFT JOIN com_act t1 ON t.affiliated_unit = t1.community_id
+        WHERE t.build_type = 1 AND t.is_society = 1 AND t.affiliated_unit_type = 2 AND t.`status` = 1 AND t1.street_id = #{streetId}
+        UNION ALl
+        SELECT id
+        FROM com_act_social_org
+        WHERE build_type = 1 AND is_society = 1 AND affiliated_unit_type = 1 AND `status` = 1 AND affiliated_unit = #{streetId}) temp) AS hatchResultTotal,
+        (SELECT COUNT(id) FROM (SELECT id
+        FROM com_act_social_org t
+        LEFT JOIN com_act t1 ON t.affiliated_unit = t1.community_id
+        WHERE t.build_type = 1 AND t.is_society = 1 AND t.affiliated_unit_type = 2 AND t.`status` = 1 AND t1.area_code = '510423'
+        UNION ALL
+        SELECT id
+        FROM com_act_social_org t
+        LEFT JOIN com_street t1 ON t.affiliated_unit = t1.street_id
+        WHERE t.build_type = 1 AND t.is_society = 1 AND t.affiliated_unit_type = 1 AND t.`status` = 1 AND t1.area_code = '510423') temp) AS westAreaOrgTotal
+    </select>
+    <select id="getHatchScheduleCircleData"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT filed, COUNT(filed) AS num FROM (
+        SELECT
+        CASE
+        WHEN t.`status` = 1 THEN '孵化中'
+        WHEN t.`status` = 2 THEN '孵化完成'
+        END filed
+        FROM com_act_social_org_hatch t
+        LEFT JOIN com_act t1 ON t.hatch_unit = t1.community_id
+        WHERE t.hatch_unit_type = 2 AND t1.street_id = #{streetId}
+        UNION ALl
+        SELECT
+        CASE
+        WHEN `status` = 1 THEN '孵化中'
+        WHEN `status` = 2 THEN '孵化完成'
+        END filed
+        FROM com_act_social_org_hatch
+        WHERE hatch_unit_type = 1 AND hatch_unit = #{streetId}
+        ) temp GROUP BY filed
+    </select>
+    <select id="getHatchStatusColumnData"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT filed, SUM(num) AS num FROM (
+        SELECT '已进驻' AS filed, COUNT(id) AS num
+        FROM com_act_social_org_hatch_audit t
+        LEFT JOIN com_act t1 ON t.hatch_unit = t1.community_id
+        WHERE t.hatch_unit_type = 2 AND t.`status` = 1 AND t1.street_id = #{streetId}
+        UNION ALl
+        SELECT '已进驻' AS filed, COUNT(id) AS num
+        FROM com_act_social_org_hatch_audit
+        WHERE hatch_unit_type = 1 AND `status` = 1 AND hatch_unit = #{streetId}
+        UNION ALl
+        SELECT '孵化中' AS filed, COUNT(id) AS num
+        FROM com_act_social_org_hatch t
+        LEFT JOIN com_act t1 ON t.hatch_unit = t1.community_id
+        WHERE t.hatch_unit_type = 2 AND t.`status` = 1 AND t1.street_id = #{streetId}
+        UNION ALL
+        SELECT '孵化中' AS filed, COUNT(id) AS num
+        FROM com_act_social_org_hatch
+        WHERE hatch_unit_type = 1 AND `status` = 1 AND hatch_unit = #{streetId}
+        UNION ALl
+        SELECT '通过评估' AS filed, COUNT(id) AS num
+        FROM com_act_social_org_hatch t
+        LEFT JOIN com_act t1 ON t.hatch_unit = t1.community_id
+        WHERE t.hatch_unit_type = 2 AND t.`status` = 2 AND t1.street_id = #{streetId}
+        UNION ALL
+        SELECT '通过评估' AS filed, COUNT(id) AS num
+        FROM com_act_social_org_hatch
+        WHERE hatch_unit_type = 1 AND `status` = 2 AND hatch_unit = #{streetId}
+        UNION ALL
+        SELECT '出壳' AS filed, COUNT(id) AS num
+        FROM com_act_social_org t
+        LEFT JOIN com_act t1 ON t.affiliated_unit = t1.community_id
+        WHERE t.build_type = 1 AND t.is_society = 1 AND t.affiliated_unit_type = 2 AND t.`status` = 1 AND t1.street_id = #{streetId}
+        UNION ALL
+        SELECT '出壳' AS filed, COUNT(id) AS num
+        FROM com_act_social_org
+        WHERE build_type = 1 AND is_society = 1 AND affiliated_unit_type = 1 AND `status` = 1 AND affiliated_unit = #{streetId}
+        ) temp GROUP BY filed
+    </select>
+    <select id="getStreetOrgColumnData" resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT t2.`name` AS filed, COUNT(t2.`name`) AS num
+        FROM com_act_social_org t
+        JOIN com_street t2 ON t.street_id = t2.street_id
+        WHERE t2.area_code = '510423' AND t.is_society = 1
+        GROUP BY filed
+    </select>
+    <select id="getStreetOrgChildData" resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT filed, COUNT(filed) AS num FROM(
+        SELECT substring_index( substring_index( t.service_type, ',', b.help_topic_id + 1 ), ',',- 1 ) AS filed
+        FROM com_act_social_org t
+        JOIN com_street t2 ON t.street_id = t2.street_id
+        JOIN mysql.help_topic b ON b.help_topic_id &lt; ( length( t.service_type ) - length( REPLACE ( t.service_type, ',', '' ))+ 1 )
+        WHERE t2.area_code = '510423' AND t.is_society = 1 AND t2.`name` = #{streetName}) temp
+        GROUP BY filed
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialOrgMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialOrgMapper.xml
new file mode 100644
index 0000000..fe64178
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialOrgMapper.xml
@@ -0,0 +1,202 @@
+<?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.ComActSocialOrgDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComActSocialOrg" id="ComActSocialOrgBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="name" column="name"/>
+        <result property="businessNumber" column="business_number"/>
+        <result property="buildDate" column="build_date"/>
+        <result property="agencyCode" column="agency_code"/>
+        <result property="weixinOfficialAccounts" column="weixin_official_accounts"/>
+        <result property="companyType" column="company_type"/>
+        <result property="registFee" column="regist_fee"/>
+        <result property="assetsTotal" column="assets_total"/>
+        <result property="assetsNet" column="assets_net"/>
+        <result property="salesFee" column="sales_fee"/>
+        <result property="taxesLastYear" column="taxes_last_year"/>
+        <result property="staffCount" column="staff_count"/>
+        <result property="maillingAddr" column="mailling_addr"/>
+        <result property="postCode" column="post_code"/>
+        <result property="officialUrl" column="official_url"/>
+        <result property="corporationName" column="corporation_name"/>
+        <result property="corporationGen" column="corporation_gen"/>
+        <result property="corporationOfficePhone" column="corporation_office_phone"/>
+        <result property="corporationPosition" column="corporation_position"/>
+        <result property="corporationPhone" column="corporation_phone"/>
+        <result property="corporationEmail" column="corporation_email"/>
+        <result property="contactName" column="contact_name"/>
+        <result property="contactGen" column="contact_gen"/>
+        <result property="contactOfficePhone" column="contact_office_phone"/>
+        <result property="contactPosition" column="contact_position"/>
+        <result property="contactPhone" column="contact_phone"/>
+        <result property="contactEmail" column="contact_email"/>
+        <result property="businessScope" column="business_scope"/>
+        <result property="businessImpact" column="business_impact"/>
+        <result property="attachUrl" column="attach_url"/>
+        <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="communityId" column="community_id"/>
+        <result property="userId" column="user_id"/>
+    </resultMap>
+
+    <select id="pageList" resultType="com.panzhihua.common.model.vos.community.ComActSocialOrgVO">
+        select t.*,t1.account,t1.password,t2.role_id as roleId,t4.name as streetName,t6.name as communityName from com_act_social_org t
+        left join sys_user t1 on t.user_id = t1.user_id
+        left join sys_user_role t2 on t.user_id = t2.user_id
+        left join com_street t4 on t.street_id = t4.street_id
+        left join com_act t6 on t.community_id = t6.community_id
+        <where>
+            1=1
+            <if test="commonPage.type!=null">
+                and t.company_type =#{commonPage.type}
+            </if>
+            <if test="commonPage.type2!=null">
+                and t.service_type =#{commonPage.type2}
+            </if>
+            <if test="commonPage.name!=null and commonPage.name!=''">
+                and t.name like concat(#{commonPage.name},'%')
+            </if>
+            <if test="commonPage.keyword!=null and commonPage.keyword!=''">
+                and (t.name like concat('%',#{commonPage.keyword},'%') or t.contact_phone like concat('%',#{commonPage.keyword},'%') or  t.corporation_name like concat(#{commonPage.keyword},'%') )
+            </if>
+            <if test="commonPage.serialNo!=null and commonPage.serialNo!=''">
+                and t.agency_code like concat(#{commonPage.serialNo},'%')
+            </if>
+            <if test="commonPage.username!=null and commonPage.username!=''">
+                and t.corporation_name like concat(#{commonPage.username},'%')
+            </if>
+            <if test="commonPage.systemName!=null and commonPage.systemName!=''">
+                and t.contact_name like concat(#{commonPage.systemName},'%')
+            </if>
+            <if test="commonPage.streetId!=null">
+                and t.street_id =#{commonPage.streetId}
+            </if>
+            <if test="commonPage.phone!=null and commonPage.phone!=''">
+                and t.contact_phone like concat(#{commonPage.phone},'%')
+            </if>
+            <if test="commonPage.status!=null">
+                and t.status = #{commonPage.status}
+            </if>
+            <if test="commonPage.paramId2 == 1">
+                and t.is_society = #{commonPage.paramId2}
+                <if test="commonPage.communityId!=null">
+                    and t.affiliated_unit_type = 2 AND t.affiliated_unit = #{commonPage.communityId}
+                </if>
+                <if test="commonPage.paramId!=null and commonPage.paramId!=0">
+                    and t.affiliated_unit_type = 2 AND t.affiliated_unit = ${commonPage.paramId}
+                </if>
+            </if>
+            <if test="commonPage.paramId2==null">
+                and t.is_society is null
+                <if test="commonPage.communityId!=null">
+                    and t.community_id =#{commonPage.communityId}
+                </if>
+                <if test="commonPage.paramId!=null">
+                    and t.community_id = ${commonPage.paramId}
+                </if>
+            </if>
+        </where>
+        order by t.create_at desc
+    </select>
+
+    <select id="detail" resultType="com.panzhihua.common.model.vos.community.ComActSocialOrgVO">
+        select t.*,t1.account,t1.password,t2.role_id as roleId,t4.name as streetName from com_act_social_org t
+                                                                                              left join sys_user t1 on t.user_id = t1.user_id
+                                                                                              left join sys_user_role t2 on t.user_id = t2.user_id
+                                                                                              left join com_street t4 on t.street_id = t4.street_id
+        where t.id=#{id}
+    </select>
+
+    <select id="selectInfo" resultType="com.panzhihua.common.model.vos.community.bigscreen.BigScreenHmkSocialOrgInfo">
+        select (select count(*)  from com_act_social_org where street_id = 15 <if test="communityId!=null"> and community_id = #{communityId}</if>) count
+    </select>
+    <select id="selectType" resultType="com.panzhihua.common.model.vos.community.bigscreen.BigScreenHmkProjectTypeInfo">
+        select count(*) count,t1.name from com_act_social_org t INNER JOIN com_act_column t1 on t.service_type = t1.id  where t.street_id = 15 <if test="communityId!=null"> and t.community_id = #{communityId}</if> GROUP BY t1.id
+    </select>
+    <select id="selectOrgByUserId" resultType="com.panzhihua.service_community.entity.ComActSocialOrg">
+        SELECT t1.*
+        FROM com_act_social_org t1
+                 LEFT JOIN sys_user t2 ON t1.contact_phone = t2.phone AND t2.`type` = 1
+        WHERE t2.user_id = #{userId} AND t1.is_society = 1
+    </select>
+    <select id="pageHatchResult" resultType="com.panzhihua.common.model.vos.community.ComActSocialOrgVO">
+        SELECT t.id, t.`name`, t.company_type, t.attach_url, t.streetName, t.create_at, t.service_type,
+               (SELECT COUNT(id) FROM com_act_social_member WHERE org_id = t.id) AS staffCount,
+               (SELECT COUNT(id) FROM com_act_social_project WHERE responsibility_type = 3 AND responsibility_id = t.id) AS undertakeProjectNum,
+               (SELECT COUNT(id) FROM com_act_activity WHERE `type` = 4 AND project_id IN (
+                   SELECT id FROM com_act_social_project WHERE responsibility_type = 3 AND responsibility_id = t.id)
+               ) AS startActNum
+        FROM (
+                 SELECT t.*, t2.`name` AS streetName
+                 FROM com_act_social_org t
+                          LEFT JOIN com_act t1 ON t.affiliated_unit = t1.community_id
+                          LEFT JOIN com_street t2 ON t1.street_id = t2.street_id
+                 WHERE t.build_type = 1 AND t.is_society = 1 AND t.affiliated_unit_type = 2 AND t.`status` = 1 AND t1.street_id = #{streetId}
+                 UNION ALL
+                 SELECT t.*, t1.`name` AS streetName
+                 FROM com_act_social_org t
+                          LEFT JOIN com_street t1 ON t.affiliated_unit = t1.street_id
+                 WHERE t.build_type = 1 AND t.is_society = 1 AND t.affiliated_unit_type = 1 AND t.`status` = 1 AND t.affiliated_unit = #{streetId}) t
+    </select>
+    <select id="pageHatchSchedule" resultType="com.panzhihua.common.model.vos.community.ComActSocialOrgVO">
+        SELECT t.id, t.`name`, 1 AS hatchSchedule, null AS affiliated_unit_name
+        FROM com_act_social_org_hatch_audit t
+                 LEFT JOIN com_act t1 ON t.hatch_unit = t1.community_id
+        WHERE t.hatch_unit_type = 2 AND t.`status` = 1 AND t1.street_id = #{streetId}
+        UNION ALl
+        SELECT id, `name`, 1 AS hatchSchedule, null AS affiliated_unit_name
+        FROM com_act_social_org_hatch_audit
+        WHERE hatch_unit_type = 1 AND `status` = 1 AND hatch_unit = #{streetId}
+        UNION ALl
+        SELECT t.id, t.`name`, 2 AS hatchSchedule, null AS affiliated_unit_name
+        FROM com_act_social_org_hatch t
+                 LEFT JOIN com_act t1 ON t.hatch_unit = t1.community_id
+        WHERE t.hatch_unit_type = 2 AND t.`status` = 1 AND t1.street_id = #{streetId}
+        UNION ALL
+        SELECT id, `name`, 2 AS hatchSchedule, null AS affiliated_unit_name
+        FROM com_act_social_org_hatch
+        WHERE hatch_unit_type = 1 AND `status` = 1 AND hatch_unit = #{streetId}
+        UNION ALl
+        SELECT t.id, t.`name`, 3 AS hatchSchedule, null AS affiliated_unit_name
+        FROM com_act_social_org_hatch t
+                 LEFT JOIN com_act t1 ON t.hatch_unit = t1.community_id
+        WHERE t.hatch_unit_type = 2 AND t.`status` = 2 AND t1.street_id = #{streetId}
+        UNION ALL
+        SELECT id, `name`, 3 AS hatchSchedule, null AS affiliated_unit_name
+        FROM com_act_social_org_hatch
+        WHERE hatch_unit_type = 1 AND `status` = 2 AND hatch_unit = #{streetId}
+        UNION ALL
+        SELECT t.id, t.`name`, 4 AS hatchSchedule, affiliated_unit_name
+        FROM com_act_social_org t
+                 LEFT JOIN com_act t1 ON t.affiliated_unit = t1.community_id
+        WHERE t.build_type = 1 AND t.is_society = 1 AND t.affiliated_unit_type = 2 AND t.`status` = 1 AND t1.street_id = #{streetId}
+        UNION ALL
+        SELECT id, `name`, 4 AS hatchSchedule, affiliated_unit_name
+        FROM com_act_social_org
+        WHERE build_type = 1 AND is_society = 1 AND affiliated_unit_type = 1 AND `status` = 1 AND affiliated_unit = #{streetId}
+    </select>
+
+    <select id="pageSocialOrgList" resultType="com.panzhihua.common.model.vos.community.ComActSocialOrgVO">
+        SELECT t.id, t.`name`, t.company_type, t.attach_url, t.streetName, t.create_at, t.service_type,
+               (SELECT COUNT(id) FROM com_act_social_member WHERE org_id = t.id) AS staffCount,
+               (SELECT COUNT(id) FROM com_act_social_project WHERE responsibility_type = 3 AND responsibility_id = t.id) AS undertakeProjectNum,
+               (SELECT COUNT(id) FROM com_act_activity WHERE `type` = 4 AND project_id IN (
+                   SELECT id FROM com_act_social_project WHERE responsibility_type = 3 AND responsibility_id = t.id)
+               ) AS startActNum
+        FROM (
+                 SELECT t.*, t2.`name` AS streetName
+                 FROM com_act_social_org t
+                          LEFT JOIN com_act t1 ON t.affiliated_unit = t1.community_id
+                          LEFT JOIN com_street t2 ON t1.street_id = t2.street_id
+                 WHERE t.is_society = 1 AND t.affiliated_unit_type = 2 AND t.`status` = 1 AND t1.street_id = #{streetId}
+                 UNION ALL
+                 SELECT t.*, t1.`name` AS streetName
+                 FROM com_act_social_org t
+                          LEFT JOIN com_street t1 ON t.affiliated_unit = t1.street_id
+                 WHERE t.is_society = 1 AND t.affiliated_unit_type = 1 AND t.`status` = 1 AND t.affiliated_unit = #{streetId}) t
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialProjectMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialProjectMapper.xml
new file mode 100644
index 0000000..3af5a41
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialProjectMapper.xml
@@ -0,0 +1,202 @@
+<?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.ComActSocialProjectDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComActSocialProject" id="ComActSocialProjectBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="name" column="name"/>
+        <result property="type" column="type"/>
+        <result property="status" column="status"/>
+        <result property="createTime" column="create_time"/>
+        <result property="communityId" column="community_id"/>
+        <result property="streetId" column="street_id"/>
+        <result property="responsibility" column="responsibility"/>
+        <result property="parentId" column="parent_id"/>
+        <result property="url" column="url"/>
+        <result property="image" column="image"/>
+        <result property="content" column="content"/>
+        <result property="phone" column="phone"/>
+    </resultMap>
+
+    <select id="pageList" resultType="com.panzhihua.common.model.vos.community.social.SocialProjectVO">
+        select t.*,t1.name as columnName,t2.name as secondColumnName from com_act_social_project t
+        left join com_act_column t1 on t.column_id = t1.id
+        left join com_act_column t2 on t.second_column_id = t2.id
+        <where>
+            1=1
+            <if test="commonPage.paramId2==null">
+                <if test="commonPage.orgId != null">
+                    AND t.responsibility_type = 3 AND t.responsibility_id = #{commonPage.orgId}
+                </if>
+                <if test="commonPage.orgId == null">
+                    <if test="commonPage.communityId !=0 and commonPage.communityId !=null">
+                        and t.responsibility_type = 2 AND t.responsibility_id =#{commonPage.communityId}
+                    </if>
+                    <if test="commonPage.streetId !=0 and commonPage.streetId !=null">
+                        and (t.street_id =#{commonPage.streetId} OR (t.responsibility_type = 1 AND t.responsibility_id =#{commonPage.streetId}))
+                    </if>
+                </if>
+            </if>
+            <if test="commonPage.isPublicity == 1">
+                and t.is_publicity = 1
+            </if>
+            <if test="commonPage.paramId2!=null">
+                and (t.street_id = #{commonPage.streetId} or t.community_id =#{commonPage.communityId})
+            </if>
+            <if test="commonPage.status !=null">
+                and t.status =#{commonPage.status}
+            </if>
+            <if test="commonPage.type !=null">
+                and t.type =#{commonPage.type}
+            </if>
+            <if test="commonPage.keyword !=null and commonPage.keyword !=''">
+                and (t.name like concat('%',#{commonPage.keyword},'%') or responsibility like
+                concat('%',#{commonPage.keyword},'%') )
+            </if>
+            <if test="commonPage.beginTime !=null">
+                and t.create_time >= #{commonPage.beginTime}
+            </if>
+            <if test="commonPage.endTime !=null">
+                and #{commonPage.endTime} >= t.create_time
+            </if>
+            <if test="commonPage.paramId!=null and commonPage.paramId !=0">
+                and t.parent_id = #{commonPage.paramId}
+            </if>
+            <if test="commonPage.paramId ==0 and commonPage.streetId!=null">
+                and t.parent_id = #{commonPage.paramId}
+            </if>
+            <if test="commonPage.columnId !=null">
+                and t.column_id = #{commonPage.columnId}
+            </if>
+            <if test="commonPage.columnId !=null">
+                and t.column_id = #{commonPage.columnId}
+            </if>
+            <if test="commonPage.secondColumnId !=null">
+                and t.second_column_id = #{commonPage.secondColumnId}
+            </if>
+        </where>
+        order by t.create_time desc
+    </select>
+
+    <select id="getByApplet" resultType="com.panzhihua.common.model.vos.community.social.SocialProjectVO">
+        select t.*, t1.phone as streetPhone, t2.name as columnName, t3.name as secondColumnName,t1.name as streetName,t4.name as communityName,t4.contacts_phone as communityPhone
+        from com_act_social_project t
+                 LEFT JOIN com_street t1 on t.street_id = t1.street_id
+                 LEFT JOIN com_act_column t2 on t.column_id = t2.id
+                 LEFT JOIN com_act_column t3 on t.second_column_id = t3.id
+                 LEFT JOIN com_act  t4 on t.community_id = t4.community_id
+        where t.id = #{id}
+    </select>
+
+    <select id="selectBaseInfo" resultType="com.panzhihua.common.model.vos.community.bigscreen.BigScreenHmkProjectInfo">
+        select (select count(*) from com_act_social_project where street_id =15 <if test="communityId!=null">and
+        community_id = #{communityId}</if>) count,
+        (select count(*) from com_act_social_project where street_id =15 and status >=2 <if test="communityId!=null">and
+        community_id = #{communityId}</if>) assigned,
+        (select count(*) from com_act_social_project where street_id =15 and 1 >=status <if test="communityId!=null">and
+        community_id = #{communityId}</if>) assign
+    </select>
+
+    <select id="selectType" resultType="com.panzhihua.common.model.vos.community.bigscreen.BigScreenHmkProjectTypeInfo">
+        select count(id) as count,type as name from com_act_social_project where street_id = 15
+        <if test="orgName !=null and orgName!=''">
+            and responsibility=#{orgName}
+        </if>
+        <if test="communityId !=null">
+            and community_id=#{communityId}
+        </if>
+        GROUP BY type
+    </select>
+
+    <select id="selectActivity" resultType="integer">
+        select count(*) from com_act_activity
+        <where>
+            is_project = 1
+            <if test="type =1">
+                and volunteer_max > 0
+            </if>
+            <if test="type =2">
+                and volunteer_max = 0
+            </if>
+            <if test="communityId !=null">
+                and community_id = #{communityId}
+            </if>
+        </where>
+    </select>
+
+    <select id="selectIndexBaseInfo"
+            resultType="com.panzhihua.common.model.vos.community.bigscreen.BigScreenHmkBaseInfo">
+        select (select count(*) from com_act_social_project where street_id = 15) projectCount,
+               (select count(*) from com_act_activity where is_project = 1)       activityCount,
+               (select count(*) from com_act_social_worker where street_id = 15)  socialWorkerCount,
+               (select count(*) from com_mng_population where street_id = 15)     userCount,
+               (select count(*) from com_act_social_org where street_id = 15)     socialOrgCount,
+               (select count(*) from com_act_social_worker_service)               serviceCount
+    </select>
+
+    <select id="selectActivityCountMonth"
+            resultType="com.panzhihua.common.model.vos.community.bigscreen.BigScreenActivityLine">
+        select (select count(id) from com_act_activity where status!=6 and is_project = 1 and publish_at >= DATE_FORMAT( CONCAT(#{year}, '-',
+               #{date}, '-00'), '%Y-%m-00 00:00:00') and DATE_FORMAT( LAST_DAY(CONCAT(
+               #{year}, '-',
+               #{date}, '-00')), '%Y-%m-%d 23:59:59') >=publish_at) y,
+            (
+        select count(id)
+        from com_act_activity
+        where status!=6
+          and is_project = 1
+          and DATE_FORMAT( LAST_DAY(CONCAT(#{year}
+            , '-'
+            , #{date}
+            , '-00'))
+            , '%Y-%m-%d 23:59:59') >=publish_at) countY
+    </select>
+
+    <select id="selectByLevel" resultType="com.panzhihua.common.model.vos.community.social.SocialProjectVO">
+        select t.*, t1.name as columnName, t2.name as secondColumnName
+        from com_act_social_project t
+                 left join com_act_column t1 on t.column_id = t1.id
+                 left join com_act_column t2 on t.second_column_id = t2.id
+        where t.id = #{id}
+    </select>
+    <select id="pageProjectSignList" resultType="com.panzhihua.common.model.vos.community.ComActSocialOrgVO">
+        SELECT t1.id, t1.`name`, t1.corporation_name, t1.contact_phone, t1.company_type, t1.attach_url, t3.`name` AS serviceName
+        FROM com_act_social_org t1
+                 LEFT JOIN com_act_social_project_sign t2 ON t1.id = t2.org_id
+                 LEFT JOIN com_act_column t3 ON t1.service_type = t3.id
+        WHERE t2.project_id = #{pageProjectSignListDTO.projectId}
+        ORDER BY t2.created_at DESC
+    </select>
+    <select id="pageProjectWhichIsSignedByUser"
+            resultType="com.panzhihua.common.model.vos.community.social.SocialProjectVO">
+        SELECT t.*, t2.name AS columnName, t3.name AS secondColumnName
+        FROM com_act_social_project t
+                 INNER JOIN com_act_social_project_sign t1 ON t.id = t1.project_id
+                 LEFT JOIN com_act_column t2 ON t.column_id = t2.id
+                 LEFT JOIN com_act_column t3 ON t.second_column_id = t3.id
+        WHERE t1.user_id = #{pageProjectDTO.userId}
+        ORDER BY t1.created_at DESC
+    </select>
+
+    <select id="pageSocialProjectList"
+            resultType="com.panzhihua.common.model.vos.community.social.SocialProjectVO">
+        SELECT id, `name`, image
+        FROM com_act_social_project
+        WHERE street_id = #{streetId}
+    </select>
+    <select id="getFiveAssociationsBaseData"
+            resultType="com.panzhihua.common.model.vos.community.bigscreen.BigScreenFiveAssociationsStatisticsInfo">
+        SELECT
+                (SELECT COUNT(community_id) FROM com_act WHERE street_id = #{streetId}) AS communityNum,
+                (SELECT COUNT(id) FROM (SELECT id FROM com_act_social_org t
+                                                           LEFT JOIN com_act t1 ON t.affiliated_unit = t1.community_id
+                                        WHERE t.is_society = 1 AND t.affiliated_unit_type = 2 AND t.`status` = 1 AND t1.street_id = #{streetId}
+                                        UNION ALL
+                                        SELECT id FROM com_act_social_org
+                                        WHERE is_society = 1 AND affiliated_unit_type = 1 AND `status` = 1 AND affiliated_unit = #{streetId}) temp) AS socialOrgNum,
+                (SELECT COUNT(id) FROM com_act_enterprise WHERE street_id = #{streetId}) AS enterpriseNum,
+                (SELECT COUNT(id) FROM com_act_social_worker WHERE community_id = ${communityId} OR street_id = #{streetId}) AS socialWorkerNum,
+                (SELECT COUNT(id) FROM com_act_social_project WHERE responsibility_type = 3 AND responsibility_id IN (SELECT id FROM com_act_social_org WHERE community_id = ${communityId} AND is_society = 1)) AS acceptProjectTotal,
+                (SELECT COUNT(id) FROM com_mng_volunteer_mng WHERE community_id = ${communityId} AND state = 2) AS volunteerNum
+    </select>
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialProjectMemberMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialProjectMemberMapper.xml
new file mode 100644
index 0000000..3639241
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialProjectMemberMapper.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_community.dao.ComActSocialProjectMemberDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComActSocialProjectMember"
+               id="ComActSocialProjectMemberBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="name" column="name"/>
+        <result property="age" column="age"/>
+        <result property="image" column="image"/>
+        <result property="phone" column="phone"/>
+        <result property="type" column="type"/>
+        <result property="createTime" column="create_time"/>
+        <result property="projectId" column="project_id"/>
+        <result property="communityId" column="community_id"/>
+    </resultMap>
+
+    <select id="pageList" resultType="com.panzhihua.common.model.vos.community.social.ComActSocialProjectMemberVO">
+        select t.*,t1.name as communityName from com_act_social_project_member t left join com_act t1 on t.community_id = t1.community_id where t.project_id = #{commonPage.paramId}
+        <if test="commonPage.type !=null">
+            and t.type=#{commonPage.type}
+        </if>
+        order by t.create_time desc
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialProjectPublicityMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialProjectPublicityMapper.xml
new file mode 100644
index 0000000..88b52da
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialProjectPublicityMapper.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.ComActSocialProjectPublicityDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComActSocialProjectPublicity"
+               id="ComActSocialProjectPublicityBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="title" column="title"/>
+        <result property="image" column="image"/>
+        <result property="content" column="content"/>
+        <result property="projectId" column="project_id"/>
+        <result property="createTime" column="create_time"/>
+        <result property="views" column="views"/>
+    </resultMap>
+
+    <select id="pageList" resultType="com.panzhihua.common.model.vos.community.social.ComActSocialProjectPublicityVO">
+        select t.*,t1.name,t1.responsibility
+        from com_act_social_project_publicity t
+        left join com_act_social_project t1 on t.project_id = t1.id
+        <if test="commonPage.streetId != null">
+            JOIN (SELECT * FROM com_act_social_project WHERE (street_id = #{commonPage.streetId} OR community_id = #{commonPage.communityId}) AND `status` =3) t2 ON t.project_id = t2.id
+        </if>
+        <where>
+            <if test="commonPage.paramId !=null">
+                and t.project_id =#{commonPage.paramId}
+            </if>
+        </where>
+        order by is_top desc,create_time desc
+    </select>
+
+    <select id="selectOne" resultType="com.panzhihua.common.model.vos.community.social.ComActSocialProjectPublicityVO">
+        select t.*,t1.name,t1.responsibility,t2.name as streetName from com_act_social_project_publicity t left join com_act_social_project t1 on t.project_id = t1.id left join com_street t2 on t1.street_id = t2.street_id where t.id = #{id}
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialProjectScheduleMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialProjectScheduleMapper.xml
new file mode 100644
index 0000000..98b5d0f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialProjectScheduleMapper.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_community.dao.ComActSocialProjectScheduleDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComActSocialProjectSchedule"
+               id="ComActSocialProjectScheduleBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="title" column="title"/>
+        <result property="content" column="content"/>
+        <result property="createTime" column="create_time"/>
+        <result property="projectId" column="project_id"/>
+    </resultMap>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialProjectSignMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialProjectSignMapper.xml
new file mode 100644
index 0000000..919efe1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialProjectSignMapper.xml
@@ -0,0 +1,32 @@
+<?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.ComActSocialProjectSignDAO">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComActSocialProjectSign" id="ComActSocialProjectSignMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="orgId" column="org_id" jdbcType="INTEGER"/>
+        <result property="projectId" column="project_id" jdbcType="INTEGER"/>
+        <result property="createdAt" column="created_at" jdbcType="TIMESTAMP"/>
+        <result property="userId" column="user_id" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <!-- 批量插入 -->
+    <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.com_act_social_project_sign(org_id, project_id, created_at, user_id)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+        (#{entity.orgId}, #{entity.projectId}, #{entity.createdAt}, #{entity.userId})
+        </foreach>
+    </insert>
+    <!-- 批量插入或按主键更新 -->
+    <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.com_act_social_project_sign(org_id, project_id, created_at, user_id)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.orgId}, #{entity.projectId}, #{entity.createdAt}, #{entity.userId})
+        </foreach>
+        on duplicate key update
+         org_id = values(org_id) , project_id = values(project_id) , created_at = values(created_at) , user_id = values(user_id)     </insert>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialWorkerMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialWorkerMapper.xml
new file mode 100644
index 0000000..62dbe5f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialWorkerMapper.xml
@@ -0,0 +1,149 @@
+<?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.ComActSocialWorkerDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComActSocialWorker" id="ComActSocialWorkerBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="socialOrgId" column="social_org_id"/>
+        <result property="name" column="name"/>
+        <result property="telephone" column="telephone"/>
+        <result property="gen" column="gen"/>
+        <result property="streetId" column="street_id"/>
+        <result property="communityId" column="community_id"/>
+        <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="idCard" column="id_card"/>
+        <result property="skillType" column="skill_type"/>
+        <result property="joinTime" column="join_time"/>
+        <result property="address" column="address"/>
+        <result property="image" column="image"/>
+    </resultMap>
+
+    <!-- 分页查询 -->
+    <select id="findByPage" resultType="com.panzhihua.common.model.vos.civil.ComActSocialWorkerVO"
+            parameterType="com.panzhihua.common.model.dtos.civil.PageComActSocialWorkerDTO">
+        SELECT a.*,b.name as socialOrgId,c.name as communityName,e.name as streetId
+        FROM com_act_social_worker a
+        left join com_act_social_org b on a.social_org_id = b.id
+        left join com_act c on a.community_id = c.community_id
+        left join com_street e on c.street_id = e.street_id
+        <if test="pageComActSocialWorkerDTO.skillType != null">
+            JOIN mysql.help_topic h ON h.help_topic_id &lt; ( length( a.skill_type ) - length( REPLACE ( a.skill_type, ',', '' ))+ 1 )
+        </if>
+        <where>
+            <if test="pageComActSocialWorkerDTO.skillType != null">
+                AND substring_index( substring_index( a.skill_type, ',', h.help_topic_id + 1 ), ',',- 1 ) = #{pageComActSocialWorkerDTO.skillType}
+            </if>
+            <if test="pageComActSocialWorkerDTO.id!=null">
+                AND a.id = #{pageComActSocialWorkerDTO.id}
+            </if>
+            <if test="pageComActSocialWorkerDTO.socialOrgId!=null">
+                AND a.social_org_id = #{pageComActSocialWorkerDTO.socialOrgId}
+            </if>
+            <if test="pageComActSocialWorkerDTO.name!=null and pageComActSocialWorkerDTO.name!=''">
+                AND a.name like concat('%',#{pageComActSocialWorkerDTO.name},'%')
+            </if>
+            <if test="pageComActSocialWorkerDTO.keyword!=null and pageComActSocialWorkerDTO.keyword!=''">
+                AND (a.name like concat('%',#{pageComActSocialWorkerDTO.keyword},'%') or a.telephone like
+                concat('%',#{pageComActSocialWorkerDTO.keyword},'%') )
+            </if>
+            <if test="pageComActSocialWorkerDTO.ageBegin!=null">
+                AND a.age>=#{pageComActSocialWorkerDTO.ageBegin}
+            </if>
+            <if test="pageComActSocialWorkerDTO.ageEnd!=null">
+                AND #{pageComActSocialWorkerDTO.ageEnd} >= a.age
+            </if>
+            <if test="pageComActSocialWorkerDTO.telephone!=null">
+                AND a.telephone = #{pageComActSocialWorkerDTO.telephone}
+            </if>
+            <if test="pageComActSocialWorkerDTO.gen!=null">
+                AND a.gen = #{pageComActSocialWorkerDTO.gen}
+            </if>
+            <if test="pageComActSocialWorkerDTO.streetId!=null">
+                AND e.street_id = #{pageComActSocialWorkerDTO.streetId}
+            </if>
+            <if test="pageComActSocialWorkerDTO.communityId!=null and pageComActSocialWorkerDTO.communityId!=0">
+                AND a.community_id = #{pageComActSocialWorkerDTO.communityId}
+            </if>
+            <if test="pageComActSocialWorkerDTO.createBy!=null">
+                AND a.create_by = #{pageComActSocialWorkerDTO.createBy}
+            </if>
+            <if test="pageComActSocialWorkerDTO.updateBy!=null">
+                AND a.update_by = #{pageComActSocialWorkerDTO.updateBy}
+            </if>
+        </where>
+        order by create_at desc
+    </select>
+
+    <select id="queryAll" resultType="com.panzhihua.common.model.dtos.civil.ComActSocialWorkerExcelVO">
+        SELECT a.social_org_id,a.name as
+        name,a.birthday,a.telephone,a.gen,a.social_worker_code,a.skill_field,a.business_scope,b.name as
+        socialOrgId,c.name as communityId,e.name as streetId
+        FROM com_act_social_worker a left join com_act_social_org b on a.social_org_id = b.id
+        left join com_act c on a.community_id = c.community_id
+        left join com_street e on a.street_id = e.street_id
+        <where>
+            <if test="socialOrgId!=null">
+                AND a.social_org_id = #{socialOrgId}
+            </if>
+            <if test="name!=null and name !=''">
+                AND a.name like concat('%',#{name},'%')
+            </if>
+            <if test="streetId!=null">
+                AND a.street_id = #{streetId}
+            </if>
+            <if test="communityId!=null and communityId!=0">
+                AND a.community_id = #{communityId}
+            </if>
+        </where>
+    </select>
+
+    <select id="selectType" resultType="Integer">
+        select count(id) from com_act_social_worker where street_id = 15
+        <if test="type ==1">
+            and 30 >age
+        </if>
+        <if test="type ==2">
+            and 59 >=age and age >=30
+        </if>
+        <if test="type ==3">
+            and age >=60
+        </if>
+        <if test="communityId !=null">
+            and community_id=#{communityId}
+        </if>
+    </select>
+
+    <select id="selectSkillType"
+            resultType="com.panzhihua.common.model.vos.community.bigscreen.BigScreenHmkProjectTypeInfo">
+        select count(*) count,t1.name from com_act_social_worker t INNER JOIN com_act_column t1 on t.skill_type = t1.id
+        where t.street_id = 15 <if test="communityId!=null">and t.community_id = #{communityId}</if> GROUP BY t1.id
+    </select>
+
+    <select id="selectActivity" resultType="com.panzhihua.common.model.vos.civil.ComActSocialWorkerVO">
+        select t.*
+        from com_act_social_worker t
+                 LEFT JOIN sys_user t1 on t.telephone = t1.phone
+        where t1.user_id in (select distinct user_id from com_act_act_regist where activity_id = #{id})
+    </select>
+
+    <select id="selectOneById" resultType="com.panzhihua.common.model.vos.civil.ComActSocialWorkerVO">
+        SELECT a.*, b.name as socialOrgId, c.name as communityName, e.name as streetId
+        FROM com_act_social_worker a
+                 left join com_act_social_org b on a.social_org_id = b.id
+                 left join com_act c on a.community_id = c.community_id
+                 left join com_street e on c.street_id = e.street_id
+        where a.id =#{id}
+    </select>
+    <select id="selectIncludeSkillWorkerList"
+            resultType="com.panzhihua.service_community.entity.ComActSocialWorker">
+        SELECT
+            a.*
+        FROM
+            com_act_social_worker a
+                JOIN mysql.help_topic b ON b.help_topic_id &lt; ( length( a.skill_type ) - length( REPLACE ( a.skill_type, ',', '' ))+ 1 )
+        WHERE substring_index( substring_index( a.skill_type, ',', b.help_topic_id + 1 ), ',',- 1 ) = #{id}
+    </select>
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialWorkerServiceMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialWorkerServiceMapper.xml
new file mode 100644
index 0000000..a0bcaaa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActSocialWorkerServiceMapper.xml
@@ -0,0 +1,38 @@
+<?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.ComActSocialWorkerServiceDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComActSocialWorkerService"
+               id="ComActSocialWorkerServiceBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="workerId" column="worker_id"/>
+        <result property="senderId" column="sender_id"/>
+        <result property="status" column="status"/>
+        <result property="serviceId" column="service_id"/>
+        <result property="serviceType" column="service_type"/>
+        <result property="createTime" column="create_time"/>
+        <result property="resultContent" column="result_content"/>
+        <result property="resultUrl" column="result_url"/>
+        <result property="score" column="score"/>
+    </resultMap>
+
+    <select id="pageList" resultType="com.panzhihua.common.model.vos.community.social.ComActSocialWorkerServiceVO">
+        select t.*,t1.name as senderName from com_act_social_worker_service t
+        left join  sys_user t1 on t.sender_id = t1.user_id
+        left join  com_act_social_worker t2 on t.worker_id = t2.id
+        LEFT JOIN  sys_user t3 on t2.telephone = t3.phone
+        where 1=1
+        <if test="commonPage.userId!=null">
+            and t3.user_id = #{commonPage.userId}
+        </if>
+        <if test="commonPage.status!=null">
+            and t.status = #{commonPage.status}
+        </if>
+        order by t.create_time desc
+    </select>
+
+    <select id="getById" resultType="com.panzhihua.common.model.vos.community.social.ComActSocialWorkerServiceVO">
+        select t.*,t1.name as senderName from com_act_social_worker_service t left join sys_user t1 on t.sender_id = t1.user_id where t.id = #{id}
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActUserWalletChangeDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActUserWalletChangeDOMapper.xml
new file mode 100644
index 0000000..4311994
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActUserWalletChangeDOMapper.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_community.dao.ComActUserWalletChangeMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActUserWalletChangeDO">
+        <id column="id" property="id" />
+        <result column="user_id" property="userId" />
+        <result column="community_id" property="communityId" />
+        <result column="income_amount_top" property="incomeAmountTop" />
+        <result column="income_amount_back" property="incomeAmountBack" />
+        <result column="available_amount_top" property="availableAmountTop" />
+        <result column="available_amount_back" property="availableAmountBack" />
+        <result column="settlement_amount_top" property="settlementAmountTop" />
+        <result column="settlement_amount_back" property="settlementAmountBack" />
+        <result column="service_id" property="serviceId" />
+        <result column="create_at" property="createAt" />
+        <result column="wallet_id" property="walletId" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, user_id, community_id, wallet_id, income_amount_top, income_amount_back, available_amount_top, available_amount_back, settlement_amount_top, settlement_amount_back, service_id, create_at
+    </sql>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActUserWalletDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActUserWalletDOMapper.xml
new file mode 100644
index 0000000..3b08c38
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActUserWalletDOMapper.xml
@@ -0,0 +1,92 @@
+<?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.ComActUserWalletMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActUserWalletDO">
+        <id column="id" property="id" />
+        <result column="user_id" property="userId" />
+        <result column="community_id" property="communityId" />
+        <result column="income_amount" property="incomeAmount" />
+        <result column="available_amount" property="availableAmount" />
+        <result column="settlement_amount" property="settlementAmount" />
+        <result column="easy_count" property="easyCount" />
+        <result column="create_at" property="createAt" />
+        <result column="update_at" property="updateAt" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, user_id, community_id, income_amount, available_amount, settlement_amount, easy_count, create_at, update_at
+    </sql>
+
+    <select id="getCommunityName" resultType="Map">
+        SELECT
+            ca.`name`,
+            sua.content
+        FROM
+            com_act AS ca
+            LEFT JOIN sys_user_agreement AS sua ON sua.community_id = ca.community_id
+        WHERE
+            ca.community_id = ${communityId} and sua.type = #{type}
+    </select>
+
+    <select id="getAgreementContent" resultType="Map">
+        SELECT
+            ca.`name`,
+            sua.content
+        FROM
+            sys_user_agreement AS sua
+            LEFT JOIN com_act AS ca ON sua.community_id = ca.community_id
+        WHERE
+            sua.community_id = ${communityId} and sua.type = #{type}
+    </select>
+
+    <select id="getWalletRanking" resultType="com.panzhihua.common.model.vos.community.wallet.ComActWalletRankingVO">
+        SELECT
+            su.`name` as userName,
+            su.nick_name,
+            su.image_url,
+            cauw.income_amount,
+            (select count(id) from com_act_easy_photo where sponsor_id = cauw.user_id and community_id = ${walletTradeDTO.communityId}) as easyCount
+        FROM
+            com_act_user_wallet AS cauw
+            LEFT JOIN sys_user AS su ON su.user_id = cauw.user_id
+            where cauw.community_id = ${walletTradeDTO.communityId}
+        ORDER BY
+            cauw.income_amount DESC
+    </select>
+
+    <select id="getUserWalletList" parameterType="com.panzhihua.common.model.dtos.community.wallet.PageComActWalletAdminDTO"
+            resultType="com.panzhihua.common.model.vos.community.wallet.ComActWalletAdminVO">
+        SELECT
+            cauw.id,
+            su.user_id,
+            su.`name` AS userName,
+            su.nick_name,
+            su.phone,
+            cauw.income_amount,
+            cauw.available_amount,
+            cauw.settlement_amount
+        FROM
+            com_act_user_wallet AS cauw
+            LEFT JOIN sys_user AS su ON su.user_id = cauw.user_id
+        <where>
+            <if test="pageWalletAdminDTO.communityId != null">
+                AND cauw.community_id = ${pageWalletAdminDTO.communityId}
+            </if>
+            <if test="pageWalletAdminDTO.name != null and pageWalletAdminDTO.name != &quot;&quot;">
+                AND (su.nick_name like concat (#{pageWalletAdminDTO.name},'%') or su.name like concat (#{pageWalletAdminDTO.name},'%'))
+            </if>
+            <if test="pageWalletAdminDTO.phone != null and pageWalletAdminDTO.phone != &quot;&quot;">
+                AND su.phone = #{pageWalletAdminDTO.phone}
+            </if>
+        </where>
+        order by cauw.create_at desc
+    </select>
+
+    <insert id="insertSysAgreement">
+        insert into sys_user_agreement(`type`,content,create_at,`name`,community_id) values (#{type},#{content},now(),#{name},#{communityId})
+    </insert>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActUserWalletTradeDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActUserWalletTradeDOMapper.xml
new file mode 100644
index 0000000..8dfe8b2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActUserWalletTradeDOMapper.xml
@@ -0,0 +1,273 @@
+<?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.ComActUserWalletTradeMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComActUserWalletTradeDO">
+        <id column="id" property="id" />
+        <result column="user_id" property="userId" />
+        <result column="community_id" property="communityId" />
+        <result column="service_id" property="serviceId" />
+        <result column="amount" property="amount" />
+        <result column="type" property="type" />
+        <result column="remark" property="remark" />
+        <result column="create_at" property="createAt" />
+        <result column="create_by" property="createBy" />
+        <result column="wallet_id" property="walletId" />
+        <result column="change_type" property="changeType" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, user_id, community_id, service_id, amount, type, remark, create_at, create_by, wallet_id, change_type
+    </sql>
+
+    <select id="getUserWalletTradeList" resultType="com.panzhihua.common.model.vos.community.wallet.ComActWalletTradeVO"
+            parameterType="com.panzhihua.common.model.dtos.community.wallet.PageComActWalletTradeDTO">
+        SELECT
+            cauwt.id,
+            ca.`name` AS communityName,
+            cauwt.type,
+            cauwt.remark,
+            cauwt.change_type,
+            cauwt.amount,
+            cauwt.create_at
+        FROM
+            com_act_user_wallet_trade AS cauwt
+            LEFT JOIN com_act AS ca ON ca.community_id = cauwt.community_id
+            where cauwt.community_id = ${walletTradeDTO.communityId}
+            and cauwt.user_id = #{walletTradeDTO.userId}
+
+            order by cauwt.create_at desc
+    </select>
+
+    <select id="getUserWalletTradeAdmin" parameterType="com.panzhihua.common.model.dtos.community.wallet.PageComActWalletTradeAdminDTO"
+            resultType="com.panzhihua.common.model.vos.community.wallet.ComActWalletTradeAdminVO">
+        SELECT
+            cauwt.id,
+            su.user_id,
+            cauwt.amount,
+            cauwt.service_id,
+            cauwt.remark,
+            cauwt.type,
+            su.`name` AS userName,
+            su.nick_name,
+            cauwt.change_type,
+            su.phone,
+            cauwt.create_at,
+            su1.`name` AS operationUserName
+        FROM
+            com_act_user_wallet_trade AS cauwt
+            LEFT JOIN sys_user AS su ON su.user_id = cauwt.user_id
+            LEFT JOIN sys_user AS su1 ON su1.user_id = cauwt.create_by
+        <where>
+            <if test="walletTradeDTO.communityId != null">
+                and cauwt.community_id = ${walletTradeDTO.communityId}
+            </if>
+            <if test="walletTradeDTO.userId != null">
+                and cauwt.user_id = #{walletTradeDTO.userId}
+            </if>
+            <if test="walletTradeDTO.type != null">
+                and cauwt.type = #{walletTradeDTO.type}
+            </if>
+            <if test="walletTradeDTO.changeType != null">
+                and cauwt.change_type = #{walletTradeDTO.changeType}
+            </if>
+            <if test="walletTradeDTO.name != null and walletTradeDTO.name != &quot;&quot;">
+                AND (su.nick_name like concat (#{walletTradeDTO.name},'%') or su.name like concat (#{walletTradeDTO.name},'%'))
+            </if>
+            <if test="walletTradeDTO.phone != null and walletTradeDTO.phone != &quot;&quot;">
+                AND su.phone like concat (#{walletTradeDTO.phone},'%')
+            </if>
+            <if test="walletTradeDTO.startTime != null and walletTradeDTO.startTime != &quot;&quot;">
+                AND cauwt.create_at <![CDATA[>=]]> #{walletTradeDTO.startTime}
+            </if>
+            <if test="walletTradeDTO.endTime != null and walletTradeDTO.endTime != &quot;&quot;">
+                AND cauwt.create_at <![CDATA[<=]]> #{walletTradeDTO.endTime}
+            </if>
+            <if test="walletTradeDTO.keyWord != null and walletTradeDTO.keyWord != &quot;&quot;">
+                AND (su.phone like concat (#{walletTradeDTO.keyWord},'%') or su.name like concat (#{walletTradeDTO.keyWord},'%'))
+            </if>
+            <if test="walletTradeDTO.expenditureKeyWord != null and walletTradeDTO.expenditureKeyWord != &quot;&quot;">
+                AND (cauwt.remark like concat (#{walletTradeDTO.expenditureKeyWord},'%') or su1.name like concat (#{walletTradeDTO.expenditureKeyWord},'%'))
+            </if>
+            <if test="walletTradeDTO.remark != null and walletTradeDTO.remark != &quot;&quot;">
+                AND cauwt.remark like concat (#{walletTradeDTO.remark},'%')
+            </if>
+        </where>
+        <if test="walletTradeDTO.sort == null">
+            order by cauwt.create_at desc
+        </if>
+        <if test="walletTradeDTO.sort != null and walletTradeDTO.sort == 1">
+            order by cauwt.amount asc
+        </if>
+        <if test="walletTradeDTO.sort != null and walletTradeDTO.sort == 2">
+            order by cauwt.amount desc
+        </if>
+
+    </select>
+
+    <select id="getTradeUserTotalWalletTradeAdmin" resultType="java.math.BigDecimal"
+            parameterType="com.panzhihua.common.model.dtos.community.wallet.PageComActWalletTradeAdminDTO">
+        SELECT
+        sum(cauwt.amount)
+        FROM
+        com_act_user_wallet_trade AS cauwt
+        LEFT JOIN sys_user AS su ON su.user_id = cauwt.user_id
+        LEFT JOIN sys_user AS su1 ON su1.user_id = cauwt.create_by
+        <where>
+            <if test="walletTradeDTO.communityId != null">
+                and cauwt.community_id = ${walletTradeDTO.communityId}
+            </if>
+            <if test="walletTradeDTO.userId != null">
+                and cauwt.user_id = #{walletTradeDTO.userId}
+            </if>
+            <if test="walletTradeDTO.type != null">
+                and cauwt.type = #{walletTradeDTO.type}
+            </if>
+            <if test="walletTradeDTO.changeType != null">
+                and cauwt.change_type = #{walletTradeDTO.changeType}
+            </if>
+            <if test="walletTradeDTO.keyWord != null and walletTradeDTO.keyWord != &quot;&quot;">
+                AND (su.phone like concat (#{walletTradeDTO.keyWord},'%') or su.name like concat (#{walletTradeDTO.keyWord},'%'))
+            </if>
+            <if test="walletTradeDTO.expenditureKeyWord != null and walletTradeDTO.expenditureKeyWord != &quot;&quot;">
+                AND (cauwt.remark like concat (#{walletTradeDTO.expenditureKeyWord},'%') or su1.name like concat (#{walletTradeDTO.expenditureKeyWord},'%'))
+            </if>
+            <if test="walletTradeDTO.phone != null and walletTradeDTO.phone != &quot;&quot;">
+                AND su.phone like concat (#{walletTradeDTO.phone},'%')
+            </if>
+            <if test="walletTradeDTO.remark != null and walletTradeDTO.remark != &quot;&quot;">
+                AND cauwt.remark like concat (#{walletTradeDTO.remark},'%')
+            </if>
+            <if test="walletTradeDTO.startTime != null and walletTradeDTO.startTime != &quot;&quot;">
+                AND cauwt.create_at <![CDATA[>=]]> #{walletTradeDTO.startTime}
+            </if>
+            <if test="walletTradeDTO.endTime != null and walletTradeDTO.endTime != &quot;&quot;">
+                AND cauwt.create_at <![CDATA[<=]]> #{walletTradeDTO.endTime}
+            </if>
+        </where>
+
+        <if test="walletTradeDTO.sort == null">
+            order by cauwt.create_at desc
+        </if>
+        <if test="walletTradeDTO.sort != null and walletTradeDTO.sort == 1">
+            order by cauwt.amount asc
+        </if>
+        <if test="walletTradeDTO.sort != null and walletTradeDTO.sort == 2">
+            order by cauwt.amount desc
+        </if>
+    </select>
+
+    <select id="getTradeUserTotalWalletTradeExportAdmin" parameterType="com.panzhihua.common.model.dtos.community.wallet.PageComActWalletTradeAdminDTO"
+            resultType="com.panzhihua.common.model.vos.community.ComActUserWalletTradeExcelVO">
+        SELECT
+            cauwt.amount,su1.`name` as userName,su1.phone,cauwt.create_at,su.`name` as createBy
+        FROM
+            com_act_user_wallet_trade AS cauwt
+            LEFT JOIN sys_user AS su ON su.user_id = cauwt.create_by
+            LEFT JOIN sys_user AS su1 ON su1.user_id = cauwt.user_id
+        <where>
+            <if test="walletTradeDTO.communityId != null">
+                and cauwt.community_id = ${walletTradeDTO.communityId}
+            </if>
+            <if test="walletTradeDTO.userId != null">
+                and cauwt.user_id = #{walletTradeDTO.userId}
+            </if>
+            <if test="walletTradeDTO.type != null">
+                and cauwt.type = #{walletTradeDTO.type}
+            </if>
+            <if test="walletTradeDTO.changeType != null">
+                and cauwt.change_type = #{walletTradeDTO.changeType}
+            </if>
+            <if test="walletTradeDTO.keyWord != null and walletTradeDTO.keyWord != &quot;&quot;">
+                AND (su.phone like concat (#{walletTradeDTO.keyWord},'%') or su.name like concat (#{walletTradeDTO.keyWord},'%'))
+            </if>
+            <if test="walletTradeDTO.startTime != null and walletTradeDTO.startTime != &quot;&quot;">
+                AND cauwt.create_at <![CDATA[>=]]> #{walletTradeDTO.startTime}
+            </if>
+            <if test="walletTradeDTO.endTime != null and walletTradeDTO.endTime != &quot;&quot;">
+                AND cauwt.create_at <![CDATA[<=]]> #{walletTradeDTO.endTime}
+            </if>
+            <if test="walletTradeDTO.tradeIds != null and walletTradeDTO.tradeIds.size > 0">
+                AND cauwt.id in
+                <foreach collection='walletTradeDTO.tradeIds' item='id' index='index' open='(' close=')' separator=',' >
+                    #{id}
+                </foreach>
+            </if>
+        </where>
+
+        <if test="walletTradeDTO.sort == null">
+            order by cauwt.create_at desc
+        </if>
+        <if test="walletTradeDTO.sort != null and walletTradeDTO.sort == 1">
+            order by cauwt.amount asc
+        </if>
+        <if test="walletTradeDTO.sort != null and walletTradeDTO.sort == 2">
+            order by cauwt.amount desc
+        </if>
+
+    </select>
+
+    <select id="getTradeUserTotalJLWalletTradeExportAdmin" parameterType="com.panzhihua.common.model.dtos.community.wallet.PageComActWalletTradeAdminDTO"
+            resultType="com.panzhihua.common.model.vos.community.ComActUserWalletTradeRewardExcelVO">
+        SELECT
+        cauwt.amount,su1.`name` as userName,su1.phone,cauwt.create_at,su.`name` as createBy,cauwt.type,cauwt.remark
+        FROM
+        com_act_user_wallet_trade AS cauwt
+        LEFT JOIN sys_user AS su ON su.user_id = cauwt.create_by
+        LEFT JOIN sys_user AS su1 ON su1.user_id = cauwt.user_id
+        <where>
+            <if test="walletTradeDTO.communityId != null">
+                and cauwt.community_id = ${walletTradeDTO.communityId}
+            </if>
+            <if test="walletTradeDTO.userId != null">
+                and cauwt.user_id = #{walletTradeDTO.userId}
+            </if>
+            <if test="walletTradeDTO.type != null">
+                and cauwt.type = #{walletTradeDTO.type}
+            </if>
+            <if test="walletTradeDTO.changeType != null">
+                and cauwt.change_type = #{walletTradeDTO.changeType}
+            </if>
+            <if test="walletTradeDTO.keyWord != null and walletTradeDTO.keyWord != &quot;&quot;">
+                AND (su.phone like concat (#{walletTradeDTO.keyWord},'%') or su.name like concat (#{walletTradeDTO.keyWord},'%'))
+            </if>
+            <if test="walletTradeDTO.startTime != null and walletTradeDTO.startTime != &quot;&quot;">
+                AND cauwt.create_at <![CDATA[>=]]> #{walletTradeDTO.startTime}
+            </if>
+            <if test="walletTradeDTO.endTime != null and walletTradeDTO.endTime != &quot;&quot;">
+                AND cauwt.create_at <![CDATA[<=]]> #{walletTradeDTO.endTime}
+            </if>
+            <if test="walletTradeDTO.tradeIds != null and walletTradeDTO.tradeIds.size > 0">
+                AND cauwt.id in
+                <foreach collection='walletTradeDTO.tradeIds' item='id' index='index' open='(' close=')' separator=',' >
+                    #{id}
+                </foreach>
+            </if>
+        </where>
+
+        <if test="walletTradeDTO.sort == null">
+            order by cauwt.create_at desc
+        </if>
+        <if test="walletTradeDTO.sort != null and walletTradeDTO.sort == 1">
+            order by cauwt.amount asc
+        </if>
+        <if test="walletTradeDTO.sort != null and walletTradeDTO.sort == 2">
+            order by cauwt.amount desc
+        </if>
+
+    </select>
+
+    <select id="getTradeUserStatisticsAdmin" parameterType="com.panzhihua.common.model.dtos.community.wallet.PageComActWalletTradeAdminDTO"
+            resultType="com.panzhihua.common.model.vos.community.wallet.ComActWalletTradeStatisticsAdminVO">
+        SELECT
+            sum( amount ) as dayTotal,
+            (select sum(amount) from com_act_user_wallet_trade where community_id = ${walletTradeDTO.communityId} and change_type = #{walletTradeDTO.changeType} and create_at between timestamp(DATE_ADD(curdate(),interval -day(curdate())+1 day)) and now()) as monthTotal,
+            (select sum(amount) from com_act_user_wallet_trade where community_id = ${walletTradeDTO.communityId} and change_type = #{walletTradeDTO.changeType}) as total
+        FROM
+            com_act_user_wallet_trade
+            where community_id = ${walletTradeDTO.communityId} and change_type = #{walletTradeDTO.changeType}
+            and create_at between timestamp(date_add(curdate(), interval - 0 day)) and now()
+    </select>
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActWarehouseApplyMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActWarehouseApplyMapper.xml
new file mode 100644
index 0000000..403e0f4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActWarehouseApplyMapper.xml
@@ -0,0 +1,70 @@
+<?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.ComActWarehouseApplyDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComActWarehouseApply"
+               id="ComActWarehouseApplyBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="goodsId" column="goods_id"/>
+        <result property="goodsNum" column="goods_num"/>
+        <result property="reserveTime" column="reserve_time"/>
+        <result property="actualTime" column="actual_time"/>
+        <result property="reason" column="reason"/>
+        <result property="receiveUrl" column="receive_url"/>
+        <result property="createTime" column="create_time"/>
+        <result property="status" column="status"/>
+        <result property="applyUserId" column="apply_user_id"/>
+        <result property="applyName" column="apply_name"/>
+        <result property="applyPhone" column="apply_phone"/>
+        <result property="solveUserId" column="solve_user_id"/>
+        <result property="solveTime" column="solve_time"/>
+        <result property="solveContent" column="solve_content"/>
+        <result property="writeOffUserId" column="write_off_user_id"/>
+        <result property="cancelTime" column="cancel_time"/>
+        <result property="communityId" column="community_id"/>
+    </resultMap>
+
+
+    <select id="queryAll" resultType="com.panzhihua.common.model.vos.community.warehouse.ComActWarehouseApplyVO">
+        select t.*,t1.name as donateName,t1.item,t1.image,t1.phone as donatePhone,t2.name as writeOffUserName from com_act_warehouse_apply t inner join com_act_warehouse_donates t1 on t.goods_id = t1.id left join sys_user t2 on t.write_off_user_id = t2.user_id
+        <where>
+            1=1
+            <if test="commonPage.paramId !=null">
+                and t.community_id = ${commonPage.paramId}
+            </if>
+            <if test="commonPage.status !=null">
+                and t.status=#{commonPage.status}
+            </if>
+            <if test="commonPage.paramId2 != null">
+                and  t.goods_id = #{commonPage.paramId2}
+            </if>
+            <if test="commonPage.keyword !=null and commonPage.keyword !=''">
+                and (t.id like concat('%',#{commonPage.keyword},'%') or t1.item like concat('%',#{commonPage.keyword},'%') or t.apply_phone  like concat('%',#{commonPage.keyword},'%') or t.apply_name like concat('%',#{commonPage.keyword},'%') or t.id like concat('%',#{commonPage.keyword},'%'))
+            </if>
+            <if test="commonPage.userId !=null">
+                and t.apply_user_id = #{commonPage.userId}
+            </if>
+            <if test="commonPage.beginTime !=null">
+                and t.actual_time >=#{commonPage.beginTime}
+            </if>
+            <if test="commonPage.endTime !=null">
+                and #{commonPage.endTime} >=t.actual_time
+            </if>
+        </where>
+        order by t.create_time desc
+    </select>
+
+    <select id="selectStatics" resultType="com.panzhihua.common.model.vos.community.warehouse.ApplyStatistics">
+        select
+                (select count(*)  from com_act_warehouse_apply where status = 0 and community_id = ${communityId}) as pending,
+                (select count(*)  from com_act_warehouse_apply where status = 1 and community_id = ${communityId}) as unclaimed,
+                (select count(*)  from com_act_warehouse_apply where status = 2 and community_id = ${communityId}) as rejected,
+                (select count(*)  from com_act_warehouse_apply where status = 3 and community_id = ${communityId}) as received,
+                (select count(*)  from com_act_warehouse_apply where status = -1 and community_id = ${communityId}) as cancelled
+    </select>
+
+    <select id="selectById" resultType="com.panzhihua.common.model.vos.community.warehouse.ComActWarehouseApplyVO">
+        select t.*,t1.name as donateName,t1.item,t1.image,t1.phone as donatePhone,t2.name as writeOffUserName,t3.name as solveName,t1.surplus_quantity as surplusQuantity from com_act_warehouse_apply t inner join com_act_warehouse_donates t1 on t.goods_id = t1.id left join sys_user t2 on t.write_off_user_id = t2.user_id left join sys_user t3 on t.solve_user_id = t3.user_id
+            where t.id=#{id}
+    </select>
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActWarehouseBaseMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActWarehouseBaseMapper.xml
new file mode 100644
index 0000000..e2ca7ee
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActWarehouseBaseMapper.xml
@@ -0,0 +1,15 @@
+<?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.ComActWarehouseBaseDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComActWarehouseBase" id="ComActWarehouseBaseBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="warehouseExplain" column="warehouse_explain"/>
+        <result property="warehouseWorkTime" column="warehouse_work_time"/>
+        <result property="warehouseContact" column="warehouse_contact"/>
+        <result property="receivePosition" column="receive_position"/>
+        <result property="communityId" column="community_id"/>
+        <result property="createTime" column="create_time"/>
+    </resultMap>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActWarehouseDonatesMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActWarehouseDonatesMapper.xml
new file mode 100644
index 0000000..c9add05
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActWarehouseDonatesMapper.xml
@@ -0,0 +1,132 @@
+<?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.ComActWarehouseDonatesDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComActWarehouseDonates"
+               id="ComActWarehouseDonatesBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="userId" column="user_id"/>
+        <result property="name" column="name"/>
+        <result property="phone" column="phone"/>
+        <result property="item" column="item"/>
+        <result property="image" column="image"/>
+        <result property="quantity" column="quantity"/>
+        <result property="surplusQuantity" column="surplus_quantity"/>
+        <result property="isAnonymous" column="is_anonymous"/>
+        <result property="message" column="message"/>
+        <result property="registerAt" column="register_at"/>
+        <result property="signingAt" column="signing_at"/>
+        <result property="status" column="status"/>
+        <result property="communityId" column="community_id"/>
+        <result property="registerBy" column="register_by"/>
+        <result property="signingBy" column="signing_by"/>
+    </resultMap>
+    <insert id="batchInsertDonates" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id">
+        INSERT INTO `com_act_warehouse_donates`(`name`,phone,item,quantity,surplus_quantity,
+        is_anonymous,message,register_at,signing_at,status,community_id,register_by,signing_by)
+        VALUES
+        <foreach collection="donateList" item="item" index="index" separator="," >
+            (#{item.name}, #{item.phone}, #{item.item}, #{item.quantity}, #{item.surplusQuantity},#{item.isAnonymous},
+            #{item.message}, #{item.registerAt}, #{item.signingAt}, #{item.status}, #{item.communityId}, #{item.registerBy}, #{item.signingBy})
+        </foreach>
+    </insert>
+    <select id="exportDonatesByIds"
+            resultType="com.panzhihua.common.model.vos.community.warehouse.ExportDonatesVO">
+        SELECT * FROM com_act_warehouse_donates
+        WHERE id IN
+            <foreach collection="needExportIds" open="(" separator="," close=")" index="index" item="item">
+                #{item}
+            </foreach>
+    </select>
+    <select id="exportDonatesBySearch"
+            resultType="com.panzhihua.common.model.vos.community.warehouse.ExportDonatesVO">
+        SELECT * FROM com_act_warehouse_donates
+        WHERE community_id = ${exportDonatesDTO.communityId}
+        <if test="exportDonatesDTO.status != null">
+            AND status = #{exportDonatesDTO.status}
+        </if>
+        <if test="exportDonatesDTO.isAnonymous != null">
+            AND is_anonymous = #{exportDonatesDTO.isAnonymous}
+        </if>
+        <if test="exportDonatesDTO.signingAtBegin != null">
+            AND signing_at &gt;= #{exportDonatesDTO.signingAtBegin}
+        </if>
+        <if test="exportDonatesDTO.signingAtEnd != null">
+            AND signing_at &lt;= #{exportDonatesDTO.signingAtEnd}
+        </if>
+        <if test="exportDonatesDTO.keyword != null and exportDonatesDTO.keyword != &quot;&quot;">
+            AND (
+                `name` LIKE CONCAT('%', #{exportDonatesDTO.keyword}, '%')
+                OR phone LIKE CONCAT('%', #{exportDonatesDTO.keyword}, '%')
+                OR item LIKE CONCAT('%', #{exportDonatesDTO.keyword}, '%')
+            )
+        </if>
+        ORDER BY id DESC
+    </select>
+    <select id="pageDonates"
+            resultType="com.panzhihua.common.model.vos.community.warehouse.ComActWarehouseDonatesVO">
+        SELECT * FROM com_act_warehouse_donates
+        WHERE community_id = ${pageDonatesDTO.communityId}
+        <if test="pageDonatesDTO.isWhich != null and pageDonatesDTO.isWhich == 1">
+            AND user_id = #{pageDonatesDTO.userId}
+        </if>
+        <if test="pageDonatesDTO.status != null">
+            AND status = #{pageDonatesDTO.status}
+        </if>
+        <if test="pageDonatesDTO.isAnonymous != null">
+            AND is_anonymous = #{pageDonatesDTO.isAnonymous}
+        </if>
+        <if test="pageDonatesDTO.signingAtBegin != null">
+            AND signing_at &gt;= #{pageDonatesDTO.signingAtBegin}
+        </if>
+        <if test="pageDonatesDTO.signingAtEnd != null">
+            AND signing_at &lt;= #{pageDonatesDTO.signingAtEnd}
+        </if>
+        <if test="pageDonatesDTO.keyword != null and pageDonatesDTO.keyword != &quot;&quot;">
+            <if test="pageDonatesDTO.isWhich != null">
+                AND status = 2
+                AND item LIKE CONCAT('%', #{pageDonatesDTO.keyword}, '%')
+            </if>
+            <if test="pageDonatesDTO.isWhich == null">
+                AND (
+                `name` LIKE CONCAT('%', #{pageDonatesDTO.keyword}, '%')
+                OR phone LIKE CONCAT('%', #{pageDonatesDTO.keyword}, '%')
+                OR item LIKE CONCAT('%', #{pageDonatesDTO.keyword}, '%')
+                )
+            </if>
+        </if>
+        ORDER BY id DESC
+    </select>
+    <select id="selectDetailById"
+            resultType="com.panzhihua.common.model.vos.community.warehouse.ComActWarehouseDonatesVO">
+        SELECT temp.*,IF(su.name IS NULL, su.nick_name, su.name) AS signingBy FROM (
+            SELECT * FROM com_act_warehouse_donates WHERE id = #{donatesId}
+        ) temp LEFT JOIN sys_user su ON temp.signing_by = su.user_id
+    </select>
+    <select id="selectDonatesStatistics"
+            resultType="com.panzhihua.common.model.vos.community.warehouse.DonatesStatisticsVO">
+        SELECT
+            (SELECT IF(SUM(quantity) IS NULL,0,SUM(quantity)) FROM com_act_warehouse_donates WHERE community_id = ${communityId} AND `status` = 2) as totalInc ,
+            (SELECT IF(SUM(surplus_quantity) IS NULL,0,SUM(surplus_quantity)) FROM com_act_warehouse_donates WHERE community_id = ${communityId} AND `status` = 2) as surplus,
+            (SELECT IF(SUM(quantity) IS NULL,0,SUM(quantity)) FROM com_act_warehouse_donates WHERE community_id = ${communityId} AND `status` = 2 AND signing_at LIKE #{currentYear}) as yearInc,
+            (SELECT IF(SUM(quantity) IS NULL,0,SUM(quantity)) FROM com_act_warehouse_donates WHERE community_id = ${communityId} AND `status` = 2 AND signing_at LIKE #{currentMonth}) as mothInc,
+            (SELECT IF(SUM(quantity) IS NULL,0,SUM(quantity)) FROM com_act_warehouse_donates WHERE community_id = ${communityId} AND `status` = 2 AND signing_at LIKE #{today}) as dayInc,
+            (SELECT IF(SUM(goods_num) IS NULL,0,SUM(goods_num)) FROM com_act_warehouse_apply WHERE community_id = ${communityId} AND `status` = 3 AND actual_time LIKE #{currentYear}) as yearDec,
+            (SELECT IF(SUM(goods_num) IS NULL,0,SUM(goods_num)) FROM com_act_warehouse_apply WHERE community_id = ${communityId} AND `status` = 3 AND actual_time LIKE #{currentMonth}) as mothDec,
+            (SELECT IF(SUM(goods_num) IS NULL,0,SUM(goods_num)) FROM com_act_warehouse_apply WHERE community_id = ${communityId} AND `status` = 3 AND actual_time LIKE #{today}) as dayDec
+    </select>
+    <select id="getWarehouseDonateRecords" resultType="java.lang.String">
+        SELECT CONCAT('收到爱心人士捐赠的',item,'x', quantity)
+        FROM com_act_warehouse_donates WHERE community_id = ${communityId} AND `status` = 2 ORDER BY signing_at DESC limit #{pageSize}
+    </select>
+    <select id="getWarehouseLoveTransfer" resultType="java.lang.String">
+        SELECT t1.content FROM com_act_warehouse_operation t1
+        LEFT JOIN com_act_warehouse_donates t2 ON t1.goods_id = t2.id
+        WHERE t2.community_id = ${communityId} AND t1.`type` = 2 ORDER BY create_time DESC limit #{pageSize}
+    </select>
+    <select id="getWarehouseImages" resultType="java.lang.String">
+        SELECT image FROM com_act_warehouse_donates
+        WHERE community_id = ${communityId} AND `status` = 2 AND image IS NOT NULL AND image != '' ORDER BY signing_at DESC limit #{pageSize}
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActWarehouseOperationMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActWarehouseOperationMapper.xml
new file mode 100644
index 0000000..42c7e3d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActWarehouseOperationMapper.xml
@@ -0,0 +1,46 @@
+<?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.ComActWarehouseOperationDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComActWarehouseOperation"
+               id="ComActWarehouseOperationBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="goodsId" column="goods_id"/>
+        <result property="content" column="content"/>
+        <result property="createTime" column="create_time"/>
+        <result property="userId" column="user_id"/>
+    </resultMap>
+    <insert id="batchInsertOperation" parameterType="java.util.List">
+        INSERT INTO `com_act_warehouse_operation` (goods_id,content,create_time,user_id)
+        VALUES
+        <foreach collection="operationList" item="item" index="index" separator="," >
+            (#{item.goodsId}, #{item.content}, #{item.createTime}, #{item.userId})
+        </foreach>
+    </insert>
+
+    <select id="pageList" resultType="com.panzhihua.common.model.vos.community.warehouse.ComActWarehouseOperationVO">
+        select t.*,t1.image,t1.item,t1.`name` as donateName,t2.actual_time,t2.apply_name,t2.reason,t1.is_anonymous,t2.goods_num,t2.receive_url as receiveUrl from com_act_warehouse_operation t LEFT JOIN com_act_warehouse_donates t1 on t.goods_id =t1.id LEFT JOIN com_act_warehouse_apply t2 on t.apply_id = t2.id
+        <where>
+            t.type = 2
+            <if test="commonPage.paramId != null">
+                and t.goods_id=#{commonPage.paramId}
+            </if>
+            <if test="commonPage.communityId !=null">
+                and t1.community_id = ${commonPage.communityId}
+            </if>
+            <if test="commonPage.keyword !=null and commonPage.keyword !=''">
+                and t1.item like concat('%',#{commonPage.keyword},'%')
+            </if>
+        </where>
+        order by t.create_time desc
+    </select>
+    <select id="selectList"
+            resultType="com.panzhihua.common.model.vos.community.warehouse.ComActWarehouseOperationVO">
+        SELECT t.*,t1.image,t1.item,t1.`name` AS donateName,t2.actual_time,t2.apply_name,t2.reason,t1.is_anonymous
+        FROM com_act_warehouse_operation t
+        LEFT JOIN com_act_warehouse_donates t1 ON t.goods_id =t1.id
+        LEFT JOIN com_act_warehouse_apply t2 ON t.apply_id = t2.id
+        WHERE t.goods_id = #{donatesId}
+    </select>
+
+</mapper>
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..586e349
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComActWorkGuideClassifyMapper.xml
@@ -0,0 +1,50 @@
+<?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>
+            <if test="comActWorkGuideClassifyVO.areaCode != null and comActWorkGuideClassifyVO.areaCode !=''">
+                AND area_code = #{comActWorkGuideClassifyVO.areaCode}
+            </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
+        <where>
+            <if test="areaCode!=null">
+                and cawgc.area_code = #{area_code}
+            </if>
+        </where>
+        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/ComAreaTownCommunityMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComAreaTownCommunityMapper.xml
new file mode 100644
index 0000000..d7a22b9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComAreaTownCommunityMapper.xml
@@ -0,0 +1,29 @@
+<?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.ComAreaTownCommunityDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComAreaTownCommunity"
+               id="ComAreaTownCommunityBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="area" column="area"/>
+        <result property="town" column="town"/>
+        <result property="community" column="community"/>
+    </resultMap>
+
+    <select id="selectArea" resultType="com.panzhihua.common.model.vos.community.acid.ComAreaCounty">
+        select distinct area as value from com_area_town_community
+    </select>
+
+    <select id="selectTown" resultType="com.panzhihua.common.model.vos.community.acid.ComAreaCounty">
+        select distinct town as value from com_area_town_community where area =#{area}
+    </select>
+
+    <select id="selectCommunity" resultType="com.panzhihua.common.model.vos.community.acid.ComAreaCounty">
+        select distinct community as value,community_id from com_area_town_community where town =#{town} <if test="area==null or area ==''"> and community !='学园社区'</if>
+    </select>
+
+    <select id="selectDistinctTown" resultType="String">
+        select distinct town from com_area_town_community where area=#{area}
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityActivityMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityActivityMapper.xml
new file mode 100644
index 0000000..5d61b62
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityActivityMapper.xml
@@ -0,0 +1,199 @@
+<?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.ComBatteryCommodityActivityMapper">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComBatteryCommodityActivity"
+               id="ComBatteryCommodityActivityMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="type" column="type" jdbcType="INTEGER"/>
+        <result property="commodityId" column="commodity_id" jdbcType="INTEGER"/>
+        <result property="specsId" column="specs_id" jdbcType="INTEGER"/>
+        <result property="storeId" column="store_id" jdbcType="INTEGER"/>
+        <result property="status" column="status" jdbcType="INTEGER"/>
+        <result property="isDel" column="is_del" jdbcType="INTEGER"/>
+        <result property="price" column="price" jdbcType="VARCHAR"/>
+        <result property="endTime" column="end_time" jdbcType="TIMESTAMP"/>
+        <result property="collageNum" column="collage_num" jdbcType="INTEGER"/>
+        <result property="collagePeopleNum" column="collage_people_num" jdbcType="INTEGER"/>
+        <result property="images" column="images" jdbcType="VARCHAR"/>
+        <result property="commodityNum" column="commodity_num" jdbcType="INTEGER"/>
+        <result property="rule" column="rule" jdbcType="VARCHAR"/>
+        <result property="createAt" column="create_at" jdbcType="TIMESTAMP"/>
+        <result property="createBy" column="create_by" jdbcType="INTEGER"/>
+        <result property="updateAt" column="update_at" jdbcType="TIMESTAMP"/>
+        <result property="updateBy" column="update_by" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <!--查询单个-->
+    <select id="queryById" resultType="com.panzhihua.common.model.vos.common.ComBatteryCommodityActivityVo">
+        SELECT
+        cbca.id,
+        cbca.`name`,
+        cbca.type,
+        cbca.commodity_id,
+        cbca.store_id,
+        cbca.`status`,
+        cbca.price,
+        cbca.end_time,
+        cbca.collage_num,
+        cbca.collage_people_num,
+        cbca.images,
+        cbca.commodity_num,
+        cbca.rule,
+        cbca.create_at,
+        cbca.create_by,
+        cbca.update_at,
+        cbca.update_by,
+        cbca.specs_id,
+        cbca.commodity_sale_num,
+        cbcs.`name` as specsName,
+        cbc.`name` as commodityName,
+        cbc.`code` as commodityCode,
+        cbs.`name` as storeName
+        FROM
+        com_battery_commodity_activity AS cbca
+        left join com_battery_commodity as cbc on cbc.id = cbca.commodity_id
+        left join com_battery_store as cbs on cbs.id = cbca.store_id
+        left join com_battery_commodity_specs as cbcs on cbcs.id = cbca.specs_id
+        where cbca.id = #{id}
+    </select>
+
+    <!--查询指定行数据-->
+    <select id="queryAllByLimit" resultType="com.panzhihua.common.model.vos.common.ComBatteryCommodityActivityVo">
+        SELECT
+        cbca.id,
+        cbca.`name`,
+        cbca.type,
+        cbca.commodity_id,
+        cbca.store_id,
+        cbca.`status`,
+        cbca.price,
+        cbca.end_time,
+        cbca.collage_num,
+        cbca.collage_people_num,
+        cbca.images,
+        cbca.commodity_num,
+        cbca.rule,
+        cbca.create_at,
+        cbca.create_by,
+        cbca.update_at,
+        cbca.update_by,
+        cbca.specs_id,
+        cbca.commodity_sale_num,
+        cbcs.`name` as specsName,
+        cbc.`name` as commodityName,
+        cbc.`code` as commodityCode,
+        cbs.`name` as storeName
+        FROM
+        com_battery_commodity_activity AS cbca
+        left join com_battery_commodity as cbc on cbc.id = cbca.commodity_id
+        left join com_battery_store as cbs on cbs.id = cbca.store_id
+        left join com_battery_commodity_specs as cbcs on cbcs.id = cbca.specs_id
+        <if test="dto.userId != null">
+            left join com_battery_commodity_order as cbco on cbco.activity_id = cbca.id
+        </if>
+        <where>
+            and cbca.is_del = 2
+            <if test="dto.id != null">
+                and cbca.id = #{dto.id}
+            </if>
+            <if test="dto.type != null">
+                and cbca.type = #{dto.type}
+            </if>
+            <if test="dto.userId != null">
+                and cbco.user_id = #{dto.userId} and cbco.pay_status = 2 and cbco.is_del = 2
+            </if>
+            <if test="dto.commodityId != null">
+                and cbca.commodity_id = #{dto.commodityId}
+            </if>
+            <if test="dto.storeId != null">
+                and cbca.store_id = #{dto.storeId}
+            </if>
+            <if test="dto.status != null">
+                and cbca.status = #{dto.status}
+            </if>
+            <if test="dto.isApplets != null and dto.isApplets == 1">
+                and cbca.status in (1,3)
+            </if>
+            <if test="dto.keyWord != null and dto.keyWord != ''">
+                and (
+                    cbca.`name` like concat ('%',#{statisticsAdminDTO.keyWord},'%') or
+                    cbc.`name` like concat ('%',#{statisticsAdminDTO.keyWord},'%') or
+                    cbc.`code` like concat ('%',#{statisticsAdminDTO.keyWord},'%')
+                )
+            </if>
+        </where>
+        order by cbca.create_at desc
+    </select>
+
+    <!--查询所有数据-->
+    <select id="queryAllByList" resultType="com.panzhihua.common.model.vos.common.ComBatteryCommodityActivityVo">
+        SELECT
+        cbca.id,
+        cbca.`name`,
+        cbca.type,
+        cbca.commodity_id,
+        cbca.store_id,
+        cbca.`status`,
+        cbca.price,
+        cbca.end_time,
+        cbca.collage_num,
+        cbca.collage_people_num,
+        cbca.images,
+        cbca.commodity_num,
+        cbca.rule,
+        cbca.create_at,
+        cbca.create_by,
+        cbca.update_at,
+        cbca.update_by,
+        cbca.specs_id,
+        cbca.commodity_sale_num,
+        cbcs.`name` as specsName,
+        cbc.`name` as commodityName,
+        cbc.`code` as commodityCode,
+        cbs.`name` as storeName
+        FROM
+        com_battery_commodity_activity AS cbca
+        left join com_battery_commodity as cbc on cbc.id = cbca.commodity_id
+        left join com_battery_store as cbs on cbs.id = cbca.store_id
+        left join com_battery_commodity_specs as cbcs on cbcs.id = cbca.specs_id
+        <if test="dto.userId != null">
+            left join com_battery_commodity_order as cbco on cbco.activity_id = cbca.id
+        </if>
+        <where>
+            and cbca.is_del = 2
+            <if test="dto.id != null">
+                and cbca.id = #{dto.id}
+            </if>
+            <if test="dto.userId != null">
+                and cbco.user_id = #{dto.userId} and cbco.pay_status = 2 and cbco.is_del = 2
+            </if>
+            <if test="dto.type != null">
+                and cbca.type = #{dto.type}
+            </if>
+            <if test="dto.commodityId != null">
+                and cbca.commodity_id = #{dto.commodityId}
+            </if>
+            <if test="dto.storeId != null">
+                and cbca.store_id = #{dto.storeId}
+            </if>
+            <if test="dto.status != null">
+                and cbca.status = #{dto.status}
+            </if>
+            <if test="dto.isApplets != null and dto.isApplets == 1">
+                and cbca.status in (1,3)
+            </if>
+            <if test="dto.keyWord != null and dto.keyWord != ''">
+                and (
+                    cbca.`name` like concat ('%',#{statisticsAdminDTO.keyWord},'%') or
+                    cbc.`name` like concat ('%',#{statisticsAdminDTO.keyWord},'%') or
+                    cbc.`code` like concat ('%',#{statisticsAdminDTO.keyWord},'%')
+                )
+            </if>
+        </where>
+        order by cbca.create_at desc
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityMapper.xml
new file mode 100644
index 0000000..d49d7fc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityMapper.xml
@@ -0,0 +1,232 @@
+<?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.ComBatteryCommodityMapper">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComBatteryCommodity" id="ComBatteryCommodityMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="code" column="code" jdbcType="VARCHAR"/>
+        <result property="price" column="price" jdbcType="VARCHAR"/>
+        <result property="storeId" column="store_id" jdbcType="INTEGER"/>
+        <result property="status" column="status" jdbcType="INTEGER"/>
+        <result property="classId" column="class_id" jdbcType="INTEGER"/>
+        <result property="introduce" column="introduce" jdbcType="VARCHAR"/>
+        <result property="postage" column="postage" jdbcType="VARCHAR"/>
+        <result property="images" column="images" jdbcType="VARCHAR"/>
+        <result property="detail" column="detail" jdbcType="VARCHAR"/>
+        <result property="isDel" column="is_del" jdbcType="INTEGER"/>
+        <result property="createAt" column="create_at" jdbcType="TIMESTAMP"/>
+        <result property="createBy" column="create_by" jdbcType="INTEGER"/>
+        <result property="updateAt" column="update_at" jdbcType="TIMESTAMP"/>
+        <result property="updateBy" column="update_by" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <!--查询单个-->
+    <select id="queryById" resultType="com.panzhihua.common.model.vos.common.ComBatteryCommodityVo">
+        SELECT
+            cbc.id,
+            cbc.`name`,
+            cbc.`code`,
+            cbc.price,
+            cbc.store_id,
+            cbc.`status`,
+            cbc.class_id,
+            cbc.introduce,
+            cbc.postage,
+            cbc.images,
+            cbc.detail,
+            cbc.is_del,
+            cbc.create_at,
+            cbc.create_by,
+            cbc.update_at,
+            cbc.update_by,
+            cbs.`name` as storeName,
+            cbsc.`name` as className,
+            (select count(id) from com_battery_commodity_order where commodity_id = cbc.id and `status` in (2,3,4)
+            AND create_at BETWEEN DATE_ADD( curdate(), INTERVAL - DAY ( curdate())+ 1 DAY ) AND now()) as monthSale
+        FROM
+            com_battery_commodity as cbc
+            left join com_battery_store as cbs on cbs.id = cbc.store_id
+            left join com_battery_store_class as cbsc on cbsc.id = cbc.class_id
+        where cbc.id = #{id}
+    </select>
+
+    <!--查询指定行数据-->
+    <select id="queryAllByLimit" resultType="com.panzhihua.common.model.vos.common.ComBatteryCommodityVo">
+        SELECT
+        cbc.id,
+        cbc.`name`,
+        cbc.`code`,
+        cbc.price,
+        cbc.store_id,
+        cbc.`status`,
+        cbc.class_id,
+        cbc.introduce,
+        cbc.postage,
+        cbc.images,
+        cbc.detail,
+        cbc.is_del,
+        cbc.create_at,
+        cbc.create_by,
+        cbc.update_at,
+        cbc.update_by,
+        cbs.`name` as storeName,
+        cbsc.`name` as className,
+        (select count(id) from com_battery_commodity_order where commodity_id = cbc.id and `status` in (2,3,4)) as monthSale
+        FROM
+        com_battery_commodity as cbc
+        left join com_battery_store as cbs on cbs.id = cbc.store_id
+        left join com_battery_store_class as cbsc on cbsc.id = cbc.class_id
+        <where>
+            and cbc.is_del = 2
+            <if test="dto.id != null">
+                and cbc.id = #{dto.id}
+            </if>
+            <if test="dto.name != null and dto.name != ''">
+                and cbc.name = #{dto.name}
+            </if>
+            <if test="dto.code != null and dto.code != ''">
+                and cbc.code = #{dto.code}
+            </if>
+            <if test="dto.storeId != null">
+                and cbc.store_id = #{dto.storeId}
+            </if>
+            <if test="dto.status != null">
+                and cbc.status = #{dto.status}
+            </if>
+            <if test="dto.classId != null">
+                and cbc.class_id = #{dto.classId}
+            </if>
+            <if test="dto.keyWord != null and dto.keyWord != ''">
+                and (cbc.`name` like concat('%',#{dto.keyWord},'%') or cbc.`code` like concat('%',#{dto.keyWord},'%'))
+            </if>
+        </where>
+        order by cbc.create_at desc
+    </select>
+
+    <!--查询所有数据-->
+    <select id="queryAllByList" resultType="com.panzhihua.common.model.vos.common.ComBatteryCommodityVo">
+        SELECT
+        cbc.id,
+        cbc.`name`,
+        cbc.`code`,
+        cbc.price,
+        cbc.store_id,
+        cbc.`status`,
+        cbc.class_id,
+        cbc.introduce,
+        cbc.postage,
+        cbc.images,
+        cbc.detail,
+        cbc.is_del,
+        cbc.create_at,
+        cbc.create_by,
+        cbc.update_at,
+        cbc.update_by,
+        cbs.`name` as storeName,
+        cbsc.`name` as className,
+        (select count(id) from com_battery_commodity_order where commodity_id = cbc.id and `status` in (2,3,4)) as monthSale
+        FROM
+        com_battery_commodity as cbc
+        left join com_battery_store as cbs on cbs.id = cbc.store_id
+        left join com_battery_store_class as cbsc on cbsc.id = cbc.class_id
+        <where>
+            and cbc.is_del = 2
+            <if test="dto.id != null">
+                and cbc.id = #{dto.id}
+            </if>
+            <if test="dto.name != null and dto.name != ''">
+                and cbc.name = #{dto.name}
+            </if>
+            <if test="dto.code != null and dto.code != ''">
+                and cbc.code = #{dto.code}
+            </if>
+            <if test="dto.storeId != null">
+                and cbc.store_id = #{dto.storeId}
+            </if>
+            <if test="dto.status != null">
+                and cbc.status = #{dto.status}
+            </if>
+            <if test="dto.classId != null">
+                and cbc.class_id = #{dto.classId}
+            </if>
+            <if test="dto.keyWord != null and dto.keyWord != ''">
+                and (cbc.`name` like concat('%',#{dto.keyWord},'%') or cbc.`code` like concat('%',#{dto.keyWord},'%'))
+            </if>
+        </where>
+        order by cbc.create_at desc
+    </select>
+
+    <select id="queryByAppletsPage" resultType="com.panzhihua.common.model.vos.common.ComBatteryCommodityVo">
+        SELECT
+        cbc.id,
+        cbc.`name`,
+        cbc.`code`,
+        cbc.price,
+        cbc.store_id,
+        cbc.`status`,
+        cbc.class_id,
+        cbc.introduce,
+        cbc.postage,
+        cbc.images,
+        cbc.detail,
+        cbc.is_del,
+        cbc.create_at,
+        cbc.create_by,
+        cbc.update_at,
+        cbc.update_by,
+        cbs.`name` as storeName,
+        cbsc.`name` as className,
+        (select count(id) from com_battery_commodity_order where commodity_id = cbc.id and `status` in (2,3,4)) as monthSale
+        FROM
+        com_battery_commodity as cbc
+        left join com_battery_store as cbs on cbs.id = cbc.store_id
+        left join com_battery_store_class as cbsc on cbsc.id = cbc.class_id
+        <where>
+            and cbc.is_del = 2 and status = 1
+            <if test="dto.id != null">
+                and cbc.id = #{dto.id}
+            </if>
+            <if test="dto.name != null and dto.name != ''">
+                and cbc.name like concat('%',#{dto.keyWord},'%')
+            </if>
+            <if test="dto.storeId != null">
+                and cbc.store_id = #{dto.storeId}
+            </if>
+            <if test="dto.classId != null">
+                and cbc.class_id = #{dto.classId}
+            </if>
+        </where>
+        order by cbc.create_at desc
+    </select>
+
+    <select id="queryAllByClassIdList" resultType="com.panzhihua.common.model.vos.common.ComBatteryCommodityVo">
+        SELECT
+        cbc.id,
+        cbc.`name`,
+        cbc.`code`,
+        cbc.price,
+        cbc.store_id,
+        cbc.`status`,
+        cbc.class_id,
+        cbc.introduce,
+        cbc.postage,
+        cbc.images,
+        cbc.detail,
+        cbc.is_del,
+        cbc.create_at,
+        cbc.create_by,
+        cbc.update_at,
+        cbc.update_by,
+        cbs.`name` as storeName,
+        cbsc.`name` as className,
+        (select count(id) from com_battery_commodity_order where commodity_id = cbc.id and `status` in (2,3,4)) as monthSale
+        FROM
+        com_battery_commodity as cbc
+        left join com_battery_store as cbs on cbs.id = cbc.store_id
+        left join com_battery_store_class as cbsc on cbsc.id = cbc.class_id
+        where cbc.class_id = #{classId} and cbc.is_del = 2 and cbc.status = 1
+        order by cbc.create_at desc
+    </select>
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityOrderBargainMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityOrderBargainMapper.xml
new file mode 100644
index 0000000..147504c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityOrderBargainMapper.xml
@@ -0,0 +1,144 @@
+<?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.ComBatteryCommodityOrderBargainMapper">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComBatteryCommodityOrderBargain"
+               id="ComBatteryCommodityOrderBargainMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="userId" column="user_id" jdbcType="INTEGER"/>
+        <result property="commodityId" column="commodity_id" jdbcType="INTEGER"/>
+        <result property="activityId" column="activity_id" jdbcType="INTEGER"/>
+        <result property="orderId" column="order_id" jdbcType="INTEGER"/>
+        <result property="orderNo" column="order_no" jdbcType="VARCHAR"/>
+        <result property="originalPrice" column="original_price" jdbcType="VARCHAR"/>
+        <result property="targetPrice" column="target_price" jdbcType="VARCHAR"/>
+        <result property="currentPrice" column="current_price" jdbcType="VARCHAR"/>
+        <result property="count" column="count" jdbcType="INTEGER"/>
+        <result property="createAt" column="create_at" jdbcType="TIMESTAMP"/>
+        <result property="createBy" column="create_by" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <!--查询单个-->
+    <select id="queryById" resultType="com.panzhihua.common.model.vos.common.ComBatteryCommodityOrderBargainVo">
+        SELECT
+            cbcob.id,
+            cbcob.user_id,
+            cbcob.commodity_id,
+            cbcob.activity_id,
+            cbcob.order_id,
+            cbcob.order_no,
+            cbcob.original_price,
+            cbcob.target_price,
+            cbcob.current_price,
+            cbcob.count,
+            cbcob.create_at,
+            cbcob.create_by,
+            su.nick_name as nickName,
+            su.image_url as imageUrl,
+            cbc.`name` as commodityName,
+            cbc.images as commodityImages,
+            cbco.bargain_status
+        FROM
+            com_battery_commodity_order_bargain as cbcob
+            left join com_battery_commodity_order as cbco on cbco.id = cbcob.order_id
+            left join com_battery_commodity as cbc on cbc.id = cbco.commodity_id
+            left join sys_user as su on su.user_id = cbcob.user_id
+        where cbcob.id = #{id}
+    </select>
+
+    <!--查询指定行数据-->
+    <select id="queryAllByLimit" resultType="com.panzhihua.common.model.vos.common.ComBatteryCommodityOrderBargainVo">
+        select
+        id, user_id, commodity_id, activity_id, order_id, order_no, original_price, target_price, current_price, count,
+        create_at, create_by
+        from com_battery_commodity_order_bargain
+        <where>
+            <if test="dto.id != null">
+                and id = #{dto.id}
+            </if>
+            <if test="dto.userId != null">
+                and user_id = #{dto.userId}
+            </if>
+            <if test="dto.commodityId != null">
+                and commodity_id = #{dto.commodityId}
+            </if>
+            <if test="dto.activityId != null">
+                and activity_id = #{dto.activityId}
+            </if>
+            <if test="dto.orderId != null">
+                and order_id = #{dto.orderId}
+            </if>
+            <if test="dto.orderNo != null and dto.orderNo != ''">
+                and order_no = #{dto.orderNo}
+            </if>
+            <if test="dto.originalPrice != null">
+                and original_price = #{dto.originalPrice}
+            </if>
+            <if test="dto.targetPrice != null">
+                and target_price = #{dto.targetPrice}
+            </if>
+            <if test="dto.currentPrice != null">
+                and current_price = #{dto.currentPrice}
+            </if>
+            <if test="dto.count != null">
+                and count = #{dto.count}
+            </if>
+            <if test="dto.createAt != null">
+                and create_at = #{dto.createAt}
+            </if>
+            <if test="dto.createBy != null">
+                and create_by = #{dto.createBy}
+            </if>
+        </where>
+        order by create_at desc
+    </select>
+
+    <!--查询所有数据-->
+    <select id="queryAllByList" resultType="com.panzhihua.common.model.vos.common.ComBatteryCommodityOrderBargainVo">
+        select
+        id, user_id, commodity_id, activity_id, order_id, order_no, original_price, target_price, current_price, count,
+        create_at, create_by
+        from com_battery_commodity_order_bargain
+        <where>
+            <if test="dto.id != null">
+                and id = #{dto.id}
+            </if>
+            <if test="dto.userId != null">
+                and user_id = #{dto.userId}
+            </if>
+            <if test="dto.commodityId != null">
+                and commodity_id = #{dto.commodityId}
+            </if>
+            <if test="dto.activityId != null">
+                and activity_id = #{dto.activityId}
+            </if>
+            <if test="dto.orderId != null">
+                and order_id = #{dto.orderId}
+            </if>
+            <if test="dto.orderNo != null and dto.orderNo != ''">
+                and order_no = #{dto.orderNo}
+            </if>
+            <if test="dto.originalPrice != null">
+                and original_price = #{dto.originalPrice}
+            </if>
+            <if test="dto.targetPrice != null">
+                and target_price = #{dto.targetPrice}
+            </if>
+            <if test="dto.currentPrice != null">
+                and current_price = #{dto.currentPrice}
+            </if>
+            <if test="dto.count != null">
+                and count = #{dto.count}
+            </if>
+            <if test="dto.createAt != null">
+                and create_at = #{dto.createAt}
+            </if>
+            <if test="dto.createBy != null">
+                and create_by = #{dto.createBy}
+            </if>
+        </where>
+        order by create_at desc
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityOrderBargainRecordMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityOrderBargainRecordMapper.xml
new file mode 100644
index 0000000..79406b8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityOrderBargainRecordMapper.xml
@@ -0,0 +1,105 @@
+<?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.ComBatteryCommodityOrderBargainRecordMapper">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComBatteryCommodityOrderBargainRecord"
+               id="ComBatteryCommodityOrderBargainRecordMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="bargainId" column="bargain_id" jdbcType="INTEGER"/>
+        <result property="userId" column="user_id" jdbcType="INTEGER"/>
+        <result property="amount" column="amount" jdbcType="VARCHAR"/>
+        <result property="oldUserId" column="old_user_id" jdbcType="INTEGER"/>
+        <result property="createAt" column="create_at" jdbcType="TIMESTAMP"/>
+        <result property="createBy" column="create_by" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <!--查询单个-->
+    <select id="queryById" resultType="com.panzhihua.common.model.vos.common.ComBatteryCommodityOrderBargainRecordVo">
+        select
+          id, bargain_id, user_id, amount, old_user_id, create_at, create_by
+        from com_battery_commodity_order_bargain_record
+        where id = #{id}
+    </select>
+
+    <!--查询指定行数据-->
+    <select id="queryAllByLimit" resultType="com.panzhihua.common.model.vos.common.ComBatteryCommodityOrderBargainRecordVo">
+        select
+        id, bargain_id, user_id, amount, old_user_id, create_at, create_by
+        from com_battery_commodity_order_bargain_record
+        <where>
+            <if test="dto.id != null">
+                and id = #{dto.id}
+            </if>
+            <if test="dto.bargainId != null">
+                and bargain_id = #{dto.bargainId}
+            </if>
+            <if test="dto.userId != null">
+                and user_id = #{dto.userId}
+            </if>
+            <if test="dto.amount != null">
+                and amount = #{dto.amount}
+            </if>
+            <if test="dto.oldUserId != null">
+                and old_user_id = #{dto.oldUserId}
+            </if>
+            <if test="dto.createAt != null">
+                and create_at = #{dto.createAt}
+            </if>
+            <if test="dto.createBy != null">
+                and create_by = #{dto.createBy}
+            </if>
+        </where>
+        order by create_at desc
+    </select>
+
+    <!--查询所有数据-->
+    <select id="queryAllByList" resultType="com.panzhihua.common.model.vos.common.ComBatteryCommodityOrderBargainRecordVo">
+        select
+        id, bargain_id, user_id, amount, old_user_id, create_at, create_by
+        from com_battery_commodity_order_bargain_record
+        <where>
+            <if test="dto.id != null">
+                and id = #{dto.id}
+            </if>
+            <if test="dto.bargainId != null">
+                and bargain_id = #{dto.bargainId}
+            </if>
+            <if test="dto.userId != null">
+                and user_id = #{dto.userId}
+            </if>
+            <if test="dto.amount != null">
+                and amount = #{dto.amount}
+            </if>
+            <if test="dto.oldUserId != null">
+                and old_user_id = #{dto.oldUserId}
+            </if>
+            <if test="dto.createAt != null">
+                and create_at = #{dto.createAt}
+            </if>
+            <if test="dto.createBy != null">
+                and create_by = #{dto.createBy}
+            </if>
+        </where>
+        order by create_at desc
+    </select>
+
+    <select id="queryAllByBargainId" resultType="com.panzhihua.common.model.vos.common.ComBatteryCommodityOrderBargainRecordVo">
+        SELECT
+            cbcobr.id,
+            cbcobr.bargain_id,
+            cbcobr.user_id,
+            cbcobr.amount,
+            cbcobr.old_user_id,
+            cbcobr.create_at,
+            cbcobr.create_by,
+            su.nick_name as nickName,
+            su.image_url as imageUrl
+        FROM
+            com_battery_commodity_order_bargain_record as cbcobr
+            left join sys_user as su on su.user_id = cbcobr.user_id
+        where cbcobr.bargain_id = #{bargainId}
+        order by cbcobr.amount desc,cbcobr.create_at desc
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityOrderCollageTeamMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityOrderCollageTeamMapper.xml
new file mode 100644
index 0000000..4c00d60
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityOrderCollageTeamMapper.xml
@@ -0,0 +1,127 @@
+<?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.ComBatteryCommodityOrderCollageTeamMapper">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComBatteryCommodityOrderCollageTeam"
+               id="ComBatteryCommodityOrderCollageTeamMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="activityId" column="activity_id" jdbcType="INTEGER"/>
+        <result property="orderId" column="order_id" jdbcType="INTEGER"/>
+        <result property="orderNo" column="order_no" jdbcType="VARCHAR"/>
+        <result property="userId" column="user_id" jdbcType="INTEGER"/>
+        <result property="status" column="status" jdbcType="INTEGER"/>
+        <result property="createAt" column="create_at" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+    <!--查询单个-->
+    <select id="queryById" resultType="com.panzhihua.common.model.vos.common.ComBatteryCommodityOrderCollageTeamVo">
+        SELECT
+            cbcoot.id,
+            cbcoot.activity_id,
+            cbcoot.order_id,
+            cbcoot.order_no,
+            cbcoot.user_id,
+            cbcoot.`status`,
+            cbcoot.create_at,
+            (select count(id) from com_battery_commodity_order_collage_team_people where team_id = cbcoot.id) as spelledNum,
+            cbca.collage_people_num,
+            su.image_url as images,
+            su.`nick_name`
+        FROM
+            com_battery_commodity_order_collage_team as cbcoot
+            left join sys_user as su on su.user_id = cbcoot.user_id
+            left join com_battery_commodity_activity as cbca on cbca.id = cbcoot.activity_id
+        where cbcoot.id = #{id}
+    </select>
+
+    <!--查询指定行数据-->
+    <select id="queryAllByLimit" resultType="com.panzhihua.common.model.vos.common.ComBatteryCommodityOrderCollageTeamVo">
+        SELECT
+        cbcoot.id,
+        cbcoot.activity_id,
+        cbcoot.order_id,
+        cbcoot.order_no,
+        cbcoot.user_id,
+        cbcoot.`status`,
+        cbcoot.create_at,
+        (select count(id) from com_battery_commodity_order_collage_team_people where team_id = cbcoot.id) as spelledNum,
+        cbca.collage_people_num,
+        su.image_url as images,
+        su.`nick_name`
+        FROM
+        com_battery_commodity_order_collage_team as cbcoot
+        left join sys_user as su on su.user_id = cbcoot.user_id
+        left join com_battery_commodity_activity as cbca on cbca.id = cbcoot.activity_id
+        <where>
+            <if test="dto.id != null">
+                and cbcoot.id = #{dto.id}
+            </if>
+            <if test="dto.activityId != null">
+                and cbcoot.activity_id = #{dto.activityId}
+            </if>
+            <if test="dto.orderId != null">
+                and cbcoot.order_id = #{dto.orderId}
+            </if>
+            <if test="dto.orderNo != null and dto.orderNo != ''">
+                and cbcoot.order_no = #{dto.orderNo}
+            </if>
+            <if test="dto.status != null">
+                and cbcoot.status = #{dto.status}
+            </if>
+        </where>
+        order by cbcoot.create_at desc
+    </select>
+
+    <!--查询所有数据-->
+    <select id="queryAllByList" resultType="com.panzhihua.common.model.vos.common.ComBatteryCommodityOrderCollageTeamVo">
+        SELECT
+        cbcoot.id,
+        cbcoot.activity_id,
+        cbcoot.order_id,
+        cbcoot.order_no,
+        cbcoot.user_id,
+        cbcoot.`status`,
+        cbcoot.create_at,
+        (select count(id) from com_battery_commodity_order_collage_team_people where team_id = cbcoot.id) as spelledNum,
+        cbca.collage_people_num,
+        su.image_url as images,
+        su.`nick_name`
+        FROM
+        com_battery_commodity_order_collage_team as cbcoot
+        left join sys_user as su on su.user_id = cbcoot.user_id
+        left join com_battery_commodity_activity as cbca on cbca.id = cbcoot.activity_id
+        <where>
+            <if test="dto.id != null">
+                and cbcoot.id = #{dto.id}
+            </if>
+            <if test="dto.activityId != null">
+                and cbcoot.activity_id = #{dto.activityId}
+            </if>
+            <if test="dto.orderId != null">
+                and cbcoot.order_id = #{dto.orderId}
+            </if>
+            <if test="dto.orderNo != null and dto.orderNo != ''">
+                and cbcoot.order_no = #{dto.orderNo}
+            </if>
+            <if test="dto.userId != null">
+                and cbcoot.user_id = #{dto.userId}
+            </if>
+            <if test="dto.status != null">
+                and cbcoot.status = #{dto.status}
+            </if>
+        </where>
+        order by cbcoot.create_at desc
+    </select>
+
+    <select id="getUserCollageDetail" resultType="map">
+        SELECT
+            count( id ) as ktCount,
+            (select count(id) from com_battery_commodity_order_collage_team_people where team_id = #{teamId} and user_id = #{userId} and `type` = 2) as ptCount
+        FROM
+            com_battery_commodity_order_collage_team_people
+        WHERE
+            team_id = #{teamId} AND head_user_id = #{userId}
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityOrderCollageTeamPeopleMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityOrderCollageTeamPeopleMapper.xml
new file mode 100644
index 0000000..d077c17
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityOrderCollageTeamPeopleMapper.xml
@@ -0,0 +1,105 @@
+<?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.ComBatteryCommodityOrderCollageTeamPeopleMapper">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComBatteryCommodityOrderCollageTeamPeople"
+               id="ComBatteryCommodityOrderCollageTeamPeopleMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="teamId" column="team_id" jdbcType="INTEGER"/>
+        <result property="headUserId" column="head_user_id" jdbcType="INTEGER"/>
+        <result property="userId" column="user_id" jdbcType="INTEGER"/>
+        <result property="type" column="type" jdbcType="INTEGER"/>
+        <result property="createAt" column="create_at" jdbcType="TIMESTAMP"/>
+        <result property="createBy" column="create_by" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <!--查询单个-->
+    <select id="queryById" resultType="com.panzhihua.common.model.vos.common.ComBatteryCommodityOrderCollageTeamPeopleVo">
+        select
+          id, team_id, head_user_id, user_id, type, create_at, create_by
+        from com_battery_commodity_order_collage_team_people
+        where id = #{id}
+    </select>
+
+    <!--查询指定行数据-->
+    <select id="queryAllByLimit" resultType="com.panzhihua.common.model.vos.common.ComBatteryCommodityOrderCollageTeamPeopleVo">
+        select
+        id, team_id, head_user_id, user_id, type, create_at, create_by
+        from com_battery_commodity_order_collage_team_people
+        <where>
+            <if test="dto.id != null">
+                and id = #{dto.id}
+            </if>
+            <if test="dto.teamId != null">
+                and team_id = #{dto.teamId}
+            </if>
+            <if test="dto.headUserId != null">
+                and head_user_id = #{dto.headUserId}
+            </if>
+            <if test="dto.userId != null">
+                and user_id = #{dto.userId}
+            </if>
+            <if test="dto.type != null">
+                and type = #{dto.type}
+            </if>
+            <if test="dto.createAt != null">
+                and create_at = #{dto.createAt}
+            </if>
+            <if test="dto.createBy != null">
+                and create_by = #{dto.createBy}
+            </if>
+        </where>
+        order by create_at desc
+    </select>
+
+    <!--查询所有数据-->
+    <select id="queryAllByList" resultType="com.panzhihua.common.model.vos.common.ComBatteryCommodityOrderCollageTeamPeopleVo">
+        select
+        id, team_id, head_user_id, user_id, type, create_at, create_by
+        from com_battery_commodity_order_collage_team_people
+        <where>
+            <if test="dto.id != null">
+                and id = #{dto.id}
+            </if>
+            <if test="dto.teamId != null">
+                and team_id = #{dto.teamId}
+            </if>
+            <if test="dto.headUserId != null">
+                and head_user_id = #{dto.headUserId}
+            </if>
+            <if test="dto.userId != null">
+                and user_id = #{dto.userId}
+            </if>
+            <if test="dto.type != null">
+                and type = #{dto.type}
+            </if>
+            <if test="dto.createAt != null">
+                and create_at = #{dto.createAt}
+            </if>
+            <if test="dto.createBy != null">
+                and create_by = #{dto.createBy}
+            </if>
+        </where>
+        order by create_at desc
+    </select>
+
+    <select id="queryAllByTeamId" resultType="com.panzhihua.common.model.vos.common.ComBatteryCommodityOrderCollageTeamPeopleVo">
+        SELECT
+            cbcootp.id,
+            cbcootp.team_id,
+            cbcootp.head_user_id,
+            cbcootp.user_id,
+            cbcootp.type,
+            cbcootp.create_at,
+            cbcootp.create_by,
+            su.nick_name,
+            su.image_url as images
+        FROM
+            com_battery_commodity_order_collage_team_people as cbcootp
+            left join sys_user as su on su.user_id = cbcootp.user_id
+        where cbcootp.team_id = #{teamId}
+        order by cbcootp.create_at
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityOrderMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityOrderMapper.xml
new file mode 100644
index 0000000..f617d16
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommodityOrderMapper.xml
@@ -0,0 +1,289 @@
+<?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.ComBatteryCommodityOrderMapper">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComBatteryCommodityOrder" id="ComBatteryCommodityOrderMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="userId" column="user_id" jdbcType="INTEGER"/>
+        <result property="storeId" column="store_id" jdbcType="INTEGER"/>
+        <result property="addressId" column="address_id" jdbcType="INTEGER"/>
+        <result property="activityId" column="activity_id" jdbcType="INTEGER"/>
+        <result property="commodityId" column="commodity_id" jdbcType="INTEGER"/>
+        <result property="specsId" column="specs_id" jdbcType="INTEGER"/>
+        <result property="orderNo" column="order_no" jdbcType="VARCHAR"/>
+        <result property="activityType" column="activity_type" jdbcType="INTEGER"/>
+        <result property="status" column="status" jdbcType="INTEGER"/>
+        <result property="collageStatus" column="collage_status" jdbcType="INTEGER"/>
+        <result property="bargainStatus" column="bargain_status" jdbcType="INTEGER"/>
+        <result property="payStatus" column="pay_status" jdbcType="INTEGER"/>
+        <result property="isDel" column="is_del" jdbcType="INTEGER"/>
+        <result property="payType" column="pay_type" jdbcType="INTEGER"/>
+        <result property="count" column="count" jdbcType="INTEGER"/>
+        <result property="price" column="price" jdbcType="VARCHAR"/>
+        <result property="amount" column="amount" jdbcType="VARCHAR"/>
+        <result property="freight" column="freight" jdbcType="VARCHAR"/>
+        <result property="logisticsNo" column="logistics_no" jdbcType="VARCHAR"/>
+        <result property="logisticsCompany" column="logistics_company" jdbcType="VARCHAR"/>
+        <result property="finalAmount" column="final_amount" jdbcType="VARCHAR"/>
+        <result property="payNo" column="pay_no" jdbcType="VARCHAR"/>
+        <result property="payAmount" column="pay_amount" jdbcType="VARCHAR"/>
+        <result property="remark" column="remark" jdbcType="VARCHAR"/>
+        <result property="deliveryTime" column="delivery_time" jdbcType="TIMESTAMP"/>
+        <result property="receivingTime" column="receiving_time" jdbcType="TIMESTAMP"/>
+        <result property="createAt" column="create_at" jdbcType="TIMESTAMP"/>
+        <result property="createBy" column="create_by" jdbcType="INTEGER"/>
+        <result property="updateAt" column="update_at" jdbcType="TIMESTAMP"/>
+        <result property="updateBy" column="update_by" jdbcType="INTEGER"/>
+        <result property="receivingName" column="receiving_name" jdbcType="VARCHAR"/>
+        <result property="receivingPhone" column="receiving_phone" jdbcType="VARCHAR"/>
+        <result property="receivingRegion" column="receiving_region" jdbcType="VARCHAR"/>
+        <result property="receivingAddress" column="receiving_address" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <!--查询单个-->
+    <select id="queryById" resultType="com.panzhihua.common.model.vos.common.ComBatteryCommodityOrderVo">
+        SELECT
+        cbco.id,
+        cbco.user_id,
+        cbco.store_id,
+        cbco.address_id,
+        cbco.activity_id,
+        cbco.commodity_id,
+        cbco.specs_id,
+        cbco.order_no,
+        cbco.activity_type,
+        cbco.`status`,
+        cbco.collage_status,
+        cbco.bargain_status,
+        cbco.pay_status,
+        cbco.pay_type,
+        cbco.count,
+        cbco.price,
+        cbco.amount,
+        cbco.freight,
+        cbco.logistics_no,
+        cbco.logistics_company,
+        cbco.final_amount,
+        cbco.pay_no,
+        cbco.pay_amount,
+        cbco.remark,
+        cbco.delivery_time,
+        cbco.receiving_time,
+        cbco.create_at,
+        cbco.create_by,
+        cbco.update_at,
+        cbco.update_by,
+        cbco.receiving_name,
+        cbco.receiving_phone,
+        cbco.receiving_region_code,
+        cbco.receiving_region,
+        cbco.receiving_address,
+        su.phone,
+        cbc.`name` as commodityName,
+        cbcs.`name` as specsName
+        FROM
+        com_battery_commodity_order AS cbco
+        left join sys_user as su on su.user_id = cbco.user_id
+        left join com_battery_commodity as cbc on cbc.id = cbco.commodity_id
+        left join com_battery_commodity_specs as cbcs on cbcs.id = cbco.specs_id
+        where cbco.id = #{id}
+    </select>
+
+    <!--查询指定行数据-->
+    <select id="queryAllByLimit" resultType="com.panzhihua.common.model.vos.common.ComBatteryCommodityOrderVo">
+        SELECT
+        cbco.id,
+        cbco.user_id,
+        cbco.store_id,
+        cbco.address_id,
+        cbco.activity_id,
+        cbco.commodity_id,
+        cbco.specs_id,
+        cbco.order_no,
+        cbco.activity_type,
+        cbco.`status`,
+        cbco.collage_status,
+        cbco.bargain_status,
+        cbco.pay_status,
+        cbco.pay_type,
+        cbco.count,
+        cbco.price,
+        cbco.amount,
+        cbco.freight,
+        cbco.logistics_no,
+        cbco.logistics_company,
+        cbco.final_amount,
+        cbco.pay_no,
+        cbco.pay_amount,
+        cbco.remark,
+        cbco.delivery_time,
+        cbco.receiving_time,
+        cbco.create_at,
+        cbco.create_by,
+        cbco.update_at,
+        cbco.update_by,
+        cbco.receiving_name,
+        cbco.receiving_phone,
+        cbco.receiving_region_code,
+        cbco.receiving_region,
+        cbco.receiving_address,
+        su.phone,
+        su.nick_name as nickName,
+        cbc.`name` as commodityName,
+        cbcs.`images` as commodityImages,
+        cbcs.`name` as specsName
+        FROM
+        com_battery_commodity_order AS cbco
+        left join sys_user as su on su.user_id = cbco.user_id
+        left join com_battery_commodity as cbc on cbc.id = cbco.commodity_id
+        left join com_battery_commodity_specs as cbcs on cbcs.id = cbco.specs_id
+        <where>
+            and cbco.is_del = 2
+            <if test="dto.id != null">
+                and cbco.id = #{dto.id}
+            </if>
+            <if test="dto.userId != null">
+                and cbco.user_id = #{dto.userId}
+            </if>
+            <if test="dto.storeId != null">
+                and cbco.store_id = #{dto.storeId}
+            </if>
+            <if test="dto.activityId != null">
+                and cbco.activity_id = #{dto.activityId}
+            </if>
+            <if test="dto.orderNo != null and dto.orderNo != ''">
+                and cbco.order_no = #{dto.orderNo}
+            </if>
+            <if test="dto.activityType != null">
+                and cbco.activity_type = #{dto.activityType}
+            </if>
+            <if test="dto.status != null">
+                and cbco.status = #{dto.status}
+            </if>
+            <if test="dto.collageStatus != null">
+                and cbco.collage_status = #{dto.collageStatus}
+            </if>
+            <if test="dto.bargainStatus != null">
+                and cbco.bargain_status = #{dto.bargainStatus}
+            </if>
+            <if test="dto.payStatus != null">
+                and cbco.pay_status = #{dto.payStatus}
+            </if>
+            <if test="dto.payType != null">
+                and cbco.pay_type = #{dto.payType}
+            </if>
+            <if test="dto.isApplets != null and dto.isApplets == 1">
+                and cbco.status in (2,3,4)
+            </if>
+            <if test="dto.isAdmin != null and dto.isAdmin == 1">
+                and cbco.status in (2,3,4)
+            </if>
+            <if test="dto.payNo != null and dto.payNo != ''">
+                and cbco.pay_no = #{dto.payNo}
+            </if>
+        </where>
+        order by cbco.create_at desc
+    </select>
+
+    <!--查询所有数据-->
+    <select id="queryAllByList" resultType="com.panzhihua.common.model.vos.common.ComBatteryCommodityOrderVo">
+        SELECT
+        cbco.id,
+        cbco.user_id,
+        cbco.store_id,
+        cbco.address_id,
+        cbco.activity_id,
+        cbco.commodity_id,
+        cbco.specs_id,
+        cbco.order_no,
+        cbco.activity_type,
+        cbco.`status`,
+        cbco.collage_status,
+        cbco.bargain_status,
+        cbco.pay_status,
+        cbco.pay_type,
+        cbco.count,
+        cbco.price,
+        cbco.amount,
+        cbco.freight,
+        cbco.logistics_no,
+        cbco.logistics_company,
+        cbco.final_amount,
+        cbco.pay_no,
+        cbco.pay_amount,
+        cbco.remark,
+        cbco.delivery_time,
+        cbco.receiving_time,
+        cbco.create_at,
+        cbco.create_by,
+        cbco.update_at,
+        cbco.update_by,
+        cbco.receiving_name,
+        cbco.receiving_phone,
+        cbco.receiving_region_code,
+        cbco.receiving_region,
+        cbco.receiving_address,
+        su.phone,
+        cbc.`name` as commodityName,
+        cbcs.`images` as commodityImages,
+        cbcs.`name` as specsName
+        FROM
+        com_battery_commodity_order AS cbco
+        left join sys_user as su on su.user_id = cbco.user_id
+        left join com_battery_commodity as cbc on cbc.id = cbco.commodity_id
+        left join com_battery_commodity_specs as cbcs on cbcs.id = cbco.specs_id
+        <where>
+            and cbco.is_del = 2
+            <if test="dto.id != null">
+                and cbco.id = #{dto.id}
+            </if>
+            <if test="dto.userId != null">
+                and cbco.user_id = #{dto.userId}
+            </if>
+            <if test="dto.storeId != null">
+                and cbco.store_id = #{dto.storeId}
+            </if>
+            <if test="dto.activityId != null">
+                and cbco.activity_id = #{dto.activityId}
+            </if>
+            <if test="dto.orderNo != null and dto.orderNo != ''">
+                and cbco.order_no = #{dto.orderNo}
+            </if>
+            <if test="dto.activityType != null">
+                and cbco.activity_type = #{dto.activityType}
+            </if>
+            <if test="dto.status != null">
+                and cbco.status = #{dto.status}
+            </if>
+            <if test="dto.collageStatus != null">
+                and cbco.collage_status = #{dto.collageStatus}
+            </if>
+            <if test="dto.bargainStatus != null">
+                and cbco.bargain_status = #{dto.bargainStatus}
+            </if>
+            <if test="dto.payStatus != null">
+                and cbco.pay_status = #{dto.payStatus}
+            </if>
+            <if test="dto.payType != null">
+                and cbco.pay_type = #{dto.payType}
+            </if>
+            <if test="dto.payNo != null and dto.payNo != ''">
+                and cbco.pay_no = #{dto.payNo}
+            </if>
+        </where>
+        order by cbco.create_at desc
+    </select>
+
+    <select id="queryTeamIdByUserId" resultType="com.panzhihua.common.model.vos.common.ComBatteryActivityTeamVo">
+        select id as teamId,create_at as teamEndTime from com_battery_commodity_order_collage_team
+        where activity_id = #{activityId} and user_id = #{userId} and status = 1
+    </select>
+
+    <select id="queryTeamIdByUserIdBargain" resultType="com.panzhihua.common.model.vos.common.ComBatteryActivityTeamVo">
+        select cbcob.id as teamId,cbcob.create_at as teamEndTime from com_battery_commodity_order_bargain as cbcob
+        left join com_battery_commodity_order as cbco on cbco.id = cbcob.order_id
+        where cbcob.user_id = #{userId} and cbcob.activity_id = #{activityId} and cbco.bargain_status = 1
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommoditySpecsMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommoditySpecsMapper.xml
new file mode 100644
index 0000000..9793f32
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryCommoditySpecsMapper.xml
@@ -0,0 +1,105 @@
+<?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.ComBatteryCommoditySpecsMapper">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComBatteryCommoditySpecs" id="ComBatteryCommoditySpecsMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="storeId" column="store_id" jdbcType="INTEGER"/>
+        <result property="commodityId" column="commodity_id" jdbcType="INTEGER"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="stock" column="stock" jdbcType="INTEGER"/>
+        <result property="price" column="price" jdbcType="VARCHAR"/>
+        <result property="images" column="images" jdbcType="VARCHAR"/>
+        <result property="isDel" column="is_del" jdbcType="INTEGER"/>
+        <result property="createAt" column="create_at" jdbcType="TIMESTAMP"/>
+        <result property="createBy" column="create_by" jdbcType="INTEGER"/>
+        <result property="updateAt" column="update_at" jdbcType="TIMESTAMP"/>
+        <result property="updateBy" column="update_by" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <!--查询单个-->
+    <select id="queryById" resultType="com.panzhihua.common.model.vos.common.ComBatteryCommoditySpecsVo">
+        SELECT
+            cbcs.id,
+            cbcs.store_id,
+            cbcs.commodity_id,
+            cbcs.`name`,
+            cbcs.stock,
+            cbcs.price,
+            cbcs.images,
+            cbcs.create_at,
+            cbcs.create_by,
+            cbcs.update_at,
+            cbcs.update_by,
+            cbc.`name` as commodityName,
+            cbc.`postage`
+        FROM
+            com_battery_commodity_specs as cbcs
+            left join com_battery_commodity as cbc on cbc.id = cbcs.commodity_id
+        where cbcs.id = #{id}
+    </select>
+
+    <!--查询指定行数据-->
+    <select id="queryAllByLimit" resultType="com.panzhihua.common.model.vos.common.ComBatteryCommoditySpecsVo">
+        select
+        cbcs.id, cbcs.store_id, cbcs.commodity_id, cbcs.`name`, cbcs.stock, cbcs.price, cbcs.images, cbcs.is_del, cbcs.create_at
+             , cbcs.create_by, cbcs.update_at, cbcs.update_by,cbc.`name` as commodityName
+        from com_battery_commodity_specs as cbcs
+        left join com_battery_commodity as cbc on cbc.id = cbcs.commodity_id
+        <where>
+            and cbcs.is_del = 2
+            <if test="dto.id != null">
+                and cbcs.id = #{dto.id}
+            </if>
+            <if test="dto.storeId != null">
+                and cbcs.store_id = #{dto.storeId}
+            </if>
+            <if test="dto.status != null">
+                and cbc.status = #{dto.status}
+            </if>
+            <if test="dto.commodityId != null">
+                and cbcs.commodity_id = #{dto.commodityId}
+            </if>
+            <if test="dto.keyWord != null and dto.keyWord != ''">
+                and (
+                    cbcs.`name` like concat('%',#{dto.keyWord},'%') or
+                    cbc.`name` like concat('%',#{dto.keyWord},'%') or
+                    cbcs.commodity_id like concat('%',#{dto.keyWord},'%')
+                )
+            </if>
+        </where>
+        order by cbcs.create_at desc
+    </select>
+
+    <!--查询所有数据-->
+    <select id="queryAllByList" resultType="com.panzhihua.common.model.vos.common.ComBatteryCommoditySpecsVo">
+        select
+        id, store_id, commodity_id, name, stock, price, images, is_del, create_at, create_by, update_at, update_by
+        from com_battery_commodity_specs
+        <where>
+            and is_del = 2
+            <if test="dto.id != null">
+                and id = #{dto.id}
+            </if>
+            <if test="dto.storeId != null">
+                and store_id = #{dto.storeId}
+            </if>
+            <if test="dto.commodityId != null">
+                and commodity_id = #{dto.commodityId}
+            </if>
+            <if test="dto.keyWord != null and dto.keyWord != ''">
+                and `name` like concat('%',#{dto.keyWord},'%')
+            </if>
+        </where>
+        order by create_at desc
+    </select>
+
+    <select id="queryAllByCommodityId" resultType="com.panzhihua.common.model.vos.common.ComBatteryCommoditySpecsVo">
+        select
+            id, store_id, commodity_id, name, stock, price, images, is_del, create_at, create_by, update_at, update_by
+        from com_battery_commodity_specs
+        where commodity_id = #{commodityId}
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryStoreClassMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryStoreClassMapper.xml
new file mode 100644
index 0000000..4ed6acf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryStoreClassMapper.xml
@@ -0,0 +1,72 @@
+<?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.ComBatteryStoreClassMapper">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComBatteryStoreClass" id="ComBatteryStoreClassMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="storeId" column="store_id" jdbcType="INTEGER"/>
+        <result property="status" column="status" jdbcType="INTEGER"/>
+        <result property="isDel" column="is_del" jdbcType="INTEGER"/>
+        <result property="createAt" column="create_at" jdbcType="TIMESTAMP"/>
+        <result property="createBy" column="create_by" jdbcType="INTEGER"/>
+        <result property="updateAt" column="update_at" jdbcType="TIMESTAMP"/>
+        <result property="updateBy" column="update_by" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <!--查询单个-->
+    <select id="queryById" resultType="com.panzhihua.common.model.vos.common.ComBatteryStoreClassVo">
+        select
+          id, name, store_id, status, is_del, create_at, create_by, update_at, update_by
+        from com_battery_store_class
+        where id = #{id}
+    </select>
+
+    <!--查询指定行数据-->
+    <select id="queryAllByLimit" resultType="com.panzhihua.common.model.vos.common.ComBatteryStoreClassVo">
+        select
+        id, name, store_id, status, is_del, create_at, create_by, update_at, update_by
+        from com_battery_store_class
+        <where>
+            and is_del = 2
+            <if test="dto.id != null">
+                and id = #{dto.id}
+            </if>
+            <if test="dto.name != null and dto.name != ''">
+                and name = #{dto.name}
+            </if>
+            <if test="dto.storeId != null">
+                and store_id = #{dto.storeId}
+            </if>
+            <if test="dto.status != null">
+                and status = #{dto.status}
+            </if>
+        </where>
+        order by create_at desc
+    </select>
+
+    <!--查询所有数据-->
+    <select id="queryAllByList" resultType="com.panzhihua.common.model.vos.common.ComBatteryStoreClassVo">
+        select
+        id, name, store_id, status, is_del, create_at, create_by, update_at, update_by
+        from com_battery_store_class
+        <where>
+            and is_del = 2
+            <if test="dto.id != null">
+                and id = #{dto.id}
+            </if>
+            <if test="dto.name != null and dto.name != ''">
+                and name = #{dto.name}
+            </if>
+            <if test="dto.storeId != null">
+                and store_id = #{dto.storeId}
+            </if>
+            <if test="dto.status != null">
+                and status = #{dto.status}
+            </if>
+        </where>
+        order by create_at desc
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryStoreMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryStoreMapper.xml
new file mode 100644
index 0000000..8fb2f26
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryStoreMapper.xml
@@ -0,0 +1,122 @@
+<?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.ComBatteryStoreMapper">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComBatteryStore" id="ComBatteryStoreMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="regPhone" column="reg_phone" jdbcType="VARCHAR"/>
+        <result property="phone" column="phone" jdbcType="VARCHAR"/>
+        <result property="account" column="account" jdbcType="VARCHAR"/>
+        <result property="status" column="status" jdbcType="INTEGER"/>
+        <result property="isDel" column="is_del" jdbcType="INTEGER"/>
+        <result property="logo" column="logo" jdbcType="VARCHAR"/>
+        <result property="introduction" column="introduction" jdbcType="VARCHAR"/>
+        <result property="address" column="address" jdbcType="VARCHAR"/>
+        <result property="detailAddress" column="detail_address" jdbcType="VARCHAR"/>
+        <result property="longitude" column="longitude" jdbcType="VARCHAR"/>
+        <result property="latitude" column="latitude" jdbcType="VARCHAR"/>
+        <result property="createAt" column="create_at" jdbcType="TIMESTAMP"/>
+        <result property="createBy" column="create_by" jdbcType="INTEGER"/>
+        <result property="updateAt" column="update_at" jdbcType="TIMESTAMP"/>
+        <result property="updateBy" column="update_by" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <!--查询单个-->
+    <select id="queryById" resultType="com.panzhihua.common.model.vos.common.ComBatteryStoreVo">
+        select
+            id, name, reg_phone, phone, account, status, is_del, logo, introduction, address, detail_address, longitude, latitude, create_at, create_by, update_at, update_by
+        from com_battery_store
+        where id = #{id}
+    </select>
+
+    <!--查询指定行数据-->
+    <select id="queryAllByLimit" resultType="com.panzhihua.common.model.vos.common.ComBatteryStoreVo">
+        select
+        id, name, reg_phone, phone, account, status, is_del, logo, introduction, address, detail_address, longitude,
+        latitude, create_at, create_by, update_at, update_by,
+        (select count(id) from com_battery_commodity_order where store_id = cbs.id and `status` in (2,3,4)
+        and create_at between DATE_ADD(curdate(),interval -day(curdate())+1 day) and now()) as monthSale
+        from com_battery_store as cbs
+        <where>
+            and is_del = 2
+            <if test="dto.id != null">
+                and id = #{dto.id}
+            </if>
+            <if test="dto.name != null and dto.name != ''">
+                and `name` = #{dto.name}
+            </if>
+            <if test="dto.regPhone != null and dto.regPhone != ''">
+                and reg_phone = #{dto.regPhone}
+            </if>
+            <if test="dto.phone != null and dto.phone != ''">
+                and phone = #{dto.phone}
+            </if>
+            <if test="dto.account != null and dto.account != ''">
+                and account = #{dto.account}
+            </if>
+            <if test="dto.status != null">
+                and status = #{dto.status}
+            </if>
+            <if test="dto.keyWord != null and dto.keyWord != ''">
+                and (`name` like concat('%',#{dto.keyWord},'%') or
+                `reg_phone` like concat('%',#{dto.keyWord},'%') or
+                `account` like concat('%',#{dto.keyWord},'%')
+                )
+            </if>
+        </where>
+        order by create_at desc
+    </select>
+
+    <!--查询所有数据-->
+    <select id="queryAllByList" resultType="com.panzhihua.common.model.vos.common.ComBatteryStoreVo">
+        select
+        id, name, reg_phone, phone, account, status, is_del, logo, introduction, address, detail_address, longitude,
+        latitude, create_at, create_by, update_at, update_by,
+        (select count(id) from com_battery_commodity_order where store_id = cbs.id and `status` in (2,3,4)
+        and create_at between DATE_ADD(curdate(),interval -day(curdate())+1 day) and now()) as monthSale
+        from com_battery_store as cbs
+        <where>
+            and is_del = 2
+            <if test="dto.id != null">
+                and id = #{dto.id}
+            </if>
+            <if test="dto.name != null and dto.name != ''">
+                and `name` = #{dto.name}
+            </if>
+            <if test="dto.regPhone != null and dto.regPhone != ''">
+                and reg_phone = #{dto.regPhone}
+            </if>
+            <if test="dto.phone != null and dto.phone != ''">
+                and phone = #{dto.phone}
+            </if>
+            <if test="dto.account != null and dto.account != ''">
+                and account = #{dto.account}
+            </if>
+            <if test="dto.status != null">
+                and status = #{dto.status}
+            </if>
+            <if test="dto.keyWord != null and dto.keyWord != ''">
+                and (`name` like concat('%',#{dto.keyWord},'%') or
+                `reg_phone` like concat('%',#{dto.keyWord},'%') or
+                `account` like concat('%',#{dto.keyWord},'%')
+                )
+            </if>
+        </where>
+        order by create_at desc
+    </select>
+
+    <select id="getStoreUserCountByAccount" resultType="integer">
+        select count(user_id) from sys_user where `type` = 20 and account = #{account}
+    </select>
+
+    <select id="getStoreUserCountByPhone" resultType="integer">
+        select count(user_id) from sys_user where `type` = 20 and phone = #{regPhone}
+    </select>
+
+    <delete id="deleteStoreUserByStoreId">
+        delete from sys_user where `type` = 20 and community_id = #{storeId}
+    </delete>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryTradeOrderMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryTradeOrderMapper.xml
new file mode 100644
index 0000000..4bad951
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryTradeOrderMapper.xml
@@ -0,0 +1,156 @@
+<?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.ComBatteryTradeOrderMapper">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComBatteryTradeOrder" id="ComBatteryTradeOrderMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="userId" column="user_id" jdbcType="INTEGER"/>
+        <result property="openId" column="open_id" jdbcType="VARCHAR"/>
+        <result property="orderNo" column="order_no" jdbcType="VARCHAR"/>
+        <result property="status" column="status" jdbcType="INTEGER"/>
+        <result property="payType" column="pay_type" jdbcType="INTEGER"/>
+        <result property="payStatus" column="pay_status" jdbcType="INTEGER"/>
+        <result property="orderAmount" column="order_amount" jdbcType="VARCHAR"/>
+        <result property="payAmount" column="pay_amount" jdbcType="VARCHAR"/>
+        <result property="payNo" column="pay_no" jdbcType="VARCHAR"/>
+        <result property="payTime" column="pay_time" jdbcType="TIMESTAMP"/>
+        <result property="tradeType" column="trade_type" jdbcType="INTEGER"/>
+        <result property="tradeOrderId" column="trade_order_id" jdbcType="INTEGER"/>
+        <result property="tradeOrderNo" column="trade_order_no" jdbcType="VARCHAR"/>
+        <result property="createAt" column="create_at" jdbcType="TIMESTAMP"/>
+        <result property="createBy" column="create_by" jdbcType="INTEGER"/>
+        <result property="updateAt" column="update_at" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+    <!--查询单个-->
+    <select id="queryById" resultMap="ComBatteryTradeOrderMap">
+        select
+          id, user_id, open_id, order_no, status, pay_type, pay_status, order_amount, pay_amount, pay_no, pay_time, trade_type, trade_order_id, trade_order_no, create_at, create_by, update_at
+        from com_battery_trade_order
+        where id = #{id}
+    </select>
+
+    <!--查询指定行数据-->
+    <select id="queryAllByLimit" resultMap="ComBatteryTradeOrderMap">
+        select
+          id, user_id, open_id, order_no, status, pay_type, pay_status, order_amount, pay_amount, pay_no, pay_time, trade_type, trade_order_id, trade_order_no, create_at, create_by, update_at
+        from com_battery_trade_order
+        <where>
+            <if test="dto.id != null">
+                and id = #{dto.id}
+            </if>
+            <if test="dto.userId != null">
+                and user_id = #{dto.userId}
+            </if>
+            <if test="dto.openId != null and dto.openId != ''">
+                and open_id = #{dto.openId}
+            </if>
+            <if test="dto.orderNo != null and dto.orderNo != ''">
+                and order_no = #{dto.orderNo}
+            </if>
+            <if test="dto.status != null">
+                and status = #{dto.status}
+            </if>
+            <if test="dto.payType != null">
+                and pay_type = #{dto.payType}
+            </if>
+            <if test="dto.payStatus != null">
+                and pay_status = #{dto.payStatus}
+            </if>
+            <if test="dto.orderAmount != null">
+                and order_amount = #{dto.orderAmount}
+            </if>
+            <if test="dto.payAmount != null">
+                and pay_amount = #{dto.payAmount}
+            </if>
+            <if test="dto.payNo != null and dto.payNo != ''">
+                and pay_no = #{dto.payNo}
+            </if>
+            <if test="dto.payTime != null">
+                and pay_time = #{dto.payTime}
+            </if>
+            <if test="dto.tradeType != null">
+                and trade_type = #{dto.tradeType}
+            </if>
+            <if test="dto.tradeOrderId != null">
+                and trade_order_id = #{dto.tradeOrderId}
+            </if>
+            <if test="dto.tradeOrderNo != null and dto.tradeOrderNo != ''">
+                and trade_order_no = #{dto.tradeOrderNo}
+            </if>
+            <if test="dto.createAt != null">
+                and create_at = #{dto.createAt}
+            </if>
+            <if test="dto.createBy != null">
+                and create_by = #{dto.createBy}
+            </if>
+            <if test="dto.updateAt != null">
+                and update_at = #{dto.updateAt}
+            </if>
+        </where>
+        order by create_at desc
+    </select>
+
+    <!--查询所有数据-->
+    <select id="queryAllByList" resultMap="ComBatteryTradeOrderMap">
+        select
+          id, user_id, open_id, order_no, status, pay_type, pay_status, order_amount, pay_amount, pay_no, pay_time, trade_type, trade_order_id, trade_order_no, create_at, create_by, update_at
+        from com_battery_trade_order
+        <where>
+            <if test="dto.id != null">
+                and id = #{dto.id}
+            </if>
+            <if test="dto.userId != null">
+                and user_id = #{dto.userId}
+            </if>
+            <if test="dto.openId != null and dto.openId != ''">
+                and open_id = #{dto.openId}
+            </if>
+            <if test="dto.orderNo != null and dto.orderNo != ''">
+                and order_no = #{dto.orderNo}
+            </if>
+            <if test="dto.status != null">
+                and status = #{dto.status}
+            </if>
+            <if test="dto.payType != null">
+                and pay_type = #{dto.payType}
+            </if>
+            <if test="dto.payStatus != null">
+                and pay_status = #{dto.payStatus}
+            </if>
+            <if test="dto.orderAmount != null">
+                and order_amount = #{dto.orderAmount}
+            </if>
+            <if test="dto.payAmount != null">
+                and pay_amount = #{dto.payAmount}
+            </if>
+            <if test="dto.payNo != null and dto.payNo != ''">
+                and pay_no = #{dto.payNo}
+            </if>
+            <if test="dto.payTime != null">
+                and pay_time = #{dto.payTime}
+            </if>
+            <if test="dto.tradeType != null">
+                and trade_type = #{dto.tradeType}
+            </if>
+            <if test="dto.tradeOrderId != null">
+                and trade_order_id = #{dto.tradeOrderId}
+            </if>
+            <if test="dto.tradeOrderNo != null and dto.tradeOrderNo != ''">
+                and trade_order_no = #{dto.tradeOrderNo}
+            </if>
+            <if test="dto.createAt != null">
+                and create_at = #{dto.createAt}
+            </if>
+            <if test="dto.createBy != null">
+                and create_by = #{dto.createBy}
+            </if>
+            <if test="dto.updateAt != null">
+                and update_at = #{dto.updateAt}
+            </if>
+        </where>
+        order by create_at desc
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryUserAddressMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryUserAddressMapper.xml
new file mode 100644
index 0000000..5a6f918
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComBatteryUserAddressMapper.xml
@@ -0,0 +1,107 @@
+<?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.ComBatteryUserAddressMapper">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComBatteryUserAddress" id="ComBatteryUserAddressMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="phone" column="phone" jdbcType="VARCHAR"/>
+        <result property="address" column="address" jdbcType="VARCHAR"/>
+        <result property="isDefault" column="is_default" jdbcType="INTEGER"/>
+        <result property="provinceAdcode" column="province_adcode" jdbcType="VARCHAR"/>
+        <result property="provinceName" column="province_name" jdbcType="VARCHAR"/>
+        <result property="cityAdcode" column="city_adcode" jdbcType="VARCHAR"/>
+        <result property="cityName" column="city_name" jdbcType="VARCHAR"/>
+        <result property="districtAdcode" column="district_adcode" jdbcType="VARCHAR"/>
+        <result property="districtName" column="district_name" jdbcType="VARCHAR"/>
+        <result property="createAt" column="create_at" jdbcType="TIMESTAMP"/>
+        <result property="createBy" column="create_by" jdbcType="INTEGER"/>
+        <result property="updateAt" column="update_at" jdbcType="TIMESTAMP"/>
+        <result property="updateBy" column="update_by" jdbcType="INTEGER"/>
+        <result property="userId" column="user_id" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <!--查询单个-->
+    <select id="queryById" resultType="com.panzhihua.common.model.vos.common.ComBatteryUserAddressVo">
+        select
+          id, user_id, name, phone, address, is_default, province_adcode, province_name, city_adcode, city_name, district_adcode, district_name, create_at, create_by, update_at, update_by
+        from com_battery_user_address
+        where id = #{id}
+    </select>
+
+    <!--查询指定行数据-->
+    <select id="queryAllByLimit" resultType="com.panzhihua.common.model.vos.common.ComBatteryUserAddressVo">
+        select
+        id, user_id, name, phone, address, is_default, province_adcode, province_name, city_adcode, city_name, district_adcode,
+        district_name, create_at, create_by, update_at, update_by
+        from com_battery_user_address
+        <where>
+            <if test="dto.id != null">
+                and id = #{dto.id}
+            </if>
+            <if test="dto.userId != null">
+                and user_id = #{dto.userId}
+            </if>
+            <if test="dto.name != null and dto.name != ''">
+                and `name` = #{dto.name}
+            </if>
+            <if test="dto.phone != null and dto.phone != ''">
+                and phone = #{dto.phone}
+            </if>
+            <if test="dto.isDefault != null">
+                and is_default = #{dto.isDefault}
+            </if>
+            <if test="dto.provinceAdcode != null and dto.provinceAdcode != ''">
+                and province_adcode = #{dto.provinceAdcode}
+            </if>
+            <if test="dto.cityAdcode != null and dto.cityAdcode != ''">
+                and city_adcode = #{dto.cityAdcode}
+            </if>
+            <if test="dto.districtAdcode != null and dto.districtAdcode != ''">
+                and district_adcode = #{dto.districtAdcode}
+            </if>
+        </where>
+        order by create_at desc
+    </select>
+
+    <!--查询所有数据-->
+    <select id="queryAllByList" resultType="com.panzhihua.common.model.vos.common.ComBatteryUserAddressVo">
+        select
+        id, user_id, name, phone, address, is_default, province_adcode, province_name, city_adcode, city_name, district_adcode,
+        district_name, create_at, create_by, update_at, update_by
+        from com_battery_user_address
+        <where>
+            <if test="dto.id != null">
+                and id = #{dto.id}
+            </if>
+            <if test="dto.userId != null">
+                and user_id = #{dto.userId}
+            </if>
+            <if test="dto.name != null and dto.name != ''">
+                and `name` = #{dto.name}
+            </if>
+            <if test="dto.phone != null and dto.phone != ''">
+                and phone = #{dto.phone}
+            </if>
+            <if test="dto.isDefault != null">
+                and is_default = #{dto.isDefault}
+            </if>
+            <if test="dto.provinceAdcode != null and dto.provinceAdcode != ''">
+                and province_adcode = #{dto.provinceAdcode}
+            </if>
+            <if test="dto.cityAdcode != null and dto.cityAdcode != ''">
+                and city_adcode = #{dto.cityAdcode}
+            </if>
+            <if test="dto.districtAdcode != null and dto.districtAdcode != ''">
+                and district_adcode = #{dto.districtAdcode}
+            </if>
+        </where>
+        order by create_at desc
+    </select>
+
+    <update id="updateUserAddressIsDefault">
+        update com_battery_user_address set is_default = 2 where user_id = #{userId}
+    </update>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComChangeCarBrandMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComChangeCarBrandMapper.xml
new file mode 100644
index 0000000..b702da0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComChangeCarBrandMapper.xml
@@ -0,0 +1,114 @@
+<?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.ComChangeCarBrandMapper">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComChangeCarBrand" id="ComChangeCarBrandMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="code" column="code" jdbcType="VARCHAR"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="status" column="status" jdbcType="INTEGER"/>
+        <result property="logo" column="logo" jdbcType="VARCHAR"/>
+        <result property="isDel" column="is_del" jdbcType="INTEGER"/>
+        <result property="createAt" column="create_at" jdbcType="TIMESTAMP"/>
+        <result property="createBy" column="create_by" jdbcType="INTEGER"/>
+        <result property="updateAt" column="update_at" jdbcType="TIMESTAMP"/>
+        <result property="updateBy" column="update_by" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <!--查询单个-->
+    <select id="queryById" resultType="com.panzhihua.common.model.vos.common.ComChangeCarBrandVo">
+        SELECT
+            cccb.id,
+            cccb.`code`,
+            cccb.`name`,
+            cccb.`status`,
+            cccb.logo,
+            cccb.is_del,
+            cccb.create_at,
+            cccb.create_by,
+            cccb.update_at,
+            su.`name` as createByName,
+            cccb.update_by
+        FROM
+            com_change_car_brand as cccb
+            left join sys_user as su on su.user_id = cccb.create_by
+        where id = #{id}
+    </select>
+
+    <!--查询指定行数据-->
+    <select id="queryAllByLimit" resultType="com.panzhihua.common.model.vos.common.ComChangeCarBrandVo">
+        SELECT
+        cccb.id,
+        cccb.`code`,
+        cccb.`name`,
+        cccb.`status`,
+        cccb.logo,
+        cccb.is_del,
+        cccb.create_at,
+        cccb.create_by,
+        cccb.update_at,
+        su.`name` as createByName,
+        cccb.update_by
+        FROM
+        com_change_car_brand as cccb
+        left join sys_user as su on su.user_id = cccb.create_by
+        <where>
+            and cccb.is_del = 2
+            <if test="dto.id != null">
+                and cccb.id = #{dto.id}
+            </if>
+            <if test="dto.code != null and dto.code != ''">
+                and cccb.code = #{dto.code}
+            </if>
+            <if test="dto.keyWord != null and dto.keyWord != ''">
+                and cccb.name like concat(#{dto.keyWord},'%')
+            </if>
+            <if test="dto.status != null">
+                and cccb.status = #{dto.status}
+            </if>
+        </where>
+        <if test="dto.isApplets != null and dto.isApplets == 1">
+            order by cccb.`name` asc
+        </if>
+        <if test="dto.isApplets != null and dto.isApplets == 2">
+            order by cccb.create_at desc
+        </if>
+    </select>
+
+    <!--查询所有数据-->
+    <select id="queryAllByList" resultType="com.panzhihua.common.model.vos.common.ComChangeCarBrandVo">
+        SELECT
+        cccb.id,
+        cccb.`code`,
+        cccb.`name`,
+        cccb.`status`,
+        cccb.logo,
+        cccb.is_del,
+        cccb.create_at,
+        cccb.create_by,
+        cccb.update_at,
+        su.`name` as createByName,
+        cccb.update_by
+        FROM
+        com_change_car_brand as cccb
+        left join sys_user as su on su.user_id = cccb.create_by
+        <where>
+            and cccb.is_del = 2
+            <if test="dto.id != null">
+                and cccb.id = #{dto.id}
+            </if>
+            <if test="dto.code != null and dto.code != ''">
+                and cccb.code = #{dto.code}
+            </if>
+            <if test="dto.keyWord != null and dto.keyWord != ''">
+                and cccb.name like concat('%',#{dto.keyWord},'%')
+            </if>
+            <if test="dto.status != null">
+                and cccb.status = #{dto.status}
+            </if>
+        </where>
+        order by cccb.create_at desc
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComChangeCarInquiryMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComChangeCarInquiryMapper.xml
new file mode 100644
index 0000000..6e3c428
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComChangeCarInquiryMapper.xml
@@ -0,0 +1,109 @@
+<?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.ComChangeCarInquiryMapper">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComChangeCarInquiry" id="ComChangeCarInquiryMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="userId" column="user_id" jdbcType="INTEGER"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="phone" column="phone" jdbcType="VARCHAR"/>
+        <result property="type" column="type" jdbcType="INTEGER"/>
+        <result property="isDel" column="is_del" jdbcType="INTEGER"/>
+        <result property="createAt" column="create_at" jdbcType="TIMESTAMP"/>
+        <result property="createBy" column="create_by" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <!--查询单个-->
+    <select id="queryById" resultType="com.panzhihua.common.model.vos.common.ComChangeCarInquiryVo">
+        SELECT
+            ccci.id,
+            ccci.user_id,
+            ccci.`name`,
+            ccci.phone,
+            ccci.type,
+            ccci.is_del,
+            ccci.create_at,
+            ccci.create_by,
+            su.`nick_name` as userName
+        FROM
+            com_change_car_inquiry as ccci
+            left join sys_user as su on su.user_id = ccci.user_id
+        where ccci.id = #{id}
+    </select>
+
+    <!--查询指定行数据-->
+    <select id="queryAllByLimit" resultType="com.panzhihua.common.model.vos.common.ComChangeCarInquiryVo">
+        SELECT
+        ccci.id,
+        ccci.user_id,
+        ccci.`name`,
+        ccci.phone,
+        ccci.type,
+        ccci.is_del,
+        ccci.create_at,
+        ccci.create_by,
+        su.`nick_name` as userName
+        FROM
+        com_change_car_inquiry as ccci
+        left join sys_user as su on su.user_id = ccci.user_id
+        <where>
+            and ccci.is_del = 2
+            <if test="dto.id != null">
+                and ccci.id = #{dto.id}
+            </if>
+            <if test="dto.userId != null">
+                and ccci.user_id = #{dto.userId}
+            </if>
+            <if test="dto.type != null">
+                and ccci.type = #{dto.type}
+            </if>
+            <if test="dto.keyWord != null and dto.keyWord != ''">
+                and (
+                    ccci.`name` like concat('%',#{dto.keyWord},'%') or
+                    ccci.`phone` like concat('%',#{dto.keyWord},'%') or
+                    su.`nick_name` like concat('%',#{dto.keyWord},'%')
+                )
+            </if>
+        </where>
+        order by ccci.create_at desc
+    </select>
+
+    <!--查询所有数据-->
+    <select id="queryAllByList" resultType="com.panzhihua.common.model.vos.common.ComChangeCarInquiryVo">
+        SELECT
+        ccci.id,
+        ccci.user_id,
+        ccci.`name`,
+        ccci.phone,
+        ccci.type,
+        ccci.is_del,
+        ccci.create_at,
+        ccci.create_by,
+        su.`nick_name` as userName
+        FROM
+        com_change_car_inquiry as ccci
+        left join sys_user as su on su.user_id = ccci.user_id
+        <where>
+            and ccci.is_del = 2
+            <if test="dto.id != null">
+                and ccci.id = #{dto.id}
+            </if>
+            <if test="dto.userId != null">
+                and ccci.user_id = #{dto.userId}
+            </if>
+            <if test="dto.type != null">
+                and ccci.type = #{dto.type}
+            </if>
+            <if test="dto.keyWord != null and dto.keyWord != ''">
+                and (
+                ccci.`name` like concat('%',#{dto.keyWord},'%') or
+                ccci.`phone` like concat('%',#{dto.keyWord},'%') or
+                su.`nick_name` like concat('%',#{dto.keyWord},'%')
+                )
+            </if>
+        </where>
+        order by ccci.create_at desc
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComChangeCarModelMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComChangeCarModelMapper.xml
new file mode 100644
index 0000000..119d7df
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComChangeCarModelMapper.xml
@@ -0,0 +1,123 @@
+<?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.ComChangeCarModelMapper">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComChangeCarModel" id="ComChangeCarModelMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="images" column="images" jdbcType="VARCHAR"/>
+        <result property="minPrice" column="min_price" jdbcType="VARCHAR"/>
+        <result property="brandId" column="brand_id" jdbcType="INTEGER"/>
+        <result property="detail" column="detail" jdbcType="VARCHAR"/>
+        <result property="isDel" column="is_del" jdbcType="INTEGER"/>
+        <result property="status" column="status" jdbcType="INTEGER"/>
+        <result property="createAt" column="create_at" jdbcType="TIMESTAMP"/>
+        <result property="createBy" column="create_by" jdbcType="INTEGER"/>
+        <result property="updateAt" column="update_at" jdbcType="TIMESTAMP"/>
+        <result property="updateBy" column="update_by" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <!--查询单个-->
+    <select id="queryById" resultType="com.panzhihua.common.model.vos.common.ComChangeCarModelVo">
+        SELECT
+            cccm.id,
+            cccm.`name`,
+            cccm.images,
+            cccm.min_price,
+            cccm.brand_id,
+            cccm.detail,
+            cccm.is_del,
+            cccm.`status`,
+            cccm.create_at,
+            cccm.create_by,
+            cccm.update_at,
+            cccm.update_by,
+            cccb.`name` as brandName
+        FROM
+            com_change_car_model as cccm
+            left join com_change_car_brand as cccb on cccb.id = cccm.brand_id
+        where cccm.id = #{id}
+    </select>
+
+    <!--查询指定行数据-->
+    <select id="queryAllByLimit" resultType="com.panzhihua.common.model.vos.common.ComChangeCarModelVo">
+        SELECT
+        cccm.id,
+        cccm.`name`,
+        cccm.images,
+        cccm.min_price,
+        cccm.brand_id,
+        cccm.detail,
+        cccm.is_del,
+        cccm.`status`,
+        cccm.create_at,
+        cccm.create_by,
+        cccm.update_at,
+        cccm.update_by,
+        cccb.`name` as brandName
+        FROM
+        com_change_car_model as cccm
+        left join com_change_car_brand as cccb on cccb.id = cccm.brand_id
+        <where>
+            and cccm.is_del = 2
+            <if test="dto.id != null">
+                and cccm.id = #{dto.id}
+            </if>
+            <if test="dto.keyWord != null and dto.keyWord != ''">
+                and (
+                cccb.name like concat('%',#{dto.keyWord},'%') or
+                cccm.name like concat('%',#{dto.keyWord},'%')
+                )
+            </if>
+            <if test="dto.brandId != null">
+                and cccm.brand_id = #{dto.brandId}
+            </if>
+            <if test="dto.status != null">
+                and cccm.status = #{dto.status}
+            </if>
+        </where>
+        order by cccm.create_at desc
+    </select>
+
+    <!--查询所有数据-->
+    <select id="queryAllByList" resultType="com.panzhihua.common.model.vos.common.ComChangeCarModelVo">
+        SELECT
+        cccm.id,
+        cccm.`name`,
+        cccm.images,
+        cccm.min_price,
+        cccm.brand_id,
+        cccm.detail,
+        cccm.is_del,
+        cccm.`status`,
+        cccm.create_at,
+        cccm.create_by,
+        cccm.update_at,
+        cccm.update_by,
+        cccb.`name` as brandName
+        FROM
+        com_change_car_model as cccm
+        left join com_change_car_brand as cccb on cccb.id = cccm.brand_id
+        <where>
+            and cccm.is_del = 2
+            <if test="dto.id != null">
+                and cccm.id = #{dto.id}
+            </if>
+            <if test="dto.keyWord != null and dto.keyWord != ''">
+                and (
+                cccb.name like concat('%',#{dto.keyWord},'%') or
+                cccm.name like concat('%',#{dto.keyWord},'%')
+                )
+            </if>
+            <if test="dto.brandId != null">
+                and cccm.brand_id = #{dto.brandId}
+            </if>
+            <if test="dto.status != null">
+                and cccm.status = #{dto.status}
+            </if>
+        </where>
+        order by cccm.create_at desc
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComChangeCarModelRelationMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComChangeCarModelRelationMapper.xml
new file mode 100644
index 0000000..bb3117b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComChangeCarModelRelationMapper.xml
@@ -0,0 +1,169 @@
+<?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.ComChangeCarModelRelationMapper">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComChangeCarModelRelation"
+               id="ComChangeCarModelRelationMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="modelId" column="model_id" jdbcType="INTEGER"/>
+        <result property="modelSpecsId" column="model_specs_id" jdbcType="INTEGER"/>
+        <result property="modelSpecsChildrenId" column="model_specs_children_id" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <!--查询单个-->
+    <select id="queryById" resultType="com.panzhihua.common.model.vos.common.ComChangeCarModelRelationVo">
+        SELECT
+            cccmr.id,
+            cccmr.model_id,
+            cccmr.model_specs_id,
+            cccmr.model_specs_children_id,
+            cccm.`name` as modelName,
+            cccm.`min_price` as minPrice,
+            cccm.`images`,
+            cccb.`name` as brandName,
+            cccms.`name` as specsName,
+            cccmsc.`name` as specsChildrenName
+        FROM
+            com_change_car_model_relation as cccmr
+                left join com_change_car_model as cccm on cccm.id = cccmr.model_id
+                left join com_change_car_model_specs as cccms on cccms.id = cccmr.model_specs_id
+                left join com_change_car_model_specs_children as cccmsc on cccmsc.id = cccmr.model_specs_children_id
+                left join com_change_car_brand as cccb on cccb.id = cccm.brand_id
+        where cccmr.id = #{id}
+    </select>
+
+    <!--查询指定行数据-->
+    <select id="queryAllByLimit" resultType="com.panzhihua.common.model.vos.common.ComChangeCarModelRelationVo">
+        SELECT
+        cccmr.id,
+        cccmr.model_id,
+        cccmr.model_specs_id,
+        cccmr.model_specs_children_id,
+        cccm.`name` as modelName,
+        cccm.`min_price` as minPrice,
+        cccm.`images`,
+        cccb.`name` as brandName,
+        cccms.`name` as specsName,
+        cccmsc.`name` as specsChildrenName
+        FROM
+        com_change_car_model_relation as cccmr
+        left join com_change_car_model as cccm on cccm.id = cccmr.model_id
+        left join com_change_car_model_specs as cccms on cccms.id = cccmr.model_specs_id
+        left join com_change_car_model_specs_children as cccmsc on cccmsc.id = cccmr.model_specs_children_id
+        left join com_change_car_brand as cccb on cccb.id = cccm.brand_id
+        <where>
+            <if test="dto.id != null">
+                and cccmr.id = #{dto.id}
+            </if>
+            <if test="dto.modelId != null">
+                and cccmr.model_id = #{dto.modelId}
+            </if>
+            <if test="dto.modelSpecsId != null">
+                and cccmr.model_specs_id = #{dto.modelSpecsId}
+            </if>
+            <if test="dto.modelSpecsChildrenId != null">
+                and cccmr.model_specs_children_id = #{dto.modelSpecsChildrenId}
+            </if>
+        </where>
+        order by cccmr.id desc
+    </select>
+
+    <!--查询所有数据-->
+    <select id="queryAllByList" resultType="com.panzhihua.common.model.vos.common.ComChangeCarModelRelationVo">
+        SELECT
+        cccmr.id,
+        cccmr.model_id,
+        cccmr.model_specs_id,
+        cccmr.model_specs_children_id,
+        cccm.`name` as modelName,
+        cccm.`min_price` as minPrice,
+        cccm.`images`,
+        cccb.`name` as brandName,
+        cccms.`name` as specsName,
+        cccmsc.`name` as specsChildrenName
+        FROM
+        com_change_car_model_relation as cccmr
+        left join com_change_car_model as cccm on cccm.id = cccmr.model_id
+        left join com_change_car_model_specs as cccms on cccms.id = cccmr.model_specs_id
+        left join com_change_car_model_specs_children as cccmsc on cccmsc.id = cccmr.model_specs_children_id
+        left join com_change_car_brand as cccb on cccb.id = cccm.brand_id
+        <where>
+            <if test="dto.id != null">
+                and id = #{dto.id}
+            </if>
+            <if test="dto.modelId != null">
+                and model_id = #{dto.modelId}
+            </if>
+            <if test="dto.modelSpecsId != null">
+                and model_specs_id = #{dto.modelSpecsId}
+            </if>
+            <if test="dto.modelSpecsChildrenId != null">
+                and model_specs_children_id = #{dto.modelSpecsChildrenId}
+            </if>
+        </where>
+        order by cccmr.id desc
+    </select>
+
+    <select id="queryAllByModelId" resultType="com.panzhihua.common.model.vos.common.ComChangeCarModelRelationVo">
+        SELECT
+            cccmr.id,
+            cccmr.model_id,
+            cccmr.model_specs_id,
+            cccmr.model_specs_children_id,
+            cccm.`name` as modelName,
+            cccm.`min_price` as minPrice,
+            cccm.`images`,
+            cccb.`name` as brandName,
+            cccms.`name` as specsName,
+            cccmsc.`name` as specsChildrenName
+        FROM
+            com_change_car_model_relation as cccmr
+            left join com_change_car_model as cccm on cccm.id = cccmr.model_id
+            left join com_change_car_model_specs as cccms on cccms.id = cccmr.model_specs_id
+            left join com_change_car_model_specs_children as cccmsc on cccmsc.id = cccmr.model_specs_children_id
+            left join com_change_car_brand as cccb on cccb.id = cccm.brand_id
+        where cccmr.model_id = #{modelId}
+    </select>
+
+    <select id="queryAllByAppletsLimit" resultType="com.panzhihua.common.model.vos.common.ComChangeCarModelVo">
+        SELECT
+        cccm.`name`,
+        cccm.`min_price`,
+        cccm.`images`,
+        cccb.`name` AS brandName,
+        cccm.id
+        FROM
+        com_change_car_model AS cccm
+        LEFT JOIN com_change_car_model_relation AS cccmr ON cccm.id = cccmr.model_id
+        LEFT JOIN com_change_car_model_specs AS cccms ON cccms.id = cccmr.model_specs_id
+        LEFT JOIN com_change_car_model_specs_children AS cccmsc ON cccmsc.id = cccmr.model_specs_children_id
+        LEFT JOIN com_change_car_brand AS cccb ON cccb.id = cccm.brand_id
+        <where>
+            and cccm.is_del = 2 and cccm.status = 1
+            <if test="dto.brandIds != null and dto.brandIds.size > 0">
+                and cccm.brand_id in
+                <foreach collection='dto.brandIds' item='id' index='index' open='(' close=')' separator=',' >
+                    #{id}
+                </foreach>
+            </if>
+            <if test="dto.specsChildrenIds != null and dto.specsChildrenIds.size > 0">
+                and cccmr.model_specs_children_id in
+                <foreach collection='dto.specsChildrenIds' item='id' index='index' open='(' close=')' separator=',' >
+                    #{id}
+                </foreach>
+            </if>
+            <if test="dto.keyWord != null and dto.keyWord !=''">
+                and cccm.`name` like concat('%',#{dto.keyWord},'%')
+            </if>
+        </where>
+        group by cccm.id
+        <if test="dto.priceSort != null and dto.priceSort == 1">
+            order by cccm.`min_price` asc
+        </if>
+        <if test="dto.priceSort != null and dto.priceSort == 2">
+            order by cccm.`min_price` desc
+        </if>
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComChangeCarModelSpecsChildrenMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComChangeCarModelSpecsChildrenMapper.xml
new file mode 100644
index 0000000..7a1df78
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComChangeCarModelSpecsChildrenMapper.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_community.dao.ComChangeCarModelSpecsChildrenMapper">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComChangeCarModelSpecsChildren"
+               id="ComChangeCarModelSpecsChildrenMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="specsId" column="specs_id" jdbcType="INTEGER"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="isDel" column="is_del" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <!--查询单个-->
+    <select id="queryById" resultType="com.panzhihua.common.model.vos.common.ComChangeCarModelSpecsChildrenVo">
+        select
+          id, specs_id, name, is_del
+        from com_change_car_model_specs_children
+        where id = #{id}
+    </select>
+
+    <!--查询指定行数据-->
+    <select id="queryAllByLimit" resultType="com.panzhihua.common.model.vos.common.ComChangeCarModelSpecsChildrenVo">
+        select
+        id, specs_id, name, is_del
+        from com_change_car_model_specs_children
+        <where>
+            and is_del = 2
+            <if test="dto.id != null">
+                and id = #{dto.id}
+            </if>
+            <if test="dto.specsId != null">
+                and specs_id = #{dto.specsId}
+            </if>
+            <if test="dto.name != null and dto.name != ''">
+                and `name` = #{dto.name}
+            </if>
+        </where>
+    </select>
+
+    <!--查询所有数据-->
+    <select id="queryAllByList" resultType="com.panzhihua.common.model.vos.common.ComChangeCarModelSpecsChildrenVo">
+        select
+        id, specs_id, name, is_del
+        from com_change_car_model_specs_children
+        <where>
+            and is_del = 2
+            <if test="dto.id != null">
+                and id = #{dto.id}
+            </if>
+            <if test="dto.specsId != null">
+                and specs_id = #{dto.specsId}
+            </if>
+            <if test="dto.name != null and dto.name != ''">
+                and `name` = #{dto.name}
+            </if>
+        </where>
+    </select>
+
+    <select id="queryAllBySpecsId" resultType="com.panzhihua.common.model.vos.common.ComChangeCarModelSpecsChildrenVo">
+        select
+        id, specs_id, name, is_del
+        from com_change_car_model_specs_children
+        where is_del = 2 and specs_id = #{specsId}
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComChangeCarModelSpecsMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComChangeCarModelSpecsMapper.xml
new file mode 100644
index 0000000..3a69e48
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComChangeCarModelSpecsMapper.xml
@@ -0,0 +1,65 @@
+<?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.ComChangeCarModelSpecsMapper">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComChangeCarModelSpecs" id="ComChangeCarModelSpecsMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="code" column="code" jdbcType="VARCHAR"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="isDel" column="is_del" jdbcType="INTEGER"/>
+        <result property="createAt" column="create_at" jdbcType="TIMESTAMP"/>
+        <result property="createBy" column="create_by" jdbcType="INTEGER"/>
+        <result property="updateAt" column="update_at" jdbcType="TIMESTAMP"/>
+        <result property="updateBy" column="update_by" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <!--查询单个-->
+    <select id="queryById" resultType="com.panzhihua.common.model.vos.common.ComChangeCarModelSpecsVo">
+        select
+          id, code, name, is_del, create_at, create_by, update_at, update_by
+        from com_change_car_model_specs
+        where id = #{id}
+    </select>
+
+    <!--查询指定行数据-->
+    <select id="queryAllByLimit" resultType="com.panzhihua.common.model.vos.common.ComChangeCarModelSpecsVo">
+        select
+        id, code, name, is_del, create_at, create_by, update_at, update_by
+        from com_change_car_model_specs
+        <where>
+            and is_del = 2
+            <if test="dto.id != null">
+                and id = #{dto.id}
+            </if>
+            <if test="dto.code != null and dto.code != ''">
+                and code = #{dto.code}
+            </if>
+            <if test="dto.keyWord != null and dto.keyWord != ''">
+                and `name` like concat('%',#{dto.keyWord},'%')
+            </if>
+        </where>
+        order by create_at desc
+    </select>
+
+    <!--查询所有数据-->
+    <select id="queryAllByList" resultType="com.panzhihua.common.model.vos.common.ComChangeCarModelSpecsVo">
+        select
+        id, code, name, is_del, create_at, create_by, update_at, update_by
+        from com_change_car_model_specs
+        <where>
+            and is_del = 2
+            <if test="dto.id != null">
+                and id = #{dto.id}
+            </if>
+            <if test="dto.code != null and dto.code != ''">
+                and code = #{dto.code}
+            </if>
+            <if test="dto.keyWord != null and dto.keyWord != ''">
+                and `name` like concat('%',#{dto.keyWord},'%')
+            </if>
+        </where>
+        order by create_at desc
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComClusterOrganizationDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComClusterOrganizationDOMapper.xml
new file mode 100644
index 0000000..3e8b0e0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComClusterOrganizationDOMapper.xml
@@ -0,0 +1,58 @@
+<?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.ComClusterOrganizationMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComClusterOrganizationDO">
+        <id column="id" property="id" />
+        <result column="name" property="name" />
+        <result column="phone" property="phone" />
+        <result column="address" property="address" />
+        <result column="status" property="status" />
+        <result column="logo" property="logo" />
+        <result column="is_del" property="isDel" />
+        <result column="create_at" property="createAt" />
+        <result column="update_at" property="updateAt" />
+        <result column="community_id" property="communityId" />
+        <result column="lng" property="lng" />
+        <result column="lat" property="lat" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, name, phone, address, status, logo, is_del, create_at, update_at,community_id, lng, lat
+    </sql>
+
+    <select id="listClusterApplets" resultType="com.panzhihua.common.model.vos.community.cluster.PageClusterVo">
+        select id,`name` from com_cluster_organization where status = 1 and is_del = 2 and community_id = ${communityId} order by create_at desc
+    </select>
+
+    <select id="pageClusterAdmin" resultType="com.panzhihua.common.model.vos.community.cluster.admin.PageClusterAdminVo">
+        SELECT
+            id,
+            `name`,
+            logo,
+            phone,
+            address,
+            `status`
+        FROM
+            com_cluster_organization
+        WHERE
+            is_del = 2
+            <if test="pageClusterAdminDto.communityId != null">
+                and community_id = ${pageClusterAdminDto.communityId}
+            </if>
+            <if test="pageClusterAdminDto.status != null">
+                and status = #{pageClusterAdminDto.status}
+            </if>
+            <if test="pageClusterAdminDto.keyWord != null and pageClusterAdminDto.keyWord != &quot;&quot;">
+                and (
+                `name` like concat(#{pageClusterAdminDto.keyWord}, '%' ) or
+                phone like concat(#{pageClusterAdminDto.keyWord}, '%' )
+                )
+            </if>
+            ORDER BY
+                create_at DESC
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComClusterOrganizationMemberDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComClusterOrganizationMemberDOMapper.xml
new file mode 100644
index 0000000..d5aa808
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComClusterOrganizationMemberDOMapper.xml
@@ -0,0 +1,139 @@
+<?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.ComClusterOrganizationMemberMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComClusterOrganizationMemberDO">
+        <id column="id" property="id" />
+        <result column="cluster_id" property="clusterId" />
+        <result column="name" property="name" />
+        <result column="phone" property="phone" />
+        <result column="address" property="address" />
+        <result column="image_url" property="imageUrl" />
+        <result column="job" property="job" />
+        <result column="id_card" property="idCard" />
+        <result column="nation_code" property="nationCode" />
+        <result column="status" property="status" />
+        <result column="is_del" property="isDel" />
+        <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, cluster_id, name, phone, address, image_url, job, id_card, nation_code, status, is_del, create_at, update_at, community_id
+    </sql>
+
+    <select id="pageClusterMemberApplets" resultType="com.panzhihua.common.model.vos.community.cluster.PageClusterMemberVo">
+        SELECT
+            ccom.id,ccom.`name`,ccom.cluster_id,cco.`name` as clusterName,ccom.phone,ccom.address,ccom.image_url,ccom.job,ccom.id_card
+        FROM
+            com_cluster_organization_member AS ccom
+            LEFT JOIN com_cluster_organization AS cco ON cco.id = ccom.cluster_id
+            <where>
+                ccom.status = 1 and ccom.is_del = 2
+                <if test="pageClusterMemberDto.communityId != null">
+                    and ccom.community_id = ${pageClusterMemberDto.communityId}
+                </if>
+                <if test="pageClusterMemberDto.clusterId != null">
+                    and ccom.cluster_id = #{pageClusterMemberDto.clusterId}
+                </if>
+                <if test="pageClusterMemberDto.keyWord != null and pageClusterMemberDto.keyWord != &quot;&quot;">
+                    and ccom.`name` like concat(#{pageClusterMemberDto.keyWord}, '%' )
+                </if>
+            </where>
+            order by ccom.create_at desc
+    </select>
+
+    <select id="pageClusterMemberAdmin" resultType="com.panzhihua.common.model.vos.community.cluster.admin.PageClusterMemberAdminVo">
+        SELECT
+            ccom.id,
+            ccom.`name`,
+            ccom.image_url,
+            cco.`name` AS clusterName,
+            ccom.job,
+            ccom.phone,
+            ccom.`status`
+        FROM
+            com_cluster_organization_member AS ccom
+            LEFT JOIN com_cluster_organization AS cco ON cco.id = ccom.cluster_id
+        WHERE
+            ccom.is_del = 2
+            <if test="pageClusterMemberAdminDto.communityId != null">
+                and ccom.community_id = ${pageClusterMemberAdminDto.communityId}
+            </if>
+            <if test="pageClusterMemberAdminDto.status != null">
+                and ccom.`status` = #{pageClusterMemberAdminDto.status}
+            </if>
+            <if test="pageClusterMemberAdminDto.clusterId != null">
+                and ccom.cluster_id = #{pageClusterMemberAdminDto.clusterId}
+            </if>
+            <if test="pageClusterMemberAdminDto.keyWord != null">
+                and (
+                ccom.`name` like concat(#{pageClusterMemberAdminDto.keyWord}, '%' ) or
+                ccom.phone like concat(#{pageClusterMemberAdminDto.keyWord}, '%' )
+                )
+            </if>
+        order by ccom.create_at desc
+    </select>
+
+    <select id="memberNationListAdmin" resultType="com.panzhihua.common.model.vos.community.cluster.admin.ClusterMemberNationVo">
+        SELECT
+            dict_value AS nationCode,
+            dict_item_name AS nationName
+        FROM
+            bc_dictionary_item
+        WHERE
+            dict_id = (
+            SELECT
+                id
+            FROM
+                bc_dictionary
+        WHERE
+            `dict_key` = #{key})
+    </select>
+
+    <select id="getNationCode" resultType="Map">
+        SELECT
+            dict_value
+        FROM
+            bc_dictionary_item
+        WHERE
+            dict_id = ( SELECT id FROM bc_dictionary WHERE dict_key =#{key} )
+            AND dict_item_name = #{nationName}
+    </select>
+
+    <select id="exportClusterMember" resultType="com.panzhihua.common.model.vos.community.cluster.admin.ComClusterMemberExcelExportAdminVO">
+        SELECT
+        ccom.`name`,
+        cco.`name` AS clusterName,
+        ccom.job,
+        ccom.phone,
+        case ccom.`status`
+        when '1' then '启用'
+        when '2' then '停用'
+        end `status`
+        FROM
+        com_cluster_organization_member AS ccom
+        LEFT JOIN com_cluster_organization AS cco ON cco.id = ccom.cluster_id
+        WHERE
+        ccom.is_del = 2
+        <if test="pageClusterMemberAdminDto.communityId != null">
+            and ccom.community_id = ${pageClusterMemberAdminDto.communityId}
+        </if>
+        <if test="pageClusterMemberAdminDto.status != null">
+            and ccom.`status` = #{pageClusterMemberAdminDto.status}
+        </if>
+        <if test="pageClusterMemberAdminDto.clusterId != null">
+            and ccom.cluster_id = #{pageClusterMemberAdminDto.clusterId}
+        </if>
+        <if test="pageClusterMemberAdminDto.keyWord != null">
+            and (
+            ccom.`name` like concat(#{pageClusterMemberAdminDto.keyWord}, '%' ) or
+            ccom.phone like concat(#{pageClusterMemberAdminDto.keyWord}, '%' )
+            )
+        </if>
+        order by ccom.create_at desc
+    </select>
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComConvenientElevatingPointMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComConvenientElevatingPointMapper.xml
new file mode 100644
index 0000000..8900d8c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComConvenientElevatingPointMapper.xml
@@ -0,0 +1,85 @@
+<?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.ConvenientElevatingPointDAO">
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ConvenientElevatingPointDO">
+        <!--@Table com_convenient_elevating_point-->
+        <id column="id" jdbcType="BIGINT" property="id"/>
+        <result column="name" jdbcType="VARCHAR" property="name"/>
+        <result column="community_id" jdbcType="VARCHAR" property="communityId"/>
+        <result column="community_name" jdbcType="VARCHAR" property="communityName"/>
+        <result column="address" jdbcType="VARCHAR" property="address"/>
+        <result column="contacts" jdbcType="VARCHAR" property="contacts"/>
+        <result column="phone" jdbcType="VARCHAR" property="phone"/>
+        <result column="wechat_account" jdbcType="VARCHAR" property="wechatAccount"/>
+        <result column="lat" jdbcType="VARCHAR" property="lat"/>
+        <result column="lon" jdbcType="VARCHAR" property="lon"/>
+        <result column="business_status" property="businessStatus"/>
+        <result column="cumulative_goods_num" jdbcType="BIGINT" property="cumulativeGoodsNum"/>
+        <result column="prepare_goods_num" jdbcType="BIGINT" property="prepareGoodsNum"/>
+        <result column="already_goods_num" jdbcType="BIGINT" property="alreadyGoodsNum"/>
+        <result column="is_del" jdbcType="BIT" property="isDel"/>
+        <result column="created_at" jdbcType="TIMESTAMP" property="createdAt"/>
+        <result column="created_by" jdbcType="BIGINT" property="createdBy"/>
+        <result column="updated_at" jdbcType="TIMESTAMP" property="updatedAt"/>
+        <result column="updated_by" jdbcType="BIGINT" property="updatedBy"/>
+    </resultMap>
+    <sql id="Base_Column_List">
+        id, `name`, community_id, community_name, address, contacts, phone, wechat_account,
+        lat, lon, `business_status`, cumulative_goods_num, prepare_goods_num, already_goods_num, is_del,
+        created_at, created_by, updated_at, updated_by
+    </sql>
+
+    <select id="page" resultType="com.panzhihua.common.model.vos.community.convenient.ConvenientElevatingPointVO">
+        SELECT cce.* FROM com_convenient_elevating_point cce WHERE cce.is_del = 0
+        <if test="pageConvenientElevatingPointDTO.businessStatus != null and pageConvenientElevatingPointDTO.businessStatus != ''">
+            AND cce.business_status = #{pageConvenientElevatingPointDTO.businessStatus}
+        </if>
+        <if test="pageConvenientElevatingPointDTO.communityId != null and pageConvenientElevatingPointDTO.communityId != 0">
+            AND ccm.community_id = ${pageConvenientElevatingPointDTO.communityId}
+        </if>
+
+        <if test="pageConvenientElevatingPointDTO.keyword != null and pageConvenientElevatingPointDTO.keyword != &quot;&quot;">
+            AND (
+            cce.name LIKE CONCAT('%', #{pageConvenientElevatingPointDTO.keyword}, '%')
+            OR cce.address LIKE CONCAT('%', #{pageConvenientElevatingPointDTO.keyword}, '%')
+            OR cce.contacts LIKE CONCAT('%', #{pageConvenientElevatingPointDTO.keyword}, '%')
+            )
+        </if>
+        ORDER BY cce.prepare_goods_num DESC
+    </select>
+
+    <update id="deletePointById">
+        UPDATE com_convenient_elevating_point SET is_del = 1, updated_by = #{operator} WHERE id = #{pointId}
+    </update>
+
+    <select id="pageNoDelivery"
+            resultType="com.panzhihua.common.model.vos.community.convenient.ConvenientElevatingPointVO">
+        SELECT ccep.*,count(csfo.id) delivery_order_num ,sum(og.amount) delivery_goods_num
+        FROM com_convenient_elevating_point ccep
+        LEFT JOIN com_shop_flower_order csfo ON ccep.id = csfo.point_id
+        LEFT JOIN com_shop_flower_order_goods og ON og.order_id = csfo.id
+        WHERE
+        csfo.`status` = 1 and ccep.business_status = 1
+        <if test="pageComFlowerOrderDeliveryDTO.storeId != null">
+            and csfo.store_id = #{pageComFlowerOrderDeliveryDTO.storeId}
+        </if>
+        GROUP BY ccep.id
+
+    </select>
+    <select id="selectOrderNum"
+            resultType="com.panzhihua.common.model.vos.community.convenient.ConvenientElevatingPointVO">
+        SELECT ccep.*,count(csfo.id) delivery_order_num ,sum(og.amount) delivery_goods_num
+        FROM com_convenient_elevating_point ccep
+        LEFT JOIN com_shop_flower_order csfo ON ccep.id = csfo.point_id
+        LEFT JOIN com_shop_flower_order_goods og ON og.order_id = csfo.id
+        WHERE
+        csfo.`status` = 1 and ccep.business_status = 1
+        <if test="pageComFlowerOrderListDTO.storeId != null">
+            and csfo.store_id = #{pageComFlowerOrderListDTO.storeId}
+        </if>
+        <if test="pageComFlowerOrderListDTO.pointId != null">
+            and ccep.id = #{pageComFlowerOrderListDTO.pointId}
+        </if>
+        GROUP BY ccep.id
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComCorrectPopulationMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComCorrectPopulationMapper.xml
new file mode 100644
index 0000000..89901f4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComCorrectPopulationMapper.xml
@@ -0,0 +1,56 @@
+<?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.ComCorrectPopulationDAO">
+
+        <!-- 通用查询映射结果 -->
+        <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComCorrectPopulationDO">
+                    <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="name" property="name" />
+                    <result column="card_no" property="cardNo" />
+                    <result column="phone" property="phone" />
+                    <result column="correct_type" property="correctType" />
+                    <result column="correct_begin" property="correctBegin" />
+                    <result column="correct_end" property="correctEnd" />
+                    <result column="receive_method" property="receiveMethod" />
+                    <result column="is_recidivist" property="isRecidivist" />
+                    <result column="four_history" property="fourHistory" />
+                    <result column="three_invovle" property="threeInvovle" />
+                    <result column="is_correct_group" property="isCorrectGroup" />
+                    <result column="correct_group_constitute" property="correctGroupConstitute" />
+                    <result column="correct_relieve_type" property="correctRelieveType" />
+                    <result column="is_out_control" property="isOutControl" />
+                    <result column="out_control_reason" property="outControlReason" />
+                    <result column="out_control_correct" property="outControlCorrect" />
+                    <result column="inspect_out_control" property="inspectOutControl" />
+                    <result column="is_miss_control" property="isMissControl" />
+                    <result column="miss_control_reason" property="missControlReason" />
+                    <result column="miss_control_correct" property="missControlCorrect" />
+                    <result column="inspect_miss_control" property="inspectMissControl" />
+                    <result column="reward_and_punishiment" property="rewardAndPunishiment" />
+                    <result column="is_again_crime" property="isAgainCrime" />
+                    <result column="again_crime_name" property="againCrimeName" />
+                    <result column="pubishment_change" property="pubishmentChange" />
+                    <result column="case_type" property="caseType" />
+                    <result column="specific_charge" property="specificCharge" />
+                    <result column="original_term" property="originalTerm" />
+                    <result column="original_term_begin" property="originalTermBegin" />
+                    <result column="originalTermEnd" property="originalTermEnd" />
+                    <result column="culture_level" property="cultureLevel" />
+                    <result column="correct_person_code" property="correctPersonCode" />
+                    <result column="original_custodyplace" property="originalCustodyplace" />
+                    <result column="remark" property="remark" />
+                    <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, name, card_no, phone, correct_type, correct_begin, correct_end, receive_method, is_recidivist, four_history, three_invovle, is_correct_group, correct_group_constitute, correct_relieve_type, is_out_control, out_control_reason, out_control_correct, inspect_out_control, is_miss_control, miss_control_reason, miss_control_correct, inspect_miss_control, reward_and_punishiment, is_again_crime, again_crime_name, pubishment_change, case_type, specific_charge, original_term, original_term_begin, originalTermEnd, culture_level, correct_person_code, original_custodyplace, remark, create_at, create_by, update_at, update_by
+    </sql>
+
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComCultPopulationMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComCultPopulationMapper.xml
new file mode 100644
index 0000000..8838744
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComCultPopulationMapper.xml
@@ -0,0 +1,29 @@
+<?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.ComCultPopulationDAO">
+
+        <!-- 通用查询映射结果 -->
+        <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComCultPopulationDO">
+                    <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="name" property="name" />
+                    <result column="card_no" property="cardNo" />
+                    <result column="cult_name" property="cultName" />
+                    <result column="basic_situation" property="basicSituation" />
+                    <result column="join_cult_date" property="joinCultDate" />
+                    <result column="is_external_publicity" property="isExternalPublicity" />
+                    <result column="remark" property="remark" />
+                    <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, name, card_no, cult_name, basic_situation, join_cult_date, is_external_publicity, remark, create_at, create_by, update_at, update_by
+    </sql>
+
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComCunMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComCunMapper.xml
new file mode 100644
index 0000000..dd5c18c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComCunMapper.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_community.dao.ComCunDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComCun" id="ComCunBaseResultMap">
+        <result property="area" column="area"/>
+        <result property="town" column="town"/>
+        <result property="community" column="community"/>
+        <result property="account" column="account"/>
+        <result property="name" column="name"/>
+        <result property="phone" column="phone"/>
+    </resultMap>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComDisabilityPopulationMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComDisabilityPopulationMapper.xml
new file mode 100644
index 0000000..f964aa6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComDisabilityPopulationMapper.xml
@@ -0,0 +1,29 @@
+<?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.ComDisabilityPopulationDAO">
+
+        <!-- 通用查询映射结果 -->
+        <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComDisabilityPopulationDO">
+                    <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="name" property="name" />
+                    <result column="card_no" property="cardNo" />
+                    <result column="phone" property="phone" />
+                    <result column="certificate_situation" property="certificateSituation" />
+                    <result column="dis_type" property="disType" />
+                    <result column="dis_level" property="disLevel" />
+                    <result column="remark" property="remark" />
+                    <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, name, card_no, phone, certificate_situation, dis_type, dis_level, remark, create_at, create_by, update_at, update_by
+    </sql>
+
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComDrugPopulationMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComDrugPopulationMapper.xml
new file mode 100644
index 0000000..e277e5e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComDrugPopulationMapper.xml
@@ -0,0 +1,37 @@
+<?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.ComDrugPopulationDAO">
+
+        <!-- 通用查询映射结果 -->
+        <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComDrugPopulationDO">
+                    <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="name" property="name" />
+                    <result column="card_no" property="cardNo" />
+                    <result column="phone" property="phone" />
+                    <result column="first_date" property="firstDate" />
+                    <result column="control_situation" property="controlSituation" />
+                    <result column="control_person" property="controlPerson" />
+                    <result column="control_person_phone" property="controlPersonPhone" />
+                    <result column="help_situation" property="helpSituation" />
+                    <result column="help_person" property="helpPerson" />
+                    <result column="help_person_phone" property="helpPersonPhone" />
+                    <result column="drug_reason" property="drugReason" />
+                    <result column="drug_result" property="drugResult" />
+                    <result column="have_crime" property="haveCrime" />
+                    <result column="crime_sutiation" property="crimeSutiation" />
+                    <result column="remark" property="remark" />
+                    <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, name, card_no, phone, first_date, control_situation, control_person, control_person_phone, help_situation, help_person, help_person_phone, drug_reason, drug_result, have_crime, crime_sutiation, remark, create_at, create_by, update_at, update_by
+    </sql>
+
+</mapper>
\ No newline at end of file
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..3cd8afe
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComElderAuthElderliesMapper.xml
@@ -0,0 +1,82 @@
+<?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>
+
+    <update id="editEditIsAlive">
+        update com_elder_auth_elderlies set is_alive = #{isAlive} where population_id = #{populationId}
+    </update>
+
+    <select id="getAuthElderLiesList" resultType="com.panzhihua.service_community.model.dos.ComElderAuthElderliesDO">
+        SELECT
+            ceae.id,
+            ceae.population_id,
+            ceae.street_id,
+            ceae.community_id,
+            ceae.phone,
+            ceae.`name`,
+            ceae.id_card,
+            ceae.sex,
+            ceae.age,
+            ceae.birthday,
+            ceae.personnel_category,
+            ceae.is_register,
+            ceae.is_alive,
+            ceae.address,
+            ceae.remark,
+            ceae.receive_allowance_begin,
+            ceae.create_at,
+            ceae.create_by,
+            ceae.update_at,
+            ceae.update_by
+        FROM
+            com_elder_auth_elderlies AS ceae
+            INNER JOIN com_mng_population AS cmp ON cmp.id = ceae.population_id
+    </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..68343ed
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComElderAuthRecordsMapper.xml
@@ -0,0 +1,483 @@
+<?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,
+            cear.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 <![CDATA[ >= ]]> #{pageElderAuthRecordsDTO.authDateBegin}
+        </if>
+        <if test="pageElderAuthRecordsDTO.authDateEnd != null and pageElderAuthRecordsDTO.authDateEnd != ''">
+            and cear.auth_date <![CDATA[ <= ]]> #{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 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}, '%')
+            or ceae.id_card = #{pageElderAuthRecordsDTO.idCard})
+        </if>
+        order by cear.create_at desc
+    </select>
+
+    <select id="export" resultType="com.panzhihua.common.model.vos.community.ComElderAuthRecordExcleVO">
+        SELECT
+        cear.id,
+        su.`name` submitUserName,
+        ceae.phone,
+        ceae.`name`,
+        ceae.id_card,
+        case when su.sex = 1 then '男' when su.sex = 2 then '女'  end
+        sex,
+        ceae.birthday,
+        case when ceae.personnel_category = 1 then '80-89周岁' when ceae.personnel_category = 2 then '90-99周岁' when ceae.personnel_category = 3 then '100周岁(含)以上' end
+        personnel_category,
+        cear.address,
+        case when ceae.is_alive = 1 then '是' when ceae.is_alive = 2 then '否'  end
+        is_alive,
+        case when cear.auth_method = 1 then '视频认证' when cear.auth_method = 2 then '人脸认证' when cear.auth_method = 3 then '线下认证' end
+        auth_method,
+        cear.auth_period,
+        cear.auth_video,
+        cear.auth_date,
+        cear.mark,
+        case when cear.approval_status = 1 then '待审核' when cear.approval_status = 2 then '驳回' when cear.approval_status = 3 then '通过'  end
+        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 <![CDATA[ >= ]]> #{pageElderAuthRecordsDTO.authDateBegin}
+        </if>
+        <if test="pageElderAuthRecordsDTO.authDateEnd != null and pageElderAuthRecordsDTO.authDateEnd != ''">
+            and cear.auth_date <![CDATA[ <= ]]> #{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}, '%')
+            or ceae.id_card = #{pageElderAuthRecordsDTO.idCard})
+        </if>
+        order by cear.create_at desc
+    </select>
+
+<!--    <select id="export" 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,-->
+<!--        cear.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 <![CDATA[ >= ]]> #{pageElderAuthRecordsDTO.authDateBegin}-->
+<!--        </if>-->
+<!--        <if test="pageElderAuthRecordsDTO.authDateEnd != null and pageElderAuthRecordsDTO.authDateEnd != ''">-->
+<!--            and cear.auth_date <![CDATA[ <= ]]> #{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}, '%')-->
+<!--            or ceae.id_card = #{pageElderAuthRecordsDTO.idCard})-->
+<!--        </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,
+            cear.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,
+            cear.address,
+            CASE
+                ceae.is_alive
+                WHEN 1 THEN
+                    '是'
+                WHEN 0 THEN
+                    '否'
+                END isAlive,
+            CASE
+                cear.auth_method
+                WHEN 1 THEN
+                '视频认证'
+                WHEN 2 THEN
+                '人脸认证'
+                WHEN 3 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.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,
+        cear.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
+        LEFT JOIN com_elder_auth_records as cear on cear.id = ceahr.auth_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="String">
+        select id from com_elder_auth_records where approval_status = 1 and community_id = ${communityId}
+    </select>
+
+    <select id="queryRecordWithPage" resultType="com.panzhihua.common.model.vos.community.IdentityAuthRecordDetailVO">
+        SELECT
+            cear.id,
+            cear.auth_period,
+            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..63e6988
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEldersAuthDOMapper.xml
@@ -0,0 +1,113 @@
+<?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="submit_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
new file mode 100644
index 0000000..9b2dfee
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEldersAuthElderlyMapper.xml
@@ -0,0 +1,110 @@
+<?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.ComEldersAuthElderlyMapper">
+
+ 	<resultMap id="baseResult" type="com.panzhihua.service_community.model.dos.ComEldersAuthElderlyDO">
+		<result property="id" column="id"/>
+		<result property="name" column="name"/>
+		<result property="idCard" column="id_card"/>
+		<result property="birthday" column="birthday"/>
+		<result property="level" column="level"/>
+		<result property="domicile" column="domicile"/>
+		<result property="communityId" column="community_id"/>
+		<result property="isExist" column="is_exist"/>
+		<result property="isBigAge" column="is_big_age"/>
+		<result property="createAt" column="create_at"/>
+		<result property="createBy" column="create_by"/>
+		<result property="updateAt" column="update_at"/>
+		<result property="updateBy" column="update_by"/>
+	</resultMap>
+
+	<sql id="columns">
+	<![CDATA[
+		id,name,id_card,birthday,level,domicile,community_id,is_exist,is_big_age,create_at,create_by,update_at,update_by
+	]]>
+	</sql>
+
+    <!-- 分页查询 -->
+    <select id="findByPage" resultType="com.panzhihua.common.model.vos.community.ComEldersAuthElderlyVO"
+        parameterType="com.panzhihua.common.model.dtos.community.PageComEldersAuthElderlyDTO">
+    	SELECT <include refid="columns" />, ROUND(DATEDIFF(CURDATE(), birthday)/365.2422) as age
+	    FROM com_elders_auth_elderly
+		<where>
+	       <if test="pageComEldersAuthElderlyDTO.id!=null">
+				AND id = #{pageComEldersAuthElderlyDTO.id}
+			</if>
+	       <if test="pageComEldersAuthElderlyDTO.name!=null and pageComEldersAuthElderlyDTO.name!=&quot;&quot;">
+				AND name like concat(#{pageComEldersAuthElderlyDTO.name},'%')
+			</if>
+	       <if test="pageComEldersAuthElderlyDTO.idCard!=null and pageComEldersAuthElderlyDTO.idCard!=&quot;&quot;">
+				AND id_card = #{pageComEldersAuthElderlyDTO.idCard}
+			</if>
+	       <if test="pageComEldersAuthElderlyDTO.birthday!=null and pageComEldersAuthElderlyDTO.idCard!=&quot;&quot;">
+				AND birthday = #{pageComEldersAuthElderlyDTO.birthday}
+			</if>
+	       <if test="pageComEldersAuthElderlyDTO.level!=null">
+				AND level = #{pageComEldersAuthElderlyDTO.level}
+			</if>
+	       <if test="pageComEldersAuthElderlyDTO.domicile!=null and pageComEldersAuthElderlyDTO.idCard!=&quot;&quot;">
+				AND domicile = #{pageComEldersAuthElderlyDTO.domicile}
+			</if>
+	       <if test="pageComEldersAuthElderlyDTO.communityId!=null">
+				AND community_id = ${pageComEldersAuthElderlyDTO.communityId}
+			</if>
+	       <if test="pageComEldersAuthElderlyDTO.isExist!=null">
+				AND is_exist = #{pageComEldersAuthElderlyDTO.isExist}
+			</if>
+	       <if test="pageComEldersAuthElderlyDTO.isBigAge!=null">
+				AND is_big_age = #{pageComEldersAuthElderlyDTO.isBigAge}
+			</if>
+	       <if test="pageComEldersAuthElderlyDTO.createAtBegin!=null  and pageComEldersAuthElderlyDTO.createAtBegin!=&quot;&quot;">
+				AND create_at &gt;= #{pageComEldersAuthElderlyDTO.createAtBegin}
+		   </if>
+		   <if test="pageComEldersAuthElderlyDTO.createAtEnd!=null and pageComEldersAuthElderlyDTO.createAtEnd!=&quot;&quot;">
+				AND create_at &lt;= #{pageComEldersAuthElderlyDTO.createAtEnd}
+		   </if>
+	       <if test="pageComEldersAuthElderlyDTO.createBy!=null">
+				AND create_by = #{pageComEldersAuthElderlyDTO.createBy}
+			</if>
+	       <if test="pageComEldersAuthElderlyDTO.updateAtBegin!=null and pageComEldersAuthElderlyDTO.updateAtBegin!=&quot;&quot;">
+				AND update_at &gt;= #{pageComEldersAuthElderlyDTO.updateAtBegin}
+		   </if>
+		   <if test="pageComEldersAuthElderlyDTO.updateAtEnd!=null and pageComEldersAuthElderlyDTO.updateAtEnd!=&quot;&quot;">
+				AND update_at &lt;= #{pageComEldersAuthElderlyDTO.updateAtEnd}
+		   </if>
+	       <if test="pageComEldersAuthElderlyDTO.updateBy!=null">
+				AND update_by = #{pageComEldersAuthElderlyDTO.updateBy}
+			</if>
+		</where>
+		<if test="pageComEldersAuthElderlyDTO.sortColumns!=null">
+			ORDER BY ${pageComEldersAuthElderlyDTO.sortColumns} ${pageComEldersAuthElderlyDTO.sortType}
+		</if>
+    </select>
+
+	<update id="updateEldersAuthElderly" parameterType="com.panzhihua.service_community.model.dos.ComEldersAuthElderlyDO">
+		update com_elders_auth_elderly
+		<set>
+			<if test="name !=null">
+				name = #{name},
+			</if>
+			<if test="isExist !=null">
+				is_exist = #{isExist},
+			</if>
+			<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">
+		delete from com_elders_auth_user where big_age_id = #{elderId}
+	</delete>
+
+</mapper>
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
new file mode 100644
index 0000000..476307e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEldersAuthHistoryRecordMapper.xml
@@ -0,0 +1,155 @@
+<?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.ComEldersAuthHistoryRecordMapper">
+
+ 	<resultMap id="baseResult" type="com.panzhihua.service_community.model.dos.ComEldersAuthHistoryRecordDO">
+		<result property="id" column="id"/>
+		<result property="userId" column="user_id"/>
+		<result property="name" column="name"/>
+		<result property="idCard" column="id_card"/>
+		<result property="brithday" column="brithday"/>
+		<result property="age" column="age"/>
+		<result property="domicile" column="domicile"/>
+		<result property="isAuth" column="is_auth"/>
+		<result property="createAt" column="create_at"/>
+	</resultMap>
+
+	<sql id="columns">
+	<![CDATA[
+		id,user_id,name,id_card,brithday,age,domicile,is_auth,create_at
+	]]>
+	</sql>
+
+    <!-- 分页查询 -->
+    <select id="findByPage" resultType="com.panzhihua.common.model.vos.community.ComEldersAuthHistoryRecordVO"
+        parameterType="com.panzhihua.common.model.dtos.community.PageComEldersAuthHistoryRecordDTO">
+    	SELECT <include refid="columns" />
+	    FROM com_elders_auth_history_record
+		<where>
+	       <if test="pageComEldersAuthHistoryRecordDTO.id!=null">
+				AND id = #{pageComEldersAuthHistoryRecordDTO.id}
+			</if>
+	       <if test="pageComEldersAuthHistoryRecordDTO.userId!=null">
+				AND user_id = #{pageComEldersAuthHistoryRecordDTO.userId}
+			</if>
+	       <if test="pageComEldersAuthHistoryRecordDTO.name!=null">
+				AND name = #{pageComEldersAuthHistoryRecordDTO.name}
+			</if>
+	       <if test="pageComEldersAuthHistoryRecordDTO.idCard!=null">
+				AND id_card = #{pageComEldersAuthHistoryRecordDTO.idCard}
+			</if>
+	       <if test="pageComEldersAuthHistoryRecordDTO.brithday!=null">
+				AND brithday = #{pageComEldersAuthHistoryRecordDTO.brithday}
+			</if>
+	       <if test="pageComEldersAuthHistoryRecordDTO.age!=null">
+				AND age = #{pageComEldersAuthHistoryRecordDTO.age}
+			</if>
+	       <if test="pageComEldersAuthHistoryRecordDTO.domicile!=null">
+				AND domicile = #{pageComEldersAuthHistoryRecordDTO.domicile}
+			</if>
+	       <if test="pageComEldersAuthHistoryRecordDTO.isAuth!=null">
+				AND is_auth = #{pageComEldersAuthHistoryRecordDTO.isAuth}
+			</if>
+	       <if test="pageComEldersAuthHistoryRecordDTO.createAtBegin!=null">
+				AND create_at &gt;= #{pageComEldersAuthHistoryRecordDTO.createAtBegin}
+		   </if>
+		   <if test="pageComEldersAuthHistoryRecordDTO.createAtEnd!=null">
+				AND create_at &lt;= #{pageComEldersAuthHistoryRecordDTO.createAtEnd}
+		   </if>
+		</where>
+		<if test="pageComEldersAuthHistoryRecordDTO.sortColumns!=null">
+			ORDER BY ${pageComEldersAuthHistoryRecordDTO.sortColumns} ${pageComEldersAuthHistoryRecordDTO.sortType}
+		</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,
+			cear.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/ComEldersAuthStatisticsMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEldersAuthStatisticsMapper.xml
new file mode 100644
index 0000000..b63f439
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEldersAuthStatisticsMapper.xml
@@ -0,0 +1,43 @@
+<?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.ComEldersAuthStatisticsMapper">
+
+ 	<resultMap id="baseResult" type="com.panzhihua.service_community.model.dos.ComEldersAuthStatisticsDO">
+		<result property="id" column="id"/>
+		<result property="year" column="year"/>
+		<result property="month" column="month"/>
+		<result property="sum" column="sum"/>
+		<result property="authSum" column="auth_sum"/>
+		<result property="noAuthSum" column="no_auth_sum"/>
+		<result property="createAt" column="create_at"/>
+		<result property="communityId" column="community_id"/>
+	</resultMap>
+
+	<sql id="columns">
+	<![CDATA[
+		id,year,month,sum,auth_sum,no_auth_sum,create_at,community_id
+	]]>
+	</sql>
+
+    <!-- 分页查询 -->
+    <select id="findByPage" resultType="com.panzhihua.common.model.vos.community.ComEldersAuthHistoryVO"
+        parameterType="com.panzhihua.common.model.dtos.community.PageEldersAuthHistoryDTO">
+    	SELECT <include refid="columns" />
+	    FROM com_elders_auth_statistics
+		<where>
+	       <if test="pageEldersAuthHistoryDTO.month!=null">
+				AND month = #{pageEldersAuthHistoryDTO.month}
+			</if>
+			<if test="pageEldersAuthHistoryDTO.year!=null">
+				AND year = #{pageEldersAuthHistoryDTO.year}
+			</if>
+			<if test="pageEldersAuthHistoryDTO.communityId!=null">
+				AND community_id = ${pageEldersAuthHistoryDTO.communityId}
+			</if>
+		</where>
+		ORDER BY create_at desc
+    </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
new file mode 100644
index 0000000..22a1359
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEldersAuthUserMapper.xml
@@ -0,0 +1,53 @@
+<?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.ComEldersAuthUserMapper">
+
+ 	<resultMap id="baseResult" type="com.panzhihua.service_community.model.dos.ComEldersAuthUserDO">
+		<result property="id" column="id"/>
+		<result property="userId" column="user_id"/>
+		<result property="relation" column="relation"/>
+		<result property="isAuth" column="is_auth"/>
+		<result property="name" column="name"/>
+		<result property="idCard" column="id_card"/>
+		<result property="communityId" column="community_id"/>
+		<result property="bigAgeId" column="big_age_id"/>
+	</resultMap>
+
+	<sql id="columns">
+	<![CDATA[
+		id,user_id,relation,is_auth,name,id_card,community_id,big_age_id
+	]]>
+	</sql>
+
+    <!-- 分页查询 -->
+    <select id="findByPage" resultType="com.panzhihua.common.model.vos.elders.ComElderAuthUserAppVO">
+    	SELECT
+    		ceau.id AS elderId,
+			ceau.`name`,
+			ceau.id_card,
+			ceau.relation,
+			ceau.is_auth,
+			ca.`name` AS communityName,
+			ae.is_exist
+		FROM
+			com_elders_auth_user AS ceau
+			LEFT JOIN com_act AS ca ON ca.community_id = ceau.community_id
+			LEFT JOIN com_elders_auth_elderly ae ON ceau.big_age_id = ae.id
+		where ceau.user_id = #{userId}
+			order by ceau.create_at desc
+    </select>
+
+    <select id="countCurrentMonthValidAuthRecord" resultType="java.lang.Integer" >
+		SELECT COUNT(*)
+		FROM  com_elders_auth
+		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/ComEventMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEventMapper.xml
new file mode 100644
index 0000000..a79da23
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEventMapper.xml
@@ -0,0 +1,628 @@
+<?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.ComEventMapper">
+ 	<resultMap id="baseResult" type="com.panzhihua.service_community.entity.ComEvent">
+			<id property="id" column="id" />
+			<result property="orderSn" column="order_sn" />
+			<result property="requestUserId" column="request_user_id" />
+			<result property="userEventStatus" column="user_event_status" />
+			<result property="requestUserEventDes" column="request_user_event_des" />
+			<result property="requestUserName" column="request_user_name" />
+			<result property="requestUserTel" column="request_user_tel" />
+			<result property="eventCategory" column="event_category" />
+			<result property="type" column="type" />
+			<result property="submitDate" column="submit_date" />
+			<result property="appointmentTime" column="appointment_time" />
+			<result property="requestUserCommunity" column="request_user_community" />
+			<result property="centerId" column="center_id" />
+			<result property="centerTel" column="center_tel" />
+			<result property="specialistOrg" column="specialist_org" />
+			<result property="specialistLevel" column="specialist_level" />
+			<result property="specialistId" column="specialist_id" />
+			<result property="specialistName" column="specialist_name" />
+			<result property="specialistTel" column="specialist_tel" />
+			<result property="specialistAcceptTime" column="specialist_accept_time" />
+			<result property="revokeType" column="revoke_type" />
+			<result property="eventProcessStatus" column="event_process_status" />
+			<result property="currentProcessType" column="current_process_type" />
+			<result property="currentOrgId" column="current_org_id" />
+			<result property="currentOrgName" column="current_org_name" />
+			<result property="currentProcessUserId" column="current_process_user_id" />
+			<result property="currentProcessUserName" column="current_process_user_name" />
+			<result property="revokeDes" column="revoke_des" />
+			<result property="eventResult" column="event_result" />
+			<result property="eventSucceed" column="event_succeed" />
+			<result property="currentEventProcessResult" column="current_event_process_result" />
+			<result property="reportSuperior" column="report_superior" />
+			<result property="result" column="result" />
+			<result property="resultDate" column="result_date" />
+			<result property="urgent" column="urgent" />
+			<result property="difficult" column="difficult" />
+			<result property="urgentDell" column="urgent_dell" />
+			<result property="invalid" column="invalid" />
+			<result property="major" column="major" />
+			<result property="requestUserResponse" column="request_user_response" />
+			<result property="createBy" column="create_by" />
+			<result property="createAt" column="create_at" />
+			<result property="updateBy" column="update_by" />
+			<result property="updateAt" column="update_at" />
+
+	</resultMap>
+	<sql id="columns">
+		id,order_sn,request_user_id,user_event_status,request_user_event_des,event_succeed,current_event_process_result,request_user_name,request_user_tel,event_category,type,submit_date,appointment_time,request_user_community,center_id,center_tel,specialist_org,specialist_level,specialist_id,specialist_name,specialist_tel,specialist_accept_time,revoke_type,event_process_status,current_process_type,current_org_id,current_org_name,current_process_user_id,current_process_user_name,revoke_des,event_result,report_superior,result,result_date,urgent,difficult,urgent_dell,invalid,major,request_user_response,create_by,create_at,update_by,update_at,report_level,report_community,report_street,report_center,report_hall,is_end
+	</sql>
+
+	<select id="pageByComEvent" resultType="com.panzhihua.service_community.entity.ComEvent">
+		SELECT <include refid="columns" />
+		FROM com_sanshuo_event_info
+		<where>
+			event_process_status !=9
+			AND app_id=#{comEvent.appId}
+			<if test="comEvent.communityId != null and  comEvent.userType != 9">
+				AND request_user_community=#{comEvent.communityId}
+			</if>
+			<if test="comEvent.keyword != null and comEvent.keyword!=''" >
+				AND	( order_sn like concat ('%',#{comEvent.keyword},'%')  or request_user_tel like concat ('%',#{comEvent.keyword},'%') or current_org_name like concat ('%',#{comEvent.keyword},'%'))
+			</if>
+			<if test="comEvent.startTime != null and comEvent.startTime != ''">
+				AND create_at between DATE_FORMAT(#{comEvent.startTime},'%Y-%m-%d 00:00:00') and DATE_FORMAT(#{comEvent.endTime},'%Y-%m-%d 00:00:00')
+			</if>
+			<if test="comEvent.createBy != null and comEvent.createBy!=''" >
+				AND create_by = #{comEvent.createBy}
+			</if>
+			<if test="comEvent.eventCategory != null">
+				AND event_category = #{comEvent.eventCategory}
+			</if>
+			<if test="comEvent.eventProcessStatus != null">
+				AND event_process_status = #{comEvent.eventProcessStatus}
+			</if>
+			<if test="comEvent.orderSn != null">
+				AND order_sn = #{comEvent.orderSn}
+			</if>
+			<if test="comEvent.requestUserTel != null">
+				AND request_user_tel = #{comEvent.requestUserTel}
+			</if>
+			<if test="comEvent.currentOrgName != null">
+				AND current_org_name = #{comEvent.currentOrgName}
+			</if>
+			<if test="comEvent.userType == 1">
+				AND request_user_id=#{comEvent.requestUserId}
+			</if>
+			<if test="comEvent.userType == 2">
+				AND specialist_id=#{comEvent.specialistId}
+			</if>
+			<if test="comEvent.userType == 3">
+				AND center_id=#{comEvent.centerId}
+			</if>
+			<if test="comEvent.userType == 4">
+				AND request_user_community=#{comEvent.communityId}
+			</if>
+			<if test="comEvent.userType == 5">
+				AND request_user_community in
+				<foreach collection="comEvent.communityIds" item="id" separator="," open="(" close=")">
+					#{id}
+				</foreach>
+			</if>
+			<if test="comEvent.level != null and comEvent.level != ''">
+				<if test="comEvent.level == 1">
+					AND type=4 OR current_process_type=4
+				</if>
+				<if test="comEvent.searchId != null and comEvent.searchId != ''">
+					<if test="comEvent.level == 2">
+						AND center_id=#{comEvent.searchId} AND current_process_type in(1,5)
+					</if>
+					<if test="comEvent.level == 3">
+						AND request_user_community in (select community_id from com_act where street_id=#{comEvent.searchId})
+						AND current_process_type in (3,5)
+					</if>
+					<if test="comEvent.level == 4">
+						AND request_user_community=#{comEvent.searchId} AND current_process_type in (2,5)
+					</if>
+				</if>
+			</if>
+		</where>
+		order by create_at desc
+	</select>
+	<select id="pageByComEventExpert" resultType="com.panzhihua.service_community.entity.ComEvent">
+		SELECT <include refid="columns" />
+		FROM com_sanshuo_event_info
+		<where>
+			event_process_status !=9
+			AND app_id=#{comEvent.appId}
+			<if test="eventIds != null">
+				AND id in 
+				<foreach collection="eventIds" item="id" separator="," open="(" close=")">
+					#{id}
+				</foreach>
+			</if>
+			<if test="eventIds == null and  comEvent.userType != 9">
+				AND request_user_community=#{comEvent.communityId}
+			</if>
+			<if test="comEvent.keyword != null and comEvent.keyword!=''" >
+				AND	( order_sn = #{comEvent.keyword} or request_user_tel =#{comEvent.keyword} or current_org_name=#{comEvent.keyword})
+			</if>
+			<if test="comEvent.createBy != null and comEvent.createBy!=''" >
+				AND create_by = #{comEvent.createBy}
+			</if>
+			<if test="comEvent.eventCategory != null">
+				AND event_category = #{comEvent.eventCategory}
+			</if>
+			<if test="comEvent.eventProcessStatus != null">
+				AND event_process_status = #{comEvent.eventProcessStatus}
+			</if>
+			<if test="comEvent.orderSn != null">
+				AND order_sn = #{comEvent.orderSn}
+			</if>
+			<if test="comEvent.requestUserTel != null">
+				AND request_user_tel = #{comEvent.requestUserTel}
+			</if>
+			<if test="comEvent.currentOrgName != null">
+				AND current_org_name = #{comEvent.currentOrgName}
+			</if>
+			<!--<if test="comEvent.userType == 1">-->
+				<!--AND request_user_id=#{comEvent.requestUserId}-->
+			<!--</if>-->
+			<!--<if test="comEvent.userType == 2">-->
+				<!--AND specialist_id=#{comEvent.specialistId}-->
+			<!--</if>-->
+			<!--<if test="comEvent.userType == 3">-->
+				<!--AND center_id=#{comEvent.centerId}-->
+			<!--</if>-->
+			<!--<if test="comEvent.userType == 4">-->
+				<!--AND request_user_community=#{comEvent.communityId}-->
+			<!--</if>-->
+		</where>
+		order by create_at desc
+	</select>
+	<select id="listEventIds" resultType="java.lang.Long">
+		select event_id from com_sanshuo_expert_event where expert_id=#{expertId} and (status=0 or status=1)
+	</select>
+	<select id="listByComEvent" resultType="com.panzhihua.service_community.entity.ComEvent">
+		SELECT <include refid="columns" />
+		FROM com_sanshuo_event_info
+		<if test="requestUserId != null and requestUserId != ''">
+			where request_user_id=#{requestUserId}
+		</if>
+	</select>
+
+    <select id="calculate" resultType="com.panzhihua.common.model.vos.sanshuo.ComEventCalculateVO">
+		select event_process_status as status ,count(1) as  sum
+		from com_sanshuo_event_info
+		<where>
+			event_process_status not in (9)
+			AND app_id=#{comEvent.appId}
+			<if test="comEvent.userType == 1">
+				AND request_user_id=#{comEvent.requestUserId}
+			</if>
+			<if test="comEvent.userType == 2">
+				<if test="comEvent.eventIds != null">
+					AND id in
+					<foreach collection="comEvent.eventIds" item="id" separator="," open="(" close=")">
+						#{id}
+					</foreach>
+				</if>
+				<if test="comEvent.eventIds == null">
+					AND request_user_community=#{comEvent.communityId}
+				</if>
+
+			</if>
+			<if test="comEvent.userType == 3">
+				AND center_id=#{comEvent.centerId}
+			</if>
+			<if test="comEvent.userType == 4">
+				AND request_user_community=#{comEvent.communityId}
+			</if>
+			<if test="comEvent.userType == 5">
+				AND request_user_community in
+				<foreach collection="comEvent.communityIds" item="id" separator="," open="(" close=")">
+					#{id}
+				</foreach>
+			</if>
+				<if test="comEvent.level != null and comEvent.level != ''">
+					<if test="comEvent.level == 1">
+						AND current_process_type=4
+					</if>
+					<if test="comEvent.searchId != null and comEvent.searchId != ''">
+						<if test="comEvent.level == 2">
+							AND center_id=#{comEvent.searchId} AND current_process_type in(1,5)
+						</if>
+						<if test="comEvent.level == 3">
+							AND request_user_community in (select community_id from com_act where street_id=#{comEvent.searchId})
+							AND current_process_type in (3,5)
+						</if>
+						<if test="comEvent.level == 4">
+							AND request_user_community=#{comEvent.searchId} AND current_process_type in (2,5)
+						</if>
+					</if>
+				</if>
+		</where>
+		group by event_process_status
+	</select>
+
+
+	<select id="caculateSum" resultType="int">
+		select count(id) as  sum
+		from com_sanshuo_event_info
+		<where>
+			event_process_status not in (9)
+			AND app_id=#{comEvent.appId}
+			<if test="comEvent.userType == 1">
+				AND request_user_id=#{comEvent.requestUserId}
+			</if>
+			<if test="comEvent.userType == 2">
+				<if test="comEvent.eventIds != null">
+					AND id in
+					<foreach collection="comEvent.eventIds" item="id" separator="," open="(" close=")">
+						#{id}
+					</foreach>
+				</if>
+				<if test="comEvent.eventIds == null">
+					AND request_user_community=#{comEvent.communityId}
+				</if>
+			</if>
+			<if test="comEvent.userType == 3">
+				AND center_id=#{comEvent.centerId}
+			</if>
+			<if test="comEvent.userType == 4">
+				AND request_user_community=#{comEvent.communityId}
+			</if>
+			<if test="comEvent.userType == 5">
+				AND request_user_community in
+				<foreach collection="comEvent.communityIds" item="id" separator="," open="(" close=")">
+					#{id}
+				</foreach>
+			</if>
+			<if test="comEvent.level != null and comEvent.level != ''">
+				<if test="comEvent.level == 1">
+					AND current_process_type=4
+				</if>
+				<if test="comEvent.searchId != null and comEvent.searchId != ''">
+					<if test="comEvent.level == 2">
+						AND center_id=#{comEvent.searchId} AND current_process_type in(1,5)
+					</if>
+					<if test="comEvent.level == 3">
+						AND request_user_community in (select community_id from com_act where street_id=#{comEvent.searchId})
+						AND current_process_type in (3,5)
+					</if>
+					<if test="comEvent.level == 4">
+						AND request_user_community=#{comEvent.searchId} AND current_process_type in (2,5)
+					</if>
+				</if>
+			</if>
+		</where>
+	</select>
+    <select id="dateAnalysis" resultType="com.panzhihua.common.model.vos.sanshuo.IndexDateVO">
+		SELECT
+        (SELECT count(id) FROM com_sanshuo_event_info
+        where event_process_status in (2,3,5,6)
+		AND user_event_status not in(3,4)
+		AND app_id='wx0cef797390444b75'
+        <if test="dto.type == 2">
+			AND current_process_type in (1,5)
+			AND center_id is not  null
+			<if test="dto.id != null">
+				AND center_id=#{dto.id}
+			</if>
+		</if>
+		<if test="dto.type == 3">
+			AND current_process_type=3
+			<if test="dto.id != null">
+				AND request_user_community in (select com_act.community_id from com_act where street_id=#{dto.id})
+			</if>
+		</if>
+		<if test="dto.type == 4">
+			AND current_process_type in(2,5)
+			AND center_id is null
+			<if test="dto.id != null">
+				AND request_user_community=#{dto.id}
+			</if>
+		</if>
+		<if test="dto.type == 1">
+			AND current_process_type=4
+		</if>
+        ) as accept,
+        (SELECT count(id) FROM com_sanshuo_event_info
+        where is_end &lt;> 1
+		AND user_event_status not in(3,4)
+        AND event_process_status not in (1,9)
+		AND app_id='wx0cef797390444b75'
+		<if test="dto.type == 2">
+			AND current_process_type in (1,5)
+			AND center_id is not  null
+			<if test="dto.id != null">
+				AND center_id=#{dto.id}
+			</if>
+		</if>
+		<if test="dto.type == 3">
+			AND current_process_type=3
+			<if test="dto.id != null">
+				AND request_user_community in (select com_act.community_id from com_act where street_id=#{dto.id})
+			</if>
+		</if>
+		<if test="dto.type == 4">
+			AND current_process_type in(2,5)
+			AND center_id is null
+			<if test="dto.id != null">
+				AND request_user_community=#{dto.id}
+			</if>
+		</if>
+		<if test="dto.type == 1">
+			AND current_process_type=4
+		</if>) as accepting,
+        (SELECT count(id) FROM com_sanshuo_event_info
+        where event_process_status = 6
+		AND is_end=1
+		AND user_event_status not in(3)
+		AND app_id='wx0cef797390444b75'
+		<if test="dto.type == 2">
+			AND current_process_type in (1,5)
+			AND center_id is not null
+			<if test="dto.id != null">
+				AND center_id=#{dto.id}
+			</if>
+		</if>
+		<if test="dto.type == 3">
+			AND current_process_type=3
+			<if test="dto.id != null">
+				AND request_user_community in (select com_act.community_id from com_act where street_id=#{dto.id})
+			</if>
+		</if>
+		<if test="dto.type == 4">
+			AND current_process_type in(2,5)
+			AND center_id is null
+			<if test="dto.id != null">
+				AND request_user_community=#{dto.id}
+			</if>
+		</if>
+		<if test="dto.type == 1">
+			AND current_process_type=4
+		</if>) as accepted,
+        (SELECT count(t.id) FROM com_sanshuo_event_info as  t
+		left join com_sanshuo_event_transfer_record as  t1
+		on t.id=t1.event_id
+        where t.event_process_status in (6,7)
+		AND t.user_event_status not in(3,4)
+		AND t1.event_status=7
+		AND app_id='wx0cef797390444b75'
+		<if test="dto.type == 2">
+			AND t.current_process_type in (1,5)
+			AND t.center_id is not  null
+			<if test="dto.id != null">
+				AND t.center_id=#{dto.id}
+			</if>
+		</if>
+		<if test="dto.type == 3">
+			AND t.current_process_type=3
+			<if test="dto.id != null">
+				AND t.request_user_community in (select com_act.community_id from com_act where street_id=#{dto.id})
+			</if>
+		</if>
+		<if test="dto.type == 4">
+			AND t.current_process_type in(2,5)
+			AND t.center_id is null
+			<if test="dto.id != null">
+				AND t.request_user_community=#{dto.id}
+			</if>
+		</if>
+		<if test="dto.type == 1">
+			AND t.current_process_type=4
+		</if>) as expirences,
+        (select count(id) FROM com_sanshuo_event_info
+        where event_result=2
+		AND user_event_status not in(3,4)
+		AND app_id='wx0cef797390444b75'
+		<if test="dto.type == 2">
+			AND current_process_type in (1,5)
+			AND center_id is not  null
+			<if test="dto.id != null">
+				AND center_id=#{dto.id}
+			</if>
+		</if>
+		<if test="dto.type == 3">
+			AND current_process_type=3
+			<if test="dto.id != null">
+				AND request_user_community in (select com_act.community_id from com_act where street_id=#{dto.id})
+			</if>
+		</if>
+		<if test="dto.type == 4">
+			AND current_process_type in(2,5)
+			AND center_id is null
+			<if test="dto.id != null">
+				AND request_user_community=#{dto.id}
+			</if>
+		</if>
+		<if test="dto.type == 1">
+			AND current_process_type=4
+		</if>) as success,
+        (select count(id) FROM com_sanshuo_event_info
+        where event_result=1
+		AND is_end=1
+		AND user_event_status not in(3,4)
+		AND app_id='wx0cef797390444b75'
+		<if test="dto.type == 2">
+			AND current_process_type in (1,5)
+			AND center_id is not  null
+			<if test="dto.id != null">
+				AND center_id=#{dto.id}
+			</if>
+		</if>
+		<if test="dto.type == 3">
+			AND current_process_type=3
+			<if test="dto.id != null">
+				AND request_user_community in (select com_act.community_id from com_act where street_id=#{dto.id})
+			</if>
+		</if>
+		<if test="dto.type == 4">
+			AND current_process_type in(2,5)
+			AND center_id is null
+			<if test="dto.id != null">
+				AND request_user_community=#{dto.id}
+			</if>
+		</if>
+		<if test="dto.type == 1">
+			AND current_process_type=4
+		</if>) as fail,
+		(select count(id) from com_sanshuo_event_info WHERE
+		create_at BETWEEN DATE_FORMAT(#{beginDate}, '%Y-%m-%d 00:00:00') AND DATE_FORMAT(#{endDate}, '%Y-%m-%d 23:59:59')
+		AND event_process_status not in (8)
+		AND app_id='wx0cef797390444b75'
+		<if test="dto.type == 2">
+			AND current_process_type in (1,5)
+			AND center_id is not  null
+			<if test="dto.id != null">
+				AND center_id=#{dto.id}
+			</if>
+		</if>
+		<if test="dto.type == 3">
+			AND current_process_type=3
+			<if test="dto.id != null">
+				AND request_user_community in (select com_act.community_id from com_act where street_id=#{dto.id})
+			</if>
+		</if>
+		<if test="dto.type == 4">
+			AND current_process_type in(2,5)
+			AND center_id is null
+			<if test="dto.id != null">
+				AND request_user_community=#{dto.id}
+			</if>
+		</if>
+		<if test="dto.type == 1">
+			AND current_process_type=4
+		</if>) as monthIncrease,
+		(select count(id) from com_sanshuo_event_info WHERE
+		create_at BETWEEN DATE_FORMAT(#{beginDate}, '%Y-%m-%d 00:00:00') AND DATE_FORMAT(#{endDate}, '%Y-%m-%d 23:59:59')
+		AND event_process_status not in (8)
+		AND event_process_status = 6
+		AND app_id='wx0cef797390444b75'
+		<if test="dto.type == 2">
+			AND current_process_type in (1,5)
+			AND center_id is not  null
+			<if test="dto.id != null">
+				AND center_id=#{dto.id}
+			</if>
+		</if>
+		<if test="dto.type == 3">
+			AND current_process_type=3
+			<if test="dto.id != null">
+				AND request_user_community in (select com_act.community_id from com_act where street_id=#{dto.id})
+			</if>
+		</if>
+		<if test="dto.type == 4">
+			AND current_process_type in(2,5)
+			AND center_id is null
+			<if test="dto.id != null">
+				AND request_user_community=#{dto.id}
+			</if>
+		</if>
+		<if test="dto.type == 1">
+			AND current_process_type=4
+		</if>) as monthFinish
+        FROM com_sanshuo_event_info limit 1
+	</select>
+	<select id="dateAnalysisY" resultType="java.lang.Integer">
+        SELECT COUNT(id) FROM com_sanshuo_event_info
+        WHERE create_at BETWEEN DATE_FORMAT(#{beginDate}, '%Y-%m-%d 00:00:00') AND DATE_FORMAT(#{endDate}, '%Y-%m-%d 23:59:59')
+		AND event_process_status not in (9)
+		AND app_id='wx0cef797390444b75'
+		<if test="dto.type == 2">
+			AND current_process_type in (1,5)
+			AND center_id is not null
+			<if test="dto.id != null">
+				AND center_id=#{dto.id}
+			</if>
+		</if>
+		<if test="dto.type == 3">
+			AND current_process_type=3
+			<if test="dto.id != null">
+				AND request_user_community in (select com_act.community_id from com_act where street_id=#{dto.id})
+			</if>
+		</if>
+		<if test="dto.type == 4">
+			AND current_process_type in(2,5)
+			AND center_id is null
+			<if test="dto.id != null">
+				AND request_user_community=#{dto.id}
+			</if>
+		</if>
+		<if test="dto.type == 1">
+			AND current_process_type=4
+		</if>
+	</select>
+	<select id="dateAnalysisYTwo" resultType="java.lang.Integer">
+		SELECT COUNT(id) FROM com_sanshuo_event_info
+        WHERE create_at BETWEEN DATE_FORMAT(#{beginDate}, '%Y-%m-%d 00:00:00') AND DATE_FORMAT(#{endDate}, '%Y-%m-%d 23:59:59')
+        AND event_process_status=6
+		AND is_end=1
+		AND app_id='wx0cef797390444b75'
+		<if test="dto.type == 2">
+			AND current_process_type in (1,5)
+			AND center_id is not null
+			<if test="dto.id != null">
+				AND center_id=#{dto.id}
+			</if>
+		</if>
+		<if test="dto.type == 3">
+			AND current_process_type=3
+			<if test="dto.id != null">
+				AND request_user_community in (select com_act.community_id from com_act where street_id=#{dto.id})
+			</if>
+		</if>
+		<if test="dto.type == 4">
+			AND current_process_type in(2,5)
+			AND center_id is null
+			<if test="dto.id != null">
+				AND request_user_community=#{dto.id}
+			</if>
+		</if>
+		<if test="dto.type == 1">
+			AND current_process_type=4
+		</if>
+	</select>
+	<select id="eventRate" resultType="com.panzhihua.common.model.vos.sanshuo.EventRateVO">
+		select count(id) as count,type from com_sanshuo_event_info
+		where event_process_status not in(7,8,9)
+		AND app_id='wx0cef797390444b75'
+		group by type
+		having type not in (5)
+	</select>
+
+	<select id="expertRate" resultType="com.panzhihua.common.model.vos.sanshuo.EventRateVO">
+		select count(id) as count,level as type  from com_sanshuo_expert where app_id='wx0cef797390444b75'
+		group by level
+	</select>
+	<select id="mediateTypeRate" resultType="com.panzhihua.common.model.vos.sanshuo.EventRateVO">
+		select count(t.id) as count,t1.name from com_sanshuo_event_info t
+		left join com_mediate_type t1 on t.event_category=t1.id
+		where t.event_process_status not in(7,8,9)
+		AND t.app_id='wx0cef797390444b75'
+		group by t.event_category
+	</select>
+
+	<select id="getUserAvatar" resultType="String">
+		select  image_url from sys_user where user_id = #{userId}
+	</select>
+	<select id="insertEventAndExpertRecord">
+		insert into com_sanshuo_expert_event values(#{eventId},#{expertId},#{status})
+	</select>
+	<select id="expertSolveCountCommunity" resultType="java.lang.Integer">
+		select count(t.id) from com_sanshuo_event_info t
+		left join com_sanshuo_expert t1 on t.specialist_id=t1.id
+		where t.event_process_status not in (9)
+		AND t.current_process_type=5
+		and t1.level=4
+		AND t.app_id='wx0cef797390444b75'
+	</select>
+	<select id="expertSolveCountCenter" resultType="java.lang.Integer">
+		select count(t.id) from com_sanshuo_event_info t
+		left join com_sanshuo_expert t1 on t.specialist_id=t1.id
+		where t.event_process_status not in (9)
+		and t1.level=2
+		AND t.current_process_type=5
+		AND t.app_id='wx0cef797390444b75'
+	</select>
+	<update id="updateLog">
+		update com_sanshuo_expert_event set status = 2
+		where event_id=#{eventId} and expert_id=#{expertId} and status=0
+	</update>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEventResourceMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEventResourceMapper.xml
new file mode 100644
index 0000000..b91c54c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEventResourceMapper.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.ComEventResourceMapper">
+ 	<resultMap id="baseResult" type="com.panzhihua.service_community.entity.ComEventResource">
+			<id property="id" column="id" />
+			<result property="refId" column="ref_id" />
+			<result property="transferId" column="transfer_id" />
+			<result property="status" column="status" />
+			<result property="type" column="type" />
+			<result property="resourceName" column="resource_name" />
+			<result property="resourceSize" column="resource_size" />
+			<result property="resourceTime" column="resource_time" />
+			<result property="url" column="url" />
+			<result property="createBy" column="create_by" />
+			<result property="createAt" column="create_at" />
+			<result property="deleteFlag" column="delete_flag" />
+
+	</resultMap>
+	<sql id="columns">
+		id,ref_id,transfer_id,status,type,resource_name,resource_size,resource_time,url,create_by,create_at,delete_flag
+	</sql>
+
+	<select id="pageByComEventResource" resultType="com.panzhihua.service_community.entity.ComEventResource">
+		SELECT <include refid="columns" />
+		FROM com_sanshuo_event_resource
+	</select>
+
+	<select id="listByComEventResource" resultType="com.panzhihua.service_community.entity.ComEventResource">
+		SELECT <include refid="columns" />
+		FROM com_sanshuo_event_resource
+	</select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEventTransferRecordMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEventTransferRecordMapper.xml
new file mode 100644
index 0000000..9742a20
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComEventTransferRecordMapper.xml
@@ -0,0 +1,223 @@
+<?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.ComEventTransferRecordMapper">
+ 	<resultMap id="baseResult" type="com.panzhihua.service_community.entity.ComEventTransferRecord">
+			<id property="id" column="id" />
+			<result property="eventId" column="event_id" />
+			<result property="parentsTransferEventId" column="parents_transfer_event_id" />
+			<result property="fromType" column="from_type" />
+			<result property="fromId" column="from_id" />
+			<result property="fromName" column="from_name" />
+			<result property="fromUserId" column="from_user_id" />
+			<result property="toType" column="to_type" />
+			<result property="toId" column="to_id" />
+			<result property="toName" column="to_name" />
+			<result property="toUserId" column="to_user_id" />
+			<result property="save" column="save" />
+			<result property="processResult" column="process_result" />
+			<result property="processResultData" column="process_result_data" />
+			<result property="processDate" column="process_date" />
+			<result property="processBy" column="process_by" />
+			<result property="processByName" column="process_by_name" />
+			<result property="processType" column="process_type" />
+			<result property="createAt" column="create_at" />
+			<result property="specialistId" column="specialist_id" />
+			<result property="specialistOrg" column="specialist_org" />
+			<result property="specialistLevel" column="specialist_level" />
+			<result property="specialistName" column="specialist_name" />
+			<result property="eventResult" column="event_result" />
+			<result property="eventStatus" column="event_status" />
+
+	</resultMap>
+	<sql id="columns">
+		id,event_id,parents_transfer_event_id,from_type,from_id,from_name,from_user_id,to_type,to_id,to_name,to_user_id,save,process_result,process_result_data,process_date,process_by,process_by_name,process_type,create_at,specialist_id,specialist_org,specialist_level,specialist_name,event_result,event_status
+	</sql>
+
+    <select id="pageByComEventTransferRecord" resultType="com.panzhihua.service_community.entity.ComEventTransferRecord">
+		SELECT <include refid="columns" />
+		FROM com_sanshuo_event_transfer_record
+	</select>
+
+	<select id="listByComEventTransferRecord" resultType="com.panzhihua.service_community.entity.ComEventTransferRecord">
+		SELECT <include refid="columns" />
+		FROM com_sanshuo_event_transfer_record
+	</select>
+
+    <insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.panzhihua.service_community.entity.ComEventTransferRecord">
+    insert into com_sanshuo_event_transfer_record
+    <trim prefix="(" suffix=")" suffixOverrides=",">
+        <if test="comEventTransferRecord.id != null">
+            id,
+        </if>
+        <if test="comEventTransferRecord.eventId != null">
+            event_id,
+        </if>
+        <if test="comEventTransferRecord.parentsTransferEventId != null">
+            parents_transfer_event_id,
+        </if>
+        <if test="comEventTransferRecord.fromType != null">
+            from_type,
+        </if>
+        <if test="comEventTransferRecord.fromId != null">
+            from_id,
+        </if>
+        <if test="comEventTransferRecord.fromName != null">
+            from_name,
+        </if>
+        <if test="comEventTransferRecord.fromUserId != null">
+            from_user_id,
+        </if>
+        <if test="comEventTransferRecord.toType != null">
+            to_type,
+        </if>
+        <if test="comEventTransferRecord.toId != null">
+            to_id,
+        </if>
+        <if test="comEventTransferRecord.toName != null">
+            to_name,
+        </if>
+        <if test="comEventTransferRecord.toUserId != null">
+            to_user_id,
+        </if>
+        <if test="comEventTransferRecord.save != null">
+            `save`,
+        </if>
+        <if test="comEventTransferRecord.processResult != null">
+            process_result,
+        </if>
+        <if test="comEventTransferRecord.processResultData != null">
+            process_result_data,
+        </if>
+        <if test="comEventTransferRecord.processDate != null">
+            process_date,
+        </if>
+        <if test="comEventTransferRecord.processBy != null">
+            process_by,
+        </if>
+        <if test="comEventTransferRecord.processByName != null">
+            process_by_name,
+        </if>
+        <if test="comEventTransferRecord.processType != null">
+            process_type,
+        </if>
+        <if test="comEventTransferRecord.createAt != null">
+            create_at,
+        </if>
+        <if test="comEventTransferRecord.specialistId != null">
+            specialist_id,
+        </if>
+        <if test="comEventTransferRecord.specialistOrg != null">
+            specialist_org,
+        </if>
+        <if test="comEventTransferRecord.specialistLevel != null">
+            specialist_level,
+        </if>
+        <if test="comEventTransferRecord.specialistName != null">
+            specialist_name,
+        </if>
+        <if test="comEventTransferRecord.eventResult != null">
+            event_result,
+        </if>
+        <if test="comEventTransferRecord.eventStatus != null">
+            event_status,
+        </if>
+    </trim>
+    <trim prefix="values (" suffix=")" suffixOverrides=",">
+        <if test="comEventTransferRecord.id != null">
+            #{comEventTransferRecord.id,jdbcType=BIGINT},
+        </if>
+        <if test="comEventTransferRecord.eventId != null">
+            #{comEventTransferRecord.eventId,jdbcType=BIGINT},
+        </if>
+        <if test="comEventTransferRecord.parentsTransferEventId != null">
+            #{comEventTransferRecord.parentsTransferEventId,jdbcType=BIGINT},
+        </if>
+        <if test="comEventTransferRecord.fromType != null">
+            #{comEventTransferRecord.fromType,jdbcType=TINYINT},
+        </if>
+        <if test="comEventTransferRecord.fromId != null">
+            #{comEventTransferRecord.fromId,jdbcType=BIGINT},
+        </if>
+        <if test="comEventTransferRecord.fromName != null">
+            #{comEventTransferRecord.fromName,jdbcType=VARCHAR},
+        </if>
+        <if test="comEventTransferRecord.fromUserId != null">
+            #{comEventTransferRecord.fromUserId,jdbcType=BIGINT},
+        </if>
+        <if test="comEventTransferRecord.toType != null">
+            #{comEventTransferRecord.toType,jdbcType=TINYINT},
+        </if>
+        <if test="comEventTransferRecord.toId != null">
+            #{comEventTransferRecord.toId,jdbcType=BIGINT},
+        </if>
+        <if test="comEventTransferRecord.toName != null">
+            #{comEventTransferRecord.toName,jdbcType=VARCHAR},
+        </if>
+        <if test="comEventTransferRecord.toUserId != null">
+            #{comEventTransferRecord.toUserId,jdbcType=BIGINT},
+        </if>
+        <if test="comEventTransferRecord.save != null">
+            #{comEventTransferRecord.save,jdbcType=BIT},
+        </if>
+        <if test="comEventTransferRecord.processResult != null">
+            #{comEventTransferRecord.processResult,jdbcType=VARCHAR},
+        </if>
+        <if test="comEventTransferRecord.processResultData != null">
+            #{comEventTransferRecord.processResultData,jdbcType=VARCHAR},
+        </if>
+        <if test="comEventTransferRecord.processDate != null">
+            #{comEventTransferRecord.processDate,jdbcType=TIMESTAMP},
+        </if>
+        <if test="comEventTransferRecord.processBy != null">
+            #{comEventTransferRecord.processBy,jdbcType=BIGINT},
+        </if>
+        <if test="comEventTransferRecord.processByName != null">
+            #{comEventTransferRecord.processByName,jdbcType=VARCHAR},
+        </if>
+        <if test="comEventTransferRecord.processType != null">
+            #{comEventTransferRecord.processType,jdbcType=INTEGER},
+        </if>
+        <if test="comEventTransferRecord.createAt != null">
+            #{comEventTransferRecord.createAt,jdbcType=TIMESTAMP},
+        </if>
+        <if test="comEventTransferRecord.specialistId != null">
+            #{comEventTransferRecord.specialistId,jdbcType=BIGINT},
+        </if>
+        <if test="comEventTransferRecord.specialistOrg != null">
+            #{comEventTransferRecord.specialistOrg,jdbcType=VARCHAR},
+        </if>
+        <if test="comEventTransferRecord.specialistLevel != null">
+            #{comEventTransferRecord.specialistLevel,jdbcType=VARCHAR},
+        </if>
+        <if test="comEventTransferRecord.specialistName != null">
+            #{comEventTransferRecord.specialistName,jdbcType=VARCHAR},
+        </if>
+        <if test="comEventTransferRecord.eventResult != null">
+            #{comEventTransferRecord.eventResult,jdbcType=TINYINT},
+        </if>
+        <if test="comEventTransferRecord.eventStatus != null">
+            #{comEventTransferRecord.eventStatus,jdbcType=TINYINT},
+        </if>
+    </trim>
+</insert>
+    <insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.panzhihua.service_community.entity.ComEventTransferRecord" useGeneratedKeys="true">
+    insert into com_sanshuo_event_transfer_record (id,event_id, parents_transfer_event_id, from_type,
+      from_id, from_name, from_user_id,
+      to_type, to_id, to_name,
+      to_user_id, `save`, process_result,
+      process_result_data, process_date, process_by,
+      process_by_name, process_type, create_at,
+      specialist_id, specialist_org, specialist_level,
+      specialist_name, event_result, event_status
+      )
+    values (#{id},#{eventId,jdbcType=BIGINT}, #{parentsTransferEventId,jdbcType=BIGINT}, #{fromType,jdbcType=TINYINT},
+      #{fromId,jdbcType=BIGINT}, #{fromName,jdbcType=VARCHAR}, #{fromUserId,jdbcType=BIGINT},
+      #{toType,jdbcType=TINYINT}, #{toId,jdbcType=BIGINT}, #{toName,jdbcType=VARCHAR},
+      #{toUserId,jdbcType=BIGINT}, #{save,jdbcType=BIT}, #{processResult,jdbcType=VARCHAR},
+      #{processResultData,jdbcType=VARCHAR}, #{processDate,jdbcType=TIMESTAMP}, #{processBy,jdbcType=BIGINT},
+      #{processByName,jdbcType=VARCHAR}, #{processType,jdbcType=INTEGER}, #{createAt,jdbcType=TIMESTAMP},
+      #{specialistId,jdbcType=BIGINT}, #{specialistOrg,jdbcType=VARCHAR}, #{specialistLevel,jdbcType=VARCHAR},
+      #{specialistName,jdbcType=VARCHAR}, #{eventResult,jdbcType=TINYINT}, #{eventStatus,jdbcType=TINYINT}
+      )
+  </insert>
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComFmsClassroomMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComFmsClassroomMapper.xml
new file mode 100644
index 0000000..60aa2b9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComFmsClassroomMapper.xml
@@ -0,0 +1,126 @@
+<?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.ComFmsClassroomDAO">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComFmsClassroom" id="ComFmsClassroomMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="title" column="title" jdbcType="VARCHAR"/>
+        <result property="scholars" column="scholars" jdbcType="INTEGER"/>
+        <result property="cover" column="cover" jdbcType="VARCHAR"/>
+        <result property="content" column="content" jdbcType="VARCHAR"/>
+        <result property="viewNum" column="view_num" jdbcType="INTEGER"/>
+        <result property="createdAt" column="created_at" jdbcType="TIMESTAMP"/>
+        <result property="createdBy" column="created_by" jdbcType="INTEGER"/>
+        <result property="updatedAt" column="updated_at" jdbcType="TIMESTAMP"/>
+        <result property="updatedBy" column="updated_by" jdbcType="INTEGER"/>
+        <result property="communityId" column="community_id" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <!-- 批量插入 -->
+    <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.com_fms_classroom(title, scholars, cover, content, view_num, created_at, created_by, updated_at, updated_by, community_id)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+        (#{entity.title}, #{entity.scholars}, #{entity.cover}, #{entity.content}, #{entity.viewNum}, #{entity.createdAt}, #{entity.createdBy}, #{entity.updatedAt}, #{entity.updatedBy}, #{entity.communityId})
+        </foreach>
+    </insert>
+    <!-- 批量插入或按主键更新 -->
+    <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.com_fms_classroom(title, scholars, cover, content, view_num, created_at, created_by, updated_at, updated_by, community_id)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.title}, #{entity.scholars}, #{entity.cover}, #{entity.content}, #{entity.viewNum}, #{entity.createdAt}, #{entity.createdBy}, #{entity.updatedAt}, #{entity.updatedBy}, #{entity.communityId})
+        </foreach>
+        on duplicate key update
+         title = values(title) , scholars = values(scholars) , cover = values(cover) , content = values(content) , view_num = values(view_num) , created_at = values(created_at) , created_by = values(created_by) , updated_at = values(updated_at) , updated_by = values(updated_by) , community_id = values(community_id)     </insert>
+    <select id="pageFmsClassroomAdmin"
+            resultType="com.panzhihua.common.model.vos.community.fms.ComFmsClassroomVO">
+        SELECT id, title, scholars, cover, view_num, created_at
+        FROM com_fms_classroom
+        WHERE community_id = #{adminDTO.communityId}
+        <if test='adminDTO.keyword != null and adminDTO.keyword != "" '>
+            AND title LIKE CONCAT('%',#{adminDTO.keyword},'%')
+        </if>
+        <if test='adminDTO.createdAtBegin != null  '>
+            AND created_at &gt;= #{adminDTO.createdAtBegin}
+        </if>
+        <if test='adminDTO.createdAtEnd != null  '>
+            AND created_at &lt;= #{adminDTO.createdAtEnd}
+        </if>
+        ORDER BY created_at DESC
+    </select>
+    <select id="statisticsFmsClassroom"
+            resultType="com.panzhihua.common.model.vos.community.fms.FmsClassroomTopStatisticsVO">
+        SELECT
+        (SELECT COUNT(id) FROM com_fms_classroom WHERE community_id = #{communityId}) AS classroomCount,
+        (SELECT IF(SUM(scholars) IS NULL,0,SUM(scholars)) FROM com_fms_classroom WHERE community_id = #{communityId}) AS learnCount
+    </select>
+    <select id="pageFmsEvent" resultType="com.panzhihua.common.model.vos.community.fms.FmsEventVO">
+        SELECT e.id, e.event_clazz, egd.grid_name, e.happent_lat_lng, e.happen_time, e.event_des,
+        e.danger_level, e.urgent, e.major, e.event_process_status
+        FROM `event` AS e
+        LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+        WHERE e.event_category = 1 AND e.event_status = 2 AND egd.grid_community_id = #{adminDTO.communityId}
+        <if test="adminDTO.eventClazz != null and adminDTO.eventClazz != &quot;&quot;">
+            AND e.event_clazz = #{adminDTO.eventClazz}
+        </if>
+        <if test="adminDTO.eventProcessStatus != null">
+            AND e.event_process_status = #{adminDTO.eventProcessStatus}
+        </if>
+        <if test="adminDTO.eventProcessStatus == null">
+            AND e.event_process_status IN(1,2)
+        </if>
+        <if test="adminDTO.type != null and adminDTO.type == 1">
+            AND e.event_type = 3
+        </if>
+        <if test="adminDTO.type != null and adminDTO.type == 2">
+            AND e.event_type = 1
+        </if>
+        <if test="adminDTO.keyword != null and adminDTO.keyword != &quot;&quot;">
+            AND e.event_des LIKE CONCAT('%',#{adminDTO.keyword},'%')
+        </if>
+        ORDER BY e.happen_time DESC
+    </select>
+    <select id="statisticsFmsEvent"
+            resultType="com.panzhihua.common.model.vos.community.fms.FmsEventTopStatisticsVO">
+        SELECT
+        (SELECT COUNT(e.id) FROM `event` AS e
+        LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+        WHERE e.event_category = 1 AND e.event_status = 2 AND e.event_process_status = 1 AND egd.grid_community_id = #{communityId}
+        <if test="type != null and type == 1">
+            AND e.event_type = 3
+        </if>
+        <if test="type != null and type == 2">
+            AND e.event_type = 1
+        </if>
+        ) AS unHandledCount,
+        (SELECT COUNT(e.id) FROM `event` AS e
+        LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+        WHERE e.event_category = 1 AND e.event_status = 2 AND e.event_process_status = 2 AND egd.grid_community_id = #{communityId}
+        <if test="type != null and type == 1">
+            AND e.event_type = 3
+        </if>
+        <if test="type != null and type == 2">
+            AND e.event_type = 1
+        </if>
+        ) AS handledCount
+    </select>
+    <select id="pageFmsEventApplets" resultType="com.panzhihua.common.model.vos.grid.EventVO">
+        SELECT e.id, e.event_clazz, e.happen_time, e.event_des, e.grid_member_id
+        FROM `event` AS e
+        LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+        WHERE e.event_category = 1 AND e.event_status = 2 AND egd.grid_community_id = #{adminDTO.communityId} AND e.event_process_status = 2
+        <if test="adminDTO.eventClazz != null and adminDTO.eventClazz != &quot;&quot;">
+            AND e.event_clazz = #{adminDTO.eventClazz}
+        </if>
+        <if test="adminDTO.type != null and adminDTO.type == 1">
+            AND e.event_type = 3
+        </if>
+        <if test="adminDTO.type != null and adminDTO.type == 2">
+            AND e.event_type = 1
+        </if>
+        ORDER BY e.happen_time DESC
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComFmsServiceEvaluationsMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComFmsServiceEvaluationsMapper.xml
new file mode 100644
index 0000000..071b8f4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComFmsServiceEvaluationsMapper.xml
@@ -0,0 +1,38 @@
+<?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.ComFmsServiceEvaluationsDAO">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComFmsServiceEvaluations" id="ComFmsServiceEvaluationsMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="serviceId" column="service_id" jdbcType="INTEGER"/>
+        <result property="userId" column="user_id" jdbcType="INTEGER"/>
+        <result property="starLevel" column="star_level" jdbcType="INTEGER"/>
+        <result property="evaluateContent" column="evaluate_content" jdbcType="VARCHAR"/>
+        <result property="image" column="image" jdbcType="VARCHAR"/>
+        <result property="createdAt" column="created_at" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+    <!-- 批量插入 -->
+    <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.com_fms_service_evaluations(service_id, user_id, star_level, evaluate_content, image)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.serviceId}, #{entity.userId}, #{entity.starLevel}, #{entity.evaluateContent}, #{entity.image})
+        </foreach>
+    </insert>
+    <!-- 批量插入或按主键更新 -->
+    <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.com_fms_service_evaluations(service_id, user_id, star_level, evaluate_content, image,
+        created_at)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.serviceId}, #{entity.userId}, #{entity.starLevel}, #{entity.evaluateContent}, #{entity.image},
+            #{entity.createdAt})
+        </foreach>
+        on duplicate key update
+        service_id = values(service_id) , user_id = values(user_id) , star_level = values(star_level) , evaluate_content
+        = values(evaluate_content) , image = values(image) , created_at = values(created_at)
+    </insert>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComFmsServiceMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComFmsServiceMapper.xml
new file mode 100644
index 0000000..ed80361
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComFmsServiceMapper.xml
@@ -0,0 +1,365 @@
+<?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.ComFmsServiceDAO">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComFmsService" id="ComFmsServiceMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="userName" column="user_name" jdbcType="VARCHAR"/>
+        <result property="userId" column="user_id" jdbcType="INTEGER"/>
+        <result property="phone" column="phone" jdbcType="VARCHAR"/>
+        <result property="serviceContent" column="service_content" jdbcType="VARCHAR"/>
+        <result property="serviceImage" column="service_image" jdbcType="VARCHAR"/>
+        <result property="approvalContent" column="approval_content" jdbcType="VARCHAR"/>
+        <result property="approvalAt" column="approval_at" jdbcType="TIMESTAMP"/>
+        <result property="memberId" column="member_id" jdbcType="INTEGER"/>
+        <result property="serviceStatus" column="service_status" jdbcType="INTEGER"/>
+        <result property="serviceAt" column="service_at" jdbcType="TIMESTAMP"/>
+        <result property="createdAt" column="created_at" jdbcType="TIMESTAMP"/>
+        <result property="createdBy" column="created_by" jdbcType="INTEGER"/>
+        <result property="updatedAt" column="updated_at" jdbcType="TIMESTAMP"/>
+        <result property="updatedBy" column="updated_by" jdbcType="INTEGER"/>
+        <result property="communityId" column="community_id" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <!-- 批量插入 -->
+    <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.com_fms_service(user_name, user_id, phone, service_content, service_image, approval_content, approval_at, member_id, service_status, service_at, created_at, created_by, updated_at, updated_by, community_id)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+        (#{entity.userName}, #{entity.userId}, #{entity.phone}, #{entity.serviceContent}, #{entity.serviceImage}, #{entity.approvalContent}, #{entity.approvalAt}, #{entity.memberId}, #{entity.serviceStatus}, #{entity.serviceAt}, #{entity.createdAt}, #{entity.createdBy}, #{entity.updatedAt}, #{entity.updatedBy}, #{entity.communityId})
+        </foreach>
+    </insert>
+
+
+    <select id="getLastId" resultType="String">
+        SELECT LAST_INSERT_ID()
+    </select>
+
+    <insert id="addBracelet" parameterType="com.panzhihua.service_community.entity.ComFmsService" >
+        insert into smart_life.com_fms_service
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="entitie.userName != null">
+                user_name,
+            </if>
+            <if test="entitie.userId != null">
+                user_id,
+            </if>
+            <if test="entitie.phone != null">
+                phone,
+            </if>
+            <if test="entitie.serviceContent != null">
+                service_content,
+            </if>
+            <if test="entitie.serviceImage != null">
+                service_image,
+            </if>
+            <if test="entitie.approvalContent != null">
+                approval_content,
+            </if>
+            <if test="entitie.approvalAt != null">
+                approval_at,
+            </if>
+            <if test="entitie.memberId != null">
+                member_id,
+            </if>
+            <if test="entitie.serviceStatus != null">
+                service_status,
+            </if>
+            <if test="entitie.serviceAt != null">
+                service_at,
+            </if>
+            <if test="entitie.createdBy != null">
+                created_by,
+            </if>
+            <if test="entitie.updatedBy != null">
+                updated_by,
+            </if>
+            <if test="entitie.communityId != null">
+                community_id,
+            </if>
+            created_at
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="entitie.userName != null">
+                #{entitie.userName},
+            </if>
+            <if test="entitie.userId != null">
+                #{entitie.userId},
+            </if>
+            <if test="entitie.phone != null">
+                #{entitie.phone},
+            </if>
+            <if test="entitie.serviceContent != null">
+                #{entitie.serviceContent},
+            </if>
+            <if test="entitie.serviceImage != null">
+                #{entitie.serviceImage},
+            </if>
+            <if test="entitie.approvalContent != null">
+                #{entitie.approvalContent},
+            </if>
+            <if test="entitie.approvalAt != null">
+                #{entitie.approvalAt},
+            </if>
+            <if test="entitie.memberId != null">
+                #{entitie.memberId},
+            </if>
+            <if test="entitie.serviceStatus != null">
+                #{entitie.serviceStatus},
+            </if>
+            <if test="entitie.serviceAt != null">
+                #{entitie.serviceAt},
+            </if>
+            <if test="entitie.createdBy != null">
+                #{entitie.createdBy},
+            </if>
+            <if test="entitie.updatedBy != null">
+                #{entitie.updatedBy},
+            </if>
+            <if test="entitie.communityId != null">
+                #{entitie.communityId},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+
+
+    <!-- 批量插入或按主键更新 -->
+    <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.com_fms_service(user_name, user_id, phone, service_content, service_image, approval_content, approval_at, member_id, service_status, service_at, created_at, created_by, updated_at, updated_by, community_id)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.userName}, #{entity.userId}, #{entity.phone}, #{entity.serviceContent}, #{entity.serviceImage}, #{entity.approvalContent}, #{entity.approvalAt}, #{entity.memberId}, #{entity.serviceStatus}, #{entity.serviceAt}, #{entity.createdAt}, #{entity.createdBy}, #{entity.updatedAt}, #{entity.updatedBy}, #{entity.communityId})
+        </foreach>
+        on duplicate key update
+         user_name = values(user_name) , user_id = values(user_id) , phone = values(phone) , service_content = values(service_content) , service_image = values(service_image) , approval_content = values(approval_content) , approval_at = values(approval_at) , member_id = values(member_id) , service_status = values(service_status) , service_at = values(service_at) , created_at = values(created_at) , created_by = values(created_by) , updated_at = values(updated_at) , updated_by = values(updated_by) , community_id = values(community_id)     </insert>
+    <select id="pageFmsServiceAdmin" resultType="com.panzhihua.common.model.vos.community.fms.ComFmsServiceVO">
+        SELECT t1.id, t1.user_name, t1.phone, t1.created_at, t1.service_content, t2.`name` AS serviceMember, t3.star_level, t1.service_status
+        FROM com_fms_service t1
+        LEFT JOIN com_fms_team_member t2 ON t1.member_id = t2.id
+        LEFT JOIN com_fms_service_evaluations t3 ON t1.id = t3.service_id
+        WHERE t1.community_id = #{adminDTO.communityId}
+        <if test="adminDTO.keyword != null and adminDTO.keyword != &quot;&quot;">
+            AND(t1.user_name LIKE CONCAT('%',#{adminDTO.keyword},'%')
+            OR t2.`name` LIKE CONCAT('%',#{adminDTO.keyword},'%')
+            OR t1.service_content LIKE CONCAT('%',#{adminDTO.keyword},'%'))
+        </if>
+        <if test="adminDTO.serviceStatus != null">
+            AND t1.service_status = #{adminDTO.serviceStatus}
+        </if>
+        ORDER BY t1.created_at DESC
+    </select>
+    <select id="detailFmsServiceAdmin"
+            resultType="com.panzhihua.common.model.vos.community.fms.ComFmsServiceVO">
+        SELECT t1.id, t1.user_name, t2.`name` AS realName, t1.phone, t1.service_content, t1.service_image,
+        t1.service_status
+        FROM com_fms_service t1
+        LEFT JOIN sys_user t2 ON t1.user_id = t2.user_id
+        WHERE t1.id = #{serviceId}
+    </select>
+    <select id="statisticsFmsService"
+            resultType="com.panzhihua.common.model.vos.community.fms.FmsServiceTopStatisticsVO">
+        SELECT
+        (SELECT COUNT(id) FROM com_fms_service WHERE community_id = #{communityId} AND service_status = 4) AS completedCount,
+        (SELECT COUNT(id) FROM com_fms_service WHERE community_id = #{communityId} AND service_status = 1) AS unVerifiedCount,
+        (SELECT COUNT(id) FROM com_fms_service WHERE community_id = #{communityId} AND service_status = 2) AS inProgressCount,
+        (SELECT COUNT(id) FROM com_fms_service WHERE community_id = #{communityId} AND service_status = 3) AS unEvaluateCount,
+        (SELECT COUNT(id) FROM com_fms_service WHERE community_id = #{communityId} AND service_status = 5) AS unPassCount
+    </select>
+    <select id="pageFmsServiceAdminApplets"
+            resultType="com.panzhihua.common.model.vos.community.fms.ComFmsServiceVO">
+        SELECT t1.id, t1.service_content, t1.service_image,
+        IF(t2.nick_name IS NULL,IF(t1.user_name IS NULL,'匿名用户',t1.user_name),t2.nick_name) AS nickName, t2.image_url
+        FROM com_fms_service t1
+        LEFT JOIN sys_user t2 ON t1.user_id = t2.user_id
+        WHERE t1.community_id = #{adminDTO.communityId}
+        <if test="adminDTO.status != null and adminDTO.status == 1">
+            AND t1.service_status IN (3,4)
+        </if>
+        <if test="adminDTO.status != null and adminDTO.status == 2">
+            AND t1.service_status = 2
+        </if>
+        ORDER BY t1.created_at DESC
+    </select>
+    <select id="detailFmsServiceApplets"
+            resultType="com.panzhihua.common.model.vos.community.fms.ComFmsServiceVO">
+        SELECT t1.id, t1.service_content, t1.service_image, t1.phone, t1.service_status,
+        t1.created_at, IF(t2.nick_name IS NULL,IF(t1.user_name IS NULL,'匿名用户',t1.user_name),t2.nick_name) AS nickName, t2.image_url
+        FROM com_fms_service t1
+        LEFT JOIN sys_user t2 ON t1.user_id = t2.user_id
+        WHERE t1.id = #{serviceId}
+    </select>
+    <select id="pageMyFmsService" resultType="com.panzhihua.common.model.vos.community.fms.ComFmsServiceVO">
+        SELECT id, service_content, service_image, service_status, created_at
+        FROM com_fms_service WHERE user_id = #{adminDTO.userId} AND community_id = #{adminDTO.communityId}
+        ORDER BY created_at DESC
+    </select>
+    <select id="pageDealFmsService" resultType="com.panzhihua.common.model.vos.community.fms.ComFmsServiceVO">
+        SELECT t1.id, t1.service_content, t1.service_image, t1.service_status, t1.created_at,
+        IF(t2.nick_name IS NULL,IF(t1.user_name IS NULL,'匿名用户',t1.user_name),t2.nick_name) AS nickName, t2.image_url
+        FROM com_fms_service t1
+        LEFT JOIN sys_user t2 ON t1.user_id = t2.user_id
+        WHERE t1.community_id = #{adminDTO.communityId}
+        <if test="adminDTO.dealStatus != null and adminDTO.dealStatus == 1">
+            AND t1.member_id = #{adminDTO.memberId} AND t1.service_status = 2
+        </if>
+        <if test="adminDTO.dealStatus != null and adminDTO.dealStatus == 2">
+            AND t1.service_status = 1
+        </if>
+        <if test="adminDTO.dealStatus != null and adminDTO.dealStatus == 3">
+            AND t1.service_status IN (3,4)
+        </if>
+        ORDER BY t1.created_at DESC
+    </select>
+    <select id="getFmsBaseData"
+            resultType="com.panzhihua.common.model.vos.community.bigscreen.BigScreenFmsStatisticsInfo">
+        SELECT
+        (SELECT COUNT(id) FROM com_fms_team WHERE community_id = #{communityId}) AS teamTotal,
+        (SELECT COUNT(id) FROM com_fms_team_member WHERE community_id = #{communityId}) AS memberTotal,
+        (SELECT COUNT(id) FROM com_fms_service WHERE community_id = #{communityId}) AS serviceTotal,
+        (SELECT COUNT(id) FROM com_fms_service WHERE community_id = #{communityId} AND service_status = 4) AS completeServiceTotal,
+        (SELECT COUNT(id) FROM com_fms_classroom WHERE community_id = #{communityId}) AS classroomTotal,
+        (SELECT COUNT(e.id) FROM `event` AS e LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+        WHERE e.event_category = 1 AND e.event_status = 2 AND e.event_process_status = 2 AND egd.grid_community_id = #{communityId} AND e.event_type = 3) AS adjustTotal,
+        (SELECT COUNT(e.id) FROM `event` AS e LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+        WHERE e.event_category = 1 AND e.event_status = 2 AND e.event_process_status IN(1,2) AND egd.grid_community_id = #{communityId} AND e.event_type = 1) AS controlTotal,
+        (SELECT IF(SUM(scholars) IS NULL,0,SUM(scholars)) FROM com_fms_classroom WHERE community_id = #{communityId}) AS learnTotal,
+        (SELECT COUNT(e.id) FROM `event` AS e LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+        WHERE e.event_category = 1 AND e.event_status = 2 AND e.event_process_status IN(1,2) AND egd.grid_community_id = #{communityId} AND e.event_type = 1 AND e.danger_level > 0) AS fxyhTotal,
+        (SELECT COUNT(e.id) FROM `event` AS e LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+        WHERE e.event_category = 1 AND e.event_status = 2 AND e.event_process_status = 2 AND egd.grid_community_id = #{communityId} AND e.event_type = 1 AND e.danger_level > 0) AS jjyhTotal
+    </select>
+    <select id="retrieveTeamTypeCircleData"
+            resultType="com.panzhihua.common.model.vos.community.fms.ComFmsTeamVO">
+        SELECT
+            t1.id,
+            t1.`name`,
+            t2.`name` AS teamTypeName
+        FROM
+            com_fms_team t1
+            LEFT JOIN com_fms_team_type t2 ON t1.team_type = t2.id
+        WHERE
+            t1.community_id = #{communityId}
+    </select>
+    <select id="retrieveServiceAddPolylineData"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT filed, SUM(num) AS num FROM (
+            SELECT DATE_FORMAT( created_at, '%Y-%m' ) AS filed, COUNT(1) AS num
+            FROM com_fms_service
+            WHERE community_id = #{communityId} AND DATE_FORMAT( created_at, '%Y-%m' ) &gt; DATE_FORMAT(date_sub(curdate(), interval 12 month),'%Y-%m'
+            ) GROUP BY filed
+            UNION ALL SELECT * FROM
+            (
+                SELECT DATE_FORMAT(curdate(),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 1 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 2 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 3 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 4 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 5 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 6 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 7 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 8 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 9 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 10 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 11 month),'%Y-%m') AS filed, 0 AS num
+            ) temT
+        ) temp GROUP BY filed ORDER BY filed ASC
+    </select>
+    <select id="retrieveServiceTotalPolylineData"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT
+            COUNT( 1 ) AS num
+        FROM
+            com_fms_service
+        WHERE
+            community_id = #{communityId}
+            AND DATE_FORMAT( created_at, '%Y-%m' ) &lt;= #{date}
+    </select>
+    <select id="retrieveAdjustCircleData" resultType="com.panzhihua.common.model.vos.grid.EventVO">
+        SELECT
+        e.id,
+        substring_index( substring_index( e.event_clazz, ',', b.help_topic_id + 1 ), ',',- 1 ) AS event_clazz
+        FROM
+        `event` AS e
+        LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+        JOIN mysql.help_topic b ON b.help_topic_id &lt; ( length( e.event_clazz ) - length( REPLACE ( e.event_clazz, ',', '' ))+ 1 )
+        WHERE
+        e.event_category = 1
+        AND e.event_status = 2
+        AND e.event_process_status = 2
+        AND egd.grid_community_id = #{communityId}
+        AND e.event_type = 3
+    </select>
+    <select id="retrieveAdjustAddPolylineData"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT filed, SUM(num) AS num FROM (
+            SELECT DATE_FORMAT( e.create_at, '%Y-%m' ) AS filed, COUNT(1) AS num
+            FROM `event` AS e
+						LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+            WHERE e.event_category = 1
+						AND e.event_status = 2
+						AND e.event_process_status = 2
+						AND egd.grid_community_id = #{communityId}
+						AND e.event_type = 3 AND DATE_FORMAT( e.create_at, '%Y-%m' ) &gt; DATE_FORMAT(date_sub(curdate(), interval 12 month),'%Y-%m'
+            ) GROUP BY filed
+            UNION ALL SELECT * FROM
+            (
+                SELECT DATE_FORMAT(curdate(),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 1 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 2 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 3 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 4 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 5 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 6 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 7 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 8 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 9 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 10 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 11 month),'%Y-%m') AS filed, 0 AS num
+            ) temT
+        ) temp GROUP BY filed ORDER BY filed ASC
+    </select>
+    <select id="retrieveAdjustTotalPolylineData"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT
+            COUNT( e.id ) AS num
+        FROM `event` AS e
+        LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+        WHERE e.event_category = 1
+        AND e.event_status = 2
+        AND e.event_process_status = 2
+        AND egd.grid_community_id = #{communityId}
+        AND e.event_type = 3
+        AND DATE_FORMAT( e.create_at, '%Y-%m' ) &lt;= #{date}
+    </select>
+    <select id="retrieveControlCircleData" resultType="com.panzhihua.common.model.vos.grid.EventVO">
+        SELECT
+        e.id,
+        substring_index( substring_index( e.event_clazz, ',', b.help_topic_id + 1 ), ',',- 1 ) AS event_clazz
+        FROM
+        `event` AS e
+        LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+        JOIN mysql.help_topic b ON b.help_topic_id &lt; ( length( e.event_clazz ) - length( REPLACE ( e.event_clazz, ',', '' ))+ 1 )
+        WHERE
+        e.event_category = 1
+        AND e.event_status = 2
+        AND e.event_process_status = 2
+        AND egd.grid_community_id = #{communityId}
+        AND e.event_type = 1
+    </select>
+    <select id="pageFmsTeam" resultType="com.panzhihua.common.model.vos.community.fms.ComFmsTeamVO">
+        SELECT
+            t1.id,
+            t1.`name`,
+            t2.`name` AS teamTypeName,
+            COUNT(t3.team_id) AS teamMemberTotal
+        FROM com_fms_team t1
+        LEFT JOIN com_fms_team_type t2 ON t1.team_type = t2.id
+        LEFT JOIN com_fms_team_member_relation t3 ON t1.id = t3.team_id
+        WHERE t1.community_id = #{pageBaseDTO.communityId}
+        GROUP BY t1.id
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComFmsServiceRecordMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComFmsServiceRecordMapper.xml
new file mode 100644
index 0000000..ec02598
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComFmsServiceRecordMapper.xml
@@ -0,0 +1,83 @@
+<?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.ComFmsServiceRecordDAO">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComFmsServiceRecord" id="ComFmsServiceRecordMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="serviceId" column="service_id" jdbcType="INTEGER"/>
+        <result property="stage" column="stage" jdbcType="VARCHAR"/>
+        <result property="content" column="content" jdbcType="VARCHAR"/>
+        <result property="image" column="image" jdbcType="VARCHAR"/>
+        <result property="createdAt" column="created_at" jdbcType="TIMESTAMP"/>
+        <result property="createdBy" column="created_by" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <!-- 批量插入 -->
+    <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.com_fms_service_record(service_id, stage, content, image, created_at, created_by)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.serviceId}, #{entity.stage}, #{entity.content}, #{entity.image}, #{entity.createdAt},
+            #{entity.createdBy})
+        </foreach>
+    </insert>
+
+
+    <insert id="insertOneBatch" parameterType="com.panzhihua.service_community.entity.ComFmsServiceRecord">
+        insert into smart_life.com_fms_service_record
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="entitie.serviceId != null">
+                service_id,
+            </if>
+            <if test="entitie.stage != null">
+                stage,
+            </if>
+            <if test="entitie.content != null">
+                content,
+            </if>
+            <if test="entitie.image != null">
+                image,
+            </if>
+            <if test="entitie.createdBy != null">
+                created_by,
+            </if>
+            created_at
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="entitie.serviceId != null">
+                #{entitie.serviceId},
+            </if>
+            <if test="entitie.stage != null">
+                #{entitie.stage},
+            </if>
+            <if test="entitie.content != null">
+                #{entitie.content},
+            </if>
+            <if test="entitie.image != null">
+                #{entitie.image},
+            </if>
+            <if test="entitie.createdBy != null">
+                #{entitie.createdBy},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+
+
+
+    <!-- 批量插入或按主键更新 -->
+    <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.com_fms_service_record(service_id, stage, content, image, created_at, created_by)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.serviceId}, #{entity.stage}, #{entity.content}, #{entity.image}, #{entity.createdAt},
+            #{entity.createdBy})
+        </foreach>
+        on duplicate key update
+        service_id = values(service_id) , stage = values(stage) , content = values(content) , image = values(image) ,
+        created_at = values(created_at) , created_by = values(created_by)
+    </insert>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComFmsTeamMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComFmsTeamMapper.xml
new file mode 100644
index 0000000..904b1e0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComFmsTeamMapper.xml
@@ -0,0 +1,61 @@
+<?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.ComFmsTeamDAO">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComFmsTeam" id="ComFmsTeamMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="phone" column="phone" jdbcType="VARCHAR"/>
+        <result property="teamType" column="team_type" jdbcType="INTEGER"/>
+        <result property="createdAt" column="created_at" jdbcType="TIMESTAMP"/>
+        <result property="createdBy" column="created_by" jdbcType="INTEGER"/>
+        <result property="updatedAt" column="updated_at" jdbcType="TIMESTAMP"/>
+        <result property="updatedBy" column="updated_by" jdbcType="INTEGER"/>
+        <result property="communityId" column="community_id" jdbcType="INTEGER"/>
+        <result property="image" column="image" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <!-- 批量插入 -->
+    <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.com_fms_team(name, phone, team_type, created_at, created_by, updated_at, updated_by, community_id)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+        (#{entity.name}, #{entity.phone}, #{entity.teamType}, #{entity.createdAt}, #{entity.createdBy}, #{entity.updatedAt}, #{entity.updatedBy}, #{entity.communityId})
+        </foreach>
+    </insert>
+    <!-- 批量插入或按主键更新 -->
+    <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.com_fms_team(name, phone, team_type, created_at, created_by, updated_at, updated_by, community_id)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.name}, #{entity.phone}, #{entity.teamType}, #{entity.createdAt}, #{entity.createdBy}, #{entity.updatedAt}, #{entity.updatedBy}, #{entity.communityId})
+        </foreach>
+        on duplicate key update
+         name = values(name) , phone = values(phone) , team_type = values(team_type) , created_at = values(created_at) , created_by = values(created_by) , updated_at = values(updated_at) , updated_by = values(updated_by) , community_id = values(community_id)     </insert>
+    <select id="pageFmsTeamApplets" resultType="com.panzhihua.common.model.vos.community.fms.ComFmsTeamVO">
+        SELECT id, `name`, phone, team_type, image
+        FROM com_fms_team
+        WHERE community_id = #{pageFmsTeamDTO.communityId}
+        <if test="pageFmsTeamDTO.teamType != null">
+            AND team_type = #{pageFmsTeamDTO.teamType}
+        </if>
+        <if test="pageFmsTeamDTO.keyword != null and pageFmsTeamDTO.keyword != &quot;&quot;">
+            AND `name` LIKE CONCAT('%',#{pageFmsTeamDTO.keyword},'%')
+        </if>
+        ORDER BY created_at DESC
+    </select>
+    <select id="listFmsTeamApplets" resultType="com.panzhihua.common.model.vos.community.fms.ComFmsTeamVO">
+        SELECT id, `name`, phone, team_type, image
+        FROM com_fms_team
+        WHERE community_id = #{pageFmsTeamDTO.communityId}
+        <if test="pageFmsTeamDTO.teamType != null">
+            AND team_type = #{pageFmsTeamDTO.teamType}
+        </if>
+        <if test="pageFmsTeamDTO.keyword != null and pageFmsTeamDTO.keyword != &quot;&quot;">
+            AND `name` LIKE CONCAT('%',#{pageFmsTeamDTO.keyword},'%')
+        </if>
+        ORDER BY created_at DESC
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComFmsTeamMemberMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComFmsTeamMemberMapper.xml
new file mode 100644
index 0000000..d84256f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComFmsTeamMemberMapper.xml
@@ -0,0 +1,122 @@
+<?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.ComFmsTeamMemberDAO">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComFmsTeamMember" id="ComFmsTeamMemberMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="phone" column="phone" jdbcType="VARCHAR"/>
+        <result property="idCard" column="id_card" jdbcType="VARCHAR"/>
+        <result property="communityId" column="community_id" jdbcType="INTEGER"/>
+        <result property="createdAt" column="created_at" jdbcType="TIMESTAMP"/>
+        <result property="createdBy" column="created_by" jdbcType="INTEGER"/>
+        <result property="updatedAt" column="updated_at" jdbcType="TIMESTAMP"/>
+        <result property="updatedBy" column="updated_by" jdbcType="INTEGER"/>
+        <result property="cascadeIds" column="cascade_ids" jdbcType="VARCHAR"/>
+        <result property="gender" column="gender" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <!-- 批量插入 -->
+    <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.com_fms_team_member(name, phone, id_card, community_id, created_at, created_by, updated_at, updated_by, cascade_ids, gender)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+        (#{entity.name}, #{entity.phone}, #{entity.idCard}, #{entity.communityId}, #{entity.createdAt}, #{entity.createdBy}, #{entity.updatedAt}, #{entity.updatedBy}, #{entity.cascadeIds}, #{entity.gender})
+        </foreach>
+    </insert>
+    <!-- 批量插入或按主键更新 -->
+    <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.com_fms_team_member(name, phone, id_card, community_id, created_at, created_by, updated_at, updated_by, cascade_ids, gender)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.name}, #{entity.phone}, #{entity.idCard}, #{entity.communityId}, #{entity.createdAt}, #{entity.createdBy}, #{entity.updatedAt}, #{entity.updatedBy}, #{entity.cascadeIds}, #{entity.gender})
+        </foreach>
+        on duplicate key update
+         name = values(name) , phone = values(phone) , id_card = values(id_card) , community_id = values(community_id) , created_at = values(created_at) , created_by = values(created_by) , updated_at = values(updated_at) , updated_by = values(updated_by) , cascade_ids = values(cascade_ids) , gender = values(gender)     </insert>
+
+    <select id="pageFmsTeamMember"
+            resultType="com.panzhihua.common.model.vos.community.fms.ComFmsTeamMemberVO">
+        SELECT t2.id, t2.`name`, t2.phone, t2.id_card, t2.gender, t2.cascade_ids, t3.team_type, t4.`name` AS teamTypeName, t3.`name` AS teamName
+        FROM com_fms_team_member_relation t1
+        INNER JOIN com_fms_team_member t2 ON t1.member_id = t2.id
+        LEFT JOIN com_fms_team t3 ON t1.team_id = t3.id
+        LEFT JOIN com_fms_team_type t4 ON t3.team_type = t4.id
+        WHERE t2.community_id = #{pageTeamMemberDTO.communityId}
+        <if test="pageTeamMemberDTO.teamType != null">
+            AND t3.team_type = #{pageTeamMemberDTO.teamType}
+        </if>
+        <if test="pageTeamMemberDTO.teamId != null">
+            AND t1.team_id = #{pageTeamMemberDTO.teamId}
+        </if>
+        <if test="pageTeamMemberDTO.gender != null">
+            AND t2.gender = #{pageTeamMemberDTO.gender}
+        </if>
+        <if test="pageTeamMemberDTO.keyword != null and pageTeamMemberDTO.keyword != &quot;&quot;">
+            AND (t3.`name` LIKE CONCAT('%',#{pageTeamMemberDTO.keyword},'%')
+            OR t2.`name` LIKE CONCAT('%',#{pageTeamMemberDTO.keyword},'%')
+            OR t2.phone LIKE CONCAT('%',#{pageTeamMemberDTO.keyword},'%'))
+        </if>
+        ORDER BY t2.created_at DESC
+    </select>
+    <select id="countMember" resultType="java.lang.Integer">
+        SELECT COUNT(id) FROM com_fms_team_member
+        WHERE community_id = #{communityId} AND (phone = #{phone}
+        <if test="idCard != null and idCard != &quot;&quot;">
+            OR id_card = #{idCard}
+        </if>
+        )
+    </select>
+    <select id="statisticsFmsTeamMember"
+            resultType="com.panzhihua.common.model.vos.community.fms.TeamMemberTopStatisticsVO">
+        SELECT
+        (SELECT COUNT(id) FROM com_fms_team where community_id = #{communityId}) AS teamCount,
+        (SELECT COUNT(id) FROM com_fms_team_member where community_id = #{communityId}) AS memberCount
+    </select>
+    <select id="exportTeamMember"
+            resultType="com.panzhihua.common.model.vos.community.fms.ComFmsTeamMemberExportExcelVO">
+        SELECT t4.`name` AS teamType, t3.`name` AS teamName, t2.`name` AS teamMember, t2.id_card, t2.phone,
+        CASE
+        WHEN t2.gender = 1 THEN
+        '男'
+        WHEN t2.gender = 2 THEN
+        '女'
+        ELSE '未知'
+        END gender
+        FROM com_fms_team_member_relation t1
+        INNER JOIN com_fms_team_member t2 ON t1.member_id = t2.id
+        LEFT JOIN com_fms_team t3 ON t1.team_id = t3.id
+        LEFT JOIN com_fms_team_type t4 ON t3.team_type = t4.id
+        WHERE t2.community_id = #{pageTeamMemberDTO.communityId}
+        <if test="pageTeamMemberDTO.teamType != null">
+            AND t3.team_type = #{pageTeamMemberDTO.teamType}
+        </if>
+        <if test="pageTeamMemberDTO.teamId != null">
+            AND t1.team_id = #{pageTeamMemberDTO.teamId}
+        </if>
+        <if test="pageTeamMemberDTO.gender != null">
+            AND t2.gender = #{pageTeamMemberDTO.gender}
+        </if>
+        <if test="pageTeamMemberDTO.keyword != null and pageTeamMemberDTO.keyword != &quot;&quot;">
+            AND (t3.`name` LIKE CONCAT('%',#{pageTeamMemberDTO.keyword},'%')
+            OR t2.`name` LIKE CONCAT('%',#{pageTeamMemberDTO.keyword},'%')
+            OR t2.phone LIKE CONCAT('%',#{pageTeamMemberDTO.keyword},'%'))
+        </if>
+        ORDER BY t2.created_at DESC
+    </select>
+    <select id="selectListByCommunityId"
+            resultType="com.panzhihua.common.model.vos.community.fms.ComFmsTeamMemberVO">
+        SELECT t2.id, t1.team_id, t2.`name`
+        FROM com_fms_team_member_relation t1
+        INNER JOIN com_fms_team_member t2 ON t1.member_id = t2.id
+        WHERE t2.community_id = #{communityId}
+    </select>
+    <select id="selectVOListByTeamId"
+            resultType="com.panzhihua.common.model.vos.community.fms.ComFmsTeamMemberVO">
+        SELECT id, t2.`name`, t2.gender
+        FROM com_fms_team_member_relation t1
+        INNER JOIN com_fms_team_member t2 ON t1.member_id = t2.id
+        WHERE t1.team_id = #{teamId}
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComFmsTeamMemberRelationMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComFmsTeamMemberRelationMapper.xml
new file mode 100644
index 0000000..fcbcc78
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComFmsTeamMemberRelationMapper.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_community.dao.ComFmsTeamMemberRelationDAO">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComFmsTeamMemberRelation" id="ComFmsTeamMemberRelationMap">
+        <result property="teamId" column="team_id" jdbcType="INTEGER"/>
+        <result property="memberId" column="member_id" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <!-- 批量插入 -->
+    <insert id="insertBatch" keyProperty="teamId" useGeneratedKeys="true">
+        insert into smart_life.com_fms_team_member_relation(team_id, member_id)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.teamId}, #{entity.memberId})
+        </foreach>
+    </insert>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComFmsTeamTypeMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComFmsTeamTypeMapper.xml
new file mode 100644
index 0000000..87e3b94
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComFmsTeamTypeMapper.xml
@@ -0,0 +1,38 @@
+<?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.ComFmsTeamTypeDAO">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComFmsTeamType" id="ComFmsTeamTypeMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="communityId" column="community_id" jdbcType="INTEGER"/>
+        <result property="createdAt" column="created_at" jdbcType="TIMESTAMP"/>
+        <result property="createdBy" column="created_by" jdbcType="INTEGER"/>
+        <result property="updatedAt" column="updated_at" jdbcType="TIMESTAMP"/>
+        <result property="updatedBy" column="updated_by" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <!-- 批量插入 -->
+    <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.com_fms_team_type(name, community_id, created_at, created_by, updated_at, updated_by)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.name}, #{entity.communityId}, #{entity.createdAt}, #{entity.createdBy}, #{entity.updatedAt},
+            #{entity.updatedBy})
+        </foreach>
+    </insert>
+    <!-- 批量插入或按主键更新 -->
+    <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.com_fms_team_type(name, community_id, created_at, created_by, updated_at, updated_by)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.name}, #{entity.communityId}, #{entity.createdAt}, #{entity.createdBy}, #{entity.updatedAt},
+            #{entity.updatedBy})
+        </foreach>
+        on duplicate key update
+        name = values(name) , community_id = values(community_id) , created_at = values(created_at) , created_by =
+        values(created_by) , updated_at = values(updated_at) , updated_by = values(updated_by)
+    </insert>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComKeyPopulationMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComKeyPopulationMapper.xml
new file mode 100644
index 0000000..2c92044
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComKeyPopulationMapper.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_community.dao.ComKeyPopulationDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComKeyPopulationDO">
+                <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="name" property="name" />
+                <result column="card_no" property="cardNo" />
+                <result column="phone" property="phone" />
+                <result column="remark" property="remark" />
+                <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, name, card_no, phone, remark, create_at, create_by, update_at, update_by
+    </sql>
+
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComLowSecurityPopulationMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComLowSecurityPopulationMapper.xml
new file mode 100644
index 0000000..57f49f7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComLowSecurityPopulationMapper.xml
@@ -0,0 +1,56 @@
+<?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.ComLowSecurityPopulationDAO">
+
+        <!-- 通用查询映射结果 -->
+        <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComLowSecurityPopulationDO">
+                    <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="name" property="name" />
+                    <result column="card_no" property="cardNo" />
+                    <result column="phone" property="phone" />
+                    <result column="region" property="region" />
+                    <result column="family_code" property="familyCode" />
+                    <result column="group_name" property="groupName" />
+                    <result column="classified_rescue_category" property="classifiedRescueCategory" />
+                    <result column="apply_date" property="applyDate" />
+                    <result column="house_holder_name" property="houseHolderName" />
+                    <result column="house_holder_card_no" property="houseHolderCardNo" />
+                    <result column="house_holder_code" property="houseHolderCode" />
+                    <result column="residence_postal_code" property="residencePostalCode" />
+                    <result column="salvage_certificate_no" property="salvageCertificateNo" />
+                    <result column="guaranteed_population_number" property="guaranteedPopulationNumber" />
+                    <result column="family_population_number" property="familyPopulationNumber" />
+                    <result column="account_person" property="accountPerson" />
+                    <result column="account_bank" property="accountBank" />
+                    <result column="account_card_no" property="accountCardNo" />
+                    <result column="bank_account" property="bankAccount" />
+                    <result column="support_institutions" property="supportInstitutions" />
+                    <result column="distribution_method" property="distributionMethod" />
+                    <result column="guaranteed_amount" property="guaranteedAmount" />
+                    <result column="reallocation_amount" property="reallocationAmount" />
+                    <result column="difference_relief_amount" property="differenceReliefAmount" />
+                    <result column="classified_insured_amount" property="classifiedInsuredAmount" />
+                    <result column="total_monthly_family_income" property="totalMonthlyFamilyIncome" />
+                    <result column="average_monthly_family_income" property="averageMonthlyFamilyIncome" />
+                    <result column="total_monthly_family_expenditure" property="totalMonthlyFamilyExpenditure" />
+                    <result column="lng" property="lng" />
+                    <result column="lat" property="lat" />
+                    <result column="originate_date" property="originateDate" />
+                    <result column="nursing_fee" property="nursingFee" />
+                    <result column="apply_reason" property="applyReason" />
+                    <result column="review_comment" property="reviewComment" />
+                    <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, name, card_no, phone, region, family_code, group_name, classified_rescue_category, apply_date, house_holder_name, house_holder_card_no, house_holder_code, residence_postal_code, salvage_certificate_no, guaranteed_population_number, family_population_number, account_person, account_bank, account_card_no, bank_account, support_institutions, distribution_method, guaranteed_amount, reallocation_amount, difference_relief_amount, classified_insured_amount, total_monthly_family_income, average_monthly_family_income, total_monthly_family_expenditure, lng, lat, originate_date, nursing_fee, apply_reason, review_comment, create_at, create_by, update_at, update_by
+    </sql>
+
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMajorPopulationMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMajorPopulationMapper.xml
new file mode 100644
index 0000000..6831bed
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMajorPopulationMapper.xml
@@ -0,0 +1,38 @@
+<?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.ComMajorPopulationDAO">
+
+        <!-- 通用查询映射结果 -->
+        <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComMajorPopulationDO">
+                    <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="name" property="name" />
+                    <result column="card_no" property="cardNo" />
+                    <result column="economic_condition" property="economicCondition" />
+                    <result column="person_type" property="personType" />
+                    <result column="family_situation" property="familySituation" />
+                    <result column="custody_person" property="custodyPerson" />
+                    <result column="custody_relation" property="custodyRelation" />
+                    <result column="custody_card_no" property="custodyCardNo" />
+                    <result column="custody_person_phone" property="custodyPersonPhone" />
+                    <result column="custody_address" property="custodyAddress" />
+                    <result column="help_person" property="helpPerson" />
+                    <result column="help_person_phone" property="helpPersonPhone" />
+                    <result column="help_method" property="helpMethod" />
+                    <result column="help_situation" property="helpSituation" />
+                    <result column="is_crime" property="isCrime" />
+                    <result column="crime_sutiation" property="crimeSutiation" />
+                    <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, name, card_no, economic_condition, person_type, family_situation, custody_person, custody_relation, custody_card_no, custody_person_phone, custody_address, help_person, help_person_phone, help_method, help_situation, is_crime, crime_sutiation, create_at, create_by, update_at, update_by
+    </sql>
+
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMediaTypeMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMediaTypeMapper.xml
new file mode 100644
index 0000000..2640e19
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMediaTypeMapper.xml
@@ -0,0 +1,16 @@
+<?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.ComMediateTypeDao">
+    <select id="eventList" resultType="com.panzhihua.service_community.entity.ComMediateType">
+        select * from com_mediate_type
+        where delete_flag=0
+        <if test="keyWord != null and keyWord != ''">
+            and name like concat('%',#{keyWord},'%')
+        </if>
+    </select>
+    <select id="selectEventCount" resultType="java.lang.Integer">
+        select count(id) from com_sanshuo_event_info
+        where event_category = #{id}
+        AND app_id=#{appId}
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngBuildingMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngBuildingMapper.xml
new file mode 100644
index 0000000..89eaf52
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngBuildingMapper.xml
@@ -0,0 +1,218 @@
+<?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.ComMngBuildingDAO">
+
+    <resultMap type="com.panzhihua.service_community.model.dos.ComMngBuildingDO" id="ComMngBuildingBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="streetId" column="street_id"/>
+        <result property="actId" column="act_id"/>
+        <result property="villageId" column="village_id"/>
+        <result property="name" column="name"/>
+        <result property="buildFloorSum" column="build_floor_sum"/>
+        <result property="everyFloorSum" column="every_floor_sum"/>
+        <result property="buildUserSum" column="build_user_sum"/>
+        <result property="buildType" column="build_type"/>
+        <result property="buildStructure" column="build_structure"/>
+        <result property="useType" column="use_type"/>
+        <result property="buildDate" column="build_date"/>
+        <result property="unitTotal" column="unit_total"/>
+        <result property="elevatorTotal" column="elevator_total"/>
+        <result property="buildStatus" column="build_status"/>
+        <result property="path" column="path"/>
+        <result property="lng" column="lng"/>
+        <result property="lat" column="lat"/>
+        <result property="buildingResponsible" column="building_responsible"/>
+        <result property="buildingResponsibleCardNo" column="building_responsible_card_no"/>
+        <result property="buildingResponsiblePhone" column="building_responsible_phone"/>
+        <result property="buildingResponsibleType" column="building_responsible_type"/>
+        <result property="createAt" column="create_at"/>
+        <result property="updateAt" column="update_at"/>
+        <result property="remark" column="remark"/>
+        <result property="gridId" column="grid_id"/>
+    </resultMap>
+
+    <select id="find" resultType="String">
+        select distinct concat(alley,house_num,'号',IFNULL(unit_no,0),'栋') from com_mng_population_house   where id in (${id})
+    </select>
+
+    <select id="findByVillage" resultType="String">
+        select distinct concat(alley,house_num,'号') from com_mng_village   where village_id in (${id})
+    </select>
+
+    <resultMap id="selectMap" type="com.panzhihua.common.model.vos.community.VillageVO">
+        <result property="value" column="villageId"/>
+        <result property="label" column="villageName"/>
+        <collection property="children" ofType="com.panzhihua.common.model.vos.community.BuildingVO"
+                    column="{village_id = village_id}"
+                    javaType="java.util.ArrayList">
+            <result property="value" column="id"/>
+            <result property="label" column="name"/>
+        </collection>
+    </resultMap>
+
+    <select id="select" resultMap="selectMap">
+        select t.village_id as villageId,t.name as villageName,t1.id,t1.name  from com_mng_village t left join com_mng_building t1 on t.village_id = t1.village_id where t.community_id = ${id} and t1.id is not null
+    </select>
+
+    <select id="pageBuildingAdmin" resultType="com.panzhihua.common.model.vos.community.building.admin.PageBuildingListAdminVo">
+        SELECT
+            cmb.id,
+            cmv.village_id,
+            cmv.alley,
+            cmb.`name`,
+            cmv.`name` AS villageName,
+            cmv.house_num as doorNum,
+            (select count(distinct unit_no) from com_mng_population_house where village_id = cmb.village_id AND floor = cmb.`name`) as unit_total,
+            (select max(CAST(house_no as SIGNED)) from com_mng_population_house where village_id = cmb.village_id AND floor = cmb.`name` AND `unit_no` is not null and house_no is not null) as buildFloorSum,
+            (select count(id) from com_mng_population_house where village_id = cmb.village_id and floor = cmb.`name` ) as houseNum,
+            (select count(id) from com_mng_population where village_id = cmb.village_id and floor = cmb.`name`) as populationNum
+        FROM
+            com_mng_building AS cmb
+            inner JOIN com_mng_village AS cmv ON cmv.village_id = cmb.village_id
+            <where>
+                <if test="pageBuildingListDto.communityId != null">
+                    and cmb.act_id = #{pageBuildingListDto.communityId}
+                </if>
+                <if test="pageBuildingListDto.villageId != null">
+                    and cmb.village_id = #{pageBuildingListDto.villageId}
+                </if>
+                <if test="pageBuildingListDto.keyWord != null and pageBuildingListDto.keyWord != &quot;&quot;">
+                    and cmv.alley like concat(#{pageBuildingListDto.keyWord},'%')
+                </if>
+            </where>
+        order by cmb.id desc
+    </select>
+
+    <select id="buildingListHeaderStatisticsAdmin" resultType="com.panzhihua.common.model.vos.community.building.admin.BuildingListHeaderStatisticsAdminVo">
+        SELECT count( id ) AS buildNum,( SELECT count( id ) FROM com_mng_population_house WHERE community_id = cmb.act_id ) AS houseNum,
+        ( SELECT count( id ) FROM com_mng_population_community_tags WHERE community_id = cmb.act_id ) AS populationNum
+        FROM
+            com_mng_building AS cmb
+        WHERE
+            cmb.act_id = #{communityId}
+    </select>
+
+    <select id="detailBuildAdmin" resultType="com.panzhihua.common.model.vos.community.building.admin.BuildingDetailAdminVo">
+        SELECT
+            cmb.id,
+            cmv.alley,
+            cmv.house_num AS doorNum,
+            cmb.`name`,
+            cmv.`name` AS villageName,
+            cmv.village_id,
+            ( SELECT count( id ) FROM com_mng_population_house WHERE village_id = cmb.village_id AND floor = cmb.`name` AND `unit_no` is not null and house_no is not null) AS houseNum,
+            ( SELECT count( id ) FROM com_mng_population_house WHERE village_id = cmb.village_id AND floor = cmb.`name` AND `unit_no` is not null and house_no is not null AND `status` = 1 ) AS liveTotal,
+            ( SELECT count( id ) FROM com_mng_population_house WHERE village_id = cmb.village_id AND floor = cmb.`name` AND `unit_no` is not null and house_no is not null AND `status` = 2 ) AS leaseTotal,
+            ( SELECT count( id ) FROM com_mng_population_house WHERE village_id = cmb.village_id AND floor = cmb.`name` AND `unit_no` is not null and house_no is not null AND `status` = 3 ) AS vacantNum
+        FROM
+            com_mng_building AS cmb
+            LEFT JOIN com_mng_village AS cmv ON cmv.village_id = cmb.village_id
+            where cmb.id = #{id}
+    </select>
+
+    <select id="buildingUnitList" resultType="com.panzhihua.common.model.vos.grid.ComMngVillageBuildingVO">
+        SELECT DISTINCT
+            village_id,
+            floor,
+            unit_no
+        FROM
+            com_mng_population_house AS cmph
+        WHERE
+            village_id = #{villageId} and floor = #{floor}
+    </select>
+
+    <select id="getBuildingUnitHouseList" resultType="com.panzhihua.common.model.vos.grid.ComMngVillageBuildingHouseVO">
+        SELECT id, floor, unit_no, house_no, `status`,floor_num as buildingNum,
+        ( SELECT count( id ) FROM com_mng_population_house_user WHERE house_id = cmph.id ) AS userNum
+        FROM
+            com_mng_population_house AS cmph
+        where cmph.village_id = #{pageBuildingListDto.villageId}
+         and cmph.floor = #{pageBuildingListDto.floor}
+          and cmph.unit_no = #{pageBuildingListDto.unit}
+          and cmph.house_no is not null
+
+          order by house_no,floor_num ASC
+    </select>
+
+    <select id="getBuildingUnitHouseStatistics" resultType="Map">
+        SELECT
+            count( id ) as houseNum,
+            (select count(id) from com_mng_population_house where village_id = #{villageId} and floor = #{floor} and unit_no = #{unit} and house_no is not null and `status` = 1) as liveTotal,
+            (select count(id) from com_mng_population_house where village_id = #{villageId} and floor = #{floor} and unit_no = #{unit} and house_no is not null and `status` = 2) as leaseTotal,
+            (select count(id) from com_mng_population_house where village_id = #{villageId} and floor = #{floor} and unit_no = #{unit} and house_no is not null and `status` = 3) as vacantNum
+        FROM
+            com_mng_population_house
+        WHERE
+            village_id = #{villageId} and floor = #{floor} and unit_no = #{unit} and house_no is not null
+    </select>
+
+    <select id="buildingUnitHouseDetailAdmin" resultType="com.panzhihua.common.model.vos.grid.ComMngVillageBuildingHouseDetailVO">
+        SELECT
+            cmph.id,
+            cmv.`name` AS villageName,
+            cmph.floor,
+            cmph.unit_no,
+            cmph.house_no,
+            cmph.address,
+            cmph.`status`,
+            cmv.lat,
+            cmv.lng
+        FROM
+            com_mng_population_house AS cmph
+            LEFT JOIN com_mng_village AS cmv ON cmv.village_id = cmph.village_id
+        WHERE
+            cmph.id = #{houseId}
+    </select>
+
+    <select id="getGridVillageBuildingPopulationList" resultType="com.panzhihua.common.model.vos.grid.PopulationListVO">
+        SELECT
+            cmp.id,
+            cmphu.id AS housePopulationId,
+            cmp.sex,
+            cmp.`name`,
+            IFNULL( cmp.phone, '暂无' ) AS phone,
+            cmp.card_no,
+            cmpct.label,
+            cmp.address,
+            cmp.nation,
+            cmphu.create_at,
+            cmphu.relation_id,
+            cmp.political_outlook
+        FROM
+            com_mng_population_house_user AS cmphu
+            LEFT JOIN com_mng_population AS cmp ON cmp.id = cmphu.popul_id
+            LEFT JOIN com_mng_population_community_tags AS cmpct ON cmp.id = cmpct.population_id and community_id = ${communityId}
+        WHERE
+            cmphu.house_id = #{houseId}
+        <if test='relation != null '>
+           AND cmphu.relation = #{relation}
+        </if>
+        <if test='relationId != null '>
+           AND cmphu.relation_id = #{relationId}
+        </if>
+        group by id
+    </select>
+
+    <select id="buildingVillageListAdmin" resultType="com.panzhihua.common.model.vos.community.ComMngVillageVO">
+        SELECT
+            village_id,
+            alley,
+            house_num,
+            `name`
+        FROM
+            com_mng_village
+        WHERE
+            community_id = ${communityId}
+    </select>
+
+    <select id="getBuildListByVillageId" resultType="com.panzhihua.common.model.vos.community.building.admin.PageBuildingListAdminVo">
+        SELECT
+            cmb.id,
+            cmb.`name`
+        FROM
+            com_mng_building AS cmb
+        WHERE
+            cmb.village_id = #{villageId}
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngPopulationCommunityTagsMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngPopulationCommunityTagsMapper.xml
new file mode 100644
index 0000000..5e2f538
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngPopulationCommunityTagsMapper.xml
@@ -0,0 +1,46 @@
+<?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.ComMngPopulationCommunityTagsDAO">
+
+        <!-- 通用查询映射结果 -->
+        <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComMngPopulationCommunityTagsDO">
+                    <id column="id" property="id" />
+                    <result column="population_id" property="populationId" />
+                    <result column="community_id" property="communityId" />
+                    <result column="label" property="label" />
+                    <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, community_id, label, create_at, create_by, update_at, update_by
+    </sql>
+
+    <update id="updateAll" parameterType="java.util.List">
+        <foreach collection="comMngPopulationCommunityTagsDOS" item="item" index="index" separator=";">
+            update com_mng_population_community_tags
+            <set>
+                <if test="item.label != null">
+                    `label` = #{item.label},
+                </if>
+                <if test="item.updateBy != null">
+                    `update_by` = #{item.updateBy},
+                </if>
+                `update_at` = NOW()
+            </set>
+            WHERE `id` = #{item.id}
+        </foreach>
+        ;
+    </update>
+
+    <delete id="deletePopulationRelation">
+        delete from com_mng_population_community_tags where community_id = ${communityId} and population_id in
+        <foreach item="item" collection="ids" separator="," open="(" close=")" index="">
+            #{item}
+        </foreach>
+    </delete>
+
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngPopulationDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngPopulationDOMapper.xml
new file mode 100644
index 0000000..44ff046
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngPopulationDOMapper.xml
@@ -0,0 +1,1294 @@
+<?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.ComMngPopulationDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComMngPopulationDO">
+        <id column="id" property="id" />
+        <result column="street_id" property="streetId" />
+        <result column="act_id" property="actId" />
+        <result column="village_id" property="villageId" />
+        <result column="name" property="name" />
+        <result column="sex" property="sex" />
+        <result column="certificate_type" property="certificateType" />
+        <result column="card_no" property="cardNo" />
+        <result column="card_no_expiration_date" property="cardNoExpirationDate" />
+        <result column="card_no_str" property="cardNoStr" />
+        <result column="road" property="road" />
+        <result column="door_no" property="doorNo" />
+        <result column="floor" property="floor" />
+        <result column="unit_no" property="unitNo" />
+        <result column="house_no" property="houseNo" />
+        <result column="political_outlook" property="politicalOutlook" />
+        <result column="work_company" property="workCompany" />
+        <result column="special_situation" property="specialSituation" />
+        <result column="phone" property="phone" />
+        <result column="out_or_local" property="outOrLocal" />
+        <result column="census_register" property="censusRegister" />
+        <result column="person_type" property="personType" />
+        <result column="country" property="country" />
+        <result column="date_of_departure" property="dateOfDeparture" />
+        <result column="native_place" property="nativePlace" />
+        <result column="nation_code" property="nationCode" />
+        <result column="nation" property="nation" />
+        <result column="is_rent" property="isRent" />
+        <result column="culture_level" property="cultureLevel" />
+        <result column="marriage" property="marriage" />
+        <result column="healthy" property="healthy" />
+        <result column="blood_type" property="bloodType" />
+        <result column="religion" property="religion" />
+        <result column="profession" property="profession" />
+        <result column="person_status" property="personStatus" />
+        <result column="death" property="death" />
+        <result column="head_portrait" property="headPortrait" />
+        <result column="monthly_income" property="monthlyIncome" />
+        <result column="family_status" property="familyStatus" />
+        <result column="birthday" property="birthday" />
+        <result column="goal_in_china" property="goalInChina" />
+        <result column="date_of_arrival" property="dateOfArrival" />
+        <result column="label" property="label" />
+        <result column="card_photo_front" property="cardPhotoFront" />
+        <result column="card_photo_back" property="cardPhotoBack" />
+        <result column="family_book" property="familyBook" />
+        <result column="delete_flag" property="deleteFlag" />
+        <result column="remark" property="remark" />
+        <result column="create_at" property="createAt" />
+        <result column="update_at" property="updateAt" />
+        <result column="residence" property="residence" />
+        <result column="address" property="address" />
+        <result column="house_id" property="houseId" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, street_id, act_id, village_id, name, sex, certificate_type, card_no, card_no_expiration_date, card_no_str, road, door_no, floor, unit_no, house_no, political_outlook, work_company, special_situation, phone, out_or_local, census_register, person_type, country, date_of_departure, native_place, nation_code, nation, is_rent, culture_level, marriage, healthy, blood_type, religion, profession, person_status, death, head_portrait, monthly_income, family_status, birthday, goal_in_china, date_of_arrival, label, card_photo_front, card_photo_back, family_book, delete_flag, remark, create_at, update_at, residence, address, house_id
+    </sql>
+
+    <update id="updateAll" parameterType="java.util.List">
+        <foreach collection="populationList" item="item" index="index" separator=";">
+            update com_mng_population
+            <set>
+                <if test="item.streetId != null">
+                    `street_id` = #{item.streetId},
+                </if>
+                <if test="item.actId != null">
+                    `act_id` = #{item.actId},
+                </if>
+                <if test="item.villageId != null">
+                    `village_id` = #{item.villageId},
+                </if>
+                <if test="item.name != null and item.name !=&quot;&quot;">
+                    `name` = #{item.name},
+                </if>
+                <if test="item.sex != null">
+                    `sex` = #{item.sex},
+                </if>
+                <if test="item.certificateType != null and item.certificateType !=&quot;&quot;">
+                    `certificate_type` = #{item.certificateType},
+                </if>
+                <if test="item.cardNo != null and item.cardNo !=&quot;&quot;">
+                    `card_no` = #{item.cardNo},
+                </if>
+                <if test="item.cardNoExpirationDate != null">
+                    `card_no_expiration_date` = #{item.cardNoExpirationDate},
+                </if>
+                <if test="item.cardNoStr != null and item.cardNoStr !=&quot;&quot;">
+                    `card_no_str` = #{item.cardNoStr},
+                </if>
+                <if test="item.road != null and item.road !=&quot;&quot;">
+                    `road` = #{item.road},
+                </if>
+                <if test="item.doorNo != null and item.doorNo !=&quot;&quot;">
+                    `door_no` = #{item.doorNo},
+                </if>
+                <if test="item.floor != null and item.floor !=&quot;&quot;">
+                    `floor` = #{item.floor},
+                </if>
+                <if test="item.unitNo != null and item.unitNo !=&quot;&quot;">
+                    `unit_no` = #{item.unitNo},
+                </if>
+                <if test="item.houseNo != null and item.houseNo !=&quot;&quot;">
+                    `house_no` = #{item.houseNo},
+                </if>
+                <if test="item.politicalOutlook != null">
+                    `political_outlook` = #{item.politicalOutlook},
+                </if>
+                <if test="item.workCompany != null and item.workCompany !=&quot;&quot;">
+                    `work_company` = #{item.workCompany},
+                </if>
+                <if test="item.specialSituation != null and item.specialSituation !=&quot;&quot;">
+                    `special_situation` = #{item.specialSituation},
+                </if>
+                <if test="item.phone != null and item.phone !=&quot;&quot;">
+                    `phone` = #{item.phone},
+                </if>
+                <if test="item.outOrLocal != null">
+                    `out_or_local` = #{item.outOrLocal},
+                </if>
+                <if test="item.censusRegister != null and item.censusRegister !=&quot;&quot;">
+                    `census_register` = #{item.censusRegister},
+                </if>
+                <if test="item.personType != null and item.personType !=&quot;&quot;">
+                    `person_type` = #{item.personType},
+                </if>
+                <if test="item.country != null and item.country !=&quot;&quot;">
+                    `country` = #{item.country},
+                </if>
+                <if test="item.dateOfDeparture != null">
+                    `date_of_departure` = #{item.dateOfDeparture},
+                </if>
+                <if test="item.nativePlace != null and item.nativePlace !=&quot;&quot;">
+                    `native_place` = #{item.nativePlace},
+                </if>
+                <if test="item.nationCode != null and item.nationCode !=&quot;&quot;">
+                    `nation_code` = #{item.nationCode},
+                </if>
+                <if test="item.nation != null and item.nation !=&quot;&quot;">
+                    `nation` = #{item.nation},
+                </if>
+                <if test="item.isRent != null">
+                    `is_rent` = #{item.isRent},
+                </if>
+                <if test="item.cultureLevel != null">
+                    `culture_level` = #{item.cultureLevel},
+                </if>
+                <if test="item.marriage != null">
+                    `marriage` = #{item.marriage},
+                </if>
+                <if test="item.healthy != null and item.healthy !=&quot;&quot;">
+                    `healthy` = #{item.healthy},
+                </if>
+                <if test="item.bloodType != null and item.bloodType !=&quot;&quot;">
+                    `blood_type` = #{item.bloodType},
+                </if>
+                <if test="item.religion != null and item.religion !=&quot;&quot;">
+                    `religion` = #{item.religion},
+                </if>
+                <if test="item.profession != null and item.profession !=&quot;&quot;">
+                    `profession` = #{item.profession},
+                </if>
+                <if test="item.personStatus != null and item.personStatus !=&quot;&quot;">
+                    `person_status` = #{item.personStatus},
+                </if>
+                <if test="item.death != null and item.death !=&quot;&quot;">
+                    `death` = #{item.death},
+                </if>
+                <if test="item.headPortrait != null and item.headPortrait !=&quot;&quot;">
+                    `head_portrait` = #{item.headPortrait},
+                </if>
+                <if test="item.monthlyIncome != null and item.monthlyIncome !=&quot;&quot;">
+                    `monthly_income` = #{item.monthlyIncome},
+                </if>
+                <if test="item.familyStatus != null and item.familyStatus !=&quot;&quot;">
+                    `family_status` = #{item.familyStatus},
+                </if>
+                <if test="item.birthday != null and item.birthday !=&quot;&quot;">
+                    `birthday` = #{item.birthday},
+                </if>
+                <if test="item.goalInChina != null and item.goalInChina !=&quot;&quot;">
+                    `goal_in_china` = #{item.goalInChina},
+                </if>
+                <if test="item.label != null and item.label !=&quot;&quot;">
+                    `label` = #{item.label},
+                </if>
+                <if test="item.dateOfArrival != null">
+                    `date_of_arrival` = #{item.dateOfArrival},
+                </if>
+                <if test="item.cardPhotoFront != null and item.cardPhotoFront !=&quot;&quot;">
+                    `card_photo_front` = #{item.cardPhotoFront},
+                </if>
+                <if test="item.cardPhotoBack != null and item.cardPhotoBack !=&quot;&quot;">
+                    `card_photo_back` = #{item.cardPhotoBack},
+                </if>
+                <if test="item.familyBook != null and item.familyBook !=&quot;&quot;">
+                    `family_book` = #{item.familyBook},
+                </if>
+                <if test="item.deleteFlag != null">
+                    `delete_flag` = #{item.deleteFlag},
+                </if>
+                <if test="item.remark != null and item.remark !=&quot;&quot;">
+                    `remark` = #{item.remark},
+                </if>
+                <if test="item.residence != null and item.residence !=&quot;&quot;">
+                    `residence` = #{item.residence},
+                </if>
+                <if test="item.address != null and item.address !=&quot;&quot;">
+                    `address` = #{item.address},
+                </if>
+                <if test="item.houseId != null">
+                    `house_id` = #{item.houseId},
+                </if>
+                `update_at` = NOW()
+            </set>
+            WHERE `id` = #{item.id}
+        </foreach>
+        ;
+    </update>
+
+    <select id="pagePopulationListApp" resultType="com.panzhihua.common.model.vos.grid.PopulationListVO">
+        SELECT
+        cmp.id,
+        cmp.`name`,
+        cmp.phone,
+        cmp.card_no,
+        cmpct.label,
+        cmp.address,
+        cmp.nation,
+        cmp.political_outlook,
+        cmv.lng,
+        cmv.lat,
+        cmp.sex
+        FROM
+        com_mng_population AS cmp
+        LEFT JOIN com_mng_village AS cmv ON cmv.village_id = cmp.village_id
+        LEFT JOIN com_mng_population_community_tags AS cmpct ON cmp.id = cmpct.population_id
+        WHERE
+        cmpct.community_id = #{populationListDTO.communityId}
+        <if test = 'populationListDTO.keyWord != null and populationListDTO.keyWord != &quot;&quot;' >
+            AND (cmp.`name` LIKE concat (#{populationListDTO.keyWord},'%') or cmp.card_no_str like concat (#{populationListDTO.keyWord},'%'))
+        </if>
+        <if test = 'populationListDTO.label != null and populationListDTO.label != &quot;&quot;' >
+            AND cmpct.label LIKE concat ('%',#{populationListDTO.label},'%')
+        </if>
+        <if test="populationListDTO.outOrLocal != null">
+            AND cmp.out_or_local = #{populationListDTO.outOrLocal}
+        </if>
+    </select>
+
+    <resultMap id="selectMap" type="com.panzhihua.common.model.vos.community.VillageVO">
+        <result property="value" column="villageId"/>
+        <result property="label" column="villageName"/>
+        <collection property="children" ofType="com.panzhihua.common.model.vos.community.BuildingVO"
+                    column="{village_id = village_id}"
+                    javaType="java.util.ArrayList">
+            <result property="value" column="id"/>
+            <result property="label" column="name"/>
+        </collection>
+    </resultMap>
+
+    <select id="getSecondHouseAddress" resultMap="selectMap">
+        select t.village_id as villageId,concat(t.alley,t.house_num,'号') as villageName,t1.id,concat(t1.unit_no,'栋',t1.floor,'单元',t1.code,'号') as name  from com_mng_village t left join com_mng_population_house t1 on t.village_id = t1.village_id where t.community_id = ${communityId}
+    </select>
+
+    <select id="getSecondHouse" resultMap="selectMap">
+        select t.village_id as villageId,concat(t.alley,t.house_num,'号') as villageName,t1.id,concat(t1.unit_no,'栋') as name  from com_mng_village t left join com_mng_population_house t1  on t.village_id = t1.village_id where t.community_id = ${communityId} GROUP BY t.village_id,t1.unit_no
+    </select>
+
+    <select id="selectListIds" resultType="com.panzhihua.service_community.model.dos.ComMngPopulationDO">
+        SELECT id,card_no FROM com_mng_population
+    </select>
+<!--    SELECT id,card_no FROM com_mng_population  LIMIT 100-->
+
+
+    <delete id="deletePopulaitonRelation">
+        delete from com_mng_population_community_tags where population_id in
+        <foreach item="item" collection="ids" separator="," open="(" close=")" index="">
+            #{item}
+        </foreach>
+    </delete>
+
+    <select id="pagePopulation" resultType="com.panzhihua.common.model.vos.community.ComMngPopulationVO">
+        SELECT   cmp.`name`,   cmp.id,   cmp.street_id,   cmp.act_id,
+        cmp.village_id,   cmp.sex,   cmp.card_no,   cmp.road,   cmp.door_no,   cmp.floor,
+        cmp.unit_no,   cmp.house_no,   cmp.political_outlook,   cmp.work_company,
+        cmp.special_situation,   cmp.phone,   cmp.remark,   cmp.native_place,   cmp.nation,
+        cmpct.label,    cmp.marriage,    cmp.culture_level,    cmp.profession,    cmp.out_or_local,
+        cmp.census_register,    cmp.healthy,    cmp.birthday,    cmp.update_at,    cmp.address,
+        cmp.is_rent, cmp.person_type FROM com_mng_population_community_tags as cmpct
+        INNER JOIN com_mng_population AS cmp ON cmp.id = cmpct.population_id
+        <where>
+            <if test='comMngPopulationVO.name != null and comMngPopulationVO.name != &quot;&quot;'>
+                AND cmp.`name` LIKE concat(#{comMngPopulationVO.name},'%')    </if>
+            <if test='comMngPopulationVO.label != null and comMngPopulationVO.label != &quot;&quot;'>
+                AND cmpct.label LIKE concat('%',#{comMngPopulationVO.label},'%')    </if>
+            <if test='comMngPopulationVO.actId != null'>   and cmpct.community_id = ${comMngPopulationVO.actId}
+            </if>   <if test='comMngPopulationVO.outOrLocal != null'>
+            and cmp.out_or_local = #{comMngPopulationVO.outOrLocal}    </if>
+            <if test='comMngPopulationVO.villageId != null and comMngPopulationVO.villageId != &quot;&quot;'>
+                and cmp.village_id = #{comMngPopulationVO.villageId}    </if>
+            <if test='comMngPopulationVO.road != null and comMngPopulationVO.road != &quot;&quot;'>
+                AND cmp.road = #{comMngPopulationVO.road}    </if>
+            <if test='comMngPopulationVO.doorNo != null and comMngPopulationVO.doorNo != &quot;&quot;'>
+                AND cmp.door_no = #{comMngPopulationVO.doorNo}    </if>
+            <if test='comMngPopulationVO.floor != null and comMngPopulationVO.floor != &quot;&quot;'>
+                AND cmp.floor = #{comMngPopulationVO.floor}    </if>
+            <if test='comMngPopulationVO.isDeath != null'>
+                AND cmp.death = #{comMngPopulationVO.isDeath}    </if>
+            <if test='comMngPopulationVO.unitNo != null and comMngPopulationVO.unitNo != &quot;&quot;'>
+                AND cmp.unit_no = #{comMngPopulationVO.unitNo}    </if>
+            <if test='comMngPopulationVO.houseNo != null and comMngPopulationVO.houseNo != &quot;&quot;'>
+                AND cmp.house_no = #{comMngPopulationVO.houseNo}    </if>
+            <if test='comMngPopulationVO.sex != null and comMngPopulationVO.sex != &quot;&quot;'>
+                AND cmp.sex = #{comMngPopulationVO.sex}    </if>
+            <if test='comMngPopulationVO.ageStartTime != null and comMngPopulationVO.ageStartTime != &quot;&quot; and comMngPopulationVO.ageEndTime == null'>
+                AND date_format(cmp.birthday,'%Y-%m-%d') <![CDATA[ <= ]]> #{comMngPopulationVO.ageStartTime}    </if>
+            <if test='comMngPopulationVO.ageEndTime != null and comMngPopulationVO.ageEndTime != &quot;&quot; and comMngPopulationVO.ageStartTime == null'>
+                AND date_format(cmp.birthday,'%Y-%m-%d') <![CDATA[ >= ]]> #{comMngPopulationVO.ageEndTime}    </if>
+            <if test='comMngPopulationVO.ageStartTime != null and comMngPopulationVO.ageEndTime != null and comMngPopulationVO.ageStartTime == comMngPopulationVO.ageEndTime'>
+                AND cmp.birthday BETWEEN #{comMngPopulationVO.ageStartTimeEnd} and #{comMngPopulationVO.ageEndTime}
+            </if>
+            <if test='comMngPopulationVO.ageStartTime != null and comMngPopulationVO.ageEndTime != null and comMngPopulationVO.ageStartTime != comMngPopulationVO.ageEndTime'>
+                AND cmp.birthday BETWEEN #{comMngPopulationVO.ageEndTimeEnd} and #{comMngPopulationVO.ageStartTime}
+            </if>
+            <if test='comMngPopulationVO.nativePlace != null and comMngPopulationVO.nativePlace != &quot;&quot;'>
+                AND cmp.native_place LIKE concat(#{comMngPopulationVO.nativePlace},'%')    </if>
+            <if test='comMngPopulationVO.nation != null and comMngPopulationVO.nation != &quot;&quot;'>
+                AND cmp.nation = #{comMngPopulationVO.nation}    </if>
+            <if test='comMngPopulationVO.politicalOutlook != null and comMngPopulationVO.politicalOutlook != &quot;&quot;'>
+                AND cmp.political_outlook = #{comMngPopulationVO.politicalOutlook}    </if>
+            <if test='comMngPopulationVO.cardNo != null and comMngPopulationVO.cardNo != &quot;&quot;'>
+                AND cmp.card_no = #{comMngPopulationVO.cardNo}    </if>
+            <if test='comMngPopulationVO.remark != null and comMngPopulationVO.remark != &quot;&quot;'>
+                AND cmp.remark = #{comMngPopulationVO.remark}    </if>
+            <if test='comMngPopulationVO.keyWord != null and comMngPopulationVO.keyWord != &quot;&quot;'>
+                AND (cmp.`name` like concat (#{comMngPopulationVO.keyWord},'%') or
+                cmp.card_no_str = #{comMngPopulationVO.keyWord} or cmpct.label like concat ('%',#{comMngPopulationVO.keyWord},'%') or cmp.phone like concat ('%',#{comMngPopulationVO.keyWord},'%')
+                )
+            </if>
+            <if test="comMngPopulationVO.personType != null and comMngPopulationVO.personType != &quot;&quot;">
+                AND cmp.person_type = #{comMngPopulationVO.personType}
+            </if>
+        </where>
+        order by cmp.create_at desc
+    </select>
+
+    <select id="exportOld" resultType="com.panzhihua.common.model.vos.community.ComMngPopulationVO">
+        SELECT   cmp.`name`,   cmp.id,   cmp.street_id,   cmp.act_id,
+        cmp.village_id,   cmp.sex,   cmp.card_no,   cmp.road,   cmp.door_no,   cmp.floor,
+        cmp.unit_no,   cmp.house_no,   cmp.political_outlook,   cmp.work_company,
+        cmp.special_situation,   cmp.phone,   cmp.remark,   cmp.native_place,   cmp.nation,
+        cmpct.label,    cmp.marriage,    cmp.culture_level,    cmp.profession,    cmp.out_or_local,
+        cmp.census_register,    cmp.healthy,    cmp.birthday,    cmp.update_at,    cmp.address,
+        cmp.is_rent FROM com_mng_population_community_tags as cmpct
+        LEFT JOIN com_mng_population AS cmp ON cmp.id = cmpct.population_id
+        <where>
+            <if test='comMngPopulationVO.name != null and comMngPopulationVO.name != &quot;&quot;'>
+                AND cmp.`name` LIKE concat(#{comMngPopulationVO.name},'%')    </if>
+            <if test='comMngPopulationVO.label != null and comMngPopulationVO.label != &quot;&quot;'>
+                AND cmpct.label LIKE concat('%',#{comMngPopulationVO.label},'%')    </if>
+            <if test='comMngPopulationVO.actId != null'>   and cmpct.community_id = ${comMngPopulationVO.actId}
+            </if>   <if test='comMngPopulationVO.outOrLocal != null'>
+            and cmp.out_or_local = #{comMngPopulationVO.outOrLocal}    </if>
+            <if test='comMngPopulationVO.villageId != null and comMngPopulationVO.villageId != &quot;&quot;'>
+                and cmp.village_id = #{comMngPopulationVO.villageId}    </if>
+            <if test='comMngPopulationVO.road != null and comMngPopulationVO.road != &quot;&quot;'>
+                AND cmp.road = #{comMngPopulationVO.road}    </if>
+            <if test='comMngPopulationVO.doorNo != null and comMngPopulationVO.doorNo != &quot;&quot;'>
+                AND cmp.door_no = #{comMngPopulationVO.doorNo}    </if>
+            <if test='comMngPopulationVO.floor != null and comMngPopulationVO.floor != &quot;&quot;'>
+                AND cmp.floor = #{comMngPopulationVO.floor}    </if>
+            <if test='comMngPopulationVO.isDeath != null'>
+                AND cmp.death = #{comMngPopulationVO.isDeath}    </if>
+            <if test='comMngPopulationVO.unitNo != null and comMngPopulationVO.unitNo != &quot;&quot;'>
+                AND cmp.unit_no = #{comMngPopulationVO.unitNo}    </if>
+            <if test='comMngPopulationVO.houseNo != null and comMngPopulationVO.houseNo != &quot;&quot;'>
+                AND cmp.house_no = #{comMngPopulationVO.houseNo}    </if>
+            <if test='comMngPopulationVO.sex != null and comMngPopulationVO.sex != &quot;&quot;'>
+                AND cmp.sex = #{comMngPopulationVO.sex}    </if>
+            <if test='comMngPopulationVO.ageStartTime != null and comMngPopulationVO.ageStartTime != &quot;&quot; and comMngPopulationVO.ageEndTime == null'>
+                AND date_format(cmp.birthday,'%Y-%m-%d') <![CDATA[ <= ]]> #{comMngPopulationVO.ageStartTime}    </if>
+            <if test='comMngPopulationVO.ageEndTime != null and comMngPopulationVO.ageEndTime != &quot;&quot; and comMngPopulationVO.ageStartTime == null'>
+                AND date_format(cmp.birthday,'%Y-%m-%d') <![CDATA[ >= ]]> #{comMngPopulationVO.ageEndTime}    </if>
+            <if test='comMngPopulationVO.ageStartTime != null and comMngPopulationVO.ageEndTime != null and comMngPopulationVO.ageStartTime == comMngPopulationVO.ageEndTime'>
+                AND cmp.birthday BETWEEN #{comMngPopulationVO.ageStartTimeEnd} and #{comMngPopulationVO.ageEndTime}
+            </if>
+            <if test='comMngPopulationVO.ageStartTime != null and comMngPopulationVO.ageEndTime != null and comMngPopulationVO.ageStartTime != comMngPopulationVO.ageEndTime'>
+                AND cmp.birthday BETWEEN #{comMngPopulationVO.ageEndTimeEnd} and #{comMngPopulationVO.ageStartTime}
+            </if>
+            <if test='comMngPopulationVO.nativePlace != null and comMngPopulationVO.nativePlace != &quot;&quot;'>
+                AND cmp.native_place LIKE concat(#{comMngPopulationVO.nativePlace},'%')    </if>
+            <if test='comMngPopulationVO.nation != null and comMngPopulationVO.nation != &quot;&quot;'>
+                AND cmp.nation = #{comMngPopulationVO.nation}    </if>
+            <if test='comMngPopulationVO.politicalOutlook != null and comMngPopulationVO.politicalOutlook != &quot;&quot;'>
+                AND cmp.political_outlook = #{comMngPopulationVO.politicalOutlook}    </if>
+            <if test='comMngPopulationVO.cardNo != null and comMngPopulationVO.cardNo != &quot;&quot;'>
+                AND cmp.card_no = #{comMngPopulationVO.cardNo}    </if>
+            <if test='comMngPopulationVO.remark != null and comMngPopulationVO.remark != &quot;&quot;'>
+                AND cmp.remark = #{comMngPopulationVO.remark}    </if>
+            <if test='comMngPopulationVO.keyWord != null and comMngPopulationVO.keyWord != &quot;&quot;'>
+                AND (cmp.`name` like concat (#{comMngPopulationVO.keyWord},'%') or
+                cmp.card_no_str = #{comMngPopulationVO.keyWord} or cmpct.label like concat ('%',#{comMngPopulationVO.keyWord},'%') or cmp.phone like concat ('%',#{comMngPopulationVO.keyWord},'%')
+                )
+            </if>
+        </where>
+        order by cmp.create_at desc
+    </select>
+
+    <select id="specialInputUser" resultType="com.panzhihua.common.model.vos.user.InputUserInfoVO">
+        SELECT
+            cmp.id,
+            cmv.`name` AS areaName,
+            cmv.alley AS alley,
+            cmv.house_num AS houseNum,
+            cmp.`name`,
+            cmp.phone,
+            cmpct.label AS tags,
+            cmp.create_at
+        FROM
+            com_mng_population_community_tags as cmpct
+            LEFT JOIN com_mng_population AS cmp ON cmp.id = cmpct.population_id
+            LEFT JOIN com_mng_village AS cmv ON cmv.village_id = cmp.village_id
+        WHERE
+            cmpct.community_id = ${pageInputUserDTO.communityId}
+            AND (cmpct.label like '%吸毒%' or cmpct.label like '%矫正%' or cmpct.label like '%重精%' or cmpct.label like '%刑满%'
+            or cmpct.label like '%上访%'   or cmpct.label like '%退役%' or cmpct.label like '%残疾%' or cmpct.label like '%低保%')
+        <if test='pageInputUserDTO.name != null and pageInputUserDTO.name != &quot;&quot;'>
+                AND cmp.`name` LIKE concat(#{pageInputUserDTO.name},'%')
+            </if>
+            <if test='pageInputUserDTO.areaName != null and pageInputUserDTO.areaName != &quot;&quot;'>
+                AND cmv.`name` LIKE concat(#{pageInputUserDTO.areaName},'%')
+            </if>
+            <if test='pageInputUserDTO.tags != null and pageInputUserDTO.tags != &quot;&quot;'>
+                AND cmpct.label like concat('%',#{pageInputUserDTO.tags},'%')
+            </if>
+        ORDER BY
+            cmp.create_at DESC
+    </select>
+
+    <select id="specialInputUserExport" resultType="com.panzhihua.common.model.vos.user.InputUserInfoVO">
+        SELECT
+        cmp.id,
+        cmv.`name` AS areaName,
+        cmv.alley AS alley,
+        cmv.house_num AS houseNum,
+        cmp.`name`,
+        cmp.phone,
+        cmpct.label AS tags,
+        cmp.create_at
+        FROM
+        com_mng_population_community_tags as cmpct
+        LEFT JOIN com_mng_population AS cmp ON cmp.id = cmpct.population_id
+        LEFT JOIN com_mng_village AS cmv ON cmv.village_id = cmp.village_id
+        WHERE
+        cmpct.community_id = ${pageInputUserDTO.communityId}
+        AND (cmpct.label like '%吸毒%' or cmpct.label like '%矫正%' or cmpct.label like '%重精%' or cmpct.label like '%刑满%'
+        or cmpct.label like '%上访%'   or cmpct.label like '%退役%' or cmpct.label like '%残疾%' or cmpct.label like '%低保%')
+        <if test='pageInputUserDTO.name != null and pageInputUserDTO.name != &quot;&quot;'>
+            AND cmp.`name` LIKE concat(#{pageInputUserDTO.name},'%')
+        </if>
+        <if test='pageInputUserDTO.areaName != null and pageInputUserDTO.areaName != &quot;&quot;'>
+            AND cmv.`alley` LIKE concat(#{pageInputUserDTO.areaName},'%')
+        </if>
+        <if test='pageInputUserDTO.tags != null and pageInputUserDTO.tags != &quot;&quot;'>
+            AND cmpct.label like concat('%',#{pageInputUserDTO.tags},'%')
+        </if>
+        ORDER BY
+        cmp.create_at DESC
+    </select>
+
+    <select id="query" resultType="com.panzhihua.common.model.vos.community.ComMngPopulationNoSecretVO">
+        select * from com_mng_population
+        <where>
+            1=1
+            <if test="commonPage.name !=null and commonPage.name.trim() !=''">
+                and name like concat('%',#{commonPage.name},'%')
+            </if>
+            <if test="commonPage.paramId !=null and commonPage.paramId !=''">
+                and act_id = #{commonPage.paramId}
+            </if>
+        </where>
+    </select>
+
+    <resultMap id="selectMap2" type="com.panzhihua.common.model.vos.community.ComMngPopulationDetailVO">
+        <id column="id" property="id" />
+        <result column="street_id" property="streetId" />
+        <result column="act_id" property="actId" />
+        <result column="village_id" property="villageId" />
+        <result column="name" property="name" />
+        <result column="sex" property="sex" />
+        <result column="card_no" property="cardNo" />
+        <result column="card_no_str" property="cardNoStr" />
+        <result column="road" property="road" />
+        <result column="door_no" property="doorNo" />
+        <result column="floor" property="floor" />
+        <result column="unit_no" property="unitNo" />
+        <result column="phone" property="phone"/>
+        <result column="house_no" property="houseNo" />
+        <result column="political_outlook" property="politicalOutlook" />
+        <result column="work_company" property="workCompany" />
+        <result column="special_situation" property="specialSituation" />
+        <result column="remark" property="remark" />
+        <result column="create_at" property="createAt" />
+        <result column="update_at" property="updateAt" />
+        <result column="address" property="address" />
+        <collection property="houseList" column="{id = id}" ofType="com.panzhihua.common.model.vos.user.ComMngHouseVo"  javaType="java.util.ArrayList">
+            <result column="house_address" property="address"/>
+            <result column="house_house_id" property="houseId" />
+            <result column="house_residence" property="residence" />
+            <result column="popul_id" property="populId"/>
+            <result column="status" property="status"/>
+            <result column="s_relation" property="relation"/>
+            <result column="s_srelation_id" property="relationId"/>
+        </collection>
+    </resultMap>
+
+    <select id="getById" resultMap="selectMap2">
+         select t.*,t2.address as house_address,t2.house_id as house_house_id ,t2.residence as  house_residence ,t2.status,t2.relation as s_relation,t2.relation_id as s_relation_id,t2.popul_id from com_mng_population t left join ( select t.address,t1.house_id,t1.popul_id,t1.relation,t1.relation_id,t.status,t1.residence from com_mng_population_house t left join com_mng_population_house_user t1 on t.id = t1.house_id) t2 on t.id = t2.popul_id where t.id =#{id}
+    </select>
+
+    <select id="getPopulationDetailApp" resultType="com.panzhihua.common.model.vos.grid.PopulationDetailVO">
+        SELECT
+            cmp.id,
+            cmp.`name`,
+            cmp.phone,
+            cmp.card_no,
+            cmp.address,
+            cmp.culture_level,
+            cmp.nation,
+            cmp.political_outlook,
+            cmp.sex,
+            cmp.birthday,
+            cmp.native_place,
+            cmp.healthy,
+            cmp.is_rent,
+            cmv.alley AS road,
+            cmv.house_num AS doorNo,
+            cmp.floor,
+            cmp.unit_no,
+            cmp.house_no,
+            cmp.work_company,
+            cmp.census_register,
+            cmp.out_or_local,
+            cmp.remark,
+            cmp.marriage
+        FROM
+            com_mng_population AS cmp
+            LEFT JOIN com_mng_village AS cmv ON cmv.village_id = cmp.village_id
+        WHERE
+            cmp.id = #{populationId}
+    </select>
+
+    <select id="getCommunityTagList" resultType="com.panzhihua.common.model.vos.community.ComMngPopulationCommunityTagsVo">
+        SELECT
+            cmpct.population_id,
+            cmpct.community_id,
+            cmpct.label,
+            ca.`name` AS communityName
+        FROM
+            com_mng_population_community_tags AS cmpct
+            LEFT JOIN com_act AS ca ON ca.community_id = cmpct.community_id
+        WHERE
+            cmpct.population_id = #{populationId}
+    </select>
+
+    <select id="getGridPopulationAdminList" resultType="com.panzhihua.common.model.vos.grid.admin.ComMngPopulationListVO">
+        SELECT  cmp.id,   cmp.`name` AS userName,
+        cmpct.label,   cmp.card_no,   cmp.card_no_str,   cmp.sex,   cmp.address,
+        cmp.political_outlook,   cmp.census_register,   cmp.house_id,   cmp.phone,
+        IFNULL(cmp.house_id,0) as isHouse,
+        ( SELECT event_status FROM event_visiting_tasks WHERE event_status in (1,2,3,5) AND visiter_id = cmp.id ORDER BY create_at DESC LIMIT 1 ) AS eventStatus,
+        ( SELECT create_at FROM event_visiting_tasks WHERE event_status in (1,2,3,5) AND visiter_id = cmp.id ORDER BY create_at DESC LIMIT 1 ) AS createAt
+        FROM
+        com_mng_population AS cmp left join com_mng_population_community_tags as cmpct on cmp.id = cmpct.population_id where 1=1
+        <if test='populationListDTO.keyWord != null and populationListDTO.keyWord != &quot;&quot;'>
+            AND (cmp.name like concat (#{populationListDTO.keyWord},'%') or cmp.card_no = #{populationListDTO.cardNo} or cmp.address like concat (#{populationListDTO.keyWord},'%'))
+        </if>  <if test='populationListDTO.label != null and populationListDTO.label != &quot;&quot;'>
+        AND cmpct.label like concat ('%',#{populationListDTO.label},'%')  </if>
+        <if test='populationListDTO.sex != null'> AND cmp.sex = #{populationListDTO.sex}  </if>
+        <if test='populationListDTO.isHouse != null and populationListDTO.isHouse == 1'>
+            AND cmp.house_id is not null  </if>
+        <if test='populationListDTO.isHouse != null and populationListDTO.isHouse == 2'>
+            AND cmp.house_id is null  </if>  <if test='populationListDTO.communityId != null'>
+        AND cmpct.community_id = ${populationListDTO.communityId}  </if>
+        <if test='populationListDTO.politicalOutlook != null'>
+            AND cmp.political_outlook = #{populationListDTO.politicalOutlook}  </if>
+    </select>
+
+    <select id="getEventScreenLeftDown" resultType="com.panzhihua.common.model.vos.community.screen.event.EventLeftDownStatisticsVO">
+        SELECT    count( e.id ) AS eventZATotal,    IFNULL((     SELECT
+        count( e1.id )      FROM      `event` AS e1
+        LEFT JOIN event_grid_data AS egd1 ON egd1.id = e1.grid_id      WHERE
+        egd1.grid_community_id = ${screenEventDTO.communityId}       AND event_category = 1
+        AND event_type = 1       AND event_deal_status = 4
+        <if test='screenEventDTO.startTime != null and screenEventDTO.startTime != &quot;&quot;'>
+            AND e1.create_at <![CDATA[>=]]> #{screenEventDTO.startTime}    </if>
+        <if test='screenEventDTO.endTime != null and screenEventDTO.endTime != &quot;&quot;'>
+            AND e1.create_at <![CDATA[<=]]> #{screenEventDTO.endTime}    </if>      ),     0
+        ) AS yesEventZATotal,    IFNULL((     SELECT      count( e2.id )      FROM
+        `event` AS e2      LEFT JOIN event_grid_data AS egd2 ON egd2.id = e2.grid_id      WHERE
+        egd2.grid_community_id = ${screenEventDTO.communityId}       AND event_category = 1
+        AND event_type = 5       AND event_status = 2
+        <if test='screenEventDTO.startTime != null and screenEventDTO.startTime != &quot;&quot;'>
+            AND e2.create_at <![CDATA[>=]]> #{screenEventDTO.startTime}    </if>
+        <if test='screenEventDTO.endTime != null and screenEventDTO.endTime != &quot;&quot;'>
+            AND e2.create_at <![CDATA[<=]]> #{screenEventDTO.endTime}    </if>      ),     0
+        ) AS eventTFTotal,    IFNULL((     SELECT      count( e3.id )      FROM      `event` AS e3
+        LEFT JOIN event_grid_data AS egd3 ON egd3.id = e3.grid_id      WHERE
+        egd3.grid_community_id = ${screenEventDTO.communityId}       AND event_category = 1
+        AND event_type = 5       AND event_deal_status = 4
+        <if test='screenEventDTO.startTime != null and screenEventDTO.startTime != &quot;&quot;'>
+            AND e3.create_at <![CDATA[>=]]> #{screenEventDTO.startTime}    </if>
+        <if test='screenEventDTO.endTime != null and screenEventDTO.endTime != &quot;&quot;'>
+            AND e3.create_at <![CDATA[<=]]> #{screenEventDTO.endTime}    </if>      ),     0
+        ) AS yesEventTFTotal,    IFNULL((     SELECT      count( e4.id )      FROM
+        `event` AS e4      LEFT JOIN event_grid_data AS egd4 ON egd4.id = e4.grid_id      WHERE
+        egd4.grid_community_id = ${screenEventDTO.communityId}       AND event_category = 1
+        AND event_type = 6       AND event_status = 2
+        <if test='screenEventDTO.startTime != null and screenEventDTO.startTime != &quot;&quot;'>
+            AND e4.create_at <![CDATA[>=]]> #{screenEventDTO.startTime}    </if>
+        <if test='screenEventDTO.endTime != null and screenEventDTO.endTime != &quot;&quot;'>
+            AND e4.create_at <![CDATA[<=]]> #{screenEventDTO.endTime}    </if>      ),     0
+        ) AS eventTSTotal,    IFNULL((     SELECT      count( e5.id )      FROM      `event` AS e5
+        LEFT JOIN event_grid_data AS egd5 ON egd5.id = e5.grid_id      WHERE
+        egd5.grid_community_id = ${screenEventDTO.communityId}       AND event_category = 1
+        AND event_type = 6       AND event_deal_status = 4
+        <if test='screenEventDTO.startTime != null and screenEventDTO.startTime != &quot;&quot;'>
+            AND e5.create_at <![CDATA[>=]]> #{screenEventDTO.startTime}    </if>
+        <if test='screenEventDTO.endTime != null and screenEventDTO.endTime != &quot;&quot;'>
+            AND e5.create_at <![CDATA[<=]]> #{screenEventDTO.endTime}    </if>      ),     0
+        ) AS yesEventTSTotal,    IFNULL((     SELECT      count( e6.id )      FROM
+        `event` AS e6      LEFT JOIN event_grid_data AS egd6 ON egd6.id = e6.grid_id      WHERE
+        egd6.grid_community_id = ${screenEventDTO.communityId}       AND event_category = 1
+        AND event_type = 3       AND event_status = 2
+        <if test='screenEventDTO.startTime != null and screenEventDTO.startTime != &quot;&quot;'>
+            AND e6.create_at <![CDATA[>=]]> #{screenEventDTO.startTime}    </if>
+        <if test='screenEventDTO.endTime != null and screenEventDTO.endTime != &quot;&quot;'>
+            AND e6.create_at <![CDATA[<=]]> #{screenEventDTO.endTime}    </if>      ),     0
+        ) AS eventMDTotal,    IFNULL((     SELECT      count( e7.id )      FROM      `event` AS e7
+        LEFT JOIN event_grid_data AS egd7 ON egd7.id = e7.grid_id      WHERE
+        egd7.grid_community_id = ${screenEventDTO.communityId}       AND event_category = 1
+        AND event_type = 3       AND event_deal_status = 4
+        <if test='screenEventDTO.startTime != null and screenEventDTO.startTime != &quot;&quot;'>
+            AND e7.create_at <![CDATA[>=]]> #{screenEventDTO.startTime}    </if>
+        <if test='screenEventDTO.endTime != null and screenEventDTO.endTime != &quot;&quot;'>
+            AND e7.create_at <![CDATA[<=]]> #{screenEventDTO.endTime}    </if>      ),     0
+        ) AS yesEventMDTotal,    IFNULL((     SELECT      count( e8.id )      FROM
+        `event` AS e8      LEFT JOIN event_grid_data AS egd8 ON egd8.id = e8.grid_id      WHERE
+        egd8.grid_community_id = ${screenEventDTO.communityId}       AND event_category = 1
+        AND event_type = 4       AND event_status = 2
+        <if test='screenEventDTO.startTime != null and screenEventDTO.startTime != &quot;&quot;'>
+            AND e8.create_at <![CDATA[>=]]> #{screenEventDTO.startTime}    </if>
+        <if test='screenEventDTO.endTime != null and screenEventDTO.endTime != &quot;&quot;'>
+            AND e8.create_at <![CDATA[<=]]> #{screenEventDTO.endTime}    </if>      ),     0
+        ) AS eventBWDTotal,    IFNULL((     SELECT      count( e9.id )      FROM      `event` AS e9
+        LEFT JOIN event_grid_data AS egd9 ON egd9.id = e9.grid_id      WHERE
+        egd9.grid_community_id = ${screenEventDTO.communityId}       AND event_category = 1
+        AND event_type = 4       AND event_deal_status = 4
+        <if test='screenEventDTO.startTime != null and screenEventDTO.startTime != &quot;&quot;'>
+            AND e9.create_at <![CDATA[>=]]> #{screenEventDTO.startTime}    </if>
+        <if test='screenEventDTO.endTime != null and screenEventDTO.endTime != &quot;&quot;'>
+            AND e9.create_at <![CDATA[<=]]> #{screenEventDTO.endTime}    </if>      ),     0
+        ) AS yesEventBWDTotal,    IFNULL((     SELECT      count( e10.id )      FROM
+        `event` AS e10      LEFT JOIN event_grid_data AS egd10 ON egd10.id = e10.grid_id      WHERE
+        egd10.grid_community_id = ${screenEventDTO.communityId}       AND event_category = 1
+        AND event_type = 2       AND event_status = 2
+        <if test='screenEventDTO.startTime != null and screenEventDTO.startTime != &quot;&quot;'>
+            AND e10.create_at <![CDATA[>=]]> #{screenEventDTO.startTime}    </if>
+        <if test='screenEventDTO.endTime != null and screenEventDTO.endTime != &quot;&quot;'>
+            AND e10.create_at <![CDATA[<=]]> #{screenEventDTO.endTime}    </if>      ),     0
+        ) AS eventGGTotal,    IFNULL((     SELECT      count( e11.id )      FROM
+        `event` AS e11      LEFT JOIN event_grid_data AS egd11 ON egd11.id = e11.grid_id      WHERE
+        egd11.grid_community_id = ${screenEventDTO.communityId}       AND event_category = 1
+        AND event_type = 2       AND event_deal_status = 4
+        <if test='screenEventDTO.startTime != null and screenEventDTO.startTime != &quot;&quot;'>
+            AND e11.create_at <![CDATA[>=]]> #{screenEventDTO.startTime}    </if>
+        <if test='screenEventDTO.endTime != null and screenEventDTO.endTime != &quot;&quot;'>
+            AND e11.create_at <![CDATA[<=]]> #{screenEventDTO.endTime}    </if>      ),     0
+        ) AS yesEventGGTotal,
+        IFNULL(( SELECT count( id ) FROM com_act_easy_photo WHERE del_tag = 0  AND community_id = ${screenEventDTO.communityId}
+        <if test='screenEventDTO.startTime != null and screenEventDTO.startTime != &quot;&quot;'>
+            AND create_at <![CDATA[>=]]> #{screenEventDTO.startTime}    </if>
+        <if test='screenEventDTO.endTime != null and screenEventDTO.endTime != &quot;&quot;'>
+            AND create_at <![CDATA[<=]]> #{screenEventDTO.endTime}    </if>   ), 0 ) AS eventSSPTotal,
+        IFNULL(( SELECT count( id ) FROM com_act_easy_photo WHERE del_tag = 0 AND `status` = 4 AND community_id = ${screenEventDTO.communityId}
+        <if test='screenEventDTO.startTime != null and screenEventDTO.startTime != &quot;&quot;'>
+            AND create_at <![CDATA[>=]]> #{screenEventDTO.startTime}    </if>
+        <if test='screenEventDTO.endTime != null and screenEventDTO.endTime != &quot;&quot;'>
+            AND create_at <![CDATA[<=]]> #{screenEventDTO.endTime}    </if>   ), 0 ) AS yesEventSSPTotal
+        FROM    `event` AS e    LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id    WHERE
+        egd.grid_community_id = ${screenEventDTO.communityId}     AND event_status = 2 AND event_category = 1
+        AND event_type = 1
+        <if test='screenEventDTO.startTime != null and screenEventDTO.startTime != &quot;&quot;'>
+            AND e.create_at <![CDATA[>=]]> #{screenEventDTO.startTime}    </if>
+        <if test='screenEventDTO.endTime != null and screenEventDTO.endTime != &quot;&quot;'>
+        AND e.create_at <![CDATA[<=]]> #{screenEventDTO.endTime}
+        </if>
+    </select>
+
+    <update id="updatePopulationUnit">
+        update com_mng_population set unit_no = #{newUnitNo} where village_id = #{villageId} and floor = #{floor} and unit_no = #{oldUnitNo}
+    </update>
+
+    <select id="selectCountByVillageId" resultType="Integer">
+        select count(*) from com_mng_population t LEFT JOIN com_mng_population_community_tags t1 on t.id= t1.population_id
+        where t.village_id=#{villageId} and t1.label like concat('%',#{label},'%')
+    </select>
+
+    <select id="getCivilParty" resultType="com.panzhihua.common.model.vos.community.screen.civil.CivilPartyStatisticsVO">
+        SELECT
+            count( id ) as committeeNum,
+            (select count(id) from com_pb_dyn where community_id = ${communityId} and `type` = 1) as dynNum,
+            (select count(id) from com_pb_activity where community_id = ${communityId}) as activityNum,
+            (select count(id) from com_act_micro_wish where community_id = ${communityId}) as wishNum,
+            (select count(id) from com_pb_member where community_id = ${communityId} and audit_result = 1) as partyNum,
+            (select count(id) from com_pb_org where community_id = ${communityId} and parent_id = 0) as organizationNum,
+            (select count(id) from com_mng_volunteer_mng where community_id = ${communityId} and state = 2) as volunteerNum,
+            (select count(id) from com_act_questnaire where community_id = ${communityId}) as questionnaireNum
+        FROM
+            com_pb_member_role
+        WHERE
+            community_id = ${communityId}
+    </select>
+
+    <select id="getCivilGovernment" resultType="com.panzhihua.common.model.vos.community.screen.civil.CivilGovernmentStatisticsVO">
+        SELECT
+            count( id ) as noticeNum,
+            (select count(id) from com_act_discuss where community_id = ${communityId} and is_del = 2) as discussNum,
+            (select count(id) from com_act_easy_photo where community_id = ${communityId} and del_tag = 0) as easyNum,
+            (select count(id) from com_act_neighbor_circle where community_id = ${communityId} and is_del = 2) as neighborNum,
+            (select count(id) from com_act_activity where community_id = ${communityId}) as activityNum,
+            (select count(id) from com_act_dyn where community_id = ${communityId}) as dynNum,
+            (select count(id) from com_act_warehouse_donates where community_id = ${communityId}) as loveNum,
+            (select count(id) from com_act_message where community_id = ${communityId}) as messageNum
+        FROM
+            com_act_announcement
+        WHERE
+            community_id = ${communityId}
+    </select>
+
+    <select id="getCivilGrid" resultType="com.panzhihua.common.model.vos.community.screen.civil.CivilGridStatisticsVO">
+        SELECT
+            count( e.id ) AS tfTodayNum,
+            (
+            SELECT
+                count( e1.id )
+            FROM
+                `event` AS e1
+                LEFT JOIN event_grid_data AS egd1 ON egd1.id = e1.grid_id
+            WHERE
+                egd1.grid_community_id = ${communityId}
+                AND e1.event_status = 2
+                AND e1.event_type = 1
+                AND e1.event_category = 1
+                AND e1.create_at BETWEEN DATE_FORMAT( NOW(), '%Y-%m-%d 00:00:00' )
+            AND DATE_FORMAT( NOW(), '%Y-%m-%d 23:59:59' )) AS zaTodayNum,
+            (
+            SELECT
+                count( e2.id )
+            FROM
+                `event` AS e2
+                LEFT JOIN event_grid_data AS egd2 ON egd2.id = e2.grid_id
+            WHERE
+                egd2.grid_community_id = ${communityId}
+                AND e2.event_status = 2
+                AND e2.event_type = 2
+                AND e2.event_category = 1
+                AND e2.create_at BETWEEN DATE_FORMAT( NOW(), '%Y-%m-%d 00:00:00' )
+            AND DATE_FORMAT( NOW(), '%Y-%m-%d 23:59:59' )) AS msTodayNum,
+            (
+            SELECT
+                count( e3.id )
+            FROM
+                `event` AS e3
+                LEFT JOIN event_grid_data AS egd3 ON egd3.id = e3.grid_id
+            WHERE
+                egd3.grid_community_id = ${communityId}
+                AND e3.event_status = 2
+                AND e3.event_type = 3
+                AND e3.event_category = 1
+                AND e3.create_at BETWEEN DATE_FORMAT( NOW(), '%Y-%m-%d 00:00:00' )
+            AND DATE_FORMAT( NOW(), '%Y-%m-%d 23:59:59' )) AS mdTodayNum,
+            (
+            SELECT
+                count( e4.id )
+            FROM
+                `event` AS e4
+                LEFT JOIN event_grid_data AS egd4 ON egd4.id = e4.grid_id
+            WHERE
+                egd4.grid_community_id = ${communityId}
+                AND e4.event_status = 2
+                AND e4.event_type = 6
+                AND e4.event_category = 1
+                AND e4.create_at BETWEEN DATE_FORMAT( NOW(), '%Y-%m-%d 00:00:00' )
+            AND DATE_FORMAT( NOW(), '%Y-%m-%d 23:59:59' )) AS tsTodayNum,
+            (
+            SELECT
+                count( e5.id )
+            FROM
+                `event` AS e5
+                LEFT JOIN event_grid_data AS egd5 ON egd5.id = e5.grid_id
+            WHERE
+                egd5.grid_community_id = ${communityId}
+                AND e5.event_status = 2
+            ) AS eventNum,
+            (
+            SELECT
+                count( user_id )
+            FROM
+                sys_user AS su
+                INNER JOIN event_grid_member_relation egmr ON egmr.grid_member_id = su.user_id
+            WHERE
+                egmr.grid_community_id = ${communityId}
+            ) AS xcNum,
+            ( SELECT count( id ) FROM com_sw_patrol_record WHERE community_id = ${communityId} ) AS securityNum
+        FROM
+            `event` AS e
+            LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+        WHERE
+            egd.grid_community_id = ${communityId}
+            AND e.event_status = 2
+            AND e.event_type = 5
+            AND e.event_category = 1
+            AND e.create_at BETWEEN DATE_FORMAT( NOW(), '%Y-%m-%d 00:00:00' )
+            AND DATE_FORMAT(
+            NOW(),
+            '%Y-%m-%d 23:59:59')
+    </select>
+
+    <select id="getCivilConvenience" resultType="com.panzhihua.common.model.vos.community.screen.civil.CivilConvenienceStatisticsVO">
+        SELECT
+            count( id ) AS guideNum,
+            (
+            SELECT
+                count( carr.id )
+            FROM
+                com_act_reserve_record AS carr
+                LEFT JOIN com_act_reserve AS car ON car.id = carr.reserve_id
+            WHERE
+                car.title IN ( '返攀登记', '居家隔离', '11月24日之前居家隔离', '2021-11-4之前来攀登记' )
+                AND carr.community_id = ${communityId}
+            ) AS situationNum,
+            ( SELECT count( id ) FROM renting_hourse_register WHERE community_id = ${communityId} ) AS leaseNum,
+            (
+            SELECT
+                count( cpr.id )
+            FROM
+                com_property_repair AS cpr
+                LEFT JOIN com_property AS cp ON cp.id = cpr.property_id
+            WHERE
+                cp.community_id = ${communityId}
+            ) AS repairNum,
+            ( SELECT count( id ) FROM com_pension_auth_records WHERE community_id = ${communityId} ) AS pensionNum,
+            ( SELECT count( id ) FROM com_elder_auth_records WHERE community_id = ${communityId} ) AS eldersNum,
+            (
+            SELECT
+                count( cmpct.id )
+            FROM
+                com_mng_population_community_tags AS cmpct
+                INNER JOIN com_mng_population AS cmp ON cmp.id = cmpct.population_id
+            WHERE
+                cmpct.label LIKE '%低保户%'
+                AND cmpct.community_id = ${communityId}
+            ) AS subsistenceNum,
+            (
+            SELECT
+                count( cmpct.id )
+            FROM
+                com_mng_population_community_tags AS cmpct
+                INNER JOIN com_mng_population AS cmp ON cmp.id = cmpct.population_id
+            WHERE
+                cmpct.community_id = ${communityId}
+                AND cmp.death = 0
+                AND cmpct.label LIKE '%高龄老人%'
+            ) AS allowanceNum
+        FROM
+            com_act_work_guide
+    </select>
+
+
+    <select id="westScreenStatics" resultType="com.panzhihua.common.model.vos.community.bigscreen.WestScreenStatics">
+        select  ( SELECT    count(*) FROM    com_act_micro_wish AS camw  LEFT JOIN com_act t1 on camw.community_id = t1.community_id
+                  where t1.area_code ='510423'  and    camw.STATUS = 6 ) microWish ,
+                (select count(user_id) from sys_user t LEFT JOIN com_act t1 on t.community_id = t1.community_id
+                 where t.type=1 and t.community_id is not null and t1.area_code ='510423') user,
+                (select count(id) from com_pb_org t LEFT JOIN com_act t1 on t.community_id = t1.community_id where parent_id = 0 and t1.area_code ='510423') partyOrg,
+                (select count(id) from com_pb_member t LEFT JOIN com_act t1 on t.community_id = t1.community_id where audit_result = 1 and t1.area_code ='510423') partyMember,
+                (select count(id) from com_mng_volunteer_mng t LEFT JOIN com_act t1 on t.community_id = t1.community_id where  t.state = 2 and t1.area_code ='510423')  volunteer,
+                (select count(id) from com_sw_patrol_record t LEFT JOIN com_act t1 on t.community_id = t1.community_id where   t1.area_code ='510423') safety,
+                (select count(*) from com_act_reserve t LEFT JOIN com_act_reserve_record t1 on t.id = t1.reserve_id LEFT JOIN com_act t2 on t.community_id = t2.community_id       where (title like '%居家隔离%' or title like  '%返攀登记%' or title like  '%来攀登记%') and t2.area_code ='510423' and t1.status = 2  )  reserve,
+                (select (select count(*) from com_act_activity t LEFT JOIN com_act t1 on t.community_id = t1.community_id  where status !=6 and status !=1 and  t1.area_code ='510423')+(select count(id) from com_pb_activity t LEFT JOIN com_act t1 on t.community_id = t1.community_id  where status !=6 and status !=1 and  t1.area_code ='510423')) activity,
+                (select count(*) from com_act_easy_photo t LEFT JOIN com_act t1 on t.community_id = t1.community_id
+                where 	status in (1,2,4) and del_tag = 0 and t1.area_code ='510423') neighbor,
+				(select count(*) from com_act_discuss t LEFT JOIN com_act t1 on t.community_id = t1.community_id
+                where 	is_del =2  and t1.area_code ='510423') discuss
+        </select>
+
+    <select id="getBasicsList" resultType="com.panzhihua.common.model.vos.community.screen.event.EventPopulationBasicsStatisticsVO">
+        SELECT
+            ca.community_id,
+            ca.`name` AS communityName,
+            (
+            SELECT
+                count( cmpct.id )
+            FROM
+                com_mng_population_community_tags AS cmpct
+                LEFT JOIN com_mng_population AS cmp ON cmp.id = cmpct.population_id
+            WHERE
+                cmpct.community_id = ca.community_id
+            ) AS populationNum,
+            ( SELECT count( village_id ) FROM com_mng_village AS cmv WHERE cmv.community_id = ca.community_id ) AS villageNum,
+            (select count(id) from com_mng_population_house as cmph where cmph.community_id = ca.community_id) as houseNum
+        FROM
+            com_act AS ca
+            LEFT JOIN com_street AS cs ON cs.street_id = ca.street_id
+            <where>
+                1=1
+                and ca.area_code = '510423' and ca.is_screen_statistics = 1 and ca.community_id!=1552661950301868035 and ca.community_id!=11
+                <if test="streetId != null and streetId != 0">
+                    and cs.street_id = #{streetId}
+                </if>
+            </where>
+        order by cs.street_id desc,populationNum desc
+    </select>
+
+    <select id="getPopulationSpecial" resultType="com.panzhihua.common.model.vos.community.screen.event.EventPopulationSpecialStatisticsVO">
+        SELECT
+            count( cmpct.id ) AS cjTotal,
+            (
+            SELECT
+            count( cmpct1.id )
+        FROM
+            com_mng_population_community_tags AS cmpct1
+            LEFT JOIN com_act AS ca1 ON ca1.community_id = cmpct1.community_id
+            LEFT JOIN com_street AS cs1 ON cs1.street_id = ca1.street_id
+        WHERE
+             cmpct1.label LIKE '%低保户%' and ca1.area_code = '510423' and ca1.is_screen_statistics = 1
+            <if test="streetId != null and streetId != 0">
+                and cs1.street_id = #{streetId}
+            </if>
+            ) as dbTotal ,
+            (
+            SELECT
+            count( cmpct3.id )
+        FROM
+            com_mng_population_community_tags AS cmpct3
+            LEFT JOIN com_act AS ca3 ON ca3.community_id = cmpct3.community_id
+            LEFT JOIN com_street AS cs3 ON cs3.street_id = ca3.street_id
+        WHERE
+             cmpct3.label LIKE '%特殊情况(重大病史/孕)%' and ca3.area_code = '510423' and ca3.is_screen_statistics = 1
+        <if test="streetId != null and streetId != 0">
+            and cs3.street_id = #{streetId}
+        </if>
+            ) as tsTotal ,
+            (
+            SELECT
+            count( cmpct4.id )
+        FROM
+            com_mng_population_community_tags AS cmpct4
+            LEFT JOIN com_act AS ca4 ON ca4.community_id = cmpct4.community_id
+            LEFT JOIN com_street AS cs4 ON cs4.street_id = ca4.street_id
+        WHERE
+            cmpct4.label LIKE '%特扶家庭%' and ca4.area_code = '510423' and ca4.is_screen_statistics = 1
+        <if test="streetId != null and streetId != 0">
+            and cs4.street_id = #{streetId}
+        </if>
+            ) as tfTotal,
+            (
+            SELECT
+            count( cmpct5.id )
+        FROM
+            com_mng_population_community_tags AS cmpct5
+            LEFT JOIN com_act AS ca5 ON ca5.community_id = cmpct5.community_id
+            LEFT JOIN com_street AS cs5 ON cs5.street_id = ca5.street_id
+        WHERE
+            cmpct5.label LIKE '%退役军人%' and ca5.area_code = '510423' and ca5.is_screen_statistics = 1
+        <if test="streetId != null and streetId != 0">
+            and cs5.street_id = #{streetId}
+        </if>
+            ) as tyTotal,
+            (
+            SELECT
+            count( cmpct7.id )
+        FROM
+            com_mng_population_community_tags AS cmpct7
+            LEFT JOIN com_act AS ca7 ON ca7.community_id = cmpct7.community_id
+            LEFT JOIN com_street AS cs7 ON cs7.street_id = ca7.street_id
+        WHERE
+            cmpct7.label LIKE '%吸毒人员%' and ca7.area_code = '510423' and ca7.is_screen_statistics = 1
+        <if test="streetId != null and streetId != 0">
+            and cs7.street_id = #{streetId}
+        </if>
+            ) as xdTotal,
+            (
+            SELECT
+            count( cmpct8.id )
+        FROM
+            com_mng_population_community_tags AS cmpct8
+            LEFT JOIN com_act AS ca8 ON ca8.community_id = cmpct8.community_id
+            LEFT JOIN com_street AS cs8 ON cs8.street_id = ca8.street_id
+        WHERE
+            cmpct8.label LIKE '%社区矫正%' and ca8.area_code = '510423' and ca8.is_screen_statistics = 1
+        <if test="streetId != null and streetId != 0">
+            and cs8.street_id = #{streetId}
+        </if>
+            ) as jzTotal,
+            (
+            SELECT
+            count( cmpct9.id )
+        FROM
+            com_mng_population_community_tags AS cmpct9
+            LEFT JOIN com_act AS ca9 ON ca9.community_id = cmpct9.community_id
+            LEFT JOIN com_street AS cs9 ON cs9.street_id = ca9.street_id
+        WHERE
+            cmpct9.label LIKE '%邪教人员%' and ca9.area_code = '510423' and ca9.is_screen_statistics = 1
+        <if test="streetId != null and streetId != 0">
+            and cs9.street_id = #{streetId}
+        </if>
+            ) as xjTotal,
+            (
+            SELECT
+            count( cmpct10.id )
+        FROM
+            com_mng_population_community_tags AS cmpct10
+            LEFT JOIN com_act AS ca10 ON ca10.community_id = cmpct10.community_id
+            LEFT JOIN com_street AS cs10 ON cs10.street_id = ca10.street_id
+        WHERE
+            cmpct10.label LIKE '%刑满释放%' and ca10.area_code = '510423' and ca10.is_screen_statistics = 1
+        <if test="streetId != null and streetId != 0">
+            and cs10.street_id = #{streetId}
+        </if>
+            ) as xsTotal,
+            (
+            SELECT
+            count( cmpct11.id )
+        FROM
+            com_mng_population_community_tags AS cmpct11
+            LEFT JOIN com_act AS ca11 ON ca11.community_id = cmpct11.community_id
+            LEFT JOIN com_street AS cs11 ON cs11.street_id = ca11.street_id
+        WHERE
+            cmpct11.label LIKE '%上访人员%' and ca11.area_code = '510423' and ca11.is_screen_statistics = 1
+        <if test="streetId != null and streetId != 0">
+            and cs11.street_id = #{streetId}
+        </if>
+            ) as sfTotal,
+            (
+            SELECT
+            count( cmpct12.id )
+        FROM
+            com_mng_population_community_tags AS cmpct12
+            LEFT JOIN com_act AS ca12 ON ca12.community_id = cmpct12.community_id
+            LEFT JOIN com_street AS cs12 ON cs12.street_id = ca12.street_id
+        WHERE
+            cmpct12.label LIKE '%精神障碍患者%' and ca12.area_code = '510423' and ca12.is_screen_statistics = 1
+        <if test="streetId != null and streetId != 0">
+            and cs12.street_id = #{streetId}
+        </if>
+            ) as zjTotal
+        FROM
+            com_mng_population_community_tags AS cmpct
+            LEFT JOIN com_act AS ca ON ca.community_id = cmpct.community_id
+            LEFT JOIN com_street AS cs ON cs.street_id = ca.street_id
+        WHERE
+            cmpct.label LIKE '%残疾人%' and ca.area_code = '510423' and ca.is_screen_statistics = 1
+        <if test="streetId != null and streetId != 0">
+            and cs.street_id = #{streetId}
+        </if>
+    </select>
+
+    <select id="getPopulationListCardNo" resultType="string">
+        SELECT
+            cmp.card_no
+        FROM
+            com_mng_population_community_tags AS cmpct
+            LEFT JOIN com_mng_population AS cmp ON cmp.id = cmpct.population_id
+            LEFT JOIN com_act AS ca ON ca.community_id = cmpct.community_id
+            LEFT JOIN com_street AS cs ON cs.street_id = ca.street_id
+        <where>
+            and ca.area_code = '510423' and ca.is_screen_statistics = 1
+            <if test="streetId != null and streetId != 0">
+                and cs.street_id = #{streetId}
+            </if>
+        </where>
+    </select>
+
+    <select id="getPopulationAge" resultType="integer">
+        select count(age) from (
+            SELECT
+            YEAR (now()) - YEAR (substring(cmp.card_no_str, 7, 8)) age
+        FROM
+            com_mng_population_community_tags AS cmpct
+            LEFT JOIN com_mng_population AS cmp ON cmp.id = cmpct.population_id
+            LEFT JOIN com_act AS ca ON ca.community_id = cmpct.community_id
+            LEFT JOIN com_street AS cs ON cs.street_id = ca.street_id
+
+        <where>
+            and ca.area_code = '510423' and ca.is_screen_statistics = 1
+            <if test="streetId != null and streetId != 0">
+                and cs.street_id = #{streetId}
+            </if>
+        </where>
+            having age >= #{age}
+        ) as ageDual
+    </select>
+
+    <select id="getComprehensiveStreetList" resultType="com.panzhihua.common.model.vos.community.screen.event.EventPopulationStreetVO">
+        SELECT
+            street_id,
+            `name`
+        FROM
+            com_street
+        WHERE
+            area_code = '510423' and app_id = 'wx0cef797390444b75'
+        ORDER BY
+            create_at DESC
+    </select>
+
+    <select id="baseInfo" resultType="com.panzhihua.common.model.vos.community.bigscreen.BaseInfo">
+        select count(id) as population,
+            IFNULL((select count(id) from com_mng_population_house where community_id = ${communityId}),0) as house,
+            IFNULL((select count(id) from com_mng_real_company where community_id = ${communityId}),0) as company,
+            IFNULL((select count(DISTINCT `name`) from com_mng_village where community_id = ${communityId}),0) as village,
+            IFNULL((select count(user_id) from sys_user where community_id = ${communityId} and type=1),0) as user,
+            IFNULL((select count(id) from com_pb_member where community_id = ${communityId} and audit_result =1 ),0) as partyMember,
+            IFNULL((select count(id) from com_mng_volunteer_mng where community_id = ${communityId} and state=2 ),0) as volunteer,
+            IFNULL((select count(id) from com_pb_org where community_id = ${communityId} and parent_id = 0),0) as partyOrg,
+            IFNULL((select count(id) from com_act_dpc where community_id = ${communityId} AND is_del = 0),0) as dpcNum
+        from com_mng_population_community_tags AS cmpct
+        where cmpct.community_id = ${communityId}
+    </select>
+
+    <select id="indexDynamic" resultType="com.panzhihua.common.model.vos.community.bigscreen.IndexDynamic">
+
+        SELECT    count( id ) AS microWish,
+                  IFNULL(( SELECT count( id ) FROM com_act_activity WHERE community_id = ${communityId} AND volunteer_max = 0),0) AS residentActivity,
+                  IFNULL(( SELECT count( id ) FROM com_act_activity WHERE community_id = ${communityId} AND volunteer_max != 0),0) AS volunteerActivity,
+                  IFNULL(( SELECT count( id ) FROM com_act_easy_photo WHERE status in (1,2,4) and del_tag = 0 AND community_id = ${communityId} ),0) AS easyPhoto,
+                  IFNULL(( SELECT count( id ) FROM com_pb_activity WHERE community_id = ${communityId} ),0) AS partyActivity,
+                  IFNULL(( SELECT count( id ) FROM com_act_questnaire WHERE community_id = ${communityId} and is_hide=0 ),0) AS questionnaire,
+                  IFNULL(( SELECT count( id ) FROM com_act_dyn WHERE community_id = ${communityId} AND STATUS = 1 ),0) AS dynamic,
+                  IFNULL(( SELECT count( id ) FROM com_convenient_merchants WHERE ( community_id = ${communityId} OR community_id = 0) AND is_del = 0 ),0) AS convenient,
+                  IFNULL(( SELECT count( id ) FROM com_act_neighbor_circle WHERE community_id = ${communityId} AND is_del = 2 ),0) AS neighbor
+                    FROM    com_act_micro_wish AS camw    WHERE    camw.STATUS = 6
+                                                AND camw.community_id = ${communityId}
+    </select>
+    <select id="getGridsGovernanceEventList"
+            resultType="com.panzhihua.common.model.vos.community.screen.event.EventGridIncidentStatisticsVO">
+        SELECT event_type AS type, IFNULL( NULL, 1 ) AS eventType, e.id AS eventId, happent_lat_lng AS latLng, event_des AS content,
+        (SELECT url FROM event_resource WHERE ref_id = e.id AND classification = 1 AND `type` = 1 LIMIT 1) AS cover, e.create_at,
+        CASE
+        WHEN event_deal_status = 4 THEN 1
+        ELSE 2 END `status`
+        FROM `event` AS e
+        LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+        WHERE e.event_category = 1 AND e.event_type IN ( 1, 2, 3, 5, 6 )
+        AND e.event_status = 2 AND egd.grid_community_id = ${communityId} AND TO_DAYS(NOW()) - TO_DAYS(e.create_at) &lt;= 30
+        UNION ALL SELECT
+        CASE
+        WHEN classify_id = 4 THEN 1
+        WHEN classify_id = 6 THEN 2
+        WHEN classify_id = 5 THEN 3
+        WHEN classify_id = 7 THEN 5
+        WHEN classify_id = 3 THEN 6
+        WHEN classify_id = 8 THEN 9
+        WHEN classify_id = 1 THEN 10
+        END type, IFNULL( NULL, 2 ) AS eventType, id AS eventId, lng_lat AS latLng, detail AS content, substring_index(photo_path_list, ',', 1) AS cover, create_at,
+        CASE
+        WHEN `status` = 4 THEN 1
+        ELSE 2 END `status`
+        FROM com_act_easy_photo WHERE community_id = ${communityId} AND `status` IN (1,2,4)
+        AND del_tag = 0 AND classify_id IN (1,3,4,5,6,7,8) AND TO_DAYS(NOW()) - TO_DAYS(create_at) &lt;= 30
+    </select>
+    <select id="pageEventList"
+            resultType="com.panzhihua.common.model.vos.community.screen.event.EventGridIncidentStatisticsVO">
+        (SELECT event_type AS type, IFNULL( NULL, 1 ) AS eventType, e.id AS eventId, happent_lat_lng AS latLng,
+        event_des AS content,
+        (SELECT url FROM event_resource WHERE ref_id = e.id AND classification = 1 AND `type` = 1 LIMIT 1) AS cover,
+        e.create_at,
+        CASE
+        WHEN event_deal_status = 4 THEN 1
+        ELSE 2 END `status`
+        FROM `event` AS e
+        LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+        WHERE e.event_category = 1 AND e.event_type IN ( 1, 2, 3, 5, 6 )
+        AND e.event_status = 2 AND egd.grid_community_id = ${pageBaseDTO.communityId}
+        <if test="pageBaseDTO.param3 != null and pageBaseDTO.param3 == 1">
+            AND event_deal_status = 4
+        </if>
+        <if test="pageBaseDTO.param3 != null and pageBaseDTO.param3 == 2">
+            AND event_deal_status != 4
+        </if>
+        )
+        UNION ALL (SELECT
+        CASE
+        WHEN classify_id = 4 THEN 1
+        WHEN classify_id = 6 THEN 2
+        WHEN classify_id = 5 THEN 3
+        WHEN classify_id = 7 THEN 5
+        WHEN classify_id = 3 THEN 6
+        WHEN classify_id = 8 THEN 9
+        WHEN classify_id = 1 THEN 10
+        END type, IFNULL( NULL, 2 ) AS eventType, id AS eventId, lng_lat AS latLng, detail AS content, substring_index(photo_path_list, ',', 1) AS cover, create_at,
+        CASE
+        WHEN `status` = 4 THEN 1
+        ELSE 2 END `status`
+        FROM com_act_easy_photo WHERE community_id = ${pageBaseDTO.communityId} AND `status` IN (1,2,4)
+        AND del_tag = 0 AND classify_id IN (1,3,4,5,6,7,8)
+        <if test="pageBaseDTO.param3 != null and pageBaseDTO.param3 == 1">
+            AND `status` = 4
+        </if>
+        <if test="pageBaseDTO.param3 != null and pageBaseDTO.param3 == 2">
+            AND `status` != 4
+        </if>
+        ) ORDER BY create_at DESC
+    </select>
+    <select id="getEventScreenSSPDateilNew"
+            resultType="com.panzhihua.common.model.vos.community.screen.event.EventNewStatisticsVO">
+        SELECT  id,  su.nick_name AS userName,  su.image_url,  caep.create_at,  caep.detail AS eventDes,
+        caep.happen_addr AS happenAddress,  caep.lng_lat AS happentLatLng,  caep.photo_path_list,
+        CASE
+        WHEN classify_id = 4 THEN 1
+        WHEN classify_id = 6 THEN 2
+        WHEN classify_id = 5 THEN 3
+        WHEN classify_id = 7 THEN 5
+        WHEN classify_id = 3 THEN 6
+        WHEN classify_id = 8 THEN 9
+        WHEN classify_id = 1 THEN 10
+        END eventType,  caep.status AS eventDealStatus
+        FROM  com_act_easy_photo AS caep
+        LEFT JOIN sys_user AS su ON su.user_id = caep.sponsor_id
+        WHERE  id = #{eventId}
+    </select>
+    <select id="getPopulationTotalByAdmin"
+            resultType="com.panzhihua.common.model.vos.community.ComMngPopulationTotalVO">
+        select count(cmpct.id) as populationTotal ,
+        (select count(cmpct.id) from com_mng_population_community_tags cmpct left join com_mng_population cmp on cmpct.population_id = cmp.id where cmpct.community_id = ${communityId} and cmp.out_or_local = 1) as localTotal ,
+        (select count(cmpct.id) from com_mng_population_community_tags cmpct left join com_mng_population cmp on cmpct.population_id = cmp.id where cmpct.community_id = ${communityId} and cmp.out_or_local = 2) as outTotal ,
+        (select count(cmpct.id) from com_mng_population_community_tags cmpct left join com_mng_population cmp on cmpct.population_id = cmp.id where cmpct.community_id = ${communityId} and (cmpct.label like '%吸毒%' or cmpct.label like '%矫正%' or cmpct.label like '%重精%' or cmpct.label like '%刑满%'
+            or cmpct.label like '%上访%'   or cmpct.label like '%退役%' or cmpct.label like '%残疾%' or cmpct.label like '%低保%')) as specialTotal ,
+        (select count(DISTINCT `name`) from com_mng_village where community_id = ${communityId}) as villageTotal ,
+        (select count(id) from com_mng_building where act_id = ${communityId}) as buildNum ,
+        (select count(id) from com_mng_population_community_tags where community_id = ${communityId} and label LIKE CONCAT('%','吸毒人员','%')) as drugTotal ,
+        (select count(id) from com_mng_population_community_tags where community_id = ${communityId} and label LIKE CONCAT('%','社区矫正','%')) as correctTotal ,
+        (select count(id) from com_mng_population_community_tags where community_id = ${communityId} and label LIKE CONCAT('%','精神障碍患者','%')) as majorTotal ,
+        (select count(id) from com_mng_population_community_tags where community_id = ${communityId} and label LIKE CONCAT('%','邪教人员','%')) as cultTotal ,
+        (select count(id) from com_mng_population_community_tags where community_id = ${communityId} and label LIKE CONCAT('%','刑满释放','%')) as rehabilitationTotal ,
+        (select count(id) from com_mng_population_community_tags where community_id = ${communityId} and label LIKE CONCAT('%','重点人员','%')) as keyTotal ,
+        (select count(id) from com_mng_population_community_tags where community_id = ${communityId} and label LIKE CONCAT('%','退役军人','%')) as veteransTotal ,
+        (select count(id) from com_mng_population_community_tags where community_id = ${communityId} and label LIKE CONCAT('%','残疾人','%')) as disabilityTotal ,
+        (select count(id) from com_mng_population_community_tags where community_id = ${communityId} and label LIKE CONCAT('%','低保户','%')) as lowSecurityTotal ,
+        (select count(id) from com_mng_population_community_tags where community_id = ${communityId} and label LIKE CONCAT('%','高龄老人','%')) as elderTotal ,
+        (select count(id) from com_mng_population_community_tags where community_id = ${communityId} and label LIKE CONCAT('%','养老金人员','%')) as pensionTotal,
+        (select count(cmpct.id) from com_mng_population_community_tags cmpct INNER JOIN com_mng_population cmp on cmpct.population_id = cmp.id where cmpct.community_id = ${communityId} and cmp.person_type = 1) AS houseRegTotal,
+        (select count(cmpct.id) from com_mng_population_community_tags cmpct INNER JOIN com_mng_population cmp on cmpct.population_id = cmp.id where cmpct.community_id = ${communityId} and cmp.person_type = 2) AS leftTotal,
+        (select count(cmpct.id) from com_mng_population_community_tags cmpct INNER JOIN com_mng_population cmp on cmpct.population_id = cmp.id where cmpct.community_id = ${communityId} and cmp.person_type = 3) AS outOfTownTotal,
+        (select count(cmpct.id) from com_mng_population_community_tags cmpct INNER JOIN com_mng_population cmp on cmpct.population_id = cmp.id where cmpct.community_id = ${communityId} and cmp.person_type = 4) AS overseasTotal,
+        (select count(cmpct.id) from com_mng_population_community_tags cmpct INNER JOIN com_mng_population cmp on cmpct.population_id = cmp.id where cmpct.community_id = ${communityId} and cmp.person_type = 5) AS floatingTotal,
+        (select count(cmpct.id) from com_mng_population_community_tags cmpct INNER JOIN com_mng_population cmp on cmpct.population_id = cmp.id where cmpct.community_id = ${communityId} and cmp.person_type = 6) AS permanentTotal,
+        (select count(cmpct.id) from com_mng_population_community_tags cmpct INNER JOIN com_mng_population cmp on cmpct.population_id = cmp.id where cmpct.community_id = ${communityId} and cmp.person_type = 7) AS temporaryTotal
+        from com_mng_population_community_tags as cmpct inner join com_mng_population as cmp on cmp.id = cmpct.population_id where community_id = ${communityId}
+    </select>
+
+
+    <select id="getScreenIndexByEventList" resultType="com.panzhihua.common.model.vos.community.screen.index.IndexEventListStatisticsVO" >
+        SELECT  e.happen_time as createAt,  e.event_des,e.event_deal_status
+        FROM `event` AS e
+        LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+        WHERE
+            egd.grid_community_id = ${communityId}
+          AND e.event_deal_status IN ( 1, 4 )
+        ORDER BY  e.happen_time DESC
+        LIMIT 8
+
+    </select>
+
+
+
+
+
+
+
+
+
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngPopulationHouseDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngPopulationHouseDOMapper.xml
new file mode 100644
index 0000000..e361e0c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngPopulationHouseDOMapper.xml
@@ -0,0 +1,57 @@
+<?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.ComMngPopulationHouseDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComMngPopulationHouseDO">
+        <id column="id" property="id" />
+        <result column="street_id" property="streetId" />
+        <result column="community_id" property="communityId" />
+        <result column="village_id" property="villageId" />
+        <result column="alley" property="alley" />
+        <result column="house_num" property="houseNum" />
+        <result column="unit_no" property="unitNo" />
+        <result column="floor" property="floor" />
+        <result column="house_no" property="houseNo" />
+        <result column="code" property="code" />
+        <result column="address" property="address" />
+        <result column="status" property="status" />
+        <result column="purpose" property="purpose" />
+        <result column="control_status" property="controlStatus" />
+        <result column="is_empty" property="isEmpty" />
+        <result column="construct_purpose" property="constructPurpose" />
+        <result column="construct_area" property="constructArea" />
+        <result column="path" property="path" />
+        <result column="create_at" property="createAt" />
+        <result column="update_at" property="updateAt" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, street_id, community_id, village_id, alley, house_num, unit_no, floor, house_no, code, address, status, purpose, control_status, is_empty, construct_purpose, construct_area, path, create_at, update_at
+    </sql>
+
+    <update id="updateHouseUnit">
+        update com_mng_population_house set unit_no = #{newUnitNo} where village_id = #{villageId} and floor = #{floor} and unit_no = #{oldUnitNo}
+    </update>
+
+    <update id="updateUnitAll" parameterType="java.util.List">
+        <foreach collection="houseList" item="item" index="index" separator=";">
+            update com_mng_population_house
+            <set>
+                <if test="item.address != null and item.address != &quot;&quot;">
+                    `address` = #{item.address},
+                </if>
+                <if test="item.path != null and item.path != &quot;&quot;">
+                    `path` = #{item.path},
+                </if>
+                <if test="item.unitNo != null and item.unitNo != &quot;&quot;">
+                    `unit_no` = #{item.unitNo},
+                </if>
+                `update_at` = NOW()
+            </set>
+            WHERE `id` = #{item.id}
+        </foreach>
+    </update>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngPopulationHouseUserDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngPopulationHouseUserDOMapper.xml
new file mode 100644
index 0000000..ad53a30
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngPopulationHouseUserDOMapper.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.ComMngPopulationHouseUserDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComMngPopulationHouseUserDO">
+        <id column="id" property="id" />
+        <result column="popul_id" property="populId" />
+        <result column="house_id" property="houseId" />
+        <result column="relation_id" property="relationId" />
+        <result column="relation" property="relation" />
+        <result column="residence" property="residence" />
+        <result column="start_at" property="startAt" />
+        <result column="end_at" property="endAt" />
+        <result column="create_at" property="createAt" />
+        <result column="update_at" property="updateAt" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, popul_id, house_id, relation_id, relation, residence, start_at, end_at, create_at, update_at
+    </sql>
+
+    <select id="getHouseUserIsRent" resultType="integer">
+        select count(id) from com_mng_population where is_rent = 1 and id in
+        <foreach collection="ids" item="id" open="(" separator="," close=")" >
+            #{id}
+        </foreach>
+    </select>
+
+    <select id="selectListIndex" resultMap="BaseResultMap">
+        select popul_id,house_id from com_mng_population_house_user t left join com_mng_population_house t1 on t.house_id = t1.id  where t1.community_id = #{communityId}
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngVillageDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngVillageDOMapper.xml
new file mode 100644
index 0000000..f6b150b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngVillageDOMapper.xml
@@ -0,0 +1,68 @@
+<?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.ComActVillageDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComMngVillageDO">
+        <id column="village_id" property="villageId" />
+        <result column="street_id" property="streetId" />
+        <result column="community_id" property="communityId" />
+        <result column="alley" property="alley" />
+        <result column="house_num" property="houseNum" />
+        <result column="group_at" property="groupAt" />
+        <result column="type" property="type" />
+        <result column="name" property="name" />
+        <result column="build_sum" property="buildSum" />
+        <result column="build_year" property="buildYear" />
+        <result column="build_type" property="buildType" />
+        <result column="property" property="property" />
+        <result column="developers" property="developers" />
+        <result column="user_sum" property="userSum" />
+        <result column="village_images" property="villageImages" />
+        <result column="address" property="address" />
+        <result column="path" property="path" />
+        <result column="lng" property="lng" />
+        <result column="lat" property="lat" />
+        <result column="create_at" property="createAt" />
+        <result column="update_at" property="updateAt" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        village_id, street_id, community_id, alley, house_num, group_at, type, name, build_sum, build_year, build_type, property, developers, user_sum, village_images, address, path, lng, lat, create_at, update_at
+    </sql>
+
+    <select id="getGridVillageListApp" resultType="com.panzhihua.common.model.vos.grid.PageComMngVillageVO">
+        SELECT    cmv.village_id,    cmv.`name` AS userName,    IFNULL((select count(id) from com_mng_building where village_id = cmv.village_id),0) as buildSum,    address,
+        cmv.create_at as createAt,    cmv.lng,    cmv.lat,
+        ( SELECT count( id ) FROM com_mng_population WHERE village_id = cmv.village_id ) AS userSum,
+        ( SELECT count( id ) FROM com_mng_population_house WHERE village_id = cmv.village_id ) AS houseNum,
+        ( SELECT count( id ) FROM com_mng_population WHERE village_id = cmv.village_id AND out_or_local = 1 ) AS registerNum,
+        ( SELECT count( id ) FROM com_mng_population WHERE village_id = cmv.village_id AND is_rent = 2 ) AS rentNum
+        FROM    com_mng_village AS cmv
+        LEFT JOIN event_grid_data as egd on egd.grid_community_id = cmv.community_id
+        where 1=1
+        <if test='villageListAppDTO.gridId != null'>
+            and egd.id = #{villageListAppDTO.gridId}
+        </if>
+        <if test='villageListAppDTO.address != null and villageListAppDTO.address != &quot;&quot;'>
+            and cmv.address like concat(#{villageListAppDTO.address},'%')
+        </if>
+        <if test='villageListAppDTO.alley != null and villageListAppDTO.alley != &quot;&quot;'>
+            and cmv.alley like concat(#{villageListAppDTO.alley},'%')
+        </if>
+        <if test='villageListAppDTO.houseNum != null and villageListAppDTO.houseNum != &quot;&quot;'>
+            and cmv.house_num like concat(#{villageListAppDTO.houseNum},'%')
+        </if>
+        <if test='villageListAppDTO.groupAt != null and villageListAppDTO.groupAt != &quot;&quot;'>
+            and cmv.group_at like concat(#{villageListAppDTO.groupAt},'%')
+        </if>
+        <if test='villageListAppDTO.name != null and villageListAppDTO.name != &quot;&quot;'>
+            and cmv.name like concat(#{villageListAppDTO.name},'%')
+        </if>
+        <if test='villageListAppDTO.sortColumns!=null'>
+            ORDER BY ${villageListAppDTO.sortColumns} ${villageListAppDTO.sortType}
+        </if>
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngVolunteerMngDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngVolunteerMngDOMapper.xml
new file mode 100644
index 0000000..08412f7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngVolunteerMngDOMapper.xml
@@ -0,0 +1,232 @@
+<?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.ComMngVolunteerMngDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComMngVolunteerMngDO">
+        <id column="id" property="id" />
+        <result column="create_at" property="createAt" />
+        <result column="state" property="state" />
+        <result column="name" property="name" />
+        <result column="phone" property="phone" />
+        <result column="photo_path" property="photoPath" />
+        <result column="political_face" property="politicalFace" />
+        <result column="reject_reson" property="rejectReson" />
+        <result column="apply_reson" property="applyReson" />
+        <result column="address" property="address" />
+        <result column="age" property="age" />
+        <result column="job" property="job" />
+        <result column="integral" property="integral" />
+        <result column="community_id" property="communityId" />
+        <result column="submit_user_id" property="submitUserId" />
+        <result column="id_card" property="idCard" />
+        <result column="org_id" property="orgId" />
+        <result column="team_id" property="teamId" />
+        <result column="skill_id" property="skillId" />
+        <result column="love_integral" property="loveIntegral" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, create_at, state, name, phone, photo_path, political_face, reject_reson, apply_reson, address, age,
+        job, integral, community_id, submit_user_id, id_card, org_id, team_id, skill_id,love_integral
+    </sql>
+
+    <select id="pageVolunteer" resultType="com.panzhihua.common.model.vos.community.ComMngVolunteerMngVO">
+        SELECT
+        cmvm.id,
+        cmvm.`name`,
+        cmvm.photo_path,
+        cmvm.phone,
+        cmvm.integral,
+        cmvm.id_card,
+        cmvm.skill_id,
+        cmvm.org_id,
+        cmvm.team_id,
+        cmvm.is_university,
+        IF(cmvm.is_university = 1,cmvm.university_name,null) AS university_name,
+        cmvot.`name` as orgName,
+        cmvot1.`name` as teamName,
+        cmvot1.`service_type_id`,
+        cmvst.`name` as serviceTypeName,
+        cmvs.`name` as skillName,
+        cmvm.create_at,
+        cmvm.love_integral,
+        t.name as communityName
+        FROM
+        com_mng_volunteer_mng as cmvm
+        left join com_mng_volunteer_org_team as cmvot on cmvot.id = cmvm.org_id
+        left join com_mng_volunteer_org_team as cmvot1 on cmvot1.id = cmvm.team_id
+        left join com_mng_volunteer_skill as cmvs on cmvs.id = cmvm.skill_id
+        left join com_mng_volunteer_service_type as cmvst on cmvst.id = cmvot1.service_type_id
+        left join com_act t on cmvm.community_id = t.community_id
+        WHERE
+        cmvm.state = 2
+        <if test="comMngVolunteerMngVO.communityId !=null">
+         and   cmvm.community_id = #{comMngVolunteerMngVO.communityId}
+        </if>
+        <if test="comMngVolunteerMngVO.streetId !=null">
+            and   t.street_id = #{comMngVolunteerMngVO.streetId}
+        </if>
+        <if test='comMngVolunteerMngVO.name != null and comMngVolunteerMngVO.name != &quot;&quot;'>
+            and cmvm.name like concat(#{comMngVolunteerMngVO.name},'%')
+        </if>
+        <if test='comMngVolunteerMngVO.keyWord != null and comMngVolunteerMngVO.keyWord != &quot;&quot;'>
+            and (
+            cmvm.name like concat(#{comMngVolunteerMngVO.keyWord},'%') or
+            cmvm.phone like concat(#{comMngVolunteerMngVO.keyWord},'%') or
+            cmvm.id_card = #{comMngVolunteerMngVO.keyWord} or
+            cmvm.university_name like concat(#{comMngVolunteerMngVO.keyWord},'%') or
+            TIMESTAMPDIFF(YEAR, SUBSTRING(cmvm.id_card, 7, 8), NOW()) = #{comMngVolunteerMngVO.keyWord}
+            )
+        </if>
+        <if test="comMngVolunteerMngVO.orgId != null">
+            and cmvm.org_id = #{comMngVolunteerMngVO.orgId}
+        </if>
+        <if test="comMngVolunteerMngVO.teamId != null">
+            and cmvm.team_id = #{comMngVolunteerMngVO.teamId}
+        </if>
+        <if test="comMngVolunteerMngVO.isUniversity != null">
+            and cmvm.is_university = #{comMngVolunteerMngVO.isUniversity}
+        </if>
+        <if test="comMngVolunteerMngVO.skillId != null">
+            and cmvm.skill_id = #{comMngVolunteerMngVO.skillId}
+        </if>
+        <if test="comMngVolunteerMngVO.serviceTypeId != null">
+            and cmvot1.service_type_id = #{comMngVolunteerMngVO.serviceTypeId}
+        </if>
+        <if test='comMngVolunteerMngVO.phone != null and comMngVolunteerMngVO.phone != &quot;&quot;'>
+            AND cmvm.phone like concat(#{comMngVolunteerMngVO.phone},'%')
+        </if>
+        <if test="comMngVolunteerMngVO.propertyId != null and comMngVolunteerMngVO.propertyId != ''">
+            AND cmvm.property_id=#{comMngVolunteerMngVO.propertyId}
+        </if>
+        ORDER BY
+        integral DESC,
+        cmvm.create_at DESC
+    </select>
+    <select id="retrieveVolunteerOrgHistogram"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT
+            t2.`name` AS filed,
+            COUNT( 1 ) AS num
+        FROM
+            com_mng_volunteer_mng t1
+            JOIN com_mng_volunteer_org_team t2 ON t1.org_id = t2.id
+        WHERE
+            t1.community_id = #{communityId} AND t1.state = 2
+        GROUP BY
+            filed
+    </select>
+    <select id="getVolunteerBaseData"
+            resultType="com.panzhihua.common.model.vos.community.bigscreen.BigScreenVolunteerStatisticsInfo">
+        SELECT
+        (SELECT COUNT(id) FROM com_mng_volunteer_mng WHERE community_id = #{communityId} AND state = 2) AS volunteerNum,
+        (SELECT COUNT(id) FROM com_mng_volunteer_org_team WHERE community_id = #{communityId} AND parent_id = 0) AS volunteerOrgNum,
+        (SELECT COUNT(id) FROM com_mng_volunteer_org_team WHERE community_id = #{communityId} AND parent_id != 0) AS volunteerTeamNum
+    </select>
+    <select id="retrieveVolunteerServiceTypeCircleData"
+            resultType="com.panzhihua.common.model.vos.community.ComMngVolunteerMngVO">
+        SELECT t1.id, t3.`name` AS serviceTypeName
+        FROM com_mng_volunteer_mng t1
+        JOIN com_mng_volunteer_org_team t2 ON t1.team_id = t2.id
+        LEFT JOIN com_mng_volunteer_service_type t3 ON t2.service_type_id = t3.id
+        WHERE t1.community_id = #{communityId} AND t1.state = 2
+    </select>
+    <select id="retrieveVolunteerAgeCircleData"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT filed, SUM(num) AS num FROM (
+			SELECT filed, COUNT(filed) AS num FROM (
+			SELECT
+			CASE
+			WHEN TIMESTAMPDIFF(YEAR, SUBSTRING(id_card, 7, 8), NOW()) BETWEEN 0 AND 18 THEN '0-18岁'
+			WHEN TIMESTAMPDIFF(YEAR, SUBSTRING(id_card, 7, 8), NOW()) BETWEEN 19 AND 30 THEN '19-30岁'
+			WHEN TIMESTAMPDIFF(YEAR, SUBSTRING(id_card, 7, 8), NOW()) BETWEEN 31 AND 40 THEN '31-40岁'
+			WHEN TIMESTAMPDIFF(YEAR, SUBSTRING(id_card, 7, 8), NOW()) BETWEEN 41 AND 50 THEN '41-50岁'
+			WHEN TIMESTAMPDIFF(YEAR, SUBSTRING(id_card, 7, 8), NOW()) BETWEEN 51 AND 60 THEN '51-60岁'
+			WHEN TIMESTAMPDIFF(YEAR, SUBSTRING(id_card, 7, 8), NOW()) BETWEEN 61 AND 79 THEN '61-79岁'
+			WHEN TIMESTAMPDIFF(YEAR, SUBSTRING(id_card, 7, 8), NOW()) BETWEEN 80 AND 89 THEN '80-89岁'
+			WHEN TIMESTAMPDIFF(YEAR, SUBSTRING(id_card, 7, 8), NOW()) > 89 THEN '89岁以上'
+			END filed
+			FROM com_mng_volunteer_mng WHERE community_id = #{communityId} AND state = 2
+			) temp WHERE filed is not null GROUP BY filed
+			UNION ALL
+			(SELECT '0-18岁' AS filed, 0 AS num)
+			UNION ALL
+			(SELECT '19-30岁' AS filed, 0 AS num)
+			UNION ALL
+			(SELECT '31-40岁' AS filed, 0 AS num)
+			UNION ALL
+			(SELECT '41-50岁' AS filed, 0 AS num)
+			UNION ALL
+			(SELECT '51-60岁' AS filed, 0 AS num)
+			UNION ALL
+			(SELECT '61-79岁' AS filed, 0 AS num)
+			UNION ALL
+			(SELECT '80-89岁' AS filed, 0 AS num)
+			UNION ALL
+			(SELECT '89岁以上' AS filed, 0 AS num)
+		) t GROUP BY filed
+    </select>
+    <select id="retrieveVolunteerSkillCircleData"
+            resultType="com.panzhihua.common.model.vos.community.ComMngVolunteerMngVO">
+        SELECT t1.id, t2.`name` AS skillName
+        FROM com_mng_volunteer_mng t1
+        JOIN com_mng_volunteer_skill t2 ON t1.skill_id = t2.id
+        WHERE t1.community_id = #{communityId} AND t1.state = 2
+    </select>
+    <select id="selectVolunteerByCommunityId"
+            resultType="com.panzhihua.common.model.vos.community.ComMngVolunteerMngVO">
+        SELECT t1.id, t1.`name`,t1.phone,t1.id_card,t1.is_university,
+               t1.photo_path,
+               (select name from com_mng_volunteer_skill where id=t1.skill_id) as skillName,
+               t2.`name` AS teamName, t3.`name` AS orgName
+        FROM com_mng_volunteer_mng t1
+        INNER JOIN com_mng_volunteer_org_team t2 ON t1.team_id = t2.id
+        INNER JOIN com_mng_volunteer_org_team t3 ON t1.org_id = t3.id
+        WHERE t1.community_id = #{communityId} AND t1.state = 2
+    </select>
+    <select id="pageVolunteerExamine"
+            resultType="com.panzhihua.common.model.vos.community.ComMngVolunteerMngVO">
+        SELECT
+        t.id,
+        t.`name`,
+        t.state,
+        t.phone,
+        t.apply_reson,
+        t.create_at,
+        t.submit_user_id,
+        t.is_university
+        FROM
+        com_mng_volunteer_mng t
+        RIGHT JOIN ( SELECT submit_user_id, MAX( create_at ) create_at FROM com_mng_volunteer_mng WHERE state IN ( 1, 3 ) GROUP BY submit_user_id ) tmp ON t.create_at = tmp.create_at
+        AND t.submit_user_id = tmp.submit_user_id
+        WHERE
+        state IN ( 1, 3 )
+        AND community_id = #{comMngVolunteerMngVO.communityId}
+        <if test = 'comMngVolunteerMngVO.name != null and comMngVolunteerMngVO.name.trim() != &quot;&quot;' >
+        AND t.NAME LIKE concat(#{comMngVolunteerMngVO.name},'%')
+        </if>
+        <if test = 'comMngVolunteerMngVO.phone != null and comMngVolunteerMngVO.phone.trim() != &quot;&quot;' >
+        AND t.phone LIKE concat(#{comMngVolunteerMngVO.phone},'%')
+        </if>
+        <if test = 'comMngVolunteerMngVO.state != null and comMngVolunteerMngVO.state != 0' >
+        AND t.state = #{comMngVolunteerMngVO.state}
+        </if>
+        <if test="comMngVolunteerMngVO.isUniversity != null">
+            and t.is_university = #{comMngVolunteerMngVO.isUniversity}
+        </if>
+        ORDER BY
+        t.state ASC
+    </select>
+    <select id="detailVolunteerExamine"
+            resultType="com.panzhihua.common.model.vos.community.ComMngVolunteerMngVO">
+        SELECT t1.*, t2.`name` AS orgName, t3.`name` AS teamName, t4.`name` AS skillName
+        FROM com_mng_volunteer_mng t1
+        LEFT JOIN com_mng_volunteer_org_team t2 ON t1.org_id = t2.id
+        LEFT JOIN com_mng_volunteer_org_team t3 On t1.team_id = t3.id
+        LEFT JOIN com_mng_volunteer_skill t4 ON t1.skill_id = t4.id
+        WHERE t1.id = #{id}
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngVolunteerOrgTeamDao.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngVolunteerOrgTeamDao.xml
new file mode 100644
index 0000000..9f08e8e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngVolunteerOrgTeamDao.xml
@@ -0,0 +1,135 @@
+<?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.ComMngVolunteerOrgTeamMapper">
+
+    <resultMap type="com.panzhihua.service_community.model.dos.ComMngVolunteerOrgTeam" id="ComMngVolunteerOrgTeamMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="communityId" column="community_id" jdbcType="INTEGER"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="parentId" column="parent_id" jdbcType="INTEGER"/>
+        <result property="serviceTypeId" column="service_type_id" jdbcType="INTEGER"/>
+        <result property="createAt" column="create_at" jdbcType="TIMESTAMP"/>
+        <result property="updateAt" column="update_at" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+    <!--查询单个-->
+    <select id="queryById" resultType="com.panzhihua.common.model.vos.common.ComMngVolunteerOrgTeamVo">
+        select
+          id, community_id, name, parent_id, service_type_id, create_at, update_at
+        from com_mng_volunteer_org_team
+        where id = #{id}
+    </select>
+
+    <!--查询指定行数据-->
+    <select id="queryAllByLimit" resultType="com.panzhihua.common.model.vos.common.ComMngVolunteerOrgTeamVo">
+        select
+          id, community_id, name, parent_id, service_type_id, create_at, update_at
+        from com_mng_volunteer_org_team
+        <where>
+            <if test="dto.id != null">
+                and id = #{dto.id}
+            </if>
+            <if test="dto.communityId != null">
+                and community_id = #{dto.communityId}
+            </if>
+            <if test="dto.name != null and dto.name != ''">
+                and `name` = #{name}
+            </if>
+            <if test="dto.parentId != null">
+                and parent_id = #{dto.parentId}
+            </if>
+            <if test="dto.serviceTypeId != null">
+                and service_type_id = #{dto.serviceTypeId}
+            </if>
+            <if test="dto.createAt != null">
+                and create_at = #{dto.createAt}
+            </if>
+            <if test="dto.updateAt != null">
+                and update_at = #{dto.updateAt}
+            </if>
+        </where>
+        order by create_at desc
+    </select>
+
+    <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into com_mng_volunteer_org_team(community_id, name, parent_id, service_type_id, create_at, update_at)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+        (#{entity.communityId}, #{entity.name}, #{entity.parentId}, #{entity.serviceTypeId}, #{entity.createAt}, #{entity.updateAt})
+        </foreach>
+    </insert>
+
+    <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into com_mng_volunteer_org_team(community_id, name, parent_id, service_type_id, create_at, update_at)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.communityId}, #{entity.name}, #{entity.parentId}, #{entity.serviceTypeId}, #{entity.createAt}, #{entity.updateAt})
+        </foreach>
+        on duplicate key update
+        community_id = values(community_id),
+        name = values(name),
+        parent_id = values(parent_id),
+        service_type_id = values(service_type_id),
+        create_at = values(create_at),
+        update_at = values(update_at)
+    </insert>
+
+    <select id="queryAll" resultType="com.panzhihua.common.model.vos.common.ComMngVolunteerOrgTeamVo">
+        select
+        cmvot.id, cmvot.community_id, cmvot.name, cmvot.parent_id, cmvot.service_type_id, cmvot.create_at, cmvot.update_at, cmvst.`name` as serviceTypeName
+        from com_mng_volunteer_org_team as cmvot
+        left join com_mng_volunteer_service_type as cmvst on cmvst.id = cmvot.service_type_id
+        <where>
+            <if test="dto.id != null">
+                and cmvot.id = #{dto.id}
+            </if>
+            <if test="dto.communityId != null">
+                and cmvot.community_id = #{dto.communityId}
+            </if>
+            <if test="dto.name != null and dto.name != ''">
+                and cmvot.`name` = #{name}
+            </if>
+            <if test="dto.parentId != null">
+                and cmvot.parent_id = #{dto.parentId}
+            </if>
+            <if test="dto.serviceTypeId != null">
+                and cmvot.service_type_id = #{dto.serviceTypeId}
+            </if>
+            <if test="dto.createAt != null">
+                and cmvot.create_at = #{dto.createAt}
+            </if>
+            <if test="dto.updateAt != null">
+                and cmvot.update_at = #{dto.updateAt}
+            </if>
+        </where>
+        order by cmvot.create_at desc
+    </select>
+
+    <select id="statisticsVolunteerOrgAdmin" resultType="com.panzhihua.common.model.vos.common.ComMngVolunteerStatisticsVo">
+        SELECT
+            count( id ) AS orgTotal,(
+            SELECT
+                count( id )
+            FROM
+                com_mng_volunteer_org_team
+            WHERE
+                parent_id != 0
+                AND community_id = #{communityId}
+                ) AS teamTotal,(
+            SELECT
+                count( id )
+            FROM
+                com_mng_volunteer_mng
+            WHERE
+                state = 2
+                AND community_id = #{communityId}
+            ) AS volunteerTotal
+        FROM
+            com_mng_volunteer_org_team
+        WHERE
+            parent_id = 0
+            AND community_id = #{communityId}
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngVolunteerServiceTypeDao.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngVolunteerServiceTypeDao.xml
new file mode 100644
index 0000000..49414b3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngVolunteerServiceTypeDao.xml
@@ -0,0 +1,103 @@
+<?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.ComMngVolunteerServiceTypeMapper">
+
+    <resultMap type="com.panzhihua.service_community.model.dos.ComMngVolunteerServiceType"
+               id="ComMngVolunteerServiceTypeMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="communityId" column="community_id" jdbcType="INTEGER"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="remark" column="remark" jdbcType="VARCHAR"/>
+        <result property="createAt" column="create_at" jdbcType="TIMESTAMP"/>
+        <result property="createBy" column="create_by" jdbcType="INTEGER"/>
+        <result property="updateAt" column="update_at" jdbcType="TIMESTAMP"/>
+        <result property="updateBy" column="update_by" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <!--查询单个-->
+    <select id="queryById" resultType="com.panzhihua.common.model.vos.common.ComMngVolunteerServiceTypeVo">
+        select
+          id, community_id, name, remark, create_at, create_by, update_at, update_by
+        from com_mng_volunteer_service_type
+        where id = #{id}
+    </select>
+
+    <!--查询指定行数据-->
+    <select id="queryAllByLimit" resultType="com.panzhihua.common.model.vos.common.ComMngVolunteerServiceTypeVo">
+        select
+        cmvst.id, cmvst.community_id, cmvst.name, cmvst.remark, cmvst.create_at, cmvst.create_by, cmvst.update_at, cmvst.update_by, IFNULL(su.`name`,su.nick_name) as createByName
+        from com_mng_volunteer_service_type as cmvst
+        left join sys_user as su on su.user_id = cmvst.create_by
+        <where>
+            <if test="dto.id != null">
+                and cmvst.id = #{dto.id}
+            </if>
+            <if test="dto.communityId != null">
+                and cmvst.community_id = #{dto.communityId}
+            </if>
+            <if test="dto.name != null and dto.name != ''">
+                and cmvst.name = #{dto.name}
+            </if>
+            <if test="dto.remark != null and dto.remark != ''">
+                and cmvst.remark = #{dto.remark}
+            </if>
+            <if test="dto.keyWord != null and dto.keyWord != ''">
+                and cmvst.name like concat(#{dto.keyWord},'%')
+            </if>
+        </where>
+        order by cmvst.create_at desc
+    </select>
+
+    <!--新增所有列-->
+
+    <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into com_mng_volunteer_service_type(community_id, name, remark, create_at, create_by, update_at,
+        update_by)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.communityId}, #{entity.name}, #{entity.remark}, #{entity.createAt}, #{entity.createBy},
+            #{entity.updateAt}, #{entity.updateBy})
+        </foreach>
+    </insert>
+
+    <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into com_mng_volunteer_service_type(community_id, name, remark, create_at, create_by, update_at,
+        update_by)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.communityId}, #{entity.name}, #{entity.remark}, #{entity.createAt}, #{entity.createBy},
+            #{entity.updateAt}, #{entity.updateBy})
+        </foreach>
+        on duplicate key update
+        community_id = values(community_id),
+        name = values(name),
+        remark = values(remark),
+        create_at = values(create_at),
+        create_by = values(create_by),
+        update_at = values(update_at),
+        update_by = values(update_by)
+    </insert>
+
+    <select id="queryAll" resultType="com.panzhihua.common.model.vos.common.ComMngVolunteerServiceTypeVo">
+        select
+        id, community_id, name, remark, create_at, create_by, update_at, update_by
+        from com_mng_volunteer_service_type
+        <where>
+            <if test="dto.id != null">
+                and id = #{dto.id}
+            </if>
+            <if test="dto.communityId != null">
+                and community_id = #{dto.communityId}
+            </if>
+            <if test="dto.name != null and dto.name != ''">
+                and name = #{dto.name}
+            </if>
+            <if test="dto.remark != null and dto.remark != ''">
+                and remark = #{dto.remark}
+            </if>
+        </where>
+        order by create_at desc
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngVolunteerSkillDao.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngVolunteerSkillDao.xml
new file mode 100644
index 0000000..b9c8625
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComMngVolunteerSkillDao.xml
@@ -0,0 +1,122 @@
+<?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.ComMngVolunteerSkillMapper">
+
+    <resultMap type="com.panzhihua.service_community.model.dos.ComMngVolunteerSkill" id="ComMngVolunteerSkillMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="communityId" column="community_id" jdbcType="INTEGER"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="remark" column="remark" jdbcType="VARCHAR"/>
+        <result property="createAt" column="create_at" jdbcType="TIMESTAMP"/>
+        <result property="createBy" column="create_by" jdbcType="INTEGER"/>
+        <result property="updateAt" column="update_at" jdbcType="TIMESTAMP"/>
+        <result property="updateBy" column="update_by" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <!--查询单个-->
+    <select id="queryById" resultType="com.panzhihua.common.model.vos.common.ComMngVolunteerSkillVo">
+        select
+          id, community_id, name, remark, create_at, create_by, update_at, update_by
+        from com_mng_volunteer_skill
+        where id = #{id}
+    </select>
+
+    <!--查询指定行数据-->
+    <select id="queryAllByLimit" resultType="com.panzhihua.common.model.vos.common.ComMngVolunteerSkillVo">
+        select
+        cmvs.id, cmvs.community_id, cmvs.name, IFNULL(su.`name`,su.nick_name) as createByName, cmvs.remark, cmvs.create_at, cmvs.create_by, cmvs.update_at, cmvs.update_by
+        from com_mng_volunteer_skill as cmvs
+        left join sys_user as su on su.user_id = cmvs.create_by
+        <where>
+            <if test="dto.id != null">
+                and cmvs.id = #{dto.id}
+            </if>
+            <if test="dto.keyWord!=null and dto.keyWord!=''">
+                and cmvs.name like concat('%',#{dto.keyWord},'%')
+            </if>
+            <if test="dto.communityId != null">
+                and cmvs.community_id = #{dto.communityId}
+            </if>
+            <if test="dto.name != null and dto.name != ''">
+                and cmvs.name = #{dto.name}
+            </if>
+            <if test="dto.remark != null and dto.remark != ''">
+                and cmvs.remark = #{dto.remark}
+            </if>
+            <if test="dto.createAt != null">
+                and cmvs.create_at = #{dto.createAt}
+            </if>
+            <if test="dto.createBy != null">
+                and cmvs.create_by = #{dto.createBy}
+            </if>
+            <if test="dto.updateAt != null">
+                and cmvs.update_at = #{dto.updateAt}
+            </if>
+            <if test="dto.updateBy != null">
+                and cmvs.update_by = #{dto.updateBy}
+            </if>
+        </where>
+        order by cmvs.create_at desc
+    </select>
+
+    <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into com_mng_volunteer_skill(community_id, name, remark, create_at, create_by, update_at, update_by)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.communityId}, #{entity.name}, #{entity.remark}, #{entity.createAt}, #{entity.createBy},
+            #{entity.updateAt}, #{entity.updateBy})
+        </foreach>
+    </insert>
+
+    <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into com_mng_volunteer_skill(community_id, name, remark, create_at, create_by, update_at, update_by)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.communityId}, #{entity.name}, #{entity.remark}, #{entity.createAt}, #{entity.createBy},
+            #{entity.updateAt}, #{entity.updateBy})
+        </foreach>
+        on duplicate key update
+        community_id = values(community_id),
+        name = values(name),
+        remark = values(remark),
+        create_at = values(create_at),
+        create_by = values(create_by),
+        update_at = values(update_at),
+        update_by = values(update_by)
+    </insert>
+
+    <select id="queryAll" resultType="com.panzhihua.common.model.vos.common.ComMngVolunteerSkillVo">
+        select
+        id, community_id, name, remark, create_at, create_by, update_at, update_by
+        from com_mng_volunteer_skill
+        <where>
+            <if test="dto.id != null">
+                and id = #{dto.id}
+            </if>
+            <if test="dto.communityId != null">
+                and community_id = #{dto.communityId}
+            </if>
+            <if test="dto.name != null and dto.name != ''">
+                and name = #{dto.name}
+            </if>
+            <if test="dto.remark != null and dto.remark != ''">
+                and remark = #{dto.remark}
+            </if>
+            <if test="dto.createAt != null">
+                and create_at = #{dto.createAt}
+            </if>
+            <if test="dto.createBy != null">
+                and create_by = #{dto.createBy}
+            </if>
+            <if test="dto.updateAt != null">
+                and update_at = #{dto.updateAt}
+            </if>
+            <if test="dto.updateBy != null">
+                and update_by = #{dto.updateBy}
+            </if>
+        </where>
+        order by create_at desc
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPbMemberMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPbMemberMapper.xml
new file mode 100644
index 0000000..6a393a2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPbMemberMapper.xml
@@ -0,0 +1,83 @@
+<?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.ComPbMemberDAO">
+
+    <select id="selectById" resultType="com.panzhihua.common.model.vos.partybuilding.ComPbMemberVO">
+        select t.*,t2.name as orgName from com_pb_member t left join com_mng_population t1 on t.id_card = t1.card_no_str
+        left join com_pb_org t2 on t.org_id = t2.id where t1.card_no_str =#{idCard}
+    </select>
+
+    <select id="selectActivityCountMonth"
+            resultType="com.panzhihua.common.model.vos.community.bigscreen.BigScreenActivityLine">
+        select ( select count(id) from com_pb_activity where status!=6 and community_id = ${communityId} and
+        release_time >= DATE_FORMAT( CONCAT(#{year},'-',#{date},'-00'), '%Y-%m-00 00:00:00') and DATE_FORMAT(
+        LAST_DAY(CONCAT(#{year},'-',#{date},'-00')), '%Y-%m-%d 23:59:59') >=release_time) y,
+        (select count(id) from com_pb_activity where status!=6 and community_id = ${communityId} and DATE_FORMAT(
+        LAST_DAY(CONCAT(#{year},'-',#{date},'-00')), '%Y-%m-%d 23:59:59') >=release_time) countY
+    </select>
+
+    <select id="selectActivityTop" resultType="com.panzhihua.common.model.vos.community.bigscreen.BigScreenActivityTop">
+        select t.name,t.photo_path as url,t1.name as orgName,t2.integral_available_party as score from com_pb_member t
+        LEFT JOIN com_pb_org t1 on t.org_id= t1.id LEFT JOIN com_act_integral_user t2 on t.user_id = t2.user_id where
+        t.community_id = ${communityId} and t2.status = 1 order by integral_available_party desc
+    </select>
+
+    <select id="bigScreenServiceData"
+            resultType="com.panzhihua.common.model.vos.community.bigscreen.BigScreenServiceData">
+        select (select count(*) from com_act_work_guide ) guide,
+        (select count(*) from com_act_announcement where community_id = ${communityId}) announcement,
+        (select count(*) from com_elder_auth_elderlies where community_id = ${communityId}) eldersAuth,
+        (select count(*) from com_convenient_merchants where (community_id = ${communityId} OR community_id = 0) and
+        is_del =0) convenient,
+        (select count(*) from renting_hourse_register where community_id = ${communityId}) rentingHouse,
+        (select count(*) from com_property_alarm where community_id = ${communityId}) oneButton,
+        (select count(*) from com_pension_auth_pensioners where community_id = ${communityId} ) pensionAuth,
+        (select count(*) from com_pb_dyn where community_id = ${communityId} and type = 2) partyDyn,
+        (select count(*) from com_property where community_id = ${communityId} ) property
+    </select>
+
+    <select id="bigScreenServiceUser"
+            resultType="com.panzhihua.common.model.vos.community.bigscreen.BigScreenServiceUser">
+        select t.name AS villageName, IF(t1.num IS NULL,0,t1.num) as num
+        from com_mng_village t left join (
+        select count(*) num,village_id
+        from com_mng_population
+        where act_id = #{communityId} GROUP BY village_id
+        ) t1 on t.village_id = t1.village_id where t.community_id = ${communityId}
+    </select>
+    <select id="checkIsPbMember" resultType="java.lang.Integer">
+        SELECT
+        (SELECT COUNT(id) FROM com_pb_member WHERE phone = (SELECT phone FROM sys_user WHERE user_id = #{userId}) AND
+        audit_result = 1)
+        +
+        (SELECT COUNT(id) FROM com_pb_member_west WHERE phone = (SELECT phone FROM sys_user WHERE user_id = #{userId})
+        AND audit_result = 1)
+    </select>
+    <select id="checkIsVolunteer" resultType="java.lang.Integer">
+        SELECT COUNT(id) FROM com_mng_volunteer_mng WHERE state = 2 AND phone = (SELECT phone FROM sys_user WHERE
+        user_id = #{userId})
+    </select>
+    <select id="statisticsPbMemberType"
+            resultType="com.panzhihua.common.model.vos.partybuilding.ComPbMemberTypeVO">
+        SELECT count(1) count_num, '统计调查' as count_name FROM com_pb_member WHERE  find_in_set('统计调查',specialty_name)
+        UNION ALL
+        SELECT count(1) count_num, '法律援助' as count_name FROM com_pb_member WHERE  find_in_set('法律援助',specialty_name)
+        UNION ALL
+        SELECT count(1) count_num, '志愿活动' as count_name FROM com_pb_member WHERE  find_in_set('志愿活动',specialty_name)
+        UNION ALL
+        SELECT count(1) count_num, '尊老爱幼' as count_name FROM com_pb_member WHERE  find_in_set('尊老爱幼',specialty_name)
+        UNION ALL
+        SELECT count(1) count_num, '宣讲宣教' as count_name FROM com_pb_member WHERE  find_in_set('宣讲宣教',specialty_name)
+        UNION ALL
+        SELECT count(1) count_num, '心理关爱' as count_name FROM com_pb_member WHERE  find_in_set('心理关爱',specialty_name)
+        UNION ALL
+        SELECT count(1) count_num, '设施维修' as count_name FROM com_pb_member WHERE  find_in_set('设施维修',specialty_name)
+        UNION ALL
+        SELECT count(1) count_num, '其他' as count_name FROM com_pb_member WHERE  find_in_set('其他',specialty_name)
+    </select>
+    <select id="selectUnitByNatureName" resultType="com.panzhihua.common.model.vos.partybuilding.ComPbMemberTypeVO">
+        SELECT count(1) count_num,'企事业单位' as count_name FROM com_pb_check_unit WHERE nature_name = '企事业单位'
+         UNION ALL
+         SELECT count(1) count_num,'机关单位' as count_name FROM com_pb_check_unit WHERE nature_name = '机关单位'
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPbServiceTeamMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPbServiceTeamMapper.xml
new file mode 100644
index 0000000..88090ce
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPbServiceTeamMapper.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_community.dao.ComPbServiceTeamDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComPbServiceTeam" id="ComPbServiceTeamBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="name" column="name"/>
+        <result property="job" column="job"/>
+        <result property="jobTwo" column="job_two"/>
+        <result property="url" column="url"/>
+        <result property="createAt" column="create_at"/>
+        <result property="communityId" column="community_id"/>
+        <result property="jobResponsibilities" column="job_responsibilities"/>
+        <result property="phone" column="phone"/>
+        <result property="isReg" column="is_reg"/>
+        <result property="cardNo" column="card_no"/>
+    </resultMap>
+
+</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..4ee759b
--- /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,
+            cpar.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..732c262
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPensionAuthPensionerMapper.xml
@@ -0,0 +1,82 @@
+<?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>
+
+    <update id="editPensionIsAlive">
+        update com_pension_auth_pensioners set is_alive = #{isAlive} where population_id = #{populationId}
+    </update>
+
+    <select id="getAuthPensionList" resultType="com.panzhihua.service_community.model.dos.ComPensionAuthPensionerDO">
+        SELECT
+            cpap.id,
+            cpap.population_id,
+            cpap.street_id,
+            cpap.community_id,
+            cpap.phone,
+            cmp.`name`,
+            cpap.id_card,
+            cpap.sex,
+            cpap.age,
+            cpap.birthday,
+            cpap.personnel_category,
+            cpap.is_register,
+            cpap.is_alive,
+            cpap.address,
+            cpap.remark,
+            cpap.receive_allowance_begin,
+            cpap.create_at,
+            cpap.create_by,
+            cpap.update_at,
+            cpap.update_by
+        FROM
+            com_pension_auth_pensioners AS cpap
+            INNER JOIN com_mng_population AS cmp ON cmp.id = cpap.population_id
+    </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..ee9d44b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPensionAuthRecordMapper.xml
@@ -0,0 +1,348 @@
+<?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,
+        cpar.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 <![CDATA[ >= ]]> #{pageElderAuthRecordsDTO.authDateBegin}
+        </if>
+        <if test="pageElderAuthRecordsDTO.authDateEnd != null and pageElderAuthRecordsDTO.authDateEnd != ''">
+            and cpar.auth_date <![CDATA[ <= ]]> #{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 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}, '%')
+            or cpap.id_card = #{pageElderAuthRecordsDTO.idCard})
+        </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,
+            cpar.address,
+            cpap.is_alive,
+            cpar.auth_period,
+            cpar.auth_date,
+            cpar.mark,
+            cpar.auth_method,
+            cpar.auth_video,
+            cpar.approval_status,
+            cpar.community_id,
+            cpar.id,
+            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,
+        cpar.address,
+        CASE
+        cpap.is_alive
+        WHEN 1 THEN
+        '是'
+        WHEN 0 THEN
+        '否'
+        END isAlive,
+        cpar.auth_period,
+        cpar.auth_date,
+        CASE
+        cpar.auth_method
+        WHEN 1 THEN
+        '视频认证'
+        WHEN 2 THEN
+        '人脸认证'
+        WHEN 3 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>
+            <if test="ids != null and ids.size > 0">
+                and cpar.id in
+                <foreach collection="ids" item="id" open="(" separator="," close=")" >
+                    #{id}
+                </foreach>
+            </if>
+        </where>
+        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.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,
+        cpar.address,
+        CASE
+        cpap.is_alive
+        WHEN 1 THEN
+        '是'
+        WHEN 0 THEN
+        '否'
+        END isAlive,
+        cpahr.auth_period,
+        cpahr.auth_date,
+        CASE
+        cpahr.auth_method
+        WHEN 1 THEN
+        '视频认证'
+        WHEN 2 THEN
+        '人脸认证'
+        WHEN 3 THEN
+        '线下认证'
+        END authMethod,
+        cpahr.mark,
+        CASE
+        cpahr.is_auth
+        WHEN 1 THEN
+        '已认证'
+        WHEN 2 THEN
+        '未认证'
+        END authStatus
+        FROM
+        com_pension_auth_history_record as cpahr
+        LEFT JOIN com_pension_auth_records cpar on cpar.id = cpahr.auth_id
+        LEFT JOIN com_pension_auth_pensioners cpap ON cpahr.elderlies_id = cpap.id
+        LEFT JOIN sys_user su ON cpar.submit_user_id = su.user_id
+        WHERE
+        cpahr.community_id = ${pageElderAuthRecordsDTO.communityId}
+        <if test="pageElderAuthRecordsDTO.authPeriod != null and pageElderAuthRecordsDTO.authPeriod !=''">
+            and cpahr.auth_period = #{pageElderAuthRecordsDTO.authPeriod}
+        </if>
+        <if test="pageElderAuthRecordsDTO.authStatus != null">
+            and cpahr.ia_auth = #{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  cpahr.mark like concat ('%', #{pageElderAuthRecordsDTO.searchKey}, '%'))
+        </if>
+        order by cpahr.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>
+
+    <select id="getNextIds" resultType="String">
+        select id from com_pension_auth_records where approval_status = 1 and community_id = ${communityId}
+    </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/ComPropertyMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPropertyMapper.xml
new file mode 100644
index 0000000..3a91b41
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPropertyMapper.xml
@@ -0,0 +1,249 @@
+<?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.ComPropertyDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComProperty" id="ComPropertyBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="name" column="name"/>
+        <result property="introduction" column="introduction"/>
+        <result property="contactName" column="contact_name"/>
+        <result property="phone" column="phone"/>
+        <result property="address" column="address"/>
+        <result property="userId" column="user_id"/>
+        <result property="communityId" column="community_id"/>
+        <result property="createTime" column="create_time"/>
+        <result property="areaId" column="area_id"/>
+    </resultMap>
+
+    <select id="pageList" resultType="com.panzhihua.common.model.vos.community.ComPropertyVO">
+        select t.*,t1.account,t1.password,t2.name as areaName,t3.role_id as roleId from com_property t
+        left join sys_user t1 on t.user_id = t1.user_id
+        left join com_mng_village t2 on t.area_id = t2.village_id
+        left join sys_user_role t3 on t.user_id = t3.user_id
+        <where>
+            1=1
+            <if test="commonPage.name !=null and commonPage.name !=''">
+                and t.name like concat(#{commonPage.name},'%')
+            </if>
+            <if test="commonPage.username !=null and commonPage.username !=''">
+                and t.contact_name like concat(#{commonPage.username},'%')
+            </if>
+            <if test="commonPage.phone !=null and commonPage.phone !=''">
+                and t.phone like concat(#{commonPage.phone},'%')
+            </if>
+            <if test="commonPage.paramId !=null">
+                and t.community_id = ${commonPage.paramId}
+            </if>
+            <if test="commonPage.areaId !=null">
+                and t.area_id =#{commonPage.areaId}
+            </if>
+        </where>
+        order by t.create_time desc
+    </select>
+    <select id="getRepairPolylineDate" resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT filed, SUM(num) AS num FROM (
+        SELECT DATE_FORMAT( p1.create_time, '%Y-%m' ) AS filed, COUNT(1) AS num FROM com_property_repair p1
+                LEFT JOIN com_property p2 ON p1.property_id = p2.id
+                WHERE p2.community_id = ${communityId} AND DATE_FORMAT( p1.create_time, '%Y-%m' ) &gt; DATE_FORMAT(date_sub(curdate(), interval 12 month),'%Y-%m') GROUP BY filed
+                        UNION ALL SELECT * FROM
+                        (
+                            SELECT DATE_FORMAT(curdate(),'%Y-%m') AS filed, 0 AS num union
+                            SELECT DATE_FORMAT(date_sub(curdate(), interval 1 month),'%Y-%m') AS filed, 0 AS num union
+                            SELECT DATE_FORMAT(date_sub(curdate(), interval 2 month),'%Y-%m') AS filed, 0 AS num union
+                            SELECT DATE_FORMAT(date_sub(curdate(), interval 3 month),'%Y-%m') AS filed, 0 AS num union
+                            SELECT DATE_FORMAT(date_sub(curdate(), interval 4 month),'%Y-%m') AS filed, 0 AS num union
+                            SELECT DATE_FORMAT(date_sub(curdate(), interval 5 month),'%Y-%m') AS filed, 0 AS num union
+                            SELECT DATE_FORMAT(date_sub(curdate(), interval 6 month),'%Y-%m') AS filed, 0 AS num union
+                            SELECT DATE_FORMAT(date_sub(curdate(), interval 7 month),'%Y-%m') AS filed, 0 AS num union
+                            SELECT DATE_FORMAT(date_sub(curdate(), interval 8 month),'%Y-%m') AS filed, 0 AS num union
+                            SELECT DATE_FORMAT(date_sub(curdate(), interval 9 month),'%Y-%m') AS filed, 0 AS num union
+                            SELECT DATE_FORMAT(date_sub(curdate(), interval 10 month),'%Y-%m') AS filed, 0 AS num union
+                            SELECT DATE_FORMAT(date_sub(curdate(), interval 11 month),'%Y-%m') AS filed, 0 AS num
+                        ) temT
+        ) temp GROUP BY filed ORDER BY filed ASC
+    </select>
+    <select id="getRepairTotalPolylineDate"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT COUNT(1) AS num FROM com_property_repair p1
+        LEFT JOIN com_property p2 ON p1.property_id = p2.id
+        WHERE p2.community_id = ${communityId} AND DATE_FORMAT( p1.create_time, '%Y-%m' ) &lt;= #{date}
+    </select>
+    <select id="getEventAddPolylineData"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT filed, SUM(num) AS num FROM (
+        SELECT DATE_FORMAT( e.create_at, '%Y-%m' ) AS filed, COUNT(e.id) AS num
+        FROM `event` AS e
+        LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+        WHERE e.event_category = 1 AND e.event_type IN ( 1, 2, 3, 5, 6 ) AND e.event_status = 2 AND egd.grid_community_id = ${communityId}
+				AND DATE_FORMAT( e.create_at, '%Y-%m' ) &gt; DATE_FORMAT(date_sub(curdate(), interval 12 month),'%Y-%m') GROUP BY filed
+        UNION ALL SELECT
+				DATE_FORMAT( create_at, '%Y-%m' ) AS filed,  COUNT(id) AS num
+        FROM com_act_easy_photo WHERE community_id = ${communityId} AND `status` IN (1,2,4) AND del_tag = 0 AND classify_id IN (1,3,4,5,6,7,8)
+				AND DATE_FORMAT( create_at, '%Y-%m' ) &gt; DATE_FORMAT(date_sub(curdate(), interval 12 month),'%Y-%m') GROUP BY filed
+				UNION ALL SELECT * FROM
+				(
+					SELECT DATE_FORMAT(curdate(),'%Y-%m') AS filed, 0 AS num union
+					SELECT DATE_FORMAT(date_sub(curdate(), interval 1 month),'%Y-%m') AS filed, 0 AS num union
+					SELECT DATE_FORMAT(date_sub(curdate(), interval 2 month),'%Y-%m') AS filed, 0 AS num union
+					SELECT DATE_FORMAT(date_sub(curdate(), interval 3 month),'%Y-%m') AS filed, 0 AS num union
+					SELECT DATE_FORMAT(date_sub(curdate(), interval 4 month),'%Y-%m') AS filed, 0 AS num union
+					SELECT DATE_FORMAT(date_sub(curdate(), interval 5 month),'%Y-%m') AS filed, 0 AS num union
+					SELECT DATE_FORMAT(date_sub(curdate(), interval 6 month),'%Y-%m') AS filed, 0 AS num union
+					SELECT DATE_FORMAT(date_sub(curdate(), interval 7 month),'%Y-%m') AS filed, 0 AS num union
+					SELECT DATE_FORMAT(date_sub(curdate(), interval 8 month),'%Y-%m') AS filed, 0 AS num union
+					SELECT DATE_FORMAT(date_sub(curdate(), interval 9 month),'%Y-%m') AS filed, 0 AS num union
+					SELECT DATE_FORMAT(date_sub(curdate(), interval 10 month),'%Y-%m') AS filed, 0 AS num union
+					SELECT DATE_FORMAT(date_sub(curdate(), interval 11 month),'%Y-%m') AS filed, 0 AS num
+				) temT
+        ) temp GROUP BY filed ORDER BY filed ASC
+    </select>
+    <select id="getEventTotalPolylineDate"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT SUM(num) AS num FROM (
+        SELECT COUNT(e.id) AS num
+        FROM `event` AS e
+        LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+        WHERE e.event_category = 1 AND e.event_type IN ( 1, 2, 3, 5, 6 ) AND e.event_status = 2 AND egd.grid_community_id = ${communityId}
+				AND DATE_FORMAT( e.create_at, '%Y-%m' ) &lt;= #{date}
+        UNION ALL SELECT
+				COUNT(id) AS num
+        FROM com_act_easy_photo WHERE community_id = ${communityId} AND `status` IN (1,2,4) AND del_tag = 0 AND classify_id IN (1,3,4,5,6,7,8) AND DATE_FORMAT( create_at, '%Y-%m' ) &lt;= #{date}
+        ) temp
+    </select>
+    <select id="getAlarmBaseData"
+            resultType="com.panzhihua.common.model.vos.community.bigscreen.BigScreenAlarmStatisticsInfo">
+        SELECT
+        (SELECT COUNT(id) FROM com_property_equipment WHERE community_id = #{communityId} AND `type` = 2) AS abnormalAlarmTotal,
+        (SELECT COUNT(id) FROM com_property_equipment WHERE community_id = #{communityId} AND `type` = 1) AS oneKeyAlarmTotal,
+        (SELECT COUNT(t1.id) FROM com_property_alarm t1 LEFT JOIN com_property_equipment t2 ON t1.serial_no = t2.serial_no
+        WHERE t2.community_id = #{communityId} AND t2.`type` = 2) AS abnormalTotal,
+        (SELECT COUNT(t1.id) FROM com_property_alarm t1 LEFT JOIN com_property_equipment t2 ON t1.serial_no = t2.serial_no
+        WHERE t2.community_id = #{communityId} AND t2.`type` = 1) AS oneKeyTotal,
+        (SELECT COUNT(t1.id) FROM com_property_alarm t1 LEFT JOIN com_property_equipment t2 ON t1.serial_no = t2.serial_no
+        WHERE t2.community_id = #{communityId} AND t1.`status` = 0 AND t1.`type` = 2) AS pendingAbnormalTotal,
+        (SELECT COUNT(t1.id) FROM com_property_alarm t1 LEFT JOIN com_property_equipment t2 ON t1.serial_no = t2.serial_no
+        WHERE t2.community_id = #{communityId} AND t1.`status` = 1 AND t1.`type` = 2) AS completeAbnormalTotal,
+        (SELECT COUNT(t1.id) FROM com_property_alarm t1 LEFT JOIN com_property_equipment t2 ON t1.serial_no = t2.serial_no
+        WHERE t2.community_id = #{communityId} AND t1.`status` = 0 AND t1.`type` = 1 and t1.serial_no not like '70%') AS pendingServiceTotal,
+        (SELECT COUNT(t1.id) FROM com_property_alarm t1 LEFT JOIN com_property_equipment t2 ON t1.serial_no = t2.serial_no
+        WHERE t2.community_id = #{communityId} AND t1.`status` = 1 AND t1.`type` = 1 and t1.serial_no not like '70%') AS completeServiceTotal
+    </select>
+    <select id="retrieveAbnormalAddPolylineData"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT filed, SUM(num) AS num FROM (
+            SELECT DATE_FORMAT( t.create_time, '%Y-%m' ) AS filed, COUNT(1) AS num
+            FROM com_property_alarm t
+            LEFT JOIN com_property_equipment t1 ON t.serial_no = t1.serial_no
+            WHERE t1.community_id = #{communityId} AND t1.`type` = 2 AND DATE_FORMAT( t.create_time, '%Y-%m' ) &gt; DATE_FORMAT(date_sub(curdate(), interval 12 month),'%Y-%m'
+            ) GROUP BY filed
+            UNION ALL SELECT * FROM
+            (
+                SELECT DATE_FORMAT(curdate(),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 1 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 2 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 3 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 4 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 5 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 6 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 7 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 8 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 9 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 10 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 11 month),'%Y-%m') AS filed, 0 AS num
+            ) temT
+        ) temp GROUP BY filed ORDER BY filed ASC
+    </select>
+    <select id="retrieveAbnormalTotalPolylineData"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT COUNT( 1 ) AS num
+        FROM com_property_alarm t
+        LEFT JOIN com_property_equipment t1 ON t.serial_no = t1.serial_no
+        WHERE t1.community_id = #{communityId} AND t1.`type` = 2 AND DATE_FORMAT( t.create_time, '%Y-%m' ) &lt;= #{date}
+    </select>
+    <select id="retrieveServiceAddPolylineData"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT filed, SUM(num) AS num FROM (
+            SELECT DATE_FORMAT( t.create_time, '%Y-%m' ) AS filed, COUNT(1) AS num
+            FROM com_property_alarm t
+            LEFT JOIN com_property_equipment t1 ON t.serial_no = t1.serial_no
+            WHERE t1.community_id = #{communityId} AND t1.`type` = 1 AND DATE_FORMAT( t.create_time, '%Y-%m' ) &gt; DATE_FORMAT(date_sub(curdate(), interval 12 month),'%Y-%m'
+            ) GROUP BY filed
+            UNION ALL SELECT * FROM
+            (
+                SELECT DATE_FORMAT(curdate(),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 1 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 2 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 3 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 4 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 5 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 6 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 7 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 8 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 9 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 10 month),'%Y-%m') AS filed, 0 AS num union
+                SELECT DATE_FORMAT(date_sub(curdate(), interval 11 month),'%Y-%m') AS filed, 0 AS num
+            ) temT
+        ) temp GROUP BY filed ORDER BY filed ASC
+    </select>
+    <select id="retrieveServiceTotalPolylineData"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT COUNT( 1 ) AS num
+        FROM com_property_alarm t
+        LEFT JOIN com_property_equipment t1 ON t.serial_no = t1.serial_no
+        WHERE t1.community_id = #{communityId} AND t1.`type` = 1 AND DATE_FORMAT( t.create_time, '%Y-%m' ) &lt;= #{date}
+    </select>
+    <select id="getAbnormalList" resultType="com.panzhihua.common.model.vos.property.ComPropertyAlarmVO">
+        SELECT
+        t.id,
+        t.create_time,
+        t1.phone,
+        t1.username AS name,
+        t1.position
+        FROM
+        com_property_alarm t
+        LEFT JOIN com_property_equipment t1 ON t.serial_no = t1.serial_no
+        WHERE t1.community_id = #{communityId} AND t.`type` = #{type} AND t.`status` = #{status} and t.serial_no not like '70%'
+        ORDER BY t.create_time DESC
+    </select>
+    <select id="getAlarmPointMapData"
+            resultType="com.panzhihua.common.model.vos.property.ComPropertyEquipmentVO">
+        SELECT
+            id,
+            phone,
+            username,
+            latitude,
+            longitude,
+            `type`,
+            `position`,
+            `type` AS equipmentStatus
+        FROM com_property_equipment
+        WHERE serial_no IN(
+            SELECT DISTINCT(t1.serial_no)
+            FROM com_property_alarm t1
+            LEFT JOIN com_property_equipment t2 ON t1.serial_no = t2.serial_no
+            WHERE t2.community_id = #{communityId} AND t1.`status` = 0 and t1.serial_no not like '70%'
+        )
+        UNION ALL
+        SELECT
+            id,
+            phone,
+            username,
+            latitude,
+            longitude,
+            `type`,
+            `position`,
+            3 AS equipmentStatus
+        FROM com_property_equipment
+            WHERE community_id = #{communityId} AND serial_no NOT IN(
+            SELECT DISTINCT(t1.serial_no)
+            FROM com_property_alarm t1
+            LEFT JOIN com_property_equipment t2 ON t1.serial_no = t2.serial_no
+            WHERE t2.community_id = #{communityId} AND t1.`status` = 0
+        ) and serial_no not like '70%'
+    </select>
+
+    <select id="noticeList" resultType="com.panzhihua.common.model.vos.community.ComActAnnouncementVO">
+        select * from com_act_announcement where property_id=#{propertyId}
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPropertyPublicityMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPropertyPublicityMapper.xml
new file mode 100644
index 0000000..e48f37d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPropertyPublicityMapper.xml
@@ -0,0 +1,69 @@
+<?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.ComPropertyPublicityDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComPropertyPublicityDO">
+                <id column="id" property="id" />
+                <id column="title" property="title" />
+                <id column="publicity_type" property="publicityType" />
+                <id column="other" property="other" />
+                <id column="cover" property="cover" />
+                <id column="content_type" property="contentType" />
+                <id column="article_url" property="articleUrl" />
+                <id column="diy_content" property="diyContent" />
+                <id column="property_id" property="propertyId" />
+                <id column="community_id" property="communityId" />
+                <id column="view_num" property="viewNum" />
+                <id column="created_at" property="createdAt" />
+                <id column="updated_at" property="updatedAt" />
+    </resultMap>
+    <update id="incrView">
+        UPDATE com_property_publicity SET view_num = view_num + 1 WHERE id = #{id}
+    </update>
+    <select id="retrieveUserMenuList" resultType="java.lang.String">
+        SELECT m.menu_name FROM sys_user u
+        INNER JOIN sys_user_role ur ON u.user_id = ur.user_id
+        LEFT JOIN sys_role r ON ur.role_id = r.role_id
+        LEFT JOIN sys_role_menu rm ON r.role_id = rm.role_id
+        LEFT JOIN sys_menu m ON rm.menu_id = m.menu_id
+        WHERE u.user_id = #{userId}
+    </select>
+    <select id="pageComPropertyPublicity"
+            resultType="com.panzhihua.common.model.vos.community.ComPropertyPublicityVO">
+        SELECT pp.*, p.`name` AS propertyName, v.`name` AS villageName
+        FROM com_property_publicity pp
+        INNER JOIN com_property p ON pp.property_id = p.id
+        LEFT JOIN com_mng_village v ON p.area_id = v.village_id
+        WHERE pp.community_id = ${pageComPropertyPublicityDTO.communityId}
+        <if test="pageComPropertyPublicityDTO.propertyId != null">
+            AND pp.property_id = #{pageComPropertyPublicityDTO.propertyId}
+        </if>
+        <if test="pageComPropertyPublicityDTO.villageId != null">
+            AND p.area_id = #{pageComPropertyPublicityDTO.villageId}
+        </if>
+        <if test="pageComPropertyPublicityDTO.publicityType != null">
+            AND pp.publicity_type = #{pageComPropertyPublicityDTO.publicityType}
+        </if>
+        <if test="pageComPropertyPublicityDTO.keyword != null and pageComPropertyPublicityDTO.keyword != &quot;&quot;">
+            AND pp.title LIKE CONCAT(#{pageComPropertyPublicityDTO.keyword}, '%')
+        </if>
+        ORDER BY pp.id DESC
+    </select>
+    <select id="selectDetail" resultType="com.panzhihua.common.model.vos.community.ComPropertyPublicityVO">
+        SELECT pp.*, p.`name` AS propertyName, v.`name` AS villageName FROM com_property_publicity pp
+        INNER JOIN com_property p ON pp.property_id = p.id
+        LEFT JOIN com_mng_village v ON p.area_id = v.village_id
+        WHERE pp.id = #{id}
+    </select>
+    <select id="pageComPropertyPublicityApplet"
+            resultType="com.panzhihua.common.model.vos.community.ComPropertyPublicityVO">
+        SELECT pp.*, p.`name` AS propertyName, v.`name` AS villageName FROM com_property_publicity pp
+        INNER JOIN com_property p ON pp.property_id = p.id
+        LEFT JOIN com_mng_village v ON p.area_id = v.village_id
+        WHERE pp.community_id = ${pageComPropertyPublicityDTO.communityId}
+        <if test="pageComPropertyPublicityDTO.villageId != null">
+            AND p.area_id = #{pageComPropertyPublicityDTO.villageId}
+        </if>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPropertyWorkerMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPropertyWorkerMapper.xml
new file mode 100644
index 0000000..bc07e79
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComPropertyWorkerMapper.xml
@@ -0,0 +1,50 @@
+<?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.ComPropertyWorkerDAO">
+
+    <resultMap type="com.panzhihua.service_community.entity.ComPropertyWorker" id="ComPropertyWorkerMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="phone" column="phone" jdbcType="VARCHAR"/>
+        <result property="position" column="position" jdbcType="VARCHAR"/>
+        <result property="image" column="image" jdbcType="VARCHAR"/>
+        <result property="refId" column="ref_id" jdbcType="INTEGER"/>
+        <result property="createdAt" column="created_at" jdbcType="TIMESTAMP"/>
+        <result property="updatedAt" column="updated_at" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+    <!-- 批量插入 -->
+    <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into huacheng_smart_life.com_property_worker(name, phone, position, image, ref_id, created_at,
+        updated_at)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.name}, #{entity.phone}, #{entity.position}, #{entity.image}, #{entity.refId}, #{entity.createdAt},
+            #{entity.updatedAt})
+        </foreach>
+    </insert>
+    <!-- 批量插入或按主键更新 -->
+    <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into huacheng_smart_life.com_property_worker(name, phone, position, image, ref_id, created_at,
+        updated_at)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.name}, #{entity.phone}, #{entity.position}, #{entity.image}, #{entity.refId}, #{entity.createdAt},
+            #{entity.updatedAt})
+        </foreach>
+        on duplicate key update
+        name = values(name) , phone = values(phone) , position = values(position) , image = values(image) , ref_id =
+        values(ref_id) , created_at = values(created_at) , updated_at = values(updated_at)
+    </insert>
+    <select id="pagePropertyWorker" resultType="com.panzhihua.common.model.vos.property.ComPropertyWorkerVO">
+        SELECT id, `name`, phone, `position`, image, ref_id
+        FROM com_property_worker
+        WHERE ref_id = #{pagePropertyWorkerDTO.refId}
+        <if test="pagePropertyWorkerDTO.keyword != null and pagePropertyWorkerDTO.keyword != &quot;&quot;">
+            AND (`name` LIKE CONCAT('%', #{pagePropertyWorkerDTO.keyword})
+            OR phone LIKE CONCAT('%', #{pagePropertyWorkerDTO.keyword}))
+        </if>
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComRehabilitationPopulationMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComRehabilitationPopulationMapper.xml
new file mode 100644
index 0000000..59a5ca4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComRehabilitationPopulationMapper.xml
@@ -0,0 +1,46 @@
+<?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.ComRehabilitationPopulationDAO">
+
+        <!-- 通用查询映射结果 -->
+        <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComRehabilitationPopulationDO">
+                    <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="name" property="name" />
+                    <result column="card_no" property="cardNo" />
+                    <result column="phone" property="phone" />
+                    <result column="patient_relation" property="patientRelation" />
+                    <result column="rehab_reason_and_type" property="rehabReasonAndType" />
+                    <result column="is_rehab" property="isRehab" />
+                    <result column="is_recidivist" property="isRecidivist" />
+                    <result column="original_term" property="originalTerm" />
+                    <result column="sentence_begin" property="sentenceBegin" />
+                    <result column="original_charge" property="originalCharge" />
+                    <result column="sentence_end" property="sentenceEnd" />
+                    <result column="sentence_place" property="sentencePlace" />
+                    <result column="risk_assessment" property="riskAssessment" />
+                    <result column="join_date" property="joinDate" />
+                    <result column="join_situation" property="joinSituation" />
+                    <result column="is_again_crime" property="isAgainCrime" />
+                    <result column="again_crime_name" property="againCrimeName" />
+                    <result column="place_situation" property="placeSituation" />
+                    <result column="place_date" property="placeDate" />
+                    <result column="not_place_reason" property="notPlaceReason" />
+                    <result column="help_begin" property="helpBegin" />
+                    <result column="help_end" property="helpEnd" />
+                    <result column="help_situation" property="helpSituation" />
+                    <result column="remark" property="remark" />
+                    <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, name, card_no, phone, patient_relation, rehab_reason_and_type, is_rehab, is_recidivist, original_term, sentence_begin, original_charge, sentence_end, sentence_place, risk_assessment, join_date, join_situation, is_again_crime, again_crime_name, place_situation, place_date, not_place_reason, help_begin, help_end, help_situation, remark, create_at, create_by, update_at, update_by
+    </sql>
+
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSanshuoEventDao.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSanshuoEventDao.xml
new file mode 100644
index 0000000..cc72598
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSanshuoEventDao.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.ComSanshuoEventDao">
+
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.entity.ComSanshuoEvent">
+            <id property="id" column="id" jdbcType="INTEGER"/>
+            <result property="name" column="name" jdbcType="VARCHAR"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+            <result property="status" column="status" jdbcType="INTEGER"/>
+            <result property="delFlag" column="del_flag" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+       select id,name,create_time,
+        update_time,status,del_flag from com_sanshuo_event
+    </sql>
+    <select id="pageEvent" resultType="com.panzhihua.service_community.entity.ComSanshuoEvent">
+        <include refid="Base_Column_List"/>
+        where name like concat('%',#{comSanshuoEventDTO.name},'%')
+    </select>
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSanshuoExpertDao.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSanshuoExpertDao.xml
new file mode 100644
index 0000000..3681765
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSanshuoExpertDao.xml
@@ -0,0 +1,186 @@
+<?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.ComSanshuoExpertDao">
+
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.entity.ComSanshuoExpert">
+            <id property="id" column="id" jdbcType="BIGINT"/>
+            <result property="level" column="level" jdbcType="TINYINT"/>
+            <result property="communityId" column="community_id" jdbcType="BIGINT"/>
+            <result property="workTime" column="work_time" jdbcType="VARCHAR"/>
+            <result property="goodAt" column="good_at" jdbcType="VARCHAR"/>
+            <result property="name" column="name" jdbcType="VARCHAR"/>
+            <result property="avatar" column="avatar" jdbcType="VARCHAR"/>
+            <result property="phone" column="phone" jdbcType="VARCHAR"/>
+            <result property="account" column="account" jdbcType="VARCHAR"/>
+            <result property="password" column="password" jdbcType="VARCHAR"/>
+            <result property="status" column="status" jdbcType="VARCHAR"/>
+            <result property="delFlag" column="del_flag" jdbcType="VARCHAR"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="createBy" column="create_by" jdbcType="VARCHAR"/>
+            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+            <result property="introduction" column="introduction" jdbcType="VARCHAR"/>
+            <result property="streetId" column="street_id" jdbcType="BIGINT"/>
+            <result property="industryCenterId" column="industry_center_id" jdbcType="VARCHAR"/>
+            <result property="param1" column="param1" jdbcType="VARCHAR"/>
+            <result property="unit" column="unit" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        select id,level,community_id,
+        work_time,good_at,name,
+        avatar,phone,account,
+        password,status,del_flag,
+        create_time,create_by,update_time,
+        introduction,street_id,industry_center_id,
+        unit_id,unit from com_sanshuo_expert
+    </sql>
+    <select id="expertShow" resultType="com.panzhihua.common.model.vos.sanshuo.ExpertShowVO">
+        select  count(id) as 'count',level from com_sanshuo_expert where status=1 and del_flag=1 and app_id=#{appId} group by level
+    </select>
+    <select id="expertPage"  resultType="com.panzhihua.common.model.vos.sanshuo.ComSanshuoExpertVO">
+        select id,level,community_id,
+        work_time,good_at,name,
+        avatar,phone,account,
+        password,status,del_flag,
+        create_time,create_by,update_time,
+        introduction,street_id,industry_center_id,
+        unit_id,unit from com_sanshuo_expert
+        where del_flag=1
+        AND app_id=#{appId}
+            <if test="keyWord != null and keyWord != ''">
+                AND unit like concat('%',#{keyWord},'%')
+                OR name like concat('%',#{keyWord},'%')
+                OR phone like concat('%',#{keyWord},'%')
+            </if>
+            <if test="level != null ">
+            AND level=#{level}
+                <if test="level == 2">
+                       <if test="id != null">
+                           AND industry_center_id=#{id}
+                       </if>
+                </if>
+                <if test="level == 3">
+                    <if test="id != null">
+                    AND street_id=#{id}
+                    </if>
+                </if>
+                <if test="level == 4">
+                    <if test="id != null">
+                    AND community_id=#{id}
+                    </if>
+                </if>
+            </if>
+           <if test="level == null">
+               <if test="range != null and range != ''">
+                   <if test="range == 3">
+                       AND street_id=#{id}
+                   </if>
+                   <if test="range == 4">
+                       AND community_id=#{id}
+                   </if>
+                   <if test="range == 2">
+                       AND industry_center_id=#{id}
+                   </if>
+                   <if test="range == 1">
+                       AND level=1
+                   </if>
+               </if>
+           </if>
+    </select>
+    <select id="selectExpertIndustry" resultType="com.panzhihua.common.model.vos.sanshuo.ExpertShowVO">
+        select  count(t.id) as 'count',t1.name,t1.id,t.level from com_sanshuo_expert t
+        left join com_sanshuo_industry_center t1 on t.industry_center_id=t1.id
+        where t.level=2 and t.status=1 and t.del_flag=1
+        group by t1.name
+    </select>
+
+
+    <select id="selectExpertStreet" resultType="com.panzhihua.common.model.vos.sanshuo.ExpertShowVO">
+        select  count(t.id) as 'count',t1.name,t1.street_id as id,t.level from com_sanshuo_expert t
+        left join com_street t1 on t.street_id=t1.street_id
+        where t.level=3 and t.status=1 and t.del_flag=1
+        group by t1.name
+    </select>
+    <select id="selectExpertCommunity" resultType="com.panzhihua.common.model.vos.sanshuo.ExpertShowVO">
+        select  count(t.id) as 'count',t1.name,t1.community_id as id,t.level from com_sanshuo_expert t
+        left join com_act t1 on t.community_id=t1.community_id
+        where t.level=4 and t.status=1 and t.del_flag=1 and t.app_id=#{appId}
+        group by t1.name
+    </select>
+    <select id="selectExpertList" resultType="com.panzhihua.service_community.entity.ComSanshuoExpert">
+        select t.*,count (select id from com_sanshuo_event_info where specialist_id = t.id )from com_sanshuo_expert as t
+        left join com_sanshuo_event_info t1 on t.id=t1.specialist_id
+        where t.status=1 and t.del_flag=1
+    </select>
+    <select id="selectExpertByNameOrPhoneOrAccount"
+            resultType="com.panzhihua.service_community.entity.ComSanshuoExpert">
+        select * from com_sanshuo_expert where name=#{dto.name} or phone=#{dto.phone} or account=#{dto.account}
+        and status=1 and del_flag=1
+    </select>
+    <select id="selectExpertCount" resultType="Integer">
+        select count(id) from com_sanshuo_expert
+        where del_flag=1 and status=1 and app_id='wx0cef797390444b75'
+        <if test="dto.type != null">
+            <if test="dto.type == 2">
+                AND level=2
+                <if test="dto.id != null">
+                    AND industry_center_id=#{dto.id}
+                </if>
+            </if>
+            <if test="dto.type == 3">
+                AND level=3
+                <if test="dto.id != null">
+                    AND street_id=#{dto.id}
+                </if>
+            </if>
+            <if test="dto.type == 4">
+                AND level=4
+                <if test="dto.id != null">
+                    AND community_id=#{dto.id}
+                </if>
+            </if>
+            <if test="dto.type == 1">
+                AND level=1
+            </if>
+        </if>
+    </select>
+    <select id="selectExpertVoList" resultType="Integer">
+        select count(id) from com_sanshuo_expert where level=1
+    </select>
+    <select id="expertList" resultType="com.panzhihua.common.model.vos.sanshuo.ComSanshuoExpertVO">
+        select id,level,community_id,
+        work_time,good_at,name,
+        avatar,phone,account,
+        password,status,del_flag,
+        create_time,create_by,update_time,
+        introduction,street_id,industry_center_id,
+        unit_id,unit from com_sanshuo_expert
+        where del_flag=1
+        AND app_id=#{appId}
+        <if test="keyWord != null and keyWord != ''">
+            AND name like concat('%',#{keyWord},'%') or phone like concat('%',#{keyWord},'%') or unit like concat('%',#{keyWord},'%')
+        </if>
+        <if test="level != null">
+            <if test="level == 2">
+                AND level = 2
+                <if test="id != null">
+                    AND industry_center_id=#{id}
+                </if>
+            </if>
+            <if test="level == 3">
+                AND level = 3
+                <if test="id != null">
+                    AND street_id=#{id}
+                </if>
+            </if>
+            <if test="level == 4">
+                AND level = 4
+                <if test="id != null">
+                    AND community_id=#{id}
+                </if>
+            </if>
+        </if>
+    </select>
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSanshuoIndustryCenterDao.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSanshuoIndustryCenterDao.xml
new file mode 100644
index 0000000..ea9759b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSanshuoIndustryCenterDao.xml
@@ -0,0 +1,49 @@
+<?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.ComSanshuoIndustryCenterDao">
+
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.entity.ComSanshuoIndustryCenter">
+            <id property="id" column="id" jdbcType="INTEGER"/>
+            <result property="name" column="name" jdbcType="VARCHAR"/>
+            <result property="phone" column="phone" jdbcType="VARCHAR"/>
+            <result property="account" column="account" jdbcType="VARCHAR"/>
+            <result property="createBy" column="create_by" jdbcType="VARCHAR"/>
+            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
+            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
+            <result property="status" column="status" jdbcType="TINYINT"/>
+            <result property="delFlag" column="del_flag" jdbcType="TINYINT"/>
+            <result property="streetId" column="street_id" jdbcType="BIGINT"/>
+            <result property="communityId" column="community_id" jdbcType="BIGINT"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        select id,name,phone,
+        account,create_by,create_time,
+        update_time,status,del_flag,
+        street_id,community_id from com_sanshuo_industry_center
+    </sql>
+    <select id="pageIndustryCenter"
+            resultType="com.panzhihua.common.model.vos.sanshuo.ComSanShuoIndustryCenterVO">
+        <include refid="Base_Column_List"/>
+            where del_flag=1
+            <if test="keyWord != null and keyWord != ''">
+              AND  name like concat('%',#{keyWord},'%')
+               OR phone like concat('%',#{keyWord},'%')
+            </if>
+
+    </select>
+    <select id="indstryList" resultType="com.panzhihua.common.model.vos.sanshuo.ExpertRangeVO">
+        select id,name from com_sanshuo_industry_center where status=1 and del_flag=1
+    </select>
+    <select id="streetList" resultType="com.panzhihua.common.model.vos.sanshuo.ExpertRangeVO">
+        select street_id as id,name from com_street where app_id='wx0cef797390444b75'
+        and street_id in (1552661132500668416,1552661143879815168,1552661135428292608,1552661138704044032,1552661136451702784,1552661139563876352)
+    </select>
+    <select id="communityList" resultType="com.panzhihua.common.model.vos.sanshuo.ExpertRangeVO">
+        select community_id as id,name from com_act
+        where app_id='wx0cef797390444b75' and street_id in (1552661132500668416,1552661143879815168,1552661135428292608,1552661138704044032,1552661136451702784,1552661139563876352)
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComScreenMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComScreenMapper.xml
new file mode 100644
index 0000000..f61c225
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComScreenMapper.xml
@@ -0,0 +1,104 @@
+<?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.ComScreenDao">
+    <select id="autonomyDynamic" resultType="com.panzhihua.common.model.vos.puda.DynamicVO">
+        select community_id,
+        (select count(id) from com_act_micro_wish where community_id=#{communityId}) as microWish,
+        (select count(id) from com_act_easy_photo where del_tag=0 and status=5 and  community_id=#{communityId}) as easyPhoto,
+        (select count(id) from com_act_announcement where community_id=#{communityId}) as announcement,
+        (select count(id) from com_act_activity where community_id=#{communityId}) as communityInfo,
+        (select count(id) from com_act_neighbor_circle  where is_del=2 and belong_type=2 and solve_status in (3,4) and community_id=#{communityId}) as questions,
+        (select count(id) from com_act_neighbor_circle  where is_del=2 and belong_type=3 and solve_status in (3,4) and community_id=#{communityId}) as demands
+        from
+        com_act
+        where community_id=#{communityId}
+    </select>
+    <select id="propertyData" resultType="com.panzhihua.common.model.vos.puda.PropertyVO">
+        select cp.name as propertyName,(select count(id) from com_pb_service_team cpst where cp.id=cpst.property_id)  as partyMembers
+		from com_property cp
+		where cp.community_id=#{communityId}
+    </select>
+    <select id="partyData" resultType="com.panzhihua.common.model.vos.puda.PartyDataVO">
+        select id,
+        (select count(id) from com_sanshuo_expert where community_id=#{communityId}) as commitee,
+        (select count(id) from com_pb_check_unit where community_id=#{communityId}) as unit,
+        (select count(id) from com_pb_member where community_id=#{communityId}) as partyMembers,
+        (select count(id) from com_pb_dyn where community_id=#{communityId}) as partyActivity
+        from com_pb_member where community_id=#{communityId}
+        limit 1
+    </select>
+    <select id="yard" resultType="com.panzhihua.common.model.vos.puda.YardVO">
+        select
+        (select count(community_id) from com_mng_village where community_id=#{communityId}) as count,
+        (select count(community_id) from com_mng_village where community_id=#{communityId} and type=1) as cityYard,
+        (select count(community_id) from com_mng_village where community_id=#{communityId} and type=2) as countryYard
+        from com_mng_village limit 1
+    </select>
+    <select id="basicData" resultType="com.panzhihua.common.model.vos.puda.BasicDataVO">
+        SELECT count( id ) AS buildings,
+        ( SELECT count( id ) FROM com_mng_population_community_tags WHERE community_id = cmb.act_id ) AS people,
+        ( SELECT count( id ) FROM com_pb_check_unit WHERE community_id = cmb.act_id ) AS people
+        FROM
+            com_mng_building AS cmb
+        WHERE
+            cmb.act_id = #{communityId}
+    </select>
+
+    <select id="specialPeople" resultType="com.panzhihua.common.model.vos.puda.SpecialPeopleVO">
+        select count(id) as count,label from com_mng_population_community_tags
+        where community_id=#{communityId}
+        GROUP BY label
+        having label &lt;> ''
+    </select>
+    <select id="peopleInfoAdmin"
+            resultType="com.panzhihua.common.model.vos.community.building.admin.PageBuildingListAdminVo">
+        SELECT
+        cmb.id,
+        cmv.village_id,
+        cmv.alley,
+        cmb.`name`,
+        cmv.`name` AS villageName,
+        cmv.house_num as doorNum,
+        (select count(distinct unit_no) from com_mng_population_house where village_id = cmb.village_id AND floor = cmb.`name`) as unit_total,
+        (select max(CAST(house_no as SIGNED)) from com_mng_population_house where village_id = cmb.village_id AND floor = cmb.`name` AND `unit_no` is not null and house_no is not null) as buildFloorSum,
+        (select count(id) from com_mng_population_house where village_id = cmb.village_id and floor = cmb.`name` ) as houseNum,
+        (select count(id) from com_mng_population where village_id = cmb.village_id and floor = cmb.`name`) as populationNum
+        FROM
+        com_mng_building AS cmb
+        inner JOIN com_mng_village AS cmv ON cmv.village_id = cmb.village_id
+        <where>
+            <if test="communityId != null">
+                and cmb.act_id = #{pageBuildingListDto.communityId}
+            </if>
+        </where>
+        order by cmb.id desc
+    </select>
+    <select id="ageRange" resultType="com.panzhihua.common.model.vos.puda.CitizenInfoVO">
+        SELECT count(act_id) as total,
+        (SELECT count(act_id) FROM com_mng_population WHERE  act_id=#{vo.communityId} and sex='1') AS maleNum,
+        (SELECT count(act_id) FROM com_mng_population WHERE  act_id=#{vo.communityId} and sex='2') AS femaleNum,
+        (SELECT count(act_id) FROM com_mng_population WHERE  act_id=#{vo.communityId} and birthday BETWEEN #{vo.offset16} and #{vo.now} ) AS count1,
+        (SELECT count(act_id) FROM com_mng_population WHERE  act_id=#{vo.communityId} and birthday BETWEEN #{vo.offset27} and #{vo.offset16}) AS count2,
+        (SELECT count(act_id) FROM com_mng_population WHERE  act_id=#{vo.communityId} and birthday BETWEEN #{vo.offset35} and #{vo.offset27}) AS count3,
+        (SELECT count(act_id) FROM com_mng_population WHERE  act_id=#{vo.communityId} and birthday BETWEEN #{vo.offset45} and #{vo.offset35}) AS count4,
+        (SELECT count(act_id) FROM com_mng_population WHERE  act_id=#{vo.communityId} and birthday BETWEEN #{vo.offset55} and #{vo.offset45}) AS count5,
+        (SELECT count(act_id) FROM com_mng_population WHERE  act_id=#{vo.communityId} and birthday &lt; #{vo.offset55}) AS count6
+        FROM com_mng_population
+        WHERE act_id=#{vo.communityId}
+    </select>
+    <select id="buildingListHeaderStatisticsAdmin" resultType="com.panzhihua.common.model.vos.community.building.admin.BuildingListHeaderStatisticsAdminVo">
+        SELECT count( id ) AS buildNum,( SELECT count( id ) FROM com_mng_population_house WHERE community_id = cmb.act_id ) AS houseNum,
+        ( SELECT count( id ) FROM com_mng_population_community_tags WHERE community_id = cmb.act_id ) AS populationNum
+        FROM
+            com_mng_building AS cmb
+        WHERE
+            cmb.act_id = #{communityId}
+    </select>
+    <select id="assetAnalysis" resultType="java.lang.Integer">
+        select count(id)
+        from com_mng_real_assets
+        where community_id=#{communityId}
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSentencePopulationMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSentencePopulationMapper.xml
new file mode 100644
index 0000000..772c421
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSentencePopulationMapper.xml
@@ -0,0 +1,30 @@
+<?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.ComSentencePopulationDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComSentencePopulationDO">
+                <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="name" property="name" />
+                <result column="card_no" property="cardNo" />
+                <result column="phone" property="phone" />
+                <result column="spouse" property="spouse" />
+                <result column="sentence_begin" property="sentenceBegin" />
+                <result column="sentence_end" property="sentenceEnd" />
+                <result column="charge" property="charge" />
+                <result column="remark" property="remark" />
+                <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, name, card_no, phone, spouse, sentence_begin, sentence_end, charge, remark, create_at, create_by, update_at, update_by
+    </sql>
+
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerEvaluateDAO.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerEvaluateDAO.xml
new file mode 100644
index 0000000..883c54e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerEvaluateDAO.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.ComShopFlowerEvaluateDAO">
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComShopFlowerEvaluateDO">
+        <!--@mbg.generated-->
+        <!--@Table com_shop_flower_evaluate-->
+        <id column="id" jdbcType="BIGINT" property="id"/>
+        <result column="order_no" jdbcType="VARCHAR" property="orderNo"/>
+        <result column="goods_id" jdbcType="BIGINT" property="goodsId"/>
+        <result column="user_id" jdbcType="BIGINT" property="userId"/>
+        <result column="evaluate_time" jdbcType="TIMESTAMP" property="evaluateTime"/>
+        <result column="evaluate_type" jdbcType="TINYINT" property="evaluateType"/>
+        <result column="evaluate_content" jdbcType="VARCHAR" property="evaluateContent"/>
+        <result column="evaluate_pic" jdbcType="VARCHAR" property="evaluatePic"/>
+        <result column="create_at" jdbcType="TIMESTAMP" property="createAt"/>
+    </resultMap>
+    <sql id="Base_Column_List">
+        <!--@mbg.generated-->
+        id, order_no, goods_id, user_id, evaluate_time, evaluate_type, evaluate_content,
+        evaluate_pic, create_at
+    </sql>
+    <select id="pageEvaluate" resultType="com.panzhihua.common.model.vos.shop.ComShopFlowerEvaluateVO">
+        select  e.*,u.nick_name,u.image_url FROM com_shop_flower_evaluate e left join sys_user u on e.user_id = u.user_id
+        where 1=1
+        <if test="pageComShopFlowerEvaluateDTO.goodsId != null">
+            and goods_id = #{pageComShopFlowerEvaluateDTO.goodsId}
+        </if>
+        <if test="pageComShopFlowerEvaluateDTO.orderId != null">
+            and order_no = #{pageComShopFlowerEvaluateDTO.orderId}
+        </if>
+        <if test="pageComShopFlowerEvaluateDTO.userId != null">
+            and user_id = #{pageComShopFlowerEvaluateDTO.userId}
+        </if>
+        <if test="pageComShopFlowerEvaluateDTO.evaluateType != null">
+            and evaluate_type = #{pageComShopFlowerEvaluateDTO.evaluateType}
+        </if>
+    </select>
+    <select id="selectListLimit" resultType="com.panzhihua.common.model.vos.shop.ComShopFlowerEvaluateVO">
+        SELECT  e.*,u.nick_name,u.image_url FROM com_shop_flower_evaluate e left join sys_user u on e.user_id = u.user_id WHERE e.goods_id = #{goodsId} ORDER BY create_at LIMIT 3
+    </select>
+    <select id="selectByOrderNo" resultType="com.panzhihua.common.model.vos.shop.ComShopFlowerEvaluateVO">
+        SELECT e.*,u.nick_name,u.image_url FROM com_shop_flower_evaluate e left join sys_user u on e.user_id = u.user_id WHERE e.order_no = #{orderNo}
+    </select>
+    <select id="statisticsScore" resultType="java.math.BigDecimal">
+        SELECT (sum(e.evaluate_type)/count(1)) AS pf FROM `com_shop_flower_evaluate` e LEFT JOIN com_shop_flower_goods g ON e.goods_id = g.id WHERE g.store_id = #{storeId} GROUP BY g.store_id
+    </select>
+    <select id="selectCountByGoodsId" resultType="java.lang.Integer">
+        SELECT  count(1) FROM com_shop_flower_evaluate e  WHERE e.goods_id = #{goodsId}
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerGoodsAttrMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerGoodsAttrMapper.xml
new file mode 100644
index 0000000..3beae4c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerGoodsAttrMapper.xml
@@ -0,0 +1,30 @@
+<?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.ComShopFlowerGoodsAttrDAO">
+  <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComShopFlowerGoodsAttrDO">
+    <!--@mbg.generated-->
+    <!--@Table com_shop_flower_goods_attr-->
+    <id column="id" jdbcType="BIGINT" property="id"/>
+    <result column="goods_id" jdbcType="BIGINT" property="goodsId"/>
+    <result column="store_id" jdbcType="BIGINT" property="storeId"/>
+    <result column="goods_name" jdbcType="VARCHAR" property="goodsName"/>
+    <result column="goods_attr_name" jdbcType="VARCHAR" property="goodsAttrName"/>
+    <result column="stock" jdbcType="INTEGER" property="stock"/>
+    <result column="sale" jdbcType="INTEGER" property="sale"/>
+    <result column="attr_pic" jdbcType="VARCHAR" property="attrPic"/>
+    <result column="is_default" jdbcType="TINYINT" property="isDefault"/>
+    <result column="price" jdbcType="DECIMAL" property="price"/>
+    <result column="free_shipping_price" jdbcType="DECIMAL" property="freeShippingPrice"/>
+    <result column="collate_price" jdbcType="DECIMAL" property="collatePrice"/>
+    <result column="create_at" jdbcType="TIMESTAMP" property="createAt"/>
+    <result column="update_at" jdbcType="TIMESTAMP" property="updateAt"/>
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, goods_id, store_id, goods_name, goods_attr_name, stock, sale, attr_pic, is_default,
+    price, free_shipping_price, collate_price, create_at, update_at
+  </sql>
+  <select id="getGoodsAttr" resultType="com.panzhihua.common.model.vos.shop.ComShopFlowerGoodsAttrVO">
+    select  <include refid="Base_Column_List"/> from com_shop_flower_goods_attr where goods_id = #{goodsId}
+  </select>
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerGoodsMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerGoodsMapper.xml
new file mode 100644
index 0000000..80ef98e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerGoodsMapper.xml
@@ -0,0 +1,101 @@
+<?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.ComShopFlowerGoodsDAO">
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComShopFlowerGoodsDO">
+        <!--@mbg.generated-->
+        <!--@Table com_shop_flower_goods-->
+        <id column="id" jdbcType="BIGINT" property="id"/>
+        <result column="type_id" jdbcType="BIGINT" property="typeId"/>
+        <result column="name" jdbcType="VARCHAR" property="name"/>
+        <result column="store_id" jdbcType="BIGINT" property="storeId"/>
+        <result column="goods_pic" jdbcType="VARCHAR" property="goodsPic"/>
+        <result column="images" jdbcType="VARCHAR" property="images"/>
+        <result column="status" jdbcType="TINYINT" property="status"/>
+        <result column="sale" jdbcType="INTEGER" property="sale"/>
+        <result column="original_price" jdbcType="DECIMAL" property="originalPrice"/>
+        <result column="price" jdbcType="DECIMAL" property="price"/>
+        <result column="unit" jdbcType="VARCHAR" property="unit"/>
+        <result column="order" jdbcType="INTEGER" property="order"/>
+        <result column="stock" jdbcType="INTEGER" property="stock"/>
+        <result column="details" jdbcType="LONGVARCHAR" property="details"/>
+        <result column="remark" jdbcType="VARCHAR" property="remark"/>
+        <result column="goods_describe" jdbcType="VARCHAR" property="goodsDescribe"/>
+        <result column="delivery_type" jdbcType="TINYINT" property="deliveryType"/>
+        <result column="delete_status" jdbcType="TINYINT" property="deleteStatus"/>
+        <result column="create_at" jdbcType="TIMESTAMP" property="createAt"/>
+        <result column="update_at" jdbcType="TIMESTAMP" property="updateAt"/>
+    </resultMap>
+    <sql id="Base_Column_List">
+        <!--@mbg.generated-->
+        id, type_id, `name`, store_id, goods_pic, images, `status`, sale, original_price,
+        price, unit, `order`, stock, details, remark, goods_describe, delivery_type, delete_status,
+        create_at, update_at
+    </sql>
+    <select id="pageShopGoods" resultType="com.panzhihua.common.model.vos.shop.PageShopFlowerGoodsVO">
+        select c.id,c.type_id,ccm.name as
+        storeName,c.name,c.store_id,c.goods_pic,c.images,c.status,c.sale,c.original_price,c.price,c.unit,c.order,c.stock,c.details,c.remark,c.goods_describe,c.delivery_type,c.delete_status,c.create_at,c.update_at
+        from com_shop_flower_goods c
+        left join com_convenient_merchants ccm on c.store_id=ccm.id
+        left join  com_convenient_goods_scope as cgs on cgs.goods_id = c.id
+        where  c.delete_status = 1 and ccm.is_del = 0
+            <if test='pageComShopFlowerGoodsDTO.storeName != null and pageComShopFlowerGoodsDTO.storeName.trim() != &quot;&quot;'>
+                and ccm.name like concat('%',#{pageComShopFlowerGoodsDTO.storeName},'%')
+            </if>
+            <if test='pageComShopFlowerGoodsDTO.name != null and pageComShopFlowerGoodsDTO.name.trim() != &quot;&quot;'>
+                and c.name like concat('%',#{pageComShopFlowerGoodsDTO.name},'%')
+            </if>
+            <if test='pageComShopFlowerGoodsDTO.storeId != null'>
+                and ccm.id=#{pageComShopFlowerGoodsDTO.storeId}
+            </if>
+            <if test='pageComShopFlowerGoodsDTO.status != null'>
+                and c.status like concat('%',#{pageComShopFlowerGoodsDTO.status},'%')
+            </if>
+            <if test='pageComShopFlowerGoodsDTO.categoryIds != null '>
+                AND cgs.goods_category_id = #{pageComShopFlowerGoodsDTO.categoryIds}
+            </if>
+        <if test='pageComShopFlowerGoodsDTO.userId != null'>
+            and ccm.user_id = #{pageComShopFlowerGoodsDTO.userId}
+        </if>
+
+        order by c.create_at desc
+    </select>
+    <select id="pageShopGoodsByStoreId" resultType="com.panzhihua.common.model.vos.shop.ComShopFlowerGoodsVO">
+        select id,`name`,store_id,goods_pic,images,`status`,sale,original_price,price
+        ,unit,`order`,stock,details,delivery_type from com_shop_flower_goods where store_id =
+        #{pageComShopFlowerStoreDTO.storeId}
+        and delete_status = 1 and status = 1 order by sale desc,create_at desc
+    </select>
+    <select id="pageShopGoodByApps" resultType="com.panzhihua.common.model.vos.shop.ComShopFlowerGoodsVO">
+        select csg.id,csg.`name`,csg.store_id,csg.goods_pic,csg.images,csg.`status`,csg.sale,csg.original_price
+        ,csg.price,csg.unit,csg.`order`,csg.details,csg.delivery_type, csg.create_at,
+        (SELECT count(fog.id) FROM com_shop_flower_order_goods as fog WHERE fog.goods_id = csg.id) as order_num,
+        (SELECT ifnull(sum(ga.stock),0) from com_shop_flower_goods_attr ga where ga.goods_id = csg.id ) as stock
+        from com_shop_flower_goods as csg
+        left join com_convenient_merchants as css on css.id = csg.store_id
+        left join  com_convenient_goods_scope as cgs on cgs.goods_id = csg.id
+        where 1=1 and csg.delete_status = 1
+
+        <if test='comShopFlowerGoodsDTO.name != null and comShopFlowerGoodsDTO.name !=&quot;&quot;'>
+            AND csg.`name` like concat('%',#{comShopFlowerGoodsDTO.name},'%')
+        </if>
+        <if test='comShopFlowerGoodsDTO.status != null '>AND csg.`status` = #{comShopFlowerGoodsDTO.status}</if>
+        <if test='comShopFlowerGoodsDTO.storeId != null '>AND csg.store_id = #{comShopFlowerGoodsDTO.storeId}</if>
+        <if test='comShopFlowerGoodsDTO.storeId == null '>
+            and css.`business_status` = 1
+        </if>
+        <if test='comShopFlowerGoodsDTO.deliveryType != null '>AND csg.delivery_type like concat('%',#{comShopFlowerGoodsDTO.deliveryType},'%') </if>
+        <if test='comShopFlowerGoodsDTO.categoriesId != null '>AND cgs.goods_category_id = #{comShopFlowerGoodsDTO.categoriesId}</if>
+        order by sale desc,create_at desc
+    </select>
+    <select id="selectCountSaleByStoreId" resultType="java.lang.Integer">
+        select count(1) from com_shop_flower_goods where  store_id = #{storeId} and `status` = 1 and delete_status = 1
+    </select>
+
+
+    <select id="countSaleByUserId"
+            resultType="com.panzhihua.common.model.vos.shop.ComShopOrderStoreIdCountVO">
+        SELECT count(1) AS count_num, 'sale' AS count_name  FROM com_shop_flower_goods  g LEFT JOIN com_convenient_merchants m on g.store_id = m.id WHERE g.delete_status = 1 and m.user_id = #{userId}  and g.`status` = 1
+        union all
+        SELECT count(1) AS count_num, 'noSale' AS count_name  FROM com_shop_flower_goods  g LEFT JOIN com_convenient_merchants m on g.store_id = m.id WHERE g.delete_status = 1 and m.user_id =  #{userId}  and g.`status` = 2
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerGoodsViewStatisticsMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerGoodsViewStatisticsMapper.xml
new file mode 100644
index 0000000..390171d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerGoodsViewStatisticsMapper.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.ComShopFlowerGoodsViewStatisticsDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComShopFlowerGoodsViewStatisticsDO">
+                <id column="id" property="id" />
+                <id column="goods_id" property="goodsId" />
+                <id column="statistic_date" property="statisticDate" />
+                <id column="view_num" property="viewNum" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id,goods_id,statistic_date,view_num
+    </sql>
+    <insert id="createTodayStatistic">
+        INSERT INTO com_shop_flower_goods_view_statistics (goods_id, statistic_date) VALUES (#{goodsId},  #{nowDate})
+    </insert>
+    <update id="incrViewNum">
+        UPDATE com_shop_flower_goods_view_statistics SET view_num = view_num + 1
+        WHERE goods_id = #{goodsId} AND statistic_date = #{nowDate}
+    </update>
+    <select id="selectMonthViewNum" resultType="java.lang.Integer">
+        SELECT IF(SUM(view_num) IS NULL,0,SUM(view_num))
+        FROM com_shop_flower_goods_view_statistics
+        WHERE goods_id = #{goodsId} AND (statistic_date LIKE CONCAT(#{moth}, '%') OR statistic_date IS NULL)
+    </select>
+    <select id="selectDayViewNum" resultType="java.lang.Integer">
+        SELECT IF(SUM(view_num) IS NULL,0,SUM(view_num))
+        FROM com_shop_flower_goods_view_statistics
+        WHERE goods_id = #{goodsId} AND (statistic_date = #{day} OR statistic_date IS NULL)
+    </select>
+    <select id="selectSumForViewNum" resultType="com.panzhihua.common.model.vos.community.convenient.ConvenientViewStatisticsVO">
+        SELECT goods_id, SUM(view_num) AS totalViewNum
+        FROM com_shop_flower_goods_view_statistics GROUP BY goods_id
+    </select>
+    <select id="selectTotalViewNum" resultType="java.lang.Integer">
+        SELECT IF(SUM(view_num) IS NULL,0,SUM(view_num))
+        FROM com_shop_flower_goods_view_statistics
+        WHERE goods_id = #{goodsId}
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerOrderDAO.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerOrderDAO.xml
new file mode 100644
index 0000000..cc612ab
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerOrderDAO.xml
@@ -0,0 +1,326 @@
+<?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.ComShopFlowerOrderDAO">
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComShopFlowerOrderDO">
+        <!--@mbg.generated-->
+        <!--@Table com_shop_flower_order-->
+        <id column="id" jdbcType="BIGINT" property="id"/>
+        <result column="store_id" jdbcType="BIGINT" property="storeId"/>
+        <result column="user_id" jdbcType="BIGINT" property="userId"/>
+        <result column="order_no" jdbcType="VARCHAR" property="orderNo"/>
+        <result column="pay_no" jdbcType="VARCHAR" property="payNo"/>
+        <result column="wx_tarde_no" jdbcType="VARCHAR" property="wxTardeNo"/>
+        <result column="status" jdbcType="TINYINT" property="status"/>
+        <result column="pay_status" jdbcType="TINYINT" property="payStatus"/>
+        <result column="receiver_id" jdbcType="BIGINT" property="receiverId"/>
+        <result column="delete_status" jdbcType="TINYINT" property="deleteStatus"/>
+        <result column="total_amount" jdbcType="DECIMAL" property="totalAmount"/>
+        <result column="discount_amount" jdbcType="DECIMAL" property="discountAmount"/>
+        <result column="pay_amount" jdbcType="DECIMAL" property="payAmount"/>
+        <result column="pay_type" jdbcType="TINYINT" property="payType"/>
+        <result column="pay_time" jdbcType="TIMESTAMP" property="payTime"/>
+        <result column="delivery_type" jdbcType="TINYINT" property="deliveryType"/>
+        <result column="delivery_status" jdbcType="TINYINT" property="deliveryStatus"/>
+        <result column="remark" jdbcType="VARCHAR" property="remark"/>
+        <result column="logistics_company" jdbcType="VARCHAR" property="logisticsCompany"/>
+        <result column="logistics_no" jdbcType="VARCHAR" property="logisticsNo"/>
+        <result column="create_at" jdbcType="TIMESTAMP" property="createAt"/>
+        <result column="update_at" jdbcType="TIMESTAMP" property="updateAt"/>
+        <result column="delivery_time" jdbcType="TIMESTAMP" property="deliveryTime"/>
+        <result column="service_time" jdbcType="TIMESTAMP" property="serviceTime"/>
+        <result column="receiving_time" jdbcType="TIMESTAMP" property="receivingTime"/>
+        <result column="refund_time" jdbcType="TIMESTAMP" property="refundTime"/>
+        <result column="delivery_id" jdbcType="TIMESTAMP" property="deliveryId"/>
+        <result column="delivery_no" jdbcType="TIMESTAMP" property="deliveryNo"/>
+
+    </resultMap>
+    <sql id="Base_Column_List">
+        <!--@mbg.generated-->
+        id, store_id, user_id, order_no, pay_no, wx_tarde_no, `status`, pay_status, receiver_id,
+        delete_status, total_amount, discount_amount, pay_amount, pay_type, pay_time, delivery_type,
+        delivery_status, remark, logistics_company, logistics_no, create_at, update_at, delivery_time,
+        service_time, receiving_time, refund_time,point_id,delivery_id,delivery_no
+    </sql>
+
+    <select id="pageOrderList" resultType="com.panzhihua.common.model.vos.shop.ComShopFlowerOrderPageVO">
+        select id as orderId,order_no,store_id,`status`,pay_status,receiver_id,total_amount as
+        orderTotal,pay_amount,delivery_type,remark,create_at, logistics_company, logistics_no,receiving_time from com_shop_flower_order as cso
+        where  cso.delete_status = 1  and cso.`status` != 0
+        <if test="comOrderListDTO.userId != null">
+            and cso.user_id = #{comOrderListDTO.userId}
+        </if>
+        <if test='comOrderListDTO.status != null'>
+            AND cso.status =  #{comOrderListDTO.status}
+         </if>
+        order by create_at desc
+    </select>
+
+    <select id="pageOrderListNoDelivery" resultType="com.panzhihua.common.model.vos.shop.ComShopFlowerOrderPageVO">
+        select cso.id as orderId,cso.order_no,cso.store_id,cso.`status`,cso.pay_status,cso.receiver_id,cso.total_amount as
+        orderTotal,cso.pay_amount,cso.delivery_type,cso.remark,cso.create_at , g.goods_name,g.goods_attr_name,g.amount,g.goods_attr_price,
+        g.goods_attr_pic
+        from com_shop_flower_order as cso LEFT JOIN com_shop_flower_order_goods g ON cso.id = g.order_id
+        where 1=1 and
+        cso.delete_status = 1 and cso.status = 1 and cso.delivery_type = 1
+        <if test='comOrderListDTO.pointId != null'>
+            AND cso.point_id = #{comOrderListDTO.pointId}
+        </if>
+        order by create_at desc
+    </select>
+
+    <select id="pageOrderBy" resultType="com.panzhihua.common.model.vos.shop.ComShopOrderSearchVO">
+        SELECT  sr.id, sr.store_id, sr.user_id, su.phone AS userName , sr.order_no, sr.pay_no,
+        sr.wx_tarde_no, sr.status, sr.pay_status, sr.receiver_id,
+        sr.total_amount, sr.discount_amount, sr.pay_amount, sr.pay_type,
+        sr.pay_time, sr.delivery_type, sr.delivery_status, sr.logistics_company,
+        sr.logistics_no, sr.create_at, uad.name as receiver_name, uad.phone as receiver_phone,
+        group_concat(og.goods_name)
+        as goodsName, ss.name as store_name ,ccep.address,ccep.`name` point_name
+        FROM com_shop_flower_order sr LEFT JOIN com_shop_flower_order_goods og ON sr.id = og.order_id
+        LEFT JOIN com_shop_flower_goods_attr ga ON og.goods_attr_id = ga.id
+        LEFT JOIN sys_user su ON sr.user_id = su.user_id
+        LEFT JOIN com_shop_flower_user_address uad ON sr.receiver_id = uad.id
+        LEFT JOIN com_convenient_merchants ss ON sr.store_id = ss.id
+        LEFT JOIN  com_convenient_elevating_point ccep on ccep.id = sr.point_id
+        WHERE sr.delete_status = 1  and sr.`status` != 0
+        <if test='pageComShopOrderSearchDTO.userId != null'>
+            AND sr.user_id = #{pageComShopOrderSearchDTO.userId}
+        </if>
+        <if test='pageComShopOrderSearchDTO.createAtStart != null'>
+            AND #{pageComShopOrderSearchDTO.createAtStart} <![CDATA[<=]]>  sr.create_at
+        </if>
+        <if test='pageComShopOrderSearchDTO.createAtEnd != null'>
+            AND sr.create_at <![CDATA[<=]]> #{pageComShopOrderSearchDTO.createAtEnd}
+        </if>
+        <if test='pageComShopOrderSearchDTO.orderNo != null  '>
+            AND sr.order_no like concat('%',#{pageComShopOrderSearchDTO.orderNo}, '%')
+        </if>
+        <if test='pageComShopOrderSearchDTO.userAccount != null  '>
+            AND su.phone like concat('%',#{pageComShopOrderSearchDTO.userAccount}, '%')
+        </if>
+        <if test='pageComShopOrderSearchDTO.receiverAccount != null  '>
+            AND uad.name like concat('%',#{pageComShopOrderSearchDTO.receiverAccount}, '%')
+        </if>
+        <if test='pageComShopOrderSearchDTO.receiverPhone != null '>
+            AND uad.phone like concat('%',#{pageComShopOrderSearchDTO.receiverPhone}, '%')
+        </if>
+        <if test='pageComShopOrderSearchDTO.goodsName != null'>
+            AND og.goods_name like concat('%',#{pageComShopOrderSearchDTO.goodsName}, '%')
+        </if>
+        <if test='pageComShopOrderSearchDTO.status != null '>
+            AND sr.status = #{pageComShopOrderSearchDTO.status}
+        </if>
+        <if test='pageComShopOrderSearchDTO.storeName != null '>
+            AND ss.name like concat('%',#{pageComShopOrderSearchDTO.storeName}, '%')
+        </if>
+        <if test='pageComShopOrderSearchDTO.storeId != null '>
+            AND ss.id = #{pageComShopOrderSearchDTO.storeId}
+        </if>
+        <if test='pageComShopOrderSearchDTO.storeUserId != null '>
+            AND ss.user_id = #{pageComShopOrderSearchDTO.storeUserId}
+        </if>
+        <if test='pageComShopOrderSearchDTO.deliveryType != null '>
+            AND sr.delivery_type = #{pageComShopOrderSearchDTO.deliveryType}
+        </if>
+        <if test="pageComShopOrderSearchDTO.keyWord != null and pageComShopOrderSearchDTO.keyWord != ''">
+            AND (ss.name like concat('%',#{pageComShopOrderSearchDTO.keyWord}, '%')
+                OR sr.order_no like concat('%',#{pageComShopOrderSearchDTO.keyWord}, '%')
+                OR og.goods_name like concat('%',#{pageComShopOrderSearchDTO.keyWord}, '%')
+            )
+        </if>
+        GROUP BY sr.id ORDER BY sr.create_at DESC
+    </select>
+    <update id="updateOrder">
+        update com_shop_flower_order set delivery_time = #{deliveryTime},status = #{status},delivery_id =
+        #{deliveryId},delivery_no = #{deliveryNo}
+        where id in
+        <foreach item='id' index='index' collection='orderIds' open='(' separator=',' close=')'>
+            #{id}
+        </foreach>
+    </update>
+    <update id="updateOrderStatus">
+         update com_shop_flower_order set service_time = #{serviceTime},status = #{status} where delivery_id =#{deliveryId}
+    </update>
+    <select id="pageOrderByStoreId" resultType="com.panzhihua.common.model.vos.shop.ComShopFlowerOrderStoreListVO">
+        SELECT
+            o.id order_id,
+            o.order_no,
+            o.delivery_type,
+            o.`status`,
+            g.goods_name,
+            g.goods_attr_name,
+            g.amount,
+            g.goods_attr_price,
+            g.goods_attr_pic,
+            o.total_amount,
+            a.`name`,
+            a.phone,
+            a.province_name,
+            a.city_name,
+            a.district_name,
+            a.detail_address,
+            o.point_id,
+            o.logistics_company,
+            o.logistics_no
+            FROM
+                com_shop_flower_order o
+                LEFT JOIN com_shop_flower_order_goods g ON o.id = g.order_id
+                LEFT JOIN com_shop_flower_user_address a ON a.id = o.receiver_id
+            WHERE 1=1  and o.`status` != 0
+        <if test="comOrderListDTO.deliveryType != null">
+            and o.delivery_type = #{comOrderListDTO.deliveryType}
+        </if>
+        <if test="comOrderListDTO.storeId != null">
+            and o.store_id = #{comOrderListDTO.storeId}
+        </if>
+        <if test="comOrderListDTO.deliveryId != null">
+            and o.delivery_id = #{comOrderListDTO.deliveryId}
+        </if>
+        <if test="comOrderListDTO.status != null">
+            and o.status = #{comOrderListDTO.status}
+        </if>
+        order by  o.create_at desc
+
+    </select>
+    <select id="pageOrderByDeliveryNo" resultType="com.panzhihua.common.model.vos.shop.ComShopFlowerOrderStoreListVO">
+        SELECT
+        o.id order_id,
+        o.order_no,
+        o.delivery_type,
+        o.`status`,
+        g.goods_name,
+        g.goods_attr_name,
+        g.amount,
+        g.goods_attr_price,
+        g.goods_attr_pic,
+        o.total_amount,
+        a.`name`,
+        a.phone,
+        a.province_name,
+        a.city_name,
+        a.district_name,
+        a.detail_address,
+        o.point_id
+        FROM
+        com_shop_flower_order o
+        LEFT JOIN com_shop_flower_order_goods g ON o.id = g.order_id
+        LEFT JOIN com_shop_flower_user_address a ON a.id = o.receiver_id
+        WHERE 1=1 and o.delivery_type = 1  and o.`status` != 0
+        <if test="comOrderListDTO.storeId != null">
+            and o.store_id = #{comOrderListDTO.storeId}
+        </if>
+        <if test="comOrderListDTO.deliveryId != null">
+            and o.delivery_id = #{comOrderListDTO.deliveryId}
+        </if>
+        order by  o.create_at desc
+    </select>
+    <select id="selectCountByDeliveryType"
+            resultType="com.panzhihua.common.model.vos.shop.ComShopOrderCountVO">
+        SELECT count(1) amount , `status` FROM com_shop_flower_order WHERE delivery_type = #{deliveryType} and store_id = #{storeId} and `status` != 0  GROUP BY `status`
+    </select>
+    <select id="selectCountByStoreId"
+            resultType="com.panzhihua.common.model.vos.shop.ComShopOrderStoreIdCountVO">
+
+        SELECT count(1) as count_num,'dayCount' as count_name FROM com_shop_flower_order WHERE TO_DAYS(create_at)=TO_DAYS(NOW()) and `status` != 0
+            <if test="storeId != null">
+                and store_id = #{storeId}
+            </if>
+            <if test="deliveryType != null">
+                and delivery_type = #{deliveryType}
+            </if>
+        union all
+        SELECT count(1) as count_num,'monthCount' as count_name FROM com_shop_flower_order WHERE  DATE_FORMAT(create_at,'%Y%m')=DATE_FORMAT(CURDATE(),'%Y%m') and `status` != 0
+            <if test="storeId != null">
+                and store_id = #{storeId}
+            </if>
+            <if test="deliveryType != null">
+                and delivery_type = #{deliveryType}
+            </if>
+        union all
+        SELECT count(1) as count_num,'yearCount' as count_name FROM com_shop_flower_order  where  YEAR(create_at) =YEAR(NOW()) and `status` != 0
+            <if test="storeId != null">
+                and store_id = #{storeId}
+            </if>
+            <if test="deliveryType != null">
+                and delivery_type = #{deliveryType}
+            </if>
+        union all
+        SELECT count(1) as count_num,'allCount' as count_name FROM com_shop_flower_order  WHERE `status` != 0
+        <if test="storeId != null">
+                and store_id = #{storeId}
+            </if>
+            <if test="deliveryType != null">
+                and delivery_type = #{deliveryType}
+            </if>
+    </select>
+    <select id="selectSumAmountByStoreId"
+            resultType="com.panzhihua.common.model.vos.shop.ComShopOrderStoreIdNumVO">
+        SELECT IFNULL(sum(pay_amount),0) as count_num,'dayAmount' as count_name FROM com_shop_flower_order WHERE  TO_DAYS(create_at)=TO_DAYS(NOW())  and `status` not in (6,7)  and `status` != 0
+        <if test="storeId != null">
+                and store_id = #{storeId}
+            </if>
+        union all
+        SELECT IFNULL(sum(pay_amount),0) as count_num,'monthAmount' as count_name FROM com_shop_flower_order WHERE  DATE_FORMAT(create_at,'%Y%m')=DATE_FORMAT(CURDATE(),'%Y%m')  and `status` not in (6,7)  and `status` != 0
+        <if test="storeId != null">
+                and store_id = #{storeId}
+            </if>
+        union all
+        SELECT IFNULL(sum(pay_amount),0) as count_num,'yearAmount' as count_name FROM com_shop_flower_order  where  YEAR(create_at) =YEAR(NOW())  and `status` not in (6,7)  and `status` != 0
+        <if test="storeId != null">
+                and store_id = #{storeId}
+            </if>
+        union all
+        SELECT IFNULL(sum(pay_amount),0) as count_num,'allAmount' as count_name FROM com_shop_flower_order  WHERE   `status` not in (6,7)  and `status` != 0
+        <if test="storeId != null">
+                and store_id = #{storeId}
+            </if>
+    </select>
+    <select id="selectTurnover" resultType="java.math.BigDecimal">
+         SELECT IFNULL(sum(pay_amount),0) as count_num FROM com_shop_flower_order  WHERE   `status` not in (6,7) and store_id = #{storeId}
+    </select>
+    <select id="selectSettlement" resultType="java.math.BigDecimal">
+        SELECT IFNULL(sum(pay_amount),0) as count_num FROM com_shop_flower_order  WHERE   `status` in (4,5) and create_at &lt;= date_sub(now(), INTERVAL 15 DAY)
+    </select>
+    <select id="selectSumOrderAndAmountByStoreId"
+            resultType="com.panzhihua.common.model.vos.shop.ComShopOrderStoreIdNumVO">
+        SELECT count(1)  count_num ,'pddd' as  count_name FROM `com_shop_flower_order` WHERE delivery_type =1 and delete_status = 1 and pay_status = 2 and store_id = #{storeId}  and `status` != 0
+        union all
+        SELECT count(1)  count_num ,'kddd' as  count_name FROM `com_shop_flower_order` WHERE delivery_type =2 and delete_status = 1 and pay_status = 2 and store_id = #{storeId}  and `status` != 0
+        union all
+        SELECT count(1)  count_num ,'tkdd' as  count_name FROM `com_shop_flower_order` WHERE  delete_status = 1 and pay_status = 2 and `status` = 7  and store_id = #{storeId}  and `status` != 0
+        union all
+        SELECT IFNULL(sum(pay_amount),0) count_num ,'yysr' as  count_name  FROM `com_shop_flower_order` WHERE `status` not in (6,7) and store_id = #{storeId}  and `status` != 0
+        union all
+        SELECT IFNULL(sum(pay_amount),0) count_num ,'tkje' as  count_name  FROM `com_shop_flower_order` WHERE `status`  =7 and store_id = #{storeId}  and `status` != 0
+        union all
+        SELECT IFNULL(sum(pay_amount),0) count_num ,'ktxje' as  count_name  FROM `com_shop_flower_order` WHERE `status` in (4,5) and create_at &lt;= date_sub(now(), INTERVAL 15 DAY) and store_id = #{storeId}  and `status` != 0
+
+
+    </select>
+    <select id="selectCountOrderDayByStoreId"
+            resultType="com.panzhihua.common.model.vos.shop.ComShopOrderStoreIdCountVO">
+        SELECT count(1) count_num, date_format(create_at,'%Y-%m-%d') as count_name FROM com_shop_flower_order
+        WHERE  date_format(create_at,'%Y-%m-%d') &gt;= date_format(date_sub(now(), INTERVAL #{days} DAY),'%Y-%m-%d')
+        and store_id = #{storeId} and `status` != 0
+        GROUP BY  count_name
+    </select>
+    <select id="selectCountOrderMonthByStoreId"
+            resultType="com.panzhihua.common.model.vos.shop.ComShopOrderStoreIdCountVO">
+        SELECT count(1) count_num, date_format(create_at,'%Y-%m') as count_name FROM com_shop_flower_order
+        WHERE  date_format(create_at,'%Y-%m') &gt;= date_format(now(),'%Y-01')  and store_id = #{storeId} and `status` != 0  GROUP BY  count_name
+    </select>
+    <select id="selectOrderSumPayDayByStoreId"
+            resultType="com.panzhihua.common.model.vos.shop.ComShopOrderStoreIdNumVO">
+        SELECT IFNULL(sum(pay_amount),0) count_num, date_format(create_at,'%Y-%m-%d') as count_name FROM com_shop_flower_order
+        WHERE  date_format(create_at,'%Y-%m-%d') &gt;= date_format(date_sub(now(), INTERVAL #{days} DAY),'%Y-%m-%d')
+        and store_id = #{storeId} and `status` not in (6,7) and `status` != 0
+        GROUP BY  count_name
+    </select>
+    <select id="selectOrderSumMonthByStoreId"
+            resultType="com.panzhihua.common.model.vos.shop.ComShopOrderStoreIdNumVO">
+        SELECT IFNULL(sum(pay_amount),0) count_num, date_format(create_at,'%Y-%m') as count_name FROM com_shop_flower_order
+        WHERE  date_format(create_at,'%Y-%m') &gt;= date_format(now(),'%Y-01')  and store_id = #{storeId}  and `status` not in (6,7)  and `status` != 0  GROUP BY  count_name
+    </select>
+
+
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerOrderDeliveryMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerOrderDeliveryMapper.xml
new file mode 100644
index 0000000..9e18dcb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerOrderDeliveryMapper.xml
@@ -0,0 +1,41 @@
+<?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.ComShopFlowerOrderDeliveryDAO">
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComShopFlowerOrderDeliveryDO">
+        <!--@mbg.generated-->
+        <!--@Table com_shop_flower_order_delivery-->
+        <id column="id" jdbcType="BIGINT" property="id"/>
+        <result column="store_id" jdbcType="BIGINT" property="storeId"/>
+        <result column="delivery_no" jdbcType="VARCHAR" property="deliveryNo"/>
+        <result column="delivery_status" jdbcType="TINYINT" property="deliveryStatus"/>
+        <result column="delete_status" jdbcType="TINYINT" property="deleteStatus"/>
+        <result column="delivery_time" jdbcType="TIMESTAMP" property="deliveryTime"/>
+        <result column="service_time" jdbcType="TIMESTAMP" property="serviceTime"/>
+        <result column="delivery_type" jdbcType="TINYINT" property="deliveryType"/>
+        <result column="point_id" jdbcType="BIGINT" property="pointId"/>
+        <result column="point_name" jdbcType="VARCHAR" property="pointName"/>
+        <result column="delivery_order_num" jdbcType="INTEGER" property="deliveryOrderNum"/>
+        <result column="delivery_goods_num" jdbcType="INTEGER" property="deliveryGoodsNum"/>
+        <result column="delivery_amount" jdbcType="DECIMAL" property="deliveryAmount"/>
+        <result column="create_at" jdbcType="TIMESTAMP" property="createAt"/>
+        <result column="update_at" jdbcType="TIMESTAMP" property="updateAt"/>
+    </resultMap>
+    <sql id="Base_Column_List">
+        <!--@mbg.generated-->
+        id, store_id, delivery_no, delivery_status, delete_status, delivery_time, service_time,
+        delivery_type, point_id, point_name, delivery_order_num, delivery_goods_num, delivery_amount,
+        create_at, update_at
+    </sql>
+    <select id="pageDelivery" resultType="com.panzhihua.common.model.vos.shop.ComShopFlowerOrderDeliveryVO">
+        select * from com_shop_flower_order_delivery where 1=1
+        <if test="pageComFlowerOrderDeliveryDTO.deliveryNo != null and pageComFlowerOrderDeliveryDTO.deliveryNo != ''">
+            and delivery_no like concat( '%',#{pageComFlowerOrderDeliveryDTO.deliveryNo}, '%' )
+        </if>
+        <if test="pageComFlowerOrderDeliveryDTO.deliveryStatus != null">
+            and delivery_status = #{pageComFlowerOrderDeliveryDTO.deliveryStatus}
+        </if>
+        order by update_at desc
+    </select>
+
+
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerOrderGoodsDAO.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerOrderGoodsDAO.xml
new file mode 100644
index 0000000..88b518e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerOrderGoodsDAO.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.ComShopFlowerOrderGoodsDAO">
+  <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComShopFlowerOrderGoodsDO">
+    <!--@mbg.generated-->
+    <!--@Table com_shop_flower_order_goods-->
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="store_id" jdbcType="BIGINT" property="storeId" />
+    <result column="order_id" jdbcType="BIGINT" property="orderId" />
+    <result column="user_id" jdbcType="BIGINT" property="userId" />
+    <result column="order_no" jdbcType="VARCHAR" property="orderNo" />
+    <result column="goods_id" jdbcType="BIGINT" property="goodsId" />
+    <result column="goods_attr_id" jdbcType="BIGINT" property="goodsAttrId" />
+    <result column="goods_attr_name" jdbcType="VARCHAR" property="goodsAttrName" />
+    <result column="amount" jdbcType="INTEGER" property="amount" />
+    <result column="goods_attr_price" jdbcType="DECIMAL" property="goodsAttrPrice" />
+    <result column="goods_attr_pic" jdbcType="VARCHAR" property="goodsAttrPic" />
+    <result column="price" jdbcType="DECIMAL" property="price" />
+    <result column="free_shipping_price" jdbcType="DECIMAL" property="freeShippingPrice" />
+    <result column="collate_price" jdbcType="DECIMAL" property="collatePrice" />
+    <result column="goods_name" jdbcType="VARCHAR" property="goodsName" />
+    <result column="create_at" jdbcType="TIMESTAMP" property="createAt" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, store_id, order_id, user_id, order_no, goods_id, goods_attr_id, goods_attr_name, 
+    amount, goods_attr_price, goods_attr_pic, price, free_shipping_price, collate_price, 
+    goods_name, create_at
+  </sql>
+    <select id="selectSumAmount" resultType="java.lang.Integer">
+      SELECT sum(g.amount) FROM `com_shop_flower_order_goods` g LEFT JOIN com_shop_flower_order o ON o.id = g.order_id  WHERE g.store_id = #{storeId} and o.`status` != 0
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerOrderOperateDAO.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerOrderOperateDAO.xml
new file mode 100644
index 0000000..f47949d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerOrderOperateDAO.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_community.dao.ComShopFlowerOrderOperateDAO">
+  <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComShopFlowerOrderOperateDO">
+    <!--@mbg.generated-->
+    <!--@Table com_shop_flower_order_operate-->
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="order_no" jdbcType="VARCHAR" property="orderNo" />
+    <result column="operation_by" jdbcType="VARCHAR" property="operationBy" />
+    <result column="operation_time" jdbcType="TIMESTAMP" property="operationTime" />
+    <result column="operation_type" jdbcType="TINYINT" property="operationType" />
+    <result column="operation_content" jdbcType="VARCHAR" property="operationContent" />
+    <result column="create_at" jdbcType="TIMESTAMP" property="createAt" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, order_no, operation_by, operation_time, operation_type, operation_content, create_at
+  </sql>
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerOrderPayDAO.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerOrderPayDAO.xml
new file mode 100644
index 0000000..4da0102
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerOrderPayDAO.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.ComShopFlowerOrderPayDAO">
+  <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComShopFlowerOrderPayDO">
+    <!--@mbg.generated-->
+    <!--@Table com_shop_flower_order_pay-->
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="order_no" jdbcType="VARCHAR" property="orderNo" />
+    <result column="pay_no" jdbcType="VARCHAR" property="payNo" />
+    <result column="wx_trade_no" jdbcType="VARCHAR" property="wxTradeNo" />
+    <result column="pay_status" jdbcType="TINYINT" property="payStatus" />
+    <result column="order_amount" jdbcType="DECIMAL" property="orderAmount" />
+    <result column="pay_amount" jdbcType="DECIMAL" property="payAmount" />
+    <result column="pay_time" jdbcType="TIMESTAMP" property="payTime" />
+    <result column="create_at" jdbcType="TIMESTAMP" property="createAt" />
+    <result column="update_at" jdbcType="TIMESTAMP" property="updateAt" />
+    <result column="store_id"  property="storeId" />
+    <result column="delivery_type"  property="deliveryType" />
+    <result column="order_id"  property="orderId" />
+    <result column="refund_order_no"  property="refundOrderNo" />
+    <result column="refund_status"  property="refundStatus" />
+    <result column="pay_type"  property="payType" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, order_no, pay_no, wx_trade_no, pay_status, order_amount, pay_amount, pay_time, 
+    create_at, update_at
+  </sql>
+  <select id="pageOrderPay" resultType="com.panzhihua.common.model.vos.shop.ComShopFlowerOrderPayVO">
+    SELECT * FROM `com_shop_flower_order_pay` WHERE 1=1
+    <if test="pageComShopFlowerOrderPayDTO.type != null and  pageComShopFlowerOrderPayDTO.type == 1">
+      and pay_type = 1 OR (pay_type = 2 and refund_status = 3)
+    </if>
+    <if test="pageComShopFlowerOrderPayDTO.type != null and  pageComShopFlowerOrderPayDTO.type == 2">
+      and  pay_type = 2
+    </if>
+    <if test="pageComShopFlowerOrderPayDTO.storeId != null">
+      and store_id = #{pageComShopFlowerOrderPayDTO.storeId}
+    </if>
+  </select>
+
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerRefundOrderDAO.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerRefundOrderDAO.xml
new file mode 100644
index 0000000..03892c9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerRefundOrderDAO.xml
@@ -0,0 +1,80 @@
+<?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.ComShopFlowerRefundOrderDAO">
+  <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComShopFlowerRefundOrderDO">
+    <!--@mbg.generated-->
+    <!--@Table com_shop_flower_refund_order-->
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="store_id" jdbcType="BIGINT" property="storeId" />
+    <result column="user_id" jdbcType="BIGINT" property="userId" />
+    <result column="order_no" jdbcType="VARCHAR" property="orderNo" />
+    <result column="order_id" jdbcType="VARCHAR" property="orderId" />
+    <result column="refund_order_no" jdbcType="VARCHAR" property="refundOrderNo" />
+    <result column="status" jdbcType="TINYINT" property="status" />
+    <result column="delete_status" jdbcType="TINYINT" property="deleteStatus" />
+    <result column="pay_amount" jdbcType="DECIMAL" property="payAmount" />
+    <result column="refund_amount" jdbcType="DECIMAL" property="refundAmount" />
+    <result column="refund_reason" jdbcType="VARCHAR" property="refundReason" />
+    <result column="refund_pic" jdbcType="VARCHAR" property="refundPic" />
+    <result column="create_at" jdbcType="TIMESTAMP" property="createAt" />
+    <result column="update_at" jdbcType="TIMESTAMP" property="updateAt" />
+    <result column="handle_time" jdbcType="TIMESTAMP" property="handleTime" />
+    <result column="refund_time" jdbcType="TIMESTAMP" property="refundTime" />
+    <result column="cancel_time" jdbcType="TIMESTAMP" property="cancelTime" />
+    <result column="handle_result" jdbcType="VARCHAR" property="handleResult" />
+    <result column="remark" jdbcType="VARCHAR" property="remark" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, store_id, user_id, order_no, order_id, refund_order_no, `status`, delete_status, 
+    pay_amount, refund_amount, refund_reason, refund_pic, create_at, update_at, handle_time, 
+    refund_time, handle_result, remark,cancel_time
+  </sql>
+    <select id="pageRefundOrder" resultType="com.panzhihua.common.model.vos.shop.ComShopFlowerRefundOrderVO">
+      select ro.*,cm.name as store_name from com_shop_flower_refund_order ro
+      left join com_convenient_merchants cm on ro.store_id = cm.id
+      left join com_shop_flower_order_goods g on g.order_id = ro.order_id
+      where  1=1
+      <if test="pageComOrderRefundDTO.status != null">
+        and ro.status = #{pageComOrderRefundDTO.status}
+      </if>
+      <if test="pageComOrderRefundDTO.storeId != null">
+        and ro.store_id = #{pageComOrderRefundDTO.storeId}
+      </if>
+      <if test="pageComOrderRefundDTO.userId != null">
+        and ro.user_id = #{pageComOrderRefundDTO.userId}
+      </if>
+      <if test="pageComOrderRefundDTO.backstageUserId != null">
+        and cm.user_id = #{pageComOrderRefundDTO.backstageUserId}
+      </if>
+      <if test="pageComOrderRefundDTO.keyWord != null">
+        and (
+        cm.`name` like concat(#{pageComOrderRefundDTO.keyWord}, '%' ) or
+        ro.order_no like concat(#{pageComOrderRefundDTO.keyWord}, '%' ) or
+        g.goods_name like concat(#{pageComOrderRefundDTO.keyWord}, '%' )
+        )
+      </if>
+      order by ro.create_at desc
+    </select>
+  <select id="selectCountByStoreId" resultType="java.lang.Integer">
+    select count(1) from com_shop_flower_refund_order where 1=1
+    <if test="storeId != null">
+      and store_id = #{storeId}
+    </if>
+  </select>
+
+  <select id="selectCountGroupStatus"
+          resultType="com.panzhihua.common.model.vos.shop.ComShopOrderCountVO">
+    SELECT count(1) amount , `status` FROM `com_shop_flower_refund_order` WHERE 1=1
+    <if test="storeId != null">
+      and store_id = #{storeId}
+    </if>
+    GROUP BY `status`
+  </select>
+    <update id="updateCancel">
+      update com_shop_flower_refund_order set  `status`  = #{status},cancel_time = NOW()  where id = #{id}
+    </update>
+  <select id="selectCountRefundNowByOrderId" resultType="int">
+    SELECT count(1) FROM com_shop_flower_refund_order WHERE order_id = #{orderId} and `status` in (9,10,13) and delete_status = 1
+  </select>
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerUserAddressDAO.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerUserAddressDAO.xml
new file mode 100644
index 0000000..047c531
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComShopFlowerUserAddressDAO.xml
@@ -0,0 +1,28 @@
+<?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.ComShopFlowerUserAddressDAO">
+  <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComShopFlowerUserAddressDO">
+    <!--@mbg.generated-->
+    <!--@Table com_shop_flower_user_address-->
+    <id column="id" jdbcType="BIGINT" property="id" />
+    <result column="user_id" jdbcType="BIGINT" property="userId" />
+    <result column="name" jdbcType="VARCHAR" property="name" />
+    <result column="phone" jdbcType="VARCHAR" property="phone" />
+    <result column="province_code" jdbcType="VARCHAR" property="provinceCode" />
+    <result column="province_name" jdbcType="VARCHAR" property="provinceName" />
+    <result column="city_code" jdbcType="VARCHAR" property="cityCode" />
+    <result column="city_name" jdbcType="VARCHAR" property="cityName" />
+    <result column="district_code" jdbcType="VARCHAR" property="districtCode" />
+    <result column="district_name" jdbcType="VARCHAR" property="districtName" />
+    <result column="detail_address" jdbcType="VARCHAR" property="detailAddress" />
+    <result column="is_default" jdbcType="TINYINT" property="isDefault" />
+    <result column="create_at" jdbcType="TIMESTAMP" property="createAt" />
+    <result column="update_at" jdbcType="TIMESTAMP" property="updateAt" />
+    <result column="delete_status" jdbcType="TINYINT" property="deleteStatus" />
+  </resultMap>
+  <sql id="Base_Column_List">
+    <!--@mbg.generated-->
+    id, user_id, `name`, phone, province_code, province_name, city_code, city_name, district_code, 
+    district_name, detail_address, is_default, create_at, update_at, delete_status
+  </sql>
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComStreetMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComStreetMapper.xml
new file mode 100644
index 0000000..a004037
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComStreetMapper.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_community.dao.ComStreetDAO">
+
+    <resultMap type="com.panzhihua.service_community.model.dos.ComStreetDO" id="baseResultMapper">
+        <result property="streetId" column="street_id"/>
+        <result property="name" column="name"/>
+        <result property="provinceCode" column="province_code"/>
+        <result property="cityCode" column="city_code"/>
+        <result property="areaCode" column="area_code"/>
+        <result property="address" column="address"/>
+        <result property="lng" column="lng"/>
+        <result property="lat" column="lat"/>
+        <result property="account" column="account"/>
+        <result property="password" column="password"/>
+        <result property="createAt" column="create_at"/>
+    </resultMap>
+    <select id="retrieveRegions" resultType="java.lang.String">
+        SELECT CONCAT(t1.province_name,t2.city_name,t3.district_name)
+        FROM com_mng_struct_area_province t1
+        LEFT JOIN com_mng_struct_area_city t2 ON t1.id = t2.province_id
+        LEFT JOIN com_mng_struct_area_district t3 ON t2.id = t3.city_id
+        WHERE t3.district_adcode = #{areaCode}
+    </select>
+
+</mapper>
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
new file mode 100644
index 0000000..fe0573f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwDangerReportMapper.xml
@@ -0,0 +1,182 @@
+<?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.ComSwDangerReportDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComSwDangerReportDO">
+                <id column="id" property="id" />
+                <result column="danger_no" property="dangerNo" />
+                <result column="danger_name" property="dangerName" />
+                <result column="danger_type" property="dangerType" />
+                <result column="status" property="status" />
+                <result column="danger_level" property="dangerLevel" />
+                <result column="check_time" property="checkTime" />
+                <result column="unit_name" property="unitName" />
+                <result column="dager_description" property="dagerDescription" />
+                <result column="is_rectify_immediately" property="isRectifyImmediately" />
+                <result column="take_steps" property="takeSteps" />
+                <result column="steps_photo" property="stepsPhoto" />
+                <result column="rectify_person" property="rectifyPerson" />
+                <result column="rectify_time" property="rectifyTime" />
+                <result column="community_suggestion" property="communitySuggestion" />
+                <result column="street_suggestion" property="streetSuggestion" />
+                <result column="undertake_record" property="undertakeRecord" />
+                <result column="leader_suggestion" property="leaderSuggestion" />
+                <result column="assign_person" property="assignPerson" />
+                <result column="remark" property="remark" />
+                <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, danger_no, danger_name, danger_type, status, danger_level, check_time, unit_name, dager_description, is_rectify_immediately, take_steps, steps_photo, rectify_person, rectify_time, community_suggestion, street_suggestion, undertake_record, remark, create_at, create_by, update_at, update_by
+    </sql>
+
+    <select id="pageDangerReport" resultType="com.panzhihua.common.model.vos.community.ComSwDangerReportVO">
+        SELECT
+            csdr.id,
+            cspr.community_id AS communityId,
+            cspr.patrol_time AS patrolTime,
+            cspr.patrol_type AS patrolType,
+            cspr.patrol_person AS patrolPerson,
+            cspr.person_name AS pPersonName,
+            cspr.person_phone AS pPersonPhone,
+            cspr.address,
+            cspr.record_content AS recordContent,
+            cspr.find_record AS findRecord,
+            cspr.record_photo AS recordPhoto,
+            cspr.create_at AS createAt,
+            cspr.create_by AS createBy,
+            csdr.remark,
+            csdr.danger_name AS dangerName,
+            csdr.check_time AS checkTime,
+            csdr.unit_name AS unitName,
+            csdr.dager_description AS dagerDescription,
+            csdr.danger_no AS dangerNo,
+            csdr.danger_type AS dangerType,
+            csdr.status,
+            csdr.danger_level AS dangerLevel,
+            csdr.take_steps AS takeSteps,
+            csdr.steps_photo AS stepsPhoto,
+            csdr.rectify_person AS rectifyPerson,
+            csdr.rectify_person AS dPatrolPerson,
+            csdr.person_name AS dPersonName,
+            csdr.rectify_time AS rectifyTime,
+            csdr.community_suggestion AS communitySuggestion,
+            csdr.street_suggestion AS streetSuggestion,
+            csdr.undertake_record AS undertakeRecord,
+            csdr.leader_suggestion AS leaderSuggestion,
+            csdr.assign_person AS assignPerson,
+            t.name as communityName
+        FROM
+            com_sw_danger_report as csdr
+                left join com_sw_patrol_record_report as csprr on csprr.report_id = csdr.id
+                left join com_sw_patrol_record as cspr on csprr.patrol_record_id = cspr.id
+                left join com_act t on cspr.community_id =t.community_id
+        <where>
+            <if test='comSwPatrolRecordDTO.communityId != null and comSwPatrolRecordDTO.communityId != 0'>
+                AND cspr.community_id = ${comSwPatrolRecordDTO.communityId}
+            </if>
+            <if test='comSwPatrolRecordDTO.areaCode !=null'>
+                AND t.area_code = #{comSwPatrolRecordDTO.areaCode}
+            </if>
+            <if test='comSwPatrolRecordDTO.patrolPerson != null and comSwPatrolRecordDTO.patrolPerson != ""'>
+                AND cspr.person_name LIKE concat('%',#{comSwPatrolRecordDTO.patrolPerson},'%')
+            </if>
+            <if test='comSwPatrolRecordDTO.patrolType != null and comSwPatrolRecordDTO.patrolType != ""'>
+                AND cspr.patrol_type LIKE concat('%',#{comSwPatrolRecordDTO.patrolType},'%')
+            </if>
+            <if test='comSwPatrolRecordDTO.status != null and comSwPatrolRecordDTO.status != ""'>
+                AND csdr.status = #{comSwPatrolRecordDTO.status}
+            </if>
+            <if test='comSwPatrolRecordDTO.patrolAtBegin != null and comSwPatrolRecordDTO.patrolAtBegin != ""'>
+                AND cspr.patrol_time <![CDATA[ >= ]]> #{comSwPatrolRecordDTO.patrolAtBegin}
+            </if>
+            <if test='comSwPatrolRecordDTO.patrolAtEnd != null and comSwPatrolRecordDTO.patrolAtEnd != ""'>
+                AND cspr.patrol_time <![CDATA[ <= ]]> #{comSwPatrolRecordDTO.patrolAtEnd}
+            </if>
+        </where>
+        order by csdr.create_at desc
+    </select>
+
+    <select id="detailDangerReport" resultType="com.panzhihua.common.model.vos.community.ComSwDangerReportVO">
+        SELECT
+        csdr.id,
+        cspr.community_id AS communityId,
+        cspr.patrol_time AS patrolTime,
+        cspr.patrol_type AS patrolType,
+        cspr.patrol_person AS patrolPerson,
+        cspr.address,
+        cspr.record_content AS recordContent,
+        cspr.find_record AS findRecord,
+        cspr.record_photo AS recordPhoto,
+        cspr.create_at AS createAt,
+        cspr.create_by AS createBy,
+        csdr.remark,
+        csdr.danger_name AS dangerName,
+        csdr.check_time AS checkTime,
+        csdr.unit_name AS unitName,
+        csdr.dager_description AS dagerDescription,
+        csdr.danger_no AS dangerNo,
+        csdr.danger_type AS dangerType,
+        csdr.status,
+        csdr.danger_level AS dangerLevel,
+        csdr.take_steps AS takeSteps,
+        csdr.steps_photo AS stepsPhoto,
+        csdr.rectify_person AS rectifyPerson,
+        csdr.rectify_time AS rectifyTime,
+        csdr.community_suggestion AS communitySuggestion,
+        csdr.street_suggestion AS streetSuggestion,
+        csdr.undertake_record AS undertakeRecord,
+        csdr.leader_suggestion AS leaderSuggestion,
+        csdr.assign_person AS assignPerson
+        FROM
+        com_sw_danger_report as csdr
+        left join com_sw_patrol_record_report as csprr on csprr.report_id = csdr.id
+        left join com_sw_patrol_record as cspr on csprr.patrol_record_id = cspr.id
+        where csdr.id = #{dangerReportId}
+    </select>
+
+    <select id="exportDangerReport" resultType="com.panzhihua.common.model.vos.community.ComSwDangerReportExcelVO" parameterType="java.util.List">
+        SELECT
+            cspr.person_name AS ppersonName,
+            cspr.person_phone AS ppersonPhone,
+            cspr.address,
+            csdr.remark,
+            csdr.dager_description AS dagerDescription,
+            case csdr.danger_type
+                when '1' then '火灾隐患'
+                when '2' then '汛情隐患'
+                when '3' then '疫情隐患'
+            end
+            AS dangerType,
+            case csdr.status
+                when '1' then '待处理'
+                when '2' then '待整改'
+                when '3' then '已整改'
+            end
+            AS status,
+            case csdr.danger_level
+                when '1' then '红色预警'
+                when '2' then '橙色预警'
+                when '3' then '黄色预警'
+                when '4' then '蓝色预警'
+            end
+            AS dangerLevel,
+            cspr.create_at AS createAt,
+           csdr.rectify_person AS dpersonName,
+           csdr.rectify_time AS rectifyTime
+        FROM
+            com_sw_danger_report as csdr
+                left join com_sw_patrol_record_report as csprr on csprr.report_id = csdr.id
+                left join com_sw_patrol_record as cspr on csprr.patrol_record_id = cspr.id
+        where csdr.id in
+        <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/ComSwPatrolRecordMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwPatrolRecordMapper.xml
new file mode 100644
index 0000000..9727541
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwPatrolRecordMapper.xml
@@ -0,0 +1,100 @@
+<?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.ComSwPatrolRecordDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComSwPatrolRecordDO">
+                <id column="id" property="id" />
+                <result column="community_id" property="communityId" />
+                <result column="patrol_time" property="patrolTime" />
+                <result column="patrol_type" property="patrolType" />
+                <result column="patrol_leader" property="patrolLeader" />
+                <result column="patrol_person" property="patrolPerson" />
+                <result column="address" property="address" />
+                <result column="record_content" property="recordContent" />
+                <result column="find_record" property="findRecord" />
+                <result column="record_photo" property="recordPhoto" />
+                <result column="remark" property="remark" />
+                <result column="succession_leader" property="successionLeader" />
+                <result column="succession_person" property="successionPerson" />
+                <result column="succession_time" property="successionTime" />
+                <result column="is_hidden_danger" property="isHiddenDanger" />
+                <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, community_id, patrol_time, patrol_type, patrol_leader, patrol_person, address, record_content, find_record, record_photo, remark, succession_leader, succession_person, succession_time, is_hidden_danger, create_at, create_by, update_at, update_by
+    </sql>
+
+    <select id="pagePatrolRecord" resultType="com.panzhihua.common.model.vos.community.ComSwPatrolRecordVO">
+        SELECT
+            cspr.id,
+            cspr.community_id AS communityId,
+            cspr.patrol_time AS patrolTime,
+            cspr.patrol_type AS patrolType,
+            cspr.patrol_person AS patrolPerson,
+            cspr.person_name AS personName,
+            cspr.person_phone AS personPhone,
+            cspr.address,
+            cspr.record_content AS recordContent,
+            cspr.find_record AS findRecord,
+            cspr.record_photo AS recordPhoto,
+            cspr.remark,
+            cspr.succession_person AS successionPerson,
+            cspr.succession_time AS successionTime,
+            cspr.create_at AS createAt,
+            cspr.create_by AS createBy,
+            csprr.report_id AS reportId,
+            t.name as communityName
+        FROM
+            com_sw_patrol_record as cspr
+        left join com_sw_patrol_record_report as csprr on csprr.patrol_record_id = cspr.id
+        left join com_act t on cspr.community_id = t.community_id
+        <where>
+            <if test='comSwPatrolRecordDTO.communityId != null and comSwPatrolRecordDTO.communityId != 0'>
+                AND cspr.community_id = ${comSwPatrolRecordDTO.communityId}
+            </if>
+            <if test='comSwPatrolRecordDTO.areaCode !=null'>
+                AND t.area_code = #{comSwPatrolRecordDTO.areaCode}
+            </if>
+            <if test='comSwPatrolRecordDTO.patrolPerson != null and comSwPatrolRecordDTO.patrolPerson != ""'>
+                AND cspr.person_name LIKE concat('%',#{comSwPatrolRecordDTO.patrolPerson},'%')
+            </if>
+            <if test='comSwPatrolRecordDTO.patrolType != null and comSwPatrolRecordDTO.patrolType != ""'>
+                AND cspr.patrol_type LIKE concat('%',#{comSwPatrolRecordDTO.patrolType},'%')
+            </if>
+            <if test='comSwPatrolRecordDTO.patrolAtBegin != null and comSwPatrolRecordDTO.patrolAtBegin != ""'>
+                AND cspr.patrol_time <![CDATA[ >= ]]> #{comSwPatrolRecordDTO.patrolAtBegin}
+            </if>
+            <if test='comSwPatrolRecordDTO.patrolAtEnd != null and comSwPatrolRecordDTO.patrolAtEnd != ""'>
+                AND cspr.patrol_time <![CDATA[ <= ]]> #{comSwPatrolRecordDTO.patrolAtEnd}
+            </if>
+        </where>
+        order by cspr.create_at desc
+    </select>
+
+    <select id="getPbServiceTeamById" resultType="Map">
+        select `name`,phone from com_pb_service_team where id = #{teamId}
+    </select>
+
+    <select id="getPbServiceTeamCardNo" resultType="Map">
+        select cpst.id,cpst.`name`,cpst.phone from com_pb_service_team as cpst
+        left join sys_user as su on su.phone = cpst.card_no and su.type = 1
+        where su.user_id = #{userId}
+    </select>
+
+    <select id="getCreateName" resultType="String">
+        select `name` from sys_user where user_id = #{userId}
+    </select>
+
+    <select id="getPatrolPersonName" resultType="Map">
+        select cspr.person_name from com_sw_patrol_record_report as csprr
+        left join com_sw_patrol_record as cspr on cspr.id = csprr.patrol_record_id
+        where csprr.report_id = #{dangerId}
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwPatrolRecordReportMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwPatrolRecordReportMapper.xml
new file mode 100644
index 0000000..8ac3a8c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwPatrolRecordReportMapper.xml
@@ -0,0 +1,21 @@
+<?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.ComSwPatrolRecordReportDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComSwPatrolRecordReportDO">
+                <id column="id" property="id" />
+                <result column="patrol_record_id" property="patrolRecordId" />
+                <result column="report_id" property="reportId" />
+                <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, patrol_record_id, report_id, create_at, create_by, update_at, update_by
+    </sql>
+
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwRotaMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwRotaMapper.xml
new file mode 100644
index 0000000..75f29cb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwRotaMapper.xml
@@ -0,0 +1,60 @@
+<?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.ComSwRotaDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComSwRotaDO">
+                <id column="id" property="id" />
+                <result column="community_id" property="communityId" />
+                <result column="rota_date" property="rotaDate" />
+                <result column="rota_leader" property="rotaLeader" />
+                <result column="leader_phone" property="leaderPhone" />
+                <result column="rota_person" property="rotaPerson" />
+                <result column="person_phone" property="personPhone" />
+                <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, community_id, rota_date, rota_leader, leader_phone, rota_person, person_phone, create_at, create_by, update_at, update_by
+    </sql>
+
+    <select id="pageRota" resultType="com.panzhihua.common.model.vos.community.ComSwRotaVO">
+        SELECT
+            csr.id,
+            csr.community_id,
+            csr.rota_date,
+            csr.rota_leader,
+            csr.leader_name,
+            csr.leader_phone,
+            csr.rota_person,
+            csr.person_name,
+            csr.person_phone
+        FROM
+            com_sw_rota csr
+        where csr.community_id = ${comSwRotaPageDTO.communityId}
+        <if test='comSwRotaPageDTO.rotaPerson != null and comSwRotaPageDTO.rotaPerson != ""'>
+            AND (csr.leader_name LIKE concat('%',#{comSwRotaPageDTO.rotaPerson},'%')
+                or csr.person_name LIKE concat('%',#{comSwRotaPageDTO.rotaPerson},'%')
+                )
+        </if>
+        <if test='comSwRotaPageDTO.phone != null and comSwRotaPageDTO.phone != ""'>
+            AND (csr.person_phone LIKE concat('%',#{comSwRotaPageDTO.phone},'%')
+            or csr.leader_phone LIKE concat('%',#{comSwRotaPageDTO.phone},'%')
+            )
+        </if>
+        order by csr.rota_date desc
+    </select>
+    <select id="getTeamIdsByTeamPhone" resultType="java.lang.String">
+        select id
+        from com_pb_service_team
+        where phone = #{teamPhone}
+    </select>
+
+    <select id="getImageUrl" resultType="Map">
+        select `name`,phone,url from com_pb_service_team where id = #{userId}
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwSafetyWorkRecordMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwSafetyWorkRecordMapper.xml
new file mode 100644
index 0000000..866d4ae
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComSwSafetyWorkRecordMapper.xml
@@ -0,0 +1,83 @@
+<?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.ComSwSafetyWorkRecordDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComSwSafetyWorkRecordDO">
+        <id column="id" property="id" />
+        <result column="remark" property="remark" />
+        <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, remark, create_at, create_by, update_at, update_by
+    </sql>
+
+    <select id="pageSafetyWorkRecord" resultType="com.panzhihua.common.model.vos.community.ComSwSafetyWorkRecordVO">
+        SELECT
+        csswr.id,
+        cspr.community_id AS communityId,
+        cspr.patrol_time AS patrolTime,
+        cspr.patrol_type AS patrolType,
+        cspr.patrol_person AS patrolPerson,
+        cspr.address,
+        cspr.record_content AS recordContent,
+        cspr.find_record AS findRecord,
+        cspr.record_photo AS recordPhoto,
+        csswr.remark,
+        cspr.create_at AS createAt,
+        cspr.create_by AS createBy,
+        t.name as communityName
+        FROM
+        com_sw_safety_work_record as csswr
+        left join com_sw_patrol_record_report as csprr on csprr.report_id = csswr.id
+        left join com_sw_patrol_record as cspr on csprr.patrol_record_id = cspr.id
+        left join com_act t on cspr.community_id = t.community_id
+        <where>
+            <if test='comSwPatrolRecordDTO.communityId != null and comSwPatrolRecordDTO.communityId != 0'>
+                AND cspr.community_id = ${comSwPatrolRecordDTO.communityId}
+            </if>
+            <if test='comSwPatrolRecordDTO.areaCode != null'>
+                AND t.area_code = #{comSwPatrolRecordDTO.areaCode}
+            </if>
+            <if test='comSwPatrolRecordDTO.patrolPerson != null and comSwPatrolRecordDTO.patrolPerson != ""'>
+                AND cspr.person_name LIKE concat('%',#{comSwPatrolRecordDTO.patrolPerson},'%')
+            </if>
+            <if test='comSwPatrolRecordDTO.patrolType != null and comSwPatrolRecordDTO.patrolType != ""'>
+                AND cspr.patrol_type LIKE concat('%',#{comSwPatrolRecordDTO.patrolType},'%')
+            </if>
+            <if test='comSwPatrolRecordDTO.patrolAtBegin != null and comSwPatrolRecordDTO.patrolAtBegin != ""'>
+                AND cspr.patrol_time <![CDATA[ >= ]]> #{comSwPatrolRecordDTO.patrolAtBegin}
+            </if>
+            <if test='comSwPatrolRecordDTO.patrolAtEnd != null and comSwPatrolRecordDTO.patrolAtEnd != ""'>
+                AND cspr.patrol_time <![CDATA[ <= ]]> #{comSwPatrolRecordDTO.patrolAtEnd}
+            </if>
+        </where>
+        order by csswr.create_at desc
+    </select>
+
+    <select id="patrolRecordStatistics" resultType="com.panzhihua.common.model.vos.community.ComSwPatrolRecordStatisticsVO">
+        select count(id) as patrolRecordTotal
+             ,(select count(id) from com_sw_patrol_record where community_id = ${communityId} and patrol_type LIKE concat('%','1','%')) as huoTotal
+             ,(select count(id) from com_sw_patrol_record where community_id = ${communityId} and patrol_type LIKE concat('%','2','%')) as xunTotal
+             ,(select count(id) from com_sw_patrol_record where community_id = ${communityId} and patrol_type LIKE concat('%','3','%')) as yiTotal
+             ,(select count(t2.id) from com_sw_patrol_record t INNER JOIN com_sw_patrol_record_report t1  on t.id = t1.patrol_record_id INNER JOIN com_sw_safety_work_record t2 on t1.report_id = t2.id where t.community_id = ${communityId}) as safetyWorkTotal
+             ,(select count(t2.id) from com_sw_patrol_record t INNER JOIN com_sw_patrol_record_report t1  on t.id = t1.patrol_record_id INNER JOIN com_sw_danger_report t2 on t1.report_id = t2.id where t.community_id = ${communityId}) as dangerTotal
+             ,(select count(t2.id) from com_sw_patrol_record t INNER JOIN com_sw_patrol_record_report t1  on t.id = t1.patrol_record_id INNER JOIN com_sw_danger_report t2 on t1.report_id = t2.id where t.community_id = ${communityId} and status = '3') as handledDangerTotal
+             ,(select count(t2.id) from com_sw_patrol_record t INNER JOIN com_sw_patrol_record_report t1  on t.id = t1.patrol_record_id INNER JOIN com_sw_danger_report t2 on t1.report_id = t2.id where t.community_id = ${communityId} and danger_type like CONCAT('%','1','%')) as huoDangerTotal
+             ,(select count(t2.id) from com_sw_patrol_record t INNER JOIN com_sw_patrol_record_report t1  on t.id = t1.patrol_record_id INNER JOIN com_sw_danger_report t2 on t1.report_id = t2.id where t.community_id = ${communityId} and danger_type like CONCAT('%','2','%')) as xunDangerTotal
+             ,(select count(t2.id) from com_sw_patrol_record t INNER JOIN com_sw_patrol_record_report t1  on t.id = t1.patrol_record_id INNER JOIN com_sw_danger_report t2 on t1.report_id = t2.id where t.community_id = ${communityId} and danger_type like CONCAT('%','3','%')) as yiDangerTotal
+             ,(select count(t2.id) from com_sw_patrol_record t INNER JOIN com_sw_patrol_record_report t1  on t.id = t1.patrol_record_id INNER JOIN com_sw_danger_report t2 on t1.report_id = t2.id where t.community_id = ${communityId} and danger_type like CONCAT('%','1','%') and status = '3' ) as huoHandledDangerTotal
+             ,(select count(t2.id) from com_sw_patrol_record t INNER JOIN com_sw_patrol_record_report t1  on t.id = t1.patrol_record_id INNER JOIN com_sw_danger_report t2 on t1.report_id = t2.id where t.community_id = ${communityId} and danger_type like CONCAT('%','1','%') and status in ('1','2')) as huoHandlingDangerTotal
+             ,(select count(t2.id) from com_sw_patrol_record t INNER JOIN com_sw_patrol_record_report t1  on t.id = t1.patrol_record_id INNER JOIN com_sw_danger_report t2 on t1.report_id = t2.id where t.community_id = ${communityId} and danger_type like CONCAT('%','2','%') and status = '3' ) as xunHandledDangerTotal
+             ,(select count(t2.id) from com_sw_patrol_record t INNER JOIN com_sw_patrol_record_report t1  on t.id = t1.patrol_record_id INNER JOIN com_sw_danger_report t2 on t1.report_id = t2.id where t.community_id = ${communityId} and danger_type like CONCAT('%','2','%') and status in ('1','2')) as xunHandlingDangerTotal
+             ,(select count(t2.id) from com_sw_patrol_record t INNER JOIN com_sw_patrol_record_report t1  on t.id = t1.patrol_record_id INNER JOIN com_sw_danger_report t2 on t1.report_id = t2.id where t.community_id = ${communityId} and danger_type like CONCAT('%','3','%') and status = '3' ) as yiHandledDangerTotal
+             ,(select count(t2.id) from com_sw_patrol_record t INNER JOIN com_sw_patrol_record_report t1  on t.id = t1.patrol_record_id INNER JOIN com_sw_danger_report t2 on t1.report_id = t2.id where t.community_id = ${communityId} and danger_type like CONCAT('%','3','%') and status in ('1','2')) as yiHandlingDangerTotal
+        from com_sw_patrol_record as cmp where community_id = ${communityId}
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComVeteransPopulationMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComVeteransPopulationMapper.xml
new file mode 100644
index 0000000..f087c38
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ComVeteransPopulationMapper.xml
@@ -0,0 +1,68 @@
+<?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.ComVeteransPopulationDAO">
+
+        <!-- 通用查询映射结果 -->
+        <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ComVeteransPopulationDO">
+                    <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="name" property="name" />
+                    <result column="card_no" property="cardNo" />
+                    <result column="phone" property="phone" />
+                    <result column="person_status" property="personStatus" />
+                    <result column="organization" property="organization" />
+                    <result column="photo" property="photo" />
+                    <result column="regiter_nature" property="regiterNature" />
+                    <result column="enlist_date" property="enlistDate" />
+                    <result column="retire_date" property="retireDate" />
+                    <result column="person_category" property="personCategory" />
+                    <result column="house_situation" property="houseSituation" />
+                    <result column="house_situation_other" property="houseSituationOther" />
+                    <result column="build_area" property="buildArea" />
+                    <result column="employment_situation" property="employmentSituation" />
+                    <result column="incumbency_type" property="incumbencyType" />
+                    <result column="employment_situation_other" property="employmentSituationOther" />
+                    <result column="endowment_insurance" property="endowmentInsurance" />
+                    <result column="medical_insurance" property="medicalInsurance" />
+                    <result column="annual_income" property="annualIncome" />
+                    <result column="father_healthy" property="fatherHealthy" />
+                    <result column="mother_healthy" property="motherHealthy" />
+                    <result column="spouse_healthy" property="spouseHealthy" />
+                    <result column="son_healthy" property="sonHealthy" />
+                    <result column="daughter_dealthy" property="daughterDealthy" />
+                    <result column="main_difficulty" property="mainDifficulty" />
+                    <result column="other_difficulty" property="otherDifficulty" />
+                    <result column="main_demand" property="mainDemand" />
+                    <result column="main_demand_other" property="mainDemandOther" />
+                    <result column="academic_training" property="academicTraining" />
+                    <result column="is_veterans_training" property="isVeteransTraining" />
+                    <result column="education_before_enlistment" property="educationBeforeEnlistment" />
+                    <result column="re_education" property="reEducation" />
+                    <result column="major" property="major" />
+                    <result column="major_other" property="majorOther" />
+                    <result column="once_engaged_industry" property="onceEngagedIndustry" />
+                    <result column="once_engaged_industry_other" property="onceEngagedIndustryOther" />
+                    <result column="intended_place_of_employment" property="intendedPlaceOfEmployment" />
+                    <result column="intended_place_of_employment_other" property="intendedPlaceOfEmploymentOther" />
+                    <result column="unemploymed_engaged_industry" property="unemploymedEngagedIndustry" />
+                    <result column="unemploymed_engaged_industry_other" property="unemploymedEngagedIndustryOther" />
+                    <result column="is_business" property="isBusiness" />
+                    <result column="business_desire" property="businessDesire" />
+                    <result column="remark" property="remark" />
+                    <result column="fill_unit" property="fillUnit" />
+                    <result column="fill_person" property="fillPerson" />
+                    <result column="fill_person_phone" property="fillPersonPhone" />
+                    <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, name, card_no, phone, person_status, organization, photo, regiter_nature, enlist_date, retire_date, person_category, house_situation, house_situation_other, build_area, employment_situation, incumbency_type, employment_situation_other, endowment_insurance, medical_insurance, annual_income, father_healthy, mother_healthy, spouse_healthy, son_healthy, daughter_dealthy, main_difficulty, other_difficulty, main_demand, main_demand_other, academic_training, is_veterans_training, education_before_enlistment, re_education, major, major_other, once_engaged_industry, once_engaged_industry_other, intended_place_of_employment, intended_place_of_employment_other, unemploymed_engaged_industry, unemploymed_engaged_industry_other, is_business, business_desire, remark, fill_unit, fill_person, fill_person_phone, create_at, create_by, update_at, update_by
+    </sql>
+
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientConsultationStatisticsMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientConsultationStatisticsMapper.xml
new file mode 100644
index 0000000..aaddaf3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientConsultationStatisticsMapper.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.ConvenientConsultationStatisticsDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ConvenientConsultationStatisticsDO">
+                <id column="id" property="id" />
+                <id column="merchant_id" property="merchantId" />
+                <id column="statistic_date" property="statisticDate" />
+                <id column="consultation_volume" property="consultationVolume" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id,merchant_id,statistic_date,consultation_volume
+    </sql>
+    <insert id="createTodayStatistic">
+        INSERT INTO com_convenient_consultation_statistics (merchant_id, statistic_date) VALUES (#{merchantId}, NOW())
+    </insert>
+    <update id="incrConsultationNum">
+        UPDATE com_convenient_consultation_statistics SET consultation_volume = consultation_volume + 1
+        WHERE merchant_id = #{merchantId} AND statistic_date = #{nowDate}
+    </update>
+    <select id="selectMonthConsultationVolume" resultType="java.lang.Integer">
+        SELECT IF(SUM(consultation_volume) IS NULL,0,SUM(consultation_volume))
+        FROM com_convenient_consultation_statistics
+        WHERE merchant_id = #{merchantId} AND (statistic_date LIKE CONCAT(#{moth}, '%') OR statistic_date IS NULL)
+    </select>
+    <select id="selectDayConsultationVolume" resultType="java.lang.Integer">
+        SELECT IF(SUM(consultation_volume) IS NULL,0,SUM(consultation_volume))
+        FROM com_convenient_consultation_statistics
+        WHERE merchant_id = #{merchantId} AND (statistic_date = #{day} OR statistic_date IS NULL)
+    </select>
+    <select id="selectSumForConsultationNum" resultType="com.panzhihua.common.model.vos.community.convenient.ConvenientConsultationStatisticsVO">
+        SELECT merchant_id, SUM(consultation_volume) AS totalConsultationNum
+        FROM com_convenient_consultation_statistics GROUP BY merchant_id
+    </select>
+    <select id="selectTotalConsultationVolume" resultType="java.lang.Integer">
+        SELECT IF(SUM(consultation_volume) IS NULL,0,SUM(consultation_volume))
+        FROM com_convenient_consultation_statistics
+        WHERE merchant_id = #{merchantId}
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientGoodsCategoryMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientGoodsCategoryMapper.xml
new file mode 100644
index 0000000..539f2d3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientGoodsCategoryMapper.xml
@@ -0,0 +1,55 @@
+<?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.ConvenientGoodsCategoryDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ConvenientGoodsCategoryDO">
+        <id column="id" property="id"/>
+        <id column="name" property="name"/>
+        <id column="icon" property="icon"/>
+        <id column="remark" property="remark"/>
+        <id column="weight" property="weight"/>
+        <id column="is_del" property="isDel"/>
+        <id column="created_at" property="createdAt"/>
+        <id column="created_by" property="createdBy"/>
+        <id column="updated_at" property="updatedAt"/>
+        <id column="updated_by" property="updatedBy"/>
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+    id,`name`,icon,remark,weight,is_del,created_at,created_by,updated_at,updated_by
+    </sql>
+
+    <select id="pageGoodsCategory"
+            resultType="com.panzhihua.common.model.vos.community.convenient.ConvenientGoodsCategoryVO">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM com_convenient_goods_categories
+        WHERE is_del = 0
+        <if test="pageConvenientGoodsCategoryDTO.name != null and pageConvenientGoodsCategoryDTO.name.trim() != &quot;&quot;">
+            AND `name` LIKE concat('%', #{pageConvenientGoodsCategoryDTO.name}, '%' )
+        </if>
+        <if test="pageConvenientGoodsCategoryDTO.areaCode != null and pageConvenientGoodsCategoryDTO.areaCode.trim() != &quot;&quot;">
+            AND area_code = #{pageConvenientGoodsCategoryDTO.areaCode}
+        </if>
+        ORDER BY weight DESC
+    </select>
+    <delete id="deleteGoodsCategoryRelation">
+        DELETE FROM com_convenient_goods_scope WHERE goods_id = #{goodsId}
+    </delete>
+    <select id="selectCategoryScopeByGoodsId" resultType="java.lang.String">
+        SELECT GROUP_CONCAT(`goods_category_name`) serviceScope FROM com_convenient_goods_scope WHERE goods_id = #{goodsId}
+    </select>
+    <select id="selectCategoryIdsForGoods" resultType="java.lang.Long">
+        SELECT goods_category_id FROM com_convenient_goods_scope WHERE goods_id = #{goodsId}
+    </select>
+    <select id="checkCategoryIsUsing" resultType="java.lang.Integer">
+        SELECT COUNT(1) FROM com_convenient_goods_scope WHERE goods_category_id = #{categoryId}
+    </select>
+    <insert id="createGoodsCategoryRelation">
+        INSERT INTO com_convenient_goods_scope (id,goods_id, goods_category_id, goods_category_name, created_by, created_at)
+        VALUES (#{id},#{goodsId}, #{goodsCategoryId}, #{goodsCategoryName}, #{createdBy}, NOW())
+    </insert>
+
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientMerchantMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientMerchantMapper.xml
new file mode 100644
index 0000000..dd90593
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientMerchantMapper.xml
@@ -0,0 +1,338 @@
+<?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.ConvenientMerchantDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ConvenientMerchantDO">
+                <id column="id" property="id" />
+                <id column="name" property="name" />
+                <id column="community_id" property="communityId" />
+                <id column="community_name" property="communityName" />
+                <id column="logo" property="logo" />
+                <id column="contacts" property="contacts" />
+                <id column="id_card" property="idCard" />
+                <id column="phone" property="phone" />
+                <id column="address" property="address" />
+                <id column="address" property="address" />
+                <id column="detailed_address" property="detailedAddress" />
+                <id column="lat" property="lat" />
+                <id column="lon" property="lon" />
+                <id column="begin_at" property="beginAt" />
+                <id column="end_at" property="endAt" />
+                <id column="period" property="period" />
+                <id column="introduction" property="introduction" />
+                <id column="business_status" property="businessStatus" />
+                <id column="user_id" property="userId" />
+                <id column="consultation_volume" property="consultationVolume" />
+                <id column="view_num" property="viewNum" />
+                <id column="is_del" property="isDel" />
+                <id column="created_at" property="createdAt" />
+                <id column="created_by" property="createdBy" />
+                <id column="updated_at" property="updatedAt" />
+                <id column="updated_by" property="updatedBy" />
+                <id column="area_code" property="areaCode" />
+                <id column="service_range" property="serviceRange" />
+                <id column="mobile_phone" property="mobilePhone" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id,`name`,community_id,community_name,logo,contacts,id_card,phone,address,lat,lon,begin_at,end_at,period,introduction,
+        business_status,user_id,consultation_volume,is_del,created_at,created_by,updated_at,updated_by,area_code,service_range,mobile_phone,detailed_address
+    </sql>
+    <select id="pageMerchant" resultType="com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO">
+        SELECT ccm.*, su.account, su.status AS accountStatus, GROUP_CONCAT(ccss.service_name) AS serviceScope
+        FROM  com_convenient_merchants ccm
+        LEFT JOIN sys_user su ON ccm.user_id = su.user_id
+        LEFT JOIN com_convenient_service_scope ccss ON ccm.id = ccss.merchant_id
+        WHERE ccm.is_del = 0
+        <if test="pageConvenientMerchantDTO.serviceId != null and pageConvenientMerchantDTO.serviceId != 0">
+            AND ccss.service_category_id = #{pageConvenientMerchantDTO.serviceId}
+        </if>
+        <if test="pageConvenientMerchantDTO.accountStatus != null">
+            AND su.status = #{pageConvenientMerchantDTO.accountStatus}
+        </if>
+        <if test="pageConvenientMerchantDTO.communityId != null and pageConvenientMerchantDTO.communityId != 0">
+            AND ccm.community_id = ${pageConvenientMerchantDTO.communityId}
+        </if>
+        <if test="pageConvenientMerchantDTO.areaCode != null and pageConvenientMerchantDTO.areaCode != ''">
+            AND ccm.area_code = ${pageConvenientMerchantDTO.areaCode}
+        </if>
+        <if test="pageConvenientMerchantDTO.businessStatus != null">
+            AND ccm.business_status = #{pageConvenientMerchantDTO.businessStatus}
+        </if>
+        <if test="pageConvenientMerchantDTO.keyword != null and pageConvenientMerchantDTO.keyword != &quot;&quot;">
+            AND (
+                    ccm.name LIKE CONCAT('%', #{pageConvenientMerchantDTO.keyword}, '%')
+                    OR ccm.address LIKE CONCAT('%', #{pageConvenientMerchantDTO.keyword}, '%')
+                    OR ccm.phone LIKE CONCAT('%', #{pageConvenientMerchantDTO.keyword}, '%')
+                )
+        </if>
+        GROUP BY ccm.id ORDER BY ccm.created_at DESC
+    </select>
+    <select id="selectMerchantById" resultType="com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO">
+        SELECT ccm.*, su.account, su.status AS accountStatus
+        FROM  com_convenient_merchants ccm
+        LEFT JOIN sys_user su ON ccm.user_id = su.user_id
+        WHERE ccm.id = #{merchantId}
+    </select>
+
+    <select id="selectMerchantByUserId" resultType="com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO">
+        SELECT ccm.*, su.account, su.status AS accountStatus
+        FROM  com_convenient_merchants ccm
+        LEFT JOIN sys_user su ON ccm.user_id = su.user_id
+        WHERE ccm.user_id = #{userId}
+    </select>
+
+    <select id="selectMerchantByName" resultType="com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO">
+        SELECT
+            temp.id,
+            temp.NAME,
+            temp.introduction,
+            temp.logo,
+            temp.serviceScope,
+        IF
+            (
+                SUM( temp.consultation_volume ) IS NULL,
+                0,
+            SUM( temp.consultation_volume )) AS monthConsultationVolume
+        FROM
+            (
+            SELECT
+                ccm.id,
+                ccm.NAME,
+                ccm.introduction,
+                ccm.logo,
+                cccs.consultation_volume,
+                GROUP_CONCAT( ccss.service_name ) AS serviceScope
+            FROM
+                com_convenient_merchants ccm
+                LEFT JOIN (
+                SELECT
+                    *
+                FROM
+                    com_convenient_consultation_statistics
+                WHERE
+                    statistic_date LIKE #{currentMon}) cccs ON ccm.id = cccs.merchant_id
+                    LEFT JOIN com_convenient_service_scope ccss ON ccm.id = ccss.merchant_id
+                WHERE
+                    ( ccm.community_id = ${communityId} or ccm.community_id = 0)  AND ccm.business_status = 1 and ccm.is_del = 0 and ccm.`name` = '犇师傅维修中心' GROUP BY cccs.id
+                    ) temp
+                GROUP BY
+                    temp.id
+            ORDER BY
+            SUM( temp.consultation_volume ) DESC
+    </select>
+    <select id="getPopularMerchants" resultType="com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO">
+        SELECT
+            temp.id, temp.name, temp.introduction, temp.logo,
+            temp.serviceScope, IF(SUM(cccs.consultation_volume) is null, 0, SUM(cccs.consultation_volume)) as monthConsultationVolume
+        FROM (
+            SELECT
+                ccm.id, ccm.name, ccm.introduction, ccm.logo,
+                GROUP_CONCAT(ccss.service_name) AS serviceScope
+            FROM com_convenient_merchants ccm
+            LEFT JOIN com_convenient_service_scope ccss ON ccm.id = ccss.merchant_id
+            WHERE ccm.area_code=#{areaCode} and  ( ccm.community_id = ${communityId} or ccm.community_id = 0)
+            AND ccm.business_status = 1 and ccm.is_del = 0 and ccm.`name` != '犇师傅维修中心'
+            GROUP BY ccm.id
+        ) temp
+        LEFT JOIN (SELECT * FROM com_convenient_consultation_statistics WHERE statistic_date LIKE #{currentMon}) cccs ON temp.id = cccs.merchant_id
+        GROUP BY temp.id ORDER BY SUM(cccs.consultation_volume) DESC
+    </select>
+    <select id="getClassifyMerchants" resultType="com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO">
+        SELECT
+            temp.id, temp.name, temp.introduction, temp.logo,
+            IF(SUM(temp.consultation_volume) is null,0,SUM(temp.consultation_volume)) as monthConsultationVolume
+        FROM (
+            SELECT
+                ccm.id, ccm.name, ccm.introduction, ccm.logo, cccs.consultation_volume
+            FROM com_convenient_merchants ccm
+            LEFT JOIN (SELECT * FROM com_convenient_consultation_statistics WHERE statistic_date LIKE #{currentMon}) cccs ON ccm.id = cccs.merchant_id
+            LEFT JOIN com_convenient_service_scope ccss ON ccm.id = ccss.merchant_id
+            WHERE ccm.area_code=#{pageClassifyMerchantDTO.areaCode} and (ccm.community_id = ${pageClassifyMerchantDTO.communityId} or ccm.community_id = 0) and ccm.is_del = 0  AND ccm.business_status = 1 AND ccss.service_category_id = #{pageClassifyMerchantDTO.serviceId}
+        ) temp GROUP BY temp.id ORDER BY SUM(temp.consultation_volume) DESC
+    </select>
+    <select id="getMerchantDetail" resultType="com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO">
+        SELECT
+            temp.id, temp.name, temp.introduction, temp.logo, temp.phone, temp.begin_at, temp.end_at, temp.period,temp.detailed_address,
+            temp.address, temp.lat, temp.lon, temp.serviceScope, IF(SUM(temp.consultation_volume) is null,0,SUM(temp.consultation_volume)) as monthConsultationVolume
+        FROM (
+            SELECT
+                ccm.id, ccm.name, ccm.introduction, ccm.logo, ccm.phone, ccm.begin_at, ccm.end_at, ccm.period,ccm.detailed_address,
+                ccm.address, ccm.lat, ccm.lon, cccs.consultation_volume,GROUP_CONCAT(ccss.service_name) AS serviceScope
+            FROM com_convenient_merchants ccm
+            LEFT JOIN (SELECT * FROM com_convenient_consultation_statistics WHERE statistic_date LIKE #{currentMon}) cccs ON ccm.id = cccs.merchant_id
+            LEFT JOIN com_convenient_service_scope ccss ON ccm.id = ccss.merchant_id
+            WHERE ccm.id = #{merchantId} GROUP BY cccs.id
+        ) temp GROUP BY temp.id ORDER BY SUM(temp.consultation_volume) DESC
+    </select>
+    <select id="pageSearchMerchant" resultType="com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO">
+         SELECT
+            temp.id, temp.name, temp.introduction, temp.logo,temp.detailed_address,
+            temp.serviceScope, IF(SUM(temp.consultation_volume) is null,0,SUM(temp.consultation_volume)) as monthConsultationVolume
+        FROM (
+            SELECT
+                ccm.id, ccm.name, ccm.introduction, ccm.logo,ccm.detailed_address,
+                cccs.consultation_volume,GROUP_CONCAT(ccss.service_name) AS serviceScope
+            FROM com_convenient_merchants ccm
+            LEFT JOIN (SELECT * FROM com_convenient_consultation_statistics WHERE statistic_date LIKE #{currentMon}) cccs ON ccm.id = cccs.merchant_id
+            LEFT JOIN com_convenient_service_scope ccss ON ccm.id = ccss.merchant_id
+            WHERE (ccm.community_id = ${pageSearchDTO.communityId} or ccm.community_id = 0) AND ccm.business_status = 1 AND ccm.`name` LIKE CONCAT('%', #{pageSearchDTO.keyword}, '%')
+                AND ccm.is_del = 0 GROUP BY cccs.id
+        ) temp GROUP BY temp.id ORDER BY SUM(temp.consultation_volume) DESC
+    </select>
+    <select id="exportMerchantBySearch" resultType="com.panzhihua.common.model.vos.community.convenient.ExportMerchantVO">
+        SELECT ccm.*, su.account, su.status AS accountStatus, GROUP_CONCAT(ccss.service_name) AS serviceScope,
+            CONCAT(ccm.period,DATE_FORMAT(ccm.begin_at,'%T'),'~',DATE_FORMAT(ccm.end_at,'%T')) AS businessTime
+        FROM  com_convenient_merchants ccm
+        LEFT JOIN sys_user su ON ccm.user_id = su.user_id
+        LEFT JOIN com_convenient_service_scope ccss ON ccm.id = ccss.merchant_id
+        WHERE ccm.community_id = ${exportMerchantDTO.communityId} AND ccm.is_del = 0
+        <if test="exportMerchantDTO.serviceId != null and exportMerchantDTO.serviceId != 0">
+            AND ccss.service_category_id = #{exportMerchantDTO.serviceId}
+        </if>
+        <if test="exportMerchantDTO.accountStatus != null">
+            AND su.status = #{exportMerchantDTO.accountStatus}
+        </if>
+        <if test="exportMerchantDTO.businessStatus != null">
+            AND ccm.business_status = #{exportMerchantDTO.businessStatus}
+        </if>
+        <if test="exportMerchantDTO.keyword != null and exportMerchantDTO.keyword != &quot;&quot;">
+            AND (
+                    ccm.name LIKE CONCAT('%', #{exportMerchantDTO.keyword}, '%')
+                    OR ccm.address LIKE CONCAT('%', #{exportMerchantDTO.keyword}, '%')
+                    OR ccm.phone LIKE CONCAT('%', #{exportMerchantDTO.keyword}, '%')
+                    OR ccm.detailed_address  LIKE CONCAT('%', #{exportMerchantDTO.keyword}, '%')
+                )
+        </if>
+        GROUP BY ccm.id
+    </select>
+    <select id="exportMerchantByIds" resultType="com.panzhihua.common.model.vos.community.convenient.ExportMerchantVO">
+        SELECT ccm.*, su.account, su.status AS accountStatus, GROUP_CONCAT(ccss.service_name) AS serviceScope,
+        CONCAT(ccm.period,DATE_FORMAT(ccm.begin_at,'%T'),'~',DATE_FORMAT(ccm.end_at,'%T')) AS businessTime
+        FROM  com_convenient_merchants ccm
+        LEFT JOIN sys_user su ON ccm.user_id = su.user_id
+        LEFT JOIN com_convenient_service_scope ccss ON ccm.id = ccss.merchant_id
+        WHERE ccm.id IN
+            <foreach collection="needExportIds" open="(" separator="," close=")" index="index" item="item">
+                #{item}
+            </foreach>
+        GROUP BY ccm.id
+    </select>
+    <select id="selectMerchantListByCommunity"
+            resultType="com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO">
+        SELECT id, `name`, logo, lat, lon FROM com_convenient_merchants WHERE community_id = ${communityId} AND is_del = 0
+    </select>
+    <select id="getScreenPopularMerchants"
+            resultType="com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO">
+        SELECT * FROM (
+        SELECT id, `name`, consultation_volume, view_num
+        FROM com_convenient_merchants
+        WHERE area_code=#{pagePopularMerchantDTO.areaCode} and  (community_id = ${pagePopularMerchantDTO.communityId} OR community_id = 0) AND is_del = 0 ORDER BY (consultation_volume + consultation_volume) DESC LIMIT 100
+        ) temp
+    </select>
+    <select id="getIndexMerchantBaseData"
+            resultType="com.panzhihua.common.model.vos.community.bigscreen.BigScreenMerchantStatisticsInfo">
+        SELECT
+        (SELECT 0) AS resourceTypeNum,
+        (SELECT COUNT(id) FROM com_convenient_merchants WHERE (community_id = ${communityId} OR community_id = 0) AND is_del = 0) AS merchantNum,
+        (SELECT SUM(t1.consultation_volume)
+        FROM com_convenient_consultation_statistics t1
+        LEFT JOIN com_convenient_merchants t2 ON t1.merchant_id = t2.id
+        WHERE (t2.community_id = ${communityId} OR t2.community_id = 0)) AS serviceTimes
+    </select>
+    <select id="selectServiceTypeCircleData"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT t1.`name` AS filed, COUNT(t3.id) AS num
+        FROM com_convenient_service_categories t1
+        LEFT JOIN com_convenient_service_scope t2 ON t1.id = t2.service_category_id
+        LEFT JOIN com_convenient_merchants t3 ON t2.merchant_id = t3.id
+        WHERE (t3.community_id = ${communityId} OR t3.community_id = 0) AND t3.is_del = 0 GROUP BY t1.id
+    </select>
+    <select id="getServiceTimesAddPolylineData"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT filed, SUM(num) AS num FROM (
+        SELECT DATE_FORMAT( t1.statistic_date, '%Y-%m' ) AS filed, SUM(t1.consultation_volume) AS num
+        FROM com_convenient_consultation_statistics t1
+        LEFT JOIN com_convenient_merchants t2 ON t1.merchant_id = t2.id
+        WHERE (t2.community_id = ${communityId} OR t2.community_id = 0) AND DATE_FORMAT( t1.statistic_date, '%Y-%m' ) &gt; DATE_FORMAT(date_sub(curdate(), interval 12 month),'%Y-%m') GROUP BY filed
+                UNION ALL SELECT * FROM
+                (
+                    SELECT DATE_FORMAT(curdate(),'%Y-%m') AS filed, 0 AS num union
+                    SELECT DATE_FORMAT(date_sub(curdate(), interval 1 month),'%Y-%m') AS filed, 0 AS num union
+                    SELECT DATE_FORMAT(date_sub(curdate(), interval 2 month),'%Y-%m') AS filed, 0 AS num union
+                    SELECT DATE_FORMAT(date_sub(curdate(), interval 3 month),'%Y-%m') AS filed, 0 AS num union
+                    SELECT DATE_FORMAT(date_sub(curdate(), interval 4 month),'%Y-%m') AS filed, 0 AS num union
+                    SELECT DATE_FORMAT(date_sub(curdate(), interval 5 month),'%Y-%m') AS filed, 0 AS num union
+                    SELECT DATE_FORMAT(date_sub(curdate(), interval 6 month),'%Y-%m') AS filed, 0 AS num union
+                    SELECT DATE_FORMAT(date_sub(curdate(), interval 7 month),'%Y-%m') AS filed, 0 AS num union
+                    SELECT DATE_FORMAT(date_sub(curdate(), interval 8 month),'%Y-%m') AS filed, 0 AS num union
+                    SELECT DATE_FORMAT(date_sub(curdate(), interval 9 month),'%Y-%m') AS filed, 0 AS num union
+                    SELECT DATE_FORMAT(date_sub(curdate(), interval 10 month),'%Y-%m') AS filed, 0 AS num union
+                    SELECT DATE_FORMAT(date_sub(curdate(), interval 11 month),'%Y-%m') AS filed, 0 AS num
+                ) temT
+        ) temp GROUP BY filed ORDER BY filed ASC
+    </select>
+    <select id="getServiceTimesTotalPolylineDate"
+            resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+        SELECT IF(SUM(t1.consultation_volume) IS NULL,0,SUM(t1.consultation_volume)) AS num
+        FROM com_convenient_consultation_statistics t1
+        LEFT JOIN com_convenient_merchants t2 ON t1.merchant_id = t2.id
+        WHERE (t2.community_id = ${communityId} OR t2.community_id = 0) AND DATE_FORMAT( t1.statistic_date, '%Y-%m' ) &lt;= #{date}
+    </select>
+    <select id="indexMerchantList"
+            resultType="com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO">
+        SELECT t1.id, t1.`name`, t1.logo, t1.introduction, GROUP_CONCAT(t2.`service_name`) serviceScope
+        FROM com_convenient_merchants t1
+        LEFT JOIN com_convenient_service_scope t2 ON t1.id = t2.merchant_id
+        WHERE (t1.community_id = ${pageBaseDTO.communityId} OR t1.community_id = 0)
+        <if test="pageBaseDTO.paramId != null">
+            AND t2.service_category_id = #{pageBaseDTO.paramId}
+        </if>
+        GROUP BY t1.id ORDER BY t1.id DESC
+    </select>
+    <update id="deleteMerchantById">
+        UPDATE com_convenient_merchants SET is_del = 1, updated_by = #{operator} WHERE id = #{merchantId}
+    </update>
+    <update id="batchUpdateMerchantConsultationNum">
+        UPDATE `com_convenient_merchants` SET consultation_volume = CASE id
+        <foreach collection="consultationVOList" item="item" index="index">
+            WHEN #{item.merchantId} THEN #{item.totalConsultationNum}
+        </foreach>
+        END
+        WHERE id = CASE id
+        <foreach collection="consultationVOList" item="item" index="index">
+            WHEN #{item.merchantId} THEN #{item.merchantId}
+        </foreach>
+        END
+    </update>
+    <update id="batchUpdateMerchantViewNum">
+        UPDATE `com_convenient_merchants` SET view_num = CASE id
+        <foreach collection="viewVOList" item="item" index="index">
+            WHEN #{item.merchantId} THEN #{item.totalViewNum}
+        </foreach>
+        END
+        WHERE id = CASE id
+        <foreach collection="viewVOList" item="item" index="index">
+            WHEN #{item.merchantId} THEN #{item.merchantId}
+        </foreach>
+        END
+    </update>
+    <update id="batchUpdateBusinessStatus">
+        UPDATE `com_convenient_merchants` SET business_status = #{status}
+        WHERE id IN
+        <foreach collection="convenientMerchantDOList" open="(" separator="," close=")" item="item" index="index">
+            #{item.id}
+        </foreach>
+    </update>
+
+    <select id="getMerchantDetailByAccount" resultType="com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO">
+        SELECT
+        ccm.id, ccm.name, ccm.introduction, ccm.logo, ccm.phone, ccm.begin_at, ccm.end_at, ccm.period,ccm.detailed_address,
+        ccm.address, ccm.lat, ccm.lon,u.status account_status,u.account,ccm.business_status
+        FROM com_convenient_merchants ccm LEFT JOIN sys_user u on ccm.user_id = u.user_id WHERE u.type = 5
+        and u.account = #{account}
+
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientProductCategoryMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientProductCategoryMapper.xml
new file mode 100644
index 0000000..3dedcb3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientProductCategoryMapper.xml
@@ -0,0 +1,38 @@
+<?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.ConvenientProductCategoryDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ConvenientProductCategoryDO">
+                <id column="id" property="id" />
+                <id column="name" property="name" />
+                <id column="merchant_id" property="merchantId" />
+                <id column="remark" property="remark" />
+                <id column="weight" property="weight" />
+                <id column="is_del" property="isDel" />
+                <id column="created_at" property="createdAt" />
+                <id column="created_by" property="createdBy" />
+                <id column="updated_at" property="updatedAt" />
+                <id column="updated_by" property="updatedBy" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+    id,`name`,merchant_id,remark,weight,is_del,created_at,created_by,updated_at,updated_by
+    </sql>
+    <select id="pageProductCategory" resultType="com.panzhihua.common.model.vos.community.convenient.ConvenientProductCategoryVO">
+        SELECT <include refid="Base_Column_List"/>
+        FROM com_convenient_product_categories
+        WHERE is_del = 0 AND merchant_id = #{pageConvenientProductCategoryDTO.merchantId}
+        <if test="pageConvenientProductCategoryDTO.name != null and pageConvenientProductCategoryDTO.name.trim() != &quot;&quot;">
+            AND `name` LIKE concat('%', #{pageConvenientProductCategoryDTO.name}, '%' )
+        </if>
+        ORDER BY weight DESC
+    </select>
+    <select id="selectAllCategories" resultType="com.panzhihua.common.model.vos.community.convenient.ConvenientProductCategoryVO">
+        SELECT <include refid="Base_Column_List"/>
+        FROM com_convenient_product_categories
+        WHERE is_del = 0 AND merchant_id = #{merchantId} ORDER BY weight DESC
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientProductMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientProductMapper.xml
new file mode 100644
index 0000000..db1e264
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientProductMapper.xml
@@ -0,0 +1,84 @@
+<?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.ConvenientProductDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ConvenientProductDO">
+                <id column="id" property="id" />
+                <id column="name" property="name" />
+                <id column="category_id" property="categoryId" />
+                <id column="merchant_id" property="merchantId" />
+                <id column="on_shelf" property="onShelf" />
+                <id column="on_shelf_at" property="onShelfAt" />
+                <id column="introduction" property="introduction" />
+                <id column="is_del" property="isDel" />
+                <id column="view_num" property="viewNum" />
+                <id column="created_at" property="createdAt" />
+                <id column="created_by" property="createdBy" />
+                <id column="updated_at" property="updatedAt" />
+                <id column="updated_by" property="updatedBy" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id,`name`,category_id,merchant_id,on_shelf,on_shelf_at,introduction,is_del,view_num,created_at,created_by,updated_at,updated_by
+    </sql>
+    <update id="batchDeleteByIds">
+        UPDATE com_convenient_products SET is_del = 1 WHERE id IN
+        <foreach collection="needDelIds" open="(" separator="," close=")" index="index" item="item">
+            #{item}
+        </foreach>
+    </update>
+    <update id="batchOnShelfOrOffShelfByIds">
+        UPDATE com_convenient_products SET on_shelf = #{saleStatus},
+         <if test="saleStatus">
+             on_shelf_at = NOW(),
+         </if>
+        updated_by = #{updatedBy} WHERE id IN
+        <foreach collection="needDealIds" open="(" separator="," close=")" index="index" item="item">
+            #{item}
+        </foreach>
+    </update>
+    <update id="incrProductView">
+        UPDATE com_convenient_products SET view_num = view_num + 1 WHERE id = #{productId}
+    </update>
+    <select id="pageProduct" resultType="com.panzhihua.common.model.vos.community.convenient.ConvenientProductVO">
+        SELECT ccp.id, ccp.name,ccpc.name AS categoryName,ccp.view_num,ccp.on_shelf
+        FROM com_convenient_products ccp
+        LEFT JOIN com_convenient_product_categories ccpc ON ccp.category_id = ccpc.id
+        WHERE ccp.merchant_id = #{pageConvenientProductDTO.merchantId} AND ccp.is_del = 0
+        <if test="pageConvenientProductDTO.name != null and pageConvenientProductDTO.name != &quot;&quot;">
+            AND ccp.name LIKE CONCAT('%', #{pageConvenientProductDTO.name}, '%')
+        </if>
+        <if test="pageConvenientProductDTO.categoryId != null and pageConvenientProductDTO.categoryId != 0">
+            AND ccp.category_id = #{pageConvenientProductDTO.categoryId}
+        </if>
+        <if test="pageConvenientProductDTO.onShelf != null">
+            AND ccp.on_shelf = #{pageConvenientProductDTO.onShelf}
+        </if>
+        ORDER BY ccp.created_at DESC
+    </select>
+    <select id="getMerchantProduct" resultType="com.panzhihua.common.model.vos.community.convenient.ConvenientProductVO">
+        SELECT  ccp.id, ccp.name, ccp.category_id, ccp.on_shelf_at, ccp.introduction, ccpc.name AS categoryName
+        FROM com_convenient_products ccp
+        LEFT JOIN com_convenient_product_categories ccpc ON ccp.category_id = ccpc.id
+        INNER JOIN com_convenient_product_specifications ccps ON ccp.id = ccps.product_id
+        WHERE ccp.merchant_id = #{merchantId} AND ccp.is_del = 0
+        AND ccp.on_shelf = 1 AND ccps.is_del = 0 GROUP BY ccp.id ORDER BY ccpc.weight DESC
+    </select>
+    <select id="getProductSpecifications" resultType="com.panzhihua.common.model.vos.community.convenient.ConvenientProductSpecificationVO">
+        SELECT  ccps.id, ccps.name, ccps.price, ccps.image, ccps.product_id
+        FROM com_convenient_products ccp
+        LEFT JOIN com_convenient_product_categories ccpc ON ccp.category_id = ccpc.id
+        INNER JOIN com_convenient_product_specifications ccps ON ccp.id = ccps.product_id
+        WHERE ccp.merchant_id = #{merchantId} AND ccp.is_del = 0 AND ccp.on_shelf = 1 AND ccps.is_del = 0
+    </select>
+    <select id="pageSearchProduct" resultType="com.panzhihua.common.model.vos.community.convenient.ConvenientProductVO">
+        SELECT ccp.id,ccp.`name`,ccp.category_id,ccp.merchant_id,ccp.introduction
+        FROM com_convenient_products ccp
+        LEFT JOIN com_convenient_merchants ccm  ON  ccp.merchant_id = ccm.id
+        INNER JOIN com_convenient_product_specifications ccps ON ccp.id = ccps.product_id
+        WHERE (ccm.community_id = ${pageSearchDTO.communityId} or ccm.community_id = 0) AND ccp.is_del = 0
+        AND ccp.on_shelf = 1 AND ccps.is_del = 0 AND ccp.`name` LIKE CONCAT('%', #{pageSearchDTO.keyword}, '%') GROUP BY ccp.id
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientProductSpecificationMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientProductSpecificationMapper.xml
new file mode 100644
index 0000000..1e8eec7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientProductSpecificationMapper.xml
@@ -0,0 +1,46 @@
+<?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.ConvenientProductSpecificationDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ConvenientProductSpecificationDO">
+                <id column="id" property="id" />
+                <id column="name" property="name" />
+                <id column="price" property="price" />
+                <id column="image" property="image" />
+                <id column="product_id" property="productId" />
+                <id column="is_del" property="isDel" />
+                <id column="created_at" property="createdAt" />
+                <id column="created_by" property="createdBy" />
+                <id column="updated_at" property="updatedAt" />
+                <id column="updated_by" property="updatedBy" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+    id,`name`,price,image,product_id,is_del,created_at,created_by,updated_at,updated_by
+    </sql>
+    <insert id="batchInsert">
+        INSERT INTO `com_convenient_product_specifications`(name,price,image,product_id,created_at,created_by)
+        VALUES
+        <foreach collection="productSpecificationDOList" item="item" index="index" separator="," >
+            (#{item.name}, #{item.price}, #{item.image}, #{item.productId}, #{item.createdAt}, #{item.createdBy})
+        </foreach>
+    </insert>
+    <update id="deleteLoseRelationSpecifications" parameterType="java.util.List">
+        UPDATE com_convenient_product_specifications SET is_del = 1
+        WHERE product_id = #{productId} AND id NOT IN
+        <foreach collection="notNeedDelIds" open="(" separator="," close=")" index="index" item="item">
+            #{item}
+        </foreach>
+    </update>
+    <update id="batchDeleteByProductIds">
+        UPDATE com_convenient_product_specifications SET is_del = 1
+        WHERE id IN
+        <foreach collection="needDelProductIds" open="(" separator="," close=")" index="index" item="item">
+            #{item}
+        </foreach>
+    </update>
+
+
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientServiceCategoryMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientServiceCategoryMapper.xml
new file mode 100644
index 0000000..a6fb9b4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientServiceCategoryMapper.xml
@@ -0,0 +1,58 @@
+<?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.ConvenientServiceCategoryDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ConvenientServiceCategoryDO">
+                <id column="id" property="id" />
+                <id column="name" property="name" />
+                <id column="icon" property="icon" />
+                <id column="remark" property="remark" />
+                <id column="weight" property="weight" />
+                <id column="is_del" property="isDel" />
+                <id column="created_at" property="createdAt" />
+                <id column="created_by" property="createdBy" />
+                <id column="updated_at" property="updatedAt" />
+                <id column="updated_by" property="updatedBy" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+    id,`name`,icon,remark,weight,is_del,created_at,created_by,updated_at,updated_by
+    </sql>
+    <insert id="createMerchantServiceRelation">
+        INSERT INTO com_convenient_service_scope (id,merchant_id, service_category_id, service_name, created_by, created_at)
+        VALUES (#{id},#{merchantId}, #{serviceId}, #{name}, #{createdBy}, NOW())
+    </insert>
+    <delete id="deleteMerchantServiceRelation">
+        DELETE FROM com_convenient_service_scope WHERE merchant_id = #{merchantId}
+    </delete>
+    <select id="pageServiceCategory" resultType="com.panzhihua.common.model.vos.community.convenient.ConvenientServiceCategoryVO">
+        SELECT <include refid="Base_Column_List"/>
+        FROM com_convenient_service_categories
+        WHERE is_del = 0
+            <if test="pageConvenientServiceCategoryDTO.name != null and pageConvenientServiceCategoryDTO.name.trim() != &quot;&quot;">
+                AND `name` LIKE concat('%', #{pageConvenientServiceCategoryDTO.name}, '%' )
+            </if>
+        <if test="pageConvenientServiceCategoryDTO.areaCode != null and pageConvenientServiceCategoryDTO.areaCode.trim() != &quot;&quot;">
+            AND area_code = #{pageConvenientServiceCategoryDTO.areaCode}
+        </if>
+        ORDER BY weight DESC
+    </select>
+    <select id="selectServiceScopeByMerchantId" resultType="java.lang.String">
+        SELECT GROUP_CONCAT(`service_name`) serviceScope FROM com_convenient_service_scope WHERE merchant_id = #{merchantId}
+    </select>
+    <select id="selectServiceIdsForMerchant" resultType="java.lang.String">
+        SELECT service_category_id FROM com_convenient_service_scope WHERE merchant_id = #{merchantId}
+    </select>
+    <select id="checkCategoryIsUsing" resultType="java.lang.Integer">
+        SELECT COUNT(1) FROM com_convenient_service_scope WHERE service_category_id = #{categoryId}
+    </select>
+    <select id="selectSuitableServiceCategories" resultType="com.panzhihua.common.model.vos.community.convenient.ConvenientServiceCategoryVO">
+        SELECT ccsc.id, ccsc.name, ccsc.icon, ccsc.remark, ccsc.weight
+        FROM com_convenient_service_categories ccsc
+        INNER JOIN com_convenient_service_scope ccss ON ccsc.id = ccss.service_category_id
+        INNER JOIN com_convenient_merchants ccm ON ccss.merchant_id = ccm.id
+        WHERE ccsc.is_del = 0 AND ccm.is_del = 0 AND( ccm.community_id = ${communityId} or ccm.community_id =0) and ccsc.area_code = #{areaCode} AND ccm.business_status = 1 GROUP BY ccsc.id ORDER BY ccsc.weight desc
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientViewStatisticsMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientViewStatisticsMapper.xml
new file mode 100644
index 0000000..b2cba6e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/ConvenientViewStatisticsMapper.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.ConvenientViewStatisticsDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_community.model.dos.ConvenientViewStatisticsDO">
+                <id column="id" property="id" />
+                <id column="merchant_id" property="merchantId" />
+                <id column="statistic_date" property="statisticDate" />
+                <id column="view_num" property="viewNum" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id,merchant_id,statistic_date,view_num
+    </sql>
+    <insert id="createTodayStatistic">
+        INSERT INTO com_convenient_view_statistics (merchant_id, statistic_date) VALUES (#{merchantId}, NOW())
+    </insert>
+    <update id="incrViewNum">
+        UPDATE com_convenient_view_statistics SET view_num = view_num + 1
+        WHERE merchant_id = #{merchantId} AND statistic_date = #{nowDate}
+    </update>
+    <select id="selectMonthViewNum" resultType="java.lang.Integer">
+        SELECT IF(SUM(view_num) IS NULL,0,SUM(view_num))
+        FROM com_convenient_view_statistics
+        WHERE merchant_id = #{merchantId} AND (statistic_date LIKE CONCAT(#{moth}, '%') OR statistic_date IS NULL)
+    </select>
+    <select id="selectDayViewNum" resultType="java.lang.Integer">
+        SELECT IF(SUM(view_num) IS NULL,0,SUM(view_num))
+        FROM com_convenient_view_statistics
+        WHERE merchant_id = #{merchantId} AND (statistic_date = #{day} OR statistic_date IS NULL)
+    </select>
+    <select id="selectSumForViewNum" resultType="com.panzhihua.common.model.vos.community.convenient.ConvenientViewStatisticsVO">
+        SELECT merchant_id, SUM(view_num) AS totalViewNum
+        FROM com_convenient_view_statistics GROUP BY merchant_id
+    </select>
+    <select id="selectTotalViewNum" resultType="java.lang.Integer">
+        SELECT IF(SUM(view_num) IS NULL,0,SUM(view_num))
+        FROM com_convenient_view_statistics
+        WHERE merchant_id = #{merchantId}
+    </select>
+
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/EventMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/EventMapper.xml
new file mode 100644
index 0000000..26adc6b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/EventMapper.xml
@@ -0,0 +1,1509 @@
+<?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.EventMapper">
+
+ 	<resultMap id="baseResult" type="com.panzhihua.service_community.model.dos.EventDO">
+		<result property="id" column="id"/>
+		<result property="orderSn" column="order_sn"/>
+		<result property="eventCategory" column="event_category"/>
+		<result property="gridMemberStreet" column="grid_member_street"/>
+		<result property="gridMemberCommunity" column="grid_member_community"/>
+		<result property="gridId" column="grid_id"/>
+		<result property="gridMemberId" column="grid_member_id"/>
+		<result property="gridMemberName" column="grid_member_name"/>
+		<result property="gridMemberTelephone" column="grid_member_telephone"/>
+		<result property="eventTitle" column="event_title"/>
+		<result property="propagandaType" column="propaganda_type"/>
+		<result property="propagandaTime" column="propaganda_time"/>
+		<result property="eventType" column="event_type"/>
+		<result property="eventDes" column="event_des"/>
+		<result property="propagandaObject" column="propaganda_object"/>
+		<result property="propagandaNum" column="propaganda_num"/>
+		<result property="communityProcess" column="community_process"/>
+		<result property="happenTime" column="happen_time"/>
+		<result property="happentAddress" column="happent_address"/>
+		<result property="happenAddress" column="happen_address"/>
+		<result property="happentLatLng" column="happent_lat_lng"/>
+		<result property="eventStatus" column="event_status"/>
+		<result property="eventProcessStatus" column="event_process_status"/>
+		<result property="processType" column="process_type"/>
+		<result property="processUserId" column="process_user_id"/>
+		<result property="processUserName" column="process_user_name"/>
+		<result property="processDate" column="process_date"/>
+		<result property="processDesc" column="process_desc"/>
+		<result property="eventResource" column="event_resource"/>
+		<result property="dangerLevel" column="danger_level"/>
+		<result property="redCard" column="red_card"/>
+		<result property="yellowCard" column="yellow_card"/>
+		<result property="invalid" column="invalid"/>
+		<result property="major" column="major"/>
+		<result property="deathsNumber" column="deaths_number"/>
+		<result property="injuriesNumber" column="injuries_number"/>
+		<result property="difficult" column="difficult"/>
+		<result property="urgent" column="urgent"/>
+		<result property="urgentDell" column="urgent_dell"/>
+		<result property="submitDate" column="submit_date"/>
+		<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="eventClazz" column="event_clazz"/>
+		<result property="eventDealStatus" column="event_deal_status"/>
+	</resultMap>
+
+	<sql id="columns">
+	<![CDATA[
+		id,order_sn,event_category,grid_member_street,happen_address,grid_member_community,event_clazz,grid_id,grid_member_id,grid_member_name,grid_member_telephone,
+		event_title,propaganda_type,propaganda_time,event_type,event_des,propaganda_object,propaganda_num,community_process,happen_time,happent_address,happent_lat_lng,
+		event_status,event_process_status,process_type,process_user_id,process_user_name,process_date,process_desc,event_resource,danger_level,red_card,yellow_card,invalid,
+		major,deaths_number,injuries_number,difficult,urgent,urgent_dell,submit_date,create_by,create_at,update_by,update_at,event_deal_status
+	]]>
+	</sql>
+
+
+    <select id="findByPage" resultType="com.panzhihua.common.model.vos.grid.EventVO"
+        parameterType="com.panzhihua.common.model.dtos.grid.PageEventDTO">
+    	SELECT <include refid="columns" />
+	    FROM event
+		<where>
+			event_status != 3 AND event_category = 1
+			<if test="pageEventDTO.eventDealStatus!=null">
+			    AND event_deal_status = #{pageEventDTO.eventDealStatus}
+			</if>
+			<if test="pageEventDTO.isAll!=null and pageEventDTO.isAll == 1">
+				AND event_deal_status in (1,2,4)
+			</if>
+			<if test="pageEventDTO.revokeType!=null">
+				AND ( revoke_type = #{pageEventDTO.revokeType} OR revoke_type is null )
+			</if>
+	       <if test="pageEventDTO.id!=null">
+				AND id = #{pageEventDTO.id}
+			</if>
+	       <if test="pageEventDTO.orderSn!=null">
+				AND order_sn = #{pageEventDTO.orderSn}
+			</if>
+	       <if test="pageEventDTO.eventCategory!=null">
+				AND event_category = #{pageEventDTO.eventCategory}
+			</if>
+	       <if test="pageEventDTO.gridMemberStreet!=null">
+				AND grid_member_street = #{pageEventDTO.gridMemberStreet}
+			</if>
+	       <if test="pageEventDTO.gridMemberCommunity!=null">
+				AND grid_member_community = #{pageEventDTO.gridMemberCommunity}
+			</if>
+	       <if test="pageEventDTO.gridId!=null">
+				AND grid_id = #{pageEventDTO.gridId}
+			</if>
+	       <if test="pageEventDTO.gridMemberId!=null">
+				AND grid_member_id = #{pageEventDTO.gridMemberId}
+			</if>
+	       <if test="pageEventDTO.gridMemberName!=null">
+				AND grid_member_name = #{pageEventDTO.gridMemberName}
+			</if>
+	       <if test="pageEventDTO.gridMemberTelephone!=null">
+				AND grid_member_telephone = #{pageEventDTO.gridMemberTelephone}
+			</if>
+	       <if test="pageEventDTO.eventTitle!=null">
+				AND event_title = #{pageEventDTO.eventTitle}
+			</if>
+	       <if test="pageEventDTO.propagandaType!=null">
+				AND propaganda_type = #{pageEventDTO.propagandaType}
+			</if>
+	       <if test="pageEventDTO.propagandaTimeBegin!=null">
+				AND propaganda_time <![CDATA[>=]]> #{pageEventDTO.propagandaTimeBegin}
+		   </if>
+		   <if test="pageEventDTO.propagandaTimeEnd!=null">
+				AND propaganda_time <![CDATA[<=]]> #{pageEventDTO.propagandaTimeEnd}
+		   </if>
+	       <if test="pageEventDTO.eventType!=null">
+				AND event_type = #{pageEventDTO.eventType}
+			</if>
+	       <if test="pageEventDTO.eventDes!=null">
+				AND event_des = #{pageEventDTO.eventDes}
+			</if>
+			<if test="pageEventDTO.eventClazz!=null">
+				AND event_clazz like concat(#{pageEventDTO.eventClazz},'%')
+			</if>
+	       <if test="pageEventDTO.propagandaObject!=null">
+				AND propaganda_object = #{pageEventDTO.propagandaObject}
+			</if>
+	       <if test="pageEventDTO.propagandaNum!=null">
+				AND propaganda_num = #{pageEventDTO.propagandaNum}
+			</if>
+	       <if test="pageEventDTO.communityProcess!=null">
+				AND community_process = #{pageEventDTO.communityProcess}
+			</if>
+	       <if test="pageEventDTO.happenTimeBegin!=null">
+				AND happen_time <![CDATA[>=]]> #{pageEventDTO.happenTimeBegin}
+		   </if>
+		   <if test="pageEventDTO.happenTimeEnd!=null">
+				AND happen_time <![CDATA[<=]]> #{pageEventDTO.happenTimeEnd}
+		   </if>
+	       <if test="pageEventDTO.happentAddress!=null">
+				AND happent_address = #{pageEventDTO.happentAddress}
+			</if>
+	       <if test="pageEventDTO.happentLatLng!=null">
+				AND happent_lat_lng = #{pageEventDTO.happentLatLng}
+			</if>
+	       <if test="pageEventDTO.eventStatus!=null">
+				AND event_status = #{pageEventDTO.eventStatus}
+			</if>
+	       <if test="pageEventDTO.eventProcessStatus!=null">
+				AND event_process_status = #{pageEventDTO.eventProcessStatus}
+			</if>
+	       <if test="pageEventDTO.processType!=null">
+				AND process_type = #{pageEventDTO.processType}
+			</if>
+	       <if test="pageEventDTO.processUserId!=null">
+				AND process_user_id = #{pageEventDTO.processUserId}
+			</if>
+	       <if test="pageEventDTO.processUserName!=null">
+				AND process_user_name = #{pageEventDTO.processUserName}
+			</if>
+	       <if test="pageEventDTO.processDateBegin!=null">
+				AND process_date <![CDATA[>=]]> #{pageEventDTO.processDateBegin}
+		   </if>
+		   <if test="pageEventDTO.processDateEnd!=null">
+				AND process_date <![CDATA[<=]]> #{pageEventDTO.processDateEnd}
+		   </if>
+	       <if test="pageEventDTO.processDesc!=null">
+				AND process_desc = #{pageEventDTO.processDesc}
+			</if>
+	       <if test="pageEventDTO.eventResource!=null">
+				AND event_resource = #{pageEventDTO.eventResource}
+			</if>
+	       <if test="pageEventDTO.dangerLevel!=null">
+				AND danger_level = #{pageEventDTO.dangerLevel}
+			</if>
+	       <if test="pageEventDTO.redCard!=null">
+				AND red_card = #{pageEventDTO.redCard}
+			</if>
+	       <if test="pageEventDTO.yellowCard!=null">
+				AND yellow_card = #{pageEventDTO.yellowCard}
+			</if>
+	       <if test="pageEventDTO.invalid!=null">
+				AND invalid = #{pageEventDTO.invalid}
+			</if>
+	       <if test="pageEventDTO.major!=null">
+				AND major = #{pageEventDTO.major}
+			</if>
+	       <if test="pageEventDTO.deathsNumber!=null">
+				AND deaths_number = #{pageEventDTO.deathsNumber}
+			</if>
+	       <if test="pageEventDTO.injuriesNumber!=null">
+				AND injuries_number = #{pageEventDTO.injuriesNumber}
+			</if>
+	       <if test="pageEventDTO.difficult!=null">
+				AND difficult = #{pageEventDTO.difficult}
+			</if>
+	       <if test="pageEventDTO.urgent!=null">
+				AND urgent = #{pageEventDTO.urgent}
+			</if>
+	       <if test="pageEventDTO.urgentDell!=null">
+				AND urgent_dell = #{pageEventDTO.urgentDell}
+			</if>
+	       <if test="pageEventDTO.submitDateBegin!=null">
+				AND submit_date <![CDATA[>=]]> #{pageEventDTO.submitDateBegin}
+		   </if>
+		   <if test="pageEventDTO.submitDateEnd!=null">
+				AND submit_date <![CDATA[<=]]> #{pageEventDTO.submitDateEnd}
+		   </if>
+	       <if test="pageEventDTO.createBy!=null">
+				AND create_by = #{pageEventDTO.createBy}
+			</if>
+	       <if test="pageEventDTO.createAtBegin!=null">
+				AND create_at  <![CDATA[>=]]> #{pageEventDTO.createAtBegin}
+		   </if>
+		   <if test="pageEventDTO.createAtEnd!=null">
+				AND create_at <![CDATA[<=]]> #{pageEventDTO.createAtEnd}
+		   </if>
+	       <if test="pageEventDTO.updateBy!=null">
+				AND update_by = #{pageEventDTO.updateBy}
+			</if>
+	       <if test="pageEventDTO.updateAtBegin!=null">
+				AND update_at <![CDATA[>=]]> #{pageEventDTO.updateAtBegin}
+		   </if>
+		   <if test="pageEventDTO.updateAtEnd!=null">
+				AND update_at <![CDATA[<=]]> #{pageEventDTO.updateAtEnd}
+		   </if>
+		</where>
+		order by event_deal_status asc,create_at desc
+    </select>
+    <select id="findPublicityByPage" resultType="com.panzhihua.common.model.vos.grid.EventVO"
+			parameterType="com.panzhihua.common.model.dtos.grid.PagePublicityEventDTO">
+		SELECT
+			e.id,e.order_sn,e.event_category,e.grid_member_street,e.happen_address,e.grid_member_community,e.event_clazz,e.grid_id,e.grid_member_id,e.grid_member_name,e.grid_member_telephone,
+			e.event_title,e.propaganda_type,e.propaganda_time,e.event_type,e.event_des,e.propaganda_object,e.propaganda_num,e.community_process,e.happen_time,e.happent_address,e.happent_lat_lng,
+			e.event_status,e.event_process_status,e.process_type,e.process_user_id,e.process_user_name,e.process_date,e.process_desc,e.event_resource,e.danger_level,e.red_card,e.yellow_card,e.invalid,
+			e.major,e.deaths_number,e.injuries_number,e.difficult,e.urgent,e.urgent_dell,e.submit_date,e.create_by,e.create_at,e.update_by,e.update_at,e.event_deal_status
+		FROM
+			event e left join event_grid_data egd on e.grid_id = egd.id
+		<where>
+			e.event_status != 3 AND e.event_category = 2
+			<if test="pagePublicityEventDTO.communityId!=null">
+				AND egd.grid_community_id = ${pagePublicityEventDTO.communityId}
+			</if>
+
+			<if test="pagePublicityEventDTO.revokeType!=null">
+				AND ( e.revoke_type = #{pagePublicityEventDTO.revokeType} OR e.revoke_type is null )
+			</if>
+			<if test="pagePublicityEventDTO.eventDealStatus!=null">
+				AND e.event_deal_status = #{pagePublicityEventDTO.eventDealStatus}
+			</if>
+			<if test="pagePublicityEventDTO.id!=null">
+				AND e.id = #{pagePublicityEventDTO.id}
+			</if>
+			<if test="pagePublicityEventDTO.orderSn!=null">
+				AND e.order_sn = #{pagePublicityEventDTO.orderSn}
+			</if>
+			<if test="pagePublicityEventDTO.eventCategory!=null">
+				AND e.event_category = #{pagePublicityEventDTO.eventCategory}
+			</if>
+			<if test="pagePublicityEventDTO.gridMemberStreet!=null">
+				AND e.grid_member_street = #{pagePublicityEventDTO.gridMemberStreet}
+			</if>
+			<if test="pagePublicityEventDTO.gridMemberCommunity!=null">
+				AND e.grid_member_community = #{pagePublicityEventDTO.gridMemberCommunity}
+			</if>
+			<if test="pagePublicityEventDTO.gridId!=null">
+				AND e.grid_id = #{pagePublicityEventDTO.gridId}
+			</if>
+			<if test="pagePublicityEventDTO.gridMemberId!=null">
+				AND e.grid_member_id = #{pagePublicityEventDTO.gridMemberId}
+			</if>
+			<if test="pagePublicityEventDTO.gridMemberName!=null">
+				AND e.grid_member_name = #{pagePublicityEventDTO.gridMemberName}
+			</if>
+			<if test="pagePublicityEventDTO.gridMemberTelephone!=null">
+				AND e.grid_member_telephone = #{pagePublicityEventDTO.gridMemberTelephone}
+			</if>
+			<if test="pagePublicityEventDTO.eventTitle!=null">
+				AND e.event_title = #{pagePublicityEventDTO.eventTitle}
+			</if>
+			<if test="pagePublicityEventDTO.propagandaType!=null">
+				AND e.propaganda_type = #{pagePublicityEventDTO.propagandaType}
+			</if>
+			<if test="pagePublicityEventDTO.propagandaTimeBegin!=null">
+				AND e.propaganda_time <![CDATA[>=]]> #{pagePublicityEventDTO.propagandaTimeBegin}
+			</if>
+			<if test="pagePublicityEventDTO.propagandaTimeEnd!=null">
+				AND e.propaganda_time <![CDATA[<=]]> #{pagePublicityEventDTO.propagandaTimeEnd}
+			</if>
+			<if test="pagePublicityEventDTO.eventDes!=null">
+				AND e.event_des = #{pagePublicityEventDTO.eventDes}
+			</if>
+			<if test="pagePublicityEventDTO.propagandaObject!=null">
+				AND e.propaganda_object = #{pagePublicityEventDTO.propagandaObject}
+			</if>
+			<if test="pagePublicityEventDTO.propagandaNum!=null">
+				AND e.propaganda_num = #{pagePublicityEventDTO.propagandaNum}
+			</if>
+			<if test="pagePublicityEventDTO.communityProcess!=null">
+				AND e.community_process = #{pagePublicityEventDTO.communityProcess}
+			</if>
+			<if test="pagePublicityEventDTO.happenTimeBegin!=null">
+				AND e.happen_time <![CDATA[>=]]> #{pagePublicityEventDTO.happenTimeBegin}
+			</if>
+			<if test="pagePublicityEventDTO.happenTimeEnd!=null">
+				AND e.happen_time <![CDATA[<=]]> #{pagePublicityEventDTO.happenTimeEnd}
+			</if>
+			<if test="pagePublicityEventDTO.happentAddress!=null">
+				AND e.happent_address = #{pagePublicityEventDTO.happentAddress}
+			</if>
+			<if test="pagePublicityEventDTO.happentLatLng!=null">
+				AND e.happent_lat_lng = #{pagePublicityEventDTO.happentLatLng}
+			</if>
+			<if test="pagePublicityEventDTO.eventStatus!=null">
+				AND e.event_status = #{pagePublicityEventDTO.eventStatus}
+			</if>
+			<if test="pagePublicityEventDTO.eventProcessStatus!=null">
+				AND e.event_process_status = #{pagePublicityEventDTO.eventProcessStatus}
+			</if>
+			<if test="pagePublicityEventDTO.processType!=null">
+				AND e.process_type = #{pagePublicityEventDTO.processType}
+			</if>
+			<if test="pagePublicityEventDTO.processUserId!=null">
+				AND e.process_user_id = #{pagePublicityEventDTO.processUserId}
+			</if>
+			<if test="pagePublicityEventDTO.processUserName!=null">
+				AND e.process_user_name = #{pagePublicityEventDTO.processUserName}
+			</if>
+			<if test="pagePublicityEventDTO.processDateBegin!=null">
+				AND e.process_date <![CDATA[>=]]> #{pagePublicityEventDTO.processDateBegin}
+			</if>
+			<if test="pagePublicityEventDTO.processDateEnd!=null">
+				AND e.process_date <![CDATA[<=]]> #{pagePublicityEventDTO.processDateEnd}
+			</if>
+			<if test="pagePublicityEventDTO.processDesc!=null">
+				AND e.process_desc = #{pagePublicityEventDTO.processDesc}
+			</if>
+			<if test="pagePublicityEventDTO.eventResource!=null">
+				AND e.event_resource = #{pagePublicityEventDTO.eventResource}
+			</if>
+			<if test="pagePublicityEventDTO.dangerLevel!=null">
+				AND e.danger_level = #{pagePublicityEventDTO.dangerLevel}
+			</if>
+			<if test="pagePublicityEventDTO.redCard!=null">
+				AND e.red_card = #{pagePublicityEventDTO.redCard}
+			</if>
+			<if test="pagePublicityEventDTO.yellowCard!=null">
+				AND e.yellow_card = #{pagePublicityEventDTO.yellowCard}
+			</if>
+			<if test="pagePublicityEventDTO.invalid!=null">
+				AND e.invalid = #{pagePublicityEventDTO.invalid}
+			</if>
+			<if test="pagePublicityEventDTO.major!=null">
+				AND e.major = #{pagePublicityEventDTO.major}
+			</if>
+			<if test="pagePublicityEventDTO.deathsNumber!=null">
+				AND e.deaths_number = #{pagePublicityEventDTO.deathsNumber}
+			</if>
+			<if test="pagePublicityEventDTO.injuriesNumber!=null">
+				AND e.injuries_number = #{pagePublicityEventDTO.injuriesNumber}
+			</if>
+			<if test="pagePublicityEventDTO.difficult!=null">
+				AND e.difficult = #{pagePublicityEventDTO.difficult}
+			</if>
+			<if test="pagePublicityEventDTO.urgent!=null">
+				AND e.urgent = #{pagePublicityEventDTO.urgent}
+			</if>
+			<if test="pagePublicityEventDTO.urgentDell!=null">
+				AND e.urgent_dell = #{pagePublicityEventDTO.urgentDell}
+			</if>
+			<if test="pagePublicityEventDTO.submitDateBegin!=null">
+				AND e.submit_date <![CDATA[>=]]> #{pagePublicityEventDTO.submitDateBegin}
+			</if>
+			<if test="pagePublicityEventDTO.submitDateEnd!=null">
+				AND e.submit_date <![CDATA[<=]]> #{pagePublicityEventDTO.submitDateEnd}
+			</if>
+			<if test="pagePublicityEventDTO.createBy!=null">
+				AND e.create_by = #{pagePublicityEventDTO.createBy}
+			</if>
+			<if test="pagePublicityEventDTO.createAtBegin!=null">
+				AND e.create_at  <![CDATA[>=]]> #{pagePublicityEventDTO.createAtBegin}
+			</if>
+			<if test="pagePublicityEventDTO.createAtEnd!=null">
+				AND e.create_at <![CDATA[<=]]> #{pagePublicityEventDTO.createAtEnd}
+			</if>
+			<if test="pagePublicityEventDTO.updateBy!=null">
+				AND e.update_by = #{pagePublicityEventDTO.updateBy}
+			</if>
+			<if test="pagePublicityEventDTO.updateAtBegin!=null">
+				AND e.update_at <![CDATA[>=]]> #{pagePublicityEventDTO.updateAtBegin}
+			</if>
+			<if test="pagePublicityEventDTO.updateAtEnd!=null">
+				AND e.update_at <![CDATA[<=]]> #{pagePublicityEventDTO.updateAtEnd}
+			</if>
+		</where>
+		<if test="pagePublicityEventDTO.sortColumns!=null">
+			ORDER BY e.${pagePublicityEventDTO.sortColumns} ${pagePublicityEventDTO.sortType}
+		</if>
+	</select>
+
+	<select id="getEventByGridId" resultType="com.panzhihua.common.model.vos.grid.ComMapGridEventVO">
+		SELECT
+			id,
+			event_type AS type,
+			event_des AS eventTitle,
+			happent_address AS happentAddress,
+			happen_address AS happenAddress,
+			happent_lat_lng AS happentLatLng
+		FROM
+			`event`
+		WHERE
+			( event_category = 1 OR event_category = 2 )
+			AND event_process_status = 1
+			AND event_status = 2
+			AND grid_id = #{gridId}
+			AND process_type = 1 UNION ALL
+		SELECT
+			id,
+			IFNULL( NULL, 7 ) AS type,
+			event_des AS eventTitle,
+			happent_address AS happentAddress,
+			happen_address AS happenAddress,
+			happent_lat_lng AS happentLatLng
+		FROM
+			event_visiting_tasks
+		WHERE
+			event_status = 1
+			AND dell_type = 1
+			AND grid_id = #{gridId}
+	</select>
+
+	<select id="getGridMemberImageUrl" resultType="Map">
+		select image_url,nick_name from sys_user where user_id = #{gridMemberId}
+	</select>
+    <select id="findToManageByPage" resultType="com.panzhihua.common.model.vos.grid.EventVO"
+			parameterType="com.panzhihua.common.model.dtos.grid.PageEventManageDTO">
+		SELECT
+			e.id,e.order_sn,e.event_category,e.grid_member_street,e.happen_address,e.grid_member_community,e.event_clazz,e.grid_id,e.grid_member_id,e.grid_member_name,e.grid_member_telephone,
+			e.event_title,e.propaganda_type,e.propaganda_time,e.event_type,e.event_des,e.propaganda_object,e.propaganda_num,e.community_process,e.happen_time,e.happent_address,e.happent_lat_lng,
+			e.event_status,e.event_process_status,e.process_type,e.process_user_id,e.process_user_name,e.process_date,e.process_desc,e.event_resource,e.danger_level,e.red_card,e.yellow_card,e.invalid,
+			e.major,e.deaths_number,e.injuries_number,e.difficult,e.urgent,e.urgent_dell,e.submit_date,e.create_by,e.create_at,e.update_by,e.update_at,e.event_deal_status,egd.grid_name
+		FROM
+			event e left join event_grid_data egd on e.grid_id = egd.id
+		<where>
+			e.event_status != 3 AND e.event_category = 1
+			<if test="pageEventManageDTO.communityId!=null">
+				AND egd.grid_community_id = ${pageEventManageDTO.communityId}
+			</if>
+			<if test='pageEventManageDTO.keyWord != null and pageEventManageDTO.keyWord != &quot;&quot;'>
+				AND (
+				e.grid_member_name like concat('%', #{pageEventManageDTO.keyWord},'%') OR
+				e.event_title like concat('%', #{pageEventManageDTO.keyWord},'%') OR
+				e.happen_address like concat('%', #{pageEventManageDTO.keyWord},'%') OR
+				e.order_sn like concat('%', #{pageEventManageDTO.keyWord},'%') OR
+				e.event_clazz like concat('%', #{pageEventManageDTO.keyWord},'%') OR
+				e.event_des like concat('%', #{pageEventManageDTO.keyWord},'%')
+				)
+			 </if>
+			<if test="pageEventManageDTO.revokeType!=null">
+				AND ( e.revoke_type = #{pageEventManageDTO.revokeType} OR e.revoke_type is null )
+			</if>
+			<if test="pageEventManageDTO.eventDealStatus!=null">
+				AND e.event_deal_status = #{pageEventManageDTO.eventDealStatus}
+			</if>
+			<if test="pageEventManageDTO.communityProcess!=null">
+				AND e.community_process = #{pageEventManageDTO.communityProcess}
+			</if>
+			<if test="pageEventManageDTO.eventType!=null">
+				AND e.event_type = #{pageEventManageDTO.eventType}
+			</if>
+			<if test="pageEventManageDTO.dangerLevel!=null">
+				AND e.danger_level = #{pageEventManageDTO.dangerLevel}
+			</if>
+			<if test="pageEventManageDTO.redCard!=null">
+				AND e.red_card = #{pageEventManageDTO.redCard}
+			</if>
+			<if test="pageEventManageDTO.yellowCard!=null">
+				AND e.yellow_card = #{pageEventManageDTO.yellowCard}
+			</if>
+			<if test="pageEventManageDTO.eventClazz != null and pageEventManageDTO.eventClazz != &quot;&quot;">
+				AND e.event_clazz like concat('%',#{pageEventDTO.eventClazz},'%')
+			</if>
+			<if test="pageEventManageDTO.urgent!=null">
+				AND e.urgent = #{pageEventManageDTO.urgent}
+			</if>
+			<if test="pageEventManageDTO.major!=null">
+				AND e.major = #{pageEventManageDTO.major}
+			</if>
+			<if test="pageEventManageDTO.invalid!=null">
+				AND e.invalid = #{pageEventManageDTO.invalid}
+			</if>
+		</where>
+		<if test="pageEventManageDTO.sortColumns!=null">
+			ORDER BY e.${pageEventManageDTO.sortColumns} ${pageEventManageDTO.sortType}
+		</if>
+	</select>
+
+	<select id="findCommunityPublicityByPage" resultType="com.panzhihua.common.model.vos.grid.EventVO"
+			parameterType="com.panzhihua.common.model.dtos.grid.PagePublicityEventCommunityDTO">
+		SELECT
+			e.id,e.order_sn,e.event_category,e.grid_member_street,e.happen_address,e.grid_member_community,e.event_clazz,e.grid_id,e.grid_member_id,e.grid_member_name,e.grid_member_telephone,
+			e.event_title,e.propaganda_type,e.propaganda_time,e.event_type,e.event_des,e.propaganda_object,e.propaganda_num,e.community_process,e.happen_time,e.happent_address,e.happent_lat_lng,
+			e.event_status,e.event_process_status,e.process_type,e.process_user_id,e.process_user_name,e.process_date,e.process_desc,e.event_resource,e.danger_level,e.red_card,e.yellow_card,e.invalid,
+			e.major,e.deaths_number,e.injuries_number,e.difficult,e.urgent,e.urgent_dell,e.submit_date,e.create_by,e.create_at,e.update_by,e.update_at,e.event_deal_status, egd.grid_name
+		FROM
+			event e left join event_grid_data egd on e.grid_id = egd.id
+		<where>
+			e.event_status != 3 AND e.event_category = 2
+			<if test='pagePublicityEventCommunityDTO.keyWord != null and pagePublicityEventCommunityDTO.keyWord != &quot;&quot;'>
+				AND (
+				e.grid_member_name like concat('%', #{pagePublicityEventCommunityDTO.keyWord},'%') OR
+				e.event_title like concat('%', #{pagePublicityEventCommunityDTO.keyWord},'%') OR
+				e.happen_address like concat('%', #{pagePublicityEventCommunityDTO.keyWord},'%') OR
+				e.order_sn like concat('%', #{pagePublicityEventCommunityDTO.keyWord},'%') OR
+				e.propaganda_type like concat('%', #{pagePublicityEventCommunityDTO.keyWord},'%') OR
+				egd.grid_name like concat('%', #{pagePublicityEventCommunityDTO.keyWord},'%')
+				)
+			</if>
+			<if test="pagePublicityEventCommunityDTO.revokeType!=null">
+				AND ( e.revoke_type = #{pagePublicityEventCommunityDTO.revokeType} OR e.revoke_type is null )
+			</if>
+			<if test="pagePublicityEventCommunityDTO.communityId!=null">
+				AND egd.grid_community_id = ${pagePublicityEventCommunityDTO.communityId}
+			</if>
+			<if test="pagePublicityEventCommunityDTO.eventDealStatus!=null">
+				AND e.event_deal_status = #{pagePublicityEventCommunityDTO.eventDealStatus}
+			</if>
+		</where>
+		<if test="pagePublicityEventCommunityDTO.sortColumns!=null">
+			ORDER BY e.${pagePublicityEventCommunityDTO.sortColumns} ${pagePublicityEventCommunityDTO.sortType}
+		</if>
+	</select>
+	<select id="eventStatistics" resultType="com.panzhihua.common.model.vos.grid.EventStatisticsAllAdminVO">
+		SELECT
+			count( e.id ) AS eventTotal,(
+			SELECT
+				count( e.id )
+			FROM
+				`event` AS e
+				LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+			WHERE
+				e.event_status = 2
+				AND e.event_process_status = 2
+			) AS handleEventTotal,
+			(
+			SELECT
+				count( e.id )
+			FROM
+				`event` AS e
+				LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+			WHERE
+				e.event_category = 2
+				AND e.event_status = 2
+			) AS propagandaEducationTotal,
+			( SELECT count( id ) FROM com_act_easy_photo WHERE handle_status = 2  ) AS easyPhotoTotal
+		FROM
+			`event` AS e
+			LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+		WHERE
+			e.event_status = 2
+	</select>
+
+	<select id="getEventCountByGridIds" resultType="Integer">
+		select count(id) from event where grid_id in
+		<foreach item="item" collection="ids" separator="," open="(" close=")" index="">
+		#{item}
+		</foreach>
+	</select>
+
+	<select id="getGridEventStatisticsByApp" resultType="com.panzhihua.common.model.vos.grid.GridEventStatisticsVO">
+		SELECT
+			count( id ) AS todayNum,
+			(
+			SELECT
+				count( id )
+			FROM
+				`event`
+			WHERE
+				event_category = 1
+				AND event_process_status = 2
+				AND process_date BETWEEN DATE_FORMAT( DATE_ADD( curdate(), INTERVAL - DAY ( curdate())+ 1 DAY ), '%Y-%m-%d %H:%i:%s' )
+			AND NOW()
+			<if test="gridId!=null">
+				 AND grid_id = #{gridId}
+			</if>
+			) AS monthNum,
+			(
+			SELECT
+				count( id )
+			FROM
+				`event`
+			WHERE
+				event_category = 2
+				AND event_status = 2
+				AND process_date BETWEEN DATE_FORMAT( CURDATE(), '%Y-%m-%d %H:%i:%s' )
+			AND NOW()
+			<if test="gridId!=null">
+				AND grid_id = #{gridId}
+			</if>
+			) AS todayEducationNum,
+			( SELECT count( id ) FROM `event` WHERE event_category = 2 AND event_status = 2
+				<if test="gridId!=null">
+					AND grid_id = #{gridId}
+				</if>) AS educationNum,
+			(
+			SELECT
+				count( cmph.id )
+			FROM
+				com_mng_population_house AS cmph
+			LEFT JOIN event_grid_data AS egd ON egd.grid_community_id = cmph.community_id
+			WHERE
+				<if test="gridId!=null">
+					egd.id = #{gridId}
+				</if>
+			) AS houseTotal,
+			(
+		SELECT
+		count( id )
+		FROM
+		event_visiting_tasks
+		WHERE
+		event_status = 2 AND submit_date BETWEEN DATE_FORMAT( CURDATE(), '%Y-%m-%d %H:%i:%s' )
+		AND DATE_SUB( DATE_ADD(CURDATE(), INTERVAL 1 DAY),INTERVAL 1 SECOND)
+		<if test="gridId!=null">
+			AND grid_id = #{gridId}
+		</if>
+		) as zfTodayNum,
+		(
+		SELECT
+		count( id )
+		FROM
+		event_visiting_tasks
+		WHERE
+		event_status = 2 AND submit_date BETWEEN DATE_FORMAT( DATE_ADD( curdate(), INTERVAL - DAY ( curdate())+ 1 DAY ), '%Y-%m-%d %H:%i:%s' )
+		AND NOW()
+		<if test="gridId!=null">
+			AND grid_id = #{gridId}
+		</if>
+		) as zfMonthNum,(
+		SELECT
+		    count( caep.id )
+		FROM
+		    com_act_easy_photo as caep
+		    left join event_grid_data as egd on egd.grid_community_id = caep.community_id
+		WHERE
+		    handle_status = 2
+		    AND feedback_at BETWEEN DATE_FORMAT( CURDATE(), '%Y-%m-%d %H:%i:%s' )
+		    AND DATE_SUB(DATE_ADD( CURDATE(), INTERVAL 1 DAY ),INTERVAL 1 SECOND)
+            <if test="gridId!=null">
+                AND egd.id = #{gridId}
+            </if>
+		) as sspTodayNum,
+		(
+		SELECT
+		    count( caep.id )
+		FROM
+            com_act_easy_photo as caep
+            left join event_grid_data as egd on egd.grid_community_id = caep.community_id
+		WHERE
+		    handle_status = 2
+		    AND feedback_at BETWEEN DATE_FORMAT( DATE_ADD( curdate(), INTERVAL - DAY ( curdate())+ 1 DAY ), '%Y-%m-%d %H:%i:%s' ) AND NOW()
+            <if test="gridId!=null">
+                AND egd.id = #{gridId}
+            </if>
+		) as sspMonthNum
+		FROM
+			`event`
+		WHERE
+			event_category = 1
+			AND event_process_status = 2
+			AND process_date BETWEEN DATE_FORMAT( CURDATE(), '%Y-%m-%d %H:%i:%s' )
+			AND NOW()
+			<if test="gridId!=null">
+				AND grid_id = #{gridId}
+			</if>
+	</select>
+
+	<select id="getGridEventDetailStatisticsByApp" parameterType="com.panzhihua.common.model.dtos.grid.GridEventStatisticsDTO"
+			resultType="com.panzhihua.common.model.vos.grid.GridEventStatisticsDetailVO">
+		SELECT
+			count( e.id ) AS eventTFTotal,
+			(
+			SELECT
+				count( id )
+			FROM
+				`event`
+			WHERE
+				event_category = 1
+				AND event_type = 5
+				AND event_process_status IN ( 1, 3 )
+				AND event_status = 2
+				<if test="statisticsDTO.gridId!=null">
+					AND grid_id = #{statisticsDTO.gridId}
+				</if>
+				<if test='statisticsDTO.startTime != null and statisticsDTO.startTime != &quot;&quot;'>
+					AND create_at <![CDATA[ >= ]]> #{statisticsDTO.startTime}
+				</if>
+				<if test='statisticsDTO.endTime != null and statisticsDTO.endTime != &quot;&quot;'>
+					AND create_at <![CDATA[ <= ]]> #{statisticsDTO.endTime}
+				</if>
+			) AS noEventTFTotal,
+			( SELECT count( id ) FROM `event` WHERE event_category = 1 AND event_type = 3 AND event_process_status = 2
+				<if test="statisticsDTO.gridId!=null">
+					AND grid_id = #{statisticsDTO.gridId}
+				</if>
+				<if test='statisticsDTO.startTime != null and statisticsDTO.startTime != &quot;&quot;'>
+					AND create_at <![CDATA[ >= ]]> #{statisticsDTO.startTime}
+				</if>
+				<if test='statisticsDTO.endTime != null and statisticsDTO.endTime != &quot;&quot;'>
+					AND create_at <![CDATA[ <= ]]> #{statisticsDTO.endTime}
+				</if>
+			) AS eventMDTotal,
+			(
+			SELECT
+				count( id )
+			FROM
+				`event`
+			WHERE
+				event_category = 1
+				AND event_type = 3
+				AND event_process_status IN ( 1, 3 )
+				AND event_status = 2
+				<if test="statisticsDTO.gridId!=null">
+					AND grid_id = #{statisticsDTO.gridId}
+				</if>
+				<if test='statisticsDTO.startTime != null and statisticsDTO.startTime != &quot;&quot;'>
+					AND create_at <![CDATA[ >= ]]> #{statisticsDTO.startTime}
+				</if>
+				<if test='statisticsDTO.endTime != null and statisticsDTO.endTime != &quot;&quot;'>
+					AND create_at <![CDATA[ <= ]]> #{statisticsDTO.endTime}
+				</if>
+			) AS noEventMDTotal,
+			( SELECT count( id ) FROM `event` WHERE event_category = 1 AND event_type = 1 AND event_process_status = 2
+				<if test="statisticsDTO.gridId!=null">
+					AND grid_id = #{statisticsDTO.gridId}
+				</if>
+				<if test='statisticsDTO.startTime != null and statisticsDTO.startTime != &quot;&quot;'>
+					AND create_at <![CDATA[ >= ]]> #{statisticsDTO.startTime}
+				</if>
+				<if test='statisticsDTO.endTime != null and statisticsDTO.endTime != &quot;&quot;'>
+					AND create_at <![CDATA[ <= ]]> #{statisticsDTO.endTime}
+				</if>
+			) AS eventZATotal,
+			(
+			SELECT
+				count( id )
+			FROM
+				`event`
+			WHERE
+				event_category = 1
+				AND event_type = 1
+				AND event_process_status IN ( 1, 3 )
+				AND event_status = 2
+				<if test="statisticsDTO.gridId!=null">
+					AND grid_id = #{statisticsDTO.gridId}
+				</if>
+				<if test='statisticsDTO.startTime != null and statisticsDTO.startTime != &quot;&quot;'>
+					AND create_at <![CDATA[ >= ]]> #{statisticsDTO.startTime}
+				</if>
+				<if test='statisticsDTO.endTime != null and statisticsDTO.endTime != &quot;&quot;'>
+					AND create_at <![CDATA[ <= ]]> #{statisticsDTO.endTime}
+				</if>
+			) AS noEventZATotal,
+			( SELECT count( id ) FROM `event` WHERE event_category = 1 AND event_type = 4 AND event_process_status = 2
+				<if test="statisticsDTO.gridId!=null">
+					AND grid_id = #{statisticsDTO.gridId}
+				</if>
+				<if test='statisticsDTO.startTime != null and statisticsDTO.startTime != &quot;&quot;'>
+					AND create_at <![CDATA[ >= ]]> #{statisticsDTO.startTime}
+				</if>
+				<if test='statisticsDTO.endTime != null and statisticsDTO.endTime != &quot;&quot;'>
+					AND create_at <![CDATA[ <= ]]> #{statisticsDTO.endTime}
+				</if>
+			) AS eventBWDTotal,
+			(
+			SELECT
+				count( id )
+			FROM
+				`event`
+			WHERE
+				event_category = 1
+				AND event_type = 4
+				AND event_process_status IN ( 1, 3 )
+				AND event_status = 2
+				<if test="statisticsDTO.gridId!=null">
+					AND grid_id = #{statisticsDTO.gridId}
+				</if>
+				<if test='statisticsDTO.startTime != null and statisticsDTO.startTime != &quot;&quot;'>
+					AND create_at <![CDATA[ >= ]]> #{statisticsDTO.startTime}
+				</if>
+				<if test='statisticsDTO.endTime != null and statisticsDTO.endTime != &quot;&quot;'>
+					AND create_at <![CDATA[ <= ]]> #{statisticsDTO.endTime}
+				</if>
+			) AS noEventBWDTotal,
+			( SELECT count( id ) FROM `event` WHERE event_category = 1 AND event_type = 6 AND event_process_status = 2
+				<if test="statisticsDTO.gridId!=null">
+					AND grid_id = #{statisticsDTO.gridId}
+				</if>
+				<if test='statisticsDTO.startTime != null and statisticsDTO.startTime != &quot;&quot;'>
+					AND create_at <![CDATA[ >= ]]> #{statisticsDTO.startTime}
+				</if>
+				<if test='statisticsDTO.endTime != null and statisticsDTO.endTime != &quot;&quot;'>
+					AND create_at <![CDATA[ <= ]]> #{statisticsDTO.endTime}
+				</if>
+			) AS eventTSTotal,
+			(
+			SELECT
+				count( id )
+			FROM
+				`event`
+			WHERE
+				event_category = 1
+				AND event_type = 6
+				AND event_process_status IN ( 1, 3 )
+				AND event_status = 2
+				<if test="statisticsDTO.gridId!=null">
+					AND grid_id = #{statisticsDTO.gridId}
+				</if>
+				<if test='statisticsDTO.startTime != null and statisticsDTO.startTime != &quot;&quot;'>
+					AND create_at <![CDATA[ >= ]]> #{statisticsDTO.startTime}
+				</if>
+				<if test='statisticsDTO.endTime != null and statisticsDTO.endTime != &quot;&quot;'>
+					AND create_at <![CDATA[ <= ]]> #{statisticsDTO.endTime}
+				</if>
+			) AS noEventTSTotal,
+			( SELECT count( id ) FROM `event` WHERE event_category = 1 AND event_type = 2 AND event_process_status = 2
+				<if test="statisticsDTO.gridId!=null">
+					AND grid_id = #{statisticsDTO.gridId}
+				</if>
+				<if test='statisticsDTO.startTime != null and statisticsDTO.startTime != &quot;&quot;'>
+					AND create_at <![CDATA[ >= ]]> #{statisticsDTO.startTime}
+				</if>
+				<if test='statisticsDTO.endTime != null and statisticsDTO.endTime != &quot;&quot;'>
+					AND create_at <![CDATA[ <= ]]> #{statisticsDTO.endTime}
+				</if>
+			) AS eventGGTotal,
+			(
+			SELECT
+				count( id )
+			FROM
+				`event`
+			WHERE
+				event_category = 1
+				AND event_type = 2
+				AND event_process_status IN ( 1, 3 )
+				AND event_status = 2
+				<if test="statisticsDTO.gridId!=null">
+					AND grid_id = #{statisticsDTO.gridId}
+				</if>
+				<if test='statisticsDTO.startTime != null and statisticsDTO.startTime != &quot;&quot;'>
+					AND create_at <![CDATA[ >= ]]> #{statisticsDTO.startTime}
+				</if>
+				<if test='statisticsDTO.endTime != null and statisticsDTO.endTime != &quot;&quot;'>
+					AND create_at <![CDATA[ <= ]]> #{statisticsDTO.endTime}
+				</if>
+			) AS noEventGGTotal,
+			( SELECT count( id ) FROM `event` WHERE event_category = 2 AND event_status = 2
+				<if test="statisticsDTO.gridId!=null">
+					AND grid_id = #{statisticsDTO.gridId}
+				</if>
+				<if test='statisticsDTO.startTime != null and statisticsDTO.startTime != &quot;&quot;'>
+					AND create_at <![CDATA[ >= ]]> #{statisticsDTO.startTime}
+				</if>
+				<if test='statisticsDTO.endTime != null and statisticsDTO.endTime != &quot;&quot;'>
+					AND create_at <![CDATA[ <= ]]> #{statisticsDTO.endTime}
+				</if>
+			) AS eventXCTotal,
+			( SELECT count( id ) FROM event_visiting_tasks WHERE event_status = 2
+				<if test="statisticsDTO.gridId!=null">
+					AND grid_id = #{statisticsDTO.gridId}
+				</if>
+				<if test='statisticsDTO.startTime != null and statisticsDTO.startTime != &quot;&quot;'>
+					AND submit_date <![CDATA[ >= ]]> #{statisticsDTO.startTime}
+				</if>
+				<if test='statisticsDTO.endTime != null and statisticsDTO.endTime != &quot;&quot;'>
+					AND submit_date <![CDATA[ <= ]]> #{statisticsDTO.endTime}
+				</if>
+			) AS eventZFTotal,
+			(
+			SELECT
+				count( id )
+			FROM
+				event_visiting_tasks
+			WHERE
+			event_status IN ( 1, 3 )
+			<if test="statisticsDTO.gridId!=null">
+				AND grid_id = #{statisticsDTO.gridId}
+			</if>
+			<if test='statisticsDTO.startTime != null and statisticsDTO.startTime != &quot;&quot;'>
+				AND create_at <![CDATA[ >= ]]> #{statisticsDTO.startTime}
+			</if>
+			<if test='statisticsDTO.endTime != null and statisticsDTO.endTime != &quot;&quot;'>
+				AND create_at <![CDATA[ <= ]]> #{statisticsDTO.endTime}
+			</if>
+			) AS noEventZFTotal,
+			( SELECT count( id ) FROM com_act_easy_photo WHERE handle_status = 2 AND community_id = egd.grid_community_id
+			<if test='statisticsDTO.startTime != null and statisticsDTO.startTime != &quot;&quot;'>
+				AND create_at <![CDATA[ >= ]]> #{statisticsDTO.startTime}
+			</if>
+			<if test='statisticsDTO.endTime != null and statisticsDTO.endTime != &quot;&quot;'>
+				AND create_at <![CDATA[ <= ]]> #{statisticsDTO.endTime}
+			</if>
+			) AS eventSSPTotal,
+			( SELECT count( id ) FROM com_act_easy_photo WHERE handle_status = 1 AND community_id = egd.grid_community_id
+			<if test='statisticsDTO.startTime != null and statisticsDTO.startTime != &quot;&quot;'>
+				AND create_at <![CDATA[ >= ]]> #{statisticsDTO.startTime}
+			</if>
+			<if test='statisticsDTO.endTime != null and statisticsDTO.endTime != &quot;&quot;'>
+				AND create_at <![CDATA[ <= ]]> #{statisticsDTO.endTime}
+			</if>
+			) AS noEventSSPTotal
+		FROM
+			`event` AS e
+			LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+		WHERE
+			e.event_category = 1
+			AND e.event_type = 5
+			AND e.event_process_status = 2
+			<if test="statisticsDTO.gridId!=null">
+				AND e.grid_id = #{statisticsDTO.gridId}
+			</if>
+			<if test='statisticsDTO.startTime != null and statisticsDTO.startTime != &quot;&quot;'>
+				AND e.create_at <![CDATA[ >= ]]> #{statisticsDTO.startTime}
+			</if>
+			<if test='statisticsDTO.endTime != null and statisticsDTO.endTime != &quot;&quot;'>
+				AND e.create_at <![CDATA[ <= ]]> #{statisticsDTO.endTime}
+			</if>
+	</select>
+
+	<select id="getUserBaseInfo" parameterType="java.lang.Long" resultType="java.util.Map">
+		select nick_name,image_url from sys_user where user_id = #{gridMemberId}
+	</select>
+
+	<select id="getScreenEventList" parameterType="com.panzhihua.common.model.dtos.community.bigscreen.event.ScreenEventListDTO"
+			resultType="com.panzhihua.common.model.vos.community.screen.event.EventListVO">
+		SELECT
+			e.id,
+			e.grid_member_id,
+			su.image_url,
+			su.nick_name AS userName,
+			e.happen_time as createAt,
+			e.urgent,
+			e.danger_level,
+			e.major,
+			e.process_desc,
+			e.event_des,
+			e.event_category,
+			e.event_type,
+			e.event_clazz,
+			e.happen_address,
+			e.happent_lat_lng,
+			e.happent_address,
+			e.event_deal_status,
+			egd.grid_name
+		FROM
+			`event` AS e
+			LEFT JOIN sys_user AS su ON su.user_id = e.grid_member_id
+			LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+			<where>
+				and event_status = 2
+				<if test='eventListDTO.communityId != null'>
+					and egd.grid_community_id = ${eventListDTO.communityId}
+				</if>
+
+				<if test='eventListDTO.startTime != null and eventListDTO.startTime != &quot;&quot;'>
+					and e.create_at <![CDATA[>=]]> #{eventListDTO.startTime}
+				</if>
+
+				<if test='eventListDTO.endTime != null and eventListDTO.endTime != &quot;&quot;'>
+					and e.create_at <![CDATA[<=]]> #{eventListDTO.endTime}
+				</if>
+
+				<if test='eventListDTO.gridIds != null and eventListDTO.gridIds.size > 0'>
+					and e.grid_id in
+					<foreach collection='eventListDTO.gridIds' item='id' index='index' open='(' close=')' separator=',' >
+					#{id}
+					</foreach>
+				</if>
+
+				<if test='eventListDTO.eventCategory != null'>
+					and e.event_category = #{eventListDTO.eventCategory}
+				</if>
+
+				<if test='eventListDTO.eventTypes != null and eventListDTO.eventTypes.size > 0'>
+					and e.event_type in
+					<foreach collection='eventListDTO.eventTypes' item='id' index='index' open='(' close=')' separator=',' >
+						#{id}
+					</foreach>
+				</if>
+
+				<if test='eventListDTO.eventDealStatus != null'>
+					and e.event_deal_status = #{eventListDTO.eventDealStatus}
+				</if>
+
+				<if test='eventListDTO.urgent != null and eventListDTO.urgent != &quot;&quot;'>
+					and e.urgent = #{eventListDTO.urgent}
+				</if>
+
+				<if test='eventListDTO.major != null and eventListDTO.major != &quot;&quot;'>
+					and e.major = #{eventListDTO.major}
+				</if>
+			</where>
+			order by e.create_at desc
+	</select>
+
+	<select id="specialPopulationList" resultType="com.panzhihua.common.model.vos.grid.EventSpecialPopulationVO"
+			parameterType="com.panzhihua.common.model.dtos.grid.PageEventSpecialPopulationDTO">
+		SELECT
+			cmp.id,
+			cmp.`name`,
+			cmp.card_no as idCard,
+			cmpct.label,
+			cmp.sex,
+			cmp.phone,
+			cmp.address,
+			cmp.political_outlook
+		FROM
+			com_mng_population AS cmp
+			left join com_mng_population_community_tags AS cmpct on cmp.id = cmpct.population_id
+			<where>
+				and cmpct.label IS NOT NULL
+				<if test='specialPopulationDTO.communityId != null'>
+					and cmpct.community_id = ${specialPopulationDTO.communityId}
+				</if>
+				<if test="specialPopulationDTO.keyWord!=null and specialPopulationDTO.keyWord!= &quot;&quot;">
+					AND (cmp.name like concat(#{specialPopulationDTO.keyWord},'%') or cmp.card_no_str like concat(#{specialPopulationDTO.keyWord},'%'))
+				</if>
+			</where>
+		ORDER BY
+			cmp.create_at DESC
+	</select>
+
+	<select id="countByCommunityId" resultType="Map">
+		SELECT
+			count( e.id ) AS resolvedNum,
+			(
+			SELECT
+				count( e1.id )
+			FROM
+				`event` AS e1
+				LEFT JOIN event_grid_data AS egd1 ON egd1.id = e1.grid_id
+			WHERE
+				egd1.grid_community_id = ${communityId}
+				AND e1.event_category = 1
+				AND e1.event_process_status = 1
+				AND e1.event_status = 2
+				AND e1.event_deal_status = 1
+			) AS pendingNum,
+			(
+			SELECT
+				count( e2.id )
+			FROM
+				`event` AS e2
+				LEFT JOIN event_grid_data AS egd2 ON egd2.id = e2.grid_id
+			WHERE
+				egd2.grid_community_id = ${communityId}
+				AND e2.event_category = 2
+				AND e2.event_status = 2
+			) AS propagandaNum,
+			(
+			SELECT
+				count( e3.id )
+			FROM
+				`event` AS e3
+				LEFT JOIN event_grid_data AS egd3 ON egd3.id = e3.grid_id
+			WHERE
+				e3.event_status = 2
+				AND e3.create_at LIKE CONCAT(#{nowDate},'%')) as currentNum,
+				(select count(id) from com_act_easy_photo where community_id = ${communityId} and del_tag = 0 and create_at LIKE CONCAT(#{nowDate},'%')) as sspCurrentNum
+
+				FROM
+					`event` AS e
+					LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+				WHERE
+					egd.grid_community_id = ${communityId}
+					AND e.event_category = 1
+				AND e.event_process_status = 2
+			AND e.event_deal_status = 4
+	</select>
+
+	<select id="countByAvgCommunityId" resultType="com.panzhihua.common.model.vos.screen.DateScreenVO">
+		SELECT
+			e.create_at AS startTime,(
+			SELECT
+				e1.create_at
+			FROM
+				`event` AS e1
+				LEFT JOIN event_grid_data AS egd1 ON egd1.id = e1.grid_id
+			WHERE
+				egd1.grid_community_id = ${communityId}
+				AND e1.event_process_status = 2
+			ORDER BY
+				e1.create_at DESC
+				LIMIT 1
+			) AS endTime
+		FROM
+			`event` AS e
+			LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+		WHERE
+			egd.grid_community_id = ${communityId}
+			AND e.event_process_status = 2
+		ORDER BY
+			e.create_at ASC
+			LIMIT 1
+	</select>
+
+	<select id="getWorkScreenEventList" resultType="com.panzhihua.common.model.vos.screen.EventDetailWorkVO">
+		SELECT
+			e.id,
+			su.nick_name AS userName,
+			su.image_url,
+			e.create_at,
+			e.event_type,
+			e.event_process_status,
+			e.event_deal_status,
+			e.major,
+			e.red_card,
+			e.yellow_card,
+			e.urgent,
+			e.danger_level,
+			e.event_des,
+			e.happen_address,
+			e.happent_address,
+			e.happent_lat_lng
+		FROM
+			`event` AS e
+			LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+			LEFT JOIN sys_user AS su ON su.user_id = e.grid_member_id
+		WHERE
+			egd.grid_community_id = ${communityId}
+			AND e.event_status = 2
+			AND e.event_deal_status in (1,2,3,4,6,8)
+		ORDER BY
+			e.create_at DESC
+			LIMIT 10
+	</select>
+
+	<select id="countByTime" resultType="com.panzhihua.common.model.vos.screen.EventWorkVO">
+		SELECT
+		(
+		SELECT
+		COUNT( e.id )
+		FROM
+		`event` AS e
+		LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+		WHERE
+		egd.grid_community_id = ${communityId} and e.event_status = 2 AND e.create_at <![CDATA[<=]]> #{end}) AS eventTotal,
+		(select count(id) from com_act_easy_photo where community_id = ${communityId} and del_tag = 0 and create_at <![CDATA[<=]]> #{end}) as sspTotal,
+		(select count(id) from com_act_easy_photo where community_id = ${communityId} and del_tag = 0 and #{start} <![CDATA[<=]]> create_at AND create_at <![CDATA[<=]]> #{end}) as sspAdd,
+		(select count(id) from com_act_easy_photo where community_id = ${communityId} and handle_status = 2 and del_tag = 0 and #{start} <![CDATA[<=]]> create_at AND create_at <![CDATA[<=]]> #{end}) as sspSolve,
+		(
+		SELECT
+		COUNT( e1.id )
+		FROM
+		`event` AS e1
+		LEFT JOIN event_grid_data AS egd1 ON egd1.id = e1.grid_id
+		WHERE
+		egd1.grid_community_id = ${communityId} and e1.event_status = 2 AND #{start} <![CDATA[<=]]> e1.create_at AND e1.create_at <![CDATA[<=]]> #{end}) AS eventAdd,
+		(
+		SELECT
+		COUNT( e2.id )
+		FROM
+		`event` AS e2
+		LEFT JOIN event_grid_data AS egd2 ON egd2.id = e2.grid_id
+		WHERE
+		egd2.grid_community_id = ${communityId} and e2.event_process_status = 2 AND #{start} <![CDATA[<=]]> e2.create_at AND e2.create_at <![CDATA[<=]]> #{end}) AS eventSolve
+		FROM
+		DUAL
+	</select>
+
+	<select id="getComplete" resultType="com.panzhihua.common.model.vos.screen.EventTypeWorkVO">
+		SELECT
+			count( e.id ) AS zaTotal,(
+			SELECT
+				count( e1.id )
+			FROM
+				`event` AS e1
+				LEFT JOIN event_grid_data AS egd1 ON egd1.id = e1.grid_id
+			WHERE
+				e1.event_category = 1
+				AND e1.event_process_status = 2
+				AND e1.event_type = 2
+				AND egd1.grid_community_id = ${communityId}
+				) AS ggTotal,(
+			SELECT
+				count( e2.id )
+			FROM
+				`event` AS e2
+				LEFT JOIN event_grid_data AS egd2 ON egd2.id = e2.grid_id
+			WHERE
+				e2.event_category = 1
+				AND e2.event_process_status = 2
+				AND e2.event_type = 3
+				AND egd2.grid_community_id = ${communityId}
+				) AS mdTotal,(
+			SELECT
+				count( e3.id )
+			FROM
+				`event` AS e3
+				LEFT JOIN event_grid_data AS egd3 ON egd3.id = e3.grid_id
+			WHERE
+				e3.event_category = 1
+				AND e3.event_process_status = 2
+				AND e3.event_type = 4
+				AND egd3.grid_community_id = ${communityId}
+				) AS bwdTotal,(
+			SELECT
+				count( e4.id )
+			FROM
+				`event` AS e4
+				LEFT JOIN event_grid_data AS egd4 ON egd4.id = e4.grid_id
+			WHERE
+				e4.event_category = 1
+				AND e4.event_process_status = 2
+				AND e4.event_type = 5
+				AND egd4.grid_community_id = ${communityId}
+				) AS tfTotal,(
+			SELECT
+				count( e5.id )
+			FROM
+				`event` AS e5
+				LEFT JOIN event_grid_data AS egd5 ON egd5.id = e5.grid_id
+			WHERE
+				e5.event_category = 1
+				AND e5.event_process_status = 2
+				AND e5.event_type = 6
+				AND egd5.grid_community_id = ${communityId}
+			) AS tsTotal,
+			(select count(id) from com_act_easy_photo as caep where community_id = ${communityId} and del_tag = 0 and status = 4) as sspTotal
+		FROM
+			`event` AS e
+			LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+		WHERE
+			e.event_category = 1
+			AND e.event_process_status = 2
+			AND e.event_type = 1
+			AND egd.grid_community_id = ${communityId}
+	</select>
+
+	<select id="getNoComplete" resultType="com.panzhihua.common.model.vos.screen.EventTypeWorkVO">
+		SELECT
+			count( e.id ) AS zaTotal,(
+			SELECT
+				count( e1.id )
+			FROM
+				`event` AS e1
+				LEFT JOIN event_grid_data AS egd1 ON egd1.id = e1.grid_id
+			WHERE
+				e1.event_category = 1
+				AND e1.event_process_status = 1
+				AND e1.event_status = 2
+				AND e1.event_type = 2
+				AND egd1.grid_community_id = ${communityId}
+				) AS ggTotal,(
+			SELECT
+				count( e2.id )
+			FROM
+				`event` AS e2
+				LEFT JOIN event_grid_data AS egd2 ON egd2.id = e2.grid_id
+			WHERE
+				e2.event_category = 1
+				AND e2.event_process_status = 1
+				AND e2.event_status = 2
+				AND e2.event_type = 3
+				AND egd2.grid_community_id = ${communityId}
+				) AS mdTotal,(
+			SELECT
+				count( e3.id )
+			FROM
+				`event` AS e3
+				LEFT JOIN event_grid_data AS egd3 ON egd3.id = e3.grid_id
+			WHERE
+				e3.event_category = 1
+				AND e3.event_process_status = 1
+				AND e3.event_status = 2
+				AND e3.event_type = 4
+				AND egd3.grid_community_id = ${communityId}
+				) AS bwdTotal,(
+			SELECT
+				count( e4.id )
+			FROM
+				`event` AS e4
+				LEFT JOIN event_grid_data AS egd4 ON egd4.id = e4.grid_id
+			WHERE
+				e4.event_category = 1
+				AND e4.event_process_status = 1
+				AND e4.event_status = 2
+				AND e4.event_type = 5
+				AND egd4.grid_community_id = ${communityId}
+				) AS tfTotal,(
+			SELECT
+				count( e5.id )
+			FROM
+				`event` AS e5
+				LEFT JOIN event_grid_data AS egd5 ON egd5.id = e5.grid_id
+			WHERE
+				e5.event_category = 1
+				AND e5.event_process_status = 1
+				AND e5.event_status = 2
+				AND e5.event_type = 6
+				AND egd5.grid_community_id = ${communityId}
+			) AS tsTotal,
+			(select count(id) from com_act_easy_photo as caep where community_id = ${communityId} and del_tag = 0 and status in (1,2)) as sspTotal
+		FROM
+			`event` AS e
+			LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+		WHERE
+			e.event_category = 1
+			AND e.event_process_status = 1
+			AND e.event_status = 2
+			AND e.event_type = 1
+			AND egd.grid_community_id = ${communityId}
+	</select>
+
+	<select id="getSSPEventTotal" resultType="Map">
+		SELECT
+			count( id ) as noEventSSPTotal,
+			( SELECT count( id ) FROM com_act_easy_photo WHERE handle_status = 2 and del_tag = 0 AND community_id = ${communityId} ) AS eventSSPTotal
+		FROM
+			com_act_easy_photo
+		WHERE
+			handle_status = 1 and del_tag = 0
+			AND community_id = ${communityId}
+	</select>
+
+	<select id="getEventListByCommunityId" parameterType="Long"
+			resultType="com.panzhihua.common.model.vos.community.screen.event.EventGridIncidentStatisticsVO">
+		SELECT
+			e.id,
+			e.event_type AS type,
+			e.happent_lat_lng AS latLng,
+			e.event_deal_status as status
+		FROM
+			`event` AS e
+			left join event_grid_data as egd on egd.id = e.grid_id
+		WHERE
+			e.event_category = 1
+			AND e.event_status = 2
+			AND egd.grid_community_id = ${communityId}
+			AND e.event_deal_status IN (1,2,3,4)
+			union all
+			select id,7 as type,lng_lat as latLng,handle_status as status from com_act_easy_photo as caep where community_id = ${communityId} and lng_lat is not null
+	</select>
+
+	<select id="getCivilScreenVillageList" parameterType="Long"  resultType="com.panzhihua.common.model.vos.community.screen.civil.CivilVillageStatisticsVO">
+		SELECT `NAME`,  user_sum,  lng,  lat,  village_images,  village_id  FROM  com_mng_village AS cmv  WHERE  community_id = ${communityId}
+	</select>
+
+	<select id="getVillagePopulationTotal" parameterType="Long" resultType="com.panzhihua.common.model.vos.screen.ScreenDrawEventPopulationTotalVO">
+		SELECT
+			count( id ) as populationTotal,
+			(select count(id) from com_mng_population where village_id = #{villageId} and out_or_local = 1) as localTotal,
+			(select count(id) from com_mng_population where village_id = #{villageId} and out_or_local = 2) as outTotal,
+			(select count(cmp.id) from com_mng_population_community_tags as cmpct left join com_mng_population as cmp on cmpct.population_id = cmp.id where cmp.village_id = #{villageId} and cmpct.label is not null) as specialTotal,
+			(select count(id) from com_mng_building where village_id = #{villageId}) as buildTotal
+		FROM
+			com_mng_population AS cmp
+		WHERE
+			village_id = #{villageId}
+	</select>
+
+	<select id="getMemberBuildName" resultType="Map">
+		SELECT
+			cmb.`name`,egmbr.village_id
+		FROM
+			event_grid_member_building_relation AS egmbr
+			LEFT JOIN com_mng_building AS cmb ON cmb.id = egmbr.building_id
+		WHERE
+			egmbr.grid_member_id = #{userId}
+	</select>
+
+	<select id="getPopulationByLabelCount" resultType="Integer">
+		select count(cmpct.id) from com_mng_population_community_tags AS cmpct
+			  left join com_mng_population AS cmp on cmp.id = cmpct.population_id
+		where cmtct.label is not null and cmp.village_id = #{villageId} and floor = #{floor}
+	</select>
+    <select id="selectComprehensiveGovernanceStatics"
+            resultType="com.panzhihua.common.model.vos.community.screen.event.EventComprehensiveGovernanceStatisticsVO">
+		SELECT
+		(SELECT COUNT( e.id ) FROM `event` AS e
+		LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+		LEFT JOIN com_act AS a ON egd.grid_community_id = a.community_id
+		WHERE e.event_category = 1 AND e.event_type = 5 AND e.event_deal_status = 4 AND a.area_code = 510423) AS eventTFTotal,
+
+		(SELECT COUNT( e1.id ) FROM `event` AS e1
+		LEFT JOIN event_grid_data AS egd1 ON egd1.id = e1.grid_id
+		LEFT JOIN com_act AS a1 ON egd1.grid_community_id = a1.community_id
+		WHERE event_category = 1 AND event_type = 1 AND e1.event_deal_status = 4 AND a1.area_code = 510423) AS eventZATotal,
+
+		(SELECT COUNT( e2.id ) FROM `event` AS e2
+		LEFT JOIN event_grid_data AS egd2 ON egd2.id = e2.grid_id
+		LEFT JOIN com_act AS a2 ON egd2.grid_community_id = a2.community_id
+		WHERE event_category = 1 AND event_type = 3 AND e2.event_deal_status = 4 AND a2.area_code = 510423) AS eventMDTotal,
+
+		(SELECT COUNT( e3.id ) FROM `event` AS e3
+		LEFT JOIN event_grid_data AS egd3 ON egd3.id = e3.grid_id
+		LEFT JOIN com_act AS a3 ON egd3.grid_community_id = a3.community_id
+		WHERE event_category = 1 AND event_type = 6 AND e3.event_deal_status = 4 AND a3.area_code = 510423) AS eventTSTotal,
+
+		(SELECT COUNT( e5.id ) FROM `event` AS e5
+		LEFT JOIN event_grid_data AS egd5 ON egd5.id = e5.grid_id
+		LEFT JOIN com_act AS a5 ON egd5.grid_community_id = a5.community_id
+		WHERE event_category = 1 AND event_type = 2 AND e5.event_deal_status = 4 AND a5.area_code = 510423) AS eventMSTotal,
+
+		(SELECT COUNT(p.id) FROM com_act_easy_photo p
+		LEFT JOIN com_act AS a ON p.community_id = a.community_id
+		WHERE p.`status` = 4 AND p.del_tag = 0 AND a.area_code = 510423) AS eventSSPTotal
+	</select>
+	<select id="getGridsGovernanceEventList"
+			resultType="com.panzhihua.common.model.vos.community.screen.event.EventGridIncidentStatisticsVO">
+		SELECT event_type AS type, IFNULL( NULL, 1 ) AS eventType, e.id AS eventId, happent_lat_lng AS latLng, event_des AS content,
+        (SELECT url FROM event_resource WHERE ref_id = e.id AND classification = 1 AND `type` = 1 LIMIT 1) AS cover, e.create_at,
+        CASE
+        WHEN event_deal_status = 4 THEN 1
+        ELSE 2 END `status`
+        FROM `event` AS e
+        LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+        WHERE e.event_category = 1 AND e.event_type IN ( 1, 2, 3, 5, 6 ) AND e.event_status = 2 AND egd.grid_community_id = ${communityId}
+        UNION ALL SELECT
+        CASE
+        WHEN classify_id = 4 THEN 1
+        WHEN classify_id = 6 THEN 2
+        WHEN classify_id = 5 THEN 3
+        WHEN classify_id = 7 THEN 5
+        WHEN classify_id = 3 THEN 6
+        WHEN classify_id = 8 THEN 9
+        WHEN classify_id = 1 THEN 10
+        END type, IFNULL( NULL, 2 ) AS eventType, id AS eventId, lng_lat AS latLng, detail AS content, substring_index(photo_path_list, ',', 1) AS cover, create_at,
+        CASE
+        WHEN `status` = 4 THEN 1
+        ELSE 2 END `status`
+        FROM com_act_easy_photo WHERE community_id = ${communityId} AND `status` IN (1,2,4) AND del_tag = 0 AND classify_id IN (1,3,4,5,6,7,8)
+	</select>
+	<select id="getVillagePopulationTotalNew"
+			resultType="com.panzhihua.common.model.vos.screen.ScreenDrawEventPopulationTotalVO">
+		SELECT
+		(SELECT count(id) FROM com_mng_population WHERE village_id = #{villageId}) as populationTotal,
+		(SELECT count(id) from com_mng_building where village_id = #{villageId}) as buildTotal,
+		(SELECT count(id) FROM com_mng_population_house WHERE village_id = #{villageId}) as houseTotal,
+		(select count(id) from com_mng_population where village_id = #{villageId} and out_or_local = 1) as localTotal,
+		(select count(id) from com_mng_population where village_id = #{villageId} and out_or_local = 2) as outTotal,
+		(SELECT COUNT(t1.id) FROM com_disability_population t1 LEFT JOIN com_mng_population t2 ON t1.population_id = t2.id WHERE t2.village_id = #{villageId}) as disabilityTotal,
+		(SELECT COUNT(t1.id) FROM com_low_security_population t1 LEFT JOIN com_mng_population t2 ON t1.population_id = t2.id WHERE t2.village_id = #{villageId}) as lowSecurityTotal,
+		(SELECT COUNT(id) FROM com_mng_population WHERE village_id = #{villageId} AND TIMESTAMPDIFF(YEAR, SUBSTRING(card_no_str, 7, 8), NOW()) > 80) as elderTotal,
+		(SELECT COUNT(t1.id) FROM com_mng_population t1 LEFT JOIN com_mng_population_community_tags t2 ON t1.id = t2.population_id WHERE t1.village_id = #{villageId} AND t2.label LIKE '%特殊情况%') as specialSituationTotal,
+		(SELECT COUNT(id) FROM
+		(SELECT t1.id FROM com_drug_population t1 LEFT JOIN com_mng_population t2 ON t1.population_id = t2.id WHERE t2.village_id = #{villageId}
+		UNION ALL
+		SELECT t1.id FROM com_correct_population t1 LEFT JOIN com_mng_population t2 ON t1.population_id = t2.id WHERE t2.village_id = #{villageId}
+		UNION ALL
+		SELECT t1.id FROM com_cult_population t1 LEFT JOIN com_mng_population t2 ON t1.population_id = t2.id WHERE t2.village_id = #{villageId}
+		UNION ALL
+		SELECT t1.id FROM com_rehabilitation_population t1 LEFT JOIN com_mng_population t2 ON t1.population_id = t2.id WHERE t2.village_id = #{villageId}
+		UNION ALL
+		SELECT t1.id FROM com_key_population t1 LEFT JOIN com_mng_population t2 ON t1.population_id = t2.id WHERE t2.village_id = #{villageId}
+		UNION ALL
+		SELECT t1.id FROM com_major_population t1 LEFT JOIN com_mng_population t2 ON t1.population_id = t2.id WHERE t2.village_id = #{villageId}
+		) temp) as otherTotal,
+		(SELECT COUNT(t1.id) FROM com_mng_population t1 LEFT JOIN com_mng_population_community_tags t2 ON t1.id = t2.population_id WHERE t1.village_id = #{villageId} AND t2.label LIKE '%特扶家庭%') as specialHelpTotal,
+		(SELECT COUNT(t1.id) FROM com_veterans_population t1 LEFT JOIN com_mng_population t2 ON t1.population_id = t2.id WHERE t2.village_id = #{villageId}) as veteransTotal,
+		(SELECT COUNT(id) FROM com_mng_population WHERE village_id = #{villageId} AND TIMESTAMPDIFF(YEAR, SUBSTRING(card_no_str, 7, 8), NOW()) > 60) as oldTotal,
+		(SELECT COUNT(t1.id) FROM com_pension_auth_pensioners t1 LEFT JOIN com_mng_population t2 ON t1.population_id = t2.id WHERE t2.village_id = #{villageId}) as pensionTotal,
+		(SELECT COUNT(id) FROM renting_hourse_register WHERE village_id = #{villageId} AND auth_status = 2) as rentingHouseTotal,
+		(SELECT COUNT(id) FROM com_mng_population t1 LEFT JOIN sys_user t2 ON t1.card_no_str = t2.id_card WHERE t1.village_id = #{villageId} AND t2.is_volunteer = 1) as volunteerTotal,
+		(SELECT ROUND(AVG(TIMESTAMPDIFF(YEAR, SUBSTRING(card_no_str, 7, 8), NOW()))) FROM com_mng_population) as averageAge
+	</select>
+	<select id="selectStatisticsForAge" resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+		SELECT filed, SUM(num) AS num FROM (
+			SELECT filed, COUNT(filed) AS num FROM (
+			SELECT
+			CASE
+			WHEN TIMESTAMPDIFF(YEAR, SUBSTRING(card_no_str, 7, 8), NOW()) BETWEEN 0 AND 18 THEN '0-18岁'
+			WHEN TIMESTAMPDIFF(YEAR, SUBSTRING(card_no_str, 7, 8), NOW()) BETWEEN 19 AND 30 THEN '19-30岁'
+			WHEN TIMESTAMPDIFF(YEAR, SUBSTRING(card_no_str, 7, 8), NOW()) BETWEEN 31 AND 40 THEN '31-40岁'
+			WHEN TIMESTAMPDIFF(YEAR, SUBSTRING(card_no_str, 7, 8), NOW()) BETWEEN 41 AND 50 THEN '41-50岁'
+			WHEN TIMESTAMPDIFF(YEAR, SUBSTRING(card_no_str, 7, 8), NOW()) BETWEEN 51 AND 60 THEN '51-60岁'
+			WHEN TIMESTAMPDIFF(YEAR, SUBSTRING(card_no_str, 7, 8), NOW()) BETWEEN 61 AND 79 THEN '61-79岁'
+			WHEN TIMESTAMPDIFF(YEAR, SUBSTRING(card_no_str, 7, 8), NOW()) BETWEEN 80 AND 89 THEN '80-89岁'
+			WHEN TIMESTAMPDIFF(YEAR, SUBSTRING(card_no_str, 7, 8), NOW()) > 89 THEN '89岁以上'
+			END filed
+			FROM com_mng_population WHERE village_id IN
+			<foreach collection="villageIds" index="index" item="item" open="(" separator="," close=")">
+				#{item}
+			</foreach>
+			) temp WHERE filed is not null GROUP BY filed
+			UNION ALL
+			(SELECT '0-18岁' AS filed, 0 AS num)
+			UNION ALL
+			(SELECT '19-30岁' AS filed, 0 AS num)
+			UNION ALL
+			(SELECT '31-40岁' AS filed, 0 AS num)
+			UNION ALL
+			(SELECT '41-50岁' AS filed, 0 AS num)
+			UNION ALL
+			(SELECT '51-60岁' AS filed, 0 AS num)
+			UNION ALL
+			(SELECT '61-79岁' AS filed, 0 AS num)
+			UNION ALL
+			(SELECT '80-89岁' AS filed, 0 AS num)
+			UNION ALL
+			(SELECT '89岁以上' AS filed, 0 AS num)
+		) t GROUP BY filed
+	</select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsConfigMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsConfigMapper.xml
new file mode 100644
index 0000000..46c167b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsConfigMapper.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_community.dao.McsConfigDAO">
+
+    <resultMap type="com.panzhihua.service_community.entity.McsConfig" id="McsConfigMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="key" column="key" jdbcType="VARCHAR"/>
+        <result property="value" column="value" jdbcType="VARCHAR"/>
+        <result property="createdAt" column="created_at" jdbcType="TIMESTAMP"/>
+        <result property="createdBy" column="created_by" jdbcType="INTEGER"/>
+        <result property="updatedAt" column="updated_at" jdbcType="TIMESTAMP"/>
+        <result property="updatedBy" column="updated_by" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <!-- 批量插入 -->
+    <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.mcs_config(name, key, value, created_at, created_by, updated_at, updated_by)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.name}, #{entity.key}, #{entity.value}, #{entity.createdAt}, #{entity.createdBy},
+            #{entity.updatedAt}, #{entity.updatedBy})
+        </foreach>
+    </insert>
+    <!-- 批量插入或按主键更新 -->
+    <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.mcs_config(name, key, value, created_at, created_by, updated_at, updated_by)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.name}, #{entity.key}, #{entity.value}, #{entity.createdAt}, #{entity.createdBy},
+            #{entity.updatedAt}, #{entity.updatedBy})
+        </foreach>
+        on duplicate key update
+        name = values(name) , key = values(key) , value = values(value) , created_at = values(created_at) , created_by =
+        values(created_by) , updated_at = values(updated_at) , updated_by = values(updated_by)
+    </insert>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsCouponMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsCouponMapper.xml
new file mode 100644
index 0000000..4fe83d8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsCouponMapper.xml
@@ -0,0 +1,87 @@
+<?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.McsCouponDAO">
+
+    <resultMap type="com.panzhihua.service_community.entity.McsCoupon" id="McsCouponMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="gameId" column="game_id" jdbcType="INTEGER"/>
+        <result property="userId" column="user_id" jdbcType="INTEGER"/>
+        <result property="qrCode" column="qr_code" jdbcType="VARCHAR"/>
+        <result property="coin" column="coin" jdbcType="INTEGER"/>
+        <result property="award" column="award" jdbcType="VARCHAR"/>
+        <result property="isVerified" column="is_verified" jdbcType="VARCHAR"/>
+        <result property="createdAt" column="created_at" jdbcType="TIMESTAMP"/>
+        <result property="updatedAt" column="updated_at" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+    <!-- 批量插入 -->
+    <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.mcs_coupon(game_id, user_id, qr_code, is_verified, created_at, updated_at)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.gameId}, #{entity.userId}, #{entity.qrCode}, #{entity.isVerified}, #{entity.createdAt},
+            #{entity.updatedAt})
+        </foreach>
+    </insert>
+    <!-- 批量插入或按主键更新 -->
+    <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.mcs_coupon(game_id, user_id, qr_code, is_verified, created_at, updated_at)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.gameId}, #{entity.userId}, #{entity.qrCode}, #{entity.isVerified}, #{entity.createdAt},
+            #{entity.updatedAt})
+        </foreach>
+        on duplicate key update
+        game_id = values(game_id) , user_id = values(user_id) , qr_code = values(qr_code) , is_verified =
+        values(is_verified) , created_at = values(created_at) , updated_at = values(updated_at)
+    </insert>
+    <select id="getMyCouponData"
+            resultType="com.panzhihua.common.model.vos.community.microCommercialStreet.MyCouponVO">
+        SELECT
+        (SELECT IF(SUM(coin) IS NULL,0,SUM(coin)) FROM mcs_coupon WHERE user_id = #{userId}) AS obtainedTotal,
+        (SELECT COUNT(t1.id) FROM mcs_coupon t1 LEFT JOIN mcs_game t2 ON t1.game_id = t2.id WHERE t1.user_id = #{userId} AND t1.is_verified = 1 AND t2.type = 2) AS trialTotal,
+        (SELECT COUNT(t1.id) FROM mcs_coupon t1 LEFT JOIN mcs_game t2 ON t1.game_id = t2.id WHERE t1.user_id = #{userId} AND t1.is_verified = 1 AND t2.type = 1) AS joinGameTotal,
+        (SELECT COUNT(id) FROM mcs_coupon WHERE user_id = #{userId} AND is_verified = 0) AS unVerifiedTotal
+    </select>
+    <select id="getCouponList"
+            resultType="com.panzhihua.common.model.vos.community.microCommercialStreet.McsCouponVO">
+        SELECT t1.*, t2.type, t2.award_type, t2.`name`, t2.expire_at
+        FROM mcs_coupon t1
+        LEFT JOIN mcs_game t2 ON t1.game_id = t2.id
+        WHERE t1.user_id = #{userId}
+        <if test="type != null">
+            AND t2.type = #{type}
+        </if>
+        ORDER BY t1.created_at DESC
+    </select>
+    <select id="pageJoinGameList"
+            resultType="com.panzhihua.common.model.vos.community.microCommercialStreet.McsCouponVO">
+        SELECT t1.*, t2.type, t2.`name`, t2.expire_at, t2.cover, t2.id AS gameId, t2.award_type, t2.allocation,
+        IF(t3.id IS NULL,2,1) AS isEvaluate, t3.id AS evaluateId
+        FROM mcs_coupon t1
+        LEFT JOIN mcs_game t2 ON t1.game_id = t2.id
+        LEFT JOIN mcs_evaluate t3 ON t1.id = t3.coupon_id
+        WHERE t1.user_id = #{pageJoinGameListDTO.userId} AND t1.is_verified = 1
+        <if test="pageJoinGameListDTO.keyword != null and pageJoinGameListDTO.keyword != &quot;&quot;">
+            AND t2.`name` LIKE CONCAT(#{pageJoinGameListDTO.keyword}, '%')
+        </if>
+        ORDER BY t1.created_at DESC
+    </select>
+    <select id="getMcsGameStatistics"
+            resultType="com.panzhihua.common.model.vos.community.microCommercialStreet.GameStatisticsVO">
+        SELECT gameTotal, sendCouponTotal,
+        IF(ROUND((sendCouponTotal - unAppliedTotal)/sendCouponTotal * 100,2) IS NULL,0,ROUND((sendCouponTotal - unAppliedTotal)/sendCouponTotal * 100,2))AS appliedPercent,
+        IF(ROUND(unAppliedTotal/sendCouponTotal * 100,2) IS NULL,0,ROUND(unAppliedTotal/sendCouponTotal * 100,2)) AS unAppliedPercent,
+        IF(ROUND(verifiedTotal/(sendCouponTotal - unAppliedTotal) * 100,2) IS NULL,0,ROUND(verifiedTotal/(sendCouponTotal - unAppliedTotal) * 100,2)) AS verifiedPercent,
+        IF(ROUND((sendCouponTotal - unAppliedTotal - verifiedTotal)/(sendCouponTotal - unAppliedTotal) * 100,2) IS NULL,0,ROUND((sendCouponTotal - unAppliedTotal - verifiedTotal)/(sendCouponTotal - unAppliedTotal) * 100,2)) AS unVerifiedPercent
+        FROM(
+        SELECT
+        (SELECT COUNT(t1.id) FROM mcs_game t1 LEFT JOIN mcs_merchant t2 ON t1.merchant_id = t2.id WHERE t1.`status` != 1 AND t1.is_del = 0 AND t1.`type` = 1 AND t2.user_id = #{userId}) AS gameTotal,
+        (SELECT IF(SUM(coupons) IS NULL,0,SUM(coupons)) FROM mcs_game t1 LEFT JOIN mcs_merchant t2 ON t1.merchant_id = t2.id WHERE t1.`status` != 1 AND t1.is_del = 0 AND t1.`type` = 1 AND t2.user_id = #{userId}) AS sendCouponTotal,
+        (SELECT IF(SUM(surplus_coupons) IS NULL,0,SUM(surplus_coupons)) FROM mcs_game t1 LEFT JOIN mcs_merchant t2 ON t1.merchant_id = t2.id WHERE t1.`status` != 1 AND t1.is_del = 0 AND t1.`type` = 1 AND t2.user_id = #{userId}) AS unAppliedTotal,
+        (SELECT COUNT(t1.id) FROM mcs_verified_record t1 LEFT JOIN mcs_merchant t2 ON t1.merchant_id = t2.id LEFT JOIN mcs_game t3 ON t1.game_id = t3.id WHERE t3.is_del = 0 AND t3.`type` = 1 AND t2.user_id = #{userId}) AS verifiedTotal
+        ) temp
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsEvaluateMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsEvaluateMapper.xml
new file mode 100644
index 0000000..03916d3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsEvaluateMapper.xml
@@ -0,0 +1,66 @@
+<?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.McsEvaluateDAO">
+
+    <resultMap type="com.panzhihua.service_community.entity.McsEvaluate" id="McsEvaluateMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="couponId" column="coupon_id" jdbcType="INTEGER"/>
+        <result property="gameId" column="game_id" jdbcType="INTEGER"/>
+        <result property="userId" column="user_id" jdbcType="INTEGER"/>
+        <result property="star" column="star" jdbcType="INTEGER"/>
+        <result property="content" column="content" jdbcType="VARCHAR"/>
+        <result property="photos" column="photos" jdbcType="VARCHAR"/>
+        <result property="createdAt" column="created_at" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+    <!-- 批量插入 -->
+    <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.mcs_evaluate(coupon_id, star, content, photos, created_at)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.couponId}, #{entity.star}, #{entity.content}, #{entity.photos}, #{entity.createdAt})
+        </foreach>
+    </insert>
+    <!-- 批量插入或按主键更新 -->
+    <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.mcs_evaluate(coupon_id, star, content, photos, created_at)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.couponId}, #{entity.star}, #{entity.content}, #{entity.photos}, #{entity.createdAt})
+        </foreach>
+        on duplicate key update
+        coupon_id = values(coupon_id) , star = values(star) , content = values(content) , photos = values(photos) ,
+        created_at = values(created_at)
+    </insert>
+    <select id="pageMcsEvaluate"
+            resultType="com.panzhihua.common.model.vos.community.microCommercialStreet.McsEvaluateVO">
+        SELECT t1.id, t1.star, t1.content, t1.photos, t1.created_at, t3.`name` AS nickName, t3.phone, t3.image_url, t2.`name` AS gameName
+        FROM mcs_evaluate t1
+        LEFT JOIN mcs_game t2 ON t1.game_id = t2.id
+        LEFT JOIN sys_user t3 ON t1.user_id = t3.user_id
+        WHERE 1=1
+        <if test="pageMcsEvaluateDTO.gameId != null">
+            AND t1.game_id = #{pageMcsEvaluateDTO.gameId}
+        </if>
+        <if test="pageMcsEvaluateDTO.isMy != null and pageMcsEvaluateDTO.isMy == 1">
+            AND t1.user_id = #{pageMcsEvaluateDTO.userId}
+        </if>
+        <if test="pageMcsEvaluateDTO.keyword != null and pageMcsEvaluateDTO.keyword != &quot;&quot;">
+            AND (
+            t3.`name` LIKE CONCAT(#{pageMcsEvaluateDTO.keyword}, '%')
+            OR t3.phone LIKE CONCAT(#{pageMcsEvaluateDTO.keyword}, '%')
+            )
+        </if>
+        ORDER BY t1.created_at DESC
+    </select>
+    <select id="getMcsEvaluate"
+            resultType="com.panzhihua.common.model.vos.community.microCommercialStreet.McsEvaluateVO">
+        SELECT t1.id, t1.star, t1.content, t1.photos, t1.created_at, t3.`name` AS nickName, t3.phone, t2.`name` AS gameName
+        FROM mcs_evaluate t1
+        LEFT JOIN mcs_game t2 ON t1.game_id = t2.id
+        LEFT JOIN sys_user t3 ON t1.user_id = t3.user_id
+        WHERE t1.id = #{evaluateId}
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsGameMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsGameMapper.xml
new file mode 100644
index 0000000..9b14f8e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsGameMapper.xml
@@ -0,0 +1,183 @@
+<?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.McsGameDAO">
+
+    <resultMap type="com.panzhihua.service_community.entity.McsGame" id="McsGameMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="coupons" column="coupons" jdbcType="INTEGER"/>
+        <result property="surplusCoupons" column="surplus_coupons" jdbcType="INTEGER"/>
+        <result property="type" column="type" jdbcType="INTEGER"/>
+        <result property="awardType" column="award_type" jdbcType="INTEGER"/>
+        <result property="allocation" column="allocation" jdbcType="INTEGER"/>
+        <result property="coins" column="coins" jdbcType="INTEGER"/>
+        <result property="surplusCoins" column="surplus_coins" jdbcType="INTEGER"/>
+        <result property="address" column="address" jdbcType="VARCHAR"/>
+        <result property="lat" column="lat" jdbcType="VARCHAR"/>
+        <result property="lon" column="lon" jdbcType="VARCHAR"/>
+        <result property="expireAt" column="expire_at" jdbcType="TIMESTAMP"/>
+        <result property="cover" column="cover" jdbcType="VARCHAR"/>
+        <result property="otherImages" column="other_images" jdbcType="VARCHAR"/>
+        <result property="introduction" column="introduction" jdbcType="VARCHAR"/>
+        <result property="status" column="status" jdbcType="INTEGER"/>
+        <result property="isPopular" column="is_popular" jdbcType="VARCHAR"/>
+        <result property="publishAt" column="publish_at" jdbcType="TIMESTAMP"/>
+        <result property="isDel" column="is_del" jdbcType="VARCHAR"/>
+        <result property="merchantId" column="merchant_id" jdbcType="INTEGER"/>
+        <result property="createdAt" column="created_at" jdbcType="TIMESTAMP"/>
+        <result property="createdBy" column="created_by" jdbcType="INTEGER"/>
+        <result property="updatedAt" column="updated_at" jdbcType="TIMESTAMP"/>
+        <result property="updatedBy" column="updated_by" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <!-- 批量插入 -->
+    <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.mcs_game(name, coupons, surplus_coupons, type, award_type, allocation, coins, address,
+        lat, lon, expire_at, cover, other_images, introduction, status, publish_at, is_del, merchant_id, created_at,
+        created_by, updated_at, updated_by)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.name}, #{entity.coupons}, #{entity.surplusCoupons}, #{entity.type}, #{entity.awardType},
+            #{entity.allocation}, #{entity.coins}, #{entity.address}, #{entity.lat}, #{entity.lon}, #{entity.expireAt},
+            #{entity.cover}, #{entity.otherImages}, #{entity.introduction}, #{entity.status}, #{entity.publishAt},
+            #{entity.isDel}, #{entity.merchantId}, #{entity.createdAt}, #{entity.createdBy}, #{entity.updatedAt},
+            #{entity.updatedBy})
+        </foreach>
+    </insert>
+    <!-- 批量插入或按主键更新 -->
+    <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.mcs_game(name, coupons, surplus_coupons, type, award_type, allocation, coins, address,
+        lat, lon, expire_at, cover, other_images, introduction, status, publish_at, is_del, merchant_id, created_at,
+        created_by, updated_at, updated_by)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.name}, #{entity.coupons}, #{entity.surplusCoupons}, #{entity.type}, #{entity.awardType},
+            #{entity.allocation}, #{entity.coins}, #{entity.address}, #{entity.lat}, #{entity.lon}, #{entity.expireAt},
+            #{entity.cover}, #{entity.otherImages}, #{entity.introduction}, #{entity.status}, #{entity.publishAt},
+            #{entity.isDel}, #{entity.merchantId}, #{entity.createdAt}, #{entity.createdBy}, #{entity.updatedAt},
+            #{entity.updatedBy})
+        </foreach>
+        on duplicate key update
+        name = values(name) , coupons = values(coupons) , surplus_coupons = values(surplus_coupons) , type =
+        values(type) , award_type = values(award_type) , allocation = values(allocation) , coins = values(coins) ,
+        address = values(address) , lat = values(lat) , lon = values(lon) , expire_at = values(expire_at) , cover =
+        values(cover) , other_images = values(other_images) , introduction = values(introduction) , status =
+        values(status) , publish_at = values(publish_at) , is_del = values(is_del) , merchant_id = values(merchant_id) ,
+        created_at = values(created_at) , created_by = values(created_by) , updated_at = values(updated_at) , updated_by
+        = values(updated_by)
+    </insert>
+    <update id="setOffByMerchantIds">
+        UPDATE mcs_game SET `status` = 3 WHERE merchant_id IN
+        <foreach collection="needDealIds" index="index" item="item" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+    </update>
+    <select id="pageMcsGame"
+            resultType="com.panzhihua.common.model.vos.community.microCommercialStreet.McsGameVO">
+        (SELECT t1.id, t1.`name`, t1.`type`, t1.coupons, t1.surplus_coupons, t1.award_type,
+        t1.publish_at, t1.expire_at, t1.`status`, t1.merchant_id, t2.`name` AS merchantName, t1.is_popular, t1.cover
+        FROM mcs_game t1
+        LEFT JOIN mcs_merchant t2 ON t1.merchant_id = t2.id
+        WHERE t1.is_del = 0 AND t1.`status` = 2
+        <if test="pageMcsGameDTO.userId != null">
+            AND t2.user_id = #{pageMcsGameDTO.userId}
+        </if>
+        <if test="pageMcsGameDTO.type != null">
+            AND t1.`type` = #{pageMcsGameDTO.type}
+        </if>
+        <if test="pageMcsGameDTO.status != null">
+            AND t1.`status` = #{pageMcsGameDTO.status}
+        </if>
+        <if test="pageMcsGameDTO.keyword != null and pageMcsGameDTO.keyword != &quot;&quot;">
+            AND t1.`name` LIKE CONCAT(#{pageMcsGameDTO.keyword}, '%')
+        </if>
+        ORDER BY t1.created_at DESC LIMIT 99999)
+        UNION ALL
+        (SELECT t1.id, t1.`name`, t1.`type`, t1.coupons, t1.surplus_coupons, t1.award_type,
+        t1.publish_at, t1.expire_at, t1.`status`, t1.merchant_id, t2.`name` AS merchantName, t1.is_popular, t1.cover
+        FROM mcs_game t1
+        LEFT JOIN mcs_merchant t2 ON t1.merchant_id = t2.id
+        WHERE t1.is_del = 0  AND t1.`status` != 2
+        <if test="pageMcsGameDTO.userId != null">
+            AND t2.user_id = #{pageMcsGameDTO.userId}
+        </if>
+        <if test="pageMcsGameDTO.type != null">
+            AND t1.`type` = #{pageMcsGameDTO.type}
+        </if>
+        <if test="pageMcsGameDTO.status != null">
+            AND t1.`status` = #{pageMcsGameDTO.status}
+        </if>
+        <if test="pageMcsGameDTO.keyword != null and pageMcsGameDTO.keyword != &quot;&quot;">
+            AND t1.`name` LIKE CONCAT(#{pageMcsGameDTO.keyword}, '%')
+        </if>
+        ORDER BY t1.created_at DESC LIMIT 99999)
+    </select>
+    <select id="selectPublishCount" resultType="java.lang.Integer">
+        SELECT SUM(publishCount) AS publishCount FROM
+        (
+            SELECT COUNT(1) AS publishCount FROM mcs_game WHERE merchant_id = #{merchantId} AND `status` = 2 AND is_del = 0
+            UNION ALL
+            SELECT COUNT(1) AS publishCount FROM mcs_information WHERE merchant_id = #{merchantId} AND `status` = 2 AND is_del = 0
+        ) temp
+    </select>
+    <select id="selectAppliedCount" resultType="java.lang.Integer">
+        SELECT COUNT(1)
+        FROM mcs_coupon t1
+        LEFT JOIN mcs_game t2 ON t1.game_id = t2.id
+        WHERE t2.merchant_id = #{merchantId} AND t2.`type` = #{type}
+    </select>
+    <select id="selectVerifiedCount" resultType="java.lang.Integer">
+        SELECT COUNT(1)
+        FROM mcs_coupon t1
+        LEFT JOIN mcs_game t2 ON t1.game_id = t2.id
+        WHERE t1.is_verified = 1 AND t2.merchant_id = #{merchantId} AND t2.`type` = #{type}
+    </select>
+    <select id="selectPopularGame"
+            resultType="com.panzhihua.common.model.vos.community.microCommercialStreet.McsGameVO">
+        SELECT t1.id, t1.`name`, t1.coupons, t1.surplus_coupons, t1.`type`, t1.award_type FROM mcs_game t1
+        LEFT JOIN mcs_merchant t2 ON t1.merchant_id = t2.id
+        LEFT JOIN sys_user t3 ON t2.user_id = t3.user_id
+        WHERE t1.is_del = 0 AND t1.`status` = 2 AND t1.is_popular = 1 AND t2.is_del = 0 AND t3.`status` = 1 LIMIT 1
+    </select>
+    <select id="pageH5McsGame"
+            resultType="com.panzhihua.common.model.vos.community.microCommercialStreet.McsGameVO">
+        SELECT * FROM (
+            SELECT t1.id, t1.`name`, t1.`type`, t1.coupons, t1.surplus_coupons, t1.award_type, t1.cover,
+            IF(t1.allocation = 1,t1.coins,t1.coins * t1.coupons) AS coins, t1.allocation, t1.surplus_coins,
+            t1.publish_at, t1.`status`, t1.merchant_id, t1.lat, t1.lon, t2.`name` AS merchantName,
+            ROUND(6378.138 * 2 * ASIN(SQRT(POW(SIN((t1.lat * PI() / 180 - #{pageMcsGameDTO.lat} * PI() / 180) / 2),2)
+            +
+            COS(t1.lat * PI() / 180) * COS(#{pageMcsGameDTO.lat} * PI() / 180) * POW(SIN((t1.lon * PI() / 180 -
+            #{pageMcsGameDTO.lon} * PI() / 180) / 2),2))), 2) AS distance
+            FROM mcs_game t1
+            LEFT JOIN mcs_merchant t2 ON t1.merchant_id = t2.id
+            LEFT JOIN sys_user t3 ON t2.user_id = t3.user_id
+            WHERE t1.is_del = 0 AND t1.`status` = 2 AND t1.expire_at > NOW() AND t3.`status` = 1
+            <if test="pageMcsGameDTO.keyword != null and pageMcsGameDTO.keyword != &quot;&quot;">
+                AND t1.`name` LIKE CONCAT(#{pageMcsGameDTO.keyword}, '%')
+            </if>
+            <if test="pageMcsGameDTO.type != null">
+                AND t1.`type` = #{pageMcsGameDTO.type}
+            </if>
+            <if test="pageMcsGameDTO.merchantId != null">
+                AND t1.merchant_id = #{pageMcsGameDTO.merchantId}
+            </if>
+            ORDER BY t1.created_at DESC
+        ) temp WHERE 1=1
+        <if test="pageMcsGameDTO.distance != null">
+            AND distance &lt;= #{pageMcsGameDTO.distance}
+        </if>
+    </select>
+    <select id="selectDetailById"
+            resultType="com.panzhihua.common.model.vos.community.microCommercialStreet.McsGameVO">
+        SELECT t1.*, t2.`name` AS merchantName, t2.logo
+        FROM mcs_game t1
+        LEFT JOIN mcs_merchant t2 ON t1.merchant_id = t2.id
+        WHERE t1.id = #{gameId}
+    </select>
+    <select id="selectNeedDealExpire" resultType="com.panzhihua.service_community.entity.McsGame">
+        SELECT * FROM mcs_game WHERE expire_at &lt;= NOW() AND `status` != 4
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsInformationMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsInformationMapper.xml
new file mode 100644
index 0000000..2c6211c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsInformationMapper.xml
@@ -0,0 +1,100 @@
+<?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.McsInformationDAO">
+
+    <resultMap type="com.panzhihua.service_community.entity.McsInformation" id="McsInformationMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="address" column="address" jdbcType="VARCHAR"/>
+        <result property="lat" column="lat" jdbcType="VARCHAR"/>
+        <result property="lon" column="lon" jdbcType="VARCHAR"/>
+        <result property="cover" column="cover" jdbcType="VARCHAR"/>
+        <result property="content" column="content" jdbcType="VARCHAR"/>
+        <result property="status" column="status" jdbcType="INTEGER"/>
+        <result property="publishAt" column="publish_at" jdbcType="TIMESTAMP"/>
+        <result property="isDel" column="is_del" jdbcType="VARCHAR"/>
+        <result property="merchantId" column="merchant_id" jdbcType="INTEGER"/>
+        <result property="createdAt" column="created_at" jdbcType="TIMESTAMP"/>
+        <result property="createdBy" column="created_by" jdbcType="INTEGER"/>
+        <result property="updatedAt" column="updated_at" jdbcType="TIMESTAMP"/>
+        <result property="updatedBy" column="updated_by" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <!-- 批量插入 -->
+    <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.mcs_information(name, address, lat, lon, cover, content, status, publish_at, is_del,
+        merchant_id, created_at, created_by, updated_at, updated_by)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.name}, #{entity.address}, #{entity.lat}, #{entity.lon}, #{entity.cover}, #{entity.content},
+            #{entity.status}, #{entity.publishAt}, #{entity.isDel}, #{entity.merchantId}, #{entity.createdAt},
+            #{entity.createdBy}, #{entity.updatedAt}, #{entity.updatedBy})
+        </foreach>
+    </insert>
+    <!-- 批量插入或按主键更新 -->
+    <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.mcs_information(name, address, lat, lon, cover, content, status, publish_at, is_del,
+        merchant_id, created_at, created_by, updated_at, updated_by)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.name}, #{entity.address}, #{entity.lat}, #{entity.lon}, #{entity.cover}, #{entity.content},
+            #{entity.status}, #{entity.publishAt}, #{entity.isDel}, #{entity.merchantId}, #{entity.createdAt},
+            #{entity.createdBy}, #{entity.updatedAt}, #{entity.updatedBy})
+        </foreach>
+        on duplicate key update
+        name = values(name) , address = values(address) , lat = values(lat) , lon = values(lon) , cover = values(cover)
+        , content = values(content) , status = values(status) , publish_at = values(publish_at) , is_del =
+        values(is_del) , merchant_id = values(merchant_id) , created_at = values(created_at) , created_by =
+        values(created_by) , updated_at = values(updated_at) , updated_by = values(updated_by)
+    </insert>
+    <update id="setOffByMerchantIds">
+        UPDATE mcs_information SET `status` = 3 WHERE merchant_id IN
+        <foreach collection="needDealIds" index="index" item="item" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+    </update>
+    <select id="pageMcsInfo"
+            resultType="com.panzhihua.common.model.vos.community.microCommercialStreet.McsInformationVO">
+        SELECT t1.id, t1.`name`, t1.publish_at, t1.`status`, t1.merchant_id, t2.`name` AS merchantName, t1.cover
+        FROM mcs_information t1
+        LEFT JOIN mcs_merchant t2 ON t1.merchant_id = t2.id
+        WHERE t1.is_del = 0
+        <if test="pageMcsInformationDTO.userId != null">
+            AND t2.user_id = #{pageMcsInformationDTO.userId}
+        </if>
+        <if test="pageMcsInformationDTO.status != null">
+            AND t1.`status` = #{pageMcsInformationDTO.status}
+        </if>
+        <if test="pageMcsInformationDTO.keyword != null and pageMcsInformationDTO.keyword != &quot;&quot;">
+            AND t1.`name` LIKE CONCAT(#{pageMcsInformationDTO.keyword}, '%')
+        </if>
+        ORDER BY t1.created_at DESC
+    </select>
+    <select id="pageH5McsInfo"
+            resultType="com.panzhihua.common.model.vos.community.microCommercialStreet.McsInformationVO">
+        SELECT * FROM (
+            SELECT t1.id, t1.`name`, t1.publish_at, t1.`status`, t1.merchant_id, t1.lat, t1.lon, t1.cover, t2.`name` AS
+            merchantName,
+            ROUND(6378.138 * 2 * ASIN(SQRT(POW(SIN((t1.lat * PI() / 180 - #{pageMcsInformationDTO.lat} * PI() / 180) / 2),2)
+            +
+            COS(t1.lat * PI() / 180) * COS(#{pageMcsInformationDTO.lat} * PI() / 180) * POW(SIN((t1.lon * PI() / 180 -
+            #{pageMcsInformationDTO.lon} * PI() / 180) / 2),2))), 2) AS distance
+            FROM mcs_information t1
+            LEFT JOIN mcs_merchant t2 ON t1.merchant_id = t2.id
+            LEFT JOIN sys_user t3 ON t2.user_id = t3.user_id
+            WHERE t1.is_del = 0 AND t1.`status` = 2 AND t3.`status` = 1
+            <if test="pageMcsInformationDTO.keyword != null and pageMcsInformationDTO.keyword != &quot;&quot;">
+                AND t1.`name` LIKE CONCAT(#{pageMcsInformationDTO.keyword}, '%')
+            </if>
+            <if test="pageMcsInformationDTO.merchantId != null">
+                AND t1.merchant_id = #{pageMcsInformationDTO.merchantId}
+            </if>
+            ORDER BY t1.created_at DESC
+        ) temp WHERE 1=1
+        <if test="pageMcsInformationDTO.distance != null">
+            AND distance &lt;= #{pageMcsInformationDTO.distance}
+        </if>
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsLabelMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsLabelMapper.xml
new file mode 100644
index 0000000..92b2657
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsLabelMapper.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_community.dao.McsLabelDAO">
+
+    <resultMap type="com.panzhihua.service_community.entity.McsLabel" id="McsLabelMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="introduction" column="introduction" jdbcType="VARCHAR"/>
+        <result property="isDel" column="is_del" jdbcType="VARCHAR"/>
+        <result property="merchantId" column="merchant_id" jdbcType="INTEGER"/>
+        <result property="createdAt" column="created_at" jdbcType="TIMESTAMP"/>
+        <result property="createdBy" column="created_by" jdbcType="INTEGER"/>
+        <result property="updatedAt" column="updated_at" jdbcType="TIMESTAMP"/>
+        <result property="updatedBy" column="updated_by" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <!-- 批量插入 -->
+    <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.mcs_label(name, introduction, is_del, merchant_id, created_at, created_by, updated_at,
+        updated_by)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.name}, #{entity.introduction}, #{entity.isDel}, #{entity.merchantId}, #{entity.createdAt},
+            #{entity.createdBy}, #{entity.updatedAt}, #{entity.updatedBy})
+        </foreach>
+    </insert>
+    <!-- 批量插入或按主键更新 -->
+    <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.mcs_label(name, introduction, is_del, merchant_id, created_at, created_by, updated_at,
+        updated_by)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.name}, #{entity.introduction}, #{entity.isDel}, #{entity.merchantId}, #{entity.createdAt},
+            #{entity.createdBy}, #{entity.updatedAt}, #{entity.updatedBy})
+        </foreach>
+        on duplicate key update
+        name = values(name) , introduction = values(introduction) , is_del = values(is_del) , merchant_id =
+        values(merchant_id) , created_at = values(created_at) , created_by = values(created_by) , updated_at =
+        values(updated_at) , updated_by = values(updated_by)
+    </insert>
+    <select id="selectVOList"
+            resultType="com.panzhihua.common.model.vos.community.microCommercialStreet.McsLabelVO">
+        SELECT id, `name`, introduction FROM mcs_label WHERE is_del = 0
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsMerchantMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsMerchantMapper.xml
new file mode 100644
index 0000000..dc3b7f8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsMerchantMapper.xml
@@ -0,0 +1,167 @@
+<?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.McsMerchantDAO">
+
+    <resultMap type="com.panzhihua.service_community.entity.McsMerchant" id="McsMerchantMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="phone" column="phone" jdbcType="VARCHAR"/>
+        <result property="account" column="account" jdbcType="VARCHAR"/>
+        <result property="logo" column="logo" jdbcType="VARCHAR"/>
+        <result property="userId" column="user_id" jdbcType="INTEGER"/>
+        <result property="level" column="level" jdbcType="INTEGER"/>
+        <result property="publishLimit" column="publish_limit" jdbcType="INTEGER"/>
+        <result property="expireAt" column="expire_at" jdbcType="TIMESTAMP"/>
+        <result property="isPause" column="is_pause" jdbcType="VARCHAR"/>
+        <result property="firstLitAt" column="first_lit_at" jdbcType="TIMESTAMP"/>
+        <result property="address" column="address" jdbcType="VARCHAR"/>
+        <result property="lat" column="lat" jdbcType="VARCHAR"/>
+        <result property="lon" column="lon" jdbcType="VARCHAR"/>
+        <result property="introduction" column="introduction" jdbcType="VARCHAR"/>
+        <result property="isDel" column="is_del" jdbcType="VARCHAR"/>
+        <result property="createdAt" column="created_at" jdbcType="TIMESTAMP"/>
+        <result property="createdBy" column="created_by" jdbcType="INTEGER"/>
+        <result property="updatedAt" column="updated_at" jdbcType="TIMESTAMP"/>
+        <result property="updatedBy" column="updated_by" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <!-- 批量插入 -->
+    <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.mcs_merchant(name, phone, account, logo, user_id, level, publish_limit, expire_at,
+        address, lat, lon, introduction, is_del, created_at, created_by, updated_at, updated_by)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.name}, #{entity.phone}, #{entity.account}, #{entity.logo}, #{entity.userId}, #{entity.level},
+            #{entity.publishLimit}, #{entity.expireAt}, #{entity.address}, #{entity.lat}, #{entity.lon},
+            #{entity.introduction}, #{entity.isDel}, #{entity.createdAt}, #{entity.createdBy}, #{entity.updatedAt},
+            #{entity.updatedBy})
+        </foreach>
+    </insert>
+    <!-- 批量插入或按主键更新 -->
+    <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.mcs_merchant(name, phone, account, logo, user_id, level, publish_limit, expire_at,
+        address, lat, lon, introduction, is_del, created_at, created_by, updated_at, updated_by)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.name}, #{entity.phone}, #{entity.account}, #{entity.logo}, #{entity.userId}, #{entity.level},
+            #{entity.publishLimit}, #{entity.expireAt}, #{entity.address}, #{entity.lat}, #{entity.lon},
+            #{entity.introduction}, #{entity.isDel}, #{entity.createdAt}, #{entity.createdBy}, #{entity.updatedAt},
+            #{entity.updatedBy})
+        </foreach>
+        on duplicate key update
+        name = values(name) , phone = values(phone) , account = values(account) , logo = values(logo) , user_id =
+        values(user_id) , level = values(level) , publish_limit = values(publish_limit) , expire_at = values(expire_at)
+        , address = values(address) , lat = values(lat) , lon = values(lon) , introduction = values(introduction) ,
+        is_del = values(is_del) , created_at = values(created_at) , created_by = values(created_by) , updated_at =
+        values(updated_at) , updated_by = values(updated_by)
+    </insert>
+    <update id="updateIsPauseStatus">
+        UPDATE mcs_merchant SET is_pause = 1 WHERE id IN
+        <foreach collection="needDealIds" index="index" item="item" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+    </update>
+    <update id="enableUserStatus">
+        UPDATE sys_user SET `status` = 1 WHERE user_id = #{userId}
+    </update>
+    <select id="getMcsMerchantById"
+            resultType="com.panzhihua.common.model.vos.community.microCommercialStreet.McsMerchantVO">
+        SELECT t1.id, t1.`name`, t1.phone, t1.account, t1.`level`, t1.expire_at, t1.first_lit_at, t1.publish_limit,
+               t1.logo, t1.address, t1.lat, t1.lon, t1.introduction, t2.`status` AS accountStatus
+        FROM mcs_merchant t1
+                 LEFT JOIN sys_user t2 ON t1.user_id = t2.user_id
+        WHERE t1.id = #{merchantId} AND t1.is_del = 0
+    </select>
+    <select id="pageMcsMerchant"
+            resultType="com.panzhihua.common.model.vos.community.microCommercialStreet.McsMerchantVO">
+        SELECT t1.id, t1.`name`, t1.phone, t1.account, t1.`level`, t1.expire_at, t1.first_lit_at, t1.publish_limit, t2.`status` AS accountStatus
+        FROM mcs_merchant t1
+        LEFT JOIN sys_user t2 ON t1.user_id = t2.user_id
+        WHERE t1.is_del = 0
+        <if test="pageMcsMerchantDTO.accountStatus != null">
+            AND t2.`status` = #{pageMcsMerchantDTO.accountStatus}
+        </if>
+        <if test="pageMcsMerchantDTO.level != null">
+            AND t1.`level` = #{pageMcsMerchantDTO.level}
+        </if>
+        <if test="pageMcsMerchantDTO.keyword != null and pageMcsMerchantDTO.keyword != &quot;&quot;">
+            AND (
+            t1.`name` LIKE CONCAT(#{pageMcsMerchantDTO.keyword}, '%')
+            OR t1.phone LIKE CONCAT(#{pageMcsMerchantDTO.keyword}, '%')
+            )
+        </if>
+        ORDER BY t1.created_at DESC
+    </select>
+    <select id="getMcsMerchantByAccount"
+            resultType="com.panzhihua.common.model.vos.community.microCommercialStreet.McsMerchantVO">
+        SELECT t1.id, t1.`name`, t1.phone, t1.account, t1.`level`, t1.expire_at, t1.first_lit_at, t1.publish_limit,
+               t1.logo, t1.address, t1.lat, t1.lon, t1.introduction, t2.`status` AS accountStatus
+        FROM mcs_merchant t1
+                 LEFT JOIN sys_user t2 ON t1.user_id = t2.user_id
+        WHERE t1.account = #{account} AND t1.is_del = 0
+    </select>
+    <select id="getMcsIndexTopData"
+            resultType="com.panzhihua.common.model.vos.community.microCommercialStreet.IndexTopStatisticsVO">
+        SELECT randomCoinTotal + averageCoinTotal AS coinTotal,appliedTotal,gameTotal,infoTotal FROM(
+                                                                                                        SELECT
+                                                                                                            (SELECT IF(SUM(coins) IS NULL,0,SUM(coins)) FROM mcs_game t1
+                                                                                                                                                                 LEFT JOIN mcs_merchant t2 ON t1.merchant_id = t2.id
+                                                                                                                                                                 LEFT JOIN sys_user t3 ON t2.user_id = t3.user_id
+                                                                                                             WHERE t1.is_del = 0 AND t1.`status` = 2 AND t1.expire_at &gt; NOW() AND t1.allocation = 1 AND t2.is_del = 0 AND t3.`status` = 1)  AS randomCoinTotal,
+
+                                                                                                            (SELECT IF(SUM(t1.coins * t1.coupons) IS NULL,0,SUM(t1.coins * t1.coupons)) FROM mcs_game t1
+                                                                                                                                                                                                 LEFT JOIN mcs_merchant t2 ON t1.merchant_id = t2.id
+                                                                                                                                                                                                 LEFT JOIN sys_user t3 ON t2.user_id = t3.user_id
+                                                                                                             WHERE t1.is_del = 0 AND t1.`status` = 2 AND t1.expire_at &gt; NOW() AND t1.allocation = 2 AND t2.is_del = 0 AND t3.`status` = 1)  AS averageCoinTotal,
+
+                                                                                                            (SELECT IF(SUM(coin) IS NULL,0,SUM(coin)) FROM mcs_coupon WHERE to_days(created_at) = to_days(now())) AS appliedTotal,
+
+                                                                                                            (SELECT COUNT(t1.id) FROM mcs_game t1
+                                                                                                                                          LEFT JOIN mcs_merchant t2 ON t1.merchant_id = t2.id
+                                                                                                                                          LEFT JOIN sys_user t3 ON t2.user_id = t3.user_id
+                                                                                                             WHERE t1.is_del = 0 AND t1.`status` = 2 AND t1.`type` = 1 AND t1.expire_at &gt; NOW() AND t2.is_del = 0 AND t3.`status` = 1) AS gameTotal,
+
+                                                                                                            (SELECT COUNT(t1.id) FROM mcs_game t1
+                                                                                                                                          LEFT JOIN mcs_merchant t2 ON t1.merchant_id = t2.id
+                                                                                                                                          LEFT JOIN sys_user t3 ON t2.user_id = t3.user_id
+                                                                                                             WHERE t1.is_del = 0 AND t1.`status` = 2 AND t1.`type` = 2 AND t1.expire_at &gt; NOW() AND t2.is_del = 0 AND t3.`status` = 1) AS infoTotal
+                                                                                                    ) temp
+    </select>
+    <select id="pageH5McsMerchant"
+            resultType="com.panzhihua.common.model.vos.community.microCommercialStreet.McsMerchantVO">
+        SELECT * FROM (
+        SELECT t1.id, t1.`name`, t1.phone, t1.account, t1.`level`, t1.expire_at, t1.first_lit_at, t1.publish_limit,
+        t1.introduction, t1.logo,
+        ROUND(6378.138 * 2 * ASIN(SQRT(POW(SIN((t1.lat * PI() / 180 - #{pageMcsMerchantDTO.lat} * PI() / 180) / 2),2) +
+        COS(t1.lat * PI() / 180) * COS(#{pageMcsMerchantDTO.lat} * PI() / 180) * POW(SIN((t1.lon * PI() / 180 -
+        #{pageMcsMerchantDTO.lon} * PI() / 180) / 2),2))), 2) AS distance
+        FROM mcs_merchant t1
+        LEFT JOIN sys_user t2 ON t1.user_id = t2.user_id
+        <if test="pageMcsMerchantDTO.type != null">
+            LEFT JOIN (SELECT * FROM mcs_game
+            WHERE `status` = 2 AND `type` = #{pageMcsMerchantDTO.type} AND expire_at &gt; NOW() GROUP BY merchant_id) t3 ON t1.id = t3.merchant_id
+        </if>
+        WHERE t1.is_del = 0 AND t1.expire_at &gt; NOW() AND t2.`status` = 1
+        <if test="pageMcsMerchantDTO.type != null">
+            AND t3.id IS NOT NULL
+        </if>
+        <if test="pageMcsMerchantDTO.keyword != null and pageMcsMerchantDTO.keyword != &quot;&quot;">
+            AND t1.`name` LIKE CONCAT(#{pageMcsMerchantDTO.keyword}, '%')
+        </if>
+        ) temp WHERE 1=1
+        <if test="pageMcsMerchantDTO.distance != null">
+            <if test="pageMcsMerchantDTO.isMore != null and pageMcsMerchantDTO.isMore ==1">
+                AND distance &gt; #{pageMcsMerchantDTO.distance}
+            </if>
+            <if test="pageMcsMerchantDTO.isMore == null">
+                AND distance &lt;= #{pageMcsMerchantDTO.distance}
+            </if>
+        </if>
+        ORDER BY distance ASC
+    </select>
+    <select id="selectNeedDealExpiredMerchant" resultType="java.lang.Long">
+        SELECT id FROM mcs_merchant WHERE expire_at &lt;= NOW() AND is_pause = 0
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsOrderMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsOrderMapper.xml
new file mode 100644
index 0000000..d5a7246
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsOrderMapper.xml
@@ -0,0 +1,54 @@
+<?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.McsOrderDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.McsOrder" id="McsOrderBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="orderNo" column="order_no"/>
+        <result property="configId" column="config_id"/>
+        <result property="num" column="num"/>
+        <result property="status" column="status"/>
+        <result property="money" column="money"/>
+        <result property="payTime" column="pay_time"/>
+        <result property="merchantId" column="merchant_id"/>
+        <result property="payNo" column="pay_no"/>
+        <result property="userId" column="user_id"/>
+        <result property="paymentMethod" column="payment_method"/>
+        <result property="address" column="address"/>
+        <result property="lat" column="lat"/>
+        <result property="lon" column="lon"/>
+    </resultMap>
+
+    <select id="pageList" resultType="com.panzhihua.common.model.vos.community.microCommercialStreet.McsOrderVO">
+        select t.*,t1.`name` as payName,t2.name as merchantName,t2.account as merchantAccount from mcs_order t
+        left join mcs_config t1 on t.config_id = t1.id
+        left join mcs_merchant t2 on t.merchant_id = t2.id
+        <where>
+            <if test="commonPage.status !=null">
+                and t.status = #{commonPage.status}
+            </if>
+            <if test="commonPage.keyword !=null and commonPage.keyword !=''">
+                and t.order_no like concat('%',#{commonPage.keyword},'%')
+            </if>
+            <if test="commonPage.userId !=null">
+                and t.user_id = #{commonPage.userId}
+            </if>
+            <if test="commonPage.merchantId !=null">
+                and t.merchant_id = #{commonPage.merchantId}
+            </if>
+        </where>
+        order by t.create_time desc
+    </select>
+
+    <select id="detail" resultType="com.panzhihua.common.model.vos.community.microCommercialStreet.McsOrderVO">
+        select t.*,t1.`name` as payName,t2.name as merchantName,t2.account as merchantAccount from mcs_order t
+        left join mcs_config t1 on t.config_id = t1.id
+        left join mcs_merchant t2 on t.merchant_id = t2.id
+        where t.id =#{id}
+    </select>
+
+    <select id="selectPhone" resultType="string">
+        select t1.phone from mcs_order t left join mcs_merchant t1 on t.merchant_id = t1.id where t.id=#{id}
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsProductLabelMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsProductLabelMapper.xml
new file mode 100644
index 0000000..8217cca
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsProductLabelMapper.xml
@@ -0,0 +1,32 @@
+<?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.McsProductLabelDAO">
+
+    <resultMap type="com.panzhihua.service_community.entity.McsProductLabel" id="McsProductLabelMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="productId" column="product_id" jdbcType="INTEGER"/>
+        <result property="labelId" column="label_id" jdbcType="INTEGER"/>
+        <result property="labelName" column="label_name" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <!-- 批量插入 -->
+    <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.mcs_product_label(product_id, label_id, label_name)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.productId}, #{entity.labelId}, #{entity.labelName})
+        </foreach>
+    </insert>
+    <!-- 批量插入或按主键更新 -->
+    <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.mcs_product_label(product_id, label_id, label_name)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.productId}, #{entity.labelId}, #{entity.labelName})
+        </foreach>
+        on duplicate key update
+        product_id = values(product_id) , label_id = values(label_id) , label_name = values(label_name)
+    </insert>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsProductMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsProductMapper.xml
new file mode 100644
index 0000000..8aaec2d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsProductMapper.xml
@@ -0,0 +1,71 @@
+<?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.McsProductDAO">
+
+    <resultMap type="com.panzhihua.service_community.entity.McsProduct" id="McsProductMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="image" column="image" jdbcType="VARCHAR"/>
+        <result property="introduction" column="introduction" jdbcType="VARCHAR"/>
+        <result property="viewNum" column="view_num" jdbcType="INTEGER"/>
+        <result property="status" column="status" jdbcType="INTEGER"/>
+        <result property="isDel" column="is_del" jdbcType="VARCHAR"/>
+        <result property="merchantId" column="merchant_id" jdbcType="INTEGER"/>
+        <result property="createdAt" column="created_at" jdbcType="TIMESTAMP"/>
+        <result property="createdBy" column="created_by" jdbcType="INTEGER"/>
+        <result property="updatedAt" column="updated_at" jdbcType="TIMESTAMP"/>
+        <result property="updatedBy" column="updated_by" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <!-- 批量插入 -->
+    <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.mcs_product(name, image, introduction, view_num, status, is_del, merchant_id, created_at,
+        created_by, updated_at, updated_by)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.name}, #{entity.image}, #{entity.introduction}, #{entity.viewNum}, #{entity.status},
+            #{entity.isDel}, #{entity.merchantId}, #{entity.createdAt}, #{entity.createdBy}, #{entity.updatedAt},
+            #{entity.updatedBy})
+        </foreach>
+    </insert>
+    <!-- 批量插入或按主键更新 -->
+    <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.mcs_product(name, image, introduction, view_num, status, is_del, merchant_id, created_at,
+        created_by, updated_at, updated_by)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.name}, #{entity.image}, #{entity.introduction}, #{entity.viewNum}, #{entity.status},
+            #{entity.isDel}, #{entity.merchantId}, #{entity.createdAt}, #{entity.createdBy}, #{entity.updatedAt},
+            #{entity.updatedBy})
+        </foreach>
+        on duplicate key update
+        name = values(name) , image = values(image) , introduction = values(introduction) , view_num = values(view_num)
+        , status = values(status) , is_del = values(is_del) , merchant_id = values(merchant_id) , created_at =
+        values(created_at) , created_by = values(created_by) , updated_at = values(updated_at) , updated_by =
+        values(updated_by)
+    </insert>
+    <select id="pageMcsProduct"
+            resultType="com.panzhihua.common.model.vos.community.microCommercialStreet.McsProductVO">
+        SELECT t1.id, t1.`name`, t1.image, t1.view_num, t1.`status`, t1.introduction, t3.productLabel
+        FROM mcs_product t1
+        LEFT JOIN mcs_merchant t2 ON t1.merchant_id = t2.id
+        LEFT JOIN (SELECT product_id, GROUP_CONCAT(label_name) AS productLabel FROM mcs_product_label GROUP BY product_id) t3 ON t1.id = t3.product_id
+        WHERE t1.is_del = 0 AND t2.is_del = 0
+        <if test="pageMcsProductDTO.merchantId != null">
+            AND t1.merchant_id = #{pageMcsProductDTO.merchantId}
+            AND t1.status = 1
+        </if>
+        <if test="pageMcsProductDTO.merchantId == null">
+            AND t2.user_id = #{pageMcsProductDTO.userId}
+        </if>
+        <if test="pageMcsProductDTO.status != null">
+            AND t1.`status` = #{pageMcsProductDTO.status}
+        </if>
+        <if test="pageMcsProductDTO.keyword != null and pageMcsProductDTO.keyword != &quot;&quot;">
+            AND t1.`name` LIKE CONCAT(#{pageMcsProductDTO.keyword}, '%')
+        </if>
+        ORDER BY t1.created_at DESC
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsVerifiedRecordMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsVerifiedRecordMapper.xml
new file mode 100644
index 0000000..e562ef8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/McsVerifiedRecordMapper.xml
@@ -0,0 +1,60 @@
+<?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.McsVerifiedRecordDAO">
+
+    <resultMap type="com.panzhihua.service_community.entity.McsVerifiedRecord" id="McsVerifiedRecordMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="couponId" column="coupon_id" jdbcType="INTEGER"/>
+        <result property="merchantId" column="merchant_id" jdbcType="INTEGER"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="award" column="award" jdbcType="VARCHAR"/>
+        <result property="gameId" column="game_id" jdbcType="INTEGER"/>
+        <result property="nickName" column="nick_name" jdbcType="VARCHAR"/>
+        <result property="verifiedAt" column="verified_at" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+    <!-- 批量插入 -->
+    <insert id="insertBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.mcs_verified_record(coupon_id, name, award, verified_at)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.couponId}, #{entity.name}, #{entity.award}, #{entity.verifiedAt})
+        </foreach>
+    </insert>
+    <!-- 批量插入或按主键更新 -->
+    <insert id="insertOrUpdateBatch" keyProperty="id" useGeneratedKeys="true">
+        insert into smart_life.mcs_verified_record(coupon_id, name, award, verified_at)
+        values
+        <foreach collection="entities" item="entity" separator=",">
+            (#{entity.couponId}, #{entity.name}, #{entity.award}, #{entity.verifiedAt})
+        </foreach>
+        on duplicate key update
+        coupon_id = values(coupon_id) , name = values(name) , award = values(award) , verified_at = values(verified_at)
+    </insert>
+    <select id="pageMcsVerifyRecord"
+            resultType="com.panzhihua.common.model.vos.community.microCommercialStreet.McsVerifyRecordVO">
+        SELECT t1.*, t3.`type`
+        FROM mcs_verified_record t1
+        LEFT JOIN mcs_merchant t2 ON t1.merchant_id = t2.id
+        LEFT JOIN mcs_game t3 ON t1.game_id = t3.id
+        WHERE t2.user_id = #{pageVerifyRecordDTO.userId}
+        <if test="pageVerifyRecordDTO.type != null">
+            AND t3.`type` = #{pageVerifyRecordDTO.type}
+        </if>
+        <if test="pageVerifyRecordDTO.verifiedBegin != null">
+            AND t1.verified_at &gt;= #{pageVerifyRecordDTO.verifiedBegin}
+        </if>
+        <if test="pageVerifyRecordDTO.verifiedEnd != null">
+            AND t1.verified_at &lt;= #{pageVerifyRecordDTO.verifiedEnd}
+        </if>
+        <if test="pageVerifyRecordDTO.keyword != null and pageVerifyRecordDTO.keyword != &quot;&quot;">
+            AND (t1.nick_name LIKE CONCAT('%', #{pageVerifyRecordDTO.keyword}, '%')
+            OR t1.coupon_id LIKE CONCAT('%', #{pageVerifyRecordDTO.keyword}, '%')
+            OR t1.`name` LIKE CONCAT('%', #{pageVerifyRecordDTO.keyword}, '%')
+            )
+        </if>
+        ORDER BY t1.verified_at DESC
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/MostBeautifulVolunteerMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/MostBeautifulVolunteerMapper.xml
new file mode 100644
index 0000000..1de075b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/MostBeautifulVolunteerMapper.xml
@@ -0,0 +1,155 @@
+<?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.MostBeautifulVolunteerDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.MostBeautifulVolunteer" id="MostBeautifulVolunteerMap">
+        <result property="id" column="id"/>
+        <result property="name" column="name"/>
+        <result property="certificateUrl" column="certificate_url"/>
+        <result property="selfIntroduction" column="self_introduction"/>
+        <result property="volunteerStyle" column="volunteer_style"/>
+        <result property="weightSorting" column="weight_sorting"/>
+        <result property="unmountType" column="unmount_type"/>
+        <result property="creationTime" column="creation_time"/>
+        <result property="communityId" column="community_id"/>
+
+
+    </resultMap>
+
+    <!--查询单个-->
+    <select id="queryById" resultMap="MostBeautifulVolunteerMap">
+        select
+            id,
+            name,
+            certificate_url,
+            self_introduction,
+            volunteer_style,
+            weight_sorting,
+            unmount_type,
+            creation_time,
+            community_id
+        from most_beautiful_volunteer
+        where id= #{id}
+    </select>
+
+    <!--查询单个-->
+    <select id="queryList" resultMap="MostBeautifulVolunteerMap">
+        select
+        id,
+        name,
+        certificate_url,
+        self_introduction,
+        volunteer_style,
+        weight_sorting,
+        unmount_type,
+        creation_time,
+        community_id
+        from most_beautiful_volunteer
+        <where>
+            1=1
+            <if test="name!=null ">
+                and (`name` like concat('%',#{name},'%'))
+            </if>
+            <if  test="unmountType!=null and unmountType!='' ">
+                and unmount_type =#{unmountType}
+            </if>
+
+        </where>
+        order by weight_sorting asc,creation_time desc
+    </select>
+
+    <insert id="insertMostBeautifulVolunteer" parameterType="com.panzhihua.common.model.vos.community.MostBeautifulVolunteerVO">
+        insert into most_beautiful_volunteer
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="mostBeautifulVolunteerVO.id != null">
+                id,
+            </if>
+            <if test="mostBeautifulVolunteerVO.name != null">
+                name,
+            </if>
+            <if test="mostBeautifulVolunteerVO.certificateUrl != null">
+                certificate_url,
+            </if>
+            <if test="mostBeautifulVolunteerVO.selfIntroduction != null">
+                self_introduction,
+            </if>
+            <if test="mostBeautifulVolunteerVO.volunteerStyle != null">
+                volunteer_style,
+            </if>
+            <if test="mostBeautifulVolunteerVO.weightSorting != null">
+                weight_sorting,
+            </if>
+            <if test="mostBeautifulVolunteerVO.unmountType != null">
+                unmount_type,
+            </if>
+            <if test="mostBeautifulVolunteerVO.communityId != null">
+                community_id,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="mostBeautifulVolunteerVO.id != null">
+                #{mostBeautifulVolunteerVO.id},
+            </if>
+            <if test="mostBeautifulVolunteerVO.name != null">
+                #{mostBeautifulVolunteerVO.name},
+            </if>
+            <if test="mostBeautifulVolunteerVO.certificateUrl != null">
+                #{mostBeautifulVolunteerVO.certificateUrl},
+            </if>
+            <if test="mostBeautifulVolunteerVO.selfIntroduction != null">
+                #{mostBeautifulVolunteerVO.selfIntroduction},
+            </if>
+            <if test="mostBeautifulVolunteerVO.volunteerStyle != null">
+                #{mostBeautifulVolunteerVO.volunteerStyle},
+            </if>
+            <if test="mostBeautifulVolunteerVO.weightSorting != null">
+                #{mostBeautifulVolunteerVO.weightSorting},
+            </if>
+            <if test="mostBeautifulVolunteerVO.unmountType != null">
+                #{mostBeautifulVolunteerVO.unmountType},
+            </if>
+            <if test="mostBeautifulVolunteerVO.communityId != null">
+                #{mostBeautifulVolunteerVO.communityId},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="updateById" parameterType="com.panzhihua.common.model.vos.community.MostBeautifulVolunteerVO">
+        update most_beautiful_volunteer
+        <set>
+            <if test="mostBeautifulVolunteerVO.id != null">
+                id=#{mostBeautifulVolunteerVO.id},
+            </if>
+            <if test="mostBeautifulVolunteerVO.name != null">
+                name=#{mostBeautifulVolunteerVO.name},
+            </if>
+            <if test="mostBeautifulVolunteerVO.certificateUrl != null">
+                certificate_url=#{mostBeautifulVolunteerVO.certificateUrl},
+            </if>
+            <if test="mostBeautifulVolunteerVO.selfIntroduction != null">
+                self_introduction=#{mostBeautifulVolunteerVO.selfIntroduction},
+            </if>
+            <if test="mostBeautifulVolunteerVO.volunteerStyle != null">
+                volunteer_style=#{mostBeautifulVolunteerVO.volunteerStyle},
+            </if>
+            <if test="mostBeautifulVolunteerVO.weightSorting != null">
+                weight_sorting=#{mostBeautifulVolunteerVO.weightSorting},
+            </if>
+            <if test="mostBeautifulVolunteerVO.unmountType != null">
+                unmount_type=#{mostBeautifulVolunteerVO.unmountType},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{mostBeautifulVolunteerVO.id}
+
+    </update>
+
+
+    <delete id="deleteById" parameterType="String">
+        delete from most_beautiful_volunteer where id=#{id}
+    </delete>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/RentingHourseContractConfigMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/RentingHourseContractConfigMapper.xml
new file mode 100644
index 0000000..3ad1b66
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/RentingHourseContractConfigMapper.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.RentingHourseContractConfigDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.RentingHourseContractConfig" id="RentingHourseFileBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="name" column="name"/>
+        <result property="key" column="key"/>
+        <result property="value" column="value"/>
+        <result property="textTemplate" column="text_template"/>
+        <result property="createUser" column="create_user"/>
+        <result property="createDate" column="create_date"/>
+        <result property="modifyUser" column="modify_user"/>
+        <result property="modifyDate" column="modify_date"/>
+    </resultMap>
+    <select id="pageRentingHousesConfig"
+            resultType="com.panzhihua.common.model.vos.community.rentingHouses.RentingHousesConfigVO">
+        SELECT id, `name`, `key`, modify_date, `value`
+        FROM renting_hourse_contract_config
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/RentingHourseFileMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/RentingHourseFileMapper.xml
new file mode 100644
index 0000000..0c22903
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/RentingHourseFileMapper.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_community.dao.RentingHourseFileDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.RentingHourseFile" id="RentingHourseFileBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="classification" column="classification"/>
+        <result property="refId" column="ref_id"/>
+        <result property="type" column="type"/>
+        <result property="resourceName" column="resource_name"/>
+        <result property="resourceSize" column="resource_size"/>
+        <result property="resourceTime" column="resource_time"/>
+        <result property="url" column="url"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createAt" column="create_at"/>
+        <result property="upload" column="upload"/>
+    </resultMap>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/RentingHourseLabelMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/RentingHourseLabelMapper.xml
new file mode 100644
index 0000000..4f5e166
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/RentingHourseLabelMapper.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_community.dao.RentingHourseLabelDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.RentingHourseLabel" id="RentingHourseLabelBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="name" column="name"/>
+        <result property="mnemonicCode" column="mnemonic_code"/>
+        <result property="enabled" column="enabled"/>
+        <result property="sort" column="sort"/>
+        <result property="remarks" column="remarks"/>
+        <result property="createUser" column="create_user"/>
+        <result property="createDate" column="create_date"/>
+        <result property="modifyUser" column="modify_user"/>
+        <result property="modifyDate" column="modify_date"/>
+        <result property="deleteFlag" column="delete_flag"/>
+    </resultMap>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/RentingHourseOrderMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/RentingHourseOrderMapper.xml
new file mode 100644
index 0000000..aa90409
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/RentingHourseOrderMapper.xml
@@ -0,0 +1,73 @@
+<?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.RentingHourseOrderDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.RentingHourseOrder" id="RentingHourseOrderBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="streetId" column="street_id"/>
+        <result property="villageId" column="village_id"/>
+        <result property="communityId" column="community_id"/>
+        <result property="villageName" column="village_name"/>
+        <result property="orderType" column="order_type"/>
+        <result property="originOrderSn" column="origin_order_sn"/>
+        <result property="orderSn" column="order_sn"/>
+        <result property="paySn" column="pay_sn"/>
+        <result property="rentingMonth" column="renting_month"/>
+        <result property="constructArea" column="construct_area"/>
+        <result property="roomType" column="room_type"/>
+        <result property="monthlyRentMoney" column="monthly_rent_money"/>
+        <result property="depositAmount" column="deposit_amount"/>
+        <result property="serverCharge" column="server_charge"/>
+        <result property="dingAmount" column="ding_amount"/>
+        <result property="preOrderSn" column="pre_order_sn"/>
+        <result property="preOrderNote" column="pre_order_note"/>
+        <result property="settingFlag" column="setting_flag"/>
+        <result property="settingAmount" column="setting_amount"/>
+        <result property="settingSn" column="setting_sn"/>
+        <result property="settingDate" column="setting_date"/>
+        <result property="totalFloor" column="total_floor"/>
+        <result property="orientation" column="orientation"/>
+        <result property="decoration" column="decoration"/>
+        <result property="hourseItem" column="hourse_item"/>
+        <result property="hourseOwnerName" column="hourse_owner_name"/>
+        <result property="hourseIdCard" column="hourse_id_card"/>
+        <result property="hoursePhone" column="hourse_phone"/>
+        <result property="rentingUserId" column="renting_user_id"/>
+        <result property="startDate" column="start_date"/>
+        <result property="endDate" column="end_date"/>
+        <result property="contractText" column="contract_text"/>
+        <result property="payedDingMoney" column="payed_ding_money"/>
+        <result property="totalAccount" column="total_account"/>
+        <result property="status" column="status"/>
+        <result property="createUser" column="create_user"/>
+        <result property="createDate" column="create_date"/>
+    </resultMap>
+
+    <select id="pageList" resultType="com.panzhihua.common.model.vos.community.rentHouse.RentingHourseOrderVO">
+        select t.*,t2.url from renting_hourse_order t left join renting_hourse_file t2 on t.register_id = t2.ref_id
+        <where>
+            1=1 and t2.type=1 and classification = 1
+            <if test="commonPage.communityId!=null and commonPage.communityId!=0">
+                and t.community_id = ${commonPage.communityId}
+            </if>
+            <if test="commonPage.userId!=null">
+                and t.create_user=#{commonPage.userId}
+            </if>
+            <if test="commonPage.keyword!=null and commonPage.keyword !=''">
+                and ( t.village_name like concat('%',#{commonPage.keyword},'%') or t.order_sn like concat('%',#{commonPage.keyword},'%') or t.pay_sn like concat('%',#{commonPage.keyword},'%'))
+            </if>
+        </where>
+        group by t.id order by t.create_date desc
+    </select>
+
+    <select id="orderStatics" resultType="com.panzhihua.common.model.vos.community.rentHouse.OrderStatics">
+        select count(total_account) as allOrder,count(setting_amount) as allRent,count(server_charge) as allService,count(payed_ding_money) from renting_hourse_order
+        <where>
+            1=1
+            <if test="communityId !=null and communityId !=0">
+                and community_id = ${communityId}
+            </if>
+        </where>
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/RentingHoursePayingOrderMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/RentingHoursePayingOrderMapper.xml
new file mode 100644
index 0000000..8495a78
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/RentingHoursePayingOrderMapper.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_community.dao.RentingHoursePayingOrderDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.RentingHoursePayingOrder"
+               id="RentingHoursePayingOrderBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="payType" column="pay_type"/>
+        <result property="payDate" column="pay_date"/>
+        <result property="payAmount" column="pay_amount"/>
+        <result property="payReturnText" column="pay_return_text"/>
+    </resultMap>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/RentingHoursePreOrderMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/RentingHoursePreOrderMapper.xml
new file mode 100644
index 0000000..b48a879
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/RentingHoursePreOrderMapper.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.RentingHoursePreOrderDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.RentingHoursePreOrder"
+               id="RentingHoursePreOrderBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="orderSn" column="order_sn"/>
+        <result property="registerId" column="register_id"/>
+        <result property="dingMoney" column="ding_money"/>
+        <result property="contractText" column="contract_text"/>
+        <result property="status" column="status"/>
+        <result property="expireDate" column="expire_date"/>
+        <result property="hourseOwnerWeixinAppid" column="hourse_owner_weixin_appid"/>
+        <result property="hourseOwnerUserId" column="hourse_owner_user_id"/>
+        <result property="tenantWeixinAppid" column="tenant_weixin_appid"/>
+        <result property="tenantUserId" column="tenant_user_id"/>
+        <result property="createUser" column="create_user"/>
+        <result property="createDate" column="create_date"/>
+    </resultMap>
+
+    <select id="pageList" resultType="com.panzhihua.common.model.vos.community.rentHouse.RentingHoursePreOrderVO">
+        select t.*,t2.url from renting_hourse_pre_order t left join renting_hourse_file t2 on t.register_id = t2.ref_id
+        <where>
+            1=1 and t2.type=1 and classification = 1
+            <if test="commonPage.communityId!=null and commonPage.communityId!=0">
+                and t.community_id = ${commonPage.communityId}
+            </if>
+            <if test="commonPage.userId!=null">
+                and t.create_user=#{commonPage.userId}
+            </if>
+            <if test="commonPage.keyword!=null and commonPage.keyword !=''">
+                and ( t.village_name like concat('%',#{commonPage.keyword},'%') or t.order_sn like concat('%',#{commonPage.keyword},'%') or t.pay_sn like concat('%',#{commonPage.keyword},'%'))
+            </if>
+        </where>
+        group by t.id order by t.create_date desc
+    </select>
+
+    <select id="statics" resultType="com.panzhihua.common.model.vos.community.rentHouse.PreOrderStatics">
+        select * from (
+                           (select count(ding_money) as allOrder from  renting_hourse_pre_order where 1=1 <if test="communityId !=null and communityId !=0">and community_id = ${communityId}</if> ) allOrder,
+                          (select count(ding_money) as allRefuse from  renting_hourse_pre_order where (status = 3 or status =4) <if test="communityId !=null and communityId !=0">and community_id = ${communityId}</if>) allRefuse,
+                          (select count(*)  as refuseNum from  renting_hourse_pre_order where (status = 3 or status =4) <if test="communityId !=null and communityId !=0">and community_id = ${communityId}</if>)  refuseNum,
+                          (select count(ding_money) as settledOrder from  renting_hourse_pre_order where status = 2 <if test="communityId !=null and communityId !=0">and community_id = ${communityId}</if>)  settledOrder,
+                          (select count(ding_money) as deductOrder from  renting_hourse_pre_order where status = 1 <if test="communityId !=null and communityId !=0">and community_id = ${communityId}</if>) deductOrder )
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/RentingHourseRefundOrderMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/RentingHourseRefundOrderMapper.xml
new file mode 100644
index 0000000..4ec56ae
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/RentingHourseRefundOrderMapper.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_community.dao.RentingHourseRefundOrderDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.RentingHourseRefundOrder"
+               id="RentingHourseRefundOrderBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="refundPayType" column="refund_pay_type"/>
+        <result property="refundPayDate" column="refund_pay_date"/>
+        <result property="refundAmount" column="refund_amount"/>
+        <result property="returnText" column="return_text"/>
+    </resultMap>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/RentingHourseRegisterMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/RentingHourseRegisterMapper.xml
new file mode 100644
index 0000000..a5ad010
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/RentingHourseRegisterMapper.xml
@@ -0,0 +1,196 @@
+<?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.RentingHourseRegisterDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.RentingHourseRegister"
+               id="RentingHourseRegisterBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="streetId" column="street_id"/>
+        <result property="communityId" column="community_id"/>
+        <result property="villageId" column="village_id"/>
+        <result property="villageName" column="village_name"/>
+        <result property="alley" column="alley"/>
+        <result property="houseNum" column="house_num"/>
+        <result property="unitNo" column="unit_no"/>
+        <result property="floor" column="floor"/>
+        <result property="houseNo" column="house_no"/>
+        <result property="buildingNo" column="building_no"/>
+        <result property="code" column="code"/>
+        <result property="address" column="address"/>
+        <result property="authCode" column="auth_code"/>
+        <result property="authStatus" column="auth_status"/>
+        <result property="status" column="status"/>
+        <result property="detailStatus" column="detail_status"/>
+        <result property="longitude" column="longitude"/>
+        <result property="latitude" column="latitude"/>
+        <result property="constructArea" column="construct_area"/>
+        <result property="path" column="path"/>
+        <result property="seeHourseTelephone" column="see_hourse_telephone"/>
+        <result property="title" column="title"/>
+        <result property="brn" column="brn"/>
+        <result property="lrn" column="lrn"/>
+        <result property="wcn" column="wcn"/>
+        <result property="roomType" column="room_type"/>
+        <result property="monthlyRentMoney" column="monthly_rent_money"/>
+        <result property="depositMoney" column="deposit_money"/>
+        <result property="serverCharge" column="server_charge"/>
+        <result property="dingMoney" column="ding_money"/>
+        <result property="totalFloor" column="total_floor"/>
+        <result property="orientation" column="orientation"/>
+        <result property="decoration" column="decoration"/>
+        <result property="seeHourseDate" column="see_hourse_date"/>
+        <result property="hourseDescription" column="hourse_description"/>
+        <result property="checkInRequirement" column="check_in_requirement"/>
+        <result property="hourseItem" column="hourse_item"/>
+        <result property="label" column="label"/>
+        <result property="hourseOwnerName" column="hourse_owner_name"/>
+        <result property="hourseIdCard" column="hourse_id_card"/>
+        <result property="hoursePhone" column="hourse_phone"/>
+        <result property="infoStatus" column="info_status"/>
+        <result property="hourseOwnerWeixinAppid" column="hourse_owner_weixin_appid"/>
+        <result property="hourseOwnerUserId" column="hourse_owner_user_id"/>
+        <result property="tenantWeixinAppid" column="tenant_weixin_appid"/>
+        <result property="tenantUserId" column="tenant_user_id"/>
+        <result property="createAt" column="create_at"/>
+        <result property="updateAt" column="update_at"/>
+    </resultMap>
+    <select id="pageRentingHouse"
+            resultType="com.panzhihua.common.model.vos.community.rentingHouses.RentingHouseRegisterVO">
+        SELECT t1.id, t1.title, t1.brn, t1.construct_area, t1.floor, t1.orientation, t1.decoration,
+        t1.label, t1.address, t1.monthly_rent_money, t1.`status`, t1.detail_status, t1.auth_status, t1.auth_code, t2.url
+        FROM renting_hourse_register t1
+        LEFT JOIN (SELECT * FROM renting_hourse_file WHERE classification = 1 AND `type` = 1) t2 ON t1.id = t2.ref_id
+        WHERE t1.community_id = ${pageRegisterDTO.communityId} AND t1.`status` = #{pageRegisterDTO.status}
+        <if test="pageRegisterDTO.brn != null">
+            <if test="pageRegisterDTO.moreBrn == null">
+                AND t1.brn = #{pageRegisterDTO.brn}
+            </if>
+            <if test="pageRegisterDTO.moreBrn != null and pageRegisterDTO.moreBrn == 1">
+                AND t1.brn &gt; #{pageRegisterDTO.brn}
+            </if>
+        </if>
+        <if test="pageRegisterDTO.decoration != null">
+            AND t1.decoration = #{pageRegisterDTO.decoration}
+        </if>
+        <if test="pageRegisterDTO.orientation != null">
+            AND t1.orientation = #{pageRegisterDTO.orientation}
+        </if>
+        <if test="pageRegisterDTO.detailStatus != null">
+            AND t1.detail_status = #{pageRegisterDTO.detailStatus}
+        </if>
+        <if test="pageRegisterDTO.minArea != null">
+            AND t1.construct_area &gt;= #{pageRegisterDTO.minArea}
+        </if>
+        <if test="pageRegisterDTO.maxArea != null">
+            AND t1.construct_area &lt;= #{pageRegisterDTO.maxArea}
+        </if>
+        <if test="pageRegisterDTO.minRentMoney != null">
+            AND t1.monthly_rent_money &gt;= #{pageRegisterDTO.minRentMoney}
+        </if>
+        <if test="pageRegisterDTO.maxRentMoney != null">
+            AND t1.monthly_rent_money &lt;= #{pageRegisterDTO.maxRentMoney}
+        </if>
+        <if test="pageRegisterDTO.keyword != null and pageRegisterDTO.keyword != &quot;&quot;">
+            AND (
+                t1.village_name LIKE CONCAT('%', #{pageRegisterDTO.keyword}, '%')
+                OR t1.address LIKE CONCAT('%', #{pageRegisterDTO.keyword}, '%')
+            )
+        </if>
+        GROUP BY id ORDER BY id DESC
+    </select>
+
+    <select id="nearby" resultType="com.panzhihua.common.model.vos.community.rentingHouses.RentingHouseRegisterVO">
+        select t.id,title, brn, construct_area, floor, orientation, decoration, label, address, monthly_rent_money,
+               `status`, detail_status, auth_status,t1.url,
+               (POWER(MOD(ABS(longitude - #{nearbyDTO.longitude}),360),2) + POWER(ABS(latitude - #{nearbyDTO.latitude}),2)) AS distance
+        from   renting_hourse_register t
+        LEFT JOIN (SELECT * FROM renting_hourse_file WHERE classification = 1 AND `type` = 1) t1 ON t.id = t1.ref_id
+        WHERE t.community_id = ${nearbyDTO.communityId} and t.status=2 and t.detail_status=3
+          <if test="nearbyDTO.keyword !=null and nearbyDTO.keyword!=''">
+              AND (
+              village_name LIKE CONCAT('%', #{nearbyDTO.keyword}, '%')
+              OR address LIKE CONCAT('%', #{nearbyDTO.keyword}, '%')
+              )
+          </if>
+          and (longitude BETWEEN ${minX} AND ${maxX})
+          and (latitude BETWEEN ${minY} AND ${maxY}) group by t.id order by distance ASC
+    </select>
+
+    <select id="pageRentingHouseApplet"
+            resultType="com.panzhihua.common.model.vos.community.rentingHouses.RentingHouseRegisterVO">
+        SELECT t.id, t.title, t.brn, t.construct_area, t.floor, t.orientation, t.decoration, t.label, t.address, t.monthly_rent_money,
+        t.`status`, t.detail_status, t.auth_status,t1.url, t2.phone AS tenantTelephone, t.see_hourse_telephone, t.update_at
+        <if test="pageRegisterDTO.longitude !=null and pageRegisterDTO.longitude !=''">
+            ,(POWER(MOD(ABS(longitude - #{pageRegisterDTO.longitude}),360),2) + POWER(ABS(latitude - #{pageRegisterDTO.latitude}),2)) AS distance
+        </if>
+        FROM renting_hourse_register t
+        LEFT JOIN (SELECT * FROM renting_hourse_file WHERE classification = 1 AND `type` = 1) t1 ON t.id = t1.ref_id
+        LEFT JOIN sys_user t2 ON t.tenant_user_id = t2.user_id
+        WHERE t.community_id = ${pageRegisterDTO.communityId}
+        <if test="pageRegisterDTO.status == null and pageRegisterDTO.isMy == null">
+            AND t.`status` = 2
+        </if>
+        <if test="pageRegisterDTO.status != null">
+            AND t.`status` = #{pageRegisterDTO.status}
+        </if>
+        <if test="pageRegisterDTO.isMy != null and pageRegisterDTO.isMy == 1">
+            AND t.hourse_owner_user_id = #{pageRegisterDTO.currentUserId}
+        </if>
+        <if test="pageRegisterDTO.brn != null">
+            <if test="pageRegisterDTO.moreBrn == null">
+                AND t.brn = #{pageRegisterDTO.brn}
+            </if>
+            <if test="pageRegisterDTO.moreBrn != null and pageRegisterDTO.moreBrn == 1">
+                AND t.brn &gt; #{pageRegisterDTO.brn}
+            </if>
+        </if>
+        <if test="pageRegisterDTO.decoration != null">
+            AND t.decoration = #{pageRegisterDTO.decoration}
+        </if>
+        <if test="pageRegisterDTO.orientation != null">
+            AND t.orientation = #{pageRegisterDTO.orientation}
+        </if>
+        <if test="pageRegisterDTO.detailStatus != null">
+            AND t.detail_status = #{pageRegisterDTO.detailStatus}
+        </if>
+        <if test="pageRegisterDTO.minArea != null">
+            AND t.construct_area &gt;= #{pageRegisterDTO.minArea}
+        </if>
+        <if test="pageRegisterDTO.maxArea != null">
+            AND t.construct_area &lt;= #{pageRegisterDTO.maxArea}
+        </if>
+        <if test="pageRegisterDTO.minRentMoney != null">
+            AND t.monthly_rent_money &gt;= #{pageRegisterDTO.minRentMoney}
+        </if>
+        <if test="pageRegisterDTO.maxRentMoney != null">
+            AND t.monthly_rent_money &lt;= #{pageRegisterDTO.maxRentMoney}
+        </if>
+        <if test="pageRegisterDTO.keyword != null and pageRegisterDTO.keyword != &quot;&quot;">
+            AND (
+            t.village_name LIKE CONCAT('%', #{pageRegisterDTO.keyword}, '%')
+            OR t.address LIKE CONCAT('%', #{pageRegisterDTO.keyword}, '%')
+            )
+        </if>
+        group by t.id
+        <if test="pageRegisterDTO.sort ==null">
+            order by update_at desc
+        </if>
+        <if test="pageRegisterDTO.sort !=null">
+            <if test="pageRegisterDTO.longitude !=null">
+                <if test="pageRegisterDTO.sort==1">
+                    order by distance DESC
+                </if>
+                <if test="pageRegisterDTO.sort==2">
+                    order by distance ASC
+                </if>
+            </if>
+            <if test="pageRegisterDTO.sort==3">
+                order by monthly_rent_money DESC
+            </if>
+            <if test="pageRegisterDTO.sort==4">
+                order by monthly_rent_money ASC
+            </if>
+        </if>
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/RentingHourseReturnOrderMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/RentingHourseReturnOrderMapper.xml
new file mode 100644
index 0000000..2eef348
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/RentingHourseReturnOrderMapper.xml
@@ -0,0 +1,32 @@
+<?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.RentingHourseReturnOrderDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.RentingHourseReturnOrder"
+               id="RentingHourseReturnOrderBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="orderSn" column="order_sn"/>
+        <result property="endDate" column="end_date"/>
+        <result property="waterAndElectricityDeductionFee" column="water_and_electricity_deduction_fee"/>
+        <result property="waterAndElectricityDetail" column="water_and_electricity_detail"/>
+        <result property="waterAndElectricityDetailImages" column="water_and_electricity_detail_images"/>
+        <result property="itemDeductionFee" column="item_deduction_fee"/>
+        <result property="itemDeductionDetailImages" column="item_deduction_detail_images"/>
+        <result property="itemDeductionDetail" column="item_deduction_detail"/>
+        <result property="penaltyDeductionFee" column="penalty_deduction_fee"/>
+        <result property="penaltyDeductionFeeDetail" column="penalty_deduction_fee_detail"/>
+        <result property="penaltyDeductionDetailImages" column="penalty_deduction_detail_images"/>
+        <result property="settlementAmount" column="settlement_amount"/>
+        <result property="status" column="status"/>
+        <result property="payObject" column="pay_object"/>
+        <result property="payOrderSn" column="pay_order_sn"/>
+        <result property="payOrderAmount" column="pay_order_amount"/>
+        <result property="payOrderDate" column="pay_order_date"/>
+        <result property="remarks" column="remarks"/>
+        <result property="createUser" column="create_user"/>
+        <result property="createDate" column="create_date"/>
+        <result property="modifyUser" column="modify_user"/>
+        <result property="modifyDate" column="modify_date"/>
+    </resultMap>
+
+</mapper>
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
new file mode 100644
index 0000000..ecfd9e9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/SysConfMapper.xml
@@ -0,0 +1,135 @@
+<?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.SysConfMapper">
+
+ 	<resultMap id="baseResult" type="com.panzhihua.service_community.model.dos.SysConfDO">
+		<result property="id" column="id"/>
+		<result property="name" column="name"/>
+		<result property="code" column="code"/>
+		<result property="value" column="value"/>
+		<result property="description" column="description"/>
+		<result property="createAt" column="create_at"/>
+		<result property="createBy" column="create_by"/>
+		<result property="communityId" column="community_id"/>
+	</resultMap>
+
+	<sql id="columns">
+	<![CDATA[
+		id,name,code,value,`description`,create_at,create_by,community_id
+	]]>
+	</sql>
+
+    <!-- 分页查询 -->
+    <select id="findByPage" resultType="com.panzhihua.common.model.vos.community.SysConfVO"
+        parameterType="com.panzhihua.common.model.dtos.community.PageSysConfDTO">
+    	SELECT <include refid="columns" />
+	    FROM sys_conf
+		<where>
+	       <if test="pageSysConfDTO.id!=null">
+				AND id = #{pageSysConfDTO.id}
+			</if>
+	       <if test="pageSysConfDTO.name!=null">
+				AND name = #{pageSysConfDTO.name}
+			</if>
+	       <if test="pageSysConfDTO.code!=null">
+				AND code = #{pageSysConfDTO.code}
+			</if>
+	       <if test="pageSysConfDTO.value!=null">
+				AND value = #{pageSysConfDTO.value}
+			</if>
+	       <if test="pageSysConfDTO.describe!=null">
+				AND `describe` = #{pageSysConfDTO.describe}
+			</if>
+	       <if test="pageSysConfDTO.createAtBegin!=null">
+				AND create_at &gt;= #{pageSysConfDTO.createAtBegin}
+		   </if>
+		   <if test="pageSysConfDTO.createAtEnd!=null">
+				AND create_at &lt;= #{pageSysConfDTO.createAtEnd}
+		   </if>
+	       <if test="pageSysConfDTO.createBy!=null">
+				AND create_by = #{pageSysConfDTO.createBy}
+			</if>
+	       <if test="pageSysConfDTO.communityId!=null">
+				AND community_id = ${pageSysConfDTO.communityId}
+			</if>
+		</where>
+		<if test="pageSysConfDTO.sortColumns!=null">
+			ORDER BY ${pageSysConfDTO.sortColumns} ${pageSysConfDTO.sortType}
+		</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>
+
+
+
+
+
+
+
+
+	<select id="getData" resultType="com.panzhihua.common.model.vos.community.CommunityPublicityVO">
+		select
+			id,
+			community_id,
+			content,
+			creation_time,
+			update_time
+		from
+			community_publicity
+		where
+			community_id=#{communityId}
+	</select>
+
+
+
+	<insert id="addDate">
+		insert into community_publicity
+		<trim prefix="(" suffix=")" suffixOverrides=",">
+			<if test="item.id != null and item.id != '' ">
+				id,
+			</if>
+			<if test="item.communityId != null and item.communityId != '' ">
+				community_id,
+			</if>
+			<if test="item.content != null and item.content != '' ">
+				content,
+			</if>
+			creation_time
+		</trim>
+		values
+		<trim prefix="("  suffix=")" suffixOverrides=",">
+			<if test="item.id != null and item.id != '' ">
+				#{item.id},
+			</if>
+			<if test="item.communityId != null and item.communityId != '' ">
+				#{item.communityId},
+			</if>
+			<if test="item.content != null and item.content != '' ">
+				#{item.content},
+			</if>
+			sysdate()
+		</trim>
+	</insert>
+
+	<update id="editDate">
+		update community_publicity
+		<set>
+			<if test="item.communityId != null and item.communityId != '' ">
+				community_id=#{item.communityId},
+			</if>
+			content=#{item.content},
+			update_time=sysdate()
+		</set>
+		where community_id = #{item.communityId}
+	</update>
+
+
+	<delete id="deleteData">
+		delete from community_publicity where community_id=#{communityId}
+	</delete>
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/SysTemplateConfigMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/SysTemplateConfigMapper.xml
new file mode 100644
index 0000000..821a081
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/SysTemplateConfigMapper.xml
@@ -0,0 +1,12 @@
+<?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.SysTemplateConfigDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.SysTemplateConfig" id="SysTemplateConfigBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="templateId" column="template_id"/>
+        <result property="type" column="type"/>
+        <result property="areaCode" column="area_code"/>
+    </resultMap>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/SysUserMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/SysUserMapper.xml
new file mode 100644
index 0000000..e9700bc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/SysUserMapper.xml
@@ -0,0 +1,315 @@
+<?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.SysUserDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.SysUser" id="SysUserMap">
+        <result 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"/>
+        <result property="plaintextPassword" column="plaintext_password"/>
+        <result property="streetId" column="street_id"/>
+        <result property="relationName" column="relation_name"/>
+        <result property="loveIntegral" column="love_integral"/>
+        <result property="playPwd" column="play_pwd"/>
+    </resultMap>
+
+    <!--查询单个-->
+    <select id="queryById" resultMap="SysUserMap">
+        select
+          user_id, account, password, openid, session_key, unionid, phone, nick_name, name,play_pwd,
+               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, plaintext_password,love_integral
+        from sys_user
+        where user_id = #{userId}
+    </select>
+
+    <!--查询指定行数据-->
+    <select id="queryAllByLimit" resultMap="SysUserMap">
+        select
+        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,play_pwd,
+        family_id, face_url, face_state, reject_reson, area_id, card_photo_front, card_photo_back, family_book,love_integral,
+        continuous_landing_days, is_tips, work_status, work_start_time, work_end_time, big_age_tips, plaintext_password
+        from sys_user
+        <where>
+            <if test="dto.userId != null">
+                and user_id = #{dto.userId}
+            </if>
+            <if test="dto.account != null and dto.account != ''">
+                and account = #{dto.account}
+            </if>
+            <if test="dto.password != null and dto.password != ''">
+                and password = #{dto.password}
+            </if>
+            <if test="dto.openid != null and dto.openid != ''">
+                and openid = #{dto.openid}
+            </if>
+            <if test="dto.sessionKey != null and dto.sessionKey != ''">
+                and session_key = #{dto.sessionKey}
+            </if>
+            <if test="dto.unionid != null and dto.unionid != ''">
+                and unionid = #{dto.unionid}
+            </if>
+            <if test="dto.phone != null and dto.phone != ''">
+                and phone = #{dto.phone}
+            </if>
+            <if test="dto.nickName != null and dto.nickName != ''">
+                and nick_name = #{dto.nickName}
+            </if>
+            <if test="dto.name != null and dto.name != ''">
+                and name = #{dto.name}
+            </if>
+            <if test="dto.communityId != null">
+                and community_id = #{dto.communityId}
+            </if>
+            <if test="dto.sex != null">
+                and sex = #{dto.sex}
+            </if>
+            <if test="dto.idCard != null and dto.idCard != ''">
+                and id_card = #{dto.idCard}
+            </if>
+            <if test="dto.birthday != null">
+                and birthday = #{dto.birthday}
+            </if>
+            <if test="dto.imageUrl != null and dto.imageUrl != ''">
+                and image_url = #{dto.imageUrl}
+            </if>
+            <if test="dto.type != null">
+                and type = #{dto.type}
+            </if>
+            <if test="dto.job != null and dto.job != ''">
+                and job = #{dto.job}
+            </if>
+            <if test="dto.isVolunteer != null">
+                and is_volunteer = #{dto.isVolunteer}
+            </if>
+            <if test="dto.isPartymember != null">
+                and is_partymember = #{dto.isPartymember}
+            </if>
+            <if test="dto.status != null">
+                and status = #{dto.status}
+            </if>
+            <if test="dto.createAt != null">
+                and create_at = #{dto.createAt}
+            </if>
+            <if test="dto.lastLoginTime != null">
+                and last_login_time = #{dto.lastLoginTime}
+            </if>
+            <if test="dto.tags != null and dto.tags != ''">
+                and tags = #{dto.tags}
+            </if>
+            <if test="dto.familyId != null">
+                and family_id = #{dto.familyId}
+            </if>
+            <if test="dto.faceUrl != null and dto.faceUrl != ''">
+                and face_url = #{dto.faceUrl}
+            </if>
+            <if test="dto.faceState != null">
+                and face_state = #{dto.faceState}
+            </if>
+            <if test="dto.rejectReson != null and dto.rejectReson != ''">
+                and reject_reson = #{dto.rejectReson}
+            </if>
+            <if test="dto.areaId != null">
+                and area_id = #{dto.areaId}
+            </if>
+            <if test="dto.cardPhotoFront != null and dto.cardPhotoFront != ''">
+                and card_photo_front = #{dto.cardPhotoFront}
+            </if>
+            <if test="dto.cardPhotoBack != null and dto.cardPhotoBack != ''">
+                and card_photo_back = #{dto.cardPhotoBack}
+            </if>
+            <if test="dto.familyBook != null and dto.familyBook != ''">
+                and family_book = #{dto.familyBook}
+            </if>
+            <if test="dto.continuousLandingDays != null">
+                and continuous_landing_days = #{dto.continuousLandingDays}
+            </if>
+            <if test="dto.isTips != null">
+                and is_tips = #{dto.isTips}
+            </if>
+            <if test="dto.workStatus != null">
+                and work_status = #{dto.workStatus}
+            </if>
+            <if test="dto.workStartTime != null">
+                and work_start_time = #{dto.workStartTime}
+            </if>
+            <if test="dto.workEndTime != null">
+                and work_end_time = #{dto.workEndTime}
+            </if>
+            <if test="dto.bigAgeTips != null">
+                and big_age_tips = #{dto.bigAgeTips}
+            </if>
+            <if test="dto.plaintextPassword != null and dto.plaintextPassword != ''">
+                and plaintext_password = #{dto.plaintextPassword}
+            </if>
+        </where>
+        order by create_at desc
+    </select>
+
+    <!--查询所有数据-->
+    <select id="queryAllByList" resultMap="SysUserMap">
+        select
+        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,play_pwd,
+        family_id, face_url, face_state, reject_reson, area_id, card_photo_front, card_photo_back, family_book,love_integral,
+        continuous_landing_days, is_tips, work_status, work_start_time, work_end_time, big_age_tips, plaintext_password
+        from sys_user
+        <where>
+            <if test="dto.userId != null">
+                and user_id = #{dto.userId}
+            </if>
+            <if test="dto.account != null and dto.account != ''">
+                and account = #{dto.account}
+            </if>
+            <if test="dto.password != null and dto.password != ''">
+                and password = #{dto.password}
+            </if>
+            <if test="dto.openid != null and dto.openid != ''">
+                and openid = #{dto.openid}
+            </if>
+            <if test="dto.sessionKey != null and dto.sessionKey != ''">
+                and session_key = #{dto.sessionKey}
+            </if>
+            <if test="dto.unionid != null and dto.unionid != ''">
+                and unionid = #{dto.unionid}
+            </if>
+            <if test="dto.phone != null and dto.phone != ''">
+                and phone = #{dto.phone}
+            </if>
+            <if test="dto.nickName != null and dto.nickName != ''">
+                and nick_name = #{dto.nickName}
+            </if>
+            <if test="dto.name != null and dto.name != ''">
+                and name = #{dto.name}
+            </if>
+            <if test="dto.communityId != null">
+                and community_id = #{dto.communityId}
+            </if>
+            <if test="dto.sex != null">
+                and sex = #{dto.sex}
+            </if>
+            <if test="dto.idCard != null and dto.idCard != ''">
+                and id_card = #{dto.idCard}
+            </if>
+            <if test="dto.birthday != null">
+                and birthday = #{dto.birthday}
+            </if>
+            <if test="dto.imageUrl != null and dto.imageUrl != ''">
+                and image_url = #{dto.imageUrl}
+            </if>
+            <if test="dto.type != null">
+                and type = #{dto.type}
+            </if>
+            <if test="dto.job != null and dto.job != ''">
+                and job = #{dto.job}
+            </if>
+            <if test="dto.isVolunteer != null">
+                and is_volunteer = #{dto.isVolunteer}
+            </if>
+            <if test="dto.isPartymember != null">
+                and is_partymember = #{dto.isPartymember}
+            </if>
+            <if test="dto.status != null">
+                and status = #{dto.status}
+            </if>
+            <if test="dto.createAt != null">
+                and create_at = #{dto.createAt}
+            </if>
+            <if test="dto.lastLoginTime != null">
+                and last_login_time = #{dto.lastLoginTime}
+            </if>
+            <if test="dto.tags != null and dto.tags != ''">
+                and tags = #{dto.tags}
+            </if>
+            <if test="dto.familyId != null">
+                and family_id = #{dto.familyId}
+            </if>
+            <if test="dto.faceUrl != null and dto.faceUrl != ''">
+                and face_url = #{dto.faceUrl}
+            </if>
+            <if test="dto.faceState != null">
+                and face_state = #{dto.faceState}
+            </if>
+            <if test="dto.rejectReson != null and dto.rejectReson != ''">
+                and reject_reson = #{dto.rejectReson}
+            </if>
+            <if test="dto.areaId != null">
+                and area_id = #{dto.areaId}
+            </if>
+            <if test="dto.cardPhotoFront != null and dto.cardPhotoFront != ''">
+                and card_photo_front = #{dto.cardPhotoFront}
+            </if>
+            <if test="dto.cardPhotoBack != null and dto.cardPhotoBack != ''">
+                and card_photo_back = #{dto.cardPhotoBack}
+            </if>
+            <if test="dto.familyBook != null and dto.familyBook != ''">
+                and family_book = #{dto.familyBook}
+            </if>
+            <if test="dto.continuousLandingDays != null">
+                and continuous_landing_days = #{dto.continuousLandingDays}
+            </if>
+            <if test="dto.isTips != null">
+                and is_tips = #{dto.isTips}
+            </if>
+            <if test="dto.workStatus != null">
+                and work_status = #{dto.workStatus}
+            </if>
+            <if test="dto.workStartTime != null">
+                and work_start_time = #{dto.workStartTime}
+            </if>
+            <if test="dto.workEndTime != null">
+                and work_end_time = #{dto.workEndTime}
+            </if>
+            <if test="dto.bigAgeTips != null">
+                and big_age_tips = #{dto.bigAgeTips}
+            </if>
+            <if test="dto.plaintextPassword != null and dto.plaintextPassword != ''">
+                and plaintext_password = #{dto.plaintextPassword}
+            </if>
+        </where>
+        order by create_at desc
+    </select>
+
+    <update id="updatePassWord">
+        update sys_user set plaintext_password = #{passWord},password = #{pwd} where community_id = #{storeId} and `type` = 20
+    </update>
+    <select id="selectOpenId" resultType="String">
+        select openid from sys_user where type = 1 and app_id ='wx118de8a734d269f0' and is_accept = 1
+    </select>
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerActivitiesPeopleInvolvedMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerActivitiesPeopleInvolvedMapper.xml
new file mode 100644
index 0000000..0d059c2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerActivitiesPeopleInvolvedMapper.xml
@@ -0,0 +1,160 @@
+<?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.VolunteerActivitiesPeopleDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.VolunteerActivitiesPeople" id="VolunteerActivitiesPeopleMap">
+        <result property="id" column="id" />
+        <result property="volunteerId" column="volunteer_id" />
+        <result property="issueStatus" column="issue_status" />
+        <result property="issuePoints" column="issue_points" />
+        <result property="creationTime" column="creation_time" />
+        <result property="updateTime" column="update_time" />
+        <result property="communityId" column="community_id" />
+        <result property="activityId" column="activity_id" />
+        <result property="userId" column="user_id" />
+
+    </resultMap>
+
+    <!--查询单个-->
+    <select id="vapGetById" resultMap="VolunteerActivitiesPeopleMap">
+        select
+            id,
+            community_id,
+            volunteer_id,
+            issue_status,
+            issue_points,
+            (select cmvm.name from sys_user cmvm where cmvm.user_id=volunteer_activities_people_involved.user_id) as contactName,
+            (select cmvm.phone from sys_user cmvm where cmvm.user_id=volunteer_activities_people_involved.user_id) as contactPhone,
+            creation_time,
+            activity_id,
+            user_id,
+            update_time
+        from volunteer_activities_people_involved
+        where id= #{id}
+    </select>
+
+    <!--查询奖励未发放人数-->
+    <select id="vapGetUnissuedQuantity" resultType="int">
+        select
+            count(id)
+        from volunteer_activities_people_involved
+        where issue_status='0' and activity_id=#{activityId}
+    </select>
+
+
+
+    <!-- 分页查询 -->
+    <select id="vapGetList" resultMap="VolunteerActivitiesPeopleMap">
+        select
+            id,
+            community_id,
+            volunteer_id,
+            issue_status,
+            issue_points,
+            (select cmvm.name from sys_user cmvm where cmvm.user_id=volunteer_activities_people_involved.user_id) as contactName,
+            (select cmvm.phone from sys_user cmvm where cmvm.user_id=volunteer_activities_people_involved.user_id) as contactPhone,
+            creation_time,
+            activity_id,
+            user_id,
+            update_time
+        from volunteer_activities_people_involved
+        <where>
+            1=1
+            <if test="communityId != null and communityId!='' ">
+                and community_id=#{communityId}
+            </if>
+
+            <if test="activityId != null  and activityId != '' ">
+                and activity_id=#{activityId}
+            </if>
+        </where>
+        order by issue_status desc
+    </select>
+
+    <insert id="vapInsert">
+        insert into volunteer_activities_people_involved
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="volunteerActivitiesPeopleVO.id != null">
+                id,
+            </if>
+            <if test="volunteerActivitiesPeopleVO.volunteerId != null">
+                volunteer_id,
+            </if>
+            <if test="volunteerActivitiesPeopleVO.communityId != null">
+                community_id,
+            </if>
+            <if test="volunteerActivitiesPeopleVO.issueStatus != null">
+                issue_status,
+            </if>
+            <if test="volunteerActivitiesPeopleVO.issuePoints != null">
+                issue_points,
+            </if>
+            <if test="volunteerActivitiesPeopleVO.activityId != null">
+                activity_id,
+            </if>
+            <if test="volunteerActivitiesPeopleVO.userId != null">
+                user_id,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="volunteerActivitiesPeopleVO.id != null">
+                #{volunteerActivitiesPeopleVO.id},
+            </if>
+            <if test="volunteerActivitiesPeopleVO.volunteerId != null">
+                #{volunteerActivitiesPeopleVO.volunteerId},
+            </if>
+            <if test="volunteerActivitiesPeopleVO.communityId != null">
+                #{volunteerActivitiesPeopleVO.communityId},
+            </if>
+            <if test="volunteerActivitiesPeopleVO.issueStatus != null">
+                #{volunteerActivitiesPeopleVO.issueStatus},
+            </if>
+            <if test="volunteerActivitiesPeopleVO.issuePoints != null">
+                #{volunteerActivitiesPeopleVO.issuePoints},
+            </if>
+            <if test="volunteerActivitiesPeopleVO.activityId != null">
+                #{volunteerActivitiesPeopleVO.activityId},
+            </if>
+            <if test="volunteerActivitiesPeopleVO.userId != null">
+                #{volunteerActivitiesPeopleVO.userId},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="vapUpdate">
+        update volunteer_activities_people_involved
+        <set>
+            <if test="volunteerActivitiesPeopleVO.id != null">
+                id=#{volunteerActivitiesPeopleVO.id},
+            </if>
+            <if test="volunteerActivitiesPeopleVO.volunteerId != null">
+                volunteer_id=#{volunteerActivitiesPeopleVO.volunteerId},
+            </if>
+            <if test="volunteerActivitiesPeopleVO.communityId != null">
+                community_id=#{volunteerActivitiesPeopleVO.communityId},
+            </if>
+            <if test="volunteerActivitiesPeopleVO.issueStatus != null">
+                issue_status=#{volunteerActivitiesPeopleVO.issueStatus},
+            </if>
+            <if test="volunteerActivitiesPeopleVO.issuePoints != null">
+                issue_points=#{volunteerActivitiesPeopleVO.issuePoints},
+            </if>
+            <if test="volunteerActivitiesPeopleVO.activityId != null">
+                activity_id=#{volunteerActivitiesPeopleVO.activityId},
+            </if>
+            <if test="volunteerActivitiesPeopleVO.userId != null">
+                user_id=#{volunteerActivitiesPeopleVO.userId},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{volunteerActivitiesPeopleVO.id}
+    </update>
+
+    <delete id="vapDelete" parameterType="String">
+        delete from volunteer_activities_people_involved where id=#{id}
+    </delete>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerActivityMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerActivityMapper.xml
new file mode 100644
index 0000000..3dec2a2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerActivityMapper.xml
@@ -0,0 +1,360 @@
+<?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.VolunteerActivityDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.VolunteerActivity" id="VolunteerActivityMap">
+        <result property="id" column="id" />
+        <result property="name" column="name" />
+        <result property="acType" column="ac_type" />
+        <result property="address" column="address" />
+        <result property="volunteerNum" column="volunteer_num" />
+        <result property="acState" column="ac_state" />
+        <result property="awardState" column="award_state" />
+        <result property="issueTime" column="issue_time" />
+        <result property="applyBeginTime" column="apply_begin_time" />
+        <result property="applyEndTime" column="apply_end_time" />
+        <result property="actityBeginTime" column="actity_begin_time" />
+        <result property="actityEndTime" column="actity_end_time" />
+        <result property="communityId" column="community_id" />
+        <result property="volunteerLimit" column="volunteer_limit" />
+        <result property="bonusPoints" column="bonus_points" />
+        <result property="isCancelled" column="is_cancelled" />
+        <result property="contactName" column="contact_name" />
+        <result property="contactPhone" column="contact_phone" />
+        <result property="activityCoverUrl" column="activity_cover_url" />
+        <result property="activityContent" column="activity_content" />
+        <result property="creationTime" column="creation_time" />
+        <result property="updateTime" column="update_time" />
+        <result property="lat" column="lat" />
+        <result property="lng" column="lng" />
+
+    </resultMap>
+
+    <!--查询单个-->
+    <select id="queryById" resultMap="VolunteerActivityMap">
+        select
+            id,
+            name,
+            ac_type,
+            address,
+            (select count(id) from volunteer_activities_people_involved where activity_id=volunteer_activity.id) as volunteer_num,
+            ac_state,
+            (if((select count(id) from volunteer_activities_people_involved
+                 where activity_id=volunteer_activity.id and user_id=#{userId})>0,1,0)) as isSign,
+            award_state,
+            issue_time,
+            apply_begin_time,
+            apply_end_time,
+            actity_begin_time,
+            actity_end_time,
+            community_id,
+            volunteer_limit,
+            bonus_points,
+            is_cancelled,
+            contact_name,
+            contact_phone,
+            activity_cover_url,
+            activity_content,
+            creation_time,
+            update_time,
+            lng,
+            lat
+        from volunteer_activity
+        where id= #{id}
+    </select>
+
+    <!-- 分页查询 -->
+    <select id="queryList" resultMap="VolunteerActivityMap">
+        select
+            id,
+            name,
+            ac_type,
+            address,
+            (select count(id) from volunteer_activities_people_involved where activity_id=volunteer_activity.id) as volunteer_num,
+            ac_state,
+            (if((select count(id) from volunteer_activities_people_involved
+                where activity_id=volunteer_activity.id and user_id=#{userId})>0,1,0)) as isSign,
+            award_state,
+            issue_time,
+            apply_begin_time,
+            apply_end_time,
+            actity_begin_time,
+            actity_end_time,
+            community_id,
+            volunteer_limit,
+            bonus_points,
+            is_cancelled,
+            contact_name,
+            contact_phone,
+            activity_cover_url,
+            activity_content,
+            creation_time,
+            update_time,
+            lng,
+            lat
+        from volunteer_activity
+        <where>
+            1=1
+            <if test="name!=null">
+                and (`name` like concat('%',#{name},'%'))
+            </if>
+            <if  test="acState!=null">
+                and ac_state =#{acState}
+            </if>
+            <if  test="acType!=null">
+                and ac_type =#{acType}
+            </if>
+            <if  test="actityBeginTime!=null">
+                and actity_begin_time >= #{actityBeginTime}
+            </if>
+            <if  test="actityEndTime!=null">
+                and actity_end_time <![CDATA[ <= ]]> #{actityEndTime}
+            </if>
+
+        </where>
+        order by creation_time desc
+    </select>
+
+    <insert id="insertVolunteer">
+        insert into volunteer_activity
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="volunteerActivityVO.id != null">
+                id,
+            </if>
+            <if test="volunteerActivityVO.name != null">
+                name,
+            </if>
+            <if test="volunteerActivityVO.acType != null">
+                ac_type,
+            </if>
+            <if test="volunteerActivityVO.address != null">
+                address,
+            </if>
+            <if test="volunteerActivityVO.volunteerNum != null">
+                volunteer_num,
+            </if>
+            <if test="volunteerActivityVO.acState != null">
+                ac_state,
+            </if>
+            <if test="volunteerActivityVO.awardState != null">
+                award_state,
+            </if>
+            <if test="volunteerActivityVO.issueTime != null">
+                issue_time,
+            </if>
+            <if test="volunteerActivityVO.applyBeginTime != null">
+                apply_begin_time,
+            </if>
+            <if test="volunteerActivityVO.applyEndTime != null">
+                apply_end_time,
+            </if>
+            <if test="volunteerActivityVO.actityBeginTime != null">
+                actity_begin_time,
+            </if>
+            <if test="volunteerActivityVO.actityEndTime != null">
+                actity_end_time,
+            </if>
+            <if test="volunteerActivityVO.communityId != null">
+                community_id,
+            </if>
+            <if test="volunteerActivityVO.volunteerLimit != null">
+                volunteer_limit,
+            </if>
+            <if test="volunteerActivityVO.bonusPoints != null">
+                bonus_points,
+            </if>
+            <if test="volunteerActivityVO.isCancelled != null">
+                is_cancelled,
+            </if>
+            <if test="volunteerActivityVO.contactName != null">
+                contact_name,
+            </if>
+            <if test="volunteerActivityVO.contactPhone != null">
+                contact_phone,
+            </if>
+            <if test="volunteerActivityVO.activityCoverUrl != null">
+                activity_cover_url,
+            </if>
+            <if test="volunteerActivityVO.activityContent != null">
+                activity_content,
+            </if>
+            <if test="volunteerActivityVO.lng != null">
+                lng,
+            </if>
+            <if test="volunteerActivityVO.lat != null">
+                lat,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="volunteerActivityVO.id != null">
+                #{volunteerActivityVO.id},
+            </if>
+            <if test="volunteerActivityVO.name != null">
+                #{volunteerActivityVO.name},
+            </if>
+            <if test="volunteerActivityVO.acType != null">
+                #{volunteerActivityVO.acType},
+            </if>
+            <if test="volunteerActivityVO.address != null">
+                #{volunteerActivityVO.address},
+            </if>
+            <if test="volunteerActivityVO.volunteerNum != null">
+                #{volunteerActivityVO.volunteerNum},
+            </if>
+            <if test="volunteerActivityVO.acState != null">
+                #{volunteerActivityVO.acState},
+            </if>
+            <if test="volunteerActivityVO.awardState != null">
+               #{volunteerActivityVO.awardState},
+            </if>
+            <if test="volunteerActivityVO.issueTime != null">
+                #{volunteerActivityVO.issueTime},
+            </if>
+            <if test="volunteerActivityVO.applyBeginTime != null">
+                #{volunteerActivityVO.applyBeginTime},
+            </if>
+            <if test="volunteerActivityVO.applyEndTime != null">
+                #{volunteerActivityVO.applyEndTime},
+            </if>
+            <if test="volunteerActivityVO.actityBeginTime != null">
+                #{volunteerActivityVO.actityBeginTime},
+            </if>
+            <if test="volunteerActivityVO.actityEndTime != null">
+                #{volunteerActivityVO.actityEndTime},
+            </if>
+            <if test="volunteerActivityVO.communityId != null">
+                #{volunteerActivityVO.communityId},
+            </if>
+            <if test="volunteerActivityVO.volunteerLimit != null">
+                #{volunteerActivityVO.volunteerLimit},
+            </if>
+            <if test="volunteerActivityVO.bonusPoints != null">
+                #{volunteerActivityVO.bonusPoints},
+            </if>
+            <if test="volunteerActivityVO.isCancelled != null">
+                #{volunteerActivityVO.isCancelled},
+            </if>
+            <if test="volunteerActivityVO.contactName != null">
+                #{volunteerActivityVO.contactName},
+            </if>
+            <if test="volunteerActivityVO.contactPhone != null">
+                #{volunteerActivityVO.contactPhone},
+            </if>
+            <if test="volunteerActivityVO.activityCoverUrl != null">
+                #{volunteerActivityVO.activityCoverUrl},
+            </if>
+            <if test="volunteerActivityVO.activityContent != null">
+                #{volunteerActivityVO.activityContent},
+            </if>
+            <if test="volunteerActivityVO.lng != null">
+                #{volunteerActivityVO.lng},
+            </if>
+            <if test="volunteerActivityVO.lat != null">
+                #{volunteerActivityVO.lat},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="updateById">
+        update volunteer_activity
+        <set>
+            <if test="volunteerActivityVO.id != null">
+                id=#{volunteerActivityVO.id},
+            </if>
+            <if test="volunteerActivityVO.name != null">
+                name=#{volunteerActivityVO.name},
+            </if>
+            <if test="volunteerActivityVO.acType != null">
+                ac_type=#{volunteerActivityVO.acType},
+            </if>
+            <if test="volunteerActivityVO.address != null">
+                address=#{volunteerActivityVO.address},
+            </if>
+            <if test="volunteerActivityVO.volunteerNum != null">
+                volunteer_num=#{volunteerActivityVO.volunteerNum},
+            </if>
+            <if test="volunteerActivityVO.acState != null">
+                ac_state=#{volunteerActivityVO.acState},
+            </if>
+            <if test="volunteerActivityVO.awardState != null">
+                award_state=#{volunteerActivityVO.awardState},
+            </if>
+            <if test="volunteerActivityVO.issueTime != null">
+                issue_time=#{volunteerActivityVO.issueTime},
+            </if>
+            <if test="volunteerActivityVO.applyBeginTime != null">
+                apply_begin_time=#{volunteerActivityVO.applyBeginTime},
+            </if>
+            <if test="volunteerActivityVO.applyEndTime != null">
+                apply_end_time=#{volunteerActivityVO.applyEndTime},
+            </if>
+            <if test="volunteerActivityVO.actityBeginTime != null">
+                actity_begin_time=#{volunteerActivityVO.actityBeginTime},
+            </if>
+            <if test="volunteerActivityVO.actityEndTime != null">
+                actity_end_time=#{volunteerActivityVO.actityEndTime},
+            </if>
+            <if test="volunteerActivityVO.communityId != null">
+                community_id=#{volunteerActivityVO.communityId},
+            </if>
+            <if test="volunteerActivityVO.volunteerLimit != null">
+                volunteer_limit=#{volunteerActivityVO.volunteerLimit},
+            </if>
+            <if test="volunteerActivityVO.bonusPoints != null">
+                bonus_points=#{volunteerActivityVO.bonusPoints},
+            </if>
+            <if test="volunteerActivityVO.isCancelled != null">
+                is_cancelled=#{volunteerActivityVO.isCancelled},
+            </if>
+            <if test="volunteerActivityVO.contactName != null">
+                contact_name=#{volunteerActivityVO.contactName},
+            </if>
+            <if test="volunteerActivityVO.contactPhone != null">
+                contact_phone=#{volunteerActivityVO.contactPhone},
+            </if>
+            <if test="volunteerActivityVO.activityCoverUrl != null">
+                activity_cover_url=#{volunteerActivityVO.activityCoverUrl},
+            </if>
+            <if test="volunteerActivityVO.activityContent != null">
+                activity_content=#{volunteerActivityVO.activityContent},
+            </if>
+            <if test="volunteerActivityVO.lng != null">
+                lng=#{volunteerActivityVO.lng},
+            </if>
+            <if test="volunteerActivityVO.lat != null">
+                lat=#{volunteerActivityVO.lat},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{volunteerActivityVO.id}
+
+    </update>
+
+
+    <delete id="deleteById" parameterType="String">
+        delete from volunteer_activity where id=#{id}
+    </delete>
+
+
+
+    <!-- 分页查询 -->
+    <select id="timedTaskList" resultMap="VolunteerActivityMap">
+        select
+            id,
+            ac_state,
+            (select count(id) from volunteer_activities_people_involved where activity_id=volunteer_activity.id) volunteer_num,
+            apply_begin_time,
+            apply_end_time,
+            actity_begin_time,
+            actity_end_time
+        from volunteer_activity
+        where ac_state in (2,3,4)
+    </select>
+
+
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerCommunityConfigMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerCommunityConfigMapper.xml
new file mode 100644
index 0000000..475925e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerCommunityConfigMapper.xml
@@ -0,0 +1,153 @@
+<?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.VolunteerCommunityConfigDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.VolunteerCommunityConfig" id="VolunteerCommunityConfigMap">
+        <result property="id" column="id" />
+        <result property="creationTime" column="creation_time" />
+        <result property="updateTime" column="update_time" />
+        <result property="communityId" column="community_id" />
+        <result property="discountId" column="discount_id" />
+        <result property="address" column="address" />
+        <result property="lat" column="lat" />
+        <result property="lng" column="lng" />
+        <result property="isOpneWithdraw" column="is_opne_withdraw" />
+        <result property="businessType" column="business_type" />
+        <result property="businessStartTime" column="business_start_time" />
+        <result property="businessEndTime" column="business_end_time" />
+    </resultMap>
+
+
+    <!-- 分页查询 -->
+    <select id="getData" resultMap="VolunteerCommunityConfigMap">
+        select
+            id,
+            community_id,
+            discount_id,
+            address,
+            lat,
+            lng,
+            is_opne_withdraw,
+            business_end_time,
+            business_start_time,
+            business_type,
+            creation_time,
+            update_time
+        from volunteer_community_config
+        where community_id=#{communityId}
+    </select>
+
+    <insert id="insertvo">
+        insert into volunteer_community_config
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null">
+                id,
+            </if>
+            <if test="item.communityId != null">
+                community_id,
+            </if>
+            <if test="item.discountId != null">
+                discount_id,
+            </if>
+            <if test="item.address != null">
+                address,
+            </if>
+            <if test="item.lat != null">
+                lat,
+            </if>
+            <if test="item.lng != null">
+                lng,
+            </if>
+            <if test="item.isOpneWithdraw != null">
+                is_opne_withdraw,
+            </if>
+            <if test="item.businessEndTime != null">
+                business_end_time,
+            </if>
+            <if test="item.businessStartTime != null">
+                business_start_time,
+            </if>
+            <if test="item.businessType != null">
+                business_type,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null">
+                #{item.id},
+            </if>
+            <if test="item.communityId != null">
+                #{item.communityId},
+            </if>
+            <if test="item.discountId != null">
+                #{item.discountId},
+            </if>
+            <if test="item.address != null">
+                #{item.address},
+            </if>
+            <if test="item.lat != null">
+                #{item.lat},
+            </if>
+            <if test="item.lng != null">
+                #{item.lng},
+            </if>
+            <if test="item.isOpneWithdraw != null">
+                #{item.isOpneWithdraw},
+            </if>
+            <if test="item.businessEndTime != null">
+                #{item.businessEndTime},
+            </if>
+            <if test="item.businessStartTime != null">
+                #{item.businessStartTime},
+            </if>
+            <if test="item.businessType != null">
+                #{item.businessType},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="update">
+        update volunteer_community_config
+        <set>
+            <if test="item.id != null">
+                id=#{item.id},
+            </if>
+            <if test="item.communityId != null">
+                community_id=#{item.communityId},
+            </if>
+            <if test="item.discountId != null">
+                discount_id=#{item.discountId},
+            </if>
+            <if test="item.address != null">
+                address=#{item.address},
+            </if>
+            <if test="item.lat != null">
+                lat=#{item.lat},
+            </if>
+            <if test="item.lng != null">
+                lng=#{item.lng},
+            </if>
+            <if test="item.isOpneWithdraw != null">
+                is_opne_withdraw=#{item.isOpneWithdraw},
+            </if>
+            <if test="item.businessEndTime != null">
+                business_end_time=#{item.businessEndTime},
+            </if>
+            <if test="item.businessStartTime != null">
+                business_start_time=#{item.businessStartTime},
+            </if>
+            <if test="item.businessType != null">
+                business_type=#{item.businessType},
+            </if>
+            update_time=sysdate()
+        </set>
+        where community_id=#{item.communityId}
+    </update>
+
+    <delete id="delete" parameterType="String">
+        delete from volunteer_community_config where id=#{id}
+    </delete>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerCommunityDiscountMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerCommunityDiscountMapper.xml
new file mode 100644
index 0000000..05d2ace
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerCommunityDiscountMapper.xml
@@ -0,0 +1,87 @@
+<?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.VolunteerCommunityDiscountDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.VolunteerCommunityDiscount" id="VolunteerCommunityDiscountMap">
+        <result property="id" column="id" />
+        <result property="creationTime" column="creation_time" />
+        <result property="updateTime" column="update_time" />
+        <result property="communityId" column="community_id" />
+        <result property="integral" column="integral" />
+        <result property="discount" column="discount" />
+    </resultMap>
+
+    <!-- 分页查询 -->
+    <select id="getList" resultMap="VolunteerCommunityDiscountMap">
+        select
+            id,
+            community_id,
+            discount,
+            integral,
+            creation_time,
+            update_time
+        from volunteer_community_discount
+        where community_id=#{communityId}
+        order by creation_time desc
+    </select>
+
+    <insert id="insert">
+        insert into volunteer_community_discount
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null">
+                id,
+            </if>
+            <if test="item.communityId != null">
+                community_id,
+            </if>
+            <if test="item.discount != null">
+                discount,
+            </if>
+            <if test="item.integral != null">
+                integral,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null">
+                #{item.id},
+            </if>
+            <if test="item.communityId != null">
+                #{item.communityId},
+            </if>
+            <if test="item.discount != null">
+                #{item.discount},
+            </if>
+            <if test="item.integral != null">
+                #{item.integral},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="update">
+        update volunteer_community_discount
+        <set>
+            <if test="item.id != null">
+                id=#{item.id},
+            </if>
+            <if test="item.communityId != null">
+                community_id=#{item.communityId},
+            </if>
+            <if test="item.discount != null">
+                discount=#{item.discount},
+            </if>
+            <if test="item.integral != null">
+                integral=#{item.integral},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="delete" parameterType="String">
+        delete from volunteer_community_discount where id=#{id}
+    </delete>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerCreditsExchangeMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerCreditsExchangeMapper.xml
new file mode 100644
index 0000000..a31e965
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerCreditsExchangeMapper.xml
@@ -0,0 +1,280 @@
+<?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.VolunteerCreditsExchangeDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.VolunteerCreditsExchange" id="VolunteerCreditsExchangeMap">
+        <result property="id" column="id" />
+        <result property="goodsName" column="goods_name" />
+        <result property="creationTime" column="creation_time" />
+        <result property="updateTime" column="update_time" />
+        <result property="communityId" column="community_id" />
+        <result property="orderNumber" column="order_number" />
+        <result property="goodsId" column="goods_id" />
+        <result property="goodsUrl" column="goods_url" />
+        <result property="needScore" column="need_score" />
+        <result property="userId" column="user_id" />
+        <result property="condition" column="condition" />
+        <result property="disposeTime" column="dispose_time" />
+        <result property="orderType" column="order_type" />
+        <result property="palyIntegral" column="paly_integral" />
+        <result property="merchantId" column="merchant_id" />
+        <result property="palyNum" column="paly_num" />
+        <result property="isEvaluate" column="is_evaluate" />
+    </resultMap>
+
+
+    <select id="getData" resultMap="VolunteerCreditsExchangeMap">
+        select
+            vce.id,
+            vce.order_number,
+            vce.goods_id,
+            (select vim.name from volunteer_integral_merchant as vim where vim.id=vce.goods_id) as goods_name,
+            (select vim.cover_url from volunteer_integral_merchant as vim where vim.id=vce.goods_id) as goods_url,
+            vce.need_score,
+            vce.user_id,
+            (select sy.name from sys_user as sy where sy.user_id=vce.user_id) as userName,
+            (select sy.phone from sys_user as sy where sy.user_id=vce.user_id) as userPhone,
+            vce.creation_time,
+            vce.condition,
+            vce.dispose_time,
+            vce.community_id,
+            vce.order_type,
+            vce.paly_integral,
+            vce.merchant_id,
+            (select vm.name from volunteer_merchant as vm where vce.merchant_id=vm.id) as merchantName,
+            vce.paly_num,
+            vce.is_evaluate,
+            vce.update_time
+        from volunteer_credits_exchange as vce
+        where vce.id=#{id} or vce.order_number=#{id}
+    </select>
+
+    <!-- 分页查询 -->
+    <select id="getList" resultMap="VolunteerCreditsExchangeMap">
+        select
+            vce.id,
+            vce.order_number,
+            vce.goods_id,
+            (select vim.name from volunteer_integral_merchant as vim where vim.id=vce.goods_id) as goods_name,
+            (select vim.cover_url from volunteer_integral_merchant as vim where vim.id=vce.goods_id) as goods_url,
+            vce.need_score,
+            vce.user_id,
+            (select sy.name from sys_user as sy where sy.user_id=vce.user_id) as userName,
+            (select sy.phone from sys_user as sy where sy.user_id=vce.user_id) as userPhone,
+            vce.creation_time,
+            vce.condition,
+            vce.dispose_time,
+            vce.community_id,
+            vce.order_type,
+            vce.paly_integral,
+            vce.merchant_id,
+            (select vm.name from volunteer_merchant as vm where vce.merchant_id=vm.id) as merchantName,
+            vce.paly_num,
+            vce.is_evaluate,
+            vce.update_time
+        from volunteer_credits_exchange as vce
+        <where>
+            1=1
+            <if test="goodsId!=null and goodsId!='' ">
+                and vce.goods_id=#{goodsId}
+            </if>
+            <if test="orderNumber!=null and orderNumber!='' ">
+                and vce.order_number=#{orderNumber}
+            </if>
+            <if test="goodsName!=null and goodsName!='' ">
+                and ((select vim.name from volunteer_integral_merchant as vim where vim.id=vce.goods_id) like concat('%',#{goodsName},'%'))
+            </if>
+            <if test="condition!=null and condition!='' ">
+                and vce.condition=#{condition}
+            </if>
+            <if test="userName!=null and userName!='' ">
+                and ((select su.name from sys_user as su where su.user_id=vce.user_id) like concat('%',#{userName},'%')) or
+                ((select su.phone from sys_user as su where su.user_id=vce.user_id) like concat('%',#{userName},'%'))
+            </if>
+            <if test="communityId!=null and communityId!='' ">
+                and vce.community_id=#{communityId}
+            </if>
+            <if test="userId!=null and userId!='' ">
+                and vce.user_id=#{userId}
+            </if>
+            <if test="orderType!=null and orderType!='' ">
+                and vce.order_type=#{orderType}
+            </if>
+            <if test="merchantId!=null and merchantId!='' ">
+                and vce.merchant_id=#{merchantId}
+            </if>
+        </where>
+        order by vce.creation_time desc
+    </select>
+
+    <insert id="insertData">
+        insert into volunteer_credits_exchange
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null">
+                id,
+            </if>
+            <if test="item.goodsName != null">
+                goods_name,
+            </if>
+            <if test="item.communityId != null">
+                community_id,
+            </if>
+            <if test="item.orderNumber != null">
+                order_number,
+            </if>
+            <if test="item.goodsId != null">
+                goods_id,
+            </if>
+            <if test="item.goodsUrl != null">
+                goods_url,
+            </if>
+            <if test="item.needScore != null">
+                need_score,
+            </if>
+            <if test="item.userId != null">
+                user_id,
+            </if>
+            <if test="item.condition != null">
+                volunteer_credits_exchange.condition,
+            </if>
+            <if test="item.disposeTime != null">
+                dispose_time,
+            </if>
+            <if test="item.orderType != null">
+                order_type,
+            </if>
+            <if test="item.palyIntegral != null">
+                paly_integral,
+            </if>
+            <if test="item.merchantId != null">
+                merchant_id,
+            </if>
+            <if test="item.palyNum != null">
+                paly_num,
+            </if>
+            <if test="item.isEvaluate != null">
+                is_evaluate,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null">
+                #{item.id},
+            </if>
+            <if test="item.goodsName != null">
+                #{item.goodsName},
+            </if>
+            <if test="item.communityId != null">
+                #{item.communityId},
+            </if>
+            <if test="item.orderNumber != null">
+                #{item.orderNumber},
+            </if>
+            <if test="item.goodsId != null">
+                #{item.goodsId},
+            </if>
+            <if test="item.goodsUrl != null">
+                #{item.goodsUrl},
+            </if>
+            <if test="item.needScore != null">
+                #{item.needScore},
+            </if>
+            <if test="item.userId != null">
+                #{item.userId},
+            </if>
+            <if test="item.condition != null">
+                #{item.condition},
+            </if>
+            <if test="item.disposeTime != null">
+                #{item.disposeTime},
+            </if>
+            <if test="item.orderType != null">
+                #{item.orderType},
+            </if>
+            <if test="item.palyIntegral != null">
+                #{item.palyIntegral},
+            </if>
+            <if test="item.merchantId != null">
+                #{item.merchantId},
+            </if>
+            <if test="item.palyNum != null">
+                #{item.palyNum},
+            </if>
+            <if test="item.isEvaluate != null">
+                #{item.isEvaluate},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="update">
+        update volunteer_credits_exchange
+        <set>
+            <if test="item.id != null">
+                id=#{item.id},
+            </if>
+            <if test="item.goodsName != null">
+                goods_name=#{item.goodsName},
+            </if>
+            <if test="item.communityId != null">
+                community_id=#{item.communityId},
+            </if>
+            <if test="item.orderNumber != null">
+                order_number=#{item.orderNumber},
+            </if>
+            <if test="item.goodsId != null">
+                goods_id=#{item.goodsId},
+            </if>
+            <if test="item.goodsUrl != null">
+                goods_url=#{item.goodsUrl},
+            </if>
+            <if test="item.needScore != null">
+                need_score=#{item.needScore},
+            </if>
+            <if test="item.userId != null">
+                user_id=#{item.userId},
+            </if>
+            <if test="item.condition != null">
+                volunteer_credits_exchange.condition=#{item.condition},
+            </if>
+            <if test="item.disposeTime != null">
+                dispose_time=#{item.disposeTime},
+            </if>
+            <if test="item.orderType != null">
+                order_type=#{item.orderType},
+            </if>
+            <if test="item.palyIntegral != null">
+                paly_integral=#{item.palyIntegral},
+            </if>
+            <if test="item.merchantId != null">
+                merchant_id=#{item.merchantId},
+            </if>
+            <if test="item.palyNum != null">
+                paly_num=#{item.palyNum},
+            </if>
+            <if test="item.isEvaluate != null">
+                is_evaluate=#{item.isEvaluate},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+
+    <update id="conditionData" parameterType="String">
+        update volunteer_credits_exchange as vce
+        set vce.dispose_time=sysdate(),vce.condition='1',vce.update_time=sysdate()
+        where vce.id=#{id}
+    </update>
+
+
+    <delete id="delete" parameterType="String">
+        delete from volunteer_credits_exchange where id=#{id}
+    </delete>
+
+
+
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerIntegralMerchantMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerIntegralMerchantMapper.xml
new file mode 100644
index 0000000..9202023
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerIntegralMerchantMapper.xml
@@ -0,0 +1,205 @@
+<?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.VolunteerIntegralMerchantDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.VolunteerIntegralMerchant" id="VolunteerIntegralMerchantMap">
+        <result property="id" column="id" />
+        <result property="name" column="name" />
+        <result property="creationTime" column="creation_time" />
+        <result property="updateTime" column="update_time" />
+        <result property="commodityValue" column="commodity_value" />
+        <result property="integral" column="integral" />
+        <result property="state" column="state" />
+        <result property="coverUrl" column="cover_url" />
+        <result property="content" column="content" />
+        <result property="communityId" column="community_id" />
+        <result property="goodType" column="good_type" />
+        <result property="merchantId" column="merchant_id" />
+        <result property="goodNum" column="good_num" />
+        <result property="goodImgs" column="good_imgs" />
+    </resultMap>
+
+    <sql id="sql_base">
+        id,
+        name,
+        creation_time,
+        update_time,
+        commodity_value,
+        integral,
+        state,
+        cover_url,
+        content,
+        good_type,
+        merchant_id,
+        good_num,
+        good_imgs,
+        community_id
+    </sql>
+
+
+
+    <!--查询单个-->
+    <select id="queryById" resultMap="VolunteerIntegralMerchantMap">
+        select <include refid="sql_base"/>
+        from volunteer_integral_merchant
+        where id= #{id}
+    </select>
+
+    <!-- 分页查询 -->
+    <select id="queryList" resultMap="VolunteerIntegralMerchantMap">
+        select <include refid="sql_base"/>
+        from volunteer_integral_merchant
+        <where>
+            1=1
+            <if test="name!=null">
+                and (volunteer_integral_merchant.name like concat('%',#{name},'%'))
+            </if>
+            <if  test="state!=null">
+                and volunteer_integral_merchant.state =#{state}
+            </if>
+            <if  test="goodType!=null">
+                and volunteer_integral_merchant.good_type =#{goodType}
+            </if>
+            <if  test="merchantId!=null">
+                and volunteer_integral_merchant.merchant_id =#{merchantId}
+            </if>
+        </where>
+        order by creation_time desc
+    </select>
+
+    <insert id="insertVolunteer">
+        insert into volunteer_integral_merchant
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="vimVO.id != null">
+                id,
+            </if>
+            <if test="vimVO.name != null">
+                name,
+            </if>
+            <if test="vimVO.communityId != null">
+                community_id,
+            </if>
+            <if test="vimVO.commodityValue != null">
+                commodity_value,
+            </if>
+            <if test="vimVO.integral != null">
+                integral,
+            </if>
+            <if test="vimVO.state != null">
+                state,
+            </if>
+            <if test="vimVO.coverUrl != null">
+                cover_url,
+            </if>
+            <if test="vimVO.content != null">
+                content,
+            </if>
+            <if test="vimVO.goodType != null">
+                 good_type,
+            </if>
+            <if test="vimVO.merchantId != null">
+                 merchant_id,
+            </if>
+            <if test="vimVO.goodNum != null">
+                good_num,
+            </if>
+            <if test="vimVO.goodImgs != null">
+                good_imgs,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="vimVO.id != null">
+                #{vimVO.id},
+            </if>
+            <if test="vimVO.name != null">
+                #{vimVO.name},
+            </if>
+            <if test="vimVO.communityId != null">
+                #{vimVO.communityId},
+            </if>
+            <if test="vimVO.commodityValue != null">
+                #{vimVO.commodityValue},
+            </if>
+            <if test="vimVO.integral != null">
+                #{vimVO.integral},
+            </if>
+            <if test="vimVO.state != null">
+                #{vimVO.state},
+            </if>
+            <if test="vimVO.coverUrl != null">
+                #{vimVO.coverUrl},
+            </if>
+            <if test="vimVO.content != null">
+                #{vimVO.content},
+            </if>
+            <if test="vimVO.goodType != null">
+                #{vimVO.goodType},
+            </if>
+            <if test="vimVO.merchantId != null">
+                #{vimVO.merchantId},
+            </if>
+            <if test="vimVO.goodNum != null">
+                #{vimVO.goodNum},
+            </if>
+            <if test="vimVO.goodImgs != null">
+                #{vimVO.goodImgs},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="updateById">
+        update volunteer_integral_merchant
+        <set>
+            <if test="vimVO.id != null">
+                id=#{vimVO.id},
+            </if>
+            <if test="vimVO.name != null">
+                name=#{vimVO.name},
+            </if>
+            <if test="vimVO.communityId != null">
+                community_id=#{vimVO.communityId},
+            </if>
+            <if test="vimVO.commodityValue != null">
+                commodity_value=#{vimVO.commodityValue},
+            </if>
+            <if test="vimVO.integral != null">
+                integral=#{vimVO.integral},
+            </if>
+            <if test="vimVO.state != null">
+                state=#{vimVO.state},
+            </if>
+            <if test="vimVO.coverUrl != null">
+                cover_url=#{vimVO.coverUrl},
+            </if>
+            <if test="vimVO.content != null">
+                content=#{vimVO.content},
+            </if>
+            <if test="vimVO.goodType != null">
+                good_type=#{vimVO.goodType},
+            </if>
+            <if test="vimVO.merchantId != null">
+                merchant_id=#{vimVO.merchantId},
+            </if>
+            <if test="vimVO.goodNum != null">
+                good_num=#{vimVO.goodNum},
+            </if>
+            <if test="vimVO.goodImgs != null">
+                good_imgs=#{vimVO.goodImgs},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{vimVO.id}
+    </update>
+
+    <delete id="deleteById" parameterType="String">
+        delete from volunteer_integral_merchant where id=#{id}
+    </delete>
+
+    <select id="getNum" parameterType="String" resultType="Integer">
+        select count(id) from volunteer_integral_merchant where merchant_id=#{merchantId} and  state="1"
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerIntegralRecordMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerIntegralRecordMapper.xml
new file mode 100644
index 0000000..42c2f9c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerIntegralRecordMapper.xml
@@ -0,0 +1,136 @@
+<?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.VolunteerIntegralRecordDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.VolunteerIntegralRecord" id="VolunteerIntegralRecordMap">
+        <result property="id" column="id" />
+        <result property="iType" column="i_type" />
+        <result property="creationTime" column="creation_time" />
+        <result property="integral" column="integral" />
+        <result property="volunteerId" column="volunteer_id" />
+        <result property="updateTime" column="update_time" />
+        <result property="userId" column="user_id" />
+        <result property="communityId" column="community_id" />
+
+    </resultMap>
+
+    <!--查询单个-->
+    <select id="getId" resultMap="VolunteerIntegralRecordMap">
+        select
+            id,
+            i_type,
+            creation_time,
+            integral,
+            update_time,
+            user_id,
+            community_id,
+            volunteer_id
+        from volunteer_integral_record
+        where id= #{id}
+    </select>
+
+    <!-- 分页查询 -->
+    <select id="getList" resultMap="VolunteerIntegralRecordMap">
+        select
+            id,
+            i_type,
+            creation_time,
+            update_time,
+            integral,
+            user_id,
+            community_id,
+            volunteer_id
+        from volunteer_integral_record
+        <where>
+            <if test="userId!=null">
+                user_id=#{userId}
+            </if>
+            <if test="communityId!=null">
+                community_id=#{communityId}
+            </if>
+        </where>
+        order by creation_time desc
+    </select>
+
+    <insert id="insertVolunteer">
+        insert into volunteer_integral_record
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="volunteerIntegralRecordVO.id != null">
+                id,
+            </if>
+            <if test="volunteerIntegralRecordVO.iType != null">
+                i_type,
+            </if>
+            <if test="volunteerIntegralRecordVO.integral != null">
+                integral,
+            </if>
+            <if test="volunteerIntegralRecordVO.volunteerId != null">
+                volunteer_id,
+            </if>
+            <if test="volunteerIntegralRecordVO.communityId != null">
+                community_id,
+            </if>
+            <if test="volunteerIntegralRecordVO.userId != null">
+                user_id,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="volunteerIntegralRecordVO.id != null">
+                #{volunteerIntegralRecordVO.id},
+            </if>
+            <if test="volunteerIntegralRecordVO.iType != null">
+                #{volunteerIntegralRecordVO.iType},
+            </if>
+            <if test="volunteerIntegralRecordVO.integral != null">
+                #{volunteerIntegralRecordVO.integral},
+            </if>
+            <if test="volunteerIntegralRecordVO.volunteerId != null">
+                #{volunteerIntegralRecordVO.volunteerId},
+            </if>
+            <if test="volunteerIntegralRecordVO.communityId != null">
+                #{volunteerIntegralRecordVO.communityId},
+            </if>
+            <if test="volunteerIntegralRecordVO.userId != null">
+                #{volunteerIntegralRecordVO.userId},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="updateId">
+        update volunteer_integral_record
+        <set>
+            <if test="volunteerIntegralRecordVO.id != null">
+                id=#{volunteerIntegralRecordVO.id},
+            </if>
+            <if test="volunteerIntegralRecordVO.iType != null">
+                i_type=#{volunteerIntegralRecordVO.iType},
+            </if>
+            <if test="volunteerIntegralRecordVO.integral != null">
+                integral=#{volunteerIntegralRecordVO.integral},
+            </if>
+            <if test="volunteerIntegralRecordVO.volunteerId != null">
+                volunteer_id=#{volunteerIntegralRecordVO.volunteerId},
+            </if>
+            <if test="volunteerIntegralRecordVO.communityId != null">
+                community_id=#{volunteerIntegralRecordVO.communityId},
+            </if>
+            <if test="volunteerIntegralRecordVO.userId != null">
+                user_id=#{volunteerIntegralRecordVO.userId},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{volunteerIntegralRecordVO.id}
+
+    </update>
+
+
+    <delete id="deleteId" parameterType="String">
+        delete from volunteer_integral_record where id=#{id}
+    </delete>
+
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerMerchantEvaluateMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerMerchantEvaluateMapper.xml
new file mode 100644
index 0000000..c42744c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerMerchantEvaluateMapper.xml
@@ -0,0 +1,174 @@
+<?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.VolunteerMerchantEvaluateDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.VolunteerMerchantEvaluate" id="VolunteerMerchantEvaluateMap">
+        <result property="id" column="id" />
+        <result property="merchantId" column="merchant_id" />
+        <result property="creationTime" column="creation_time" />
+        <result property="updateTime" column="update_time" />
+        <result property="communityId" column="community_id" />
+        <result property="userId" column="user_id" />
+        <result property="evaluateContent" column="evaluate_content" />
+        <result property="evaluateUrl" column="evaluate_url" />
+        <result property="goodId" column="good_id" />
+        <result property="evaluateGrade" column="evaluate_grade" />
+        <result property="orderId" column="order_id" />
+    </resultMap>
+
+    <!-- 分页查询 -->
+    <select id="getList" resultMap="VolunteerMerchantEvaluateMap">
+        select
+            vme.id,
+            vme.merchant_id,
+            vme.user_id,
+            vme.community_id,
+            (select vm.name from volunteer_merchant as vm where vm.id=vme.merchant_id) as merchantName,
+            (select su.name from sys_user as su where su.user_id =vme.user_id) as userName,
+            (select su.image_url from sys_user as su where su.user_id =vme.user_id) as userUrl,
+            vme.evaluate_content,
+            vme.evaluate_url,
+            vme.good_id,
+            vme.evaluate_grade,
+            vme.creation_time,
+            vme.order_id,
+            vme.update_time
+        from volunteer_merchant_evaluate as vme
+        <where>
+            1=1
+            <if test="communityId!=null">
+                and vme.community_id=#{communityId}
+            </if>
+            <if test="merchantId!=null">
+                and vme.merchant_id=#{merchantId}
+            </if>
+        </where>
+        order by vme.creation_time desc
+    </select>
+
+
+    <select id="getData" resultMap="VolunteerMerchantEvaluateMap">
+        select
+            vme.id,
+            vme.merchant_id,
+            vme.user_id,
+            vme.community_id,
+            (select vm.name from volunteer_merchant as vm where vm.id=vme.merchant_id) as merchantName,
+            (select su.name from sys_user as su where su.user_id =vme.user_id) as userName,
+            (select su.image_url from sys_user as su where su.user_id =vme.user_id) as userUrl,
+            vme.evaluate_content,
+            vme.evaluate_url,
+            vme.good_id,
+            vme.evaluate_grade,
+            vme.creation_time,
+            vme.order_id,
+            vme.update_time
+        from volunteer_merchant_evaluate as vme
+        where vme.id=#{id}
+    </select>
+
+    <insert id="insert">
+        insert into volunteer_merchant_evaluate
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null">
+                id,
+            </if>
+            <if test="item.merchantId != null">
+                merchant_id,
+            </if>
+            <if test="item.userId != null">
+                user_id,
+            </if>
+            <if test="item.evaluateContent != null">
+                evaluate_content,
+            </if>
+            <if test="item.evaluateUrl != null">
+                evaluate_url,
+            </if>
+            <if test="item.goodId != null">
+                good_id,
+            </if>
+            <if test="item.evaluateGrade != null">
+                evaluate_grade,
+            </if>
+            <if test="item.communityId != null">
+                community_id,
+            </if>
+            <if test="item.orderId != null">
+                order_id,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null">
+                #{item.id},
+            </if>
+            <if test="item.merchantId != null">
+                #{item.merchantId},
+            </if>
+            <if test="item.userId != null">
+                #{item.userId},
+            </if>
+            <if test="item.evaluateContent != null">
+                #{item.evaluateContent},
+            </if>
+            <if test="item.evaluateUrl != null">
+                #{item.evaluateUrl},
+            </if>
+            <if test="item.goodId != null">
+                #{item.goodId},
+            </if>
+            <if test="item.evaluateGrade != null">
+                #{item.evaluateGrade},
+            </if>
+            <if test="item.communityId != null">
+                #{item.communityId},
+            </if>
+            <if test="item.orderId != null">
+                #{item.orderId},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="update">
+        update volunteer_merchant_evaluate
+        <set>
+            <if test="item.id != null">
+                id=#{item.id},
+            </if>
+            <if test="item.merchantId != null">
+                merchant_id=#{item.merchantId},
+            </if>
+            <if test="item.userId != null">
+                user_id=#{item.userId},
+            </if>
+            <if test="item.evaluateContent != null">
+                evaluate_content=#{item.evaluateContent},
+            </if>
+            <if test="item.evaluateUrl != null">
+                evaluate_url=#{item.evaluateUrl},
+            </if>
+            <if test="item.goodId != null">
+                good_id=#{item.goodId},
+            </if>
+            <if test="item.evaluateGrade != null">
+                evaluate_grade=#{item.evaluateGrade},
+            </if>
+            <if test="item.communityId != null">
+                community_id=#{item.communityId},
+            </if>
+            <if test="item.orderId != null">
+                order_id=#{item.orderId},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="delete" parameterType="String">
+        delete from volunteer_merchant_evaluate where id=#{id}
+    </delete>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerMerchantMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerMerchantMapper.xml
new file mode 100644
index 0000000..c05ec09
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerMerchantMapper.xml
@@ -0,0 +1,374 @@
+<?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.VolunteerMerchantDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.VolunteerMerchant" id="VolunteerMerchantMap">
+        <result property="id" column="id" />
+        <result property="name" column="name" />
+        <result property="merchantType" column="merchant_type" />
+        <result property="logoUrl" column="logo_url" />
+        <result property="address" column="address" />
+        <result property="lat" column="lat" />
+        <result property="lon" column="lon" />
+        <result property="userId" column="user_id" />
+        <result property="serviceCall" column="service_call" />
+        <result property="merchantContent" column="merchant_content" />
+        <result property="merchantUrl" column="merchant_url" />
+        <result property="legalPersonName" column="legal_person_name" />
+        <result property="legalPersonPhone" column="legal_person_phone" />
+        <result property="legalPersonIdCard" column="legal_person_id_card" />
+        <result property="communityId" column="community_id" />
+        <result property="businessType" column="business_type" />
+        <result property="businessStartTime" column="business_start_time" />
+        <result property="businessEndTime" column="business_end_time" />
+        <result property="merchantState" column="merchant_state" />
+        <result property="merchantDiscount" column="merchant_discount" />
+        <result property="creationTime" column="creation_time" />
+        <result property="updateTime" column="update_time" />
+        <result property="merchantIntegral" column="merchant_integral" />
+    </resultMap>
+
+    <sql id="beas_sql">
+        id,
+        name,
+        merchant_type,
+        logo_url,
+        address,
+        lat,
+        lon,
+        user_id,
+        (select su.phone from sys_user as su where su.user_id=volunteer_merchant.user_id) as merchantPhone,
+        (select su.name from sys_user as su where su.user_id=volunteer_merchant.user_id) as merchantLinkman,
+        (select vt.name from volunteer_type as vt where vt.id=volunteer_merchant.merchant_type) as merchantTypeName,
+        (SELECT ROUND(AVG(vme.evaluate_grade), 1) FROM volunteer_merchant_evaluate as vme WHERE vme.merchant_id=volunteer_merchant.id) as merchantGrade,
+        (select count(vim.id) from volunteer_integral_merchant as vim
+            where vim.merchant_id=volunteer_merchant.id and vim.state='1') as goodNum,
+        service_call,
+        merchant_content,
+        merchant_url,
+        legal_person_name,
+        legal_person_phone,
+        legal_person_id_card,
+        community_id,
+        business_type,
+        business_start_time,
+        business_end_time,
+        merchant_state,
+        merchant_discount,
+        creation_time,
+        merchant_integral,
+        update_time
+    </sql>
+
+    <select id="getById" resultMap="VolunteerMerchantMap">
+        select <include refid="beas_sql"/>
+        from volunteer_merchant
+        where volunteer_merchant.id=#{id}
+    </select>
+
+
+    <!-- 分页查询 -->
+    <select id="getList" resultMap="VolunteerMerchantMap">
+        select <include refid="beas_sql"/>
+        from volunteer_merchant
+        <where>
+            1=1
+            <if test="communityId!=null and communityId !='' ">
+                and community_id=#{communityId}
+            </if>
+            <if test="merchantState !=null and merchantState !='' ">
+                and merchant_state=#{merchantState}
+            </if>
+            <if test="merchantType !=null and merchantType !=''  ">
+                and merchant_type=#{merchantType}
+            </if>
+            <if test="name !=null and name !=''  ">
+                and (volunteer_merchant.name like concat('%',#{name},'%'))
+            </if>
+        </where>
+        order by merchantGrade desc,creation_time desc
+    </select>
+
+    <insert id="insertData">
+        insert into volunteer_merchant
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="vtvo.id != null">
+                id,
+            </if>
+            <if test="vtvo.name != null">
+                name,
+            </if>
+            <if test="vtvo.merchantType != null">
+                merchant_type,
+            </if>
+            <if test="vtvo.logoUrl != null">
+                logo_url,
+            </if>
+            <if test="vtvo.address != null">
+                address,
+            </if>
+            <if test="vtvo.lat != null">
+                lat,
+            </if>
+            <if test="vtvo.lon != null">
+                lon,
+            </if>
+            <if test="vtvo.userId != null">
+                user_id,
+            </if>
+            <if test="vtvo.serviceCall != null">
+                service_call,
+            </if>
+            <if test="vtvo.merchantContent != null">
+                merchant_content,
+            </if>
+            <if test="vtvo.merchantUrl != null">
+                merchant_url,
+            </if>
+            <if test="vtvo.legalPersonName != null">
+                legal_person_name,
+            </if>
+            <if test="vtvo.legalPersonPhone != null">
+                legal_person_phone,
+            </if>
+            <if test="vtvo.legalPersonIdCard != null">
+                legal_person_id_card,
+            </if>
+            <if test="vtvo.communityId != null">
+                community_id,
+            </if>
+            <if test="vtvo.businessType != null">
+                business_type,
+            </if>
+            <if test="vtvo.businessStartTime != null">
+                business_start_time,
+            </if>
+            <if test="vtvo.businessEndTime != null">
+                business_end_time,
+            </if>
+            <if test="vtvo.merchantState != null">
+                merchant_state,
+            </if>
+            <if test="vtvo.merchantDiscount != null">
+                merchant_discount,
+            </if>
+            <if test="vtvo.merchantIntegral != null">
+                merchant_integral,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="vtvo.id != null">
+                #{vtvo.id},
+            </if>
+            <if test="vtvo.name != null">
+                #{vtvo.name},
+            </if>
+            <if test="vtvo.merchantType != null">
+                #{vtvo.merchantType},
+            </if>
+            <if test="vtvo.logoUrl != null">
+                #{vtvo.logoUrl},
+            </if>
+            <if test="vtvo.address != null">
+                #{vtvo.address},
+            </if>
+            <if test="vtvo.lat != null">
+                #{vtvo.lat},
+            </if>
+            <if test="vtvo.lon != null">
+                #{vtvo.lon},
+            </if>
+            <if test="vtvo.userId != null">
+                #{vtvo.userId},
+            </if>
+            <if test="vtvo.serviceCall != null">
+                #{vtvo.serviceCall},
+            </if>
+            <if test="vtvo.merchantContent != null">
+                #{vtvo.merchantContent},
+            </if>
+            <if test="vtvo.merchantUrl != null">
+                #{vtvo.merchantUrl},
+            </if>
+            <if test="vtvo.legalPersonName != null">
+                #{vtvo.legalPersonName},
+            </if>
+            <if test="vtvo.legalPersonPhone != null">
+                #{vtvo.legalPersonPhone},
+            </if>
+            <if test="vtvo.legalPersonIdCard != null">
+                #{vtvo.legalPersonIdCard},
+            </if>
+            <if test="vtvo.communityId != null">
+                #{vtvo.communityId},
+            </if>
+            <if test="vtvo.businessType != null">
+                #{vtvo.businessType},
+            </if>
+            <if test="vtvo.businessStartTime != null">
+                #{vtvo.businessStartTime},
+            </if>
+            <if test="vtvo.businessEndTime != null">
+                #{vtvo.businessEndTime},
+            </if>
+            <if test="vtvo.merchantState != null">
+                #{vtvo.merchantState},
+            </if>
+            <if test="vtvo.merchantDiscount != null">
+                #{vtvo.merchantDiscount},
+            </if>
+            <if test="vtvo.merchantIntegral != null">
+                #{vtvo.merchantIntegral},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="Update">
+        update volunteer_merchant
+        <set>
+            <if test="vtvo.id != null">
+                id=#{vtvo.id},
+            </if>
+            <if test="vtvo.name != null">
+                name=#{vtvo.name},
+            </if>
+            <if test="vtvo.merchantType != null">
+                merchant_type=#{vtvo.merchantType},
+            </if>
+            <if test="vtvo.logoUrl != null">
+                logo_url=#{vtvo.logoUrl},
+            </if>
+            <if test="vtvo.address != null">
+                address=#{vtvo.address},
+            </if>
+            <if test="vtvo.lat != null">
+                lat=#{vtvo.lat},
+            </if>
+            <if test="vtvo.lon != null">
+                lon=#{vtvo.lon},
+            </if>
+            <if test="vtvo.userId != null">
+                user_id=#{vtvo.userId},
+            </if>
+            <if test="vtvo.serviceCall != null">
+                service_call=#{vtvo.serviceCall},
+            </if>
+            <if test="vtvo.merchantContent != null">
+                merchant_content=#{vtvo.merchantContent},
+            </if>
+            <if test="vtvo.merchantUrl != null">
+                merchant_url=#{vtvo.merchantUrl},
+            </if>
+            <if test="vtvo.legalPersonName != null">
+                legal_person_name=#{vtvo.legalPersonName},
+            </if>
+            <if test="vtvo.legalPersonPhone != null">
+                legal_person_phone=#{vtvo.legalPersonPhone},
+            </if>
+            <if test="vtvo.legalPersonIdCard != null">
+                legal_person_id_card=#{vtvo.legalPersonIdCard},
+            </if>
+            <if test="vtvo.communityId != null">
+                community_id=#{vtvo.communityId},
+            </if>
+            <if test="vtvo.businessType != null">
+                business_type=#{vtvo.businessType},
+            </if>
+            <if test="vtvo.businessStartTime != null">
+                business_start_time=#{vtvo.businessStartTime},
+            </if>
+            <if test="vtvo.businessEndTime != null">
+                business_end_time=#{vtvo.businessEndTime},
+            </if>
+            <if test="vtvo.merchantState != null">
+                merchant_state=#{vtvo.merchantState},
+            </if>
+            <if test="vtvo.merchantDiscount != null">
+                merchant_discount=#{vtvo.id},
+            </if>
+            <if test="vtvo.merchantIntegral != null">
+                merchant_integral=#{vtvo.merchantIntegral},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{vtvo.id}
+    </update>
+
+    <delete id="delete" parameterType="String">
+        delete from volunteer_merchant where id=#{id}
+    </delete>
+
+    <select id="getUser"  resultType="com.panzhihua.service_community.entity.SysUser">
+        SELECT
+            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,
+            plaintext_password,
+            street_id,
+            relation_name,
+            app_id,
+            is_accept,
+            binding_check_unit_id,
+            love_integral
+        FROM sys_user
+        <where>
+            1=1
+            <if test="communityId!=null and communityId!='' ">
+                and community_id=#{communityId}
+            </if>
+
+            <if test="userName!=null">
+                and (sys_user.name like concat('%',#{userName},'%'))
+            </if>
+
+            <if test="userPhone!=null">
+                and (sys_user.phone like concat('%',#{userPhone},'%'))
+            </if>
+            and app_id='wx0cef797390444b75'
+        </where>
+    </select>
+
+    <select id="isMerchant"  resultType="String">
+        select id from volunteer_merchant
+        where volunteer_merchant.user_id=#{userId}
+    </select>
+
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerMerchantWithdrawMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerMerchantWithdrawMapper.xml
new file mode 100644
index 0000000..4b152a6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerMerchantWithdrawMapper.xml
@@ -0,0 +1,145 @@
+<?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.VolunteerMerchantWithdrawDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.VolunteerMerchantWithdraw" id="MerchantWithdrawMap">
+        <result property="id" column="id" />
+        <result property="merchantId" column="merchant_id" />
+        <result property="creationTime" column="creation_time" />
+        <result property="updateTime" column="update_time" />
+        <result property="communityId" column="community_id" />
+        <result property="withdrawIntegral" column="withdraw_integral" />
+        <result property="disposeTime" column="dispose_time" />
+        <result property="disposeType" column="dispose_type" />
+        <result property="isDelete" column="is_delete" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="base_sql">
+        id,
+        merchant_id,
+        community_id,
+        (select vm.name from volunteer_merchant as vm where volunteer_merchant_withdraw.merchant_id=vm.id) as merchantName,
+        withdraw_integral,
+        creation_time,
+        update_time,
+        dispose_time,
+        dispose_type,
+        is_delete
+    </sql>
+
+    <!-- 分页查询 -->
+    <select id="getList" resultMap="MerchantWithdrawMap">
+        select <include refid="base_sql"/>
+        from volunteer_merchant_withdraw
+        <where>
+            is_delete='0'
+            <if test="disposeType !=null and disposeType != '' ">
+                and dispose_type=#{disposeType}
+            </if>
+            <if test="merchantName !=null and merchantName != '' ">
+                and
+                ((select vm.name from volunteer_merchant as vm where volunteer_merchant_withdraw.merchant_id=vm.id) like concat('%',#{merchantName},'%'))
+            </if>
+            <if test="merchantId !=null and merchantId != '' ">
+                and merchant_id=#{merchantId}
+            </if>
+            <if test="communityId !=null and communityId != '' ">
+                and community_id=#{communityId}
+            </if>
+        </where>
+        order by creation_time desc
+    </select>
+
+    <insert id="insert">
+        insert into volunteer_merchant_withdraw
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null">
+                id,
+            </if>
+            <if test="item.merchantId != null">
+                merchant_id,
+            </if>
+            <if test="item.communityId != null">
+                community_id,
+            </if>
+            <if test="item.withdrawIntegral != null">
+                withdraw_integral,
+            </if>
+            <if test="item.disposeTime != null">
+                dispose_time,
+            </if>
+            <if test="item.disposeType != null">
+                dispose_type,
+            </if>
+            <if test="item.isDelete != null">
+                is_delete,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null">
+                #{item.id},
+            </if>
+            <if test="item.merchantId != null">
+                #{item.merchantId},
+            </if>
+            <if test="item.communityId != null">
+                #{item.communityId},
+            </if>
+            <if test="item.withdrawIntegral != null">
+                #{item.withdrawIntegral},
+            </if>
+            <if test="item.disposeTime != null">
+                #{item.disposeTime},
+            </if>
+            <if test="item.disposeType != null">
+                #{item.disposeType},
+            </if>
+            <if test="item.isDelete != null">
+                #{item.isDelete},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="update">
+        update volunteer_merchant_withdraw
+        <set>
+            <if test="item.id != null">
+                id=#{item.id},
+            </if>
+            <if test="item.merchantId != null">
+                merchant_id=#{item.merchantId},
+            </if>
+            <if test="item.communityId != null">
+                community_id=#{item.communityId},
+            </if>
+            <if test="item.withdrawIntegral != null">
+                withdraw_integral=#{item.withdrawIntegral},
+            </if>
+            <if test="item.disposeTime != null">
+                dispose_time=#{item.disposeTime},
+            </if>
+            <if test="item.disposeType != null">
+                dispose_type=#{item.disposeType},
+            </if>
+            <if test="item.isDelete != null">
+                is_delete=#{item.isDelete},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <update id="delete" parameterType="String">
+        update volunteer_merchant_withdraw set is_delete=1 where id=#{id}
+    </update>
+
+
+    <update id="dispose" parameterType="String">
+        update volunteer_merchant_withdraw set dispose_time=sysdate(),dispose_type='1' where id=#{id}
+    </update>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerTypeMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerTypeMapper.xml
new file mode 100644
index 0000000..c236209
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/VolunteerTypeMapper.xml
@@ -0,0 +1,87 @@
+<?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.VolunteerTypeDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.VolunteerType" id="VolunteerTypeMap">
+        <result property="id" column="id" />
+        <result property="name" column="name" />
+        <result property="creationTime" column="creation_time" />
+        <result property="updateTime" column="update_time" />
+        <result property="communityId" column="community_id" />
+        <result property="type" column="type" />
+    </resultMap>
+
+    <!-- 分页查询 -->
+    <select id="volunteerTypeGetList" resultMap="VolunteerTypeMap">
+        select
+        id,
+        name,
+        creation_time,
+        community_id,
+        type,
+        update_time
+        from volunteer_type
+        where type=#{type}
+        order by creation_time desc
+    </select>
+
+    <insert id="insertvolunteerType">
+        insert into volunteer_type
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="volunteerTypeVO.id != null">
+                id,
+            </if>
+            <if test="volunteerTypeVO.name != null">
+                name,
+            </if>
+            <if test="volunteerTypeVO.communityId != null">
+                community_id,
+            </if>
+            <if test="volunteerTypeVO.type != null">
+                type,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="volunteerTypeVO.id != null">
+                #{volunteerTypeVO.id},
+            </if>
+            <if test="volunteerTypeVO.name != null">
+                #{volunteerTypeVO.name},
+            </if>
+            <if test="volunteerTypeVO.communityId != null">
+                #{volunteerTypeVO.communityId},
+            </if>
+            <if test="volunteerTypeVO.type != null">
+                #{volunteerTypeVO.type},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="volunteerTypeUpdate">
+        update volunteer_type
+        <set>
+            <if test="volunteerTypeVO.id != null">
+                id=#{volunteerTypeVO.id},
+            </if>
+            <if test="volunteerTypeVO.name != null">
+                name=#{volunteerTypeVO.name},
+            </if>
+            <if test="volunteerTypeVO.communityId != null">
+                community_id=#{volunteerTypeVO.communityId},
+            </if>
+            <if test="volunteerTypeVO.type != null">
+                type=#{volunteerTypeVO.type},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{volunteerTypeVO.id}
+    </update>
+
+    <delete id="volunteerTypeDelete" parameterType="String">
+        delete from volunteer_type where id=#{id}
+    </delete>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/unionpay_car_wash.xml b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/unionpay_car_wash.xml
new file mode 100644
index 0000000..d3b0b1d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/resources/mapper/unionpay_car_wash.xml
@@ -0,0 +1,40 @@
+<?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.UnionpayCarWashDao">
+
+    <resultMap type="com.panzhihua.service_community.entity.UnionpayCarWash" id="UnionpayCarWashMap">
+        <result property="id" column="id"/>
+        <result property="carWashId" column="car_wash_id"/>
+        <result property="unionpayOrderId" column="unionpay_order_id"/>
+        <result property="money" column="money"/>
+    </resultMap>
+
+    <!--查询单个-->
+    <select id="queryById" resultMap="UnionpayCarWashMap">
+        select
+            id,
+            car_wash_id,
+            unionpay_order_id,
+            money
+        from unionpay_car_wash
+        where car_wash_id = #{carWashId}
+    </select>
+
+    <select id="carWashById" resultMap="UnionpayCarWashMap">
+        select
+            id,
+            car_wash_id,
+            unionpay_order_id,
+            money
+        from unionpay_car_wash
+        where unionpay_order_id = #{unionpayId}
+    </select>
+
+    <insert id="inset">
+        INSERT INTO unionpay_car_wash(`car_wash_id`, `unionpay_order_id`, `money`)
+        VALUES (#{carWashId}, #{unionpayOrderId}, #{money});
+    </insert>
+
+
+
+</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
new file mode 100644
index 0000000..f89d88b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/test/java/com/panzhihua/service_community/ServiceCommunityApplicationTests.java
@@ -0,0 +1,27 @@
+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
+class ServiceCommunityApplicationTests {
+
+    @Test
+    void contextLoads() {
+        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_community/src/test/java/com/panzhihua/service_community/service/impl/ComEventServiceImplTest.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/test/java/com/panzhihua/service_community/service/impl/ComEventServiceImplTest.java
new file mode 100644
index 0000000..9a13d62
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/test/java/com/panzhihua/service_community/service/impl/ComEventServiceImplTest.java
@@ -0,0 +1,114 @@
+package com.panzhihua.service_community.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.sanshuo.ComEventArchiveVO;
+import com.panzhihua.common.model.vos.sanshuo.ComEventConciliationVO;
+import com.panzhihua.common.model.vos.sanshuo.ComEventDetailVO;
+import com.panzhihua.common.model.vos.sanshuo.ComEventRequestImageVO;
+import com.panzhihua.service_community.ServiceCommunityApplication;
+import com.panzhihua.service_community.entity.ComEvent;
+import com.panzhihua.service_community.service.IComEventService;
+import lombok.extern.slf4j.Slf4j;
+import org.junit.jupiter.api.Test;
+import org.springframework.boot.test.context.SpringBootTest;
+
+import javax.annotation.Resource;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+/**
+ * 应用模块名称<p>
+ * 代码描述<p>
+ * Copyright: Copyright (C) 2022 XXX, Inc. All rights reserved. <p>
+ * Company: 成都呐喊信息技术有限公司<p>
+ *
+ * @author manailin
+ * @since 2022/9/13 16:27
+ */
+@Slf4j
+@SpringBootTest(classes = ServiceCommunityApplication.class)
+class ComEventServiceImplTest {
+
+    @Resource
+    private IComEventService comEventService;
+
+    @Test
+    void pageByComEvent() {
+        Page pagination = new Page(1, 10);
+        ComEvent comEvent=new ComEvent();
+     //   comEvent.setCreateBy(1l);
+        comEvent.setKeyword("17345059081");
+//        R data = comEventService.pageByComEvent(comEvent, pagination);
+//        log.info(JSONObject.toJSONString(data));
+    }
+
+    @Test
+    void listByComEvent() {
+    }
+
+    @Test
+    void insertComEvent() {
+        ComEvent comEvent =new ComEvent();
+        comEvent.setRequestUserId(1l);
+        comEvent.setRequestUserEventDes("测试申请数据");
+        comEvent.setType("2");
+        comEvent.setEventCategory(1l);
+        comEvent.setSpecialistId(1L);
+        comEvent.setAppointmentTime(new Date());
+        List<ComEventRequestImageVO> images =new ArrayList<>();
+        ComEventRequestImageVO comEventRequestImageVO =new ComEventRequestImageVO();
+        comEventRequestImageVO.setUrl("www.baidu.com");
+        images.add(comEventRequestImageVO);
+        comEvent.setImages(images);
+        comEventService.insertComEvent(comEvent);
+    }
+
+    @Test
+    void updateComEvent() {
+    }
+
+    @Test
+    void updateEnabled() {
+    }
+
+    @Test
+    void conciliationEvent() {
+    }
+
+    @Test
+    void cancelRequest() {
+        comEventService.cancelRequest(1569688381582086144L);
+    }
+
+    @Test
+    void detail() {
+        HashMap data = comEventService.detail("1569688381582086144");
+        log.info(JSONObject.toJSONString(data));
+    }
+
+    @Test
+    void calculate() {
+//        R data = comEventService.calculate();
+//        log.info(JSONObject.toJSONString(data));
+    }
+
+    @Test
+    void archiveRequest() {
+        ComEventArchiveVO comEventArchiveVO =new ComEventArchiveVO();
+        comEventArchiveVO.setId(1L);
+        comEventArchiveVO.setResult("测试数据");
+        comEventArchiveVO.setImages(null);
+        LoginUserInfoVO sysUser =new LoginUserInfoVO();
+        sysUser.setUserId(1L);
+        R data = comEventService.archiveRequest(comEventArchiveVO,sysUser);
+        log.info(JSONObject.toJSONString(data));
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_dlz/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/service_dlz/pom.xml
new file mode 100644
index 0000000..b135746
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_dlz/pom.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.panzhihua</groupId>
+        <artifactId>zhihuishequ</artifactId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+
+    <groupId>com.panzhihua.zhihuishequ.dlz</groupId>
+    <artifactId>service_dlz</artifactId>
+
+    <properties>
+        <maven.compiler.source>8</maven.compiler.source>
+        <maven.compiler.target>8</maven.compiler.target>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-config</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid-spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.netflix.hystrix</groupId>
+            <artifactId>hystrix-javanica</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.panzhihua</groupId>
+            <artifactId>common</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.data</groupId>
+            <artifactId>spring-data-redis</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>commons-lang</groupId>
+            <artifactId>commons-lang</artifactId>
+            <version>2.6</version>
+        </dependency>
+        <!--添加监控依赖包-->
+        <dependency>
+            <groupId>io.micrometer</groupId>
+            <artifactId>micrometer-registry-prometheus</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+    </dependencies>
+
+</project>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_dlz/src/main/java/com/panzhihua/service_dlz/ServiceDlzApplication.java b/springcloud_k8s_panzhihuazhihuishequ/service_dlz/src/main/java/com/panzhihua/service_dlz/ServiceDlzApplication.java
new file mode 100644
index 0000000..f0f69ed
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_dlz/src/main/java/com/panzhihua/service_dlz/ServiceDlzApplication.java
@@ -0,0 +1,20 @@
+package com.panzhihua.service_dlz;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.cloud.client.SpringCloudApplication;
+import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.ComponentScan;
+
+@SpringCloudApplication
+@EnableFeignClients(basePackages = {"com.panzhihua.common.service"})
+@EnableEurekaClient
+@EnableCircuitBreaker
+@ComponentScan({"com.panzhihua.service_dlz", "com.panzhihua.common"})
+public class ServiceDlzApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(ServiceDlzApplication.class, args);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_dlz/src/main/java/com/panzhihua/service_dlz/controller/CommonController.java b/springcloud_k8s_panzhihuazhihuishequ/service_dlz/src/main/java/com/panzhihua/service_dlz/controller/CommonController.java
new file mode 100644
index 0000000..44d9a70
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_dlz/src/main/java/com/panzhihua/service_dlz/controller/CommonController.java
@@ -0,0 +1,15 @@
+package com.panzhihua.service_dlz.controller;
+
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/common")
+public class CommonController {
+
+    @GetMapping("/hello")
+    public String hello(){
+        return "world";
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_dlz/src/main/resources/bootstrap.yml b/springcloud_k8s_panzhihuazhihuishequ/service_dlz/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..8a84f3f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_dlz/src/main/resources/bootstrap.yml
@@ -0,0 +1,38 @@
+spring:
+  application:
+    name: dlz
+  cloud:
+    config:
+      discovery:
+        enabled: true
+        service-id: huacheng-config  # 注册中心的服务名
+      profile: ${ENV:dev}  # 指定配置文件的环境
+      uri: http://${CONFIG_URL:localhost}:6193/
+  profiles:
+    active: ${ENV:dev}
+
+eureka:
+  client:
+    service-url:
+      defaultZone: http://${EUREKA_URL:localhost}:8192/eureka
+
+#实体加密、解密、字段脱敏拦截设置
+domain:
+  decrypt: true
+  encrypt: true
+  aesKey: Ryo7M3n8loC5
+  sensitive: true
+
+management:
+  endpoints:
+    web:
+      exposure:
+        include: '*'
+
+  endpoint:
+    health:
+      show-details: always
+
+  metrics:
+    tags:
+      application: dlz
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_dlz/target/classes/com/panzhihua/service_dlz/ServiceDlzApplication.class b/springcloud_k8s_panzhihuazhihuishequ/service_dlz/target/classes/com/panzhihua/service_dlz/ServiceDlzApplication.class
new file mode 100644
index 0000000..fade553
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_dlz/target/classes/com/panzhihua/service_dlz/ServiceDlzApplication.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_dlz/target/classes/com/panzhihua/service_dlz/controller/CommonController.class b/springcloud_k8s_panzhihuazhihuishequ/service_dlz/target/classes/com/panzhihua/service_dlz/controller/CommonController.class
new file mode 100644
index 0000000..09e729e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_dlz/target/classes/com/panzhihua/service_dlz/controller/CommonController.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/pom.xml
new file mode 100644
index 0000000..b36f847
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/pom.xml
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.panzhihua</groupId>
+        <artifactId>zhihuishequ</artifactId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <groupId>com.panzhihua</groupId>
+    <artifactId>service_equipment</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>service_equipment</name>
+    <description>设备服务</description>
+
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-config</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
+            <version>3.5.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.mybatis.spring.boot</groupId>
+            <artifactId>mybatis-spring-boot-starter</artifactId>
+            <version>2.2.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid-spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.netflix.hystrix</groupId>
+            <artifactId>hystrix-javanica</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.panzhihua</groupId>
+            <artifactId>common</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.data</groupId>
+            <artifactId>spring-data-redis</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>commons-lang</groupId>
+            <artifactId>commons-lang</artifactId>
+            <version>2.6</version>
+        </dependency>
+        <!--添加监控依赖包-->
+        <dependency>
+            <groupId>io.micrometer</groupId>
+            <artifactId>micrometer-registry-prometheus</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+    </dependencies>
+
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <configuration>
+                    <mainClass>com.panzhihua.service_equipment.ServiceEquipmentApplication</mainClass>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>docker-maven-plugin</artifactId>
+                <version>1.2.0</version>
+                <configuration>
+                    <imageName>registry.cn-chengdu.aliyuncs.com/panzhihua/service_community:v1</imageName>
+                    <serverId></serverId>
+                    <baseImage>java</baseImage>
+                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
+                    <resources>
+                        <resource>
+                            <targetPath>/</targetPath>
+                            <directory>${project.build.directory}</directory>
+                            <include>${project.build.finalName}.jar</include>
+                        </resource>
+                    </resources>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <repositories>
+        <repository>
+            <id>spring-milestones</id>
+            <name>Spring Milestones</name>
+            <url>https://repo.spring.io/milestone</url>
+        </repository>
+    </repositories>
+
+</project>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/ServiceEquipmentApplication.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/ServiceEquipmentApplication.java
new file mode 100644
index 0000000..930b29b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/ServiceEquipmentApplication.java
@@ -0,0 +1,22 @@
+package com.panzhihua.service_equipment;
+
+//import com.panzhihua.service_grid.service.impl.EventVisitingTasksServiceImpl;
+import org.springframework.boot.SpringApplication;
+import org.springframework.cloud.client.SpringCloudApplication;
+import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.ComponentScan;
+
+@SpringCloudApplication
+@EnableFeignClients(basePackages = {"com.panzhihua.common.service"})
+@EnableEurekaClient
+@EnableCircuitBreaker
+@ComponentScan({"com.panzhihua.service_equipment", "com.panzhihua.common"})
+public class ServiceEquipmentApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(ServiceEquipmentApplication.class, args);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/annotation/Authorization.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/annotation/Authorization.java
new file mode 100644
index 0000000..c664193
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/annotation/Authorization.java
@@ -0,0 +1,14 @@
+package com.panzhihua.service_equipment.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * 在Controller的方法上使用此注解,该方法在映射时会检查用户是否登录,未登录返回401错误
+ */
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface Authorization {
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/annotation/CurrentUser.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/annotation/CurrentUser.java
new file mode 100644
index 0000000..9c22a8f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/annotation/CurrentUser.java
@@ -0,0 +1,14 @@
+package com.panzhihua.service_equipment.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * 在Controller的方法参数中使用此注解,该方法在映射时会注入当前登录的User对象
+ */
+@Target(ElementType.PARAMETER)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface CurrentUser {
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/RoomckWebApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/RoomckWebApi.java
new file mode 100644
index 0000000..8fa589c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/RoomckWebApi.java
@@ -0,0 +1,25 @@
+package com.panzhihua.service_equipment.api;
+
+import com.panzhihua.common.model.vos.ResultData;
+import com.panzhihua.common.model.vos.union.StructuredVO;
+import io.swagger.annotations.Api;
+import lombok.extern.slf4j.Slf4j;
+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.RestController;
+
+import java.util.List;
+
+@Api(tags = {"新闻基本面,技术面相关接口"})
+@RestController
+@RequestMapping("/roomck-web")
+@Slf4j
+public class RoomckWebApi {
+
+    @PostMapping("/roomck/ivsCommomEventController")
+    public ResultData ivsCommomEventController(@RequestBody List<StructuredVO> structureds){
+        log.info("传输参数为{}",structureds);
+        return  ResultData.normal(structureds);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionExchangeRecordApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionExchangeRecordApi.java
new file mode 100644
index 0000000..e276d8b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionExchangeRecordApi.java
@@ -0,0 +1,68 @@
+package com.panzhihua.service_equipment.api;
+
+import com.panzhihua.common.model.dtos.equipment.UnionExchangeRecordDto;
+import com.panzhihua.common.model.dtos.equipment.UnionUserDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_equipment.annotation.CurrentUser;
+import com.panzhihua.service_equipment.service.UnionExchangeRecordService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@RestController
+@RequestMapping("/UnionExchangeRecord")
+public class UnionExchangeRecordApi
+{
+    @Resource
+    private UnionExchangeRecordService unionStoreService;
+
+    @GetMapping("/getList")
+    public R unionExchangeRecordGetList(@RequestParam("pageNum") int pageNum,
+                     @RequestParam("pageSize") int pageSize,
+                     @RequestParam(value = "communityId",required = false) String communityId,
+                     @RequestParam(value = "orderType",required = false) String orderType,
+                     @CurrentUser UnionUserDto unionUser)
+    {
+        if(StringUtils.equals("0",orderType))
+        {
+            orderType=null;
+        }
+        return unionStoreService.getList(pageNum,pageSize,communityId,unionUser.getId()+"",orderType);
+    }
+
+
+    @GetMapping("/getData")
+    public R unionExchangeRecordGetData(@RequestParam("id") String id)
+    {
+        return unionStoreService.getData(id);
+    }
+
+    @PostMapping("/insert")
+    public R unionExchangeRecordInsert(@RequestBody UnionExchangeRecordDto item, @CurrentUser UnionUserDto unionUser)
+    {
+        item.setUserId(unionUser.getId()+"");
+        return unionStoreService.insert(item);
+    }
+
+    @PostMapping("/update")
+    public R unionExchangeRecordUpdate(@RequestBody UnionExchangeRecordDto item,@CurrentUser UnionUserDto unionUser)
+    {
+        return unionStoreService.update(item);
+    }
+
+    /**
+     * 删除接口
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/delete")
+    public R unionExchangeRecordDelete(@RequestParam("id") String id)
+    {
+        return unionStoreService.delete(id);
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionInspectionApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionInspectionApi.java
new file mode 100644
index 0000000..12eee1f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionInspectionApi.java
@@ -0,0 +1,72 @@
+package com.panzhihua.service_equipment.api;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.model.dtos.equipment.UnionInspectionDto;
+import com.panzhihua.common.model.dtos.equipment.UnionUserDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_equipment.annotation.CurrentUser;
+import com.panzhihua.service_equipment.model.dos.UnionReport;
+import com.panzhihua.service_equipment.service.UnionInspectionService;
+import lombok.extern.slf4j.Slf4j;
+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.RestController;
+
+import javax.annotation.Resource;
+
+
+@Slf4j
+@RestController
+@RequestMapping("/unionInspection")
+public class UnionInspectionApi {
+
+    @Resource
+    private UnionInspectionService unionInspectionService;
+
+
+    /**
+     * 新增户外劳工站巡查
+     *
+     * @param unionInspectionDto
+     * @return 新增结果
+     */
+    @PostMapping("/add")
+    public R add(@RequestBody UnionInspectionDto unionInspectionDto, @CurrentUser UnionUserDto unionUserDto) {
+        if (unionInspectionDto.getIsApplets().equals(1)) {
+            log.info("小程序进入无需验证");
+            return unionInspectionService.add(unionInspectionDto);
+        } else {
+            log.info("h5或者后台进入");
+            if (unionUserDto != null) {
+                unionInspectionDto.setCreateUnionUserId(unionUserDto.getId());
+                return unionInspectionService.add(unionInspectionDto);
+            } else {
+                return R.fail("请重新登录");
+            }
+        }
+    }
+
+
+    /**
+     * 分页户外劳工站巡查
+     *
+     * @param unionInspectionDto
+     * @return 动态结果
+     */
+    @PostMapping("/query")
+    public R<IPage<UnionReport>> query(@RequestBody UnionInspectionDto unionInspectionDto, @CurrentUser UnionUserDto unionUserDto) {
+        if (unionInspectionDto.getIsApplets().equals(1)) {
+            log.info("小程序进入无需验证");
+            return unionInspectionService.query(unionInspectionDto);
+        } else {
+            log.info("h5或者后台进入");
+            if (unionUserDto != null) {
+                unionInspectionDto.setCreateUnionUserId(unionUserDto.getId());
+                return unionInspectionService.query(unionInspectionDto);
+            } else {
+                return R.fail("请重新登录");
+            }
+        }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionIntegralRecordApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionIntegralRecordApi.java
new file mode 100644
index 0000000..740139e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionIntegralRecordApi.java
@@ -0,0 +1,63 @@
+package com.panzhihua.service_equipment.api;
+
+import com.panzhihua.common.model.dtos.equipment.UnionIntegralRecordDto;
+import com.panzhihua.common.model.dtos.equipment.UnionUserDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_equipment.annotation.CurrentUser;
+import com.panzhihua.service_equipment.service.UnionIntegralRecordService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@RestController
+@RequestMapping("/UnionIntegralRecord")
+public class UnionIntegralRecordApi
+{
+    @Resource
+    private UnionIntegralRecordService unionStoreService;
+
+    @GetMapping("/getList")
+    public R unionIntegralRecordGetList(@RequestParam("pageNum") int pageNum,
+                     @RequestParam("pageSize") int pageSize,
+                     @RequestParam(value = "communityId",required = false) String communityId,
+                     @RequestParam(value = "integralType",required = false) String integralType,
+                     @RequestParam(value = "nameOrNum",required = false) String nameOrNum)
+    {
+        return unionStoreService.getList(pageNum,pageSize,communityId,integralType,nameOrNum);
+    }
+
+
+    @GetMapping("/getData")
+    public R unionIntegralRecordGetData(@RequestParam("id") String id)
+    {
+        return unionStoreService.getData(id);
+    }
+
+    @PostMapping("/insert")
+    public R unionIntegralRecordInsert(@RequestBody UnionIntegralRecordDto item, @CurrentUser UnionUserDto unionUser)
+    {
+        item.setUserId(unionUser.getId()+"");
+        return unionStoreService.insert(item);
+    }
+
+    @PostMapping("/update")
+    public R unionIntegralRecordUpdate(@RequestBody UnionIntegralRecordDto item)
+    {
+        return unionStoreService.update(item);
+    }
+
+    /**
+     * 删除接口
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/delete")
+    public R unionIntegralRecordDelete(@RequestParam("id") String id)
+    {
+        return unionStoreService.delete(id);
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionIntegralSummarizeApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionIntegralSummarizeApi.java
new file mode 100644
index 0000000..8a71d80
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionIntegralSummarizeApi.java
@@ -0,0 +1,67 @@
+package com.panzhihua.service_equipment.api;
+
+import com.panzhihua.common.model.dtos.equipment.UnionIntegralSummarizeDto;
+import com.panzhihua.common.model.dtos.equipment.UnionUserDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_equipment.annotation.CurrentUser;
+import com.panzhihua.service_equipment.service.UnionIntegralSummarizeService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@RestController
+@RequestMapping("/UnionIntegralSummarize")
+public class UnionIntegralSummarizeApi
+{
+    @Resource
+    private UnionIntegralSummarizeService unionStoreService;
+
+    @GetMapping("/getList")
+    public R unionIntegralSummarizeGetList(@RequestParam("pageNum") int pageNum,
+                     @RequestParam("pageSize") int pageSize,
+                     @RequestParam(value = "communityId",required = false) String communityId,@CurrentUser UnionUserDto unionUser)
+    {
+        return unionStoreService.getList(pageNum,pageSize,communityId,unionUser.getId()+"");
+    }
+
+
+    @GetMapping("/getData")
+    public R unionIntegralSummarizeGetData(@RequestParam("id") String id)
+    {
+        return unionStoreService.getData(id);
+    }
+
+
+    @GetMapping("/getUserData")
+    public R unionIntegralSummarizeGetUserData(@CurrentUser UnionUserDto unionUser) {
+        return unionStoreService.getUserData(unionUser.getId()+"",null);
+    }
+
+    @PostMapping("/insert")
+    public R unionIntegralSummarizeInsert(@RequestBody UnionIntegralSummarizeDto item, @CurrentUser UnionUserDto unionUser)
+    {
+        item.setUserId(unionUser.getId()+"");
+        return unionStoreService.insert(item);
+    }
+
+    @PostMapping("/update")
+    public R unionIntegralSummarizeUpdate(@RequestBody UnionIntegralSummarizeDto item)
+    {
+        return unionStoreService.update(item);
+    }
+
+    /**
+     * 删除接口
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/delete")
+    public R unionIntegralSummarizeDelete(@RequestParam("id") String id)
+    {
+        return unionStoreService.delete(id);
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionOutdoorLaborDynamicApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionOutdoorLaborDynamicApi.java
new file mode 100644
index 0000000..26fbeb4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionOutdoorLaborDynamicApi.java
@@ -0,0 +1,44 @@
+package com.panzhihua.service_equipment.api;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.model.dtos.equipment.UnionOutdoorLaborDynamicDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_equipment.model.dos.UnionOutdoorLaborDynamic;
+import com.panzhihua.service_equipment.service.UnionOutdoorLaborDynamicService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@RestController
+@RequestMapping("/unionOutdoorLaborDynamic")
+public class UnionOutdoorLaborDynamicApi {
+
+    @Resource
+    private UnionOutdoorLaborDynamicService unionOutdoorLaborDynamicService;
+
+    /**
+     * 分页总工会-户外劳工站-动态
+     *
+     * @param unionOutdoorLaborDynamicDto
+     * @return 动态结果
+     */
+    @PostMapping("/page")
+    R<IPage<UnionOutdoorLaborDynamic>>
+    query(@RequestBody UnionOutdoorLaborDynamicDto unionOutdoorLaborDynamicDto) {
+        return unionOutdoorLaborDynamicService.query(unionOutdoorLaborDynamicDto);
+    }
+
+    /**
+     * 查询总工会-户外劳工站-动态
+     *
+     * @param id
+     *            动态 id
+     * @return 查找结果
+     */
+    @GetMapping("/{id}")
+    R unionOutdoorLaborDynamicDetail(@PathVariable("id") Long id) {
+        return unionOutdoorLaborDynamicService.unionOutdoorLaborDynamicDetails(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionOutdoorSiteApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionOutdoorSiteApi.java
new file mode 100644
index 0000000..5931dba
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionOutdoorSiteApi.java
@@ -0,0 +1,45 @@
+package com.panzhihua.service_equipment.api;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.model.dtos.equipment.UnionOutdoorSiteDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_equipment.model.dos.UnionOutdoorSite;
+import com.panzhihua.service_equipment.service.UnionOutdoorSiteService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@RestController
+@RequestMapping("/unionOutdoorSite")
+public class UnionOutdoorSiteApi {
+
+    @Resource
+    private UnionOutdoorSiteService unionOutdoorSiteService;
+
+
+    /**
+     * 分页总工会户外劳工站
+     *
+     * @param unionOutdoorSiteDto
+     * @return 动态结果
+     */
+    @PostMapping("/page")
+    R<IPage<UnionOutdoorSite>>
+    query(@RequestBody UnionOutdoorSiteDto unionOutdoorSiteDto) {
+        return unionOutdoorSiteService.query(unionOutdoorSiteDto);
+    }
+
+    /**
+     * 查询总工会户外劳工站
+     *
+     * @param id
+     *            户外劳工站 id
+     * @return 查找结果
+     */
+    @GetMapping("/{id}")
+    R unionOutdoorSiteDetail(@PathVariable("id") Long id) {
+        return unionOutdoorSiteService.unionOutdoorSiteDetails(id);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionReportApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionReportApi.java
new file mode 100644
index 0000000..e889dc9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionReportApi.java
@@ -0,0 +1,71 @@
+package com.panzhihua.service_equipment.api;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.model.dtos.equipment.UnionReportDto;
+import com.panzhihua.common.model.dtos.equipment.UnionUserDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_equipment.annotation.CurrentUser;
+import com.panzhihua.service_equipment.model.dos.UnionReport;
+import com.panzhihua.service_equipment.service.UnionReportService;
+import lombok.extern.slf4j.Slf4j;
+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.RestController;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@RestController
+@RequestMapping("/unionReport")
+public class UnionReportApi {
+
+    @Resource
+    private UnionReportService unionReportService;
+
+    /**
+     * 户外劳工站上报表
+     *
+     * @param unionReportDto
+     * @return 新增结果
+     */
+    @PostMapping("/add")
+    public R add(@RequestBody UnionReportDto unionReportDto, @CurrentUser UnionUserDto unionUserDto) {
+        if (unionReportDto.getIsApplets().equals(1)) {
+            log.info("小程序进入无需验证");
+            return unionReportService.add(unionReportDto);
+        } else {
+            log.info("h5或者后台进入");
+            if (unionUserDto != null) {
+                unionReportDto.setCreateUnionUserId(unionUserDto.getId());
+                return unionReportService.add(unionReportDto);
+            } else {
+                return R.fail("请重新登录");
+            }
+        }
+    }
+
+
+    /**
+     * 分页户外劳工站上报表
+     *
+     * @param unionReportDto
+     * @return 动态结果
+     */
+    @PostMapping("/query")
+    public R<IPage<UnionReport>> query(@RequestBody UnionReportDto unionReportDto, @CurrentUser UnionUserDto
+            unionUserDto) {
+        if (unionReportDto.getIsApplets().equals(1)) {
+            log.info("小程序进入无需验证");
+            return unionReportService.query(unionReportDto);
+        } else {
+            log.info("h5或者后台进入");
+            if (unionUserDto != null) {
+                unionReportDto.setCreateUnionUserId(unionUserDto.getId());
+                return unionReportService.query(unionReportDto);
+            } else {
+                return R.fail("请重新登录");
+            }
+        }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionShippingAddressApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionShippingAddressApi.java
new file mode 100644
index 0000000..f9e8b7b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionShippingAddressApi.java
@@ -0,0 +1,70 @@
+package com.panzhihua.service_equipment.api;
+
+import com.panzhihua.common.model.dtos.equipment.UnionShippingAddressDto;
+import com.panzhihua.common.model.dtos.equipment.UnionUserDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_equipment.annotation.CurrentUser;
+import com.panzhihua.service_equipment.service.UnionShippingAddressService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@RestController
+@RequestMapping("/UnionShippingAddress")
+public class UnionShippingAddressApi
+{
+    @Resource
+    private UnionShippingAddressService unionStoreService;
+
+    @GetMapping("/getList")
+    public R unionShippingAddressGetList(@RequestParam("pageNum") int pageNum,
+                     @RequestParam("pageSize") int pageSize,
+                     @RequestParam(value = "communityId",required = false) String communityId,
+                      @CurrentUser UnionUserDto unionUser)
+    {
+        return unionStoreService.getList(pageNum,pageSize,communityId,unionUser.getId()+"");
+    }
+
+
+    @GetMapping("/getData")
+    public R unionShippingAddressGetData(@RequestParam("id") String id)
+    {
+        return unionStoreService.getData(id);
+    }
+
+
+    @GetMapping("/getDefaultData")
+    public R unionShippingAddressGetDefaultData(@CurrentUser UnionUserDto unionUser)
+    {
+        return unionStoreService.getDefaultData(unionUser.getId()+"");
+    }
+
+
+    @PostMapping("/insert")
+    public R unionShippingAddressInsert(@RequestBody UnionShippingAddressDto item, @CurrentUser UnionUserDto unionUser)
+    {
+        item.setUserId(unionUser.getId()+"");
+        return unionStoreService.insert(item);
+    }
+
+    @PostMapping("/update")
+    public R unionShippingAddressUpdate(@RequestBody UnionShippingAddressDto item)
+    {
+        return unionStoreService.update(item);
+    }
+
+    /**
+     * 删除接口
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/delete")
+    public R unionShippingAddressDelete(@RequestParam("id") String id)
+    {
+        return unionStoreService.delete(id);
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionStoreApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionStoreApi.java
new file mode 100644
index 0000000..8926a05
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionStoreApi.java
@@ -0,0 +1,76 @@
+package com.panzhihua.service_equipment.api;
+
+import com.panzhihua.common.model.dtos.equipment.UnionStoreDto;
+import com.panzhihua.common.model.dtos.equipment.UnionUserDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_equipment.annotation.CurrentUser;
+import com.panzhihua.service_equipment.model.dos.UnionIntegralSummarize;
+import com.panzhihua.service_equipment.service.UnionIntegralSummarizeService;
+import com.panzhihua.service_equipment.service.UnionStoreService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@RestController
+@RequestMapping("/UnionStore")
+public class UnionStoreApi
+{
+    @Resource
+    private UnionStoreService unionStoreService;
+
+    @Resource
+    private UnionIntegralSummarizeService unionIntegralSummarizeService;
+
+    @GetMapping("/getList")
+    public R getList(@RequestParam("pageNum") int pageNum,
+                     @RequestParam("pageSize") int pageSize,
+                     @RequestParam(value = "communityId",required = false) String communityId,
+                     @RequestParam(value = "goodsType",required = false) String goodsType,
+                     @RequestParam(value = "nameOrNum",required = false) String nameOrNum,
+                     @CurrentUser UnionUserDto unionUser)
+    {
+        if(StringUtils.isEmpty(communityId))
+        {
+            R<UnionIntegralSummarize> unionIntegralSummarizeR=
+                    unionIntegralSummarizeService.getUserData(unionUser.getId()+"",null);
+            communityId=unionIntegralSummarizeR.getData().getCommunityId();
+        }
+        return unionStoreService.getList(pageNum,pageSize,communityId,goodsType,nameOrNum);
+    }
+
+    @GetMapping("/getData")
+    public R getData(@RequestParam("id") String id)
+    {
+        return unionStoreService.getData(id);
+    }
+
+
+    @PostMapping("/insert")
+    public R insert(@RequestBody UnionStoreDto item, @CurrentUser UnionUserDto unionUser)
+    {
+        item.setUserId(unionUser.getId()+"");
+        item.setCommunityId(unionUser.getAreaCode()+"");
+        return unionStoreService.insert(item);
+    }
+
+    @PostMapping("/update")
+    public R update(@RequestBody UnionStoreDto item)
+    {
+        return unionStoreService.update(item);
+    }
+
+    /**
+     * 删除接口
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/delete")
+    public R delete(@RequestParam("id") String id)
+    {
+        return unionStoreService.delete(id);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionUserApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionUserApi.java
new file mode 100644
index 0000000..dfb6965
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/UnionUserApi.java
@@ -0,0 +1,96 @@
+package com.panzhihua.service_equipment.api;
+
+import com.panzhihua.common.model.dtos.equipment.UnionUserDto;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_equipment.annotation.CurrentUser;
+import com.panzhihua.service_equipment.model.dos.UnionUser;
+import com.panzhihua.service_equipment.service.UnionUserService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Map;
+
+@Slf4j
+@RestController
+@RequestMapping("/unionUser")
+public class UnionUserApi {
+
+     @Resource
+     private UnionUserService userService;
+
+    /**
+     * 总工会户外劳登录
+     *
+     * @param loginUserInfoVO
+     * @return 总工会户外劳共用户
+     */
+    @PostMapping("/login")
+    public R<UnionUser> login(@RequestBody  LoginUserInfoVO loginUserInfoVO){
+         return  userService.login(loginUserInfoVO);
+    }
+
+
+    /**
+     * 总工会户外劳登录(H5)
+     *
+     * @param phone
+     * @return 总工会户外劳共用户
+     */
+    @GetMapping("/loginH5")
+    public R<Map<String, Object>> loginH5(@RequestParam(value = "phone") String phone){
+        return  userService.loginByUnion(phone);
+    }
+    /**
+     * 总工会户外劳工站用户认证
+     *
+     * @param unionUserDto
+     * @return 总工会户外劳共用户
+     */
+    @PostMapping("/authentication")
+    public R authentication(@RequestBody UnionUserDto unionUserDto, @CurrentUser UnionUserDto unionUser){
+        if (unionUserDto.getIsApplets().equals(1)) {
+            log.info("小程序进入无需验证");
+            return  userService.authentication(unionUserDto);
+        }
+        else {
+            log.info("h5进入");
+            if (unionUser != null) {
+                unionUserDto.setId(unionUser.getId());
+                return  userService.authentication(unionUserDto);
+            }
+            else {
+                return R.fail("请重新登录");
+            }
+        }
+    }
+
+    /**
+     * 使用id查找用户
+     *
+     * @param id
+     * @return 总工会户外劳共用户
+     */
+    @GetMapping("/selectById")
+    public UnionUserDto  selectById(@RequestParam(value = "id") Long id){
+        return  userService.selectById(id);
+    }
+
+
+    /**
+     * 用户开门
+     *
+     * @return 总工会户外劳共用户
+     */
+    @GetMapping("/openDoor")
+    public  R openDoor(@RequestParam(value = "qRCode")  String qRCode,@CurrentUser UnionUserDto unionUser){
+        if (unionUser != null) {
+            return  userService.openDoor(unionUser,qRCode);
+        }
+        else {
+            return R.fail("请重新登录");
+        }
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/VideoManageApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/VideoManageApi.java
new file mode 100644
index 0000000..e3c3fb1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/api/VideoManageApi.java
@@ -0,0 +1,4 @@
+package com.panzhihua.service_equipment.api;
+
+public class VideoManageApi {
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/config/AccessConfig.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/config/AccessConfig.java
new file mode 100644
index 0000000..7d0332d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/config/AccessConfig.java
@@ -0,0 +1,20 @@
+package com.panzhihua.service_equipment.config;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+@ApiModel("门禁账号密码")
+@Data
+@Component
+@ConfigurationProperties(prefix = "uni")
+public class AccessConfig {
+
+    @Value("${access.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${access.password}")
+    private String password;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/config/MyMetaObjectHandler.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/config/MyMetaObjectHandler.java
new file mode 100644
index 0000000..7276215
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/config/MyMetaObjectHandler.java
@@ -0,0 +1,41 @@
+package com.panzhihua.service_equipment.config;
+
+import java.util.Date;
+
+import org.apache.ibatis.reflection.MetaObject;
+import org.springframework.stereotype.Component;
+
+import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 自动填充
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-11 14:23
+ **/
+@Slf4j
+@Component
+public class MyMetaObjectHandler implements MetaObjectHandler {
+    @Override
+    public void insertFill(MetaObject metaObject) {
+        log.info("start insert fill ....");
+        // this.strictInsertFill(metaObject, "createTime", Date.class, new Date()); // 起始版本 3.3.0(推荐使用)
+        // 或者
+        this.strictInsertFill(metaObject, "createAt", () -> new Date(), Date.class); // 起始版本 3.3.3(推荐)
+        this.strictInsertFill(metaObject, "updateAt", () -> new Date(), Date.class); // 起始版本 3.3.3(推荐)
+        // 或者
+        // this.fillStrategy(metaObject, "createTime", LocalDateTime.now()); // 也可以使用(3.3.0 该方法有bug)
+    }
+
+    @Override
+    public void updateFill(MetaObject metaObject) {
+        log.info("start update fill ....");
+        // this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); // 起始版本 3.3.0(推荐)
+        // 或者
+        this.strictUpdateFill(metaObject, "updateAt", () -> new Date(), Date.class); // 起始版本 3.3.3(推荐)
+        // 或者
+        // this.fillStrategy(metaObject, "updateTime", LocalDateTime.now()); // 也可以使用(3.3.0 该方法有bug)
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/config/MybatisHmkInterceptor.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/config/MybatisHmkInterceptor.java
new file mode 100644
index 0000000..21aa4d6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/config/MybatisHmkInterceptor.java
@@ -0,0 +1,24 @@
+package com.panzhihua.service_equipment.config;
+
+import com.baomidou.mybatisplus.core.toolkit.PluginUtils;
+import com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor;
+import org.apache.ibatis.executor.Executor;
+import org.apache.ibatis.mapping.BoundSql;
+import org.apache.ibatis.mapping.MappedStatement;
+import org.apache.ibatis.session.ResultHandler;
+import org.apache.ibatis.session.RowBounds;
+
+import java.sql.SQLException;
+
+public class MybatisHmkInterceptor implements InnerInterceptor {
+    @Override
+    public void beforeQuery(Executor executor, MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) throws SQLException {
+        String sql=boundSql.getSql();
+            if(sql.contains("community_id = 10086")){
+                sql=sql.replace("community_id = 10086","community_id in (30,31)");
+                PluginUtils.mpBoundSql(boundSql).sql(sql);
+        }
+        InnerInterceptor.super.beforeQuery(executor, ms, parameter, rowBounds, resultHandler, boundSql);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/config/MybatisPlusConfig.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/config/MybatisPlusConfig.java
new file mode 100644
index 0000000..b7bf326
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/config/MybatisPlusConfig.java
@@ -0,0 +1,38 @@
+package com.panzhihua.service_equipment.config;
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 分页
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 16:26
+ **/
+@MapperScan({"com.panzhihua.service_grid.dao*"})
+@Configuration
+public class MybatisPlusConfig {
+
+    /**
+     * 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)
+     */
+    @Bean
+    public MybatisPlusInterceptor mybatisPlusInterceptor() {
+        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+        interceptor.addInnerInterceptor(new MybatisHmkInterceptor());
+        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2));
+        return interceptor;
+    }
+
+    @Bean
+    public ConfigurationCustomizer configurationCustomizer() {
+        return configuration -> configuration.setUseDeprecatedExecutor(false);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/config/QRCodeUtil.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/config/QRCodeUtil.java
new file mode 100644
index 0000000..a107d7f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/config/QRCodeUtil.java
@@ -0,0 +1,108 @@
+//package com.panzhihua.service_equipment.config;
+//
+//import org.apache.commons.lang3.StringUtils;
+//import org.mybatis.logging.Logger;
+//import org.mybatis.logging.LoggerFactory;
+//
+//import javax.swing.filechooser.FileSystemView;
+//import java.io.File;
+//
+///**
+// * 二维码工具
+// * @Author:debug (SteadyJack)
+// * @Link: weixin-> debug0868  qq-> 1948831260
+// * @Date: 2020/11/16 22:38
+// **/
+//public class QRCodeUtil {
+//    private static final Logger log= LoggerFactory.getLogger(QRCodeUtil.class);
+//
+//    //CODE_WIDTH:二维码宽度,单位像素
+//    private static final int CODE_WIDTH = 400;
+//    //CODE_HEIGHT:二维码高度,单位像素
+//    private static final int CODE_HEIGHT = 400;
+//    //FRONT_COLOR:二维码前景色,0x000000 表示黑色
+//    private static final int FRONT_COLOR = 0x000000;
+//    //BACKGROUND_COLOR:二维码背景色,0xFFFFFF 表示白色
+//    //演示用 16 进制表示,和前端页面 CSS 的取色是一样的,注意前后景颜色应该对比明显,如常见的黑白
+//    private static final int BACKGROUND_COLOR = 0xFFFFFF;
+//
+//    public static void createCodeToFile(String content, File codeImgFileSaveDir, String fileName) {
+//        try {
+//            if (StringUtils.isBlank(content) || StringUtils.isBlank(fileName)) {
+//                return;
+//            }
+//            content = content.trim();
+//            if (codeImgFileSaveDir==null || codeImgFileSaveDir.isFile()) {
+//                //二维码图片存在目录为空,默认放在桌面...
+//                codeImgFileSaveDir = FileSystemView.getFileSystemView().getHomeDirectory();
+//            }
+//            if (!codeImgFileSaveDir.exists()) {
+//                //二维码图片存在目录不存在,开始创建...
+//                codeImgFileSaveDir.mkdirs();
+//            }
+//
+//            //核心代码-生成二维码
+//            BufferedImage bufferedImage = getBufferedImage(content);
+//
+//            File codeImgFile = new File(codeImgFileSaveDir, fileName);
+//            ImageIO.write(bufferedImage, "png", codeImgFile);
+//
+//            log.info("二维码图片生成成功:" + codeImgFile.getPath());
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        }
+//    }
+//
+//    /**
+//     * 生成二维码并输出到输出流, 通常用于输出到网页上进行显示,输出到网页与输出到磁盘上的文件中,区别在于最后一句 ImageIO.write
+//     * write(RenderedImage im,String formatName,File output):写到文件中
+//     * write(RenderedImage im,String formatName,OutputStream output):输出到输出流中
+//     * @param content  :二维码内容
+//     * @param outputStream :输出流,比如 HttpServletResponse 的 getOutputStream
+//     */
+//    public static void createCodeToOutputStream(String content, OutputStream outputStream) {
+//        try {
+//            if (StringUtils.isBlank(content)) {
+//                return;
+//            }
+//            content = content.trim();
+//            //核心代码-生成二维码
+//            BufferedImage bufferedImage = getBufferedImage(content);
+//
+//            //区别就是这一句,输出到输出流中,如果第三个参数是 File,则输出到文件中
+//            ImageIO.write(bufferedImage, "png", outputStream);
+//
+//            log.info("二维码图片生成到输出流成功...");
+//        } catch (Exception e) {
+//            e.printStackTrace();
+//        }
+//    }
+//
+//    //核心代码-生成二维码
+//    private static BufferedImage getBufferedImage(String content) throws WriterException {
+//
+//        //com.google.zxing.EncodeHintType:编码提示类型,枚举类型
+//        Map<EncodeHintType, Object> hints = new HashMap();
+//
+//        //EncodeHintType.CHARACTER_SET:设置字符编码类型
+//        hints.put(EncodeHintType.CHARACTER_SET, "UTF-8");
+//
+//        //EncodeHintType.ERROR_CORRECTION:设置误差校正
+//        //ErrorCorrectionLevel:误差校正等级,L = ~7% correction、M = ~15% correction、Q = ~25% correction、H = ~30% correction
+//        //不设置时,默认为 L 等级,等级不一样,生成的图案不同,但扫描的结果是一样的
+//        hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.M);
+//
+//        //EncodeHintType.MARGIN:设置二维码边距,单位像素,值越小,二维码距离四周越近
+//        hints.put(EncodeHintType.MARGIN, 1);
+//
+//        MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
+//        BitMatrix bitMatrix = multiFormatWriter.encode(content, BarcodeFormat.QR_CODE, CODE_WIDTH, CODE_HEIGHT, hints);
+//        BufferedImage bufferedImage = new BufferedImage(CODE_WIDTH, CODE_HEIGHT, BufferedImage.TYPE_INT_BGR);
+//        for (int x = 0; x < CODE_WIDTH; x++) {
+//            for (int y = 0; y < CODE_HEIGHT; y++) {
+//                bufferedImage.setRGB(x, y, bitMatrix.get(x, y) ? FRONT_COLOR : BACKGROUND_COLOR);
+//            }
+//        }
+//        return bufferedImage;
+//    }
+//}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionAccessMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionAccessMapper.java
new file mode 100644
index 0000000..926bba1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionAccessMapper.java
@@ -0,0 +1,19 @@
+package com.panzhihua.service_equipment.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_equipment.model.dos.UnionAccess;
+import org.apache.ibatis.annotations.Mapper;
+
+
+/**
+ * <p>
+ * 户外劳工站门禁设备 Mapper 接口
+ * </p>
+ *
+ * @author fengjin
+ * @since 2023-09-11
+ */
+@Mapper
+public interface UnionAccessMapper extends BaseMapper<UnionAccess> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionExchangeRecordMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionExchangeRecordMapper.java
new file mode 100644
index 0000000..49587ac
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionExchangeRecordMapper.java
@@ -0,0 +1,40 @@
+package com.panzhihua.service_equipment.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.equipment.UnionExchangeRecordDto;
+import com.panzhihua.service_equipment.model.dos.UnionExchangeRecord;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 户外劳工商品表管理
+ */
+@Mapper
+public interface UnionExchangeRecordMapper extends BaseMapper<UnionExchangeRecord>
+{
+
+    IPage<UnionExchangeRecord> getList(Page page,
+                              @Param("communityId") String communityId,
+                              @Param("userId") String userId,
+                              @Param("orderType") String orderType);
+
+
+    UnionExchangeRecord getData(@Param("id") String id);
+
+    int insert(@Param("item") UnionExchangeRecordDto item);
+
+
+    int update(@Param("item") UnionExchangeRecordDto item);
+
+    /**
+     * 删除接口
+     * @param id
+     * @return
+     */
+    int delete(@Param("id") String id);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionInspectionMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionInspectionMapper.java
new file mode 100644
index 0000000..0ba9d44
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionInspectionMapper.java
@@ -0,0 +1,18 @@
+package com.panzhihua.service_equipment.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_equipment.model.dos.UnionInspection;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 户外劳工站巡查表 Mapper 接口
+ * </p>
+ *
+ * @author fengjin
+ * @since 2023-08-25
+ */
+@Mapper
+public interface UnionInspectionMapper extends BaseMapper<UnionInspection> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionIntegralRecordMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionIntegralRecordMapper.java
new file mode 100644
index 0000000..8691aec
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionIntegralRecordMapper.java
@@ -0,0 +1,40 @@
+package com.panzhihua.service_equipment.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.equipment.UnionIntegralRecordDto;
+import com.panzhihua.service_equipment.model.dos.UnionIntegralRecord;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 户外劳工商品表管理
+ */
+@Mapper
+public interface UnionIntegralRecordMapper extends BaseMapper<UnionIntegralRecord>
+{
+
+    IPage<UnionIntegralRecord> getList(Page page,
+                              @Param("communityId") String communityId,
+                              @Param("integralType") String integralType,
+                              @Param("nameOrNum") String nameOrNum);
+
+
+    UnionIntegralRecord getData(@Param("id") String id);
+
+    int insertOne(@Param("item") UnionIntegralRecordDto item);
+
+
+    int updateOne(@Param("item") UnionIntegralRecordDto item);
+
+    /**
+     * 删除接口
+     * @param id
+     * @return
+     */
+    int delete(@Param("id") String id);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionIntegralRuleMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionIntegralRuleMapper.java
new file mode 100644
index 0000000..5dce0e1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionIntegralRuleMapper.java
@@ -0,0 +1,18 @@
+package com.panzhihua.service_equipment.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_equipment.model.dos.UnionIntegralRule;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 积分规则表 Mapper 接口
+ * </p>
+ *
+ * @author fengjin
+ * @since 2023-09-20
+ */
+@Mapper
+public interface UnionIntegralRuleMapper extends BaseMapper<UnionIntegralRule> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionIntegralRuleRecordMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionIntegralRuleRecordMapper.java
new file mode 100644
index 0000000..f094862
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionIntegralRuleRecordMapper.java
@@ -0,0 +1,17 @@
+package com.panzhihua.service_equipment.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_equipment.model.dos.UnionIntegralRuleRecord;
+import org.apache.ibatis.annotations.Mapper;
+/**
+ * <p>
+ * 积分规则表 Mapper 接口
+ * </p>
+ *
+ * @author fengjin
+ * @since 2023-09-20
+ */
+@Mapper
+public interface UnionIntegralRuleRecordMapper extends BaseMapper<UnionIntegralRuleRecord> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionIntegralSummarizeMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionIntegralSummarizeMapper.java
new file mode 100644
index 0000000..9d95a60
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionIntegralSummarizeMapper.java
@@ -0,0 +1,43 @@
+package com.panzhihua.service_equipment.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.equipment.UnionIntegralSummarizeDto;
+import com.panzhihua.service_equipment.model.dos.UnionIntegralSummarize;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 户外劳工商品表管理
+ */
+@Mapper
+public interface UnionIntegralSummarizeMapper extends BaseMapper<UnionIntegralSummarize>
+{
+
+    IPage<UnionIntegralSummarize> getList(Page page,
+                              @Param("communityId") String communityId,
+                              @Param("userId") String userId);
+
+
+    UnionIntegralSummarize getData(@Param("id") String id);
+
+
+    UnionIntegralSummarize getUserData(@Param("userId") String userId,
+                                    @Param("communityId") String communityId);
+
+    int insert(@Param("item") UnionIntegralSummarizeDto item);
+
+
+    int update(@Param("item") UnionIntegralSummarizeDto item);
+
+    /**
+     * 删除接口
+     * @param id
+     * @return
+     */
+    int delete(@Param("id") String id);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionOpenDoorMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionOpenDoorMapper.java
new file mode 100644
index 0000000..a88c387
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionOpenDoorMapper.java
@@ -0,0 +1,20 @@
+package com.panzhihua.service_equipment.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_equipment.model.dos.UnionOpenDoor;
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.data.repository.query.Param;
+
+/**
+ * <p>
+ * 开门记录表 Mapper 接口
+ * </p>
+ *
+ * @author fengjin
+ * @since 2023-09-20
+ */
+@Mapper
+public interface UnionOpenDoorMapper extends BaseMapper<UnionOpenDoor> {
+
+    Integer getUserLastOpenDoorMinutesDiff(@Param("userId") Long userId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionOutdoorLaborDynamicMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionOutdoorLaborDynamicMapper.java
new file mode 100644
index 0000000..4f4d23b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionOutdoorLaborDynamicMapper.java
@@ -0,0 +1,18 @@
+package com.panzhihua.service_equipment.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_equipment.model.dos.UnionOutdoorLaborDynamic;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 总工会-户外劳工站-动态
+ * </p>
+ *
+ * @author fengjin
+ * @since 2023-08-21
+ */
+@Mapper
+public interface UnionOutdoorLaborDynamicMapper extends BaseMapper<UnionOutdoorLaborDynamic> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionOutdoorServiceRangeMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionOutdoorServiceRangeMapper.java
new file mode 100644
index 0000000..fe21b26
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionOutdoorServiceRangeMapper.java
@@ -0,0 +1,18 @@
+package com.panzhihua.service_equipment.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_equipment.model.dos.UnionOutdoorServiceRange;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 户外站点分类表 Mapper 接口
+ * </p>
+ *
+ * @author fengjin
+ * @since 2023-08-23
+ */
+@Mapper
+public interface UnionOutdoorServiceRangeMapper extends BaseMapper<UnionOutdoorServiceRange> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionOutdoorSiteMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionOutdoorSiteMapper.java
new file mode 100644
index 0000000..e8b3a24
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionOutdoorSiteMapper.java
@@ -0,0 +1,18 @@
+package com.panzhihua.service_equipment.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_equipment.model.dos.UnionOutdoorSite;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * <p>
+ * 总工会户外劳工站 Mapper 接口
+ * </p>
+ *
+ * @author fengjin
+ * @since 2023-08-23
+ */
+@Mapper
+public interface UnionOutdoorSiteMapper extends BaseMapper<UnionOutdoorSite> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionReportMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionReportMapper.java
new file mode 100644
index 0000000..c3aad78
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionReportMapper.java
@@ -0,0 +1,17 @@
+package com.panzhihua.service_equipment.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_equipment.model.dos.UnionReport;
+import org.apache.ibatis.annotations.Mapper;
+/**
+ * <p>
+ * 户外劳工站上报表 Mapper 接口
+ * </p>
+ *
+ * @author fengjin
+ * @since 2023-08-24
+ */
+@Mapper
+public interface UnionReportMapper extends BaseMapper<UnionReport> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionShippingAddressMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionShippingAddressMapper.java
new file mode 100644
index 0000000..47820ab
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionShippingAddressMapper.java
@@ -0,0 +1,42 @@
+package com.panzhihua.service_equipment.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.equipment.UnionShippingAddressDto;
+import com.panzhihua.service_equipment.model.dos.UnionShippingAddress;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 户外劳工商品表管理
+ */
+@Mapper
+public interface UnionShippingAddressMapper extends BaseMapper<UnionShippingAddress>
+{
+
+    IPage<UnionShippingAddress> getList(Page page,
+                              @Param("communityId") String communityId,
+                              @Param("userId") String userId);
+
+
+    UnionShippingAddress getData(@Param("id") String id);
+
+
+    UnionShippingAddress getDefaultData(@Param("userId") String userId);
+
+    int insert(@Param("item") UnionShippingAddressDto item);
+
+
+    int update(@Param("item") UnionShippingAddressDto item);
+
+    /**
+     * 删除接口
+     * @param id
+     * @return
+     */
+    int delete(@Param("id") String id);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionStoreMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionStoreMapper.java
new file mode 100644
index 0000000..4c79f0e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionStoreMapper.java
@@ -0,0 +1,40 @@
+package com.panzhihua.service_equipment.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.equipment.UnionStoreDto;
+import com.panzhihua.service_equipment.model.dos.UnionStore;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 户外劳工商品表管理
+ */
+@Mapper
+public interface UnionStoreMapper extends BaseMapper<UnionStore>
+{
+
+    IPage<UnionStore> getList(Page page,
+                              @Param("communityId") String communityId,
+                              @Param("goodsType") String goodsType,
+                              @Param("nameOrNum") String nameOrNum);
+
+    UnionStore getData(@Param("id") String id);
+
+
+    int insert(@Param("item") UnionStoreDto item);
+
+
+    int update(@Param("item") UnionStoreDto item);
+
+    /**
+     * 删除接口
+     * @param id
+     * @return
+     */
+    int delete(@Param("id") String id);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionUserMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionUserMapper.java
new file mode 100644
index 0000000..519f4f3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UnionUserMapper.java
@@ -0,0 +1,17 @@
+package com.panzhihua.service_equipment.dao;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_equipment.model.dos.UnionUser;
+
+/**
+ * <p>
+ * 户外劳工站用户
+ * </p>
+ *
+ * @author fengjin
+ * @since 2023-08-24
+ */
+@Mapper
+public interface UnionUserMapper extends BaseMapper<UnionUser> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UsersMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UsersMapper.java
new file mode 100644
index 0000000..011a149
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/dao/UsersMapper.java
@@ -0,0 +1,11 @@
+package com.panzhihua.service_equipment.dao;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_equipment.model.dos.Users;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+@DS("mysql2")
+public interface UsersMapper extends BaseMapper<Users> {
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/Structured.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/Structured.java
new file mode 100644
index 0000000..67b9063
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/Structured.java
@@ -0,0 +1,89 @@
+package com.panzhihua.service_equipment.model.dos;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@ApiModel("结构化数据类")
+@Data
+public class Structured {
+
+    @ApiModelProperty("跟踪 ID")
+    private String traceId;
+
+    @ApiModelProperty("结构化 ID")
+    private String structuredId;
+
+    @ApiModelProperty("外部设备 ID")
+    private String extDeviceId;
+
+    @ApiModelProperty("设备编码")
+    private String deviceCode;
+
+    @ApiModelProperty("平台编码")
+    private String platformCode;
+
+    @ApiModelProperty("应用密钥")
+    private String appKey;
+
+    @ApiModelProperty("能力编码")
+    private String abilityCode;
+
+    @ApiModelProperty("能力版本")
+    private String abilityVersion;
+
+    @ApiModelProperty("API ID")
+    private Long apiId;
+
+    @ApiModelProperty("创建时间")
+    private Long gmtCreate;
+
+    @ApiModelProperty("设备名称")
+    private String deviceName;
+
+    @ApiModelProperty("设备 ID")
+    private Long deviceId;
+
+    @ApiModelProperty("组织 ID")
+    private Long orgId;
+
+    @ApiModelProperty("结构化数据")
+    private String structuredData;
+
+    @ApiModelProperty("图片路径")
+    private String picPath;
+
+    @ApiModelProperty("图片 Base64")
+    private String imageBase64;
+
+    @ApiModelProperty("视频 Base64")
+    private String videoBase64;
+
+    @ApiModelProperty("视频路径")
+    private String videoPath;
+
+    @ApiModelProperty("能力名称")
+    private String abilityName;
+
+    @ApiModelProperty("能力 ID")
+    private Long abilityId;
+
+    @ApiModelProperty("识别结果")
+    private String recognitionResult;
+
+    @ApiModelProperty("帧时间")
+    private String frameTime;
+
+    @ApiModelProperty("API 参数")
+    private String apiParams;
+
+    @ApiModelProperty("平台代码")
+    private String  plaformCode;
+
+    @ApiModelProperty("预设图像路径")
+    private String presetImagePath;
+
+    @ApiModelProperty("事件临时名称")
+    private String eventTempName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionAccess.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionAccess.java
new file mode 100644
index 0000000..0ea89e1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionAccess.java
@@ -0,0 +1,86 @@
+package com.panzhihua.service_equipment.model.dos;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 户外劳工站门禁设备
+ * </p>
+ *
+ * @author fengjin
+ * @since 2023-09-11
+ */
+@TableName("union_access")
+@Data
+@ApiModel("户外劳工站门禁设备")
+public class UnionAccess implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    @ApiModelProperty(value = "主键")
+    private Integer id;
+
+    /**
+     * 站点id
+     */
+    @ApiModelProperty(value = "站点id")
+    private Integer siteId;
+
+    /**
+     * 小区id
+     */
+    @ApiModelProperty(value = "小区id")
+    private String communityExternalId;
+
+    /**
+     * 小区名
+     */
+    @ApiModelProperty(value = "小区名")
+    private String community;
+
+    /**
+     * 单元id 
+     */
+    @ApiModelProperty(value = "单元id")
+    private String unitId;
+
+    /**
+     * 设备序列号
+     */
+    @ApiModelProperty(value = "设备序列号")
+    private String sn;
+
+    /**
+     * 设备名
+     */
+    @ApiModelProperty(value = "设备名")
+    private String name;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private LocalDateTime createAt;
+
+    /**
+     * 设备序列号
+     */
+    @ApiModelProperty(value = "设备序列号")
+    private String qRCode;
+
+    /**
+     * 设备名
+     */
+    @ApiModelProperty(value = "设备名")
+    private String qRCodeUrl;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionExchangeRecord.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionExchangeRecord.java
new file mode 100644
index 0000000..9aac7f8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionExchangeRecord.java
@@ -0,0 +1,107 @@
+package com.panzhihua.service_equipment.model.dos;
+
+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 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;
+
+@TableName("union_exchange_record")
+@Data
+@ApiModel("兑换记录")
+public class UnionExchangeRecord implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @ApiModelProperty(value = "主键id")
+    private String id;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+    @ApiModelProperty(value = "订单号")
+    private String orderNum;
+
+    @ApiModelProperty(value = "商品id")
+    private String goodsId;
+
+    @ApiModelProperty(value = "订单状态(1待发货  2待收货   3待自提  4已完成   5已取消)")
+    private String orderType;
+
+    @ApiModelProperty(value = "消费积分")
+    private String consumptionPoints;
+
+    @ApiModelProperty(value = "收件人")
+    private String consignee;
+
+    @ApiModelProperty(value = "收货人手机号")
+    private String consigneePhone;
+
+    @ApiModelProperty(value = "收货地址")
+    private String consigneeAddress;
+
+    @ApiModelProperty(value = "纬度")
+    private String lat;
+    @ApiModelProperty(value = "经度")
+    private String lng;
+
+    @ApiModelProperty(value = "购买数量")
+    private String goodsNum;
+
+    @ApiModelProperty(value = "物流公司")
+    private String logisticsCompany;
+
+    @ApiModelProperty(value = "物流单号")
+    private String logisticsNum;
+
+    @ApiModelProperty(value = "实际支付积分")
+    private String playIntegral;
+
+    @ApiModelProperty(value = "取货方式(1邮寄  2自提)")
+    private String pickUpMethod;
+
+    @ApiModelProperty(value = "自提地址")
+    private String pickUpAddress;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "商品名称")
+    private String goodName;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "商品封面图片")
+    private String goodsCoverUrl;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "商品图片")
+    private String goodsUrl;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionInspection.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionInspection.java
new file mode 100644
index 0000000..6729df3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionInspection.java
@@ -0,0 +1,121 @@
+package com.panzhihua.service_equipment.model.dos;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 户外劳工站巡查表
+ * </p>
+ *
+ * @author fengjin
+ * @since 2023-08-25
+ */
+@TableName("union_inspection")
+@Data
+@ApiModel("户外劳工站巡查表")
+public class UnionInspection implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * ,主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @ApiModelProperty(value = "主键")
+    private Integer id;
+
+    /**
+     * 创建人户外劳工站id
+     */
+    @ApiModelProperty(value = "创建人户外劳工站id")
+    private Long createUnionUserId;
+
+    /**
+     * 站点id
+     */
+    @ApiModelProperty(value = "站点id")
+    private Integer siteId;
+
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createUserId;
+
+    /**
+     * 类型(1正常2异常)
+     */
+    @ApiModelProperty(value = "类型(1正常2异常)")
+    private Integer type;
+
+    /**
+     * 内容
+     */
+    @ApiModelProperty(value = "内容")
+    private String content;
+
+    /**
+     * 图片地址
+     */
+    @ApiModelProperty(value = "图片地址")
+    private String url;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private LocalDateTime createAt;
+
+    /**
+     * 标题
+     */
+    @ApiModelProperty(value = "标题")
+    private String title;
+
+    /**
+     * 处理人户外劳工站id
+     */
+    @ApiModelProperty(value = "处理人户外劳工站id")
+    private Integer disposeUnionUserId;
+
+    /**
+     * 处理内容
+     */
+    @ApiModelProperty(value = "处理内容")
+    private String disposeContent;
+
+    /**
+     * 处理时间
+     */
+    @ApiModelProperty(value = "处理时间")
+    private LocalDateTime disposeAt;
+
+    /**
+     * 处理照片地址
+     */
+    @ApiModelProperty(value = "处理照片地址")
+    private String disposeUrl;
+
+    /**
+     * 状态(1未回复2已回复)
+     */
+    @ApiModelProperty(value = "状态(1未接单2已接单3已解决)")
+    private Integer status;
+
+    /**
+     * 创建人电话
+     */
+    @ApiModelProperty(value = "创建人电话")
+    private String createPhone;
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionIntegralRecord.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionIntegralRecord.java
new file mode 100644
index 0000000..7899519
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionIntegralRecord.java
@@ -0,0 +1,95 @@
+package com.panzhihua.service_equipment.model.dos;
+
+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 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;
+
+@TableName("union_integral_record")
+@Data
+@ApiModel("积分明细记录")
+public class UnionIntegralRecord implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @ApiModelProperty(value = "主键id")
+    private String id;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+
+    /**
+     * 积分状态(1开门    2兑换)
+     */
+    @ApiModelProperty(value = "积分状态(1开门    2兑换)")
+    private String integralType;
+
+    /**
+     * 积分状态(1开门    2兑换)
+     */
+    @ApiModelProperty(value = "积分")
+    private String integral;
+
+    /**
+     * 增加1 减少 0
+     */
+    @ApiModelProperty(value = "增加1 减少 0")
+    private String type;
+
+    /**
+     * 积分id
+     */
+    @ApiModelProperty(value = "积分id")
+    private String integralId;
+
+    /**
+     * 用户姓名
+     */
+    @TableField(exist = false)
+    @ApiModelProperty(value = "用户姓名")
+    private String usserName;
+
+
+    /**
+     * 用户姓名
+     */
+    @TableField(exist = false)
+    @ApiModelProperty(value = "用户手机号")
+    private String phone;
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionIntegralRule.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionIntegralRule.java
new file mode 100644
index 0000000..b3477cf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionIntegralRule.java
@@ -0,0 +1,73 @@
+package com.panzhihua.service_equipment.model.dos;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 积分规则表
+ * </p>
+ *
+ * @author fengjin
+ * @since 2023-09-20
+ */
+@TableName("union_integral_rule")
+@Data
+@ApiModel("积分规则表")
+public class UnionIntegralRule implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * ,主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+
+    /**
+     * 积分规则名称
+     */
+    @ApiModelProperty(value = "积分规则名称")
+    private String name;
+
+    /**
+     * 每日开门限制
+     */
+    @ApiModelProperty(value = "每日开门限制")
+    private Integer dayNumber;
+
+    /**
+     * 每次间隔时间限制
+     */
+    @ApiModelProperty(value = "每次间隔时间限制")
+    private Integer timeNumber;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private LocalDateTime createAt;
+
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty(value = "修改时间")
+    private LocalDateTime updateAt;
+
+    /**
+     * 清零时间
+     */
+    @ApiModelProperty(value = "清零时间")
+    private LocalDateTime zeroTime;
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionIntegralRuleRecord.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionIntegralRuleRecord.java
new file mode 100644
index 0000000..2ef8366
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionIntegralRuleRecord.java
@@ -0,0 +1,59 @@
+package com.panzhihua.service_equipment.model.dos;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 积分规则表次数表
+ * </p>
+ *
+ * @author fengjin
+ * @since 2023-09-20
+ */
+@TableName("union_integral_rule_record")
+@Data
+@ApiModel("积分规则表次数表")
+public class UnionIntegralRuleRecord implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * ,主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+
+    /**
+     * 规则id
+     */
+    @ApiModelProperty(value = "规则id")
+    private String ruleId;
+
+    /**
+     * 次数
+     */
+    @ApiModelProperty(value = "次数")
+    private Integer count;
+
+    /**
+     * 积分数
+     */
+    @ApiModelProperty(value = "积分数")
+    private Integer integralNumber;
+
+    /**
+     * 新增时间
+     */
+    @ApiModelProperty(value = "新增时间")
+    private LocalDateTime createAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionIntegralSummarize.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionIntegralSummarize.java
new file mode 100644
index 0000000..2c16dc0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionIntegralSummarize.java
@@ -0,0 +1,63 @@
+package com.panzhihua.service_equipment.model.dos;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+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;
+
+@TableName("union_integral_summarize")
+@Data
+@ApiModel("用户积分总表")
+public class UnionIntegralSummarize implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @ApiModelProperty(value = "主键id")
+    private String id;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+
+
+    /**
+     * 积分
+     */
+    @ApiModelProperty(value = "积分")
+    private String allIntegral;
+
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionOpenDoor.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionOpenDoor.java
new file mode 100644
index 0000000..eabda3a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionOpenDoor.java
@@ -0,0 +1,59 @@
+package com.panzhihua.service_equipment.model.dos;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 开门记录表
+ * </p>
+ *
+ * @author fengjin
+ * @since 2023-09-20
+ */
+@TableName("union_open_door")
+@Data
+@ApiModel("开门记录表")
+public class UnionOpenDoor implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * ,主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @ApiModelProperty(value = "主键")
+    private Long id;
+
+    /**
+     * 站点id
+     */
+    @ApiModelProperty(value = "站点id")
+    private Integer siteId;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = " 创建时间")
+    private LocalDateTime createAt;
+
+    /**
+     * 1 获得积分开门 2 普通开门不活动积分
+     */
+    @ApiModelProperty(value = " 1 获得积分开门 2 普通开门不活动积分")
+    private Integer type;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionOutdoorLaborDynamic.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionOutdoorLaborDynamic.java
new file mode 100644
index 0000000..2369519
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionOutdoorLaborDynamic.java
@@ -0,0 +1,94 @@
+package com.panzhihua.service_equipment.model.dos;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 总工会-户外劳工站-动态
+ * </p>
+ *
+ * @author fengjin
+ * @since 2023-08-21
+ */
+@TableName("union_outdoor_labor_dynamic")
+@Data
+public class UnionOutdoorLaborDynamic implements Serializable {
+
+    /**
+     * ,主键
+     */
+    @ApiModelProperty(value = "主键")
+    private Long id;
+
+    /**
+     * 标题
+     */
+    @ApiModelProperty(value = "标题")
+    private String title;
+
+    /**
+     * 状态 0 待发布 1 已发布
+     */
+    @ApiModelProperty(value = "状态 0 待发布 1 已发布")
+    private Integer status;
+
+    /**
+     * 是否置顶  0 否 1 是
+     */
+    @ApiModelProperty(value = "是否置顶  0 否 1 是")
+    private Integer isTopping;
+
+    /**
+     * 发布时间
+     */
+    @ApiModelProperty(value = " 发布时间")
+    private LocalDateTime publishAt;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private LocalDateTime createAt;
+
+    /**
+     * 修改时间
+     */
+    @ApiModelProperty(value = "修改时间")
+    private LocalDateTime updateAt;
+
+    /**
+     * 动态内容 富文本
+     */
+    @ApiModelProperty(value = "动态内容 富文本")
+    private String content;
+
+    /**
+     * 封面
+     */
+    @ApiModelProperty(value = "封面")
+    private String cover;
+
+    /**
+     * 类型(1.通知公告 2.使用指南 3.工会信息)
+     */
+    @ApiModelProperty(value = "类型(1.通知公告 2.使用指南 3.工会信息)")
+    private Integer type;
+
+    /**
+     * 阅读量
+     */
+    @ApiModelProperty(value = "阅读量")
+    private Integer readNum;
+
+    /**
+     * 图片链接
+     */
+    @ApiModelProperty(value = "图片链接")
+    private String imageUrl;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionOutdoorServiceRange.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionOutdoorServiceRange.java
new file mode 100644
index 0000000..5078f34
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionOutdoorServiceRange.java
@@ -0,0 +1,72 @@
+package com.panzhihua.service_equipment.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.time.LocalDateTime;
+
+/**
+ * <p>
+ * 户外站点分类表
+ * </p>
+ *
+ * @author fengjin
+ * @since 2023-08-23
+ */
+@Data
+@TableName("union_outdoor_service_range")
+public class UnionOutdoorServiceRange implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * ,主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 产品分类名称
+     */
+    private String name;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 是否删除(0否1是)
+     */
+    private Boolean isDel;
+
+    /**
+     * 创建时间
+     */
+    private LocalDateTime createdAt;
+
+    /**
+     * 创建人
+     */
+    private Long createdBy;
+
+    /**
+     * 更新时间
+     */
+    private LocalDateTime updatedAt;
+
+    /**
+     * 更新人
+     */
+    private Long updatedBy;
+
+    /**
+     * 父级id
+     */
+    private Integer parentId;
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionOutdoorSite.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionOutdoorSite.java
new file mode 100644
index 0000000..65301f4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionOutdoorSite.java
@@ -0,0 +1,191 @@
+package com.panzhihua.service_equipment.model.dos;
+
+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.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.util.List;
+
+/**
+ * <p>
+ * 总工会户外劳工站
+ * </p>
+ *
+ * @author fengjin
+ * @since 2023-08-23
+ */
+@TableName("union_outdoor_site")
+@Data
+@ApiModel("总工会户外劳工站")
+public class UnionOutdoorSite implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * 商家名称
+     */
+    @ApiModelProperty(value = "商家名称")
+    private String name;
+
+    /**
+     * 商家logo
+     */
+    @ApiModelProperty(value = "商家logo")
+    private String logo;
+
+    /**
+     * 联系人
+     */
+    @ApiModelProperty(value = "联系人")
+    private String contacts;
+
+    /**
+     * 身份证号
+     */
+    @ApiModelProperty(value = "身份证号")
+    private String idCard;
+
+    /**
+     * 咨询电话
+     */
+    @ApiModelProperty(value = "咨询电话")
+    private String phone;
+
+    /**
+     * 商家地址
+     */
+    @ApiModelProperty(value = "商家地址")
+    private String address;
+
+    /**
+     * 详细地址
+     */
+    @ApiModelProperty(value = "详细地址")
+    private String detailedAddress;
+
+    /**
+     * 纬度
+     */
+    @ApiModelProperty(value = "主键")
+    private String lat;
+
+    /**
+     * 经度
+     */
+    @ApiModelProperty(value = "经度")
+    private String lon;
+
+    /**
+     * 营业开始时间
+     */
+    @ApiModelProperty(value = "营业开始时间")
+    private LocalTime beginAt;
+
+    /**
+     * 营业结束时间
+     */
+    @ApiModelProperty(value = "营业结束时间")
+    private LocalTime endAt;
+
+    /**
+     * 商家介绍
+     */
+    @ApiModelProperty(value = "商家介绍")
+    private String introduction;
+
+    /**
+     * 是否营业中
+     */
+    @ApiModelProperty(value = "是否营业中")
+    private Boolean businessStatus;
+
+    /**
+     * 商家绑定账户id
+     */
+    @ApiModelProperty(value = "商家绑定账户id")
+    private Long userId;
+
+    /**
+     * 咨询量
+     */
+    @ApiModelProperty(value = "咨询量")
+    private Integer consultationVolume;
+
+    /**
+     * 浏览量
+     */
+    @ApiModelProperty(value = "浏览量")
+    private Integer viewNum;
+
+    /**
+     * 是否删除
+     */
+    @ApiModelProperty(value = "是否删除")
+    private Boolean isDel;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private LocalDateTime createdAt;
+
+    /**
+     * 创建人
+     */
+    @ApiModelProperty(value = "创建人")
+    private Long createdBy;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(value = "更新时间")
+    private LocalDateTime updatedAt;
+
+    /**
+     * 更新人
+     */
+    @ApiModelProperty(value = "更新人")
+    private Long updatedBy;
+
+    /**
+     * 区域编码
+     */
+    @ApiModelProperty(value = "区域编码")
+    private String areaCode;
+
+    /**
+     * 手机号
+     */
+    @ApiModelProperty(value = "手机号")
+    private String mobilePhone;
+
+    /**
+     * 服务范围
+     */
+    @ApiModelProperty(value = "服务范围")
+    private String serviceRange;
+
+    /**
+     * 站点环境图(,)分隔
+     */
+    @ApiModelProperty(value = "站点环境图(,)分隔")
+    private String siteEnvironmentUrl;
+
+    /**
+     * 服务列表
+     */
+    @TableField(exist = false)
+    @ApiModelProperty("服务列表")
+    private List<UnionOutdoorServiceRange> unionOutdoorServiceRangeList;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionReport.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionReport.java
new file mode 100644
index 0000000..748e39e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionReport.java
@@ -0,0 +1,117 @@
+package com.panzhihua.service_equipment.model.dos;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 户外劳工站上报表
+ * </p>
+ *
+ * @author fengjin
+ * @since 2023-08-24
+ */
+@TableName("union_report")
+@Data
+@ApiModel("户外劳工站上报表")
+public class UnionReport implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * ,主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @ApiModelProperty(value = "主键")
+    private Integer id;
+
+    /**
+     * 创建人户外劳工站id
+     */
+    @ApiModelProperty(value = "创建人户外劳工站id")
+    private Long createUnionUserId;
+
+    /**
+     * 站点id
+     */
+    @ApiModelProperty(value = "站点id")
+    private Integer siteId;
+
+    /**
+     * 创建人id
+     */
+    @ApiModelProperty(value = "创建人id")
+    private Long createUserId;
+
+
+    /**
+     * 类型(1意见反馈2故障保修)
+     */
+    @ApiModelProperty(value = "类型(1意见反馈2故障保修)")
+    private Integer type;
+
+    /**
+     * 内容
+     */
+    @ApiModelProperty(value = "内容")
+    private String content;
+
+    /**
+     * 图片地址
+     */
+    @ApiModelProperty(value = "图片地址")
+    private String url;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private LocalDateTime createAt;
+
+    /**
+     * 标题
+     */
+    @ApiModelProperty(value = "标题")
+    private String title;
+
+    /**
+     * 处理人户外劳工站id
+     */
+    @ApiModelProperty(value = "处理人户外劳工站id")
+    private Integer disposeUnionUserId;
+
+    /**
+     * 处理内容
+     */
+    @ApiModelProperty(value = "处理内容")
+    private String disposeContent;
+
+    /**
+     * 处理时间
+     */
+    @ApiModelProperty(value = "处理时间")
+    private LocalDateTime disposeAt;
+
+    /**
+     * 处理照片地址
+     */
+    @ApiModelProperty(value = "处理照片地址")
+    private String disposeUrl;
+
+
+    /**
+     * 状态(1未回复2已回复)
+     */
+    @ApiModelProperty(value = "状态(1未回复2已回复)")
+    private Integer  status;
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionShippingAddress.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionShippingAddress.java
new file mode 100644
index 0000000..81b33d1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionShippingAddress.java
@@ -0,0 +1,77 @@
+package com.panzhihua.service_equipment.model.dos;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+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;
+
+@TableName("union_shipping_address")
+@Data
+@ApiModel("收货地址")
+public class UnionShippingAddress implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @ApiModelProperty(value = "主键id")
+    private String id;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+
+    @ApiModelProperty(value = "收货地址")
+    private String address;
+
+    @ApiModelProperty(value = "纬度")
+    private String lat;
+
+    @ApiModelProperty(value = "经度")
+    private String lng;
+
+    @ApiModelProperty(value = "收货人手机号")
+    private String phone;
+
+    @ApiModelProperty(value = "收货人姓名")
+    private String name;
+
+    @ApiModelProperty(value = "是否默认(0 不是    1是)")
+    private String isDefault;
+
+    @ApiModelProperty(value = "性别(0 女士    1先生)")
+    private String gender;
+
+    @ApiModelProperty(value = "楼号门牌")
+    private String houseNum;
+
+    @ApiModelProperty(value = "收货城市")
+    private String city;
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionStore.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionStore.java
new file mode 100644
index 0000000..bd24936
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionStore.java
@@ -0,0 +1,109 @@
+package com.panzhihua.service_equipment.model.dos;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+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;
+
+@TableName("union_store")
+@Data
+@ApiModel("总工会户外劳工站商品表")
+public class UnionStore implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @ApiModelProperty(value = "主键id")
+    private String id;
+    /**
+     * 商品名称
+     */
+    @ApiModelProperty(value = "商品名称")
+    private String goodName;
+    /**
+     * 兑换价格
+     */
+    @ApiModelProperty(value = "兑换价格")
+    private String conversionPrice;
+    /**
+     * 库存
+     */
+    @ApiModelProperty(value = "库存")
+    private String stock;
+    /**
+     * 提货方式(1邮寄  2自提  3邮寄/自提)
+     */
+    @ApiModelProperty(value = "提货方式(1邮寄  2自提  3邮寄/自提)")
+    private String pickGoods;
+    /**
+     * 商品图片
+     */
+    @ApiModelProperty(value = "商品图片")
+    private String goodsUrl;
+    /**
+     * 提货地址
+     */
+    @ApiModelProperty(value = "提货地址")
+    private String pickGoodsAddress;
+    /**
+     * 纬度
+     */
+    @ApiModelProperty(value = "纬度")
+    private String lat;
+    /**
+     * 经度
+     */
+    @ApiModelProperty(value = "经度")
+    private String lng;
+    /**
+     * 商品内容
+     */
+    @ApiModelProperty(value = "商品内容")
+    private String content;
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+    /**
+     * 商品状态(1待审核   2上架  3下架)
+     */
+    @ApiModelProperty(value = "商品状态(1待审核   2上架  3下架)")
+    private String goodsType;
+    /**
+     * 商品编号
+     */
+    @ApiModelProperty(value = "商品编号")
+    private String goodNum;
+
+    /**
+     * 发布人id
+     */
+    @ApiModelProperty(value = "发布人id")
+    private String userId;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    @ApiModelProperty(value = "自提时间")
+    private String openingHours;
+
+    @ApiModelProperty(value = "封面")
+    private String goodsCoverUrl;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "地区名字")
+    private String communityName;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionUser.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionUser.java
new file mode 100644
index 0000000..1d1d3f2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/UnionUser.java
@@ -0,0 +1,182 @@
+package com.panzhihua.service_equipment.model.dos;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 户外劳工站用户
+ * </p>
+ *
+ * @author fengjin
+ * @since 2023-08-24
+ */
+@TableName("union_user")
+@Data
+@ApiModel("总工会户外劳工站")
+public class UnionUser implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    @ApiModelProperty(value = "主键id")
+    private Long id;
+
+    /**
+     * ()
+     */
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    /**
+     *商家名称
+     */
+    @ApiModelProperty(value = "商家名称")
+    private String sex;
+
+    /**
+     * 联系方式
+     */
+    @ApiModelProperty(value = "联系方式")
+    private String phone;
+
+    /**
+     * 人员类型(1、普通工会用户 2、巡查人员 3、站点负责人
+     */
+    @ApiModelProperty(value = "人员类型(1、普通工会用户 2、巡查人员 3、站点负责人 ")
+    private String type;
+
+    /**
+     * 删除标识
+     */
+    @ApiModelProperty(value = "删除标识")
+    private Boolean deleteFlag;
+
+    /**
+     * 备注
+     */
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private LocalDateTime createAt;
+
+    /**
+     * 更新时间
+     */
+    @ApiModelProperty(value = "更新时间")
+    private LocalDateTime updateAt;
+
+    /**
+     * 修改用户
+     */
+    @ApiModelProperty(value = "修改用户")
+    private Long updateBy;
+
+    /**
+     * 创建用户
+     */
+    @ApiModelProperty(value = "创建用户")
+    private Long createBy;
+
+    /**
+     * 认证照片地址
+     */
+    @ApiModelProperty(value = "认证照片地址")
+    private String certifiedPhotoUrl;
+
+    /**
+     * 微信小程序唯一标识
+     */
+    @ApiModelProperty(value = "微信小程序唯一标识")
+    private String openid;
+
+    /**
+     * 身份证号
+     */
+    @ApiModelProperty(value = "身份证号")
+    private String idCard;
+
+    /**
+     * 1 启用 2 禁用
+     */
+    @ApiModelProperty(value = "1 启用 2 禁用")
+    private Integer status;
+
+    /**
+     * 账号
+     */
+    @ApiModelProperty(value = "账号")
+    private String account;
+
+    /**
+     * 昵称
+     */
+    @ApiModelProperty(value = "昵称")
+    private String nickName;
+
+    /**
+     * 密码
+     */
+    @ApiModelProperty(value = "密码")
+    private String password;
+
+    /**
+     * 头像
+     */
+    @ApiModelProperty(value = "头像")
+    private String imageUrl;
+
+    /**
+     * 站点id(普通用户为空)
+     */
+    @ApiModelProperty(value = " 站点id(普通用户为空)")
+    private Integer siteId;
+
+    @ApiModelProperty("花城user_id")
+    private Long userId;
+
+
+    /**
+     * 区域编码
+     */
+    @ApiModelProperty(value = "区域编码")
+    private String areaCode;
+
+    /**
+     * 是否认证
+     */
+    @ApiModelProperty(value = " 是否认证0否1认证")
+    private Integer isAuthenticated;
+
+
+    /**
+     * 认证图片地址
+     */
+    @ApiModelProperty(value = " 认证图片地址")
+    private String authenticatedUrl;
+
+    /**
+     * 认证图片地址(base_64)
+     */
+    @ApiModelProperty(value = " 认证图片地址(base_64)")
+    private String authenticatedUrlBase;
+
+    @ApiModelProperty("总工会h5userId")
+    private Integer unionH5UserId;
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/Users.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/Users.java
new file mode 100644
index 0000000..407e49e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/dos/Users.java
@@ -0,0 +1,222 @@
+package com.panzhihua.service_equipment.model.dos;
+
+
+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;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@TableName("users")
+public class Users  implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id,用于关联
+     */
+    @TableField(value = "usersID")
+    @ApiModelProperty("主键id,用于关联")
+    @TableId(value = "usersID", type = IdType.AUTO)
+    private Integer usersID;
+
+
+    /**
+     * 业务id,uuid类型,用于详情查询
+     */
+    @TableField(value = "serviceID")
+    @ApiModelProperty("业务id,uuid类型,用于详情查询")
+    private String serviceID;
+
+
+    @TableField(value = "createTime")
+    @ApiModelProperty("创建时间")
+    private Date createTime;
+
+
+    @TableField(value = "updateTime")
+    @ApiModelProperty("更新时间")
+    private Date updateTime;
+
+
+    /**
+     * 0正常,1删除
+     */
+    @TableField(value = "deleted")
+    @ApiModelProperty("0正常,1删除")
+    private Integer deleted;
+
+
+    /**
+     * 记录创建人id, 0默认值
+     */
+    @TableField(value = "createBy")
+    @ApiModelProperty("记录创建人id, 0默认值")
+    private Integer createBy;
+
+    /**
+     * 记录更新人id(最后一次),0默认值
+     */
+    @TableField(value = "updateBy")
+    @ApiModelProperty("记录更新人id(最后一次),0默认值")
+    private Integer updateBy;
+
+
+
+    /**
+     * 0正常,1冻结
+     */
+    @TableField(value = "freezeFlag")
+    @ApiModelProperty("0正常,1冻结")
+    private Integer freezeFlag;
+    /**
+     * 微信公开ID
+     */
+    @TableField(value = "openID")
+    @ApiModelProperty("微信公开ID")
+    private String openID;
+    /**
+     * 服务号联合ID
+     */
+    @TableField(value = "unionID")
+    @ApiModelProperty("服务号联合ID")
+    private String unionID;
+    /**
+     * 所属工会的rootID
+     */
+    @TableField(value = "rootID")
+    @ApiModelProperty("所属工会的rootID")
+    private Integer rootID;
+    /**
+     * 所属工会ID,游客0,注册(工会的rootID),会员(基层工会ID)
+     */
+    @TableField(value = "deptID")
+    @ApiModelProperty("所属工会ID,游客0,注册(工会的rootID),会员(基层工会ID)")
+    private Integer deptID;
+    /**
+     * 认证名字
+     */
+    @TableField(value = "uname")
+    @ApiModelProperty("认证名字")
+    private String uname;
+    /**
+     * 认证手机
+     */
+    @TableField(value = "phone")
+    @ApiModelProperty("认证手机")
+    private String phone;
+    /**
+     * 0游客,1注册会员,2认证会员 3区块链域外用户
+     */
+    @TableField(value = "type")
+    @ApiModelProperty("0游客,1注册会员,2认证会员,3区块链域外用户")
+    private Integer type;
+    /**
+     * 审核状态,0未认证(默认值),1认证中(待受理),2认证成功(已归档),4待建档,5拒绝
+     *
+     * @See AuditTypeEnum
+     */
+    @TableField(value = "audit")
+    @ApiModelProperty("审核状态,0未认证(默认值),1认证中(待受理),2认证成功(已归档),4待建档,5拒绝")
+    private Integer audit;
+    /**
+     * 0默认,1农民工
+     */
+    @TableField(value = "peasantFlag")
+    @ApiModelProperty("0默认,1农民工")
+    private Integer peasantFlag;
+    /**
+     * 0默认,1退休职工
+     */
+    @TableField(value = "retireFlag")
+    @ApiModelProperty("0默认,1退休职工")
+    private Integer retireFlag;
+    /**
+     * 卡片类型,0默认,1普通卡,2VIP卡
+     */
+    @TableField(value = "cardType")
+    @ApiModelProperty("卡片类型,0默认,1普通卡,2VIP卡")
+    private Integer cardType;
+    /**
+     * 最后一次审批通过时间戳(unix)
+     */
+    @TableField(value = "auditTimeSort")
+    @ApiModelProperty("最后一次审批通过时间戳(unix)")
+    private Integer auditTimeSort;
+    /**
+     * 认证时间
+     */
+    @TableField(value = "authenticationTime")
+    @ApiModelProperty("认证时间")
+    private Date authenticationTime;
+
+    /**
+     * 注册用户注册时间
+     */
+    @TableField(value = "registrationTime")
+    @ApiModelProperty("注册用户注册时间")
+    private Date registrationTime;
+
+    /**
+     * 是否为同步数据(0 否 1是)
+     */
+    @TableField(value = "syncFlag")
+    @ApiModelProperty("是否为同步数据(0 否 1是)")
+    private Integer syncFlag;
+
+    /**
+     * 省总工会关联ID
+     */
+    @TableField(value = "memberId")
+    @ApiModelProperty("省总工会关联ID")
+    private String memberId;
+
+    /**
+     * 省总工会关联附属信息ID
+     */
+    @TableField(value = "memberPropertyId")
+    @ApiModelProperty("省总工会关联附属信息ID")
+    private String memberPropertyId;
+    /**
+     * 区块链域外用户工会名称
+     */
+    @TableField(value = "unionName")
+    @ApiModelProperty("区块链域外用户工会名称")
+    private String unionName;
+
+
+    /**
+     * 是否区块链注册 默认0否 1已注册
+     */
+    @TableField(value = "isRegister")
+    @ApiModelProperty("是否区块链注册 默认0否 1已注册")
+    private Integer isRegister;
+
+    /**
+     * 是否是区域外用户 0 默认否 1是
+     */
+    @TableField(value = "isOutOfArea")
+    @ApiModelProperty("是否是区域外用户 0 默认否 1是")
+    private Integer isOutOfArea;
+
+    /**
+     * 信息来源 0默认本系统注册 1省总平台注册
+     */
+    @TableField(value = "source")
+    @ApiModelProperty("信息来源 0默认本系统注册 1省总平台注册")
+    private Integer source;
+
+    /**
+     * 是否为新型就业形态劳动者  0否;1是
+     */
+    @TableField(value = "newEmployment")
+    @ApiModelProperty("是否为新型就业形态劳动者  0否;1是")
+    private Integer newEmployment;
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/helper/encrypt/ParammeterInterceptor.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/helper/encrypt/ParammeterInterceptor.java
new file mode 100644
index 0000000..757fd9a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/helper/encrypt/ParammeterInterceptor.java
@@ -0,0 +1,118 @@
+package com.panzhihua.service_equipment.model.helper.encrypt;
+
+import java.lang.reflect.Field;
+import java.sql.PreparedStatement;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Properties;
+
+import org.apache.ibatis.binding.BindingException;
+import org.apache.ibatis.binding.MapperMethod;
+import org.apache.ibatis.executor.parameter.ParameterHandler;
+import org.apache.ibatis.plugin.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.core.annotation.AnnotationUtils;
+import org.springframework.stereotype.Component;
+
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.EncryptQuery;
+import com.panzhihua.common.model.helper.encrypt.EncryptQueryClass;
+import com.panzhihua.common.model.helper.encrypt.IEncryptDecrypt;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 加密拦截器 包含加密字段查询时 的加密步骤
+ * 
+ * @author cedoo
+ * @since 2021-4-1 10:40:52
+ */
+@Intercepts({@Signature(type = ParameterHandler.class, method = "setParameters", args = PreparedStatement.class),})
+@ConditionalOnProperty(value = "domain.encrypt", havingValue = "true")
+@Component
+@Slf4j
+public class ParammeterInterceptor implements Interceptor {
+
+    @Autowired
+    private IEncryptDecrypt encryptDecrypt;
+
+    @Override
+    public Object intercept(Invocation invocation) throws Throwable {
+        // 拦截 ParameterHandler 的 setParameters 方法 动态设置参数
+        if (invocation.getTarget() instanceof ParameterHandler) {
+            ParameterHandler parameterHandler = (ParameterHandler)invocation.getTarget();
+            PreparedStatement ps = (PreparedStatement)invocation.getArgs()[0];
+
+            // 反射获取 参数对像
+            Field parameterField = parameterHandler.getClass().getDeclaredField("parameterObject");
+            parameterField.setAccessible(true);
+            Object parameterObject = parameterField.get(parameterHandler);
+            if (Objects.nonNull(parameterObject)) {
+                Class<?> parameterObjectClass = parameterObject.getClass();
+                EncryptDecryptClass encryptDecryptClass =
+                    AnnotationUtils.findAnnotation(parameterObjectClass, EncryptDecryptClass.class);
+                if (Objects.nonNull(encryptDecryptClass)) {
+                    Field[] declaredFields = parameterObjectClass.getDeclaredFields();
+                    final Object encrypt = encryptDecrypt.encrypt(declaredFields, parameterObject);
+                }
+                /**
+                 * 通过加密字段查询时, 将查询参数中的加密字段加密后查询
+                 */
+                if (parameterObjectClass == MapperMethod.ParamMap.class) {
+                    MapperMethod.ParamMap paramMap = (MapperMethod.ParamMap)parameterObject;
+                    boolean encrypted = false;
+                    try {
+                        /**
+                         * 分页插件,会在分页查询时 进行多次查询,需要判断是否已对加密参数加密,防止多次加密后,查询失败
+                         */
+                        encrypted = paramMap.get("encrypted") != null;
+                    } catch (BindingException be) {
+                        encrypted = false;
+                    }
+                    if (!encrypted) {
+                        Iterator iterator = paramMap.entrySet().iterator();
+                        while (iterator.hasNext()) {
+                            Map.Entry<String, Object> entry = (Map.Entry<String, Object>)iterator.next();
+                            if (entry.getKey().startsWith("param")) {
+                                Object v = entry.getValue();
+                                if (v != null) {
+                                    EncryptQueryClass encryptQueryClass =
+                                        AnnotationUtils.findAnnotation(v.getClass(), EncryptQueryClass.class);
+                                    if (Objects.nonNull(encryptQueryClass)) {
+                                        Field[] declaredFields = v.getClass().getDeclaredFields();
+                                        for (Field field : declaredFields) {
+                                            if (field.isAnnotationPresent(EncryptQuery.class)) {
+                                                try {
+                                                    final Object encrypt =
+                                                        encryptDecrypt.encrypt(new Field[] {field}, v);
+                                                    paramMap.put("encrypted", true);
+                                                } catch (IllegalAccessException e) {
+                                                    e.printStackTrace();
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    }
+
+                }
+
+            }
+        }
+        return invocation.proceed();
+    }
+
+    @Override
+    public Object plugin(Object o) {
+        return Plugin.wrap(o, this);
+    }
+
+    @Override
+    public void setProperties(Properties properties) {
+
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/helper/encrypt/ResultInterceptor.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/helper/encrypt/ResultInterceptor.java
new file mode 100644
index 0000000..6924264
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/helper/encrypt/ResultInterceptor.java
@@ -0,0 +1,78 @@
+package com.panzhihua.service_equipment.model.helper.encrypt;
+
+import java.sql.Statement;
+import java.util.ArrayList;
+import java.util.Objects;
+import java.util.Properties;
+
+import org.apache.ibatis.executor.resultset.ResultSetHandler;
+import org.apache.ibatis.plugin.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.core.annotation.AnnotationUtils;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.IEncryptDecrypt;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 解密拦截器
+ *
+ * @author cedoo
+ * @since 2021-4-1 10:40:52
+ */
+@Intercepts({@Signature(type = ResultSetHandler.class, method = "handleResultSets", args = {Statement.class})})
+@ConditionalOnProperty(value = "domain.decrypt", havingValue = "true")
+@Component
+@Slf4j
+@Order(110)
+public class ResultInterceptor implements Interceptor {
+
+    @Autowired
+    private IEncryptDecrypt encryptDecrypt;
+
+    @Override
+    public Object intercept(Invocation invocation) throws Throwable {
+        Object result = invocation.proceed();
+        if (Objects.isNull(result)) {
+            return null;
+        }
+
+        if (result instanceof ArrayList) {
+            ArrayList resultList = (ArrayList)result;
+            if (resultList != null && resultList.size() > 0 && needToDecrypt(resultList.get(0))) {
+                for (int i = 0; i < resultList.size(); i++) {
+                    encryptDecrypt.decrypt(resultList.get(i));
+                }
+            }
+        } else {
+            if (needToDecrypt(result)) {
+                encryptDecrypt.decrypt(result);
+            }
+        }
+        return result;
+    }
+
+    public boolean needToDecrypt(Object object) {
+        if (object != null) {
+            Class<?> objectClass = object.getClass();
+            EncryptDecryptClass encryptDecryptClass =
+                AnnotationUtils.findAnnotation(objectClass, EncryptDecryptClass.class);
+            return Objects.nonNull(encryptDecryptClass);
+        }
+        return false;
+    }
+
+    @Override
+    public Object plugin(Object target) {
+        return Plugin.wrap(target, this);
+    }
+
+    @Override
+    public void setProperties(Properties properties) {
+
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/helper/sensitive/SensitiveInterceptor.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/helper/sensitive/SensitiveInterceptor.java
new file mode 100644
index 0000000..7fd3ef3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/model/helper/sensitive/SensitiveInterceptor.java
@@ -0,0 +1,73 @@
+package com.panzhihua.service_grid.model.helper.sensitive;
+
+import java.lang.reflect.Field;
+import java.sql.Statement;
+import java.util.List;
+import java.util.stream.Stream;
+
+import org.apache.ibatis.executor.resultset.ResultSetHandler;
+import org.apache.ibatis.plugin.Interceptor;
+import org.apache.ibatis.plugin.Intercepts;
+import org.apache.ibatis.plugin.Invocation;
+import org.apache.ibatis.plugin.Signature;
+import org.apache.ibatis.reflection.MetaObject;
+import org.apache.ibatis.reflection.SystemMetaObject;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+
+import com.panzhihua.common.model.helper.sensitive.Sensitive;
+import com.panzhihua.common.model.helper.sensitive.SensitiveStrategy;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 字段脱敏拦截器
+ * 
+ * @author cedoo
+ * @since 2021-4-1 10:40:52
+ */
+@Intercepts(@Signature(type = ResultSetHandler.class, method = "handleResultSets", args = {Statement.class}))
+@Slf4j
+@ConditionalOnProperty(value = "domain.sensitive", havingValue = "true")
+@Component
+@Order(120)
+public class SensitiveInterceptor implements Interceptor {
+    @SuppressWarnings("unchecked")
+    @Override
+    public Object intercept(Invocation invocation) throws Throwable {
+        // log.debug("脱敏拦截器");
+        List<Object> records = (List<Object>)invocation.proceed();
+        // 对结果集脱敏
+        records.forEach(this::sensitive);
+        return records;
+    }
+
+    private void sensitive(Object source) {
+        if (source != null) {
+            // 拿到返回值类型
+            Class<?> sourceClass = source.getClass();
+            // 初始化返回值类型的 MetaObject
+            MetaObject metaObject = SystemMetaObject.forObject(source);
+            // 捕捉到属性上的标记注解 @Sensitive 并进行对应的脱敏处理
+            Stream.of(sourceClass.getDeclaredFields()).filter(field -> field.isAnnotationPresent(Sensitive.class))
+                .forEach(field -> doSensitive(metaObject, field));
+        }
+    }
+
+    private void doSensitive(MetaObject metaObject, Field field) {
+        // 拿到属性名
+        String name = field.getName();
+        // 获取属性值
+        Object value = metaObject.getValue(name);
+        // 只有字符串类型才能脱敏 而且不能为null
+        if (String.class == metaObject.getGetterType(name) && value != null) {
+            Sensitive annotation = field.getAnnotation(Sensitive.class);
+            // 获取对应的脱敏策略 并进行脱敏
+            SensitiveStrategy type = annotation.strategy();
+            Object o = type.getDesensitizer().apply((String)value);
+            // 把脱敏后的值塞回去
+            metaObject.setValue(name, o);
+        }
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/resolvers/AuthorizationInterceptor.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/resolvers/AuthorizationInterceptor.java
new file mode 100644
index 0000000..3d1d813
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/resolvers/AuthorizationInterceptor.java
@@ -0,0 +1,83 @@
+package com.panzhihua.service_equipment.resolvers;
+
+import com.panzhihua.common.redis.TokenManager;
+import com.panzhihua.common.utlis.Constant;
+import com.panzhihua.service_equipment.annotation.Authorization;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.catalina.connector.ResponseFacade;
+import org.springframework.stereotype.Component;
+import org.springframework.web.method.HandlerMethod;
+import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.lang.reflect.Method;
+import java.nio.charset.StandardCharsets;
+
+
+/**
+ * 自定义拦截器,判断此次请求是否有权限
+ */
+
+/**
+ * 自定义拦截器,判断此次请求是否有权限
+ */
+@Component
+@Slf4j
+public class AuthorizationInterceptor extends HandlerInterceptorAdapter {
+
+
+    @Resource
+    private TokenManager manager;
+
+
+
+    @Override
+    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
+        //如果不是映射到方法直接通过
+        if (!(handler instanceof HandlerMethod)) {
+            return true;
+        }
+
+        HandlerMethod handlerMethod = (HandlerMethod) handler;
+        Method method = handlerMethod.getMethod();
+        Object bean = handlerMethod.getBean();
+        String token;
+        //从header中得到token
+        String header = request.getHeader(Constant.UNION_AUTHORIZATION);
+        request.getHeader(Constant.AUTHORIZATION);
+        if (header != null) {
+            String[] tokens = request.getHeader(Constant.UNION_AUTHORIZATION).split(" ");
+            if (tokens.length >= 2) {
+                token = request.getHeader(Constant.UNION_AUTHORIZATION).split(" ")[1];
+            } else {
+                token = request.getHeader(Constant.UNION_AUTHORIZATION);
+            }
+        } else {
+            token = request.getHeader(Constant.UNION_AUTHORIZATION);
+        }
+        if (manager.checkToken(token)) {
+            //如果token验证成功,权限检查通过,将token对应的用户id存在request中,便于之后注入
+            request.setAttribute(Constant.CURRENT_USER_ID, manager.getUserId(token));
+//            SysUser ss = IUserService.selectData(manager.getUserId(token)+"");
+            return true;
+        }
+        log.info("token{}",token);
+//        if(!StringUtils.isEmpty(token))
+//        {
+        //如果验证token失败,并且方法或类注明了Authorization,返回401错误
+        if (method.getAnnotation(Authorization.class) != null ||
+                bean.getClass().getAnnotation(Authorization.class) != null) {
+            String reponse = "{\"result\": 449, \"message\": \"Overdue token\"}";
+            response.setStatus(200);
+            response.setCharacterEncoding(StandardCharsets.UTF_8.toString());
+            ResponseFacade facade = (ResponseFacade) response;
+            facade.setContentLength(reponse.getBytes(StandardCharsets.UTF_8).length);
+            facade.getWriter().write(reponse);
+            return false;
+        }
+//        }
+        return true;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/resolvers/CurrentUserMethodArgumentResolver.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/resolvers/CurrentUserMethodArgumentResolver.java
new file mode 100644
index 0000000..a35fcf8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/resolvers/CurrentUserMethodArgumentResolver.java
@@ -0,0 +1,56 @@
+package com.panzhihua.service_equipment.resolvers;
+
+import com.panzhihua.common.model.dtos.equipment.UnionUserDto;
+import com.panzhihua.common.utlis.Constant;
+import com.panzhihua.service_equipment.annotation.CurrentUser;
+import com.panzhihua.service_equipment.service.UnionUserService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.core.MethodParameter;
+import org.springframework.stereotype.Component;
+import org.springframework.web.bind.support.WebDataBinderFactory;
+import org.springframework.web.context.request.NativeWebRequest;
+import org.springframework.web.context.request.RequestAttributes;
+import org.springframework.web.method.support.HandlerMethodArgumentResolver;
+import org.springframework.web.method.support.ModelAndViewContainer;
+
+/**
+ * 增加方法注入,将含有CurrentUser注解的方法参数注入当前登录用户
+ */
+@Component
+public class CurrentUserMethodArgumentResolver implements HandlerMethodArgumentResolver {
+
+    @Lazy
+    @Autowired
+    private UnionUserService userService;
+
+//    ComEquipmentUnionUserFeign feignUserService = ComEquipmentUnionUserFeign.getBean(ComEquipmentUnionUserFeign.class);
+
+
+    @Override
+    public boolean supportsParameter(MethodParameter parameter) {
+        //如果参数类型是User并且有CurrentUser注解则支持
+        if (parameter.getParameterType().isAssignableFrom(UnionUserDto.class) &&
+                parameter.hasParameterAnnotation(CurrentUser.class)) {
+            return true;
+        }
+        return false;
+    }
+
+    @Override
+    public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception {
+        //取出鉴权时存入的登录用户Id
+        Long currentUserId = (Long) webRequest.getAttribute(Constant.CURRENT_USER_ID, RequestAttributes.SCOPE_REQUEST);
+        if (currentUserId != null) {
+            //从数据库中查询并返回
+            UnionUserDto sysUser=userService.selectById(currentUserId);
+            if(sysUser!=null)
+            {
+                return sysUser;
+            }
+
+        }
+        return null;
+//        throw new MissingServletRequestPartException(Constant.CURRENT_USER_ID);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionExchangeRecordService.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionExchangeRecordService.java
new file mode 100644
index 0000000..a30fcfc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionExchangeRecordService.java
@@ -0,0 +1,25 @@
+package com.panzhihua.service_equipment.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.model.dtos.equipment.UnionExchangeRecordDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_equipment.model.dos.UnionExchangeRecord;
+
+public interface UnionExchangeRecordService
+{
+    R<IPage<UnionExchangeRecord>> getList(int pageNum, int pageSize, String communityId, String userId,String orderType);
+
+    R<UnionExchangeRecord> getData(String id);
+
+    R insert(UnionExchangeRecordDto item);
+
+
+    R update(UnionExchangeRecordDto item);
+
+    /**
+     * 删除接口
+     * @param id
+     * @return
+     */
+    R delete(String id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionInspectionService.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionInspectionService.java
new file mode 100644
index 0000000..9de5aba
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionInspectionService.java
@@ -0,0 +1,27 @@
+package com.panzhihua.service_equipment.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.model.dtos.equipment.UnionInspectionDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_equipment.model.dos.UnionReport;
+
+public interface UnionInspectionService {
+
+    /**
+     * 新增户外劳工站巡查
+     *
+     * @param unionInspectionDto
+     * @return 新增结果
+     */
+    R add(UnionInspectionDto unionInspectionDto);
+
+
+
+    /**
+     * 分页户外劳工站巡查
+     *
+     * @param unionInspectionDto
+     * @return 动态结果
+     */
+      R<IPage<UnionReport>> query(UnionInspectionDto unionInspectionDto);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionIntegralRecordService.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionIntegralRecordService.java
new file mode 100644
index 0000000..6505582
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionIntegralRecordService.java
@@ -0,0 +1,25 @@
+package com.panzhihua.service_equipment.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.model.dtos.equipment.UnionIntegralRecordDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_equipment.model.dos.UnionIntegralRecord;
+
+public interface UnionIntegralRecordService
+{
+    R<IPage<UnionIntegralRecord>> getList(int pageNum, int pageSize, String communityId, String integralType, String nameOrNum);
+
+    R<UnionIntegralRecord> getData(String id);
+
+    R insert(UnionIntegralRecordDto item);
+
+
+    R update(UnionIntegralRecordDto item);
+
+    /**
+     * 删除接口
+     * @param id
+     * @return
+     */
+    R delete(String id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionIntegralSummarizeService.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionIntegralSummarizeService.java
new file mode 100644
index 0000000..7d0e84f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionIntegralSummarizeService.java
@@ -0,0 +1,27 @@
+package com.panzhihua.service_equipment.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.model.dtos.equipment.UnionIntegralSummarizeDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_equipment.model.dos.UnionIntegralSummarize;
+
+public interface UnionIntegralSummarizeService
+{
+    R<IPage<UnionIntegralSummarize>> getList(int pageNum, int pageSize, String communityId, String userId);
+
+    R<UnionIntegralSummarize> getData(String id);
+
+    R<UnionIntegralSummarize> getUserData(String userId,String communityId);
+
+    R insert(UnionIntegralSummarizeDto item);
+
+
+    R update(UnionIntegralSummarizeDto item);
+
+    /**
+     * 删除接口
+     * @param id
+     * @return
+     */
+    R delete(String id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionOutdoorLaborDynamicService.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionOutdoorLaborDynamicService.java
new file mode 100644
index 0000000..8b0bb08
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionOutdoorLaborDynamicService.java
@@ -0,0 +1,26 @@
+package com.panzhihua.service_equipment.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.model.dtos.equipment.UnionOutdoorLaborDynamicDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_equipment.model.dos.UnionOutdoorLaborDynamic;
+
+public interface UnionOutdoorLaborDynamicService {
+
+    /**
+     * 分页总工会-户外劳工站-动态
+     *
+     * @param unionOutdoorLaborDynamicDto
+     * @return 动态结果
+     */
+    R<IPage<UnionOutdoorLaborDynamic>> query(UnionOutdoorLaborDynamicDto unionOutdoorLaborDynamicDto);
+
+    /**
+     * 查询总工会-户外劳工站-动态
+     *
+     * @param id
+     *            动态 id
+     * @return 查找结果
+     */
+    R<UnionOutdoorLaborDynamic> unionOutdoorLaborDynamicDetails(Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionOutdoorSiteService.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionOutdoorSiteService.java
new file mode 100644
index 0000000..fb04c5d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionOutdoorSiteService.java
@@ -0,0 +1,26 @@
+package com.panzhihua.service_equipment.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.model.dtos.equipment.UnionOutdoorSiteDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_equipment.model.dos.UnionOutdoorSite;
+
+public interface UnionOutdoorSiteService {
+
+    /**
+     * 分页总工会户外劳工站
+     *
+     * @param unionOutdoorSiteDto
+     * @return 动态结果
+     */
+     R<IPage<UnionOutdoorSite>> query(UnionOutdoorSiteDto unionOutdoorSiteDto);
+
+    /**
+     * 查询总工会户外劳工站
+     *
+     * @param id
+     *            户外劳工站 id
+     * @return 查找结果
+     */
+    R<UnionOutdoorSite> unionOutdoorSiteDetails(Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionReportService.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionReportService.java
new file mode 100644
index 0000000..bf766e4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionReportService.java
@@ -0,0 +1,26 @@
+package com.panzhihua.service_equipment.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.model.dtos.equipment.UnionReportDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_equipment.model.dos.UnionReport;
+
+public interface UnionReportService {
+
+    /**
+     * 户外劳工站上报表
+     *
+     * @param unionReportDto
+     * @return 新增结果
+     */
+    R add(UnionReportDto unionReportDto);
+
+
+    /**
+     * 分页户外劳工站上报表
+     *
+     * @param unionReportDto
+     * @return 动态结果
+     */
+     R<IPage<UnionReport>> query(UnionReportDto unionReportDto);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionShippingAddressService.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionShippingAddressService.java
new file mode 100644
index 0000000..c567cf1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionShippingAddressService.java
@@ -0,0 +1,27 @@
+package com.panzhihua.service_equipment.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.model.dtos.equipment.UnionShippingAddressDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_equipment.model.dos.UnionShippingAddress;
+
+public interface UnionShippingAddressService
+{
+    R<IPage<UnionShippingAddress>> getList(int pageNum, int pageSize, String communityId, String userId);
+
+    R<UnionShippingAddress> getData(String id);
+
+    R<UnionShippingAddress> getDefaultData(String userId);
+
+    R insert(UnionShippingAddressDto item);
+
+
+    R update(UnionShippingAddressDto item);
+
+    /**
+     * 删除接口
+     * @param id
+     * @return
+     */
+    R delete(String id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionStoreService.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionStoreService.java
new file mode 100644
index 0000000..6f8afeb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionStoreService.java
@@ -0,0 +1,26 @@
+package com.panzhihua.service_equipment.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.model.dtos.equipment.UnionStoreDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_equipment.model.dos.UnionStore;
+
+public interface UnionStoreService
+{
+    R<IPage<UnionStore>> getList(int pageNum, int pageSize, String communityId, String goodsType, String nameOrNum);
+
+
+    R<UnionStore> getData(String id);
+
+    R insert(UnionStoreDto item);
+
+
+    R update(UnionStoreDto item);
+
+    /**
+     * 删除接口
+     * @param id
+     * @return
+     */
+    R delete(String id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionUserService.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionUserService.java
new file mode 100644
index 0000000..0a39628
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/UnionUserService.java
@@ -0,0 +1,54 @@
+package com.panzhihua.service_equipment.service;
+
+import com.panzhihua.common.model.dtos.equipment.UnionUserDto;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_equipment.model.dos.UnionUser;
+
+import java.util.Map;
+
+public interface UnionUserService {
+
+
+    /**
+     * 总工会户外劳登录
+     *
+     * @param loginUserInfoVO
+     * @return 总工会户外劳共用户
+     */
+     R<UnionUser> login(LoginUserInfoVO loginUserInfoVO);
+
+    /**
+     * 总工会户外劳工站用户认证
+     *
+     * @param unionUserDto
+     * @return 总工会户外劳共用户
+     */
+     R authentication(UnionUserDto unionUserDto);
+
+
+    /**
+     * 总工会户外劳登录(h5)
+     *
+     * @param phone
+     * @return 总工会户外劳共用户
+     */
+     R<Map<String, Object>> loginByUnion(String phone);
+
+
+    /**
+     * 使用id查找用户
+     *
+     * @param id
+     * @return 总工会户外劳共用户
+     */
+    UnionUserDto  selectById(Long id);
+
+    /**
+     * 用户开门
+     *
+     * @return 总工会户外劳共用户
+     */
+    R openDoor(UnionUserDto unionUserDto,String qRCode);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionExchangeRecordServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionExchangeRecordServiceImpl.java
new file mode 100644
index 0000000..760b3c9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionExchangeRecordServiceImpl.java
@@ -0,0 +1,158 @@
+package com.panzhihua.service_equipment.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.equipment.UnionExchangeRecordDto;
+import com.panzhihua.common.model.dtos.equipment.UnionIntegralRecordDto;
+import com.panzhihua.common.model.dtos.equipment.UnionIntegralSummarizeDto;
+import com.panzhihua.common.model.dtos.equipment.UnionStoreDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_equipment.dao.UnionExchangeRecordMapper;
+import com.panzhihua.service_equipment.model.dos.UnionExchangeRecord;
+import com.panzhihua.service_equipment.model.dos.UnionIntegralSummarize;
+import com.panzhihua.service_equipment.model.dos.UnionStore;
+import com.panzhihua.service_equipment.service.UnionExchangeRecordService;
+import com.panzhihua.service_equipment.service.UnionIntegralRecordService;
+import com.panzhihua.service_equipment.service.UnionIntegralSummarizeService;
+import com.panzhihua.service_equipment.service.UnionStoreService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+
+@Service
+@Slf4j
+public class UnionExchangeRecordServiceImpl extends ServiceImpl<UnionExchangeRecordMapper, UnionExchangeRecord>
+        implements UnionExchangeRecordService
+{
+    @Resource
+    private UnionStoreService unionStoreService;
+
+    @Resource
+    private UnionIntegralSummarizeService unionIntegralSummarizeService;
+
+    @Resource
+    private UnionIntegralRecordService unionIntegralRecordService;
+
+    @Override
+    public R getList(int pageNum,int pageSize, String communityId, String userId,String orderType)
+    {
+        Page page=new Page(pageNum,pageSize);
+        return R.ok(baseMapper.getList(page,communityId,userId,orderType));
+    }
+
+    @Override
+    public R getData(String id) {
+        return R.ok(baseMapper.getData(id));
+    }
+
+    @Override
+    public R insert(UnionExchangeRecordDto item)
+    {
+        if(StringUtils.isEmpty(item.getConsignee()))
+        {
+            return R.fail("收货信息不能为空");
+        }
+
+        R<UnionIntegralSummarize> unionIntegralSummarizeR=unionIntegralSummarizeService.getUserData(item.getUserId(),null);
+        //设置站点id
+        item.setCommunityId(unionIntegralSummarizeR.getData().getCommunityId());
+
+        R<UnionStore> unionStoreR = unionStoreService.getData(item.getGoodsId());
+        //库存
+        int stock = Integer.valueOf(unionStoreR.getData().getStock());
+        //购买数量
+        int goodNum = Integer.valueOf(item.getGoodsNum());
+        //单价
+        int conversionPrice = Integer.valueOf(unionStoreR.getData().getConversionPrice());
+
+        if (stock<goodNum)
+        {
+            return R.fail("商品库存不足!");
+        }
+
+        int allPrice=goodNum*conversionPrice;
+
+        if(Integer.valueOf(unionIntegralSummarizeR.getData().getAllIntegral())<allPrice)
+        {
+            return R.fail("用户积分不足!");
+        }
+
+        //扣除用户积分
+        int num1=Integer.valueOf(unionIntegralSummarizeR.getData().getAllIntegral())-allPrice;
+        UnionIntegralSummarizeDto dto=new UnionIntegralSummarizeDto();
+        dto.setId(unionIntegralSummarizeR.getData().getId());
+        dto.setAllIntegral(num1+"");
+        unionIntegralSummarizeService.update(dto);
+
+
+        //修改商品库存
+        UnionStoreDto unionStoreDto=new UnionStoreDto();
+        unionStoreDto.setId(unionStoreR.getData().getId());
+        stock=stock-goodNum;
+        unionStoreDto.setStock(stock+"");
+        unionStoreService.update(unionStoreDto);
+
+        //新增积分明细记录
+        UnionIntegralRecordDto unionIntegralRecordDto=new UnionIntegralRecordDto();
+        unionIntegralRecordDto.setIntegral(allPrice+"");
+        unionIntegralRecordDto.setIntegralType("2");
+        unionIntegralRecordDto.setUserId(item.getUserId());
+        unionIntegralRecordDto.setCommunityId(unionIntegralSummarizeR.getData().getCommunityId());
+        unionIntegralRecordDto.setType("0");
+        unionIntegralRecordService.insert(unionIntegralRecordDto);
+
+
+        item.setOrderNum(Snowflake.getId()+"");
+        //判断是否是邮寄
+        if(StringUtils.equals("1",item.getPickUpMethod()))
+        {
+            item.setOrderType("1");
+        }
+        else
+        {
+            item.setOrderType("3");
+        }
+        item.setPlayIntegral(allPrice+"");
+
+        int num= baseMapper.insert(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R update(UnionExchangeRecordDto item)
+    {
+        int num= baseMapper.update(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R delete(String id)
+    {
+        UnionExchangeRecord unionExchangeRecord=baseMapper.getData(id);
+
+        if(StringUtils.equals("3",unionExchangeRecord.getOrderType())
+                ||  StringUtils.equals("4",unionExchangeRecord.getOrderType()) )
+        {
+            return R.fail("订单不能删除");
+        }
+
+        int num= baseMapper.delete(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionInspectionServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionInspectionServiceImpl.java
new file mode 100644
index 0000000..9bbd780
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionInspectionServiceImpl.java
@@ -0,0 +1,84 @@
+package com.panzhihua.service_equipment.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.model.dtos.equipment.UnionInspectionDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_equipment.dao.UnionInspectionMapper;
+import com.panzhihua.service_equipment.dao.UnionUserMapper;
+import com.panzhihua.service_equipment.model.dos.UnionInspection;
+import com.panzhihua.service_equipment.model.dos.UnionReport;
+import com.panzhihua.service_equipment.model.dos.UnionUser;
+import com.panzhihua.service_equipment.service.UnionInspectionService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.time.LocalDateTime;
+
+@Slf4j
+@Service
+public class UnionInspectionServiceImpl extends ServiceImpl<UnionInspectionMapper, UnionInspection> implements UnionInspectionService {
+
+    @Resource
+    private UnionUserMapper unionUserMapper;
+
+
+    /**
+     * 新增户外劳工站巡查
+     *
+     * @param unionInspectionDto
+     * @return 新增结果
+     */
+    @Override
+    public R add(UnionInspectionDto unionInspectionDto) {
+        UnionInspection unionInspection = new UnionInspection();
+        BeanUtils.copyProperties(unionInspectionDto, unionInspection);
+        UnionUser unionUser=null;
+        if (unionInspectionDto.getIsApplets().equals(1))
+        {
+            unionUser = unionUserMapper
+                .selectOne(new QueryWrapper<UnionUser>().eq("user_id", unionInspection.getCreateUserId()));
+        }else if (unionInspectionDto.getIsApplets().equals(3)) {
+            unionUser = unionUserMapper
+                    .selectOne(new QueryWrapper<UnionUser>().eq("id", unionInspection.getCreateUnionUserId()));
+        }
+        if (unionUser!=null){
+            unionInspection.setCreateUnionUserId(unionUser.getId());
+            unionInspection.setCreatePhone(unionUser.getPhone());
+        }
+        unionInspection.setStatus(1);
+        unionInspection.setCreateAt(LocalDateTime.now());
+        if (baseMapper.insert(unionInspection) > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 分页户外劳工站巡查
+     *
+     * @param unionInspectionDto
+     * @return 动态结果
+     */
+    @Override
+    public R<IPage<UnionReport>> query(UnionInspectionDto unionInspectionDto) {
+        Page page = new Page(unionInspectionDto.getPageNum(), unionInspectionDto.getPageSize());
+        QueryWrapper<UnionInspection> unionOutdoorLaborDynamicQueryWrapper = new QueryWrapper<>();
+        if (unionInspectionDto.getIsApplets().equals(1)){
+            unionOutdoorLaborDynamicQueryWrapper.eq("create_user_id",unionInspectionDto.getCreateUserId()).eq("type",2);
+            if (unionInspectionDto.getStatus()!=null)
+                unionOutdoorLaborDynamicQueryWrapper.eq("status",unionInspectionDto.getStatus());
+        }else if(unionInspectionDto.getIsApplets().equals(3)){
+            unionOutdoorLaborDynamicQueryWrapper.eq("create_union_user_id",unionInspectionDto.getCreateUnionUserId()).eq("type",2);
+            if (unionInspectionDto.getStatus()!=null)
+                unionOutdoorLaborDynamicQueryWrapper.eq("status",unionInspectionDto.getStatus());
+        }
+        Page pageResult = baseMapper.selectPage(page, unionOutdoorLaborDynamicQueryWrapper);
+        pageResult.setTotal(pageResult.getRecords().size());
+        return R.ok(pageResult);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionIntegralRecordServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionIntegralRecordServiceImpl.java
new file mode 100644
index 0000000..6428f53
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionIntegralRecordServiceImpl.java
@@ -0,0 +1,64 @@
+package com.panzhihua.service_equipment.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.equipment.UnionIntegralRecordDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_equipment.dao.UnionIntegralRecordMapper;
+import com.panzhihua.service_equipment.model.dos.UnionIntegralRecord;
+import com.panzhihua.service_equipment.service.UnionIntegralRecordService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+
+@Service
+@Slf4j
+public class UnionIntegralRecordServiceImpl extends ServiceImpl<UnionIntegralRecordMapper, UnionIntegralRecord>
+        implements UnionIntegralRecordService
+{
+
+    @Override
+    public R getList(int pageNum,int pageSize, String communityId, String integralType, String nameOrNum)
+    {
+        Page page=new Page(pageNum,pageSize);
+        return R.ok(baseMapper.getList(page,communityId,integralType,nameOrNum));
+    }
+
+    @Override
+    public R getData(String id) {
+        return R.ok(baseMapper.getData(id));
+    }
+
+    @Override
+    public R insert(UnionIntegralRecordDto item)
+    {
+        int num= baseMapper.insertOne(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R update(UnionIntegralRecordDto item)
+    {
+        int num= baseMapper.updateOne(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R delete(String id)
+    {
+        int num= baseMapper.delete(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionIntegralSummarizeServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionIntegralSummarizeServiceImpl.java
new file mode 100644
index 0000000..2bace09
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionIntegralSummarizeServiceImpl.java
@@ -0,0 +1,69 @@
+package com.panzhihua.service_equipment.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.equipment.UnionIntegralSummarizeDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_equipment.dao.UnionIntegralSummarizeMapper;
+import com.panzhihua.service_equipment.model.dos.UnionIntegralSummarize;
+import com.panzhihua.service_equipment.service.UnionIntegralSummarizeService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+
+@Service
+@Slf4j
+public class UnionIntegralSummarizeServiceImpl extends ServiceImpl<UnionIntegralSummarizeMapper, UnionIntegralSummarize>
+        implements UnionIntegralSummarizeService
+{
+
+    @Override
+    public R getList(int pageNum,int pageSize, String communityId, String userId)
+    {
+        Page page=new Page(pageNum,pageSize);
+        return R.ok(baseMapper.getList(page,communityId,userId));
+    }
+
+    @Override
+    public R getData(String id) {
+        return R.ok(baseMapper.getData(id));
+    }
+
+    @Override
+    public R getUserData(String userId, String communityId) {
+        return R.ok(baseMapper.getUserData(userId,communityId));
+    }
+
+    @Override
+    public R insert(UnionIntegralSummarizeDto item)
+    {
+        int num= baseMapper.insert(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R update(UnionIntegralSummarizeDto item)
+    {
+        int num= baseMapper.update(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R delete(String id)
+    {
+        int num= baseMapper.delete(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionOutdoorLaborDynamicServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionOutdoorLaborDynamicServiceImpl.java
new file mode 100644
index 0000000..09a25fc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionOutdoorLaborDynamicServiceImpl.java
@@ -0,0 +1,65 @@
+package com.panzhihua.service_equipment.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.model.dtos.equipment.UnionOutdoorLaborDynamicDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_equipment.dao.UnionOutdoorLaborDynamicMapper;
+import com.panzhihua.service_equipment.model.dos.UnionOutdoorLaborDynamic;
+import com.panzhihua.service_equipment.service.UnionOutdoorLaborDynamicService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+@Slf4j
+@Service
+public class UnionOutdoorLaborDynamicServiceImpl extends ServiceImpl<UnionOutdoorLaborDynamicMapper, UnionOutdoorLaborDynamic> implements UnionOutdoorLaborDynamicService {
+
+
+    /**
+     * 分页总工会-户外劳工站-动态
+     *
+     * @param unionOutdoorLaborDynamicDto
+     * @return 动态结果
+     */
+    @Override
+    public R<IPage<UnionOutdoorLaborDynamic>> query(UnionOutdoorLaborDynamicDto unionOutdoorLaborDynamicDto) {
+        Page page = new Page(unionOutdoorLaborDynamicDto.getPageNum(), unionOutdoorLaborDynamicDto.getPageSize());
+        QueryWrapper<UnionOutdoorLaborDynamic> unionOutdoorLaborDynamicQueryWrapper = new QueryWrapper<>();
+        if (unionOutdoorLaborDynamicDto.getType() != null) {
+            switch (unionOutdoorLaborDynamicDto.getType()) {
+                case 1:
+                case 2:
+                case 3:
+                case 4:
+                    unionOutdoorLaborDynamicQueryWrapper.eq("type",unionOutdoorLaborDynamicDto.getType());
+                    break;
+            }
+        }
+        Page pageResult = baseMapper.selectPage(page, unionOutdoorLaborDynamicQueryWrapper);
+        pageResult.setTotal(pageResult.getRecords().size());
+        return R.ok(pageResult);
+    }
+
+    /**
+     * 查询总工会-户外劳工站-动态
+     *
+     * @param id
+     *            动态 id
+     * @return 查找结果
+     */
+
+    @Override
+    public R<UnionOutdoorLaborDynamic> unionOutdoorLaborDynamicDetails(Long id) {
+        UnionOutdoorLaborDynamic unionOutdoorLaborDynamic = baseMapper.selectById(id);
+        if (unionOutdoorLaborDynamic != null) {
+//            UnionOutdoorLaborDynamic unionOutdoorLaborDynamic1 = new ComActEasyPhotoTypeDetailsVO();
+//            BeanUtils.copyProperties(unionOutdoorLaborDynamic, comActEasyPhotoTypeDetailsVO);
+            unionOutdoorLaborDynamic.setReadNum(unionOutdoorLaborDynamic.getReadNum()+1);
+            baseMapper.updateById(unionOutdoorLaborDynamic);
+            return R.ok(unionOutdoorLaborDynamic);
+        }
+        return R.fail();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionOutdoorSiteServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionOutdoorSiteServiceImpl.java
new file mode 100644
index 0000000..dc554e4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionOutdoorSiteServiceImpl.java
@@ -0,0 +1,64 @@
+package com.panzhihua.service_equipment.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.model.dtos.equipment.UnionOutdoorSiteDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_equipment.dao.UnionOutdoorServiceRangeMapper;
+import com.panzhihua.service_equipment.dao.UnionOutdoorSiteMapper;
+import com.panzhihua.service_equipment.model.dos.UnionOutdoorServiceRange;
+import com.panzhihua.service_equipment.model.dos.UnionOutdoorSite;
+import com.panzhihua.service_equipment.service.UnionOutdoorSiteService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@Service
+public class UnionOutdoorSiteServiceImpl extends ServiceImpl<UnionOutdoorSiteMapper, UnionOutdoorSite> implements UnionOutdoorSiteService {
+
+    @Resource
+    private UnionOutdoorServiceRangeMapper unionOutdoorServiceRangeMapper;
+
+
+    /**
+     * 分页总工会户外劳工站
+     *
+     * @param unionOutdoorSiteDto
+     * @return 动态结果
+     */
+    @Override
+    public R<IPage<UnionOutdoorSite>> query(UnionOutdoorSiteDto unionOutdoorSiteDto) {
+        Page page = new Page(unionOutdoorSiteDto.getPageNum(), unionOutdoorSiteDto.getPageSize());
+        QueryWrapper<UnionOutdoorSite> unionOutdoorLaborDynamicQueryWrapper = new QueryWrapper<>();
+        if (unionOutdoorSiteDto.getAreaCode()!=null)
+            unionOutdoorLaborDynamicQueryWrapper.eq("area_code",unionOutdoorSiteDto.getAreaCode());
+        if (unionOutdoorSiteDto.getKeyWord()!=null)
+            unionOutdoorLaborDynamicQueryWrapper.and(wrapper -> wrapper.like("name", unionOutdoorSiteDto.getKeyWord())
+                    .or()
+                    .like("introduction", unionOutdoorSiteDto.getKeyWord())
+                    .or()
+                    .like("detailed_address", unionOutdoorSiteDto.getKeyWord()));
+
+        Page pageResult = baseMapper.selectPage(page, unionOutdoorLaborDynamicQueryWrapper);
+        pageResult.setTotal(pageResult.getRecords().size());
+        return R.ok(pageResult);
+    }
+
+    @Override
+    public R<UnionOutdoorSite> unionOutdoorSiteDetails(Long id) {
+        UnionOutdoorSite unionOutdoorSite = baseMapper.selectById(id);
+        if (unionOutdoorSite != null) {
+            unionOutdoorSite.setViewNum(unionOutdoorSite.getViewNum()+1);
+            baseMapper.updateById(unionOutdoorSite);
+            QueryWrapper<UnionOutdoorServiceRange> queryWrapper = new QueryWrapper<>();
+            queryWrapper.inSql("id", "SELECT service_range_id FROM union_outdoor_site_service_range WHERE site_id = " + id);
+            unionOutdoorSite.setUnionOutdoorServiceRangeList(unionOutdoorServiceRangeMapper.selectList(queryWrapper));
+            return R.ok(unionOutdoorSite);
+        }
+        return R.fail();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionReportServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionReportServiceImpl.java
new file mode 100644
index 0000000..dee3a6b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionReportServiceImpl.java
@@ -0,0 +1,86 @@
+package com.panzhihua.service_equipment.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.model.dtos.equipment.UnionReportDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_equipment.dao.UnionReportMapper;
+import com.panzhihua.service_equipment.dao.UnionUserMapper;
+import com.panzhihua.service_equipment.model.dos.UnionReport;
+import com.panzhihua.service_equipment.model.dos.UnionUser;
+import com.panzhihua.service_equipment.service.UnionReportService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.time.LocalDateTime;
+
+@Service
+@Slf4j
+public class UnionReportServiceImpl extends ServiceImpl<UnionReportMapper, UnionReport> implements UnionReportService {
+
+    @Resource
+    private UnionUserMapper unionUserMapper;
+
+
+    /**
+     * 户外劳工站上报表
+     *
+     * @param unionReportDto
+     * @return 新增结果
+     */
+    @Override
+    public R add(UnionReportDto unionReportDto) {
+        UnionReport unionReport = new UnionReport();
+        BeanUtils.copyProperties(unionReportDto, unionReport);
+        UnionUser unionUser=null;
+        if (unionReportDto.getIsApplets().equals(1))
+        {
+            unionUser = unionUserMapper
+                    .selectOne(new QueryWrapper<UnionUser>().eq("user_id", unionReportDto.getCreateUserId()));
+        }else if (unionReportDto.getIsApplets().equals(3)) {
+            unionUser = unionUserMapper
+                    .selectOne(new QueryWrapper<UnionUser>().eq("id", unionReportDto.getCreateUnionUserId()));
+        }
+        if (unionUser!=null)
+            unionReport.setCreateUnionUserId(unionUser.getId());
+        unionReport.setStatus(1);
+        unionReport.setCreateAt(LocalDateTime.now());
+        if (baseMapper.insert(unionReport) > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 分页户外劳工站上报表
+     *
+     * @param unionReportDto
+     * @return 动态结果
+     */
+    @Override
+    public R<IPage<UnionReport>> query(UnionReportDto unionReportDto) {
+        Page page = new Page(unionReportDto.getPageNum(), unionReportDto.getPageSize());
+        QueryWrapper<UnionReport> unionOutdoorLaborDynamicQueryWrapper = new QueryWrapper<>();
+        if (unionReportDto.getIsApplets().equals(1)){
+            unionOutdoorLaborDynamicQueryWrapper.eq("create_user_id",unionReportDto.getCreateUserId());
+            if (unionReportDto.getType()!=null)
+                unionOutdoorLaborDynamicQueryWrapper.eq("type",unionReportDto.getType());
+            if (unionReportDto.getStatus()!=null)
+                unionOutdoorLaborDynamicQueryWrapper.eq("status",unionReportDto.getStatus());
+        }else if(unionReportDto.getIsApplets().equals(3)){
+            unionOutdoorLaborDynamicQueryWrapper.eq("create_union_user_id",unionReportDto.getCreateUnionUserId()).eq("type",unionReportDto.getType());
+            if (unionReportDto.getStatus()!=null)
+                unionOutdoorLaborDynamicQueryWrapper.eq("status",unionReportDto.getStatus());
+            if (unionReportDto.getType()!=null)
+                unionOutdoorLaborDynamicQueryWrapper.eq("type",unionReportDto.getType());
+        }
+        Page pageResult = baseMapper.selectPage(page, unionOutdoorLaborDynamicQueryWrapper);
+        pageResult.setTotal(pageResult.getRecords().size());
+        return R.ok(pageResult);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionShippingAddressServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionShippingAddressServiceImpl.java
new file mode 100644
index 0000000..0774eda
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionShippingAddressServiceImpl.java
@@ -0,0 +1,96 @@
+package com.panzhihua.service_equipment.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.equipment.UnionShippingAddressDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_equipment.dao.UnionShippingAddressMapper;
+import com.panzhihua.service_equipment.model.dos.UnionShippingAddress;
+import com.panzhihua.service_equipment.service.UnionShippingAddressService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+
+@Service
+@Slf4j
+public class UnionShippingAddressServiceImpl extends ServiceImpl<UnionShippingAddressMapper, UnionShippingAddress>
+        implements UnionShippingAddressService
+{
+
+    @Override
+    public R getList(int pageNum,int pageSize, String communityId, String userId)
+    {
+        Page page=new Page(pageNum,pageSize);
+        return R.ok(baseMapper.getList(page,communityId,userId));
+    }
+
+    @Override
+    public R getData(String id) {
+        return R.ok(baseMapper.getData(id));
+    }
+
+    @Override
+    public R<UnionShippingAddress> getDefaultData(String userId) {
+        return R.ok(baseMapper.getDefaultData(userId));
+    }
+
+    @Override
+    public R insert(UnionShippingAddressDto item)
+    {
+        if(StringUtils.equals("true",item.getIsDefault()+""))
+        {
+            UnionShippingAddress unionShippingAddress=baseMapper.getDefaultData(item.getUserId());
+            if(unionShippingAddress!=null)
+            {
+                UnionShippingAddressDto dto=new UnionShippingAddressDto();
+                dto.setId(unionShippingAddress.getId());
+                dto.setIsDefault("false");
+                baseMapper.update(dto);
+            }
+        }
+
+        int num= baseMapper.insert(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R update(UnionShippingAddressDto item)
+    {
+
+        if(StringUtils.equals("true",item.getIsDefault()+""))
+        {
+            UnionShippingAddress unionShippingAddress=baseMapper.getDefaultData(item.getUserId());
+            if(unionShippingAddress!=null)
+            {
+                UnionShippingAddressDto dto=new UnionShippingAddressDto();
+                dto.setId(unionShippingAddress.getId());
+                dto.setIsDefault("false");
+                baseMapper.update(dto);
+            }
+        }
+
+
+        int num= baseMapper.update(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R delete(String id)
+    {
+        int num= baseMapper.delete(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionStoreServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionStoreServiceImpl.java
new file mode 100644
index 0000000..c97ab0d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionStoreServiceImpl.java
@@ -0,0 +1,63 @@
+package com.panzhihua.service_equipment.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.equipment.UnionStoreDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_equipment.dao.UnionStoreMapper;
+import com.panzhihua.service_equipment.model.dos.UnionStore;
+import com.panzhihua.service_equipment.service.UnionStoreService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+
+@Service
+@Slf4j
+public class UnionStoreServiceImpl extends ServiceImpl<UnionStoreMapper, UnionStore> implements UnionStoreService
+{
+
+    @Override
+    public R getList(int pageNum,int pageSize, String communityId, String goodsType, String nameOrNum)
+    {
+        Page page=new Page(pageNum,pageSize);
+        return R.ok(baseMapper.getList(page,communityId,goodsType,nameOrNum));
+    }
+
+    @Override
+    public R getData(String id) {
+        return R.ok(baseMapper.getData(id));
+    }
+
+    @Override
+    public R insert(UnionStoreDto item)
+    {
+        int num= baseMapper.insert(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R update(UnionStoreDto item)
+    {
+        int num= baseMapper.update(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R delete(String id)
+    {
+        int num= baseMapper.delete(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionUserServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionUserServiceImpl.java
new file mode 100644
index 0000000..f565bca
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/service/impl/UnionUserServiceImpl.java
@@ -0,0 +1,311 @@
+package com.panzhihua.service_equipment.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.equipment.UnionUserDto;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.redis.TokenManager;
+import com.panzhihua.service_equipment.dao.*;
+import com.panzhihua.service_equipment.model.dos.*;
+import com.panzhihua.service_equipment.until.AccessUtil;
+import com.panzhihua.service_equipment.service.UnionUserService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service
+@Slf4j
+public class UnionUserServiceImpl extends ServiceImpl<UnionUserMapper, UnionUser> implements UnionUserService {
+
+    @Resource
+    private AccessUtil accessUtil;
+
+    @Resource
+    private UnionAccessMapper unionAccessMapper;
+
+    @Resource
+    private UsersMapper usersMapper;
+
+    @Resource
+    private TokenManager tokenManager;
+
+    @Resource
+    private UnionOpenDoorMapper unionOpenDoorMapper;
+
+    @Resource
+    private UnionIntegralRuleMapper unionIntegralRuleMapper;
+
+    @Resource
+    private  UnionIntegralRuleRecordMapper unionIntegralRuleRecordMapper;
+
+    @Resource
+    private  UnionIntegralSummarizeMapper unionIntegralSummarizeMapper;
+
+    @Resource
+    private  UnionOutdoorSiteMapper unionOutdoorSiteMapper;
+
+    @Resource
+    private  UnionIntegralRecordMapper unionIntegralRecordMapper;
+
+    /**
+     * 总工会户外劳登录
+     *
+     * @param loginUserInfoVO
+     * @return 总工会户外劳共用户
+     */
+    @Override
+    public R<UnionUser> login(LoginUserInfoVO loginUserInfoVO) {
+        UnionUser unionUser = baseMapper.selectOne(new QueryWrapper<UnionUser>().eq("user_id", loginUserInfoVO.getUserId()));
+        if (unionUser != null) {
+            return R.ok(unionUser);
+        } else {
+            unionUser = new UnionUser();
+            unionUser.setSex(loginUserInfoVO.getSex().toString());
+            unionUser.setPhone(loginUserInfoVO.getPhone());
+            unionUser.setDeleteFlag(false);
+            unionUser.setCreateAt(LocalDateTime.now());
+            unionUser.setUpdateAt(LocalDateTime.now());
+            unionUser.setStatus(1);
+            unionUser.setNickName(loginUserInfoVO.getNickName());
+            unionUser.setUserId(loginUserInfoVO.getUserId());
+            if (loginUserInfoVO.getImageUrl() != null)
+                unionUser.setImageUrl(loginUserInfoVO.getImageUrl());
+            int insert = baseMapper.insert(unionUser);
+            if (insert > 0) {
+                return R.ok(unionUser);
+            } else {
+                return R.fail();
+            }
+        }
+
+    }
+
+    /**
+     * 总工会户外劳登录(h5)
+     *
+     * @param phone
+     * @return 总工会户外劳共用户
+     */
+    @Override
+    public  R<Map<String, Object>> loginByUnion(String phone){
+        Map<String, Object> mapUser = new HashMap<>();
+        Users users = usersMapper.selectOne(new QueryWrapper<Users>()
+                .eq("phone", phone)
+                .eq("deleted", 0)
+                .eq("freezeFlag", 0)
+                .orderByDesc("updateTime")
+                .last("limit 1"));
+        if (users!=null){
+            UnionUser unionUser = baseMapper.selectOne(new QueryWrapper<UnionUser>().eq("union_h5_user_id", users.getUsersID()));
+            if (unionUser!=null){
+                String token = tokenManager.getTokenByUserId(unionUser.getId().toString());
+//                String token=null;
+                if (token == null) {
+                    //生成一个token,保存用户登录状态
+                    token = tokenManager.createToken(unionUser.getId().toString(), unionUser.getId().toString());
+                }
+                mapUser.put("token", token);
+                mapUser.put("unionUser",unionUser);
+                log.info("mapUser{}",mapUser);
+                return R.ok(mapUser);
+            }
+            else {
+                unionUser=new UnionUser();
+                unionUser.setPhone(users.getPhone());
+                unionUser.setDeleteFlag(false);
+                unionUser.setCreateAt(LocalDateTime.now());
+                unionUser.setUpdateAt(LocalDateTime.now());
+                unionUser.setStatus(1);
+                unionUser.setNickName(users.getUname());
+                unionUser.setUnionH5UserId(users.getUsersID());
+                int insert = baseMapper.insert(unionUser);
+                if (insert >0){
+                    unionUser = baseMapper.selectOne(new QueryWrapper<UnionUser>().eq("union_h5_user_id", users.getUsersID()));
+                    if (unionUser!=null){
+                        String token = tokenManager.getTokenByUserId(unionUser.getId().toString());
+                        if (token == null) {
+                            //生成一个token,保存用户登录状态
+                            token = tokenManager.createToken(unionUser.getId().toString(), unionUser.getId().toString());
+                        }
+                        mapUser.put("token", token);
+                        mapUser.put("unionUser",unionUser);
+                        log.info("mapUser{}",mapUser);
+                        return  R.ok(mapUser);
+                    }
+
+                }
+
+            }
+            return R.fail("新增用户失败请查看是否在川共之家登录");
+        }else {
+           log.info("总工会数据库没有人物");
+           return  R.fail("数据错误,请先在川共之家登录");
+        }
+
+    }
+
+    /**
+     * 使用id查找用户
+     *
+     * @param id
+     * @return 总工会户外劳共用户
+     */
+    @Override
+    public UnionUserDto  selectById(Long id){
+        UnionUserDto unionUserDto=new UnionUserDto();
+        UnionUser unionUser = baseMapper.selectById(id);
+        BeanUtils.copyProperties(unionUser, unionUserDto);
+        return  unionUserDto;
+    }
+
+
+    /**
+     * 总工会户外劳工站用户认证
+     *
+     * @param unionUserDto
+     * @return 总工会户外劳共用户
+     */
+
+    @Override
+    public R authentication(UnionUserDto unionUserDto){
+        UnionUser unionUser=null;
+        if (unionUserDto.getIsApplets().equals(1))
+            unionUser = baseMapper.selectOne(new QueryWrapper<UnionUser>().eq("user_id", unionUserDto.getUserId()));
+        else
+            unionUser = baseMapper.selectOne(new QueryWrapper<UnionUser>().eq("id", unionUserDto.getId()));
+        if (unionUser != null){
+            log.info("查询到用户开始认证操作{}",unionUser);
+            //设备下发照片代码
+            LambdaQueryWrapper<UnionAccess> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper.inSql(UnionAccess::getSiteId, "SELECT id FROM union_outdoor_site WHERE area_code='" + unionUserDto.getAreaCode() + "'");
+            List<UnionAccess> unionAccesses = unionAccessMapper.selectList(queryWrapper);
+            for (UnionAccess unionAccess : unionAccesses) {
+                try {
+                    log.info("人脸注册");
+                    accessUtil.faceEnroll(unionUser.getPhone(), unionUserDto.getName(), unionUserDto.getAuthenticatedUrlBase(), unionAccess.getCommunityExternalId(), unionAccess.getUnitId());
+                } catch (Exception e) {
+                    // 处理异常
+                    e.printStackTrace();
+                    return R.fail("认证失败,请验证照片是否符合规范或者联系工作人员"); // 或者抛出自定义异常,根据实际情况进行处理
+                }
+            }
+            //更改数据库
+            unionUser.setName(unionUserDto.getName());
+            unionUser.setIdCard(unionUserDto.getIdCard());
+            unionUser.setAreaCode(unionUserDto.getAreaCode());
+            unionUser.setAuthenticatedUrl(unionUserDto.getAuthenticatedUrl());
+            unionUser.setAuthenticatedUrlBase(unionUserDto.getAuthenticatedUrlBase());
+            unionUser.setIsAuthenticated(1);
+            int i = baseMapper.updateById(unionUser);
+            if (i>0){
+                return R.ok("认证成功");
+            }
+            else {
+                return  R.fail("认证失败");
+            }
+        }
+        else {
+            log.info("未查询到用户");
+            return  R.fail("认证失败");
+        }
+
+    }
+
+
+    /**
+     * 用户开门
+     *
+     * @return 总工会户外劳共用户
+     */
+    @Override
+    public  R openDoor(UnionUserDto unionUserDto,String qRCode){
+        log.info("开始开门当前用户为{}",unionUserDto);
+        UnionAccess unionAccess = unionAccessMapper.selectOne(new QueryWrapper<UnionAccess>().eq("q_r_code", qRCode));
+        if (unionAccess==null){
+            return R.fail("无效的二维码");
+        }
+        try {
+            accessUtil.deviceOpen(unionAccess.getSn(), unionUserDto.getName(), "scan", "occupant");
+        } catch (Exception e) {
+            e.printStackTrace(); // 打印异常信息
+            log.info("开门失败原因{}",e);
+            return  R.fail("开门失败请检查人脸照片是否你本人或者联系工作人员");
+        }
+        Integer userLastOpenDoorMinutesDiff = unionOpenDoorMapper.getUserLastOpenDoorMinutesDiff(unionUserDto.getId());
+        log.info("上次开门时间间隔时间{}分钟",userLastOpenDoorMinutesDiff);
+        QueryWrapper<UnionOpenDoor> queryWrapper = new QueryWrapper<>();
+        QueryWrapper<UnionOpenDoor> eq = queryWrapper.eq("user_id", unionUserDto.getId())
+                .eq("DATE(create_at)", LocalDate.now())
+                .eq("type", 1);
+        Integer count = unionOpenDoorMapper.selectCount(eq);
+        log.info("今日获得积分的开门次数为{}",count);
+        UnionIntegralRule unionIntegralRule =
+                unionIntegralRuleMapper.selectOne(new QueryWrapper<UnionIntegralRule>().eq("id", 1));
+        log.info("当前规则{}",unionIntegralRule);
+        if (unionIntegralRule.getDayNumber()>count && unionIntegralRule.getTimeNumber() <userLastOpenDoorMinutesDiff ){
+            log.info("此次开门获得积分");
+            UnionOpenDoor unionOpenDoor=new UnionOpenDoor();
+            unionOpenDoor.setSiteId(unionAccess.getSiteId());
+            unionOpenDoor.setUserId(unionUserDto.getId());
+            unionOpenDoor.setType(1);
+            unionOpenDoor.setCreateAt(LocalDateTime.now());
+            unionOpenDoorMapper.insert(unionOpenDoor);
+            UnionIntegralRuleRecord unionIntegralRuleRecord = unionIntegralRuleRecordMapper.selectOne(new QueryWrapper<UnionIntegralRuleRecord>()
+                    .eq("rule_id", unionIntegralRule.getId())
+                    .eq("count", count + 1));
+            log.info("此次开门获得积分{}",unionIntegralRuleRecord.getIntegralNumber());
+            UnionOutdoorSite unionOutdoorSite = unionOutdoorSiteMapper.selectById(unionAccess.getSiteId());
+            UnionIntegralSummarize unionIntegralSummarize = unionIntegralSummarizeMapper.selectOne(new QueryWrapper<UnionIntegralSummarize>()
+                    .eq("community_id", unionOutdoorSite.getAreaCode()).eq("user_id", unionUserDto.getId()));
+            if (unionIntegralSummarize==null){
+                log.info("第一次开门在此区域没有积分表新增一个");
+                unionIntegralSummarize=new UnionIntegralSummarize();
+                unionIntegralSummarize.setUserId(unionUserDto.getId().toString());
+                unionIntegralSummarize.setCommunityId(unionOutdoorSite.getAreaCode());
+                unionIntegralSummarize.setCreateTime(new Date());
+                unionIntegralSummarize.setUpdateTime(new Date());
+                unionIntegralSummarize.setAllIntegral(unionIntegralRuleRecord.getIntegralNumber().toString());
+                unionIntegralSummarizeMapper.insert(unionIntegralSummarize);
+            }else {
+                log.info("用户积分修改前{}",unionIntegralSummarize);
+                unionIntegralSummarize.setUpdateTime(new Date());
+                unionIntegralSummarize.setAllIntegral(String.valueOf((Integer.parseInt(unionIntegralSummarize.getAllIntegral())
+                        +unionIntegralRuleRecord.getIntegralNumber())));
+                log.info("用户积分修改后{}",unionIntegralSummarize);
+                unionIntegralSummarizeMapper.updateById(unionIntegralSummarize);
+            }
+            log.info("新增积分记录");
+            UnionIntegralRecord unionIntegralRecord=new UnionIntegralRecord();
+            unionIntegralRecord.setIntegralType("1");
+            unionIntegralRecord.setIntegral(unionIntegralRuleRecord.getIntegralNumber().toString());
+            unionIntegralRecord.setUserId(unionUserDto.getId().toString());
+            unionIntegralRecord.setCreateTime(new Date());
+            unionIntegralRecord.setUpdateTime(new Date());
+            unionIntegralRecord.setCommunityId(unionOutdoorSite.getAreaCode());
+            unionIntegralRecord.setIntegralId(unionIntegralSummarize.getId());
+            unionIntegralRecord.setType("1");
+            unionIntegralRecordMapper.insert(unionIntegralRecord);
+            return R.ok("开门成功");
+        }
+        else {
+            log.info("此次开门不获得积分");
+            UnionOpenDoor unionOpenDoor=new UnionOpenDoor();
+            unionOpenDoor.setSiteId(unionAccess.getSiteId());
+            unionOpenDoor.setUserId(unionUserDto.getId());
+            unionOpenDoor.setType(2);
+            unionOpenDoor.setCreateAt(LocalDateTime.now());
+            unionOpenDoorMapper.insert(unionOpenDoor);
+            return  R.ok("开门成功");
+        }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/until/AccessUtil.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/until/AccessUtil.java
new file mode 100644
index 0000000..4dd94db
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/until/AccessUtil.java
@@ -0,0 +1,110 @@
+package com.panzhihua.service_equipment.until;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.service_equipment.config.AccessConfig;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.Map;
+
+import static com.panzhihua.common.utlis.HttpClientUtil.*;
+
+
+@Slf4j
+@Service
+public class AccessUtil {
+
+
+    @Resource
+    private AccessConfig accessConfig;
+
+
+    /**
+     * 刷新token
+     * @return  token
+     * @throws Exception
+     */
+    public Map refreshToken() throws Exception {
+        String url = "https://dptest.d-power.com.cn:14404/v1/token/refresh";
+        return JSONObject.parseObject(httpPost(url, JSON.toJSONString(accessConfig)), Map.class);
+    }
+
+    /**
+     * 注册人脸
+     * @return  返回结果
+     * @throws Exception
+     */
+    public Map faceEnroll(String tel,String name,String image,String communityId,String unitId) {
+        String url="https://dptest.d-power.com.cn:14404/v1/face";
+        String  token="DpToken ";
+        Map headerMap = new HashMap();
+        try {
+            Map map = refreshToken();
+            if (map!=null&&map.get("token")!=null){
+            token =token+map.get("token").toString();
+            log.info("生成的token为:{}",token);
+            headerMap.put("Authorization",token);
+            headerMap.put("Host","dptest.d-power.com.cn");
+            }
+            else {
+                log.info("生成token错误");
+                return null;
+            }
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+        Map result=new HashMap();
+        result.put("role","occupant");
+        result.put("communityId",communityId);
+        result.put("unitId",unitId);
+        result.put("tel",tel);
+        result.put("name",name);
+        result.put("timeout",10);
+        result.put("image",image);
+        try {
+            return JSONObject.parseObject(httpPostAndToken(url, JSON.toJSONString(result),headerMap), Map.class);
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    /**
+     * 开门
+     * @return  返回结果
+     * @throws Exception
+     */
+    public Map deviceOpen(String sn,String opener,String kind,String role) {
+        String url="https://dptest.d-power.com.cn:14404/v1/device/open";
+        String  token="DpToken ";
+        Map headerMap = new HashMap();
+        try {
+            Map map = refreshToken();
+            if (map!=null&&map.get("token")!=null){
+                token =token+map.get("token").toString();
+                log.info("生成的token为:{}",token);
+                headerMap.put("Authorization",token);
+                headerMap.put("Host","dptest.d-power.com.cn");
+            }
+            else {
+                log.info("生成token错误");
+                return null;
+            }
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+        Map result=new HashMap();
+        result.put("sn",sn);
+        result.put("kind",kind);
+        result.put("role",role);
+        result.put("opener",opener);
+        try {
+            return JSONObject.parseObject(httpPostAndToken(url, JSON.toJSONString(result),headerMap), Map.class);
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/until/MonitorUtil.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/until/MonitorUtil.java
new file mode 100644
index 0000000..788555c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/until/MonitorUtil.java
@@ -0,0 +1,48 @@
+package com.panzhihua.service_equipment.until;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.crypto.Mac;
+import javax.crypto.spec.SecretKeySpec;
+import java.nio.charset.StandardCharsets;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+import java.util.Base64;
+import java.util.Date;
+import java.util.Map;
+
+@Slf4j
+@Service
+public class MonitorUtil {
+
+    /**
+     * 开门
+     * @return  返回结果
+     * @throws Exception
+     */
+    public Map getToken() {
+        String url="https://openaisc.sctel.com.cn/video-manage/appToken/getToken";
+        String accesskey = "96a88ccd5f42458b304ca291e710036d";
+        String accessKeySecret = "7b2ef41e0bcf8c94b193c7ec2e10d727";
+        long timestamp = new Date().getTime();
+        String signtype = "SHA1";
+        String params = ""; // 替换为你的请求参数
+
+        String appPolicy = accesskey + accessKeySecret + timestamp + params.substring(0, Math.min(params.length(), 512));
+
+        try {
+            Mac sha1Hmac = Mac.getInstance("HmacSHA1");
+            SecretKeySpec secretKey = new SecretKeySpec(accessKeySecret.getBytes(StandardCharsets.UTF_8), "HmacSHA 1");
+            sha1Hmac.init(secretKey);
+            byte[] hashBytes = sha1Hmac.doFinal(appPolicy.getBytes(StandardCharsets.UTF_8));
+            String sign = Base64.getEncoder().encodeToString(hashBytes);
+
+            System.out.println("Sign: " + sign);
+        } catch (NoSuchAlgorithmException | InvalidKeyException e) {
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/until/MvcConfig.java b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/until/MvcConfig.java
new file mode 100644
index 0000000..706e954
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/java/com/panzhihua/service_equipment/until/MvcConfig.java
@@ -0,0 +1,34 @@
+package com.panzhihua.service_equipment.until;
+
+
+import com.panzhihua.service_equipment.resolvers.AuthorizationInterceptor;
+import com.panzhihua.service_equipment.resolvers.CurrentUserMethodArgumentResolver;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.method.support.HandlerMethodArgumentResolver;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+import java.util.List;
+
+/**
+ * 配置类,增加自定义拦截器和解析器
+ */
+@Configuration
+public class MvcConfig implements WebMvcConfigurer {
+
+    @Autowired
+    private AuthorizationInterceptor authorizationInterceptor;
+    @Autowired
+    private CurrentUserMethodArgumentResolver currentUserMethodArgumentResolver;
+//
+    @Override
+    public void addInterceptors(InterceptorRegistry registry) {
+       registry.addInterceptor(authorizationInterceptor);
+    }
+
+    @Override
+    public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
+        argumentResolvers.add(currentUserMethodArgumentResolver);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/bootstrap.yml b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..89c2806
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/bootstrap.yml
@@ -0,0 +1,43 @@
+spring:
+  application:
+    name: equipment
+  cloud:
+    config:
+      discovery:
+        enabled: true
+        service-id: huacheng-config  # 注册中心的服务名
+      profile: ${ENV:dev}  # 指定配置文件的环境
+      uri: http://${CONFIG_URL:localhost}:6193/
+  profiles:
+    active: ${ENV:dev}
+
+eureka:
+  client:
+    service-url:
+      defaultZone: http://${EUREKA_URL:localhost}:8192/eureka
+
+#实体加密、解密、字段脱敏拦截设置
+domain:
+  decrypt: true
+  encrypt: true
+  aesKey: Ryo7M3n8loC5
+  sensitive: true
+
+management:
+  endpoints:
+    web:
+      exposure:
+        include: '*'
+
+  endpoint:
+    health:
+      show-details: always
+
+  metrics:
+    tags:
+      application: equipment
+
+
+access:
+  username: 37082443
+  password: 654321
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/logback-spring.xml b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..73c3db1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/logback-spring.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration debug="false">
+    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
+    <springProfile name="dev">
+        <property name="LOG_HOME" value="F:/log" />
+    </springProfile>
+       <springProfile name="test">
+        <property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    </springProfile>
+<property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    <!-- 控制台输出 -->
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+    </appender>
+    <!-- 按照每天生成日志文件 -->
+    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!--日志文件输出的文件名-->
+            <FileNamePattern>${LOG_HOME}/service_grid.log.%d{yyyy-MM-dd}.log</FileNamePattern>
+            <!--日志文件保留天数-->
+            <MaxHistory>30</MaxHistory>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+        <!--日志文件最大的大小-->
+        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <MaxFileSize>10MB</MaxFileSize>
+        </triggeringPolicy>
+    </appender>
+
+    <!--myibatis log configure-->
+    <logger name="com.apache.ibatis" level="TRACE"/>
+    <logger name="java.sql.Connection" level="DEBUG"/>
+    <logger name="java.sql.Statement" level="DEBUG"/>
+    <logger name="java.sql.PreparedStatement" level="DEBUG"/>
+    <logger name="com.panzhihua.service_community" level="DEBUG"/>
+
+    <!-- 日志输出级别 -->
+    <root level="DEBUG">
+        <appender-ref ref="STDOUT" />
+    </root>
+    <root level="INFO">
+        <appender-ref ref="STDOUT" />
+        <appender-ref ref="FILE" />
+    </root>
+</configuration>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionAccessMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionAccessMapper.xml
new file mode 100644
index 0000000..05977c5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionAccessMapper.xml
@@ -0,0 +1,5 @@
+<?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_equipment.dao.UnionAccessMapper">
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionExchangeRecordMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionExchangeRecordMapper.xml
new file mode 100644
index 0000000..0dbf1a8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionExchangeRecordMapper.xml
@@ -0,0 +1,269 @@
+<?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_equipment.dao.UnionExchangeRecordMapper">
+    <resultMap type="com.panzhihua.service_equipment.model.dos.UnionExchangeRecord" id="UnionExchangeRecordMap">
+        <result property="id" column="id"/>
+        <result property="communityId" column="community_id"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="userId" column="user_id"/>
+        <result property="orderNum" column="order_num"/>
+        <result property="goodsId" column="goods_id"/>
+        <result property="orderType" column="order_type"/>
+        <result property="consumptionPoints" column="consumption_points"/>
+        <result property="consignee" column="consignee"/>
+        <result property="consigneePhone" column="consignee_phone"/>
+        <result property="consigneeAddress" column="consignee_address"/>
+        <result property="lat" column="lat"/>
+        <result property="lng" column="lng"/>
+        <result property="goodsNum" column="goods_num"/>
+        <result property="logisticsCompany" column="logistics_company"/>
+        <result property="logisticsNum" column="logistics_num"/>
+        <result property="playIntegral" column="play_integral"/>
+        <result property="pickUpMethod" column="pick_up_method"/>
+        <result property="pickUpAddress" column="pick_up_address"/>
+    </resultMap>
+
+    <sql id="base_sql">
+        id,
+        order_num,
+        user_id,
+        pick_up_method,
+        (select su.name from union_user as su where su.id=union_exchange_record.user_id) as userName,
+        (select su.phone from union_user as su where su.id=union_exchange_record.user_id) as phone,
+        goods_id,
+        (select su.good_name from union_store as su where su.id=union_exchange_record.goods_id) as goodName,
+        (select su.goods_cover_url from union_store as su where su.id=union_exchange_record.goods_id) as goodsCoverUrl,
+        (select su.goods_url from union_store as su where su.id=union_exchange_record.goods_id) as goodsUrl,
+        order_type,
+        consumption_points,
+        consignee,
+        consignee_phone,
+        consignee_address,
+        lat,
+        lng,
+        goods_num,
+        logistics_company,
+        logistics_num,
+        play_integral,
+        community_id,
+        pick_up_address,
+        create_time,
+        update_time
+    </sql>
+
+
+    <select id="getData" resultMap="UnionExchangeRecordMap">
+        select <include refid="base_sql"/>
+        from union_exchange_record
+        where id=#{id}
+        order by create_time desc
+    </select>
+
+    <select id="getList" resultMap="UnionExchangeRecordMap">
+        select <include refid="base_sql"/>
+        from union_exchange_record
+        <where>
+            1=1
+            <if test="communityId!=null and communityId!='' ">
+                and community_id=#{communityId}
+            </if>
+            <if test="userId!=null and userId!='' ">
+                and user_id=#{userId}
+            </if>
+            <if test="orderType!=null and orderType!='' ">
+                and order_type=#{orderType}
+            </if>
+        </where>
+        order by create_time desc
+    </select>
+
+    <insert id="insert">
+        insert into union_exchange_record
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                id,
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                user_id,
+            </if>
+            <if test="item.communityId != null and item.communityId != '' ">
+                community_id,
+            </if>
+            <if test="item.orderNum != null and item.orderNum != '' ">
+                order_num,
+            </if>
+            <if test="item.goodsId != null and item.goodsId != '' ">
+                goods_id,
+            </if>
+            <if test="item.orderType != null and item.orderType != '' ">
+                order_type,
+            </if>
+            <if test="item.consumptionPoints != null and item.consumptionPoints != '' ">
+                consumption_points,
+            </if>
+            <if test="item.consignee != null and item.consignee != '' ">
+                consignee,
+            </if>
+            <if test="item.consigneePhone != null and item.consigneePhone != '' ">
+                consignee_phone,
+            </if>
+            <if test="item.consigneeAddress != null and item.consigneeAddress != '' ">
+                consignee_address,
+            </if>
+            <if test="item.lat != null and item.lat != '' ">
+                lat,
+            </if>
+            <if test="item.lng != null and item.lng != '' ">
+                lng,
+            </if>
+            <if test="item.goodsNum != null and item.goodsNum != '' ">
+                goods_num,
+            </if>
+            <if test="item.logisticsCompany != null and item.logisticsCompany != '' ">
+                logistics_company,
+            </if>
+            <if test="item.logisticsNum != null and item.logisticsNum != '' ">
+                logistics_num,
+            </if>
+            <if test="item.playIntegral != null and item.playIntegral != '' ">
+                play_integral,
+            </if>
+            <if test="item.pickUpMethod != null and item.pickUpMethod != '' ">
+                pick_up_method,
+            </if>
+            <if test="item.pickUpAddress != null and item.pickUpAddress != '' ">
+                pick_up_address,
+            </if>
+            create_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                #{item.id},
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                #{item.userId},
+            </if>
+            <if test="item.communityId != null and item.communityId != '' ">
+                #{item.communityId},
+            </if>
+            <if test="item.orderNum != null and item.orderNum != '' ">
+                #{item.orderNum},
+            </if>
+            <if test="item.goodsId != null and item.goodsId != '' ">
+                #{item.goodsId},
+            </if>
+            <if test="item.orderType != null and item.orderType != '' ">
+                #{item.orderType},
+            </if>
+            <if test="item.consumptionPoints != null and item.consumptionPoints != '' ">
+                #{item.consumptionPoints},
+            </if>
+            <if test="item.consignee != null and item.consignee != '' ">
+                #{item.consignee},
+            </if>
+            <if test="item.consigneePhone != null and item.consigneePhone != '' ">
+                #{item.consigneePhone},
+            </if>
+            <if test="item.consigneeAddress != null and item.consigneeAddress != '' ">
+                #{item.consigneeAddress},
+            </if>
+            <if test="item.lat != null and item.lat != '' ">
+                #{item.lat},
+            </if>
+            <if test="item.lng != null and item.lng != '' ">
+                #{item.lng},
+            </if>
+            <if test="item.goodsNum != null and item.goodsNum != '' ">
+                #{item.goodsNum},
+            </if>
+            <if test="item.logisticsCompany != null and item.logisticsCompany != '' ">
+                #{item.logisticsCompany},
+            </if>
+            <if test="item.logisticsNum != null and item.logisticsNum != '' ">
+                #{item.logisticsNum},
+            </if>
+            <if test="item.playIntegral != null and item.playIntegral != '' ">
+                #{item.playIntegral},
+            </if>
+            <if test="item.pickUpMethod != null and item.pickUpMethod != '' ">
+                #{item.pickUpMethod},
+            </if>
+            <if test="item.pickUpAddress != null and item.pickUpAddress != '' ">
+                #{item.pickUpAddress},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="update">
+        update union_exchange_record
+        <set>
+            <if test="item.id != null and item.id != '' ">
+                id=#{item.id},
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                user_id=#{item.userId},
+            </if>
+            <if test="item.communityId != null and item.communityId != '' ">
+                community_id=#{item.communityId},
+            </if>
+            <if test="item.orderNum != null and item.orderNum != '' ">
+                order_num=#{item.orderNum},
+            </if>
+            <if test="item.goodsId != null and item.goodsId != '' ">
+                goods_id=#{item.goodsId},
+            </if>
+            <if test="item.orderType != null and item.orderType != '' ">
+                order_type=#{item.orderType},
+            </if>
+            <if test="item.consumptionPoints != null and item.consumptionPoints != '' ">
+                consumption_points=#{item.consumptionPoints},
+            </if>
+            <if test="item.consignee != null and item.consignee != '' ">
+                consignee=#{item.consignee},
+            </if>
+            <if test="item.consigneePhone != null and item.consigneePhone != '' ">
+                consignee_phone=#{item.consigneePhone},
+            </if>
+            <if test="item.consigneeAddress != null and item.consigneeAddress != '' ">
+                consignee_address=#{item.consigneeAddress},
+            </if>
+            <if test="item.lat != null and item.lat != '' ">
+                lat=#{item.lat},
+            </if>
+            <if test="item.lng != null and item.lng != '' ">
+                lng=#{item.lng},
+            </if>
+            <if test="item.goodsNum != null and item.goodsNum != '' ">
+                goods_num=#{item.goodsNum},
+            </if>
+            <if test="item.logisticsCompany != null and item.logisticsCompany != '' ">
+                logistics_company=#{item.logisticsCompany},
+            </if>
+            <if test="item.logisticsNum != null and item.logisticsNum != '' ">
+                logistics_num=#{item.logisticsNum},
+            </if>
+            <if test="item.playIntegral != null and item.playIntegral != '' ">
+                play_integral=#{item.playIntegral},
+            </if>
+            <if test="item.pickUpMethod != null and item.pickUpMethod != '' ">
+                pick_up_method=#{item.pickUpMethod},
+            </if>
+            <if test="item.pickUpAddress != null and item.pickUpAddress != '' ">
+                pick_up_address=#{item.pickUpAddress},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="delete" parameterType="String">
+        delete from union_exchange_record where id=#{id}
+    </delete>
+
+
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionInspectionMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionInspectionMapper.xml
new file mode 100644
index 0000000..2ff276e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionInspectionMapper.xml
@@ -0,0 +1,5 @@
+<?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_equipment.dao.UnionInspectionMapper">
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionIntegralRecordMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionIntegralRecordMapper.xml
new file mode 100644
index 0000000..83c69dc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionIntegralRecordMapper.xml
@@ -0,0 +1,131 @@
+<?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_equipment.dao.UnionIntegralRecordMapper">
+    <resultMap type="com.panzhihua.service_equipment.model.dos.UnionIntegralRecord" id="UnionIntegralRecordMap">
+        <result property="id" column="id"/>
+        <result property="communityId" column="community_id"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="userId" column="user_id"/>
+        <result property="integralType" column="integral_type"/>
+        <result property="integral" column="integral"/>
+        <result property="type" column="type"/>
+    </resultMap>
+
+    <sql id="base_sql">
+        id,
+        integral_type,
+        integral,
+        user_id,
+        (select su.name from union_user as su where su.id=union_integral_record.user_id) as usserName,
+        (select su.phone from union_user as su where su.id=union_integral_record.user_id) as phone,
+        create_time,
+        update_time,
+        `type`,
+        community_id
+    </sql>
+
+
+    <select id="getData" resultMap="UnionIntegralRecordMap">
+        select <include refid="base_sql"/>
+        from union_integral_record
+        where id=#{id}
+        order by create_time desc
+    </select>
+
+    <select id="getList" resultMap="UnionIntegralRecordMap">
+        select <include refid="base_sql"/>
+        from union_integral_record
+        <where>
+            1=1
+            <if test="communityId!=null and communityId!='' ">
+                and community_id=#{communityId}
+            </if>
+            <if test="integralType!=null and integralType!='' ">
+                and integral_type=#{integralType}
+            </if>
+        </where>
+        order by create_time desc
+    </select>
+
+    <insert id="insertOne">
+        insert into union_integral_record
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id !=  '' ">
+                id,
+            </if>
+            <if test="item.userId != null and item.userId !=  '' ">
+                user_id,
+            </if>
+            <if test="item.integralType != null and item.integralType !=  '' ">
+                integral_type,
+            </if>
+            <if test="item.integral != null and item.integral !=  '' ">
+                integral,
+            </if>
+            <if test="item.communityId != null and item.communityId !=  '' ">
+                community_id,
+            </if>
+            <if test="item.type != null and item.type !=  '' ">
+                `type`,
+            </if>
+            create_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id !=  '' ">
+                #{item.id},
+            </if>
+            <if test="item.userId != null and item.userId !=  '' ">
+                #{item.userId},
+            </if>
+            <if test="item.integralType != null and item.integralType !=  '' ">
+                #{item.integralType},
+            </if>
+            <if test="item.integral != null and item.integral !=  '' ">
+                #{item.integral},
+            </if>
+            <if test="item.communityId != null and item.communityId !=  '' ">
+                #{item.communityId},
+            </if>
+            <if test="item.type != null and item.type !=  '' ">
+                #{item.type},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="updateOne">
+        update union_integral_record
+        <set>
+            <if test="item.id != null and item.id !=  '' ">
+                id=#{item.id},
+            </if>
+            <if test="item.userId != null and item.userId !=  '' ">
+                user_id=#{item.userId},
+            </if>
+            <if test="item.integralType != null and item.integralType !=  '' ">
+                integral_type=#{item.integralType},
+            </if>
+            <if test="item.integral != null and item.integral !=  '' ">
+                integral=#{item.integral},
+            </if>
+            <if test="item.communityId != null and item.communityId !=  '' ">
+                community_id=#{item.communityId},
+            </if>
+            <if test="item.type != null and item.type !=  '' ">
+                `type`=#{item.type},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="delete" parameterType="String">
+        delete from union_integral_record where id=#{id}
+    </delete>
+
+
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionIntegralRuleMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionIntegralRuleMapper.xml
new file mode 100644
index 0000000..4a46e38
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionIntegralRuleMapper.xml
@@ -0,0 +1,5 @@
+<?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_equipment.dao.UnionIntegralRuleMapper">
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionIntegralRuleRecordMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionIntegralRuleRecordMapper.xml
new file mode 100644
index 0000000..47ac3c6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionIntegralRuleRecordMapper.xml
@@ -0,0 +1,5 @@
+<?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_equipment.dao.UnionIntegralRuleRecordMapper">
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionIntegralSummarizeMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionIntegralSummarizeMapper.xml
new file mode 100644
index 0000000..d696654
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionIntegralSummarizeMapper.xml
@@ -0,0 +1,134 @@
+<?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_equipment.dao.UnionIntegralSummarizeMapper">
+    <resultMap type="com.panzhihua.service_equipment.model.dos.UnionIntegralSummarize" id="UnionIntegralSummarizeMap">
+        <result property="id" column="id"/>
+        <result property="communityId" column="community_id"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="userId" column="user_id"/>
+        <result property="allIntegral" column="all_integral"/>
+    </resultMap>
+
+    <sql id="base_sql">
+        id,
+        all_integral,
+        user_id,
+        (select su.name from union_user as su where su.id=union_integral_summarize.user_id) as userName,
+        (select su.phone from union_user as su where su.id=union_integral_summarize.user_id) as phone,
+        create_time,
+        update_time,
+        community_id
+    </sql>
+
+
+    <select id="getData" resultMap="UnionIntegralSummarizeMap">
+        select <include refid="base_sql"/>
+        from union_integral_summarize
+        where id=#{id}
+        order by create_time desc
+    </select>
+
+
+    <select id="getUserData" resultMap="UnionIntegralSummarizeMap">
+        select
+            id,
+            all_integral,
+            user_id,
+            (select su.name from union_user as su where su.id=union_integral_summarize.user_id) as userName,
+            (select su.phone from union_user as su where su.id=union_integral_summarize.user_id) as phone,
+            create_time,
+            update_time,
+            community_id
+        from union_integral_summarize
+        <where>
+            1=1
+            <if test="userId!=null and userId != '' ">
+                and user_id=#{userId}
+            </if>
+            <if test="communityId!=null and communityId != '' ">
+                and community_id=#{communityId}
+            </if>
+        </where>
+        order BY all_integral DESC limit 1
+    </select>
+
+
+    <select id="getList" resultMap="UnionIntegralSummarizeMap">
+        select <include refid="base_sql"/>
+        from union_integral_summarize
+        <where>
+            1=1
+            <if test="communityId!=null and communityId!='' ">
+                and community_id=#{communityId}
+            </if>
+            <if test="userId!=null and userId!='' ">
+                and user_id=#{userId}
+            </if>
+        </where>
+        order by create_time desc
+    </select>
+
+    <insert id="insert">
+        insert into union_integral_summarize
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null">
+                id,
+            </if>
+            <if test="item.userId != null">
+                user_id,
+            </if>
+            <if test="item.allIntegral != null">
+                all_integral,
+            </if>
+            <if test="item.communityId != null">
+                community_id,
+            </if>
+            create_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null">
+                #{item.id},
+            </if>
+            <if test="item.userId != null">
+                #{item.userId},
+            </if>
+            <if test="item.allIntegral != null">
+                #{item.allIntegral},
+            </if>
+            <if test="item.communityId != null">
+                #{item.communityId},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="update">
+        update union_integral_summarize
+        <set>
+            <if test="item.id != null">
+                id=#{item.id},
+            </if>
+            <if test="item.userId != null">
+                user_id=#{item.userId},
+            </if>
+            <if test="item.allIntegral != null">
+                all_integral=#{item.allIntegral},
+            </if>
+            <if test="item.communityId != null">
+                community_id=#{item.communityId},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="delete" parameterType="String">
+        delete from union_integral_summarize where id=#{id}
+    </delete>
+
+
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionOpenDoorMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionOpenDoorMapper.xml
new file mode 100644
index 0000000..55e8c5d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionOpenDoorMapper.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_equipment.dao.UnionOpenDoorMapper">
+
+
+    <select id="getUserLastOpenDoorMinutesDiff" resultType="java.lang.Integer">
+        SELECT TIMESTAMPDIFF(MINUTE, (
+                                         SELECT MAX(create_at)
+                                         FROM union_open_door
+                                         WHERE user_id = #{userId}
+                                     ), NOW()) AS minutes_diff
+        FROM union_open_door
+        WHERE user_id = #{userId}
+        ORDER BY create_at DESC
+            LIMIT 1;
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionOutdoorLaborDynamicMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionOutdoorLaborDynamicMapper.xml
new file mode 100644
index 0000000..10e2126
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionOutdoorLaborDynamicMapper.xml
@@ -0,0 +1,5 @@
+<?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_equipment.dao.UnionOutdoorLaborDynamicMapper">
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionOutdoorServiceRangeMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionOutdoorServiceRangeMapper.xml
new file mode 100644
index 0000000..0780e51
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionOutdoorServiceRangeMapper.xml
@@ -0,0 +1,5 @@
+<?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_equipment.dao.UnionOutdoorServiceRangeMapper">
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionOutdoorSiteMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionOutdoorSiteMapper.xml
new file mode 100644
index 0000000..0fc73bc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionOutdoorSiteMapper.xml
@@ -0,0 +1,5 @@
+<?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_equipment.dao.UnionOutdoorSiteMapper">
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionReportMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionReportMapper.xml
new file mode 100644
index 0000000..bba0214
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionReportMapper.xml
@@ -0,0 +1,5 @@
+<?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_equipment.dao.UnionReportMapper">
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionShippingAddressMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionShippingAddressMapper.xml
new file mode 100644
index 0000000..b2c5186
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionShippingAddressMapper.xml
@@ -0,0 +1,198 @@
+<?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_equipment.dao.UnionShippingAddressMapper">
+    <resultMap type="com.panzhihua.service_equipment.model.dos.UnionShippingAddress" id="ItemMap">
+        <result property="id" column="id"/>
+        <result property="communityId" column="community_id"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="userId" column="user_id"/>
+        <result property="address" column="address"/>
+        <result property="lat" column="lat"/>
+        <result property="lng" column="lng"/>
+        <result property="phone" column="phone"/>
+        <result property="name" column="name"/>
+        <result property="isDefault" column="is_default"/>
+        <result property="gender" column="gender"/>
+        <result property="houseNum" column="house_num"/>
+        <result property="city" column="city"/>
+    </resultMap>
+
+
+    <sql id="base_sql">
+        id,
+        address,
+        lat,
+        lng,
+        user_id,
+        phone,
+        `name`,
+        community_id,
+        create_time,
+        update_time,
+        is_default,
+        gender,
+        house_num,
+        city
+    </sql>
+
+
+    <select id="getData" resultMap="ItemMap">
+        select <include refid="base_sql"/>
+        from union_shipping_address
+        where id=#{id}
+        order by create_time desc
+    </select>
+
+
+    <select id="getDefaultData" resultMap="ItemMap">
+        select <include refid="base_sql"/>
+        from union_shipping_address
+        where user_id=#{userId} and is_default='true'
+        order by create_time desc
+    </select>
+
+
+
+    <select id="getList" resultMap="ItemMap">
+        select <include refid="base_sql"/>
+        from union_shipping_address
+        <where>
+            1=1
+            <if test="communityId!=null and communityId!='' ">
+                and community_id=#{communityId}
+            </if>
+            <if test="userId!=null and userId!='' ">
+                and user_id=#{userId}
+            </if>
+        </where>
+        order by create_time desc
+    </select>
+
+    <insert id="insert">
+        insert into union_shipping_address
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.userId != null and item.userId != '' ">
+                user_id,
+            </if>
+            <if test="item.communityId != null and item.communityId != '' ">
+                community_id,
+            </if>
+            <if test="item.lat != null and item.lat != '' ">
+                lat,
+            </if>
+            <if test="item.lng != null and item.lng != '' ">
+                lng,
+            </if>
+            <if test="item.address != null and item.address != '' ">
+                address,
+            </if>
+            <if test="item.phone != null and item.phone != '' ">
+                phone,
+            </if>
+            <if test="item.name != null and item.name != '' ">
+                `name`,
+            </if>
+            <if test="item.isDefault != null and item.isDefault != '' ">
+                is_default,
+            </if>
+            <if test="item.gender != null and item.gender != '' ">
+                gender,
+            </if>
+            <if test="item.houseNum != null and item.houseNum != '' ">
+                house_num,
+            </if>
+            <if test="item.city != null and item.city != '' ">
+                city,
+            </if>
+            create_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.userId != null and item.userId != '' ">
+                #{item.userId},
+            </if>
+            <if test="item.communityId != null and item.communityId != '' ">
+                #{item.communityId},
+            </if>
+            <if test="item.lat != null and item.lat != '' ">
+                #{item.lat},
+            </if>
+            <if test="item.lng != null and item.lng != '' ">
+                #{item.lng},
+            </if>
+            <if test="item.address != null and item.address != '' ">
+                #{item.address},
+            </if>
+            <if test="item.phone != null and item.phone != '' ">
+                #{item.phone},
+            </if>
+            <if test="item.name != null and item.name != '' ">
+                #{item.name},
+            </if>
+            <if test="item.isDefault != null and item.isDefault != '' ">
+                #{item.isDefault},
+            </if>
+            <if test="item.gender != null and item.gender != '' ">
+                #{item.gender},
+            </if>
+            <if test="item.houseNum != null and item.houseNum != '' ">
+                #{item.houseNum},
+            </if>
+            <if test="item.city != null and item.city != '' ">
+                #{item.city},
+            </if>
+
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="update">
+        update union_shipping_address
+        <set>
+            <if test="item.userId != null and item.userId != '' ">
+                user_id=#{item.userId},
+            </if>
+            <if test="item.communityId != null and item.communityId != '' ">
+                community_id=#{item.communityId},
+            </if>
+            <if test="item.lat != null and item.lat != '' ">
+                lat=#{item.lat},
+            </if>
+            <if test="item.lng != null and item.lng != '' ">
+                lng=#{item.lng},
+            </if>
+            <if test="item.address != null and item.address != '' ">
+                address=#{item.address},
+            </if>
+            <if test="item.phone != null and item.phone != '' ">
+                phone=#{item.phone},
+            </if>
+            <if test="item.name != null and item.name != '' ">
+                `name`=#{item.name},
+            </if>
+            <if test="item.isDefault != null and item.isDefault != '' ">
+                is_default=#{item.isDefault},
+            </if>
+            <if test="item.gender != null and item.gender != '' ">
+                gender=#{item.gender},
+            </if>
+            <if test="item.houseNum != null and item.houseNum != '' ">
+                house_num=#{item.houseNum},
+            </if>
+            <if test="item.city != null and item.city != '' ">
+                city=#{item.city},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="delete" parameterType="String">
+        delete from union_shipping_address where id=#{id}
+    </delete>
+
+
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionStoreMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionStoreMapper.xml
new file mode 100644
index 0000000..2fae776
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionStoreMapper.xml
@@ -0,0 +1,235 @@
+<?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_equipment.dao.UnionStoreMapper">
+    <resultMap type="com.panzhihua.service_equipment.model.dos.UnionStore" id="UnionStoreMap">
+        <result property="id" column="id"/>
+        <result property="goodName" column="good_name"/>
+        <result property="conversionPrice" column="conversion_price"/>
+        <result property="stock" column="stock"/>
+        <result property="pickGoods" column="pick_goods"/>
+        <result property="goodsUrl" column="goods_url"/>
+        <result property="pickGoodsAddress" column="pick_goods_address"/>
+        <result property="lat" column="lat"/>
+        <result property="lng" column="lng"/>
+        <result property="content" column="content"/>
+        <result property="communityId" column="community_id"/>
+        <result property="goodsType" column="goods_type"/>
+        <result property="goodNum" column="good_num"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="userId" column="user_id"/>
+        <result property="openingHours" column="opening_hours"/>
+        <result property="goodsCoverUrl" column="goods_cover_url"/>
+
+    </resultMap>
+
+    <sql id="base_sql">
+        id,
+        good_name,
+        conversion_price,
+        stock,
+        pick_goods,
+        goods_url,
+        pick_goods_address,
+        lat,
+        lng,
+        content,
+        community_id,
+        (select uos.name from union_outdoor_site as uos where community_id=uos.area_code) as communityName,
+        goods_type,
+        good_num,
+        user_id,
+        opening_hours,
+        goods_cover_url,
+        create_time,
+        update_time
+    </sql>
+
+    <select id="getList" resultMap="UnionStoreMap">
+        select <include refid="base_sql"/>
+        from union_store
+        <where>
+            1=1
+            <if test="communityId!=null and communityId!='' ">
+                and community_id=#{communityId}
+            </if>
+            <if test="goodsType!=null and goodsType!='' ">
+                and goods_type=#{goodsType}
+            </if>
+            <if test="nameOrNum!=null and nameOrNum!='' ">
+                and (good_name like concat('%',#{nameOrNum},'%')) or (good_num like concat('%',#{nameOrNum},'%'))
+            </if>
+        </where>
+        order by create_time desc
+    </select>
+
+
+    <select id="getData" resultMap="UnionStoreMap">
+        select <include refid="base_sql"/>
+        from union_store
+        where id=#{id}
+    </select>
+
+
+    <insert id="insert">
+        insert into union_store
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                id,
+            </if>
+            <if test="item.goodName != null and item.goodName != '' ">
+                good_name,
+            </if>
+            <if test="item.conversionPrice != null and item.conversionPrice != '' ">
+                conversion_price,
+            </if>
+            <if test="item.stock != null and item.stock != '' ">
+                stock,
+            </if>
+            <if test="item.pickGoods != null and item.pickGoods != '' ">
+                pick_goods,
+            </if>
+            <if test="item.goodsUrl != null and item.goodsUrl != '' ">
+                goods_url,
+            </if>
+            <if test="item.pickGoodsAddress != null and item.pickGoodsAddress != '' ">
+                pick_goods_address,
+            </if>
+            <if test="item.lat != null and item.lat != '' ">
+                lat,
+            </if>
+            <if test="item.lng != null and item.lng != '' ">
+                lng,
+            </if>
+            <if test="item.content != null and item.content != '' ">
+                content,
+            </if>
+            <if test="item.goodsType != null and item.goodsType != '' ">
+                goods_type,
+            </if>
+            <if test="item.goodNum != null and item.goodNum != '' ">
+                good_num,
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                user_id,
+            </if>
+            <if test="item.openingHours != null and item.openingHours != '' ">
+                opening_hours,
+            </if>
+            <if test="item.goodsCoverUrl != null and item.goodsCoverUrl != '' ">
+                goods_cover_url,
+            </if>
+            create_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                #{item.id},
+            </if>
+            <if test="item.goodName != null and item.goodName != '' ">
+                #{item.goodName},
+            </if>
+            <if test="item.conversionPrice != null and item.conversionPrice != '' ">
+                #{item.conversionPrice},
+            </if>
+            <if test="item.stock != null and item.stock != '' ">
+                #{item.stock},
+            </if>
+            <if test="item.pickGoods != null and item.pickGoods != '' ">
+                #{item.pickGoods},
+            </if>
+            <if test="item.goodsUrl != null and item.goodsUrl != '' ">
+                #{item.goodsUrl},
+            </if>
+            <if test="item.pickGoodsAddress != null and item.pickGoodsAddress != '' ">
+                #{item.pickGoodsAddress},
+            </if>
+            <if test="item.lat != null and item.lat != '' ">
+                #{item.lat},
+            </if>
+            <if test="item.lng != null and item.lng != '' ">
+                #{item.lng},
+            </if>
+            <if test="item.content != null and item.content != '' ">
+                #{item.content},
+            </if>
+            <if test="item.goodsType != null and item.goodsType != '' ">
+                #{item.goodsType},
+            </if>
+            <if test="item.goodNum != null and item.goodNum != '' ">
+                #{item.goodNum},
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                #{item.userId},
+            </if>
+            <if test="item.openingHours != null and item.openingHours != '' ">
+                #{item.openingHours},
+            </if>
+            <if test="item.goodsCoverUrl != null and item.goodsCoverUrl != '' ">
+                #{item.goodsCoverUrl},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="update">
+        update union_store
+        <set>
+            <if test="item.id != null and item.id != '' ">
+                id=#{item.id},
+            </if>
+            <if test="item.goodName != null and item.goodName != '' ">
+                good_name=#{item.goodName},
+            </if>
+            <if test="item.conversionPrice != null and item.conversionPrice != '' ">
+                conversion_price=#{item.conversionPrice},
+            </if>
+            <if test="item.stock != null and item.stock != '' ">
+                stock=#{item.stock},
+            </if>
+            <if test="item.pickGoods != null and item.pickGoods != '' ">
+                pick_goods=#{item.pickGoods},
+            </if>
+            <if test="item.goodsUrl != null and item.goodsUrl != '' ">
+                goods_url=#{item.goodsUrl},
+            </if>
+            <if test="item.pickGoodsAddress != null and item.pickGoodsAddress != '' ">
+                pick_goods_address=#{item.pickGoodsAddress},
+            </if>
+            <if test="item.lat != null and item.lat != '' ">
+                lat=#{item.lat},
+            </if>
+            <if test="item.lng != null and item.lng != '' ">
+                lng=#{item.lng},
+            </if>
+            <if test="item.content != null and item.content != '' ">
+                content=#{item.content},
+            </if>
+            <if test="item.goodsType != null and item.goodsType != '' ">
+                goods_type=#{item.goodsType},
+            </if>
+            <if test="item.goodNum != null and item.goodNum != '' ">
+                good_num=#{item.goodNum},
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                user_id=#{item.userId},
+            </if>
+            <if test="item.openingHours != null and item.openingHours != '' ">
+                opening_hours=#{item.openingHours},
+            </if>
+            <if test="item.goodsCoverUrl != null and item.goodsCoverUrl != '' ">
+                goods_cover_url=#{item.goodsCoverUrl},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="delete" parameterType="String">
+        delete from union_store where id=#{id}
+    </delete>
+
+
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionUserMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionUserMapper.xml
new file mode 100644
index 0000000..407a010
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/src/main/resources/mapper/UnionUserMapper.xml
@@ -0,0 +1,5 @@
+<?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_equipment.dao.UnionUserMapper">
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/ServiceEquipmentApplication.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/ServiceEquipmentApplication.class
new file mode 100644
index 0000000..d6e9adc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/ServiceEquipmentApplication.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/api/RoomckWebApi.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/api/RoomckWebApi.class
new file mode 100644
index 0000000..2b47ed0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/api/RoomckWebApi.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/api/UnionInspectionApi.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/api/UnionInspectionApi.class
new file mode 100644
index 0000000..90a2f85
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/api/UnionInspectionApi.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/api/UnionIntegralSummarizeApi.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/api/UnionIntegralSummarizeApi.class
new file mode 100644
index 0000000..53646bd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/api/UnionIntegralSummarizeApi.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/api/UnionOutdoorLaborDynamicApi.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/api/UnionOutdoorLaborDynamicApi.class
new file mode 100644
index 0000000..5213473
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/api/UnionOutdoorLaborDynamicApi.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/api/UnionOutdoorSiteApi.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/api/UnionOutdoorSiteApi.class
new file mode 100644
index 0000000..aaacb68
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/api/UnionOutdoorSiteApi.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/api/UnionReportApi.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/api/UnionReportApi.class
new file mode 100644
index 0000000..4420588
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/api/UnionReportApi.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/api/UnionStoreApi.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/api/UnionStoreApi.class
new file mode 100644
index 0000000..2faf5a7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/api/UnionStoreApi.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/api/UnionUserApi.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/api/UnionUserApi.class
new file mode 100644
index 0000000..081b6fb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/api/UnionUserApi.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/api/VideoManageApi.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/api/VideoManageApi.class
new file mode 100644
index 0000000..dbcb54d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/api/VideoManageApi.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/config/AccessConfig.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/config/AccessConfig.class
new file mode 100644
index 0000000..e7cac5d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/config/AccessConfig.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/config/AccessUtil.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/config/AccessUtil.class
new file mode 100644
index 0000000..dd010df
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/config/AccessUtil.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionAccessMapper.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionAccessMapper.class
new file mode 100644
index 0000000..13ba76b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionAccessMapper.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionExchangeRecordMapper.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionExchangeRecordMapper.class
new file mode 100644
index 0000000..f059f4e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionExchangeRecordMapper.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionInspectionMapper.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionInspectionMapper.class
new file mode 100644
index 0000000..70b959c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionInspectionMapper.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionIntegralRecordMapper.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionIntegralRecordMapper.class
new file mode 100644
index 0000000..2234b43
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionIntegralRecordMapper.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionIntegralSummarizeMapper.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionIntegralSummarizeMapper.class
new file mode 100644
index 0000000..fd9696f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionIntegralSummarizeMapper.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionOutdoorLaborDynamicMapper.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionOutdoorLaborDynamicMapper.class
new file mode 100644
index 0000000..99409a9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionOutdoorLaborDynamicMapper.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionOutdoorServiceRangeMapper.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionOutdoorServiceRangeMapper.class
new file mode 100644
index 0000000..65367e1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionOutdoorServiceRangeMapper.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionOutdoorSiteMapper.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionOutdoorSiteMapper.class
new file mode 100644
index 0000000..3f2c0d8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionOutdoorSiteMapper.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionReportMapper.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionReportMapper.class
new file mode 100644
index 0000000..af2e022
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionReportMapper.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionStoreMapper.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionStoreMapper.class
new file mode 100644
index 0000000..84c42e4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionStoreMapper.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionUserMapper.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionUserMapper.class
new file mode 100644
index 0000000..68533ce
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/dao/UnionUserMapper.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/Structured.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/Structured.class
new file mode 100644
index 0000000..66535a1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/Structured.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionAccess.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionAccess.class
new file mode 100644
index 0000000..0063eb9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionAccess.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionExchangeRecord.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionExchangeRecord.class
new file mode 100644
index 0000000..37e636e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionExchangeRecord.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionInspection.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionInspection.class
new file mode 100644
index 0000000..bacf201
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionInspection.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionIntegralRecord.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionIntegralRecord.class
new file mode 100644
index 0000000..b10e799
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionIntegralRecord.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionIntegralSummarize.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionIntegralSummarize.class
new file mode 100644
index 0000000..828d676
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionIntegralSummarize.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionOutdoorLaborDynamic.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionOutdoorLaborDynamic.class
new file mode 100644
index 0000000..bc8fdb8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionOutdoorLaborDynamic.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionOutdoorServiceRange.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionOutdoorServiceRange.class
new file mode 100644
index 0000000..cdeec4f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionOutdoorServiceRange.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionOutdoorSite.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionOutdoorSite.class
new file mode 100644
index 0000000..111a537
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionOutdoorSite.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionReport.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionReport.class
new file mode 100644
index 0000000..3486eb1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionReport.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionStore.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionStore.class
new file mode 100644
index 0000000..fa85f85
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionStore.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionUser.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionUser.class
new file mode 100644
index 0000000..dfa1442
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/dos/UnionUser.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/helper/encrypt/ParammeterInterceptor.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/helper/encrypt/ParammeterInterceptor.class
new file mode 100644
index 0000000..7210a53
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/helper/encrypt/ParammeterInterceptor.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/helper/encrypt/ResultInterceptor.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/helper/encrypt/ResultInterceptor.class
new file mode 100644
index 0000000..cc70ffc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/model/helper/encrypt/ResultInterceptor.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/UnionInspectionService.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/UnionInspectionService.class
new file mode 100644
index 0000000..ea5e373
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/UnionInspectionService.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/UnionIntegralRecordService.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/UnionIntegralRecordService.class
new file mode 100644
index 0000000..8652ef7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/UnionIntegralRecordService.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/UnionIntegralSummarizeService.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/UnionIntegralSummarizeService.class
new file mode 100644
index 0000000..dc622fb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/UnionIntegralSummarizeService.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/UnionOutdoorLaborDynamicService.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/UnionOutdoorLaborDynamicService.class
new file mode 100644
index 0000000..32801b2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/UnionOutdoorLaborDynamicService.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/UnionOutdoorSiteService.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/UnionOutdoorSiteService.class
new file mode 100644
index 0000000..b2774f0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/UnionOutdoorSiteService.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/UnionReportService.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/UnionReportService.class
new file mode 100644
index 0000000..ed1b6e7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/UnionReportService.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/UnionStoreService.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/UnionStoreService.class
new file mode 100644
index 0000000..b0cb22f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/UnionStoreService.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/UnionUserService.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/UnionUserService.class
new file mode 100644
index 0000000..5f9896e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/UnionUserService.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/impl/UnionInspectionServiceImpl.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/impl/UnionInspectionServiceImpl.class
new file mode 100644
index 0000000..ad1a79e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/impl/UnionInspectionServiceImpl.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/impl/UnionIntegralRecordServiceImpl.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/impl/UnionIntegralRecordServiceImpl.class
new file mode 100644
index 0000000..635f02e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/impl/UnionIntegralRecordServiceImpl.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/impl/UnionIntegralSummarizeServiceImpl.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/impl/UnionIntegralSummarizeServiceImpl.class
new file mode 100644
index 0000000..208bd95
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/impl/UnionIntegralSummarizeServiceImpl.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/impl/UnionOutdoorLaborDynamicServiceImpl.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/impl/UnionOutdoorLaborDynamicServiceImpl.class
new file mode 100644
index 0000000..c427ca1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/impl/UnionOutdoorLaborDynamicServiceImpl.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/impl/UnionOutdoorSiteServiceImpl.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/impl/UnionOutdoorSiteServiceImpl.class
new file mode 100644
index 0000000..b69ae01
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/impl/UnionOutdoorSiteServiceImpl.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/impl/UnionReportServiceImpl.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/impl/UnionReportServiceImpl.class
new file mode 100644
index 0000000..002c1d8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/impl/UnionReportServiceImpl.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/impl/UnionStoreServiceImpl.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/impl/UnionStoreServiceImpl.class
new file mode 100644
index 0000000..105a5eb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/impl/UnionStoreServiceImpl.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/impl/UnionUserServiceImpl.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/impl/UnionUserServiceImpl.class
new file mode 100644
index 0000000..4090f9e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_equipment/service/impl/UnionUserServiceImpl.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_grid/config/MyMetaObjectHandler.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_grid/config/MyMetaObjectHandler.class
new file mode 100644
index 0000000..520d9e7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_grid/config/MyMetaObjectHandler.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_grid/config/MybatisHmkInterceptor.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_grid/config/MybatisHmkInterceptor.class
new file mode 100644
index 0000000..040847a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_grid/config/MybatisHmkInterceptor.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_grid/config/MybatisPlusConfig.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_grid/config/MybatisPlusConfig.class
new file mode 100644
index 0000000..f2b338a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_grid/config/MybatisPlusConfig.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_grid/model/helper/sensitive/SensitiveInterceptor.class b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_grid/model/helper/sensitive/SensitiveInterceptor.class
new file mode 100644
index 0000000..a2a946c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/com/panzhihua/service_grid/model/helper/sensitive/SensitiveInterceptor.class
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionAccessMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionAccessMapper.xml
new file mode 100644
index 0000000..05977c5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionAccessMapper.xml
@@ -0,0 +1,5 @@
+<?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_equipment.dao.UnionAccessMapper">
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionExchangeRecordMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionExchangeRecordMapper.xml
new file mode 100644
index 0000000..505c7ee
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionExchangeRecordMapper.xml
@@ -0,0 +1,241 @@
+<?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_equipment.dao.UnionExchangeRecordMapper">
+    <resultMap type="com.panzhihua.service_equipment.model.dos.UnionExchangeRecord" id="UnionExchangeRecordMap">
+        <result property="id" column="id"/>
+        <result property="communityId" column="community_id"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="userId" column="user_id"/>
+        <result property="orderNum" column="order_num"/>
+        <result property="goodsId" column="goods_id"/>
+        <result property="orderType" column="order_type"/>
+        <result property="consumptionPoints" column="consumption_points"/>
+        <result property="consignee" column="consignee"/>
+        <result property="consigneePhone" column="consignee_phone"/>
+        <result property="consigneeAddress" column="consignee_address"/>
+        <result property="lat" column="lat"/>
+        <result property="lng" column="lng"/>
+        <result property="goodsNum" column="goods_num"/>
+        <result property="logisticsCompany" column="logistics_company"/>
+        <result property="logisticsNum" column="logistics_num"/>
+        <result property="playIntegral" column="play_integral"/>
+    </resultMap>
+
+    <sql id="base_sql">
+        id,
+        order_num,
+        user_id,
+        (select su.name from sys_user as su where su.user_id=union_integral_record.user_id) as usserName,
+        (select su.phone from sys_user as su where su.user_id=union_integral_record.user_id) as phone,
+        goods_id,
+        order_type,
+        consumption_points,
+        consignee,
+        consignee_phone,
+        consignee_address,
+        lat,
+        lng,
+        goods_num,
+        logistics_company,
+        logistics_num,
+        play_integral,
+        community_id
+        create_time,
+        update_time
+    </sql>
+
+
+    <select id="getData" resultMap="UnionExchangeRecordMap">
+        select <include refid="base_sql"/>
+        from union_exchange_record
+        where id=#{id}
+        order by create_time desc
+    </select>
+
+    <select id="getList" resultMap="UnionExchangeRecordMap">
+        select <include refid="base_sql"/>
+        from union_exchange_record
+        <where>
+            1=1
+            <if test="communityId!=null and communityId!='' ">
+                and community_id=#{communityId}
+            </if>
+            <if test="userId!=null and userId!='' ">
+                and user_id=#{userId}
+            </if>
+        </where>
+        order by create_time desc
+    </select>
+
+    <insert id="insert">
+        insert into union_exchange_record
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null">
+                id,
+            </if>
+            <if test="item.userId != null">
+                user_id,
+            </if>
+            <if test="item.communityId != null">
+                community_id,
+            </if>
+            <if test="item.orderNum != null">
+                order_num,
+            </if>
+            <if test="item.goodsId != null">
+                goods_id,
+            </if>
+            <if test="item.orderType != null">
+                order_type,
+            </if>
+            <if test="item.consumptionPoints != null">
+                consumption_points,
+            </if>
+            <if test="item.consignee != null">
+                consignee,
+            </if>
+            <if test="item.consigneePhone != null">
+                consignee_phone,
+            </if>
+            <if test="item.consigneeAddress != null">
+                consignee_address,
+            </if>
+            <if test="item.lat != null">
+                lat,
+            </if>
+            <if test="item.lng != null">
+                lng,
+            </if>
+            <if test="item.goodsNum != null">
+                goods_num,
+            </if>
+            <if test="item.logisticsCompany != null">
+                logistics_company,
+            </if>
+            <if test="item.logisticsNum != null">
+                logistics_num,
+            </if>
+            <if test="item.playIntegral != null">
+                play_integral,
+            </if>
+            create_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null">
+                #{item.id},
+            </if>
+            <if test="item.userId != null">
+                #{item.userId},
+            </if>
+            <if test="item.communityId != null">
+                #{item.communityId},
+            </if>
+            <if test="item.orderNum != null">
+                #{item.orderNum},
+            </if>
+            <if test="item.goodsId != null">
+                #{item.goodsId},
+            </if>
+            <if test="item.orderType != null">
+                #{item.orderType},
+            </if>
+            <if test="item.consumptionPoints != null">
+                #{item.consumptionPoints},
+            </if>
+            <if test="item.consignee != null">
+                #{item.consignee},
+            </if>
+            <if test="item.consigneePhone != null">
+                #{item.consigneePhone},
+            </if>
+            <if test="item.consigneeAddress != null">
+                #{item.consigneeAddress},
+            </if>
+            <if test="item.lat != null">
+                #{item.lat},
+            </if>
+            <if test="item.lng != null">
+                #{item.lng},
+            </if>
+            <if test="item.goodsNum != null">
+                #{item.goodsNum},
+            </if>
+            <if test="item.logisticsCompany != null">
+                #{item.logisticsCompany},
+            </if>
+            <if test="item.logisticsNum != null">
+                #{item.logisticsNum},
+            </if>
+            <if test="item.playIntegral != null">
+                #{item.playIntegral},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="update">
+        update union_exchange_record
+        <set>
+            <if test="item.id != null">
+                id=#{item.id},
+            </if>
+            <if test="item.userId != null">
+                user_id=#{item.userId},
+            </if>
+            <if test="item.communityId != null">
+                community_id=#{item.communityId},
+            </if>
+            <if test="item.orderNum != null">
+                order_num=#{item.orderNum},
+            </if>
+            <if test="item.goodsId != null">
+                goods_id=#{item.goodsId},
+            </if>
+            <if test="item.orderType != null">
+                order_type=#{item.orderType},
+            </if>
+            <if test="item.consumptionPoints != null">
+                consumption_points=#{item.consumptionPoints},
+            </if>
+            <if test="item.consignee != null">
+                consignee=#{item.consignee},
+            </if>
+            <if test="item.consigneePhone != null">
+                consignee_phone=#{item.consigneePhone},
+            </if>
+            <if test="item.consigneeAddress != null">
+                consignee_address=#{item.consigneeAddress},
+            </if>
+            <if test="item.lat != null">
+                lat=#{item.lat},
+            </if>
+            <if test="item.lng != null">
+                lng=#{item.lng},
+            </if>
+            <if test="item.goodsNum != null">
+                goods_num=#{item.goodsNum},
+            </if>
+            <if test="item.logisticsCompany != null">
+                logistics_company=#{item.logisticsCompany},
+            </if>
+            <if test="item.logisticsNum != null">
+                logistics_num=#{item.logisticsNum},
+            </if>
+            <if test="item.playIntegral != null">
+                play_integral=#{item.playIntegral},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="delete" parameterType="String">
+        delete from union_exchange_record where id=#{id}
+    </delete>
+
+
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionInspectionMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionInspectionMapper.xml
new file mode 100644
index 0000000..2ff276e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionInspectionMapper.xml
@@ -0,0 +1,5 @@
+<?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_equipment.dao.UnionInspectionMapper">
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionIntegralRecordMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionIntegralRecordMapper.xml
new file mode 100644
index 0000000..5536713
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionIntegralRecordMapper.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_equipment.dao.UnionIntegralRecordMapper">
+    <resultMap type="com.panzhihua.service_equipment.model.dos.UnionIntegralRecord" id="UnionIntegralRecordMap">
+        <result property="id" column="id"/>
+        <result property="communityId" column="community_id"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="userId" column="user_id"/>
+        <result property="integralType" column="integral_type"/>
+        <result property="integral" column="integral"/>
+    </resultMap>
+
+    <sql id="base_sql">
+        id,
+        integral_type,
+        integral,
+        user_id,
+        (select su.name from sys_user as su where su.user_id=union_integral_record.user_id) as usserName,
+        (select su.phone from sys_user as su where su.user_id=union_integral_record.user_id) as phone,
+        create_time,
+        update_time,
+        community_id
+    </sql>
+
+
+    <select id="getData" resultMap="UnionIntegralRecordMap">
+        select <include refid="base_sql"/>
+        from union_integral_record
+        where id=#{id}
+        order by create_time desc
+    </select>
+
+    <select id="getList" resultMap="UnionIntegralRecordMap">
+        select <include refid="base_sql"/>
+        from union_integral_record
+        <where>
+            1=1
+            <if test="communityId!=null and communityId!='' ">
+                and community_id=#{communityId}
+            </if>
+            <if test="integralType!=null and integralType!='' ">
+                and integral_type=#{integralType}
+            </if>
+        </where>
+        order by create_time desc
+    </select>
+
+    <insert id="insert">
+        insert into union_integral_record
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null">
+                id,
+            </if>
+            <if test="item.userId != null">
+                user_id,
+            </if>
+            <if test="item.integralType != null">
+                integral_type,
+            </if>
+            <if test="item.integral != null">
+                integral,
+            </if>
+            <if test="item.communityId != null">
+                community_id,
+            </if>
+            create_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null">
+                #{item.id},
+            </if>
+            <if test="item.userId != null">
+                #{item.userId},
+            </if>
+            <if test="item.integralTyppe != null">
+                #{item.integralTyppe},
+            </if>
+            <if test="item.integral != null">
+                #{item.integral},
+            </if>
+            <if test="item.communityId != null">
+                #{item.communityId},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="update">
+        update union_integral_record
+        <set>
+            <if test="item.id != null">
+                id=#{item.id},
+            </if>
+            <if test="item.userId != null">
+                user_id=#{item.userId},
+            </if>
+            <if test="item.integralType != null">
+                integral_type=#{item.integralType},
+            </if>
+            <if test="item.integral != null">
+                integral=#{item.integral},
+            </if>
+            <if test="item.communityId != null">
+                community_id=#{item.communityId},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="delete" parameterType="String">
+        delete from union_integral_record where id=#{id}
+    </delete>
+
+
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionIntegralSummarizeMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionIntegralSummarizeMapper.xml
new file mode 100644
index 0000000..06b010d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionIntegralSummarizeMapper.xml
@@ -0,0 +1,109 @@
+<?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_equipment.dao.UnionIntegralSummarizeMapper">
+    <resultMap type="com.panzhihua.service_equipment.model.dos.UnionIntegralSummarize" id="UnionIntegralSummarizeMap">
+        <result property="id" column="id"/>
+        <result property="communityId" column="community_id"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateTime" column="update_time"/>
+        <result property="userId" column="user_id"/>
+        <result property="allIntegral" column="all_integral"/>
+    </resultMap>
+
+    <sql id="base_sql">
+        id,
+        all_integral,
+        user_id,
+        (select su.name from sys_user as su where su.user_id=union_integral_record.user_id) as usserName,
+        (select su.phone from sys_user as su where su.user_id=union_integral_record.user_id) as phone,
+        create_time,
+        update_time,
+        community_id
+    </sql>
+
+
+    <select id="getData" resultMap="UnionIntegralSummarizeMap">
+        select <include refid="base_sql"/>
+        from union_integral_summarize
+        where id=#{id}
+        order by create_time desc
+    </select>
+
+    <select id="getList" resultMap="UnionIntegralSummarizeMap">
+        select <include refid="base_sql"/>
+        from union_integral_summarize
+        <where>
+            1=1
+            <if test="communityId!=null and communityId!='' ">
+                and community_id=#{communityId}
+            </if>
+            <if test="userId!=null and userId!='' ">
+                and user_id=#{userId}
+            </if>
+        </where>
+        order by create_time desc
+    </select>
+
+    <insert id="insert">
+        insert into union_integral_summarize
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null">
+                id,
+            </if>
+            <if test="item.userId != null">
+                user_id,
+            </if>
+            <if test="item.allIntegral != null">
+                all_integral,
+            </if>
+            <if test="item.communityId != null">
+                community_id,
+            </if>
+            create_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null">
+                #{item.id},
+            </if>
+            <if test="item.userId != null">
+                #{item.userId},
+            </if>
+            <if test="item.allIntegral != null">
+                #{item.allIntegral},
+            </if>
+            <if test="item.communityId != null">
+                #{item.communityId},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="update">
+        update union_integral_summarize
+        <set>
+            <if test="item.id != null">
+                id=#{item.id},
+            </if>
+            <if test="item.userId != null">
+                user_id=#{item.userId},
+            </if>
+            <if test="item.allIntegral != null">
+                all_integral=#{item.allIntegral},
+            </if>
+            <if test="item.communityId != null">
+                community_id=#{item.communityId},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="delete" parameterType="String">
+        delete from union_integral_summarize where id=#{id}
+    </delete>
+
+
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionOutdoorLaborDynamicMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionOutdoorLaborDynamicMapper.xml
new file mode 100644
index 0000000..10e2126
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionOutdoorLaborDynamicMapper.xml
@@ -0,0 +1,5 @@
+<?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_equipment.dao.UnionOutdoorLaborDynamicMapper">
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionOutdoorServiceRangeMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionOutdoorServiceRangeMapper.xml
new file mode 100644
index 0000000..0780e51
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionOutdoorServiceRangeMapper.xml
@@ -0,0 +1,5 @@
+<?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_equipment.dao.UnionOutdoorServiceRangeMapper">
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionOutdoorSiteMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionOutdoorSiteMapper.xml
new file mode 100644
index 0000000..0fc73bc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionOutdoorSiteMapper.xml
@@ -0,0 +1,5 @@
+<?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_equipment.dao.UnionOutdoorSiteMapper">
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionReportMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionReportMapper.xml
new file mode 100644
index 0000000..bba0214
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionReportMapper.xml
@@ -0,0 +1,5 @@
+<?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_equipment.dao.UnionReportMapper">
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionUserMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionUserMapper.xml
new file mode 100644
index 0000000..407a010
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_equipment/target/classes/mapper/UnionUserMapper.xml
@@ -0,0 +1,5 @@
+<?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_equipment.dao.UnionUserMapper">
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/.gitignore b/springcloud_k8s_panzhihuazhihuishequ/service_grid/.gitignore
new file mode 100644
index 0000000..549e00a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/.gitignore
@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/service_grid/pom.xml
new file mode 100644
index 0000000..c115de3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/pom.xml
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.panzhihua</groupId>
+        <artifactId>zhihuishequ</artifactId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <groupId>com.panzhihua</groupId>
+    <artifactId>service_grid</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>service_grid</name>
+    <description>网格治理服务</description>
+
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-config</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid-spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.netflix.hystrix</groupId>
+            <artifactId>hystrix-javanica</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.panzhihua</groupId>
+            <artifactId>common</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.data</groupId>
+            <artifactId>spring-data-redis</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>commons-lang</groupId>
+            <artifactId>commons-lang</artifactId>
+            <version>2.6</version>
+        </dependency>
+        <!--添加监控依赖包-->
+        <dependency>
+            <groupId>io.micrometer</groupId>
+            <artifactId>micrometer-registry-prometheus</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+    </dependencies>
+
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>2.5.0</version>
+                <configuration>
+                    <mainClass>com.panzhihua.service_grid.ServiceGridApplication</mainClass>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>docker-maven-plugin</artifactId>
+                <version>1.2.0</version>
+                <configuration>
+                    <imageName>registry.cn-chengdu.aliyuncs.com/panzhihua/service_community:v1</imageName>
+                    <serverId></serverId>
+                    <baseImage>java</baseImage>
+                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
+                    <resources>
+                        <resource>
+                            <targetPath>/</targetPath>
+                            <directory>${project.build.directory}</directory>
+                            <include>${project.build.finalName}.jar</include>
+                        </resource>
+                    </resources>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <repositories>
+        <repository>
+            <id>spring-milestones</id>
+            <name>Spring Milestones</name>
+            <url>https://repo.spring.io/milestone</url>
+        </repository>
+    </repositories>
+
+</project>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/ServiceGridApplication.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/ServiceGridApplication.java
new file mode 100644
index 0000000..fe1ba2a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/ServiceGridApplication.java
@@ -0,0 +1,22 @@
+package com.panzhihua.service_grid;
+
+import com.panzhihua.service_grid.service.impl.EventVisitingTasksServiceImpl;
+import org.springframework.boot.SpringApplication;
+import org.springframework.cloud.client.SpringCloudApplication;
+import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.ComponentScan;
+
+@SpringCloudApplication
+@EnableFeignClients(basePackages = {"com.panzhihua.common.service"})
+@EnableEurekaClient
+@EnableCircuitBreaker
+@ComponentScan({"com.panzhihua.service_grid", "com.panzhihua.common"})
+public class ServiceGridApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(ServiceGridApplication.class, args);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/BigScreenApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/BigScreenApi.java
new file mode 100644
index 0000000..d0abb1e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/BigScreenApi.java
@@ -0,0 +1,123 @@
+package com.panzhihua.service_grid.api;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.service_grid.dao.EventGridMemberRelationMapper;
+import com.panzhihua.service_grid.service.EventGridMemberRelationService;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.bigscreen.event.ScreenDrawEventListDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.event.ScreenEventListDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_grid.service.EventService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @ClasssName BigScreenApi
+ * @Description 网格大屏/事件
+ * @Author lyq
+ * @Date 2021/6/18
+ * @Version 1.0
+ **/
+@Slf4j
+@RestController
+@RequestMapping("/screen/")
+public class BigScreenApi extends BaseController {
+
+    @Resource
+    private EventService eventService;
+    @Resource
+    private EventGridMemberRelationService eventGridMemberRelationService;
+
+    /**
+     * 事件大屏查询事件列表
+     * 
+     * @param eventListDTO
+     *            请求参数
+     * @return 事件列表
+     */
+    @PostMapping("/event/list")
+    public R eventList(@RequestBody ScreenEventListDTO eventListDTO) {
+        return eventService.getScreenEventList(eventListDTO);
+    }
+
+    /**
+     * 工作大屏-事件播报数据统计
+     * 
+     * @param communityId
+     *            社区id
+     * @return 事件播报数据统计
+     */
+    @GetMapping("/work/event")
+    public R eventWork(@RequestParam("communityId") Long communityId) {
+        return eventService.eventWork(communityId);
+    }
+
+    /**
+     * 绘制多边形统计数据
+     * 
+     * @param eventListDTO
+     *            请求参数
+     * @return 统计数据
+     */
+    @PostMapping("/getCivilDrawList")
+    public R getCivilDrawList(@RequestBody ScreenDrawEventListDTO eventListDTO) {
+        return eventService.getCivilDrawList(eventListDTO);
+    }
+
+    /**
+     * 新版绘制多边形统计数据
+     * @param eventListDTO
+     * @return
+     */
+    @PostMapping("/getCivilDrawListNew")
+    public R getCivilDrawListNew(@RequestBody ScreenDrawEventListDTO eventListDTO) {
+        return eventService.getCivilDrawListNew(eventListDTO);
+    }
+
+    /**
+     * 大屏-根据小区id查询小区统计人数
+     * 
+     * @param villageId
+     *            小区id
+     * @return 小区统计数据
+     */
+    @GetMapping("/village/statistics")
+    public R civilVillageStatistics(@RequestParam("villageId") Long villageId) {
+        return eventService.civilVillageStatistics(villageId);
+    }
+
+    /**
+     * 查询社区网格员运动轨迹
+     * @param communityId   社区id
+     * @return  社区网格员运动轨迹
+     */
+    @GetMapping("/member/trajectory")
+    public R getGridsMemberTrajectory(@RequestParam("communityId") Long communityId){
+        return eventGridMemberRelationService.getGridsMemberTrajectory(communityId);
+    }
+
+    /**
+     * 西区大数据分析平台-综合治理栏
+     * @return
+     */
+    @GetMapping("/comprehensive/governance")
+    public R getComprehensiveGovernanceStatics() {
+        return eventService.getComprehensiveGovernanceStatics();
+    }
+
+    /**
+     * 大屏-新根据小区id查询小区统计人数
+     *
+     * @param villageId
+     *            小区id
+     * @return 小区统计数据
+     */
+    @GetMapping("/village/statistics-new")
+    public R civilVillageStatisticsNew(@RequestParam("villageId") Long villageId) {
+        return eventService.civilVillageStatisticsNew(villageId);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EasyPhotoApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EasyPhotoApi.java
new file mode 100644
index 0000000..d0d644c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EasyPhotoApi.java
@@ -0,0 +1,151 @@
+package com.panzhihua.service_grid.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.model.dtos.grid.ComActEasyPhotoEditAdminDTO;
+import com.panzhihua.common.model.dtos.grid.ComActEasyPhotoHandleDTO;
+import com.panzhihua.common.model.dtos.grid.PageEasyAdminDTO;
+import com.panzhihua.common.model.dtos.grid.PageEasyAppDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_grid.service.ComActEasyPhotoService;
+import com.panzhihua.service_grid.service.ComActEasyPhotoTypeService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ *
+ * @author lyq
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Slf4j
+@RestController
+@RequestMapping("/easy")
+public class EasyPhotoApi {
+
+    @Resource
+    private ComActEasyPhotoService comActEasyPhotoService;
+    @Resource
+    private ComActEasyPhotoTypeService comActEasyPhotoTypeService;
+
+    /**
+     * 分页查询随手拍
+     * 
+     * @param easyAppDTO
+     *            请求参数
+     * @return 随手拍列表
+     */
+    @PostMapping("list")
+    public R list(@RequestBody PageEasyAppDTO easyAppDTO) {
+        return comActEasyPhotoService.query(easyAppDTO);
+    }
+
+    /**
+     * 根据随手拍id查询随手拍详情
+     * 
+     * @param easyId
+     *            随手拍id
+     * @return 随手拍详情
+     */
+    @PostMapping("detail")
+    public R detail(@RequestParam("easyId") Long easyId) {
+        return comActEasyPhotoService.detail(easyId);
+    }
+
+    /**
+     * 查询随手拍类型列表
+     * 
+     * @return 类型列表
+     */
+    @PostMapping("type/list")
+    public R typeList() {
+        return comActEasyPhotoTypeService.typeList();
+    }
+
+    /**
+     * 随手拍处理
+     * 
+     * @param photoHandleDTO
+     *            请求参数
+     * @return 处理结果
+     */
+    @PostMapping("handle")
+    public R easyHandle(@RequestBody ComActEasyPhotoHandleDTO photoHandleDTO) {
+        return comActEasyPhotoService.easyHandle(photoHandleDTO);
+    }
+
+    /**
+     * 随手拍公示状态切换
+     * 
+     * @param photoHandleDTO
+     *            请求参数
+     * @return 切换结果
+     */
+    @PostMapping("publicity")
+    public R easyPublicity(@RequestBody ComActEasyPhotoHandleDTO photoHandleDTO) {
+        return comActEasyPhotoService.easyPublicity(photoHandleDTO);
+    }
+
+    /**
+     * 随手拍上报社区
+     * 
+     * @param photoHandleDTO
+     *            请求参数
+     * @return 上报结果
+     */
+    @PostMapping("report")
+    public R easyReport(@RequestBody ComActEasyPhotoHandleDTO photoHandleDTO) {
+        return comActEasyPhotoService.easyReport(photoHandleDTO);
+    }
+
+    /**
+     * 后台管理-分页查询随手拍列表
+     * 
+     * @param easyAppDTO
+     *            请求参数
+     * @return 随手拍列表
+     */
+    @PostMapping("admin/list")
+    public R easyListByAdmin(@RequestBody PageEasyAdminDTO easyAppDTO) {
+        return comActEasyPhotoService.easyListByAdmin(easyAppDTO);
+    }
+
+    /**
+     * 后台管理-随手拍详情
+     * 
+     * @param easyId
+     *            随手拍id
+     * @return 随手拍详情
+     */
+    @PostMapping("admin/detail")
+    public R easyDetailByAdmin(@RequestParam("easyId") Long easyId) {
+        return comActEasyPhotoService.easyDetailByAdmin(easyId);
+    }
+
+    /**
+     * 后台管理-随手拍处理
+     * 
+     * @param photoHandleDTO
+     *            请求参数
+     * @return 处理结果
+     */
+    @PostMapping("admin/handle")
+    public R easyHandleByAdmin(@RequestBody ComActEasyPhotoHandleDTO photoHandleDTO) {
+        return comActEasyPhotoService.easyHandleByAdmin(photoHandleDTO);
+    }
+
+    /**
+     * 后台管理-批量修改随手拍公示状态/删除随手拍
+     * 
+     * @param photoEditDTO
+     *            请求参数
+     * @return 修改/删除结果
+     */
+    @PostMapping("admin/publicity")
+    public R easyPublicityByAdmin(@RequestBody ComActEasyPhotoEditAdminDTO photoEditDTO) {
+        return comActEasyPhotoService.easyPublicityByAdmin(photoEditDTO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventApi.java
new file mode 100644
index 0000000..ea11636
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventApi.java
@@ -0,0 +1,380 @@
+package com.panzhihua.service_grid.api;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.*;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.model.dtos.grid.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActVO;
+import com.panzhihua.common.model.vos.grid.EventDetailsVO;
+import com.panzhihua.common.model.vos.grid.EventVO;
+import com.panzhihua.service_grid.service.EventService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Slf4j
+@RestController
+@RequestMapping("/event")
+public class EventApi {
+
+    @Resource
+    private EventService eventService;
+
+    /**
+     * description 获取所有未上传到浪潮平台的事件列表
+     *
+     * @return String 事件列表
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @GetMapping("/getUnUploadEvent")
+    List<EventDetailsVO> getUnUploadEvent() {
+        return eventService.getUnUploadEvent();
+    }
+
+    /**
+     * description 更新上传是否成功标识
+     * 
+     * @param id
+     *            事件主键ID
+     * @return Boolean 上传是否成功
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @GetMapping("/updateLcUploadFlag")
+    Boolean updateLcUploadFlag(Long id) {
+        return eventService.updateLcUploadFlag(id);
+    }
+
+    /**
+     * 分页查找事件
+     * 
+     * @param pageEventDTO
+     * @return 维护结果
+     */
+    @PostMapping("/page")
+    R<IPage<EventVO>> query(@RequestBody PageEventDTO pageEventDTO) {
+        return eventService.query(pageEventDTO);
+    }
+
+    /**
+     * 删除事件
+     * 
+     * @param commonEventDeleteDTO
+     * @return 平台用户信息
+     */
+    @PostMapping("/delete")
+    R delete(@RequestBody CommonEventDeleteDTO commonEventDeleteDTO) {
+        return eventService.delete(commonEventDeleteDTO);
+    }
+
+    /**
+     * 批量删除
+     * 
+     * @param eventDeleteDTO
+     * @return
+     */
+    @PostMapping("/deleteEventBatch")
+    R deleteEventBatch(@RequestBody EventDeleteDTO eventDeleteDTO) {
+        return eventService.deleteEventBatch(eventDeleteDTO);
+    }
+
+    /**
+     * 查询事件详细信息
+     * 
+     * @param id
+     *            事件 id
+     * @return 查找结果
+     */
+    @PostMapping("/{id}")
+    R<EventDetailsVO> eventDetails(@PathVariable("id") Long id) {
+        return eventService.eventDetails(id);
+    }
+
+    /**
+     * 添加突发事件
+     * 
+     * @param commonEventAddDTO
+     * @return 新增结果
+     */
+    @PostMapping("/addCommon")
+    R addCommon(@RequestBody CommonEventAddDTO commonEventAddDTO) {
+        return eventService.addCommon(commonEventAddDTO);
+    }
+
+    /**
+     * 保存草稿
+     * 
+     * @param {classNameFirstLower}AddDTO
+     *            添加事件传递对象
+     * @return 新增结果
+     */
+    @PostMapping("/saveDraft")
+    R saveDraft(@RequestBody CommonEventEditDTO commonEventEditDTO) {
+        return eventService.saveDraft(commonEventEditDTO);
+    }
+
+    /**
+     * 事件上报社区
+     * 
+     * @param commonEventReportDTO
+     * @return
+     */
+    @PostMapping("/report")
+    R report(@RequestBody CommonEventReportDTO commonEventReportDTO) {
+        return eventService.report(commonEventReportDTO);
+    }
+
+    /**
+     * 事件撤销
+     * 
+     * @param eventRevokeDTO
+     * @return
+     */
+    @PostMapping("/emergenciesRevoke")
+    R emergenciesRevoke(@RequestBody EventRevokeDTO eventRevokeDTO) {
+        return eventService.emergenciesRevoke(eventRevokeDTO);
+    }
+
+    /**
+     * 处理事件
+     * 
+     * @param commonEventDealDTO
+     * @return
+     */
+    @PostMapping("/dealEvent")
+    R dealEvent(@RequestBody CommonEventDealDTO commonEventDealDTO) {
+        switch (commonEventDealDTO.getOperateType()) {
+            case 1:
+                return eventService.communityDealEvent(commonEventDealDTO);
+            case 0:
+                return eventService.dealEvent(commonEventDealDTO);
+            default:
+                return R.fail("参数错误");
+        }
+    }
+
+    /**
+     * 处理事件
+     * 
+     * @param commonEventVerifyDTO
+     * @return
+     */
+    @PostMapping("/verify")
+    R verifyEvent(@RequestBody CommonEventVerifyDTO commonEventVerifyDTO) {
+        return eventService.verifyEvent(commonEventVerifyDTO);
+    }
+
+    /**
+     * 重新发布事件
+     * 
+     * @param commonEventRepublishDTO
+     * @return
+     */
+    @PostMapping("/republish")
+    R republishEvent(@RequestBody CommonEventRepublishDTO commonEventRepublishDTO) {
+        return eventService.republishEvent(commonEventRepublishDTO);
+    }
+
+    /**
+     * 批量发布事件
+     * 
+     * @param commonEventBatchRepublishDTO
+     * @return
+     */
+    @PostMapping("/batchRepublishEvent")
+    R batchRepublishEvent(@RequestBody CommonEventBatchRepublishDTO commonEventBatchRepublishDTO) {
+        return eventService.batchRepublishEvent(commonEventBatchRepublishDTO);
+    }
+
+    /**
+     * 草稿发布
+     * 
+     * @param commonEventPublicDTO
+     * @return
+     */
+    @PostMapping("/draftRelease")
+    R draftRelease(@RequestBody CommonEventPublicDTO commonEventPublicDTO) {
+        return eventService.draftRelease(commonEventPublicDTO);
+    }
+
+    /**
+     * 保存殊人群事件上报草稿
+     * 
+     * @param specialEventEditDTO
+     * @return
+     */
+    @PostMapping("/saveSpecialDraft")
+    R saveSpecialDraft(@RequestBody SpecialEventEditDTO specialEventEditDTO) {
+        return eventService.saveSpecialDraft(specialEventEditDTO);
+    }
+
+    /**
+     * 特殊人员信息上报
+     * 
+     * @param specialEventAddDTO
+     * @return
+     */
+    @PostMapping("/addSpecial")
+    R addSpecial(@RequestBody SpecialEventAddDTO specialEventAddDTO) {
+        return eventService.addSpecial(specialEventAddDTO);
+    }
+
+    /**
+     * 获取指定特殊人员信息
+     * 
+     * @param idCard
+     * @return
+     */
+    @PostMapping("/getSpecialPopulation")
+    R getSpecialPopulation(@RequestBody String idCard) {
+        return eventService.getSpecialPopulation(idCard);
+    }
+
+    /**
+     * 添加发布宣传教育事件
+     * 
+     * @param publicityEventAddDTO
+     *            请求参数
+     * @return 上报结果
+     */
+    @PostMapping("/addPublicity")
+    R addPublicity(@RequestBody PublicityEventAddDTO publicityEventAddDTO) {
+        return eventService.addPublicity(publicityEventAddDTO);
+    }
+
+    /**
+     * 保存宣传教育事件草稿
+     * 
+     * @param publicityEventEditDTO
+     *            请求参数
+     * @return 保存结果
+     */
+    @PostMapping("/savePublicityDraft")
+    R savePublicityDraft(@RequestBody PublicityEventEditDTO publicityEventEditDTO) {
+        return eventService.savePublicityDraft(publicityEventEditDTO);
+    }
+
+    /**
+     * 分页查询宣传教育事件
+     * 
+     * @param pagePublicityEventDTO
+     *            请求参数
+     * @return 结果
+     */
+    @PostMapping("/queryPublicity")
+    R queryPublicity(@RequestBody PagePublicityEventDTO pagePublicityEventDTO) {
+        return eventService.selectPublicity(pagePublicityEventDTO);
+    }
+
+    /**
+     * 分页查询宣传教育事件
+     * 
+     * @param pagePublicityEventDTO
+     *            请求参数
+     * @return 结果
+     */
+    @PostMapping("/queryPublicityCommunity")
+    R queryPublicityCommunity(@RequestBody PagePublicityEventCommunityDTO pagePublicityEventDTO) {
+        return eventService.selectCommunityPublicity(pagePublicityEventDTO);
+    }
+
+    /**
+     * 分页查询宣传教育事件
+     * 
+     * @return 结果
+     */
+    @PostMapping("/actList")
+    R<ComActVO> actList() {
+        return eventService.actList();
+    }
+
+    /**
+     * 查询管理事件
+     * 
+     * @param pageEventManageDTO
+     * @return
+     */
+    @PostMapping("/manage/list")
+    R queryEventToManage(@RequestBody PageEventManageDTO pageEventManageDTO) {
+        return eventService.eventToManage(pageEventManageDTO);
+    }
+
+    /**
+     * 社区网格后台标记事件无效
+     * 
+     * @param eventRevokeDTO
+     * @return
+     */
+    @PostMapping("/markInvalid")
+    R markEventInvalid(@RequestBody EventRevokeDTO eventRevokeDTO) {
+        return eventService.markEventInvalid(eventRevokeDTO);
+    }
+
+    /**
+     * 批量事件标为无效
+     * 
+     * @param eventBatchRevokeDTO
+     * @return
+     */
+    @PostMapping("/batchMarkInvalid")
+    R batchMarkEventInvalid(@RequestBody EventBatchRevokeDTO eventBatchRevokeDTO) {
+        return eventService.batchMarkEventInvalid(eventBatchRevokeDTO);
+    }
+
+    /**
+     * 社区网格后台重新发布已标记无效的事件
+     * 
+     * @param commonEventRepublishDTO
+     * @return
+     */
+    @PostMapping("/republishInvalid")
+    R republishInvalidEvent(@RequestBody CommonEventRepublishDTO commonEventRepublishDTO) {
+        return eventService.republishInvalidEvent(commonEventRepublishDTO);
+    }
+
+    /**
+     * 查询距离当前事件最近的网格数据
+     * 
+     * @param pageEventGridNearbyDTO
+     * @return
+     */
+    @PostMapping("/grid/nearby")
+    R getNearByGrid(@RequestBody PageEventGridNearbyDTO pageEventGridNearbyDTO) {
+        return eventService.getNearByGrid(pageEventGridNearbyDTO);
+    }
+
+    /**
+     * 直接上报社区
+     * 
+     * @param commonEventDirectReportDTO
+     * @return
+     */
+    @PostMapping("/reportDirect")
+    R reportDirect(@RequestBody CommonEventDirectReportDTO commonEventDirectReportDTO) {
+        return eventService.reportDirect(commonEventDirectReportDTO);
+    }
+
+    /**
+     * 特殊人群上报-社区人口数据列表
+     * 
+     * @param specialPopulationDTO
+     *            请求参数
+     * @return 社区人口数据列表
+     */
+    @PostMapping("/special/population/list")
+    public R specialPopulationList(@RequestBody PageEventSpecialPopulationDTO specialPopulationDTO) {
+        return eventService.specialPopulationList(specialPopulationDTO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventApplicationAppReleaseApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventApplicationAppReleaseApi.java
new file mode 100644
index 0000000..ee90a96
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventApplicationAppReleaseApi.java
@@ -0,0 +1,101 @@
+package com.panzhihua.service_grid.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.*;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.model.dtos.grid.EventApplicationAppReleaseAddDTO;
+import com.panzhihua.common.model.dtos.grid.EventApplicationAppReleaseDeleteDTO;
+import com.panzhihua.common.model.dtos.grid.EventApplicationAppReleaseEditDTO;
+import com.panzhihua.common.model.dtos.grid.PageEventApplicationAppReleaseDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.EventApplicationAppReleaseDetailsVO;
+import com.panzhihua.common.model.vos.grid.EventApplicationAppReleaseVO;
+import com.panzhihua.service_grid.service.EventApplicationAppReleaseService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Slf4j
+@RestController
+@RequestMapping("/eventapplicationapprelease")
+public class EventApplicationAppReleaseApi {
+
+    @Resource
+    private EventApplicationAppReleaseService eventApplicationAppReleaseService;
+
+    /**
+     * 新增APP应用版本信息
+     * 
+     * @param eventApplicationAppReleaseAddDTO
+     * @return 新增结果
+     */
+    @PostMapping("/add")
+    R add(@RequestBody EventApplicationAppReleaseAddDTO eventApplicationAppReleaseAddDTO) {
+        return eventApplicationAppReleaseService.add(eventApplicationAppReleaseAddDTO);
+    }
+
+    /**
+     * 修改APP应用版本信息
+     * 
+     * @param eventApplicationAppReleaseEditDTO
+     * @return 维护结果
+     */
+    @PostMapping("/edit")
+    R edit(@RequestBody EventApplicationAppReleaseEditDTO eventApplicationAppReleaseEditDTO) {
+        return eventApplicationAppReleaseService.edit(eventApplicationAppReleaseEditDTO);
+    }
+
+    /**
+     * 分页查找APP应用版本信息
+     * 
+     * @param pageEventApplicationAppReleaseDTO
+     * @return 维护结果
+     */
+    @PostMapping("/page")
+    R<IPage<EventApplicationAppReleaseVO>>
+        query(@RequestBody PageEventApplicationAppReleaseDTO pageEventApplicationAppReleaseDTO) {
+        return eventApplicationAppReleaseService.query(pageEventApplicationAppReleaseDTO);
+    }
+
+    /**
+     * 删除APP应用版本信息
+     * 
+     * @param EventApplicationAppReleaseDeleteDTO
+     * @return 平台用户信息
+     */
+    @PostMapping("/delete")
+    R delete(@RequestBody EventApplicationAppReleaseDeleteDTO EventApplicationAppReleaseDeleteDTO) {
+        return eventApplicationAppReleaseService.delete(EventApplicationAppReleaseDeleteDTO);
+    }
+
+    /**
+     * 查询APP应用版本信息详细信息
+     * 
+     * @param id
+     *            APP应用版本信息 id
+     * @return 查找结果
+     */
+    @PostMapping("/{id}")
+    R<EventApplicationAppReleaseDetailsVO> eventApplicationAppReleaseDetails(@PathVariable("id") Long id) {
+        return eventApplicationAppReleaseService.eventApplicationAppReleaseDetails(id);
+    }
+
+    /**
+     * 获取最新版本信息
+     * 
+     * @return 版本信息
+     */
+    @GetMapping("/edition")
+    public R editionUpdate() {
+        return eventApplicationAppReleaseService.editionUpdate();
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventApplicationUserNoticeApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventApplicationUserNoticeApi.java
new file mode 100644
index 0000000..50366f5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventApplicationUserNoticeApi.java
@@ -0,0 +1,91 @@
+package com.panzhihua.service_grid.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.*;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.model.dtos.grid.EventApplicationUserNoticeAddDTO;
+import com.panzhihua.common.model.dtos.grid.EventApplicationUserNoticeDeleteDTO;
+import com.panzhihua.common.model.dtos.grid.EventApplicationUserNoticeEditDTO;
+import com.panzhihua.common.model.dtos.grid.PageEventApplicationUserNoticeDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.EventApplicationUserNoticeDetailsVO;
+import com.panzhihua.common.model.vos.grid.EventApplicationUserNoticeVO;
+import com.panzhihua.service_grid.service.EventApplicationUserNoticeService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Slf4j
+@RestController
+@RequestMapping("/eventapplicationusernotice")
+public class EventApplicationUserNoticeApi {
+
+    @Resource
+    private EventApplicationUserNoticeService eventApplicationUserNoticeService;
+
+    /**
+     * 新增用户协议和隐私政策信息
+     * 
+     * @param eventApplicationUserNoticeAddDTO
+     * @return 新增结果
+     */
+    @PostMapping("/add")
+    R add(@RequestBody EventApplicationUserNoticeAddDTO eventApplicationUserNoticeAddDTO) {
+        return eventApplicationUserNoticeService.add(eventApplicationUserNoticeAddDTO);
+    }
+
+    /**
+     * 修改用户协议和隐私政策信息
+     * 
+     * @param eventApplicationUserNoticeEditDTO
+     * @return 维护结果
+     */
+    @PostMapping("/edit")
+    R edit(@RequestBody EventApplicationUserNoticeEditDTO eventApplicationUserNoticeEditDTO) {
+        return eventApplicationUserNoticeService.edit(eventApplicationUserNoticeEditDTO);
+    }
+
+    /**
+     * 分页查找用户协议和隐私政策信息
+     * 
+     * @param pageEventApplicationUserNoticeDTO
+     * @return 维护结果
+     */
+    @PostMapping("/page")
+    R<IPage<EventApplicationUserNoticeVO>>
+        query(@RequestBody PageEventApplicationUserNoticeDTO pageEventApplicationUserNoticeDTO) {
+        return eventApplicationUserNoticeService.query(pageEventApplicationUserNoticeDTO);
+    }
+
+    /**
+     * 删除用户协议和隐私政策信息
+     * 
+     * @param EventApplicationUserNoticeDeleteDTO
+     * @return 平台用户信息
+     */
+    @PostMapping("/delete")
+    R delete(@RequestBody EventApplicationUserNoticeDeleteDTO EventApplicationUserNoticeDeleteDTO) {
+        return eventApplicationUserNoticeService.delete(EventApplicationUserNoticeDeleteDTO);
+    }
+
+    /**
+     * 查询用户协议和隐私政策信息详细信息
+     * 
+     * @param id
+     *            用户协议和隐私政策信息 id
+     * @return 查找结果
+     */
+    @PostMapping("/{id}")
+    R<EventApplicationUserNoticeDetailsVO> eventApplicationUserNoticeDetails(@PathVariable("id") Long id) {
+        return eventApplicationUserNoticeService.eventApplicationUserNoticeDetails(id);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventGridDataApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventGridDataApi.java
new file mode 100644
index 0000000..48a1e3d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventGridDataApi.java
@@ -0,0 +1,197 @@
+package com.panzhihua.service_grid.api;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.model.dtos.grid.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.EventGridDataDetailsVO;
+import com.panzhihua.service_grid.service.EventGridDataService;
+import com.panzhihua.service_grid.service.LcCompareCodeService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Slf4j
+@RestController
+@RequestMapping("/eventgriddata")
+public class EventGridDataApi {
+
+    @Resource
+    private EventGridDataService eventGridDataService;
+    @Resource
+    private LcCompareCodeService lcCompareCodeService;
+
+    /**
+     * 查询用户网格
+     * 
+     * @param pageEventGridDataDTO
+     * @return
+     */
+    @PostMapping("/userGrid")
+    R userGrid(@RequestBody PageEventGridDataDTO pageEventGridDataDTO) {
+        return eventGridDataService.getUserGrid(pageEventGridDataDTO);
+    }
+
+    /**
+     * 新增区县/街道/社区/网格员网格数据管理
+     * 
+     * @param eventGridDataAddDTO
+     * @return 新增结果
+     */
+    @PostMapping("/add")
+    R add(@RequestBody EventGridDataAddDTO eventGridDataAddDTO) {
+        return eventGridDataService.add(eventGridDataAddDTO);
+    }
+
+    /**
+     * 修改区县/街道/社区/网格员网格数据管理
+     * 
+     * @param eventGridDataEditDTO
+     * @return 维护结果
+     */
+    @PostMapping("/edit")
+    R edit(@RequestBody EventGridDataEditDTO eventGridDataEditDTO) {
+        return eventGridDataService.edit(eventGridDataEditDTO);
+    }
+
+    /**
+     * 删除区县/街道/社区/网格员网格数据管理
+     * 
+     * @param EventGridDataDeleteDTO
+     * @return 平台用户信息
+     */
+    @PostMapping("/delete")
+    R delete(@RequestBody EventGridDataDeleteDTO EventGridDataDeleteDTO) {
+        return eventGridDataService.delete(EventGridDataDeleteDTO);
+    }
+
+    /**
+     * 查询区县/街道/社区/网格员网格数据管理详细信息
+     * 
+     * @param id
+     *            区县/街道/社区/网格员网格数据管理 id
+     * @return 查找结果
+     */
+    @PostMapping("/{id}")
+    R<EventGridDataDetailsVO> eventGridDataDetails(@PathVariable("id") Long id) {
+        return eventGridDataService.eventGridDataDetails(id);
+    }
+
+    /**
+     * 分页查询网格
+     * 
+     * @param eventGridDataDTO
+     *            请求参数
+     * @return 网格列表
+     */
+    @PostMapping("/data/list")
+    public R getGridMemberList(@RequestBody PageEventGridDataAdminDTO eventGridDataDTO) {
+        return eventGridDataService.getGridMemberList(eventGridDataDTO);
+    }
+
+    /**
+     * 查询社区下所有网格员
+     * 
+     * @param communityId
+     *            社区id
+     * @return 网格员列表
+     */
+    @PostMapping("/member/list")
+    public R getGridMemberLists(@RequestParam(value = "communityId", required = false) Long communityId) {
+        return eventGridDataService.getGridMemberLists(communityId);
+    }
+
+    /**
+     * 首页待处理
+     * 
+     * @param eventGridTodoDataDTO
+     * @return
+     */
+    @PostMapping("/getGridTodoData")
+    R getGridTodoData(@RequestBody EventGridTodoDataDTO eventGridTodoDataDTO) {
+        return eventGridDataService.getGridTodoData(eventGridTodoDataDTO);
+    }
+
+    /**
+     * 网格数据待处理统计信息
+     * 
+     * @param eventGridStatisticsDataDTO
+     * @return
+     */
+    @PostMapping("/eventgriddata/getGridStatisticsdData")
+    R getGridStatisticsdData(@RequestBody EventGridStatisticsDataDTO eventGridStatisticsDataDTO) {
+        return R.ok();
+    }
+
+    /**
+     * 后台新增网格
+     * 
+     * @param eventGridDataDTO
+     *            请求参数
+     * @return 新增结果
+     */
+    @PostMapping("/data/add")
+    public R addGridDataByAdmin(@RequestBody EventGridDataAddAdminDTO eventGridDataDTO) {
+        return eventGridDataService.addGridDataByAdmin(eventGridDataDTO);
+    }
+
+    /**
+     * 后台修改网格
+     * 
+     * @param eventGridDataDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    @PostMapping("/data/edit")
+    public R editGridDataByAdmin(@RequestBody EventGridDataEditAdminDTO eventGridDataDTO) {
+        return eventGridDataService.editGridDataByAdmin(eventGridDataDTO);
+    }
+
+    /**
+     * 查询网格下所有网格员
+     * 
+     * @param gridId
+     * @return
+     */
+    @PostMapping("/grid/member")
+    R getGridMemberListsByGrid(@RequestParam("gridId") Long gridId) {
+        return eventGridDataService.getGridMemberListsByGrid(gridId);
+    }
+
+    /**
+     * 查询网格下所有网格员
+     * 
+     * @param communityId
+     * @return
+     */
+    @PostMapping("/communitygrid")
+    R getGridDataListByCommunity(@RequestParam("gridId") Long communityId) {
+        return eventGridDataService.getGridDataListByCommunity(communityId);
+    }
+
+    @PostMapping("/data/delete")
+    public R deleteGridDataByAdmin(@RequestBody List<Long> Ids) {
+        return eventGridDataService.deleteGridDataByAdmin(Ids);
+    }
+
+    /**
+     * 综治后台-查询所有市平台网格列表
+     * 
+     * @return 市平台网格列表
+     */
+    @GetMapping("/lc/list")
+    public R getLcGridLists() {
+        return lcCompareCodeService.getLcGridLists();
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventGridMemberGpsLogApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventGridMemberGpsLogApi.java
new file mode 100644
index 0000000..51ade0d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventGridMemberGpsLogApi.java
@@ -0,0 +1,91 @@
+package com.panzhihua.service_grid.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.*;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.model.dtos.grid.EventGridMemberGpsLogDeleteDTO;
+import com.panzhihua.common.model.dtos.grid.EventGridMemberGpsLogEditDTO;
+import com.panzhihua.common.model.dtos.grid.PageEventGridMemberGpsLogDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.EventGridMemberGpsLogDetailsVO;
+import com.panzhihua.common.model.vos.grid.EventGridMemberGpsLogVO;
+import com.panzhihua.common.model.vos.grid.GridMemberPositionDTO;
+import com.panzhihua.service_grid.service.EventGridMemberGpsLogService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Slf4j
+@RestController
+@RequestMapping("/eventgridmembergpslog")
+public class EventGridMemberGpsLogApi {
+
+    @Resource
+    private EventGridMemberGpsLogService eventGridMemberGpsLogService;
+
+    /**
+     * 新增网格员定时上报地理信息
+     * 
+     * @param memberPositionDTO
+     *            请求参数
+     * @return 新增结果
+     */
+    @PostMapping("/add")
+    public R add(@RequestBody GridMemberPositionDTO memberPositionDTO) {
+        return eventGridMemberGpsLogService.add(memberPositionDTO);
+    }
+
+    /**
+     * 修改网格员定时上报地理信息
+     * 
+     * @param eventGridMemberGpsLogEditDTO
+     * @return 维护结果
+     */
+    @PostMapping("/edit")
+    R edit(@RequestBody EventGridMemberGpsLogEditDTO eventGridMemberGpsLogEditDTO) {
+        return eventGridMemberGpsLogService.edit(eventGridMemberGpsLogEditDTO);
+    }
+
+    /**
+     * 分页查找网格员定时上报地理信息
+     * 
+     * @param pageEventGridMemberGpsLogDTO
+     * @return 维护结果
+     */
+    @PostMapping("/page")
+    R<IPage<EventGridMemberGpsLogVO>> query(@RequestBody PageEventGridMemberGpsLogDTO pageEventGridMemberGpsLogDTO) {
+        return eventGridMemberGpsLogService.query(pageEventGridMemberGpsLogDTO);
+    }
+
+    /**
+     * 删除网格员定时上报地理信息
+     * 
+     * @param EventGridMemberGpsLogDeleteDTO
+     * @return 平台用户信息
+     */
+    @PostMapping("/delete")
+    R delete(@RequestBody EventGridMemberGpsLogDeleteDTO EventGridMemberGpsLogDeleteDTO) {
+        return eventGridMemberGpsLogService.delete(EventGridMemberGpsLogDeleteDTO);
+    }
+
+    /**
+     * 查询网格员定时上报地理信息详细信息
+     * 
+     * @param id
+     *            网格员定时上报地理信息 id
+     * @return 查找结果
+     */
+    @PostMapping("/{id}")
+    R<EventGridMemberGpsLogDetailsVO> eventGridMemberGpsLogDetails(@PathVariable("id") Long id) {
+        return eventGridMemberGpsLogService.eventGridMemberGpsLogDetails(id);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventGridMemberRelationApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventGridMemberRelationApi.java
new file mode 100644
index 0000000..24610ac
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventGridMemberRelationApi.java
@@ -0,0 +1,43 @@
+package com.panzhihua.service_grid.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.model.dtos.grid.admin.EventGridMemberCascadeAddDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_grid.service.EventGridMemberRelationService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Slf4j
+@RestController
+@RequestMapping("/eventgridmemberrelation")
+public class EventGridMemberRelationApi {
+
+    @Resource
+    private EventGridMemberRelationService eventGridMemberRelationService;
+
+    /**
+     * 查询市平台网格员列表
+     * 
+     * @return 市平台网格员列表
+     */
+    @GetMapping("/lc/list")
+    public R lcList() {
+        return eventGridMemberRelationService.lcList();
+    }
+
+    @PostMapping("/cascade/list")
+    public R gridMemberCascadeList(@RequestBody EventGridMemberCascadeAddDTO memberCascadeAddDTO) {
+        return eventGridMemberRelationService.gridMemberCascadeList(memberCascadeAddDTO);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventGridMemberWarnLogApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventGridMemberWarnLogApi.java
new file mode 100644
index 0000000..4012fe7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventGridMemberWarnLogApi.java
@@ -0,0 +1,100 @@
+package com.panzhihua.service_grid.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.*;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.model.dtos.grid.EventGridMemberWarnLogAddDTO;
+import com.panzhihua.common.model.dtos.grid.EventGridMemberWarnLogDeleteDTO;
+import com.panzhihua.common.model.dtos.grid.EventGridMemberWarnLogEditDTO;
+import com.panzhihua.common.model.dtos.grid.PageEventGridMemberWarnLogDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.EventGridMemberWarnLogDetailsVO;
+import com.panzhihua.common.model.vos.grid.EventGridMemberWarnLogVO;
+import com.panzhihua.service_grid.service.EventGridMemberWarnLogService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Slf4j
+@RestController
+@RequestMapping("/eventgridmemberwarnlog")
+public class EventGridMemberWarnLogApi {
+
+    @Resource
+    private EventGridMemberWarnLogService eventGridMemberWarnLogService;
+
+    /**
+     * 新增网格员定时上报地理预警记录
+     * 
+     * @param eventGridMemberWarnLogAddDTO
+     * @return 新增结果
+     */
+    @PostMapping("/add")
+    R add(@RequestBody EventGridMemberWarnLogAddDTO eventGridMemberWarnLogAddDTO) {
+        return eventGridMemberWarnLogService.add(eventGridMemberWarnLogAddDTO);
+    }
+
+    /**
+     * 修改网格员定时上报地理预警记录
+     * 
+     * @param eventGridMemberWarnLogEditDTO
+     * @return 维护结果
+     */
+    @PostMapping("/edit")
+    R edit(@RequestBody EventGridMemberWarnLogEditDTO eventGridMemberWarnLogEditDTO) {
+        return eventGridMemberWarnLogService.edit(eventGridMemberWarnLogEditDTO);
+    }
+
+    /**
+     * 分页查找网格员定时上报地理预警记录
+     * 
+     * @param pageEventGridMemberWarnLogDTO
+     * @return 维护结果
+     */
+    @PostMapping("/page")
+    R<IPage<EventGridMemberWarnLogVO>> query(@RequestBody PageEventGridMemberWarnLogDTO pageEventGridMemberWarnLogDTO) {
+        return eventGridMemberWarnLogService.query(pageEventGridMemberWarnLogDTO);
+    }
+
+    /**
+     * 删除网格员定时上报地理预警记录
+     * 
+     * @param EventGridMemberWarnLogDeleteDTO
+     * @return 平台用户信息
+     */
+    @PostMapping("/delete")
+    R delete(@RequestBody EventGridMemberWarnLogDeleteDTO EventGridMemberWarnLogDeleteDTO) {
+        return eventGridMemberWarnLogService.delete(EventGridMemberWarnLogDeleteDTO);
+    }
+
+    /**
+     * 查询网格员定时上报地理预警记录详细信息
+     * 
+     * @param id
+     *            网格员定时上报地理预警记录 id
+     * @return 查找结果
+     */
+    @PostMapping("/{id}")
+    R<EventGridMemberWarnLogDetailsVO> eventGridMemberWarnLogDetails(@PathVariable("id") Long id) {
+        return eventGridMemberWarnLogService.eventGridMemberWarnLogDetails(id);
+    }
+
+    /**
+     * 定时任务扫描网格员工作状态
+     * 
+     * @return 定时任务扫描结果
+     */
+    @PostMapping("/judge")
+    public R timedTaskGridMember() {
+        return eventGridMemberWarnLogService.timedTaskGridMember();
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventMainMemberApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventMainMemberApi.java
new file mode 100644
index 0000000..99cd76f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventMainMemberApi.java
@@ -0,0 +1,90 @@
+package com.panzhihua.service_grid.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.*;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.model.dtos.grid.EventMainMemberAddDTO;
+import com.panzhihua.common.model.dtos.grid.EventMainMemberDeleteDTO;
+import com.panzhihua.common.model.dtos.grid.EventMainMemberEditDTO;
+import com.panzhihua.common.model.dtos.grid.PageEventMainMemberDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.EventMainMemberDetailsVO;
+import com.panzhihua.common.model.vos.grid.EventMainMemberVO;
+import com.panzhihua.service_grid.service.EventMainMemberService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Slf4j
+@RestController
+@RequestMapping("/eventmainmember")
+public class EventMainMemberApi {
+
+    @Resource
+    private EventMainMemberService eventMainMemberService;
+
+    /**
+     * 新增重点人群记录
+     * 
+     * @param eventMainMemberAddDTO
+     * @return 新增结果
+     */
+    @PostMapping("/add")
+    R add(@RequestBody EventMainMemberAddDTO eventMainMemberAddDTO) {
+        return eventMainMemberService.add(eventMainMemberAddDTO);
+    }
+
+    /**
+     * 修改重点人群记录
+     * 
+     * @param eventMainMemberEditDTO
+     * @return 维护结果
+     */
+    @PostMapping("/edit")
+    R edit(@RequestBody EventMainMemberEditDTO eventMainMemberEditDTO) {
+        return eventMainMemberService.edit(eventMainMemberEditDTO);
+    }
+
+    /**
+     * 分页查找重点人群记录
+     * 
+     * @param pageEventMainMemberDTO
+     * @return 维护结果
+     */
+    @PostMapping("/page")
+    R<IPage<EventMainMemberVO>> query(@RequestBody PageEventMainMemberDTO pageEventMainMemberDTO) {
+        return eventMainMemberService.query(pageEventMainMemberDTO);
+    }
+
+    /**
+     * 删除重点人群记录
+     * 
+     * @param EventMainMemberDeleteDTO
+     * @return 平台用户信息
+     */
+    @PostMapping("/delete")
+    R delete(@RequestBody EventMainMemberDeleteDTO EventMainMemberDeleteDTO) {
+        return eventMainMemberService.delete(EventMainMemberDeleteDTO);
+    }
+
+    /**
+     * 查询重点人群记录详细信息
+     * 
+     * @param id
+     *            重点人群记录 id
+     * @return 查找结果
+     */
+    @PostMapping("/{id}")
+    R<EventMainMemberDetailsVO> eventMainMemberDetails(@PathVariable("id") Long id) {
+        return eventMainMemberService.eventMainMemberDetails(id);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventResourceApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventResourceApi.java
new file mode 100644
index 0000000..abd90c3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventResourceApi.java
@@ -0,0 +1,90 @@
+package com.panzhihua.service_grid.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.*;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.model.dtos.grid.EventResourceAddDTO;
+import com.panzhihua.common.model.dtos.grid.EventResourceDeleteDTO;
+import com.panzhihua.common.model.dtos.grid.EventResourceEditDTO;
+import com.panzhihua.common.model.dtos.grid.PageEventResourceDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.EventResourceDetailsVO;
+import com.panzhihua.common.model.vos.grid.EventResourceVO;
+import com.panzhihua.service_grid.service.EventResourceService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Slf4j
+@RestController
+@RequestMapping("/eventresource")
+public class EventResourceApi {
+
+    @Resource
+    private EventResourceService eventResourceService;
+
+    /**
+     * 新增事件或者走访中关联的图片音频和视频文件
+     * 
+     * @param eventResourceAddDTO
+     * @return 新增结果
+     */
+    @PostMapping("/add")
+    R add(@RequestBody EventResourceAddDTO eventResourceAddDTO) {
+        return eventResourceService.add(eventResourceAddDTO);
+    }
+
+    /**
+     * 修改事件或者走访中关联的图片音频和视频文件
+     * 
+     * @param eventResourceEditDTO
+     * @return 维护结果
+     */
+    @PostMapping("/edit")
+    R edit(@RequestBody EventResourceEditDTO eventResourceEditDTO) {
+        return eventResourceService.edit(eventResourceEditDTO);
+    }
+
+    /**
+     * 分页查找事件或者走访中关联的图片音频和视频文件
+     * 
+     * @param pageEventResourceDTO
+     * @return 维护结果
+     */
+    @PostMapping("/page")
+    R<IPage<EventResourceVO>> query(@RequestBody PageEventResourceDTO pageEventResourceDTO) {
+        return eventResourceService.query(pageEventResourceDTO);
+    }
+
+    /**
+     * 删除事件或者走访中关联的图片音频和视频文件
+     * 
+     * @param EventResourceDeleteDTO
+     * @return 平台用户信息
+     */
+    @PostMapping("/delete")
+    R delete(@RequestBody EventResourceDeleteDTO EventResourceDeleteDTO) {
+        return eventResourceService.delete(EventResourceDeleteDTO);
+    }
+
+    /**
+     * 查询事件或者走访中关联的图片音频和视频文件详细信息
+     * 
+     * @param id
+     *            事件或者走访中关联的图片音频和视频文件 id
+     * @return 查找结果
+     */
+    @PostMapping("/{id}")
+    R<EventResourceDetailsVO> eventResourceDetails(@PathVariable("id") Long id) {
+        return eventResourceService.eventResourceDetails(id);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventTransferRecordApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventTransferRecordApi.java
new file mode 100644
index 0000000..cf69ba0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventTransferRecordApi.java
@@ -0,0 +1,90 @@
+package com.panzhihua.service_grid.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.*;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.model.dtos.grid.EventTransferRecordAddDTO;
+import com.panzhihua.common.model.dtos.grid.EventTransferRecordDeleteDTO;
+import com.panzhihua.common.model.dtos.grid.EventTransferRecordEditDTO;
+import com.panzhihua.common.model.dtos.grid.PageEventTransferRecordDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.EventTransferRecordDetailsVO;
+import com.panzhihua.common.model.vos.grid.EventTransferRecordVO;
+import com.panzhihua.service_grid.service.EventTransferRecordService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Slf4j
+@RestController
+@RequestMapping("/eventtransferrecord")
+public class EventTransferRecordApi {
+
+    @Resource
+    private EventTransferRecordService eventTransferRecordService;
+
+    /**
+     * 新增事件处理流转记录
+     * 
+     * @param eventTransferRecordAddDTO
+     * @return 新增结果
+     */
+    @PostMapping("/add")
+    R add(@RequestBody EventTransferRecordAddDTO eventTransferRecordAddDTO) {
+        return eventTransferRecordService.add(eventTransferRecordAddDTO);
+    }
+
+    /**
+     * 修改事件处理流转记录
+     * 
+     * @param eventTransferRecordEditDTO
+     * @return 维护结果
+     */
+    @PostMapping("/edit")
+    R edit(@RequestBody EventTransferRecordEditDTO eventTransferRecordEditDTO) {
+        return eventTransferRecordService.edit(eventTransferRecordEditDTO);
+    }
+
+    /**
+     * 分页查找事件处理流转记录
+     * 
+     * @param pageEventTransferRecordDTO
+     * @return 维护结果
+     */
+    @PostMapping("/page")
+    R<IPage<EventTransferRecordVO>> query(@RequestBody PageEventTransferRecordDTO pageEventTransferRecordDTO) {
+        return eventTransferRecordService.query(pageEventTransferRecordDTO);
+    }
+
+    /**
+     * 删除事件处理流转记录
+     * 
+     * @param EventTransferRecordDeleteDTO
+     * @return 平台用户信息
+     */
+    @PostMapping("/delete")
+    R delete(@RequestBody EventTransferRecordDeleteDTO EventTransferRecordDeleteDTO) {
+        return eventTransferRecordService.delete(EventTransferRecordDeleteDTO);
+    }
+
+    /**
+     * 查询事件处理流转记录详细信息
+     * 
+     * @param id
+     *            事件处理流转记录 id
+     * @return 查找结果
+     */
+    @PostMapping("/{id}")
+    R<EventTransferRecordDetailsVO> eventTransferRecordDetails(@PathVariable("id") Long id) {
+        return eventTransferRecordService.eventTransferRecordDetails(id);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventVisitingTasksApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventVisitingTasksApi.java
new file mode 100644
index 0000000..87c05ab
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/EventVisitingTasksApi.java
@@ -0,0 +1,259 @@
+package com.panzhihua.service_grid.api;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.*;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.model.dtos.IdDTO;
+import com.panzhihua.common.model.dtos.grid.EventVisitingTasksEditDTO;
+import com.panzhihua.common.model.dtos.grid.LcEventVisitingTasksListDTO;
+import com.panzhihua.common.model.dtos.grid.PageEventVisitingTasksDTO;
+import com.panzhihua.common.model.dtos.visit.EventVisitCompleteDTO;
+import com.panzhihua.common.model.query.visit.EventTasksQuery;
+import com.panzhihua.common.model.query.visit.EventVisitListQuery;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.visit.EventVisitingTasksDetailsVO;
+import com.panzhihua.common.model.vos.visit.EventVisitingTasksVO;
+import com.panzhihua.service_grid.service.EventVisitingTasksService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Slf4j
+@RestController
+@RequestMapping("/eventvisitingtasks")
+public class EventVisitingTasksApi {
+
+    @Resource
+    private EventVisitingTasksService eventVisitingTasksService;
+
+    /**
+     * 统计走访任务
+     * 
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/count")
+    R count(@RequestParam("communityId") Long communityId) {
+        return eventVisitingTasksService.count(communityId);
+    }
+
+    /**
+     * 修改重点人群走访记录
+     * 
+     * @param eventVisitingTasksEditDTO
+     * @return 维护结果
+     */
+    @PostMapping("/edit")
+    R edit(@RequestBody EventVisitingTasksEditDTO eventVisitingTasksEditDTO) {
+        return eventVisitingTasksService.edit(eventVisitingTasksEditDTO);
+    }
+
+    /**
+     * 分页查找重点人群走访记录
+     * 
+     * @param pageEventVisitingTasksDTO
+     * @return 维护结果
+     */
+    @PostMapping("/page")
+    R<IPage<EventVisitingTasksVO>> query(@RequestBody PageEventVisitingTasksDTO pageEventVisitingTasksDTO) {
+        return eventVisitingTasksService.query(pageEventVisitingTasksDTO);
+    }
+
+    /**
+     * 查询重点人群走访记录详细信息
+     * 
+     * @param id
+     *            重点人群走访记录 id
+     * @return 查找结果
+     */
+    @PostMapping("/{id}")
+    R<EventVisitingTasksDetailsVO> eventVisitingTasksDetails(@PathVariable("id") Long id) {
+        return eventVisitingTasksService.eventVisitingTasksDetails(id);
+    }
+
+    /**
+     * 删除走访任务
+     * 
+     * @param idDTO
+     * @param communityId
+     * @return
+     */
+    @PostMapping("/delete")
+    R delete(@RequestBody IdDTO idDTO, @RequestParam("communityId") Long communityId) {
+        return eventVisitingTasksService.delete(idDTO, communityId);
+    }
+
+    /**
+     * 需走访人员列表
+     * 
+     * @param query
+     * @return
+     */
+    @PostMapping("/visitorList")
+    R visitorList(@RequestBody EventVisitListQuery query) {
+
+        return eventVisitingTasksService.visitorList(query);
+    }
+
+    /**
+     * 新增走访任务
+     * 
+     * @param idDTO
+     * @param communityId
+     * @param userId
+     * @return
+     */
+    @PostMapping("/add")
+    R add(@RequestBody IdDTO idDTO, @RequestParam("communityId") Long communityId, @RequestParam("userId") Long userId)
+        throws Exception {
+        return eventVisitingTasksService.add(idDTO, communityId, userId);
+    }
+
+    /**
+     * 走访记录
+     * 
+     * @param query
+     * @return
+     */
+    @PostMapping("/list")
+    R list(@RequestBody EventTasksQuery query) {
+
+        return eventVisitingTasksService.list(query);
+    }
+
+    /**
+     * 走访任务列表
+     * 
+     * @param query
+     * @return
+     */
+    @PostMapping("/taskList")
+    R taskList(@RequestBody EventTasksQuery query) throws Exception {
+
+        return eventVisitingTasksService.taskList(query);
+    }
+
+    /**
+     * app走访任务列表
+     * 
+     * @param query
+     * @return
+     * @throws Exception
+     */
+    @PostMapping("/appTaskList")
+    R appTaskList(@RequestBody EventTasksQuery query) throws Exception {
+
+        return eventVisitingTasksService.appTaskList(query);
+    }
+
+    /**
+     * 导出
+     * 
+     * @param query
+     * @return
+     */
+    @PostMapping("/exportTaskList")
+    List<EventVisitingTasksVO> exportTaskList(@RequestBody EventTasksQuery query) throws Exception {
+        return eventVisitingTasksService.exportTaskList(query);
+    }
+
+    /**
+     * app走访详情
+     * 
+     * @param id
+     * @return
+     */
+    @GetMapping("/detail/{id}")
+    R detail(@PathVariable("id") Long id) throws Exception {
+        return eventVisitingTasksService.detail(id);
+    }
+
+    /**
+     * 撤销走访
+     * 
+     * @param idDTO
+     * @return
+     */
+    @PostMapping("/cancel")
+    R cancel(@RequestBody IdDTO idDTO) {
+        return eventVisitingTasksService.cancel(idDTO);
+    }
+
+    /**
+     * 恢复
+     * 
+     * @param idDTO
+     * @return
+     */
+    @PostMapping("/reset")
+    R reset(@RequestBody IdDTO idDTO) {
+        return eventVisitingTasksService.reset(idDTO);
+    }
+
+    /**
+     * 开始走访
+     * 
+     * @param id
+     * @return
+     */
+    @PostMapping("/start")
+    R start(@RequestParam("id") Long id, @RequestParam("userId") Long userId) {
+        return eventVisitingTasksService.start(id, userId);
+    }
+
+    /**
+     * 完成走访记录
+     * 
+     * @param taskCompleteDTO
+     * @return
+     */
+    @PostMapping("/complete")
+    R complete(@RequestBody EventVisitCompleteDTO taskCompleteDTO) {
+        return eventVisitingTasksService.complete(taskCompleteDTO);
+    }
+
+    /**
+     * description 获取所有未上传到浪潮平台的走访事件列表
+     *
+     * @return String 事件列表
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @GetMapping("/getUnUploadVisitingTask")
+    List<LcEventVisitingTasksListDTO> getUnUploadVisitingTask() {
+        return eventVisitingTasksService.getUnUploadVisitingTask();
+    }
+
+    /**
+     * description 更新走访任务上传是否成功标识
+     *
+     * @param id
+     *            事件主键ID
+     * @return Boolean 上传是否成功
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @PostMapping("/updateLcUploadFlagVisitingTask")
+    Boolean updateLcUploadFlagVisitingTask(@RequestParam("id") Long id) {
+        return eventVisitingTasksService.updateLcUploadFlagVisitingTask(id);
+    }
+
+    /**
+     * 定时任务-给上月已走访的人员创建定时任务
+     * @return  执行结果
+     */
+    @PostMapping("/timedTaskVisitingJobHandler")
+    public R timedTaskVisitingJobHandler() {
+        return eventVisitingTasksService.timedTaskVisitingJobHandler();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/LcCompareCodeApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/LcCompareCodeApi.java
new file mode 100644
index 0000000..037eced
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/LcCompareCodeApi.java
@@ -0,0 +1,55 @@
+package com.panzhihua.service_grid.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.panzhihua.service_grid.service.LcCompareCodeService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @author manailin
+ * @version 1.0
+ * @date 2021-05-26
+ * @since 1.0
+ */
+@Slf4j
+@RestController
+@RequestMapping("/lc_compare")
+public class LcCompareCodeApi {
+
+    @Resource
+    private LcCompareCodeService lcCompareCodeService;
+
+    /**
+     * description 根据本地网格ID,查询对于的浪潮市平台对应的ID
+     *
+     * @param id
+     *            本地网格ID
+     * @return String 浪潮市平台对应的ID
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @GetMapping("/{id}")
+    String getLcGridIdByLocal(@PathVariable("id") Long id) {
+        return lcCompareCodeService.getLcGridIdByLocal(id);
+    }
+
+    /**
+     * description 根据本地网格ID,查询对于的浪潮市平台对应的ID
+     *
+     * @param localUserId
+     *            本地网格员ID
+     * @return String 浪潮市平台对应的ID
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @GetMapping("/getLcUserId")
+    String getLcUserIdByLocalUserId(String localUserId) {
+        return lcCompareCodeService.getLcUserIdByLocal(localUserId);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/MapApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/MapApi.java
new file mode 100644
index 0000000..fb33e25
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/MapApi.java
@@ -0,0 +1,109 @@
+package com.panzhihua.service_grid.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.model.dtos.grid.EventGridCascadeListDTO;
+import com.panzhihua.common.model.dtos.grid.EventGridMemberWainDTO;
+import com.panzhihua.common.model.dtos.grid.EventGridMemberWorkTrajectoryDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_grid.service.*;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 地图模块api
+ */
+@Slf4j
+@RestController
+@RequestMapping("/map")
+public class MapApi {
+
+    @Resource
+    private EventService eventService;
+    @Resource
+    private EventGridDataService eventGridDataService;
+    @Resource
+    private EventGridMemberGpsLogService eventGridMemberGpsLogService;
+    @Resource
+    private EventGridMemberWarnLogService eventGridMemberWarnLogService;
+    @Resource
+    private EventGridMemberRelationService eventGridMemberRelationService;
+
+    /**
+     * 地图模块-根据网格id查询网格详细信息
+     * 
+     * @param gridId
+     *            网格id
+     * @return 网格详细信息
+     */
+    @PostMapping("getGridDetail")
+    public R getGridDetail(@RequestParam("gridId") Long gridId) {
+        return eventGridDataService.getMapGridDetail(gridId);
+    }
+
+    /**
+     * 根据网格员id查询今日轨迹
+     * 
+     * @param userId
+     *            网格员id
+     * @return 网格员今日轨迹
+     */
+    @PostMapping("/getTrajectoryByApp")
+    public R getTrajectoryByApp(@RequestParam("userId") Long userId) {
+        return eventGridMemberGpsLogService.getTrajectoryByApp(userId);
+    }
+
+    /**
+     * 根据网格员id查询关联网格列表
+     * 
+     * @param userId
+     *            网格员id
+     * @return 网格列表
+     */
+    @PostMapping("getMapGridListByApp")
+    public R getMapGridListByApp(@RequestParam("userId") Long userId) {
+        return eventGridMemberRelationService.getMapGridListByApp(userId);
+    }
+
+    /**
+     * 后台获取网格员运动轨迹
+     * 
+     * @param workTrajectoryDTO
+     *            请求参数
+     * @return 运动轨迹
+     */
+    @PostMapping("gridMemberWorkTrajectory")
+    public R gridMemberWorkTrajectory(@RequestBody EventGridMemberWorkTrajectoryDTO workTrajectoryDTO) {
+        if (StringUtils.isEmpty(workTrajectoryDTO.getTime())) {
+            workTrajectoryDTO.setTime(DateUtils.getCurrentDateStrymd());
+        }
+        return eventGridMemberGpsLogService.gridMemberWorkTrajectory(workTrajectoryDTO);
+    }
+
+    /**
+     * 后台获取网格员预警记录
+     * 
+     * @param gridMemberWainDTO
+     *            请求参数
+     * @return 预警记录
+     */
+    @PostMapping("gridMemberWorkWarning")
+    public R gridMemberWorkWarning(@RequestBody EventGridMemberWainDTO gridMemberWainDTO) {
+        return eventGridMemberWarnLogService.gridMemberWorkWarning(gridMemberWainDTO);
+    }
+
+    @PostMapping("getMapGridListsByApp")
+    public R getMapGridListsByApp(@RequestBody EventGridCascadeListDTO cascadeListDTO) {
+        return eventGridMemberRelationService.getMapGridListsByApp(cascadeListDTO);
+    }
+
+    @PostMapping("getMapGridsListsByApp")
+    public R getMapGridsListsByApp(@RequestParam("userId") Long userId) {
+        return eventGridMemberRelationService.getMapGridsListsByApp(userId);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/StatisticsApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/StatisticsApi.java
new file mode 100644
index 0000000..a0e23eb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/api/StatisticsApi.java
@@ -0,0 +1,81 @@
+package com.panzhihua.service_grid.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.model.dtos.grid.GridEventStatisticsDTO;
+import com.panzhihua.common.model.dtos.grid.MemberStatisticsAdminDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_grid.service.EventService;
+
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+@RestController
+@RequestMapping("/statistics/")
+public class StatisticsApi {
+
+    @Resource
+    private EventService eventService;
+
+    /**
+     * 后台管理-统计模块
+     * 
+     * @param communityId
+     *            社区id
+     * @return 统计信息
+     */
+    @GetMapping("/admin/eventStatistics")
+    public R eventStatistics(@RequestParam("communityId") Long communityId) {
+        return eventService.eventStatistics(communityId);
+    }
+
+    /**
+     * 后台管理-网格员统计
+     * 
+     * @param statisticsAdminDTO
+     *            请求参数
+     * @return 网格员统计信息
+     */
+    @PostMapping("/admin/gridMemberStatistics")
+    public R gridMemberStatistics(@RequestBody MemberStatisticsAdminDTO statisticsAdminDTO) {
+        return eventService.gridMemberStatistics(statisticsAdminDTO);
+    }
+
+    /**
+     * 根据网格id查询网格统计数据
+     * 
+     * @param gridId
+     *            网格id
+     * @return 网格统计数据
+     */
+    @PostMapping("/getGridEventStatistics")
+    public R getGridEventStatisticsByApp(@RequestParam("gridId") Long gridId, @RequestParam("userId") Long userId) {
+        return eventService.getGridEventStatisticsByApp(gridId, userId);
+    }
+
+    /**
+     * 查询网格事件统计数据
+     * 
+     * @param statisticsDTO
+     *            请求参数
+     * @return 网格事件统计数据
+     */
+    @PostMapping("/event/getGridEventStatistics")
+    public R getGridEventDetailStatisticsByApp(@RequestBody GridEventStatisticsDTO statisticsDTO) {
+        return eventService.getGridEventDetailStatisticsByApp(statisticsDTO);
+    }
+
+    /**
+     * 查询所有网格员工作汇总数据
+     * 
+     * @param statisticsAdminDTO
+     *            请求参数
+     * @return 网格员工作汇总数据
+     */
+    @PostMapping("/admin/gridMemberStatisticsAll")
+    public R gridMemberStatisticsAll(@RequestBody MemberStatisticsAdminDTO statisticsAdminDTO) {
+        return eventService.gridMemberStatisticsAll(statisticsAdminDTO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/config/MyMetaObjectHandler.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/config/MyMetaObjectHandler.java
new file mode 100644
index 0000000..2713b1a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/config/MyMetaObjectHandler.java
@@ -0,0 +1,41 @@
+package com.panzhihua.service_grid.config;
+
+import java.util.Date;
+
+import org.apache.ibatis.reflection.MetaObject;
+import org.springframework.stereotype.Component;
+
+import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 自动填充
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-11 14:23
+ **/
+@Slf4j
+@Component
+public class MyMetaObjectHandler implements MetaObjectHandler {
+    @Override
+    public void insertFill(MetaObject metaObject) {
+        log.info("start insert fill ....");
+        // this.strictInsertFill(metaObject, "createTime", Date.class, new Date()); // 起始版本 3.3.0(推荐使用)
+        // 或者
+        this.strictInsertFill(metaObject, "createAt", () -> new Date(), Date.class); // 起始版本 3.3.3(推荐)
+        this.strictInsertFill(metaObject, "updateAt", () -> new Date(), Date.class); // 起始版本 3.3.3(推荐)
+        // 或者
+        // this.fillStrategy(metaObject, "createTime", LocalDateTime.now()); // 也可以使用(3.3.0 该方法有bug)
+    }
+
+    @Override
+    public void updateFill(MetaObject metaObject) {
+        log.info("start update fill ....");
+        // this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); // 起始版本 3.3.0(推荐)
+        // 或者
+        this.strictUpdateFill(metaObject, "updateAt", () -> new Date(), Date.class); // 起始版本 3.3.3(推荐)
+        // 或者
+        // this.fillStrategy(metaObject, "updateTime", LocalDateTime.now()); // 也可以使用(3.3.0 该方法有bug)
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/config/MybatisHmkInterceptor.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/config/MybatisHmkInterceptor.java
new file mode 100644
index 0000000..9749d52
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/config/MybatisHmkInterceptor.java
@@ -0,0 +1,24 @@
+package com.panzhihua.service_grid.config;
+
+import com.baomidou.mybatisplus.core.toolkit.PluginUtils;
+import com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor;
+import org.apache.ibatis.executor.Executor;
+import org.apache.ibatis.mapping.BoundSql;
+import org.apache.ibatis.mapping.MappedStatement;
+import org.apache.ibatis.session.ResultHandler;
+import org.apache.ibatis.session.RowBounds;
+
+import java.sql.SQLException;
+
+public class MybatisHmkInterceptor implements InnerInterceptor {
+    @Override
+    public void beforeQuery(Executor executor, MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) throws SQLException {
+        String sql=boundSql.getSql();
+            if(sql.contains("community_id = 10086")){
+                sql=sql.replace("community_id = 10086","community_id in (30,31)");
+                PluginUtils.mpBoundSql(boundSql).sql(sql);
+        }
+        InnerInterceptor.super.beforeQuery(executor, ms, parameter, rowBounds, resultHandler, boundSql);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/config/MybatisPlusConfig.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/config/MybatisPlusConfig.java
new file mode 100644
index 0000000..cd440f6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/config/MybatisPlusConfig.java
@@ -0,0 +1,38 @@
+package com.panzhihua.service_grid.config;
+
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 分页
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 16:26
+ **/
+@MapperScan({"com.panzhihua.service_grid.dao*"})
+@Configuration
+public class MybatisPlusConfig {
+
+    /**
+     * 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)
+     */
+    @Bean
+    public MybatisPlusInterceptor mybatisPlusInterceptor() {
+        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+        interceptor.addInnerInterceptor(new MybatisHmkInterceptor());
+        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2));
+        return interceptor;
+    }
+
+    @Bean
+    public ConfigurationCustomizer configurationCustomizer() {
+        return configuration -> configuration.setUseDeprecatedExecutor(false);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/ApplicationAppReleaseMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/ApplicationAppReleaseMapper.java
new file mode 100644
index 0000000..5b22028
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/ApplicationAppReleaseMapper.java
@@ -0,0 +1,16 @@
+package com.panzhihua.service_grid.dao;
+
+import org.apache.ibatis.annotations.Param;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_grid.model.dos.ApplicationAppRelease;
+
+/**
+ * 应用APP版本控制表Mapper ClassName ApplicationAppReleaseMapper Description
+ *
+ * @author manailin
+ */
+public interface ApplicationAppReleaseMapper extends BaseMapper<ApplicationAppRelease> {
+
+    ApplicationAppRelease selectByRand(@Param("data") Long data);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/ComActEasyPhotoMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/ComActEasyPhotoMapper.java
new file mode 100644
index 0000000..a5ed97a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/ComActEasyPhotoMapper.java
@@ -0,0 +1,72 @@
+package com.panzhihua.service_grid.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.grid.ComActEasyPhotoEditAdminDTO;
+import com.panzhihua.common.model.dtos.grid.PageEasyAdminDTO;
+import com.panzhihua.common.model.dtos.grid.PageEasyAppDTO;
+import com.panzhihua.common.model.vos.grid.ComActEasyPhotoAdminVO;
+import com.panzhihua.common.model.vos.grid.ComActEasyPhotoVO;
+import com.panzhihua.service_grid.model.dos.ComActEasyPhotoDO;
+
+/**
+ * DAO
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @date 2021-05-26
+ * @since 1.0
+ */
+@Mapper
+public interface ComActEasyPhotoMapper extends BaseMapper<ComActEasyPhotoDO> {
+
+    /**
+     * 分页查询
+     * 
+     * @param easyAppDTO
+     *            请求参数
+     * @return 随手拍列表
+     */
+    IPage<ComActEasyPhotoVO> findByPage(Page page, @Param("easyAppDTO") PageEasyAppDTO easyAppDTO);
+
+    /**
+     * 根据随手拍id查询随手拍详情
+     * 
+     * @param easyId
+     *            随手拍id
+     * @return 随手拍详情
+     */
+    ComActEasyPhotoVO findByEaseId(@Param("easyId") Long easyId);
+
+    /**
+     * 后台管理-分页查询随手拍列表
+     * 
+     * @param easyAppDTO
+     *            请求参数
+     * @return 随手拍列表
+     */
+    IPage<ComActEasyPhotoAdminVO> easyListByAdmin(Page page, @Param("easyAppDTO") PageEasyAdminDTO easyAppDTO);
+
+    /**
+     * 后台管理-随手拍详情
+     * 
+     * @param easyId
+     *            随手拍id
+     * @return 随手拍详情
+     */
+    ComActEasyPhotoAdminVO easyDetailByAdmin(@Param("easyId") Long easyId);
+
+    /**
+     * 后台管理-批量修改随手拍公示状态/删除随手拍
+     * 
+     * @param photoEditDTO
+     *            请求参数
+     * @return 修改/删除结果
+     */
+    Integer easyPublicityByAdmin(@Param("photoEditDTO") ComActEasyPhotoEditAdminDTO photoEditDTO);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/ComActEasyPhotoTypeMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/ComActEasyPhotoTypeMapper.java
new file mode 100644
index 0000000..fac448d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/ComActEasyPhotoTypeMapper.java
@@ -0,0 +1,41 @@
+package com.panzhihua.service_grid.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.grid.PageComActEasyPhotoTypeDTO;
+import com.panzhihua.common.model.vos.grid.ComActEasyPhotoTypeVO;
+import com.panzhihua.service_grid.model.dos.ComActEasyPhotoTypeDO;
+
+import java.util.List;
+
+/**
+ * DAO
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Mapper
+public interface ComActEasyPhotoTypeMapper extends BaseMapper<ComActEasyPhotoTypeDO> {
+
+    /**
+     * 分页查询
+     * 
+     * @param pageComActEasyPhotoTypeDTO
+     * @return
+     */
+    IPage<ComActEasyPhotoTypeVO> findByPage(Page page,
+        @Param("pageComActEasyPhotoTypeDTO") PageComActEasyPhotoTypeDTO pageComActEasyPhotoTypeDTO);
+
+    /**
+     * 查询所有随手拍类型
+     * @return  随手拍类型
+     */
+    List<ComActEasyPhotoTypeDO> getPhotoClassifyList();
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/ComActEasyPhotoTypeRelationMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/ComActEasyPhotoTypeRelationMapper.java
new file mode 100644
index 0000000..107cfea
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/ComActEasyPhotoTypeRelationMapper.java
@@ -0,0 +1,38 @@
+package com.panzhihua.service_grid.dao;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_grid.model.dos.ComActEasyPhotoTypeRelationDO;
+
+/**
+ * DAO
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-27
+ */
+@Mapper
+public interface ComActEasyPhotoTypeRelationMapper extends BaseMapper<ComActEasyPhotoTypeRelationDO> {
+
+    /**
+     * 根据随手拍id查询随手拍类型
+     * 
+     * @param easyId
+     *            随手拍id
+     * @return 随手拍类型名称列表
+     */
+    List<String> getEasyPhotoTypeRelationByEasyId(@Param("easyId") Long easyId);
+
+    /**
+     * 根据随手拍分类id查询随手拍类型名字
+     * @param classifyId    随手拍类型id
+     * @return  随手拍类型名字
+     */
+    List<String> getEasyPhotoClassifyName(@Param("classifyId") Long classifyId);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventApplicationAppReleaseMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventApplicationAppReleaseMapper.java
new file mode 100644
index 0000000..842e56c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventApplicationAppReleaseMapper.java
@@ -0,0 +1,36 @@
+package com.panzhihua.service_grid.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.grid.PageEventApplicationAppReleaseDTO;
+import com.panzhihua.common.model.vos.grid.EventApplicationAppReleaseDetailsVO;
+import com.panzhihua.common.model.vos.grid.EventApplicationAppReleaseVO;
+import com.panzhihua.service_grid.model.dos.EventApplicationAppReleaseDO;
+
+/**
+ * DAO
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @date 2021-05-26
+ * @since 1.0
+ */
+@Mapper
+public interface EventApplicationAppReleaseMapper extends BaseMapper<EventApplicationAppReleaseDO> {
+
+    /**
+     * 分页查询
+     *
+     * @param pageEventApplicationAppReleaseDTO
+     * @return
+     */
+    IPage<EventApplicationAppReleaseVO> findByPage(Page page,
+        @Param("pageEventApplicationAppReleaseDTO") PageEventApplicationAppReleaseDTO pageEventApplicationAppReleaseDTO);
+
+    EventApplicationAppReleaseDetailsVO editionUpdate();
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventApplicationUserNoticeMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventApplicationUserNoticeMapper.java
new file mode 100644
index 0000000..32581c4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventApplicationUserNoticeMapper.java
@@ -0,0 +1,33 @@
+package com.panzhihua.service_grid.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.grid.PageEventApplicationUserNoticeDTO;
+import com.panzhihua.common.model.vos.grid.EventApplicationUserNoticeVO;
+import com.panzhihua.service_grid.model.dos.EventApplicationUserNoticeDO;
+
+/**
+ * DAO
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Mapper
+public interface EventApplicationUserNoticeMapper extends BaseMapper<EventApplicationUserNoticeDO> {
+
+    /**
+     * 分页查询
+     * 
+     * @param pageEventApplicationUserNoticeDTO
+     * @return
+     */
+    IPage<EventApplicationUserNoticeVO> findByPage(Page page,
+        @Param("pageEventApplicationUserNoticeDTO") PageEventApplicationUserNoticeDTO pageEventApplicationUserNoticeDTO);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventGridDataMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventGridDataMapper.java
new file mode 100644
index 0000000..7c7d6b2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventGridDataMapper.java
@@ -0,0 +1,75 @@
+package com.panzhihua.service_grid.dao;
+
+import java.util.List;
+
+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.grid.EventGridTodoDataDTO;
+import com.panzhihua.common.model.dtos.grid.PageEventGridDataAdminDTO;
+import com.panzhihua.common.model.dtos.grid.PageEventGridDataDTO;
+import com.panzhihua.common.model.dtos.grid.PageEventGridNearbyDTO;
+import com.panzhihua.common.model.vos.grid.*;
+import com.panzhihua.service_grid.model.dos.EventGridDataDO;
+
+/**
+ * DAO
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @date 2021-05-26
+ * @since 1.0
+ */
+@Mapper
+public interface EventGridDataMapper extends BaseMapper<EventGridDataDO> {
+
+    /**
+     * 分页查询
+     *
+     * @param eventGridDataDTO
+     * @return
+     */
+    IPage<EventGridAdminVO> findByPage(Page page,
+        @Param("pageEventGridDataDTO") PageEventGridDataAdminDTO eventGridDataDTO);
+
+    /**
+     * 分页查询网格员所在网格
+     *
+     * @param pageEventGridDataDTO
+     * @return
+     */
+    IPage<EventGridDataVO> selectUserGrid(Page page,
+        @Param("pageEventGridDataDTO") PageEventGridDataDTO pageEventGridDataDTO);
+
+    /**
+     * 查询当前用户网格内待处理事件统计信息
+     * 
+     * @param eventGridTodoDataDTO
+     * @return
+     */
+    List<UserEventGridDataVO> getGridTodoData(@Param("eventGridTodoDataDTO") EventGridTodoDataDTO eventGridTodoDataDTO);
+
+    /**
+     * 查询社区下所有网格员
+     * 
+     * @param communityId
+     *            社区id
+     * @return 网格员列表
+     */
+    List<EventGridMemberAdminVO> getGridMemberLists(@Param("communityId") Long communityId);
+
+    List<GridMemberAdminVO> getGridMember(@Param("gridId") Long gridId);
+
+    ComGridActVO getComActByActId(@Param("communityId") Long communityId);
+
+    void removeGridRelationByGridId(@Param("gridId") Long gridId);
+
+    List<EventGridMemberAdminVO> getGridMemberListsByGrid(@Param("gridId") Long gridId);
+
+    List<EventGridDataAreaVO> getGridDataListByCommunity(@Param("communityId") Long communityId);
+
+    List<EventGridDataAreaVO> selectGridWithArea(Page page, PageEventGridNearbyDTO pageEventGridNearbyDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventGridMemberGpsLogMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventGridMemberGpsLogMapper.java
new file mode 100644
index 0000000..96c4612
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventGridMemberGpsLogMapper.java
@@ -0,0 +1,42 @@
+package com.panzhihua.service_grid.dao;
+
+import java.util.List;
+
+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.grid.EventGridMemberWorkTrajectoryDTO;
+import com.panzhihua.common.model.dtos.grid.PageEventGridMemberGpsLogDTO;
+import com.panzhihua.common.model.vos.grid.EventGridMemberGpsLogVO;
+import com.panzhihua.common.model.vos.grid.EventMapTrajectoryVO;
+import com.panzhihua.service_grid.model.dos.EventGridMemberGpsLogDO;
+
+/**
+ * DAO
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @date 2021-05-26
+ * @since 1.0
+ */
+@Mapper
+public interface EventGridMemberGpsLogMapper extends BaseMapper<EventGridMemberGpsLogDO> {
+
+    /**
+     * 分页查询
+     *
+     * @param pageEventGridMemberGpsLogDTO
+     * @return
+     */
+    IPage<EventGridMemberGpsLogVO> findByPage(Page page,
+        @Param("pageEventGridMemberGpsLogDTO") PageEventGridMemberGpsLogDTO pageEventGridMemberGpsLogDTO);
+
+    List<EventMapTrajectoryVO> getTrajectoryByApp(@Param("userId") Long userId);
+
+    List<String>
+        gridMemberWorkTrajectory(@Param("workTrajectoryDTO") EventGridMemberWorkTrajectoryDTO workTrajectoryDTO);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventGridMemberRelationMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventGridMemberRelationMapper.java
new file mode 100644
index 0000000..a817d26
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventGridMemberRelationMapper.java
@@ -0,0 +1,97 @@
+package com.panzhihua.service_grid.dao;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.screen.GridMemberTrajectoryVo;
+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.grid.EventGridCascadeListDTO;
+import com.panzhihua.common.model.dtos.grid.MemberStatisticsAdminDTO;
+import com.panzhihua.common.model.dtos.grid.PageEventGridMemberRelationDTO;
+import com.panzhihua.common.model.vos.grid.EventGridMemberRelationVO;
+import com.panzhihua.common.model.vos.grid.EventMapGridCascadeVO;
+import com.panzhihua.common.model.vos.grid.EventMapGridVO;
+import com.panzhihua.common.model.vos.grid.EventStatisticsMemberAdminVO;
+import com.panzhihua.common.model.vos.grid.admin.GridMemberCascadeVO;
+import com.panzhihua.common.model.vos.grid.admin.GridMemberLcListVO;
+import com.panzhihua.service_grid.model.dos.EventGridMemberRelationDO;
+
+/**
+ * DAO
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @date 2021-05-26
+ * @since 1.0
+ */
+@Mapper
+public interface EventGridMemberRelationMapper extends BaseMapper<EventGridMemberRelationDO> {
+
+    /**
+     * 分页查询
+     *
+     * @param pageEventGridMemberRelationDTO
+     * @return
+     */
+    IPage<EventGridMemberRelationVO> findByPage(Page page,
+        @Param("pageEventGridMemberRelationDTO") PageEventGridMemberRelationDTO pageEventGridMemberRelationDTO);
+
+    /**
+     * 根据网格员id查询关联网格列表
+     * 
+     * @param userId
+     *            网格员id
+     * @return 网格列表
+     */
+    List<EventMapGridVO> getMapGridListByApp(@Param("userId") Long userId);
+
+    /**
+     * 后台管理-网格员统计
+     * 
+     * @param statisticsAdminDTO
+     *            请求参数
+     * @return 网格员统计信息
+     */
+    IPage<EventStatisticsMemberAdminVO> gridMemberStatistics(Page page,
+        @Param("statisticsAdminDTO") MemberStatisticsAdminDTO statisticsAdminDTO);
+
+    /**
+     * 查询市平台网格员列表
+     * 
+     * @return 市平台网格员列表
+     */
+    List<GridMemberLcListVO> getGridMemberLcList();
+
+    List<GridMemberCascadeVO> getGridMemberCascade(@Param("type") Integer type, @Param("id") Long id);
+
+    Integer getVillageCount(@Param("communityId") Long communityId);
+
+    Integer getBuildingCount(@Param("villageId") Long villageId);
+
+    List<EventMapGridVO> getMapGridListsByApp(@Param("cascadeListDTO") EventGridCascadeListDTO cascadeListDTO);
+
+    List<EventMapGridCascadeVO> getMapGridsListsByApp(@Param("userId") Long userId, @Param("type") Integer type,
+        @Param("communityId") Long communityId);
+
+    List<EventStatisticsMemberAdminVO>
+        gridMemberStatisticsAll(@Param("statisticsAdminDTO") MemberStatisticsAdminDTO statisticsAdminDTO);
+
+    /**
+     * 查询该社区的网格员列表
+     * @param communityId   社区id
+     * @return  网格员列表
+     */
+    List<GridMemberTrajectoryVo> getGridsMemberList(@Param("communityId") Long communityId);
+
+    /**
+     * 查询网格员当天运动轨迹
+     * @param userId    用户id
+     * @return  网格员当天运动轨迹
+     */
+    List<String> getGridsMemberTrajectory(@Param("userId") Long userId);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventGridMemberWarnLogMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventGridMemberWarnLogMapper.java
new file mode 100644
index 0000000..3dca6eb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventGridMemberWarnLogMapper.java
@@ -0,0 +1,47 @@
+package com.panzhihua.service_grid.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.grid.EventGridMemberWainDTO;
+import com.panzhihua.common.model.dtos.grid.PageEventGridMemberWarnLogDTO;
+import com.panzhihua.common.model.vos.grid.EventGridMemberWarnLogAdminVO;
+import com.panzhihua.common.model.vos.grid.EventGridMemberWarnLogVO;
+import com.panzhihua.service_grid.model.dos.EventGridMemberWarnLogDO;
+
+/**
+ * DAO
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @date 2021-05-26
+ * @since 1.0
+ */
+@Mapper
+public interface EventGridMemberWarnLogMapper extends BaseMapper<EventGridMemberWarnLogDO> {
+
+    /**
+     * 分页查询
+     *
+     * @param pageEventGridMemberWarnLogDTO
+     * @return
+     */
+    IPage<EventGridMemberWarnLogVO> findByPage(Page page,
+        @Param("pageEventGridMemberWarnLogDTO") PageEventGridMemberWarnLogDTO pageEventGridMemberWarnLogDTO);
+
+    /**
+     * 后台获取网格员预警记录
+     * 
+     * @param gridMemberWainDTO
+     *            请求参数
+     * @return 预警记录
+     */
+    IPage<EventGridMemberWarnLogAdminVO> gridMemberWorkWarning(Page page,
+        @Param("gridMemberWainDTO") EventGridMemberWainDTO gridMemberWainDTO);
+
+    void setUserWorkStatus(@Param("userId") Long userId, @Param("workStatus") Integer workStatus);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventMainMemberMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventMainMemberMapper.java
new file mode 100644
index 0000000..6f88791
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventMainMemberMapper.java
@@ -0,0 +1,33 @@
+package com.panzhihua.service_grid.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.grid.PageEventMainMemberDTO;
+import com.panzhihua.common.model.vos.grid.EventMainMemberVO;
+import com.panzhihua.service_grid.model.dos.EventMainMemberDO;
+
+/**
+ * DAO
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Mapper
+public interface EventMainMemberMapper extends BaseMapper<EventMainMemberDO> {
+
+    /**
+     * 分页查询
+     * 
+     * @param pageEventMainMemberDTO
+     * @return
+     */
+    IPage<EventMainMemberVO> findByPage(Page page,
+        @Param("pageEventMainMemberDTO") PageEventMainMemberDTO pageEventMainMemberDTO);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventMapper.java
new file mode 100644
index 0000000..a52a5e8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventMapper.java
@@ -0,0 +1,188 @@
+package com.panzhihua.service_grid.dao;
+
+import java.util.List;
+import java.util.Map;
+
+import com.panzhihua.common.model.vos.community.screen.event.EventComprehensiveGovernanceStatisticsVO;
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+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.bigscreen.event.ScreenEventListDTO;
+import com.panzhihua.common.model.dtos.grid.*;
+import com.panzhihua.common.model.vos.community.screen.civil.CivilVillageStatisticsVO;
+import com.panzhihua.common.model.vos.community.screen.event.EventGridIncidentStatisticsVO;
+import com.panzhihua.common.model.vos.community.screen.event.EventListVO;
+import com.panzhihua.common.model.vos.grid.*;
+import com.panzhihua.common.model.vos.screen.*;
+import com.panzhihua.service_grid.model.dos.EventDO;
+
+/**
+ * DAO
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @date 2021-05-26
+ * @since 1.0
+ */
+@Mapper
+public interface EventMapper extends BaseMapper<EventDO> {
+
+    /**
+     * 分页查询事件
+     *
+     * @param pageEventDTO
+     * @return
+     */
+    IPage<EventVO> findByPage(Page page, @Param("pageEventDTO") PageEventDTO pageEventDTO);
+
+    /**
+     * 分页查询宣传教育
+     *
+     * @param pagePublicityEventDTO
+     * @return
+     */
+    IPage<EventVO> findPublicityByPage(Page page,
+        @Param("pagePublicityEventDTO") PagePublicityEventDTO pagePublicityEventDTO);
+
+    /**
+     * 地图模块-根据网格id查询网格办件事件
+     * 
+     * @param gridId
+     *            网格id
+     * @return 网格办件事件
+     */
+    List<ComMapGridEventVO> getEventByGridId(@Param("gridId") Long gridId);
+
+    /**
+     * 根据网格员id查询网格员头像url
+     * 
+     * @param gridMemberId
+     *            网格员id
+     * @return 头像url
+     */
+    Map<String, String> getGridMemberImageUrl(@Param("gridMemberId") Long gridMemberId);
+
+    /**
+     * 查询事件(管理)列表
+     * 
+     * @param page
+     * @param pageEventManageDTO
+     * @return
+     */
+    IPage<EventVO> findToManageByPage(Page page, @Param("pageEventManageDTO") PageEventManageDTO pageEventManageDTO);
+
+    /**
+     * 查询事件(管理)列表
+     * 
+     * @param page
+     * @param pagePublicityEventCommunityDTO
+     * @return
+     */
+    IPage<EventVO> findCommunityPublicityByPage(Page page,
+        @Param("pagePublicityEventCommunityDTO") PagePublicityEventCommunityDTO pagePublicityEventCommunityDTO);
+
+    /**
+     * 后台管理-统计模块
+     * 
+     * @param communityId
+     *            社区id
+     * @return 统计信息
+     */
+    EventStatisticsAllAdminVO eventStatistics(@Param("communityId") Long communityId);
+
+    Integer getEventCountByGridIds(@Param("ids") List<Long> ids);
+
+    /**
+     * 根据网格id查询网格统计数据
+     * 
+     * @param gridId
+     *            网格id
+     * @return 网格统计数据
+     */
+    GridEventStatisticsVO getGridEventStatisticsByApp(@Param("gridId") Long gridId);
+
+    /**
+     * 查询网格事件统计数据
+     * 
+     * @param statisticsDTO
+     *            请求参数
+     * @return 网格事件统计数据
+     */
+    GridEventStatisticsDetailVO
+        getGridEventDetailStatisticsByApp(@Param("statisticsDTO") GridEventStatisticsDTO statisticsDTO);
+
+    /**
+     * 查询时间发布者基本信息
+     * 
+     * @param gridMemberId
+     * @return
+     */
+    Map<String, Object> getUserBaseInfo(@Param("gridMemberId") Long gridMemberId);
+
+    /**
+     * 事件大屏查询事件列表
+     * 
+     * @param eventListDTO
+     *            请求参数
+     * @return 事件列表
+     */
+    IPage<EventListVO> getScreenEventList(Page page, @Param("eventListDTO") ScreenEventListDTO eventListDTO);
+
+    /**
+     * 特殊人群上报-社区人口数据列表
+     * 
+     * @param specialPopulationDTO
+     *            请求参数
+     * @return 社区人口数据列表
+     */
+    IPage<EventSpecialPopulationVO> specialPopulationList(Page page,
+        @Param("specialPopulationDTO") PageEventSpecialPopulationDTO specialPopulationDTO);
+
+    Map<String, Long> countByCommunityId(@Param("communityId") Long communityId, @Param("nowDate") String nowDate);
+
+    DateScreenVO countByAvgCommunityId(@Param("communityId") Long communityId);
+
+    List<EventDetailWorkVO> getWorkScreenEventList(@Param("communityId") Long communityId);
+
+    EventWorkVO countByTime(@Param("start") String start, @Param("end") String end,
+        @Param("communityId") Long communityId);
+
+    EventTypeWorkVO getComplete(@Param("communityId") Long communityId);
+
+    EventTypeWorkVO getNoComplete(@Param("communityId") Long communityId);
+
+    Map<String, Long> getSSPEventTotal(@Param("communityId") Long communityId);
+
+    List<EventGridIncidentStatisticsVO> getEventListByCommunityId(@Param("communityId") Long communityId);
+
+    List<CivilVillageStatisticsVO> getCivilScreenVillageList(@Param("communityId") Long communityId);
+
+    ScreenDrawEventPopulationTotalVO getVillagePopulationTotal(@Param("villageId") Long villageId);
+
+    List<Map<String, Object>> getMemberBuildName(@Param("userId") Long userId);
+
+    Integer getPopulationByLabelCount(@Param("floor") String floor, @Param("villageId") Long villageId);
+
+    /**
+     * 西区大数据分析平台-综合治理栏数据
+     * @return
+     */
+    EventComprehensiveGovernanceStatisticsVO selectComprehensiveGovernanceStatics();
+
+    List<EventGridIncidentStatisticsVO> getGridsGovernanceEventList(@Param("communityId") Long communityId);
+
+    ScreenDrawEventPopulationTotalVO getVillagePopulationTotalNew(@Param("villageId") Long villageId);
+
+    List<StatisticsCommVO> selectStatisticsForAge(@Param("villageIds") List<Long> villageIds);
+
+    /**
+     * 根据id获取事件数据
+     * @param id
+     * @return
+     */
+    EventDetailsVO getById(@Param("id") Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventResourceMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventResourceMapper.java
new file mode 100644
index 0000000..084ed5c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventResourceMapper.java
@@ -0,0 +1,38 @@
+package com.panzhihua.service_grid.dao;
+
+import java.util.List;
+
+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.EventResourceDTO;
+import com.panzhihua.common.model.dtos.grid.PageEventResourceDTO;
+import com.panzhihua.common.model.vos.grid.EventResourceVO;
+import com.panzhihua.service_grid.model.dos.EventResourceDO;
+
+/**
+ * DAO
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Mapper
+public interface EventResourceMapper extends BaseMapper<EventResourceDO> {
+
+    /**
+     * 分页查询
+     * 
+     * @param pageEventResourceDTO
+     * @return
+     */
+    IPage<EventResourceVO> findByPage(Page page,
+        @Param("pageEventResourceDTO") PageEventResourceDTO pageEventResourceDTO);
+
+    List<EventResourceDTO> findListByRefId(@Param("id") Long id, @Param("classification") Integer classification,
+        @Param("type") Integer type);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventSpecialCrowdRecordMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventSpecialCrowdRecordMapper.java
new file mode 100644
index 0000000..0786b2a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventSpecialCrowdRecordMapper.java
@@ -0,0 +1,29 @@
+package com.panzhihua.service_grid.dao;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.common.model.vos.grid.EventSpecialPopulationDetailsVO;
+import com.panzhihua.service_grid.model.dos.EventSpecialCrowdRecordDO;
+
+/**
+ * @auther lyq
+ * @create 2021-06-22 15:37:01
+ * @describe 事件-特殊人群上报人口关联表mapper类
+ */
+@Mapper
+public interface EventSpecialCrowdRecordMapper extends BaseMapper<EventSpecialCrowdRecordDO> {
+
+    /**
+     * 根据事件id查询特殊人群人口数据
+     * 
+     * @param eventId
+     *            事件id
+     * @return 上报人群信息列表
+     */
+    List<EventSpecialPopulationDetailsVO> getSpecialPopulationIds(@Param("eventId") Long eventId);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventTransferRecordMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventTransferRecordMapper.java
new file mode 100644
index 0000000..dca34d1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventTransferRecordMapper.java
@@ -0,0 +1,33 @@
+package com.panzhihua.service_grid.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.grid.PageEventTransferRecordDTO;
+import com.panzhihua.common.model.vos.grid.EventTransferRecordVO;
+import com.panzhihua.service_grid.model.dos.EventTransferRecordDO;
+
+/**
+ * DAO
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Mapper
+public interface EventTransferRecordMapper extends BaseMapper<EventTransferRecordDO> {
+
+    /**
+     * 分页查询
+     * 
+     * @param pageEventTransferRecordDTO
+     * @return
+     */
+    IPage<EventTransferRecordVO> findByPage(Page page,
+        @Param("pageEventTransferRecordDTO") PageEventTransferRecordDTO pageEventTransferRecordDTO);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventVisitingTasksMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventVisitingTasksMapper.java
new file mode 100644
index 0000000..47c07fe
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/EventVisitingTasksMapper.java
@@ -0,0 +1,123 @@
+package com.panzhihua.service_grid.dao;
+
+import java.util.List;
+import java.util.Map;
+
+import com.panzhihua.common.model.vos.community.ComMngPopulationCommunityTagsVo;
+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.query.visit.EventTasksQuery;
+import com.panzhihua.common.model.query.visit.EventVisitListQuery;
+import com.panzhihua.common.model.vos.visit.AppVisitTasksVO;
+import com.panzhihua.common.model.vos.visit.EventVisitListVO;
+import com.panzhihua.common.model.vos.visit.EventVisitingTasksVO;
+import com.panzhihua.service_grid.model.dos.EventVisitingTasksDO;
+
+/**
+ * DAO
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Mapper
+public interface EventVisitingTasksMapper extends BaseMapper<EventVisitingTasksDO> {
+
+    /**
+     * 统计待走访、已完成、已撤销的任务
+     * 
+     * @param communityId
+     * @return
+     */
+    Map<String, Long> count(@Param("communityId") Long communityId);
+
+    /**
+     * 后台查询走访记录
+     * 
+     * @param page
+     * @param query
+     * @return
+     */
+    IPage<EventVisitingTasksVO> findListByPage(Page page, @Param("query") EventTasksQuery query);
+
+    /**
+     * appc查看走访任务
+     * 
+     * @param page
+     * @param query
+     * @return
+     */
+    IPage<EventVisitingTasksVO> appFindListByPage(Page page, @Param("query") EventTasksQuery query);
+
+    /**
+     * 查询走访记录,任务
+     * 
+     * @param page
+     * @param query
+     * @return
+     */
+    IPage<AppVisitTasksVO> list(Page page, @Param("query") EventTasksQuery query);
+
+    /**
+     * 需走访人员列表
+     * 
+     * @param page
+     * @param query
+     * @return
+     */
+    IPage<EventVisitListVO> visitorList(Page page, @Param("query") EventVisitListQuery query);
+
+    /**
+     * 后台根据社区id查询网格员
+     * 
+     * @param communityId
+     * @return
+     */
+    Map<String, Object> findUserByCommunityId(@Param("communityId") Long communityId, @Param("type") int type);
+
+    /**
+     * 根据id查询实有人口
+     * 
+     * @param id
+     * @return
+     */
+    Map<String, Object> findPopulationById(Long id);
+
+    /**
+     * 统计未完成的走访任务
+     * 
+     * @param id
+     * @return
+     */
+    Integer countNoneComplete(Long id);
+
+    Integer updateEventStatus(@Param("id") Long id, @Param("status") Integer status);
+
+    /**
+     * 完成走访
+     * 
+     * @param complete
+     * @return
+     */
+    Integer complete(EventVisitingTasksDO complete);
+
+    Integer start(EventVisitingTasksDO start);
+
+    Integer cancel(@Param("id") Long id, @Param("status") Integer status);
+
+    Map<String, Object> findUserById(Long userId);
+
+    String getPopulationLabel(@Param("populationId") Long populationId);
+
+    /**
+     * 根据人口id查询人口在各个社区的标签列表
+     * @param populationId  人口id
+     * @return  人口在各个社区的标签列表
+     */
+    List<ComMngPopulationCommunityTagsVo> getCommunityTagList(@Param("populationId") Long populationId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/LcCompareCodeMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/LcCompareCodeMapper.java
new file mode 100644
index 0000000..2a4c482
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/LcCompareCodeMapper.java
@@ -0,0 +1,28 @@
+package com.panzhihua.service_grid.dao;
+
+import java.util.List;
+
+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.panzhihua.common.model.vos.grid.EventLcGridAdminVO;
+import com.panzhihua.service_grid.model.dos.LcCompareCodeDO;
+
+/**
+ * program 攀枝花智慧社区项目 description 本地网格和浪潮的对码表管理API
+ *
+ * @author manailin Date 2021-01-22 15:30
+ **/
+@Mapper
+public interface LcCompareCodeMapper extends BaseMapper<LcCompareCodeDO> {
+
+    @Update("update lc_compare_code set local_grid_id = null,grid_name = null where local_grid_id = #{gridId}")
+    void updateLcCompareCode(@Param("gridId") Long gridId);
+
+    @Select("select id,lc_grid_name from lc_compare_code")
+    List<EventLcGridAdminVO> getLcGridLists();
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/LcCompareMemberCodeMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/LcCompareMemberCodeMapper.java
new file mode 100644
index 0000000..7fb7436
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/dao/LcCompareMemberCodeMapper.java
@@ -0,0 +1,16 @@
+package com.panzhihua.service_grid.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_grid.model.dos.LcCompareCodeMemberDO;
+
+/**
+ * program 攀枝花智慧社区项目 description 本地网格和浪潮的对码表管理API
+ *
+ * @author manailin Date 2021-01-22 15:30
+ **/
+@Mapper
+public interface LcCompareMemberCodeMapper extends BaseMapper<LcCompareCodeMemberDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/ApplicationAppRelease.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/ApplicationAppRelease.java
new file mode 100644
index 0000000..b2f3be5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/ApplicationAppRelease.java
@@ -0,0 +1,33 @@
+package com.panzhihua.service_grid.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import lombok.Data;
+
+/**
+ * Description 应用APP版本控制表 ClassName ApplicationAppRelease
+ * 
+ * @author manailin
+ */
+@Data
+public class ApplicationAppRelease implements Serializable {
+    private static final long serialVersionUID = 1L;
+    /** 主键 */
+    private Long id;
+    /** 应用ID */
+    private Integer productId;
+    /** 应用名称 */
+    private String productName;
+    /** 版本编号 */
+    private String releaseNumber;
+    /** 通知行为(1、强制更新2、提示更新) */
+    private Integer action;
+    /** 版本地址 */
+    private String url;
+    /** 创建时间 */
+    private Date createDate;
+    /** 创建人 */
+    private Long createUser;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/BaseDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/BaseDO.java
new file mode 100644
index 0000000..613bf5f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/BaseDO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.service_grid.model.dos;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+
+import lombok.Data;
+
+/**
+ * @Author: llming
+ * @Description:
+ */
+@Data
+public class BaseDO {
+    private Long createBy;
+
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    private Long updateBy;
+    @TableField(fill = FieldFill.INSERT)
+
+    private Date updateAt;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/ComActEasyPhotoDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/ComActEasyPhotoDO.java
new file mode 100644
index 0000000..dce6252
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/ComActEasyPhotoDO.java
@@ -0,0 +1,126 @@
+package com.panzhihua.service_grid.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * 社区活动 》随手拍实体类
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@TableName("com_act_easy_photo")
+public class ComActEasyPhotoDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增id 列: id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 发起人id 列: sponsor_id
+     */
+    private Long sponsorId;
+    /**
+     * 发生地址 列: happen_addr
+     */
+    private String happenAddr;
+    /**
+     * 地址备注 列: addr_remark
+     */
+    private String addrRemark;
+    /**
+     * 状态 1待审核 2进行中 3已驳回 4已完成 列: status
+     */
+    private Integer status;
+    /**
+     * 处理人id 列: handler_id
+     */
+    private Long handlerId;
+    /**
+     * 创建时间 列: create_at
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+    /**
+     * 审核时间 列: examine_at
+     */
+    private Date examineAt;
+    /**
+     * 详情 列: detail
+     */
+    private String detail;
+    /**
+     * 图片路径列表,逗号分隔 列: photo_path_list
+     */
+    private String photoPathList;
+    /**
+     * 处理结果 列: handle_result
+     */
+    private String handleResult;
+    /**
+     * 处理结果,图片路径列表,逗号分隔 列: handle_photo_list
+     */
+    private String handlePhotoList;
+    /**
+     * 社区id 列: community_id
+     */
+    private Long communityId;
+    /**
+     * 是否匿名发布 0 否 1 是 列: is_hide
+     */
+    private Integer isHide;
+    /**
+     * 是否需要反馈 0 不需要 1 需要 列: is_need_feed_back
+     */
+    private Integer isNeedFeedBack;
+    /**
+     * 反馈时间 列: feedback_at
+     */
+    private Date feedbackAt;
+    /**
+     * 驳回原因 列: reject_reason
+     */
+    private String rejectReason;
+    /**
+     * 是否删除 0 否 1 是 列: del_tag
+     */
+    private Integer delTag;
+    /**
+     * 是否上报社区处理(0.否 1.是) 列: is_report
+     */
+    private Integer isReport;
+    /**
+     * 是否公示(0.否 1.是) 列: is_publicity
+     */
+    private Integer isPublicity;
+    /**
+     * 处理状态(1.待处理 2.已处理)
+     */
+    private Integer handleStatus;
+
+    /**
+     * 处理状态(1.待处理 2.已处理)
+     */
+    public interface handleStatus {
+        int no = 1;
+        int yes = 2;
+    }
+
+    /**
+     * 是否上报社区处理(0.否 1.是)
+     */
+    public interface isReport {
+        int no = 0;
+        int yes = 1;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/ComActEasyPhotoTypeDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/ComActEasyPhotoTypeDO.java
new file mode 100644
index 0000000..9e8d63e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/ComActEasyPhotoTypeDO.java
@@ -0,0 +1,38 @@
+package com.panzhihua.service_grid.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * 随手拍类型实体类
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@TableName("com_act_easy_photo_type")
+public class ComActEasyPhotoTypeDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id 列: id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 随手拍类型名称 列: name
+     */
+    private String name;
+    /**
+     * 创建时间 列: create_at
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/ComActEasyPhotoTypeRelationDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/ComActEasyPhotoTypeRelationDO.java
new file mode 100644
index 0000000..144e7e1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/ComActEasyPhotoTypeRelationDO.java
@@ -0,0 +1,43 @@
+package com.panzhihua.service_grid.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 lombok.Data;
+
+/**
+ * 随手拍类型关联实体类
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-27
+ */
+@Data
+@TableName("com_act_easy_photo_type_relation")
+public class ComActEasyPhotoTypeRelationDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id 列: id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 随手拍id 列: easy_id
+     */
+    private Long easyId;
+    /**
+     * 随手拍类型id 列: easy_type_id
+     */
+    private Long easyTypeId;
+    /**
+     * 创建时间 列: create_at
+     */
+    private Date createAt;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventApplicationAppReleaseDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventApplicationAppReleaseDO.java
new file mode 100644
index 0000000..a31831c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventApplicationAppReleaseDO.java
@@ -0,0 +1,58 @@
+package com.panzhihua.service_grid.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * APP应用版本信息实体类
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@TableName("event_application_app_release")
+public class EventApplicationAppReleaseDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id 列: id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 应用ID 列: product_id
+     */
+    private Integer productId;
+    /**
+     * 应用名称 列: product_name
+     */
+    private String productName;
+    /**
+     * 版本编号 列: release_number
+     */
+    private String releaseNumber;
+    /**
+     * 通知行为(1、强制更新2、提示更新) 列: action
+     */
+    private Integer action;
+    /**
+     * 版本地址 列: url
+     */
+    private String url;
+    /**
+     * 创建时间 列: create_at
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+    /**
+     * 创建人 列: create_by
+     */
+    private Long createBy;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventApplicationUserNoticeDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventApplicationUserNoticeDO.java
new file mode 100644
index 0000000..cdd48a3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventApplicationUserNoticeDO.java
@@ -0,0 +1,54 @@
+package com.panzhihua.service_grid.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * 用户协议和隐私政策信息实体类
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@TableName("event_application_user_notice")
+public class EventApplicationUserNoticeDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id 列: id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 应用ID 列: product_id
+     */
+    private Integer productId;
+    /**
+     * 应用名称 列: product_name
+     */
+    private String productName;
+    /**
+     * 通知行为(1、强制通知必须手段确定2、提示更新,自动消退) 列: action
+     */
+    private Integer action;
+    /**
+     * 内容 列: content
+     */
+    private String content;
+    /**
+     * 创建时间 列: create_at
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+    /**
+     * 创建人 列: create_by
+     */
+    private Long createBy;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventDO.java
new file mode 100644
index 0000000..6fb1c77
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventDO.java
@@ -0,0 +1,226 @@
+package com.panzhihua.service_grid.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * 事件实体类
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@TableName("event")
+public class EventDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id 列: id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 服务单号 列: order_sn
+     */
+    private String orderSn;
+    /**
+     * 1、办件事件2是宣传事件3是阅读事件 列: event_category
+     */
+    private Long eventCategory;
+    /**
+     * 网格员所处的街道 列: grid_member_street
+     */
+    private Long gridMemberStreet;
+    /**
+     * 网格员所处社区 列: grid_member_community
+     */
+    private Long gridMemberCommunity;
+    /**
+     * 网格ID 列: grid_id
+     */
+    private Long gridId;
+    /**
+     * 网格员 列: grid_member_id
+     */
+    private Long gridMemberId;
+    /**
+     * 网格员名字 列: grid_member_name
+     */
+    private String gridMemberName;
+    /**
+     * 网格员联系方式 列: grid_member_telephone
+     */
+    private String gridMemberTelephone;
+    /**
+     * 事件标题 列: event_title
+     */
+    private String eventTitle;
+    /**
+     * 宣传类型 列: propaganda_type
+     */
+    private String propagandaType;
+    /**
+     * 宣传时间 列: propaganda_time
+     */
+    private Date propagandaTime;
+    /**
+     * 当event_type_category是1填写事件分类1治安隐患、2公共服务、3矛盾纠纷、4不稳定因素、5突发事件、6特殊人群信息上报 列: event_type
+     */
+    private Integer eventType;
+    /**
+     * 事件类型 列: event_clazz
+     */
+    private String eventClazz;
+    /**
+     * 事件描述 列: event_des
+     */
+    private String eventDes;
+    /**
+     * 宣传对象 列: propaganda_object
+     */
+    private String propagandaObject;
+    /**
+     * 宣传人数 列: propaganda_num
+     */
+    private String propagandaNum;
+    /**
+     * 社区处理(0是无需社区1是社区处理) 列: community_process
+     */
+    private Integer communityProcess;
+    /**
+     * 发生时间 列: happen_time
+     */
+    private Date happenTime;
+    /**
+     * 事件发生地点备注 列: happent_address
+     */
+    private String happentAddress;
+    /**
+     * 事件发生地点 列: happen_address
+     */
+    private String happenAddress;
+    /**
+     * 发生的精度纬度信息(逗号隔开) 列: happent_lat_lng
+     */
+    private String happentLatLng;
+    /**
+     * 事件状态(1草稿箱2发布3逻辑删除4、撤销) 列: event_status
+     */
+    private Integer eventStatus;
+    /**
+     * 1待处理2已解决3待验证 列: event_process_status
+     */
+    private Integer eventProcessStatus;
+    /**
+     * 当前处理对象类型(1、网格员2、社区3、是街道) 列: process_type
+     */
+    private Integer processType;
+    /**
+     * 处理人ID 列: process_user_id
+     */
+    private Long processUserId;
+    /**
+     * 处理流程记录ID 列: process_record_id
+     */
+    private Long processRecordId;
+    /**
+     * 处理人名称 列: process_user_name
+     */
+    private String processUserName;
+    /**
+     * 处理时间 列: process_date
+     */
+    private Date processDate;
+    /**
+     * 解决人针对解决事件的处理描述 列: process_desc
+     */
+    private String processDesc;
+    /**
+     * 事件来源 列: event_resource
+     */
+    private String eventResource;
+    /**
+     * 危险级别 列: danger_level
+     */
+    private Integer dangerLevel;
+    /**
+     * 红牌 列: red_card
+     */
+    private Boolean redCard;
+    /**
+     * 黄牌 列: yellow_card
+     */
+    private Boolean yellowCard;
+    /**
+     * 是否有效 列: invalid
+     */
+    private Boolean invalid;
+    /**
+     * 是否重大 列: major
+     */
+    private Boolean major;
+    /**
+     * 死亡人数 列: deaths_number
+     */
+    private Integer deathsNumber;
+    /**
+     * 受伤人数 列: injuries_number
+     */
+    private Integer injuriesNumber;
+    /**
+     * 是否疑难事件 列: difficult
+     */
+    private Boolean difficult;
+    /**
+     * 是否紧急 列: urgent
+     */
+    private Boolean urgent;
+    /**
+     * 是否催办 列: urgent_dell
+     */
+    private Boolean urgentDell;
+    /**
+     * 上报提交时间 列: submit_date
+     */
+    private Date submitDate;
+    /**
+     * 事件处理状态 列: event_deal_status
+     */
+    private Integer eventDealStatus;
+    /**
+     * 创建人 列: create_by
+     */
+    private Long createBy;
+    /**
+     * 创建时间 列: create_at
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+    /**
+     * 修改人 列: update_by
+     */
+    private Long updateBy;
+    /**
+     * 修改时间 列: update_at
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateAt;
+
+    private Boolean upload;
+
+    /**
+     * 撤销人/社区ID 列: revoke_id
+     */
+    private Long revokeId;
+    /**
+     * 修改时间 列: revoke_type
+     */
+    private Integer revokeType;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventGridDataDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventGridDataDO.java
new file mode 100644
index 0000000..e25dbb5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventGridDataDO.java
@@ -0,0 +1,105 @@
+package com.panzhihua.service_grid.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * 区县/街道/社区/网格员网格数据管理实体类
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@TableName("event_grid_data")
+public class EventGridDataDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID 列: id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 类型,1、区县网格2街道网格3社区网格 列: type
+     */
+    private Long type;
+    /**
+     * 区/县ID 列: zone_id
+     */
+    private Long zoneId;
+    /**
+     * 网格所属街道 列: grid_street_id
+     */
+    private Long gridStreetId;
+    /**
+     * 网格所属社区ID 列: grid_community_id
+     */
+    private Long gridCommunityId;
+    /**
+     * 网格名称 列: grid_name
+     */
+    private String gridName;
+    /**
+     * 所属图层 列: map_level
+     */
+    private Integer mapLevel;
+    /**
+     * 面积 列: area
+     */
+    private String area;
+    /**
+     * 线条颜色 列: line_color
+     */
+    private String lineColor;
+    /**
+     * 线条宽度 列: line_broadband
+     */
+    private String lineBroadband;
+    /**
+     * 填充颜色 列: fill_color
+     */
+    private String fillColor;
+    /**
+     * 备注 列: remarks
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    private String remarks;
+    /**
+     * 围栏数据 列: data
+     */
+    private String data;
+    /**
+     * 创建人 列: create_by
+     */
+    private Long createBy;
+    /**
+     * 创建时间 列: create_at
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+    /**
+     * 修改人 列: update_by
+     */
+    private Long updateBy;
+    /**
+     * 修改时间 列: update_at
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateAt;
+
+    /**
+     * 类型,1、区县网格2街道网格3社区网格
+     */
+    public interface type {
+        Long qx = 1L;
+        Long jd = 2L;
+        Long sq = 3L;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventGridMemberGpsLogDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventGridMemberGpsLogDO.java
new file mode 100644
index 0000000..ad4b58f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventGridMemberGpsLogDO.java
@@ -0,0 +1,79 @@
+package com.panzhihua.service_grid.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * 网格员定时上报地理信息实体类
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@TableName("event_grid_member_gps_log")
+public class EventGridMemberGpsLogDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID 列: id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 网格所属街道 列: grid_street_id
+     */
+    private Long gridStreetId;
+    /**
+     * 网格所属社区ID 列: grid_community_id
+     */
+    private Long gridCommunityId;
+    /**
+     * 网格ID 列: grid_id
+     */
+    private Long gridId;
+    /**
+     * 网格名称 列: grid_name
+     */
+    private String gridName;
+    /**
+     * 网格员ID 列: grid_member_id
+     */
+    private Long gridMemberId;
+    /**
+     * 精度维度信息,逗号分割 列: lng_lat
+     */
+    private String lngLat;
+    /**
+     * 位置信息状态(1、为判定2、正常3、是不正常) 列: position_station
+     */
+    private Integer positionStation;
+    /**
+     * 创建人 列: create_by
+     */
+    private Long createBy;
+    /**
+     * 创建时间 列: create_at
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+    /**
+     * 定位地址信息 列:position_address
+     */
+    private String positionAddress;
+
+    /**
+     * 位置信息状态(1、为判定2、正常3、是不正常)
+     */
+    public interface positionStation {
+        int no = 1;
+        int normal = 2;
+        int abnormal = 3;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventGridMemberRelationDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventGridMemberRelationDO.java
new file mode 100644
index 0000000..70af96d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventGridMemberRelationDO.java
@@ -0,0 +1,70 @@
+package com.panzhihua.service_grid.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * 网格和网格员的关联关系实体类
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@TableName("event_grid_member_relation")
+public class EventGridMemberRelationDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID 列: id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 网格所属街道 列: grid_street_id
+     */
+    private Long gridStreetId;
+    /**
+     * 网格所属社区ID 列: grid_community_id
+     */
+    private Long gridCommunityId;
+    /**
+     * 网格ID 列: grid_id
+     */
+    private Long gridId;
+    /**
+     * 网格名称 列: grid_name
+     */
+    private String gridName;
+    /**
+     * 网格员ID 列: grid_member_id
+     */
+    private Long gridMemberId;
+    /**
+     * 网格员工作状态 列: work_status
+     */
+    private Integer workStatus;
+    /**
+     * 工作开始时间 列: work_start_at
+     */
+    private Integer workStartAt;
+    /**
+     * 工作结束时间 列: work_end_at
+     */
+    private Integer workEndAt;
+    /**
+     * 创建人 列: create_by
+     */
+    private Long createBy;
+    /**
+     * 创建时间 列: create_at
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventGridMemberWarnLogDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventGridMemberWarnLogDO.java
new file mode 100644
index 0000000..8624c6f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventGridMemberWarnLogDO.java
@@ -0,0 +1,74 @@
+package com.panzhihua.service_grid.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * 网格员定时上报地理预警记录实体类
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@TableName("event_grid_member_warn_log")
+public class EventGridMemberWarnLogDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID 列: id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 网格所属街道 列: grid_street_id
+     */
+    private Long gridStreetId;
+    /**
+     * 网格所属社区ID 列: grid_community_id
+     */
+    private Long gridCommunityId;
+    /**
+     * 网格ID 列: grid_id
+     */
+    private Long gridId;
+    /**
+     * 网格名称 列: grid_name
+     */
+    private String gridName;
+    /**
+     * 网格员ID 列: grid_member_id
+     */
+    private Long gridMemberId;
+    /**
+     * 精度维度信息,逗号分割 列: lng_lat
+     */
+    private String lngLat;
+    /**
+     * 预警信息内容 列: content
+     */
+    private String content;
+    /**
+     * 创建人 列: create_by
+     */
+    private Long createBy;
+    /**
+     * 创建时间 列: create_at
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+    /**
+     * 定位地址信息 列:position_address
+     */
+    private String positionAddress;
+    /**
+     * 发生时间 列:happen_at
+     */
+    private Date happenAt;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventMainMemberDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventMainMemberDO.java
new file mode 100644
index 0000000..a6e28fc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventMainMemberDO.java
@@ -0,0 +1,147 @@
+package com.panzhihua.service_grid.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * 重点人群记录实体类
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@TableName("event_main_member")
+public class EventMainMemberDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id 列: id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 网格员所处的街道 列: grid_member_street
+     */
+    private Long gridMemberStreet;
+    /**
+     * 网格员所处社区 列: grid_member_community
+     */
+    private Long gridMemberCommunity;
+    /**
+     * 网格员 列: grid_member
+     */
+    private Long gridMember;
+    /**
+     * 网格员名字 列: grid_member_name
+     */
+    private String gridMemberName;
+    /**
+     * 网格员联系方式 列: grid_member_tele
+     */
+    private String gridMemberTele;
+    /**
+     * 需走访人ID 列: visiter_id
+     */
+    private Long visiterId;
+    /**
+     * 需走访人名字 列: visiter_name
+     */
+    private String visiterName;
+    /**
+     * 需走访人员性别 列: visiter_sex
+     */
+    private Integer visiterSex;
+    /**
+     * 需走访人电话 列: visiter_tele
+     */
+    private String visiterTele;
+    /**
+     * 需走访人居住地址 列: visiter_address
+     */
+    private String visiterAddress;
+    /**
+     * 需走访人地址精度纬度信息(逗号隔开) 列: visiter_address_lat_lng
+     */
+    private String visiterAddressLatLng;
+    /**
+     * 人员类型1吸毒2严重精神障碍3刑释人员4社区矫正人员 列: visiter_type
+     */
+    private Integer visiterType;
+    /**
+     * 社区处理(0是无需社区1是社区处理) 列: act_opara
+     */
+    private Integer actOpara;
+    /**
+     * 事件状态(1待处理2自己已解决3待验证4草稿箱5已撤销6异常) 列: event_status
+     */
+    private Integer eventStatus;
+    /**
+     * 上报状态 列: reporting
+     */
+    private Integer reporting;
+    /**
+     * 当前处理对象类型(1、网格员2、社区3、是街道) 列: dell_type
+     */
+    private Integer dellType;
+    /**
+     * 处理人ID 列: dell_user_id
+     */
+    private Long dellUserId;
+    /**
+     * 处理人名称 列: dell_user_name
+     */
+    private String dellUserName;
+    /**
+     * 处理时间 列: dell_date
+     */
+    private Date dellDate;
+    /**
+     * 解决人针对解决事件的处理描述 列: dell_desc
+     */
+    private String dellDesc;
+    /**
+     * 是否有效 列: invalid
+     */
+    private Boolean invalid;
+    /**
+     * 是否紧急 列: urgent
+     */
+    private Boolean urgent;
+    /**
+     * 是否催办 列: urgent_dell
+     */
+    private Boolean urgentDell;
+    /**
+     * 上报提交时间 列: submit_date
+     */
+    private Date submitDate;
+    /**
+     * 走访频率配置,一个月几次 列: visiter_config
+     */
+    private String visiterConfig;
+    /**
+     * 创建人 列: create_by
+     */
+    private Long createBy;
+    /**
+     * 创建事件 列: create_at
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+    /**
+     * 修改人 列: update_by
+     */
+    private Long updateBy;
+    /**
+     * 修改时间 列: update_at
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateAt;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventResourceDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventResourceDO.java
new file mode 100644
index 0000000..132b2ff
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventResourceDO.java
@@ -0,0 +1,67 @@
+package com.panzhihua.service_grid.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * 事件或者走访中关联的图片音频和视频文件实体类
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@TableName("event_resource")
+public class EventResourceDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 分类(1、事件 2、走访 3、事件流转) 列: classification
+     */
+    private Integer classification;
+    /**
+     * ID 列: id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 事件或者走访任务关联ID 列: id
+     */
+    private Long refId;
+    /**
+     * 事件上传的资源类型(1是图片2是音频3是是视频) 列: type
+     */
+    private Integer type;
+    /**
+     * 资源名称 列: resource_name
+     */
+    private String resourceName;
+    /**
+     * 资源大小 列: resource_size
+     */
+    private String resourceSize;
+    /**
+     * 视频或音频时长 列: resource_time
+     */
+    private Integer resourceTime;
+    /**
+     * 事件上传的资源URL地址 列: url
+     */
+    private String url;
+    /**
+     * 创建人 列: create_by
+     */
+    private Long createBy;
+    /**
+     * 创建时间 列: create_at
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+    private Boolean upload;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventSpecialCrowdRecordDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventSpecialCrowdRecordDO.java
new file mode 100644
index 0000000..3a5183a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventSpecialCrowdRecordDO.java
@@ -0,0 +1,50 @@
+package com.panzhihua.service_grid.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 lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-06-22 15:37:01
+ * @describe 事件-特殊人群上报人口关联表实体类
+ */
+
+@Data
+@TableName("event_special_crowd_record")
+public class EventSpecialCrowdRecordDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 事件id
+     */
+    private Long eventId;
+
+    /**
+     * 实有人口id
+     */
+    private Long populationId;
+
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+
+    @Override
+    public String toString() {
+        return "EventSpecialCrowdRecordDO{" + "id=" + id + ", eventId=" + eventId + ", populationId=" + populationId
+            + ", createAt=" + createAt + "}";
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventTransferRecordDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventTransferRecordDO.java
new file mode 100644
index 0000000..35829a2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventTransferRecordDO.java
@@ -0,0 +1,82 @@
+package com.panzhihua.service_grid.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * 事件处理流转记录实体类
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@TableName("event_transfer_record")
+public class EventTransferRecordDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id 列: id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 事件ID 列: event_id
+     */
+    private Long eventId;
+    /**
+     * 来源类型(1、网格员2、社区3、是街道) 列: from_type
+     */
+    private Integer fromType;
+    /**
+     * 事件来源机构或网格员 列: from_id
+     */
+    private Long fromId;
+    /**
+     * 转交办理人路径名称 列: from_name
+     */
+    private String fromName;
+    /**
+     * 转交类型(1、网格员2、社区3、是街道) 列: to_type
+     */
+    private Integer toType;
+    /**
+     * 事件下游机构或网格员 列: to_id
+     */
+    private Long toId;
+    /**
+     * 需要办理人路径名称 列: to_name
+     */
+    private String toName;
+    /**
+     * 处理结果 列: process_result
+     */
+    private String processResult;
+    /**
+     * 处理时间 列: process_date
+     */
+    private Date processDate;
+    /**
+     * 处理人或社区 列: process_by
+     */
+    private Long processBy;
+    /**
+     * 处理人名或社区名 列: process_by_name
+     */
+    private String processByName;
+    /**
+     * 业务处理类型 列: process_type
+     */
+    private Integer processType;
+    /**
+     * 创建时间 列: create_at
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventVisitingTasksDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventVisitingTasksDO.java
new file mode 100644
index 0000000..600077b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/EventVisitingTasksDO.java
@@ -0,0 +1,233 @@
+package com.panzhihua.service_grid.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * 重点人群走访记录实体类
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+@Data
+@TableName("event_visiting_tasks")
+// @EncryptDecryptClass
+public class EventVisitingTasksDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id 列: id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 网格员所处的街道 列: grid_member_street
+     */
+    private Long gridMemberStreet;
+    /**
+     * 网格员所处社区 列: grid_member_community
+     */
+    private Long gridMemberCommunity;
+    /**
+     * 网格员 列: grid_member
+     */
+    private Long gridMember;
+    /**
+     * 网格员名字 列: grid_member_name
+     */
+    private String gridMemberName;
+    /**
+     * 网格员联系方式 列: grid_menber_tele
+     */
+    private String gridMenberTele;
+    /**
+     * 需走访人ID 列: visiter_id
+     */
+    private Long visiterId;
+    /**
+     * 需走访人名字 列: visiter_name
+     */
+    private String visiterName;
+    /**
+     * 需走访人员性别 列: visiter_sex
+     */
+    private Integer visiterSex;
+    /**
+     * 需走访人电话 列: visiter_tele
+     */
+    // @EncryptDecryptField
+    private String visiterTele;
+    /**
+     * 需走访人居住地址 列: visiter_address
+     */
+    private String visiterAddress;
+    /**
+     * 人员类型1吸毒2严重精神障碍3刑释人员4社区矫正人员 列: visiter_type
+     */
+    private Integer visiterType;
+    /**
+     * 事件标题 列: event_title
+     */
+    private String eventTitle;
+    /**
+     * 事件类型 列: event_type
+     */
+    private Integer eventType;
+    /**
+     * 事件描述 列: event_des
+     */
+    private String eventDes;
+    /**
+     * 社区处理(0是无需社区1是社区处理) 列: act_opara
+     */
+    private Integer actOpara;
+    /**
+     * 发生时间 列: happen_time
+     */
+    private Date happenTime;
+    /**
+     * 发生地点 列: happent_address
+     */
+    private String happentAddress;
+    /**
+     * 发生的精度纬度信息(逗号隔开) 列: happent_lat_lng
+     */
+    private String happentLatLng;
+    /**
+     * 事件状态(1待处理2自己已解决3待验证4草稿箱5已撤销6异常) 列: event_status
+     */
+    private Integer eventStatus;
+    /**
+     * 上报状态 列: reporting
+     */
+    private Integer reporting;
+    /**
+     * 当前处理对象类型(1、网格员2、社区3、是街道) 列: dell_type
+     */
+    private Integer dellType;
+    /**
+     * 处理人ID 列: dell_user_id
+     */
+    private Long dellUserId;
+    /**
+     * 处理人名称 列: dell_user_name
+     */
+    private String dellUserName;
+    /**
+     * 处理时间 列: dell_date
+     */
+    private Date dellDate;
+    /**
+     * 解决人针对解决事件的处理描述 列: dell_desc
+     */
+    private String dellDesc;
+    /**
+     * 是否有效 列: invalid
+     */
+    private Boolean invalid;
+    /**
+     * 是否紧急 列: urgent
+     */
+    private Boolean urgent;
+    /**
+     * 是否催办 列: urgent_dell
+     */
+    private Boolean urgentDell;
+    /**
+     * 上报提交时间 列: submit_date
+     */
+    private Date submitDate;
+    /**
+     * 是否异常行为 列: exception
+     */
+    private Integer exception;
+    /**
+     * 走访内容根据重点人员类型输入项不同,录入全部的表单内容数据 列: table_content_json
+     */
+    private String tableContentJson;
+    /**
+     * 创建人 列: create_by
+     */
+    private Long createBy;
+    /**
+     * 创建事件 列: create_at
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+    /**
+     * 修改人 列: update_by
+     */
+    private Long updateBy;
+    /**
+     * 修改时间 列: update_at
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateAt;
+
+    /**
+     * 地址备注
+     */
+    private String addressRemark;
+    /**
+     * 家庭联系电话
+     */
+    private String familyPhone;
+
+    /**
+     * 家庭来源
+     */
+    private String familySource;
+
+    /**
+     * 访问后的填写的地址
+     */
+    private String address;
+
+    /**
+     * 访问后的经纬度
+     */
+    private String latLng;
+
+    /**
+     * 本地或外地:1本地2外地
+     */
+    private Integer outOrLocal;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 网格ID
+     */
+    private Long gridId;
+    /**
+     * 是否已经上传浪潮服务器市平台
+     */
+    private Boolean lcUpload;
+
+    /**
+     * 是否有异常枚举(1.是  0.否)
+     */
+    public interface exception{
+        int yes = 1;
+        int no = 0;
+
+    }
+
+    /**
+     * 走访任务状态(1.待走访 2.已走访)
+     */
+    public interface eventStatus{
+        int dzf = 1;
+        int yzf = 2;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/LcCompareCodeDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/LcCompareCodeDO.java
new file mode 100644
index 0000000..b9dd8d3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/LcCompareCodeDO.java
@@ -0,0 +1,37 @@
+package com.panzhihua.service_grid.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 lombok.Data;
+
+/**
+ * Description 本地网格和浪潮的对码表 ClassName LcCompareCode
+ * 
+ * @author manailin
+ */
+@Data
+@TableName("lc_compare_code")
+public class LcCompareCodeDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+    /** 主键 */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /** 本地网格ID */
+    private String localGridId;
+    /** 网格名称 */
+    private String gridName;
+    /** 浪潮市平台网格ID */
+    private String lcGridId;
+    /** 浪潮市平台网格名称 */
+    private String lcGridName;
+    /** 创建时间 */
+    private Date createAt;
+    /** 修改时间 */
+    private Date updateAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/LcCompareCodeMemberDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/LcCompareCodeMemberDO.java
new file mode 100644
index 0000000..4025efe
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/dos/LcCompareCodeMemberDO.java
@@ -0,0 +1,39 @@
+package com.panzhihua.service_grid.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 lombok.Data;
+
+/**
+ * Description 本地网格和浪潮的对码表 ClassName LcCompareCode
+ * 
+ * @author manailin
+ */
+@Data
+@TableName("lc_compare_code_member")
+public class LcCompareCodeMemberDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+    /** 主键 */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /** 本地网格ID */
+    private String localGridMemberId;
+    /** 网格名称 */
+    private String gridMemberName;
+    /** 浪潮市平台网格ID */
+    private String lcGridMemberId;
+    /** 浪潮市平台网格名称 */
+    private String lcGridMemberName;
+    /** 浪潮网格员绑定的用户ID */
+    private String lcBindUserId;
+    /** 创建时间 */
+    private Date createAt;
+    /** 修改时间 */
+    private Date updateAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/helper/encrypt/ParammeterInterceptor.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/helper/encrypt/ParammeterInterceptor.java
new file mode 100644
index 0000000..f83c41f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/helper/encrypt/ParammeterInterceptor.java
@@ -0,0 +1,118 @@
+package com.panzhihua.service_grid.model.helper.encrypt;
+
+import java.lang.reflect.Field;
+import java.sql.PreparedStatement;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Properties;
+
+import org.apache.ibatis.binding.BindingException;
+import org.apache.ibatis.binding.MapperMethod;
+import org.apache.ibatis.executor.parameter.ParameterHandler;
+import org.apache.ibatis.plugin.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.core.annotation.AnnotationUtils;
+import org.springframework.stereotype.Component;
+
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.EncryptQuery;
+import com.panzhihua.common.model.helper.encrypt.EncryptQueryClass;
+import com.panzhihua.common.model.helper.encrypt.IEncryptDecrypt;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 加密拦截器 包含加密字段查询时 的加密步骤
+ * 
+ * @author cedoo
+ * @since 2021-4-1 10:40:52
+ */
+@Intercepts({@Signature(type = ParameterHandler.class, method = "setParameters", args = PreparedStatement.class),})
+@ConditionalOnProperty(value = "domain.encrypt", havingValue = "true")
+@Component
+@Slf4j
+public class ParammeterInterceptor implements Interceptor {
+
+    @Autowired
+    private IEncryptDecrypt encryptDecrypt;
+
+    @Override
+    public Object intercept(Invocation invocation) throws Throwable {
+        // 拦截 ParameterHandler 的 setParameters 方法 动态设置参数
+        if (invocation.getTarget() instanceof ParameterHandler) {
+            ParameterHandler parameterHandler = (ParameterHandler)invocation.getTarget();
+            PreparedStatement ps = (PreparedStatement)invocation.getArgs()[0];
+
+            // 反射获取 参数对像
+            Field parameterField = parameterHandler.getClass().getDeclaredField("parameterObject");
+            parameterField.setAccessible(true);
+            Object parameterObject = parameterField.get(parameterHandler);
+            if (Objects.nonNull(parameterObject)) {
+                Class<?> parameterObjectClass = parameterObject.getClass();
+                EncryptDecryptClass encryptDecryptClass =
+                    AnnotationUtils.findAnnotation(parameterObjectClass, EncryptDecryptClass.class);
+                if (Objects.nonNull(encryptDecryptClass)) {
+                    Field[] declaredFields = parameterObjectClass.getDeclaredFields();
+                    final Object encrypt = encryptDecrypt.encrypt(declaredFields, parameterObject);
+                }
+                /**
+                 * 通过加密字段查询时, 将查询参数中的加密字段加密后查询
+                 */
+                if (parameterObjectClass == MapperMethod.ParamMap.class) {
+                    MapperMethod.ParamMap paramMap = (MapperMethod.ParamMap)parameterObject;
+                    boolean encrypted = false;
+                    try {
+                        /**
+                         * 分页插件,会在分页查询时 进行多次查询,需要判断是否已对加密参数加密,防止多次加密后,查询失败
+                         */
+                        encrypted = paramMap.get("encrypted") != null;
+                    } catch (BindingException be) {
+                        encrypted = false;
+                    }
+                    if (!encrypted) {
+                        Iterator iterator = paramMap.entrySet().iterator();
+                        while (iterator.hasNext()) {
+                            Map.Entry<String, Object> entry = (Map.Entry<String, Object>)iterator.next();
+                            if (entry.getKey().startsWith("param")) {
+                                Object v = entry.getValue();
+                                if (v != null) {
+                                    EncryptQueryClass encryptQueryClass =
+                                        AnnotationUtils.findAnnotation(v.getClass(), EncryptQueryClass.class);
+                                    if (Objects.nonNull(encryptQueryClass)) {
+                                        Field[] declaredFields = v.getClass().getDeclaredFields();
+                                        for (Field field : declaredFields) {
+                                            if (field.isAnnotationPresent(EncryptQuery.class)) {
+                                                try {
+                                                    final Object encrypt =
+                                                        encryptDecrypt.encrypt(new Field[] {field}, v);
+                                                    paramMap.put("encrypted", true);
+                                                } catch (IllegalAccessException e) {
+                                                    e.printStackTrace();
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    }
+
+                }
+
+            }
+        }
+        return invocation.proceed();
+    }
+
+    @Override
+    public Object plugin(Object o) {
+        return Plugin.wrap(o, this);
+    }
+
+    @Override
+    public void setProperties(Properties properties) {
+
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/helper/encrypt/ResultInterceptor.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/helper/encrypt/ResultInterceptor.java
new file mode 100644
index 0000000..ab7a0fd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/helper/encrypt/ResultInterceptor.java
@@ -0,0 +1,78 @@
+package com.panzhihua.service_grid.model.helper.encrypt;
+
+import java.sql.Statement;
+import java.util.ArrayList;
+import java.util.Objects;
+import java.util.Properties;
+
+import org.apache.ibatis.executor.resultset.ResultSetHandler;
+import org.apache.ibatis.plugin.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.core.annotation.AnnotationUtils;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+
+import com.panzhihua.common.model.helper.encrypt.EncryptDecryptClass;
+import com.panzhihua.common.model.helper.encrypt.IEncryptDecrypt;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 解密拦截器
+ *
+ * @author cedoo
+ * @since 2021-4-1 10:40:52
+ */
+@Intercepts({@Signature(type = ResultSetHandler.class, method = "handleResultSets", args = {Statement.class})})
+@ConditionalOnProperty(value = "domain.decrypt", havingValue = "true")
+@Component
+@Slf4j
+@Order(110)
+public class ResultInterceptor implements Interceptor {
+
+    @Autowired
+    private IEncryptDecrypt encryptDecrypt;
+
+    @Override
+    public Object intercept(Invocation invocation) throws Throwable {
+        Object result = invocation.proceed();
+        if (Objects.isNull(result)) {
+            return null;
+        }
+
+        if (result instanceof ArrayList) {
+            ArrayList resultList = (ArrayList)result;
+            if (resultList != null && resultList.size() > 0 && needToDecrypt(resultList.get(0))) {
+                for (int i = 0; i < resultList.size(); i++) {
+                    encryptDecrypt.decrypt(resultList.get(i));
+                }
+            }
+        } else {
+            if (needToDecrypt(result)) {
+                encryptDecrypt.decrypt(result);
+            }
+        }
+        return result;
+    }
+
+    public boolean needToDecrypt(Object object) {
+        if (object != null) {
+            Class<?> objectClass = object.getClass();
+            EncryptDecryptClass encryptDecryptClass =
+                AnnotationUtils.findAnnotation(objectClass, EncryptDecryptClass.class);
+            return Objects.nonNull(encryptDecryptClass);
+        }
+        return false;
+    }
+
+    @Override
+    public Object plugin(Object target) {
+        return Plugin.wrap(target, this);
+    }
+
+    @Override
+    public void setProperties(Properties properties) {
+
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/helper/sensitive/SensitiveInterceptor.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/helper/sensitive/SensitiveInterceptor.java
new file mode 100644
index 0000000..7fd3ef3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/model/helper/sensitive/SensitiveInterceptor.java
@@ -0,0 +1,73 @@
+package com.panzhihua.service_grid.model.helper.sensitive;
+
+import java.lang.reflect.Field;
+import java.sql.Statement;
+import java.util.List;
+import java.util.stream.Stream;
+
+import org.apache.ibatis.executor.resultset.ResultSetHandler;
+import org.apache.ibatis.plugin.Interceptor;
+import org.apache.ibatis.plugin.Intercepts;
+import org.apache.ibatis.plugin.Invocation;
+import org.apache.ibatis.plugin.Signature;
+import org.apache.ibatis.reflection.MetaObject;
+import org.apache.ibatis.reflection.SystemMetaObject;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+
+import com.panzhihua.common.model.helper.sensitive.Sensitive;
+import com.panzhihua.common.model.helper.sensitive.SensitiveStrategy;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 字段脱敏拦截器
+ * 
+ * @author cedoo
+ * @since 2021-4-1 10:40:52
+ */
+@Intercepts(@Signature(type = ResultSetHandler.class, method = "handleResultSets", args = {Statement.class}))
+@Slf4j
+@ConditionalOnProperty(value = "domain.sensitive", havingValue = "true")
+@Component
+@Order(120)
+public class SensitiveInterceptor implements Interceptor {
+    @SuppressWarnings("unchecked")
+    @Override
+    public Object intercept(Invocation invocation) throws Throwable {
+        // log.debug("脱敏拦截器");
+        List<Object> records = (List<Object>)invocation.proceed();
+        // 对结果集脱敏
+        records.forEach(this::sensitive);
+        return records;
+    }
+
+    private void sensitive(Object source) {
+        if (source != null) {
+            // 拿到返回值类型
+            Class<?> sourceClass = source.getClass();
+            // 初始化返回值类型的 MetaObject
+            MetaObject metaObject = SystemMetaObject.forObject(source);
+            // 捕捉到属性上的标记注解 @Sensitive 并进行对应的脱敏处理
+            Stream.of(sourceClass.getDeclaredFields()).filter(field -> field.isAnnotationPresent(Sensitive.class))
+                .forEach(field -> doSensitive(metaObject, field));
+        }
+    }
+
+    private void doSensitive(MetaObject metaObject, Field field) {
+        // 拿到属性名
+        String name = field.getName();
+        // 获取属性值
+        Object value = metaObject.getValue(name);
+        // 只有字符串类型才能脱敏 而且不能为null
+        if (String.class == metaObject.getGetterType(name) && value != null) {
+            Sensitive annotation = field.getAnnotation(Sensitive.class);
+            // 获取对应的脱敏策略 并进行脱敏
+            SensitiveStrategy type = annotation.strategy();
+            Object o = type.getDesensitizer().apply((String)value);
+            // 把脱敏后的值塞回去
+            metaObject.setValue(name, o);
+        }
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/ComActEasyPhotoService.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/ComActEasyPhotoService.java
new file mode 100644
index 0000000..4f147f8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/ComActEasyPhotoService.java
@@ -0,0 +1,135 @@
+package com.panzhihua.service_grid.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.grid.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.ComActEasyPhotoDetailsVO;
+import com.panzhihua.common.model.vos.grid.ComActEasyPhotoVO;
+import com.panzhihua.service_grid.model.dos.ComActEasyPhotoDO;
+
+/**
+ * 社区活动 》随手拍 service
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+public interface ComActEasyPhotoService extends IService<ComActEasyPhotoDO> {
+
+    /**
+     * 新增社区活动 》随手拍
+     * 
+     * @param comActEasyPhotoAddDTO
+     * @return 新增结果
+     */
+    R add(ComActEasyPhotoAddDTO comActEasyPhotoAddDTO);
+
+    /**
+     * 修改社区活动 》随手拍
+     * 
+     * @param comActEasyPhotoEditDTO
+     * @return 维护结果
+     */
+    R edit(ComActEasyPhotoEditDTO comActEasyPhotoEditDTO);
+
+    /**
+     * 分页查询随手拍
+     * 
+     * @param easyAppDTO
+     *            请求参数
+     * @return 随手拍列表
+     */
+    R<IPage<ComActEasyPhotoVO>> query(PageEasyAppDTO easyAppDTO);
+
+    /**
+     * 删除社区活动 》随手拍
+     * 
+     * @param ComActEasyPhotoDeleteDTO
+     * @return 平台用户信息
+     */
+    R delete(ComActEasyPhotoDeleteDTO ComActEasyPhotoDeleteDTO);
+
+    /**
+     * 查询社区活动 》随手拍详细信息
+     * 
+     * @param id
+     *            社区活动 》随手拍 id
+     * @return 查找结果
+     */
+    R<ComActEasyPhotoDetailsVO> comActEasyPhotoDetails(Long id);
+
+    /**
+     * 根据随手拍id查询随手拍详情
+     * 
+     * @param easyId
+     *            随手拍id
+     * @return 随手拍详情
+     */
+    R detail(Long easyId);
+
+    /**
+     * 随手拍处理
+     * 
+     * @param photoHandleDTO
+     *            请求参数
+     * @return 处理结果
+     */
+    R easyHandle(ComActEasyPhotoHandleDTO photoHandleDTO);
+
+    /**
+     * 随手拍公示状态切换
+     * 
+     * @param photoHandleDTO
+     *            请求参数
+     * @return 切换结果
+     */
+    R easyPublicity(ComActEasyPhotoHandleDTO photoHandleDTO);
+
+    /**
+     * 随手拍上报社区
+     * 
+     * @param photoHandleDTO
+     *            请求参数
+     * @return 上报结果
+     */
+    R easyReport(ComActEasyPhotoHandleDTO photoHandleDTO);
+
+    /**
+     * 后台管理-分页查询随手拍列表
+     * 
+     * @param easyAppDTO
+     *            请求参数
+     * @return 随手拍列表
+     */
+    R easyListByAdmin(PageEasyAdminDTO easyAppDTO);
+
+    /**
+     * 后台管理-随手拍详情
+     * 
+     * @param easyId
+     *            随手拍id
+     * @return 随手拍详情
+     */
+    R easyDetailByAdmin(Long easyId);
+
+    /**
+     * 后台管理-随手拍处理
+     * 
+     * @param photoHandleDTO
+     *            请求参数
+     * @return 处理结果
+     */
+    R easyHandleByAdmin(ComActEasyPhotoHandleDTO photoHandleDTO);
+
+    /**
+     * 后台管理-批量修改随手拍公示状态/删除随手拍
+     * 
+     * @param photoEditDTO
+     *            请求参数
+     * @return 修改/删除结果
+     */
+    R easyPublicityByAdmin(ComActEasyPhotoEditAdminDTO photoEditDTO);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/ComActEasyPhotoTypeRelationService.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/ComActEasyPhotoTypeRelationService.java
new file mode 100644
index 0000000..6cf85f2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/ComActEasyPhotoTypeRelationService.java
@@ -0,0 +1,16 @@
+package com.panzhihua.service_grid.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_grid.model.dos.ComActEasyPhotoTypeRelationDO;
+
+/**
+ * 随手拍类型关联 service
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-27
+ */
+public interface ComActEasyPhotoTypeRelationService extends IService<ComActEasyPhotoTypeRelationDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/ComActEasyPhotoTypeService.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/ComActEasyPhotoTypeService.java
new file mode 100644
index 0000000..a016a22
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/ComActEasyPhotoTypeService.java
@@ -0,0 +1,72 @@
+package com.panzhihua.service_grid.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.grid.ComActEasyPhotoTypeAddDTO;
+import com.panzhihua.common.model.dtos.grid.ComActEasyPhotoTypeDeleteDTO;
+import com.panzhihua.common.model.dtos.grid.ComActEasyPhotoTypeEditDTO;
+import com.panzhihua.common.model.dtos.grid.PageComActEasyPhotoTypeDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.ComActEasyPhotoTypeDetailsVO;
+import com.panzhihua.common.model.vos.grid.ComActEasyPhotoTypeVO;
+import com.panzhihua.service_grid.model.dos.ComActEasyPhotoTypeDO;
+
+/**
+ * 随手拍类型 service
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+public interface ComActEasyPhotoTypeService extends IService<ComActEasyPhotoTypeDO> {
+
+    /**
+     * 新增随手拍类型
+     * 
+     * @param comActEasyPhotoTypeAddDTO
+     * @return 新增结果
+     */
+    R add(ComActEasyPhotoTypeAddDTO comActEasyPhotoTypeAddDTO);
+
+    /**
+     * 修改随手拍类型
+     * 
+     * @param comActEasyPhotoTypeEditDTO
+     * @return 维护结果
+     */
+    R edit(ComActEasyPhotoTypeEditDTO comActEasyPhotoTypeEditDTO);
+
+    /**
+     * 分页查找随手拍类型
+     * 
+     * @param pageComActEasyPhotoTypeDTO
+     * @return 维护结果
+     */
+    R<IPage<ComActEasyPhotoTypeVO>> query(PageComActEasyPhotoTypeDTO pageComActEasyPhotoTypeDTO);
+
+    /**
+     * 删除随手拍类型
+     * 
+     * @param ComActEasyPhotoTypeDeleteDTO
+     * @return 平台用户信息
+     */
+    R delete(ComActEasyPhotoTypeDeleteDTO ComActEasyPhotoTypeDeleteDTO);
+
+    /**
+     * 查询随手拍类型详细信息
+     * 
+     * @param id
+     *            随手拍类型 id
+     * @return 查找结果
+     */
+    R<ComActEasyPhotoTypeDetailsVO> comActEasyPhotoTypeDetails(Long id);
+
+    /**
+     * 查询随手拍类型列表
+     * 
+     * @return 类型列表
+     */
+    R typeList();
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventApplicationAppReleaseService.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventApplicationAppReleaseService.java
new file mode 100644
index 0000000..b252f08
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventApplicationAppReleaseService.java
@@ -0,0 +1,72 @@
+package com.panzhihua.service_grid.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.grid.EventApplicationAppReleaseAddDTO;
+import com.panzhihua.common.model.dtos.grid.EventApplicationAppReleaseDeleteDTO;
+import com.panzhihua.common.model.dtos.grid.EventApplicationAppReleaseEditDTO;
+import com.panzhihua.common.model.dtos.grid.PageEventApplicationAppReleaseDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.EventApplicationAppReleaseDetailsVO;
+import com.panzhihua.common.model.vos.grid.EventApplicationAppReleaseVO;
+import com.panzhihua.service_grid.model.dos.EventApplicationAppReleaseDO;
+
+/**
+ * APP应用版本信息 service
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+public interface EventApplicationAppReleaseService extends IService<EventApplicationAppReleaseDO> {
+
+    /**
+     * 新增APP应用版本信息
+     * 
+     * @param eventApplicationAppReleaseAddDTO
+     * @return 新增结果
+     */
+    R add(EventApplicationAppReleaseAddDTO eventApplicationAppReleaseAddDTO);
+
+    /**
+     * 修改APP应用版本信息
+     * 
+     * @param eventApplicationAppReleaseEditDTO
+     * @return 维护结果
+     */
+    R edit(EventApplicationAppReleaseEditDTO eventApplicationAppReleaseEditDTO);
+
+    /**
+     * 分页查找APP应用版本信息
+     * 
+     * @param pageEventApplicationAppReleaseDTO
+     * @return 维护结果
+     */
+    R<IPage<EventApplicationAppReleaseVO>> query(PageEventApplicationAppReleaseDTO pageEventApplicationAppReleaseDTO);
+
+    /**
+     * 删除APP应用版本信息
+     * 
+     * @param EventApplicationAppReleaseDeleteDTO
+     * @return 平台用户信息
+     */
+    R delete(EventApplicationAppReleaseDeleteDTO EventApplicationAppReleaseDeleteDTO);
+
+    /**
+     * 查询APP应用版本信息详细信息
+     * 
+     * @param id
+     *            APP应用版本信息 id
+     * @return 查找结果
+     */
+    R<EventApplicationAppReleaseDetailsVO> eventApplicationAppReleaseDetails(Long id);
+
+    /**
+     * 获取最新版本信息
+     * 
+     * @return 版本信息
+     */
+    R editionUpdate();
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventApplicationUserNoticeService.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventApplicationUserNoticeService.java
new file mode 100644
index 0000000..5da8097
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventApplicationUserNoticeService.java
@@ -0,0 +1,65 @@
+package com.panzhihua.service_grid.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.grid.EventApplicationUserNoticeAddDTO;
+import com.panzhihua.common.model.dtos.grid.EventApplicationUserNoticeDeleteDTO;
+import com.panzhihua.common.model.dtos.grid.EventApplicationUserNoticeEditDTO;
+import com.panzhihua.common.model.dtos.grid.PageEventApplicationUserNoticeDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.EventApplicationUserNoticeDetailsVO;
+import com.panzhihua.common.model.vos.grid.EventApplicationUserNoticeVO;
+import com.panzhihua.service_grid.model.dos.EventApplicationUserNoticeDO;
+
+/**
+ * 用户协议和隐私政策信息 service
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+public interface EventApplicationUserNoticeService extends IService<EventApplicationUserNoticeDO> {
+
+    /**
+     * 新增用户协议和隐私政策信息
+     * 
+     * @param eventApplicationUserNoticeAddDTO
+     * @return 新增结果
+     */
+    R add(EventApplicationUserNoticeAddDTO eventApplicationUserNoticeAddDTO);
+
+    /**
+     * 修改用户协议和隐私政策信息
+     * 
+     * @param eventApplicationUserNoticeEditDTO
+     * @return 维护结果
+     */
+    R edit(EventApplicationUserNoticeEditDTO eventApplicationUserNoticeEditDTO);
+
+    /**
+     * 分页查找用户协议和隐私政策信息
+     * 
+     * @param pageEventApplicationUserNoticeDTO
+     * @return 维护结果
+     */
+    R<IPage<EventApplicationUserNoticeVO>> query(PageEventApplicationUserNoticeDTO pageEventApplicationUserNoticeDTO);
+
+    /**
+     * 删除用户协议和隐私政策信息
+     * 
+     * @param EventApplicationUserNoticeDeleteDTO
+     * @return 平台用户信息
+     */
+    R delete(EventApplicationUserNoticeDeleteDTO EventApplicationUserNoticeDeleteDTO);
+
+    /**
+     * 查询用户协议和隐私政策信息详细信息
+     * 
+     * @param id
+     *            用户协议和隐私政策信息 id
+     * @return 查找结果
+     */
+    R<EventApplicationUserNoticeDetailsVO> eventApplicationUserNoticeDetails(Long id);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventGridDataService.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventGridDataService.java
new file mode 100644
index 0000000..83ec61c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventGridDataService.java
@@ -0,0 +1,133 @@
+package com.panzhihua.service_grid.service;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.grid.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.EventGridDataDetailsVO;
+import com.panzhihua.service_grid.model.dos.EventGridDataDO;
+
+/**
+ * 区县/街道/社区/网格员网格数据管理 service
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+public interface EventGridDataService extends IService<EventGridDataDO> {
+
+    /**
+     * 新增区县/街道/社区/网格员网格数据管理
+     * 
+     * @param eventGridDataAddDTO
+     * @return 新增结果
+     */
+    R add(EventGridDataAddDTO eventGridDataAddDTO);
+
+    /**
+     * 修改区县/街道/社区/网格员网格数据管理
+     * 
+     * @param eventGridDataEditDTO
+     * @return 维护结果
+     */
+    R edit(EventGridDataEditDTO eventGridDataEditDTO);
+
+    /**
+     * 删除区县/街道/社区/网格员网格数据管理
+     * 
+     * @param EventGridDataDeleteDTO
+     * @return 平台用户信息
+     */
+    R delete(EventGridDataDeleteDTO EventGridDataDeleteDTO);
+
+    /**
+     * 查询区县/街道/社区/网格员网格数据管理详细信息
+     * 
+     * @param id
+     *            区县/街道/社区/网格员网格数据管理 id
+     * @return 查找结果
+     */
+    R<EventGridDataDetailsVO> eventGridDataDetails(Long id);
+
+    /**
+     * 查询用户网格数据管理
+     * 
+     * @param pageEventGridDataDTO
+     *            dto
+     * @return 查找结果
+     */
+    R getUserGrid(PageEventGridDataDTO pageEventGridDataDTO);
+
+    /**
+     * 地图模块-根据网格id查询网格详细信息
+     * 
+     * @param gridId
+     *            网格id
+     * @return 网格详细信息
+     */
+    R getMapGridDetail(Long gridId);
+
+    /**
+     * 获取网格后台待处理事件统计信息
+     * 
+     * @param eventGridTodoDataDTO
+     * @return
+     */
+    R getGridTodoData(EventGridTodoDataDTO eventGridTodoDataDTO);
+
+    /**
+     * 分页查询网格
+     * 
+     * @param eventGridDataDTO
+     *            请求参数
+     * @return 网格列表
+     */
+    R getGridMemberList(PageEventGridDataAdminDTO eventGridDataDTO);
+
+    /**
+     * 查询社区下所有网格员
+     * 
+     * @param communityId
+     *            社区id
+     * @return 网格员列表
+     */
+    R getGridMemberLists(Long communityId);
+
+    /**
+     * 后台新增网格
+     * 
+     * @param eventGridDataDTO
+     *            请求参数
+     * @return 新增结果
+     */
+    R addGridDataByAdmin(EventGridDataAddAdminDTO eventGridDataDTO);
+
+    /**
+     * 后台修改网格
+     * 
+     * @param eventGridDataDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    R editGridDataByAdmin(EventGridDataEditAdminDTO eventGridDataDTO);
+
+    /**
+     * 查询网格下所有网格员
+     * 
+     * @param gridId
+     * @return
+     */
+    R getGridMemberListsByGrid(Long gridId);
+
+    /**
+     * 查询网格下所有网格员
+     * 
+     * @param communityId
+     * @return
+     */
+    R getGridDataListByCommunity(Long communityId);
+
+    R deleteGridDataByAdmin(List<Long> Ids);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventGridMemberGpsLogService.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventGridMemberGpsLogService.java
new file mode 100644
index 0000000..6c3887e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventGridMemberGpsLogService.java
@@ -0,0 +1,85 @@
+package com.panzhihua.service_grid.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.grid.EventGridMemberGpsLogDeleteDTO;
+import com.panzhihua.common.model.dtos.grid.EventGridMemberGpsLogEditDTO;
+import com.panzhihua.common.model.dtos.grid.EventGridMemberWorkTrajectoryDTO;
+import com.panzhihua.common.model.dtos.grid.PageEventGridMemberGpsLogDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.EventGridMemberGpsLogDetailsVO;
+import com.panzhihua.common.model.vos.grid.EventGridMemberGpsLogVO;
+import com.panzhihua.common.model.vos.grid.GridMemberPositionDTO;
+import com.panzhihua.service_grid.model.dos.EventGridMemberGpsLogDO;
+
+/**
+ * 网格员定时上报地理信息 service
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+public interface EventGridMemberGpsLogService extends IService<EventGridMemberGpsLogDO> {
+
+    /**
+     * 新增网格员定时上报地理信息
+     * 
+     * @param memberPositionDTO
+     *            请求参数
+     * @return 新增结果
+     */
+    R add(GridMemberPositionDTO memberPositionDTO);
+
+    /**
+     * 修改网格员定时上报地理信息
+     * 
+     * @param eventGridMemberGpsLogEditDTO
+     * @return 维护结果
+     */
+    R edit(EventGridMemberGpsLogEditDTO eventGridMemberGpsLogEditDTO);
+
+    /**
+     * 分页查找网格员定时上报地理信息
+     * 
+     * @param pageEventGridMemberGpsLogDTO
+     * @return 维护结果
+     */
+    R<IPage<EventGridMemberGpsLogVO>> query(PageEventGridMemberGpsLogDTO pageEventGridMemberGpsLogDTO);
+
+    /**
+     * 删除网格员定时上报地理信息
+     * 
+     * @param EventGridMemberGpsLogDeleteDTO
+     * @return 平台用户信息
+     */
+    R delete(EventGridMemberGpsLogDeleteDTO EventGridMemberGpsLogDeleteDTO);
+
+    /**
+     * 查询网格员定时上报地理信息详细信息
+     * 
+     * @param id
+     *            网格员定时上报地理信息 id
+     * @return 查找结果
+     */
+    R<EventGridMemberGpsLogDetailsVO> eventGridMemberGpsLogDetails(Long id);
+
+    /**
+     * 根据网格员id查询今日轨迹
+     * 
+     * @param userId
+     *            网格员id
+     * @return 网格员今日轨迹
+     */
+    R getTrajectoryByApp(Long userId);
+
+    /**
+     * 后台获取网格员运动轨迹
+     * 
+     * @param workTrajectoryDTO
+     *            请求参数
+     * @return 运动轨迹
+     */
+    R gridMemberWorkTrajectory(EventGridMemberWorkTrajectoryDTO workTrajectoryDTO);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventGridMemberRelationService.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventGridMemberRelationService.java
new file mode 100644
index 0000000..36c9a86
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventGridMemberRelationService.java
@@ -0,0 +1,92 @@
+package com.panzhihua.service_grid.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.grid.*;
+import com.panzhihua.common.model.dtos.grid.admin.EventGridMemberCascadeAddDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.EventGridMemberRelationDetailsVO;
+import com.panzhihua.common.model.vos.grid.EventGridMemberRelationVO;
+import com.panzhihua.service_grid.model.dos.EventGridMemberRelationDO;
+
+/**
+ * 网格和网格员的关联关系 service
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+public interface EventGridMemberRelationService extends IService<EventGridMemberRelationDO> {
+
+    /**
+     * 新增网格和网格员的关联关系
+     * 
+     * @param eventGridMemberAddDTO
+     * @return 新增结果
+     */
+    R add(EventGridMemberAddDTO eventGridMemberAddDTO);
+
+    /**
+     * 修改网格和网格员的关联关系
+     * 
+     * @param eventGridMemberEditDTO
+     * @return 维护结果
+     */
+    R edit(EventGridMemberEditDTO eventGridMemberEditDTO);
+
+    /**
+     * 分页查找网格和网格员的关联关系
+     * 
+     * @param pageEventGridMemberRelationDTO
+     * @return 维护结果
+     */
+    R<IPage<EventGridMemberRelationVO>> query(PageEventGridMemberRelationDTO pageEventGridMemberRelationDTO);
+
+    /**
+     * 删除网格和网格员的关联关系
+     * 
+     * @param EventGridMemberRelationDeleteDTO
+     * @return 平台用户信息
+     */
+    R delete(EventGridMemberRelationDeleteDTO EventGridMemberRelationDeleteDTO);
+
+    /**
+     * 查询网格和网格员的关联关系详细信息
+     * 
+     * @param id
+     *            网格和网格员的关联关系 id
+     * @return 查找结果
+     */
+    R<EventGridMemberRelationDetailsVO> eventGridMemberRelationDetails(Long id);
+
+    /**
+     * 根据网格员id查询关联网格列表
+     * 
+     * @param userId
+     *            网格员id
+     * @return 网格列表
+     */
+    R getMapGridListByApp(Long userId);
+
+    /**
+     * 查询市平台网格员列表
+     * 
+     * @return 市平台网格员列表
+     */
+    R lcList();
+
+    R gridMemberCascadeList(EventGridMemberCascadeAddDTO memberCascadeAddDTO);
+
+    R getMapGridListsByApp(EventGridCascadeListDTO cascadeListDTO);
+
+    R getMapGridsListsByApp(Long userId);
+
+    /**
+     * 查询社区网格员运动轨迹
+     * @param communityId   社区id
+     * @return  社区网格员运动轨迹
+     */
+    R getGridsMemberTrajectory(Long communityId);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventGridMemberWarnLogService.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventGridMemberWarnLogService.java
new file mode 100644
index 0000000..21a5005
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventGridMemberWarnLogService.java
@@ -0,0 +1,78 @@
+package com.panzhihua.service_grid.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.grid.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.EventGridMemberWarnLogDetailsVO;
+import com.panzhihua.common.model.vos.grid.EventGridMemberWarnLogVO;
+import com.panzhihua.service_grid.model.dos.EventGridMemberWarnLogDO;
+
+/**
+ * 网格员定时上报地理预警记录 service
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+public interface EventGridMemberWarnLogService extends IService<EventGridMemberWarnLogDO> {
+
+    /**
+     * 新增网格员定时上报地理预警记录
+     * 
+     * @param eventGridMemberWarnLogAddDTO
+     * @return 新增结果
+     */
+    R add(EventGridMemberWarnLogAddDTO eventGridMemberWarnLogAddDTO);
+
+    /**
+     * 修改网格员定时上报地理预警记录
+     * 
+     * @param eventGridMemberWarnLogEditDTO
+     * @return 维护结果
+     */
+    R edit(EventGridMemberWarnLogEditDTO eventGridMemberWarnLogEditDTO);
+
+    /**
+     * 分页查找网格员定时上报地理预警记录
+     * 
+     * @param pageEventGridMemberWarnLogDTO
+     * @return 维护结果
+     */
+    R<IPage<EventGridMemberWarnLogVO>> query(PageEventGridMemberWarnLogDTO pageEventGridMemberWarnLogDTO);
+
+    /**
+     * 删除网格员定时上报地理预警记录
+     * 
+     * @param EventGridMemberWarnLogDeleteDTO
+     * @return 平台用户信息
+     */
+    R delete(EventGridMemberWarnLogDeleteDTO EventGridMemberWarnLogDeleteDTO);
+
+    /**
+     * 查询网格员定时上报地理预警记录详细信息
+     * 
+     * @param id
+     *            网格员定时上报地理预警记录 id
+     * @return 查找结果
+     */
+    R<EventGridMemberWarnLogDetailsVO> eventGridMemberWarnLogDetails(Long id);
+
+    /**
+     * 后台获取网格员预警记录
+     * 
+     * @param gridMemberWainDTO
+     *            请求参数
+     * @return 预警记录
+     */
+    R gridMemberWorkWarning(EventGridMemberWainDTO gridMemberWainDTO);
+
+    /**
+     * 定时任务扫描网格员工作状态
+     * 
+     * @return 定时任务扫描结果
+     */
+    R timedTaskGridMember();
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventMainMemberService.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventMainMemberService.java
new file mode 100644
index 0000000..7b81b47
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventMainMemberService.java
@@ -0,0 +1,65 @@
+package com.panzhihua.service_grid.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.grid.EventMainMemberAddDTO;
+import com.panzhihua.common.model.dtos.grid.EventMainMemberDeleteDTO;
+import com.panzhihua.common.model.dtos.grid.EventMainMemberEditDTO;
+import com.panzhihua.common.model.dtos.grid.PageEventMainMemberDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.EventMainMemberDetailsVO;
+import com.panzhihua.common.model.vos.grid.EventMainMemberVO;
+import com.panzhihua.service_grid.model.dos.EventMainMemberDO;
+
+/**
+ * 重点人群记录 service
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+public interface EventMainMemberService extends IService<EventMainMemberDO> {
+
+    /**
+     * 新增重点人群记录
+     * 
+     * @param eventMainMemberAddDTO
+     * @return 新增结果
+     */
+    R add(EventMainMemberAddDTO eventMainMemberAddDTO);
+
+    /**
+     * 修改重点人群记录
+     * 
+     * @param eventMainMemberEditDTO
+     * @return 维护结果
+     */
+    R edit(EventMainMemberEditDTO eventMainMemberEditDTO);
+
+    /**
+     * 分页查找重点人群记录
+     * 
+     * @param pageEventMainMemberDTO
+     * @return 维护结果
+     */
+    R<IPage<EventMainMemberVO>> query(PageEventMainMemberDTO pageEventMainMemberDTO);
+
+    /**
+     * 删除重点人群记录
+     * 
+     * @param EventMainMemberDeleteDTO
+     * @return 平台用户信息
+     */
+    R delete(EventMainMemberDeleteDTO EventMainMemberDeleteDTO);
+
+    /**
+     * 查询重点人群记录详细信息
+     * 
+     * @param id
+     *            重点人群记录 id
+     * @return 查找结果
+     */
+    R<EventMainMemberDetailsVO> eventMainMemberDetails(Long id);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventResourceService.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventResourceService.java
new file mode 100644
index 0000000..8e39f25
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventResourceService.java
@@ -0,0 +1,65 @@
+package com.panzhihua.service_grid.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.grid.EventResourceAddDTO;
+import com.panzhihua.common.model.dtos.grid.EventResourceDeleteDTO;
+import com.panzhihua.common.model.dtos.grid.EventResourceEditDTO;
+import com.panzhihua.common.model.dtos.grid.PageEventResourceDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.EventResourceDetailsVO;
+import com.panzhihua.common.model.vos.grid.EventResourceVO;
+import com.panzhihua.service_grid.model.dos.EventResourceDO;
+
+/**
+ * 事件或者走访中关联的图片音频和视频文件 service
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+public interface EventResourceService extends IService<EventResourceDO> {
+
+    /**
+     * 新增事件或者走访中关联的图片音频和视频文件
+     * 
+     * @param eventResourceAddDTO
+     * @return 新增结果
+     */
+    R add(EventResourceAddDTO eventResourceAddDTO);
+
+    /**
+     * 修改事件或者走访中关联的图片音频和视频文件
+     * 
+     * @param eventResourceEditDTO
+     * @return 维护结果
+     */
+    R edit(EventResourceEditDTO eventResourceEditDTO);
+
+    /**
+     * 分页查找事件或者走访中关联的图片音频和视频文件
+     * 
+     * @param pageEventResourceDTO
+     * @return 维护结果
+     */
+    R<IPage<EventResourceVO>> query(PageEventResourceDTO pageEventResourceDTO);
+
+    /**
+     * 删除事件或者走访中关联的图片音频和视频文件
+     * 
+     * @param EventResourceDeleteDTO
+     * @return 平台用户信息
+     */
+    R delete(EventResourceDeleteDTO EventResourceDeleteDTO);
+
+    /**
+     * 查询事件或者走访中关联的图片音频和视频文件详细信息
+     * 
+     * @param id
+     *            事件或者走访中关联的图片音频和视频文件 id
+     * @return 查找结果
+     */
+    R<EventResourceDetailsVO> eventResourceDetails(Long id);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventService.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventService.java
new file mode 100644
index 0000000..82347f4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventService.java
@@ -0,0 +1,378 @@
+package com.panzhihua.service_grid.service;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.bigscreen.event.ScreenDrawEventListDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.event.ScreenEventListDTO;
+import com.panzhihua.common.model.dtos.grid.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActVO;
+import com.panzhihua.common.model.vos.grid.EventDetailsVO;
+import com.panzhihua.common.model.vos.grid.EventVO;
+import com.panzhihua.service_grid.model.dos.EventDO;
+
+/**
+ * 事件 service
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+public interface EventService extends IService<EventDO> {
+
+    /**
+     * 分页查找事件
+     * 
+     * @param pageEventDTO
+     * @return 维护结果
+     */
+    R<IPage<EventVO>> query(PageEventDTO pageEventDTO);
+
+    /**
+     * 删除事件
+     * 
+     * @param commonEventDeleteDTO
+     * @return 平台用户信息
+     */
+    R delete(CommonEventDeleteDTO commonEventDeleteDTO);
+
+    /**
+     * 查询事件详细信息
+     * 
+     * @param id
+     *            事件 id
+     * @return 查找结果
+     */
+    R<EventDetailsVO> eventDetails(Long id);
+
+    /**
+     * 添加事件
+     * 
+     * @param commonEventAddDTO
+     * @return
+     */
+    R addCommon(CommonEventAddDTO commonEventAddDTO);
+
+    /**
+     * 保存事件草稿
+     * 
+     * @param commonEventEditDTO
+     * @return
+     */
+    R saveDraft(CommonEventEditDTO commonEventEditDTO);
+
+    /**
+     * 突发事件上报
+     * 
+     * @param commonEventReportDTO
+     * @return
+     */
+    R report(CommonEventReportDTO commonEventReportDTO);
+
+    /**
+     * 事件撤销
+     * 
+     * @param eventRevokeDTO
+     * @return
+     */
+    R emergenciesRevoke(EventRevokeDTO eventRevokeDTO);
+
+    /**
+     * 处理事件
+     * 
+     * @param commonEventDealDTO
+     * @return
+     */
+    R dealEvent(CommonEventDealDTO commonEventDealDTO);
+
+    /**
+     * 确认事件
+     * 
+     * @param commonEventVerifyDTO
+     * @return
+     */
+    R verifyEvent(CommonEventVerifyDTO commonEventVerifyDTO);
+
+    /**
+     * 重新发布事件
+     * 
+     * @param commonEventRepublishDTO
+     * @return
+     */
+    R republishEvent(CommonEventRepublishDTO commonEventRepublishDTO);
+
+    /**
+     * 草稿发布
+     * 
+     * @param commonEventPublicDTO
+     * @return
+     */
+    R draftRelease(CommonEventPublicDTO commonEventPublicDTO);
+
+    /**
+     * 保存殊人群事件上报草稿
+     * 
+     * @param specialEventEditDTO
+     * @return
+     */
+    R saveSpecialDraft(SpecialEventEditDTO specialEventEditDTO);
+
+    /**
+     * 特殊人员信息上报
+     * 
+     * @param specialEventAddDTO
+     * @return
+     */
+    R addSpecial(SpecialEventAddDTO specialEventAddDTO);
+
+    /**
+     * 获取指定特殊人员信息
+     * 
+     * @param idCard
+     * @return
+     */
+    R getSpecialPopulation(String idCard);
+
+    /**
+     * 添加发布宣传教育事件
+     * 
+     * @param publicityEventAddDTO
+     *            请求参数
+     * @return 上报结果
+     */
+    R addPublicity(PublicityEventAddDTO publicityEventAddDTO);
+
+    /**
+     * 保存宣传教育事件草稿
+     * 
+     * @param publicityEventEditDTO
+     *            请求参数
+     * @return 保存结果
+     */
+    R savePublicityDraft(PublicityEventEditDTO publicityEventEditDTO);
+
+    /**
+     * 分页查询宣传教育事件
+     * 
+     * @param pagePublicityEventDTO
+     * @return
+     */
+    R selectPublicity(PagePublicityEventDTO pagePublicityEventDTO);
+
+    /**
+     * 获取社区列表:当前默认所有社区
+     * 
+     * @return
+     */
+    R<ComActVO> actList();
+
+    /**
+     * 查询事件管理
+     * 
+     * @param pageEventManageDTO
+     * @return
+     */
+    R eventToManage(PageEventManageDTO pageEventManageDTO);
+
+    /**
+     * 社区网格后台标记事件无效
+     * 
+     * @param eventRevokeDTO
+     * @return
+     */
+    R markEventInvalid(EventRevokeDTO eventRevokeDTO);
+
+    /**
+     * 社区在网格后台重新发布已标记失效的事件
+     * 
+     * @param commonEventRepublishDTO
+     * @return
+     */
+    R republishInvalidEvent(CommonEventRepublishDTO commonEventRepublishDTO);
+
+    /**
+     * 社区后台处理事件
+     * 
+     * @param commonEventDealDTO
+     * @return
+     */
+    R communityDealEvent(CommonEventDealDTO commonEventDealDTO);
+
+    /**
+     * 分页查询社区宣传教育事件
+     * 
+     * @param pagePublicityEventDTO
+     * @return
+     */
+    R selectCommunityPublicity(PagePublicityEventCommunityDTO pagePublicityEventDTO);
+
+    /**
+     * 后台管理-统计模块
+     * 
+     * @param communityId
+     *            社区id
+     * @return 统计信息
+     */
+    R eventStatistics(Long communityId);
+
+    /**
+     * 后台管理-网格员统计
+     * 
+     * @param statisticsAdminDTO
+     *            请求参数
+     * @return 网格员统计信息
+     */
+    R gridMemberStatistics(MemberStatisticsAdminDTO statisticsAdminDTO);
+
+    /**
+     * 获取最近的网格
+     * 
+     * @return
+     * @param pageEventGridNearbyDTO
+     */
+    R getNearByGrid(PageEventGridNearbyDTO pageEventGridNearbyDTO);
+
+    /**
+     * 批量删除事件
+     * 
+     * @param eventDeleteDTO
+     * @return
+     */
+    R deleteEventBatch(EventDeleteDTO eventDeleteDTO);
+
+    /**
+     * 批量重新发布事件
+     * 
+     * @param commonEventBatchRepublishDTO
+     * @return
+     */
+    R batchRepublishEvent(CommonEventBatchRepublishDTO commonEventBatchRepublishDTO);
+
+    /**
+     * 批量标记事件无效
+     * 
+     * @param eventBatchRevokeDTO
+     * @return
+     */
+    R batchMarkEventInvalid(EventBatchRevokeDTO eventBatchRevokeDTO);
+
+    /**
+     * 根据网格id查询网格统计数据
+     * 
+     * @param gridId
+     *            网格id
+     * @return 网格统计数据
+     */
+    R getGridEventStatisticsByApp(Long gridId, Long userId);
+
+    /**
+     * 查询网格事件统计数据
+     * 
+     * @param statisticsDTO
+     *            请求参数
+     * @return 网格事件统计数据
+     */
+    R getGridEventDetailStatisticsByApp(GridEventStatisticsDTO statisticsDTO);
+
+    /**
+     * 直接上报社区
+     * 
+     * @param commonEventDirectReportDTO
+     * @return
+     */
+    R reportDirect(CommonEventDirectReportDTO commonEventDirectReportDTO);
+
+    /**
+     * 事件大屏查询事件列表
+     * 
+     * @param eventListDTO
+     *            请求参数
+     * @return 事件列表
+     */
+    R getScreenEventList(ScreenEventListDTO eventListDTO);
+
+    /**
+     * 特殊人群上报-社区人口数据列表
+     * 
+     * @param specialPopulationDTO
+     *            请求参数
+     * @return 社区人口数据列表
+     */
+    R specialPopulationList(PageEventSpecialPopulationDTO specialPopulationDTO);
+
+    /**
+     * description 获取所有未上传到浪潮平台的事件列表
+     *
+     * @return String 事件列表
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    List<EventDetailsVO> getUnUploadEvent();
+
+    /**
+     * description 更新上传是否成功标识
+     * 
+     * @param id
+     *            事件主键ID
+     * @return Boolean 上传是否成功
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    Boolean updateLcUploadFlag(Long id);
+
+    R eventWork(Long communityId);
+
+    /**
+     * 绘制多边形统计数据
+     * 
+     * @param eventListDTO
+     *            请求参数
+     * @return 统计数据
+     */
+    R getCivilDrawList(ScreenDrawEventListDTO eventListDTO);
+
+    /**
+     * 新版绘制多边形统计数据
+     *
+     * @param eventListDTO
+     *            请求参数
+     * @return 统计数据
+     */
+    R getCivilDrawListNew(ScreenDrawEventListDTO eventListDTO);
+
+    /**
+     * 大屏-根据小区id查询小区统计人数
+     * 
+     * @param villageId
+     *            小区id
+     * @return 小区统计数据
+     */
+    R civilVillageStatistics(Long villageId);
+
+    /**
+     * 查询所有网格员工作汇总数据
+     * 
+     * @param statisticsAdminDTO
+     *            请求参数
+     * @return 网格员工作汇总数据
+     */
+    R gridMemberStatisticsAll(MemberStatisticsAdminDTO statisticsAdminDTO);
+
+    /**
+     * 西区大数据分析平台-综合治理栏
+     * @return
+     */
+    R getComprehensiveGovernanceStatics();
+
+    /**
+     * 大屏-新根据小区id查询小区统计人数
+     *
+     * @param villageId
+     *            小区id
+     * @return 小区统计数据
+     */
+    R civilVillageStatisticsNew(Long villageId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventSpecialCrowdRecordService.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventSpecialCrowdRecordService.java
new file mode 100644
index 0000000..735de5a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventSpecialCrowdRecordService.java
@@ -0,0 +1,13 @@
+package com.panzhihua.service_grid.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_grid.model.dos.EventSpecialCrowdRecordDO;
+
+/**
+ * @auther lyq
+ * @create 2021-06-22 15:37:01
+ * @describe 事件-特殊人群上报人口关联表服务类
+ */
+public interface EventSpecialCrowdRecordService extends IService<EventSpecialCrowdRecordDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventTransferRecordService.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventTransferRecordService.java
new file mode 100644
index 0000000..7e7bf67
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventTransferRecordService.java
@@ -0,0 +1,65 @@
+package com.panzhihua.service_grid.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.grid.EventTransferRecordAddDTO;
+import com.panzhihua.common.model.dtos.grid.EventTransferRecordDeleteDTO;
+import com.panzhihua.common.model.dtos.grid.EventTransferRecordEditDTO;
+import com.panzhihua.common.model.dtos.grid.PageEventTransferRecordDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.EventTransferRecordDetailsVO;
+import com.panzhihua.common.model.vos.grid.EventTransferRecordVO;
+import com.panzhihua.service_grid.model.dos.EventTransferRecordDO;
+
+/**
+ * 事件处理流转记录 service
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @since 1.0
+ * @date 2021-05-26
+ */
+public interface EventTransferRecordService extends IService<EventTransferRecordDO> {
+
+    /**
+     * 新增事件处理流转记录
+     * 
+     * @param eventTransferRecordAddDTO
+     * @return 新增结果
+     */
+    R add(EventTransferRecordAddDTO eventTransferRecordAddDTO);
+
+    /**
+     * 修改事件处理流转记录
+     * 
+     * @param eventTransferRecordEditDTO
+     * @return 维护结果
+     */
+    R edit(EventTransferRecordEditDTO eventTransferRecordEditDTO);
+
+    /**
+     * 分页查找事件处理流转记录
+     * 
+     * @param pageEventTransferRecordDTO
+     * @return 维护结果
+     */
+    R<IPage<EventTransferRecordVO>> query(PageEventTransferRecordDTO pageEventTransferRecordDTO);
+
+    /**
+     * 删除事件处理流转记录
+     * 
+     * @param EventTransferRecordDeleteDTO
+     * @return 平台用户信息
+     */
+    R delete(EventTransferRecordDeleteDTO EventTransferRecordDeleteDTO);
+
+    /**
+     * 查询事件处理流转记录详细信息
+     * 
+     * @param id
+     *            事件处理流转记录 id
+     * @return 查找结果
+     */
+    R<EventTransferRecordDetailsVO> eventTransferRecordDetails(Long id);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventVisitingTasksService.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventVisitingTasksService.java
new file mode 100644
index 0000000..9a7c00e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/EventVisitingTasksService.java
@@ -0,0 +1,194 @@
+package com.panzhihua.service_grid.service;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.IdDTO;
+import com.panzhihua.common.model.dtos.grid.*;
+import com.panzhihua.common.model.dtos.visit.EventVisitCompleteDTO;
+import com.panzhihua.common.model.query.visit.EventTasksQuery;
+import com.panzhihua.common.model.query.visit.EventVisitListQuery;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.visit.EventVisitingTasksDetailsVO;
+import com.panzhihua.common.model.vos.visit.EventVisitingTasksVO;
+import com.panzhihua.service_grid.model.dos.EventVisitingTasksDO;
+
+/**
+ * 重点人群走访记录 service
+ *
+ * @author cedoo email:cedoo(a)qq.com
+ * @version 1.0
+ * @date 2021-05-26
+ * @since 1.0
+ */
+public interface EventVisitingTasksService extends IService<EventVisitingTasksDO> {
+
+    /**
+     * 新增重点人群走访记录
+     *
+     * @param eventVisitingTasksAddDTO
+     * @return 新增结果
+     */
+    R add(EventVisitingTasksAddDTO eventVisitingTasksAddDTO);
+
+    /**
+     * 修改重点人群走访记录
+     *
+     * @param eventVisitingTasksEditDTO
+     * @return 维护结果
+     */
+    R edit(EventVisitingTasksEditDTO eventVisitingTasksEditDTO);
+
+    /**
+     * 分页查找重点人群走访记录
+     *
+     * @param pageEventVisitingTasksDTO
+     * @return 维护结果
+     */
+    R<IPage<EventVisitingTasksVO>> query(PageEventVisitingTasksDTO pageEventVisitingTasksDTO);
+
+    /**
+     * 删除重点人群走访记录
+     *
+     * @param EventVisitingTasksDeleteDTO
+     * @return 平台用户信息
+     */
+    R delete(EventVisitingTasksDeleteDTO EventVisitingTasksDeleteDTO);
+
+    /**
+     * 查询重点人群走访记录详细信息
+     *
+     * @param id
+     *            重点人群走访记录 id
+     * @return 查找结果
+     */
+    R<EventVisitingTasksDetailsVO> eventVisitingTasksDetails(Long id);
+
+    /**
+     * 后台统计走访任务
+     *
+     * @param communityId
+     * @return
+     */
+    R count(Long communityId);
+
+    /**
+     * app走访任务
+     * 
+     * @param query
+     * @return
+     */
+    R appTaskList(EventTasksQuery query) throws Exception;
+
+    /**
+     * 走访任务列表
+     *
+     * @param query
+     * @return
+     */
+    R taskList(EventTasksQuery query) throws Exception;
+
+    /**
+     * 删除走访任务
+     *
+     * @param idDTO
+     * @param communityId
+     * @return
+     */
+    R delete(IdDTO idDTO, Long communityId);
+
+    /**
+     * 需走访人员列表
+     *
+     * @param query
+     * @return
+     */
+    R visitorList(EventVisitListQuery query);
+
+    /**
+     * app查询走访记录
+     *
+     * @param query
+     * @return
+     */
+    R list(EventTasksQuery query);
+
+    /**
+     * app 走访详情
+     *
+     * @param id
+     * @return
+     */
+    R detail(Long id);
+
+    /**
+     * 新增
+     *
+     * @param idDTO
+     * @param communityId
+     * @param userId
+     * @return
+     */
+    R add(IdDTO idDTO, Long communityId, Long userId) throws Exception;
+
+    List<EventVisitingTasksVO> exportTaskList(EventTasksQuery query) throws Exception;
+
+    /**
+     * 撤销
+     *
+     * @param idDTO
+     * @return
+     */
+    R cancel(IdDTO idDTO);
+
+    /**
+     * 恢复
+     *
+     * @param idDTO
+     * @return
+     */
+    R reset(IdDTO idDTO);
+
+    /**
+     * 开始
+     *
+     * @param id
+     * @return
+     */
+    R start(Long id, Long userId);
+
+    /**
+     * 完成
+     *
+     * @param taskCompleteDTO
+     * @return
+     */
+    R complete(EventVisitCompleteDTO taskCompleteDTO);
+
+    /**
+     * description 获取所有未上传到浪潮平台的事件列表
+     *
+     * @return String 事件列表
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    List<LcEventVisitingTasksListDTO> getUnUploadVisitingTask();
+
+    /**
+     * description 更新上传是否成功标识
+     *
+     * @param id
+     *            事件主键ID
+     * @return Boolean 上传是否成功
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    Boolean updateLcUploadFlagVisitingTask(Long id);
+
+    /**
+     * 定时任务-给上月已走访的人员创建定时任务
+     * @return  执行结果
+     */
+    R timedTaskVisitingJobHandler();
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/LcCompareCodeService.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/LcCompareCodeService.java
new file mode 100644
index 0000000..2873d99
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/LcCompareCodeService.java
@@ -0,0 +1,42 @@
+package com.panzhihua.service_grid.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_grid.model.dos.LcCompareCodeDO;
+
+/**
+ * program 攀枝花智慧社区项目 description 本地网格和浪潮的对码表管理API
+ *
+ * @author manailin Date 2021-01-22 15:30
+ **/
+public interface LcCompareCodeService extends IService<LcCompareCodeDO> {
+
+    /**
+     * description 根据本地网格ID,查询对于的浪潮市平台对应的ID
+     *
+     * @param id
+     *            本地网格ID
+     * @return String 浪潮市平台对应的ID
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    String getLcGridIdByLocal(Long id);
+
+    /**
+     * description 根据本地网格ID,查询对于的浪潮市平台对应的ID
+     *
+     * @param localUserId
+     *            本地网格员ID
+     * @return String 浪潮市平台对应的ID
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    String getLcUserIdByLocal(String localUserId);
+
+    /**
+     * 综治后台-查询所有市平台网格列表
+     * 
+     * @return 市平台网格列表
+     */
+    R getLcGridLists();
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/ComActEasyPhotoServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/ComActEasyPhotoServiceImpl.java
new file mode 100644
index 0000000..d0fa644
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/ComActEasyPhotoServiceImpl.java
@@ -0,0 +1,363 @@
+package com.panzhihua.service_grid.service.impl;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+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.model.dtos.grid.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.ComActEasyPhotoAdminVO;
+import com.panzhihua.common.model.vos.grid.ComActEasyPhotoDetailsVO;
+import com.panzhihua.common.model.vos.grid.ComActEasyPhotoVO;
+import com.panzhihua.service_grid.dao.ComActEasyPhotoMapper;
+import com.panzhihua.service_grid.dao.ComActEasyPhotoTypeRelationMapper;
+import com.panzhihua.service_grid.model.dos.ComActEasyPhotoDO;
+import com.panzhihua.service_grid.model.dos.ComActEasyPhotoTypeRelationDO;
+import com.panzhihua.service_grid.service.ComActEasyPhotoService;
+import com.panzhihua.service_grid.service.ComActEasyPhotoTypeRelationService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:03:01
+ * @describe 订单表服务实现类
+ */
+@Slf4j
+@Service
+public class ComActEasyPhotoServiceImpl extends ServiceImpl<ComActEasyPhotoMapper, ComActEasyPhotoDO>
+    implements ComActEasyPhotoService {
+
+    @Resource
+    private ComActEasyPhotoMapper comActEasyPhotoMapper;
+    @Resource
+    private ComActEasyPhotoTypeRelationMapper comActEasyPhotoTypeRelationMapper;
+    @Resource
+    private ComActEasyPhotoTypeRelationService comActEasyPhotoTypeRelationService;
+
+    /**
+     * 新增社区活动 》随手拍
+     * 
+     * @param comActEasyPhotoAddDTO
+     * @return 新增结果
+     */
+    @Override
+    public R add(ComActEasyPhotoAddDTO comActEasyPhotoAddDTO) {
+        ComActEasyPhotoDO comActEasyPhotoDO = new ComActEasyPhotoDO();
+        BeanUtils.copyProperties(comActEasyPhotoAddDTO, comActEasyPhotoDO);
+        comActEasyPhotoDO.setCreateAt(new Date());
+        if (comActEasyPhotoMapper.insert(comActEasyPhotoDO) > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 修改社区活动 》随手拍
+     * 
+     * @param comActEasyPhotoEditDTO
+     * @return 维护结果
+     */
+    @Override
+    public R edit(ComActEasyPhotoEditDTO comActEasyPhotoEditDTO) {
+        ComActEasyPhotoDO comActEasyPhotoDO = new ComActEasyPhotoDO();
+        BeanUtils.copyProperties(comActEasyPhotoEditDTO, comActEasyPhotoDO);
+        // comActEasyPhotoDO.setUpdateAt(new Date());
+        if (comActEasyPhotoMapper.updateById(comActEasyPhotoDO) > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 分页查找社区活动 》随手拍
+     * 
+     * @param easyAppDTO
+     * @return 维护结果
+     */
+    @Override
+    public R<IPage<ComActEasyPhotoVO>> query(PageEasyAppDTO easyAppDTO) {
+        Page page = new Page(easyAppDTO.getPageNum(), easyAppDTO.getPageSize());
+        if (easyAppDTO.getStatus() != null) {
+            switch (easyAppDTO.getStatus()) {
+                case 1:
+                    easyAppDTO.setHandleStatus(1);
+                    break;
+                case 2:
+                    easyAppDTO.setIsReport(1);
+                    break;
+                case 3:
+                    easyAppDTO.setIsPublicity(1);
+                    break;
+                case 4:
+                    easyAppDTO.setIsPublicity(2);
+                    break;
+                default:
+                    break;
+            }
+        }
+        return R.ok(comActEasyPhotoMapper.findByPage(page, easyAppDTO));
+    }
+
+    /**
+     * 删除社区活动 》随手拍
+     * 
+     * @param ComActEasyPhotoDeleteDTO
+     * @return 平台用户信息
+     */
+    @Override
+    public R delete(ComActEasyPhotoDeleteDTO ComActEasyPhotoDeleteDTO) {
+        return R.fail();
+    }
+
+    /**
+     * 查询社区活动 》随手拍详细信息
+     * 
+     * @param id
+     *            社区活动 》随手拍 id
+     * @return 查找结果
+     */
+    @Override
+    public R<ComActEasyPhotoDetailsVO> comActEasyPhotoDetails(Long id) {
+        ComActEasyPhotoDO comActEasyPhotoDO = comActEasyPhotoMapper.selectById(id);
+        if (comActEasyPhotoDO != null) {
+            ComActEasyPhotoDetailsVO comActEasyPhotoDetailsVO = new ComActEasyPhotoDetailsVO();
+            BeanUtils.copyProperties(comActEasyPhotoDO, comActEasyPhotoDetailsVO);
+            return R.ok(comActEasyPhotoDetailsVO);
+        }
+        return R.fail();
+    }
+
+    /**
+     * 根据随手拍id查询随手拍详情
+     * 
+     * @param easyId
+     *            随手拍id
+     * @return 随手拍详情
+     */
+    @Override
+    public R detail(Long easyId) {
+        ComActEasyPhotoVO easyPhotoVO = this.baseMapper.findByEaseId(easyId);
+        if (easyPhotoVO != null) {
+            // 查询随手拍类型
+            List<String> typeRelationList = comActEasyPhotoTypeRelationMapper.getEasyPhotoTypeRelationByEasyId(easyId);
+            if (!typeRelationList.isEmpty()) {
+                easyPhotoVO.setEasyPhotoList(typeRelationList);
+            }
+        }
+        return R.ok(easyPhotoVO);
+    }
+
+    /**
+     * 随手拍处理
+     * 
+     * @param photoHandleDTO
+     *            请求参数
+     * @return 处理结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R easyHandle(ComActEasyPhotoHandleDTO photoHandleDTO) {
+        ComActEasyPhotoDO easyPhotoDO = this.baseMapper.selectById(photoHandleDTO.getId());
+        if (easyPhotoDO == null) {
+            return R.fail("随手拍不存在");
+        }
+        if (easyPhotoDO.getHandleStatus().equals(ComActEasyPhotoDO.handleStatus.yes)) {
+            return R.fail("该随手拍已处理");
+        }
+        BeanUtils.copyProperties(photoHandleDTO, easyPhotoDO);
+        easyPhotoDO.setHandleStatus(ComActEasyPhotoDO.handleStatus.yes);
+        easyPhotoDO.setFeedbackAt(new Date());
+        // 关联随手拍类型
+//        if (!photoHandleDTO.getEasyTypeIds().isEmpty()) {
+//            List<ComActEasyPhotoTypeRelationDO> typeRelationDOList = new ArrayList<>();
+//            photoHandleDTO.getEasyTypeIds().forEach(typeId -> {
+//                ComActEasyPhotoTypeRelationDO typeRelationDO = new ComActEasyPhotoTypeRelationDO();
+//                typeRelationDO.setEasyId(easyPhotoDO.getId());
+//                typeRelationDO.setEasyTypeId(typeId);
+//                typeRelationDO.setCreateAt(new Date());
+//                typeRelationDOList.add(typeRelationDO);
+//            });
+//            comActEasyPhotoTypeRelationService.saveBatch(typeRelationDOList);
+//        }
+        if (this.baseMapper.updateById(easyPhotoDO) > 0) {
+            return R.ok();
+        } else {
+            return R.fail();
+        }
+    }
+
+    /**
+     * 随手拍公示状态切换
+     * 
+     * @param photoHandleDTO
+     *            请求参数
+     * @return 切换结果
+     */
+    @Override
+    public R easyPublicity(ComActEasyPhotoHandleDTO photoHandleDTO) {
+
+        ComActEasyPhotoDO easyPhotoDO = this.baseMapper.selectById(photoHandleDTO.getId());
+        if (easyPhotoDO == null) {
+            return R.fail("随手拍不存在");
+        }
+        easyPhotoDO.setIsPublicity(photoHandleDTO.getIsPublicity());
+        if (this.baseMapper.updateById(easyPhotoDO) > 0) {
+            return R.ok();
+        } else {
+            return R.fail();
+        }
+    }
+
+    /**
+     * 随手拍上报社区
+     * 
+     * @param photoHandleDTO
+     *            请求参数
+     * @return 上报结果
+     */
+    @Override
+    public R easyReport(ComActEasyPhotoHandleDTO photoHandleDTO) {
+        ComActEasyPhotoDO easyPhotoDO = this.baseMapper.selectById(photoHandleDTO.getId());
+        if (easyPhotoDO == null) {
+            return R.fail("随手拍不存在");
+        }
+        if (easyPhotoDO.getIsReport().equals(ComActEasyPhotoDO.isReport.yes)) {
+            return R.fail("随手拍已上报");
+        }
+        easyPhotoDO.setIsReport(ComActEasyPhotoDO.isReport.yes);
+        if (this.baseMapper.updateById(easyPhotoDO) > 0) {
+            return R.ok();
+        } else {
+            return R.fail();
+        }
+    }
+
+    /**
+     * 后台管理-分页查询随手拍列表
+     * 
+     * @param easyAppDTO
+     *            请求参数
+     * @return 随手拍列表
+     */
+    @Override
+    public R easyListByAdmin(PageEasyAdminDTO easyAppDTO) {
+        IPage<ComActEasyPhotoAdminVO> photoAdminVOIPage =
+            this.baseMapper.easyListByAdmin(new Page(easyAppDTO.getPageNum(), easyAppDTO.getPageSize()), easyAppDTO);
+        if (!photoAdminVOIPage.getRecords().isEmpty()) {
+            photoAdminVOIPage.getRecords().forEach(photoAdmin -> {
+                if(photoAdmin.getClassifyId() != null){
+                    List<String> photoTypeList =
+                            comActEasyPhotoTypeRelationMapper.getEasyPhotoClassifyName(photoAdmin.getClassifyId());
+                    if (!photoTypeList.isEmpty()) {
+                        photoAdmin.setPhotoTypeList(photoTypeList);
+                    }
+                }
+            });
+        }
+        return R.ok(photoAdminVOIPage);
+    }
+
+    /**
+     * 后台管理-随手拍详情
+     * 
+     * @param easyId
+     *            随手拍id
+     * @return 随手拍详情
+     */
+    @Override
+    public R easyDetailByAdmin(Long easyId) {
+        ComActEasyPhotoAdminVO photoAdminVO = this.baseMapper.easyDetailByAdmin(easyId);
+        if (photoAdminVO == null) {
+            return R.fail("随手拍不存在");
+        }
+        if (photoAdminVO.getHandleStatus().equals(ComActEasyPhotoDO.handleStatus.yes)) {
+            // 随手拍已处理,查询随手拍类型
+            List<String> photoTypeList =
+                comActEasyPhotoTypeRelationMapper.getEasyPhotoTypeRelationByEasyId(photoAdminVO.getId());
+            if (!photoTypeList.isEmpty()) {
+                photoAdminVO.setPhotoTypeList(photoTypeList);
+            }
+        }
+        return R.ok(photoAdminVO);
+    }
+
+    /**
+     * 后台管理-随手拍处理
+     * 
+     * @param photoHandleDTO
+     *            请求参数
+     * @return 处理结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R easyHandleByAdmin(ComActEasyPhotoHandleDTO photoHandleDTO) {
+        ComActEasyPhotoDO easyPhotoDO = this.baseMapper.selectById(photoHandleDTO.getId());
+        if (easyPhotoDO == null) {
+            return R.fail("随手拍不存在");
+        }
+        if (easyPhotoDO.getIsReport().equals(ComActEasyPhotoDO.isReport.no)) {
+            return R.fail("该随手拍未上报,不可处理");
+        }
+        if (easyPhotoDO.getHandleStatus().equals(ComActEasyPhotoDO.handleStatus.yes)) {
+            return R.fail("该随手拍已处理");
+        }
+        BeanUtils.copyProperties(photoHandleDTO, easyPhotoDO);
+        easyPhotoDO.setHandleStatus(ComActEasyPhotoDO.handleStatus.yes);
+        easyPhotoDO.setFeedbackAt(new Date());
+        // 关联随手拍类型
+        if (!photoHandleDTO.getEasyTypeIds().isEmpty()) {
+            List<ComActEasyPhotoTypeRelationDO> typeRelationDOList = new ArrayList<>();
+            photoHandleDTO.getEasyTypeIds().forEach(typeId -> {
+                ComActEasyPhotoTypeRelationDO typeRelationDO = new ComActEasyPhotoTypeRelationDO();
+                typeRelationDO.setEasyId(easyPhotoDO.getId());
+                typeRelationDO.setEasyTypeId(typeId);
+                typeRelationDO.setCreateAt(new Date());
+                typeRelationDOList.add(typeRelationDO);
+            });
+            comActEasyPhotoTypeRelationService.saveBatch(typeRelationDOList);
+        }
+        if (this.baseMapper.updateById(easyPhotoDO) > 0) {
+            return R.ok();
+        } else {
+            return R.fail();
+        }
+    }
+
+    /**
+     * 后台管理-批量修改随手拍公示状态/删除随手拍
+     * 
+     * @param photoEditDTO
+     *            请求参数
+     * @return 修改/删除结果
+     */
+    @Override
+    public R easyPublicityByAdmin(ComActEasyPhotoEditAdminDTO photoEditDTO) {
+
+        if (photoEditDTO.getType().equals(1)) {
+            Integer count = this.baseMapper.selectCount(new QueryWrapper<ComActEasyPhotoDO>().lambda()
+                .eq(ComActEasyPhotoDO::getHandleStatus, ComActEasyPhotoDO.handleStatus.no)
+                .in(ComActEasyPhotoDO::getId, photoEditDTO.getIds()));
+            if (count > 0) {
+                return R.fail("您选择的有未处理的随手拍,不可进行操作");
+            }
+        }
+
+        if (this.baseMapper.easyPublicityByAdmin(photoEditDTO) > 0) {
+            return R.ok();
+        } else {
+            return R.fail();
+        }
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/ComActEasyPhotoTypeRelationServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/ComActEasyPhotoTypeRelationServiceImpl.java
new file mode 100644
index 0000000..0485c5e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/ComActEasyPhotoTypeRelationServiceImpl.java
@@ -0,0 +1,28 @@
+package com.panzhihua.service_grid.service.impl;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.service_grid.dao.ComActEasyPhotoTypeRelationMapper;
+import com.panzhihua.service_grid.model.dos.ComActEasyPhotoTypeRelationDO;
+import com.panzhihua.service_grid.service.ComActEasyPhotoTypeRelationService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:03:01
+ * @describe 订单表服务实现类
+ */
+@Slf4j
+@Service
+public class ComActEasyPhotoTypeRelationServiceImpl
+    extends ServiceImpl<ComActEasyPhotoTypeRelationMapper, ComActEasyPhotoTypeRelationDO>
+    implements ComActEasyPhotoTypeRelationService {
+
+    @Resource
+    private ComActEasyPhotoTypeRelationMapper comActEasyPhotoTypeRelationMapper;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/ComActEasyPhotoTypeServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/ComActEasyPhotoTypeServiceImpl.java
new file mode 100644
index 0000000..d0054f9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/ComActEasyPhotoTypeServiceImpl.java
@@ -0,0 +1,130 @@
+package com.panzhihua.service_grid.service.impl;
+
+import java.util.Date;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+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.model.dtos.grid.ComActEasyPhotoTypeAddDTO;
+import com.panzhihua.common.model.dtos.grid.ComActEasyPhotoTypeDeleteDTO;
+import com.panzhihua.common.model.dtos.grid.ComActEasyPhotoTypeEditDTO;
+import com.panzhihua.common.model.dtos.grid.PageComActEasyPhotoTypeDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.ComActEasyPhotoTypeDetailsVO;
+import com.panzhihua.common.model.vos.grid.ComActEasyPhotoTypeVO;
+import com.panzhihua.service_grid.dao.ComActEasyPhotoTypeMapper;
+import com.panzhihua.service_grid.model.dos.ComActEasyPhotoTypeDO;
+import com.panzhihua.service_grid.service.ComActEasyPhotoTypeService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:03:01
+ * @describe 订单表服务实现类
+ */
+@Slf4j
+@Service
+public class ComActEasyPhotoTypeServiceImpl extends ServiceImpl<ComActEasyPhotoTypeMapper, ComActEasyPhotoTypeDO>
+    implements ComActEasyPhotoTypeService {
+
+    @Resource
+    private ComActEasyPhotoTypeMapper comActEasyPhotoTypeMapper;
+
+    /**
+     * 新增随手拍类型
+     * 
+     * @param comActEasyPhotoTypeAddDTO
+     * @return 新增结果
+     */
+    @Override
+    public R add(ComActEasyPhotoTypeAddDTO comActEasyPhotoTypeAddDTO) {
+        ComActEasyPhotoTypeDO comActEasyPhotoTypeDO = new ComActEasyPhotoTypeDO();
+        BeanUtils.copyProperties(comActEasyPhotoTypeAddDTO, comActEasyPhotoTypeDO);
+        comActEasyPhotoTypeDO.setCreateAt(new Date());
+        if (comActEasyPhotoTypeMapper.insert(comActEasyPhotoTypeDO) > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 修改随手拍类型
+     * 
+     * @param comActEasyPhotoTypeEditDTO
+     * @return 维护结果
+     */
+    @Override
+    public R edit(ComActEasyPhotoTypeEditDTO comActEasyPhotoTypeEditDTO) {
+        ComActEasyPhotoTypeDO comActEasyPhotoTypeDO = new ComActEasyPhotoTypeDO();
+        BeanUtils.copyProperties(comActEasyPhotoTypeEditDTO, comActEasyPhotoTypeDO);
+        // comActEasyPhotoTypeDO.setUpdateAt(new Date());
+        if (comActEasyPhotoTypeMapper.updateById(comActEasyPhotoTypeDO) > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 分页查找随手拍类型
+     * 
+     * @param pageComActEasyPhotoTypeDTO
+     * @return 维护结果
+     */
+    @Override
+    public R<IPage<ComActEasyPhotoTypeVO>> query(PageComActEasyPhotoTypeDTO pageComActEasyPhotoTypeDTO) {
+        Page page = new Page(1, 10);
+        if (pageComActEasyPhotoTypeDTO.getPageNum() != null) {
+            page.setCurrent(pageComActEasyPhotoTypeDTO.getPageNum());
+        }
+        if (pageComActEasyPhotoTypeDTO.getPageSize() != null) {
+            page.setSize(pageComActEasyPhotoTypeDTO.getPageSize());
+        }
+        return R.ok(comActEasyPhotoTypeMapper.findByPage(page, pageComActEasyPhotoTypeDTO));
+    }
+
+    /**
+     * 删除随手拍类型
+     * 
+     * @param ComActEasyPhotoTypeDeleteDTO
+     * @return 平台用户信息
+     */
+    @Override
+    public R delete(ComActEasyPhotoTypeDeleteDTO ComActEasyPhotoTypeDeleteDTO) {
+        return R.fail();
+    }
+
+    /**
+     * 查询随手拍类型详细信息
+     * 
+     * @param id
+     *            随手拍类型 id
+     * @return 查找结果
+     */
+    @Override
+    public R<ComActEasyPhotoTypeDetailsVO> comActEasyPhotoTypeDetails(Long id) {
+        ComActEasyPhotoTypeDO comActEasyPhotoTypeDO = comActEasyPhotoTypeMapper.selectById(id);
+        if (comActEasyPhotoTypeDO != null) {
+            ComActEasyPhotoTypeDetailsVO comActEasyPhotoTypeDetailsVO = new ComActEasyPhotoTypeDetailsVO();
+            BeanUtils.copyProperties(comActEasyPhotoTypeDO, comActEasyPhotoTypeDetailsVO);
+            return R.ok(comActEasyPhotoTypeDetailsVO);
+        }
+        return R.fail();
+    }
+
+    /**
+     * 查询随手拍类型列表
+     * 
+     * @return 类型列表
+     */
+    @Override
+    public R typeList() {
+        return R.ok(this.baseMapper.getPhotoClassifyList());
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventApplicationAppReleaseServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventApplicationAppReleaseServiceImpl.java
new file mode 100644
index 0000000..6821d6a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventApplicationAppReleaseServiceImpl.java
@@ -0,0 +1,128 @@
+package com.panzhihua.service_grid.service.impl;
+
+import java.util.Date;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+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.model.dtos.grid.EventApplicationAppReleaseAddDTO;
+import com.panzhihua.common.model.dtos.grid.EventApplicationAppReleaseDeleteDTO;
+import com.panzhihua.common.model.dtos.grid.EventApplicationAppReleaseEditDTO;
+import com.panzhihua.common.model.dtos.grid.PageEventApplicationAppReleaseDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.EventApplicationAppReleaseDetailsVO;
+import com.panzhihua.common.model.vos.grid.EventApplicationAppReleaseVO;
+import com.panzhihua.service_grid.dao.EventApplicationAppReleaseMapper;
+import com.panzhihua.service_grid.model.dos.EventApplicationAppReleaseDO;
+import com.panzhihua.service_grid.service.EventApplicationAppReleaseService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:03:01
+ * @describe 订单表服务实现类
+ */
+@Slf4j
+@Service
+public class EventApplicationAppReleaseServiceImpl
+    extends ServiceImpl<EventApplicationAppReleaseMapper, EventApplicationAppReleaseDO>
+    implements EventApplicationAppReleaseService {
+
+    @Resource
+    private EventApplicationAppReleaseMapper eventApplicationAppReleaseMapper;
+
+    /**
+     * 新增APP应用版本信息
+     * 
+     * @param eventApplicationAppReleaseAddDTO
+     * @return 新增结果
+     */
+    public R add(EventApplicationAppReleaseAddDTO eventApplicationAppReleaseAddDTO) {
+        EventApplicationAppReleaseDO eventApplicationAppReleaseDO = new EventApplicationAppReleaseDO();
+        BeanUtils.copyProperties(eventApplicationAppReleaseAddDTO, eventApplicationAppReleaseDO);
+        eventApplicationAppReleaseDO.setCreateAt(new Date());
+        if (eventApplicationAppReleaseMapper.insert(eventApplicationAppReleaseDO) > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 修改APP应用版本信息
+     * 
+     * @param eventApplicationAppReleaseEditDTO
+     * @return 维护结果
+     */
+    public R edit(EventApplicationAppReleaseEditDTO eventApplicationAppReleaseEditDTO) {
+        EventApplicationAppReleaseDO eventApplicationAppReleaseDO = new EventApplicationAppReleaseDO();
+        BeanUtils.copyProperties(eventApplicationAppReleaseEditDTO, eventApplicationAppReleaseDO);
+        // eventApplicationAppReleaseDO.setUpdateAt(new Date());
+        if (eventApplicationAppReleaseMapper.updateById(eventApplicationAppReleaseDO) > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 分页查找APP应用版本信息
+     * 
+     * @param pageEventApplicationAppReleaseDTO
+     * @return 维护结果
+     */
+    public R<IPage<EventApplicationAppReleaseVO>>
+        query(PageEventApplicationAppReleaseDTO pageEventApplicationAppReleaseDTO) {
+        Page page = new Page(1, 10);
+        if (pageEventApplicationAppReleaseDTO.getPageNum() != null) {
+            page.setCurrent(pageEventApplicationAppReleaseDTO.getPageNum());
+        }
+        if (pageEventApplicationAppReleaseDTO.getPageSize() != null) {
+            page.setSize(pageEventApplicationAppReleaseDTO.getPageSize());
+        }
+        return R.ok(eventApplicationAppReleaseMapper.findByPage(page, pageEventApplicationAppReleaseDTO));
+    }
+
+    /**
+     * 删除APP应用版本信息
+     * 
+     * @param EventApplicationAppReleaseDeleteDTO
+     * @return 平台用户信息
+     */
+    public R delete(EventApplicationAppReleaseDeleteDTO EventApplicationAppReleaseDeleteDTO) {
+        return R.fail();
+    }
+
+    /**
+     * 查询APP应用版本信息详细信息
+     * 
+     * @param id
+     *            APP应用版本信息 id
+     * @return 查找结果
+     */
+    public R<EventApplicationAppReleaseDetailsVO> eventApplicationAppReleaseDetails(Long id) {
+        EventApplicationAppReleaseDO eventApplicationAppReleaseDO = eventApplicationAppReleaseMapper.selectById(id);
+        if (eventApplicationAppReleaseDO != null) {
+            EventApplicationAppReleaseDetailsVO eventApplicationAppReleaseDetailsVO =
+                new EventApplicationAppReleaseDetailsVO();
+            BeanUtils.copyProperties(eventApplicationAppReleaseDO, eventApplicationAppReleaseDetailsVO);
+            return R.ok(eventApplicationAppReleaseDetailsVO);
+        }
+        return R.fail();
+    }
+
+    /**
+     * 获取最新版本信息
+     * 
+     * @return 版本信息
+     */
+    @Override
+    public R editionUpdate() {
+        return R.ok(this.baseMapper.editionUpdate());
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventApplicationUserNoticeServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventApplicationUserNoticeServiceImpl.java
new file mode 100644
index 0000000..7c535c7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventApplicationUserNoticeServiceImpl.java
@@ -0,0 +1,118 @@
+package com.panzhihua.service_grid.service.impl;
+
+import java.util.Date;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+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.model.dtos.grid.EventApplicationUserNoticeAddDTO;
+import com.panzhihua.common.model.dtos.grid.EventApplicationUserNoticeDeleteDTO;
+import com.panzhihua.common.model.dtos.grid.EventApplicationUserNoticeEditDTO;
+import com.panzhihua.common.model.dtos.grid.PageEventApplicationUserNoticeDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.EventApplicationUserNoticeDetailsVO;
+import com.panzhihua.common.model.vos.grid.EventApplicationUserNoticeVO;
+import com.panzhihua.service_grid.dao.EventApplicationUserNoticeMapper;
+import com.panzhihua.service_grid.model.dos.EventApplicationUserNoticeDO;
+import com.panzhihua.service_grid.service.EventApplicationUserNoticeService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:03:01
+ * @describe 订单表服务实现类
+ */
+@Slf4j
+@Service
+public class EventApplicationUserNoticeServiceImpl
+    extends ServiceImpl<EventApplicationUserNoticeMapper, EventApplicationUserNoticeDO>
+    implements EventApplicationUserNoticeService {
+
+    @Resource
+    private EventApplicationUserNoticeMapper eventApplicationUserNoticeMapper;
+
+    /**
+     * 新增用户协议和隐私政策信息
+     * 
+     * @param eventApplicationUserNoticeAddDTO
+     * @return 新增结果
+     */
+    public R add(EventApplicationUserNoticeAddDTO eventApplicationUserNoticeAddDTO) {
+        EventApplicationUserNoticeDO eventApplicationUserNoticeDO = new EventApplicationUserNoticeDO();
+        BeanUtils.copyProperties(eventApplicationUserNoticeAddDTO, eventApplicationUserNoticeDO);
+        eventApplicationUserNoticeDO.setCreateAt(new Date());
+        if (eventApplicationUserNoticeMapper.insert(eventApplicationUserNoticeDO) > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 修改用户协议和隐私政策信息
+     * 
+     * @param eventApplicationUserNoticeEditDTO
+     * @return 维护结果
+     */
+    public R edit(EventApplicationUserNoticeEditDTO eventApplicationUserNoticeEditDTO) {
+        EventApplicationUserNoticeDO eventApplicationUserNoticeDO = new EventApplicationUserNoticeDO();
+        BeanUtils.copyProperties(eventApplicationUserNoticeEditDTO, eventApplicationUserNoticeDO);
+        // eventApplicationUserNoticeDO.setUpdateAt(new Date());
+        if (eventApplicationUserNoticeMapper.updateById(eventApplicationUserNoticeDO) > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 分页查找用户协议和隐私政策信息
+     * 
+     * @param pageEventApplicationUserNoticeDTO
+     * @return 维护结果
+     */
+    public R<IPage<EventApplicationUserNoticeVO>>
+        query(PageEventApplicationUserNoticeDTO pageEventApplicationUserNoticeDTO) {
+        Page page = new Page(1, 10);
+        if (pageEventApplicationUserNoticeDTO.getPageNum() != null) {
+            page.setCurrent(pageEventApplicationUserNoticeDTO.getPageNum());
+        }
+        if (pageEventApplicationUserNoticeDTO.getPageSize() != null) {
+            page.setSize(pageEventApplicationUserNoticeDTO.getPageSize());
+        }
+        return R.ok(eventApplicationUserNoticeMapper.findByPage(page, pageEventApplicationUserNoticeDTO));
+    }
+
+    /**
+     * 删除用户协议和隐私政策信息
+     * 
+     * @param EventApplicationUserNoticeDeleteDTO
+     * @return 平台用户信息
+     */
+    public R delete(EventApplicationUserNoticeDeleteDTO EventApplicationUserNoticeDeleteDTO) {
+        return R.fail();
+    }
+
+    /**
+     * 查询用户协议和隐私政策信息详细信息
+     * 
+     * @param id
+     *            用户协议和隐私政策信息 id
+     * @return 查找结果
+     */
+    public R<EventApplicationUserNoticeDetailsVO> eventApplicationUserNoticeDetails(Long id) {
+        EventApplicationUserNoticeDO eventApplicationUserNoticeDO = eventApplicationUserNoticeMapper.selectById(id);
+        if (eventApplicationUserNoticeDO != null) {
+            EventApplicationUserNoticeDetailsVO eventApplicationUserNoticeDetailsVO =
+                new EventApplicationUserNoticeDetailsVO();
+            BeanUtils.copyProperties(eventApplicationUserNoticeDO, eventApplicationUserNoticeDetailsVO);
+            return R.ok(eventApplicationUserNoticeDetailsVO);
+        }
+        return R.fail();
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridDataServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridDataServiceImpl.java
new file mode 100644
index 0000000..04c100a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridDataServiceImpl.java
@@ -0,0 +1,346 @@
+package com.panzhihua.service_grid.service.impl;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+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.model.dtos.grid.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.*;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.service_grid.dao.EventGridDataMapper;
+import com.panzhihua.service_grid.dao.EventMapper;
+import com.panzhihua.service_grid.dao.LcCompareCodeMapper;
+import com.panzhihua.service_grid.model.dos.EventGridDataDO;
+import com.panzhihua.service_grid.model.dos.EventGridMemberRelationDO;
+import com.panzhihua.service_grid.model.dos.LcCompareCodeDO;
+import com.panzhihua.service_grid.service.EventGridDataService;
+import com.panzhihua.service_grid.service.EventGridMemberRelationService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:03:01
+ * @describe 订单表服务实现类
+ */
+@Slf4j
+@Service
+public class EventGridDataServiceImpl extends ServiceImpl<EventGridDataMapper, EventGridDataDO>
+    implements EventGridDataService {
+
+    @Resource
+    private EventGridDataMapper eventGridDataMapper;
+    @Resource
+    private EventMapper eventMapper;
+    @Resource
+    private EventGridMemberRelationService eventGridMemberRelationService;
+    @Resource
+    private LcCompareCodeMapper lcCompareCodeMapper;
+
+    /**
+     * 新增区县/街道/社区/网格员网格数据管理
+     * 
+     * @param eventGridDataAddDTO
+     * @return 新增结果
+     */
+    public R add(EventGridDataAddDTO eventGridDataAddDTO) {
+        EventGridDataDO eventGridDataDO = new EventGridDataDO();
+        BeanUtils.copyProperties(eventGridDataAddDTO, eventGridDataDO);
+        eventGridDataDO.setCreateAt(new Date());
+        if (eventGridDataMapper.insert(eventGridDataDO) > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 修改区县/街道/社区/网格员网格数据管理
+     * 
+     * @param eventGridDataEditDTO
+     * @return 维护结果
+     */
+    public R edit(EventGridDataEditDTO eventGridDataEditDTO) {
+        EventGridDataDO eventGridDataDO = new EventGridDataDO();
+        BeanUtils.copyProperties(eventGridDataEditDTO, eventGridDataDO);
+        // eventGridDataDO.setUpdateAt(new Date());
+        if (eventGridDataMapper.updateById(eventGridDataDO) > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 删除区县/街道/社区/网格员网格数据管理
+     * 
+     * @param EventGridDataDeleteDTO
+     * @return 平台用户信息
+     */
+    public R delete(EventGridDataDeleteDTO EventGridDataDeleteDTO) {
+        return R.fail();
+    }
+
+    /**
+     * 查询区县/街道/社区/网格员网格数据管理详细信息
+     * 
+     * @param id
+     *            区县/街道/社区/网格员网格数据管理 id
+     * @return 查找结果
+     */
+    public R<EventGridDataDetailsVO> eventGridDataDetails(Long id) {
+        EventGridDataDO eventGridDataDO = eventGridDataMapper.selectById(id);
+        if (eventGridDataDO != null) {
+            EventGridDataDetailsVO eventGridDataDetailsVO = new EventGridDataDetailsVO();
+            BeanUtils.copyProperties(eventGridDataDO, eventGridDataDetailsVO);
+            return R.ok(eventGridDataDetailsVO);
+        }
+        return R.fail();
+    }
+
+    @Override
+    public R getUserGrid(PageEventGridDataDTO pageEventGridDataDTO) {
+        Page page = new Page(1, 10);
+        if (pageEventGridDataDTO.getPageNum() != null) {
+            page.setCurrent(pageEventGridDataDTO.getPageNum());
+        }
+        if (pageEventGridDataDTO.getPageSize() != null) {
+            page.setSize(pageEventGridDataDTO.getPageSize());
+        }
+
+        return R.ok(eventGridDataMapper.selectUserGrid(page, pageEventGridDataDTO));
+    }
+
+    /**
+     * 地图模块-根据网格id查询网格详细信息
+     * 
+     * @param gridId
+     *            网格id
+     * @return 网格详细信息
+     */
+    @Override
+    public R getMapGridDetail(Long gridId) {
+        ComMapGridDetailVO gridDetailVO = new ComMapGridDetailVO();
+        // 查询网格信息
+        EventGridDataDO eventGridDataDO = this.baseMapper.selectById(gridId);
+        if (eventGridDataDO == null) {
+            return R.fail("未查询到网格信息");
+        }
+        BeanUtils.copyProperties(eventGridDataDO, gridDetailVO);
+        // 查询网格待办事件
+        List<ComMapGridEventVO> gridEventList = eventMapper.getEventByGridId(gridId);
+        if (!gridEventList.isEmpty()) {
+            gridDetailVO.setGridEventList(gridEventList);
+        }
+        return R.ok(gridDetailVO);
+    }
+
+    @Override
+    public R getGridTodoData(EventGridTodoDataDTO eventGridTodoDataDTO) {
+        List<UserEventGridDataVO> userEventGridDataVO = eventGridDataMapper.getGridTodoData(eventGridTodoDataDTO);
+        return R.ok(userEventGridDataVO);
+    }
+
+    /**
+     * 分页查询网格
+     * 
+     * @param eventGridDataDTO
+     *            请求参数
+     * @return 网格列表
+     */
+    @Override
+    public R getGridMemberList(PageEventGridDataAdminDTO eventGridDataDTO) {
+        IPage<EventGridAdminVO> gridAdminVOIPage = this.baseMapper
+            .findByPage(new Page(eventGridDataDTO.getPageNum(), eventGridDataDTO.getPageSize()), eventGridDataDTO);
+        if (!gridAdminVOIPage.getRecords().isEmpty()) {
+            gridAdminVOIPage.getRecords().forEach(gridMember -> {
+                List<GridMemberAdminVO> members = this.baseMapper.getGridMember(gridMember.getId());
+                if (!members.isEmpty()) {
+                    gridMember.setGridMembers(members);
+                }
+            });
+        }
+        return R.ok(gridAdminVOIPage);
+    }
+
+    /**
+     * 查询社区下所有网格员
+     * 
+     * @param communityId
+     *            社区id
+     * @return 网格员列表
+     */
+    @Override
+    public R getGridMemberLists(Long communityId) {
+        return R.ok(this.baseMapper.getGridMemberLists(communityId));
+    }
+
+    /**
+     * 后台新增网格
+     * 
+     * @param eventGridDataDTO
+     *            请求参数
+     * @return 新增结果
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public R addGridDataByAdmin(EventGridDataAddAdminDTO eventGridDataDTO) {
+        // 查询社区信息
+        ComGridActVO gridAct = this.baseMapper.getComActByActId(eventGridDataDTO.getGridCommunityId());
+        if (gridAct != null) {
+            EventGridDataDO gridDataDO = new EventGridDataDO();
+            BeanUtils.copyProperties(eventGridDataDTO, gridDataDO);
+            gridDataDO.setType(EventGridDataDO.type.sq);
+            gridDataDO.setGridStreetId(gridAct.getStreetId());
+            gridDataDO.setGridCommunityId(gridAct.getCommunityId());
+            gridDataDO.setZoneId(Long.parseLong(gridAct.getAreaCode()));
+            gridDataDO.setCreateBy(eventGridDataDTO.getUserId());
+            if (this.baseMapper.insert(gridDataDO) > 0) {
+                if (!eventGridDataDTO.getMemberIds().isEmpty()) {
+                    List<EventGridMemberRelationDO> memberRelationDOList = new ArrayList<>();
+                    // 新增网格成功 绑定网格与网格员关系
+                    eventGridDataDTO.getMemberIds().forEach(memberId -> {
+                        EventGridMemberRelationDO memberRelationDO = new EventGridMemberRelationDO();
+                        memberRelationDO.setGridId(gridDataDO.getId());
+                        memberRelationDO.setGridCommunityId(gridDataDO.getGridCommunityId());
+                        memberRelationDO.setGridStreetId(gridDataDO.getGridStreetId());
+                        memberRelationDO.setGridName(gridDataDO.getGridName());
+                        memberRelationDO.setGridMemberId(memberId);
+                        memberRelationDOList.add(memberRelationDO);
+                    });
+                    if (!memberRelationDOList.isEmpty()) {
+                        // 添加网格与网格员关联关系
+                        eventGridMemberRelationService.saveBatch(memberRelationDOList);
+                    }
+                }
+
+                if (eventGridDataDTO.getLcGridId() != null) {
+                    // 关联市平台网格
+                    LcCompareCodeDO compareCodeDO = lcCompareCodeMapper.selectOne(new QueryWrapper<LcCompareCodeDO>()
+                        .lambda().eq(LcCompareCodeDO::getLcGridId, eventGridDataDTO.getLcGridId()));
+                    if (compareCodeDO != null) {
+                        compareCodeDO.setLocalGridId(gridDataDO.getId().toString());
+                        compareCodeDO.setGridName(gridDataDO.getGridName());
+                        compareCodeDO.setUpdateAt(new Date());
+                        lcCompareCodeMapper.updateById(compareCodeDO);
+                    } else {
+                        compareCodeDO = new LcCompareCodeDO();
+                        compareCodeDO.setId(Snowflake.getId());
+                        compareCodeDO.setLocalGridId(gridDataDO.getId().toString());
+                        compareCodeDO.setGridName(gridDataDO.getGridName());
+                        compareCodeDO.setLcGridId(eventGridDataDTO.getLcGridId());
+                        compareCodeDO.setLcGridName(eventGridDataDTO.getLcGridName());
+                        compareCodeDO.setCreateAt(new Date());
+                        lcCompareCodeMapper.insert(compareCodeDO);
+                    }
+                }
+                return R.ok();
+            }
+        }
+        return R.fail("添加失败");
+    }
+
+    /**
+     * 后台修改网格
+     * 
+     * @param eventGridDataDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public R editGridDataByAdmin(EventGridDataEditAdminDTO eventGridDataDTO) {
+
+        EventGridDataDO gridDataDO = this.baseMapper.selectById(eventGridDataDTO.getGridId());
+        if (gridDataDO != null) {
+            BeanUtils.copyProperties(eventGridDataDTO, gridDataDO);
+            gridDataDO.setRemarks(eventGridDataDTO.getRemarks());
+            gridDataDO.setUpdateBy(eventGridDataDTO.getUserId());
+            if (this.baseMapper.updateById(gridDataDO) > 0) {
+                // 移除网格员和网格关系
+                this.baseMapper.removeGridRelationByGridId(gridDataDO.getId());
+
+                if (!eventGridDataDTO.getMemberIds().isEmpty()) {
+                    List<EventGridMemberRelationDO> memberRelationDOList = new ArrayList<>();
+                    // 绑定网格与网格员关系
+                    eventGridDataDTO.getMemberIds().forEach(memberId -> {
+                        EventGridMemberRelationDO memberRelationDO = new EventGridMemberRelationDO();
+                        memberRelationDO.setGridId(gridDataDO.getId());
+                        memberRelationDO.setGridCommunityId(gridDataDO.getGridCommunityId());
+                        memberRelationDO.setGridStreetId(gridDataDO.getGridStreetId());
+                        memberRelationDO.setGridName(gridDataDO.getGridName());
+                        memberRelationDO.setGridMemberId(memberId);
+                        memberRelationDOList.add(memberRelationDO);
+                    });
+                    if (!memberRelationDOList.isEmpty()) {
+                        // 添加网格与网格员关联关系
+                        eventGridMemberRelationService.saveBatch(memberRelationDOList);
+                    }
+                }
+
+                // 查询已存在的关系需要清除
+                lcCompareCodeMapper.delete(new QueryWrapper<LcCompareCodeDO>().lambda()
+                    .eq(LcCompareCodeDO::getLocalGridId, gridDataDO.getId()));
+                if (eventGridDataDTO.getLcGridId() != null) {
+                    // 关联市平台网格
+                    LcCompareCodeDO compareCodeDO = lcCompareCodeMapper.selectOne(new QueryWrapper<LcCompareCodeDO>()
+                        .lambda().eq(LcCompareCodeDO::getLcGridId, eventGridDataDTO.getLcGridId()));
+                    if (compareCodeDO != null) {
+                        compareCodeDO.setLocalGridId(gridDataDO.getId().toString());
+                        compareCodeDO.setGridName(gridDataDO.getGridName());
+                        compareCodeDO.setUpdateAt(new Date());
+                        lcCompareCodeMapper.updateById(compareCodeDO);
+                    } else {
+                        compareCodeDO = new LcCompareCodeDO();
+                        compareCodeDO.setId(Snowflake.getId());
+                        compareCodeDO.setLocalGridId(gridDataDO.getId().toString());
+                        compareCodeDO.setGridName(gridDataDO.getGridName());
+                        compareCodeDO.setLcGridId(eventGridDataDTO.getLcGridId());
+                        compareCodeDO.setLcGridName(eventGridDataDTO.getLcGridName());
+                        compareCodeDO.setCreateAt(new Date());
+                        lcCompareCodeMapper.insert(compareCodeDO);
+                    }
+                }
+                return R.ok();
+            }
+        }
+        return R.fail();
+    }
+
+    @Override
+    public R getGridMemberListsByGrid(Long gridId) {
+        List<EventGridMemberAdminVO> eventGridMemberAdminVOList = this.getBaseMapper().getGridMemberListsByGrid(gridId);
+        return R.ok(eventGridMemberAdminVOList);
+    }
+
+    @Override
+    public R getGridDataListByCommunity(Long communityId) {
+        List<EventGridDataAreaVO> eventGridDataAreaVOList =
+            this.getBaseMapper().getGridDataListByCommunity(communityId);
+        return R.ok(eventGridDataAreaVOList);
+    }
+
+    @Override
+    public R deleteGridDataByAdmin(List<Long> Ids) {
+        Integer count = eventMapper.getEventCountByGridIds(Ids);
+        if (count > 0) {
+            return R.fail("您选择的网格已发布过事件,不可删除");
+        }
+        if (this.baseMapper.deleteBatchIds(Ids) > 0) {
+            return R.ok();
+        } else {
+            return R.fail();
+        }
+
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridMemberGpsLogServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridMemberGpsLogServiceImpl.java
new file mode 100644
index 0000000..73d5a3d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridMemberGpsLogServiceImpl.java
@@ -0,0 +1,146 @@
+package com.panzhihua.service_grid.service.impl;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+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.model.dtos.grid.EventGridMemberGpsLogDeleteDTO;
+import com.panzhihua.common.model.dtos.grid.EventGridMemberGpsLogEditDTO;
+import com.panzhihua.common.model.dtos.grid.EventGridMemberWorkTrajectoryDTO;
+import com.panzhihua.common.model.dtos.grid.PageEventGridMemberGpsLogDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.EventGridMemberGpsLogDetailsVO;
+import com.panzhihua.common.model.vos.grid.EventGridMemberGpsLogVO;
+import com.panzhihua.common.model.vos.grid.GridMemberPositionDTO;
+import com.panzhihua.service_grid.dao.EventGridMemberGpsLogMapper;
+import com.panzhihua.service_grid.model.dos.EventGridMemberGpsLogDO;
+import com.panzhihua.service_grid.service.EventGridMemberGpsLogService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:03:01
+ * @describe 订单表服务实现类
+ */
+@Slf4j
+@Service
+public class EventGridMemberGpsLogServiceImpl extends ServiceImpl<EventGridMemberGpsLogMapper, EventGridMemberGpsLogDO>
+    implements EventGridMemberGpsLogService {
+
+    @Resource
+    private EventGridMemberGpsLogMapper eventGridMemberGpsLogMapper;
+
+    /**
+     * 新增网格员定时上报地理信息
+     * 
+     * @param memberPositionDTO
+     *            请求参数
+     * @return 新增结果
+     */
+    public R add(GridMemberPositionDTO memberPositionDTO) {
+        EventGridMemberGpsLogDO eventGridMemberGpsLogDO = new EventGridMemberGpsLogDO();
+        BeanUtils.copyProperties(memberPositionDTO, eventGridMemberGpsLogDO);
+        eventGridMemberGpsLogDO.setCreateAt(new Date());
+        eventGridMemberGpsLogDO.setCreateBy(memberPositionDTO.getGridMemberId());
+        if (eventGridMemberGpsLogMapper.insert(eventGridMemberGpsLogDO) > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 修改网格员定时上报地理信息
+     * 
+     * @param eventGridMemberGpsLogEditDTO
+     * @return 维护结果
+     */
+    public R edit(EventGridMemberGpsLogEditDTO eventGridMemberGpsLogEditDTO) {
+        EventGridMemberGpsLogDO eventGridMemberGpsLogDO = new EventGridMemberGpsLogDO();
+        BeanUtils.copyProperties(eventGridMemberGpsLogEditDTO, eventGridMemberGpsLogDO);
+        // eventGridMemberGpsLogDO.setUpdateAt(new Date());
+        if (eventGridMemberGpsLogMapper.updateById(eventGridMemberGpsLogDO) > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 分页查找网格员定时上报地理信息
+     * 
+     * @param pageEventGridMemberGpsLogDTO
+     * @return 维护结果
+     */
+    public R<IPage<EventGridMemberGpsLogVO>> query(PageEventGridMemberGpsLogDTO pageEventGridMemberGpsLogDTO) {
+        Page page = new Page(1, 10);
+        if (pageEventGridMemberGpsLogDTO.getPageNum() != null) {
+            page.setCurrent(pageEventGridMemberGpsLogDTO.getPageNum());
+        }
+        if (pageEventGridMemberGpsLogDTO.getPageSize() != null) {
+            page.setSize(pageEventGridMemberGpsLogDTO.getPageSize());
+        }
+        return R.ok(eventGridMemberGpsLogMapper.findByPage(page, pageEventGridMemberGpsLogDTO));
+    }
+
+    /**
+     * 删除网格员定时上报地理信息
+     * 
+     * @param EventGridMemberGpsLogDeleteDTO
+     * @return 平台用户信息
+     */
+    public R delete(EventGridMemberGpsLogDeleteDTO EventGridMemberGpsLogDeleteDTO) {
+        return R.fail();
+    }
+
+    /**
+     * 查询网格员定时上报地理信息详细信息
+     * 
+     * @param id
+     *            网格员定时上报地理信息 id
+     * @return 查找结果
+     */
+    public R<EventGridMemberGpsLogDetailsVO> eventGridMemberGpsLogDetails(Long id) {
+        EventGridMemberGpsLogDO eventGridMemberGpsLogDO = eventGridMemberGpsLogMapper.selectById(id);
+        if (eventGridMemberGpsLogDO != null) {
+            EventGridMemberGpsLogDetailsVO eventGridMemberGpsLogDetailsVO = new EventGridMemberGpsLogDetailsVO();
+            BeanUtils.copyProperties(eventGridMemberGpsLogDO, eventGridMemberGpsLogDetailsVO);
+            return R.ok(eventGridMemberGpsLogDetailsVO);
+        }
+        return R.fail();
+    }
+
+    /**
+     * 根据网格员id查询今日轨迹
+     * 
+     * @param userId
+     *            网格员id
+     * @return 网格员今日轨迹
+     */
+    @Override
+    public R getTrajectoryByApp(Long userId) {
+        return R.ok(this.baseMapper.getTrajectoryByApp(userId));
+    }
+
+    /**
+     * 后台获取网格员运动轨迹
+     * 
+     * @param workTrajectoryDTO
+     *            请求参数
+     * @return 运动轨迹
+     */
+    @Override
+    public R gridMemberWorkTrajectory(EventGridMemberWorkTrajectoryDTO workTrajectoryDTO) {
+        List<String> workTrajectorys = new ArrayList<>();
+        workTrajectorys = this.baseMapper.gridMemberWorkTrajectory(workTrajectoryDTO);
+        return R.ok(workTrajectorys);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridMemberRelationServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridMemberRelationServiceImpl.java
new file mode 100644
index 0000000..d45b591
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridMemberRelationServiceImpl.java
@@ -0,0 +1,213 @@
+package com.panzhihua.service_grid.service.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.vos.screen.GridMemberTrajectoryVo;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+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.model.dtos.grid.*;
+import com.panzhihua.common.model.dtos.grid.admin.EventGridMemberCascadeAddDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.EventGridMemberRelationDetailsVO;
+import com.panzhihua.common.model.vos.grid.EventGridMemberRelationVO;
+import com.panzhihua.common.model.vos.grid.EventMapGridCascadeVO;
+import com.panzhihua.common.model.vos.grid.admin.GridMemberCascadeVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.service_grid.dao.EventGridMemberRelationMapper;
+import com.panzhihua.service_grid.model.dos.EventGridMemberRelationDO;
+import com.panzhihua.service_grid.service.EventGridMemberRelationService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:03:01
+ * @describe 订单表服务实现类
+ */
+@Slf4j
+@Service
+public class EventGridMemberRelationServiceImpl extends
+    ServiceImpl<EventGridMemberRelationMapper, EventGridMemberRelationDO> implements EventGridMemberRelationService {
+
+    @Resource
+    private EventGridMemberRelationMapper eventGridMemberRelationMapper;
+    @Resource
+    private UserService userService;
+
+    /**
+     * 新增网格和网格员的关联关系
+     * 
+     * @param eventGridMemberAddDTO
+     * @return 新增结果
+     */
+    public R add(EventGridMemberAddDTO eventGridMemberAddDTO) {
+
+        userService.addGridUser(eventGridMemberAddDTO);
+
+        EventGridMemberRelationDO eventGridMemberRelationDO = new EventGridMemberRelationDO();
+        eventGridMemberRelationDO.setCreateBy(eventGridMemberAddDTO.getUserId());
+        if (eventGridMemberRelationMapper.insert(eventGridMemberRelationDO) > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 修改网格和网格员的关联关系
+     * 
+     * @param eventGridMemberEditDTO
+     * @return 维护结果
+     */
+    public R edit(EventGridMemberEditDTO eventGridMemberEditDTO) {
+        EventGridMemberRelationDO eventGridMemberRelationDO = new EventGridMemberRelationDO();
+        BeanUtils.copyProperties(eventGridMemberEditDTO, eventGridMemberRelationDO);
+        // eventGridMemberRelationDO.setUpdateAt(new Date());
+        if (eventGridMemberRelationMapper.updateById(eventGridMemberRelationDO) > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 分页查找网格和网格员的关联关系
+     * 
+     * @param pageEventGridMemberRelationDTO
+     * @return 维护结果
+     */
+    public R<IPage<EventGridMemberRelationVO>> query(PageEventGridMemberRelationDTO pageEventGridMemberRelationDTO) {
+        Page page = new Page(1, 10);
+        if (pageEventGridMemberRelationDTO.getPageNum() != null) {
+            page.setCurrent(pageEventGridMemberRelationDTO.getPageNum());
+        }
+        if (pageEventGridMemberRelationDTO.getPageSize() != null) {
+            page.setSize(pageEventGridMemberRelationDTO.getPageSize());
+        }
+        return R.ok(eventGridMemberRelationMapper.findByPage(page, pageEventGridMemberRelationDTO));
+    }
+
+    /**
+     * 删除网格和网格员的关联关系
+     * 
+     * @param EventGridMemberRelationDeleteDTO
+     * @return 平台用户信息
+     */
+    public R delete(EventGridMemberRelationDeleteDTO EventGridMemberRelationDeleteDTO) {
+        return R.fail();
+    }
+
+    /**
+     * 查询网格和网格员的关联关系详细信息
+     * 
+     * @param id
+     *            网格和网格员的关联关系 id
+     * @return 查找结果
+     */
+    public R<EventGridMemberRelationDetailsVO> eventGridMemberRelationDetails(Long id) {
+        EventGridMemberRelationDO eventGridMemberRelationDO = eventGridMemberRelationMapper.selectById(id);
+        if (eventGridMemberRelationDO != null) {
+            EventGridMemberRelationDetailsVO eventGridMemberRelationDetailsVO = new EventGridMemberRelationDetailsVO();
+            BeanUtils.copyProperties(eventGridMemberRelationDO, eventGridMemberRelationDetailsVO);
+            return R.ok(eventGridMemberRelationDetailsVO);
+        }
+        return R.fail();
+    }
+
+    /**
+     * 根据网格员id查询关联网格列表
+     * 
+     * @param userId
+     *            网格员id
+     * @return 网格列表
+     */
+    @Override
+    public R getMapGridListByApp(Long userId) {
+        return R.ok(this.baseMapper.getMapGridListByApp(userId));
+    }
+
+    /**
+     * 查询市平台网格员列表
+     * 
+     * @return 市平台网格员列表
+     */
+    @Override
+    public R lcList() {
+        return R.ok(this.baseMapper.getGridMemberLcList());
+    }
+
+    @Override
+    public R gridMemberCascadeList(EventGridMemberCascadeAddDTO memberCascadeAddDTO) {
+        if (memberCascadeAddDTO.getType() == null) {
+            return R.fail("参数错误");
+        }
+        List<GridMemberCascadeVO> memberCascadeList =
+            this.baseMapper.getGridMemberCascade(memberCascadeAddDTO.getType(), memberCascadeAddDTO.getSuperiorId());
+
+        List<GridMemberCascadeVO> result = new ArrayList<>();
+        if (!memberCascadeList.isEmpty()) {
+            memberCascadeList.forEach(cascade -> {
+                if (memberCascadeAddDTO.getType().equals(1)) {// 过滤无小区的社区
+                    Integer count = this.baseMapper.getVillageCount(cascade.getId());
+                    if (count > 0) {
+                        result.add(cascade);
+                    }
+                } else if (memberCascadeAddDTO.getType().equals(2)) {// 过滤无楼栋的小区
+                    Integer count = this.baseMapper.getBuildingCount(cascade.getId());
+                    if (count > 0) {
+                        result.add(cascade);
+                    }
+                } else {
+                    if (!cascade.getName().contains("栋")) {
+                        cascade.setName(cascade.getName() + "栋");
+                    }
+                    result.add(cascade);
+                }
+            });
+        }
+        return R.ok(result);
+    }
+
+    @Override
+    public R getMapGridListsByApp(EventGridCascadeListDTO cascadeListDTO) {
+        return R.ok(eventGridMemberRelationMapper.getMapGridListsByApp(cascadeListDTO));
+    }
+
+    @Override
+    public R getMapGridsListsByApp(Long userId) {
+        List<EventMapGridCascadeVO> resultList = new ArrayList<>();
+        List<EventMapGridCascadeVO> list = this.eventGridMemberRelationMapper.getMapGridsListsByApp(userId, 1, null);
+        if (!list.isEmpty()) {
+            list.forEach(gridCascadeVO -> {
+                List<EventMapGridCascadeVO> childList =
+                    this.eventGridMemberRelationMapper.getMapGridsListsByApp(userId, 2, gridCascadeVO.getGridId());
+                if (!childList.isEmpty()) {
+                    gridCascadeVO.setChildList(childList);
+                    resultList.add(gridCascadeVO);
+                }
+            });
+        }
+        return R.ok(resultList);
+    }
+
+    /**
+     * 查询社区网格员运动轨迹
+     * @param communityId   社区id
+     * @return  社区网格员运动轨迹
+     */
+    @Override
+    public R getGridsMemberTrajectory(Long communityId){
+        //查询社区所有网格员
+        List<GridMemberTrajectoryVo> memberTrajectoryList = eventGridMemberRelationMapper.getGridsMemberList(communityId);
+        memberTrajectoryList.forEach(member -> {
+            member.setLngLatList(eventGridMemberRelationMapper.getGridsMemberTrajectory(member.getUserId()));
+        });
+        return R.ok(memberTrajectoryList);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridMemberWarnLogServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridMemberWarnLogServiceImpl.java
new file mode 100644
index 0000000..1694d3a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventGridMemberWarnLogServiceImpl.java
@@ -0,0 +1,217 @@
+package com.panzhihua.service_grid.service.impl;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+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.model.dtos.grid.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.EventGridMemberWarnLogDetailsVO;
+import com.panzhihua.common.model.vos.grid.EventGridMemberWarnLogVO;
+import com.panzhihua.common.model.vos.grid.LatLngVO;
+import com.panzhihua.common.utlis.LngLatUtils;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_grid.dao.EventGridDataMapper;
+import com.panzhihua.service_grid.dao.EventGridMemberGpsLogMapper;
+import com.panzhihua.service_grid.dao.EventGridMemberRelationMapper;
+import com.panzhihua.service_grid.dao.EventGridMemberWarnLogMapper;
+import com.panzhihua.service_grid.model.dos.EventGridDataDO;
+import com.panzhihua.service_grid.model.dos.EventGridMemberGpsLogDO;
+import com.panzhihua.service_grid.model.dos.EventGridMemberRelationDO;
+import com.panzhihua.service_grid.model.dos.EventGridMemberWarnLogDO;
+import com.panzhihua.service_grid.service.EventGridMemberWarnLogService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:03:01
+ * @describe 订单表服务实现类
+ */
+@Slf4j
+@Service
+public class EventGridMemberWarnLogServiceImpl extends
+    ServiceImpl<EventGridMemberWarnLogMapper, EventGridMemberWarnLogDO> implements EventGridMemberWarnLogService {
+
+    @Resource
+    private EventGridMemberWarnLogMapper eventGridMemberWarnLogMapper;
+    @Resource
+    private EventGridMemberGpsLogMapper eventGridMemberGpsLogMapper;
+    @Resource
+    private EventGridDataMapper eventGridDataMapper;
+    @Resource
+    private EventGridMemberRelationMapper eventGridMemberRelationMapper;
+
+    /**
+     * 新增网格员定时上报地理预警记录
+     * 
+     * @param eventGridMemberWarnLogAddDTO
+     * @return 新增结果
+     */
+    public R add(EventGridMemberWarnLogAddDTO eventGridMemberWarnLogAddDTO) {
+        EventGridMemberWarnLogDO eventGridMemberWarnLogDO = new EventGridMemberWarnLogDO();
+        BeanUtils.copyProperties(eventGridMemberWarnLogAddDTO, eventGridMemberWarnLogDO);
+        eventGridMemberWarnLogDO.setCreateAt(new Date());
+        if (eventGridMemberWarnLogMapper.insert(eventGridMemberWarnLogDO) > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 修改网格员定时上报地理预警记录
+     * 
+     * @param eventGridMemberWarnLogEditDTO
+     * @return 维护结果
+     */
+    public R edit(EventGridMemberWarnLogEditDTO eventGridMemberWarnLogEditDTO) {
+        EventGridMemberWarnLogDO eventGridMemberWarnLogDO = new EventGridMemberWarnLogDO();
+        BeanUtils.copyProperties(eventGridMemberWarnLogEditDTO, eventGridMemberWarnLogDO);
+        // eventGridMemberWarnLogDO.setUpdateAt(new Date());
+        if (eventGridMemberWarnLogMapper.updateById(eventGridMemberWarnLogDO) > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 分页查找网格员定时上报地理预警记录
+     * 
+     * @param pageEventGridMemberWarnLogDTO
+     * @return 维护结果
+     */
+    public R<IPage<EventGridMemberWarnLogVO>> query(PageEventGridMemberWarnLogDTO pageEventGridMemberWarnLogDTO) {
+        Page page = new Page(1, 10);
+        if (pageEventGridMemberWarnLogDTO.getPageNum() != null) {
+            page.setCurrent(pageEventGridMemberWarnLogDTO.getPageNum());
+        }
+        if (pageEventGridMemberWarnLogDTO.getPageSize() != null) {
+            page.setSize(pageEventGridMemberWarnLogDTO.getPageSize());
+        }
+        return R.ok(eventGridMemberWarnLogMapper.findByPage(page, pageEventGridMemberWarnLogDTO));
+    }
+
+    /**
+     * 删除网格员定时上报地理预警记录
+     * 
+     * @param EventGridMemberWarnLogDeleteDTO
+     * @return 平台用户信息
+     */
+    public R delete(EventGridMemberWarnLogDeleteDTO EventGridMemberWarnLogDeleteDTO) {
+        return R.fail();
+    }
+
+    /**
+     * 查询网格员定时上报地理预警记录详细信息
+     * 
+     * @param id
+     *            网格员定时上报地理预警记录 id
+     * @return 查找结果
+     */
+    public R<EventGridMemberWarnLogDetailsVO> eventGridMemberWarnLogDetails(Long id) {
+        EventGridMemberWarnLogDO eventGridMemberWarnLogDO = eventGridMemberWarnLogMapper.selectById(id);
+        if (eventGridMemberWarnLogDO != null) {
+            EventGridMemberWarnLogDetailsVO eventGridMemberWarnLogDetailsVO = new EventGridMemberWarnLogDetailsVO();
+            BeanUtils.copyProperties(eventGridMemberWarnLogDO, eventGridMemberWarnLogDetailsVO);
+            return R.ok(eventGridMemberWarnLogDetailsVO);
+        }
+        return R.fail();
+    }
+
+    /**
+     * 后台获取网格员预警记录
+     * 
+     * @param gridMemberWainDTO
+     *            请求参数
+     * @return 预警记录
+     */
+    @Override
+    public R gridMemberWorkWarning(EventGridMemberWainDTO gridMemberWainDTO) {
+        return R.ok(this.baseMapper.gridMemberWorkWarning(
+            new Page(gridMemberWainDTO.getPageNum(), gridMemberWainDTO.getPageSize()), gridMemberWainDTO));
+    }
+
+    /**
+     * 定时任务扫描网格员工作状态
+     * 
+     * @return 定时任务扫描结果
+     */
+    @Override
+    public R timedTaskGridMember() {
+
+        // 查询所有网格数据
+        List<EventGridDataDO> gridDataDOList = eventGridDataMapper.selectList(
+            new QueryWrapper<EventGridDataDO>().lambda().eq(EventGridDataDO::getType, EventGridDataDO.type.sq));
+        if (gridDataDOList.isEmpty()) {
+            return R.fail("未查询到网格数据");
+        }
+
+        List<EventGridMemberGpsLogDO> memberGpsLogDOS =
+            eventGridMemberGpsLogMapper.selectList(new QueryWrapper<EventGridMemberGpsLogDO>().lambda()
+                .eq(EventGridMemberGpsLogDO::getPositionStation, EventGridMemberGpsLogDO.positionStation.no));
+        if (!memberGpsLogDOS.isEmpty()) {
+            memberGpsLogDOS.forEach(memberGpsLog -> {
+                if (StringUtils.isNotEmpty(memberGpsLog.getLngLat())) {
+                    String[] lngLat = memberGpsLog.getLngLat().split(",");
+                    Double lat = Double.valueOf(lngLat[0]);
+                    Double lng = Double.valueOf(lngLat[1]);
+                    // 遍历所有网格信息匹配网格员的坐标点是否在网格内
+                    Boolean isOk = true;
+
+                    Integer workStatus = 2;
+
+                    for (EventGridDataDO gridData : gridDataDOList) {
+                        if (StringUtils.isNotEmpty(gridData.getData())) {
+                            List<LatLngVO> latLngList = LngLatUtils.getLatLngFromText(gridData.getData());
+                            if (LngLatUtils.isInPolygon(latLngList, lng, lat)) {// 匹配通过
+                                // 判断当前网格员与此网格是否有关系
+                                Integer count = eventGridMemberRelationMapper
+                                    .selectCount(new QueryWrapper<EventGridMemberRelationDO>().lambda()
+                                        .eq(EventGridMemberRelationDO::getGridMemberId, memberGpsLog.getGridMemberId())
+                                        .eq(EventGridMemberRelationDO::getGridId, memberGpsLog.getGridId()));
+                                if (count > 0) {
+                                    isOk = false;
+                                    workStatus = 1;
+                                    memberGpsLog.setGridId(gridData.getId());
+                                    memberGpsLog.setGridCommunityId(gridData.getGridCommunityId());
+                                    memberGpsLog.setGridStreetId(gridData.getGridStreetId());
+                                    memberGpsLog.setGridName(gridData.getGridName());
+                                    memberGpsLog.setPositionStation(EventGridMemberGpsLogDO.positionStation.normal);
+                                    eventGridMemberGpsLogMapper.updateById(memberGpsLog);
+                                    // 修改用户工作状态
+                                    this.baseMapper.setUserWorkStatus(memberGpsLog.getGridMemberId(), workStatus);
+                                    break;
+                                }
+                            }
+                        }
+                    }
+                    if (isOk) {// 此网格员脱岗
+                        memberGpsLog.setPositionStation(EventGridMemberGpsLogDO.positionStation.abnormal);
+                        workStatus = 2;
+                        // 新增网格员预警信息
+                        EventGridMemberWarnLogDO memberWarnLogDO = new EventGridMemberWarnLogDO();
+                        BeanUtils.copyProperties(memberGpsLog, memberWarnLogDO);
+                        memberWarnLogDO.setId(null);
+                        memberWarnLogDO.setContent("工作时间未在网格内预警");
+                        memberWarnLogDO.setHappenAt(memberGpsLog.getCreateAt());
+                        this.baseMapper.insert(memberWarnLogDO);
+
+                        eventGridMemberGpsLogMapper.updateById(memberGpsLog);
+                        // 修改用户工作状态
+                        this.baseMapper.setUserWorkStatus(memberGpsLog.getGridMemberId(), workStatus);
+                    }
+                }
+            });
+        }
+        return R.ok();
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventMainMemberServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventMainMemberServiceImpl.java
new file mode 100644
index 0000000..01fdca3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventMainMemberServiceImpl.java
@@ -0,0 +1,115 @@
+package com.panzhihua.service_grid.service.impl;
+
+import java.util.Date;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+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.model.dtos.grid.EventMainMemberAddDTO;
+import com.panzhihua.common.model.dtos.grid.EventMainMemberDeleteDTO;
+import com.panzhihua.common.model.dtos.grid.EventMainMemberEditDTO;
+import com.panzhihua.common.model.dtos.grid.PageEventMainMemberDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.EventMainMemberDetailsVO;
+import com.panzhihua.common.model.vos.grid.EventMainMemberVO;
+import com.panzhihua.service_grid.dao.EventMainMemberMapper;
+import com.panzhihua.service_grid.model.dos.EventMainMemberDO;
+import com.panzhihua.service_grid.service.EventMainMemberService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:03:01
+ * @describe 订单表服务实现类
+ */
+@Slf4j
+@Service
+public class EventMainMemberServiceImpl extends ServiceImpl<EventMainMemberMapper, EventMainMemberDO>
+    implements EventMainMemberService {
+
+    @Resource
+    private EventMainMemberMapper eventMainMemberMapper;
+
+    /**
+     * 新增重点人群记录
+     * 
+     * @param eventMainMemberAddDTO
+     * @return 新增结果
+     */
+    public R add(EventMainMemberAddDTO eventMainMemberAddDTO) {
+        EventMainMemberDO eventMainMemberDO = new EventMainMemberDO();
+        BeanUtils.copyProperties(eventMainMemberAddDTO, eventMainMemberDO);
+        eventMainMemberDO.setCreateAt(new Date());
+        if (eventMainMemberMapper.insert(eventMainMemberDO) > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 修改重点人群记录
+     * 
+     * @param eventMainMemberEditDTO
+     * @return 维护结果
+     */
+    public R edit(EventMainMemberEditDTO eventMainMemberEditDTO) {
+        EventMainMemberDO eventMainMemberDO = new EventMainMemberDO();
+        BeanUtils.copyProperties(eventMainMemberEditDTO, eventMainMemberDO);
+        // eventMainMemberDO.setUpdateAt(new Date());
+        if (eventMainMemberMapper.updateById(eventMainMemberDO) > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 分页查找重点人群记录
+     * 
+     * @param pageEventMainMemberDTO
+     * @return 维护结果
+     */
+    public R<IPage<EventMainMemberVO>> query(PageEventMainMemberDTO pageEventMainMemberDTO) {
+        Page page = new Page(1, 10);
+        if (pageEventMainMemberDTO.getPageNum() != null) {
+            page.setCurrent(pageEventMainMemberDTO.getPageNum());
+        }
+        if (pageEventMainMemberDTO.getPageSize() != null) {
+            page.setSize(pageEventMainMemberDTO.getPageSize());
+        }
+        return R.ok(eventMainMemberMapper.findByPage(page, pageEventMainMemberDTO));
+    }
+
+    /**
+     * 删除重点人群记录
+     * 
+     * @param EventMainMemberDeleteDTO
+     * @return 平台用户信息
+     */
+    public R delete(EventMainMemberDeleteDTO EventMainMemberDeleteDTO) {
+        return R.fail();
+    }
+
+    /**
+     * 查询重点人群记录详细信息
+     * 
+     * @param id
+     *            重点人群记录 id
+     * @return 查找结果
+     */
+    public R<EventMainMemberDetailsVO> eventMainMemberDetails(Long id) {
+        EventMainMemberDO eventMainMemberDO = eventMainMemberMapper.selectById(id);
+        if (eventMainMemberDO != null) {
+            EventMainMemberDetailsVO eventMainMemberDetailsVO = new EventMainMemberDetailsVO();
+            BeanUtils.copyProperties(eventMainMemberDO, eventMainMemberDetailsVO);
+            return R.ok(eventMainMemberDetailsVO);
+        }
+        return R.fail();
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventResourceServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventResourceServiceImpl.java
new file mode 100644
index 0000000..5fbe3ff
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventResourceServiceImpl.java
@@ -0,0 +1,120 @@
+package com.panzhihua.service_grid.service.impl;
+
+import java.util.Date;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+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.model.dtos.grid.EventResourceAddDTO;
+import com.panzhihua.common.model.dtos.grid.EventResourceDeleteDTO;
+import com.panzhihua.common.model.dtos.grid.EventResourceEditDTO;
+import com.panzhihua.common.model.dtos.grid.PageEventResourceDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.EventResourceDetailsVO;
+import com.panzhihua.common.model.vos.grid.EventResourceVO;
+import com.panzhihua.service_grid.dao.EventResourceMapper;
+import com.panzhihua.service_grid.model.dos.EventResourceDO;
+import com.panzhihua.service_grid.service.EventResourceService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:03:01
+ * @describe 订单表服务实现类
+ */
+@Slf4j
+@Service
+public class EventResourceServiceImpl extends ServiceImpl<EventResourceMapper, EventResourceDO>
+    implements EventResourceService {
+
+    @Resource
+    private EventResourceMapper eventResourceMapper;
+
+    /**
+     * 新增事件或者走访中关联的图片音频和视频文件
+     * 
+     * @param eventResourceAddDTO
+     * @return 新增结果
+     */
+    @Override
+    public R add(EventResourceAddDTO eventResourceAddDTO) {
+        EventResourceDO eventResourceDO = new EventResourceDO();
+        BeanUtils.copyProperties(eventResourceAddDTO, eventResourceDO);
+        eventResourceDO.setCreateAt(new Date());
+        if (eventResourceMapper.insert(eventResourceDO) > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 修改事件或者走访中关联的图片音频和视频文件
+     * 
+     * @param eventResourceEditDTO
+     * @return 维护结果
+     */
+    @Override
+    public R edit(EventResourceEditDTO eventResourceEditDTO) {
+        EventResourceDO eventResourceDO = new EventResourceDO();
+        BeanUtils.copyProperties(eventResourceEditDTO, eventResourceDO);
+        // eventResourceDO.setUpdateAt(new Date());
+        if (eventResourceMapper.updateById(eventResourceDO) > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 分页查找事件或者走访中关联的图片音频和视频文件
+     * 
+     * @param pageEventResourceDTO
+     * @return 维护结果
+     */
+    @Override
+    public R<IPage<EventResourceVO>> query(PageEventResourceDTO pageEventResourceDTO) {
+        Page page = new Page(1, 10);
+        if (pageEventResourceDTO.getPageNum() != null) {
+            page.setCurrent(pageEventResourceDTO.getPageNum());
+        }
+        if (pageEventResourceDTO.getPageSize() != null) {
+            page.setSize(pageEventResourceDTO.getPageSize());
+        }
+        return R.ok(eventResourceMapper.findByPage(page, pageEventResourceDTO));
+    }
+
+    /**
+     * 删除事件或者走访中关联的图片音频和视频文件
+     * 
+     * @param EventResourceDeleteDTO
+     * @return 平台用户信息
+     */
+    @Override
+    public R delete(EventResourceDeleteDTO EventResourceDeleteDTO) {
+        return R.fail();
+    }
+
+    /**
+     * 查询事件或者走访中关联的图片音频和视频文件详细信息
+     * 
+     * @param id
+     *            事件或者走访中关联的图片音频和视频文件 id
+     * @return 查找结果
+     */
+    @Override
+    public R<EventResourceDetailsVO> eventResourceDetails(Long id) {
+        EventResourceDO eventResourceDO = eventResourceMapper.selectById(id);
+        if (eventResourceDO != null) {
+            EventResourceDetailsVO eventResourceDetailsVO = new EventResourceDetailsVO();
+            BeanUtils.copyProperties(eventResourceDO, eventResourceDetailsVO);
+            return R.ok(eventResourceDetailsVO);
+        }
+        return R.fail();
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventServiceImpl.java
new file mode 100644
index 0000000..e7d55dd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventServiceImpl.java
@@ -0,0 +1,2847 @@
+package com.panzhihua.service_grid.service.impl;
+
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.stream.Collectors;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.vos.community.screen.event.EventComprehensiveGovernanceStatisticsVO;
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+import com.panzhihua.common.model.vos.community.bigscreen.GridsGovernanceStatisticsVO;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.enums.EventType;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.dtos.community.ComMngPopulationDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.event.ScreenDrawEventListDTO;
+import com.panzhihua.common.model.dtos.community.bigscreen.event.ScreenEventListDTO;
+import com.panzhihua.common.model.dtos.grid.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActVO;
+import com.panzhihua.common.model.vos.community.screen.civil.CivilVillageStatisticsVO;
+import com.panzhihua.common.model.vos.community.screen.event.EventGridIncidentStatisticsVO;
+import com.panzhihua.common.model.vos.community.screen.event.EventLeftDownStatisticsVO;
+import com.panzhihua.common.model.vos.community.screen.event.EventListVO;
+import com.panzhihua.common.model.vos.grid.*;
+import com.panzhihua.common.model.vos.screen.*;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.GisPointUtil;
+import com.panzhihua.common.utlis.LngLatUtils;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_grid.dao.*;
+import com.panzhihua.service_grid.model.dos.*;
+import com.panzhihua.service_grid.service.*;
+
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.IdcardUtil;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @author cedoo 2021-04-14 15:03:01 订单表服务实现类
+ */
+@Slf4j
+@Service
+public class EventServiceImpl extends ServiceImpl<EventMapper, EventDO> implements EventService {
+
+    private final String moth_format_str = "yyyy-MM";
+    private final String[] monthStr = new String[] {"一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二"};
+    @Resource
+    private EventMapper eventMapper;
+    @Resource
+    private EventResourceService eventResourceService;
+    @Resource
+    private EventTransferRecordService eventTransferRecordService;
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private EventGridDataMapper eventGridDataMapper;
+    @Resource
+    private EventGridMemberRelationMapper eventGridMemberRelationMapper;
+    @Resource
+    private EventSpecialCrowdRecordService eventSpecialCrowdRecordService;
+    @Resource
+    private EventSpecialCrowdRecordMapper eventSpecialCrowdRecordMapper;
+    @Resource
+    private EventGridDataService eventGridDataService;
+    @Resource
+    private EventResourceMapper eventResourceMapper;
+
+    /**
+     * 分页查找事件
+     *
+     * @param pageEventDTO
+     * @return 维护结果
+     */
+    @Override
+    public R<IPage<EventVO>> query(PageEventDTO pageEventDTO) {
+        Page page = new Page(1, 10);
+        if (pageEventDTO.getPageNum() != null) {
+            page.setCurrent(pageEventDTO.getPageNum());
+        }
+        if (pageEventDTO.getPageSize() != null) {
+            page.setSize(pageEventDTO.getPageSize());
+        }
+        IPage<EventVO> ipage = eventMapper.findByPage(page, pageEventDTO);
+        if (ipage != null) {
+            List<EventVO> eventVOList = ipage.getRecords();
+            eventVOList.forEach(eventVO -> {
+                List<EventResourceDO> eventResourceDOList =
+                    eventResourceService.getBaseMapper().selectList(new LambdaQueryWrapper<EventResourceDO>()
+                        .eq(EventResourceDO::getClassification, 1).eq(EventResourceDO::getRefId, eventVO.getId()));
+                List<EventResourceVO> picList = new ArrayList<>();
+                List<EventResourceVO> audioList = new ArrayList<>();
+                List<EventResourceVO> videoList = new ArrayList<>();
+                eventResourceDOList.forEach(eventResourceDO -> {
+                    switch (eventResourceDO.getType()) {
+                        case 1:
+                            EventResourceVO picEventResourceVO = new EventResourceVO();
+                            BeanUtils.copyProperties(eventResourceDO, picEventResourceVO);
+                            picList.add(picEventResourceVO);
+                            break;
+                        case 2:
+                            EventResourceVO audioResourceVO = new EventResourceVO();
+                            BeanUtils.copyProperties(eventResourceDO, audioResourceVO);
+                            audioList.add(audioResourceVO);
+                            break;
+                        case 3:
+                            EventResourceVO videoResourceVO = new EventResourceVO();
+                            BeanUtils.copyProperties(eventResourceDO, videoResourceVO);
+                            videoList.add(videoResourceVO);
+                            break;
+                    }
+                });
+                eventVO.setAudios(audioList);
+                eventVO.setPics(picList);
+                eventVO.setVideos(videoList);
+
+                // 查询网格员头像
+                Map<String, String> userMap = eventMapper.getGridMemberImageUrl(eventVO.getGridMemberId());
+                if (StringUtils.isNotEmpty(userMap)) {
+                    eventVO.setGridMemberName(userMap.get("nick_name"));
+                    eventVO.setGridMemberImageUrl(userMap.get("image_url"));
+                }
+            });
+            return R.ok(ipage);
+        }
+        return R.fail();
+    }
+
+    /**
+     * 删除事件
+     *
+     * @param commonEventDeleteDTO
+     * @return 平台用户信息
+     */
+    @Override
+    public R delete(CommonEventDeleteDTO commonEventDeleteDTO) {
+        EventDO eventDO = eventMapper.selectById(commonEventDeleteDTO.getId());
+        if (eventDO == null) {
+            return R.fail("事件不存在");
+        }
+        if (eventDO.getEventStatus() != null
+            && (eventDO.getEventStatus().intValue() == 1 || eventDO.getEventStatus().intValue() == 4)) {// 草稿 或者 已撤销
+                                                                                                        // 的事件可以删除
+            eventDO.setEventStatus(3);// 逻辑删除
+            eventDO.setUpdateBy(commonEventDeleteDTO.getUserId());
+            int updated = this.getBaseMapper().updateById(eventDO);
+            return updated == 1 ? R.ok() : R.fail();
+        }
+        return R.fail("事件不是草稿/已撤销/无效状态, 不允许删除");
+    }
+
+    /**
+     * 查询事件详细信息
+     *
+     * @param id
+     *            事件 id
+     * @return 查找结果
+     */
+    @Override
+    public R<EventDetailsVO> eventDetails(Long id) {
+        EventDetailsVO eventDetailsVO = eventMapper.getById(id);
+        if (eventDetailsVO != null) {
+            EventGridDataDO eventGridDataDO = eventGridDataMapper.selectById(eventDetailsVO.getGridId());
+            if (eventGridDataDO != null) {
+                eventDetailsVO.setGridName(eventGridDataDO.getGridName());
+                eventDetailsVO.setCommunityId(eventGridDataDO.getGridCommunityId());
+            }
+
+            // 查询事件关联附件
+            List<EventResourceDO> eventResourceDOList =
+                eventResourceService.getBaseMapper().selectList(new LambdaQueryWrapper<EventResourceDO>()
+                    .eq(EventResourceDO::getClassification, 1).eq(EventResourceDO::getRefId, id));
+            List<EventResourceVO> picList = new ArrayList<>();
+            List<EventResourceVO> audioList = new ArrayList<>();
+            List<EventResourceVO> videoList = new ArrayList<>();
+            eventResourceDOList.forEach(eventResourceDO -> {
+                switch (eventResourceDO.getType()) {
+                    case 1:
+                        EventResourceVO picEventResourceVO = new EventResourceVO();
+                        BeanUtils.copyProperties(eventResourceDO, picEventResourceVO);
+                        picList.add(picEventResourceVO);
+                        break;
+                    case 2:
+                        EventResourceVO audioResourceVO = new EventResourceVO();
+                        BeanUtils.copyProperties(eventResourceDO, audioResourceVO);
+                        audioList.add(audioResourceVO);
+                        break;
+                    case 3:
+                        EventResourceVO videoResourceVO = new EventResourceVO();
+                        BeanUtils.copyProperties(eventResourceDO, videoResourceVO);
+                        videoList.add(videoResourceVO);
+                        break;
+                }
+            });
+            eventDetailsVO.setAudios(audioList);
+            eventDetailsVO.setPics(picList);
+            eventDetailsVO.setVideos(videoList);
+
+            // 查询事件流转记录
+            List<EventTransferRecordDO> eventTransferRecordDOList =
+                eventTransferRecordService.getBaseMapper().selectList(new LambdaQueryWrapper<EventTransferRecordDO>()
+                    .eq(EventTransferRecordDO::getEventId, id).orderByAsc(EventTransferRecordDO::getCreateAt));
+
+            List<EventTransferRecordVO> eventTransferRecordVOS = new ArrayList<>();
+            for (EventTransferRecordDO eventTransferRecordDO : eventTransferRecordDOList) {
+                EventTransferRecordVO eventTransferRecordVO = new EventTransferRecordVO();
+                BeanUtils.copyProperties(eventTransferRecordDO, eventTransferRecordVO);
+                List<EventResourceDO> eventTransferResourceDOList = eventResourceService.getBaseMapper()
+                    .selectList(new LambdaQueryWrapper<EventResourceDO>().eq(EventResourceDO::getClassification, 3)
+                        .eq(EventResourceDO::getRefId, eventTransferRecordDO.getId()));
+                List<EventResourceVO> transferPicList = new ArrayList<>();
+                List<EventResourceVO> transferAudioList = new ArrayList<>();
+                List<EventResourceVO> transferVideoList = new ArrayList<>();
+                eventTransferResourceDOList.forEach(eventResourceDO -> {
+                    switch (eventResourceDO.getType()) {
+                        case 1:
+                            EventResourceVO picEventResourceVO = new EventResourceVO();
+                            BeanUtils.copyProperties(eventResourceDO, picEventResourceVO);
+                            transferPicList.add(picEventResourceVO);
+                            break;
+                        case 2:
+                            EventResourceVO audioResourceVO = new EventResourceVO();
+                            BeanUtils.copyProperties(eventResourceDO, audioResourceVO);
+                            transferAudioList.add(audioResourceVO);
+                            break;
+                        case 3:
+                            EventResourceVO videoResourceVO = new EventResourceVO();
+                            BeanUtils.copyProperties(eventResourceDO, videoResourceVO);
+                            transferVideoList.add(videoResourceVO);
+                            break;
+                    }
+                });
+                eventTransferRecordVO.setAudios(transferAudioList);
+                eventTransferRecordVO.setPics(transferPicList);
+                eventTransferRecordVO.setVideos(transferVideoList);
+                eventTransferRecordVOS.add(eventTransferRecordVO);
+            }
+            eventDetailsVO.setTrans(eventTransferRecordVOS);
+
+            // 查询网格员头像,姓名
+            Map<String, Object> gridMember = eventMapper.getUserBaseInfo(eventDetailsVO.getGridMemberId());
+            if (!CollectionUtils.isEmpty(gridMember)) {
+                eventDetailsVO.setGridMemberName(
+                    gridMember.get("nick_name") == null ? "" : gridMember.get("nick_name").toString());
+                eventDetailsVO.setGridMemberImageUrl(
+                    gridMember.get("image_url") == null ? "" : gridMember.get("image_url").toString());
+            }
+            if (Objects.equals(eventDetailsVO.getGridMemberId(), eventDetailsVO.getCreateBy())) {
+                eventDetailsVO.setCreator(eventDetailsVO.getGridMemberName());
+            } else {
+                Map<String, Object> createUser = eventMapper.getUserBaseInfo(eventDetailsVO.getCreateBy());
+                eventDetailsVO
+                    .setCreator(createUser.get("nick_name") == null ? "" : createUser.get("nick_name").toString());
+            }
+
+            // 当事件为特殊人群上报时,需要查询事件与人口关联关系
+            if (eventDetailsVO.getEventType() != null && eventDetailsVO.getEventType().equals(6)) {
+                List<EventSpecialPopulationDetailsVO> specialPopulationList =
+                    eventSpecialCrowdRecordMapper.getSpecialPopulationIds(eventDetailsVO.getId());
+                if (!specialPopulationList.isEmpty()) {
+                    specialPopulationList.forEach(special -> {
+                        special.setAge(IdcardUtil.getAgeByIdCard(special.getIdCard()));
+                    });
+                }
+                eventDetailsVO.setPopulationList(specialPopulationList);
+            }
+            return R.ok(eventDetailsVO);
+        }
+        return R.fail("事件不存在");
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R addCommon(CommonEventAddDTO commonEventAddDTO) {
+        EventDO eventDO = new EventDO();
+        BeanUtils.copyProperties(commonEventAddDTO, eventDO);
+        if (commonEventAddDTO instanceof CommonEventCommunityAddDTO) {
+            CommonEventCommunityAddDTO commonEventCommunityAddDTO = (CommonEventCommunityAddDTO)commonEventAddDTO;
+            eventDO.setGridMemberId(commonEventCommunityAddDTO.getGridMemberId());
+        } else {
+            eventDO.setGridMemberId(commonEventAddDTO.getUserId());
+        }
+        EventGridDataDO eventGridDataDO = eventGridDataMapper.selectById(commonEventAddDTO.getGridId());
+        if (eventGridDataDO == null) {
+            return R.fail("网格不存在");
+        }
+        eventDO.setGridMemberCommunity(eventGridDataDO.getGridCommunityId());
+        eventDO.setGridMemberStreet(eventGridDataDO.getGridStreetId());
+
+        // 检查特殊人群上报时参数
+        // if(commonEventAddDTO.getEventType().equals(6)){
+        // if(commonEventAddDTO.getPopulationIds() == null || commonEventAddDTO.getPopulationIds().size() <= 0){
+        // return R.fail("上报人员为空");
+        // }
+        // }
+
+        eventDO.setEventCategory(1l);// 办件事件
+        eventDO.setEventStatus(2);// 事件状态 2发布
+        eventDO.setProcessType(1);// 网格员处理
+        eventDO.setCommunityProcess(0);// 非 社区处理
+        eventDO.setEventProcessStatus(1);
+        eventDO.setGridMemberName(commonEventAddDTO.getUserName());
+        eventDO.setGridMemberTelephone(commonEventAddDTO.getPhone());
+        eventDO.setCreateBy(commonEventAddDTO.getUserId());
+        eventDO.setSubmitDate(new Date());
+        eventDO.setOrderSn(getEventOrderSn(eventDO.getEventType()));
+
+        if (eventMapper.insert(eventDO) == 1) {
+            // 如果是特殊人群,则新增特殊人群与事件关系
+            if (commonEventAddDTO.getEventType().equals(6)
+                    && commonEventAddDTO.getPopulationIds() != null
+                    && commonEventAddDTO.getPopulationIds().size() > 0) {
+                if (commonEventAddDTO.getPopulationIds() != null && commonEventAddDTO.getPopulationIds().size() > 0) {
+                    List<EventSpecialCrowdRecordDO> crowdRecordList = new ArrayList<>();
+                    commonEventAddDTO.getPopulationIds().forEach(populationId -> {
+                        EventSpecialCrowdRecordDO specialCrowdRecordDO = new EventSpecialCrowdRecordDO();
+                        specialCrowdRecordDO.setEventId(eventDO.getId());
+                        specialCrowdRecordDO.setPopulationId(populationId);
+                        specialCrowdRecordDO.setCreateAt(new Date());
+                        crowdRecordList.add(specialCrowdRecordDO);
+                    });
+                    // 添加特殊人群上报事件与人口关系
+                    eventSpecialCrowdRecordService.saveBatch(crowdRecordList);
+                }
+            }
+
+            // 添加音频
+            if (StringUtils.isNotEmpty(commonEventAddDTO.getAudio())) {
+                EventResourceDO eventResourceDO = new EventResourceDO();
+                eventResourceDO.setClassification(1);
+                eventResourceDO.setType(2);
+                eventResourceDO.setUrl(commonEventAddDTO.getAudio());
+                eventResourceDO.setRefId(eventDO.getId());
+                eventResourceDO.setCreateBy(commonEventAddDTO.getUserId());
+                eventResourceDO.setResourceTime(commonEventAddDTO.getAudioTime());
+                eventResourceDO.setResourceName(
+                    commonEventAddDTO.getAudio().substring(commonEventAddDTO.getAudio().lastIndexOf("/") + 1));
+                int audioAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
+                if (audioAdd != 1) {
+                    throw new ServiceException("添加音频失败");
+                }
+            }
+            // 添加视频
+            if (StringUtils.isNotEmpty(commonEventAddDTO.getVideo())) {
+                EventResourceDO eventResourceDO = new EventResourceDO();
+                eventResourceDO.setClassification(1);
+                eventResourceDO.setType(3);
+                eventResourceDO.setUrl(commonEventAddDTO.getVideo());
+                eventResourceDO.setRefId(eventDO.getId());
+                eventResourceDO.setCreateBy(commonEventAddDTO.getUserId());
+                eventResourceDO.setResourceTime(commonEventAddDTO.getVideoTime());
+                eventResourceDO.setResourceName(
+                    commonEventAddDTO.getVideo().substring(commonEventAddDTO.getVideo().lastIndexOf("/") + 1));
+                int videoAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
+                if (videoAdd != 1) {
+                    throw new ServiceException("添加视频失败");
+                }
+            }
+            // 添加图片
+            if (StringUtils.isNotEmpty(commonEventAddDTO.getPics())) {
+                String[] pica = commonEventAddDTO.getPics().split(",");
+                for (int i = 0; i < pica.length; i++) {
+                    EventResourceDO eventResourceDO = new EventResourceDO();
+                    eventResourceDO.setClassification(1);
+                    eventResourceDO.setType(1);
+                    eventResourceDO.setUrl(pica[i]);
+                    eventResourceDO.setRefId(eventDO.getId());
+                    eventResourceDO.setCreateBy(commonEventAddDTO.getUserId());
+                    eventResourceDO.setResourceName(pica[i].substring(pica[i].lastIndexOf("/") + 1));
+                    int picAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
+                    if (picAdd != 1) {
+                        throw new ServiceException("添加图片失败");
+                    }
+                }
+            }
+            addReleaseRecord(eventDO.getId(), commonEventAddDTO.getUserId(), commonEventAddDTO.getUserName());
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R saveDraft(CommonEventEditDTO commonEventEditDTO) {
+        EventGridDataDO eventGridDataDO = eventGridDataMapper.selectById(commonEventEditDTO.getGridId());
+        if (eventGridDataDO == null) {
+            return R.fail("网格不存在");
+        }
+
+        if (commonEventEditDTO.getId() == null) {
+            // 检查特殊人群上报时参数
+//            if (commonEventEditDTO.getEventType().equals(6)) {
+//                if (commonEventEditDTO.getPopulationIds().isEmpty()) {
+//                    return R.fail("上报人员为空");
+//                }
+//            }
+
+            EventDO eventDO = new EventDO();
+            BeanUtils.copyProperties(commonEventEditDTO, eventDO);
+            eventDO.setGridMemberId(commonEventEditDTO.getUserId());
+            eventDO.setEventCategory(1l);// 办件事件
+            eventDO.setEventStatus(1);// 事件状态 1草稿
+            eventDO.setProcessType(1);// 网格员处理
+            eventDO.setCommunityProcess(0);// 非 社区处理
+            eventDO.setCreateBy(commonEventEditDTO.getUserId());
+            eventDO.setGridMemberId(commonEventEditDTO.getUserId());
+            eventDO.setGridMemberName(commonEventEditDTO.getUserName());
+            eventDO.setGridMemberTelephone(commonEventEditDTO.getPhone());
+            eventDO.setEventDealStatus(5);
+            if (eventMapper.insert(eventDO) > 0) {
+
+                // 如果是特殊人群,则新增特殊人群与事件关系
+                if (commonEventEditDTO.getEventType().equals(6) && commonEventEditDTO.getPopulationIds() != null
+                        && commonEventEditDTO.getPopulationIds().size() > 0) {
+                    List<EventSpecialCrowdRecordDO> crowdRecordList = new ArrayList<>();
+                    commonEventEditDTO.getPopulationIds().forEach(populationId -> {
+                        EventSpecialCrowdRecordDO specialCrowdRecordDO = new EventSpecialCrowdRecordDO();
+                        specialCrowdRecordDO.setEventId(eventDO.getId());
+                        specialCrowdRecordDO.setPopulationId(populationId);
+                        specialCrowdRecordDO.setCreateAt(new Date());
+                        crowdRecordList.add(specialCrowdRecordDO);
+                    });
+                    // 添加特殊人群上报事件与人口关系
+                    eventSpecialCrowdRecordService.saveBatch(crowdRecordList);
+                }
+
+                // 添加音频
+                if (StringUtils.isNotEmpty(commonEventEditDTO.getAudio())) {
+                    EventResourceDO eventResourceDO = new EventResourceDO();
+                    eventResourceDO.setClassification(1);
+                    eventResourceDO.setType(2);
+                    eventResourceDO.setRefId(eventDO.getId());
+                    eventResourceDO.setUrl(commonEventEditDTO.getAudio());
+                    eventResourceDO.setCreateBy(commonEventEditDTO.getUserId());
+                    eventResourceDO.setResourceTime(commonEventEditDTO.getAudioTime());
+                    int audioAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
+                    if (audioAdd != 1) {
+                        throw new ServiceException("添加音频失败");
+                    }
+                }
+                // 添加视频
+                if (StringUtils.isNotEmpty(commonEventEditDTO.getVideo())) {
+                    EventResourceDO eventResourceDO = new EventResourceDO();
+                    eventResourceDO.setClassification(1);
+                    eventResourceDO.setType(3);
+                    eventResourceDO.setRefId(eventDO.getId());
+                    eventResourceDO.setUrl(commonEventEditDTO.getVideo());
+                    eventResourceDO.setCreateBy(commonEventEditDTO.getUserId());
+                    eventResourceDO.setResourceTime(commonEventEditDTO.getVideoTime());
+                    int videoAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
+                    if (videoAdd != 1) {
+                        throw new ServiceException("添加视频失败");
+                    }
+                }
+                // 添加图片
+                if (StringUtils.isNotEmpty(commonEventEditDTO.getPics())) {
+                    String[] pica = commonEventEditDTO.getPics().split(",");
+                    for (int i = 0; i < pica.length; i++) {
+                        EventResourceDO eventResourceDO = new EventResourceDO();
+                        eventResourceDO.setClassification(1);
+                        eventResourceDO.setType(1);
+                        eventResourceDO.setRefId(eventDO.getId());
+                        eventResourceDO.setUrl(pica[i]);
+                        eventResourceDO.setCreateBy(commonEventEditDTO.getUserId());
+                        int picAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
+                        if (picAdd != 1) {
+                            throw new ServiceException("添加图片失败");
+                        }
+                    }
+                }
+                return R.ok();
+            }
+            return R.fail();
+        } else {
+            // 编辑原来的
+            EventDO eventDO = eventMapper.selectById(commonEventEditDTO.getId());
+            if (eventDO.getEventStatus() != null && eventDO.getEventStatus() != 1
+                && eventDO.getEventDealStatus() != 6) {
+                return R.fail("保存草稿失败,事件不是草稿/已撤销状态");
+            }
+            BeanUtils.copyProperties(commonEventEditDTO, eventDO);
+            eventDO.setGridMemberId(commonEventEditDTO.getUserId());
+            eventDO.setEventCategory(1l);// 办件事件
+            eventDO.setEventStatus(1);// 事件状态 2发布
+            eventDO.setProcessType(1);// 网格员处理
+            eventDO.setCommunityProcess(0);// 非 社区处理
+            eventDO.setUpdateBy(commonEventEditDTO.getUserId());
+            eventDO.setEventDealStatus(5);
+            if (eventMapper.updateById(eventDO) > 0) {
+                int deleted = eventResourceService.getBaseMapper().delete(new LambdaQueryWrapper<EventResourceDO>()
+                    .eq(EventResourceDO::getClassification, 1).eq(EventResourceDO::getRefId, eventDO.getId()));
+                // 添加音频
+                if (StringUtils.isNotEmpty(commonEventEditDTO.getAudio())) {
+                    EventResourceDO eventResourceDO = new EventResourceDO();
+                    eventResourceDO.setClassification(1);
+                    eventResourceDO.setType(2);
+                    eventResourceDO.setRefId(eventDO.getId());
+                    eventResourceDO.setUrl(commonEventEditDTO.getAudio());
+                    eventResourceDO.setCreateBy(commonEventEditDTO.getUserId());
+                    eventResourceDO.setResourceTime(commonEventEditDTO.getAudioTime());
+                    int audioAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
+                    if (audioAdd != 1) {
+                        throw new ServiceException("添加音频失败");
+                    }
+                }
+                // 添加视频
+                if (StringUtils.isNotEmpty(commonEventEditDTO.getVideo())) {
+                    EventResourceDO eventResourceDO = new EventResourceDO();
+                    eventResourceDO.setClassification(1);
+                    eventResourceDO.setType(3);
+                    eventResourceDO.setRefId(eventDO.getId());
+                    eventResourceDO.setUrl(commonEventEditDTO.getVideo());
+                    eventResourceDO.setCreateBy(commonEventEditDTO.getUserId());
+                    eventResourceDO.setResourceTime(commonEventEditDTO.getVideoTime());
+                    int videoAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
+                    if (videoAdd != 1) {
+                        throw new ServiceException("添加视频失败");
+                    }
+                }
+                // 添加图片
+                if (StringUtils.isNotEmpty(commonEventEditDTO.getPics())) {
+                    String[] pica = commonEventEditDTO.getPics().split(",");
+                    for (int i = 0; i < pica.length; i++) {
+                        EventResourceDO eventResourceDO = new EventResourceDO();
+                        eventResourceDO.setClassification(1);
+                        eventResourceDO.setType(1);
+                        eventResourceDO.setRefId(eventDO.getId());
+                        eventResourceDO.setUrl(pica[i]);
+                        eventResourceDO.setCreateBy(commonEventEditDTO.getUserId());
+                        int picAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
+                        if (picAdd != 1) {
+                            throw new ServiceException("添加图片失败");
+                        }
+                    }
+                }
+                return R.ok();
+            }
+            return R.fail();
+        }
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R report(CommonEventReportDTO commonEventReportDTO) {
+        EventDO eventDO = this.getBaseMapper().selectById(commonEventReportDTO.getEventId());
+        if (eventDO == null) {
+            return R.fail("事件不存在");
+        }
+        if (eventDO.getEventStatus() != 2) {
+            return R.fail("当前事件不能上报社区");
+        }
+        if (eventDO.getProcessType() == 2) {
+            return R.fail("当前事件已交由社区处理");
+        }
+
+        R r = communityService.detailCommunity(commonEventReportDTO.getToId());
+        if (!R.isOk(r)) {
+            return R.fail("社区不存在");
+        }
+        ComActVO comActVO = JSONObject.parseObject(JSONObject.toJSONString(r.getData()), ComActVO.class);
+        if (comActVO == null) {
+            return R.fail("社区不存在");
+        }
+        eventDO.setCommunityProcess(1); // 社区处理
+        eventDO.setProcessType(2); // 当前处理对象: 社区处理
+        eventDO.setCommunityProcess(1);
+        eventDO.setEventProcessStatus(1); // 待处理
+        eventDO.setUpdateBy(commonEventReportDTO.getUserId());
+        eventDO.setSubmitDate(new Date());
+        int updated = this.getBaseMapper().updateById(eventDO);
+        if (updated != 1) {
+            throw new ServiceException("更新突发事件状态更新失败");
+        }
+        addTransferRecord(eventDO.getId(), commonEventReportDTO.getToId(), comActVO.getName(), 2,
+            commonEventReportDTO.getProcessResult(), commonEventReportDTO.getUserId(),
+            commonEventReportDTO.getUserName(), 2);
+        return R.ok();
+
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R emergenciesRevoke(EventRevokeDTO eventRevokeDTO) {
+        EventDO eventDO = this.getBaseMapper().selectById(eventRevokeDTO.getId());
+        if (eventDO == null) {
+            return R.fail("事件不存在");
+        }
+        boolean canRevoke = eventDO.getEventStatus() == 2; // 发布状态
+        if (!canRevoke) {
+            return R.fail("当前事件不允许·");
+        }
+        Integer eventProcessStatus = eventDO.getEventProcessStatus() != null ? eventDO.getEventProcessStatus() : -1;
+        if (eventProcessStatus == 2 || eventProcessStatus == 3) { // 已解决 或者 待验证 不允许撤销
+            return R.fail("当前事件不允许撤销");
+        }
+        eventDO.setEventStatus(4);
+        eventDO.setUpdateBy(eventRevokeDTO.getUserId());
+        eventDO.setProcessType(1);// 网格员处理
+        eventDO.setCommunityProcess(0);// 非 社区处理
+        eventDO.setRevokeType(eventRevokeDTO.getRevokeType());
+        eventDO.setRevokeId(eventRevokeDTO.getRevokeId());
+        int updated = this.getBaseMapper().updateById(eventDO);
+        if (updated == 1) {
+            addTransferRecord(eventDO.getId(), eventRevokeDTO.getUserId(), eventRevokeDTO.getUserName(), 1, "撤销成功",
+                eventRevokeDTO.getUserId(), eventRevokeDTO.getUserName(), 7);
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R dealEvent(CommonEventDealDTO commonEventDealDTO) {
+        EventDO eventDO = this.getBaseMapper().selectById(commonEventDealDTO.getId());
+        if (eventDO == null) {
+            return R.fail("事件不存在");
+        }
+        boolean canDealByUser =
+            (eventDO.getEventStatus() == 2 || eventDO.getEventStatus() == 4) && eventDO.getEventProcessStatus() == 1;
+        if (!canDealByUser) {
+            if (eventDO.getEventStatus() != 2) {
+                return R.fail("事件不是发布/待处理状态");
+            }
+            if (eventDO.getEventProcessStatus() != 1) {
+                return R.fail("事件不是待处理状态");
+            }
+            return R.fail("事件当前不可自处理");
+        }
+
+        eventDO.setEventProcessStatus(2);// 2已解决
+        eventDO.setUpdateBy(commonEventDealDTO.getUserId());
+
+        // 更新处理信息
+        eventDO.setProcessUserId(commonEventDealDTO.getUserId());
+        eventDO.setProcessUserName(commonEventDealDTO.getUserName());
+        eventDO.setProcessDate(new Date());
+        eventDO.setProcessDesc(commonEventDealDTO.getProcessResult());
+
+        int updated = this.getBaseMapper().updateById(eventDO);
+        if (updated != 1) {
+            return R.fail("更新事件状态失败");
+        }
+        Integer processType = -1;
+        if (eventDO.getInvalid() != null) {
+            processType = 5;
+        } else {
+            processType = 1;
+        }
+        EventTransferRecordDO transferRecordDO =
+            addTransferRecord(eventDO.getId(), commonEventDealDTO.getUserId(), commonEventDealDTO.getUserName(), 1,
+                "网格员自处理完成", commonEventDealDTO.getUserId(), commonEventDealDTO.getUserName(), processType);
+        if (transferRecordDO != null && transferRecordDO.getId() != null) {
+            // 添加音频
+            if (StringUtils.isNotEmpty(commonEventDealDTO.getAudio())) {
+                EventResourceDO eventResourceDO = new EventResourceDO();
+                eventResourceDO.setClassification(3);
+                eventResourceDO.setType(2);
+                eventResourceDO.setUrl(commonEventDealDTO.getAudio());
+                eventResourceDO.setRefId(transferRecordDO.getId());
+                eventResourceDO.setCreateBy(commonEventDealDTO.getUserId());
+                eventResourceDO.setResourceTime(commonEventDealDTO.getAudioTime());
+                int audioAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
+                if (audioAdd != 1) {
+                    throw new ServiceException("添加音频失败");
+                }
+            }
+            // 添加视频
+            if (StringUtils.isNotEmpty(commonEventDealDTO.getVideo())) {
+                EventResourceDO eventResourceDO = new EventResourceDO();
+                eventResourceDO.setClassification(3);
+                eventResourceDO.setType(3);
+                eventResourceDO.setUrl(commonEventDealDTO.getVideo());
+                eventResourceDO.setRefId(transferRecordDO.getId());
+                eventResourceDO.setCreateBy(commonEventDealDTO.getUserId());
+                eventResourceDO.setResourceTime(commonEventDealDTO.getVideoTime());
+                int videoAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
+                if (videoAdd != 1) {
+                    throw new ServiceException("添加视频失败");
+                }
+            }
+            // 添加图片
+            if (StringUtils.isNotEmpty(commonEventDealDTO.getPics())) {
+                String[] pica = commonEventDealDTO.getPics().split(",");
+                for (int i = 0; i < pica.length; i++) {
+                    EventResourceDO eventResourceDO = new EventResourceDO();
+                    eventResourceDO.setClassification(3);
+                    eventResourceDO.setType(1);
+                    eventResourceDO.setUrl(pica[i]);
+                    eventResourceDO.setRefId(transferRecordDO.getId());
+                    eventResourceDO.setCreateBy(commonEventDealDTO.getUserId());
+                    int picAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
+                    if (picAdd != 1) {
+                        throw new ServiceException("添加图片失败");
+                    }
+                }
+            }
+
+            Long transferRecordId = transferRecordDO.getId();
+            EventDO eventDOToUpdate = this.getBaseMapper().selectById(commonEventDealDTO.getId());
+            eventDOToUpdate.setProcessRecordId(transferRecordId);
+            int transferRecordUpdated = this.getBaseMapper().updateById(eventDOToUpdate);
+            if (transferRecordUpdated != 1) {
+                throw new ServiceException("更新事件处理流程失败");
+            }
+
+            return R.ok();
+        } else {
+            throw new ServiceException("处理事件记录出错");
+        }
+    }
+
+    @Override
+    public R verifyEvent(CommonEventVerifyDTO commonEventVerifyDTO) {
+        EventDO eventDO = this.getBaseMapper().selectById(commonEventVerifyDTO.getId());
+        boolean canVerifyByUser = eventDO.getEventProcessStatus() == 3;
+        if (!canVerifyByUser) {
+            return R.fail("当前不是待验证状态");
+        }
+        boolean processTypeRight = eventDO.getProcessType() == 1;
+        if (!processTypeRight) {
+            return R.fail("当前处理对象不是网格员");
+        }
+
+        eventDO.setEventProcessStatus(2);// 2已解决
+        eventDO.setUpdateBy(commonEventVerifyDTO.getUserId());
+        int updated = this.getBaseMapper().updateById(eventDO);
+        if (updated != 1) {
+            return R.fail("更新事件状态失败");
+        }
+        addTransferRecord(eventDO.getId(), commonEventVerifyDTO.getUserId(), commonEventVerifyDTO.getUserName(), 1,
+            commonEventVerifyDTO.getProcessResult(), commonEventVerifyDTO.getUserId(),
+            commonEventVerifyDTO.getUserName(), 6);
+        return R.ok();
+    }
+
+    @Override
+    public R republishEvent(CommonEventRepublishDTO commonEventRepublishDTO) {
+        EventDO eventDO = this.getBaseMapper().selectById(commonEventRepublishDTO.getId());
+        // boolean canRepublishByUser = eventDO.getEventStatus() == 4 || eventDO.getEventStatus() == 1;
+        boolean canRepublishByUser = eventDO.getEventDealStatus() == 6 | eventDO.getEventDealStatus() == 5; // 已失效状态
+        if (!canRepublishByUser) {
+            return R.fail("当前不是撤销/草稿状态");
+        }
+
+        if (eventDO.getEventCategory().equals(2L)) {// 宣传教育
+            eventDO.setEventDealStatus(8);
+        } else {
+            eventDO.setEventProcessStatus(1); // 待解决
+            eventDO.setProcessType(1); // 网格员处理
+        }
+        eventDO.setEventStatus(2);// 2 发布
+        eventDO.setUpdateBy(commonEventRepublishDTO.getUserId());
+
+        int updated = this.getBaseMapper().updateById(eventDO);
+        if (updated != 1) {
+            return R.fail("更新事件状态失败");
+        }
+        addTransferRecord(eventDO.getId(), commonEventRepublishDTO.getUserId(), commonEventRepublishDTO.getUserName(),
+            1, "重新发布已撤销事件", commonEventRepublishDTO.getUserId(), commonEventRepublishDTO.getUserName(), 8);
+        return R.ok();
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R draftRelease(CommonEventPublicDTO commonEventPublicDTO) {
+        EventDO eventDO = this.getBaseMapper().selectById(commonEventPublicDTO.getId());
+        boolean draftCanRelease = eventDO.getEventStatus() == 1;
+        if (!draftCanRelease) {
+            return R.fail("当前不是草稿状态");
+        }
+        eventDO.setOrderSn(getEventOrderSn(eventDO.getEventType()));
+        eventDO.setEventStatus(2);// 事件状态 2发布
+        eventDO.setProcessType(1);// 当前处理对象类型:网格员处理
+        eventDO.setCommunityProcess(0);// 非 社区处理
+        eventDO.setEventProcessStatus(1);// 待处理
+        eventDO.setUpdateBy(commonEventPublicDTO.getUserId());
+        int updated = this.getBaseMapper().updateById(eventDO);
+        if (updated != 1) {
+            return R.fail("更新事件状态失败");
+        }
+        addReleaseRecord(eventDO.getId(), commonEventPublicDTO.getUserId(), commonEventPublicDTO.getUserName());
+        return R.ok();
+    }
+
+    /**
+     * 生成服务单号
+     *
+     * @param eventType
+     *            事件类型,宣传事件默认为20
+     * @return
+     */
+    private String getEventOrderSn(Integer eventType) {
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
+        if (eventType == null) {
+            eventType = 20;
+        }
+        String pre = String.format(simpleDateFormat.format(new Date()) + "%02d", eventType);
+        Integer todayCount =
+            this.getBaseMapper().selectCount(new LambdaQueryWrapper<EventDO>().likeRight(EventDO::getOrderSn, pre));
+        String orderSn = String.format(pre + "%04d", todayCount + 1);
+        return orderSn;
+    }
+
+    @Override
+    public R saveSpecialDraft(SpecialEventEditDTO specialEventEditDTO) {
+        EventGridDataDO eventGridDataDO = eventGridDataMapper.selectById(specialEventEditDTO.getGridId());
+        if (eventGridDataDO == null) {
+            return R.fail("网格不存在");
+        }
+        R rtVal = R.fail();
+        if (specialEventEditDTO.getId() == null) {
+            EventDO eventDO = new EventDO();
+            BeanUtils.copyProperties(specialEventEditDTO, eventDO);
+            eventDO.setGridMemberId(specialEventEditDTO.getUserId());
+            eventDO.setEventCategory(1l);// 办件事件
+            eventDO.setEventType(EventType.SPECIAL);// 特殊人群信息上报-事件分类
+            eventDO.setEventStatus(1);// 事件状态 1草稿
+            eventDO.setProcessType(1);// 网格员处理
+            eventDO.setCommunityProcess(0);// 非 社区处理
+            eventDO.setCreateBy(specialEventEditDTO.getUserId());
+            eventDO.setEventDealStatus(5);// 草稿状态
+            if (eventMapper.insert(eventDO) > 0) {
+                // 添加音频
+                if (StringUtils.isNotEmpty(specialEventEditDTO.getAudio())) {
+                    EventResourceDO eventResourceDO = new EventResourceDO();
+                    eventResourceDO.setClassification(1);
+                    eventResourceDO.setType(2);
+                    eventResourceDO.setRefId(eventDO.getId());
+                    eventResourceDO.setUrl(specialEventEditDTO.getAudio());
+                    eventResourceDO.setCreateBy(specialEventEditDTO.getUserId());
+                    eventResourceDO.setResourceTime(specialEventEditDTO.getAudioTime());
+                    int audioAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
+                    if (audioAdd != 1) {
+                        throw new ServiceException("添加音频失败");
+                    }
+                }
+                // 添加视频
+                if (StringUtils.isNotEmpty(specialEventEditDTO.getVideo())) {
+                    EventResourceDO eventResourceDO = new EventResourceDO();
+                    eventResourceDO.setClassification(1);
+                    eventResourceDO.setType(3);
+                    eventResourceDO.setRefId(eventDO.getId());
+                    eventResourceDO.setUrl(specialEventEditDTO.getVideo());
+                    eventResourceDO.setCreateBy(specialEventEditDTO.getUserId());
+                    eventResourceDO.setResourceTime(specialEventEditDTO.getVideoTime());
+                    int videoAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
+                    if (videoAdd != 1) {
+                        throw new ServiceException("添加视频失败");
+                    }
+                }
+                // 添加图片
+                if (StringUtils.isNotEmpty(specialEventEditDTO.getPics())) {
+                    String[] pica = specialEventEditDTO.getPics().split(",");
+                    for (int i = 0; i < pica.length; i++) {
+                        EventResourceDO eventResourceDO = new EventResourceDO();
+                        eventResourceDO.setClassification(1);
+                        eventResourceDO.setType(1);
+                        eventResourceDO.setRefId(eventDO.getId());
+                        eventResourceDO.setUrl(pica[i]);
+                        eventResourceDO.setCreateBy(specialEventEditDTO.getUserId());
+                        int picAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
+                        if (picAdd != 1) {
+                            throw new ServiceException("添加图片失败");
+                        }
+                    }
+                }
+                rtVal = R.ok();
+            }
+            rtVal = R.fail();
+        } else {
+            // 编辑原来的
+            EventDO eventDO = eventMapper.selectById(specialEventEditDTO.getId());
+            BeanUtils.copyProperties(specialEventEditDTO, eventDO);
+            eventDO.setGridMemberId(specialEventEditDTO.getUserId());
+            eventDO.setEventCategory(1l);// 办件事件
+            eventDO.setEventStatus(1);// 事件状态 1草稿
+            eventDO.setProcessType(1);// 网格员处理
+            eventDO.setCommunityProcess(0);// 非 社区处理
+            eventDO.setUpdateBy(specialEventEditDTO.getUserId());
+            eventDO.setEventDealStatus(5);// 草稿状态
+            if (eventMapper.updateById(eventDO) > 0) {
+                int deleted = eventResourceService.getBaseMapper().delete(new LambdaQueryWrapper<EventResourceDO>()
+                    .eq(EventResourceDO::getClassification, 1).eq(EventResourceDO::getRefId, eventDO.getId()));
+                // 添加音频
+                if (StringUtils.isNotEmpty(specialEventEditDTO.getAudio())) {
+                    EventResourceDO eventResourceDO = new EventResourceDO();
+                    eventResourceDO.setClassification(1);
+                    eventResourceDO.setType(2);
+                    eventResourceDO.setRefId(eventDO.getId());
+                    eventResourceDO.setUrl(specialEventEditDTO.getAudio());
+                    eventResourceDO.setCreateBy(specialEventEditDTO.getUserId());
+                    eventResourceDO.setResourceTime(specialEventEditDTO.getAudioTime());
+                    int audioAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
+                    if (audioAdd != 1) {
+                        throw new ServiceException("添加音频失败");
+                    }
+                }
+                // 添加视频
+                if (StringUtils.isNotEmpty(specialEventEditDTO.getVideo())) {
+                    EventResourceDO eventResourceDO = new EventResourceDO();
+                    eventResourceDO.setClassification(1);
+                    eventResourceDO.setType(3);
+                    eventResourceDO.setRefId(eventDO.getId());
+                    eventResourceDO.setUrl(specialEventEditDTO.getVideo());
+                    eventResourceDO.setCreateBy(specialEventEditDTO.getUserId());
+                    eventResourceDO.setResourceTime(specialEventEditDTO.getVideoTime());
+                    int videoAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
+                    if (videoAdd != 1) {
+                        throw new ServiceException("添加视频失败");
+                    }
+                }
+                // 添加图片
+                if (StringUtils.isNotEmpty(specialEventEditDTO.getPics())) {
+                    String[] pica = specialEventEditDTO.getPics().split(",");
+                    for (int i = 0; i < pica.length; i++) {
+                        EventResourceDO eventResourceDO = new EventResourceDO();
+                        eventResourceDO.setClassification(1);
+                        eventResourceDO.setType(1);
+                        eventResourceDO.setRefId(eventDO.getId());
+                        eventResourceDO.setUrl(pica[i]);
+                        eventResourceDO.setCreateBy(specialEventEditDTO.getUserId());
+                        int picAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
+                        if (picAdd != 1) {
+                            throw new ServiceException("添加图片失败");
+                        }
+                    }
+                }
+                rtVal = R.ok();
+            }
+            rtVal = R.fail();
+        }
+        if (R.isOk(rtVal)) {
+            // TODO 处理特殊人群实有人口数据
+
+        }
+        return rtVal;
+    }
+
+    @Override
+    public R addSpecial(SpecialEventAddDTO specialEventAddDTO) {
+        EventGridDataDO eventGridDataDO = eventGridDataMapper.selectById(specialEventAddDTO.getGridId());
+        if (eventGridDataDO == null) {
+            return R.fail("网格不存在");
+        }
+        R rtVal = R.fail();
+        EventDO eventDO = new EventDO();
+        BeanUtils.copyProperties(specialEventAddDTO, eventDO);
+        eventDO.setGridMemberId(specialEventAddDTO.getUserId());
+        eventDO.setEventCategory(1l);// 办件事件
+        eventDO.setEventType(EventType.SPECIAL);// 特殊人群信息上报-事件分类
+        eventDO.setEventStatus(2);// 事件状态 2发布
+        eventDO.setProcessType(1);// 网格员处理
+        eventDO.setCommunityProcess(0);// 非 社区处理
+        eventDO.setCreateBy(specialEventAddDTO.getUserId());
+        eventDO.setOrderSn(getEventOrderSn(eventDO.getEventType()));
+        if (eventMapper.insert(eventDO) > 0) {
+            // 添加音频
+            if (StringUtils.isNotEmpty(specialEventAddDTO.getAudio())) {
+                EventResourceDO eventResourceDO = new EventResourceDO();
+                eventResourceDO.setClassification(1);
+                eventResourceDO.setType(2);
+                eventResourceDO.setRefId(eventDO.getId());
+                eventResourceDO.setUrl(specialEventAddDTO.getAudio());
+                eventResourceDO.setCreateBy(specialEventAddDTO.getUserId());
+                eventResourceDO.setResourceTime(specialEventAddDTO.getAudioTime());
+                int audioAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
+                if (audioAdd != 1) {
+                    throw new ServiceException("添加音频失败");
+                }
+            }
+            // 添加视频
+            if (StringUtils.isNotEmpty(specialEventAddDTO.getVideo())) {
+                EventResourceDO eventResourceDO = new EventResourceDO();
+                eventResourceDO.setClassification(1);
+                eventResourceDO.setType(3);
+                eventResourceDO.setRefId(eventDO.getId());
+                eventResourceDO.setUrl(specialEventAddDTO.getVideo());
+                eventResourceDO.setCreateBy(specialEventAddDTO.getUserId());
+                eventResourceDO.setResourceTime(specialEventAddDTO.getVideoTime());
+                int videoAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
+                if (videoAdd != 1) {
+                    throw new ServiceException("添加视频失败");
+                }
+            }
+            // 添加图片
+            if (StringUtils.isNotEmpty(specialEventAddDTO.getPics())) {
+                String[] pica = specialEventAddDTO.getPics().split(",");
+                for (int i = 0; i < pica.length; i++) {
+                    EventResourceDO eventResourceDO = new EventResourceDO();
+                    eventResourceDO.setClassification(1);
+                    eventResourceDO.setType(1);
+                    eventResourceDO.setRefId(eventDO.getId());
+                    eventResourceDO.setUrl(pica[i]);
+                    eventResourceDO.setCreateBy(specialEventAddDTO.getUserId());
+                    int picAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
+                    if (picAdd != 1) {
+                        throw new ServiceException("添加图片失败");
+                    }
+                }
+            }
+            rtVal = R.ok();
+        }
+        rtVal = R.fail();
+
+        if (R.isOk(rtVal)) {
+            // TODO 处理特殊人群实有人口数据
+
+            addReleaseRecord(eventDO.getId(), specialEventAddDTO.getUserId(), specialEventAddDTO.getUserName());
+            return R.ok();
+        }
+        return rtVal;
+    }
+
+    @Override
+    public R getSpecialPopulation(String idCard) {
+        ComMngPopulationDTO comMngPopulationDTO = new ComMngPopulationDTO();
+        comMngPopulationDTO.setCardNo(idCard);
+        comMngPopulationDTO.setPageSize(10l);
+        comMngPopulationDTO.setPageNum(1l);
+        return communityService.pagePopulation(comMngPopulationDTO);
+    }
+
+    @Override
+    public R addPublicity(PublicityEventAddDTO publicityEventAddDTO) {
+        EventGridDataDO eventGridDataDO = eventGridDataMapper.selectById(publicityEventAddDTO.getGridId());
+        if (eventGridDataDO == null) {
+            return R.fail("网格不存在");
+        }
+        EventDO eventDO = new EventDO();
+        BeanUtils.copyProperties(publicityEventAddDTO, eventDO);
+        eventDO.setHappenTime(publicityEventAddDTO.getPropagandaTime());
+        eventDO.setGridMemberId(publicityEventAddDTO.getUserId());
+        eventDO.setEventCategory(2l);// 宣传事件
+        eventDO.setEventStatus(2);// 事件状态 2发布
+        eventDO.setEventType(8);
+        eventDO.setGridMemberCommunity(eventGridDataDO.getGridCommunityId());
+        eventDO.setGridMemberStreet(eventGridDataDO.getGridStreetId());
+        if (publicityEventAddDTO.getGridMemberId() != null) {
+            eventDO.setGridMemberId(publicityEventAddDTO.getGridMemberId());
+        } else {
+            eventDO.setGridMemberId(publicityEventAddDTO.getUserId());
+        }
+        eventDO.setGridMemberName(publicityEventAddDTO.getUserName());
+        eventDO.setGridMemberTelephone(publicityEventAddDTO.getPhone());
+        eventDO.setCreateBy(publicityEventAddDTO.getUserId());
+        eventDO.setOrderSn(getEventOrderSn(eventDO.getEventType()));
+        if (eventMapper.insert(eventDO) == 1) {
+            // 添加音频
+            if (StringUtils.isNotEmpty(publicityEventAddDTO.getAudio())) {
+                EventResourceDO eventResourceDO = new EventResourceDO();
+                eventResourceDO.setClassification(1);
+                eventResourceDO.setType(2);
+                eventResourceDO.setUrl(publicityEventAddDTO.getAudio());
+                eventResourceDO.setRefId(eventDO.getId());
+                eventResourceDO.setCreateBy(publicityEventAddDTO.getUserId());
+                eventResourceDO.setResourceTime(publicityEventAddDTO.getAudioTime());
+                int audioAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
+                if (audioAdd != 1) {
+                    throw new ServiceException("添加音频失败");
+                }
+            }
+            // 添加视频
+            if (StringUtils.isNotEmpty(publicityEventAddDTO.getVideo())) {
+                EventResourceDO eventResourceDO = new EventResourceDO();
+                eventResourceDO.setClassification(1);
+                eventResourceDO.setType(3);
+                eventResourceDO.setUrl(publicityEventAddDTO.getVideo());
+                eventResourceDO.setRefId(eventDO.getId());
+                eventResourceDO.setCreateBy(publicityEventAddDTO.getUserId());
+                eventResourceDO.setResourceTime(publicityEventAddDTO.getVideoTime());
+                int videoAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
+                if (videoAdd != 1) {
+                    throw new ServiceException("添加视频失败");
+                }
+            }
+            // 添加图片
+            if (StringUtils.isNotEmpty(publicityEventAddDTO.getPics())) {
+                String[] pica = publicityEventAddDTO.getPics().split(",");
+                for (int i = 0; i < pica.length; i++) {
+                    EventResourceDO eventResourceDO = new EventResourceDO();
+                    eventResourceDO.setClassification(1);
+                    eventResourceDO.setType(1);
+                    eventResourceDO.setUrl(pica[i]);
+                    eventResourceDO.setRefId(eventDO.getId());
+                    eventResourceDO.setCreateBy(publicityEventAddDTO.getUserId());
+                    int picAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
+                    if (picAdd != 1) {
+                        throw new ServiceException("添加图片失败");
+                    }
+                }
+            }
+            addReleaseRecord(eventDO.getId(), publicityEventAddDTO.getUserId(), publicityEventAddDTO.getUserName());
+            return R.ok();
+        }
+        return R.fail();
+
+    }
+
+    @Override
+    public R savePublicityDraft(PublicityEventEditDTO publicityEventEditDTO) {
+        EventGridDataDO eventGridDataDO = eventGridDataMapper.selectById(publicityEventEditDTO.getGridId());
+        if (eventGridDataDO == null) {
+            return R.fail("网格不存在");
+        }
+        if (publicityEventEditDTO.getId() == null) {
+            EventDO eventDO = new EventDO();
+            BeanUtils.copyProperties(publicityEventEditDTO, eventDO);
+            eventDO.setGridMemberId(publicityEventEditDTO.getUserId());
+            eventDO.setEventCategory(2l);// 宣传事件
+            eventDO.setEventStatus(1);// 事件状态 1草稿
+            eventDO.setCreateBy(publicityEventEditDTO.getUserId());
+            eventDO.setGridMemberId(publicityEventEditDTO.getUserId());
+            eventDO.setGridMemberName(publicityEventEditDTO.getUserName());
+            eventDO.setGridMemberTelephone(publicityEventEditDTO.getPhone());
+            eventDO.setEventDealStatus(5);// 草稿状态
+            eventDO.setEventType(8);
+            if (eventMapper.insert(eventDO) > 0) {
+                // 添加音频
+                if (StringUtils.isNotEmpty(publicityEventEditDTO.getAudio())) {
+                    EventResourceDO eventResourceDO = new EventResourceDO();
+                    eventResourceDO.setClassification(1);
+                    eventResourceDO.setType(2);
+                    eventResourceDO.setRefId(eventDO.getId());
+                    eventResourceDO.setUrl(publicityEventEditDTO.getAudio());
+                    eventResourceDO.setCreateBy(publicityEventEditDTO.getUserId());
+                    eventResourceDO.setResourceTime(publicityEventEditDTO.getAudioTime());
+                    int audioAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
+                    if (audioAdd != 1) {
+                        throw new ServiceException("添加音频失败");
+                    }
+                }
+                // 添加视频
+                if (StringUtils.isNotEmpty(publicityEventEditDTO.getVideo())) {
+                    EventResourceDO eventResourceDO = new EventResourceDO();
+                    eventResourceDO.setClassification(1);
+                    eventResourceDO.setType(3);
+                    eventResourceDO.setRefId(eventDO.getId());
+                    eventResourceDO.setUrl(publicityEventEditDTO.getVideo());
+                    eventResourceDO.setCreateBy(publicityEventEditDTO.getUserId());
+                    eventResourceDO.setResourceTime(publicityEventEditDTO.getVideoTime());
+                    int videoAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
+                    if (videoAdd != 1) {
+                        throw new ServiceException("添加视频失败");
+                    }
+                }
+                // 添加图片
+                if (StringUtils.isNotEmpty(publicityEventEditDTO.getPics())) {
+                    String[] pica = publicityEventEditDTO.getPics().split(",");
+                    for (int i = 0; i < pica.length; i++) {
+                        EventResourceDO eventResourceDO = new EventResourceDO();
+                        eventResourceDO.setClassification(1);
+                        eventResourceDO.setType(1);
+                        eventResourceDO.setRefId(eventDO.getId());
+                        eventResourceDO.setUrl(pica[i]);
+                        eventResourceDO.setCreateBy(publicityEventEditDTO.getUserId());
+                        int picAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
+                        if (picAdd != 1) {
+                            throw new ServiceException("添加图片失败");
+                        }
+                    }
+                }
+                return R.ok();
+            }
+            return R.fail();
+        } else {
+            // 编辑原来的
+            EventDO eventDO = eventMapper.selectById(publicityEventEditDTO.getId());
+            if (eventDO.getEventStatus() != null && eventDO.getEventStatus() != 1
+                && eventDO.getEventDealStatus() != 6) {
+                return R.fail("保存草稿失败,事件不是草稿/撤销状态");
+            }
+            BeanUtils.copyProperties(publicityEventEditDTO, eventDO);
+            eventDO.setGridMemberId(publicityEventEditDTO.getUserId());
+            eventDO.setEventCategory(2L);// 宣传事件
+            eventDO.setEventStatus(1);// 事件状态 1草稿
+            eventDO.setProcessType(1);// 网格员处理
+            eventDO.setCommunityProcess(0);// 非 社区处理
+            eventDO.setUpdateBy(publicityEventEditDTO.getUserId());
+            eventDO.setEventDealStatus(5);// 草稿状态
+            if (eventMapper.updateById(eventDO) > 0) {
+                int deleted = eventResourceService.getBaseMapper().delete(new LambdaQueryWrapper<EventResourceDO>()
+                    .eq(EventResourceDO::getClassification, 1).eq(EventResourceDO::getRefId, eventDO.getId()));
+                // 添加音频
+                if (StringUtils.isNotEmpty(publicityEventEditDTO.getAudio())) {
+                    EventResourceDO eventResourceDO = new EventResourceDO();
+                    eventResourceDO.setClassification(1);
+                    eventResourceDO.setType(2);
+                    eventResourceDO.setRefId(eventDO.getId());
+                    eventResourceDO.setUrl(publicityEventEditDTO.getAudio());
+                    eventResourceDO.setCreateBy(publicityEventEditDTO.getUserId());
+                    eventResourceDO.setResourceTime(publicityEventEditDTO.getAudioTime());
+                    int audioAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
+                    if (audioAdd != 1) {
+                        throw new ServiceException("添加音频失败");
+                    }
+                }
+                // 添加视频
+                if (StringUtils.isNotEmpty(publicityEventEditDTO.getVideo())) {
+                    EventResourceDO eventResourceDO = new EventResourceDO();
+                    eventResourceDO.setClassification(1);
+                    eventResourceDO.setType(3);
+                    eventResourceDO.setRefId(eventDO.getId());
+                    eventResourceDO.setUrl(publicityEventEditDTO.getVideo());
+                    eventResourceDO.setCreateBy(publicityEventEditDTO.getUserId());
+                    eventResourceDO.setResourceTime(publicityEventEditDTO.getVideoTime());
+                    int videoAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
+                    if (videoAdd != 1) {
+                        throw new ServiceException("添加视频失败");
+                    }
+                }
+                // 添加图片
+                if (StringUtils.isNotEmpty(publicityEventEditDTO.getPics())) {
+                    String[] pica = publicityEventEditDTO.getPics().split(",");
+                    for (int i = 0; i < pica.length; i++) {
+                        EventResourceDO eventResourceDO = new EventResourceDO();
+                        eventResourceDO.setClassification(1);
+                        eventResourceDO.setType(1);
+                        eventResourceDO.setRefId(eventDO.getId());
+                        eventResourceDO.setUrl(pica[i]);
+                        eventResourceDO.setCreateBy(publicityEventEditDTO.getUserId());
+                        int picAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
+                        if (picAdd != 1) {
+                            throw new ServiceException("添加图片失败");
+                        }
+                    }
+                }
+                return R.ok();
+            }
+            return R.fail();
+        }
+    }
+
+    @Override
+    public R selectPublicity(PagePublicityEventDTO pagePublicityEventDTO) {
+        Page page = new Page(1, 10);
+        if (pagePublicityEventDTO.getPageNum() != null) {
+            page.setCurrent(pagePublicityEventDTO.getPageNum());
+        }
+        if (pagePublicityEventDTO.getPageSize() != null) {
+            page.setSize(pagePublicityEventDTO.getPageSize());
+        }
+        IPage<EventVO> ipage = eventMapper.findPublicityByPage(page, pagePublicityEventDTO);
+        if (ipage != null) {
+            List<EventVO> eventVOList = ipage.getRecords();
+            eventVOList.forEach(eventVO -> {
+                List<EventResourceDO> eventResourceDOList =
+                    eventResourceService.getBaseMapper().selectList(new LambdaQueryWrapper<EventResourceDO>()
+                        .eq(EventResourceDO::getClassification, 1).eq(EventResourceDO::getRefId, eventVO.getId()));
+                List<EventResourceVO> picList = new ArrayList<>();
+                List<EventResourceVO> audioList = new ArrayList<>();
+                List<EventResourceVO> videoList = new ArrayList<>();
+                eventResourceDOList.forEach(eventResourceDO -> {
+                    switch (eventResourceDO.getType()) {
+                        case 1:
+                            EventResourceVO picEventResourceVO = new EventResourceVO();
+                            BeanUtils.copyProperties(eventResourceDO, picEventResourceVO);
+                            picList.add(picEventResourceVO);
+                            break;
+                        case 2:
+                            EventResourceVO audioResourceVO = new EventResourceVO();
+                            BeanUtils.copyProperties(eventResourceDO, audioResourceVO);
+                            audioList.add(audioResourceVO);
+                            break;
+                        case 3:
+                            EventResourceVO videoResourceVO = new EventResourceVO();
+                            BeanUtils.copyProperties(eventResourceDO, videoResourceVO);
+                            videoList.add(videoResourceVO);
+                            break;
+                    }
+                });
+                eventVO.setAudios(audioList);
+                eventVO.setPics(picList);
+                eventVO.setVideos(videoList);
+                // 查询网格员头像
+                Map<String, String> userMap = eventMapper.getGridMemberImageUrl(eventVO.getGridMemberId());
+                if (StringUtils.isNotEmpty(userMap)) {
+                    eventVO.setGridMemberName(userMap.get("nick_name"));
+                    eventVO.setGridMemberImageUrl(userMap.get("image_url"));
+                }
+            });
+            return R.ok(ipage);
+        }
+        return R.fail();
+    }
+
+    @Override
+    public R<ComActVO> actList() {
+        return communityService.listCommunityAll(null);
+    }
+
+    @Override
+    public R eventToManage(PageEventManageDTO pageEventManageDTO) {
+        // 查询管理事件
+        Page page = new Page(1, 10);
+        if (pageEventManageDTO.getPageNum() != null) {
+            page.setCurrent(pageEventManageDTO.getPageNum());
+        }
+        if (pageEventManageDTO.getPageSize() != null) {
+            page.setSize(pageEventManageDTO.getPageSize());
+        }
+        IPage<EventVO> ipage = eventMapper.findToManageByPage(page, pageEventManageDTO);
+        if (ipage != null) {
+            List<EventVO> eventVOList = ipage.getRecords();
+            eventVOList.forEach(eventVO -> {
+                List<EventResourceDO> eventResourceDOList =
+                    eventResourceService.getBaseMapper().selectList(new LambdaQueryWrapper<EventResourceDO>()
+                        .eq(EventResourceDO::getClassification, 1).eq(EventResourceDO::getRefId, eventVO.getId()));
+                List<EventResourceVO> picList = new ArrayList<>();
+                List<EventResourceVO> audioList = new ArrayList<>();
+                List<EventResourceVO> videoList = new ArrayList<>();
+                eventResourceDOList.forEach(eventResourceDO -> {
+                    switch (eventResourceDO.getType()) {
+                        case 1:
+                            EventResourceVO picEventResourceVO = new EventResourceVO();
+                            BeanUtils.copyProperties(eventResourceDO, picEventResourceVO);
+                            picList.add(picEventResourceVO);
+                            break;
+                        case 2:
+                            EventResourceVO audioResourceVO = new EventResourceVO();
+                            BeanUtils.copyProperties(eventResourceDO, audioResourceVO);
+                            audioList.add(audioResourceVO);
+                            break;
+                        case 3:
+                            EventResourceVO videoResourceVO = new EventResourceVO();
+                            BeanUtils.copyProperties(eventResourceDO, videoResourceVO);
+                            videoList.add(videoResourceVO);
+                            break;
+                    }
+                });
+                eventVO.setAudios(audioList);
+                eventVO.setPics(picList);
+                eventVO.setVideos(videoList);
+
+                // 查询网格员头像
+                Map<String, String> userMap = eventMapper.getGridMemberImageUrl(eventVO.getGridMemberId());
+                if (StringUtils.isNotEmpty(userMap)) {
+                    eventVO.setGridMemberName(userMap.get("nick_name"));
+                    eventVO.setGridMemberImageUrl(userMap.get("image_url"));
+                }
+            });
+            return R.ok(ipage);
+        }
+        return R.fail();
+    }
+
+    @Override
+    public R markEventInvalid(EventRevokeDTO eventRevokeDTO) {
+        EventDO eventDO = this.getBaseMapper().selectById(eventRevokeDTO.getId());
+        if (eventDO == null) {
+            return R.fail("事件不存在");
+        }
+        if (eventDO.getEventCategory() != null) {
+            if (eventDO.getEventCategory() == 1) {
+                boolean canRevoke = eventDO.getEventDealStatus() == 3; // 上报状态
+                if (!canRevoke) {
+                    return R.fail("当前事件不是上报状态,不允许撤销");
+                }
+            } else if (eventDO.getEventCategory() == 2) {
+                boolean canRevoke = eventDO.getEventDealStatus() == 8; // 发布状态
+                if (!canRevoke) {
+                    return R.fail("当前事件不是发布状态,不允许撤销");
+                }
+            } else {
+                return R.fail("");
+            }
+        } else {
+            return R.fail("事件所属错误");
+        }
+//        eventDO.setInvalid(false);
+        // 标为无效后, 交给网格员处理
+        eventDO.setUpdateBy(eventRevokeDTO.getUserId());
+        eventDO.setEventStatus(4);// 4、撤销
+        eventDO.setEventDealStatus(6);// 4、撤销
+        eventDO.setProcessType(1);// 网格员处理
+        eventDO.setCommunityProcess(0);// 非 社区处理
+        eventDO.setRevokeId(eventRevokeDTO.getRevokeId());
+        eventDO.setRevokeType(eventRevokeDTO.getRevokeType());
+        int updated = this.getBaseMapper().updateById(eventDO);
+        if (updated == 1) {
+            addTransferRecord(eventDO.getId(), eventRevokeDTO.getUserId(), eventRevokeDTO.getUserName(), 1, "标为无效",
+                eventRevokeDTO.getCommunityId(), eventRevokeDTO.getCommunityName(), 4);
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    @Override
+    public R republishInvalidEvent(CommonEventRepublishDTO commonEventRepublishDTO) {
+        EventDO eventDO = this.getBaseMapper().selectById(commonEventRepublishDTO.getId());
+        if (eventDO == null) {
+            return R.fail("事件不存在");
+        }
+        boolean canRepulish = eventDO.getEventDealStatus() == 7 || eventDO.getEventDealStatus() == 5 || eventDO.getEventDealStatus() == 6; // 已失效状态
+        if (!canRepulish) {
+            return R.fail("当前事件不是已失效状态/草稿状态/撤销状态,不能重新发布");
+        }
+        eventDO.setInvalid(true);
+        eventDO.setEventStatus(2);
+        eventDO.setEventDealStatus(1);
+        int updated = this.getBaseMapper().updateById(eventDO);
+        if (updated == 1) {
+            addTransferRecord(eventDO.getId(), commonEventRepublishDTO.getUserId(),
+                commonEventRepublishDTO.getUserName(), 1, "重新发布事件成功", commonEventRepublishDTO.getUserId(),
+                commonEventRepublishDTO.getUserName(), 9);
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    @Override
+    public R communityDealEvent(CommonEventDealDTO commonEventDealDTO) {
+        EventDO eventDO = this.getBaseMapper().selectById(commonEventDealDTO.getId());
+        if (eventDO == null) {
+            return R.fail("事件不存在");
+        }
+        boolean canDealByCommunity = eventDO.getEventDealStatus() == 3;
+        if (!canDealByCommunity) {
+            return R.fail("事件当前不是上报状态");
+        }
+
+        List<EventTransferRecordDO> list = eventTransferRecordService.getBaseMapper().selectList(
+            new LambdaQueryWrapper<EventTransferRecordDO>().eq(EventTransferRecordDO::getEventId, eventDO.getId())
+                .orderByDesc(EventTransferRecordDO::getCreateAt));
+
+        Long reportToInDB = -1L;
+        for (int i = 0; i < list.size(); i++) {
+            EventTransferRecordDO eventTransferRecordDO = list.get(i);
+            if (eventTransferRecordDO.getProcessType() != null && eventTransferRecordDO.getProcessType() == 2) {
+                reportToInDB = eventTransferRecordDO.getToId();
+            }
+        }
+        if (commonEventDealDTO.getCommunityId() == null) {
+            return R.fail("当前用户社区获取失败");
+        }
+        if (reportToInDB.longValue() != commonEventDealDTO.getCommunityId().longValue()) {
+            return R.fail("用户上报的社区不是当前社区");
+        }
+        if (commonEventDealDTO.getNeedVerify()) {
+            eventDO.setEventProcessStatus(3);// 待验证状态
+            eventDO.setProcessType(1);// 交给网格员处理-验证
+        } else {
+            eventDO.setEventProcessStatus(2);// 2已解决
+        }
+        eventDO.setUpdateBy(commonEventDealDTO.getUserId());
+
+        // 更新处理信息
+        eventDO.setProcessUserId(commonEventDealDTO.getUserId());
+        eventDO.setProcessUserName(commonEventDealDTO.getUserName());
+        eventDO.setProcessDate(new Date());
+        eventDO.setProcessDesc(commonEventDealDTO.getProcessResult());
+
+        int updated = this.getBaseMapper().updateById(eventDO);
+        if (updated != 1) {
+            return R.fail("更新事件状态失败");
+        }
+        EventTransferRecordDO transferRecordDO =
+            addTransferRecord(eventDO.getId(), commonEventDealDTO.getUserId(), commonEventDealDTO.getUserName(), 1,
+                "社区处理完成", commonEventDealDTO.getCommunityId(), commonEventDealDTO.getCommunityName(), 3);
+        if (transferRecordDO != null && transferRecordDO.getId() != null) {
+            // 添加音频
+            if (StringUtils.isNotEmpty(commonEventDealDTO.getAudio())) {
+                EventResourceDO eventResourceDO = new EventResourceDO();
+                eventResourceDO.setClassification(3);
+                eventResourceDO.setType(2);
+                eventResourceDO.setUrl(commonEventDealDTO.getAudio());
+                eventResourceDO.setRefId(transferRecordDO.getId());
+                eventResourceDO.setCreateBy(commonEventDealDTO.getUserId());
+                eventResourceDO.setResourceTime(commonEventDealDTO.getAudioTime());
+                int audioAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
+                if (audioAdd != 1) {
+                    throw new ServiceException("添加音频失败");
+                }
+            }
+            // 添加视频
+            if (StringUtils.isNotEmpty(commonEventDealDTO.getVideo())) {
+                EventResourceDO eventResourceDO = new EventResourceDO();
+                eventResourceDO.setClassification(3);
+                eventResourceDO.setType(3);
+                eventResourceDO.setUrl(commonEventDealDTO.getVideo());
+                eventResourceDO.setRefId(transferRecordDO.getId());
+                eventResourceDO.setCreateBy(commonEventDealDTO.getUserId());
+                eventResourceDO.setResourceTime(commonEventDealDTO.getVideoTime());
+                int videoAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
+                if (videoAdd != 1) {
+                    throw new ServiceException("添加视频失败");
+                }
+            }
+            // 添加图片
+            if (StringUtils.isNotEmpty(commonEventDealDTO.getPics())) {
+                String[] pica = commonEventDealDTO.getPics().split(",");
+                for (int i = 0; i < pica.length; i++) {
+                    EventResourceDO eventResourceDO = new EventResourceDO();
+                    eventResourceDO.setClassification(3);
+                    eventResourceDO.setType(1);
+                    eventResourceDO.setUrl(pica[i]);
+                    eventResourceDO.setRefId(transferRecordDO.getId());
+                    eventResourceDO.setCreateBy(commonEventDealDTO.getUserId());
+                    int picAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
+                    if (picAdd != 1) {
+                        throw new ServiceException("添加图片失败");
+                    }
+                }
+            }
+            Long transferRecordId = transferRecordDO.getId();
+            EventDO eventDOToUpdate = this.getBaseMapper().selectById(commonEventDealDTO.getId());
+            eventDOToUpdate.setProcessRecordId(transferRecordId);
+            int transferRecordUpdated = this.getBaseMapper().updateById(eventDOToUpdate);
+            if (transferRecordUpdated != 1) {
+                throw new ServiceException("更新事件处理流程失败");
+            }
+            return R.ok();
+        } else {
+            throw new ServiceException("处理事件记录出错");
+        }
+    }
+
+    @Override
+    public R selectCommunityPublicity(PagePublicityEventCommunityDTO pagePublicityEventDTO) {
+        Page page = new Page(1, 10);
+        if (pagePublicityEventDTO.getPageNum() != null) {
+            page.setCurrent(pagePublicityEventDTO.getPageNum());
+        }
+        if (pagePublicityEventDTO.getPageSize() != null) {
+            page.setSize(pagePublicityEventDTO.getPageSize());
+        }
+        IPage<EventVO> ipage = eventMapper.findCommunityPublicityByPage(page, pagePublicityEventDTO);
+        if (ipage != null) {
+            List<EventVO> eventVOList = ipage.getRecords();
+            eventVOList.forEach(eventVO -> {
+                List<EventResourceDO> eventResourceDOList =
+                    eventResourceService.getBaseMapper().selectList(new LambdaQueryWrapper<EventResourceDO>()
+                        .eq(EventResourceDO::getClassification, 1).eq(EventResourceDO::getRefId, eventVO.getId()));
+                List<EventResourceVO> picList = new ArrayList<>();
+                List<EventResourceVO> audioList = new ArrayList<>();
+                List<EventResourceVO> videoList = new ArrayList<>();
+                eventResourceDOList.forEach(eventResourceDO -> {
+                    switch (eventResourceDO.getType()) {
+                        case 1:
+                            EventResourceVO picEventResourceVO = new EventResourceVO();
+                            BeanUtils.copyProperties(eventResourceDO, picEventResourceVO);
+                            picList.add(picEventResourceVO);
+                            break;
+                        case 2:
+                            EventResourceVO audioResourceVO = new EventResourceVO();
+                            BeanUtils.copyProperties(eventResourceDO, audioResourceVO);
+                            audioList.add(audioResourceVO);
+                            break;
+                        case 3:
+                            EventResourceVO videoResourceVO = new EventResourceVO();
+                            BeanUtils.copyProperties(eventResourceDO, videoResourceVO);
+                            videoList.add(videoResourceVO);
+                            break;
+                    }
+                });
+                eventVO.setAudios(audioList);
+                eventVO.setPics(picList);
+                eventVO.setVideos(videoList);
+            });
+            return R.ok(ipage);
+        }
+        return R.fail();
+    }
+
+    /**
+     * 添加发布事件流转记录
+     *
+     * @param eventId
+     *            事件ID
+     * @param userId
+     *            操作用户ID
+     * @param userName
+     *            操作用户姓名
+     * @return 添加成功返回true, 否则返回false
+     */
+    private EventTransferRecordDO addReleaseRecord(Long eventId, Long userId, String userName) {
+        EventTransferRecordDO eventTransferRecordDO = new EventTransferRecordDO();
+        eventTransferRecordDO.setFromType(1);
+        eventTransferRecordDO.setFromId(userId);
+        eventTransferRecordDO.setFromName(userName);
+        eventTransferRecordDO.setToType(1);
+        eventTransferRecordDO.setToId(userId);
+        eventTransferRecordDO.setToName(userName);
+        eventTransferRecordDO.setProcessDate(new Date());
+        eventTransferRecordDO.setEventId(eventId);
+        eventTransferRecordDO.setProcessResult("发布成功");
+        eventTransferRecordDO.setProcessType(0);// 初始状态
+        int inserted = eventTransferRecordService.getBaseMapper().insert(eventTransferRecordDO);
+        if (inserted != 1) {
+            throw new ServiceException("事件流转记录添加失败");
+        }
+        this.updateEventDealStatus(eventId);
+        return eventTransferRecordDO;
+    }
+
+    /**
+     * 查询最后的流转记录,并添加事件流转记录
+     *
+     * @param eventId
+     *            事件ID
+     * @param toId
+     *            流转到 ID
+     * @param toName
+     *            流转到 名称
+     * @param toType
+     *            发送类型
+     * @param msg
+     *            流转消息
+     * @return
+     */
+    private EventTransferRecordDO addTransferRecord(Long eventId, Long toId, String toName, Integer toType, String msg,
+        Long processBy, String processByName, Integer processType) {
+        List<EventTransferRecordDO> list =
+            eventTransferRecordService.getBaseMapper().selectList(new LambdaQueryWrapper<EventTransferRecordDO>()
+                .eq(EventTransferRecordDO::getEventId, eventId).orderByDesc(EventTransferRecordDO::getCreateAt));
+        EventTransferRecordDO eventTransferRecordDO = new EventTransferRecordDO();
+        if (list != null && list.size() > 0) {
+            EventTransferRecordDO lastRecord = list.get(0);
+            eventTransferRecordDO.setFromType(lastRecord.getToType());
+            eventTransferRecordDO.setFromId(lastRecord.getToId());
+            eventTransferRecordDO.setFromName(lastRecord.getToName());
+        }
+        eventTransferRecordDO.setToType(toType);
+        eventTransferRecordDO.setToId(toId);
+        eventTransferRecordDO.setProcessDate(new Date());
+        eventTransferRecordDO.setToName(toName);
+        eventTransferRecordDO.setEventId(eventId);
+        eventTransferRecordDO.setProcessResult(msg);
+        eventTransferRecordDO.setProcessBy(processBy);
+        eventTransferRecordDO.setProcessByName(processByName);
+        eventTransferRecordDO.setProcessType(processType);
+        int inserted = eventTransferRecordService.getBaseMapper().insert(eventTransferRecordDO);
+        if (inserted == 1) {
+            this.updateEventDealStatus(eventId);
+            return eventTransferRecordDO;
+        } else {
+            throw new ServiceException("事件流转记录添加失败");
+        }
+    }
+
+    /**
+     * 查询最后的流转记录,并添加事件流转记录
+     * 
+     * @param eventId
+     *            事件ID
+     * @param toId
+     *            流转到 ID
+     * @param toName
+     *            流转到 名称
+     * @param toType
+     *            发送类型
+     * @param msg
+     *            流转消息
+     * @return
+     */
+    /* private EventTransferRecordDO addTransferRecord(Long eventId, Long toId, String toName, Integer toType, String msg,Integer processType){
+        return addTransferRecord(eventId, toId, toName, toType, msg, null, null, processType);
+    }*/
+
+    /**
+     * 根据子状态 查询用户事件处理状态
+     *
+     * @param eventId
+     *            事件ID
+     */
+    private EventDO updateEventDealStatus(Long eventId) {
+        EventDO eventDO = this.getBaseMapper().selectById(eventId);
+        Integer eventDealStatus = getEventDealStatus(eventDO);
+        eventDO.setEventDealStatus(eventDealStatus);
+        int updated = this.getBaseMapper().updateById(eventDO);
+        if (updated == 1) {
+            return eventDO;
+        } else {
+            throw new ServiceException("更新事件处理状态错误");
+        }
+    }
+
+    /**
+     * 根据子状态 查询用户事件处理状态
+     *
+     * @param eventDO
+     *            事件
+     */
+    private Integer getEventDealStatus(EventDO eventDO) {
+        // 1 待处理、2 待验证、3 已上报、4 已解决、5 草稿箱、6已撤销、7已失效、8已发布
+        if (eventDO.getEventCategory() != null) {
+            if (eventDO.getEventCategory() == 1) {
+                Integer event_status = eventDO.getEventStatus() != null ? eventDO.getEventStatus() : -1;
+                Integer event_process_status =
+                    eventDO.getEventProcessStatus() != null ? eventDO.getEventProcessStatus() : -1;
+                Integer process_type = eventDO.getProcessType() != null ? eventDO.getProcessType() : -1;
+                Integer community_process = eventDO.getCommunityProcess() != null ? eventDO.getCommunityProcess() : -1;
+
+                Integer eventDealStatus = -1;
+                /*if (eventDO.getInvalid() != null && eventDO.getInvalid() == false) {
+                    eventDealStatus = 7;
+                    //7已失效
+                }*/
+                if (event_status == 1) {
+                    eventDealStatus = 5;
+                    // "草稿箱"
+                } else if (event_status == 4) {
+                    eventDealStatus = 6;
+                    // "已撤销"
+                } else if (event_status == 2) {
+                    if (event_process_status == 3) {
+                        eventDealStatus = 2;
+                        // "待验证"
+                    } else if (event_process_status == 2) {
+                        eventDealStatus = 4;
+                        // "已解决"
+                    } else if (community_process == 1 && process_type == 2) {
+                        eventDealStatus = 3;
+                        // "已上报"
+                    } else if (event_process_status == 1 && process_type == 1) {
+                        eventDealStatus = 1;
+                        // "待处理"
+                    }
+                }
+                return eventDealStatus;
+            } else if (eventDO.getEventCategory() == 2) {
+                Integer event_status = eventDO.getEventStatus();
+                if (event_status != null && event_status == 1) {
+                    return 5;
+                    // "草稿箱"
+                } else if (event_status != null && event_status == 2) {
+                    return 8;
+                    // 已发布
+                } else if (event_status != null && event_status == 4) {
+                    return 6;
+                    // "已撤销"
+                }
+            }
+        }
+        return -1;
+    }
+
+    /**
+     * 后台管理-统计模块
+     *
+     * @param communityId
+     *            社区id
+     * @return 统计信息
+     */
+    @Override
+    public R eventStatistics(Long communityId) {
+        return R.ok(this.baseMapper.eventStatistics(communityId));
+    }
+
+    /**
+     * 后台管理-网格员统计
+     *
+     * @param statisticsAdminDTO
+     *            请求参数
+     * @return 网格员统计信息
+     */
+    @Override
+    public R gridMemberStatistics(MemberStatisticsAdminDTO statisticsAdminDTO) {
+        return R.ok(eventGridMemberRelationMapper.gridMemberStatistics(
+            new Page(statisticsAdminDTO.getPageNum(), statisticsAdminDTO.getPageSize()), statisticsAdminDTO));
+    }
+
+    @Override
+    public R getNearByGrid(PageEventGridNearbyDTO pageEventGridNearbyDTO) {
+        Page page = new Page(pageEventGridNearbyDTO.getPageNum(), pageEventGridNearbyDTO.getPageSize());
+        String latLng = pageEventGridNearbyDTO.getHappentLatLng();
+        // if(!latLng.matches("^[\\-\\+]?(0(\\.\\d{1,10})?|([1-9](\\d)?)(\\.\\d{1,10})?|1[0-7]\\d{1}(\\.\\d{1,10})?|180\\.0{1,10}),[\\-\\+]?((0|([1-8]\\d?))(\\.\\d{1,10})?|90(\\.0{1,10})?)$")){
+        // return R.fail("经纬度参数错误");
+        // }
+        // 经纬度匹配规则:(短(纬度)在前长(经度)在后,不要擅自修改此规则,否则出现问题后果自负)
+        // if(!latLng.matches("[1-9][0-9](\\.[0-9]{1,6})?,[1-9][0-9]{2}(\\.[0-9]{1,6})?")){
+        // return R.fail("经纬度参数错误");
+        // }
+        String[] latLngArr = latLng.split(",");
+        try {
+            Double lat = Double.valueOf(latLngArr[1]);
+            Double lng = Double.valueOf(latLngArr[0]);
+            List<EventGridDataAreaVO> gridList = eventGridDataMapper.selectGridWithArea(page, pageEventGridNearbyDTO);
+            if (gridList != null && gridList.size() > 0) {
+                List<EventGridDataVO> rtEventGridList = new ArrayList<>();
+                for (EventGridDataAreaVO eventGridDataDO : gridList) {
+                    String data = eventGridDataDO.getData();
+                    if (data != null) {
+                        List<LatLngVO> latLngList = LngLatUtils.getLatLngFromText(data);
+                        boolean inGrid = LngLatUtils.isInPolygon(latLngList, lng, lat);
+                        if (inGrid) {
+                            EventGridDataVO eventGridDataVO = new EventGridDataVO();
+                            BeanUtils.copyProperties(eventGridDataDO, eventGridDataVO);
+                            rtEventGridList.add(eventGridDataVO);
+                        }
+                    }
+                }
+                return R.ok(rtEventGridList);
+            } else {
+                return R.ok("未找到社区");
+            }
+        } catch (Exception e) {
+            return R.fail(e.getMessage());
+        }
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R deleteEventBatch(EventDeleteDTO eventDeleteDTO) {
+        List<String> eventIds = eventDeleteDTO.getId();
+        if (eventIds != null && eventIds.size() > 0) {
+            R rt = null;
+            Long userId = eventDeleteDTO.getUserId();
+            for (String id : eventIds) {
+                try {
+                    Long eventId = Long.parseLong(id);
+                    EventDO eventDO = eventMapper.selectById(eventId);
+                    if (eventDO == null) {
+                        throw new ServiceException("id为" + id + "的事件不存在");
+                    }
+                    if (eventDO.getEventStatus() != null) {
+                        eventDO.setEventStatus(3);// 逻辑删除
+                        eventDO.setUpdateBy(userId);
+                        int updated = this.getBaseMapper().updateById(eventDO);
+                        if (updated != 1) {
+                            throw new ServiceException("删除事件失败");
+                        }
+                    }
+                } catch (Exception e) {
+                    throw new ServiceException("事件ID错误,删除失败");
+                }
+            }
+            return R.ok();
+        } else {
+            return R.fail("参数错误");
+        }
+
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R batchRepublishEvent(CommonEventBatchRepublishDTO commonEventBatchRepublishDTO) {
+        List<String> ids = commonEventBatchRepublishDTO.getId();
+        if (ids != null && ids.size() > 0) {
+            Long userId = commonEventBatchRepublishDTO.getUserId();
+            String userName = commonEventBatchRepublishDTO.getUserName();
+            for (String id : ids) {
+                Long eventId = -1L;
+                try {
+                    eventId = Long.parseLong(id);
+                } catch (Exception e) {
+                    throw new ServiceException("事件ID错误,发布失败");
+                }
+                EventDO eventDO = this.getBaseMapper().selectById(eventId);
+                if (eventDO == null) {
+                    throw new ServiceException("id为" + id + "的事件不存在");
+                }
+                boolean canRepublishByUser = eventDO.getEventDealStatus() != null
+                    && (eventDO.getEventDealStatus() == 5 || eventDO.getEventDealStatus() == 6);
+                if (!canRepublishByUser) {
+                    throw new ServiceException("当前不是撤销/草稿状态");
+                }
+                eventDO.setEventStatus(2);// 2 发布
+                eventDO.setEventProcessStatus(1); // 待解决
+                eventDO.setProcessType(1); // 网格员处理
+                eventDO.setUpdateBy(userId);
+                int updated = this.getBaseMapper().updateById(eventDO);
+                if (updated != 1) {
+                    throw new ServiceException("更新事件状态失败");
+                }
+                addTransferRecord(eventDO.getId(), userId, userName, 1, "重新发布已撤销事件", userId, userName, 8);
+            }
+            return R.ok();
+        } else {
+            return R.fail("参数错误");
+        }
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R batchMarkEventInvalid(EventBatchRevokeDTO eventBatchRevokeDTO) {
+        List<String> ids = eventBatchRevokeDTO.getId();
+        if (ids != null && ids.size() > 0) {
+            Long userId = eventBatchRevokeDTO.getUserId();
+            String userName = eventBatchRevokeDTO.getUserName();
+            Long communityId = eventBatchRevokeDTO.getCommunityId();
+            String communityName = eventBatchRevokeDTO.getCommunityName();
+            for (String id : ids) {
+                Long eventId = -1L;
+                try {
+                    eventId = Long.parseLong(id);
+                } catch (Exception e) {
+                    throw new ServiceException("事件ID错误,不能标记失效");
+                }
+                EventDO eventDO = this.getBaseMapper().selectById(eventId);
+                if (eventDO == null) {
+                    throw new ServiceException("id为" + id + "的事件不存在");
+                }
+                if (eventDO.getEventCategory() != null) {
+                    if (eventDO.getEventCategory() == 1) {//
+                        boolean canRevoke = eventDO.getEventDealStatus() == 3; // 上报状态
+                        if (!canRevoke) {
+                            throw new ServiceException("当前事件不是上报状态,不允许撤销");
+                        }
+                    } else if (eventDO.getEventCategory() == 2) {// 宣传教育
+                        boolean canRevoke = eventDO.getEventDealStatus() == 8; // 发布状态
+                        if (!canRevoke) {
+                            throw new ServiceException("当前事件不是发布状态,不允许撤销");
+                        }
+                    } else {
+                        throw new ServiceException("事件分类错误");
+                    }
+                } else {
+                    throw new ServiceException("事件所属错误");
+                }
+                eventDO.setInvalid(false);
+                // 标为无效后, 交给网格员处理
+                eventDO.setUpdateBy(userId);
+                eventDO.setEventStatus(4);// 4、撤销
+                eventDO.setProcessType(1);// 网格员处理
+                eventDO.setCommunityProcess(0);// 非 社区处理
+                int updated = this.getBaseMapper().updateById(eventDO);
+                if (updated == 1) {
+                    addTransferRecord(eventDO.getId(), userId, userName, 1, "标为无效", communityId, communityName, 4);
+                } else {
+                    throw new ServiceException("事件流转信息添加错误");
+                }
+            }
+            return R.ok();
+        } else {
+            return R.fail("参数错误");
+        }
+    }
+
+    /**
+     * 根据网格id查询网格统计数据
+     * 
+     * @param gridId
+     *            网格id
+     * @return 网格统计数据
+     */
+    @Override
+    public R getGridEventStatisticsByApp(Long gridId, Long userId) {
+        GridEventStatisticsVO result = this.baseMapper.getGridEventStatisticsByApp(gridId);
+        if (result != null) {
+            result.setTodayNum(result.getTodayNum() + result.getZfTodayNum() + result.getSspTodayNum());
+            result.setMonthNum(result.getMonthNum() + result.getZfMonthNum() + result.getSspMonthNum());
+
+            // 查询当前网格员下管理的楼栋名称
+            List<Map<String, Object>> buildNameList = this.baseMapper.getMemberBuildName(userId);
+            Integer specialTotal = 0;
+            if (!buildNameList.isEmpty()) {
+                for (Map<String, Object> buildMap : buildNameList) {
+                    String buildName = buildMap.get("name").toString();
+                    Long villageId = Long.parseLong(buildMap.get("village_id").toString());
+                    Integer num = this.baseMapper.getPopulationByLabelCount(buildName, villageId);
+                    specialTotal += num;
+                }
+            }
+            result.setSpecialTotal(specialTotal);
+        }
+        return R.ok(result);
+    }
+
+    /**
+     * 查询网格事件统计数据
+     * 
+     * @param statisticsDTO
+     *            请求参数
+     * @return 网格事件统计数据
+     */
+    @Override
+    public R getGridEventDetailStatisticsByApp(GridEventStatisticsDTO statisticsDTO) {
+        GridEventStatisticsDetailVO statisticsDetailVO =
+            this.baseMapper.getGridEventDetailStatisticsByApp(statisticsDTO);
+        if (statisticsDetailVO == null) {
+            statisticsDetailVO = new GridEventStatisticsDetailVO();
+        }
+
+        if (statisticsDetailVO.getEventSSPTotal() == null) {
+            statisticsDetailVO.setEventSSPTotal(0);
+        }
+        if (statisticsDetailVO.getNoEventSSPTotal() == null) {
+            statisticsDetailVO.setNoEventSSPTotal(0);
+        }
+        if (statisticsDetailVO.getEventZFTotal() == null) {
+            statisticsDetailVO.setEventZFTotal(0);
+        }
+        if (statisticsDetailVO.getNoEventZFTotal() == null) {
+            statisticsDetailVO.setNoEventZFTotal(0);
+        }
+
+        // 查询网格
+        EventGridDataDO gridDataDO = eventGridDataMapper.selectById(statisticsDTO.getGridId());
+        if (gridDataDO != null) {
+            Map<String, Long> sspCountMap = this.baseMapper.getSSPEventTotal(gridDataDO.getGridCommunityId());
+            if (!sspCountMap.isEmpty()) {
+                statisticsDetailVO.setEventSSPTotal(
+                    sspCountMap.get("eventSSPTotal") != null ? sspCountMap.get("eventSSPTotal").intValue() : 0);
+                statisticsDetailVO.setNoEventSSPTotal(
+                    sspCountMap.get("noEventSSPTotal") != null ? sspCountMap.get("noEventSSPTotal").intValue() : 0);
+            }
+        }
+
+        // 统计数据
+        Integer sum = statisticsDetailVO.getEventTFTotal() + statisticsDetailVO.getEventMDTotal()
+            + statisticsDetailVO.getEventZATotal() + statisticsDetailVO.getEventBWDTotal()
+            + statisticsDetailVO.getEventTSTotal() + statisticsDetailVO.getEventGGTotal()
+            + statisticsDetailVO.getEventXCTotal() + statisticsDetailVO.getEventSSPTotal()
+            + statisticsDetailVO.getEventZFTotal();
+        statisticsDetailVO.setSum(sum);
+
+        Integer noSum = statisticsDetailVO.getNoEventTFTotal() + statisticsDetailVO.getNoEventMDTotal()
+            + statisticsDetailVO.getNoEventZATotal() + statisticsDetailVO.getNoEventBWDTotal()
+            + statisticsDetailVO.getNoEventTSTotal() + statisticsDetailVO.getNoEventGGTotal()
+            + statisticsDetailVO.getNoEventSSPTotal() + statisticsDetailVO.getNoEventZFTotal();
+        statisticsDetailVO.setNoSum(noSum);
+        return R.ok(statisticsDetailVO);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R reportDirect(CommonEventDirectReportDTO commonEventDirectReportDTO) {
+
+        if (commonEventDirectReportDTO.getEventId() != null) {
+            // 编辑原来的
+            EventDO eventDO = eventMapper.selectById(commonEventDirectReportDTO.getEventId());
+            if (eventDO.getEventStatus() != null && eventDO.getEventStatus() != 1
+                && eventDO.getEventDealStatus() != 6) {
+                return R.fail("保存草稿失败,事件不是草稿/已撤销状态");
+            }
+            BeanUtils.copyProperties(commonEventDirectReportDTO, eventDO);
+            eventDO.setGridMemberId(commonEventDirectReportDTO.getUserId());
+            eventDO.setEventCategory(1l);// 办件事件
+            eventDO.setEventStatus(1);// 事件状态 2发布
+            eventDO.setProcessType(2);// 社区处理
+            eventDO.setCommunityProcess(1);// 社区处理
+            eventDO.setUpdateBy(commonEventDirectReportDTO.getUserId());
+            if (eventMapper.updateById(eventDO) > 0) {
+                int deleted = eventResourceService.getBaseMapper().delete(new LambdaQueryWrapper<EventResourceDO>()
+                    .eq(EventResourceDO::getClassification, 1).eq(EventResourceDO::getRefId, eventDO.getId()));
+                // 添加音频
+                if (StringUtils.isNotEmpty(commonEventDirectReportDTO.getAudio())) {
+                    EventResourceDO eventResourceDO = new EventResourceDO();
+                    eventResourceDO.setClassification(1);
+                    eventResourceDO.setType(2);
+                    eventResourceDO.setRefId(eventDO.getId());
+                    eventResourceDO.setUrl(commonEventDirectReportDTO.getAudio());
+                    eventResourceDO.setCreateBy(commonEventDirectReportDTO.getUserId());
+                    eventResourceDO.setResourceTime(commonEventDirectReportDTO.getAudioTime());
+                    int audioAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
+                    if (audioAdd != 1) {
+                        throw new ServiceException("添加音频失败");
+                    }
+                }
+                // 添加视频
+                if (StringUtils.isNotEmpty(commonEventDirectReportDTO.getVideo())) {
+                    EventResourceDO eventResourceDO = new EventResourceDO();
+                    eventResourceDO.setClassification(1);
+                    eventResourceDO.setType(3);
+                    eventResourceDO.setRefId(eventDO.getId());
+                    eventResourceDO.setUrl(commonEventDirectReportDTO.getVideo());
+                    eventResourceDO.setCreateBy(commonEventDirectReportDTO.getUserId());
+                    eventResourceDO.setResourceTime(commonEventDirectReportDTO.getVideoTime());
+                    int videoAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
+                    if (videoAdd != 1) {
+                        throw new ServiceException("添加视频失败");
+                    }
+                }
+                // 添加图片
+                if (StringUtils.isNotEmpty(commonEventDirectReportDTO.getPics())) {
+                    String[] pica = commonEventDirectReportDTO.getPics().split(",");
+                    for (int i = 0; i < pica.length; i++) {
+                        EventResourceDO eventResourceDO = new EventResourceDO();
+                        eventResourceDO.setClassification(1);
+                        eventResourceDO.setType(1);
+                        eventResourceDO.setRefId(eventDO.getId());
+                        eventResourceDO.setUrl(pica[i]);
+                        eventResourceDO.setCreateBy(commonEventDirectReportDTO.getUserId());
+                        int picAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
+                        if (picAdd != 1) {
+                            throw new ServiceException("添加图片失败");
+                        }
+                    }
+                }
+
+                R r = communityService.detailCommunity(commonEventDirectReportDTO.getToId());
+                if (!R.isOk(r)) {
+                    return R.fail("社区不存在");
+                }
+                ComActVO comActVO = JSONObject.parseObject(JSONObject.toJSONString(r.getData()), ComActVO.class);
+                if (comActVO == null) {
+                    return R.fail("社区不存在");
+                }
+                EventDO eventDOInDB = this.getBaseMapper().selectById(commonEventDirectReportDTO.getEventId());
+                eventDOInDB.setCommunityProcess(1); // 社区处理
+                eventDOInDB.setProcessType(2); // 当前处理对象: 社区处理
+                eventDOInDB.setCommunityProcess(1);
+                eventDOInDB.setEventProcessStatus(1); // 待处理
+                eventDOInDB.setUpdateBy(commonEventDirectReportDTO.getUserId());
+                eventDOInDB.setSubmitDate(new Date());
+                int updated = this.getBaseMapper().updateById(eventDO);
+                if (updated != 1) {
+                    throw new ServiceException("事件状态更新失败");
+                }
+                addTransferRecord(eventDO.getId(), commonEventDirectReportDTO.getToId(), comActVO.getName(), 2,
+                    commonEventDirectReportDTO.getProcessResult(), commonEventDirectReportDTO.getUserId(),
+                    commonEventDirectReportDTO.getUserName(), 2);
+                return R.ok();
+            }
+
+        } else {
+            EventDO eventDO = new EventDO();
+            BeanUtils.copyProperties(commonEventDirectReportDTO, eventDO);
+            eventDO.setGridMemberId(commonEventDirectReportDTO.getUserId());
+            EventGridDataDO eventGridDataDO = eventGridDataMapper.selectById(commonEventDirectReportDTO.getGridId());
+            if (eventGridDataDO == null) {
+                return R.fail("网格不存在");
+            }
+            eventDO.setEventCategory(1l);// 办件事件
+            eventDO.setEventStatus(2);// 事件状态 2发布
+            eventDO.setProcessType(2);// 社区处理
+            eventDO.setCommunityProcess(1);// 社区处理
+            eventDO.setEventProcessStatus(1);
+            eventDO.setGridMemberName(commonEventDirectReportDTO.getUserName());
+            eventDO.setGridMemberTelephone(commonEventDirectReportDTO.getPhone());
+            eventDO.setCreateBy(commonEventDirectReportDTO.getUserId());
+            eventDO.setSubmitDate(new Date());
+            eventDO.setOrderSn(getEventOrderSn(eventDO.getEventType()));
+            if (eventMapper.insert(eventDO) == 1) {
+                // 添加音频
+                if (StringUtils.isNotEmpty(commonEventDirectReportDTO.getAudio())) {
+                    EventResourceDO eventResourceDO = new EventResourceDO();
+                    eventResourceDO.setClassification(1);
+                    eventResourceDO.setType(2);
+                    eventResourceDO.setUrl(commonEventDirectReportDTO.getAudio());
+                    eventResourceDO.setRefId(eventDO.getId());
+                    eventResourceDO.setCreateBy(commonEventDirectReportDTO.getUserId());
+                    eventResourceDO.setResourceTime(commonEventDirectReportDTO.getAudioTime());
+                    int audioAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
+                    if (audioAdd != 1) {
+                        throw new ServiceException("添加音频失败");
+                    }
+                }
+                // 添加视频
+                if (StringUtils.isNotEmpty(commonEventDirectReportDTO.getVideo())) {
+                    EventResourceDO eventResourceDO = new EventResourceDO();
+                    eventResourceDO.setClassification(1);
+                    eventResourceDO.setType(3);
+                    eventResourceDO.setUrl(commonEventDirectReportDTO.getVideo());
+                    eventResourceDO.setRefId(eventDO.getId());
+                    eventResourceDO.setCreateBy(commonEventDirectReportDTO.getUserId());
+                    eventResourceDO.setResourceTime(commonEventDirectReportDTO.getVideoTime());
+                    int videoAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
+                    if (videoAdd != 1) {
+                        throw new ServiceException("添加视频失败");
+                    }
+                }
+                // 添加图片
+                if (StringUtils.isNotEmpty(commonEventDirectReportDTO.getPics())) {
+                    String[] pica = commonEventDirectReportDTO.getPics().split(",");
+                    for (int i = 0; i < pica.length; i++) {
+                        EventResourceDO eventResourceDO = new EventResourceDO();
+                        eventResourceDO.setClassification(1);
+                        eventResourceDO.setType(1);
+                        eventResourceDO.setUrl(pica[i]);
+                        eventResourceDO.setRefId(eventDO.getId());
+                        eventResourceDO.setCreateBy(commonEventDirectReportDTO.getUserId());
+                        int picAdd = eventResourceService.getBaseMapper().insert(eventResourceDO);
+                        if (picAdd != 1) {
+                            throw new ServiceException("添加图片失败");
+                        }
+                    }
+                }
+                addReleaseRecord(eventDO.getId(), commonEventDirectReportDTO.getUserId(),
+                    commonEventDirectReportDTO.getUserName());
+
+                R r = communityService.detailCommunity(commonEventDirectReportDTO.getToId());
+                if (!R.isOk(r)) {
+                    return R.fail("社区不存在");
+                }
+                ComActVO comActVO = JSONObject.parseObject(JSONObject.toJSONString(r.getData()), ComActVO.class);
+                if (comActVO == null) {
+                    return R.fail("社区不存在");
+                }
+                EventDO eventDOInDB = this.getBaseMapper().selectById(eventDO.getId());
+                eventDOInDB.setCommunityProcess(1); // 社区处理
+                eventDOInDB.setProcessType(2); // 当前处理对象: 社区处理
+                eventDOInDB.setCommunityProcess(1);
+                eventDOInDB.setEventProcessStatus(1); // 待处理
+                eventDOInDB.setUpdateBy(commonEventDirectReportDTO.getUserId());
+                eventDOInDB.setSubmitDate(new Date());
+                int updated = this.getBaseMapper().updateById(eventDO);
+                if (updated != 1) {
+                    throw new ServiceException("更新突发事件状态更新失败");
+                }
+                addTransferRecord(eventDO.getId(), commonEventDirectReportDTO.getToId(), comActVO.getName(), 2,
+                    commonEventDirectReportDTO.getProcessResult(), commonEventDirectReportDTO.getUserId(),
+                    commonEventDirectReportDTO.getUserName(), 2);
+                return R.ok(eventDO.getId());
+            }
+        }
+
+        return R.fail();
+    }
+
+    /**
+     * 事件大屏查询事件列表
+     * 
+     * @param eventListDTO
+     *            请求参数
+     * @return 事件列表
+     */
+    @Override
+    public R getScreenEventList(ScreenEventListDTO eventListDTO) {
+        if (eventListDTO.getEventTypes() != null && !eventListDTO.getEventTypes().isEmpty()) {
+            eventListDTO.getEventTypes().forEach(eventType -> {
+                if (eventType.equals(ScreenEventListDTO.eventType.xc)) {
+                    eventListDTO.setEventCategory(null);
+                }
+            });
+
+        }
+        IPage<EventListVO> eventPageList = this.baseMapper
+            .getScreenEventList(new Page(eventListDTO.getPageNum(), eventListDTO.getPageSize()), eventListDTO);
+        if (!eventPageList.getRecords().isEmpty()) {
+            eventPageList.getRecords().forEach(event -> {
+                // 查询事件关联附件
+                List<EventResourceDO> eventResourceDOList =
+                    eventResourceService.getBaseMapper().selectList(new LambdaQueryWrapper<EventResourceDO>()
+                        .eq(EventResourceDO::getClassification, 1).eq(EventResourceDO::getRefId, event.getId()));
+                List<EventResourceVO> picList = new ArrayList<>();
+                List<EventResourceVO> audioList = new ArrayList<>();
+                List<EventResourceVO> videoList = new ArrayList<>();
+                eventResourceDOList.forEach(eventResourceDO -> {
+                    switch (eventResourceDO.getType()) {
+                        case 1:
+                            EventResourceVO picEventResourceVO = new EventResourceVO();
+                            BeanUtils.copyProperties(eventResourceDO, picEventResourceVO);
+                            picList.add(picEventResourceVO);
+                            break;
+                        case 2:
+                            EventResourceVO audioResourceVO = new EventResourceVO();
+                            BeanUtils.copyProperties(eventResourceDO, audioResourceVO);
+                            audioList.add(audioResourceVO);
+                            break;
+                        case 3:
+                            EventResourceVO videoResourceVO = new EventResourceVO();
+                            BeanUtils.copyProperties(eventResourceDO, videoResourceVO);
+                            videoList.add(videoResourceVO);
+                            break;
+                    }
+                });
+                event.setAudios(audioList);
+                event.setPics(picList);
+                event.setVideos(videoList);
+            });
+        }
+        return R.ok(eventPageList);
+    }
+
+    /**
+     * 特殊人群上报-社区人口数据列表
+     * 
+     * @param specialPopulationDTO
+     *            请求参数
+     * @return 社区人口数据列表
+     */
+    @Override
+    public R specialPopulationList(PageEventSpecialPopulationDTO specialPopulationDTO) {
+        IPage<EventSpecialPopulationVO> specialPopulationVOIPage = this.baseMapper.specialPopulationList(
+            new Page(specialPopulationDTO.getPageNum(), specialPopulationDTO.getPageSize()), specialPopulationDTO);
+        if (!specialPopulationVOIPage.getRecords().isEmpty()) {
+            specialPopulationVOIPage.getRecords().forEach(specialPopulation -> {
+                try {
+                    Integer age = IdcardUtil.getAgeByIdCard(specialPopulation.getIdCard());
+                    specialPopulation.setAge(age);
+                } catch (Exception e) {
+                    log.error("身份证号码转换年龄失败,人员id:" + specialPopulation.getId());
+                }
+            });
+        }
+        return R.ok(specialPopulationVOIPage);
+    }
+
+    @Override
+    public List<EventDetailsVO> getUnUploadEvent() {
+        List<EventDetailsVO> eventDetailsVOList = new ArrayList<>();
+        List<EventDO> unEventList =
+            baseMapper.selectList(new QueryWrapper<EventDO>().eq("upload", false).eq("event_process_status", 2));
+        unEventList.forEach(eventDO -> {
+            eventDetailsVOList.add(eventDetails(eventDO.getId()).getData());
+        });
+        return eventDetailsVOList;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean updateLcUploadFlag(Long id) {
+        EventDO event = baseMapper.selectById(id);
+        event.setUpload(true);
+        baseMapper.updateById(event);
+        EventResourceDO eventResourceDO = new EventResourceDO();
+        eventResourceDO.setUpload(true);
+        int flag = eventResourceMapper.update(eventResourceDO, new QueryWrapper<EventResourceDO>().eq("ref_id", id));
+        return flag > 0;
+    }
+
+    @Override
+    public R eventWork(Long communityId) {
+        EventWorkScreenVO workScreenVO = new EventWorkScreenVO();
+        String date = DateUtils.getDateFormatString(new Date(), moth_format_str);
+        Map<String, Long> countMap = this.eventMapper.countByCommunityId(communityId, date);
+        if (!countMap.isEmpty()) {
+            workScreenVO.setResolvedNum(
+                countMap.get("resolvedNum") == null ? 0L : Long.valueOf(countMap.get("resolvedNum").toString()));
+            workScreenVO.setPendingNum(
+                countMap.get("pendingNum") == null ? 0L : Long.valueOf(countMap.get("pendingNum").toString()));
+            workScreenVO.setPropagandaNum(
+                countMap.get("propagandaNum") == null ? 13L : Long.valueOf(countMap.get("propagandaNum").toString()));
+            workScreenVO.setCurrentNum(countMap.get("sspCurrentNum") + countMap.get("currentNum"));
+        }
+
+        // 计算处理时间消耗的时间
+        DateScreenVO countAvg = this.eventMapper.countByAvgCommunityId(communityId);
+        if (countAvg != null) {
+            int second = (int)(countAvg.getEndTime().getTime() - countAvg.getStartTime().getTime()) / 1000;
+            if (second > 0) {
+                second = second / workScreenVO.getResolvedNum().intValue();
+                workScreenVO.setAvgCost(second);
+            }
+        }
+        // 查询最新事件轮播列表
+        List<EventDetailWorkVO> eventList = this.eventMapper.getWorkScreenEventList(communityId);
+        if (!eventList.isEmpty()) {
+            workScreenVO.setEventList(eventList);
+        }
+
+        // 统计近半年数据
+        List<EventWorkVO> list = new ArrayList<>();
+        for (EventWorkVO eventWorkVO : listHalfYearByDyn()) {
+            EventWorkVO result =
+                this.eventMapper.countByTime(eventWorkVO.getStart(), eventWorkVO.getEnd(), communityId);
+            result.setEventTotal(result.getEventTotal() + result.getSspTotal());
+            result.setEventAdd(result.getEventAdd() + result.getSspAdd());
+            result.setEventSolve(result.getEventSolve() + result.getSspSolve());
+            result.setMonth(eventWorkVO.getMonth());
+            list.add(result);
+        }
+        workScreenVO.setList(list);
+
+        // 查询完成事件统计
+        EventTypeWorkVO complete = this.eventMapper.getComplete(communityId);
+        if (complete != null) {
+            workScreenVO.setComplete(complete);
+        }
+        // 查询未完成事件统计
+        EventTypeWorkVO noComplete = this.eventMapper.getNoComplete(communityId);
+        if (complete != null) {
+            workScreenVO.setNoComplete(noComplete);
+        }
+        return R.ok(workScreenVO);
+    }
+
+    private List<EventWorkVO> listHalfYearByDyn() {
+        List<EventWorkVO> dateList = new ArrayList<>();
+        Date now = new Date();
+        for (int i = 6; i >= 1; i--) {
+            Date date = DateUtils.getDateM(now, -(i - 1));
+            DateTime endDay = DateUtil.endOfMonth(date);
+
+            int m = DateUtil.month(endDay);
+            // m++;
+            if (m == 12) {
+                m = 0;
+            }
+            int day = DateUtil.dayOfMonth(endDay);
+            int half = day / 2;
+            String month = DateUtil.format(date, moth_format_str);
+            EventWorkVO eventWorkVO = new EventWorkVO();
+            eventWorkVO.setMonth(monthStr[m] + "月上旬");
+            eventWorkVO.setStart(month + "-01 00:00:00");
+            eventWorkVO.setEnd(month + "-" + half + " 23:59:59");
+            dateList.add(eventWorkVO);
+            EventWorkVO eventWorkVO1 = new EventWorkVO();
+            eventWorkVO1.setMonth(monthStr[m] + "月下旬");
+            eventWorkVO1.setStart(month + "-" + half + " 23:59:59");
+            eventWorkVO1.setEnd(DateUtils.getDateFormatString(endDay, "yyyy-MM-dd HH:mm:ss"));
+            dateList.add(eventWorkVO1);
+        }
+        return dateList;
+    }
+
+    /**
+     * 绘制多边形统计数据
+     * 
+     * @param eventListDTO
+     *            请求参数
+     * @return 统计数据
+     */
+    @Override
+    public R getCivilDrawList(ScreenDrawEventListDTO eventListDTO) {
+
+        ScreenDrawEventVO drawEventVO = new ScreenDrawEventVO();
+        // 返回事件列表结果集
+        List<EventGridIncidentStatisticsVO> eventResultList = new ArrayList<>();
+        // 返回小区列表结果集
+        List<CivilVillageStatisticsVO> villageResultList = new ArrayList<>();
+        // 返回事件统计
+        EventLeftDownStatisticsVO leftDownStatisticsVO = new EventLeftDownStatisticsVO();
+        // 返回人口统计
+        ScreenDrawEventPopulationTotalVO drawEventPopulationTotalVO = new ScreenDrawEventPopulationTotalVO();
+        // 查询所有事件
+        List<EventGridIncidentStatisticsVO> gridIncidentList =
+            this.baseMapper.getEventListByCommunityId(eventListDTO.getCommunityId());
+        if (!gridIncidentList.isEmpty()) {
+            gridIncidentList.forEach(gridIncident -> {
+                // 拆分事件经纬度
+                Double lng = 0.0;// 经度
+                Double lat = 0.0;// 纬度
+                String[] lngLatString = gridIncident.getLatLng().split(",");
+                if (!gridIncident.getType().equals(7)) {
+                    lat = Double.parseDouble(lngLatString[0]);
+                    lng = Double.parseDouble(lngLatString[1]);
+                } else {
+                    lat = Double.parseDouble(lngLatString[1]);
+                    lng = Double.parseDouble(lngLatString[0]);
+                }
+
+                // 判断绘制的图形类型
+                if (eventListDTO.getType().equals(ScreenDrawEventListDTO.type.yx)) {
+                    // 判断这个点是否在圆形范围内
+                    if (GisPointUtil.isInCircle(eventListDTO.getCenterLng(), eventListDTO.getCenterLat(), lng, lat,
+                        eventListDTO.getRadius())) {
+                        if (eventResultList.size() <= eventListDTO.getCount()) {
+                            eventResultList.add(gridIncident);
+                        }
+                        switch (gridIncident.getType()) {
+                            case 1:
+                                leftDownStatisticsVO.setEventZATotal(leftDownStatisticsVO.getEventZATotal() + 1);
+                                if (gridIncident.getStatus().equals(4)) {
+                                    leftDownStatisticsVO
+                                        .setYesEventZATotal(leftDownStatisticsVO.getYesEventZATotal() + 1);
+                                }
+                                break;
+                            case 2:
+                                leftDownStatisticsVO.setEventGGTotal(leftDownStatisticsVO.getEventGGTotal() + 1);
+                                if (gridIncident.getStatus().equals(4)) {
+                                    leftDownStatisticsVO
+                                        .setYesEventGGTotal(leftDownStatisticsVO.getYesEventGGTotal() + 1);
+                                }
+                                break;
+                            case 3:
+                                leftDownStatisticsVO.setEventMDTotal(leftDownStatisticsVO.getEventMDTotal() + 1);
+                                if (gridIncident.getStatus().equals(4)) {
+                                    leftDownStatisticsVO
+                                        .setYesEventMDTotal(leftDownStatisticsVO.getYesEventMDTotal() + 1);
+                                }
+                                break;
+                            case 4:
+                                leftDownStatisticsVO.setEventBWDTotal(leftDownStatisticsVO.getEventBWDTotal() + 1);
+                                if (gridIncident.getStatus().equals(4)) {
+                                    leftDownStatisticsVO
+                                        .setYesEventBWDTotal(leftDownStatisticsVO.getYesEventBWDTotal() + 1);
+                                }
+                                break;
+                            case 5:
+                                leftDownStatisticsVO.setEventTFTotal(leftDownStatisticsVO.getEventTFTotal() + 1);
+                                if (gridIncident.getStatus().equals(4)) {
+                                    leftDownStatisticsVO
+                                        .setYesEventTFTotal(leftDownStatisticsVO.getYesEventTFTotal() + 1);
+                                }
+                                break;
+                            case 6:
+                                leftDownStatisticsVO.setEventTSTotal(leftDownStatisticsVO.getEventTSTotal() + 1);
+                                if (gridIncident.getStatus().equals(4)) {
+                                    leftDownStatisticsVO
+                                        .setYesEventTSTotal(leftDownStatisticsVO.getYesEventTSTotal() + 1);
+                                }
+                                break;
+                            case 7:
+                                leftDownStatisticsVO.setEventSSPTotal(leftDownStatisticsVO.getEventSSPTotal() + 1);
+                                if (gridIncident.getStatus().equals(2)) {
+                                    leftDownStatisticsVO
+                                        .setYesEventSSPTotal(leftDownStatisticsVO.getYesEventSSPTotal() + 1);
+                                }
+                                break;
+                            default:
+                                break;
+                        }
+                    }
+                } else {// 多边形类型
+                    if (GisPointUtil.isInPolygon(lng, lat, eventListDTO.getLngLatList())) {
+                        if (eventResultList.size() <= eventListDTO.getCount()) {
+                            eventResultList.add(gridIncident);
+                        }
+                        switch (gridIncident.getType()) {
+                            case 1:
+                                leftDownStatisticsVO.setEventZATotal(leftDownStatisticsVO.getEventZATotal() + 1);
+                                if (gridIncident.getStatus().equals(4)) {
+                                    leftDownStatisticsVO
+                                        .setYesEventZATotal(leftDownStatisticsVO.getYesEventZATotal() + 1);
+                                }
+                                break;
+                            case 2:
+                                leftDownStatisticsVO.setEventGGTotal(leftDownStatisticsVO.getEventGGTotal() + 1);
+                                if (gridIncident.getStatus().equals(4)) {
+                                    leftDownStatisticsVO
+                                        .setYesEventGGTotal(leftDownStatisticsVO.getYesEventGGTotal() + 1);
+                                }
+                                break;
+                            case 3:
+                                leftDownStatisticsVO.setEventMDTotal(leftDownStatisticsVO.getEventMDTotal() + 1);
+                                if (gridIncident.getStatus().equals(4)) {
+                                    leftDownStatisticsVO
+                                        .setYesEventMDTotal(leftDownStatisticsVO.getYesEventMDTotal() + 1);
+                                }
+                                break;
+                            case 4:
+                                leftDownStatisticsVO.setEventBWDTotal(leftDownStatisticsVO.getEventBWDTotal() + 1);
+                                if (gridIncident.getStatus().equals(4)) {
+                                    leftDownStatisticsVO
+                                        .setYesEventBWDTotal(leftDownStatisticsVO.getYesEventBWDTotal() + 1);
+                                }
+                                break;
+                            case 5:
+                                leftDownStatisticsVO.setEventTFTotal(leftDownStatisticsVO.getEventTFTotal() + 1);
+                                if (gridIncident.getStatus().equals(4)) {
+                                    leftDownStatisticsVO
+                                        .setYesEventTFTotal(leftDownStatisticsVO.getYesEventTFTotal() + 1);
+                                }
+                                break;
+                            case 6:
+                                leftDownStatisticsVO.setEventTSTotal(leftDownStatisticsVO.getEventTSTotal() + 1);
+                                if (gridIncident.getStatus().equals(4)) {
+                                    leftDownStatisticsVO
+                                        .setYesEventTSTotal(leftDownStatisticsVO.getYesEventTSTotal() + 1);
+                                }
+                                break;
+                            case 7:
+                                leftDownStatisticsVO.setEventSSPTotal(leftDownStatisticsVO.getEventSSPTotal() + 1);
+                                if (gridIncident.getStatus().equals(2)) {
+                                    leftDownStatisticsVO
+                                        .setYesEventSSPTotal(leftDownStatisticsVO.getYesEventSSPTotal() + 1);
+                                }
+                                break;
+                            default:
+                                break;
+                        }
+                    }
+                }
+            });
+        }
+        drawEventVO.setGridIncidentList(eventResultList);
+        drawEventVO.setLeftDownStatisticsVO(leftDownStatisticsVO);
+
+        // 查询所有小区
+        List<CivilVillageStatisticsVO> villageStatisticsList =
+            this.baseMapper.getCivilScreenVillageList(eventListDTO.getCommunityId());
+        if (!villageStatisticsList.isEmpty()) {
+            villageStatisticsList.forEach(village -> {
+                // 判断绘制的图形类型
+                if (eventListDTO.getType().equals(ScreenDrawEventListDTO.type.yx)) {
+                    // 判断这个点是否在圆形范围内
+                    if (GisPointUtil.isInCircle(eventListDTO.getCenterLng(), eventListDTO.getCenterLat(),
+                        Double.parseDouble(village.getLng()), Double.parseDouble(village.getLat()),
+                        eventListDTO.getRadius())) {
+                        villageResultList.add(village);
+                        ScreenDrawEventPopulationTotalVO populationTotalVO =
+                            this.baseMapper.getVillagePopulationTotal(village.getVillageId());
+                        if (populationTotalVO != null) {
+                            drawEventPopulationTotalVO
+                                .setVillageTotal(drawEventPopulationTotalVO.getVillageTotal() + 1);
+                            drawEventPopulationTotalVO
+                                .setPopulationTotal(drawEventPopulationTotalVO.getPopulationTotal()
+                                    + populationTotalVO.getPopulationTotal());
+                            drawEventPopulationTotalVO.setLocalTotal(
+                                drawEventPopulationTotalVO.getLocalTotal() + populationTotalVO.getLocalTotal());
+                            drawEventPopulationTotalVO.setOutTotal(
+                                drawEventPopulationTotalVO.getOutTotal() + populationTotalVO.getOutTotal());
+                            drawEventPopulationTotalVO.setSpecialTotal(
+                                drawEventPopulationTotalVO.getSpecialTotal() + populationTotalVO.getSpecialTotal());
+                            drawEventPopulationTotalVO.setBuildTotal(
+                                drawEventPopulationTotalVO.getBuildTotal() + populationTotalVO.getBuildTotal());
+                        }
+                    }
+                } else {// 多边形类型
+                    if (GisPointUtil.isInPolygon(Double.parseDouble(village.getLng()),
+                        Double.parseDouble(village.getLat()), eventListDTO.getLngLatList())) {
+                        villageResultList.add(village);
+                        ScreenDrawEventPopulationTotalVO populationTotalVO =
+                            this.baseMapper.getVillagePopulationTotal(village.getVillageId());
+                        if (populationTotalVO != null) {
+                            drawEventPopulationTotalVO
+                                .setVillageTotal(drawEventPopulationTotalVO.getVillageTotal() + 1);
+                            drawEventPopulationTotalVO
+                                .setPopulationTotal(drawEventPopulationTotalVO.getPopulationTotal()
+                                    + populationTotalVO.getPopulationTotal());
+                            drawEventPopulationTotalVO.setLocalTotal(
+                                drawEventPopulationTotalVO.getLocalTotal() + populationTotalVO.getLocalTotal());
+                            drawEventPopulationTotalVO.setOutTotal(
+                                drawEventPopulationTotalVO.getOutTotal() + populationTotalVO.getOutTotal());
+                            drawEventPopulationTotalVO.setSpecialTotal(
+                                drawEventPopulationTotalVO.getSpecialTotal() + populationTotalVO.getSpecialTotal());
+                            drawEventPopulationTotalVO.setBuildTotal(
+                                drawEventPopulationTotalVO.getBuildTotal() + populationTotalVO.getBuildTotal());
+                        }
+                    }
+                }
+            });
+        }
+
+        drawEventVO.setVillageStatisticsList(villageResultList);
+        drawEventVO.setDrawEventPopulationTotalVO(drawEventPopulationTotalVO);
+        return R.ok(drawEventVO);
+    }
+
+    @Override
+    public R getCivilDrawListNew(ScreenDrawEventListDTO eventListDTO) {
+        GridsGovernanceStatisticsVO statisticsVO = new GridsGovernanceStatisticsVO();
+        // 返回事件列表结果集
+        List<EventGridIncidentStatisticsVO> eventResultList = new ArrayList<>();
+        // 返回小区列表结果集
+        List<CivilVillageStatisticsVO> villageResultList = new ArrayList<>();
+        // 返回人口统计
+        ScreenDrawEventPopulationTotalVO drawEventPopulationTotalVO = new ScreenDrawEventPopulationTotalVO();
+        //年龄段统计
+        List<StatisticsCommVO> ageGroupStatistics = new ArrayList<>();
+        // 查询所有事件
+        List<EventGridIncidentStatisticsVO> gridIncidentList =
+                this.baseMapper.getGridsGovernanceEventList(eventListDTO.getCommunityId());
+        if (!gridIncidentList.isEmpty()) {
+            gridIncidentList.forEach(gridIncident -> {
+                // 拆分事件经纬度
+                Double lng = 0.0;// 经度
+                Double lat = 0.0;// 纬度
+                String[] lngLatString = gridIncident.getLatLng().split(",");
+                if (gridIncident.getEventType().equals(1)) {
+                    lat = Double.parseDouble(lngLatString[0]);
+                    lng = Double.parseDouble(lngLatString[1]);
+                } else {
+                    lat = Double.parseDouble(lngLatString[1]);
+                    lng = Double.parseDouble(lngLatString[0]);
+                }
+                // 判断绘制的图形类型
+                if (eventListDTO.getType().equals(ScreenDrawEventListDTO.type.yx)) {
+                    // 判断这个点是否在圆形范围内
+                    if (GisPointUtil.isInCircle(eventListDTO.getCenterLng(), eventListDTO.getCenterLat(), lng, lat,
+                            eventListDTO.getRadius())) {
+                        if (eventResultList.size() <= eventListDTO.getCount()) {
+                            eventResultList.add(gridIncident);
+                        }
+                        countGridIncidentData(statisticsVO, gridIncident);
+                    }
+                } else {// 多边形类型
+                    if (GisPointUtil.isInPolygon(lng, lat, eventListDTO.getLngLatList())) {
+                        if (eventResultList.size() <= eventListDTO.getCount()) {
+                            eventResultList.add(gridIncident);
+                        }
+                        countGridIncidentData(statisticsVO, gridIncident);
+                    }
+                }
+            });
+        }
+        // 查询所有小区
+        List<CivilVillageStatisticsVO> villageStatisticsList =
+                this.baseMapper.getCivilScreenVillageList(eventListDTO.getCommunityId());
+        if (!villageStatisticsList.isEmpty()) {
+            List<Long> villageIds = villageStatisticsList.stream().map(CivilVillageStatisticsVO::getVillageId).collect(Collectors.toList());
+            ageGroupStatistics = this.baseMapper.selectStatisticsForAge(villageIds);
+            villageStatisticsList.forEach(village -> {
+                // 判断绘制的图形类型
+                if (eventListDTO.getType().equals(ScreenDrawEventListDTO.type.yx)) {
+                    // 判断这个点是否在圆形范围内
+                    if (GisPointUtil.isInCircle(eventListDTO.getCenterLng(), eventListDTO.getCenterLat(),
+                            Double.parseDouble(village.getLng()), Double.parseDouble(village.getLat()),
+                            eventListDTO.getRadius())) {
+                        fillVillageResultList(villageResultList, drawEventPopulationTotalVO, village);
+                    }
+                } else {// 多边形类型
+                    if (GisPointUtil.isInPolygon(Double.parseDouble(village.getLng()),
+                            Double.parseDouble(village.getLat()), eventListDTO.getLngLatList())) {
+                        fillVillageResultList(villageResultList, drawEventPopulationTotalVO, village);
+                    }
+                }
+            });
+        }
+        statisticsVO.setVillageStatisticsList(villageResultList);
+        statisticsVO.setDrawEventPopulationTotalVO(drawEventPopulationTotalVO);
+        statisticsVO.setAgeGroupStatistics(ageGroupStatistics);
+        statisticsVO.generateStatisticsData();
+        List<StatisticsCommVO> eventTypeCircleDrawData = new ArrayList<>();
+        if (!eventResultList.isEmpty()) {
+            Map<Integer, List<EventGridIncidentStatisticsVO>> collect = eventResultList.stream().collect(Collectors.groupingBy(EventGridIncidentStatisticsVO::getType));
+            for (Map.Entry<Integer, List<EventGridIncidentStatisticsVO>> entry : collect.entrySet()) {
+                StatisticsCommVO temp = new StatisticsCommVO();
+                int size = entry.getValue().size();
+                Integer eventTotal = statisticsVO.getEventTotal();
+                temp.setFiled(entry.getKey().toString());
+                temp.setNum(size);
+                temp.setPercent(new BigDecimal(size/eventTotal).setScale(2));
+                eventTypeCircleDrawData.add(temp);
+            }
+        }
+        statisticsVO.setEventTypeCircleDrawData(eventTypeCircleDrawData);
+        return R.ok(statisticsVO);
+    }
+
+    private void fillVillageResultList(List<CivilVillageStatisticsVO> villageResultList,
+                                       ScreenDrawEventPopulationTotalVO drawEventPopulationTotalVO, CivilVillageStatisticsVO village) {
+        villageResultList.add(village);
+        ScreenDrawEventPopulationTotalVO populationTotalVO =
+                this.baseMapper.getVillagePopulationTotalNew(village.getVillageId());
+        if (populationTotalVO != null) {
+            drawEventPopulationTotalVO.setVillageTotal(drawEventPopulationTotalVO.getVillageTotal() + 1);
+            drawEventPopulationTotalVO.setPopulationTotal(drawEventPopulationTotalVO.getPopulationTotal() + populationTotalVO.getPopulationTotal());
+            drawEventPopulationTotalVO.setBuildTotal(drawEventPopulationTotalVO.getBuildTotal() + populationTotalVO.getBuildTotal());
+            drawEventPopulationTotalVO.setHouseTotal(drawEventPopulationTotalVO.getHouseTotal() + populationTotalVO.getHouseTotal());
+            drawEventPopulationTotalVO.setLocalTotal(drawEventPopulationTotalVO.getLocalTotal() + populationTotalVO.getLocalTotal());
+            drawEventPopulationTotalVO.setOutTotal(drawEventPopulationTotalVO.getOutTotal() + populationTotalVO.getOutTotal());
+            drawEventPopulationTotalVO.setDisabilityTotal(drawEventPopulationTotalVO.getDisabilityTotal() + populationTotalVO.getDisabilityTotal());
+            drawEventPopulationTotalVO.setLowSecurityTotal(drawEventPopulationTotalVO.getLowSecurityTotal() + populationTotalVO.getLowSecurityTotal());
+            drawEventPopulationTotalVO.setElderTotal(drawEventPopulationTotalVO.getElderTotal() + populationTotalVO.getElderTotal());
+            drawEventPopulationTotalVO.setSpecialSituationTotal(drawEventPopulationTotalVO.getSpecialSituationTotal() + populationTotalVO.getSpecialSituationTotal());
+            drawEventPopulationTotalVO.setOtherTotal(drawEventPopulationTotalVO.getOtherTotal() + populationTotalVO.getOtherTotal());
+            drawEventPopulationTotalVO.setSpecialHelpTotal(drawEventPopulationTotalVO.getSpecialHelpTotal() + populationTotalVO.getSpecialHelpTotal());
+            drawEventPopulationTotalVO.setVeteransTotal(drawEventPopulationTotalVO.getVeteransTotal() + populationTotalVO.getVeteransTotal());
+            drawEventPopulationTotalVO.setOldTotal(drawEventPopulationTotalVO.getOldTotal() + populationTotalVO.getOldTotal());
+            drawEventPopulationTotalVO.setPensionTotal(drawEventPopulationTotalVO.getPensionTotal() + populationTotalVO.getPensionTotal());
+            drawEventPopulationTotalVO.setRentingHouseTotal(drawEventPopulationTotalVO.getRentingHouseTotal() + populationTotalVO.getRentingHouseTotal());
+            drawEventPopulationTotalVO.setVolunteerTotal(drawEventPopulationTotalVO.getVolunteerTotal() + populationTotalVO.getVolunteerTotal());
+            drawEventPopulationTotalVO.setAverageAge(drawEventPopulationTotalVO.getAverageAge() + populationTotalVO.getAverageAge());
+        }
+    }
+
+    private void countGridIncidentData(GridsGovernanceStatisticsVO statisticsVO, EventGridIncidentStatisticsVO gridIncident) {
+        switch (gridIncident.getType()) {
+            case 1:
+                statisticsVO.setEventZATotal(statisticsVO.getEventZATotal() + 1);
+                if (gridIncident.getStatus().equals(1)) {
+                    statisticsVO.setEventZADeal(statisticsVO.getEventZADeal() + 1);
+                }
+                break;
+            case 2:
+                statisticsVO.setEventMSTotal(statisticsVO.getEventMSTotal() + 1);
+                if (gridIncident.getStatus().equals(1)) {
+                    statisticsVO.setEventMSDeal(statisticsVO.getEventMSDeal() + 1);
+                }
+                break;
+            case 3:
+                statisticsVO.setEventMDTotal(statisticsVO.getEventMDTotal() + 1);
+                if (gridIncident.getStatus().equals(1)) {
+                    statisticsVO.setEventMDDeal(statisticsVO.getEventMDDeal() + 1);
+                }
+                break;
+            case 5:
+                statisticsVO.setEventTFTotal(statisticsVO.getEventTFTotal() + 1);
+                if (gridIncident.getStatus().equals(1)) {
+                    statisticsVO.setEventTFDeal(statisticsVO.getEventTFDeal() + 1);
+                }
+                break;
+            case 6:
+                statisticsVO.setEventTSTotal(statisticsVO.getEventTSTotal() + 1);
+                if (gridIncident.getStatus().equals(1)) {
+                    statisticsVO.setEventTSDeal(statisticsVO.getEventTSDeal() + 1);
+                }
+                break;
+            case 9:
+                statisticsVO.setEventFJTotal(statisticsVO.getEventFJTotal() + 1);
+                if (gridIncident.getStatus().equals(1)) {
+                    statisticsVO.setEventFJDeal(statisticsVO.getEventFJDeal() + 1);
+                }
+                break;
+            case 10:
+                statisticsVO.setOtherTotal(statisticsVO.getOtherTotal() + 1);
+                if (gridIncident.getStatus().equals(1)) {
+                    statisticsVO.setOtherDeal(statisticsVO.getOtherDeal() + 1);
+                }
+                break;
+            default:
+                break;
+        }
+    }
+
+    /**
+     * 大屏-根据小区id查询小区统计人数
+     * 
+     * @param villageId
+     *            小区id
+     * @return 小区统计数据
+     */
+    @Override
+    public R civilVillageStatistics(Long villageId) {
+        ScreenDrawEventPopulationTotalVO result = this.baseMapper.getVillagePopulationTotal(villageId);
+        result.setVillageTotal(1);
+        return R.ok(result);
+    }
+
+    /**
+     * 查询所有网格员工作汇总数据
+     * 
+     * @param statisticsAdminDTO
+     *            请求参数
+     * @return 网格员工作汇总数据
+     */
+    @Override
+    public R gridMemberStatisticsAll(MemberStatisticsAdminDTO statisticsAdminDTO) {
+        return R.ok(eventGridMemberRelationMapper.gridMemberStatisticsAll(statisticsAdminDTO));
+    }
+
+    /**
+     * 大屏-新根据小区id查询小区统计人数
+     *
+     * @param villageId
+     *            小区id
+     * @return 小区统计数据
+     */
+    @Override
+    public R civilVillageStatisticsNew(Long villageId) {
+        GridsGovernanceStatisticsVO statisticsVO = new GridsGovernanceStatisticsVO();
+        List<Long> villageIds = new ArrayList<>();
+        villageIds.add(villageId);
+        List<StatisticsCommVO> ageGroupStatistics = this.baseMapper.selectStatisticsForAge(villageIds);
+        ScreenDrawEventPopulationTotalVO populationTotalVO = this.baseMapper.getVillagePopulationTotalNew(villageId);
+        statisticsVO.setAgeGroupStatistics(ageGroupStatistics);
+        statisticsVO.setDrawEventPopulationTotalVO(populationTotalVO);
+        return R.ok(statisticsVO);
+    }
+
+    /**
+     * 西区大数据分析平台-综合治理栏
+     * @return
+     */
+    @Override
+    public R getComprehensiveGovernanceStatics() {
+        EventComprehensiveGovernanceStatisticsVO governanceStatisticsVO = this.baseMapper.selectComprehensiveGovernanceStatics();
+        governanceStatisticsVO.generateGovernanceTotal();
+        return R.ok(governanceStatisticsVO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventSpecialCrowdRecordServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventSpecialCrowdRecordServiceImpl.java
new file mode 100644
index 0000000..7083a25
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventSpecialCrowdRecordServiceImpl.java
@@ -0,0 +1,22 @@
+package com.panzhihua.service_grid.service.impl;
+
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.service_grid.dao.EventSpecialCrowdRecordMapper;
+import com.panzhihua.service_grid.model.dos.EventSpecialCrowdRecordDO;
+import com.panzhihua.service_grid.service.EventSpecialCrowdRecordService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-06-22 15:37:01
+ * @describe 事件-特殊人群上报人口关联表服务实现类
+ */
+@Slf4j
+@Service
+public class EventSpecialCrowdRecordServiceImpl extends
+    ServiceImpl<EventSpecialCrowdRecordMapper, EventSpecialCrowdRecordDO> implements EventSpecialCrowdRecordService {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventTransferRecordServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventTransferRecordServiceImpl.java
new file mode 100644
index 0000000..d768c97
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventTransferRecordServiceImpl.java
@@ -0,0 +1,115 @@
+package com.panzhihua.service_grid.service.impl;
+
+import java.util.Date;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+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.model.dtos.grid.EventTransferRecordAddDTO;
+import com.panzhihua.common.model.dtos.grid.EventTransferRecordDeleteDTO;
+import com.panzhihua.common.model.dtos.grid.EventTransferRecordEditDTO;
+import com.panzhihua.common.model.dtos.grid.PageEventTransferRecordDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.EventTransferRecordDetailsVO;
+import com.panzhihua.common.model.vos.grid.EventTransferRecordVO;
+import com.panzhihua.service_grid.dao.EventTransferRecordMapper;
+import com.panzhihua.service_grid.model.dos.EventTransferRecordDO;
+import com.panzhihua.service_grid.service.EventTransferRecordService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:03:01
+ * @describe 订单表服务实现类
+ */
+@Slf4j
+@Service
+public class EventTransferRecordServiceImpl extends ServiceImpl<EventTransferRecordMapper, EventTransferRecordDO>
+    implements EventTransferRecordService {
+
+    @Resource
+    private EventTransferRecordMapper eventTransferRecordMapper;
+
+    /**
+     * 新增事件处理流转记录
+     * 
+     * @param eventTransferRecordAddDTO
+     * @return 新增结果
+     */
+    public R add(EventTransferRecordAddDTO eventTransferRecordAddDTO) {
+        EventTransferRecordDO eventTransferRecordDO = new EventTransferRecordDO();
+        BeanUtils.copyProperties(eventTransferRecordAddDTO, eventTransferRecordDO);
+        eventTransferRecordDO.setCreateAt(new Date());
+        if (eventTransferRecordMapper.insert(eventTransferRecordDO) > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 修改事件处理流转记录
+     * 
+     * @param eventTransferRecordEditDTO
+     * @return 维护结果
+     */
+    public R edit(EventTransferRecordEditDTO eventTransferRecordEditDTO) {
+        EventTransferRecordDO eventTransferRecordDO = new EventTransferRecordDO();
+        BeanUtils.copyProperties(eventTransferRecordEditDTO, eventTransferRecordDO);
+        // eventTransferRecordDO.setUpdateAt(new Date());
+        if (eventTransferRecordMapper.updateById(eventTransferRecordDO) > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 分页查找事件处理流转记录
+     * 
+     * @param pageEventTransferRecordDTO
+     * @return 维护结果
+     */
+    public R<IPage<EventTransferRecordVO>> query(PageEventTransferRecordDTO pageEventTransferRecordDTO) {
+        Page page = new Page(1, 10);
+        if (pageEventTransferRecordDTO.getPageNum() != null) {
+            page.setCurrent(pageEventTransferRecordDTO.getPageNum());
+        }
+        if (pageEventTransferRecordDTO.getPageSize() != null) {
+            page.setSize(pageEventTransferRecordDTO.getPageSize());
+        }
+        return R.ok(eventTransferRecordMapper.findByPage(page, pageEventTransferRecordDTO));
+    }
+
+    /**
+     * 删除事件处理流转记录
+     * 
+     * @param EventTransferRecordDeleteDTO
+     * @return 平台用户信息
+     */
+    public R delete(EventTransferRecordDeleteDTO EventTransferRecordDeleteDTO) {
+        return R.fail();
+    }
+
+    /**
+     * 查询事件处理流转记录详细信息
+     * 
+     * @param id
+     *            事件处理流转记录 id
+     * @return 查找结果
+     */
+    public R<EventTransferRecordDetailsVO> eventTransferRecordDetails(Long id) {
+        EventTransferRecordDO eventTransferRecordDO = eventTransferRecordMapper.selectById(id);
+        if (eventTransferRecordDO != null) {
+            EventTransferRecordDetailsVO eventTransferRecordDetailsVO = new EventTransferRecordDetailsVO();
+            BeanUtils.copyProperties(eventTransferRecordDO, eventTransferRecordDetailsVO);
+            return R.ok(eventTransferRecordDetailsVO);
+        }
+        return R.fail();
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventVisitingTasksServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventVisitingTasksServiceImpl.java
new file mode 100644
index 0000000..3cdb220
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/EventVisitingTasksServiceImpl.java
@@ -0,0 +1,684 @@
+package com.panzhihua.service_grid.service.impl;
+
+import java.util.*;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.vos.community.ComMngPopulationCommunityTagsVo;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.LabelUtils;
+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.CollectionUtils;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.enums.EventTasksStatusEnum;
+import com.panzhihua.common.enums.PopulPoliticalOutlookEnum;
+import com.panzhihua.common.model.dtos.EventResourceDTO;
+import com.panzhihua.common.model.dtos.IdDTO;
+import com.panzhihua.common.model.dtos.grid.*;
+import com.panzhihua.common.model.dtos.visit.EventVisitCompleteDTO;
+import com.panzhihua.common.model.helper.AESUtil;
+import com.panzhihua.common.model.query.visit.EventTasksQuery;
+import com.panzhihua.common.model.query.visit.EventVisitListQuery;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.grid.EventResourceVO;
+import com.panzhihua.common.model.vos.visit.*;
+import com.panzhihua.common.utlis.CopyUtil;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_grid.dao.EventGridDataMapper;
+import com.panzhihua.service_grid.dao.EventResourceMapper;
+import com.panzhihua.service_grid.dao.EventVisitingTasksMapper;
+import com.panzhihua.service_grid.model.dos.EventGridDataDO;
+import com.panzhihua.service_grid.model.dos.EventResourceDO;
+import com.panzhihua.service_grid.model.dos.EventVisitingTasksDO;
+import com.panzhihua.service_grid.service.EventResourceService;
+import com.panzhihua.service_grid.service.EventVisitingTasksService;
+
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.DateUtil;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-04-14 15:03:01
+ * @describe 订单表服务实现类
+ */
+@Slf4j
+@Service
+public class EventVisitingTasksServiceImpl extends ServiceImpl<EventVisitingTasksMapper, EventVisitingTasksDO>
+    implements EventVisitingTasksService {
+
+    @Resource
+    private EventVisitingTasksMapper eventVisitingTasksMapper;
+
+    @Resource
+    private EventResourceMapper eventResourceMapper;
+
+    @Resource
+    private EventResourceService eventResourceService;
+
+    @Resource
+    private EventGridDataMapper eventGridDataMapper;
+
+    @Value("${domain.aesKey:}")
+    private String aesKey;
+
+    /**
+     * 新增重点人群走访记录
+     *
+     * @param eventVisitingTasksAddDTO
+     * @return 新增结果
+     */
+    public R add(EventVisitingTasksAddDTO eventVisitingTasksAddDTO) {
+        EventVisitingTasksDO eventVisitingTasksDO = new EventVisitingTasksDO();
+        BeanUtils.copyProperties(eventVisitingTasksAddDTO, eventVisitingTasksDO);
+        eventVisitingTasksDO.setCreateAt(new Date());
+        if (eventVisitingTasksMapper.insert(eventVisitingTasksDO) > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 修改重点人群走访记录
+     * 
+     * @param eventVisitingTasksEditDTO
+     * @return 维护结果
+     */
+    public R edit(EventVisitingTasksEditDTO eventVisitingTasksEditDTO) {
+        EventVisitingTasksDO eventVisitingTasksDO = new EventVisitingTasksDO();
+        BeanUtils.copyProperties(eventVisitingTasksEditDTO, eventVisitingTasksDO);
+        // eventVisitingTasksDO.setUpdateAt(new Date());
+        if (eventVisitingTasksMapper.updateById(eventVisitingTasksDO) > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 分页查找重点人群走访记录
+     * 
+     * @param pageEventVisitingTasksDTO
+     * @return 维护结果
+     */
+    public R<IPage<EventVisitingTasksVO>> query(PageEventVisitingTasksDTO pageEventVisitingTasksDTO) {
+        Page page = new Page(1, 10);
+        if (pageEventVisitingTasksDTO.getPageNum() != null) {
+            page.setCurrent(pageEventVisitingTasksDTO.getPageNum());
+        }
+        if (pageEventVisitingTasksDTO.getPageSize() != null) {
+            page.setSize(pageEventVisitingTasksDTO.getPageSize());
+        }
+        return R.ok();
+    }
+
+    /**
+     * 删除重点人群走访记录
+     *
+     * @param EventVisitingTasksDeleteDTO
+     * @return 平台用户信息
+     */
+    public R delete(EventVisitingTasksDeleteDTO EventVisitingTasksDeleteDTO) {
+        return R.fail();
+    }
+
+    /**
+     * 查询重点人群走访记录详细信息
+     *
+     * @param id
+     *            重点人群走访记录 id
+     * @return 查找结果
+     */
+    public R<EventVisitingTasksDetailsVO> eventVisitingTasksDetails(Long id) {
+        EventVisitingTasksDO eventVisitingTasksDO = eventVisitingTasksMapper.selectById(id);
+        if (eventVisitingTasksDO != null) {
+            EventVisitingTasksDetailsVO eventVisitingTasksDetailsVO = new EventVisitingTasksDetailsVO();
+            BeanUtils.copyProperties(eventVisitingTasksDO, eventVisitingTasksDetailsVO);
+            eventVisitingTasksDetailsVO
+                .setImgList(eventResourceMapper.findListByRefId(eventVisitingTasksDO.getId(), 2, 1));
+            eventVisitingTasksDetailsVO
+                .setVosList(eventResourceMapper.findListByRefId(eventVisitingTasksDO.getId(), 2, 2));
+            eventVisitingTasksDetailsVO
+                .setVideoList(eventResourceMapper.findListByRefId(eventVisitingTasksDO.getId(), 2, 3));
+            return R.ok(eventVisitingTasksDetailsVO);
+        }
+        return R.fail();
+    }
+
+    @Override
+    public R count(Long communityId) {
+
+        Map<String, Long> countMap = eventVisitingTasksMapper.count(communityId);
+        EventVisitCountVO eventVisitCountVO = new EventVisitCountVO();
+        eventVisitCountVO.setVisit(countMap.get("visit"));
+        eventVisitCountVO.setVisited(countMap.get("visited"));
+        eventVisitCountVO.setCanceled(countMap.get("canceled"));
+        return R.ok(eventVisitCountVO);
+    }
+
+    @Override
+    public R taskList(EventTasksQuery query) throws Exception {
+
+        IPage<EventVisitingTasksVO> page =
+            eventVisitingTasksMapper.findListByPage(new Page(query.getPageNum(), query.getPageSize()), query);
+        for (EventVisitingTasksVO eventVisitingTasksVO : page.getRecords()) {
+            if (eventVisitingTasksVO.getNationCode() != null) {
+                eventVisitingTasksVO
+                    .setNation(PopulPoliticalOutlookEnum.getCnDescByName(eventVisitingTasksVO.getNationCode()));
+            }
+            //查询该人口的标签
+            List<ComMngPopulationCommunityTagsVo> communityTagsList = this.baseMapper.getCommunityTagList(eventVisitingTasksVO.getVisiterId());
+            String label = LabelUtils.assembleLabel(communityTagsList);
+            eventVisitingTasksVO.setLabel(label);
+        }
+        return R.ok(page);
+    }
+
+    @Override
+    public R appTaskList(EventTasksQuery query) throws Exception {
+
+        IPage<EventVisitingTasksVO> page =
+            eventVisitingTasksMapper.appFindListByPage(new Page(query.getPageNum(), query.getPageSize()), query);
+        for (EventVisitingTasksVO eventVisitingTasksVO : page.getRecords()) {
+            if (eventVisitingTasksVO.getNationCode() != null) {
+                eventVisitingTasksVO
+                    .setNation(PopulPoliticalOutlookEnum.getCnDescByName(eventVisitingTasksVO.getNationCode()));
+            }
+
+            //查询该人口的标签
+            List<ComMngPopulationCommunityTagsVo> communityTagsList = this.baseMapper.getCommunityTagList(eventVisitingTasksVO.getVisiterId());
+            String label = LabelUtils.assembleLabel(communityTagsList);
+            eventVisitingTasksVO.setLabel(label);
+        }
+        return R.ok(page);
+    }
+
+    @Transactional
+    @Override
+    public R delete(IdDTO idDTO, Long communityId) {
+        String[] ids = idDTO.getId().split(",");
+        for (String id : ids) {
+            EventVisitingTasksDO eventVisitingTasksDO = eventVisitingTasksMapper.selectById(Long.valueOf(id));
+            if (eventVisitingTasksDO != null) {
+                if (!Objects.equals(eventVisitingTasksDO.getEventStatus(), EventTasksStatusEnum.DZF.getCode())) {
+                    return R.fail("您选择的走访任务中有已走访的不可删除");
+                }
+                eventVisitingTasksMapper.deleteById(id);
+            }
+        }
+        return R.ok();
+    }
+
+    private String toDelete(Long id) {
+        EventVisitingTasksDO eventVisitingTasksDO = eventVisitingTasksMapper.selectById(id);
+        if (eventVisitingTasksDO == null) {
+            return "[" + id + "]数据不存在;";
+        }
+        if (!Objects.equals(eventVisitingTasksDO.getEventStatus(), EventTasksStatusEnum.DZF.getCode())) {
+            return "[" + eventVisitingTasksDO.getVisiterName() + "]状态不可删除;";
+        }
+        eventVisitingTasksMapper.deleteById(id);
+        return null;
+    }
+
+    @Override
+    public R visitorList(EventVisitListQuery query) {
+        IPage<EventVisitListVO> page =
+            eventVisitingTasksMapper.visitorList(new Page(query.getPageNum(), query.getPageSize()), query);
+        page.getRecords().stream().forEach(e -> {
+            List<EventVisitingTasksDO> list =
+                eventVisitingTasksMapper.selectList(new QueryWrapper<EventVisitingTasksDO>().eq("visiter_id", e.getId())
+                    .orderByDesc("id").last("limit 0,1"));
+            if (!CollectionUtils.isEmpty(list)) {
+                e.setCreateAt(list.get(0).getCreateAt());
+                e.setEventStatus(list.get(0).getEventStatus());
+            }
+        });
+        return R.ok(page);
+    }
+
+    @Override
+    public R list(EventTasksQuery query) {
+        IPage<AppVisitTasksVO> page =
+            eventVisitingTasksMapper.list(new Page(query.getPageNum(), query.getPageSize()), query);
+        return R.ok(page);
+    }
+
+    @Override
+    public R detail(Long id){
+        EventVisitingTasksDO eventVisitingTasksDO = eventVisitingTasksMapper.selectById(id);
+        if (eventVisitingTasksDO != null) {
+            EventVisitingTasksDetailsVO eventVisitingTasksDetailsVO = new EventVisitingTasksDetailsVO();
+            BeanUtils.copyProperties(eventVisitingTasksDO, eventVisitingTasksDetailsVO);
+            if (StringUtils.isNotEmpty(eventVisitingTasksDO.getVisiterTele())) {
+                try {
+                    eventVisitingTasksDetailsVO
+                            .setVisiterPhone(AESUtil.decrypt128(eventVisitingTasksDO.getVisiterTele(), aesKey));
+                    eventVisitingTasksDetailsVO
+                            .setVisiterTele(AESUtil.decrypt128(eventVisitingTasksDO.getVisiterTele(), aesKey));
+                }catch (Exception e){
+                    log.error("手机号码转义失败");
+                }
+            }
+            if(StringUtils.isNotEmpty(eventVisitingTasksDO.getTableContentJson())){
+                JSONObject jsonObject = JSONObject.parseObject(eventVisitingTasksDO.getTableContentJson());
+                eventVisitingTasksDetailsVO
+                        .setTableContentJson(JSONObject.parseObject(eventVisitingTasksDO.getTableContentJson()));
+                if (jsonObject != null && jsonObject.get("check") != null) {
+                    eventVisitingTasksDetailsVO.setOption(jsonObject.get("check").toString());
+                }
+            }
+
+            // 查询资源文件
+            eventVisitingTasksDetailsVO
+                .setImgList(eventResourceMapper.findListByRefId(eventVisitingTasksDO.getId(), 2, 1));
+            eventVisitingTasksDetailsVO
+                .setVosList(eventResourceMapper.findListByRefId(eventVisitingTasksDO.getId(), 2, 2));
+            eventVisitingTasksDetailsVO
+                .setVideoList(eventResourceMapper.findListByRefId(eventVisitingTasksDO.getId(), 2, 3));
+            eventVisitingTasksDetailsVO.setHappentAddress(eventVisitingTasksDO.getAddress());
+            return R.ok(eventVisitingTasksDetailsVO);
+        }
+        return R.fail();
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public R add(IdDTO idDTO, Long communityId, Long userId) throws Exception {
+
+        // Map<String,Object> map = eventVisitingTasksMapper.findUserByCommunityId(communityId,6);
+        // if(CollectionUtils.isEmpty(map)){
+        // return R.fail("网格员不存在");
+        // }
+
+        StringBuilder rt = new StringBuilder();
+        String[] id = idDTO.getId().split(",");
+        for (String idstr : id) {
+            if (StringUtils.isEmpty(idstr)) {
+                continue;
+            }
+            String error = addVisitingTask(Long.valueOf(idstr), idDTO.getGridId(), userId);
+            if (!StringUtils.isEmpty(error)) {
+                rt.append(error);
+            }
+        }
+        if (!StringUtils.isEmpty(rt)) {
+            return R.fail("部分新增失败" + rt.toString());
+        }
+        return R.ok();
+    }
+
+    @Override
+    public List<EventVisitingTasksVO> exportTaskList(EventTasksQuery query) throws Exception {
+        IPage<EventVisitingTasksVO> page =
+            eventVisitingTasksMapper.findListByPage(new Page(query.getPageNum(), query.getPageSize()), query);
+        return page.getRecords();
+    }
+
+    private String addVisitingTask(Long id, Long gridId, Long userId) throws Exception {
+
+        Map<String, Object> map = eventVisitingTasksMapper.findPopulationById(id);
+        if (CollectionUtils.isEmpty(map)) {
+            return "被访问人ID[" + id + "]不存在;";
+        }
+
+        Integer count = eventVisitingTasksMapper.countNoneComplete(id);
+        if (count > 0) {
+            return "被访问人[" + map.get("name") + "]只能同时存在一条待走访任务;";
+        }
+
+        EventVisitingTasksDO visitingTasksDO = new EventVisitingTasksDO();
+        visitingTasksDO.setGridId(gridId);
+        // 查询网格
+        EventGridDataDO gridDataDO = eventGridDataMapper.selectById(gridId);
+        if (gridDataDO != null) {
+            visitingTasksDO.setGridMemberCommunity(gridDataDO.getGridCommunityId());
+            visitingTasksDO.setGridMemberStreet(gridDataDO.getGridStreetId());
+        }
+        // visitingTasksDO.setGridMemberStreet(Long.valueOf(gridMap.get("street_id").toString()));
+        // visitingTasksDO.setGridMemberCommunity(communityId);
+        // visitingTasksDO.setGridMember(Long.valueOf(gridMap.get("user_id").toString()));
+        // visitingTasksDO.setGridMemberName(gridMap.get("name").toString());
+        // visitingTasksDO.setGridMenberTele(gridMap.get("phone") ==null?"":gridMap.get("phone").toString());
+        visitingTasksDO.setVisiterId(Long.valueOf(map.get("id").toString()));
+        visitingTasksDO.setVisiterName(map.get("name").toString());
+        visitingTasksDO.setVisiterSex(Integer.valueOf(map.get("sex").toString()));
+        visitingTasksDO.setVisiterTele(map.get("phone") == null ? null : map.get("phone").toString());
+        StringBuilder sb = new StringBuilder();
+        sb.append(map.get("address")).append(map.get("road")).append(map.get("door_no")).append(map.get("floor"))
+            .append("栋").append(map.get("unit_no")).append("单元").append(map.get("house_no")).append("号");
+        visitingTasksDO.setVisiterAddress(sb.toString());
+        visitingTasksDO.setVisiterType(0);
+        visitingTasksDO.setActOpara(0);
+        if (map.get("lat") != null && map.get("lng") != null) {
+            visitingTasksDO.setHappentLatLng(map.get("lat") + "," + map.get("lng"));
+        }
+        visitingTasksDO.setEventStatus(EventTasksStatusEnum.DZF.getCode());
+        visitingTasksDO.setReporting(0);
+        visitingTasksDO.setInvalid(false);
+        visitingTasksDO.setUrgent(false);
+        visitingTasksDO.setUrgentDell(false);
+        visitingTasksDO.setCreateBy(userId);
+        visitingTasksDO.setOutOrLocal(
+            map.get("out_or_local") == null ? null : Integer.valueOf(map.get("out_or_local").toString()));
+
+        if (map.get("label") != null) {
+            List<String> option = getOption(map.get("label").toString());
+            if (!CollectionUtils.isEmpty(option)) {
+                JSONObject json = new JSONObject();
+                json.put("option", option);
+                visitingTasksDO.setTableContentJson(json.toJSONString());
+            }
+        }
+
+        eventVisitingTasksMapper.insert(visitingTasksDO);
+        return null;
+    }
+
+    private List<String> getOption(String label) {
+        List<String> option = new ArrayList<>();
+        if (!Objects.isNull(label)) {
+            if (label.contains("精神障碍")) {
+                option.add("精神障碍异常1");
+                option.add("精神障碍异常2");
+                option.add("精神障碍异常3");
+                option.add("精神障碍异常4");
+
+            } else if (label.contains("吸毒")) {
+                option.add("疑似复吸");
+                option.add("失联");
+                option.add("复吸");
+                option.add("空挂户");
+            } else if (label.contains("刑满释放")) {
+                option.add("刑满释放异常1");
+                option.add("刑满释放异常2");
+                option.add("刑满释放异常3");
+                option.add("刑满释放异常4");
+            } else if (label.contains("社区矫正")) {
+                option.add("社区矫正异常1");
+                option.add("社区矫正异常2");
+                option.add("社区矫正异常3");
+                option.add("社区矫正异常4");
+            }
+            option.add("无异常");
+        }
+        return option;
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public R cancel(IdDTO idDTO) {
+
+        EventVisitingTasksDO eventVisitingTasksDO = eventVisitingTasksMapper.selectById(Long.valueOf(idDTO.getId()));
+        if (eventVisitingTasksDO == null
+            || eventVisitingTasksDO.getEventStatus() != EventTasksStatusEnum.DZF.getCode()) {
+            return R.fail("当前状态不可撤销");
+        }
+        int rt = eventVisitingTasksMapper.cancel(eventVisitingTasksDO.getId(), 5);
+        if (rt > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public R reset(IdDTO idDTO) {
+
+        EventVisitingTasksDO eventVisitingTasksDO = eventVisitingTasksMapper.selectById(Long.valueOf(idDTO.getId()));
+        if (eventVisitingTasksDO == null || eventVisitingTasksDO.getEventStatus() != 5) {
+            return R.fail("当前状态不可恢复");
+        }
+        int rt = eventVisitingTasksMapper.updateEventStatus(eventVisitingTasksDO.getId(),
+            EventTasksStatusEnum.DZF.getCode());
+        if (rt > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public synchronized R start(Long id, Long userId) {
+        EventVisitingTasksDO eventVisitingTasksDO = eventVisitingTasksMapper.selectById(id);
+        if (eventVisitingTasksDO == null
+            || eventVisitingTasksDO.getEventStatus() != EventTasksStatusEnum.DZF.getCode()) {
+            return R.fail("当前状态不可开始走访");
+        }
+        Map<String, Object> map = eventVisitingTasksMapper.findUserById(userId);
+        EventVisitingTasksDO start = new EventVisitingTasksDO();
+        start.setId(id);
+        start.setGridMemberStreet(Long.valueOf(map.get("street_id").toString()));
+        start.setGridMemberCommunity(Long.valueOf(map.get("community_id").toString()));
+        start.setGridMember(Long.valueOf(map.get("user_id").toString()));
+        start.setGridMemberName(map.get("name").toString());
+        start.setGridMenberTele(map.get("phone") == null ? "" : map.get("phone").toString());
+        start.setEventStatus(EventTasksStatusEnum.YJJ.getCode());
+        int rt = eventVisitingTasksMapper.start(start);
+        if (rt > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public R complete(EventVisitCompleteDTO taskCompleteDTO) {
+        EventVisitingTasksDO eventVisitingTasksDO = eventVisitingTasksMapper.selectById(taskCompleteDTO.getId());
+        if (eventVisitingTasksDO == null
+            || eventVisitingTasksDO.getEventStatus() != EventTasksStatusEnum.DZF.getCode()) {
+            return R.fail("当前状态不可完成走访");
+        }
+
+        // 查询当前人员是否是(精神障碍,吸毒,刑满释放,社区矫正),如果是这四种状态,option参数为必填参数
+        String label = this.baseMapper.getPopulationLabel(eventVisitingTasksDO.getVisiterId());
+        if (StringUtils.isNotEmpty(label)) {
+            if (label.contains("精神障碍") || label.contains("吸毒") || label.contains("刑满释放") || label.contains("社区矫正")) {
+                if(taskCompleteDTO.getException().equals(EventVisitingTasksDO.exception.yes) && StringUtils.isNotEmpty(taskCompleteDTO.getOption())){
+                    return R.fail("请选择异常状态");
+                }
+//                if (StringUtils.isNotEmpty(taskCompleteDTO.getOption())) {
+//                    return R.fail("请选择异常状态");
+//                }
+            }
+        }
+
+        EventVisitingTasksDO complete = new EventVisitingTasksDO();
+        BeanUtils.copyProperties(taskCompleteDTO, complete);
+        complete.setEventStatus(EventTasksStatusEnum.YJJ.getCode());
+
+        complete.setSubmitDate(DateUtil.parse(taskCompleteDTO.getSubmitDate(), DatePattern.NORM_DATETIME_FORMAT));
+        if (StringUtils.isNotEmpty(eventVisitingTasksDO.getTableContentJson())) {
+            JSONObject json = JSONObject.parseObject(eventVisitingTasksDO.getTableContentJson());
+            if (StringUtils.isNotEmpty(taskCompleteDTO.getOption())) {
+                json.put("check", taskCompleteDTO.getOption());
+            }
+            complete.setTableContentJson(json.toJSONString());
+        }
+
+        if (!StringUtils.isEmpty(taskCompleteDTO.getImgList())) {
+            taskCompleteDTO.getImgList().forEach(e -> {
+                createResource(eventVisitingTasksDO.getId(), taskCompleteDTO.getUserId(), 2, 1, e);
+            });
+        }
+        if (!CollectionUtils.isEmpty(taskCompleteDTO.getVosList())) {
+            taskCompleteDTO.getVosList().forEach(e -> {
+                createResource(eventVisitingTasksDO.getId(), taskCompleteDTO.getUserId(), 2, 2, e);
+            });
+        }
+        if (!CollectionUtils.isEmpty(taskCompleteDTO.getVideoList())) {
+            taskCompleteDTO.getVideoList().forEach(e -> {
+                createResource(eventVisitingTasksDO.getId(), taskCompleteDTO.getUserId(), 2, 3, e);
+            });
+        }
+
+        Map<String, Object> map = eventVisitingTasksMapper.findUserById(taskCompleteDTO.getUserId());
+        complete.setGridMemberStreet(Long.valueOf(map.get("street_id").toString()));
+        complete.setGridMemberCommunity(Long.valueOf(map.get("community_id").toString()));
+        complete.setGridMember(Long.valueOf(map.get("user_id").toString()));
+        complete.setGridMemberName(map.get("name").toString());
+        complete.setGridMenberTele(map.get("phone") == null ? "" : map.get("phone").toString());
+
+        int rt = eventVisitingTasksMapper.updateById(complete);
+        if (rt > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    private void createResource(Long id, Long dellUserId, int classification, int type, EventResourceDTO resourceDTO) {
+        EventResourceDO eventResourceDO = new EventResourceDO();
+        eventResourceDO.setRefId(id);
+        eventResourceDO.setClassification(classification);
+        eventResourceDO.setType(type);
+        eventResourceDO.setCreateBy(dellUserId);
+        eventResourceDO.setUrl(resourceDTO.getUrl());
+        eventResourceDO.setResourceTime(resourceDTO.getResourceTime());
+        eventResourceMapper.insert(eventResourceDO);
+    }
+
+    @Override
+    public List<LcEventVisitingTasksListDTO> getUnUploadVisitingTask() {
+        List<LcEventVisitingTasksListDTO> lcEventVisitingTasksList = new ArrayList<>();
+        List<EventVisitingTasksDO> eventVisitingTasksList = baseMapper
+            .selectList(new QueryWrapper<EventVisitingTasksDO>().eq("lc_upload", false).eq("event_status", 2));
+        lcEventVisitingTasksList = CopyUtil.beanCopyList(eventVisitingTasksList, LcEventVisitingTasksListDTO.class);
+        lcEventVisitingTasksList.forEach(visitingTasks -> {
+            addVisitingTasksFile(visitingTasks);
+        });
+        return lcEventVisitingTasksList;
+    }
+
+    private LcEventVisitingTasksListDTO addVisitingTasksFile(LcEventVisitingTasksListDTO visitingTasks) {
+        // 查询事件关联附件
+        List<EventResourceDO> eventResourceDOList =
+            eventResourceService.getBaseMapper().selectList(new LambdaQueryWrapper<EventResourceDO>()
+                .eq(EventResourceDO::getClassification, 2).eq(EventResourceDO::getRefId, visitingTasks.getId()));
+        List<EventResourceVO> picList = new ArrayList<>();
+        List<EventResourceVO> audioList = new ArrayList<>();
+        List<EventResourceVO> videoList = new ArrayList<>();
+        eventResourceDOList.forEach(eventResourceDO -> {
+            switch (eventResourceDO.getType()) {
+                case 1:
+                    EventResourceVO picEventResourceVO = new EventResourceVO();
+                    BeanUtils.copyProperties(eventResourceDO, picEventResourceVO);
+                    picList.add(picEventResourceVO);
+                    break;
+                case 2:
+                    EventResourceVO audioResourceVO = new EventResourceVO();
+                    BeanUtils.copyProperties(eventResourceDO, audioResourceVO);
+                    audioList.add(audioResourceVO);
+                    break;
+                case 3:
+                    EventResourceVO videoResourceVO = new EventResourceVO();
+                    BeanUtils.copyProperties(eventResourceDO, videoResourceVO);
+                    videoList.add(videoResourceVO);
+                    break;
+            }
+        });
+        visitingTasks.setAudios(audioList);
+        visitingTasks.setPics(picList);
+        visitingTasks.setVideos(videoList);
+        return visitingTasks;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Boolean updateLcUploadFlagVisitingTask(Long id) {
+        EventVisitingTasksDO eventVisitingTasksDO = baseMapper.selectById(id);
+        eventVisitingTasksDO.setLcUpload(true);
+        int flag = baseMapper.updateById(eventVisitingTasksDO);
+        if (flag > 0) {
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * 定时任务-给上月已走访的人员创建定时任务
+     * @return  执行结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R timedTaskVisitingJobHandler(){
+
+        //需要创建的走访任务列表
+        List<EventVisitingTasksDO> saveList = new ArrayList<>();
+
+        //获取上月第一天时间
+        Date lastMonthFirst = DateUtils.getLastMonthFirst();
+//        Date lastMonthFirst = DateUtils.getYearMonthStart(2022,7);
+        //获取上月最后一天时间/
+        Date lastMonthEnd = DateUtils.getLastMonthEnd();
+//        Date lastMonthEnd =  DateUtils.getYearMonthStart(2022,8);
+
+        log.error("第一天时间"+lastMonthFirst);
+        log.error("第一天时间"+lastMonthEnd);
+
+        //查询上月已走访任务
+        List<EventVisitingTasksDO> visitingTasksList = this.baseMapper.selectList(new QueryWrapper<EventVisitingTasksDO>().lambda()
+                .eq(EventVisitingTasksDO::getEventStatus,EventVisitingTasksDO.eventStatus.yzf)
+                .ge(EventVisitingTasksDO::getSubmitDate,lastMonthFirst)
+                .le(EventVisitingTasksDO::getSubmitDate,lastMonthEnd));
+
+        log.error("走访对象"+visitingTasksList.size());
+
+        visitingTasksList.forEach(visitingTask -> {
+            EventVisitingTasksDO visitingTasksDO = dataConversion(visitingTask);
+            saveList.add(visitingTasksDO);
+        });
+
+        log.error("走访新对象"+saveList.size());
+
+        if(saveList.size() > 0){
+            this.saveBatch(saveList);
+        }
+        return R.ok();
+    }
+
+    /**
+     * 数据转换
+     * @param oldVisitingTasksDO    请求参数
+     * @return  转换后的对象
+     */
+    private EventVisitingTasksDO dataConversion(EventVisitingTasksDO oldVisitingTasksDO){
+        //创建走访任务新对象
+        EventVisitingTasksDO visitingTasksDO = new EventVisitingTasksDO();
+        visitingTasksDO.setGridId(oldVisitingTasksDO.getGridId());
+        visitingTasksDO.setGridMemberCommunity(oldVisitingTasksDO.getGridMemberCommunity());
+        visitingTasksDO.setGridMemberStreet(oldVisitingTasksDO.getGridMemberStreet());
+        visitingTasksDO.setGridMember(oldVisitingTasksDO.getGridMember());
+        visitingTasksDO.setGridMemberName(oldVisitingTasksDO.getGridMemberName());
+        visitingTasksDO.setGridMenberTele(oldVisitingTasksDO.getGridMenberTele());
+        visitingTasksDO.setVisiterId(oldVisitingTasksDO.getVisiterId());
+        visitingTasksDO.setVisiterName(oldVisitingTasksDO.getVisiterName());
+        visitingTasksDO.setVisiterSex(oldVisitingTasksDO.getVisiterSex());
+        visitingTasksDO.setVisiterTele(oldVisitingTasksDO.getVisiterTele());
+        visitingTasksDO.setVisiterAddress(oldVisitingTasksDO.getVisiterAddress());
+        visitingTasksDO.setVisiterAddress(oldVisitingTasksDO.getVisiterAddress());
+        visitingTasksDO.setVisiterAddress(oldVisitingTasksDO.getVisiterAddress());
+        visitingTasksDO.setVisiterType(0);
+        visitingTasksDO.setActOpara(0);
+        visitingTasksDO.setHappentLatLng(oldVisitingTasksDO.getHappentLatLng());
+        visitingTasksDO.setEventStatus(EventTasksStatusEnum.DZF.getCode());
+        visitingTasksDO.setReporting(0);
+        visitingTasksDO.setInvalid(false);
+        visitingTasksDO.setUrgent(false);
+        visitingTasksDO.setUrgentDell(false);
+        visitingTasksDO.setCreateBy(oldVisitingTasksDO.getCreateBy());
+        visitingTasksDO.setOutOrLocal(oldVisitingTasksDO.getOutOrLocal());
+        if(oldVisitingTasksDO.getTableContentJson() != null){
+            visitingTasksDO.setTableContentJson(oldVisitingTasksDO.getTableContentJson());
+        }
+        return visitingTasksDO;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/LcCompareCodeServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/LcCompareCodeServiceImpl.java
new file mode 100644
index 0000000..c5c415e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/java/com/panzhihua/service_grid/service/impl/LcCompareCodeServiceImpl.java
@@ -0,0 +1,62 @@
+package com.panzhihua.service_grid.service.impl;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_grid.dao.LcCompareCodeMapper;
+import com.panzhihua.service_grid.dao.LcCompareMemberCodeMapper;
+import com.panzhihua.service_grid.model.dos.LcCompareCodeDO;
+import com.panzhihua.service_grid.model.dos.LcCompareCodeMemberDO;
+import com.panzhihua.service_grid.service.LcCompareCodeService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * program 攀枝花智慧社区项目 description 本地网格和浪潮的对码表管理API
+ *
+ * @author manailin Date 2021-01-22 15:30
+ **/
+@Slf4j
+@Service
+public class LcCompareCodeServiceImpl extends ServiceImpl<LcCompareCodeMapper, LcCompareCodeDO>
+    implements LcCompareCodeService {
+
+    @Resource
+    private LcCompareMemberCodeMapper compareMemberCodeMapper;
+
+    @Override
+    public String getLcGridIdByLocal(Long id) {
+        try {
+            return baseMapper.selectOne(new QueryWrapper<LcCompareCodeDO>().eq("local_grid_id", id)).getLcGridId();
+        } catch (Exception e) {
+            log.error("根据本地GRID查询浪潮网格对应表数据出错");
+        }
+        return null;
+    }
+
+    @Override
+    public String getLcUserIdByLocal(String localUserId) {
+        try {
+            return compareMemberCodeMapper
+                .selectOne(new QueryWrapper<LcCompareCodeMemberDO>().eq("local_grid_member_id", localUserId))
+                .getLcBindUserId();
+        } catch (Exception e) {
+            log.error("根据本地GRID查询浪潮网格对应表数据出错");
+        }
+        return null;
+    }
+
+    /**
+     * 综治后台-查询所有市平台网格列表
+     * 
+     * @return 市平台网格列表
+     */
+    @Override
+    public R getLcGridLists() {
+        return R.ok(this.baseMapper.getLcGridLists());
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/bootstrap.yml b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..5856aee
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/bootstrap.yml
@@ -0,0 +1,38 @@
+spring:
+  application:
+    name: grid
+  cloud:
+    config:
+      discovery:
+        enabled: true
+        service-id: huacheng-config  # 注册中心的服务名
+      profile: ${ENV:dev}  # 指定配置文件的环境
+      uri: http://${CONFIG_URL:localhost}:6193/
+  profiles:
+    active: ${ENV:dev}
+
+eureka:
+  client:
+    service-url:
+      defaultZone: http://${EUREKA_URL:localhost}:8192/eureka
+
+#实体加密、解密、字段脱敏拦截设置
+domain:
+  decrypt: true
+  encrypt: true
+  aesKey: Ryo7M3n8loC5
+  sensitive: true
+
+management:
+  endpoints:
+    web:
+      exposure:
+        include: '*'
+
+  endpoint:
+    health:
+      show-details: always
+
+  metrics:
+    tags:
+      application: grid
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/logback-spring.xml b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..73c3db1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/logback-spring.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration debug="false">
+    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
+    <springProfile name="dev">
+        <property name="LOG_HOME" value="F:/log" />
+    </springProfile>
+       <springProfile name="test">
+        <property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    </springProfile>
+<property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    <!-- 控制台输出 -->
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+    </appender>
+    <!-- 按照每天生成日志文件 -->
+    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!--日志文件输出的文件名-->
+            <FileNamePattern>${LOG_HOME}/service_grid.log.%d{yyyy-MM-dd}.log</FileNamePattern>
+            <!--日志文件保留天数-->
+            <MaxHistory>30</MaxHistory>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+        <!--日志文件最大的大小-->
+        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <MaxFileSize>10MB</MaxFileSize>
+        </triggeringPolicy>
+    </appender>
+
+    <!--myibatis log configure-->
+    <logger name="com.apache.ibatis" level="TRACE"/>
+    <logger name="java.sql.Connection" level="DEBUG"/>
+    <logger name="java.sql.Statement" level="DEBUG"/>
+    <logger name="java.sql.PreparedStatement" level="DEBUG"/>
+    <logger name="com.panzhihua.service_community" level="DEBUG"/>
+
+    <!-- 日志输出级别 -->
+    <root level="DEBUG">
+        <appender-ref ref="STDOUT" />
+    </root>
+    <root level="INFO">
+        <appender-ref ref="STDOUT" />
+        <appender-ref ref="FILE" />
+    </root>
+</configuration>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/ApplicationAppReleaseMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/ApplicationAppReleaseMapper.xml
new file mode 100644
index 0000000..846bae8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/ApplicationAppReleaseMapper.xml
@@ -0,0 +1,25 @@
+<?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_grid.dao.ApplicationAppReleaseMapper">
+ 	<resultMap id="baseResult" type="com.panzhihua.service_grid.model.dos.ApplicationAppRelease">
+			<id property="id" column="id" />
+			<result property="productId" column="product_id" />
+			<result property="productName" column="product_name" />
+			<result property="releaseNumber" column="release_number" />
+			<result property="action" column="action" />
+			<result property="url" column="url" />
+			<result property="createDate" column="create_date" />
+			<result property="createUser" column="create_user" />
+
+	</resultMap>
+	<sql id="columns">
+		`id`,`product_id`,`product_name`,`release_number`,`action`,`url`,`create_date`,`create_user`
+	</sql>
+
+	<select id="selectByRand" resultType="com.panzhihua.service_grid.model.dos.ApplicationAppRelease">
+		select *
+		from event_application_app_release
+		where  id=#{data}
+	</select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/ComActEasyPhotoMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/ComActEasyPhotoMapper.xml
new file mode 100644
index 0000000..1b678e0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/ComActEasyPhotoMapper.xml
@@ -0,0 +1,202 @@
+<?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_grid.dao.ComActEasyPhotoMapper">
+
+ 	<resultMap id="baseResult" type="com.panzhihua.service_grid.model.dos.ComActEasyPhotoDO">
+		<result property="id" column="id"/>
+		<result property="sponsorId" column="sponsor_id"/>
+		<result property="happenAddr" column="happen_addr"/>
+		<result property="addrRemark" column="addr_remark"/>
+		<result property="status" column="status"/>
+		<result property="handlerId" column="handler_id"/>
+		<result property="createAt" column="create_at"/>
+		<result property="examineAt" column="examine_at"/>
+		<result property="detail" column="detail"/>
+		<result property="photoPathList" column="photo_path_list"/>
+		<result property="handleResult" column="handle_result"/>
+		<result property="handlePhotoList" column="handle_photo_list"/>
+		<result property="communityId" column="community_id"/>
+		<result property="isHide" column="is_hide"/>
+		<result property="isNeedFeedBack" column="is_need_feed_back"/>
+		<result property="feedbackAt" column="feedback_at"/>
+		<result property="rejectReason" column="reject_reason"/>
+		<result property="delTag" column="del_tag"/>
+		<result property="isReport" column="is_report"/>
+		<result property="isPublicity" column="is_publicity"/>
+		<result property="handleStatus" column="handle_status"/>
+	</resultMap>
+
+	<sql id="columns">
+	<![CDATA[
+		id,sponsor_id,happen_addr,addr_remark,status,handler_id,create_at,examine_at,detail,photo_path_list,handle_result,handle_photo_list,community_id,is_hide,is_need_feed_back,feedback_at,reject_reason,del_tag,is_report,is_publicity
+	]]>
+	</sql>
+
+
+    <select id="findByPage" resultType="com.panzhihua.common.model.vos.grid.ComActEasyPhotoVO"
+        parameterType="com.panzhihua.common.model.dtos.grid.PageEasyAppDTO">
+		SELECT
+		caep.id,
+		su.nick_name,
+		su.image_url,
+		caep.sponsor_id,
+		caep.detail,
+		caep.create_at,
+		caep.`status`,
+		caep.is_publicity,
+		caep.photo_path_list,
+		caep.happen_addr,
+		caep.addr_remark,
+		caep.handle_status,
+		caep.is_report
+		FROM
+		com_act_easy_photo AS caep
+		LEFT JOIN sys_user AS su ON su.user_id = caep.sponsor_id
+		<where>
+			AND caep.del_tag = 0
+			<if test="easyAppDTO.communityId!=null">
+				AND caep.community_id = ${easyAppDTO.communityId}
+			</if>
+	       <if test="easyAppDTO.isReport!=null">
+				AND caep.is_report = #{easyAppDTO.isReport}
+			</if>
+	       <if test="easyAppDTO.isPublicity!=null">
+				AND caep.is_publicity = #{easyAppDTO.isPublicity}
+			</if>
+			<if test="easyAppDTO.handleStatus!=null">
+				AND caep.handle_status = #{easyAppDTO.handleStatus}
+			</if>
+		</where>
+		ORDER BY caep.create_at desc
+    </select>
+
+	<select id="findByEaseId" resultType="com.panzhihua.common.model.vos.grid.ComActEasyPhotoVO">
+		SELECT
+		caep.id,
+		su.nick_name,
+		su.image_url,
+		caep.sponsor_id,
+		caep.detail,
+		caep.create_at,
+		caep.`status`,
+		caep.is_publicity,
+		caep.photo_path_list,
+		caep.happen_addr,
+		caep.addr_remark,
+		caep.handle_status,
+		caep.handle_result,
+		caep.handle_photo_list,
+		caep.feedback_at,
+		caep.lng_lat,
+		caep.handler_id,
+		su1.`name` AS handlerName,
+		caep.is_report
+		FROM
+		com_act_easy_photo AS caep
+		LEFT JOIN sys_user AS su ON su.user_id = caep.sponsor_id
+		LEFT JOIN sys_user AS su1 ON su1.user_id = caep.handler_id
+		<where>
+			<if test="easyId!=null">
+				AND caep.id = #{easyId}
+			</if>
+		</where>
+		ORDER BY caep.create_at desc
+	</select>
+
+	<select id="easyListByAdmin" parameterType="com.panzhihua.common.model.dtos.grid.PageEasyAdminDTO"
+			resultType="com.panzhihua.common.model.vos.grid.ComActEasyPhotoAdminVO">
+		SELECT
+			caep.id,
+			caep.detail,
+			su.nick_name as userNickName,
+			caep.create_at,
+			caep.is_report,
+			caep.is_publicity,
+			caep.classify_id,
+			caep.handle_status
+		FROM
+			com_act_easy_photo AS caep
+			LEFT JOIN sys_user AS su ON su.user_id = caep.sponsor_id
+			LEFT JOIN com_act_easy_photo_classify AS caepc ON caepc.id = caep.classify_id
+			LEFT JOIN sys_user AS su1 ON su1.user_id = caep.handler_id
+			LEFT JOIN com_act AS ca ON ca.community_id = caep.community_id
+		<where>
+			AND caep.del_tag = 0
+			<if test="easyAppDTO.communityId!=null">
+				AND caep.community_id = ${easyAppDTO.communityId}
+			</if>
+			<if test="easyAppDTO.streetId!=null">
+				and ca.street_id = #{easyAppDTO.streetId}
+			</if>
+			<if test="easyAppDTO.isReport!=null">
+				AND caep.is_report = #{easyAppDTO.isReport}
+			</if>
+			<if test="easyAppDTO.isPublicity!=null">
+				AND caep.is_publicity = #{easyAppDTO.isPublicity}
+			</if>
+			<if test="easyAppDTO.handleStatus!=null">
+				AND caep.handle_status = #{easyAppDTO.handleStatus}
+			</if>
+			<if test="easyAppDTO.easyPhotoTypeId!=null">
+				AND caep.classify_id = #{easyAppDTO.easyPhotoTypeId}
+			</if>
+			<if test="easyAppDTO.keyWord != null and easyAppDTO.keyWord != &quot;&quot;">
+				AND (caepc.`name` LIKE concat (#{easyAppDTO.keyWord},'%') or
+				caep.detail LIKE concat (#{easyAppDTO.keyWord},'%') or
+				su.nick_name LIKE concat (#{easyAppDTO.keyWord},'%') or
+				caep.happen_addr LIKE concat (#{easyAppDTO.keyWord},'%') or
+				(caep.is_report = 0 and su1.nick_name LIKE concat (#{easyAppDTO.keyWord},'%')))
+			</if>
+		</where>
+		ORDER BY
+			caep.create_at DESC
+	</select>
+
+	<select id="easyDetailByAdmin" resultType="com.panzhihua.common.model.vos.grid.ComActEasyPhotoAdminVO">
+		SELECT DISTINCT
+			caep.id,
+			caep.detail,
+			su.nick_name AS userNickName,
+			su.image_url AS imageUrl,
+			caep.create_at,
+			caep.is_report,
+			caep.is_publicity,
+			caep.handle_status,
+			caep.detail,
+			caep.photo_path_list,
+			caep.addr_remark,
+			caep.happen_addr,
+			caep.lng_lat,
+			caep.handle_result,
+			caep.handle_photo_list,
+			su1.nick_name as handlerName,
+			caep.feedback_at as feedbackAt
+		FROM
+			com_act_easy_photo AS caep
+			LEFT JOIN sys_user AS su ON su.user_id = caep.sponsor_id
+			LEFT JOIN sys_user AS su1 ON su1.user_id = caep.handler_id
+		<where>
+			<if test="easyId!=null">
+				AND caep.id = #{easyId}
+			</if>
+		</where>
+	</select>
+
+	<update id="easyPublicityByAdmin" parameterType="com.panzhihua.common.model.dtos.grid.ComActEasyPhotoEditAdminDTO">
+		update com_act_easy_photo
+		<if test="photoEditDTO.type!=null and photoEditDTO.type == 1">
+			set is_publicity = #{photoEditDTO.isPublicity}
+		</if>
+		<if test="photoEditDTO.type!=null and photoEditDTO.type == 2">
+			set del_tag = 1
+		</if>
+		<if test="photoEditDTO.ids!=null and photoEditDTO.ids.size > 0">
+			where id in
+			<foreach collection='photoEditDTO.ids' item='id' index='index' open='(' close=')' separator=',' >
+			#{id}
+			</foreach>
+		</if>
+	</update>
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/ComActEasyPhotoTypeMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/ComActEasyPhotoTypeMapper.xml
new file mode 100644
index 0000000..817fe0b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/ComActEasyPhotoTypeMapper.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_grid.dao.ComActEasyPhotoTypeMapper">
+
+ 	<resultMap id="baseResult" type="com.panzhihua.service_grid.model.dos.ComActEasyPhotoTypeDO">
+		<result property="id" column="id"/>
+		<result property="name" column="name"/>
+		<result property="createAt" column="create_at"/>
+	</resultMap>
+
+	<sql id="columns">
+	<![CDATA[
+		id,name,create_at
+	]]>
+	</sql>
+
+
+    <select id="findByPage" resultType="com.panzhihua.common.model.vos.grid.ComActEasyPhotoTypeVO"
+        parameterType="com.panzhihua.common.model.dtos.grid.PageComActEasyPhotoTypeDTO">
+    	SELECT <include refid="columns" />
+	    FROM com_act_easy_photo_type
+		<where>
+	       <if test="pageComActEasyPhotoTypeDTO.id!=null">
+				AND id = #{pageComActEasyPhotoTypeDTO.id}
+			</if>
+	       <if test="pageComActEasyPhotoTypeDTO.name!=null">
+				AND name = #{pageComActEasyPhotoTypeDTO.name}
+			</if>
+	       <if test="pageComActEasyPhotoTypeDTO.createAtBegin!=null">
+				AND create_at &gt;= #{pageComActEasyPhotoTypeDTO.createAtBegin}
+		   </if>
+		   <if test="pageComActEasyPhotoTypeDTO.createAtEnd!=null">
+				AND create_at &lt;= #{pageComActEasyPhotoTypeDTO.createAtEnd}
+		   </if>
+		</where>
+		<if test="pageComActEasyPhotoTypeDTO.sortColumns!=null">
+			ORDER BY ${pageComActEasyPhotoTypeDTO.sortColumns} ${pageComActEasyPhotoTypeDTO.sortType}
+		</if>
+    </select>
+
+	<select id="getPhotoClassifyList" resultType="com.panzhihua.service_grid.model.dos.ComActEasyPhotoTypeDO">
+		select id,`name` from com_act_easy_photo_classify where `status` = 1
+	</select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/ComActEasyPhotoTypeRelationMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/ComActEasyPhotoTypeRelationMapper.xml
new file mode 100644
index 0000000..3607319
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/ComActEasyPhotoTypeRelationMapper.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_grid.dao.ComActEasyPhotoTypeRelationMapper">
+
+ 	<resultMap id="baseResult" type="com.panzhihua.service_grid.model.dos.ComActEasyPhotoTypeRelationDO">
+		<result property="id" column="id"/>
+		<result property="easyId" column="easy_id"/>
+		<result property="easyTypeId" column="easy_type_id"/>
+		<result property="createAt" column="create_at"/>
+	</resultMap>
+
+	<sql id="columns">
+	<![CDATA[
+		id,easy_id,easy_type_id
+	]]>
+	</sql>
+
+	<select id="getEasyPhotoTypeRelationByEasyId" resultType="String">
+		SELECT
+			caept.`name`
+		FROM
+			com_act_easy_photo_type_relation AS caeptr
+			LEFT JOIN com_act_easy_photo_type AS caept ON caept.id = caeptr.easy_type_id
+		<where>
+			<if test="easyId!=null">
+				caeptr.easy_id = #{easyId}
+			</if>
+		</where>
+		ORDER BY caeptr.create_at desc
+	</select>
+
+	<select id="getEasyPhotoClassifyName" resultType="string">
+		select `name` from com_act_easy_photo_classify where id = #{classifyId}
+	</select>
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventApplicationAppReleaseMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventApplicationAppReleaseMapper.xml
new file mode 100644
index 0000000..503a145
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventApplicationAppReleaseMapper.xml
@@ -0,0 +1,70 @@
+<?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_grid.dao.EventApplicationAppReleaseMapper">
+
+ 	<resultMap id="baseResult" type="com.panzhihua.service_grid.model.dos.EventApplicationAppReleaseDO">
+		<result property="id" column="id"/>
+		<result property="productId" column="product_id"/>
+		<result property="productName" column="product_name"/>
+		<result property="releaseNumber" column="release_number"/>
+		<result property="action" column="action"/>
+		<result property="url" column="url"/>
+		<result property="createAt" column="create_at"/>
+		<result property="createBy" column="create_by"/>
+	</resultMap>
+
+	<sql id="columns">
+	<![CDATA[
+		id,product_id,product_name,release_number,action,url,create_at,create_by
+	]]>
+	</sql>
+
+
+    <select id="findByPage" resultType="com.panzhihua.common.model.vos.grid.EventApplicationAppReleaseVO"
+        parameterType="com.panzhihua.common.model.dtos.grid.PageEventApplicationAppReleaseDTO">
+    	SELECT <include refid="columns" />
+	    FROM event_application_app_release
+		<where>
+	       <if test="pageEventApplicationAppReleaseDTO.id!=null">
+				AND id = #{pageEventApplicationAppReleaseDTO.id}
+			</if>
+	       <if test="pageEventApplicationAppReleaseDTO.productId!=null">
+				AND product_id = #{pageEventApplicationAppReleaseDTO.productId}
+			</if>
+	       <if test="pageEventApplicationAppReleaseDTO.productName!=null">
+				AND product_name = #{pageEventApplicationAppReleaseDTO.productName}
+			</if>
+	       <if test="pageEventApplicationAppReleaseDTO.releaseNumber!=null">
+				AND release_number = #{pageEventApplicationAppReleaseDTO.releaseNumber}
+			</if>
+	       <if test="pageEventApplicationAppReleaseDTO.action!=null">
+				AND action = #{pageEventApplicationAppReleaseDTO.action}
+			</if>
+	       <if test="pageEventApplicationAppReleaseDTO.url!=null">
+				AND url = #{pageEventApplicationAppReleaseDTO.url}
+			</if>
+	       <if test="pageEventApplicationAppReleaseDTO.createAtBegin!=null">
+				AND create_at &gt;= #{pageEventApplicationAppReleaseDTO.createAtBegin}
+		   </if>
+		   <if test="pageEventApplicationAppReleaseDTO.createAtEnd!=null">
+				AND create_at &lt;= #{pageEventApplicationAppReleaseDTO.createAtEnd}
+		   </if>
+	       <if test="pageEventApplicationAppReleaseDTO.createBy!=null">
+				AND create_by = #{pageEventApplicationAppReleaseDTO.createBy}
+			</if>
+		</where>
+		<if test="pageEventApplicationAppReleaseDTO.sortColumns!=null">
+			ORDER BY ${pageEventApplicationAppReleaseDTO.sortColumns} ${pageEventApplicationAppReleaseDTO.sortType}
+		</if>
+    </select>
+
+	<select id="editionUpdate" resultType="com.panzhihua.common.model.vos.grid.EventApplicationAppReleaseDetailsVO">
+		SELECT <include refid="columns" />
+		FROM event_application_app_release
+		order by create_at desc
+		limit 1
+	</select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventApplicationUserNoticeMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventApplicationUserNoticeMapper.xml
new file mode 100644
index 0000000..99a3718
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventApplicationUserNoticeMapper.xml
@@ -0,0 +1,59 @@
+<?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_grid.dao.EventApplicationUserNoticeMapper">
+
+ 	<resultMap id="baseResult" type="com.panzhihua.service_grid.model.dos.EventApplicationUserNoticeDO">
+		<result property="id" column="id"/>
+		<result property="productId" column="product_id"/>
+		<result property="productName" column="product_name"/>
+		<result property="action" column="action"/>
+		<result property="content" column="content"/>
+		<result property="createAt" column="create_at"/>
+		<result property="createBy" column="create_by"/>
+	</resultMap>
+
+	<sql id="columns">
+	<![CDATA[
+		id,product_id,product_name,action,content,create_at,create_by
+	]]>
+	</sql>
+
+
+    <select id="findByPage" resultType="com.panzhihua.common.model.vos.grid.EventApplicationUserNoticeVO"
+        parameterType="com.panzhihua.common.model.dtos.grid.PageEventApplicationUserNoticeDTO">
+    	SELECT <include refid="columns" />
+	    FROM event_application_user_notice
+		<where>
+	       <if test="pageEventApplicationUserNoticeDTO.id!=null">
+				AND id = #{pageEventApplicationUserNoticeDTO.id}
+			</if>
+	       <if test="pageEventApplicationUserNoticeDTO.productId!=null">
+				AND product_id = #{pageEventApplicationUserNoticeDTO.productId}
+			</if>
+	       <if test="pageEventApplicationUserNoticeDTO.productName!=null">
+				AND product_name = #{pageEventApplicationUserNoticeDTO.productName}
+			</if>
+	       <if test="pageEventApplicationUserNoticeDTO.action!=null">
+				AND action = #{pageEventApplicationUserNoticeDTO.action}
+			</if>
+	       <if test="pageEventApplicationUserNoticeDTO.content!=null">
+				AND content = #{pageEventApplicationUserNoticeDTO.content}
+			</if>
+	       <if test="pageEventApplicationUserNoticeDTO.createAtBegin!=null">
+				AND create_at &gt;= #{pageEventApplicationUserNoticeDTO.createAtBegin}
+		   </if>
+		   <if test="pageEventApplicationUserNoticeDTO.createAtEnd!=null">
+				AND create_at &lt;= #{pageEventApplicationUserNoticeDTO.createAtEnd}
+		   </if>
+	       <if test="pageEventApplicationUserNoticeDTO.createBy!=null">
+				AND create_by = #{pageEventApplicationUserNoticeDTO.createBy}
+			</if>
+		</where>
+		<if test="pageEventApplicationUserNoticeDTO.sortColumns!=null">
+			ORDER BY ${pageEventApplicationUserNoticeDTO.sortColumns} ${pageEventApplicationUserNoticeDTO.sortType}
+		</if>
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventGridDataMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventGridDataMapper.xml
new file mode 100644
index 0000000..e2af7a0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventGridDataMapper.xml
@@ -0,0 +1,320 @@
+<?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_grid.dao.EventGridDataMapper">
+
+ 	<resultMap id="baseResult" type="com.panzhihua.service_grid.model.dos.EventGridDataDO">
+		<result property="id" column="id"/>
+		<result property="type" column="type"/>
+		<result property="zoneId" column="zone_id"/>
+		<result property="gridStreetId" column="grid_street_id"/>
+		<result property="gridCommunityId" column="grid_community_id"/>
+		<result property="gridName" column="grid_name"/>
+		<result property="mapLevel" column="map_level"/>
+		<result property="area" column="area"/>
+		<result property="lineColor" column="line_color"/>
+		<result property="lineBroadband" column="line_broadband"/>
+		<result property="fillColor" column="fill_color"/>
+		<result property="remarks" column="remarks"/>
+		<result property="data" column="data"/>
+		<result property="createBy" column="create_by"/>
+		<result property="createAt" column="create_at"/>
+		<result property="updateBy" column="update_by"/>
+		<result property="updateAt" column="update_at"/>
+	</resultMap>
+
+	<sql id="columns">
+	<![CDATA[
+		id,type,zone_id,grid_street_id,grid_community_id,grid_name,map_level,area,line_color,line_broadband,fill_color,remarks,data,create_by,create_at,update_by,update_at
+	]]>
+	</sql>
+
+
+    <select id="findByPage" resultType="com.panzhihua.common.model.vos.grid.EventGridAdminVO"
+        parameterType="com.panzhihua.common.model.dtos.grid.PageEventGridDataAdminDTO">
+		SELECT DISTINCT
+		egd.id,
+		egd.grid_name,
+		egd.remarks,
+		egd.area,
+		egd.line_color,
+		egd.line_broadband,
+		egd.fill_color,
+		egd.data,
+		egd.create_at,
+		su1.`name` as createBy,
+		egd.grid_community_id,
+		(select lc_grid_name from lc_compare_code where local_grid_id = egd.id  LIMIT 1) as lcGirdName,
+		(select id from lc_compare_code where local_grid_id = egd.id  LIMIT 1) as lcGirdId,
+		ca.`name` AS communityName
+		FROM
+		event_grid_data AS egd
+		LEFT JOIN com_act AS ca ON ca.community_id = egd.grid_community_id
+		LEFT JOIN event_grid_member_relation AS egmr ON egmr.grid_id = egd.id
+		left join sys_user as su on su.user_id = egmr.grid_member_id
+		left join sys_user as su1 on su1.user_id = egd.create_by
+		<where>
+			<if test="pageEventGridDataDTO.gridStreetId!=null">
+				AND egd.grid_street_id = #{pageEventGridDataDTO.gridStreetId}
+			</if>
+			<if test="pageEventGridDataDTO.gridCommunityId!=null">
+				AND egd.grid_community_id = ${pageEventGridDataDTO.gridCommunityId}
+			</if>
+
+	       <if test="pageEventGridDataDTO.keyWord != null and pageEventGridDataDTO.keyWord != &quot;&quot;">
+				AND (egd.grid_name like concat(#{pageEventGridDataDTO.keyWord},'%') or su.nick_name like concat(#{pageEventGridDataDTO.keyWord},'%'))
+			</if>
+		</where>
+		ORDER BY create_at desc
+    </select>
+    <select id="selectUserGrid" resultType="com.panzhihua.common.model.vos.grid.EventGridDataVO"
+			parameterType="com.panzhihua.common.model.dtos.grid.PageEventGridDataDTO">
+		SELECT gd.id, gd.type, gd.zone_id, gd.grid_street_id, gd.grid_community_id, gd.grid_name, gd.map_level, gd.area, gd.line_color,
+			gd.line_broadband, gd.fill_color, gd.remarks, gd.data, gd.create_by, gd.create_at, gd.update_by, gd.update_at
+		FROM event_grid_data gd left join event_grid_member_relation gdr on gd.id = gdr.grid_id
+		<where>
+			<if test="pageEventGridDataDTO.userId!=null">
+				AND gdr.grid_member_id = #{pageEventGridDataDTO.userId}
+			</if>
+			<if test="pageEventGridDataDTO.id!=null">
+				AND gd.id = #{pageEventGridDataDTO.id}
+			</if>
+			<if test="pageEventGridDataDTO.type!=null">
+				AND gd.type = #{pageEventGridDataDTO.type}
+			</if>
+			<if test="pageEventGridDataDTO.zoneId!=null">
+				AND gd.zone_id = #{pageEventGridDataDTO.zoneId}
+			</if>
+			<if test="pageEventGridDataDTO.gridStreetId!=null">
+				AND gd.grid_street_id = #{pageEventGridDataDTO.gridStreetId}
+			</if>
+			<if test="pageEventGridDataDTO.gridCommunityId!=null">
+				AND gd.grid_community_id = ${pageEventGridDataDTO.gridCommunityId}
+			</if>
+			<if test="pageEventGridDataDTO.gridName!=null">
+				AND gd.grid_name = #{pageEventGridDataDTO.gridName}
+			</if>
+			<if test="pageEventGridDataDTO.mapLevel!=null">
+				AND gd.map_level = #{pageEventGridDataDTO.mapLevel}
+			</if>
+			<if test="pageEventGridDataDTO.area!=null">
+				AND gd.area = #{pageEventGridDataDTO.area}
+			</if>
+			<if test="pageEventGridDataDTO.lineColor!=null">
+				AND gd.line_color = #{pageEventGridDataDTO.lineColor}
+			</if>
+			<if test="pageEventGridDataDTO.lineBroadband!=null">
+				AND gd.line_broadband = #{pageEventGridDataDTO.lineBroadband}
+			</if>
+			<if test="pageEventGridDataDTO.fillColor!=null">
+				AND gd.fill_color = #{pageEventGridDataDTO.fillColor}
+			</if>
+			<if test="pageEventGridDataDTO.remarks!=null">
+				AND gd.remarks = #{pageEventGridDataDTO.remarks}
+			</if>
+			<if test="pageEventGridDataDTO.data!=null">
+				AND gd.data = #{pageEventGridDataDTO.data}
+			</if>
+			<if test="pageEventGridDataDTO.createBy!=null">
+				AND gd.create_by = #{pageEventGridDataDTO.createBy}
+			</if>
+			<if test="pageEventGridDataDTO.createAtBegin!=null">
+				AND gd.create_at >= #{pageEventGridDataDTO.createAtBegin}
+			</if>
+			<if test="pageEventGridDataDTO.createAtEnd!=null">
+				AND gd.create_at &lt;= #{pageEventGridDataDTO.createAtEnd}
+			</if>
+			<if test="pageEventGridDataDTO.updateBy!=null">
+				AND gd.update_by = #{pageEventGridDataDTO.updateBy}
+			</if>
+			<if test="pageEventGridDataDTO.updateAtBegin!=null">
+				AND gd.update_at >= #{pageEventGridDataDTO.updateAtBegin}
+			</if>
+			<if test="pageEventGridDataDTO.updateAtEnd!=null">
+				AND gd.update_at &lt;= #{pageEventGridDataDTO.updateAtEnd}
+			</if>
+		</where>
+		<if test="pageEventGridDataDTO.sortColumns!=null">
+			ORDER BY ${pageEventGridDataDTO.sortColumns} ${pageEventGridDataDTO.sortType}
+		</if>
+	</select>
+
+	<select id="getGridMemberLists" resultType="com.panzhihua.common.model.vos.grid.EventGridMemberAdminVO">
+		select user_id,nick_name from sys_user where `type` = 6
+	</select>
+
+	<select id="getGridMember" resultType="com.panzhihua.common.model.vos.grid.GridMemberAdminVO">
+		SELECT
+			su.user_id,
+			su.nick_name
+		FROM
+			event_grid_member_relation AS egmr
+			LEFT JOIN sys_user AS su ON su.user_id = egmr.grid_member_id
+		WHERE
+			egmr.grid_id = #{gridId}
+	</select>
+
+    <select id="getGridTodoData" resultType="com.panzhihua.common.model.vos.grid.UserEventGridDataVO"
+		parameterType="com.panzhihua.common.model.dtos.grid.EventGridTodoDataDTO">
+		SELECT
+			IFNULL( SUM( t.todoNums ), 0 ) todoNums,
+			1 event_type
+		FROM
+			(
+			SELECT
+				IFNULL( count( e.id ), 0 ) AS todoNums
+			FROM
+				`event` e
+			WHERE
+				e.event_category = 1
+				AND event_status = 2
+				AND ( event_process_status = 1 OR event_process_status = 3 )
+				AND process_type = 1
+				AND grid_id = #{eventGridTodoDataDTO.gridId}
+				AND e.event_type = 1
+			GROUP BY
+				e.event_type
+			) t UNION ALL
+		SELECT
+			IFNULL( SUM( t.todoNums ), 0 ) todoNums,
+			2 event_type
+		FROM
+			(
+			SELECT
+				IFNULL( count( e.id ), 0 ) AS todoNums
+			FROM
+				`event` e
+			WHERE
+				e.event_category = 1
+				AND event_status = 2
+				AND ( event_process_status = 1 OR event_process_status = 3 )
+				AND process_type = 1
+				AND grid_id = #{eventGridTodoDataDTO.gridId}
+				AND e.event_type = 2
+			GROUP BY
+				e.event_type
+			) t UNION ALL
+		SELECT
+			IFNULL( SUM( t.todoNums ), 0 ) todoNums,
+			3 event_type
+		FROM
+			(
+			SELECT
+				IFNULL( count( e.id ), 0 ) AS todoNums
+			FROM
+				`event` e
+			WHERE
+				e.event_category = 1
+				AND event_status = 2
+				AND ( event_process_status = 1 OR event_process_status = 3 )
+				AND process_type = 1
+				AND grid_id = #{eventGridTodoDataDTO.gridId}
+				AND e.event_type = 3
+			GROUP BY
+				e.event_type
+			) t UNION ALL
+		SELECT
+			IFNULL( SUM( t.todoNums ), 0 ) todoNums,
+			4 event_type
+		FROM
+			(
+			SELECT
+				IFNULL( count( e.id ), 0 ) AS todoNums
+			FROM
+				`event` e
+			WHERE
+				e.event_category = 1
+				AND event_status = 2
+				AND ( event_process_status = 1 OR event_process_status = 3 )
+				AND process_type = 1
+				AND grid_id = #{eventGridTodoDataDTO.gridId}
+				AND e.event_type = 4
+			GROUP BY
+				e.event_type
+			) t UNION ALL
+		SELECT
+			IFNULL( SUM( t.todoNums ), 0 ) todoNums,
+			5 event_type
+		FROM
+			(
+			SELECT
+				IFNULL( count( e.id ), 0 ) AS todoNums
+			FROM
+				`event` e
+			WHERE
+				e.event_category = 1
+				AND event_status = 2
+				AND ( event_process_status = 1 OR event_process_status = 3 )
+				AND process_type = 1
+				AND grid_id = #{eventGridTodoDataDTO.gridId}
+				AND e.event_type = 5
+			GROUP BY
+				e.event_type
+			) t UNION ALL
+		SELECT
+			IFNULL( count( e.id ), 0 ) AS todoNums,
+			6 AS event_type
+		FROM
+			`event` AS e
+		WHERE
+			e.event_category = 1
+			AND e.event_type = 6
+			AND event_status = 2
+			AND process_type = 1
+			AND ( event_process_status = 1 OR event_process_status = 3 )
+			AND grid_id = #{eventGridTodoDataDTO.gridId} UNION ALL
+		SELECT
+			IFNULL( count( cmp.id ), 0 ) AS todoNums,
+			8 AS event_type
+		FROM
+			com_mng_population AS cmp
+			LEFT JOIN com_mng_population_community_tags AS cmpct ON cmpct.population_id = cmp.id
+			LEFT JOIN event_grid_data AS egd ON egd.grid_community_id = cmpct.community_id
+		WHERE
+			egd.id = #{eventGridTodoDataDTO.gridId} UNION ALL
+		SELECT
+			IFNULL( count( id ), 0 ) AS todoNums,
+			9 AS event_type
+		FROM
+			event_visiting_tasks
+		WHERE
+			grid_id = #{eventGridTodoDataDTO.gridId} and (event_status = 1 OR event_status = 3)
+	</select>
+
+	<select id="getComActByActId" resultType="com.panzhihua.common.model.vos.grid.ComGridActVO">
+		select community_id,street_id,name,address,province_code,city_code,area_code from com_act where community_id = ${communityId}
+	</select>
+	<select id="getGridMemberListsByGrid" resultType="com.panzhihua.common.model.vos.grid.EventGridMemberAdminVO">
+		SELECT
+			su.user_id,
+			su.nick_name
+		FROM
+			event_grid_member_relation AS egmr
+			LEFT JOIN sys_user AS su ON su.user_id = egmr.grid_member_id
+		WHERE
+			egmr.grid_id = #{gridId}
+	</select>
+	<select id="getGridDataListByCommunity"
+			resultType="com.panzhihua.common.model.vos.grid.EventGridDataAreaVO" parameterType="long">
+		SELECT
+			gd.id, gd.grid_name , ad.district_name AS zoneName, st.name AS gridStreetName,  act.name AS gridCommunityName
+		FROM event_grid_data gd LEFT JOIN com_mng_struct_area_district ad ON gd.zone_id = ad.district_adcode
+			LEFT JOIN com_street st ON gd.grid_street_id = st.street_id
+			LEFT JOIN com_act act ON gd.grid_community_id = act.community_id
+		WHERE gd.grid_community_id = ${communityId}
+	</select>
+	<select id="selectGridWithArea" resultType="com.panzhihua.common.model.vos.grid.EventGridDataAreaVO"  parameterType="long">
+		SELECT
+			gd.id, gd.grid_name , ad.district_name AS zoneName, st.name AS gridStreetName,  act.name AS gridCommunityName, gd.data
+		FROM event_grid_data gd LEFT JOIN com_mng_struct_area_district ad ON gd.zone_id = ad.district_adcode
+			LEFT JOIN com_street st ON gd.grid_street_id = st.street_id
+			LEFT JOIN com_act act ON gd.grid_community_id = act.community_id
+		WHERE  gd.type=3
+	</select>
+
+	<delete id="removeGridRelationByGridId">
+		delete from event_grid_member_relation where grid_id = #{gridId}
+	</delete>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventGridMemberGpsLogMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventGridMemberGpsLogMapper.xml
new file mode 100644
index 0000000..fbd49e5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventGridMemberGpsLogMapper.xml
@@ -0,0 +1,98 @@
+<?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_grid.dao.EventGridMemberGpsLogMapper">
+
+ 	<resultMap id="baseResult" type="com.panzhihua.service_grid.model.dos.EventGridMemberGpsLogDO">
+		<result property="id" column="id"/>
+		<result property="gridStreetId" column="grid_street_id"/>
+		<result property="gridCommunityId" column="grid_community_id"/>
+		<result property="gridId" column="grid_id"/>
+		<result property="gridName" column="grid_name"/>
+		<result property="gridMemberId" column="grid_member_id"/>
+		<result property="lngLat" column="lng_lat"/>
+		<result property="positionStation" column="position_station"/>
+		<result property="createBy" column="create_by"/>
+		<result property="createAt" column="create_at"/>
+	</resultMap>
+
+	<sql id="columns">
+	<![CDATA[
+		id,grid_street_id,grid_community_id,grid_id,grid_name,grid_member_id,lng_lat,position_station,create_by,create_at
+	]]>
+	</sql>
+
+
+    <select id="findByPage" resultType="com.panzhihua.common.model.vos.grid.EventGridMemberGpsLogVO"
+        parameterType="com.panzhihua.common.model.dtos.grid.PageEventGridMemberGpsLogDTO">
+    	SELECT <include refid="columns" />
+	    FROM event_grid_member_gps_log
+		<where>
+	       <if test="pageEventGridMemberGpsLogDTO.id!=null">
+				AND id = #{pageEventGridMemberGpsLogDTO.id}
+			</if>
+	       <if test="pageEventGridMemberGpsLogDTO.gridStreetId!=null">
+				AND grid_street_id = #{pageEventGridMemberGpsLogDTO.gridStreetId}
+			</if>
+	       <if test="pageEventGridMemberGpsLogDTO.gridCommunityId!=null">
+				AND grid_community_id = ${pageEventGridMemberGpsLogDTO.gridCommunityId}
+			</if>
+	       <if test="pageEventGridMemberGpsLogDTO.gridId!=null">
+				AND grid_id = #{pageEventGridMemberGpsLogDTO.gridId}
+			</if>
+	       <if test="pageEventGridMemberGpsLogDTO.gridName!=null">
+				AND grid_name = #{pageEventGridMemberGpsLogDTO.gridName}
+			</if>
+	       <if test="pageEventGridMemberGpsLogDTO.gridMemberId!=null">
+				AND grid_member_id = #{pageEventGridMemberGpsLogDTO.gridMemberId}
+			</if>
+	       <if test="pageEventGridMemberGpsLogDTO.lngLat!=null">
+				AND lng_lat = #{pageEventGridMemberGpsLogDTO.lngLat}
+			</if>
+	       <if test="pageEventGridMemberGpsLogDTO.positionStation!=null">
+				AND position_station = #{pageEventGridMemberGpsLogDTO.positionStation}
+			</if>
+	       <if test="pageEventGridMemberGpsLogDTO.createBy!=null">
+				AND create_by = #{pageEventGridMemberGpsLogDTO.createBy}
+			</if>
+	       <if test="pageEventGridMemberGpsLogDTO.createAtBegin!=null">
+				AND create_at &gt;= #{pageEventGridMemberGpsLogDTO.createAtBegin}
+		   </if>
+		   <if test="pageEventGridMemberGpsLogDTO.createAtEnd!=null">
+				AND create_at &lt;= #{pageEventGridMemberGpsLogDTO.createAtEnd}
+		   </if>
+		</where>
+		<if test="pageEventGridMemberGpsLogDTO.sortColumns!=null">
+			ORDER BY ${pageEventGridMemberGpsLogDTO.sortColumns} ${pageEventGridMemberGpsLogDTO.sortType}
+		</if>
+    </select>
+
+	<select id="getTrajectoryByApp" resultType="com.panzhihua.common.model.vos.grid.EventMapTrajectoryVO">
+		SELECT
+			id,
+			lng_lat
+		FROM
+			event_grid_member_gps_log
+		WHERE
+			create_at BETWEEN DATE_FORMAT( CURDATE(), '%Y-%m-%d %H:%i:%s' )
+			AND NOW()
+			AND grid_member_id = #{userId}
+		ORDER BY
+			create_at ASC
+	</select>
+
+	<select id="gridMemberWorkTrajectory" resultType="String" parameterType="com.panzhihua.common.model.dtos.grid.EventGridMemberWorkTrajectoryDTO">
+		SELECT
+			lng_lat
+		FROM
+			event_grid_member_gps_log
+		WHERE
+			create_at BETWEEN #{workTrajectoryDTO.startTime}
+			AND #{workTrajectoryDTO.endTime}
+			AND grid_member_id = #{workTrajectoryDTO.gridMemberId}
+		ORDER BY
+			create_at ASC
+	</select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventGridMemberRelationMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventGridMemberRelationMapper.xml
new file mode 100644
index 0000000..d21d8ec
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventGridMemberRelationMapper.xml
@@ -0,0 +1,651 @@
+<?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_grid.dao.EventGridMemberRelationMapper">
+
+ 	<resultMap id="baseResult" type="com.panzhihua.service_grid.model.dos.EventGridMemberRelationDO">
+		<result property="id" column="id"/>
+		<result property="gridStreetId" column="grid_street_id"/>
+		<result property="gridCommunityId" column="grid_community_id"/>
+		<result property="gridId" column="grid_id"/>
+		<result property="gridName" column="grid_name"/>
+		<result property="gridMemberId" column="grid_member_id"/>
+		<result property="createBy" column="create_by"/>
+		<result property="createAt" column="create_at"/>
+	</resultMap>
+
+	<sql id="columns">
+	<![CDATA[
+		id,grid_street_id,grid_community_id,grid_id,grid_name,grid_member_id,create_by,create_at
+	]]>
+	</sql>
+
+
+    <select id="findByPage" resultType="com.panzhihua.common.model.vos.grid.EventGridMemberRelationVO"
+        parameterType="com.panzhihua.common.model.dtos.grid.PageEventGridMemberRelationDTO">
+    	SELECT <include refid="columns" />
+	    FROM event_grid_member_relation
+		<where>
+	       <if test="pageEventGridMemberRelationDTO.id!=null">
+				AND id = #{pageEventGridMemberRelationDTO.id}
+			</if>
+	       <if test="pageEventGridMemberRelationDTO.gridStreetId!=null">
+				AND grid_street_id = #{pageEventGridMemberRelationDTO.gridStreetId}
+			</if>
+	       <if test="pageEventGridMemberRelationDTO.gridCommunityId!=null">
+				AND grid_community_id = ${pageEventGridMemberRelationDTO.gridCommunityId}
+			</if>
+	       <if test="pageEventGridMemberRelationDTO.gridId!=null">
+				AND grid_id = #{pageEventGridMemberRelationDTO.gridId}
+			</if>
+	       <if test="pageEventGridMemberRelationDTO.gridName!=null">
+				AND grid_name = #{pageEventGridMemberRelationDTO.gridName}
+			</if>
+	       <if test="pageEventGridMemberRelationDTO.gridMemberId!=null">
+				AND grid_member_id = #{pageEventGridMemberRelationDTO.gridMemberId}
+			</if>
+	       <if test="pageEventGridMemberRelationDTO.createBy!=null">
+				AND create_by = #{pageEventGridMemberRelationDTO.createBy}
+			</if>
+	       <if test="pageEventGridMemberRelationDTO.createAtBegin!=null">
+				AND create_at &gt;= #{pageEventGridMemberRelationDTO.createAtBegin}
+		   </if>
+		   <if test="pageEventGridMemberRelationDTO.createAtEnd!=null">
+				AND create_at &lt;= #{pageEventGridMemberRelationDTO.createAtEnd}
+		   </if>
+		</where>
+		<if test="pageEventGridMemberRelationDTO.sortColumns!=null">
+			ORDER BY ${pageEventGridMemberRelationDTO.sortColumns} ${pageEventGridMemberRelationDTO.sortType}
+		</if>
+    </select>
+
+	<select id="getMapGridListByApp" resultType="com.panzhihua.common.model.vos.grid.EventMapGridVO">
+		SELECT
+			grid_id,
+			grid_name,
+			grid_community_id
+		FROM
+			event_grid_member_relation
+		WHERE
+			grid_member_id = #{userId}
+	</select>
+	
+	<select id="gridMemberStatistics" resultType="com.panzhihua.common.model.vos.grid.EventStatisticsMemberAdminVO"
+			parameterType="com.panzhihua.common.model.dtos.grid.MemberStatisticsAdminDTO">
+		SELECT DISTINCT
+			su.nick_name,(
+			SELECT
+				count( id )
+			FROM
+				`event`
+			WHERE
+				event_category = 1
+				AND event_type = 5
+				AND event_status = 2
+				AND grid_member_id = su.user_id
+				<if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
+					AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
+				</if>
+				<if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
+					AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
+				</if>
+			) AS addTFTotal,
+			(
+			SELECT
+				count( id )
+			FROM
+				`event`
+			WHERE
+				event_category = 1
+				AND event_type = 5
+				AND event_status = 2
+				AND event_process_status = 2
+				AND process_user_id = su.user_id
+				<if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
+					AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
+				</if>
+				<if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
+					AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
+				</if>
+				) AS handleTFTotal,(
+			SELECT
+				count( id )
+			FROM
+				`event`
+			WHERE
+				event_category = 1
+				AND event_type = 3
+				AND event_status = 2
+				AND grid_member_id = su.user_id
+				<if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
+					AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
+				</if>
+				<if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
+					AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
+				</if>
+			) AS addMDTotal,
+			(
+			SELECT
+				count( id )
+			FROM
+				`event`
+			WHERE
+				event_category = 1
+				AND event_type = 3
+				AND event_status = 2
+				AND event_process_status = 2
+				AND process_user_id = su.user_id
+				<if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
+					AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
+				</if>
+				<if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
+					AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
+				</if>
+				) AS handleMDTotal,(
+			SELECT
+				count( id )
+			FROM
+				`event`
+			WHERE
+				event_category = 1
+				AND event_type = 1
+				AND event_status = 2
+				AND grid_member_id = su.user_id
+				<if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
+					AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
+				</if>
+				<if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
+					AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
+				</if>
+			) AS addZATotal,
+			(
+			SELECT
+				count( id )
+			FROM
+				`event`
+			WHERE
+				event_category = 1
+				AND event_type = 1
+				AND event_status = 2
+				AND event_process_status = 2
+				AND process_user_id = su.user_id
+				<if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
+					AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
+				</if>
+				<if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
+					AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
+				</if>
+				) AS handleZATotal,(
+			SELECT
+				count( id )
+			FROM
+				`event`
+			WHERE
+				event_category = 1
+				AND event_type = 4
+				AND event_status = 2
+				AND grid_member_id = su.user_id
+				<if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
+					AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
+				</if>
+				<if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
+					AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
+				</if>
+			) AS addBWDTotal,
+			(
+			SELECT
+				count( id )
+			FROM
+				`event`
+			WHERE
+				event_category = 1
+				AND event_type = 4
+				AND event_status = 2
+				AND event_process_status = 2
+				AND process_user_id = su.user_id
+				<if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
+					AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
+				</if>
+				<if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
+					AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
+				</if>
+				) AS handleBWDTotal,(
+			SELECT
+				count( id )
+			FROM
+				`event`
+			WHERE
+				event_category = 1
+				AND event_type = 2
+				AND event_status = 2
+				AND grid_member_id = su.user_id
+				<if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
+					AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
+				</if>
+				<if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
+					AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
+				</if>
+			) AS addGGTotal,
+			(
+			SELECT
+				count( id )
+			FROM
+				`event`
+			WHERE
+				event_category = 1
+				AND event_type = 2
+				AND event_status = 2
+				AND event_process_status = 2
+				AND process_user_id = su.user_id
+				<if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
+					AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
+				</if>
+				<if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
+					AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
+				</if>
+				) AS handleGGTotal,(
+			SELECT
+				count( id )
+			FROM
+				`event`
+			WHERE
+				event_category = 1
+				AND event_type = 6
+				AND event_status = 2
+				AND grid_member_id = su.user_id
+				<if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
+					AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
+				</if>
+				<if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
+					AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
+				</if>
+			) AS addTSTotal,
+			(
+			SELECT
+				count( id )
+			FROM
+				`event`
+			WHERE
+				event_category = 1
+				AND event_type = 6
+				AND event_status = 2
+				AND event_process_status = 2
+				AND process_user_id = su.user_id
+				<if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
+					AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
+				</if>
+				<if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
+					AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
+				</if>
+			) AS handleTSTotal,
+			( SELECT count( id ) FROM event_visiting_tasks WHERE grid_member = su.user_id AND event_status = 2
+				<if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
+					AND DATE_FORMAT(submit_date,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
+				</if>
+				<if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
+					AND DATE_FORMAT(submit_date,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
+				</if>
+			) AS handleZFTotal,
+			( SELECT count( id ) FROM com_act_easy_photo WHERE handle_status = 2 AND handler_id = su.user_id
+				<if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
+					AND DATE_FORMAT(feedback_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
+				</if>
+				<if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
+					AND DATE_FORMAT(feedback_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
+				</if>
+			 ) AS easyPhotoTotal,
+			( SELECT count( id ) FROM `event` WHERE event_category = 2 AND event_status = 2 AND grid_member_id = su.user_id
+				<if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
+					AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
+				</if>
+				<if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
+					AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
+				</if>
+			) AS propagandaEducationTotal
+		FROM
+			sys_user AS su
+			LEFT JOIN `event` AS e ON su.user_id = e.grid_member_id
+		WHERE
+			su.type = 6
+			<if test="statisticsAdminDTO.communityId!=null">
+				AND su.community_id = ${statisticsAdminDTO.communityId}
+			</if>
+			<if test="statisticsAdminDTO.nickName!=null and statisticsAdminDTO.nickName != &quot;&quot;">
+				AND su.nick_name like concat (#{statisticsAdminDTO.nickName},'%')
+			</if>
+		ORDER BY su.create_at desc
+	</select>
+
+	<select id="getGridMemberLcList" resultType="com.panzhihua.common.model.vos.grid.admin.GridMemberLcListVO">
+		select id,lc_grid_member_id,lc_grid_member_name from lc_compare_code_member
+	</select>
+
+	<select id="getGridMemberCascade" resultType="com.panzhihua.common.model.vos.grid.admin.GridMemberCascadeVO">
+		<if test="type != null and type == 1">
+			select community_id as id,`name` from com_act where state = 0
+		</if>
+		<if test="type != null and type == 2">
+			select village_id as id,`name` from com_mng_village where community_id = ${id}
+		</if>
+		<if test="type != null and type == 3">
+			select id,`name` from com_mng_building where village_id = #{id}
+		</if>
+	</select>
+
+	<select id="getVillageCount" resultType="Integer">
+		select count(village_id) from com_mng_village where community_id = ${communityId}
+	</select>
+
+	<select id="getBuildingCount" resultType="Integer">
+		select count(id) from com_mng_building where village_id = #{villageId}
+	</select>
+
+	<select id="getMapGridListsByApp" parameterType="com.panzhihua.common.model.dtos.grid.EventGridCascadeListDTO"
+			resultType="com.panzhihua.common.model.vos.grid.EventMapGridVO">
+		<if test="cascadeListDTO.type != null and cascadeListDTO.type == 1">
+			SELECT DISTINCT
+			egmr.grid_community_id as gridId,
+			ca.`name` AS gridName
+			FROM
+			event_grid_member_relation AS egmr
+			LEFT JOIN com_act AS ca ON ca.community_id = egmr.grid_community_id
+			WHERE
+			grid_member_id = #{cascadeListDTO.userId}
+		</if>
+
+		<if test="cascadeListDTO.type != null and cascadeListDTO.type == 2">
+			select id as gridId,grid_name AS gridName from event_grid_member_relation as egmr where grid_member_id = #{cascadeListDTO.userId} and grid_community_id = ${cascadeListDTO.communityId}
+		</if>
+
+	</select>
+
+	<select id="getMapGridsListsByApp" resultType="com.panzhihua.common.model.vos.grid.EventMapGridCascadeVO">
+		<if test="type != null and type == 1">
+			SELECT DISTINCT
+			egmr.grid_community_id as gridId,
+			ca.`name` AS gridName
+			FROM
+			event_grid_member_relation AS egmr
+			LEFT JOIN com_act AS ca ON ca.community_id = egmr.grid_community_id
+			WHERE
+			grid_member_id = #{userId}
+		</if>
+
+		<if test="type != null and type == 2">
+			SELECT
+			egmr.grid_id,
+			egd.grid_name,
+			egd.grid_community_id
+			FROM
+			event_grid_member_relation AS egmr
+			left join event_grid_data as egd on egd.id = egmr.grid_id
+			where egmr.grid_member_id = #{userId} and egd.grid_community_id = ${communityId}
+		</if>
+	</select>
+
+	<select id="gridMemberStatisticsAll" resultType="com.panzhihua.common.model.vos.grid.EventStatisticsMemberAdminVO"
+			parameterType="com.panzhihua.common.model.dtos.grid.MemberStatisticsAdminDTO">
+		SELECT DISTINCT
+		su.nick_name,(
+		SELECT
+		count( id )
+		FROM
+		`event`
+		WHERE
+		event_category = 1
+		AND event_type = 5
+		AND event_status = 2
+		AND grid_member_id = su.user_id
+		<if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
+			AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
+		</if>
+		<if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
+			AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
+		</if>
+		) AS addTFTotal,
+		(
+		SELECT
+		count( id )
+		FROM
+		`event`
+		WHERE
+		event_category = 1
+		AND event_type = 5
+		AND event_status = 2
+		AND event_process_status = 2
+		AND process_user_id = su.user_id
+		<if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
+			AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
+		</if>
+		<if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
+			AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
+		</if>
+		) AS handleTFTotal,(
+		SELECT
+		count( id )
+		FROM
+		`event`
+		WHERE
+		event_category = 1
+		AND event_type = 3
+		AND event_status = 2
+		AND grid_member_id = su.user_id
+		<if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
+			AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
+		</if>
+		<if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
+			AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
+		</if>
+		) AS addMDTotal,
+		(
+		SELECT
+		count( id )
+		FROM
+		`event`
+		WHERE
+		event_category = 1
+		AND event_type = 3
+		AND event_status = 2
+		AND event_process_status = 2
+		AND process_user_id = su.user_id
+		<if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
+			AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
+		</if>
+		<if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
+			AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
+		</if>
+		) AS handleMDTotal,(
+		SELECT
+		count( id )
+		FROM
+		`event`
+		WHERE
+		event_category = 1
+		AND event_type = 1
+		AND event_status = 2
+		AND grid_member_id = su.user_id
+		<if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
+			AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
+		</if>
+		<if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
+			AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
+		</if>
+		) AS addZATotal,
+		(
+		SELECT
+		count( id )
+		FROM
+		`event`
+		WHERE
+		event_category = 1
+		AND event_type = 1
+		AND event_status = 2
+		AND event_process_status = 2
+		AND process_user_id = su.user_id
+		<if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
+			AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
+		</if>
+		<if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
+			AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
+		</if>
+		) AS handleZATotal,(
+		SELECT
+		count( id )
+		FROM
+		`event`
+		WHERE
+		event_category = 1
+		AND event_type = 4
+		AND event_status = 2
+		AND grid_member_id = su.user_id
+		<if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
+			AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
+		</if>
+		<if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
+			AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
+		</if>
+		) AS addBWDTotal,
+		(
+		SELECT
+		count( id )
+		FROM
+		`event`
+		WHERE
+		event_category = 1
+		AND event_type = 4
+		AND event_status = 2
+		AND event_process_status = 2
+		AND process_user_id = su.user_id
+		<if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
+			AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
+		</if>
+		<if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
+			AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
+		</if>
+		) AS handleBWDTotal,(
+		SELECT
+		count( id )
+		FROM
+		`event`
+		WHERE
+		event_category = 1
+		AND event_type = 2
+		AND event_status = 2
+		AND grid_member_id = su.user_id
+		<if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
+			AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
+		</if>
+		<if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
+			AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
+		</if>
+		) AS addGGTotal,
+		(
+		SELECT
+		count( id )
+		FROM
+		`event`
+		WHERE
+		event_category = 1
+		AND event_type = 2
+		AND event_status = 2
+		AND event_process_status = 2
+		AND process_user_id = su.user_id
+		<if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
+			AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
+		</if>
+		<if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
+			AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
+		</if>
+		) AS handleGGTotal,(
+		SELECT
+		count( id )
+		FROM
+		`event`
+		WHERE
+		event_category = 1
+		AND event_type = 6
+		AND event_status = 2
+		AND grid_member_id = su.user_id
+		<if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
+			AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
+		</if>
+		<if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
+			AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
+		</if>
+		) AS addTSTotal,
+		(
+		SELECT
+		count( id )
+		FROM
+		`event`
+		WHERE
+		event_category = 1
+		AND event_type = 6
+		AND event_status = 2
+		AND event_process_status = 2
+		AND process_user_id = su.user_id
+		<if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
+			AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
+		</if>
+		<if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
+			AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
+		</if>
+		) AS handleTSTotal,
+		( SELECT count( id ) FROM event_visiting_tasks WHERE grid_member = su.user_id AND event_status = 2
+		<if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
+			AND DATE_FORMAT(submit_date,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
+		</if>
+		<if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
+			AND DATE_FORMAT(submit_date,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
+		</if>
+		) AS handleZFTotal,
+		( SELECT count( id ) FROM com_act_easy_photo WHERE handle_status = 2 AND handler_id = su.user_id
+		<if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
+			AND DATE_FORMAT(feedback_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
+		</if>
+		<if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
+			AND DATE_FORMAT(feedback_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
+		</if>
+		) AS easyPhotoTotal,
+		( SELECT count( id ) FROM `event` WHERE event_category = 2 AND event_status = 2 AND grid_member_id = su.user_id
+		<if test="statisticsAdminDTO.startTime!=null and statisticsAdminDTO.startTime != &quot;&quot;">
+			AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ >= ]]> #{statisticsAdminDTO.startTime}
+		</if>
+		<if test="statisticsAdminDTO.endTime!=null and statisticsAdminDTO.endTime != &quot;&quot;">
+			AND DATE_FORMAT(create_at,'%Y-%m-%d %H:%i:%s') <![CDATA[ <= ]]> #{statisticsAdminDTO.endTime}
+		</if>
+		) AS propagandaEducationTotal
+		FROM
+		sys_user AS su
+		LEFT JOIN `event` AS e ON su.user_id = e.grid_member_id
+		WHERE
+		su.type = 6
+		<if test="statisticsAdminDTO.communityId!=null">
+			AND su.community_id = ${statisticsAdminDTO.communityId}
+		</if>
+		<if test="statisticsAdminDTO.nickName!=null and statisticsAdminDTO.nickName != &quot;&quot;">
+			AND su.nick_name like concat (#{statisticsAdminDTO.nickName},'%')
+		</if>
+		ORDER BY su.create_at desc
+	</select>
+
+	<select id="getGridsMemberList" resultType="com.panzhihua.common.model.vos.screen.GridMemberTrajectoryVo">
+		SELECT
+			egmr.grid_member_id as userId,
+			su.`name`,
+			su.phone
+		FROM
+			event_grid_member_relation AS egmr
+			left join event_grid_data as egd on egd.id = egmr.grid_id
+			INNER JOIN sys_user AS su ON su.user_id = egmr.grid_member_id
+
+			where egd.grid_community_id = ${communityId}
+	</select>
+
+	<select id="getGridsMemberTrajectory" resultType="String">
+		select lng_lat from event_grid_member_gps_log
+		where grid_member_id = #{userId} and create_at > DATE_SUB(DATE_FORMAT(CURDATE(),'%Y-%m-%d 09:00:00'),INTERVAL 0 DAY)
+	</select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventGridMemberWarnLogMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventGridMemberWarnLogMapper.xml
new file mode 100644
index 0000000..6a23ce5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventGridMemberWarnLogMapper.xml
@@ -0,0 +1,91 @@
+<?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_grid.dao.EventGridMemberWarnLogMapper">
+
+ 	<resultMap id="baseResult" type="com.panzhihua.service_grid.model.dos.EventGridMemberWarnLogDO">
+		<result property="id" column="id"/>
+		<result property="gridStreetId" column="grid_street_id"/>
+		<result property="gridCommunityId" column="grid_community_id"/>
+		<result property="gridId" column="grid_id"/>
+		<result property="gridName" column="grid_name"/>
+		<result property="gridMemberId" column="grid_member_id"/>
+		<result property="lngLat" column="lng_lat"/>
+		<result property="content" column="content"/>
+		<result property="createBy" column="create_by"/>
+		<result property="createAt" column="create_at"/>
+	</resultMap>
+
+	<sql id="columns">
+	<![CDATA[
+		id,grid_street_id,grid_community_id,grid_id,grid_name,grid_member_id,lng_lat,content,create_by,create_at
+	]]>
+	</sql>
+
+
+    <select id="findByPage" resultType="com.panzhihua.common.model.vos.grid.EventGridMemberWarnLogVO"
+        parameterType="com.panzhihua.common.model.dtos.grid.PageEventGridMemberWarnLogDTO">
+    	SELECT <include refid="columns" />
+	    FROM event_grid_member_warn_log
+		<where>
+	       <if test="pageEventGridMemberWarnLogDTO.id!=null">
+				AND id = #{pageEventGridMemberWarnLogDTO.id}
+			</if>
+	       <if test="pageEventGridMemberWarnLogDTO.gridStreetId!=null">
+				AND grid_street_id = #{pageEventGridMemberWarnLogDTO.gridStreetId}
+			</if>
+	       <if test="pageEventGridMemberWarnLogDTO.gridCommunityId!=null">
+				AND grid_community_id = ${pageEventGridMemberWarnLogDTO.gridCommunityId}
+			</if>
+	       <if test="pageEventGridMemberWarnLogDTO.gridId!=null">
+				AND grid_id = #{pageEventGridMemberWarnLogDTO.gridId}
+			</if>
+	       <if test="pageEventGridMemberWarnLogDTO.gridName!=null">
+				AND grid_name = #{pageEventGridMemberWarnLogDTO.gridName}
+			</if>
+	       <if test="pageEventGridMemberWarnLogDTO.gridMemberId!=null">
+				AND grid_member_id = #{pageEventGridMemberWarnLogDTO.gridMemberId}
+			</if>
+	       <if test="pageEventGridMemberWarnLogDTO.lngLat!=null">
+				AND lng_lat = #{pageEventGridMemberWarnLogDTO.lngLat}
+			</if>
+	       <if test="pageEventGridMemberWarnLogDTO.content!=null">
+				AND content = #{pageEventGridMemberWarnLogDTO.content}
+			</if>
+	       <if test="pageEventGridMemberWarnLogDTO.createBy!=null">
+				AND create_by = #{pageEventGridMemberWarnLogDTO.createBy}
+			</if>
+	       <if test="pageEventGridMemberWarnLogDTO.createAtBegin!=null">
+				AND create_at &gt;= #{pageEventGridMemberWarnLogDTO.createAtBegin}
+		   </if>
+		   <if test="pageEventGridMemberWarnLogDTO.createAtEnd!=null">
+				AND create_at &lt;= #{pageEventGridMemberWarnLogDTO.createAtEnd}
+		   </if>
+		</where>
+		<if test="pageEventGridMemberWarnLogDTO.sortColumns!=null">
+			ORDER BY ${pageEventGridMemberWarnLogDTO.sortColumns} ${pageEventGridMemberWarnLogDTO.sortType}
+		</if>
+    </select>
+
+	<select id="gridMemberWorkWarning" parameterType="com.panzhihua.common.model.dtos.grid.EventGridMemberWainDTO" resultType="com.panzhihua.common.model.vos.grid.EventGridMemberWarnLogAdminVO">
+		SELECT
+			id,
+			position_address,
+			content,
+			happen_at
+		FROM
+			event_grid_member_warn_log
+		WHERE
+			grid_member_id = #{gridMemberWainDTO.gridMemberId}
+		<if test="gridMemberWainDTO.keyWord!=null and gridMemberWainDTO.keyWord!= &quot;&quot;">
+			AND (content like concat(#{gridMemberWainDTO.keyWord},'%') or position_address like concat(#{gridMemberWainDTO.keyWord},'%'))
+		</if>
+		order by create_at desc
+	</select>
+
+	<update id="setUserWorkStatus">
+		update sys_user set work_status = #{workStatus} where user_id = #{userId}
+	</update>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventMainMemberMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventMainMemberMapper.xml
new file mode 100644
index 0000000..30b2feb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventMainMemberMapper.xml
@@ -0,0 +1,160 @@
+<?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_grid.dao.EventMainMemberMapper">
+
+ 	<resultMap id="baseResult" type="com.panzhihua.service_grid.model.dos.EventMainMemberDO">
+		<result property="id" column="id"/>
+		<result property="gridMemberStreet" column="grid_member_street"/>
+		<result property="gridMemberCommunity" column="grid_member_community"/>
+		<result property="gridMember" column="grid_member"/>
+		<result property="gridMemberName" column="grid_member_name"/>
+		<result property="gridMemberTele" column="grid_member_tele"/>
+		<result property="visiterId" column="visiter_id"/>
+		<result property="visiterName" column="visiter_name"/>
+		<result property="visiterSex" column="visiter_sex"/>
+		<result property="visiterTele" column="visiter_tele"/>
+		<result property="visiterAddress" column="visiter_address"/>
+		<result property="visiterAddressLatLng" column="visiter_address_lat_lng"/>
+		<result property="visiterType" column="visiter_type"/>
+		<result property="actOpara" column="act_opara"/>
+		<result property="eventStatus" column="event_status"/>
+		<result property="reporting" column="reporting"/>
+		<result property="dellType" column="dell_type"/>
+		<result property="dellUserId" column="dell_user_id"/>
+		<result property="dellUserName" column="dell_user_name"/>
+		<result property="dellDate" column="dell_date"/>
+		<result property="dellDesc" column="dell_desc"/>
+		<result property="invalid" column="invalid"/>
+		<result property="urgent" column="urgent"/>
+		<result property="urgentDell" column="urgent_dell"/>
+		<result property="submitDate" column="submit_date"/>
+		<result property="visiterConfig" column="visiter_config"/>
+		<result property="createBy" column="create_by"/>
+		<result property="createAt" column="create_at"/>
+		<result property="updateBy" column="update_by"/>
+		<result property="updateAt" column="update_at"/>
+	</resultMap>
+
+	<sql id="columns">
+	<![CDATA[
+		id,grid_member_street,grid_member_community,grid_member,grid_member_name,grid_member_tele,visiter_id,visiter_name,visiter_sex,visiter_tele,visiter_address,visiter_address_lat_lng,visiter_type,act_opara,event_status,reporting,dell_type,dell_user_id,dell_user_name,dell_date,dell_desc,invalid,urgent,urgent_dell,submit_date,visiter_config,create_by,create_at,update_by,update_at
+	]]>
+	</sql>
+
+
+    <select id="findByPage" resultType="com.panzhihua.common.model.vos.grid.EventMainMemberVO"
+        parameterType="com.panzhihua.common.model.dtos.grid.PageEventMainMemberDTO">
+    	SELECT <include refid="columns" />
+	    FROM event_main_member
+		<where>
+	       <if test="pageEventMainMemberDTO.id!=null">
+				AND id = #{pageEventMainMemberDTO.id}
+			</if>
+	       <if test="pageEventMainMemberDTO.gridMemberStreet!=null">
+				AND grid_member_street = #{pageEventMainMemberDTO.gridMemberStreet}
+			</if>
+	       <if test="pageEventMainMemberDTO.gridMemberCommunity!=null">
+				AND grid_member_community = #{pageEventMainMemberDTO.gridMemberCommunity}
+			</if>
+	       <if test="pageEventMainMemberDTO.gridMember!=null">
+				AND grid_member = #{pageEventMainMemberDTO.gridMember}
+			</if>
+	       <if test="pageEventMainMemberDTO.gridMemberName!=null">
+				AND grid_member_name = #{pageEventMainMemberDTO.gridMemberName}
+			</if>
+	       <if test="pageEventMainMemberDTO.gridMemberTele!=null">
+				AND grid_member_tele = #{pageEventMainMemberDTO.gridMemberTele}
+			</if>
+	       <if test="pageEventMainMemberDTO.visiterId!=null">
+				AND visiter_id = #{pageEventMainMemberDTO.visiterId}
+			</if>
+	       <if test="pageEventMainMemberDTO.visiterName!=null">
+				AND visiter_name = #{pageEventMainMemberDTO.visiterName}
+			</if>
+	       <if test="pageEventMainMemberDTO.visiterSex!=null">
+				AND visiter_sex = #{pageEventMainMemberDTO.visiterSex}
+			</if>
+	       <if test="pageEventMainMemberDTO.visiterTele!=null">
+				AND visiter_tele = #{pageEventMainMemberDTO.visiterTele}
+			</if>
+	       <if test="pageEventMainMemberDTO.visiterAddress!=null">
+				AND visiter_address = #{pageEventMainMemberDTO.visiterAddress}
+			</if>
+	       <if test="pageEventMainMemberDTO.visiterAddressLatLng!=null">
+				AND visiter_address_lat_lng = #{pageEventMainMemberDTO.visiterAddressLatLng}
+			</if>
+	       <if test="pageEventMainMemberDTO.visiterType!=null">
+				AND visiter_type = #{pageEventMainMemberDTO.visiterType}
+			</if>
+	       <if test="pageEventMainMemberDTO.actOpara!=null">
+				AND act_opara = #{pageEventMainMemberDTO.actOpara}
+			</if>
+	       <if test="pageEventMainMemberDTO.eventStatus!=null">
+				AND event_status = #{pageEventMainMemberDTO.eventStatus}
+			</if>
+	       <if test="pageEventMainMemberDTO.reporting!=null">
+				AND reporting = #{pageEventMainMemberDTO.reporting}
+			</if>
+	       <if test="pageEventMainMemberDTO.dellType!=null">
+				AND dell_type = #{pageEventMainMemberDTO.dellType}
+			</if>
+	       <if test="pageEventMainMemberDTO.dellUserId!=null">
+				AND dell_user_id = #{pageEventMainMemberDTO.dellUserId}
+			</if>
+	       <if test="pageEventMainMemberDTO.dellUserName!=null">
+				AND dell_user_name = #{pageEventMainMemberDTO.dellUserName}
+			</if>
+	       <if test="pageEventMainMemberDTO.dellDateBegin!=null">
+				AND dell_date &gt;= #{pageEventMainMemberDTO.dellDateBegin}
+		   </if>
+		   <if test="pageEventMainMemberDTO.dellDateEnd!=null">
+				AND dell_date &lt;= #{pageEventMainMemberDTO.dellDateEnd}
+		   </if>
+	       <if test="pageEventMainMemberDTO.dellDesc!=null">
+				AND dell_desc = #{pageEventMainMemberDTO.dellDesc}
+			</if>
+	       <if test="pageEventMainMemberDTO.invalid!=null">
+				AND invalid = #{pageEventMainMemberDTO.invalid}
+			</if>
+	       <if test="pageEventMainMemberDTO.urgent!=null">
+				AND urgent = #{pageEventMainMemberDTO.urgent}
+			</if>
+	       <if test="pageEventMainMemberDTO.urgentDell!=null">
+				AND urgent_dell = #{pageEventMainMemberDTO.urgentDell}
+			</if>
+	       <if test="pageEventMainMemberDTO.submitDateBegin!=null">
+				AND submit_date &gt;= #{pageEventMainMemberDTO.submitDateBegin}
+		   </if>
+		   <if test="pageEventMainMemberDTO.submitDateEnd!=null">
+				AND submit_date &lt;= #{pageEventMainMemberDTO.submitDateEnd}
+		   </if>
+	       <if test="pageEventMainMemberDTO.visiterConfig!=null">
+				AND visiter_config = #{pageEventMainMemberDTO.visiterConfig}
+			</if>
+	       <if test="pageEventMainMemberDTO.createBy!=null">
+				AND create_by = #{pageEventMainMemberDTO.createBy}
+			</if>
+	       <if test="pageEventMainMemberDTO.createAtBegin!=null">
+				AND create_at &gt;= #{pageEventMainMemberDTO.createAtBegin}
+		   </if>
+		   <if test="pageEventMainMemberDTO.createAtEnd!=null">
+				AND create_at &lt;= #{pageEventMainMemberDTO.createAtEnd}
+		   </if>
+	       <if test="pageEventMainMemberDTO.updateBy!=null">
+				AND update_by = #{pageEventMainMemberDTO.updateBy}
+			</if>
+	       <if test="pageEventMainMemberDTO.updateAtBegin!=null">
+				AND update_at &gt;= #{pageEventMainMemberDTO.updateAtBegin}
+		   </if>
+		   <if test="pageEventMainMemberDTO.updateAtEnd!=null">
+				AND update_at &lt;= #{pageEventMainMemberDTO.updateAtEnd}
+		   </if>
+		</where>
+		<if test="pageEventMainMemberDTO.sortColumns!=null">
+			ORDER BY ${pageEventMainMemberDTO.sortColumns} ${pageEventMainMemberDTO.sortType}
+		</if>
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventMapper.xml
new file mode 100644
index 0000000..7bdcc5c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventMapper.xml
@@ -0,0 +1,1525 @@
+<?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_grid.dao.EventMapper">
+
+ 	<resultMap id="baseResult" type="com.panzhihua.service_grid.model.dos.EventDO">
+		<result property="id" column="id"/>
+		<result property="orderSn" column="order_sn"/>
+		<result property="eventCategory" column="event_category"/>
+		<result property="gridMemberStreet" column="grid_member_street"/>
+		<result property="gridMemberCommunity" column="grid_member_community"/>
+		<result property="gridId" column="grid_id"/>
+		<result property="gridMemberId" column="grid_member_id"/>
+		<result property="gridMemberName" column="grid_member_name"/>
+		<result property="gridMemberTelephone" column="grid_member_telephone"/>
+		<result property="eventTitle" column="event_title"/>
+		<result property="propagandaType" column="propaganda_type"/>
+		<result property="propagandaTime" column="propaganda_time"/>
+		<result property="eventType" column="event_type"/>
+		<result property="eventDes" column="event_des"/>
+		<result property="propagandaObject" column="propaganda_object"/>
+		<result property="propagandaNum" column="propaganda_num"/>
+		<result property="communityProcess" column="community_process"/>
+		<result property="happenTime" column="happen_time"/>
+		<result property="happentAddress" column="happent_address"/>
+		<result property="happenAddress" column="happen_address"/>
+		<result property="happentLatLng" column="happent_lat_lng"/>
+		<result property="eventStatus" column="event_status"/>
+		<result property="eventProcessStatus" column="event_process_status"/>
+		<result property="processType" column="process_type"/>
+		<result property="processUserId" column="process_user_id"/>
+		<result property="processUserName" column="process_user_name"/>
+		<result property="processDate" column="process_date"/>
+		<result property="processDesc" column="process_desc"/>
+		<result property="eventResource" column="event_resource"/>
+		<result property="dangerLevel" column="danger_level"/>
+		<result property="redCard" column="red_card"/>
+		<result property="yellowCard" column="yellow_card"/>
+		<result property="invalid" column="invalid"/>
+		<result property="major" column="major"/>
+		<result property="deathsNumber" column="deaths_number"/>
+		<result property="injuriesNumber" column="injuries_number"/>
+		<result property="difficult" column="difficult"/>
+		<result property="urgent" column="urgent"/>
+		<result property="urgentDell" column="urgent_dell"/>
+		<result property="submitDate" column="submit_date"/>
+		<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="eventClazz" column="event_clazz"/>
+		<result property="eventDealStatus" column="event_deal_status"/>
+	</resultMap>
+
+	<sql id="columns">
+	<![CDATA[
+		id,order_sn,event_category,grid_member_street,happen_address,grid_member_community,event_clazz,grid_id,grid_member_id,grid_member_name,grid_member_telephone,
+		event_title,propaganda_type,propaganda_time,event_type,event_des,propaganda_object,propaganda_num,community_process,happen_time,happent_address,happent_lat_lng,
+		event_status,event_process_status,process_type,process_user_id,process_user_name,process_date,process_desc,event_resource,danger_level,red_card,yellow_card,invalid,
+		major,deaths_number,injuries_number,difficult,urgent,urgent_dell,submit_date,create_by,create_at,update_by,update_at,event_deal_status
+	]]>
+	</sql>
+
+
+    <select id="findByPage" resultType="com.panzhihua.common.model.vos.grid.EventVO"
+        parameterType="com.panzhihua.common.model.dtos.grid.PageEventDTO">
+    	SELECT <include refid="columns" />
+	    FROM event
+		<where>
+			event_status != 3 AND event_category = 1
+			<if test="pageEventDTO.eventDealStatus!=null">
+			    AND event_deal_status = #{pageEventDTO.eventDealStatus}
+			</if>
+			<if test="pageEventDTO.isAll!=null and pageEventDTO.isAll == 1">
+				AND event_deal_status in (1,2,4)
+			</if>
+			<if test="pageEventDTO.revokeType!=null">
+				AND ( revoke_type = #{pageEventDTO.revokeType} OR revoke_type is null )
+			</if>
+	       <if test="pageEventDTO.id!=null">
+				AND id = #{pageEventDTO.id}
+			</if>
+	       <if test="pageEventDTO.orderSn!=null">
+				AND order_sn = #{pageEventDTO.orderSn}
+			</if>
+	       <if test="pageEventDTO.eventCategory!=null">
+				AND event_category = #{pageEventDTO.eventCategory}
+			</if>
+	       <if test="pageEventDTO.gridMemberStreet!=null">
+				AND grid_member_street = #{pageEventDTO.gridMemberStreet}
+			</if>
+	       <if test="pageEventDTO.gridMemberCommunity!=null">
+				AND grid_member_community = #{pageEventDTO.gridMemberCommunity}
+			</if>
+	       <if test="pageEventDTO.gridId!=null">
+				AND grid_id = #{pageEventDTO.gridId}
+			</if>
+	       <if test="pageEventDTO.gridMemberId!=null">
+				AND grid_member_id = #{pageEventDTO.gridMemberId}
+			</if>
+	       <if test="pageEventDTO.gridMemberName!=null">
+				AND grid_member_name = #{pageEventDTO.gridMemberName}
+			</if>
+	       <if test="pageEventDTO.gridMemberTelephone!=null">
+				AND grid_member_telephone = #{pageEventDTO.gridMemberTelephone}
+			</if>
+	       <if test="pageEventDTO.eventTitle!=null">
+				AND event_title = #{pageEventDTO.eventTitle}
+			</if>
+	       <if test="pageEventDTO.propagandaType!=null">
+				AND propaganda_type = #{pageEventDTO.propagandaType}
+			</if>
+	       <if test="pageEventDTO.propagandaTimeBegin!=null">
+				AND propaganda_time <![CDATA[>=]]> #{pageEventDTO.propagandaTimeBegin}
+		   </if>
+		   <if test="pageEventDTO.propagandaTimeEnd!=null">
+				AND propaganda_time <![CDATA[<=]]> #{pageEventDTO.propagandaTimeEnd}
+		   </if>
+	       <if test="pageEventDTO.eventType!=null">
+				AND event_type = #{pageEventDTO.eventType}
+			</if>
+	       <if test="pageEventDTO.eventDes!=null">
+				AND event_des = #{pageEventDTO.eventDes}
+			</if>
+			<if test="pageEventDTO.eventClazz!=null">
+				AND event_clazz like concat(#{pageEventDTO.eventClazz},'%')
+			</if>
+	       <if test="pageEventDTO.propagandaObject!=null">
+				AND propaganda_object = #{pageEventDTO.propagandaObject}
+			</if>
+	       <if test="pageEventDTO.propagandaNum!=null">
+				AND propaganda_num = #{pageEventDTO.propagandaNum}
+			</if>
+	       <if test="pageEventDTO.communityProcess!=null">
+				AND community_process = #{pageEventDTO.communityProcess}
+			</if>
+	       <if test="pageEventDTO.happenTimeBegin!=null">
+				AND happen_time <![CDATA[>=]]> #{pageEventDTO.happenTimeBegin}
+		   </if>
+		   <if test="pageEventDTO.happenTimeEnd!=null">
+				AND happen_time <![CDATA[<=]]> #{pageEventDTO.happenTimeEnd}
+		   </if>
+	       <if test="pageEventDTO.happentAddress!=null">
+				AND happent_address = #{pageEventDTO.happentAddress}
+			</if>
+	       <if test="pageEventDTO.happentLatLng!=null">
+				AND happent_lat_lng = #{pageEventDTO.happentLatLng}
+			</if>
+	       <if test="pageEventDTO.eventStatus!=null">
+				AND event_status = #{pageEventDTO.eventStatus}
+			</if>
+	       <if test="pageEventDTO.eventProcessStatus!=null">
+				AND event_process_status = #{pageEventDTO.eventProcessStatus}
+			</if>
+	       <if test="pageEventDTO.processType!=null">
+				AND process_type = #{pageEventDTO.processType}
+			</if>
+	       <if test="pageEventDTO.processUserId!=null">
+				AND process_user_id = #{pageEventDTO.processUserId}
+			</if>
+	       <if test="pageEventDTO.processUserName!=null">
+				AND process_user_name = #{pageEventDTO.processUserName}
+			</if>
+	       <if test="pageEventDTO.processDateBegin!=null">
+				AND process_date <![CDATA[>=]]> #{pageEventDTO.processDateBegin}
+		   </if>
+		   <if test="pageEventDTO.processDateEnd!=null">
+				AND process_date <![CDATA[<=]]> #{pageEventDTO.processDateEnd}
+		   </if>
+	       <if test="pageEventDTO.processDesc!=null">
+				AND process_desc = #{pageEventDTO.processDesc}
+			</if>
+	       <if test="pageEventDTO.eventResource!=null">
+				AND event_resource = #{pageEventDTO.eventResource}
+			</if>
+	       <if test="pageEventDTO.dangerLevel!=null">
+				AND danger_level = #{pageEventDTO.dangerLevel}
+			</if>
+	       <if test="pageEventDTO.redCard!=null">
+				AND red_card = #{pageEventDTO.redCard}
+			</if>
+	       <if test="pageEventDTO.yellowCard!=null">
+				AND yellow_card = #{pageEventDTO.yellowCard}
+			</if>
+	       <if test="pageEventDTO.invalid!=null">
+				AND invalid = #{pageEventDTO.invalid}
+			</if>
+	       <if test="pageEventDTO.major!=null">
+				AND major = #{pageEventDTO.major}
+			</if>
+	       <if test="pageEventDTO.deathsNumber!=null">
+				AND deaths_number = #{pageEventDTO.deathsNumber}
+			</if>
+	       <if test="pageEventDTO.injuriesNumber!=null">
+				AND injuries_number = #{pageEventDTO.injuriesNumber}
+			</if>
+	       <if test="pageEventDTO.difficult!=null">
+				AND difficult = #{pageEventDTO.difficult}
+			</if>
+	       <if test="pageEventDTO.urgent!=null">
+				AND urgent = #{pageEventDTO.urgent}
+			</if>
+	       <if test="pageEventDTO.urgentDell!=null">
+				AND urgent_dell = #{pageEventDTO.urgentDell}
+			</if>
+	       <if test="pageEventDTO.submitDateBegin!=null">
+				AND submit_date <![CDATA[>=]]> #{pageEventDTO.submitDateBegin}
+		   </if>
+		   <if test="pageEventDTO.submitDateEnd!=null">
+				AND submit_date <![CDATA[<=]]> #{pageEventDTO.submitDateEnd}
+		   </if>
+	       <if test="pageEventDTO.createBy!=null">
+				AND create_by = #{pageEventDTO.createBy}
+			</if>
+	       <if test="pageEventDTO.createAtBegin!=null">
+				AND create_at  <![CDATA[>=]]> #{pageEventDTO.createAtBegin}
+		   </if>
+		   <if test="pageEventDTO.createAtEnd!=null">
+				AND create_at <![CDATA[<=]]> #{pageEventDTO.createAtEnd}
+		   </if>
+	       <if test="pageEventDTO.updateBy!=null">
+				AND update_by = #{pageEventDTO.updateBy}
+			</if>
+	       <if test="pageEventDTO.updateAtBegin!=null">
+				AND update_at <![CDATA[>=]]> #{pageEventDTO.updateAtBegin}
+		   </if>
+		   <if test="pageEventDTO.updateAtEnd!=null">
+				AND update_at <![CDATA[<=]]> #{pageEventDTO.updateAtEnd}
+		   </if>
+		</where>
+		order by event_deal_status asc,create_at desc
+    </select>
+    <select id="findPublicityByPage" resultType="com.panzhihua.common.model.vos.grid.EventVO"
+			parameterType="com.panzhihua.common.model.dtos.grid.PagePublicityEventDTO">
+		SELECT
+			e.id,e.order_sn,e.event_category,e.grid_member_street,e.happen_address,e.grid_member_community,e.event_clazz,e.grid_id,e.grid_member_id,e.grid_member_name,e.grid_member_telephone,
+			e.event_title,e.propaganda_type,e.propaganda_time,e.event_type,e.event_des,e.propaganda_object,e.propaganda_num,e.community_process,e.happen_time,e.happent_address,e.happent_lat_lng,
+			e.event_status,e.event_process_status,e.process_type,e.process_user_id,e.process_user_name,e.process_date,e.process_desc,e.event_resource,e.danger_level,e.red_card,e.yellow_card,e.invalid,
+			e.major,e.deaths_number,e.injuries_number,e.difficult,e.urgent,e.urgent_dell,e.submit_date,e.create_by,e.create_at,e.update_by,e.update_at,e.event_deal_status
+		FROM
+			event e left join event_grid_data egd on e.grid_id = egd.id
+		<where>
+			e.event_status != 3 AND e.event_category = 2
+			<if test="pagePublicityEventDTO.communityId!=null">
+				AND egd.grid_community_id = ${pagePublicityEventDTO.communityId}
+			</if>
+
+			<if test="pagePublicityEventDTO.revokeType!=null">
+				AND ( e.revoke_type = #{pagePublicityEventDTO.revokeType} OR e.revoke_type is null )
+			</if>
+			<if test="pagePublicityEventDTO.eventDealStatus!=null">
+				AND e.event_deal_status = #{pagePublicityEventDTO.eventDealStatus}
+			</if>
+			<if test="pagePublicityEventDTO.id!=null">
+				AND e.id = #{pagePublicityEventDTO.id}
+			</if>
+			<if test="pagePublicityEventDTO.orderSn!=null">
+				AND e.order_sn = #{pagePublicityEventDTO.orderSn}
+			</if>
+			<if test="pagePublicityEventDTO.eventCategory!=null">
+				AND e.event_category = #{pagePublicityEventDTO.eventCategory}
+			</if>
+			<if test="pagePublicityEventDTO.gridMemberStreet!=null">
+				AND e.grid_member_street = #{pagePublicityEventDTO.gridMemberStreet}
+			</if>
+			<if test="pagePublicityEventDTO.gridMemberCommunity!=null">
+				AND e.grid_member_community = #{pagePublicityEventDTO.gridMemberCommunity}
+			</if>
+			<if test="pagePublicityEventDTO.gridId!=null">
+				AND e.grid_id = #{pagePublicityEventDTO.gridId}
+			</if>
+			<if test="pagePublicityEventDTO.gridMemberId!=null">
+				AND e.grid_member_id = #{pagePublicityEventDTO.gridMemberId}
+			</if>
+			<if test="pagePublicityEventDTO.gridMemberName!=null">
+				AND e.grid_member_name = #{pagePublicityEventDTO.gridMemberName}
+			</if>
+			<if test="pagePublicityEventDTO.gridMemberTelephone!=null">
+				AND e.grid_member_telephone = #{pagePublicityEventDTO.gridMemberTelephone}
+			</if>
+			<if test="pagePublicityEventDTO.eventTitle!=null">
+				AND e.event_title = #{pagePublicityEventDTO.eventTitle}
+			</if>
+			<if test="pagePublicityEventDTO.propagandaType!=null">
+				AND e.propaganda_type = #{pagePublicityEventDTO.propagandaType}
+			</if>
+			<if test="pagePublicityEventDTO.propagandaTimeBegin!=null">
+				AND e.propaganda_time <![CDATA[>=]]> #{pagePublicityEventDTO.propagandaTimeBegin}
+			</if>
+			<if test="pagePublicityEventDTO.propagandaTimeEnd!=null">
+				AND e.propaganda_time <![CDATA[<=]]> #{pagePublicityEventDTO.propagandaTimeEnd}
+			</if>
+			<if test="pagePublicityEventDTO.eventDes!=null">
+				AND e.event_des = #{pagePublicityEventDTO.eventDes}
+			</if>
+			<if test="pagePublicityEventDTO.propagandaObject!=null">
+				AND e.propaganda_object = #{pagePublicityEventDTO.propagandaObject}
+			</if>
+			<if test="pagePublicityEventDTO.propagandaNum!=null">
+				AND e.propaganda_num = #{pagePublicityEventDTO.propagandaNum}
+			</if>
+			<if test="pagePublicityEventDTO.communityProcess!=null">
+				AND e.community_process = #{pagePublicityEventDTO.communityProcess}
+			</if>
+			<if test="pagePublicityEventDTO.happenTimeBegin!=null">
+				AND e.happen_time <![CDATA[>=]]> #{pagePublicityEventDTO.happenTimeBegin}
+			</if>
+			<if test="pagePublicityEventDTO.happenTimeEnd!=null">
+				AND e.happen_time <![CDATA[<=]]> #{pagePublicityEventDTO.happenTimeEnd}
+			</if>
+			<if test="pagePublicityEventDTO.happentAddress!=null">
+				AND e.happent_address = #{pagePublicityEventDTO.happentAddress}
+			</if>
+			<if test="pagePublicityEventDTO.happentLatLng!=null">
+				AND e.happent_lat_lng = #{pagePublicityEventDTO.happentLatLng}
+			</if>
+			<if test="pagePublicityEventDTO.eventStatus!=null">
+				AND e.event_status = #{pagePublicityEventDTO.eventStatus}
+			</if>
+			<if test="pagePublicityEventDTO.eventProcessStatus!=null">
+				AND e.event_process_status = #{pagePublicityEventDTO.eventProcessStatus}
+			</if>
+			<if test="pagePublicityEventDTO.processType!=null">
+				AND e.process_type = #{pagePublicityEventDTO.processType}
+			</if>
+			<if test="pagePublicityEventDTO.processUserId!=null">
+				AND e.process_user_id = #{pagePublicityEventDTO.processUserId}
+			</if>
+			<if test="pagePublicityEventDTO.processUserName!=null">
+				AND e.process_user_name = #{pagePublicityEventDTO.processUserName}
+			</if>
+			<if test="pagePublicityEventDTO.processDateBegin!=null">
+				AND e.process_date <![CDATA[>=]]> #{pagePublicityEventDTO.processDateBegin}
+			</if>
+			<if test="pagePublicityEventDTO.processDateEnd!=null">
+				AND e.process_date <![CDATA[<=]]> #{pagePublicityEventDTO.processDateEnd}
+			</if>
+			<if test="pagePublicityEventDTO.processDesc!=null">
+				AND e.process_desc = #{pagePublicityEventDTO.processDesc}
+			</if>
+			<if test="pagePublicityEventDTO.eventResource!=null">
+				AND e.event_resource = #{pagePublicityEventDTO.eventResource}
+			</if>
+			<if test="pagePublicityEventDTO.dangerLevel!=null">
+				AND e.danger_level = #{pagePublicityEventDTO.dangerLevel}
+			</if>
+			<if test="pagePublicityEventDTO.redCard!=null">
+				AND e.red_card = #{pagePublicityEventDTO.redCard}
+			</if>
+			<if test="pagePublicityEventDTO.yellowCard!=null">
+				AND e.yellow_card = #{pagePublicityEventDTO.yellowCard}
+			</if>
+			<if test="pagePublicityEventDTO.invalid!=null">
+				AND e.invalid = #{pagePublicityEventDTO.invalid}
+			</if>
+			<if test="pagePublicityEventDTO.major!=null">
+				AND e.major = #{pagePublicityEventDTO.major}
+			</if>
+			<if test="pagePublicityEventDTO.deathsNumber!=null">
+				AND e.deaths_number = #{pagePublicityEventDTO.deathsNumber}
+			</if>
+			<if test="pagePublicityEventDTO.injuriesNumber!=null">
+				AND e.injuries_number = #{pagePublicityEventDTO.injuriesNumber}
+			</if>
+			<if test="pagePublicityEventDTO.difficult!=null">
+				AND e.difficult = #{pagePublicityEventDTO.difficult}
+			</if>
+			<if test="pagePublicityEventDTO.urgent!=null">
+				AND e.urgent = #{pagePublicityEventDTO.urgent}
+			</if>
+			<if test="pagePublicityEventDTO.urgentDell!=null">
+				AND e.urgent_dell = #{pagePublicityEventDTO.urgentDell}
+			</if>
+			<if test="pagePublicityEventDTO.submitDateBegin!=null">
+				AND e.submit_date <![CDATA[>=]]> #{pagePublicityEventDTO.submitDateBegin}
+			</if>
+			<if test="pagePublicityEventDTO.submitDateEnd!=null">
+				AND e.submit_date <![CDATA[<=]]> #{pagePublicityEventDTO.submitDateEnd}
+			</if>
+			<if test="pagePublicityEventDTO.createBy!=null">
+				AND e.create_by = #{pagePublicityEventDTO.createBy}
+			</if>
+			<if test="pagePublicityEventDTO.createAtBegin!=null">
+				AND e.create_at  <![CDATA[>=]]> #{pagePublicityEventDTO.createAtBegin}
+			</if>
+			<if test="pagePublicityEventDTO.createAtEnd!=null">
+				AND e.create_at <![CDATA[<=]]> #{pagePublicityEventDTO.createAtEnd}
+			</if>
+			<if test="pagePublicityEventDTO.updateBy!=null">
+				AND e.update_by = #{pagePublicityEventDTO.updateBy}
+			</if>
+			<if test="pagePublicityEventDTO.updateAtBegin!=null">
+				AND e.update_at <![CDATA[>=]]> #{pagePublicityEventDTO.updateAtBegin}
+			</if>
+			<if test="pagePublicityEventDTO.updateAtEnd!=null">
+				AND e.update_at <![CDATA[<=]]> #{pagePublicityEventDTO.updateAtEnd}
+			</if>
+		</where>
+		<if test="pagePublicityEventDTO.sortColumns!=null">
+			ORDER BY e.${pagePublicityEventDTO.sortColumns} ${pagePublicityEventDTO.sortType}
+		</if>
+	</select>
+
+	<select id="getEventByGridId" resultType="com.panzhihua.common.model.vos.grid.ComMapGridEventVO">
+		SELECT
+			id,
+			event_type AS type,
+			event_des AS eventTitle,
+			happent_address AS happentAddress,
+			happen_address AS happenAddress,
+			happent_lat_lng AS happentLatLng
+		FROM
+			`event`
+		WHERE
+			( event_category = 1 OR event_category = 2 )
+			AND event_process_status = 1
+			AND event_status = 2
+			AND grid_id = #{gridId}
+			AND process_type = 1 UNION ALL
+		SELECT
+			id,
+			IFNULL( NULL, 7 ) AS type,
+			event_des AS eventTitle,
+			happent_address AS happentAddress,
+			happen_address AS happenAddress,
+			happent_lat_lng AS happentLatLng
+		FROM
+			event_visiting_tasks
+		WHERE
+			event_status = 1
+			AND dell_type = 1
+			AND grid_id = #{gridId}
+	</select>
+
+	<select id="getGridMemberImageUrl" resultType="Map">
+		select image_url,nick_name from sys_user where user_id = #{gridMemberId}
+	</select>
+    <select id="findToManageByPage" resultType="com.panzhihua.common.model.vos.grid.EventVO"
+			parameterType="com.panzhihua.common.model.dtos.grid.PageEventManageDTO">
+		SELECT
+			e.id,e.order_sn,e.event_category,e.grid_member_street,e.happen_address,e.grid_member_community,e.event_clazz,e.grid_id,e.grid_member_id,e.grid_member_name,e.grid_member_telephone,
+			e.event_title,e.propaganda_type,e.propaganda_time,e.event_type,e.event_des,e.propaganda_object,e.propaganda_num,e.community_process,e.happen_time,e.happent_address,e.happent_lat_lng,
+			e.event_status,e.event_process_status,e.process_type,e.process_user_id,e.process_user_name,e.process_date,e.process_desc,e.event_resource,e.danger_level,e.red_card,e.yellow_card,e.invalid,
+			e.major,e.deaths_number,e.injuries_number,e.difficult,e.urgent,e.urgent_dell,e.submit_date,e.create_by,e.create_at,e.update_by,e.update_at,e.event_deal_status,egd.grid_name
+		FROM
+			event e left join event_grid_data egd on e.grid_id = egd.id
+		<where>
+			e.event_status != 3 AND e.event_category = 1
+			<if test="pageEventManageDTO.communityId!=null">
+				AND egd.grid_community_id = ${pageEventManageDTO.communityId}
+			</if>
+			<if test='pageEventManageDTO.keyWord != null and pageEventManageDTO.keyWord != &quot;&quot;'>
+				AND (
+				e.grid_member_name like concat('%', #{pageEventManageDTO.keyWord},'%') OR
+				e.event_title like concat('%', #{pageEventManageDTO.keyWord},'%') OR
+				e.happen_address like concat('%', #{pageEventManageDTO.keyWord},'%') OR
+				e.order_sn like concat('%', #{pageEventManageDTO.keyWord},'%') OR
+				e.event_clazz like concat('%', #{pageEventManageDTO.keyWord},'%') OR
+				e.event_des like concat('%', #{pageEventManageDTO.keyWord},'%')
+				)
+			 </if>
+			<if test="pageEventManageDTO.revokeType!=null">
+				AND ( e.revoke_type = #{pageEventManageDTO.revokeType} OR e.revoke_type is null )
+			</if>
+			<if test="pageEventManageDTO.eventDealStatus!=null">
+				AND e.event_deal_status = #{pageEventManageDTO.eventDealStatus}
+			</if>
+			<if test="pageEventManageDTO.communityProcess!=null">
+				AND e.community_process = #{pageEventManageDTO.communityProcess}
+			</if>
+			<if test="pageEventManageDTO.eventType!=null">
+				AND e.event_type = #{pageEventManageDTO.eventType}
+			</if>
+			<if test="pageEventManageDTO.dangerLevel!=null">
+				AND e.danger_level = #{pageEventManageDTO.dangerLevel}
+			</if>
+			<if test="pageEventManageDTO.redCard!=null">
+				AND e.red_card = #{pageEventManageDTO.redCard}
+			</if>
+			<if test="pageEventManageDTO.yellowCard!=null">
+				AND e.yellow_card = #{pageEventManageDTO.yellowCard}
+			</if>
+			<if test="pageEventManageDTO.eventClazz != null and pageEventManageDTO.eventClazz != &quot;&quot;">
+				AND e.event_clazz like concat('%',#{pageEventDTO.eventClazz},'%')
+			</if>
+			<if test="pageEventManageDTO.urgent!=null">
+				AND e.urgent = #{pageEventManageDTO.urgent}
+			</if>
+			<if test="pageEventManageDTO.major!=null">
+				AND e.major = #{pageEventManageDTO.major}
+			</if>
+			<if test="pageEventManageDTO.invalid!=null">
+				AND e.invalid = #{pageEventManageDTO.invalid}
+			</if>
+		</where>
+		<if test="pageEventManageDTO.sortColumns!=null">
+			ORDER BY e.${pageEventManageDTO.sortColumns} ${pageEventManageDTO.sortType}
+		</if>
+	</select>
+
+	<select id="findCommunityPublicityByPage" resultType="com.panzhihua.common.model.vos.grid.EventVO"
+			parameterType="com.panzhihua.common.model.dtos.grid.PagePublicityEventCommunityDTO">
+		SELECT
+			e.id,e.order_sn,e.event_category,e.grid_member_street,e.happen_address,e.grid_member_community,e.event_clazz,e.grid_id,e.grid_member_id,e.grid_member_name,e.grid_member_telephone,
+			e.event_title,e.propaganda_type,e.propaganda_time,e.event_type,e.event_des,e.propaganda_object,e.propaganda_num,e.community_process,e.happen_time,e.happent_address,e.happent_lat_lng,
+			e.event_status,e.event_process_status,e.process_type,e.process_user_id,e.process_user_name,e.process_date,e.process_desc,e.event_resource,e.danger_level,e.red_card,e.yellow_card,e.invalid,
+			e.major,e.deaths_number,e.injuries_number,e.difficult,e.urgent,e.urgent_dell,e.submit_date,e.create_by,e.create_at,e.update_by,e.update_at,e.event_deal_status, egd.grid_name
+		FROM
+			event e left join event_grid_data egd on e.grid_id = egd.id
+		<where>
+			e.event_status != 3 AND e.event_category = 2
+			<if test='pagePublicityEventCommunityDTO.keyWord != null and pagePublicityEventCommunityDTO.keyWord != &quot;&quot;'>
+				AND (
+				e.grid_member_name like concat('%', #{pagePublicityEventCommunityDTO.keyWord},'%') OR
+				e.event_title like concat('%', #{pagePublicityEventCommunityDTO.keyWord},'%') OR
+				e.happen_address like concat('%', #{pagePublicityEventCommunityDTO.keyWord},'%') OR
+				e.order_sn like concat('%', #{pagePublicityEventCommunityDTO.keyWord},'%') OR
+				e.propaganda_type like concat('%', #{pagePublicityEventCommunityDTO.keyWord},'%') OR
+				egd.grid_name like concat('%', #{pagePublicityEventCommunityDTO.keyWord},'%')
+				)
+			</if>
+			<if test="pagePublicityEventCommunityDTO.revokeType!=null">
+				AND ( e.revoke_type = #{pagePublicityEventCommunityDTO.revokeType} OR e.revoke_type is null )
+			</if>
+			<if test="pagePublicityEventCommunityDTO.communityId!=null">
+				AND egd.grid_community_id = ${pagePublicityEventCommunityDTO.communityId}
+			</if>
+			<if test="pagePublicityEventCommunityDTO.eventDealStatus!=null">
+				AND e.event_deal_status = #{pagePublicityEventCommunityDTO.eventDealStatus}
+			</if>
+		</where>
+		<if test="pagePublicityEventCommunityDTO.sortColumns!=null">
+			ORDER BY e.${pagePublicityEventCommunityDTO.sortColumns} ${pagePublicityEventCommunityDTO.sortType}
+		</if>
+	</select>
+	<select id="eventStatistics" resultType="com.panzhihua.common.model.vos.grid.EventStatisticsAllAdminVO">
+		SELECT
+			count( e.id ) AS eventTotal,(
+			SELECT
+				count( e.id )
+			FROM
+				`event` AS e
+				LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+			WHERE
+				e.event_status = 2
+				AND e.event_process_status = 2
+			) AS handleEventTotal,
+			(
+			SELECT
+				count( e.id )
+			FROM
+				`event` AS e
+				LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+			WHERE
+				e.event_category = 2
+				AND e.event_status = 2
+			) AS propagandaEducationTotal,
+			( SELECT count( id ) FROM com_act_easy_photo WHERE handle_status = 2  ) AS easyPhotoTotal
+		FROM
+			`event` AS e
+			LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+		WHERE
+			e.event_status = 2
+	</select>
+
+	<select id="getEventCountByGridIds" resultType="Integer">
+		select count(id) from event where grid_id in
+		<foreach item="item" collection="ids" separator="," open="(" close=")" index="">
+		#{item}
+		</foreach>
+	</select>
+
+	<select id="getGridEventStatisticsByApp" resultType="com.panzhihua.common.model.vos.grid.GridEventStatisticsVO">
+		SELECT
+			count( id ) AS todayNum,
+			(
+			SELECT
+				count( id )
+			FROM
+				`event`
+			WHERE
+				event_category = 1
+				AND event_process_status = 2
+				AND process_date BETWEEN DATE_FORMAT( DATE_ADD( curdate(), INTERVAL - DAY ( curdate())+ 1 DAY ), '%Y-%m-%d %H:%i:%s' )
+			AND NOW()
+			<if test="gridId!=null">
+				 AND grid_id = #{gridId}
+			</if>
+			) AS monthNum,
+			(
+			SELECT
+				count( id )
+			FROM
+				`event`
+			WHERE
+				event_category = 2
+				AND event_status = 2
+				AND process_date BETWEEN DATE_FORMAT( CURDATE(), '%Y-%m-%d %H:%i:%s' )
+			AND NOW()
+			<if test="gridId!=null">
+				AND grid_id = #{gridId}
+			</if>
+			) AS todayEducationNum,
+			( SELECT count( id ) FROM `event` WHERE event_category = 2 AND event_status = 2
+				<if test="gridId!=null">
+					AND grid_id = #{gridId}
+				</if>) AS educationNum,
+			(
+			SELECT
+				count( cmph.id )
+			FROM
+				com_mng_population_house AS cmph
+			LEFT JOIN event_grid_data AS egd ON egd.grid_community_id = cmph.community_id
+			WHERE
+				<if test="gridId!=null">
+					egd.id = #{gridId}
+				</if>
+			) AS houseTotal,
+			(
+		SELECT
+		count( id )
+		FROM
+		event_visiting_tasks
+		WHERE
+		event_status = 2 AND submit_date BETWEEN DATE_FORMAT( CURDATE(), '%Y-%m-%d %H:%i:%s' )
+		AND DATE_SUB( DATE_ADD(CURDATE(), INTERVAL 1 DAY),INTERVAL 1 SECOND)
+		<if test="gridId!=null">
+			AND grid_id = #{gridId}
+		</if>
+		) as zfTodayNum,
+		(
+		SELECT
+		count( id )
+		FROM
+		event_visiting_tasks
+		WHERE
+		event_status = 2 AND submit_date BETWEEN DATE_FORMAT( DATE_ADD( curdate(), INTERVAL - DAY ( curdate())+ 1 DAY ), '%Y-%m-%d %H:%i:%s' )
+		AND NOW()
+		<if test="gridId!=null">
+			AND grid_id = #{gridId}
+		</if>
+		) as zfMonthNum,(
+		SELECT
+		    count( caep.id )
+		FROM
+		    com_act_easy_photo as caep
+		    left join event_grid_data as egd on egd.grid_community_id = caep.community_id
+		WHERE
+		    handle_status = 2
+		    AND feedback_at BETWEEN DATE_FORMAT( CURDATE(), '%Y-%m-%d %H:%i:%s' )
+		    AND DATE_SUB(DATE_ADD( CURDATE(), INTERVAL 1 DAY ),INTERVAL 1 SECOND)
+            <if test="gridId!=null">
+                AND egd.id = #{gridId}
+            </if>
+		) as sspTodayNum,
+		(
+		SELECT
+		    count( caep.id )
+		FROM
+            com_act_easy_photo as caep
+            left join event_grid_data as egd on egd.grid_community_id = caep.community_id
+		WHERE
+		    handle_status = 2
+		    AND feedback_at BETWEEN DATE_FORMAT( DATE_ADD( curdate(), INTERVAL - DAY ( curdate())+ 1 DAY ), '%Y-%m-%d %H:%i:%s' ) AND NOW()
+            <if test="gridId!=null">
+                AND egd.id = #{gridId}
+            </if>
+		) as sspMonthNum
+		FROM
+			`event`
+		WHERE
+			event_category = 1
+			AND event_process_status = 2
+			AND process_date BETWEEN DATE_FORMAT( CURDATE(), '%Y-%m-%d %H:%i:%s' )
+			AND NOW()
+			<if test="gridId!=null">
+				AND grid_id = #{gridId}
+			</if>
+	</select>
+
+	<select id="getGridEventDetailStatisticsByApp" parameterType="com.panzhihua.common.model.dtos.grid.GridEventStatisticsDTO"
+			resultType="com.panzhihua.common.model.vos.grid.GridEventStatisticsDetailVO">
+		SELECT
+			count( e.id ) AS eventTFTotal,
+			(
+			SELECT
+				count( id )
+			FROM
+				`event`
+			WHERE
+				event_category = 1
+				AND event_type = 5
+				AND event_process_status IN ( 1, 3 )
+				AND event_status = 2
+				<if test="statisticsDTO.gridId!=null">
+					AND grid_id = #{statisticsDTO.gridId}
+				</if>
+				<if test='statisticsDTO.startTime != null and statisticsDTO.startTime != &quot;&quot;'>
+					AND create_at <![CDATA[ >= ]]> #{statisticsDTO.startTime}
+				</if>
+				<if test='statisticsDTO.endTime != null and statisticsDTO.endTime != &quot;&quot;'>
+					AND create_at <![CDATA[ <= ]]> #{statisticsDTO.endTime}
+				</if>
+			) AS noEventTFTotal,
+			( SELECT count( id ) FROM `event` WHERE event_category = 1 AND event_type = 3 AND event_process_status = 2
+				<if test="statisticsDTO.gridId!=null">
+					AND grid_id = #{statisticsDTO.gridId}
+				</if>
+				<if test='statisticsDTO.startTime != null and statisticsDTO.startTime != &quot;&quot;'>
+					AND create_at <![CDATA[ >= ]]> #{statisticsDTO.startTime}
+				</if>
+				<if test='statisticsDTO.endTime != null and statisticsDTO.endTime != &quot;&quot;'>
+					AND create_at <![CDATA[ <= ]]> #{statisticsDTO.endTime}
+				</if>
+			) AS eventMDTotal,
+			(
+			SELECT
+				count( id )
+			FROM
+				`event`
+			WHERE
+				event_category = 1
+				AND event_type = 3
+				AND event_process_status IN ( 1, 3 )
+				AND event_status = 2
+				<if test="statisticsDTO.gridId!=null">
+					AND grid_id = #{statisticsDTO.gridId}
+				</if>
+				<if test='statisticsDTO.startTime != null and statisticsDTO.startTime != &quot;&quot;'>
+					AND create_at <![CDATA[ >= ]]> #{statisticsDTO.startTime}
+				</if>
+				<if test='statisticsDTO.endTime != null and statisticsDTO.endTime != &quot;&quot;'>
+					AND create_at <![CDATA[ <= ]]> #{statisticsDTO.endTime}
+				</if>
+			) AS noEventMDTotal,
+			( SELECT count( id ) FROM `event` WHERE event_category = 1 AND event_type = 1 AND event_process_status = 2
+				<if test="statisticsDTO.gridId!=null">
+					AND grid_id = #{statisticsDTO.gridId}
+				</if>
+				<if test='statisticsDTO.startTime != null and statisticsDTO.startTime != &quot;&quot;'>
+					AND create_at <![CDATA[ >= ]]> #{statisticsDTO.startTime}
+				</if>
+				<if test='statisticsDTO.endTime != null and statisticsDTO.endTime != &quot;&quot;'>
+					AND create_at <![CDATA[ <= ]]> #{statisticsDTO.endTime}
+				</if>
+			) AS eventZATotal,
+			(
+			SELECT
+				count( id )
+			FROM
+				`event`
+			WHERE
+				event_category = 1
+				AND event_type = 1
+				AND event_process_status IN ( 1, 3 )
+				AND event_status = 2
+				<if test="statisticsDTO.gridId!=null">
+					AND grid_id = #{statisticsDTO.gridId}
+				</if>
+				<if test='statisticsDTO.startTime != null and statisticsDTO.startTime != &quot;&quot;'>
+					AND create_at <![CDATA[ >= ]]> #{statisticsDTO.startTime}
+				</if>
+				<if test='statisticsDTO.endTime != null and statisticsDTO.endTime != &quot;&quot;'>
+					AND create_at <![CDATA[ <= ]]> #{statisticsDTO.endTime}
+				</if>
+			) AS noEventZATotal,
+			( SELECT count( id ) FROM `event` WHERE event_category = 1 AND event_type = 4 AND event_process_status = 2
+				<if test="statisticsDTO.gridId!=null">
+					AND grid_id = #{statisticsDTO.gridId}
+				</if>
+				<if test='statisticsDTO.startTime != null and statisticsDTO.startTime != &quot;&quot;'>
+					AND create_at <![CDATA[ >= ]]> #{statisticsDTO.startTime}
+				</if>
+				<if test='statisticsDTO.endTime != null and statisticsDTO.endTime != &quot;&quot;'>
+					AND create_at <![CDATA[ <= ]]> #{statisticsDTO.endTime}
+				</if>
+			) AS eventBWDTotal,
+			(
+			SELECT
+				count( id )
+			FROM
+				`event`
+			WHERE
+				event_category = 1
+				AND event_type = 4
+				AND event_process_status IN ( 1, 3 )
+				AND event_status = 2
+				<if test="statisticsDTO.gridId!=null">
+					AND grid_id = #{statisticsDTO.gridId}
+				</if>
+				<if test='statisticsDTO.startTime != null and statisticsDTO.startTime != &quot;&quot;'>
+					AND create_at <![CDATA[ >= ]]> #{statisticsDTO.startTime}
+				</if>
+				<if test='statisticsDTO.endTime != null and statisticsDTO.endTime != &quot;&quot;'>
+					AND create_at <![CDATA[ <= ]]> #{statisticsDTO.endTime}
+				</if>
+			) AS noEventBWDTotal,
+			( SELECT count( id ) FROM `event` WHERE event_category = 1 AND event_type = 6 AND event_process_status = 2
+				<if test="statisticsDTO.gridId!=null">
+					AND grid_id = #{statisticsDTO.gridId}
+				</if>
+				<if test='statisticsDTO.startTime != null and statisticsDTO.startTime != &quot;&quot;'>
+					AND create_at <![CDATA[ >= ]]> #{statisticsDTO.startTime}
+				</if>
+				<if test='statisticsDTO.endTime != null and statisticsDTO.endTime != &quot;&quot;'>
+					AND create_at <![CDATA[ <= ]]> #{statisticsDTO.endTime}
+				</if>
+			) AS eventTSTotal,
+			(
+			SELECT
+				count( id )
+			FROM
+				`event`
+			WHERE
+				event_category = 1
+				AND event_type = 6
+				AND event_process_status IN ( 1, 3 )
+				AND event_status = 2
+				<if test="statisticsDTO.gridId!=null">
+					AND grid_id = #{statisticsDTO.gridId}
+				</if>
+				<if test='statisticsDTO.startTime != null and statisticsDTO.startTime != &quot;&quot;'>
+					AND create_at <![CDATA[ >= ]]> #{statisticsDTO.startTime}
+				</if>
+				<if test='statisticsDTO.endTime != null and statisticsDTO.endTime != &quot;&quot;'>
+					AND create_at <![CDATA[ <= ]]> #{statisticsDTO.endTime}
+				</if>
+			) AS noEventTSTotal,
+			( SELECT count( id ) FROM `event` WHERE event_category = 1 AND event_type = 2 AND event_process_status = 2
+				<if test="statisticsDTO.gridId!=null">
+					AND grid_id = #{statisticsDTO.gridId}
+				</if>
+				<if test='statisticsDTO.startTime != null and statisticsDTO.startTime != &quot;&quot;'>
+					AND create_at <![CDATA[ >= ]]> #{statisticsDTO.startTime}
+				</if>
+				<if test='statisticsDTO.endTime != null and statisticsDTO.endTime != &quot;&quot;'>
+					AND create_at <![CDATA[ <= ]]> #{statisticsDTO.endTime}
+				</if>
+			) AS eventGGTotal,
+			(
+			SELECT
+				count( id )
+			FROM
+				`event`
+			WHERE
+				event_category = 1
+				AND event_type = 2
+				AND event_process_status IN ( 1, 3 )
+				AND event_status = 2
+				<if test="statisticsDTO.gridId!=null">
+					AND grid_id = #{statisticsDTO.gridId}
+				</if>
+				<if test='statisticsDTO.startTime != null and statisticsDTO.startTime != &quot;&quot;'>
+					AND create_at <![CDATA[ >= ]]> #{statisticsDTO.startTime}
+				</if>
+				<if test='statisticsDTO.endTime != null and statisticsDTO.endTime != &quot;&quot;'>
+					AND create_at <![CDATA[ <= ]]> #{statisticsDTO.endTime}
+				</if>
+			) AS noEventGGTotal,
+			( SELECT count( id ) FROM `event` WHERE event_category = 2 AND event_status = 2
+				<if test="statisticsDTO.gridId!=null">
+					AND grid_id = #{statisticsDTO.gridId}
+				</if>
+				<if test='statisticsDTO.startTime != null and statisticsDTO.startTime != &quot;&quot;'>
+					AND create_at <![CDATA[ >= ]]> #{statisticsDTO.startTime}
+				</if>
+				<if test='statisticsDTO.endTime != null and statisticsDTO.endTime != &quot;&quot;'>
+					AND create_at <![CDATA[ <= ]]> #{statisticsDTO.endTime}
+				</if>
+			) AS eventXCTotal,
+			( SELECT count( id ) FROM event_visiting_tasks WHERE event_status = 2
+				<if test="statisticsDTO.gridId!=null">
+					AND grid_id = #{statisticsDTO.gridId}
+				</if>
+				<if test='statisticsDTO.startTime != null and statisticsDTO.startTime != &quot;&quot;'>
+					AND submit_date <![CDATA[ >= ]]> #{statisticsDTO.startTime}
+				</if>
+				<if test='statisticsDTO.endTime != null and statisticsDTO.endTime != &quot;&quot;'>
+					AND submit_date <![CDATA[ <= ]]> #{statisticsDTO.endTime}
+				</if>
+			) AS eventZFTotal,
+			(
+			SELECT
+				count( id )
+			FROM
+				event_visiting_tasks
+			WHERE
+			event_status IN ( 1, 3 )
+			<if test="statisticsDTO.gridId!=null">
+				AND grid_id = #{statisticsDTO.gridId}
+			</if>
+			<if test='statisticsDTO.startTime != null and statisticsDTO.startTime != &quot;&quot;'>
+				AND create_at <![CDATA[ >= ]]> #{statisticsDTO.startTime}
+			</if>
+			<if test='statisticsDTO.endTime != null and statisticsDTO.endTime != &quot;&quot;'>
+				AND create_at <![CDATA[ <= ]]> #{statisticsDTO.endTime}
+			</if>
+			) AS noEventZFTotal,
+			( SELECT count( id ) FROM com_act_easy_photo WHERE handle_status = 2 AND community_id = egd.grid_community_id
+			<if test='statisticsDTO.startTime != null and statisticsDTO.startTime != &quot;&quot;'>
+				AND create_at <![CDATA[ >= ]]> #{statisticsDTO.startTime}
+			</if>
+			<if test='statisticsDTO.endTime != null and statisticsDTO.endTime != &quot;&quot;'>
+				AND create_at <![CDATA[ <= ]]> #{statisticsDTO.endTime}
+			</if>
+			) AS eventSSPTotal,
+			( SELECT count( id ) FROM com_act_easy_photo WHERE handle_status = 1 AND community_id = egd.grid_community_id
+			<if test='statisticsDTO.startTime != null and statisticsDTO.startTime != &quot;&quot;'>
+				AND create_at <![CDATA[ >= ]]> #{statisticsDTO.startTime}
+			</if>
+			<if test='statisticsDTO.endTime != null and statisticsDTO.endTime != &quot;&quot;'>
+				AND create_at <![CDATA[ <= ]]> #{statisticsDTO.endTime}
+			</if>
+			) AS noEventSSPTotal
+		FROM
+			`event` AS e
+			LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+		WHERE
+			e.event_category = 1
+			AND e.event_type = 5
+			AND e.event_process_status = 2
+			<if test="statisticsDTO.gridId!=null">
+				AND e.grid_id = #{statisticsDTO.gridId}
+			</if>
+			<if test='statisticsDTO.startTime != null and statisticsDTO.startTime != &quot;&quot;'>
+				AND e.create_at <![CDATA[ >= ]]> #{statisticsDTO.startTime}
+			</if>
+			<if test='statisticsDTO.endTime != null and statisticsDTO.endTime != &quot;&quot;'>
+				AND e.create_at <![CDATA[ <= ]]> #{statisticsDTO.endTime}
+			</if>
+	</select>
+
+	<select id="getUserBaseInfo" parameterType="java.lang.Long" resultType="java.util.Map">
+		select nick_name,image_url from sys_user where user_id = #{gridMemberId}
+	</select>
+
+	<select id="getScreenEventList" parameterType="com.panzhihua.common.model.dtos.community.bigscreen.event.ScreenEventListDTO"
+			resultType="com.panzhihua.common.model.vos.community.screen.event.EventListVO">
+		SELECT
+			e.id,
+			e.grid_member_id,
+			su.image_url,
+			su.nick_name AS userName,
+			e.happen_time as createAt,
+			e.urgent,
+			e.danger_level,
+			e.major,
+			e.process_desc,
+			e.event_des,
+			e.event_category,
+			e.event_type,
+			e.event_clazz,
+			e.happen_address,
+			e.happent_lat_lng,
+			e.happent_address,
+			e.event_deal_status,
+			egd.grid_name
+		FROM
+			`event` AS e
+			LEFT JOIN sys_user AS su ON su.user_id = e.grid_member_id
+			LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+			<where>
+				event_status = 2
+				<if test='eventListDTO.communityId != null'>
+					and egd.grid_community_id = ${eventListDTO.communityId}
+				</if>
+
+				<if test='eventListDTO.startTime != null and eventListDTO.startTime != &quot;&quot;'>
+					and e.create_at <![CDATA[>=]]> #{eventListDTO.startTime}
+				</if>
+
+				<if test='eventListDTO.endTime != null and eventListDTO.endTime != &quot;&quot;'>
+					and e.create_at <![CDATA[<=]]> #{eventListDTO.endTime}
+				</if>
+
+				<if test='eventListDTO.gridIds != null and eventListDTO.gridIds.size > 0'>
+					and e.grid_id in
+					<foreach collection='eventListDTO.gridIds' item='id' index='index' open='(' close=')' separator=',' >
+					#{id}
+					</foreach>
+				</if>
+
+				<if test='eventListDTO.eventCategory != null'>
+					and e.event_category = #{eventListDTO.eventCategory}
+				</if>
+
+				<if test='eventListDTO.eventTypes != null and eventListDTO.eventTypes.size > 0'>
+					and e.event_type in
+					<foreach collection='eventListDTO.eventTypes' item='id' index='index' open='(' close=')' separator=',' >
+						#{id}
+					</foreach>
+				</if>
+
+				<if test='eventListDTO.eventDealStatus != null'>
+					and e.event_deal_status = #{eventListDTO.eventDealStatus}
+				</if>
+
+				<if test='eventListDTO.urgent != null and eventListDTO.urgent != &quot;&quot;'>
+					and e.urgent = #{eventListDTO.urgent}
+				</if>
+
+				<if test='eventListDTO.major != null and eventListDTO.major != &quot;&quot;'>
+					and e.major = #{eventListDTO.major}
+				</if>
+			</where>
+			order by e.create_at desc
+	</select>
+
+	<select id="specialPopulationList" resultType="com.panzhihua.common.model.vos.grid.EventSpecialPopulationVO"
+			parameterType="com.panzhihua.common.model.dtos.grid.PageEventSpecialPopulationDTO">
+		SELECT
+			cmp.id,
+			cmp.`name`,
+			cmp.card_no as idCard,
+			cmpct.label,
+			cmp.sex,
+			cmp.phone,
+			cmp.address,
+			cmp.political_outlook
+		FROM
+			com_mng_population AS cmp
+			left join com_mng_population_community_tags AS cmpct on cmp.id = cmpct.population_id
+			<where>
+				and cmpct.label IS NOT NULL
+				<if test='specialPopulationDTO.communityId != null'>
+					and cmpct.community_id = ${specialPopulationDTO.communityId}
+				</if>
+				<if test="specialPopulationDTO.keyWord!=null and specialPopulationDTO.keyWord!= &quot;&quot;">
+					AND (cmp.name like concat(#{specialPopulationDTO.keyWord},'%') or cmp.card_no_str like concat(#{specialPopulationDTO.keyWord},'%'))
+				</if>
+			</where>
+		ORDER BY
+			cmp.create_at DESC
+	</select>
+
+	<select id="countByCommunityId" resultType="Map">
+		SELECT
+			count( e.id ) AS resolvedNum,
+			(
+			SELECT
+				count( e1.id )
+			FROM
+				`event` AS e1
+				LEFT JOIN event_grid_data AS egd1 ON egd1.id = e1.grid_id
+			WHERE
+				egd1.grid_community_id = ${communityId}
+				AND e1.event_category = 1
+				AND e1.event_process_status = 1
+				AND e1.event_status = 2
+				AND e1.event_deal_status = 1
+			) AS pendingNum,
+			(
+			SELECT
+				count( e2.id )
+			FROM
+				`event` AS e2
+				LEFT JOIN event_grid_data AS egd2 ON egd2.id = e2.grid_id
+			WHERE
+				egd2.grid_community_id = ${communityId}
+				AND e2.event_category = 2
+				AND e2.event_status = 2
+			) AS propagandaNum,
+			(
+			SELECT
+				count( e3.id )
+			FROM
+				`event` AS e3
+				LEFT JOIN event_grid_data AS egd3 ON egd3.id = e3.grid_id
+			WHERE
+				e3.event_status = 2
+				AND e3.create_at LIKE CONCAT(#{nowDate},'%')) as currentNum,
+				(select count(id) from com_act_easy_photo where community_id = ${communityId} and del_tag = 0 and create_at LIKE CONCAT(#{nowDate},'%')) as sspCurrentNum
+
+				FROM
+					`event` AS e
+					LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+				WHERE
+					egd.grid_community_id = ${communityId}
+					AND e.event_category = 1
+				AND e.event_process_status = 2
+			AND e.event_deal_status = 4
+	</select>
+
+	<select id="countByAvgCommunityId" resultType="com.panzhihua.common.model.vos.screen.DateScreenVO">
+		SELECT
+			e.create_at AS startTime,(
+			SELECT
+				e1.create_at
+			FROM
+				`event` AS e1
+				LEFT JOIN event_grid_data AS egd1 ON egd1.id = e1.grid_id
+			WHERE
+				egd1.grid_community_id = ${communityId}
+				AND e1.event_process_status = 2
+			ORDER BY
+				e1.create_at DESC
+				LIMIT 1
+			) AS endTime
+		FROM
+			`event` AS e
+			LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+		WHERE
+			egd.grid_community_id = ${communityId}
+			AND e.event_process_status = 2
+		ORDER BY
+			e.create_at ASC
+			LIMIT 1
+	</select>
+
+	<select id="getWorkScreenEventList" resultType="com.panzhihua.common.model.vos.screen.EventDetailWorkVO">
+		SELECT
+			e.id,
+			su.nick_name AS userName,
+			su.image_url,
+			e.create_at,
+			e.event_type,
+			e.event_process_status,
+			e.event_deal_status,
+			e.major,
+			e.red_card,
+			e.yellow_card,
+			e.urgent,
+			e.danger_level,
+			e.event_des,
+			e.happen_address,
+			e.happent_address,
+			e.happent_lat_lng
+		FROM
+			`event` AS e
+			LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+			LEFT JOIN sys_user AS su ON su.user_id = e.grid_member_id
+		WHERE
+			egd.grid_community_id = ${communityId}
+			AND e.event_status = 2
+			AND e.event_deal_status in (1,2,3,4,6,8)
+		ORDER BY
+			e.create_at DESC
+			LIMIT 10
+	</select>
+
+	<select id="countByTime" resultType="com.panzhihua.common.model.vos.screen.EventWorkVO">
+		SELECT
+		(
+		SELECT
+		COUNT( e.id )
+		FROM
+		`event` AS e
+		LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+		WHERE
+		egd.grid_community_id = ${communityId} and e.event_status = 2 AND e.create_at <![CDATA[<=]]> #{end}) AS eventTotal,
+		(select count(id) from com_act_easy_photo where community_id = ${communityId} and del_tag = 0 and create_at <![CDATA[<=]]> #{end}) as sspTotal,
+		(select count(id) from com_act_easy_photo where community_id = ${communityId} and del_tag = 0 and #{start} <![CDATA[<=]]> create_at AND create_at <![CDATA[<=]]> #{end}) as sspAdd,
+		(select count(id) from com_act_easy_photo where community_id = ${communityId} and handle_status = 2 and del_tag = 0 and #{start} <![CDATA[<=]]> create_at AND create_at <![CDATA[<=]]> #{end}) as sspSolve,
+		(
+		SELECT
+		COUNT( e1.id )
+		FROM
+		`event` AS e1
+		LEFT JOIN event_grid_data AS egd1 ON egd1.id = e1.grid_id
+		WHERE
+		egd1.grid_community_id = ${communityId} and e1.event_status = 2 AND #{start} <![CDATA[<=]]> e1.create_at AND e1.create_at <![CDATA[<=]]> #{end}) AS eventAdd,
+		(
+		SELECT
+		COUNT( e2.id )
+		FROM
+		`event` AS e2
+		LEFT JOIN event_grid_data AS egd2 ON egd2.id = e2.grid_id
+		WHERE
+		egd2.grid_community_id = ${communityId} and e2.event_process_status = 2 AND #{start} <![CDATA[<=]]> e2.create_at AND e2.create_at <![CDATA[<=]]> #{end}) AS eventSolve
+		FROM
+		DUAL
+	</select>
+
+	<select id="getComplete" resultType="com.panzhihua.common.model.vos.screen.EventTypeWorkVO">
+		SELECT
+			count( e.id ) AS zaTotal,(
+			SELECT
+				count( e1.id )
+			FROM
+				`event` AS e1
+				LEFT JOIN event_grid_data AS egd1 ON egd1.id = e1.grid_id
+			WHERE
+				e1.event_category = 1
+				AND e1.event_process_status = 2
+				AND e1.event_type = 2
+				AND egd1.grid_community_id = ${communityId}
+				) AS ggTotal,(
+			SELECT
+				count( e2.id )
+			FROM
+				`event` AS e2
+				LEFT JOIN event_grid_data AS egd2 ON egd2.id = e2.grid_id
+			WHERE
+				e2.event_category = 1
+				AND e2.event_process_status = 2
+				AND e2.event_type = 3
+				AND egd2.grid_community_id = ${communityId}
+				) AS mdTotal,(
+			SELECT
+				count( e3.id )
+			FROM
+				`event` AS e3
+				LEFT JOIN event_grid_data AS egd3 ON egd3.id = e3.grid_id
+			WHERE
+				e3.event_category = 1
+				AND e3.event_process_status = 2
+				AND e3.event_type = 4
+				AND egd3.grid_community_id = ${communityId}
+				) AS bwdTotal,(
+			SELECT
+				count( e4.id )
+			FROM
+				`event` AS e4
+				LEFT JOIN event_grid_data AS egd4 ON egd4.id = e4.grid_id
+			WHERE
+				e4.event_category = 1
+				AND e4.event_process_status = 2
+				AND e4.event_type = 5
+				AND egd4.grid_community_id = ${communityId}
+				) AS tfTotal,(
+			SELECT
+				count( e5.id )
+			FROM
+				`event` AS e5
+				LEFT JOIN event_grid_data AS egd5 ON egd5.id = e5.grid_id
+			WHERE
+				e5.event_category = 1
+				AND e5.event_process_status = 2
+				AND e5.event_type = 6
+				AND egd5.grid_community_id = ${communityId}
+			) AS tsTotal,
+			(select count(id) from com_act_easy_photo as caep where community_id = ${communityId} and del_tag = 0 and status = 4) as sspTotal
+		FROM
+			`event` AS e
+			LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+		WHERE
+			e.event_category = 1
+			AND e.event_process_status = 2
+			AND e.event_type = 1
+			AND egd.grid_community_id = ${communityId}
+	</select>
+
+	<select id="getNoComplete" resultType="com.panzhihua.common.model.vos.screen.EventTypeWorkVO">
+		SELECT
+			count( e.id ) AS zaTotal,(
+			SELECT
+				count( e1.id )
+			FROM
+				`event` AS e1
+				LEFT JOIN event_grid_data AS egd1 ON egd1.id = e1.grid_id
+			WHERE
+				e1.event_category = 1
+				AND e1.event_process_status = 1
+				AND e1.event_status = 2
+				AND e1.event_type = 2
+				AND egd1.grid_community_id = ${communityId}
+				) AS ggTotal,(
+			SELECT
+				count( e2.id )
+			FROM
+				`event` AS e2
+				LEFT JOIN event_grid_data AS egd2 ON egd2.id = e2.grid_id
+			WHERE
+				e2.event_category = 1
+				AND e2.event_process_status = 1
+				AND e2.event_status = 2
+				AND e2.event_type = 3
+				AND egd2.grid_community_id = ${communityId}
+				) AS mdTotal,(
+			SELECT
+				count( e3.id )
+			FROM
+				`event` AS e3
+				LEFT JOIN event_grid_data AS egd3 ON egd3.id = e3.grid_id
+			WHERE
+				e3.event_category = 1
+				AND e3.event_process_status = 1
+				AND e3.event_status = 2
+				AND e3.event_type = 4
+				AND egd3.grid_community_id = ${communityId}
+				) AS bwdTotal,(
+			SELECT
+				count( e4.id )
+			FROM
+				`event` AS e4
+				LEFT JOIN event_grid_data AS egd4 ON egd4.id = e4.grid_id
+			WHERE
+				e4.event_category = 1
+				AND e4.event_process_status = 1
+				AND e4.event_status = 2
+				AND e4.event_type = 5
+				AND egd4.grid_community_id = ${communityId}
+				) AS tfTotal,(
+			SELECT
+				count( e5.id )
+			FROM
+				`event` AS e5
+				LEFT JOIN event_grid_data AS egd5 ON egd5.id = e5.grid_id
+			WHERE
+				e5.event_category = 1
+				AND e5.event_process_status = 1
+				AND e5.event_status = 2
+				AND e5.event_type = 6
+				AND egd5.grid_community_id = ${communityId}
+			) AS tsTotal,
+			(select count(id) from com_act_easy_photo as caep where community_id = ${communityId} and del_tag = 0 and status in (1,2)) as sspTotal
+		FROM
+			`event` AS e
+			LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+		WHERE
+			e.event_category = 1
+			AND e.event_process_status = 1
+			AND e.event_status = 2
+			AND e.event_type = 1
+			AND egd.grid_community_id = ${communityId}
+	</select>
+
+	<select id="getSSPEventTotal" resultType="Map">
+		SELECT
+			count( id ) as noEventSSPTotal,
+			( SELECT count( id ) FROM com_act_easy_photo WHERE handle_status = 2 and del_tag = 0 AND community_id = ${communityId} ) AS eventSSPTotal
+		FROM
+			com_act_easy_photo
+		WHERE
+			handle_status = 1 and del_tag = 0
+			AND community_id = ${communityId}
+	</select>
+
+	<select id="getEventListByCommunityId" parameterType="Long"
+			resultType="com.panzhihua.common.model.vos.community.screen.event.EventGridIncidentStatisticsVO">
+		SELECT
+			e.id,
+			e.event_type AS type,
+			e.happent_lat_lng AS latLng,
+			e.event_deal_status as status
+		FROM
+			`event` AS e
+			left join event_grid_data as egd on egd.id = e.grid_id
+		WHERE
+			e.event_category = 1
+			AND e.event_status = 2
+			AND egd.grid_community_id = ${communityId}
+			AND e.event_deal_status IN (1,2,3,4)
+			union all
+			select id,7 as type,lng_lat as latLng,handle_status as status from com_act_easy_photo as caep where community_id = ${communityId} and lng_lat is not null
+	</select>
+
+	<select id="getCivilScreenVillageList" parameterType="Long"  resultType="com.panzhihua.common.model.vos.community.screen.civil.CivilVillageStatisticsVO">
+		SELECT `NAME`,  user_sum,  lng,  lat,  village_images,  village_id  FROM  com_mng_village AS cmv  WHERE  community_id = ${communityId}
+	</select>
+
+	<select id="getVillagePopulationTotal" parameterType="Long" resultType="com.panzhihua.common.model.vos.screen.ScreenDrawEventPopulationTotalVO">
+		SELECT
+			count( id ) as populationTotal,
+			(select count(id) from com_mng_population where village_id = #{villageId} and out_or_local = 1) as localTotal,
+			(select count(id) from com_mng_population where village_id = #{villageId} and out_or_local = 2) as outTotal,
+			(select count(cmp.id) from com_mng_population_community_tags as cmpct left join com_mng_population as cmp on cmpct.population_id = cmp.id where cmp.village_id = #{villageId} and cmpct.label is not null) as specialTotal,
+			(select count(id) from com_mng_building where village_id = #{villageId}) as buildTotal
+		FROM
+			com_mng_population AS cmp
+		WHERE
+			village_id = #{villageId}
+	</select>
+
+	<select id="getMemberBuildName" resultType="Map">
+		SELECT
+			cmb.`name`,egmbr.village_id
+		FROM
+			event_grid_member_building_relation AS egmbr
+			LEFT JOIN com_mng_building AS cmb ON cmb.id = egmbr.building_id
+		WHERE
+			egmbr.grid_member_id = #{userId}
+	</select>
+
+	<select id="getPopulationByLabelCount" resultType="Integer">
+		select count(cmpct.id) from com_mng_population_community_tags AS cmpct
+			  left join com_mng_population AS cmp on cmp.id = cmpct.population_id
+		where cmtct.label is not null and cmp.village_id = #{villageId} and floor = #{floor}
+	</select>
+    <select id="selectComprehensiveGovernanceStatics"
+            resultType="com.panzhihua.common.model.vos.community.screen.event.EventComprehensiveGovernanceStatisticsVO">
+		SELECT
+		(SELECT COUNT( e.id ) FROM `event` AS e
+		LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+		LEFT JOIN com_act AS a ON egd.grid_community_id = a.community_id
+		WHERE e.event_category = 1 AND e.event_type = 5 AND e.event_deal_status = 4 AND a.area_code = 510423) AS eventTFTotal,
+
+		(SELECT COUNT( e1.id ) FROM `event` AS e1
+		LEFT JOIN event_grid_data AS egd1 ON egd1.id = e1.grid_id
+		LEFT JOIN com_act AS a1 ON egd1.grid_community_id = a1.community_id
+		WHERE event_category = 1 AND event_type = 1 AND e1.event_deal_status = 4 AND a1.area_code = 510423) AS eventZATotal,
+
+		(SELECT COUNT( e2.id ) FROM `event` AS e2
+		LEFT JOIN event_grid_data AS egd2 ON egd2.id = e2.grid_id
+		LEFT JOIN com_act AS a2 ON egd2.grid_community_id = a2.community_id
+		WHERE event_category = 1 AND event_type = 3 AND e2.event_deal_status = 4 AND a2.area_code = 510423) AS eventMDTotal,
+
+		(SELECT COUNT( e3.id ) FROM `event` AS e3
+		LEFT JOIN event_grid_data AS egd3 ON egd3.id = e3.grid_id
+		LEFT JOIN com_act AS a3 ON egd3.grid_community_id = a3.community_id
+		WHERE event_category = 1 AND event_type = 6 AND e3.event_deal_status = 4 AND a3.area_code = 510423) AS eventTSTotal,
+
+		(SELECT COUNT( e5.id ) FROM `event` AS e5
+		LEFT JOIN event_grid_data AS egd5 ON egd5.id = e5.grid_id
+		LEFT JOIN com_act AS a5 ON egd5.grid_community_id = a5.community_id
+		WHERE event_category = 1 AND event_type = 2 AND e5.event_deal_status = 4 AND a5.area_code = 510423) AS eventMSTotal,
+
+		(SELECT COUNT(p.id) FROM com_act_easy_photo p
+		LEFT JOIN com_act AS a ON p.community_id = a.community_id
+		WHERE p.`status` = 4 AND p.del_tag = 0 AND a.area_code = 510423) AS eventSSPTotal
+	</select>
+	<select id="getGridsGovernanceEventList"
+			resultType="com.panzhihua.common.model.vos.community.screen.event.EventGridIncidentStatisticsVO">
+		SELECT event_type AS type, IFNULL( NULL, 1 ) AS eventType, e.id AS eventId, happent_lat_lng AS latLng, event_des AS content,
+        (SELECT url FROM event_resource WHERE ref_id = e.id AND classification = 1 AND `type` = 1 LIMIT 1) AS cover, e.create_at,
+        CASE
+        WHEN event_deal_status = 4 THEN 1
+        ELSE 2 END `status`
+        FROM `event` AS e
+        LEFT JOIN event_grid_data AS egd ON egd.id = e.grid_id
+        WHERE e.event_category = 1 AND e.event_type IN ( 1, 2, 3, 5, 6 ) AND e.event_status = 2 AND egd.grid_community_id = ${communityId}
+        UNION ALL SELECT
+        CASE
+        WHEN classify_id = 4 THEN 1
+        WHEN classify_id = 6 THEN 2
+        WHEN classify_id = 5 THEN 3
+        WHEN classify_id = 7 THEN 5
+        WHEN classify_id = 3 THEN 6
+        WHEN classify_id = 8 THEN 9
+        WHEN classify_id = 1 THEN 10
+        END type, IFNULL( NULL, 2 ) AS eventType, id AS eventId, lng_lat AS latLng, detail AS content, substring_index(photo_path_list, ',', 1) AS cover, create_at,
+        CASE
+        WHEN `status` = 4 THEN 1
+        ELSE 2 END `status`
+        FROM com_act_easy_photo WHERE community_id = ${communityId} AND `status` IN (1,2,4) AND del_tag = 0 AND classify_id IN (1,3,4,5,6,7,8)
+	</select>
+	<select id="getVillagePopulationTotalNew"
+			resultType="com.panzhihua.common.model.vos.screen.ScreenDrawEventPopulationTotalVO">
+		SELECT
+		(SELECT count(id) FROM com_mng_population WHERE village_id = #{villageId}) as populationTotal,
+		(SELECT count(id) from com_mng_building where village_id = #{villageId}) as buildTotal,
+		(SELECT count(id) FROM com_mng_population_house WHERE village_id = #{villageId}) as houseTotal,
+		(select count(id) from com_mng_population where village_id = #{villageId} and out_or_local = 1) as localTotal,
+		(select count(id) from com_mng_population where village_id = #{villageId} and out_or_local = 2) as outTotal,
+		(SELECT COUNT(t1.id) FROM com_disability_population t1 LEFT JOIN com_mng_population t2 ON t1.population_id = t2.id WHERE t2.village_id = #{villageId}) as disabilityTotal,
+		(SELECT COUNT(t1.id) FROM com_low_security_population t1 LEFT JOIN com_mng_population t2 ON t1.population_id = t2.id WHERE t2.village_id = #{villageId}) as lowSecurityTotal,
+		(SELECT COUNT(id) FROM com_mng_population WHERE village_id = #{villageId} AND TIMESTAMPDIFF(YEAR, SUBSTRING(card_no_str, 7, 8), NOW()) > 80) as elderTotal,
+		(SELECT COUNT(t1.id) FROM com_mng_population t1 LEFT JOIN com_mng_population_community_tags t2 ON t1.id = t2.population_id WHERE t1.village_id = #{villageId} AND t2.label LIKE '%特殊情况%') as specialSituationTotal,
+		(SELECT COUNT(id) FROM
+		(SELECT t1.id FROM com_drug_population t1 LEFT JOIN com_mng_population t2 ON t1.population_id = t2.id WHERE t2.village_id = #{villageId}
+		UNION ALL
+		SELECT t1.id FROM com_correct_population t1 LEFT JOIN com_mng_population t2 ON t1.population_id = t2.id WHERE t2.village_id = #{villageId}
+		UNION ALL
+		SELECT t1.id FROM com_cult_population t1 LEFT JOIN com_mng_population t2 ON t1.population_id = t2.id WHERE t2.village_id = #{villageId}
+		UNION ALL
+		SELECT t1.id FROM com_rehabilitation_population t1 LEFT JOIN com_mng_population t2 ON t1.population_id = t2.id WHERE t2.village_id = #{villageId}
+		UNION ALL
+		SELECT t1.id FROM com_key_population t1 LEFT JOIN com_mng_population t2 ON t1.population_id = t2.id WHERE t2.village_id = #{villageId}
+		UNION ALL
+		SELECT t1.id FROM com_major_population t1 LEFT JOIN com_mng_population t2 ON t1.population_id = t2.id WHERE t2.village_id = #{villageId}
+		) temp) as otherTotal,
+		(SELECT COUNT(t1.id) FROM com_mng_population t1 LEFT JOIN com_mng_population_community_tags t2 ON t1.id = t2.population_id WHERE t1.village_id = #{villageId} AND t2.label LIKE '%特扶家庭%') as specialHelpTotal,
+		(SELECT COUNT(t1.id) FROM com_veterans_population t1 LEFT JOIN com_mng_population t2 ON t1.population_id = t2.id WHERE t2.village_id = #{villageId}) as veteransTotal,
+		(SELECT COUNT(id) FROM com_mng_population WHERE village_id = #{villageId} AND TIMESTAMPDIFF(YEAR, SUBSTRING(card_no_str, 7, 8), NOW()) > 60) as oldTotal,
+		(SELECT COUNT(t1.id) FROM com_pension_auth_pensioners t1 LEFT JOIN com_mng_population t2 ON t1.population_id = t2.id WHERE t2.village_id = #{villageId}) as pensionTotal,
+		(SELECT COUNT(id) FROM renting_hourse_register WHERE village_id = #{villageId} AND auth_status = 2) as rentingHouseTotal,
+		(SELECT COUNT(id) FROM com_mng_population t1 LEFT JOIN sys_user t2 ON t1.card_no_str = t2.id_card WHERE t1.village_id = #{villageId} AND t2.is_volunteer = 1) as volunteerTotal,
+		(SELECT ROUND(AVG(TIMESTAMPDIFF(YEAR, SUBSTRING(card_no_str, 7, 8), NOW()))) FROM com_mng_population) as averageAge
+	</select>
+	<select id="selectStatisticsForAge" resultType="com.panzhihua.common.model.vos.community.StatisticsCommVO">
+		SELECT filed, SUM(num) AS num FROM (
+			SELECT filed, COUNT(filed) AS num FROM (
+			SELECT
+			CASE
+			WHEN TIMESTAMPDIFF(YEAR, SUBSTRING(card_no_str, 7, 8), NOW()) BETWEEN 0 AND 18 THEN '0-18岁'
+			WHEN TIMESTAMPDIFF(YEAR, SUBSTRING(card_no_str, 7, 8), NOW()) BETWEEN 19 AND 30 THEN '19-30岁'
+			WHEN TIMESTAMPDIFF(YEAR, SUBSTRING(card_no_str, 7, 8), NOW()) BETWEEN 31 AND 40 THEN '31-40岁'
+			WHEN TIMESTAMPDIFF(YEAR, SUBSTRING(card_no_str, 7, 8), NOW()) BETWEEN 41 AND 50 THEN '41-50岁'
+			WHEN TIMESTAMPDIFF(YEAR, SUBSTRING(card_no_str, 7, 8), NOW()) BETWEEN 51 AND 60 THEN '51-60岁'
+			WHEN TIMESTAMPDIFF(YEAR, SUBSTRING(card_no_str, 7, 8), NOW()) BETWEEN 61 AND 79 THEN '61-79岁'
+			WHEN TIMESTAMPDIFF(YEAR, SUBSTRING(card_no_str, 7, 8), NOW()) BETWEEN 80 AND 89 THEN '80-89岁'
+			WHEN TIMESTAMPDIFF(YEAR, SUBSTRING(card_no_str, 7, 8), NOW()) > 89 THEN '89岁以上'
+			END filed
+			FROM com_mng_population WHERE village_id IN
+			<foreach collection="villageIds" index="index" item="item" open="(" separator="," close=")">
+				#{item}
+			</foreach>
+			) temp WHERE filed is not null GROUP BY filed
+			UNION ALL
+			(SELECT '0-18岁' AS filed, 0 AS num)
+			UNION ALL
+			(SELECT '19-30岁' AS filed, 0 AS num)
+			UNION ALL
+			(SELECT '31-40岁' AS filed, 0 AS num)
+			UNION ALL
+			(SELECT '41-50岁' AS filed, 0 AS num)
+			UNION ALL
+			(SELECT '51-60岁' AS filed, 0 AS num)
+			UNION ALL
+			(SELECT '61-79岁' AS filed, 0 AS num)
+			UNION ALL
+			(SELECT '80-89岁' AS filed, 0 AS num)
+			UNION ALL
+			(SELECT '89岁以上' AS filed, 0 AS num)
+		) t GROUP BY filed
+	</select>
+	<select id="getById" resultType="com.panzhihua.common.model.vos.grid.EventDetailsVO">
+		SELECT t1.*,
+		CASE
+        t1.revoke_type
+        WHEN 1 THEN
+        t2.`name`
+        WHEN 2 THEN
+        t3.`name`
+        ELSE
+        NULL
+        END AS `revoke`
+		FROM event t1
+		LEFT JOIN sys_user t2 ON t1.revoke_id = t2.user_id
+		LEFT JOIN com_act t3 ON t1.revoke_id = t3.community_id
+		WHERE t1.id = #{id}
+	</select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventResourceMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventResourceMapper.xml
new file mode 100644
index 0000000..a70d1c4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventResourceMapper.xml
@@ -0,0 +1,72 @@
+<?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_grid.dao.EventResourceMapper">
+
+ 	<resultMap id="baseResult" type="com.panzhihua.service_grid.model.dos.EventResourceDO">
+		<result property="id" column="id"/>
+		<result property="classification" column="classification"/>
+		<result property="refId" column="ref_id"/>
+		<result property="type" column="type"/>
+		<result property="resourceName" column="resource_name"/>
+		<result property="resourceSize" column="resource_size"/>
+		<result property="resourceTime" column="resource_time"/>
+		<result property="url" column="url"/>
+		<result property="createBy" column="create_by"/>
+		<result property="createAt" column="create_at"/>
+	</resultMap>
+
+	<sql id="columns">
+	<![CDATA[
+		id,classification,ref_id,type,resource_name,resource_size,resource_time, url,create_by,create_at
+	]]>
+	</sql>
+
+
+    <select id="findByPage" resultType="com.panzhihua.common.model.vos.grid.EventResourceVO"
+        parameterType="com.panzhihua.common.model.dtos.grid.PageEventResourceDTO">
+    	SELECT <include refid="columns" />
+	    FROM event_resource
+		<where>
+	       <if test="pageEventResourceDTO.classification!=null">
+				AND classification = #{pageEventResourceDTO.classification}
+			</if>
+	       <if test="pageEventResourceDTO.id!=null">
+				AND id = #{pageEventResourceDTO.id}
+			</if>
+			<if test="pageEventResourceDTO.refId!=null">
+				AND ref_id = #{pageEventResourceDTO.refId}
+			</if>
+	       <if test="pageEventResourceDTO.type!=null">
+				AND type = #{pageEventResourceDTO.type}
+			</if>
+	       <if test="pageEventResourceDTO.resourceName!=null">
+				AND resource_name = #{pageEventResourceDTO.resourceName}
+			</if>
+	       <if test="pageEventResourceDTO.resourceSize!=null">
+				AND resource_size = #{pageEventResourceDTO.resourceSize}
+			</if>
+	       <if test="pageEventResourceDTO.url!=null">
+				AND url = #{pageEventResourceDTO.url}
+			</if>
+	       <if test="pageEventResourceDTO.createBy!=null">
+				AND create_by = #{pageEventResourceDTO.createBy}
+			</if>
+	       <if test="pageEventResourceDTO.createAtBegin!=null">
+				AND create_at &gt;= #{pageEventResourceDTO.createAtBegin}
+		   </if>
+		   <if test="pageEventResourceDTO.createAtEnd!=null">
+				AND create_at &lt;= #{pageEventResourceDTO.createAtEnd}
+		   </if>
+		</where>
+		<if test="pageEventResourceDTO.sortColumns!=null">
+			ORDER BY ${pageEventResourceDTO.sortColumns} ${pageEventResourceDTO.sortType}
+		</if>
+    </select>
+
+	<select id="findListByRefId" resultType="com.panzhihua.common.model.vos.grid.EventResourceVO">
+		SELECT url,resource_time FROM event_resource
+		where ref_id = #{id} and classification = #{classification} and type = #{type} order by id desc
+	</select>
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventSpecialCrowdRecordDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventSpecialCrowdRecordDOMapper.xml
new file mode 100644
index 0000000..02346ec
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventSpecialCrowdRecordDOMapper.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_grid.dao.EventSpecialCrowdRecordMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_grid.model.dos.EventSpecialCrowdRecordDO">
+        <id column="id" property="id" />
+        <result column="event_id" property="eventId" />
+        <result column="population_id" property="populationId" />
+        <result column="create_at" property="createAt" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, event_id, population_id, create_at
+    </sql>
+
+    <select id="getSpecialPopulationIds" resultType="com.panzhihua.common.model.vos.grid.EventSpecialPopulationDetailsVO" parameterType="Long">
+        SELECT
+            escr.id,
+            cmp.`name`,
+            cmp.phone,
+            cmp.card_no AS idCard,
+            cmpct.label,
+            cmp.address,
+            cmp.nation,
+            cmp.political_outlook
+        FROM
+            event_special_crowd_record AS escr
+            LEFT JOIN com_mng_population AS cmp ON cmp.id = escr.population_id
+            left join com_mng_population_community_tags as cmpct on cmpct.population_id = cmp.id
+        WHERE
+            escr.event_id = #{eventId}
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventTransferRecordMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventTransferRecordMapper.xml
new file mode 100644
index 0000000..e42f2cc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventTransferRecordMapper.xml
@@ -0,0 +1,78 @@
+<?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_grid.dao.EventTransferRecordMapper">
+
+ 	<resultMap id="baseResult" type="com.panzhihua.service_grid.model.dos.EventTransferRecordDO">
+		<result property="id" column="id"/>
+		<result property="eventId" column="event_id"/>
+		<result property="fromType" column="from_type"/>
+		<result property="fromId" column="from_id"/>
+		<result property="fromName" column="from_name"/>
+		<result property="toType" column="to_type"/>
+		<result property="toId" column="to_id"/>
+		<result property="toName" column="to_name"/>
+		<result property="processResult" column="process_result"/>
+		<result property="processDate" column="process_date"/>
+		<result property="createAt" column="create_at"/>
+	</resultMap>
+
+	<sql id="columns">
+	<![CDATA[
+		id,event_id,from_type,from_id,from_name,to_type,to_id,to_name,process_result,process_date,create_at
+	]]>
+	</sql>
+
+
+    <select id="findByPage" resultType="com.panzhihua.common.model.vos.grid.EventTransferRecordVO"
+        parameterType="com.panzhihua.common.model.dtos.grid.PageEventTransferRecordDTO">
+    	SELECT <include refid="columns" />
+	    FROM event_transfer_record
+		<where>
+	       <if test="pageEventTransferRecordDTO.id!=null">
+				AND id = #{pageEventTransferRecordDTO.id}
+			</if>
+	       <if test="pageEventTransferRecordDTO.eventId!=null">
+				AND event_id = #{pageEventTransferRecordDTO.eventId}
+			</if>
+	       <if test="pageEventTransferRecordDTO.fromType!=null">
+				AND from_type = #{pageEventTransferRecordDTO.fromType}
+			</if>
+	       <if test="pageEventTransferRecordDTO.from!=null">
+				AND from_id = #{pageEventTransferRecordDTO.fromId}
+			</if>
+	       <if test="pageEventTransferRecordDTO.fromName!=null">
+				AND from_name = #{pageEventTransferRecordDTO.fromName}
+			</if>
+	       <if test="pageEventTransferRecordDTO.toType!=null">
+				AND to_type = #{pageEventTransferRecordDTO.toType}
+			</if>
+	       <if test="pageEventTransferRecordDTO.to!=null">
+				AND to_id = #{pageEventTransferRecordDTO.toId}
+			</if>
+	       <if test="pageEventTransferRecordDTO.toName!=null">
+				AND to_name = #{pageEventTransferRecordDTO.toName}
+			</if>
+	       <if test="pageEventTransferRecordDTO.processResult!=null">
+				AND process_result = #{pageEventTransferRecordDTO.processResult}
+			</if>
+	       <if test="pageEventTransferRecordDTO.processDateBegin!=null">
+				AND process_date &gt;= #{pageEventTransferRecordDTO.processDateBegin}
+		   </if>
+		   <if test="pageEventTransferRecordDTO.processDateEnd!=null">
+				AND process_date &lt;= #{pageEventTransferRecordDTO.processDateEnd}
+		   </if>
+	       <if test="pageEventTransferRecordDTO.createAtBegin!=null">
+				AND create_at &gt;= #{pageEventTransferRecordDTO.createAtBegin}
+		   </if>
+		   <if test="pageEventTransferRecordDTO.createAtEnd!=null">
+				AND create_at &lt;= #{pageEventTransferRecordDTO.createAtEnd}
+		   </if>
+		</where>
+		<if test="pageEventTransferRecordDTO.sortColumns!=null">
+			ORDER BY ${pageEventTransferRecordDTO.sortColumns} ${pageEventTransferRecordDTO.sortType}
+		</if>
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventVisitingTasksMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventVisitingTasksMapper.xml
new file mode 100644
index 0000000..9a62462
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/main/resources/mapper/EventVisitingTasksMapper.xml
@@ -0,0 +1,221 @@
+<?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_grid.dao.EventVisitingTasksMapper">
+
+ 	<resultMap id="baseResult" type="com.panzhihua.service_grid.model.dos.EventVisitingTasksDO">
+		<result property="id" column="id"/>
+		<result property="gridMemberStreet" column="grid_member_street"/>
+		<result property="gridMemberCommunity" column="grid_member_community"/>
+		<result property="gridMember" column="grid_member"/>
+		<result property="gridMemberName" column="grid_member_name"/>
+		<result property="gridMenberTele" column="grid_menber_tele"/>
+		<result property="visiterId" column="visiter_id"/>
+		<result property="visiterName" column="visiter_name"/>
+		<result property="visiterSex" column="visiter_sex"/>
+		<result property="visiterTele" column="visiter_tele"/>
+		<result property="visiterAddress" column="visiter_address"/>
+		<result property="visiterType" column="visiter_type"/>
+		<result property="eventTitle" column="event_title"/>
+		<result property="eventType" column="event_type"/>
+		<result property="eventDes" column="event_des"/>
+		<result property="actOpara" column="act_opara"/>
+		<result property="happenTime" column="happen_time"/>
+		<result property="happentAddress" column="happent_address"/>
+		<result property="happentLatLng" column="happent_lat_lng"/>
+		<result property="eventStatus" column="event_status"/>
+		<result property="reporting" column="reporting"/>
+		<result property="dellType" column="dell_type"/>
+		<result property="dellUserId" column="dell_user_id"/>
+		<result property="dellUserName" column="dell_user_name"/>
+		<result property="dellDate" column="dell_date"/>
+		<result property="dellDesc" column="dell_desc"/>
+		<result property="invalid" column="invalid"/>
+		<result property="urgent" column="urgent"/>
+		<result property="urgentDell" column="urgent_dell"/>
+		<result property="submitDate" column="submit_date"/>
+		<result property="exception" column="exception"/>
+		<result property="tableContentJson" column="table_content_json"/>
+		<result property="createBy" column="create_by"/>
+		<result property="createAt" column="create_at"/>
+		<result property="updateBy" column="update_by"/>
+		<result property="updateAt" column="update_at"/>
+	</resultMap>
+
+	<sql id="columns">
+	<![CDATA[
+		id,grid_member_street,grid_member_community,grid_member,grid_member_name,grid_menber_tele,visiter_id,visiter_name,visiter_sex,visiter_tele,visiter_address,visiter_type,event_title,event_type,event_des,act_opara,happen_time,happent_address,happent_lat_lng,event_status,reporting,dell_type,dell_user_id,dell_user_name,dell_date,dell_desc,invalid,urgent,urgent_dell,submit_date,exception,table_content_json,create_by,create_at,update_by,update_at
+	]]>
+	</sql>
+
+	<select id="count" parameterType="java.lang.Long" resultType="java.util.Map">
+	select count(id) as visit,
+		(select count(id) from event_visiting_tasks where event_status = 2) as visited,
+		(select count(id) from event_visiting_tasks where event_status = 5) as canceled
+		from event_visiting_tasks WHERE event_status = 1
+	</select>
+
+	<select id="findListByPage" parameterType="com.panzhihua.common.model.query.visit.EventTasksQuery" resultType="com.panzhihua.common.model.vos.visit.EventVisitingTasksVO">
+		select vt.id,vt.create_at,vt.create_by,vt.visiter_id,vt.visiter_name,vt.visiter_tele,vt.visiter_sex,vt.visiter_address,vt.dell_user_id,vt.dell_user_name,vt.submit_date,vt.cancel_time,vt.event_status,
+		TIMESTAMPDIFF(YEAR, p.birthday, CURDATE()) AS age,p.card_no_str,u.name as creator,p.nation_code,vt.exception,vt.grid_member_name,vt.grid_menber_tele,egd.grid_name AS gridName
+		from event_visiting_tasks vt left join com_mng_population p on vt.visiter_id = p.id
+		left join sys_user u on vt.create_by = u.user_id
+		left join event_grid_data egd on egd.id = vt.grid_id
+		where 1=1
+		<if test = "query.communityId != null">
+			and cmpct.community_id = ${query.communityId}
+		</if>
+		<if test = "query.status != null and query.status != 0">
+			and vt.event_status = #{query.status}
+		</if>
+		<if test="query.isExp != null and query.isExp != ''">
+			and vt.event_status = 7
+		</if>
+		<if test="query.keyWord != null and query.keyWord != ''">
+			and(
+			p.card_no_str like concat('%',#{query.keyWord},'%') or
+			p.`name` like concat('%',#{query.keyWord},'%') or
+			vt.visiter_address like concat('%',#{query.keyWord},'%')
+			)
+		</if>
+		order by vt.id desc
+	</select>
+
+<!--	group by cardNoStr-->
+	<select id="appFindListByPage" parameterType="com.panzhihua.common.model.query.visit.EventTasksQuery"
+			resultType="com.panzhihua.common.model.vos.visit.EventVisitingTasksVO">
+		select vt.id,vt.create_at,vt.create_by,vt.visiter_id,vt.visiter_name,vt.visiter_tele,vt.visiter_sex
+		,vt.visiter_address,vt.dell_user_id,vt.dell_user_name,vt.submit_date,vt.cancel_time,vt.event_status,p.nation,p.political_outlook,
+		TIMESTAMPDIFF(YEAR, p.birthday, CURDATE()) AS age,u.name as creator,p.nation_code,p.card_no as cardNoStr
+		FROM event_visiting_tasks vt
+		LEFT JOIN com_mng_population p ON p.id = vt.visiter_id
+		LEFT JOIN sys_user u ON u.user_id = vt.create_by
+		where 1=1
+		<if test = "query.gridId != null">
+			and vt.grid_id = #{query.gridId}
+		</if>
+		<if test = "query.status == 1">
+			and (vt.event_status = 1 or vt.event_status = 3)
+		</if>
+		<if test = "query.status == 2">
+			and vt.event_status = 2
+		</if>
+		<if test = "query.status == 0">
+            and (vt.event_status = 1 or vt.event_status = 3 or vt.event_status = 6 or vt.event_status = 6)
+		</if>
+		order by vt.id desc
+	</select>
+
+	<select id="list" parameterType="com.panzhihua.common.model.query.visit.EventTasksQuery" resultType="com.panzhihua.common.model.vos.visit.AppVisitTasksVO">
+		SELECT vt.id,vt.visiter_name,vt.grid_member,vt.grid_member_name,vt.grid_menber_tele,vt.visiter_id,vt.visiter_name,vt.visiter_tele,vt.dell_user_id,vt.dell_user_name,vt.submit_date,vt.cancel_time,vt.create_at,u.name as creator,vt.event_status,vt.visiter_address,vt.happent_lat_lng,
+		p.card_no_str,vt.exception,p.name
+		FROM event_visiting_tasks vt LEFT JOIN com_mng_population p ON vt.visiter_id = p.id
+        left join sys_user u on vt.create_by = u.user_id
+        WHERE 1=1
+		<if test = "query.visiterId !=null">
+            and vt.visiter_id = #{query.visiterId}
+        </if>
+        <if test = "query.eventStatus == 0">
+            and (vt.event_status = 3 or vt.event_status = 7)
+        </if>
+		<if test = "query.exception != null">
+			and vt.exception = #{query.exception}
+		</if>
+		<if test = "query.status != null and query.status == 2">
+			and vt.event_status = 2
+		</if>
+		<if test = "query.eventStatus == 3 or query.eventStatus == 7">
+			and vt.event_status = #{query.eventStatus}
+		</if>
+        order by vt.id desc
+	</select>
+
+	<select id="visitorList" parameterType="com.panzhihua.common.model.query.visit.EventVisitListQuery" resultType="com.panzhihua.common.model.vos.visit.EventVisitListVO">
+		SELECT p.id,p.name,p.card_no_str,cmpct.label, TIMESTAMPDIFF(YEAR, p.birthday, CURDATE()) AS age,p.sex,p.political_outlook,p.phone,p.census_register,phu.relation
+		FROM  com_mng_population p LEFT JOIN com_mng_population_house_user phu ON p.id = phu.popul_id
+		left join com_mng_population_community_tags AS cmpct on p.id = cmpct.population_id
+		where 1=1
+		<if test="query.sex != null">
+			and p.sex = #{query.sex}
+		</if>
+		<if test="query.political != null">
+			and p.political_outlook = #{query.political}
+		</if>
+		<if test="query.houseHolder != null">
+			and phu.relation = #{query.houseHolder}
+		</if>
+		<if test="query.tag != null">
+			and cmpct.label like concat('%',#{query.tag},'%')
+		</if>
+		<if test="query.keyWord != null">
+			and (p.card_no_str like concat(#{query.keyWord},'%') or
+			p.name like concat(#{query.keyWord},'%'))
+		</if>
+		GROUP BY p.id
+	</select>
+
+	<select id="findUserByCommunityId" resultType="java.util.Map">
+		SELECT u.user_id,u.name,u.phone,a.street_id FROM sys_user u
+		LEFT JOIN com_act a ON u.community_id = a.community_id
+		WHERE u.community_id = ${communityId} and u.type = #{type} limit 1
+	</select>
+
+	<select id="findUserById" resultType="java.util.Map">
+		SELECT u.user_id,u.name,u.phone,u.community_id,a.street_id  FROM sys_user u
+		LEFT JOIN com_act a ON u.community_id = a.community_id
+		WHERE u.user_id = #{id}
+	</select>
+
+	<select id="findPopulationById" resultType="java.util.Map">
+		SELECT p.id,p.name,p.sex,p.phone,p.road,p.door_no,p.floor,p.unit_no,p.house_no,v.address,v.lng,v.lat,cmpct.label,p.out_or_local FROM com_mng_population p
+			 left join com_mng_population_community_tags AS cmpct on p.id = cmpct.population_id
+		LEFT JOIN com_mng_village v ON p.village_id = v.village_id WHERE p.id = #{id} group by p.id
+	</select>
+
+	<select id="countNoneComplete" resultType="java.lang.Integer">
+		SELECT count(id) from event_visiting_tasks where visiter_id = #{id} and event_status = 1
+	</select>
+
+	<update id="updateEventStatus">
+		update event_visiting_tasks set event_status = #{status} where id = #{id}
+	</update>
+
+	<update id="start">
+		update event_visiting_tasks set event_status = #{eventStatus},
+		grid_member_street = #{gridMemberStreet},grid_member_community=#{gridMemberCommunity},grid_member=#{gridMember},grid_member_name=#{gridMemberName},grid_menber_tele=#{gridMenberTele}
+		dell_user_id = #{gridMember} ,dell_user_name =#{gridMemberName}, dell_type = 1,dell_date = NOW() where id = #{id}
+	</update>
+
+	<update id="cancel">
+		update event_visiting_tasks set event_status = #{status},cancel_time = NOW() where id = #{id}
+	</update>
+
+
+	<update id="complete" parameterType="com.panzhihua.service_grid.model.dos.EventVisitingTasksDO">
+		update event_visiting_tasks set event_status = #{eventStatus},address = #{address},address_remark=#{addressRemark},
+			family_phone =#{familyPhone},family_source = #{familySource},lat_lng=#{latLng},dell_desc = #{dellDesc},table_content_json = #{tableContentJson},
+			exception = #{exception},submit_date = #{submitDate},remark = #{remark},
+			grid_member_street =#{gridMemberStreet},grid_member_community=#{gridMemberCommunity},grid_member=#{gridMember},grid_member_name=#{gridMemberName},grid_menber_tele=#{gridMenberTele}
+		where id = #{id}
+	</update>
+
+	<select id="getPopulationLabel" resultType="String">
+		select label from com_mng_population where id = #{populationId}
+	</select>
+
+	<select id="getCommunityTagList" resultType="com.panzhihua.common.model.vos.community.ComMngPopulationCommunityTagsVo">
+        SELECT
+            cmpct.population_id,
+            cmpct.community_id,
+            cmpct.label,
+            ca.`name` AS communityName
+        FROM
+            com_mng_population_community_tags AS cmpct
+            LEFT JOIN com_act AS ca ON ca.community_id = cmpct.community_id
+        WHERE
+            cmpct.population_id = #{populationId}
+    </select>
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/test/java/com/panzhihua/service_grid/service/impl/EventServiceImplTest.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/test/java/com/panzhihua/service_grid/service/impl/EventServiceImplTest.java
new file mode 100644
index 0000000..145076f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/test/java/com/panzhihua/service_grid/service/impl/EventServiceImplTest.java
@@ -0,0 +1,38 @@
+package com.panzhihua.service_grid.service.impl;
+
+import java.util.List;
+
+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.panzhihua.common.model.vos.grid.EventDetailsVO;
+import com.panzhihua.service_grid.ServiceGridApplication;
+import com.panzhihua.service_grid.service.EventService;
+
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+@SpringBootTest(classes = ServiceGridApplication.class)
+class EventServiceImplTest {
+
+    @Resource
+    private EventService eventService;
+
+    @Test
+    void getUnUploadEvent() {
+        List<EventDetailsVO> eventList = eventService.getUnUploadEvent();
+        String pretty = JSONArray.toJSONString(eventList, SerializerFeature.PrettyFormat,
+            SerializerFeature.WriteMapNullValue, SerializerFeature.WriteDateUseDateFormat);
+        log.info(pretty);
+    }
+
+    @Test
+    void updateLcUploadFlag() {
+        Boolean uploadFlag = eventService.updateLcUploadFlag(1111115L);
+        log.info(uploadFlag.toString());
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/test/java/com/panzhihua/service_grid/service/impl/EventVisitingTasksServiceImplTest.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/test/java/com/panzhihua/service_grid/service/impl/EventVisitingTasksServiceImplTest.java
new file mode 100644
index 0000000..954a1d9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/test/java/com/panzhihua/service_grid/service/impl/EventVisitingTasksServiceImplTest.java
@@ -0,0 +1,32 @@
+package com.panzhihua.service_grid.service.impl;
+
+import java.util.List;
+
+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.panzhihua.common.model.dtos.grid.LcEventVisitingTasksListDTO;
+import com.panzhihua.service_grid.ServiceGridApplication;
+import com.panzhihua.service_grid.service.EventVisitingTasksService;
+
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+@SpringBootTest(classes = ServiceGridApplication.class)
+class EventVisitingTasksServiceImplTest {
+
+    @Resource
+    private EventVisitingTasksService eventVisitingTasksService;
+
+    @Test
+    void getUnUploadVisitingTask() {
+        List<LcEventVisitingTasksListDTO> data = eventVisitingTasksService.getUnUploadVisitingTask();
+        String pretty = JSONArray.toJSONString(data, SerializerFeature.PrettyFormat,
+            SerializerFeature.WriteMapNullValue, SerializerFeature.WriteDateUseDateFormat);
+        log.info(pretty);
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/test/java/com/panzhihua/service_grid/service/impl/LcCompareCodeServiceImplTest.java b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/test/java/com/panzhihua/service_grid/service/impl/LcCompareCodeServiceImplTest.java
new file mode 100644
index 0000000..7171546
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_grid/src/test/java/com/panzhihua/service_grid/service/impl/LcCompareCodeServiceImplTest.java
@@ -0,0 +1,27 @@
+package com.panzhihua.service_grid.service.impl;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+
+import com.panzhihua.service_grid.ServiceGridApplication;
+import com.panzhihua.service_grid.service.LcCompareCodeService;
+
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+@SpringBootTest(classes = ServiceGridApplication.class)
+class LcCompareCodeServiceImplTest {
+
+    @Autowired
+    private LcCompareCodeService lcCompareCodeService;
+
+    @Test
+    void getLcGridIdByLocal() {}
+
+    @Test
+    void getLcUserIdByLocal() {
+        String lcUserId = lcCompareCodeService.getLcUserIdByLocal("2614");
+        log.info(lcUserId);
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/pom.xml
new file mode 100644
index 0000000..5982421
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/pom.xml
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.panzhihua</groupId>
+        <artifactId>zhihuishequ</artifactId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <groupId>com.panzhihua</groupId>
+    <artifactId>service_jinhui_community</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>service_jinhui_community</name>
+    <description>金汇社区</description>
+
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-config</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid-spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.netflix.hystrix</groupId>
+            <artifactId>hystrix-javanica</artifactId>
+        </dependency>
+        <!--jsoup爬虫爬取网页 -->
+        <dependency>
+            <groupId>org.jsoup</groupId>
+            <artifactId>jsoup</artifactId>
+            <version>1.13.1</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.panzhihua</groupId>
+            <artifactId>common</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.data</groupId>
+            <artifactId>spring-data-redis</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>commons-lang</groupId>
+            <artifactId>commons-lang</artifactId>
+            <version>2.6</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-amqp</artifactId>
+        </dependency>
+        <!--添加监控依赖包-->
+        <dependency>
+            <groupId>io.micrometer</groupId>
+            <artifactId>micrometer-registry-prometheus</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+        <!-- zxing生成二维码 -->
+        <dependency>
+            <groupId>com.google.zxing</groupId>
+            <artifactId>core</artifactId>
+            <version>3.3.3</version>
+        </dependency>
+        <!-- lbs附近定位 -->
+        <dependency>
+            <groupId>com.spatial4j</groupId>
+            <artifactId>spatial4j</artifactId>
+            <version>0.5</version>
+        </dependency>
+        <!--        微信小程序-->
+        <dependency>
+            <groupId>com.github.binarywang</groupId>
+            <artifactId>weixin-java-miniapp</artifactId>
+            <version>3.9.9.B</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.google.zxing</groupId>
+            <artifactId>javase</artifactId>
+            <version>3.3.3</version>
+        </dependency>
+    </dependencies>
+
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>2.5.0</version>
+                <configuration>
+                    <mainClass>com.panzhihua.service_jinhui_community.ServiceJinHuiCommunityApplication</mainClass>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>docker-maven-plugin</artifactId>
+                <version>1.2.0</version>
+                <configuration>
+                    <imageName>registry.cn-chengdu.aliyuncs.com/panzhihua/service_jinhui_community:v1</imageName>
+                    <serverId></serverId>
+                    <baseImage>java</baseImage>
+                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
+                    <resources>
+                        <resource>
+                            <targetPath>/</targetPath>
+                            <directory>${project.build.directory}</directory>
+                            <include>${project.build.finalName}.jar</include>
+                        </resource>
+                    </resources>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <repositories>
+        <repository>
+            <id>spring-milestones</id>
+            <name>Spring Milestones</name>
+            <url>https://repo.spring.io/milestone</url>
+        </repository>
+    </repositories>
+
+</project>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/ServiceJinHuiCommunityApplication.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/ServiceJinHuiCommunityApplication.java
new file mode 100644
index 0000000..8d1208b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/ServiceJinHuiCommunityApplication.java
@@ -0,0 +1,26 @@
+package com.panzhihua.service_jinhui_community;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.cloud.client.SpringCloudApplication;
+import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+
+@EnableSwagger2
+@SpringCloudApplication
+@EnableFeignClients(basePackages = {"com.panzhihua.common.service"})
+@EnableEurekaClient
+@EnableCircuitBreaker
+@ComponentScan({"com.panzhihua.service_jinhui_community", "com.panzhihua.common"})
+@EnableScheduling
+public class ServiceJinHuiCommunityApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(ServiceJinHuiCommunityApplication.class, args);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinghuiMerchantEvaluateApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinghuiMerchantEvaluateApi.java
new file mode 100644
index 0000000..91fb4f5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinghuiMerchantEvaluateApi.java
@@ -0,0 +1,83 @@
+package com.panzhihua.service_jinhui_community.api;
+
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinghuiMerchantEvaluateVO;
+import com.panzhihua.service_jinhui_community.service.JinghuiMerchantEvaluateService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * @auther llming
+ * @describe 金汇商家评价
+ */
+@Slf4j
+@RestController
+@RequestMapping("/jinghuiMerchantEvaluate")
+public class JinghuiMerchantEvaluateApi
+{
+    @Resource
+    private JinghuiMerchantEvaluateService evaluateService;
+
+
+    /**
+     * 商家评论列表
+     * @param pageNum
+     * @param pageSize
+     * @param merchantId
+     * @return
+     */
+    @GetMapping("/getList")
+    public R merchantEvaluateGetList(@RequestParam("pageNum")  int pageNum,
+                              @RequestParam("pageSize")  int pageSize,
+                              @RequestParam("merchantId")   String merchantId)
+    {
+        return evaluateService.getList(pageNum,pageSize,merchantId);
+    }
+
+    /**
+     * 商家评论列单个详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/getDetails")
+    public R merchantEvaluateGetDetails(@RequestParam("id") String id)
+    {
+        return R.ok(evaluateService.getDetails(id));
+    }
+    /**
+     * 商家评论列添加
+     * @param
+     * @return
+     */
+    @PostMapping("/addData")
+    public R merchantEvaluateAddData(@RequestBody JinghuiMerchantEvaluateVO item)
+    {
+        return evaluateService.addData(item);
+    }
+
+    /**
+     * 商家评论列编辑
+     * @param item
+     * @return
+     */
+    @PostMapping("/editData")
+    public R merchantEvaluateEditData(@RequestBody JinghuiMerchantEvaluateVO item)
+    {
+        return evaluateService.editData(item);
+    }
+
+    /**
+     * 商家评论列删除
+     * @param id
+     * @return
+     */
+    @PostMapping("/expurgateData")
+    public R merchantEvaluateExpurgateData(@RequestParam("id") String id)
+    {
+        return evaluateService.expurgateData(id);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiArticleManagementApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiArticleManagementApi.java
new file mode 100644
index 0000000..a62d929
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiArticleManagementApi.java
@@ -0,0 +1,82 @@
+package com.panzhihua.service_jinhui_community.api;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiArticleManagementVO;
+import com.panzhihua.service_jinhui_community.service.JinhuiArticleManagementService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+
+/**
+ * 金汇文章
+ */
+@Slf4j
+@RestController
+@RequestMapping("/JinhuiArticle")
+public class JinhuiArticleManagementApi
+{
+    @Resource
+    private JinhuiArticleManagementService managementService;
+
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/articleGetList")
+    public R articleGetList(@RequestParam("pageNum") int pageNum,
+                            @RequestParam("pageSize")  int pageSize,
+                            @RequestParam(value = "articleType", required = false) String articleType,
+                            @RequestParam(value = "conditionType", required = false) String conditionType)
+    {
+        return managementService.getList(pageNum,pageSize,articleType,conditionType);
+    }
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/articleGetDetails")
+    public R articleGetDetails(@RequestParam("id") String id)
+    {
+        return R.ok(managementService.getDetails(id));
+    }
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/articleAddData")
+    public R articleAddData(@RequestBody JinhuiArticleManagementVO item)
+    {
+        return managementService.addData(item);
+    }
+
+    /**
+     * 编辑
+     * @param item
+     * @return
+     */
+    @PostMapping("/articleEditData")
+    public R articleEditData(@RequestBody JinhuiArticleManagementVO item)
+    {
+        return managementService.editData(item);
+    }
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    @GetMapping("/articleExpurgateData")
+    public R articleExpurgateData(@RequestParam("id") String id)
+    {
+        return managementService.expurgateData(id);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiCharityApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiCharityApi.java
new file mode 100644
index 0000000..489fe80
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiCharityApi.java
@@ -0,0 +1,89 @@
+package com.panzhihua.service_jinhui_community.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiCharityVO;
+import com.panzhihua.service_jinhui_community.service.JinhuiCharityService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * @auther llming
+ * @describe 金汇慈善公益
+ */
+@Slf4j
+@RestController
+@RequestMapping("/JinhuiCharity")
+public class JinhuiCharityApi extends BaseController {
+    @Resource
+    private JinhuiCharityService charityService;
+
+
+    /**
+     * 分页查询
+     *
+     * @param
+     * @return
+     */
+    @GetMapping("/getCharityList")
+    public R getCharityList(@RequestParam("pageNum") int pageNum,
+                            @RequestParam("pageSize") int pageSize,
+                            @RequestParam(value = "title", required = false) String title,
+                            @RequestParam(value = "label", required = false) String label,
+                            @RequestParam(value = "state", required = false) String state)
+    {
+        return charityService.getList(pageNum,pageSize,title,label,state);
+    }
+
+    /**
+     * 金汇大屏用
+     *
+     * @param
+     * @return
+     */
+    @GetMapping("/getJinhuiCharityList")
+    public R getJinhuiCharityList()
+    {
+        return charityService.getJinhuiCharityList();
+    }
+
+    /**
+     * 获取详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/getCharityDetails")
+    public R getCharityDetails(@RequestParam("id") String id)
+    {
+        return R.ok(charityService.getDetails(id));
+    }
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/addCharityData")
+    public R addCharityData(@RequestBody JinhuiCharityVO item)
+    {
+        item.setState("1");
+        return charityService.addData(item);
+    }
+
+    @PostMapping("/editCharityData")
+    public R editCharityData(@RequestBody JinhuiCharityVO item)
+    {
+        return charityService.editData(item);
+    }
+
+    @DeleteMapping("/expurgateCharityData")
+    public R expurgateCharityData(@RequestParam("id") String id)
+    {
+        return charityService.expurgateData(id);
+    }
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiConfigApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiConfigApi.java
new file mode 100644
index 0000000..e451309
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiConfigApi.java
@@ -0,0 +1,55 @@
+package com.panzhihua.service_jinhui_community.api;
+
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiConfigVO;
+import com.panzhihua.service_jinhui_community.service.JinhuiConfigService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@RestController
+@RequestMapping("/jinhuiConfig")
+public class JinhuiConfigApi
+{
+
+    @Resource
+    private JinhuiConfigService configService;
+
+    @GetMapping("/configGetDetails")
+    public R configGetDetails(@RequestParam("communityId") String communityId)
+    {
+        return R.ok(configService.getDetails(communityId));
+    }
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/configAddData")
+    public R configAddData(@RequestBody JinhuiConfigVO item)
+    {
+        if(StringUtils.isEmpty(item.getId()))
+        {
+            return configService.addData(item);
+        }
+        return configService.editData(item);
+    }
+
+    @PostMapping("/configEditData")
+    public R configEditData(@RequestBody JinhuiConfigVO item)
+    {
+        return configService.editData(item);
+    }
+
+    @DeleteMapping("/configExpurgateData")
+    public R configExpurgateData(@RequestParam("communityId") String communityId)
+    {
+        return configService.expurgateData(communityId);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiExperienceActivityApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiExperienceActivityApi.java
new file mode 100644
index 0000000..d7e62d7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiExperienceActivityApi.java
@@ -0,0 +1,169 @@
+package com.panzhihua.service_jinhui_community.api;
+
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiApplyExperienceVO;
+import com.panzhihua.common.model.vos.jinhui.JinhuiExperienceActivityVO;
+import com.panzhihua.service_jinhui_community.service.JinhuiApplyExperienceService;
+import com.panzhihua.service_jinhui_community.service.JinhuiExperienceActivityService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * 体验活动
+ */
+@Slf4j
+@RestController
+@RequestMapping("/JinhuiExperience")
+public class JinhuiExperienceActivityApi {
+    @Resource
+    private JinhuiExperienceActivityService activityService;
+
+    @Resource
+    private JinhuiApplyExperienceService applyExperienceService;
+
+
+    /**
+     * 分页查询
+     *
+     * @param
+     * @return
+     */
+    @GetMapping("/experienceGetList")
+    public R experienceGetList(@RequestParam("pageNum") int pageNum,
+                               @RequestParam("pageSize")  int pageSize,
+                               @RequestParam(value = "activityName", required = false) String activityName,
+                               @RequestParam(value = "activityType", required = false) String activityType,
+                               @RequestParam(value = "starTime", required = false) Date starTime,
+                               @RequestParam(value = "endTime", required = false) Date endTime)
+    {
+        return activityService.getList(pageNum,pageSize,activityName,activityType,starTime,endTime);
+    }
+
+    @GetMapping("/experienceGetDetails")
+    public R experienceGetDetails(@RequestParam("id") String id,
+                                  @RequestParam(value = "userId", required = false) String userId) {
+        return R.ok(activityService.getDetails(id,userId));
+    }
+
+    /**
+     * 新增
+     *
+     * @param
+     * @return
+     */
+    @PostMapping("/experienceAddData")
+    public R experienceAddData(@RequestBody JinhuiExperienceActivityVO item) {
+        return activityService.addData(item);
+    }
+
+    /**
+     * 详情
+     *
+     * @param item
+     * @return
+     */
+    @PostMapping("/experienceEditData")
+    public R experienceEditData(@RequestBody JinhuiExperienceActivityVO item) {
+        return activityService.editData(item);
+    }
+
+    /**
+     * 删除
+     *
+     * @param id
+     * @return
+     */
+    @GetMapping("/experienceExpurgateData")
+    public R experienceExpurgateData(@RequestParam("id") String id) {
+        return activityService.expurgateData(id);
+    }
+
+    /*******************************************************************************************************
+     *
+     *                           金汇报名体验
+     *
+     *******************************************************************************************************/
+    /**
+     * 分页查询
+     *
+     * @param
+     * @return
+     */
+    @GetMapping("/applyExperienceGetList")
+    public R applyExperienceGetList(@RequestParam("pageNum") int pageNum,
+                                    @RequestParam("pageSize") int pageSize,
+                                    @RequestParam(value = "userId", required = false) String userId,
+                                    @RequestParam(value = "isFeedback", required = false) String isFeedback,
+                                    @RequestParam(value = "activityId", required = false) String activityId)
+    {
+        return applyExperienceService.getList(pageNum, pageSize, userId, activityId,isFeedback);
+    }
+
+
+    @GetMapping("/applyExperienceGetDetails")
+    public R applyExperienceGetDetails(@RequestParam(value = "id", required = false) String id,
+                                       @RequestParam(value = "userId", required = false) String userId,
+                                       @RequestParam(value = "activityId", required = false) String activityId) {
+        return R.ok(applyExperienceService.getDetails(id,userId,activityId));
+    }
+
+    /**
+     * 新增
+     *
+     * @param
+     * @return
+     */
+    @PostMapping("/applyExperienceAddData")
+    public R applyExperienceAddData(@RequestBody JinhuiApplyExperienceVO item)
+    {
+        return applyExperienceService.addData(item);
+    }
+
+    @PostMapping("/applyExperienceEditData")
+    public R applyExperienceEditData(@RequestBody JinhuiApplyExperienceVO item)
+    {
+        return applyExperienceService.editData(item);
+    }
+
+    @DeleteMapping("/applyExperienceExpurgateData")
+    public R applyExperienceExpurgateData(@RequestParam("id") String id)
+    {
+        return applyExperienceService.expurgateData(id);
+    }
+
+
+    /**
+     * 填写反馈接口
+     * @return
+     */
+    @GetMapping("/applyExperienceFilIn")
+    public R filIn(@RequestParam("userId") String userId,
+                   @RequestParam("activityId") String activityId,
+                   @RequestParam("content") String content)
+    {
+        return applyExperienceService.filIn(userId,activityId,content);
+    }
+
+
+    /**************************************************************************************************************
+     *
+     *
+     *                                       定时任务
+     *
+     *
+     *******************************************************************************************************************/
+
+
+    @GetMapping("/timedTaskJinhuiActivitiesJobHandler")
+    public R timedTaskJinhuiActivitiesJobHandler()
+    {
+        return activityService.timedTaskJinhuiActivitiesJobHandler();
+    }
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiInterspaceApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiInterspaceApi.java
new file mode 100644
index 0000000..4dc6bc3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiInterspaceApi.java
@@ -0,0 +1,232 @@
+package com.panzhihua.service_jinhui_community.api;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiInterspaceApplyForVO;
+import com.panzhihua.common.model.vos.jinhui.JinhuiInterspaceTypeVO;
+import com.panzhihua.common.model.vos.jinhui.JinhuiInterspaceVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiInterspaceApplyFor;
+import com.panzhihua.service_jinhui_community.service.JinhuiInterspaceApplyForService;
+import com.panzhihua.service_jinhui_community.service.JinhuiInterspaceService;
+import com.panzhihua.service_jinhui_community.service.JinhuiInterspaceTypeService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * 金汇空间预约模块
+ */
+@Slf4j
+@RestController
+@RequestMapping("/JinhuiInterspace/")
+public class JinhuiInterspaceApi
+{
+
+    @Resource
+    private JinhuiInterspaceService jinhuiInterspaceService;
+
+    @Resource
+    private JinhuiInterspaceTypeService interspaceTypeService;
+
+    @Resource
+    private JinhuiInterspaceApplyForService applyForService;
+
+    /**
+     * 金汇空间预约模块分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/interspaceGetList")
+    public R interspaceGetList(@RequestParam("pageNum") int pageNum,
+                               @RequestParam("pageSize") int pageSize,
+                               @RequestParam(value = "intendantType",required = false) String intendantType)
+    {
+        return jinhuiInterspaceService.getList(pageNum,pageSize,intendantType);
+    }
+
+    /**
+     * 金汇空间预约模块单个详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/interspaceGetDetails")
+    public R interspaceGetDetails(@RequestParam("id") String id)
+    {
+        return R.ok(jinhuiInterspaceService.getDetails(id));
+    }
+
+    /**
+     * 金汇空间预约模块新增
+     * @param
+     * @return
+     */
+    @PostMapping("/interspaceAddData")
+    public R interspaceAddData(@RequestBody JinhuiInterspaceVO item)
+    {
+        return jinhuiInterspaceService.addData(item);
+    }
+
+
+    /**
+     * 金汇空间预约模块编辑
+     * @param
+     * @return
+     */
+    @PostMapping("/interspaceEditData")
+    public R interspaceEditData(@RequestBody JinhuiInterspaceVO item)
+    {
+        return jinhuiInterspaceService.editData(item);
+    }
+
+
+    /**
+     * 金汇空间预约模块删除
+     * @param id
+     * @return
+     */
+    @GetMapping("/interspaceExpurgateData")
+    public R interspaceExpurgateData(@RequestParam("id") String id)
+    {
+        return jinhuiInterspaceService.expurgateData(id);
+    }
+
+
+    /***********************************************************************************************
+     *
+     *
+     *               空间预约分类
+     *
+     *
+     **************************************************************************************************/
+
+    /**
+     * 空间预约分类分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/interspaceTypeGetList")
+    public R interspaceTypeGetList(@RequestParam("pageNum") int pageNum,
+                                   @RequestParam("pageSize") int pageSize)
+    {
+        return interspaceTypeService.getList(pageNum,pageSize);
+    }
+
+    /**
+     * 空间预约分类单个详情
+     * @param
+     * @return
+     */
+    @GetMapping("/interspaceTypeGetDetails")
+    public R interspaceTypeGetDetails(@RequestParam("id") String id)
+    {
+        return R.ok(interspaceTypeService.getDetails(id));
+    }
+
+    /**
+     * 空间预约分类新增
+     * @param
+     * @return
+     */
+    @PostMapping("/interspaceTypeAddData")
+    public R interspaceTypeAddData(@RequestBody JinhuiInterspaceTypeVO item)
+    {
+        return interspaceTypeService.addData(item);
+    }
+
+    /**
+     * 空间预约分类编辑
+     * @param
+     * @return
+     */
+    @PostMapping("/interspaceTypeEditData")
+    public R interspaceTypeEditData(@RequestBody JinhuiInterspaceTypeVO item)
+    {
+        return interspaceTypeService.editData(item);
+    }
+
+
+    /**
+     * 空间预约分类删除
+     * @param
+     * @return
+     */
+    @DeleteMapping("/interspaceTypeExpurgateData")
+    public R interspaceTypeExpurgateData(@RequestParam("id") String id)
+    {
+        return interspaceTypeService.expurgateData(id);
+    }
+
+
+    /***************************************************************************************************************
+     *
+     *
+     *                                       空间预约申请
+     *
+     *
+     **************************************************************************************************************/
+    /**
+     * 空间预约申请分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/applyFor/getList")
+    public R applyForGetList(@RequestParam("pageNum") int pageNum,
+                             @RequestParam("pageSize") int pageSize,
+                             @RequestParam(value = "intendantType",required = false) String intendantType,
+                             @RequestParam(value = "state",required = false) String state,
+                             @RequestParam(value = "interspaceTime",required = false) String interspaceTime,
+                             @RequestParam(value = "subscribeTimeFrame",required = false) String subscribeTimeFrame,
+                             @RequestParam(value = "interspaceId",required = false) String  interspaceId,
+                             @RequestParam(value = "userId",required = false) String  userId)
+    {
+        return applyForService.getList(pageNum,pageSize,intendantType,state,interspaceTime,subscribeTimeFrame,interspaceId,userId);
+    }
+
+    /**
+     * 空间预约申请详情
+     * @param
+     * @return
+     */
+    @GetMapping("/applyFor/getDetails")
+    public R applyForGetDetails(@RequestParam("id") String id)
+    {
+        return R.ok(applyForService.getDetails(id));
+    }
+
+    /**
+     * 空间预约申请新增
+     * @param
+     * @return
+     */
+    @PostMapping("/applyFor/addData")
+    public R applyForAddData(@RequestBody JinhuiInterspaceApplyForVO item)
+    {
+        return applyForService.addData(item);
+    }
+
+    /**
+     * 空间预约申请编辑
+     * @param
+     * @return
+     */
+    @PostMapping("/applyFor/editData")
+    public R applyForEditData(@RequestBody JinhuiInterspaceApplyForVO item)
+    {
+        return applyForService.editData(item);
+    }
+
+    /**
+     * 空间预约申请删除
+     * @param
+     * @return
+     */
+    @DeleteMapping("/applyFor/expurgateData")
+    public R applyForExpurgateData(@RequestParam("id") String id)
+    {
+        return applyForService.expurgateData(id);
+    }
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiLargeScreenApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiLargeScreenApi.java
new file mode 100644
index 0000000..cbd9931
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiLargeScreenApi.java
@@ -0,0 +1,165 @@
+package com.panzhihua.service_jinhui_community.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.*;
+import com.panzhihua.service_jinhui_community.entity.JinhuiSnapshot;
+import com.panzhihua.service_jinhui_community.entity.JinhuiSnapshotClassify;
+import com.panzhihua.service_jinhui_community.service.JinhuiLargeScreenService;
+import com.panzhihua.service_jinhui_community.service.JinhuiSnapshotClassifyService;
+import com.panzhihua.service_jinhui_community.service.JinhuiSnapshotService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ *  金汇大屏api
+ */
+@Slf4j
+@RestController
+@RequestMapping("/JinhuiLargeScreen")
+public class JinhuiLargeScreenApi extends BaseController
+{
+
+    @Resource
+    private JinhuiLargeScreenService screenService;
+
+
+    /**
+     * 金汇首页数据
+     * @return
+     */
+    @GetMapping("/getIndexInfo")
+    public R getIndexInfo()
+    {
+        JinhuiIndexInfoVO jinhuiIndexInfoVO=new JinhuiIndexInfoVO();
+        String mienNum=screenService.getMienNum(this.getCommunityId()+"");
+        String volunteerServeNum=screenService.getVolunteerServeNum(this.getCommunityId()+"");
+        String convenientMerchantsNum=screenService.getConvenientMerchantsNum("2");
+        String volunteeringNum=screenService.getMicroVolunteeringNum("2");
+
+        jinhuiIndexInfoVO.setMienNum(mienNum);
+        jinhuiIndexInfoVO.setConvenientMerchantsNum(convenientMerchantsNum);
+        jinhuiIndexInfoVO.setMicroVolunteeringNum(volunteeringNum);
+        jinhuiIndexInfoVO.setVolunteerServeNum(volunteerServeNum);
+
+        return R.ok(jinhuiIndexInfoVO);
+    }
+
+    /**
+     * 金汇大屏社区服务
+     * @return
+     */
+    @GetMapping("/getCommunityServices")
+    public R getCommunityServices()
+    {
+        //志愿者  党员
+        JinhuiCommunityServicesVO vo=screenService.baseInfo(getCommunityId()+"");
+        List<JinhuiMerchantTypeVO> list=screenService.getMerchantTypeNum();
+        /**
+         * 便民服务商家  审核状态 (1待审核 2已通过 3未通过 )
+         * @return
+         */
+        String ConvenientMerchantsNum=screenService.getConvenientMerchantsNum(null);
+
+        /**
+         * 办事直指南
+         * @return
+         */
+        String WorkGuideNum=screenService.getWorkGuideNum();
+
+        /**
+         * 空间预约 `state` 状态(1待处理  2未通过  3已通过)',
+         * @return
+         */
+        String InterspaceApplyNum=screenService.getInterspaceApplyNum(null);
+
+
+        /**
+         * 商城订单
+         * @param cancelType `cancel_type` '核销状态(0待核销  1已核销  2订单已取消)
+         * @return
+         */
+        String ShoppingOrderNum=screenService.getShoppingOrderNum(null);
+
+        /**
+         * 获取社区工作者
+         * @param communityId `type`  '1社区工作人员2物业',
+         * @return
+         */
+        String ServiceTeam=screenService.getServiceTeam(getCommunityId()+"",null);
+
+        vo.setWorkGuideNum(WorkGuideNum);
+        vo.setShoppingOrderNum(ShoppingOrderNum);
+        vo.setInterspaceApplyNum(InterspaceApplyNum);
+        vo.setConvenientMerchantsNum(ConvenientMerchantsNum);
+        vo.setServiceTeam(ServiceTeam);
+        vo.setList(list);
+
+        return R.ok(vo);
+    }
+
+
+    @GetMapping("/getOldMan")
+    public R getOldMan()
+    {
+        JinhuiAllOldManVO allOldManVO=new JinhuiAllOldManVO();
+        /**
+         * 老人手环异常列表数量统计
+         * @return
+         */
+
+        //已处理数量
+        String processedNum=screenService.getEarlyWarningNum("2",getCommunityId()+"");
+        //未处理数量
+        String untreatedNum=screenService.getEarlyWarningNum("1",getCommunityId()+"");
+
+        allOldManVO.setProcessedNum(processedNum);
+        allOldManVO.setUntreatedNum(untreatedNum);
+        /**
+         * 老人手环异常列表
+         */
+        List<JinhuiOldManVO> processedList=screenService.getEarlyWarningList("2",getCommunityId()+"");
+        List<JinhuiOldManVO> untreatedList=screenService.getEarlyWarningList("1",getCommunityId()+"");
+
+        allOldManVO.setProcessedList(processedList);
+        allOldManVO.setUntreatedList(untreatedList);
+        /**
+         * 老人手环用户数量  1 男    2 女
+         * @return
+         */
+        //总数
+        String braceletUserNum=screenService.getBraceletUser(null,getCommunityId()+"");
+        //男
+        String braceletUserManNum=screenService.getBraceletUser("1",getCommunityId()+"");
+        //女
+        String braceletUserWomanNum=screenService.getBraceletUser("2",getCommunityId()+"");
+
+        allOldManVO.setBraceletUserNum(braceletUserNum);
+        allOldManVO.setBraceletUserManNum(braceletUserManNum);
+        allOldManVO.setBraceletUserWomanNum(braceletUserWomanNum);
+
+
+        /**
+         * 新增折线数据
+         * @return
+         */
+        List<JinhuiOldManBrokenLineVO> lsit=screenService.getEventAddPolylineData(getCommunityId()+"");
+        allOldManVO.setLsit(lsit);
+
+
+        List<JinhuiOldManUserDateVO> oldManUserDates=screenService.getOldManUserDate(getCommunityId()+"");
+        allOldManVO.setOldManUserDates(oldManUserDates);
+
+        return R.ok(allOldManVO);
+    }
+
+
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiMerchantApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiMerchantApi.java
new file mode 100644
index 0000000..4e8eed6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiMerchantApi.java
@@ -0,0 +1,147 @@
+package com.panzhihua.service_jinhui_community.api;
+
+
+import com.panzhihua.common.model.dtos.community.convenient.JinhuiPageConvenientMerchantDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PageConvenientMerchantDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.convenient.JinhuiConvenientMerchantVO;
+import com.panzhihua.common.model.vos.jinhui.JinhuiComConvenientServiceCategoriesVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiComConvenientServiceCategories;
+import com.panzhihua.service_jinhui_community.service.JinhuiComConvenientServiceCategoriesService;
+import com.panzhihua.service_jinhui_community.service.JinhuiConvenientMerchantService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * @auther llming
+ * @describe 金汇商家便民服务
+ */
+@Slf4j
+@RestController
+@RequestMapping("/jinhuiMerchant")
+public class JinhuiMerchantApi
+{
+    @Resource
+    private JinhuiConvenientMerchantService jinhuiConvenientMerchantService;
+
+    @Resource
+    private JinhuiComConvenientServiceCategoriesService categoriesService;
+
+
+    /**
+     * 删除便民服务商家
+     *
+     * @param merchantId
+     * @return
+     */
+    @DeleteMapping("/delete")
+    public R deleteMerchant(@RequestParam("merchantId") String merchantId) {
+        return jinhuiConvenientMerchantService.deleteMerchant(merchantId);
+    }
+
+
+    @PostMapping("/addData")
+    public R merchantAddData(@RequestBody JinhuiConvenientMerchantVO item)
+    {
+        return jinhuiConvenientMerchantService.addData(item);
+    }
+
+    @PostMapping("/editData")
+    public R merchantEditData(@RequestBody JinhuiConvenientMerchantVO item)
+    {
+        return jinhuiConvenientMerchantService.editData(item);
+    }
+
+
+
+    /**
+     * 分页查询便民服务商家 运营后台
+     *
+     * @param pageConvenientMerchantDTO
+     * @return
+     */
+    @PostMapping("/page")
+    public R pageMerchant(@RequestBody JinhuiPageConvenientMerchantDTO pageConvenientMerchantDTO) {
+        return jinhuiConvenientMerchantService.pageMerchant(pageConvenientMerchantDTO);
+    }
+
+    /**
+     * 获取便民服务商家详情
+     *
+     * @param merchantId
+     * @return
+     */
+    @GetMapping("/get")
+    public R getMerchant(@RequestParam("merchantId") String merchantId) {
+        return jinhuiConvenientMerchantService.getMerchant(merchantId);
+    }
+
+
+    /*************************************************************************************************************
+     *
+     *
+     *                                       商家分类
+     *
+     *
+     **************************************************************************************************************/
+    /**
+     * 分页查询 商家类别
+     * @param
+     * @return
+     */
+    @GetMapping("/getCategories")
+    public R getListCategories(@RequestParam("pageNum") int pageNum,
+                     @RequestParam("pageSize") int pageSize)
+    {
+        return categoriesService.getList(pageNum,pageSize);
+    }
+
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/getDetailsCategories")
+    public R getDetailsCategories(@RequestParam("id") String id)
+    {
+        return R.ok(categoriesService.getDetails(id));
+    }
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/addDataCategories")
+    public R addDataCategories(@RequestBody JinhuiComConvenientServiceCategoriesVO item)
+    {
+        return categoriesService.addData(item);
+    }
+
+
+    /**
+     * 编辑
+     * @param item
+     * @return
+     */
+    @PostMapping("/editDataCategories")
+    public R editDataCategories(@RequestBody JinhuiComConvenientServiceCategoriesVO item)
+    {
+        return categoriesService.editData(item);
+    }
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    @GetMapping("/expurgateDataCategories")
+    public R expurgateDataCategories(@RequestParam("id") String id)
+    {
+        return categoriesService.expurgateData(id);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiMicroVolunteeringApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiMicroVolunteeringApi.java
new file mode 100644
index 0000000..ecd98cb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiMicroVolunteeringApi.java
@@ -0,0 +1,154 @@
+package com.panzhihua.service_jinhui_community.api;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiMicroVolunteeringTypeVO;
+import com.panzhihua.common.model.vos.jinhui.JinhuiMicroVolunteeringVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiMicroVolunteeringType;
+import com.panzhihua.service_jinhui_community.service.JinhuiMicroVolunteeringService;
+import com.panzhihua.service_jinhui_community.service.JinhuiMicroVolunteeringTypeService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+
+/**
+ * @auther llming
+ * @describe 金汇微心愿
+ */
+@Slf4j
+@RestController
+@RequestMapping("/micro")
+public class JinhuiMicroVolunteeringApi
+{
+
+    @Resource
+    private JinhuiMicroVolunteeringService recordService;
+
+    @Resource
+    private JinhuiMicroVolunteeringTypeService volunteeringTypeService;
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/volunteering/getList")
+    public R volunteeringGetList(@RequestParam("pageNum") int pageNum,
+                                 @RequestParam("pageSize") int pageSize,
+                                 @RequestParam(value = "userId", required = false) String userId,
+                                 @RequestParam(value = "state", required = false) String state)
+    {
+        return recordService.getList(pageNum,pageSize,userId,state);
+    }
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/volunteering/getDetails")
+    public R volunteeringGetDetails(@RequestParam("id") String id)
+    {
+        return R.ok(recordService.getDetails(id));
+    }
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/volunteering/addData")
+    public R volunteeringAddData(@RequestBody JinhuiMicroVolunteeringVO item)
+    {
+        return recordService.addData(item);
+    }
+
+    /**
+     * 编辑
+     * @param item
+     * @return
+     */
+    @PostMapping("/volunteering/editData")
+    public R volunteeringEditData(@RequestBody JinhuiMicroVolunteeringVO item)
+    {
+        return recordService.editData(item);
+    }
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/volunteering/expurgateData")
+    public R volunteeringExpurgateData(@RequestParam("id") String id)
+    {
+        return recordService.expurgateData(id);
+    }
+
+
+    /***************************************************************************************************************
+     *
+     *
+     *                        金汇微心愿分类
+     *
+     *
+     *****************************************************************************************************************/
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/type/getList")
+    public R volunteeringTypeGetList(@RequestParam("pageNum") int pageNum,
+                                     @RequestParam("pageSize") int pageSize)
+    {
+        return volunteeringTypeService.getList(pageNum,pageSize);
+    }
+
+
+    /**
+     * 详情
+     * @param
+     * @return
+     */
+    @GetMapping("/type/getDetails")
+    public R volunteeringTypeGetDetails(@RequestParam("id") String id)
+    {
+        return R.ok(volunteeringTypeService.getDetails(id));
+    }
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/type/addData")
+    public R volunteeringTypeAddData(@RequestBody JinhuiMicroVolunteeringTypeVO item)
+    {
+        return volunteeringTypeService.addData(item);
+    }
+
+    /**
+     * 编辑
+     * @param
+     * @return
+     */
+    @PostMapping("/type/editData")
+    public R volunteeringTypeEditData(@RequestBody JinhuiMicroVolunteeringTypeVO item)
+    {
+        return volunteeringTypeService.editData(item);
+    }
+
+    /**
+     * 删除
+     * @param
+     * @return
+     */
+    @DeleteMapping("/type/expurgateData")
+    public R volunteeringTypeExpurgateData(@RequestParam("id") String id)
+    {
+        return volunteeringTypeService.expurgateData(id);
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiReseauPeopleApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiReseauPeopleApi.java
new file mode 100644
index 0000000..85797dd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiReseauPeopleApi.java
@@ -0,0 +1,182 @@
+package com.panzhihua.service_jinhui_community.api;
+
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiReseauPeopleVO;
+import com.panzhihua.common.model.vos.jinhui.JinhuiReseauVO;
+import com.panzhihua.service_jinhui_community.service.JinhuiReseauPeopleService;
+import com.panzhihua.service_jinhui_community.service.JinhuiReseauService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * @auther llming
+ * @describe 金汇网格Api
+ */
+@Slf4j
+@RestController
+@RequestMapping("/jinhuiReseau")
+public class JinhuiReseauPeopleApi extends BaseController
+{
+    @Resource
+    private JinhuiReseauPeopleService peopleService;
+
+
+    @Resource
+    private JinhuiReseauService reseauService;
+
+
+
+    /********************************************************************************************************
+     *
+     *
+     *                             金汇网格
+     *
+     *
+     ****************************************************************************************************/
+
+    /**
+     * 分页查询
+     *
+     * @param
+     * @return
+     */
+    @GetMapping("/getReseauList")
+    public R getReseauList(@RequestParam("pageNum") int pageNum,
+                           @RequestParam("pageSize") int pageSize) {
+        return reseauService.getList(pageNum, pageSize);
+    }
+
+    /**
+     * 获取未绑定人员的网格
+     * @return
+     */
+    @GetMapping("/getReseauBoxList")
+    public R getReseauBoxList() {
+        return R.ok(reseauService.getBoxList());
+    }
+
+
+    @GetMapping("/getReseauDetails")
+    public R getReseauDetails(@RequestParam("id") String id)
+    {
+        return R.ok(reseauService.getDetails(id));
+    }
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/addReseauData")
+    public R addReseauData(@RequestBody JinhuiReseauVO item)
+    {
+        return reseauService.addData(item);
+    }
+
+
+    @PostMapping("/editReseauData")
+    public R editReseauData(@RequestBody JinhuiReseauVO item)
+    {
+        return reseauService.editData(item);
+    }
+
+    @PostMapping("/expurgateReseauData")
+    public R expurgateReseauData(@RequestParam("id") String id)
+    {
+        return reseauService.expurgateData(id);
+    }
+
+
+
+
+    /********************************************************************************************************
+     *
+     *
+     *                             金汇网格员
+     *
+     *
+     ****************************************************************************************************/
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/getPeopleList")
+    public R getPeopleList(@RequestParam("pageNum") int pageNum,
+                           @RequestParam("pageSize") int pageSize)
+    {
+        return peopleService.getList(pageNum,pageSize);
+    }
+
+
+    /**
+     * 分页查询
+     * 获取本社区用户
+     * @param
+     * @return
+     */
+    @GetMapping("/getPeopleUserList")
+    public R getPeopleUserList(@RequestParam("pageNum") int pageNum,
+                               @RequestParam("pageSize") int pageSize,
+                               @RequestParam(value = "nameAndPhone", required = false) String nameAndPhone)
+    {
+        return peopleService.getUserList(pageNum,pageSize,getCommunityId()+"",nameAndPhone);
+    }
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    @GetMapping("/getPeopleDetails")
+    public R getPeopleDetails(@RequestParam("id") String id)
+    {
+        return R.ok(peopleService.getDetails(id));
+    }
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/addPeopleData")
+    public R addPeopleData(@RequestBody JinhuiReseauPeopleVO item)
+    {
+        return peopleService.addData(item);
+    }
+
+
+    /**
+     * 编辑
+     * @param item
+     * @return
+     */
+    @PostMapping("/editPeopleData")
+    public R editPeopleData(@RequestBody JinhuiReseauPeopleVO item)
+    {
+        return peopleService.editData(item);
+    }
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/expurgatePeopleData")
+    public R expurgatePeopleData(@RequestParam("id") String id)
+    {
+        return peopleService.expurgateData(id);
+    }
+
+
+
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiShoppingApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiShoppingApi.java
new file mode 100644
index 0000000..8c98ea6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiShoppingApi.java
@@ -0,0 +1,177 @@
+package com.panzhihua.service_jinhui_community.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiShoppingOrderVO;
+import com.panzhihua.common.model.vos.jinhui.JinhuiShoppingVO;
+import com.panzhihua.service_jinhui_community.service.JinhuiShoppingOrderService;
+import com.panzhihua.service_jinhui_community.service.JinhuiShoppingService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+
+/**
+ * 金汇商城商品表
+ */
+@Slf4j
+@RestController
+@RequestMapping("/jinhuiShopping")
+public class JinhuiShoppingApi extends BaseController
+{
+
+    @Resource
+    private JinhuiShoppingService shoppingService;
+
+    @Resource
+    private JinhuiShoppingOrderService orderService;
+    /**
+     * 分页查询
+     *
+     * @param
+     * @return
+     */
+    @GetMapping("/shoppingGetList")
+    public R shoppingGetList(@RequestParam("pageNum") int pageNum,
+                     @RequestParam("pageSize") int pageSize,
+                     @RequestParam(value = "goodName", required = false) String goodName,
+                     @RequestParam(value = "goodType", required = false) String goodType,
+                     @RequestParam(value = "id", required = false) String id)
+    {
+        return shoppingService.getList(pageNum, pageSize, goodName, goodType, id);
+    }
+
+
+    @GetMapping("/shoppingGetDetails")
+    public R shoppingGetDetails(@RequestParam("id") String id,
+                                @RequestParam("communityId") String communityId)
+    {
+        return R.ok(shoppingService.getDetails(id,communityId));
+    }
+
+    /**
+     * 新增
+     *
+     * @param
+     * @return
+     */
+    @PostMapping("/shoppingAddData")
+    public R shoppingAddData(@RequestBody JinhuiShoppingVO item) {
+        return shoppingService.addData(item);
+    }
+
+
+    @PostMapping("/shoppingEditData")
+    public R shoppingEditData(@RequestBody JinhuiShoppingVO item) {
+        return shoppingService.editData(item);
+    }
+
+    @DeleteMapping("/shoppingExpurgateData")
+    public R shoppingExpurgateData(@RequestParam("id") String id)
+    {
+        return shoppingService.expurgateData(id);
+    }
+
+
+    /********************************************************************************************************
+     *
+     *
+     *                         金汇商城商品订单
+     *
+     *
+     ********************************************************************************************************/
+
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/orderGetList")
+    public R orderGetList(@RequestParam("pageNum") int pageNum,
+                          @RequestParam("pageSize") int pageSize,
+                          @RequestParam(value = "userId", required = false)String userId,
+                          @RequestParam(value = "goodsId", required = false)String goodsId,
+                          @RequestParam(value = "orderNumber", required = false)String orderNumber,
+                          @RequestParam(value = "goodName", required = false)String goodName,
+                          @RequestParam(value = "name", required = false)String name,
+                          @RequestParam(value = "cancelType", required = false)String cancelType)
+    {
+        return orderService.getList(pageNum,pageSize,userId,goodsId,orderNumber,
+                goodName,name,cancelType,getCommunityId()+"");
+    }
+
+    /**
+     * 分页详情
+     * @param
+     * @return
+     */
+    @GetMapping("/orderGetDetails")
+    public R orderGetDetails(@RequestParam("id") String id)
+    {
+        return R.ok(orderService.getDetails(id,getCommunityId()+""));
+    }
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/orderAddData")
+    public R orderAddData(@RequestBody JinhuiShoppingOrderVO item)
+    {
+        return orderService.addData(item);
+    }
+
+
+    /**
+     * 编辑
+     * @param
+     * @return
+     */
+    @PostMapping("/orderEditData")
+    public R orderEditData(@RequestBody JinhuiShoppingOrderVO item)
+    {
+        return orderService.editData(item);
+    }
+
+
+    /**
+     * 取消
+     * @param
+     * @return
+     */
+    @GetMapping("/orderCancelOrder")
+    public R orderCancelOrder(@RequestParam("orderId") String orderId)
+    {
+        return orderService.cancelOrder(orderId,getCommunityId()+"");
+    }
+
+
+    /**
+     * 删除
+     * @param
+     * @return
+     */
+    @DeleteMapping("/orderExpurgateData")
+    public R orderExpurgateData(@RequestParam("id") String id)
+    {
+        return orderService.expurgateData(id,getCommunityId()+"");
+    }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiSnapshotApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiSnapshotApi.java
new file mode 100644
index 0000000..7bcbc01
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiSnapshotApi.java
@@ -0,0 +1,151 @@
+package com.panzhihua.service_jinhui_community.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiSnapshotClassifyVO;
+import com.panzhihua.common.model.vos.jinhui.JinhuiSnapshotVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiSnapshot;
+import com.panzhihua.service_jinhui_community.entity.JinhuiSnapshotClassify;
+import com.panzhihua.service_jinhui_community.service.JinhuiSnapshotClassifyService;
+import com.panzhihua.service_jinhui_community.service.JinhuiSnapshotService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * 金汇随手拍api
+ */
+@Slf4j
+@RestController
+@RequestMapping("/JinhuiSnapshot/")
+public class JinhuiSnapshotApi  extends BaseController {
+
+
+    @Resource
+    private JinhuiSnapshotClassifyService classifyService;
+
+    @Resource
+    private JinhuiSnapshotService snapshotService;
+
+
+
+    /************************************************************************************************************
+     *
+     *
+     *                                   金汇随手拍分类
+     *
+     *
+     * ********************************************************************************************************/
+    /**
+     * 分页查询
+     *
+     * @param
+     * @return
+     */
+    @GetMapping("/getClassifyList")
+    public R getClassifyList(@RequestParam("pageNum") int pageNum,
+                             @RequestParam("pageSize") int pageSize) {
+        return classifyService.getList(pageNum, pageSize);
+    }
+
+    /**
+     * 详情
+     *
+     * @param id
+     * @return
+     */
+    @GetMapping("/getClassifyDetails")
+    public JinhuiSnapshotClassify getClassifyDetails(@RequestParam("id") String id) {
+        return classifyService.getDetails(id);
+    }
+
+
+    /**
+     * 新增
+     *
+     * @param
+     * @return
+     */
+    @PostMapping("/addClassifyData")
+    public R addClassifyData(@RequestBody JinhuiSnapshotClassifyVO item) {
+        return classifyService.addData(item);
+    }
+
+    /**
+     * 编辑
+     *
+     * @param item
+     * @return
+     */
+    @PostMapping("/editClassifyData")
+    public R editClassifyData(@RequestBody JinhuiSnapshotClassifyVO item) {
+        return classifyService.editData(item);
+    }
+
+    /**
+     * 删除
+     *
+     * @param id
+     * @return
+     */
+    @DeleteMapping("/expurgateClassifyData")
+    public R expurgateClassifyData(@RequestParam("id") String id) {
+        return classifyService.expurgateData(id);
+    }
+
+
+    /**********************************************************************************************************
+     *
+     *                                    金汇随手拍
+     *
+     *********************************************************************************************************/
+    /**
+     * 分页查询
+     *
+     * @param
+     * @return
+     */
+    @GetMapping("/getShotList")
+    public R getShotList(@RequestParam("pageNum") int pageNum,
+                         @RequestParam("pageSize") int pageSize) {
+        return snapshotService.getList(pageNum, pageSize);
+    }
+
+    @GetMapping("/getShotDetails")
+    public JinhuiSnapshot getShotDetails(@RequestParam("id") String id) {
+        return snapshotService.getDetails(id);
+    }
+
+
+    /**
+     * 新增
+     *
+     * @param
+     * @return
+     */
+
+    @PostMapping("/addShotData")
+    public R addShotData(@RequestBody JinhuiSnapshotVO item) {
+        return snapshotService.addData(item);
+    }
+
+    @PostMapping("/editShotData")
+    public R editShotData(@RequestBody JinhuiSnapshotVO item) {
+        return snapshotService.editData(item);
+    }
+
+    @DeleteMapping("/expurgateShotData")
+    public R expurgateShotData(@RequestParam("id") String id) {
+        return snapshotService.expurgateData(id);
+    }
+
+
+
+
+
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiWorkGuideApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiWorkGuideApi.java
new file mode 100644
index 0000000..81da6c0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/JinhuiWorkGuideApi.java
@@ -0,0 +1,233 @@
+package com.panzhihua.service_jinhui_community.api;
+
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.ComActWorkGuideDTO;
+import com.panzhihua.common.model.dtos.community.PageActWorkGuideDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActWorkGuideClassifyVO;
+import com.panzhihua.common.model.vos.jinhui.JinhuiQuestnaireUserAnswerVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiQuestnaireUserAnswer;
+import com.panzhihua.service_jinhui_community.service.JinhuiComActWorkGuideClassifyService;
+import com.panzhihua.service_jinhui_community.service.JinhuiComActWorkGuideService;
+import com.panzhihua.service_jinhui_community.service.JinhuiQuestnaireUserAnswerService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * @auther llming
+ * @describe 办事指南
+ */
+@Slf4j
+@RestController
+@RequestMapping("/JinhuiWorkGuide/")
+public class JinhuiWorkGuideApi extends BaseController {
+    @Resource
+    private JinhuiComActWorkGuideService workGuideService;
+    @Resource
+    private JinhuiComActWorkGuideClassifyService comActWorkGuideClassifyService;
+
+    /**
+     * 办事指南_新增
+     * 
+     * @param workGuideDTO
+     *            新增信息
+     * @return 新增结果
+     */
+    @PostMapping("addworkguide")
+    @Transactional(rollbackFor = Exception.class)
+    public R addWorkGuide(@RequestBody ComActWorkGuideDTO workGuideDTO, @RequestParam("userId") String userId) {
+        return workGuideService.addWorkGuide(workGuideDTO, userId);
+    }
+
+    /**
+     * 办事指南_编辑
+     * 
+     * @param workGuideDTO
+     * @return 编辑结果
+     */
+    @PostMapping("editworkguide")
+    @Transactional(rollbackFor = Exception.class)
+    public R putWorkGuide(@RequestBody ComActWorkGuideDTO workGuideDTO, @RequestParam("userId") String userId) {
+        return workGuideService.editWorkGuide(workGuideDTO, userId);
+    }
+
+    /**
+     * 办事指南_详情
+     * 
+     * @param workGuideId
+     * @return 详情
+     */
+    @GetMapping("detailworkguide")
+    public R detailWorkGuide(@RequestParam("workGuideId") String workGuideId,
+        @RequestParam("communityId") String communityId) {
+        return workGuideService.detailWorkGuide(workGuideId, communityId);
+    }
+
+    /**
+     * 办事指南_分页
+     * 
+     * @param pageActWorkGuideDTO
+     *            查询参数
+     * @return 分页集合
+     */
+    @PostMapping("pageworkguide")
+    public R pageWorkGuide(@RequestBody PageActWorkGuideDTO pageActWorkGuideDTO) {
+        return workGuideService.pageWorkGuide(pageActWorkGuideDTO);
+    }
+
+    /**
+     * 办事指南_删除
+     * 
+     * @param workGuideId
+     *            办事指南id
+     * @return 删除结果
+     */
+    @PostMapping("delectworkguide")
+    R delectWorkGuide(@RequestParam("workGuideId") String workGuideId) {
+        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") String workGuideClassifyId) {
+        return comActWorkGuideClassifyService.deleteWorkGuideClassify(workGuideClassifyId);
+    }
+
+    /**
+     * 办事指南-分类管理列表查询  getWorkGuideClassifyList  办事指南-分类管理列表查询
+     * @return    R   返回结果
+     * @author txb
+     * @date 2021/8/31 15:03
+     */
+    @GetMapping("workGuide/classify/getList")
+    public R getWorkGuideClassifyList(@RequestParam("areaCode")String areaCode) {
+        return comActWorkGuideClassifyService.getWorkGuideClassifyList(areaCode);
+    }
+
+    /**
+     * 办事指南列表-按分类查询
+     * @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") String classifyId) {
+        return workGuideService.listWorkGuideByClassifyId(classifyId);
+    }
+
+
+    /************************************************************************************************************
+     *
+     *
+     *                         用户提交办理 /JinhuiWorkGuide
+     *
+     *
+     *******************************************************************************************************/
+
+    @Resource
+    private JinhuiQuestnaireUserAnswerService answerService;
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("answer/getList")
+    public R answerGetList(@RequestParam("pageNum") int pageNum,
+                     @RequestParam("pageSize") int pageSize,
+                     @RequestParam(value = "userId", required = false) String userId,
+                     @RequestParam(value = "transactType", required = false) String transactType)
+    {
+        return answerService.getList(pageNum,pageSize,userId, transactType);
+    }
+
+    /**
+     * 获取详情
+     * @param id
+     * @return
+     */
+    @GetMapping("answer/getDetails")
+    public R answerGetDetails(@RequestParam("id") String id)
+    {
+        return R.ok(answerService.getDetails(id,null,null,null));
+    }
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("answer/addData")
+    public R answerAddData(@RequestBody JinhuiQuestnaireUserAnswerVO item)
+    {
+        return answerService.addData(item);
+    }
+
+    /**
+     * 编辑
+     * @param item
+     * @return
+     */
+    @PostMapping("answer/editData")
+    public R answerEditData(@RequestBody JinhuiQuestnaireUserAnswerVO item)
+    {
+        return answerService.editData(item);
+    }
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    @DeleteMapping("answer/expurgateData")
+    public R answerExpurgateData(@RequestParam("id") String id)
+    {
+        return answerService.expurgateData(id);
+    }
+
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/jinhuiCoinTableApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/jinhuiCoinTableApi.java
new file mode 100644
index 0000000..4a0a28c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/jinhuiCoinTableApi.java
@@ -0,0 +1,73 @@
+package com.panzhihua.service_jinhui_community.api;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiCoinGeneralTableVO;
+import com.panzhihua.service_jinhui_community.service.JinhuiCoinGeneralTableService;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+
+/**
+ * @auther llming
+ * @describe 金汇币明细
+ */
+@Slf4j
+@RestController
+@RequestMapping("/jinhuiCoinTable")
+public class jinhuiCoinTableApi
+{
+
+    @Resource
+    private JinhuiCoinGeneralTableService recordService;
+
+
+    @ApiOperation(value = "金汇币总币")
+    @GetMapping("/getList")
+    public R coinTableGetList(@RequestParam("pageNum")  int pageNum,
+                   @RequestParam("pageSize")  int pageSize,
+                   @RequestParam("type")   String type)
+    {
+        return recordService.getList(pageNum,pageSize,type);
+    }
+
+    @ApiOperation(value = "金汇币总币单个详情")
+    @GetMapping("/getDetails")
+    public R coinTableGetDetails(@RequestParam("userId") String userId)
+    {
+        return R.ok(recordService.getDetails(userId));
+    }
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "金汇币总币添加")
+    @PostMapping("/addData")
+    public R coinTableAddData(@RequestBody JinhuiCoinGeneralTableVO jinhuiGoldCoinRecordVO)
+    {
+        return recordService.addData(jinhuiGoldCoinRecordVO);
+    }
+
+    @ApiOperation(value = "金汇币总币编辑")
+    @PostMapping("/editData")
+    public R coinTableEditData(@RequestBody JinhuiCoinGeneralTableVO jinhuiGoldCoinRecordVO)
+    {
+        return recordService.editData(jinhuiGoldCoinRecordVO);
+    }
+
+    @ApiOperation(value = "金汇币总币删除")
+    @PostMapping("/expurgateData")
+    public R coinTableExpurgateData(@RequestParam("id") String id)
+    {
+        return recordService.expurgateData(id);
+    }
+
+
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/jinhuiRecordApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/jinhuiRecordApi.java
new file mode 100644
index 0000000..10d71ba
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/api/jinhuiRecordApi.java
@@ -0,0 +1,73 @@
+package com.panzhihua.service_jinhui_community.api;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiGoldCoinRecordVO;
+import com.panzhihua.service_jinhui_community.service.JinhuiGoldCoinRecordService;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+
+/**
+ * @auther llming
+ * @describe 金汇币明细
+ */
+@Slf4j
+@RestController
+@RequestMapping("/jinhuiRecord")
+public class jinhuiRecordApi
+{
+
+    @Resource
+    private JinhuiGoldCoinRecordService recordService;
+
+
+    @ApiOperation(value = "金汇币记录明细")
+    @GetMapping("/getList")
+    public R recordGetList(@RequestParam("pageNum")  int pageNum,
+                           @RequestParam("pageSize")  int pageSize,
+                           @RequestParam("userId")   String userId)
+    {
+        return recordService.getList(pageNum,pageSize,userId);
+    }
+
+    @ApiOperation(value = "金汇币记录单个详情")
+    @GetMapping("/getDetails")
+    public R recordGetDetails(@RequestParam("id") String id)
+    {
+        return R.ok(recordService.getDetails(id));
+    }
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @ApiOperation(value = "金汇币记录单个详情")
+    @PostMapping("/addData")
+    public R recordAddData(@RequestBody JinhuiGoldCoinRecordVO jinhuiGoldCoinRecordVO)
+    {
+        return recordService.addData(jinhuiGoldCoinRecordVO);
+    }
+
+    @ApiOperation(value = "金汇币记录单个详情")
+    @PostMapping("/editData")
+    public R recordEditData(@RequestBody JinhuiGoldCoinRecordVO jinhuiGoldCoinRecordVO)
+    {
+        return recordService.editData(jinhuiGoldCoinRecordVO);
+    }
+
+    @ApiOperation(value = "金汇币记录单个详情")
+    @PostMapping("/expurgateData")
+    public R recordExpurgateData(@RequestParam("id") String id)
+    {
+        return recordService.expurgateData(id);
+    }
+
+
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/config/JacksonConfig.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/config/JacksonConfig.java
new file mode 100644
index 0000000..24251f9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/config/JacksonConfig.java
@@ -0,0 +1,31 @@
+package com.panzhihua.service_jinhui_community.config;
+
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.module.SimpleModule;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
+
+@Configuration
+public class JacksonConfig {
+
+    @Bean
+    @Primary
+    @ConditionalOnMissingBean(ObjectMapper.class)
+    public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder)
+    {
+        ObjectMapper objectMapper = builder.createXmlMapper(false).build();
+
+        // 全局配置序列化返回 JSON 处理
+        SimpleModule simpleModule = new SimpleModule();
+        //JSON Long ==> String
+        simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
+        objectMapper.registerModule(simpleModule);
+        return objectMapper;
+    }
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/config/SwaggerConfig.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/config/SwaggerConfig.java
new file mode 100644
index 0000000..71db27e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/config/SwaggerConfig.java
@@ -0,0 +1,34 @@
+package com.panzhihua.service_jinhui_community.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.service.Contact;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: swagger3
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-19 16:08
+ **/
+@Configuration
+@EnableSwagger2
+public class SwaggerConfig {
+    @Bean
+    public Docket createRestApi() {
+        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).enable(true).select()
+//            .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
+            .apis(RequestHandlerSelectors.basePackage("com.chuangongzhijia.service_jinhui_community")).build();
+    }
+
+    private ApiInfo apiInfo() {
+        return new ApiInfoBuilder().title("金汇社区开发文档").description("。")
+                .contact(new Contact("李东栋", "", ""))
+            .version("1.0").build();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/ComActDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/ComActDAO.java
new file mode 100644
index 0000000..44b5a29
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/ComActDAO.java
@@ -0,0 +1,177 @@
+package com.panzhihua.service_jinhui_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.PageComActDTO;
+import com.panzhihua.common.model.dtos.community.switchs.SearchCommunityDTO;
+import com.panzhihua.common.model.vos.community.ComActPasswordVo;
+import com.panzhihua.common.model.vos.community.ComActVO;
+import com.panzhihua.common.model.vos.community.ComPopulationActVO;
+import com.panzhihua.common.model.vos.community.switchs.CommunitySwitchAllAppletsVO;
+import com.panzhihua.common.model.vos.community.switchs.StreetAllAppletsVO;
+import com.panzhihua.common.model.vos.grid.EventGridCommunityAdminVO;
+import com.panzhihua.service_jinhui_community.model.dos.ComActDO;
+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;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 社区
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 14:13
+ **/
+@Mapper
+public interface ComActDAO extends BaseMapper<ComActDO> {
+    // @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" + "c.community_id,\n" + "c.`name`,\n"
+        + "ST_Distance_Sphere ( Point ( #{lng}, #{lat} ), Point ( c.lng, c.lat ) ) AS distance \n" + "FROM\n"
+        + "com_act c \n" + " <where>" + "<if test='areaCode != null and areaCode.trim() != &quot;&quot;'>"
+        + "c.area_code = #{areaCode} \n" + " </if> " + " </where>" + "ORDER BY\n" + "distance ASC"
+        + "<if test='lng != null and lng.trim() != &quot;&quot;'>" + " limit 100 " + " </if> " + "</script>")
+    List<ComActVO> listCommunity(ComActVO comActVO);
+
+    @Select("select district_name from com_mng_struct_area_district where district_adcode=#{areaCode}")
+    String selectAreaName(String areaCode);
+
+    @Select("<script> " + "SELECT\n" + "a.* \n" + "FROM\n" + "com_act a \n" + " <where>"
+        + "<if test='pageComActDTO.name != null and pageComActDTO.name.trim() != &quot;&quot;'>"
+        + "and a.name LIKE concat( #{pageComActDTO.name}, '%' ) \n" + " </if> "
+        + "<if test='pageComActDTO.areaCode != null and pageComActDTO.areaCode.trim() != &quot;&quot;'>"
+        + "AND a.area_code = #{pageComActDTO.areaCode} \n" + " </if> "
+        + "<if test='pageComActDTO.createAtBegin != null '>"
+            + "AND a.create_at BETWEEN "
+        + "#{pageComActDTO.createAtBegin} \n" + "AND #{pageComActDTO.createAtEnd}" + " </if> " + " </where>"
+        + " order by a.create_at desc" + "</script>")
+    IPage<ComActVO> pageCommunity(Page page, @Param("pageComActDTO") PageComActDTO pageComActDTO);
+
+    @Update("update sys_user u set u.password=#{password} where u.account=#{account} and u.type=3 and u.community_id = ${communityId}")
+    void updateAccountPassword(@Param("password") String password, @Param("account") String account,
+        @Param("communityId") Long communityId);
+
+    @Select("select community_id,`name`,lng,lat from com_act where state = 0 and app_id =#{appId}")
+    List<EventGridCommunityAdminVO> getCommunityLists(@Param("appId") String appId);
+
+    @Select("select ca.`name`,cmsap.province_name,cmsac.city_name,cmsad.district_name,ca.street_id,ca.community_id,cs.`name` as streetName from com_act as ca \n"
+        + "left join com_mng_struct_area_province as cmsap on cmsap.province_adcode = ca.province_code\n"
+        + "left join com_mng_struct_area_city as cmsac on cmsac.city_adcode = ca.city_code\n"
+        + "left join com_mng_struct_area_district as cmsad on cmsad.district_adcode = ca.area_code\n"
+        + "left join com_street as cs on cs.street_id = ca.street_id\n" + "where ca.community_id = ${communityId}")
+    ComPopulationActVO getPopulationActById(@Param("communityId") Long communityId);
+
+    @Select("select `name`,street_id from com_street where app_id = #{appId}")
+    List<StreetAllAppletsVO> getStreetList(String appId);
+
+    @Select("select ca.`name`,ca.street_id,ca.community_id,cs.`name` as streetName from com_act as ca left join com_street as cs on cs.street_id = ca.street_id where ca.state = 0 and ca.street_id = #{streetId}")
+    List<CommunitySwitchAllAppletsVO> getCommunityListByStreetId(@Param("streetId") Long streetId);
+
+    @Select("<script> select ca.`name`,ca.street_id,ca.community_id,cs.`name` as streetName " +
+            "from com_act as ca " +
+            "left join com_street as cs on cs.street_id = ca.street_id " +
+            "where ca.state = 0 and ca.name like concat('%',#{name},'%') <if test='appId !=null and appId !=&quot;&quot;'> and cs.app_id = #{appId} </if> </script> ")
+    List<CommunitySwitchAllAppletsVO> getCommunityListByName(@Param("name") String name,@Param("appId") String appId);
+
+    @Select("SELECT   c.community_id,    c.`name`,    c.street_id,    cs.`name` as streetName," +
+            "round( ST_Distance_Sphere ( Point ( #{communityDTO.longitude}, #{communityDTO.latitude} ), Point ( c.lng, c.lat ) )/ 1000, 2 ) AS distance  " +
+            "FROM    com_act c     left join com_street as cs on cs.street_id = c.street_id  " +
+            "where cs.area_code = #{communityDTO.areaCode} " +
+            "HAVING distance >= 0 and distance <= #{communityDTO.distance}   ORDER BY    distance ASC")
+    List<CommunitySwitchAllAppletsVO> getCommunityListByNearby(@Param("communityDTO") SearchCommunityDTO communityDTO);
+
+    @Select("<script> select community_id,name,lng,lat from com_act  where state = 0 <if test='areaCode !=null and areaCode !=&quot;&quot;'> and area_code = #{areaCode} </if> </script>")
+    List<EventGridCommunityAdminVO> getWestCommunityLists(@Param("areaCode") String areCode);
+
+    @Select("select account,plaintext_password as password from com_act where community_id = #{communityId}")
+    ComActPasswordVo getCommunityPassword(@Param("communityId") Long communityId);
+
+    @Select("select name from com_pb_check_unit where id=#{id}")
+    String getUnitName(@Param("id") Long unitId);
+
+    @Select("select count(id) from com_pb_check_unit")
+    Integer getUnitCount();
+
+    @Select("select count(id) from com_pb_member where audit_result=1")
+    Integer selectUnitCount();
+
+    @Select("select count(id) from com_pb_check_unit")
+    Integer selectMemberCount();
+
+    @Select("select name from com_pb_check_unit where id=#{id}")
+    String selectUnitName(@Param("id") Long id);
+
+    @Select("select community_id from com_act where street_id=#{id}")
+    List<Long> selectCommunityByStreetId(Long id);
+    @Select("SELECT  caa.community_id FROM com_act caa WHERE caa.`name` = ( select ca.`name` FROM com_act ca WHERE ca.community_id =#{id})")
+    List<Long> selectIds(@Param("id") Long id);
+
+
+    /**
+     * 统计全部社区/村落数量
+     * @return
+     */
+    @Select("SELECT count(1) FROM `com_act` WHERE app_id = 'wx118de8a734d269f0' and community_id not in ( 11 ,22)")
+    Integer countCommunity();
+
+    /**
+     * 统计实有人口数
+     * @return
+     */
+    @Select(" SELECT count(1) FROM com_mng_population WHERE death = 0")
+    Integer countPopulation();
+
+    /**
+     * 统计实有房屋数
+     * @return
+     */
+    @Select(" SELECT count(1) FROM com_mng_population_house")
+    Integer countPopulationHouse();
+
+
+    /**
+     * 统计报道在职干部 西区+花城
+     * @return
+     */
+    @Select("  SELECT sum(a.member) FROM (SELECT count(1) member FROM com_pb_member union all  SELECT count(1) member FROM com_pb_member_west) a")
+    Integer countPbMember();
+    /**
+     * 统计报到单位
+     * @return
+     */
+    @Select("  SELECT count(1) FROM com_pb_check_unit")
+    Integer countPbUnit();
+
+    /**
+     * 统计商家
+     * @return
+     */
+    @Select(" SELECT count(1) FROM com_convenient_merchants WHERE is_del = 0")
+    Integer countMerchants();
+
+    /**
+     * 统计自愿者
+     * @return
+     */
+    @Select("SELECT count(1) FROM sys_user WHERE is_volunteer = 1")
+    Integer countVolunteer();
+
+    /**
+     * 统计社会组织
+     * @return
+     */
+    @Select("SELECT count(1) FROM com_act_social_org")
+    Integer countSocialOrg();
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinghuiMerchantEvaluateDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinghuiMerchantEvaluateDao.java
new file mode 100644
index 0000000..d1109d8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinghuiMerchantEvaluateDao.java
@@ -0,0 +1,38 @@
+package com.panzhihua.service_jinhui_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.vos.jinhui.JinghuiMerchantEvaluateVO;
+import com.panzhihua.service_jinhui_community.entity.JinghuiMerchantEvaluate;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface JinghuiMerchantEvaluateDao extends BaseMapper<JinghuiMerchantEvaluate>
+{
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    IPage<JinghuiMerchantEvaluate> getList(Page page,
+                                           @Param("merchantId") String merchantId);
+
+    JinghuiMerchantEvaluate getDetails(@Param("id") String id);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    int addData(@Param("item") JinghuiMerchantEvaluateVO item);
+
+
+    int editData(@Param("item") JinghuiMerchantEvaluateVO item);
+
+
+    int expurgateData(@Param("id") String id);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiApplyExperienceDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiApplyExperienceDao.java
new file mode 100644
index 0000000..cd696bf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiApplyExperienceDao.java
@@ -0,0 +1,63 @@
+package com.panzhihua.service_jinhui_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.vos.jinhui.JinhuiApplyExperienceVO;
+import com.panzhihua.common.model.vos.jinhui.JinhuiShoppingVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiApplyExperience;
+import com.panzhihua.service_jinhui_community.entity.JinhuiShopping;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface JinhuiApplyExperienceDao extends BaseMapper<JinhuiApplyExperience>
+{
+    /**
+     * 列表
+     * @param
+     * @return
+     */
+    IPage<JinhuiApplyExperience> getList(Page page,
+                                         @Param("userId") String userId,
+                                         @Param("activityId") String activityId,
+                                         @Param("isFeedback") String isFeedback);
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    JinhuiApplyExperience getDetails(@Param("id") String id,
+                                     @Param("userId") String userId,
+                                     @Param("activityId") String activityId);
+
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    int addData(@Param("item") JinhuiApplyExperienceVO item);
+
+
+    /**
+     * 编辑
+     * @param item
+     * @return
+     */
+    int editData(@Param("item") JinhuiApplyExperienceVO item);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    int expurgateData(@Param("id") String id);
+
+
+    int getNum(@Param("userId") String userId,
+               @Param("isFeedback") String isFeedback,
+               @Param("activityId") String activityId);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiArticleManagementDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiArticleManagementDao.java
new file mode 100644
index 0000000..15300df
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiArticleManagementDao.java
@@ -0,0 +1,53 @@
+package com.panzhihua.service_jinhui_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.vos.jinhui.JinhuiArticleManagementVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiArticleManagement;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface JinhuiArticleManagementDao extends BaseMapper<JinhuiArticleManagement>
+{
+    /**
+     * 列表
+     * @param
+     * @return
+     */
+    IPage<JinhuiArticleManagement> getList(Page page,
+                                           @Param("articleType") String articleType,
+                                           @Param("conditionType") String conditionType);
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    JinhuiArticleManagement getDetails(@Param("id") String id);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    int addData(@Param("item") JinhuiArticleManagementVO item);
+
+
+    /**
+     * 编辑
+     * @param item
+     * @return
+     */
+    int editData(@Param("item") JinhuiArticleManagementVO item);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    int expurgateData(@Param("id") String id);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiCharityDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiCharityDao.java
new file mode 100644
index 0000000..6dcc6e5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiCharityDao.java
@@ -0,0 +1,59 @@
+package com.panzhihua.service_jinhui_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.vos.jinhui.JinhuiCharityVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiCharity;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface JinhuiCharityDao extends BaseMapper<JinhuiCharity>
+{
+    /**
+     * 列表
+     * @param
+     * @return
+     */
+    IPage<JinhuiCharity> getList(Page page,
+                                 @Param("title") String title,
+                                 @Param("label") String label,
+                                 @Param("state") String state);
+
+
+    List<JinhuiCharity> getJinhuiCharityList();
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    JinhuiCharity getDetails(@Param("id") String id);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    int addData(@Param("item") JinhuiCharityVO item);
+
+
+    /**
+     * 编辑
+     * @param item
+     * @return
+     */
+    int editData(@Param("item") JinhuiCharityVO item);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    int expurgateData(@Param("id") String id);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiCoinGeneralTableDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiCoinGeneralTableDao.java
new file mode 100644
index 0000000..703077a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiCoinGeneralTableDao.java
@@ -0,0 +1,39 @@
+package com.panzhihua.service_jinhui_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.vos.jinhui.JinhuiCoinGeneralTableVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiCoinGeneralTable;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface JinhuiCoinGeneralTableDao extends BaseMapper<JinhuiCoinGeneralTable>
+{
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    IPage<JinhuiCoinGeneralTable> getList(Page page,@Param("type") String type);
+
+
+
+    JinhuiCoinGeneralTable getDetails(@Param("userId") String userId);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    int addData(@Param("item") JinhuiCoinGeneralTableVO item);
+
+
+    int editData(@Param("item") JinhuiCoinGeneralTableVO item);
+
+
+    int expurgateData(@Param("id") String id);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiComActQuestnaireSubDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiComActQuestnaireSubDao.java
new file mode 100644
index 0000000..7e0c367
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiComActQuestnaireSubDao.java
@@ -0,0 +1,12 @@
+package com.panzhihua.service_jinhui_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_jinhui_community.entity.JinhuiComActQuestnaireSub;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @Author: llming
+ * @Description: 办事指南题目
+ */
+@Mapper
+public interface JinhuiComActQuestnaireSubDao extends BaseMapper<JinhuiComActQuestnaireSub> {}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiComActQuestnaireSubSelectionDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiComActQuestnaireSubSelectionDao.java
new file mode 100644
index 0000000..9367c01
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiComActQuestnaireSubSelectionDao.java
@@ -0,0 +1,12 @@
+package com.panzhihua.service_jinhui_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_jinhui_community.entity.JinhuiComActQuestnaireSubSelection;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @Author: llming
+ * @Description: 问卷题目选项
+ */
+@Mapper
+public interface JinhuiComActQuestnaireSubSelectionDao extends BaseMapper<JinhuiComActQuestnaireSubSelection> {}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiComActWorkGuideClassifyDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiComActWorkGuideClassifyDao.java
new file mode 100644
index 0000000..801a2dd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiComActWorkGuideClassifyDao.java
@@ -0,0 +1,33 @@
+package com.panzhihua.service_jinhui_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.vos.community.ComActWorkGuideAppletsVO;
+import com.panzhihua.common.model.vos.community.ComActWorkGuideClassifyVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiComActWorkGuideClassify;
+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 JinhuiComActWorkGuideClassifyDao extends BaseMapper<JinhuiComActWorkGuideClassify> {
+    IPage<ComActWorkGuideClassifyVO> pageWorkGuideClassify(Page page,
+                                                           @Param("comActWorkGuideClassifyVO") ComActWorkGuideClassifyVO comActWorkGuideClassifyVO);
+
+    /**
+     * 查询办事指南分类列表
+     * @return  办事指南分类列表
+     */
+    List<ComActWorkGuideAppletsVO> listWorkGuideClassify(String areaCode);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiComActWorkGuideDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiComActWorkGuideDAO.java
new file mode 100644
index 0000000..0c0ec21
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiComActWorkGuideDAO.java
@@ -0,0 +1,39 @@
+package com.panzhihua.service_jinhui_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.PageActWorkGuideDTO;
+import com.panzhihua.common.model.vos.community.ComActWorkGuideDetailAppletsVO;
+import com.panzhihua.common.model.vos.community.ComActWorkGuideVO;
+import com.panzhihua.common.model.vos.jinhui.JinhuiGoldCoinRecordVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiComActWorkGuide;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @description: 办事指南
+ **/
+@Mapper
+public interface JinhuiComActWorkGuideDAO extends BaseMapper<JinhuiComActWorkGuide>
+{
+    IPage<ComActWorkGuideVO> pageWorkGuide(Page page, @Param("pageActWorkGuideDTO") PageActWorkGuideDTO pageActWorkGuideDTO);
+
+    /**
+     * 根据办事指南分类id查询办事指南
+     * @param classifyId    办事指南分类id
+     * @param pageSize    默认展示条数
+     * @return  办事指南列表
+     */
+    List<ComActWorkGuideDetailAppletsVO> getWorkGuideListByClassifyId(@Param("classifyId") String classifyId,
+                                                                      @Param("pageSize") String pageSize,
+                                                                      @Param("isOnLine") String isOnLine);
+
+
+
+    void deleteQuesSubAll(@Param("queId") String queId);
+
+    void deleteQuesSubAll2(@Param("queId") String queId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiComActWorkGuideMaterialDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiComActWorkGuideMaterialDao.java
new file mode 100644
index 0000000..0465e39
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiComActWorkGuideMaterialDao.java
@@ -0,0 +1,11 @@
+package com.panzhihua.service_jinhui_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_jinhui_community.entity.JinhuiComActWorkGuideMaterial;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @description: 办事指南材料
+ **/
+@Mapper
+public interface JinhuiComActWorkGuideMaterialDao extends BaseMapper<JinhuiComActWorkGuideMaterial> {}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiComConvenientServiceCategoriesDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiComConvenientServiceCategoriesDao.java
new file mode 100644
index 0000000..baccdf9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiComConvenientServiceCategoriesDao.java
@@ -0,0 +1,54 @@
+package com.panzhihua.service_jinhui_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.vos.jinhui.JinhuiComConvenientServiceCategoriesVO;
+import com.panzhihua.common.model.vos.jinhui.JinhuiGoldCoinRecordVO;
+import com.panzhihua.common.model.vos.jinhui.JinhuiShoppingVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiComConvenientServiceCategories;
+import com.panzhihua.service_jinhui_community.entity.JinhuiGoldCoinRecord;
+import com.panzhihua.service_jinhui_community.entity.JinhuiShopping;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface JinhuiComConvenientServiceCategoriesDao extends BaseMapper<JinhuiComConvenientServiceCategories>
+{
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    IPage<JinhuiComConvenientServiceCategories> getList(Page page);
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    JinhuiComConvenientServiceCategories getDetails(@Param("id") String id);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    int addData(@Param("item") JinhuiComConvenientServiceCategoriesVO item);
+
+
+    /**
+     * 编辑
+     * @param item
+     * @return
+     */
+    int editData(@Param("item") JinhuiComConvenientServiceCategoriesVO item);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    int expurgateData(@Param("id") String id);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiConfigDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiConfigDao.java
new file mode 100644
index 0000000..65a4e3c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiConfigDao.java
@@ -0,0 +1,43 @@
+package com.panzhihua.service_jinhui_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.common.model.vos.jinhui.JinhuiConfigVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiConfig;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface JinhuiConfigDao extends BaseMapper<JinhuiConfig>
+{
+
+    /**
+     * 详情
+     * @param communityId
+     * @return
+     */
+    JinhuiConfig getDetails(@Param("communityId") String communityId);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    int addData(@Param("item") JinhuiConfigVO item);
+
+
+    /**
+     * 编辑
+     * @param item
+     * @return
+     */
+    int editData(@Param("item") JinhuiConfigVO item);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    int expurgateData(@Param("communityId") String communityId);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiConvenientMerchantDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiConvenientMerchantDao.java
new file mode 100644
index 0000000..a609d91
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiConvenientMerchantDao.java
@@ -0,0 +1,62 @@
+package com.panzhihua.service_jinhui_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.PageBaseDTO;
+import com.panzhihua.common.model.dtos.community.convenient.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.StatisticsCommVO;
+import com.panzhihua.common.model.vos.community.bigscreen.BigScreenMerchantStatisticsInfo;
+import com.panzhihua.common.model.vos.community.convenient.*;
+import com.panzhihua.common.model.vos.jinhui.JinhuiShoppingVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiConvenientMerchant;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @title: ConvenientMerchantDAO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务商家DAO
+ * @author: hans
+ * @date: 2021/09/16 16:13
+ */
+@Mapper
+public interface JinhuiConvenientMerchantDao extends BaseMapper<JinhuiConvenientMerchant>
+{
+    /**
+     * 删除便民服务商家
+     *
+     * @param merchantId
+     * @param operator
+     * @return
+     */
+    int deleteMerchantById(@Param("merchantId") String merchantId);
+
+    /**
+     * 分页查询便民服务商家 运营后台
+     *
+     * @param page                      分页参数
+     * @param item
+     * @return
+     */
+    IPage<JinhuiConvenientMerchant> pageMerchant(@Param("page") Page page,
+                                                   @Param("item") JinhuiPageConvenientMerchantDTO item);
+
+    /**
+     * 查询商家信息
+     *
+     * @param merchantId
+     * @return
+     */
+    JinhuiConvenientMerchantVO selectMerchantById(@Param("merchantId") String merchantId);
+
+
+    int addData(@Param("item") JinhuiConvenientMerchantVO item);
+
+    int editData(@Param("item") JinhuiConvenientMerchantVO item);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiExperienceActivityDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiExperienceActivityDao.java
new file mode 100644
index 0000000..03ad0b4e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiExperienceActivityDao.java
@@ -0,0 +1,60 @@
+package com.panzhihua.service_jinhui_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.vos.jinhui.JinhuiExperienceActivityVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiExperienceActivity;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+
+@Mapper
+public interface JinhuiExperienceActivityDao extends BaseMapper<JinhuiExperienceActivity>
+{
+    /**
+     * 列表
+     * @param
+     * @return
+     */
+    IPage<JinhuiExperienceActivity> getList(Page page,
+                                           @Param("activityName") String activityName,
+                                           @Param("activityType") String activityType,
+                                           @Param("starTime") Date starTime,
+                                           @Param("endTime") Date endTime);
+
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    JinhuiExperienceActivity getDetails(@Param("id") String id,@Param("userId") String userId);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    int addData(@Param("item") JinhuiExperienceActivityVO item);
+
+
+    /**
+     * 编辑
+     * @param item
+     * @return
+     */
+    int editData(@Param("item") JinhuiExperienceActivityVO item);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    int expurgateData(@Param("id") String id);
+
+
+    List<JinhuiExperienceActivity> getTimeList();
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiGoldCoinRecordDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiGoldCoinRecordDao.java
new file mode 100644
index 0000000..c2ee581
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiGoldCoinRecordDao.java
@@ -0,0 +1,41 @@
+package com.panzhihua.service_jinhui_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.vos.jinhui.JinhuiCoinGeneralTableVO;
+import com.panzhihua.common.model.vos.jinhui.JinhuiGoldCoinRecordVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiCoinGeneralTable;
+import com.panzhihua.service_jinhui_community.entity.JinhuiGoldCoinRecord;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface JinhuiGoldCoinRecordDao extends BaseMapper<JinhuiGoldCoinRecord>
+{
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    IPage<JinhuiGoldCoinRecord> getList(Page page,@Param("userId") String userId);
+
+
+
+    JinhuiGoldCoinRecord getDetails(@Param("id") String id);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    int addData(@Param("item") JinhuiGoldCoinRecordVO item);
+
+
+    int editData(@Param("item") JinhuiGoldCoinRecordVO item);
+
+
+    int expurgateData(@Param("id") String id);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiInterspaceApplyForDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiInterspaceApplyForDao.java
new file mode 100644
index 0000000..12dbac0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiInterspaceApplyForDao.java
@@ -0,0 +1,47 @@
+package com.panzhihua.service_jinhui_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.vos.jinhui.JinhuiInterspaceApplyForVO;
+import com.panzhihua.common.model.vos.jinhui.JinhuiInterspaceVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiInterspace;
+import com.panzhihua.service_jinhui_community.entity.JinhuiInterspaceApplyFor;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface JinhuiInterspaceApplyForDao extends BaseMapper<JinhuiInterspaceApplyFor>
+{
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    IPage<JinhuiInterspaceApplyFor> getList(Page page,
+                                            @Param("intendantType") String intendantType,
+                                            @Param("state") String state,
+                                            @Param("interspaceTime") String interspaceTime,
+                                            @Param("subscribeTimeFrame") String subscribeTimeFrame,
+                                            @Param("interspaceId") String interspaceId,
+                                            @Param("userId") String userId);
+
+
+
+    JinhuiInterspaceApplyFor getDetails(@Param("id") String id);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    int addData(@Param("item") JinhuiInterspaceApplyForVO item);
+
+
+    int editData(@Param("item") JinhuiInterspaceApplyForVO item);
+
+
+    int expurgateData(@Param("id") String id);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiInterspaceDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiInterspaceDao.java
new file mode 100644
index 0000000..0ef2d21
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiInterspaceDao.java
@@ -0,0 +1,41 @@
+package com.panzhihua.service_jinhui_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.vos.jinhui.JinhuiGoldCoinRecordVO;
+import com.panzhihua.common.model.vos.jinhui.JinhuiInterspaceVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiGoldCoinRecord;
+import com.panzhihua.service_jinhui_community.entity.JinhuiInterspace;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface JinhuiInterspaceDao extends BaseMapper<JinhuiInterspace>
+{
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    IPage<JinhuiInterspace> getList(Page page,@Param("intendantType") String intendantType);
+
+
+
+    JinhuiInterspace getDetails(@Param("id") String id);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    int addData(@Param("item") JinhuiInterspaceVO item);
+
+
+    int editData(@Param("item") JinhuiInterspaceVO item);
+
+
+    int expurgateData(@Param("id") String id);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiInterspaceTypeDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiInterspaceTypeDao.java
new file mode 100644
index 0000000..8416575
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiInterspaceTypeDao.java
@@ -0,0 +1,39 @@
+package com.panzhihua.service_jinhui_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.vos.jinhui.JinhuiInterspaceTypeVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiInterspaceType;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface JinhuiInterspaceTypeDao extends BaseMapper<JinhuiInterspaceType>
+{
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    IPage<JinhuiInterspaceType> getList(Page page);
+
+
+
+    JinhuiInterspaceType getDetails(@Param("id") String id);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    int addData(@Param("item") JinhuiInterspaceTypeVO item);
+
+
+    int editData(@Param("item") JinhuiInterspaceTypeVO item);
+
+
+    int expurgateData(@Param("id") String id);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiLargeScreenDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiLargeScreenDao.java
new file mode 100644
index 0000000..7fea918
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiLargeScreenDao.java
@@ -0,0 +1,140 @@
+package com.panzhihua.service_jinhui_community.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.common.model.vos.jinhui.*;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface JinhuiLargeScreenDao extends BaseMapper<String>
+{
+    /**
+     * 获取金汇风采数量
+     * @param
+     * @return
+     */
+    String getMienNum(@Param("communityId") String communityId);
+
+    /**
+     * 获取志愿者服务
+     * @return
+     */
+    String getVolunteerServeNum(@Param("communityId") String communityId);
+
+    /**
+     * 获取微心愿数量
+     * @param
+     * @return
+     */
+    String getMicroVolunteeringNum(@Param("state") String state);
+
+
+    /**
+     * 便民服务商家
+     * @return
+     */
+    String getConvenientMerchantsNum(@Param("auditType") String auditType);
+
+    /**
+     * 商家分类统计
+     * @return
+     */
+    List<JinhuiMerchantTypeVO> getMerchantTypeNum();
+
+    /**
+     * 办事直指南
+     * @return
+     */
+    String getWorkGuideNum();
+
+    /**
+     * 空间预约
+     * @return
+     */
+    String getInterspaceApplyNum(@Param("state") String state);
+
+
+    /**
+     * 商城订单
+     * @param cancelType
+     * @return
+     */
+    String getShoppingOrderNum(@Param("cancelType") String cancelType);
+
+    /**
+     * 获取党员  志愿者
+     * @param communityId
+     * @return
+     */
+    JinhuiCommunityServicesVO baseInfo(@Param("communityId") String communityId);
+
+    /**
+     * 获取社区工作者
+     * @param communityId
+     * @return
+     */
+    String getServiceTeam(@Param("communityId") String communityId,
+                          @Param("type") String type);
+
+
+    /******************************************************************************************************************
+     *
+     *
+     *                               手环列表
+     *
+     *
+     ****************************************************************************************************************/
+
+
+    /**
+     * 老人手环异常列表数量统计
+     * @return
+     */
+    String getEarlyWarningNum(@Param("disposeType") String disposeType,@Param("communityId") String communityId);
+
+
+    /**
+     * 老人手环异常列表
+     */
+    List<JinhuiOldManVO> getEarlyWarningList(@Param("disposeType") String disposeType,@Param("communityId") String communityId);
+
+    /**
+     * 老人手环用户数量
+     * @return
+     */
+    String getBraceletUser(@Param("sex") String  sex,@Param("communityId") String communityId);
+
+
+    /**
+     * 新增折线数据
+     * @return
+     */
+    List<JinhuiOldManBrokenLineVO> getEventAddPolylineData(@Param("communityId") String  communityId);
+
+    /**
+     * 累计折线数据
+     */
+    String getEventTotalPolylineDate(@Param("communityId") String communityId,@Param("date") String date);
+
+
+    /**
+     * 获取用户定位  状态
+     * @param communityId
+     * @return
+     */
+    List<JinhuiOldManUserDateVO> getOldManUserDate(@Param("communityId") String communityId);
+
+    /**
+     * 获取单独用户状态
+     * @param communityId
+     * @param equipmentNumber
+     * @return
+     */
+    String getEarlyNewDate(@Param("communityId") String communityId,@Param("equipmentNumber") String equipmentNumber);
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiMicroVolunteeringDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiMicroVolunteeringDao.java
new file mode 100644
index 0000000..6bbb410
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiMicroVolunteeringDao.java
@@ -0,0 +1,43 @@
+package com.panzhihua.service_jinhui_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.vos.jinhui.JinhuiInterspaceVO;
+import com.panzhihua.common.model.vos.jinhui.JinhuiMicroVolunteeringVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiInterspace;
+import com.panzhihua.service_jinhui_community.entity.JinhuiMicroVolunteering;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface JinhuiMicroVolunteeringDao extends BaseMapper<JinhuiMicroVolunteering>
+{
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    IPage<JinhuiMicroVolunteering> getList(Page page,
+                                           @Param("userId") String userId,
+                                           @Param("state") String state);
+
+
+
+    JinhuiMicroVolunteering getDetails(@Param("id") String id);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    int addData(@Param("item") JinhuiMicroVolunteeringVO item);
+
+
+    int editData(@Param("item") JinhuiMicroVolunteeringVO item);
+
+
+    int expurgateData(@Param("id") String id);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiMicroVolunteeringTypeDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiMicroVolunteeringTypeDao.java
new file mode 100644
index 0000000..9ef0b6e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiMicroVolunteeringTypeDao.java
@@ -0,0 +1,41 @@
+package com.panzhihua.service_jinhui_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.vos.jinhui.JinhuiInterspaceTypeVO;
+import com.panzhihua.common.model.vos.jinhui.JinhuiMicroVolunteeringTypeVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiInterspaceType;
+import com.panzhihua.service_jinhui_community.entity.JinhuiMicroVolunteeringType;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface JinhuiMicroVolunteeringTypeDao extends BaseMapper<JinhuiMicroVolunteeringType>
+{
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    IPage<JinhuiMicroVolunteeringType> getList(Page page);
+
+
+
+    JinhuiMicroVolunteeringType getDetails(@Param("id") String id);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    int addData(@Param("item") JinhuiMicroVolunteeringTypeVO item);
+
+
+    int editData(@Param("item") JinhuiMicroVolunteeringTypeVO item);
+
+
+    int expurgateData(@Param("id") String id);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiQuestnaireUserAnswerDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiQuestnaireUserAnswerDao.java
new file mode 100644
index 0000000..e6b72ec
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiQuestnaireUserAnswerDao.java
@@ -0,0 +1,56 @@
+package com.panzhihua.service_jinhui_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.vos.jinhui.JinhuiQuestnaireUserAnswerVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiQuestnaireUserAnswer;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface JinhuiQuestnaireUserAnswerDao extends BaseMapper<JinhuiQuestnaireUserAnswer>
+{
+    /**
+     * 列表
+     * @param
+     * @return
+     */
+    IPage<JinhuiQuestnaireUserAnswer> getList(Page page,
+                                           @Param("userId") String userId,
+                                           @Param("transactType") String transactType);
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    JinhuiQuestnaireUserAnswer getDetails(@Param("id") String id,
+                                          @Param("questnaireId") String questnaireId,
+                                          @Param("userId") String userId,
+                                          @Param("transactType") String transactType);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    int addData(@Param("item") JinhuiQuestnaireUserAnswerVO item);
+
+
+    /**
+     * 编辑
+     * @param item
+     * @return
+     */
+    int editData(@Param("item") JinhuiQuestnaireUserAnswerVO item);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    int expurgateData(@Param("id") String id);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiReseauDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiReseauDao.java
new file mode 100644
index 0000000..c4995e6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiReseauDao.java
@@ -0,0 +1,56 @@
+package com.panzhihua.service_jinhui_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.vos.jinhui.JinhuiReseauVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiReseau;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface JinhuiReseauDao extends BaseMapper<JinhuiReseau>
+{
+    /**
+     * 列表
+     * @param
+     * @return
+     */
+    IPage<JinhuiReseau> getList(Page page);
+
+
+    List<JinhuiReseau> getBoxList();
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    JinhuiReseau getDetails(@Param("id") String id);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    int addData(@Param("item") JinhuiReseauVO item);
+
+
+    /**
+     * 编辑
+     * @param item
+     * @return
+     */
+    int editData(@Param("item") JinhuiReseauVO item);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    int expurgateData(@Param("id") String id);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiReseauPeopleDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiReseauPeopleDao.java
new file mode 100644
index 0000000..3e1e152
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiReseauPeopleDao.java
@@ -0,0 +1,57 @@
+package com.panzhihua.service_jinhui_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.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.jinhui.JinhuiReseauPeopleVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiReseauPeople;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface JinhuiReseauPeopleDao extends BaseMapper<JinhuiReseauPeople>
+{
+    /**
+     * 列表
+     * @param
+     * @return
+     */
+    IPage<JinhuiReseauPeople> getList(Page page);
+
+
+    IPage<LoginUserInfoVO> getUserList(Page page,
+                                       @Param("communityId") String communityId,
+                                       @Param("nameAndPhone") String nameAndPhone);
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    JinhuiReseauPeople getDetails(@Param("id") String id);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    int addData(@Param("item") JinhuiReseauPeopleVO item);
+
+
+    /**
+     * 编辑
+     * @param item
+     * @return
+     */
+    int editData(@Param("item") JinhuiReseauPeopleVO item);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    int expurgateData(@Param("id") String id);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiShoppingDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiShoppingDao.java
new file mode 100644
index 0000000..c302f6f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiShoppingDao.java
@@ -0,0 +1,54 @@
+package com.panzhihua.service_jinhui_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.vos.jinhui.JinhuiShoppingVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiShopping;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface JinhuiShoppingDao extends BaseMapper<JinhuiShopping>
+{
+    /**
+     * 列表
+     * @param
+     * @return
+     */
+    IPage<JinhuiShopping> getList(Page page,
+                                           @Param("goodName") String goodName,
+                                           @Param("goodType") String goodType,
+                                           @Param("id") String id);
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    JinhuiShopping getDetails(@Param("id") String id,@Param("communityId") String communityId);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    int addData(@Param("item") JinhuiShoppingVO item);
+
+
+    /**
+     * 编辑
+     * @param item
+     * @return
+     */
+    int editData(@Param("item") JinhuiShoppingVO item);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    int expurgateData(@Param("id") String id);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiShoppingOrderDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiShoppingOrderDao.java
new file mode 100644
index 0000000..163d456
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiShoppingOrderDao.java
@@ -0,0 +1,61 @@
+package com.panzhihua.service_jinhui_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.vos.jinhui.JinhuiShoppingOrderVO;
+import com.panzhihua.common.model.vos.jinhui.JinhuiShoppingVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiShopping;
+import com.panzhihua.service_jinhui_community.entity.JinhuiShoppingOrder;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface JinhuiShoppingOrderDao extends BaseMapper<JinhuiShoppingOrder>
+{
+    /**
+     * 列表
+     * @param
+     * @return
+     */
+    IPage<JinhuiShoppingOrder> getList(Page page,
+                                           @Param("userId") String userId,
+                                           @Param("goodsId") String goodsId,
+                                           @Param("orderNumber") String orderNumber,
+                                           @Param("goodName") String goodName,
+                                           @Param("name") String name,
+                                           @Param("cancelType") String cancelType,
+                                           @Param("communityId") String communityId);
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    JinhuiShoppingOrder getDetails(@Param("id") String id,
+                                   @Param("communityId") String communityId);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    int addData(@Param("item") JinhuiShoppingOrderVO item);
+
+
+    /**
+     * 编辑
+     * @param item
+     * @return
+     */
+    int editData(@Param("item") JinhuiShoppingOrderVO item);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    int expurgateData(@Param("id") String id);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiSnapshotClassifyDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiSnapshotClassifyDao.java
new file mode 100644
index 0000000..179f513
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiSnapshotClassifyDao.java
@@ -0,0 +1,51 @@
+package com.panzhihua.service_jinhui_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.vos.jinhui.JinhuiSnapshotClassifyVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiSnapshotClassify;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface JinhuiSnapshotClassifyDao extends BaseMapper<JinhuiSnapshotClassify>
+{
+    /**
+     * 列表
+     * @param
+     * @return
+     */
+    IPage<JinhuiSnapshotClassify> getList(Page page);
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    JinhuiSnapshotClassify getDetails(@Param("id") String id);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    int addData(@Param("item") JinhuiSnapshotClassifyVO item);
+
+
+    /**
+     * 编辑
+     * @param item
+     * @return
+     */
+    int editData(@Param("item") JinhuiSnapshotClassifyVO item);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    int expurgateData(@Param("id") String id);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiSnapshotDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiSnapshotDao.java
new file mode 100644
index 0000000..f33a607
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/dao/JinhuiSnapshotDao.java
@@ -0,0 +1,51 @@
+package com.panzhihua.service_jinhui_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.vos.jinhui.JinhuiSnapshotVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiSnapshot;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface JinhuiSnapshotDao extends BaseMapper<JinhuiSnapshot>
+{
+    /**
+     * 列表
+     * @param
+     * @return
+     */
+    IPage<JinhuiSnapshot> getList(Page page);
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    JinhuiSnapshot getDetails(@Param("id") String id);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    int addData(@Param("item") JinhuiSnapshotVO item);
+
+
+    /**
+     * 编辑
+     * @param item
+     * @return
+     */
+    int editData(@Param("item") JinhuiSnapshotVO item);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    int expurgateData(@Param("id") String id);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinghuiMerchantEvaluate.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinghuiMerchantEvaluate.java
new file mode 100644
index 0000000..e0d2126
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinghuiMerchantEvaluate.java
@@ -0,0 +1,60 @@
+package com.panzhihua.service_jinhui_community.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇商家评价表")
+public class JinghuiMerchantEvaluate implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+
+    @ApiModelProperty(value = "主键id")
+    private String id;
+
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+
+    @ApiModelProperty(value = "商家id")
+    private String merchantId;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    @ApiModelProperty(value = "内容")
+    private String content;
+
+    @ApiModelProperty(value = "图片url")
+    private String imgUrl;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "评论人姓名")
+    private String userName;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "评论人头像")
+    private String userUrl;
+
+
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiApplyExperience.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiApplyExperience.java
new file mode 100644
index 0000000..581bcc2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiApplyExperience.java
@@ -0,0 +1,64 @@
+package com.panzhihua.service_jinhui_community.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇报名体验表")
+public class JinhuiApplyExperience implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "参加人id")
+    private String userId;
+
+    @ApiModelProperty(value = "体验内容")
+    private String experienceContent;
+
+    @ApiModelProperty(value = "活动id")
+    private String activityId;
+
+    @ApiModelProperty(value = "是否反馈(0没有  1有)")
+    private String isFeedback;
+
+    @ApiModelProperty(value = "体验提交时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date uploadingTime;
+
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "活动标题")
+    private String title;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "活动封面")
+    private String coverImgUrl;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "活动状态(1待开始  2报名中  3已开始  4已结束 5已取消)")
+    private String activityType;
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiArticleManagement.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiArticleManagement.java
new file mode 100644
index 0000000..990b87d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiArticleManagement.java
@@ -0,0 +1,51 @@
+package com.panzhihua.service_jinhui_community.entity;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇文章管理")
+public class JinhuiArticleManagement implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "标题")
+    private String title;
+
+    @ApiModelProperty(value = "封面")
+    private String coverUrl;
+
+    @ApiModelProperty(value = "状态 0下架  1上架")
+    private String articleType;
+
+    @ApiModelProperty(value = "详情内容")
+    private String content;
+
+    @ApiModelProperty(value = "状态(1 金汇文章   2 金汇家园)")
+    private String conditionType;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiCharity.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiCharity.java
new file mode 100644
index 0000000..8e0ef5d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiCharity.java
@@ -0,0 +1,54 @@
+package com.panzhihua.service_jinhui_community.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇慈善公益")
+public class JinhuiCharity implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "标题")
+    private String title;
+
+    @ApiModelProperty(value = "封面")
+    private String coverImgUrl;
+
+    @ApiModelProperty(value = "简语")
+    private String simpleStatement;
+
+    @ApiModelProperty(value = "标签")
+    private String label;
+
+    @ApiModelProperty(value = "内容")
+    private String content;
+
+    @ApiModelProperty(value = "二维码")
+    private String qrCodeUrl;
+
+    @ApiModelProperty(value = "状态(1 进心中  2已结束)")
+    private String state;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiCoinGeneralTable.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiCoinGeneralTable.java
new file mode 100644
index 0000000..5b4d309
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiCoinGeneralTable.java
@@ -0,0 +1,49 @@
+package com.panzhihua.service_jinhui_community.entity;
+
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇社区用户金汇币总表")
+public class JinhuiCoinGeneralTable implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+
+    @ApiModelProperty(value = "金币总额")
+    private String goldCoin="0";
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiComActQuestnaireSub.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiComActQuestnaireSub.java
new file mode 100644
index 0000000..d948d81
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiComActQuestnaireSub.java
@@ -0,0 +1,72 @@
+package com.panzhihua.service_jinhui_community.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Author: llming
+ * @Description: 问卷题目
+ */
+@Data
+@TableName(value = "jinhui_com_act_questnaire_sub")
+public class JinhuiComActQuestnaireSub implements Serializable {
+    private static final long serialVersionUID = 914683789736719693L;
+
+    @TableId(type = IdType.AUTO)
+    private Long id;
+    /**
+     * 类型 0 单选  1 多选 2 输入框 2姓名输入框 3 手机号 4 身份证 5 文字描述 6 日期选择
+     */
+    private String type;
+    /**
+     * 题目内容
+     */
+    private String content;
+    /**
+     * 序号
+     */
+    private String sort;
+    /**
+     * 调查问卷Id
+     */
+    private String queId;
+
+    /**
+     * 问卷调查题目key
+     */
+    @TableField("`key`")
+    private String key;
+
+
+    private String createBy;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    private String updateBy;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAt;
+
+    /**
+     * 类型 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_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiComActQuestnaireSubSelection.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiComActQuestnaireSubSelection.java
new file mode 100644
index 0000000..2c54acf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiComActQuestnaireSubSelection.java
@@ -0,0 +1,73 @@
+package com.panzhihua.service_jinhui_community.entity;
+
+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 com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Author: llming
+ * @Description: 问卷题目选项
+ */
+@Data
+@TableName(value = "jinhui_com_act_questnaire_sub_selection")
+public class JinhuiComActQuestnaireSubSelection implements Serializable {
+    private static final long serialVersionUID = -2083705916360506830L;
+    @TableId(type = IdType.AUTO)
+    private Long id;
+    /**
+     * 问卷题目Id
+     */
+    private String queSubId;
+    /**
+     * 选项排序
+     */
+    private String sort;
+    /**
+     * 选项内容
+     */
+    private String content;
+
+    /**
+     * 选项名
+     */
+    private String optionName;
+
+    /**
+     * 选项类型 0 固定选项 1 自定义选项
+     */
+    private String type;
+
+    /**
+     * 问卷调查Id
+     */
+    private String queId;
+
+    /**
+     * 问卷调查选项key
+     */
+    @TableField("`key`")
+    private String key;
+
+    /**
+     * 组件文件上传保存路径
+     */
+    private String url;
+
+
+    private String createBy;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    private String updateBy;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiComActWorkGuide.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiComActWorkGuide.java
new file mode 100644
index 0000000..a8a78a4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiComActWorkGuide.java
@@ -0,0 +1,101 @@
+package com.panzhihua.service_jinhui_community.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.google.common.collect.Lists;
+import com.panzhihua.common.model.vos.community.ComActWorkGuideMaterialVO;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇办事指南")
+public class JinhuiComActWorkGuide implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    @TableId(type = IdType.AUTO)
+    private String id;
+
+
+    @ApiModelProperty(value = "办事指南标题")
+    private String title;
+
+    @ApiModelProperty(value = "办事指南内容")
+    private String content;
+
+
+    @ApiModelProperty(value = "所属分类")
+    private String classify;
+
+
+    @ApiModelProperty(value = "办理时间")
+    private String timeAt;
+
+    @ApiModelProperty(value = "办理地点")
+    private String address;
+
+    @ApiModelProperty(value = "咨询电话")
+    private String phone;
+
+
+    @ApiModelProperty(value = "经度")
+    private String lon;
+
+    @ApiModelProperty(value = "纬度")
+    private String lat;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    @ApiModelProperty(value = "创建人")
+    private String createBy;
+
+    @ApiModelProperty(value = "修改时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateAt;
+
+    @ApiModelProperty(value = "修改人")
+    private String updateBy;
+
+    @ApiModelProperty(value = "区域编码")
+    private String areaCode;
+
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+    @ApiModelProperty(value = "组件json数据")
+    private String jsonObject;
+
+    /**
+     * 组件唯一key
+     */
+    @TableField(exist = false)
+    @ApiModelProperty(value = "组件唯一key")
+    private String projectKey;
+
+    /**
+     * 填报项数量
+     */
+    @ApiModelProperty(value = "填报项数量")
+    private Integer count;
+
+    @ApiModelProperty(value = "是否在线 (0 不在线   1在线)")
+    private String isOnLine;
+
+    @TableField(exist = false)
+    private List<ComActWorkGuideMaterialVO> materials = Lists.newArrayList();
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiComActWorkGuideClassify.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiComActWorkGuideClassify.java
new file mode 100644
index 0000000..4e0bd06
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiComActWorkGuideClassify.java
@@ -0,0 +1,54 @@
+package com.panzhihua.service_jinhui_community.entity;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇社区》办事指南》分类管理")
+public class JinhuiComActWorkGuideClassify implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增id
+     */
+    private String id;
+
+    /**
+     * 分类名称
+     */
+    private String classifyName;
+
+    /**
+     * 图标地址
+     */
+    private String pictureUrl;
+
+    /**
+     * 创建时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createAt;
+
+    /**
+     * 系统预置:1-是 0-否
+     */
+    private String sysFlag;
+
+    private String areaCode;
+
+
+    private String communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiComActWorkGuideMaterial.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiComActWorkGuideMaterial.java
new file mode 100644
index 0000000..421ef65
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiComActWorkGuideMaterial.java
@@ -0,0 +1,28 @@
+package com.panzhihua.service_jinhui_community.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Data;
+
+import java.io.Serializable;
+@Data
+public class JinhuiComActWorkGuideMaterial  implements Serializable
+{
+    /** 自增 id */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /**
+     * 申报材料名称
+     */
+    private String materialName;
+    /**
+     * 办事指南id
+     */
+    private String workGuideId;
+
+    /**
+     * 社区id
+     */
+    private String communityId;
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiComConvenientServiceCategories.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiComConvenientServiceCategories.java
new file mode 100644
index 0000000..3c9d6df
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiComConvenientServiceCategories.java
@@ -0,0 +1,52 @@
+package com.panzhihua.service_jinhui_community.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 商家分类表
+ */
+
+@Data
+@TableName(value = "jinhui_com_convenient_service_categories")
+public class JinhuiComConvenientServiceCategories  implements Serializable
+{
+
+    private static final long serialVersionUID = 1L;
+
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "分类名称")
+    private String name;
+
+    @ApiModelProperty(value = "分类图标")
+    private String icon;
+
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+    @ApiModelProperty(value = "排序  默认1")
+    private String weight;
+
+    @ApiModelProperty(value = "是否删除(0未删除 1已删除 )")
+    private String isDel;
+
+    @ApiModelProperty(value = "创建时间")
+    private String createdAt;
+
+    @ApiModelProperty(value = "创建人")
+    private String createdBy;
+
+    @ApiModelProperty(value = "更新时间")
+    private String updatedAt;
+
+    @ApiModelProperty(value = "父级id")
+    private String parentId;
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiConfig.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiConfig.java
new file mode 100644
index 0000000..a124c4e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiConfig.java
@@ -0,0 +1,58 @@
+package com.panzhihua.service_jinhui_community.entity;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇社区商家配置")
+public class JinhuiConfig implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+    @ApiModelProperty(value = "兑换地址")
+    private String address;
+
+    @ApiModelProperty(value = "纬度")
+    private String lat;
+
+    @ApiModelProperty(value = "经度")
+    private String lng;
+
+    @ApiModelProperty(value = "兑换状态(1每天  2周一到周五   3周末)")
+    private String businessType;
+
+    @ApiModelProperty(value = "兑换开始时间")
+    private String businessStartTime;
+
+    @ApiModelProperty(value = "兑换结束时间")
+    private String businessEndTime;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiConvenientMerchant.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiConvenientMerchant.java
new file mode 100644
index 0000000..f12450e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiConvenientMerchant.java
@@ -0,0 +1,100 @@
+package com.panzhihua.service_jinhui_community.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @title: ConvenientMerchantDO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务商家DO
+ * @author: hans
+ * @date: 2021/09/16 16:04
+ */
+@Data
+@TableName(value = "jinhui_com_convenient_merchants")
+public class JinhuiConvenientMerchant implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.AUTO)
+    @ApiModelProperty("商家ID")
+    private String id;
+
+    @ApiModelProperty("商家名称")
+    private String name;
+
+    @ApiModelProperty("商家logo")
+    private String logo;
+
+    @ApiModelProperty("联系人")
+    private String contacts;
+
+    @ApiModelProperty("咨询电话")
+    private String phone;
+
+    @ApiModelProperty("商家地址")
+    private String address;
+
+    @ApiModelProperty("纬度")
+    private String lat;
+
+    @ApiModelProperty("经度")
+    private String lon;
+
+    @ApiModelProperty("商家详细地址")
+    private String detailedAddress;
+
+
+    @ApiModelProperty("商家介绍")
+    private String introduction;
+
+
+    @ApiModelProperty("是否删除")
+    private String isDel;
+
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "HH:mm:ss", timezone = "GMT+8")
+    private Date createdAt;
+
+
+    @ApiModelProperty("创建人")
+    private String createdBy;
+
+
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "HH:mm:ss", timezone = "GMT+8")
+    private Date updatedAt;
+
+
+    @ApiModelProperty("商家类型id")
+    private String convenientType;
+
+    @TableField(exist = false)
+    @ApiModelProperty("商家类型名称")
+    private String convenientName;
+
+
+    @ApiModelProperty("商家图片")
+    private String imgUrl;
+
+    @ApiModelProperty("审核状态 (1待审核    2已通过   3未通过   )")
+    private String auditType;
+
+    @ApiModelProperty("审核意见")
+    private String auditOpinion;
+
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiExperienceActivity.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiExperienceActivity.java
new file mode 100644
index 0000000..ae80504
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiExperienceActivity.java
@@ -0,0 +1,96 @@
+package com.panzhihua.service_jinhui_community.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇商城商品表")
+public class JinhuiExperienceActivity implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "活动标题")
+    private String title;
+
+    @ApiModelProperty(value = "活动地址")
+    private String address;
+
+    @ApiModelProperty(value = "纬度")
+    private String lat;
+
+    @ApiModelProperty(value = "经度")
+    private String lon;
+
+    @ApiModelProperty(value = "报名开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date applyStartTime;
+
+    @ApiModelProperty(value = "报名结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date applyEndTime;
+
+    @ApiModelProperty(value = "活动开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date activityStartTime;
+
+    @ApiModelProperty(value = "活动结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date activityEndTime;
+
+    @ApiModelProperty(value = "参加人数 (不限传-1)")
+    private String peopleNumber;
+
+    @ApiModelProperty(value = "负责人电话")
+    private String phone;
+
+    @ApiModelProperty(value = "奖励")
+    private String award;
+
+    @ApiModelProperty(value = "活动状态")
+    private String activityType;
+
+    @ApiModelProperty(value = "封面")
+    private String coverImgUrl;
+
+    @ApiModelProperty(value = "内容")
+    private String content;
+
+    @ApiModelProperty(value = "是否反馈(0没有  1有)")
+    private String isFeedback;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "参加人数")
+    private String number;
+
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "是否参加(0 未参加   1已参加)")
+    private String isJoin;
+
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiGoldCoinRecord.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiGoldCoinRecord.java
new file mode 100644
index 0000000..9959d97
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiGoldCoinRecord.java
@@ -0,0 +1,56 @@
+package com.panzhihua.service_jinhui_community.entity;
+
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇币明细表")
+public class JinhuiGoldCoinRecord implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+
+    @ApiModelProperty(value = "金币总额")
+    private String goldCoin="0";
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+    @ApiModelProperty(value = "标题")
+    private String title;
+
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+    @ApiModelProperty(value = "状态")
+    private String type;
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiInterspace.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiInterspace.java
new file mode 100644
index 0000000..bb78b5d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiInterspace.java
@@ -0,0 +1,70 @@
+package com.panzhihua.service_jinhui_community.entity;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇空间管理")
+public class JinhuiInterspace implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "空间名称")
+    private String title;
+
+    @ApiModelProperty(value = "管理员")
+    private String intendant;
+
+    @ApiModelProperty(value = "管理员电话")
+    private String intendantPhone;
+
+    @ApiModelProperty(value = "空间分类")
+    private String intendantType;
+
+     @ApiModelProperty(value = "空间分类名称")
+    private String intendantName;
+
+    @ApiModelProperty(value = "空间介绍")
+    private String content;
+
+    @ApiModelProperty(value = "空间地址")
+    private String address;
+
+    @ApiModelProperty(value = "经度")
+    private String lon;
+
+    @ApiModelProperty(value = "纬度")
+    private String lat;
+
+    @ApiModelProperty(value = "空间图片")
+    private String imgUrl;
+
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    @ApiModelProperty(value = "费用")
+    private String price;
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiInterspaceApplyFor.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiInterspaceApplyFor.java
new file mode 100644
index 0000000..e92c663
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiInterspaceApplyFor.java
@@ -0,0 +1,79 @@
+package com.panzhihua.service_jinhui_community.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("空间预约申请")
+public class JinhuiInterspaceApplyFor implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+
+    @ApiModelProperty(value = "空间场地id")
+    private String interspaceId;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "空间场地名称")
+    private String interspaceName;
+
+    @ApiModelProperty(value = "预约时间(哪一天)")
+    private String interspaceTime;
+
+    @ApiModelProperty(value = "预约时段")
+    private String subscribeTimeFrame;
+
+    @ApiModelProperty(value = "预约人姓名")
+    private String userName;
+
+    @ApiModelProperty(value = "预约人电话")
+    private String userPhone;
+
+    @ApiModelProperty(value = "预约人id")
+    private String userId;
+
+    @ApiModelProperty(value = "状态(1待处理  2未通过  3已通过)")
+    private String state;
+
+    @ApiModelProperty(value = "用处")
+    private String content;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    @ApiModelProperty(value = "回复")
+    private String reply;
+
+    @ApiModelProperty(value = "图片")
+    private String imgUrl;
+
+    @ApiModelProperty(value = "空间地址")
+    private String address;
+
+    @ApiModelProperty(value = "经度")
+    private String lon;
+
+    @ApiModelProperty(value = "纬度")
+    private String lat;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiInterspaceType.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiInterspaceType.java
new file mode 100644
index 0000000..09a251e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiInterspaceType.java
@@ -0,0 +1,50 @@
+package com.panzhihua.service_jinhui_community.entity;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇空间分类")
+public class JinhuiInterspaceType implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "空间名称")
+    private String title;
+
+
+
+    @ApiModelProperty(value = "空间分类")
+    private String intendantName;
+
+
+    @ApiModelProperty(value = "创建人id")
+    private String userId;
+
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiMicroVolunteering.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiMicroVolunteering.java
new file mode 100644
index 0000000..2897688
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiMicroVolunteering.java
@@ -0,0 +1,66 @@
+package com.panzhihua.service_jinhui_community.entity;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇微心愿")
+public class JinhuiMicroVolunteering implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "内容")
+    private String content;
+
+    @ApiModelProperty(value = "提交人id")
+    private String userId;
+
+    @ApiModelProperty(value = "心愿类型id")
+    private String wishTypeId;
+
+    @ApiModelProperty(value = "心愿类型名字")
+    private String wishTypeName;
+
+    @ApiModelProperty(value = "姓名")
+    private String userName;
+
+    @ApiModelProperty(value = "电话")
+    private String userPhone;
+
+    @ApiModelProperty(value = "图片")
+    private String imgUrl;
+
+    @ApiModelProperty(value = "回复")
+    private String reply;
+
+    @ApiModelProperty(value = "回复图片")
+    private String replyImgUrl;
+
+    @ApiModelProperty(value = "状态(1待处理   2已处理)")
+    private String state;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiMicroVolunteeringType.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiMicroVolunteeringType.java
new file mode 100644
index 0000000..721d7f1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiMicroVolunteeringType.java
@@ -0,0 +1,45 @@
+package com.panzhihua.service_jinhui_community.entity;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇微心愿分类")
+public class JinhuiMicroVolunteeringType implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "名字")
+    private String title;
+
+
+    @ApiModelProperty(value = "创建人id")
+    private String userId;
+
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiQuestnaireUserAnswer.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiQuestnaireUserAnswer.java
new file mode 100644
index 0000000..2e018ae
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiQuestnaireUserAnswer.java
@@ -0,0 +1,72 @@
+package com.panzhihua.service_jinhui_community.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇办事记录用户答题记录")
+public class JinhuiQuestnaireUserAnswer implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "办事指南id")
+    private String questnaireId;
+
+
+    @ApiModelProperty(value = "办事指南标题")
+    private String questnaireName;
+
+
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+
+    @ApiModelProperty(value = "用户答题json数据")
+    private String jsonObject;
+
+
+    @ApiModelProperty(value = "办理状态(0待处理  1已通过 2未通过 )")
+    private String transactType;
+
+    @ApiModelProperty(value = "回复")
+    private String reply;
+
+    @ApiModelProperty(value = "用户名")
+    private String userName;
+
+    @ApiModelProperty(value = "电话")
+    private String phone;
+
+    @ApiModelProperty(value = "身份证")
+    private String idCard;
+
+
+    @ApiModelProperty(value = "处理时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date processingTime;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiReseau.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiReseau.java
new file mode 100644
index 0000000..85e91d7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiReseau.java
@@ -0,0 +1,61 @@
+package com.panzhihua.service_jinhui_community.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇网格")
+public class JinhuiReseau implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+
+    @ApiModelProperty(value = "网格名称")
+    private String reseauName;
+
+    @ApiModelProperty(value = "图层")
+    private String coverage;
+
+    @ApiModelProperty(value = "面积")
+    private String acreage;
+
+    @ApiModelProperty(value = "名称")
+    private String designation;
+
+    @ApiModelProperty(value = "线条颜色")
+    private String linellae;
+
+    @ApiModelProperty(value = "线条宽度")
+    private String broad;
+
+    @ApiModelProperty(value = "填充颜色")
+    private String fill;
+
+    @ApiModelProperty(value = "围栏坐标")
+    private String rail;
+
+    @ApiModelProperty(value = "网格员id")
+    private String reseauId;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiReseauPeople.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiReseauPeople.java
new file mode 100644
index 0000000..57328ed
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiReseauPeople.java
@@ -0,0 +1,45 @@
+package com.panzhihua.service_jinhui_community.entity;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇网格员")
+public class JinhuiReseauPeople implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+
+    @ApiModelProperty(value = "绑定用户id")
+    private String userId;
+
+    @ApiModelProperty(value = "网格员名称")
+    private String reseauName;
+
+    @ApiModelProperty(value = "负责网格")
+    private String reseauIds;
+
+    @ApiModelProperty(value = "联系电话")
+    private String phone;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiShopping.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiShopping.java
new file mode 100644
index 0000000..4e90ebf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiShopping.java
@@ -0,0 +1,67 @@
+package com.panzhihua.service_jinhui_community.entity;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇商城商品表")
+public class JinhuiShopping implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "商品名称")
+    private String goodName;
+
+    @ApiModelProperty(value = "商品价格")
+    private String goodPrice;
+
+    @ApiModelProperty(value = "商品状态(0下架  1上架)")
+    private String goodType;
+
+    @ApiModelProperty(value = "商品封面")
+    private String coverImgUrl;
+
+    @ApiModelProperty(value = "商品详情内容")
+    private String content;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+    @ApiModelProperty(value = "兑换地址")
+    private String address;
+
+    @ApiModelProperty(value = "纬度")
+    private String lat;
+
+    @ApiModelProperty(value = "经度")
+    private String lng;
+
+    @ApiModelProperty(value = "兑换状态(1每天  2周一到周五   3周末)")
+    private String businessType;
+
+    @ApiModelProperty(value = "兑换开始时间")
+    private String businessStartTime;
+
+    @ApiModelProperty(value = "兑换结束时间")
+    private String businessEndTime;
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiShoppingOrder.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiShoppingOrder.java
new file mode 100644
index 0000000..c8f073f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiShoppingOrder.java
@@ -0,0 +1,92 @@
+package com.panzhihua.service_jinhui_community.entity;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇商城订单表")
+public class JinhuiShoppingOrder implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "订单号")
+    private String orderNumber;
+
+    @ApiModelProperty(value = "商品id")
+    private String goodsId;
+
+    @ApiModelProperty(value = "下单人id")
+    private String userId;
+
+    @ApiModelProperty(value = "核销状态(0待核销  1已核销  2订单已取消)")
+    private String cancelType;
+
+    @ApiModelProperty(value = "核销时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date cancelTime;
+
+    @ApiModelProperty(value = "支付金额")
+    private String palyMoney;
+
+    @ApiModelProperty(value = "创建时间(兑换时间)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+
+    @ApiModelProperty(value = "取消时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date abolishTime;
+
+
+    @ApiModelProperty(value = "商品名称")
+    private String goodName;
+
+    @ApiModelProperty(value = "商品价格")
+    private String goodPrice;
+
+    @ApiModelProperty(value = "商品图片")
+    private String coverImgUrl;
+
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    @ApiModelProperty(value = "电话")
+    private String phone;
+
+
+
+    @ApiModelProperty(value = "兑换地址")
+    private String address;
+
+    @ApiModelProperty(value = "纬度")
+    private String lat;
+
+    @ApiModelProperty(value = "经度")
+    private String lng;
+
+    @ApiModelProperty(value = "兑换状态(1每天  2周一到周五   3周末)")
+    private String businessType;
+
+    @ApiModelProperty(value = "兑换开始时间")
+    private String businessStartTime;
+
+    @ApiModelProperty(value = "兑换结束时间")
+    private String businessEndTime;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiSnapshot.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiSnapshot.java
new file mode 100644
index 0000000..ae484dc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiSnapshot.java
@@ -0,0 +1,71 @@
+package com.panzhihua.service_jinhui_community.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇随手拍分类")
+public class JinhuiSnapshot implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "分类名称")
+    private String classifyName;
+
+
+
+    @ApiModelProperty(value = "提交人员id")
+    private String userId;
+
+    @ApiModelProperty(value = "网格员id")
+    private String reseauId;
+
+
+    @ApiModelProperty(value = "内容")
+    private String content;
+
+
+    @ApiModelProperty(value = "图片或视频url")
+    private String imgUrl;
+
+    @ApiModelProperty(value = "地址")
+    private String address;
+
+    @ApiModelProperty(value = "纬度")
+    private String lat;
+
+    @ApiModelProperty(value = "经度")
+    private String lon;
+
+    @ApiModelProperty(value = "地址备注")
+    private String addressRemark;
+
+    @ApiModelProperty(value = "分类id")
+    private String classifyId;
+
+    @ApiModelProperty(value = "是否上报(0 否 1是)")
+    private String isApply;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiSnapshotClassify.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiSnapshotClassify.java
new file mode 100644
index 0000000..49614ea
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/entity/JinhuiSnapshotClassify.java
@@ -0,0 +1,39 @@
+package com.panzhihua.service_jinhui_community.entity;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("金汇随手拍分类")
+public class JinhuiSnapshotClassify implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "分类名称")
+    private String classifyName;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/model/dos/ComActDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/model/dos/ComActDO.java
new file mode 100644
index 0000000..94a18f7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/model/dos/ComActDO.java
@@ -0,0 +1,122 @@
+package com.panzhihua.service_jinhui_community.model.dos;
+
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 社区表
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-07 14:12
+ **/
+@Data
+@TableName(value = "com_act")
+public class ComActDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * community_id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long communityId;
+
+    /**
+     * 社区名字
+     */
+    private String name;
+
+    /**
+     * 社区地址
+     */
+    private String address;
+
+    /**
+     * 经度
+     */
+    private String lng;
+
+    /**
+     * 维度
+     */
+    private String lat;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 省份地址编码
+     */
+    private String provinceCode;
+
+    /**
+     * 市级地址编码
+     */
+    private String cityCode;
+
+    /**
+     * 区级地址编码
+     */
+    private String areaCode;
+
+    /**
+     * 社区面积
+     */
+    private Double square;
+
+    /**
+     * 联系人
+     */
+    private String contacts;
+
+    /**
+     * 联系人电话
+     */
+    private String contactsPhone;
+
+    /** 社区总人口 */
+    private Integer totalUser;
+    /** 社区书记-用户ID */
+    private Long managerId;
+    /** 社区书记_名称 */
+    private String managerName;
+    /** 社区介绍 */
+    private String introduce;
+    /** 层次递归字段(省>市>区县>街道>社区) */
+    private String path;
+    /**
+     * 超管账号
+     */
+    private String account;
+
+    /**
+     * 账号密码
+     */
+    private String password;
+
+    /**
+     * 状态 0 启用 1 禁用
+     */
+    private Integer state;
+
+    /**
+     * 街道ID
+     */
+    private Long streetId;
+
+    /**
+     * 明文密码
+     */
+    private String plaintextPassword;
+
+    private String appId;
+
+    @TableField(exist = false)
+    private String solvePhone;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinghuiMerchantEvaluateService.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinghuiMerchantEvaluateService.java
new file mode 100644
index 0000000..667e781
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinghuiMerchantEvaluateService.java
@@ -0,0 +1,28 @@
+package com.panzhihua.service_jinhui_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinghuiMerchantEvaluateVO;
+import com.panzhihua.service_jinhui_community.entity.JinghuiMerchantEvaluate;
+
+public interface JinghuiMerchantEvaluateService extends IService<JinghuiMerchantEvaluate>
+{
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    R getList(int pageNum,int pageSize,String merchantId);
+
+    JinghuiMerchantEvaluate getDetails(String id);
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    R addData(JinghuiMerchantEvaluateVO jinhuiGoldCoinRecordVO);
+
+    R editData(JinghuiMerchantEvaluateVO jinhuiGoldCoinRecordVO);
+
+    R expurgateData(String id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiApplyExperienceService.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiApplyExperienceService.java
new file mode 100644
index 0000000..650210b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiApplyExperienceService.java
@@ -0,0 +1,39 @@
+package com.panzhihua.service_jinhui_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiApplyExperienceVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiApplyExperience;
+
+public interface JinhuiApplyExperienceService extends IService<JinhuiApplyExperience>
+{
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    R getList(int pageNum,int pageSize, String userId,String activityId,String isFeedback);
+
+    JinhuiApplyExperience getDetails(String id,String userId,String activityId);
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    R addData(JinhuiApplyExperienceVO item);
+
+    R editData(JinhuiApplyExperienceVO item);
+
+    R expurgateData(String id);
+
+    int getNum(String userId, String isFeedback, String activityId);
+
+    /**
+     * 填写反馈接口
+     * @return
+     */
+    R filIn(String userId,String activityId,String content);
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiArticleManagementService.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiArticleManagementService.java
new file mode 100644
index 0000000..ef26d37
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiArticleManagementService.java
@@ -0,0 +1,28 @@
+package com.panzhihua.service_jinhui_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiArticleManagementVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiArticleManagement;
+
+public interface JinhuiArticleManagementService extends IService<JinhuiArticleManagement>
+{
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    R getList(int pageNum,int pageSize,String articleType,String conditionType);
+
+    JinhuiArticleManagement getDetails(String id);
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    R addData(JinhuiArticleManagementVO item);
+
+    R editData(JinhuiArticleManagementVO item);
+
+    R expurgateData(String id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiCharityService.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiCharityService.java
new file mode 100644
index 0000000..ab0e59e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiCharityService.java
@@ -0,0 +1,30 @@
+package com.panzhihua.service_jinhui_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiCharityVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiCharity;
+
+public interface JinhuiCharityService extends IService<JinhuiCharity>
+{
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    R getList(int pageNum,int pageSize,String title,String label,String state);
+
+    R getJinhuiCharityList();
+
+    JinhuiCharity getDetails(String id);
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    R addData(JinhuiCharityVO item);
+
+    R editData(JinhuiCharityVO item);
+
+    R expurgateData(String id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiCoinGeneralTableService.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiCoinGeneralTableService.java
new file mode 100644
index 0000000..288497b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiCoinGeneralTableService.java
@@ -0,0 +1,28 @@
+package com.panzhihua.service_jinhui_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiCoinGeneralTableVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiCoinGeneralTable;
+
+public interface JinhuiCoinGeneralTableService extends IService<JinhuiCoinGeneralTable>
+{
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    R getList(int pageNum,int pageSize,String type);
+
+    JinhuiCoinGeneralTable getDetails(String userId);
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    R addData(JinhuiCoinGeneralTableVO jinhuiCoinGeneralTableVO);
+
+    R editData(JinhuiCoinGeneralTableVO jinhuiCoinGeneralTableVO);
+
+    R expurgateData(String id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiComActWorkGuideClassifyService.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiComActWorkGuideClassifyService.java
new file mode 100644
index 0000000..2090eaf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiComActWorkGuideClassifyService.java
@@ -0,0 +1,53 @@
+package com.panzhihua.service_jinhui_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_jinhui_community.entity.JinhuiComActWorkGuideClassify;
+
+/**
+ * title: ComActWorkGuideClassifyService  社区》办事指南》分类管理服务类
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * description: 社区》办事指南》分类管理服务类
+ *
+ * @author txb
+ * @date 2021/8/31 14:21
+ */
+public interface JinhuiComActWorkGuideClassifyService extends IService<JinhuiComActWorkGuideClassify> {
+
+    /**
+     * 分页查询办事执念-分类管理 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(String workGuideClassifyId);
+
+    /**
+     * 办事指南-分类管理列表查询  getWorkGuideClassifyList  办事指南-分类管理列表查询
+     * @return    R   返回结果
+     * @author txb
+     * @date 2021/8/31 15:03
+     */
+    R getWorkGuideClassifyList(String areaCode);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiComActWorkGuideService.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiComActWorkGuideService.java
new file mode 100644
index 0000000..667036f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiComActWorkGuideService.java
@@ -0,0 +1,70 @@
+package com.panzhihua.service_jinhui_community.service;
+
+import com.panzhihua.common.model.dtos.community.ComActWorkGuideDTO;
+import com.panzhihua.common.model.dtos.community.PageActWorkGuideDTO;
+import com.panzhihua.common.model.vos.R;
+
+/**
+ * @auther llming
+ * @describe 办事指南
+ */
+public interface JinhuiComActWorkGuideService {
+    /**
+     * 办事指南_新增
+     * 
+     * @param workGuideDTO
+     *            办事指南信息
+     * @return 新增结果
+     */
+    R addWorkGuide(ComActWorkGuideDTO workGuideDTO, String userId);
+
+    /**
+     * 办事指南_编辑
+     * 
+     * @param workGuideDTO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    R editWorkGuide(ComActWorkGuideDTO workGuideDTO, String userId);
+
+    /**
+     * 办事指南_详情
+     * 
+     * @param workGuideId
+     *            办事指南id
+     * @return 社区详情
+     */
+    R detailWorkGuide(String workGuideId, String conmunityId);
+
+    /**
+     * 办事指南_分页
+     * 
+     * @param pageActWorkGuideDTO
+     *            查询参数
+     * @return 分页集合
+     */
+    R pageWorkGuide(PageActWorkGuideDTO pageActWorkGuideDTO);
+
+    /**
+     * 办事指南_删除
+     * 
+     * @param workGuideId
+     *            办事指南id
+     * @return 删除结果
+     */
+    R delectWorkGuide(String workGuideId);
+
+    /**
+     * 办事指南列表-按分类查询
+     * @param pageActWorkGuideDTO   请求参数
+     * @return  办事指南分类列表
+     */
+    R listWorkGuide(PageActWorkGuideDTO pageActWorkGuideDTO);
+
+    /**
+     * 根据办事指南分类id查询办事指南列表
+     * @param classifyId   办事指南分类id
+     * @return  办事指南列表数据
+     */
+    R listWorkGuideByClassifyId(String classifyId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiComConvenientServiceCategoriesService.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiComConvenientServiceCategoriesService.java
new file mode 100644
index 0000000..c4a4027
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiComConvenientServiceCategoriesService.java
@@ -0,0 +1,50 @@
+package com.panzhihua.service_jinhui_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiComConvenientServiceCategoriesVO;
+import com.panzhihua.common.model.vos.jinhui.JinhuiGoldCoinRecordVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiComConvenientServiceCategories;
+import com.panzhihua.service_jinhui_community.entity.JinhuiGoldCoinRecord;
+import org.apache.ibatis.annotations.Param;
+
+public interface JinhuiComConvenientServiceCategoriesService extends IService<JinhuiComConvenientServiceCategories>
+{
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    R getList(int pageNum,int pageSize);
+
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    JinhuiComConvenientServiceCategories getDetails(String id);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    R addData(JinhuiComConvenientServiceCategoriesVO item);
+
+
+    /**
+     * 编辑
+     * @param item
+     * @return
+     */
+    R editData(JinhuiComConvenientServiceCategoriesVO item);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    R expurgateData(String id);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiConfigService.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiConfigService.java
new file mode 100644
index 0000000..0b42aae
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiConfigService.java
@@ -0,0 +1,22 @@
+package com.panzhihua.service_jinhui_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiConfigVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiConfig;
+
+public interface JinhuiConfigService extends IService<JinhuiConfig>
+{
+
+    JinhuiConfig getDetails(String id);
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    R addData(JinhuiConfigVO item);
+
+    R editData(JinhuiConfigVO item);
+
+    R expurgateData(String id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiConvenientMerchantService.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiConvenientMerchantService.java
new file mode 100644
index 0000000..0b7e431
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiConvenientMerchantService.java
@@ -0,0 +1,48 @@
+package com.panzhihua.service_jinhui_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.convenient.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
+import com.panzhihua.common.model.vos.community.convenient.JinhuiConvenientMerchantVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiConvenientMerchant;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @title: ConvenientMerchantService
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务商家服务类
+ * @author: hans
+ * @date: 2021/09/16 16:02
+ */
+public interface JinhuiConvenientMerchantService extends IService<JinhuiConvenientMerchant> {
+
+
+    /**
+     * 删除便民服务商家
+     * @param merchantId 商家id
+     * @param operator 操作人员
+     * @return
+     */
+    R deleteMerchant(String merchantId);
+
+    /**
+     * 分页查询便民服务商家
+     * @param pageConvenientMerchantDTO
+     * @return
+     */
+    R pageMerchant(JinhuiPageConvenientMerchantDTO pageConvenientMerchantDTO);
+
+    /**
+     * 获取便民服务商家详情
+     * @param merchantId
+     * @return
+     */
+    R getMerchant(String merchantId);
+
+    R addData(JinhuiConvenientMerchantVO item);
+
+    R editData(JinhuiConvenientMerchantVO item);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiExperienceActivityService.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiExperienceActivityService.java
new file mode 100644
index 0000000..c5b2c80
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiExperienceActivityService.java
@@ -0,0 +1,34 @@
+package com.panzhihua.service_jinhui_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiExperienceActivityVO;
+import com.panzhihua.common.model.vos.jinhui.JinhuiShoppingVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiExperienceActivity;
+import com.panzhihua.service_jinhui_community.entity.JinhuiShopping;
+
+import java.util.Date;
+
+public interface JinhuiExperienceActivityService extends IService<JinhuiExperienceActivity>
+{
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    R getList(int pageNum, int pageSize, String activityName, String activityType, Date starTime, Date endTime);
+
+    JinhuiExperienceActivity getDetails(String id,String userId);
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    R addData(JinhuiExperienceActivityVO item);
+
+    R editData(JinhuiExperienceActivityVO item);
+
+    R expurgateData(String id);
+
+    R timedTaskJinhuiActivitiesJobHandler();
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiGoldCoinRecordService.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiGoldCoinRecordService.java
new file mode 100644
index 0000000..628ac28
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiGoldCoinRecordService.java
@@ -0,0 +1,30 @@
+package com.panzhihua.service_jinhui_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiCoinGeneralTableVO;
+import com.panzhihua.common.model.vos.jinhui.JinhuiGoldCoinRecordVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiCoinGeneralTable;
+import com.panzhihua.service_jinhui_community.entity.JinhuiGoldCoinRecord;
+
+public interface JinhuiGoldCoinRecordService extends IService<JinhuiGoldCoinRecord>
+{
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    R getList(int pageNum,int pageSize,String userId);
+
+    JinhuiGoldCoinRecord getDetails(String id);
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    R addData(JinhuiGoldCoinRecordVO jinhuiGoldCoinRecordVO);
+
+    R editData(JinhuiGoldCoinRecordVO jinhuiGoldCoinRecordVO);
+
+    R expurgateData(String id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiInterspaceApplyForService.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiInterspaceApplyForService.java
new file mode 100644
index 0000000..861406d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiInterspaceApplyForService.java
@@ -0,0 +1,30 @@
+package com.panzhihua.service_jinhui_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiInterspaceApplyForVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiInterspaceApplyFor;
+import org.apache.ibatis.annotations.Param;
+
+public interface JinhuiInterspaceApplyForService extends IService<JinhuiInterspaceApplyFor>
+{
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    R getList(int pageNum,int pageSize,String intendantType,String state,
+              String interspaceTime,String subscribeTimeFrame,String interspaceId,String userId);
+
+    JinhuiInterspaceApplyFor getDetails(String id);
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    R addData(JinhuiInterspaceApplyForVO item);
+
+    R editData(JinhuiInterspaceApplyForVO item);
+
+    R expurgateData(String id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiInterspaceService.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiInterspaceService.java
new file mode 100644
index 0000000..40fdaa1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiInterspaceService.java
@@ -0,0 +1,28 @@
+package com.panzhihua.service_jinhui_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiInterspaceVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiInterspace;
+
+public interface JinhuiInterspaceService extends IService<JinhuiInterspace>
+{
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    R getList(int pageNum,int pageSize,String intendantType);
+
+    JinhuiInterspace getDetails(String id);
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    R addData(JinhuiInterspaceVO item);
+
+    R editData(JinhuiInterspaceVO item);
+
+    R expurgateData(String id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiInterspaceTypeService.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiInterspaceTypeService.java
new file mode 100644
index 0000000..36e239e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiInterspaceTypeService.java
@@ -0,0 +1,28 @@
+package com.panzhihua.service_jinhui_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiInterspaceTypeVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiInterspaceType;
+
+public interface JinhuiInterspaceTypeService extends IService<JinhuiInterspaceType>
+{
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    R getList(int pageNum,int pageSize);
+
+    JinhuiInterspaceType getDetails(String id);
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    R addData(JinhuiInterspaceTypeVO item);
+
+    R editData(JinhuiInterspaceTypeVO item);
+
+    R expurgateData(String id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiLargeScreenService.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiLargeScreenService.java
new file mode 100644
index 0000000..d077fe1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiLargeScreenService.java
@@ -0,0 +1,137 @@
+package com.panzhihua.service_jinhui_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.jinhui.*;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface JinhuiLargeScreenService extends IService<String>
+{
+    /**
+     * 获取金汇风采数量
+     * @param
+     * @return
+     */
+    String getMienNum(String communityId);
+
+    /**
+     * 获取志愿者服务
+     * @return
+     */
+    String getVolunteerServeNum(String communityId);
+
+    /**
+     * 获取微心愿数量
+     * @param
+     * @return
+     */
+    String getMicroVolunteeringNum(String state);
+
+
+    /**
+     * 便民服务商家
+     * @return
+     */
+    String getConvenientMerchantsNum(String auditType);
+
+    /**
+     * 商家分类统计
+     * @return
+     */
+    List<JinhuiMerchantTypeVO> getMerchantTypeNum();
+
+    /**
+     * 获取党员  志愿者
+     * @param communityId
+     * @return
+     */
+    JinhuiCommunityServicesVO baseInfo(String communityId);
+
+    /**
+     * 办事直指南
+     * @return
+     */
+    String getWorkGuideNum();
+
+    /**
+     * 空间预约
+     * @return
+     */
+    String getInterspaceApplyNum(String state);
+
+
+    /**
+     * 商城订单
+     * @param cancelType
+     * @return
+     */
+    String getShoppingOrderNum(String cancelType);
+
+    /**
+     * 获取社区工作者
+     * @param communityId
+     * @return
+     */
+    String getServiceTeam(String communityId,String type);
+
+
+
+    /******************************************************************************************************************
+     *
+     *
+     *                               手环列表
+     *
+     *
+     ****************************************************************************************************************/
+
+
+    /**
+     * 老人手环异常列表数量统计
+     * @return
+     */
+    String getEarlyWarningNum(String disposeType,String communityId);
+
+
+    /**
+     * 老人手环异常列表
+     */
+    List<JinhuiOldManVO> getEarlyWarningList(String disposeType,String communityId);
+
+    /**
+     * 老人手环用户数量
+     * @return
+     */
+    String getBraceletUser(String  sex,String communityId);
+
+
+    /**
+     * 新增折线数据
+     * @return
+     */
+    List<JinhuiOldManBrokenLineVO> getEventAddPolylineData(String  communityId);
+
+    /**
+     * 累计折线数据
+     */
+    String getEventTotalPolylineDate(String communityId,String date);
+
+
+
+    /**
+     * 获取用户定位  状态
+     * @param communityId
+     * @return
+     */
+    List<JinhuiOldManUserDateVO> getOldManUserDate(@Param("communityId") String communityId);
+
+    /**
+     * 获取单独用户状态
+     * @param communityId
+     * @param equipmentNumber
+     * @return
+     */
+    String getEarlyNewDate(@Param("communityId") String communityId,@Param("equipmentNumber") String equipmentNumber);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiMicroVolunteeringService.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiMicroVolunteeringService.java
new file mode 100644
index 0000000..ac4aa24
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiMicroVolunteeringService.java
@@ -0,0 +1,30 @@
+package com.panzhihua.service_jinhui_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiInterspaceVO;
+import com.panzhihua.common.model.vos.jinhui.JinhuiMicroVolunteeringVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiInterspace;
+import com.panzhihua.service_jinhui_community.entity.JinhuiMicroVolunteering;
+
+public interface JinhuiMicroVolunteeringService extends IService<JinhuiMicroVolunteering>
+{
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    R getList(int pageNum,int pageSize,String userId,String state);
+
+    JinhuiMicroVolunteering getDetails(String id);
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    R addData(JinhuiMicroVolunteeringVO item);
+
+    R editData(JinhuiMicroVolunteeringVO item);
+
+    R expurgateData(String id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiMicroVolunteeringTypeService.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiMicroVolunteeringTypeService.java
new file mode 100644
index 0000000..b778dad
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiMicroVolunteeringTypeService.java
@@ -0,0 +1,28 @@
+package com.panzhihua.service_jinhui_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiMicroVolunteeringTypeVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiMicroVolunteeringType;
+
+public interface JinhuiMicroVolunteeringTypeService extends IService<JinhuiMicroVolunteeringType>
+{
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    R getList(int pageNum,int pageSize);
+
+    JinhuiMicroVolunteeringType getDetails(String id);
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    R addData(JinhuiMicroVolunteeringTypeVO item);
+
+    R editData(JinhuiMicroVolunteeringTypeVO item);
+
+    R expurgateData(String id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiQuestnaireUserAnswerService.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiQuestnaireUserAnswerService.java
new file mode 100644
index 0000000..f1b06aa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiQuestnaireUserAnswerService.java
@@ -0,0 +1,29 @@
+package com.panzhihua.service_jinhui_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiQuestnaireUserAnswerVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiQuestnaireUserAnswer;
+
+
+public interface JinhuiQuestnaireUserAnswerService extends IService<JinhuiQuestnaireUserAnswer>
+{
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    R getList(int pageNum,int pageSize,String userId,String transactType);
+
+    JinhuiQuestnaireUserAnswer getDetails(String id,String questnaireId,String userId,String transactType);
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    R addData(JinhuiQuestnaireUserAnswerVO item);
+
+    R editData(JinhuiQuestnaireUserAnswerVO item);
+
+    R expurgateData(String id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiReseauPeopleService.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiReseauPeopleService.java
new file mode 100644
index 0000000..f381400
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiReseauPeopleService.java
@@ -0,0 +1,30 @@
+package com.panzhihua.service_jinhui_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiReseauPeopleVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiReseauPeople;
+
+public interface JinhuiReseauPeopleService extends IService<JinhuiReseauPeople>
+{
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    R getList(int pageNum,int pageSize);
+
+    R getUserList(int pageNum,int pageSize,String communityId,String nameAndPhone);
+
+    JinhuiReseauPeople getDetails(String id);
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    R addData(JinhuiReseauPeopleVO item);
+
+    R editData(JinhuiReseauPeopleVO item);
+
+    R expurgateData(String id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiReseauService.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiReseauService.java
new file mode 100644
index 0000000..d7684d8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiReseauService.java
@@ -0,0 +1,32 @@
+package com.panzhihua.service_jinhui_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiReseauVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiReseau;
+
+import java.util.List;
+
+public interface JinhuiReseauService extends IService<JinhuiReseau>
+{
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    R getList(int pageNum,int pageSize);
+
+    List<JinhuiReseau> getBoxList();
+
+    JinhuiReseau getDetails(String id);
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    R addData(JinhuiReseauVO item);
+
+    R editData(JinhuiReseauVO item);
+
+    R expurgateData(String id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiShoppingOrderService.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiShoppingOrderService.java
new file mode 100644
index 0000000..0ce0d98
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiShoppingOrderService.java
@@ -0,0 +1,31 @@
+package com.panzhihua.service_jinhui_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiShoppingOrderVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiShoppingOrder;
+
+public interface JinhuiShoppingOrderService extends IService<JinhuiShoppingOrder>
+{
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    R getList(int pageNum,int pageSize,String userId,String goodsId,String orderNumber,
+              String goodName,String name,String cancelType,String communityId);
+
+    JinhuiShoppingOrder getDetails(String id,String communityId);
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    R addData(JinhuiShoppingOrderVO item);
+
+    R editData(JinhuiShoppingOrderVO item);
+
+    R cancelOrder(String orderId,String communityId);
+
+    R expurgateData(String id,String communityId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiShoppingService.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiShoppingService.java
new file mode 100644
index 0000000..f42b931
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiShoppingService.java
@@ -0,0 +1,30 @@
+package com.panzhihua.service_jinhui_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiShoppingVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiShopping;
+import org.apache.ibatis.annotations.Param;
+
+public interface JinhuiShoppingService extends IService<JinhuiShopping>
+{
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    R getList(int pageNum,int pageSize,
+              String goodName, String goodType, String id);
+
+    JinhuiShopping getDetails(String id,String communityId);
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    R addData(JinhuiShoppingVO item);
+
+    R editData(JinhuiShoppingVO item);
+
+    R expurgateData(String id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiSnapshotClassifyService.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiSnapshotClassifyService.java
new file mode 100644
index 0000000..a9edef2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiSnapshotClassifyService.java
@@ -0,0 +1,28 @@
+package com.panzhihua.service_jinhui_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiSnapshotClassifyVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiSnapshotClassify;
+
+public interface JinhuiSnapshotClassifyService extends IService<JinhuiSnapshotClassify>
+{
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    R getList(int pageNum,int pageSize);
+
+    JinhuiSnapshotClassify getDetails(String id);
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    R addData(JinhuiSnapshotClassifyVO item);
+
+    R editData(JinhuiSnapshotClassifyVO item);
+
+    R expurgateData(String id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiSnapshotService.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiSnapshotService.java
new file mode 100644
index 0000000..14cd9e6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/JinhuiSnapshotService.java
@@ -0,0 +1,43 @@
+package com.panzhihua.service_jinhui_community.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiSnapshotVO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiSnapshot;
+
+public interface JinhuiSnapshotService extends IService<JinhuiSnapshot>
+{
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    R getList(int pageNum,int pageSize);
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    JinhuiSnapshot getDetails(String id);
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    R addData(JinhuiSnapshotVO item);
+
+    /**
+     * 编辑
+     * @param item
+     * @return
+     */
+    R editData(JinhuiSnapshotVO item);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    R expurgateData(String id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinghuiMerchantEvaluateServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinghuiMerchantEvaluateServiceImpl.java
new file mode 100644
index 0000000..0600e68
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinghuiMerchantEvaluateServiceImpl.java
@@ -0,0 +1,63 @@
+package com.panzhihua.service_jinhui_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinghuiMerchantEvaluateVO;
+import com.panzhihua.service_jinhui_community.dao.JinghuiMerchantEvaluateDao;
+import com.panzhihua.service_jinhui_community.entity.JinghuiMerchantEvaluate;
+import com.panzhihua.service_jinhui_community.service.JinghuiMerchantEvaluateService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+
+@Slf4j
+@Service
+public class JinghuiMerchantEvaluateServiceImpl extends ServiceImpl<JinghuiMerchantEvaluateDao,
+        JinghuiMerchantEvaluate> implements JinghuiMerchantEvaluateService
+{
+
+    @Override
+    public R getList(int pageNum,int pageSize,String merchantId)
+    {
+        Page page = new Page<JinghuiMerchantEvaluate>(pageNum,pageSize);
+        return R.ok(baseMapper.getList(page,merchantId));
+    }
+
+    @Override
+    public JinghuiMerchantEvaluate getDetails(String id) {
+        return baseMapper.getDetails(id);
+    }
+
+
+    @Override
+    public R addData(JinghuiMerchantEvaluateVO volunteerTypeVO)
+    {
+        int num= baseMapper.addData(volunteerTypeVO);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R editData(JinghuiMerchantEvaluateVO volunteerTypeVO) {
+        int num= baseMapper.editData(volunteerTypeVO);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R expurgateData(String id) {
+        int num= baseMapper.expurgateData(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiApplyExperienceServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiApplyExperienceServiceImpl.java
new file mode 100644
index 0000000..ff16588
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiApplyExperienceServiceImpl.java
@@ -0,0 +1,209 @@
+package com.panzhihua.service_jinhui_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiApplyExperienceVO;
+import com.panzhihua.common.model.vos.jinhui.JinhuiCoinGeneralTableVO;
+import com.panzhihua.common.model.vos.jinhui.JinhuiGoldCoinRecordVO;
+import com.panzhihua.service_jinhui_community.dao.JinhuiApplyExperienceDao;
+import com.panzhihua.service_jinhui_community.entity.JinhuiApplyExperience;
+import com.panzhihua.service_jinhui_community.entity.JinhuiCoinGeneralTable;
+import com.panzhihua.service_jinhui_community.entity.JinhuiExperienceActivity;
+import com.panzhihua.service_jinhui_community.service.JinhuiApplyExperienceService;
+import com.panzhihua.service_jinhui_community.service.JinhuiCoinGeneralTableService;
+import com.panzhihua.service_jinhui_community.service.JinhuiExperienceActivityService;
+import com.panzhihua.service_jinhui_community.service.JinhuiGoldCoinRecordService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+
+@Slf4j
+@Service
+public class JinhuiApplyExperienceServiceImpl extends ServiceImpl<JinhuiApplyExperienceDao,
+        JinhuiApplyExperience> implements JinhuiApplyExperienceService
+{
+    @Resource
+    private JinhuiExperienceActivityService activityService;
+
+    @Resource
+    private JinhuiGoldCoinRecordService recordService;
+
+    @Resource
+    private JinhuiCoinGeneralTableService tableService;
+
+
+    @Override
+    public R getList(int pageNum,int pageSize,String userId,String activityId,String isFeedback)
+    {
+        Page page = new Page<JinhuiApplyExperience>(pageNum,pageSize);
+        return R.ok(baseMapper.getList(page,userId,activityId,isFeedback));
+    }
+
+    @Override
+    public JinhuiApplyExperience getDetails(String id, String userId, String activityId) {
+        return baseMapper.getDetails(id,userId,activityId);
+    }
+
+
+
+    @Override
+    public R addData(JinhuiApplyExperienceVO item)
+    {
+        if(StringUtils.isEmpty(item.getActivityId()))
+        {
+            return R.fail("活动id不能为空");
+        }
+
+        JinhuiApplyExperience applyExperience=baseMapper.getDetails(null,item.getUserId(),item.getActivityId());
+
+        if(applyExperience!=null && !StringUtils.isEmpty(applyExperience.getId()) )
+        {
+            return R.fail("该活动已参加");
+        }
+
+        //获取活动信息
+        JinhuiExperienceActivity activity=activityService.getDetails(item.getActivityId(),item.getUserId());
+
+        if (!StringUtils.equals("-1",activity.getPeopleNumber()))
+        {
+            //总数
+            int allNum=Integer.valueOf(activity.getPeopleNumber());
+            //报名人数
+            int num=getNum(null,null,item.getActivityId());
+            if(num>=allNum)
+            {
+                return R.fail("报名人数已满");
+            }
+        }
+
+
+        //当前时间
+        long newTime=System.currentTimeMillis();
+        //报名开始时间
+        long applyStartTime=activity.getApplyStartTime().getTime();
+        //报名结束时间
+        long applyEndTime=activity.getApplyEndTime().getTime();
+
+
+        if(applyStartTime<newTime && newTime<applyEndTime)
+        {
+            int num= baseMapper.addData(item);
+            if(num>0)
+            {
+                return R.ok();
+            }
+            return R.fail("添加失败");
+        }
+        else
+        {
+            return R.fail("报名未开始或报名已结束");
+        }
+    }
+
+    @Override
+    public R editData(JinhuiApplyExperienceVO item) {
+        int num= baseMapper.editData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R expurgateData(String id) {
+        int num= baseMapper.expurgateData(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public int getNum(String userId, String isFeedback, String activityId) {
+        return baseMapper.getNum(userId,isFeedback,activityId);
+    }
+
+    @Override
+    public R filIn(String userId, String activityId, String content)
+    {
+        if (StringUtils.isEmpty(activityId))
+        {
+            return R.fail("活动id不能为空");
+        }
+
+        if(StringUtils.isEmpty(content))
+        {
+            return R.fail("填写内容不能为空");
+        }
+
+        //获取活动信息
+        JinhuiExperienceActivity activity=activityService.getDetails(activityId,userId);
+
+
+        //当前时间
+        long newTime=System.currentTimeMillis();
+
+        //活动开始时间
+        long activityStartTime=activity.getActivityStartTime().getTime();
+        //活动结束时间
+        long activityEndTime=activity.getActivityEndTime().getTime();
+
+        if(newTime<activityStartTime)
+        {
+            return R.fail("活动未开始");
+        }
+
+        if(newTime>activityEndTime)
+        {
+            return R.fail("活动已结束");
+        }
+
+        //获取报名体验详情
+        JinhuiApplyExperience applyExperience=baseMapper.getDetails(null,userId,activityId);
+        if(StringUtils.equals("1",applyExperience.getIsFeedback()))
+        {
+            return R.fail("体验不可重复提交");
+        }
+
+
+        JinhuiApplyExperienceVO applyExperienceVO=new JinhuiApplyExperienceVO();
+        applyExperienceVO.setId(applyExperience.getId());
+        applyExperienceVO.setExperienceContent(content);
+        applyExperienceVO.setIsFeedback("1");
+        applyExperienceVO.setUploadingTime(new Date());
+        baseMapper.editData(applyExperienceVO);
+
+
+
+        int award=0;
+        if(!StringUtils.isEmpty(activity.getAward()))
+        {
+            award=Integer.valueOf(activity.getAward());
+        }
+
+        if(award>0)
+        {
+            //增加积分明细
+            JinhuiGoldCoinRecordVO recordVO=new JinhuiGoldCoinRecordVO();
+            recordVO.setGoldCoin(activity.getAward());
+            recordVO.setUserId(userId);
+            recordVO.setTitle("参加体验活动奖励");
+            recordVO.setType("4");
+            recordService.addData(recordVO);
+            //修改用户积分
+
+            JinhuiCoinGeneralTableVO table=new JinhuiCoinGeneralTableVO();
+            table.setUserId(userId);
+            table.setGoldCoin(activity.getAward());
+            tableService.addData(table);
+        }
+        return R.ok();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiArticleManagementServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiArticleManagementServiceImpl.java
new file mode 100644
index 0000000..f07e8d4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiArticleManagementServiceImpl.java
@@ -0,0 +1,63 @@
+package com.panzhihua.service_jinhui_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiArticleManagementVO;
+import com.panzhihua.service_jinhui_community.dao.JinhuiArticleManagementDao;
+import com.panzhihua.service_jinhui_community.entity.JinhuiArticleManagement;
+import com.panzhihua.service_jinhui_community.service.JinhuiArticleManagementService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+
+@Slf4j
+@Service
+public class JinhuiArticleManagementServiceImpl extends ServiceImpl<JinhuiArticleManagementDao,
+        JinhuiArticleManagement> implements JinhuiArticleManagementService
+{
+
+    @Override
+    public R getList(int pageNum,int pageSize,String articleType,String conditionType)
+    {
+        Page page = new Page<JinhuiArticleManagement>(pageNum,pageSize);
+        return R.ok(baseMapper.getList(page,articleType,conditionType));
+    }
+
+    @Override
+    public JinhuiArticleManagement getDetails(String id) {
+        return baseMapper.getDetails(id);
+    }
+
+
+    @Override
+    public R addData(JinhuiArticleManagementVO item)
+    {
+        int num= baseMapper.addData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R editData(JinhuiArticleManagementVO item) {
+        int num= baseMapper.editData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("失败");
+    }
+
+    @Override
+    public R expurgateData(String id) {
+        int num= baseMapper.expurgateData(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("失败");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiCharityServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiCharityServiceImpl.java
new file mode 100644
index 0000000..ec9984f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiCharityServiceImpl.java
@@ -0,0 +1,68 @@
+package com.panzhihua.service_jinhui_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiCharityVO;
+import com.panzhihua.service_jinhui_community.dao.JinhuiCharityDao;
+import com.panzhihua.service_jinhui_community.entity.JinhuiCharity;
+import com.panzhihua.service_jinhui_community.service.JinhuiCharityService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+
+@Slf4j
+@Service
+public class JinhuiCharityServiceImpl extends ServiceImpl<JinhuiCharityDao,
+        JinhuiCharity> implements JinhuiCharityService
+{
+
+    @Override
+    public R getList(int pageNum,int pageSize,String title,String label,String state)
+    {
+        Page page = new Page<JinhuiCharity>(pageNum,pageSize);
+        return R.ok(baseMapper.getList(page, title, label, state));
+    }
+
+    @Override
+    public R getJinhuiCharityList() {
+        return R.ok(baseMapper.getJinhuiCharityList());
+    }
+
+    @Override
+    public JinhuiCharity getDetails(String id) {
+        return baseMapper.getDetails(id);
+    }
+
+
+    @Override
+    public R addData(JinhuiCharityVO item)
+    {
+        int num= baseMapper.addData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R editData(JinhuiCharityVO item) {
+        int num= baseMapper.editData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R expurgateData(String id) {
+        int num= baseMapper.expurgateData(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiCoinGeneralTableServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiCoinGeneralTableServiceImpl.java
new file mode 100644
index 0000000..8dc6ab4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiCoinGeneralTableServiceImpl.java
@@ -0,0 +1,85 @@
+package com.panzhihua.service_jinhui_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.VolunteerTypeVO;
+import com.panzhihua.common.model.vos.jinhui.JinhuiCoinGeneralTableVO;
+import com.panzhihua.service_jinhui_community.dao.JinhuiCoinGeneralTableDao;
+import com.panzhihua.service_jinhui_community.entity.JinhuiCoinGeneralTable;
+import com.panzhihua.service_jinhui_community.service.JinhuiCoinGeneralTableService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+
+@Slf4j
+@Service
+public class JinhuiCoinGeneralTableServiceImpl extends ServiceImpl<JinhuiCoinGeneralTableDao,
+        JinhuiCoinGeneralTable> implements JinhuiCoinGeneralTableService
+{
+
+    @Override
+    public R getList(int pageNum,int pageSize,String type)
+    {
+        Page page = new Page<>(pageNum,pageSize);
+        return R.ok(baseMapper.getList(page,type));
+    }
+
+    @Override
+    public JinhuiCoinGeneralTable getDetails(String userId) {
+        return baseMapper.getDetails(userId);
+    }
+
+
+    @Override
+    public R addData(JinhuiCoinGeneralTableVO volunteerTypeVO)
+    {
+        JinhuiCoinGeneralTable table=baseMapper.getDetails(volunteerTypeVO.getUserId());
+        if(table==null)
+        {
+            int num= baseMapper.addData(volunteerTypeVO);
+            if(num>0)
+            {
+                return R.ok();
+            }
+        }
+        else
+        {
+            //修改用户总积分
+            int volunteer=Integer.valueOf(volunteerTypeVO.getGoldCoin());
+            int myVolunteer=Integer.valueOf(table.getGoldCoin());
+            myVolunteer=myVolunteer+volunteer;
+            JinhuiCoinGeneralTableVO tableVO=new JinhuiCoinGeneralTableVO();
+            tableVO.setId(table.getId());
+            tableVO.setGoldCoin(myVolunteer+"");
+            int num= baseMapper.editData(tableVO);
+            if(num>0)
+            {
+                return R.ok();
+            }
+
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R editData(JinhuiCoinGeneralTableVO volunteerTypeVO) {
+        int num= baseMapper.editData(volunteerTypeVO);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R expurgateData(String id)
+    {
+        int num= baseMapper.expurgateData(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiComActQuestnaireSubSelectionServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiComActQuestnaireSubSelectionServiceImpl.java
new file mode 100644
index 0000000..af28e99
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiComActQuestnaireSubSelectionServiceImpl.java
@@ -0,0 +1,16 @@
+package com.panzhihua.service_jinhui_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.service_jinhui_community.dao.JinhuiComActQuestnaireSubSelectionDao;
+import com.panzhihua.service_jinhui_community.entity.JinhuiComActQuestnaireSubSelection;
+import org.springframework.stereotype.Service;
+
+/**
+ * @Author: llming
+ * @Description: 问卷题目
+ */
+@Service
+public class JinhuiComActQuestnaireSubSelectionServiceImpl
+    extends ServiceImpl<JinhuiComActQuestnaireSubSelectionDao, JinhuiComActQuestnaireSubSelection> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiComActWorkGuideClassifyServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiComActWorkGuideClassifyServiceImpl.java
new file mode 100644
index 0000000..843128e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiComActWorkGuideClassifyServiceImpl.java
@@ -0,0 +1,137 @@
+package com.panzhihua.service_jinhui_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.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActWorkGuideClassifyVO;
+import com.panzhihua.service_jinhui_community.dao.JinhuiComActWorkGuideClassifyDao;
+import com.panzhihua.service_jinhui_community.dao.JinhuiComActWorkGuideDAO;
+import com.panzhihua.service_jinhui_community.entity.JinhuiComActWorkGuide;
+import com.panzhihua.service_jinhui_community.entity.JinhuiComActWorkGuideClassify;
+import com.panzhihua.service_jinhui_community.service.JinhuiComActWorkGuideClassifyService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+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 JinhuiComActWorkGuideClassifyServiceImpl extends ServiceImpl<JinhuiComActWorkGuideClassifyDao,
+        JinhuiComActWorkGuideClassify> implements JinhuiComActWorkGuideClassifyService {
+
+    @Resource
+    private JinhuiComActWorkGuideClassifyDao comActWorkGuideClassifyDAO;
+    @Resource
+    private JinhuiComActWorkGuideDAO 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) {
+            // 修改
+            JinhuiComActWorkGuideClassify comActWorkGuideClassifyDO = comActWorkGuideClassifyDAO.selectById(comActWorkGuideClassifyVO.getId());
+            if (null == comActWorkGuideClassifyDO) {
+                return R.fail("该办事指南分类不存在");
+            }
+            JinhuiComActWorkGuideClassify checkCreditCode = comActWorkGuideClassifyDAO.selectOne(
+                    new QueryWrapper<JinhuiComActWorkGuideClassify>().lambda()
+                            .eq(JinhuiComActWorkGuideClassify::getClassifyName, comActWorkGuideClassifyVO.getClassifyName())
+                            .eq(JinhuiComActWorkGuideClassify::getAreaCode, comActWorkGuideClassifyVO.getAreaCode()));
+            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<JinhuiComActWorkGuideClassify>().lambda()
+                            .eq(JinhuiComActWorkGuideClassify::getClassifyName, comActWorkGuideClassifyVO.getClassifyName())
+                            .eq(JinhuiComActWorkGuideClassify::getAreaCode, comActWorkGuideClassifyVO.getAreaCode()));
+            if (count > 0) {
+                return R.fail("该办事指南分类已存在,办事指南分类名称重复");
+            }
+            JinhuiComActWorkGuideClassify comActWorkGuideClassifyDO = new JinhuiComActWorkGuideClassify();
+            BeanUtils.copyProperties(comActWorkGuideClassifyVO, comActWorkGuideClassifyDO);
+            comActWorkGuideClassifyDO.setCreateAt(new Date());
+            int insert = comActWorkGuideClassifyDAO.insert(comActWorkGuideClassifyDO);
+            if (insert > 0) {
+                return R.ok();
+            }
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R deleteWorkGuideClassify(String workGuideClassifyId) {
+        // 查询特殊群体人员
+        JinhuiComActWorkGuideClassify comActWorkGuideClassifyDO =
+                comActWorkGuideClassifyDAO.selectById(workGuideClassifyId);
+        if (comActWorkGuideClassifyDO == null) {
+            return R.fail("办事指南分类不存在");
+        }
+
+        Integer count = comActWorkGuideDAO.selectCount(new QueryWrapper<JinhuiComActWorkGuide>()
+                .lambda().eq(JinhuiComActWorkGuide::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(String areaCode) {
+        List<JinhuiComActWorkGuideClassify> comActWorkGuideClassifyDOS = comActWorkGuideClassifyDAO
+                .selectList(new QueryWrapper<JinhuiComActWorkGuideClassify>()
+                        .lambda().eq(JinhuiComActWorkGuideClassify::getAreaCode,areaCode));
+        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_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiComActWorkGuideServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiComActWorkGuideServiceImpl.java
new file mode 100644
index 0000000..696f153
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiComActWorkGuideServiceImpl.java
@@ -0,0 +1,334 @@
+package com.panzhihua.service_jinhui_community.service.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.collect.Lists;
+import com.panzhihua.common.model.dtos.community.ComActWorkGuideDTO;
+import com.panzhihua.common.model.dtos.community.PageActWorkGuideDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActWorkGuideAppletsVO;
+import com.panzhihua.common.model.vos.community.ComActWorkGuideDetailAppletsVO;
+import com.panzhihua.common.model.vos.community.ComActWorkGuideMaterialVO;
+import com.panzhihua.common.model.vos.community.ComActWorkGuideVO;
+import com.panzhihua.common.model.vos.community.questnaire.QuestnaiteSubSelectionVO;
+import com.panzhihua.common.model.vos.community.questnaire.QuestnaiteSubVO;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_jinhui_community.dao.*;
+import com.panzhihua.service_jinhui_community.entity.*;
+import com.panzhihua.service_jinhui_community.model.dos.ComActDO;
+import com.panzhihua.service_jinhui_community.service.JinhuiComActWorkGuideService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * @auther llming
+ * @describe 办事指南
+ */
+@Service
+public class JinhuiComActWorkGuideServiceImpl extends ServiceImpl<JinhuiComActWorkGuideDAO, JinhuiComActWorkGuide>
+    implements JinhuiComActWorkGuideService {
+    static String AK = "W3x8DhCWKc2UFIwYgclpRBdL6BeGLLQt"; // 百度地图密钥
+
+    @Resource
+    JinhuiComActWorkGuideMaterialDao workGuideMaterialDAO;
+    @Resource
+    private JinhuiComActWorkGuideClassifyDao comActWorkGuideClassifyDAO;
+    @Resource
+    ComActDAO comActDAO;
+
+    @Resource
+    private JinhuiComActQuestnaireSubDao questnaireSubDao;
+
+    @Resource
+    private JinhuiComActQuestnaireSubSelectionServiceImpl questnaireSubSelectionService;
+
+    @Override
+    public R addWorkGuide(ComActWorkGuideDTO workGuideDTO, String userId)
+    {
+        JinhuiComActWorkGuide comActWorkGuideDO = new JinhuiComActWorkGuide();
+        BeanUtils.copyProperties(workGuideDTO, comActWorkGuideDO);
+        comActWorkGuideDO.setCreateBy(userId);
+        comActWorkGuideDO.setCreateAt(new Date());
+
+        // 统计该调查问卷填报题目数量
+        int count = 0;
+        List<QuestnaiteSubVO> questnaiteSubVOS =null;
+        if(!StringUtils.isEmpty(workGuideDTO.getJsonObject()))
+        {
+            questnaiteSubVOS= JSON.parseArray(workGuideDTO.getJsonObject(), QuestnaiteSubVO.class);
+            if (questnaiteSubVOS!=null) {
+                count = questnaiteSubVOS.size();
+            }
+        }
+
+        comActWorkGuideDO.setCount(count);
+
+        // 保存办事指南材料
+        comActWorkGuideDO.getMaterials().forEach(material -> {
+            JinhuiComActWorkGuideMaterial workGuideMaterialDO = new JinhuiComActWorkGuideMaterial();
+            workGuideMaterialDO.setMaterialName(material.getMaterialName());
+            workGuideMaterialDO.setWorkGuideId(comActWorkGuideDO.getId());
+            workGuideMaterialDAO.insert(workGuideMaterialDO);
+        });
+
+
+        int quesCount = this.baseMapper.insert(comActWorkGuideDO);
+        if (quesCount != 1) {
+            return R.fail("创建失败");
+        }
+
+
+        if (questnaiteSubVOS!=null) {
+            questnaiteSubVOS.forEach(sub -> {
+                JinhuiComActQuestnaireSub comActQuestnaireSubDO = new JinhuiComActQuestnaireSub();
+                comActQuestnaireSubDO.setType(sub.getType()+"");
+                comActQuestnaireSubDO.setContent(sub.getLabel());
+                comActQuestnaireSubDO.setSort(sub.getSort()+"");
+                comActQuestnaireSubDO.setQueId(comActWorkGuideDO.getId());
+                comActQuestnaireSubDO.setCreateBy(userId);
+                comActQuestnaireSubDO.setKey(sub.getKey());
+                questnaireSubDao.insert(comActQuestnaireSubDO);
+                ArrayList<JinhuiComActQuestnaireSubSelection> subSelectionList = Lists.newArrayList();
+                if (sub.getOptions() != null && !sub.getOptions().isEmpty()) {
+                    List<QuestnaiteSubSelectionVO> subOptions = sub.getOptions();
+                    for (int i = 0; i < subOptions.size(); i++) {
+                        QuestnaiteSubSelectionVO subSelect = subOptions.get(i);
+                        JinhuiComActQuestnaireSubSelection subSelectionDO = new JinhuiComActQuestnaireSubSelection();
+                        subSelectionDO.setQueSubId(comActQuestnaireSubDO.getId()+"");
+                        if (subSelect.getType().equals(1)) {
+                            // 添加选项名称
+                            subSelectionDO.setOptionName(subSelect.getOptionName());
+                        } else {
+                            subSelectionDO.setOptionName(String.valueOf(Character.toChars('A' + i)));
+                        }
+                        subSelectionDO.setContent(subSelect.getLabel());
+                        subSelectionDO.setQueId(comActWorkGuideDO.getId());
+                        subSelectionDO.setCreateBy(userId);
+                        subSelectionDO.setType(subSelect.getType()+"");
+                        subSelectionDO.setKey(subSelect.getKey());
+                        subSelectionDO.setUrl(subSelect.getUrl());
+                        subSelectionList.add(subSelectionDO);
+                    }
+                }
+                questnaireSubSelectionService.saveBatch(subSelectionList);
+            });
+        }
+
+        return R.ok();
+    }
+
+    @Override
+    public R editWorkGuide(ComActWorkGuideDTO workGuideDTO, String userId) {
+        if (workGuideDTO.getId() == 0L) {
+            return R.fail("Id有误!");
+        }
+        JinhuiComActWorkGuide workGuideDO = this.baseMapper.selectById(workGuideDTO.getId());
+        if (workGuideDO == null) {
+            return R.fail("Id有误!");
+        }
+        BeanUtils.copyProperties(workGuideDTO, workGuideDO);
+        workGuideDO.setUpdateBy(userId+"");
+        workGuideDO.setUpdateAt(new Date());
+
+        if (workGuideDTO.getMaterials().size() == 0) {// 若编辑材料为null,执行删除操作
+            workGuideMaterialDAO.delete(new LambdaQueryWrapper<JinhuiComActWorkGuideMaterial>()
+                .eq(JinhuiComActWorkGuideMaterial::getWorkGuideId, workGuideDTO.getId()));
+        } else {// 若材料不为空,但是少了数据条数,也要执行删除
+            List<JinhuiComActWorkGuideMaterial> workGuideMaterialDOS =
+                workGuideMaterialDAO.selectList(new LambdaQueryWrapper<JinhuiComActWorkGuideMaterial>()
+                    .eq(JinhuiComActWorkGuideMaterial::getWorkGuideId, workGuideDTO.getId()));
+            // 1、筛选vo里面和db里,需要删除的材料数据
+            List<Long> voMaterialIds =
+                workGuideDTO.getMaterials().stream().filter(materialVo -> materialVo.getId() != null)
+                    .map(ComActWorkGuideMaterialVO::getId).collect(Collectors.toList());
+            List<Long> deleteMaterialIds = workGuideMaterialDOS.stream()
+                .filter(workGuideMaterialDO -> !voMaterialIds.contains(workGuideMaterialDO.getId()))
+                .map(JinhuiComActWorkGuideMaterial::getId).collect(Collectors.toList());
+            if (deleteMaterialIds.size() != 0) {
+                workGuideMaterialDAO.deleteBatchIds(deleteMaterialIds);
+            }
+            workGuideDTO.getMaterials().forEach(materialsVO -> {
+                if (materialsVO.getId() != null && materialsVO.getId() != 0L) {
+                    JinhuiComActWorkGuideMaterial workGuideMaterialDO1 = workGuideMaterialDOS.stream()
+                        .filter(workGuideMaterialDO -> workGuideMaterialDO.getId().equals(materialsVO.getId()))
+                        .findFirst().orElse(null);
+                    if (workGuideMaterialDO1 != null) {// 2、如果db有,执行编辑
+                        workGuideMaterialDO1.setMaterialName(materialsVO.getMaterialName());
+                        workGuideMaterialDAO.updateById(workGuideMaterialDO1);
+                    }
+                } else {// 3、如果db没有,执行新增
+                    JinhuiComActWorkGuideMaterial newWorkGuideMaterialDO = new JinhuiComActWorkGuideMaterial();
+                    newWorkGuideMaterialDO.setMaterialName(materialsVO.getMaterialName());
+                    newWorkGuideMaterialDO.setWorkGuideId(workGuideDO.getId());
+                    workGuideMaterialDAO.insert(newWorkGuideMaterialDO);
+                }
+            });
+        }
+
+        // 统计该调查问卷填报题目数量
+        int count = 0;
+        List<QuestnaiteSubVO> questnaiteSubVOS = JSON.parseArray(workGuideDO.getJsonObject(), QuestnaiteSubVO.class);
+        if (questnaiteSubVOS!=null && questnaiteSubVOS.size()>0 ) {
+            count = questnaiteSubVOS.size();
+        }
+        workGuideDO.setCount(count);
+        workGuideDO.setJsonObject(workGuideDO.getJsonObject());
+        this.baseMapper.updateById(workGuideDO);
+        // 删除原调查问卷题目以及选项,重新进行新增
+        baseMapper.deleteQuesSubAll(workGuideDO.getId());
+        baseMapper.deleteQuesSubAll2(workGuideDO.getId());
+        // 重新新增题目以及题目选项
+        if (questnaiteSubVOS!=null && questnaiteSubVOS.size()>0 ) {
+            questnaiteSubVOS.forEach(sub -> {
+                JinhuiComActQuestnaireSub comActQuestnaireSubDO = new JinhuiComActQuestnaireSub();
+                comActQuestnaireSubDO.setType(sub.getType()+"");
+                comActQuestnaireSubDO.setContent(sub.getLabel());
+                comActQuestnaireSubDO.setSort(sub.getSort()+"");
+                comActQuestnaireSubDO.setKey(sub.getKey());
+                comActQuestnaireSubDO.setQueId(workGuideDO.getId());
+                comActQuestnaireSubDO.setCreateBy(userId);
+                questnaireSubDao.insert(comActQuestnaireSubDO);
+                ArrayList<JinhuiComActQuestnaireSubSelection> subSelectionList = Lists.newArrayList();
+                if (sub.getOptions() != null && !sub.getOptions().isEmpty()) {
+                    List<QuestnaiteSubSelectionVO> subOptions = sub.getOptions();
+                    for (int i = 0; i < subOptions.size(); i++) {
+                        QuestnaiteSubSelectionVO subSelect = subOptions.get(i);
+                        JinhuiComActQuestnaireSubSelection subSelectionDO = new JinhuiComActQuestnaireSubSelection();
+                        subSelectionDO.setQueSubId(comActQuestnaireSubDO.getId()+"");
+                        if (subSelect.getType().equals(1)) {
+                            // 添加选项名称
+                            subSelectionDO.setOptionName(subSelect.getOptionName());
+                        } else {
+                            subSelectionDO.setOptionName(String.valueOf(Character.toChars('A' + i)));
+                        }
+                        subSelectionDO.setKey(subSelect.getKey());
+                        subSelectionDO.setContent(subSelect.getLabel());
+                        subSelectionDO.setQueId(workGuideDO.getId());
+                        subSelectionDO.setCreateBy(userId);
+                        subSelectionDO.setType(subSelect.getType()+"");
+                        subSelectionList.add(subSelectionDO);
+                    }
+                }
+                questnaireSubSelectionService.saveBatch(subSelectionList);
+            });
+        }
+
+
+
+
+        return R.ok();
+    }
+
+    @Override
+    public R detailWorkGuide(String workGuideId, String communityId) {
+        JinhuiComActWorkGuide workGuideDO = this.baseMapper.selectById(workGuideId);
+        if (workGuideDO == null) {
+            return R.fail("Id有误!");
+        }
+        ComActWorkGuideVO vo = new ComActWorkGuideVO();
+        BeanUtils.copyProperties(workGuideDO, vo);
+
+        if(!StringUtils.isEmpty(communityId))
+        {
+            ComActDO comActDO = comActDAO.selectById(communityId);
+            if (comActDO != null) {
+                vo.setAddress(comActDO.getAddress());
+                vo.setPhone(comActDO.getContactsPhone());
+                vo.setLon(comActDO.getLng());
+                vo.setLat(comActDO.getLat());
+            }
+
+            List<JinhuiComActWorkGuideMaterial> workGuideMaterialDOS =
+                    workGuideMaterialDAO.selectList(new LambdaQueryWrapper<JinhuiComActWorkGuideMaterial>()
+                            .eq(JinhuiComActWorkGuideMaterial::getWorkGuideId, workGuideId));
+            workGuideMaterialDOS.forEach(workGuideMaterialDO -> {
+                ComActWorkGuideMaterialVO workGuideMaterialVO = new ComActWorkGuideMaterialVO();
+                workGuideMaterialVO.setId(workGuideMaterialDO.getId());
+                workGuideMaterialVO.setMaterialName(workGuideMaterialDO.getMaterialName());
+                vo.getMaterials().add(workGuideMaterialVO);
+            });
+        }
+        return R.ok(vo);
+    }
+
+    @Override
+    public R pageWorkGuide(PageActWorkGuideDTO pageActWorkGuideDTO) {
+        Page page = new Page<>();
+        Long pageNum = pageActWorkGuideDTO.getPageNum();
+        Long pageSize = pageActWorkGuideDTO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<ComActWorkGuideVO> iPage = this.baseMapper.pageWorkGuide(page, pageActWorkGuideDTO);
+        if (!iPage.getRecords().isEmpty()) {
+            iPage.getRecords().forEach(comActWorkGuideVO -> {
+                JinhuiComActWorkGuideClassify comActWorkGuideClassifyDO = comActWorkGuideClassifyDAO.selectById(comActWorkGuideVO.getClassify());
+                if (comActWorkGuideClassifyDO != null) {
+                    comActWorkGuideVO.setClassifyName(comActWorkGuideClassifyDO.getClassifyName());
+                }
+            });
+        }
+        return R.ok(iPage);
+    }
+
+    @Override
+    public R delectWorkGuide(String workGuideId) {
+        this.baseMapper.deleteById(workGuideId);
+        workGuideMaterialDAO.delete(new LambdaQueryWrapper<JinhuiComActWorkGuideMaterial>()
+            .eq(JinhuiComActWorkGuideMaterial::getWorkGuideId, workGuideId));
+        return R.ok();
+    }
+
+    /**
+     * 办事指南列表-按分类查询
+     * @param pageActWorkGuideDTO   请求参数
+     * @return  办事指南分类列表
+     */
+    @Override
+    public R listWorkGuide(PageActWorkGuideDTO pageActWorkGuideDTO){
+        //结果数据集合
+        List<ComActWorkGuideAppletsVO> resultList = new ArrayList<>();
+
+        List<ComActWorkGuideAppletsVO> workGuideClassifyList =
+                comActWorkGuideClassifyDAO.listWorkGuideClassify(pageActWorkGuideDTO.getAreaCode());
+
+        final String isOnLine=pageActWorkGuideDTO.getIsOnLine();
+
+        //通过办事指南分类查询分类下办事指南
+        workGuideClassifyList.forEach(workGuideClassify ->
+        {
+            List<ComActWorkGuideDetailAppletsVO> workGuideList =
+                    this.baseMapper.getWorkGuideListByClassifyId(workGuideClassify.getId()+"",null,isOnLine);
+            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(String classifyId){
+        return R.ok(this.baseMapper.getWorkGuideListByClassifyId(classifyId,null,null));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiComConvenientServiceCategoriesServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiComConvenientServiceCategoriesServiceImpl.java
new file mode 100644
index 0000000..1e1f58c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiComConvenientServiceCategoriesServiceImpl.java
@@ -0,0 +1,63 @@
+package com.panzhihua.service_jinhui_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiComConvenientServiceCategoriesVO;
+import com.panzhihua.service_jinhui_community.dao.JinhuiComConvenientServiceCategoriesDao;
+import com.panzhihua.service_jinhui_community.entity.JinhuiComConvenientServiceCategories;
+import com.panzhihua.service_jinhui_community.service.JinhuiComConvenientServiceCategoriesService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+
+@Slf4j
+@Service
+public class JinhuiComConvenientServiceCategoriesServiceImpl extends ServiceImpl<JinhuiComConvenientServiceCategoriesDao,
+        JinhuiComConvenientServiceCategories> implements JinhuiComConvenientServiceCategoriesService
+{
+
+    @Override
+    public R getList(int pageNum,int pageSize)
+    {
+        Page page = new Page<>(pageNum,pageSize);
+        return R.ok(baseMapper.getList(page));
+    }
+
+    @Override
+    public JinhuiComConvenientServiceCategories getDetails(String userId) {
+        return baseMapper.getDetails(userId);
+    }
+
+
+    @Override
+    public R addData(JinhuiComConvenientServiceCategoriesVO volunteerTypeVO)
+    {
+        int num= baseMapper.addData(volunteerTypeVO);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R editData(JinhuiComConvenientServiceCategoriesVO volunteerTypeVO) {
+        int num= baseMapper.editData(volunteerTypeVO);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R expurgateData(String id) {
+        int num= baseMapper.expurgateData(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiConfigServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiConfigServiceImpl.java
new file mode 100644
index 0000000..d276488
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiConfigServiceImpl.java
@@ -0,0 +1,55 @@
+package com.panzhihua.service_jinhui_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiConfigVO;
+import com.panzhihua.service_jinhui_community.dao.JinhuiConfigDao;
+import com.panzhihua.service_jinhui_community.entity.JinhuiConfig;
+import com.panzhihua.service_jinhui_community.service.JinhuiConfigService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+
+@Slf4j
+@Service
+public class JinhuiConfigServiceImpl extends ServiceImpl<JinhuiConfigDao,
+        JinhuiConfig> implements JinhuiConfigService
+{
+
+    @Override
+    public JinhuiConfig getDetails(String id) {
+        return baseMapper.getDetails(id);
+    }
+
+
+    @Override
+    public R addData(JinhuiConfigVO item)
+    {
+        int num= baseMapper.addData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R editData(JinhuiConfigVO item) {
+        int num= baseMapper.editData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R expurgateData(String id) {
+        int num= baseMapper.expurgateData(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiConvenientMerchantServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiConvenientMerchantServiceImpl.java
new file mode 100644
index 0000000..3f6b9d9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiConvenientMerchantServiceImpl.java
@@ -0,0 +1,68 @@
+package com.panzhihua.service_jinhui_community.service.impl;
+
+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.model.dtos.community.convenient.JinhuiPageConvenientMerchantDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PageConvenientMerchantDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
+import com.panzhihua.common.model.vos.community.convenient.JinhuiConvenientMerchantVO;
+import com.panzhihua.service_jinhui_community.dao.JinhuiConvenientMerchantDao;
+import com.panzhihua.service_jinhui_community.entity.JinhuiConvenientMerchant;
+import com.panzhihua.service_jinhui_community.service.JinhuiConvenientMerchantService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * @title: ConvenientMerchantServiceImpl
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务商家服务实现类
+ * @author: hans
+ * @date: 2021/09/16 16:14
+ */
+@Service
+@Slf4j
+public class JinhuiConvenientMerchantServiceImpl extends ServiceImpl<JinhuiConvenientMerchantDao,
+        JinhuiConvenientMerchant> implements JinhuiConvenientMerchantService {
+
+    private static final String DQ = "510402";
+    private static final String RHQ = "510411";
+
+
+    @Override
+    public R deleteMerchant(String merchantId) {
+        int result = this.baseMapper.deleteMerchantById(merchantId);
+        if (result > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    @Override
+    public R pageMerchant(JinhuiPageConvenientMerchantDTO pageConvenientMerchantDTO) {
+        Page page = new Page<>();
+        page.setSize(pageConvenientMerchantDTO.getPageSize());
+        page.setCurrent(pageConvenientMerchantDTO.getPageNum());
+        IPage<JinhuiConvenientMerchant> iPage = this.baseMapper.pageMerchant(page, pageConvenientMerchantDTO);
+        return R.ok(iPage);
+    }
+
+    @Override
+    public R getMerchant(String merchantId) {
+        JinhuiConvenientMerchantVO convenientMerchantVO = this.baseMapper.selectMerchantById(merchantId);
+        return R.ok(convenientMerchantVO);
+    }
+
+    @Override
+    public R addData(JinhuiConvenientMerchantVO item) {
+        return R.ok(baseMapper.addData(item));
+    }
+
+    @Override
+    public R editData(JinhuiConvenientMerchantVO item) {
+        return R.ok(baseMapper.editData(item));
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiExperienceActivityServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiExperienceActivityServiceImpl.java
new file mode 100644
index 0000000..c4cac29
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiExperienceActivityServiceImpl.java
@@ -0,0 +1,167 @@
+package com.panzhihua.service_jinhui_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiExperienceActivityVO;
+import com.panzhihua.service_jinhui_community.dao.JinhuiExperienceActivityDao;
+import com.panzhihua.service_jinhui_community.entity.JinhuiExperienceActivity;
+import com.panzhihua.service_jinhui_community.service.JinhuiExperienceActivityService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+import java.util.List;
+
+
+@Slf4j
+@Service
+public class JinhuiExperienceActivityServiceImpl extends ServiceImpl<JinhuiExperienceActivityDao,
+        JinhuiExperienceActivity> implements JinhuiExperienceActivityService
+{
+
+    @Override
+    public R getList(int pageNum,int pageSize,String activityName,String activityType, Date starTime,Date endTime)
+    {
+        Page page = new Page<JinhuiExperienceActivity>(pageNum,pageSize);
+        return R.ok(baseMapper.getList(page,activityName,activityType,starTime,endTime));
+    }
+
+
+    @Override
+    public JinhuiExperienceActivity getDetails(String id,String userId) {
+        return baseMapper.getDetails(id,userId);
+    }
+
+
+    @Override
+    public R addData(JinhuiExperienceActivityVO item)
+    {
+        if(item.getApplyStartTime()==null)
+        {
+            return R.fail("报名开始时间不能为空");
+        }
+
+
+        if(item.getApplyStartTime()!=null)
+        {
+            if(item.getActivityStartTime().getTime()<System.currentTimeMillis())
+            {
+                return R.fail("报名开始时间不能小于当前时间");
+            }
+        }
+
+
+        if(item.getApplyEndTime()!=null)
+        {
+            if(item.getApplyEndTime().getTime()<System.currentTimeMillis())
+            {
+                return R.fail("报名结束时间不能小于当前时间");
+            }
+
+            if(item.getApplyEndTime().getTime() <= item.getActivityStartTime().getTime())
+            {
+                return R.fail("报名结束时间不能小于报名开始时间");
+            }
+
+        }
+
+        item.setActivityType("1");
+        int num= baseMapper.addData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R editData(JinhuiExperienceActivityVO item) {
+        int num= baseMapper.editData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R expurgateData(String id) {
+        int num= baseMapper.expurgateData(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+
+    //定时任务
+    @Override
+    public R timedTaskJinhuiActivitiesJobHandler()
+    {
+        //金汇体验活动
+        List<JinhuiExperienceActivity> list=baseMapper.getTimeList();
+
+        for(JinhuiExperienceActivity item:list)
+        {
+            //当前时间
+            long newTime=System.currentTimeMillis();
+            //活动报名时间
+            long applyStartTime=item.getApplyStartTime().getTime();
+            //报名结束时间
+            long applyEndTime=item.getApplyEndTime().getTime();
+            //活动开始时间
+            long activityStartTime=item.getActivityStartTime().getTime();
+            //活动结束时间
+            long activityEndTime=item.getActivityEndTime().getTime();
+
+
+            switch (item.getActivityType())
+            {
+                //待开始
+                case "1":
+                    if(newTime>=applyStartTime && newTime<=applyEndTime )
+                    {
+                        JinhuiExperienceActivityVO vo=new JinhuiExperienceActivityVO();
+                        vo.setId(item.getId());
+                        vo.setActivityType("2");
+                        baseMapper.editData(vo);
+                    }
+
+                    if(newTime>applyEndTime && newTime<activityStartTime  )
+                    {
+                        //报名结束
+                        JinhuiExperienceActivityVO vo=new JinhuiExperienceActivityVO();
+                        vo.setId(item.getId());
+                        vo.setActivityType("6");
+                        baseMapper.editData(vo);
+                    }
+
+                    break;
+                //报名中
+                case "2":
+                    if(newTime>=activityStartTime && newTime<=activityEndTime )
+                    {
+                        JinhuiExperienceActivityVO vo=new JinhuiExperienceActivityVO();
+                        vo.setId(item.getId());
+                        vo.setActivityType("3");
+                        baseMapper.editData(vo);
+                    }
+                    break;
+                //已开始
+                case "3":
+                    if(newTime<=activityEndTime )
+                    {
+                        JinhuiExperienceActivityVO vo=new JinhuiExperienceActivityVO();
+                        vo.setId(item.getId());
+                        vo.setActivityType("4");
+                        baseMapper.editData(vo);
+                    }
+                    break;
+            }
+        }
+
+        return R.ok();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiGoldCoinRecordServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiGoldCoinRecordServiceImpl.java
new file mode 100644
index 0000000..b82bf60
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiGoldCoinRecordServiceImpl.java
@@ -0,0 +1,63 @@
+package com.panzhihua.service_jinhui_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiGoldCoinRecordVO;
+import com.panzhihua.service_jinhui_community.dao.JinhuiGoldCoinRecordDao;
+import com.panzhihua.service_jinhui_community.entity.JinhuiGoldCoinRecord;
+import com.panzhihua.service_jinhui_community.service.JinhuiGoldCoinRecordService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+
+@Slf4j
+@Service
+public class JinhuiGoldCoinRecordServiceImpl extends ServiceImpl<JinhuiGoldCoinRecordDao,
+        JinhuiGoldCoinRecord> implements JinhuiGoldCoinRecordService
+{
+
+    @Override
+    public R getList(int pageNum,int pageSize,String userId)
+    {
+        Page page = new Page<JinhuiGoldCoinRecord>(pageNum,pageSize);
+        return R.ok(baseMapper.getList(page,userId));
+    }
+
+    @Override
+    public JinhuiGoldCoinRecord getDetails(String id) {
+        return baseMapper.getDetails(id);
+    }
+
+
+    @Override
+    public R addData(JinhuiGoldCoinRecordVO volunteerTypeVO)
+    {
+        int num= baseMapper.addData(volunteerTypeVO);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R editData(JinhuiGoldCoinRecordVO volunteerTypeVO) {
+        int num= baseMapper.editData(volunteerTypeVO);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R expurgateData(String id) {
+        int num= baseMapper.expurgateData(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiInterspaceApplyForServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiInterspaceApplyForServiceImpl.java
new file mode 100644
index 0000000..e4d72af
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiInterspaceApplyForServiceImpl.java
@@ -0,0 +1,69 @@
+package com.panzhihua.service_jinhui_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiInterspaceApplyForVO;
+import com.panzhihua.common.model.vos.jinhui.JinhuiInterspaceVO;
+import com.panzhihua.service_jinhui_community.dao.JinhuiInterspaceApplyForDao;
+import com.panzhihua.service_jinhui_community.dao.JinhuiInterspaceDao;
+import com.panzhihua.service_jinhui_community.entity.JinhuiInterspace;
+import com.panzhihua.service_jinhui_community.entity.JinhuiInterspaceApplyFor;
+import com.panzhihua.service_jinhui_community.service.JinhuiInterspaceApplyForService;
+import com.panzhihua.service_jinhui_community.service.JinhuiInterspaceService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+
+@Slf4j
+@Service
+public class JinhuiInterspaceApplyForServiceImpl extends ServiceImpl<JinhuiInterspaceApplyForDao,
+        JinhuiInterspaceApplyFor> implements JinhuiInterspaceApplyForService
+{
+
+    @Override
+    public R getList(int pageNum,int pageSize,String intendantType,String state,
+                     String interspaceTime,String subscribeTimeFrame,String interspaceId,String userId)
+    {
+        Page page = new Page<JinhuiInterspaceApplyFor>(pageNum,pageSize);
+        return R.ok(baseMapper.getList(page,intendantType,state,interspaceTime,subscribeTimeFrame,interspaceId,userId));
+    }
+
+    @Override
+    public JinhuiInterspaceApplyFor getDetails(String id) {
+        return baseMapper.getDetails(id);
+    }
+
+
+    @Override
+    public R addData(JinhuiInterspaceApplyForVO item)
+    {
+        item.setState("1");
+        int num= baseMapper.addData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R editData(JinhuiInterspaceApplyForVO item) {
+        int num= baseMapper.editData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R expurgateData(String id) {
+        int num= baseMapper.expurgateData(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiInterspaceServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiInterspaceServiceImpl.java
new file mode 100644
index 0000000..8976b61
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiInterspaceServiceImpl.java
@@ -0,0 +1,63 @@
+package com.panzhihua.service_jinhui_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiInterspaceVO;
+import com.panzhihua.service_jinhui_community.dao.JinhuiInterspaceDao;
+import com.panzhihua.service_jinhui_community.entity.JinhuiInterspace;
+import com.panzhihua.service_jinhui_community.service.JinhuiInterspaceService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+
+@Slf4j
+@Service
+public class JinhuiInterspaceServiceImpl extends ServiceImpl<JinhuiInterspaceDao,
+        JinhuiInterspace> implements JinhuiInterspaceService
+{
+
+    @Override
+    public R getList(int pageNum,int pageSize,String intendantType)
+    {
+        Page page = new Page<JinhuiInterspace>(pageNum,pageSize);
+        return R.ok(baseMapper.getList(page,intendantType));
+    }
+
+    @Override
+    public JinhuiInterspace getDetails(String id) {
+        return baseMapper.getDetails(id);
+    }
+
+
+    @Override
+    public R addData(JinhuiInterspaceVO item)
+    {
+        int num= baseMapper.addData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R editData(JinhuiInterspaceVO item) {
+        int num= baseMapper.editData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R expurgateData(String id) {
+        int num= baseMapper.expurgateData(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiInterspaceTypeServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiInterspaceTypeServiceImpl.java
new file mode 100644
index 0000000..af0a8ac
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiInterspaceTypeServiceImpl.java
@@ -0,0 +1,64 @@
+package com.panzhihua.service_jinhui_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiInterspaceTypeVO;
+import com.panzhihua.service_jinhui_community.dao.JinhuiInterspaceTypeDao;
+import com.panzhihua.service_jinhui_community.entity.JinhuiInterspace;
+import com.panzhihua.service_jinhui_community.entity.JinhuiInterspaceType;
+import com.panzhihua.service_jinhui_community.service.JinhuiInterspaceTypeService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+
+@Slf4j
+@Service
+public class JinhuiInterspaceTypeServiceImpl extends ServiceImpl<JinhuiInterspaceTypeDao,
+        JinhuiInterspaceType> implements JinhuiInterspaceTypeService
+{
+
+    @Override
+    public R getList(int pageNum,int pageSize)
+    {
+        Page page = new Page<JinhuiInterspace>(pageNum,pageSize);
+        return R.ok(baseMapper.getList(page));
+    }
+
+    @Override
+    public JinhuiInterspaceType getDetails(String id) {
+        return baseMapper.getDetails(id);
+    }
+
+
+    @Override
+    public R addData(JinhuiInterspaceTypeVO item)
+    {
+        int num= baseMapper.addData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R editData(JinhuiInterspaceTypeVO item) {
+        int num= baseMapper.editData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R expurgateData(String id) {
+        int num= baseMapper.expurgateData(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiLargeScreenImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiLargeScreenImpl.java
new file mode 100644
index 0000000..469682e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiLargeScreenImpl.java
@@ -0,0 +1,136 @@
+package com.panzhihua.service_jinhui_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.jinhui.*;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_jinhui_community.dao.JinhuiLargeScreenDao;
+import com.panzhihua.service_jinhui_community.service.JinhuiLargeScreenService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+
+@Slf4j
+@Service
+public class JinhuiLargeScreenImpl extends ServiceImpl<JinhuiLargeScreenDao,
+        String> implements JinhuiLargeScreenService
+{
+
+
+    @Override
+    public String getMienNum(String communityId) {
+        return baseMapper.getMienNum(communityId);
+    }
+
+    @Override
+    public String getVolunteerServeNum(String communityId) {
+        return baseMapper.getVolunteerServeNum(communityId);
+    }
+
+    @Override
+    public String getMicroVolunteeringNum(String state) {
+        return baseMapper.getMicroVolunteeringNum(state);
+    }
+
+    @Override
+    public String getConvenientMerchantsNum(String auditType) {
+        return baseMapper.getConvenientMerchantsNum(auditType);
+    }
+
+    @Override
+    public List<JinhuiMerchantTypeVO> getMerchantTypeNum() {
+        return baseMapper.getMerchantTypeNum();
+    }
+
+    @Override
+    public JinhuiCommunityServicesVO baseInfo(String communityId) {
+        return baseMapper.baseInfo(communityId);
+    }
+
+    @Override
+    public String getWorkGuideNum() {
+        return baseMapper.getWorkGuideNum();
+    }
+
+    @Override
+    public String getInterspaceApplyNum(String state) {
+        return baseMapper.getInterspaceApplyNum(state);
+    }
+
+    @Override
+    public String getShoppingOrderNum(String cancelType) {
+        return baseMapper.getShoppingOrderNum(cancelType);
+    }
+
+    @Override
+    public String getServiceTeam(String communityId, String type)
+    {
+        return baseMapper.getServiceTeam(communityId,type);
+    }
+
+    @Override
+    public String getEarlyWarningNum(String disposeType, String communityId) {
+        return baseMapper.getEarlyWarningNum(disposeType,communityId);
+    }
+
+    @Override
+    public List<JinhuiOldManVO> getEarlyWarningList(String disposeType, String communityId) {
+        return baseMapper.getEarlyWarningList(disposeType,communityId);
+    }
+
+    @Override
+    public String getBraceletUser(String  sex, String communityId) {
+        return baseMapper.getBraceletUser(sex,communityId);
+    }
+
+    @Override
+    public List<JinhuiOldManBrokenLineVO> getEventAddPolylineData(String communityId)
+    {
+        List<JinhuiOldManBrokenLineVO> list=baseMapper.getEventAddPolylineData(communityId);
+        list.forEach(e -> {
+            String temp = baseMapper.getEventTotalPolylineDate(communityId, e.getFiled());
+            e.setTotalNum(temp);
+        });
+
+        return list;
+    }
+
+    @Override
+    public String getEventTotalPolylineDate(String communityId,String date) {
+        return baseMapper.getEventTotalPolylineDate(communityId,date);
+    }
+
+    @Override
+    public List<JinhuiOldManUserDateVO> getOldManUserDate(String communityId)
+    {
+        List<JinhuiOldManUserDateVO> list=baseMapper.getOldManUserDate(communityId);
+        list.forEach(e -> {
+            //判断是否异常
+            if(StringUtils.equals("1",e.getIsAbnormal()))
+            {
+                //是否正常 (0 正常   1异常  2 待服务)
+                String temp = baseMapper.getEarlyNewDate(communityId, e.getDeviceId());
+                //处理状态(1 未处理   2 已处理   3处理中  4 忽略)
+                if(StringUtils.equals("3",temp))
+                {
+                    e.setIsAbnormal("2");
+                }
+                else if(StringUtils.equals("2",temp) || StringUtils.equals("4",temp) )
+                {
+                    e.setIsAbnormal("0");
+                }
+            }
+
+        });
+        return list;
+    }
+
+    @Override
+    public String getEarlyNewDate(String communityId, String equipmentNumber) {
+        return baseMapper.getEarlyNewDate(communityId,equipmentNumber);
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiMicroVolunteeringServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiMicroVolunteeringServiceImpl.java
new file mode 100644
index 0000000..55b91a6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiMicroVolunteeringServiceImpl.java
@@ -0,0 +1,68 @@
+package com.panzhihua.service_jinhui_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiInterspaceVO;
+import com.panzhihua.common.model.vos.jinhui.JinhuiMicroVolunteeringVO;
+import com.panzhihua.service_jinhui_community.dao.JinhuiInterspaceDao;
+import com.panzhihua.service_jinhui_community.dao.JinhuiMicroVolunteeringDao;
+import com.panzhihua.service_jinhui_community.entity.JinhuiInterspace;
+import com.panzhihua.service_jinhui_community.entity.JinhuiMicroVolunteering;
+import com.panzhihua.service_jinhui_community.service.JinhuiInterspaceService;
+import com.panzhihua.service_jinhui_community.service.JinhuiMicroVolunteeringService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+
+@Slf4j
+@Service
+public class JinhuiMicroVolunteeringServiceImpl extends ServiceImpl<JinhuiMicroVolunteeringDao,
+        JinhuiMicroVolunteering> implements JinhuiMicroVolunteeringService
+{
+
+    @Override
+    public R getList(int pageNum,int pageSize,String userId,String state)
+    {
+        Page page = new Page<JinhuiMicroVolunteering>(pageNum,pageSize);
+        return R.ok(baseMapper.getList(page,userId,state));
+    }
+
+    @Override
+    public JinhuiMicroVolunteering getDetails(String id) {
+        return baseMapper.getDetails(id);
+    }
+
+
+    @Override
+    public R addData(JinhuiMicroVolunteeringVO item)
+    {
+        item.setState("1");
+        int num= baseMapper.addData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R editData(JinhuiMicroVolunteeringVO item) {
+        int num= baseMapper.editData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R expurgateData(String id) {
+        int num= baseMapper.expurgateData(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiMicroVolunteeringTypeServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiMicroVolunteeringTypeServiceImpl.java
new file mode 100644
index 0000000..6301459
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiMicroVolunteeringTypeServiceImpl.java
@@ -0,0 +1,64 @@
+package com.panzhihua.service_jinhui_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiMicroVolunteeringTypeVO;
+import com.panzhihua.service_jinhui_community.dao.JinhuiMicroVolunteeringTypeDao;
+import com.panzhihua.service_jinhui_community.entity.JinhuiInterspace;
+import com.panzhihua.service_jinhui_community.entity.JinhuiMicroVolunteeringType;
+import com.panzhihua.service_jinhui_community.service.JinhuiMicroVolunteeringTypeService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+
+@Slf4j
+@Service
+public class JinhuiMicroVolunteeringTypeServiceImpl extends ServiceImpl<JinhuiMicroVolunteeringTypeDao,
+        JinhuiMicroVolunteeringType> implements JinhuiMicroVolunteeringTypeService
+{
+
+    @Override
+    public R getList(int pageNum,int pageSize)
+    {
+        Page page = new Page<JinhuiInterspace>(pageNum,pageSize);
+        return R.ok(baseMapper.getList(page));
+    }
+
+    @Override
+    public JinhuiMicroVolunteeringType getDetails(String id) {
+        return baseMapper.getDetails(id);
+    }
+
+
+    @Override
+    public R addData(JinhuiMicroVolunteeringTypeVO item)
+    {
+        int num= baseMapper.addData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R editData(JinhuiMicroVolunteeringTypeVO item) {
+        int num= baseMapper.editData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R expurgateData(String id) {
+        int num= baseMapper.expurgateData(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiQuestnaireUserAnswerServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiQuestnaireUserAnswerServiceImpl.java
new file mode 100644
index 0000000..f202800
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiQuestnaireUserAnswerServiceImpl.java
@@ -0,0 +1,83 @@
+package com.panzhihua.service_jinhui_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiQuestnaireUserAnswerVO;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_jinhui_community.dao.JinhuiQuestnaireUserAnswerDao;
+import com.panzhihua.service_jinhui_community.entity.JinhuiQuestnaireUserAnswer;
+import com.panzhihua.service_jinhui_community.service.JinhuiQuestnaireUserAnswerService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+
+@Slf4j
+@Service
+public class JinhuiQuestnaireUserAnswerServiceImpl extends ServiceImpl<JinhuiQuestnaireUserAnswerDao,
+        JinhuiQuestnaireUserAnswer> implements JinhuiQuestnaireUserAnswerService
+{
+
+    @Override
+    public R getList(int pageNum,int pageSize,String userId,String transactType)
+    {
+        Page page = new Page<JinhuiQuestnaireUserAnswer>(pageNum,pageSize);
+        return R.ok(baseMapper.getList(page,userId,transactType));
+    }
+
+    @Override
+    public JinhuiQuestnaireUserAnswer getDetails(String id,String questnaireId,String userId,String transactType) {
+        return baseMapper.getDetails(id,questnaireId,userId,transactType);
+    }
+
+
+    @Override
+    public R addData(JinhuiQuestnaireUserAnswerVO item)
+    {
+        if (StringUtils.isEmpty(item.getQuestnaireId()))
+        {
+            return R.fail("办事指南id不能为空");
+        }
+
+        if(StringUtils.isEmpty(item.getJsonObject()))
+        {
+            return R.fail("用户解答数据不能为空");
+        }
+
+        JinhuiQuestnaireUserAnswer answer=baseMapper.getDetails(null,item.getQuestnaireId(),item.getUserId(),"0");
+        if(answer!=null)
+        {
+            return R.fail("该事件已提交过!");
+        }
+
+        int num= baseMapper.addData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R editData(JinhuiQuestnaireUserAnswerVO item) {
+        int num= baseMapper.editData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R expurgateData(String id) {
+        int num= baseMapper.expurgateData(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiReseauPeopleServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiReseauPeopleServiceImpl.java
new file mode 100644
index 0000000..1027726
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiReseauPeopleServiceImpl.java
@@ -0,0 +1,72 @@
+package com.panzhihua.service_jinhui_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiReseauPeopleVO;
+import com.panzhihua.service_jinhui_community.dao.JinhuiReseauPeopleDao;
+import com.panzhihua.service_jinhui_community.entity.JinhuiReseauPeople;
+import com.panzhihua.service_jinhui_community.entity.JinhuiSnapshot;
+import com.panzhihua.service_jinhui_community.service.JinhuiReseauPeopleService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+
+@Slf4j
+@Service
+public class JinhuiReseauPeopleServiceImpl extends ServiceImpl<JinhuiReseauPeopleDao,
+        JinhuiReseauPeople> implements JinhuiReseauPeopleService
+{
+
+    @Override
+    public R getList(int pageNum,int pageSize)
+    {
+        Page page = new Page<JinhuiSnapshot>(pageNum,pageSize);
+        return R.ok(baseMapper.getList(page));
+    }
+
+    @Override
+    public R getUserList(int pageNum, int pageSize, String communityId,String nameAndPhone)
+    {
+        Page page = new Page<LoginUserInfoVO>(pageNum,pageSize);
+        return R.ok(baseMapper.getUserList(page,communityId,nameAndPhone));
+    }
+
+    @Override
+    public JinhuiReseauPeople getDetails(String id) {
+        return baseMapper.getDetails(id);
+    }
+
+
+    @Override
+    public R addData(JinhuiReseauPeopleVO item)
+    {
+        int num= baseMapper.addData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R editData(JinhuiReseauPeopleVO item) {
+        int num= baseMapper.editData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R expurgateData(String id) {
+        int num= baseMapper.expurgateData(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiReseauServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiReseauServiceImpl.java
new file mode 100644
index 0000000..6770cbf
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiReseauServiceImpl.java
@@ -0,0 +1,70 @@
+package com.panzhihua.service_jinhui_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiReseauVO;
+import com.panzhihua.service_jinhui_community.dao.JinhuiReseauDao;
+import com.panzhihua.service_jinhui_community.entity.JinhuiReseau;
+import com.panzhihua.service_jinhui_community.service.JinhuiReseauService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+
+@Slf4j
+@Service
+public class JinhuiReseauServiceImpl extends ServiceImpl<JinhuiReseauDao,
+        JinhuiReseau> implements JinhuiReseauService
+{
+
+    @Override
+    public R getList(int pageNum,int pageSize)
+    {
+        Page page = new Page<JinhuiReseau>(pageNum,pageSize);
+        return R.ok(baseMapper.getList(page));
+    }
+
+    @Override
+    public List<JinhuiReseau> getBoxList() {
+        return baseMapper.getBoxList();
+    }
+
+    @Override
+    public JinhuiReseau getDetails(String id) {
+        return baseMapper.getDetails(id);
+    }
+
+
+    @Override
+    public R addData(JinhuiReseauVO item)
+    {
+        int num= baseMapper.addData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R editData(JinhuiReseauVO item) {
+        int num= baseMapper.editData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R expurgateData(String id) {
+        int num= baseMapper.expurgateData(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiShoppingOrderServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiShoppingOrderServiceImpl.java
new file mode 100644
index 0000000..e7ef119
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiShoppingOrderServiceImpl.java
@@ -0,0 +1,179 @@
+package com.panzhihua.service_jinhui_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiCoinGeneralTableVO;
+import com.panzhihua.common.model.vos.jinhui.JinhuiGoldCoinRecordVO;
+import com.panzhihua.common.model.vos.jinhui.JinhuiShoppingOrderVO;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.service_jinhui_community.dao.JinhuiShoppingOrderDao;
+import com.panzhihua.service_jinhui_community.entity.JinhuiCoinGeneralTable;
+import com.panzhihua.service_jinhui_community.entity.JinhuiShopping;
+import com.panzhihua.service_jinhui_community.entity.JinhuiShoppingOrder;
+import com.panzhihua.service_jinhui_community.service.JinhuiCoinGeneralTableService;
+import com.panzhihua.service_jinhui_community.service.JinhuiGoldCoinRecordService;
+import com.panzhihua.service_jinhui_community.service.JinhuiShoppingOrderService;
+import com.panzhihua.service_jinhui_community.service.JinhuiShoppingService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+
+@Slf4j
+@Service
+public class JinhuiShoppingOrderServiceImpl extends ServiceImpl<JinhuiShoppingOrderDao,
+        JinhuiShoppingOrder> implements JinhuiShoppingOrderService
+{
+
+    @Resource
+    private JinhuiShoppingService shoppingService;
+
+    @Resource
+    private JinhuiCoinGeneralTableService tableService;
+
+    @Resource
+    private JinhuiGoldCoinRecordService goldCoinRecordService;
+
+    @Override
+    public R getList(int pageNum,int pageSize,String userId,String goodsId,String orderNumber,
+                     String goodName,String name,String cancelType,String communityId)
+    {
+        Page page = new Page<JinhuiShopping>(pageNum,pageSize);
+        return R.ok(baseMapper.getList(page,userId,goodsId,orderNumber,goodName,name,cancelType,communityId));
+    }
+
+    @Override
+    public JinhuiShoppingOrder getDetails(String id,String communityId) {
+        return baseMapper.getDetails(id,communityId);
+    }
+
+
+    @Override
+    public R addData(JinhuiShoppingOrderVO item)
+    {
+        item.setOrderNumber(Snowflake.getId()+"");
+        JinhuiCoinGeneralTable generalTable=tableService.getDetails(item.getUserId());
+        JinhuiShopping goods=shoppingService.getDetails(item.getGoodsId(),null);
+
+        int allMoney=0;
+        int getMoney=Integer.valueOf(goods.getGoodPrice());
+
+
+        if(generalTable==null)
+        {
+            return R.fail("金汇币不足!");
+        }
+
+        if(!StringUtils.isEmpty(generalTable.getGoldCoin()))
+        {
+            allMoney=Integer.valueOf(generalTable.getGoldCoin());
+        }
+        if(getMoney>allMoney)
+        {
+            return R.fail("金汇币不足!");
+        }
+
+        item.setCancelType("0");
+        item.setPalyMoney(goods.getGoodPrice());
+        int num= baseMapper.addData(item);
+        if(num>0)
+        {
+            //修改个人金汇币总额
+            allMoney=allMoney-getMoney;
+            JinhuiCoinGeneralTableVO generalTableVO=new JinhuiCoinGeneralTableVO();
+            generalTableVO.setId(generalTable.getId());
+            generalTableVO.setGoldCoin(allMoney+"");
+            tableService.editData(generalTableVO);
+
+            //增加兑换记录
+            JinhuiGoldCoinRecordVO recordVO=new JinhuiGoldCoinRecordVO();
+            recordVO.setTitle("兑换商品");
+            recordVO.setType("2");
+            recordVO.setUserId(item.getUserId());
+            recordVO.setGoldCoin(getMoney+"");
+            goldCoinRecordService.addData(recordVO);
+
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R editData(JinhuiShoppingOrderVO item) {
+        int num= baseMapper.editData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R cancelOrder(String orderId,String communityId)
+    {
+        JinhuiShoppingOrder order=baseMapper.getDetails(orderId,communityId);
+
+        if(!StringUtils.equals("0",order.getCancelType()))
+        {
+            return R.fail("订单不是待核销状态");
+        }
+
+        JinhuiShoppingOrderVO orderVO=new JinhuiShoppingOrderVO();
+        orderVO.setId(orderId);
+        orderVO.setCancelType("2");
+        orderVO.setAbolishTime(new Date());
+        int num=baseMapper.editData(orderVO);
+        if(num>0)
+        {
+            JinhuiCoinGeneralTable generalTable=tableService.getDetails(order.getUserId());
+
+            int allMoney=0;
+            int getMoney=Integer.valueOf(order.getPalyMoney());
+
+            if(!StringUtils.isEmpty(generalTable.getGoldCoin()))
+            {
+                allMoney=Integer.valueOf(generalTable.getGoldCoin());
+            }
+
+            //修改个人金汇币总额
+            allMoney=allMoney+getMoney;
+            JinhuiCoinGeneralTableVO generalTableVO=new JinhuiCoinGeneralTableVO();
+            generalTableVO.setId(generalTable.getId());
+            generalTableVO.setGoldCoin(allMoney+"");
+            tableService.editData(generalTableVO);
+
+            //增加兑换记录
+            JinhuiGoldCoinRecordVO recordVO=new JinhuiGoldCoinRecordVO();
+            recordVO.setTitle("商品订单取消");
+            recordVO.setType("3");
+            recordVO.setUserId(order.getUserId());
+            recordVO.setGoldCoin(getMoney+"");
+            goldCoinRecordService.addData(recordVO);
+
+            return R.ok();
+        }
+        return R.fail("取消失败");
+    }
+
+    @Override
+    public R expurgateData(String id,String communityId)
+    {
+        JinhuiShoppingOrder order=baseMapper.getDetails(id,communityId);
+
+        if(StringUtils.equals("0",order.getCancelType()))
+        {
+            return R.fail("待核销订单不能删除");
+        }
+
+        int num= baseMapper.expurgateData(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiShoppingServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiShoppingServiceImpl.java
new file mode 100644
index 0000000..d7d94d9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiShoppingServiceImpl.java
@@ -0,0 +1,68 @@
+package com.panzhihua.service_jinhui_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiMicroVolunteeringVO;
+import com.panzhihua.common.model.vos.jinhui.JinhuiShoppingVO;
+import com.panzhihua.service_jinhui_community.dao.JinhuiMicroVolunteeringDao;
+import com.panzhihua.service_jinhui_community.dao.JinhuiShoppingDao;
+import com.panzhihua.service_jinhui_community.entity.JinhuiMicroVolunteering;
+import com.panzhihua.service_jinhui_community.entity.JinhuiShopping;
+import com.panzhihua.service_jinhui_community.service.JinhuiMicroVolunteeringService;
+import com.panzhihua.service_jinhui_community.service.JinhuiShoppingService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Service;
+
+
+@Slf4j
+@Service
+public class JinhuiShoppingServiceImpl extends ServiceImpl<JinhuiShoppingDao,
+        JinhuiShopping> implements JinhuiShoppingService
+{
+
+    @Override
+    public R getList(int pageNum,int pageSize,String goodName, String goodType, String id)
+    {
+        Page page = new Page<JinhuiShopping>(pageNum,pageSize);
+        return R.ok(baseMapper.getList(page,goodName,goodType,id));
+    }
+
+    @Override
+    public JinhuiShopping getDetails(String id,String communityId) {
+        return baseMapper.getDetails(id,communityId);
+    }
+
+
+    @Override
+    public R addData(JinhuiShoppingVO item)
+    {
+        int num= baseMapper.addData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R editData(JinhuiShoppingVO item) {
+        int num= baseMapper.editData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R expurgateData(String id) {
+        int num= baseMapper.expurgateData(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiSnapshotClassifyServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiSnapshotClassifyServiceImpl.java
new file mode 100644
index 0000000..36dc0db
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiSnapshotClassifyServiceImpl.java
@@ -0,0 +1,63 @@
+package com.panzhihua.service_jinhui_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiSnapshotClassifyVO;
+import com.panzhihua.service_jinhui_community.dao.JinhuiSnapshotClassifyDao;
+import com.panzhihua.service_jinhui_community.entity.JinhuiSnapshotClassify;
+import com.panzhihua.service_jinhui_community.service.JinhuiSnapshotClassifyService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+
+@Slf4j
+@Service
+public class JinhuiSnapshotClassifyServiceImpl extends ServiceImpl<JinhuiSnapshotClassifyDao,
+        JinhuiSnapshotClassify> implements JinhuiSnapshotClassifyService
+{
+
+    @Override
+    public R getList(int pageNum,int pageSize)
+    {
+        Page page = new Page<JinhuiSnapshotClassify>(pageNum,pageSize);
+        return R.ok(baseMapper.getList(page));
+    }
+
+    @Override
+    public JinhuiSnapshotClassify getDetails(String id) {
+        return baseMapper.getDetails(id);
+    }
+
+
+    @Override
+    public R addData(JinhuiSnapshotClassifyVO item)
+    {
+        int num= baseMapper.addData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R editData(JinhuiSnapshotClassifyVO item) {
+        int num= baseMapper.editData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R expurgateData(String id) {
+        int num= baseMapper.expurgateData(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiSnapshotServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiSnapshotServiceImpl.java
new file mode 100644
index 0000000..515ad22
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/java/com/panzhihua/service_jinhui_community/service/impl/JinhuiSnapshotServiceImpl.java
@@ -0,0 +1,63 @@
+package com.panzhihua.service_jinhui_community.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiSnapshotVO;
+import com.panzhihua.service_jinhui_community.dao.JinhuiSnapshotDao;
+import com.panzhihua.service_jinhui_community.entity.JinhuiSnapshot;
+import com.panzhihua.service_jinhui_community.service.JinhuiSnapshotService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+
+@Slf4j
+@Service
+public class JinhuiSnapshotServiceImpl extends ServiceImpl<JinhuiSnapshotDao,
+        JinhuiSnapshot> implements JinhuiSnapshotService
+{
+
+    @Override
+    public R getList(int pageNum,int pageSize)
+    {
+        Page page = new Page<JinhuiSnapshot>(pageNum,pageSize);
+        return R.ok(baseMapper.getList(page));
+    }
+
+    @Override
+    public JinhuiSnapshot getDetails(String id) {
+        return baseMapper.getDetails(id);
+    }
+
+
+    @Override
+    public R addData(JinhuiSnapshotVO item)
+    {
+        int num= baseMapper.addData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R editData(JinhuiSnapshotVO item) {
+        int num= baseMapper.editData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R expurgateData(String id) {
+        int num= baseMapper.expurgateData(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/bootstrap.yml b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..0e7aab6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/bootstrap.yml
@@ -0,0 +1,43 @@
+spring:
+  application:
+    name: huacheng-jinhui-community
+  cloud:
+    config:
+      discovery:
+        enabled: true
+        service-id: huacheng-config  # 注册中心的服务名
+      profile: ${ENV:dev}  # 指定配置文件的环境
+      uri: http://${CONFIG_URL:localhost}:6193/
+  profiles:
+    active: ${ENV:dev}
+  servlet:
+    multipart:
+      max-file-size: 10MB
+      max-request-size: 10MB
+
+
+eureka:
+  client:
+    service-url:
+      defaultZone: http://${EUREKA_URL:localhost}:8192/eureka
+
+#实体加密、解密、字段脱敏拦截设置
+domain:
+  decrypt: true
+  encrypt: true
+  aesKey: Ryo7M3n8loC5
+  sensitive: true
+
+management:
+  endpoints:
+    web:
+      exposure:
+        include: '*'
+
+  endpoint:
+    health:
+      show-details: always
+
+  metrics:
+    tags:
+      application: huacheng-jinhui-community
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/logback-spring.xml b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..3289870
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/logback-spring.xml
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration debug="false">
+    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
+    <springProfile name="dev">
+        <property name="LOG_HOME" value="F:\log"/>
+    </springProfile>
+       <springProfile name="test">
+        <property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    </springProfile>
+<property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    <!-- 控制台输出 -->
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+    </appender>
+    <!-- 按照每天生成日志文件 -->
+    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!--日志文件输出的文件名-->
+            <FileNamePattern>${LOG_HOME}/huachengservice_community.log.%d{yyyy-MM-dd}.log</FileNamePattern>
+            <!--日志文件保留天数-->
+            <MaxHistory>30</MaxHistory>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+        <!--日志文件最大的大小-->
+        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <MaxFileSize>10MB</MaxFileSize>
+        </triggeringPolicy>
+    </appender>
+
+    <!--myibatis log configure-->
+    <logger name="com.apache.ibatis" level="TRACE"/>
+    <logger name="java.sql.Connection" level="DEBUG"/>
+    <logger name="java.sql.Statement" level="DEBUG"/>
+    <logger name="java.sql.PreparedStatement" level="DEBUG"/>
+    <logger name="com.panzhihua.service_community" level="DEBUG"/>
+
+    <!-- 日志输出级别 -->
+    <root level="DEBUG">
+        <appender-ref ref="STDOUT" />
+    </root>
+    <root level="INFO">
+        <appender-ref ref="STDOUT" />
+        <appender-ref ref="FILE" />
+    </root>
+
+    <!--慢接口和方法日志记录到不同的文件-->
+    <appender name="slowClassAndMethodAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <File>${LOG_HOME}/slow_service_community.log</File>
+        <append>true</append>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>INFO</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${LOG_HOME}/slow_service_community.%d.%i.log</fileNamePattern>
+            <maxHistory>10</maxHistory>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>10MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+        </rollingPolicy>
+        <encoder>
+            <pattern>%d{yyyy/MM/dd HH:mm:ss.SSS} %-5level [%thread] [%c{0}:%L] : %msg%n</pattern>
+            <charset>UTF-8</charset>
+        </encoder>
+    </appender>
+
+    <!--这是我们定义的慢接口和方法日志传入的名称-->
+    <logger name="slowClassAndMethodLog" additivity="false" level="INFO">
+        <appender-ref ref="slowClassAndMethodAppender"/>
+    </logger>
+</configuration>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinghuiMerchantEvaluateMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinghuiMerchantEvaluateMapper.xml
new file mode 100644
index 0000000..775aac0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinghuiMerchantEvaluateMapper.xml
@@ -0,0 +1,116 @@
+<?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_jinhui_community.dao.JinghuiMerchantEvaluateDao">
+
+    <resultMap type="com.panzhihua.service_jinhui_community.entity.JinghuiMerchantEvaluate" id="itemMap">
+        <result property="id" column="id" />
+        <result property="userId" column="user_id" />
+        <result property="merchantId" column="merchant_id" />
+        <result property="creationTime" column="creation_time" />
+        <result property="updateTime" column="update_time" />
+        <result property="content" column="content" />
+        <result property="imgUrl" column="img_url" />
+
+    </resultMap>
+
+    <!-- 分页查询 -->
+    <select id="getList" resultMap="itemMap">
+        select
+            id,
+            merchant_id,
+            user_id,
+            (SELECT su.name from sys_user as su where jinghui_merchant_evaluate.user_id=su.user_id) as userName,
+            (SELECT su.image_url from sys_user as su where jinghui_merchant_evaluate.user_id=su.user_id) as userUrl,
+            content,
+            creation_time,
+            img_url
+        from jinghui_merchant_evaluate
+        where merchant_id=#{merchantId}
+        order by creation_time desc
+    </select>
+
+
+    <select id="getDetails" resultMap="itemMap">
+        select
+            id,
+            merchant_id,
+            user_id,
+            (SELECT su.name from sys_user as su where jinghui_merchant_evaluate.user_id=su.user_id) as userName,
+            (SELECT su.image_url from sys_user as su where jinghui_merchant_evaluate.user_id=su.user_id) as userUrl,
+            content,
+            creation_time,
+            img_url
+        from jinghui_merchant_evaluate
+        where
+            id=#{id}
+    </select>
+
+    <insert id="addData">
+        insert into jinghui_merchant_evaluate
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null" >
+                id,
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                user_id,
+            </if>
+            <if test="item.merchantId != null and item.merchantId != '' ">
+                merchant_id,
+            </if>
+            <if test="item.content != null and item.content != '' ">
+                content,
+            </if>
+            <if test="item.imgUrl != null and item.imgUrl != '' ">
+                img_url,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null" >
+                #{item.id},
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                #{item.userId},
+            </if>
+            <if test="item.merchantId != null and item.merchantId != '' ">
+                #{item.merchantId},
+            </if>
+            <if test="item.content != null and item.content != '' ">
+                #{item.content},
+            </if>
+            <if test="item.imgUrl != null and item.imgUrl != '' ">
+                #{item.imgUrl},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="editData">
+        update jinghui_merchant_evaluate
+        <set>
+            <if test="item.id != null" >
+                id=#{item.id},
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                user_id=#{item.userId},
+            </if>
+            <if test="item.merchantId != null and item.merchantId != '' ">
+                merchant_id=#{item.merchantId},
+            </if>
+            <if test="item.content != null and item.content != '' ">
+                content=#{item.content},
+            </if>
+            <if test="item.imgUrl != null and item.imgUrl != '' ">
+                img_url=#{item.imgUrl},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="expurgateData" parameterType="String">
+        delete from jinghui_merchant_evaluate where id=#{id}
+    </delete>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiApplyExperienceMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiApplyExperienceMapper.xml
new file mode 100644
index 0000000..540d3cd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiApplyExperienceMapper.xml
@@ -0,0 +1,177 @@
+<?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_jinhui_community.dao.JinhuiApplyExperienceDao">
+
+    <resultMap type="com.panzhihua.service_jinhui_community.entity.JinhuiApplyExperience" id="itemMap">
+        <result property="id" column="id" />
+        <result property="userId" column="user_id" />
+        <result property="experienceContent" column="experience_content" />
+        <result property="activityId" column="activity_id" />
+        <result property="uploadingTime" column="uploading_time" />
+        <result property="creationTime" column="creation_time" />
+        <result property="updateTime" column="update_time" />
+        <result property="isFeedback" column="is_feedback" />
+    </resultMap>
+
+    <!-- 分页查询 -->
+    <select id="getList" resultMap="itemMap">
+        select
+            jae.id,
+            jeea.title,
+            jeea.cover_img_url as coverImgUrl,
+            jeea.activity_type as activityType,
+            jae.user_id,
+            jae.experience_content,
+            jae.activity_id,
+            jae.uploading_time,
+            jae.creation_time,
+            jae.is_feedback,
+            jae.update_time
+        from jinhui_apply_experience as jae
+        Left join jinhui_experience_activity as jeea on jeea.id=jae.activity_id
+        <where>
+            1=1
+            <if test="userId !=null and userId !='' ">
+                and jae.user_id=#{userId}
+            </if>
+            <if test="isFeedback !=null and isFeedback !='' ">
+                and jae.is_feedback=#{isFeedback}
+            </if>
+            <if test="activityId !=null and activityId !='' ">
+                and jae.activity_id=#{activityId}
+            </if>
+        </where>
+        order by creation_time desc
+    </select>
+
+
+    <select id="getNum" resultType="int">
+        select
+        count(id)
+        from jinhui_apply_experience
+        <where>
+            1=1
+            <if test="userId !=null and userId !='' ">
+                and user_id=#{userId}
+            </if>
+            <if test="isFeedback !=null and isFeedback !='' ">
+                and is_feedback=#{isFeedback}
+            </if>
+            <if test="activityId !=null and activityId !='' ">
+                and activity_id=#{activityId}
+            </if>
+        </where>
+    </select>
+
+
+
+
+    <select id="getDetails" resultMap="itemMap">
+        select
+        jae.id,
+        jeea.title,
+        jeea.cover_img_url as coverImgUrl,
+        jeea.activity_type as activityType,
+        jae.user_id,
+        jae.experience_content,
+        jae.activity_id,
+        jae.uploading_time,
+        jae.creation_time,
+        jae.is_feedback,
+        jae.update_time
+        from jinhui_apply_experience as jae
+        Left join jinhui_experience_activity as jeea on jeea.id=jae.activity_id
+        <where>
+            1=1
+            <if test="id!=null and id != '' ">
+                and jae.id=#{id}
+            </if>
+            <if test=" userId!=null and userId != '' ">
+                and jae.user_id=#{userId}
+            </if>
+            <if test=" activityId !=null and activityId != '' ">
+                and jae.activity_id=#{activityId}
+            </if>
+        </where>
+
+
+    </select>
+
+    <insert id="addData">
+        insert into jinhui_apply_experience
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                id,
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                user_id,
+            </if>
+            <if test="item.experienceContent != null and item.experienceContent != '' ">
+                experience_content,
+            </if>
+            <if test="item.activityId != null and item.activityId != '' ">
+                activity_id,
+            </if>
+            <if test="item.uploadingTime != null ">
+                uploading_time,
+            </if>
+            <if test="item.isFeedback != null ">
+                is_feedback,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                #{item.id},
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                #{item.userId},
+            </if>
+            <if test="item.experienceContent != null and item.experienceContent != '' ">
+                #{item.experienceContent},
+            </if>
+            <if test="item.activityId != null and item.activityId != '' ">
+                #{item.activityId},
+            </if>
+            <if test="item.uploadingTime != null ">
+                #{item.uploadingTime},
+            </if>
+            <if test="item.isFeedback != null ">
+                #{item.isFeedback},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="editData">
+        update jinhui_apply_experience
+        <set>
+            <if test="item.id != null and item.id != '' ">
+                id=#{item.id},
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                user_id=#{item.userId},
+            </if>
+            <if test="item.experienceContent != null and item.experienceContent != '' ">
+                experience_content=#{item.experienceContent},
+            </if>
+            <if test="item.activityId != null and item.activityId != '' ">
+                activity_id=#{item.activityId},
+            </if>
+            <if test="item.uploadingTime != null ">
+                uploading_time=#{item.uploadingTime},
+            </if>
+            <if test="item.isFeedback != null ">
+                is_feedback=#{item.isFeedback},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="expurgateData" parameterType="String">
+        delete from jinhui_apply_experience where id=#{id}
+    </delete>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiArticleManagementMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiArticleManagementMapper.xml
new file mode 100644
index 0000000..0d91d29
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiArticleManagementMapper.xml
@@ -0,0 +1,133 @@
+<?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_jinhui_community.dao.JinhuiArticleManagementDao">
+
+    <resultMap type="com.panzhihua.service_jinhui_community.entity.JinhuiArticleManagement" id="itemMap">
+        <result property="id" column="id" />
+        <result property="content" column="content" />
+        <result property="title" column="title" />
+        <result property="coverUrl" column="cover_url" />
+        <result property="articleType" column="article_type" />
+        <result property="creationTime" column="creation_time" />
+        <result property="updateTime" column="update_time" />
+        <result property="conditionType" column="condition_type" />
+    </resultMap>
+
+
+
+    <!-- 分页查询 -->
+    <select id="getList" resultMap="itemMap">
+        select
+            id,
+            title,
+            cover_url,
+            creation_time,
+            update_time,
+            content,
+            article_type
+        from jinhui_article_management
+        <where>
+            1=1
+            <if test="articleType !=null and articleType!='' ">
+                and article_type=#{articleType}
+            </if>
+            <if test="conditionType !=null and conditionType!='' ">
+                and condition_type=#{conditionType}
+            </if>
+        </where>
+        order by creation_time desc
+    </select>
+
+
+    <select id="getDetails" resultMap="itemMap">
+        select
+            id,
+            title,
+            cover_url,
+            creation_time,
+            update_time,
+            content,
+            article_type
+        from jinhui_article_management
+        where
+            id=#{id}
+    </select>
+
+    <insert id="addData">
+        insert into jinhui_article_management
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                id,
+            </if>
+            <if test="item.title != null and item.title != '' ">
+                title,
+            </if>
+            <if test="item.coverUrl != null and item.coverUrl != '' ">
+                cover_url,
+            </if>
+            <if test="item.articleType != null and item.articleType != '' ">
+                article_type,
+            </if>
+            <if test="item.content != null and item.content != '' ">
+                content,
+            </if>
+            <if test="item.conditionType != null and item.conditionType != '' ">
+                condition_type,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                #{item.id},
+            </if>
+            <if test="item.title != null and item.title != '' ">
+                #{item.title},
+            </if>
+            <if test="item.coverUrl != null and item.coverUrl != '' ">
+                #{item.coverUrl},
+            </if>
+            <if test="item.articleType != null and item.articleType != '' ">
+                #{item.articleType},
+            </if>
+            <if test="item.content != null and item.content != '' ">
+                #{item.content},
+            </if>
+            <if test="item.conditionType != null and item.conditionType != '' ">
+                #{item.conditionType},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="editData">
+        update jinhui_article_management
+        <set>
+            <if test="item.id != null and item.id != '' ">
+                id=#{item.id},
+            </if>
+            <if test="item.title != null and item.title != '' ">
+                title=#{item.title},
+            </if>
+            <if test="item.coverUrl != null and item.coverUrl != '' ">
+                cover_url=#{item.coverUrl},
+            </if>
+            <if test="item.articleType != null and item.articleType != '' ">
+                article_type=#{item.articleType},
+            </if>
+            <if test="item.content != null and item.content != '' ">
+                content=#{item.content},
+            </if>
+            <if test="item.conditionType != null and item.conditionType != '' ">
+                condition_type=#{item.conditionType},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="expurgateData" parameterType="String">
+        delete from jinhui_article_management where id=#{id}
+    </delete>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiCharityMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiCharityMapper.xml
new file mode 100644
index 0000000..cc94c10
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiCharityMapper.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_jinhui_community.dao.JinhuiCharityDao">
+
+    <resultMap type="com.panzhihua.service_jinhui_community.entity.JinhuiCharity" id="itemMap">
+        <result property="id" column="id" />
+        <result property="title" column="title" />
+        <result property="coverImgUrl" column="cover_img_url" />
+        <result property="simpleStatement" column="simple_statement" />
+        <result property="label" column="label" />
+        <result property="content" column="content" />
+        <result property="qrCodeUrl" column="qr_code_url" />
+        <result property="state" column="state" />
+        <result property="creationTime" column="creation_time" />
+        <result property="updateTime" column="update_time" />
+    </resultMap>
+
+
+    <!-- 金汇慈善公益  -->
+    <select id="getJinhuiCharityList" resultMap="itemMap">
+        select title,creation_time from jinhui_charity ORDER BY creation_time DESC
+    </select>
+
+    <!-- 分页查询 -->
+    <select id="getList" resultMap="itemMap">
+        select
+            id,
+            title,
+            cover_img_url,
+            simple_statement,
+            label,
+            content,
+            qr_code_url,
+            state,
+            creation_time,
+            update_time
+        from jinhui_charity
+        <where>
+            1=1
+            <if test="title!=null and title !='' ">
+                and title=#{title}
+            </if>
+            <if test="label!=null and label !='' ">
+                and label=#{label}
+            </if>
+            <if test="state!=null and state !='' ">
+                and `state`=#{state}
+            </if>
+        </where>
+        order by creation_time desc
+    </select>
+
+
+    <select id="getDetails" resultMap="itemMap">
+        select
+            id,
+            title,
+            cover_img_url,
+            simple_statement,
+            label,
+            content,
+            qr_code_url,
+            state,
+            creation_time,
+            update_time
+        from jinhui_charity
+        where
+            id=#{id}
+    </select>
+
+    <insert id="addData">
+        insert into jinhui_charity
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                id,
+            </if>
+            <if test="item.title != null and item.title != '' ">
+                title,
+            </if>
+            <if test="item.coverImgUrl != null and item.coverImgUrl != '' ">
+                cover_img_url,
+            </if>
+            <if test="item.simpleStatement != null and item.simpleStatement != '' ">
+                simple_statement,
+            </if>
+            <if test="item.label != null and item.label != '' ">
+                label,
+            </if>
+            <if test="item.content != null and item.content != '' ">
+                content,
+            </if>
+            <if test="item.qrCodeUrl != null and item.qrCodeUrl != '' ">
+                qr_code_url,
+            </if>
+            <if test="item.state != null and item.state != '' ">
+                `state`,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                #{item.id},
+            </if>
+            <if test="item.title != null and item.title != '' ">
+                #{item.title},
+            </if>
+            <if test="item.coverImgUrl != null and item.coverImgUrl != '' ">
+                #{item.coverImgUrl},
+            </if>
+            <if test="item.simpleStatement != null and item.simpleStatement != '' ">
+                #{item.simpleStatement},
+            </if>
+            <if test="item.label != null and item.label != '' ">
+                #{item.label},
+            </if>
+            <if test="item.content != null and item.content != '' ">
+                #{item.content},
+            </if>
+            <if test="item.qrCodeUrl != null and item.qrCodeUrl != '' ">
+                #{item.qrCodeUrl},
+            </if>
+            <if test="item.state != null and item.state != '' ">
+                #{item.state},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="editData">
+        update jinhui_charity
+        <set>
+            <if test="item.id != null and item.id != '' ">
+                id=#{item.id},
+            </if>
+            <if test="item.title != null and item.title != '' ">
+                title=#{item.title},
+            </if>
+            <if test="item.coverImgUrl != null and item.coverImgUrl != '' ">
+                cover_img_url=#{item.coverImgUrl},
+            </if>
+            <if test="item.simpleStatement != null and item.simpleStatement != '' ">
+                simple_statement=#{item.simpleStatement},
+            </if>
+            <if test="item.label != null and item.label != '' ">
+                label=#{item.label},
+            </if>
+            <if test="item.content != null and item.content != '' ">
+                content=#{item.content},
+            </if>
+            <if test="item.qrCodeUrl != null and item.qrCodeUrl != '' ">
+                qr_code_url=#{item.qrCodeUrl},
+            </if>
+            <if test="item.state != null and item.state != '' ">
+                `state`=#{item.state},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="expurgateData" parameterType="String">
+        delete from jinhui_charity where id=#{id}
+    </delete>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiCoinGeneralTableMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiCoinGeneralTableMapper.xml
new file mode 100644
index 0000000..7e933c8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiCoinGeneralTableMapper.xml
@@ -0,0 +1,100 @@
+<?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_jinhui_community.dao.JinhuiCoinGeneralTableDao">
+
+    <resultMap type="com.panzhihua.service_jinhui_community.entity.JinhuiCoinGeneralTable" id="JinhuiCoinGeneralTableMap">
+        <result property="id" column="id" />
+        <result property="userId" column="user_id" />
+        <result property="goldCoin" column="gold_coin" />
+        <result property="creationTime" column="creation_time" />
+        <result property="updateTime" column="update_time" />
+        <result property="communityId" column="community_id" />
+    </resultMap>
+
+    <!-- 分页查询 -->
+    <select id="getList" resultMap="JinhuiCoinGeneralTableMap">
+        select
+            id,
+            user_id,
+            gold_coin,
+            creation_time,
+            update_time,
+            community_id
+        from jinhui_coin_general_table
+        order by creation_time desc
+    </select>
+
+
+    <select id="getDetails" resultMap="JinhuiCoinGeneralTableMap">
+        select
+            id,
+            user_id,
+            gold_coin,
+            creation_time,
+            update_time,
+            community_id
+        from jinhui_coin_general_table
+        where
+            user_id=#{userId}
+    </select>
+
+    <insert id="addData">
+        insert into jinhui_coin_general_table
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null" >
+                id,
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                user_id,
+            </if>
+            <if test="item.goldCoin != null and item.goldCoin != '' ">
+                gold_coin,
+            </if>
+            <if test="item.communityId != null and item.communityId != '' ">
+                community_id,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null" >
+                #{item.id},
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                #{item.goldCoin},
+            </if>
+            <if test="item.goldCoin != null and item.goldCoin != '' ">
+                #{item.goldCoin},
+            </if>
+            <if test="item.communityId != null and item.communityId != '' ">
+                #{item.communityId},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="editData">
+        update jinhui_coin_general_table
+        <set>
+            <if test="item.id != null" >
+                id=#{item.id},
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                user_id=#{item.goldCoin},
+            </if>
+            <if test="item.goldCoin != null and item.goldCoin != '' ">
+                gold_coin=#{item.goldCoin},
+            </if>
+            <if test="item.communityId != null and item.communityId != '' ">
+                community_id=#{item.communityId},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="expurgateData" parameterType="String">
+        delete from jinhui_coin_general_table where id=#{id}
+    </delete>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiComActQuestnaireUserAnswerMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiComActQuestnaireUserAnswerMapper.xml
new file mode 100644
index 0000000..03b3204
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiComActQuestnaireUserAnswerMapper.xml
@@ -0,0 +1,196 @@
+<?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_jinhui_community.dao.JinhuiQuestnaireUserAnswerDao">
+
+    <resultMap type="com.panzhihua.service_jinhui_community.entity.JinhuiQuestnaireUserAnswer" id="itemMap">
+        <result property="id" column="id" />
+        <result property="questnaireId" column="questnaire_id" />
+        <result property="userId" column="user_id" />
+        <result property="jsonObject" column="json_object" />
+        <result property="transactType" column="transact_type" />
+        <result property="reply" column="reply" />
+        <result property="userName" column="user_name" />
+        <result property="phone" column="phone" />
+        <result property="idCard" column="id_card" />
+        <result property="processingTime" column="processing_time" />
+        <result property="creationTime" column="creation_time" />
+        <result property="updateTime" column="update_time" />
+    </resultMap>
+
+    <!-- 分页查询 -->
+    <select id="getList" resultMap="itemMap">
+        select
+            jcaqa.id,
+            jcaqa.questnaire_id,
+            (select title from jinhui_com_act_work_guide where jinhui_com_act_work_guide.id=jcaqa.questnaire_id) as questnaireName,
+            jcaqa.user_id,
+            jcaqa.user_name,
+            jcaqa.phone,
+            jcaqa.id_card,
+            jcaqa.creation_time,
+            jcaqa.json_object,
+            jcaqa.update_time,
+            jcaqa.processing_time,
+            jcaqa.transact_type,
+            jcaqa.reply
+        from jinhui_com_act_questnaire_user_answer as jcaqa
+        <where>
+            <if test="userId!=null and userId!='' ">
+                jcaqa.user_id=#{userId}
+            </if>
+            <if test="transactType!=null and transactType!='' ">
+                jjcaqa.transact_type=#{transactType}
+            </if>
+
+        </where>
+        order by jcaqa.creation_time desc
+    </select>
+
+
+    <select id="getDetails" resultMap="itemMap">
+        select
+            jcaqa.id,
+            jcaqa.questnaire_id,
+            (select title from jinhui_com_act_work_guide where jinhui_com_act_work_guide.id=jcaqa.questnaire_id) as questnaireName,
+            jcaqa.user_id,
+            jcaqa.user_name,
+            jcaqa.phone,
+            jcaqa.id_card,
+            jcaqa.creation_time,
+            jcaqa.json_object,
+            jcaqa.update_time,
+            jcaqa.processing_time,
+            jcaqa.transact_type,
+            jcaqa.reply
+        from jinhui_com_act_questnaire_user_answer as jcaqa
+        <where>
+            1=1
+            <if test=" id!=null and id!='' ">
+                and jcaqa.id=#{id}
+            </if>
+            <if test=" questnaireId!=null and questnaireId!='' ">
+                and jcaqa.questnaire_id=#{questnaireId}
+            </if>
+            <if test=" userId!=null and userId!='' ">
+                and jcaqa.user_id=#{userId}
+            </if>
+            <if test=" transactType!=null and transactType!='' ">
+                and jcaqa.transact_type=#{transactType}
+            </if>
+        </where>
+    </select>
+
+    <insert id="addData">
+        insert into jinhui_com_act_questnaire_user_answer
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                id,
+            </if>
+            <if test="item.questnaireId != null and item.questnaireId != '' ">
+                questnaire_id,
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                user_id,
+            </if>
+            <if test="item.jsonObject != null and item.jsonObject != '' ">
+                json_object,
+            </if>
+            <if test="item.processingTime != null and item.processingTime != '' ">
+                processing_time,
+            </if>
+            <if test="item.transactType != null and item.transactType != '' ">
+                transact_type,
+            </if>
+            <if test="item.reply != null and item.reply != '' ">
+                reply,
+            </if>
+            <if test="item.userName != null and item.userName != '' ">
+                user_name,
+            </if>
+            <if test="item.phone != null and item.phone != '' ">
+                phone,
+            </if>
+            <if test="item.idCard != null and item.idCard != '' ">
+                id_card,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                #{item.id},
+            </if>
+            <if test="item.questnaireId != null and item.questnaireId != '' ">
+                #{item.questnaireId},
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                #{item.userId},
+            </if>
+            <if test="item.jsonObject != null and item.jsonObject != '' ">
+                #{item.jsonObject},
+            </if>
+            <if test="item.processingTime != null">
+                #{item.processingTime},
+            </if>
+            <if test="item.transactType != null and item.transactType != '' ">
+                #{item.transactType},
+            </if>
+            <if test="item.reply != null and item.reply != '' ">
+                #{item.reply},
+            </if>
+            <if test="item.userName != null and item.userName != '' ">
+                #{item.userName},
+            </if>
+            <if test="item.phone != null and item.phone != '' ">
+                #{item.phone},
+            </if>
+            <if test="item.idCard != null and item.idCard != '' ">
+                #{item.idCard},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="editData">
+        update jinhui_com_act_questnaire_user_answer
+        <set>
+            <if test="item.id != null and item.id != '' ">
+                id=#{item.id},
+            </if>
+            <if test="item.questnaireId != null and item.questnaireId != '' ">
+                questnaire_id=#{item.questnaireId},
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                user_id=#{item.userId},
+            </if>
+            <if test="item.jsonObject != null and item.jsonObject != '' ">
+                json_object=#{item.jsonObject},
+            </if>
+            <if test="item.processingTime != null">
+                processing_time=#{item.processingTime},
+            </if>
+            <if test="item.transactType != null and item.transactType != '' ">
+                transact_type=#{item.transactType},
+            </if>
+            <if test="item.reply != null and item.reply != '' ">
+                reply=#{item.reply},
+            </if>
+            <if test="item.userName != null and item.userName != '' ">
+                user_name=#{item.userName},
+            </if>
+            <if test="item.phone != null and item.phone != '' ">
+                phone=#{item.phone},
+            </if>
+            <if test="item.idCard != null and item.idCard != '' ">
+                id_card=#{item.idCard},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="expurgateData" parameterType="String">
+        delete from jinhui_com_act_questnaire_user_answer where id=#{id}
+    </delete>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiComActWorkGuideClassifyMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiComActWorkGuideClassifyMapper.xml
new file mode 100644
index 0000000..c0d25b9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiComActWorkGuideClassifyMapper.xml
@@ -0,0 +1,60 @@
+<?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_jinhui_community.dao.JinhuiComActWorkGuideClassifyDao">
+
+    <resultMap type="com.panzhihua.service_jinhui_community.entity.JinhuiComActWorkGuideClassify" id="itemMap">
+        <result property="id" column="id" />
+        <result property="classifyName" column="classify_name" />
+        <result property="pictureUrl" column="picture_url" />
+        <result property="createAt" column="create_at" />
+        <result property="sysFlag" column="sys_flag" />
+        <result property="communityId" column="community_id" />
+        <result property="areaCode" column="area_code" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, classify_name, picture_url, create_at, sys_flag,community_id
+    </sql>
+
+    <select id="pageWorkGuideClassify" resultType="com.panzhihua.common.model.vos.community.ComActWorkGuideClassifyVO">
+        select
+        id,
+        classify_name,
+        picture_url,
+        create_at,
+        community_id,
+        sys_flag
+        from jinhui_com_act_work_guide_classify
+        <where>
+            <if test="comActWorkGuideClassifyVO.classifyName != null and comActWorkGuideClassifyVO.classifyName !=''">
+                AND classify_name like concat ('%', #{comActWorkGuideClassifyVO.classifyName}, '%')
+            </if>
+            <if test="comActWorkGuideClassifyVO.areaCode != null and comActWorkGuideClassifyVO.areaCode !=''">
+                AND area_code = #{comActWorkGuideClassifyVO.areaCode}
+            </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
+            jinhui_com_act_work_guide_classify AS cawgc
+        <where>
+            <if test="areaCode!=null">
+                and cawgc.area_code = #{area_code}
+            </if>
+        </where>
+        order by `count` asc
+    </select>
+
+
+
+
+
+
+
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiComActWorkGuideMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiComActWorkGuideMapper.xml
new file mode 100644
index 0000000..e14c3c3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiComActWorkGuideMapper.xml
@@ -0,0 +1,105 @@
+<?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_jinhui_community.dao.JinhuiComActWorkGuideDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="itemMap" type="com.panzhihua.service_jinhui_community.entity.JinhuiComActWorkGuide">
+        <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" />
+        <result column="community_id" property="communityId" />
+        <result column="area_code" property="areaCode" />
+        <result column="json_object" property="jsonObject" />
+        <result column="is_on_line" property="isOnLine" />
+    </resultMap>
+
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, title, content, classify, time_at, address, phone, lon, lat, create_at, create_by,
+        update_at, update_by,community_id,is_on_line
+    </sql>
+
+
+    <!-- 分页查询 -->
+    <select id="pageWorkGuide" resultType="com.panzhihua.common.model.vos.community.ComActWorkGuideVO">
+        select
+            id,
+            title,
+            content,
+            classify,
+            time_at,
+            address,
+            phone,
+            create_at,
+            json_object,
+            community_id,
+            is_on_line
+        from jinhui_com_act_work_guide
+        <where>
+            <if test='pageActWorkGuideDTO.classify != null'>
+                and classify = #{pageActWorkGuideDTO.classify}
+            </if>
+            <if test='pageActWorkGuideDTO.areaCode != null'>
+                and area_code = #{pageActWorkGuideDTO.areaCode}
+            </if>
+            <if test='pageActWorkGuideDTO.title != null and pageActWorkGuideDTO.title.trim() != &quot;&quot;'>
+                and title like concat('%',#{pageActWorkGuideDTO.title},'%')
+            </if>
+            <if test='pageActWorkGuideDTO.isOnLine != null and pageActWorkGuideDTO.isOnLine != &quot;&quot;'>
+                and is_on_line=#{pageActWorkGuideDTO.isOnLine}
+            </if>
+        </where>
+        order by update_at desc
+    </select>
+
+    <select id="getWorkGuideListByClassifyId" resultType="com.panzhihua.common.model.vos.community.ComActWorkGuideDetailAppletsVO">
+        select
+            id,
+            title,
+            content,
+            classify,
+            time_at,
+            address,
+            phone,
+            create_at,
+            json_object,
+            is_on_line,
+            community_id
+        from jinhui_com_act_work_guide
+        <where>
+            1=1
+            <if test="classifyId != null and classifyId!='' ">
+                and classify = #{classifyId}
+            </if>
+            <if test='isOnLine != null and isOnLine != &quot;&quot;'>
+                and is_on_line=#{isOnLine}
+            </if>
+        </where>
+        order by create_at desc
+        <if test="pageSize != null">
+            limit ${pageSize}
+        </if>
+    </select>
+
+
+    <delete id="deleteQuesSubAll">
+        delete from jinhui_com_act_questnaire_sub where que_id = #{queId}
+    </delete>
+
+    <delete id="deleteQuesSubAll2">
+        delete from jinhui_com_act_questnaire_sub_selection where que_id = #{queId}
+    </delete>
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiComActWorkGuideMaterialMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiComActWorkGuideMaterialMapper.xml
new file mode 100644
index 0000000..6062d44
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiComActWorkGuideMaterialMapper.xml
@@ -0,0 +1,12 @@
+<?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_jinhui_community.dao.JinhuiComActWorkGuideMaterialDao">
+
+    <resultMap type="com.panzhihua.service_jinhui_community.entity.JinhuiComActWorkGuideMaterial" id="itemMap">
+        <result property="id" column="id" />
+        <result property="materialName" column="material_name" />
+        <result property="workGuideId" column="work_guide_id" />
+        <result property="communityId" column="community_id" />
+    </resultMap>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiComConvenientMerchantsMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiComConvenientMerchantsMapper.xml
new file mode 100644
index 0000000..9d4db55
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiComConvenientMerchantsMapper.xml
@@ -0,0 +1,282 @@
+<?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_jinhui_community.dao.JinhuiConvenientMerchantDao">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_jinhui_community.entity.JinhuiConvenientMerchant">
+        <id column="id" property="id" />
+        <id column="name" property="name" />
+        <id column="logo" property="logo" />
+        <id column="contacts" property="contacts" />
+        <id column="phone" property="phone" />
+        <id column="address" property="address" />
+        <id column="detailed_address" property="detailedAddress" />
+        <id column="lat" property="lat" />
+        <id column="lon" property="lon" />
+        <id column="introduction" property="introduction" />
+        <id column="is_del" property="isDel" />
+        <id column="created_at" property="createdAt" />
+        <id column="created_by" property="createdBy" />
+        <id column="updated_at" property="updatedAt" />
+        <id column="convenient_type" property="convenientType" />
+        <id column="audit_type" property="auditType" />
+        <id column="audit_opinion" property="auditOpinion" />
+        <id column="img_url" property="imgUrl" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id,
+        name,
+        logo,
+        contacts,
+        phone,
+        address,
+        detailed_address,
+        lat,
+        lon,
+        introduction,
+        is_del,
+        created_at,
+        created_by,
+        updated_at,
+        convenient_type,
+        audit_type,
+        audit_opinion,
+        img_url
+    </sql>
+    <select id="pageMerchant" resultType="com.panzhihua.common.model.vos.community.convenient.JinhuiConvenientMerchantVO">
+        SELECT
+            id,
+            name,
+            logo,
+            contacts,
+            phone,
+            address,
+            detailed_address,
+            lat,
+            lon,
+            introduction,
+            is_del,
+            created_at,
+            created_by,
+            updated_at,
+            convenient_type,
+            (select jccsc.name from jinhui_com_convenient_service_categories as jccsc where jccsc.id=ccm.convenient_type) as convenientName,
+            audit_type,
+            audit_opinion,
+            img_url
+        FROM  jinhui_com_convenient_merchants ccm
+        WHERE ccm.is_del = 0
+        <if test="item.auditType != null and item.auditType != ''">
+            AND ccm.audit_type = #{item.auditType}
+        </if>
+        <if test="item.convenientType != null and item.convenientType != ''">
+            AND ccm.convenient_type = #{item.convenientType}
+        </if>
+        <if test="item.keyword != null and item.keyword != &quot;&quot;">
+            AND (
+            ccm.name LIKE CONCAT('%', #{item.keyword}, '%')
+            OR ccm.address LIKE CONCAT('%', #{item.keyword}, '%')
+            OR ccm.phone LIKE CONCAT('%', #{item.keyword}, '%')
+            )
+        </if>
+        GROUP BY created_at DESC
+    </select>
+    <select id="selectMerchantById" resultType="com.panzhihua.common.model.vos.community.convenient.JinhuiConvenientMerchantVO">
+        SELECT
+            id,
+            name,
+            logo,
+            contacts,
+            phone,
+            address,
+            detailed_address,
+            lat,
+            lon,
+            introduction,
+            is_del,
+            created_at,
+            created_by,
+            updated_at,
+            convenient_type,
+            (select jccsc.name from jinhui_com_convenient_service_categories as jccsc where jccsc.id=ccm.convenient_type) as convenientName,
+            audit_type,
+            audit_opinion,
+            img_url
+        FROM  jinhui_com_convenient_merchants ccm
+        WHERE ccm.id = #{merchantId}
+    </select>
+
+    <update id="deleteMerchantById">
+        UPDATE jinhui_com_convenient_merchants
+        SET is_del = 1
+        WHERE id = #{merchantId}
+    </update>
+
+
+
+    <insert id="addData">
+        insert into jinhui_com_convenient_merchants
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                id,
+            </if>
+            <if test="item.name != null and item.name != '' ">
+                `name`,
+            </if>
+            <if test="item.logo != null and item.logo != '' ">
+                logo,
+            </if>
+            <if test="item.contacts != null and item.contacts != '' ">
+                contacts,
+            </if>
+            <if test="item.phone != null and item.phone != '' ">
+                phone,
+            </if>
+            <if test="item.address != null and item.address != '' ">
+                address,
+            </if>
+            <if test="item.detailedAddress != null and item.detailedAddress != '' ">
+                detailed_address,
+            </if>
+            <if test="item.lat != null and item.lat != '' ">
+                lat,
+            </if>
+            <if test="item.lon != null and item.lon != '' ">
+                lon,
+            </if>
+            <if test="item.introduction != null and item.introduction != '' ">
+                introduction,
+            </if>
+            <if test="item.isDel != null and item.isDel != '' ">
+                is_del,
+            </if>
+            <if test="item.createdBy != null and item.createdBy != '' ">
+                created_by,
+            </if>
+            <if test="item.convenientType != null and item.convenientType != '' ">
+                convenient_type,
+            </if>
+            <if test="item.auditType != null and item.auditType != '' ">
+                audit_type,
+            </if>
+            <if test="item.auditOpinion != null and item.auditOpinion != '' ">
+                audit_opinion,
+            </if>
+            <if test="item.imgUrl != null and item.imgUrl != '' ">
+                img_url,
+            </if>
+            created_at
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                #{item.id},
+            </if>
+            <if test="item.name != null and item.name != '' ">
+                #{item.name},
+            </if>
+            <if test="item.logo != null and item.logo != '' ">
+                #{item.logo},
+            </if>
+            <if test="item.contacts != null and item.contacts != '' ">
+                #{item.contacts},
+            </if>
+            <if test="item.phone != null and item.phone != '' ">
+                #{item.phone},
+            </if>
+            <if test="item.address != null and item.address != '' ">
+                #{item.address},
+            </if>
+            <if test="item.detailedAddress != null and item.detailedAddress != '' ">
+                #{item.detailedAddress},
+            </if>
+            <if test="item.lat != null and item.lat != '' ">
+                #{item.lat},
+            </if>
+            <if test="item.lon != null and item.lon != '' ">
+                #{item.lon},
+            </if>
+            <if test="item.introduction != null and item.introduction != '' ">
+                #{item.introduction},
+            </if>
+            <if test="item.isDel != null and item.isDel != '' ">
+                #{item.isDel},
+            </if>
+            <if test="item.createdBy != null and item.createdBy != '' ">
+                #{item.createdBy},
+            </if>
+            <if test="item.convenientType != null and item.convenientType != '' ">
+                #{item.convenientType},
+            </if>
+            <if test="item.auditType != null and item.auditType != '' ">
+                #{item.auditType},
+            </if>
+            <if test="item.auditOpinion != null and item.auditOpinion != '' ">
+                #{item.auditOpinion},
+            </if>
+            <if test="item.imgUrl != null and item.imgUrl != '' ">
+                #{item.imgUrl},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="editData">
+        update jinhui_com_convenient_merchants
+        <set>
+            <if test="item.id != null and item.id != '' ">
+                id=#{item.id},
+            </if>
+            <if test="item.name != null and item.name != '' ">
+                `name`=#{item.name},
+            </if>
+            <if test="item.logo != null and item.logo != '' ">
+                logo=#{item.logo},
+            </if>
+            <if test="item.contacts != null and item.contacts != '' ">
+                contacts=#{item.contacts},
+            </if>
+            <if test="item.phone != null and item.phone != '' ">
+                phone=#{item.phone},
+            </if>
+            <if test="item.address != null and item.address != '' ">
+                address=#{item.address},
+            </if>
+            <if test="item.detailedAddress != null and item.detailedAddress != '' ">
+                detailed_address=#{item.detailedAddress},
+            </if>
+            <if test="item.lat != null and item.lat != '' ">
+                lat=#{item.lat},
+            </if>
+            <if test="item.lon != null and item.lon != '' ">
+                lon=#{item.lon},
+            </if>
+            <if test="item.introduction != null and item.introduction != '' ">
+                introduction=#{item.introduction},
+            </if>
+            <if test="item.isDel != null and item.isDel != '' ">
+                is_del=#{item.isDel},
+            </if>
+            <if test="item.createdBy != null and item.createdBy != '' ">
+                created_by=#{item.createdBy},
+            </if>
+            <if test="item.convenientType != null and item.convenientType != '' ">
+                convenient_type=#{item.convenientType},
+            </if>
+            <if test="item.auditType != null and item.auditType != '' ">
+                audit_type=#{item.auditType},
+            </if>
+            <if test="item.auditOpinion != null and item.auditOpinion != '' ">
+                audit_opinion=#{item.auditOpinion},
+            </if>
+            <if test="item.imgUrl != null and item.imgUrl != '' ">
+                img_url=#{item.imgUrl},
+            </if>
+            updated_at=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiComConvenientServiceCategoriesMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiComConvenientServiceCategoriesMapper.xml
new file mode 100644
index 0000000..c0a0093
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiComConvenientServiceCategoriesMapper.xml
@@ -0,0 +1,170 @@
+<?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_jinhui_community.dao.JinhuiComConvenientServiceCategoriesDao">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_jinhui_community.entity.JinhuiComConvenientServiceCategories">
+        <id column="id" property="id" />
+        <id column="name" property="name" />
+        <id column="icon" property="icon" />
+        <id column="remark" property="remark" />
+        <id column="weight" property="weight" />
+        <id column="is_del" property="isDel" />
+        <id column="created_at" property="createdAt" />
+        <id column="created_by" property="createdBy" />
+        <id column="updated_at" property="updatedAt" />
+        <id column="parent_id" property="parentId" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id,
+        name,
+        icon,
+        remark,
+        weight,
+        is_del,
+        created_at,
+        created_by,
+        updated_at,
+        parent_id
+
+    </sql>
+
+    <!-- 分页查询 -->
+    <select id="getList" resultMap="BaseResultMap">
+        select
+            id,
+            name,
+            icon,
+            remark,
+            weight,
+            is_del,
+            created_at,
+            created_by,
+            updated_at,
+            parent_id
+        from jinhui_com_convenient_service_categories
+        where is_del='0'
+        order by weight desc,created_at desc
+    </select>
+
+
+    <select id="getDetails" resultMap="BaseResultMap">
+        select
+            id,
+            name,
+            icon,
+            remark,
+            weight,
+            is_del,
+            created_at,
+            created_by,
+            updated_at,
+            parent_id
+        from jinhui_com_convenient_service_categories
+        where
+            id=#{id}
+    </select>
+
+
+
+    <insert id="addData">
+        insert into jinhui_com_convenient_service_categories
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                id,
+            </if>
+            <if test="item.name != null and item.name != '' ">
+                `name`,
+            </if>
+            <if test="item.icon != null and item.icon != '' ">
+                icon,
+            </if>
+            <if test="item.remark != null and item.remark != '' ">
+                remark,
+            </if>
+            <if test="item.weight != null and item.weight != '' ">
+                weight,
+            </if>
+            <if test="item.isDel != null and item.isDel != '' ">
+                is_del,
+            </if>
+            <if test="item.createdBy != null and item.createdBy != '' ">
+                created_by,
+            </if>
+            <if test="item.parentId != null and item.parentId != '' ">
+                parent_id,
+            </if>
+            created_at
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                #{item.id},
+            </if>
+            <if test="item.name != null and item.name != '' ">
+                #{item.name},
+            </if>
+            <if test="item.icon != null and item.icon != '' ">
+                #{item.icon},
+            </if>
+            <if test="item.remark != null and item.remark != '' ">
+                #{item.remark},
+            </if>
+            <if test="item.weight != null and item.weight != '' ">
+                #{item.weight},
+            </if>
+            <if test="item.isDel != null and item.isDel != '' ">
+                #{item.isDel},
+            </if>
+            <if test="item.createdBy != null and item.createdBy != '' ">
+                #{item.createdBy},
+            </if>
+            <if test="item.parentId != null and item.parentId != '' ">
+                #{item.parentId},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="editData">
+        update jinhui_com_convenient_service_categories
+        <set>
+            <if test="item.id != null and item.id != '' ">
+                id=#{item.id},
+            </if>
+            <if test="item.name != null and item.name != '' ">
+                `name`=#{item.name},
+            </if>
+            <if test="item.icon != null and item.icon != '' ">
+                icon=#{item.icon},
+            </if>
+            <if test="item.remark != null and item.remark != '' ">
+                remark=#{item.remark},
+            </if>
+            <if test="item.weight != null and item.weight != '' ">
+                weight=#{item.weight},
+            </if>
+            <if test="item.isDel != null and item.isDel != '' ">
+                is_del=#{item.isDel},
+            </if>
+            <if test="item.createdBy != null and item.createdBy != '' ">
+                created_by=#{item.createdBy},
+            </if>
+            <if test="item.parentId != null and item.parentId != '' ">
+                parent_id=#{item.parentId},
+            </if>
+            updated_at=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <update id="expurgateData" parameterType="String">
+        update jinhui_com_convenient_service_categories
+        set is_del='1'
+        where id=#{id}
+    </update>
+
+
+</mapper>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiExperienceActivityMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiExperienceActivityMapper.xml
new file mode 100644
index 0000000..9fbd26f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiExperienceActivityMapper.xml
@@ -0,0 +1,270 @@
+<?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_jinhui_community.dao.JinhuiExperienceActivityDao">
+
+    <resultMap type="com.panzhihua.service_jinhui_community.entity.JinhuiExperienceActivity" id="itemMap">
+        <result property="id" column="id" />
+        <result property="title" column="title" />
+        <result property="address" column="address" />
+        <result property="lat" column="lat" />
+        <result property="lon" column="lon" />
+        <result property="applyStartTime" column="apply_start_time" />
+        <result property="applyEndTime" column="apply_end_time" />
+        <result property="activityStartTime" column="activity_start_time" />
+        <result property="activityEndTime" column="activity_end_time" />
+        <result property="peopleNumber" column="people_number" />
+        <result property="phone" column="phone" />
+        <result property="award" column="award" />
+        <result property="coverImgUrl" column="cover_img_url" />
+        <result property="creationTime" column="creation_time" />
+        <result property="updateTime" column="update_time" />
+        <result property="activityType" column="activity_type" />
+        <result property="content" column="content" />
+    </resultMap>
+
+    <!-- 分页查询 -->
+    <select id="getList" resultMap="itemMap">
+        select
+            id,
+            title,
+            address,
+            lat,
+            lon,
+            apply_start_time,
+            apply_end_time,
+            activity_start_time,
+            activity_end_time,
+            people_number,
+            phone,
+            award,
+            (select count(jae.id) from jinhui_apply_experience as jae
+            where jae.activity_id=jinhui_experience_activity.id) as number,
+            cover_img_url,
+            creation_time,
+            update_time,
+            content,
+            activity_type
+        from jinhui_experience_activity
+        order by creation_time desc
+    </select>
+
+
+    <select id="getDetails" resultMap="itemMap">
+        select
+            jea.id,
+            jea.title,
+            jea.address,
+            jea.lat,
+            jea.lon,
+            jea.apply_start_time,
+            jea.apply_end_time,
+            jea.activity_start_time,
+            jea.activity_end_time,
+            jea.people_number,
+            (count(japply.id)) as number,
+            IF(#{userId} IS NULL, '0',IF(japply.id IS NULL, '0', '1')) as isJoin,
+            IF(#{userId} IS NULL, '0',IF(japply.is_feedback IS NULL, '0', japply.is_feedback))as isFeedback,
+            jea.phone,
+            jea.award,
+            jea.content,
+            jea.cover_img_url,
+            jea.creation_time,
+            jea.update_time,
+            jea.activity_type
+        from jinhui_experience_activity as jea
+        left join jinhui_apply_experience as japply on jea.id=japply.activity_id
+        <where>
+            jea.id=#{id}
+            <if test="userId !=null and userId !='' ">
+               and japply.user_id=#{userId}
+            </if>
+        </where>
+    </select>
+
+    <insert id="addData">
+        insert into jinhui_experience_activity
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                id,
+            </if>
+            <if test="item.title != null and item.title != '' ">
+                title,
+            </if>
+            <if test="item.address != null and item.address != '' ">
+                address,
+            </if>
+            <if test="item.lat != null and item.lat != '' ">
+                lat,
+            </if>
+            <if test="item.lon != null and item.lon != '' ">
+                lon,
+            </if>
+            <if test="item.applyStartTime != null">
+                apply_start_time,
+            </if>
+            <if test="item.applyEndTime != null ">
+                apply_end_time,
+            </if>
+            <if test="item.activityStartTime != null ">
+                activity_start_time,
+            </if>
+            <if test="item.activityEndTime != null ">
+                activity_end_time,
+            </if>
+            <if test="item.peopleNumber != null and item.peopleNumber != '' ">
+                people_number,
+            </if>
+            <if test="item.phone != null and item.phone != '' ">
+                phone,
+            </if>
+            <if test="item.award != null and item.award != '' ">
+                award,
+            </if>
+            <if test="item.coverImgUrl != null and item.coverImgUrl != '' ">
+                cover_img_url,
+            </if>
+            <if test="item.activityType != null and item.activityType != '' ">
+                activity_type,
+            </if>
+            <if test="item.content != null and item.content != '' ">
+                content,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                #{item.id},
+            </if>
+            <if test="item.title != null and item.title != '' ">
+                #{item.title},
+            </if>
+            <if test="item.address != null and item.address != '' ">
+                #{item.address},
+            </if>
+            <if test="item.lat != null and item.lat != '' ">
+                lat=#{item.lat},
+            </if>
+            <if test="item.lon != null and item.lon != '' ">
+                #{item.lon},
+            </if>
+            <if test="item.applyStartTime != null">
+                #{item.applyStartTime},
+            </if>
+            <if test="item.applyEndTime != null ">
+                #{item.applyEndTime},
+            </if>
+            <if test="item.activityStartTime != null ">
+                #{item.activityStartTime},
+            </if>
+            <if test="item.activityEndTime != null ">
+                #{item.activityEndTime},
+            </if>
+            <if test="item.peopleNumber != null and item.peopleNumber != '' ">
+                #{item.peopleNumber},
+            </if>
+            <if test="item.phone != null and item.phone != '' ">
+                #{item.phone},
+            </if>
+            <if test="item.award != null and item.award != '' ">
+                #{item.award},
+            </if>
+            <if test="item.coverImgUrl != null and item.coverImgUrl != '' ">
+                #{item.coverImgUrl},
+            </if>
+            <if test="item.activityType != null and item.activityType != '' ">
+                #{item.activityType},
+            </if>
+            <if test="item.content != null and item.content != '' ">
+                #{item.content},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="editData">
+        update jinhui_experience_activity
+        <set>
+            <if test="item.id != null and item.id != '' ">
+                id=#{item.id},
+            </if>
+            <if test="item.title != null and item.title != '' ">
+                title=#{item.title},
+            </if>
+            <if test="item.address != null and item.address != '' ">
+                address=#{item.address},
+            </if>
+            <if test="item.lat != null and item.lat != '' ">
+                lat=#{item.lat},
+            </if>
+            <if test="item.lon != null and item.lon != '' ">
+                lon=#{item.lon},
+            </if>
+            <if test="item.applyStartTime != null">
+                apply_start_time=#{item.applyStartTime},
+            </if>
+            <if test="item.applyEndTime != null ">
+                apply_end_time=#{item.applyEndTime},
+            </if>
+            <if test="item.activityStartTime != null ">
+                activity_start_time=#{item.activityStartTime},
+            </if>
+            <if test="item.activityEndTime != null ">
+                activity_end_time=#{item.activityEndTime},
+            </if>
+            <if test="item.peopleNumber != null and item.peopleNumber != '' ">
+                people_number=#{item.peopleNumber},
+            </if>
+            <if test="item.phone != null and item.phone != '' ">
+                phone=#{item.phone},
+            </if>
+            <if test="item.award != null and item.award != '' ">
+                award=#{item.award},
+            </if>
+            <if test="item.coverImgUrl != null and item.coverImgUrl != '' ">
+                cover_img_url=#{item.coverImgUrl},
+            </if>
+            <if test="item.activityType != null and item.activityType != '' ">
+                activity_type=#{item.activityType},
+            </if>
+            <if test="item.content != null and item.content != '' ">
+                content=#{item.content},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="expurgateData" parameterType="String">
+        delete from jinhui_experience_activity where id=#{id}
+    </delete>
+
+
+
+    <select id="getTimeList" resultMap="itemMap">
+        select
+            id,
+            title,
+            address,
+            lat,
+            lon,
+            apply_start_time,
+            apply_end_time,
+            activity_start_time,
+            activity_end_time,
+            people_number,
+            phone,
+            award,
+            cover_img_url,
+            creation_time,
+            update_time,
+            activity_type
+        from jinhui_experience_activity
+        where activity_type in (1,2,3)
+    </select>
+
+
+
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiGoldCoinRecordMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiGoldCoinRecordMapper.xml
new file mode 100644
index 0000000..08ddd3b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiGoldCoinRecordMapper.xml
@@ -0,0 +1,142 @@
+<?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_jinhui_community.dao.JinhuiGoldCoinRecordDao">
+
+    <resultMap type="com.panzhihua.service_jinhui_community.entity.JinhuiGoldCoinRecord" id="itemMap">
+        <result property="id" column="id" />
+        <result property="userId" column="user_id" />
+        <result property="goldCoin" column="gold_coin" />
+        <result property="creationTime" column="creation_time" />
+        <result property="updateTime" column="update_time" />
+        <result property="communityId" column="community_id" />
+        <result property="title" column="title" />
+        <result property="remark" column="remark" />
+        <result property="type" column="type" />
+    </resultMap>
+
+    <!-- 分页查询 -->
+    <select id="getList" resultMap="itemMap">
+        select
+            id,
+            user_id,
+            gold_coin,
+            creation_time,
+            update_time,
+            community_id,
+            title,
+            remark,
+            type
+        from jinhui_gold_coin_record
+        <where>
+            1=1
+            <if test="userId !=null and userId !='' ">
+                and user_id=#{userId}
+            </if>
+        </where>
+        order by creation_time desc
+    </select>
+
+
+    <select id="getDetails" resultMap="itemMap">
+        select
+            id,
+            user_id,
+            gold_coin,
+            creation_time,
+            update_time,
+            community_id,
+            title,
+            remark,
+            type
+        from jinhui_gold_coin_record
+        where
+            id=#{id}
+    </select>
+
+    <insert id="addData">
+        insert into jinhui_gold_coin_record
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null" >
+                id,
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                user_id,
+            </if>
+            <if test="item.goldCoin != null and item.goldCoin != '' ">
+                gold_coin,
+            </if>
+            <if test="item.communityId != null and item.communityId != '' ">
+                community_id,
+            </if>
+            <if test="item.title != null and item.title != '' ">
+                title,
+            </if>
+            <if test="item.remark != null and item.remark != '' ">
+                remark,
+            </if>
+            <if test="item.type != null and item.type != '' ">
+                type,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null" >
+                #{item.id},
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                #{item.userId},
+            </if>
+            <if test="item.goldCoin != null and item.goldCoin != '' ">
+                #{item.goldCoin},
+            </if>
+            <if test="item.communityId != null and item.communityId != '' ">
+                #{item.communityId},
+            </if>
+            <if test="item.title != null and item.title != '' ">
+                #{item.title},
+            </if>
+            <if test="item.remark != null and item.remark != '' ">
+                #{item.remark},
+            </if>
+            <if test="item.type != null and item.type != '' ">
+                #{item.type},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="editData">
+        update jinhui_gold_coin_record
+        <set>
+            <if test="item.id != null" >
+                id=#{item.id},
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                user_id=#{item.userId},
+            </if>
+            <if test="item.goldCoin != null and item.goldCoin != '' ">
+                gold_coin=#{item.goldCoin},
+            </if>
+            <if test="item.communityId != null and item.communityId != '' ">
+                community_id=#{item.communityId},
+            </if>
+            <if test="item.title != null and item.title != '' ">
+                title=#{item.title},
+            </if>
+            <if test="item.remark != null and item.remark != '' ">
+                remark=#{item.remark},
+            </if>
+            <if test="item.type != null and item.type != '' ">
+                type=#{item.type},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="expurgateData" parameterType="String">
+        delete from jinhui_gold_coin_record where id=#{id}
+    </delete>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiInterspaceApplyForMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiInterspaceApplyForMapper.xml
new file mode 100644
index 0000000..fb95ceb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiInterspaceApplyForMapper.xml
@@ -0,0 +1,206 @@
+<?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_jinhui_community.dao.JinhuiInterspaceApplyForDao">
+
+    <resultMap type="com.panzhihua.service_jinhui_community.entity.JinhuiInterspaceApplyFor" id="itemMap">
+        <result property="id" column="id" />
+        <result property="interspaceId" column="interspace_id" />
+        <result property="interspaceTime" column="interspace_time" />
+        <result property="subscribeTimeFrame" column="subscribe_time_frame" />
+        <result property="userName" column="user_name" />
+        <result property="userPhone" column="user_phone" />
+        <result property="state" column="state" />
+        <result property="creationTime" column="creation_time" />
+        <result property="updateTime" column="update_time" />
+        <result property="content" column="content" />
+        <result property="reply" column="reply" />
+        <result property="userId" column="user_id" />
+    </resultMap>
+
+
+    <!-- 分页查询 -->
+    <select id="getList" resultMap="itemMap">
+        select
+            jiaf.id,
+            jiaf.interspace_id,
+            ji.title as interspaceName,
+            ji.img_url,
+            ji.address,
+            ji.lon,
+            ji.lat,
+            jiaf.interspace_time,
+            jiaf.subscribe_time_frame,
+            jiaf.user_name,
+            jiaf.user_phone,
+            jiaf.state,
+            jiaf.creation_time,
+            jiaf.update_time,
+            jiaf.content,
+            jiaf.user_id,
+            jiaf.reply
+        from jinhui_interspace_apply_for as jiaf
+        LEFT JOIN jinhui_interspace as ji ON ji.id = jiaf.interspace_id
+        <where>
+            1=1
+            <if test="state !=null and state !='' ">
+                and jiaf.state=#{state}
+            </if>
+            <if test="intendantType !=null and intendantType !='' ">
+                and ji.intendant_type=#{intendantType}
+            </if>
+            <if test="interspaceTime !=null and interspaceTime !='' ">
+                and jiaf.interspace_time=#{interspaceTime}
+            </if>
+            <if test="subscribeTimeFrame !=null and subscribeTimeFrame !='' ">
+                and jiaf.subscribe_time_frame=#{subscribeTimeFrame}
+            </if>
+            <if test="interspaceId !=null and interspaceId !='' ">
+                and jiaf.interspace_id=#{interspaceId}
+            </if>
+            <if test="userId !=null and userId !='' ">
+                and jiaf.user_id=#{userId}
+            </if>
+        </where>
+        order by creation_time desc
+    </select>
+
+
+    <select id="getDetails" resultMap="itemMap">
+        select
+            jiaf.id,
+            jiaf.interspace_id,
+            ji.title as interspaceName,
+            ji.img_url,
+            ji.address,
+            ji.lon,
+            ji.lat,
+            jiaf.interspace_time,
+            jiaf.subscribe_time_frame,
+            jiaf.user_name,
+            jiaf.user_phone,
+            jiaf.state,
+            jiaf.creation_time,
+            jiaf.update_time,
+            jiaf.content,
+            jiaf.user_id,
+            jiaf.reply
+        from jinhui_interspace_apply_for as jiaf
+        LEFT JOIN jinhui_interspace as ji ON ji.id = jiaf.interspace_id
+        where
+            id=#{id}
+    </select>
+
+    <insert id="addData">
+        insert into jinhui_interspace_apply_for
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                id,
+            </if>
+            <if test="item.interspaceId != null and item.interspaceId != '' ">
+                interspace_id,
+            </if>
+            <if test="item.interspaceTime != null and item.interspaceTime != '' ">
+                interspace_time,
+            </if>
+            <if test="item.subscribeTimeFrame != null and item.subscribeTimeFrame != '' ">
+                subscribe_time_frame,
+            </if>
+            <if test="item.userName != null and item.userName != '' ">
+                user_name,
+            </if>
+            <if test="item.userPhone != null and item.userPhone != '' ">
+                user_phone,
+            </if>
+            <if test="item.state != null and item.state != '' ">
+                `state`,
+            </if>
+            <if test="item.content != null and item.content != '' ">
+                content,
+            </if>
+            <if test="item.reply != null and item.reply != '' ">
+                reply,
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                user_id,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                #{item.id},
+            </if>
+            <if test="item.interspaceId != null and item.interspaceId != '' ">
+                #{item.interspaceId},
+            </if>
+            <if test="item.interspaceTime != null and item.interspaceTime != '' ">
+                #{item.interspaceTime},
+            </if>
+            <if test="item.subscribeTimeFrame != null and item.subscribeTimeFrame != '' ">
+                #{item.subscribeTimeFrame},
+            </if>
+            <if test="item.userName != null and item.userName != '' ">
+                #{item.userName},
+            </if>
+            <if test="item.userPhone != null and item.userPhone != '' ">
+                #{item.userPhone},
+            </if>
+            <if test="item.state != null and item.state != '' ">
+                #{item.state},
+            </if>
+            <if test="item.content != null and item.content != '' ">
+                #{item.content},
+            </if>
+            <if test="item.reply != null and item.reply != '' ">
+                #{item.reply},
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                #{item.userId},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="editData">
+        update jinhui_interspace_apply_for
+        <set>
+            <if test="item.id != null and item.id != '' ">
+                id=#{item.id},
+            </if>
+            <if test="item.interspaceId != null and item.interspaceId != '' ">
+                interspace_id=#{item.interspaceId},
+            </if>
+            <if test="item.interspaceTime != null and item.interspaceTime != '' ">
+                interspace_time=#{item.interspaceTime},
+            </if>
+            <if test="item.subscribeTimeFrame != null and item.subscribeTimeFrame != '' ">
+                subscribe_time_frame=#{item.subscribeTimeFrame},
+            </if>
+            <if test="item.userName != null and item.userName != '' ">
+                user_name=#{item.userName},
+            </if>
+            <if test="item.userPhone != null and item.userPhone != '' ">
+                user_phone=#{item.userPhone},
+            </if>
+            <if test="item.state != null and item.state != '' ">
+                `state`=#{item.state},
+            </if>
+            <if test="item.content != null and item.content != '' ">
+                content=#{item.content},
+            </if>
+            <if test="item.reply != null and item.reply != '' ">
+                reply=#{item.reply},
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                user_id=#{item.userId},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="expurgateData" parameterType="String">
+        delete from jinhui_interspace_apply_for where id=#{id}
+    </delete>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiInterspaceMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiInterspaceMapper.xml
new file mode 100644
index 0000000..3e4722d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiInterspaceMapper.xml
@@ -0,0 +1,192 @@
+<?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_jinhui_community.dao.JinhuiInterspaceDao">
+
+    <resultMap type="com.panzhihua.service_jinhui_community.entity.JinhuiInterspace" id="itemMap">
+        <result property="id" column="id" />
+        <result property="title" column="title" />
+        <result property="intendant" column="intendant" />
+        <result property="intendantPhone" column="intendant_phone" />
+        <result property="intendantType" column="intendant_type" />
+        <result property="content" column="content" />
+        <result property="address" column="address" />
+        <result property="lon" column="lon" />
+        <result property="lat" column="lat" />
+        <result property="imgUrl" column="img_url" />
+        <result property="creationTime" column="creation_time" />
+        <result property="updateTime" column="update_time" />
+        <result property="price" column="price" />
+    </resultMap>
+
+
+    <!-- 分页查询 -->
+    <select id="getList" resultMap="itemMap">
+        select
+            id,
+            title,
+            intendant,
+            intendant_phone,
+            intendant_type,
+            (select intendant_name from jinhui_intendant_type where jinhui_interspace.intendant_type=jinhui_intendant_type.id) as intendantName,
+            content,
+            address,
+            lon,
+            lat,
+            img_url,
+            creation_time,
+            update_time,
+            price
+        from jinhui_interspace
+        <where>
+            <if test="intendantType !=null and intendantType !='' ">
+                intendant_type=#{intendantType}
+            </if>
+        </where>
+        order by creation_time desc
+    </select>
+
+
+    <select id="getDetails" resultMap="itemMap">
+        select
+            id,
+            title,
+            intendant,
+            intendant_phone,
+            intendant_type,
+            (select intendant_name from jinhui_intendant_type where jinhui_interspace.intendant_type=jinhui_intendant_type.id) as intendantName,
+            content,
+            address,
+            lon,
+            lat,
+            img_url,
+            creation_time,
+            update_time,
+            price
+        from jinhui_interspace
+        where
+            id=#{id}
+    </select>
+
+    <insert id="addData">
+        insert into jinhui_interspace
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                id,
+            </if>
+            <if test="item.title != null and item.title != '' ">
+                title,
+            </if>
+            <if test="item.intendant != null and item.intendant != '' ">
+                intendant,
+            </if>
+            <if test="item.intendantPhone != null and item.intendantPhone != '' ">
+                intendant_phone,
+            </if>
+            <if test="item.intendantType != null and item.intendantType != '' ">
+                intendant_type,
+            </if>
+            <if test="item.content != null and item.content != '' ">
+                content,
+            </if>
+            <if test="item.address != null and item.address != '' ">
+                address,
+            </if>
+            <if test="item.lon != null and item.lon != '' ">
+                lon,
+            </if>
+            <if test="item.lat != null and item.lat != '' ">
+                lat,
+            </if>
+            <if test="item.imgUrl != null and item.imgUrl != '' ">
+                img_url,
+            </if>
+            <if test="item.price != null and item.price != '' ">
+                price,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                #{item.id},
+            </if>
+            <if test="item.title != null and item.title != '' ">
+                #{item.title},
+            </if>
+            <if test="item.intendant != null and item.intendant != '' ">
+                #{item.intendant},
+            </if>
+            <if test="item.intendantPhone != null and item.intendantPhone != '' ">
+                #{item.intendantPhone},
+            </if>
+            <if test="item.intendantType != null and item.intendantType != '' ">
+                #{item.intendantType},
+            </if>
+            <if test="item.content != null and item.content != '' ">
+                #{item.content},
+            </if>
+            <if test="item.address != null and item.address != '' ">
+                #{item.address},
+            </if>
+            <if test="item.lon != null and item.lon != '' ">
+                #{item.lon},
+            </if>
+            <if test="item.lat != null and item.lat != '' ">
+                #{item.lat},
+            </if>
+            <if test="item.imgUrl != null and item.imgUrl != '' ">
+                #{item.imgUrl},
+            </if>
+            <if test="item.price != null and item.price != '' ">
+                #{item.price},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="editData">
+        update jinhui_interspace
+        <set>
+            <if test="item.id != null and item.id != '' ">
+                id=#{item.id},
+            </if>
+            <if test="item.title != null and item.title != '' ">
+                title=#{item.title},
+            </if>
+            <if test="item.intendant != null and item.intendant != '' ">
+                intendant=#{item.intendant},
+            </if>
+            <if test="item.intendantPhone != null and item.intendantPhone != '' ">
+                intendant_phone=#{item.intendantPhone},
+            </if>
+            <if test="item.intendantType != null and item.intendantType != '' ">
+                intendant_type=#{item.intendantType},
+            </if>
+            <if test="item.content != null and item.content != '' ">
+                content=#{item.content},
+            </if>
+            <if test="item.address != null and item.address != '' ">
+                address=#{item.address},
+            </if>
+            <if test="item.lon != null and item.lon != '' ">
+                lon=#{item.lon},
+            </if>
+            <if test="item.lat != null and item.lat != '' ">
+                lat=#{item.lat},
+            </if>
+            <if test="item.imgUrl != null and item.imgUrl != '' ">
+                img_url=#{item.imgUrl},
+            </if>
+            <if test="item.price != null and item.price != '' ">
+                price=#{item.price},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="expurgateData" parameterType="String">
+        delete from jinhui_interspace where id=#{id}
+    </delete>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiInterspaceTypeMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiInterspaceTypeMapper.xml
new file mode 100644
index 0000000..53c3d60
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiInterspaceTypeMapper.xml
@@ -0,0 +1,89 @@
+<?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_jinhui_community.dao.JinhuiInterspaceTypeDao">
+
+    <resultMap type="com.panzhihua.service_jinhui_community.entity.JinhuiInterspaceType" id="itemMap">
+        <result property="id" column="id" />
+        <result property="intendantName" column="intendant_name" />
+        <result property="userId" column="user_id" />
+        <result property="creationTime" column="creation_time" />
+        <result property="updateTime" column="update_time" />
+    </resultMap>
+
+
+    <!-- 分页查询 -->
+    <select id="getList" resultMap="itemMap">
+        select
+            id,
+            intendant_name,
+            user_id,
+            creation_time,
+            update_time
+        from jinhui_intendant_type
+        order by creation_time desc
+    </select>
+
+
+    <select id="getDetails" resultMap="itemMap">
+        select
+            id,
+            intendant_name,
+            user_id,
+            creation_time,
+            update_time
+        from jinhui_intendant_type
+        where
+            id=#{id}
+    </select>
+
+    <insert id="addData">
+        insert into jinhui_intendant_type
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                id,
+            </if>
+            <if test="item.intendantName != null and item.intendantName != '' ">
+                intendant_name,
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                user_id,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                #{item.id},
+            </if>
+            <if test="item.intendantName != null and item.intendantName != '' ">
+                #{item.intendantName},
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                #{item.userId},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="editData">
+        update jinhui_intendant_type
+        <set>
+            <if test="item.id != null and item.id != '' ">
+                id=#{item.id},
+            </if>
+            <if test="item.intendantName != null and item.intendantName != '' ">
+                intendant_name=#{item.intendantName},
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                user_id=#{item.userId},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="expurgateData" parameterType="String">
+        delete from jinhui_intendant_type where id=#{id}
+    </delete>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiLargeScreenMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiLargeScreenMapper.xml
new file mode 100644
index 0000000..fa10a15
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiLargeScreenMapper.xml
@@ -0,0 +1,240 @@
+<?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_jinhui_community.dao.JinhuiLargeScreenDao">
+
+    <!-- 获取金汇风采数量 -->
+    <select id="getMienNum" resultType="String">
+        select
+            count(id) as number
+        from com_act_activity
+        where community_id=#{communityId}
+    </select>
+
+    <!--  获取志愿者服务  -->
+    <select id="getVolunteerServeNum" resultType="String">
+        select
+            count(id) as number
+        from com_act_activity
+        where community_id=#{communityId}
+          and aattend_people in ('志愿者')
+    </select>
+
+<!--  获取微心愿数量  -->
+    <select id="getMicroVolunteeringNum" resultType="String">
+        select
+            count(id) as number
+        from jinhui_micro_volunteering
+        where state=#{state}
+    </select>
+
+    <!--  便民服务商家  -->
+    <select id="getConvenientMerchantsNum" resultType="String">
+        select
+            count(id) as number
+        from jinhui_com_convenient_merchants
+        <where>
+            <if test=" auditType != null and auditType != '' ">
+                audit_type=#{auditType}
+            </if>
+        </where>
+    </select>
+
+
+    <!--  商家类型  -->
+    <select id="getMerchantTypeNum" resultType="com.panzhihua.common.model.vos.jinhui.JinhuiMerchantTypeVO">
+        select
+            jccsc.name,
+            count(jccm.id) as number
+        from jinhui_com_convenient_service_categories as jccsc
+        left join jinhui_com_convenient_merchants as jccm on jccm.convenient_type=jccsc.id
+        GROUP BY jccsc.name
+    </select>
+
+
+    <!--  商家类型  -->
+    <select id="getWorkGuideNum" resultType="String">
+        select
+            count(id) as number
+        from jinhui_com_act_work_guide
+    </select>
+
+
+    <!--  商家类型  -->
+    <select id="getInterspaceApplyNum" resultType="String">
+        select
+            count(id) as number
+        from jinhui_interspace_apply_for
+        <where>
+            <if test="state!=null and state != ''">
+                state=#{state}
+            </if>
+        </where>
+    </select>
+
+    <!--  商家类型  -->
+    <select id="getShoppingOrderNum" resultType="String">
+        select
+            count(id) as number
+        from jinhui_shopping_order
+        <where>
+            <if test="cancelType!=null and cancelType != ''">
+                cancel_type=#{cancelType}
+            </if>
+        </where>
+    </select>
+
+    <!--  党员  志愿者数量  -->
+    <select id="baseInfo" resultType="com.panzhihua.common.model.vos.jinhui.JinhuiCommunityServicesVO">
+        select
+            count(id) as population,
+            IFNULL((select count(id) from com_act_announcement where community_id = ${communityId}) ,0) as announcement,
+            IFNULL((select count(id) from com_pb_member where community_id = ${communityId} and audit_result =1 ),0) as partyMember,
+            IFNULL((select count(id) from com_mng_volunteer_mng where community_id = ${communityId} and state=2 ),0) as volunteer
+        from com_mng_population_community_tags AS cmpct
+        where cmpct.community_id = ${communityId}
+    </select>
+
+    <!--  获取社区工作者  -->
+    <select id="getServiceTeam" resultType="String">
+        SELECT
+            count(id) as number
+        from com_pb_service_team
+        <where>
+            1=1
+            <if test="communityId != null and communityId !=''">
+               and community_id=#{communityId}
+            </if>
+            <if test="type != null and type !=''">
+                and `type`=#{type}
+            </if>
+        </where>
+    </select>
+
+
+    <!--  老人手环异常列表数量统计  -->
+    <select id="getEarlyWarningNum" resultType="String">
+        SELECT
+        count(id) as number
+        from bracelet_early_warning
+        <where>
+            1=1
+            <if test="disposeType != null and disposeType !=''">
+                and dispose_type=#{disposeType}
+            </if>
+            <if test="communityId != null and communityId !=''">
+                and community_id=#{communityId}
+            </if>
+        </where>
+    </select>
+
+    <!--  老人手环异常列表  -->
+    <select id="getEarlyWarningList" resultType="com.panzhihua.common.model.vos.jinhui.JinhuiOldManVO">
+        SELECT
+            bew.dispose_time,
+            bew.creation_time,
+            bew.dispose_type,
+            bud.address,
+            bud.detail_address,
+            bud.mobile,
+            bud.bin_phone,
+            bud.emergency_contact,
+            bud.user_name
+        from bracelet_early_warning as bew
+        left join bracelet_user_data as bud on bew.equipment_number=bud.device_id
+        <where>
+            1=1
+            <if test="disposeType != null and disposeType !=''">
+                and bew.dispose_type=#{disposeType}
+            </if>
+            <if test="communityId != null and communityId !=''">
+                and bew.community_id=#{communityId}
+            </if>
+        </where>
+    </select>
+
+
+    <!--  老人手环用户数据  -->
+    <select id="getBraceletUser" resultType="String">
+        SELECT
+            count(bew.id) as number
+        from bracelet_user_data as bew
+        <where>
+            1=1
+            <if test="sex != null and sex !=''">
+                and bew.sex=#{sex}
+            </if>
+            <if test="communityId != null and communityId !=''">
+                and bew.community_id=#{communityId}
+            </if>
+        </where>
+    </select>
+
+
+    <!-- 新增折线数据 -->
+    <select id="getEventAddPolylineData"
+            resultType="com.panzhihua.common.model.vos.jinhui.JinhuiOldManBrokenLineVO">
+        SELECT filed, SUM(num) AS num FROM (
+           SELECT DATE_FORMAT( e.creation_time, '%Y-%m' ) AS filed, COUNT(e.id) AS num
+           FROM `bracelet_user_data` AS e
+           WHERE  e.community_id = #{communityId}
+             AND DATE_FORMAT( e.creation_time, '%Y-%m' ) > DATE_FORMAT(date_sub(curdate(),
+                 interval 12 month),'%Y-%m')
+           GROUP BY filed
+           UNION ALL SELECT * FROM
+               (
+                   SELECT DATE_FORMAT(curdate(),'%Y-%m') AS filed, 0 AS num union
+                   SELECT DATE_FORMAT(date_sub(curdate(), interval 1 month),'%Y-%m') AS filed, 0 AS num union
+                   SELECT DATE_FORMAT(date_sub(curdate(), interval 2 month),'%Y-%m') AS filed, 0 AS num union
+                   SELECT DATE_FORMAT(date_sub(curdate(), interval 3 month),'%Y-%m') AS filed, 0 AS num union
+                   SELECT DATE_FORMAT(date_sub(curdate(), interval 4 month),'%Y-%m') AS filed, 0 AS num union
+                   SELECT DATE_FORMAT(date_sub(curdate(), interval 5 month),'%Y-%m') AS filed, 0 AS num union
+                   SELECT DATE_FORMAT(date_sub(curdate(), interval 6 month),'%Y-%m') AS filed, 0 AS num union
+                   SELECT DATE_FORMAT(date_sub(curdate(), interval 7 month),'%Y-%m') AS filed, 0 AS num union
+                   SELECT DATE_FORMAT(date_sub(curdate(), interval 8 month),'%Y-%m') AS filed, 0 AS num union
+                   SELECT DATE_FORMAT(date_sub(curdate(), interval 9 month),'%Y-%m') AS filed, 0 AS num union
+                   SELECT DATE_FORMAT(date_sub(curdate(), interval 10 month),'%Y-%m') AS filed, 0 AS num union
+                   SELECT DATE_FORMAT(date_sub(curdate(), interval 11 month),'%Y-%m') AS filed, 0 AS num
+               ) temT
+       ) temp GROUP BY filed ORDER BY filed ASC
+    </select>
+
+    <!--  累计折线数据  -->
+    <select id="getEventTotalPolylineDate" resultType="String">
+        SELECT SUM(num) AS num
+        FROM (
+            SELECT COUNT(e.id) AS num
+            FROM `bracelet_user_data` AS e
+            WHERE e.community_id = #{communityId}
+            AND DATE_FORMAT( e.creation_time, '%Y-%m' ) &lt;=#{date}
+        ) temp
+    </select>
+
+
+
+
+    <select id="getOldManUserDate" resultType="com.panzhihua.common.model.vos.jinhui.JinhuiOldManUserDateVO">
+        SELECT
+            user_name,
+            device_id,
+            IFNULL(lng ,add_lng) AS lng,
+            IFNULL(lat ,add_lat) as lat,
+            is_abnormal
+        FROM bracelet_user_data
+        WHERE community_id = #{communityId}
+    </select>
+
+
+    <select id="getEarlyNewDate" resultType="String">
+        SELECT
+            dispose_type
+        FROM bracelet_early_warning
+        WHERE community_id = #{communityId} AND equipment_number=#{equipmentNumber}
+        order by creation_time desc
+        LIMIT 1
+    </select>
+
+
+
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiMicroVolunteeringMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiMicroVolunteeringMapper.xml
new file mode 100644
index 0000000..4771792
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiMicroVolunteeringMapper.xml
@@ -0,0 +1,184 @@
+<?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_jinhui_community.dao.JinhuiMicroVolunteeringDao">
+
+    <resultMap type="com.panzhihua.service_jinhui_community.entity.JinhuiMicroVolunteering" id="itemMap">
+        <result property="id" column="id" />
+        <result property="content" column="content" />
+        <result property="userId" column="user_id" />
+        <result property="wishTypeId" column="wish_type_id" />
+        <result property="userName" column="user_name" />
+        <result property="userPhone" column="user_phone" />
+        <result property="creationTime" column="creation_time" />
+        <result property="updateTime" column="update_time" />
+        <result property="imgUrl" column="img_url" />
+        <result property="reply" column="reply" />
+        <result property="replyImgUrl" column="reply_img_url" />
+        <result property="state" column="state" />
+    </resultMap>
+
+
+    <!-- 分页查询 -->
+    <select id="getList" resultMap="itemMap">
+        select
+            id,
+            content,
+            user_id,
+            wish_type_id,
+            (select title from jinhui_micro_volunteering_type where jinhui_micro_volunteering_type.id=jinhui_micro_volunteering.wish_type_id) as wishTypeName,
+            user_name,
+            user_phone,
+            img_url,
+            reply,
+            reply_img_url,
+            state,
+            creation_time,
+            update_time
+        from jinhui_micro_volunteering
+        <where>
+            1=1
+            <if test="userId !=null and userId !='' ">
+                and user_id=#{userId}
+            </if>
+            <if test="state !=null and state !='' ">
+                and `state`=#{state}
+            </if>
+        </where>
+        order by creation_time desc
+    </select>
+
+
+    <select id="getDetails" resultMap="itemMap">
+        select
+            id,
+            content,
+            user_id,
+            wish_type_id,
+            (select title from jinhui_micro_volunteering_type where jinhui_micro_volunteering_type.id=jinhui_micro_volunteering.wish_type_id) as wishTypeName,
+            user_name,
+            user_phone,
+            img_url,
+            reply,
+            reply_img_url,
+            state,
+            creation_time,
+            update_time
+        from jinhui_micro_volunteering
+        where
+            id=#{id}
+    </select>
+
+    <insert id="addData">
+        insert into jinhui_micro_volunteering
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                id,
+            </if>
+            <if test="item.content != null and item.content != '' ">
+                content,
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                user_id,
+            </if>
+            <if test="item.wishTypeId != null and item.wishTypeId != '' ">
+                wish_type_id,
+            </if>
+            <if test="item.userName != null and item.userName != '' ">
+                user_name,
+            </if>
+            <if test="item.userPhone != null and item.userPhone != '' ">
+                user_phone,
+            </if>
+            <if test="item.imgUrl != null and item.imgUrl != '' ">
+                img_url,
+            </if>
+            <if test="item.reply != null and item.reply != '' ">
+                reply,
+            </if>
+            <if test="item.replyImgUrl != null and item.replyImgUrl != '' ">
+                reply_img_url,
+            </if>
+            <if test="item.state != null and item.state != '' ">
+                `state`,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                #{item.id},
+            </if>
+            <if test="item.content != null and item.content != '' ">
+                #{item.content},
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                #{item.userId},
+            </if>
+            <if test="item.wishTypeId != null and item.wishTypeId != '' ">
+                #{item.wishTypeId},
+            </if>
+            <if test="item.userName != null and item.userName != '' ">
+                #{item.userName},
+            </if>
+            <if test="item.userPhone != null and item.userPhone != '' ">
+                #{item.userPhone},
+            </if>
+            <if test="item.imgUrl != null and item.imgUrl != '' ">
+                #{item.imgUrl},
+            </if>
+            <if test="item.reply != null and item.reply != '' ">
+                #{item.reply},
+            </if>
+            <if test="item.replyImgUrl != null and item.replyImgUrl != '' ">
+                #{item.replyImgUrl},
+            </if>
+            <if test="item.state != null and item.state != '' ">
+                #{item.state},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="editData">
+        update jinhui_micro_volunteering
+        <set>
+            <if test="item.id != null and item.id != '' ">
+                id=#{item.id},
+            </if>
+            <if test="item.content != null and item.content != '' ">
+                content=#{item.content},
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                user_id=#{item.userId},
+            </if>
+            <if test="item.wishTypeId != null and item.wishTypeId != '' ">
+                wish_type_id=#{item.wishTypeId},
+            </if>
+            <if test="item.userName != null and item.userName != '' ">
+                user_name=#{item.userName},
+            </if>
+            <if test="item.userPhone != null and item.userPhone != '' ">
+                user_phone=#{item.userPhone},
+            </if>
+            <if test="item.imgUrl != null and item.imgUrl != '' ">
+                img_url=#{item.imgUrl},
+            </if>
+            <if test="item.reply != null and item.reply != '' ">
+                reply=#{item.reply},
+            </if>
+            <if test="item.replyImgUrl != null and item.replyImgUrl != '' ">
+                reply_img_url=#{item.replyImgUrl},
+            </if>
+            <if test="item.state != null and item.state != '' ">
+                `state`=#{item.state},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="expurgateData" parameterType="String">
+        delete from jinhui_micro_volunteering where id=#{id}
+    </delete>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiMicroVolunteeringTypeMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiMicroVolunteeringTypeMapper.xml
new file mode 100644
index 0000000..49130ef
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiMicroVolunteeringTypeMapper.xml
@@ -0,0 +1,89 @@
+<?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_jinhui_community.dao.JinhuiMicroVolunteeringTypeDao">
+
+    <resultMap type="com.panzhihua.service_jinhui_community.entity.JinhuiMicroVolunteeringType" id="itemMap">
+        <result property="id" column="id" />
+        <result property="title" column="title" />
+        <result property="userId" column="user_id" />
+        <result property="creationTime" column="creation_time" />
+        <result property="updateTime" column="update_time" />
+    </resultMap>
+
+
+    <!-- 分页查询 -->
+    <select id="getList" resultMap="itemMap">
+        select
+            id,
+            title,
+            user_id,
+            creation_time,
+            update_time
+        from jinhui_micro_volunteering_type
+        order by creation_time desc
+    </select>
+
+
+    <select id="getDetails" resultMap="itemMap">
+        select
+            id,
+            title,
+            user_id,
+            creation_time,
+            update_time
+        from jinhui_micro_volunteering_type
+        where
+            id=#{id}
+    </select>
+
+    <insert id="addData">
+        insert into jinhui_micro_volunteering_type
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                id,
+            </if>
+            <if test="item.title != null and item.title != '' ">
+                title,
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                user_id,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                #{item.id},
+            </if>
+            <if test="item.title != null and item.title != '' ">
+                #{item.title},
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                #{item.userId},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="editData">
+        update jinhui_micro_volunteering_type
+        <set>
+            <if test="item.id != null and item.id != '' ">
+                id=#{item.id},
+            </if>
+            <if test="item.title != null and item.title != '' ">
+                title=#{item.title},
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                user_id=#{item.userId},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="expurgateData" parameterType="String">
+        delete from jinhui_micro_volunteering_type where id=#{id}
+    </delete>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiReseauMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiReseauMapper.xml
new file mode 100644
index 0000000..cf55389
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiReseauMapper.xml
@@ -0,0 +1,192 @@
+<?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_jinhui_community.dao.JinhuiReseauDao">
+
+    <resultMap type="com.panzhihua.service_jinhui_community.entity.JinhuiReseau" id="itemMap">
+        <result property="id" column="id" />
+        <result property="reseauName" column="reseau_name" />
+        <result property="coverage" column="coverage" />
+        <result property="acreage" column="acreage" />
+        <result property="designation" column="designation" />
+        <result property="linellae" column="linellae" />
+        <result property="broad" column="broad" />
+        <result property="fill" column="fill" />
+        <result property="rail" column="rail" />
+        <result property="reseauId" column="reseau_id" />
+        <result property="creationTime" column="creation_time" />
+        <result property="updateTime" column="update_time" />
+    </resultMap>
+
+    <!-- 分页查询 -->
+    <select id="getList" resultMap="itemMap">
+        select
+            id,
+            reseau_name,
+            coverage,
+            acreage,
+            designation,
+            linellae,
+            broad,
+            fill,
+            rail,
+            reseau_id,
+            creation_time,
+            update_time
+        from jinhui_reseau
+        order by creation_time desc
+    </select>
+
+    <!--  绑定网格员下拉框  -->
+    <select id="getBoxList" resultMap="itemMap">
+        select
+            id,
+            reseau_name,
+            coverage,
+            acreage,
+            designation,
+            linellae,
+            broad,
+            fill,
+            rail,
+            reseau_id,
+            creation_time,
+            update_time
+        from jinhui_reseau
+        where reseau_id is null
+        order by creation_time desc
+    </select>
+
+
+    <select id="getDetails" resultMap="itemMap">
+        select
+            id,
+            reseau_name,
+            coverage,
+            acreage,
+            designation,
+            linellae,
+            broad,
+            fill,
+            rail,
+            reseau_id,
+            creation_time,
+            update_time
+        from jinhui_reseau
+        where
+            id=#{id}
+    </select>
+
+    <insert id="addData">
+        insert into jinhui_reseau
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                id,
+            </if>
+            <if test="item.reseauName != null and item.reseauName != '' ">
+                reseau_name,
+            </if>
+            <if test="item.coverage != null and item.coverage != '' ">
+                coverage,
+            </if>
+            <if test="item.acreage != null and item.acreage != '' ">
+                acreage,
+            </if>
+            <if test="item.designation != null and item.designation != '' ">
+                designation,
+            </if>
+            <if test="item.linellae != null and item.linellae != '' ">
+                linellae,
+            </if>
+            <if test="item.broad != null and item.broad != '' ">
+                broad,
+            </if>
+            <if test="item.fill != null and item.fill != '' ">
+                fill,
+            </if>
+            <if test="item.rail != null and item.rail != '' ">
+                rail,
+            </if>
+            <if test="item.reseauId != null and item.reseauId != '' ">
+                reseau_id,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                #{item.id},
+            </if>
+            <if test="item.reseauName != null and item.reseauName != '' ">
+                #{item.reseauName},
+            </if>
+            <if test="item.coverage != null and item.coverage != '' ">
+                #{item.coverage},
+            </if>
+            <if test="item.acreage != null and item.acreage != '' ">
+                #{item.acreage},
+            </if>
+            <if test="item.designation != null and item.designation != '' ">
+                #{item.designation},
+            </if>
+            <if test="item.linellae != null and item.linellae != '' ">
+                #{item.linellae},
+            </if>
+            <if test="item.broad != null and item.broad != '' ">
+                #{item.broad},
+            </if>
+            <if test="item.fill != null and item.fill != '' ">
+                #{item.fill},
+            </if>
+            <if test="item.rail != null and item.rail != '' ">
+                #{item.rail},
+            </if>
+            <if test="item.reseauId != null and item.reseauId != '' ">
+                #{item.reseauId},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="editData">
+        update jinhui_reseau
+        <set>
+            <if test="item.id != null and item.id != '' ">
+                id=#{item.id},
+            </if>
+            <if test="item.reseauName != null and item.reseauName != '' ">
+                reseau_name=#{item.reseauName},
+            </if>
+            <if test="item.coverage != null and item.coverage != '' ">
+                coverage=#{item.coverage},
+            </if>
+            <if test="item.acreage != null and item.acreage != '' ">
+                acreage=#{item.acreage},
+            </if>
+            <if test="item.designation != null and item.designation != '' ">
+                designation=#{item.designation},
+            </if>
+            <if test="item.linellae != null and item.linellae != '' ">
+                linellae=#{item.linellae},
+            </if>
+            <if test="item.broad != null and item.broad != '' ">
+                broad=#{item.broad},
+            </if>
+            <if test="item.fill != null and item.fill != '' ">
+                fill=#{item.fill},
+            </if>
+            <if test="item.rail != null and item.rail != '' ">
+                rail=#{item.rail},
+            </if>
+            <if test="item.reseauId != null and item.reseauId != '' ">
+                reseau_id=#{item.reseauId},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="expurgateData" parameterType="String">
+        delete from jinhui_reseau where id=#{id}
+    </delete>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiReseauPeopleMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiReseauPeopleMapper.xml
new file mode 100644
index 0000000..fb0c9ec
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiReseauPeopleMapper.xml
@@ -0,0 +1,144 @@
+<?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_jinhui_community.dao.JinhuiReseauPeopleDao">
+
+    <resultMap type="com.panzhihua.service_jinhui_community.entity.JinhuiReseauPeople" id="itemMap">
+        <result property="id" column="id" />
+        <result property="userId" column="user_id" />
+        <result property="reseauName" column="reseau_name" />
+        <result property="reseauIds" column="reseau_ids" />
+        <result property="phone" column="phone" />
+        <result property="creationTime" column="creation_time" />
+        <result property="updateTime" column="update_time" />
+    </resultMap>
+
+
+    <!-- 分页查询 -->
+    <select id="getList" resultMap="itemMap">
+        select
+            id,
+            reseau_name,
+            reseau_ids,
+            phone,
+            creation_time,
+            update_time,
+            user_id
+        from jinhui_reseau_people
+        order by creation_time desc
+    </select>
+
+
+    <select id="getDetails" resultMap="itemMap">
+        select
+            id,
+            reseau_name,
+            reseau_ids,
+            phone,
+            creation_time,
+            update_time,
+            user_id
+        from jinhui_reseau_people
+        where
+            id=#{id}
+    </select>
+
+    <insert id="addData">
+        insert into jinhui_reseau_people
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                id,
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                user_id,
+            </if>
+            <if test="item.reseauName != null and item.reseauName != '' ">
+                reseau_name,
+            </if>
+
+            <if test="item.reseauIds != null and item.reseauIds != '' ">
+                reseau_ids,
+            </if>
+            <if test="item.phone != null and item.phone != '' ">
+                phone,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                #{item.id},
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                #{item.userId},
+            </if>
+            <if test="item.reseauName != null and item.reseauName != '' ">
+                #{item.reseauName},
+            </if>
+            <if test="item.reseauIds != null and item.reseauIds != '' ">
+                #{item.reseauIds},
+            </if>
+            <if test="item.phone != null and item.phone != '' ">
+                #{item.phone},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="editData">
+        update jinhui_reseau_people
+        <set>
+            <if test="item.id != null and item.id != '' ">
+                id=#{item.id},
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                user_id=#{item.userId},
+            </if>
+            <if test="item.reseauName != null and item.reseauName != '' ">
+                reseau_name=#{item.reseauName},
+            </if>
+            <if test="item.reseauIds != null and item.reseauIds != '' ">
+                reseau_ids=#{item.reseauIds},
+            </if>
+            <if test="item.phone != null and item.phone != '' ">
+                phone=#{item.phone},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="expurgateData" parameterType="String">
+        delete from jinhui_reseau_people where id=#{id}
+    </delete>
+
+
+    <select id="getUserList" resultType="com.panzhihua.common.model.vos.LoginUserInfoVO">
+        select
+            user_id,
+            phone,
+            nick_name,
+            `name`,
+            community_id,
+            sex,
+            id_card,
+            birthday,
+            image_url,
+            `type`,
+            job,
+            status
+        from sys_user
+        <where>
+            community_id=#{communityId} and status=1
+            <if test="nameAndPhone !=null and nameAndPhone!='' ">
+                and `name` LIKE CONCAT('%', #{nameAndPhone}, '%')
+                or nick_name LIKE CONCAT('%', #{nameAndPhone}, '%')
+                or phone LIKE CONCAT('%', #{nameAndPhone}, '%')
+            </if>
+        </where>
+
+
+    </select>
+
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiShoppingMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiShoppingMapper.xml
new file mode 100644
index 0000000..21a02c0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiShoppingMapper.xml
@@ -0,0 +1,147 @@
+<?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_jinhui_community.dao.JinhuiShoppingDao">
+
+    <resultMap type="com.panzhihua.service_jinhui_community.entity.JinhuiShopping" id="itemMap">
+        <result property="id" column="id" />
+        <result property="goodName" column="good_name" />
+        <result property="goodPrice" column="good_price" />
+        <result property="goodType" column="good_type" />
+        <result property="coverImgUrl" column="cover_img_url" />
+        <result property="content" column="content" />
+        <result property="creationTime" column="creation_time" />
+        <result property="updateTime" column="update_time" />
+    </resultMap>
+
+
+
+
+
+    <!-- 分页查询 -->
+    <select id="getList" resultMap="itemMap">
+        select
+            id,
+            good_name,
+            good_price,
+            good_type,
+            cover_img_url,
+            content,
+            creation_time,
+            update_time
+        from jinhui_shopping
+        <where>
+            1=1
+            <if test="goodName !=null and goodName !='' ">
+                and good_name LIKE CONCAT('%', #{goodName}, '%')
+            </if>
+            <if test="goodType !=null and goodType !='' ">
+                and good_type=#{goodType}
+            </if>
+            <if test="id !=null and id !='' ">
+                and id=#{id}
+            </if>
+        </where>
+        order by creation_time desc
+    </select>
+
+
+    <select id="getDetails" resultMap="itemMap">
+        select
+            js.id,
+            js.good_name,
+            js.good_price,
+            js.good_type,
+            js.cover_img_url,
+            js.content,
+            js.creation_time,
+            js.update_time,
+            vcc.address,
+            vcc.lat,
+            vcc.lng,
+            vcc.business_type,
+            vcc.business_start_time,
+            vcc.business_end_time
+        from jinhui_shopping as js
+        left join volunteer_community_config vcc on vcc.community_id=#{communityId}
+        where
+            js.id=#{id}
+    </select>
+
+    <insert id="addData">
+        insert into jinhui_shopping
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                id,
+            </if>
+            <if test="item.goodName != null and item.goodName != '' ">
+                good_name,
+            </if>
+            <if test="item.goodPrice != null and item.goodPrice != '' ">
+                good_price,
+            </if>
+            <if test="item.goodType != null and item.goodType != '' ">
+                good_type,
+            </if>
+            <if test="item.coverImgUrl != null and item.coverImgUrl != '' ">
+                cover_img_url,
+            </if>
+            <if test="item.content != null and item.content != '' ">
+                content,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                #{item.id},
+            </if>
+            <if test="item.goodName != null and item.goodName != '' ">
+                #{item.goodName},
+            </if>
+            <if test="item.goodPrice != null and item.goodPrice != '' ">
+                #{item.goodPrice},
+            </if>
+            <if test="item.goodType != null and item.goodType != '' ">
+                #{item.goodType},
+            </if>
+            <if test="item.coverImgUrl != null and item.coverImgUrl != '' ">
+                #{item.coverImgUrl},
+            </if>
+            <if test="item.content != null and item.content != '' ">
+                #{item.content},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="editData">
+        update jinhui_shopping
+        <set>
+            <if test="item.id != null and item.id != '' ">
+                id=#{item.id},
+            </if>
+            <if test="item.goodName != null and item.goodName != '' ">
+                good_name=#{item.goodName},
+            </if>
+            <if test="item.goodPrice != null and item.goodPrice != '' ">
+                good_price=#{item.goodPrice},
+            </if>
+            <if test="item.goodType != null and item.goodType != '' ">
+                good_type=#{item.goodType},
+            </if>
+            <if test="item.coverImgUrl != null and item.coverImgUrl != '' ">
+                cover_img_url=#{item.coverImgUrl},
+            </if>
+            <if test="item.content != null and item.content != '' ">
+                content=#{item.content},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="expurgateData" parameterType="String">
+        delete from jinhui_shopping where id=#{id}
+    </delete>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiShoppingOrderMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiShoppingOrderMapper.xml
new file mode 100644
index 0000000..6212d34
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiShoppingOrderMapper.xml
@@ -0,0 +1,197 @@
+<?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_jinhui_community.dao.JinhuiShoppingOrderDao">
+
+    <resultMap type="com.panzhihua.service_jinhui_community.entity.JinhuiShoppingOrder" id="itemMap">
+        <result property="id" column="id" />
+        <result property="orderNumber" column="order_number" />
+        <result property="goodsId" column="goods_id" />
+        <result property="userId" column="user_id" />
+        <result property="cancelType" column="cancel_type" />
+        <result property="cancelTime" column=" cancel_time" />
+        <result property="palyMoney" column="paly_money" />
+        <result property="creationTime" column="creation_time" />
+        <result property="updateTime" column="update_time" />
+        <result property="abolishTime" column="abolish_time" />
+    </resultMap>
+
+    <!-- 分页查询 -->
+    <select id="getList" resultMap="itemMap">
+        select
+            jso.id,
+            jso.order_number,
+            jso.goods_id,
+            js.good_name,
+            js.good_price,
+            js.cover_img_url,
+            jso.user_id,
+            su.name,
+            su.phone,
+            vcc.address,
+            vcc.lat,
+            vcc.lng,
+            vcc.business_type,
+            vcc.business_start_time,
+            vcc.business_end_time,
+            jso.creation_time,
+            jso.cancel_type,
+            jso.update_time,
+            jso.cancel_time,
+            jso.abolish_time,
+            jso.paly_money
+        from jinhui_shopping_order as jso
+        LEFT JOIN sys_user su ON jso.user_id = su.user_id
+        LEFT JOIN jinhui_shopping js ON js.id = jso.goods_id
+        LEFT JOIN volunteer_community_config as vcc ON vcc.community_id=#{communityId}
+        <where>
+            1=1
+            <if test="userId !=null and userId !='' ">
+                and jso.user_id=#{userId}
+            </if>
+            <if test="goodsId !=null and goodsId !='' ">
+                and jso.goods_id=#{goodsId}
+            </if>
+            <if test="orderNumber !=null and orderNumber !='' ">
+                and jso.order_number LIKE CONCAT('%', #{orderNumber}, '%')
+            </if>
+            <if test="goodName !=null and goodName !='' ">
+                and js.good_name LIKE CONCAT('%', #{goodName}, '%')
+            </if>
+            <if test="name !=null and name !='' ">
+                and su.name LIKE CONCAT('%', #{name}, '%')
+            </if>
+            <if test="cancelType !=null and cancelType !='' ">
+                and jso.cancel_type LIKE CONCAT('%', #{cancelType}, '%')
+            </if>
+        </where>
+        order by creation_time desc
+    </select>
+
+
+    <select id="getDetails" resultMap="itemMap">
+        select
+            jso.id,
+            jso.order_number,
+            jso.goods_id,
+            js.good_name,
+            js.good_price,
+            js.cover_img_url,
+            jso.user_id,
+            su.name,
+            su.phone,
+            vcc.address,
+            vcc.lat,
+            vcc.lng,
+            vcc.business_type,
+            vcc.business_start_time,
+            vcc.business_end_time,
+            jso.creation_time,
+            jso.cancel_type,
+            jso.update_time,
+            jso.cancel_time,
+            jso.abolish_time,
+            jso.paly_money
+        from jinhui_shopping_order as jso
+         LEFT JOIN sys_user su ON jso.user_id = su.user_id
+         LEFT JOIN jinhui_shopping js ON js.id = jso.goods_id
+         LEFT JOIN volunteer_community_config as vcc ON vcc.community_id=#{communityId}
+        where
+            jso.id=#{id}
+    </select>
+
+    <insert id="addData">
+        insert into jinhui_shopping_order
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                id,
+            </if>
+            <if test="item.orderNumber != null and item.orderNumber != '' ">
+                order_number,
+            </if>
+            <if test="item.goodsId != null and item.goodsId != '' ">
+                goods_id,
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                user_id,
+            </if>
+            <if test="item.cancelType != null and item.cancelType != '' ">
+                cancel_type,
+            </if>
+            <if test="item.cancelTime != null ">
+                cancel_time,
+            </if>
+            <if test="item.palyMoney != null and item.palyMoney != '' ">
+                paly_money,
+            </if>
+            <if test="item.abolishTime != null">
+                abolish_time,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                #{item.id},
+            </if>
+            <if test="item.orderNumber != null and item.orderNumber != '' ">
+                #{item.orderNumber},
+            </if>
+            <if test="item.goodsId != null and item.goodsId != '' ">
+                #{item.goodsId},
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                #{item.userId},
+            </if>
+            <if test="item.cancelType != null and item.cancelType != '' ">
+                #{item.cancelType},
+            </if>
+            <if test="item.cancelTime != null ">
+                #{item.cancelTime},
+            </if>
+            <if test="item.palyMoney != null and item.palyMoney != '' ">
+                #{item.palyMoney},
+            </if>
+            <if test="item.abolishTime != null">
+                #{item.abolishTime},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="editData">
+        update jinhui_shopping_order
+        <set>
+            <if test="item.id != null and item.id != '' ">
+                id=#{item.id},
+            </if>
+            <if test="item.orderNumber != null and item.orderNumber != '' ">
+                order_number=#{item.orderNumber},
+            </if>
+            <if test="item.goodsId != null and item.goodsId != '' ">
+                goods_id=#{item.goodsId},
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                user_id=#{item.userId},
+            </if>
+            <if test="item.cancelType != null and item.cancelType != '' ">
+                cancel_type=#{item.cancelType},
+            </if>
+            <if test="item.cancelTime != null  ">
+                cancel_time=#{item.cancelTime},
+            </if>
+            <if test="item.palyMoney != null and item.palyMoney != '' ">
+                paly_money=#{item.palyMoney},
+            </if>
+            <if test="item.abolishTime != null">
+                abolish_time=#{item.abolishTime},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="expurgateData" parameterType="String">
+        delete from jinhui_shopping_order where id=#{id}
+    </delete>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiSnapshotClassifyMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiSnapshotClassifyMapper.xml
new file mode 100644
index 0000000..acf2cfd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiSnapshotClassifyMapper.xml
@@ -0,0 +1,80 @@
+<?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_jinhui_community.dao.JinhuiSnapshotClassifyDao">
+
+    <resultMap type="com.panzhihua.service_jinhui_community.entity.JinhuiSnapshotClassify" id="itemMap">
+        <result property="id" column="id" />
+        <result property="classifyName" column="classify_name" />
+        <result property="creationTime" column="creation_time" />
+        <result property="updateTime" column="update_time" />
+    </resultMap>
+
+
+
+
+
+    <!-- 分页查询 -->
+    <select id="getList" resultMap="itemMap">
+        select
+            id,
+            classify_name,
+            creation_time,
+            update_time
+        from jinhui_snapshot_classify
+        order by creation_time desc
+    </select>
+
+
+    <select id="getDetails" resultMap="itemMap">
+        select
+            id,
+            classify_name,
+            creation_time,
+            update_time
+        from jinhui_snapshot_classify
+        where
+            id=#{id}
+    </select>
+
+    <insert id="addData">
+        insert into jinhui_snapshot_classify
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                id,
+            </if>
+            <if test="item.classifyName != null and item.classifyName != '' ">
+                classify_name,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                #{item.id},
+            </if>
+            <if test="item.classifyName != null and item.classifyName != '' ">
+                #{item.classifyName},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="editData">
+        update jinhui_snapshot_classify
+        <set>
+            <if test="item.id != null and item.id != '' ">
+                id=#{item.id},
+            </if>
+            <if test="item.classifyName != null and item.classifyName != '' ">
+                classify_name=#{item.classifyName},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="expurgateData" parameterType="String">
+        delete from jinhui_snapshot_classify where id=#{id}
+    </delete>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiSnapshotMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiSnapshotMapper.xml
new file mode 100644
index 0000000..2180da9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/JinhuiSnapshotMapper.xml
@@ -0,0 +1,188 @@
+<?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_jinhui_community.dao.JinhuiSnapshotDao">
+
+    <resultMap type="com.panzhihua.service_jinhui_community.entity.JinhuiSnapshot" id="itemMap">
+        <result property="id" column="id" />
+        <result property="userId" column="user_id" />
+        <result property="reseauId" column="reseau_id" />
+        <result property="content" column="content" />
+        <result property="imgUrl" column="img_url" />
+        <result property="address" column="address" />
+        <result property="lat" column="lat" />
+        <result property="lon" column="lon" />
+        <result property="addressRemark" column="address_remark" />
+        <result property="classifyId" column="classify_id" />
+        <result property="isApply" column="is_apply" />
+        <result property="creationTime" column="creation_time" />
+        <result property="updateTime" column="update_time" />
+    </resultMap>
+
+
+
+    <!-- 分页查询 -->
+    <select id="getList" resultMap="itemMap">
+        select
+            id,
+            user_id,
+            reseau_id,
+            content,
+            img_url,
+            address,
+            lat,
+            lon,
+            address_remark,
+            classify_id,
+            (select classify_name from jinhui_snapshot_classify where jinhui_snapshot_classify.id=jinhui_snapshot.classify_id) as classifyName,
+            creation_time,
+            update_time,
+            is_apply
+        from jinhui_snapshot
+        order by creation_time desc
+    </select>
+
+
+    <select id="getDetails" resultMap="itemMap">
+        select
+            id,
+            user_id,
+            reseau_id,
+            content,
+            img_url,
+            address,
+            lat,
+            lon,
+            address_remark,
+            classify_id,
+            (select classify_name from jinhui_snapshot_classify where jinhui_snapshot_classify.id=jinhui_snapshot.classify_id) as classifyName,
+            creation_time,
+            update_time,
+            is_apply
+        from jinhui_snapshot
+        where
+            id=#{id}
+    </select>
+
+    <insert id="addData">
+        insert into jinhui_snapshot
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                id,
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                user_id,
+            </if>
+            <if test="item.reseauId != null and item.reseauId != '' ">
+                reseau_id,
+            </if>
+            <if test="item.content != null and item.content != '' ">
+                content,
+            </if>
+            <if test="item.imgUrl != null and item.imgUrl != '' ">
+                img_url,
+            </if>
+            <if test="item.address != null and item.address != '' ">
+                address,
+            </if>
+            <if test="item.lat != null and item.lat != '' ">
+                lat,
+            </if>
+            <if test="item.lon != null and item.lon != '' ">
+                lon,
+            </if>
+            <if test="item.addressRemark != null and item.addressRemark != '' ">
+                address_remark,
+            </if>
+            <if test="item.classifyId != null and item.classifyId != '' ">
+                classify_id,
+            </if>
+            <if test="item.isApply != null and item.isApply != '' ">
+                is_apply,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                #{item.id},
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                #{item.userId},
+            </if>
+            <if test="item.reseauId != null and item.reseauId != '' ">
+                #{item.reseauId},
+            </if>
+            <if test="item.content != null and item.content != '' ">
+                #{item.content},
+            </if>
+            <if test="item.imgUrl != null and item.imgUrl != '' ">
+                #{item.imgUrl},
+            </if>
+            <if test="item.address != null and item.address != '' ">
+                #{item.address},
+            </if>
+            <if test="item.lat != null and item.lat != '' ">
+                #{item.lat},
+            </if>
+            <if test="item.lon != null and item.lon != '' ">
+                #{item.lon},
+            </if>
+            <if test="item.addressRemark != null and item.addressRemark != '' ">
+                #{item.addressRemark},
+            </if>
+            <if test="item.classifyId != null and item.classifyId != '' ">
+                #{item.classifyId},
+            </if>
+            <if test="item.isApply != null and item.isApply != '' ">
+                #{item.isApply},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="editData">
+        update jinhui_snapshot
+        <set>
+            <if test="item.id != null and item.id != '' ">
+                id=#{item.id},
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                user_id=#{item.userId},
+            </if>
+            <if test="item.reseauId != null and item.reseauId != '' ">
+                reseau_id=#{item.reseauId},
+            </if>
+            <if test="item.content != null and item.content != '' ">
+                content=#{item.content},
+            </if>
+            <if test="item.imgUrl != null and item.imgUrl != '' ">
+                img_url=#{item.imgUrl},
+            </if>
+            <if test="item.address != null and item.address != '' ">
+                address=#{item.address},
+            </if>
+            <if test="item.lat != null and item.lat != '' ">
+                lat=#{item.lat},
+            </if>
+            <if test="item.lon != null and item.lon != '' ">
+                lon=#{item.lon},
+            </if>
+            <if test="item.addressRemark != null and item.addressRemark != '' ">
+                address_remark=#{item.addressRemark},
+            </if>
+            <if test="item.classifyId != null and item.classifyId != '' ">
+                classify_id=#{item.classifyId},
+            </if>
+            <if test="item.isApply != null and item.isApply != '' ">
+                is_apply=#{item.isApply},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="expurgateData" parameterType="String">
+        delete from jinhui_snapshot where id=#{id}
+    </delete>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/VolunteerCommunityConfigMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/VolunteerCommunityConfigMapper.xml
new file mode 100644
index 0000000..adf448e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_jinhui_community/src/main/resources/mapper/VolunteerCommunityConfigMapper.xml
@@ -0,0 +1,131 @@
+<?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_jinhui_community.dao.JinhuiConfigDao">
+
+    <resultMap type="com.panzhihua.service_jinhui_community.entity.JinhuiConfig" id="itemMap">
+        <result property="id" column="id" />
+        <result property="communityId" column="community_id" />
+        <result property="address" column="address" />
+        <result property="lat" column="lat" />
+        <result property="lng" column="lng" />
+        <result property="businessType" column="business_type" />
+        <result property="businessStartTime" column="business_start_time" />
+        <result property="businessEndTime" column="business_end_time" />
+
+        <result property="creationTime" column="creation_time" />
+        <result property="updateTime" column="update_time" />
+    </resultMap>
+
+
+    <select id="getDetails" resultMap="itemMap">
+        select
+            id,
+            community_id,
+            address,
+            lat,
+            lng,
+            creation_time,
+            update_time,
+            business_type,
+            business_start_time,
+            business_end_time
+        from volunteer_community_config
+        where community_id=#{communityId}
+    </select>
+
+    <insert id="addData">
+        insert into volunteer_community_config
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                id,
+            </if>
+            <if test="item.communityId != null and item.communityId != '' ">
+                community_id,
+            </if>
+            <if test="item.address != null and item.address != '' ">
+                address,
+            </if>
+            <if test="item.lat != null and item.lat != '' ">
+                lat,
+            </if>
+            <if test="item.lng != null and item.lng != '' ">
+                lng,
+            </if>
+            <if test="item.businessType != null and item.businessType != '' ">
+                business_type,
+            </if>
+            <if test="item.businessStartTime != null and item.businessStartTime != '' ">
+                business_start_time,
+            </if>
+            <if test="item.businessEndTime != null and item.businessEndTime != '' ">
+                business_end_time,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                #{item.id},
+            </if>
+            <if test="item.communityId != null and item.communityId != '' ">
+                #{item.communityId},
+            </if>
+            <if test="item.address != null and item.address != '' ">
+                #{item.address},
+            </if>
+            <if test="item.lat != null and item.lat != '' ">
+                #{item.lat},
+            </if>
+            <if test="item.lng != null and item.lng != '' ">
+                #{item.lng},
+            </if>
+            <if test="item.businessType != null and item.businessType != '' ">
+                #{item.businessType},
+            </if>
+            <if test="item.businessStartTime != null and item.businessStartTime != '' ">
+                #{item.businessStartTime},
+            </if>
+            <if test="item.businessEndTime != null and item.businessEndTime != '' ">
+                #{item.businessEndTime},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="editData">
+        update volunteer_community_config
+        <set>
+            <if test="item.id != null and item.id != '' ">
+                id=#{item.id},
+            </if>
+            <if test="item.communityId != null and item.communityId != '' ">
+                community_id=#{item.communityId},
+            </if>
+            <if test="item.address != null and item.address != '' ">
+                address=#{item.address},
+            </if>
+            <if test="item.lat != null and item.lat != '' ">
+                lat=#{item.lat},
+            </if>
+            <if test="item.lng != null and item.lng != '' ">
+                lng=#{item.lng},
+            </if>
+            <if test="item.businessType != null and item.businessType != '' ">
+                business_type=#{item.businessType},
+            </if>
+            <if test="item.businessStartTime != null and item.businessStartTime != '' ">
+                business_start_time=#{item.businessStartTime},
+            </if>
+            <if test="item.businessEndTime != null and item.businessEndTime != '' ">
+                business_end_time=#{item.businessEndTime},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="expurgateData" parameterType="String">
+        delete from volunteer_community_config where community_id=#{communityId}
+    </delete>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/.gitignore b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/.gitignore
new file mode 100644
index 0000000..549e00a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/.gitignore
@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/.mvn/wrapper/MavenWrapperDownloader.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/.mvn/wrapper/MavenWrapperDownloader.java
new file mode 100644
index 0000000..a45eb6b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/.mvn/wrapper/MavenWrapperDownloader.java
@@ -0,0 +1,118 @@
+/*
+ * Copyright 2007-present the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.net.*;
+import java.io.*;
+import java.nio.channels.*;
+import java.util.Properties;
+
+public class MavenWrapperDownloader {
+
+    private static final String WRAPPER_VERSION = "0.5.6";
+    /**
+     * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
+     */
+    private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
+            + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
+
+    /**
+     * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
+     * use instead of the default one.
+     */
+    private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
+            ".mvn/wrapper/maven-wrapper.properties";
+
+    /**
+     * Path where the maven-wrapper.jar will be saved to.
+     */
+    private static final String MAVEN_WRAPPER_JAR_PATH =
+            ".mvn/wrapper/maven-wrapper.jar";
+
+    /**
+     * Name of the property which should be used to override the default download url for the wrapper.
+     */
+    private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
+
+    public static void main(String args[]) {
+        System.out.println("- Downloader started");
+        File baseDirectory = new File(args[0]);
+        System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
+
+        // If the maven-wrapper.properties exists, read it and check if it contains a custom
+        // wrapperUrl parameter.
+        File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
+        String url = DEFAULT_DOWNLOAD_URL;
+        if (mavenWrapperPropertyFile.exists()) {
+            FileInputStream mavenWrapperPropertyFileInputStream = null;
+            try {
+                mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
+                Properties mavenWrapperProperties = new Properties();
+                mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
+                url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
+            } catch (IOException e) {
+                System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
+            } finally {
+                try {
+                    if (mavenWrapperPropertyFileInputStream != null) {
+                        mavenWrapperPropertyFileInputStream.close();
+                    }
+                } catch (IOException e) {
+                    // Ignore ...
+                }
+            }
+        }
+        System.out.println("- Downloading from: " + url);
+
+        File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
+        if (!outputFile.getParentFile().exists()) {
+            if (!outputFile.getParentFile().mkdirs()) {
+                System.out.println(
+                        "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
+            }
+        }
+        System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
+        try {
+            downloadFileFromURL(url, outputFile);
+            System.out.println("Done");
+            System.exit(0);
+        } catch (Throwable e) {
+            System.out.println("- Error downloading");
+            e.printStackTrace();
+            System.exit(1);
+        }
+    }
+
+    private static void downloadFileFromURL(String urlString, File destination) throws Exception {
+        if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
+            String username = System.getenv("MVNW_USERNAME");
+            char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
+            Authenticator.setDefault(new Authenticator() {
+                @Override
+                protected PasswordAuthentication getPasswordAuthentication() {
+                    return new PasswordAuthentication(username, password);
+                }
+            });
+        }
+        URL website = new URL(urlString);
+        ReadableByteChannel rbc;
+        rbc = Channels.newChannel(website.openStream());
+        FileOutputStream fos = new FileOutputStream(destination);
+        fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
+        fos.close();
+        rbc.close();
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/.mvn/wrapper/maven-wrapper.jar b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/.mvn/wrapper/maven-wrapper.jar
new file mode 100644
index 0000000..2cc7d4a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/.mvn/wrapper/maven-wrapper.jar
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/.mvn/wrapper/maven-wrapper.properties b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/.mvn/wrapper/maven-wrapper.properties
new file mode 100644
index 0000000..642d572
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/.mvn/wrapper/maven-wrapper.properties
@@ -0,0 +1,2 @@
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip
+wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/mvnw b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/mvnw
new file mode 100644
index 0000000..a16b543
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/mvnw
@@ -0,0 +1,310 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#    https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Maven Start Up Batch script
+#
+# Required ENV vars:
+# ------------------
+#   JAVA_HOME - location of a JDK home dir
+#
+# Optional ENV vars
+# -----------------
+#   M2_HOME - location of maven2's installed home dir
+#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
+#     e.g. to debug Maven itself, use
+#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+# ----------------------------------------------------------------------------
+
+if [ -z "$MAVEN_SKIP_RC" ] ; then
+
+  if [ -f /etc/mavenrc ] ; then
+    . /etc/mavenrc
+  fi
+
+  if [ -f "$HOME/.mavenrc" ] ; then
+    . "$HOME/.mavenrc"
+  fi
+
+fi
+
+# OS specific support.  $var _must_ be set to either true or false.
+cygwin=false;
+darwin=false;
+mingw=false
+case "`uname`" in
+  CYGWIN*) cygwin=true ;;
+  MINGW*) mingw=true;;
+  Darwin*) darwin=true
+    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
+    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
+    if [ -z "$JAVA_HOME" ]; then
+      if [ -x "/usr/libexec/java_home" ]; then
+        export JAVA_HOME="`/usr/libexec/java_home`"
+      else
+        export JAVA_HOME="/Library/Java/Home"
+      fi
+    fi
+    ;;
+esac
+
+if [ -z "$JAVA_HOME" ] ; then
+  if [ -r /etc/gentoo-release ] ; then
+    JAVA_HOME=`java-config --jre-home`
+  fi
+fi
+
+if [ -z "$M2_HOME" ] ; then
+  ## resolve links - $0 may be a link to maven's home
+  PRG="$0"
+
+  # need this for relative symlinks
+  while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+      PRG="$link"
+    else
+      PRG="`dirname "$PRG"`/$link"
+    fi
+  done
+
+  saveddir=`pwd`
+
+  M2_HOME=`dirname "$PRG"`/..
+
+  # make it fully qualified
+  M2_HOME=`cd "$M2_HOME" && pwd`
+
+  cd "$saveddir"
+  # echo Using m2 at $M2_HOME
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --unix "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+fi
+
+# For Mingw, ensure paths are in UNIX format before anything is touched
+if $mingw ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME="`(cd "$M2_HOME"; pwd)`"
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
+fi
+
+if [ -z "$JAVA_HOME" ]; then
+  javaExecutable="`which javac`"
+  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
+    # readlink(1) is not available as standard on Solaris 10.
+    readLink=`which readlink`
+    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
+      if $darwin ; then
+        javaHome="`dirname \"$javaExecutable\"`"
+        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
+      else
+        javaExecutable="`readlink -f \"$javaExecutable\"`"
+      fi
+      javaHome="`dirname \"$javaExecutable\"`"
+      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
+      JAVA_HOME="$javaHome"
+      export JAVA_HOME
+    fi
+  fi
+fi
+
+if [ -z "$JAVACMD" ] ; then
+  if [ -n "$JAVA_HOME"  ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+      # IBM's JDK on AIX uses strange locations for the executables
+      JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+      JAVACMD="$JAVA_HOME/bin/java"
+    fi
+  else
+    JAVACMD="`which java`"
+  fi
+fi
+
+if [ ! -x "$JAVACMD" ] ; then
+  echo "Error: JAVA_HOME is not defined correctly." >&2
+  echo "  We cannot execute $JAVACMD" >&2
+  exit 1
+fi
+
+if [ -z "$JAVA_HOME" ] ; then
+  echo "Warning: JAVA_HOME environment variable is not set."
+fi
+
+CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
+
+# traverses directory structure from process work directory to filesystem root
+# first directory with .mvn subdirectory is considered project base directory
+find_maven_basedir() {
+
+  if [ -z "$1" ]
+  then
+    echo "Path not specified to find_maven_basedir"
+    return 1
+  fi
+
+  basedir="$1"
+  wdir="$1"
+  while [ "$wdir" != '/' ] ; do
+    if [ -d "$wdir"/.mvn ] ; then
+      basedir=$wdir
+      break
+    fi
+    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
+    if [ -d "${wdir}" ]; then
+      wdir=`cd "$wdir/.."; pwd`
+    fi
+    # end of workaround
+  done
+  echo "${basedir}"
+}
+
+# concatenates all lines of a file
+concat_lines() {
+  if [ -f "$1" ]; then
+    echo "$(tr -s '\n' ' ' < "$1")"
+  fi
+}
+
+BASE_DIR=`find_maven_basedir "$(pwd)"`
+if [ -z "$BASE_DIR" ]; then
+  exit 1;
+fi
+
+##########################################################################################
+# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+# This allows using the maven wrapper in projects that prohibit checking in binary data.
+##########################################################################################
+if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Found .mvn/wrapper/maven-wrapper.jar"
+    fi
+else
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
+    fi
+    if [ -n "$MVNW_REPOURL" ]; then
+      jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    else
+      jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    fi
+    while IFS="=" read key value; do
+      case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
+      esac
+    done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Downloading from: $jarUrl"
+    fi
+    wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
+    if $cygwin; then
+      wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
+    fi
+
+    if command -v wget > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found wget ... using wget"
+        fi
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+            wget "$jarUrl" -O "$wrapperJarPath"
+        else
+            wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
+        fi
+    elif command -v curl > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found curl ... using curl"
+        fi
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+            curl -o "$wrapperJarPath" "$jarUrl" -f
+        else
+            curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
+        fi
+
+    else
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Falling back to using Java to download"
+        fi
+        javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
+        # For Cygwin, switch paths to Windows format before running javac
+        if $cygwin; then
+          javaClass=`cygpath --path --windows "$javaClass"`
+        fi
+        if [ -e "$javaClass" ]; then
+            if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Compiling MavenWrapperDownloader.java ..."
+                fi
+                # Compiling the Java class
+                ("$JAVA_HOME/bin/javac" "$javaClass")
+            fi
+            if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                # Running the downloader
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Running MavenWrapperDownloader.java ..."
+                fi
+                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
+            fi
+        fi
+    fi
+fi
+##########################################################################################
+# End of extension
+##########################################################################################
+
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
+if [ "$MVNW_VERBOSE" = true ]; then
+  echo $MAVEN_PROJECTBASEDIR
+fi
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --path --windows "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
+    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
+fi
+
+# Provide a "standardized" way to retrieve the CLI args that will
+# work with both Windows and non-Windows executions.
+MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
+export MAVEN_CMD_LINE_ARGS
+
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+exec "$JAVACMD" \
+  $MAVEN_OPTS \
+  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
+  "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
+  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/mvnw.cmd b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/mvnw.cmd
new file mode 100644
index 0000000..c8d4337
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/mvnw.cmd
@@ -0,0 +1,182 @@
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements.  See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership.  The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License.  You may obtain a copy of the License at
+@REM
+@REM    https://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied.  See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Maven Start Up Batch script
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM M2_HOME - location of maven2's installed home dir
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
+@REM     e.g. to debug Maven itself, use
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+@REM ----------------------------------------------------------------------------
+
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
+@echo off
+@REM set title of command window
+title %0
+@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
+@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
+
+@REM set %HOME% to equivalent of $HOME
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
+
+@REM Execute a user defined script before this one
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
+if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
+:skipRcPre
+
+@setlocal
+
+set ERROR_CODE=0
+
+@REM To isolate internal variables from possible post scripts, we use another setlocal
+@setlocal
+
+@REM ==== START VALIDATION ====
+if not "%JAVA_HOME%" == "" goto OkJHome
+
+echo.
+echo Error: JAVA_HOME not found in your environment. >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:OkJHome
+if exist "%JAVA_HOME%\bin\java.exe" goto init
+
+echo.
+echo Error: JAVA_HOME is set to an invalid directory. >&2
+echo JAVA_HOME = "%JAVA_HOME%" >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+@REM ==== END VALIDATION ====
+
+:init
+
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
+@REM Fallback to current working directory if not found.
+
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
+
+set EXEC_DIR=%CD%
+set WDIR=%EXEC_DIR%
+:findBaseDir
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
+cd ..
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
+set WDIR=%CD%
+goto findBaseDir
+
+:baseDirFound
+set MAVEN_PROJECTBASEDIR=%WDIR%
+cd "%EXEC_DIR%"
+goto endDetectBaseDir
+
+:baseDirNotFound
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
+cd "%EXEC_DIR%"
+
+:endDetectBaseDir
+
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
+
+@setlocal EnableExtensions EnableDelayedExpansion
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
+
+:endReadAdditionalConfig
+
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+
+FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
+    IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
+)
+
+@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
+if exist %WRAPPER_JAR% (
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Found %WRAPPER_JAR%
+    )
+) else (
+    if not "%MVNW_REPOURL%" == "" (
+        SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    )
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Couldn't find %WRAPPER_JAR%, downloading it ...
+        echo Downloading from: %DOWNLOAD_URL%
+    )
+
+    powershell -Command "&{"^
+		"$webclient = new-object System.Net.WebClient;"^
+		"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
+		"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
+		"}"^
+		"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
+		"}"
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Finished downloading %WRAPPER_JAR%
+    )
+)
+@REM End of extension
+
+@REM Provide a "standardized" way to retrieve the CLI args that will
+@REM work with both Windows and non-Windows executions.
+set MAVEN_CMD_LINE_ARGS=%*
+
+%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
+if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
+:skipRcPost
+
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
+if "%MAVEN_BATCH_PAUSE%" == "on" pause
+
+if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
+
+exit /B %ERROR_CODE%
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/pom.xml
new file mode 100644
index 0000000..f966e3a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/pom.xml
@@ -0,0 +1,129 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.panzhihua</groupId>
+        <artifactId>zhihuishequ</artifactId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <groupId>com.panzhihua</groupId>
+    <artifactId>service_partybuilding</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>service_partybuilding</name>
+    <description>党建服务</description>
+
+
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-config</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid-spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>com.netflix.hystrix</groupId>
+            <artifactId>hystrix-javanica</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.panzhihua</groupId>
+            <artifactId>common</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.data</groupId>
+            <artifactId>spring-data-redis</artifactId>
+        </dependency>
+        <!--添加监控依赖包-->
+        <dependency>
+            <groupId>io.micrometer</groupId>
+            <artifactId>micrometer-registry-prometheus</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+    </dependencies>
+
+
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>2.5.0</version>
+                <configuration>
+                    <mainClass>com.panzhihua.service_dangjian.ServiceDangjianApplication</mainClass>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>docker-maven-plugin</artifactId>
+                <version>1.2.0</version>
+                <configuration>
+                    <imageName>registry.cn-chengdu.aliyuncs.com/panzhihua/service-dangjian:v1</imageName>
+                    <serverId></serverId>
+                    <baseImage>java</baseImage>
+                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
+                    <resources>
+                        <resource>
+                            <targetPath>/</targetPath>
+                            <directory>${project.build.directory}</directory>
+                            <include>${project.build.finalName}.jar</include>
+                        </resource>
+                    </resources>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <repositories>
+        <repository>
+            <id>spring-snapshots</id>
+            <name>Spring Snapshots</name>
+            <url>https://repo.spring.io/snapshot</url>
+            <snapshots>
+                <enabled>true</enabled>
+            </snapshots>
+        </repository>
+        <repository>
+            <id>spring-milestones</id>
+            <name>Spring Milestones</name>
+            <url>https://repo.spring.io/milestone</url>
+        </repository>
+    </repositories>
+
+</project>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/ServiceDangjianApplication.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/ServiceDangjianApplication.java
new file mode 100644
index 0000000..e2c068b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/ServiceDangjianApplication.java
@@ -0,0 +1,21 @@
+package com.panzhihua.service_dangjian;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.cloud.client.SpringCloudApplication;
+import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.ComponentScan;
+
+@SpringCloudApplication
+@EnableEurekaClient
+@EnableCircuitBreaker
+@EnableFeignClients(basePackages = {"com.panzhihua.common.service"})
+@ComponentScan({"com.panzhihua.service_dangjian", "com.panzhihua.common"})
+public class ServiceDangjianApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(ServiceDangjianApplication.class, args);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/ComPbCheckUnitController.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/ComPbCheckUnitController.java
new file mode 100644
index 0000000..ed4fd7c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/ComPbCheckUnitController.java
@@ -0,0 +1,207 @@
+package com.panzhihua.service_dangjian.api;
+
+import com.panzhihua.common.model.dtos.partybuilding.ComPbCheckUserDTO;
+import com.panzhihua.common.model.vos.TreeListVO;
+import com.panzhihua.common.model.vos.partybuilding.excel.ComPbCheckUnitExcelVO;
+import com.panzhihua.service_dangjian.service.ComPbCheckUnitService;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * title: 党建-报到单位(ComPbCheckUnit)  表控制层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 党建-报到单位
+ *
+ * @author lyq
+ * @date 2022-02-16 16:22:18
+ */
+@RestController
+@RequestMapping("/comPbCheckUnit")
+public class ComPbCheckUnitController {
+
+    @Resource
+    private ComPbCheckUnitService comPbCheckUnitService;
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comPbCheckUnit 请求参数
+     * @return 分页查询返回参数
+     * @author lyq
+     * @date 2022-02-16 16:22:18
+     */
+    @PostMapping("/page")
+    public R queryByPage(@RequestBody PageComPbCheckUnitDto comPbCheckUnit) {
+        return this.comPbCheckUnitService.queryByPage(comPbCheckUnit);
+    }
+
+    @PostMapping("/treeList")
+    public R treeList(@RequestBody TreeListVO treeListVO){
+        return this.comPbCheckUnitService.treeList(treeListVO);
+    }
+
+    @GetMapping("/orgList")
+    public R orgList(){
+        return this.comPbCheckUnitService.orgList();
+    }
+    /**
+     * description  add  新增数据
+     *
+     * @param comPbCheckUnit 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-02-16 16:22:18
+     */
+    @PostMapping("/add")
+    public R add(@RequestBody AddComPbCheckUnitDto comPbCheckUnit) {
+        return this.comPbCheckUnitService.insert(comPbCheckUnit);
+    }
+
+    /**
+     * description  edit  编辑数据
+     *
+     * @param comPbCheckUnit 请求参数
+     * @return 编辑结果
+     * @author lyq
+     * @date 2022-02-16 16:22:18
+     */
+    @PutMapping("/edit")
+    public R edit(@RequestBody EditComPbCheckUnitDto comPbCheckUnit) {
+        return this.comPbCheckUnitService.update(comPbCheckUnit);
+    }
+
+    /**
+     * description  deleteById  删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-02-16 16:22:18
+     */
+    @GetMapping("/delete")
+    public R deleteById(@RequestParam("id") Long id) {
+        return this.comPbCheckUnitService.deleteById(id);
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-02-16 16:22:18
+     */
+    @GetMapping("/detail")
+    public R detailById(@RequestParam("id") Long id) {
+        return this.comPbCheckUnitService.detailById(id);
+    }
+    /**
+     * description  detailById  查询详情
+     *
+     * @param phone
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-02-16 16:22:18
+     */
+    @GetMapping("/detailByPhone")
+    public R detailByPhone(@RequestParam("phone") String phone) {
+        return this.comPbCheckUnitService.detailByPhone(phone);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comPbCheckUnit 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-02-16 16:22:18
+     */
+    @PostMapping("/list")
+    public R queryByList(@RequestBody PageComPbCheckUnitDto comPbCheckUnit) {
+        return this.comPbCheckUnitService.queryByList(comPbCheckUnit);
+    }
+
+    /**
+     * 批量导入报道单位
+     * @param list  导入数据
+     * @param communityId   社区id
+     * @param userId    用户id
+     * @return  导入结果
+     */
+    @PostMapping("/importCheckUnit")
+    public R importCheckUnit(@RequestBody List<ComPbCheckUnitExcelVO> list, @RequestParam(value = "communityId") Long communityId
+            ,@RequestParam(value = "userId") Long userId){
+        return this.comPbCheckUnitService.importCheckUnit(list,communityId,userId);
+    }
+
+    /**
+     * 报到单位统计-顶部数据
+     * @param communityId
+     * @param belongTo
+     * @param choice
+     * @return
+     */
+    @GetMapping("/statistics/top")
+    public R unitStatisticsTop(@RequestParam(value = "communityId", required = false) Long communityId,
+                               @RequestParam(value = "belongTo") String belongTo,
+                               @RequestParam(value = "belongTo", required = false) String choice,
+                               @RequestParam(value = "unitIds", required = false) Long[] unitIds,
+                               @RequestParam(value = "yearTime",required = false) String yearTime) {
+        return comPbCheckUnitService.unitStatisticsTop(communityId, belongTo, choice,unitIds,yearTime);
+    }
+
+    /**
+     * 报到单位统计
+     * @param commonDto
+     * @return
+     */
+    @PostMapping("/statistics")
+    public R unitStatistics(@RequestBody PagePbCheckUnitCommonDto commonDto) {
+        return comPbCheckUnitService.unitStatistics(commonDto);
+    }
+
+    /**
+     * 报到党员统计-顶部数据
+     * @param communityId
+     * @param belongTo
+     * @param choice
+     * @param checkUnitId
+     * @return
+     */
+    @GetMapping("/pbStatistics/top")
+    public R pbStatisticsTop(@RequestParam(value = "communityId", required = false) Long communityId,
+                             @RequestParam(value = "belongTo") String belongTo,
+                             @RequestParam(value = "choice", required = false) String choice,
+                             @RequestParam(value = "checkUnitId", required = false) Long checkUnitId,
+                             @RequestParam(value = "unitIds", required = false) Long[] unitIds,
+                             @RequestParam(value = "yearTime",required = false) String yearTime) {
+        return comPbCheckUnitService.pbStatisticsTop(communityId, belongTo, choice, checkUnitId,unitIds,yearTime);
+    }
+
+    /**
+     * 报到党员统计-按单位归属统计
+     * @param commonDto
+     * @return
+     */
+    @PostMapping("/pbStatistics/belong")
+    public R pbStatisticsBelong(@RequestBody PagePbCheckUnitCommonDto commonDto) {
+        return comPbCheckUnitService.pbStatisticsBelong(commonDto);
+    }
+
+    /**
+     * 报到党员统计-按单位统计
+     * @param commonDto
+     * @return
+     */
+    @PostMapping("/pbStatistics/unit")
+    public R pbStatisticsUnit(@RequestBody PagePbCheckUnitCommonDto commonDto) {
+        return comPbCheckUnitService.pbStatisticsUnit(commonDto);
+    }
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NeedProblemApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NeedProblemApi.java
new file mode 100644
index 0000000..80320c6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NeedProblemApi.java
@@ -0,0 +1,93 @@
+package com.panzhihua.service_dangjian.api;
+
+import com.panzhihua.common.model.dtos.partybuilding.NeedProblemInventoryDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_dangjian.service.NeedProblemInventoryService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+@Slf4j
+@RestController
+@RequestMapping("/NeedProblem")
+public class NeedProblemApi
+{
+    @Resource
+    private NeedProblemInventoryService inventoryService;
+
+    @GetMapping("/getList")
+    public R getNeedProblemList(@RequestParam("pageNum") int pageNum,
+                                @RequestParam("pageSize") int pageSize,
+                                @RequestParam(value = "search", required = false)String search,
+                                @RequestParam(value = "classifyId", required = false)String classifyId,
+                                @RequestParam(value = "status", required = false)String status,
+                                @RequestParam(value = "kind", required = false)String kind,
+                                @RequestParam(value = "userId", required = false)String userId,
+                                @RequestParam(value = "userIds", required = false)String userIds,
+                                @RequestParam(value = "communityId", required = false)String communityId,
+                                @RequestParam(value = "isDisplay", required = false) String isDisplay,
+                                @RequestParam(value = "startTime", required = false) Date startTime,
+                                @RequestParam(value = "endTime", required = false) Date endTime)
+    {
+        return R.ok(inventoryService.getList(pageNum,pageSize,search,classifyId,status,kind,userId,userIds,isDisplay,communityId,startTime,endTime));
+    }
+
+    @GetMapping("/getMyJoinNeedProblemList")
+    public R getMyJoinNeedProblemList(@RequestParam("pageNum") int pageNum,
+                                      @RequestParam("pageSize") int pageSize,
+                                      @RequestParam(value = "search", required = false) String search,
+                                      @RequestParam(value = "status", required = false) String status,
+                                      @RequestParam(value = "kind", required = false) String kind,
+                                      @RequestParam(value = "userIds", required = false) String userIds,
+                                      @RequestParam(value = "userId", required = false)String userId,
+                                      @RequestParam(value = "isDisplay", required = false)String isDisplay,
+                                      @RequestParam(value = "startTime", required = false) Date startTime,
+                                      @RequestParam(value = "endTime", required = false) Date endTime)
+    {
+        return R.ok(inventoryService.getMyJoinList(pageNum,pageSize,search,status,kind,userIds,isDisplay,userId,startTime,endTime));
+    }
+
+    @GetMapping("/getDetails")
+    public R getNeedProblemDetails(@RequestParam("id") String id,@RequestParam("userIds") String userIds)
+    {
+        NeedProblemInventoryDTO item=inventoryService.getDetails(id,userIds);
+        if(item!=null)
+        {
+            return R.ok(item);
+        }
+        return R.fail("任务或已删除");
+    }
+
+    @PostMapping("/addData")
+    public R addNeedProblemData(@RequestBody  NeedProblemInventoryDTO item)
+    {
+        if(StringUtils.isEmpty(item.getCommunityId()))
+        {
+            return R.fail("CommunityId 不能为空!");
+        }
+        return R.ok(inventoryService.addData(item));
+    }
+
+    @PostMapping("/editData")
+    public R editNeedProblemData(@RequestBody NeedProblemInventoryDTO item)
+    {
+        return R.ok(inventoryService.editData(item));
+    }
+
+    @DeleteMapping("/expurgateData")
+    public R expurgateNeedProblemData(@RequestParam("id") String id)
+    {
+        return R.ok(inventoryService.expurgateData(id));
+    }
+
+
+    @PostMapping("/timedNewFightNeedProblemInventoryHandler")
+    public R timedNewFightNeedProblemInventoryHandler()
+    {
+        return inventoryService.timedNewFightNeedProblemInventoryHandler();
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NeedProblemClaimApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NeedProblemClaimApi.java
new file mode 100644
index 0000000..5460d30
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NeedProblemClaimApi.java
@@ -0,0 +1,91 @@
+package com.panzhihua.service_dangjian.api;
+
+import com.panzhihua.common.model.dtos.partybuilding.NeedProblemClaimDTO;
+import com.panzhihua.common.model.dtos.partybuilding.NeedProblemInventoryDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_dangjian.service.NeedProblemClaimService;
+import com.panzhihua.service_dangjian.service.NeedProblemInventoryService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@RestController
+@RequestMapping("/NeedClaim")
+public class NeedProblemClaimApi
+{
+    @Resource
+    private NeedProblemClaimService claimService;
+
+
+    //任务 问题接口
+    @Resource
+    private NeedProblemInventoryService inventoryService;
+
+    @GetMapping("/getNeedClaimList")
+    public R getNeedClaimList(
+                     @RequestParam(value = "taskId", required = false) String taskId,
+                     @RequestParam(value = "userId", required = false) String userId,
+                     @RequestParam(value = "unitId", required = false) String unitId)
+    {
+        return R.ok(claimService.getList(taskId,userId,unitId));
+    }
+
+    @GetMapping("/getNeedClaimDetails")
+    public R getNeedClaimDetails(@RequestParam(value = "id", required = false) String id,
+                                 @RequestParam(value = "taskId", required = false) String taskId,
+                                 @RequestParam(value = "userId", required = false) String userId)
+    {
+        return R.ok(claimService.getDetails(id, taskId, userId));
+    }
+
+    @PostMapping("/addNeedClaimData")
+    public R addNeedClaimData(@RequestBody NeedProblemClaimDTO item)
+    {
+        return claimService.addData(item);
+    }
+
+    @PostMapping("/editNeedClaimData")
+    public R editNeedClaimData(@RequestBody NeedProblemClaimDTO item)
+    {
+        return claimService.editData(item);
+    }
+
+    @DeleteMapping("/expurgateNeedClaimData")
+    public R expurgateNeedClaimData(@RequestParam(value = "id", required = false) String id,
+                                    @RequestParam(value = "taskId", required = false) String taskId,
+                                    @RequestParam(value = "userId", required = false) String userId)
+    {
+        return claimService.expurgateData(id,taskId,userId);
+    }
+
+
+    @GetMapping("/needClaimSignIn")
+    public R needClaimSignIn(@RequestParam("taskId") String taskId,
+                             @RequestParam("userId") String userId,
+                             @RequestParam("type") String type)
+    {
+        NeedProblemInventoryDTO inventoryDTO=inventoryService.getDetails(taskId,userId);
+        long times=System.currentTimeMillis();
+        if(times<inventoryDTO.getNeedStartTime().getTime())
+        {
+            return R.fail("任务未开始");
+        }
+
+        return R.ok(claimService.needClaimSignIn(taskId,userId,type));
+    }
+
+
+    /**
+     * 自动更新新双争双评需求问题清单未签退时间
+     * @return
+     */
+    @GetMapping("/upNewFightNeedProblemClaimEndTime")
+    public R upNewFightNeedProblemClaimEndTime()
+    {
+        return claimService.upNewFightNeedProblemClaimEndTime();
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NeedProblemUnitTaskApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NeedProblemUnitTaskApi.java
new file mode 100644
index 0000000..c6f2583
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NeedProblemUnitTaskApi.java
@@ -0,0 +1,53 @@
+package com.panzhihua.service_dangjian.api;
+
+import com.panzhihua.common.model.dtos.partybuilding.NeedProblemUnitTaskDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_dangjian.service.NeedProblemUnitTaskService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@RestController
+@RequestMapping("/NeedTask")
+public class NeedProblemUnitTaskApi
+{
+    @Resource
+    private NeedProblemUnitTaskService taskService;
+
+    @GetMapping("/getNeedTaskList")
+    public R getNeedTaskList(@RequestParam("pageNum") int pageNum,
+                             @RequestParam("pageSize") int pageSize,
+                             @RequestParam(value = "unitId", required = false) String unitId,
+                             @RequestParam(value = "kind", required = false) String kind,
+                             @RequestParam(value = "status", required = false) String status)
+    {
+        return R.ok(taskService.getList(pageNum,pageSize,unitId,kind,status));
+    }
+
+    @GetMapping("/getNeedTaskDetails")
+    public R  getNeedTaskDetails(@RequestParam("id") String id)
+    {
+        return R.ok(taskService.getDetails(id));
+    }
+
+    @PostMapping("/addNeedTaskData")
+    public R  addNeedTaskData(@RequestBody NeedProblemUnitTaskDTO item)
+    {
+        return taskService.addData(item);
+    }
+
+    @PostMapping("/editNeedTaskData")
+    public R  editNeedTaskData(@RequestBody NeedProblemUnitTaskDTO item)
+    {
+        return R.ok(taskService.editData(item));
+    }
+
+    @DeleteMapping("/expurgateNeedTaskData")
+    public R  expurgateNeedTaskData(@RequestParam("id") String id)
+    {
+        return R.ok(taskService.expurgateData(id));
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NewFightCommunityConstructionApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NewFightCommunityConstructionApi.java
new file mode 100644
index 0000000..2cd7183
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NewFightCommunityConstructionApi.java
@@ -0,0 +1,206 @@
+package com.panzhihua.service_dangjian.api;
+
+import com.panzhihua.common.model.dtos.partybuilding.NewFightCommunityConstructionDTO;
+import com.panzhihua.common.model.dtos.partybuilding.NewFightProjectEvaluateDTO;
+import com.panzhihua.common.model.dtos.partybuilding.NewFightProjectJoinDTO;
+import com.panzhihua.common.model.dtos.partybuilding.NewFightProjectPlanDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_dangjian.service.NewFightCommunityConstructionService;
+import com.panzhihua.service_dangjian.service.NewFightProjectEvaluateService;
+import com.panzhihua.service_dangjian.service.NewFightProjectJoinService;
+import com.panzhihua.service_dangjian.service.NewFightProjectPlanService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@RestController
+@RequestMapping("/NewFightCommunity")
+public class NewFightCommunityConstructionApi
+{
+    @Resource
+    private NewFightCommunityConstructionService claimService;
+
+    @GetMapping("/getNeedClaimList")
+    public R getNewFightCommunityList(@RequestParam("pageNum") int pageNum,
+                                      @RequestParam("pageSize") int pageSize,
+                                      @RequestParam(value = "communityId", required = false)  String communityId,
+                                      @RequestParam(value = "userId", required = false)  String userId)
+    {
+        return R.ok(claimService.getList(pageNum,pageSize,communityId,userId));
+    }
+
+    @GetMapping("/getNeedClaimDetails")
+    public R getNewFightCommunityDetails(@RequestParam("id") String id,
+                                         @RequestParam(value = "userId", required = false)  String userId)
+    {
+        return R.ok(claimService.getDetails(id,userId));
+    }
+
+    @PostMapping("/addNeedClaimData")
+    public R addNewFightCommunityData(@RequestBody NewFightCommunityConstructionDTO item)
+    {
+        return claimService.addData(item);
+    }
+
+    @PostMapping("/editNeedClaimData")
+    public R editNewFightCommunityData(@RequestBody NewFightCommunityConstructionDTO item)
+    {
+        return claimService.editData(item);
+    }
+
+    @DeleteMapping("/expurgateNeedClaimData")
+    public R expurgateNewFightCommunityData(@RequestParam("id") String id)
+    {
+        return claimService.expurgateData(id);
+    }
+
+
+    /**************************************************************************************************************
+     *
+     *                                            项目规划
+     *
+     ****************************************************************************************************************/
+
+    @Resource
+    private NewFightProjectPlanService projectPlanService;
+
+    @GetMapping("/getProjectPlanList")
+    public R  getProjectPlanList(@RequestParam("pageNum") int pageNum,
+                                 @RequestParam("pageSize") int pageSize,
+                                 @RequestParam("projectId") String projectId)
+    {
+        return R.ok(projectPlanService.getList(pageNum,pageSize,projectId));
+    }
+
+    @GetMapping("/getProjectPlanDetails")
+    public R  getProjectPlanDetails(@RequestParam("id") String id)
+    {
+        return R.ok(projectPlanService.getDetails(id));
+    }
+
+    @PostMapping("/addProjectPlanData")
+    public R addProjectPlanData(@RequestBody NewFightProjectPlanDTO item)
+    {
+        return projectPlanService.addData(item);
+    }
+
+    @PostMapping("/editProjectPlanData")
+    public R editProjectPlanData(@RequestBody NewFightProjectPlanDTO item)
+    {
+        return projectPlanService.editData(item);
+    }
+
+    @DeleteMapping("/expurgateProjectPlanData")
+    public R expurgateProjectPlanData(@RequestParam("id") String id)
+    {
+        return projectPlanService.expurgateData(id,null);
+    }
+
+
+    @GetMapping("/editProjectPlanAccomplish")
+    public R  editProjectPlanAccomplish(@RequestParam("id") String id)
+    {
+        return projectPlanService.editProjectPlanAccomplish(id);
+    }
+
+
+    /********************************************************************************************************
+     *
+     *                           项目参与
+     *
+     ******************************************************************************************************/
+
+    @Resource
+    private NewFightProjectJoinService joinService;
+
+    @GetMapping("/getJoinList")
+    public R  getJoinList(@RequestParam("pageNum") int pageNum,
+                          @RequestParam("pageSize") int pageSize,
+                          @RequestParam("projectId") String projectId)
+    {
+        return R.ok(joinService.getList(pageNum,pageSize,projectId));
+    }
+
+    @GetMapping("/getJoinDetails")
+    public R  getJoinDetails(@RequestParam("id") String id)
+    {
+        return R.ok(joinService.getDetails(id));
+    }
+
+    @PostMapping("/addJoinData")
+    public R addJoinData(@RequestBody NewFightProjectJoinDTO item)
+    {
+        return joinService.addData(item);
+    }
+
+    @PostMapping("/editJoinData")
+    public R editJoinData(@RequestBody NewFightProjectJoinDTO item)
+    {
+        return joinService.editData(item);
+    }
+
+    @DeleteMapping("/expurgateJoinData")
+    public R expurgateJoinData(@RequestParam(value = "id", required = false) String id,
+                               @RequestParam(value = "projectId", required = false) String projectId,
+                               @RequestParam(value = "userId", required = false) String userId)
+    {
+        return joinService.expurgateData(id,projectId,userId);
+    }
+    /********************************************************************************************************
+     *
+     *                           项目评论
+     *
+     ******************************************************************************************************/
+
+
+    @Resource
+    private NewFightProjectEvaluateService evaluateService;
+
+
+    @GetMapping("/getEvaluateList")
+    public R getEvaluateList(@RequestParam("pageNum") int pageNum,
+                             @RequestParam("pageSize") int pageSize,
+                             @RequestParam("projectId") String projectId)
+    {
+        return R.ok(evaluateService.getList(pageNum,pageSize,projectId));
+    }
+
+    @GetMapping("/getEvaluateDetails")
+    public R  getEvaluateDetails(@RequestParam("id") String id)
+    {
+        return R.ok(evaluateService.getDetails(id));
+    }
+
+
+    @PostMapping("/addEvaluateData")
+    public R  addEvaluateData(@RequestBody NewFightProjectEvaluateDTO item)
+    {
+        return evaluateService.addData(item);
+    }
+
+    @PostMapping("/editEvaluateData")
+    public R  editEvaluateData(@RequestBody NewFightProjectEvaluateDTO item)
+    {
+        return evaluateService.editData(item);
+    }
+
+    @DeleteMapping("/expurgateEvaluateData")
+    public R  expurgateEvaluateData(@RequestParam("id") String id)
+    {
+        return evaluateService.expurgateData(id,null);
+    }
+
+
+    /****************************************************************************************************************************************************
+     *
+     *              计时器
+     *
+     *****************************************************************************************************************************************/
+    @PostMapping("/taskTimed/getListTime")
+    public R getListTime()
+    {
+        return claimService.getListTime();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NewFightConfigApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NewFightConfigApi.java
new file mode 100644
index 0000000..3f5074d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NewFightConfigApi.java
@@ -0,0 +1,49 @@
+package com.panzhihua.service_dangjian.api;
+
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.building.NewFightConfigVO;
+import com.panzhihua.service_dangjian.service.NewFightConfigService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@RestController
+@RequestMapping("/FightConfig")
+public class NewFightConfigApi
+{
+
+    @Resource
+    private NewFightConfigService configService;
+
+    @GetMapping("/getConfigDetails")
+    public R getConfigDetails(@RequestParam("communityId") String communityId)
+    {
+        return R.ok(configService.getDetails(communityId));
+    }
+
+
+    @PostMapping("/addConfigData")
+    public R addConfigData(@RequestBody NewFightConfigVO item)
+    {
+        return configService.addData(item);
+    }
+
+    @PostMapping("/editConfigData")
+    public R editConfigData(@RequestBody NewFightConfigVO item)
+    {
+        return configService.editData(item);
+    }
+
+
+    @DeleteMapping("/expurgateConfigData")
+    public R expurgateConfigData(@RequestParam("communityId") String communityId)
+    {
+        return configService.expurgateData(communityId);
+    }
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NewFightConvenientMerchantApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NewFightConvenientMerchantApi.java
new file mode 100644
index 0000000..0e2be9c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NewFightConvenientMerchantApi.java
@@ -0,0 +1,105 @@
+package com.panzhihua.service_dangjian.api;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.building.NewFightConvenientMerchantVO;
+import com.panzhihua.service_dangjian.entity.NewFightConvenientMerchant;
+import com.panzhihua.service_dangjian.service.NewFightConvenientMerchantService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@RestController
+@RequestMapping("/FightConvenient")
+public class NewFightConvenientMerchantApi {
+    @Resource
+    private NewFightConvenientMerchantService merchantService;
+
+
+    /**
+     * 删除便民服务商家
+     *
+     * @param merchantId
+     * @param operator
+     * @return
+     */
+    @DeleteMapping("/deleteMerchantById")
+    public R deleteMerchantById(@RequestParam("communityId") String merchantId) {
+        return merchantService.deleteMerchantById(merchantId);
+    }
+
+    /**
+     * 编辑状态
+     *
+     * @param merchantId
+     * @param status
+     * @return
+     */
+    @GetMapping("/editMerchantStatus")
+    public R editMerchantStatus(@RequestParam("communityId") String merchantId,
+                                @RequestParam("status") String status) {
+        return merchantService.editStatus(merchantId, status);
+    }
+
+    /**
+     * 分页查询便民服务商家 运营后台
+     *
+     * @return
+     */
+    @GetMapping("/pageMerchant")
+    public R pageMerchant(@RequestParam("pageNum") int pageNum,
+                          @RequestParam("pageSize") int pageSize,
+                          @RequestParam("communityId") String communityId,
+                          @RequestParam(value = "isDel", required = false) String isDel,
+                          @RequestParam(value = "keyword", required = false)String keyword,
+                          @RequestParam(value = "status", required = false)String status) {
+        return merchantService.pageMerchant(pageNum, pageSize, isDel, keyword, status, communityId);
+    }
+
+    /**
+     * 查询商家信息
+     *
+     * @param merchantId
+     * @return
+     */
+    @GetMapping("/selectMerchantById")
+    public R selectMerchantById(@RequestParam("merchantId") String merchantId) {
+        return R.ok(merchantService.selectMerchantById(merchantId));
+    }
+
+    @PostMapping("/addMerchantData")
+    public R addMerchantData(@RequestBody NewFightConvenientMerchantVO item) {
+        return merchantService.addData(item);
+    }
+
+    @PostMapping("/editMerchantData")
+    public R editMerchantData(@RequestBody NewFightConvenientMerchantVO item)
+    {
+        return merchantService.editData(item);
+    }
+
+    @GetMapping("/selectUserList")
+    public R selectUserList(@RequestParam("communityId") String communityId,
+                            @RequestParam("phoneOrname") String phoneOrname)
+    {
+        return merchantService.selectUserList(communityId,phoneOrname);
+    }
+
+    @GetMapping("/selectUserListB")
+    public R selectUserListB(@RequestParam("communityId") String communityId,
+                            @RequestParam("phoneOrname") String phoneOrname)
+    {
+        return merchantService.selectUserListB(communityId,phoneOrname);
+    }
+
+
+    @GetMapping("/selectUserBind")
+    public R selectUserBind(@RequestParam("communityId") String communityId,
+                            @RequestParam("userId") String userId)
+    {
+        return merchantService.selectUserBind(communityId,userId);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NewFightIntegratingTaskApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NewFightIntegratingTaskApi.java
new file mode 100644
index 0000000..3297a75
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NewFightIntegratingTaskApi.java
@@ -0,0 +1,87 @@
+package com.panzhihua.service_dangjian.api;
+
+import com.panzhihua.common.model.dtos.partybuilding.NewFightIntegral;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.building.IntegratingTaskVO;
+import com.panzhihua.service_dangjian.entity.IntegratingTask;
+import com.panzhihua.service_dangjian.service.ComActIntegralUsersService;
+import com.panzhihua.service_dangjian.service.NewFightIntegratingTaskService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Slf4j
+@RestController
+@RequestMapping("/IntegratingTask")
+public class NewFightIntegratingTaskApi
+{
+    @Resource
+    private NewFightIntegratingTaskService taskService;
+
+    @Resource
+    private ComActIntegralUsersService usersService;
+
+    /**
+     * 列表
+     * @param
+     * @return
+     */
+    @GetMapping("/getTaskList")
+    public R<List<IntegratingTask>> getIntegratingTaskList(@RequestParam("userId") String userId,
+                                            @RequestParam("communityId") String communityId)
+    {
+        return R.ok(taskService.getList(userId,communityId));
+    }
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/addIntegratingTaskData")
+    public R addIntegratingTaskData(@RequestBody IntegratingTaskVO item)
+    {
+        return taskService.addData(item);
+    }
+
+
+    /**
+     * 添加或者修改积分
+     * @param item
+     * @return
+     */
+    @PostMapping("/upIntegral")
+    public R upIntegral(@RequestBody NewFightIntegral item)
+    {
+        return usersService.upIntegral(item);
+    }
+
+
+
+    /**
+     * 每日签到记录列表  前15条
+     * @param userId
+     * @param communityId
+     * @return
+     */
+    @GetMapping("/getEverydayList")
+    public R  getEverydayList(@RequestParam("userId") String userId,
+                              @RequestParam("communityId") String communityId)
+    {
+        return R.ok(taskService.getEverydayList(userId,communityId));
+    }
+
+
+    /**
+     *  每日定时清空
+     */
+    @GetMapping("/everydaYtruncateData")
+    public R truncateData()
+    {
+        return taskService.truncateData();
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NewFightResourceSharingApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NewFightResourceSharingApi.java
new file mode 100644
index 0000000..c2c89ad
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NewFightResourceSharingApi.java
@@ -0,0 +1,55 @@
+package com.panzhihua.service_dangjian.api;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.model.dtos.partybuilding.NewFightResourceSharingDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_dangjian.service.NewFightResourceSharingService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@RestController
+@RequestMapping("/ResourceSharing")
+public class NewFightResourceSharingApi {
+
+    @Resource
+    private NewFightResourceSharingService sharingService;
+
+    @GetMapping("/getResourceSharingList")
+    public R getResourceSharingList(@RequestParam("pageNum") int pageNum,
+                     @RequestParam("pageSize") int pageSize,
+                     @RequestParam(value = "communityId", required = false)String communityId,
+                     @RequestParam(value = "unitId", required = false) String unitId,
+                     @RequestParam(value = "meritId", required = false) String meritId)
+    {
+        return R.ok(sharingService.getList(pageNum, pageSize, communityId, unitId,meritId));
+    }
+
+    @GetMapping("/getResourceSharingDetails")
+    public R getResourceSharingDetails(@RequestParam("id") String id)
+    {
+        return R.ok(sharingService.getDetails(id));
+    }
+
+    @PostMapping("/addResourceSharingData")
+    public R addResourceSharingData(@RequestBody NewFightResourceSharingDTO item)
+    {
+        return sharingService.addData(item);
+    }
+
+    @PostMapping("/editResourceSharingData")
+    public R editResourceSharingData(@RequestBody NewFightResourceSharingDTO item)
+    {
+        return sharingService.editData(item);
+    }
+
+    @DeleteMapping("/expurgateResourceSharingData")
+    public R expurgateResourceSharingData(@RequestParam("id") String id)
+    {
+        return sharingService.expurgateData(id);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NewFightShoppingApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NewFightShoppingApi.java
new file mode 100644
index 0000000..bb83044
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NewFightShoppingApi.java
@@ -0,0 +1,68 @@
+package com.panzhihua.service_dangjian.api;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.building.NewFightShoppingVO;
+import com.panzhihua.service_dangjian.entity.NewFightShopping;
+import com.panzhihua.service_dangjian.service.NewFightShoppingService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@RestController
+@RequestMapping("/FightShopping")
+public class NewFightShoppingApi
+{
+
+    @Resource
+    private NewFightShoppingService shoppingService;
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/getFightShoppingList")
+    public R getFightShoppingList(@RequestParam("pageNum") int pageNum,
+                                  @RequestParam("pageSize") int pageSize,
+                                  @RequestParam("communityId") String communityId,
+                                  @RequestParam(value = "goodName", required = false)String goodName,
+                                  @RequestParam(value = "goodType", required = false)String goodType,
+                                  @RequestParam(value = "id", required = false)String id)
+    {
+        return shoppingService.getList(pageNum,pageSize,goodName,goodType,id,communityId);
+    }
+
+
+    @GetMapping("/getFightShoppingDetails")
+    public R getFightShoppingDetails(@RequestParam("id") String id)
+    {
+        return R.ok(shoppingService.getDetails(id));
+    }
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/addFightShoppingData")
+    public R addFightShoppingData(@RequestBody NewFightShoppingVO item)
+    {
+        return shoppingService.addData(item);
+    }
+
+
+    @PostMapping("/editFightShoppingData")
+    public R editFightShoppingData(@RequestBody NewFightShoppingVO item)
+    {
+        return shoppingService.editData(item);
+    }
+
+    @DeleteMapping("/expurgateFightShoppingData")
+    public R expurgateFightShoppingData(@RequestParam("id") String id)
+    {
+        return shoppingService.expurgateData(id);
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NewFightShoppingOrderApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NewFightShoppingOrderApi.java
new file mode 100644
index 0000000..f8b2be3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NewFightShoppingOrderApi.java
@@ -0,0 +1,107 @@
+package com.panzhihua.service_dangjian.api;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.building.NewFightShoppingOrderVO;
+import com.panzhihua.service_dangjian.service.NewFightShoppingOrderService;
+import io.swagger.annotations.Api;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+
+@Slf4j
+@Api(tags = {"新增双争双评"})
+@RestController
+@RequestMapping("/NewFightOrder")
+public class NewFightShoppingOrderApi
+{
+
+    @Resource
+    private NewFightShoppingOrderService orderService;
+
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    @GetMapping("/orderGetList")
+    public R orderGetList(@RequestParam("pageNum") int pageNum,
+                          @RequestParam("pageSize") int pageSize,
+                          @RequestParam(value = "userId", required = false) String userId,
+                          @RequestParam(value = "goodsId", required = false) String goodsId,
+                          @RequestParam(value = "orderNumber", required = false) String orderNumber,
+                          @RequestParam(value = "goodName", required = false) String goodName,
+                          @RequestParam(value = "name", required = false) String name,
+                          @RequestParam(value = "cancelType", required = false) String cancelType,
+                          @RequestParam(value = "communityId", required = false) String communityId,
+                          @RequestParam(value = "merchantId", required = false) String merchantId,
+                          @RequestParam(value = "orderType", required = false) String orderType)
+    {
+        return orderService.getList(pageNum,pageSize,userId,goodsId,orderNumber,
+                goodName,name,cancelType,communityId,merchantId,orderType);
+    }
+
+    /**
+     * 分页详情
+     * @param
+     * @return
+     */
+    @GetMapping("/orderGetDetails")
+    public R orderGetDetails(@RequestParam("id") String id,
+                             @RequestParam(value = "communityId") String communityId)
+    {
+        return R.ok(orderService.getDetails(id,communityId));
+    }
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    @PostMapping("/orderAddData")
+    public R orderAddData(@RequestBody NewFightShoppingOrderVO item)
+    {
+        return orderService.addData(item);
+    }
+
+
+    /**
+     * 编辑
+     * @param
+     * @return
+     */
+    @PostMapping("/orderEditData")
+    public R orderEditData(@RequestBody NewFightShoppingOrderVO item)
+    {
+        return orderService.editData(item);
+    }
+
+
+    /**
+     * 取消
+     * @param
+     * @return
+     */
+    @GetMapping("/orderCancelOrder")
+    public R orderCancelOrder(@RequestParam("orderId") String orderId,
+                              @RequestParam(value = "communityId") String communityId)
+    {
+        return orderService.cancelOrder(orderId,communityId);
+    }
+
+
+    /**
+     * 删除
+     * @param
+     * @return
+     */
+    @DeleteMapping("/orderExpurgateData")
+    public R orderExpurgateData(@RequestParam("id") String id,
+                                @RequestParam(value = "communityId") String communityId)
+    {
+        return orderService.expurgateData(id,communityId);
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NewStriveForApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NewStriveForApi.java
new file mode 100644
index 0000000..8d61135
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/NewStriveForApi.java
@@ -0,0 +1,46 @@
+package com.panzhihua.service_dangjian.api;
+
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_dangjian.service.NewStriveForService;
+import lombok.extern.slf4j.Slf4j;
+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;
+
+@Slf4j
+@RestController
+@RequestMapping("/NewStriveFor")
+public class NewStriveForApi
+{
+    @Resource
+    private NewStriveForService forService;
+
+    @GetMapping("/getUserRank")
+    public R getUserRank(@RequestParam("userId") String userId)
+    {
+        return R.ok(forService.getUserRank(userId));
+    }
+
+    @GetMapping("/getUserRankList")
+    public R getUserRankList(@RequestParam("pageNum") int pageNum,
+                             @RequestParam("pageSize") int pageSize,
+                             @RequestParam("userId") String userId)
+    {
+        return R.ok(forService.getUserRankList(pageNum,pageSize,userId));
+    }
+
+
+    @GetMapping("/getAllintegral")
+    public R getAllintegral(@RequestParam("type") String type,
+                            @RequestParam("userId") String userId)
+    {
+        return R.ok(forService.getAllintegral(type, userId));
+    }
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/PartyBuildIngApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/PartyBuildIngApi.java
new file mode 100644
index 0000000..096f2ea
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/PartyBuildIngApi.java
@@ -0,0 +1,830 @@
+package com.panzhihua.service_dangjian.api;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.dtos.community.PageMemberForInviteDTO;
+import com.panzhihua.common.model.vos.partybuilding.excel.ComPbMemberRoleExcelVo;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanUtils;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.bind.annotation.*;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.panzhihua.common.exceptions.PartyBuildingMemberException;
+import com.panzhihua.common.model.dtos.partybuilding.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.partybuilding.*;
+import com.panzhihua.common.service.partybuilding.PartyBuildingService;
+import com.panzhihua.service_dangjian.dao.ComPbOrgDAO;
+import com.panzhihua.service_dangjian.model.dos.ComPbMemberDO;
+import com.panzhihua.service_dangjian.model.dos.ComPbOrgDO;
+import com.panzhihua.service_dangjian.service.ComBpActivityService;
+import com.panzhihua.service_dangjian.service.ComPbMemberService;
+import com.panzhihua.service_dangjian.service.ComPbServiceTeamService;
+import com.panzhihua.service_dangjian.service.PartyOrganizationService;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党建
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 10:41
+ **/
+@RequestMapping("/partybuildIng/")
+@RestController
+public class PartyBuildIngApi {
+    @Resource
+    private ComPbMemberService comPbMemberService;
+    @Resource
+    private PartyOrganizationService partyOrganizationService;
+    @Resource
+    private ComBpActivityService comBpActivityService;
+    @Resource
+    private ComPbServiceTeamService comPbServiceTeamService;
+    @Resource
+    private ComPbOrgDAO comPbOrgDAO;
+    @Resource
+    private PartyBuildingService partyBuildingService;
+
+//    /**
+//     * 社区所有启用的党组织列表
+//     *
+//     * @return 党组织集合
+//     */
+//    @PostMapping("listpartyorganization")
+//    public R listPartyOrganization(@RequestParam("communityId") Long communityId) {
+//        List<PartyOrganizationVO> partyOrganizationVOS = partyOrganizationService.listPartyOrganization(communityId);
+//        return R.ok(partyOrganizationVOS);
+//    }
+//
+//    /**
+//     * 分页查询社区所有党组织列表
+//     *
+//     * @return 党组织集合
+//     */
+//    @PostMapping("listpartyorganizationAll")
+//    public R listPartyOrganizationAll(@RequestBody PartyOrganizationVO partyOrganizationVO) {
+//        return partyOrganizationService.listPartyOrganizationAll(partyOrganizationVO);
+//    }
+//
+//    /**
+//     * 查询所有党组织列表
+//     * @param partyOrganizationVO   请求参数
+//     * @return  党组织列表
+//     */
+//    @PostMapping("getPbOrgAllList")
+//    public R getPbOrgAllList(@RequestBody PartyOrganizationVO partyOrganizationVO) {
+//        return partyOrganizationService.getPbOrgAllList(partyOrganizationVO);
+//    }
+//
+//    /**
+//     * 新增党支部
+//     *
+//     * @param partyOrganizationVO
+//     *            党支部基本信息
+//     * @return 新增结果
+//     */
+//    @PostMapping("addpartyorganization")
+//    public R addPartyOrganization(@RequestBody PartyOrganizationVO partyOrganizationVO) {
+//        return partyOrganizationService.addPartyOrganization(partyOrganizationVO);
+//
+//    }
+//
+//    /**
+//     * 编辑党支部
+//     *
+//     * @param partyOrganizationVO
+//     *            党支部基本信息
+//     * @return 编辑结果
+//     */
+//    @PostMapping("updatepartyorganization")
+//    public R updatePartyOrganization(@RequestBody PartyOrganizationVO partyOrganizationVO) {
+//        return partyOrganizationService.updatePartyOrganization(partyOrganizationVO);
+//
+//    }
+//
+//    /**
+//     * 启用,禁用党支部
+//     *
+//     * @param partyOrganizationVO
+//     *            党支部基本信息
+//     * @return 编辑结果
+//     */
+//    @PostMapping("resetpartyorganization")
+//    public R resetPartyOrganization(@RequestBody PartyOrganizationVO partyOrganizationVO) {
+//        return partyOrganizationService.resetPartyOrganization(partyOrganizationVO);
+//
+//    }
+//
+//    /**
+//     * 删除党支部
+//     *
+//     * @param partyOrganizationVO
+//     *            党支部基本信息
+//     * @return 编辑结果
+//     */
+//    @PostMapping("deletepartyorganization")
+//    public R deletePartyOrganization(@RequestBody PartyOrganizationVO partyOrganizationVO) {
+//        return partyOrganizationService.deletePartyOrganization(partyOrganizationVO);
+//
+//    }
+
+    /**
+     * 新增党员
+     *
+     * @param partyBuildingMemberVO
+     *            党员基本信息
+     * @return 新增结果
+     */
+    @PostMapping("addpartybuildingmember")
+    public R addPartyBuildingMember(@RequestBody PartyBuildingMemberVO partyBuildingMemberVO) {
+        return comPbMemberService.addPartyBuildingMember(partyBuildingMemberVO);
+
+    }
+
+    /**
+     * 批量新增党员
+     *
+     * @param list
+     *            党员集合
+     */
+    @PostMapping("listsavepartybuildingmemberexcelvo")
+    public R listSavePartyBuildingMemberExcelVO(@RequestBody List<PartyBuildingMemberExcelVO> list) {
+        R r = null;
+        try {
+            r = comPbMemberService.listSavePartyBuildingMemberExcelVO(list);
+        } catch (PartyBuildingMemberException e) {
+            return R.fail(e.getMsg());
+        } catch (Exception e) {
+            e.printStackTrace();
+            if (e.getMessage().contains("unique_id_card_community_id")) {
+                return R.fail("身份证重复");
+            } else {
+                return R.fail("导入失败");
+            }
+        }
+        return r;
+
+    }
+
+    /**
+     * 分页查询党员信息
+     *
+     * @param pagePartyOrganizationVO
+     *            查询信息
+     * @return 分页数据
+     */
+    @PostMapping("pagepartyorganization")
+    public R pagePartyOrganization(@RequestBody PagePartyOrganizationVO pagePartyOrganizationVO) {
+        return comPbMemberService.pagePartyOrganization(pagePartyOrganizationVO);
+
+    }
+
+    /**
+     * 查询党员信息导出
+     *
+     * @param pagePartyOrganizationVO
+     *            查询信息
+     * @return 分页数据
+     */
+    @PostMapping("exportPartyMember")
+    public R exportPartyMember(@RequestBody PagePartyOrganizationVO pagePartyOrganizationVO) {
+        return comPbMemberService.exportPartyMember(pagePartyOrganizationVO);
+
+    }
+
+    /**
+     * 党员活动查询
+     *
+     * @param partyBuildingActivityVO
+     *            查询参数
+     * @return 参加的所有活动
+     */
+    @PostMapping("listpartymemberactivities")
+    public R listPartyMemberActivities(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO) {
+        Long id = partyBuildingActivityVO.getId();
+        if (ObjectUtils.isEmpty(id)) {
+            return R.fail("党员id不能为空");
+        }
+        return comBpActivityService.listPartyMemberActivities(partyBuildingActivityVO);
+
+    }
+
+    /**
+     * 活动报名名单分页查询
+     *
+     * @param pageActivityMembersVO
+     *            查询参数 手机号 名字
+     * @return 分页数据
+     */
+    @PostMapping("pageactivitymembers")
+    public R pageActivityMembers(@RequestBody PageActivityMembersVO pageActivityMembersVO) {
+        return comBpActivityService.pageActivityMembers(pageActivityMembersVO);
+
+    }
+
+    /**
+     * 编辑党员信息 新增字段均可编辑
+     *
+     * @param partyBuildingMemberVO
+     *            编辑字段
+     * @return 编辑结果
+     */
+    @PostMapping("updatepartybuildingmember")
+    public R updatePartyBuildingMember(@RequestBody PartyBuildingMemberVO partyBuildingMemberVO) {
+        return comPbMemberService.updatePartyBuildingMembers(partyBuildingMemberVO);
+    }
+
+    /**
+     * 党员活动详情
+     *
+     * @param id
+     *            活动id
+     * @return 活动详情内容
+     */
+    @PostMapping("activityinfo")
+    public R activityinfo(@RequestParam("id") Long id, @RequestParam("userId") Long userId) {
+        return comBpActivityService.activityinfo(id, userId);
+
+    }
+
+    /**
+     * 查询指定社区的所有党员
+     *
+     * @param communityId
+     *            社区id
+     * @return 党员列表
+     */
+    @PostMapping("listPartyMember")
+    public R listPartyMember(@RequestParam("communityId") Long communityId) {
+        return comPbMemberService.listPartyMember(communityId);
+
+    }
+
+    /**
+     * 新增党委
+     *
+     * @param partyCommitteeVO
+     *            新增信息
+     * @return 新增结果
+     */
+    @PostMapping("addpartycommittee")
+    public R addPartyCommittee(@RequestBody PartyCommitteeVO partyCommitteeVO) {
+        return comPbMemberService.addPartyCommittee(partyCommitteeVO);
+
+    }
+
+    /**
+     * 编辑党委
+     *
+     * @param partyCommitteeVO
+     *            编辑信息
+     * @return 编辑结果
+     */
+    @PostMapping("updatepartycommittee")
+    public R updatePartyCommittee(@RequestBody PartyCommitteeVO partyCommitteeVO) {
+        return comPbMemberService.updatePartyCommittee(partyCommitteeVO);
+
+    }
+
+    /**
+     * 删除党委
+     *
+     * @param partyCommitteeVO
+     *            删除id
+     * @return 删除结果
+     */
+    @PostMapping("deletepartycommittee")
+    public R deletePartyCommittee(@RequestBody PartyCommitteeVO partyCommitteeVO) {
+        return comPbMemberService.deletePartyCommittee(partyCommitteeVO);
+
+    }
+
+    /**
+     * 分页社区党委查询
+     *
+     * @param partyCommitteeVO
+     *            查询参数
+     * @return 分页集合
+     */
+    @PostMapping("pagepartycommittee")
+    public R pagePartyCommittee(@RequestBody PartyCommitteeVO partyCommitteeVO) {
+        return comPbMemberService.pagePartyCommittee(partyCommitteeVO);
+
+    }
+
+    /**
+     * 新建党建动态
+     *
+     * @param partyCommitteeVO
+     *            动态内容
+     * @return 新增结果
+     */
+    @PostMapping("adddynamic")
+    public R adddYnamic(@RequestBody PartyBuildingComPbDynVO partyCommitteeVO) {
+        return comPbMemberService.adddYnamic(partyCommitteeVO);
+
+    }
+
+    /**
+     * 编辑动态
+     *
+     * @param partyCommitteeVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("updatedynamic")
+    public R updateYnamic(@RequestBody PartyBuildingComPbDynVO partyCommitteeVO) {
+        return comPbMemberService.updateYnamic(partyCommitteeVO);
+
+    }
+
+    /**
+     * 动态详情
+     *
+     * @param id
+     *            动态主键
+     * @return 详情
+     */
+    @PostMapping("infodynamic")
+    public R infoYnamic(@RequestParam("id") Long id) {
+        return comPbMemberService.infoYnamic(id);
+
+    }
+
+    /**
+     * 分页查询党员动态/政策文件
+     *
+     * @param partyBuildingComPbDynVO
+     *            查询参数
+     * @return 分页数据
+     */
+    @PostMapping("pagedynamic")
+    public R pageYnamic(@RequestBody PartyBuildingComPbDynVO partyBuildingComPbDynVO) {
+        return comPbMemberService.pageYnamic(partyBuildingComPbDynVO);
+
+    }
+
+    /**
+     * 删除动态
+     *
+     * @param id
+     *            动态主键
+     * @return 删除结果
+     */
+    @PostMapping("deletedynamic")
+    public R deleteYnamic(@RequestParam("id") Integer id) {
+        return comPbMemberService.deleteYnamic(id);
+
+    }
+
+    /**
+     * 新增党员活动
+     *
+     * @param partyBuildingActivityVO
+     *            参数
+     * @return 新增结果
+     */
+    @PostMapping("addactivity")
+    public R addactivity(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO) {
+        return comBpActivityService.addactivity(partyBuildingActivityVO);
+
+    }
+
+    /**
+     * 编辑党员活动
+     *
+     * @param partyBuildingActivityVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("updateactivity")
+    public R updateActivity(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO) {
+        return comBpActivityService.updateActivity(partyBuildingActivityVO);
+
+    }
+
+    /**
+     * 发布党员活动
+     *
+     * @param id
+     *            主键id
+     * @return 发布结果
+     */
+    @PostMapping("releaseactivity")
+    public R releaseActivity(@RequestParam("id") Long id) {
+        return comBpActivityService.releaseActivity(id);
+
+    }
+
+    /**
+     * 删除党员活动
+     *
+     * @param id
+     *            主键id
+     * @return 删除结果
+     */
+    @PostMapping("deleteactivity")
+    public R deleteActivity(@RequestParam("id") Long id) {
+        return comBpActivityService.deleteActivity(id);
+
+    }
+
+    /**
+     * 分页查询党员活动
+     *
+     * @param partyBuildingActivityVO
+     *            查询条件
+     * @return 查询结果
+     */
+    @PostMapping("pageactivity")
+    public R pageActivity(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO) {
+        return comBpActivityService.pageActivity(partyBuildingActivityVO);
+
+    }
+
+    /**
+     * 增加阅读记录
+     *
+     * @param comPbDynUserVO
+     *            记录内容
+     * @return 增加结果
+     */
+    @PostMapping("adddynuser")
+    public R addDynUser(@RequestBody ComPbDynUserVO comPbDynUserVO) {
+        return comPbMemberService.addDynUser(comPbDynUserVO);
+
+    }
+
+    /**
+     * 删除党员
+     *
+     * @param id
+     *            党员主键
+     * @return 删除结果
+     */
+    @PostMapping("deletepartybuildingmember")
+    public R deleteDynUser(@RequestParam("id") Long id) {
+        return comPbMemberService.deleteDynUser(id);
+
+    }
+
+    /**
+     * 取消活动
+     *
+     * @param partyBuildingActivityVO
+     *            取消原因
+     * @return 操作结果
+     */
+    @PostMapping("cancelactivity")
+    public R cancelActivity(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO) {
+        return comBpActivityService.cancelActivity(partyBuildingActivityVO);
+
+    }
+
+    /**
+     * 用户的所有党建活动
+     *
+     * @param userId
+     *            用户id
+     * @param communityId
+     *            社区id
+     * @return 党建活动列表
+     */
+    @PostMapping("listactivity")
+    public R listActivity(@RequestParam("userId") Long userId,
+                          @RequestParam("communityId") Long communityId,
+                          @RequestParam(value = "status", required = false) Integer status) {
+        return comBpActivityService.listActivity(userId, communityId, status);
+
+    }
+
+    /**
+     * 党员活动人员参入列表
+     *
+     * @param id
+     *            活动id
+     * @return 党员集合
+     */
+    @PostMapping("listpartybuildingmember")
+    public R listPartyBuildingMember(@RequestParam("id") Long id) {
+        return comBpActivityService.listPartyBuildingMember(id);
+    }
+
+    /**
+     * 报名、取消报名党员活动
+     *
+     * @param activitySignUpDTO
+     *            操作参数
+     * @return 操作结果
+     */
+    @PostMapping("putactivitysignup")
+    public R putActivitySignUp(@RequestBody ActivitySignUpDTO activitySignUpDTO) {
+        return comBpActivityService.putActivitySignUp(activitySignUpDTO);
+    }
+
+    /**
+     * 获取党建活动所有参入人员的id集合
+     *
+     * @param id
+     *            党建活动id
+     * @return 人员id集合
+     */
+    @PostMapping("selectallpartybuildingactivitymembers")
+    public R selectAllPartyBuildingActivityMembers(@RequestParam("id") Long id) {
+        return comBpActivityService.selectAllPartyBuildingActivityMembers(id);
+    }
+
+    /**
+     * 定时任务刷新党建动态发布状态
+     *
+     * @return 刷新数据数量
+     */
+    @PostMapping("timedtaskpartybuildingstatus")
+    R timedTaskPartyBuildingStatus() {
+        return comPbMemberService.timedTaskPartyBuildingStatus();
+    }
+
+    /**
+     * 定时任务取消党建活动
+     *
+     * @return 党建活动集合
+     */
+    @PostMapping("timedtaskpartybuildingactivity")
+    public R timedTaskPartyBuildingActivity() {
+        return comBpActivityService.timedTaskPartyBuildingActivity();
+    }
+
+    /**
+     * 定时任务刷新党建活动的各个状态 除取消外
+     *
+     * @return 修改结果
+     */
+    @PostMapping("timedtaskpartybuildingactivityall")
+    public R timedTaskPartyBuildingActivityAll() {
+        return comBpActivityService.timedTaskPartyBuildingActivityAll();
+    }
+
+    /**
+     * 新增服务团队人员
+     *
+     * @param comPbServiceTeamDTO
+     *            新增内容
+     * @return 新增结果
+     */
+    @PostMapping("addserviceteam")
+    public R addServiceTeam(@RequestBody ComPbServiceTeamDTO comPbServiceTeamDTO) {
+        return comPbServiceTeamService.addServiceTeam(comPbServiceTeamDTO);
+    }
+
+    /**
+     * 编辑团队人员
+     *
+     * @param comPbServiceTeamDTO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("putserviceteam")
+    public R putServiceTeam(@RequestBody ComPbServiceTeamDTO comPbServiceTeamDTO) {
+        return comPbServiceTeamService.putServiceTeam(comPbServiceTeamDTO);
+    }
+
+    /**
+     * 分页查询服务团队成员
+     *
+     * @param pageComPbServiceTeamDTO
+     *            查询参数
+     * @return 查询结果
+     */
+    @PostMapping("pageserviceteam")
+    public R pageServiceTeam(@RequestBody PageComPbServiceTeamDTO pageComPbServiceTeamDTO) {
+        return comPbServiceTeamService.PageComPbServiceTeamDTO(pageComPbServiceTeamDTO);
+    }
+
+    @GetMapping("getComPbServiceTeamData")
+    public R getComPbServiceTeamData(@RequestParam("communityId") String communityId,
+                                     @RequestParam("phone") String phone)
+    {
+        return comPbServiceTeamService.getComPbServiceTeamData(communityId,phone);
+    }
+
+    /**
+     * 删除服务团队人员
+     *
+     * @param comPbServiceTeamDTO
+     *            删除主键
+     * @return 删除结果
+     */
+    @PostMapping("deleteserviceteam")
+    public R deleteServiceTeam(@RequestBody ComPbServiceTeamDTO comPbServiceTeamDTO) {
+        return comPbServiceTeamService.deleteServiceTeam(comPbServiceTeamDTO);
+    }
+
+    /**
+     * 创建党员活动 小程序创建党员活动
+     *
+     * @param comPbActivityDTO
+     *            创建内容
+     * @return 创建结果
+     */
+    @PostMapping("addactivityinfo")
+    R addActivityApplets(@RequestBody ComPbActivityDTO comPbActivityDTO) {
+        return comBpActivityService.addActivityApplets(comPbActivityDTO);
+    }
+
+    /**
+     * 查询用户认证信息
+     *
+     * @param id
+     *            用户id
+     * @return 查询结果
+     */
+    @GetMapping("usercertification")
+    R userCertification(@RequestParam("id") Long id,@RequestParam("communityId")Long communityId) {
+        List<ComPbMemberDO> comPbMemberDOList =
+            comPbMemberService.list(new QueryWrapper<ComPbMemberDO>().lambda().eq(ComPbMemberDO::getUserId, id).eq(ComPbMemberDO::getCommunityId,communityId));
+        List<PartyBuildingMemberVO> partyBuildingMemberVOList = new ArrayList<>();
+        comPbMemberDOList.forEach(comPbMemberDO -> {
+            PartyBuildingMemberVO partyBuildingMemberVO = new PartyBuildingMemberVO();
+            BeanUtils.copyProperties(comPbMemberDO, partyBuildingMemberVO);
+            partyBuildingMemberVOList.add(partyBuildingMemberVO);
+        });
+        return R.ok(partyBuildingMemberVOList);
+    }
+
+    /**
+     * 查询用户认证信息
+     *
+     * @param pagePartyBuildingMemberVO
+     *            查询参数
+     * @return 查询结果
+     */
+    @PostMapping("pageusercertification")
+    R pageUserCertification(@RequestBody PagePartyBuildingMemberVO pagePartyBuildingMemberVO) {
+        return comPbMemberService.pagePrePartyBuilingMember(pagePartyBuildingMemberVO);
+    }
+
+//    /**
+//     * 社区所有启用的党组织列表
+//     *
+//     * @return 党组织集合
+//     */
+//    @PostMapping("listpartyorganizationByApp")
+//    public R listPartyOrganizationByApp(@RequestBody ComListPartyDTO comListPartyDTO) {
+//        List<PartyOrganizationVO> partyOrganizationVOS =
+//            partyOrganizationService.listPartyOrganizationByApp(comListPartyDTO);
+//        return R.ok(partyOrganizationVOS);
+//    }
+
+    /**
+     * 根据党员认证id删除
+     *
+     * @param id
+     *            党员认证id
+     * @return 删除结果
+     */
+    @PostMapping("deleteprepartybuildingmember")
+    public R deleteprepartybuildingmember(@RequestParam("id") Long id) {
+        return R.ok(comPbMemberService.removeById(id));
+    }
+
+    /**
+     * 导出党员信息
+     *
+     * @param organizationVO
+     *            请求参数
+     * @return 党员信息列表
+     */
+    @PostMapping("exportPbMember")
+    public R exportPbMember(@RequestBody PagePartyOrganizationVO organizationVO) {
+        return comPbMemberService.exportPbMember(organizationVO);
+    }
+
+    /**
+     * 选择人员
+     *
+     * @param param
+     *            查询条件
+     * @return 查询结果
+     */
+    @PostMapping("getTotlePerson")
+    public R getTotlePerson(@RequestParam(value = "param", required = false) String param,
+        @RequestParam(value = "communityId") Long communityId) {
+        return comPbServiceTeamService.getTotlePerson(param, communityId);
+    }
+
+    /**
+     * 根据党员活动id查询活动下报名人员
+     *
+     * @param activityId
+     *            党员活动id
+     * @return 活动下报名人员
+     */
+    @PostMapping("getTaskPbActivityPeopleList")
+    public R getTaskPbActivityPeopleList(@RequestParam("activityId") Long activityId) {
+        return comBpActivityService.getTaskPbActivityPeopleList(activityId);
+    }
+
+    /**
+     * 分页查询党员数据统计
+     * @param statisticsMemberDto   请求参数
+     * @return  党员数据统计
+     */
+    @PostMapping("/pageDataStatisticsMember")
+    public R pageDataStatisticsMember(@RequestBody PageComDataStatisticsMemberDto statisticsMemberDto) {
+        return comPbMemberService.pageDataStatisticsMember(statisticsMemberDto);
+    }
+
+    /**
+     * 根据组织id查询组织下统计数据
+     * @param statisticsOrgDto  请求参数
+     * @return  组织下统计数据
+     */
+    @PostMapping("/getOrgDataStatistics")
+    public R getOrgDataStatistics(@RequestBody ComDataStatisticsOrgDto statisticsOrgDto) {
+        return comPbMemberService.getOrgDataStatistics(statisticsOrgDto);
+    }
+
+    /**
+     * 查询党组织表头统计数据
+     * @param communityId
+     *            社区id
+     * @return  党组织表头统计数据
+     */
+    @GetMapping("/getHeaderOrgDataStatistics")
+    public R getHeaderOrgDataStatistics(@RequestParam("communityId") Long communityId) {
+        return comPbMemberService.getHeaderOrgDataStatistics(communityId);
+    }
+
+    /**
+     * 党员数据统计-党员导出数据查询
+     * @param statisticsMemberDto   请求参数
+     * @return  党员导出数据
+     */
+    @PostMapping("/exportDataStatisticsMember")
+    public R exportDataStatisticsMember(@RequestBody PageComDataStatisticsMemberDto statisticsMemberDto) {
+        return comPbMemberService.exportDataStatisticsMember(statisticsMemberDto);
+    }
+
+    /**
+     * 党委导入接口
+     * @param memberRoleExcelVoList 数据列表
+     * @param communityId   社区id
+     * @param userId    用户id
+     * @return  导入结果
+     */
+    @PostMapping("/importPbMemberRole")
+    public R importPbMemberRole(@RequestBody List<ComPbMemberRoleExcelVo> memberRoleExcelVoList,@RequestParam("communityId") Long communityId,@RequestParam("userId") Long userId){
+        return comPbMemberService.importPbMemberRole(memberRoleExcelVoList,communityId,userId);
+    }
+    @GetMapping("/checkMember")
+    public R checkMember(@RequestParam("idCard")String idCard){
+        return comPbMemberService.checkMember(idCard);
+    }
+
+    @PostMapping("/getPagePbMember")
+    public R getPagePbMember(@RequestBody PartyBuildingMemberVO partyBuildingMemberVO){
+        return comPbMemberService.getPagePbMember(partyBuildingMemberVO);
+    }
+
+    @PostMapping("/getProject")
+    public R getProject(@RequestBody ProjectVO projectVO){
+      return   comPbMemberService.getProject(projectVO);
+    }
+
+    @PostMapping("/addProject")
+    public R addProject(@RequestBody ProjectVO projectVO){
+        return comPbMemberService.addProject(projectVO);
+    }
+
+    @PostMapping("/updateProject")
+    public R updateProject(@RequestBody ProjectVO projectVO){
+        return comPbMemberService.updateProject(projectVO);
+    }
+
+    @PostMapping("/deleteProject")
+    public R deleteProject(@RequestBody ProjectVO projectVO){
+        return comPbMemberService.deleteProject(projectVO);
+    }
+
+    @GetMapping("/getPartyMember")
+    public R getPartyMember(@RequestParam("phone")String phone,@RequestParam("type")Integer type){
+        return comPbMemberService.getPartyMember(phone,type);
+    }
+    @GetMapping("/memberDetail")
+    public R memberDetail(@RequestParam("id")Long id){
+        return comPbMemberService.memberDetail(id);
+    }
+
+    /**
+     * 分页查询注册党员列表
+     * @param pageMemberForInviteDTO
+     * @return
+     */
+    @PostMapping("/page/registerMember")
+    public R pageRegisterMember(@RequestBody PageMemberForInviteDTO pageMemberForInviteDTO) {
+        return comPbMemberService.pageRegisterMember(pageMemberForInviteDTO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/PartyBuildIngWestApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/PartyBuildIngWestApi.java
new file mode 100644
index 0000000..9540e6c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/PartyBuildIngWestApi.java
@@ -0,0 +1,779 @@
+package com.panzhihua.service_dangjian.api;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.model.vos.partybuilding.west.*;
+import com.panzhihua.common.model.vos.partybuilding.excel.ComPbMemberRoleExcelVo;
+import org.springframework.beans.BeanUtils;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.bind.annotation.*;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.panzhihua.common.exceptions.PartyBuildingMemberException;
+import com.panzhihua.common.model.dtos.partybuilding.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.partybuilding.PartyBuildingWestService;
+import com.panzhihua.service_dangjian.dao.ComPbOrgDAO;
+import com.panzhihua.service_dangjian.model.dos.ComPbMemberWestDO;
+import com.panzhihua.service_dangjian.model.dos.ComPbOrgDO;
+import com.panzhihua.service_dangjian.service.ComBpActivityService;
+import com.panzhihua.service_dangjian.service.ComPbMemberWestService;
+import com.panzhihua.service_dangjian.service.ComPbServiceTeamService;
+import com.panzhihua.service_dangjian.service.PartyOrganizationService;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党建
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 10:41
+ **/
+@RequestMapping("/partybuildIngWest/")
+@RestController
+public class PartyBuildIngWestApi {
+    @Resource
+    private ComPbMemberWestService comPbMemberWestService;
+    @Resource
+    private PartyOrganizationService partyOrganizationService;
+    @Resource
+    private ComBpActivityService comBpActivityService;
+    @Resource
+    private ComPbServiceTeamService comPbServiceTeamService;
+    @Resource
+    private ComPbOrgDAO comPbOrgDAO;
+    @Resource
+    private PartyBuildingWestService partyBuildingWestService;
+
+    /**
+     * 社区所有启用的党组织列表
+     *
+     * @return 党组织集合
+     */
+    @PostMapping("listpartyorganization")
+    public R listPartyOrganization(@RequestParam("communityId") Long communityId) {
+        List<PartyOrganizationVO> partyOrganizationVOS = partyOrganizationService.listPartyOrganization(communityId);
+        return R.ok(partyOrganizationVOS);
+    }
+
+    /**
+     * 分页查询社区所有党组织列表
+     *
+     * @return 党组织集合
+     */
+    @PostMapping("listpartyorganizationAll")
+    public R listPartyOrganizationAll(@RequestBody PartyOrganizationVO partyOrganizationVO) {
+        return partyOrganizationService.listPartyOrganizationAll(partyOrganizationVO);
+    }
+
+    /**
+     * 查询所有党组织列表
+     * @param partyOrganizationVO   请求参数
+     * @return  党组织列表
+     */
+    @PostMapping("getPbOrgAllList")
+    public R getPbOrgAllList(@RequestBody PartyOrganizationVO partyOrganizationVO) {
+        return partyOrganizationService.getPbOrgAllList(partyOrganizationVO);
+    }
+
+    /**
+     * 新增党支部
+     *
+     * @param partyOrganizationVO
+     *            党支部基本信息
+     * @return 新增结果
+     */
+    @PostMapping("addpartyorganization")
+    public R addPartyOrganization(@RequestBody PartyOrganizationVO partyOrganizationVO) {
+        return partyOrganizationService.addPartyOrganization(partyOrganizationVO);
+
+    }
+
+    /**
+     * 编辑党支部
+     *
+     * @param partyOrganizationVO
+     *            党支部基本信息
+     * @return 编辑结果
+     */
+    @PostMapping("updatepartyorganization")
+    public R updatePartyOrganization(@RequestBody PartyOrganizationVO partyOrganizationVO) {
+        return partyOrganizationService.updatePartyOrganization(partyOrganizationVO);
+
+    }
+
+    /**
+     * 启用,禁用党支部
+     *
+     * @param partyOrganizationVO
+     *            党支部基本信息
+     * @return 编辑结果
+     */
+    @PostMapping("resetpartyorganization")
+    public R resetPartyOrganization(@RequestBody PartyOrganizationVO partyOrganizationVO) {
+        return partyOrganizationService.resetPartyOrganization(partyOrganizationVO);
+
+    }
+
+    /**
+     * 删除党支部
+     *
+     * @param partyOrganizationVO
+     *            党支部基本信息
+     * @return 编辑结果
+     */
+    @PostMapping("deletepartyorganization")
+    public R deletePartyOrganization(@RequestBody PartyOrganizationVO partyOrganizationVO) {
+        return partyOrganizationService.deletePartyOrganization(partyOrganizationVO);
+
+    }
+
+    /**
+     * 新增党员
+     *
+     * @param partyBuildingMemberVO
+     *            党员基本信息
+     * @return 新增结果
+     */
+    @PostMapping("addpartybuildingmember")
+    public R addPartyBuildingMember(@RequestBody PartyBuildingMemberVO partyBuildingMemberVO) {
+        return comPbMemberWestService.addPartyBuildingMember(partyBuildingMemberVO);
+
+    }
+
+    /**
+     * 批量新增党员
+     *
+     * @param list
+     *            党员集合
+     */
+    @PostMapping("listsavepartybuildingmemberexcelvo")
+    public R listSavePartyBuildingMemberExcelVO(@RequestBody List<PartyBuildingMemberExcelVO> list) {
+        R r = null;
+        try {
+            r = comPbMemberWestService.listSavePartyBuildingMemberExcelVO(list);
+        } catch (PartyBuildingMemberException e) {
+            return R.fail(e.getMsg());
+        } catch (Exception e) {
+            e.printStackTrace();
+            if (e.getMessage().contains("unique_id_card_community_id")) {
+                return R.fail("身份证重复");
+            } else {
+                return R.fail("导入失败");
+            }
+        }
+        return r;
+
+    }
+
+    /**
+     * 分页查询党员信息
+     *
+     * @param pagePartyOrganizationVO
+     *            查询信息
+     * @return 分页数据
+     */
+    @PostMapping("pagepartyorganization")
+    public R pagePartyOrganization(@RequestBody PagePartyOrganizationVO pagePartyOrganizationVO) {
+        return comPbMemberWestService.pagePartyOrganization(pagePartyOrganizationVO);
+
+    }
+
+    /**
+     * 查询党员信息导出
+     *
+     * @param pagePartyOrganizationVO
+     *            查询信息
+     * @return 分页数据
+     */
+    @PostMapping("exportPartyMember")
+    public R exportPartyMember(@RequestBody PagePartyOrganizationVO pagePartyOrganizationVO) {
+        return comPbMemberWestService.exportPartyMember(pagePartyOrganizationVO);
+
+    }
+
+//    /**
+//     * 党员活动查询
+//     *
+//     * @param partyBuildingActivityVO
+//     *            查询参数
+//     * @return 参加的所有活动
+//     */
+//    @PostMapping("listpartymemberactivities")
+//    public R listPartyMemberActivities(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO) {
+//        Long id = partyBuildingActivityVO.getId();
+//        if (ObjectUtils.isEmpty(id)) {
+//            return R.fail("党员id不能为空");
+//        }
+//        return comBpActivityService.listPartyMemberActivities(partyBuildingActivityVO);
+//
+//    }
+
+//    /**
+//     * 活动报名名单分页查询
+//     *
+//     * @param pageActivityMembersVO
+//     *            查询参数 手机号 名字
+//     * @return 分页数据
+//     */
+//    @PostMapping("pageactivitymembers")
+//    public R pageActivityMembers(@RequestBody PageActivityMembersVO pageActivityMembersVO) {
+//        return comBpActivityService.pageActivityMembers(pageActivityMembersVO);
+//
+//    }
+
+    /**
+     * 编辑党员信息 新增字段均可编辑
+     *
+     * @param partyBuildingMemberVO
+     *            编辑字段
+     * @return 编辑结果
+     */
+    @PostMapping("updatepartybuildingmember")
+    public R updatePartyBuildingMember(@RequestBody PartyBuildingMemberVO partyBuildingMemberVO) {
+        return comPbMemberWestService.updatePartyBuildingMembers(partyBuildingMemberVO);
+    }
+
+    /**
+     * 党员活动详情
+     *
+     * @param id
+     *            活动id
+     * @return 活动详情内容
+     */
+    @PostMapping("activityinfo")
+    public R activityinfo(@RequestParam("id") Long id, @RequestParam("userId") Long userId) {
+        return comBpActivityService.activityinfo(id, userId);
+
+    }
+
+    /**
+     * 查询指定社区的所有党员
+     *
+     * @param communityId
+     *            社区id
+     * @return 党员列表
+     */
+    @PostMapping("listPartyMember")
+    public R listPartyMember(@RequestParam("communityId") Long communityId) {
+        return comPbMemberWestService.listPartyMember(communityId);
+
+    }
+
+    /**
+     * 新增党委
+     *
+     * @param partyCommitteeVO
+     *            新增信息
+     * @return 新增结果
+     */
+    @PostMapping("addpartycommittee")
+    public R addPartyCommittee(@RequestBody PartyCommitteeVO partyCommitteeVO) {
+        return comPbMemberWestService.addPartyCommittee(partyCommitteeVO);
+
+    }
+
+    /**
+     * 编辑党委
+     *
+     * @param partyCommitteeVO
+     *            编辑信息
+     * @return 编辑结果
+     */
+    @PostMapping("updatepartycommittee")
+    public R updatePartyCommittee(@RequestBody PartyCommitteeVO partyCommitteeVO) {
+        return comPbMemberWestService.updatePartyCommittee(partyCommitteeVO);
+
+    }
+
+    /**
+     * 删除党委
+     *
+     * @param partyCommitteeVO
+     *            删除id
+     * @return 删除结果
+     */
+    @PostMapping("deletepartycommittee")
+    public R deletePartyCommittee(@RequestBody PartyCommitteeVO partyCommitteeVO) {
+        return comPbMemberWestService.deletePartyCommittee(partyCommitteeVO);
+
+    }
+
+    /**
+     * 分页社区党委查询
+     *
+     * @param partyCommitteeVO
+     *            查询参数
+     * @return 分页集合
+     */
+    @PostMapping("pagepartycommittee")
+    public R pagePartyCommittee(@RequestBody PartyCommitteeVO partyCommitteeVO) {
+        return comPbMemberWestService.pagePartyCommittee(partyCommitteeVO);
+
+    }
+
+    /**
+     * 新建党建动态
+     *
+     * @param partyCommitteeVO
+     *            动态内容
+     * @return 新增结果
+     */
+    @PostMapping("adddynamic")
+    public R adddYnamic(@RequestBody PartyBuildingComPbDynVO partyCommitteeVO) {
+        return comPbMemberWestService.adddYnamic(partyCommitteeVO);
+
+    }
+
+    /**
+     * 编辑动态
+     *
+     * @param partyCommitteeVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("updatedynamic")
+    public R updateYnamic(@RequestBody PartyBuildingComPbDynVO partyCommitteeVO) {
+        return comPbMemberWestService.updateYnamic(partyCommitteeVO);
+
+    }
+
+    /**
+     * 动态详情
+     *
+     * @param id
+     *            动态主键
+     * @return 详情
+     */
+    @PostMapping("infodynamic")
+    public R infoYnamic(@RequestParam("id") Long id) {
+        return comPbMemberWestService.infoYnamic(id);
+
+    }
+
+    /**
+     * 分页查询党员动态/政策文件
+     *
+     * @param partyBuildingComPbDynVO
+     *            查询参数
+     * @return 分页数据
+     */
+    @PostMapping("pagedynamic")
+    public R pageYnamic(@RequestBody PartyBuildingComPbDynVO partyBuildingComPbDynVO) {
+        return comPbMemberWestService.pageYnamic(partyBuildingComPbDynVO);
+
+    }
+
+    /**
+     * 删除动态
+     *
+     * @param id
+     *            动态主键
+     * @return 删除结果
+     */
+    @PostMapping("deletedynamic")
+    public R deleteYnamic(@RequestParam("id") Long id) {
+        return comPbMemberWestService.deleteYnamic(id);
+
+    }
+
+//    /**
+//     * 新增党员活动
+//     *
+//     * @param partyBuildingActivityVO
+//     *            参数
+//     * @return 新增结果
+//     */
+//    @PostMapping("addactivity")
+//    public R addactivity(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO) {
+//        return comBpActivityService.addactivity(partyBuildingActivityVO);
+//
+//    }
+
+//    /**
+//     * 编辑党员活动
+//     *
+//     * @param partyBuildingActivityVO
+//     *            编辑内容
+//     * @return 编辑结果
+//     */
+//    @PostMapping("updateactivity")
+//    public R updateActivity(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO) {
+//        return comBpActivityService.updateActivity(partyBuildingActivityVO);
+//
+//    }
+
+    /**
+     * 发布党员活动
+     *
+     * @param id
+     *            主键id
+     * @return 发布结果
+     */
+    @PostMapping("releaseactivity")
+    public R releaseActivity(@RequestParam("id") Long id) {
+        return comBpActivityService.releaseActivity(id);
+
+    }
+
+    /**
+     * 删除党员活动
+     *
+     * @param id
+     *            主键id
+     * @return 删除结果
+     */
+    @PostMapping("deleteactivity")
+    public R deleteActivity(@RequestParam("id") Long id) {
+        return comBpActivityService.deleteActivity(id);
+
+    }
+
+//    /**
+//     * 分页查询党员活动
+//     *
+//     * @param partyBuildingActivityVO
+//     *            查询条件
+//     * @return 查询结果
+//     */
+//    @PostMapping("pageactivity")
+//    public R pageActivity(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO) {
+//        return comBpActivityService.pageActivity(partyBuildingActivityVO);
+//
+//    }
+
+    /**
+     * 增加阅读记录
+     *
+     * @param comPbDynUserVO
+     *            记录内容
+     * @return 增加结果
+     */
+    @PostMapping("adddynuser")
+    public R addDynUser(@RequestBody ComPbDynUserVO comPbDynUserVO) {
+        return comPbMemberWestService.addDynUser(comPbDynUserVO);
+
+    }
+
+    /**
+     * 删除党员
+     *
+     * @param id
+     *            党员主键
+     * @return 删除结果
+     */
+    @PostMapping("deletepartybuildingmember")
+    public R deleteDynUser(@RequestParam("id") Integer id) {
+        return comPbMemberWestService.deleteDynUser(id);
+
+    }
+
+//    /**
+//     * 取消活动
+//     *
+//     * @param partyBuildingActivityVO
+//     *            取消原因
+//     * @return 操作结果
+//     */
+//    @PostMapping("cancelactivity")
+//    public R cancelActivity(@RequestBody PartyBuildingActivityVO partyBuildingActivityVO) {
+//        return comBpActivityService.cancelActivity(partyBuildingActivityVO);
+//
+//    }
+
+    /**
+     * 用户的所有党建活动
+     *
+     * @param userId
+     *            用户id
+     * @param communityId
+     *            社区id
+     * @return 党建活动列表
+     */
+    @PostMapping("listactivity")
+    public R listActivity(@RequestParam("userId") Long userId,
+                          @RequestParam("communityId") Long communityId,
+                          @RequestParam(value = "status", required = false) Integer status) {
+        return comBpActivityService.listActivity(userId, communityId, status);
+
+    }
+
+    /**
+     * 党员活动人员参入列表
+     *
+     * @param id
+     *            活动id
+     * @return 党员集合
+     */
+    @PostMapping("listpartybuildingmember")
+    public R listPartyBuildingMember(@RequestParam("id") Long id) {
+        return comBpActivityService.listPartyBuildingMember(id);
+    }
+
+    /**
+     * 报名、取消报名党员活动
+     *
+     * @param activitySignUpDTO
+     *            操作参数
+     * @return 操作结果
+     */
+    @PostMapping("putactivitysignup")
+    public R putActivitySignUp(@RequestBody ActivitySignUpDTO activitySignUpDTO) {
+        return comBpActivityService.putActivitySignUp(activitySignUpDTO);
+    }
+
+    /**
+     * 获取党建活动所有参入人员的id集合
+     *
+     * @param id
+     *            党建活动id
+     * @return 人员id集合
+     */
+    @PostMapping("selectallpartybuildingactivitymembers")
+    public R selectAllPartyBuildingActivityMembers(@RequestParam("id") Long id) {
+        return comBpActivityService.selectAllPartyBuildingActivityMembers(id);
+    }
+
+    /**
+     * 定时任务刷新党建动态发布状态
+     *
+     * @return 刷新数据数量
+     */
+    @PostMapping("timedtaskpartybuildingstatus")
+    R timedTaskPartyBuildingStatus() {
+        return comPbMemberWestService.timedTaskPartyBuildingStatus();
+    }
+
+    /**
+     * 定时任务取消党建活动
+     *
+     * @return 党建活动集合
+     */
+    @PostMapping("timedtaskpartybuildingactivity")
+    public R timedTaskPartyBuildingActivity() {
+        return comBpActivityService.timedTaskPartyBuildingActivity();
+    }
+
+    /**
+     * 定时任务刷新党建活动的各个状态 除取消外
+     *
+     * @return 修改结果
+     */
+    @PostMapping("timedtaskpartybuildingactivityall")
+    public R timedTaskPartyBuildingActivityAll() {
+        return comBpActivityService.timedTaskPartyBuildingActivityAll();
+    }
+
+    /**
+     * 新增服务团队人员
+     *
+     * @param comPbServiceTeamDTO
+     *            新增内容
+     * @return 新增结果
+     */
+    @PostMapping("addserviceteam")
+    public R addServiceTeam(@RequestBody ComPbServiceTeamDTO comPbServiceTeamDTO) {
+        return comPbServiceTeamService.addServiceTeam(comPbServiceTeamDTO);
+    }
+
+    /**
+     * 编辑团队人员
+     *
+     * @param comPbServiceTeamDTO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("putserviceteam")
+    public R putServiceTeam(@RequestBody ComPbServiceTeamDTO comPbServiceTeamDTO) {
+        return comPbServiceTeamService.putServiceTeam(comPbServiceTeamDTO);
+    }
+
+    /**
+     * 分页查询服务团队成员
+     *
+     * @param pageComPbServiceTeamDTO
+     *            查询参数
+     * @return 查询结果
+     */
+    @PostMapping("pageserviceteam")
+    public R pageServiceTeam(@RequestBody PageComPbServiceTeamDTO pageComPbServiceTeamDTO) {
+        return comPbServiceTeamService.PageComPbServiceTeamDTO(pageComPbServiceTeamDTO);
+    }
+
+    /**
+     * 删除服务团队人员
+     *
+     * @param comPbServiceTeamDTO
+     *            删除主键
+     * @return 删除结果
+     */
+    @PostMapping("deleteserviceteam")
+    public R deleteServiceTeam(@RequestBody ComPbServiceTeamDTO comPbServiceTeamDTO) {
+        return comPbServiceTeamService.deleteServiceTeam(comPbServiceTeamDTO);
+    }
+
+    /**
+     * 创建党员活动 小程序创建党员活动
+     *
+     * @param comPbActivityDTO
+     *            创建内容
+     * @return 创建结果
+     */
+    @PostMapping("addactivityinfo")
+    R addActivityApplets(@RequestBody ComPbActivityDTO comPbActivityDTO) {
+        return comBpActivityService.addActivityApplets(comPbActivityDTO);
+    }
+
+    /**
+     * 查询用户认证信息
+     *
+     * @param id
+     *            用户id
+     * @return 查询结果
+     */
+    @GetMapping("usercertification")
+    R userCertification(@RequestParam("id") Long id,@RequestParam("communityId")Long communityId) {
+        List<ComPbMemberWestDO> comPbMemberWestDOList =
+                comPbMemberWestService.list(new QueryWrapper<ComPbMemberWestDO>().lambda().eq(ComPbMemberWestDO::getUserId, id).eq(ComPbMemberWestDO::getCommunityId,communityId));
+        List<PartyBuildingMemberVO> partyBuildingMemberVOList = new ArrayList<>();
+        comPbMemberWestDOList.forEach(comPbMemberDO -> {
+            PartyBuildingMemberVO partyBuildingMemberVO = new PartyBuildingMemberVO();
+            BeanUtils.copyProperties(comPbMemberDO, partyBuildingMemberVO);
+            ComPbOrgDO comPbOrgDO = comPbOrgDAO.selectById(partyBuildingMemberVO.getOrgId());
+            partyBuildingMemberVO.setOrgName(comPbOrgDO.getName());
+            partyBuildingMemberVOList.add(partyBuildingMemberVO);
+        });
+        return R.ok(partyBuildingMemberVOList);
+    }
+
+    /**
+     * 查询用户认证信息
+     *
+     * @param pagePartyBuildingMemberVO
+     *            查询参数
+     * @return 查询结果
+     */
+    @PostMapping("pageusercertification")
+    R pageUserCertification(@RequestBody PagePartyBuildingMemberVO pagePartyBuildingMemberVO) {
+        return comPbMemberWestService.pagePrePartyBuilingMember(pagePartyBuildingMemberVO);
+    }
+
+    /**
+     * 社区所有启用的党组织列表
+     *
+     * @return 党组织集合
+     */
+    @PostMapping("listpartyorganizationByApp")
+    public R listPartyOrganizationByApp(@RequestBody ComListPartyDTO comListPartyDTO) {
+        List<PartyOrganizationVO> partyOrganizationVOS =
+                partyOrganizationService.listPartyOrganizationByApp(comListPartyDTO);
+        return R.ok(partyOrganizationVOS);
+    }
+
+    /**
+     * 根据党员认证id删除
+     *
+     * @param id
+     *            党员认证id
+     * @return 删除结果
+     */
+    @PostMapping("deleteprepartybuildingmember")
+    public R deleteprepartybuildingmember(@RequestParam("id") Long id) {
+        return R.ok(comPbMemberWestService.removeById(id));
+    }
+
+    /**
+     * 导出党员信息
+     *
+     * @param organizationVO
+     *            请求参数
+     * @return 党员信息列表
+     */
+    @PostMapping("exportPbMember")
+    public R exportPbMember(@RequestBody PagePartyOrganizationVO organizationVO) {
+        return comPbMemberWestService.exportPbMember(organizationVO);
+    }
+
+    /**
+     * 选择人员
+     *
+     * @param param
+     *            查询条件
+     * @return 查询结果
+     */
+    @PostMapping("getTotlePerson")
+    public R getTotlePerson(@RequestParam(value = "param", required = false) String param,
+                            @RequestParam(value = "communityId") Long communityId) {
+        return comPbServiceTeamService.getTotlePerson(param, communityId);
+    }
+
+    /**
+     * 根据党员活动id查询活动下报名人员
+     *
+     * @param activityId
+     *            党员活动id
+     * @return 活动下报名人员
+     */
+    @PostMapping("getTaskPbActivityPeopleList")
+    public R getTaskPbActivityPeopleList(@RequestParam("activityId") Long activityId) {
+        return comBpActivityService.getTaskPbActivityPeopleList(activityId);
+    }
+
+    /**
+     * 分页查询党员数据统计
+     * @param statisticsMemberDto   请求参数
+     * @return  党员数据统计
+     */
+    @PostMapping("/pageDataStatisticsMember")
+    public R pageDataStatisticsMember(@RequestBody PageComDataStatisticsMemberDto statisticsMemberDto) {
+        return comPbMemberWestService.pageDataStatisticsMember(statisticsMemberDto);
+    }
+
+    /**
+     * 根据组织id查询组织下统计数据
+     * @param statisticsOrgDto  请求参数
+     * @return  组织下统计数据
+     */
+    @PostMapping("/getOrgDataStatistics")
+    public R getOrgDataStatistics(@RequestBody ComDataStatisticsOrgDto statisticsOrgDto) {
+        return comPbMemberWestService.getOrgDataStatistics(statisticsOrgDto);
+    }
+
+    /**
+     * 查询党组织表头统计数据
+     * @param communityId
+     *            社区id
+     * @return  党组织表头统计数据
+     */
+    @GetMapping("/getHeaderOrgDataStatistics")
+    public R getHeaderOrgDataStatistics(@RequestParam("communityId") Long communityId) {
+        return comPbMemberWestService.getHeaderOrgDataStatistics(communityId);
+    }
+
+    /**
+     * 党员数据统计-党员导出数据查询
+     * @param statisticsMemberDto   请求参数
+     * @return  党员导出数据
+     */
+    @PostMapping("/exportDataStatisticsMember")
+    public R exportDataStatisticsMember(@RequestBody PageComDataStatisticsMemberDto statisticsMemberDto) {
+        return comPbMemberWestService.exportDataStatisticsMember(statisticsMemberDto);
+    }
+
+    /**
+     * 党委导入接口
+     * @param memberRoleExcelVoList 数据列表
+     * @param communityId   社区id
+     * @param userId    用户id
+     * @return  导入结果
+     */
+    @PostMapping("/importPbMemberRole")
+    public R importPbMemberRole(@RequestBody List<ComPbMemberRoleExcelVo> memberRoleExcelVoList,@RequestParam("communityId") Long communityId,@RequestParam("userId") Long userId){
+        return comPbMemberWestService.importPbMemberRole(memberRoleExcelVoList,communityId,userId);
+    }
+    @GetMapping("/checkMember")
+    public R checkMember(@RequestParam("idCard")String idCard){
+        return comPbMemberWestService.checkMember(idCard);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/StreetBigScreenApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/StreetBigScreenApi.java
new file mode 100644
index 0000000..c373b02
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/api/StreetBigScreenApi.java
@@ -0,0 +1,84 @@
+package com.panzhihua.service_dangjian.api;
+
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_dangjian.service.NewStriveForService;
+import com.panzhihua.service_dangjian.service.StreetBigScreenService;
+import lombok.extern.slf4j.Slf4j;
+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;
+
+@Slf4j
+@RestController
+@RequestMapping("/StreetBigScreen")
+public class StreetBigScreenApi
+{
+
+    @Resource
+    private StreetBigScreenService streetBigScreenService;
+
+    @GetMapping("/getCommunityId")
+    public R getCommunityId(@RequestParam("streetId") String streetId)
+    {
+        return streetBigScreenService.getCommunityId(streetId);
+    }
+
+
+    @GetMapping("/getCoreData")
+    public R getCoreData(@RequestParam(value = "streetId", required = false) String streetId,
+                         @RequestParam(value = "communityId", required = false)String communityId,
+                         @RequestParam(value = "type", required = false)String type,
+                         @RequestParam(value = "starTime", required = false)String starTime,
+                         @RequestParam(value = "endTime", required = false)String endTime)
+    {
+        return streetBigScreenService.getCoreData(streetId,communityId,type,starTime,endTime);
+    }
+
+    @GetMapping("/getThreeNum")
+    public R getThreeNum(@RequestParam(value = "streetId", required = false) String streetId,
+                         @RequestParam(value = "communityId", required = false)String communityId,
+                         @RequestParam(value = "type", required = false)String type,
+                         @RequestParam(value = "starTime", required = false)String starTime,
+                         @RequestParam(value = "endTime", required = false)String endTime)
+    {
+        return streetBigScreenService.getThreeNum(streetId,communityId,type,starTime,endTime);
+    }
+
+
+
+    @GetMapping("/getDoubleRegistration")
+    public R getDoubleRegistration(@RequestParam(value = "streetId", required = false) String streetId,
+                                   @RequestParam(value = "communityId", required = false)String communityId,
+                                   @RequestParam(value = "type", required = false)String type,
+                                   @RequestParam(value = "starTime", required = false)String starTime,
+                                   @RequestParam(value = "endTime", required = false)String endTime)
+    {
+        return streetBigScreenService.getDoubleRegistration(streetId,communityId,type,starTime,endTime);
+    }
+
+    @GetMapping("/getPhotoMicroWish")
+    public R getPhotoMicroWish(@RequestParam(value = "streetId", required = false) String streetId,
+                               @RequestParam(value = "communityId", required = false)String communityId,
+                               @RequestParam(value = "type", required = false)String type,
+                               @RequestParam(value = "starTime", required = false)String starTime,
+                               @RequestParam(value = "endTime", required = false)String endTime)
+    {
+        return streetBigScreenService.getPhotoMicroWish(streetId,communityId,type,starTime,endTime);
+    }
+
+
+    @GetMapping("/getAllData")
+    public R getAllData(@RequestParam(value = "streetId", required = false) String streetId,
+                        @RequestParam(value = "communityId", required = false)String communityId,
+                        @RequestParam(value = "type", required = false)String type,
+                        @RequestParam(value = "starTime", required = false)String starTime,
+                        @RequestParam(value = "endTime", required = false)String endTime)
+    {
+        return streetBigScreenService.getAllData(streetId,communityId,type,starTime,endTime);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/config/MyMetaObjectHandler.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/config/MyMetaObjectHandler.java
new file mode 100644
index 0000000..2700fa7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/config/MyMetaObjectHandler.java
@@ -0,0 +1,41 @@
+package com.panzhihua.service_dangjian.config;
+
+import java.util.Date;
+
+import org.apache.ibatis.reflection.MetaObject;
+import org.springframework.stereotype.Component;
+
+import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 自动填充
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-11 14:23
+ **/
+@Slf4j
+@Component
+public class MyMetaObjectHandler implements MetaObjectHandler {
+    @Override
+    public void insertFill(MetaObject metaObject) {
+        log.info("start insert fill ....");
+        // this.strictInsertFill(metaObject, "createTime", Date.class, new Date()); // 起始版本 3.3.0(推荐使用)
+        // 或者
+        this.strictInsertFill(metaObject, "createAt", () -> new Date(), Date.class); // 起始版本 3.3.3(推荐)
+        this.strictInsertFill(metaObject, "updateAt", () -> new Date(), Date.class); // 起始版本 3.3.3(推荐)
+        // 或者
+        // this.fillStrategy(metaObject, "createTime", LocalDateTime.now()); // 也可以使用(3.3.0 该方法有bug)
+    }
+
+    @Override
+    public void updateFill(MetaObject metaObject) {
+        log.info("start update fill ....");
+        // this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); // 起始版本 3.3.0(推荐)
+        // 或者
+        this.strictUpdateFill(metaObject, "updateAt", () -> new Date(), Date.class); // 起始版本 3.3.3(推荐)
+        // 或者
+        // this.fillStrategy(metaObject, "updateTime", LocalDateTime.now()); // 也可以使用(3.3.0 该方法有bug)
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/config/MybatisHmkInterceptor.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/config/MybatisHmkInterceptor.java
new file mode 100644
index 0000000..8ac05f9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/config/MybatisHmkInterceptor.java
@@ -0,0 +1,24 @@
+package com.panzhihua.service_dangjian.config;
+
+import com.baomidou.mybatisplus.core.toolkit.PluginUtils;
+import com.baomidou.mybatisplus.extension.plugins.inner.InnerInterceptor;
+import org.apache.ibatis.executor.Executor;
+import org.apache.ibatis.mapping.BoundSql;
+import org.apache.ibatis.mapping.MappedStatement;
+import org.apache.ibatis.session.ResultHandler;
+import org.apache.ibatis.session.RowBounds;
+
+import java.sql.SQLException;
+
+public class MybatisHmkInterceptor implements InnerInterceptor {
+    @Override
+    public void beforeQuery(Executor executor, MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) throws SQLException {
+        String sql=boundSql.getSql();
+            if(sql.contains("community_id = 10086")){
+                sql=sql.replace("community_id = 10086","community_id in (30,31)");
+                PluginUtils.mpBoundSql(boundSql).sql(sql);
+        }
+        InnerInterceptor.super.beforeQuery(executor, ms, parameter, rowBounds, resultHandler, boundSql);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/config/MybatisPlusConfig.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/config/MybatisPlusConfig.java
new file mode 100644
index 0000000..871ad4b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/config/MybatisPlusConfig.java
@@ -0,0 +1,36 @@
+package com.panzhihua.service_dangjian.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 分页
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 16:26
+ **/
+@Configuration
+public class MybatisPlusConfig {
+
+    /**
+     * 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)
+     */
+    @Bean
+    public MybatisPlusInterceptor mybatisPlusInterceptor() {
+        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+        interceptor.addInnerInterceptor(new MybatisHmkInterceptor());
+        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2));
+        return interceptor;
+    }
+
+    @Bean
+    public ConfigurationCustomizer configurationCustomizer() {
+        return configuration -> configuration.setUseDeprecatedExecutor(false);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComActIntegralUserChangeDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComActIntegralUserChangeDAO.java
new file mode 100644
index 0000000..4ee9249
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComActIntegralUserChangeDAO.java
@@ -0,0 +1,15 @@
+package com.panzhihua.service_dangjian.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_dangjian.entity.ComActIntegralUserChange;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @auther lyq
+ * @create 2021-07-28 16:03:05
+ * @describe 用户积分账户变动记录mapper类
+ */
+@Mapper
+public interface ComActIntegralUserChangeDAO extends BaseMapper<ComActIntegralUserChange> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComActIntegralUserTradeDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComActIntegralUserTradeDAO.java
new file mode 100644
index 0000000..c92dccb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComActIntegralUserTradeDAO.java
@@ -0,0 +1,62 @@
+package com.panzhihua.service_dangjian.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.integral.ComActIntegralCommunityRankDTO;
+import com.panzhihua.common.model.dtos.community.integral.ComActIntegralCountDTO;
+import com.panzhihua.common.model.dtos.community.integral.admin.PageComActIntegralTradeDTO;
+import com.panzhihua.common.model.vos.community.integral.ComActIntegralCommunityTradeVO;
+import com.panzhihua.common.model.vos.community.integral.IntegralTradeVO;
+import com.panzhihua.common.model.vos.community.integral.admin.ComActIntegralUserTradeAdminVO;
+import com.panzhihua.common.model.vos.community.integral.admin.IntegralUserVO;
+import com.panzhihua.service_dangjian.entity.ComActIntegralUserTrade;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @auther lyq
+ * @create 2021-07-28 16:03:18
+ * @describe 用户积分账户交易记录mapper类
+ */
+@Mapper
+public interface ComActIntegralUserTradeDAO extends BaseMapper<ComActIntegralUserTrade> {
+
+    /**
+     * 查询用户某个时间段交易数量
+     * 
+     * @param integralCountDTO
+     *            请求参数
+     * @return 交易数量
+     */
+    Integer getIntegralCount(@Param("integralCountDTO") ComActIntegralCountDTO integralCountDTO);
+
+    /**
+     * 小程序-查询用户社区积分明细
+     * 
+     * @param communityTradeDTO
+     *            请求参数
+     * @return 用户社区积分明细
+     */
+    IPage<ComActIntegralCommunityTradeVO> getIntegralCommunityTradeApplets(Page page,
+        @Param("communityTradeDTO") ComActIntegralCommunityRankDTO communityTradeDTO);
+
+    /**
+     * 社区后台-分页查询社区下积分明细记录
+     * 
+     * @param integralRuleDTO
+     *            请求参数
+     * @return 社区下积分明细记录
+     */
+    IPage<ComActIntegralUserTradeAdminVO> getIntegralTradeListAdmin(Page page,
+        @Param("integralRuleDTO") PageComActIntegralTradeDTO integralRuleDTO);
+
+    IntegralUserVO getUserInfo(@Param("userId") Long userId);
+
+    /**
+     * 获取积分详情
+     * @param id
+     * @return
+     */
+    IntegralTradeVO getUserIntegralDetail(@Param("id") Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComActIntegralUsersMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComActIntegralUsersMapper.java
new file mode 100644
index 0000000..c9c956e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComActIntegralUsersMapper.java
@@ -0,0 +1,72 @@
+package com.panzhihua.service_dangjian.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.integral.ComActIntegralCommunityRankDTO;
+import com.panzhihua.common.model.vos.community.integral.ComActIntegralCommunityRankVO;
+import com.panzhihua.common.model.vos.community.integral.ComActIntegralUserListVO;
+import com.panzhihua.common.model.vos.community.integral.ComActIntegralUserVO;
+import com.panzhihua.common.model.vos.community.integral.IntegralUserRankVO;
+import com.panzhihua.common.model.vos.community.integral.admin.ComActActivityPeopleVO;
+import com.panzhihua.service_dangjian.entity.ComActIntegralUser;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @auther lyq
+ * @create 2021-07-28 16:02:57
+ * @describe 用户积分账户表mapper类
+ */
+@Mapper
+public interface ComActIntegralUsersMapper extends BaseMapper<ComActIntegralUser> {
+
+    /**
+     * 小程序-查询用户积分列表
+     * 
+     * @param userId
+     *            用户id
+     * @return 用户积分列表
+     */
+    List<ComActIntegralUserListVO> getIntegralUserListApplets(@Param("userId") Long userId);
+
+    /**
+     * 小程序-查询用户在当前社区积分排名
+     * 
+     * @param userId
+     *            用户id
+     * @param communityId
+     *            社区id
+     * @return 用户在当前社区积分排名
+     */
+    IntegralUserRankVO getIntegralUserRank(@Param("communityId") Long communityId, @Param("userId") Long userId);
+
+    /**
+     * 查询社区积分账户排行榜
+     * 
+     * @param communityRankDTO
+     *            请求参数
+     * @return 社区积分账户排行榜
+     */
+    IPage<ComActIntegralCommunityRankVO> getIntegralCommunityRankApplets(Page page,
+        @Param("communityRankDTO") ComActIntegralCommunityRankDTO communityRankDTO);
+
+    /**
+     * 根据社区活动id查询社区活动报名且未参与人员列表
+     * 
+     * @param activityId
+     *            活动id
+     * @return 社区活动报名且未参与人员列表
+     */
+    List<ComActActivityPeopleVO> getTaskActivityPeopleList(@Param("activityId") Long activityId);
+
+    /**
+     * 积分统计
+     * @param userId
+     * @param communityId
+     * @return
+     */
+    ComActIntegralUserVO getUserIntegralStatistics(@Param("userId") Long userId, @Param("communityId") Long communityId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComActProjectMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComActProjectMapper.java
new file mode 100644
index 0000000..5283b16
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComActProjectMapper.java
@@ -0,0 +1,15 @@
+package com.panzhihua.service_dangjian.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.common.model.vos.partybuilding.ProjectVO;
+import com.panzhihua.service_dangjian.entity.ComActProject;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface ComActProjectMapper extends BaseMapper<ComActProject>
+{
+    List<ComActProject> getList(@Param("item")  ProjectVO projectVO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComBpActivityDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComBpActivityDAO.java
new file mode 100644
index 0000000..2d2fda5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComBpActivityDAO.java
@@ -0,0 +1,112 @@
+package com.panzhihua.service_dangjian.dao;
+
+import java.util.List;
+
+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;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.community.integral.admin.ComActActivityPeopleVO;
+import com.panzhihua.common.model.vos.partybuilding.PartyBuildingActivityVO;
+import com.panzhihua.service_dangjian.model.dos.ComPbActivityDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党员活动
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 17:59
+ **/
+@Mapper
+public interface ComBpActivityDAO extends BaseMapper<ComPbActivityDO> {
+    // @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" + "a.id,\n" + "a.name,\n" + "a.address,\n" + "a.status,\n"
+        + "a.create_at releaseTimeBegin,\n" + "a.activity_time_begin,\n" + "a.activity_time_end,\n"
+        + "a.enroll_time_begin,\n" + "a.release_time,\n" + "a.enroll_time_end \n" + "FROM\n"
+        + "com_pb_activity_member m\n" + "JOIN com_pb_activity a ON m.activity_id = a.id \n" + "WHERE\n"
+        + "m.member_id = #{id} \n" + "<if test='name != null and name.trim() != &quot;&quot;'>"
+        + "AND a.`name` like concat (#{name},'%')  \n" + " </if> " + "<if test='releaseTimeBegin != null '>"
+        + "AND a.create_at BETWEEN #{releaseTimeBegin} \n" + "AND #{releaseTimeEnd} \n" + " </if> "
+        + "<if test='activityTimeBegin != null '>" + "AND a.activity_time_begin BETWEEN #{activityTimeBegin} \n"
+        + "AND #{activityTimeEnd}" + " </if> " + "</script>")
+    List<PartyBuildingActivityVO> listPartyMemberActivities(PartyBuildingActivityVO partyBuildingActivityVO);
+
+    @Select("<script> " + "SELECT\n" + "a.id,\n" + "a.name,\n" + "a.address,\n" + "a.status,\n" + "a.release_time,\n"
+        + "a.activity_time_begin,\n" + "a.activity_time_end,\n" + "a.enroll_time_begin,\n" + "a.cover,\n"
+        + "if(u.type=3 ,'管理员',u.name)createByName,\n" + "a.enroll_time_end \n" + "FROM\n" + "com_pb_activity a\n"
+        + "left join sys_user u on a.create_by=u.user_id \n"
+        + "where a.community_id = ${partyBuildingActivityVO.communityId}\n"
+        + "<if test='partyBuildingActivityVO.name != null and partyBuildingActivityVO.name.trim() != &quot;&quot;'>"
+        + "and a.name = #{partyBuildingActivityVO.name} \n" + " </if> "
+        + "<if test='partyBuildingActivityVO.isAppliets != null and partyBuildingActivityVO.isAppliets==1'>"
+        + " and a.`status` not in(5,6) " + " </if> "
+        + "<if test='partyBuildingActivityVO.status != null and partyBuildingActivityVO.status != 0 and partyBuildingActivityVO.isAppliets ==null '>"
+        + "AND a.`status` = #{partyBuildingActivityVO.status} \n" + " </if> "
+        + "<if test='partyBuildingActivityVO.status != null and partyBuildingActivityVO.status != 0 and partyBuildingActivityVO.isAppliets !=null and partyBuildingActivityVO.isAppliets==1'>"
+        + "AND a.`status` in (3,4) \n" + " </if> " + "<if test='partyBuildingActivityVO.releaseTimeBegin != null '>"
+        + "AND a.release_time BETWEEN #{partyBuildingActivityVO.releaseTimeBegin} \n"
+        + "AND #{partyBuildingActivityVO.releaseTimeEnd} \n" + " </if> "
+        + "<if test='partyBuildingActivityVO.activityTimeBegin != null '>"
+        + "AND a.activity_time_begin BETWEEN #{partyBuildingActivityVO.activityTimeBegin} \n"
+        + "AND #{partyBuildingActivityVO.activityTimeEnd}" + " </if> " + "order by a.create_at desc " + "</script>")
+    IPage<PartyBuildingActivityVO> pageActivity(Page page,
+        @Param("partyBuildingActivityVO") PartyBuildingActivityVO partyBuildingActivityVO);
+
+    @Select("select t.id from (\n" + "SELECT \n" + "a.participation_lowest_num,\n" + "a.name,\n" + "a.id,\n"
+        + "COUNT(m.id)num\n" + "FROM\n" + "com_pb_activity a\n"
+        + "LEFT JOIN com_pb_activity_member m ON a.id = m.activity_id\n"
+        + "WHERE a.`status` in (3,4) and TIMESTAMPDIFF(MINUTE,SYSDATE(),a.enroll_time_end)<=0\n"
+        + "GROUP BY a.id)t where t.num<t.participation_lowest_num")
+    List<Long> selectTimedTaskPartyBuildingActivity();
+
+    @Select("SELECT \n" + "u.user_id\n" + "FROM\n" + "com_pb_activity_member m\n"
+        + "JOIN com_pb_member r on m.member_id=r.id\n" + "join sys_user u on r.id_card=u.id_card and u.type=1 \n"
+        + "where m.activity_id=#{activityId}")
+    List<Long> selectTimedTaskPartyBuildingActivityUserids(Long activityId);
+
+    @Update("<script> " + "update com_pb_activity set `status`=6 WHERE id in \n"
+        + "<foreach item=\"item\" collection=\"ids\" separator=\",\" open=\"(\" close=\")\" index=\"\"> \n"
+        + "#{item}\n" + "</foreach>\n" + "</script>")
+    int updateBatchIds(@Param("ids") List<Long> ids);
+
+    @Update("update com_pb_activity set status=2 where `status`=1 and TIMESTAMPDIFF(MINUTE,SYSDATE(),release_time)<=0")
+    int updateStatusToNotBegin();
+
+    @Update("update com_pb_activity set status=3 where `status`=2 and TIMESTAMPDIFF(MINUTE,SYSDATE(),enroll_time_begin)<=0")
+    int updateStatusToSign();
+
+    @Update("update com_pb_activity set status=5 where `status` in (3,4) and TIMESTAMPDIFF(MINUTE,SYSDATE(),enroll_time_end)<=0")
+    int updateStatusToActiveOrEnd();
+
+    @Select("select id from com_pb_activity where `status` in (3,4) and TIMESTAMPDIFF(MINUTE,SYSDATE(),enroll_time_end)<=0")
+    List<Long> getTaskPbActivityEndIds();
+
+    @Select("select caas.user_id,caas.activity_id,caa.community_id from com_pb_activity_member as caas left join com_pb_activity as caa on caa.id = caas.activity_id where caa.id = #{activityId}")
+    List<ComActActivityPeopleVO> getTaskPbActivityPeopleList(@Param("activityId") Long activityId);
+
+    @Select("select type,name from sys_user where user_id=#{createBy}")
+    LoginUserInfoVO selectUserInfoByUserId(Long createBy);
+
+    /**
+     * 根据社区id查询社区名称
+     * 
+     * @param communityId
+     *            社区id
+     * @return 社区名字
+     */
+    @Select("select name from com_act where community_id = ${communityId}")
+    String selectCommunityNameByCommunityId(Long communityId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbActivityMemberDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbActivityMemberDAO.java
new file mode 100644
index 0000000..0493721
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbActivityMemberDAO.java
@@ -0,0 +1,59 @@
+package com.panzhihua.service_dangjian.dao;
+
+import java.util.List;
+
+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;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.partybuilding.PageActivityMembersVO;
+import com.panzhihua.service_dangjian.model.dos.ComPbActivityMemberDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 活动成员
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-01 10:04
+ **/
+@Mapper
+public interface ComPbActivityMemberDAO extends BaseMapper<ComPbActivityMemberDO> {
+    // @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 " + " m.id," + " m.NAME," + " u.phone," + " m.create_at registrationTime" + " FROM "
+        + " com_pb_activity_member m " + " LEFT JOIN sys_user u ON m.user_id = u.user_id " + "WHERE "
+        + "m.activity_id = #{pageActivityMembersVO.activityId} "
+        + "<if test='pageActivityMembersVO.name != null and pageActivityMembersVO.name.trim() != &quot;&quot;'>"
+        + "AND m.`name` = #{pageActivityMembersVO.name} " + " </if> "
+        + "<if test='pageActivityMembersVO.phone != null and pageActivityMembersVO.phone.trim() != &quot;&quot;'>"
+        + "AND u.phone = #{pageActivityMembersVO.phone}" + " </if> " + "</script>")
+    IPage<PageActivityMembersVO> pageActivityMembers(Page page,
+        @Param("pageActivityMembersVO") PageActivityMembersVO pageActivityMembersVO);
+
+    @Select("select a.* from com_pb_activity_member a join com_pb_member m on m.id=a.member_id "
+        + "join sys_user u on m.id_card=u.id_card and u.user_id=#{userId} where a.activity_id=#{id}")
+    ComPbActivityMemberDO selectByUserIdActivityId(@Param("id") Long id, @Param("userId") Long userId);
+
+    @Select("SELECT \n" + "u.user_id\n" + "FROM\n" + "com_pb_activity_member m \n"
+        + "join com_pb_member b on m.member_id=b.id\n" + "join sys_user u on b.id_card=u.id_card\n" + "WHERE\n"
+        + "m.activity_id =#{id}")
+    List<Long> selectAllPartyBuildingActivityMembers(Long id);
+
+    @Select("select m.id from sys_user u join com_pb_member m on u.id_card=m.id_card and u.community_id = ${communityId} and u.user_id=#{userId} ")
+    Long selectMemberIdByUserId(@Param("userId") Long userId, @Param("communityId") Long communityId);
+
+    @Select("select type from sys_user where user_id=#{createBy}")
+    LoginUserInfoVO selectUserInfo(Long createBy);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbCheckUnitMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbCheckUnitMapper.java
new file mode 100644
index 0000000..d6c0307
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbCheckUnitMapper.java
@@ -0,0 +1,122 @@
+package com.panzhihua.service_dangjian.dao;
+
+import com.panzhihua.service_dangjian.entity.ComPbCheckUnit;
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.common.*;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import java.util.List;
+
+/**
+ * title: 党建-报到单位表数据库访问层
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 党建-报到单位表数据库访问层
+ *
+ * @author lyq
+ * @date 2022-02-16 16:22:18
+ */
+@Mapper
+public interface ComPbCheckUnitMapper extends BaseMapper<ComPbCheckUnit> {
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-02-16 16:22:18
+     */
+    ComPbCheckUnitVo queryById(Long id);
+
+    /**
+     * description  queryAllByLimit  分页查询
+     *
+     * @param comPbCheckUnit 请求参数
+     * @param page           分页参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-02-16 16:22:18
+     */
+    IPage<ComPbCheckUnitVo> queryAllByLimit(@Param("dto") PageComPbCheckUnitDto comPbCheckUnit, Page page);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comPbCheckUnit 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-02-16 16:22:18
+     */
+    List<ComPbCheckUnitVo> queryAllByList(@Param("dto") PageComPbCheckUnitDto comPbCheckUnit);
+
+    Long selectCommunityId(@Param("area") String area,@Param("town")String town,@Param("community")String community);
+
+    /**
+     * 报到单位统计-顶部数据
+     * @param communityIds
+     * @param belongTo
+     * @param choice
+     * @return
+     */
+    PbCheckUnitStatisticsVo unitStatisticsTop(@Param("communityIds") List<Long> communityIds, @Param("belongTo") String belongTo,
+                                              @Param("choice") String choice, @Param("unitIds")  Long[] unitIds,
+                                              @Param("yearTime") String yearTime);
+
+    /**
+     * 报到单位统计
+     * @param commonDto
+     * @param page
+     * @return
+     */
+    IPage<PbCheckUnitStatisticsVo> unitStatistics(@Param("commonDto") PagePbCheckUnitCommonDto commonDto, @Param("page") Page page);
+
+    /**
+     * 报到党员统计-顶部数据
+     * @param communityIds
+     * @param belongTo
+     * @param choice
+     * @param checkUnitId
+     * @return
+     */
+    PbCheckUnitStatisticsVo pbStatisticsTop(@Param("communityIds") List<Long> communityIds, @Param("belongTo") String belongTo, @Param("choice") String choice, @Param("checkUnitId") Long checkUnitId, @Param("unitIds")Long[] unitIds,@Param("yearTime") String yearTime);
+
+    /**
+     * 报到党员统计-按单位归属统计
+     * @param commonDto
+     * @param page
+     * @return
+     */
+    IPage<PbCheckUnitStatisticsVo> pbStatisticsBelong(@Param("commonDto") PagePbCheckUnitCommonDto commonDto, @Param("page") Page page);
+
+    /**
+     * 报到党员统计-按单位统计
+     * @param commonDto
+     * @param page
+     * @return
+     */
+    IPage<ComPbCheckUnitVo> pbStatisticsUnit(@Param("commonDto") PagePbCheckUnitCommonDto commonDto, @Param("page") Page page);
+
+    Integer organSumIntegral(@Param("communityIds") List<Long> communityIds,@Param("yearTime") String yearTime);
+
+    Integer pbOrganSumIntegral(@Param("communityIds") List<Long> communityIds,@Param("yearTime") String yearTime);
+
+
+
+
+    /**
+     * 查询单位管理员
+     *
+     * @param phone
+     * @return
+     */
+    Integer selectOrgAdmin(@Param("phone") String phone);
+
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbDynDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbDynDAO.java
new file mode 100644
index 0000000..a4b278d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbDynDAO.java
@@ -0,0 +1,53 @@
+package com.panzhihua.service_dangjian.dao;
+
+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;
+import com.panzhihua.common.model.vos.partybuilding.west.PartyBuildingComPbDynVO;
+import com.panzhihua.service_dangjian.model.dos.ComPbDynDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 动态
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-01 15:49
+ **/
+@Mapper
+public interface ComPbDynDAO extends BaseMapper<ComPbDynDO> {
+//     @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>")
+
+    IPage<PartyBuildingComPbDynVO> pageYnamic(Page page,
+        @Param("partyBuildingComPbDynVO") PartyBuildingComPbDynVO partyBuildingComPbDynVO);
+
+
+
+    IPage<com.panzhihua.common.model.vos.partybuilding.PartyBuildingComPbDynVO> pageYnamics(Page page,
+                         @Param("partyBuildingComPbDynVO") com.panzhihua.common.model.vos.partybuilding.PartyBuildingComPbDynVO partyBuildingComPbDynVO);
+
+
+
+
+    @Update("update com_pb_dyn set `status`=2  WHERE `status`=1 and TIMESTAMPDIFF(MINUTE,SYSDATE(),publish_at)<=0")
+    int timedTaskPartyBuildingStatus();
+
+    @Select("<script> " + "SELECT\n" + " distinct COUNT( u.id ) readingVolume,\n"
+        + " d.community_id, d.content, d.cover, d.cover_mode, d.create_at, d.create_by, d.dyn_type, d.id, d.publish_at, d.status, d.title, d.type,d.policy_type, \n"
+        + " act.name as createByName,d.jump_type,d.jump_url " + "FROM\n"
+        + "com_pb_dyn d LEFT JOIN com_act act ON d.community_id = act.community_id  \n"
+        + "LEFT JOIN com_pb_dyn_user u ON d.id = u.dyn_id " + "where d.id = #{id} " + " group by d.id " + "</script>")
+    PartyBuildingComPbDynVO selectVoById(@Param("id") Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbDynUserDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbDynUserDAO.java
new file mode 100644
index 0000000..f008f50
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbDynUserDAO.java
@@ -0,0 +1,15 @@
+package com.panzhihua.service_dangjian.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_dangjian.model.dos.ComPbDynUserDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党员动态阅读记录
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-02 10:29
+ **/
+@Mapper
+public interface ComPbDynUserDAO extends BaseMapper<ComPbDynUserDO> {}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbMemberDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbMemberDAO.java
new file mode 100644
index 0000000..ca94802
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbMemberDAO.java
@@ -0,0 +1,229 @@
+package com.panzhihua.service_dangjian.dao;
+
+import java.util.List;
+import java.util.Map;
+
+import com.panzhihua.common.model.dtos.community.PageMemberForInviteDTO;
+import com.panzhihua.common.model.dtos.partybuilding.PageComDataStatisticsMemberDto;
+import com.panzhihua.common.model.vos.PartyMemberListExcelVO;
+import com.panzhihua.common.model.vos.partybuilding.*;
+import com.panzhihua.common.model.vos.partybuilding.excel.ComDataStatisticsMemberExcelVo;
+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;
+import com.panzhihua.service_dangjian.model.dos.ComPbMemberDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党员
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 10:52
+ **/
+@Mapper
+public interface ComPbMemberDAO extends BaseMapper<ComPbMemberDO> {
+
+    @Select("<script> " + "SELECT\n" + "o.`name` orgName,\n" + "m.org_id,\n" + "m.id_card,\n" + "m.`id`,\n"
+        + "u.phone,\n" + "m.`name`,\n" + "m.photo_path,\n" + "TIMESTAMPDIFF(\n" + "YEAR,\n" + "m.employment_time,\n"
+        + "DATE_FORMAT( NOW(), '%Y-%m-%d' )) partyAge,\n" + "m.join_time,\n" + "m.employment_time,\n" + "CASE\n"
+        + "WHEN u.id_card IS NULL THEN\n" + "'未注册' ELSE '已注册' \n" + "END STATUS \n" + "FROM\n" + "com_pb_member m\n"
+        + "LEFT JOIN sys_user u ON m.id_card = u.id_card\n" + "LEFT JOIN com_pb_org o ON m.org_id = o.id"
+        + " where m.community_id = ${pagePartyOrganizationVO.communityId} and m.audit_result='1' "
+        + "<if test='pagePartyOrganizationVO.orgName != null and pagePartyOrganizationVO.orgName != &quot;&quot;'>"
+        + "and o.name like concat(#{pagePartyOrganizationVO.orgName},'%') " + " </if> "
+        + "<if test='pagePartyOrganizationVO.orgId != null'>" + " and o.id = #{pagePartyOrganizationVO.orgId} "
+        + " </if> "
+        + "<if test='pagePartyOrganizationVO.account != null and pagePartyOrganizationVO.account != &quot;&quot;'>"
+        + "and u.phone like concat (#{pagePartyOrganizationVO.account},'%')" + " </if> "
+        + "<if test='pagePartyOrganizationVO.name != null and pagePartyOrganizationVO.name != &quot;&quot;'>"
+        + "and m.name like concat (#{pagePartyOrganizationVO.name},'%')" + " </if> " + "order by m.create_at desc "
+        + "</script>")
+    IPage<PartyBuildingMemberVO> pagePartyOrganization(Page page,
+        @Param("pagePartyOrganizationVO") PagePartyOrganizationVO pagePartyOrganizationVO);
+
+    @Select("select m.id,m.org_id,m.name,m.id_card,m.join_time,m.employment_time,m.audit_result,m.create_at,m.update_at,m.community_id,m.user_id,m.refuse_reason,u.image_url as photoPath from sys_user u join com_pb_member m on u.id_card=m.id_card where u.user_id=#{userId}")
+    ComPbMemberDO selectByUserId(Long userId);
+
+    @Select("select name from sys_user where user_id=#{createBy}")
+    String selectNameByUserId(Long createBy);
+
+    @Update("update sys_user u set u.is_partymember=0 where u.phone=#{phone}")
+    void updateUserIsPartymember(String phone);
+
+    @Select("<script> " + "SELECT\n" + "o.`name` orgName,\n" + "m.org_id,\n" + "m.id_card,\n" + "m.`id`,\n"
+        + "u.phone,\n" + "m.`name`,\n" + "m.photo_path,\n" + "TIMESTAMPDIFF(\n" + "YEAR,\n" + "m.employment_time,\n"
+        + "DATE_FORMAT( NOW(), '%Y-%m-%d' )) partyAge,\n" + "m.join_time,\n" + "m.audit_result, \n"
+        + "m.employment_time,\n" + "CASE\n" + "WHEN u.id_card IS NULL THEN\n" + "'未注册' ELSE '已注册' \n" + "END STATUS \n"
+        + "FROM\n" + "com_pb_member m\n" + "LEFT JOIN sys_user u ON m.id_card = u.id_card\n"
+        + "LEFT JOIN com_pb_org o ON m.org_id = o.id" + " where m.user_id is not null  "
+        + "<if test='pagePartyBuildingMemberVO.phone != null and pagePartyBuildingMemberVO.phone != &quot;&quot;'>"
+        + "and u.phone = #{pagePartyBuildingMemberVO.phone} " + " </if> "
+        + "<if test='pagePartyBuildingMemberVO.name != null and pagePartyBuildingMemberVO.name != &quot;&quot;'>"
+        + "and u.name like concat (#{pagePartyBuildingMemberVO.name},'%')" + " </if> "
+        + "<if test='pagePartyBuildingMemberVO.auditStatus != null and pagePartyBuildingMemberVO.auditStatus != &quot;&quot;'>"
+        + "and m.audit_result = #{pagePartyBuildingMemberVO.auditStatus}" + " </if> " + "order by m.join_time desc "
+        + "</script>")
+    IPage<PartyBuildingMemberVO> pagePartyBuildingMemberVO(Page page,
+        @Param("pagePartyBuildingMemberVO") PagePartyBuildingMemberVO pagePartyBuildingMemberVO);
+
+    /**
+     * 分页查询待认证党员列表
+     * @param page  分页参数
+     * @param pagePartyBuildingMemberVO 请求参数
+     * @return  待认证党员列表
+     */
+    IPage<PartyBuildingMemberVO> pagePartyBuildingMembersVO(Page page,
+        @Param("pagePartyBuildingMemberVO") PagePartyBuildingMemberVO pagePartyBuildingMemberVO);
+
+    @Select("<script> "
+        + "select cpm.name as comName,cpm.id_card,cpm.join_time,cpm.employment_time,ca.`name` as communityName,cpo.name as orgName from com_pb_member as cpm "
+        + " left join com_act as ca on ca.community_id = cpm.community_id "
+        + " left join com_pb_org as cpo on cpo.id = cpm.org_id " + " LEFT JOIN sys_user u ON cpm.id_card = u.id_card "
+        + " where cpm.community_id = ${organizationVO.communityId} and cpm.audit_result = 1 "
+        + "<if test='organizationVO.orgName != null'>" + " and cpo.name LIKE CONCAT('%',#{organizationVO.orgName},'%') "
+        + " </if> " + "<if test='organizationVO.account != null and organizationVO.account != &quot;&quot;'>"
+        + " and u.phone like concat (#{organizationVO.account},'%')" + " </if> "
+        + "<if test='organizationVO.name != null and organizationVO.name != &quot;&quot;'>"
+        + " and cpm.name like concat (#{organizationVO.name},'%')" + " </if> " + "</script>")
+    List<ComPbMemberExcelVO> exportPbMember(@Param("organizationVO") PagePartyOrganizationVO organizationVO);
+
+    /**
+     * 分页查询党员列表
+     * @param page  分页参数
+     * @param buildingMemberVO 请求参数
+     * @return  党员列表
+     */
+    IPage<PartyBuildingMemberVO> queryAllByLimit(Page page,@Param("dto") PagePartyOrganizationVO buildingMemberVO);
+
+    /**
+     * 导出党员列表
+     * @param buildingMemberVO 请求参数
+     * @return  党员列表
+     */
+    List<PartyMemberListExcelVO> exportPartyMemberList(@Param("dto") PagePartyOrganizationVO buildingMemberVO);
+
+    /**
+     * 根据id查询党员信息
+     * @param id    主键id
+     * @param areaCode
+     * @return  党员信息
+     */
+    PartyBuildingMemberVO queryById(@Param("id") Long id, @Param("areaCode") String areaCode);
+
+    /**
+     * 分页查询党员数据统计
+     * @param statisticsMemberDto   请求参数
+     * @return  党员数据统计
+     */
+    IPage<ComDataStatisticsMemberVo> pageDataStatisticsMember(Page page, @Param("dto") PageComDataStatisticsMemberDto statisticsMemberDto);
+
+    /**
+     * 查询人口活动统计数据
+     * @param userId    用户id
+     * @param communityId   社区id
+     * @return  人口活动统计数据
+     */
+    ComDataStatisticsMemberVo getMemberStatistics(@Param("userId") Long userId,@Param("communityId") Long communityId);
+
+    /**
+     * 查询社区党组织下的统计数据
+     * @param communityId   社区id
+     * @param orgIds    党组织id集合
+     * @return  社区党组织下统计数据
+     */
+    ComDataStatisticsOrgVo getOrgDataStatistics(@Param("communityId") Long communityId,@Param("orgIds") List<Long> orgIds);
+
+    /**
+     * 查询社区党组织左下统计数据
+     * @param communityId   社区id
+     * @param orgIds    党组织id集合
+     * @param startTime 查询开始时间
+     * @param endTime   查询结束时间
+     * @param areaCode
+     * @return  社区党组织左下统计数据
+     */
+    ComDataStatisticsOrgVo getOrgDataStatisticsLeftDown(@Param("communityId") Long communityId, @Param("orgIds") List<Long> orgIds
+            , @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("areaCode") String areaCode);
+
+    /**
+     * 分页查询社区党组织下党员
+     * @param page   分页参数
+     * @param communityId   社区id
+     * @param orgIds    党组织id集合
+     * @param areaCode
+     * @return  党员列表
+     */
+    IPage<PartyBuildingMemberVO> getOrgDataStatisticsMember(@Param("page") Page page,
+                                                            @Param("communityId") Long communityId,
+                                                            @Param("orgIds") List<Long> orgIds,
+                                                            @Param("areaCode") String areaCode);
+
+    /**
+     * 查询社区党组织下某个时间段统计数据
+     * @param communityId   社区id
+     * @param orgIds    党组织id集合
+     * @param startDate  查询开始时间
+     * @param endDate  查询结束时间
+     * @return  社区党组织下某个时间段统计数据
+     */
+    Map<String,Object> getOrgDataStatisticsRightDown(@Param("communityId") Long communityId,
+                                                     @Param("orgIds") List<Long> orgIds,
+                                                     @Param("startDate") String startDate,
+                                                     @Param("endDate") String endDate);
+
+    /**
+     * 查询党组织表头统计数据
+     * @param communityId
+     *            社区id
+     * @return  党组织表头统计数据
+     */
+    ComDataStatisticsHeaderOrgVo getHeaderOrgDataStatistics(@Param("communityId") Long communityId);
+
+    /**
+     * 党员数据统计-党员导出数据查询
+     * @param statisticsMemberDto   请求参数
+     * @return  党员导出数据
+     */
+    List<ComDataStatisticsMemberExcelVo> exportDataStatisticsMember(@Param("dto") PageComDataStatisticsMemberDto statisticsMemberDto);
+
+    /**
+     * 根据报到单位id查询党员列表
+     * @param page   分页参数
+     * @param partyBuildingMemberVO   请求参数
+     * @return  党员列表
+     */
+    IPage<PartyBuildingMemberVO> getPbMemberByApplets(Page page,@Param("dto") PartyBuildingMemberVO partyBuildingMemberVO);
+
+    /**
+     * 小程序获取报道单位党员列表
+     * @param id
+     * @return
+     */
+    PartyBuildingMemberVO getDetailByApp(Long id);
+
+    PartyBuildingMemberVO selectDetail(@Param("phone") String phone,@Param("type")Integer type);
+
+    /**
+     * 分页查询注册党员列表
+     * @param page
+     * @param dto
+     * @return
+     */
+    IPage<PartyBuildingMemberVO> pageRegisterMember(@Param("page") Page page, @Param("dto") PageMemberForInviteDTO dto);
+
+    @Select("SELECT  caa.community_id FROM com_act caa WHERE caa.`name` = ( select ca.`name` FROM com_act ca WHERE ca.community_id =#{id})")
+    List<Long> selectIds(@Param("id") Long id);
+
+    /**
+     * 根据区域名称查询社区id
+     * @param area
+     * @return
+     */
+    @Select("select distinct community_id from com_area_town_community where area=#{area}")
+    List<Long> selectDistinctCommunityId(@Param("area") String area);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbMemberRoleDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbMemberRoleDAO.java
new file mode 100644
index 0000000..e467cd8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbMemberRoleDAO.java
@@ -0,0 +1,79 @@
+package com.panzhihua.service_dangjian.dao;
+
+import com.panzhihua.common.model.vos.community.ComActVO;
+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;
+import com.panzhihua.common.model.vos.partybuilding.west.PartyCommitteeVO;
+import com.panzhihua.common.model.vos.user.SysUserVO;
+import com.panzhihua.service_dangjian.model.dos.ComPbMemberRoleDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党委
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-01 14:36
+ **/
+@Mapper
+public interface ComPbMemberRoleDAO extends BaseMapper<ComPbMemberRoleDO> {
+
+    /**
+     * 分页查询党委列表
+     * @param page  分页参数
+     * @param partyCommitteeVO  请求参数
+     * @return  党委列表
+     */
+    IPage<PartyCommitteeVO> pagePartyOrganization(Page page,
+        @Param("partyCommitteeVO") PartyCommitteeVO partyCommitteeVO);
+
+
+
+    IPage<com.panzhihua.common.model.vos.partybuilding.PartyCommitteeVO> pagePartyOrganizations(Page page,
+                                                  @Param("partyCommitteeVO") com.panzhihua.common.model.vos.partybuilding.PartyCommitteeVO partyCommitteeVO);
+
+
+    @Select("select * from sys_user where phone=#{phone} AND app_id = #{appid} and type=1")
+    SysUserVO getSysUserByPhone(@Param("phone") String phone, @Param("appid") String appid);
+
+    /**
+     * 根据身份证查询小程序用户id
+     * @param idCard 身份证
+     * @param areaCode
+     * @return  小程序用户id
+     */
+    Long getUserIdByIdCard(@Param("idCard") String idCard, @Param("areaCode") String areaCode);
+
+    /**
+     * 根据手机号查询小程序用户id
+     * @param phone 手机号
+     * @param appid
+     * @return  小程序用户id
+     */
+    Long getSysUserIdByPhone(@Param("phone") String phone, @Param("appid") String appid);
+
+    @Update("update sys_user u set u.phone=#{newphone} where u.phone=#{oldphone}")
+    void updateUserPhone(@Param("newphone") String newphone, @Param("oldphone") String oldphone);
+
+    @Select("select * from com_pb_member_role where id=#{id}")
+    PartyCommitteeVO selectPartyCommitteeById(@Param("id") Long id);
+
+    /**
+     * 根据身份证查询用户数量
+     * @param idCard    身份证号码
+     * @param areaCode
+     * @return  用户数量
+     */
+    Integer getSysUserByIdCardCount(@Param("idCard") String idCard, @Param("areaCode") String areaCode);
+
+    /**
+     * 获取社区信息
+     * @param communityId
+     * @return
+     */
+    ComActVO selectActById(@Param("communityId") Long communityId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbMemberWestDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbMemberWestDAO.java
new file mode 100644
index 0000000..cbe3830
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbMemberWestDAO.java
@@ -0,0 +1,184 @@
+package com.panzhihua.service_dangjian.dao;
+
+import java.util.List;
+import java.util.Map;
+
+import com.panzhihua.common.model.dtos.partybuilding.PageComDataStatisticsMemberDto;
+import com.panzhihua.common.model.vos.partybuilding.west.*;
+import com.panzhihua.common.model.vos.partybuilding.excel.ComDataStatisticsMemberExcelVo;
+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;
+import com.panzhihua.service_dangjian.model.dos.ComPbMemberWestDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党员
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 10:52
+ **/
+@Mapper
+public interface ComPbMemberWestDAO extends BaseMapper<ComPbMemberWestDO> {
+
+    @Select("<script> " + "SELECT\n" + "o.`name` orgName,\n" + "m.org_id,\n" + "m.id_card,\n" + "m.`id`,\n"
+            + "u.phone,\n" + "m.`name`,\n" + "m.photo_path,\n" + "TIMESTAMPDIFF(\n" + "YEAR,\n" + "m.employment_time,\n"
+            + "DATE_FORMAT( NOW(), '%Y-%m-%d' )) partyAge,\n" + "m.join_time,\n" + "m.employment_time,\n" + "CASE\n"
+            + "WHEN u.id_card IS NULL THEN\n" + "'未注册' ELSE '已注册' \n" + "END STATUS \n" + "FROM\n" + "com_pb_member m\n"
+            + "LEFT JOIN sys_user u ON m.id_card = u.id_card\n" + "LEFT JOIN com_pb_org o ON m.org_id = o.id"
+            + " where m.community_id = ${pagePartyOrganizationVO.communityId} and m.audit_result='1' "
+            + "<if test='pagePartyOrganizationVO.orgName != null and pagePartyOrganizationVO.orgName != &quot;&quot;'>"
+            + "and o.name like concat(#{pagePartyOrganizationVO.orgName},'%') " + " </if> "
+            + "<if test='pagePartyOrganizationVO.orgId != null'>" + " and o.id = #{pagePartyOrganizationVO.orgId} "
+            + " </if> "
+            + "<if test='pagePartyOrganizationVO.account != null and pagePartyOrganizationVO.account != &quot;&quot;'>"
+            + "and u.phone like concat (#{pagePartyOrganizationVO.account},'%')" + " </if> "
+            + "<if test='pagePartyOrganizationVO.name != null and pagePartyOrganizationVO.name != &quot;&quot;'>"
+            + "and m.name like concat (#{pagePartyOrganizationVO.name},'%')" + " </if> " + "order by m.create_at desc "
+            + "</script>")
+    IPage<PartyBuildingMemberVO> pagePartyOrganization(Page page,
+                                                       @Param("pagePartyOrganizationVO") PagePartyOrganizationVO pagePartyOrganizationVO);
+
+    @Select("select m.id,m.org_id,m.name,m.id_card,m.join_time,m.employment_time,m.audit_result,m.create_at,m.update_at,m.community_id,m.user_id,m.refuse_reason,u.image_url as photoPath from sys_user u join com_pb_member m on u.id_card=m.id_card where u.user_id=#{userId}")
+    ComPbMemberWestDO selectByUserId(Long userId);
+
+    @Select("select name from sys_user where user_id=#{createBy}")
+    String selectNameByUserId(Long createBy);
+
+    @Update("update sys_user u set u.is_partymember=0 where u.id_card=#{idCard}")
+    void updateUserIsPartymember(String idCard);
+
+    @Select("<script> " + "SELECT\n" + "o.`name` orgName,\n" + "m.org_id,\n" + "m.id_card,\n" + "m.`id`,\n"
+            + "u.phone,\n" + "m.`name`,\n" + "m.photo_path,\n" + "TIMESTAMPDIFF(\n" + "YEAR,\n" + "m.employment_time,\n"
+            + "DATE_FORMAT( NOW(), '%Y-%m-%d' )) partyAge,\n" + "m.join_time,\n" + "m.audit_result, \n"
+            + "m.employment_time,\n" + "CASE\n" + "WHEN u.id_card IS NULL THEN\n" + "'未注册' ELSE '已注册' \n" + "END STATUS \n"
+            + "FROM\n" + "com_pb_member m\n" + "LEFT JOIN sys_user u ON m.id_card = u.id_card\n"
+            + "LEFT JOIN com_pb_org o ON m.org_id = o.id" + " where m.user_id is not null  "
+            + "<if test='pagePartyBuildingMemberVO.phone != null and pagePartyBuildingMemberVO.phone != &quot;&quot;'>"
+            + "and u.phone = #{pagePartyBuildingMemberVO.phone} " + " </if> "
+            + "<if test='pagePartyBuildingMemberVO.name != null and pagePartyBuildingMemberVO.name != &quot;&quot;'>"
+            + "and u.name like concat (#{pagePartyBuildingMemberVO.name},'%')" + " </if> "
+            + "<if test='pagePartyBuildingMemberVO.auditStatus != null and pagePartyBuildingMemberVO.auditStatus != &quot;&quot;'>"
+            + "and m.audit_result = #{pagePartyBuildingMemberVO.auditStatus}" + " </if> " + "order by m.join_time desc "
+            + "</script>")
+    IPage<PartyBuildingMemberVO> pagePartyBuildingMemberVO(Page page,
+                                                           @Param("pagePartyBuildingMemberVO") PagePartyBuildingMemberVO pagePartyBuildingMemberVO);
+
+    /**
+     * 分页查询待认证党员列表
+     * @param page  分页参数
+     * @param pagePartyBuildingMemberVO 请求参数
+     * @return  待认证党员列表
+     */
+    IPage<PartyBuildingMemberVO> pagePartyBuildingMembersVO(Page page,
+                                                            @Param("pagePartyBuildingMemberVO") PagePartyBuildingMemberVO pagePartyBuildingMemberVO);
+
+    @Select("<script> "
+            + "select cpm.name as comName,cpm.id_card,cpm.join_time,cpm.employment_time,ca.`name` as communityName,cpo.name as orgName from com_pb_member as cpm "
+            + " left join com_act as ca on ca.community_id = cpm.community_id "
+            + " left join com_pb_org as cpo on cpo.id = cpm.org_id " + " LEFT JOIN sys_user u ON cpm.id_card = u.id_card "
+            + " where cpm.community_id = ${organizationVO.communityId} and cpm.audit_result = 1 "
+            + "<if test='organizationVO.orgName != null'>" + " and cpo.name LIKE CONCAT('%',#{organizationVO.orgName},'%') "
+            + " </if> " + "<if test='organizationVO.account != null and organizationVO.account != &quot;&quot;'>"
+            + " and u.phone like concat (#{organizationVO.account},'%')" + " </if> "
+            + "<if test='organizationVO.name != null and organizationVO.name != &quot;&quot;'>"
+            + " and cpm.name like concat (#{organizationVO.name},'%')" + " </if> " + "</script>")
+    List<ComPbMemberExcelVO> exportPbMember(@Param("organizationVO") PagePartyOrganizationVO organizationVO);
+
+    /**
+     * 分页查询党员列表
+     * @param page  分页参数
+     * @param buildingMemberVO 请求参数
+     * @return  党员列表
+     */
+    IPage<PartyBuildingMemberVO> queryAllByLimit(Page page,@Param("dto") PagePartyOrganizationVO buildingMemberVO);
+
+    /**
+     * 导出党员列表
+     * @param buildingMemberVO 请求参数
+     * @return  党员列表
+     */
+    List<ComPbMemberExcelVO> exportPartyMemberList(@Param("dto") PagePartyOrganizationVO buildingMemberVO);
+
+    /**
+     * 根据id查询党员信息
+     * @param id    主键id
+     * @param areaCode
+     * @return  党员信息
+     */
+    PartyBuildingMemberVO queryById(@Param("id") Long id, @Param("areaCode") String areaCode);
+
+    /**
+     * 分页查询党员数据统计
+     * @param statisticsMemberDto   请求参数
+     * @return  党员数据统计
+     */
+    IPage<ComDataStatisticsMemberVo> pageDataStatisticsMember(Page page, @Param("dto") PageComDataStatisticsMemberDto statisticsMemberDto);
+
+    /**
+     * 查询人口活动统计数据
+     * @param userId    用户id
+     * @param communityId   社区id
+     * @return  人口活动统计数据
+     */
+    ComDataStatisticsMemberVo getMemberStatistics(@Param("userId") Long userId,@Param("communityId") Long communityId);
+
+    /**
+     * 查询社区党组织下的统计数据
+     * @param communityId   社区id
+     * @param orgIds    党组织id集合
+     * @return  社区党组织下统计数据
+     */
+    ComDataStatisticsOrgVo getOrgDataStatistics(@Param("communityId") Long communityId, @Param("orgIds") List<Long> orgIds);
+
+    /**
+     * 查询社区党组织左下统计数据
+     * @param communityId   社区id
+     * @param orgIds    党组织id集合
+     * @param startTime 查询开始时间
+     * @param endTime   查询结束时间
+     * @param areaCode
+     * @return  社区党组织左下统计数据
+     */
+    ComDataStatisticsOrgVo getOrgDataStatisticsLeftDown(@Param("communityId") Long communityId, @Param("orgIds") List<Long> orgIds
+            , @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("areaCode") String areaCode);
+
+    /**
+     * 分页查询社区党组织下党员
+     * @param page   分页参数
+     * @param communityId   社区id
+     * @param orgIds    党组织id集合
+     * @param areaCode
+     * @return  党员列表
+     */
+    IPage<PartyBuildingMemberVO> getOrgDataStatisticsMember(@Param("page") Page page, @Param("communityId") Long communityId, @Param("orgIds") List<Long> orgIds, @Param("areaCode") String areaCode);
+
+    /**
+     * 查询社区党组织下某个时间段统计数据
+     * @param communityId   社区id
+     * @param orgIds    党组织id集合
+     * @param startDate  查询开始时间
+     * @param endDate  查询结束时间
+     * @return  社区党组织下某个时间段统计数据
+     */
+    Map<String,Object> getOrgDataStatisticsRightDown(@Param("communityId") Long communityId,@Param("orgIds") List<Long> orgIds,@Param("startDate") String startDate,@Param("endDate") String endDate);
+
+    /**
+     * 查询党组织表头统计数据
+     * @param communityId
+     *            社区id
+     * @return  党组织表头统计数据
+     */
+    ComDataStatisticsHeaderOrgVo getHeaderOrgDataStatistics(@Param("communityId") Long communityId);
+
+    /**
+     * 党员数据统计-党员导出数据查询
+     * @param statisticsMemberDto   请求参数
+     * @return  党员导出数据
+     */
+    List<ComDataStatisticsMemberExcelVo> exportDataStatisticsMember(@Param("dto") PageComDataStatisticsMemberDto statisticsMemberDto);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbOrgDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbOrgDAO.java
new file mode 100644
index 0000000..3ba8c9e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbOrgDAO.java
@@ -0,0 +1,47 @@
+package com.panzhihua.service_dangjian.dao;
+
+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;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.partybuilding.west.PartyOrganizationVO;
+import com.panzhihua.service_dangjian.model.dos.ComPbOrgDO;
+
+import java.util.List;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党组织
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 11:35
+ **/
+@Mapper
+public interface ComPbOrgDAO extends BaseMapper<ComPbOrgDO> {
+
+    /**
+     * 分页查询党组织列表
+     * @param page  分页参数
+     * @param partyOrganizationVO   请求参数
+     * @return  党组织列表
+     */
+    IPage<PartyOrganizationVO> listPartyOrganizationAll(Page page,
+        @Param("partyOrganizationVO") PartyOrganizationVO partyOrganizationVO);
+
+    /**
+     * 查询党组织下子组织列表
+     * @param partyOrganizationVO   请求参数
+     * @return  党组织下子组织列表
+     */
+    List<PartyOrganizationVO> getChildOrgList(@Param("partyOrganizationVO") PartyOrganizationVO partyOrganizationVO);
+
+    /**
+     * 查询1级党组织列表
+     * @param partyOrganizationVO   请求参数
+     * @return  1级党组织列表
+     */
+    List<PartyOrganizationVO> getPbOrgAllList(@Param("partyOrganizationVO") PartyOrganizationVO partyOrganizationVO);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbServiceTeamDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbServiceTeamDAO.java
new file mode 100644
index 0000000..a4ad550
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/ComPbServiceTeamDAO.java
@@ -0,0 +1,51 @@
+package com.panzhihua.service_dangjian.dao;
+
+import java.util.List;
+
+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;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.partybuilding.PageComPbServiceTeamDTO;
+import com.panzhihua.common.model.vos.partybuilding.ComPbServiceTeamVO;
+import com.panzhihua.service_dangjian.model.dos.ComPbServiceTeamDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 服务团队
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-21 17:37
+ **/
+@Mapper
+public interface ComPbServiceTeamDAO extends BaseMapper<ComPbServiceTeamDO> {
+
+    @Select("<script> " + "SELECT\n" + "* \n" + "FROM\n" + "com_pb_service_team \n"
+        + " where community_id = ${pageComPbServiceTeamDTO.communityId}"
+        + "<if test='pageComPbServiceTeamDTO.name != null and pageComPbServiceTeamDTO.name.trim() != &quot;&quot;'>"
+        + " and name LIKE concat( #{pageComPbServiceTeamDTO.name}, '%' ) \n" + " </if> "
+            + "<if test='pageComPbServiceTeamDTO.propertyId != null and pageComPbServiceTeamDTO.propertyId != &quot;&quot;'>"
+            + " and property_id = #{pageComPbServiceTeamDTO.propertyId} </if> "
+            + "<if test='pageComPbServiceTeamDTO.type != null and pageComPbServiceTeamDTO.type != &quot;&quot;'>"
+            + " and type = #{pageComPbServiceTeamDTO.type} </if> "
+        + "<if test='pageComPbServiceTeamDTO.job != null and pageComPbServiceTeamDTO.job.trim() != &quot;&quot;'>"
+        + "AND job LIKE concat(\n" + "#{pageComPbServiceTeamDTO.job},\n" + "'%')" + " </if> " + "</script>")
+    IPage<ComPbServiceTeamVO> PageComPbServiceTeamDTO(Page page,
+        @Param("pageComPbServiceTeamDTO") PageComPbServiceTeamDTO pageComPbServiceTeamDTO);
+
+    @Select("select * from com_pb_service_team where id=#{id}")
+    ComPbServiceTeamDO selectComPbServiceTeamById(@Param("id") Long id);
+
+    @Select("<script> " + "SELECT\n" + "* \n" + "FROM\n" + "com_pb_service_team \n"
+        + " where community_id = ${communityId}" + "<if test='param != null and param != &quot;&quot;'>"
+        + " and name LIKE concat( #{param}, '%' ) \n" + " </if> " + "</script>")
+    List<ComPbServiceTeamVO> getTotlePerson(@Param("param") String param, @Param("communityId") Long communityId);
+
+    IPage<ComPbServiceTeamVO> pageServiceTeamProperty(Page page, @Param("pageComPbServiceTeamDTO")PageComPbServiceTeamDTO pageComPbServiceTeamDTO);
+
+
+    ComPbServiceTeamVO getComPbServiceTeamData(@Param("communityId") String communityId,
+                                               @Param("phone") String phone);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NeedProblemClaimDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NeedProblemClaimDAO.java
new file mode 100644
index 0000000..15bc9a1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NeedProblemClaimDAO.java
@@ -0,0 +1,80 @@
+package com.panzhihua.service_dangjian.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.partybuilding.NeedProblemClaimDTO;
+import com.panzhihua.common.model.dtos.partybuilding.NeedProblemInventoryDTO;
+import com.panzhihua.service_dangjian.entity.UserIntegral;
+import com.panzhihua.service_dangjian.entity.UserTrade;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党员双争双评排序
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-21 17:37
+ **/
+@Mapper
+public interface NeedProblemClaimDAO extends BaseMapper<NeedProblemClaimDTO>
+{
+
+    List<NeedProblemClaimDTO> getList(@Param("taskId") String taskId,
+                                      @Param("userId") String userId,
+                                      @Param("unitId") String unitId);
+
+    NeedProblemClaimDTO getDetails(@Param("id")String id,
+                                   @Param("taskId") String taskId,
+                                   @Param("userId") String userId);
+
+
+    NeedProblemClaimDTO getUserIdDetails(@Param("taskId") String taskId,
+                                         @Param("userId") String userId);
+
+    int addData(@Param("item") NeedProblemClaimDTO userIds);
+
+    int editData(@Param("item") NeedProblemClaimDTO userId);
+
+    int expurgateData(@Param("id") String id,
+                      @Param("taskId") String taskId,
+                      @Param("userId") String userId);
+
+    int getJionNum(@Param("taskId") String taskId,
+                   @Param("userId") String userId);
+
+
+    UserIntegral getUserIntegral(@Param("userId") String userId,@Param("communityId") String communityId);
+
+    int addUserIntegral(@Param("item") UserIntegral item);
+
+    int editUserIntegral(@Param("item") UserIntegral item);
+
+    int addUserIntegralTrade(@Param("item") UserTrade item);
+
+
+    /**
+     * 获取未签退活动id数据
+     */
+    List<String> getNotTimeTaskList();
+
+
+    /**
+     * 根据活动id获取没有签退的人员
+     */
+    List<NeedProblemClaimDTO> getNotTimeId(@Param("taskId") String taskId);
+
+
+
+    NeedProblemInventoryDTO getActivityEndTime(@Param("taskId") String taskId);
+
+
+    int updateEndTime(@Param("id") String id,@Param("serviceTime") String serviceTime, @Param("data") Date data);
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NeedProblemInventoryDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NeedProblemInventoryDAO.java
new file mode 100644
index 0000000..5b79941
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NeedProblemInventoryDAO.java
@@ -0,0 +1,60 @@
+package com.panzhihua.service_dangjian.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.partybuilding.NeedProblemClaimDTO;
+import com.panzhihua.common.model.dtos.partybuilding.NeedProblemInventoryDTO;
+import com.panzhihua.common.model.dtos.partybuilding.UserRankDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党员双争双评排序
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-21 17:37
+ **/
+@Mapper
+public interface NeedProblemInventoryDAO extends BaseMapper<NeedProblemInventoryDTO>
+{
+
+    IPage<NeedProblemInventoryDTO> getList(Page page,
+                                           @Param("search") String search,
+                                           @Param("classifyId") String classifyId,
+                                           @Param("status") String status,
+                                           @Param("kind") String kind,
+                                           @Param("userId") String userId,
+                                           @Param("userIds") String userIds,
+                                           @Param("isDisplay") String isDisplay,
+                                           @Param("communityId") String communityId,
+                                           @Param("startTime") Date startTime,
+                                           @Param("endTime") Date endTime);
+
+    IPage<NeedProblemInventoryDTO> getMyJoinList(Page page,
+                                                 @Param("search") String search,
+                                                 @Param("status") String status,
+                                                 @Param("kind") String kind,
+                                                 @Param("userIds") String userIds,
+                                                 @Param("isDisplay") String isDisplay,
+                                                 @Param("userId") String userId,
+                                                 @Param("startTime") Date startTime,
+                                                 @Param("endTime") Date endTime);
+
+    NeedProblemInventoryDTO getDetails(@Param("id")String id,@Param("userIds") String userIds);
+
+    int addData(@Param("item") NeedProblemInventoryDTO userIds);
+
+    int editData(@Param("item") NeedProblemInventoryDTO userId);
+
+    int expurgateData(@Param("id") String id);
+
+
+    List<NeedProblemInventoryDTO> getTimeList();
+
+    List<String> getOpenIdList(@Param("communityId") String communityId);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NeedProblemUnitTaskDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NeedProblemUnitTaskDAO.java
new file mode 100644
index 0000000..2a29288
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NeedProblemUnitTaskDAO.java
@@ -0,0 +1,41 @@
+package com.panzhihua.service_dangjian.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.partybuilding.NeedProblemInventoryDTO;
+import com.panzhihua.common.model.dtos.partybuilding.NeedProblemUnitTaskDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党员双争双评排序
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-21 17:37
+ **/
+@Mapper
+public interface NeedProblemUnitTaskDAO extends BaseMapper<NeedProblemUnitTaskDTO>
+{
+
+
+    IPage<NeedProblemUnitTaskDTO> getList(Page page,
+                                          @Param("unitId") String unitId,
+                                          @Param("kind") String kind,
+                                          @Param("status") String status);
+
+    NeedProblemUnitTaskDTO getDetails(@Param("id")String id);
+
+    int addData(@Param("item") NeedProblemUnitTaskDTO userIds);
+
+    int editData(@Param("item") NeedProblemUnitTaskDTO userId);
+
+    int expurgateData(@Param("id") String id);
+
+    Integer isGet(@Param("taskId") String taskId,@Param("unitId") String unitId);
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightCommunityConstructionDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightCommunityConstructionDAO.java
new file mode 100644
index 0000000..b8a9b74
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightCommunityConstructionDAO.java
@@ -0,0 +1,41 @@
+package com.panzhihua.service_dangjian.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.partybuilding.NeedProblemUnitTaskDTO;
+import com.panzhihua.common.model.dtos.partybuilding.NewFightCommunityConstructionDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党员双争双评排序
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-21 17:37
+ **/
+@Mapper
+public interface NewFightCommunityConstructionDAO extends BaseMapper<NewFightCommunityConstructionDTO>
+{
+
+    IPage<NewFightCommunityConstructionDTO> getList(Page page,
+                                                    @Param("communityId") String communityId,
+                                                    @Param("userId") String userId);
+
+    NewFightCommunityConstructionDTO getDetails(@Param("id")String id,@Param("userId") String userId);
+
+    int addData(@Param("item") NewFightCommunityConstructionDTO item);
+
+    int editData(@Param("item") NewFightCommunityConstructionDTO item);
+
+    int expurgateData(@Param("id") String id);
+
+    List<NewFightCommunityConstructionDTO> getListTime();
+
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightConfigDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightConfigDao.java
new file mode 100644
index 0000000..a777a90
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightConfigDao.java
@@ -0,0 +1,43 @@
+package com.panzhihua.service_dangjian.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.common.model.vos.community.building.NewFightConfigVO;
+import com.panzhihua.service_dangjian.entity.NewFightConfig;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface NewFightConfigDao extends BaseMapper<NewFightConfig>
+{
+
+    /**
+     * 详情
+     * @param communityId
+     * @return
+     */
+    NewFightConfig getDetails(@Param("communityId") String communityId);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    int addData(@Param("item") NewFightConfigVO item);
+
+
+    /**
+     * 编辑
+     * @param item
+     * @return
+     */
+    int editData(@Param("item") NewFightConfigVO item);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    int expurgateData(@Param("communityId") String communityId);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightConvenientMerchantDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightConvenientMerchantDao.java
new file mode 100644
index 0000000..4e68a18
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightConvenientMerchantDao.java
@@ -0,0 +1,80 @@
+package com.panzhihua.service_dangjian.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.vos.community.building.NewFightConvenientMerchantVO;
+import com.panzhihua.common.model.vos.user.SysUserVO;
+import com.panzhihua.service_dangjian.entity.NewFightConvenientMerchant;
+import io.swagger.annotations.ApiModelProperty;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @title: ConvenientMerchantDAO
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务商家DAO
+ * @author: hans
+ * @date: 2021/09/16 16:13
+ */
+@Mapper
+public interface NewFightConvenientMerchantDao extends BaseMapper<NewFightConvenientMerchant>
+{
+    /**
+     * 删除便民服务商家
+     *
+     * @param merchantId
+     * @param operator
+     * @return
+     */
+    int deleteMerchantById(@Param("merchantId") String merchantId);
+
+    /**
+     * 编辑状态
+     * @param merchantId
+     * @param status
+     * @return
+     */
+    int editStatus(@Param("merchantId") String merchantId,@Param("status") String status);
+
+    /**
+     * 分页查询便民服务商家 运营后台
+     *
+     * @param page                      分页参数
+     * @param item
+     * @return
+     */
+    IPage<NewFightConvenientMerchant> pageMerchant(@Param("page") Page page,
+                                                   @Param("isDel") String isDel,
+                                                   @Param("keyword") String keyword,
+                                                   @Param("status") String status,
+                                                   @Param("communityId") String communityId);
+
+    /**
+     * 查询商家信息
+     *
+     * @param merchantId
+     * @return
+     */
+    NewFightConvenientMerchant selectMerchantById(@Param("merchantId") String merchantId);
+
+
+    int addData(@Param("item") NewFightConvenientMerchantVO item);
+
+    int editData(@Param("item") NewFightConvenientMerchantVO item);
+
+
+    List<SysUserVO> selectUserList(@Param("communityId") String communityId,
+                                   @Param("phoneOrname") String phoneOrname);
+
+
+    List<SysUserVO> selectUserListB(@Param("communityId") String communityId,
+                                   @Param("phoneOrname") String phoneOrname);
+
+
+    String selectUserBind(@Param("communityId") String communityId,
+                          @Param("userId") String userId);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightIntegratingTaskDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightIntegratingTaskDao.java
new file mode 100644
index 0000000..be056e0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightIntegratingTaskDao.java
@@ -0,0 +1,62 @@
+package com.panzhihua.service_dangjian.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.common.model.vos.community.building.IntegratingTaskVO;
+import com.panzhihua.service_dangjian.entity.IntegratingTask;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface NewFightIntegratingTaskDao extends BaseMapper<IntegratingTask>
+{
+    /**
+     * 列表
+     * @param
+     * @return
+     */
+    List<IntegratingTask> getList(@Param("userId") String userId,
+                                  @Param("communityId") String communityId);
+
+    IntegratingTask getDetails(@Param("userId") String userId,
+                               @Param("communityId") String communityId,
+                               @Param("status") String status);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    int addData(@Param("item") IntegratingTaskVO item);
+
+    int editData(@Param("item") IntegratingTaskVO item);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    int expurgateData(@Param("id") String id);
+
+    int truncateData();
+
+
+    /**
+     * 每日签到记录列表  前15条
+     * @param userId
+     * @param communityId
+     * @return
+     */
+    List<IntegratingTask> getEverydayList(@Param("userId") String userId,
+                                          @Param("communityId") String communityId);
+
+
+    /**
+     * 添加每日签到记录
+     * @param item
+     * @return
+     */
+    int addEverydayData(@Param("item") IntegratingTaskVO item);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightProjectEvaluateDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightProjectEvaluateDAO.java
new file mode 100644
index 0000000..4fadf6a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightProjectEvaluateDAO.java
@@ -0,0 +1,30 @@
+package com.panzhihua.service_dangjian.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.partybuilding.NewFightProjectEvaluateDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党员双争双评排序
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-21 17:37
+ **/
+@Mapper
+public interface NewFightProjectEvaluateDAO extends BaseMapper<NewFightProjectEvaluateDTO>
+{
+
+    IPage<NewFightProjectEvaluateDTO> getList(Page page, @Param("projectId") String projectId);
+
+    NewFightProjectEvaluateDTO getDetails(@Param("id")String id);
+
+    int addData(@Param("item") NewFightProjectEvaluateDTO item);
+
+    int editData(@Param("item") NewFightProjectEvaluateDTO item);
+
+    int expurgateData(@Param("id") String id,@Param("projectId") String projectId);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightProjectJoinDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightProjectJoinDAO.java
new file mode 100644
index 0000000..b02aa2c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightProjectJoinDAO.java
@@ -0,0 +1,32 @@
+package com.panzhihua.service_dangjian.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.partybuilding.NewFightProjectJoinDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党员双争双评排序
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-21 17:37
+ **/
+@Mapper
+public interface NewFightProjectJoinDAO extends BaseMapper<NewFightProjectJoinDTO>
+{
+
+    IPage<NewFightProjectJoinDTO> getList(Page page,@Param("projectId") String projectId);
+
+    NewFightProjectJoinDTO getDetails(@Param("id")String id);
+
+    int addData(@Param("item") NewFightProjectJoinDTO item);
+
+    int editData(@Param("item") NewFightProjectJoinDTO item);
+
+    int expurgateData(@Param("id") String id,
+                      @Param("projectId") String projectId,
+                      @Param("userId") String userId);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightProjectPlanDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightProjectPlanDAO.java
new file mode 100644
index 0000000..86046bc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightProjectPlanDAO.java
@@ -0,0 +1,31 @@
+package com.panzhihua.service_dangjian.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.partybuilding.NewFightProjectPlanDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党员双争双评排序
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-21 17:37
+ **/
+@Mapper
+public interface NewFightProjectPlanDAO extends BaseMapper<NewFightProjectPlanDTO>
+{
+
+    IPage<NewFightProjectPlanDTO> getList(Page page,@Param("projectId") String projectId);
+
+    NewFightProjectPlanDTO getDetails(@Param("id")String id);
+
+    int addData(@Param("item") NewFightProjectPlanDTO userIds);
+
+    int editData(@Param("item") NewFightProjectPlanDTO userId);
+
+    int expurgateData(@Param("id") String id,@Param("projectId") String projectId);
+
+    int getNum(@Param("projectId") String projectId,@Param("accomplish") String accomplish);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightResourceSharingDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightResourceSharingDAO.java
new file mode 100644
index 0000000..2cba5a0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightResourceSharingDAO.java
@@ -0,0 +1,33 @@
+package com.panzhihua.service_dangjian.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.partybuilding.NewFightResourceSharingDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党员双争双评排序
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-21 17:37
+ **/
+@Mapper
+public interface NewFightResourceSharingDAO extends BaseMapper<NewFightResourceSharingDTO>
+{
+
+    IPage<NewFightResourceSharingDTO> getList(Page page,
+                                              @Param("communityId") String communityId,
+                                              @Param("unitId") String unitId,
+                                              @Param("meritId") String meritId);
+
+    NewFightResourceSharingDTO getDetails(@Param("id")String id);
+
+    int addData(@Param("item") NewFightResourceSharingDTO userIds);
+
+    int editData(@Param("item") NewFightResourceSharingDTO userId);
+
+    int expurgateData(@Param("id") String id);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightShoppingDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightShoppingDao.java
new file mode 100644
index 0000000..05e8a0e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightShoppingDao.java
@@ -0,0 +1,55 @@
+package com.panzhihua.service_dangjian.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.vos.community.building.NewFightShoppingVO;
+import com.panzhihua.service_dangjian.entity.NewFightShopping;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface NewFightShoppingDao extends BaseMapper<NewFightShopping>
+{
+    /**
+     * 列表
+     * @param
+     * @return
+     */
+    IPage<NewFightShopping> getList(Page page,
+                                           @Param("goodName") String goodName,
+                                           @Param("goodType") String goodType,
+                                           @Param("id") String id,
+                                           @Param("communityId") String communityId);
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    NewFightShopping getDetails(@Param("id") String id);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    int addData(@Param("item") NewFightShoppingVO item);
+
+
+    /**
+     * 编辑
+     * @param item
+     * @return
+     */
+    int editData(@Param("item") NewFightShoppingVO item);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    int expurgateData(@Param("id") String id);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightShoppingOrderDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightShoppingOrderDao.java
new file mode 100644
index 0000000..92f1064
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewFightShoppingOrderDao.java
@@ -0,0 +1,62 @@
+package com.panzhihua.service_dangjian.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.vos.community.building.NewFightShoppingOrderVO;
+import com.panzhihua.common.model.vos.jinhui.JinhuiShoppingOrderVO;
+import com.panzhihua.service_dangjian.entity.NewFightShoppingOrder;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+@Mapper
+public interface NewFightShoppingOrderDao extends BaseMapper<NewFightShoppingOrder>
+{
+    /**
+     * 列表
+     * @param
+     * @return
+     */
+    IPage<NewFightShoppingOrder> getList(Page page,
+                                           @Param("userId") String userId,
+                                           @Param("goodsId") String goodsId,
+                                           @Param("orderNumber") String orderNumber,
+                                           @Param("goodName") String goodName,
+                                           @Param("name") String name,
+                                           @Param("cancelType") String cancelType,
+                                           @Param("communityId") String communityId,
+                                           @Param("merchantId") String merchantId,
+                                           @Param("orderType") String orderType);
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    NewFightShoppingOrder getDetails(@Param("id") String id,
+                                     @Param("communityId") String communityId);
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    int addData(@Param("item") NewFightShoppingOrderVO item);
+
+
+    /**
+     * 编辑
+     * @param item
+     * @return
+     */
+    int editData(@Param("item") NewFightShoppingOrderVO item);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    int expurgateData(@Param("id") String id);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewStriveForDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewStriveForDAO.java
new file mode 100644
index 0000000..99dac3a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/NewStriveForDAO.java
@@ -0,0 +1,35 @@
+package com.panzhihua.service_dangjian.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.partybuilding.PageComPbServiceTeamDTO;
+import com.panzhihua.common.model.dtos.partybuilding.UserRankDTO;
+import com.panzhihua.common.model.vos.partybuilding.ComPbServiceTeamVO;
+import com.panzhihua.service_dangjian.model.dos.ComPbServiceTeamDO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党员双争双评排序
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-21 17:37
+ **/
+@Mapper
+public interface NewStriveForDAO extends BaseMapper<UserRankDTO>
+{
+
+    UserRankDTO getUserRank(@Param("userId")String userId);
+
+    IPage<UserRankDTO> getUserRankList(Page page,@Param("userId")String userId);
+
+    String getAllintegral(@Param("userIds") List<String> userIds);
+
+    List<String> getPartyMember(@Param("userId") String userId);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/StreetBigScreenDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/StreetBigScreenDAO.java
new file mode 100644
index 0000000..b0cd390
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/dao/StreetBigScreenDAO.java
@@ -0,0 +1,380 @@
+package com.panzhihua.service_dangjian.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.common.model.dtos.partybuilding.ComActDTO;
+import com.panzhihua.common.model.vos.partybuilding.PhotoMicroWishData;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党员双争双评排序
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-21 17:37
+ **/
+@Mapper
+public interface StreetBigScreenDAO extends BaseMapper<ComActDTO>
+{
+    //获取街道下社区内容
+    List<ComActDTO> getCommunityId(@Param("streetId") String streetId);
+
+    /**
+     * 获取小程序用户数量
+     * @param streetId
+     * @param communityId
+     * @param starTime
+     * @param endTime
+     * @return
+     */
+    Integer getUserNum(@Param("streetId") String streetId,
+                       @Param("communityId") String communityId,
+                       @Param("starTime") String starTime,
+                       @Param("endTime") String endTime);
+
+    /**
+     * 获取实有人口总数
+     * @param streetId
+     * @param communityId
+     * @param starTime
+     * @param endTime
+     * @return
+     */
+    Integer getActualPopNum(@Param("streetId") String streetId,
+                           @Param("communityId") String communityId,
+                           @Param("starTime") String starTime,
+                           @Param("endTime") String endTime);
+
+
+    /**
+     * 获取小区总数
+     * @param streetId
+     * @param communityId
+     * @param starTime
+     * @param endTime
+     * @return
+     */
+    Integer getVillageNum(@Param("streetId") String streetId,
+                            @Param("communityId") String communityId,
+                            @Param("starTime") String starTime,
+                            @Param("endTime") String endTime);
+
+
+    /**
+     * 获取志愿者总数
+     * @param streetId
+     * @param communityId
+     * @param starTime
+     * @param endTime
+     * @return
+     */
+    Integer getVolunteerNum(@Param("streetId") String streetId,
+                            @Param("communityId") String communityId,
+                            @Param("starTime") String starTime,
+                            @Param("endTime") String endTime);
+
+
+    /**
+     * 获取三资三务数据
+     * @param streetId
+     * @param communityId
+     * @param starTime
+     * @param endTime
+     * @return
+     */
+    Integer getThreeNum(@Param("streetId") String streetId,
+                        @Param("communityId") String communityId,
+                        @Param("name") String name,
+                        @Param("starTime") String starTime,
+                        @Param("endTime") String endTime);
+
+
+    /**
+     * 旧的报道需求问题统计数
+     * @param belongType
+     * @param streetId
+     * @param communityId
+     * @param starTime
+     * @param endTime
+     * @return
+     */
+    Integer getOleNeedProblemNum(@Param("belongType") String belongType,
+                                 @Param("streetId") String streetId,
+                                 @Param("communityId") String communityId,
+                                 @Param("starTime") String starTime,
+                                 @Param("endTime") String endTime);
+
+
+    /**
+     * 旧的报道需求问题统计数
+     * @param kind
+     * @param streetId
+     * @param communityId
+     * @param starTime
+     * @param endTime
+     * @return
+     */
+    Integer getNewNeedProblemNum(@Param("kind") String kind,
+                                 @Param("streetId") String streetId,
+                                 @Param("communityId") String communityId,
+                                 @Param("starTime") String starTime,
+                                 @Param("endTime") String endTime);
+
+
+    /**
+     * 获取旧双报道服务时间
+     * @param streetId
+     * @param communityId
+     * @param starTime
+     * @param endTime
+     * @return
+     */
+    Double getOldTime(@Param("streetId") String streetId,
+                      @Param("communityId") String communityId,
+                      @Param("starTime") String starTime,
+                      @Param("endTime") String endTime);
+
+
+    /**
+     * 获取新双报道服务时间
+     * @param streetId
+     * @param communityId
+     * @param starTime
+     * @param endTime
+     * @return
+     */
+    Double getNewTime(@Param("streetId") String streetId,
+                      @Param("communityId") String communityId,
+                      @Param("starTime") String starTime,
+                      @Param("endTime") String endTime);
+
+
+    /**
+     * 获取服务次数
+     * @param streetId
+     * @param communityId
+     * @param starTime
+     * @param endTime
+     * @return
+     */
+    Integer getRegistNum(@Param("streetId") String streetId,
+                         @Param("communityId") String communityId,
+                         @Param("starTime") String starTime,
+                         @Param("endTime") String endTime);
+
+
+    /**
+     * 党建动态数据
+     * @param streetId
+     * @param communityId
+     * @param starTime
+     * @param endTime
+     * @return
+     */
+    Integer getPartyBuildingNum(@Param("streetId") String streetId,
+                                @Param("communityId") String communityId,
+                                @Param("starTime") String starTime,
+                                @Param("endTime") String endTime);
+
+
+    /**
+     * 报到单位总计数据
+     * @param streetId
+     * @param communityId
+     * @param starTime
+     * @param endTime
+     * @return
+     */
+    Integer getUnitNum(@Param("streetId") String streetId,
+                       @Param("communityId") String communityId,
+                       @Param("starTime") String starTime,
+                       @Param("endTime") String endTime);
+
+    /**
+     * 报到党员总计数据
+     * @param streetId
+     * @param communityId
+     * @param starTime
+     * @param endTime
+     * @return
+     */
+    Integer getMemberNum(@Param("streetId") String streetId,
+                         @Param("communityId") String communityId,
+                         @Param("starTime") String starTime,
+                         @Param("endTime") String endTime);
+
+
+    /**
+     * 街道大屏随手拍-微心愿  1随手拍  2微心愿
+     * @param timeType
+     * @param streetId
+     * @param communityId
+     * @param starTime
+     * @param endTime
+     * @return
+     */
+    List<PhotoMicroWishData> getPhotoMicroWishData(@Param("type") String type,
+                                                   @Param("timeType") String timeType,
+                                                   @Param("streetId") String streetId,
+                                                   @Param("communityId") String communityId,
+                                                   @Param("starTime") String starTime,
+                                                   @Param("endTime") String endTime);
+
+    /**
+     * 街道大屏随手拍
+     * @param streetId
+     * @param communityId
+     * @param starTime
+     * @param endTime
+     * @return
+     */
+    Integer getPhotoAllNum(@Param("streetId") String streetId,
+                           @Param("communityId") String communityId,
+                           @Param("starTime") String starTime,
+                           @Param("endTime") String endTime);
+
+
+    /**
+     * 街道大屏微心愿
+     * @param streetId
+     * @param communityId
+     * @param starTime
+     * @param endTime
+     * @return
+     */
+    Integer getMicroWishAllNum(@Param("streetId") String streetId,
+                               @Param("communityId") String communityId,
+                               @Param("starTime") String starTime,
+                               @Param("endTime") String endTime);
+
+
+
+    /**
+     * 社区活动统计
+     * @param timeType
+     * @param streetId
+     * @param communityId
+     * @param starTime
+     * @param endTime
+     * @return
+     */
+    List<PhotoMicroWishData> getNommunityActNumList(@Param("timeType") String timeType,
+                                                @Param("streetId") String streetId,
+                                                @Param("communityId") String communityId,
+                                                @Param("starTime") String starTime,
+                                                @Param("endTime") String endTime);
+
+
+    /**
+     * 社区动态
+     * @param timeType
+     * @param streetId
+     * @param communityId
+     * @param starTime
+     * @param endTime
+     * @return
+     */
+    List<PhotoMicroWishData> getNommunityDynNumList(@Param("timeType") String timeType,
+                                                @Param("streetId") String streetId,
+                                                @Param("communityId") String communityId,
+                                                @Param("starTime") String starTime,
+                                                @Param("endTime") String endTime);
+
+    /**
+     * 问卷调查
+     * @param timeType
+     * @param streetId
+     * @param communityId
+     * @param starTime
+     * @param endTime
+     * @return
+     */
+    List<PhotoMicroWishData> getQuestnaireNumList(@Param("timeType") String timeType,
+                                              @Param("streetId") String streetId,
+                                              @Param("communityId") String communityId,
+                                              @Param("starTime") String starTime,
+                                              @Param("endTime") String endTime);
+
+    /**
+     * 议事投票
+     * @param timeType
+     * @param streetId
+     * @param communityId
+     * @param starTime
+     * @param endTime
+     * @return
+     */
+    List<PhotoMicroWishData> getDiscussNumList(@Param("timeType") String timeType,
+                                      @Param("streetId") String streetId,
+                                      @Param("communityId") String communityId,
+                                      @Param("starTime") String starTime,
+                                      @Param("endTime") String endTime);
+
+
+
+
+
+
+
+
+
+    /**
+     * 社区活动统计
+     * @param streetId
+     * @param communityId
+     * @param starTime
+     * @param endTime
+     * @return
+     */
+    Integer getNommunityActNum(@Param("streetId") String streetId,
+                                @Param("communityId") String communityId,
+                                @Param("starTime") String starTime,
+                                @Param("endTime") String endTime);
+
+
+    /**
+     * 社区动态
+     * @param streetId
+     * @param communityId
+     * @param starTime
+     * @param endTime
+     * @return
+     */
+    Integer getNommunityDynNum(@Param("streetId") String streetId,
+                                @Param("communityId") String communityId,
+                                @Param("starTime") String starTime,
+                                @Param("endTime") String endTime);
+
+    /**
+     * 问卷调查
+     * @param streetId
+     * @param communityId
+     * @param starTime
+     * @param endTime
+     * @return
+     */
+    Integer getQuestnaireNum(@Param("streetId") String streetId,
+                              @Param("communityId") String communityId,
+                              @Param("starTime") String starTime,
+                              @Param("endTime") String endTime);
+
+    /**
+     * 议事投票
+     * @param streetId
+     * @param communityId
+     * @param starTime
+     * @param endTime
+     * @return
+     */
+    Integer getDiscussNum(@Param("streetId") String streetId,
+                           @Param("communityId") String communityId,
+                           @Param("starTime") String starTime,
+                           @Param("endTime") String endTime);
+
+
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/ComActIntegralUser.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/ComActIntegralUser.java
new file mode 100644
index 0000000..7e8739a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/ComActIntegralUser.java
@@ -0,0 +1,135 @@
+package com.panzhihua.service_dangjian.entity;
+
+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;
+
+/**
+ * @auther lyq
+ * @create 2021-07-28 16:02:57
+ * @describe 用户积分账户表实体类
+ */
+
+@Data
+@TableName("com_act_integral_user")
+public class ComActIntegralUser implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 总积分数量
+     */
+    private Integer integralSum;
+
+    /**
+     * 可用总积分数量
+     */
+    private Integer integralAvailableSum;
+
+    /**
+     * 冻结总积分数量
+     */
+    private Integer integralFrozenSum;
+
+    /**
+     * 党员积分数量
+     */
+    private Integer integralParty;
+
+    /**
+     * 可用党员积分数量
+     */
+    private Integer integralAvailableParty;
+
+    /**
+     * 冻结党员积分数量
+     */
+    private Integer integralFrozenParty;
+
+    /**
+     * 志愿者积分数量
+     */
+    private Integer integralVolunteer;
+
+    /**
+     * 可用志愿者积分数量
+     */
+    private Integer integralAvailableVolunteer;
+
+    /**
+     * 冻结志愿者积分数量
+     */
+    private Integer integralFrozenVolunteer;
+
+    /**
+     * 居民积分数量
+     */
+    private Integer integralResident;
+
+    /**
+     * 可用居民积分数量
+     */
+    private Integer integralAvailableResident;
+
+    /**
+     * 冻结居民积分数量
+     */
+    private Integer integralFrozenResident;
+
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+
+    /**
+     * 上次积分变动时间
+     */
+    private Date updateAt;
+
+    /**
+     * 状态(1.启用 2.禁用)
+     */
+    private Integer status;
+
+    private Integer integralPartyTime;
+
+    @Override
+    public String toString() {
+        return "ComActIntegralUserDO{" + "id=" + id + ", userId=" + userId + ", communityId=" + communityId
+            + ", integralSum=" + integralSum + ", integralAvailableSum=" + integralAvailableSum + ", integralFrozenSum="
+            + integralFrozenSum + ", integralParty=" + integralParty + ", integralAvailableParty="
+            + integralAvailableParty + ", integralFrozenParty=" + integralFrozenParty + ", integralVolunteer="
+            + integralVolunteer + ", integralAvailableVolunteer=" + integralAvailableVolunteer
+            + ", integralFrozenVolunteer=" + integralFrozenVolunteer + ", integralResident=" + integralResident
+            + ", integralAvailableResident=" + integralAvailableResident + ", integralFrozenResident="
+            + integralFrozenResident + ", createAt=" + createAt + ", updateAt=" + updateAt + "}";
+    }
+
+    /**
+     * 状态(1.启用 2.禁用)
+     */
+    public interface status {
+        int yes = 1;
+        int no = 2;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/ComActIntegralUserChange.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/ComActIntegralUserChange.java
new file mode 100644
index 0000000..d5449ca
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/ComActIntegralUserChange.java
@@ -0,0 +1,193 @@
+package com.panzhihua.service_dangjian.entity;
+
+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;
+
+/**
+ * @auther lyq
+ * @create 2021-07-28 16:03:05
+ * @describe 用户积分账户变动记录实体类
+ */
+
+@Data
+@TableName("com_act_integral_user_change")
+public class ComActIntegralUserChange implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 积分账户id
+     */
+    private Long integralId;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 总积分数量变动前
+     */
+    private Integer integralSumTop;
+
+    /**
+     * 总积分数量变动后
+     */
+    private Integer integralSumBack;
+
+    /**
+     * 可用总积分数量变动前
+     */
+    private Integer integralAvailableSumTop;
+
+    /**
+     * 可用总积分数量变动后
+     */
+    private Integer integralAvailableSumBack;
+
+    /**
+     * 冻结总积分数量变动前
+     */
+    private Integer integralFrozenSumTop;
+
+    /**
+     * 冻结总积分数量变动后
+     */
+    private Integer integralFrozenSumBack;
+
+    /**
+     * 党员积分数量变动前
+     */
+    private Integer integralPartyTop;
+
+    /**
+     * 党员积分数量变动后
+     */
+    private Integer integralPartyBack;
+
+    /**
+     * 可用党员积分数量变动前
+     */
+    private Integer integralAvailablePartyTop;
+
+    /**
+     * 可用党员积分数量变动后
+     */
+    private Integer integralAvailablePartyBack;
+
+    /**
+     * 冻结党员积分数量变动前
+     */
+    private Integer integralFrozenPartyTop;
+
+    /**
+     * 冻结党员积分数量变动后
+     */
+    private Integer integralFrozenPartyBack;
+
+    /**
+     * 志愿者积分数量变动前
+     */
+    private Integer integralVolunteerTop;
+
+    /**
+     * 志愿者积分数量变动后
+     */
+    private Integer integralVolunteerBack;
+
+    /**
+     * 可用志愿者积分数量变动前
+     */
+    private Integer integralAvailableVolunteerTop;
+
+    /**
+     * 可用志愿者积分数量变动后
+     */
+    private Integer integralAvailableVolunteerBack;
+
+    /**
+     * 冻结志愿者积分数量变动前
+     */
+    private Integer integralFrozenVolunteerTop;
+
+    /**
+     * 冻结志愿者积分数量变动后
+     */
+    private Integer integralFrozenVolunteerBack;
+
+    /**
+     * 居民积分数量变动前
+     */
+    private Integer integralResidentTop;
+
+    /**
+     * 居民积分数量变动后
+     */
+    private Integer integralResidentBack;
+
+    /**
+     * 可用居民积分数量变动前
+     */
+    private Integer integralAvailableResidentTop;
+
+    /**
+     * 可用居民积分数量变动后
+     */
+    private Integer integralAvailableResidentBack;
+
+    /**
+     * 冻结居民积分数量变动前
+     */
+    private Integer integralFrozenResidentTop;
+
+    /**
+     * 冻结居民积分数量变动后
+     */
+    private Integer integralFrozenResidentBack;
+
+    /**
+     * 交易记录id
+     */
+    private Long serviceId;
+
+    /**
+     * 变动时间
+     */
+    private Date createAt;
+
+    @Override
+    public String toString() {
+        return "ComActIntegralUserChangeDO{" + "id=" + id + ", userId=" + userId + ", integralId=" + integralId
+            + ", communityId=" + communityId + ", integralSumTop=" + integralSumTop + ", integralSumBack="
+            + integralSumBack + ", integralAvailableSumTop=" + integralAvailableSumTop + ", integralAvailableSumBack="
+            + integralAvailableSumBack + ", integralFrozenSumTop=" + integralFrozenSumTop + ", integralFrozenSumBack="
+            + integralFrozenSumBack + ", integralPartyTop=" + integralPartyTop + ", integralPartyBack="
+            + integralPartyBack + ", integralAvailablePartyTop=" + integralAvailablePartyTop
+            + ", integralAvailablePartyBack=" + integralAvailablePartyBack + ", integralFrozenPartyTop="
+            + integralFrozenPartyTop + ", integralFrozenPartyBack=" + integralFrozenPartyBack
+            + ", integralVolunteerTop=" + integralVolunteerTop + ", integralVolunteerBack=" + integralVolunteerBack
+            + ", integralAvailableVolunteerTop=" + integralAvailableVolunteerTop + ", integralAvailableVolunteerBack="
+            + integralAvailableVolunteerBack + ", integralFrozenVolunteerTop=" + integralFrozenVolunteerTop
+            + ", integralFrozenVolunteerBack=" + integralFrozenVolunteerBack + ", integralResidentTop="
+            + integralResidentTop + ", integralResidentBack=" + integralResidentBack + ", integralAvailableResidentTop="
+            + integralAvailableResidentTop + ", integralAvailableResidentBack=" + integralAvailableResidentBack
+            + ", integralFrozenResidentTop=" + integralFrozenResidentTop + ", integralFrozenResidentBack="
+            + integralFrozenResidentBack + ", serviceId=" + serviceId + ", createAt=" + createAt + "}";
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/ComActIntegralUserTrade.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/ComActIntegralUserTrade.java
new file mode 100644
index 0000000..5740954
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/ComActIntegralUserTrade.java
@@ -0,0 +1,109 @@
+package com.panzhihua.service_dangjian.entity;
+
+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;
+
+/**
+ * @auther lyq
+ * @create 2021-07-28 16:03:18
+ * @describe 用户积分账户交易记录实体类
+ */
+
+@Data
+@TableName("com_act_integral_user_trade")
+public class ComActIntegralUserTrade implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 积分账户id
+     */
+    private Long integralId;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 交易业务id
+     */
+    private Long serviceId;
+
+    /**
+     * 交易业务类型(1.发布随手拍 2.发布微心愿 3.参与议事投票 4.社区活动-居民身份参与 " +
+     *             "5.社区活动-党员身份参与 6.社区活动-志愿者身份参与 7.参与调查问卷 8.取消活动 9.参与单位党员活动)
+     */
+    private Integer serviceType;
+
+    /**
+     * 交易积分数量
+     */
+    private Integer amount;
+
+    /**
+     * 变动类型(1.增加 2.减少)
+     */
+    private Integer changeType;
+
+    /**
+     * 交易备注
+     */
+    private String remark;
+
+    /**
+     * 交易身份类型(1.居民 2.党员 3.志愿者)
+     */
+    private Integer identityType;
+
+    /**
+     * 交易时间
+     */
+    private Date createAt;
+
+    /**
+     * 操作人id
+     */
+    private Long createBy;
+
+    @Override
+    public String toString() {
+        return "ComActIntegralUserTradeDO{" + "id=" + id + ", userId=" + userId + ", integralId=" + integralId
+            + ", communityId=" + communityId + ", serviceId=" + serviceId + ", serviceType=" + serviceType + ", amount="
+            + amount + ", changeType=" + changeType + ", remark=" + remark + ", identityType=" + identityType
+            + ", createAt=" + createAt + ", createBy=" + createBy + "}";
+    }
+
+    /**
+     * 变动类型(1.增加 2.减少)
+     */
+    public interface changeType {
+        int add = 1;
+        int reduce = 2;
+    }
+
+    /**
+     * 交易身份类型(1.居民 2.党员 3.志愿者)
+     */
+    public interface identityType {
+        int jm = 1;
+        int dy = 2;
+        int zyz = 3;
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/ComActProject.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/ComActProject.java
new file mode 100644
index 0000000..73d58c1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/ComActProject.java
@@ -0,0 +1,27 @@
+package com.panzhihua.service_dangjian.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@TableName("com_act_project")
+public class ComActProject {
+
+    private Long id;
+
+    private Long unitId;
+
+    private String unitName;
+
+    private String speciality;
+
+    private String project;
+
+    private String phone;
+
+    private String image;
+
+    private Date createTime;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/ComPbCheckUnit.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/ComPbCheckUnit.java
new file mode 100644
index 0000000..c2a9e5a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/ComPbCheckUnit.java
@@ -0,0 +1,107 @@
+package com.panzhihua.service_dangjian.entity;
+
+import java.util.Date;
+import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 党建-报到单位(ComPbCheckUnit)实体类
+ *
+ * @author lyq
+ * @since 2022-02-16 16:22:18
+ */
+@Data
+public class ComPbCheckUnit implements Serializable {
+    private static final long serialVersionUID = 877551680973276301L;
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+    /**
+     * 社区id
+     */
+    private Long communityId;
+    /**
+     * 单位名称
+     */
+    private String name;
+    /**
+     * 单位类别(1.国有企业 2.国有控股企业 3.外资企业 4.合资企业 5.私营企业 6.事业单位 7.国家行政机关 8.政府)
+     */
+    private Integer type;
+    /**
+     * 负责人
+     */
+    private String contacts;
+    /**
+     * 负责人联系电话
+     */
+    private String phone;
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+    /**
+     * 创建人id
+     */
+    private Long createBy;
+    /**
+     * 修改时间
+     */
+    private Date updateAt;
+    /**
+     * 修改人id
+     */
+    private Long updateBy;
+
+    /**
+     * 党组织名称
+     */
+    private String orgName;
+
+    /**
+     * 党组织logo
+     */
+    private String logo;
+
+    private Integer partyNum;
+
+    private String specialtyName;
+
+    private Long helpCommunityId;
+
+    private String helpCommunityName;
+
+    private String helpCommunityContacts;
+
+    private String helpCommunityContactsName;
+
+    private Long villageId;
+
+    private String villageName;
+
+    private String natureName;
+
+    private Integer natureId;
+
+    private String address;
+
+    private String adminName;
+
+    private String adminPhone;
+
+    private String otherRemark;
+
+    private String belongTo;
+
+    private String adminJson;
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/IntegratingTask.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/IntegratingTask.java
new file mode 100644
index 0000000..c128b7d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/IntegratingTask.java
@@ -0,0 +1,40 @@
+package com.panzhihua.service_dangjian.entity;
+
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("用户积分任务表")
+public class IntegratingTask
+{
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "是否领取1未领取   2完成")
+    private String isDraw;
+
+    @ApiModelProperty(value = "状态 11花城登录  12 查看问题清单 13查看需求清单  14 查看报道服务活动  15查看微心愿  16 查看随手拍  18 上传“随手拍”或“微心愿")
+    private String status;
+
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/NewFightConfig.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/NewFightConfig.java
new file mode 100644
index 0000000..3d581ee
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/NewFightConfig.java
@@ -0,0 +1,58 @@
+package com.panzhihua.service_dangjian.entity;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("社区商家配置")
+public class NewFightConfig implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+    @ApiModelProperty(value = "兑换地址")
+    private String address;
+
+    @ApiModelProperty(value = "纬度")
+    private String lat;
+
+    @ApiModelProperty(value = "经度")
+    private String lng;
+
+    @ApiModelProperty(value = "兑换状态(1每天  2周一到周五   3周末)")
+    private String businessType;
+
+    @ApiModelProperty(value = "兑换开始时间")
+    private String businessStartTime;
+
+    @ApiModelProperty(value = "兑换结束时间")
+    private String businessEndTime;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/NewFightConvenientMerchant.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/NewFightConvenientMerchant.java
new file mode 100644
index 0000000..2f0f61f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/NewFightConvenientMerchant.java
@@ -0,0 +1,100 @@
+package com.panzhihua.service_dangjian.entity;
+
+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 com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @title: ConvenientMerchantDO
+ * 服务商家DO
+ * @author: hans
+ * @date: 2021/09/16 16:04
+ */
+@Data
+@TableName(value = "new_fight_com_convenient_merchants")
+public class NewFightConvenientMerchant implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+//    @TableId(type = IdType.AUTO)
+    @ApiModelProperty("商家ID")
+    private String id;
+
+    @ApiModelProperty("商家名称")
+    private String name;
+
+    @ApiModelProperty("商家logo")
+    private String logo;
+
+    @ApiModelProperty("联系人")
+    private String contacts;
+
+    @ApiModelProperty("咨询电话")
+    private String phone;
+
+    @ApiModelProperty("商家地址")
+    private String address;
+
+    @ApiModelProperty("纬度")
+    private String lat;
+
+    @ApiModelProperty("经度")
+    private String lon;
+
+    @ApiModelProperty("商家详细地址")
+    private String detailedAddress;
+
+
+    @ApiModelProperty("商家介绍")
+    private String introduction;
+
+
+    @ApiModelProperty("是否删除")
+    private String isDel;
+
+
+    @ApiModelProperty("创建时间")
+    @JsonFormat(pattern = "HH:mm:ss", timezone = "GMT+8")
+    private Date createdAt;
+
+
+    @ApiModelProperty("创建人")
+    private String createdBy;
+
+
+    @ApiModelProperty("更新时间")
+    @JsonFormat(pattern = "HH:mm:ss", timezone = "GMT+8")
+    private Date updatedAt;
+
+
+
+
+    @ApiModelProperty("商家图片")
+    private String imgUrl;
+
+    @ApiModelProperty("1启用   2禁用")
+    private String status;
+
+    @ApiModelProperty("营业积分")
+    private String businessCredit="0";
+
+    @ApiModelProperty("社区id")
+    private String communityId;
+
+    @ApiModelProperty("绑定用户")
+    private String userId;
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/NewFightShopping.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/NewFightShopping.java
new file mode 100644
index 0000000..e9bc025
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/NewFightShopping.java
@@ -0,0 +1,71 @@
+package com.panzhihua.service_dangjian.entity;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("商城商品表")
+public class NewFightShopping implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "商品名称")
+    private String goodName;
+
+    @ApiModelProperty(value = "商品价格")
+    private String goodPrice;
+
+    @ApiModelProperty(value = "商品状态(0下架  1上架)")
+    private String goodType;
+
+    @ApiModelProperty(value = "商品封面")
+    private String coverImgUrl;
+
+    @ApiModelProperty(value = "商品详情内容")
+    private String content;
+
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+    @ApiModelProperty(value = "创建时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+
+    @ApiModelProperty(value = "地址")
+    private String address;
+
+    @ApiModelProperty(value = "纬度")
+    private String lat;
+
+    @ApiModelProperty(value = "经度")
+    private String lng;
+
+    @ApiModelProperty(value = "兑换状态(1每天  2周一到周五   3周末)")
+    private String businessType;
+
+    @ApiModelProperty(value = "兑换开始时间")
+    private String businessStartTime;
+
+    @ApiModelProperty(value = "兑换结束时间")
+    private String businessEndTime;
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/NewFightShoppingOrder.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/NewFightShoppingOrder.java
new file mode 100644
index 0000000..7c86e86
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/NewFightShoppingOrder.java
@@ -0,0 +1,102 @@
+package com.panzhihua.service_dangjian.entity;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("商城订单表")
+public class NewFightShoppingOrder implements Serializable {
+    private static final long serialVersionUID = -70884515430727555L;
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "订单号")
+    private String orderNumber;
+
+    @ApiModelProperty(value = "商品id")
+    private String goodsId;
+
+    @ApiModelProperty(value = "下单人id")
+    private String userId;
+
+    @ApiModelProperty(value = "核销状态(0待核销  1已核销  2订单已取消)")
+    private String cancelType;
+
+    @ApiModelProperty(value = "核销时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date cancelTime;
+
+    @ApiModelProperty(value = "支付金额")
+    private String palyMoney;
+
+    @ApiModelProperty(value = "创建时间(兑换时间)")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date creationTime;
+
+    @ApiModelProperty(value = "更新时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+
+
+    @ApiModelProperty(value = "取消时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date abolishTime;
+
+
+    @ApiModelProperty(value = "商品名称")
+    private String goodName;
+
+    @ApiModelProperty(value = "商品价格")
+    private String goodPrice;
+
+    @ApiModelProperty(value = "商品图片")
+    private String coverImgUrl;
+
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    @ApiModelProperty(value = "电话")
+    private String phone;
+
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+    @ApiModelProperty(value = "兑换地址")
+    private String address;
+
+    @ApiModelProperty(value = "纬度")
+    private String lat;
+
+    @ApiModelProperty(value = "经度")
+    private String lng;
+
+    @ApiModelProperty(value = "商家id")
+    private String merchantId;
+
+    @ApiModelProperty(value = "订单类型  1 线上订单    2线下商家订单")
+    private String orderType;
+
+    @ApiModelProperty(value = "兑换状态(1每天  2周一到周五   3周末)")
+    private String businessType;
+
+    @ApiModelProperty(value = "备注")
+    private String remark;
+
+    @ApiModelProperty(value = "兑换开始时间")
+    private String businessStartTime;
+
+    @ApiModelProperty(value = "兑换结束时间")
+    private String businessEndTime;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/UserIntegral.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/UserIntegral.java
new file mode 100644
index 0000000..50f6f17
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/UserIntegral.java
@@ -0,0 +1,75 @@
+package com.panzhihua.service_dangjian.entity;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("用户积分表")
+public class UserIntegral
+{
+
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+
+    @ApiModelProperty(value = "总积分数量")
+    private String integralSum;
+
+    @ApiModelProperty(value = "可用总积分数量")
+    private String integralAvailableSum;
+
+    @ApiModelProperty(value = "冻结总积分数量")
+    private String integralFrozenSum;
+
+    @ApiModelProperty(value = "党员积分数量")
+    private String integralParty;
+
+    @ApiModelProperty(value = "可用党员积分数量")
+    private String integralAvailableParty;
+
+    @ApiModelProperty(value = "冻结党员积分数量")
+    private String integralFrozenParty;
+
+    @ApiModelProperty(value = "志愿者积分数量")
+    private String integralVolunteer;
+
+    @ApiModelProperty(value = "可用志愿者积分数量")
+    private String integralAvailableVolunteer;
+
+    @ApiModelProperty(value = "冻结志愿者积分数量")
+    private String integralFrozenVolunteer;
+
+    @ApiModelProperty(value = "居民积分数量")
+    private String integralResident;
+
+    @ApiModelProperty(value = "可用居民积分数量")
+    private String integralAvailableResident;
+
+    @ApiModelProperty(value = "冻结居民积分数量")
+    private String integralFrozenResident;
+
+    @ApiModelProperty(value = "创建时间")
+    private String createAt;
+
+    @ApiModelProperty(value = "'上次积分变动时间'")
+    private String updateAt;
+
+    @ApiModelProperty(value = "状态(1.启用 2.禁用)")
+    private String status;
+
+    @ApiModelProperty(value = "'时长'")
+    private String integralPartyTime;
+
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/UserTrade.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/UserTrade.java
new file mode 100644
index 0000000..5eba90e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/entity/UserTrade.java
@@ -0,0 +1,53 @@
+package com.panzhihua.service_dangjian.entity;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("用户积分记录表")
+public class UserTrade
+{
+    @ApiModelProperty(value = "主键")
+    private String id;
+
+    @ApiModelProperty(value = "用户id")
+    private String userId;
+
+    @ApiModelProperty(value = "积分账户id")
+    private String integralId;
+
+    @ApiModelProperty(value = "社区id")
+    private String communityId;
+
+    @ApiModelProperty(value = "交易业务id")
+    private String serviceId;
+
+    @ApiModelProperty(value = "交易业务类型(1.发布随手拍 2.发布微心愿 3.参与议事投票 4.参与志愿者活动 5.参与社区活动 6.参与党员活动 " +
+            "7.参与调查问卷 8.活动签到 9商城积分兑换  10商家线下积分兑换  11花城登录  12 查看问题清单  13查看需求清单  14 查看报道服务活动" +
+            "  15查看微心愿  16 查看随手拍   17 每日签到 18 上传“随手拍”或“微心愿) 19 完成需求任务   20完成问题任务")
+    private String serviceType;
+
+    @ApiModelProperty(value = "交易积分数量")
+    private String amount;
+
+    @ApiModelProperty(value = "变动类型(1.增加  2.减少)")
+    private String changeType;
+
+    @ApiModelProperty(value = "交易备注")
+    private String remark;
+
+    @ApiModelProperty(value = "交易身份类型(1.居民 2.党员 3.志愿者)")
+    private String identityType;
+
+    @ApiModelProperty(value = "操作人id")
+    private String createBy;
+}
+
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbActivityDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbActivityDO.java
new file mode 100644
index 0000000..dfc7aa6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbActivityDO.java
@@ -0,0 +1,105 @@
+package com.panzhihua.service_dangjian.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党员活动
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 17:54
+ **/
+@Data
+@TableName(value = "com_pb_activity")
+public class ComPbActivityDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 活动名称
+     */
+    private String name;
+
+    /**
+     * 活动地点
+     */
+    private String address;
+
+    /**
+     * 1 待发布 2 未开始 3 报名中 4 进行中 5 已结束 6 已取消
+     */
+    private Integer status;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 活动开始时间
+     */
+    private Date activityTimeBegin;
+
+    /**
+     * 活动结束时间
+     */
+    private Date activityTimeEnd;
+
+    /**
+     * 报名开始时间
+     */
+    private Date enrollTimeBegin;
+
+    /**
+     * 报名结束时间
+     */
+    private Date enrollTimeEnd;
+
+    /**
+     * 活动参入人数
+     */
+    private Integer participationNum;
+
+    /**
+     * 活动封面
+     */
+    private String cover;
+
+    /**
+     * 活动内容-富文本
+     */
+    private String richText;
+    /**
+     * 活动最低参入人数-未达到到时间自动取消
+     */
+    private Integer participationLowestNum;
+
+    /**
+     * 取消原因
+     */
+    private String cancelReason;
+
+    /**
+     * 发布人
+     */
+    private Long createBy;
+
+    /**
+     * 发布时间
+     */
+    private Date releaseTime;
+    /**
+     * 社区id
+     */
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbActivityMemberDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbActivityMemberDO.java
new file mode 100644
index 0000000..3c5d672
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbActivityMemberDO.java
@@ -0,0 +1,57 @@
+package com.panzhihua.service_dangjian.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 活动成员
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-01 10:02
+ **/
+@Data
+@TableName(value = "com_pb_activity_member")
+public class ComPbActivityMemberDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 党员活动id
+     */
+    private Long activityId;
+
+    /**
+     * 党员id
+     */
+    private Long memberId;
+
+    /**
+     * 用户ID
+     */
+    private Long userId;
+
+    /**
+     * 姓名
+     */
+    private String name;
+
+    /**
+     * 头像图片路径
+     */
+    private String photoPath;
+
+    /**
+     * 报名时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbDynDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbDynDO.java
new file mode 100644
index 0000000..315585e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbDynDO.java
@@ -0,0 +1,94 @@
+package com.panzhihua.service_dangjian.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党建动态/政策文件
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-01 15:47
+ **/
+@Data
+@TableName(value = "com_pb_dyn")
+public class ComPbDynDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 党建动态id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 标题
+     */
+    private String title;
+
+    /**
+     * 状态 1 待发布 2 已发布
+     */
+    private Integer status;
+
+    /**
+     * 发布时间
+     */
+    private Date publishAt;
+
+    /**
+     * 封面url
+     */
+    @TableField(value = "cover", updateStrategy = FieldStrategy.IGNORED)
+    private String cover;
+
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+
+    /**
+     * 内容
+     */
+    private String content;
+
+    /**
+     * 党员表创建人主键id
+     */
+    private Long createBy;
+    /**
+     * 1动态 2政策文件
+     */
+    private Integer type;
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 动态分类:1-党建动态 2-党员帮扶 3-党员示范
+     */
+    private Integer dynType;
+
+    /**
+     * 封面模式:1-小图展示 2-大图展示
+     */
+    private Integer coverMode;
+
+    /**
+     * 跳转链接
+     */
+    private String jumpUrl;
+    /**
+     * 跳转状态
+     */
+
+    private Integer jumpType;
+    /**
+     * 政策分类: 1-社工人才政策 2-社会组织培育政策 3-其他政策
+     */
+    private Integer policyType;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbDynUserDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbDynUserDO.java
new file mode 100644
index 0000000..863418c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbDynUserDO.java
@@ -0,0 +1,43 @@
+package com.panzhihua.service_dangjian.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 lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党员动态阅读记录表
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-02 10:17
+ **/
+@Data
+@TableName(value = "com_pb_dyn_user")
+public class ComPbDynUserDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 党员动态id
+     */
+    private Long dynId;
+
+    /**
+     * 党员id
+     */
+    private Long userId;
+
+    /**
+     * 阅读时间
+     */
+    private Date createAt;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbMemberDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbMemberDO.java
new file mode 100644
index 0000000..006f624
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbMemberDO.java
@@ -0,0 +1,169 @@
+package com.panzhihua.service_dangjian.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+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;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党员
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 10:48
+ **/
+@Data
+@TableName("com_pb_member")
+public class ComPbMemberDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 党员在表中的id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 所属党组织id
+     */
+    private Long orgId;
+
+    /**
+     * 身份证号
+     */
+    private String idCard;
+
+    /**
+     * 姓名
+     */
+    private String name;
+
+    /**
+     * 头像图片路径
+     */
+    private String photoPath;
+
+    /**
+     * 入党时间
+     */
+    private Date joinTime;
+
+    /**
+     * 转正时间
+     */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private Date employmentTime;
+
+    /**
+     * 党员审查结果
+     */
+    private Integer auditResult;
+
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+
+    /**
+     * 修改时间
+     */
+    private Date updateAt;
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 驳回原因
+     */
+    private String refuseReason;
+
+    /**
+     * 手机号
+     */
+    private String phone;
+
+    /**
+     * 党员类型(1.预备党员 2.正式党员)
+     */
+    private Integer type;
+
+    /**
+     * 职位
+     */
+    private String position;
+
+    /**
+     * 报道单位id
+     */
+    private Long checkUnitId;
+
+    /**
+     * 职能
+     */
+    @TableField("`function`")
+    private String function;
+
+    /**
+     * 特长类别(1.体育类 2.舞蹈类 3.音乐类 4.美术类 5.其他)
+     */
+    private Integer specialtyCategory;
+
+    /**
+     * 特长描述
+     */
+    private String specialtyName;
+
+    /**
+     * 职位2
+     */
+    private String positionTwo;
+
+    /**
+     * 党组织名字
+     */
+    private String orgName;
+
+    private Long helpCommunityId;
+
+    private Long villageId;
+
+    private String natureName;
+
+    private Integer natureId;
+
+    private String otherRemark;
+
+    private String helpCommunityName;
+
+    private String communityName;
+
+
+    /**
+     * 党员审查结果 0待审核 1 审核通过 3审核失败
+     */
+    public interface AuditResult {
+        int DSH = 0;
+        int SHTG = 1;
+        int SHBH = 3;
+    }
+
+    /**
+     * 党员类型(1.预备党员 2.正式党员)
+     */
+    public interface Type {
+        int YBDY = 1;
+        int ZSDY = 2;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbMemberRoleDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbMemberRoleDO.java
new file mode 100644
index 0000000..600bf5e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbMemberRoleDO.java
@@ -0,0 +1,137 @@
+package com.panzhihua.service_dangjian.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.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党委
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-01 14:35
+ **/
+@Data
+@TableName("com_pb_member_role")
+public class ComPbMemberRoleDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 电话
+     */
+    private String phone;
+
+    /**
+     * 是否注册
+     */
+    private Integer isReg;
+
+    /**
+     * 姓名
+     */
+    private String name;
+
+    /**
+     * 性别
+     */
+    private Integer sex;
+
+    /**
+     * 出生日期
+     */
+    private Date birthTime;
+
+    /**
+     * 职位
+     */
+    private String position;
+
+    /**
+     * 职位2
+     */
+    private String positionTwo;
+
+    /**
+     * 岗位职责
+     */
+    private String jobResponsibilities;
+
+    /**
+     * 头像图片路径
+     */
+    private String photoPath;
+
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+
+    /**
+     * 修改时间
+     */
+    private Date updateAt;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 党委标签(1.社区党委 2.区域党委委员)
+     */
+    private Integer type;
+
+    /**
+     * 入党时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date joinTime;
+
+    /**
+     * 转正时间
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date employmentTime;
+
+    /**
+     * 职能
+     */
+    private String function;
+
+    /**
+     * 特长类别(1.体育类 2.舞蹈类 3.音乐类 4.美术类 5.其他)
+     */
+    private Integer specialtyCategory;
+
+    /**
+     * 特长描述
+     */
+    private String specialtyName;
+
+    /**
+     * 报道单位id
+     */
+    private Long checkUnitId;
+
+    /**
+     * 负责党组织id
+     */
+    private Long orgId;
+
+    /**
+     * 身份证
+     */
+    private String idCard;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbMemberWestDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbMemberWestDO.java
new file mode 100644
index 0000000..06a04dc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbMemberWestDO.java
@@ -0,0 +1,149 @@
+package com.panzhihua.service_dangjian.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+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;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党员
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 10:48
+ **/
+@Data
+@TableName("com_pb_member_west")
+public class ComPbMemberWestDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 党员在表中的id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 所属党组织id
+     */
+    private Long orgId;
+
+    /**
+     * 身份证号
+     */
+    private String idCard;
+
+    /**
+     * 姓名
+     */
+    private String name;
+
+    /**
+     * 头像图片路径
+     */
+    private String photoPath;
+
+    /**
+     * 入党时间
+     */
+    private Date joinTime;
+
+    /**
+     * 转正时间
+     */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private Date employmentTime;
+
+    /**
+     * 党员审查结果
+     */
+    private Integer auditResult;
+
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+
+    /**
+     * 修改时间
+     */
+    private Date updateAt;
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 驳回原因
+     */
+    private String refuseReason;
+
+    /**
+     * 手机号
+     */
+    private String phone;
+
+    /**
+     * 党员类型(1.预备党员 2.正式党员)
+     */
+    private Integer type;
+
+    /**
+     * 职位
+     */
+    private String position;
+
+    /**
+     * 报道单位id
+     */
+    private Long checkUnitId;
+
+    /**
+     * 职能
+     */
+    @TableField("`function`")
+    private String function;
+
+    /**
+     * 特长类别(1.体育类 2.舞蹈类 3.音乐类 4.美术类 5.其他)
+     */
+    private Integer specialtyCategory;
+
+    /**
+     * 特长描述
+     */
+    private String specialtyName;
+
+    /**
+     * 职位2
+     */
+    private String positionTwo;
+
+    /**
+     * 党员审查结果 0待审核 1 审核通过 3审核失败
+     */
+    public interface AuditResult {
+        int DSH = 0;
+        int SHTG = 1;
+        int SHBH = 3;
+    }
+
+    /**
+     * 党员类型(1.预备党员 2.正式党员)
+     */
+    public interface Type {
+        int YBDY = 1;
+        int ZSDY = 2;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbOrgDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbOrgDO.java
new file mode 100644
index 0000000..659d711
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbOrgDO.java
@@ -0,0 +1,129 @@
+package com.panzhihua.service_dangjian.model.dos;
+
+import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党组织
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 11:34
+ **/
+@Data
+@TableName("com_pb_org")
+public class ComPbOrgDO implements Serializable {
+
+    /**
+     * 党组织id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 党组织等级
+     */
+    private Integer level;
+
+    /**
+     * 父节点id
+     */
+    private Long parentId;
+
+    /**
+     * 组织名称
+     */
+    private String name;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+    /**
+     * 状态 1 启用 2 禁用
+     */
+    private Integer status;
+
+    /**
+     * 组织类别(1.基层党委 2.二级基层党委 3.党总支 4.党支部 5.党小组)
+     */
+    private Integer type;
+    /**
+     * 组织隶属(1.乡镇 2.机关 3.域市街道 3.域市社区(居委会) 4.农村社区居委会 5.建制村 6.国有经济控制 7.集体经济控制 8.非公有经济控制 9.事业单位 10.社会组织 11.其他)
+     */
+    private Integer subjection;
+    /**
+     * 小区id
+     */
+    private Long areaId;
+    /**
+     * 楼栋id
+     */
+    private Long buildId;
+    /**
+     * 组织地址
+     */
+    private String address;
+    /**
+     * 经度
+     */
+    private String longitude;
+    /**
+     * 纬度
+     */
+    private String latitude;
+    /**
+     * 一级id
+     */
+    private Long oneId;
+    /**
+     * 二级id
+     */
+    private Long twoId;
+    /**
+     * 三级id
+     */
+    private Long thirdId;
+    /**
+     * 四级id
+     */
+    private Long fourId;
+    /**
+     * 五级id
+     */
+    private Long fiveId;
+
+    /**
+     * 组织类别(1.基层党委 2.二级基层党委 3.党总支 4.党支部 5.党小组)
+     */
+    public interface Type{
+        int JCDW = 1;
+        int EJJCDW = 2;
+        int DZZ = 3;
+        int DZB = 4;
+        int DXZ = 5;
+    }
+
+    /**
+     * 组织隶属(1.乡镇 2.机关 3.域市街道 4.域市社区(居委会) 5.农村社区居委会 6.建制村 7.国有经济控制 8.集体经济控制
+     * 9.非公有经济控制 10.事业单位 11.社会组织 12.其他)
+     */
+    public interface Subjection{
+        int XZ = 1;
+        int JG = 2;
+        int YSJD = 3;
+        int YSSQ = 4;
+        int NCSQJWH = 5;
+        int JZC = 6;
+        int GYJJKZ = 7;
+        int JTJJKZ = 8;
+        int FGYJJKZ = 9;
+        int SYDW = 10;
+        int SHZZ = 11;
+        int QT = 12;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbServiceTeamDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbServiceTeamDO.java
new file mode 100644
index 0000000..7cbdb46
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/model/dos/ComPbServiceTeamDO.java
@@ -0,0 +1,78 @@
+package com.panzhihua.service_dangjian.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 服务团队
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-21 17:36
+ **/
+@Data
+@TableName("com_pb_service_team")
+public class ComPbServiceTeamDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 姓名
+     */
+    private String name;
+
+    /**
+     * 职位
+     */
+    private String job;
+    /**
+     * 职位2
+     */
+    private String jobTwo;
+    /**
+     * 岗位职责
+     */
+    private String jobResponsibilities;
+
+    /**
+     * 照片
+     */
+    private String url;
+
+    /**
+     * create_at
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 电话
+     */
+    private String phone;
+    /**
+     * 是否注册
+     */
+    private Integer isReg;
+    /**
+     * 身份证号码
+     */
+    private String cardNo;
+    /**
+     * 所属物业公司Id
+     * */
+    private Long propertyId;
+    private Integer type;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/ComActIntegralUserChangeDAOService.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/ComActIntegralUserChangeDAOService.java
new file mode 100644
index 0000000..6f8c46a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/ComActIntegralUserChangeDAOService.java
@@ -0,0 +1,83 @@
+package com.panzhihua.service_dangjian.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_dangjian.entity.ComActIntegralUserChange;
+
+/**
+ * @auther lyq
+ * @create 2021-07-28 16:03:05
+ * @describe 用户积分账户变动记录服务类
+ */
+public interface ComActIntegralUserChangeDAOService extends IService<ComActIntegralUserChange> {
+
+    /**
+     * 添加用户积分账户变动记录
+     * 
+     * @param userId
+     *            用户id
+     * @param integralId
+     *            积分账户id
+     * @param communityId
+     *            社区id
+     * @param integralSumTop
+     *            总积分数量变动前
+     * @param integralSumBack
+     *            总积分数量变动后
+     * @param integralAvailableSumTop
+     *            可用总积分数量变动前
+     * @param integralAvailableSumBack
+     *            可用总积分数量变动后
+     * @param integralFrozenSumTop
+     *            冻结总积分数量变动前
+     * @param integralFrozenSumBack
+     *            冻结总积分数量变动后
+     * @param integralPartyTop
+     *            党员积分数量变动前
+     * @param integralPartyBack
+     *            党员积分数量变动后
+     * @param integralAvailablePartyTop
+     *            可用党员积分数量变动前
+     * @param integralAvailablePartyBack
+     *            可用党员积分数量变动后
+     * @param integralFrozenPartyTop
+     *            冻结党员积分数量变动前
+     * @param integralFrozenPartyBack
+     *            冻结党员积分数量变动后
+     * @param integralVolunteerTop
+     *            志愿者积分数量变动前
+     * @param integralVolunteerBack
+     *            志愿者积分数量变动后
+     * @param integralAvailableVolunteerTop
+     *            可用志愿者积分数量变动前
+     * @param integralAvailableVolunteerBack
+     *            可用志愿者积分数量变动后
+     * @param integralFrozenVolunteerTop
+     *            冻结志愿者积分数量变动前
+     * @param integralFrozenVolunteerBack
+     *            冻结志愿者积分数量变动后
+     * @param integralResidentTop
+     *            居民积分数量变动前
+     * @param integralResidentBack
+     *            居民积分数量变动后
+     * @param integralAvailableResidentTop
+     *            可用居民积分数量变动前
+     * @param integralAvailableResidentBack
+     *            可用居民积分数量变动后
+     * @param integralFrozenResidentTop
+     *            冻结居民积分数量变动前
+     * @param integralFrozenResidentBack
+     *            冻结居民积分数量变动后
+     * @param serviceId
+     *            交易记录id
+     */
+    void addIntegralUserChangeRecord(Long userId, Long integralId, Long communityId, Integer integralSumTop,
+        Integer integralSumBack, Integer integralAvailableSumTop, Integer integralAvailableSumBack,
+        Integer integralFrozenSumTop, Integer integralFrozenSumBack, Integer integralPartyTop,
+        Integer integralPartyBack, Integer integralAvailablePartyTop, Integer integralAvailablePartyBack,
+        Integer integralFrozenPartyTop, Integer integralFrozenPartyBack, Integer integralVolunteerTop,
+        Integer integralVolunteerBack, Integer integralAvailableVolunteerTop, Integer integralAvailableVolunteerBack,
+        Integer integralFrozenVolunteerTop, Integer integralFrozenVolunteerBack, Integer integralResidentTop,
+        Integer integralResidentBack, Integer integralAvailableResidentTop, Integer integralAvailableResidentBack,
+        Integer integralFrozenResidentTop, Integer integralFrozenResidentBack, Long serviceId);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/ComActIntegralUserTradeDaoService.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/ComActIntegralUserTradeDaoService.java
new file mode 100644
index 0000000..2700e81
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/ComActIntegralUserTradeDaoService.java
@@ -0,0 +1,42 @@
+package com.panzhihua.service_dangjian.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_dangjian.entity.ComActIntegralUserTrade;
+
+/**
+ * @auther lyq
+ * @create 2021-07-28 16:03:18
+ * @describe 用户积分账户交易记录服务类
+ */
+public interface ComActIntegralUserTradeDaoService extends IService<ComActIntegralUserTrade> {
+
+
+    /**
+     * 添加用户积分交易记录
+     * 
+     * @param userId
+     *            用户id
+     * @param integralId
+     *            积分账户id
+     * @param communityId
+     *            社区id
+     * @param serviceId
+     *            交易业务id
+     * @param serviceType
+     *            交易业务类型(1.发布随手拍 2.发布微心愿 3.参与议事投票 4.社区活动-居民身份参与 " +
+     *             "5.社区活动-党员身份参与 6.社区活动-志愿者身份参与 7.参与调查问卷 8.取消活动 9.参与单位党员活动)
+     * @param amount
+     *            交易积分数量
+     * @param changeType
+     *            变动类型(1.增加 2.减少)
+     * @param remark
+     *            交易备注
+     * @param identityType
+     *            交易身份类型(1.居民 2.党员 3.志愿者)
+     * @param createBy
+     *            操作人id
+     */
+    Long addIntegralTradeRecord(Long userId, Long integralId, Long communityId, Long serviceId, Integer serviceType,
+        Integer amount, Integer changeType, String remark, Integer identityType, Long createBy);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/ComActIntegralUsersService.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/ComActIntegralUsersService.java
new file mode 100644
index 0000000..47b0233
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/ComActIntegralUsersService.java
@@ -0,0 +1,11 @@
+package com.panzhihua.service_dangjian.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.partybuilding.NewFightIntegral;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_dangjian.entity.ComActIntegralUser;
+
+public interface ComActIntegralUsersService  extends IService<ComActIntegralUser>
+{
+    R upIntegral(NewFightIntegral item);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/ComBpActivityService.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/ComBpActivityService.java
new file mode 100644
index 0000000..d778476
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/ComBpActivityService.java
@@ -0,0 +1,168 @@
+package com.panzhihua.service_dangjian.service;
+
+import com.panzhihua.common.model.dtos.partybuilding.ActivitySignUpDTO;
+import com.panzhihua.common.model.dtos.partybuilding.ComPbActivityDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.partybuilding.PageActivityMembersVO;
+import com.panzhihua.common.model.vos.partybuilding.PartyBuildingActivityVO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党员活动
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-01 09:16
+ **/
+public interface ComBpActivityService {
+
+    /**
+     * 查询某个党员加入的所有党员活动
+     * 
+     * @param partyBuildingActivityVO
+     *            查询参数
+     * @return 活动集合
+     */
+    R listPartyMemberActivities(PartyBuildingActivityVO partyBuildingActivityVO);
+
+    /**
+     * 活动报名名单分页查询
+     * 
+     * @param pageActivityMembersVO
+     *            查询参数 手机号 名字
+     * @return 分页数据
+     */
+    R pageActivityMembers(PageActivityMembersVO pageActivityMembersVO);
+
+    /**
+     * 党员活动详情
+     * 
+     * @param id
+     *            活动id
+     * @return 活动详情内容
+     */
+    R activityinfo(Long id, Long userId);
+
+    /**
+     * 新增党员活动
+     * 
+     * @param partyBuildingActivityVO
+     *            参数
+     * @return 新增结果
+     */
+    R addactivity(PartyBuildingActivityVO partyBuildingActivityVO);
+
+    /**
+     * 编辑党员活动
+     * 
+     * @param partyBuildingActivityVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    R updateActivity(PartyBuildingActivityVO partyBuildingActivityVO);
+
+    /**
+     * 发布党员活动
+     * 
+     * @param id
+     *            主键id
+     * @return 发布结果
+     */
+    R releaseActivity(Long id);
+
+    /**
+     * 删除党员活动
+     * 
+     * @param id
+     *            主键id
+     * @return 删除结果
+     */
+    R deleteActivity(Long id);
+
+    /**
+     * 分页查询党员活动
+     * 
+     * @param partyBuildingActivityVO
+     *            查询条件
+     * @return 查询结果
+     */
+    R pageActivity(PartyBuildingActivityVO partyBuildingActivityVO);
+
+    /**
+     * 取消活动
+     * 
+     * @param partyBuildingActivityVO
+     *            取消原因
+     * @return 操作结果
+     */
+    R cancelActivity(PartyBuildingActivityVO partyBuildingActivityVO);
+
+    /**
+     * 用户的所有党建活动
+     * 
+     * @param userId
+     *            用户id
+     * @param communityId
+     *            社区id
+     * @param status
+     * @return 党建活动列表
+     */
+    R listActivity(Long userId, Long communityId, Integer status);
+
+    /**
+     * 党员活动人员参入列表
+     * 
+     * @param id
+     *            活动id
+     * @return 党员集合
+     */
+    R listPartyBuildingMember(Long id);
+
+    /**
+     * 报名、取消报名党员活动
+     * 
+     * @param activitySignUpDTO
+     *            操作参数
+     * @return 操作结果
+     */
+    R putActivitySignUp(ActivitySignUpDTO activitySignUpDTO);
+
+    /**
+     * 获取党建活动所有参入人员的id集合
+     * 
+     * @param id
+     *            党建活动id
+     * @return 人员id集合
+     */
+    R selectAllPartyBuildingActivityMembers(Long id);
+
+    /**
+     * 定时任务取消党建活动
+     * 
+     * @return 党建活动集合
+     */
+    R timedTaskPartyBuildingActivity();
+
+    /**
+     * 定时任务刷新党建活动的各个状态 除取消外
+     * 
+     * @return 修改结果
+     */
+    R timedTaskPartyBuildingActivityAll();
+
+    /**
+     * 创建党员活动 小程序创建党员活动
+     * 
+     * @param comPbActivityDTO
+     *            创建内容
+     * @return 创建结果
+     */
+    R addActivityApplets(ComPbActivityDTO comPbActivityDTO);
+
+    /**
+     * 根据党员活动id查询活动下报名人员
+     * 
+     * @param activityId
+     *            党员活动id
+     * @return 活动下报名人员
+     */
+    R getTaskPbActivityPeopleList(Long activityId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/ComPbCheckUnitService.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/ComPbCheckUnitService.java
new file mode 100644
index 0000000..0f0de10
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/ComPbCheckUnitService.java
@@ -0,0 +1,141 @@
+package com.panzhihua.service_dangjian.service;
+
+import com.panzhihua.common.model.dtos.common.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.TreeListVO;
+import com.panzhihua.common.model.vos.partybuilding.excel.ComPbCheckUnitExcelVO;
+
+import java.util.List;
+
+/**
+ * title: 党建-报到单位表服务接口
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 党建-报到单位表服务接口
+ *
+ * @author lyq
+ * @date 2022-02-16 16:22:26
+ */
+public interface ComPbCheckUnitService {
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comPbCheckUnit 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-02-16 16:22:26
+     */
+    R queryByPage(PageComPbCheckUnitDto comPbCheckUnit);
+
+    R treeList(TreeListVO treeListVO);
+
+    R orgList();
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comPbCheckUnit 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-02-16 16:22:26
+     */
+    R insert(AddComPbCheckUnitDto comPbCheckUnit);
+
+    /**
+     * description  update  修改数据
+     *
+     * @param comPbCheckUnit 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-02-16 16:22:26
+     */
+    R update(EditComPbCheckUnitDto comPbCheckUnit);
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-02-16 16:22:26
+     */
+    R deleteById(Long id);
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-02-16 16:22:26
+     */
+    R detailById(Long id);
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comPbCheckUnit 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-02-16 16:22:26
+     */
+    R queryByList(PageComPbCheckUnitDto comPbCheckUnit);
+
+    /**
+     * 批量导入报道单位
+     * @param list  导入数据
+     * @param communityId   社区id
+     * @param userId    用户id
+     * @return  导入结果
+     */
+    R importCheckUnit(List<ComPbCheckUnitExcelVO> list, Long communityId, Long userId);
+
+    /**
+     * 手机号查询单位详情
+     * @param phone
+     * @return
+     */
+    R detailByPhone(String phone);
+
+    /**
+     * 报到单位统计-顶部数据
+     * @param communityId
+     * @param belongTo
+     * @param choice
+     * @return
+     */
+    R unitStatisticsTop(Long communityId, String belongTo, String choice,Long[] unitIds,String yearTime);
+
+    /**
+     * 报到单位统计
+     * @param commonDto
+     * @return
+     */
+    R unitStatistics(PagePbCheckUnitCommonDto commonDto);
+
+    /**
+     * 报到党员统计-顶部数据
+     * @param communityId
+     * @param belongTo
+     * @param choice
+     * @param checkUnitId
+     * @return
+     */
+    R pbStatisticsTop(Long communityId, String belongTo, String choice, Long checkUnitId,Long[] unitIds ,String yearTime);
+
+    /**
+     * 报到党员统计-按单位归属统计
+     * @param commonDto
+     * @return
+     */
+    R pbStatisticsBelong(PagePbCheckUnitCommonDto commonDto);
+
+    /**
+     * 报到党员统计-按单位统计
+     * @param commonDto
+     * @return
+     */
+    R pbStatisticsUnit(PagePbCheckUnitCommonDto commonDto);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/ComPbMemberService.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/ComPbMemberService.java
new file mode 100644
index 0000000..ef34608
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/ComPbMemberService.java
@@ -0,0 +1,270 @@
+package com.panzhihua.service_dangjian.service;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.PageMemberForInviteDTO;
+import com.panzhihua.common.model.dtos.partybuilding.ComDataStatisticsOrgDto;
+import com.panzhihua.common.model.dtos.partybuilding.PageComDataStatisticsMemberDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.partybuilding.*;
+import com.panzhihua.common.model.vos.partybuilding.excel.ComPbMemberRoleExcelVo;
+import com.panzhihua.service_dangjian.model.dos.ComPbMemberDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党员
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 10:53
+ **/
+public interface ComPbMemberService extends IService<ComPbMemberDO> {
+    /**
+     * 新增党员
+     *
+     * @param partyBuildingMemberVO
+     *            党员基本信息
+     * @return 新增结果
+     */
+    R addPartyBuildingMember(PartyBuildingMemberVO partyBuildingMemberVO);
+
+    /**
+     * 批量新增党员
+     *
+     * @param list
+     *            党员集合
+     * @return 新增结果
+     */
+    R listSavePartyBuildingMemberExcelVO(List<PartyBuildingMemberExcelVO> list);
+
+    /**
+     * 分页党员
+     *
+     * @param pagePartyOrganizationVO
+     *            查询信息
+     * @return 分页数据
+     */
+    R pagePartyOrganization(PagePartyOrganizationVO pagePartyOrganizationVO);
+
+    /**
+     * 编辑党员信息 新增字段均可编辑
+     *
+     * @param partyBuildingMemberVO
+     *            编辑字段
+     * @return 编辑结果
+     */
+    R updatePartyBuildingMember(PartyBuildingMemberVO partyBuildingMemberVO);
+
+    /**
+     * 查询指定社区的所有党员
+     *
+     * @param communityId
+     *            社区id
+     * @return 党员列表
+     */
+    R listPartyMember(Long communityId);
+
+    /**
+     * 新增党委
+     *
+     * @param partyCommitteeVO
+     *            新增信息
+     * @return 新增结果
+     */
+    R addPartyCommittee(PartyCommitteeVO partyCommitteeVO);
+
+    /**
+     * 编辑党委
+     *
+     * @param partyCommitteeVO
+     *            编辑信息
+     * @return 编辑结果
+     */
+    R updatePartyCommittee(PartyCommitteeVO partyCommitteeVO);
+
+    /**
+     * 删除党委
+     *
+     * @param partyCommitteeVO
+     *            删除id
+     * @return 删除结果
+     */
+    R deletePartyCommittee(PartyCommitteeVO partyCommitteeVO);
+
+    /**
+     * 分页社区党委查询
+     *
+     * @param partyCommitteeVO
+     *            查询参数
+     * @return 分页集合
+     */
+    R pagePartyCommittee(PartyCommitteeVO partyCommitteeVO);
+
+    /**
+     * 新建党建动态
+     *
+     * @param partyCommitteeVO
+     *            动态内容
+     * @return 新增结果
+     */
+    R adddYnamic(PartyBuildingComPbDynVO partyCommitteeVO);
+
+    /**
+     * 编辑动态
+     *
+     * @param partyCommitteeVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    R updateYnamic(PartyBuildingComPbDynVO partyCommitteeVO);
+
+    /**
+     * 动态详情
+     *
+     * @param id
+     *            动态主键
+     * @return 详情
+     */
+    R infoYnamic(Long id);
+
+    /**
+     * 分页查询党员动态
+     *
+     * @param partyBuildingComPbDynVO
+     *            查询参数
+     * @return 分页数据
+     */
+    R pageYnamic(PartyBuildingComPbDynVO partyBuildingComPbDynVO);
+
+    /**
+     * 删除动态
+     *
+     * @param id
+     *            动态主键
+     * @return 删除结果
+     */
+    R deleteYnamic(Integer id);
+
+    /**
+     * 增加阅读记录
+     *
+     * @param comPbDynUserVO
+     *            阅读记录
+     * @return 增加结果
+     */
+    R addDynUser(ComPbDynUserVO comPbDynUserVO);
+
+    /**
+     * 删除党员
+     *
+     * @param id
+     *            党员主键
+     * @return 删除结果
+     */
+    R deleteDynUser(Long id);
+
+    /**
+     * 定时任务刷新党建动态发布状态
+     *
+     * @return 刷新数据数量
+     */
+    R timedTaskPartyBuildingStatus();
+
+    /**
+     * 分页查询认证党员
+     *
+     * @param pagePartyBuildingMemberVO
+     *            查询参数
+     * @return 分页数据
+     */
+    R pagePrePartyBuilingMember(PagePartyBuildingMemberVO pagePartyBuildingMemberVO);
+
+    /**
+     * 审核党员认证信息
+     *
+     * @param partyBuildingMemberVO
+     *            编辑字段
+     * @return 编辑结果
+     */
+    R updatePartyBuildingMembers(PartyBuildingMemberVO partyBuildingMemberVO);
+
+    /**
+     * 导出党员信息
+     *
+     * @param organizationVO
+     *            请求参数
+     * @return 党员信息列表
+     */
+    R exportPbMember(PagePartyOrganizationVO organizationVO);
+
+    /**
+     * 分页查询党员数据统计
+     * @param statisticsMemberDto   请求参数
+     * @return  党员数据统计
+     */
+    R pageDataStatisticsMember(PageComDataStatisticsMemberDto statisticsMemberDto);
+
+    /**
+     * 根据组织id查询组织下统计数据
+     * @param statisticsOrgDto  请求参数
+     * @return  组织下统计数据
+     */
+    R getOrgDataStatistics(ComDataStatisticsOrgDto statisticsOrgDto);
+
+    /**
+     * 查询党组织表头统计数据
+     * @param communityId
+     *            社区id
+     * @return  党组织表头统计数据
+     */
+    R getHeaderOrgDataStatistics(Long communityId);
+
+    /**
+     * 党员数据统计-党员导出数据查询
+     * @param statisticsMemberDto   请求参数
+     * @return  党员导出数据
+     */
+    R exportDataStatisticsMember(PageComDataStatisticsMemberDto statisticsMemberDto);
+
+    /**
+     * 党委导入接口
+     * @param list 数据列表
+     * @param communityId   社区id
+     * @param userId    用户id
+     * @return  导入结果
+     */
+    R importPbMemberRole(List<ComPbMemberRoleExcelVo> list, Long communityId, Long userId);
+
+    /**
+     * 导出党员积分
+     * @param pagePartyOrganizationVO
+     * @return
+     */
+    R exportPartyMember(PagePartyOrganizationVO pagePartyOrganizationVO);
+
+    /**
+     * 身份证查询党员
+     * @param idCard
+     * @return
+     */
+    R checkMember(String idCard);
+
+    R getPagePbMember(PartyBuildingMemberVO partyBuildingMemberVO);
+
+    R getProject(ProjectVO projectVO);
+
+    R addProject(ProjectVO projectVO);
+
+    R updateProject(ProjectVO projectVO);
+
+    R deleteProject(ProjectVO projectVO);
+    R getPartyMember(String phone,Integer type);
+
+    R memberDetail(Long id);
+
+    /**
+     * 分页查询注册党员列表
+     * @param pageMemberForInviteDTO
+     * @return
+     */
+    R pageRegisterMember(PageMemberForInviteDTO pageMemberForInviteDTO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/ComPbMemberWestService.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/ComPbMemberWestService.java
new file mode 100644
index 0000000..f4cbd1d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/ComPbMemberWestService.java
@@ -0,0 +1,249 @@
+package com.panzhihua.service_dangjian.service;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.partybuilding.ComDataStatisticsOrgDto;
+import com.panzhihua.common.model.dtos.partybuilding.PageComDataStatisticsMemberDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.partybuilding.west.*;
+import com.panzhihua.common.model.vos.partybuilding.excel.ComPbMemberRoleExcelVo;
+import com.panzhihua.service_dangjian.model.dos.ComPbMemberWestDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党员
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 10:53
+ **/
+public interface ComPbMemberWestService extends IService<ComPbMemberWestDO> {
+    /**
+     * 新增党员
+     *
+     * @param partyBuildingMemberVO
+     *            党员基本信息
+     * @return 新增结果
+     */
+    R addPartyBuildingMember(PartyBuildingMemberVO partyBuildingMemberVO);
+
+    /**
+     * 批量新增党员
+     *
+     * @param list
+     *            党员集合
+     * @return 新增结果
+     */
+    R listSavePartyBuildingMemberExcelVO(List<PartyBuildingMemberExcelVO> list);
+
+    /**
+     * 分页党员
+     *
+     * @param pagePartyOrganizationVO
+     *            查询信息
+     * @return 分页数据
+     */
+    R pagePartyOrganization(PagePartyOrganizationVO pagePartyOrganizationVO);
+
+    /**
+     * 编辑党员信息 新增字段均可编辑
+     *
+     * @param partyBuildingMemberVO
+     *            编辑字段
+     * @return 编辑结果
+     */
+    R updatePartyBuildingMember(PartyBuildingMemberVO partyBuildingMemberVO);
+
+    /**
+     * 查询指定社区的所有党员
+     *
+     * @param communityId
+     *            社区id
+     * @return 党员列表
+     */
+    R listPartyMember(Long communityId);
+
+    /**
+     * 新增党委
+     *
+     * @param partyCommitteeVO
+     *            新增信息
+     * @return 新增结果
+     */
+    R addPartyCommittee(PartyCommitteeVO partyCommitteeVO);
+
+    /**
+     * 编辑党委
+     *
+     * @param partyCommitteeVO
+     *            编辑信息
+     * @return 编辑结果
+     */
+    R updatePartyCommittee(PartyCommitteeVO partyCommitteeVO);
+
+    /**
+     * 删除党委
+     *
+     * @param partyCommitteeVO
+     *            删除id
+     * @return 删除结果
+     */
+    R deletePartyCommittee(PartyCommitteeVO partyCommitteeVO);
+
+    /**
+     * 分页社区党委查询
+     *
+     * @param partyCommitteeVO
+     *            查询参数
+     * @return 分页集合
+     */
+    R pagePartyCommittee(PartyCommitteeVO partyCommitteeVO);
+
+    /**
+     * 新建党建动态
+     *
+     * @param partyCommitteeVO
+     *            动态内容
+     * @return 新增结果
+     */
+    R adddYnamic(PartyBuildingComPbDynVO partyCommitteeVO);
+
+    /**
+     * 编辑动态
+     *
+     * @param partyCommitteeVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    R updateYnamic(PartyBuildingComPbDynVO partyCommitteeVO);
+
+    /**
+     * 动态详情
+     *
+     * @param id
+     *            动态主键
+     * @return 详情
+     */
+    R infoYnamic(Long id);
+
+    /**
+     * 分页查询党员动态
+     *
+     * @param partyBuildingComPbDynVO
+     *            查询参数
+     * @return 分页数据
+     */
+    R pageYnamic(PartyBuildingComPbDynVO partyBuildingComPbDynVO);
+
+    /**
+     * 删除动态
+     *
+     * @param id
+     *            动态主键
+     * @return 删除结果
+     */
+    R deleteYnamic(Long id);
+
+    /**
+     * 增加阅读记录
+     *
+     * @param comPbDynUserVO
+     *            阅读记录
+     * @return 增加结果
+     */
+    R addDynUser(ComPbDynUserVO comPbDynUserVO);
+
+    /**
+     * 删除党员
+     *
+     * @param id
+     *            党员主键
+     * @return 删除结果
+     */
+    R deleteDynUser(Integer id);
+
+    /**
+     * 定时任务刷新党建动态发布状态
+     *
+     * @return 刷新数据数量
+     */
+    R timedTaskPartyBuildingStatus();
+
+    /**
+     * 分页查询认证党员
+     *
+     * @param pagePartyBuildingMemberVO
+     *            查询参数
+     * @return 分页数据
+     */
+    R pagePrePartyBuilingMember(PagePartyBuildingMemberVO pagePartyBuildingMemberVO);
+
+    /**
+     * 审核党员认证信息
+     *
+     * @param partyBuildingMemberVO
+     *            编辑字段
+     * @return 编辑结果
+     */
+    R updatePartyBuildingMembers(PartyBuildingMemberVO partyBuildingMemberVO);
+
+    /**
+     * 导出党员信息
+     *
+     * @param organizationVO
+     *            请求参数
+     * @return 党员信息列表
+     */
+    R exportPbMember(PagePartyOrganizationVO organizationVO);
+
+    /**
+     * 分页查询党员数据统计
+     * @param statisticsMemberDto   请求参数
+     * @return  党员数据统计
+     */
+    R pageDataStatisticsMember(PageComDataStatisticsMemberDto statisticsMemberDto);
+
+    /**
+     * 根据组织id查询组织下统计数据
+     * @param statisticsOrgDto  请求参数
+     * @return  组织下统计数据
+     */
+    R getOrgDataStatistics(ComDataStatisticsOrgDto statisticsOrgDto);
+
+    /**
+     * 查询党组织表头统计数据
+     * @param communityId
+     *            社区id
+     * @return  党组织表头统计数据
+     */
+    R getHeaderOrgDataStatistics(Long communityId);
+
+    /**
+     * 党员数据统计-党员导出数据查询
+     * @param statisticsMemberDto   请求参数
+     * @return  党员导出数据
+     */
+    R exportDataStatisticsMember(PageComDataStatisticsMemberDto statisticsMemberDto);
+
+    /**
+     * 党委导入接口
+     * @param list 数据列表
+     * @param communityId   社区id
+     * @param userId    用户id
+     * @return  导入结果
+     */
+    R importPbMemberRole(List<ComPbMemberRoleExcelVo> list, Long communityId, Long userId);
+
+    /**
+     * 导出党员积分
+     * @param pagePartyOrganizationVO
+     * @return
+     */
+    R exportPartyMember(PagePartyOrganizationVO pagePartyOrganizationVO);
+
+    /**
+     * 身份证查询党员
+     * @param idCard
+     * @return
+     */
+    R checkMember(String idCard);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/ComPbServiceTeamService.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/ComPbServiceTeamService.java
new file mode 100644
index 0000000..57dba6f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/ComPbServiceTeamService.java
@@ -0,0 +1,65 @@
+package com.panzhihua.service_dangjian.service;
+
+import com.panzhihua.common.model.dtos.partybuilding.ComPbServiceTeamDTO;
+import com.panzhihua.common.model.dtos.partybuilding.PageComPbServiceTeamDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_dangjian.model.dos.ComPbServiceTeamDO;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 服务团队
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-21 17:38
+ **/
+public interface ComPbServiceTeamService {
+    /**
+     * 新增服务团队人员
+     * 
+     * @param comPbServiceTeamDTO
+     *            新增内容
+     * @return 新增结果
+     */
+    R addServiceTeam(ComPbServiceTeamDTO comPbServiceTeamDTO);
+
+    /**
+     * 编辑团队人员
+     * 
+     * @param comPbServiceTeamDTO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    R putServiceTeam(ComPbServiceTeamDTO comPbServiceTeamDTO);
+
+    /**
+     * 分页查询服务团队成员
+     * 
+     * @param pageComPbServiceTeamDTO
+     *            查询参数
+     * @return 查询结果
+     */
+    R PageComPbServiceTeamDTO(PageComPbServiceTeamDTO pageComPbServiceTeamDTO);
+
+    /**
+     * 删除服务团队人员
+     * 
+     * @param comPbServiceTeamDTO
+     *            删除主键
+     * @return 删除结果
+     */
+    R deleteServiceTeam(ComPbServiceTeamDTO comPbServiceTeamDTO);
+
+    /**
+     * 选择人员
+     * 
+     * @param param
+     *            查询条件
+     * @return 查询结果
+     */
+    R getTotlePerson(String param, Long communityId);
+
+
+    R getComPbServiceTeamData(String communityId,String phone);
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NeedProblemClaimService.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NeedProblemClaimService.java
new file mode 100644
index 0000000..51cb30e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NeedProblemClaimService.java
@@ -0,0 +1,39 @@
+package com.panzhihua.service_dangjian.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.partybuilding.NeedProblemClaimDTO;
+import com.panzhihua.common.model.dtos.partybuilding.NeedProblemInventoryDTO;
+import com.panzhihua.common.model.dtos.partybuilding.NeedProblemUnitTaskDTO;
+import com.panzhihua.common.model.vos.R;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党组织
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 11:39
+ **/
+public interface NeedProblemClaimService
+{
+
+    List<NeedProblemClaimDTO> getList(String taskId, String userId, String unitId);
+
+    NeedProblemClaimDTO getDetails(String id,String taskId,String userId);
+
+    R addData(NeedProblemClaimDTO item);
+
+    R editData(NeedProblemClaimDTO item);
+
+    R expurgateData(String id,String taskId,String userId);
+
+    int getJionNum(String taskId,String userId);
+
+    int needClaimSignIn(String taskId,String userId,String type);
+
+    R upNewFightNeedProblemClaimEndTime();
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NeedProblemInventoryService.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NeedProblemInventoryService.java
new file mode 100644
index 0000000..58eeb32
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NeedProblemInventoryService.java
@@ -0,0 +1,55 @@
+package com.panzhihua.service_dangjian.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.partybuilding.NeedProblemInventoryDTO;
+import com.panzhihua.common.model.dtos.partybuilding.UserRankDTO;
+import com.panzhihua.common.model.vos.R;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党组织
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 11:39
+ **/
+public interface NeedProblemInventoryService
+{
+
+    IPage<NeedProblemInventoryDTO> getList(int pageNum,
+                                           int pageSize,
+                                           String search,
+                                           String classifyId,
+                                           String status,
+                                           String kind,
+                                           String userId,
+                                           String userIds,
+                                           String isDisplay,
+                                           String communityId,
+                                           Date startTime,
+                                           Date endTime);
+
+    IPage<NeedProblemInventoryDTO> getMyJoinList(int pageNum, int pageSize,
+                                                 String search,String status,
+                                                 String kind,
+                                                 String userIds,
+                                                 String isDisplay,
+                                                 String userId,
+                                                 Date startTime,
+                                                 Date endTime);
+
+    NeedProblemInventoryDTO getDetails(String id,String userIds);
+
+    int addData(NeedProblemInventoryDTO item);
+
+    int editData(NeedProblemInventoryDTO item);
+
+    int expurgateData(String id);
+
+
+    R timedNewFightNeedProblemInventoryHandler();
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NeedProblemUnitTaskService.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NeedProblemUnitTaskService.java
new file mode 100644
index 0000000..a17b8f9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NeedProblemUnitTaskService.java
@@ -0,0 +1,26 @@
+package com.panzhihua.service_dangjian.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.model.dtos.partybuilding.NeedProblemUnitTaskDTO;
+import com.panzhihua.common.model.vos.R;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党组织
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 11:39
+ **/
+public interface NeedProblemUnitTaskService
+{
+
+    IPage<NeedProblemUnitTaskDTO> getList(int pageNum, int pageSize, String unitId,String kind,String status);
+
+    NeedProblemUnitTaskDTO getDetails(String id);
+
+    R addData(NeedProblemUnitTaskDTO item);
+
+    int editData(NeedProblemUnitTaskDTO item);
+
+    int expurgateData(String id);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightCommunityConstructionService.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightCommunityConstructionService.java
new file mode 100644
index 0000000..47cd169
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightCommunityConstructionService.java
@@ -0,0 +1,33 @@
+package com.panzhihua.service_dangjian.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.model.dtos.partybuilding.NeedProblemUnitTaskDTO;
+import com.panzhihua.common.model.dtos.partybuilding.NewFightCommunityConstructionDTO;
+import com.panzhihua.common.model.vos.R;
+
+import java.util.List;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党组织
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 11:39
+ **/
+public interface NewFightCommunityConstructionService
+{
+
+    IPage<NewFightCommunityConstructionDTO> getList(int pageNum, int pageSize,
+                                                    String communityId,String userId);
+
+    NewFightCommunityConstructionDTO getDetails(String id,String userId);
+
+    R addData(NewFightCommunityConstructionDTO item);
+
+    R editData(NewFightCommunityConstructionDTO item);
+
+    R expurgateData(String id);
+
+
+    R getListTime();
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightConfigService.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightConfigService.java
new file mode 100644
index 0000000..1657353
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightConfigService.java
@@ -0,0 +1,22 @@
+package com.panzhihua.service_dangjian.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.building.NewFightConfigVO;
+import com.panzhihua.service_dangjian.entity.NewFightConfig;
+
+public interface NewFightConfigService extends IService<NewFightConfig>
+{
+
+    NewFightConfig getDetails(String id);
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    R addData(NewFightConfigVO item);
+
+    R editData(NewFightConfigVO item);
+
+    R expurgateData(String id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightConvenientMerchantService.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightConvenientMerchantService.java
new file mode 100644
index 0000000..67aa25b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightConvenientMerchantService.java
@@ -0,0 +1,67 @@
+package com.panzhihua.service_dangjian.service;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.building.NewFightConvenientMerchantVO;
+import com.panzhihua.service_dangjian.entity.NewFightConvenientMerchant;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党组织
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 11:39
+ **/
+public interface NewFightConvenientMerchantService
+{
+
+
+    /**
+     * 删除便民服务商家
+     *
+     * @param merchantId
+     * @param operator
+     * @return
+     */
+    R deleteMerchantById(String merchantId);
+
+    /**
+     * 编辑状态
+     * @param merchantId
+     * @param status
+     * @return
+     */
+    R editStatus(String merchantId,String status);
+
+    /**
+     * 分页查询便民服务商家 运营后台
+     *
+     * @param page                      分页参数
+     * @param item
+     * @return
+     */
+    R pageMerchant(int pageNum, int pageSize,
+                   String isDel,
+                   String keyword,
+                   String status,
+                   String communityId);
+
+    /**
+     * 查询商家信息
+     *
+     * @param merchantId
+     * @return
+     */
+    NewFightConvenientMerchant selectMerchantById(String merchantId);
+
+
+    R addData(NewFightConvenientMerchantVO item);
+
+    R editData(NewFightConvenientMerchantVO item);
+
+
+    R selectUserList(String communityId,String phoneOrname);
+
+    R selectUserListB(String communityId,String phoneOrname);
+
+
+    R selectUserBind(String communityId, String userId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightIntegratingTaskService.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightIntegratingTaskService.java
new file mode 100644
index 0000000..e6f80ea
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightIntegratingTaskService.java
@@ -0,0 +1,66 @@
+package com.panzhihua.service_dangjian.service;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.building.IntegratingTaskVO;
+import com.panzhihua.service_dangjian.entity.IntegratingTask;
+
+import java.util.List;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党组织
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 11:39
+ **/
+public interface NewFightIntegratingTaskService
+{
+    /**
+     * 列表
+     * @param
+     * @return
+     */
+    List<IntegratingTask> getList(String userId,String communityId);
+
+
+    IntegratingTask getDetails(String userId,String communityId,String status);
+
+
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    R addData(IntegratingTaskVO item);
+
+
+    R editData(IntegratingTaskVO item);
+
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    R expurgateData(String id);
+
+    R truncateData();
+
+
+
+    /**
+     * 每日签到记录列表  前15条
+     * @param userId
+     * @param communityId
+     * @return
+     */
+    List<IntegratingTask> getEverydayList(String userId,
+                                          String communityId);
+
+
+    /**
+     * 添加每日签到记录
+     * @param item
+     * @return
+     */
+    R addEverydayData(IntegratingTaskVO item);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightProjectEvaluateService.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightProjectEvaluateService.java
new file mode 100644
index 0000000..d159d50
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightProjectEvaluateService.java
@@ -0,0 +1,26 @@
+package com.panzhihua.service_dangjian.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.model.dtos.partybuilding.NewFightProjectEvaluateDTO;
+import com.panzhihua.common.model.vos.R;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党组织
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 11:39
+ **/
+public interface NewFightProjectEvaluateService
+{
+
+    IPage<NewFightProjectEvaluateDTO> getList(int pageNum, int pageSize, String projectId);
+
+    NewFightProjectEvaluateDTO getDetails(String id);
+
+    R addData(NewFightProjectEvaluateDTO item);
+
+    R editData(NewFightProjectEvaluateDTO item);
+
+    R expurgateData(String id,String projectId);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightProjectJoinService.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightProjectJoinService.java
new file mode 100644
index 0000000..9774046
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightProjectJoinService.java
@@ -0,0 +1,26 @@
+package com.panzhihua.service_dangjian.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.model.dtos.partybuilding.NewFightProjectJoinDTO;
+import com.panzhihua.common.model.vos.R;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党组织
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 11:39
+ **/
+public interface NewFightProjectJoinService
+{
+
+    IPage<NewFightProjectJoinDTO> getList(int pageNum, int pageSize, String projectId);
+
+    NewFightProjectJoinDTO getDetails(String id);
+
+    R addData(NewFightProjectJoinDTO item);
+
+    R editData(NewFightProjectJoinDTO item);
+
+    R expurgateData(String id,String projectId,String userId);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightProjectPlanService.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightProjectPlanService.java
new file mode 100644
index 0000000..077d539
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightProjectPlanService.java
@@ -0,0 +1,29 @@
+package com.panzhihua.service_dangjian.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.model.dtos.partybuilding.NewFightCommunityConstructionDTO;
+import com.panzhihua.common.model.dtos.partybuilding.NewFightProjectPlanDTO;
+import com.panzhihua.common.model.vos.R;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党组织
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 11:39
+ **/
+public interface NewFightProjectPlanService
+{
+
+    IPage<NewFightProjectPlanDTO> getList(int pageNum, int pageSize,String projectId);
+
+    NewFightProjectPlanDTO getDetails(String id);
+
+    R editProjectPlanAccomplish(String id);
+
+    R addData(NewFightProjectPlanDTO item);
+
+    R editData(NewFightProjectPlanDTO item);
+
+    R expurgateData(String id,String projectId);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightResourceSharingService.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightResourceSharingService.java
new file mode 100644
index 0000000..e230576
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightResourceSharingService.java
@@ -0,0 +1,27 @@
+package com.panzhihua.service_dangjian.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.panzhihua.common.model.dtos.partybuilding.NewFightResourceSharingDTO;
+import com.panzhihua.common.model.vos.R;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党组织
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 11:39
+ **/
+public interface NewFightResourceSharingService
+{
+
+    IPage<NewFightResourceSharingDTO> getList(int pageNum, int pageSize,
+                                              String communityId,String unitId,String meritId);
+
+    NewFightResourceSharingDTO getDetails(String id);
+
+    R addData(NewFightResourceSharingDTO item);
+
+    R editData(NewFightResourceSharingDTO item);
+
+    R expurgateData(String id);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightShoppingOrderService.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightShoppingOrderService.java
new file mode 100644
index 0000000..d77d099
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightShoppingOrderService.java
@@ -0,0 +1,33 @@
+package com.panzhihua.service_dangjian.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.building.NewFightShoppingOrderVO;
+import com.panzhihua.service_dangjian.entity.NewFightShoppingOrder;
+import org.apache.ibatis.annotations.Param;
+
+public interface NewFightShoppingOrderService extends IService<NewFightShoppingOrder>
+{
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    R getList(int pageNum,int pageSize,String userId,String goodsId,String orderNumber,
+              String goodName,String name,String cancelType,String communityId,String merchantId,
+              String orderType);
+
+    NewFightShoppingOrder getDetails(String id, String communityId);
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    R addData(NewFightShoppingOrderVO item);
+
+    R editData(NewFightShoppingOrderVO item);
+
+    R cancelOrder(String orderId,String communityId);
+
+    R expurgateData(String id,String communityId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightShoppingService.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightShoppingService.java
new file mode 100644
index 0000000..f722e67
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewFightShoppingService.java
@@ -0,0 +1,29 @@
+package com.panzhihua.service_dangjian.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.building.NewFightShoppingVO;
+import com.panzhihua.service_dangjian.entity.NewFightShopping;
+
+public interface NewFightShoppingService extends IService<NewFightShopping>
+{
+    /**
+     * 分页查询
+     * @param
+     * @return
+     */
+    R getList(int pageNum,int pageSize,
+              String goodName, String goodType, String id,String communityId);
+
+    NewFightShopping getDetails(String id);
+    /**
+     * 新增
+     * @param
+     * @return
+     */
+    R addData(NewFightShoppingVO item);
+
+    R editData(NewFightShoppingVO item);
+
+    R expurgateData(String id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewStriveForService.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewStriveForService.java
new file mode 100644
index 0000000..447a88e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/NewStriveForService.java
@@ -0,0 +1,30 @@
+package com.panzhihua.service_dangjian.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.partybuilding.ComListPartyDTO;
+import com.panzhihua.common.model.dtos.partybuilding.UserRankDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.partybuilding.west.PartyOrganizationVO;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党组织
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 11:39
+ **/
+public interface NewStriveForService
+{
+    UserRankDTO getUserRank(String userId);
+
+    IPage<UserRankDTO> getUserRankList(int pageNum,int pageSize,String userId);
+
+    String getAllintegral(String type,String userId);
+
+    List<String> getPartyMember(String userId);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/PartyOrganizationService.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/PartyOrganizationService.java
new file mode 100644
index 0000000..27598be
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/PartyOrganizationService.java
@@ -0,0 +1,79 @@
+package com.panzhihua.service_dangjian.service;
+
+import java.util.List;
+
+import com.panzhihua.common.model.dtos.partybuilding.ComListPartyDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.partybuilding.west.PartyOrganizationVO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党组织
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 11:39
+ **/
+public interface PartyOrganizationService {
+    /**
+     * 平台所有启用的党组织
+     *
+     * @return 党组织集合
+     */
+    List<PartyOrganizationVO> listPartyOrganization(Long communityId);
+
+    /**
+     * 平台所有的党组织
+     *
+     * @return 党组织集合
+     */
+    R listPartyOrganizationAll(PartyOrganizationVO partyOrganizationVO);
+
+    /**
+     * 新增党支部
+     *
+     * @param partyOrganizationVO
+     *            党支部基本信息
+     * @return 新增结果
+     */
+    R addPartyOrganization(PartyOrganizationVO partyOrganizationVO);
+
+    /**
+     * 编辑党支部
+     *
+     * @param partyOrganizationVO
+     *            党支部基本信息
+     * @return 编辑结果
+     */
+    R updatePartyOrganization(PartyOrganizationVO partyOrganizationVO);
+
+    /**
+     * 启用,禁用党支部
+     *
+     * @param partyOrganizationVO
+     *            党支部基本信息
+     * @return 编辑结果
+     */
+    R resetPartyOrganization(PartyOrganizationVO partyOrganizationVO);
+
+    /**
+     * 删除党支部
+     *
+     * @param partyOrganizationVO
+     *            党支部基本信息
+     * @return 编辑结果
+     */
+    R deletePartyOrganization(PartyOrganizationVO partyOrganizationVO);
+
+    /**
+     * 平台所有启用的党组织
+     *
+     * @return 党组织集合
+     */
+    List<PartyOrganizationVO> listPartyOrganizationByApp(ComListPartyDTO comListPartyDTO);
+
+    /**
+     * 查询所有党组织
+     * @param partyOrganizationVO   请求参数
+     * @return  党组织列表
+     */
+    R getPbOrgAllList(PartyOrganizationVO partyOrganizationVO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/StreetBigScreenService.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/StreetBigScreenService.java
new file mode 100644
index 0000000..00d30dd
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/StreetBigScreenService.java
@@ -0,0 +1,26 @@
+package com.panzhihua.service_dangjian.service;
+
+import com.panzhihua.common.model.vos.R;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党组织
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 11:39
+ **/
+public interface StreetBigScreenService
+{
+    //获取街道下社区内容
+    R getCommunityId(String streetId);
+
+    R getCoreData(String streetId,String communityId,String type,String starTime,String endTime);
+
+    R getThreeNum(String streetId,String communityId,String type,String starTime,String endTime);
+
+    R getDoubleRegistration(String streetId,String communityId,String type,String starTime,String endTime);
+
+    R getPhotoMicroWish(String streetId,String communityId,String type,String starTime,String endTime);
+
+    R getAllData(String streetId,String communityId,String type,String starTime,String endTime);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComActIntegralUserChangeDAOServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComActIntegralUserChangeDAOServiceImpl.java
new file mode 100644
index 0000000..2716323
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComActIntegralUserChangeDAOServiceImpl.java
@@ -0,0 +1,127 @@
+package com.panzhihua.service_dangjian.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.service_dangjian.dao.ComActIntegralUserChangeDAO;
+import com.panzhihua.service_dangjian.entity.ComActIntegralUserChange;
+import com.panzhihua.service_dangjian.service.ComActIntegralUserChangeDAOService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+
+/**
+ * @auther lyq
+ * @create 2021-07-28 16:03:05
+ * @describe 用户积分账户变动记录服务实现类
+ */
+@Slf4j
+@Service
+public class ComActIntegralUserChangeDAOServiceImpl extends
+    ServiceImpl<ComActIntegralUserChangeDAO, ComActIntegralUserChange> implements ComActIntegralUserChangeDAOService {
+
+    /**
+     * 添加用户积分账户变动记录
+     * 
+     * @param userId
+     *            用户id
+     * @param integralId
+     *            积分账户id
+     * @param communityId
+     *            社区id
+     * @param integralSumTop
+     *            总积分数量变动前
+     * @param integralSumBack
+     *            总积分数量变动后
+     * @param integralAvailableSumTop
+     *            可用总积分数量变动前
+     * @param integralAvailableSumBack
+     *            可用总积分数量变动后
+     * @param integralFrozenSumTop
+     *            冻结总积分数量变动前
+     * @param integralFrozenSumBack
+     *            冻结总积分数量变动后
+     * @param integralPartyTop
+     *            党员积分数量变动前
+     * @param integralPartyBack
+     *            党员积分数量变动后
+     * @param integralAvailablePartyTop
+     *            可用党员积分数量变动前
+     * @param integralAvailablePartyBack
+     *            可用党员积分数量变动后
+     * @param integralFrozenPartyTop
+     *            冻结党员积分数量变动前
+     * @param integralFrozenPartyBack
+     *            冻结党员积分数量变动后
+     * @param integralVolunteerTop
+     *            志愿者积分数量变动前
+     * @param integralVolunteerBack
+     *            志愿者积分数量变动后
+     * @param integralAvailableVolunteerTop
+     *            可用志愿者积分数量变动前
+     * @param integralAvailableVolunteerBack
+     *            可用志愿者积分数量变动后
+     * @param integralFrozenVolunteerTop
+     *            冻结志愿者积分数量变动前
+     * @param integralFrozenVolunteerBack
+     *            冻结志愿者积分数量变动后
+     * @param integralResidentTop
+     *            居民积分数量变动前
+     * @param integralResidentBack
+     *            居民积分数量变动后
+     * @param integralAvailableResidentTop
+     *            可用居民积分数量变动前
+     * @param integralAvailableResidentBack
+     *            可用居民积分数量变动后
+     * @param integralFrozenResidentTop
+     *            冻结居民积分数量变动前
+     * @param integralFrozenResidentBack
+     *            冻结居民积分数量变动后
+     * @param serviceId
+     *            交易记录id
+     */
+    @Override
+    public void addIntegralUserChangeRecord(Long userId, Long integralId, Long communityId, Integer integralSumTop,
+        Integer integralSumBack, Integer integralAvailableSumTop, Integer integralAvailableSumBack,
+        Integer integralFrozenSumTop, Integer integralFrozenSumBack, Integer integralPartyTop,
+        Integer integralPartyBack, Integer integralAvailablePartyTop, Integer integralAvailablePartyBack,
+        Integer integralFrozenPartyTop, Integer integralFrozenPartyBack, Integer integralVolunteerTop,
+        Integer integralVolunteerBack, Integer integralAvailableVolunteerTop, Integer integralAvailableVolunteerBack,
+        Integer integralFrozenVolunteerTop, Integer integralFrozenVolunteerBack, Integer integralResidentTop,
+        Integer integralResidentBack, Integer integralAvailableResidentTop, Integer integralAvailableResidentBack,
+        Integer integralFrozenResidentTop, Integer integralFrozenResidentBack, Long serviceId) {
+
+        ComActIntegralUserChange integralUserChangeDO = new ComActIntegralUserChange();
+        integralUserChangeDO.setId(Snowflake.getId());
+        integralUserChangeDO.setUserId(userId);
+        integralUserChangeDO.setIntegralId(integralId);
+        integralUserChangeDO.setCommunityId(communityId);
+        integralUserChangeDO.setIntegralSumTop(integralSumTop);
+        integralUserChangeDO.setIntegralSumBack(integralSumBack);
+        integralUserChangeDO.setIntegralAvailableSumTop(integralAvailableSumTop);
+        integralUserChangeDO.setIntegralAvailableSumBack(integralAvailableSumBack);
+        integralUserChangeDO.setIntegralFrozenSumTop(integralFrozenSumTop);
+        integralUserChangeDO.setIntegralFrozenSumBack(integralFrozenSumBack);
+        integralUserChangeDO.setIntegralPartyTop(integralPartyTop);
+        integralUserChangeDO.setIntegralPartyBack(integralPartyBack);
+        integralUserChangeDO.setIntegralAvailablePartyTop(integralAvailablePartyTop);
+        integralUserChangeDO.setIntegralAvailablePartyBack(integralAvailablePartyBack);
+        integralUserChangeDO.setIntegralFrozenPartyTop(integralFrozenPartyTop);
+        integralUserChangeDO.setIntegralFrozenPartyBack(integralFrozenPartyBack);
+        integralUserChangeDO.setIntegralVolunteerTop(integralVolunteerTop);
+        integralUserChangeDO.setIntegralVolunteerBack(integralVolunteerBack);
+        integralUserChangeDO.setIntegralAvailableVolunteerTop(integralAvailableVolunteerTop);
+        integralUserChangeDO.setIntegralAvailableVolunteerBack(integralAvailableVolunteerBack);
+        integralUserChangeDO.setIntegralFrozenVolunteerTop(integralFrozenVolunteerTop);
+        integralUserChangeDO.setIntegralFrozenVolunteerBack(integralFrozenVolunteerBack);
+        integralUserChangeDO.setIntegralResidentTop(integralResidentTop);
+        integralUserChangeDO.setIntegralResidentBack(integralResidentBack);
+        integralUserChangeDO.setIntegralAvailableResidentTop(integralAvailableResidentTop);
+        integralUserChangeDO.setIntegralAvailableResidentBack(integralAvailableResidentBack);
+        integralUserChangeDO.setIntegralFrozenResidentTop(integralFrozenResidentTop);
+        integralUserChangeDO.setIntegralFrozenResidentBack(integralFrozenResidentBack);
+        integralUserChangeDO.setServiceId(serviceId);
+        integralUserChangeDO.setCreateAt(new Date());
+        this.baseMapper.insert(integralUserChangeDO);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComActIntegralUserTradeDaoServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComActIntegralUserTradeDaoServiceImpl.java
new file mode 100644
index 0000000..30bc56e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComActIntegralUserTradeDaoServiceImpl.java
@@ -0,0 +1,70 @@
+package com.panzhihua.service_dangjian.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.service_dangjian.dao.ComActIntegralUserTradeDAO;
+import com.panzhihua.service_dangjian.entity.ComActIntegralUserTrade;
+import com.panzhihua.service_dangjian.service.ComActIntegralUserTradeDaoService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+
+/**
+ * @auther lyq
+ * @create 2021-07-28 16:03:18
+ * @describe 用户积分账户交易记录服务实现类
+ */
+@Slf4j
+@Service
+public class ComActIntegralUserTradeDaoServiceImpl extends
+    ServiceImpl<ComActIntegralUserTradeDAO, ComActIntegralUserTrade> implements ComActIntegralUserTradeDaoService {
+
+
+
+
+    /**
+     * 添加用户积分交易记录
+     * 
+     * @param userId
+     *            用户id
+     * @param integralId
+     *            积分账户id
+     * @param communityId
+     *            社区id
+     * @param serviceId
+     *            交易业务id
+     * @param serviceType
+     *            交易业务类型(1.发布随手拍 2.发布微心愿 3.参与议事投票 4.社区活动-居民身份参与 " +
+     *             "5.社区活动-党员身份参与 6.社区活动-志愿者身份参与 7.参与调查问卷 8.取消活动 9.参与单位党员活动)
+     * @param amount
+     *            交易积分数量
+     * @param changeType
+     *            变动类型(1.增加 2.减少)
+     * @param remark
+     *            交易备注
+     * @param identityType
+     *            交易身份类型(1.居民 2.党员 3.志愿者)
+     * @param createBy
+     *            操作人id
+     */
+    @Override
+    public Long addIntegralTradeRecord(Long userId, Long integralId, Long communityId, Long serviceId,
+        Integer serviceType, Integer amount, Integer changeType, String remark, Integer identityType, Long createBy) {
+        ComActIntegralUserTrade integralUserTradeDO = new ComActIntegralUserTrade();
+        integralUserTradeDO.setId(Snowflake.getId());
+        integralUserTradeDO.setUserId(userId);
+        integralUserTradeDO.setIntegralId(integralId);
+        integralUserTradeDO.setCommunityId(communityId);
+        integralUserTradeDO.setServiceId(serviceId);
+        integralUserTradeDO.setServiceType(serviceType);
+        integralUserTradeDO.setAmount(amount);
+        integralUserTradeDO.setChangeType(changeType);
+        integralUserTradeDO.setRemark(remark);
+        integralUserTradeDO.setIdentityType(identityType);
+        integralUserTradeDO.setCreateBy(createBy);
+        integralUserTradeDO.setCreateAt(new Date());
+        this.baseMapper.insert(integralUserTradeDO);
+        return integralUserTradeDO.getId();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComActIntegralUsersServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComActIntegralUsersServiceImpl.java
new file mode 100644
index 0000000..f268474
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComActIntegralUsersServiceImpl.java
@@ -0,0 +1,312 @@
+package com.panzhihua.service_dangjian.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.partybuilding.NewFightIntegral;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.building.IntegratingTaskVO;
+import com.panzhihua.common.model.vos.community.building.NewFightConvenientMerchantVO;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_dangjian.dao.ComActIntegralUsersMapper;
+import com.panzhihua.service_dangjian.entity.ComActIntegralUser;
+import com.panzhihua.service_dangjian.entity.ComActIntegralUserTrade;
+import com.panzhihua.service_dangjian.entity.IntegratingTask;
+import com.panzhihua.service_dangjian.entity.NewFightConvenientMerchant;
+import com.panzhihua.service_dangjian.service.*;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+
+@Slf4j
+@Service
+public class ComActIntegralUsersServiceImpl extends ServiceImpl<ComActIntegralUsersMapper,
+        ComActIntegralUser> implements ComActIntegralUsersService
+{
+
+
+    @Resource
+    private ComActIntegralUsersService integralUsersService;
+
+    @Resource
+    private ComActIntegralUserTradeDaoService tradeDaoService;
+
+    @Resource
+    private ComActIntegralUserChangeDAOService changeDAOService;
+
+
+    @Resource
+    private NewFightIntegratingTaskService taskService;
+
+    @Resource
+    private NewFightConvenientMerchantService merchantService;
+
+
+    @Override
+    public R upIntegral(NewFightIntegral item)
+    {
+
+        // 需要给用户增加的积分数量
+        Integer amount = 0;
+        // 查询用户积分账户
+        ComActIntegralUser integralUserDO =
+                integralUsersService.getOne(new QueryWrapper<ComActIntegralUser>().lambda()
+                        .eq(ComActIntegralUser::getUserId, item.getUserId())
+                        .eq(ComActIntegralUser::getCommunityId, item.getCommunityId()));
+
+        if (integralUserDO == null) {
+            integralUserDO = new ComActIntegralUser();
+            integralUserDO.setCommunityId(Long.valueOf(item.getCommunityId()));
+            integralUserDO.setUserId(Long.valueOf(item.getUserId()));
+            integralUserDO.setCreateAt(new Date());
+            integralUserDO.setStatus(ComActIntegralUser.status.yes);
+            integralUserDO.setIntegralSum(0);
+            integralUserDO.setIntegralAvailableSum(0);
+            integralUserDO.setIntegralFrozenSum(0);
+            integralUserDO.setIntegralParty(0);
+            integralUserDO.setIntegralAvailableParty(0);
+            integralUserDO.setIntegralFrozenParty(0);
+            integralUserDO.setIntegralVolunteer(0);
+            integralUserDO.setIntegralAvailableVolunteer(0);
+            integralUserDO.setIntegralFrozenVolunteer(0);
+            integralUserDO.setIntegralResident(0);
+            integralUserDO.setIntegralAvailableResident(0);
+            integralUserDO.setIntegralFrozenResident(0);
+            integralUsersService.save(integralUserDO);
+        }
+
+
+        if (integralUserDO.getStatus().equals(ComActIntegralUser.status.no)) {
+            log.error("用户钱包已被禁用,记录积分失败,用户id:" + item.getUserId());
+            return R.fail("用户钱包已被禁用,记录积分失败,用户id:" + item.getUserId());
+        }
+
+        Long integralId = integralUserDO.getId();
+        // 记录变动前钱包金额
+        Integer integralSum = integralUserDO.getIntegralSum();
+        Integer integralAvailableSum = integralUserDO.getIntegralAvailableSum();
+        Integer integralFrozenSum = integralUserDO.getIntegralFrozenSum();
+        Integer integralParty = integralUserDO.getIntegralParty();
+        Integer integralAvailableParty = integralUserDO.getIntegralAvailableParty();
+        Integer integralFrozenParty = integralUserDO.getIntegralFrozenParty();
+        Integer integralVolunteer = integralUserDO.getIntegralVolunteer();
+        Integer integralAvailableVolunteer = integralUserDO.getIntegralAvailableVolunteer();
+        Integer integralFrozenVolunteer = integralUserDO.getIntegralFrozenVolunteer();
+        Integer integralResident = integralUserDO.getIntegralResident();
+        Integer integralAvailableResident = integralUserDO.getIntegralAvailableResident();
+        Integer integralFrozenResident = integralUserDO.getIntegralFrozenResident();
+
+        //业务类型 9商城积分兑换  10商家线下积分兑换  11花城登录  12 查看问题清单 "
+        //            "13查看需求清单  14 查看报道服务活动  15查看微心愿  16 查看随手拍   17 每日签到 18 上传“随手拍”或“微心愿
+        switch (item.getType())
+        {
+            case "9":
+                //商城积分兑换
+                //积分总数加减
+                break;
+            case "10":
+                //商家线下积分兑换  增加
+                //商家积分增加
+                NewFightConvenientMerchant merchant=merchantService.selectMerchantById(item.getMerchantId());
+                int allMoney=0;
+                if(!StringUtils.isEmpty(merchant.getBusinessCredit()))
+                {
+                    allMoney=Integer.valueOf(merchant.getBusinessCredit());
+                }
+                if (item.getAddOrReduce() == ComActIntegralUserTrade.changeType.add)
+                {
+                    allMoney=allMoney+Integer.valueOf(item.getIntegralNum());
+
+                }
+                else
+                {
+                    //商家积分减少
+                    allMoney=allMoney-Integer.valueOf(item.getIntegralNum());
+                }
+                NewFightConvenientMerchantVO merchantVO=new NewFightConvenientMerchantVO();
+                merchantVO.setId(merchant.getId());
+                merchantVO.setBusinessCredit(allMoney+"");
+                merchantService.editData(merchantVO);
+                break;
+            case "11":
+                //花城登录
+                item.setRemark("花城登录");
+                IntegratingTask task=taskService.getDetails(item.getUserId(),
+                        item.getCommunityId(),item.getType());
+                if(task!=null && StringUtils.equals("2",task.getIsDraw()) )
+                {
+                    return R.ok();
+                }
+
+                item.setAddOrReduce(1);
+                item.setIntegralNum("2");
+
+                IntegratingTaskVO taskVO=new IntegratingTaskVO();
+                taskVO.setIsDraw("2");
+                taskVO.setId(item.getTaskId());
+                taskService.editData(taskVO);
+                break;
+            case "12":
+                // 查看问题清单
+                item.setRemark("查看问题清单");
+                item.setAddOrReduce(1);
+                item.setIntegralNum("1");
+                IntegratingTaskVO taskVO2=new IntegratingTaskVO();
+                taskVO2.setIsDraw("2");
+                taskVO2.setId(item.getTaskId());
+                taskService.editData(taskVO2);
+                break;
+            case "13":
+                //13查看需求清单
+                item.setRemark("查看需求清单");
+                item.setAddOrReduce(1);
+                item.setIntegralNum("1");
+                IntegratingTaskVO taskVO13=new IntegratingTaskVO();
+                taskVO13.setIsDraw("2");
+                taskVO13.setId(item.getTaskId());
+                taskService.editData(taskVO13);
+                break;
+            case "14":
+                //查看报道服务活动
+                item.setRemark("查看需求清单");
+                item.setAddOrReduce(1);
+                item.setIntegralNum("1");
+                IntegratingTaskVO taskVO14=new IntegratingTaskVO();
+                taskVO14.setIsDraw("2");
+                taskVO14.setId(item.getTaskId());
+                taskService.editData(taskVO14);
+                break;
+            case "15":
+                //15查看微心愿
+                item.setRemark("查看微心愿");
+                item.setAddOrReduce(1);
+                item.setIntegralNum("1");
+                IntegratingTaskVO taskVO15=new IntegratingTaskVO();
+                taskVO15.setIsDraw("2");
+                taskVO15.setId(item.getTaskId());
+                taskService.editData(taskVO15);
+                break;
+            case "16":
+                //查看随手拍
+                item.setRemark("查看随手拍");
+                item.setAddOrReduce(1);
+                item.setIntegralNum("1");
+                IntegratingTaskVO taskVO16=new IntegratingTaskVO();
+                taskVO16.setIsDraw("2");
+                taskVO16.setId(item.getTaskId());
+                taskService.editData(taskVO16);
+                break;
+            case "17":
+                //每日签到
+//                IntegratingTask task2=taskService.getDetails(item.getUserId(),
+//                        item.getCommunityId(),item.getType());
+//                if(task2!=null && StringUtils.equals("2",task2.getIsDraw()) )
+//                {
+//                    return R.ok();
+//                }
+                item.setRemark("每日签到");
+                item.setAddOrReduce(1);
+//                IntegratingTaskVO taskVO2=new IntegratingTaskVO();
+//                taskVO2.setIsDraw("2");
+//                taskVO2.setId(item.getTaskId());
+//                taskService.editData(taskVO2);
+                break;
+            case "18":
+                //上传“随手拍”或“微心愿
+                item.setRemark("上传“随手拍”或“微心愿");
+                item.setAddOrReduce(1);
+                item.setIntegralNum("2");
+                break;
+        }
+
+        // 根据不同身份,计算钱包金额
+//        if (identityType.equals(ComActIntegralUserTrade.identityType.jm)) {
+//            int integralResidentNow = addIntegral(integralResident + amount);
+//            if (amount < 0) {
+//                reduceAmount = integralResident - integralResidentNow;
+//            }
+//            integralUserDO.setIntegralResident(integralResidentNow);
+//            integralUserDO.setIntegralAvailableResident(addIntegral(integralUserDO.getIntegralAvailableResident() + amount));
+//        } else if (identityType.equals(ComActIntegralUserTradeDO.identityType.dy)) {
+//            int integralPartyNow = addIntegral(integralParty + amount);
+//            if (amount < 0) {
+//                reduceAmount = integralParty - integralPartyNow;
+//            }
+//            integralUserDO.setIntegralParty(integralPartyNow);
+//            integralUserDO.setIntegralAvailableParty(addIntegral(integralUserDO.getIntegralAvailableParty() + amount));
+//        } else if (identityType.equals(ComActIntegralUserTradeDO.identityType.zyz)) {
+//            int integralVolunteerNow = addIntegral(integralVolunteer + amount);
+//            if (amount < 0) {
+//                reduceAmount = integralVolunteer - integralVolunteerNow;
+//            }
+//            integralUserDO.setIntegralVolunteer(integralVolunteerNow);
+//            integralUserDO.setIntegralAvailableVolunteer(addIntegral(integralUserDO.getIntegralAvailableVolunteer() + amount));
+//        }
+
+        //获取积分
+        if(!StringUtils.isEmpty(item.getIntegralNum()))
+        {
+            amount=Integer.valueOf(item.getIntegralNum());
+        }
+
+
+        //积分总数加减
+        if (item.getAddOrReduce() == ComActIntegralUserTrade.changeType.add)
+        {
+            int integralResidentNow = addIntegral(integralResident + amount);
+            integralUserDO.setIntegralResident(integralResidentNow);
+            integralUserDO.setIntegralAvailableResident(addIntegral(integralUserDO.getIntegralAvailableResident() + amount));
+
+        }
+        else {
+
+            int integralResidentNow = addIntegral(integralResident - amount);
+            integralUserDO.setIntegralResident(integralResidentNow);
+            integralUserDO.setIntegralAvailableResident(addIntegral(integralUserDO.getIntegralAvailableResident() - amount));
+        }
+
+
+        //积分总数加减
+        if (item.getAddOrReduce() == ComActIntegralUserTrade.changeType.reduce)
+        {
+//            integralUserDO.setIntegralSum(addIntegral(integralSum - amount));
+            integralUserDO.setIntegralAvailableSum(addIntegral(integralAvailableSum - amount));
+        }
+        else {
+            integralUserDO.setIntegralSum(addIntegral(integralSum + amount));
+            integralUserDO.setIntegralAvailableSum(addIntegral(integralAvailableSum + amount));
+        }
+        integralUserDO.setUpdateAt(new Date());
+
+        // 更新钱包
+        integralUsersService.updateById(integralUserDO);
+
+        // 增加积分账户交易记录
+        Long tradeId = tradeDaoService.addIntegralTradeRecord(Long.valueOf(item.getUserId()), integralId, Long.valueOf(item.getCommunityId()),
+                Long.valueOf(item.getServiceId()), Integer.valueOf(item.getType()), Integer.valueOf(item.getIntegralNum()),
+                item.getAddOrReduce(), item.getRemark(), Integer.valueOf(item.getIdentityType()), 2L);
+
+        // 增加积分账户变更记录
+        changeDAOService.addIntegralUserChangeRecord(Long.valueOf(item.getUserId()), integralId,
+                Long.valueOf(item.getCommunityId()), integralSum,
+                integralUserDO.getIntegralSum(), integralAvailableSum, integralUserDO.getIntegralAvailableSum(),
+                integralFrozenSum, integralUserDO.getIntegralFrozenSum(), integralParty, integralUserDO.getIntegralParty(),
+                integralAvailableParty, integralUserDO.getIntegralAvailableParty(), integralFrozenParty,
+                integralUserDO.getIntegralFrozenParty(), integralVolunteer, integralUserDO.getIntegralVolunteer(),
+                integralAvailableVolunteer, integralUserDO.getIntegralAvailableVolunteer(), integralFrozenVolunteer,
+                integralUserDO.getIntegralFrozenVolunteer(), integralResident, integralUserDO.getIntegralResident(),
+                integralAvailableResident, integralUserDO.getIntegralAvailableResident(), integralFrozenResident,
+                integralUserDO.getIntegralFrozenResident(), tradeId);
+
+        return R.ok();
+    }
+
+
+
+    private int addIntegral(int integral) {
+        return integral > 0 ? integral : 0;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComBpActivityServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComBpActivityServiceImpl.java
new file mode 100644
index 0000000..185499d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComBpActivityServiceImpl.java
@@ -0,0 +1,597 @@
+package com.panzhihua.service_dangjian.service.impl;
+
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.stream.Collectors;
+
+import javax.annotation.Resource;
+
+import org.apache.http.client.utils.DateUtils;
+import org.springframework.beans.BeanUtils;
+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.panzhihua.common.exceptions.PartyBuildingMemberException;
+import com.panzhihua.common.model.dtos.partybuilding.ActivitySignUpDTO;
+import com.panzhihua.common.model.dtos.partybuilding.ComPbActivityDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActActivityVO;
+import com.panzhihua.common.model.vos.partybuilding.PageActivityMembersVO;
+import com.panzhihua.common.model.vos.partybuilding.PartyBuildingActivityVO;
+import com.panzhihua.common.model.vos.partybuilding.PartyBuildingMemberVO;
+import com.panzhihua.common.utlis.SensitiveUtil;
+import com.panzhihua.service_dangjian.dao.ComBpActivityDAO;
+import com.panzhihua.service_dangjian.dao.ComPbActivityMemberDAO;
+import com.panzhihua.service_dangjian.dao.ComPbMemberDAO;
+import com.panzhihua.service_dangjian.model.dos.ComPbActivityDO;
+import com.panzhihua.service_dangjian.model.dos.ComPbActivityMemberDO;
+import com.panzhihua.service_dangjian.model.dos.ComPbMemberDO;
+import com.panzhihua.service_dangjian.service.ComBpActivityService;
+
+import lombok.extern.slf4j.Slf4j;
+
+import static java.util.Objects.nonNull;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党员活动
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-01 09:16
+ **/
+@Slf4j
+@Service
+public class ComBpActivityServiceImpl implements ComBpActivityService {
+    @Resource
+    private ComBpActivityDAO comBpActivityDAO;
+    @Resource
+    private ComPbActivityMemberDAO comPbActivityMemberDAO;
+    @Resource
+    private ComPbMemberDAO comPbMemberDAO;
+
+    public static void main(String[] args) {
+        DateFormat formatTo = new SimpleDateFormat("M月d ahh:mm");
+        String format = formatTo.format(new Date());
+        System.out.println(format);
+    }
+
+    /**
+     * 查询某个党员加入的所有党员活动
+     *
+     * @param partyBuildingActivityVO
+     *            查询参数
+     * @return 活动集合
+     */
+    @Override
+    public R listPartyMemberActivities(PartyBuildingActivityVO partyBuildingActivityVO) {
+        List<PartyBuildingActivityVO> partyBuildingActivityVOS =
+            comBpActivityDAO.listPartyMemberActivities(partyBuildingActivityVO);
+        return R.ok(partyBuildingActivityVOS);
+    }
+
+    /**
+     * 活动报名名单分页查询
+     *
+     * @param pageActivityMembersVO
+     *            查询参数 手机号 名字
+     * @return 分页数据
+     */
+    @Override
+    public R pageActivityMembers(PageActivityMembersVO pageActivityMembersVO) {
+        Page page = new Page<>();
+        Long pageNum = pageActivityMembersVO.getPageNum();
+        Long pageSize = pageActivityMembersVO.getPageSize();
+        Long activityId = pageActivityMembersVO.getActivityId();
+        if (null == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<PageActivityMembersVO> iPage = comPbActivityMemberDAO.pageActivityMembers(page, pageActivityMembersVO);
+        iPage.getRecords().forEach(record -> {
+            record.setPhone(SensitiveUtil.desensitizedPhoneNumber(record.getPhone()));
+        });
+        Map<String, Object> map = new HashMap<>(3);
+        ComPbActivityDO comPbActivityDO = comBpActivityDAO.selectById(activityId);
+        map.put("page", iPage);
+        map.put("name", comPbActivityDO.getName());
+        map.put("createAt", DateUtils.formatDate(comPbActivityDO.getCreateAt(), "yyyy-MM-dd HH:mm:ss"));
+        return R.ok(map);
+    }
+
+    /**
+     * 党员活动详情
+     *
+     * @param id
+     *            活动id
+     * @return 活动详情内容
+     */
+    @Override
+    public R activityinfo(Long id, Long userId) {
+        ComPbActivityDO comPbActivityDO = comBpActivityDAO.selectById(id);
+        if (ObjectUtils.isEmpty(comPbActivityDO)) {
+            return R.fail("活动不存在");
+        }
+        LoginUserInfoVO loginUserInfoVO = comBpActivityDAO.selectUserInfoByUserId(comPbActivityDO.getCreateBy());
+        Integer type = loginUserInfoVO.getType();
+        int isPerson = 0;
+        if (type.intValue() == 1) {
+            isPerson = 1;
+        }
+        PartyBuildingActivityVO partyBuildingActivityVO = new PartyBuildingActivityVO();
+        BeanUtils.copyProperties(comPbActivityDO, partyBuildingActivityVO);
+
+        List<PartyBuildingMemberVO> partyBuildingMemberVOS = new ArrayList<>();
+        List<ComPbActivityMemberDO> comPbActivityMemberDOS =
+            comPbActivityMemberDAO.selectList(new QueryWrapper<ComPbActivityMemberDO>().lambda()
+                .eq(ComPbActivityMemberDO::getActivityId, id).orderByDesc(ComPbActivityMemberDO::getCreateAt));
+        if (!ObjectUtils.isEmpty(comPbActivityMemberDOS)) {
+            int size = comPbActivityMemberDOS.size();
+            if (size >= 6) {
+                comPbActivityMemberDOS = comPbActivityMemberDOS.subList(0, 6);
+            }
+            comPbActivityMemberDOS.forEach(member -> {
+                PartyBuildingMemberVO partyBuildingMemberVO = new PartyBuildingMemberVO();
+                BeanUtils.copyProperties(member, partyBuildingMemberVO);
+                partyBuildingMemberVO.setCreateAt(member.getCreateAt());
+                partyBuildingMemberVOS.add(partyBuildingMemberVO);
+            });
+            partyBuildingActivityVO.setParticipationActualNum(comPbActivityMemberDOS.size());
+        } else {
+            partyBuildingActivityVO.setParticipationActualNum(0);
+        }
+        // List<ComPbActivityMemberDO> comPbActivityMemberDOS = comPbActivityMemberDAO.selectList(new
+        // QueryWrapper<ComPbActivityMemberDO>().lambda().eq(ComPbActivityMemberDO::getActivityId,
+        // id).orderByDesc(ComPbActivityMemberDO::getCreateAt));
+        /* List<PartyBuildingMemberVO> partyBuildingMemberVOS = new ArrayList<>();
+        if (!ObjectUtils.isEmpty(comPbActivityMemberDOS)) {
+            List<Long> collect = comPbActivityMemberDOS.stream().map(ComPbActivityMemberDO::getMemberId).collect(Collectors.toList());
+            int size = collect.size();
+            if (size>=6) {
+                collect=collect.subList(0,6);
+            }
+            List<ComPbMemberDO> comPbMemberDOS = comPbMemberDAO.selectList(new QueryWrapper<ComPbMemberDO>().lambda().in(ComPbMemberDO::getId, collect));
+            comPbMemberDOS.forEach(comPbMemberDO -> {
+                PartyBuildingMemberVO partyBuildingMemberVO = new PartyBuildingMemberVO();
+                BeanUtils.copyProperties(comPbMemberDO, partyBuildingMemberVO);
+                partyBuildingMemberVOS.add(partyBuildingMemberVO);
+            });
+            partyBuildingActivityVO.setParticipationActualNum(size);
+        } else {
+            partyBuildingActivityVO.setParticipationActualNum(0);
+        }*/
+        ComPbActivityMemberDO comPbActivityMemberDO = comPbActivityMemberDAO.selectByUserIdActivityId(id, userId);
+        if (ObjectUtils.isEmpty(comPbActivityMemberDO)) {
+            partyBuildingActivityVO.setIsSign(0);
+        } else {
+            partyBuildingActivityVO.setIsSign(1);
+        }
+        partyBuildingActivityVO.setPartyBuildingMemberVOS(partyBuildingMemberVOS);
+        partyBuildingActivityVO.setIsPerson(isPerson);
+        partyBuildingActivityVO.setCreateByName(loginUserInfoVO.getName());
+
+        // 查询社区名称
+        if (partyBuildingActivityVO.getCommunityId() != null) {
+            partyBuildingActivityVO.setCommunityName(
+                comBpActivityDAO.selectCommunityNameByCommunityId(partyBuildingActivityVO.getCommunityId()));
+        }
+
+        partyBuildingActivityVO.setCodeType(2);
+        return R.ok(partyBuildingActivityVO);
+    }
+
+    /**
+     * 新增党员活动
+     *
+     * @param partyBuildingActivityVO
+     *            参数
+     * @return 新增结果
+     */
+    @Override
+    public R addactivity(PartyBuildingActivityVO partyBuildingActivityVO) {
+        ComPbActivityDO comPbActivityDO = new ComPbActivityDO();
+        BeanUtils.copyProperties(partyBuildingActivityVO, comPbActivityDO);
+        Date now = new Date();
+        comPbActivityDO.setEnrollTimeBegin(now);
+        comPbActivityDO.setCreateAt(now);
+
+        Integer status = partyBuildingActivityVO.getStatus();
+        if (status != null && status.intValue() == 2) {// 点击'保存并发布' 按钮
+            // 默认设置为“进行中”
+            comPbActivityDO.setStatus(4);
+        }
+
+        int insert = comBpActivityDAO.insert(comPbActivityDO);
+        if (insert > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 编辑党员活动
+     *
+     * @param partyBuildingActivityVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @Override
+    public R updateActivity(PartyBuildingActivityVO partyBuildingActivityVO) {
+        ComPbActivityDO comPbActivityDO = new ComPbActivityDO();
+        BeanUtils.copyProperties(partyBuildingActivityVO, comPbActivityDO);
+        int update = comBpActivityDAO.updateById(comPbActivityDO);
+        if (update > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 发布党员活动
+     *
+     * @param id
+     *            主键id
+     * @return 发布结果
+     */
+    @Override
+    public R releaseActivity(Long id) {
+        ComPbActivityDO comPbActivityDO = new ComPbActivityDO();
+        comPbActivityDO.setId(id);
+        comPbActivityDO.setStatus(2);
+        comPbActivityDO.setReleaseTime(new Date());
+        int update = comBpActivityDAO.updateById(comPbActivityDO);
+        if (update > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 删除党员活动
+     *
+     * @param id
+     *            主键id
+     * @return 删除结果
+     */
+    @Override
+    public R deleteActivity(Long id) {
+        int delete = comBpActivityDAO.deleteById(id);
+        if (delete > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 分页查询党员活动
+     *
+     * @param partyBuildingActivityVO
+     *            查询条件
+     * @return 查询结果
+     */
+    @Override
+    public R pageActivity(PartyBuildingActivityVO partyBuildingActivityVO) {
+        Page page = new Page<>();
+        Long pageNum = partyBuildingActivityVO.getPageNum();
+        Long pageSize = partyBuildingActivityVO.getPageSize();
+        if (null == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<PartyBuildingActivityVO> iPage = comBpActivityDAO.pageActivity(page, partyBuildingActivityVO);
+        List<PartyBuildingActivityVO> records = iPage.getRecords();
+        if (!ObjectUtils.isEmpty(records)) {
+            DateFormat formatTo = new SimpleDateFormat("M月d ahh:mm");
+            records.forEach(partyBuildingActivityVO1 -> {
+                Date activityTimeBegin = partyBuildingActivityVO1.getActivityTimeBegin();
+                Integer status = partyBuildingActivityVO1.getStatus();
+                String createByName = partyBuildingActivityVO1.getCreateByName();
+                if (!ObjectUtils.isEmpty(activityTimeBegin)) {
+                    partyBuildingActivityVO1.setActivityTimeBeginFormat(formatTo.format(activityTimeBegin));
+                }
+                if (status.intValue() == 3) {
+                    partyBuildingActivityVO1.setStatus(4);
+                }
+                if (!ObjectUtils.isEmpty(createByName) && createByName.equals("管理员")) {
+                    partyBuildingActivityVO1.setIsPerson(0);
+                } else {
+                    partyBuildingActivityVO1.setIsPerson(1);
+                }
+            });
+        }
+        return R.ok(iPage);
+    }
+
+    /**
+     * 取消活动
+     *
+     * @param partyBuildingActivityVO
+     *            取消原因
+     * @return 操作结果
+     */
+    @Override
+    public R cancelActivity(PartyBuildingActivityVO partyBuildingActivityVO) {
+        ComPbActivityDO comPbActivityDO = new ComPbActivityDO();
+        comPbActivityDO.setId(partyBuildingActivityVO.getId());
+        comPbActivityDO.setCancelReason(partyBuildingActivityVO.getCancelReason());
+        comPbActivityDO.setStatus(6);
+        int update = comBpActivityDAO.updateById(comPbActivityDO);
+        if (update > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 用户的所有党建活动
+     *
+     * @param userId
+     *            用户id
+     * @param communityId
+     *            社区id
+     * @param status
+     * @return 党建活动列表
+     */
+    @Override
+    public R listActivity(Long userId, Long communityId, Integer status) {
+        List<ComActActivityVO> comActActivityVOS = new ArrayList<>();
+        /*Long memberId=comPbActivityMemberDAO.selectMemberIdByUserId(userId,communityId);
+        if (ObjectUtils.isEmpty(memberId)) {
+            return R.fail();
+        }*/
+        List<ComPbActivityMemberDO> comPbActivityMemberDOS = comPbActivityMemberDAO.selectList(
+            new QueryWrapper<ComPbActivityMemberDO>().lambda().eq(ComPbActivityMemberDO::getUserId, userId));
+        if (ObjectUtils.isEmpty(comPbActivityMemberDOS)) {
+            return R.fail();
+        }
+        List<Long> collect = comPbActivityMemberDOS.stream()
+            .map(comPbActivityMemberDO -> comPbActivityMemberDO.getActivityId()).collect(Collectors.toList());
+        List<ComPbActivityDO> comPbActivityDOS = comBpActivityDAO.selectBatchIds(collect);
+        if (nonNull(status)) {
+            comPbActivityDOS = comPbActivityDOS.stream()
+                    .filter(activityDO -> activityDO.getStatus().equals(status)).collect(Collectors.toList());
+        }
+        if (!comPbActivityDOS.isEmpty()) {
+            comPbActivityDOS.forEach(comPbActivityDO -> {
+                ComActActivityVO comActActivityVO = new ComActActivityVO();
+                Long createBy = comPbActivityDO.getCreateBy();
+                LoginUserInfoVO loginUserInfoVO = comPbActivityMemberDAO.selectUserInfo(createBy);
+                Integer type = loginUserInfoVO.getType();
+                if (type == 1) {
+                    comActActivityVO.setIsPerson(1);
+                } else {
+                    comActActivityVO.setIsPerson(0);
+                }
+                Integer activityStatus = comPbActivityDO.getStatus();
+                if (activityStatus.intValue() == 3) {
+                    activityStatus = 4;
+                }
+                comActActivityVO.setType(3);
+                comActActivityVO.setId(comPbActivityDO.getId());
+                comActActivityVO.setStatus(activityStatus);
+                comActActivityVO.setActivityName(comPbActivityDO.getName());
+                comActActivityVO.setCover(comPbActivityDO.getCover());
+                comActActivityVO.setBeginAt(comPbActivityDO.getActivityTimeBegin());
+                comActActivityVO.setSingDate(comPbActivityMemberDOS.stream()
+                        .filter(comPbActivityMemberDO -> comPbActivityMemberDO.getActivityId().equals(comActActivityVO.getId()))
+                        .collect(Collectors.toList()).get(0).getCreateAt());
+                comActActivityVOS.add(comActActivityVO);
+            });
+        }
+        return R.ok(comActActivityVOS);
+    }
+
+    /**
+     * 党员活动人员参入列表
+     *
+     * @param id
+     *            活动id
+     * @return 党员集合
+     */
+    @Override
+    public R listPartyBuildingMember(Long id) {
+        List<PartyBuildingMemberVO> partyBuildingMemberVOS = new ArrayList<>();
+        List<ComPbActivityMemberDO> comPbActivityMemberDOS =
+            comPbActivityMemberDAO.selectList(new QueryWrapper<ComPbActivityMemberDO>().lambda()
+                .eq(ComPbActivityMemberDO::getActivityId, id).orderByDesc(ComPbActivityMemberDO::getCreateAt));
+        if (!ObjectUtils.isEmpty(comPbActivityMemberDOS)) {
+            comPbActivityMemberDOS.forEach(member -> {
+                PartyBuildingMemberVO partyBuildingMemberVO = new PartyBuildingMemberVO();
+                BeanUtils.copyProperties(member, partyBuildingMemberVO);
+                partyBuildingMemberVO.setCreateAt(member.getCreateAt());
+                partyBuildingMemberVOS.add(partyBuildingMemberVO);
+            });
+        }
+        /*if (!ObjectUtils.isEmpty(comPbActivityMemberDOS)) {
+            List<Long> collect = comPbActivityMemberDOS.stream().map(ComPbActivityMemberDO::getMemberId).collect(Collectors.toList());
+            List<ComPbMemberDO> comPbMemberDOS = comPbMemberDAO.selectList(new QueryWrapper<ComPbMemberDO>().lambda().in(ComPbMemberDO::getId, collect));
+            comPbMemberDOS.forEach(comPbMemberDO -> {
+                PartyBuildingMemberVO partyBuildingMemberVO = new PartyBuildingMemberVO();
+                BeanUtils.copyProperties(comPbMemberDO, partyBuildingMemberVO);
+                ComPbActivityMemberDO comPbActivityMemberDO1 = comPbActivityMemberDOS.stream().filter(comPbActivityMemberDO -> comPbActivityMemberDO.getMemberId().equals(comPbMemberDO.getId())).collect(Collectors.toList()).get(0);
+                partyBuildingMemberVO.setCreateAt(comPbActivityMemberDO1.getCreateAt());
+                partyBuildingMemberVOS.add(partyBuildingMemberVO);
+            });
+        }*/
+        return R.ok(partyBuildingMemberVOS);
+    }
+
+    /**
+     * 报名、取消报名党员活动
+     *
+     * @param activitySignUpDTO
+     *            操作参数
+     * @return 操作结果
+     */
+    @Override
+    public R putActivitySignUp(ActivitySignUpDTO activitySignUpDTO) {
+        Long id = activitySignUpDTO.getId();
+        Long userId = activitySignUpDTO.getUserId();
+        ComPbActivityDO comPbActivityDO = comBpActivityDAO.selectById(id);
+        if (ObjectUtils.isEmpty(comPbActivityDO)) {
+            return R.fail("活动不存在");
+        }
+        ComPbMemberDO comPbMemberDO = comPbMemberDAO.selectByUserId(userId);
+        if (ObjectUtils.isEmpty(comPbMemberDO)) {
+            return R.fail("您不是党员");
+        }
+        Integer type = activitySignUpDTO.getType();
+        ComPbActivityMemberDO comPbActivityMemberDO =
+            comPbActivityMemberDAO.selectOne(new QueryWrapper<ComPbActivityMemberDO>().lambda()
+                .eq(ComPbActivityMemberDO::getMemberId, comPbMemberDO.getId())
+                .eq(ComPbActivityMemberDO::getActivityId, id));
+        boolean empty = ObjectUtils.isEmpty(comPbActivityMemberDO);
+        int mum = 0;
+        if (type.intValue() == 1) {
+            if (empty) {
+                ComPbActivityMemberDO comPbActivityMemberDO1 = new ComPbActivityMemberDO();
+                comPbActivityMemberDO1.setActivityId(id);
+                comPbActivityMemberDO1.setMemberId(comPbMemberDO.getId());
+                comPbActivityMemberDO1.setUserId(userId);
+                // 添加参加活动的党员快照信息,防止党员信息删除后无法显示
+                comPbActivityMemberDO1.setName(comPbMemberDO.getName());
+                comPbActivityMemberDO1.setPhotoPath(comPbMemberDO.getPhotoPath());
+                comPbActivityMemberDO1.setCreateAt(new Date());
+                mum = comPbActivityMemberDAO.insert(comPbActivityMemberDO1);
+            } else {
+                return R.ok(null, "已经加入了");
+            }
+        } else {
+            if (empty) {
+                return R.ok(null, "已经取消");
+            } else {
+                Long createBy = comPbActivityDO.getCreateBy();
+                if (createBy.equals(userId)) {
+                    return R.fail("发起者不能取消报名");
+                }
+                mum = comPbActivityMemberDAO.deleteById(comPbActivityMemberDO.getId());
+            }
+        }
+        if (mum > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 获取党建活动所有参入人员的id集合
+     *
+     * @param id
+     *            党建活动id
+     * @return 人员id集合
+     */
+    @Override
+    public R selectAllPartyBuildingActivityMembers(Long id) {
+        List<Long> longs = comPbActivityMemberDAO.selectAllPartyBuildingActivityMembers(id);
+        return R.ok(longs);
+    }
+
+    /**
+     * 定时任务取消党建活动
+     *
+     * @return 取消党建活动数量
+     */
+    @Override
+    public R timedTaskPartyBuildingActivity() {
+        List<Long> ids = comBpActivityDAO.selectTimedTaskPartyBuildingActivity();
+        List<PartyBuildingActivityVO> partyBuildingActivityVOS = new ArrayList<>();
+        if (!ObjectUtils.isEmpty(ids)) {
+            List<ComPbActivityDO> comPbActivityDOS = comBpActivityDAO.selectBatchIds(ids);
+            comPbActivityDOS.forEach(comPbActivityDO -> {
+                PartyBuildingActivityVO partyBuildingActivityVO = new PartyBuildingActivityVO();
+                BeanUtils.copyProperties(comPbActivityDO, partyBuildingActivityVO);
+                List<Long> userIdS =
+                    comBpActivityDAO.selectTimedTaskPartyBuildingActivityUserids(comPbActivityDO.getId());
+                partyBuildingActivityVO.setUserIds(userIdS);
+                partyBuildingActivityVOS.add(partyBuildingActivityVO);
+            });
+            int i = comBpActivityDAO.updateBatchIds(ids);
+            log.info("定时任务取消党建活动数量【{}】", i);
+        }
+        return R.ok(partyBuildingActivityVOS);
+    }
+
+    /**
+     * 定时任务刷新党建活动的各个状态 除取消外
+     *
+     * @return 修改结果
+     */
+    @Override
+    public R timedTaskPartyBuildingActivityAll() {
+        // 修改发布状态为未开始
+        int num = comBpActivityDAO.updateStatusToNotBegin();
+        log.info("定时任务修改党建活动--修改发布状态为未开始数量【{}】", num);
+        // 修改报名状态为报名中
+        int num1 = comBpActivityDAO.updateStatusToSign();
+        log.info("定时任务修改党建活动--修改报名状态为报名中始数量【{}】", num1);
+        // 查询已结束的活动id,便于计算用户积分
+        List<Long> pbActivityEndIds = comBpActivityDAO.getTaskPbActivityEndIds();
+        // 修改进行状态为进行中 或者已结束
+        int num2 = comBpActivityDAO.updateStatusToActiveOrEnd();
+        log.info("定时任务修改党建活动--修改进行状态为进行中 或者已结束数量【{}】", num2);
+        return R.ok(pbActivityEndIds);
+    }
+
+    /**
+     * 创建党员活动 小程序创建党员活动
+     *
+     * @param comPbActivityDTO
+     *            创建内容
+     * @return 创建结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R addActivityApplets(ComPbActivityDTO comPbActivityDTO) {
+        ComPbActivityDO comPbActivityDO = new ComPbActivityDO();
+        Long createBy = comPbActivityDTO.getCreateBy();
+        BeanUtils.copyProperties(comPbActivityDTO, comPbActivityDO);
+        int insert = comBpActivityDAO.insert(comPbActivityDO);
+        if (insert > 0) {
+            ComPbActivityDO comPbActivityDO1 = comBpActivityDAO.selectOne(new QueryWrapper<ComPbActivityDO>().lambda()
+                .eq(ComPbActivityDO::getName, comPbActivityDTO.getName())
+                .eq(ComPbActivityDO::getCover, comPbActivityDTO.getCover()).last(" order by create_at desc limit 1 "));
+            Long comPbActivityDO1Id = comPbActivityDO1.getId();
+            ComPbMemberDO comPbMemberDO = comPbMemberDAO.selectByUserId(createBy);
+            if (ObjectUtils.isEmpty(comPbMemberDO)) {
+                log.error("【{}】不是党员", createBy);
+                throw new PartyBuildingMemberException("用户不是党员");
+            }
+            Long comPbMemberDOId = comPbMemberDO.getId();
+            ComPbActivityMemberDO comPbActivityMemberDO = new ComPbActivityMemberDO();
+            comPbActivityMemberDO.setMemberId(comPbMemberDOId);
+            comPbActivityMemberDO.setActivityId(comPbActivityDO1Id);
+            comPbActivityMemberDO.setCreateAt(new Date());
+            comPbActivityMemberDO.setUserId(comPbActivityDTO.getCreateBy());
+            comPbActivityMemberDO.setName(comPbMemberDO.getName());
+            comPbActivityMemberDO.setPhotoPath(comPbMemberDO.getPhotoPath());
+            comPbActivityMemberDAO.insert(comPbActivityMemberDO);
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 根据党员活动id查询活动下报名人员
+     *
+     * @param activityId
+     *            党员活动id
+     * @return 活动下报名人员
+     */
+    @Override
+    public R getTaskPbActivityPeopleList(Long activityId) {
+        return R.ok(this.comBpActivityDAO.getTaskPbActivityPeopleList(activityId));
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComPbCheckUnitServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComPbCheckUnitServiceImpl.java
new file mode 100644
index 0000000..f2e355a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComPbCheckUnitServiceImpl.java
@@ -0,0 +1,410 @@
+package com.panzhihua.service_dangjian.service.impl;
+
+import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+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.google.common.collect.Lists;
+import com.panzhihua.common.enums.ComPbCheckUnitTypeEnum;
+import com.panzhihua.common.model.dtos.common.AddComPbCheckUnitDto;
+import com.panzhihua.common.model.dtos.common.EditComPbCheckUnitDto;
+import com.panzhihua.common.model.dtos.common.PageComPbCheckUnitDto;
+import com.panzhihua.common.model.dtos.common.PagePbCheckUnitCommonDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.TreeListVO;
+import com.panzhihua.common.model.vos.common.ComPbCheckUnitVo;
+import com.panzhihua.common.model.vos.common.PbCheckUnitStatisticsVo;
+import com.panzhihua.common.model.vos.partybuilding.excel.ComPbCheckUnitErrorExcelVO;
+import com.panzhihua.common.model.vos.partybuilding.excel.ComPbCheckUnitExcelVO;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_dangjian.dao.ComPbCheckUnitMapper;
+import com.panzhihua.service_dangjian.dao.ComPbMemberDAO;
+import com.panzhihua.service_dangjian.dao.ComPbMemberRoleDAO;
+import com.panzhihua.service_dangjian.entity.ComPbCheckUnit;
+import com.panzhihua.service_dangjian.model.dos.ComPbMemberDO;
+import com.panzhihua.service_dangjian.model.dos.ComPbMemberRoleDO;
+import com.panzhihua.service_dangjian.service.ComPbCheckUnitService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * title: 党建-报到单位表服务实现类
+ * <p>
+ * projectName 成都呐喊信息技术有限公司-智慧社区项目
+ * <p>
+ * description: 党建-报到单位表服务实现类
+ *
+ * @author lyq
+ * @date 2022-02-16 16:22:26
+ */
+@Service("comPbCheckUnitService")
+public class ComPbCheckUnitServiceImpl extends ServiceImpl<ComPbCheckUnitMapper, ComPbCheckUnit> implements ComPbCheckUnitService {
+
+    @Resource
+    private ComPbMemberDAO comPbMemberDAO;
+    @Resource
+    private ComPbMemberRoleDAO comPbMemberRoleDAO;
+
+
+    /**
+     * description  queryByPage  分页查询
+     *
+     * @param comPbCheckUnit 请求参数
+     * @return 分页查询列表数据
+     * @author lyq
+     * @date 2022-02-16 16:22:26
+     */
+    @Override
+    public R queryByPage(PageComPbCheckUnitDto comPbCheckUnit) {
+
+        Long communityId = comPbCheckUnit.getCommunityId();
+        if (communityId != null){
+            List<Long> communityIds = comPbMemberDAO.selectIds(communityId);
+            if (CollUtil.isEmpty(communityIds)) {
+                communityIds = new ArrayList<>();
+                communityIds.add(communityId);
+            }
+            comPbCheckUnit.setCommunityIds(communityIds);
+        }
+        IPage<ComPbCheckUnitVo> checkUnitVoPage= this.baseMapper.queryAllByLimit(comPbCheckUnit, new Page(comPbCheckUnit.getPageNum(), comPbCheckUnit.getPageSize()));
+        checkUnitVoPage.getRecords().forEach(checkUnit -> {
+            if(StringUtils.isEmpty(checkUnit.getOrgName())){
+                checkUnit.setOrgName("待编辑党支部");
+            }
+        });
+        return R.ok(checkUnitVoPage);
+    }
+
+    @Override
+    public R treeList(TreeListVO treeListVO) {
+        QueryWrapper<ComPbCheckUnit> wrapper = new QueryWrapper<>();
+        if(treeListVO.getName() != null){
+            wrapper.eq("belong_to",treeListVO.getName());
+        } else if(treeListVO.getOrgName() != null){
+            wrapper.eq("org_name",treeListVO.getOrgName());
+        } else {
+            return R.ok();
+        }
+        List<ComPbCheckUnit> comPbCheckUnits = this.baseMapper.selectList(wrapper);
+        return R.ok(comPbCheckUnits);
+    }
+
+    @Override
+    public R orgList() {
+        QueryWrapper<ComPbCheckUnit> wrapper = new QueryWrapper<>();
+        List<ComPbCheckUnitVo> voList = new ArrayList<>();
+        List<ComPbCheckUnit> list = this.baseMapper.selectList(wrapper);
+        Map<String, List<ComPbCheckUnit>> map = list.stream().filter(f -> f.getOrgName() != null).collect(Collectors.groupingBy(ComPbCheckUnit::getOrgName));
+        for (Map.Entry<String, List<ComPbCheckUnit>> entry : map.entrySet()) {
+            ComPbCheckUnitVo pbCheckUnitVo = new ComPbCheckUnitVo();
+            pbCheckUnitVo.setOrgName(entry.getKey());
+            voList.add(pbCheckUnitVo);
+        }
+        return R.ok(voList);
+    }
+
+    /**
+     * description  insert  新增数据
+     *
+     * @param comPbCheckUnit 请求参数
+     * @return 新增结果
+     * @author lyq
+     * @date 2022-02-16 16:22:26
+     */
+    @Override
+    @Transactional
+    public R insert(AddComPbCheckUnitDto comPbCheckUnit) {
+        Long communityId=this.baseMapper.selectCommunityId(comPbCheckUnit.getHelpCommunityName().split(",")[0],comPbCheckUnit.getHelpCommunityName().split(",")[1],comPbCheckUnit.getHelpCommunityName().split(",")[2]);
+        ComPbCheckUnit entity = new ComPbCheckUnit();
+        BeanUtils.copyProperties(comPbCheckUnit, entity);
+        int a=0;
+        if(!StringUtils.isEmpty(comPbCheckUnit.getAdminPhone()))
+        {
+            a=this.baseMapper.selectOrgAdmin(comPbCheckUnit.getAdminPhone());
+        }
+        if(a!=0)
+        {
+            return R.fail("该手机号已绑定管理员!");
+        }
+        if(communityId!=null){
+            entity.setCommunityId(communityId);
+        }
+        if (this.baseMapper.insert(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    /**
+     * description  update  修改数据
+     *
+     * @param editDto 请求参数
+     * @return 修改结果
+     * @author lyq
+     * @date 2022-02-16 16:22:26
+     */
+    @Override
+    public R update(EditComPbCheckUnitDto editDto) {
+        ComPbCheckUnit entity = this.baseMapper.selectById(editDto.getId());
+        if (entity == null) {
+            return R.fail("未查询到该记录");
+        }
+        BeanUtils.copyProperties(editDto, entity);
+        if (this.baseMapper.updateById(entity) > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败");
+    }
+
+    /**
+     * description  deleteById  通过主键删除数据
+     *
+     * @param id 主键id
+     * @return 删除结果
+     * @author lyq
+     * @date 2022-02-16 16:22:26
+     */
+    @Override
+    public R deleteById(Long id) {
+        Integer memberCount = comPbMemberDAO.selectCount(new QueryWrapper<ComPbMemberDO>().lambda()
+                .eq(ComPbMemberDO::getCheckUnitId,id));
+        if(memberCount > 0){
+            return R.fail("该数据已被引用,无法删除!");
+        }
+        Integer memberRoleCount = comPbMemberRoleDAO.selectCount(new QueryWrapper<ComPbMemberRoleDO>().lambda()
+                .eq(ComPbMemberRoleDO::getCheckUnitId,id));
+        if(memberRoleCount > 0){
+            return R.fail("该数据已被引用,无法删除!");
+        }
+        if (this.baseMapper.deleteById(id) > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    /**
+     * description  detailById  查询详情
+     *
+     * @param id 主键id
+     * @return 详情数据
+     * @author lyq
+     * @date 2022-02-16 16:22:26
+     */
+    @Override
+    public R detailById(Long id) {
+        ComPbCheckUnitVo checkUnitVo = this.baseMapper.queryById(id);
+        if(checkUnitVo != null && StringUtils.isEmpty(checkUnitVo.getContacts())){
+            checkUnitVo.setContacts("待编辑负责人");
+        }
+        if(checkUnitVo != null && StringUtils.isEmpty(checkUnitVo.getOrgName())){
+            checkUnitVo.setOrgName("待编辑党支部");
+        }
+        return R.ok(checkUnitVo);
+    }
+
+    /**
+     * description  queryByPage  查询列表
+     *
+     * @param comPbCheckUnit 请求参数
+     * @return 列表数据
+     * @author lyq
+     * @date 2022-02-16 16:22:26
+     */
+    @Override
+    public R queryByList(PageComPbCheckUnitDto comPbCheckUnit) {
+        Long communityId = comPbCheckUnit.getCommunityId();
+        if (communityId != null){
+            List<Long> communityIds = comPbMemberDAO.selectIds(communityId);
+            if (CollUtil.isEmpty(communityIds)) {
+                communityIds = new ArrayList<>();
+                communityIds.add(communityId);
+            }
+            comPbCheckUnit.setCommunityIds(communityIds);
+        }
+        IPage<ComPbCheckUnitVo> checkUnitList = this.baseMapper.queryAllByLimit(comPbCheckUnit,new Page(comPbCheckUnit.getPageNum(),comPbCheckUnit.getPageSize()));
+        checkUnitList.getRecords().forEach(checkUnit -> {
+            if(StringUtils.isEmpty(checkUnit.getOrgName())){
+                checkUnit.setOrgName("待编辑党支部");
+            }
+            if(StringUtils.isNotEmpty(checkUnit.getAreaCode())){
+                switch (checkUnit.getAreaCode()){
+                    case "510423": checkUnit.setAreaName("西区"); break;
+                    case "510402": checkUnit.setAreaName("东区"); break;
+                    case "510411": checkUnit.setAreaName("仁和区"); break;
+                    case "510421": checkUnit.setAreaName("米易县"); break;
+                    case "510422": checkUnit.setAreaName("盐边"); break;
+                }
+            }
+        });
+        return R.ok(checkUnitList);
+    }
+
+    /**
+     * 批量导入报道单位
+     * @param list  导入数据
+     * @param communityId   社区id
+     * @param userId    用户id
+     * @return  导入结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R importCheckUnit(List<ComPbCheckUnitExcelVO> list, Long communityId, Long userId){
+        ArrayList<ComPbCheckUnitErrorExcelVO> mistakes = Lists.newArrayList();
+        ArrayList<ComPbCheckUnit> saveList = Lists.newArrayList();
+        Date nowDate = new Date();
+        if(list != null && list.size() > 0){
+            list.forEach(checkUnit -> {
+                ComPbCheckUnit comPbCheckUnit = this.baseMapper.selectOne(new QueryWrapper<ComPbCheckUnit>().lambda()
+                        .eq(ComPbCheckUnit::getCommunityId,communityId).eq(ComPbCheckUnit::getName,checkUnit.getName()));
+                if(comPbCheckUnit != null){
+                    ComPbCheckUnitErrorExcelVO checkUnitError = new ComPbCheckUnitErrorExcelVO();
+                    BeanUtils.copyProperties(checkUnit,checkUnitError);
+                    checkUnitError.setError("该单位已存在,不可重复导入");
+                    mistakes.add(checkUnitError);
+                }else{
+                    comPbCheckUnit = new ComPbCheckUnit();
+                    BeanUtils.copyProperties(checkUnit,comPbCheckUnit);
+                    comPbCheckUnit.setType(ComPbCheckUnitTypeEnum.getCodeByName(checkUnit.getType()));
+                    comPbCheckUnit.setCommunityId(communityId);
+                    comPbCheckUnit.setCreateAt(nowDate);
+                    comPbCheckUnit.setCreateBy(userId);
+                    saveList.add(comPbCheckUnit);
+                }
+            });
+        }
+        if(saveList.size() > 0){
+            this.saveBatch(saveList);
+        }
+        if(mistakes.size() > 0){
+            return R.fail(mistakes);
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R detailByPhone(String phone) {
+        List<ComPbCheckUnit> comPbCheckUnits=this.baseMapper.selectList(new QueryWrapper<ComPbCheckUnit>().lambda().eq(ComPbCheckUnit::getAdminPhone,phone));
+        if(!comPbCheckUnits.isEmpty()){
+            return R.ok(comPbCheckUnits.get(0));
+        }
+        return R.ok();
+    }
+
+    /**
+     * 报到单位统计-顶部数据
+     * @param communityId
+     * @param belongTo
+     * @param choice
+     * @return
+     */
+    @Override
+    public R unitStatisticsTop(Long communityId, String belongTo, String choice,Long[] unitIds,String yearTime) {
+        List<Long> communityIds = new ArrayList<>();
+        if (null != communityId){
+             communityIds = comPbMemberDAO.selectIds(communityId);
+            if (CollUtil.isEmpty(communityIds)) {
+                communityIds.add(communityId);
+            }
+        }
+        //查询 活动总积分
+        PbCheckUnitStatisticsVo vo = this.baseMapper.unitStatisticsTop(communityIds, belongTo, choice,unitIds,yearTime);
+        if(null != vo) {
+            Integer sum = this.baseMapper.organSumIntegral(communityIds,yearTime);
+            vo.setOrganSumIntegral(sum);
+        }
+        return R.ok(vo);
+    }
+
+    /**
+     * 报到单位统计
+     * @param commonDto
+     * @return
+     */
+    @Override
+    public R unitStatistics(PagePbCheckUnitCommonDto commonDto) {
+        Long communityId = commonDto.getCommunityId();
+        if (null != communityId) {
+            List<Long> communityIds = comPbMemberDAO.selectIds(communityId);
+            if (CollUtil.isEmpty(communityIds)) {
+                communityIds = new ArrayList<>();
+                communityIds.add(communityId);
+            }
+            commonDto.setCommunityIds(communityIds);
+        }
+        return R.ok(this.baseMapper.unitStatistics(commonDto, new Page(commonDto.getPageNum(), commonDto.getPageSize())));
+    }
+
+    /**
+     * 报到党员统计-顶部数据
+     * @param communityId
+     * @param belongTo
+     * @param choice
+     * @param checkUnitId
+     * @return
+     */
+    @Override
+    public R pbStatisticsTop(Long communityId, String belongTo, String choice, Long checkUnitId,Long[] unitIds ,String yearTime) {
+
+        List<Long> communityIds = new ArrayList<>();
+        if (null != communityId){
+            communityIds = comPbMemberDAO.selectIds(communityId);
+            if (CollUtil.isEmpty(communityIds)) {
+                communityIds.add(communityId);
+            }
+        }
+        //查询 活动总积分
+        PbCheckUnitStatisticsVo vo = this.baseMapper.pbStatisticsTop(communityIds, belongTo, choice, checkUnitId,unitIds,yearTime);
+        if(null != vo) {
+            Integer sum = this.baseMapper.pbOrganSumIntegral(communityIds,yearTime);
+            vo.setOrganSumIntegral(sum);
+        }
+        return R.ok(vo);
+    }
+
+    /**
+     * 报到党员统计-按单位归属统计
+     * @param commonDto
+     * @return
+     */
+    @Override
+    public R pbStatisticsBelong(PagePbCheckUnitCommonDto commonDto) {
+        Long communityId = commonDto.getCommunityId();
+        if (null != communityId) {
+            List<Long> communityIds = comPbMemberDAO.selectIds(communityId);
+            if (CollUtil.isEmpty(communityIds)) {
+                communityIds = new ArrayList<>();
+                communityIds.add(communityId);
+            }
+            commonDto.setCommunityIds(communityIds);
+        }
+        return R.ok(this.baseMapper.pbStatisticsBelong(commonDto, new Page(commonDto.getPageNum(), commonDto.getPageSize())));
+    }
+
+    /**
+     * 报到党员统计-按单位统计
+     * @param commonDto
+     * @return
+     */
+    @Override
+    public R pbStatisticsUnit(PagePbCheckUnitCommonDto commonDto) {
+        Long communityId = commonDto.getCommunityId();
+        List<Long> communityIds = comPbMemberDAO.selectIds(communityId);
+        if (CollUtil.isEmpty(communityIds)) {
+            communityIds = new ArrayList<>();
+            communityIds.add(communityId);
+        }
+        commonDto.setCommunityIds(communityIds);
+        return R.ok(this.baseMapper.pbStatisticsUnit(commonDto, new Page(commonDto.getPageNum(), commonDto.getPageSize())));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComPbMemberServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComPbMemberServiceImpl.java
new file mode 100644
index 0000000..a98bf96
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComPbMemberServiceImpl.java
@@ -0,0 +1,1291 @@
+package com.panzhihua.service_dangjian.service.impl;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.IdcardUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.constants.UserConstants;
+import com.panzhihua.common.exceptions.PartyBuildingMemberException;
+import com.panzhihua.common.model.dtos.community.PageMemberForInviteDTO;
+import com.panzhihua.common.model.dtos.partybuilding.ComDataStatisticsOrgDto;
+import com.panzhihua.common.model.dtos.partybuilding.NewFightResourceSharingDTO;
+import com.panzhihua.common.model.dtos.partybuilding.PageComDataStatisticsMemberDto;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.partybuilding.*;
+import com.panzhihua.common.model.vos.partybuilding.excel.ComDataStatisticsMemberExcelVo;
+import com.panzhihua.common.model.vos.partybuilding.excel.ComPbMemberRoleExcelVo;
+import com.panzhihua.common.model.vos.user.SysUserVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.RichTextUtil;
+import com.panzhihua.common.utlis.SensitiveUtil;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_dangjian.dao.*;
+import com.panzhihua.service_dangjian.entity.ComActProject;
+import com.panzhihua.service_dangjian.model.dos.ComPbDynDO;
+import com.panzhihua.service_dangjian.model.dos.ComPbDynUserDO;
+import com.panzhihua.service_dangjian.model.dos.ComPbMemberDO;
+import com.panzhihua.service_dangjian.model.dos.ComPbOrgDO;
+import com.panzhihua.service_dangjian.service.ComPbMemberService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.ObjectUtils;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import static java.util.Objects.nonNull;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党员
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 10:53
+ **/
+@Slf4j
+@Service
+public class ComPbMemberServiceImpl extends ServiceImpl<ComPbMemberDAO, ComPbMemberDO> implements ComPbMemberService {
+    private final String REDIS_ORG_ALL = "ogrlist";
+    @Resource
+    private ComPbMemberDAO comPbMemberDAO;
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+    @Resource
+    private ComPbOrgDAO comPbOrgDAO;
+    @Resource
+    private ComPbMemberRoleDAO comPbMemberRoleDAO;
+    @Resource
+    private ComPbDynDAO comPbDynDAO;
+    @Resource
+    private ComPbDynUserDAO comPbDynUserDAO;
+    @Resource
+    private UserService userService;
+    @Autowired
+    private ComActProjectMapper comActProjectMapper;
+    @Autowired
+    private NewFightResourceSharingDAO newFightResourceSharingDAO;
+
+    /**
+     * 新增党员
+     *
+     * @param partyBuildingMemberVO
+     *            党员基本信息
+     * @return 新增结果
+     */
+    @Override
+    public R addPartyBuildingMember(PartyBuildingMemberVO partyBuildingMemberVO) {
+        List<ComPbMemberDO> comPbMemberDOs = comPbMemberDAO.selectList(new QueryWrapper<ComPbMemberDO>().lambda()
+            .eq(ComPbMemberDO::getPhone, partyBuildingMemberVO.getPhone()).eq(ComPbMemberDO::getAuditResult, 1).eq(ComPbMemberDO::getType,partyBuildingMemberVO.getType()));
+        if (!ObjectUtils.isEmpty(comPbMemberDOs) && comPbMemberDOs.size() > 0) {
+            comPbMemberDOs.forEach(comPbMemberDO -> {
+                comPbMemberDAO.deleteById(comPbMemberDO.getId());
+            });
+        }
+        //添加党员同步用户小程序头像
+        R<SysUserVO> r=userService.getSysUserVOByPhone(partyBuildingMemberVO.getPhone());
+        if(R.isOk(r)&&r.getData()!=null){
+            SysUserVO sysUserVO =
+                    JSONObject.parseObject(JSONObject.toJSONString(r.getData()), SysUserVO.class);
+            partyBuildingMemberVO.setPhotoPath(sysUserVO.getImageUrl());
+        }
+        ComPbMemberDO comPbMemberDO1 = new ComPbMemberDO();
+        BeanUtils.copyProperties(partyBuildingMemberVO, comPbMemberDO1);
+        Date date = new Date();
+        comPbMemberDO1.setCreateAt(date);
+        comPbMemberDO1.setUpdateAt(date);
+        int insert = comPbMemberDAO.insert(comPbMemberDO1);
+        if (insert > 0) {
+            // 删除已驳回的记录
+//            int delete = comPbMemberDAO.delete(new QueryWrapper<ComPbMemberDO>().lambda()
+//                .eq(ComPbMemberDO::getIdCard, partyBuildingMemberVO.getIdCard())
+//                .eq(ComPbMemberDO::getUserId, partyBuildingMemberVO.getUserId())
+//                .eq(ComPbMemberDO::getCommunityId, partyBuildingMemberVO.getCommunityId())
+//                .eq(ComPbMemberDO::getAuditResult, 3));
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 批量新增党员
+     *
+     * @param list
+     *            党员集合
+     * @return 新增结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R listSavePartyBuildingMemberExcelVO(List<PartyBuildingMemberExcelVO> list) {
+        // Boolean aBoolean = stringRedisTemplate.hasKey(REDIS_ORG_ALL);
+        // ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
+        //List<PartyOrganizationVO> partyOrganizationVOS = new ArrayList<>();
+        // if (aBoolean) {
+        // String orgs = valueOperations.get(REDIS_ORG_ALL);
+        // if (!ObjectUtils.isEmpty(orgs)) {
+        // partyOrganizationVOS= JSONArray.parseArray(orgs,PartyOrganizationVO.class);
+        // }
+        // } else {
+        // List<ComPbOrgDO> comPbOrgDOS = comPbOrgDAO.selectList(new LambdaQueryWrapper<>());
+        // if (!ObjectUtils.isEmpty(comPbOrgDOS)) {
+        // List<PartyOrganizationVO> partyOrganizationVOList=new ArrayList<>();
+        // comPbOrgDOS.forEach(comPbOrgDO -> {
+        // PartyOrganizationVO partyOrganizationVO=new PartyOrganizationVO();
+        // partyOrganizationVO.setId(comPbOrgDO.getId());
+        // partyOrganizationVO.setName(comPbOrgDO.getName());
+        // partyOrganizationVO.setCommunityId(comPbOrgDO.getCommunityId());
+        // partyOrganizationVOList.add(partyOrganizationVO);
+        // });
+        // partyOrganizationVOS= partyOrganizationVOList;
+        // }
+        // valueOperations.set(REDIS_ORG_ALL,JSONArray.toJSONString(partyOrganizationVOS),24, TimeUnit.HOURS);
+        // }
+        List<ComPbMemberDO> comPbMemberDOS = new ArrayList<>();
+        if (!ObjectUtils.isEmpty(list)) {
+            for (PartyBuildingMemberExcelVO partyBuildingMemberExcelVO : list) {
+                if(StringUtils.isNotEmpty(partyBuildingMemberExcelVO.getName())&&StringUtils.isNotEmpty(partyBuildingMemberExcelVO.getPhone())&&StringUtils.isNotEmpty(partyBuildingMemberExcelVO.getOrgName())){
+                    ComPbMemberDO comPbMemberDO = new ComPbMemberDO();
+                    Date date = new Date();
+                    comPbMemberDO.setUpdateAt(date);
+                    comPbMemberDO.setCreateAt(date);
+                    List<ComPbMemberDO> comPbMemberDOList = this.baseMapper.selectList(new QueryWrapper<ComPbMemberDO>()
+                            .lambda().eq(ComPbMemberDO::getPhone, partyBuildingMemberExcelVO.getPhone())
+                            .eq(ComPbMemberDO::getCommunityId, partyBuildingMemberExcelVO.getCommunityId()));
+                    if (!comPbMemberDOList.isEmpty()) {
+                        comPbMemberDOList.forEach(comPbMember -> {
+                            BeanUtils.copyProperties(partyBuildingMemberExcelVO, comPbMember);
+                            //添加党员同步用户小程序头像
+                            R r=userService.getSysUserVOByPhone(comPbMember.getPhone());
+                            if(R.isOk(r)&&r.getData()!=null){
+                                SysUserVO sysUserVO =
+                                        JSONObject.parseObject(JSONObject.toJSONString(r.getData()), SysUserVO.class);
+                                comPbMember.setPhotoPath(sysUserVO.getImageUrl());
+                            }
+                            this.baseMapper.updateById(comPbMember);
+                            userService.updateUserIsPartymemberByPhone(comPbMember.getPhone());
+                        });
+                        continue;
+                        // throw new PartyBuildingMemberException("导入失败,您导入的数据中有已存在的党员信息,已存在的数据:"+
+                        // partyBuildingMemberExcelVO.getEmploymentTime() + ",已存在的人名:" +
+                        // partyBuildingMemberExcelVO.getName());
+                    }
+                    BeanUtils.copyProperties(partyBuildingMemberExcelVO,comPbMemberDO);
+                    comPbMemberDOS.add(comPbMemberDO);
+                    R r=userService.getSysUserVOByPhone(comPbMemberDO.getPhone());
+                    if(R.isOk(r)&&r.getData()!=null){
+                        SysUserVO sysUserVO =
+                                JSONObject.parseObject(JSONObject.toJSONString(r.getData()), SysUserVO.class);
+                        comPbMemberDO.setPhotoPath(sysUserVO.getImageUrl());
+                    }
+                    userService.updateUserIsPartymemberByPhone(comPbMemberDO.getPhone());
+                }
+                else {
+                    throw new PartyBuildingMemberException("导入失败,你导入的内容有未填报项");
+                }
+            }
+            this.saveBatch(comPbMemberDOS);
+        }
+        return R.ok();
+    }
+
+    /**
+     * 分页党员
+     *
+     * @param pagePartyOrganizationVO
+     *            查询信息
+     * @return 分页数据
+     */
+    @Override
+    public R pagePartyOrganization(PagePartyOrganizationVO pagePartyOrganizationVO) {
+
+        Long communityId = pagePartyOrganizationVO.getCommunityId();
+
+        if (null != communityId){
+            List<Long> communityIds = comPbMemberDAO.selectIds(communityId);
+            if (CollUtil.isEmpty(communityIds)) {
+                communityIds = new ArrayList<>();
+                communityIds.add(communityId);
+            }
+            pagePartyOrganizationVO.setCommunityIds(communityIds);
+        }
+
+        Page page = new Page<>();
+        Long pageNum = pagePartyOrganizationVO.getPageNum();
+        Long pageSize = pagePartyOrganizationVO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<PartyBuildingMemberVO> iPage = comPbMemberDAO.queryAllByLimit(page, pagePartyOrganizationVO);
+        iPage.getRecords().forEach(record -> {
+            record.setIdCard(SensitiveUtil.desensitizedIdNumber(record.getIdCard()));
+        });
+        return R.ok(iPage);
+    }
+
+    /**
+     * 编辑党员信息 新增字段均可编辑
+     *
+     * @param partyBuildingMemberVO
+     *            编辑字段
+     * @return 编辑结果
+     */
+    @Override
+    public R updatePartyBuildingMember(PartyBuildingMemberVO partyBuildingMemberVO) {
+        ComPbMemberDO comPbMemberDO = new ComPbMemberDO();
+        Long orgId = partyBuildingMemberVO.getOrgId();
+        if (null != orgId && 0 == orgId) {
+            partyBuildingMemberVO.setOrgId(null);
+        }
+        BeanUtils.copyProperties(partyBuildingMemberVO, comPbMemberDO);
+        Integer type = partyBuildingMemberVO.getType();
+        if (nonNull(type) && type.equals(1)) {
+            comPbMemberDO.setEmploymentTime(null);
+        }
+        comPbMemberDO.setAuditResult(partyBuildingMemberVO.getAuditResult());
+        int i = comPbMemberDAO.updateById(comPbMemberDO);
+        if (i > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 查询指定社区的所有党员
+     *
+     * @param communityId
+     *            社区id
+     * @return 党员列表
+     */
+    @Override
+    public R listPartyMember(Long communityId) {
+        List<ComPbMemberDO> comPbMemberDOS = comPbMemberDAO.selectList(new QueryWrapper<ComPbMemberDO>().lambda()
+            .eq(ComPbMemberDO::getCommunityId, communityId).eq(ComPbMemberDO::getAuditResult, 1));
+        // 查询社区所有已经注册的党员
+        // 排除掉已经成为党委的党员
+        // List<ComPbMemberDO> comPbMemberDOS = comPbMemberDAO.selectListRegister(communityId);
+        // if (ObjectUtils.isEmpty(comPbMemberDOS)) {
+        // return R.ok(new ArrayList<>());
+        // }
+        List<PartyBuildingMemberVO> partyBuildingMemberVOS = new ArrayList<>();
+        comPbMemberDOS.forEach(comPbMemberDO -> {
+            PartyBuildingMemberVO partyBuildingMemberVO = new PartyBuildingMemberVO();
+            BeanUtils.copyProperties(comPbMemberDO, partyBuildingMemberVO);
+            partyBuildingMemberVOS.add(partyBuildingMemberVO);
+        });
+        return R.ok(partyBuildingMemberVOS);
+    }
+
+    @Override
+    public R addPartyCommittee(PartyCommitteeVO partyCommitteeVO) {
+        return null;
+    }
+
+    @Override
+    public R updatePartyCommittee(PartyCommitteeVO partyCommitteeVO) {
+        return null;
+    }
+
+    @Override
+    public R deletePartyCommittee(PartyCommitteeVO partyCommitteeVO) {
+        return null;
+    }
+
+    @Override
+    public R pagePartyCommittee(PartyCommitteeVO partyCommitteeVO) {
+        Page page = new Page<>();
+        Long pageNum = partyCommitteeVO.getPageNum();
+        Long pageSize = partyCommitteeVO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<PartyCommitteeVO> iPage = comPbMemberRoleDAO.pagePartyOrganizations(page, partyCommitteeVO);
+        iPage.getRecords().forEach(record -> {
+            record.setPhone(SensitiveUtil.desensitizedPhoneNumber(record.getPhone()));
+        });
+        return R.ok(iPage);
+    }
+
+//    /**
+//     * 新增党委
+//     *
+//     * @param partyCommitteeVO
+//     *            新增信息
+//     * @return 新增结果
+//     */
+//    @Override
+//    @Transactional(rollbackFor = Exception.class)
+//    public R addPartyCommittee(PartyCommitteeVO partyCommitteeVO) {
+//        ComPbMemberRoleDO comPbMemberRoleDO = new ComPbMemberRoleDO();
+//        BeanUtils.copyProperties(partyCommitteeVO, comPbMemberRoleDO);
+//        comPbMemberRoleDO.setCreateAt(new Date());
+//        comPbMemberRoleDO.setUpdateAt(new Date());
+//        comPbMemberRoleDO.setIsReg(2);
+//        comPbMemberRoleDO.setSex(Integer.parseInt(partyCommitteeVO.getIdCard().substring(16,17))%2==0?2:1);
+//        Integer userCount = comPbMemberRoleDAO.getSysUserByIdCardCount(partyCommitteeVO.getIdCard());
+//        if (userCount > 0) {
+//            comPbMemberRoleDO.setIsReg(1);
+//        }
+//        Date nowDate = new Date();
+//        //判断党员信息是否存在党委信息
+//        ComPbMemberDO pbMemberDO = comPbMemberDAO.selectOne(new QueryWrapper<ComPbMemberDO>().lambda()
+//                .eq(ComPbMemberDO::getIdCard,partyCommitteeVO.getIdCard())
+//                .eq(ComPbMemberDO::getAuditResult,ComPbMemberDO.AuditResult.SHTG)
+//                .eq(ComPbMemberDO::getCommunityId,partyCommitteeVO.getCommunityId()));
+//        if(pbMemberDO == null){
+//            //不存在则创建党委党员信息
+//            pbMemberDO = new ComPbMemberDO();
+//            BeanUtils.copyProperties(partyCommitteeVO, pbMemberDO);
+//            pbMemberDO.setAuditResult(ComPbMemberDO.AuditResult.SHTG);
+//            pbMemberDO.setCreateAt(nowDate);
+//            pbMemberDO.setUpdateAt(nowDate);
+//            pbMemberDO.setType(ComPbMemberDO.Type.ZSDY);
+//            comPbMemberDAO.insert(pbMemberDO);
+//            //金沙特殊需求
+//            if(pbMemberDO.getCommunityId()==2L){
+//                ComMngVolunteerMngVO comMngVolunteerMngVO=new ComMngVolunteerMngVO();
+//                comMngVolunteerMngVO.setOrgId(53L);
+//                comMngVolunteerMngVO.setName(pbMemberDO.getName());
+//                comMngVolunteerMngVO.setPhone(pbMemberDO.getPhone());
+//                comMngVolunteerMngVO.setIdCard(pbMemberDO.getIdCard());
+//                comMngVolunteerMngVO.setState(2);
+//                comMngVolunteerMngVO.setCommunityId(2L);
+//                R r = communityService.addVolunteer(comMngVolunteerMngVO);
+//                // 支援者添加成功,修改小程序用户的志愿者状态    ,通过手机号
+//                if (R.isOk(r)) {
+//                    String phone = comMngVolunteerMngVO.getPhone();
+//                    R r1 = userService.putUserIsVolunteer(phone, 1);
+//                    if (R.isOk(r1)) {
+//                        log.info("修改手机号【{}】的支援者状态为是", phone);
+//                    } else {
+//                        log.info("手机号【{}】没有小程序用户", phone);
+//                    }
+//                }
+//            }
+//        }else{
+//            //存在则更新党委党员信息
+//            BeanUtils.copyProperties(partyCommitteeVO, pbMemberDO);
+//            pbMemberDO.setUpdateAt(nowDate);
+//            pbMemberDO.setType(ComPbMemberDO.Type.ZSDY);
+//            comPbMemberDAO.updateById(pbMemberDO);
+//        }
+//        int insert = comPbMemberRoleDAO.insert(comPbMemberRoleDO);
+//        if (insert > 0) {
+//            return R.ok();
+//        }
+//        return R.fail();
+//    }
+
+//    /**
+//     * 编辑党委
+//     *
+//     * @param partyCommitteeVO
+//     *            编辑信息
+//     * @return 编辑结果
+//     */
+//    @Override
+//    @Transactional(rollbackFor = Exception.class)
+//    public R updatePartyCommittee(PartyCommitteeVO partyCommitteeVO) {
+//        ComPbMemberRoleDO comPbMemberRoleDO = new ComPbMemberRoleDO();
+//        Date nowDate = new Date();
+//        BeanUtils.copyProperties(partyCommitteeVO, comPbMemberRoleDO);
+//        comPbMemberRoleDO.setUpdateAt(nowDate);
+//        comPbMemberRoleDO.setIsReg(2);
+//        Integer userCount = comPbMemberRoleDAO.getSysUserByIdCardCount(partyCommitteeVO.getIdCard());
+//        if (userCount > 0) {
+//            comPbMemberRoleDO.setIsReg(1);
+//        }
+//        //查询党员信息并更新
+//        ComPbMemberDO pbMemberDO = comPbMemberDAO.selectOne(new QueryWrapper<ComPbMemberDO>().lambda()
+//                .eq(ComPbMemberDO::getIdCard,partyCommitteeVO.getIdCard())
+//                .eq(ComPbMemberDO::getAuditResult,ComPbMemberDO.AuditResult.SHTG)
+//                .eq(ComPbMemberDO::getCommunityId,partyCommitteeVO.getCommunityId()));
+//        if(pbMemberDO != null){
+//            Long id = pbMemberDO.getId();
+//            BeanUtils.copyProperties(partyCommitteeVO, pbMemberDO);
+//            pbMemberDO.setId(id);
+//            pbMemberDO.setUpdateAt(nowDate);
+//            pbMemberDO.setType(ComPbMemberDO.Type.ZSDY);
+//            comPbMemberDAO.updateById(pbMemberDO);
+//        }
+//        int update = comPbMemberRoleDAO.updateById(comPbMemberRoleDO);
+//        if (update > 0) {
+//            return R.ok();
+//        }
+//        return R.fail();
+//    }
+//
+//    /**
+//     * 删除党委
+//     *
+//     * @param partyCommitteeVO
+//     *            删除id
+//     * @return 删除结果
+//     */
+//    @Override
+//    public R deletePartyCommittee(PartyCommitteeVO partyCommitteeVO) {
+//        ComPbMemberRoleDO comPbMemberRoleDO = comPbMemberRoleDAO.selectById(partyCommitteeVO.getId());
+//        if (comPbMemberRoleDO == null) {
+//            return R.fail("记录不存在");
+//        }
+//        int delete = comPbMemberRoleDAO.deleteById(partyCommitteeVO.getId());
+//        if (delete > 0) {
+//            Long userId = comPbMemberRoleDAO.getUserIdByIdCard(comPbMemberRoleDO.getIdCard());
+//            // 删除用户信息缓存
+//            if (userId != null) {
+//                String userKey = UserConstants.LOGIN_USER_INFO + userId;
+//                stringRedisTemplate.delete(userKey);
+//            }
+//            return R.ok();
+//        }
+//        return R.fail();
+//    }
+//
+//    /**
+//     * 分页社区党委查询
+//     *
+//     * @param partyCommitteeVO
+//     *            查询参数
+//     * @return 分页集合
+//     */
+//    @Override
+//    public R pagePartyCommittee(PartyCommitteeVO partyCommitteeVO) {
+//        Page page = new Page<>();
+//        Long pageNum = partyCommitteeVO.getPageNum();
+//        Long pageSize = partyCommitteeVO.getPageSize();
+//        if (null == pageNum || 0 == pageNum) {
+//            pageNum = 1l;
+//        }
+//        if (null == pageSize || 0 == pageSize) {
+//            pageSize = 10l;
+//        }
+//        page.setSize(pageSize);
+//        page.setCurrent(pageNum);
+//        IPage<PartyCommitteeVO> iPage = comPbMemberRoleDAO.pagePartyOrganization(page, partyCommitteeVO);
+//        iPage.getRecords().forEach(record -> {
+//            record.setPhone(SensitiveUtil.desensitizedPhoneNumber(record.getPhone()));
+//        });
+//        return R.ok(iPage);
+//    }
+
+    /**
+     * 新建党建动态
+     *
+     * @param partyCommitteeVO
+     *            动态内容
+     * @return 新增结果
+     */
+    @Override
+    public R adddYnamic(PartyBuildingComPbDynVO partyCommitteeVO) {
+        ComPbDynDO comPbDynDO = new ComPbDynDO();
+        BeanUtils.copyProperties(partyCommitteeVO, comPbDynDO);
+        comPbDynDO.setCreateAt(new Date());
+        int insert = comPbDynDAO.insert(comPbDynDO);
+        if (insert > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 编辑动态
+     *
+     * @param partyCommitteeVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @Override
+    public R updateYnamic(PartyBuildingComPbDynVO partyCommitteeVO) {
+        ComPbDynDO comPbDynDO = new ComPbDynDO();
+        BeanUtils.copyProperties(partyCommitteeVO, comPbDynDO);
+        int insert = comPbDynDAO.updateById(comPbDynDO);
+        if (insert > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    @Override
+    public R infoYnamic(Long id) {
+        return null;
+    }
+
+    @Override
+    public R pageYnamic(PartyBuildingComPbDynVO partyBuildingComPbDynVO)
+    {
+        Page page = new Page<>();
+        Long pageNum = partyBuildingComPbDynVO.getPageNum();
+        Long pageSize = partyBuildingComPbDynVO.getPageSize();
+        if (null == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<PartyBuildingComPbDynVO> iPage = comPbDynDAO.pageYnamics(page, partyBuildingComPbDynVO);
+        List<PartyBuildingComPbDynVO> records = iPage.getRecords();
+        if (!(ObjectUtils.isEmpty(records))) {
+            records.forEach(partyBuildingComPbDynVO1 -> {
+                String content = partyBuildingComPbDynVO1.getContent();
+                if (!ObjectUtils.isEmpty(content)) {
+                    String text = RichTextUtil.getText(content);
+                    partyBuildingComPbDynVO1.setContentText(text);
+                }
+            });
+        }
+        return R.ok(iPage);
+    }
+
+    @Override
+    public R deleteYnamic(Integer id) {
+        return null;
+    }
+
+//    /**
+//     * 动态详情
+//     *
+//     * @param id
+//     *            动态主键
+//     * @return 详情
+//     */
+//    @Override
+//    public R infoYnamic(Long id) {
+//        PartyBuildingComPbDynVO comPbDynVO = comPbDynDAO.selectVoById(id);
+//        if (ObjectUtils.isEmpty(comPbDynVO)) {
+//            return R.fail("动态不存在");
+//        }
+//        // ComPbMemberDO comPbMemberDO = comPbMemberDAO.selectById(createBy);
+//        // String name = comPbMemberDAO.selectNameByUserId(createBy);
+//
+//        if (ObjectUtils.isEmpty(comPbDynVO.getCreateByName())) {
+//            // return R.fail("发布人不存在");
+//            String name = comPbMemberDAO.selectNameByUserId(comPbDynVO.getCreateBy());
+//            name = "后台发布";
+//            comPbDynVO.setCreateByName(name);
+//        }
+//        // Integer integer = comPbDynUserDAO.selectCount(new
+//        // QueryWrapper<ComPbDynUserDO>().lambda().eq(ComPbDynUserDO::getDynId, id));
+//        comPbDynVO.setReadingVolume(null == comPbDynVO.getReadingVolume() ? 0 : comPbDynVO.getReadingVolume());
+//        return R.ok(comPbDynVO);
+//    }
+//
+//    /**
+//     * 分页查询党员动态
+//     *
+//     * @param partyBuildingComPbDynVO
+//     *            查询参数
+//     * @return 分页数据
+//     */
+//    @Override
+//    public R pageYnamic(PartyBuildingComPbDynVO partyBuildingComPbDynVO) {
+//        Page page = new Page<>();
+//        Long pageNum = partyBuildingComPbDynVO.getPageNum();
+//        Long pageSize = partyBuildingComPbDynVO.getPageSize();
+//        if (null == pageNum) {
+//            pageNum = 1l;
+//        }
+//        if (null == pageSize) {
+//            pageSize = 10l;
+//        }
+//        page.setSize(pageSize);
+//        page.setCurrent(pageNum);
+//        IPage<PartyBuildingComPbDynVO> iPage = comPbDynDAO.pageYnamic(page, partyBuildingComPbDynVO);
+//        List<PartyBuildingComPbDynVO> records = iPage.getRecords();
+//        if (!(ObjectUtils.isEmpty(records))) {
+//            records.forEach(partyBuildingComPbDynVO1 -> {
+//                String content = partyBuildingComPbDynVO1.getContent();
+//                if (!ObjectUtils.isEmpty(content)) {
+//                    String text = RichTextUtil.getText(content);
+//                    partyBuildingComPbDynVO1.setContentText(text);
+//                }
+//            });
+//        }
+//        return R.ok(iPage);
+//    }
+//
+//    /**
+//     * 删除动态
+//     *
+//     * @param id
+//     *            动态主键
+//     * @return 删除结果
+//     */
+//    @Override
+//    public R deleteYnamic(Integer id) {
+//        int delete = comPbDynDAO.deleteById(id);
+//        if (delete > 0) {
+//            return R.ok();
+//        }
+//        return R.fail();
+//    }
+
+    /**
+     * 增加阅读记录
+     *
+     * @param comPbDynUserVO
+     *            阅读记录
+     * @return 增加结果
+     */
+    @Override
+    public R addDynUser(ComPbDynUserVO comPbDynUserVO) {
+        ComPbDynUserDO comPbDynUserDO = new ComPbDynUserDO();
+        BeanUtils.copyProperties(comPbDynUserVO, comPbDynUserDO);
+        int insert = comPbDynUserDAO.insert(comPbDynUserDO);
+        if (insert > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 删除党员
+     *
+     * @param id
+     *            党员主键
+     * @return 删除结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R deleteDynUser(Long id) {
+        ComPbMemberDO comPbMemberDO = comPbMemberDAO.selectById(id);
+        if (ObjectUtils.isEmpty(comPbMemberDO)) {
+            return R.fail("党员不存在");
+        }
+        int delete = comPbMemberDAO.deleteById(id);
+        if (delete > 0) {
+            // 维护用户表党员状态
+            comPbMemberDAO.updateUserIsPartymember(comPbMemberDO.getPhone());
+            // 删除缓存
+            String userKey = UserConstants.LOGIN_USER_INFO + comPbMemberDO.getUserId();
+            stringRedisTemplate.delete(userKey);
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 定时任务刷新党建动态发布状态
+     *
+     * @return 刷新数据数量
+     */
+    @Override
+    public R timedTaskPartyBuildingStatus() {
+        int num = comPbDynDAO.timedTaskPartyBuildingStatus();
+        log.info("定时任务更新党建动态发布状态数量【{}】", num);
+        return R.ok(num);
+    }
+
+    @Override
+    public R pagePrePartyBuilingMember(PagePartyBuildingMemberVO pagePartyBuildingMemberVO) {
+
+        Page page = new Page<>();
+        Long pageNum = pagePartyBuildingMemberVO.getPageNum();
+        Long pageSize = pagePartyBuildingMemberVO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<PartyBuildingMemberVO> iPage = comPbMemberDAO.pagePartyBuildingMembersVO(page, pagePartyBuildingMemberVO);
+
+        return R.ok(iPage);
+    }
+
+    @Override
+    public R updatePartyBuildingMembers(PartyBuildingMemberVO partyBuildingMemberVO) {
+        ComPbMemberDO comPbMemberDO = comPbMemberDAO.selectById(partyBuildingMemberVO.getId());
+        if (comPbMemberDO == null) {
+            return R.fail("未找到党员认证信息");
+        }
+//        BeanUtils.copyProperties(partyBuildingMemberVO, comPbMemberDO);
+        comPbMemberDO.setAuditResult(partyBuildingMemberVO.getAuditResult());
+        if (partyBuildingMemberVO.getAuditResult() != null && partyBuildingMemberVO.getAuditResult().equals(3)) {
+            comPbMemberDO.setRefuseReason(partyBuildingMemberVO.getRefuseReason());
+        }
+        if (partyBuildingMemberVO.getAuditResult() != null && partyBuildingMemberVO.getAuditResult().equals(1)) {
+            comPbMemberDO.setUpdateAt(new Date());
+        }
+
+        // 编辑
+        if (partyBuildingMemberVO.getJoinTime() != null) {
+            comPbMemberDO.setJoinTime(partyBuildingMemberVO.getJoinTime());
+        }
+        if (partyBuildingMemberVO.getEmploymentTime() != null) {
+            comPbMemberDO.setEmploymentTime(partyBuildingMemberVO.getEmploymentTime());
+        }
+        if (partyBuildingMemberVO.getIdCard() != null && !partyBuildingMemberVO.getIdCard().contains("*")) {
+            comPbMemberDO.setIdCard(partyBuildingMemberVO.getIdCard());
+        }
+        if (partyBuildingMemberVO.getName() != null) {
+            comPbMemberDO.setName(partyBuildingMemberVO.getName());
+        }
+        if (partyBuildingMemberVO.getOrgId() != null) {
+            comPbMemberDO.setOrgId(partyBuildingMemberVO.getOrgId());
+        }
+        if (partyBuildingMemberVO.getOrgName() != null) {
+            comPbMemberDO.setOrgName(partyBuildingMemberVO.getOrgName());
+        }
+        if (partyBuildingMemberVO.getPhotoPath() != null) {
+            comPbMemberDO.setPhotoPath(partyBuildingMemberVO.getPhotoPath());
+        }
+        if (nonNull(partyBuildingMemberVO.getType())) {
+            comPbMemberDO.setType(partyBuildingMemberVO.getType());
+        }
+        if (StringUtils.isNotEmpty(partyBuildingMemberVO.getPosition())) {
+            comPbMemberDO.setPosition(partyBuildingMemberVO.getPosition());
+        }
+        if (nonNull(partyBuildingMemberVO.getCheckUnitId())) {
+            comPbMemberDO.setCheckUnitId(partyBuildingMemberVO.getCheckUnitId());
+        }
+        if (StringUtils.isNotEmpty(partyBuildingMemberVO.getFunction())) {
+            comPbMemberDO.setFunction(partyBuildingMemberVO.getFunction());
+        }
+        if (nonNull(partyBuildingMemberVO.getSpecialtyName())) {
+            comPbMemberDO.setSpecialtyName(partyBuildingMemberVO.getSpecialtyName());
+        }
+        if(nonNull(partyBuildingMemberVO.getPhone())){
+            comPbMemberDO.setPhone(partyBuildingMemberVO.getPhone());
+        }
+
+        Integer type = partyBuildingMemberVO.getType();
+        if (nonNull(type) && type.equals(1)) {
+            comPbMemberDO.setEmploymentTime(null);
+        }
+        if(partyBuildingMemberVO.getVillageId()!=null){
+            comPbMemberDO.setVillageId(partyBuildingMemberVO.getVillageId());
+        }
+        if(partyBuildingMemberVO.getHelpCommunityId()!=null){
+            comPbMemberDO.setHelpCommunityId(partyBuildingMemberVO.getHelpCommunityId());
+        }
+        if(partyBuildingMemberVO.getCommunityId()!=null){
+            comPbMemberDO.setCommunityId(partyBuildingMemberVO.getCommunityId());
+        }
+        if(partyBuildingMemberVO.getNatureId()!=null){
+            comPbMemberDO.setNatureId(partyBuildingMemberVO.getNatureId());
+        }
+        if(nonNull(partyBuildingMemberVO.getNatureName())){
+            comPbMemberDO.setNatureName(partyBuildingMemberVO.getNatureName());
+        }
+        if(nonNull(partyBuildingMemberVO.getOtherRemark())){
+            comPbMemberDO.setOtherRemark(partyBuildingMemberVO.getOtherRemark());
+        }
+        if(nonNull(partyBuildingMemberVO.getHelpCommunityName())){
+            comPbMemberDO.setHelpCommunityName(partyBuildingMemberVO.getHelpCommunityName());
+        }
+
+        if (comPbMemberDAO.updateById(comPbMemberDO) > 0) {
+            PartyBuildingMemberVO rtVO = new PartyBuildingMemberVO();
+            BeanUtils.copyProperties(comPbMemberDO, rtVO);
+            return R.ok(rtVO);
+        }
+        return R.fail();
+    }
+
+    @Override
+    public R exportPbMember(PagePartyOrganizationVO organizationVO) {
+        return R.ok(comPbMemberDAO.exportPbMember(organizationVO));
+    }
+
+    /**
+     * 分页查询党员数据统计
+     * @param statisticsMemberDto   请求参数
+     * @return  党员数据统计
+     */
+    @Override
+    public R pageDataStatisticsMember(PageComDataStatisticsMemberDto statisticsMemberDto) {
+        IPage<ComDataStatisticsMemberVo> memberPage = comPbMemberDAO.pageDataStatisticsMember(new Page(statisticsMemberDto.getPageNum()
+                ,statisticsMemberDto.getPageSize()),statisticsMemberDto);
+        memberPage.getRecords().forEach(member -> {
+            if(member.getIsRole() > 0){
+                member.setIsRole(1);
+            }else{
+                member.setIsRole(2);
+            }
+            try {
+                member.setAge(IdcardUtil.getAgeByIdCard(member.getIdCard()));
+            } catch (Exception e) {
+                log.error("年龄转义失败");
+            }
+            //查询党员统计数据
+            ComDataStatisticsMemberVo statisticsMemberVo = comPbMemberDAO.getMemberStatistics(member.getUserId(),member.getCommunityId());
+            if(statisticsMemberVo != null){
+                member.setPartyActivityCount(statisticsMemberVo.getPartyActivityCount());
+                member.setPartyActivityDuration(statisticsMemberVo.getPartyActivityDuration());
+                member.setPartyActivityIntegral(statisticsMemberVo.getPartyActivityIntegral());
+                member.setVolunteerActivityCount(statisticsMemberVo.getVolunteerActivityCount());
+                member.setVolunteerActivityDuration(statisticsMemberVo.getVolunteerActivityDuration());
+                member.setVolunteerActivityIntegral(statisticsMemberVo.getVolunteerActivityIntegral());
+                member.setWishCount(statisticsMemberVo.getWishCount());
+                member.setEasyCount(statisticsMemberVo.getEasyCount());
+                member.setActivityCount(member.getPartyActivityCount() + member.getVolunteerActivityCount());
+                member.setActivityDuration(member.getPartyActivityDuration() + member.getVolunteerActivityDuration());
+            }
+        });
+        return R.ok(memberPage);
+    }
+
+    /**
+     * 根据组织id查询组织下统计数据
+     * @param statisticsOrgDto  请求参数
+     * @return  组织下统计数据
+     */
+    @Override
+    public R getOrgDataStatistics(ComDataStatisticsOrgDto statisticsOrgDto) {
+        List<Long> orgIds = new ArrayList<>();
+        Long communityId = statisticsOrgDto.getCommunityId();
+        ComDataStatisticsOrgVo statisticsOrgVo = new ComDataStatisticsOrgVo();
+        if(statisticsOrgDto.getOrgId() != null){
+            ComPbOrgDO pbOrgDO = comPbOrgDAO.selectById(statisticsOrgDto.getOrgId());
+            if(pbOrgDO == null){
+                return R.fail("未查询到党组织");
+            }
+            //拼接党组织id
+            if(pbOrgDO.getOneId() != null){
+                orgIds.add(pbOrgDO.getOneId());
+            }
+            if(pbOrgDO.getTwoId() != null){
+                orgIds.add(pbOrgDO.getTwoId());
+            }
+            if(pbOrgDO.getThirdId() != null){
+                orgIds.add(pbOrgDO.getThirdId());
+            }
+            if(pbOrgDO.getFourId() != null){
+                orgIds.add(pbOrgDO.getFourId());
+            }
+            if(pbOrgDO.getFiveId() != null){
+                orgIds.add(pbOrgDO.getFiveId());
+            }
+        }
+        //拼接查询开始结束时间
+        String startTime = statisticsOrgDto.getYear() + "-01-01 00:00:00";
+        String endTime = statisticsOrgDto.getYear() + "-12-31 23:59:59";
+
+        ComDataStatisticsOrgVo statisticsVo = new ComDataStatisticsOrgVo();
+        //查询统计左上数据
+        statisticsVo = comPbMemberDAO.getOrgDataStatistics(communityId,orgIds);
+        if(statisticsVo != null){
+            BeanUtils.copyProperties(statisticsVo,statisticsOrgVo);
+        }
+
+        //查询左下数据
+        statisticsVo = comPbMemberDAO.getOrgDataStatisticsLeftDown(communityId,orgIds,startTime,endTime,"");
+        if(statisticsVo != null){
+            statisticsOrgVo.setParticipateVolunteerActivityDuration(statisticsVo.getParticipateVolunteerActivityDuration());
+            statisticsOrgVo.setParticipateVolunteerActivityNum(statisticsVo.getParticipateVolunteerActivityNum());
+            statisticsOrgVo.setParticipatePartyActivityNum(statisticsVo.getParticipatePartyActivityNum());
+            statisticsOrgVo.setParticipatePartyActivityDuration(statisticsVo.getParticipatePartyActivityDuration());
+            statisticsOrgVo.setParticipateActivityDuration(statisticsVo.getParticipateActivityDuration());
+            statisticsOrgVo.setParticipateActivityNum(statisticsVo.getParticipateActivityNum());
+        }
+
+        //查询党员数据
+        IPage<PartyBuildingMemberVO> partyMemberPage = comPbMemberDAO.getOrgDataStatisticsMember(
+                new Page(statisticsOrgDto.getPageNum()
+                ,statisticsOrgDto.getPageSize()),communityId,orgIds,"");
+        if(partyMemberPage.getRecords() != null && !partyMemberPage.getRecords().isEmpty()){
+            statisticsOrgVo.setPartyMemberList(partyMemberPage.getRecords());
+        }
+
+        List<String> startDateList = DateUtils.getYearFirstMonths(statisticsOrgDto.getYear());
+        List<String> endDateList = DateUtils.getYearLastMonths(statisticsOrgDto.getYear());
+        List<String> completeWishList = new ArrayList<>();
+        List<String> cumulativeWishList = new ArrayList<>();
+        List<String> completeEasyList = new ArrayList<>();
+        List<String> cumulativeEasyList = new ArrayList<>();
+        for (int i = 0; i < startDateList.size(); i++) {
+            Map<String,Object> statisticsMap = comPbMemberDAO.getOrgDataStatisticsRightDown(communityId,orgIds,
+                    startDateList.get(i) + " 00:00:00", endDateList.get(i) + " 23:59:59");
+            if(statisticsMap != null){
+                completeWishList.add(statisticsMap.get("completeWishNum").toString());
+                cumulativeWishList.add(statisticsMap.get("cumulativeWishNum").toString());
+                completeEasyList.add(statisticsMap.get("completeEasyNum").toString());
+                cumulativeEasyList.add(statisticsMap.get("cumulativeEasyNum").toString());
+                if(i == startDateList.size() - 1){
+                    statisticsOrgVo.setWishNum(statisticsMap.get("cumulativeWishNum").toString());
+                    statisticsOrgVo.setEasyNum(statisticsMap.get("cumulativeEasyNum").toString());
+                }
+            }
+        }
+        statisticsOrgVo.setCompleteEasyList(completeEasyList);
+        statisticsOrgVo.setCompleteWishList(completeWishList);
+        statisticsOrgVo.setCumulativeWishList(cumulativeWishList);
+        statisticsOrgVo.setCumulativeEasyList(cumulativeEasyList);
+        Integer partyMemberNum = statisticsOrgVo.getPartyMemberNum();
+        if (nonNull(partyMemberNum) && partyMemberNum.intValue() > 0) {
+            Integer formalPartyMemberNum = statisticsOrgVo.getFormalPartyMemberNum();
+            if (nonNull(formalPartyMemberNum) && formalPartyMemberNum.intValue() > 0) {
+                statisticsOrgVo.setFormalPartyMemberNumPercent(new BigDecimal(formalPartyMemberNum)
+                        .divide(new BigDecimal(partyMemberNum), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
+            }
+            Integer preparePartyMemberNum = statisticsOrgVo.getPreparePartyMemberNum();
+            if (nonNull(preparePartyMemberNum) && preparePartyMemberNum.intValue() > 0) {
+                statisticsOrgVo.setPreparePartyMemberNumPercent(new BigDecimal(preparePartyMemberNum)
+                        .divide(new BigDecimal(partyMemberNum), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
+            }
+            Integer tyNum = statisticsOrgVo.getTyNum();
+            if (nonNull(tyNum) && tyNum.intValue() > 0) {
+                statisticsOrgVo.setTyNumPercent(new BigDecimal(tyNum)
+                        .divide(new BigDecimal(partyMemberNum), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
+            }
+            Integer msNum = statisticsOrgVo.getMsNum();
+            if (nonNull(msNum) && msNum.intValue() > 0) {
+                statisticsOrgVo.setMsNumPercent(new BigDecimal(msNum)
+                        .divide(new BigDecimal(partyMemberNum), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
+            }
+            Integer yyNum = statisticsOrgVo.getYyNum();
+            if (nonNull(yyNum) && yyNum.intValue() > 0) {
+                statisticsOrgVo.setYyNumPercent(new BigDecimal(yyNum)
+                        .divide(new BigDecimal(partyMemberNum), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
+            }
+            Integer wdNum = statisticsOrgVo.getWdNum();
+            if (nonNull(wdNum) && wdNum.intValue() > 0) {
+                statisticsOrgVo.setWdNumPercent(new BigDecimal(wdNum)
+                        .divide(new BigDecimal(partyMemberNum), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
+            }
+            Integer qtNum = statisticsOrgVo.getQtNum();
+            if (nonNull(qtNum) && qtNum.intValue() > 0) {
+                statisticsOrgVo.setQtNumPercent(new BigDecimal(qtNum)
+                        .divide(new BigDecimal(partyMemberNum), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
+            }
+            Integer wuNum = statisticsOrgVo.getWuNum();
+            if (nonNull(wuNum) && wuNum.intValue() > 0) {
+                statisticsOrgVo.setWuNumPercent(new BigDecimal(wuNum)
+                        .divide(new BigDecimal(partyMemberNum), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
+            }
+        }
+        Integer participateActivityNum = statisticsOrgVo.getParticipateActivityNum();
+        if (nonNull(participateActivityNum) && participateActivityNum.intValue() > 0) {
+            Integer participateVolunteerActivityNum = statisticsOrgVo.getParticipateVolunteerActivityNum();
+            if (nonNull(participateVolunteerActivityNum) && participateVolunteerActivityNum.intValue() > 0) {
+                statisticsOrgVo.setParticipateVolunteerActivityNumPercent(new BigDecimal(participateVolunteerActivityNum)
+                        .divide(new BigDecimal(participateActivityNum), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
+            }
+            Integer participatePartyActivityNum = statisticsOrgVo.getParticipatePartyActivityNum();
+            if (nonNull(participatePartyActivityNum) && participatePartyActivityNum.intValue() > 0) {
+                statisticsOrgVo.setParticipatePartyActivityNumPercent(new BigDecimal(participatePartyActivityNum)
+                        .divide(new BigDecimal(participateActivityNum), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
+            }
+        }
+        Integer participateActivityDuration = statisticsOrgVo.getParticipateActivityDuration();
+        if (nonNull(participateActivityDuration) && participateActivityDuration.intValue() > 0) {
+            Integer participateVolunteerActivityDuration = statisticsOrgVo.getParticipateVolunteerActivityDuration();
+            if (nonNull(participateVolunteerActivityDuration) && participateVolunteerActivityDuration.intValue() > 0) {
+                statisticsOrgVo.setParticipateVolunteerActivityDurationPercent(new BigDecimal(participateVolunteerActivityDuration)
+                        .divide(new BigDecimal(participateActivityDuration), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
+            }
+            Integer participatePartyActivityDuration = statisticsOrgVo.getParticipatePartyActivityDuration();
+            if (nonNull(participatePartyActivityDuration) && participatePartyActivityDuration.intValue() > 0) {
+                statisticsOrgVo.setParticipatePartyActivityDurationPercent(new BigDecimal(participatePartyActivityDuration)
+                        .divide(new BigDecimal(participateActivityDuration), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
+            }
+        }
+        return R.ok(statisticsOrgVo);
+    }
+
+    /**
+     * 查询党组织表头统计数据
+     * @param communityId
+     *            社区id
+     * @return  党组织表头统计数据
+     */
+    @Override
+    public R getHeaderOrgDataStatistics(Long communityId) {
+        ComDataStatisticsHeaderOrgVo headerOrgVo = comPbMemberDAO.getHeaderOrgDataStatistics(communityId);
+        if(headerOrgVo != null){
+            if(headerOrgVo.getVillageNum() == null || headerOrgVo.getVillageNum().equals(0)){
+                headerOrgVo.setVillageRate(BigDecimal.ZERO);
+            }else{
+                headerOrgVo.setVillageRate(BigDecimal.valueOf(headerOrgVo.getAreaNum()).divide(BigDecimal.valueOf(headerOrgVo.getVillageNum())
+                        ,4,BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(100)));
+            }
+        }
+        return R.ok(headerOrgVo);
+    }
+
+    /**
+     * 党员数据统计-党员导出数据查询
+     * @param statisticsMemberDto   请求参数
+     * @return  党员导出数据
+     */
+    @Override
+    public R exportDataStatisticsMember(PageComDataStatisticsMemberDto statisticsMemberDto) {
+        List<ComDataStatisticsMemberExcelVo> memberList = comPbMemberDAO.exportDataStatisticsMember(statisticsMemberDto);
+        memberList.forEach(member -> {
+            //查询党员统计数据
+            ComDataStatisticsMemberVo statisticsMemberVo = comPbMemberDAO.getMemberStatistics(member.getUserId(),member.getCommunityId());
+            if(statisticsMemberVo != null){
+                member.setPartyActivityCount(statisticsMemberVo.getPartyActivityCount());
+                member.setPartyActivityDuration(statisticsMemberVo.getPartyActivityDuration());
+                member.setVolunteerActivityCount(statisticsMemberVo.getVolunteerActivityCount());
+                member.setVolunteerActivityDuration(statisticsMemberVo.getVolunteerActivityDuration());
+                member.setVolunteerActivityIntegral(statisticsMemberVo.getVolunteerActivityIntegral());
+                member.setWishCount(statisticsMemberVo.getWishCount());
+                member.setEasyCount(statisticsMemberVo.getEasyCount());
+                member.setActivityCount(member.getPartyActivityCount() + member.getVolunteerActivityCount());
+                member.setActivityDuration(member.getPartyActivityDuration() + member.getVolunteerActivityDuration());
+            }
+        });
+        return R.ok(memberList);
+    }
+
+    @Override
+    public R importPbMemberRole(List<ComPbMemberRoleExcelVo> list, Long communityId, Long userId) {
+        return null;
+    }
+
+//    /**
+//     * 党委导入接口
+//     * @param list 数据列表
+//     * @param communityId   社区id
+//     * @param userId    用户id
+//     * @return  导入结果
+//     */
+//    @Override
+//    @Transactional(rollbackFor = Exception.class)
+//    public R importPbMemberRole(List<ComPbMemberRoleExcelVo> list, Long communityId, Long userId) {
+//        ArrayList<ComPbMemberRoleErrorExcelVo> mistakes = Lists.newArrayList();
+//        ArrayList<ComPbMemberRoleDO> saveList = Lists.newArrayList();
+//        Date nowDate = new Date();
+//        if(list != null && list.size() > 0){
+//            list.forEach(memberRole -> {
+//                ComPbMemberRoleDO memberRoleDO = comPbMemberRoleDAO.selectOne(new QueryWrapper<ComPbMemberRoleDO>().lambda()
+//                        .eq(ComPbMemberRoleDO::getCommunityId,communityId).eq(ComPbMemberRoleDO::getIdCard,memberRole.getIdCard()));
+//                if(memberRoleDO != null){
+//                    ComPbMemberRoleErrorExcelVo roleErrorExcelVo = new ComPbMemberRoleErrorExcelVo();
+//                    BeanUtils.copyProperties(memberRole,roleErrorExcelVo);
+//                    roleErrorExcelVo.setError("该党委已存在,不可重复导入");
+//                    mistakes.add(roleErrorExcelVo);
+//                }else{
+//                    memberRoleDO = new ComPbMemberRoleDO();
+//                    BeanUtils.copyProperties(memberRole,memberRoleDO);
+//                    Integer type = ComPbMemberRoleTypeEnum.getCodeByName(memberRole.getTypeName());
+//                    if(type.equals(0)){
+//                        ComPbMemberRoleErrorExcelVo roleErrorExcelVo = new ComPbMemberRoleErrorExcelVo();
+//                        BeanUtils.copyProperties(memberRole,roleErrorExcelVo);
+//                        roleErrorExcelVo.setError("党委标签不存在,请核对后再重新导入");
+//                        mistakes.add(roleErrorExcelVo);
+//                        return;
+//                    }else{
+//                        memberRoleDO.setType(type);
+//                    }
+//                    try {
+//                        Date joinTime = DateUtils.stringToDate(memberRole.getJoinTime(),DateUtils.yyyyMMdd_format);
+//                        memberRoleDO.setJoinTime(joinTime);
+//                    } catch (Exception e) {
+//                        ComPbMemberRoleErrorExcelVo roleErrorExcelVo = new ComPbMemberRoleErrorExcelVo();
+//                        BeanUtils.copyProperties(memberRole,roleErrorExcelVo);
+//                        roleErrorExcelVo.setError("入党时间格式错误,请按照正确格式填写,如:2022-01-01");
+//                        mistakes.add(roleErrorExcelVo);
+//                        return;
+//                    }
+//                    if(StringUtils.isNotEmpty(memberRole.getOrg())){
+//                        ComPbOrgDO comPbOrgDO=comPbOrgDAO.selectOne(new QueryWrapper<ComPbOrgDO>().lambda().eq(ComPbOrgDO::getName,memberRole.getOrg()).eq(ComPbOrgDO::getCommunityId,communityId));
+//                        if(comPbOrgDO!=null){
+//                            memberRoleDO.setOrgId(comPbOrgDO.getId());
+//                        }
+//                    }
+//                    try {
+//                        Date employmentTime = DateUtils.stringToDate(memberRole.getEmploymentTime(),DateUtils.yyyyMMdd_format);
+//                        memberRoleDO.setEmploymentTime(employmentTime);
+//                    } catch (Exception e) {
+//                        ComPbMemberRoleErrorExcelVo roleErrorExcelVo = new ComPbMemberRoleErrorExcelVo();
+//                        BeanUtils.copyProperties(memberRole,roleErrorExcelVo);
+//                        roleErrorExcelVo.setError("转正时间格式错误,请按照正确格式填写,如:2022-01-01");
+//                        mistakes.add(roleErrorExcelVo);
+//                        return;
+//                    }
+//                    Integer userCount = comPbMemberRoleDAO.getSysUserByIdCardCount(memberRole.getIdCard());
+//                    memberRoleDO.setIsReg(userCount > 0 ? 1 : 2);
+//                    memberRoleDO.setCommunityId(communityId);
+//                    memberRoleDO.setSex(Integer.parseInt(memberRoleDO.getIdCard().substring(16,17))%2==0?2:1);
+//                    saveList.add(memberRoleDO);
+//                }
+//            });
+//        }
+//
+//        if(saveList.size() > 0){
+//            saveList.forEach(save -> {
+//                int result = comPbMemberRoleDAO.insert(save);
+//                if(result>0){
+//                    //判断党员信息是否存在党委信息
+//                    ComPbMemberDO pbMemberDO = comPbMemberDAO.selectOne(new QueryWrapper<ComPbMemberDO>().lambda()
+//                            .eq(ComPbMemberDO::getIdCard,save.getIdCard())
+//                            .eq(ComPbMemberDO::getAuditResult,ComPbMemberDO.AuditResult.SHTG)
+//                            .eq(ComPbMemberDO::getCommunityId,save.getCommunityId()));
+//                    if(pbMemberDO == null){
+//                        //不存在则创建党委党员信息
+//                        pbMemberDO = new ComPbMemberDO();
+//                        BeanUtils.copyProperties(save, pbMemberDO);
+//                        pbMemberDO.setAuditResult(ComPbMemberDO.AuditResult.SHTG);
+//                        pbMemberDO.setCreateAt(nowDate);
+//                        pbMemberDO.setUpdateAt(nowDate);
+//                        pbMemberDO.setType(ComPbMemberDO.Type.ZSDY);
+//                        comPbMemberDAO.insert(pbMemberDO);
+//                        //金沙特殊需求
+//                        if(pbMemberDO.getCommunityId()==2L){
+//                            ComMngVolunteerMngVO comMngVolunteerMngVO=new ComMngVolunteerMngVO();
+//                            comMngVolunteerMngVO.setOrgId(53L);
+//                            comMngVolunteerMngVO.setName(pbMemberDO.getName());
+//                            comMngVolunteerMngVO.setPhone(pbMemberDO.getPhone());
+//                            comMngVolunteerMngVO.setIdCard(pbMemberDO.getIdCard());
+//                            comMngVolunteerMngVO.setState(2);
+//                            comMngVolunteerMngVO.setCommunityId(2L);
+//                            R r = communityService.addVolunteer(comMngVolunteerMngVO);
+//                            // 支援者添加成功,修改小程序用户的志愿者状态    ,通过手机号
+//                            if (R.isOk(r)) {
+//                                String phone = comMngVolunteerMngVO.getPhone();
+//                                R r1 = userService.putUserIsVolunteer(phone, 1);
+//                                if (R.isOk(r1)) {
+//                                    log.info("修改手机号【{}】的支援者状态为是", phone);
+//                                } else {
+//                                    log.info("手机号【{}】没有小程序用户", phone);
+//                                }
+//                            }
+//                        }
+//                    }
+//                }
+//                userService.updateUserIsPartymember(save.getIdCard());
+//            });
+//        }
+//        if(mistakes.size() > 0){
+//            return R.fail(mistakes);
+//        }
+//        return R.ok();
+//    }
+
+    @Override
+    public R exportPartyMember(PagePartyOrganizationVO pagePartyOrganizationVO) {
+        return R.ok(comPbMemberDAO.exportPartyMemberList(pagePartyOrganizationVO));
+    }
+
+    @Override
+    public R checkMember(String idCard) {
+        List<ComPbMemberDO> list=comPbMemberDAO.selectList(new QueryWrapper<ComPbMemberDO>().lambda().eq(ComPbMemberDO::getIdCard,idCard));
+        return R.ok(CollectionUtils.isEmpty(list));
+    }
+
+    @Override
+    public R getPagePbMember(PartyBuildingMemberVO dto) {
+        IPage<PartyBuildingMemberVO> memberPage = comPbMemberDAO.getPbMemberByApplets(new Page(dto.getPageNum(),dto.getPageSize()),dto);
+        memberPage.getRecords().forEach(member -> {
+            if(StringUtils.isEmpty(member.getOrgName())){
+                member.setOrgName("待编辑党支部");
+            }
+            if(StringUtils.isEmpty(member.getCheckUnitName())){
+                member.setCheckUnitName("待编辑报到单位");
+            }
+            //member.setName(SensitiveUtil.replaceName(member.getName()));
+        });
+        return R.ok(memberPage);
+    }
+
+    @Override
+    public R getProject(ProjectVO projectVO) {
+//        LambdaQueryWrapper<ComActProject> wrapper = new LambdaQueryWrapper<>();
+//        wrapper.eq(ComActProject::getUnitId,projectVO.getUnitId());
+//        wrapper.eq(projectVO.getSpeciality()!=null,ComActProject::getSpeciality,projectVO.getSpeciality());
+//        wrapper.eq(projectVO.getProject()!=null,ComActProject::getProject,projectVO.getProject());
+//        wrapper.orderByDesc(ComActProject::getCreateTime);
+//        List<ComActProject> comActProjects = comActProjectMapper.selectList(wrapper);
+        List<ComActProject> comActProjects = comActProjectMapper.getList(projectVO);
+        return R.ok(comActProjects);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public R addProject(ProjectVO projectVO) {
+        Date date = new Date();
+        ComActProject comActProject = new ComActProject();
+        comActProject.setUnitId(projectVO.getUnitId());
+        comActProject.setUnitName(projectVO.getUnitName());
+        comActProject.setSpeciality(projectVO.getSpeciality());
+        comActProject.setProject(projectVO.getProject());
+        comActProject.setPhone(projectVO.getPhone());
+        comActProject.setImage(projectVO.getImage());
+        comActProject.setCreateTime(date);
+        comActProjectMapper.insert(comActProject);
+      //  new_fight_resource_sharing
+        NewFightResourceSharingDTO dto = new NewFightResourceSharingDTO();
+        dto.setTitle(projectVO.getProject());
+        dto.setUnitId(String.valueOf(projectVO.getUnitId()));
+        dto.setMeritId(projectVO.getSpeciality());
+        dto.setImgUrl(projectVO.getImage());
+        dto.setPhone(projectVO.getPhone());
+        dto.setCommunityId(projectVO.getCommunityId());
+        dto.setCreationTime(date);
+        newFightResourceSharingDAO.addData(dto);
+        return R.ok();
+    }
+
+    @Override
+    public R updateProject(ProjectVO projectVO) {
+        LambdaQueryWrapper<ComActProject> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(ComActProject::getUnitId,projectVO.getUnitId());
+        wrapper.eq(ComActProject::getId,projectVO.getId());
+        ComActProject actProject = comActProjectMapper.selectOne(wrapper);
+        actProject.setSpeciality(projectVO.getSpeciality());
+        actProject.setProject(projectVO.getProject());
+        actProject.setPhone(projectVO.getPhone());
+        if(projectVO.getImage() != null){
+            actProject.setImage(projectVO.getImage());
+        }
+        comActProjectMapper.updateById(actProject);
+        return R.ok();
+    }
+
+    @Override
+    public R deleteProject(ProjectVO projectVO) {
+        List<Long> ids = projectVO.getIds();
+        LambdaQueryWrapper<ComActProject> wrapper = new LambdaQueryWrapper<>();
+        wrapper.in(ComActProject::getId,ids);
+        comActProjectMapper.delete(wrapper);
+        return R.ok();
+    }
+
+    @Override
+    public R getPartyMember(String phone,Integer type) {
+
+        return R.ok(comPbMemberDAO.selectDetail(phone,type));
+    }
+
+    @Override
+    public R memberDetail(Long id) {
+        return R.ok(comPbMemberDAO.getDetailByApp(id));
+    }
+
+    /**
+     * 分页查询注册党员列表
+     * @param dto
+     * @return
+     */
+    @Override
+    public R pageRegisterMember(PageMemberForInviteDTO dto) {
+        return R.ok(comPbMemberDAO.pageRegisterMember(new Page(dto.getPageNum(), dto.getPageSize()), dto));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComPbMemberWestServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComPbMemberWestServiceImpl.java
new file mode 100644
index 0000000..22ba557
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComPbMemberWestServiceImpl.java
@@ -0,0 +1,1086 @@
+package com.panzhihua.service_dangjian.service.impl;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import javax.annotation.Resource;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.IdcardUtil;
+import com.google.common.collect.Lists;
+import com.panzhihua.common.enums.ComPbMemberRoleTypeEnum;
+import com.panzhihua.common.model.dtos.partybuilding.ComDataStatisticsOrgDto;
+import com.panzhihua.common.model.dtos.partybuilding.PageComDataStatisticsMemberDto;
+import com.panzhihua.common.model.vos.community.ComActVO;
+import com.panzhihua.common.model.vos.community.ComMngVolunteerMngVO;
+import com.panzhihua.common.model.vos.partybuilding.west.*;
+import com.panzhihua.common.model.vos.partybuilding.excel.ComDataStatisticsMemberExcelVo;
+import com.panzhihua.common.model.vos.partybuilding.excel.ComPbMemberRoleErrorExcelVo;
+import com.panzhihua.common.model.vos.partybuilding.excel.ComPbMemberRoleExcelVo;
+import com.panzhihua.common.service.community.CommunityWestService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.*;
+import org.springframework.beans.BeanUtils;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+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.constants.UserConstants;
+import com.panzhihua.common.exceptions.PartyBuildingMemberException;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_dangjian.dao.*;
+import com.panzhihua.service_dangjian.model.dos.*;
+import com.panzhihua.service_dangjian.service.ComPbMemberWestService;
+
+import lombok.extern.slf4j.Slf4j;
+
+import static java.util.Objects.nonNull;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党员
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 10:53
+ **/
+@Slf4j
+@Service
+public class ComPbMemberWestServiceImpl extends ServiceImpl<ComPbMemberWestDAO, ComPbMemberWestDO> implements ComPbMemberWestService {
+    private final String REDIS_ORG_ALL = "ogrlist";
+    @Resource
+    private ComPbMemberWestDAO comPbMemberWestDAO;
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+    @Resource
+    private ComPbOrgDAO comPbOrgDAO;
+    @Resource
+    private ComPbMemberRoleDAO comPbMemberRoleDAO;
+    @Resource
+    private ComPbDynDAO comPbDynDAO;
+    @Resource
+    private ComPbDynUserDAO comPbDynUserDAO;
+    @Resource
+    private CommunityWestService communityWestService;
+    @Resource
+    private UserService userService;
+    @Resource
+    private ComPbMemberDAO comPbMemberDAO;
+
+    /**
+     * 新增党员
+     *
+     * @param partyBuildingMemberVO
+     *            党员基本信息
+     * @return 新增结果
+     */
+    @Override
+    public R addPartyBuildingMember(PartyBuildingMemberVO partyBuildingMemberVO) {
+        String idCard = partyBuildingMemberVO.getIdCard();
+        List<ComPbMemberWestDO> comPbMemberWestDOS = comPbMemberWestDAO.selectList(new QueryWrapper<ComPbMemberWestDO>().lambda()
+                .eq(ComPbMemberWestDO::getIdCard, idCard).eq(ComPbMemberWestDO::getAuditResult, 1));
+        if (!ObjectUtils.isEmpty(comPbMemberWestDOS) && comPbMemberWestDOS.size() > 0) {
+            return R.fail("身份证已经存在");
+        }
+        ComPbMemberWestDO comPbMemberWestDO1 = new ComPbMemberWestDO();
+        BeanUtils.copyProperties(partyBuildingMemberVO, comPbMemberWestDO1);
+        Date date = new Date();
+        comPbMemberWestDO1.setCreateAt(date);
+        comPbMemberWestDO1.setUpdateAt(date);
+        comPbMemberWestDO1.setId(null);
+        int insert = comPbMemberWestDAO.insert(comPbMemberWestDO1);
+        if (insert > 0) {
+            // 删除已驳回的记录
+            int delete = comPbMemberWestDAO.delete(new QueryWrapper<ComPbMemberWestDO>().lambda()
+                    .eq(ComPbMemberWestDO::getIdCard, partyBuildingMemberVO.getIdCard())
+                    .eq(ComPbMemberWestDO::getUserId, partyBuildingMemberVO.getUserId())
+                    .eq(ComPbMemberWestDO::getCommunityId, partyBuildingMemberVO.getCommunityId())
+                    .eq(ComPbMemberWestDO::getAuditResult, 3));
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 批量新增党员
+     *
+     * @param list
+     *            党员集合
+     * @return 新增结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R listSavePartyBuildingMemberExcelVO(List<PartyBuildingMemberExcelVO> list) {
+        // Boolean aBoolean = stringRedisTemplate.hasKey(REDIS_ORG_ALL);
+        // ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
+        List<PartyOrganizationVO> partyOrganizationVOS = new ArrayList<>();
+        // if (aBoolean) {
+        // String orgs = valueOperations.get(REDIS_ORG_ALL);
+        // if (!ObjectUtils.isEmpty(orgs)) {
+        // partyOrganizationVOS= JSONArray.parseArray(orgs,PartyOrganizationVO.class);
+        // }
+        // } else {
+        // List<ComPbOrgDO> comPbOrgDOS = comPbOrgDAO.selectList(new LambdaQueryWrapper<>());
+        // if (!ObjectUtils.isEmpty(comPbOrgDOS)) {
+        // List<PartyOrganizationVO> partyOrganizationVOList=new ArrayList<>();
+        // comPbOrgDOS.forEach(comPbOrgDO -> {
+        // PartyOrganizationVO partyOrganizationVO=new PartyOrganizationVO();
+        // partyOrganizationVO.setId(comPbOrgDO.getId());
+        // partyOrganizationVO.setName(comPbOrgDO.getName());
+        // partyOrganizationVO.setCommunityId(comPbOrgDO.getCommunityId());
+        // partyOrganizationVOList.add(partyOrganizationVO);
+        // });
+        // partyOrganizationVOS= partyOrganizationVOList;
+        // }
+        // valueOperations.set(REDIS_ORG_ALL,JSONArray.toJSONString(partyOrganizationVOS),24, TimeUnit.HOURS);
+        // }
+        List<ComPbOrgDO> comPbOrgDOS = comPbOrgDAO.selectList(new LambdaQueryWrapper<>());
+        if (!ObjectUtils.isEmpty(comPbOrgDOS)) {
+            List<PartyOrganizationVO> partyOrganizationVOList = new ArrayList<>();
+            comPbOrgDOS.forEach(comPbOrgDO -> {
+                PartyOrganizationVO partyOrganizationVO = new PartyOrganizationVO();
+                partyOrganizationVO.setId(comPbOrgDO.getId());
+                partyOrganizationVO.setName(comPbOrgDO.getName());
+                partyOrganizationVO.setCommunityId(comPbOrgDO.getCommunityId());
+                partyOrganizationVOList.add(partyOrganizationVO);
+            });
+            partyOrganizationVOS = partyOrganizationVOList;
+        }
+        List<ComPbMemberWestDO> comPbMemberWestDOS = new ArrayList<>();
+        if (!ObjectUtils.isEmpty(list)) {
+            List<PartyOrganizationVO> partyOrganizationVOArrayList = partyOrganizationVOS;
+            for (PartyBuildingMemberExcelVO partyBuildingMemberExcelVO : list) {
+                ComPbMemberWestDO comPbMemberWestDO = new ComPbMemberWestDO();
+                Date date = new Date();
+                comPbMemberWestDO.setUpdateAt(date);
+                comPbMemberWestDO.setCreateAt(date);
+                String orgName = partyBuildingMemberExcelVO.getOrgName();
+                List<PartyOrganizationVO> collect = partyOrganizationVOArrayList.stream()
+                        .filter(partyOrganizationVO -> orgName.equals(partyOrganizationVO.getName()))
+                        .collect(Collectors.toList());
+                if (ObjectUtils.isEmpty(collect)) {
+                    throw new PartyBuildingMemberException(
+                            "导入失败,组织不存在" + partyBuildingMemberExcelVO.getOrgName() + ",请先在“党支部管理”中添加该党支部");
+                } else {
+                    PartyOrganizationVO partyOrganizationVO = collect.get(0);
+                    comPbMemberWestDO.setOrgId(partyOrganizationVO.getId());
+                    comPbMemberWestDO.setCommunityId(partyOrganizationVO.getCommunityId());
+
+                    List<ComPbMemberWestDO> comPbMemberWestDOList = this.baseMapper.selectList(new QueryWrapper<ComPbMemberWestDO>()
+                            .lambda().eq(ComPbMemberWestDO::getIdCard, partyBuildingMemberExcelVO.getIdCard())
+                            .eq(ComPbMemberWestDO::getCommunityId, partyOrganizationVO.getCommunityId())
+                            .in(ComPbMemberWestDO::getAuditResult, 0, 1));
+                    if (!comPbMemberWestDOList.isEmpty()) {
+                        comPbMemberWestDOList.forEach(comPbMember -> {
+                            BeanUtils.copyProperties(partyBuildingMemberExcelVO, comPbMember);
+                            this.baseMapper.updateById(comPbMember);
+                        });
+                        continue;
+                        // throw new PartyBuildingMemberException("导入失败,您导入的数据中有已存在的党员信息,已存在的数据:"+
+                        // partyBuildingMemberExcelVO.getEmploymentTime() + ",已存在的人名:" +
+                        // partyBuildingMemberExcelVO.getName());
+                    }
+                }
+
+                if (StringUtils.isNotEmpty(partyBuildingMemberExcelVO.getEmploymentTime())
+                        && !DateUtils.isValidDate(partyBuildingMemberExcelVO.getEmploymentTime())) {
+                    throw new PartyBuildingMemberException(
+                            "导入失败,您导入的数据中有转正日期格式错误,错误数据:" + partyBuildingMemberExcelVO.getEmploymentTime() + ",错误人名:"
+                                    + partyBuildingMemberExcelVO.getName());
+                }
+
+                if (StringUtils.isNotEmpty(partyBuildingMemberExcelVO.getJoinTime())
+                        && !DateUtils.isValidDate(partyBuildingMemberExcelVO.getJoinTime())) {
+                    throw new PartyBuildingMemberException("导入失败,您导入的数据中有入党日期格式错误,错误数据:"
+                            + partyBuildingMemberExcelVO.getJoinTime() + ",错误人名:" + partyBuildingMemberExcelVO.getName());
+                }
+
+                if (StringUtils.isNotEmpty(partyBuildingMemberExcelVO.getEmploymentTime())) {
+                    Date employmentTime = DateUtils.toValidDate(partyBuildingMemberExcelVO.getEmploymentTime());
+                    comPbMemberWestDO.setEmploymentTime(employmentTime);
+                } else {
+                    comPbMemberWestDO.setEmploymentTime(null);
+                }
+
+                if (StringUtils.isNotEmpty(partyBuildingMemberExcelVO.getJoinTime())) {
+                    Date joinTime = DateUtils.toValidDate(partyBuildingMemberExcelVO.getJoinTime());
+                    comPbMemberWestDO.setJoinTime(joinTime);
+                } else {
+                    comPbMemberWestDO.setJoinTime(null);
+                }
+
+                comPbMemberWestDO.setName(partyBuildingMemberExcelVO.getName());
+                comPbMemberWestDO.setIdCard(partyBuildingMemberExcelVO.getIdCard());
+                comPbMemberWestDOS.add(comPbMemberWestDO);
+            }
+        }
+        comPbMemberWestDOS.forEach(comPbMemberDO -> {
+            //金沙社区特殊需求 添加党员默认添加志愿者
+            if(comPbMemberDO.getCommunityId()==2L){
+                ComMngVolunteerMngVO comMngVolunteerMngVO=new ComMngVolunteerMngVO();
+                comMngVolunteerMngVO.setOrgId(53L);
+                comMngVolunteerMngVO.setName(comPbMemberDO.getName());
+                comMngVolunteerMngVO.setPhone(comPbMemberDO.getPhone());
+                comMngVolunteerMngVO.setIdCard(comPbMemberDO.getIdCard());
+                comMngVolunteerMngVO.setState(2);
+                comMngVolunteerMngVO.setCommunityId(2L);
+                R r = communityWestService.addVolunteer(comMngVolunteerMngVO);
+                // 支援者添加成功,修改小程序用户的志愿者状态    ,通过手机号
+                String phone = comMngVolunteerMngVO.getPhone();
+                if (R.isOk(r) && StringUtils.isNotBlank(phone)) {
+                    R r1 = userService.putUserIsVolunteer(phone, 1);
+                    if (R.isOk(r1)) {
+                        log.info("修改手机号【{}】的支援者状态为是", phone);
+                    } else {
+                        log.info("手机号【{}】没有小程序用户", phone);
+                    }
+                }
+            }
+        });
+        this.saveBatch(comPbMemberWestDOS);
+        return R.ok();
+    }
+
+    /**
+     * 分页党员
+     *
+     * @param pagePartyOrganizationVO
+     *            查询信息
+     * @return 分页数据
+     */
+    @Override
+    public R pagePartyOrganization(PagePartyOrganizationVO pagePartyOrganizationVO) {
+        Page page = new Page<>();
+        Long pageNum = pagePartyOrganizationVO.getPageNum();
+        Long pageSize = pagePartyOrganizationVO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        Long communityId = pagePartyOrganizationVO.getCommunityId();
+        if (null != communityId){
+            List<Long> communityIds = comPbMemberDAO.selectIds(communityId);
+            if (CollUtil.isEmpty(communityIds)) {
+                communityIds = new ArrayList<>();
+                communityIds.add(communityId);
+            }
+            pagePartyOrganizationVO.setCommunityIds(communityIds);
+        }
+        IPage<PartyBuildingMemberVO> iPage = comPbMemberWestDAO.queryAllByLimit(page, pagePartyOrganizationVO);
+        iPage.getRecords().forEach(record -> {
+            record.setIdCard(SensitiveUtil.desensitizedIdNumber(record.getIdCard()));
+        });
+        return R.ok(iPage);
+    }
+
+    /**
+     * 编辑党员信息 新增字段均可编辑
+     *
+     * @param partyBuildingMemberVO
+     *            编辑字段
+     * @return 编辑结果
+     */
+    @Override
+    public R updatePartyBuildingMember(PartyBuildingMemberVO partyBuildingMemberVO) {
+        ComPbMemberWestDO comPbMemberWestDO = new ComPbMemberWestDO();
+        Long orgId = partyBuildingMemberVO.getOrgId();
+        if (null != orgId && 0 == orgId) {
+            partyBuildingMemberVO.setOrgId(null);
+        }
+        BeanUtils.copyProperties(partyBuildingMemberVO, comPbMemberWestDO);
+        Integer type = partyBuildingMemberVO.getType();
+        if (nonNull(type) && type.equals(1)) {
+            comPbMemberWestDO.setEmploymentTime(null);
+        }
+        comPbMemberWestDO.setAuditResult(partyBuildingMemberVO.getAuditResult());
+        int i = comPbMemberWestDAO.updateById(comPbMemberWestDO);
+        if (i > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 查询指定社区的所有党员
+     *
+     * @param communityId
+     *            社区id
+     * @return 党员列表
+     */
+    @Override
+    public R listPartyMember(Long communityId) {
+        List<ComPbMemberWestDO> comPbMemberWestDOS = comPbMemberWestDAO.selectList(new QueryWrapper<ComPbMemberWestDO>().lambda()
+                .eq(ComPbMemberWestDO::getCommunityId, communityId).eq(ComPbMemberWestDO::getAuditResult, 1));
+        // 查询社区所有已经注册的党员
+        // 排除掉已经成为党委的党员
+        // List<ComPbMemberDO> comPbMemberDOS = comPbMemberDAO.selectListRegister(communityId);
+        // if (ObjectUtils.isEmpty(comPbMemberDOS)) {
+        // return R.ok(new ArrayList<>());
+        // }
+        List<PartyBuildingMemberVO> partyBuildingMemberVOS = new ArrayList<>();
+        comPbMemberWestDOS.forEach(comPbMemberDO -> {
+            PartyBuildingMemberVO partyBuildingMemberVO = new PartyBuildingMemberVO();
+            BeanUtils.copyProperties(comPbMemberDO, partyBuildingMemberVO);
+            partyBuildingMemberVOS.add(partyBuildingMemberVO);
+        });
+        return R.ok(partyBuildingMemberVOS);
+    }
+
+    /**
+     * 新增党委
+     *
+     * @param partyCommitteeVO
+     *            新增信息
+     * @return 新增结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R addPartyCommittee(PartyCommitteeVO partyCommitteeVO) {
+        ComPbMemberRoleDO comPbMemberRoleDO = new ComPbMemberRoleDO();
+        BeanUtils.copyProperties(partyCommitteeVO, comPbMemberRoleDO);
+        comPbMemberRoleDO.setCreateAt(new Date());
+        comPbMemberRoleDO.setUpdateAt(new Date());
+        comPbMemberRoleDO.setIsReg(2);
+        comPbMemberRoleDO.setSex(Integer.parseInt(partyCommitteeVO.getIdCard().substring(16,17))%2==0?2:1);
+        Integer userCount = comPbMemberRoleDAO.getSysUserByIdCardCount(partyCommitteeVO.getIdCard(), partyCommitteeVO.getAreaCode());
+        if (userCount > 0) {
+            comPbMemberRoleDO.setIsReg(1);
+        }
+        Date nowDate = new Date();
+        //判断党员信息是否存在党委信息
+        ComPbMemberWestDO pbMemberDO = comPbMemberWestDAO.selectOne(new QueryWrapper<ComPbMemberWestDO>().lambda()
+                .eq(ComPbMemberWestDO::getIdCard,partyCommitteeVO.getIdCard())
+                .eq(ComPbMemberWestDO::getAuditResult, ComPbMemberWestDO.AuditResult.SHTG)
+                .eq(ComPbMemberWestDO::getCommunityId,partyCommitteeVO.getCommunityId()));
+        if(pbMemberDO == null){
+            //不存在则创建党委党员信息
+            pbMemberDO = new ComPbMemberWestDO();
+            BeanUtils.copyProperties(partyCommitteeVO, pbMemberDO);
+            pbMemberDO.setAuditResult(ComPbMemberWestDO.AuditResult.SHTG);
+            pbMemberDO.setCreateAt(nowDate);
+            pbMemberDO.setUpdateAt(nowDate);
+            pbMemberDO.setType(ComPbMemberWestDO.Type.ZSDY);
+            comPbMemberWestDAO.insert(pbMemberDO);
+        }else{
+            //存在则更新党委党员信息
+            BeanUtils.copyProperties(partyCommitteeVO, pbMemberDO);
+            pbMemberDO.setUpdateAt(nowDate);
+            pbMemberDO.setType(ComPbMemberWestDO.Type.ZSDY);
+            comPbMemberWestDAO.updateById(pbMemberDO);
+        }
+        int insert = comPbMemberRoleDAO.insert(comPbMemberRoleDO);
+        if (insert > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 编辑党委
+     *
+     * @param partyCommitteeVO
+     *            编辑信息
+     * @return 编辑结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R updatePartyCommittee(PartyCommitteeVO partyCommitteeVO) {
+        ComPbMemberRoleDO comPbMemberRoleDO = new ComPbMemberRoleDO();
+        Date nowDate = new Date();
+        BeanUtils.copyProperties(partyCommitteeVO, comPbMemberRoleDO);
+        comPbMemberRoleDO.setUpdateAt(nowDate);
+        comPbMemberRoleDO.setIsReg(2);
+        Integer userCount = comPbMemberRoleDAO.getSysUserByIdCardCount(partyCommitteeVO.getIdCard(), partyCommitteeVO.getAreaCode());
+        if (userCount > 0) {
+            comPbMemberRoleDO.setIsReg(1);
+        }
+        //查询党员信息并更新
+        ComPbMemberWestDO pbMemberDO = comPbMemberWestDAO.selectOne(new QueryWrapper<ComPbMemberWestDO>().lambda()
+                .eq(ComPbMemberWestDO::getIdCard,partyCommitteeVO.getIdCard())
+                .eq(ComPbMemberWestDO::getAuditResult, ComPbMemberWestDO.AuditResult.SHTG)
+                .eq(ComPbMemberWestDO::getCommunityId,partyCommitteeVO.getCommunityId()));
+        if(pbMemberDO != null){
+            Long id = pbMemberDO.getId();
+            BeanUtils.copyProperties(partyCommitteeVO, pbMemberDO);
+            pbMemberDO.setId(id);
+            pbMemberDO.setUpdateAt(nowDate);
+            pbMemberDO.setType(ComPbMemberWestDO.Type.ZSDY);
+            comPbMemberWestDAO.updateById(pbMemberDO);
+        }
+        int update = comPbMemberRoleDAO.updateById(comPbMemberRoleDO);
+        if (update > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 删除党委
+     *
+     * @param partyCommitteeVO
+     *            删除id
+     * @return 删除结果
+     */
+    @Override
+    public R deletePartyCommittee(PartyCommitteeVO partyCommitteeVO) {
+        ComPbMemberRoleDO comPbMemberRoleDO = comPbMemberRoleDAO.selectById(partyCommitteeVO.getId());
+        if (comPbMemberRoleDO == null) {
+            return R.fail("记录不存在");
+        }
+        int delete = comPbMemberRoleDAO.deleteById(partyCommitteeVO.getId());
+        if (delete > 0) {
+            Long userId = comPbMemberRoleDAO.getUserIdByIdCard(comPbMemberRoleDO.getIdCard(), partyCommitteeVO.getAreaCode());
+            // 删除用户信息缓存
+            if (userId != null) {
+                String userKey = UserConstants.LOGIN_USER_INFO + userId;
+                stringRedisTemplate.delete(userKey);
+            }
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 分页社区党委查询
+     *
+     * @param partyCommitteeVO
+     *            查询参数
+     * @return 分页集合
+     */
+    @Override
+    public R pagePartyCommittee(PartyCommitteeVO partyCommitteeVO) {
+        Page page = new Page<>();
+        Long pageNum = partyCommitteeVO.getPageNum();
+        Long pageSize = partyCommitteeVO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<PartyCommitteeVO> iPage = comPbMemberRoleDAO.pagePartyOrganization(page, partyCommitteeVO);
+        iPage.getRecords().forEach(record -> {
+            record.setPhone(SensitiveUtil.desensitizedPhoneNumber(record.getPhone()));
+        });
+        return R.ok(iPage);
+    }
+
+    /**
+     * 新建党建动态
+     *
+     * @param partyCommitteeVO
+     *            动态内容
+     * @return 新增结果
+     */
+    @Override
+    public R adddYnamic(PartyBuildingComPbDynVO partyCommitteeVO) {
+        partyCommitteeVO.setId(null);
+        ComPbDynDO comPbDynDO = new ComPbDynDO();
+        BeanUtils.copyProperties(partyCommitteeVO, comPbDynDO);
+        comPbDynDO.setCreateAt(new Date());
+        int insert = comPbDynDAO.insert(comPbDynDO);
+        if (insert > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 编辑动态
+     *
+     * @param partyCommitteeVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @Override
+    public R updateYnamic(PartyBuildingComPbDynVO partyCommitteeVO) {
+        ComPbDynDO comPbDynDO = new ComPbDynDO();
+        BeanUtils.copyProperties(partyCommitteeVO, comPbDynDO);
+        int insert = comPbDynDAO.updateById(comPbDynDO);
+        if (insert > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 动态详情
+     *
+     * @param id
+     *            动态主键
+     * @return 详情
+     */
+    @Override
+    public R infoYnamic(Long id) {
+        PartyBuildingComPbDynVO comPbDynVO = comPbDynDAO.selectVoById(id);
+        if (ObjectUtils.isEmpty(comPbDynVO)) {
+            return R.fail("动态不存在");
+        }
+        // ComPbMemberDO comPbMemberDO = comPbMemberDAO.selectById(createBy);
+        // String name = comPbMemberDAO.selectNameByUserId(createBy);
+
+        if (ObjectUtils.isEmpty(comPbDynVO.getCreateByName())) {
+            // return R.fail("发布人不存在");
+            String name = comPbMemberWestDAO.selectNameByUserId(comPbDynVO.getCreateBy());
+            name = "后台发布";
+            comPbDynVO.setCreateByName(name);
+        }
+        // Integer integer = comPbDynUserDAO.selectCount(new
+        // QueryWrapper<ComPbDynUserDO>().lambda().eq(ComPbDynUserDO::getDynId, id));
+        comPbDynVO.setReadingVolume(null == comPbDynVO.getReadingVolume() ? 0 : comPbDynVO.getReadingVolume());
+        return R.ok(comPbDynVO);
+    }
+
+    /**
+     * 分页查询党员动态
+     *
+     * @param partyBuildingComPbDynVO
+     *            查询参数
+     * @return 分页数据
+     */
+    @Override
+    public R pageYnamic(PartyBuildingComPbDynVO partyBuildingComPbDynVO) {
+        Page page = new Page<>();
+        Long pageNum = partyBuildingComPbDynVO.getPageNum();
+        Long pageSize = partyBuildingComPbDynVO.getPageSize();
+        if (null == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        Long communityId = partyBuildingComPbDynVO.getCommunityId();
+        if (null != communityId){
+            List<Long> communityIds = comPbMemberDAO.selectIds(communityId);
+            if (CollUtil.isEmpty(communityIds)) {
+                communityIds = new ArrayList<>();
+                communityIds.add(communityId);
+            }
+            partyBuildingComPbDynVO.setCommunityIds(communityIds);
+        }else {
+            //西区大屏
+            if (CollUtil.isEmpty(partyBuildingComPbDynVO.getCommunityIds()) || "wx0cef797390444b75".equals(partyBuildingComPbDynVO.getAppId())){
+                List<Long> selectDistinctCommunityId = comPbMemberDAO.selectDistinctCommunityId("西区");
+                partyBuildingComPbDynVO.setCommunityIds(selectDistinctCommunityId);
+            }
+        }
+        IPage<PartyBuildingComPbDynVO> iPage = comPbDynDAO.pageYnamic(page, partyBuildingComPbDynVO);
+        List<PartyBuildingComPbDynVO> records = iPage.getRecords();
+        if (!(ObjectUtils.isEmpty(records))) {
+            records.forEach(partyBuildingComPbDynVO1 -> {
+                String content = partyBuildingComPbDynVO1.getContent();
+                if (!ObjectUtils.isEmpty(content)) {
+                    String text = RichTextUtil.getText(content);
+                    partyBuildingComPbDynVO1.setContentText(text);
+                }
+            });
+        }
+        return R.ok(iPage);
+    }
+
+    /**
+     * 删除动态
+     *
+     * @param id
+     *            动态主键
+     * @return 删除结果
+     */
+    @Override
+    public R deleteYnamic(Long id) {
+        int delete = comPbDynDAO.deleteById(id);
+        if (delete > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 增加阅读记录
+     *
+     * @param comPbDynUserVO
+     *            阅读记录
+     * @return 增加结果
+     */
+    @Override
+    public R addDynUser(ComPbDynUserVO comPbDynUserVO) {
+        ComPbDynUserDO comPbDynUserDO = new ComPbDynUserDO();
+        BeanUtils.copyProperties(comPbDynUserVO, comPbDynUserDO);
+        int insert = comPbDynUserDAO.insert(comPbDynUserDO);
+        if (insert > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 删除党员
+     *
+     * @param id
+     *            党员主键
+     * @return 删除结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R deleteDynUser(Integer id) {
+        ComPbMemberWestDO comPbMemberWestDO = comPbMemberWestDAO.selectById(id);
+        if (ObjectUtils.isEmpty(comPbMemberWestDO)) {
+            return R.fail("党员不存在");
+        }
+        int delete = comPbMemberWestDAO.deleteById(id);
+        if (delete > 0) {
+            comPbMemberRoleDAO.delete(new LambdaQueryWrapper<ComPbMemberRoleDO>()
+                    .eq(ComPbMemberRoleDO::getIdCard, comPbMemberWestDO.getIdCard())
+                    .eq(ComPbMemberRoleDO::getCommunityId, comPbMemberWestDO.getCommunityId()));
+            // 维护用户表党员状态
+            comPbMemberWestDAO.updateUserIsPartymember(comPbMemberWestDO.getIdCard());
+            // 删除缓存
+            String userKey = UserConstants.LOGIN_USER_INFO + comPbMemberWestDO.getUserId();
+            stringRedisTemplate.delete(userKey);
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 定时任务刷新党建动态发布状态
+     *
+     * @return 刷新数据数量
+     */
+    @Override
+    public R timedTaskPartyBuildingStatus() {
+        int num = comPbDynDAO.timedTaskPartyBuildingStatus();
+        log.info("定时任务更新党建动态发布状态数量【{}】", num);
+        return R.ok(num);
+    }
+
+    @Override
+    public R pagePrePartyBuilingMember(PagePartyBuildingMemberVO pagePartyBuildingMemberVO) {
+
+        Page page = new Page<>();
+        Long pageNum = pagePartyBuildingMemberVO.getPageNum();
+        Long pageSize = pagePartyBuildingMemberVO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<PartyBuildingMemberVO> iPage = comPbMemberWestDAO.pagePartyBuildingMembersVO(page, pagePartyBuildingMemberVO);
+
+        return R.ok(iPage);
+    }
+
+    @Override
+    public R updatePartyBuildingMembers(PartyBuildingMemberVO partyBuildingMemberVO) {
+        ComPbMemberWestDO comPbMemberWestDO = comPbMemberWestDAO.selectById(partyBuildingMemberVO.getId());
+        if (comPbMemberWestDO == null) {
+            return R.fail("未找到党员认证信息");
+        }
+//        BeanUtils.copyProperties(partyBuildingMemberVO, comPbMemberDO);
+        comPbMemberWestDO.setAuditResult(partyBuildingMemberVO.getAuditResult());
+        if (partyBuildingMemberVO.getAuditResult() != null && partyBuildingMemberVO.getAuditResult().equals(3)) {
+            comPbMemberWestDO.setRefuseReason(partyBuildingMemberVO.getRefuseReason());
+        }
+        if (partyBuildingMemberVO.getAuditResult() != null && partyBuildingMemberVO.getAuditResult().equals(1)) {
+            comPbMemberWestDO.setUpdateAt(new Date());
+        }
+
+        // 编辑
+        if (partyBuildingMemberVO.getJoinTime() != null) {
+            comPbMemberWestDO.setJoinTime(partyBuildingMemberVO.getJoinTime());
+        }
+        if (partyBuildingMemberVO.getEmploymentTime() != null) {
+            comPbMemberWestDO.setEmploymentTime(partyBuildingMemberVO.getEmploymentTime());
+        }
+        if (partyBuildingMemberVO.getIdCard() != null && !partyBuildingMemberVO.getIdCard().contains("*")) {
+            comPbMemberWestDO.setIdCard(partyBuildingMemberVO.getIdCard());
+        }
+        if (partyBuildingMemberVO.getName() != null) {
+            comPbMemberWestDO.setName(partyBuildingMemberVO.getName());
+        }
+        if (partyBuildingMemberVO.getOrgId() != null) {
+            comPbMemberWestDO.setOrgId(partyBuildingMemberVO.getOrgId());
+        }
+        if (partyBuildingMemberVO.getPhotoPath() != null) {
+            comPbMemberWestDO.setPhotoPath(partyBuildingMemberVO.getPhotoPath());
+        }
+        if (nonNull(partyBuildingMemberVO.getType())) {
+            comPbMemberWestDO.setType(partyBuildingMemberVO.getType());
+        }
+        if (StringUtils.isNotEmpty(partyBuildingMemberVO.getPosition())) {
+            comPbMemberWestDO.setPosition(partyBuildingMemberVO.getPosition());
+        }
+        if (nonNull(partyBuildingMemberVO.getCheckUnitId())) {
+            comPbMemberWestDO.setCheckUnitId(partyBuildingMemberVO.getCheckUnitId());
+        }
+        if (StringUtils.isNotEmpty(partyBuildingMemberVO.getFunction())) {
+            comPbMemberWestDO.setFunction(partyBuildingMemberVO.getFunction());
+        }
+        if (nonNull(partyBuildingMemberVO.getSpecialtyCategory())) {
+            comPbMemberWestDO.setSpecialtyCategory(partyBuildingMemberVO.getSpecialtyCategory());
+            comPbMemberWestDO.setSpecialtyName(partyBuildingMemberVO.getSpecialtyName());
+        }
+
+        Integer type = partyBuildingMemberVO.getType();
+        if (nonNull(type) && type.equals(1)) {
+            comPbMemberWestDO.setEmploymentTime(null);
+        }
+
+
+        if (comPbMemberWestDAO.updateById(comPbMemberWestDO) > 0) {
+            PartyBuildingMemberVO rtVO = new PartyBuildingMemberVO();
+            BeanUtils.copyProperties(comPbMemberWestDO, rtVO);
+            return R.ok(rtVO);
+        }
+        return R.fail();
+    }
+
+    @Override
+    public R exportPbMember(PagePartyOrganizationVO organizationVO) {
+        return R.ok(comPbMemberWestDAO.exportPbMember(organizationVO));
+    }
+
+    /**
+     * 分页查询党员数据统计
+     * @param statisticsMemberDto   请求参数
+     * @return  党员数据统计
+     */
+    @Override
+    public R pageDataStatisticsMember(PageComDataStatisticsMemberDto statisticsMemberDto) {
+        IPage<ComDataStatisticsMemberVo> memberPage = comPbMemberWestDAO.pageDataStatisticsMember(new Page(statisticsMemberDto.getPageNum()
+                ,statisticsMemberDto.getPageSize()),statisticsMemberDto);
+        memberPage.getRecords().forEach(member -> {
+            if(member.getIsRole() > 0){
+                member.setIsRole(1);
+            }else{
+                member.setIsRole(2);
+            }
+            try {
+                member.setAge(IdcardUtil.getAgeByIdCard(member.getIdCard()));
+            } catch (Exception e) {
+                log.error("年龄转义失败");
+            }
+            //查询党员统计数据
+            if(member.getUserId()!=null&&member.getCommunityId()!=null){
+                ComDataStatisticsMemberVo statisticsMemberVo = comPbMemberWestDAO.getMemberStatistics(member.getUserId(),member.getCommunityId());
+                if(statisticsMemberVo != null){
+                    member.setPartyActivityCount(statisticsMemberVo.getPartyActivityCount());
+                    member.setPartyActivityDuration(statisticsMemberVo.getPartyActivityDuration());
+                    member.setVolunteerActivityCount(statisticsMemberVo.getVolunteerActivityCount());
+                    member.setVolunteerActivityDuration(statisticsMemberVo.getVolunteerActivityDuration());
+                    member.setVolunteerActivityIntegral(statisticsMemberVo.getVolunteerActivityIntegral());
+                    member.setWishCount(statisticsMemberVo.getWishCount());
+                    member.setEasyCount(statisticsMemberVo.getEasyCount());
+                    member.setActivityCount(member.getPartyActivityCount() + member.getVolunteerActivityCount());
+                    member.setActivityDuration(member.getPartyActivityDuration() + member.getVolunteerActivityDuration());
+                }
+            }
+        });
+        return R.ok(memberPage);
+    }
+
+    /**
+     * 根据组织id查询组织下统计数据
+     * @param statisticsOrgDto  请求参数
+     * @return  组织下统计数据
+     */
+    @Override
+    public R getOrgDataStatistics(ComDataStatisticsOrgDto statisticsOrgDto) {
+        List<Long> orgIds = new ArrayList<>();
+        Long communityId = statisticsOrgDto.getCommunityId();
+        ComDataStatisticsOrgVo statisticsOrgVo = new ComDataStatisticsOrgVo();
+        if(statisticsOrgDto.getOrgId() != null){
+            ComPbOrgDO pbOrgDO = comPbOrgDAO.selectById(statisticsOrgDto.getOrgId());
+            if(pbOrgDO == null){
+                return R.fail("未查询到党组织");
+            }
+            //拼接党组织id
+            if(pbOrgDO.getOneId() != null){
+                orgIds.add(pbOrgDO.getOneId());
+            }
+            if(pbOrgDO.getTwoId() != null){
+                orgIds.add(pbOrgDO.getTwoId());
+            }
+            if(pbOrgDO.getThirdId() != null){
+                orgIds.add(pbOrgDO.getThirdId());
+            }
+            if(pbOrgDO.getFourId() != null){
+                orgIds.add(pbOrgDO.getFourId());
+            }
+            if(pbOrgDO.getFiveId() != null){
+                orgIds.add(pbOrgDO.getFiveId());
+            }
+        }
+        //拼接查询开始结束时间
+        String startTime = statisticsOrgDto.getYear() + "-01-01 00:00:00";
+        String endTime = statisticsOrgDto.getYear() + "-12-31 23:59:59";
+
+        ComDataStatisticsOrgVo statisticsVo = new ComDataStatisticsOrgVo();
+        //查询统计左上数据
+        statisticsVo = comPbMemberWestDAO.getOrgDataStatistics(communityId,orgIds);
+        if(statisticsVo != null){
+            BeanUtils.copyProperties(statisticsVo,statisticsOrgVo);
+        }
+
+        //查询左下数据
+        statisticsVo = comPbMemberWestDAO.getOrgDataStatisticsLeftDown(communityId,orgIds,startTime,endTime, statisticsOrgDto.getAreaCode());
+        if(statisticsVo != null){
+            statisticsOrgVo.setParticipateVolunteerActivityDuration(statisticsVo.getParticipateVolunteerActivityDuration());
+            statisticsOrgVo.setParticipateVolunteerActivityNum(statisticsVo.getParticipateVolunteerActivityNum());
+            statisticsOrgVo.setParticipatePartyActivityNum(statisticsVo.getParticipatePartyActivityNum());
+        }
+
+        //查询党员数据
+        IPage<PartyBuildingMemberVO> partyMemberPage = comPbMemberWestDAO.getOrgDataStatisticsMember(new Page(statisticsOrgDto.getPageNum()
+                ,statisticsOrgDto.getPageSize()),communityId,orgIds, statisticsOrgDto.getAreaCode());
+        if(partyMemberPage.getRecords() != null && !partyMemberPage.getRecords().isEmpty()){
+            statisticsOrgVo.setPartyMemberList(partyMemberPage.getRecords());
+        }
+
+        List<String> startDateList = DateUtils.getYearFirstMonths(statisticsOrgDto.getYear());
+        List<String> endDateList = DateUtils.getYearLastMonths(statisticsOrgDto.getYear());
+        List<String> completeWishList = new ArrayList<>();
+        List<String> cumulativeWishList = new ArrayList<>();
+        List<String> completeEasyList = new ArrayList<>();
+        List<String> cumulativeEasyList = new ArrayList<>();
+        for (int i = 0; i < startDateList.size(); i++) {
+            Map<String,Object> statisticsMap = comPbMemberWestDAO.getOrgDataStatisticsRightDown(communityId,orgIds, startDateList.get(i) + " 00:00:00", endDateList.get(i) + " 23:59:59");
+            if(statisticsMap != null){
+                completeWishList.add(statisticsMap.get("completeWishNum").toString());
+                cumulativeWishList.add(statisticsMap.get("cumulativeWishNum").toString());
+                completeEasyList.add(statisticsMap.get("completeEasyNum").toString());
+                cumulativeEasyList.add(statisticsMap.get("cumulativeEasyNum").toString());
+                if(i == startDateList.size() - 1){
+                    statisticsOrgVo.setWishNum(statisticsMap.get("cumulativeWishNum").toString());
+                    statisticsOrgVo.setEasyNum(statisticsMap.get("cumulativeEasyNum").toString());
+                }
+            }
+        }
+        statisticsOrgVo.setCompleteEasyList(completeEasyList);
+        statisticsOrgVo.setCompleteWishList(completeWishList);
+        statisticsOrgVo.setCumulativeWishList(cumulativeWishList);
+        statisticsOrgVo.setCumulativeEasyList(cumulativeEasyList);
+        Integer partyMemberNum = statisticsOrgVo.getPartyMemberNum();
+        if (nonNull(partyMemberNum) && partyMemberNum.intValue() > 0) {
+            Integer formalPartyMemberNum = statisticsOrgVo.getFormalPartyMemberNum();
+            if (nonNull(formalPartyMemberNum) && formalPartyMemberNum.intValue() > 0) {
+                statisticsOrgVo.setFormalPartyMemberNumPercent(new BigDecimal(formalPartyMemberNum)
+                        .divide(new BigDecimal(partyMemberNum), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
+            }
+            Integer preparePartyMemberNum = statisticsOrgVo.getPreparePartyMemberNum();
+            if (nonNull(preparePartyMemberNum) && preparePartyMemberNum.intValue() > 0) {
+                statisticsOrgVo.setPreparePartyMemberNumPercent(new BigDecimal(preparePartyMemberNum)
+                        .divide(new BigDecimal(partyMemberNum), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
+            }
+            Integer tyNum = statisticsOrgVo.getTyNum();
+            if (nonNull(tyNum) && tyNum.intValue() > 0) {
+                statisticsOrgVo.setTyNumPercent(new BigDecimal(tyNum)
+                        .divide(new BigDecimal(partyMemberNum), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
+            }
+            Integer msNum = statisticsOrgVo.getMsNum();
+            if (nonNull(msNum) && msNum.intValue() > 0) {
+                statisticsOrgVo.setMsNumPercent(new BigDecimal(msNum)
+                        .divide(new BigDecimal(partyMemberNum), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
+            }
+            Integer yyNum = statisticsOrgVo.getYyNum();
+            if (nonNull(yyNum) && yyNum.intValue() > 0) {
+                statisticsOrgVo.setYyNumPercent(new BigDecimal(yyNum)
+                        .divide(new BigDecimal(partyMemberNum), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
+            }
+            Integer wdNum = statisticsOrgVo.getWdNum();
+            if (nonNull(wdNum) && wdNum.intValue() > 0) {
+                statisticsOrgVo.setWdNumPercent(new BigDecimal(wdNum)
+                        .divide(new BigDecimal(partyMemberNum), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
+            }
+            Integer qtNum = statisticsOrgVo.getQtNum();
+            if (nonNull(qtNum) && qtNum.intValue() > 0) {
+                statisticsOrgVo.setQtNumPercent(new BigDecimal(qtNum)
+                        .divide(new BigDecimal(partyMemberNum), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
+            }
+            Integer wuNum = statisticsOrgVo.getWuNum();
+            if (nonNull(wuNum) && wuNum.intValue() > 0) {
+                statisticsOrgVo.setWuNumPercent(new BigDecimal(wuNum)
+                        .divide(new BigDecimal(partyMemberNum), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
+            }
+        }
+        Integer participateActivityNum = statisticsOrgVo.getParticipateActivityNum();
+        if (nonNull(participateActivityNum) && participateActivityNum.intValue() > 0) {
+            Integer participateVolunteerActivityNum = statisticsOrgVo.getParticipateVolunteerActivityNum();
+            if (nonNull(participateVolunteerActivityNum) && participateVolunteerActivityNum.intValue() > 0) {
+                statisticsOrgVo.setParticipateVolunteerActivityNumPercent(new BigDecimal(participateVolunteerActivityNum)
+                        .divide(new BigDecimal(participateActivityNum), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
+            }
+            Integer participatePartyActivityNum = statisticsOrgVo.getParticipatePartyActivityNum();
+            if (nonNull(participatePartyActivityNum) && participatePartyActivityNum.intValue() > 0) {
+                statisticsOrgVo.setParticipatePartyActivityNumPercent(new BigDecimal(participatePartyActivityNum)
+                        .divide(new BigDecimal(participateActivityNum), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
+            }
+        }
+        Integer participateActivityDuration = statisticsOrgVo.getParticipateActivityDuration();
+        if (nonNull(participateActivityDuration) && participateActivityDuration.intValue() > 0) {
+            Integer participateVolunteerActivityDuration = statisticsOrgVo.getParticipateVolunteerActivityDuration();
+            if (nonNull(participateVolunteerActivityDuration) && participateVolunteerActivityDuration.intValue() > 0) {
+                statisticsOrgVo.setParticipateVolunteerActivityDurationPercent(new BigDecimal(participateVolunteerActivityDuration)
+                        .divide(new BigDecimal(participateActivityDuration), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
+            }
+            Integer participatePartyActivityDuration = statisticsOrgVo.getParticipatePartyActivityDuration();
+            if (nonNull(participatePartyActivityDuration) && participatePartyActivityDuration.intValue() > 0) {
+                statisticsOrgVo.setParticipatePartyActivityDurationPercent(new BigDecimal(participatePartyActivityDuration)
+                        .divide(new BigDecimal(participateActivityDuration), 2, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(0));
+            }
+        }
+        return R.ok(statisticsOrgVo);
+    }
+
+    /**
+     * 查询党组织表头统计数据
+     * @param communityId
+     *            社区id
+     * @return  党组织表头统计数据
+     */
+    @Override
+    public R getHeaderOrgDataStatistics(Long communityId) {
+        ComDataStatisticsHeaderOrgVo headerOrgVo = comPbMemberWestDAO.getHeaderOrgDataStatistics(communityId);
+        if(headerOrgVo != null){
+            if(headerOrgVo.getVillageNum() == null || headerOrgVo.getVillageNum().equals(0)){
+                headerOrgVo.setVillageRate(BigDecimal.ZERO);
+            }else{
+                headerOrgVo.setVillageRate(BigDecimal.valueOf(headerOrgVo.getAreaNum()).divide(BigDecimal.valueOf(headerOrgVo.getVillageNum())
+                        ,4,BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(100)));
+            }
+        }
+        return R.ok(headerOrgVo);
+    }
+
+    /**
+     * 党员数据统计-党员导出数据查询
+     * @param statisticsMemberDto   请求参数
+     * @return  党员导出数据
+     */
+    @Override
+    public R exportDataStatisticsMember(PageComDataStatisticsMemberDto statisticsMemberDto) {
+        List<ComDataStatisticsMemberExcelVo> memberList = comPbMemberWestDAO.exportDataStatisticsMember(statisticsMemberDto);
+        memberList.forEach(member -> {
+            //查询党员统计数据
+            ComDataStatisticsMemberVo statisticsMemberVo = comPbMemberWestDAO.getMemberStatistics(member.getUserId(),member.getCommunityId());
+            if(statisticsMemberVo != null){
+                member.setPartyActivityCount(statisticsMemberVo.getPartyActivityCount());
+                member.setPartyActivityDuration(statisticsMemberVo.getPartyActivityDuration());
+                member.setVolunteerActivityCount(statisticsMemberVo.getVolunteerActivityCount());
+                member.setVolunteerActivityDuration(statisticsMemberVo.getVolunteerActivityDuration());
+                member.setVolunteerActivityIntegral(statisticsMemberVo.getVolunteerActivityIntegral());
+                member.setWishCount(statisticsMemberVo.getWishCount());
+                member.setEasyCount(statisticsMemberVo.getEasyCount());
+                member.setActivityCount(member.getPartyActivityCount() + member.getVolunteerActivityCount());
+                member.setActivityDuration(member.getPartyActivityDuration() + member.getVolunteerActivityDuration());
+            }
+        });
+        return R.ok(memberList);
+    }
+
+    /**
+     * 党委导入接口
+     * @param list 数据列表
+     * @param communityId   社区id
+     * @param userId    用户id
+     * @return  导入结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R importPbMemberRole(List<ComPbMemberRoleExcelVo> list, Long communityId, Long userId) {
+        ComActVO actVO = comPbMemberRoleDAO.selectActById(communityId);
+        ArrayList<ComPbMemberRoleErrorExcelVo> mistakes = Lists.newArrayList();
+        ArrayList<ComPbMemberRoleDO> saveList = Lists.newArrayList();
+        Date nowDate = new Date();
+        if(list != null && list.size() > 0){
+            list.forEach(memberRole -> {
+                ComPbMemberRoleDO memberRoleDO = comPbMemberRoleDAO.selectOne(new QueryWrapper<ComPbMemberRoleDO>().lambda()
+                        .eq(ComPbMemberRoleDO::getCommunityId,communityId).eq(ComPbMemberRoleDO::getIdCard,memberRole.getIdCard()));
+                if(memberRoleDO != null){
+                    ComPbMemberRoleErrorExcelVo roleErrorExcelVo = new ComPbMemberRoleErrorExcelVo();
+                    BeanUtils.copyProperties(memberRole,roleErrorExcelVo);
+                    roleErrorExcelVo.setError("该党委已存在,不可重复导入");
+                    mistakes.add(roleErrorExcelVo);
+                }else{
+                    memberRoleDO = new ComPbMemberRoleDO();
+                    BeanUtils.copyProperties(memberRole,memberRoleDO);
+                    Integer type = ComPbMemberRoleTypeEnum.getCodeByName(memberRole.getTypeName());
+                    if(type.equals(0)){
+                        ComPbMemberRoleErrorExcelVo roleErrorExcelVo = new ComPbMemberRoleErrorExcelVo();
+                        BeanUtils.copyProperties(memberRole,roleErrorExcelVo);
+                        roleErrorExcelVo.setError("党委标签不存在,请核对后再重新导入");
+                        mistakes.add(roleErrorExcelVo);
+                        return;
+                    }else{
+                        memberRoleDO.setType(type);
+                    }
+                    try {
+                        Date joinTime = DateUtils.stringToDate(memberRole.getJoinTime(),DateUtils.yyyyMMdd_format);
+                        memberRoleDO.setJoinTime(joinTime);
+                    } catch (Exception e) {
+                        ComPbMemberRoleErrorExcelVo roleErrorExcelVo = new ComPbMemberRoleErrorExcelVo();
+                        BeanUtils.copyProperties(memberRole,roleErrorExcelVo);
+                        roleErrorExcelVo.setError("入党时间格式错误,请按照正确格式填写,如:2022-01-01");
+                        mistakes.add(roleErrorExcelVo);
+                        return;
+                    }
+
+                    try {
+                        Date employmentTime = DateUtils.stringToDate(memberRole.getEmploymentTime(),DateUtils.yyyyMMdd_format);
+                        memberRoleDO.setEmploymentTime(employmentTime);
+                    } catch (Exception e) {
+                        ComPbMemberRoleErrorExcelVo roleErrorExcelVo = new ComPbMemberRoleErrorExcelVo();
+                        BeanUtils.copyProperties(memberRole,roleErrorExcelVo);
+                        roleErrorExcelVo.setError("转正时间格式错误,请按照正确格式填写,如:2022-01-01");
+                        mistakes.add(roleErrorExcelVo);
+                        return;
+                    }
+                    Integer userCount = comPbMemberRoleDAO.getSysUserByIdCardCount(memberRole.getIdCard(), actVO.getAreaCode());
+                    memberRoleDO.setIsReg(userCount > 0 ? 1 : 2);
+                    memberRoleDO.setCommunityId(communityId);
+                    saveList.add(memberRoleDO);
+                }
+            });
+        }
+
+        if(saveList.size() > 0){
+            saveList.forEach(save -> {
+                comPbMemberRoleDAO.insert(save);
+            });
+        }
+        if(mistakes.size() > 0){
+            return R.fail(mistakes);
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R exportPartyMember(PagePartyOrganizationVO pagePartyOrganizationVO) {
+        return R.ok(comPbMemberWestDAO.exportPartyMemberList(pagePartyOrganizationVO));
+    }
+
+    @Override
+    public R checkMember(String idCard) {
+        List<ComPbMemberWestDO> list= comPbMemberWestDAO.selectList(new QueryWrapper<ComPbMemberWestDO>().lambda().eq(ComPbMemberWestDO::getIdCard,idCard));
+        return R.ok(CollectionUtils.isEmpty(list));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComPbServiceTeamServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComPbServiceTeamServiceImpl.java
new file mode 100644
index 0000000..c053335
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/ComPbServiceTeamServiceImpl.java
@@ -0,0 +1,167 @@
+package com.panzhihua.service_dangjian.service.impl;
+
+import static java.util.Objects.nonNull;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.constants.UserConstants;
+import com.panzhihua.common.model.dtos.partybuilding.ComPbServiceTeamDTO;
+import com.panzhihua.common.model.dtos.partybuilding.PageComPbServiceTeamDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.partybuilding.ComPbServiceTeamVO;
+import com.panzhihua.common.model.vos.user.SysUserVO;
+import com.panzhihua.service_dangjian.dao.ComPbMemberRoleDAO;
+import com.panzhihua.service_dangjian.dao.ComPbServiceTeamDAO;
+import com.panzhihua.service_dangjian.model.dos.ComPbServiceTeamDO;
+import com.panzhihua.service_dangjian.service.ComPbServiceTeamService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 服务团队
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-21 17:39
+ **/
+@Slf4j
+@Service
+public class ComPbServiceTeamServiceImpl implements ComPbServiceTeamService {
+    @Resource
+    private ComPbServiceTeamDAO comPbServiceTeamDAO;
+    @Resource
+    private ComPbMemberRoleDAO comPbMemberRoleDAO;
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+
+    /**
+     * 新增服务团队人员
+     *
+     * @param comPbServiceTeamDTO
+     *            新增内容
+     * @return 新增结果
+     */
+    @Override
+    public R addServiceTeam(ComPbServiceTeamDTO comPbServiceTeamDTO) {
+        ComPbServiceTeamDO comPbServiceTeamDO = new ComPbServiceTeamDO();
+        BeanUtils.copyProperties(comPbServiceTeamDTO, comPbServiceTeamDO);
+        comPbServiceTeamDO.setIsReg(2);
+        Long userId = comPbMemberRoleDAO.getSysUserIdByPhone(comPbServiceTeamDTO.getPhone(), comPbServiceTeamDTO.getAppid());
+        if (nonNull(userId)) {
+            comPbServiceTeamDO.setIsReg(1);
+        }
+        int insert = comPbServiceTeamDAO.insert(comPbServiceTeamDO);
+        if (insert > 0) {
+            if (nonNull(userId)) {
+                String userKey = UserConstants.LOGIN_USER_INFO + userId;
+                stringRedisTemplate.delete(userKey);
+            }
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 编辑团队人员
+     *
+     * @param comPbServiceTeamDTO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @Override
+    public R putServiceTeam(ComPbServiceTeamDTO comPbServiceTeamDTO) {
+        ComPbServiceTeamDO comPbServiceTeamDO = new ComPbServiceTeamDO();
+        BeanUtils.copyProperties(comPbServiceTeamDTO, comPbServiceTeamDO);
+        comPbServiceTeamDO.setIsReg(2);
+        ComPbServiceTeamDO oldComPbServiceTeam =
+            comPbServiceTeamDAO.selectComPbServiceTeamById(comPbServiceTeamDTO.getId());
+        String oldphone = oldComPbServiceTeam.getPhone();
+        SysUserVO sysUserOld = comPbMemberRoleDAO.getSysUserByPhone(oldphone, comPbServiceTeamDTO.getAppid());
+        String newphone = comPbServiceTeamDTO.getPhone();
+        SysUserVO sysUserNew = comPbMemberRoleDAO.getSysUserByPhone(newphone, comPbServiceTeamDTO.getAppid());
+        if (!ObjectUtils.isEmpty(sysUserOld) || !ObjectUtils.isEmpty(sysUserNew)) {
+            comPbServiceTeamDO.setIsReg(1);
+        }
+        if (!newphone.equals(oldphone)) {
+            comPbMemberRoleDAO.updateUserPhone(newphone, oldphone);
+        }
+        comPbServiceTeamDAO.updateById(comPbServiceTeamDO);
+        return R.ok();
+    }
+
+    /**
+     * 分页查询服务团队成员
+     *
+     * @param pageComPbServiceTeamDTO
+     *            查询参数
+     * @return 查询结果
+     */
+    @Override
+    public R PageComPbServiceTeamDTO(PageComPbServiceTeamDTO pageComPbServiceTeamDTO) {
+        Page page = new Page<>();
+        Long pageNum = pageComPbServiceTeamDTO.getPageNum();
+        Long pageSize = pageComPbServiceTeamDTO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<ComPbServiceTeamVO> iPage = comPbServiceTeamDAO.PageComPbServiceTeamDTO(page, pageComPbServiceTeamDTO);
+        if (nonNull(pageComPbServiceTeamDTO.getPropertyId())){
+            iPage = comPbServiceTeamDAO.pageServiceTeamProperty(page, pageComPbServiceTeamDTO);
+        }
+        return R.ok(iPage);
+    }
+
+    /**
+     * 删除服务团队人员
+     *
+     * @param comPbServiceTeamDTO
+     *            删除主键
+     * @return 删除结果
+     */
+    @Override
+    public R deleteServiceTeam(ComPbServiceTeamDTO comPbServiceTeamDTO) {
+        ComPbServiceTeamDO comPbServiceTeamDO =
+            comPbServiceTeamDAO.selectComPbServiceTeamById(comPbServiceTeamDTO.getId());
+        if (comPbServiceTeamDO == null) {
+            return R.fail("记录不存在");
+        }
+        int delete = comPbServiceTeamDAO.deleteById(comPbServiceTeamDTO.getId());
+        if (delete > 0) {
+
+            SysUserVO sysUserVO = comPbMemberRoleDAO.getSysUserByPhone(comPbServiceTeamDO.getPhone(), comPbServiceTeamDTO.getAppid());
+            // 删除用户信息缓存
+            if (sysUserVO != null) {
+                Long userId = sysUserVO.getUserId();
+                String userKey = UserConstants.LOGIN_USER_INFO + userId;
+                stringRedisTemplate.delete(userKey);
+                return R.ok();
+            }
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    @Override
+    public R getTotlePerson(String param, Long communityId) {
+        List<ComPbServiceTeamVO> comPbServiceTeamVOS = comPbServiceTeamDAO.getTotlePerson(param, communityId);
+        return R.ok(comPbServiceTeamVOS);
+    }
+
+    @Override
+    public R getComPbServiceTeamData(String communityId, String phone) {
+        return R.ok(comPbServiceTeamDAO.getComPbServiceTeamData(communityId,phone));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NeedProblemClaimServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NeedProblemClaimServiceImpl.java
new file mode 100644
index 0000000..7d78ae9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NeedProblemClaimServiceImpl.java
@@ -0,0 +1,272 @@
+package com.panzhihua.service_dangjian.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.partybuilding.NeedProblemClaimDTO;
+import com.panzhihua.common.model.dtos.partybuilding.NeedProblemInventoryDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComActActRegistVO;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_dangjian.dao.NeedProblemClaimDAO;
+import com.panzhihua.service_dangjian.entity.UserIntegral;
+import com.panzhihua.service_dangjian.entity.UserTrade;
+import com.panzhihua.service_dangjian.service.NeedProblemClaimService;
+import com.panzhihua.service_dangjian.service.NeedProblemInventoryService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党组织
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 11:40
+ **/
+@Service
+public class NeedProblemClaimServiceImpl extends ServiceImpl<NeedProblemClaimDAO, NeedProblemClaimDTO>
+    implements NeedProblemClaimService
+{
+    //任务 问题接口
+    @Resource
+    private NeedProblemInventoryService inventoryService;
+
+    @Override
+    public List<NeedProblemClaimDTO> getList(String taskId, String userId, String unitId)
+    {
+//        Page page = new Page<>(pageNum,pageSize);
+        return baseMapper.getList(taskId,userId,unitId);
+    }
+
+    @Override
+    public NeedProblemClaimDTO getDetails(String id,String taskId, String userId) {
+        return baseMapper.getDetails(id,taskId,userId);
+    }
+
+    @Override
+    public R addData(NeedProblemClaimDTO item)
+    {
+        //任务问题详情
+        NeedProblemInventoryDTO inventoryDTO=inventoryService.getDetails(item.getTaskId(),item.getUserId());
+        long times=System.currentTimeMillis();
+        if(times<inventoryDTO.getClaimStartTime().getTime())
+        {
+            return R.fail("报名未开始");
+        }
+
+        if(times>inventoryDTO.getClaimEndTime().getTime())
+        {
+            return R.fail("报名已结束");
+        }
+
+        if(StringUtils.equals(inventoryDTO.getJoinNum(),inventoryDTO.getClaimNum()))
+        {
+            return R.fail("认领人数已满");
+        }
+
+        int isJion= baseMapper.getJionNum(item.getTaskId(),item.getUserId());
+        if(isJion>0)
+        {
+            return R.fail("您已报名!");
+        }
+
+        int peopleAstrict=0;
+        if(!StringUtils.isEmpty(inventoryDTO.getClaimNum()))
+        {
+            peopleAstrict=Integer.valueOf(inventoryDTO.getClaimNum());
+        }
+
+        if(peopleAstrict>0)
+        {
+            //活动参与人数
+            int jionNum= baseMapper.getJionNum(item.getTaskId(),null);
+            if(peopleAstrict<=jionNum)
+            {
+                return R.fail("参与人数已满");
+            }
+        }
+
+        int num=baseMapper.addData(item);
+        if(num!=1)
+        {
+            return R.fail("报名失败");
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R editData(NeedProblemClaimDTO item)
+    {
+        int num=baseMapper.editData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R expurgateData(String id,String taskId,String userId)
+    {
+        //报名信息
+        NeedProblemClaimDTO claimDTO=baseMapper.getDetails(id,taskId,userId);
+        NeedProblemInventoryDTO inventoryDTO=inventoryService.getDetails(claimDTO.getTaskId(),claimDTO.getUserId());
+        long times=System.currentTimeMillis();
+
+        if(times>inventoryDTO.getNeedStartTime().getTime())
+        {
+            return R.fail("任务已开始!不能取消");
+        }
+
+        int num=baseMapper.expurgateData(id, taskId, userId);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public int getJionNum(String taskId,String userId)
+    {
+        return baseMapper.getJionNum(taskId,userId);
+    }
+
+    @Override
+    public int needClaimSignIn(String taskId, String userId, String type)
+    {
+        NeedProblemClaimDTO item=new NeedProblemClaimDTO();
+        item.setTaskId(taskId);
+        item.setUserId(userId);
+        if(StringUtils.equals("1",type))
+        {
+            //开始打卡
+            item.setPunchStartTime(new Date());
+        }
+        else {
+            NeedProblemClaimDTO userDto = baseMapper.getUserIdDetails(taskId, userId);
+            //结束打卡
+            Date newDate = new Date();
+            item.setPunchEndTime(newDate);
+
+            long times = newDate.getTime() - userDto.getPunchStartTime().getTime();
+            item.setServiceTime(times + "");
+
+            NeedProblemInventoryDTO dto=inventoryService.getDetails(taskId,userId);
+            UserTrade userTrade=new UserTrade();
+            //增加积分
+            UserIntegral integral = baseMapper.getUserIntegral(userId,dto.getCommunityId());
+            if (integral == null) {
+                UserIntegral addIn = new UserIntegral();
+                addIn.setId(Snowflake.getId()+"");
+                addIn.setUserId(userId);
+                addIn.setCommunityId(dto.getCommunityId());
+                addIn.setIntegralAvailableSum(dto.getAward());
+                addIn.setIntegralSum(dto.getAward());
+                userTrade.setIntegralId(addIn.getId());
+                baseMapper.addUserIntegral(addIn);
+            }
+            else
+            {
+                int award=0;
+                int integralAvailableSum=0;
+                int integralSum=0;
+
+                if(!StringUtils.isEmpty(dto.getAward()))
+                {
+                    award=Integer.valueOf(dto.getAward());
+                }
+
+                if(!StringUtils.isEmpty(integral.getIntegralAvailableSum()))
+                {
+                    integralAvailableSum=Integer.valueOf(integral.getIntegralAvailableSum())+award;
+                }
+
+                if(!StringUtils.isEmpty(integral.getIntegralSum()))
+                {
+                    integralSum=Integer.valueOf(integral.getIntegralSum())+award;
+                }
+
+                userTrade.setIntegralId(integral.getId());
+                integral.setIntegralAvailableSum(integralAvailableSum+"");
+                integral.setIntegralSum(integralSum+"");
+                baseMapper.editUserIntegral(integral);
+            }
+
+            userTrade.setServiceId(dto.getId());
+            userTrade.setId(Snowflake.getId()+"");
+            userTrade.setAmount(dto.getAward());
+            userTrade.setChangeType("1");
+            userTrade.setUserId(userId);
+            userTrade.setCommunityId(dto.getCommunityId());
+            userTrade.setCreateBy(userId);
+
+//            @ApiModelProperty("1问题清单  2需求清单")
+//            private String kind;
+            if(StringUtils.equals("2",dto.getKind()))
+            {
+                //19 完成需求任务
+                userTrade.setServiceType("19");
+                userTrade.setRemark("完成需求清单任务奖励");
+            }
+            else
+            {
+                //20完成问题任务
+                userTrade.setServiceType("20");
+                userTrade.setRemark("完成问题清单任务奖励");
+            }
+            baseMapper.addUserIntegralTrade(userTrade);
+        }
+        return baseMapper.editData(item);
+    }
+
+    @Override
+    public R upNewFightNeedProblemClaimEndTime()
+    {
+
+        //获取未签退的活动id
+        List<String> activityList=baseMapper.getNotTimeTaskList();
+        if(activityList!=null && activityList.size()>0)
+        {
+            for (String aId:activityList)
+            {
+                NeedProblemInventoryDTO comActActivityDO=baseMapper.getActivityEndTime(aId);
+
+                if(comActActivityDO!=null)
+                {
+                    if(comActActivityDO.getNeedEndTime().getTime()<new Date().getTime())
+                    {
+                        List<NeedProblemClaimDTO> timeList=baseMapper.getNotTimeId(aId);
+                        for (NeedProblemClaimDTO user:timeList)
+                        {
+                            long time=comActActivityDO.getNeedEndTime().getTime()-user.getPunchStartTime().getTime();
+                            baseMapper.updateEndTime(user.getId(),time+"",comActActivityDO.getNeedEndTime());
+                        }
+                    }
+                }
+                else
+                {
+                    List<NeedProblemClaimDTO> timeList=baseMapper.getNotTimeId(aId);
+                    for (NeedProblemClaimDTO user:timeList)
+                    {
+                        Calendar calendar = Calendar.getInstance();
+                        calendar.setTime(user.getPunchStartTime());
+                        calendar.add(Calendar.HOUR_OF_DAY, 3); // 加3小时
+                        Date newDate = calendar.getTime();
+                        long time=newDate.getTime()-user.getPunchStartTime().getTime();
+
+                        baseMapper.updateEndTime(user.getId(),time+"",newDate);
+                    }
+                }
+
+            }
+
+        }
+
+        return R.ok();
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NeedProblemInventoryServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NeedProblemInventoryServiceImpl.java
new file mode 100644
index 0000000..14dce64
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NeedProblemInventoryServiceImpl.java
@@ -0,0 +1,224 @@
+package com.panzhihua.service_dangjian.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+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.model.dtos.partybuilding.NeedProblemInventoryDTO;
+import com.panzhihua.common.model.dtos.partybuilding.UserRankDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.jinhui.JinhuiExperienceActivityVO;
+import com.panzhihua.common.model.vos.user.SysUserVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.common.utlis.WxUtil;
+import com.panzhihua.common.utlis.WxXCXTempSend;
+import com.panzhihua.service_dangjian.dao.NeedProblemInventoryDAO;
+import com.panzhihua.service_dangjian.dao.NewStriveForDAO;
+import com.panzhihua.service_dangjian.service.NeedProblemInventoryService;
+import com.panzhihua.service_dangjian.service.NewStriveForService;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党组织
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 11:40
+ **/
+@Service
+public class NeedProblemInventoryServiceImpl extends ServiceImpl<NeedProblemInventoryDAO, NeedProblemInventoryDTO>
+    implements NeedProblemInventoryService
+{
+
+    @Resource
+    private UserService userService;
+
+    @Override
+    public IPage<NeedProblemInventoryDTO> getList(int pageNum, int pageSize,String search,String classifyId,String status,
+                                                  String kind,
+                                                  String userId,
+                                                  String userIds,
+                                                  String isDisplay,
+                                                  String communityId,
+                                                  Date startTime,
+                                                  Date endTime)
+    {
+        Page page = new Page<>(pageNum,pageSize);
+        return baseMapper.getList(page, search, classifyId,status,kind,userId,userIds,isDisplay,communityId,startTime,endTime);
+    }
+
+    @Override
+    public IPage<NeedProblemInventoryDTO> getMyJoinList(int pageNum, int pageSize,String search,String status,
+                                                        String kind,
+                                                        String userIds,
+                                                        String isDisplay,
+                                                        String userId,
+                                                        Date startTime,
+                                                        Date endTime) {
+        Page page = new Page<>(pageNum,pageSize);
+        return baseMapper.getMyJoinList(page, search, status,kind,userIds,isDisplay,userId,startTime,endTime);
+    }
+
+    @Override
+    public NeedProblemInventoryDTO getDetails(String id,String userIds)
+    {
+        NeedProblemInventoryDTO item=baseMapper.getDetails(id,userIds);
+
+        if(item!=null)
+        {
+            //当前时间
+            long newTime = System.currentTimeMillis();
+            //活动报名时间
+            long applyStartTime = item.getClaimStartTime().getTime();
+            //报名结束时间
+            long applyEndTime = item.getClaimEndTime().getTime();
+            //活动开始时间
+            long activityStartTime = item.getNeedStartTime().getTime();
+            //活动结束时间
+            long activityEndTime = item.getNeedEndTime().getTime();
+
+
+            switch (item.getStatus()) {
+                //待开始
+                case "1":
+                    if (newTime > applyEndTime) {
+                        //报名结束
+                        NeedProblemInventoryDTO vo = new NeedProblemInventoryDTO();
+                        vo.setId(item.getId());
+                        vo.setStatus("2");
+                        item.setStatus("2");
+                        baseMapper.editData(vo);
+                    }
+
+                    break;
+                //报名中
+                case "2":
+                    if (newTime > activityEndTime) {
+                        NeedProblemInventoryDTO vo = new NeedProblemInventoryDTO();
+                        vo.setId(item.getId());
+                        vo.setStatus("3");
+                        item.setStatus("3");
+                        baseMapper.editData(vo);
+                    }
+                    break;
+                //已开始
+                case "3":
+
+                    break;
+            }
+
+        }
+        return item;
+    }
+
+    @Override
+    public int addData(NeedProblemInventoryDTO item)
+    {
+        item.setStatus("1");
+        int num=baseMapper.addData(item);
+        //1问题清单  2需求清单
+//        if(num>0)
+//        {
+//            List<String> openIdList=baseMapper.getOpenIdList(item.getCommunityId());
+//            if(openIdList==null || openIdList.size()<=0)
+//            {
+//                return num;
+//            }
+//            if(item.getKind().equals("1"))
+//            {
+//                WxXCXTempSend util = new WxXCXTempSend();
+//                try {
+//                    for (String str:openIdList)
+//                    {
+//                        WxUtil.sendLongTimeTemplate(str,util.getAccessToken(),"问题清单发布提醒",item.getTitle(),"/packageH/pages/problemDetail/problemDetail?type=1&id="+item.getId());
+//                    }
+//                } catch (Exception e) {
+//                    e.printStackTrace();
+//                    return num;
+//                }
+//            }
+//            else
+//            {
+//                WxXCXTempSend util = new WxXCXTempSend();
+//                try {
+//                    for (String str:openIdList)
+//                    {
+//                        WxUtil.sendLongTimeTemplate(str,util.getAccessToken(),"需求清单发布提醒",item.getTitle(),"/packageH/pages/problemDetail/problemDetail?type=2&id="+item.getId());
+//                    }
+//                } catch (Exception e) {
+//                    e.printStackTrace();
+//                    return num;
+//                }
+//            }
+//        }
+        return num;
+    }
+
+    @Override
+    public int editData(NeedProblemInventoryDTO item) {
+        return baseMapper.editData(item);
+    }
+
+    @Override
+    public int expurgateData(String id) {
+        return baseMapper.expurgateData(id);
+    }
+
+    @Override
+    public R timedNewFightNeedProblemInventoryHandler() {
+        //        定时任务
+        List<NeedProblemInventoryDTO> list = baseMapper.getTimeList();
+        int num=0;
+        int num2=0;
+
+        for (NeedProblemInventoryDTO item : list) {
+            //当前时间
+            long newTime = System.currentTimeMillis();
+            //活动报名时间
+            long applyStartTime = item.getClaimStartTime().getTime();
+            //报名结束时间
+            long applyEndTime = item.getClaimEndTime().getTime();
+            //活动开始时间
+            long activityStartTime = item.getNeedStartTime().getTime();
+            //活动结束时间
+            long activityEndTime = item.getNeedEndTime().getTime();
+
+
+            switch (item.getStatus()) {
+                //待开始
+                case "1":
+                    if (newTime > applyEndTime) {
+                        //报名结束
+                        NeedProblemInventoryDTO vo = new NeedProblemInventoryDTO();
+                        vo.setId(item.getId());
+                        vo.setStatus("2");
+                        baseMapper.editData(vo);
+                        num++;
+                    }
+
+                    break;
+                //报名中
+                case "2":
+                    if (newTime > activityEndTime) {
+                        NeedProblemInventoryDTO vo = new NeedProblemInventoryDTO();
+                        vo.setId(item.getId());
+                        vo.setStatus("3");
+                        baseMapper.editData(vo);
+                        num2++;
+                    }
+                    break;
+                //已开始
+                case "3":
+
+                    break;
+            }
+
+        }
+        return R.ok(num+" "+num2);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NeedProblemUnitTaskServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NeedProblemUnitTaskServiceImpl.java
new file mode 100644
index 0000000..452ca58
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NeedProblemUnitTaskServiceImpl.java
@@ -0,0 +1,128 @@
+package com.panzhihua.service_dangjian.service.impl;
+
+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.model.dtos.partybuilding.NeedProblemInventoryDTO;
+import com.panzhihua.common.model.dtos.partybuilding.NeedProblemUnitTaskDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_dangjian.dao.NeedProblemUnitTaskDAO;
+import com.panzhihua.service_dangjian.service.NeedProblemInventoryService;
+import com.panzhihua.service_dangjian.service.NeedProblemUnitTaskService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党组织
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 11:40
+ **/
+@Service
+public class NeedProblemUnitTaskServiceImpl extends ServiceImpl<NeedProblemUnitTaskDAO, NeedProblemUnitTaskDTO>
+    implements NeedProblemUnitTaskService
+{
+    //任务 问题接口
+    @Resource
+    private NeedProblemInventoryService inventoryService;
+
+    @Override
+    public IPage<NeedProblemUnitTaskDTO> getList(int pageNum, int pageSize, String unitId,String kind,String status)
+    {
+        Page page = new Page<>(pageNum,pageSize);
+        return baseMapper.getList(page,unitId,kind,status);
+    }
+
+    @Override
+    public NeedProblemUnitTaskDTO getDetails(String id)
+    {
+        NeedProblemUnitTaskDTO item=baseMapper.getDetails(id);
+
+        //当前时间
+        long newTime = System.currentTimeMillis();
+        //活动报名时间
+        long applyStartTime = item.getClaimStartTime().getTime();
+        //报名结束时间
+        long applyEndTime = item.getClaimEndTime().getTime();
+        //活动开始时间
+        long activityStartTime = item.getNeedStartTime().getTime();
+        //活动结束时间
+        long activityEndTime = item.getNeedEndTime().getTime();
+
+
+        switch (item.getStatus()) {
+            //状态 (1认领中
+            case "1":
+                if (newTime > applyEndTime) {
+                    //报名结束
+                    NeedProblemUnitTaskDTO vo = new NeedProblemUnitTaskDTO();
+                    vo.setId(item.getId());
+                    vo.setStatus("2");
+                    item.setStatus("2");
+                    baseMapper.editData(vo);
+                }
+
+                break;
+            // 2进行中
+            case "2":
+                if (newTime > activityEndTime) {
+                    NeedProblemUnitTaskDTO vo = new NeedProblemUnitTaskDTO();
+                    vo.setId(item.getId());
+                    vo.setStatus("3");
+                    item.setStatus("3");
+                    baseMapper.editData(vo);
+                }
+                break;
+            //3已完成)
+            case "3":
+
+                break;
+        }
+
+        return item;
+    }
+
+    @Override
+    public R addData(NeedProblemUnitTaskDTO item)
+    {
+        //任务问题详情
+        NeedProblemInventoryDTO inventoryDTO=inventoryService.getDetails(item.getTaskId(),item.getUserId());
+        long times=System.currentTimeMillis();
+        if(times<inventoryDTO.getClaimStartTime().getTime())
+        {
+            return R.fail("报名未开始");
+        }
+
+        if(StringUtils.equals(inventoryDTO.getJoinNum(),inventoryDTO.getClaimNum()))
+        {
+            return R.fail("认领人数已满");
+        }
+
+        if(times>inventoryDTO.getClaimEndTime().getTime())
+        {
+            return R.fail("报名已结束");
+        }
+        int num=baseMapper.isGet(item.getTaskId(),item.getUnitId());
+        if(num>0)
+        {
+            return R.fail("该单位已接单");
+        }
+        return R.ok(baseMapper.addData(item));
+    }
+
+    @Override
+    public int editData(NeedProblemUnitTaskDTO item) {
+        return baseMapper.editData(item);
+    }
+
+    @Override
+    public int expurgateData(String id)
+    {
+        return baseMapper.expurgateData(id);
+    }
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightCommunityConstructionServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightCommunityConstructionServiceImpl.java
new file mode 100644
index 0000000..1f2fbed
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightCommunityConstructionServiceImpl.java
@@ -0,0 +1,158 @@
+package com.panzhihua.service_dangjian.service.impl;
+
+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.model.dtos.partybuilding.NewFightCommunityConstructionDTO;
+import com.panzhihua.common.model.dtos.partybuilding.NewFightProjectPlanDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_dangjian.dao.NewFightCommunityConstructionDAO;
+import com.panzhihua.service_dangjian.dao.NewFightProjectPlanDAO;
+import com.panzhihua.service_dangjian.service.NewFightCommunityConstructionService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党组织
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 11:40
+ **/
+@Service
+public class NewFightCommunityConstructionServiceImpl extends ServiceImpl<NewFightCommunityConstructionDAO,
+        NewFightCommunityConstructionDTO> implements NewFightCommunityConstructionService
+{
+
+    @Resource
+    private NewFightProjectPlanDAO projectPlanService;
+
+    @Override
+    public IPage<NewFightCommunityConstructionDTO> getList(int pageNum, int pageSize,
+                                                           String communityId,String userId)
+    {
+        Page page = new Page<>(pageNum,pageSize);
+        return baseMapper.getList(page,communityId,userId);
+    }
+
+    @Override
+    public NewFightCommunityConstructionDTO getDetails(String id,String userId)
+    {
+        return baseMapper.getDetails(id,userId);
+    }
+
+    @Override
+    public R addData(NewFightCommunityConstructionDTO item)
+    {
+        item.setStatus("1");
+        int num=baseMapper.addData(item);
+        if(num>0)
+        {
+            if(item.getList()!=null && item.getList().size()>0 )
+            {
+                for (NewFightProjectPlanDTO dto:item.getList())
+                {
+                    dto.setProjectId(item.getId());
+                    projectPlanService.addData(dto);
+                }
+            }
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R editData(NewFightCommunityConstructionDTO item)
+    {
+        int num=baseMapper.editData(item);
+        if(num>0)
+        {
+            if(item.getList()!=null && item.getList().size()>0 )
+            {
+                for (NewFightProjectPlanDTO dto:item.getList())
+                {
+                    if(StringUtils.isEmpty(dto.getId()))
+                    {
+                        return R.fail("项目规划进度id不能为空");
+                    }
+                    projectPlanService.editData(dto);
+                }
+            }
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R expurgateData(String id)
+    {
+        int num= baseMapper.expurgateData(id);
+        if(num>0)
+        {
+            //删除相关项目规划进度
+            projectPlanService.expurgateData("",id);
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R  getListTime()
+    {
+        List<NewFightCommunityConstructionDTO> list=baseMapper.getListTime();
+        if(list==null || list.size()<=0 )
+        {
+            return R.ok();
+        }
+
+        for (NewFightCommunityConstructionDTO item:list) {
+
+            if(StringUtils.equals("1",item.getStatus()))
+            {
+                // 1 已发布
+                Date startTime = item.getStartTime();
+                if (startTime!=null)
+                {
+                    if(new Date().getTime()>startTime.getTime())
+                    {
+                        NewFightCommunityConstructionDTO dto=new NewFightCommunityConstructionDTO();
+                        dto.setId(item.getId());
+                        //进行中
+                        dto.setStatus("2");
+                        baseMapper.editData(dto);
+                    }
+                }
+            }
+
+            //预计完成时间
+            Date estimatedTime = item.getEstimatedTime();
+            if (estimatedTime!=null)
+            {
+                if(new Date().getTime()>estimatedTime.getTime())
+                {
+                    int accomplishNum=projectPlanService.getNum(item.getId(),"0");
+                    NewFightCommunityConstructionDTO dto=new NewFightCommunityConstructionDTO();
+                    dto.setId(item.getId());
+                    if(accomplishNum==0)
+                    {
+                        //已完成
+                        dto.setStatus("3");
+                    }
+                    else
+                    {
+                        //进行中
+                        dto.setStatus("2");
+                    }
+                    baseMapper.editData(dto);
+                }
+            }
+        }
+
+        return R.ok();
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightConfigServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightConfigServiceImpl.java
new file mode 100644
index 0000000..038e68f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightConfigServiceImpl.java
@@ -0,0 +1,68 @@
+package com.panzhihua.service_dangjian.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.building.NewFightConfigVO;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_dangjian.dao.NewFightConfigDao;
+import com.panzhihua.service_dangjian.entity.NewFightConfig;
+import com.panzhihua.service_dangjian.service.NewFightConfigService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+
+@Slf4j
+@Service
+public class NewFightConfigServiceImpl extends ServiceImpl<NewFightConfigDao,
+        NewFightConfig> implements NewFightConfigService
+{
+
+    @Override
+    public NewFightConfig getDetails(String id) {
+        return baseMapper.getDetails(id);
+    }
+
+
+    @Override
+    public R addData(NewFightConfigVO item)
+    {
+
+        NewFightConfig newFightConfig=baseMapper.getDetails(item.getCommunityId());
+        int num=0;
+        if(newFightConfig==null)
+        {
+            num= baseMapper.addData(item);
+        }
+        else
+        {
+            item.setId(newFightConfig.getId());
+            baseMapper.editData(item);
+        }
+
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("失败");
+    }
+
+    @Override
+    public R editData(NewFightConfigVO item) {
+        int num= baseMapper.editData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R expurgateData(String id) {
+        int num= baseMapper.expurgateData(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightConvenientMerchantServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightConvenientMerchantServiceImpl.java
new file mode 100644
index 0000000..db13a75
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightConvenientMerchantServiceImpl.java
@@ -0,0 +1,93 @@
+package com.panzhihua.service_dangjian.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.building.NewFightConvenientMerchantVO;
+import com.panzhihua.service_dangjian.dao.NewFightConvenientMerchantDao;
+import com.panzhihua.service_dangjian.entity.NewFightConvenientMerchant;
+import com.panzhihua.service_dangjian.service.NewFightConvenientMerchantService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党组织
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 11:40
+ **/
+@Service
+public class NewFightConvenientMerchantServiceImpl extends ServiceImpl<NewFightConvenientMerchantDao,
+        NewFightConvenientMerchant> implements NewFightConvenientMerchantService
+{
+
+
+    @Override
+    public R deleteMerchantById(String merchantId) {
+        int num=baseMapper.deleteMerchantById(merchantId);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R editStatus(String merchantId, String status) {
+        int num=baseMapper.editStatus(merchantId,status);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R pageMerchant(int pageNum, int pageSize, String isDel, String keyword, String status,String communityId)
+    {
+        Page page = new Page<NewFightConvenientMerchant>(pageNum,pageSize);
+        return R.ok(baseMapper.pageMerchant(page,isDel,keyword,status,communityId));
+    }
+
+    @Override
+    public NewFightConvenientMerchant selectMerchantById(String merchantId)
+    {
+        return baseMapper.selectMerchantById(merchantId);
+    }
+
+    @Override
+    public R addData(NewFightConvenientMerchantVO item) {
+        item.setIsDel("0");
+        int num=baseMapper.addData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R editData(NewFightConvenientMerchantVO item) {
+        int num=baseMapper.editData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R selectUserList(String communityId, String phoneOrname) {
+        return R.ok(baseMapper.selectUserList(communityId,phoneOrname));
+    }
+
+    @Override
+    public R selectUserListB(String communityId, String phoneOrname) {
+        return R.ok(baseMapper.selectUserListB(communityId,phoneOrname));
+    }
+
+    @Override
+    public R selectUserBind(String communityId, String userId) {
+        return R.ok(baseMapper.selectUserBind(communityId,userId));
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightIntegratingTaskServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightIntegratingTaskServiceImpl.java
new file mode 100644
index 0000000..fdb6af1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightIntegratingTaskServiceImpl.java
@@ -0,0 +1,149 @@
+package com.panzhihua.service_dangjian.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.partybuilding.NewFightIntegral;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.building.IntegratingTaskVO;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_dangjian.dao.NewFightIntegratingTaskDao;
+import com.panzhihua.service_dangjian.entity.IntegratingTask;
+import com.panzhihua.service_dangjian.service.ComActIntegralUsersService;
+import com.panzhihua.service_dangjian.service.NewFightIntegratingTaskService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党组织
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 11:40
+ **/
+@Service
+public class NewFightIntegratingTaskServiceImpl extends ServiceImpl<NewFightIntegratingTaskDao,
+        IntegratingTask> implements NewFightIntegratingTaskService
+{
+
+
+    @Resource
+    private ComActIntegralUsersService usersService;
+
+
+    @Override
+    public List<IntegratingTask> getList(String userId, String communityId)
+    {
+        return baseMapper.getList(userId,communityId);
+    }
+
+    @Override
+    public IntegratingTask getDetails(String userId, String communityId, String status) {
+        return baseMapper.getDetails(userId,communityId,status);
+    }
+
+
+    @Override
+    public R addData(IntegratingTaskVO item)
+    {
+
+        switch (item.getStatus())
+        {
+            case "11":
+                //花城登录
+            case "12":
+                // 查看问题清单
+            case "13":
+                //13查看需求清单
+            case "14":
+                //查看报道服务活动
+            case "15":
+                //15查看微心愿
+            case "16":
+                //查看随手拍
+                IntegratingTask task=baseMapper.getDetails(item.getUserId(),item.getCommunityId(),item.getStatus());
+                if(task!=null)
+                {
+                    return R.ok();
+                }
+                break;
+            case "17":
+                //每日签到
+                IntegratingTask task2=baseMapper.getDetails(item.getUserId(),item.getCommunityId(),item.getStatus());
+                if(task2!=null)
+                {
+                    return R.ok();
+                }
+                item.setIsDraw("2");
+                break;
+        }
+
+        int num=baseMapper.addData(item);
+        if(num>0)
+        {
+            if(StringUtils.equals("17",item.getStatus()))
+            {
+                NewFightIntegral integral=new NewFightIntegral();
+                integral.setUserId(item.getUserId());
+                integral.setCommunityId(item.getCommunityId());
+                integral.setType("17");
+                integral.setIntegralNum(item.getNum());
+                usersService.upIntegral(integral);
+
+                //新增每日用户签到记录
+                baseMapper.addEverydayData(item);
+            }
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R editData(IntegratingTaskVO item) {
+        int num=baseMapper.editData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+
+    @Override
+    public R expurgateData(String id)
+    {
+        int num= baseMapper.expurgateData(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R truncateData() {
+        int num= baseMapper.truncateData();
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public List<IntegratingTask> getEverydayList(String userId, String communityId) {
+        return baseMapper.getEverydayList(userId,communityId);
+    }
+
+    @Override
+    public R addEverydayData(IntegratingTaskVO item)
+    {
+        int num= baseMapper.addEverydayData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightProjectEvaluateServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightProjectEvaluateServiceImpl.java
new file mode 100644
index 0000000..a2aaa47
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightProjectEvaluateServiceImpl.java
@@ -0,0 +1,74 @@
+package com.panzhihua.service_dangjian.service.impl;
+
+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.model.dtos.partybuilding.NewFightProjectEvaluateDTO;
+import com.panzhihua.common.model.dtos.partybuilding.NewFightProjectJoinDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_dangjian.dao.NewFightProjectEvaluateDAO;
+import com.panzhihua.service_dangjian.dao.NewFightProjectJoinDAO;
+import com.panzhihua.service_dangjian.service.NewFightProjectEvaluateService;
+import com.panzhihua.service_dangjian.service.NewFightProjectJoinService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党组织
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 11:40
+ **/
+@Service
+public class NewFightProjectEvaluateServiceImpl extends ServiceImpl<NewFightProjectEvaluateDAO,
+        NewFightProjectEvaluateDTO> implements NewFightProjectEvaluateService
+{
+
+
+    @Override
+    public IPage<NewFightProjectEvaluateDTO> getList(int pageNum, int pageSize,String projectId)
+    {
+        Page page = new Page<>(pageNum,pageSize);
+        return baseMapper.getList(page,projectId);
+    }
+
+    @Override
+    public NewFightProjectEvaluateDTO getDetails(String id)
+    {
+        return baseMapper.getDetails(id);
+    }
+
+    @Override
+    public R addData(NewFightProjectEvaluateDTO item)
+    {
+        int num=baseMapper.addData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R editData(NewFightProjectEvaluateDTO item)
+    {
+        int num=baseMapper.editData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R expurgateData(String id,String projectId)
+    {
+        int num= baseMapper.expurgateData(id,projectId);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightProjectJoinServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightProjectJoinServiceImpl.java
new file mode 100644
index 0000000..8341dfa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightProjectJoinServiceImpl.java
@@ -0,0 +1,71 @@
+package com.panzhihua.service_dangjian.service.impl;
+
+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.model.dtos.partybuilding.NewFightProjectJoinDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_dangjian.dao.NewFightProjectJoinDAO;
+import com.panzhihua.service_dangjian.service.NewFightProjectJoinService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党组织
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 11:40
+ **/
+@Service
+public class NewFightProjectJoinServiceImpl extends ServiceImpl<NewFightProjectJoinDAO,
+        NewFightProjectJoinDTO> implements NewFightProjectJoinService
+{
+
+
+    @Override
+    public IPage<NewFightProjectJoinDTO> getList(int pageNum, int pageSize,String projectId)
+    {
+        Page page = new Page<>(pageNum,pageSize);
+        return baseMapper.getList(page,projectId);
+    }
+
+    @Override
+    public NewFightProjectJoinDTO getDetails(String id)
+    {
+        return baseMapper.getDetails(id);
+    }
+
+    @Override
+    public R addData(NewFightProjectJoinDTO item)
+    {
+        int num=baseMapper.addData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R editData(NewFightProjectJoinDTO item)
+    {
+        int num=baseMapper.editData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R expurgateData(String id,String projectId,String userId)
+    {
+        int num= baseMapper.expurgateData(id,projectId,userId);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightProjectPlanServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightProjectPlanServiceImpl.java
new file mode 100644
index 0000000..21de7b3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightProjectPlanServiceImpl.java
@@ -0,0 +1,114 @@
+package com.panzhihua.service_dangjian.service.impl;
+
+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.model.dtos.partybuilding.NewFightCommunityConstructionDTO;
+import com.panzhihua.common.model.dtos.partybuilding.NewFightProjectPlanDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_dangjian.dao.NewFightCommunityConstructionDAO;
+import com.panzhihua.service_dangjian.dao.NewFightProjectPlanDAO;
+import com.panzhihua.service_dangjian.service.NewFightCommunityConstructionService;
+import com.panzhihua.service_dangjian.service.NewFightProjectPlanService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党组织
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 11:40
+ **/
+@Service
+public class NewFightProjectPlanServiceImpl extends ServiceImpl<NewFightProjectPlanDAO,
+        NewFightProjectPlanDTO> implements NewFightProjectPlanService
+{
+    @Resource
+    private NewFightCommunityConstructionService constructionService;
+
+
+    @Override
+    public IPage<NewFightProjectPlanDTO> getList(int pageNum, int pageSize,String projectId)
+    {
+        Page page = new Page<>(pageNum,pageSize);
+        return baseMapper.getList(page,projectId);
+    }
+
+    @Override
+    public NewFightProjectPlanDTO getDetails(String id)
+    {
+        return baseMapper.getDetails(id);
+    }
+
+    @Override
+    public R editProjectPlanAccomplish(String id)
+    {
+
+        NewFightProjectPlanDTO planDTO=baseMapper.getDetails(id);
+        int pNum=baseMapper.getNum(planDTO.getProjectId(),null);
+
+        NewFightProjectPlanDTO item =new NewFightProjectPlanDTO();
+        item.setId(id);
+        item.setAffirmTime(new Date());
+        item.setAccomplish("1");
+        int num=baseMapper.editData(item);
+
+
+        if(num>0)
+        {
+            int accomplishNum=baseMapper.getNum(planDTO.getProjectId(),"1");
+            NewFightCommunityConstructionDTO dto=new NewFightCommunityConstructionDTO();
+            dto.setId(planDTO.getProjectId());
+            if(pNum==accomplishNum)
+            {
+                //已完成
+                dto.setStatus("3");
+            }
+            else
+            {
+                //进行中
+                dto.setStatus("2");
+            }
+            constructionService.editData(dto);
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R addData(NewFightProjectPlanDTO item)
+    {
+        int num=baseMapper.addData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R editData(NewFightProjectPlanDTO item)
+    {
+        int num=baseMapper.editData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R expurgateData(String id,String projectId)
+    {
+        int num= baseMapper.expurgateData(id,projectId);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightResourceSharingServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightResourceSharingServiceImpl.java
new file mode 100644
index 0000000..d3d7883
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightResourceSharingServiceImpl.java
@@ -0,0 +1,71 @@
+package com.panzhihua.service_dangjian.service.impl;
+
+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.model.dtos.partybuilding.NewFightResourceSharingDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_dangjian.dao.NewFightResourceSharingDAO;
+import com.panzhihua.service_dangjian.service.NewFightResourceSharingService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党组织
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 11:40
+ **/
+@Service
+public class NewFightResourceSharingServiceImpl extends ServiceImpl<NewFightResourceSharingDAO,
+        NewFightResourceSharingDTO> implements NewFightResourceSharingService
+{
+
+
+    @Override
+    public IPage<NewFightResourceSharingDTO> getList(int pageNum, int pageSize, String communityId, String unitId,String meritId)
+    {
+        Page page = new Page<>(pageNum,pageSize);
+        return baseMapper.getList(page,communityId,unitId,meritId);
+    }
+
+    @Override
+    public NewFightResourceSharingDTO getDetails(String id)
+    {
+        return baseMapper.getDetails(id);
+    }
+
+    @Override
+    public R addData(NewFightResourceSharingDTO item)
+    {
+        int num=baseMapper.addData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R editData(NewFightResourceSharingDTO item)
+    {
+        int num=baseMapper.editData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+    @Override
+    public R expurgateData(String id)
+    {
+        int num= baseMapper.expurgateData(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("操作失败");
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightShoppingOrderServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightShoppingOrderServiceImpl.java
new file mode 100644
index 0000000..7525bc5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightShoppingOrderServiceImpl.java
@@ -0,0 +1,236 @@
+package com.panzhihua.service_dangjian.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.partybuilding.NewFightIntegral;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.building.NewFightShoppingOrderVO;
+import com.panzhihua.common.model.vos.user.SysUserNoticeVO;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.Snowflake;
+import com.panzhihua.service_dangjian.dao.NewFightShoppingOrderDao;
+import com.panzhihua.service_dangjian.entity.ComActIntegralUser;
+import com.panzhihua.service_dangjian.entity.NewFightShopping;
+import com.panzhihua.service_dangjian.entity.NewFightShoppingOrder;
+import com.panzhihua.service_dangjian.service.*;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+
+
+@Slf4j
+@Service
+public class NewFightShoppingOrderServiceImpl extends ServiceImpl<NewFightShoppingOrderDao,
+        NewFightShoppingOrder> implements NewFightShoppingOrderService
+{
+
+    @Resource
+    private NewFightShoppingService shoppingService;
+
+    @Resource
+    private ComActIntegralUsersService integralUsersService;
+
+    @Resource
+    private UserService userService;
+
+    @Override
+    public R getList(int pageNum,int pageSize,String userId,String goodsId,String orderNumber,
+                     String goodName,String name,String cancelType,String communityId,String merchantId,String orderType)
+    {
+        Page page = new Page<NewFightShopping>(pageNum,pageSize);
+        return R.ok(baseMapper.getList(page,userId,goodsId,orderNumber,goodName,name,cancelType,
+                communityId, merchantId,orderType));
+    }
+
+    @Override
+    public NewFightShoppingOrder getDetails(String id,String communityId) {
+        return baseMapper.getDetails(id,communityId);
+    }
+
+
+    @Override
+    public R addData(NewFightShoppingOrderVO item)
+    {
+        item.setOrderNumber(Snowflake.getId()+"");
+
+
+        // 查询用户积分账户
+        ComActIntegralUser integralUserDO =
+                integralUsersService.getOne(new QueryWrapper<ComActIntegralUser>().lambda()
+                        .eq(ComActIntegralUser::getUserId, item.getUserId())
+                        .eq(ComActIntegralUser::getCommunityId, item.getCommunityId()));
+
+        int allMoney=0;
+        int getMoney=0;
+
+        if(integralUserDO==null)
+        {
+            return R.fail("积分不足!");
+        }
+        allMoney=integralUserDO.getIntegralAvailableSum();
+
+
+        //判断是线上下单  还是商家线下下单  1线上   2线下
+        if(StringUtils.equals("2",item.getOrderType()))
+        {
+            getMoney=Integer.valueOf(item.getPalyMoney());
+        }
+        else
+        {
+            NewFightShopping goods=shoppingService.getDetails(item.getGoodsId());
+            getMoney=Integer.valueOf(goods.getGoodPrice());
+        }
+
+
+        if(getMoney>allMoney)
+        {
+            return R.fail("积分不足!");
+        }
+
+        item.setCancelType("0");
+        item.setPalyMoney(getMoney+"");
+        int num= baseMapper.addData(item);
+        if(num>0)
+        {
+            //修改个人积分总额
+            allMoney=allMoney-getMoney;
+            NewFightIntegral integral=new NewFightIntegral();
+            integral.setIntegralNum(allMoney+"");
+            integral.setAddOrReduce(2);
+            integral.setCommunityId(item.getCommunityId());
+            integral.setUserId(item.getUserId());
+            if(StringUtils.equals("1",item.getOrderType()))
+            {
+
+                integral.setType("9");
+                integral.setIdentityType("1");
+                integral.setRemark("积分兑换商品");
+            }
+            else
+            {
+
+                integral.setType("10");
+                integral.setIdentityType("1");
+                integral.setRemark("商家兑换商品");
+                integral.setMerchantId(item.getMerchantId());
+                integral.setIntegralNum(item.getPalyMoney());
+
+
+
+                SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO();
+                sysUserNoticeVO.setUserId(Long.valueOf(item.getUserId()));
+                sysUserNoticeVO.setType(4);
+                sysUserNoticeVO.setTitle("商家兑换成功");
+                sysUserNoticeVO.setBusinessType(14);
+                sysUserNoticeVO.setBusinessTitle(item.getRemark());
+                sysUserNoticeVO
+                        .setBusinessContent(String.format("兑换商品%s", item.getRemark()));
+                sysUserNoticeVO.setStatus(0);
+                sysUserNoticeVO.setBusinessStatus(1);
+                sysUserNoticeVO.setBusinessId(Long.valueOf(item.getId()));
+                sysUserNoticeVO.setActivityType(4);
+                R r2 = userService.addNotice(sysUserNoticeVO);
+                if (R.isOk(r2)) {
+                    log.info("新增兑换商品通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+                }
+            }
+            integralUsersService.upIntegral(integral);
+
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R editData(NewFightShoppingOrderVO item) {
+        int num= baseMapper.editData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("失败");
+    }
+
+    @Override
+    public R cancelOrder(String orderId,String communityId)
+    {
+        NewFightShoppingOrder order=baseMapper.getDetails(orderId,communityId);
+
+        if(!StringUtils.equals("0",order.getCancelType()))
+        {
+            return R.fail("订单不是待核销状态");
+        }
+
+        NewFightShoppingOrderVO orderVO=new NewFightShoppingOrderVO();
+        orderVO.setId(orderId);
+        orderVO.setCancelType("2");
+        orderVO.setAbolishTime(new Date());
+        int num=baseMapper.editData(orderVO);
+        if(num>0)
+        {
+            // 查询用户积分账户
+            ComActIntegralUser integralUserDO =
+                    integralUsersService.getOne(new QueryWrapper<ComActIntegralUser>().lambda()
+                            .eq(ComActIntegralUser::getUserId, order.getUserId())
+                            .eq(ComActIntegralUser::getCommunityId, order.getCommunityId()));
+
+            int allMoney=0;
+            int getMoney=Integer.valueOf(order.getPalyMoney());
+
+            allMoney=integralUserDO.getIntegralAvailableSum();
+
+            //修改个人金汇币总额
+            allMoney=allMoney+getMoney;
+
+            NewFightIntegral integral=new NewFightIntegral();
+
+            integral.setIntegralNum(allMoney+"");
+            integral.setAddOrReduce(1);
+            integral.setCommunityId(order.getCommunityId());
+            integral.setUserId(order.getUserId());
+
+            if(StringUtils.equals("1",order.getOrderType()))
+            {
+                integral.setType("9");
+                integral.setIdentityType("1");
+                integral.setRemark("积分兑换商品取消");
+            }
+            else
+            {
+                integral.setType("10");
+                integral.setIdentityType("1");
+                integral.setRemark("商家兑换商品取消");
+                integral.setMerchantId(order.getMerchantId());
+                integral.setIntegralNum(order.getPalyMoney());
+            }
+            integralUsersService.upIntegral(integral);
+
+            return R.ok();
+        }
+        return R.fail("取消失败");
+    }
+
+    @Override
+    public R expurgateData(String id,String communityId)
+    {
+        NewFightShoppingOrder order=baseMapper.getDetails(id,communityId);
+
+        if(StringUtils.equals("0",order.getCancelType()))
+        {
+            return R.fail("待核销订单不能删除");
+        }
+
+        int num= baseMapper.expurgateData(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightShoppingServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightShoppingServiceImpl.java
new file mode 100644
index 0000000..b1bf06c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewFightShoppingServiceImpl.java
@@ -0,0 +1,63 @@
+package com.panzhihua.service_dangjian.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.building.NewFightShoppingVO;
+import com.panzhihua.service_dangjian.dao.NewFightShoppingDao;
+import com.panzhihua.service_dangjian.entity.NewFightShopping;
+import com.panzhihua.service_dangjian.service.NewFightShoppingService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+
+@Slf4j
+@Service
+public class NewFightShoppingServiceImpl extends ServiceImpl<NewFightShoppingDao,
+        NewFightShopping> implements NewFightShoppingService
+{
+
+    @Override
+    public R getList(int pageNum,int pageSize,String goodName, String goodType, String id,String communityId)
+    {
+        Page page = new Page<NewFightShopping>(pageNum,pageSize);
+        return R.ok(baseMapper.getList(page,goodName,goodType,id,communityId));
+    }
+
+    @Override
+    public NewFightShopping getDetails(String id) {
+        return baseMapper.getDetails(id);
+    }
+
+
+    @Override
+    public R addData(NewFightShoppingVO item)
+    {
+        int num= baseMapper.addData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R editData(NewFightShoppingVO item) {
+        int num= baseMapper.editData(item);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+
+    @Override
+    public R expurgateData(String id) {
+        int num= baseMapper.expurgateData(id);
+        if(num>0)
+        {
+            return R.ok();
+        }
+        return R.fail("添加失败");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewStriveForServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewStriveForServiceImpl.java
new file mode 100644
index 0000000..3468248
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/NewStriveForServiceImpl.java
@@ -0,0 +1,60 @@
+package com.panzhihua.service_dangjian.service.impl;
+
+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.model.dtos.partybuilding.UserRankDTO;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_dangjian.dao.NewStriveForDAO;
+import com.panzhihua.service_dangjian.service.NewStriveForService;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党组织
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 11:40
+ **/
+@Service
+public class NewStriveForServiceImpl extends ServiceImpl<NewStriveForDAO,UserRankDTO >
+    implements NewStriveForService
+{
+
+    @Override
+    public UserRankDTO getUserRank(String userId) {
+        return baseMapper.getUserRank(userId);
+    }
+
+    @Override
+    public IPage<UserRankDTO> getUserRankList(int pageNum,int pageSize, String userId)
+    {
+        Page page = new Page<>(pageNum,pageSize);
+        return baseMapper.getUserRankList(page,userId);
+    }
+
+    @Override
+    public String getAllintegral(String type,String userId)
+    {
+//        if(StringUtils.equals("1",type))
+//        {
+            List<String> userIds=new ArrayList<>();
+            userIds.add(userId);
+            return baseMapper.getAllintegral(userIds);
+//        }
+//        else
+//        {
+//            List<String> userIds=baseMapper.getPartyMember(userId);
+//            return baseMapper.getAllintegral(userIds);
+//        }
+    }
+
+    @Override
+    public List<String> getPartyMember(String userId) {
+        return baseMapper.getPartyMember(userId);
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/PartyOrganizationServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/PartyOrganizationServiceImpl.java
new file mode 100644
index 0000000..01c4fa1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/PartyOrganizationServiceImpl.java
@@ -0,0 +1,345 @@
+package com.panzhihua.service_dangjian.service.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import javax.annotation.Resource;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.ObjectUtils;
+import org.springframework.util.StringUtils;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.partybuilding.ComListPartyDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.partybuilding.west.PartyOrganizationVO;
+import com.panzhihua.service_dangjian.dao.ComPbMemberDAO;
+import com.panzhihua.service_dangjian.dao.ComPbOrgDAO;
+import com.panzhihua.service_dangjian.model.dos.ComPbMemberDO;
+import com.panzhihua.service_dangjian.model.dos.ComPbOrgDO;
+import com.panzhihua.service_dangjian.service.PartyOrganizationService;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党组织
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 11:40
+ **/
+@Service
+public class PartyOrganizationServiceImpl implements PartyOrganizationService {
+    @Resource
+    private ComPbOrgDAO comPbOrgDAO;
+    @Resource
+    private ComPbMemberDAO comPbMemberDAO;
+
+    /**
+     * 社区所有启用的党组织列表
+     *
+     * @return 党组织集合
+     */
+    @Override
+    public List<PartyOrganizationVO> listPartyOrganization(Long communityId) {
+        List<PartyOrganizationVO> partyOrganizationVOS = new ArrayList<>();
+        List<ComPbOrgDO> comPbOrgDOS = comPbOrgDAO.selectList(new QueryWrapper<ComPbOrgDO>().lambda()
+            .eq(ComPbOrgDO::getCommunityId, communityId).eq(ComPbOrgDO::getStatus, 1));
+        if (!ObjectUtils.isEmpty(comPbOrgDOS)) {
+            comPbOrgDOS.forEach(comPbOrgDO -> {
+                PartyOrganizationVO partyOrganizationVO = new PartyOrganizationVO();
+                BeanUtils.copyProperties(comPbOrgDO,partyOrganizationVO);
+                partyOrganizationVOS.add(partyOrganizationVO);
+            });
+        }
+        return partyOrganizationVOS;
+    }
+
+    /**
+     * 社区所有党组织列表
+     *
+     * @return 党组织集合
+     */
+    @Override
+    public R listPartyOrganizationAll(PartyOrganizationVO partyOrganizationVO) {
+        IPage<PartyOrganizationVO> orgPage = this.comPbOrgDAO.listPartyOrganizationAll(
+            new Page(partyOrganizationVO.getPageNum(), partyOrganizationVO.getPageSize()), partyOrganizationVO);
+        if (!ObjectUtils.isEmpty(orgPage.getRecords()) && StringUtils.isEmpty(partyOrganizationVO.getKeyWord())) {
+            //遍历第一级党组织列表
+            orgPage.getRecords().forEach(org -> {
+                partyOrganizationVO.setParentId(org.getId());
+                List<PartyOrganizationVO> twoChildList = comPbOrgDAO.getChildOrgList(partyOrganizationVO);
+                if(!ObjectUtils.isEmpty(twoChildList)){
+                    //遍历第二级党组织列表
+                    twoChildList.forEach(twoChild -> {
+                        partyOrganizationVO.setParentId(twoChild.getId());
+                        List<PartyOrganizationVO> thirdChildList = comPbOrgDAO.getChildOrgList(partyOrganizationVO);
+                        if(!ObjectUtils.isEmpty(thirdChildList)){
+                            //遍历第三级党组织列表
+                            thirdChildList.forEach(thirdChild -> {
+                                partyOrganizationVO.setParentId(thirdChild.getId());
+                                List<PartyOrganizationVO> fourChildList = comPbOrgDAO.getChildOrgList(partyOrganizationVO);
+                                if(!ObjectUtils.isEmpty(fourChildList)){
+                                    fourChildList.forEach(fourChild -> {
+                                        partyOrganizationVO.setParentId(fourChild.getId());
+                                        List<PartyOrganizationVO> fiveChildList = comPbOrgDAO.getChildOrgList(partyOrganizationVO);
+                                        fourChild.setCountPerson(fourChild.getCountPerson() + fiveChildList.stream().mapToInt(five -> five.getCountPerson()).sum());
+                                        fourChild.setChildList(fiveChildList);
+                                    });
+                                }
+                                thirdChild.setCountPerson(thirdChild.getCountPerson() + fourChildList.stream().mapToInt(four -> four.getCountPerson()).sum());
+                                thirdChild.setChildList(fourChildList);
+                            });
+                        }
+                        twoChild.setCountPerson(twoChild.getCountPerson() + thirdChildList.stream().mapToInt(third -> third.getCountPerson()).sum());
+                        twoChild.setChildList(thirdChildList);
+                    });
+                }
+                org.setCountPerson(org.getCountPerson() + twoChildList.stream().mapToInt(two -> two.getCountPerson()).sum());
+                org.setChildList(twoChildList);
+            });
+        }
+        return R.ok(orgPage);
+    }
+
+    /**
+     * 新增党支部
+     *
+     * @param partyOrganizationVO
+     *            党支部基本信息
+     * @return 新增结果
+     */
+    @Override
+    public R addPartyOrganization(PartyOrganizationVO partyOrganizationVO) {
+        ComPbOrgDO comPbOrgDO = new ComPbOrgDO();
+        BeanUtils.copyProperties(partyOrganizationVO, comPbOrgDO);
+        comPbOrgDO.setLevel(partyOrganizationVO.getType());
+        if(partyOrganizationVO.getType().equals(ComPbOrgDO.Type.JCDW)){
+            comPbOrgDO.setParentId(0L);
+        }
+        ComPbOrgDO oldComPbOrgDO = null;
+        int insert = comPbOrgDAO.insert(comPbOrgDO);
+        if (insert > 0) {
+            switch (partyOrganizationVO.getType()){
+                case ComPbOrgDO.Type.JCDW:
+                    comPbOrgDO.setParentId(0L);
+                    comPbOrgDO.setOneId(comPbOrgDO.getId());
+                    break;
+                case ComPbOrgDO.Type.EJJCDW:
+                    comPbOrgDO.setOneId(partyOrganizationVO.getParentId());
+                    comPbOrgDO.setTwoId(comPbOrgDO.getId());
+                    break;
+                case ComPbOrgDO.Type.DZZ:
+                    oldComPbOrgDO = this.comPbOrgDAO.selectById(partyOrganizationVO.getParentId());
+                    if(oldComPbOrgDO != null){
+                        comPbOrgDO.setOneId(oldComPbOrgDO.getOneId());
+                        comPbOrgDO.setTwoId(oldComPbOrgDO.getTwoId());
+                    }
+                    comPbOrgDO.setThirdId(comPbOrgDO.getId());
+                    break;
+                case ComPbOrgDO.Type.DZB:
+                    oldComPbOrgDO = this.comPbOrgDAO.selectById(partyOrganizationVO.getParentId());
+                    if(oldComPbOrgDO != null){
+                        comPbOrgDO.setOneId(oldComPbOrgDO.getOneId());
+                        comPbOrgDO.setTwoId(oldComPbOrgDO.getTwoId());
+                        comPbOrgDO.setThirdId(oldComPbOrgDO.getThirdId());
+                    }
+                    comPbOrgDO.setFourId(comPbOrgDO.getId());
+                    break;
+                case ComPbOrgDO.Type.DXZ:
+                    oldComPbOrgDO = this.comPbOrgDAO.selectById(partyOrganizationVO.getParentId());
+                    if(oldComPbOrgDO != null){
+                        comPbOrgDO.setOneId(oldComPbOrgDO.getOneId());
+                        comPbOrgDO.setTwoId(oldComPbOrgDO.getTwoId());
+                        comPbOrgDO.setThirdId(oldComPbOrgDO.getThirdId());
+                        comPbOrgDO.setFourId(oldComPbOrgDO.getFourId());
+                    }
+                    comPbOrgDO.setFiveId(comPbOrgDO.getId());
+                    break;
+                default:
+                    break;
+            }
+            this.comPbOrgDAO.updateById(comPbOrgDO);
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 编辑党支部
+     *
+     * @param partyOrganizationVO
+     *            党支部基本信息
+     * @return 编辑结果
+     */
+    @Override
+    public R updatePartyOrganization(PartyOrganizationVO partyOrganizationVO) {
+        ComPbOrgDO comPbOrgDO = new ComPbOrgDO();
+        BeanUtils.copyProperties(partyOrganizationVO, comPbOrgDO);
+        comPbOrgDO.setLevel(partyOrganizationVO.getType());
+        ComPbOrgDO oldComPbOrgDO = null;
+        int insert = comPbOrgDAO.updateById(comPbOrgDO);
+        if (insert > 0) {
+            switch (partyOrganizationVO.getType()){
+                case ComPbOrgDO.Type.JCDW:
+                    comPbOrgDO.setParentId(0L);
+                    comPbOrgDO.setOneId(comPbOrgDO.getId());
+                    break;
+                case ComPbOrgDO.Type.EJJCDW:
+                    comPbOrgDO.setOneId(partyOrganizationVO.getParentId());
+                    comPbOrgDO.setTwoId(comPbOrgDO.getId());
+                    break;
+                case ComPbOrgDO.Type.DZZ:
+                    oldComPbOrgDO = this.comPbOrgDAO.selectById(partyOrganizationVO.getParentId());
+                    if(oldComPbOrgDO != null){
+                        comPbOrgDO.setOneId(oldComPbOrgDO.getOneId());
+                        comPbOrgDO.setTwoId(oldComPbOrgDO.getTwoId());
+                    }
+                    comPbOrgDO.setThirdId(comPbOrgDO.getId());
+                    break;
+                case ComPbOrgDO.Type.DZB:
+                    oldComPbOrgDO = this.comPbOrgDAO.selectById(partyOrganizationVO.getParentId());
+                    if(oldComPbOrgDO != null){
+                        comPbOrgDO.setOneId(oldComPbOrgDO.getOneId());
+                        comPbOrgDO.setTwoId(oldComPbOrgDO.getTwoId());
+                        comPbOrgDO.setThirdId(oldComPbOrgDO.getThirdId());
+                    }
+                    comPbOrgDO.setFourId(comPbOrgDO.getId());
+                    break;
+                case ComPbOrgDO.Type.DXZ:
+                    oldComPbOrgDO = this.comPbOrgDAO.selectById(partyOrganizationVO.getParentId());
+                    if(oldComPbOrgDO != null){
+                        comPbOrgDO.setOneId(oldComPbOrgDO.getOneId());
+                        comPbOrgDO.setTwoId(oldComPbOrgDO.getTwoId());
+                        comPbOrgDO.setThirdId(oldComPbOrgDO.getThirdId());
+                        comPbOrgDO.setFourId(oldComPbOrgDO.getFourId());
+                    }
+                    comPbOrgDO.setFiveId(comPbOrgDO.getId());
+                    break;
+                default:
+                    break;
+            }
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 启用,禁用党支部
+     *
+     * @param partyOrganizationVO
+     *            党支部基本信息
+     * @return 编辑结果
+     */
+    @Override
+    public R resetPartyOrganization(PartyOrganizationVO partyOrganizationVO) {
+        ComPbOrgDO comPbOrgDO = comPbOrgDAO.selectById(partyOrganizationVO.getId());
+        if (ObjectUtils.isEmpty(comPbOrgDO)) {
+            return R.fail("没有此党支部");
+        }
+        comPbOrgDO.setStatus(partyOrganizationVO.getStatus());
+        int insert = comPbOrgDAO.updateById(comPbOrgDO);
+        if (insert > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 删除党支部
+     *
+     * @param partyOrganizationVO
+     *            党支部基本信息
+     * @return 编辑结果
+     */
+    @Override
+    public R deletePartyOrganization(PartyOrganizationVO partyOrganizationVO) {
+        Integer count = comPbOrgDAO.selectCount(new QueryWrapper<ComPbOrgDO>().lambda().eq(ComPbOrgDO::getParentId,partyOrganizationVO.getId()));
+        if(count > 0){
+            return R.fail("该组织下已有子组织,不能删除!");
+        }
+        List<ComPbMemberDO> comPbMemberList = comPbMemberDAO.selectList(
+            new QueryWrapper<ComPbMemberDO>().lambda().eq(ComPbMemberDO::getOrgId, partyOrganizationVO.getId()));
+        if (!CollectionUtils.isEmpty(comPbMemberList) && comPbMemberList.size() > 0) {
+            return R.fail("该党组织下已有党员,不能删除!");
+        }
+        int insert = comPbOrgDAO.deleteById(partyOrganizationVO.getId());
+        if (insert > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    @Override
+    public List<PartyOrganizationVO> listPartyOrganizationByApp(ComListPartyDTO comListPartyDTO) {
+        List<PartyOrganizationVO> partyOrganizationVOS = new ArrayList<>();
+        QueryWrapper<ComPbOrgDO> queryWrapper = new QueryWrapper<>();
+        queryWrapper.lambda().eq(ComPbOrgDO::getStatus, 1);
+        if (comListPartyDTO.getCommunityId() != null) {
+            queryWrapper.lambda().eq(ComPbOrgDO::getCommunityId, comListPartyDTO.getCommunityId());
+        }
+        if (!StringUtils.isEmpty(comListPartyDTO.getName())) {
+            queryWrapper.lambda().like(ComPbOrgDO::getName, comListPartyDTO.getName());
+        }
+        List<ComPbOrgDO> comPbOrgDOS = comPbOrgDAO.selectList(queryWrapper);
+        if (!ObjectUtils.isEmpty(comPbOrgDOS)) {
+            comPbOrgDOS.forEach(comPbOrgDO -> {
+                PartyOrganizationVO partyOrganizationVO = new PartyOrganizationVO();
+                partyOrganizationVO.setId(comPbOrgDO.getId());
+                partyOrganizationVO.setName(comPbOrgDO.getName());
+                partyOrganizationVO.setStatus(comPbOrgDO.getStatus());
+                partyOrganizationVOS.add(partyOrganizationVO);
+            });
+        }
+        return partyOrganizationVOS;
+    }
+
+    /**
+     * 查询所有党组织列表
+     * @param partyOrganizationVO   请求参数
+     * @return  党组织列表
+     */
+    @Override
+    public R getPbOrgAllList(PartyOrganizationVO partyOrganizationVO){
+        List<PartyOrganizationVO> orgList = this.comPbOrgDAO.getPbOrgAllList(partyOrganizationVO);
+        if (!ObjectUtils.isEmpty(orgList) && StringUtils.isEmpty(partyOrganizationVO.getKeyWord())) {
+            //遍历第一级党组织列表
+            orgList.forEach(org -> {
+                partyOrganizationVO.setParentId(org.getId());
+                List<PartyOrganizationVO> twoChildList = comPbOrgDAO.getChildOrgList(partyOrganizationVO);
+                if(!ObjectUtils.isEmpty(twoChildList)){
+                    //遍历第二级党组织列表
+                    twoChildList.forEach(twoChild -> {
+                        partyOrganizationVO.setParentId(twoChild.getId());
+                        List<PartyOrganizationVO> thirdChildList = comPbOrgDAO.getChildOrgList(partyOrganizationVO);
+                        if(!ObjectUtils.isEmpty(thirdChildList)){
+                            //遍历第三级党组织列表
+                            thirdChildList.forEach(thirdChild -> {
+                                partyOrganizationVO.setParentId(thirdChild.getId());
+                                List<PartyOrganizationVO> fourChildList = comPbOrgDAO.getChildOrgList(partyOrganizationVO);
+                                if(!ObjectUtils.isEmpty(fourChildList)){
+                                    fourChildList.forEach(fourChild -> {
+                                        partyOrganizationVO.setParentId(fourChild.getId());
+                                        List<PartyOrganizationVO> fiveChildList = comPbOrgDAO.getChildOrgList(partyOrganizationVO);
+                                        fourChild.setCountPerson(fourChild.getCountPerson() + fiveChildList.stream().mapToInt(five -> five.getCountPerson()).sum());
+                                        fourChild.setChildList(fiveChildList);
+                                    });
+                                }
+                                thirdChild.setCountPerson(thirdChild.getCountPerson() + fourChildList.stream().mapToInt(four -> four.getCountPerson()).sum());
+                                thirdChild.setChildList(fourChildList);
+                            });
+                        }
+                        twoChild.setCountPerson(twoChild.getCountPerson() + thirdChildList.stream().mapToInt(third -> third.getCountPerson()).sum());
+                        twoChild.setChildList(thirdChildList);
+                    });
+                }
+                org.setCountPerson(org.getCountPerson() + twoChildList.stream().mapToInt(two -> two.getCountPerson()).sum());
+                org.setChildList(twoChildList);
+            });
+        }
+        return R.ok(orgList);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/StreetBigScreenServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/StreetBigScreenServiceImpl.java
new file mode 100644
index 0000000..03fe86a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/java/com/panzhihua/service_dangjian/service/impl/StreetBigScreenServiceImpl.java
@@ -0,0 +1,800 @@
+package com.panzhihua.service_dangjian.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.partybuilding.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.partybuilding.PhotoMicroWishData;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_dangjian.dao.StreetBigScreenDAO;
+import com.panzhihua.service_dangjian.service.StreetBigScreenService;
+import org.springframework.stereotype.Service;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.time.temporal.TemporalAdjusters;
+import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党组织
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 11:40
+ **/
+@Service
+public class StreetBigScreenServiceImpl extends ServiceImpl<StreetBigScreenDAO, ComActDTO>
+    implements StreetBigScreenService
+{
+
+
+    @Override
+    public R getCommunityId(String streetId)
+    {
+        if(StringUtils.isEmpty(streetId))
+        {
+            return R.fail("街道id不能为空");
+        }
+        return R.ok(baseMapper.getCommunityId(streetId));
+    }
+
+    /**
+     * 获取核心指标数据
+     * @param streetId
+     * @return
+     */
+    @Override
+    public R getCoreData(String streetId,String communityId,String type,String starTime,String endTime)
+    {
+        if(StringUtils.isEmpty(streetId) && StringUtils.isEmpty(communityId) )
+        {
+            return R.fail("街道id或社区id不能为空");
+        }
+
+        //获取小程序用户数量
+        int userNum=0;
+        //获取实有人口总数
+        int ActualPopNum=0;
+        //获取小区总数
+        int VillageNum=0;
+        //获取志愿者总数
+        int VolunteerNum=0;
+
+        if(StringUtils.equals(type,"1"))
+        {
+            //按年份
+//            int year=Calendar.getInstance().get(Calendar.YEAR);
+            //获取小程序用户数量
+            userNum= baseMapper.getUserNum(streetId,communityId,starTime+"-01-01 00:00:00",starTime+"-12-31 23:59:59");
+            //获取实有人口总数
+            ActualPopNum= baseMapper.getActualPopNum(streetId,communityId,starTime+"-01-01 00:00:00",starTime+"-12-31 23:59:59");
+            //获取小区总数
+            VillageNum= baseMapper.getVillageNum(streetId,communityId,starTime+"-01-01 00:00:00",starTime+"-12-31 23:59:59");
+            //获取志愿者总数
+            VolunteerNum= baseMapper.getVolunteerNum(streetId,communityId,starTime+"-01-01 00:00:00",starTime+"-12-31 23:59:59");
+        }
+        else if(StringUtils.equals(type,"2"))
+        {
+            //按月份
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+            Date date = null;
+            try {
+                date = sdf.parse(starTime+"-01");
+            } catch (ParseException e) {
+                e.printStackTrace();
+            }
+            Calendar calendar = Calendar.getInstance();
+            calendar.setTime(date);
+            calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
+            Date lastDay = calendar.getTime();
+            // 获取当前月份的第一天
+            String firstDayOfMonth = starTime+"-01";
+//                // 获取当前月份的最后一天
+            String lastDayOfMonth = sdf.format(lastDay);
+
+            //获取小程序用户数量
+            userNum= baseMapper.getUserNum(streetId,communityId,firstDayOfMonth+" 00:00:00",lastDayOfMonth+" 23:59:59");
+            //获取实有人口总数
+            ActualPopNum= baseMapper.getActualPopNum(streetId,communityId,firstDayOfMonth+" 00:00:00",lastDayOfMonth+" 23:59:59");
+            //获取小区总数
+            VillageNum= baseMapper.getVillageNum(streetId,communityId,firstDayOfMonth+" 00:00:00",lastDayOfMonth+" 23:59:59");
+            //获取志愿者总数
+            VolunteerNum= baseMapper.getVolunteerNum(streetId,communityId,firstDayOfMonth+" 00:00:00",lastDayOfMonth+" 23:59:59");
+        }
+        else if(StringUtils.equals(type,"3"))
+        {
+            //按天份
+//            DateTimeFormatter newformatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+//            String data=LocalDate.now().format(newformatter);
+            userNum= baseMapper.getUserNum(streetId,communityId,starTime+" 00:00:00",starTime+" 23:59:59");
+            //获取实有人口总数
+            ActualPopNum= baseMapper.getActualPopNum(streetId,communityId,starTime+" 00:00:00",starTime+" 23:59:59");
+            //获取小区总数
+            VillageNum= baseMapper.getVillageNum(streetId,communityId,starTime+" 00:00:00",starTime+" 23:59:59");
+            //获取志愿者总数
+            VolunteerNum= baseMapper.getVolunteerNum(streetId,communityId,starTime+" 00:00:00",starTime+" 23:59:59");
+        }
+        else if(StringUtils.equals(type,"4"))
+        {
+            //按时间范围
+            userNum= baseMapper.getUserNum(streetId,communityId,starTime+" 00:00:00",endTime+" 23:59:59");
+            //获取实有人口总数
+            ActualPopNum= baseMapper.getActualPopNum(streetId,communityId,starTime+" 00:00:00",endTime+" 23:59:59");
+            //获取小区总数
+            VillageNum= baseMapper.getVillageNum(streetId,communityId,starTime+" 00:00:00",endTime+" 23:59:59");
+            //获取志愿者总数
+            VolunteerNum= baseMapper.getVolunteerNum(streetId,communityId,starTime+" 00:00:00",endTime+" 23:59:59");
+        }
+        else
+        {
+            //type为空  查全部
+            userNum= baseMapper.getUserNum(streetId,communityId,null,null);
+            //获取实有人口总数
+            ActualPopNum= baseMapper.getActualPopNum(streetId,communityId,null,null);
+            //获取小区总数
+            VillageNum= baseMapper.getVillageNum(streetId,communityId,null,null);
+            //获取志愿者总数
+            VolunteerNum= baseMapper.getVolunteerNum(streetId,communityId,null,null);
+        }
+
+        StreetCoreData streetCoreData=new StreetCoreData();
+        streetCoreData.setUserNum(userNum);
+        streetCoreData.setVillageNum(VillageNum);
+        streetCoreData.setActualPopNum(ActualPopNum);
+        streetCoreData.setVolunteerNum(VolunteerNum);
+
+        return R.ok(streetCoreData);
+    }
+
+
+    /**
+     * 获取三务三资数据
+     * @param streetId
+     * @param communityId
+     * @param type
+     * @param starTime
+     * @param endTime
+     * @return
+     */
+    @Override
+    public R getThreeNum(String streetId, String communityId,String type,String starTime, String endTime)
+    {
+        if(StringUtils.isEmpty(streetId) && StringUtils.isEmpty(communityId) )
+        {
+            return R.fail("街道id或社区id不能为空");
+        }
+
+        int partyAffairsNum=0;
+        int serviceNum=0;
+        int financeNum=0;
+        int fundNum=0;
+        int propertyNum=0;
+        int naturalResourcesNum=0;
+        int villageEconomyNum=0;
+
+        if(StringUtils.equals(type,"1"))
+        {
+            //按年份
+//            int year=Calendar.getInstance().get(Calendar.YEAR);
+            partyAffairsNum=baseMapper.getThreeNum(streetId,communityId,"党务公开",starTime+"-01-01 00:00:00",starTime+"-12-31 23:59:59");
+            serviceNum=baseMapper.getThreeNum(streetId,communityId,"服务公开",starTime+"-01-01 00:00:00",starTime+"-12-31 23:59:59");
+            financeNum=baseMapper.getThreeNum(streetId,communityId,"财务公开",starTime+"-01-01 00:00:00",starTime+"-12-31 23:59:59");
+            fundNum=baseMapper.getThreeNum(streetId,communityId,"资金公开",starTime+"-01-01 00:00:00",starTime+"-12-31 23:59:59");
+            propertyNum=baseMapper.getThreeNum(streetId,communityId,"资产公开",starTime+"-01-01 00:00:00",starTime+"-12-31 23:59:59");
+            naturalResourcesNum=baseMapper.getThreeNum(streetId,communityId,"资源公开",starTime+"-01-01 00:00:00",starTime+"-12-31 23:59:59");
+            villageEconomyNum=baseMapper.getThreeNum(streetId,communityId,"村集体经济组织项目",starTime+"-01-01 00:00:00",starTime+"-12-31 23:59:59");
+        }
+        else if(StringUtils.equals(type,"2"))
+        {
+
+            try {
+                //按月份
+                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+                Date date = sdf.parse(starTime+"-01");
+                Calendar calendar = Calendar.getInstance();
+                calendar.setTime(date);
+                calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
+                Date lastDay = calendar.getTime();
+                // 获取当前月份的第一天
+                String firstDayOfMonth = starTime+"-01";
+//                // 获取当前月份的最后一天
+                String lastDayOfMonth = sdf.format(lastDay);
+
+                partyAffairsNum=baseMapper.getThreeNum(streetId,communityId,"党务公开",firstDayOfMonth+" 00:00:00",lastDayOfMonth+" 23:59:59");
+                serviceNum=baseMapper.getThreeNum(streetId,communityId,"服务公开",firstDayOfMonth+" 00:00:00",lastDayOfMonth+" 23:59:59");
+                financeNum=baseMapper.getThreeNum(streetId,communityId,"财务公开",firstDayOfMonth+" 00:00:00",lastDayOfMonth+" 23:59:59");
+                fundNum=baseMapper.getThreeNum(streetId,communityId,"资金公开",firstDayOfMonth+" 00:00:00",lastDayOfMonth+" 23:59:59");
+                propertyNum=baseMapper.getThreeNum(streetId,communityId,"资产公开",firstDayOfMonth+" 00:00:00",lastDayOfMonth+" 23:59:59");
+                naturalResourcesNum=baseMapper.getThreeNum(streetId,communityId,"资源公开",firstDayOfMonth+" 00:00:00",lastDayOfMonth+" 23:59:59");
+                villageEconomyNum=baseMapper.getThreeNum(streetId,communityId,"村集体经济组织项目",firstDayOfMonth+" 00:00:00",lastDayOfMonth+" 23:59:59");
+
+            } catch (ParseException e) {
+                e.printStackTrace();
+            }
+
+            // 获取并打印第一天的日期
+
+
+
+
+        }
+        else if(StringUtils.equals(type,"3"))
+        {
+            //按天份
+//            DateTimeFormatter newformatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+//            String data=LocalDate.now().format(newformatter);
+
+            partyAffairsNum=baseMapper.getThreeNum(streetId,communityId,"党务公开",starTime+" 00:00:00",starTime+" 23:59:59");
+            serviceNum=baseMapper.getThreeNum(streetId,communityId,"服务公开",starTime+" 00:00:00",starTime+" 23:59:59");
+            financeNum=baseMapper.getThreeNum(streetId,communityId,"财务公开",starTime+" 00:00:00",starTime+" 23:59:59");
+            fundNum=baseMapper.getThreeNum(streetId,communityId,"资金公开",starTime+" 00:00:00",starTime+" 23:59:59");
+            propertyNum=baseMapper.getThreeNum(streetId,communityId,"资产公开",starTime+" 00:00:00",starTime+" 23:59:59");
+            naturalResourcesNum=baseMapper.getThreeNum(streetId,communityId,"资源公开",starTime+" 00:00:00",starTime+" 23:59:59");
+            villageEconomyNum=baseMapper.getThreeNum(streetId,communityId,"村集体经济组织项目",starTime+" 00:00:00",starTime+" 23:59:59");
+        }
+        else if(StringUtils.equals(type,"4"))
+        {
+            //按时间范围
+            partyAffairsNum=baseMapper.getThreeNum(streetId,communityId,"党务公开",starTime+" 00:00:00",endTime+" 23:59:59");
+            serviceNum=baseMapper.getThreeNum(streetId,communityId,"服务公开",starTime+" 00:00:00",endTime+" 23:59:59");
+            financeNum=baseMapper.getThreeNum(streetId,communityId,"财务公开",starTime+" 00:00:00",endTime+" 23:59:59");
+            fundNum=baseMapper.getThreeNum(streetId,communityId,"资金公开",starTime+" 00:00:00",endTime+" 23:59:59");
+            propertyNum=baseMapper.getThreeNum(streetId,communityId,"资产公开",starTime+" 00:00:00",endTime+" 23:59:59");
+            naturalResourcesNum=baseMapper.getThreeNum(streetId,communityId,"资源公开",starTime+" 00:00:00",endTime+" 23:59:59");
+            villageEconomyNum=baseMapper.getThreeNum(streetId,communityId,"村集体经济组织项目",starTime+" 00:00:00",endTime+" 23:59:59");
+
+        }
+        else
+        {
+            partyAffairsNum=baseMapper.getThreeNum(streetId,communityId,"党务公开",null,null);
+            serviceNum=baseMapper.getThreeNum(streetId,communityId,"服务公开",null,null);
+            financeNum=baseMapper.getThreeNum(streetId,communityId,"财务公开",null,null);
+            fundNum=baseMapper.getThreeNum(streetId,communityId,"资金公开",null,null);
+            propertyNum=baseMapper.getThreeNum(streetId,communityId,"资产公开",null,null);
+            naturalResourcesNum=baseMapper.getThreeNum(streetId,communityId,"资源公开",null,null);
+            villageEconomyNum=baseMapper.getThreeNum(streetId,communityId,"村集体经济组织项目",null,null);
+        }
+
+        ThreeNumData threeNumData=new ThreeNumData();
+        threeNumData.setPartyAffairsNum(partyAffairsNum);
+        threeNumData.setServiceNum(serviceNum);
+        threeNumData.setFinanceNum(financeNum);
+        threeNumData.setFundNum(fundNum);
+        threeNumData.setPropertyNum(propertyNum);
+        threeNumData.setNaturalResourcesNum(naturalResourcesNum);
+        threeNumData.setVillageEconomyNum(villageEconomyNum);
+
+        threeNumData.setThreeServiceNum(partyAffairsNum+serviceNum+financeNum);
+        threeNumData.setThreeFundNum(fundNum+propertyNum+naturalResourcesNum);
+
+
+        return R.ok(threeNumData);
+    }
+
+
+    /**
+     * 双报到双服务
+     * @param streetId
+     * @param communityId
+     * @param type
+     * @param starTime
+     * @param endTime
+     * @return
+     */
+    @Override
+    public R getDoubleRegistration(String streetId, String communityId, String type, String starTime, String endTime)
+    {
+        if(StringUtils.isEmpty(streetId) && StringUtils.isEmpty(communityId) )
+        {
+            return R.fail("街道id或社区id不能为空");
+        }
+
+        //旧的报道需求问题统计数  2.问题清单 3.需求清单
+        Integer OleProblemNum=0;
+        Integer OleNeedNum=0;
+        //旧的报道需求问题统计数 1问题清单  2需求清单
+        Integer NewProblemNum=0;
+        Integer NewNeedNum=0;
+        //获取旧双报道服务时间
+        Double OldTime=0.0;
+        //获取新双报道服务时间
+        Double NewTime=0.0;
+        //党建动态数据
+        Integer PartyBuildingNum=0;
+        //报到单位总计数据
+        Integer UnitNum=0;
+        //报到党员总计数据
+        Integer MemberNum=0;
+
+        Integer fuwuNum=0;
+
+        if(StringUtils.equals(type,"1"))
+        {
+            //按年份
+//            int year=Calendar.getInstance().get(Calendar.YEAR);
+            //旧的报道需求问题统计数  2.问题清单 3.需求清单
+            OleProblemNum=baseMapper.getOleNeedProblemNum("2",streetId,communityId,starTime+"-01-01 00:00:00",starTime+"-12-31 23:59:59");
+            OleNeedNum=baseMapper.getOleNeedProblemNum("3",streetId,communityId,starTime+"-01-01 00:00:00",starTime+"-12-31 23:59:59");
+            //旧的报道需求问题统计数 1问题清单  2需求清单
+            NewProblemNum=baseMapper.getNewNeedProblemNum("1",streetId,communityId,starTime+"-01-01 00:00:00",starTime+"-12-31 23:59:59");
+            NewNeedNum=baseMapper.getNewNeedProblemNum("2",streetId,communityId,starTime+"-01-01 00:00:00",starTime+"-12-31 23:59:59");
+            //获取旧双报道服务时间
+            OldTime=baseMapper.getOldTime(streetId,communityId,starTime+"-01-01 00:00:00",starTime+"-12-31 23:59:59");
+            //获取新双报道服务时间
+            NewTime=baseMapper.getNewTime(streetId,communityId,starTime+"-01-01 00:00:00",starTime+"-12-31 23:59:59");
+            //党建动态数据
+            PartyBuildingNum=baseMapper.getPartyBuildingNum(streetId,communityId,starTime+"-01-01 00:00:00",starTime+"-12-31 23:59:59");
+            //报到单位总计数据
+            UnitNum=baseMapper.getUnitNum(streetId,communityId,starTime+"-01-01 00:00:00",starTime+"-12-31 23:59:59");
+            //报到党员总计数据
+            MemberNum=baseMapper.getMemberNum(streetId,communityId,starTime+"-01-01 00:00:00",starTime+"-12-31 23:59:59");
+
+            fuwuNum=baseMapper.getRegistNum(streetId,communityId,starTime+"-01-01 00:00:00",starTime+"-12-31 23:59:59");
+        }
+        else if(StringUtils.equals(type,"2"))
+        {
+            //按月份
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+            Date date = null;
+            try {
+                date = sdf.parse(starTime+"-01");
+            } catch (ParseException e) {
+                e.printStackTrace();
+            }
+            Calendar calendar = Calendar.getInstance();
+            calendar.setTime(date);
+            calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
+            Date lastDay = calendar.getTime();
+            // 获取当前月份的第一天
+            String firstDayOfMonth = starTime+"-01";
+//                // 获取当前月份的最后一天
+            String lastDayOfMonth = sdf.format(lastDay);
+
+            //旧的报道需求问题统计数  2.问题清单 3.需求清单
+            OleProblemNum=baseMapper.getOleNeedProblemNum("2",streetId,communityId,firstDayOfMonth+" 00:00:00",lastDayOfMonth+" 23:59:59");
+            OleNeedNum=baseMapper.getOleNeedProblemNum("3",streetId,communityId,firstDayOfMonth+" 00:00:00",lastDayOfMonth+" 23:59:59");
+            //旧的报道需求问题统计数 1问题清单  2需求清单
+            NewProblemNum=baseMapper.getNewNeedProblemNum("1",streetId,communityId,firstDayOfMonth+" 00:00:00",lastDayOfMonth+" 23:59:59");
+            NewNeedNum=baseMapper.getNewNeedProblemNum("2",streetId,communityId,firstDayOfMonth+" 00:00:00",lastDayOfMonth+" 23:59:59");
+            //获取旧双报道服务时间
+            OldTime=baseMapper.getOldTime(streetId,communityId,firstDayOfMonth+" 00:00:00",lastDayOfMonth+" 23:59:59");
+            //获取新双报道服务时间
+            NewTime=baseMapper.getNewTime(streetId,communityId,firstDayOfMonth+" 00:00:00",lastDayOfMonth+" 23:59:59");
+            //党建动态数据
+            PartyBuildingNum=baseMapper.getPartyBuildingNum(streetId,communityId,firstDayOfMonth+" 00:00:00",lastDayOfMonth+" 23:59:59");
+            //报到单位总计数据
+            UnitNum=baseMapper.getUnitNum(streetId,communityId,firstDayOfMonth+" 00:00:00",lastDayOfMonth+" 23:59:59");
+            //报到党员总计数据
+            MemberNum=baseMapper.getMemberNum(streetId,communityId,firstDayOfMonth+" 00:00:00",lastDayOfMonth+" 23:59:59");
+            fuwuNum=baseMapper.getRegistNum(streetId,communityId,firstDayOfMonth+" 00:00:00",lastDayOfMonth+" 23:59:59");
+        }
+        else if(StringUtils.equals(type,"3"))
+        {
+            //按天份
+//            DateTimeFormatter newformatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+//            String data=LocalDate.now().format(newformatter);
+
+            //旧的报道需求问题统计数  2.问题清单 3.需求清单
+            OleProblemNum=baseMapper.getOleNeedProblemNum("2",streetId,communityId,starTime+" 00:00:00",starTime+" 23:59:59");
+            OleNeedNum=baseMapper.getOleNeedProblemNum("3",streetId,communityId,starTime+" 00:00:00",starTime+" 23:59:59");
+            //旧的报道需求问题统计数 1问题清单  2需求清单
+            NewProblemNum=baseMapper.getNewNeedProblemNum("1",streetId,communityId,starTime+" 00:00:00",starTime+" 23:59:59");
+            NewNeedNum=baseMapper.getNewNeedProblemNum("2",streetId,communityId,starTime+" 00:00:00",starTime+" 23:59:59");
+            //获取旧双报道服务时间
+            OldTime=baseMapper.getOldTime(streetId,communityId,starTime+" 00:00:00",starTime+" 23:59:59");
+            //获取新双报道服务时间
+            NewTime=baseMapper.getNewTime(streetId,communityId,starTime+" 00:00:00",starTime+" 23:59:59");
+            //党建动态数据
+            PartyBuildingNum=baseMapper.getPartyBuildingNum(streetId,communityId,starTime+" 00:00:00",starTime+" 23:59:59");
+            //报到单位总计数据
+            UnitNum=baseMapper.getUnitNum(streetId,communityId,starTime+" 00:00:00",starTime+" 23:59:59");
+            //报到党员总计数据
+            MemberNum=baseMapper.getMemberNum(streetId,communityId,starTime+" 00:00:00",starTime+" 23:59:59");
+            fuwuNum=baseMapper.getRegistNum(streetId,communityId,starTime+" 00:00:00",starTime+" 23:59:59");
+        }
+        else if(StringUtils.equals(type,"4"))
+        {
+            //按时间范围
+            //旧的报道需求问题统计数  2.问题清单 3.需求清单
+            OleProblemNum=baseMapper.getOleNeedProblemNum("2",streetId,communityId,starTime+" 00:00:00",endTime+" 23:59:59");
+            OleNeedNum=baseMapper.getOleNeedProblemNum("3",streetId,communityId,starTime+" 00:00:00",endTime+" 23:59:59");
+            //旧的报道需求问题统计数 1问题清单  2需求清单
+            NewProblemNum=baseMapper.getNewNeedProblemNum("1",streetId,communityId,starTime+" 00:00:00",endTime+" 23:59:59");
+            NewNeedNum=baseMapper.getNewNeedProblemNum("2",streetId,communityId,starTime+" 00:00:00",endTime+" 23:59:59");
+            //获取旧双报道服务时间
+            OldTime=baseMapper.getOldTime(streetId,communityId,starTime+" 00:00:00",endTime+" 23:59:59");
+            //获取新双报道服务时间
+            NewTime=baseMapper.getNewTime(streetId,communityId,starTime+" 00:00:00",endTime+" 23:59:59");
+            //党建动态数据
+            PartyBuildingNum=baseMapper.getPartyBuildingNum(streetId,communityId,starTime+" 00:00:00",endTime+" 23:59:59");
+            //报到单位总计数据
+            UnitNum=baseMapper.getUnitNum(streetId,communityId,starTime+" 00:00:00",endTime+" 23:59:59");
+            //报到党员总计数据
+            MemberNum=baseMapper.getMemberNum(streetId,communityId,starTime+" 00:00:00",endTime+" 23:59:59");
+            fuwuNum=baseMapper.getRegistNum(streetId,communityId,starTime+" 00:00:00",endTime+" 23:59:59");
+
+        }
+        else
+        {
+            //旧的报道需求问题统计数  2.问题清单 3.需求清单
+            OleProblemNum=baseMapper.getOleNeedProblemNum("2",streetId,communityId,null,null);
+            OleNeedNum=baseMapper.getOleNeedProblemNum("3",streetId,communityId,null,null);
+            //旧的报道需求问题统计数 1问题清单  2需求清单
+            NewProblemNum=baseMapper.getNewNeedProblemNum("1",streetId,communityId,null,null);
+            NewNeedNum=baseMapper.getNewNeedProblemNum("2",streetId,communityId,null,null);
+            //获取旧双报道服务时间
+            OldTime=baseMapper.getOldTime(streetId,communityId,null,null);
+            //获取新双报道服务时间
+            NewTime=baseMapper.getNewTime(streetId,communityId,null,null);
+            //党建动态数据
+            PartyBuildingNum=baseMapper.getPartyBuildingNum(streetId,communityId,null,null);
+            //报到单位总计数据
+            UnitNum=baseMapper.getUnitNum(streetId,communityId,null,null);
+            //报到党员总计数据
+            MemberNum=baseMapper.getMemberNum(streetId,communityId,null,null);
+            fuwuNum=baseMapper.getRegistNum(streetId,communityId,null,null);
+        }
+
+
+        if(NewTime==null)
+        {
+            NewTime=0.0;
+        }
+        if(OldTime==null)
+        {
+            OldTime=0.0;
+        }
+
+        DoubleRegistrationData doubleRegistrationData=new DoubleRegistrationData();
+        //报道需求统计数
+        doubleRegistrationData.setNeedNum(NewNeedNum+OleNeedNum);
+        //报道问题
+        doubleRegistrationData.setProblemNum(OleProblemNum+NewProblemNum);
+        //获取旧双报道服务时间
+        doubleRegistrationData.setTimes(OldTime+NewTime);
+        //党建动态数据
+        doubleRegistrationData.setPartyBuildingNum(PartyBuildingNum);
+        //报到单位总计数据
+        doubleRegistrationData.setUnitNum(UnitNum);
+        //报到党员总计数据
+        doubleRegistrationData.setMemberNum(MemberNum);
+        //报到服务次数
+        doubleRegistrationData.setAllNum(NewNeedNum+OleNeedNum+OleProblemNum+NewProblemNum+fuwuNum);
+
+
+        return R.ok(doubleRegistrationData);
+    }
+
+    /**
+     * 随手拍  微心愿
+     * @param streetId
+     * @param communityId
+     * @param type
+     * @param starTime
+     * @param endTime
+     * @return
+     */
+    @Override
+    public R getPhotoMicroWish(String streetId, String communityId, String type, String starTime, String endTime)
+    {
+
+        //随手拍
+        List<PhotoMicroWishData> photoList=new ArrayList<>();
+        //微心愿
+        List<PhotoMicroWishData> microWishList=new ArrayList<>();
+
+//        List<PhotoMicroWishData> list=new ArrayList<>();
+
+
+        int photoNum=0;
+
+        int microWishNum=0;
+
+        if(StringUtils.equals(type,"1"))
+        {
+            //按年份
+//            int year=Calendar.getInstance().get(Calendar.YEAR);
+
+            //随手拍
+            photoList=baseMapper.getPhotoMicroWishData("1","%Y",streetId,communityId,starTime+"-01-01 00:00:00",starTime+"-12-31 23:59:59");
+            //微心愿
+            microWishList=baseMapper.getPhotoMicroWishData("2","%Y",streetId,communityId,starTime+"-01-01 00:00:00",starTime+"-12-31 23:59:59");
+
+            photoNum=baseMapper.getPhotoAllNum(streetId,communityId,starTime+"-01-01 00:00:00",starTime+"-12-31 23:59:59");
+            microWishNum=baseMapper.getMicroWishAllNum(streetId,communityId,starTime+"-01-01 00:00:00",starTime+"-12-31 23:59:59");
+        }
+        else if(StringUtils.equals(type,"2"))
+        {
+            //按月份
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+            Date date = null;
+            try {
+                date = sdf.parse(starTime+"-01");
+            } catch (ParseException e) {
+                e.printStackTrace();
+            }
+            Calendar calendar = Calendar.getInstance();
+            calendar.setTime(date);
+            calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
+            Date lastDay = calendar.getTime();
+            // 获取当前月份的第一天
+            String firstDayOfMonth = starTime+"-01";
+//                // 获取当前月份的最后一天
+            String lastDayOfMonth = sdf.format(lastDay);
+
+            photoList=baseMapper.getPhotoMicroWishData("1","%Y-%m",streetId,communityId,firstDayOfMonth+" 00:00:00",lastDayOfMonth+" 23:59:59");
+            microWishList=baseMapper.getPhotoMicroWishData("2","%Y-%m",streetId,communityId,firstDayOfMonth+" 00:00:00",lastDayOfMonth+" 23:59:59");
+
+            photoNum=baseMapper.getPhotoAllNum(streetId,communityId,firstDayOfMonth+" 00:00:00",lastDayOfMonth+" 23:59:59");
+            microWishNum=baseMapper.getMicroWishAllNum(streetId,communityId,firstDayOfMonth+" 00:00:00",lastDayOfMonth+" 23:59:59");
+
+        }
+        else if(StringUtils.equals(type,"3"))
+        {
+            //按天份
+//            DateTimeFormatter newformatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+//            String data=LocalDate.now().format(newformatter);
+
+            photoList=baseMapper.getPhotoMicroWishData("1","%Y-%m-%d",streetId,communityId,starTime+" 00:00:00",starTime+" 23:59:59");
+            microWishList=baseMapper.getPhotoMicroWishData("2","%Y-%m-%d",streetId,communityId,starTime+" 00:00:00",starTime+" 23:59:59");
+
+            photoNum=baseMapper.getPhotoAllNum(streetId,communityId,starTime+" 00:00:00",starTime+" 23:59:59");
+            microWishNum=baseMapper.getMicroWishAllNum(streetId,communityId,starTime+" 00:00:00",starTime+" 23:59:59");
+        }
+        else if(StringUtils.equals(type,"4"))
+        {
+            photoList=baseMapper.getPhotoMicroWishData("1","%Y-%m-%d",streetId,communityId,starTime+" 00:00:00",endTime+" 23:59:59");
+            microWishList=baseMapper.getPhotoMicroWishData("2","%Y-%m-%d",streetId,communityId,starTime+" 00:00:00",endTime+" 23:59:59");
+
+            photoNum=baseMapper.getPhotoAllNum(streetId,communityId,starTime+" 00:00:00",endTime+" 23:59:59");
+            microWishNum=baseMapper.getMicroWishAllNum(streetId,communityId,starTime+" 00:00:00",endTime+" 23:59:59");
+        }
+        else
+        {
+            photoList=baseMapper.getPhotoMicroWishData("1","%Y-%m",streetId,communityId,null,null);
+            microWishList=baseMapper.getPhotoMicroWishData("2","%Y-%m",streetId,communityId,null,null);
+
+            photoNum=baseMapper.getPhotoAllNum(streetId,communityId,null,null);
+            microWishNum=baseMapper.getMicroWishAllNum(streetId,communityId,null,null);
+        }
+
+//        for (int a=0;a<microWishList.size();a++)
+//        {
+//            int num=0;
+//            for (int b=0;b<photoList.size();b++)
+//            {
+//                if(photoList.get(b).getTiems().equals(microWishList.get(a).getTiems()))
+//                {
+//                    photoList.get(b).setMicroNum(microWishList.get(a).getPhotoNum());
+//                }
+//                else
+//                {
+//                    num++;
+//                }
+//            }
+//
+//            if(num>=photoList.size())
+//            {
+//                PhotoMicroWishData  data=new PhotoMicroWishData();
+//                data.setMicroNum(microWishList.get(a).getPhotoNum());
+//                data.setCreateAt(microWishList.get(a).getCreateAt());
+//                data.setTiems(microWishList.get(a).getTiems());
+//                data.setPhotoNum("0");
+//                list.add(data);
+//            }
+//
+//        }
+//
+//        photoList.addAll(list);
+//
+//        if(photoList!=null && photoList.size()>1)
+//        {
+//            Collections.sort(photoList, new Comparator<PhotoMicroWishData>() {
+//                @Override
+//                public int compare(PhotoMicroWishData o1, PhotoMicroWishData o2) {
+//                    return o1.getCreateAt().compareTo(o2.getCreateAt());
+//                }
+//            });
+//        }
+
+
+        PhotoMicroWish photoMicroWish=new PhotoMicroWish();
+        photoMicroWish.setPhotoList(photoList);
+        photoMicroWish.setMicroWishList(microWishList);
+        photoMicroWish.setPhotoNum(photoNum);
+        photoMicroWish.setMicroWishNum(microWishNum);
+        return R.ok(photoMicroWish);
+    }
+
+    /**
+     * 社区活动、议事投票、问卷调查、社区动态发布趋势
+     * @param streetId
+     * @param communityId
+     * @param type
+     * @param starTime
+     * @param endTime
+     * @return
+     */
+    @Override
+    public R getAllData(String streetId, String communityId, String type, String starTime, String endTime)
+    {
+        //议事投票
+        List<PhotoMicroWishData> discussList=new ArrayList<>();
+        //问卷调查
+        List<PhotoMicroWishData> questnaireNumList=new ArrayList<>();
+        //社区动态
+        List<PhotoMicroWishData> nommunityDynNumList=new ArrayList<>();
+        //社区活动
+        List<PhotoMicroWishData> nommunityActNumList=new ArrayList<>();
+
+
+        //议事投票数量")
+        int discussNum=0;
+
+        //问卷调查数量")
+        int questnaireNum=0;
+
+        //社区动态数量")
+        int nommunityDynNum=0;
+
+        //社区活动数量")
+        int nommunityActNum=0;
+
+        if(StringUtils.equals(type,"1"))
+        {
+            //按年份
+//            int year=Calendar.getInstance().get(Calendar.YEAR);
+
+            //* 社区活动统计
+            nommunityActNumList=baseMapper.getNommunityActNumList("%Y",streetId,communityId,starTime+"-01-01 00:00:00",starTime+"-12-31 23:59:59");
+            //社区动态
+            nommunityDynNumList=baseMapper.getNommunityDynNumList("%Y",streetId,communityId,starTime+"-01-01 00:00:00",starTime+"-12-31 23:59:59");
+            //问卷调查
+            questnaireNumList=baseMapper.getQuestnaireNumList("%Y",streetId,communityId,starTime+"-01-01 00:00:00",starTime+"-12-31 23:59:59");
+            //议事投票
+            discussList=baseMapper.getDiscussNumList("%Y",streetId,communityId,starTime+"-01-01 00:00:00",starTime+"-12-31 23:59:59");
+
+
+            //议事投票数量")
+            discussNum=baseMapper.getDiscussNum(streetId,communityId,starTime+"-01-01 00:00:00",starTime+"-12-31 23:59:59");
+
+            //问卷调查数量")
+            questnaireNum=baseMapper.getQuestnaireNum(streetId,communityId,starTime+"-01-01 00:00:00",starTime+"-12-31 23:59:59");
+
+            //社区动态数量")
+            nommunityDynNum=baseMapper.getNommunityDynNum(streetId,communityId,starTime+"-01-01 00:00:00",starTime+"-12-31 23:59:59");
+
+            //社区活动数量")
+            nommunityActNum=baseMapper.getNommunityActNum(streetId,communityId,starTime+"-01-01 00:00:00",starTime+"-12-31 23:59:59");
+
+
+        }
+        else if(StringUtils.equals(type,"2"))
+        {
+            //按月份
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+            Date date = null;
+            try {
+                date = sdf.parse(starTime+"-01");
+            } catch (ParseException e) {
+                e.printStackTrace();
+            }
+            Calendar calendar = Calendar.getInstance();
+            calendar.setTime(date);
+            calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));
+            Date lastDay = calendar.getTime();
+            // 获取当前月份的第一天
+            String firstDayOfMonth = starTime+"-01";
+//                // 获取当前月份的最后一天
+            String lastDayOfMonth = sdf.format(lastDay);
+
+            //* 社区活动统计
+            nommunityActNumList=baseMapper.getNommunityActNumList("%Y-%m",streetId,communityId,firstDayOfMonth+" 00:00:00",lastDayOfMonth+" 23:59:59");
+            //社区动态
+            nommunityDynNumList=baseMapper.getNommunityDynNumList("%Y-%m",streetId,communityId,firstDayOfMonth+" 00:00:00",lastDayOfMonth+" 23:59:59");
+            //问卷调查
+            questnaireNumList=baseMapper.getQuestnaireNumList("%Y-%m",streetId,communityId,firstDayOfMonth+" 00:00:00",lastDayOfMonth+" 23:59:59");
+            //议事投票
+            discussList=baseMapper.getDiscussNumList("%Y-%m",streetId,communityId,firstDayOfMonth+" 00:00:00",lastDayOfMonth+" 23:59:59");
+
+        }
+        else if(StringUtils.equals(type,"3"))
+        {
+            //按天份
+//            DateTimeFormatter newformatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+//            String data=LocalDate.now().format(newformatter);
+
+            //* 社区活动统计
+            nommunityActNumList=baseMapper.getNommunityActNumList("%Y-%m-%d",streetId,communityId,starTime+" 00:00:00",starTime+" 23:59:59");
+            //社区动态
+            nommunityDynNumList=baseMapper.getNommunityDynNumList("%Y-%m-%d",streetId,communityId,starTime+" 00:00:00",starTime+" 23:59:59");
+            //问卷调查
+            questnaireNumList=baseMapper.getQuestnaireNumList("%Y-%m-%d",streetId,communityId,starTime+" 00:00:00",starTime+" 23:59:59");
+            //议事投票
+            discussList=baseMapper.getDiscussNumList("%Y-%m-%d",streetId,communityId,starTime+" 00:00:00",starTime+" 23:59:59");
+
+
+            //议事投票数量")
+            discussNum=baseMapper.getDiscussNum(streetId,communityId,starTime+" 00:00:00",starTime+" 23:59:59");
+
+            //问卷调查数量")
+            questnaireNum=baseMapper.getQuestnaireNum(streetId,communityId,starTime+" 00:00:00",starTime+" 23:59:59");
+
+            //社区动态数量")
+            nommunityDynNum=baseMapper.getNommunityDynNum(streetId,communityId,starTime+" 00:00:00",starTime+" 23:59:59");
+
+            //社区活动数量")
+            nommunityActNum=baseMapper.getNommunityActNum(streetId,communityId,starTime+" 00:00:00",starTime+" 23:59:59");
+
+
+
+        }
+        else if(StringUtils.equals(type,"4"))
+        {
+            //* 社区活动统计
+            nommunityActNumList=baseMapper.getNommunityActNumList("%Y-%m-%d",streetId,communityId,starTime+" 00:00:00",endTime+" 23:59:59");
+            //社区动态
+            nommunityDynNumList=baseMapper.getNommunityDynNumList("%Y-%m-%d",streetId,communityId,starTime+" 00:00:00",endTime+" 23:59:59");
+            //问卷调查
+            questnaireNumList=baseMapper.getQuestnaireNumList("%Y-%m-%d",streetId,communityId,starTime+" 00:00:00",endTime+" 23:59:59");
+            //议事投票
+            discussList=baseMapper.getDiscussNumList("%Y-%m-%d",streetId,communityId,starTime+" 00:00:00",endTime+" 23:59:59");
+
+
+            //议事投票数量")
+            discussNum=baseMapper.getDiscussNum(streetId,communityId,starTime+" 00:00:00",endTime+" 23:59:59");
+
+            //问卷调查数量")
+            questnaireNum=baseMapper.getQuestnaireNum(streetId,communityId,starTime+" 00:00:00",endTime+" 23:59:59");
+
+            //社区动态数量")
+            nommunityDynNum=baseMapper.getNommunityDynNum(streetId,communityId,starTime+" 00:00:00",endTime+" 23:59:59");
+
+            //社区活动数量")
+            nommunityActNum=baseMapper.getNommunityActNum(streetId,communityId,starTime+" 00:00:00",endTime+" 23:59:59");
+        }
+        else
+        {
+            //* 社区活动统计
+            nommunityActNumList=baseMapper.getNommunityActNumList("%Y-%m",streetId,communityId,null,null);
+            //社区动态
+            nommunityDynNumList=baseMapper.getNommunityDynNumList("%Y-%m",streetId,communityId,null,null);
+            //问卷调查
+            questnaireNumList=baseMapper.getQuestnaireNumList("%Y-%m",streetId,communityId,null,null);
+            //议事投票
+            discussList=baseMapper.getDiscussNumList("%Y-%m",streetId,communityId,null,null);
+
+
+
+            //议事投票数量")
+            discussNum=baseMapper.getDiscussNum(streetId,communityId,null,null);
+
+            //问卷调查数量")
+            questnaireNum=baseMapper.getQuestnaireNum(streetId,communityId,null,null);
+
+            //社区动态数量")
+            nommunityDynNum=baseMapper.getNommunityDynNum(streetId,communityId,null,null);
+
+            //社区活动数量")
+            nommunityActNum=baseMapper.getNommunityActNum(streetId,communityId,null,null);
+
+        }
+
+        AllData allData=new AllData();
+        allData.setDiscussList(discussList);
+        allData.setNommunityActNumList(nommunityActNumList);
+        allData.setNommunityDynNumList(nommunityDynNumList);
+        allData.setQuestnaireNumList(questnaireNumList);
+        allData.setQuestnaireNum(questnaireNum);
+        allData.setNommunityDynNum(nommunityDynNum);
+        allData.setNommunityActNum(nommunityActNum);
+        allData.setDiscussNum(discussNum);
+
+        return R.ok(allData);
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/bootstrap.yml b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..72e2d7a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/bootstrap.yml
@@ -0,0 +1,31 @@
+spring:
+  application:
+    name: huacheng-partybuilding
+  cloud:
+    config:
+      discovery:
+        enabled: true
+        service-id: huacheng-config  # 注册中心的服务名
+      profile: ${ENV:dev}  # 指定配置文件的环境
+      uri: http://${CONFIG_URL:localhost}:6193/
+  profiles:
+    active: ${ENV:dev}
+
+eureka:
+  client:
+    service-url:
+      defaultZone: http://${EUREKA_URL:localhost}:8192/eureka
+
+management:
+  endpoints:
+    web:
+      exposure:
+        include: '*'
+
+  endpoint:
+    health:
+      show-details: always
+
+  metrics:
+    tags:
+      application: huacheng-partybuilding
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/logback-spring.xml b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..af38b65
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/logback-spring.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration debug="false">
+    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
+    <springProfile name="dev">
+        <property name="LOG_HOME" value="F:/log" />
+    </springProfile>
+       <springProfile name="test">
+        <property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    </springProfile>
+<property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    <!-- 控制台输出 -->
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+    </appender>
+    <!-- 按照每天生成日志文件 -->
+    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!--日志文件输出的文件名-->
+            <FileNamePattern>${LOG_HOME}/huachengservice_partybuilding.log.%d{yyyy-MM-dd}.log</FileNamePattern>
+            <!--日志文件保留天数-->
+            <MaxHistory>30</MaxHistory>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+        <!--日志文件最大的大小-->
+        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <MaxFileSize>10MB</MaxFileSize>
+        </triggeringPolicy>
+    </appender>
+
+    <!--myibatis log configure-->
+    <logger name="com.apache.ibatis" level="TRACE"/>
+    <logger name="java.sql.Connection" level="DEBUG"/>
+    <logger name="java.sql.Statement" level="DEBUG"/>
+    <logger name="java.sql.PreparedStatement" level="DEBUG"/>
+    <logger name="com.panzhihua.service_dangjian" level="DEBUG"/>
+
+    <!-- 日志输出级别 -->
+    <root level="DEBUG">
+        <appender-ref ref="STDOUT" />
+    </root>
+    <root level="INFO">
+        <appender-ref ref="STDOUT" />
+        <appender-ref ref="FILE" />
+    </root>
+</configuration>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComActIntegralUserChangeMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComActIntegralUserChangeMapper.xml
new file mode 100644
index 0000000..6694634
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComActIntegralUserChangeMapper.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.ComActIntegralUserChangeMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_dangjian.entity.ComActIntegralUserChange">
+        <id column="id" property="id" />
+        <result column="user_id" property="userId" />
+        <result column="integral_id" property="integralId" />
+        <result column="community_id" property="communityId" />
+        <result column="integral_sum_top" property="integralSumTop" />
+        <result column="integral_sum_back" property="integralSumBack" />
+        <result column="integral_available_sum_top" property="integralAvailableSumTop" />
+        <result column="integral_available_sum_back" property="integralAvailableSumBack" />
+        <result column="integral_frozen_sum_top" property="integralFrozenSumTop" />
+        <result column="integral_frozen_sum_back" property="integralFrozenSumBack" />
+        <result column="integral_party_top" property="integralPartyTop" />
+        <result column="integral_party_back" property="integralPartyBack" />
+        <result column="integral_available_party_top" property="integralAvailablePartyTop" />
+        <result column="integral_available_party_back" property="integralAvailablePartyBack" />
+        <result column="integral_frozen_party_top" property="integralFrozenPartyTop" />
+        <result column="integral_frozen_party_back" property="integralFrozenPartyBack" />
+        <result column="integral_volunteer_top" property="integralVolunteerTop" />
+        <result column="integral_volunteer_back" property="integralVolunteerBack" />
+        <result column="integral_available_volunteer_top" property="integralAvailableVolunteerTop" />
+        <result column="integral_available_volunteer_back" property="integralAvailableVolunteerBack" />
+        <result column="integral_frozen_volunteer_top" property="integralFrozenVolunteerTop" />
+        <result column="integral_frozen_volunteer_back" property="integralFrozenVolunteerBack" />
+        <result column="integral_resident_top" property="integralResidentTop" />
+        <result column="integral_resident_back" property="integralResidentBack" />
+        <result column="integral_available_resident_top" property="integralAvailableResidentTop" />
+        <result column="integral_available_resident_back" property="integralAvailableResidentBack" />
+        <result column="integral_frozen_resident_top" property="integralFrozenResidentTop" />
+        <result column="integral_frozen_resident_back" property="integralFrozenResidentBack" />
+        <result column="service_id" property="serviceId" />
+        <result column="create_at" property="createAt" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, user_id, integral_id, community_id, integral_sum_top, integral_sum_back, integral_available_sum_top, integral_available_sum_back, integral_frozen_sum_top, integral_frozen_sum_back, integral_party_top, integral_party_back, integral_available_party_top, integral_available_party_back, integral_frozen_party_top, integral_frozen_party_back, integral_volunteer_top, integral_volunteer_back, integral_available_volunteer_top, integral_available_volunteer_back, integral_frozen_volunteer_top, integral_frozen_volunteer_back, integral_resident_top, integral_resident_back, integral_available_resident_top, integral_available_resident_back, integral_frozen_resident_top, integral_frozen_resident_back, service_id, create_at
+    </sql>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComActIntegralUserTradeMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComActIntegralUserTradeMapper.xml
new file mode 100644
index 0000000..9fa4df1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComActIntegralUserTradeMapper.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_dangjian.dao.ComActIntegralUserTradeDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_dangjian.entity.ComActIntegralUserTrade">
+        <id column="id" property="id" />
+        <result column="user_id" property="userId" />
+        <result column="integral_id" property="integralId" />
+        <result column="community_id" property="communityId" />
+        <result column="service_id" property="serviceId" />
+        <result column="service_type" property="serviceType" />
+        <result column="amount" property="amount" />
+        <result column="change_type" property="changeType" />
+        <result column="remark" property="remark" />
+        <result column="identity_type" property="identityType" />
+        <result column="create_at" property="createAt" />
+        <result column="create_by" property="createBy" />
+    </resultMap>
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComActIntegralUsersMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComActIntegralUsersMapper.xml
new file mode 100644
index 0000000..15f120a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComActIntegralUsersMapper.xml
@@ -0,0 +1,141 @@
+<?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_dangjian.dao.ComActIntegralUsersMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_dangjian.entity.ComActIntegralUser">
+        <id column="id" property="id" />
+        <result column="user_id" property="userId" />
+        <result column="community_id" property="communityId" />
+        <result column="integral_sum" property="integralSum" />
+        <result column="integral_available_sum" property="integralAvailableSum" />
+        <result column="integral_frozen_sum" property="integralFrozenSum" />
+        <result column="integral_party" property="integralParty" />
+        <result column="integral_available_party" property="integralAvailableParty" />
+        <result column="integral_frozen_party" property="integralFrozenParty" />
+        <result column="integral_volunteer" property="integralVolunteer" />
+        <result column="integral_available_volunteer" property="integralAvailableVolunteer" />
+        <result column="integral_frozen_volunteer" property="integralFrozenVolunteer" />
+        <result column="integral_resident" property="integralResident" />
+        <result column="integral_available_resident" property="integralAvailableResident" />
+        <result column="integral_frozen_resident" property="integralFrozenResident" />
+        <result column="create_at" property="createAt" />
+        <result column="update_at" property="updateAt" />
+        <result column="status" property="status" />
+    </resultMap>
+
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, user_id, community_id, integral_sum, integral_available_sum, integral_frozen_sum, integral_party, integral_available_party, integral_frozen_party, integral_volunteer, integral_available_volunteer, integral_frozen_volunteer, integral_resident, integral_available_resident, integral_frozen_resident, create_at, update_at
+    </sql>
+
+    <select id="getIntegralUserListApplets" resultType="com.panzhihua.common.model.vos.community.integral.ComActIntegralUserListVO">
+        SELECT
+            SUM(t.amount) AS amount,
+            t1.community_id,
+            t1.`name` AS communityName
+        FROM
+            com_act_integral_user_trade t
+                INNER JOIN com_act t1 ON t.community_id = t1.community_id
+        WHERE
+            t.change_type = 1 AND t.user_id = #{userId}
+        GROUP BY t1.community_id
+        ORDER BY amount DESC
+    </select>
+
+    <select id="getIntegralUserRank" resultType="com.panzhihua.common.model.vos.community.integral.IntegralUserRankVO">
+        SELECT
+            *
+        FROM
+            (
+                SELECT
+                    t1.user_id,
+                    @rank := @rank + 1 AS rank
+                FROM
+                    (
+                    SELECT
+                    caiu.user_id,
+                    caiu.integral_sum
+                    FROM
+                    com_act_integral_user as caiu
+                    left join sys_user as su on su.user_id = caiu.user_id
+                    WHERE
+                    caiu.community_id = #{communityId}
+                    ORDER BY
+                    caiu.integral_sum DESC,su.create_at asc
+                    ) AS t1,
+                    ( SELECT @rank := 0 ) AS t2
+            ) AS m
+        WHERE
+            user_id = #{userId} limit 1
+    </select>
+
+    <select id="getIntegralCommunityRankApplets" parameterType="com.panzhihua.common.model.dtos.community.integral.ComActIntegralCommunityRankDTO"
+            resultType="com.panzhihua.common.model.vos.community.integral.ComActIntegralCommunityRankVO">
+        SELECT
+        su.nick_name,
+        su.image_url,
+        <if test="communityRankDTO.type == 1">
+            SUM(caiu.integral_sum) as amount,
+        </if>
+        <if test="communityRankDTO.type == 2">
+            SUM(caiu.integral_resident) as amount,
+        </if>
+        <if test="communityRankDTO.type == 3">
+            SUM(caiu.integral_volunteer) as amount,
+        </if>
+        <if test="communityRankDTO.type == 4">
+            SUM(caiu.integral_party) as amount,
+        </if>
+        su.is_partymember,
+        su.is_volunteer
+        FROM
+        com_act_integral_user AS caiu
+        LEFT JOIN sys_user AS su ON su.user_id = caiu.user_id
+        WHERE su.nick_name is not null
+        <if test="communityRankDTO.communityId != null">
+            AND caiu.community_id = ${communityRankDTO.communityId}
+        </if>
+        <if test="communityRankDTO.type == 3">
+            and su.is_volunteer = 1
+        </if>
+        <if test="communityRankDTO.type == 4">
+            and su.is_partymember = 1
+        </if>
+        GROUP BY caiu.user_id
+        ORDER BY amount desc
+    </select>
+
+    <select id="getTaskActivityPeopleList" resultType="com.panzhihua.common.model.vos.community.integral.admin.ComActActivityPeopleVO">
+        select caas.user_id,caas.activity_id,caa.community_id,caas.sign_identity
+        from (SELECT * FROM com_act_act_sign WHERE `status` = 1) as caas
+                 left join com_act_activity as caa on caa.id = caas.activity_id
+                 left join com_act_act_regist AS caar ON caas.user_id = caar.user_id AND caas.activity_id = caar.activity_id
+        where caa.id = #{activityId}  AND caar.id IS NULL
+    </select>
+    <select id="getUserIntegralStatistics"
+            resultType="com.panzhihua.common.model.vos.community.integral.ComActIntegralUserVO">
+        SELECT
+        SUM(t.amount) AS amount,
+        SUM(IF(t.service_type IN(4,5,6),t.amount,0)) AS actAmount,
+        SUM(IF(t.service_type = 4,t.amount,0)) AS residentAmount,
+        SUM(IF(t.service_type = 5,t.amount,0)) AS partyMemberAmount,
+        SUM(IF(t.service_type = 6,t.amount,0)) AS volunteerAmount,
+        SUM(IF(t.service_type = 9,t.amount,0)) AS unitPartyMemberAmount
+        <if test="communityId != null">
+            ,t1.community_id,
+            t1.`name` AS communityName
+        </if>
+        FROM
+        com_act_integral_user_trade t
+        INNER JOIN com_act t1 ON t.community_id = t1.community_id
+        WHERE
+        t.change_type = 1 AND t.user_id = #{userId}
+        <if test="communityId != null">
+            AND t.community_id = #{communityId}
+        </if>
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComActProjectMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComActProjectMapper.xml
new file mode 100644
index 0000000..f887e9b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComActProjectMapper.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_dangjian.dao.ComActProjectMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_dangjian.entity.ComActProject">
+        <id column="id" property="id" />
+        <result column="unit_id" property="unitId" />
+        <result column="unit_name" property="unitName" />
+        <result column="speciality" property="speciality" />
+        <result column="project" property="project" />
+        <result column="phone" property="phone" />
+        <result column="image" property="image" />
+        <result column="create_time" property="createTime" />
+    </resultMap>
+
+    <select id="getList" resultMap="BaseResultMap">
+        select
+            id,
+            unit_id,
+            unit_name,
+            speciality,
+            project,
+            phone,
+            image,
+            create_time
+        from com_act_project
+        <where>
+            1=1
+            <if test="item.unitId !=null and item.unitId !='' ">
+                and unit_id=#{item.unitId}
+            </if>
+            <if test="item.speciality !=null and item.speciality !='' ">
+                and (speciality like concat ('%',#{item.speciality},'%') or #{item.speciality} like concat ('%',speciality,'%'))
+            </if>
+            <if test="item.project !=null and item.project !='' ">
+                and project like concat ('%',#{item.project},'%')
+            </if>
+        </where>
+        order by create_time desc
+    </select>
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComPbCheckUnitMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComPbCheckUnitMapper.xml
new file mode 100644
index 0000000..fae1770
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComPbCheckUnitMapper.xml
@@ -0,0 +1,519 @@
+<?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_dangjian.dao.ComPbCheckUnitMapper">
+
+    <resultMap type="com.panzhihua.service_dangjian.entity.ComPbCheckUnit" id="ComPbCheckUnitMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="communityId" column="community_id" jdbcType="INTEGER"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="type" column="type" jdbcType="INTEGER"/>
+        <result property="contacts" column="contacts" jdbcType="VARCHAR"/>
+        <result property="phone" column="phone" jdbcType="VARCHAR"/>
+        <result property="createAt" column="create_at" jdbcType="TIMESTAMP"/>
+        <result property="createBy" column="create_by" jdbcType="INTEGER"/>
+        <result property="updateAt" column="update_at" jdbcType="TIMESTAMP"/>
+        <result property="updateBy" column="update_by" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <!--查询单个-->
+    <select id="queryById" resultType="com.panzhihua.common.model.vos.common.ComPbCheckUnitVo">
+        select
+        cpcu.*
+        ,(select count(id) from com_pb_member where audit_result = 1 and check_unit_id = cpcu.id) as count
+        from com_pb_check_unit as cpcu
+        where cpcu.id = #{id}
+    </select>
+
+    <!--查询指定行数据-->
+    <select id="queryAllByLimit" resultType="com.panzhihua.common.model.vos.common.ComPbCheckUnitVo">
+        select
+        cpcu.*
+        from com_pb_check_unit as cpcu
+        <where>
+            <if test="dto.id != null">
+                and cpcu.id = #{dto.id}
+            </if>
+            <if test="dto.type != null">
+                and cpcu.`type` = #{dto.type}
+            </if>
+            <if test="dto.communityIds != null and dto.communityIds.size()>0">
+                AND cpcu.community_id IN
+                <foreach collection="dto.communityIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="dto.ids != null and dto.ids.length != 0">
+                AND cpcu.id IN
+                <foreach collection="dto.ids" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="dto.keyWord != null and dto.keyWord != ''">
+                and (cpcu.contacts like concat(#{dto.keyWord},'%') or cpcu.`name` like concat('%',#{dto.keyWord},'%') or cpcu.phone like concat(#{dto.keyWord},'%'))
+            </if>
+            <if test="dto.name != null and dto.name != ''">
+                and cpcu.`name` like concat('%',#{dto.name},'%')
+            </if>
+            <if test="dto.contacts != null and dto.contacts != ''">
+                and cpcu.`contacts` like concat(#{dto.contacts},'%')
+            </if>
+            <if test="dto.specialtyName != null and dto.specialtyName != ''">
+                and cpcu.specialty_name like concat('%',#{dto.specialtyName},'%')
+            </if>
+            <if test="dto.belongTo != null and dto.belongTo != ''">
+                and cpcu.belong_to =#{dto.belongTo}
+            </if>
+            <if test="dto.natureName != null and dto.natureName != ''">
+                and cpcu.nature_name = #{dto.natureName}
+            </if>
+            <if test="dto.orgName != null and dto.orgName !=''">
+                and cpcu.org_name like concat('%',#{dto.orgName},'%')
+            </if>
+        </where>
+        order by cpcu.create_at desc
+    </select>
+
+    <!--查询所有数据-->
+    <select id="queryAllByList" resultType="com.panzhihua.common.model.vos.common.ComPbCheckUnitVo">
+        select
+        cpcu.id, cpcu.`name`, cpcu.`type`, cpcu.contacts, cpcu.phone, cpcu.create_at, cpcu.create_by, cpcu.update_at, cpcu.update_by
+        , cpcu.community_id, cpcu.org_name, ca.`name` as communityName, cpcu.`logo`
+        from com_pb_check_unit as cpcu
+        left join com_act as ca on ca.community_id = cpcu.community_id
+        <where>
+            <if test="dto.id != null">
+                and cpcu.id = #{dto.id}
+            </if>
+            <if test="dto.name != null and dto.name != ''">
+                and cpcu.`name` = #{dto.name}
+            </if>
+            <if test="dto.type != null">
+                and cpcu.`type` = #{dto.type}
+            </if>
+            <if test="dto.contacts != null and dto.contacts != ''">
+                and cpcu.contacts = #{dto.contacts}
+            </if>
+            <if test="dto.phone != null and dto.phone != ''">
+                and cpcu.phone = #{dto.phone}
+            </if>
+            <if test="dto.communityId != null and dto.communityId !=0">
+                and cpcu.community_id = #{dto.communityId}
+            </if>
+        </where>
+        order by cpcu.create_at desc
+    </select>
+
+    <select id="selectCommunityId" resultType="Long">
+        select community_id from com_area_town_community where area=#{area} and town=#{town} and community=#{community}
+    </select>
+    <select id="unitStatisticsTop"
+            resultType="com.panzhihua.common.model.vos.common.PbCheckUnitStatisticsVo">
+        SELECT
+        (SELECT COUNT( id ) FROM com_pb_check_unit WHERE 1=1
+            <if test="communityIds != null and communityIds.size() >0">
+                AND community_id IN
+                <foreach collection="communityIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="unitIds != null and unitIds.length != 0 ">
+                AND id IN
+                <foreach collection="unitIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+
+            <if test="belongTo != null and belongTo != ''">
+                AND belong_to = #{belongTo}
+            </if>
+            <if test="choice != null and choice != ''">
+                AND belong_to = #{choice}
+            </if>
+
+        <if test=" null != yearTime and '' != yearTime">
+            AND `create_at` &lt;= concat(#{yearTime},'-12-31 59:59:59')
+        </if>
+
+        ) AS unitTotal,
+        (SELECT COUNT( id ) FROM com_pb_check_unit WHERE nature_name = '机关单位'
+            <if test="communityIds != null and communityIds.size() >0">
+                AND community_id IN
+                <foreach collection="communityIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="unitIds != null and unitIds.length != 0 ">
+                AND id IN
+                <foreach collection="unitIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="belongTo != null and belongTo != ''">
+                AND belong_to = #{belongTo}
+            </if>
+            <if test="choice != null and choice != ''">
+                AND belong_to = #{choice}
+            </if>
+        <if test=" null != yearTime and '' != yearTime">
+            AND `create_at` &lt;= concat(#{yearTime},'-12-31 59:59:59')
+        </if>
+
+        ) AS organTotal,
+        (SELECT COUNT( id ) FROM com_pb_check_unit WHERE nature_name = '企事业单位'
+            <if test="communityIds != null and communityIds.size() >0">
+                AND community_id IN
+                <foreach collection="communityIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="unitIds != null and unitIds.length != 0 ">
+                AND id IN
+                <foreach collection="unitIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="belongTo != null and belongTo != ''">
+                AND belong_to = #{belongTo}
+            </if>
+            <if test="choice != null and choice != ''">
+                AND belong_to = #{choice}
+            </if>
+        <if test=" null != yearTime and '' != yearTime">
+            AND `create_at` &lt;= concat(#{yearTime},'-12-31 59:59:59')
+        </if>
+        ) AS businessTotal,
+        (SELECT COUNT( m.id ) FROM com_pb_member m LEFT JOIN com_pb_check_unit as cpcu ON m.check_unit_id = cpcu.id WHERE m.audit_result = 1
+            <if test="communityIds != null and communityIds.size() >0">
+                AND m.community_id IN
+                <foreach collection="communityIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="unitIds != null and unitIds.length != 0 ">
+                AND cpcu.id IN
+                <foreach collection="unitIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="belongTo != null and belongTo != ''">
+                AND cpcu.belong_to = #{belongTo}
+            </if>
+            <if test="choice != null and choice != ''">
+                AND cpcu.belong_to = #{choice}
+            </if>
+        <if test=" null != yearTime and '' != yearTime">
+           AND cpcu.`create_at` &lt;= concat(#{yearTime},'-12-31 59:59:59')
+        </if>
+        ) AS partyMemberTotal
+    </select>
+    <select id="unitStatistics" resultType="com.panzhihua.common.model.vos.common.PbCheckUnitStatisticsVo">
+        SELECT temp.*,
+        (SELECT COUNT( id ) FROM com_pb_check_unit WHERE nature_name = '机关单位'
+
+            <if test="commonDto.communityIds != null and commonDto.communityIds.size() >0">
+                AND community_id IN
+                <foreach collection="commonDto.communityIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="commonDto.unitIds != null and commonDto.unitIds.length !=0">
+                AND id IN
+                <foreach collection="commonDto.unitIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+         AND belong_to = temp.belong_to
+            <if test=" null != commonDto.yearTime and '' != commonDto.yearTime">
+                AND `create_at` &lt;= concat(#{commonDto.yearTime},'-12-31 59:59:59')
+            </if>
+        ) AS organTotal,
+        (SELECT COUNT( id ) FROM com_pb_check_unit WHERE nature_name = '企事业单位'
+            <if test="commonDto.communityIds != null and commonDto.communityIds.size() >0">
+                AND community_id IN
+                <foreach collection="commonDto.communityIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="commonDto.unitIds != null and commonDto.unitIds.length !=0">
+                AND id IN
+                <foreach collection="commonDto.unitIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+        AND belong_to = temp.belong_to
+        <if test=" null != commonDto.yearTime and '' != commonDto.yearTime">
+            AND `create_at` &lt;= concat(#{commonDto.yearTime},'-12-31 59:59:59')
+        </if>
+            ) AS businessTotal,
+        (SELECT COUNT( m.id ) FROM com_pb_member m LEFT JOIN com_pb_check_unit as cpcu ON m.check_unit_id = cpcu.id WHERE m.audit_result = 1
+            <if test="commonDto.communityIds != null and commonDto.communityIds.size() >0">
+                AND m.community_id IN
+                <foreach collection="commonDto.communityIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="commonDto.unitIds != null and commonDto.unitIds.length !=0">
+                AND m.id IN
+                <foreach collection="commonDto.unitIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+         AND cpcu.belong_to = temp.belong_to
+        <if test=" null != commonDto.yearTime and '' != commonDto.yearTime">
+           AND cpcu.`create_at` &lt;= concat(#{commonDto.yearTime},'-12-31 59:59:59')
+        </if>
+            ) AS partyMemberTotal
+        FROM (SELECT belong_to,COUNT( id ) AS unitTotal FROM com_pb_check_unit WHERE 1=1
+        <if test=" null != commonDto.yearTime and '' != commonDto.yearTime">
+            AND `create_at` &lt;= concat(#{commonDto.yearTime},'-12-31 59:59:59')
+        </if>
+            <if test="commonDto.communityIds != null and commonDto.communityIds.size() >0">
+                AND community_id IN
+                <foreach collection="commonDto.communityIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="commonDto.unitIds != null and commonDto.unitIds.length !=0">
+                AND id IN
+                <foreach collection="commonDto.unitIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+        <if test="commonDto.belongTo != null and commonDto.belongTo != ''">
+            AND belong_to = #{commonDto.belongTo}
+        </if>
+        GROUP BY belong_to) temp
+    </select>
+    <select id="pbStatisticsTop" resultType="com.panzhihua.common.model.vos.common.PbCheckUnitStatisticsVo">
+        SELECT
+        (SELECT COUNT( m.id ) FROM com_pb_member m LEFT JOIN com_pb_check_unit as cpcu ON m.check_unit_id = cpcu.id WHERE m.audit_result = 1
+        AND cpcu.nature_name = '机关单位'
+        <if test="communityIds != null and communityIds.size() >0">
+            AND m.community_id IN
+            <foreach collection="communityIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="unitIds != null and unitIds.length !=0">
+            AND cpcu.id IN
+            <foreach collection="unitIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="belongTo != null and belongTo != ''">
+            AND cpcu.belong_to = #{belongTo}
+        </if>
+        <if test="choice != null and choice != ''">
+            AND cpcu.belong_to = #{choice}
+        </if>
+        <if test="checkUnitId != null">
+            AND m.check_unit_id = #{checkUnitId}
+        </if>
+        <if test=" null != yearTime and '' != yearTime">
+            AND cpcu.`create_at` &lt;= concat(#{yearTime},'-12-31 59:59:59')
+        </if>
+        ) AS organTotal,
+        (SELECT COUNT( m.id ) FROM com_pb_member m LEFT JOIN com_pb_check_unit as cpcu ON m.check_unit_id = cpcu.id WHERE m.audit_result = 1
+        AND cpcu.nature_name = '企事业单位'
+        <if test="communityIds != null and communityIds.size() >0">
+            AND m.community_id IN
+            <foreach collection="communityIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="unitIds != null and unitIds.length !=0">
+            AND cpcu.id IN
+            <foreach collection="unitIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="belongTo != null and belongTo != ''">
+            AND cpcu.belong_to = #{belongTo}
+        </if>
+        <if test="choice != null and choice != ''">
+            AND cpcu.belong_to = #{choice}
+        </if>
+        <if test="checkUnitId != null">
+            AND m.check_unit_id = #{checkUnitId}
+        </if>
+        <if test=" null != yearTime and '' != yearTime">
+            AND cpcu.`create_at` &lt;= concat(#{yearTime},'-12-31 59:59:59')
+        </if>
+        ) AS businessTotal,
+        (SELECT COUNT( m.id ) FROM com_pb_member m LEFT JOIN com_pb_check_unit as cpcu ON m.check_unit_id = cpcu.id WHERE m.audit_result = 1
+        <if test="communityIds != null and communityIds.size() >0">
+            AND m.community_id IN
+            <foreach collection="communityIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="unitIds != null and unitIds.length !=0">
+            AND cpcu.id IN
+            <foreach collection="unitIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="belongTo != null and belongTo != ''">
+            AND cpcu.belong_to = #{belongTo}
+        </if>
+        <if test="choice != null and choice != ''">
+            AND cpcu.belong_to = #{choice}
+        </if>
+        <if test="checkUnitId != null">
+            AND m.check_unit_id = #{checkUnitId}
+        </if>
+        <if test=" null != yearTime and '' != yearTime">
+            AND cpcu.`create_at` &lt;= concat(#{yearTime},'-12-31 59:59:59')
+        </if>
+        ) AS partyMemberTotal
+    </select>
+    <select id="pbStatisticsBelong" resultType="com.panzhihua.common.model.vos.common.PbCheckUnitStatisticsVo">
+        SELECT temp.*,
+        (SELECT COUNT( m.id ) FROM com_pb_member m LEFT JOIN com_pb_check_unit as cpcu ON m.check_unit_id = cpcu.id WHERE m.audit_result = 1
+            <if test="commonDto.communityIds != null and commonDto.communityIds.size() >0">
+                AND m.community_id IN
+                <foreach collection="commonDto.communityIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="commonDto.unitIds != null and commonDto.unitIds.length !=0">
+                AND cpcu.id IN
+                <foreach collection="commonDto.unitIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+        <if test=" null != commonDto.yearTime and '' != commonDto.yearTime">
+            and  m.`create_at` &lt;= concat(#{commonDto.yearTime},'-12-31 59:59:59')
+        </if>
+         AND m.check_unit_id is not null AND cpcu.nature_name = '机关单位' AND cpcu.belong_to = temp.belong_to) AS organTotal,
+        (SELECT COUNT( m.id ) FROM com_pb_member m LEFT JOIN com_pb_check_unit as cpcu ON m.check_unit_id = cpcu.id WHERE m.audit_result = 1
+            <if test="commonDto.communityIds != null and commonDto.communityIds.size() >0">
+                AND m.community_id IN
+                    <foreach collection="commonDto.communityIds" item="item" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
+                </if>
+            <if test="commonDto.unitIds != null and commonDto.unitIds.length !=0">
+                AND cpcu.id IN
+                <foreach collection="commonDto.unitIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+        <if test=" null != commonDto.yearTime and '' != commonDto.yearTime">
+            and  m.`create_at` &lt;= concat(#{commonDto.yearTime},'-12-31 59:59:59')
+        </if>
+        AND cpcu.nature_name = '企事业单位' AND cpcu.belong_to = temp.belong_to) AS businessTotal
+        FROM (SELECT cpcu.belong_to,COUNT( m.id ) AS partyMemberTotal FROM com_pb_member m LEFT JOIN com_pb_check_unit as cpcu ON m.check_unit_id = cpcu.id WHERE m.audit_result = 1
+            <if test="commonDto.communityIds != null and commonDto.communityIds.size() >0">
+                AND m.community_id IN
+                <foreach collection="commonDto.communityIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="commonDto.unitIds != null and commonDto.unitIds.length !=0">
+                AND cpcu.id IN
+                <foreach collection="commonDto.unitIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+        <if test="commonDto.belongTo != null and commonDto.belongTo != ''">
+            AND cpcu.belong_to = #{commonDto.belongTo}
+        </if>
+        <if test=" null != commonDto.yearTime and '' != commonDto.yearTime">
+            and  m.`create_at` &lt;= concat(#{commonDto.yearTime},'-12-31 59:59:59')
+        </if>
+        GROUP BY belong_to) temp
+    </select>
+    <select id="pbStatisticsUnit" resultType="com.panzhihua.common.model.vos.common.ComPbCheckUnitVo">
+        SELECT
+        cpcu.id,
+        cpcu.`name`,
+        cpcu.nature_name,
+        cpcu.belong_to,
+        cpcu.help_community_name,
+        cpcu.village_name,
+        COUNT( m.id ) AS count
+        FROM
+        com_pb_member m
+        LEFT JOIN com_pb_check_unit AS cpcu ON m.check_unit_id = cpcu.id
+        WHERE
+        m.audit_result = 1
+        <if test="commonDto.communityIds != null and commonDto.communityIds.size() >0">
+            AND m.community_id IN
+            <foreach collection="commonDto.communityIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="commonDto.unitIds != null and commonDto.unitIds.length !=0">
+            AND cpcu.id IN
+            <foreach collection="commonDto.unitIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="commonDto.belongTo != null and commonDto.belongTo != ''">
+            AND cpcu.belong_to = #{commonDto.belongTo}
+        </if>
+        GROUP BY
+        cpcu.`name`
+    </select>
+
+    <select id="organSumIntegral" resultType="java.lang.Integer">
+        SELECT sum(csr.pb_reward_integral) as organSumIntegral from (
+             SELECT cm.user_id , cu.community_id   FROM com_pb_check_unit cu inner JOIN com_pb_member cm on cm.check_unit_id = cu.id
+              where
+               cm.user_id is not null
+                and cu.community_id is not null
+        <if test="communityIds != null and communityIds.size() >0">
+            AND cu.community_id IN
+            <foreach collection="communityIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test=" null != yearTime and '' != yearTime">
+           AND cu.`create_at` &lt;= concat(#{yearTime},'-12-31 59:59:59')
+        </if>
+                   GROUP BY  cm.user_id , cu.community_id
+                 ) as cum INNER JOIN (
+            SELECT ccc.*  FROM com_act_act_regist as cr INNER JOIN (
+                select ca.community_id ,cs.user_id,cs.activity_id,ca.pb_reward_integral
+                FROM com_act_activity ca LEFT JOIN com_act_act_sign cs on cs.activity_id = ca.id  WHERE cs.`status` = '1'  and ca.have_integral_reward = '1'
+                ORDER BY  cs.user_id DESC
+            ) as ccc on cr.activity_id = ccc.activity_id and cr.user_id = ccc.user_id
+        ) as csr  on  csr.community_id = cum.community_id and csr.user_id = cum.user_id
+
+    </select>
+    <select id="pbOrganSumIntegral" resultType="java.lang.Integer">
+        SELECT sum(csr.pb_reward_integral) as organSumIntegral from (
+        SELECT cm.user_id , cu.community_id   FROM com_pb_check_unit cu inner JOIN com_pb_member cm on cm.check_unit_id = cu.id
+        where
+        cm.user_id is not null
+        and cu.community_id is not null
+        <if test="communityIds != null and communityIds.size() >0">
+            AND cu.community_id IN
+            <foreach collection="communityIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test=" null != yearTime and '' != yearTime">
+             AND cm.`create_at` &lt;= concat(#{yearTime},'-12-31 59:59:59')
+        </if>
+        GROUP BY  cm.user_id , cu.community_id
+        ) as cum INNER JOIN (
+        SELECT ccc.*  FROM com_act_act_regist as cr INNER JOIN (
+        select ca.community_id ,cs.user_id,cs.activity_id,ca.pb_reward_integral
+        FROM com_act_activity ca LEFT JOIN com_act_act_sign cs on cs.activity_id = ca.id  WHERE cs.`status` = '1'  and ca.have_integral_reward = '1'
+        ORDER BY  cs.user_id DESC
+        ) as ccc on cr.activity_id = ccc.activity_id and cr.user_id = ccc.user_id
+        ) as csr  on  csr.community_id = cum.community_id and csr.user_id = cum.user_id
+
+    </select>
+
+
+    <select id="selectOrgAdmin" resultType="Integer">
+        select count(*) from com_pb_check_unit where admin_phone like concat('%',#{phone},'%')
+    </select>
+
+
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComPbDynMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComPbDynMapper.xml
new file mode 100644
index 0000000..bbe91e1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComPbDynMapper.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_dangjian.dao.ComPbDynDAO">
+
+    <resultMap type="com.panzhihua.service_dangjian.model.dos.ComPbDynDO" id="ComPbOrgMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="title" column="title"/>
+        <result property="status" column="status"/>
+        <result property="publishAt" column="publish_at"/>
+        <result property="cover" column="cover"/>
+        <result property="createAt" column="create_at"/>
+        <result property="content" column="content"/>
+        <result property="createBy" column="create_by"/>
+        <result property="type" column="type"/>
+        <result property="communityId" column="community_id"/>
+        <result property="dynType" column="dyn_type"/>
+        <result property="coverMode" column="cover_mode"/>
+        <result property="jumpUrl" column="jump_url"/>
+        <result property="jumpType" column="jump_type"/>
+        <result property="policyType" column="policy_type"/>
+    </resultMap>
+    <select id="pageYnamic" resultType="com.panzhihua.common.model.vos.partybuilding.west.PartyBuildingComPbDynVO">
+        SELECT
+        d.id,
+        d.title, d.jump_url, d.jump_type,
+        COUNT( u.id ) readingVolume,
+        d.`status`,
+        d.publish_at,
+        d.content,
+        d.cover,
+        d.cover_mode,
+        d.dyn_type,
+        d.create_at,t.name as communityName,d.policy_type
+        FROM
+        com_pb_dyn d
+        LEFT JOIN com_pb_dyn_user u ON d.id = u.dyn_id left join com_act t on d.community_id = t.community_id
+        where d.type=#{partyBuildingComPbDynVO.type}
+        <if test='partyBuildingComPbDynVO.communityIds != null and partyBuildingComPbDynVO.communityIds.size() > 0 '>
+            and d.community_id in
+            <foreach item="item" collection="partyBuildingComPbDynVO.communityIds" separator="," open="(" close=")"
+                     index="index">
+                #{item}
+            </foreach>
+        </if>
+        <if test='partyBuildingComPbDynVO.dynType != null and partyBuildingComPbDynVO.dynType != 0'>
+            and d.dyn_type = #{partyBuildingComPbDynVO.dynType}
+        </if>
+        <if test='partyBuildingComPbDynVO.policyType != null and partyBuildingComPbDynVO.policyType != 0'>
+            and d.policy_type = #{partyBuildingComPbDynVO.policyType}
+        </if>
+        <if test='partyBuildingComPbDynVO.policyType == 0'>
+            and d.policy_type is not null
+        </if>
+        <if test='partyBuildingComPbDynVO.title != null and partyBuildingComPbDynVO.title.trim() != &quot;&quot;'>
+            and d.title like concat(#{partyBuildingComPbDynVO.title},'%')
+        </if>
+        <if test='partyBuildingComPbDynVO.status != null and partyBuildingComPbDynVO.status != 0'>
+            AND d.`status` = #{partyBuildingComPbDynVO.status}
+        </if>
+        <if test='partyBuildingComPbDynVO.publishAtBegin != null '>
+            AND d.publish_at BETWEEN #{partyBuildingComPbDynVO.publishAtBegin} AND #{partyBuildingComPbDynVO.publishAtEnd}
+        </if>
+            GROUP BY d.id
+            ORDER BY d.publish_at
+        <if test="partyBuildingComPbDynVO.sort !=null and partyBuildingComPbDynVO.sort !=&quot;&quot;">asc</if>
+        <if test='partyBuildingComPbDynVO.sort ==null'>desc</if>
+    </select>
+
+
+
+    <select id="pageYnamics" resultType="com.panzhihua.common.model.vos.partybuilding.PartyBuildingComPbDynVO">
+        SELECT
+        d.id,
+        d.title, d.jump_url, d.jump_type,
+        COUNT( u.id ) readingVolume,
+        d.`status`,
+        d.publish_at,
+        d.content,
+        d.cover,
+        d.cover_mode,
+        d.dyn_type,
+        d.create_at,t.name as communityName,d.policy_type
+        FROM
+        com_pb_dyn d
+        LEFT JOIN com_pb_dyn_user u ON d.id = u.dyn_id left join com_act t on d.community_id = t.community_id
+        where d.type=#{partyBuildingComPbDynVO.type}
+        <if test='partyBuildingComPbDynVO.communityIds != null and partyBuildingComPbDynVO.communityIds.size() > 0 '>
+            and d.community_id in
+            <foreach item="item" collection="partyBuildingComPbDynVO.communityIds" separator="," open="(" close=")"
+                     index="index">
+                #{item}
+            </foreach>
+        </if>
+        <if test='partyBuildingComPbDynVO.dynType != null and partyBuildingComPbDynVO.dynType != 0'>
+            and d.dyn_type = #{partyBuildingComPbDynVO.dynType}
+        </if>
+        <if test='partyBuildingComPbDynVO.policyType != null and partyBuildingComPbDynVO.policyType != 0'>
+            and d.policy_type = #{partyBuildingComPbDynVO.policyType}
+        </if>
+        <if test='partyBuildingComPbDynVO.policyType == 0'>
+            and d.policy_type is not null
+        </if>
+        <if test='partyBuildingComPbDynVO.title != null and partyBuildingComPbDynVO.title.trim() != &quot;&quot;'>
+            and d.title like concat(#{partyBuildingComPbDynVO.title},'%')
+        </if>
+        <if test='partyBuildingComPbDynVO.status != null and partyBuildingComPbDynVO.status != 0'>
+            AND d.`status` = #{partyBuildingComPbDynVO.status}
+        </if>
+        <if test='partyBuildingComPbDynVO.publishAtBegin != null '>
+            AND d.publish_at BETWEEN #{partyBuildingComPbDynVO.publishAtBegin} AND #{partyBuildingComPbDynVO.publishAtEnd}
+        </if>
+        GROUP BY d.id
+        ORDER BY d.publish_at
+        <if test="partyBuildingComPbDynVO.sort !=null and partyBuildingComPbDynVO.sort !=&quot;&quot;">asc</if>
+        <if test='partyBuildingComPbDynVO.sort ==null'>desc</if>
+    </select>
+
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComPbMemberMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComPbMemberMapper.xml
new file mode 100644
index 0000000..acac963
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComPbMemberMapper.xml
@@ -0,0 +1,794 @@
+<?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_dangjian.dao.ComPbMemberDAO">
+
+    <resultMap type="com.panzhihua.service_dangjian.model.dos.ComPbMemberDO" id="ComPbMemberMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="orgId" column="org_id" jdbcType="INTEGER"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="idCard" column="id_card" jdbcType="VARCHAR"/>
+        <result property="photoPath" column="photo_path" jdbcType="VARCHAR"/>
+        <result property="joinTime" column="join_time" jdbcType="TIMESTAMP"/>
+        <result property="employmentTime" column="employment_time" jdbcType="TIMESTAMP"/>
+        <result property="auditResult" column="audit_result" jdbcType="INTEGER"/>
+        <result property="createAt" column="create_at" jdbcType="TIMESTAMP"/>
+        <result property="updateAt" column="update_at" jdbcType="TIMESTAMP"/>
+        <result property="communityId" column="community_id" jdbcType="INTEGER"/>
+        <result property="userId" column="user_id" jdbcType="INTEGER"/>
+        <result property="refuseReason" column="refuse_reason" jdbcType="VARCHAR"/>
+        <result property="phone" column="phone" jdbcType="VARCHAR"/>
+        <result property="type" column="type" jdbcType="INTEGER"/>
+        <result property="position" column="position" jdbcType="VARCHAR"/>
+        <result property="checkUnitId" column="check_unit_id" jdbcType="INTEGER"/>
+        <result property="function" column="function" jdbcType="VARCHAR"/>
+        <result property="specialtyCategory" column="specialty_category" jdbcType="INTEGER"/>
+        <result property="specialtyName" column="specialty_name" jdbcType="VARCHAR"/>
+        <result property="positionTwo" column="position_two" jdbcType="VARCHAR"/>
+        <result property="otherRemark" column="other_remark" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <!--查询单个-->
+    <select id="queryById" resultType="com.panzhihua.common.model.vos.partybuilding.PartyBuildingMemberVO">
+        select
+        m.id, m.org_id, m.name, m.id_card, m.photo_path, m.join_time, m.employment_time, m.audit_result, m.create_at, m.update_at,
+        m.community_id, m.user_id, m.refuse_reason, m.phone, m.type, m.position, m.check_unit_id, m.function, m.specialty_category,
+        m.specialty_name, m.position_two, o.`name` orgName,cpcu.name as checkUnitName,
+        TIMESTAMPDIFF(
+        YEAR,
+        m.employment_time,
+        DATE_FORMAT( NOW(), '%Y-%m-%d' )) as partyAge,
+        CASE
+
+        WHEN u.id_card IS NULL THEN
+        '未注册' ELSE '已注册'
+        END status
+        from com_pb_member as m
+        LEFT JOIN sys_user u ON m.id_card = u.id_card
+        LEFT JOIN com_pb_org o ON m.org_id = o.id
+        LEFT JOIN com_pb_check_unit as cpcu ON m.check_unit_id = cpcu.id
+        where m.id = #{id}
+    </select>
+
+    <!--查询指定行数据-->
+    <select id="queryAllByLimit" resultType="com.panzhihua.common.model.vos.partybuilding.PartyBuildingMemberVO">
+        select
+        m.id, m.org_id, m.name, m.id_card, m.photo_path, m.join_time, m.employment_time, m.audit_result, m.create_at, m.update_at,
+        m.community_id, m.user_id, m.refuse_reason, m.phone, m.type, m.position, m.check_unit_id, m.function, m.specialty_category,
+        m.specialty_name, m.position_two, m.org_name,cpcu.name as checkUnitName,t2.partyTime,t2.partyInterval,cmv.name as villageName,ca.name as communityName,cpcu.belong_to,
+        TIMESTAMPDIFF(
+        YEAR,
+        m.employment_time,
+        DATE_FORMAT( NOW(), '%Y-%m-%d' )) as partyAge,
+        su.nick_name
+        from com_pb_member as m
+        LEFT JOIN com_pb_org o ON m.org_id = o.id
+        LEFT JOIN sys_user su ON m.user_id = su.user_id
+        LEFT JOIN com_pb_check_unit as cpcu ON m.check_unit_id = cpcu.id
+        LEFT JOIN com_mng_village cmv on m.village_id = cmv.village_id
+        LEFT JOIN com_act ca on m.community_id = ca.community_id
+        LEFT JOIN (select t1.user_id,sum(t.duration) as partyTime,sum(t1.award) as partyInterval  from com_act_activity t LEFT JOIN com_act_act_regist t1 on t.id = t1.activity_id where t1.sign_identity = 2
+        <if test="dto.startTime !=null">
+            and t.begin_at between #{dto.startTime} and #{dto.endTime}
+        </if>
+        GROUP BY t1.user_id ) t2 on m.user_id = t2.user_id
+        <where>
+            and m.audit_result = 1
+            <if test='dto.orgName != null and dto.orgName != &quot;&quot;'>
+                and cpcu.org_name like concat(#{dto.orgName},'%')
+            </if>
+            <if test='dto.orgId != null'>
+               and o.id = #{dto.orgId}
+            </if>
+            <if test='dto.account != null and dto.account != &quot;&quot;'>
+                and su.account like concat (#{dto.account},'%')
+            </if>
+            <if test="dto.ids != null and dto.ids.length != 0">
+                and cpcu.id IN
+                <foreach collection="dto.ids" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test='dto.name != null and dto.name != &quot;&quot;'>
+                and m.name like concat (#{dto.name},'%')
+            </if>
+            <if test="dto.orgId != null">
+                and m.org_id = #{dto.orgId}
+            </if>
+            <if test="dto.communityIds != null and dto.communityIds.size() >0">
+                and m.community_id IN
+                <foreach collection="dto.communityIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+
+            <if test="dto.keyWord != null and dto.keyWord != ''">
+                and (m.name like concat ('%',#{dto.keyWord},'%') or
+                m.phone like concat ('%',#{dto.keyWord},'%') or
+                cpcu.name like concat ('%',#{dto.keyWord},'%') or ca.name like concat ('%',#{dto.keyWord},'%')
+                )
+            </if>
+            <if test="dto.type != null">
+                and m.type = #{dto.type}
+            </if>
+            <if test="dto.checkUnitId != null">
+                and m.check_unit_id = #{dto.checkUnitId}
+            </if>
+            <if test="dto.specialtyName != null and dto.specialtyName !=''">
+                and m.specialty_name like concat('%',#{dto.specialtyName},'%')
+            </if>
+            <if test="dto.belongTo !=null and dto.belongTo !=''">
+                and cpcu.belong_to = #{dto.belongTo}
+            </if>
+            <if test="dto.natureName !=null and dto.natureName !=''">
+                and cpcu.nature_name = #{dto.natureName}
+            </if>
+            <if test="dto.isRegister !=null">
+                <if test="dto.isRegister == 1">
+                    and m.user_id IS NOT NULL
+                </if>
+                <if test="dto.isRegister == 0">
+                    and m.user_id IS NULL
+                </if>
+            </if>
+        </where>
+        order by m.create_at desc
+    </select>
+
+    <select id="exportPartyMemberList" resultType="com.panzhihua.common.model.vos.PartyMemberListExcelVO">
+        select
+        m.id, m.org_id, m.name, m.id_card, m.photo_path, m.join_time, m.employment_time, m.audit_result, m.create_at, m.update_at,
+        m.community_id, m.user_id, m.refuse_reason, m.phone, m.type, m.position, m.check_unit_id, m.function, m.specialty_category,
+        m.specialty_name, m.position_two, m.org_name,cpcu.name as checkUnitName,t2.partyTime,t2.partyInterval,cmv.name as villageName,
+               ca.name as communityName,cpcu.belong_to,cpcu.help_community_name,m.phone,
+        TIMESTAMPDIFF(
+        YEAR,
+        m.employment_time,
+        DATE_FORMAT( NOW(), '%Y-%m-%d' )) as partyAge
+        from com_pb_member as m
+        LEFT JOIN com_pb_org o ON m.org_id = o.id
+        LEFT JOIN com_pb_check_unit as cpcu ON m.check_unit_id = cpcu.id
+        LEFT JOIN com_mng_village cmv on m.village_id = cmv.village_id
+        LEFT JOIN com_act ca on m.community_id = ca.community_id
+        LEFT JOIN (select t1.user_id,sum(t.duration) as partyTime,sum(t1.award) as partyInterval  from com_act_activity t LEFT JOIN com_act_act_regist t1 on t.id = t1.activity_id where t1.sign_identity = 2
+        <if test="dto.startTime !=null">
+            and t.begin_at between #{dto.startTime} and #{dto.endTime}
+        </if>
+        GROUP BY t1.user_id ) t2 on m.user_id = t2.user_id
+        <where>
+            and m.audit_result = 1
+            <if test='dto.orgName != null and dto.orgName != &quot;&quot;'>
+                and o.name like concat(#{dto.orgName},'%')
+            </if>
+            <if test='dto.orgId != null'>
+                and o.id = #{dto.orgId}
+            </if>
+            <if test='dto.account != null and dto.account != &quot;&quot;'>
+                and m.phone like concat (#{dto.account},'%')
+            </if>
+            <if test='dto.name != null and dto.name != &quot;&quot;'>
+                and m.name like concat (#{dto.name},'%')
+            </if>
+            <if test="dto.orgId != null">
+                and m.org_id = #{dto.orgId}
+            </if>
+            <if test="dto.communityId != null and dto.communityId !=0">
+                and m.community_id = ${dto.communityId}
+            </if>
+            <if test="dto.keyWord != null and dto.keyWord != ''">
+                and (m.name like concat ('%',#{dto.keyWord},'%') or
+                m.phone like concat ('%',#{dto.keyWord},'%') or
+                cpcu.name like concat ('%',#{dto.keyWord},'%') or ca.name like concat ('%',#{dto.keyWord},'%')
+                )
+            </if>
+            <if test="dto.type != null">
+                and m.type = #{dto.type}
+            </if>
+            <if test="dto.checkUnitId != null">
+                and m.check_unit_id = #{dto.checkUnitId}
+            </if>
+            <if test="dto.specialtyName != null and dto.specialtyName !=''">
+                and m.specialty_name like concat('%',#{dto.specialtyName},'%')
+            </if>
+            <if test="dto.belongTo !=null and dto.belongTo !=''">
+                and cpcu.belong_to = #{dto.belongTo}
+            </if>
+        </where>
+        order by m.create_at desc
+    </select>
+
+    <select id="pagePartyBuildingMembersVO" resultType="com.panzhihua.common.model.vos.partybuilding.PartyBuildingMemberVO">
+        select
+        m.id, m.org_id, m.name, m.id_card, m.photo_path, m.join_time, m.employment_time, m.audit_result, m.create_at, m.update_at,
+        m.community_id, m.user_id, m.refuse_reason, m.phone, m.type, m.position, m.check_unit_id, m.function, m.specialty_category,
+        m.specialty_name, m.position_two, o.`name` orgName,cpcu.name as checkUnitName,
+        TIMESTAMPDIFF(
+        YEAR,
+        m.employment_time,
+        DATE_FORMAT( NOW(), '%Y-%m-%d' )) as partyAge,
+        CASE
+
+        WHEN u.id_card IS NULL THEN
+        '未注册' ELSE '已注册'
+        END status
+        from com_pb_member as m
+        LEFT JOIN sys_user u ON m.id_card = u.id_card AND u.`type` = 1 and m.community_id =u.community_id
+        LEFT JOIN com_pb_org o ON m.org_id = o.id
+        LEFT JOIN com_pb_check_unit as cpcu on cpcu.id = m.check_unit_id
+        WHERE
+            m.audit_result IN ( 0, 3 )
+        <if test='pagePartyBuildingMemberVO.phone != null and pagePartyBuildingMemberVO.phone != &quot;&quot;'>
+            and u.phone LIKE CONCAT('%',#{pagePartyBuildingMemberVO.phone},'%')
+        </if>
+        <if test='pagePartyBuildingMemberVO.name != null and pagePartyBuildingMemberVO.name != &quot;&quot;'>
+            and u.name like concat ('%',#{pagePartyBuildingMemberVO.name},'%')
+        </if>
+        <if test='pagePartyBuildingMemberVO.auditStatus != null'>
+            and m.audit_result = #{pagePartyBuildingMemberVO.auditStatus}
+        </if>
+        <if test='pagePartyBuildingMemberVO.communityId != null'>
+            and m.community_id = ${pagePartyBuildingMemberVO.communityId}
+        </if>
+    </select>
+
+    <select id="pageDataStatisticsMember" resultType="com.panzhihua.common.model.vos.partybuilding.ComDataStatisticsMemberVo">
+        SELECT
+            cpm.id,
+            cpm.`name`,
+            cpm.photo_path,
+            cpm.type,
+            cpm.`function`,
+            cpm.specialty_category,
+            cpm.specialty_name,
+            cpm.position,
+            cpm.position_two,
+            cpm.id_card,
+            cpm.phone,
+            cpm.check_unit_id,
+            t1.user_id,
+            cpcu.`name` AS checkUnitName,
+            cpm.org_id,
+            cpm.community_id,
+            cpo.`name` AS orgName,
+            YEAR (
+                from_days(
+                datediff( now( ), cpm.join_time ))) AS partyAge,
+            (select count(id) from com_pb_member_role where id_card = cpm.id_card) as isRole
+        FROM
+            com_pb_member AS cpm
+            LEFT JOIN com_pb_check_unit AS cpcu ON cpcu.id = cpm.check_unit_id
+            LEFT JOIN com_pb_org AS cpo ON cpo.id = cpm.org_id
+            LEFT JOIN sys_user t1 on cpm.id_card = t1.id_card and t1.type=1
+            <where>
+                and cpm.audit_result = 1
+                <if test="dto.communityId != null">
+                    and cpm.community_id = #{dto.communityId}
+                </if>
+
+                <if test="dto.keyWord != null and dto.keyWord !=''">
+                    and (
+                    cpm.`name` like concat (#{dto.keyWord},'%') or
+                    cpm.`id_card` = #{dto.keyWord} or
+                    cpm.`phone` like concat (#{dto.keyWord},'%') or
+                    cpcu.`name` like concat (#{dto.keyWord},'%') or
+                    cpo.`name` like concat (#{dto.keyWord},'%')
+                    )
+                </if>
+                <if test="dto.month !=null and dto.month !=''">
+                    and (cpm.create_at >= DATE_FORMAT(  CONCAT(#{dto.month},'-00-00'), '%Y-00-00 00:00:00') and DATE_FORMAT(  CONCAT(#{dto.month},'-12-31'), '%Y-12-31 23:59:59') >= cpm.create_at)
+                </if>
+            </where>
+            order by cpm.create_at desc
+    </select>
+
+    <select id="getMemberStatistics" resultType="com.panzhihua.common.model.vos.partybuilding.ComDataStatisticsMemberVo">
+        SELECT
+            count( cpam.id ) AS partyActivityCount,
+            IFNULL(( SELECT integral_available_party FROM com_act_integral_user WHERE user_id = #{userId} AND community_id = #{communityId} ), 0 ) AS partyActivityIntegral,
+            IFNULL(( SELECT integral_available_volunteer FROM com_act_integral_user WHERE user_id = #{userId} AND community_id = #{communityId} ), 0 ) AS volunteerActivityIntegral,
+            ( SELECT count( caas.id ) FROM com_act_act_regist AS caas
+            LEFT JOIN com_act_activity AS caa ON caa.id = caas.activity_id
+            WHERE caas.user_id = #{userId} and caas.type = 1 and caa.type = 1 and caa.community_id = #{communityId}
+            ) AS volunteerActivityCount,
+            IFNULL((
+                SELECT
+                    sum( caa.duration )
+                FROM
+                    com_act_act_regist AS caas
+                    LEFT JOIN com_act_activity AS caa ON caa.id = caas.activity_id
+                WHERE
+                    caas.user_id = #{userId} and caas.type = 1 and caa.type = 1 and caa.community_id = #{communityId}
+                    ),
+                0
+            ) AS volunteerActivityDuration,
+            IFNULL((
+                       SELECT
+                           sum( caa.duration )
+                       FROM
+                           com_act_act_regist AS caas
+                               LEFT JOIN com_act_activity AS caa ON caa.id = caas.activity_id
+                       WHERE
+                           caas.user_id = #{userId} and caas.type = 3 and caas.end_time is not null and caa.type = 3 and caa.community_id = #{communityId}
+                   ),
+                   0
+                ) AS partyActivityDuration,
+            ( SELECT count( id ) FROM com_act_micro_wish WHERE sponsor_id = #{userId} AND `status` = 6 AND community_id = #{communityId} ) AS wishCount,
+            ( SELECT count( id ) FROM com_act_easy_photo WHERE sponsor_id = #{userId} AND `status` = 4 AND community_id = #{communityId} ) AS easyCount
+        FROM
+            com_act_act_regist AS cpam
+            LEFT JOIN com_act_activity AS caa ON caa.id = cpam.activity_id
+        WHERE
+            cpam.user_id = #{userId} and caa.type = 3 and cpam.end_time is not null
+    </select>
+
+    <select id="getOrgDataStatistics" resultType="com.panzhihua.common.model.vos.partybuilding.ComDataStatisticsOrgVo">
+        SELECT
+            count( id ) AS tyNum,
+            ( SELECT count( id ) FROM com_pb_member WHERE audit_result = 1 AND community_id = #{communityId} AND specialty_category = 2
+                <if test="orgIds != null and orgIds.size > 0">
+                    AND org_id in
+                    <foreach collection="orgIds" item="item" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
+                </if>
+            ) AS wdNum,
+            ( SELECT count( id ) FROM com_pb_member WHERE audit_result = 1 AND community_id = #{communityId} AND specialty_category = 3
+                <if test="orgIds != null and orgIds.size > 0">
+                    AND org_id in
+                    <foreach collection="orgIds" item="item" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
+                </if>
+            ) AS yyNum,
+            ( SELECT count( id ) FROM com_pb_member WHERE audit_result = 1 AND community_id = #{communityId} AND specialty_category = 4
+        <if test="orgIds != null and orgIds.size > 0">
+            AND org_id in
+            <foreach collection="orgIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+            ) AS msNum,
+            ( SELECT count( id ) FROM com_pb_member WHERE audit_result = 1 AND community_id = #{communityId} AND specialty_category = 5
+        <if test="orgIds != null and orgIds.size > 0">
+            AND org_id in
+            <foreach collection="orgIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+            ) AS qtNum,
+            ( SELECT count( id ) FROM com_pb_member WHERE audit_result = 1 AND community_id = #{communityId} AND specialty_category IS NULL
+        <if test="orgIds != null and orgIds.size > 0">
+            AND org_id in
+            <foreach collection="orgIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+            ) AS wuNum,
+            ( SELECT count( id ) FROM com_pb_member WHERE audit_result = 1 AND community_id = #{communityId} AND type = 1
+        <if test="orgIds != null and orgIds.size > 0">
+            AND org_id in
+            <foreach collection="orgIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+            ) AS preparePartyMemberNum,
+            ( SELECT count( id ) FROM com_pb_member WHERE audit_result = 1 AND community_id = #{communityId} AND type = 2
+        <if test="orgIds != null and orgIds.size > 0">
+            AND org_id in
+            <foreach collection="orgIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+            ) AS formalPartyMemberNum,
+            ( SELECT count( id ) FROM com_pb_member WHERE audit_result = 1 AND community_id = #{communityId}
+        <if test="orgIds != null and orgIds.size > 0">
+            AND org_id in
+            <foreach collection="orgIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+            ) AS partyMemberNum
+        FROM
+            com_pb_member
+        WHERE
+            audit_result = 1
+            AND community_id = #{communityId}
+            AND specialty_category = 1
+        <if test="orgIds != null and orgIds.size > 0">
+            AND org_id in
+            <foreach collection="orgIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+    </select>
+
+    <select id="getOrgDataStatisticsLeftDown" resultType="com.panzhihua.common.model.vos.partybuilding.ComDataStatisticsOrgVo">
+        SELECT
+            count( caas1.id ) AS participateVolunteerActivityNum,
+            (
+            SELECT
+                IFNULL( sum( caa.duration ), 0 )
+            FROM
+                com_act_act_sign AS caas
+                LEFT JOIN com_act_activity AS caa ON caa.id = caas.activity_id
+            WHERE
+                caas.`status` = 1
+                AND caa.type = 1
+                AND caas.user_id IN ( SELECT t1.user_id FROM com_pb_member t left join sys_user t1 on t.id_card=t1.id_card WHERE audit_result = 1 AND t.community_id = #{communityId} AND t1.type=1
+        <if test="orgIds != null and orgIds.size > 0">
+            AND org_id in
+            <foreach collection="orgIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+                )
+                AND caas.create_at BETWEEN #{startTime}
+                AND #{endTime}
+            ) AS participateVolunteerActivityDuration,
+        (
+        SELECT
+        IFNULL( sum( caa3.duration ), 0 )
+        FROM
+        com_act_act_sign AS caas3
+        LEFT JOIN com_act_activity AS caa3 ON caa3.id = caas3.activity_id
+        WHERE
+        caas3.`status` = 1
+        AND caa3.type = 3
+        AND caas3.user_id IN ( SELECT t1.user_id FROM com_pb_member t left join sys_user t1 on t.id_card=t1.id_card WHERE audit_result = 1 AND t.community_id = #{communityId} AND t1.type=1
+        <if test="orgIds != null and orgIds.size > 0">
+            AND org_id in
+            <foreach collection="orgIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        )
+        AND caas3.create_at BETWEEN #{startTime}
+        AND #{endTime}
+        ) AS participatePartyActivityDuration,
+        (
+        SELECT
+        IFNULL( sum( caa4.duration ), 0 )
+        FROM
+        com_act_act_sign AS caas4
+        LEFT JOIN com_act_activity AS caa4 ON caa4.id = caas4.activity_id
+        WHERE
+        caas4.`status` = 1 and (caa4.type = 1 or caa4.type = 3)
+        AND caas4.user_id IN ( SELECT t1.user_id FROM com_pb_member t left join sys_user t1 on t.id_card=t1.id_card WHERE audit_result = 1 AND t.community_id = #{communityId} AND t1.type=1
+        <if test="orgIds != null and orgIds.size > 0">
+            AND org_id in
+            <foreach collection="orgIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        )
+        AND caas4.create_at BETWEEN #{startTime}
+        AND #{endTime}
+        ) AS participateActivityDuration,
+            (
+            SELECT
+                count( caas2.id )
+            FROM
+                com_act_act_sign as caas2
+                left join com_act_activity as caa2 on caa2.id = caas2.activity_id
+            WHERE
+                caas2.`status` = 1 and caa2.type = 3
+            AND caas2.user_id IN ( SELECT t1.user_id FROM com_pb_member t left join sys_user t1 on t.id_card=t1.id_card WHERE audit_result = 1 AND t.community_id = #{communityId} AND t1.type=1
+            <if test="orgIds != null and orgIds.size > 0">
+                AND org_id in
+                <foreach collection="orgIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            )
+            AND caas2.create_at BETWEEN #{startTime}
+            AND #{endTime}
+            ) AS participatePartyActivityNum,
+        (
+        SELECT
+        count( caas5.id )
+        FROM
+        com_act_act_sign as caas5
+        left join com_act_activity as caa5 on caa5.id = caas5.activity_id
+        WHERE
+        caas5.`status` = 1 and (caa5.type = 1 or caa5.type = 3)
+        AND caas5.user_id IN ( SELECT t1.user_id FROM com_pb_member t left join sys_user t1 on t.id_card=t1.id_card WHERE audit_result = 1 AND t.community_id = #{communityId} AND t1.type=1
+        <if test="orgIds != null and orgIds.size > 0">
+            AND org_id in
+            <foreach collection="orgIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        )
+        AND caas5.create_at BETWEEN #{startTime}
+        AND #{endTime}
+        ) AS participateActivityNum
+        FROM
+            com_act_act_sign as caas1
+            left join com_act_activity as caa1 on caa1.id = caas1.activity_id
+        WHERE
+        caas1.`status` = 1 and caa1.type = 1
+            AND caas1.user_id IN ( SELECT t1.user_id FROM com_pb_member t left join sys_user t1 on t.id_card=t1.id_card WHERE audit_result = 1 AND t.community_id = #{communityId} AND t1.type=1
+        <if test="orgIds != null and orgIds.size > 0">
+            AND org_id in
+            <foreach collection="orgIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+            )
+            AND caas1.create_at BETWEEN #{startTime}
+            AND #{endTime}
+    </select>
+
+    <select id="getOrgDataStatisticsMember" resultType="com.panzhihua.common.model.vos.partybuilding.PartyBuildingMemberVO">
+        select
+        m.id, m.org_id, m.name, m.id_card, m.photo_path, m.join_time, m.employment_time, m.audit_result, m.create_at, m.update_at,
+        m.community_id, m.user_id, m.refuse_reason, m.phone, m.type, m.position, m.check_unit_id, m.function, m.specialty_category,
+        m.specialty_name, m.position_two, o.`name` orgName,cpcu.name as checkUnitName,
+        TIMESTAMPDIFF(
+        YEAR,
+        m.employment_time,
+        DATE_FORMAT( NOW(), '%Y-%m-%d' )) as partyAge,
+        CASE
+
+        WHEN u.id_card IS NULL THEN
+        '未注册' ELSE '已注册'
+        END status
+        from com_pb_member as m
+        LEFT JOIN sys_user u ON m.id_card = u.id_card
+        LEFT JOIN com_pb_org o ON m.org_id = o.id
+        LEFT JOIN com_pb_check_unit as cpcu ON m.check_unit_id = cpcu.id
+        <where>
+            and m.audit_result = 1
+            and m.community_id = #{communityId}
+            <if test="orgIds != null and orgIds.size > 0">
+                AND m.org_id in
+                <foreach collection="orgIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+    </select>
+
+    <select id="getOrgDataStatisticsRightDown" resultType="map">
+        SELECT
+            count( camw.id ) AS completeWishNum,(
+            SELECT
+                count( camw.id )
+            FROM
+                com_act_micro_wish AS camw
+            WHERE
+                camw.community_id = #{communityId}
+                AND camw.`status` = 6
+                AND camw.evaluate_at <![CDATA[ <= ]]> #{endDate}
+                AND sponsor_id IN (
+                SELECT
+                    user_id
+                FROM
+                    com_pb_member
+                WHERE
+                    community_id = #{communityId}
+                    AND audit_result = 1
+                    AND user_id IS NOT NULL
+        <if test="orgIds != null and orgIds.size > 0">
+            AND org_id in
+            <foreach collection="orgIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+                )) AS cumulativeWishNum,
+            (SELECT
+                count( caep.id )
+            FROM
+                com_act_easy_photo AS caep
+            WHERE
+                caep.community_id = #{communityId}
+                AND caep.`status` >= 4
+                AND caep.feedback_at <![CDATA[ <= ]]> #{endDate}
+                AND caep.feedback_at <![CDATA[ >= ]]> #{startDate}
+                AND caep.sponsor_id IN (
+                SELECT
+                    user_id
+                FROM
+                    com_pb_member
+                WHERE
+                    community_id = #{communityId}
+                    AND audit_result = 1
+                    AND user_id IS NOT NULL
+        <if test="orgIds != null and orgIds.size > 0">
+            AND org_id in
+            <foreach collection="orgIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+                ) )	as completeEasyNum,
+                (SELECT
+                count( caep.id )
+            FROM
+                com_act_easy_photo AS caep
+            WHERE
+                caep.community_id = #{communityId}
+                AND caep.`status` >= 4
+                AND caep.feedback_at <![CDATA[ <= ]]> #{endDate}
+                AND caep.sponsor_id IN (
+                SELECT
+                    user_id
+                FROM
+                    com_pb_member
+                WHERE
+                    community_id = #{communityId}
+                    AND audit_result = 1
+                    AND user_id IS NOT NULL
+        <if test="orgIds != null and orgIds.size > 0">
+            AND org_id in
+            <foreach collection="orgIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+                ) ) as cumulativeEasyNum
+        FROM
+            com_act_micro_wish AS camw
+        WHERE
+            camw.community_id = #{communityId}
+            AND camw.`status` = 6
+            AND camw.evaluate_at <![CDATA[ <= ]]> #{endDate}
+            AND camw.evaluate_at <![CDATA[ >= ]]> #{startDate}
+            AND sponsor_id IN (
+            SELECT
+                user_id
+            FROM
+                com_pb_member
+            WHERE
+                community_id = #{communityId}
+                AND audit_result = 1
+            AND user_id IS NOT NULL
+        <if test="orgIds != null and orgIds.size > 0">
+            AND org_id in
+            <foreach collection="orgIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+            )
+    </select>
+
+    <select id="getHeaderOrgDataStatistics" resultType="com.panzhihua.common.model.vos.partybuilding.ComDataStatisticsHeaderOrgVo">
+        SELECT
+            count( id ) AS orgNum,
+            ( SELECT count(  distinct area_id ) FROM com_pb_org WHERE community_id = #{communityId} AND area_id IS NOT NULL ) AS areaNum,
+            (select count(village_id) from com_mng_village where community_id = #{communityId}) as villageNum
+        FROM
+            com_pb_org
+        WHERE
+            community_id = #{communityId}
+    </select>
+
+    <select id="exportDataStatisticsMember" resultType="com.panzhihua.common.model.vos.partybuilding.excel.ComDataStatisticsMemberExcelVo">
+        SELECT
+        cpm.id,
+        cpm.`name`,
+        cpm.photo_path,
+        cpm.type,
+        cpm.`function`,
+        cpm.specialty_category,
+        cpm.specialty_name,
+        cpm.position,
+        cpm.position_two,
+        cpm.id_card,
+        cpm.phone,
+        cpm.check_unit_id,
+        cpm.user_id,
+        cpcu.`name` AS checkUnitName,
+        cpm.org_id,
+        cpm.community_id,
+        cpo.`name` AS orgName,
+        YEAR (
+        from_days(
+        datediff( now( ), cpm.join_time ))) AS partyAge,
+        (select count(id) from com_pb_member_role where id_card = cpm.id_card) as isRole
+        FROM
+        com_pb_member AS cpm
+        LEFT JOIN com_pb_check_unit AS cpcu ON cpcu.id = cpm.check_unit_id
+        LEFT JOIN com_pb_org AS cpo ON cpo.id = cpm.org_id
+        <where>
+            and cpm.audit_result = 1
+            <if test="dto.communityId != null">
+                and cpm.community_id = #{dto.communityId}
+            </if>
+
+            <if test="dto.keyWord != null and dto.keyWord !=''">
+                and (
+                cpm.`name` like concat (#{dto.keyWord},'%') or
+                cpm.`id_card` = #{dto.keyWord} or
+                cpm.`phone` like concat (#{dto.keyWord},'%') or
+                cpcu.`name` like concat (#{dto.keyWord},'%') or
+                cpo.`name` like concat (#{dto.keyWord},'%')
+                )
+            </if>
+        </where>
+        order by cpm.create_at desc
+    </select>
+
+    <select id="getPbMemberByApplets" resultType="com.panzhihua.common.model.vos.partybuilding.PartyBuildingMemberVO">
+        select
+        m.id, m.org_id, m.name, m.id_card, m.photo_path, m.join_time, m.employment_time, m.audit_result, m.create_at, m.update_at,
+        m.community_id, m.user_id, m.refuse_reason, m.phone, m.type, m.position, m.check_unit_id, m.function, m.specialty_category,
+        m.specialty_name, m.position_two, IFNULL(m.org_Name,cpo.`name`) as orgName,cpcu.name as checkUnitName,t2.partyTime,t2.partyInterval,
+        TIMESTAMPDIFF(
+        YEAR,
+        m.employment_time,
+        DATE_FORMAT( NOW(), '%Y-%m-%d' )) as partyAge
+        from com_pb_member as m
+        LEFT JOIN (select user_id,phone from sys_user where  type = 1 and app_id = "wx118de8a734d269f0") u ON m.phone = u.phone
+        LEFT JOIN com_pb_org as cpo on cpo.id = m.org_id
+        LEFT JOIN com_pb_check_unit as cpcu ON m.check_unit_id = cpcu.id
+        LEFT JOIN (select t1.user_id,sum(t.duration) as partyTime,sum(t1.award) as partyInterval  from com_act_activity t LEFT JOIN com_act_act_regist t1 on t.id = t1.activity_id where t1.sign_identity = 2
+        GROUP BY t1.user_id ) t2 on u.user_id = t2.user_id
+        where m.audit_result = 1
+        <if test="dto.checkUnitId != null">
+            and m.check_unit_id = #{dto.checkUnitId}
+        </if>
+        <if test="dto.specialtyCategory != null">
+            and m.specialty_category = #{dto.specialtyCategory}
+        </if>
+        <if test="dto.specialtyName != null and dto.specialtyName != ''">
+            and m.specialty_name = #{dto.specialtyName}
+        </if>
+        <if test="dto.name != null">
+            and m.name like concat('%',#{dto.name},'%')
+        </if>
+        <if test="dto.communityId != null">
+            and m.community_id =#{dto.communityId}
+        </if>
+        order by m.create_at desc
+    </select>
+
+    <select id="selectDetail" resultType="com.panzhihua.common.model.vos.partybuilding.PartyBuildingMemberVO">
+        select t.*,
+               t1.contacts       as contactsName,
+               t1.phone          as contacts,
+               t1.admin_phone    as adminPhone,
+               t1.name           as checkUnitName,
+               t2.name           as villageName,
+               t1.contacts       as helpCommunityContactsName,
+               t1.phone as helpCommunityContacts,
+               t4.name           as communityName,
+               t1.address,
+               t1.village_name as unitVillageName,
+               t1.belong_to
+        from com_pb_member t
+                 left join com_pb_check_unit t1 on t.check_unit_id = t1.id
+                 left join com_mng_village t2 on t.village_id = t2.village_id
+                 left join com_act t4 on t.community_id = t4.community_id
+        where t.phone = #{phone}
+          and t.type = #{type} limit 1
+    </select>
+    <select id="getDetailByApp" resultType="com.panzhihua.common.model.vos.partybuilding.PartyBuildingMemberVO">
+        select t.*,
+               t1.contacts       as contactsName,
+               t1.phone          as contacts,
+               t1.name           as checkUnitName,
+               t2.name           as villageName,
+               t1.contacts       as helpCommunityContactsName,
+               t1.phone as helpCommunityContacts,
+               t4.name           as communityName,
+               t1.address,
+               t1.village_name as unitVillageName,
+               t1.belong_to,
+               su.nick_name
+        from com_pb_member t
+        LEFT JOIN sys_user su ON t.user_id = su.user_id
+         left join com_pb_check_unit t1 on t.check_unit_id = t1.id
+         left join com_mng_village t2 on t.village_id = t2.village_id
+         left join com_act t4 on t.community_id = t4.community_id where t.id = #{id}
+    </select>
+    <select id="pageRegisterMember"
+            resultType="com.panzhihua.common.model.vos.partybuilding.PartyBuildingMemberVO">
+        SELECT m.`name`, m.phone, u.user_id
+        FROM com_pb_member m
+        INNER JOIN sys_user u ON m.phone = u.phone AND u.type = 1 AND u.app_id = #{dto.appid}
+        LEFT JOIN com_act_activity_invite caai ON m.user_id = caai.user_id AND caai.activity_id = #{dto.activityId}
+        WHERE caai.id IS NULL
+        <if test="dto.checkUnitId != null">
+            AND m.check_unit_id = #{dto.checkUnitId}
+        </if>
+    </select>
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComPbMemberRoleDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComPbMemberRoleDOMapper.xml
new file mode 100644
index 0000000..5763516
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComPbMemberRoleDOMapper.xml
@@ -0,0 +1,109 @@
+<?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_dangjian.dao.ComPbMemberRoleDAO">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_dangjian.model.dos.ComPbMemberRoleDO">
+        <id column="id" property="id" />
+        <result column="phone" property="phone" />
+        <result column="is_reg" property="isReg" />
+        <result column="name" property="name" />
+        <result column="sex" property="sex" />
+        <result column="birth_time" property="birthTime" />
+        <result column="position" property="position" />
+        <result column="position_two" property="positionTwo" />
+        <result column="job_responsibilities" property="jobResponsibilities" />
+        <result column="photo_path" property="photoPath" />
+        <result column="create_at" property="createAt" />
+        <result column="update_at" property="updateAt" />
+        <result column="community_id" property="communityId" />
+        <result column="org_id" property="orgId" />
+        <result column="check_unit_id" property="checkUnitId" />
+        <result column="id_card" property="idCard" />
+        <result column="type" property="type" />
+        <result column="join_time" property="joinTime" />
+        <result column="employment_time" property="employmentTime" />
+        <result column="function" property="function" />
+        <result column="specialty_category" property="specialtyCategory" />
+        <result column="specialty_name" property="specialtyName" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, phone, is_reg, name, sex, birth_time, position, position_two, job_responsibilities, photo_path, create_at, update_at, community_id, org_id
+        , check_unit_id, id_card, type, join_time, employment_time, function, specialty_category, specialty_name
+    </sql>
+
+    <select id="getSysUserIdByPhone" resultType="long">
+        SELECT user_id FROM sys_user WHERE phone = #{phone} AND app_id = #{appid} AND `type` = 1
+    </select>
+
+    <select id="getSysUserByIdCardCount" resultType="integer">
+        SELECT count(user_id) FROM sys_user WHERE id_card = #{idCard} AND `type` = 1
+    </select>
+
+    <select id="getUserIdByIdCard" resultType="long">
+        select user_id from sys_user  WHERE id_card = #{idCard} AND `type` = 1
+    </select>
+
+    <select id="pagePartyOrganization" resultType="com.panzhihua.common.model.vos.partybuilding.west.PartyCommitteeVO">
+        select cpmr.id,cpmr.community_id,cpmr.`name`,cpmr.id_card,cpmr.org_id,cpmr.check_unit_id
+        , cpmr.phone,cpmr.is_reg,cpmr.sex,cpmr.birth_time,cpmr.position,cpmr.position_two
+        , cpmr.job_responsibilities,cpmr.photo_path,cpmr.type,cpmr.join_time,cpmr.employment_time
+        , cpmr.create_at,cpmr.update_at,cpmr.function,cpmr.specialty_category,cpmr.specialty_name
+        ,YEAR (now()) - YEAR (substring(cpmr.id_card, 7, 8)) age,cpo.`name` as orgName,cpcu.`name` as checkUnitName
+        from com_pb_member_role as cpmr
+        left join com_pb_org as cpo on cpo.id = cpmr.org_id
+        left join com_pb_check_unit as cpcu on cpcu.id = cpmr.check_unit_id
+        <where>
+            <if test="partyCommitteeVO.communityId != null">
+                and cpmr.community_id = #{partyCommitteeVO.communityId}
+            </if>
+            <if test="partyCommitteeVO.type != null">
+                and cpmr.type = #{partyCommitteeVO.type}
+            </if>
+            <if test="partyCommitteeVO.sex != null">
+                and cpmr.sex = #{partyCommitteeVO.sex}
+            </if>
+            <if test="partyCommitteeVO.keyWord != null and partyCommitteeVO.keyWord != ''">
+                and (cpmr.name like concat (#{partyCommitteeVO.keyWord},'%') or
+                cpmr.phone like concat (#{partyCommitteeVO.keyWord},'%') or
+                cpmr.id_card = #{partyCommitteeVO.keyWord}
+                )
+            </if>
+        </where>
+        order by cpmr.create_at desc
+    </select>
+
+
+
+    <select id="pagePartyOrganizations" resultType="com.panzhihua.common.model.vos.partybuilding.PartyCommitteeVO">
+        select cpmr.id,cpmr.community_id,cpmr.`name`,cpmr.id_card,cpmr.org_id,cpmr.check_unit_id
+        , cpmr.phone,cpmr.is_reg,cpmr.sex,cpmr.birth_time,cpmr.position,cpmr.position_two
+        , cpmr.job_responsibilities,cpmr.photo_path,cpmr.type,cpmr.join_time,cpmr.employment_time
+        , cpmr.create_at,cpmr.update_at,cpmr.function,cpmr.specialty_category,cpmr.specialty_name
+        ,YEAR (now()) - YEAR (substring(cpmr.id_card, 7, 8)) age,cpo.`name` as orgName,cpcu.`name` as checkUnitName
+        from com_pb_member_role as cpmr
+        left join com_pb_org as cpo on cpo.id = cpmr.org_id
+        left join com_pb_check_unit as cpcu on cpcu.id = cpmr.check_unit_id
+        <where>
+            <if test="partyCommitteeVO.communityId != null">
+                and cpmr.community_id = #{partyCommitteeVO.communityId}
+            </if>
+            <if test="partyCommitteeVO.type != null">
+                and cpmr.type = #{partyCommitteeVO.type}
+            </if>
+            <if test="partyCommitteeVO.sex != null">
+                and cpmr.sex = #{partyCommitteeVO.sex}
+            </if>
+            <if test="partyCommitteeVO.keyWord != null and partyCommitteeVO.keyWord != ''">
+                and (cpmr.name like concat (#{partyCommitteeVO.keyWord},'%') or
+                cpmr.phone like concat (#{partyCommitteeVO.keyWord},'%') or
+                cpmr.id_card = #{partyCommitteeVO.keyWord}
+                )
+            </if>
+        </where>
+        order by cpmr.create_at desc
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComPbMemberWestMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComPbMemberWestMapper.xml
new file mode 100644
index 0000000..cfe09a6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComPbMemberWestMapper.xml
@@ -0,0 +1,645 @@
+<?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_dangjian.dao.ComPbMemberWestDAO">
+
+    <resultMap type="com.panzhihua.service_dangjian.model.dos.ComPbMemberWestDO" id="ComPbMemberMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="orgId" column="org_id" jdbcType="INTEGER"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="idCard" column="id_card" jdbcType="VARCHAR"/>
+        <result property="photoPath" column="photo_path" jdbcType="VARCHAR"/>
+        <result property="joinTime" column="join_time" jdbcType="TIMESTAMP"/>
+        <result property="employmentTime" column="employment_time" jdbcType="TIMESTAMP"/>
+        <result property="auditResult" column="audit_result" jdbcType="INTEGER"/>
+        <result property="createAt" column="create_at" jdbcType="TIMESTAMP"/>
+        <result property="updateAt" column="update_at" jdbcType="TIMESTAMP"/>
+        <result property="communityId" column="community_id" jdbcType="INTEGER"/>
+        <result property="userId" column="user_id" jdbcType="INTEGER"/>
+        <result property="refuseReason" column="refuse_reason" jdbcType="VARCHAR"/>
+        <result property="phone" column="phone" jdbcType="VARCHAR"/>
+        <result property="type" column="type" jdbcType="INTEGER"/>
+        <result property="position" column="position" jdbcType="VARCHAR"/>
+        <result property="checkUnitId" column="check_unit_id" jdbcType="INTEGER"/>
+        <result property="function" column="function" jdbcType="VARCHAR"/>
+        <result property="specialtyCategory" column="specialty_category" jdbcType="INTEGER"/>
+        <result property="specialtyName" column="specialty_name" jdbcType="VARCHAR"/>
+        <result property="positionTwo" column="position_two" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <!--查询单个-->
+    <select id="queryById" resultType="com.panzhihua.common.model.vos.partybuilding.west.PartyBuildingMemberVO">
+        select
+        m.id, m.org_id, m.name, m.id_card, m.photo_path, m.join_time, m.employment_time, m.audit_result, m.create_at, m.update_at,
+        m.community_id, m.user_id, m.refuse_reason, m.phone, m.type, m.position, m.check_unit_id, m.function, m.specialty_category,
+        m.specialty_name, m.position_two, o.`name` orgName,cpcu.name as checkUnitName,
+        TIMESTAMPDIFF(
+        YEAR,
+        m.employment_time,
+        DATE_FORMAT( NOW(), '%Y-%m-%d' )) as partyAge,
+        CASE
+
+        WHEN u.id_card IS NULL THEN
+        '未注册' ELSE '已注册'
+        END status
+        from com_pb_member_west as m
+        LEFT JOIN (
+            SELECT su.* FROM sys_user su
+            LEFT JOIN com_act act ON su.community_id = act.community_id
+            WHERE act.area_code = #{areaCode}
+        ) u ON m.id_card = u.id_card and u.`type` = 1
+        LEFT JOIN com_pb_org o ON m.org_id = o.id
+        LEFT JOIN com_pb_check_unit as cpcu ON m.check_unit_id = cpcu.id
+        where m.id = #{id}
+    </select>
+
+    <!--查询指定行数据-->
+    <select id="queryAllByLimit" resultType="com.panzhihua.common.model.vos.partybuilding.west.PartyBuildingMemberVO">
+        select
+        m.id, m.org_id, m.name, m.id_card, m.photo_path, m.join_time, m.employment_time, m.audit_result, m.create_at, m.update_at,
+        m.community_id, m.user_id, m.refuse_reason, m.phone, m.type, m.position, m.check_unit_id, m.function, m.specialty_category,
+        m.specialty_name, m.position_two, o.`name` orgName,cpcu.name as checkUnitName,t2.partyTime,t2.partyInterval,
+        TIMESTAMPDIFF(
+        YEAR,
+        m.employment_time,
+        DATE_FORMAT( NOW(), '%Y-%m-%d' )) as partyAge,
+        CASE     WHEN su.id_card IS NULL THEN
+        '未注册' ELSE '已注册'
+        END status
+        from com_pb_member as m
+        LEFT JOIN sys_user su on m.id_card = su.id_card 	AND su.type = 1
+        LEFT JOIN com_act act ON su.community_id = act.community_id
+        LEFT JOIN com_pb_org o ON m.org_id = o.id
+        LEFT JOIN com_pb_check_unit as cpcu ON m.check_unit_id = cpcu.id
+        LEFT JOIN (select t1.user_id,sum(t.duration) as partyTime,sum(t1.award) as partyInterval  from com_act_activity t LEFT JOIN com_act_act_regist t1 on t.id = t1.activity_id where t1.sign_identity = 2
+        <if test="dto.startTime !=null">
+            and t.begin_at between #{dto.startTime} and #{dto.endTime}
+        </if>
+        GROUP BY t1.user_id ) t2 on su.user_id = t2.user_id
+        <where>
+            and m.audit_result = 1
+            <if test='dto.orgName != null and dto.orgName != &quot;&quot;'>
+                and o.name like concat(#{dto.orgName},'%')
+            </if>
+            <if test='dto.orgId != null'>
+               and o.id = #{dto.orgId}
+            </if>
+            <if test='dto.account != null and dto.account != &quot;&quot;'>
+                and su.account like concat (#{dto.account},'%')
+            </if>
+            <if test='dto.name != null and dto.name != &quot;&quot;'>
+                and m.name like concat (#{dto.name},'%')
+            </if>
+            <if test="dto.orgId != null">
+                and m.org_id = #{dto.orgId}
+            </if>
+            <if test="dto.communityIds != null and dto.communityIds.size() >0">
+                and m.community_id IN
+                <foreach collection="dto.communityIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="dto.keyWord != null and dto.keyWord != ''">
+                and (m.name like concat (#{dto.keyWord},'%') or
+                su.phone like concat (#{dto.keyWord},'%') or
+                cpcu.name like concat (#{dto.keyWord},'%')
+                )
+            </if>
+            <if test="dto.type != null">
+                and m.type = #{dto.type}
+            </if>
+            <if test="dto.checkUnitId != null">
+                and m.check_unit_id = #{dto.checkUnitId}
+            </if>
+            <if test="dto.specialtyCategory != null">
+                and m.specialty_category = #{dto.specialtyCategory}
+            </if>
+        </where>
+        order by m.create_at desc
+    </select>
+
+    <select id="exportPartyMemberList" resultType="com.panzhihua.common.model.vos.PartyMemberListExcelVO">
+        select
+        m.id, m.org_id, m.name, m.id_card, m.photo_path, m.join_time, m.employment_time, m.audit_result, m.create_at, m.update_at,
+        m.community_id, m.user_id, m.refuse_reason, m.phone, m.type, m.position, m.check_unit_id, m.function, m.specialty_category,
+        m.specialty_name, m.position_two, o.`name` orgName,cpcu.name as checkUnitName,t2.partyTime,t2.partyInterval,
+        TIMESTAMPDIFF(
+        YEAR,
+        m.employment_time,
+        DATE_FORMAT( NOW(), '%Y-%m-%d' )) as partyAge,
+        CASE
+
+        WHEN u.id_card IS NULL THEN
+        '未注册' ELSE '已注册'
+        END status
+        from com_pb_member_west as m
+        LEFT JOIN (
+            SELECT su.* FROM sys_user su
+            LEFT JOIN com_act act ON su.community_id = act.community_id
+        ) u ON m.id_card = u.id_card and u.type = 1
+        LEFT JOIN com_act act ON u.community_id = act.community_id
+        LEFT JOIN com_pb_org o ON m.org_id = o.id
+        LEFT JOIN com_pb_check_unit as cpcu ON m.check_unit_id = cpcu.id
+        LEFT JOIN (select t1.user_id,sum(t.duration) as partyTime,sum(t1.award) as partyInterval  from com_act_activity t LEFT JOIN com_act_act_regist t1 on t.id = t1.activity_id where t1.sign_identity = 2
+        <if test="dto.startTime !=null">
+            and t.begin_at between #{dto.startTime} and #{dto.endTime}
+        </if>
+        GROUP BY t1.user_id ) t2 on u.user_id = t2.user_id
+        <where>
+            and m.audit_result = 1
+            <if test='dto.orgName != null and dto.orgName != &quot;&quot;'>
+                and o.name like concat(#{dto.orgName},'%')
+            </if>
+            <if test='dto.orgId != null'>
+                and o.id = #{dto.orgId}
+            </if>
+            <if test='dto.account != null and dto.account != &quot;&quot;'>
+                and u.phone like concat (#{dto.account},'%')
+            </if>
+            <if test='dto.name != null and dto.name != &quot;&quot;'>
+                and m.name like concat (#{dto.name},'%')
+            </if>
+            <if test="dto.orgId != null">
+                and m.org_id = #{dto.orgId}
+            </if>
+            <if test="dto.communityId != null">
+                and m.community_id = ${dto.communityId}
+            </if>
+            <if test="dto.keyWord != null and dto.keyWord != ''">
+                and (m.name like concat (#{dto.keyWord},'%') or
+                u.phone like concat (#{dto.keyWord},'%') or
+                cpcu.name like concat (#{dto.keyWord},'%')
+                )
+            </if>
+            <if test="dto.type != null">
+                and m.type = #{dto.type}
+            </if>
+            <if test="dto.checkUnitId != null">
+                and m.check_unit_id = #{dto.checkUnitId}
+            </if>
+            <if test="dto.specialtyCategory != null">
+                and m.specialty_category = #{dto.specialtyCategory}
+            </if>
+        </where>
+        order by m.create_at desc
+    </select>
+
+    <select id="pagePartyBuildingMembersVO" resultType="com.panzhihua.common.model.vos.partybuilding.west.PartyBuildingMemberVO">
+        select
+        m.id, m.org_id, m.name, m.id_card, m.photo_path, m.join_time, m.employment_time, m.audit_result, m.create_at, m.update_at,
+        m.community_id, m.user_id, m.refuse_reason, m.phone, m.type, m.position, m.check_unit_id, m.function, m.specialty_category,
+        m.specialty_name, m.position_two, o.`name` orgName,cpcu.name as checkUnitName,
+        TIMESTAMPDIFF(
+        YEAR,
+        m.employment_time,
+        DATE_FORMAT( NOW(), '%Y-%m-%d' )) as partyAge,
+        CASE
+
+        WHEN u.id_card IS NULL THEN
+        '未注册' ELSE '已注册'
+        END status
+        from com_pb_member_west as m
+        LEFT JOIN (
+            SELECT su.* FROM sys_user su
+            LEFT JOIN com_act act ON su.community_id = act.community_id
+        ) u ON m.id_card = u.id_card AND u.`type` = 1
+        LEFT JOIN com_act act ON u.community_id = act.community_id
+        LEFT JOIN com_pb_org o ON m.org_id = o.id
+        LEFT JOIN com_pb_check_unit as cpcu on cpcu.id = m.check_unit_id
+        WHERE
+            m.audit_result IN ( 0, 3 )
+        <if test='pagePartyBuildingMemberVO.phone != null and pagePartyBuildingMemberVO.phone != &quot;&quot;'>
+            and u.phone LIKE CONCAT('%',#{pagePartyBuildingMemberVO.phone},'%')
+        </if>
+        <if test='pagePartyBuildingMemberVO.name != null and pagePartyBuildingMemberVO.name != &quot;&quot;'>
+            and u.name like concat ('%',#{pagePartyBuildingMemberVO.name},'%')
+        </if>
+        <if test='pagePartyBuildingMemberVO.auditStatus != null'>
+            and m.audit_result = #{pagePartyBuildingMemberVO.auditStatus}
+        </if>
+        <if test='pagePartyBuildingMemberVO.communityId != null'>
+            and m.community_id = ${pagePartyBuildingMemberVO.communityId}
+        </if>
+    </select>
+
+    <select id="pageDataStatisticsMember" resultType="com.panzhihua.common.model.vos.partybuilding.west.ComDataStatisticsMemberVo">
+        SELECT
+            cpm.id,
+            cpm.`name`,
+            cpm.photo_path,
+            cpm.type,
+            cpm.`function`,
+            cpm.specialty_category,
+            cpm.specialty_name,
+            cpm.position,
+            cpm.position_two,
+            cpm.id_card,
+            cpm.phone,
+            cpm.check_unit_id,
+            cpm.user_id,
+            cpcu.`name` AS checkUnitName,
+            cpm.org_id,
+            cpm.community_id,
+            cpo.`name` AS orgName,
+            YEAR (
+                from_days(
+                datediff( now( ), cpm.join_time ))) AS partyAge,
+            (select count(id) from com_pb_member_role where id_card = cpm.id_card) as isRole
+        FROM
+            com_pb_member_west AS cpm
+            LEFT JOIN com_pb_check_unit AS cpcu ON cpcu.id = cpm.check_unit_id
+            LEFT JOIN com_pb_org AS cpo ON cpo.id = cpm.org_id
+            LEFT JOIN (
+                SELECT su.* FROM sys_user su
+                LEFT JOIN com_act act ON su.community_id = act.community_id
+            ) t1 on cpm.id_card = t1.id_card and t1.type=1
+            <where>
+                and cpm.audit_result = 1
+                <if test="dto.communityId != null">
+                    and cpm.community_id = #{dto.communityId}
+                </if>
+
+                <if test="dto.keyWord != null and dto.keyWord !=''">
+                    and (
+                    cpm.`name` like concat (#{dto.keyWord},'%') or
+                    cpm.`id_card` = #{dto.keyWord} or
+                    cpm.`phone` like concat (#{dto.keyWord},'%') or
+                    cpcu.`name` like concat (#{dto.keyWord},'%') or
+                    cpo.`name` like concat (#{dto.keyWord},'%')
+                    )
+                </if>
+                <if test="dto.month !=null and dto.month !=''">
+                    and (cpm.create_at >= DATE_FORMAT(  CONCAT(#{dto.month},'-00-00'), '%Y-00-00 00:00:00') and DATE_FORMAT(  CONCAT(#{dto.month},'-12-31'), '%Y-12-31 23:59:59') >= cpm.create_at)
+                </if>
+            </where>
+            order by cpm.create_at desc
+    </select>
+
+    <select id="getMemberStatistics" resultType="com.panzhihua.common.model.vos.partybuilding.west.ComDataStatisticsMemberVo">
+        SELECT
+            count( cpam.id ) AS partyActivityCount,
+            IFNULL(( SELECT integral_available_party FROM com_act_integral_user WHERE user_id = #{userId} AND community_id = #{communityId} ), 0 ) AS partyActivityIntegral,
+            IFNULL(( SELECT integral_available_volunteer FROM com_act_integral_user WHERE user_id = #{userId} AND community_id = #{communityId} ), 0 ) AS volunteerActivityIntegral,
+            ( SELECT count( caas.id ) FROM com_act_act_sign AS caas
+            LEFT JOIN com_act_activity AS caa ON caa.id = caas.activity_id
+            WHERE caas.user_id = #{userId} and caas.status = 1 and caa.type = 1 and caa.community_id = #{communityId}
+            ) AS volunteerActivityCount,
+            IFNULL((
+                SELECT
+                    sum( caa.duration )
+                FROM
+                    com_act_act_sign AS caas
+                    LEFT JOIN com_act_activity AS caa ON caa.id = caas.activity_id
+                WHERE
+                    caas.user_id = #{userId} and caas.status = 1 and caa.type = 1 and caa.community_id = #{communityId}
+                    ),
+                0
+            ) AS volunteerActivityDuration,
+            ( SELECT count( id ) FROM com_act_micro_wish WHERE sponsor_id = #{userId} AND `status` = 6 AND community_id = #{communityId} ) AS wishCount,
+            ( SELECT count( id ) FROM com_act_easy_photo WHERE sponsor_id = #{userId} AND `status` = 4 AND community_id = #{communityId} ) AS easyCount
+        FROM
+            com_pb_activity_member AS cpam
+            LEFT JOIN com_pb_member_west AS cpm ON cpm.id = cpam.member_id
+        WHERE
+            cpm.user_id = #{userId}
+    </select>
+
+    <select id="getOrgDataStatistics" resultType="com.panzhihua.common.model.vos.partybuilding.west.ComDataStatisticsOrgVo">
+        SELECT
+            count( id ) AS tyNum,
+            ( SELECT count( id ) FROM com_pb_member_west WHERE audit_result = 1 AND community_id = #{communityId} AND specialty_category = 2
+                <if test="orgIds != null and orgIds.size > 0">
+                    AND org_id in
+                    <foreach collection="orgIds" item="item" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
+                </if>
+            ) AS wdNum,
+            ( SELECT count( id ) FROM com_pb_member_west WHERE audit_result = 1 AND community_id = #{communityId} AND specialty_category = 3
+                <if test="orgIds != null and orgIds.size > 0">
+                    AND org_id in
+                    <foreach collection="orgIds" item="item" open="(" separator="," close=")">
+                        #{item}
+                    </foreach>
+                </if>
+            ) AS yyNum,
+            ( SELECT count( id ) FROM com_pb_member_west WHERE audit_result = 1 AND community_id = #{communityId} AND specialty_category = 4
+        <if test="orgIds != null and orgIds.size > 0">
+            AND org_id in
+            <foreach collection="orgIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+            ) AS msNum,
+            ( SELECT count( id ) FROM com_pb_member_west WHERE audit_result = 1 AND community_id = #{communityId} AND specialty_category = 5
+        <if test="orgIds != null and orgIds.size > 0">
+            AND org_id in
+            <foreach collection="orgIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+            ) AS qtNum,
+            ( SELECT count( id ) FROM com_pb_member_west WHERE audit_result = 1 AND community_id = #{communityId} AND specialty_category IS NULL
+        <if test="orgIds != null and orgIds.size > 0">
+            AND org_id in
+            <foreach collection="orgIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+            ) AS wuNum,
+            ( SELECT count( id ) FROM com_pb_member_west WHERE audit_result = 1 AND community_id = #{communityId} AND type = 1
+        <if test="orgIds != null and orgIds.size > 0">
+            AND org_id in
+            <foreach collection="orgIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+            ) AS preparePartyMemberNum,
+            ( SELECT count( id ) FROM com_pb_member_west WHERE audit_result = 1 AND community_id = #{communityId} AND type = 2
+        <if test="orgIds != null and orgIds.size > 0">
+            AND org_id in
+            <foreach collection="orgIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+            ) AS formalPartyMemberNum,
+            ( SELECT count( id ) FROM com_pb_member_west WHERE audit_result = 1 AND community_id = #{communityId}
+        <if test="orgIds != null and orgIds.size > 0">
+            AND org_id in
+            <foreach collection="orgIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+            ) AS partyMemberNum
+        FROM
+            com_pb_member_west
+        WHERE
+            audit_result = 1
+            AND community_id = #{communityId}
+            AND specialty_category = 1
+        <if test="orgIds != null and orgIds.size > 0">
+            AND org_id in
+            <foreach collection="orgIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+    </select>
+
+    <select id="getOrgDataStatisticsLeftDown" resultType="com.panzhihua.common.model.vos.partybuilding.west.ComDataStatisticsOrgVo">
+        SELECT
+            count( caas1.id ) AS participateVolunteerActivityNum,
+            (
+            SELECT
+                IFNULL( sum( caa.duration ), 0 )
+            FROM
+                com_act_act_sign AS caas
+                LEFT JOIN com_act_activity AS caa ON caa.id = caas.activity_id
+            WHERE
+                caas.`status` = 1
+                AND caa.type = 1
+                AND caas.user_id IN ( SELECT t1.user_id FROM com_pb_member_west t LEFT JOIN (
+                    SELECT su.* FROM sys_user su
+                    LEFT JOIN com_act act ON su.community_id = act.community_id
+                    ) t1 on t.id_card=t1.id_card WHERE audit_result = 1
+                AND t.community_id = #{communityId} AND t1.type=1
+        <if test="orgIds != null and orgIds.size > 0">
+            AND org_id in
+            <foreach collection="orgIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+                )
+                AND caas.create_at BETWEEN #{startTime}
+                AND #{endTime}
+            ) AS participateVolunteerActivityDuration,
+            (
+            SELECT
+                count( cpam.id )
+            FROM
+                com_pb_activity_member AS cpam
+                LEFT JOIN com_pb_member_west AS cpm ON cpm.id = cpam.member_id
+            WHERE
+                cpm.audit_result = 1
+                AND cpm.community_id = #{communityId}
+                AND cpam.create_at BETWEEN #{startTime}
+                AND #{endTime}
+        <if test="orgIds != null and orgIds.size > 0">
+            AND org_id in
+            <foreach collection="orgIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+            ) AS participatePartyActivityNum
+        FROM
+            com_act_act_sign as caas1
+            left join com_act_activity as caa1 on caa1.id = caas1.activity_id
+        WHERE
+        caas1.`status` = 1 and caa1.type = 1
+            AND caas1.user_id IN ( SELECT t1.user_id FROM com_pb_member_west t LEFT JOIN (
+            SELECT su.* FROM sys_user su
+            LEFT JOIN com_act act ON su.community_id = act.community_id
+            WHERE act.area_code = #{areaCode}
+            ) t1 on t.id_card=t1.id_card WHERE audit_result = 1
+            AND t.community_id = #{communityId} AND t1.type=1
+        <if test="orgIds != null and orgIds.size > 0">
+            AND org_id in
+            <foreach collection="orgIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+            )
+            AND caas1.create_at BETWEEN #{startTime}
+            AND #{endTime}
+    </select>
+
+    <select id="getOrgDataStatisticsMember" resultType="com.panzhihua.common.model.vos.partybuilding.west.PartyBuildingMemberVO">
+        select
+        m.id, m.org_id, m.name, m.id_card, m.photo_path, m.join_time, m.employment_time, m.audit_result, m.create_at, m.update_at,
+        m.community_id, m.user_id, m.refuse_reason, m.phone, m.type, m.position, m.check_unit_id, m.function, m.specialty_category,
+        m.specialty_name, m.position_two, o.`name` orgName,cpcu.name as checkUnitName,
+        TIMESTAMPDIFF(
+        YEAR,
+        m.employment_time,
+        DATE_FORMAT( NOW(), '%Y-%m-%d' )) as partyAge,
+        CASE
+
+        WHEN u.id_card IS NULL THEN
+        '未注册' ELSE '已注册'
+        END status
+        from com_pb_member_west as m
+        LEFT JOIN (
+        SELECT su.* FROM sys_user su
+        LEFT JOIN com_act act ON su.community_id = act.community_id
+        ) u ON m.id_card = u.id_card AND u.`type` = 1
+        LEFT JOIN com_pb_org o ON m.org_id = o.id
+        LEFT JOIN com_pb_check_unit as cpcu ON m.check_unit_id = cpcu.id
+        <where>
+            and m.audit_result = 1
+            and m.community_id = #{communityId}
+            <if test="orgIds != null and orgIds.size > 0">
+                AND m.org_id in
+                <foreach collection="orgIds" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
+        </where>
+    </select>
+
+    <select id="getOrgDataStatisticsRightDown" resultType="map">
+        SELECT
+            count( camw.id ) AS completeWishNum,(
+            SELECT
+                count( camw.id )
+            FROM
+                com_act_micro_wish AS camw
+            WHERE
+                camw.community_id = #{communityId}
+                AND camw.`status` = 6
+                AND camw.evaluate_at <![CDATA[ <= ]]> #{endDate}
+                AND sponsor_id IN (
+                SELECT
+                    user_id
+                FROM
+                    com_pb_member_west
+                WHERE
+                    community_id = #{communityId}
+                    AND audit_result = 1
+                    AND user_id IS NOT NULL
+        <if test="orgIds != null and orgIds.size > 0">
+            AND org_id in
+            <foreach collection="orgIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+                )) AS cumulativeWishNum,
+            (SELECT
+                count( caep.id )
+            FROM
+                com_act_easy_photo AS caep
+            WHERE
+                caep.community_id = #{communityId}
+                AND caep.`status` >= 4
+                AND caep.feedback_at <![CDATA[ <= ]]> #{endDate}
+                AND caep.feedback_at <![CDATA[ >= ]]> #{startDate}
+                AND caep.sponsor_id IN (
+                SELECT
+                    user_id
+                FROM
+                    com_pb_member_west
+                WHERE
+                    community_id = #{communityId}
+                    AND audit_result = 1
+                    AND user_id IS NOT NULL
+        <if test="orgIds != null and orgIds.size > 0">
+            AND org_id in
+            <foreach collection="orgIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+                ) )	as completeEasyNum,
+                (SELECT
+                count( caep.id )
+            FROM
+                com_act_easy_photo AS caep
+            WHERE
+                caep.community_id = #{communityId}
+                AND caep.`status` >= 4
+                AND caep.feedback_at <![CDATA[ <= ]]> #{endDate}
+                AND caep.sponsor_id IN (
+                SELECT
+                    user_id
+                FROM
+                    com_pb_member_west
+                WHERE
+                    community_id = #{communityId}
+                    AND audit_result = 1
+                    AND user_id IS NOT NULL
+        <if test="orgIds != null and orgIds.size > 0">
+            AND org_id in
+            <foreach collection="orgIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+                ) ) as cumulativeEasyNum
+        FROM
+            com_act_micro_wish AS camw
+        WHERE
+            camw.community_id = #{communityId}
+            AND camw.`status` = 6
+            AND camw.evaluate_at <![CDATA[ <= ]]> #{endDate}
+            AND camw.evaluate_at <![CDATA[ >= ]]> #{startDate}
+            AND sponsor_id IN (
+            SELECT
+                user_id
+            FROM
+                com_pb_member_west
+            WHERE
+                community_id = #{communityId}
+                AND audit_result = 1
+            AND user_id IS NOT NULL
+        <if test="orgIds != null and orgIds.size > 0">
+            AND org_id in
+            <foreach collection="orgIds" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+            )
+    </select>
+
+    <select id="getHeaderOrgDataStatistics" resultType="com.panzhihua.common.model.vos.partybuilding.west.ComDataStatisticsHeaderOrgVo">
+        SELECT
+            count( id ) AS orgNum,
+            ( SELECT count(  distinct area_id ) FROM com_pb_org WHERE community_id = #{communityId} AND area_id IS NOT NULL ) AS areaNum,
+            (select count(village_id) from com_mng_village where community_id = #{communityId}) as villageNum
+        FROM
+            com_pb_org
+        WHERE
+            community_id = #{communityId}
+    </select>
+
+    <select id="exportDataStatisticsMember" resultType="com.panzhihua.common.model.vos.partybuilding.excel.ComDataStatisticsMemberExcelVo">
+        SELECT
+        cpm.id,
+        cpm.`name`,
+        cpm.photo_path,
+        cpm.type,
+        cpm.`function`,
+        cpm.specialty_category,
+        cpm.specialty_name,
+        cpm.position,
+        cpm.position_two,
+        cpm.id_card,
+        cpm.phone,
+        cpm.check_unit_id,
+        cpm.user_id,
+        cpcu.`name` AS checkUnitName,
+        cpm.org_id,
+        cpm.community_id,
+        cpo.`name` AS orgName,
+        YEAR (
+        from_days(
+        datediff( now( ), cpm.join_time ))) AS partyAge,
+        (select count(id) from com_pb_member_role where id_card = cpm.id_card) as isRole
+        FROM
+        com_pb_member_west AS cpm
+        LEFT JOIN com_pb_check_unit AS cpcu ON cpcu.id = cpm.check_unit_id
+        LEFT JOIN com_pb_org AS cpo ON cpo.id = cpm.org_id
+        <where>
+            and cpm.audit_result = 1
+            <if test="dto.communityId != null">
+                and cpm.community_id = #{dto.communityId}
+            </if>
+
+            <if test="dto.keyWord != null and dto.keyWord !=''">
+                and (
+                cpm.`name` like concat (#{dto.keyWord},'%') or
+                cpm.`id_card` = #{dto.keyWord} or
+                cpm.`phone` like concat (#{dto.keyWord},'%') or
+                cpcu.`name` like concat (#{dto.keyWord},'%') or
+                cpo.`name` like concat (#{dto.keyWord},'%')
+                )
+            </if>
+        </where>
+        order by cpm.create_at desc
+    </select>
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComPbOrgMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComPbOrgMapper.xml
new file mode 100644
index 0000000..01b1ea8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComPbOrgMapper.xml
@@ -0,0 +1,165 @@
+<?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_dangjian.dao.ComPbOrgDAO">
+
+    <resultMap type="com.panzhihua.service_dangjian.model.dos.ComPbOrgDO" id="ComPbOrgMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="level" column="level" jdbcType="INTEGER"/>
+        <result property="parentId" column="parent_id" jdbcType="INTEGER"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="communityId" column="community_id" jdbcType="INTEGER"/>
+        <result property="status" column="status" jdbcType="INTEGER"/>
+        <result property="type" column="type" jdbcType="INTEGER"/>
+        <result property="subjection" column="subjection" jdbcType="INTEGER"/>
+        <result property="areaId" column="area_id" jdbcType="INTEGER"/>
+        <result property="address" column="address" jdbcType="VARCHAR"/>
+        <result property="longitude" column="longitude" jdbcType="VARCHAR"/>
+        <result property="latitude" column="latitude" jdbcType="VARCHAR"/>
+        <result property="oneId" column="one_id" jdbcType="INTEGER"/>
+        <result property="twoId" column="two_id" jdbcType="INTEGER"/>
+        <result property="thirdId" column="third_id" jdbcType="INTEGER"/>
+        <result property="fourId" column="four_id" jdbcType="INTEGER"/>
+        <result property="fiveId" column="five_id" jdbcType="INTEGER"/>
+        <result property="buildId" column="build_id" jdbcType="INTEGER"/>
+    </resultMap>
+
+    <select id="listPartyOrganizationAll" resultType="com.panzhihua.common.model.vos.partybuilding.west.PartyOrganizationVO">
+        SELECT
+            cpo.id,
+            cpo.`name`,
+            cpo.`status`,
+            cpo.parent_id,
+            cpo.subjection,
+            cpo.area_id,
+            cpo.build_id,
+            cpo.address,
+            cpo.longitude,
+            cpo.latitude,
+            cpo.type,
+            cmv.`name` AS areaName,
+            cmb.`name` AS buildName,
+            cpmr.`name` AS userName,
+            cpmr.phone,
+            (select count(id) from com_pb_member where org_id = cpo.id and audit_result = 1) as countPerson
+        FROM
+            com_pb_org AS cpo
+            LEFT JOIN com_mng_village AS cmv ON cmv.village_id = cpo.area_id
+            left join com_mng_building as cmb on cmb.id = cpo.build_id
+            LEFT JOIN com_pb_member_role cpmr ON cpmr.org_id = cpo.id
+        <where>
+            <if test="partyOrganizationVO.communityId != null">
+                and cpo.community_id = ${partyOrganizationVO.communityId}
+            </if>
+            <if test="partyOrganizationVO.keyWord == null or partyOrganizationVO.keyWord == ''">
+                AND cpo.parent_id = 0
+            </if>
+            <if test="partyOrganizationVO.keyWord != null and partyOrganizationVO.keyWord != ''">
+                and cpo.`name` like CONCAT(#{partyOrganizationVO.keyWord}, '%')
+            </if>
+            <if test="partyOrganizationVO.subjection != null">
+                and cpo.subjection = #{partyOrganizationVO.subjection}
+            </if>
+            <if test="partyOrganizationVO.areaId != null">
+                and cpo.area_id = #{partyOrganizationVO.areaId}
+            </if>
+            <if test="partyOrganizationVO.buildId != null">
+                and cpo.build_id = #{partyOrganizationVO.buildId}
+            </if>
+        </where>
+        GROUP BY cpo.id
+        ORDER BY cpo.id desc
+    </select>
+
+    <select id="getChildOrgList" resultType="com.panzhihua.common.model.vos.partybuilding.west.PartyOrganizationVO">
+        SELECT
+            cpo.id,
+            cpo.`name`,
+            cpo.`status`,
+            cpo.parent_id,
+            cpo.subjection,
+            cpo.area_id,
+            cpo.build_id,
+            cpo.address,
+            cpo.longitude,
+            cpo.latitude,
+            cpo.type,
+            cmv.`name` AS areaName,
+            cmb.`name` AS buildName,
+            cpmr.`name` AS userName,
+            cpmr.phone AS phone,
+            (select count(id) from com_pb_member where org_id = cpo.id and audit_result = 1) as countPerson
+        FROM
+            com_pb_org AS cpo
+            LEFT JOIN com_mng_village AS cmv ON cmv.village_id = cpo.area_id
+            LEFT JOIN com_pb_member_role AS cpmr ON cpmr.org_id = cpo.id
+            left join com_mng_building as cmb on cmb.id = cpo.build_id
+        <where>
+            <if test="partyOrganizationVO.parentId != null">
+                AND cpo.parent_id = ${partyOrganizationVO.parentId}
+            </if>
+            <if test="partyOrganizationVO.communityId != null">
+                and cpo.community_id = ${partyOrganizationVO.communityId}
+            </if>
+            <if test="partyOrganizationVO.subjection != null">
+                and cpo.subjection = #{partyOrganizationVO.subjection}
+            </if>
+            <if test="partyOrganizationVO.areaId != null">
+                and cpo.area_id = #{partyOrganizationVO.areaId}
+            </if>
+            <if test="partyOrganizationVO.buildId != null">
+                and cpo.build_id = #{partyOrganizationVO.buildId}
+            </if>
+        </where>
+        GROUP BY cpo.id
+        ORDER BY cpo.id desc
+    </select>
+
+    <select id="getPbOrgAllList" resultType="com.panzhihua.common.model.vos.partybuilding.west.PartyOrganizationVO">
+        SELECT
+        cpo.id,
+        cpo.`name`,
+        cpo.`status`,
+        cpo.parent_id,
+        cpo.subjection,
+        cpo.area_id,
+        cpo.build_id,
+        cpo.address,
+        cpo.longitude,
+        cpo.latitude,
+        cpo.type,
+        cmv.`name` AS areaName,
+        cmb.`name` AS buildName,
+        cpmr.`name` AS userName,
+        cpmr.phone AS phone,
+        (select count(id) from com_pb_member where org_id = cpo.id and audit_result = 1) as countPerson
+        FROM
+        com_pb_org AS cpo
+        LEFT JOIN com_mng_village AS cmv ON cmv.village_id = cpo.area_id
+        LEFT JOIN com_pb_member_role AS cpmr ON cpmr.org_id = cpo.id
+        left join com_mng_building as cmb on cmb.id = cpo.build_id
+        <where>
+            <if test="partyOrganizationVO.communityId != null">
+                and cpo.community_id = ${partyOrganizationVO.communityId}
+            </if>
+            <if test="partyOrganizationVO.keyWord == null or partyOrganizationVO.keyWord == ''">
+                AND cpo.parent_id = 0
+            </if>
+            <if test="partyOrganizationVO.keyWord != null and partyOrganizationVO.keyWord != ''">
+                and cpo.`name` like CONCAT(#{partyOrganizationVO.keyword}, '%')
+            </if>
+            <if test="partyOrganizationVO.subjection != null">
+                and cpo.subjection = #{partyOrganizationVO.subjection}
+            </if>
+            <if test="partyOrganizationVO.areaId != null">
+                and cpo.area_id = #{partyOrganizationVO.areaId}
+            </if>
+            <if test="partyOrganizationVO.buildId != null">
+                and cpo.build_id = #{partyOrganizationVO.buildId}
+            </if>
+        </where>
+        GROUP BY cpo.id
+        ORDER BY cpo.id desc
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComPbServiceTeamMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComPbServiceTeamMapper.xml
new file mode 100644
index 0000000..7f1a42b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/ComPbServiceTeamMapper.xml
@@ -0,0 +1,74 @@
+<?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_dangjian.dao.ComPbServiceTeamDAO">
+
+    <resultMap type="com.panzhihua.service_dangjian.model.dos.ComPbServiceTeamDO" id="ComPbServiceTeamMap">
+        <result property="id" column="id" jdbcType="INTEGER"/>
+        <result property="name" column="name" jdbcType="VARCHAR"/>
+        <result property="job" column="job" jdbcType="VARCHAR"/>
+        <result property="jobTwo" column="job_two" jdbcType="VARCHAR"/>
+        <result property="url" column="url" jdbcType="VARCHAR"/>
+        <result property="createAt" column="create_at" jdbcType="TIMESTAMP"/>
+        <result property="communityId" column="community_id" jdbcType="INTEGER"/>
+        <result property="jobResponsibilities" column="job_responsibilities" jdbcType="VARCHAR"/>
+        <result property="phone" column="phone" jdbcType="VARCHAR"/>
+        <result property="isReg" column="is_reg" jdbcType="INTEGER"/>
+        <result property="cardNo" column="card_no" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <select id="PageComPbServiceTeamDTO"
+            resultType="com.panzhihua.common.model.vos.partybuilding.west.ComPbServiceTeamVO">
+        SELECT t1.*, t2.`name` AS communityName
+        FROM com_pb_service_team t1
+        LEFT JOIN com_act t2 ON t1.community_id = t2.community_id
+        WHERE 1=1
+        <if test="pageComPbServiceTeamDTO.streetId != null">
+            AND t2.street_id = #{pageComPbServiceTeamDTO.streetId}
+        </if>
+        <if test="pageComPbServiceTeamDTO.communityId != null">
+            AND t1.community_id = ${pageComPbServiceTeamDTO.communityId}
+        </if>
+        <if test ="pageComPbServiceTeamDTO.name != null and pageComPbServiceTeamDTO.name.trim() != &quot;&quot;">
+            AND t1.`name` LIKE concat(#{pageComPbServiceTeamDTO.name}, '%' )
+        </if>
+        <if test="pageComPbServiceTeamDTO.keyword != null and pageComPbServiceTeamDTO.keyword.trim() != &quot;&quot;">
+            AND(t1.`name` LIKE concat(#{pageComPbServiceTeamDTO.keyword}, '%' )
+            OR t1.phone LIKE concat(#{pageComPbServiceTeamDTO.keyword}, '%' ))
+        </if>
+        <if test="pageComPbServiceTeamDTO.job != null and pageComPbServiceTeamDTO.job.trim() != &quot;&quot;">
+            AND t1.job LIKE concat( #{pageComPbServiceTeamDTO.job}, '%')
+        </if>
+    </select>
+
+
+    <select id="getComPbServiceTeamData" resultType="com.panzhihua.common.model.vos.partybuilding.ComPbServiceTeamVO">
+        SELECT t1.*, t2.`name` AS communityName
+        FROM com_pb_service_team t1
+        LEFT JOIN com_act t2 ON t1.community_id = t2.community_id
+        <where>
+            1=1
+            <if test=" communityId != null and communityId != '' ">
+                AND t1.community_id = #{communityId}
+            </if>
+            <if test="phone != null and phone != '' ">
+                AND t1.phone = #{phone}
+            </if>
+        </where>
+    </select>
+
+
+
+
+    <select id="pageServiceTeamProperty"
+            resultType="com.panzhihua.common.model.vos.partybuilding.ComPbServiceTeamVO">
+        select * from com_pb_service_team where property_id=#{pageComPbServiceTeamDTO.propertyId}
+        <if test="pageComPbServiceTeamDTO.name != null and pageComPbServiceTeamDTO.name != ''">
+            AND name like concat('%',#{pageComPbServiceTeamDTO.name},'%')
+        </if>
+        <if test="pageComPbServiceTeamDTO.job != null and pageComPbServiceTeamDTO.job != ''">
+            AND name like concat('%',#{pageComPbServiceTeamDTO.job},'%')
+        </if>
+    </select>
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NeedProblemClaimMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NeedProblemClaimMapper.xml
new file mode 100644
index 0000000..da3f74a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NeedProblemClaimMapper.xml
@@ -0,0 +1,546 @@
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.panzhihua.service_dangjian.dao.NeedProblemClaimDAO">
+
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id,
+        task_id,
+        user_id,
+        punch_start_time,
+        punch_end_time,
+        service_time,
+        unit_id,
+        creation_time,
+        update_time
+    </sql>
+
+
+    <select id="getList" resultType="com.panzhihua.common.model.dtos.partybuilding.NeedProblemClaimDTO">
+        SELECT
+            nfnpc.id,
+            nfnpc.task_id,
+            nfnpc.user_id,
+            su.name as userName,
+            su.image_url as userImage,
+            nfnpc.punch_start_time,
+            nfnpc.punch_end_time,
+            nfnpc.service_time,
+            nfnpc.unit_id,
+            nfnpc.creation_time,
+            nfnpc.update_time
+        FROM
+            new_fight_need_problem_claim as nfnpc
+        LEFT JOIN sys_user as su ON su.user_id=nfnpc.user_id
+        <where>
+            1=1
+            <if test="taskId !=null and taskId != '' ">
+                and nfnpc.task_id =#{taskId}
+            </if>
+            <if test="userId !=null and userId != '' ">
+                and nfnpc.user_id =#{userId}
+            </if>
+            <if test="unitId !=null and unitId != '' ">
+                and nfnpc.unit_id =#{unitId}
+            </if>
+        </where>
+    </select>
+
+
+    <select id="getDetails" resultType="com.panzhihua.common.model.dtos.partybuilding.NeedProblemClaimDTO">
+        SELECT
+            nfnpc.id,
+            nfnpc.task_id,
+            nfnpc.user_id,
+            su.name as userName,
+            su.image_url as userImage,
+            nfnpc.punch_start_time,
+            nfnpc.punch_end_time,
+            nfnpc.service_time,
+            nfnpc.unit_id,
+            nfnpc.creation_time,
+            nfnpc.update_time
+        FROM
+        new_fight_need_problem_claim as nfnpc
+        LEFT JOIN sys_user as su ON su.user_id=nfnpc.user_id
+        <where>
+            1=1
+            <if test="id !=null and id != '' ">
+                and nfnpc.id =#{id}
+            </if>
+            <if test="taskId !=null and taskId != '' ">
+                and nfnpc.task_id =#{taskId}
+            </if>
+            <if test="userId !=null and userId != '' ">
+                and nfnpc.user_id =#{userId}
+            </if>
+        </where>
+    </select>
+
+
+
+    <select id="getUserIdDetails" resultType="com.panzhihua.common.model.dtos.partybuilding.NeedProblemClaimDTO">
+        SELECT
+            nfnpc.id,
+            nfnpc.task_id,
+            nfnpc.user_id,
+            su.name as userName,
+            su.image_url as userImage,
+            nfnpc.punch_start_time,
+            nfnpc.punch_end_time,
+            nfnpc.service_time,
+            nfnpc.unit_id,
+            nfnpc.creation_time,
+            nfnpc.update_time
+        FROM
+        new_fight_need_problem_claim as nfnpc
+        LEFT JOIN sys_user as su ON su.user_id=nfnpc.user_id
+        <where>
+            1=1
+            <if test="taskId !=null and taskId != '' ">
+                and nfnpc.task_id =#{taskId}
+            </if>
+            <if test="userId !=null and userId != '' ">
+                and nfnpc.user_id =#{userId}
+            </if>
+        </where>
+        LIMIT 1
+    </select>
+
+
+    <insert id="addData">
+        insert into new_fight_need_problem_claim
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null" >
+                id,
+            </if>
+            <if test="item.taskId != null  and item.taskId != '' " >
+                task_id,
+            </if>
+            <if test="item.userId != null  and item.userId != '' " >
+                user_id,
+            </if>
+            <if test="item.punchStartTime != null" >
+                punch_start_time,
+            </if>
+            <if test="item.punchEndTime != null" >
+                punch_end_time,
+            </if>
+            <if test="item.serviceTime != null and item.serviceTime != '' " >
+                service_time,
+            </if>
+            <if test="item.unitId !=null and item.unitId != '' ">
+                unit_id,
+            </if>
+
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null" >
+                #{item.id},
+            </if>
+            <if test="item.taskId != null  and item.taskId != '' " >
+                #{item.taskId},
+            </if>
+            <if test="item.userId != null  and item.userId != '' " >
+                #{item.userId},
+            </if>
+            <if test="item.punchStartTime != null" >
+                #{item.punchStartTime},
+            </if>
+            <if test="item.punchEndTime != null" >
+                #{item.punchEndTime},
+            </if>
+            <if test="item.serviceTime != null and item.serviceTime != '' " >
+                #{item.serviceTime},
+            </if>
+            <if test="item.unitId !=null and item.unitId != '' ">
+                #{item.unitId},
+            </if>
+
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="editData">
+        update new_fight_need_problem_claim
+        <set>
+            <if test="item.id != null" >
+                id=#{item.id},
+            </if>
+            <if test="item.taskId != null  and item.taskId != '' " >
+                task_id=#{item.taskId},
+            </if>
+            <if test="item.userId != null  and item.userId != '' " >
+                user_id=#{item.userId},
+            </if>
+            <if test="item.punchStartTime != null" >
+                punch_start_time=#{item.punchStartTime},
+            </if>
+            <if test="item.punchEndTime != null" >
+                punch_end_time=#{item.punchEndTime},
+            </if>
+            <if test="item.serviceTime != null and item.serviceTime != '' " >
+                service_time=#{item.serviceTime},
+            </if>
+            <if test="item.unitId !=null and item.unitId != '' ">
+                unit_id=#{item.unitId},
+            </if>
+            update_time=sysdate()
+        </set>
+        <where>
+            1=1
+            <if test="item.id!=null and item.id != '' ">
+                and id = #{item.id}
+            </if>
+            <if test="item.userId !=null and item.userId != '' ">
+                and user_id=#{item.userId}
+            </if>
+            <if test="item.taskId !=null and item.taskId != '' ">
+                and task_id=#{item.taskId}
+            </if>
+        </where>
+    </update>
+
+    <delete id="expurgateData" parameterType="String">
+        delete from new_fight_need_problem_claim
+        <where>
+            1=1
+            <if test="id!=null and id != '' ">
+                and id=#{id}
+            </if>
+            <if test="userId !=null and userId != '' ">
+                and user_id=#{userId}
+            </if>
+            <if test="taskId !=null and taskId != '' ">
+                and task_id=#{taskId}
+            </if>
+        </where>
+    </delete>
+
+    <select id="getJionNum" resultType="int">
+        SELECT
+            count(id)
+        FROM
+            new_fight_need_problem_claim
+        <where>
+            1=1
+            <if test="taskId !=null and taskId != '' ">
+                and task_id =#{taskId}
+            </if>
+            <if test="userId !=null and userId != '' ">
+                and user_id =#{userId}
+            </if>
+        </where>
+    </select>
+
+
+
+    <select id="getUserIntegral" resultType="com.panzhihua.service_dangjian.entity.UserIntegral">
+        select
+            id,
+            user_id,
+            update_at,
+            status,
+            integral_volunteer,
+            integral_sum,
+            integral_resident,
+            integral_party_time,
+            integral_party,
+            integral_frozen_volunteer,
+            integral_frozen_sum,
+            integral_frozen_resident,
+            integral_frozen_party,
+            integral_available_volunteer,
+            integral_available_sum,
+            integral_available_resident,
+            integral_available_party,
+            create_at,
+            community_id
+        from com_act_integral_user
+        where user_id =#{userId} and community_id=#{communityId}
+    </select>
+
+
+
+    <insert id="addUserIntegral" useGeneratedKeys="true" keyProperty="id">
+        insert into com_act_integral_user
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                id,
+            </if>
+            <if test="item.communityId !=null and item.communityId !='' ">
+                community_id,
+            </if>
+            <if test="item.userId !=null and item.userId !='' ">
+                user_id,
+            </if>
+            <if test="item.status !=null and item.status !='' ">
+                status,
+            </if>
+            <if test="item.integralVolunteer !=null and item.integralVolunteer !='' ">
+                integral_volunteer,
+            </if>
+            <if test="item.integralSum !=null and item.integralSum !='' ">
+                integral_sum,
+            </if>
+            <if test="item.integralResident !=null and item.integralResident !='' ">
+                integral_resident,
+            </if>
+            <if test="item.integralPartyTime !=null and item.integralPartyTime !='' ">
+                integral_party_time,
+            </if>
+            <if test="item.integralParty !=null and item.integralParty !='' ">
+                integral_party,
+            </if>
+            <if test="item.integralFrozenVolunteer !=null and item.integralFrozenVolunteer !='' ">
+                integral_frozen_volunteer,
+            </if>
+            <if test="item.integralFrozenSum !=null and item.integralFrozenSum !='' ">
+                integral_frozen_sum,
+            </if>
+            <if test="item.integralFrozenResident !=null and item.integralFrozenResident !='' ">
+                integral_frozen_resident,
+            </if>
+            <if test="item.integralFrozenParty !=null and item.integralFrozenParty !='' ">
+                integral_frozen_party,
+            </if>
+            <if test="item.integralAvailableVolunteer !=null and item.integralAvailableVolunteer !='' ">
+                integral_available_volunteer,
+            </if>
+            <if test="item.integralAvailableSum !=null and item.integralAvailableSum !='' ">
+                integral_available_sum,
+            </if>
+            <if test="item.integralAvailableResident !=null and item.integralAvailableResident !='' ">
+                integral_available_resident,
+            </if>
+            <if test="item.integralAvailableParty !=null and item.integralAvailableParty !='' ">
+                integral_available_party,
+            </if>
+            create_at
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                #{item.id},
+            </if>
+            <if test="item.communityId !=null and item.communityId !='' ">
+                #{item.communityId},
+            </if>
+            <if test="item.userId !=null and item.userId !='' ">
+                #{item.userId},
+            </if>
+            <if test="item.status !=null and item.status !='' ">
+                #{item.status},
+            </if>
+            <if test="item.integralVolunteer !=null and item.integralVolunteer !='' ">
+                #{item.integralVolunteer},
+            </if>
+            <if test="item.integralSum !=null and item.integralSum !='' ">
+                #{item.integralSum},
+            </if>
+            <if test="item.integralResident !=null and item.integralResident !='' ">
+                #{item.integralResident},
+            </if>
+            <if test="item.integralPartyTime !=null and item.integralPartyTime !='' ">
+                #{item.integralPartyTime},
+            </if>
+            <if test="item.integralParty !=null and item.integralParty !='' ">
+                #{item.integralParty},
+            </if>
+            <if test="item.integralFrozenVolunteer !=null and item.integralFrozenVolunteer !='' ">
+                #{item.integralFrozenVolunteer},
+            </if>
+            <if test="item.integralFrozenSum !=null and item.integralFrozenSum !='' ">
+                #{item.integralFrozenSum},
+            </if>
+            <if test="item.integralFrozenResident !=null and item.integralFrozenResident !='' ">
+                #{item.integralFrozenResident},
+            </if>
+            <if test="item.integralFrozenParty !=null and item.integralFrozenParty !='' ">
+                #{item.integralFrozenParty},
+            </if>
+            <if test="item.integralAvailableVolunteer !=null and item.integralAvailableVolunteer !='' ">
+                #{item.integralAvailableVolunteer},
+            </if>
+            <if test="item.integralAvailableSum !=null and item.integralAvailableSum !='' ">
+                #{item.integralAvailableSum},
+            </if>
+            <if test="item.integralAvailableResident !=null and item.integralAvailableResident !='' ">
+                #{item.integralAvailableResident},
+            </if>
+            <if test="item.integralAvailableParty !=null and item.integralAvailableParty !='' ">
+                #{item.integralAvailableParty},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="editUserIntegral">
+        update com_act_integral_user
+        <set>
+            <if test="item.id != null and item.id != '' ">
+                id=#{item.id},
+            </if>
+            <if test="item.communityId !=null and item.communityId !='' ">
+                community_id=#{item.communityId},
+            </if>
+            <if test="item.userId !=null and item.userId !='' ">
+                user_id=#{item.userId},
+            </if>
+            <if test="item.status !=null and item.status !='' ">
+                status=#{item.status},
+            </if>
+            <if test="item.integralVolunteer !=null and item.integralVolunteer !='' ">
+                integral_volunteer=#{item.integralVolunteer},
+            </if>
+            <if test="item.integralSum !=null and item.integralSum !='' ">
+                integral_sum=#{item.integralSum},
+            </if>
+            <if test="item.integralResident !=null and item.integralResident !='' ">
+                integral_resident=#{item.integralResident},
+            </if>
+            <if test="item.integralPartyTime !=null and item.integralPartyTime !='' ">
+                integral_party_time=#{item.integralPartyTime},
+            </if>
+            <if test="item.integralParty !=null and item.integralParty !='' ">
+                integral_party=#{item.integralParty},
+            </if>
+            <if test="item.integralFrozenVolunteer !=null and item.integralFrozenVolunteer !='' ">
+                integral_frozen_volunteer=#{item.integralFrozenVolunteer},
+            </if>
+            <if test="item.integralFrozenSum !=null and item.integralFrozenSum !='' ">
+                integral_frozen_sum=#{item.integralFrozenSum},
+            </if>
+            <if test="item.integralFrozenResident !=null and item.integralFrozenResident !='' ">
+                integral_frozen_resident=#{item.integralFrozenResident},
+            </if>
+            <if test="item.integralFrozenParty !=null and item.integralFrozenParty !='' ">
+                integral_frozen_party=#{item.integralFrozenParty},
+            </if>
+            <if test="item.integralAvailableVolunteer !=null and item.integralAvailableVolunteer !='' ">
+                integral_available_volunteer=#{item.integralAvailableVolunteer},
+            </if>
+            <if test="item.integralAvailableSum !=null and item.integralAvailableSum !='' ">
+                integral_available_sum=#{item.integralAvailableSum},
+            </if>
+            <if test="item.integralAvailableResident !=null and item.integralAvailableResident !='' ">
+                integral_available_resident=#{item.integralAvailableResident},
+            </if>
+            <if test="item.integralAvailableParty !=null and item.integralAvailableParty !='' ">
+                integral_available_party=#{item.integralAvailableParty},
+            </if>
+            update_at=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+
+
+    <insert id="addUserIntegralTrade" useGeneratedKeys="true" keyProperty="id">
+        insert into com_act_integral_user_trade
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                id,
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                user_id,
+            </if>
+            <if test="item.integralId != null and item.integralId != '' ">
+                integral_id,
+            </if>
+            <if test="item.communityId != null and item.communityId != '' ">
+                community_id,
+            </if>
+            <if test="item.serviceId != null and item.serviceId != '' ">
+                service_id,
+            </if>
+            <if test="item.serviceType != null and item.serviceType != '' ">
+                service_type,
+            </if>
+            <if test="item.amount != null and item.amount != '' ">
+                amount,
+            </if>
+            <if test="item.changeType != null and item.changeType != '' ">
+                change_type,
+            </if>
+            <if test="item.remark != null and item.remark != '' ">
+                remark,
+            </if>
+            <if test="item.identityType != null and item.identityType != '' ">
+                identity_type,
+            </if>
+            <if test="item.createBy != null and item.createBy != '' ">
+                create_by,
+            </if>
+            create_at
+        </trim>
+        values
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                #{item.id},
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                #{item.userId},
+            </if>
+            <if test="item.integralId != null and item.integralId != '' ">
+                #{item.integralId},
+            </if>
+            <if test="item.communityId != null and item.communityId != '' ">
+                #{item.communityId},
+            </if>
+            <if test="item.serviceId != null and item.serviceId != '' ">
+                #{item.serviceType},
+            </if>
+            <if test="item.serviceType != null and item.serviceType != '' ">
+                #{item.serviceType},
+            </if>
+            <if test="item.amount != null and item.amount != '' ">
+                #{item.amount},
+            </if>
+            <if test="item.changeType != null and item.changeType != '' ">
+                #{item.changeType},
+            </if>
+            <if test="item.remark != null and item.remark != '' ">
+                #{item.remark},
+            </if>
+            <if test="item.identityType != null and item.identityType != '' ">
+                #{item.identityType},
+            </if>
+            <if test="item.createBy != null and item.createBy != '' ">
+                #{item.createBy},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+
+    <!--  获取未签退活动id数据  -->
+    <select id="getNotTimeTaskList" resultType="String">
+        select task_id from new_fight_need_problem_claim where punch_start_time is not null and punch_end_time is null group by task_id
+    </select>
+
+
+    <!--  根据活动id获取没有签退的人员  -->
+    <select id="getNotTimeId" resultType="com.panzhihua.common.model.dtos.partybuilding.NeedProblemClaimDTO">
+        select id,punch_start_time,punch_end_time from new_fight_need_problem_claim where punch_start_time is not null and punch_end_time is null and task_id =#{taskId}
+    </select>
+
+
+    <select id="getActivityEndTime" resultType="com.panzhihua.common.model.dtos.partybuilding.NeedProblemInventoryDTO">
+        select id,need_end_time,need_start_time from new_fight_need_problem_inventory where id=#{taskId}
+    </select>
+
+
+    <update id="updateEndTime">
+        update new_fight_need_problem_claim
+        set punch_end_time=#{data}, service_time=#{serviceTime}
+        where id = #{id}
+    </update>
+
+
+
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NeedProblemInventoryMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NeedProblemInventoryMapper.xml
new file mode 100644
index 0000000..b86d9d5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NeedProblemInventoryMapper.xml
@@ -0,0 +1,482 @@
+<?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_dangjian.dao.NeedProblemInventoryDAO">
+
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id,
+        title,
+        classify_id,
+        claim_num,
+        address,
+        lat,
+        lon,
+        claim_start_time,
+        claim_end_time,
+        need_start_time,
+        need_end_time,
+        linkman,
+        phone,
+        sign_in_scope,
+        sign_out_scope,
+        award,
+        content,
+        imgs_url,
+        creation_time,
+        update_time,
+        kind,
+        community_id,
+        is_display,
+        user_id
+    </sql>
+
+
+    <select id="getList" resultType="com.panzhihua.common.model.dtos.partybuilding.NeedProblemInventoryDTO">
+        SELECT
+            nfpi.id,
+            nfpi.title,
+            nfpi.classify_id,
+            canct.name as classifyName,
+            nfpi.claim_num,
+            nfpi.address,
+            nfpi.lat,
+            nfpi.lon,
+            nfpi.claim_start_time,
+            nfpi.claim_end_time,
+            nfpi.need_start_time,
+            nfpi.need_end_time,
+            nfpi.linkman,
+            nfpi.phone,
+            nfpi.sign_in_scope,
+            nfpi.sign_out_scope,
+            nfpi.award,
+            nfpi.content,
+            nfpi.imgs_url,
+            nfpi.creation_time,
+            nfpi.update_time,
+            nfpi.kind,
+            nfpi.community_id,
+            nfnpc.punch_start_time,
+            nfnpc.punch_end_time,
+            if(nfnpc.user_id>0,1,0) as isJoin,
+            (select count(task_id) from new_fight_need_problem_claim where task_id=nfpi.id) as joinNum,
+            nfnpc.service_time,
+            nfpi.status,
+            nfpi.is_display,
+            nfpi.user_id
+        FROM new_fight_need_problem_inventory as nfpi
+        left join com_act_neighbor_circle_topic_new as canct on canct.id=nfpi.classify_id
+        left join new_fight_need_problem_claim as nfnpc on nfnpc.task_id=nfpi.id
+            <if test="userIds !=null and userIds != '' ">
+                and nfnpc.user_id=#{userIds}
+            </if>
+        <where>
+            1=1
+            <if test="search !=null and search != '' ">
+                and nfpi.title like concat ('%',#{search},'%')
+            </if>
+            <if test="isDisplay !=null and isDisplay != '' ">
+                and nfpi.is_display=#{isDisplay}
+            </if>
+            <if test="classifyId !=null and classifyId != '' ">
+                and nfpi.classify_id=#{classifyId}
+            </if>
+            <if test="status !=null and status != '' ">
+                and nfpi.status =#{status}
+            </if>
+            <if test="kind !=null and kind != '' ">
+                and nfpi.kind =#{kind}
+            </if>
+            <if test="communityId !=null and communityId != '' ">
+                and nfpi.community_id =#{communityId}
+            </if>
+            <if test="userId !=null and userId != '' ">
+                and nfpi.user_id =#{userId}
+            </if>
+            <if test="startTime != null">
+                AND nfpi.creation_time <![CDATA[ >= ]]> #{startTime}
+            </if>
+            <if test="endTime != null">
+                AND nfpi.creation_time <![CDATA[ <= ]]> #{endTime}
+            </if>
+        </where>
+        GROUP BY nfpi.id
+        order by nfpi.status asc,nfpi.creation_time desc
+    </select>
+
+
+    <select id="getMyJoinList" resultType="com.panzhihua.common.model.dtos.partybuilding.NeedProblemInventoryDTO">
+        SELECT
+            nfpi.id,
+            nfpi.title,
+            nfpi.classify_id,
+            canct.name as classifyName,
+            nfpi.claim_num,
+            nfpi.address,
+            nfpi.lat,
+            nfpi.lon,
+            nfpi.claim_start_time,
+            nfpi.claim_end_time,
+            nfpi.need_start_time,
+            nfpi.need_end_time,
+            nfpi.linkman,
+            nfpi.phone,
+            nfpi.sign_in_scope,
+            nfpi.sign_out_scope,
+            nfpi.award,
+            nfpi.content,
+            nfpi.imgs_url,
+            nfpi.creation_time,
+            nfpi.update_time,
+            nfpi.kind,
+            nfpi.community_id,
+            nfnpc.punch_start_time,
+            nfnpc.punch_end_time,
+            if(nfnpc.user_id>0,1,0) as isJoin,
+            (select count(task_id) from new_fight_need_problem_claim where task_id=nfpi.id) as joinNum,
+            nfpi.status,
+            nfpi.is_display,
+            nfpi.user_id
+        FROM new_fight_need_problem_inventory as nfpi
+        left join com_act_neighbor_circle_topic_new as canct on canct.id=nfpi.classify_id
+        left join new_fight_need_problem_claim as nfnpc on nfnpc.task_id=nfpi.id
+        <if test="userIds !=null and userIds != '' ">
+            and nfnpc.user_id=#{userIds}
+        </if>
+        <where>
+            1=1
+            <if test="isDisplay !=null and isDisplay != '' ">
+                and nfpi.is_display=#{isDisplay}
+            </if>
+            <if test="search !=null and search != '' ">
+                and nfpi.title like concat ('%',#{search},'%')
+            </if>
+            <if test="status !=null and status != '' ">
+                and nfpi.status =#{status}
+            </if>
+            <if test="kind !=null and kind != '' ">
+                and nfpi.kind =#{kind}
+            </if>
+            <if test="userId !=null and userId != '' ">
+                and nfpi.id in(SELECT task_id FROM new_fight_need_problem_claim where user_id=#{userId} )
+            </if>
+            <if test="startTime != null ">
+                AND nfpi.creation_time <![CDATA[ >= ]]> #{startTime}
+            </if>
+            <if test="endTime != null ">
+                AND nfpi.creation_time <![CDATA[ <= ]]> #{endTime}
+            </if>
+        </where>
+        GROUP BY nfpi.id
+        order by nfpi.status asc,nfpi.creation_time desc
+    </select>
+
+
+    <select id="getDetails" resultType="com.panzhihua.common.model.dtos.partybuilding.NeedProblemInventoryDTO">
+        SELECT
+            nfpi.id,
+            nfpi.title,
+            nfpi.classify_id,
+            canct.name as classifyName,
+            nfpi.claim_num,
+            nfpi.address,
+            nfpi.lat,
+            nfpi.lon,
+            nfpi.claim_start_time,
+            nfpi.claim_end_time,
+            nfpi.need_start_time,
+            nfpi.need_end_time,
+            nfpi.linkman,
+            nfpi.phone,
+            nfpi.sign_in_scope,
+            nfpi.sign_out_scope,
+            nfpi.award,
+            nfpi.content,
+            nfpi.imgs_url,
+            nfpi.creation_time,
+            nfpi.update_time,
+            nfpi.kind,
+            nfpi.community_id,
+            nfnpc.punch_start_time,
+            nfnpc.punch_end_time,
+            if(nfnpc.user_id>0,1,0) as isJoin,
+            (select count(task_id) from new_fight_need_problem_claim where task_id=nfpi.id) as joinNum,
+            nfpi.status,
+            nfnpc.service_time,
+            nfpi.is_display,
+            nfpi.user_id
+        FROM new_fight_need_problem_inventory as nfpi
+        left join com_act_neighbor_circle_topic_new as canct on canct.id=nfpi.classify_id
+        left join new_fight_need_problem_claim as nfnpc on nfnpc.task_id=nfpi.id and nfnpc.user_id=#{userIds}
+        <where>
+            1=1
+            <if test="id !=null and id != '' ">
+                and nfpi.id =#{id}
+            </if>
+        </where>
+        GROUP BY nfpi.id
+    </select>
+
+
+    <insert id="addData" useGeneratedKeys="true" keyProperty="id">
+        insert into new_fight_need_problem_inventory
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null" >
+                id,
+            </if>
+            <if test="item.title != null and item.title !='' " >
+                title,
+            </if>
+            <if test="item.classifyId != null and item.classifyId !='' " >
+                classify_id,
+            </if>
+            <if test="item.claimNum != null and item.claimNum !='' " >
+                claim_num,
+            </if>
+            <if test="item.address != null and item.address !='' " >
+                address,
+            </if>
+            <if test="item.lat != null and item.lat !='' " >
+                lat,
+            </if>
+            <if test="item.lon != null and item.lon !='' " >
+                lon,
+            </if>
+            <if test="item.claimStartTime != null" >
+                claim_start_time,
+            </if>
+            <if test="item.claimEndTime != null " >
+                claim_end_time,
+            </if>
+            <if test="item.needStartTime != null" >
+                need_start_time,
+            </if>
+            <if test="item.needEndTime != null" >
+                need_end_time,
+            </if>
+            <if test="item.linkman != null and item.linkman !='' " >
+                linkman,
+            </if>
+            <if test="item.phone != null and item.phone !='' " >
+                phone,
+            </if>
+            <if test="item.signInScope != null and item.signInScope !='' " >
+                sign_in_scope,
+            </if>
+            <if test="item.signOutScope != null and item.signOutScope !='' " >
+                sign_out_scope,
+            </if>
+            <if test="item.award != null and item.award !='' " >
+                award,
+            </if>
+            <if test="item.content != null and item.content !='' " >
+                content,
+            </if>
+            <if test="item.imgsUrl != null and item.imgsUrl !='' " >
+                imgs_url,
+            </if>
+            <if test="item.kind != null and item.kind !='' " >
+                kind,
+            </if>
+            <if test="item.userId != null and item.userId !='' " >
+                user_id,
+            </if>
+            <if test="item.communityId != null and item.communityId !='' " >
+                community_id,
+            </if>
+            <if test="item.status != null and item.status !='' " >
+                status,
+            </if>
+            <if test="item.isDisplay != null and item.isDisplay !='' " >
+                is_display,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null" >
+                #{item.id},
+            </if>
+            <if test="item.title != null and item.title !='' " >
+                #{item.title},
+            </if>
+            <if test="item.classifyId != null and item.classifyId !='' " >
+                #{item.classifyId},
+            </if>
+            <if test="item.claimNum != null and item.claimNum !='' " >
+                #{item.claimNum},
+            </if>
+            <if test="item.address != null and item.address !='' " >
+                #{item.address},
+            </if>
+            <if test="item.lat != null and item.lat !='' " >
+                #{item.lat},
+            </if>
+            <if test="item.lon != null and item.lon !='' " >
+                #{item.lon},
+            </if>
+            <if test="item.claimStartTime != null" >
+                #{item.claimStartTime},
+            </if>
+            <if test="item.claimEndTime != null " >
+                #{item.claimEndTime},
+            </if>
+            <if test="item.needStartTime != null" >
+                #{item.needStartTime},
+            </if>
+            <if test="item.needEndTime != null" >
+                #{item.needEndTime},
+            </if>
+            <if test="item.linkman != null and item.linkman !='' " >
+                #{item.linkman},
+            </if>
+            <if test="item.phone != null and item.phone !='' " >
+                #{item.phone},
+            </if>
+            <if test="item.signInScope != null and item.signInScope !='' " >
+                #{item.signInScope},
+            </if>
+            <if test="item.signOutScope != null and item.signOutScope !='' " >
+                #{item.signOutScope},
+            </if>
+            <if test="item.award != null and item.award !='' " >
+                #{item.award},
+            </if>
+            <if test="item.content != null and item.content !='' " >
+                #{item.content},
+            </if>
+            <if test="item.imgsUrl != null and item.imgsUrl !='' " >
+                #{item.imgsUrl},
+            </if>
+            <if test="item.kind != null and item.kind !='' " >
+                #{item.kind},
+            </if>
+            <if test="item.userId != null and item.userId !='' " >
+                #{item.userId},
+            </if>
+            <if test="item.communityId != null and item.communityId !='' " >
+                #{item.communityId},
+            </if>
+            <if test="item.status != null and item.status !='' " >
+                #{item.status},
+            </if>
+            <if test="item.isDisplay != null and item.isDisplay !='' " >
+                #{item.isDisplay},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="editData">
+        update new_fight_need_problem_inventory
+        <set>
+            <if test="item.id != null" >
+                id=#{item.id},
+            </if>
+            <if test="item.title != null and item.title !='' " >
+                title=#{item.title},
+            </if>
+            <if test="item.classifyId != null and item.classifyId !='' " >
+                classify_id=#{item.classifyId},
+            </if>
+            <if test="item.claimNum != null and item.claimNum !='' " >
+                claim_num=#{item.claimNum},
+            </if>
+            <if test="item.address != null and item.address !='' " >
+                address=#{item.address},
+            </if>
+            <if test="item.lat != null and item.lat !='' " >
+                lat=#{item.lat},
+            </if>
+            <if test="item.lon != null and item.lon !='' " >
+                lon=#{item.lon},
+            </if>
+            <if test="item.claimStartTime != null" >
+                claim_start_time=#{item.claimStartTime},
+            </if>
+            <if test="item.claimEndTime != null " >
+                claim_end_time=#{item.claimEndTime},
+            </if>
+            <if test="item.needStartTime != null" >
+                need_start_time=#{item.needStartTime},
+            </if>
+            <if test="item.needEndTime != null" >
+                need_end_time=#{item.needEndTime},
+            </if>
+            <if test="item.linkman != null and item.linkman !='' " >
+                linkman=#{item.linkman},
+            </if>
+            <if test="item.phone != null and item.phone !='' " >
+                phone=#{item.phone},
+            </if>
+            <if test="item.signInScope != null and item.signInScope !='' " >
+                sign_in_scope=#{item.signInScope},
+            </if>
+            <if test="item.signOutScope != null and item.signOutScope !='' " >
+                sign_out_scope=#{item.signOutScope},
+            </if>
+            <if test="item.award != null and item.award !='' " >
+                award=#{item.award},
+            </if>
+            <if test="item.content != null and item.content !='' " >
+                content=#{item.content},
+            </if>
+            <if test="item.imgsUrl != null and item.imgsUrl !='' " >
+                imgs_url=#{item.imgsUrl},
+            </if>
+            <if test="item.kind != null and item.kind !='' " >
+                kind=#{item.kind},
+            </if>
+            <if test="item.userId != null and item.userId !='' " >
+                user_id=#{item.userId},
+            </if>
+            <if test="item.communityId != null and item.communityId !='' " >
+                community_id=#{item.communityId},
+            </if>
+            <if test="item.status != null and item.status !='' " >
+                status=#{item.status},
+            </if>
+            <if test="item.isDisplay != null and item.isDisplay !='' " >
+                is_display=#{item.isDisplay},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="expurgateData" parameterType="String">
+        delete from new_fight_need_problem_inventory where id=#{id}
+    </delete>
+
+
+<!--    <foreach collection="userIds" item="ids" index="index"-->
+<!--             open="(" close=")" separator=",">-->
+<!--        #{ids}-->
+<!--    </foreach>-->
+
+
+
+    <select id="getTimeList" resultType="com.panzhihua.common.model.dtos.partybuilding.NeedProblemInventoryDTO">
+        SELECT
+        nfpi.id,
+        nfpi.claim_start_time,
+        nfpi.claim_end_time,
+        nfpi.need_start_time,
+        nfpi.need_end_time,
+        nfpi.status
+        FROM new_fight_need_problem_inventory as nfpi
+        where nfpi.status in (1,2)
+
+    </select>
+
+    <select id="getOpenIdList" resultType="string">
+        SELECT s.openid
+        FROM com_pb_member m
+        LEFT JOIN sys_user s on s.user_id=m.user_id
+        WHERE help_community_id=#{communityId}
+    </select>
+
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NeedProblemUnitTaskMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NeedProblemUnitTaskMapper.xml
new file mode 100644
index 0000000..1c0bfbe
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NeedProblemUnitTaskMapper.xml
@@ -0,0 +1,182 @@
+<?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_dangjian.dao.NeedProblemUnitTaskDAO">
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id,
+        task_id,
+        user_id,
+        unit_id,
+        creation_time,
+        update_time
+    </sql>
+
+    <select id="getList" resultType="com.panzhihua.common.model.dtos.partybuilding.NeedProblemUnitTaskDTO">
+        SELECT
+            npi.title,
+            npi.classify_id,
+            npi.claim_num,
+            npi.address,
+            npi.lat,
+            npi.lon,
+            npi.claim_start_time,
+            npi.claim_end_time,
+            npi.need_start_time,
+            npi.need_end_time,
+            npi.linkman,
+            npi.phone,
+            npi.sign_in_scope,
+            npi.sign_out_scope,
+            npi.award,
+            npi.content,
+            npi.imgs_url,
+            npi.kind,
+            npi.community_id,
+            npi.user_id,
+            nput.id,
+            nput.task_id,
+            nput.user_id as unitUserId,
+            nput.unit_id,
+            npi.status,
+            canct.name as classifyName,
+            nput.creation_time,
+            nput.update_time
+        FROM
+            new_fight_need_problem_unit_task as nput
+        LEFT JOIN new_fight_need_problem_inventory AS npi ON npi.id=nput.task_id
+        left join com_act_neighbor_circle_topic as canct on canct.id=npi.classify_id
+        <where>
+            1=1
+            <if test="unitId !=null and unitId != '' ">
+                and nput.unit_id =#{unitId}
+            </if>
+            <if test="kind !=null and kind != '' ">
+                and npi.kind =#{kind}
+            </if>
+            <if test="status !=null and status != '' ">
+                and npi.status =#{status}
+            </if>
+        </where>
+        GROUP BY nput.id
+        order by nput.creation_time desc
+    </select>
+
+    <select id="getDetails" resultType="com.panzhihua.common.model.dtos.partybuilding.NeedProblemUnitTaskDTO">
+        SELECT
+            npi.title,
+            npi.classify_id,
+            npi.claim_num,
+            npi.address,
+            npi.lat,
+            npi.lon,
+            npi.claim_start_time,
+            npi.claim_end_time,
+            npi.need_start_time,
+            npi.need_end_time,
+            npi.linkman,
+            npi.phone,
+            npi.sign_in_scope,
+            npi.sign_out_scope,
+            npi.award,
+            npi.content,
+            npi.imgs_url,
+            npi.kind,
+            npi.community_id,
+            npi.user_id,
+            nput.id,
+            nput.task_id,
+            nput.user_id as unitUserId,
+            nput.unit_id,
+            npi.status,
+            canct.name as classifyName,
+            nput.creation_time,
+            nput.update_time
+        FROM new_fight_need_problem_unit_task as nput
+        LEFT JOIN new_fight_need_problem_inventory AS npi ON npi.task_id=nput.id
+        left join com_act_neighbor_circle_topic as canct on canct.id=npi.classify_id
+        <where>
+            1=1
+            <if test="id !=null and id != '' ">
+                and nput.id =#{id}
+            </if>
+        </where>
+    </select>
+
+    <insert id="addData">
+        insert into new_fight_need_problem_unit_task
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null" >
+                id,
+            </if>
+            <if test="item.taskId != null  and item.taskId != '' " >
+                task_id,
+            </if>
+            <if test="item.userId != null and item.userId != '' " >
+                user_id,
+            </if>
+            <if test="item.unitId != null and item.unitId != '' " >
+                unit_id,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null" >
+                #{item.id},
+            </if>
+            <if test="item.taskId != null  and item.taskId != '' " >
+                #{item.taskId},
+            </if>
+            <if test="item.userId != null and item.userId != '' " >
+                #{item.userId},
+            </if>
+            <if test="item.unitId != null and item.unitId != '' " >
+                #{item.unitId},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="editData">
+        update new_fight_need_problem_unit_task
+        <set>
+            <if test="item.id != null" >
+                id=#{item.id},
+            </if>
+            <if test="item.taskId != null  and item.taskId != '' " >
+                task_id=#{item.taskId},
+            </if>
+            <if test="item.userId != null and item.userId != '' " >
+                user_id=#{item.userId},
+            </if>
+            <if test="item.unitId != null and item.unitId != '' " >
+                unit_id=#{item.unitId},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="expurgateData" parameterType="String">
+        delete from new_fight_need_problem_unit_task where id=#{id}
+    </delete>
+
+
+    <select id="isGet" resultType="Integer" >
+        select count(id) from new_fight_need_problem_unit_task
+        where
+            1=1
+            <if test="taskId != null and taskId != '' ">
+               and task_id=#{taskId}
+            </if>
+            <if test=" unitId != null and unitId != '' ">
+                and unit_id=#{unitId}
+            </if>
+    </select>
+
+
+
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewFightComConvenientMerchantsMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewFightComConvenientMerchantsMapper.xml
new file mode 100644
index 0000000..b8ee823
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewFightComConvenientMerchantsMapper.xml
@@ -0,0 +1,342 @@
+<?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_dangjian.dao.NewFightConvenientMerchantDao">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.panzhihua.service_dangjian.entity.NewFightConvenientMerchant">
+        <id column="id" property="id" />
+        <id column="name" property="name" />
+        <id column="logo" property="logo" />
+        <id column="contacts" property="contacts" />
+        <id column="phone" property="phone" />
+        <id column="address" property="address" />
+        <id column="detailed_address" property="detailedAddress" />
+        <id column="lat" property="lat" />
+        <id column="lon" property="lon" />
+        <id column="introduction" property="introduction" />
+        <id column="is_del" property="isDel" />
+        <id column="created_at" property="createdAt" />
+        <id column="created_by" property="createdBy" />
+        <id column="updated_at" property="updatedAt" />
+        <id column="img_url" property="imgUrl" />
+        <id column="status" property="status" />
+        <id column="business_credit" property="businessCredit" />
+        <id column="community_id" property="communityId" />
+        <id column="user_id" property="userId" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <select id="pageMerchant" resultType="com.panzhihua.service_dangjian.entity.NewFightConvenientMerchant">
+        SELECT
+            id,
+            name,
+            logo,
+            contacts,
+            phone,
+            address,
+            detailed_address,
+            lat,
+            lon,
+            introduction,
+            is_del,
+            created_at,
+            created_by,
+            updated_at,
+            status,
+            business_credit,
+            community_id,
+            user_id,
+            img_url
+        FROM  new_fight_com_convenient_merchants
+        <where>
+            1=1
+            <if test="communityId != null and communityId != '' ">
+                AND community_id=#{communityId}
+            </if>
+            <if test="isDel != null and isDel != '' ">
+                AND is_del=#{isDel}
+            </if>
+            <if test="keyword != null and keyword != &quot;&quot;">
+                AND (
+                ccm.name LIKE CONCAT('%', #{keyword}, '%')
+                OR ccm.address LIKE CONCAT('%', #{keyword}, '%')
+                OR ccm.phone LIKE CONCAT('%', #{keyword}, '%')
+                )
+            </if>
+            <if test="status != null and status != '' ">
+                AND status=#{status}
+            </if>
+        </where>
+        GROUP BY created_at DESC
+    </select>
+
+    <select id="selectMerchantById" resultType="com.panzhihua.service_dangjian.entity.NewFightConvenientMerchant">
+        SELECT
+            id,
+            name,
+            logo,
+            contacts,
+            phone,
+            address,
+            detailed_address,
+            lat,
+            lon,
+            introduction,
+            is_del,
+            created_at,
+            created_by,
+            updated_at,
+            status,
+            business_credit,
+            community_id,
+            user_id,
+            img_url
+        FROM  new_fight_com_convenient_merchants ccm
+        WHERE ccm.id = #{merchantId}
+    </select>
+
+    <update id="deleteMerchantById">
+        UPDATE new_fight_com_convenient_merchants
+        SET is_del = 1
+        WHERE id = #{merchantId}
+    </update>
+
+
+    <update id="editStatus">
+        UPDATE new_fight_com_convenient_merchants
+        SET status = #{status}
+        WHERE id = #{merchantId}
+    </update>
+
+
+    <insert id="addData">
+        insert into new_fight_com_convenient_merchants
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                id,
+            </if>
+            <if test="item.name != null and item.name != '' ">
+                `name`,
+            </if>
+            <if test="item.logo != null and item.logo != '' ">
+                logo,
+            </if>
+            <if test="item.contacts != null and item.contacts != '' ">
+                contacts,
+            </if>
+            <if test="item.phone != null and item.phone != '' ">
+                phone,
+            </if>
+            <if test="item.address != null and item.address != '' ">
+                address,
+            </if>
+            <if test="item.detailedAddress != null and item.detailedAddress != '' ">
+                detailed_address,
+            </if>
+            <if test="item.lat != null and item.lat != '' ">
+                lat,
+            </if>
+            <if test="item.lon != null and item.lon != '' ">
+                lon,
+            </if>
+            <if test="item.introduction != null and item.introduction != '' ">
+                introduction,
+            </if>
+            <if test="item.isDel != null and item.isDel != '' ">
+                is_del,
+            </if>
+            <if test="item.createdBy != null and item.createdBy != '' ">
+                created_by,
+            </if>
+            <if test="item.imgUrl != null and item.imgUrl != '' ">
+                img_url,
+            </if>
+            <if test="item.status != null and item.status != '' ">
+                status,
+            </if>
+            <if test="item.businessCredit != null and item.businessCredit != '' ">
+                business_credit,
+            </if>
+            <if test="item.communityId != null and item.communityId != '' ">
+                community_id,
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                user_id,
+            </if>
+            created_at
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                #{item.id},
+            </if>
+            <if test="item.name != null and item.name != '' ">
+                #{item.name},
+            </if>
+            <if test="item.logo != null and item.logo != '' ">
+                #{item.logo},
+            </if>
+            <if test="item.contacts != null and item.contacts != '' ">
+                #{item.contacts},
+            </if>
+            <if test="item.phone != null and item.phone != '' ">
+                #{item.phone},
+            </if>
+            <if test="item.address != null and item.address != '' ">
+                #{item.address},
+            </if>
+            <if test="item.detailedAddress != null and item.detailedAddress != '' ">
+                #{item.detailedAddress},
+            </if>
+            <if test="item.lat != null and item.lat != '' ">
+                #{item.lat},
+            </if>
+            <if test="item.lon != null and item.lon != '' ">
+                #{item.lon},
+            </if>
+            <if test="item.introduction != null and item.introduction != '' ">
+                #{item.introduction},
+            </if>
+            <if test="item.isDel != null and item.isDel != '' ">
+                #{item.isDel},
+            </if>
+            <if test="item.createdBy != null and item.createdBy != '' ">
+                #{item.createdBy},
+            </if>
+            <if test="item.imgUrl != null and item.imgUrl != '' ">
+                #{item.imgUrl},
+            </if>
+            <if test="item.status != null and item.status != '' ">
+                #{item.status},
+            </if>
+            <if test="item.businessCredit != null and item.businessCredit != '' ">
+                #{item.businessCredit},
+            </if>
+            <if test="item.communityId != null and item.communityId != '' ">
+                #{item.communityId},
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                #{item.userId},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="editData">
+        update new_fight_com_convenient_merchants
+        <set>
+            <if test="item.id != null and item.id != '' ">
+                id=#{item.id},
+            </if>
+            <if test="item.name != null and item.name != '' ">
+                `name`=#{item.name},
+            </if>
+            <if test="item.logo != null and item.logo != '' ">
+                logo=#{item.logo},
+            </if>
+            <if test="item.contacts != null and item.contacts != '' ">
+                contacts=#{item.contacts},
+            </if>
+            <if test="item.phone != null and item.phone != '' ">
+                phone=#{item.phone},
+            </if>
+            <if test="item.address != null and item.address != '' ">
+                address=#{item.address},
+            </if>
+            <if test="item.detailedAddress != null and item.detailedAddress != '' ">
+                detailed_address=#{item.detailedAddress},
+            </if>
+            <if test="item.lat != null and item.lat != '' ">
+                lat=#{item.lat},
+            </if>
+            <if test="item.lon != null and item.lon != '' ">
+                lon=#{item.lon},
+            </if>
+            <if test="item.introduction != null and item.introduction != '' ">
+                introduction=#{item.introduction},
+            </if>
+            <if test="item.isDel != null and item.isDel != '' ">
+                is_del=#{item.isDel},
+            </if>
+            <if test="item.createdBy != null and item.createdBy != '' ">
+                created_by=#{item.createdBy},
+            </if>
+            <if test="item.imgUrl != null and item.imgUrl != '' ">
+                img_url=#{item.imgUrl},
+            </if>
+            <if test="item.status != null and item.status != '' ">
+                status=#{item.status},
+            </if>
+            <if test="item.businessCredit != null and item.businessCredit != '' ">
+                business_credit=#{item.businessCredit},
+            </if>
+            <if test="item.communityId != null and item.communityId != '' ">
+                community_id=#{item.communityId},
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                user_id=#{item.userId},
+            </if>
+            updated_at=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <select id="selectUserList" resultType="com.panzhihua.common.model.vos.user.SysUserVO">
+        select su.user_id,su.phone,su.nick_name,su.name,su.community_id,caiu.integral_available_sum as loveIntegral
+        from sys_user as su
+        left join com_act_integral_user as caiu on caiu.user_id=su.user_id
+        <where>
+            1=1
+            and su.app_id='wx118de8a734d269f0'
+            <if test="communityId!=null and communityId !='' ">
+                and su.community_id=#{communityId} and caiu.community_id=#{communityId}
+            </if>
+            <if test="phoneOrname!=null and phoneOrname !=''">
+                and (su.name like concat ('%',#{phoneOrname},'%') or
+                su.phone like concat ('%',#{phoneOrname},'%') or
+                su.nick_name like concat ('%',#{phoneOrname},'%')
+                )
+            </if>
+
+        </where>
+    </select>
+
+
+    <select id="selectUserListB" resultType="com.panzhihua.common.model.vos.user.SysUserVO">
+        select su.user_id,su.phone,su.nick_name,su.name,su.community_id
+        from sys_user as su
+        <where>
+            1=1
+            and su.app_id='wx118de8a734d269f0'
+            <if test="communityId!=null and communityId !='' ">
+                and su.community_id=#{communityId}
+            </if>
+            <if test="phoneOrname!=null and phoneOrname !=''">
+                and (su.name like concat ('%',#{phoneOrname},'%') or
+                su.phone like concat ('%',#{phoneOrname},'%') or
+                su.nick_name like concat ('%',#{phoneOrname},'%')
+                )
+            </if>
+
+        </where>
+    </select>
+
+
+
+    <select id="selectUserBind" resultType="String">
+        select id from new_fight_com_convenient_merchants
+        <where>
+            1=1
+            <if test="communityId!=null and communityId !='' ">
+                and community_id=#{communityId}
+            </if>
+            <if test="userId!=null and userId !='' ">
+                and user_id=#{userId}
+            </if>
+        </where>
+    </select>
+
+
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewFightCommunityConfigMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewFightCommunityConfigMapper.xml
new file mode 100644
index 0000000..ec70748
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewFightCommunityConfigMapper.xml
@@ -0,0 +1,130 @@
+<?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_dangjian.dao.NewFightConfigDao">
+
+    <resultMap type="com.panzhihua.service_dangjian.entity.NewFightConfig" id="itemMap">
+        <result property="id" column="id" />
+        <result property="communityId" column="community_id" />
+        <result property="address" column="address" />
+        <result property="lat" column="lat" />
+        <result property="lng" column="lng" />
+        <result property="businessType" column="business_type" />
+        <result property="businessStartTime" column="business_start_time" />
+        <result property="businessEndTime" column="business_end_time" />
+        <result property="creationTime" column="creation_time" />
+        <result property="updateTime" column="update_time" />
+    </resultMap>
+
+
+    <select id="getDetails" resultMap="itemMap">
+        select
+            id,
+            community_id,
+            address,
+            lat,
+            lng,
+            creation_time,
+            update_time,
+            business_type,
+            business_start_time,
+            business_end_time
+        from new_fight_community_config
+        where community_id=#{communityId}
+    </select>
+
+    <insert id="addData">
+        insert into new_fight_community_config
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                id,
+            </if>
+            <if test="item.communityId != null and item.communityId != '' ">
+                community_id,
+            </if>
+            <if test="item.address != null and item.address != '' ">
+                address,
+            </if>
+            <if test="item.lat != null and item.lat != '' ">
+                lat,
+            </if>
+            <if test="item.lng != null and item.lng != '' ">
+                lng,
+            </if>
+            <if test="item.businessType != null and item.businessType != '' ">
+                business_type,
+            </if>
+            <if test="item.businessStartTime != null and item.businessStartTime != '' ">
+                business_start_time,
+            </if>
+            <if test="item.businessEndTime != null and item.businessEndTime != '' ">
+                business_end_time,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                #{item.id},
+            </if>
+            <if test="item.communityId != null and item.communityId != '' ">
+                #{item.communityId},
+            </if>
+            <if test="item.address != null and item.address != '' ">
+                #{item.address},
+            </if>
+            <if test="item.lat != null and item.lat != '' ">
+                #{item.lat},
+            </if>
+            <if test="item.lng != null and item.lng != '' ">
+                #{item.lng},
+            </if>
+            <if test="item.businessType != null and item.businessType != '' ">
+                #{item.businessType},
+            </if>
+            <if test="item.businessStartTime != null and item.businessStartTime != '' ">
+                #{item.businessStartTime},
+            </if>
+            <if test="item.businessEndTime != null and item.businessEndTime != '' ">
+                #{item.businessEndTime},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="editData">
+        update new_fight_community_config
+        <set>
+            <if test="item.id != null and item.id != '' ">
+                id=#{item.id},
+            </if>
+            <if test="item.communityId != null and item.communityId != '' ">
+                community_id=#{item.communityId},
+            </if>
+            <if test="item.address != null and item.address != '' ">
+                address=#{item.address},
+            </if>
+            <if test="item.lat != null and item.lat != '' ">
+                lat=#{item.lat},
+            </if>
+            <if test="item.lng != null and item.lng != '' ">
+                lng=#{item.lng},
+            </if>
+            <if test="item.businessType != null and item.businessType != '' ">
+                business_type=#{item.businessType},
+            </if>
+            <if test="item.businessStartTime != null and item.businessStartTime != '' ">
+                business_start_time=#{item.businessStartTime},
+            </if>
+            <if test="item.businessEndTime != null and item.businessEndTime != '' ">
+                business_end_time=#{item.businessEndTime},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="expurgateData" parameterType="String">
+        delete from new_fight_community_config where community_id=#{communityId}
+    </delete>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewFightCommunityConstructionMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewFightCommunityConstructionMapper.xml
new file mode 100644
index 0000000..09237df
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewFightCommunityConstructionMapper.xml
@@ -0,0 +1,241 @@
+<?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_dangjian.dao.NewFightCommunityConstructionDAO">
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id,
+        item_cover,
+        item_title,
+        agreement_title,
+        agreement_customization_time,
+        agreement_content,
+        construction_community_id,
+        estimated_time,
+        creation_time,
+        update_time,
+        user_id,
+        status,
+        start_time,
+        community_id
+    </sql>
+
+    <select id="getList" resultType="com.panzhihua.common.model.dtos.partybuilding.NewFightCommunityConstructionDTO">
+        SELECT
+            nfcc.id,
+            nfcc.item_cover,
+            nfcc.item_title,
+            nfcc.agreement_title,
+            nfcc.agreement_customization_time,
+            nfcc.agreement_content,
+            nfcc.construction_community_id,
+            nfcc.estimated_time,
+            nfcc.creation_time,
+            nfcc.update_time,
+            nfcc.user_id,
+            nfcc.status,
+            ca.name as communityName,
+            ifnull(count(nfpj.id),0) as isJoin,
+            nfcc.community_id
+        FROM new_fight_community_construction as nfcc
+        LEFT JOIN new_fight_project_join as nfpj ON nfpj.user_id=#{userId}
+        LEFT JOIN com_act as ca ON ca.community_id=nfcc.construction_community_id
+        <where>
+            1=1
+            <if test="communityId !=null and communityId != '' ">
+                and nfcc.construction_community_id =#{communityId}
+            </if>
+        </where>
+        GROUP BY nfcc.id
+        order by nfcc.creation_time desc
+    </select>
+
+    <select id="getDetails" resultType="com.panzhihua.common.model.dtos.partybuilding.NewFightCommunityConstructionDTO">
+        SELECT
+            nfcc.id,
+            nfcc.item_cover,
+            nfcc.item_title,
+            nfcc.agreement_title,
+            nfcc.agreement_customization_time,
+            nfcc.agreement_content,
+            nfcc.construction_community_id,
+            nfcc.estimated_time,
+            nfcc.creation_time,
+            nfcc.update_time,
+            nfcc.user_id,
+            nfcc.status,
+            nfcc.start_time,
+            ca.name as communityName,
+            ifnull(count(nfpj.id),0) as isJoin,
+            nfcc.community_id
+        FROM new_fight_community_construction as nfcc
+        LEFT JOIN new_fight_project_join as nfpj ON nfpj.user_id=#{userId}
+        LEFT JOIN com_act as ca ON ca.community_id=nfcc.construction_community_id
+        <where>
+            1=1
+            <if test="id !=null and id != '' ">
+                and nfcc.id =#{id}
+            </if>
+        </where>
+    </select>
+
+    <insert id="addData" useGeneratedKeys="true" keyProperty="id"
+            parameterType="com.panzhihua.common.model.dtos.partybuilding.NewFightCommunityConstructionDTO">
+        insert into new_fight_community_construction
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' " >
+                id,
+            </if>
+            <if test="item.itemCover != null and item.itemCover != '' " >
+                item_cover,
+            </if>
+            <if test="item.itemTitle != null and item.itemTitle != '' " >
+                item_title,
+            </if>
+            <if test="item.agreementTitle != null and item.agreementTitle != '' " >
+                agreement_title,
+            </if>
+            <if test="item.agreementCustomizationTime != null" >
+                agreement_customization_time,
+            </if>
+            <if test="item.agreementContent != null and item.agreementContent != '' " >
+                agreement_content,
+            </if>
+            <if test="item.constructionCommunityId != null and item.constructionCommunityId != '' " >
+                construction_community_id,
+            </if>
+            <if test="item.estimatedTime != null " >
+                estimated_time,
+            </if>
+            <if test="item.userId != null and item.userId != '' " >
+                user_id,
+            </if>
+            <if test="item.communityId != null and item.communityId != '' " >
+                community_id,
+            </if>
+            <if test="item.status != null and item.status != '' " >
+                status,
+            </if>
+            <if test="item.startTime != null " >
+                start_time,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null" >
+                #{item.id},
+            </if>
+            <if test="item.itemCover != null and item.itemCover != '' " >
+                #{item.itemCover},
+            </if>
+            <if test="item.itemTitle != null and item.itemTitle != '' " >
+                #{item.itemTitle},
+            </if>
+            <if test="item.agreementTitle != null and item.agreementTitle != '' " >
+                #{item.agreementTitle},
+            </if>
+            <if test="item.agreementCustomizationTime != null" >
+                #{item.agreementCustomizationTime},
+            </if>
+            <if test="item.agreementContent != null and item.agreementContent != '' " >
+                #{item.agreementContent},
+            </if>
+            <if test="item.constructionCommunityId != null and item.constructionCommunityId != '' " >
+                #{item.constructionCommunityId},
+            </if>
+            <if test="item.estimatedTime != null " >
+                #{item.estimatedTime},
+            </if>
+            <if test="item.userId != null and item.userId != '' " >
+                #{item.userId},
+            </if>
+            <if test="item.communityId != null and item.communityId != '' " >
+                #{item.communityId},
+            </if>
+            <if test="item.status != null and item.status != '' " >
+                #{item.status},
+            </if>
+            <if test="item.startTime != null " >
+                #{item.startTime},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="editData">
+        update new_fight_community_construction
+        <set>
+            <if test="item.id != null" >
+                id=#{item.id},
+            </if>
+            <if test="item.itemCover != null and item.itemCover != '' " >
+                item_cover=#{item.itemCover},
+            </if>
+            <if test="item.itemTitle != null and item.itemTitle != '' " >
+                item_title=#{item.itemTitle},
+            </if>
+            <if test="item.agreementTitle != null and item.agreementTitle != '' " >
+                agreement_title=#{item.agreementTitle},
+            </if>
+            <if test="item.agreementCustomizationTime != null" >
+                agreement_customization_time=#{item.agreementCustomizationTime},
+            </if>
+            <if test="item.agreementContent != null and item.agreementContent != '' " >
+                agreement_content=#{item.agreementContent},
+            </if>
+            <if test="item.constructionCommunityId != null and item.constructionCommunityId != '' " >
+                construction_community_id=#{item.constructionCommunityId},
+            </if>
+            <if test="item.estimatedTime != null " >
+                estimated_time=#{item.estimatedTime},
+            </if>
+            <if test="item.userId != null and item.userId != '' " >
+                user_id=#{item.userId},
+            </if>
+            <if test="item.communityId != null and item.communityId != '' " >
+                community_id=#{item.communityId},
+            </if>
+            <if test="item.status != null and item.status != '' " >
+                status=#{item.status},
+            </if>
+            <if test="item.startTime != null " >
+                start_time=#{item.startTime},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id=#{item.id}
+    </update>
+
+    <delete id="expurgateData" parameterType="String">
+        delete from new_fight_community_construction where id=#{id}
+    </delete>
+
+
+
+
+    <select id="getListTime" resultType="com.panzhihua.common.model.dtos.partybuilding.NewFightCommunityConstructionDTO">
+        SELECT
+        nfcc.id,
+        nfcc.item_cover,
+        nfcc.item_title,
+        nfcc.agreement_title,
+        nfcc.agreement_customization_time,
+        nfcc.agreement_content,
+        nfcc.construction_community_id,
+        nfcc.estimated_time,
+        nfcc.creation_time,
+        nfcc.update_time,
+        nfcc.user_id,
+        nfcc.status,
+        nfcc.start_time,
+        nfcc.community_id
+        FROM new_fight_community_construction as nfcc
+        where nfcc.status in (1,2)
+    </select>
+
+
+
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewFightProjectEvaluateMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewFightProjectEvaluateMapper.xml
new file mode 100644
index 0000000..2d66810
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewFightProjectEvaluateMapper.xml
@@ -0,0 +1,137 @@
+<?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_dangjian.dao.NewFightProjectEvaluateDAO">
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id,
+        content,
+        score,
+        project_id,
+        user_id,
+        creation_time,
+        update_time
+    </sql>
+
+    <select id="getList" resultType="com.panzhihua.common.model.dtos.partybuilding.NewFightProjectEvaluateDTO">
+        SELECT
+            nfpj.id,
+            nfpj.project_id,
+            nfpj.user_id,
+            nfpj.content,
+            nfpj.score,
+            su.name as userName,
+            su.image_url as userImg,
+            nfpj.creation_time,
+            nfpj.update_time
+        FROM new_fight_project_evaluate as nfpj
+        LEFT JOIN sys_user as su ON su.user_id=nfpj.user_id
+        <where>
+            1=1
+            <if test="projectId !=null and projectId != '' ">
+                and nfpj.project_id=#{projectId}
+            </if>
+        </where>
+    </select>
+
+    <select id="getDetails" resultType="com.panzhihua.common.model.dtos.partybuilding.NewFightProjectEvaluateDTO">
+        SELECT
+            nfpj.id,
+            nfpj.project_id,
+            nfpj.user_id,
+            nfpj.content,
+            nfpj.score,
+            su.name as userName,
+            su.image_url as userImg,
+            nfpj.creation_time,
+            nfpj.update_time
+        FROM new_fight_project_evaluate as nfpj
+        LEFT JOIN sys_user as su ON su.user_id=nfpj.user_id
+        <where>
+            1=1
+            <if test="id !=null and id != '' ">
+                and nfpj.id =#{id}
+            </if>
+        </where>
+    </select>
+
+    <insert id="addData">
+        insert into new_fight_project_evaluate
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' " >
+                id,
+            </if>
+            <if test="item.projectId != null and item.projectId != '' " >
+                project_id,
+            </if>
+            <if test="item.userId != null and item.userId != '' " >
+                user_id,
+            </if>
+            <if test="item.content != null and item.content != '' " >
+                content,
+            </if>
+            <if test="item.score != null and item.score != '' " >
+                score,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null" >
+                #{item.id},
+            </if>
+            <if test="item.projectId != null and item.projectId != '' " >
+                #{item.projectId},
+            </if>
+            <if test="item.userId != null and item.userId != '' " >
+                #{item.userId},
+            </if>
+            <if test="item.content != null and item.content != '' " >
+                #{item.content},
+            </if>
+            <if test="item.score != null and item.score != '' " >
+                #{item.score},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="editData">
+        update new_fight_project_evaluate
+        <set>
+            <if test="item.id != null" >
+                id=#{item.id},
+            </if>
+            <if test="item.projectId != null and item.projectId != '' " >
+                project_id=#{item.projectId},
+            </if>
+            <if test="item.userId != null and item.userId != '' " >
+                user_id=#{item.userId},
+            </if>
+            <if test="item.content != null and item.content != '' " >
+                content=#{item.content},
+            </if>
+            <if test="item.score != null and item.score != '' " >
+                score=#{item.score},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="expurgateData" parameterType="String">
+        delete from new_fight_project_evaluate
+        <where>
+            1=1
+            <if test="id!=null and id !='' ">
+                and id=#{id}
+            </if>
+            <if test="projectId!=null and projectId !='' ">
+                and project_id=#{projectId}
+            </if>
+        </where>
+    </delete>
+
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewFightProjectJoinMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewFightProjectJoinMapper.xml
new file mode 100644
index 0000000..66c24da
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewFightProjectJoinMapper.xml
@@ -0,0 +1,116 @@
+<?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_dangjian.dao.NewFightProjectJoinDAO">
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id,
+        project_id,
+        user_id,
+        creation_time,
+        update_time
+    </sql>
+
+    <select id="getList" resultType="com.panzhihua.common.model.dtos.partybuilding.NewFightProjectJoinDTO">
+        SELECT
+            nfpj.id,
+            nfpj.project_id,
+            nfpj.user_id,
+            su.name as userName,
+            su.image_url as userImg,
+            nfpj.creation_time,
+            nfpj.update_time
+        FROM new_fight_project_join as nfpj
+        LEFT JOIN sys_user as su ON su.user_id=nfpj.user_id
+        <where>
+            1=1
+            <if test="projectId !=null and projectId != '' ">
+                and nfpj.project_id=#{projectId}
+            </if>
+        </where>
+    </select>
+
+    <select id="getDetails" resultType="com.panzhihua.common.model.dtos.partybuilding.NewFightProjectJoinDTO">
+        SELECT
+            nfpj.id,
+            nfpj.project_id,
+            nfpj.user_id,
+            su.name as userName,
+            su.image_url as userImg,
+            nfpj.creation_time,
+            nfpj.update_time
+        FROM new_fight_project_join as nfpj
+        LEFT JOIN sys_user as su ON su.user_id=nfpj.user_id
+        <where>
+            1=1
+            <if test="id !=null and id != '' ">
+                and nfpj.id =#{id}
+            </if>
+        </where>
+    </select>
+
+    <insert id="addData">
+        insert into new_fight_project_join
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' " >
+                id,
+            </if>
+            <if test="item.projectId != null and item.projectId != '' " >
+                project_id,
+            </if>
+            <if test="item.userId != null and item.userId != '' " >
+                user_id,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null" >
+                #{item.id},
+            </if>
+            <if test="item.projectId != null and item.projectId != '' " >
+                #{item.projectId},
+            </if>
+            <if test="item.userId != null and item.userId != '' " >
+                #{item.userId},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="editData">
+        update new_fight_project_join
+        <set>
+            <if test="item.id != null" >
+                id=#{item.id},
+            </if>
+            <if test="item.projectId != null and item.projectId != '' " >
+                project_id=#{item.projectId},
+            </if>
+            <if test="item.userId != null and item.userId != '' " >
+                user_id=#{item.userId},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="expurgateData" parameterType="String">
+        delete from new_fight_project_join
+        <where>
+            1=1
+            <if test="id!=null and id !='' ">
+                and id=#{id}
+            </if>
+            <if test="projectId!=null and projectId !='' ">
+                and project_id=#{projectId}
+            </if>
+            <if test="userId!=null and userId !='' ">
+                and user_id=#{userId}
+            </if>
+        </where>
+    </delete>
+
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewFightProjectPlanMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewFightProjectPlanMapper.xml
new file mode 100644
index 0000000..4db45a4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewFightProjectPlanMapper.xml
@@ -0,0 +1,152 @@
+<?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_dangjian.dao.NewFightProjectPlanDAO">
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id,
+        project_id,
+        agreement_plan,
+        completion_time,
+        plan_content,
+        creation_time,
+        update_time,
+        affirm_time,
+        accomplish
+    </sql>
+
+    <select id="getList" resultType="com.panzhihua.common.model.dtos.partybuilding.NewFightProjectPlanDTO">
+        SELECT <include refid="Base_Column_List"></include>
+        FROM new_fight_project_plan
+        <where>
+            1=1
+            <if test="projectId !=null and projectId != '' ">
+                and project_id=#{projectId}
+            </if>
+        </where>
+    </select>
+
+    <select id="getDetails" resultType="com.panzhihua.common.model.dtos.partybuilding.NewFightProjectPlanDTO">
+        SELECT <include refid="Base_Column_List"></include>
+        FROM new_fight_project_plan
+        <where>
+            1=1
+            <if test="id !=null and id != '' ">
+                and id =#{id}
+            </if>
+        </where>
+    </select>
+
+    <insert id="addData">
+        insert into new_fight_project_plan
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' " >
+                id,
+            </if>
+            <if test="item.projectId != null and item.projectId != '' " >
+                project_id,
+            </if>
+            <if test="item.agreementPlan != null and item.agreementPlan != '' " >
+                agreement_plan,
+            </if>
+            <if test="item.completionTime != null " >
+                completion_time,
+            </if>
+            <if test="item.planContent != null and item.planContent != '' " >
+                plan_content,
+            </if>
+            <if test="item.affirmTime !=null and item.affirmTime != '' ">
+                affirm_time,
+            </if>
+            <if test="item.accomplish !=null and item.accomplish != '' ">
+                accomplish,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null" >
+                #{item.id},
+            </if>
+            <if test="item.projectId != null and item.projectId != '' " >
+                #{item.projectId},
+            </if>
+            <if test="item.agreementPlan != null and item.agreementPlan != '' " >
+                #{item.agreementPlan},
+            </if>
+            <if test="item.completionTime != null " >
+                #{item.completionTime},
+            </if>
+            <if test="item.planContent != null and item.planContent != '' " >
+                #{item.planContent},
+            </if>
+            <if test="item.affirmTime !=null and item.affirmTime != '' ">
+                #{item.affirmTime},
+            </if>
+            <if test="item.accomplish !=null and item.accomplish != '' ">
+                #{item.accomplish},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="editData">
+        update new_fight_project_plan
+        <set>
+            <if test="item.id != null" >
+                id=#{item.id},
+            </if>
+            <if test="item.projectId != null and item.projectId != '' " >
+                project_id=#{item.projectId},
+            </if>
+            <if test="item.agreementPlan != null and item.agreementPlan != '' " >
+                agreement_plan=#{item.agreementPlan},
+            </if>
+            <if test="item.completionTime != null " >
+                completion_time=#{item.completionTime},
+            </if>
+            <if test="item.planContent != null and item.planContent != '' " >
+                plan_content=#{item.planContent},
+            </if>
+            <if test="item.affirmTime !=null ">
+                affirm_time=#{item.affirmTime},
+            </if>
+            <if test="item.accomplish !=null and item.accomplish != '' ">
+                accomplish=#{item.accomplish},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="expurgateData" parameterType="String">
+        delete from new_fight_project_plan
+        <where>
+            1=1
+            <if test="id!=null and id !='' ">
+                and id=#{id}
+            </if>
+            <if test="projectId!=null and projectId !='' ">
+                and project_id=#{projectId}
+            </if>
+        </where>
+    </delete>
+
+    <select id="getNum" parameterType="String" resultType="Integer">
+        select count(id) from new_fight_project_plan
+        <where>
+            1=1
+            <if test=" projectId!=null and projectId!=''  ">
+                and project_id=#{projectId}
+            </if>
+            <if test=" accomplish!=null and accomplish!=''  ">
+                and accomplish=#{accomplish}
+            </if>
+        </where>
+    </select>
+
+
+
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewFightResourceSharingMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewFightResourceSharingMapper.xml
new file mode 100644
index 0000000..f033af1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewFightResourceSharingMapper.xml
@@ -0,0 +1,162 @@
+<?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_dangjian.dao.NewFightResourceSharingDAO">
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id,
+        title,
+        unit_id,
+        merit_id,
+        img_url,
+        phone,
+        linkman,
+        creation_time,
+        update_time,
+        community_id
+    </sql>
+
+    <select id="getList" resultType="com.panzhihua.common.model.dtos.partybuilding.NewFightResourceSharingDTO">
+        SELECT
+        nfrs.id,
+        nfrs.title,
+        nfrs.unit_id,
+        nfrs.merit_id,
+        nfrs.img_url,
+        nfrs.phone,
+        nfrs.linkman,
+        nfrs.creation_time,
+        cpcu.name as unitName,
+        nfrs.update_time,
+        nfrs.community_id
+        FROM new_fight_resource_sharing as nfrs
+        LEFT join com_pb_check_unit as cpcu on nfrs.unit_id=cpcu.id
+        <where>
+            1=1
+            <if test="communityId !=null and communityId != '' ">
+                and community_id=#{communityId}
+            </if>
+            <if test="unitId !=null and unitId != '' ">
+                and unit_id=#{unitId}
+            </if>
+            <if test=" meritId !=null and meritId != '' ">
+                and INSTR(merit_id,#{meritId})
+            </if>
+        </where>
+    </select>
+
+    <select id="getDetails" resultType="com.panzhihua.common.model.dtos.partybuilding.NewFightResourceSharingDTO">
+        SELECT <include refid="Base_Column_List"></include>
+        FROM new_fight_resource_sharing
+        <where>
+            1=1
+            <if test="id !=null and id != '' ">
+                and id =#{id}
+            </if>
+        </where>
+    </select>
+
+    <insert id="addData">
+        insert into new_fight_resource_sharing
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' " >
+                id,
+            </if>
+            <if test="item.title != null and item.title != '' " >
+                title,
+            </if>
+            <if test="item.unitId != null and item.unitId != '' " >
+                unit_id,
+            </if>
+            <if test="item.meritId != null and item.meritId != '' " >
+                merit_id,
+            </if>
+            <if test="item.imgUrl != null and item.imgUrl != '' " >
+                img_url,
+            </if>
+            <if test="item.phone != null and item.phone != '' " >
+                phone,
+            </if>
+            <if test="item.linkman != null and item.linkman != '' " >
+                linkman,
+            </if>
+            <if test="item.communityId != null and item.communityId != '' " >
+                community_id,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null" >
+                #{item.id},
+            </if>
+            <if test="item.title != null and item.title != '' " >
+                #{item.title},
+            </if>
+            <if test="item.unitId != null and item.unitId != '' " >
+                #{item.unitId},
+            </if>
+            <if test="item.meritId != null and item.meritId != '' " >
+                #{item.meritId},
+            </if>
+            <if test="item.imgUrl != null and item.imgUrl != '' " >
+                #{item.imgUrl},
+            </if>
+            <if test="item.phone != null and item.phone != '' " >
+                #{item.phone},
+            </if>
+            <if test="item.linkman != null and item.linkman != '' " >
+                #{item.linkman},
+            </if>
+            <if test="item.communityId != null and item.communityId != '' " >
+                #{item.communityId},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="editData">
+        update new_fight_resource_sharing
+        <set>
+            <if test="item.id != null" >
+                id=#{item.id},
+            </if>
+            <if test="item.title != null and item.title != '' " >
+                title=#{item.title},
+            </if>
+            <if test="item.unitId != null and item.unitId != '' " >
+                unit_id=#{item.unitId},
+            </if>
+            <if test="item.meritId != null and item.meritId != '' " >
+                merit_id=#{item.meritId},
+            </if>
+            <if test="item.imgUrl != null and item.imgUrl != '' " >
+                img_url=#{item.imgUrl},
+            </if>
+            <if test="item.phone != null and item.phone != '' " >
+                phone=#{item.phone},
+            </if>
+            <if test="item.linkman != null and item.linkman != '' " >
+                linkman=#{item.linkman},
+            </if>
+            <if test="item.communityId != null and item.communityId != '' " >
+                community_id=#{item.communityId},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="expurgateData" parameterType="String">
+        delete from new_fight_resource_sharing
+        <where>
+            1=1
+            <if test="id!=null and id !='' ">
+                and id=#{id}
+            </if>
+        </where>
+    </delete>
+
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewFightShoppingMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewFightShoppingMapper.xml
new file mode 100644
index 0000000..640208f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewFightShoppingMapper.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_dangjian.dao.NewFightShoppingDao">
+
+    <resultMap type="com.panzhihua.service_dangjian.entity.NewFightShopping" id="itemMap">
+        <result property="id" column="id" />
+        <result property="goodName" column="good_name" />
+        <result property="goodPrice" column="good_price" />
+        <result property="goodType" column="good_type" />
+        <result property="coverImgUrl" column="cover_img_url" />
+        <result property="content" column="content" />
+        <result property="communityId" column="community_id" />
+        <result property="creationTime" column="creation_time" />
+        <result property="updateTime" column="update_time" />
+    </resultMap>
+
+
+    <!-- 分页查询 -->
+    <select id="getList" resultMap="itemMap">
+        select
+            nfs.id,
+            nfs.good_name,
+            nfs.good_price,
+            nfs.good_type,
+            nfs.cover_img_url,
+            nfs.content,
+            nfs.community_id,
+            nfs.creation_time,
+            nfs.update_time,
+            vcc.address,
+            vcc.lat,
+            vcc.lng,
+            vcc.business_type,
+            vcc.business_start_time,
+            vcc.business_end_time
+        from new_fight_shopping as nfs
+        LEFT JOIN new_fight_community_config as vcc ON vcc.community_id=nfs.community_id
+        <where>
+            1=1
+            <if test="communityId !=null and communityId !='' ">
+                and nfs.community_id=#{communityId}
+            </if>
+            <if test="goodName !=null and goodName !='' ">
+                and nfs.good_name LIKE CONCAT('%', #{goodName}, '%')
+            </if>
+            <if test="goodType !=null and goodType !='' ">
+                and nfs.good_type=#{goodType}
+            </if>
+            <if test="id !=null and id !='' ">
+                and nfs.id=#{id}
+            </if>
+        </where>
+        order by nfs.creation_time desc
+    </select>
+
+
+    <select id="getDetails" resultMap="itemMap">
+        select
+            nfs.id,
+            nfs.good_name,
+            nfs.good_price,
+            nfs.good_type,
+            nfs.cover_img_url,
+            nfs.content,
+            nfs.community_id,
+            nfs.creation_time,
+            nfs.update_time,
+            vcc.address,
+            vcc.lat,
+            vcc.lng,
+            vcc.business_type,
+            vcc.business_start_time,
+            vcc.business_end_time
+        from new_fight_shopping as nfs
+        LEFT JOIN new_fight_community_config as vcc ON vcc.community_id=nfs.community_id
+        where
+            nfs.id=#{id}
+    </select>
+
+    <insert id="addData">
+        insert into new_fight_shopping
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                id,
+            </if>
+            <if test="item.goodName != null and item.goodName != '' ">
+                good_name,
+            </if>
+            <if test="item.goodPrice != null and item.goodPrice != '' ">
+                good_price,
+            </if>
+            <if test="item.goodType != null and item.goodType != '' ">
+                good_type,
+            </if>
+            <if test="item.coverImgUrl != null and item.coverImgUrl != '' ">
+                cover_img_url,
+            </if>
+            <if test="item.content != null and item.content != '' ">
+                content,
+            </if>
+            <if test="item.communityId !=null and item.communityId !='' ">
+                community_id,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                #{item.id},
+            </if>
+            <if test="item.goodName != null and item.goodName != '' ">
+                #{item.goodName},
+            </if>
+            <if test="item.goodPrice != null and item.goodPrice != '' ">
+                #{item.goodPrice},
+            </if>
+            <if test="item.goodType != null and item.goodType != '' ">
+                #{item.goodType},
+            </if>
+            <if test="item.coverImgUrl != null and item.coverImgUrl != '' ">
+                #{item.coverImgUrl},
+            </if>
+            <if test="item.content != null and item.content != '' ">
+                #{item.content},
+            </if>
+            <if test="item.communityId !=null and item.communityId !='' ">
+                #{item.communityId},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="editData">
+        update new_fight_shopping
+        <set>
+            <if test="item.id != null and item.id != '' ">
+                id=#{item.id},
+            </if>
+            <if test="item.goodName != null and item.goodName != '' ">
+                good_name=#{item.goodName},
+            </if>
+            <if test="item.goodPrice != null and item.goodPrice != '' ">
+                good_price=#{item.goodPrice},
+            </if>
+            <if test="item.goodType != null and item.goodType != '' ">
+                good_type=#{item.goodType},
+            </if>
+            <if test="item.coverImgUrl != null and item.coverImgUrl != '' ">
+                cover_img_url=#{item.coverImgUrl},
+            </if>
+            <if test="item.content != null and item.content != '' ">
+                content=#{item.content},
+            </if>
+            <if test="item.communityId !=null and item.communityId !='' ">
+                community_id=#{item.communityId},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="expurgateData" parameterType="String">
+        delete from new_fight_shopping where id=#{id}
+    </delete>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewFightShoppingOrderMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewFightShoppingOrderMapper.xml
new file mode 100644
index 0000000..62886d0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewFightShoppingOrderMapper.xml
@@ -0,0 +1,255 @@
+<?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_dangjian.dao.NewFightShoppingOrderDao">
+
+    <resultMap type="com.panzhihua.service_dangjian.entity.NewFightShoppingOrder" id="itemMap">
+        <result property="id" column="id" />
+        <result property="orderNumber" column="order_number" />
+        <result property="goodsId" column="goods_id" />
+        <result property="userId" column="user_id" />
+        <result property="cancelType" column="cancel_type" />
+        <result property="cancelTime" column="cancel_time" />
+        <result property="palyMoney" column="paly_money" />
+        <result property="creationTime" column="creation_time" />
+        <result property="updateTime" column="update_time" />
+        <result property="abolishTime" column="abolish_time" />
+        <result property="communityId" column="community_id" />
+        <result property="merchantId" column="merchant_id" />
+        <result property="orderType" column="order_type" />
+        <result property="remark" column="remark" />
+    </resultMap>
+
+    <!-- 分页查询 -->
+    <select id="getList" resultMap="itemMap">
+        select
+            jso.id,
+            jso.order_number,
+            jso.goods_id,
+            js.good_name,
+            js.good_price,
+            js.cover_img_url,
+            jso.user_id,
+            su.name,
+            su.phone,
+            vcc.address,
+            vcc.lat,
+            vcc.lng,
+            vcc.business_type,
+            vcc.business_start_time,
+            vcc.business_end_time,
+            jso.creation_time,
+            jso.cancel_type,
+            jso.update_time,
+            jso.cancel_time,
+            jso.abolish_time,
+            jso.community_id,
+            jso.merchant_id,
+            jso.order_type,
+            jso.remark,
+            jso.paly_money
+        from new_fight_shopping_order as jso
+        LEFT JOIN sys_user su ON jso.user_id = su.user_id
+        LEFT JOIN new_fight_shopping js ON js.id = jso.goods_id
+        LEFT JOIN new_fight_community_config as vcc ON vcc.community_id=jso.community_id
+        <where>
+            1=1
+            <if test="merchantId !=null and merchantId !='' ">
+                and jso.merchant_id=#{merchantId}
+            </if>
+            <if test="orderType !=null and orderType !='' ">
+                and jso.order_type=#{orderType}
+            </if>
+            <if test="communityId !=null and communityId !='' ">
+                and jso.community_id=#{communityId}
+            </if>
+            <if test="userId !=null and userId !='' ">
+                and jso.user_id=#{userId}
+            </if>
+            <if test="goodsId !=null and goodsId !='' ">
+                and jso.goods_id=#{goodsId}
+            </if>
+            <if test="orderNumber !=null and orderNumber !='' ">
+                and jso.order_number LIKE CONCAT('%', #{orderNumber}, '%')
+            </if>
+            <if test="goodName !=null and goodName !='' ">
+                and js.good_name LIKE CONCAT('%', #{goodName}, '%')
+            </if>
+            <if test="name !=null and name !='' ">
+                and su.name LIKE CONCAT('%', #{name}, '%')
+            </if>
+            <if test="cancelType !=null and cancelType !='' ">
+                and jso.cancel_type LIKE CONCAT('%', #{cancelType}, '%')
+            </if>
+        </where>
+        GROUP BY jso.id
+        order by jso.creation_time desc
+    </select>
+
+
+    <select id="getDetails" resultMap="itemMap">
+        select
+            jso.id,
+            jso.order_number,
+            jso.goods_id,
+            js.good_name,
+            js.good_price,
+            js.cover_img_url,
+            jso.user_id,
+            su.name,
+            su.phone,
+            vcc.address,
+            vcc.lat,
+            vcc.lng,
+            vcc.business_type,
+            vcc.business_start_time,
+            vcc.business_end_time,
+            jso.creation_time,
+            jso.cancel_type,
+            jso.update_time,
+            jso.cancel_time,
+            jso.abolish_time,
+            jso.community_id,
+            jso.merchant_id,
+            jso.order_type,
+            jso.remark,
+            jso.paly_money
+        from new_fight_shopping_order as jso
+        LEFT JOIN sys_user su ON jso.user_id = su.user_id
+        LEFT JOIN new_fight_shopping js ON js.id = jso.goods_id
+        LEFT JOIN new_fight_community_config as vcc ON vcc.community_id=jso.community_id
+        where
+            jso.id=#{id}
+    </select>
+
+    <insert id="addData" useGeneratedKeys="true" keyProperty="id">
+        insert into new_fight_shopping_order
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                id,
+            </if>
+            <if test="item.orderNumber != null and item.orderNumber != '' ">
+                order_number,
+            </if>
+            <if test="item.goodsId != null and item.goodsId != '' ">
+                goods_id,
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                user_id,
+            </if>
+            <if test="item.cancelType != null and item.cancelType != '' ">
+                cancel_type,
+            </if>
+            <if test="item.cancelTime != null ">
+                cancel_time,
+            </if>
+            <if test="item.palyMoney != null and item.palyMoney != '' ">
+                paly_money,
+            </if>
+            <if test="item.abolishTime != null">
+                abolish_time,
+            </if>
+            <if test="item.communityId !=null and item.communityId !='' ">
+                community_id,
+            </if>
+            <if test="item.merchantId !=null and item.merchantId !='' ">
+                merchant_id,
+            </if>
+            <if test="item.orderType !=null and item.orderType !='' ">
+                order_type,
+            </if>
+            <if test="item.remark !=null and item.remark !='' ">
+                remark,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                #{item.id},
+            </if>
+            <if test="item.orderNumber != null and item.orderNumber != '' ">
+                #{item.orderNumber},
+            </if>
+            <if test="item.goodsId != null and item.goodsId != '' ">
+                #{item.goodsId},
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                #{item.userId},
+            </if>
+            <if test="item.cancelType != null and item.cancelType != '' ">
+                #{item.cancelType},
+            </if>
+            <if test="item.cancelTime != null ">
+                #{item.cancelTime},
+            </if>
+            <if test="item.palyMoney != null and item.palyMoney != '' ">
+                #{item.palyMoney},
+            </if>
+            <if test="item.abolishTime != null">
+                #{item.abolishTime},
+            </if>
+            <if test="item.communityId !=null and item.communityId !='' ">
+                #{item.communityId},
+            </if>
+            <if test="item.merchantId !=null and item.merchantId !='' ">
+                #{item.merchantId},
+            </if>
+            <if test="item.orderType !=null and item.orderType !='' ">
+                #{item.orderType},
+            </if>
+            <if test="item.remark !=null and item.remark !='' ">
+                #{item.remark},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+    <update id="editData">
+        update new_fight_shopping_order
+        <set>
+            <if test="item.id != null and item.id != '' ">
+                id=#{item.id},
+            </if>
+            <if test="item.orderNumber != null and item.orderNumber != '' ">
+                order_number=#{item.orderNumber},
+            </if>
+            <if test="item.goodsId != null and item.goodsId != '' ">
+                goods_id=#{item.goodsId},
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                user_id=#{item.userId},
+            </if>
+            <if test="item.cancelType != null and item.cancelType != '' ">
+                cancel_type=#{item.cancelType},
+            </if>
+            <if test="item.cancelTime != null  ">
+                cancel_time=#{item.cancelTime},
+            </if>
+            <if test="item.palyMoney != null and item.palyMoney != '' ">
+                paly_money=#{item.palyMoney},
+            </if>
+            <if test="item.abolishTime != null">
+                abolish_time=#{item.abolishTime},
+            </if>
+            <if test="item.communityId !=null and item.communityId !='' ">
+                community_id=#{item.communityId},
+            </if>
+            <if test="item.merchantId !=null and item.merchantId !='' ">
+                merchant_id=#{item.merchantId},
+            </if>
+            <if test="item.orderType !=null and item.orderType !='' ">
+                order_type=#{item.orderType},
+            </if>
+            <if test="item.remark !=null and item.remark !='' ">
+                remark=#{item.remark},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="expurgateData" parameterType="String">
+        delete from new_fight_shopping_order where id=#{id}
+    </delete>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewStriveForMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewStriveForMapper.xml
new file mode 100644
index 0000000..609d878
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewStriveForMapper.xml
@@ -0,0 +1,108 @@
+<?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_dangjian.dao.NewStriveForDAO">
+
+
+    <!--  通过用户id 查询人员的排名  -->
+    <select id="getUserRank" resultType="com.panzhihua.common.model.dtos.partybuilding.UserRankDTO">
+        SELECT
+            tab2.community_id,
+            tab2.check_unit_id,
+            tab2.image_url,
+            tab2.user_id,
+            tab2.user_name,
+            tab2.unit_name,
+            tab2.community_name,
+            tab2.amount,
+            tab2.rank
+        FROM(SELECT
+                 tab.community_id,
+                 tab.check_unit_id,
+                 tab.image_url,
+                 tab.user_id,
+                 tab.user_name,
+                 tab.unit_name,
+                 tab.community_name,
+                 tab.amount,
+                 (@row_number:=@row_number+1) AS rank
+             FROM (SELECT
+                       cpm.community_id as community_id,
+                       cpm.check_unit_id as check_unit_id,
+                       su.image_url as image_url,
+                       cpm.user_id as user_id,
+                       cpm.`name` as user_name,
+                       cpcu.`name` as unit_name,
+                       ca.`name` as community_name,
+                       IFNULL(SUM(caiu.integral_sum),0) as amount
+                   FROM com_pb_member as cpm
+                            LEFT JOIN com_pb_check_unit as cpcu on cpcu.id=cpm.check_unit_id
+                            LEFT JOIN sys_user as su on su.user_id=cpm.user_id
+                            LEFT JOIN com_act as ca on ca.community_id = cpm.community_id
+                            LEFT JOIN com_act_integral_user as caiu on cpm.user_id=caiu.user_id and cpm.community_id=caiu.community_id
+                   WHERE cpm.check_unit_id=(SELECT check_unit_id FROM com_pb_member WHERE user_id=#{userId} limit 1)
+                   GROUP BY cpm.user_id
+                   order by amount desc,user_id desc) as tab
+                ,(SELECT @row_number:=0) AS t) tab2
+        WHERE tab2.user_id =#{userId}
+    </select>
+
+    <!--  查询人员的排名  -->
+    <select id="getUserRankList" resultType="com.panzhihua.common.model.dtos.partybuilding.UserRankDTO">
+        SELECT
+             tab.community_id,
+             tab.check_unit_id,
+             tab.image_url,
+             tab.user_id,
+             tab.user_name,
+             tab.unit_name,
+             tab.community_name,
+             tab.amount,
+             (@row_number:=@row_number+1) AS rank
+        FROM (SELECT
+               cpm.community_id as community_id,
+               cpm.check_unit_id as check_unit_id,
+               su.image_url as image_url,
+               cpm.user_id as user_id,
+               cpm.`name` as user_name,
+               cpcu.`name` as unit_name,
+               ca.`name` as community_name,
+               IFNULL(SUM(caiu.integral_sum),0) as amount
+           FROM com_pb_member as cpm
+                    LEFT JOIN com_pb_check_unit as cpcu on cpcu.id=cpm.check_unit_id
+                    LEFT JOIN sys_user as su on su.user_id=cpm.user_id
+                    LEFT JOIN com_act as ca on ca.community_id = cpm.community_id
+                    LEFT JOIN com_act_integral_user as caiu on cpm.user_id=caiu.user_id and cpm.community_id=caiu.community_id
+           WHERE cpm.check_unit_id=(SELECT check_unit_id FROM com_pb_member WHERE user_id=#{userId}  limit 1)
+           GROUP BY cpm.user_id
+           order by amount desc,user_id desc) as tab
+        ,(SELECT @row_number:=0) AS t
+    </select>
+
+    <select id="getAllintegral" resultType="String">
+        SELECT
+            SUM(integral_sum) as amount
+        FROM
+            com_act_integral_user
+        <where>
+            1=1
+            <if test="userIds !=null ">
+                and user_id in
+                <foreach collection="userIds" item="ids" index="index"
+                         open="(" close=")" separator=",">
+                    #{ids}
+                </foreach>
+            </if>
+        </where>
+    </select>
+
+    <select id="getPartyMember" resultType="String">
+        SELECT
+            cpm.user_id
+        FROM com_pb_member as cpm
+        WHERE cpm.check_unit_id=(SELECT check_unit_id FROM com_pb_member WHERE user_id=#{userId})
+    </select>
+
+
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewStriveIntegratingTaskMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewStriveIntegratingTaskMapper.xml
new file mode 100644
index 0000000..1333a5f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/NewStriveIntegratingTaskMapper.xml
@@ -0,0 +1,219 @@
+<?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_dangjian.dao.NewFightIntegratingTaskDao">
+
+    <resultMap type="com.panzhihua.service_dangjian.entity.IntegratingTask" id="itemMap">
+        <result property="id" column="id" />
+        <result property="isDraw" column="is_draw" />
+        <result property="status" column="status" />
+        <result property="userId" column="user_id" />
+        <result property="communityId" column="community_id" />
+        <result property="creationTime" column="creation_time" />
+    </resultMap>
+
+
+    <!-- 分页查询 -->
+    <select id="getList" resultMap="itemMap">
+        select
+            id,
+            is_draw,
+            status,
+            user_id,
+            community_id,
+            creation_time
+        from new_strive_integrating_task
+        <where>
+            1=1
+            <if test="communityId !=null and communityId !='' ">
+                and community_id=#{communityId}
+            </if>
+            <if test="userId !=null and userId !='' ">
+                and user_id=#{userId}
+            </if>
+        </where>
+    </select>
+
+    <!-- 分页查询 -->
+    <select id="getDetails" resultMap="itemMap">
+        select
+        id,
+        is_draw,
+        status,
+        user_id,
+        community_id,
+        creation_time
+        from new_strive_integrating_task
+        <where>
+            1=1
+            <if test="communityId !=null and communityId !='' ">
+                and community_id=#{communityId}
+            </if>
+            <if test="userId !=null and userId !='' ">
+                and user_id=#{userId}
+            </if>
+            <if test="status !=null and status !='' ">
+                and status=#{status}
+            </if>
+        </where>
+        LIMIT 1
+    </select>
+
+
+
+    <insert id="addData">
+        insert into new_strive_integrating_task
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                id,
+            </if>
+            <if test="item.isDraw != null and item.isDraw != '' ">
+                is_draw,
+            </if>
+            <if test="item.status != null and item.status != '' ">
+                status,
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                user_id,
+            </if>
+            <if test="item.communityId !=null and item.communityId !='' ">
+                community_id,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                #{item.id},
+            </if>
+            <if test="item.isDraw != null and item.isDraw != '' ">
+                #{item.isDraw},
+            </if>
+            <if test="item.status != null and item.status != '' ">
+                #{item.status},
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                #{item.userId},
+            </if>
+            <if test="item.communityId !=null and item.communityId !='' ">
+                #{item.communityId},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+
+
+    <update id="editData">
+        update new_strive_integrating_task
+        <set>
+            <if test="item.id != null and item.id != '' ">
+                id=#{item.id},
+            </if>
+            <if test="item.isDraw != null and item.isDraw != '' ">
+                is_draw=#{item.isDraw},
+            </if>
+            <if test="item.status != null and item.status != '' ">
+                status=#{item.status},
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                user_id=#{item.userId},
+            </if>
+            <if test="item.communityId !=null and item.communityId !='' ">
+                community_id=#{item.communityId},
+            </if>
+            update_time=sysdate()
+        </set>
+        where id = #{item.id}
+    </update>
+
+    <delete id="expurgateData" parameterType="String">
+        delete from new_strive_integrating_task where id=#{id}
+    </delete>
+
+
+    <delete id="truncateData">
+        truncate new_strive_integrating_task
+    </delete>
+
+
+
+
+
+
+
+
+
+    <!-- 分页查询 -->
+    <select id="getEverydayList" resultMap="itemMap">
+        select
+        id,
+        user_id,
+        community_id,
+        creation_time
+        from new_strive_everyday_register
+        <where>
+            1=1
+            <if test="communityId !=null and communityId !='' ">
+                and community_id=#{communityId}
+            </if>
+            <if test="userId !=null and userId !='' ">
+                and user_id=#{userId}
+            </if>
+        </where>
+        order by creation_time desc
+        LIMIT 15
+    </select>
+
+
+
+
+    <insert id="addEverydayData">
+        insert into new_strive_everyday_register
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                id,
+            </if>
+            <if test="item.isDraw != null and item.isDraw != '' ">
+                is_draw,
+            </if>
+            <if test="item.status != null and item.status != '' ">
+                status,
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                user_id,
+            </if>
+            <if test="item.communityId !=null and item.communityId !='' ">
+                community_id,
+            </if>
+            creation_time
+        </trim>
+        values
+        <trim prefix="("  suffix=")" suffixOverrides=",">
+            <if test="item.id != null and item.id != '' ">
+                #{item.id},
+            </if>
+            <if test="item.isDraw != null and item.isDraw != '' ">
+                #{item.isDraw},
+            </if>
+            <if test="item.status != null and item.status != '' ">
+                #{item.status},
+            </if>
+            <if test="item.userId != null and item.userId != '' ">
+                #{item.userId},
+            </if>
+            <if test="item.communityId !=null and item.communityId !='' ">
+                #{item.communityId},
+            </if>
+            sysdate()
+        </trim>
+    </insert>
+
+
+
+
+
+
+
+
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/StreetBigScreenMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/StreetBigScreenMapper.xml
new file mode 100644
index 0000000..bf2f7f1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_partybuilding/src/main/resources/mapper/StreetBigScreenMapper.xml
@@ -0,0 +1,478 @@
+<?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_dangjian.dao.StreetBigScreenDAO">
+
+    <!-- 获取街道下社区内容 -->
+    <select id="getCommunityId" resultType="com.panzhihua.common.model.dtos.partybuilding.ComActDTO">
+        select name,community_id from com_act where street_id=#{streetId} and app_id="wx118de8a734d269f0"
+    </select>
+
+    <!-- 获取小程序用户数量 -->
+    <select id="getUserNum" resultType="Integer">
+        select count(user_id)
+        from sys_user
+        where
+            type=1
+            <if test=" communityId !=null and communityId != '' ">
+                and community_id in ( #{communityId} ) and app_id="wx118de8a734d269f0"
+            </if>
+            <if test=" communityId == null and streetId !=null and streetId != '' ">
+                and community_id in (select community_id from com_act where street_id=#{streetId} and app_id="wx118de8a734d269f0")
+            </if>
+            <if test="starTime != null and starTime != '' ">
+                and create_at BETWEEN #{starTime} AND #{endTime}
+            </if>
+    </select>
+
+    <!-- 获取实有人口总数 -->
+    <select id="getActualPopNum" resultType="Integer">
+        select count(id) from com_mng_population
+        where
+            1=1
+            <if test=" communityId !=null and communityId != '' ">
+                and act_id = #{communityId}
+            </if>
+            <if test=" communityId == null and streetId !=null and streetId != '' ">
+                and act_id in (select community_id from com_act where street_id=#{streetId} and app_id="wx118de8a734d269f0")
+            </if>
+            <if test="starTime != null and starTime != '' ">
+                and create_at BETWEEN #{starTime} AND #{endTime}
+            </if>
+    </select>
+
+    <!-- 获取小区总数 -->
+    <select id="getVillageNum" resultType="Integer">
+        select count(village_id) from com_mng_village
+        where
+        1=1
+        <if test=" communityId !=null and communityId != '' ">
+            and community_id in ( #{communityId} )
+        </if>
+        <if test=" communityId == null and streetId !=null and streetId != '' ">
+            and community_id in (select community_id from com_act where street_id=#{streetId} and app_id="wx118de8a734d269f0")
+        </if>
+        <if test="starTime != null and starTime != '' ">
+            and create_at BETWEEN #{starTime} AND #{endTime}
+        </if>
+    </select>
+
+    <!-- 获取志愿者总数 -->
+    <select id="getVolunteerNum" resultType="Integer">
+        select count(id) from com_mng_volunteer_mng
+        where
+        1=1
+        <if test=" communityId !=null and communityId != '' ">
+            and community_id in  ( #{communityId} )
+        </if>
+        <if test=" communityId == null and streetId !=null and streetId != '' ">
+            and community_id in (select community_id from com_act where street_id=#{streetId} and app_id="wx118de8a734d269f0")
+        </if>
+        <if test="starTime != null and starTime != '' ">
+            and create_at BETWEEN #{starTime} AND #{endTime}
+        </if>
+    </select>
+
+    <!-- 三资三务数据 -->
+    <select id="getThreeNum" resultType="Integer">
+        select count(id) from com_act_dyn
+        where
+          `type` in (
+              select id from com_act_dyn_type
+              where
+                1=1
+                <if test=" communityId !=null and communityId != '' ">
+                    and community_id in  ( #{communityId} )
+                </if>
+                <if test=" communityId == null and streetId !=null and streetId != '' ">
+                    and community_id in (select community_id from com_act where street_id=#{streetId} and app_id="wx118de8a734d269f0")
+                </if>
+                <if test=" name != null and name != '' ">
+                    and `name`= #{name}
+                </if>
+
+            )
+        <if test="starTime != null and starTime != '' ">
+            and create_at BETWEEN #{starTime} AND #{endTime}
+        </if>
+    </select>
+
+
+    <!-- 旧的报道需求问题统计数 -->
+    <select id="getOleNeedProblemNum" resultType="Integer">
+        select count(id) from com_act_neighbor_circle
+        where
+        1=1
+        <if test=" belongType !=null and belongType != '' ">
+            and belong_type = #{belongType}
+        </if>
+        <if test=" communityId !=null and communityId != '' ">
+            and community_id in  ( #{communityId} )
+        </if>
+        <if test=" communityId == null and streetId !=null and streetId != '' ">
+            and community_id in (select community_id from com_act where street_id=#{streetId} and app_id="wx118de8a734d269f0")
+        </if>
+        <if test="starTime != null and starTime != '' ">
+            and create_at BETWEEN #{starTime} AND #{endTime}
+        </if>
+    </select>
+
+
+    <!-- 旧的报道需求问题统计数 -->
+    <select id="getNewNeedProblemNum" resultType="Integer">
+        select count(id) from new_fight_need_problem_inventory
+        where
+        1=1
+        <if test=" kind !=null and kind != '' ">
+            and kind = #{kind}
+        </if>
+        <if test=" communityId !=null and communityId != '' ">
+            and community_id in  ( #{communityId} )
+        </if>
+        <if test=" communityId == null and streetId !=null and streetId != '' ">
+            and community_id in (select community_id from com_act where street_id=#{streetId} and app_id="wx118de8a734d269f0")
+        </if>
+        <if test="starTime != null and starTime != '' ">
+            and creation_time BETWEEN #{starTime} AND #{endTime}
+        </if>
+    </select>
+
+    <!--  获取旧双报道服务时间  -->
+    <select id="getOldTime" resultType="Double">
+        select SUM(ROUND((TIMESTAMPDIFF(SECOND,order_time, solve_time) / 3600), 2)) from com_act_neighbor_circle
+        where
+            order_time is not null and solve_time is not null and belong_type in (2,3)
+        <if test=" communityId !=null and communityId != '' ">
+            and community_id in  ( #{communityId} )
+        </if>
+        <if test=" communityId == null and streetId !=null and streetId != '' ">
+            and community_id in (select community_id from com_act where street_id=#{streetId} and app_id="wx118de8a734d269f0")
+        </if>
+        <if test="starTime != null and starTime != '' ">
+            and create_at BETWEEN #{starTime} AND #{endTime}
+        </if>
+    </select>
+
+    <!--  获取新双报道服务时间  -->
+    <select id="getNewTime" resultType="Double">
+        select SUM(ROUND((service_time / 3600000), 2)) from new_fight_need_problem_claim
+        where
+        service_time is not null and
+          task_id in (
+              select id from new_fight_need_problem_inventory where
+                1=1
+                <if test=" communityId !=null and communityId != '' ">
+                    and community_id in  ( #{communityId} )
+                </if>
+                <if test=" communityId == null and streetId !=null and streetId != '' ">
+                    and community_id in (select community_id from com_act where street_id=#{streetId} and app_id="wx118de8a734d269f0")
+                </if>
+                <if test="starTime != null and starTime != '' ">
+                    and creation_time BETWEEN #{starTime} AND #{endTime}
+                </if>
+        )
+
+    </select>
+
+
+
+    <select id="getRegistNum" resultType="Integer">
+        select count(id)  from com_act_act_regist where start_time is not null and end_time is not null and
+            activity_id in (
+            select id from com_act_activity where
+                1=1
+                <if test=" communityId !=null and communityId != '' ">
+                    and community_id in  ( #{communityId} )
+                </if>
+                <if test=" communityId == null and streetId !=null and streetId != '' ">
+                    and community_id in (select community_id from com_act where street_id=#{streetId} and app_id="wx118de8a734d269f0")
+                </if>
+                <if test="starTime != null and starTime != '' ">
+                    and create_at BETWEEN #{starTime} AND #{endTime}
+                </if>
+        )
+
+    </select>
+
+
+
+
+
+
+
+
+
+    <!--  党建动态数据  -->
+    <select id="getPartyBuildingNum" resultType="Integer">
+        select count(id) from com_pb_dyn
+        where
+        dyn_type =1
+        <if test=" communityId !=null and communityId != '' ">
+            and community_id in  ( #{communityId} )
+        </if>
+        <if test=" communityId == null and streetId !=null and streetId != '' ">
+            and community_id in (select community_id from com_act where street_id=#{streetId} and app_id="wx118de8a734d269f0")
+        </if>
+        <if test="starTime != null and starTime != '' ">
+            and create_at BETWEEN #{starTime} AND #{endTime}
+        </if>
+    </select>
+
+    <!-- 报到单位总计数据 -->
+    <select id="getUnitNum" resultType="Integer">
+        SELECT COUNT( id ) FROM com_pb_check_unit
+        WHERE 1=1
+        <if test=" communityId !=null and communityId != '' ">
+            and community_id in  ( #{communityId} )
+        </if>
+        <if test=" communityId == null and streetId !=null and streetId != '' ">
+            and community_id in (select community_id from com_act where street_id=#{streetId} and app_id="wx118de8a734d269f0")
+        </if>
+        <if test="starTime != null and starTime != '' ">
+            and create_at BETWEEN #{starTime} AND #{endTime}
+        </if>
+    </select>
+
+    <!-- 报到党员总计数据 -->
+    <select id="getMemberNum" resultType="Integer">
+        SELECT COUNT( m.id )
+        FROM com_pb_member m
+        LEFT JOIN com_pb_check_unit as cpcu ON m.check_unit_id = cpcu.id
+        WHERE m.audit_result = 1
+        <if test=" communityId !=null and communityId != '' ">
+            and m.community_id in  ( #{communityId} )
+        </if>
+        <if test=" communityId == null and streetId !=null and streetId != '' ">
+            and m.community_id in (select community_id from com_act where street_id=#{streetId} and app_id="wx118de8a734d269f0")
+        </if>
+        <if test="starTime != null and starTime != '' ">
+            and m.create_at BETWEEN #{starTime} AND #{endTime}
+        </if>
+    </select>
+
+    <!--  街道大屏随手拍-微心愿  1随手拍  2微心愿 -->
+    <select id="getPhotoMicroWishData" resultType="com.panzhihua.common.model.vos.partybuilding.PhotoMicroWishData">
+        select count(t1.id) as num,t1.tiems,t1.create_at
+        from
+        (
+            select id,community_id,create_at,1 as type,DATE_FORMAT(create_at,#{timeType}) as tiems
+            from com_act_easy_photo
+            where add_type = 1
+
+            UNION all
+
+            select id,community_id,create_at,2 as type,DATE_FORMAT(create_at,#{timeType}) as tiems
+            from com_act_micro_wish
+
+        )  t1
+        <where>
+            t1.type=#{type}
+            <if test=" communityId !=null and communityId != '' ">
+                and community_id in  ( #{communityId} )
+            </if>
+            <if test=" communityId == null and streetId !=null and streetId != '' ">
+                and community_id in (select community_id from com_act where street_id=#{streetId} and app_id="wx118de8a734d269f0")
+            </if>
+            <if test=" starTime != null and starTime != '' ">
+                and t1.create_at BETWEEN #{starTime} AND #{endTime}
+            </if>
+        </where>
+        group by t1.tiems
+        order by t1.tiems asc
+    </select>
+
+    <!--  街道大屏随手拍-1随手拍 -->
+    <select id="getPhotoAllNum" resultType="Integer">
+        select count(id)
+        from com_act_easy_photo
+        <where> add_type = 1
+            <if test=" communityId !=null and communityId != '' ">
+                and community_id in  ( #{communityId} )
+            </if>
+            <if test=" communityId == null and streetId !=null and streetId != '' ">
+                and community_id in (select community_id from com_act where street_id=#{streetId} and app_id="wx118de8a734d269f0")
+            </if>
+            <if test=" starTime != null and starTime != '' ">
+                and create_at BETWEEN #{starTime} AND #{endTime}
+            </if>
+        </where>
+    </select>
+
+    <!--  街道大屏微心愿 -->
+    <select id="getMicroWishAllNum" resultType="Integer">
+        select count(id)
+        from com_act_micro_wish
+        <where>
+            <if test=" communityId !=null and communityId != '' ">
+                and community_id in  ( #{communityId} )
+            </if>
+            <if test=" communityId == null and streetId !=null and streetId != '' ">
+                and community_id in (select community_id from com_act where street_id=#{streetId} and app_id="wx118de8a734d269f0")
+            </if>
+            <if test=" starTime != null and starTime != '' ">
+                and create_at BETWEEN #{starTime} AND #{endTime}
+            </if>
+        </where>
+    </select>
+
+
+
+
+
+    <!--  社区活动统计  -->
+    <select id="getNommunityActNumList" resultType="com.panzhihua.common.model.vos.partybuilding.PhotoMicroWishData">
+        select count(id) as num, DATE_FORMAT(create_at,#{timeType}) as tiems,create_at
+        from com_act_activity
+        <where>
+            1=1
+            <if test=" communityId !=null and communityId != '' ">
+                and community_id in  ( #{communityId} )
+            </if>
+            <if test=" communityId == null and streetId !=null and streetId != '' ">
+                and community_id in (select community_id from com_act where street_id=#{streetId} and app_id="wx118de8a734d269f0")
+            </if>
+            <if test=" starTime != null and starTime != '' ">
+                and create_at BETWEEN #{starTime} AND #{endTime}
+            </if>
+        </where>
+        group by tiems
+    </select>
+
+
+    <!--  社区动态  -->
+    <select id="getNommunityDynNumList" resultType="com.panzhihua.common.model.vos.partybuilding.PhotoMicroWishData">
+        select count(id) as num, DATE_FORMAT(create_at,#{timeType}) as tiems,create_at
+        from com_act_dyn
+        <where>
+            1=1
+            <if test=" communityId !=null and communityId != '' ">
+                and community_id in  ( #{communityId} )
+            </if>
+            <if test=" communityId == null and streetId !=null and streetId != '' ">
+                and community_id in (select community_id from com_act where street_id=#{streetId} and app_id="wx118de8a734d269f0")
+            </if>
+            <if test=" starTime != null and starTime != '' ">
+                and create_at BETWEEN #{starTime} AND #{endTime}
+            </if>
+        </where>
+        group by tiems
+    </select>
+
+    <!--  问卷调查  -->
+    <select id="getQuestnaireNumList" resultType="com.panzhihua.common.model.vos.partybuilding.PhotoMicroWishData">
+        select count(id) as num, DATE_FORMAT(create_at,#{timeType}) as tiems,create_at
+        from com_act_questnaire
+        <where>
+            1=1
+            <if test=" communityId !=null and communityId != '' ">
+                and community_id in  ( #{communityId} )
+            </if>
+            <if test=" communityId == null and streetId !=null and streetId != '' ">
+                and community_id in (select community_id from com_act where street_id=#{streetId} and app_id="wx118de8a734d269f0")
+            </if>
+            <if test=" starTime != null and starTime != '' ">
+                and create_at BETWEEN #{starTime} AND #{endTime}
+            </if>
+        </where>
+        group by tiems
+    </select>
+
+    <!--  议事投票  -->
+    <select id="getDiscussNumList" resultType="com.panzhihua.common.model.vos.partybuilding.PhotoMicroWishData">
+        select count(id) as num, DATE_FORMAT(create_at,#{timeType}) as tiems,create_at  from com_act_discuss
+        <where>
+            1=1
+            <if test=" communityId !=null and communityId != '' ">
+                and community_id in  ( #{communityId} )
+            </if>
+            <if test=" communityId == null and streetId !=null and streetId != '' ">
+                and community_id in (select community_id from com_act where street_id=#{streetId} and app_id="wx118de8a734d269f0")
+            </if>
+            <if test=" starTime != null and starTime != '' ">
+                and create_at BETWEEN #{starTime} AND #{endTime}
+            </if>
+        </where>
+        group by tiems
+    </select>
+
+
+
+
+    <!--  社区活动统计  -->
+    <select id="getNommunityActNum" resultType="Integer">
+        select count(id)
+        from com_act_activity
+        <where>
+            1=1
+            <if test=" communityId !=null and communityId != '' ">
+                and community_id in  ( #{communityId} )
+            </if>
+            <if test=" communityId == null and streetId !=null and streetId != '' ">
+                and community_id in (select community_id from com_act where street_id=#{streetId} and app_id="wx118de8a734d269f0")
+            </if>
+            <if test=" starTime != null and starTime != '' ">
+                and create_at BETWEEN #{starTime} AND #{endTime}
+            </if>
+        </where>
+    </select>
+
+
+    <!--  社区动态  -->
+    <select id="getNommunityDynNum" resultType="Integer">
+        select count(id)
+        from com_act_dyn
+        <where>
+            1=1
+            <if test=" communityId !=null and communityId != '' ">
+                and community_id in  ( #{communityId} )
+            </if>
+            <if test=" communityId == null and streetId !=null and streetId != '' ">
+                and community_id in (select community_id from com_act where street_id=#{streetId} and app_id="wx118de8a734d269f0")
+            </if>
+            <if test=" starTime != null and starTime != '' ">
+                and create_at BETWEEN #{starTime} AND #{endTime}
+            </if>
+        </where>
+    </select>
+
+    <!--  问卷调查  -->
+    <select id="getQuestnaireNum" resultType="Integer">
+        select count(id)
+        from com_act_questnaire
+        <where>
+            1=1
+            <if test=" communityId !=null and communityId != '' ">
+                and community_id in  ( #{communityId} )
+            </if>
+            <if test=" communityId == null and streetId !=null and streetId != '' ">
+                and community_id in (select community_id from com_act where street_id=#{streetId} and app_id="wx118de8a734d269f0")
+            </if>
+            <if test=" starTime != null and starTime != '' ">
+                and create_at BETWEEN #{starTime} AND #{endTime}
+            </if>
+        </where>
+    </select>
+
+    <!--  议事投票  -->
+    <select id="getDiscussNum" resultType="Integer">
+        select count(id)
+        from com_act_discuss
+        <where>
+            1=1
+            <if test=" communityId !=null and communityId != '' ">
+                and community_id in  ( #{communityId} )
+            </if>
+            <if test=" communityId == null and streetId !=null and streetId != '' ">
+                and community_id in (select community_id from com_act where street_id=#{streetId} and app_id="wx118de8a734d269f0")
+            </if>
+            <if test=" starTime != null and starTime != '' ">
+                and create_at BETWEEN #{starTime} AND #{endTime}
+            </if>
+        </where>
+    </select>
+
+
+
+
+
+</mapper>
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/.gitignore b/springcloud_k8s_panzhihuazhihuishequ/service_property/.gitignore
new file mode 100644
index 0000000..549e00a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/.gitignore
@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/service_property/pom.xml
new file mode 100644
index 0000000..9f52259
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/pom.xml
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.panzhihua</groupId>
+        <artifactId>zhihuishequ</artifactId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <groupId>com.panzhihua</groupId>
+    <artifactId>service_property</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>service_property</name>
+    <description>物业</description>
+
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-config</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>cn.jpush.api</groupId>
+            <artifactId>jpush-client</artifactId>
+            <version>3.4.6</version>
+        </dependency>
+        <dependency>
+            <groupId>cn.jpush.api</groupId>
+            <artifactId>jiguang-common</artifactId>
+            <version>1.1.8</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid-spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.netflix.hystrix</groupId>
+            <artifactId>hystrix-javanica</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-integration</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.springframework.boot</groupId>
+                    <artifactId>spring-boot-starter-logging</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>io.netty</groupId>
+            <artifactId>netty-all</artifactId>
+            <version>4.1.36.Final</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.panzhihua</groupId>
+            <artifactId>common</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.data</groupId>
+            <artifactId>spring-data-redis</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>commons-lang</groupId>
+            <artifactId>commons-lang</artifactId>
+            <version>2.6</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-amqp</artifactId>
+        </dependency>
+        <!--添加监控依赖包-->
+        <dependency>
+            <groupId>io.micrometer</groupId>
+            <artifactId>micrometer-registry-prometheus</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-websocket</artifactId>
+            <version>2.3.4.RELEASE</version>
+        </dependency>
+    </dependencies>
+
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>2.5.0</version>
+                <configuration>
+                    <mainClass>com.panzhihua.service_property.ServicePropertyApplication</mainClass>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>docker-maven-plugin</artifactId>
+                <version>1.2.0</version>
+                <configuration>
+                    <imageName>registry.cn-chengdu.aliyuncs.com/panzhihua/service_property:v1</imageName>
+                    <serverId></serverId>
+                    <baseImage>java</baseImage>
+                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
+                    <resources>
+                        <resource>
+                            <targetPath>/</targetPath>
+                            <directory>${project.build.directory}</directory>
+                            <include>${project.build.finalName}.jar</include>
+                        </resource>
+                    </resources>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <repositories>
+        <repository>
+            <id>spring-milestones</id>
+            <name>Spring Milestones</name>
+            <url>https://repo.spring.io/milestone</url>
+        </repository>
+    </repositories>
+
+</project>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/ServicePropertyApplication.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/ServicePropertyApplication.java
new file mode 100644
index 0000000..07032ff
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/ServicePropertyApplication.java
@@ -0,0 +1,29 @@
+package com.panzhihua.service_property;
+
+import com.panzhihua.service_property.netty.NettyServer;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.SpringCloudApplication;
+import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.ComponentScan;
+
+import javax.annotation.Resource;
+import java.net.InetSocketAddress;
+
+@SpringCloudApplication
+@EnableFeignClients(basePackages = {"com.panzhihua.common.service"})
+@EnableEurekaClient
+@EnableCircuitBreaker
+@ComponentScan({"com.panzhihua.service_property", "com.panzhihua.common"})
+@SpringBootApplication
+public class ServicePropertyApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(ServicePropertyApplication.class, args);
+        new NettyServer().start();
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/api/ComPropertyAlarmApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/api/ComPropertyAlarmApi.java
new file mode 100644
index 0000000..2813d31
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/api/ComPropertyAlarmApi.java
@@ -0,0 +1,88 @@
+package com.panzhihua.service_property.api;
+
+
+import cn.hutool.core.date.DateUtil;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.property.ComPropertyAlarmVO;
+import com.panzhihua.service_property.entity.ComPropertyAlarm;
+import com.panzhihua.service_property.service.ComPropertyAlarmService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+/**
+ * (ComPropertyAlarm)表控制层
+ *
+ * @author makejava
+ * @since 2021-09-07 13:29:50
+ */
+@RestController
+@RequestMapping("comPropertyAlarm")
+public class ComPropertyAlarmApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ComPropertyAlarmService comPropertyAlarmService;
+
+    /**
+     * 分页查询所有数据
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.comPropertyAlarmService.pageList(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Integer id) {
+        return this.comPropertyAlarmService.selectDetail(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comPropertyAlarmVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody ComPropertyAlarmVO comPropertyAlarmVO) {
+        ComPropertyAlarm comPropertyAlarm=new ComPropertyAlarm();
+        BeanUtils.copyProperties(comPropertyAlarmVO,comPropertyAlarm);
+        comPropertyAlarm.setCreateTime(DateUtil.date());
+        return this.comPropertyAlarmService.insert(comPropertyAlarm);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comPropertyAlarmVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody ComPropertyAlarmVO comPropertyAlarmVO) {
+        ComPropertyAlarm comPropertyAlarm=new ComPropertyAlarm();
+        BeanUtils.copyProperties(comPropertyAlarmVO,comPropertyAlarm);
+        return R.ok(this.comPropertyAlarmService.updateById(comPropertyAlarm));
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return R.ok(this.comPropertyAlarmService.removeById(id));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/api/ComPropertyAlarmSettingApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/api/ComPropertyAlarmSettingApi.java
new file mode 100644
index 0000000..ce5b228
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/api/ComPropertyAlarmSettingApi.java
@@ -0,0 +1,59 @@
+package com.panzhihua.service_property.api;
+
+
+import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.api.ApiController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.property.ComPropertyAlarmSettingVO;
+import com.panzhihua.service_property.entity.ComPropertyAlarmSetting;
+import com.panzhihua.service_property.service.ComPropertyAlarmSettingService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * (ComPropertyAlarmSetting)表控制层
+ *
+ * @author makejava
+ * @since 2021-09-09 09:46:51
+ */
+@RestController
+@RequestMapping("comPropertyAlarmSetting")
+public class ComPropertyAlarmSettingApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ComPropertyAlarmSettingService comPropertyAlarmSettingService;
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param communityId 主键
+     * @return 单条数据
+     */
+    @GetMapping
+    public R selectOne(@RequestParam("communityId") Long communityId) {
+        return this.comPropertyAlarmSettingService.getByCommunityId(communityId);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comPropertyAlarmSettingVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody ComPropertyAlarmSettingVO comPropertyAlarmSettingVO) {
+        ComPropertyAlarmSetting comPropertyAlarmSetting=new ComPropertyAlarmSetting();
+        BeanUtils.copyProperties(comPropertyAlarmSettingVO,comPropertyAlarmSetting);
+        comPropertyAlarmSetting.setCreateTime(DateUtil.date());
+        return R.ok(this.comPropertyAlarmSettingService.insert(comPropertyAlarmSetting));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/api/ComPropertyEquipmentApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/api/ComPropertyEquipmentApi.java
new file mode 100644
index 0000000..34a2bea
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/api/ComPropertyEquipmentApi.java
@@ -0,0 +1,91 @@
+package com.panzhihua.service_property.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.api.ApiController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.property.ComPropertyEquipmentVO;
+import com.panzhihua.service_property.entity.ComPropertyEquipment;
+import com.panzhihua.service_property.service.ComPropertyEquipmentService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * (ComPropertyEquipment)表控制层
+ *
+ * @author makejava
+ * @since 2021-09-07 13:29:33
+ */
+@RestController
+@RequestMapping("comPropertyEquipment")
+public class ComPropertyEquipmentApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ComPropertyEquipmentService comPropertyEquipmentService;
+
+    /**
+     * 分页查询所有数据
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.comPropertyEquipmentService.pageList(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Integer id) {
+        return R.ok(this.comPropertyEquipmentService.getById(id));
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comPropertyEquipmentVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody ComPropertyEquipmentVO comPropertyEquipmentVO) {
+        ComPropertyEquipment comPropertyEquipment=new ComPropertyEquipment();
+        BeanUtils.copyProperties(comPropertyEquipmentVO,comPropertyEquipment);
+        return this.comPropertyEquipmentService.insert(comPropertyEquipment);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comPropertyEquipmentVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody ComPropertyEquipmentVO comPropertyEquipmentVO) {
+        ComPropertyEquipment comPropertyEquipment=new ComPropertyEquipment();
+        BeanUtils.copyProperties(comPropertyEquipmentVO,comPropertyEquipment);
+        return R.ok(this.comPropertyEquipmentService.updateById(comPropertyEquipment));
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return R.ok(this.comPropertyEquipmentService.removeById(id));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/api/ComPropertyHelpApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/api/ComPropertyHelpApi.java
new file mode 100644
index 0000000..9dd8327
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/api/ComPropertyHelpApi.java
@@ -0,0 +1,98 @@
+package com.panzhihua.service_property.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.api.ApiController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.property.ComPropertyHelpVO;
+import com.panzhihua.service_property.entity.ComPropertyHelp;
+import com.panzhihua.service_property.service.ComPropertyHelpService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * (ComPropertyHelp)表控制层
+ *
+ * @author makejava
+ * @since 2021-09-18 16:43:12
+ */
+@RestController
+@RequestMapping("comPropertyHelp")
+public class ComPropertyHelpApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ComPropertyHelpService comPropertyHelpService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.comPropertyHelpService.pageList(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Serializable id) {
+        return R.ok(this.comPropertyHelpService.getById(id));
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param comPropertyHelp 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody ComPropertyHelpVO comPropertyHelp) {
+        if(comPropertyHelp!=null){
+            ComPropertyHelp comPropertyHelp1=new ComPropertyHelp();
+            BeanUtils.copyProperties(comPropertyHelp,comPropertyHelp1);
+            return R.ok(this.comPropertyHelpService.save(comPropertyHelp1));
+        }
+        return R.fail();
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comPropertyHelp 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody ComPropertyHelpVO comPropertyHelp) {
+        if(comPropertyHelp!=null){
+            ComPropertyHelp comPropertyHelp1=new ComPropertyHelp();
+            BeanUtils.copyProperties(comPropertyHelp,comPropertyHelp1);
+            return R.ok(this.comPropertyHelpService.updateById(comPropertyHelp1));
+        }
+        return R.fail();
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return R.ok(this.comPropertyHelpService.removeById(id));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/api/ComPropertyRepairApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/api/ComPropertyRepairApi.java
new file mode 100644
index 0000000..04c79e3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/api/ComPropertyRepairApi.java
@@ -0,0 +1,129 @@
+package com.panzhihua.service_property.api;
+
+
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.property.ComPropertyRepairVO;
+import com.panzhihua.common.utlis.RSAUtils;
+import com.panzhihua.service_property.entity.ComPropertyRepair;
+import com.panzhihua.service_property.service.ComPropertyRepairService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+import static java.util.Objects.nonNull;
+
+/**
+ * (ComPropertyRepair)表控制层
+ *
+ * @author makejava
+ * @since 2021-09-02 10:12:12
+ */
+@RestController
+@RequestMapping("comPropertyRepair")
+@Slf4j
+public class ComPropertyRepairApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private ComPropertyRepairService comPropertyRepairService;
+
+    /**
+     * 分页查询所有数据
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.comPropertyRepairService.pageList(commonPage);
+    }
+
+    /**
+     * 分页查询所有数据 脱敏
+     * @return 所有数据
+     */
+    @PostMapping("queryAllDesensitize")
+    public R selectAllDesensitize(@RequestBody CommonPage commonPage) {
+        return this.comPropertyRepairService.pageListDesensitize(commonPage);
+    }
+
+
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return this.comPropertyRepairService.selectDetail(id);
+    }
+
+
+    /**
+     * 通过主键查询单条数据 脱敏
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("desensitize/{id}")
+    public R selectOneDesensitize(@PathVariable("id") Long id) {
+        return this.comPropertyRepairService.selectDetailDesensitize(id);
+    }
+
+
+    /**
+     * 新增数据
+     *
+     * @param comPropertyRepairVO 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody ComPropertyRepairVO comPropertyRepairVO) {
+        ComPropertyRepair comPropertyRepair=new ComPropertyRepair();
+        if(comPropertyRepairVO!=null){
+            BeanUtils.copyProperties(comPropertyRepairVO,comPropertyRepair);
+        }
+        ComPropertyRepairVO vo=comPropertyRepairVO;
+        try {
+            comPropertyRepair.setRepairName(RSAUtils.decrypt(comPropertyRepairVO.getRepairName(), Constants.PRIVATE_KEY));
+            comPropertyRepair.setRepairPhone(RSAUtils.decrypt(comPropertyRepairVO.getRepairPhone(), Constants.PRIVATE_KEY));
+        } catch (Exception e) {
+            e.printStackTrace();
+            comPropertyRepair.setRepairName(comPropertyRepairVO.getRepairName());
+            comPropertyRepair.setRepairPhone(comPropertyRepairVO.getRepairPhone());
+        }
+        return R.ok(this.comPropertyRepairService.save(comPropertyRepair));
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param comPropertyRepairVO 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody ComPropertyRepairVO comPropertyRepairVO) {
+        ComPropertyRepair comPropertyRepair=new ComPropertyRepair();
+        if(comPropertyRepairVO!=null){
+            BeanUtils.copyProperties(comPropertyRepairVO,comPropertyRepair);
+        }
+        return R.ok(this.comPropertyRepairService.updateById(comPropertyRepair));
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return R.ok(this.comPropertyRepairService.removeById(id));
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/config/MybatisPlusConfig.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/config/MybatisPlusConfig.java
new file mode 100644
index 0000000..7b21fd1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/config/MybatisPlusConfig.java
@@ -0,0 +1,34 @@
+package com.panzhihua.service_property.config;
+
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 分页
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 16:26
+ **/
+@Configuration
+public class MybatisPlusConfig {
+
+    /**
+     * 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)
+     */
+    @Bean
+    public MybatisPlusInterceptor mybatisPlusInterceptor() {
+        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
+        return interceptor;
+    }
+
+    @Bean
+    public ConfigurationCustomizer configurationCustomizer() {
+        return configuration -> configuration.setUseDeprecatedExecutor(false);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/config/RabbitmqConfig.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/config/RabbitmqConfig.java
new file mode 100644
index 0000000..bb3f86f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/config/RabbitmqConfig.java
@@ -0,0 +1,100 @@
+package com.panzhihua.service_property.config;
+
+import org.springframework.amqp.core.*;
+import org.springframework.amqp.support.converter.Jackson2JsonMessageConverter;
+import org.springframework.amqp.support.converter.MessageConverter;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@Configuration
+public class RabbitmqConfig {
+
+
+    public static final String DELAYED_QUEUE="delayed.queue";
+    public static final String DELAYED_ROUTING_KEY="delayed.key";
+    public static final String DELAYED_EXCHANGE="delayed.exchange";
+
+
+
+    @Bean
+    public Queue delayedQueue(){
+        return new Queue(DELAYED_QUEUE,true,false,false,null);
+    }
+
+    @Bean
+    public Exchange delayedExchange(){
+        Map<String, Object> arguments = new HashMap<>();
+        arguments.put("x-delayed-type", ExchangeTypes.DIRECT);
+        return new CustomExchange(DELAYED_EXCHANGE,"x-delayed-message",true,false,arguments);
+    }
+
+    @Bean
+    public Binding delayedBinding(){
+        return BindingBuilder.bind(delayedQueue()).to(delayedExchange()).with(DELAYED_ROUTING_KEY).noargs();
+    }
+
+    public Queue directQueue() {
+        // durable:是否持久化,默认是false,持久化队列:会被存储在磁盘上,当消息代理重启时仍然存在,暂存队列:当前连接有效
+        // exclusive:默认也是false,只能被当前创建的连接使用,而且当连接关闭后队列即被删除。此参考优先级高于durable
+        // autoDelete:是否自动删除,当没有生产者或者消费者使用此队列,该队列会自动删除。
+        //   return new Queue("TestDirectQueue",true,true,false);
+
+        //一般设置一下队列的持久化就好,其余两个就是默认false
+        return new Queue("directQueue",true);
+    }
+
+    //Direct交换机 起名:TestDirectExchange
+    @Bean
+    DirectExchange directExchange() {
+        //  return new DirectExchange("TestDirectExchange",true,true);
+        return new DirectExchange("directExchange",true,false);
+    }
+
+    //绑定  将队列和交换机绑定, 并设置用于匹配键:TestDirectRouting
+    @Bean
+    Binding bindingDirect() {
+        return BindingBuilder.bind(directQueue()).to(directExchange()).with("directRouting");
+    }
+
+
+    public Queue pushQueue() {
+        // durable:是否持久化,默认是false,持久化队列:会被存储在磁盘上,当消息代理重启时仍然存在,暂存队列:当前连接有效
+        // exclusive:默认也是false,只能被当前创建的连接使用,而且当连接关闭后队列即被删除。此参考优先级高于durable
+        // autoDelete:是否自动删除,当没有生产者或者消费者使用此队列,该队列会自动删除。
+        //   return new Queue("TestDirectQueue",true,true,false);
+
+        //一般设置一下队列的持久化就好,其余两个就是默认false
+        return new Queue("pushQueue",true);
+    }
+
+    //Direct交换机 起名:TestDirectExchange
+    @Bean
+    DirectExchange pushExchange() {
+        //  return new DirectExchange("TestDirectExchange",true,true);
+        return new DirectExchange("PUSH_Exchange",true,false);
+    }
+
+    //绑定  将队列和交换机绑定, 并设置用于匹配键:TestDirectRouting
+    @Bean
+    Binding bindingPush() {
+        return BindingBuilder.bind(directQueue()).to(directExchange()).with("PUSH_ROUTING");
+    }
+
+
+
+    @Bean
+    DirectExchange lonelyDirectExchange() {
+        return new DirectExchange("lonelyDirectExchange");
+    }
+
+    @Bean
+    public MessageConverter messageConverter(){
+        return new Jackson2JsonMessageConverter();
+    }
+
+
+}
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/config/WebSocketClient.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/config/WebSocketClient.java
new file mode 100644
index 0000000..1a383e1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/config/WebSocketClient.java
@@ -0,0 +1,166 @@
+package com.panzhihua.service_property.config;
+
+import cn.hutool.extra.spring.SpringUtil;
+import com.alibaba.fastjson.JSONObject;;
+import com.panzhihua.service_property.dao.ComPropertyAlarmDao;
+import com.panzhihua.service_property.dto.DeviceDto;
+import com.panzhihua.service_property.entity.ComPropertyAlarm;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import javax.websocket.*;
+import java.io.IOException;
+import java.util.Date;
+
+/**
+ * 应用模块名称
+ * <p>
+ * 一键报警设备消息 代码描述
+ * <p>
+ * Copyright: Copyright (C) 2021 XXX, Inc. All rights reserved.
+ * <p>
+ * Company: 成都呐喊信息技术有限公司
+ * <p>
+ *
+ * @author manailin
+ * @since 2021/9/27 16:31
+ */
+@Slf4j
+@Component
+@ClientEndpoint
+public class WebSocketClient {
+
+    private static final Logger logger = LoggerFactory.getLogger(WebSocketClient.class);
+
+    /**
+     * 保存报警记录服务
+     */
+    @Resource
+    private ComPropertyAlarmDao comPropertyAlarmDao;
+    /**
+     * session
+     */
+    private Session session;
+
+    /**
+     * <beforeInit>
+     *
+     * @throws
+     */
+    public static void beforeInit() {
+        // 在socket配置类中调用此方法可以完成一些需要初始化注入的操作
+    }
+
+    @OnOpen
+    public void onOpen(Session session) {
+        logger.info("连接开启...");
+        this.session = session;
+    }
+
+    @OnMessage
+    public void onMessage(String message, Session session) {
+        // 提取数据
+        logger.info("收到的原始数据:{}", message);
+        dealNewData(message);
+    }
+
+    @Deprecated
+    @Async
+    void dealNewData(String message) {
+        comPropertyAlarmDao = SpringUtil.getBean(ComPropertyAlarmDao.class);
+        JSONObject deviceMess = JSONObject.parseObject(message);
+        boolean checkFlag =
+                ("trace_call".equals(deviceMess.getString("cmd")) && (StringUtils.isNotEmpty(deviceMess.getString("userid"))));
+        if (checkFlag) {
+            log.info("已经接收到报警记录,记录信息:{}",deviceMess.toJSONString());
+            boolean panzhihuaDevice = deviceMess.getString("userid").startsWith("7") || deviceMess.getString("userid").startsWith("8");
+            if(panzhihuaDevice) {
+                log.info("报警记录是攀枝花设备7-8开头的设备");
+                logger.info("收到设备报警信息:{}", message);
+                for (int i = 1; i < 10; i++) {
+                    if (org.apache.commons.lang.StringUtils.isNotEmpty(deviceMess.getString("num" + i))) {
+                        ComPropertyAlarm comPropertyAlarm = new ComPropertyAlarm();
+                        comPropertyAlarm.setSerialNo(deviceMess.getString("userid"));
+                        comPropertyAlarm.setReceiveNo(deviceMess.getString("num" + i));
+                        comPropertyAlarm.setStatus(0);
+                        // 10位的秒级别的时间戳
+                        Date createDate = new Date(deviceMess.getLong("ts" + i) * 1000);
+                        //对应的就是时间戳对应的Date
+                        comPropertyAlarm.setCreateTime(createDate);
+                        comPropertyAlarm.setType(1);
+                        comPropertyAlarmDao.insert(comPropertyAlarm);
+                    } else {
+                        break;
+                    }
+                }
+            }
+        }
+    }
+
+    @Deprecated
+    @Async
+    void dealData(String message) {
+        comPropertyAlarmDao = SpringUtil.getBean(ComPropertyAlarmDao.class);
+        DeviceDto deviceInfo = JSONObject.parseObject(message, DeviceDto.class);
+        boolean checkFlag =
+                "RINGING".equals(deviceInfo.getCallstatus()) && StringUtils.isNotEmpty(deviceInfo.getOri_number());
+        if (checkFlag) {
+            logger.info("收到设备报警信息:{}", message);
+            ComPropertyAlarm comPropertyAlarm = new ComPropertyAlarm();
+            comPropertyAlarm.setSerialNo(deviceInfo.getOri_number());
+            comPropertyAlarm.setReceiveNo(deviceInfo.getUserid());
+            comPropertyAlarm.setStatus(0);
+            comPropertyAlarm.setCreateTime(new Date());
+            comPropertyAlarm.setType(1);
+            comPropertyAlarmDao.insert(comPropertyAlarm);
+        }
+    }
+
+    @OnClose
+    public void onClose() {
+        logger.info("长连接关闭...");
+    }
+
+    @OnError
+    public void onError(Session session, Throwable t) {
+        logger.error("error, cause: ", t);
+    }
+
+    /**
+     * <异步发送message>
+     *
+     * @param message message @throws
+     */
+    public void send(String message) {
+        this.session.getAsyncRemote().sendText(message);
+    }
+
+    /**
+     * <发送message>
+     *
+     * @param message message @throws
+     */
+    public void sendMessage(String message) {
+        try {
+            session.getBasicRemote().sendText(message);
+        } catch (IOException ex) {
+            logger.error("error, cause: ", ex);
+        }
+    }
+
+    /**
+     * <关闭连接>
+     *
+     * @throws
+     */
+    public void close() throws IOException {
+        if (this.session.isOpen()) {
+            this.session.close();
+        }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/config/WebSocketConfig.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/config/WebSocketConfig.java
new file mode 100644
index 0000000..b0912f2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/config/WebSocketConfig.java
@@ -0,0 +1,136 @@
+package com.panzhihua.service_property.config;
+
+import java.net.URI;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
+
+import javax.websocket.ContainerProvider;
+import javax.websocket.WebSocketContainer;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.annotation.Order;
+
+/**
+ * 应用模块名称
+ * <p>
+ * 一键报警websocket 配置 代码描述
+ * <p>
+ * Copyright: Copyright (C) 2021 XXX, Inc. All rights reserved.
+ * <p>
+ * Company: 成都呐喊信息技术有限公司
+ * <p>
+ *
+ * @author manailin
+ * @since 2021/9/27 16:31
+ */
+@Configuration
+@Order(1)
+public class WebSocketConfig implements ApplicationRunner {
+
+    private static final Logger logger = LoggerFactory.getLogger(WebSocketConfig.class);
+
+    private static Boolean isOk;
+
+    private static WebSocketContainer container = ContainerProvider.getWebSocketContainer();
+
+    private WebSocketClient client;
+
+    /**
+     * 定义定时任务线程
+     */
+    private ScheduledExecutorService scheduledExecutorService = Executors.newScheduledThreadPool(1);
+
+    @Value("${websocket.uri}")
+    private String uri;
+
+    @Value("${websocket.ip}")
+    private String ip;
+
+    /**
+     * <run>
+     *
+     * @param args
+     *            args @throws
+     */
+    @Override
+    public void run(ApplicationArguments args) throws Exception {
+        logger.info("[WebSocketConfig] web socket init start.");
+
+        // websocket客户端初始化
+        wsClientInit();
+    }
+
+    /**
+     * <websocket客户端初始化>
+     *
+     * @throws
+     */
+    public void wsClientInit() {
+        logger.info("[WebSocketConfig] start to wsClientInit");
+        try {
+            client = new WebSocketClient();
+            WebSocketClient.beforeInit();
+            container.connectToServer(client, new URI(uri));
+
+            isOk = true;
+        } catch (Exception e) {
+            isOk = false;
+            logger.error("error, cause: ", e);
+        }
+
+        /**
+         * 参数:1、任务体 2、首次执行的延时时间 3、任务执行间隔 4、间隔时间单位
+         **/
+        scheduledExecutorService.scheduleAtFixedRate(new Runnable() {
+            @Override
+            public void run() {
+                // 心跳检测 断线重连
+                heartbeatCheck();
+            }
+        }, 1, 30, TimeUnit.SECONDS);
+
+        logger.info("[WebSocketConfig] end to wsClientInit");
+    }
+
+    /**
+     * <心跳检测 断线重连>
+     *
+     * 
+     */
+    private void heartbeatCheck() {
+        logger.info("[WebSocketConfig] start to heartbeatCheck");
+        if (isOk != null && isOk) {
+            try {
+                client.send("ping " + ip);
+            } catch (Exception e) {
+                isOk = false;
+            }
+        } else {
+            // 系统连接失败进行重试
+            logger.warn("系统连接失败,正在重连...");
+            try {
+                client.send("ping " + ip);
+                logger.warn("系统重连成功!");
+                isOk = true;
+            } catch (Exception e) {
+                try {
+                    client = new WebSocketClient();
+                    container.connectToServer(client, new URI(uri));
+
+                    isOk = true;
+                } catch (Exception e1) {
+                    isOk = false;
+                }
+                if (isOk != null && isOk) {
+                    logger.warn("系统重连成功!");
+                }
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/dao/ComPropertyAlarmDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/dao/ComPropertyAlarmDao.java
new file mode 100644
index 0000000..f0e3165
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/dao/ComPropertyAlarmDao.java
@@ -0,0 +1,22 @@
+package com.panzhihua.service_property.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.property.CommonPage;
+import com.panzhihua.common.model.vos.property.ComPropertyAlarmVO;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_property.entity.ComPropertyAlarm;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * (ComPropertyAlarm)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-09-07 13:29:49
+ */
+@Mapper
+public interface ComPropertyAlarmDao extends BaseMapper<ComPropertyAlarm> {
+    IPage<ComPropertyAlarmVO> selectList(Page page, @Param("commonPage") CommonPage commonPage);
+    ComPropertyAlarmVO selectById(Integer id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/dao/ComPropertyAlarmSettingDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/dao/ComPropertyAlarmSettingDao.java
new file mode 100644
index 0000000..1ff6ade
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/dao/ComPropertyAlarmSettingDao.java
@@ -0,0 +1,16 @@
+package com.panzhihua.service_property.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_property.entity.ComPropertyAlarmSetting;
+
+/**
+ * (ComPropertyAlarmSetting)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-09-09 09:46:50
+ */
+@Mapper
+public interface ComPropertyAlarmSettingDao extends BaseMapper<ComPropertyAlarmSetting> {
+    ComPropertyAlarmSetting getByCommunityId(Long communityId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/dao/ComPropertyEquipmentDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/dao/ComPropertyEquipmentDao.java
new file mode 100644
index 0000000..0615b96
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/dao/ComPropertyEquipmentDao.java
@@ -0,0 +1,20 @@
+package com.panzhihua.service_property.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.property.CommonPage;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_property.entity.ComPropertyEquipment;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * (ComPropertyEquipment)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-09-07 13:29:32
+ */
+@Mapper
+public interface ComPropertyEquipmentDao extends BaseMapper<ComPropertyEquipment> {
+    IPage<ComPropertyEquipment> pageList(Page page, @Param("commonPage") CommonPage commonPage);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/dao/ComPropertyHelpDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/dao/ComPropertyHelpDao.java
new file mode 100644
index 0000000..ce76371
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/dao/ComPropertyHelpDao.java
@@ -0,0 +1,26 @@
+package com.panzhihua.service_property.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.property.CommonPage;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_property.entity.ComPropertyHelp;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * (ComPropertyHelp)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-09-18 16:43:11
+ */
+@Mapper
+public interface ComPropertyHelpDao extends BaseMapper<ComPropertyHelp> {
+    /**
+     * 分页查询
+     * @param page
+     * @param commonPage
+     * @return
+     */
+    IPage<ComPropertyHelp> pageList(Page page, @Param("commonPage")CommonPage commonPage);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/dao/ComPropertyRepairDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/dao/ComPropertyRepairDao.java
new file mode 100644
index 0000000..6884cb6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/dao/ComPropertyRepairDao.java
@@ -0,0 +1,26 @@
+package com.panzhihua.service_property.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.property.CommonPage;
+import com.panzhihua.common.model.vos.property.ComPropertyRepairVO;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_property.entity.ComPropertyRepair;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.List;
+
+/**
+ * (ComPropertyRepair)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-09-02 10:12:09
+ */
+@Mapper
+public interface ComPropertyRepairDao extends BaseMapper<ComPropertyRepair> {
+    IPage<ComPropertyRepairVO> pageList(Page page, @Param("commonPage") CommonPage commonPage);
+    IPage<ComPropertyRepairVO> pageList2(Page page, @Param("commonPage") CommonPage commonPage);
+    ComPropertyRepairVO selectDetail(Long id);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/dto/DeviceDto.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/dto/DeviceDto.java
new file mode 100644
index 0000000..d796874
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/dto/DeviceDto.java
@@ -0,0 +1,35 @@
+package com.panzhihua.service_property.dto;
+
+import lombok.Data;
+
+/**
+ * 应用模块名称
+ * <p>
+ * 一键报警设备消息 代码描述
+ * <p>
+ * Copyright: Copyright (C) 2021 XXX, Inc. All rights reserved.
+ * <p>
+ * Company: 成都呐喊信息技术有限公司
+ * <p>
+ *
+ * @author manailin
+ * @since 2021/9/27 16:31
+ */
+@Data
+public class DeviceDto {
+
+    /** 呼叫状态 */
+    private String callstatus;
+    /** 指令 */
+    private String cmd;
+    /** 状态 */
+    private String status;
+    /** 呼叫人员ID */
+    private String ori_number;
+    /** 呼叫人员ID */
+    private String userid;
+    /** 呼叫iD */
+    private String callid;
+    /** 呼叫时间 */
+    private String _ts;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/entity/ComPropertyAlarm.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/entity/ComPropertyAlarm.java
new file mode 100644
index 0000000..16d218f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/entity/ComPropertyAlarm.java
@@ -0,0 +1,122 @@
+package com.panzhihua.service_property.entity;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * (ComPropertyAlarm)表实体类
+ *
+ * @author makejava
+ * @since 2021-09-07 13:29:49
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("")
+public class ComPropertyAlarm implements Serializable {
+
+    private static final long serialVersionUID = -79284364749441136L;
+
+    @TableId(type = IdType.ASSIGN_ID)
+    private Integer id;
+
+    /**
+     * 设备号
+     */
+    @ApiModelProperty(value = "设备号")
+    private String serialNo;
+
+    /**
+     * 报警类型 1一键报警 2长时间无应答报警
+     */
+    @ApiModelProperty(value = "报警类型 1一键报警 2长时间无应答报警")
+    private Integer type;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    /**
+     * 手机号
+     */
+    @ApiModelProperty("手机号")
+    private String phone;
+
+    /**
+     *居民姓名
+     */
+    @ApiModelProperty("居民姓名")
+    private String name;
+
+    /**
+     * 报警处理状态 0待处理 1已办结
+     */
+    @ApiModelProperty("处理状态")
+    private Integer status;
+
+    /**
+     * 处理人id
+     */
+    @ApiModelProperty("处理人id")
+    private Long solveId;
+
+    /**
+     * 处理时间
+     */
+    @ApiModelProperty(value = "处理时间")
+    private Date solveTime;
+
+    /**
+     * 处理内容
+     */
+    @ApiModelProperty(value = "处理内容")
+    private String solveContent;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    /**
+     * 处理图片
+     */
+    @ApiModelProperty("处理图片")
+    private String solveUrl;
+
+    /**
+     *接收人
+     */
+    private  String receiveNo;
+    /**
+     * 报警类型 1一键报警 2长时间无应答报警
+     */
+    public interface  type{
+        int one=1;
+        int time=2;
+    }
+    /**
+     * 报警处理状态 0待处理 1已办结
+     */
+    public interface  status{
+        int dcl=0;
+        int ybj=1;
+    }
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/entity/ComPropertyAlarmSetting.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/entity/ComPropertyAlarmSetting.java
new file mode 100644
index 0000000..9abf2c7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/entity/ComPropertyAlarmSetting.java
@@ -0,0 +1,54 @@
+package com.panzhihua.service_property.entity;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * (ComPropertyAlarmSetting)表实体类
+ *
+ * @author makejava
+ * @since 2021-09-09 09:46:49
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("")
+public class ComPropertyAlarmSetting implements Serializable {
+
+    private static final long serialVersionUID = 793830057265779177L;
+
+    @TableId(type = IdType.ASSIGN_ID)
+    private Integer id;
+
+    /**
+     * 触发间隔
+     */
+    @ApiModelProperty(value = "触发间隔")
+    private Integer triggerTime;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/entity/ComPropertyEquipment.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/entity/ComPropertyEquipment.java
new file mode 100644
index 0000000..31be09f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/entity/ComPropertyEquipment.java
@@ -0,0 +1,104 @@
+package com.panzhihua.service_property.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * (ComPropertyEquipment)表实体类
+ *
+ * @author makejava
+ * @since 2021-09-07 13:29:31
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("")
+public class ComPropertyEquipment implements Serializable {
+
+    private static final long serialVersionUID = -71395005704296906L;
+
+    @TableId(type = IdType.ASSIGN_ID)
+    private Integer id;
+
+    /**
+     * 设备编号
+     */
+    @ApiModelProperty(value = "设备编号")
+    private String serialNo;
+
+    /**
+     * 报警位置
+     */
+    @ApiModelProperty(value = "报警位置")
+    private String position;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    /**
+     * 经度
+     */
+    @ApiModelProperty(value = "经度")
+    private String longitude;
+
+    /**
+     * 纬度
+     */
+    @ApiModelProperty(value = "纬度")
+    private String latitude;
+
+    /**
+     * 设备名称
+     */
+    @ApiModelProperty(value = "设备名称")
+    private String name;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    /**
+     * 居民名称
+     */
+    @ApiModelProperty(value = "居民名称")
+    private String username;
+
+    /**
+     * 设备类型 设备类型 1红外报警 2一键报警
+     */
+    @ApiModelProperty("设备类型 设备类型 1红外报警 2一键报警")
+    private Integer type;
+
+    /**
+     * 手机号码
+     */
+    @ApiModelProperty("手机号")
+    private String phone;
+
+    /**
+     * 街路巷id
+     */
+    @ApiModelProperty("街路巷id")
+    private Long villageId;
+
+    /**
+     * 回显路径
+     */
+    private String path;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/entity/ComPropertyHelp.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/entity/ComPropertyHelp.java
new file mode 100644
index 0000000..dd8376b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/entity/ComPropertyHelp.java
@@ -0,0 +1,73 @@
+package com.panzhihua.service_property.entity;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * (ComPropertyHelp)表实体类
+ *
+ * @author makejava
+ * @since 2021-09-18 16:43:11
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("")
+public class ComPropertyHelp implements Serializable {
+
+    private static final long serialVersionUID = 804376246485599231L;
+
+    /**
+     * 主键
+     */
+    @ApiModelProperty(value = "主键")
+    @TableId(type = IdType.ASSIGN_ID)
+    private Integer id;
+
+    /**
+     * 姓名
+     */
+    @ApiModelProperty(value = "姓名")
+    private String name;
+
+    /**
+     * 照片
+     */
+    @ApiModelProperty(value = "照片")
+    private String imgUrl;
+
+    /**
+     * 手机号
+     */
+    @ApiModelProperty(value = "手机号")
+    private String phone;
+
+    /**
+     * 状态 0 禁用 1启用
+     */
+    @ApiModelProperty(value = "状态 0 禁用 1启用")
+    private Integer status;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/entity/ComPropertyRepair.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/entity/ComPropertyRepair.java
new file mode 100644
index 0000000..736dfe9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/entity/ComPropertyRepair.java
@@ -0,0 +1,141 @@
+package com.panzhihua.service_property.entity;
+
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * (ComPropertyRepair)表实体类
+ *
+ * @author makejava
+ * @since 2021-09-02 10:12:07
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("")
+public class ComPropertyRepair implements Serializable {
+
+    private static final long serialVersionUID = 360932817327433044L;
+
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 报修内容
+     */
+    @ApiModelProperty(value = "报修内容")
+    private String repairContent;
+
+    /**
+     * 报修人
+     */
+    @ApiModelProperty(value = "报修人")
+    private String repairName;
+
+    /**
+     * 报修手机
+     */
+    @ApiModelProperty(value = "报修手机")
+    private String repairPhone;
+
+    /**
+     * 报修位置
+     */
+    @ApiModelProperty(value = "报修位置")
+    private String repairPosition;
+
+    /**
+     * 状态 0 待处理 1待评价 2已结束
+     */
+    @ApiModelProperty(value = "状态 0 待处理 1待评价 2已结束")
+    private Integer repairStatus;
+
+    /**
+     * 报修时间
+     */
+    @ApiModelProperty(value = "报修时间")
+    private Date createTime;
+
+    /**
+     * 报修图片url
+     */
+    @ApiModelProperty(value = "报修图片url")
+    private String repairUrl;
+
+    /**
+     * 评价内容
+     */
+    @ApiModelProperty(value = "评价内容")
+    private String replyContent;
+
+    /**
+     * 评价图片url
+     */
+    @ApiModelProperty(value = "评价图片url")
+    private String replyUrl;
+
+    /**
+     * 评价时间
+     */
+    @ApiModelProperty(value = "评价时间")
+    private Date replyTime;
+
+    /**
+     * 报修人id
+     */
+    @ApiModelProperty(value = "报修人id")
+    private Long createBy;
+
+    /**
+     * 反馈人id
+     */
+    @ApiModelProperty(value = "反馈人id")
+    private Long feedbackBy;
+
+    /**
+     * 反馈内容
+     */
+    @ApiModelProperty(value = "反馈内容")
+    private String feedbackContent;
+
+    /**
+     * 反馈图片
+     */
+    @ApiModelProperty(value = "反馈图片")
+    private String feedbackUrl;
+
+    /**
+     * 反馈时间
+     */
+    @ApiModelProperty(value = "反馈时间")
+    private Date feedbackTime;
+
+    /**
+     * 评价星级
+     */
+    @ApiModelProperty(value = "评价星级")
+    private Integer replyScore;
+
+    /**
+     * 物业id
+     */
+    @ApiModelProperty(value = "物业id")
+    private Long propertyId;
+
+    @ApiModelProperty(value = "小区名称")
+    private String areaName;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/message/AlarmMessage.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/message/AlarmMessage.java
new file mode 100644
index 0000000..8af1911
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/message/AlarmMessage.java
@@ -0,0 +1,43 @@
+package com.panzhihua.service_property.message;
+
+import cn.hutool.core.date.DateUtil;
+import com.panzhihua.service_property.dao.ComPropertyAlarmDao;
+import com.panzhihua.service_property.entity.ComPropertyAlarm;
+import com.panzhihua.service_property.entity.ComPropertyEquipment;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+
+/**
+ * @author zzj
+ */
+@Component
+@Slf4j
+public class AlarmMessage {
+
+    private final static String DELAY_QUEUE="delayed.queue";
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+    @Resource
+    private ComPropertyAlarmDao comPropertyAlarmDao;
+
+    @RabbitListener(queues=DELAY_QUEUE)
+    public void delayAlarm(ComPropertyEquipment comPropertyEquipment){
+        log.info("消息队列开始消费");
+        if(!stringRedisTemplate.hasKey(comPropertyEquipment.getSerialNo())){
+            ComPropertyAlarm comPropertyAlarm=new ComPropertyAlarm();
+            comPropertyAlarm.setCreateTime(DateUtil.date());
+            comPropertyAlarm.setPhone(comPropertyEquipment.getPhone());
+            comPropertyAlarm.setSerialNo(comPropertyEquipment.getSerialNo());
+            comPropertyAlarm.setType(ComPropertyAlarm.type.time);
+            comPropertyAlarm.setCommunityId(comPropertyEquipment.getCommunityId());
+            comPropertyAlarm.setName(comPropertyEquipment.getUsername());
+            comPropertyAlarm.setStatus(ComPropertyAlarm.status.dcl);
+            comPropertyAlarmDao.insert(comPropertyAlarm);
+        }
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/netty/MyDecoder.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/netty/MyDecoder.java
new file mode 100644
index 0000000..1781e2d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/netty/MyDecoder.java
@@ -0,0 +1,25 @@
+package com.panzhihua.service_property.netty;
+
+import io.netty.buffer.ByteBuf;
+import io.netty.channel.ChannelHandlerContext;
+import io.netty.handler.codec.ByteToMessageDecoder;
+
+import java.util.List;
+
+public class MyDecoder extends ByteToMessageDecoder {
+
+    @Override
+    protected void decode(ChannelHandlerContext ctx, ByteBuf msg, List<Object> out) throws Exception {
+        String HEXES = "0123456789ABCDEF";
+        byte[] req = new byte[msg.readableBytes()];
+        msg.readBytes(req);
+        final StringBuilder hex = new StringBuilder(2 * req.length);
+
+        for (int i = 0; i < req.length; i++) {
+            byte b = req[i];
+            hex.append(HEXES.charAt((b & 0xF0) >> 4))
+                    .append(HEXES.charAt((b & 0x0F)));
+        }
+        out.add(hex.toString());
+    }
+}
\ No newline at end of file
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
new file mode 100644
index 0000000..21ae8f0
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/netty/NettyServer.java
@@ -0,0 +1,45 @@
+package com.panzhihua.service_property.netty;
+
+import io.netty.bootstrap.ServerBootstrap;
+import io.netty.channel.ChannelFuture;
+import io.netty.channel.ChannelOption;
+import io.netty.channel.EventLoopGroup;
+import io.netty.channel.nio.NioEventLoopGroup;
+import io.netty.channel.socket.nio.NioServerSocketChannel;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import java.net.InetSocketAddress;
+
+@Slf4j
+public class NettyServer {
+    private static final Integer port=20012;
+    public void start() {
+        //new 一个主线程组
+        EventLoopGroup bossGroup = new NioEventLoopGroup(1);
+        //new 一个工作线程组
+        EventLoopGroup workGroup = new NioEventLoopGroup(200);
+        ServerBootstrap bootstrap = new ServerBootstrap()
+                .group(bossGroup, workGroup)
+                .channel(NioServerSocketChannel.class)
+                .childHandler(new ServerChannelInitializer())
+                //设置队列大小
+                .option(ChannelOption.SO_BACKLOG, 1024)
+                // 两小时内没有数据的通信时,TCP会自动发送一个活动探测数据报文
+                .childOption(ChannelOption.SO_KEEPALIVE, true);
+        //绑定端口,开始接收进来的连接
+        try {
+            ChannelFuture future = bootstrap.bind(port).sync();
+            log.info("服务器启动开始监听端口: {}", port);
+            future.channel().closeFuture().sync();
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        } finally {
+            //关闭主线程组
+            bossGroup.shutdownGracefully();
+            //关闭工作线程组
+            workGroup.shutdownGracefully();
+        }
+    }
+}
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
new file mode 100644
index 0000000..d9f7b8f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/netty/NettyServerHandler.java
@@ -0,0 +1,134 @@
+package com.panzhihua.service_property.netty;
+
+import cn.hutool.core.date.DateUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_property.dao.ComPropertyAlarmDao;
+import com.panzhihua.service_property.dao.ComPropertyAlarmSettingDao;
+import com.panzhihua.service_property.dao.ComPropertyEquipmentDao;
+import com.panzhihua.service_property.entity.ComPropertyAlarm;
+import com.panzhihua.service_property.entity.ComPropertyAlarmSetting;
+import com.panzhihua.service_property.entity.ComPropertyEquipment;
+import com.panzhihua.service_property.util.MyTools;
+import io.netty.channel.ChannelHandlerContext;
+import io.netty.channel.ChannelInboundHandlerAdapter;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.rabbit.core.RabbitTemplate;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.Resource;
+import java.time.Duration;
+import java.util.Date;
+import java.util.Objects;
+
+@Slf4j
+@Component
+public class NettyServerHandler extends ChannelInboundHandlerAdapter {
+    @Resource
+    private ComPropertyAlarmDao comPropertyAlarmDao;
+    @Resource
+    private ComPropertyAlarmSettingDao comPropertyAlarmSettingDao;
+    @Resource
+    private ComPropertyEquipmentDao comPropertyEquipmentDao;
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+    @Resource
+    private RabbitTemplate rabbitTemplate;
+
+    private static NettyServerHandler nettyServerHandler;
+
+    /**
+     * 客户端连接会触发
+     */
+    @Override
+    public void channelActive(ChannelHandlerContext ctx) throws Exception {
+        log.info("Channel active......");
+    }
+
+    /**
+     * 客户端发消息会触发
+     */
+    @Override
+    public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
+        MyTools myTools = new MyTools();
+        log.info("服务器收到消息: {}", msg.toString());
+        if (msg.toString().startsWith("4A1802")) {
+            myTools.writeToClient("404A021823", ctx, "状态包");
+        }
+        if (msg.toString().startsWith("4A0C01")) {
+            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("4A18031")) {
+                //正式处理
+                 delayAlarm(serial);
+                //展会处理
+//                ComPropertyAlarm comPropertyAlarm = new ComPropertyAlarm();
+//                comPropertyAlarm.setCreateTime(DateUtil.date());
+//                comPropertyAlarm.setSerialNo(serial);
+//                comPropertyAlarm.setType(ComPropertyAlarm.type.one);
+//                nettyServerHandler.comPropertyAlarmDao.insert(comPropertyAlarm);
+            }
+
+        }
+        ctx.flush();
+    }
+
+    /**
+     * 发生异常触发
+     */
+    @Override
+    public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
+        cause.printStackTrace();
+        ctx.close();
+    }
+
+    @PostConstruct
+    public void init() {
+        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);
+                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));
+                duration = getDuration(comPropertyEquipment);
+                nettyServerHandler.stringRedisTemplate.boundValueOps(serial).set(JSONObject.toJSONString(comPropertyEquipment));
+            }
+            int finalDuration = duration;
+            nettyServerHandler.rabbitTemplate.convertAndSend("huacheng.delayed.exchange", "huacheng.delayed.key", comPropertyEquipment, message -> {
+                message.getMessageProperties().setHeader("x-delay", finalDuration * 1000 * 3601);
+                return message;
+            });
+        }
+    }
+
+    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();
+            nettyServerHandler.stringRedisTemplate.boundValueOps(comPropertyEquipment.getCommunityId().toString()).set(comPropertyAlarmSetting.getTriggerTime().toString());
+        }
+        return duration;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/netty/ServerChannelInitializer.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/netty/ServerChannelInitializer.java
new file mode 100644
index 0000000..7409a57
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/netty/ServerChannelInitializer.java
@@ -0,0 +1,18 @@
+package com.panzhihua.service_property.netty;
+
+import io.netty.channel.ChannelInitializer;
+import io.netty.channel.socket.SocketChannel;
+import io.netty.handler.codec.string.StringDecoder;
+import io.netty.handler.codec.string.StringEncoder;
+import io.netty.util.CharsetUtil;
+
+public class ServerChannelInitializer extends ChannelInitializer<SocketChannel> {
+    @Override
+    protected void initChannel(SocketChannel socketChannel) throws Exception {
+        //添加编解码
+        //socketChannel.pipeline().addLast("decoder", new StringDecoder(CharsetUtil.UTF_8));
+        socketChannel.pipeline().addLast(new MyDecoder());
+        socketChannel.pipeline().addLast("encoder", new StringEncoder(CharsetUtil.UTF_8));
+        socketChannel.pipeline().addLast(new NettyServerHandler());
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/ComPropertyAlarmService.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/ComPropertyAlarmService.java
new file mode 100644
index 0000000..94d3a1e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/ComPropertyAlarmService.java
@@ -0,0 +1,31 @@
+package com.panzhihua.service_property.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_property.entity.ComPropertyAlarm;
+
+/**
+ * (ComPropertyAlarm)表服务接口
+ *
+ * @author makejava
+ * @since 2021-09-07 13:29:49
+ */
+public interface ComPropertyAlarmService extends IService<ComPropertyAlarm> {
+    /**
+     * 多条件查询报警列表
+     * @param commonPage
+     * @return
+     */
+    R pageList(CommonPage commonPage);
+
+    /**
+     * 查询报警详情
+     */
+    R selectDetail(Integer id);
+
+    /**
+     * 新增报警记录
+     */
+    R insert(ComPropertyAlarm comPropertyAlarm);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/ComPropertyAlarmSettingService.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/ComPropertyAlarmSettingService.java
new file mode 100644
index 0000000..4bbd80b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/ComPropertyAlarmSettingService.java
@@ -0,0 +1,35 @@
+package com.panzhihua.service_property.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_property.entity.ComPropertyAlarmSetting;
+
+/**
+ * (ComPropertyAlarmSetting)表服务接口
+ *
+ * @author makejava
+ * @since 2021-09-09 09:46:50
+ */
+public interface ComPropertyAlarmSettingService extends IService<ComPropertyAlarmSetting> {
+    /**
+     * 分页查询
+     * @param commonPage
+     * @return
+     */
+    R pageList(CommonPage commonPage);
+
+    /**
+     * 根据社区id查询
+     * @param communityId
+     * @return
+     */
+    R getByCommunityId(Long communityId);
+
+    /**
+     * 新增方法
+     * @param comPropertyAlarmSetting
+     * @return
+     */
+    R insert(ComPropertyAlarmSetting comPropertyAlarmSetting);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/ComPropertyEquipmentService.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/ComPropertyEquipmentService.java
new file mode 100644
index 0000000..2a7a22d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/ComPropertyEquipmentService.java
@@ -0,0 +1,17 @@
+package com.panzhihua.service_property.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_property.entity.ComPropertyEquipment;
+
+/**
+ * (ComPropertyEquipment)表服务接口
+ *
+ * @author makejava
+ * @since 2021-09-07 13:29:32
+ */
+public interface ComPropertyEquipmentService extends IService<ComPropertyEquipment> {
+    R pageList(CommonPage commonPage);
+    R insert(ComPropertyEquipment comPropertyEquipment);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/ComPropertyHelpService.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/ComPropertyHelpService.java
new file mode 100644
index 0000000..354262a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/ComPropertyHelpService.java
@@ -0,0 +1,21 @@
+package com.panzhihua.service_property.service;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_property.entity.ComPropertyHelp;
+
+/**
+ * (ComPropertyHelp)表服务接口
+ *
+ * @author makejava
+ * @since 2021-09-18 16:43:12
+ */
+public interface ComPropertyHelpService extends IService<ComPropertyHelp> {
+    /**
+     * 分页查询
+     * @param commonPage
+     * @return
+     */
+    R pageList(CommonPage commonPage);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/ComPropertyRepairService.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/ComPropertyRepairService.java
new file mode 100644
index 0000000..25b5530
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/ComPropertyRepairService.java
@@ -0,0 +1,44 @@
+package com.panzhihua.service_property.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_property.entity.ComPropertyRepair;
+
+/**
+ * (ComPropertyRepair)表服务接口
+ *
+ * @author makejava
+ * @since 2021-09-02 10:12:10
+ */
+public interface ComPropertyRepairService extends IService<ComPropertyRepair> {
+    /**
+     * 多条件查询维修列表
+     * @param commonPage
+     * @return
+     */
+    R pageList(CommonPage commonPage);
+    /**
+     * 多条件查询维修列表
+     * @param commonPage
+     * @return
+     */
+    R pageListDesensitize(CommonPage commonPage);
+
+    /**
+     * 详情查询
+     */
+    R selectDetail(Long id);
+
+
+    /**
+     * 详情查询脱敏
+     */
+    R selectDetailDesensitize(Long id);
+
+    /**
+     * 查询物业报事报修列表
+     * */
+    R pageListProperty(CommonPage commonPage);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/impl/ComPropertyAlarmServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/impl/ComPropertyAlarmServiceImpl.java
new file mode 100644
index 0000000..ddcb000
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/impl/ComPropertyAlarmServiceImpl.java
@@ -0,0 +1,91 @@
+package com.panzhihua.service_property.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+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.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.property.ComPropertyAlarmVO;
+import com.panzhihua.service_property.dao.ComPropertyEquipmentDao;
+import com.panzhihua.service_property.entity.ComPropertyAlarm;
+import com.panzhihua.service_property.dao.ComPropertyAlarmDao;
+import com.panzhihua.service_property.entity.ComPropertyEquipment;
+import com.panzhihua.service_property.service.ComPropertyAlarmService;
+import com.panzhihua.service_property.util.JPushUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * (ComPropertyAlarm)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-09-07 13:29:50
+ */
+@Slf4j
+@Service
+public class ComPropertyAlarmServiceImpl extends ServiceImpl<ComPropertyAlarmDao, ComPropertyAlarm> implements ComPropertyAlarmService {
+    @Resource
+    private ComPropertyAlarmDao comPropertyAlarmDao;
+    @Resource
+    private ComPropertyEquipmentDao comPropertyEquipmentDao;
+    @Override
+    public R pageList(CommonPage commonPage) {
+        IPage<ComPropertyAlarmVO> page=comPropertyAlarmDao.selectList(new Page(commonPage.getPage(), commonPage.getSize()),commonPage);
+        return R.ok(page);
+    }
+
+    @Override
+    public R selectDetail(Integer id) {
+        return R.ok(comPropertyAlarmDao.selectById(id));
+    }
+
+    @Override
+    public R insert(ComPropertyAlarm comPropertyAlarm) {
+        if(comPropertyAlarm!=null){
+            ComPropertyEquipment comPropertyEquipment=comPropertyEquipmentDao.selectOne(new QueryWrapper<ComPropertyEquipment>().lambda().eq(ComPropertyEquipment::getSerialNo,comPropertyAlarm.getSerialNo()));
+            ComPropertyAlarmVO propertyAlarmVO=new ComPropertyAlarmVO();
+            if(comPropertyEquipment!=null) {
+                if (comPropertyAlarm.getType().equals(ComPropertyAlarm.type.one)) {
+                    comPropertyAlarm.setStatus(ComPropertyAlarm.status.dcl);
+                    comPropertyAlarm.setCommunityId(comPropertyEquipment.getCommunityId());
+                    comPropertyAlarm.setPhone(comPropertyEquipment.getPhone());
+                    comPropertyAlarm.setName(comPropertyEquipment.getUsername());
+                    if (comPropertyAlarmDao.insert(comPropertyAlarm) > 0) {
+                        BeanUtils.copyProperties(comPropertyAlarm,propertyAlarmVO);
+                        propertyAlarmVO.setLatitude(comPropertyEquipment.getLatitude());
+                        propertyAlarmVO.setLongitude(comPropertyEquipment.getLongitude());
+                        Map<String, String> map = new HashMap<>();
+                        map.put("title", "一键报警通知");
+                        map.put("msg", comPropertyEquipment.getPosition() + "," + comPropertyEquipment.getUsername() + "发起报警");
+                        map.put("communityId", comPropertyEquipment.getCommunityId().toString());
+                        map.put("alarm",JSONObject.toJSONString(propertyAlarmVO));
+                        JPushUtil.jpushAndroid(map);
+                        return R.ok();
+                    }
+
+                } else {
+                    if (comPropertyAlarmDao.insert(comPropertyAlarm) > 0) {
+                        BeanUtils.copyProperties(comPropertyAlarm,propertyAlarmVO);
+                        propertyAlarmVO.setLatitude(comPropertyEquipment.getLatitude());
+                        propertyAlarmVO.setLongitude(comPropertyEquipment.getLongitude());
+                        Map<String, String> map = new HashMap<>();
+                        map.put("title", "长时间未移动报警通知");
+                        map.put("msg", comPropertyEquipment.getPosition() + "," + comPropertyEquipment.getUsername() + "长时间未移动报警");
+                        map.put("communityId", comPropertyEquipment.getCommunityId().toString());
+                        map.put("alarm",JSONObject.toJSONString(propertyAlarmVO));
+                        JPushUtil.jpushAndroid(map);
+                        return R.ok();
+                    }
+                }
+            }
+        }
+        return R.fail();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/impl/ComPropertyAlarmSettingServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/impl/ComPropertyAlarmSettingServiceImpl.java
new file mode 100644
index 0000000..3841bc4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/impl/ComPropertyAlarmSettingServiceImpl.java
@@ -0,0 +1,50 @@
+package com.panzhihua.service_property.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_property.entity.ComPropertyAlarmSetting;
+import com.panzhihua.service_property.dao.ComPropertyAlarmSettingDao;
+import com.panzhihua.service_property.service.ComPropertyAlarmSettingService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+/**
+ * (ComPropertyAlarmSetting)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-09-09 09:46:50
+ */
+@Slf4j
+@Service
+public class ComPropertyAlarmSettingServiceImpl extends ServiceImpl<ComPropertyAlarmSettingDao, ComPropertyAlarmSetting> implements ComPropertyAlarmSettingService {
+    @Resource
+    private ComPropertyAlarmSettingDao comPropertyAlarmSettingDao;
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+    @Override
+    public R pageList(CommonPage commonPage) {
+        return null;
+    }
+
+    @Override
+    public R getByCommunityId(Long communityId) {
+        return R.ok(comPropertyAlarmSettingDao.getByCommunityId(communityId));
+    }
+
+    @Override
+    public R insert(ComPropertyAlarmSetting comPropertyAlarmSetting) {
+        boolean result=this.saveOrUpdate(comPropertyAlarmSetting);
+        if(result){
+            if(stringRedisTemplate.hasKey(comPropertyAlarmSetting.getCommunityId().toString())){
+                stringRedisTemplate.boundValueOps(comPropertyAlarmSetting.getCommunityId().toString()).set(comPropertyAlarmSetting.getTriggerTime().toString());
+            }
+            return R.ok();
+        }
+
+        return R.fail();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/impl/ComPropertyEquipmentServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/impl/ComPropertyEquipmentServiceImpl.java
new file mode 100644
index 0000000..c2f718f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/impl/ComPropertyEquipmentServiceImpl.java
@@ -0,0 +1,46 @@
+package com.panzhihua.service_property.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.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_property.entity.ComPropertyEquipment;
+import com.panzhihua.service_property.dao.ComPropertyEquipmentDao;
+import com.panzhihua.service_property.service.ComPropertyEquipmentService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * (ComPropertyEquipment)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-09-07 13:29:32
+ */
+@Slf4j
+@Service
+public class ComPropertyEquipmentServiceImpl extends ServiceImpl<ComPropertyEquipmentDao, ComPropertyEquipment> implements ComPropertyEquipmentService {
+    @Resource
+    private ComPropertyEquipmentDao comPropertyEquipmentDao;
+    @Override
+    public R pageList(CommonPage commonPage) {
+        IPage<ComPropertyEquipment> page=comPropertyEquipmentDao.pageList(new Page(commonPage.getPage(),commonPage.getSize()),commonPage);
+        return R.ok(page);
+    }
+
+    @Override
+    public R insert(ComPropertyEquipment comPropertyEquipment) {
+        if(comPropertyEquipment!=null){
+            List<ComPropertyEquipment> comPropertyEquipmentList=comPropertyEquipmentDao.selectList(new QueryWrapper<ComPropertyEquipment>().eq("serial_no",comPropertyEquipment.getSerialNo()));
+            if(comPropertyEquipmentList.isEmpty()){
+                return R.ok(this.save(comPropertyEquipment));
+            }
+            return R.fail("设备编号不能重复");
+        }
+        return R.fail();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/impl/ComPropertyHelpServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/impl/ComPropertyHelpServiceImpl.java
new file mode 100644
index 0000000..8490c5b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/impl/ComPropertyHelpServiceImpl.java
@@ -0,0 +1,30 @@
+package com.panzhihua.service_property.service.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_property.entity.ComPropertyHelp;
+import com.panzhihua.service_property.dao.ComPropertyHelpDao;
+import com.panzhihua.service_property.service.ComPropertyHelpService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+/**
+ * (ComPropertyHelp)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-09-18 16:43:12
+ */
+@Slf4j
+@Service
+public class ComPropertyHelpServiceImpl extends ServiceImpl<ComPropertyHelpDao, ComPropertyHelp> implements ComPropertyHelpService {
+    @Resource
+    private ComPropertyHelpDao comPropertyHelpDao;
+    @Override
+    public R pageList(CommonPage commonPage) {
+        return R.ok(comPropertyHelpDao.pageList(new Page(commonPage.getPage(),commonPage.getSize()),commonPage));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/impl/ComPropertyRepairServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/impl/ComPropertyRepairServiceImpl.java
new file mode 100644
index 0000000..a86b6e3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/service/impl/ComPropertyRepairServiceImpl.java
@@ -0,0 +1,88 @@
+package com.panzhihua.service_property.service.impl;
+
+import cn.hutool.core.util.DesensitizedUtil;
+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.Constants;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.property.ComPropertyRepairVO;
+import com.panzhihua.common.utlis.RSAUtils;
+import com.panzhihua.service_property.entity.ComPropertyRepair;
+import com.panzhihua.service_property.dao.ComPropertyRepairDao;
+import com.panzhihua.service_property.service.ComPropertyRepairService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+import static java.util.Objects.nonNull;
+
+/**
+ * (ComPropertyRepair)表服务实现类
+ *
+ * @author makejava
+ * @since 2021-09-02 10:12:11
+ */
+@Slf4j
+@Service
+public class ComPropertyRepairServiceImpl extends ServiceImpl<ComPropertyRepairDao, ComPropertyRepair> implements ComPropertyRepairService {
+    @Resource
+    private ComPropertyRepairDao comPropertyRepairDao;
+
+    @Override
+    public R pageList(CommonPage commonPage) {
+        if (nonNull(commonPage.getPropertyCheck()) && nonNull(commonPage.getPropertyId())){
+            IPage<ComPropertyRepairVO> list = comPropertyRepairDao.pageList2(new Page(commonPage.getPage(), commonPage.getSize()), commonPage);
+            return R.ok(list);
+        }else{
+            IPage<ComPropertyRepairVO> list = comPropertyRepairDao.pageList(new Page(commonPage.getPage(), commonPage.getSize()), commonPage);
+            return R.ok(list);
+        }
+    }
+
+    @Override
+    public R pageListDesensitize(CommonPage commonPage) {
+        try {
+            commonPage.setUsername(RSAUtils.decrypt(commonPage.getUsername(), Constants.PRIVATE_KEY));
+            commonPage.setPhone(RSAUtils.decrypt(commonPage.getPhone(), Constants.PRIVATE_KEY));
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        IPage<ComPropertyRepairVO> list = comPropertyRepairDao.pageList(new Page(commonPage.getPage(), commonPage.getSize()), commonPage);
+        for (ComPropertyRepairVO record : list.getRecords()) {
+            record.setRepairPhone(DesensitizedUtil.mobilePhone(record.getRepairPhone()));
+            record.setRepairName(DesensitizedUtil.chineseName(record.getRepairName()));
+            record.setFeedback(DesensitizedUtil.chineseName(record.getFeedback()));
+        }
+        return R.ok(list);
+    }
+    @Override
+    public R selectDetailDesensitize(Long id) {
+        ComPropertyRepairVO vo = comPropertyRepairDao.selectDetail(id);
+        vo.setRepairPhone(DesensitizedUtil.mobilePhone(vo.getRepairPhone()));
+        vo.setRepairName(DesensitizedUtil.chineseName(vo.getRepairName()));
+        vo.setFeedback(DesensitizedUtil.chineseName(vo.getFeedback()));
+        return R.ok(vo);
+    }
+
+    @Override
+    public R pageListProperty(CommonPage commonPage) {
+        IPage<ComPropertyRepairVO> list = comPropertyRepairDao.pageList(new Page(commonPage.getPage(), commonPage.getSize()), commonPage);
+        return R.ok(list);
+    }
+
+    @Override
+    public R selectDetail(Long id) {
+        ComPropertyRepairVO vo = comPropertyRepairDao.selectDetail(id);
+        return R.ok(vo);
+    }
+
+
+    public static void main(String[] args) {
+        System.out.println(DesensitizedUtil.mobilePhone("13980594622"));
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/util/JPushUtil.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/util/JPushUtil.java
new file mode 100644
index 0000000..08cc430
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/util/JPushUtil.java
@@ -0,0 +1,158 @@
+package com.panzhihua.service_property.util;
+
+import cn.jiguang.common.resp.APIConnectionException;
+import cn.jiguang.common.resp.APIRequestException;
+import cn.jpush.api.JPushClient;
+import cn.jpush.api.push.PushResult;
+import cn.jpush.api.push.model.Message;
+import cn.jpush.api.push.model.Options;
+import cn.jpush.api.push.model.Platform;
+import cn.jpush.api.push.model.PushPayload;
+import cn.jpush.api.push.model.audience.Audience;
+import cn.jpush.api.push.model.notification.AndroidNotification;
+import cn.jpush.api.push.model.notification.IosNotification;
+import cn.jpush.api.push.model.notification.Notification;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+
+import java.util.Map;
+
+/**
+ * @ClassName JPushUtil
+ * @Description:
+ * @Author gzm
+ * @Date 2020/6/12 10:14
+ **/
+@Slf4j
+public class JPushUtil {
+
+    /** 设置好账号的app_key和masterSecret是必须的
+     用自己创建以用后的APP_KEY和MASTER_SECRET
+     替换即可,后期可写到yml配置文件中*/
+    @Value("{JPush.APP_KEY}")
+    private static String APP_KEY = "6db03724d207e0debcca68af";
+    private static String MASTER_SECRET = "8ba46c3e30e1fd2cea0b246e";
+
+    // 极光推送>>Android
+    //Map<String, String> parm是我自己传过来的参数,可以自定义参数
+
+    public static void jpushAndroid(Map<String, String> parm) {
+
+        // 创建JPushClient(极光推送的实例)
+        JPushClient jpushClient = new JPushClient(MASTER_SECRET, APP_KEY);
+        // 推送的关键,构造一个payload
+        PushPayload payload = PushPayload.newBuilder()
+                // 指定android平台的用户
+                .setPlatform(Platform.android())
+                // 同社区账号推送
+                .setAudience(Audience.tag(parm.get("communityId")))
+
+//                .setAudience(Audience.alias(parm.get("alias"))) // 设置别名发送,单发,点对点方式
+                //.setAudience(Audience.tag("tag1")) // 设置按标签发送,相当于群发
+//                .setAudience(Audience.registrationId(parm.get("id"))) // registrationId指定用户
+                // 发送内容
+                .setNotification(Notification.android(parm.get("msg"),
+                        parm.get("title"), parm))
+                // apnProduction指定开发环境 true为生产模式 false 为测试模式 (android不区分模式,ios区分模式) 不用设置也没关系
+                // TimeToLive 两个小时的缓存时间
+                .setOptions(Options.newBuilder().setApnsProduction(true).setTimeToLive(7200).build())
+                // 自定义信息
+                .setMessage(Message.content(parm.get("alarm")))
+                .build();
+        try {
+            PushResult pu = jpushClient.sendPush(payload);
+
+            System.out.println(pu.toString());
+
+        } catch (APIConnectionException e) {
+            e.printStackTrace();
+        } catch (APIRequestException e) {
+            e.printStackTrace();
+        }
+    }
+
+    // 极光推送>>ios
+
+    // Map<String, String> parm是我自己传过来的参数,可以自定义参数
+
+    public static  void jpushIOS(Map<String, String> parm) {
+        // 创建JPushClient
+        JPushClient jpushClient = new JPushClient(MASTER_SECRET, APP_KEY);
+        PushPayload payload = PushPayload.newBuilder()
+                // ios平台的用户
+                .setPlatform(Platform.ios())
+                // 所有用户
+                .setAudience(Audience.all())
+                // registrationId指定用户
+                //.setAudience(Audience.registrationId(parm.get("id")))
+                .setNotification(Notification.newBuilder()
+                        .addPlatformNotification(IosNotification.newBuilder()
+                                .setAlert(parm.get("msg"))
+                                .setBadge(+1)
+                                // 这里是设置提示音
+                                .setSound("happy")
+                                .addExtras(parm)
+                                .build())
+                        .build())
+                .setOptions(Options.newBuilder().setApnsProduction(false).build())
+                // 自定义信息
+                .setMessage(Message.newBuilder().setMsgContent(parm.get("msg")).addExtras(parm).build())
+                .build();
+        try {
+            PushResult pu = jpushClient.sendPush(payload);
+            log.info(String.valueOf(pu));
+        } catch (APIConnectionException e) {
+            e.printStackTrace();
+        } catch (APIRequestException e) {
+            e.printStackTrace();
+        }
+    }
+
+
+    // 极光推送>>All所有平台
+
+    public static void jpushAll(Map<String, String> param) {
+
+        // 创建JPushClient
+        JPushClient jpushClient = new JPushClient(MASTER_SECRET, APP_KEY);
+        // 创建option
+        PushPayload payload = PushPayload.newBuilder()
+                // 所有平台的用户
+                .setPlatform(Platform.all())
+                // registrationId指定用户
+                .setAudience(Audience.registrationId(param.get("id")))
+
+                .setNotification(Notification.newBuilder()
+                        // 发送ios
+                        .addPlatformNotification(IosNotification.newBuilder()
+                                // 消息体
+                                .setAlert(param.get("msg"))
+                                .setBadge(+1)
+                                // ios提示音
+                                .setSound("happy")
+                                // 附加参数
+                                .addExtras(param)
+                                .build())
+                        // 发送android
+                        .addPlatformNotification(AndroidNotification.newBuilder()
+                                // 附加参数
+                                .addExtras(param)
+                                // 消息体
+                                .setAlert(param.get("msg"))
+                                .build())
+                        .build())
+                // 指定开发环境 true为生产模式 false 为测试模式 (android不区分模式,ios区分模式)
+                .setOptions(Options.newBuilder().setApnsProduction(true).build())
+                // 自定义信息
+                .setMessage(Message.newBuilder().setMsgContent(param.get("msg")).addExtras(param).build())
+                .build();
+        try {
+            PushResult pu = jpushClient.sendPush(payload);
+            log.info(String.valueOf(pu));
+        } catch (APIConnectionException e) {
+            e.printStackTrace();
+        } catch (APIRequestException e) {
+            e.printStackTrace();
+        }
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/util/MyTools.java b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/util/MyTools.java
new file mode 100644
index 0000000..da1d178
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/java/com/panzhihua/service_property/util/MyTools.java
@@ -0,0 +1,72 @@
+package com.panzhihua.service_property.util;
+
+import com.panzhihua.common.utlis.StringUtils;
+import io.netty.buffer.ByteBuf;
+import io.netty.buffer.Unpooled;
+import io.netty.channel.ChannelFuture;
+import io.netty.channel.ChannelFutureListener;
+import io.netty.channel.ChannelHandlerContext;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class MyTools {
+
+    //十六进制字符转十进制
+    public int covert(String content){
+        int number=0;
+        String [] HighLetter = {"A","B","C","D","E","F"};
+        Map<String,Integer> map = new HashMap<>();
+        for(int i = 0;i <= 9;i++){
+            map.put(i+"",i);
+        }
+        for(int j= 10;j<HighLetter.length+10;j++){
+            map.put(HighLetter[j-10],j);
+        }
+        String[]str = new String[content.length()];
+        for(int i = 0; i < str.length; i++){
+            str[i] = content.substring(i,i+1);
+        }
+        for(int i = 0; i < str.length; i++){
+            number += map.get(str[i])*Math.pow(16,str.length-1-i);
+        }
+        return number;
+    }
+
+    public byte[] hexString2Bytes(String src) {
+        int l = src.length() / 2;
+        byte[] ret = new byte[l];
+        for (int i = 0; i < l; i++) {
+            ret[i] = (byte) Integer
+                    .valueOf(src.substring(i * 2, i * 2 + 2), 16).byteValue();
+        }
+        return ret;
+    }
+
+    public void writeToClient(final String receiveStr, ChannelHandlerContext channel, final String mark) {
+        try {
+            ByteBuf bufff = Unpooled.buffer();//netty需要用ByteBuf传输
+            bufff.writeBytes(hexString2Bytes(receiveStr));//对接需要16进制
+            channel.writeAndFlush(bufff).addListener(new ChannelFutureListener() {
+                @Override
+                public void operationComplete(ChannelFuture future) throws Exception {
+                    StringBuilder sb = new StringBuilder();
+                    if(!StringUtils.isEmpty(mark)){
+                        sb.append("【").append(mark).append("】");
+                    }
+                    if (future.isSuccess()) {
+                        System.out.println(sb+"回写成功"+receiveStr);
+
+                    } else {
+                        System.out.println(sb+"回写失败"+receiveStr);
+                    }
+                }
+            });
+        } catch (Exception e) {
+            e.printStackTrace();
+            System.out.println("调用通用writeToClient()异常"+e.getMessage());
+
+        }
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/resources/bootstrap.yml b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..f360e9e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/resources/bootstrap.yml
@@ -0,0 +1,48 @@
+spring:
+  application:
+    name: huacheng-property
+  cloud:
+    config:
+      discovery:
+        enabled: true
+        service-id: huacheng-config  # 注册中心的服务名
+      profile: ${ENV:dev}  # 指定配置文件的环境
+      uri: http://${CONFIG_URL:localhost}:6193/
+  profiles:
+    active: ${ENV:dev}
+  servlet:
+    multipart:
+      max-file-size: 10MB
+      max-request-size: 10MB
+
+
+eureka:
+  client:
+    service-url:
+      defaultZone: http://${EUREKA_URL:localhost}:8192/eureka
+
+#实体加密、解密、字段脱敏拦截设置
+domain:
+  decrypt: true
+  encrypt: true
+  aesKey: Ryo7M3n8loC5
+  sensitive: true
+
+management:
+  endpoints:
+    web:
+      exposure:
+        include: '*'
+
+  endpoint:
+    health:
+      show-details: always
+
+  metrics:
+    tags:
+      application: huacheng-property
+
+#从一键报警设备websocket订阅时间消息配置
+websocket:
+  uri: ws://182.151.37.143:8086/status
+  ip:  182.151.37.143
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/resources/logback-spring.xml b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..77edac6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/resources/logback-spring.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration debug="false">
+    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
+    <springProfile name="dev">
+        <property name="LOG_HOME" value="F:/log" />
+    </springProfile>
+       <springProfile name="test">
+        <property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    </springProfile>
+<property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    <!-- 控制台输出 -->
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+    </appender>
+    <!-- 按照每天生成日志文件 -->
+    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!--日志文件输出的文件名-->
+            <FileNamePattern>${LOG_HOME}/service_property.log.%d{yyyy-MM-dd}.log</FileNamePattern>
+            <!--日志文件保留天数-->
+            <MaxHistory>30</MaxHistory>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+        <!--日志文件最大的大小-->
+        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <MaxFileSize>10MB</MaxFileSize>
+        </triggeringPolicy>
+    </appender>
+
+    <!--myibatis log configure-->
+    <logger name="com.apache.ibatis" level="TRACE"/>
+    <logger name="java.sql.Connection" level="DEBUG"/>
+    <logger name="java.sql.Statement" level="DEBUG"/>
+    <logger name="java.sql.PreparedStatement" level="DEBUG"/>
+    <logger name="com.panzhihua.service_property" level="DEBUG"/>
+
+    <!-- 日志输出级别 -->
+    <root level="DEBUG">
+        <appender-ref ref="STDOUT" />
+    </root>
+    <root level="INFO">
+        <appender-ref ref="STDOUT" />
+        <appender-ref ref="FILE" />
+    </root>
+</configuration>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/resources/mapper/ComPropertyAlarmMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/resources/mapper/ComPropertyAlarmMapper.xml
new file mode 100644
index 0000000..9a77d1f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/resources/mapper/ComPropertyAlarmMapper.xml
@@ -0,0 +1,71 @@
+<?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_property.dao.ComPropertyAlarmDao">
+
+    <resultMap type="com.panzhihua.service_property.entity.ComPropertyAlarm" id="ComPropertyAlarmBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="serialNo" column="serial_no"/>
+        <result property="type" column="type"/>
+        <result property="createTime" column="create_time"/>
+        <result property="phone" column="phone"/>
+        <result property="name" column="name"/>
+        <result property="status" column="status"/>
+        <result property="solveId" column="solve_id"/>
+        <result property="solveTime" column="solve_time"/>
+        <result property="solveContent" column="solve_content"/>
+        <result property="communityId" column="community_id"/>
+        <result property="solveUrl" column="solve_url"/>
+    </resultMap>
+
+    <select id="selectList" resultType="com.panzhihua.common.model.vos.property.ComPropertyAlarmVO">
+        select t.id,t.serial_no,t.type,t.create_time,t1.phone,t1.username as name,t.status,
+            t.solve_id,t.solve_time,t.solve_content,t.community_id,t.solve_url,t1.position,
+            t1.longitude,t1.latitude,t2.name as solveName,t4.username as receiveName
+        from com_property_alarm t
+        left join com_property_equipment t1 on t.serial_no = t1.serial_no
+        left join sys_user t2 on t.solve_id = user_id
+        left join com_property_equipment t4 on t.receive_no = t4.serial_no
+        <where>
+            1=1 and t.serial_no not like '70%'
+            <if test="commonPage.paramId !=null">
+                and t1.community_id = ${commonPage.paramId}
+            </if>
+            <if test="commonPage.type !=null">
+                and t.type =#{commonPage.type}
+            </if>
+            <if test="commonPage.status !=null">
+                and t.status =#{commonPage.status}
+            </if>
+            <if test="commonPage.address !=null and commonPage.address !=''">
+                and t1.position like concat(#{commonPage.address},'%')
+            </if>
+            <if test="commonPage.username !=null and commonPage.username !=''">
+                and t1.username like concat(#{commonPage.username},'%')
+            </if>
+            <if test="commonPage.beginTime !=null">
+                and t.create_time >=#{commonPage.beginTime}
+            </if>
+            <if test="commonPage.statusBeginTime !=null">
+                and t.solve_time >=#{commonPage.statusBeginTime}
+            </if>
+            <if test="commonPage.endTime !=null">
+                and #{commonPage.endTime} >=t.create_time
+            </if>
+            <if test="commonPage.statusEndTime !=null">
+                and #{commonPage.statusEndTime} >=t.solve_time
+            </if>
+        </where>
+        order by t.create_time desc
+    </select>
+
+
+    <select id="selectById" resultType="com.panzhihua.common.model.vos.property.ComPropertyAlarmVO">
+        select t.id,t.serial_no,t.type,t.create_time,t1.phone,t1.username as name,t.status,t.solve_id,t.solve_time,t.solve_content,t.community_id,t.solve_url,t3.address as position,t1.longitude,t1.latitude,t2.name as solveName,t4.username as receiveName from com_property_alarm t
+            left join com_property_equipment t1 on t.serial_no = t1.serial_no
+            left join com_mng_population_house t3 on t1.village_id=t3.id
+            left join sys_user t2 on t.solve_id = user_id
+            left join com_property_equipment t4 on t.receive_no = t4.serial_no
+        where t.id=#{id}
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/resources/mapper/ComPropertyAlarmSettingMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/resources/mapper/ComPropertyAlarmSettingMapper.xml
new file mode 100644
index 0000000..4222def
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/resources/mapper/ComPropertyAlarmSettingMapper.xml
@@ -0,0 +1,17 @@
+<?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_property.dao.ComPropertyAlarmSettingDao">
+
+    <resultMap type="com.panzhihua.service_property.entity.ComPropertyAlarmSetting"
+               id="ComPropertyAlarmSettingBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="triggerTime" column="trigger_time"/>
+        <result property="communityId" column="community_id"/>
+        <result property="createTime" column="create_time"/>
+    </resultMap>
+
+    <select id="getByCommunityId" resultMap="ComPropertyAlarmSettingBaseResultMap">
+        select * from com_property_alarm_setting where community_id = ${community_id} order by create_time desc limit 1
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/resources/mapper/ComPropertyEquipmentMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/resources/mapper/ComPropertyEquipmentMapper.xml
new file mode 100644
index 0000000..59aa78a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/resources/mapper/ComPropertyEquipmentMapper.xml
@@ -0,0 +1,41 @@
+<?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_property.dao.ComPropertyEquipmentDao">
+
+    <resultMap type="com.panzhihua.service_property.entity.ComPropertyEquipment" id="ComPropertyEquipmentBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="serialNo" column="serial_no"/>
+        <result property="position" column="position"/>
+        <result property="communityId" column="community_id"/>
+        <result property="longitude" column="longitude"/>
+        <result property="latitude" column="latitude"/>
+        <result property="name" column="name"/>
+        <result property="createTime" column="create_time"/>
+        <result property="type" column="type"/>
+        <result property="username" column="username"/>
+        <result property="villageId" column="villageId"/>
+        <result property="path" column="path"/>
+    </resultMap>
+
+    <select id="pageList" resultMap="ComPropertyEquipmentBaseResultMap">
+        select * from com_property_equipment
+        <where>
+            1=1
+            <if test="commonPage.type!=null">
+                and type =#{commonPage.type}
+            </if>
+            <if test="commonPage.paramId !=null">
+                and community_id = ${commonPage.paramId}
+            </if>
+            <if test="commonPage.name!=null and commonPage.name!=''">
+                and name like concat(#{commonPage.name},'%')
+            </if>
+            <if test="commonPage.serialNo!=null and commonPage.serialNo!=''">
+                and serial_no like concat(#{commonPage.serialNo},'%')
+            </if>
+            <if test="commonPage.address!=null and commonPage.address!=''">
+                and position like concat(#{commonPage.address},'%')
+            </if>
+        </where>
+    </select>
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/resources/mapper/ComPropertyHelpMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/resources/mapper/ComPropertyHelpMapper.xml
new file mode 100644
index 0000000..b981b46
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/resources/mapper/ComPropertyHelpMapper.xml
@@ -0,0 +1,30 @@
+<?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_property.dao.ComPropertyHelpDao">
+
+    <resultMap type="com.panzhihua.service_property.entity.ComPropertyHelp" id="ComPropertyHelpBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="name" column="name"/>
+        <result property="imgUrl" column="img_url"/>
+        <result property="phone" column="phone"/>
+        <result property="status" column="status"/>
+        <result property="createTime" column="create_time"/>
+        <result property="communityId" column="community_id"/>
+    </resultMap>
+
+
+    <select id="pageList" resultMap="ComPropertyHelpBaseResultMap">
+        select * from com_property_help
+        <where>
+            1=1
+            <if test="commonPage.status !=null">
+                and status =#{commonPage.status}
+            </if>
+            <if test="commonPage.paramId !=null">
+                and community_id = ${commonPage.paramId}
+            </if>
+        </where>
+        order by create_time desc
+    </select>
+
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/resources/mapper/ComPropertyRepairMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/resources/mapper/ComPropertyRepairMapper.xml
new file mode 100644
index 0000000..1465c6c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_property/src/main/resources/mapper/ComPropertyRepairMapper.xml
@@ -0,0 +1,109 @@
+<?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_property.dao.ComPropertyRepairDao">
+
+    <resultMap type="com.panzhihua.service_property.entity.ComPropertyRepair" id="ComPropertyRepairBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="repairContent" column="repair_content"/>
+        <result property="repairName" column="repair_name"/>
+        <result property="repairPhone" column="repair_phone"/>
+        <result property="repairPosition" column="repair_position"/>
+        <result property="repairStatus" column="repair_status"/>
+        <result property="createTime" column="create_time"/>
+        <result property="repairUrl" column="repair_url"/>
+        <result property="replyContent" column="reply_content"/>
+        <result property="replyUrl" column="reply_url"/>
+        <result property="replyTime" column="reply_time"/>
+        <result property="createBy" column="create_by"/>
+        <result property="feedbackBy" column="feedback_by"/>
+        <result property="feedbackContent" column="feedback_content"/>
+        <result property="feedbackUrl" column="feedback_url"/>
+        <result property="feedbackTime" column="feedback_time"/>
+        <result property="replyScore" column="reply_score"/>
+        <result property="propertyId" column="property_id"/>
+    </resultMap>
+
+    <select id="pageList" resultType="com.panzhihua.common.model.vos.property.ComPropertyRepairVO" parameterType="com.panzhihua.common.model.dtos.property.CommonPage">
+        select t.*,t1.name as feedback,t3.name as areaName from com_property_repair t left join sys_user t1 on t.feedback_by = t1.user_id left join com_property t2 on t.property_id = t2.area_id left join com_mng_village t3 on t.property_id=t3.village_id
+        <where>
+            1=1
+            <if test="commonPage.status !=null">
+                and t.repair_status =#{commonPage.status}
+            </if>
+            <if test="commonPage.username !=null and commonPage.username.trim() !=''">
+                and t.repair_name  like concat(#{commonPage.username},'%')
+            </if>
+            <if test="commonPage.phone !=null and commonPage.phone.trim() !=''">
+                and t.repair_phone like concat(#{commonPage.phone},'%')
+            </if>
+            <if test="commonPage.address !=null and commonPage.address.trim() !=''">
+                and t.repair_position like  concat(#{commonPage.address},'%')
+            </if>
+            <if test="commonPage.beginTime !=null">
+                and t.create_time >=#{commonPage.beginTime}
+            </if>
+            <if test="commonPage.endTime !=null">
+                and #{commonPage.endTime} >=t.create_time
+            </if>
+            <if test="commonPage.systemName !=null and commonPage.systemName.trim() !=''">
+                and t1.name like concat(#{commonPage.systemName},'%')
+            </if>
+            <if test="commonPage.paramId !=null and commonPage.paramId !=0">
+                and t2.community_id = ${commonPage.paramId}
+            </if>
+            <if test="commonPage.areaId !=null and commonPage.areaId !=0">
+                and t2.area_id =#{commonPage.areaId}
+            </if>
+            <if test="commonPage.userId !=null">
+                and t.create_by =#{commonPage.userId}
+            </if>
+            <if test="commonPage.propertyId != null and commonPage.propertyId != ''">
+                AND t.property_id=#{commonPage.propertyId}
+            </if>
+        </where>
+    order by t.create_time desc
+    </select>
+
+    <select id="selectDetail" resultType="com.panzhihua.common.model.vos.property.ComPropertyRepairVO">
+        select t.*,t1.name as feedback from com_property_repair t left join sys_user t1 on t.feedback_by = t1.user_id where t.id=#{id}
+    </select>
+    <select id="pageList2" resultType="com.panzhihua.common.model.vos.property.ComPropertyRepairVO">
+    select t.*,t1.name as feedback from com_property_repair t left join sys_user t1 on t.feedback_by = t1.user_id left join com_property t2 on t.property_id = t2.area_id left join com_mng_village t3 on t.property_id=t3.village_id
+    <where>
+        1=1
+        <if test="commonPage.status !=null">
+            and t.repair_status =#{commonPage.status}
+        </if>
+        <if test="commonPage.username !=null and commonPage.username.trim() !=''">
+            and t.repair_name  like concat(#{commonPage.username},'%')
+        </if>
+        <if test="commonPage.phone !=null and commonPage.phone.trim() !=''">
+            and t.repair_phone like concat(#{commonPage.phone},'%')
+        </if>
+        <if test="commonPage.address !=null and commonPage.address.trim() !=''">
+            and t.repair_position like  concat(#{commonPage.address},'%')
+        </if>
+        <if test="commonPage.beginTime !=null">
+            and t.create_time >=#{commonPage.beginTime}
+        </if>
+        <if test="commonPage.endTime !=null">
+            and #{commonPage.endTime} >=t.create_time
+        </if>
+        <if test="commonPage.systemName !=null and commonPage.systemName.trim() !=''">
+            and t1.name like concat(#{commonPage.systemName},'%')
+        </if>
+        <if test="commonPage.paramId !=null and commonPage.paramId !=0">
+            and t2.community_id = ${commonPage.paramId}
+        </if>
+        <if test="commonPage.areaId !=null and commonPage.areaId !=0">
+            and t2.area_id =#{commonPage.areaId}
+        </if>
+        <if test="commonPage.userId !=null">
+            and t.create_by =#{commonPage.userId}
+        </if>
+        <if test="commonPage.propertyId != null and commonPage.propertyId != ''">
+            AND t.property_id=#{commonPage.propertyId}
+        </if>
+    </where>
+    </select>
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/.gitignore b/springcloud_k8s_panzhihuazhihuishequ/service_user/.gitignore
new file mode 100644
index 0000000..549e00a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/.gitignore
@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/.mvn/wrapper/MavenWrapperDownloader.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/.mvn/wrapper/MavenWrapperDownloader.java
new file mode 100644
index 0000000..a45eb6b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/.mvn/wrapper/MavenWrapperDownloader.java
@@ -0,0 +1,118 @@
+/*
+ * Copyright 2007-present the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.net.*;
+import java.io.*;
+import java.nio.channels.*;
+import java.util.Properties;
+
+public class MavenWrapperDownloader {
+
+    private static final String WRAPPER_VERSION = "0.5.6";
+    /**
+     * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
+     */
+    private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
+            + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
+
+    /**
+     * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
+     * use instead of the default one.
+     */
+    private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
+            ".mvn/wrapper/maven-wrapper.properties";
+
+    /**
+     * Path where the maven-wrapper.jar will be saved to.
+     */
+    private static final String MAVEN_WRAPPER_JAR_PATH =
+            ".mvn/wrapper/maven-wrapper.jar";
+
+    /**
+     * Name of the property which should be used to override the default download url for the wrapper.
+     */
+    private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
+
+    public static void main(String args[]) {
+        System.out.println("- Downloader started");
+        File baseDirectory = new File(args[0]);
+        System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
+
+        // If the maven-wrapper.properties exists, read it and check if it contains a custom
+        // wrapperUrl parameter.
+        File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
+        String url = DEFAULT_DOWNLOAD_URL;
+        if (mavenWrapperPropertyFile.exists()) {
+            FileInputStream mavenWrapperPropertyFileInputStream = null;
+            try {
+                mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
+                Properties mavenWrapperProperties = new Properties();
+                mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
+                url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
+            } catch (IOException e) {
+                System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
+            } finally {
+                try {
+                    if (mavenWrapperPropertyFileInputStream != null) {
+                        mavenWrapperPropertyFileInputStream.close();
+                    }
+                } catch (IOException e) {
+                    // Ignore ...
+                }
+            }
+        }
+        System.out.println("- Downloading from: " + url);
+
+        File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
+        if (!outputFile.getParentFile().exists()) {
+            if (!outputFile.getParentFile().mkdirs()) {
+                System.out.println(
+                        "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
+            }
+        }
+        System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
+        try {
+            downloadFileFromURL(url, outputFile);
+            System.out.println("Done");
+            System.exit(0);
+        } catch (Throwable e) {
+            System.out.println("- Error downloading");
+            e.printStackTrace();
+            System.exit(1);
+        }
+    }
+
+    private static void downloadFileFromURL(String urlString, File destination) throws Exception {
+        if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
+            String username = System.getenv("MVNW_USERNAME");
+            char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
+            Authenticator.setDefault(new Authenticator() {
+                @Override
+                protected PasswordAuthentication getPasswordAuthentication() {
+                    return new PasswordAuthentication(username, password);
+                }
+            });
+        }
+        URL website = new URL(urlString);
+        ReadableByteChannel rbc;
+        rbc = Channels.newChannel(website.openStream());
+        FileOutputStream fos = new FileOutputStream(destination);
+        fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
+        fos.close();
+        rbc.close();
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/.mvn/wrapper/maven-wrapper.jar b/springcloud_k8s_panzhihuazhihuishequ/service_user/.mvn/wrapper/maven-wrapper.jar
new file mode 100644
index 0000000..2cc7d4a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/.mvn/wrapper/maven-wrapper.jar
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/.mvn/wrapper/maven-wrapper.properties b/springcloud_k8s_panzhihuazhihuishequ/service_user/.mvn/wrapper/maven-wrapper.properties
new file mode 100644
index 0000000..642d572
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/.mvn/wrapper/maven-wrapper.properties
@@ -0,0 +1,2 @@
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip
+wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/mvnw b/springcloud_k8s_panzhihuazhihuishequ/service_user/mvnw
new file mode 100644
index 0000000..a16b543
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/mvnw
@@ -0,0 +1,310 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#    https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Maven Start Up Batch script
+#
+# Required ENV vars:
+# ------------------
+#   JAVA_HOME - location of a JDK home dir
+#
+# Optional ENV vars
+# -----------------
+#   M2_HOME - location of maven2's installed home dir
+#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
+#     e.g. to debug Maven itself, use
+#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+# ----------------------------------------------------------------------------
+
+if [ -z "$MAVEN_SKIP_RC" ] ; then
+
+  if [ -f /etc/mavenrc ] ; then
+    . /etc/mavenrc
+  fi
+
+  if [ -f "$HOME/.mavenrc" ] ; then
+    . "$HOME/.mavenrc"
+  fi
+
+fi
+
+# OS specific support.  $var _must_ be set to either true or false.
+cygwin=false;
+darwin=false;
+mingw=false
+case "`uname`" in
+  CYGWIN*) cygwin=true ;;
+  MINGW*) mingw=true;;
+  Darwin*) darwin=true
+    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
+    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
+    if [ -z "$JAVA_HOME" ]; then
+      if [ -x "/usr/libexec/java_home" ]; then
+        export JAVA_HOME="`/usr/libexec/java_home`"
+      else
+        export JAVA_HOME="/Library/Java/Home"
+      fi
+    fi
+    ;;
+esac
+
+if [ -z "$JAVA_HOME" ] ; then
+  if [ -r /etc/gentoo-release ] ; then
+    JAVA_HOME=`java-config --jre-home`
+  fi
+fi
+
+if [ -z "$M2_HOME" ] ; then
+  ## resolve links - $0 may be a link to maven's home
+  PRG="$0"
+
+  # need this for relative symlinks
+  while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+      PRG="$link"
+    else
+      PRG="`dirname "$PRG"`/$link"
+    fi
+  done
+
+  saveddir=`pwd`
+
+  M2_HOME=`dirname "$PRG"`/..
+
+  # make it fully qualified
+  M2_HOME=`cd "$M2_HOME" && pwd`
+
+  cd "$saveddir"
+  # echo Using m2 at $M2_HOME
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --unix "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+fi
+
+# For Mingw, ensure paths are in UNIX format before anything is touched
+if $mingw ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME="`(cd "$M2_HOME"; pwd)`"
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
+fi
+
+if [ -z "$JAVA_HOME" ]; then
+  javaExecutable="`which javac`"
+  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
+    # readlink(1) is not available as standard on Solaris 10.
+    readLink=`which readlink`
+    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
+      if $darwin ; then
+        javaHome="`dirname \"$javaExecutable\"`"
+        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
+      else
+        javaExecutable="`readlink -f \"$javaExecutable\"`"
+      fi
+      javaHome="`dirname \"$javaExecutable\"`"
+      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
+      JAVA_HOME="$javaHome"
+      export JAVA_HOME
+    fi
+  fi
+fi
+
+if [ -z "$JAVACMD" ] ; then
+  if [ -n "$JAVA_HOME"  ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+      # IBM's JDK on AIX uses strange locations for the executables
+      JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+      JAVACMD="$JAVA_HOME/bin/java"
+    fi
+  else
+    JAVACMD="`which java`"
+  fi
+fi
+
+if [ ! -x "$JAVACMD" ] ; then
+  echo "Error: JAVA_HOME is not defined correctly." >&2
+  echo "  We cannot execute $JAVACMD" >&2
+  exit 1
+fi
+
+if [ -z "$JAVA_HOME" ] ; then
+  echo "Warning: JAVA_HOME environment variable is not set."
+fi
+
+CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
+
+# traverses directory structure from process work directory to filesystem root
+# first directory with .mvn subdirectory is considered project base directory
+find_maven_basedir() {
+
+  if [ -z "$1" ]
+  then
+    echo "Path not specified to find_maven_basedir"
+    return 1
+  fi
+
+  basedir="$1"
+  wdir="$1"
+  while [ "$wdir" != '/' ] ; do
+    if [ -d "$wdir"/.mvn ] ; then
+      basedir=$wdir
+      break
+    fi
+    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
+    if [ -d "${wdir}" ]; then
+      wdir=`cd "$wdir/.."; pwd`
+    fi
+    # end of workaround
+  done
+  echo "${basedir}"
+}
+
+# concatenates all lines of a file
+concat_lines() {
+  if [ -f "$1" ]; then
+    echo "$(tr -s '\n' ' ' < "$1")"
+  fi
+}
+
+BASE_DIR=`find_maven_basedir "$(pwd)"`
+if [ -z "$BASE_DIR" ]; then
+  exit 1;
+fi
+
+##########################################################################################
+# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+# This allows using the maven wrapper in projects that prohibit checking in binary data.
+##########################################################################################
+if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Found .mvn/wrapper/maven-wrapper.jar"
+    fi
+else
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
+    fi
+    if [ -n "$MVNW_REPOURL" ]; then
+      jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    else
+      jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    fi
+    while IFS="=" read key value; do
+      case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
+      esac
+    done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Downloading from: $jarUrl"
+    fi
+    wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
+    if $cygwin; then
+      wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
+    fi
+
+    if command -v wget > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found wget ... using wget"
+        fi
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+            wget "$jarUrl" -O "$wrapperJarPath"
+        else
+            wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
+        fi
+    elif command -v curl > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found curl ... using curl"
+        fi
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+            curl -o "$wrapperJarPath" "$jarUrl" -f
+        else
+            curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
+        fi
+
+    else
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Falling back to using Java to download"
+        fi
+        javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
+        # For Cygwin, switch paths to Windows format before running javac
+        if $cygwin; then
+          javaClass=`cygpath --path --windows "$javaClass"`
+        fi
+        if [ -e "$javaClass" ]; then
+            if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Compiling MavenWrapperDownloader.java ..."
+                fi
+                # Compiling the Java class
+                ("$JAVA_HOME/bin/javac" "$javaClass")
+            fi
+            if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                # Running the downloader
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Running MavenWrapperDownloader.java ..."
+                fi
+                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
+            fi
+        fi
+    fi
+fi
+##########################################################################################
+# End of extension
+##########################################################################################
+
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
+if [ "$MVNW_VERBOSE" = true ]; then
+  echo $MAVEN_PROJECTBASEDIR
+fi
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --path --windows "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
+    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
+fi
+
+# Provide a "standardized" way to retrieve the CLI args that will
+# work with both Windows and non-Windows executions.
+MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
+export MAVEN_CMD_LINE_ARGS
+
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+exec "$JAVACMD" \
+  $MAVEN_OPTS \
+  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
+  "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
+  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/mvnw.cmd b/springcloud_k8s_panzhihuazhihuishequ/service_user/mvnw.cmd
new file mode 100644
index 0000000..c8d4337
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/mvnw.cmd
@@ -0,0 +1,182 @@
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements.  See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership.  The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License.  You may obtain a copy of the License at
+@REM
+@REM    https://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied.  See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Maven Start Up Batch script
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM M2_HOME - location of maven2's installed home dir
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
+@REM     e.g. to debug Maven itself, use
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+@REM ----------------------------------------------------------------------------
+
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
+@echo off
+@REM set title of command window
+title %0
+@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
+@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
+
+@REM set %HOME% to equivalent of $HOME
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
+
+@REM Execute a user defined script before this one
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
+if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
+:skipRcPre
+
+@setlocal
+
+set ERROR_CODE=0
+
+@REM To isolate internal variables from possible post scripts, we use another setlocal
+@setlocal
+
+@REM ==== START VALIDATION ====
+if not "%JAVA_HOME%" == "" goto OkJHome
+
+echo.
+echo Error: JAVA_HOME not found in your environment. >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:OkJHome
+if exist "%JAVA_HOME%\bin\java.exe" goto init
+
+echo.
+echo Error: JAVA_HOME is set to an invalid directory. >&2
+echo JAVA_HOME = "%JAVA_HOME%" >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+@REM ==== END VALIDATION ====
+
+:init
+
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
+@REM Fallback to current working directory if not found.
+
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
+
+set EXEC_DIR=%CD%
+set WDIR=%EXEC_DIR%
+:findBaseDir
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
+cd ..
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
+set WDIR=%CD%
+goto findBaseDir
+
+:baseDirFound
+set MAVEN_PROJECTBASEDIR=%WDIR%
+cd "%EXEC_DIR%"
+goto endDetectBaseDir
+
+:baseDirNotFound
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
+cd "%EXEC_DIR%"
+
+:endDetectBaseDir
+
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
+
+@setlocal EnableExtensions EnableDelayedExpansion
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
+
+:endReadAdditionalConfig
+
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+
+FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
+    IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
+)
+
+@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
+if exist %WRAPPER_JAR% (
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Found %WRAPPER_JAR%
+    )
+) else (
+    if not "%MVNW_REPOURL%" == "" (
+        SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    )
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Couldn't find %WRAPPER_JAR%, downloading it ...
+        echo Downloading from: %DOWNLOAD_URL%
+    )
+
+    powershell -Command "&{"^
+		"$webclient = new-object System.Net.WebClient;"^
+		"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
+		"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
+		"}"^
+		"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
+		"}"
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Finished downloading %WRAPPER_JAR%
+    )
+)
+@REM End of extension
+
+@REM Provide a "standardized" way to retrieve the CLI args that will
+@REM work with both Windows and non-Windows executions.
+set MAVEN_CMD_LINE_ARGS=%*
+
+%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
+if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
+:skipRcPost
+
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
+if "%MAVEN_BATCH_PAUSE%" == "on" pause
+
+if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
+
+exit /B %ERROR_CODE%
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/service_user/pom.xml
new file mode 100644
index 0000000..20db893
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/pom.xml
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.panzhihua</groupId>
+        <artifactId>zhihuishequ</artifactId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <groupId>com.panzhihua</groupId>
+    <artifactId>service_user</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>service_user</name>
+    <description>用户服务</description>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-config</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+        </dependency>
+        <!--阿里数据库连接池 -->
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid-spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.panzhihua</groupId>
+            <artifactId>common</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-data-redis</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.commons</groupId>
+            <artifactId>commons-pool2</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.netflix.hystrix</groupId>
+            <artifactId>hystrix-javanica</artifactId>
+        </dependency>
+        <!--添加监控依赖包-->
+        <dependency>
+            <groupId>io.micrometer</groupId>
+            <artifactId>micrometer-registry-prometheus</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+    </dependencies>
+
+
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>2.5.0</version>
+                <configuration>
+                    <mainClass>com.panzhihua.service_user.ServiceUserApplication</mainClass>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>docker-maven-plugin</artifactId>
+                <version>1.2.0</version>
+                <configuration>
+                    <imageName>registry.cn-chengdu.aliyuncs.com/panzhihua/service-user:v1</imageName>
+                    <serverId></serverId>
+                    <baseImage>java</baseImage>
+                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
+                    <resources>
+                        <resource>
+                            <targetPath>/</targetPath>
+                            <directory>${project.build.directory}</directory>
+                            <include>${project.build.finalName}.jar</include>
+                        </resource>
+                    </resources>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <repositories>
+        <repository>
+            <id>spring-milestones</id>
+            <name>Spring Milestones</name>
+            <url>https://repo.spring.io/milestone</url>
+        </repository>
+    </repositories>
+
+</project>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/ServiceUserApplication.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/ServiceUserApplication.java
new file mode 100644
index 0000000..df77f4b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/ServiceUserApplication.java
@@ -0,0 +1,20 @@
+package com.panzhihua.service_user;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.cloud.client.SpringCloudApplication;
+import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+import org.springframework.context.annotation.ComponentScan;
+
+@SpringCloudApplication
+@EnableEurekaClient
+@EnableCircuitBreaker
+@ComponentScan({"com.panzhihua.service_user", "com.panzhihua.common"})
+public class ServiceUserApplication {
+
+
+    public static void main(String[] args) {
+        SpringApplication.run(ServiceUserApplication.class, args);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/api/RoleApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/api/RoleApi.java
new file mode 100644
index 0000000..db594ed
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/api/RoleApi.java
@@ -0,0 +1,145 @@
+package com.panzhihua.service_user.api;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.controller.BaseController;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.model.vos.MenuVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.user.MenuRoleVO;
+import com.panzhihua.common.model.vos.user.RoleVO;
+import com.panzhihua.service_user.service.RoleService;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 权限
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-25 15:57
+ **/
+@RestController
+@RequestMapping("/role/")
+public class RoleApi extends BaseController {
+    @Resource
+    private RoleService roleService;
+
+    /**
+     * 获取平台所有权限url
+     * 
+     * @return 所有权限url
+     */
+    @PostMapping("getAllMenu")
+    public R<List<MenuVO>> getAllMenu() {
+        return roleService.getAllMenu();
+    }
+
+    /**
+     * 获取某个人的所有角色
+     * 
+     * @param username
+     *            用户ID
+     * @return 所有角色
+     */
+    @PostMapping("getUserRoles")
+    public R<List<String>> getUserRoles(@RequestParam("username") String username) {
+        return roleService.getUserRoles(username);
+    }
+
+    /**
+     * 查询社区的党委角色
+     * 
+     * @param communityId
+     *            社区id
+     * @return 党委角色列表
+     */
+    @PostMapping("listidentity")
+    public R listIdentity(@RequestParam("communityId") Integer communityId) {
+        return roleService.listIdentity(communityId);
+    }
+
+    /**
+     * 角色下拉列表
+     * 
+     * @param communityId
+     *            对应社区 0 表示运营后台
+     * @return 角色集合
+     */
+    @PostMapping("listrolebackstage")
+    public R listRoleBackstage(@RequestParam("communityId") Long communityId,@RequestParam("pageNum")Integer pageNum,@RequestParam("pageSize")Integer pageSize,@RequestParam("areaCode")String areaCode) {
+        return roleService.listRoleBackstage(communityId,pageNum,pageSize,areaCode);
+    }
+
+    /**
+     * 新增角色
+     * 
+     * @param roleVO
+     *            角色信息
+     * @return 新增结果
+     */
+    @PostMapping("addrolebackstage")
+    public R addRoleBackstage(@RequestBody RoleVO roleVO) {
+        return roleService.addRoleBackstage(roleVO);
+    }
+
+    /**
+     * 删除角色
+     * 
+     * @param roleVO
+     *            角色主键
+     * @return 删除结果
+     */
+    @PostMapping("deleterolebackstage")
+    public R deleteRoleBackstage(@RequestBody RoleVO roleVO) {
+        return roleService.deleteRoleBackstage(roleVO);
+    }
+
+    /**
+     * 平台菜单列表
+     * 
+     * @param communityId
+     *            社区id 0 运营平台
+     * @return 菜单集合
+     */
+    @PostMapping("listmenubackstage")
+    public R listMenuBackstage(@RequestParam("communityId") Long communityId) {
+        return roleService.listMenuBackstage(communityId,this.getAppId());
+    }
+
+    /**
+     * 设置角色的权限
+     * 
+     * @param menuRoleVO
+     *            用户设置的权限id
+     * @return 设置结果
+     */
+    @PostMapping("putmenurole")
+    public R putMenuRole(@RequestBody MenuRoleVO menuRoleVO) {
+        return roleService.putMenuRole(menuRoleVO);
+    }
+
+    /**
+     * 用户菜单获取
+     * 
+     * @param userId
+     *            登录用户id
+     * @return 用户菜单
+     */
+    @PostMapping("listmenu")
+    public R listmenu(@RequestParam("userId") Long userId) {
+        return roleService.listmenu(userId);
+    }
+
+    /**
+     * 获取角色的权限配置列表
+     * 
+     * @param roleId
+     *            角色id
+     * @return 菜单列表
+     */
+    @PostMapping("listmenubackstagebyrole")
+    public R listMenuBackstageByRole(@RequestParam("roleId") Long roleId) {
+        return roleService.listMenuBackstageByRole(roleId);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/api/SysAppConfigApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/api/SysAppConfigApi.java
new file mode 100644
index 0000000..af8437a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/api/SysAppConfigApi.java
@@ -0,0 +1,112 @@
+package com.panzhihua.service_user.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.api.ApiController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.user.SysAppConfigVO;
+import com.panzhihua.service_user.entity.SysAppConfig;
+import com.panzhihua.service_user.service.SysAppConfigService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * (SysAppConfig)表控制层
+ *
+ * @author makejava
+ * @since 2022-01-13 10:10:19
+ */
+@RestController
+@RequestMapping("sysAppConfig")
+public class SysAppConfigApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private SysAppConfigService sysAppConfigService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.sysAppConfigService.pageList(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return R.ok(this.sysAppConfigService.getById(id));
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param sysAppConfig 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody SysAppConfig sysAppConfig) {
+        return R.ok(this.sysAppConfigService.save(sysAppConfig));
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param sysAppConfig 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody SysAppConfig sysAppConfig) {
+        return R.ok(this.sysAppConfigService.updateById(sysAppConfig));
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return R.ok(this.sysAppConfigService.removeById(id));
+    }
+
+
+    @GetMapping("/selectByAppid")
+    public R<SysAppConfigVO> selectByAppid(@RequestParam("appId")String appId){
+        SysAppConfig sysAppConfig=this.sysAppConfigService.getOne(new QueryWrapper<SysAppConfig>().lambda().eq(SysAppConfig::getAppId,appId));
+        if(sysAppConfig!=null){
+            SysAppConfigVO  sysAppConfigVO=new SysAppConfigVO();
+            BeanUtils.copyProperties(sysAppConfig,sysAppConfigVO);
+            return R.ok(sysAppConfigVO);
+        }
+
+        return R.fail();
+    }
+
+    @GetMapping("/selectByAreaCode")
+    public R<SysAppConfigVO> selectByAreaCode(@RequestParam("areaCode") String areaCode) {
+        SysAppConfig sysAppConfig = this.sysAppConfigService.getOne(new QueryWrapper<SysAppConfig>().lambda().eq(SysAppConfig::getAreaCode, areaCode));
+        if(sysAppConfig != null){
+            SysAppConfigVO sysAppConfigVO = new SysAppConfigVO();
+            BeanUtils.copyProperties(sysAppConfig, sysAppConfigVO);
+            return R.ok(sysAppConfigVO);
+        }
+        return R.fail();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/api/SysTemplateConfigApi.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/api/SysTemplateConfigApi.java
new file mode 100644
index 0000000..7cfc17d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/api/SysTemplateConfigApi.java
@@ -0,0 +1,99 @@
+package com.panzhihua.service_user.api;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.api.ApiController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.vos.user.SysTemplateConfigVO;
+import com.panzhihua.service_user.entity.SysTemplateConfig;
+import com.panzhihua.service_user.service.SysTemplateConfigService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * (SysTemplateConfig)表控制层
+ *
+ * @author makejava
+ * @since 2022-01-13 14:29:57
+ */
+@RestController
+@RequestMapping("sysTemplateConfig")
+public class SysTemplateConfigApi {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private SysTemplateConfigService sysTemplateConfigService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        return this.sysTemplateConfigService.pageList(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Serializable id) {
+        return R.ok(this.sysTemplateConfigService.getById(id));
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param sysTemplateConfig 实体对象
+     * @return 新增结果
+     */
+    @PostMapping
+    public R insert(@RequestBody SysTemplateConfig sysTemplateConfig) {
+        return R.ok(this.sysTemplateConfigService.save(sysTemplateConfig));
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param sysTemplateConfig 实体对象
+     * @return 修改结果
+     */
+    @PostMapping("/update")
+    public R update(@RequestBody SysTemplateConfig sysTemplateConfig) {
+        return R.ok(this.sysTemplateConfigService.updateById(sysTemplateConfig));
+    }
+
+    /**
+     * 删除数据
+     *
+     * @param id 主键结合
+     * @return 删除结果
+     */
+    @GetMapping("del")
+    public R delete(@RequestParam("id") Long id) {
+        return R.ok(this.sysTemplateConfigService.removeById(id));
+    }
+
+    @GetMapping("/selectTemplate")
+    public R<SysTemplateConfigVO> selectTemplate(@RequestParam("areaCode")String areaCode,@RequestParam("type")Integer type){
+        SysTemplateConfig sysTemplateConfig=this.sysTemplateConfigService.getOne(new QueryWrapper<SysTemplateConfig>().lambda().eq(SysTemplateConfig::getAreaCode,areaCode).eq(SysTemplateConfig::getType,type));
+        if(sysTemplateConfig!=null){
+            SysTemplateConfigVO sysTemplateConfigVO=new SysTemplateConfigVO();
+            BeanUtils.copyProperties(sysTemplateConfig,sysTemplateConfigVO);
+            return R.ok(sysTemplateConfigVO);
+        }
+        return R.fail();
+    }
+}
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
new file mode 100644
index 0000000..5fc82e9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/api/UserApi.java
@@ -0,0 +1,1525 @@
+package com.panzhihua.service_user.api;
+
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import cn.hutool.core.util.StrUtil;
+import com.panzhihua.common.model.dtos.DataKanBansDto;
+import com.panzhihua.common.model.dtos.community.convenient.ConvenientMerchantDTO;
+import com.panzhihua.common.model.dtos.community.convenient.DisableOrEnableConvenientMerchantDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.BindUserPhoneDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.LoginWithPhoneDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.McsMerchantDTO;
+import com.panzhihua.common.model.dtos.partybuilding.ComPbCheckUserDTO;
+import com.panzhihua.common.service.community.CommunityService;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import com.panzhihua.common.model.dtos.PageDTO;
+import com.panzhihua.common.model.dtos.community.ExportSpecialUserDTO;
+import com.panzhihua.common.model.dtos.community.ExportUserDTO;
+import com.panzhihua.common.model.dtos.community.NoticeReadDTO;
+import com.panzhihua.common.model.dtos.grid.*;
+import com.panzhihua.common.model.dtos.user.*;
+import com.panzhihua.common.model.vos.*;
+import com.panzhihua.common.model.vos.shop.ShopStoreVO;
+import com.panzhihua.common.model.vos.user.*;
+import com.panzhihua.service_user.service.SysUserInputService;
+import com.panzhihua.service_user.service.UserService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 用户
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-24 09:00
+ **/
+@Slf4j
+@RestController("/")
+public class UserApi {
+    @Resource
+    private UserService userService;
+    @Resource
+    private SysUserInputService sysUserInputService;
+
+
+    /**
+     * 新增微信用户
+     *
+     * @param openid
+     *            微信小程序标志
+     * @param sessionKey
+     *            会话密钥
+     * @param unionid
+     *            微信平台唯一ID
+     * @return 新增结果
+     */
+    @PostMapping("/addOrUpdate")
+    public R addOrUpdate(@RequestParam("openid") String openid, @RequestParam("sessionKey") String sessionKey,
+        @RequestParam("unionid") String unionid,@RequestParam("appId")String appId) {
+        return userService.updateInsertUser(openid, sessionKey, unionid,appId);
+    }
+
+    /**
+     * 维护小程序用户基本信息 头像 昵称 性别
+     *
+     * @param userId
+     *            数据库用户ID
+     * @param nickName
+     *            昵称
+     * @param gender
+     *            性别
+     * @param avatarUrl
+     *            头像
+     * @return 维护结果
+     */
+    @PostMapping("/updateUserWeiXinInfo")
+    public R updateUserWeiXinInfo(@RequestParam("userId") Long userId, @RequestParam("nickName") String nickName,
+        @RequestParam("gender") int gender, @RequestParam("avatarUrl") String avatarUrl) {
+        return userService.updateUserWeiXinInfo(userId, nickName, gender, avatarUrl);
+    }
+
+    /**
+     * 维护微信用户手机号
+     *
+     * @param userId
+     *            数据库ID
+     * @param purePhoneNumber
+     *            没有区号的手机号
+     * @return 维护结果
+     */
+    @PostMapping("/updateUserWeiXinPhone")
+    public R updateUserWeiXinPhone(@RequestParam("userId") Long userId,
+        @RequestParam("purePhoneNumber") String purePhoneNumber) {
+        return userService.updateUserWeiXinPhone(userId, purePhoneNumber);
+    }
+
+    /**
+     * 获取平台用户
+     *
+     * @param userName
+     *            登录账户+_type
+     * @return 平台用户信息
+     */
+    @PostMapping("/getUserInfo")
+    public R<LoginUserInfoVO> getUserInfo(@RequestParam("userName") String userName) {
+        int index2 = userName.lastIndexOf("_");
+        String appid=userName.substring(index2+1);
+        String username=userName.substring(0,index2);
+        int index = username.lastIndexOf("_");
+        String type = username.substring(index + 1);
+        String name = username.substring(0, index);
+        return userService.getUserInfo(name, Integer.parseInt(type),appid);
+    }
+
+    /**
+     * 获取平台用户
+     *
+     * @param userId
+     *            用户ID
+     * @return 平台用户信息
+     */
+    @PostMapping("/getUserInfoUserId")
+    public R<LoginUserInfoVO> getUserInfoByUserId(@RequestParam("userId") String userId) {
+        return userService.getUserInfo(userId);
+    }
+
+    /**
+     * 修改用户登录密码
+     *
+     * @param changePasswordVO
+     *            新密码
+     * @return 修改结果
+     */
+    @PostMapping("changepassword")
+    public R changePassword(@RequestBody ChangePasswordVO changePasswordVO) {
+        return userService.changePassword(changePasswordVO);
+    }
+
+    /**
+     * 重置密码
+     *
+     * @param userId
+     *            新密码
+     * @return 修改结果
+     */
+    @GetMapping("resetPassword")
+    public R resetPassword(@RequestParam("userId") Long userId) {
+        return userService.resetPassword(userId);
+    }
+
+    /**
+     * 批量重置密码
+     *
+     * @param userId
+     *            新密码
+     * @return 修改结果
+     */
+    @GetMapping("resetPasswordPatch")
+    public R resetPasswordPatch(@RequestParam("userIds") Long[] userId,@RequestParam("password")String password) {
+        return userService.resetPasswordPatch(userId,password);
+    }
+
+    /**
+     * 某社区后台人员查询
+     *
+     * @param param
+     *            名字
+     * @param communityId
+     *            社区id
+     * @return 人员集合
+     */
+    @PostMapping("listactivitymanager")
+    public R listActivityManager(@RequestParam("param") String param, @RequestParam("communityId") Long communityId) {
+        return userService.listActivityManager(param, communityId);
+    }
+
+    /**
+     * 微心愿搜索社区团队人员列表
+     *
+     * @param param
+     *            请求参数
+     * @param communityId
+     *            社区id
+     * @return 社区团队人员列表
+     */
+    @PostMapping("listactivitymanager2")
+    public R listActivityManager2(@RequestParam("param") String param, @RequestParam("communityId") Long communityId) {
+        return userService.listActivityManager2(param, communityId);
+    }
+
+    /**
+     * 分页查询人脸识别
+     *
+     * @param loginUserInfoVO
+     *            查询参数
+     * @return 分页集合
+     */
+    @PostMapping("pageuserface")
+    public R pageUserFace(@RequestBody LoginUserInfoVO loginUserInfoVO) {
+        return userService.pageUserFace(loginUserInfoVO);
+    }
+
+    /**
+     * 编辑人脸采集数据通过、驳回、删除
+     *
+     * @param loginUserInfoVO
+     *            操作信息
+     * @return 操作结果
+     */
+    @PostMapping("putuserface")
+    public R putUserFace(@RequestBody LoginUserInfoVO loginUserInfoVO) {
+        return userService.putUserFace(loginUserInfoVO);
+    }
+
+    /**
+     * 分页查询人口管理
+     *
+     * @param userInfoVO
+     *            查询参数
+     * @return 分页数据
+     */
+    @PostMapping("pageuser")
+    public R pageUser(@RequestBody AppletUserInfoVO userInfoVO) {
+        return userService.pageUser(userInfoVO);
+    }
+
+    /**
+     * 查询所有人员标签
+     *
+     * @return 标签集合
+     */
+    @PostMapping("listtag")
+    public R listTag() {
+        return userService.listTag();
+    }
+
+    /**
+     * 查询当前社区所有标签以及预设标签
+     *
+     * @return 标签集合
+     */
+    @PostMapping("listtag/getTag")
+    public R listTags() {
+        return userService.listTags();
+    }
+
+    /**
+     * 人员详情
+     *
+     * @param userId
+     *            用户id
+     * @return 人员详情
+     */
+    @PostMapping("detailuser")
+    public R<LoginUserInfoVO> detailUser(@RequestParam("userId") Long userId) {
+        return userService.detailUser(userId);
+//        return userService.getUserInfo(userId+"");
+    }
+
+    /**
+     * 设置用户标签
+     *
+     * @param loginUserInfoVO
+     *            标签信息
+     * @return 设置结果
+     */
+    @PostMapping("putusertag")
+    public R putUserTag(@RequestBody LoginUserInfoVO loginUserInfoVO) {
+        return userService.putUserTag(loginUserInfoVO);
+    }
+
+    /**
+     * 修改用户志愿者状态
+     *
+     * @param phone
+     *            志愿者手机号
+     * @param type
+     *            1是志愿者 0 不是
+     */
+    @PostMapping("putuserisvolunteer")
+    R putUserIsVolunteer(@RequestParam("phone") String phone, @RequestParam("type") int type) {
+        return userService.putUserIsVolunteer(phone, type);
+    }
+
+    /**
+     * 修改用户志愿者状态
+     *
+     * @param userId
+     *            志愿者ID
+     * @param type
+     *            1是志愿者 0 不是
+     */
+    @PostMapping("putuserisvolunteerbyid")
+    R putUserIsVolunteerById(@RequestParam("userId") Long userId, @RequestParam("type") int type) {
+        return userService.putUserIsVolunteerById(userId, type);
+    }
+
+    /**
+     * 用户绑定社区、小区
+     *
+     * @param loginUserInfoVO
+     *            社区小区数据
+     * @return 绑定结果
+     */
+    @PostMapping("putusercommunityarea")
+    R putUserCommunityArea(@RequestBody LoginUserInfoVO loginUserInfoVO) {
+        return userService.putUserCommunityArea(loginUserInfoVO);
+    }
+
+    /**
+     * 用户实名认证
+     *
+     * @param loginUserInfoVO
+     *            认证数据
+     * @return 认证结果
+     */
+    @PostMapping("putuserauthentication")
+    public R putUserAuthentication(@RequestBody LoginUserInfoVO loginUserInfoVO) {
+        return userService.putUserAuthentication(loginUserInfoVO);
+    }
+
+    /**
+     * 修改用户手机号
+     *
+     * @param userPhoneVO
+     *            手机号信息
+     * @return 修改结果
+     */
+    @PostMapping("putuserphone")
+    public R putUserphone(@RequestBody UserPhoneVO userPhoneVO) {
+        return userService.putUserphone(userPhoneVO);
+    }
+
+    /**
+     * 修改用户信息
+     *
+     * @param loginUserInfoVO
+     *            修改内容
+     * @return 修改结果
+     */
+    @PostMapping("putuser")
+    public R putUser(@RequestBody LoginUserInfoVO loginUserInfoVO) {
+        return userService.putUser(loginUserInfoVO);
+    }
+
+    /**
+     * 家庭成员列表
+     *
+     * @param userId
+     *            登录用户
+     * @return 成员集合
+     */
+    @PostMapping("listfamily")
+    public R listFamily(@RequestParam("userId") Long userId, @RequestParam(value = "pageNum") Long pageNum,
+        @RequestParam("pageSize") Long pageSize) {
+        return userService.listFamily(userId, pageNum, pageSize);
+    }
+
+    /**
+     * 新增家庭成员
+     *
+     * @param comMngFamilyInfoVO
+     *            家庭成员基本信息
+     * @return 增加结果
+     */
+    @PostMapping("addFamily")
+    public R addFamily(@RequestBody ComMngFamilyInfoVO comMngFamilyInfoVO) {
+        return userService.addFamily(comMngFamilyInfoVO);
+    }
+
+    /**
+     * 编辑家庭成员
+     *
+     * @param comMngFamilyInfoVO
+     *            家庭成员信息
+     * @return 编辑结果
+     */
+    @PostMapping("putfamily")
+    public R putFamily(@RequestBody ComMngFamilyInfoVO comMngFamilyInfoVO) {
+        return userService.putFamily(comMngFamilyInfoVO);
+    }
+
+    /**
+     * 新增运营、社区后台账户
+     *
+     * @param administratorsUserVO
+     *            账户信息
+     * @return 新增结果
+     */
+    @PostMapping("adduserbackstage")
+    public R addUserBackstage(@RequestBody AdministratorsUserVO administratorsUserVO) {
+
+        return userService.addUserBackstage(administratorsUserVO);
+    }
+
+    /**
+     * 编辑运营、社区后台账户
+     *
+     * @param administratorsUserVO
+     *            编辑账户内容
+     * @return 编辑结果
+     */
+    @PostMapping("putuserbackstage")
+    R putUserBackstage(@RequestBody AdministratorsUserVO administratorsUserVO) {
+        return userService.putUserBackstage(administratorsUserVO);
+    }
+
+    /**
+     * 更新
+     *
+     * @param administratorsUserVO
+     *            编辑账户内容
+     * @return 编辑结果
+     */
+    @PostMapping("updateStreet")
+    R updateStreet(@RequestBody AdministratorsUserVO administratorsUserVO) {
+        return userService.updateStreetId(administratorsUserVO);
+    }
+
+    /**
+     * 新增社区后台物业,社会组织,业主委员会账户
+     *
+     * @param administratorsUserVO
+     *            账户信息
+     * @return 新增结果
+     */
+    @PostMapping("adduserbackstageproperty")
+    public R adduserbackstageproperty(@RequestBody AdministratorsUserVO administratorsUserVO) {
+
+        return userService.addUserBackstageProperty(administratorsUserVO);
+    }
+
+    /**
+     * 删除后台用户
+     *
+     * @param administratorsUserVO
+     *            用户主键
+     * @return 删除结果
+     */
+    @PostMapping("deleteuserbackstage")
+    public R deleteUserBackstage(@RequestBody AdministratorsUserVO administratorsUserVO) {
+        return userService.deleteUserBackstage(administratorsUserVO);
+    }
+
+    /**
+     * 分页查询后台用户
+     *
+     * @param administratorsUserVO
+     *            查询参数
+     * @return 后台用户
+     */
+    @PostMapping("pageuserbackstage")
+    public R pageUserBackstage(@RequestBody AdministratorsUserVO administratorsUserVO) {
+        return userService.pageUserBackstage(administratorsUserVO);
+    }
+
+    /**
+     * 保存操作日志
+     *
+     * @param operlog
+     *            日志内容
+     * @return 保存结果
+     */
+    @PostMapping("addoperlog")
+    public R addOperLog(@RequestBody SysOperLogVO operlog) {
+        return userService.addOperLog(operlog);
+    }
+
+    /**
+     * 分页展示操作日志
+     *
+     * @param sysOperLogVO
+     *            分页参数
+     * @return 分页集合
+     */
+    @PostMapping("pageoperlog")
+    public R pageOperLog(@RequestBody SysOperLogVO sysOperLogVO) {
+        return userService.pageOperLog(sysOperLogVO);
+    }
+
+    /**
+     * 用户协议
+     *
+     * @return 协议集合
+     */
+    @PostMapping("listagreement")
+    public R listAgreement(@RequestParam("communityId") Long communityId) {
+        return userService.listAgreement(communityId);
+    }
+
+    /**
+     * 编辑用户协议
+     *
+     * @param sysUserAgreementVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    @PostMapping("putagreement")
+    public R putAgreement(@RequestBody SysUserAgreementVO sysUserAgreementVO) {
+        return userService.putAgreement(sysUserAgreementVO);
+    }
+
+    /**
+     * 用户标签
+     *
+     * @param communityId
+     *            社区id
+     * @return 标签集合
+     */
+    @PostMapping("listcommngusertag")
+    public R listComMngUserTag(@RequestParam("communityId") Long communityId) {
+        return userService.listComMngUserTag(communityId);
+    }
+
+    /**
+     * 新增删除用户标签
+     *
+     * @param systemmanagementConfigVO
+     *            操作内容
+     * @return 操作结果
+     */
+    @PostMapping("putcommngusertag")
+    public R putComMngUserTag(@RequestBody SystemmanagementConfigVO systemmanagementConfigVO) {
+        return userService.putComMngUserTag(systemmanagementConfigVO);
+    }
+
+    /**
+     * 分页查询小程序用户
+     *
+     * @param pageUserAppletsBackstageDTO
+     *            查询参数
+     * @return 分页集合
+     */
+    @PostMapping("pageuserappletsbackstage")
+    public R pageUserAppletsBackstage(@RequestBody PageUserAppletsBackstageDTO pageUserAppletsBackstageDTO) {
+        return userService.pageUserAppletsBackstage(pageUserAppletsBackstageDTO);
+    }
+
+    /**
+     * 编辑用户状态
+     *
+     * @param pageUserAppletsBackstageDTO
+     *            启用或者禁用 1 启用 2 禁用
+     * @return 编辑结果
+     */
+    @PostMapping("putuserappletsbackstage")
+    public R putUserAppletsBackstage(@RequestBody PageUserAppletsBackstageDTO pageUserAppletsBackstageDTO) {
+        return userService.putUserAppletsBackstage(pageUserAppletsBackstageDTO);
+    }
+
+    /**
+     * 调试接口--清除昵称、社区、小区
+     *
+     * @param userId
+     *            登录用户id
+     * @return 清除结果
+     */
+    @PostMapping("deleteusertest")
+    public R deleteUserTest(@RequestParam("userId") Long userId) {
+        return userService.deleteUserTest(userId);
+    }
+
+    /**
+     * 用户协议和隐私政策
+     *
+     * @param type
+     *            所属app 1居民端app 2网格员端app 3商家端app
+     * @return 协议内容
+     */
+    @PostMapping("useragreement")
+    public R userAgreement(@RequestParam("type") int type,@RequestParam("appid")String appId) {
+        return userService.userAgreement(type,appId);
+    }
+
+    /**
+     * 意见反馈
+     *
+     * @param sysUserFeedbackDTO
+     *            反馈内容
+     * @return 反馈结果
+     */
+    @PostMapping("addfeedback")
+    public R addFeedback(@RequestBody SysUserFeedbackDTO sysUserFeedbackDTO) {
+        return userService.addFeedback(sysUserFeedbackDTO);
+    }
+
+    /**
+     * 分页通知列表
+     *
+     * @param pageDTO
+     *            分页参数
+     * @return 分页结果
+     */
+    @PostMapping("pagenotice")
+    public R pageNotice(@RequestBody PageDTO pageDTO) {
+        return userService.pageNotice(pageDTO);
+    }
+
+    /**
+     * 通知已读
+     *
+     * @param noticeReadDTO
+     *            通知已读
+     * @return 修改状态
+     */
+    @PostMapping("putnotice")
+    public R putNotice(@RequestBody NoticeReadDTO noticeReadDTO) {
+        return userService.putNotice(noticeReadDTO);
+    }
+
+    /**
+     * 分页查询用户意见反馈
+     *
+     * @param pageFeedBackDTO
+     *            分页查询参数
+     * @return 意见集合
+     */
+    @PostMapping("pagefeedback")
+    public R pageFeedback(@RequestBody PageFeedBackDTO pageFeedBackDTO) {
+        return userService.pageFeedback(pageFeedBackDTO);
+    }
+
+    /**
+     * 未读消息汇总
+     *
+     * @param userId
+     *            登录用户信息
+     * @return 未读汇总
+     */
+    @PostMapping("noticeunreadnum")
+    public R noticeUnreadNum(@RequestParam("userId") Long userId) {
+        return userService.noticeUnreadNum(userId);
+    }
+
+    /**
+     * 反馈意见详情
+     *
+     * @param id
+     *            反馈主键
+     * @return 反馈详情
+     */
+    @PostMapping("detailfeedback")
+    public R detailFeedback(@RequestParam("id") Long id) {
+        return userService.detailFeedback(id);
+    }
+
+    /**
+     * 数据看板
+     *
+     * @return 运营后台数据看板
+     */
+    @PostMapping("datakanban")
+    public R dataKanban(@RequestParam("areaCode")String areaCode) {
+        return userService.dataKanban(areaCode);
+    }
+
+    /**
+     * 社区管理后台数据看板
+     *
+     * @param communityId
+     *            社区id
+     * @return 看板用户数据
+     */
+    @PostMapping("indexdatacommunitybackstage")
+    public R indexDataCommunityBackstage(@RequestParam("communityId") Long communityId) {
+        return userService.indexDataCommunityBackstage(communityId);
+    }
+
+    /**
+     * 定时任务维护用户持续登录时间
+     *
+     * @return 维护结果
+     */
+    @PostMapping("timedtaskcontinuouslandingdays")
+    public R timedTaskContinuousLandingDays() {
+        return userService.timedTaskContinuousLandingDays();
+    }
+
+    /**
+     * 新增用户通知
+     *
+     * @param sysUserNoticeVO
+     *            通知内容
+     * @return 新增结果
+     */
+    @PostMapping("addnotice")
+    public R addNotice(@RequestBody SysUserNoticeVO sysUserNoticeVO) {
+        return userService.addNotice(sysUserNoticeVO);
+    }
+
+    /**
+     * 修改用户的党员状态
+     *
+     * @param idCard
+     *            身份证号
+     * @return 修改结果
+     */
+    @PostMapping("updateuserispartymember")
+    public R updateUserIsPartymember(@RequestParam("idCard") String idCard) {
+        return userService.updateUserIsPartymember(idCard);
+    }
+
+    @PostMapping("updateuserispartymemberByPhone")
+    public R updateUserIsPartymemberByPhone(@RequestParam("phone") String phone) {
+        return userService.updateUserIsPartymemberByPhone(phone);
+    }
+
+    /**
+     * 修改用户为非党员状态
+     *
+     * @param idCard
+     *            身份证号
+     * @return 修改结果
+     */
+    @PostMapping("updateusernotpartymember")
+    R updateUserNotPartymember(@RequestParam("idCard") String idCard) {
+        return userService.updateUserNotPartymember(idCard);
+    }
+
+    /**
+     * 获取各种协议
+     *
+     * @param type
+     *            1居民端app协议 2网格员端app协议 3商家端app协议 4隐私政策
+     * @return 协议内容
+     */
+    @PostMapping("agreement")
+    public R agreement(@RequestParam("type") Integer type,@RequestParam("appId")String appId) {
+        return userService.agreement(type,appId);
+    }
+
+    /**
+     * 维护用户最后登录时间
+     *
+     * @param userId
+     *            用户主键
+     * @return 维护结果
+     */
+    @PostMapping("putuserlastlogintime")
+    public R putUserLastLoginTime(@RequestParam("userId") Long userId) {
+        return userService.putUserLastLoginTime(userId);
+    }
+
+    /**
+     * 删除意见反馈
+     *
+     * @param id
+     *            主键
+     * @return 删除结果
+     */
+    @PostMapping("deletefeedback")
+    public R deleteFeedback(@RequestParam("id") Long id) {
+        return userService.deleteFeedback(id);
+    }
+
+    /**
+     * 校验小区是否存在
+     *
+     * @param areaName
+     *            小区名字
+     * @return 校验结果
+     */
+    @PostMapping("checkaereaname")
+    public R checkAereaName(@RequestParam("areaName") String areaName) {
+        return userService.checkAereaName(areaName);
+    }
+
+    /**
+     * 批量导入居民用户
+     *
+     * @param list
+     *            居民用户集合
+     * @param areaName
+     *            小区名字
+     * @return 导入结果
+     */
+    @PostMapping("batchsaveuser")
+    public R batchSaveUser(@RequestBody List<EexcelUserDTO> list, @RequestParam("areaName") StringBuffer areaName) {
+        R r = null;
+        try {
+            r = sysUserInputService.batchSaveUser(list, areaName);
+        } catch (Exception e) {
+            String message = e.getMessage();
+            log.error(message);
+            if (message.contains("unique_id_card")) {
+                int i = message.indexOf("'");
+                String idcard = message.substring(i + 1, message.indexOf("'", i + 1));
+                // System.out.println(idcard);
+                return R.fail("身份证存在重复" + idcard);
+            } else {
+                return R.fail(e.getMessage());
+            }
+        }
+        return r;
+    }
+
+    /**
+     * 社区人员详情包括导入人员
+     *
+     * @param userId
+     *            人员id
+     * @return CommunityUserInfoVO
+     */
+    @PostMapping("detailusercomunity")
+    public R detailUserComunity(@RequestParam("userId") Long userId) {
+        CommunityUserInfoVO communityUserInfoVO;
+        communityUserInfoVO = sysUserInputService.detailUserComunity(userId);
+        if (communityUserInfoVO==null) {
+            communityUserInfoVO = userService.detailUserComunity(userId);
+        }
+        return R.ok(communityUserInfoVO);
+    }
+
+    /**
+     * 用户搜索了就下载搜索的用户否则下载所有用户
+     *
+     * @param exportUserDTO
+     *            用户搜索内容
+     * @return List<EexcelUserDTO> excel内容
+     */
+    @PostMapping("export")
+    public R export(@RequestBody ExportUserDTO exportUserDTO) {
+        return userService.export(exportUserDTO);
+    }
+
+    /**
+     * 通过手机号码查询用户信息
+     *
+     * @param phone
+     * @return
+     */
+    @GetMapping("getUserByPhone")
+    public R getSysUserVOByPhone(@RequestParam(value = "phone") String phone) {
+        return userService.getSysUserVOByPhone(phone);
+    }
+
+    /**
+     * 通过账号和渠道查询用户信息
+     *
+     * @param account
+     * @return
+     */
+    @GetMapping("getUserByAccount")
+    public R getSysUserVOByAccount(@RequestParam(value = "account") String account,
+        @RequestParam(value = "type") Integer type) {
+        return userService.getSysUserVOByAccount(account, type);
+    }
+
+    /**
+     * 分页查询人口管理
+     *
+     * @param pageInputUserDTO
+     *            查询参数
+     * @return 分页数据
+     */
+    @PostMapping("common/data/user/page")
+    public R pageInputUser(@RequestBody PageInputUserDTO pageInputUserDTO) {
+        return sysUserInputService.pageInputUser(pageInputUserDTO);
+    }
+
+    /**
+     * 设置用户标签
+     *
+     * @param inputUserTagsDTO
+     *            标签信息
+     * @return 设置结果
+     */
+    @PostMapping("common/data/user/tags")
+    public R setInputUserTag(@RequestBody InputUserTagsDTO inputUserTagsDTO) {
+        return sysUserInputService.putUserTag(inputUserTagsDTO);
+    }
+
+    /**
+     * 批量导入居民用户
+     *
+     * @param list
+     *            居民用户集合
+     * @param areaName
+     *            小区名字
+     * @return 导入结果
+     */
+    @PostMapping("common/data/user/import")
+    public R batchSaveInputUser(@RequestBody List<EexcelUserDTO> list,
+        @RequestParam("areaName") StringBuffer areaName) {
+        R r = null;
+        try {
+            r = sysUserInputService.batchSaveUser(list, areaName);
+        } catch (Exception e) {
+            String message = e.getMessage();
+            log.error(message);
+            if (message.contains("unique_id_card")) {
+                int i = message.indexOf("'");
+                String idcard = message.substring(i + 1, message.indexOf("'", i + 1));
+                // System.out.println(idcard);
+                return R.fail("身份证存在重复" + idcard);
+            } else {
+                return R.fail(e.getMessage());
+            }
+        }
+        return r;
+    }
+
+    /**
+     * 居民管理》居民详情
+     *
+     * @param id
+     *            人员id
+     * @return CommunityUserInfoVO
+     */
+    @PostMapping("common/data/user/detail")
+    public R inputUserDetail(@RequestParam("id") Long id) {
+        return sysUserInputService.inputUserDetail(id);
+    }
+
+    /**
+     * 用户搜索了就下载搜索的用户否则下载所有用户
+     *
+     * @param exportUserDTO
+     *            用户搜索内容
+     * @return List<EexcelUserDTO> excel内容
+     */
+    @PostMapping("common/data/user/export")
+    public R inputUserExport(@RequestBody ExportUserDTO exportUserDTO) {
+        return sysUserInputService.exportInputUser(exportUserDTO);
+    }
+
+    /**
+     * 特殊群体
+     *
+     * @param pageInputUserDTO
+     * @return
+     */
+    @PostMapping("common/data/special/page")
+    R specialInputUser(@RequestBody PageInputUserDTO pageInputUserDTO) {
+        return sysUserInputService.specialInputUser(pageInputUserDTO);
+    }
+
+    /**
+     * 特殊群体
+     *
+     * @param id
+     * @return
+     */
+    @DeleteMapping("common/data/special/delete")
+    R deleteSpecialInputUser(@RequestParam(value = "id") Long id) {
+        return sysUserInputService.deleteSpecialInputUser(id);
+    }
+
+    /**
+     * 特殊群体标签列表
+     *
+     * @param comMngUserTagDTO
+     * @return
+     */
+    @PostMapping("common/data/special/tags/page")
+    R specialInputUserTags(@RequestBody ComMngUserTagDTO comMngUserTagDTO) {
+        return sysUserInputService.specialInputUserTags(comMngUserTagDTO);
+    }
+
+    /**
+     * 新增或修改特殊群体标签
+     *
+     * @param comMngTagVO
+     * @return
+     */
+    @PostMapping("common/data/special/tags/save")
+    R saveSpecialInputUserTags(@RequestBody ComMngTagVO comMngTagVO) {
+        return sysUserInputService.saveSpecialInputUserTags(comMngTagVO);
+    }
+
+    /**
+     * 删除特殊群体标签
+     *
+     * @param id
+     * @return
+     */
+    @DeleteMapping("common/data/special/tags/delete")
+    R deleteSpecialInputUserTags(@RequestParam(value = "id") Long id) {
+        return sysUserInputService.deleteSpecialInputUserTags(id);
+    }
+
+    /**
+     * 特殊群体导出
+     *
+     * @param exportSpecialUserDTO
+     * @return
+     */
+    @PostMapping("common/data/special/export")
+    R specialUserExport(@RequestBody ExportSpecialUserDTO exportSpecialUserDTO) {
+        return sysUserInputService.specialUserExport(exportSpecialUserDTO);
+    }
+
+    /**
+     * 创建SysUser用户信息以及权限
+     *
+     * @param storeVO
+     *            请求参数
+     * @return 创建结果
+     */
+    @PostMapping("addSysUser")
+    public R addSysUser(@RequestBody ShopStoreVO storeVO) {
+        return userService.addSysUser(storeVO);
+    }
+
+    /**
+     * 修改SysUser用户信息
+     *
+     * @param storeVO
+     *            请求参数
+     * @return 修改结果
+     */
+    @PostMapping("editSysUser")
+    public R editSysUser(@RequestBody ShopStoreVO storeVO) {
+        return userService.editSysUser(storeVO);
+    }
+
+    /**
+     * 修改用户小程序首页活动提示
+     *
+     * @param userEditTipsDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    @PostMapping("editUserTips")
+    public R editUserTips(@RequestBody SysUserEditTipsDTO userEditTipsDTO) {
+        return userService.editUserTips(userEditTipsDTO);
+    }
+
+    /**
+     * 获取用户电子档案
+     *
+     * @param userId
+     *            家庭成员信息
+     * @return 结果
+     */
+    @GetMapping("getUserArchives")
+    public R getUserArchives(@RequestParam("userId") Long userId) {
+        return userService.getUserArchives(userId);
+    }
+
+    /**
+     * 编辑用户电子档案
+     *
+     * @param userArchivesVO
+     *            编辑的信息
+     * @return 编辑结果
+     */
+    @PostMapping("updateUserArchives")
+    public R updateUserArchives(@RequestBody UpdateUserArchivesVO userArchivesVO) {
+        return userService.updateUserArchives(userArchivesVO);
+    }
+
+    /**
+     * 修改app用户密码
+     *
+     * @param userInfoAppDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    @PutMapping("updateUserPassByApp")
+    public R updateUserPassByApp(@RequestBody EditUserInfoPassAppDTO userInfoAppDTO) {
+        return userService.updateUserPassByApp(userInfoAppDTO);
+    }
+
+    /**
+     * 添加网格员
+     *
+     * @param eventGridMemberAddDTO
+     *            请求参数
+     * @return 结果
+     */
+    @PostMapping("addGridUser")
+    R addGridUser(@RequestBody EventGridMemberAddDTO eventGridMemberAddDTO) {
+        return userService.addGridUser(eventGridMemberAddDTO);
+    }
+
+    /**
+     * 网格员管理
+     *
+     * @param memberRelationDTO
+     *            请求参数
+     * @return 网格员列表
+     */
+    @PostMapping("member/list")
+    public R getGridMemberList(@RequestBody PageEventGridMemberRelationDTO memberRelationDTO) {
+        return userService.getGridMemberList(memberRelationDTO);
+    }
+
+    /**
+     * 修改网格员信息
+     *
+     * @param gridMemberDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    @PostMapping("editGridUser")
+    public R gridMemberEdit(@RequestBody EventGridMemberEditAdminDTO gridMemberDTO) {
+        return userService.editGridUser(gridMemberDTO);
+    }
+
+    /**
+     * 重置网格员密码
+     *
+     * @param gridMemberDTO
+     *            请求参数
+     * @return 重置结果
+     */
+    @PostMapping("passResetUser")
+    public R passResetUser(@RequestBody EventGridMemberPassResetDTO gridMemberDTO) {
+        return userService.passResetUser(gridMemberDTO);
+    }
+
+    /**
+     * 批量删除网格员
+     *
+     * @param Ids
+     *            网格员id集合
+     * @return 删除结果
+     */
+    @PostMapping("deleteMembers")
+    public R deleteMembers(@RequestBody List<Long> Ids) {
+        return userService.deleteMembers(Ids);
+    }
+
+    @PostMapping("gridMemberEditStatus")
+    public R gridMemberEditStatus(@RequestBody EventGridMemberEditStatusDTO gridMemberEditDTO) {
+        return userService.gridMemberEditStatus(gridMemberEditDTO);
+    }
+
+    @GetMapping("big/no/tip")
+    public R noTips(@RequestParam("userId") Long userId) {
+        return userService.noTips(userId);
+    }
+
+    /**
+     * 查询社区的收益说明
+     *
+     * @param communityId
+     *            社区id
+     * @return 收益说明
+     */
+    @PostMapping("listagreements")
+    public R listAgreements(@RequestParam("communityId") Long communityId) {
+        return userService.listAgreements(communityId);
+    }
+
+    @PostMapping("user/getUserGrids")
+    public R getGridIsOk(@RequestParam("userId") Long userId) {
+        return userService.getGridIsOk(userId);
+    }
+
+    @GetMapping("getGridsMemberList")
+    public R getGridsMemberList(@RequestParam("communityId") Long communityId) {
+        return userService.getGridsMemberList(communityId);
+    }
+
+    /**
+     * 根据用户id查询用户openid
+     *
+     * @param userId
+     *            用户id
+     * @return openid
+     */
+    @GetMapping("getUserOpenId")
+    public R getUserOpenId(@RequestParam("userId") Long userId) {
+        return userService.getUserOpenId(userId);
+    }
+
+    /**
+     * 查询社区后台工作人员列表
+     *
+     * @param communityId
+     *            社区id
+     * @return 社区后台工作人员列表
+     */
+    @GetMapping("getUserListByCommunityId")
+    public R getUserListByCommunityId(@RequestParam("communityId") Long communityId) {
+        return userService.getUserListByCommunityId(communityId);
+    }
+
+    /**
+     * 检查当前用户是否是社区工作人员
+     * @param phone
+     * @param communityId
+     * @return
+     */
+    @GetMapping("checkIsTeam")
+    public R checkCurrentUserIsTeam(String phone, Long communityId) {
+        return userService.checkCurrentUserIsTeam(phone, communityId);
+    }
+
+    /**
+     * 便民服务新增商家账号
+     * @param convenientMerchantDTO
+     * @return 商家用户id
+     */
+    @PostMapping("insertMerchantAccount")
+    public R addConvenientMerchantUser(@RequestBody ConvenientMerchantDTO convenientMerchantDTO) {
+        return userService.addConvenientMerchantUser(convenientMerchantDTO);
+    }
+
+    /**
+     * 修改便民服务商家绑定账号
+     * @param userId 用户id
+     * @param account 修改账户
+     * @return 修改结果
+     */
+    @PutMapping("putMerchantUserAccount")
+    public R putUserAccount(@RequestParam("userId") Long userId, @RequestParam("account") String account) {
+        return userService.putUserAccount(userId, account);
+    }
+
+    /**
+     * 禁用/启用便民服务商家用户
+     * @param disableOrEnableConvenientMerchantDTO
+     * @return
+     */
+    @PutMapping("disableOrEnableMerchantUsers")
+    public R disableOrEnableMerchantUsers(@RequestBody DisableOrEnableConvenientMerchantDTO disableOrEnableConvenientMerchantDTO) {
+        return userService.disableOrEnableMerchantUsers(disableOrEnableConvenientMerchantDTO);
+    }
+
+    /**
+     * 根据openid维护社区团队里是否注册
+     * @param openid    用户微信唯一标识
+     */
+    @PostMapping("judgeCommunityTeam")
+    public void judgeCommunityTeam(@RequestParam("openid") String openid) {
+        userService.judgeCommunityTeam(openid);
+    }
+
+    /**
+     * 数据看板升级版
+     *
+     * @return 运营后台数据看板升级版
+     */
+    @PostMapping("datakanbans")
+    public R dataKanBans(@RequestBody DataKanBansDto dataKanBansDto) {
+        return userService.dataKanBans(dataKanBansDto);
+    }
+
+    /**
+     * 运营后台-用户数据统计汇总
+     * @return  用户数据统计汇总
+     */
+    @GetMapping("community/statistics")
+    public R communityStatistics(@RequestParam("areaCode") String areaCode) {
+        return userService.communityStatistics(areaCode);
+    }
+
+    @GetMapping("community/statistics/export")
+    public R communityStatisticsExport(@RequestParam("areaCode") String areaCode) {
+        return userService.communityStatisticsExport(areaCode);
+    }
+
+    /**
+     * 通过UnionId获取用户信息
+     * @param unionId
+     * @return
+     */
+    @GetMapping("/getByUnionId")
+    public R getUserInfoByUnionId(@RequestParam("unionId") String unionId) {
+        return userService.getUserInfoByUnionId(unionId);
+    }
+
+    /**
+     * 微商业街新增商家账号
+     * @param mcsMerchantDTO
+     * @return 商家用户id
+     */
+    @PostMapping("insertMcsMerchantAccount")
+    public R addMcsMerchantUser(@RequestBody McsMerchantDTO mcsMerchantDTO) {
+        return userService.addMcsMerchantUser(mcsMerchantDTO);
+    }
+
+    /**
+     * 微商业街修改商家账号
+     * @param mcsMerchantDTO
+     * @return
+     */
+    @PutMapping("putMcsMerchantUser")
+    public R putMcsMerchantUser(@RequestBody McsMerchantDTO mcsMerchantDTO) {
+        return userService.putMcsMerchantUser(mcsMerchantDTO);
+    }
+
+    /**
+     * 检查用户是否有效
+     * @param userId
+     * @param type
+     * @return
+     */
+    @PutMapping("checkUserIsValid")
+    public Boolean checkUserIsValid(@RequestParam("userId") Long userId, @RequestParam("type") Integer type) {
+        return userService.checkUserIsValid(userId, type);
+    }
+
+    /**
+     * 根据手机号、用户类型查询用户
+     * @param phone
+     * @param type
+     * @return
+     */
+    @GetMapping("/getSysUserByPhone")
+    public R getSysUserByPhone(@RequestParam("phone") String phone, @RequestParam("type") Integer type) {
+        return userService.getSysUserByPhone(phone, type);
+    }
+
+    /**
+     * 发送验证码
+     * @param phone 手机号
+     * @param clientIP 用户ip
+     * @param prefixKey redis Key 前缀
+     * @param limit 获取次数限制
+     * @param timeout 超次数获取时间等待
+     * @return
+     */
+    @GetMapping("/sendMessageCode")
+    public R sendMessageCode(@RequestParam("phone") String phone,
+                                     @RequestParam(value = "clientIP", required = false) String clientIP,
+                                     @RequestParam("prefixKey") String prefixKey,
+                                     @RequestParam("limit") Integer limit,
+                                     @RequestParam("timeout") Integer timeout) {
+        return userService.sendMessageCode(phone, clientIP, prefixKey, limit, timeout);
+    }
+
+    /**
+     * 根据openId获取微商业街用户
+     * @param openid
+     * @return
+     */
+    @GetMapping("/getMcsUserByOpenId")
+    public R getMcsUserByOpenId(@RequestParam("openid") String openid) {
+        return userService.getMcsUserByOpenId(openid);
+    }
+
+    /**
+     * 商业街用户微信授权-绑定手机号
+     * @param bindUserPhoneDTO
+     * @return
+     */
+    @PostMapping("/mcs/bindPhone")
+    public R bindOrAddMcsUser(@RequestBody BindUserPhoneDTO bindUserPhoneDTO) {
+        return userService.bindOrAddMcsUser(bindUserPhoneDTO);
+    }
+
+    /**
+     * 删除用户信息缓存
+     * @param phone
+     */
+    @DeleteMapping("/deleteUserCashByPhone")
+    public R deleteUserCashByPhone(@RequestParam("phone") String phone) {
+        return userService.deleteUserCashByPhone(phone);
+    }
+
+    @PostMapping("/update/user/party/status")
+    public R updateUserPartyStatus(@RequestParam("userId") Long userId) {
+        return userService.updateUserPartyStatus(userId);
+    }
+
+    @PostMapping("/uuLogin")
+    public R uuLogin(@RequestBody UuLoginVO uuLoginVO){
+        return userService.uuLogin(uuLoginVO);
+    }
+
+
+    /**
+     * 数据看板:数据总览
+     * @return
+     */
+    @GetMapping("/indexData/totalData")
+    public R indexData(@RequestParam(value = "type",required = false) Integer type,
+                       @RequestParam(value = "streetId",required = false) Long streetId,
+                       @RequestParam(value = "areaCode",required = false) Long areaCode,@RequestParam("appId")String appId){
+        return userService.newIndexData(type,streetId,areaCode,appId);
+    }
+
+    /**
+     * 数据看板:用户占比
+     * @return
+     */
+    @GetMapping("/indexData/userRate")
+    public R userRate(@RequestParam(value = "type",required = false) Integer type,
+                          @RequestParam(value = "streetId",required = false) Long streetId,
+                          @RequestParam(value = "areaCode",required = false) Long areaCode,
+                      @RequestParam(value = "range",required = false) Integer range,@RequestParam("appId")String appId){
+        return userService.userRate(type,streetId,areaCode,range,appId);
+    }
+
+    /**
+     * 数据看板:真实用户统计
+     * @return
+     */
+    @GetMapping("/indexData/realUser")
+    public R realUser(@RequestParam(value = "type",required = false) Integer type,
+                      @RequestParam(value = "streetId",required = false) Long streetId,
+                      @RequestParam(value = "areaCode",required = false) Long areaCode,
+                      @RequestParam(value = "range",required = false) Integer range,@RequestParam(value = "appId",required = false)String appId){
+        return userService.realUser(type,streetId,areaCode,range,appId);
+    }
+
+
+    @GetMapping("/indexData/userActivity")
+    public R userActivity(@RequestParam(value = "type",required = false) Integer type,
+                          @RequestParam(value = "streetId",required = false) Long streetId,
+                          @RequestParam(value = "areaCode",required = false) Long areaCode,
+                          @RequestParam(value = "range",required = false) Integer range,
+                          @RequestParam(value = "appId",required = false) String appId){
+        return userService.userActivity(type,streetId,areaCode,range, appId);
+    }
+
+
+    /**
+     *导出验证密码
+     */
+    @GetMapping("/checkExport")
+    public R checkExport(@RequestParam("account")String account,@RequestParam("password")String password,@RequestParam("oldPassword")String oldPassword){
+        return userService.checkExport(account,password,oldPassword);
+    }
+
+    /**
+     * uu洗车推送
+     * @param washPhone
+     * @param phone
+     * @param washName
+     * @param orderStatus
+     * @return
+     */
+    @GetMapping("/uuPush")
+    public R uuPush(@RequestParam(value = "washPhone",required = false)String washPhone,@RequestParam("phone")String phone,@RequestParam(value = "washName",required = false)String washName,@RequestParam("orderStatus")Integer orderStatus){
+        return userService.uuPush(washPhone,phone,washName,orderStatus);
+    }
+
+    /**
+     * 无水洗车推送
+     * @param washPhone
+     * @param phone
+     * @param washName
+     * @param orderStatus
+     * @return
+     */
+    @GetMapping("/wsPush")
+    public R wsPush(@RequestParam(value = "washPhone",required = false)String washPhone,@RequestParam("phone")String phone,@RequestParam(value = "washName",required = false)String washName,@RequestParam("orderStatus")Integer orderStatus){
+        return userService.wsPush(washPhone,phone,washName,orderStatus);
+    }
+
+    @GetMapping("/indexData/getAreaAndStreet")
+    public R getAreaAndStreet(){
+        return userService.getAreaAndStreet();
+    }
+
+    @GetMapping("/communityList")
+    public R getCommunityList(@RequestParam("name") String name, @RequestParam(value = "id",required = false) Long id){
+        return userService.getCommunityList(name,id);
+    }
+
+    @GetMapping("/getAllCommunityList")
+    public R getAllCommunityList(){
+        return userService.getAllCommunityList();
+    }
+
+    @GetMapping("/resetPasswordAccount")
+    public R resetPasswordAccount(@RequestParam("type")Integer type,@RequestParam("account")String account,@RequestParam("appId")String appId){
+        return userService.resetPassword(type,account,appId);
+    }
+
+    @PostMapping("/tfLogin")
+    public R tfLogin(@RequestBody UuLoginVO uuLoginVO){
+        return userService.tfLogin(uuLoginVO);
+    }
+
+    /**
+     * 三说会堂新增业务中心或专家账号
+     * */
+    @PostMapping("/sanshuoAddUser")
+    public R sanshuoAddUser(@RequestBody AdministratorsUserVO administratorsUserVO){
+        return userService.addExpertOrIndustryCenter(administratorsUserVO);
+    }
+
+    /**
+     * 三说会堂后台重置密码
+     * */
+    @GetMapping("/sanshuoResetPassword")
+    public R sanshuoAddUser(@RequestParam("account") String account,@RequestParam("pass")String password){
+        return userService.resetPassExpertOrIndustryCenter(account,password);
+    }
+
+    /**
+     * 移除账号专家权限
+     *
+     */
+    @GetMapping("/removeExpertRole")
+    public R removeExpertRole(@RequestParam(value = "phone",required = false)String phone){
+        return userService.removeExpertRole(phone);
+    }
+
+    @GetMapping("/accept")
+    public R accept(@RequestParam("userId")Long userId){
+        return userService.accept(userId);
+    }
+
+    @PostMapping("/addComPbCheckUser")
+    public R addComPbCheckUser(@RequestBody ComPbCheckUserDTO comPbCheckUserDTO){
+        return userService.addComPbCheckUser(comPbCheckUserDTO);
+    }
+
+    @PostMapping("/feedBackReply")
+    public R feedBackReply(@RequestBody SysUserFeedbackVO sysUserFeedbackVO){
+        return userService.feedBackReply(sysUserFeedbackVO);
+    }
+
+    @GetMapping("/myFeedBack")
+    public R myFeedBack(@RequestParam("userId")Long id,@RequestParam(value = "type",required = false)Integer type,@RequestParam("propertyId")Long propertyId){
+        return userService.myFeedBack(id,type,propertyId);
+    }
+
+    @GetMapping("/propertyCheck")
+    public R propertyCheck(@RequestParam String phone){
+        return userService.propertyCheck(phone);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/config/MyMetaObjectHandler.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/config/MyMetaObjectHandler.java
new file mode 100644
index 0000000..a1c6428
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/config/MyMetaObjectHandler.java
@@ -0,0 +1,41 @@
+package com.panzhihua.service_user.config;
+
+import java.util.Date;
+
+import org.apache.ibatis.reflection.MetaObject;
+import org.springframework.stereotype.Component;
+
+import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 自动填充
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-11 14:23
+ **/
+@Slf4j
+@Component
+public class MyMetaObjectHandler implements MetaObjectHandler {
+    @Override
+    public void insertFill(MetaObject metaObject) {
+        log.info("start insert fill ....");
+        // this.strictInsertFill(metaObject, "createTime", Date.class, new Date()); // 起始版本 3.3.0(推荐使用)
+        // 或者
+        this.strictInsertFill(metaObject, "createAt", () -> new Date(), Date.class); // 起始版本 3.3.3(推荐)
+        this.strictInsertFill(metaObject, "updateAt", () -> new Date(), Date.class); // 起始版本 3.3.3(推荐)
+        // 或者
+        // this.fillStrategy(metaObject, "createTime", LocalDateTime.now()); // 也可以使用(3.3.0 该方法有bug)
+    }
+
+    @Override
+    public void updateFill(MetaObject metaObject) {
+        log.info("start update fill ....");
+        // this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); // 起始版本 3.3.0(推荐)
+        // 或者
+        this.strictUpdateFill(metaObject, "updateAt", () -> new Date(), Date.class); // 起始版本 3.3.3(推荐)
+        // 或者
+        // this.fillStrategy(metaObject, "updateTime", LocalDateTime.now()); // 也可以使用(3.3.0 该方法有bug)
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/config/MybatisPlusConfig.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/config/MybatisPlusConfig.java
new file mode 100644
index 0000000..7000a8f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/config/MybatisPlusConfig.java
@@ -0,0 +1,35 @@
+package com.panzhihua.service_user.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 分页
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-30 16:26
+ **/
+@Configuration
+public class MybatisPlusConfig {
+
+    /**
+     * 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)
+     */
+    @Bean
+    public MybatisPlusInterceptor mybatisPlusInterceptor() {
+        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2));
+        return interceptor;
+    }
+
+    @Bean
+    public ConfigurationCustomizer configurationCustomizer() {
+        return configuration -> configuration.setUseDeprecatedExecutor(false);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/config/ParamOutAspect.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/config/ParamOutAspect.java
new file mode 100644
index 0000000..9eacc10
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/config/ParamOutAspect.java
@@ -0,0 +1,128 @@
+package com.panzhihua.service_user.config;
+
+import java.lang.reflect.Method;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.IntStream;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Pointcut;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.springframework.core.LocalVariableTableParameterNameDiscoverer;
+import org.springframework.util.ObjectUtils;
+
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.utlis.DateUtils;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 应用模块名称
+ * <p>
+ * 代码描述
+ * <p>
+ * 拦截controller,输出入参、响应内容和响应时间 Copyright: Copyright (C) 2021 XXX, Inc. All rights reserved.
+ * <p>
+ * Company: 成都呐喊信息技术有限公司
+ * <p>
+ *
+ * @author manailin
+ * @since 2021/8/24 15:30
+ */
+@Slf4j
+// @Aspect
+// @Component
+public class ParamOutAspect {
+
+    /**
+     * 设定方法的执行时间限制毫秒数
+     */
+    private long maxReduceTime = 2000;
+
+    @Pointcut("execution (public * com.panzhihua.service_user.api..* (..))||execution (public * com.panzhihua.service_user.service..* (..))")
+    public void aspect() {}
+
+    /**
+     * [方法描述] 环绕通知,拦截controller,输出请求参数、响应内容和响应时间
+     * 
+     * @param joinPoint aspect()
+     * @return java.lang.Object
+     * @author manailin
+     * @date 2021/8/24 17:04
+     */
+    @Around("aspect()")
+    public Object processLog(ProceedingJoinPoint joinPoint) {
+        log.info("进入方法性能检查方法");
+        Method method = ((MethodSignature)joinPoint.getSignature()).getMethod();
+        String className = joinPoint.getSignature().getDeclaringTypeName();
+        // 获取方法名称
+        String methodName = method.getName();
+        // 获取参数名称
+        LocalVariableTableParameterNameDiscoverer paramNames = new LocalVariableTableParameterNameDiscoverer();
+        String[] params = paramNames.getParameterNames(method);
+        // 获取参数
+        Object[] args = joinPoint.getArgs();
+        // 过滤掉request和response,不能序列化
+        List<Object> filteredArgs = Arrays.stream(args)
+            .filter(arg -> (!(arg instanceof HttpServletRequest) && !(arg instanceof HttpServletResponse)))
+            .collect(Collectors.toList());
+        JSONObject rqsJson = new JSONObject();
+        rqsJson.put("rqsMethod", methodName);
+        rqsJson.put("rqsTime", DateUtils.getCurrentDateStr_MS());
+        if (ObjectUtils.isEmpty(filteredArgs)) {
+            rqsJson.put("rqsParams", null);
+        } else {
+            // 拼接请求参数
+            Map<String, Object> rqsParams = IntStream.range(0, filteredArgs.size()).boxed()
+                .collect(Collectors.toMap(j -> params[j], j -> filteredArgs.get(j)));
+            rqsJson.put("rqsParams", rqsParams);
+        }
+        log.info(className + ":" + methodName + "请求信息为:" + rqsJson.toJSONString());
+        Object resObj = null;
+        long startTime = System.currentTimeMillis();
+        try {
+            // 执行原方法
+            resObj = joinPoint.proceed();
+        } catch (Throwable e) {
+            log.error(className + ":" + methodName + "方法执行异常!", e);
+        }
+        long endTime = System.currentTimeMillis();
+        // 打印耗时的信息
+        this.printExecTime(className + ":" + methodName, startTime, endTime);
+        if (resObj != null) {
+            // 打印返回消息
+            log.info(className + ":" + methodName + "响应信息为:" + JSONObject.toJSON(resObj));
+            return resObj;
+        } else {
+            return R.ok();
+        }
+    }
+
+    /**
+     * [方法描述] 打印方法执行耗时的信息,如果超过了一定的时间,才打印
+     * 
+     * @param classAndMethodName
+     *            执行方法名
+     * @param startTime
+     *            执行开始时间
+     * @param endTime
+     *            执行结束时间
+     * @author manailin
+     * @date 2021/8/24 17:05
+     */
+    private void printExecTime(String classAndMethodName, long startTime, long endTime) {
+        long diffTime = endTime - startTime;
+        if (diffTime > maxReduceTime) {
+            log.info(classAndMethodName + " 方法执行耗时:" + diffTime + " ms");
+        }
+        // TODO 可以集成redis,将每个controller的执行时间追加到redis中,再用定时每周一次同步到库中
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/ComActFourMemberDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/ComActFourMemberDao.java
new file mode 100644
index 0000000..2e597ec
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/ComActFourMemberDao.java
@@ -0,0 +1,21 @@
+package com.panzhihua.service_user.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.property.CommonPage;
+import com.panzhihua.common.model.vos.community.ComActFourMemberVO;
+import com.panzhihua.service_user.model.dos.ComActFourMember;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * (ComActFourMember)表数据库访问层
+ *
+ * @author makejava
+ * @since 2021-09-23 10:13:30
+ */
+@Mapper
+public interface ComActFourMemberDao extends BaseMapper<ComActFourMember> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/ComMngFamilyInfoDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/ComMngFamilyInfoDAO.java
new file mode 100644
index 0000000..12c707a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/ComMngFamilyInfoDAO.java
@@ -0,0 +1,15 @@
+package com.panzhihua.service_user.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_user.model.dos.ComMngFamilyInfoDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 家庭
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-14 16:52
+ **/
+@Mapper
+public interface ComMngFamilyInfoDAO extends BaseMapper<ComMngFamilyInfoDO> {}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/ComMngStructHouseDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/ComMngStructHouseDAO.java
new file mode 100644
index 0000000..0eba752
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/ComMngStructHouseDAO.java
@@ -0,0 +1,15 @@
+package com.panzhihua.service_user.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_user.model.dos.ComMngStructHouseDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 房屋用户关系
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-14 17:13
+ **/
+@Mapper
+public interface ComMngStructHouseDAO extends BaseMapper<ComMngStructHouseDO> {}
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
new file mode 100644
index 0000000..af8d2a8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/ComMngUserTagDAO.java
@@ -0,0 +1,38 @@
+package com.panzhihua.service_user.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.user.ComMngUserTagDTO;
+import com.panzhihua.common.model.vos.user.ComMngTagVO;
+import com.panzhihua.service_user.model.dos.ComMngUserTagDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 工作类型
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-14 17:26
+ **/
+@Mapper
+public interface ComMngUserTagDAO extends BaseMapper<ComMngUserTagDO> {
+    /**
+     * 标签查询
+     *
+     * @param page
+     * @param comMngUserTagDTO
+     * @return
+     */
+    IPage<ComMngTagVO> pageSpecialInputUserTags(Page page,
+        @Param(value = "comMngUserTagDTO") ComMngUserTagDTO comMngUserTagDTO);
+
+    /**
+     * 标签查询
+     *
+     * @param comMngTagVO
+     * @return
+     */
+    ComMngUserTagDO getSpecialInputUserTagsByVO(@Param(value = "comMngTagVO") ComMngTagVO comMngTagVO);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/EventGridMemberBuildingRelationMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/EventGridMemberBuildingRelationMapper.java
new file mode 100644
index 0000000..7dd45f5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/EventGridMemberBuildingRelationMapper.java
@@ -0,0 +1,22 @@
+package com.panzhihua.service_user.dao;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.common.model.vos.grid.admin.GridMemberBuildingVO;
+import com.panzhihua.service_user.model.dos.EventGridMemberBuildingRelationDO;
+
+/**
+ * @auther lyq
+ * @create 2021-07-02 15:45:40
+ * @describe 网格员与楼栋关联表mapper类
+ */
+@Mapper
+public interface EventGridMemberBuildingRelationMapper extends BaseMapper<EventGridMemberBuildingRelationDO> {
+
+    List<GridMemberBuildingVO> getGridMemberBuildingRelation(@Param("gridMemberId") Long gridMemberId);
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/LcCompareMemberCodeMapper.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/LcCompareMemberCodeMapper.java
new file mode 100644
index 0000000..4657c53
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/LcCompareMemberCodeMapper.java
@@ -0,0 +1,16 @@
+package com.panzhihua.service_user.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_user.model.dos.LcCompareCodeMemberDO;
+
+/**
+ * program 攀枝花智慧社区项目 description 本地网格和浪潮的对码表管理API
+ *
+ * @author manailin Date 2021-01-22 15:30
+ **/
+@Mapper
+public interface LcCompareMemberCodeMapper extends BaseMapper<LcCompareCodeMemberDO> {
+
+}
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
new file mode 100644
index 0000000..b3fef7d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/RoleDAO.java
@@ -0,0 +1,34 @@
+package com.panzhihua.service_user.dao;
+
+import java.util.List;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.common.model.vos.MenuVO;
+import com.panzhihua.service_user.model.dos.SysRoleDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 角色
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-24 16:34
+ **/
+@Mapper
+public interface RoleDAO extends BaseMapper<SysRoleDO> {
+
+    List<SysRoleDO> selectByUserId(Long userId);
+
+
+    List<MenuVO> selectAllMenuUrl();
+
+
+    List<String> selectRoles(String username);
+
+
+    Long selectMaxRole(Long communityId);
+
+
+    void deleteByRoleKey(@RequestParam("roleKey") String roleKey);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysAppConfigDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysAppConfigDao.java
new file mode 100644
index 0000000..828f1f7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysAppConfigDao.java
@@ -0,0 +1,16 @@
+package com.panzhihua.service_user.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_user.entity.SysAppConfig;
+
+/**
+ * (SysAppConfig)表数据库访问层
+ *
+ * @author makejava
+ * @since 2022-01-13 10:10:18
+ */
+@Mapper
+public interface SysAppConfigDao extends BaseMapper<SysAppConfig> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysMenuDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysMenuDAO.java
new file mode 100644
index 0000000..cf8045e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysMenuDAO.java
@@ -0,0 +1,15 @@
+package com.panzhihua.service_user.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_user.model.dos.SysMenuDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 菜单
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-24 16:55
+ **/
+@Mapper
+public interface SysMenuDAO extends BaseMapper<SysMenuDO> {}
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
new file mode 100644
index 0000000..c5814ab
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysOperLogDAO.java
@@ -0,0 +1,22 @@
+package com.panzhihua.service_user.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.vos.user.SysOperLogVO;
+import com.panzhihua.service_user.model.dos.SysOperLogDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 操作日志
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-25 10:37
+ **/
+@Mapper
+public interface SysOperLogDAO extends BaseMapper<SysOperLogDO> {
+
+    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/SysRoleMenuDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysRoleMenuDAO.java
new file mode 100644
index 0000000..1da2760
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysRoleMenuDAO.java
@@ -0,0 +1,26 @@
+package com.panzhihua.service_user.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_user.model.dos.SysRoleMenuDO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 角色菜单关系
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-25 09:51
+ **/
+@Mapper
+public interface SysRoleMenuDAO extends BaseMapper<SysRoleMenuDO> {
+    /**
+     * 批量插入角色菜单关系
+     * @param menuIds
+     * @param roleId
+     * @return
+     */
+    int batchInsertWithRoleId(@Param("menuIds") List<Long> menuIds, @Param("roleId") Long roleId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysTemplateConfigDao.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysTemplateConfigDao.java
new file mode 100644
index 0000000..f51577c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysTemplateConfigDao.java
@@ -0,0 +1,16 @@
+package com.panzhihua.service_user.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+import com.panzhihua.service_user.entity.SysTemplateConfig;
+
+/**
+ * (SysTemplateConfig)表数据库访问层
+ *
+ * @author makejava
+ * @since 2022-01-13 14:29:55
+ */
+@Mapper
+public interface SysTemplateConfigDao extends BaseMapper<SysTemplateConfig> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysUserAgreementDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysUserAgreementDAO.java
new file mode 100644
index 0000000..28f3e7d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysUserAgreementDAO.java
@@ -0,0 +1,15 @@
+package com.panzhihua.service_user.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_user.model.dos.SysUserAgreementDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 用户协议
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-25 15:52
+ **/
+@Mapper
+public interface SysUserAgreementDAO extends BaseMapper<SysUserAgreementDO> {}
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
new file mode 100644
index 0000000..cda5c2e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysUserFeedbackDAO.java
@@ -0,0 +1,28 @@
+package com.panzhihua.service_user.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.user.PageFeedBackDTO;
+import com.panzhihua.common.model.vos.user.SysUserFeedbackVO;
+import com.panzhihua.service_user.model.dos.SysUserFeedbackDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 意见反馈
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-31 13:25
+ **/
+@Mapper
+public interface SysUserFeedbackDAO extends BaseMapper<SysUserFeedbackDO> {
+
+    IPage<SysUserFeedbackVO> pageFeedback(Page page, @Param("pageFeedBackDTO") PageFeedBackDTO pageFeedBackDTO);
+
+
+    SysUserFeedbackVO detailFeedback(Long id);
+
+    int reply(@Param("dto") SysUserFeedbackDO sysUserFeedbackDO1);
+}
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
new file mode 100644
index 0000000..0a39ce2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysUserInputDAO.java
@@ -0,0 +1,55 @@
+package com.panzhihua.service_user.dao;
+
+import java.util.List;
+
+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.ExportSpecialUserDTO;
+import com.panzhihua.common.model.dtos.community.ExportUserDTO;
+import com.panzhihua.common.model.dtos.user.EexcelUserDTO;
+import com.panzhihua.common.model.dtos.user.PageInputUserDTO;
+import com.panzhihua.common.model.vos.community.ComMngStructAreaVO;
+import com.panzhihua.common.model.vos.community.ComMngStructHouseVO;
+import com.panzhihua.common.model.vos.user.ComMngFamilyInfoVO;
+import com.panzhihua.common.model.vos.user.InputUserInfoVO;
+import com.panzhihua.service_user.model.dos.SysUserInputDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 居民导入
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-02-05 17:40
+ **/
+@Mapper
+public interface SysUserInputDAO extends BaseMapper<SysUserInputDO> {
+
+    ComMngStructAreaVO selectByAreaName(String areaName);
+
+
+    List<ComMngStructHouseVO> selectHouserByareaName(String areaName);
+
+
+    List<ComMngFamilyInfoVO> selectListFamily(@Param("doorNumber") String doorNumber, @Param("userId") Long userId);
+
+
+    IPage<InputUserInfoVO> pageInputUser(Page page, @Param("pageInputUserDTO") PageInputUserDTO pageInputUserDTO);
+
+
+    List<ComMngStructAreaVO> selectComMngStructArea(@Param("communityId") Long communityId);
+
+
+    IPage<InputUserInfoVO> specialInputUser(Page page, @Param("pageInputUserDTO") PageInputUserDTO pageInputUserDTO);
+
+
+    List<ComMngStructHouseVO> selectUserHouseList(@Param("idCard") String idCard);
+
+
+    List<EexcelUserDTO> selectExport(@Param("exportUserDTO") ExportUserDTO exportUserDTO);
+
+
+    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
new file mode 100644
index 0000000..33e1dee
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysUserNoticeDAO.java
@@ -0,0 +1,20 @@
+package com.panzhihua.service_user.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.common.model.vos.user.NoticeUnReadVO;
+import com.panzhihua.service_user.model.dos.SysUserNoticeDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 通知
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-04 17:24
+ **/
+@Mapper
+public interface SysUserNoticeDAO extends BaseMapper<SysUserNoticeDO> {
+
+
+    NoticeUnReadVO noticeUnreadNum(Long userId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysUserRoleDAO.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysUserRoleDAO.java
new file mode 100644
index 0000000..87ef3d1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/SysUserRoleDAO.java
@@ -0,0 +1,17 @@
+package com.panzhihua.service_user.dao;
+
+import org.apache.ibatis.annotations.Mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.panzhihua.service_user.model.dos.SysUserRoleDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 用户角色关系
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-24 10:10
+ **/
+@Mapper
+public interface SysUserRoleDAO extends BaseMapper<SysUserRoleDO> {
+
+}
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
new file mode 100644
index 0000000..c2bd855
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/dao/UserDao.java
@@ -0,0 +1,469 @@
+package com.panzhihua.service_user.dao;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import com.panzhihua.common.model.vos.community.*;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidCheckRecordVO;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidMemberVO;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidRecordVO;
+import com.panzhihua.common.model.vos.sanshuo.ComSanshuoExpertVO;
+import com.panzhihua.common.model.vos.shop.ComShopUserAddressVO;
+import com.panzhihua.common.model.vos.user.*;
+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;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.model.dtos.PageDTO;
+import com.panzhihua.common.model.dtos.community.ExportUserDTO;
+import com.panzhihua.common.model.dtos.grid.EventGridMemberEditStatusDTO;
+import com.panzhihua.common.model.dtos.grid.EventGridMemberPassResetDTO;
+import com.panzhihua.common.model.dtos.grid.PageEventGridMemberRelationDTO;
+import com.panzhihua.common.model.dtos.user.EexcelUserDTO;
+import com.panzhihua.common.model.dtos.user.PageUserAppletsBackstageDTO;
+import com.panzhihua.common.model.vos.AppletUserInfoVO;
+import com.panzhihua.common.model.vos.IndexDataKanbanVO;
+import com.panzhihua.common.model.vos.IndexDataVO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.community.*;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidCheckRecordVO;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidMemberVO;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidRecordVO;
+import com.panzhihua.common.model.vos.community.screen.event.EventGridMemberVO;
+import com.panzhihua.common.model.vos.grid.GridMemberVO;
+import com.panzhihua.common.model.vos.partybuilding.ComPbServiceTeamWishVO;
+import com.panzhihua.common.model.vos.user.*;
+import com.panzhihua.service_user.model.dos.SysUserDO;
+import com.panzhihua.service_user.model.dtos.DataKanbanDTO;
+import com.panzhihua.service_user.model.dtos.UsersStatisticsDTO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 用户
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-20 15:55
+ **/
+@Mapper
+public interface UserDao extends BaseMapper<SysUserDO> {
+
+
+    IPage<LoginUserInfoVO> pageUserFace(Page page, @Param("loginUserInfoVO") LoginUserInfoVO loginUserInfoVO);
+
+
+    IPage<AppletUserInfoVO> pageUser(Page page, @Param("loginUserInfoVO") AppletUserInfoVO userInfoVO);
+
+
+    IPage<AdministratorsUserVO> pageUserBackstage(Page page,
+                                                  @Param("administratorsUserVO") AdministratorsUserVO administratorsUserVO);
+
+
+    IPage<SysUserVO> pageUserAppletsBackstage(Page page,
+                                              @Param("pageUserAppletsBackstageDTO") PageUserAppletsBackstageDTO pageUserAppletsBackstageDTO);
+
+
+    int deleteUserTest(Long userId);
+
+
+    IPage<SysUserNoticeVO> pageNotice(Page page, @Param("pageDTO") PageDTO pageDTO);
+
+
+    IndexDataKanbanVO selectIndexDataKanban(@Param("areaCode") String areaCode);
+
+
+    IPage<DataKanbanDTO> selectCommunityUserOrder(Page page, @Param("areaCode") String areaCode);
+
+    IPage<DataKanbanDTO> selectCommunityUserOrderMonth(Page page, @Param("areaCode") String areaCode);
+
+
+    DataKanbanDTO selectCommunityActiveUserOrder(Date date1);
+
+    DataKanbanDTO selectCommunityAddUserOrder(@Param("areaCode") String areaCode, @Param("date1") Date date1);
+
+    List<UsersStatisticsDTO> selectDailyAdd(@Param("createAt") String createAt, @Param("appId") String appId);
+
+    List<UsersStatisticsDTO> selectActive(@Param("lastLoginTime") String lastLoginTime, @Param("appId") String appId);
+
+    IndexDataVO indexDataCommunityBackstage(Long communityId);
+
+
+    int timedTaskContinuousLandingDays();
+
+
+    ComMngVolunteerMngVO selectVolunteerMngByPhone(String phone);
+
+
+    int updateFaceState(Long userId);
+
+
+    ComActVO selectCommunity(Long communityId);
+
+
+    Integer selectCountArea(String areaName);
+
+
+    Integer selectCountHouse(String areaName);
+
+
+    List<EexcelUserDTO> selectExport(@Param("exportUserDTO") ExportUserDTO exportUserDTO);
+
+
+    Integer selectCountMemberRole(@Param("phone") String phone, @Param("userCommunityId") Long userCommunityId);
+
+
+    Integer selectCountTeam(@Param("phone") String phone, @Param("userCommunityId") Long userCommunityId);
+
+
+    void updateMemberRole(@Param("newphone") String newphone, @Param("oldphone") String oldphone);
+
+
+    void updateServiceTeam(@Param("newphone") String newphone, @Param("oldphone") String oldphone);
+
+
+    Integer selectCountSysUser(@Param("phone") String phone, @Param("userCommunityId") Long userCommunityId);
+
+
+    void updateStoreByPhone(@Param("phone") String phone, @Param("sysUserId") Long sysUserId);
+
+
+    void deleteStoreByPhoneAndStatus(@RequestParam("phone") String phone);
+
+
+    void updateUserArchives(@Param("userArchivesVO") UpdateUserArchivesVO userArchivesVO);
+
+
+    void updateComPbMemberUserId(@Param("idCard") String idCard, @Param("userId") Long userId);
+
+
+    Long getPartyBuildingByIdCard(@Param("idCard") String idCard);
+
+
+    IPage<GridMemberVO> getGridMemberList(Page page,
+                                          @Param("memberRelationDTO") PageEventGridMemberRelationDTO memberRelationDTO);
+
+
+    void gridMemberEditStatus(@Param("gridMemberEditDTO") EventGridMemberEditStatusDTO gridMemberEditDTO);
+
+
+    void passResetUser(@Param("gridMemberDTO") EventGridMemberPassResetDTO gridMemberDTO);
+
+
+    void addLcMember(@Param("lcMemberId") Long lcMemberId, @Param("userId") Long userId,
+                     @Param("userName") String userName);
+
+
+    void delLcMember(@Param("gridMemberId") Long gridMemberId);
+
+
+    Map<String, Long> getBuilding(@Param("buildingId") Long buildingId);
+
+
+    void delGridMemberRelation(@Param("gridMemberId") Long gridMemberId);
+
+
+    Map<String, String> getLcMemberId(@Param("gridMemberId") Long gridMemberId);
+
+
+    Integer getGridIsOk(@Param("userId") Long userId);
+
+    List<EventGridMemberVO> getGridsMemberList(@Param("communityId") Long communityId);
+
+
+    List<ComPbServiceTeamWishVO> getServiceTeamList(@Param("param") String param,
+                                                    @Param("communityId") Long communityId);
+
+
+    List<SysUserVO> getUserListByCommunityId(@Param("communityId") Long communityId);
+
+    int putUserTag(@Param("sysUserDO") SysUserDO sysUserDO);
+
+    /**
+     * 禁用/启用便民服务商家账号
+     *
+     * @param status
+     * @param userIds
+     * @return
+     */
+    int disableOrEnableMerchantUsers(@Param("status") Integer status, @Param("userIds") List<Long> userIds);
+
+    /**
+     * 根据手机号维护社区团队表是否注册
+     *
+     * @param phone 手机号
+     */
+    void judgeCommunityTeam(@Param("phone") String phone);
+
+    /**
+     * 根据手机号查询社区团队表中用户数量
+     *
+     * @param phone 手机号
+     * @return 用户数量
+     */
+    Integer getCommunityTeamCount(@Param("phone") String phone);
+
+    /**
+     * 查询西区所有街道列表以及统计人数
+     *
+     * @return 西区所有街道列表以及统计人数
+     */
+    List<IndexUserStreetVo> getUserStreetList(@Param("areaCode") String areaCode);
+
+    /**
+     * 查询街道下社区列表以及统计人数
+     *
+     * @param streetId 街道id
+     * @return 社区列表以及统计人数
+     */
+    List<IndexUserCommunityVo> getUserCommunityList(@Param("streetId") Long streetId);
+
+    /**
+     * 查询街道下社区注册人数统计数据导出
+     *
+     * @return 社区注册人数统计数据导出
+     */
+    List<IndexUserStreetExcelExportVo> getUserCommunityExcelExport(String areaCode);
+
+    /**
+     * 查看是否是社区物业人员
+     *
+     * @param userId
+     * @param userCommunityId
+     * @return
+     */
+    int countPropertyWorker(@Param("userId") Long userId, @Param("communityId") Long userCommunityId);
+
+    /**
+     * 查看是否社工
+     *
+     * @param phone
+     * @param communityId
+     * @return
+     */
+    int countSocialWorker(@Param("phone") String phone, @Param("communityId") Long communityId);
+
+    /**
+     * 查看是否社会组织
+     *
+     * @param userId
+     * @return
+     */
+    int countSocialOrg(Long userId);
+
+
+    /**
+     * 查看是否是微团队成员
+     *
+     * @param phone
+     * @param userCommunityId
+     * @return
+     */
+    int countFmsMember(@Param("phone") String phone, @Param("communityId") Long userCommunityId);
+
+    /**
+     * 查询街道信息
+     *
+     * @param streetId
+     * @return
+     */
+    ComStreetVO selectStreetById(@Param("streetId") Long streetId);
+
+    /**
+     * 查询是否是社会组织成员
+     *
+     * @param userId
+     * @return
+     */
+    int countSocialOrgMember(@Param("userId") Long userId);
+
+    /**
+     * 查询是否社会组织联系人
+     *
+     * @param phone
+     * @return
+     */
+    int countOrgNum(@Param("phone") String phone);
+
+    /**
+     * 查询是否人大代表
+     *
+     * @param phone
+     * @param userCommunityId
+     * @return
+     */
+    int selectCountDpc(@Param("phone") String phone, @Param("userCommunityId") Long userCommunityId);
+
+    /**
+     * 查看是否网格员
+     *
+     * @param phone
+     * @param userCommunityId
+     * @return
+     */
+    int countEasyPhotoMember(@Param("phone") String phone, @Param("communityId") Long userCommunityId);
+
+    /**
+     * 查询防疫工作人员信息
+     *
+     * @param phone
+     * @return
+     */
+    ComActAcidMemberVO selectAcidMemberByPhone(@Param("phone") String phone);
+
+    /**
+     * 查询单位管理员
+     *
+     * @param phone
+     * @return
+     */
+    Integer selectOrgAdmin(@Param("phone") String phone);
+
+    /**
+     * 查询绑定单位id
+     * @param phone
+     * @return
+     */
+    Long selectOrgAdminId(@Param("phone") String phone);
+
+    /**
+     * 查询报道单位id
+     *
+     * @param phone
+     * @return
+     */
+    Long selectCheckUnitId(@Param("phone") String phone);
+
+    /**
+     * 根据社区名称查询区县社区联动关系
+     *
+     * @param relationName
+     * @return
+     */
+    List<ComAreaTownCommunityVO> selectAreaTownCommunity(@Param("relationName") String relationName);
+
+    /**
+     * 根据街道id查询区域名称
+     *
+     * @param streetId
+     * @return
+     */
+    String selectAreaCodeByStreetId(Long streetId);
+
+    /**
+     * 看板用户统计:用户占比统计
+     */
+    List<UserProportion> userAnalysis(@Param("type") Integer type, @Param("range") String range, @Param("streetId") Long streetId, @Param("areaCode") Long areaCode, @Param("appId") String appId);
+
+    /**
+     * 统计区域实名用户数
+     */
+    List<RealUser> realUserCount(@Param("type") Integer type, @Param("range") String range, @Param("streetId") Long streetId, @Param("areaCode") Long areaCode, @Param("appId") String appId);
+
+    /**
+     * 统计该街道内的所有用户数
+     */
+    Integer streetUserCount(@Param("id") Long id, @Param("areaCode") Long areaCode);
+
+    /**
+     * 街道用户统计
+     */
+    IndexDataKanbanVO dataKanBanStreet(@Param("streetId") Long streetId, @Param("areaCode") Long areaCode, @Param("range") String range);
+
+    /**
+     * 获取当天的新增和日活
+     */
+    Map<String, Long> getDailyAddAndActive(@Param("date") Date date, @Param("id") Long streetId, @Param("areaCode") Long areaCode, @Param("appId") String appId);
+
+    List<UsersStatisticsDTO> getDailyAdd(@Param("createAt") String createAt, @Param("id") Long streetId, @Param("areaCode") Long areaCode, @Param("appId") String appId);
+
+    List<UsersStatisticsDTO> getActive(@Param("lastLoginTime") String lastLoginTime, @Param("id") Long streetId, @Param("areaCode") Long areaCode, @Param("appId") String appId);
+
+
+    List<StreetVOS> selectStreetByAreaCode(Integer code);
+
+    List<StreetVOStr> selectStreetByAreaCodeStr(Integer code);
+
+    List<StreetVO> selectStreetsByAreaCode(Integer code);
+
+    ComActAcidCheckRecordVO selectComActAcidCheckRecordById(Long id);
+
+    ComActAcidRecordVO selectComActAcidRecord(Long id);
+
+    ComActAcidMemberVO selectComActAcidMember(Long id);
+
+    /**
+     * 获取本月的
+     */
+    Integer getMonthUsers(@Param("streetId") Long streetId, @Param("areaCode") Long areaCode, @Param("range") String range, @Param("appId") String appId);
+
+    /**
+     * 获取街道下属村/社区
+     */
+    List<CommunityVO> selectCommunityByStreetId(@Param("id") Long streetId, @Param("type") Integer type);
+
+    /**
+     * 获取账户id
+     */
+    List<Integer> selectIdsByAccount(@Param("array") String[] streetList);
+
+    List<CommunityVO> selectCommunityByStreetName(String name);
+
+    StreetVOS selectStreetByName(String name);
+
+    /**
+     * 是否为专家
+     */
+    ComSanshuoExpertVO isExpert(String phone);
+
+    /**
+     * 当前账号是否为专家后台账号
+     */
+    int isIndustryCenterAccount(String account);
+
+    /**
+     * 当前账号是否为专家后台账号
+     */
+    int isExpertAccount(String account);
+
+    /**
+     * 查询两个appid的用户做更新
+     *
+     * @param userId
+     * @return
+     */
+    List<SysUserDO> selectByUserId(@Param("userId") Long userId);
+
+    /**
+     * 是否为党员
+     */
+    int isDpcMember(@Param("phone") String phone, @Param("name") String name);
+
+    /**
+     * 是否为物业公司后台账号
+     */
+    Long isPropertyAccount(String phone);
+
+
+    String getCommunityAppId(Long communityId);
+
+    /**
+     * 判读是否为自提点账号
+     *
+     * @param phone
+     * @return
+     */
+    int checkPoint(String phone);
+
+    ComShopUserAddressVO selectDefaultAddressVO(@Param("userId") String userId);
+
+    Long selectStoreIdIdByUserId(@Param("userId")  Long userId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/entity/SysAppConfig.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/entity/SysAppConfig.java
new file mode 100644
index 0000000..15a0f9d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/entity/SysAppConfig.java
@@ -0,0 +1,54 @@
+package com.panzhihua.service_user.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * (SysAppConfig)表实体类
+ *
+ * @author makejava
+ * @since 2022-01-13 10:10:15
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("")
+public class SysAppConfig implements Serializable {
+
+    private static final long serialVersionUID = -90981038076389842L;
+
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * appid
+     */
+    @ApiModelProperty(value = "appid")
+    private String appId;
+
+    /**
+     * secret
+     */
+    @ApiModelProperty(value = "secret")
+    private String secret;
+
+    /**
+     * 小程序名字
+     */
+    @ApiModelProperty(value = "小程序名字")
+    private String name;
+
+    private String areaCode;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/entity/SysTemplateConfig.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/entity/SysTemplateConfig.java
new file mode 100644
index 0000000..0bc7792
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/entity/SysTemplateConfig.java
@@ -0,0 +1,51 @@
+package com.panzhihua.service_user.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * (SysTemplateConfig)表实体类
+ *
+ * @author makejava
+ * @since 2022-01-13 14:29:55
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("")
+public class SysTemplateConfig implements Serializable {
+
+    private static final long serialVersionUID = -29178409799302189L;
+
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 模板id
+     */
+    @ApiModelProperty(value = "模板id")
+    private String templateId;
+
+    /**
+     * 模板类型 1活动变更 2留言回复 3活动取消 4审核状态 5认证审核 6调研问卷 7奖励发放 8报名成功 9活动即将开始 10预约提醒
+     */
+    @ApiModelProperty(value = "模板类型 1活动变更 2留言回复 3活动取消 4审核状态 5认证审核 6调研问卷 7奖励发放 8报名成功 9活动即将开始 10预约提醒 ")
+    private Integer type;
+
+    /**
+     * 区域编码
+     */
+    @ApiModelProperty(value = "区域编码")
+    private String areaCode;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/ComActFourMember.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/ComActFourMember.java
new file mode 100644
index 0000000..a8559e1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/ComActFourMember.java
@@ -0,0 +1,74 @@
+package com.panzhihua.service_user.model.dos;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * (ComActFourMember)表实体类
+ *
+ * @author makejava
+ * @since 2021-09-23 10:13:30
+ */
+@Data
+@Builder
+@AllArgsConstructor
+@NoArgsConstructor
+@ApiModel("")
+public class ComActFourMember implements Serializable {
+
+    private static final long serialVersionUID = 905771115750112478L;
+
+    @TableId(type = IdType.ASSIGN_ID)
+    private Integer id;
+
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+
+    /**
+     * 职位
+     */
+    @ApiModelProperty(value = "职位")
+    private String position;
+
+    /**
+     * 管辖区域
+     */
+    @ApiModelProperty(value = "管辖区域")
+    private String jurisdiction;
+
+    /**
+     * 社区id
+     */
+    @ApiModelProperty(value = "社区id")
+    private Long communityId;
+
+    /**
+     * 创建时间
+     */
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    @ApiModelProperty(value = "管辖区域内容")
+    private String jurisdictionContent;
+
+    @ApiModelProperty(value = "照片")
+    private String url;
+
+    private String password;
+
+    private String idCard;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/ComMngFamilyInfoDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/ComMngFamilyInfoDO.java
new file mode 100644
index 0000000..9b68ba4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/ComMngFamilyInfoDO.java
@@ -0,0 +1,92 @@
+package com.panzhihua.service_user.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 家庭信息
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-14 16:51
+ **/
+@Data
+@TableName("com_mng_family_info")
+public class ComMngFamilyInfoDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 本人id
+     */
+    private Long userId;
+
+    /**
+     * 与本人关系
+     */
+    private String relationship;
+
+    /**
+     * 名字
+     */
+    private String name;
+
+    /**
+     * 身份证号
+     */
+    private String idCard;
+
+    /**
+     * 手机号
+     */
+    private String phone;
+
+    /**
+     * 年龄
+     */
+    private Integer age;
+
+    /**
+     * 健康状况
+     */
+    private String health;
+
+    /**
+     * 工作
+     */
+    private String job;
+
+    /**
+     * 证件照(人像面)照片
+     */
+    private String cardPhotoFront;
+    /**
+     * 证件照(国徽面)照片
+     */
+    private String cardPhotoBack;
+    /**
+     * 户口本照片 逗号隔开
+     */
+    private String familyBook;
+
+    /**
+     * create_at
+     */
+
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * update_at
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateAt;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/ComMngStructHouseDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/ComMngStructHouseDO.java
new file mode 100644
index 0000000..f3ce7c9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/ComMngStructHouseDO.java
@@ -0,0 +1,62 @@
+package com.panzhihua.service_user.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 lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 房屋用户关系
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-14 17:12
+ **/
+@Data
+@TableName("com_mng_struct_house_user")
+public class ComMngStructHouseDO implements Serializable {
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 房屋地址编号
+     */
+    private String houseCode;
+
+    /**
+     * 房屋地址
+     */
+    private String houseName;
+
+    /**
+     * 父类地址编码
+     */
+    private String parentCode;
+
+    /**
+     * 地址类型 1 楼栋 2 单元 3 楼层 门牌号
+     */
+    private boolean type;
+
+    /**
+     * create_at
+     */
+    private Date createAt;
+
+    /**
+     * update_at
+     */
+    private Date updateAt;
+
+    /**
+     * 房屋面积
+     */
+    private Double square;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/ComMngUserTagDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/ComMngUserTagDO.java
new file mode 100644
index 0000000..0fb4554
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/ComMngUserTagDO.java
@@ -0,0 +1,49 @@
+package com.panzhihua.service_user.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 lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 工作类型
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-14 17:25
+ **/
+@Data
+@TableName("com_mng_user_tag")
+public class ComMngUserTagDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 自增id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 标签名称
+     */
+    private String tagName;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+
+    /**
+     * 系统预置:1-是 0-否
+     */
+    private Integer sysFlag;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/EventGridMemberBuildingRelationDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/EventGridMemberBuildingRelationDO.java
new file mode 100644
index 0000000..de27194
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/EventGridMemberBuildingRelationDO.java
@@ -0,0 +1,60 @@
+package com.panzhihua.service_user.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 lombok.Data;
+
+/**
+ * @auther lyq
+ * @create 2021-07-02 15:45:40
+ * @describe 网格员与楼栋关联表实体类
+ */
+
+@Data
+@TableName("event_grid_member_building_relation")
+public class EventGridMemberBuildingRelationDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 网格员id
+     */
+    private Long gridMemberId;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 小区id
+     */
+    private Long villageId;
+
+    /**
+     * 楼栋id
+     */
+    private Long buildingId;
+
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+
+    @Override
+    public String toString() {
+        return "EventGridMemberBuildingRelationDO{" + "id=" + id + ", gridMemberId=" + gridMemberId + ", communityId="
+            + communityId + ", villageId=" + villageId + ", buildingId=" + buildingId + ", createAt=" + createAt + "}";
+    }
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/LcCompareCodeMemberDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/LcCompareCodeMemberDO.java
new file mode 100644
index 0000000..a25eb43
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/LcCompareCodeMemberDO.java
@@ -0,0 +1,39 @@
+package com.panzhihua.service_user.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 lombok.Data;
+
+/**
+ * Description 本地网格和浪潮的对码表 ClassName LcCompareCode
+ * 
+ * @author manailin
+ */
+@Data
+@TableName("lc_compare_code_member")
+public class LcCompareCodeMemberDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+    /** 主键 */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+    /** 本地网格ID */
+    private String localGridMemberId;
+    /** 网格名称 */
+    private String gridMemberName;
+    /** 浪潮市平台网格ID */
+    private String lcGridMemberId;
+    /** 浪潮市平台网格名称 */
+    private String lcGridMemberName;
+    /** 浪潮网格员绑定的用户ID */
+    private String lcBindUserId;
+    /** 创建时间 */
+    private Date createAt;
+    /** 修改时间 */
+    private Date updateAt;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysDeptDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysDeptDO.java
new file mode 100644
index 0000000..1be9009
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysDeptDO.java
@@ -0,0 +1,58 @@
+package com.panzhihua.service_user.model.dos;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+
+import lombok.Data;
+
+/**
+ * 部门表 sys_dept
+ * 
+ * @author ruoyi
+ */
+@Data
+public class SysDeptDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /** 部门ID */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long deptId;
+
+    /** 父部门ID */
+    private Long parentId;
+
+    /** 祖级列表 */
+    private String ancestors;
+
+    /** 部门名称 */
+    private String deptName;
+
+    /** 显示顺序 */
+    private String orderNum;
+
+    /** 负责人 */
+    private String leader;
+
+    /** 联系电话 */
+    private String phone;
+
+    /** 邮箱 */
+    private String email;
+
+    /** 部门状态:0正常,1停用 */
+    private String status;
+
+    /** 删除标志(0代表存在 2代表删除) */
+    private String delFlag;
+
+    /** 父部门名称 */
+    private String parentName;
+
+    /** 子部门 */
+    private List<SysDeptDO> children = new ArrayList<SysDeptDO>();
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysMenuDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysMenuDO.java
new file mode 100644
index 0000000..df8bcb7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysMenuDO.java
@@ -0,0 +1,118 @@
+package com.panzhihua.service_user.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 lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 菜单权限表
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-24 16:48
+ **/
+@Data
+@TableName("sys_menu")
+public class SysMenuDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 菜单id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long menuId;
+
+    /**
+     * 菜单名称
+     */
+    private String menuName;
+
+    /**
+     * 父菜单id
+     */
+    private Long parentId;
+
+    /**
+     * 显示顺序
+     */
+    private Integer orderNum;
+
+    /**
+     * 路由地址
+     */
+    private String path;
+
+    /**
+     * 组件路径
+     */
+    private String component;
+
+    /**
+     * 是否为外链(0是 1否)
+     */
+    private Integer isFrame;
+
+    /**
+     * 是否缓存(0缓存 1不缓存)
+     */
+    private Integer isCache;
+
+    /**
+     * 菜单类型(m目录 c菜单 f按钮)
+     */
+    private String menuType;
+
+    /**
+     * 菜单状态(0显示 1隐藏)
+     */
+    private Integer visible;
+
+    /**
+     * 菜单状态(0正常 1停用)
+     */
+    private Integer status;
+
+    /**
+     * 权限标识
+     */
+    private String perms;
+
+    /**
+     * 菜单图标
+     */
+    private String icon;
+
+    /**
+     * 创建者
+     */
+    private String createBy;
+
+    /**
+     * 创建时间
+     */
+    private Date createAt;
+
+    /**
+     * 更新者
+     */
+    private String updateBy;
+
+    /**
+     * 更新时间
+     */
+    private Date updateAt;
+
+    /**
+     * 备注
+     */
+    private String remark;
+    /**
+     * 社区id
+     */
+    private Long communityId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysOperLogDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysOperLogDO.java
new file mode 100644
index 0000000..5669c97
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysOperLogDO.java
@@ -0,0 +1,116 @@
+package com.panzhihua.service_user.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 操作日志
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-25 10:34
+ **/
+@Data
+@TableName("sys_oper_log")
+public class SysOperLogDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 日志主键
+     */
+    private Long operId;
+
+    /**
+     * 模块标题
+     */
+    private String title;
+
+    /**
+     * 业务类型(0其它 1新增 2修改 3删除)
+     */
+    private Integer businessType;
+
+    /**
+     * 方法名称
+     */
+    private String method;
+
+    /**
+     * 请求方式
+     */
+    private String requestMethod;
+
+    /**
+     * 操作类别(0其它 1后台用户 2手机端用户)
+     */
+    private Integer operatorType;
+
+    /**
+     * 操作人员
+     */
+    private String operName;
+
+    /**
+     * 部门名称
+     */
+    private String deptName;
+
+    /**
+     * 请求url
+     */
+    private String operUrl;
+
+    /**
+     * 主机地址
+     */
+    private String operIp;
+
+    /**
+     * 操作地点
+     */
+    private String operLocation;
+
+    /**
+     * 请求参数
+     */
+    private String operParam;
+
+    /**
+     * 返回参数
+     */
+    private String jsonResult;
+
+    /**
+     * 操作状态(0正常 1异常)
+     */
+    private Integer status;
+
+    /**
+     * 错误消息
+     */
+    private String errorMsg;
+
+    /**
+     * 操作时间
+     */
+    private Date operTime;
+
+    /**
+     * 操作社区id 0 标识运营后台
+     */
+    private Long communityId;
+
+    /**
+     * 操作账户
+     */
+    private String account;
+
+    private String areaCode;
+
+    private String beforeUpdateData;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysRoleDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysRoleDO.java
new file mode 100644
index 0000000..905e012
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysRoleDO.java
@@ -0,0 +1,98 @@
+package com.panzhihua.service_user.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import lombok.Data;
+
+/**
+ * 角色表 sys_role
+ * 
+ * @author HUANGHONGFA
+ */
+@Data
+@TableName("sys_role")
+public class SysRoleDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 角色id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long roleId;
+
+    /**
+     * 角色名称
+     */
+    private String roleName;
+
+    /**
+     * 角色权限字符串
+     */
+    private String roleKey;
+
+    /**
+     * 显示顺序
+     */
+    private Integer roleSort;
+
+    /**
+     * 数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限 )
+     */
+    private String dataScope;
+
+    /**
+     * 菜单树选择项是否关联显示
+     */
+    private boolean menuCheckStrictly;
+
+    /**
+     * 部门树选择项是否关联显示
+     */
+    private boolean deptCheckStrictly;
+
+    /**
+     * 角色状态(0正常 1停用)
+     */
+    private Integer status;
+
+    /**
+     * 创建者
+     */
+    private Long createBy;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 更新者
+     */
+    private Long updateBy;
+
+    /**
+     * 更新时间
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateAt;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    private String areaCode;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysRoleMenuDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysRoleMenuDO.java
new file mode 100644
index 0000000..3565fdc
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysRoleMenuDO.java
@@ -0,0 +1,30 @@
+package com.panzhihua.service_user.model.dos;
+
+import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 角色菜单关系
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-25 09:49
+ **/
+@Data
+@TableName("sys_role_menu")
+public class SysRoleMenuDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 角色id
+     */
+    private Long roleId;
+
+    /**
+     * 菜单id
+     */
+    private Long menuId;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysUserAgreementDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysUserAgreementDO.java
new file mode 100644
index 0000000..80d5ba7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysUserAgreementDO.java
@@ -0,0 +1,61 @@
+package com.panzhihua.service_user.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 用户协议
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-25 15:46
+ **/
+@Data
+@TableName("sys_user_agreement")
+public class SysUserAgreementDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    private Long id;
+
+    /**
+     * 所属app 1居民端app 2网格员端app 3商家端app
+     */
+    private Integer type;
+
+    /**
+     * 协议内容
+     */
+    private String content;
+
+    /**
+     * create_at
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * update_at
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateAt;
+    /**
+     * 协议名字
+     */
+    private String name;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    private String appId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysUserDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysUserDO.java
new file mode 100644
index 0000000..ee2c060
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysUserDO.java
@@ -0,0 +1,220 @@
+package com.panzhihua.service_user.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * 用户对象 sys_user
+ *
+ * @author HAUGNHONGFA
+ */
+@Data
+@TableName("sys_user")
+public class SysUserDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * user_id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long userId;
+
+    /**
+     * 登录账户
+     */
+    private String account;
+
+    /**
+     * 登录密码
+     */
+    private String password;
+
+    /**
+     * 微信小程序唯一标识
+     */
+    private String openid;
+
+    /**
+     * 会话密钥
+     */
+    private String sessionKey;
+
+    /**
+     * 用户在开放平台的唯一标识符
+     */
+    private String unionid;
+
+    /**
+     * 手机号
+     */
+    private String phone;
+
+    /**
+     * 昵称
+     */
+    private String nickName;
+
+    /**
+     * 真实名字
+     */
+    private String name;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 性别 1 男 2 女
+     */
+    private Integer sex;
+
+    /**
+     * 身份证号
+     */
+    private String idCard;
+
+    /**
+     * 生日
+     */
+    private Date birthday;
+
+    /**
+     * 头像
+     */
+    private String imageUrl;
+
+    /**
+     * 用户类型 1 小程序 2 运营平台 3 社区平台
+     */
+    private Integer type;
+
+    /**
+     * 职业
+     */
+    private String job;
+
+    /**
+     * 是否志愿者 0 否 1 是
+     */
+    private Integer isVolunteer;
+
+    /**
+     * 是否党员 0 否 1 是
+     */
+    private Integer isPartymember;
+
+    /**
+     * 1 启用 2 禁用
+     */
+    private Integer status;
+
+    /**
+     * 创建时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 最后登录时间
+     */
+    private Date lastLoginTime;
+
+    /**
+     * 标签id 多个用,隔开
+     */
+    private String tags;
+
+    /**
+     * 家庭id
+     */
+    private Long familyId;
+
+    /**
+     * 人脸采集照片url
+     */
+    private String faceUrl;
+
+    /**
+     * 人脸采集审核状态 0 待审核 1 审核通过 2驳回
+     */
+    private Integer faceState;
+
+    /**
+     * 驳回原因
+     */
+    private String rejectReson;
+    /**
+     * 小区id
+     */
+    private Long areaId;
+    /**
+     * 连续登陆天数 每天凌晨更新 通过判断最后登录时间
+     */
+    private Integer continuousLandingDays;
+
+    /**
+     * 小程序首页是否显示公告(1.是 2.否)
+     */
+    private Integer isTips;
+
+    /**
+     * 证件照(人像面)照片
+     */
+    private String cardPhotoFront;
+    /**
+     * 证件照(国徽面)照片
+     */
+    private String cardPhotoBack;
+
+    /**
+     * 户口本照片 逗号隔开
+     */
+    private String familyBook;
+    /**
+     * 网格员工作状态(1.在岗 2.脱岗 3.已下班)
+     */
+    private Integer workStatus;
+    /**
+     * 网格员上班开始时间
+     */
+    private Integer workStartTime;
+    /**
+     * 网格员上班结束时间
+     */
+    private Integer workEndTime;
+    /**
+     * 高龄认证显示提示(1.是 2.否)
+     */
+    private Integer bigAgeTips;
+    /**
+     * 明文密码
+     */
+    private String plaintextPassword;
+
+    private String loveIntegral;
+
+
+    private String playPwd;
+
+    /**
+     * 街道id
+     */
+    private Long streetId;
+
+    /**
+     * 绑定单位
+     */
+    private String relationName;
+
+    private String appId;
+
+    private Integer isAccept;
+
+    private Long bindingCheckUnitId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysUserFeedbackDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysUserFeedbackDO.java
new file mode 100644
index 0000000..4ce45fe
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysUserFeedbackDO.java
@@ -0,0 +1,80 @@
+package com.panzhihua.service_user.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 意见反馈
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-31 13:22
+ **/
+@Data
+@TableName("sys_user_feedback")
+public class SysUserFeedbackDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 反馈内容
+     */
+    private String content;
+
+    /**
+     * 反馈图片,多个用逗号隔开
+     */
+    private String photoPath;
+
+    /**
+     * create_at
+     */
+    @TableField(fill = FieldFill.INSERT)
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date createAt;
+
+    /**
+     * update_at
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateAt;
+
+    /**
+     * 用户的id
+     */
+    private Long userId;
+
+    /**
+     * 小区id
+     */
+    private Long areaId;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+    /**
+     * 状态
+     */
+    private Integer status;
+
+    /**
+     * 问题留言或投诉建议
+     * */
+    private Integer type;
+
+    /**
+     * 关联物业id
+     * */
+    private Long propertyId;
+    private String reply;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysUserInputDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysUserInputDO.java
new file mode 100644
index 0000000..bc3f6b6
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysUserInputDO.java
@@ -0,0 +1,168 @@
+package com.panzhihua.service_user.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 居民导入数据
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-02-05 17:37
+ **/
+@Data
+@TableName("sys_user_input")
+public class SysUserInputDO implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 门牌号
+     */
+    private String doorNumber;
+
+    /**
+     * 是否租住 0 不是 1 是
+     */
+    private Integer isRent;
+
+    /**
+     * 姓名
+     */
+    private String name;
+
+    /**
+     * 民族
+     */
+    private String nation;
+
+    /**
+     * 政治面貌:1 - 党员;2 - 团员;3 - 群众
+     */
+    private Integer politicalOutlook;
+
+    /**
+     * 0 未婚 1 已婚
+     */
+    private Integer maritalStatus;
+
+    /**
+     * 联系方式
+     */
+    private String phone;
+
+    /**
+     * 文化程度
+     */
+    private String education;
+
+    /**
+     * 身份证
+     */
+    private String idCard;
+
+    /**
+     * 工作单位(学校)
+     */
+    private String company;
+
+    /**
+     * 户口所在地
+     */
+    private String residence;
+
+    /**
+     * 目前是否在攀枝花 0 否 1 是
+     */
+    private Integer isPanzhihua;
+
+    /**
+     * 近一个月离(返)攀情况
+     */
+    private String situation;
+
+    /**
+     * 是否有与疑似或确诊病例密切接触史 0 否 1 是
+     */
+    private Integer isContact;
+
+    /**
+     * 是否特殊情况(重大过往病史或者孕妇) 0 否 1是
+     */
+    private Integer major;
+
+    /**
+     * 是否退伍军人 0 否 1是
+     */
+    private Integer soldier;
+
+    /**
+     * 是否低保户 0 否 1是
+     */
+    private Integer lowIncomeHouseholds;
+
+    /**
+     * 是否低收入人员 0否 1是
+     */
+    private Integer lowIncomePeople;
+
+    /**
+     * 是否高龄老人 0否 1是
+     */
+    private Integer oldPeople;
+
+    /**
+     * 是否特服家庭 0 否 1是
+     */
+    private Integer specialServiceFamily;
+
+    /**
+     * 是否重点人员 0 否 1是
+     */
+    private Integer keyPersonnel;
+
+    /**
+     * 社区id
+     */
+    private Long communityId;
+
+    /**
+     * 小区id
+     */
+    private Long areaId;
+
+    /**
+     * create_at
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * update_at
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateAt;
+    /**
+     * 房屋编码
+     */
+    private String houseCode;
+    /**
+     * 残疾人
+     */
+    private Integer disability;
+
+    /**
+     * 标签
+     */
+    @TableField(updateStrategy = FieldStrategy.IGNORED)
+    private String tags;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysUserNoticeDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysUserNoticeDO.java
new file mode 100644
index 0000000..6f2061e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysUserNoticeDO.java
@@ -0,0 +1,92 @@
+package com.panzhihua.service_user.model.dos;
+
+import java.io.Serializable;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.*;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 系统通知
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-04 17:06
+ **/
+@Data
+@TableName("sys_user_notice")
+public class SysUserNoticeDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * id
+     */
+    @TableId(type = IdType.ASSIGN_ID)
+    private Long id;
+
+    /**
+     * 用户id
+     */
+    private Long userId;
+
+    /**
+     * 类型 1活动 2 服务 3系统 4积分消息
+     */
+    private Integer type;
+
+    /**
+     * 消息标题
+     */
+    private String title;
+
+    /**
+     * 具体业务类型 1 社区活动 2社区活动 3微心愿通知 4随手拍服务通知 5支援者申请 6实名制审核 7人脸识别审核 8积分获取和消耗 9积分点击直接跳转积分列表
+     */
+    private Integer businessType;
+
+    /**
+     * 业务标题
+     */
+    private String businessTitle;
+
+    /**
+     * 业务内容
+     */
+    private String businessContent;
+
+    /**
+     * 业务发生时间
+     */
+    private Date businessTime;
+
+    /**
+     * 业务状态 1未通过、取消 2 成功
+     */
+    private Integer businessStatus;
+
+    /**
+     * 消息发出时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Date createAt;
+
+    /**
+     * 消息读取时间
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateAt;
+
+    /**
+     * 消息状态 0 未读 1 已读
+     */
+    private Integer status;
+
+    /**
+     * 业务主键 用于跳转
+     */
+    private Long businessId;
+    /**
+     * 社区活动类型 1志愿者活动 2居民活动
+     */
+    private Integer activityType;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysUserRoleDO.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysUserRoleDO.java
new file mode 100644
index 0000000..e653461
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dos/SysUserRoleDO.java
@@ -0,0 +1,27 @@
+package com.panzhihua.service_user.model.dos;
+
+import java.io.Serializable;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 用户角色关系
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-12-24 10:07
+ **/
+@Data
+@TableName("sys_user_role")
+public class SysUserRoleDO implements Serializable {
+    private static final long serialVersionUID = 1L;
+    /**
+     * 用户id
+     */
+    private Long userId;
+    /**
+     * 角色id
+     */
+    private Long roleId;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dtos/DataKanbanDTO.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dtos/DataKanbanDTO.java
new file mode 100644
index 0000000..ce79ffa
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dtos/DataKanbanDTO.java
@@ -0,0 +1,17 @@
+package com.panzhihua.service_user.model.dtos;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 查询运营后台统计数据
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-05 16:25
+ **/
+@Data
+public class DataKanbanDTO {
+
+    private String name;
+    private Integer num;
+    private Integer dayNum;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dtos/UsersStatisticsDTO.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dtos/UsersStatisticsDTO.java
new file mode 100644
index 0000000..fb33ab9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/model/dtos/UsersStatisticsDTO.java
@@ -0,0 +1,25 @@
+package com.panzhihua.service_user.model.dtos;
+
+import lombok.Data;
+
+/**
+ * @ClassName: UsersStatisticsDTO
+ * @Author: yh
+ * @Date: 2022/10/17 10:26
+ * @Description: 对登录人数和新增人数进行统计
+ * com.panzhihua.service_user.model.dtos.UsersStatisticsDTO
+ */
+@Data
+public class UsersStatisticsDTO {
+
+
+    /**
+     * 年月日
+     */
+    private String specificDate;
+
+    /**
+     * 总数
+     */
+    private String total;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/EventGridMemberBuildingRelationService.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/EventGridMemberBuildingRelationService.java
new file mode 100644
index 0000000..0a7c6d3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/EventGridMemberBuildingRelationService.java
@@ -0,0 +1,13 @@
+package com.panzhihua.service_user.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_user.model.dos.EventGridMemberBuildingRelationDO;
+
+/**
+ * @auther lyq
+ * @create 2021-07-02 15:45:40
+ * @describe 网格员与楼栋关联表服务类
+ */
+public interface EventGridMemberBuildingRelationService extends IService<EventGridMemberBuildingRelationDO> {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/RoleService.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/RoleService.java
new file mode 100644
index 0000000..998c966
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/RoleService.java
@@ -0,0 +1,104 @@
+package com.panzhihua.service_user.service;
+
+import java.util.List;
+
+import com.panzhihua.common.model.vos.MenuVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.user.MenuRoleVO;
+import com.panzhihua.common.model.vos.user.RoleVO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 权限
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-25 15:58
+ **/
+public interface RoleService {
+    /**
+     * 获取平台所有的菜单按钮权限
+     * 
+     * @return 菜单按钮权限
+     */
+    R<List<MenuVO>> getAllMenu();
+
+    /**
+     * 获取某个人的所有角色
+     * 
+     * @param username
+     *            用户ID
+     * @return 所有角色
+     */
+    R<List<String>> getUserRoles(String username);
+
+    /**
+     * 查询社区的党委角色
+     * 
+     * @param communityId
+     *            社区id
+     * @return 党委角色列表
+     */
+    R listIdentity(Integer communityId);
+
+    /**
+     * 角色下拉列表
+     * 
+     * @param communityId
+     *            对应社区 0 表示运营后台
+     * @return 角色集合
+     */
+    R listRoleBackstage(Long communityId,Integer pageNum,Integer pageSize,String areaCode);
+
+    /**
+     * 新增角色
+     * 
+     * @param roleVO
+     *            角色信息
+     * @return 新增结果
+     */
+    R addRoleBackstage(RoleVO roleVO);
+
+    /**
+     * 删除角色
+     * 
+     * @param roleVO
+     *            角色主键
+     * @return 删除结果
+     */
+    R deleteRoleBackstage(RoleVO roleVO);
+
+    /**
+     * 平台菜单列表
+     * 
+     * @param communityId
+     *            社区id 0 运营平台
+     * @return 菜单集合
+     */
+    R listMenuBackstage(Long communityId,String appId);
+
+    /**
+     * 设置角色的权限
+     * 
+     * @param menuRoleVO
+     *            用户设置的权限id
+     * @return 设置结果
+     */
+    R putMenuRole(MenuRoleVO menuRoleVO);
+
+    /**
+     * 用户菜单获取
+     * 
+     * @param userId
+     *            登录用户id
+     * @return 用户菜单
+     */
+    R listmenu(Long userId);
+
+    /**
+     * 获取角色的权限配置列表
+     * 
+     * @param roleId
+     *            角色id
+     * @return 菜单列表
+     */
+    R listMenuBackstageByRole(Long roleId);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/SysAppConfigService.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/SysAppConfigService.java
new file mode 100644
index 0000000..cd918b1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/SysAppConfigService.java
@@ -0,0 +1,22 @@
+package com.panzhihua.service_user.service;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_user.entity.SysAppConfig;
+
+/**
+ * (SysAppConfig)表服务接口
+ *
+ * @author makejava
+ * @since 2022-01-13 10:10:18
+ */
+public interface SysAppConfigService extends IService<SysAppConfig> {
+    /**
+     * 分页查询
+     *
+     * @param commonPage
+     * @return
+     */
+    R pageList(CommonPage commonPage);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/SysTemplateConfigService.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/SysTemplateConfigService.java
new file mode 100644
index 0000000..c7d7c47
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/SysTemplateConfigService.java
@@ -0,0 +1,22 @@
+package com.panzhihua.service_user.service;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.service_user.entity.SysTemplateConfig;
+
+/**
+ * (SysTemplateConfig)表服务接口
+ *
+ * @author makejava
+ * @since 2022-01-13 14:29:56
+ */
+public interface SysTemplateConfigService extends IService<SysTemplateConfig> {
+    /**
+     * 分页查询
+     *
+     * @param commonPage
+     * @return
+     */
+    R pageList(CommonPage commonPage);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/SysUserInputService.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/SysUserInputService.java
new file mode 100644
index 0000000..e9a9b92
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/SysUserInputService.java
@@ -0,0 +1,124 @@
+package com.panzhihua.service_user.service;
+
+import java.util.List;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.panzhihua.common.model.dtos.community.ExportSpecialUserDTO;
+import com.panzhihua.common.model.dtos.community.ExportUserDTO;
+import com.panzhihua.common.model.dtos.user.ComMngUserTagDTO;
+import com.panzhihua.common.model.dtos.user.EexcelUserDTO;
+import com.panzhihua.common.model.dtos.user.InputUserTagsDTO;
+import com.panzhihua.common.model.dtos.user.PageInputUserDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.user.ComMngTagVO;
+import com.panzhihua.common.model.vos.user.CommunityUserInfoVO;
+import com.panzhihua.service_user.model.dos.SysUserInputDO;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 居民导入
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-02-05 17:42
+ **/
+public interface SysUserInputService extends IService<SysUserInputDO> {
+    /**
+     * 批量导入居民用户
+     * 
+     * @param list
+     *            居民用户集合
+     * @param areaName
+     *            小区名字
+     * @return 导入结果
+     */
+    R batchSaveUser(List<EexcelUserDTO> list, StringBuffer areaName);
+
+    /**
+     * 社区人员详情包括导入人员
+     * 
+     * @param userId
+     *            人员id
+     * @return CommunityUserInfoVO
+     */
+    CommunityUserInfoVO detailUserComunity(Long userId);
+
+    /**
+     * 分页查询居民数据
+     * 
+     * @param pageInputUserDTO
+     * @return
+     */
+    R pageInputUser(PageInputUserDTO pageInputUserDTO);
+
+    /**
+     * 设置标签
+     * 
+     * @param inputUserTagsDTO
+     * @return
+     */
+    R putUserTag(InputUserTagsDTO inputUserTagsDTO);
+
+    /**
+     * 导出居民信息
+     * 
+     * @param exportUserDTO
+     * @return
+     */
+    R exportInputUser(ExportUserDTO exportUserDTO);
+
+    /**
+     * 居民详情
+     * 
+     * @param id
+     * @return
+     */
+    R inputUserDetail(Long id);
+
+    /**
+     * 查询特殊群体
+     * 
+     * @param pageInputUserDTO
+     * @return
+     */
+    R specialInputUser(PageInputUserDTO pageInputUserDTO);
+
+    /**
+     * 特殊群体标签
+     * 
+     * @param comMngUserTagDTO
+     * @return
+     */
+    R specialInputUserTags(ComMngUserTagDTO comMngUserTagDTO);
+
+    /**
+     * 新增或修改特殊群体标签
+     * 
+     * @param comMngTagVO
+     * @return
+     */
+    R saveSpecialInputUserTags(ComMngTagVO comMngTagVO);
+
+    /**
+     * 删除特殊群体标签
+     * 
+     * @param id
+     * @return
+     */
+    R deleteSpecialInputUserTags(Long id);
+
+    /**
+     * 删除特殊群体用户
+     * 
+     * @param id
+     * @return
+     */
+    R deleteSpecialInputUser(Long id);
+
+    /**
+     * 导出特殊群体用户
+     * 
+     * @param exportSpecialUserDTO
+     * @return
+     */
+    R specialUserExport(ExportSpecialUserDTO exportSpecialUserDTO);
+
+}
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
new file mode 100644
index 0000000..48a9b80
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/UserService.java
@@ -0,0 +1,977 @@
+package com.panzhihua.service_user.service;
+
+import java.util.List;
+
+import com.panzhihua.common.model.dtos.DataKanBansDto;
+import com.panzhihua.common.model.dtos.PageDTO;
+import com.panzhihua.common.model.dtos.community.ExportUserDTO;
+import com.panzhihua.common.model.dtos.community.NoticeReadDTO;
+import com.panzhihua.common.model.dtos.community.convenient.ConvenientMerchantDTO;
+import com.panzhihua.common.model.dtos.community.convenient.DisableOrEnableConvenientMerchantDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.BindUserPhoneDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.McsMerchantDTO;
+import com.panzhihua.common.model.dtos.grid.*;
+import com.panzhihua.common.model.dtos.partybuilding.ComPbCheckUserDTO;
+import com.panzhihua.common.model.dtos.user.PageFeedBackDTO;
+import com.panzhihua.common.model.dtos.user.PageUserAppletsBackstageDTO;
+import com.panzhihua.common.model.dtos.user.SysUserEditTipsDTO;
+import com.panzhihua.common.model.dtos.user.SysUserFeedbackDTO;
+import com.panzhihua.common.model.vos.*;
+import com.panzhihua.common.model.vos.shop.ShopStoreVO;
+import com.panzhihua.common.model.vos.user.*;
+import org.springframework.web.bind.annotation.RequestParam;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 用户
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-24 09:07
+ **/
+public interface UserService {
+    /**
+     * 小程序微信用户信息更新
+     *
+     * @param openid
+     *            小程序唯一ID
+     * @param sessionKey
+     *            会话密钥
+     * @param unionid
+     *            用户在开放平台的唯一标识符
+     * @return token
+     */
+    R updateInsertUser(String openid, String sessionKey, String unionid,String appId);
+
+    /**
+     * 维护小程序用户基本信息 头像 昵称 性别
+     *
+     * @param userId
+     *            数据库用户ID
+     * @param nickName
+     *            昵称
+     * @param gender
+     *            性别
+     * @param avatarUrl
+     *            头像
+     * @return 维护结果
+     */
+    R updateUserWeiXinInfo(Long userId, String nickName, int gender, String avatarUrl);
+
+    /**
+     * 维护微信用户手机号
+     *
+     * @param userId
+     *            数据库ID
+     * @param purePhoneNumber
+     *            没有区号的手机号
+     * @return 维护结果
+     */
+    R updateUserWeiXinPhone(Long userId, String purePhoneNumber);
+
+    /**
+     * 认证中心获取平台用户信息
+     *
+     * @return 用户基本信息、角色
+     * @param name
+     *            登录账户
+     * @param type
+     *            用户类型 用户类型 1 小程序 2 运营平台 3 社区平台
+     */
+    R<LoginUserInfoVO> getUserInfo(String name, int type,String appId);
+
+    /**
+     * 三端获取登录用户信息
+     *
+     * @param userId
+     *            用户ID
+     * @return 用户基本信息、角色
+     */
+    R<LoginUserInfoVO> getUserInfo(String userId);
+
+    /**
+     * 修改用户登录密码
+     *
+     * @param changePasswordVO
+     *            新密码
+     * @return 修改结果
+     */
+    R changePassword(ChangePasswordVO changePasswordVO);
+
+    /**
+     * 某社区后台人员查询
+     *
+     * @param param
+     *            名字
+     * @param communityId
+     *            社区id
+     * @return 人员集合
+     */
+    R listActivityManager(String param, Long communityId);
+
+    /**
+     * 微心愿搜索社区团队人员列表
+     *
+     * @param param
+     *            请求参数
+     * @param communityId
+     *            社区id
+     * @return 社区团队人员列表
+     */
+    R listActivityManager2(String param, Long communityId);
+
+    /**
+     * 分页查询人脸识别
+     *
+     * @param loginUserInfoVO
+     *            查询参数
+     * @return 分页集合
+     */
+    R pageUserFace(LoginUserInfoVO loginUserInfoVO);
+
+    /**
+     * 编辑人脸采集数据通过、驳回、删除
+     *
+     * @param loginUserInfoVO
+     *            操作信息
+     * @return 操作结果
+     */
+    R putUserFace(LoginUserInfoVO loginUserInfoVO);
+
+    /**
+     * 分页查询人口管理
+     *
+     * @param userInfoVO
+     *            查询参数
+     * @return 分页数据
+     */
+    R pageUser(AppletUserInfoVO userInfoVO);
+
+    /**
+     * 查询所有人员标签
+     *
+     * @return 标签集合
+     */
+    R listTag();
+
+    /**
+     * 人员详情
+     *
+     * @param userId
+     *            用户id
+     * @return 人员详情
+     */
+    R<LoginUserInfoVO> detailUser(Long userId);
+
+    /**
+     * 设置用户标签
+     *
+     * @param loginUserInfoVO
+     *            标签信息
+     * @return 设置结果
+     */
+    R putUserTag(LoginUserInfoVO loginUserInfoVO);
+
+    /**
+     * 修改用户志愿者状态
+     *
+     * @param phone
+     *            志愿者手机号
+     * @param type
+     *            1是志愿者 0 不是
+     */
+    R putUserIsVolunteer(String phone, int type);
+
+    /**
+     * 修改用户志愿者状态
+     *
+     * @param userId
+     *            用户ID
+     * @param type
+     *            1是志愿者 0 不是
+     */
+    R putUserIsVolunteerById(Long userId, int type);
+
+    /**
+     * 用户绑定社区、小区
+     *
+     * @param loginUserInfoVO
+     *            社区小区数据
+     * @return 绑定结果
+     */
+    R putUserCommunityArea(LoginUserInfoVO loginUserInfoVO);
+
+    /**
+     * 用户实名认证
+     *
+     * @param loginUserInfoVO
+     *            认证数据
+     * @return 认证结果
+     */
+    R putUserAuthentication(LoginUserInfoVO loginUserInfoVO);
+
+    /**
+     * 修改用户手机号
+     *
+     * @param userPhoneVO
+     *            手机号信息
+     * @return 修改结果
+     */
+    R putUserphone(UserPhoneVO userPhoneVO);
+
+    /**
+     * 修改用户信息
+     *
+     * @param loginUserInfoVO
+     *            修改内容
+     * @return 修改结果
+     */
+    R putUser(LoginUserInfoVO loginUserInfoVO);
+
+    /**
+     * 新增运营、社区后台账户
+     *
+     * @param administratorsUserVO
+     *            账户信息
+     * @return 新增结果
+     */
+    R addUserBackstage(AdministratorsUserVO administratorsUserVO);
+
+    /**
+     * 新增社区后台物业,社会组织,业主委员会账户
+     *
+     * @param administratorsUserVO
+     *            账户信息
+     * @return 新增结果
+     */
+    R addUserBackstageProperty(AdministratorsUserVO administratorsUserVO);
+
+    /**
+     * 编辑运营、社区后台账户
+     *
+     * @param administratorsUserVO
+     *            编辑账户内容
+     * @return 编辑结果
+     */
+    R putUserBackstage(AdministratorsUserVO administratorsUserVO);
+
+    /**
+     * 删除后台用户
+     *
+     * @param administratorsUserVO
+     *            用户主键
+     * @return 删除结果
+     */
+    R deleteUserBackstage(AdministratorsUserVO administratorsUserVO);
+
+    /**
+     * 分页查询后台用户
+     *
+     * @param administratorsUserVO
+     *            查询参数
+     * @return 后台用户
+     */
+    R pageUserBackstage(AdministratorsUserVO administratorsUserVO);
+
+    /**
+     * 保存操作日志
+     *
+     * @param operlog
+     *            日志内容
+     * @return 保存结果
+     */
+    R addOperLog(SysOperLogVO operlog);
+
+    /**
+     * 分页展示操作日志
+     *
+     * @param sysOperLogVO
+     *            分页参数
+     * @return 分页集合
+     */
+    R pageOperLog(SysOperLogVO sysOperLogVO);
+
+    /**
+     * 用户协议
+     *
+     * @return 协议集合
+     */
+    R listAgreement(Long communityId);
+
+    /**
+     * 编辑用户协议
+     *
+     * @param sysUserAgreementVO
+     *            编辑内容
+     * @return 编辑结果
+     */
+    R putAgreement(SysUserAgreementVO sysUserAgreementVO);
+
+    /**
+     * 用户标签
+     *
+     * @param communityId
+     *            社区id
+     * @return 标签集合
+     */
+    R listComMngUserTag(Long communityId);
+
+    /**
+     * 新增删除用户标签
+     *
+     * @param systemmanagementConfigVO
+     *            操作内容
+     * @return 操作结果
+     */
+    R putComMngUserTag(SystemmanagementConfigVO systemmanagementConfigVO);
+
+    /**
+     * 分页查询小程序用户
+     *
+     * @param pageUserAppletsBackstageDTO
+     *            查询参数
+     * @return 分页集合
+     */
+    R pageUserAppletsBackstage(PageUserAppletsBackstageDTO pageUserAppletsBackstageDTO);
+
+    /**
+     * 编辑用户状态
+     *
+     * @param pageUserAppletsBackstageDTO
+     *            启用或者禁用 1 启用 2 禁用
+     * @return 编辑结果
+     */
+    R putUserAppletsBackstage(PageUserAppletsBackstageDTO pageUserAppletsBackstageDTO);
+
+    /**
+     * 调试接口--清除昵称、社区、小区
+     *
+     * @param userId
+     *            登录用户id
+     * @return 清除结果
+     */
+    R deleteUserTest(Long userId);
+
+    /**
+     * 用户协议和隐私政策
+     *
+     * @param type
+     *            所属app 1居民端app 2网格员端app 3商家端app
+     * @return 协议内容
+     */
+    R userAgreement(int type,String appId);
+
+    /**
+     * 意见反馈
+     *
+     * @param sysUserFeedbackDTO
+     *            反馈内容
+     * @return 反馈结果
+     */
+    R addFeedback(SysUserFeedbackDTO sysUserFeedbackDTO);
+
+    /**
+     * 分页通知列表
+     *
+     * @param pageDTO
+     *            分页参数
+     * @return 分页结果
+     */
+    R pageNotice(PageDTO pageDTO);
+
+    /**
+     * 通知已读
+     *
+     * @param noticeReadDTO
+     *            通知已读
+     * @return 修改状态
+     */
+    R putNotice(NoticeReadDTO noticeReadDTO);
+
+    /**
+     * 分页查询用户意见反馈
+     *
+     * @param pageFeedBackDTO
+     *            分页查询参数
+     * @return 意见集合
+     */
+    R pageFeedback(PageFeedBackDTO pageFeedBackDTO);
+
+    /**
+     * 未读消息汇总
+     *
+     * @param userId
+     *            登录用户信息
+     * @return 未读汇总
+     */
+    R noticeUnreadNum(Long userId);
+
+    /**
+     * 反馈意见详情
+     *
+     * @param id
+     *            反馈主键
+     * @return 反馈详情
+     */
+    R detailFeedback(Long id);
+
+    /**
+     * 运营小程序后台数据看板
+     *
+     * @return 展示数据
+     */
+    R dataKanban(String areaCode);
+
+    /**
+     * 社区管理后台数据看板
+     *
+     * @param communityId
+     *            社区id
+     * @return 看板用户数据
+     */
+    R indexDataCommunityBackstage(Long communityId);
+
+    /**
+     * 定时任务维护用户持续登录时间
+     *
+     * @return 维护结果
+     */
+    R timedTaskContinuousLandingDays();
+
+    /**
+     * 新增用户通知
+     *
+     * @param sysUserNoticeVO
+     *            通知内容
+     * @return 新增结果
+     */
+    R addNotice(SysUserNoticeVO sysUserNoticeVO);
+
+    /**
+     * 修改用户的党员状态
+     *
+     * @param idCard
+     *            身份证号
+     * @return 修改结果
+     */
+    R updateUserIsPartymember(String idCard);
+
+    /**
+     * 修改用户的党员状态
+     *
+     * @param phone
+     *            身份证号
+     * @return 修改结果
+     */
+    R updateUserIsPartymemberByPhone(String phone);
+
+    /**
+     * 修改用户为非党员状态
+     *
+     * @param idCard
+     *            身份证号
+     * @return 修改结果
+     */
+    R updateUserNotPartymember(String idCard);
+
+    /**
+     * 获取各种协议
+     *
+     * @param type
+     *            1居民端app协议 2网格员端app协议 3商家端app协议 4隐私政策
+     * @return 协议内容
+     */
+    R agreement(Integer type,String appId);
+
+    /**
+     * 维护用户最后登录时间
+     *
+     * @param userId
+     *            用户主键
+     * @return 维护结果
+     */
+    R putUserLastLoginTime(Long userId);
+
+    /**
+     * 删除意见反馈
+     *
+     * @param id
+     *            主键
+     * @return 删除结果
+     */
+    R deleteFeedback(Long id);
+
+    /**
+     * 校验小区是否存在
+     *
+     * @param areaName
+     *            小区名字
+     * @return 校验结果
+     */
+    R checkAereaName(String areaName);
+
+    /**
+     * 社区人员详情包括导入人员
+     *
+     * @param userId
+     *            人员id
+     * @return CommunityUserInfoVO
+     */
+    CommunityUserInfoVO detailUserComunity(Long userId);
+
+    /**
+     * 用户搜索了就下载搜索的用户否则下载所有用户
+     *
+     * @param exportUserDTO
+     *            用户搜索内容
+     * @return List<EexcelUserDTO> excel内容
+     */
+    R export(ExportUserDTO exportUserDTO);
+
+    /**
+     * 通过手机号码查询用户信息
+     *
+     * @param phone
+     * @return
+     */
+    R getSysUserVOByPhone(String phone);
+
+    /**
+     * 查询当前社区所有标签以及预设标签
+     *
+     * @return 标签集合
+     */
+    R listTags();
+
+    /**
+     * 通过账号查询用户信息
+     *
+     * @param account
+     * @param type
+     * @return
+     */
+
+    R getSysUserVOByAccount(String account, Integer type);
+
+    /**
+     * 新增SysUser
+     *
+     * @param storeVO
+     *            请求参数
+     * @return 新增结果
+     */
+    R addSysUser(ShopStoreVO storeVO);
+
+    /**
+     * 修改SysUser用户信息
+     *
+     * @param storeVO
+     *            请求参数
+     * @return 修改结果
+     */
+    R editSysUser(ShopStoreVO storeVO);
+
+    /**
+     * 修改用户小程序首页活动提示
+     *
+     * @param userEditTipsDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    R editUserTips(SysUserEditTipsDTO userEditTipsDTO);
+
+    /**
+     * 家庭成员列表
+     *
+     * @param userId
+     *            登录用户
+     * @return 成员集合
+     */
+    R listFamily(Long userId, Long pageNum, Long pageSize);
+
+    /**
+     * 新增家庭成员
+     *
+     * @param comMngFamilyInfoVO
+     *            家庭成员基本信息
+     * @return 增加结果
+     */
+    R addFamily(ComMngFamilyInfoVO comMngFamilyInfoVO);
+
+    /**
+     * 编辑家庭成员
+     *
+     * @param comMngFamilyInfoVO
+     *            家庭成员信息
+     * @return 编辑结果
+     */
+    R putFamily(ComMngFamilyInfoVO comMngFamilyInfoVO);
+
+    /**
+     * 当前登陆用户的电子档案
+     *
+     * @param userId
+     * @return
+     */
+    R getUserArchives(Long userId);
+
+    /**
+     * 编辑电子档案
+     *
+     * @param userArchivesVO
+     * @return
+     */
+    R updateUserArchives(UpdateUserArchivesVO userArchivesVO);
+
+    /**
+     * 修改app用户密码
+     *
+     * @param userInfoAppDTO
+     *            请求参数
+     * @return 修改结果
+     */
+    R updateUserPassByApp(EditUserInfoPassAppDTO userInfoAppDTO);
+
+    /**
+     * 添加网格员
+     *
+     * @param eventGridMemberAddDTO
+     *            请求参数
+     * @return 结果
+     */
+    R addGridUser(EventGridMemberAddDTO eventGridMemberAddDTO);
+
+    /**
+     * 网格员管理
+     *
+     * @param memberRelationDTO
+     *            请求参数
+     * @return 网格员列表
+     */
+    R getGridMemberList(PageEventGridMemberRelationDTO memberRelationDTO);
+
+    /**
+     * 网格员编辑
+     *
+     * @param gridMemberDTO
+     *            请求参数
+     * @return 编辑结果
+     */
+    R editGridUser(EventGridMemberEditAdminDTO gridMemberDTO);
+
+    /**
+     * 网格员重置密码
+     *
+     * @param gridMemberDTO
+     *            请求参数
+     * @return 重置结果
+     */
+    R passResetUser(EventGridMemberPassResetDTO gridMemberDTO);
+
+    R deleteMembers(List<Long> Ids);
+
+    R gridMemberEditStatus(EventGridMemberEditStatusDTO gridMemberEditDTO);
+
+    R noTips(Long userId);
+
+    /**
+     * 查询社区的收益说明
+     *
+     * @param communityId
+     *            社区id
+     * @return 收益说明
+     */
+    R listAgreements(Long communityId);
+
+    R getGridIsOk(Long userId);
+
+    R getGridsMemberList(Long communityId);
+
+    /**
+     * 根据用户id查询用户openid
+     *
+     * @param userId
+     *            用户id
+     * @return openid
+     */
+    R getUserOpenId(Long userId);
+
+    /**
+     * 查询社区后台工作人员列表
+     *
+     * @param communityId
+     *            社区id
+     * @return 社区后台工作人员列表
+     */
+    R getUserListByCommunityId(Long communityId);
+
+    /**
+     * 检查当前用户是否是社区工作人员
+     * @param phone
+     * @param communityId
+     * @return
+     */
+    R checkCurrentUserIsTeam(String phone, Long communityId);
+    /**
+     * 重置密码
+     */
+    R resetPassword(Long userId);
+
+    /**
+     * 批量重置密码
+     */
+    R resetPasswordPatch(Long[] userId,String password);
+
+    /**
+     * 便民服务新增商家账号
+     * @param convenientMerchantDTO
+     * @return 商家用户id
+     */
+    R addConvenientMerchantUser(ConvenientMerchantDTO convenientMerchantDTO);
+
+    /**
+     * 修改便民服务商家绑定账号
+     * @param userId 用户id
+     * @param account 修改账户
+     * @return 修改结果
+     */
+    R putUserAccount(Long userId, String account);
+
+    /**
+     * 禁用/启用便民服务商家用户
+     * @param disableOrEnableConvenientMerchantDTO
+     * @return
+     */
+    R disableOrEnableMerchantUsers(DisableOrEnableConvenientMerchantDTO disableOrEnableConvenientMerchantDTO);
+
+    /**
+     * 根据openid维护社区团队里是否注册
+     * @param openid    用户微信唯一标识
+     */
+    void judgeCommunityTeam(String openid);
+
+    /**
+     * 数据看板升级版
+     *
+     * @return 运营后台数据看板升级版
+     */
+    R dataKanBans(DataKanBansDto dataKanBansDto);
+
+    /**
+     * 运营后台-用户数据统计汇总
+     * @return  用户数据统计汇总
+     */
+    R communityStatistics(String areaCode);
+
+    R communityStatisticsExport(String areaCode);
+
+    /**
+     * 通过UnionId获取用户信息
+     * @param unionId
+     * @return
+     */
+    R getUserInfoByUnionId(String unionId);
+
+    /**
+     * 微商业街新增商家账号
+     * @param mcsMerchantDTO
+     * @return 商家用户id
+     */
+    R addMcsMerchantUser(McsMerchantDTO mcsMerchantDTO);
+
+    /**
+     * 微商业街修改商家账号
+     * @param mcsMerchantDTO
+     * @return
+     */
+    R putMcsMerchantUser(McsMerchantDTO mcsMerchantDTO);
+
+    /**
+     * 检查用户是否有效
+     * @param userId
+     * @param type
+     * @return
+     */
+    Boolean checkUserIsValid(Long userId, Integer type);
+
+    /**
+     * 根据手机号、用户类型查询用户
+     * @param phone
+     * @param type
+     * @return
+     */
+    R getSysUserByPhone(String phone, Integer type);
+
+    /**
+     * 发送验证码
+     * @param phone 手机号
+     * @param clientIP 用户ip
+     * @param prefixKey redis Key 前缀
+     * @param limit 获取次数限制
+     * @param timeout 超次数获取时间等待
+     * @return
+     */
+    R sendMessageCode(String phone, String clientIP, String prefixKey, Integer limit, Integer timeout);
+
+    /**
+     * 根据openId获取微商业街用户
+     * @param openid
+     * @return
+     */
+    R getMcsUserByOpenId(String openid);
+
+    /**
+     * 商业街用户微信授权-绑定手机号
+     * @param bindUserPhoneDTO
+     * @return
+     */
+    R bindOrAddMcsUser(BindUserPhoneDTO bindUserPhoneDTO);
+
+    /**
+     * 更新街道id
+     * @param administratorsUserVO
+     * @return
+     */
+    R updateStreetId(AdministratorsUserVO administratorsUserVO);
+
+    /**
+     * 删除用户信息缓存
+     * @param phone
+     */
+    R deleteUserCashByPhone(String phone);
+
+    R updateUserPartyStatus(Long userId);
+
+    /**
+     * uu洗车登录
+     * @param uuLoginVO
+     * @return
+     */
+    R uuLogin(UuLoginVO uuLoginVO);
+
+    /**
+     * 导出验证密码
+     * @param account
+     * @param password
+     * @return
+     */
+    R checkExport(@RequestParam("account")String account, @RequestParam("password")String password,@RequestParam("oldPassword")String oldPassword);
+
+    /**
+     * 数据看板:数据总览
+     * @param type 查看类型
+     * @param streetId 街道id
+     * @param areaCode 区县code
+     * */
+    R newIndexData(Integer type, Long streetId,Long areaCode,String appid);
+
+    /**
+     * 用户占比统计
+     * @param type 查看类型
+     * @param streetId 街道id
+     * @param areaCode 区县code
+     * @param range  */
+    R userRate(Integer type, Long streetId, Long areaCode, Integer range,String appId);
+
+    /**
+     * 真实用户占比统计
+     * @param type 查看类型
+     * @param streetId 街道id
+     * @param areaCode 区县code
+     * @param range  */
+    R realUser(Integer type, Long streetId, Long areaCode, Integer range,String appId);
+
+
+    /**
+     * 用户行为折线图
+     * @param type 查看类型
+     * @param streetId 街道id
+     * @param areaCode 区县code
+     * @param range
+     * @param appId    */
+    R userActivity(Integer type, Long streetId, Long areaCode, Integer range, String appId);
+
+    /**
+     * 获取区县即下属街道名
+     * */
+    R getAreaAndStreet();
+
+    /**
+     * uu洗车通知推送
+     * @param phone
+     * @param orderStatus
+     * @return
+     */
+    R uuPush(@RequestParam("washPhone")String washPhone,@RequestParam("phone")String phone,@RequestParam("washName")String washName,@RequestParam("orderStatus")Integer orderStatus);
+
+    /**
+     * 无水洗车通知推送
+     * @param phone
+     * @param orderStatus
+     * @return
+     */
+    R wsPush(@RequestParam("washPhone")String washPhone,@RequestParam("phone")String phone,@RequestParam("washName")String washName,@RequestParam("orderStatus")Integer orderStatus);
+
+    /**
+     * 获取城镇或村落列表
+     * */
+    R getCommunityList(String name,Long id);
+
+    /**
+     * 获取所有城镇或村落列表
+     * @return
+     */
+    R getAllCommunityList();
+
+    /**
+     * 重置密码
+     * @param type
+     * @param account
+     * @return
+     */
+    R resetPassword(Integer type,String account,String appId);
+
+    /**
+     * 天府通办登录
+     * @param uuLoginVO
+     * @return
+     */
+    R tfLogin(UuLoginVO uuLoginVO);
+
+    /**
+     * 三说会堂新增业务中心或专家账号
+     * */
+    R addExpertOrIndustryCenter(AdministratorsUserVO administratorsUserVO);
+
+    /**
+     * 三说会堂后台重置密码
+     * */
+    R resetPassExpertOrIndustryCenter(String account,String password);
+
+    /**
+     * 用户授权
+     * @param userId
+     * @return
+     */
+    R accept(Long userId);
+
+    R addComPbCheckUser(ComPbCheckUserDTO comPbCheckUserDTO);
+
+    /**
+     * 移除专家权限
+     * */
+    R removeExpertRole(String phone);
+
+    /**
+     * 回复用户反馈
+     * */
+    R feedBackReply(SysUserFeedbackVO sysUserFeedbackVO);
+
+    /**
+     * 查看我的问题留言或者问题留言记录
+     * */
+    R myFeedBack(Long id,Integer type,Long propertyId);
+
+    /**
+     * 是否为物业公司登录
+     * */
+    R propertyCheck(String phone);
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/EventGridMemberBuildingRelationServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/EventGridMemberBuildingRelationServiceImpl.java
new file mode 100644
index 0000000..8f03da4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/EventGridMemberBuildingRelationServiceImpl.java
@@ -0,0 +1,23 @@
+package com.panzhihua.service_user.service.impl;
+
+import org.springframework.stereotype.Service;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.service_user.dao.EventGridMemberBuildingRelationMapper;
+import com.panzhihua.service_user.model.dos.EventGridMemberBuildingRelationDO;
+import com.panzhihua.service_user.service.EventGridMemberBuildingRelationService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @auther lyq
+ * @create 2021-07-02 15:45:40
+ * @describe 网格员与楼栋关联表服务实现类
+ */
+@Slf4j
+@Service
+public class EventGridMemberBuildingRelationServiceImpl
+    extends ServiceImpl<EventGridMemberBuildingRelationMapper, EventGridMemberBuildingRelationDO>
+    implements EventGridMemberBuildingRelationService {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/RoleServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/RoleServiceImpl.java
new file mode 100644
index 0000000..9194cfe
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/RoleServiceImpl.java
@@ -0,0 +1,342 @@
+package com.panzhihua.service_user.service.impl;
+
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+import java.util.stream.Collectors;
+
+import javax.annotation.Resource;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.springframework.beans.BeanUtils;
+import org.springframework.data.redis.core.StringRedisTemplate;
+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.panzhihua.common.constants.SecurityConstants;
+import com.panzhihua.common.model.vos.MenuVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.user.MenuRoleVO;
+import com.panzhihua.common.model.vos.user.RoleVO;
+import com.panzhihua.common.model.vos.user.SysMenuVO;
+import com.panzhihua.service_user.dao.RoleDAO;
+import com.panzhihua.service_user.dao.SysMenuDAO;
+import com.panzhihua.service_user.dao.SysRoleMenuDAO;
+import com.panzhihua.service_user.dao.SysUserRoleDAO;
+import com.panzhihua.service_user.model.dos.SysMenuDO;
+import com.panzhihua.service_user.model.dos.SysRoleDO;
+import com.panzhihua.service_user.model.dos.SysRoleMenuDO;
+import com.panzhihua.service_user.model.dos.SysUserRoleDO;
+import com.panzhihua.service_user.service.RoleService;
+
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.util.StringUtils;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 权限
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-25 15:59
+ **/
+@Slf4j
+@Service
+public class RoleServiceImpl implements RoleService {
+    @Resource
+    private RoleDAO roleDAO;
+    @Resource
+    private SysUserRoleDAO sysUserRoleDAO;
+    @Resource
+    private SysMenuDAO sysMenuDAO;
+    @Resource
+    private SysRoleMenuDAO sysRoleMenuDAO;
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+
+    /**
+     * 获取平台所有的菜单按钮权限
+     *
+     * @return 菜单按钮权限
+     */
+    @Override
+    public R<List<MenuVO>> getAllMenu() {
+        List<MenuVO> menuVOS = roleDAO.selectAllMenuUrl();
+        return R.ok(menuVOS);
+    }
+
+    /**
+     * 获取某个人的所有角色
+     *
+     * @param username
+     *            用户ID
+     * @return 所有角色
+     */
+    @Override
+    public R<List<String>> getUserRoles(String username) {
+        List<String> roles = roleDAO.selectRoles(username);
+        return R.ok(roles);
+    }
+
+    /**
+     * 查询社区的党委角色
+     *
+     * @param communityId
+     *            社区id
+     * @return 党委角色列表
+     */
+    @Override
+    public R listIdentity(Integer communityId) {
+        List<RoleVO> roleVOS = new ArrayList<>();
+        List<SysRoleDO> sysRoleDOS =
+            roleDAO.selectList(new QueryWrapper<SysRoleDO>().lambda().eq(SysRoleDO::getCommunityId, communityId));
+        if (!ObjectUtils.isEmpty(sysRoleDOS)) {
+            sysRoleDOS.forEach(sysRoleDO -> {
+                RoleVO roleVO = new RoleVO();
+                BeanUtils.copyProperties(sysRoleDO, roleVO);
+                roleVOS.add(roleVO);
+            });
+        }
+        return R.ok(roleVOS);
+    }
+
+    /**
+     * 角色下拉列表
+     *
+     * @param communityId
+     *            对应社区 0 表示运营后台
+     * @return 角色集合
+     */
+    @Override
+    public R listRoleBackstage(Long communityId,Integer pageNum,Integer pageSize,String areaCode) {
+        LambdaQueryWrapper<SysRoleDO> queryWrapper=new QueryWrapper<SysRoleDO>().lambda().eq(SysRoleDO::getCommunityId, communityId);
+        if(com.panzhihua.common.utlis.StringUtils.isNotEmpty(areaCode)){
+            queryWrapper.eq(SysRoleDO::getAreaCode,areaCode);
+        }
+        queryWrapper.orderByDesc(SysRoleDO::getCreateAt);
+        IPage<SysRoleDO> sysRoleDOIPage=this.roleDAO.selectPage(new Page<>(pageNum,pageSize),queryWrapper);
+        return R.ok(sysRoleDOIPage);
+    }
+
+    /**
+     * 新增角色
+     *
+     * @param roleVO
+     *            角色信息
+     * @return 新增结果
+     */
+    @Override
+    public R addRoleBackstage(RoleVO roleVO) {
+        SysRoleDO sysRoleDO = new SysRoleDO();
+        BeanUtils.copyProperties(roleVO, sysRoleDO);
+        int insert = 0;
+        try {
+            insert = roleDAO.insert(sysRoleDO);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("新增角色失败,失败原因【{}】", e.getMessage());
+                return R.fail("角色已经存在");
+        }
+        if (insert > 0) {
+            SysRoleDO roleDO = roleDAO.selectOne(new QueryWrapper<SysRoleDO>().lambda()
+                .eq(SysRoleDO::getRoleKey, roleVO.getRoleKey()).eq(SysRoleDO::getCommunityId, roleVO.getCommunityId()));
+            return R.ok(roleDO.getRoleId());
+        }
+        return R.fail();
+    }
+
+    /**
+     * 删除角色
+     *
+     * @param roleVO
+     *            角色主键
+     * @return 删除结果
+     */
+    @Override
+    public R deleteRoleBackstage(RoleVO roleVO) {
+        Integer integer = sysUserRoleDAO
+            .selectCount(new QueryWrapper<SysUserRoleDO>().lambda().eq(SysUserRoleDO::getRoleId, roleVO.getRoleId()));
+        if (integer > 0) {
+            return R.fail("该角色的关联用户数量不为0,不能删除");
+        }
+        int delete = roleDAO.deleteById(roleVO.getRoleId());
+        if (delete == 0) {
+            return R.fail("角色不存在");
+        }
+        return R.ok();
+    }
+
+    /**
+     * 平台菜单列表
+     * 
+     * @param communityId
+     *            社区id 0 运营平台
+     * @return 菜单集合
+     */
+    @Override
+    public R listMenuBackstage(Long communityId,String appId) {
+        if("wx118de8a734d269f0".equals(appId)){
+            communityId=2L;
+        }
+        else {
+            communityId=1552661941170868228L;
+        }
+        List<SysMenuVO> sysMenuVOS = new ArrayList<>();
+        List<SysMenuDO> sysMenuDOS =
+            sysMenuDAO.selectList(new QueryWrapper<SysMenuDO>().lambda().eq(SysMenuDO::getParentId, 0)
+                .eq(SysMenuDO::getCommunityId, communityId).orderByAsc(SysMenuDO::getOrderNum));
+        if (!ObjectUtils.isEmpty(sysMenuDOS)) {
+            sysMenuDOS.forEach(sysMenuDO -> {
+                SysMenuVO sysMenuVO = new SysMenuVO();
+                BeanUtils.copyProperties(sysMenuDO, sysMenuVO);
+                Long menuId = sysMenuDO.getMenuId();
+                List<SysMenuDO> sysMenuDOS1 = sysMenuDAO.selectList(new QueryWrapper<SysMenuDO>().lambda()
+                    .eq(SysMenuDO::getParentId, menuId).orderByAsc(SysMenuDO::getOrderNum));
+                List<SysMenuVO> sysMenuVOS1 = new ArrayList<>();
+                if (!ObjectUtils.isEmpty(sysMenuDOS1)) {
+                    sysMenuDOS1.forEach(sysMenuDO1 -> {
+                        SysMenuVO sysMenuVO1 = new SysMenuVO();
+                        BeanUtils.copyProperties(sysMenuDO1, sysMenuVO1);
+                        List<SysMenuDO> sysMenuDOList = sysMenuDAO.selectList(new QueryWrapper<SysMenuDO>().lambda()
+                                .eq(SysMenuDO::getParentId, sysMenuDO1.getMenuId()).orderByAsc(SysMenuDO::getOrderNum));
+                        List<SysMenuVO> sysMenuVOList=new ArrayList<>();
+                        sysMenuDOList.forEach(sysMenuDO2 -> {
+                            SysMenuVO sysMenuVO2=new SysMenuVO();
+                            BeanUtils.copyProperties(sysMenuDO2,sysMenuVO2);
+                            sysMenuVOList.add(sysMenuVO2);
+                        });
+                        sysMenuVO1.setSysMenuVOList(sysMenuVOList);
+                        sysMenuVOS1.add(sysMenuVO1);
+                    });
+                    sysMenuVO.setSysMenuVOList(sysMenuVOS1);
+                }
+                sysMenuVOS.add(sysMenuVO);
+            });
+        }
+        return R.ok(sysMenuVOS);
+    }
+
+    /**
+     * 设置角色的权限
+     *
+     * @param menuRoleVO
+     *            用户设置的权限id
+     * @return 设置结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R putMenuRole(MenuRoleVO menuRoleVO) {
+        List<Long> menuIds = new ArrayList<>();
+        Long roleId = menuRoleVO.getRoleId();
+        if(!StringUtils.isEmpty(menuRoleVO.getRoleName())){
+            SysRoleDO sysRoleDO=new SysRoleDO();
+            sysRoleDO.setRoleId(roleId);
+            sysRoleDO.setRoleName(menuRoleVO.getRoleName());
+            this.roleDAO.updateById(sysRoleDO);
+        }
+        // 删除旧的
+        sysRoleMenuDAO.delete(new QueryWrapper<SysRoleMenuDO>().lambda().eq(SysRoleMenuDO::getRoleId, roleId));
+        // 创建新的
+        Integer isAll = menuRoleVO.getIsAll();
+        if (isAll.intValue() == 1) {
+            menuIds = sysMenuDAO
+                .selectList(
+                    new QueryWrapper<SysMenuDO>().lambda().eq(SysMenuDO::getCommunityId, 2))
+                .stream().map(sysMenuDO -> sysMenuDO.getMenuId()).collect(Collectors.toList());
+        } else {
+            menuIds = menuRoleVO.getMenuIds();
+        }
+        for (int i = 0; i < menuIds.size(); i++) {
+            SysRoleMenuDO sysRoleMenuDO = new SysRoleMenuDO();
+            sysRoleMenuDO.setMenuId(menuIds.get(i));
+            sysRoleMenuDO.setRoleId(roleId);
+            sysRoleMenuDAO.insert(sysRoleMenuDO);
+        }
+        // 清除缓存
+        stringRedisTemplate.delete(SecurityConstants.ROLE_ALL);
+        return R.ok();
+    }
+
+    /**
+     * 用户菜单获取
+     *
+     * @param userId
+     *            登录用户id
+     * @return 用户菜单
+     */
+    @Override
+    public R listmenu(Long userId) {
+        SysUserRoleDO sysUserRoleDO =
+            sysUserRoleDAO.selectOne(new QueryWrapper<SysUserRoleDO>().lambda().eq(SysUserRoleDO::getUserId, userId));
+        if (ObjectUtils.isEmpty(sysUserRoleDO)) {
+            return R.fail("用户未绑定角色");
+        }
+        Long roleId = sysUserRoleDO.getRoleId();
+        List<SysRoleMenuDO> sysRoleMenuDOS =
+            sysRoleMenuDAO.selectList(new QueryWrapper<SysRoleMenuDO>().lambda().eq(SysRoleMenuDO::getRoleId, roleId));
+        if (ObjectUtils.isEmpty(sysRoleMenuDOS)) {
+            return R.fail("用户没有任何权限");
+        }
+        List<Long> collect =
+            sysRoleMenuDOS.stream().map(sysRoleMenuDO -> sysRoleMenuDO.getMenuId()).collect(Collectors.toList());
+        List<SysMenuDO> sysMenuDOS =
+            sysMenuDAO.selectList(new QueryWrapper<SysMenuDO>().lambda().in(SysMenuDO::getMenuId, collect).eq(SysMenuDO::getParentId,0));
+        List<SysMenuVO> sysMenuVOS = new ArrayList<>();
+        sysMenuDOS.forEach(sysMenuDO -> {
+            SysMenuVO sysMenuVO = new SysMenuVO();
+            List<SysMenuVO> menuVOS=new ArrayList<>();
+            BeanUtils.copyProperties(sysMenuDO, sysMenuVO);
+            List<SysMenuDO> sysMenuDOList=sysMenuDAO.selectList(new QueryWrapper<SysMenuDO>().lambda().eq(SysMenuDO::getParentId,sysMenuDO.getMenuId()).in(SysMenuDO::getMenuId, collect));
+            sysMenuDOList.forEach(sysMenuDO1->{
+                SysMenuVO sysMenuVO1 = new SysMenuVO();
+                List<SysMenuVO> sysMenuVOList=new ArrayList<>();
+                BeanUtils.copyProperties(sysMenuDO1, sysMenuVO1);
+                List<SysMenuDO> sysMenuDOList1=sysMenuDAO.selectList(new QueryWrapper<SysMenuDO>().lambda().eq(SysMenuDO::getParentId,sysMenuDO1.getMenuId()).in(SysMenuDO::getMenuId, collect));
+                sysMenuDOList1.forEach(sysMenuDO2 -> {
+                    SysMenuVO sysMenuVO2=new SysMenuVO();
+                    BeanUtils.copyProperties(sysMenuDO2,sysMenuVO2);
+                    sysMenuVOList.add(sysMenuVO2);
+                });
+                sysMenuVO1.setSysMenuVOList(sysMenuVOList.stream().sorted(Comparator.comparing(SysMenuVO::getOrderNum)).collect(Collectors.toList()));
+                menuVOS.add(sysMenuVO1);
+            });
+            sysMenuVO.setSysMenuVOList(menuVOS.stream().sorted(Comparator.comparing(SysMenuVO::getOrderNum)).collect(Collectors.toList()));
+            sysMenuVOS.add(sysMenuVO);
+        });
+        return R.ok(sysMenuVOS.stream().sorted(Comparator.comparing(SysMenuVO::getOrderNum)).collect(Collectors.toList()));
+    }
+
+    /**
+     * 获取角色的权限配置列表
+     *
+     * @param roleId
+     *            角色id
+     * @return 菜单列表
+     */
+    @Override
+    public R listMenuBackstageByRole(Long roleId) {
+        List<SysRoleMenuDO> sysRoleMenuDOS =
+            sysRoleMenuDAO.selectList(new QueryWrapper<SysRoleMenuDO>().lambda().eq(SysRoleMenuDO::getRoleId, roleId));
+        if (!ObjectUtils.isEmpty(sysRoleMenuDOS)) {
+            List<Long> longs =
+                sysRoleMenuDOS.stream().map(sysRoleMenuDO -> sysRoleMenuDO.getMenuId()).collect(Collectors.toList());
+            List<SysMenuDO> sysMenuDOList=this.sysMenuDAO.selectList(new QueryWrapper<SysMenuDO>().lambda().in(SysMenuDO::getMenuId,longs).eq(SysMenuDO::getParentId,0));
+            sysMenuDOList.forEach(sysMenuDO -> {
+                List<SysMenuDO> sysMenuDOS=this.sysMenuDAO.selectList(new QueryWrapper<SysMenuDO>().lambda().in(SysMenuDO::getMenuId,longs).eq(SysMenuDO::getParentId,sysMenuDO.getMenuId()));
+                sysMenuDOS.forEach(sysMenuDO1 -> {
+                    List<SysMenuDO> sysMenuDOS1=this.sysMenuDAO.selectList(new QueryWrapper<SysMenuDO>().lambda().in(SysMenuDO::getMenuId,longs).eq(SysMenuDO::getParentId,sysMenuDO1.getMenuId()));
+                    if(!sysMenuDOS1.isEmpty()){
+                        longs.remove(sysMenuDO1.getMenuId());
+                    }
+                });
+                if(!sysMenuDOS.isEmpty()){
+                    longs.remove(sysMenuDO.getMenuId());
+                }
+            });
+            return R.ok(longs);
+        }
+        return R.fail();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/SysAppConfigServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/SysAppConfigServiceImpl.java
new file mode 100644
index 0000000..2b6f9e4
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/SysAppConfigServiceImpl.java
@@ -0,0 +1,26 @@
+package com.panzhihua.service_user.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_user.entity.SysAppConfig;
+import com.panzhihua.service_user.dao.SysAppConfigDao;
+import com.panzhihua.service_user.service.SysAppConfigService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * (SysAppConfig)表服务实现类
+ *
+ * @author makejava
+ * @since 2022-01-13 10:10:18
+ */
+@Slf4j
+@Service
+public class SysAppConfigServiceImpl extends ServiceImpl<SysAppConfigDao, SysAppConfig> implements SysAppConfigService {
+
+    @Override
+    public R pageList(CommonPage commonPage) {
+        return null;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/SysTemplateConfigServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/SysTemplateConfigServiceImpl.java
new file mode 100644
index 0000000..064e9e1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/SysTemplateConfigServiceImpl.java
@@ -0,0 +1,26 @@
+package com.panzhihua.service_user.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.service_user.entity.SysTemplateConfig;
+import com.panzhihua.service_user.dao.SysTemplateConfigDao;
+import com.panzhihua.service_user.service.SysTemplateConfigService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+/**
+ * (SysTemplateConfig)表服务实现类
+ *
+ * @author makejava
+ * @since 2022-01-13 14:29:56
+ */
+@Slf4j
+@Service
+public class SysTemplateConfigServiceImpl extends ServiceImpl<SysTemplateConfigDao, SysTemplateConfig> implements SysTemplateConfigService {
+
+    @Override
+    public R pageList(CommonPage commonPage) {
+        return null;
+    }
+}
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
new file mode 100644
index 0000000..4bbd92b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/SysUserInputServiceImpl.java
@@ -0,0 +1,424 @@
+package com.panzhihua.service_user.service.impl;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.apache.commons.lang3.ObjectUtils;
+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.transaction.annotation.Transactional;
+
+import com.alibaba.fastjson.JSONArray;
+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.model.dtos.community.ExportSpecialUserDTO;
+import com.panzhihua.common.model.dtos.community.ExportUserDTO;
+import com.panzhihua.common.model.dtos.user.ComMngUserTagDTO;
+import com.panzhihua.common.model.dtos.user.EexcelUserDTO;
+import com.panzhihua.common.model.dtos.user.InputUserTagsDTO;
+import com.panzhihua.common.model.dtos.user.PageInputUserDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ComMngStructAreaVO;
+import com.panzhihua.common.model.vos.community.ComMngStructHouseVO;
+import com.panzhihua.common.model.vos.user.ComMngFamilyInfoVO;
+import com.panzhihua.common.model.vos.user.ComMngTagVO;
+import com.panzhihua.common.model.vos.user.CommunityUserInfoVO;
+import com.panzhihua.common.model.vos.user.InputUserInfoVO;
+import com.panzhihua.common.utlis.IdCard;
+import com.panzhihua.common.utlis.SensitiveUtil;
+import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.service_user.dao.ComMngUserTagDAO;
+import com.panzhihua.service_user.dao.SysUserInputDAO;
+import com.panzhihua.service_user.model.dos.ComMngUserTagDO;
+import com.panzhihua.service_user.model.dos.SysUserInputDO;
+import com.panzhihua.service_user.service.SysUserInputService;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 居民导入
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-02-05 17:42
+ **/
+@Service
+public class SysUserInputServiceImpl extends ServiceImpl<SysUserInputDAO, SysUserInputDO>
+    implements SysUserInputService {
+    @Resource
+    private SysUserInputDAO sysUserInputDAO;
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+    @Resource
+    private ComMngUserTagDAO comMngUserTagDAO;
+
+    /**
+     * 批量导入居民用户
+     * 
+     * @param list
+     *            居民用户集合
+     * @param areaName
+     *            小区名字
+     * @return 导入结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R batchSaveUser(List<EexcelUserDTO> list, StringBuffer areaName) {
+        List<SysUserInputDO> sysUserInputDOS = new ArrayList<>();
+        if (!ObjectUtils.isEmpty(list)) {
+            ComMngStructAreaVO comMngStructAreaVO = sysUserInputDAO.selectByAreaName(areaName.toString());
+            // 查询该小区所有房屋信息用来进行匹配房屋编码
+            String key = "house_" + areaName;
+            Boolean aBoolean = stringRedisTemplate.hasKey(key);
+            ValueOperations<String, String> stringStringValueOperations = stringRedisTemplate.opsForValue();
+            List<ComMngStructHouseVO> comMngStructHouseVOS = new ArrayList<>();
+            if (aBoolean) {
+                String value = stringStringValueOperations.get(key);
+                comMngStructHouseVOS = JSONArray.parseArray(value, ComMngStructHouseVO.class);
+            } else {
+                comMngStructHouseVOS = sysUserInputDAO.selectHouserByareaName(areaName.toString());
+            }
+            List<ComMngStructHouseVO> comMngStructHouseVOS1 = comMngStructHouseVOS;
+            list.forEach(eexcelUserDTO -> {
+                // 判断身份证和门牌号是否重复
+                int count = sysUserInputDAO.selectCount(
+                    new QueryWrapper<SysUserInputDO>().lambda().eq(SysUserInputDO::getIdCard, eexcelUserDTO.getIdCard())
+                        .and(wrapper -> wrapper.eq(SysUserInputDO::getDoorNumber, eexcelUserDTO.getDoorNumber())));
+                if (count == 0) {
+                    SysUserInputDO sysUserInputDO = new SysUserInputDO();
+                    String doorNumber = eexcelUserDTO.getDoorNumber();
+                    // 暂时注释门牌号匹配设置房屋编号功能
+                    // List<ComMngStructHouseVO> collect = comMngStructHouseVOS1.stream().filter(comMngStructHouseVO ->
+                    // comMngStructHouseVO.getHouseName().equals(doorNumber)).collect(Collectors.toList());
+                    // if (ObjectUtils.isEmpty(collect)) {
+                    // throw new ServiceException("门牌号后台不存在或格式错误,错误门牌号为"+doorNumber);
+                    // }else{
+                    // sysUserInputDO.setHouseCode(collect.get(0).getHouseCode());
+                    // }
+                    sysUserInputDO.setAreaId(comMngStructAreaVO.getId());
+                    sysUserInputDO.setCommunityId(comMngStructAreaVO.getCommunityId());
+                    sysUserInputDO.setCompany(eexcelUserDTO.getCompany());
+                    sysUserInputDO.setDoorNumber(doorNumber);
+                    sysUserInputDO.setEducation(eexcelUserDTO.getEducation());
+                    sysUserInputDO.setIdCard(eexcelUserDTO.getIdCard());
+                    sysUserInputDO.setIsContact(eexcelUserDTO.getIsContact().equals("是") ? 1 : 0);
+                    sysUserInputDO.setIsPanzhihua(eexcelUserDTO.getIsPanZhiHua().equals("是") ? 1 : 0);
+                    sysUserInputDO.setIsRent(eexcelUserDTO.getIsRent().equals("是") ? 1 : 0);
+                    sysUserInputDO.setKeyPersonnel(eexcelUserDTO.getKeyPersonnel().equals("是") ? 1 : 0);
+                    sysUserInputDO.setLowIncomeHouseholds(eexcelUserDTO.getLowIncomeHouseholds().equals("是") ? 1 : 0);
+                    sysUserInputDO.setLowIncomePeople(eexcelUserDTO.getLowIncomePeople().equals("是") ? 1 : 0);
+                    sysUserInputDO.setMajor(eexcelUserDTO.getMajor().equals("是") ? 1 : 0);
+                    sysUserInputDO.setMaritalStatus(eexcelUserDTO.getMaritalStatus().equals("是") ? 1 : 0);
+                    sysUserInputDO.setName(eexcelUserDTO.getName());
+                    sysUserInputDO.setNation(eexcelUserDTO.getNation());
+                    sysUserInputDO.setOldPeople(eexcelUserDTO.getOldPeople().equals("是") ? 1 : 0);
+                    sysUserInputDO.setDisability(eexcelUserDTO.getDisability().equals("是") ? 1 : 0);
+                    sysUserInputDO.setPhone(eexcelUserDTO.getPhone());
+                    String politicalOutlook = eexcelUserDTO.getPoliticalOutlook();
+                    if (!ObjectUtils.isEmpty(politicalOutlook)) {
+                        sysUserInputDO.setPoliticalOutlook(
+                            politicalOutlook.equals("党员") ? 1 : politicalOutlook.equals("团员") ? 2 : 3);
+                    } else {
+                        sysUserInputDO.setPoliticalOutlook(3);
+                    }
+                    sysUserInputDO.setResidence(eexcelUserDTO.getResidence());
+                    sysUserInputDO.setSituation(eexcelUserDTO.getSituation());
+                    sysUserInputDO.setSoldier(eexcelUserDTO.getSoldier().equals("是") ? 1 : 0);
+                    sysUserInputDO.setSpecialServiceFamily(eexcelUserDTO.getSpecialServiceFamily().equals("是") ? 1 : 0);
+
+                    sysUserInputDOS.add(sysUserInputDO);
+                }
+            });
+            this.saveBatch(sysUserInputDOS);
+        }
+        return R.ok();
+    }
+
+    /**
+     * 社区人员详情包括导入人员
+     *
+     * @param userId
+     *            人员id
+     * @return CommunityUserInfoVO
+     */
+    @Override
+    public CommunityUserInfoVO detailUserComunity(Long userId) {
+        CommunityUserInfoVO communityUserInfoVO=null;
+//        userId = userId - 100000000l;
+        SysUserInputDO sysUserInputDO = sysUserInputDAO.selectById(userId);
+        if (!org.springframework.util.ObjectUtils.isEmpty(sysUserInputDO)) {
+            communityUserInfoVO = new CommunityUserInfoVO();
+            BeanUtils.copyProperties(sysUserInputDO, communityUserInfoVO);
+            String idCard = sysUserInputDO.getIdCard();
+            if (!org.springframework.util.ObjectUtils.isEmpty(idCard)) {
+                communityUserInfoVO.setAge(IdCard.IdNOToAge(idCard));
+                communityUserInfoVO.setBirthday(IdCard.birthDay(idCard));
+                communityUserInfoVO.setIdCard(idCard);
+                communityUserInfoVO.setSex(IdCard.sex(idCard));
+            }
+            String phone = sysUserInputDO.getPhone();
+            communityUserInfoVO.setPhone(phone);
+            Integer keyPersonnel = sysUserInputDO.getKeyPersonnel();
+            Integer specialServiceFamily = sysUserInputDO.getSpecialServiceFamily();
+            Integer soldier = sysUserInputDO.getSoldier();
+            Integer lowincomeHouseholds = sysUserInputDO.getLowIncomeHouseholds();
+            Integer lowincomePeople = sysUserInputDO.getLowIncomePeople();
+            Integer oldPeople = sysUserInputDO.getOldPeople();
+            Integer disability = sysUserInputDO.getDisability();
+
+            StringBuilder stringBuilder = new StringBuilder();
+            if (keyPersonnel.intValue() == 1) {
+                stringBuilder.append("重点人员,");
+            }
+            if (specialServiceFamily.intValue() == 1) {
+                stringBuilder.append("特服家庭,");
+            }
+            if (soldier.intValue() == 1) {
+                stringBuilder.append("军人,");
+            }
+            if (lowincomeHouseholds.intValue() == 1) {
+                stringBuilder.append("低保户,");
+            }
+            if (lowincomePeople.intValue() == 1) {
+                stringBuilder.append("低收入人员,");
+            }
+            if (oldPeople.intValue() == 1) {
+                stringBuilder.append("高龄老人,");
+            }
+            if (disability.intValue() == 1) {
+                stringBuilder.append("残疾人,");
+            }
+            communityUserInfoVO.setTags(stringBuilder.toString());
+            communityUserInfoVO.setUserId(userId);
+            communityUserInfoVO.setIsVolunteer(0);
+            String doorNumber = sysUserInputDO.getDoorNumber();
+            List<ComMngFamilyInfoVO> comMngFamilyInfoVOS = sysUserInputDAO.selectListFamily(doorNumber, userId);
+            communityUserInfoVO.setComMngFamilyInfoVOS(comMngFamilyInfoVOS);
+        }
+        return communityUserInfoVO;
+    }
+
+    @Override
+    public R pageInputUser(PageInputUserDTO pageInputUserDTO) {
+        Page page = new Page<>();
+        Long pageNum = pageInputUserDTO.getPageNum();
+        Long pageSize = pageInputUserDTO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<InputUserInfoVO> iPage = sysUserInputDAO.pageInputUser(page, pageInputUserDTO);
+        iPage.getRecords().forEach(record -> {
+            record.setPhone(SensitiveUtil.desensitizedPhoneNumber(record.getPhone()));
+            record.setIdCard(SensitiveUtil.desensitizedIdNumber(record.getIdCard()));
+            if (!StringUtils.isEmpty(record.getTags()) && record.getTags().endsWith(",")) {
+                record.setTags(record.getTags().substring(0, record.getTags().length() - 1));
+            }
+        });
+        return R.ok(iPage);
+    }
+
+    @Override
+    public R putUserTag(InputUserTagsDTO inputUserTagsDTO) {
+        SysUserInputDO userInputDO = new SysUserInputDO();
+        userInputDO.setId(inputUserTagsDTO.getId());
+        userInputDO.setTags(inputUserTagsDTO.getTags());
+        List<SysUserInputDO> all = sysUserInputDAO
+            .selectList(new QueryWrapper<SysUserInputDO>().lambda().eq(SysUserInputDO::getId, userInputDO.getId()));
+        all.forEach(d -> {
+            if (!StringUtils.isEmpty(d.getTags())) {
+                d.setTags(d.getTags() + "," + inputUserTagsDTO.getTags());
+            } else {
+                d.setTags(inputUserTagsDTO.getTags());
+            }
+            sysUserInputDAO.updateById(userInputDO);
+
+        });
+        return R.ok();
+    }
+
+    @Override
+    public R exportInputUser(ExportUserDTO exportUserDTO) {
+        List<EexcelUserDTO> eexcelUserDTOS = sysUserInputDAO.selectExport(exportUserDTO);
+        return R.ok(eexcelUserDTOS);
+    }
+
+    @Override
+    public R inputUserDetail(Long id) {
+        InputUserInfoVO inputUserInfoVO = new InputUserInfoVO();
+        SysUserInputDO sysUserInputDO = sysUserInputDAO.selectById(id);
+        if (!org.springframework.util.ObjectUtils.isEmpty(sysUserInputDO)) {
+            BeanUtils.copyProperties(sysUserInputDO, inputUserInfoVO);
+            String idCard = sysUserInputDO.getIdCard();
+            if (!org.springframework.util.ObjectUtils.isEmpty(idCard)) {
+                inputUserInfoVO.setAge(IdCard.IdNOToAge(idCard));
+                inputUserInfoVO.setBirthday(IdCard.birthDay(idCard));
+                inputUserInfoVO.setIdCard(idCard);
+                inputUserInfoVO.setSex(IdCard.sex(idCard));
+            }
+            Integer keyPersonnel = sysUserInputDO.getKeyPersonnel();
+            Integer specialServiceFamily = sysUserInputDO.getSpecialServiceFamily();
+            Integer soldier = sysUserInputDO.getSoldier();
+            Integer lowincomeHouseholds = sysUserInputDO.getLowIncomeHouseholds();
+            Integer lowincomePeople = sysUserInputDO.getLowIncomePeople();
+            Integer oldPeople = sysUserInputDO.getOldPeople();
+            Integer disability = sysUserInputDO.getDisability();
+
+            StringBuilder stringBuilder = new StringBuilder();
+            if (keyPersonnel.intValue() == 1) {
+                stringBuilder.append("重点人员,");
+            }
+            if (specialServiceFamily.intValue() == 1) {
+                stringBuilder.append("特服家庭,");
+            }
+            if (soldier.intValue() == 1) {
+                stringBuilder.append("军人,");
+            }
+            if (lowincomeHouseholds.intValue() == 1) {
+                stringBuilder.append("低保户,");
+            }
+            if (lowincomePeople.intValue() == 1) {
+                stringBuilder.append("低收入人员,");
+            }
+            if (oldPeople.intValue() == 1) {
+                stringBuilder.append("高龄老人,");
+            }
+            if (disability.intValue() == 1) {
+                stringBuilder.append("残疾人,");
+            }
+            inputUserInfoVO.setTags(stringBuilder.toString());
+            String doorNumber = sysUserInputDO.getDoorNumber();
+            List<ComMngFamilyInfoVO> comMngFamilyInfoVOS = sysUserInputDAO.selectListFamily(doorNumber, id);
+            inputUserInfoVO.setComMngFamilyInfoVOS(comMngFamilyInfoVOS);
+            List<ComMngStructHouseVO> comMngStructHouseVOS =
+                sysUserInputDAO.selectUserHouseList(inputUserInfoVO.getIdCard());
+            inputUserInfoVO.setComMngStructHouseVOS(comMngStructHouseVOS);
+        }
+        return R.ok(inputUserInfoVO);
+    }
+
+    @Override
+    public R specialInputUser(PageInputUserDTO pageInputUserDTO) {
+        Page page = new Page<>();
+        Long pageNum = pageInputUserDTO.getPageNum();
+        Long pageSize = pageInputUserDTO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<InputUserInfoVO> iPage = sysUserInputDAO.specialInputUser(page, pageInputUserDTO);
+        iPage.getRecords().forEach(record -> {
+            record.setPhone(SensitiveUtil.desensitizedPhoneNumber(record.getPhone()));
+            record.setIdCard(SensitiveUtil.desensitizedIdNumber(record.getIdCard()));
+        });
+        return R.ok(iPage);
+    }
+
+    @Override
+    public R specialInputUserTags(ComMngUserTagDTO comMngUserTagDTO) {
+        Page page = new Page<>();
+        Long pageNum = comMngUserTagDTO.getPageNum();
+        Long pageSize = comMngUserTagDTO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<ComMngTagVO> iPage = comMngUserTagDAO.pageSpecialInputUserTags(page, comMngUserTagDTO);
+        return R.ok(iPage);
+    }
+
+    @Override
+    public R saveSpecialInputUserTags(ComMngTagVO comMngTagVO) {
+        if (null != comMngTagVO.getId() && comMngTagVO.getId() != 0) {
+            ComMngUserTagDO comMngUserTagDO = comMngUserTagDAO.selectById(comMngTagVO.getId());
+            if (null == comMngUserTagDO) {
+                return R.fail("标签不存在");
+            }
+            if (comMngUserTagDO.getSysFlag() == 1) {
+                return R.fail("系统预置标签不可修改");
+            }
+            ComMngUserTagDO exist = comMngUserTagDAO.selectOne(
+                new QueryWrapper<ComMngUserTagDO>().lambda().eq(ComMngUserTagDO::getTagName, comMngTagVO.getTagName()));
+            if (null != exist && !exist.getId().equals(comMngTagVO.getId())) {
+                return R.fail("标签重复");
+            }
+            comMngUserTagDO.setTagName(comMngTagVO.getTagName());
+            comMngUserTagDAO.updateById(comMngUserTagDO);
+        } else {
+            ComMngUserTagDO comMngUserTagDO = comMngUserTagDAO.getSpecialInputUserTagsByVO(comMngTagVO);
+            if (comMngUserTagDO != null) {
+                return R.fail("标签重复");
+            }
+            ComMngUserTagDO comMngUserTagDO1 = new ComMngUserTagDO();
+            comMngUserTagDO1.setTagName(comMngTagVO.getTagName());
+//            comMngUserTagDO1.setCommunityId(comMngTagVO.getCommunityId());
+            comMngUserTagDO1.setSysFlag(0);
+            comMngUserTagDO1.setCreateAt(new Date());
+            comMngUserTagDAO.insert(comMngUserTagDO1);
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R deleteSpecialInputUserTags(Long id) {
+        ComMngUserTagDO comMngUserTagDO = comMngUserTagDAO.selectById(id);
+        if (null == comMngUserTagDO) {
+            return R.fail("标签不存在");
+        }
+        if (comMngUserTagDO.getSysFlag() == 1) {
+            return R.fail("系统预置标签不可删除");
+        }
+        int delete = comMngUserTagDAO.deleteById(id);
+        if (delete > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    @Override
+    public R deleteSpecialInputUser(Long id) {
+        SysUserInputDO sysUserInputDO = sysUserInputDAO.selectById(id);
+        if (null == sysUserInputDO) {
+            return R.fail("用户不存在");
+        }
+        List<SysUserInputDO> sysUserInputDOS = sysUserInputDAO.selectList(
+            new QueryWrapper<SysUserInputDO>().lambda().eq(SysUserInputDO::getIdCard, sysUserInputDO.getIdCard()));
+        sysUserInputDOS.forEach(sysUserInput -> {
+            sysUserInput.setTags(null);
+            sysUserInput.setKeyPersonnel(0);
+            sysUserInput.setSpecialServiceFamily(0);
+            sysUserInput.setSoldier(0);
+            sysUserInput.setLowIncomeHouseholds(0);
+            sysUserInput.setLowIncomePeople(0);
+            sysUserInput.setOldPeople(0);
+            sysUserInput.setDisability(0);
+        });
+        boolean update = this.updateBatchById(sysUserInputDOS);
+        if (update) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    @Override
+    public R specialUserExport(ExportSpecialUserDTO exportSpecialUserDTO) {
+        List<EexcelUserDTO> eexcelUserDTOS = sysUserInputDAO.specialUserExport(exportSpecialUserDTO);
+        return R.ok(eexcelUserDTOS);
+    }
+}
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
new file mode 100644
index 0000000..4239bff
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/java/com/panzhihua/service_user/service/impl/UserServiceImpl.java
@@ -0,0 +1,4438 @@
+package com.panzhihua.service_user.service.impl;
+
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+import static org.apache.commons.lang3.StringUtils.isNotBlank;
+
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
+
+import javax.annotation.Resource;
+
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUnit;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ArrayUtil;
+import cn.hutool.core.util.NumberUtil;
+import cn.hutool.core.util.StrUtil;
+import cn.hutool.core.util.*;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.BindUserPhoneDTO;
+import com.panzhihua.common.model.dtos.partybuilding.ComPbCheckUserDTO;
+import com.panzhihua.common.model.vos.community.ComAreaTownCommunityVO;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidCheckRecordVO;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidMemberVO;
+import com.panzhihua.common.model.vos.community.acid.ComActAcidRecordVO;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsLoginUserInfoVO;
+import com.panzhihua.common.model.vos.sanshuo.ComSanshuoExpertVO;
+import com.panzhihua.common.model.vos.shop.ComShopUserAddressVO;
+import com.panzhihua.common.model.vos.user.*;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.*;
+import com.panzhihua.service_user.dao.*;
+import com.panzhihua.service_user.entity.SysAppConfig;
+import com.panzhihua.service_user.entity.SysTemplateConfig;
+import org.apache.commons.lang.time.DateFormatUtils;
+import org.apache.commons.lang.time.DateUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+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.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.constants.UserConstants;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.dtos.DataKanBansDto;
+import com.panzhihua.common.model.dtos.PageDTO;
+import com.panzhihua.common.model.dtos.community.ExportUserDTO;
+import com.panzhihua.common.model.dtos.community.NoticeReadDTO;
+import com.panzhihua.common.model.dtos.community.convenient.ConvenientMerchantDTO;
+import com.panzhihua.common.model.dtos.community.convenient.DisableOrEnableConvenientMerchantDTO;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.McsMerchantDTO;
+import com.panzhihua.common.model.dtos.grid.EventGridMemberAddDTO;
+import com.panzhihua.common.model.dtos.grid.EventGridMemberEditAdminDTO;
+import com.panzhihua.common.model.dtos.grid.EventGridMemberEditStatusDTO;
+import com.panzhihua.common.model.dtos.grid.EventGridMemberPassResetDTO;
+import com.panzhihua.common.model.dtos.grid.PageEventGridMemberRelationDTO;
+import com.panzhihua.common.model.dtos.user.EexcelUserDTO;
+import com.panzhihua.common.model.dtos.user.PageFeedBackDTO;
+import com.panzhihua.common.model.dtos.user.PageUserAppletsBackstageDTO;
+import com.panzhihua.common.model.dtos.user.SysUserEditTipsDTO;
+import com.panzhihua.common.model.dtos.user.SysUserFeedbackDTO;
+import com.panzhihua.common.model.vos.AppletUserInfoVO;
+import com.panzhihua.common.model.vos.EditUserInfoPassAppDTO;
+import com.panzhihua.common.model.vos.IndexDataKanbanVO;
+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.SystemmanagementConfigVO;
+import com.panzhihua.common.model.vos.community.ComActVO;
+import com.panzhihua.common.model.vos.community.ComMngVolunteerMngVO;
+import com.panzhihua.common.model.vos.community.IndexUserCommunityVo;
+import com.panzhihua.common.model.vos.community.IndexUserStatisticsVo;
+import com.panzhihua.common.model.vos.community.IndexUserStreetVo;
+import com.panzhihua.common.model.vos.grid.GridMemberVO;
+import com.panzhihua.common.model.vos.grid.admin.GridMemberBuildingVO;
+import com.panzhihua.common.model.vos.partybuilding.ActivityManagerVO;
+import com.panzhihua.common.model.vos.shop.ShopStoreVO;
+import com.panzhihua.service_user.model.dos.ComActFourMember;
+import com.panzhihua.service_user.model.dos.ComMngFamilyInfoDO;
+import com.panzhihua.service_user.model.dos.ComMngUserTagDO;
+import com.panzhihua.service_user.model.dos.EventGridMemberBuildingRelationDO;
+import com.panzhihua.service_user.model.dos.LcCompareCodeMemberDO;
+import com.panzhihua.service_user.model.dos.SysMenuDO;
+import com.panzhihua.service_user.model.dos.SysOperLogDO;
+import com.panzhihua.service_user.model.dos.SysRoleDO;
+import com.panzhihua.service_user.model.dos.SysRoleMenuDO;
+import com.panzhihua.service_user.model.dos.SysUserAgreementDO;
+import com.panzhihua.service_user.model.dos.SysUserDO;
+import com.panzhihua.service_user.model.dos.SysUserFeedbackDO;
+import com.panzhihua.service_user.model.dos.SysUserNoticeDO;
+import com.panzhihua.service_user.model.dos.SysUserRoleDO;
+import com.panzhihua.service_user.model.dtos.DataKanbanDTO;
+import com.panzhihua.service_user.model.dtos.UsersStatisticsDTO;
+import com.panzhihua.service_user.service.EventGridMemberBuildingRelationService;
+import com.panzhihua.service_user.service.UserService;
+
+import cn.hutool.core.util.IdcardUtil;
+import lombok.extern.slf4j.Slf4j;
+
+// import com.panzhihua.common.service.grid.GridService;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 用户
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-24 09:13
+ **/
+@Slf4j
+@Service
+public class UserServiceImpl implements UserService {
+
+    private static final String DEFAULT_IMAGE_URL = "https://www.psciio.com//idcard/91313573d071436ab1f934231b31c6e5.jpg";
+
+    @Resource
+    private UserDao userDao;
+    @Resource
+    private RoleDAO roleDAO;
+    @Resource
+    private ComMngUserTagDAO comMngUserTagDAO;
+    @Resource
+    private ComMngFamilyInfoDAO comMngFamilyInfoDAO;
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+    @Resource
+    private SysUserRoleDAO sysUserRoleDAO;
+    @Resource
+    private SysOperLogDAO sysOperLogDAO;
+    @Resource
+    private SysUserAgreementDAO sysUserAgreementDAO;
+    @Resource
+    private SysUserFeedbackDAO sysUserFeedbackDAO;
+    @Resource
+    private SysUserNoticeDAO sysUserNoticeDAO;
+    @Resource
+    private SysRoleMenuDAO sysRoleMenuDAO;
+    @Resource
+    private SysMenuDAO sysMenuDAO;
+    @Resource
+    private SysUserInputDAO sysUserInputDAO;
+    @Resource
+    private EventGridMemberBuildingRelationService buildingRelationService;
+    @Resource
+    private EventGridMemberBuildingRelationMapper eventGridMemberBuildingRelationMapper;
+    @Resource
+    private LcCompareMemberCodeMapper lcCompareMemberCodeMapper;
+    @Resource
+    private ComActFourMemberDao comActFourMemberDao;
+    @Resource
+    private SysAppConfigDao sysAppConfigDao;
+    @Resource
+    private SysTemplateConfigDao sysTemplateConfigDao;
+    @Resource
+    private ObjectMapper objectMapper;
+    private static final Integer ALLCOUNTY=1;
+    private static final Integer ALLSTREET=2;
+    private static final Integer ALLCOMMUNITY=3;
+    private static final Integer BYSTREET=4;
+    private static final Integer BYAREA=5;
+    private static final String OTHERUSER="其他用户";
+    private static final String UPDATEACIDCHECKRECORD="修改排查数据";
+    private static final String UPDATEACIDMEMBER="修改防疫工作人员信息";
+    private static final String UPDATEACIDRECORD="修改防疫信息数据";
+
+    // @Resource
+    // private GridService gridService;
+
+    public static void main(String[] args) {
+        // String encode = new BCryptPasswordEncoder().encode("lbsq123456");
+        // System.out.println(encode);
+
+//        List<String> dates = new ArrayList<>();
+//        Date date = new Date();
+//        for (int i = 19; i >= 0; i--) {
+//            Date date1 = DateUtils.addDays(date, -i);
+//            dates.add(DateFormatUtils.format(date1, "MM-dd"));
+//        }
+//        System.out.println(dates);
+
+        Date date = new Date();
+        Long offset = DateUtil.between(new Date(), DateUtil.beginOfMonth(date), DateUnit.DAY);
+        System.out.println(offset);
+
+        // BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
+        // boolean matches = encoder.matches("admin1234567", encode);
+        // System.out.println(matches);
+    }
+
+    /**
+     * 小程序微信用户信息更新
+     *
+     * @param openid     小程序唯一ID
+     * @param sessionKey 会话密钥
+     * @param unionid    用户在开放平台的唯一标识符
+     * @return token
+     */
+    @Override
+    public R updateInsertUser(String openid, String sessionKey, String unionid, String appId) {
+        SysUserDO sysUserDO =
+                userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getOpenid, openid));
+        boolean empty = ObjectUtils.isEmpty(sysUserDO);
+        int num = 0;
+        Date date = new Date();
+        if (empty) {
+            SysUserDO sysUserDO1 = new SysUserDO();
+            String encode = new BCryptPasswordEncoder().encode(UserConstants.PASSWORD);
+            sysUserDO1.setOpenid(openid);
+            sysUserDO1.setUnionid(unionid);
+            sysUserDO1.setSessionKey(sessionKey);
+            sysUserDO1.setCreateAt(date);
+            sysUserDO1.setLastLoginTime(date);
+            sysUserDO1.setPassword(encode);
+            sysUserDO1.setType(1);
+            sysUserDO1.setAppId(appId);
+            //设置默认头像地址
+            sysUserDO1.setImageUrl("https://www.psciio.com//idcard/f15c91f940624ed59537ecced1059f18.jpg");
+            //设置默认用户名
+            sysUserDO1.setNickName("用户" + RandomUtil.randomString(8));
+            num = userDao.insert(sysUserDO1);
+        } else {
+            String encode = new BCryptPasswordEncoder().encode(UserConstants.PASSWORD);
+            sysUserDO.setUnionid(unionid);
+            sysUserDO.setSessionKey(sessionKey);
+            sysUserDO.setPassword(encode);
+            sysUserDO.setLastLoginTime(date);
+            sysUserDO.setType(1);
+            sysUserDO.setAppId(appId);
+            num = userDao.updateById(sysUserDO);
+        }
+        if (num > 0) {
+            return R.ok();
+        } else {
+            return R.fail("登录失败");
+        }
+    }
+
+    /**
+     * 维护小程序用户基本信息 头像 昵称 性别
+     *
+     * @param userId    数据库用户ID
+     * @param nickName  昵称
+     * @param gender    性别
+     * @param avatarUrl 头像
+     * @return 维护结果
+     */
+    @Override
+    public R updateUserWeiXinInfo(Long userId, String nickName, int gender, String avatarUrl) {
+        SysUserDO sysUserDO = new SysUserDO();
+        sysUserDO.setSex(gender);
+        sysUserDO.setNickName(nickName);
+        sysUserDO.setImageUrl(avatarUrl);
+        sysUserDO.setUserId(userId);
+        int i = userDao.updateById(sysUserDO);
+        if (i > 0) {
+            return R.ok();
+        } else {
+            return R.fail("维护微信基本信息失败");
+        }
+    }
+
+    /**
+     * 维护微信用户手机号
+     *
+     * @param userId          数据库ID
+     * @param purePhoneNumber 没有区号的手机号
+     * @return 维护结果
+     */
+    @Override
+    public R updateUserWeiXinPhone(Long userId, String purePhoneNumber) {
+        SysUserDO sysUserDO = userDao.selectById(userId);
+        if (sysUserDO != null) {
+            userDao.updateMemberRole(purePhoneNumber, sysUserDO.getPhone());
+            userDao.updateServiceTeam(purePhoneNumber, sysUserDO.getPhone());
+            sysUserDO.setPhone(purePhoneNumber);
+            sysUserDO.setUserId(userId);
+            int i = userDao.updateById(sysUserDO);
+            if (i > 0) {
+                return R.ok(purePhoneNumber);
+            } else {
+                return R.fail("维护微信手机号失败");
+            }
+        }
+        return R.ok(sysUserDO.getPhone());
+    }
+
+    /**
+     * 认证中心获取平台用户信息
+     *
+     * @param name 登录账户
+     * @param type 用户类型 用户类型 1 小程序 2 运营平台 3 社区平台
+     * @return 用户基本信息、角色
+     */
+    @Override
+    public R<LoginUserInfoVO> getUserInfo(String name, int type,String appId) {
+        //是否为三说会堂行业分中心或专家后台账号
+        SysUserDO sysUserDO = null;
+        Boolean isIndustryOrExpertAccount=(userDao.isIndustryCenterAccount(name)>0 || userDao.isExpertAccount(name)>0);
+        if (1 == type) {
+            sysUserDO = userDao.selectOne(
+                new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, type).eq(SysUserDO::getOpenid, name).eq(SysUserDO::getAppId, appId));
+        }else if(isIndustryOrExpertAccount) {
+            //三说会堂行业分中心或专家后台账号登陆
+            sysUserDO = userDao.selectOne(
+                    new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getAccount, name).eq(SysUserDO::getAppId, appId));
+        }
+        else {
+            LambdaQueryWrapper<SysUserDO> wrapper = new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, type);
+            if (type == 11) {
+                //只允许通过account登录
+                wrapper.and(sysUserDOLambdaQueryWrapper -> sysUserDOLambdaQueryWrapper.eq(SysUserDO::getAccount, name).eq(SysUserDO::getAppId,appId));
+            } else {
+                wrapper.and(sysUserDOLambdaQueryWrapper -> sysUserDOLambdaQueryWrapper.eq(SysUserDO::getAppId,appId).eq(SysUserDO::getAccount, name).or()
+                        .eq(SysUserDO::getPhone, name));
+            }
+            sysUserDO = userDao.selectOne(wrapper);
+        }
+        boolean empty = ObjectUtils.isEmpty(sysUserDO);
+        if (empty) {
+            return R.fail();
+        }
+        LoginUserInfoVO loginUserInfoVO = new LoginUserInfoVO();
+        //获取后台商家user
+        SysUserDO sysUser = userDao.selectOne(
+                new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, 5).eq(SysUserDO::getPhone, sysUserDO.getPhone()).eq(SysUserDO::getAppId, appId));
+        //判断是否是商家账号
+        if (nonNull(sysUser)){
+            loginUserInfoVO.setBackstageUserId(sysUser.getUserId());
+            loginUserInfoVO.setBackstageType(5);
+        }
+        if (nonNull(sysUserDO.getStreetId())){
+            loginUserInfoVO.setStreetId(sysUserDO.getStreetId());
+        }
+        loginUserInfoVO.setLoveIntegral(sysUserDO.getLoveIntegral());
+        loginUserInfoVO.setUserId(sysUserDO.getUserId());
+        loginUserInfoVO.setName(sysUserDO.getName());
+        loginUserInfoVO.setPassword(sysUserDO.getPassword());
+        loginUserInfoVO.setStatus(sysUserDO.getStatus());
+        loginUserInfoVO.setAccount(name);
+        loginUserInfoVO.setType(sysUserDO.getType());
+        loginUserInfoVO.setIsRealNamed(sysUserDO.getIdCard() != null);// 暂时 身份证判断实名制
+        if(sysUserDO.getCommunityId()!=null){
+            ComActVO comActVO = userDao.selectCommunity(sysUserDO.getCommunityId());
+            loginUserInfoVO.setCommunityId(sysUserDO.getCommunityId());
+            if(comActVO!=null){
+                loginUserInfoVO.setComActVO(comActVO);
+                String areaName=userDao.selectAreaCodeByStreetId(comActVO.getStreetId());
+                if(StringUtils.isNotEmpty(areaName)){
+                    loginUserInfoVO.setAreaName(areaName);
+                }
+//                SysAppConfig sysAppConfig=sysAppConfigDao.selectOne(new QueryWrapper<SysAppConfig>().lambda().eq(SysAppConfig::getAreaCode,comActVO.getAreaCode()));
+//                if(sysAppConfig!=null){
+//                    loginUserInfoVO.setAppId(sysAppConfig.getAppId());
+//                    loginUserInfoVO.setAppSecret(sysAppConfig.getSecret());
+//                }
+            }
+        }
+        List<SysRoleDO> roleDOList = roleDAO.selectByUserId(sysUserDO.getUserId());
+        Set<String> set = new HashSet<>();
+        if (!ObjectUtils.isEmpty(roleDOList)) {
+            roleDOList.forEach(sysRoleDO -> {
+                set.add(sysRoleDO.getRoleKey());
+            });
+        }
+        //是否为人大代表
+        if (StringUtils.isNotEmpty(sysUserDO.getPhone()) && StringUtils.isNotEmpty(sysUserDO.getName())){
+            int i = userDao.isDpcMember(sysUserDO.getPhone(), sysUserDO.getName());
+            if (i>0){
+                loginUserInfoVO.setIsDpcMember(1);
+            }
+        }
+        //是否为物业公司账号
+        if (nonNull(sysUserDO.getPhone())){
+            Long propertyAccount = userDao.isPropertyAccount(sysUserDO.getPhone());
+            if (nonNull(propertyAccount)){
+                loginUserInfoVO.setPropertyId(propertyAccount);
+            }
+        }
+        return R.ok(loginUserInfoVO);
+    }
+
+    /**
+     * 三端获取用户信息
+     *
+     * @param userId 用户ID
+     * @return 用户基本信息、角色
+     */
+    @Override
+    public R<LoginUserInfoVO> getUserInfo(String userId) {
+        SysUserDO sysUserDO = userDao.selectById(userId);
+        boolean empty = ObjectUtils.isEmpty(sysUserDO);
+        if (empty) {
+            return R.fail();
+        }
+        LoginUserInfoVO loginUserInfoVO = new LoginUserInfoVO();
+        BeanUtils.copyProperties(sysUserDO, loginUserInfoVO);
+        loginUserInfoVO.setLoveIntegral(sysUserDO.getLoveIntegral());
+        List<SysRoleDO> roleDOList = roleDAO.selectByUserId(sysUserDO.getUserId());
+        Set<String> set = new HashSet<>();
+        if (!ObjectUtils.isEmpty(roleDOList)) {
+            roleDOList.forEach(sysRoleDO -> {
+                set.add(sysRoleDO.getRoleKey());
+            });
+            loginUserInfoVO.setRoles(set);
+        }
+        loginUserInfoVO.setIsmemberrole(2);
+        loginUserInfoVO.setIsFourMember(2);
+        loginUserInfoVO.setIsCommunityWorker(2);
+        loginUserInfoVO.setIsPropertyWorker(2);
+        loginUserInfoVO.setIsSocialWorker(2);
+        loginUserInfoVO.setIsFmsMember(2);
+        loginUserInfoVO.setIsAcidMember(0);
+        // 志愿者状态
+        String phone = sysUserDO.getPhone();
+        Long userCommunityId = sysUserDO.getCommunityId();
+        if (userCommunityId != null) {
+            ComActVO comActVO = userDao.selectCommunity(userCommunityId);
+            if (comActVO != null) {
+                loginUserInfoVO.setCommunityName(comActVO.getName());
+                loginUserInfoVO.setComActVO(comActVO);
+                loginUserInfoVO.setAreaCode(comActVO.getAreaCode());
+                SysAppConfig sysAppConfig=sysAppConfigDao.selectOne(new QueryWrapper<SysAppConfig>().lambda().eq(SysAppConfig::getAreaCode,comActVO.getAreaCode()));
+                if(sysAppConfig!=null){
+                    loginUserInfoVO.setAppId(sysAppConfig.getAppId());
+                    loginUserInfoVO.setAppSecret(sysAppConfig.getSecret());
+                }
+            }
+        }
+        if (!ObjectUtils.isEmpty(phone)) {
+            ComMngVolunteerMngVO comMngVolunteerMngVO = userDao.selectVolunteerMngByPhone(phone);
+            if (ObjectUtils.isEmpty(comMngVolunteerMngVO)) {
+                loginUserInfoVO.setVolunteerStatus(0);
+            } else {
+                int state = comMngVolunteerMngVO.getState().intValue();
+                loginUserInfoVO.setVolunteerStatus(state);
+            }
+            //是否四长四员
+            Integer countFourMember=comActFourMemberDao.selectCount(new QueryWrapper<ComActFourMember>().lambda().eq(ComActFourMember::getIdCard,sysUserDO.getIdCard()));
+            if(countFourMember>0){
+                loginUserInfoVO.setIsFourMember(1);
+            }
+            //是否是社区物业人员
+            int countPropertyWorker = userDao.countPropertyWorker(Long.parseLong(userId), userCommunityId);
+            if (countPropertyWorker > 0) {
+                loginUserInfoVO.setIsPropertyWorker(1);
+            }
+            //是否微团队成员
+            int countFmsMember = userDao.countFmsMember(phone, userCommunityId);
+            if (countFmsMember > 0) {
+                loginUserInfoVO.setIsFmsMember(1);
+            }
+            //是否是防疫工作人员
+            ComActAcidMemberVO acidMember = userDao.selectAcidMemberByPhone(phone);
+            if (nonNull(acidMember)) {
+                if(acidMember.getRelationName().equals("panzhihua")||acidMember.getRelationName().equals("西区")||acidMember.getRelationName().equals("东区")||acidMember.getRelationName().equals("仁和区")||acidMember.getRelationName().equals("米易县")||acidMember.getRelationName().equals("盐边县")){
+                    loginUserInfoVO.setIsAcidMember(1);
+                }
+                else {
+                    loginUserInfoVO.setIsAcidMember(2);
+                }
+                loginUserInfoVO.setRelationName(acidMember.getRelationName());
+            }
+            Integer count=userDao.selectOrgAdmin(phone);
+            if(count>0){
+                loginUserInfoVO.setIsCheckUnitAdmin(1);
+            }
+            else {
+                loginUserInfoVO.setIsCheckUnitAdmin(0);
+            }
+            Long checkUnitId=userDao.selectCheckUnitId(phone);
+            Long AdminUnitId=userDao.selectOrgAdminId(phone);
+            if(checkUnitId!=null){
+                loginUserInfoVO.setCheckUnitId(checkUnitId);
+            }
+            if (AdminUnitId!=null){
+                loginUserInfoVO.setBindingCheckUnitId(AdminUnitId);
+            }
+            //是否网格员
+            int easyPhotoMember = userDao.countEasyPhotoMember(phone, userCommunityId);
+            if (easyPhotoMember > 0) {
+                loginUserInfoVO.setIsEasyPhotoMember(1);
+            }
+            // 是否是"管理员"或者 本社区 "社区团队"、"党委成员"
+            Integer countTeam = userDao.selectCountTeam(phone, userCommunityId);
+            Integer selectCountMemberRole = userDao.selectCountMemberRole(phone, userCommunityId);
+            Integer isSysUser = userDao.selectCountSysUser(phone, userCommunityId);
+            if (countTeam != null && countTeam > 0) {
+                loginUserInfoVO.setIsmemberrole(1);
+                loginUserInfoVO.setIsCommunityWorker(1);
+            } else if (selectCountMemberRole != null && selectCountMemberRole > 0) {
+                loginUserInfoVO.setIsmemberrole(1);
+            } else if (isSysUser != null && isSysUser > 0) {
+                loginUserInfoVO.setIsmemberrole(1);
+            }
+            Integer countSocialWorker = userDao.countSocialWorker(phone,userCommunityId);
+            if(countSocialWorker>0){
+                loginUserInfoVO.setIsSocialWorker(1);
+            }
+        }
+        loginUserInfoVO.setIsRealNamed(sysUserDO.getIdCard() != null);
+        //是否社区或街道后台
+        int countSocialOrg=userDao.countSocialOrg(sysUserDO.getUserId());
+        if(countSocialOrg>0){
+            loginUserInfoVO.setUserType(3);
+        }
+        if (nonNull(sysUserDO.getAccount())){
+            if (isStreetAccount(sysUserDO.getAccount())){
+                //街道账号
+                loginUserInfoVO.setLevel(3);
+            }
+            if (sysUserDO.getAccount().equals("admin")){
+                loginUserInfoVO.setLevel(1);
+            }
+        }
+        if (loginUserInfoVO.getType().equals(3)){
+            loginUserInfoVO.setLevel(4);
+        }
+        if (sysUserDO.getType().equals(11)){
+            //专家
+            loginUserInfoVO.setLevel(5);
+        }else if (sysUserDO.getType().equals(12)){
+            //行业分中心
+            loginUserInfoVO.setLevel(2);
+        }
+        //是否为三说会堂专家
+        ComSanshuoExpertVO expertVO=userDao.isExpert(loginUserInfoVO.getPhone());
+        if (nonNull(expertVO)){
+            loginUserInfoVO.setType(13);
+        }
+        //是否为人大代表
+        if (StringUtils.isNotEmpty(phone) && StringUtils.isNotEmpty(sysUserDO.getName())){
+            int i = userDao.isDpcMember(phone, sysUserDO.getName());
+            if (i>0){
+                loginUserInfoVO.setIsDpcMember(1);
+            }
+        }
+        //获取后台商家user
+        SysUserDO sysUser = userDao.selectOne(
+                new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, 5).eq(SysUserDO::getPhone, sysUserDO.getPhone()).eq(SysUserDO::getAppId, "wx118de8a734d269f0"));
+        //判断是否是商家账号
+        if (nonNull(sysUser)){
+            loginUserInfoVO.setBackstageUserId(sysUser.getUserId());
+            loginUserInfoVO.setBackstageType(5);
+            Long storeId = userDao.selectStoreIdIdByUserId(sysUser.getUserId());
+            loginUserInfoVO.setStoreIdId(storeId);
+
+        }
+        //是否为物业公司账号
+        if (nonNull(sysUserDO.getPhone())){
+            Long propertyAccount = userDao.isPropertyAccount(sysUserDO.getPhone());
+            if (nonNull(propertyAccount)){
+                loginUserInfoVO.setPropertyId(propertyAccount);
+            }
+        }
+        //获取自提点账号
+        if (StrUtil.isNotBlank(sysUserDO.getPhone())){
+            if(userDao.checkPoint(sysUserDO.getPhone()) > 0){
+                loginUserInfoVO.setIsPoint(true);
+            }else {
+                loginUserInfoVO.setIsPoint(false);
+            }
+        }
+        //默认地址
+        ComShopUserAddressVO comShopUserAddressVO = userDao.selectDefaultAddressVO(userId);
+        if (nonNull(comShopUserAddressVO)){
+            loginUserInfoVO.setComShopUserAddressVO(comShopUserAddressVO);
+        }
+        return R.ok(loginUserInfoVO);
+    }
+
+    /**
+     * 是否为综治后台街道账号
+     * */
+    public Boolean isStreetAccount(String name){
+        Boolean flag=false;
+        String[] account={"glpz","qxpjd","tjdjd","dbdjd","yqjd","bcg","hmkjd","dhjd","jsgyy","dzhljd"};
+        if (nonNull(name)){
+            if (ArrayUtil.contains(account,name)){
+                flag=true;
+            }
+        }
+        return flag;
+    }
+
+
+    /**
+     * 修改用户登录密码
+     *
+     * @param changePasswordVO
+     *            新密码
+     * @return 修改结果
+     */
+    @Override
+    public R changePassword(ChangePasswordVO changePasswordVO) {
+        Long userId = changePasswordVO.getUserId();
+        SysUserDO sysUserDO1 = userDao.selectById(userId);
+        String dataPassowrd = sysUserDO1.getPassword();
+        String oldPassword = changePasswordVO.getOldPassword();
+        String newPassword = changePasswordVO.getNewPassword();
+        if (oldPassword.equals(newPassword)) {
+            return R.fail("新密码与原密码不能相同");
+        }
+        BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
+        if (!encoder.matches(oldPassword, dataPassowrd)) {
+            return R.fail("原密码错误");
+
+        }
+        SysUserDO sysUserDO = new SysUserDO();
+        sysUserDO.setUserId(userId);
+        String encode = new BCryptPasswordEncoder().encode(newPassword);
+        sysUserDO.setPassword(encode);
+        int update = userDao.updateById(sysUserDO);
+        if (update > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 某社区后台人员查询
+     *
+     * @param param
+     *            名字
+     * @param communityId
+     *            社区id
+     * @return 人员集合
+     */
+    @Override
+    public R listActivityManager(String param, Long communityId) {
+        LambdaQueryWrapper<SysUserDO> queryWrapper = new LambdaQueryWrapper<>();
+        List<ActivityManagerVO> activityManagerVOS = new ArrayList<>();
+        queryWrapper = new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getCommunityId, communityId)
+                .eq(SysUserDO::getStatus, 1).eq(SysUserDO::getType, 3);
+        if (!ObjectUtils.isEmpty(param)) {
+            queryWrapper = queryWrapper.eq(SysUserDO::getName, param);
+        }
+        List<SysUserDO> sysUserDOS = userDao.selectList(queryWrapper);
+        if (!ObjectUtils.isEmpty(sysUserDOS)) {
+            sysUserDOS.forEach(sysUserDO -> {
+                ActivityManagerVO activityManagerVO = new ActivityManagerVO();
+                activityManagerVO.setManagerId(sysUserDO.getUserId());
+                activityManagerVO.setName(sysUserDO.getName());
+                activityManagerVOS.add(activityManagerVO);
+            });
+        }
+        return R.ok(activityManagerVOS);
+    }
+
+    /**
+     * 微心愿搜索社区团队人员列表
+     *
+     * @param param
+     *            请求参数
+     * @param communityId
+     *            社区id
+     * @return 社区团队人员列表
+     */
+    @Override
+    public R listActivityManager2(String param, Long communityId) {
+        return R.ok(userDao.getServiceTeamList(param, communityId));
+    }
+
+    /**
+     * 分页查询人脸识别
+     *
+     * @param loginUserInfoVO
+     *            查询参数
+     * @return 分页集合
+     */
+    @Override
+    public R pageUserFace(LoginUserInfoVO loginUserInfoVO) {
+        Page page = new Page<>();
+        Long pageNum = loginUserInfoVO.getPageNum();
+        Long pageSize = loginUserInfoVO.getPageSize();
+        if (null == pageNum || 0 == pageNum) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || 0 == pageSize) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<LoginUserInfoVO> iPage = userDao.pageUserFace(page, loginUserInfoVO);
+        return R.ok(iPage);
+    }
+
+    /**
+     * 编辑人脸采集数据通过、驳回、删除
+     *
+     * @param loginUserInfoVO 操作信息
+     * @return 操作结果
+     */
+    @Override
+    public R putUserFace(LoginUserInfoVO loginUserInfoVO) {
+        int operationType = loginUserInfoVO.getOperationType().intValue();
+        Long userId = loginUserInfoVO.getUserId();
+        SysUserDO sysUserDO = new SysUserDO();
+        sysUserDO.setUserId(userId);
+        switch (operationType) {
+            case 1:
+                sysUserDO.setFaceState(1);
+                break;
+            case 2:
+                sysUserDO.setFaceState(2);
+                break;
+            case 3:
+                break;
+            default:
+                break;
+        }
+        int num = 0;
+        if (operationType == 3) {
+            // num=userDao.deleteById(userId);
+            num = userDao.updateFaceState(userId);
+        } else {
+            num = userDao.updateById(sysUserDO);
+        }
+        if (num > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 分页查询人口管理
+     *
+     * @param userInfoVO 查询参数
+     * @return 分页数据
+     */
+    @Override
+    public R pageUser(AppletUserInfoVO userInfoVO) {
+        IPage<AppletUserInfoVO> iPage =
+                userDao.pageUser(new Page<>(userInfoVO.getPageNum(), userInfoVO.getPageSize()), userInfoVO);
+        iPage.getRecords().forEach(record -> {
+//            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);
+    }
+
+    /**
+     * 查询所有人员标签
+     *
+     * @return 标签集合
+     */
+    @Override
+    public R listTag() {
+        List<String> list = new ArrayList<>();
+        List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO.selectList(new LambdaQueryWrapper<ComMngUserTagDO>()
+                .eq(ComMngUserTagDO::getSysFlag, 1));
+        if (!ObjectUtils.isEmpty(comMngUserTagDOS)) {
+            list = comMngUserTagDOS.stream().map(comMngUserTagDO -> comMngUserTagDO.getTagName())
+                    .collect(Collectors.toList());
+        }
+        return R.ok(list);
+    }
+
+    /**
+     * 人员详情 detailuser
+     *
+     * @param userId 用户id
+     * @return 人员详情
+     */
+    @Override
+    public R<LoginUserInfoVO> detailUser(Long userId)
+    {
+        LoginUserInfoVO loginUserInfoVO = new LoginUserInfoVO();
+        SysUserDO sysUserDO = userDao.selectById(userId);
+        if (ObjectUtils.isEmpty(sysUserDO)) {
+            return R.fail("人员不存在");
+        }
+
+        BeanUtils.copyProperties(sysUserDO, loginUserInfoVO);
+        List<ComMngFamilyInfoDO> comMngFamilyInfoDOS = comMngFamilyInfoDAO
+                .selectList(new QueryWrapper<ComMngFamilyInfoDO>().lambda().eq(ComMngFamilyInfoDO::getUserId, userId));
+        if (!ObjectUtils.isEmpty(comMngFamilyInfoDOS)) {
+            List<ComMngFamilyInfoVO> comMngFamilyInfoVOS = new ArrayList<>();
+            comMngFamilyInfoDOS.forEach(comMngFamilyInfoDO -> {
+                ComMngFamilyInfoVO comMngFamilyInfoVO = new ComMngFamilyInfoVO();
+                BeanUtils.copyProperties(comMngFamilyInfoDO, comMngFamilyInfoVO);
+                comMngFamilyInfoVOS.add(comMngFamilyInfoVO);
+            });
+            loginUserInfoVO.setComMngFamilyInfoVOS(comMngFamilyInfoVOS);
+        }
+        ComActVO comActVO = userDao.selectCommunity(loginUserInfoVO.getCommunityId());
+        if (!ObjectUtils.isEmpty(comActVO)) {
+            String areaName = userDao.selectAreaCodeByStreetId(comActVO.getStreetId());
+            if (StringUtils.isNotEmpty(areaName)) {
+                loginUserInfoVO.setAreaName(areaName);
+            }
+            loginUserInfoVO.setComActVO(comActVO);
+            loginUserInfoVO.setCommunityName(comActVO.getName());
+            loginUserInfoVO.setAreaCode(comActVO.getAreaCode());
+        } else {
+            loginUserInfoVO.setAreaCode("510423");
+        }
+        //是否是社区物业人员
+        int countPropertyWorker = userDao.countPropertyWorker(userId, loginUserInfoVO.getCommunityId());
+        loginUserInfoVO.setIsPropertyWorker(countPropertyWorker > 0 ? 1 : 0);
+        //是否微团队成员
+        int countFmsMember = userDao.countFmsMember(loginUserInfoVO.getPhone(), loginUserInfoVO.getCommunityId());
+        loginUserInfoVO.setIsFmsMember(countFmsMember > 0 ? 1 : 0);
+        //是否是防疫工作人员
+        loginUserInfoVO.setIsAcidMember(0);
+        ComActAcidMemberVO acidMember = userDao.selectAcidMemberByPhone(loginUserInfoVO.getPhone());
+        //是否为普达物业公司后台账号
+        if (nonNull(sysUserDO.getPhone())){
+            Long propertyAccount = userDao.isPropertyAccount(sysUserDO.getPhone());
+            if (nonNull(propertyAccount)){
+                loginUserInfoVO.setPropertyId(propertyAccount);
+            }
+        }
+        if (nonNull(acidMember)) {
+            if (acidMember.getRelationName().equals("panzhihua") || acidMember.getRelationName().equals("西区") || acidMember.getRelationName().equals("东区") || acidMember.getRelationName().equals("仁和区") || acidMember.getRelationName().equals("米易县") || acidMember.getRelationName().equals("盐边县")) {
+                loginUserInfoVO.setIsAcidMember(1);
+            } else {
+                loginUserInfoVO.setIsAcidMember(2);
+            }
+            loginUserInfoVO.setRelationName(acidMember.getRelationName());
+        }
+        loginUserInfoVO.setIdCard(SensitiveUtil.desensitizedIdNumber(loginUserInfoVO.getIdCard()));
+        loginUserInfoVO.setPhone(SensitiveUtil.desensitizedPhoneNumber(loginUserInfoVO.getPhone()));
+        //判断账号类型
+        int countSocialOrg = userDao.countSocialOrg(userId);
+        if (countSocialOrg > 0) {
+            loginUserInfoVO.setUserType(3);
+        } else {
+            if (loginUserInfoVO.getStreetId() != null) {
+                loginUserInfoVO.setUserType(1);
+            } else {
+                loginUserInfoVO.setUserType(2);
+                loginUserInfoVO.setLevel(4);
+            }
+        }
+        if (sysUserDO.getType().equals(11)){
+            loginUserInfoVO.setLevel(5);
+        }else if (sysUserDO.getType().equals(12)){
+            loginUserInfoVO.setLevel(2);
+        }else if (isNull(loginUserInfoVO.getLevel())){
+            loginUserInfoVO.setLevel(1);
+        }
+        loginUserInfoVO.setBackstageType(1);
+        String[] account = {"dongqu", "xiqu", "yanbianxian", "miyixian", "renhequ", "fantaixinqu"};
+        if ("zuzhibu".equals(sysUserDO.getAccount())) {
+            loginUserInfoVO.setBackstageType(2);
+        }
+        if (ArrayUtil.contains(account, sysUserDO.getAccount())) {
+            loginUserInfoVO.setBackstageType(3);
+        }
+        if (sysUserDO.getBindingCheckUnitId() != null) {
+            loginUserInfoVO.setBackstageType(4);
+        }
+        //判断是否是商家账号
+        Long storeId = userDao.selectStoreIdIdByUserId(sysUserDO.getUserId());
+        if (null != storeId){
+            loginUserInfoVO.setBackstageUserId(sysUserDO.getUserId());
+            loginUserInfoVO.setBackstageType(5);
+            loginUserInfoVO.setStoreIdId(storeId);
+        }
+
+        SysUserRoleDO sysUserRoleDO=sysUserRoleDAO.selectOne(new QueryWrapper<SysUserRoleDO>()
+                .lambda().eq(SysUserRoleDO::getUserId,sysUserDO.getUserId()));
+        if(sysUserRoleDO!=null && sysUserRoleDO.getRoleId()!=null )
+        {
+            loginUserInfoVO.setRoleId(sysUserRoleDO.getRoleId()+"");
+        }
+        return R.ok(loginUserInfoVO);
+    }
+
+    /**
+     * 设置用户标签
+     *
+     * @param loginUserInfoVO 标签信息
+     * @return 设置结果
+     */
+    @Override
+    public R putUserTag(LoginUserInfoVO loginUserInfoVO) {
+        SysUserDO sysUserDO = new SysUserDO();
+        sysUserDO.setUserId(loginUserInfoVO.getUserId());
+        if (StringUtils.isNotEmpty(loginUserInfoVO.getTags()) && !"无".equals(loginUserInfoVO.getTags())) {
+            sysUserDO.setTags(loginUserInfoVO.getTags());
+        }
+        int update = userDao.putUserTag(sysUserDO);
+        if (update > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 修改用户志愿者状态
+     *
+     * @param phone 志愿者手机号
+     * @param type
+     */
+    @Override
+    public R putUserIsVolunteer(String phone, int type) {
+
+        SysUserDO sysUserDO = new SysUserDO();
+        sysUserDO.setIsVolunteer(type);
+        // ????根据手机号匹配
+        int update = userDao.update(sysUserDO, new UpdateWrapper<SysUserDO>().lambda().eq(SysUserDO::getPhone, phone));
+        if (update > 0) {
+            ComMngVolunteerMngVO comMngVolunteerMngVO = userDao.selectVolunteerMngByPhone(phone);
+            if (comMngVolunteerMngVO != null && comMngVolunteerMngVO.getSubmitUserId() != null) {
+                Long userId = comMngVolunteerMngVO.getSubmitUserId();
+                // 删除用户信息缓存
+                String userKey = UserConstants.LOGIN_USER_INFO + userId;
+                stringRedisTemplate.delete(userKey);
+            } else {
+                List<SysUserDO> userDOList =
+                        userDao.selectList(new LambdaQueryWrapper<SysUserDO>().eq(SysUserDO::getPhone, phone));
+                if (userDOList != null && userDOList.size() > 0) {
+                    userDOList.forEach(usrDo -> {
+                        Long userId = usrDo.getUserId();
+                        // 删除用户信息缓存
+                        String userKey = UserConstants.LOGIN_USER_INFO + userId;
+                        stringRedisTemplate.delete(userKey);
+                    });
+                }
+            }
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 修改用户志愿者状态
+     *
+     * @param userId 志愿者用户ID
+     * @param type
+     */
+    @Override
+    public R putUserIsVolunteerById(Long userId, int type) {
+        SysUserDO sysUserDO = new SysUserDO();
+        sysUserDO.setIsVolunteer(type);
+        sysUserDO.setUserId(userId);
+
+        SysUserDO userInDB = userDao.selectById(userId);
+        if (userInDB != null) {
+            boolean isVol = userInDB.getIsVolunteer() == 1;
+            if (isVol) {
+                return R.fail("用户已是志愿者");
+            }
+            if (userInDB.getType() != 1) {
+                return R.fail("用户不是小程序用户");
+            }
+            int update = userDao.updateById(sysUserDO);
+            if (update > 0) {
+                // 删除用户信息缓存
+                String userKey = UserConstants.LOGIN_USER_INFO + userId;
+                stringRedisTemplate.delete(userKey);
+                return R.ok();
+            }
+        }
+        return R.fail();
+    }
+
+    /**
+     * 用户绑定社区、小区
+     *
+     * @param loginUserInfoVO 社区小区数据
+     * @return 绑定结果
+     */
+    @Override
+    public R putUserCommunityArea(LoginUserInfoVO loginUserInfoVO) {
+
+        SysUserDO sysUserDO = new SysUserDO();
+        sysUserDO.setCommunityId(loginUserInfoVO.getCommunityId());
+        // sysUserDO.setAreaId(loginUserInfoVO.getAreaId());
+        sysUserDO.setUserId(loginUserInfoVO.getUserId());
+        int update = userDao.updateById(sysUserDO);
+        if (update > 0) {
+            // 删除用户信息缓存
+            String userKey = UserConstants.LOGIN_USER_INFO + loginUserInfoVO.getUserId();
+            stringRedisTemplate.delete(userKey);
+            return R.ok(sysUserDO);
+        }
+        return R.fail();
+    }
+
+    /**
+     * 用户实名认证
+     *
+     * @param loginUserInfoVO 认证数据
+     * @return 认证结果
+     */
+    @Override
+    public R putUserAuthentication(LoginUserInfoVO loginUserInfoVO) {
+        // 接入第三方实名认证
+        String idCard = loginUserInfoVO.getIdCard();
+        String name = loginUserInfoVO.getName();
+        log.info("用户实名认证发送请求,姓名:" + name + "身份证号码:" + idCard);
+        // try {
+        // boolean b = RealNameUtil.authentication(idCard, name);
+        // if (!b) {
+        // return R.fail("身份认证失败:请填写真实信息");
+        // }
+        // }catch (ServiceException serviceException){
+        // return R.fail(serviceException.getMessage());
+        // }
+        SysUserDO sysUserDO = new SysUserDO();
+        sysUserDO.setName(name);
+        sysUserDO.setIdCard(idCard);
+        // 通过身份证号判断性别以及出生日期
+        sysUserDO.setSex(IdCard.sex(idCard));
+        sysUserDO.setBirthday(IdcardUtil.getBirthDate(idCard));
+        if (!StringUtils.isEmpty(loginUserInfoVO.getJob())) {
+            sysUserDO.setJob(loginUserInfoVO.getJob());
+        }
+        sysUserDO.setUserId(loginUserInfoVO.getUserId());
+        sysUserDO.setFaceUrl(loginUserInfoVO.getFaceUrl());
+        if (!StringUtils.isEmpty(loginUserInfoVO.getPhone())) {
+            sysUserDO.setPhone(loginUserInfoVO.getPhone());
+        }
+        sysUserDO.setFaceState(null);
+        SysUserDO sysUserDO1 =
+                userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getIdCard, idCard).eq(SysUserDO::getCommunityId, loginUserInfoVO.getCommunityId()));
+        if (!ObjectUtils.isEmpty(sysUserDO1)) {
+            return R.fail("身份证已经存在");
+        }
+        int update = userDao.updateById(sysUserDO);
+        if (update > 0) {
+            // 清空缓存
+            String userKey = UserConstants.LOGIN_USER_INFO + loginUserInfoVO.getUserId();
+            stringRedisTemplate.delete(userKey);
+            // 实名认证成功查询是否有已审核的党员信息,有则更新党员信息绑定党员的userId
+            Long memberId = userDao.getPartyBuildingByIdCard(idCard);
+            if (memberId != null) {
+                sysUserDO.setIsPartymember(1);
+                userDao.updateById(sysUserDO);
+                // 修改审核绑定的userId
+                userDao.updateComPbMemberUserId(idCard, sysUserDO.getUserId());
+            }
+
+            /*SysUserDO user = userDao.selectById(loginUserInfoVO.getUserId());
+            if (user != null) {
+                // 实名认证成功推送订阅消息给用户
+                try {
+                    WxXCXTempSend util = new WxXCXTempSend();
+                    String accessToken = util.getAccessToken();
+                    SysTemplateConfig sysTemplateConfig = sysTemplateConfigDao.selectOne(new QueryWrapper<SysTemplateConfig>().lambda().eq(SysTemplateConfig::getAreaCode, loginUserInfoVO.getComActVO()).eq(SysTemplateConfig::getType, 5));
+                    // 用户实名认证推送消息
+                    WxUtil.sendSubscribeRZSH(user.getOpenid(), accessToken, "实名认证",
+                            com.panzhihua.common.utlis.DateUtils.getCurrentDateStr(), "认证成功", sysTemplateConfig.getTemplateId());
+                } catch (Exception e) {
+                    log.error("推送用户订阅消息失败,失败原因:" + e.getMessage());
+                }
+            }*/
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 修改用户手机号
+     *
+     * @param userPhoneVO 手机号信息
+     * @return 修改结果
+     */
+    @Override
+    public R putUserphone(UserPhoneVO userPhoneVO) {
+        String oldPhone = userPhoneVO.getOldPhone();
+        String newPhone = userPhoneVO.getNewPhone();
+        String smsCode = userPhoneVO.getSmsCode();
+        if (oldPhone.equals(newPhone)) {
+            return R.fail("新旧手机号不能重复");
+        }
+        String key = UserConstants.PHONE_PUT + newPhone;
+        Boolean hasKey = stringRedisTemplate.hasKey(key);
+        if (!hasKey) {
+            return R.fail("重新发送验证码");
+        }
+        SysUserDO sysUserDO1 = userDao.selectById(userPhoneVO.getUserId());
+        String phone = sysUserDO1.getPhone();
+        if (!StringUtils.isEmpty(phone) && !phone.equals(oldPhone)) {
+            return R.fail("旧手机号错误");
+        }
+        ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
+        String code = valueOperations.get(key);
+        if (!code.equals(smsCode)) {
+            if (!smsCode.equals("777333")) {
+                return R.fail("验证码错误");
+            }
+        }
+        SysUserDO sysUserDO = new SysUserDO();
+        sysUserDO.setUserId(userPhoneVO.getUserId());
+        sysUserDO.setPhone(newPhone);
+        userDao.updateMemberRole(newPhone, oldPhone);
+        userDao.updateServiceTeam(newPhone, oldPhone);
+        int update = userDao.updateById(sysUserDO);
+        if (update > 0) {
+
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 修改用户信息
+     *
+     * @param loginUserInfoVO 修改内容
+     * @return 修改结果
+     */
+    @Override
+    public R putUser(LoginUserInfoVO loginUserInfoVO) {
+        Integer faceState = loginUserInfoVO.getFaceState();
+        if (null == faceState || 0 == faceState) {
+            loginUserInfoVO.setFaceState(null);
+        }
+        Integer isPartymember = loginUserInfoVO.getIsPartymember();
+        if (null == isPartymember || 0 == isPartymember) {
+            loginUserInfoVO.setIsPartymember(null);
+        }
+        Integer isVolunteer = loginUserInfoVO.getIsVolunteer();
+        if (null == isVolunteer || 0 == isVolunteer) {
+            loginUserInfoVO.setIsVolunteer(null);
+        }
+        Integer operationType = loginUserInfoVO.getOperationType();
+        if (null == operationType || 0 == operationType) {
+            loginUserInfoVO.setOperationType(null);
+        }
+        Integer sex = loginUserInfoVO.getSex();
+        if (null == sex || 0 == sex) {
+            loginUserInfoVO.setSex(null);
+        }
+        Integer status = loginUserInfoVO.getStatus();
+        if (null == status || 0 == status) {
+            loginUserInfoVO.setStatus(null);
+        }
+        Integer type = loginUserInfoVO.getType();
+        if (null == type || 0 == type) {
+            loginUserInfoVO.setType(null);
+        }
+        Long communityId = loginUserInfoVO.getCommunityId();
+        if (null == communityId || 0 == communityId) {
+            loginUserInfoVO.setCommunityId(null);
+        }
+        String faceUrl = loginUserInfoVO.getFaceUrl();
+        if (!ObjectUtils.isEmpty(faceUrl)) {
+            loginUserInfoVO.setFaceState(0);
+        }
+        SysUserDO sysUserDO = new SysUserDO();
+        BeanUtils.copyProperties(loginUserInfoVO, sysUserDO);
+        int update = userDao.updateById(sysUserDO);
+        if (update > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 家庭成员列表
+     *
+     * @param userId 登录用户
+     * @return 成员集合
+     */
+    @Override
+    public R listFamily(Long userId, Long pageNum, Long pageSize) {
+        List<ComMngFamilyInfoVO> comMngFamilyInfoVOS = new ArrayList<>();
+        LambdaQueryWrapper<ComMngFamilyInfoDO> query = new QueryWrapper<ComMngFamilyInfoDO>().lambda()
+                .eq(ComMngFamilyInfoDO::getUserId, userId).orderByDesc(ComMngFamilyInfoDO::getCreateAt);
+        IPage<ComMngFamilyInfoDO> pageData = comMngFamilyInfoDAO.selectPage(new Page<>(pageNum, pageSize), query);
+        if (!ObjectUtils.isEmpty(pageData.getRecords())) {
+            pageData.getRecords().forEach(comMngFamilyInfoDO -> {
+                ComMngFamilyInfoVO comMngFamilyInfoVO = new ComMngFamilyInfoVO();
+                BeanUtils.copyProperties(comMngFamilyInfoDO, comMngFamilyInfoVO);
+                comMngFamilyInfoVOS.add(comMngFamilyInfoVO);
+            });
+        }
+        return R.ok(comMngFamilyInfoVOS);
+    }
+
+    /**
+     * 新增家庭成员
+     *
+     * @param comMngFamilyInfoVO 家庭成员基本信息
+     * @return 增加结果
+     */
+    @Override
+    public R addFamily(ComMngFamilyInfoVO comMngFamilyInfoVO) {
+        ComMngFamilyInfoDO comMngFamilyInfoDO = new ComMngFamilyInfoDO();
+        BeanUtils.copyProperties(comMngFamilyInfoVO, comMngFamilyInfoDO);
+        ComMngFamilyInfoDO comMngFamilyInfoDO1 = comMngFamilyInfoDAO.selectOne(new QueryWrapper<ComMngFamilyInfoDO>()
+                .lambda().eq(ComMngFamilyInfoDO::getIdCard, comMngFamilyInfoVO.getIdCard())
+                .eq(ComMngFamilyInfoDO::getUserId, comMngFamilyInfoVO.getUserId()));
+        if (!ObjectUtils.isEmpty(comMngFamilyInfoDO1)) {
+            return R.fail("家庭成员已经存在");
+        }
+        comMngFamilyInfoDO.setAge(IdCard.IdNOToAge(comMngFamilyInfoVO.getIdCard()));
+        int insert = comMngFamilyInfoDAO.insert(comMngFamilyInfoDO);
+        if (insert > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 编辑家庭成员
+     *
+     * @param comMngFamilyInfoVO 家庭成员信息
+     * @return 编辑结果
+     */
+    @Override
+    public R putFamily(ComMngFamilyInfoVO comMngFamilyInfoVO) {
+        ComMngFamilyInfoDO comMngFamilyInfoDO = new ComMngFamilyInfoDO();
+        BeanUtils.copyProperties(comMngFamilyInfoVO, comMngFamilyInfoDO);
+        comMngFamilyInfoDO.setAge(IdCard.IdNOToAge(comMngFamilyInfoVO.getIdCard()));
+        int update = comMngFamilyInfoDAO.updateById(comMngFamilyInfoDO);
+        if (update > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 新增运营、社区后台账户
+     *
+     * @param administratorsUserVO 账户信息
+     * @return 新增结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R addUserBackstage(AdministratorsUserVO administratorsUserVO) {
+
+        List<SysUserDO> list=userDao.selectList(new QueryWrapper<SysUserDO>().lambda().
+                       eq(SysUserDO::getAppId,administratorsUserVO.getAppid()).
+                eq(SysUserDO::getAccount,administratorsUserVO.getAccount()));
+        if(list!=null && list.size()>0)
+        {
+            return R.fail("账户已存在!");
+        }
+
+        ComActVO comActVO = userDao.selectCommunity(administratorsUserVO.getCommunityId());
+        if (nonNull(comActVO)) {
+            List<ComAreaTownCommunityVO> areaTownList = userDao.selectAreaTownCommunity(comActVO.getName());
+            if (!areaTownList.isEmpty()) {
+                administratorsUserVO.setRelationName(comActVO.getName());
+                String address = comActVO.getAddress();
+                if (areaTownList.size() > 1 && isNotBlank(address)) {
+                    ComAreaTownCommunityVO townCommunityVO = areaTownList.stream()
+                            .filter(e -> address.contains(e.getArea()) && address.contains(e.getTown())).findFirst().orElse(null);
+                    if (nonNull(townCommunityVO)) {
+                        administratorsUserVO.setRelationName(String.join(",", townCommunityVO.getArea(), townCommunityVO.getTown(), townCommunityVO.getCommunity()));
+                    }
+                }
+            }
+        }
+        SysUserDO sysUserDO = new SysUserDO();
+        Long roleId = administratorsUserVO.getRoleId();
+        if (roleId.intValue() == 999999999 || roleId.intValue() == 888888888) {
+            Long communityId = administratorsUserVO.getCommunityId();
+            // 新增社区高级管理员角色
+            SysRoleDO sysRoleDO = new SysRoleDO();
+            if (roleId.intValue() == 999999999) {
+                sysRoleDO.setCommunityId(communityId);
+                sysRoleDO.setRoleName("超级管理员");
+                sysRoleDO.setRoleKey(Constants.ADMIN_SHOP_ROLE_KEY + communityId);
+            } else {
+                sysRoleDO.setCommunityId(0L);
+                sysRoleDO.setRoleName(administratorsUserVO.getShopStoreName());
+                sysRoleDO.setRoleKey(Constants.SHOP_ROLE_KEY + administratorsUserVO.getShopStorePhone());
+            }
+            sysRoleDO.setRoleSort(0);
+            sysRoleDO.setCreateBy(administratorsUserVO.getUserId());
+            sysRoleDO.setRoleId(Snowflake.getId());
+
+            SysRoleDO sysRoleDOSelext = roleDAO.selectOne(
+                    new QueryWrapper<SysRoleDO>().lambda().eq(SysRoleDO::getRoleKey, sysRoleDO.getRoleKey()));
+
+            if(sysRoleDOSelext==null)
+            {
+                int insert = roleDAO.insert(sysRoleDO);
+                if (insert > 0) {
+                    SysRoleDO sysRoleDO1 = roleDAO.selectOne(
+                            new QueryWrapper<SysRoleDO>().lambda().eq(SysRoleDO::getRoleId, sysRoleDO.getRoleId()));
+                    roleId = sysRoleDO1.getRoleId();
+                    // 新角色设置所有权限
+                    MenuRoleVO menuRoleVO = new MenuRoleVO();
+                    menuRoleVO.setIsAll(1);
+                    menuRoleVO.setCommunityId(communityId);
+                    menuRoleVO.setRoleId(roleId);
+                    this.putMenuRole(menuRoleVO);
+                }
+            }
+            else
+            {
+                roleId = sysRoleDOSelext.getRoleId();
+                // 新角色设置所有权限
+                MenuRoleVO menuRoleVO = new MenuRoleVO();
+                menuRoleVO.setIsAll(1);
+                menuRoleVO.setCommunityId(communityId);
+                menuRoleVO.setRoleId(roleId);
+                this.putMenuRole(menuRoleVO);
+            }
+
+        }
+        if (roleId.intValue() == 777777777) {
+            SysRoleDO sysRoleDO = new SysRoleDO();
+            sysRoleDO.setRoleName("超级管理员");
+            sysRoleDO.setRoleKey(Constants.STREET_ROLE_KEY + administratorsUserVO.getStreetId());
+            sysRoleDO.setRoleSort(0);
+            sysRoleDO.setCreateBy(administratorsUserVO.getUserId());
+            sysRoleDO.setRoleId(Snowflake.getId());
+
+            SysRoleDO sysRoleDOSelext = roleDAO.selectOne(
+                    new QueryWrapper<SysRoleDO>().lambda().eq(SysRoleDO::getRoleKey, sysRoleDO.getRoleKey()));
+
+            if(sysRoleDOSelext==null)
+            {
+                int insert = roleDAO.insert(sysRoleDO);
+                if (insert > 0) {
+                    SysRoleDO sysRoleDO1 = roleDAO.selectOne(
+                            new QueryWrapper<SysRoleDO>().lambda().eq(SysRoleDO::getRoleId, sysRoleDO.getRoleId()));
+                    roleId = sysRoleDO1.getRoleId();
+                    // 新街道管理员角色设置固定三社权限
+                    MenuRoleVO menuRoleVO = new MenuRoleVO();
+                    List<Long> menu = new ArrayList<>();
+                    if (administratorsUserVO.getSocialType() == 1) {
+                        menu.add(233L);
+                        menu.add(234L);
+                        menu.add(235L);
+                        menu.add(236L);
+                        menu.add(237L);
+                    } else if (administratorsUserVO.getSocialType() == 2) {
+                        menu.add(233L);
+                        menu.add(234L);
+                        menu.add(236L);
+                        menu.add(237L);
+                        menu.add(238L);
+                    } else if (administratorsUserVO.getSocialType() == 3) {
+                        menu.add(233L);
+                        menu.add(237L);
+                    } else {
+                        menuRoleVO.setIsAll(1);
+                    }
+                    menuRoleVO.setMenuIds(menu);
+                    menuRoleVO.setRoleId(roleId);
+                    this.putMenuRole(menuRoleVO);
+                }
+            }
+            else
+            {
+                roleId = sysRoleDOSelext.getRoleId();
+                // 新街道管理员角色设置固定三社权限
+                MenuRoleVO menuRoleVO = new MenuRoleVO();
+                List<Long> menu = new ArrayList<>();
+                if (administratorsUserVO.getSocialType() == 1) {
+                    menu.add(233L);
+                    menu.add(234L);
+                    menu.add(235L);
+                    menu.add(236L);
+                    menu.add(237L);
+                } else if (administratorsUserVO.getSocialType() == 2) {
+                    menu.add(233L);
+                    menu.add(234L);
+                    menu.add(236L);
+                    menu.add(237L);
+                    menu.add(238L);
+                } else if (administratorsUserVO.getSocialType() == 3) {
+                    menu.add(233L);
+                    menu.add(237L);
+                } else {
+                    menuRoleVO.setIsAll(1);
+                }
+                menuRoleVO.setMenuIds(menu);
+                menuRoleVO.setRoleId(roleId);
+                this.putMenuRole(menuRoleVO);
+            }
+
+        }
+        SysRoleDO roleDO = roleDAO.selectById(roleId);
+        if (ObjectUtils.isEmpty(roleDO)) {
+            return R.fail("角色不存在");
+        }
+        String encode = new BCryptPasswordEncoder().encode(administratorsUserVO.getPassword());
+        administratorsUserVO.setPassword(encode);
+        BeanUtils.copyProperties(administratorsUserVO, sysUserDO);
+        sysUserDO.setAppId(administratorsUserVO.getAppid());
+        int insert = 0;
+        try {
+            insert = userDao.insert(sysUserDO);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("新增后台用户报错【{}】", e.getMessage());
+            if (e.getMessage().contains("union_phone_type")) {
+                throw new ServiceException("手机号已经存在");
+            } else if (e.getMessage().contains("union_account_type")) {
+                throw new ServiceException("账户已经存在");
+            } else if (e.getMessage().contains("23000")) {
+                throw new ServiceException("手机号已存在");
+            }
+
+        }
+        if (insert > 0) {
+            SysUserDO sysUserDO1 = userDao
+                    .selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, administratorsUserVO.getType())
+                            .eq(SysUserDO::getAccount, administratorsUserVO.getAccount()));
+            Long userId = sysUserDO1.getUserId();
+            SysUserRoleDO sysUserRoleDO = new SysUserRoleDO();
+            sysUserRoleDO.setUserId(userId);
+            sysUserRoleDO.setRoleId(roleDO.getRoleId());
+            int insert1 = sysUserRoleDAO.insert(sysUserRoleDO);
+            if (insert1 > 0) {
+                return R.ok(userId);
+            }
+        }
+        return R.fail();
+    }
+
+    @Override
+    public R addUserBackstageProperty(AdministratorsUserVO administratorsUserVO) {
+        SysUserDO sysUserDO = new SysUserDO();
+        Long roleId = administratorsUserVO.getRoleId();
+        if (roleId.intValue() == 777777777) {
+            SysRoleDO sysRoleDO = new SysRoleDO();
+            sysRoleDO.setRoleName("三社超级管理员");
+            List<Long> menu = new ArrayList<>();
+            if (administratorsUserVO.getSocialType() == 1) {
+                sysRoleDO.setRoleKey(Constants.STREET_ROLE_KEY + administratorsUserVO.getStreetId());
+                menu.add(300L);
+                menu.add(301L);
+                menu.add(302L);
+                menu.add(303L);
+                menu.add(304L);
+            } else if (administratorsUserVO.getSocialType() == 2) {
+                sysRoleDO.setRoleKey("social_org" + administratorsUserVO.getStreetId());
+                menu.add(300L);
+                menu.add(301L);
+                menu.add(302L);
+                menu.add(303L);
+            } else if (administratorsUserVO.getSocialType() == 3) {
+                sysRoleDO.setRoleKey("social_org_member" + administratorsUserVO.getStreetId());
+                menu.add(300L);
+                menu.add(303L);
+            }
+            sysRoleDO.setRoleSort(0);
+            sysRoleDO.setCreateBy(administratorsUserVO.getUserId());
+            List<SysRoleDO> sysRoleDO1 = roleDAO.selectList(
+                    new QueryWrapper<SysRoleDO>().lambda().eq(SysRoleDO::getRoleKey, sysRoleDO.getRoleKey()));
+            if (sysRoleDO1 != null && sysRoleDO1.size()>0 ) {
+                sysRoleDO = sysRoleDO1.get(0);
+                roleId = sysRoleDO.getRoleId();
+            } else {
+                roleDAO.insert(sysRoleDO);
+                // 新街道管理员角色设置固定三社权限
+                MenuRoleVO menuRoleVO = new MenuRoleVO();
+                menuRoleVO.setMenuIds(menu);
+                menuRoleVO.setRoleId(sysRoleDO.getRoleId());
+                this.putMenuRole(menuRoleVO);
+            }
+        }
+        log.info("======================type"+administratorsUserVO.getType());
+        log.info("=======================roleId"+roleId);
+        SysRoleDO roleDO = roleDAO.selectById(roleId);
+        if (ObjectUtils.isEmpty(roleDO)) {
+            return R.fail("角色不存在");
+        }
+        String encode = new BCryptPasswordEncoder().encode(administratorsUserVO.getPassword());
+        administratorsUserVO.setPassword(encode);
+        BeanUtils.copyProperties(administratorsUserVO, sysUserDO);
+        if (nonNull(administratorsUserVO.getAppid())){
+            sysUserDO.setAppId(administratorsUserVO.getAppid());
+        }
+        int insert = 0;
+        try {
+            insert = userDao.insert(sysUserDO);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("新增后台用户报错【{}】", e.getMessage());
+            if (e.getMessage().contains("union_phone_type")) {
+                throw new ServiceException("手机号已经存在");
+            } else if (e.getMessage().contains("union_account_type")) {
+                throw new ServiceException("账户已经存在");
+            } else if (e.getMessage().contains("23000")) {
+                throw new ServiceException("手机号已存在");
+            }
+        }
+        if (insert > 0) {
+            SysUserDO sysUserDO1 = userDao
+                    .selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, administratorsUserVO.getType())
+                            .eq(SysUserDO::getAccount, administratorsUserVO.getAccount()));
+            Long userId = sysUserDO1.getUserId();
+            SysUserRoleDO sysUserRoleDO = new SysUserRoleDO();
+            sysUserRoleDO.setUserId(userId);
+            sysUserRoleDO.setRoleId(roleDO.getRoleId());
+            int insert1 = sysUserRoleDAO.insert(sysUserRoleDO);
+            if (insert1 > 0) {
+                return R.ok(userId);
+            }
+        }
+        return R.fail();
+    }
+
+    /**
+     * 设置角色的权限
+     *
+     * @param menuRoleVO 用户设置的权限id
+     * @return 设置结果
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public R putMenuRole(MenuRoleVO menuRoleVO) {
+        List<Long> menuIds = new ArrayList<>();
+        Long roleId = menuRoleVO.getRoleId();
+        Integer isAll = menuRoleVO.getIsAll();
+        Long communityId = menuRoleVO.getCommunityId();
+        // if (isAll.intValue()==1) {
+        // List<SysMenuDO> sysMenuDOS = sysMenuDAO.selectList(new
+        // QueryWrapper<SysMenuDO>().lambda().eq(SysMenuDO::getCommunityId,
+        // 2l).eq(SysMenuDO::getParentId,0).orderByAsc(SysMenuDO::getOrderNum));
+        // Long menuIdParent = sysMenuDOS.get(1).getMenuId();
+        // List<SysMenuDO> sysMenuDOSErJi = sysMenuDAO.selectList(new
+        // QueryWrapper<SysMenuDO>().lambda().eq(SysMenuDO::getParentId, menuIdParent));
+        // if (!ObjectUtils.isEmpty(sysMenuDOS)) {
+        // sysMenuDOS.forEach(sysMenuDO -> {
+        // sysMenuDO.setCommunityId(communityId);
+        // sysMenuDO.setMenuId(null);
+        // sysMenuDAO.insert(sysMenuDO);
+        // });
+        //// 完成一级目录创建
+        // List<SysMenuDO> sysMenuDOS1 = sysMenuDAO.selectList(new
+        // QueryWrapper<SysMenuDO>().lambda().eq(SysMenuDO::getCommunityId,
+        // communityId).orderByAsc(SysMenuDO::getOrderNum));
+        // sysMenuDOS1.forEach(sysMenuDO -> {
+        // Integer orderNum = sysMenuDO.getOrderNum();
+        // if (orderNum.intValue()>0) {
+        // sysMenuDOSErJi.forEach(sysMenuDO1 -> {
+        // sysMenuDO1.setParentId(sysMenuDO.getMenuId());
+        // sysMenuDO1.setCommunityId(communityId);
+        // sysMenuDO1.setMenuId(null);
+        // sysMenuDAO.insert(sysMenuDO1);
+        // });
+        // }
+        // });
+        // }
+        // }
+
+        // 菜单写死不重新生成菜单 todo 所有注释上面自动生成新菜单功能
+
+        // 获取所有权限id
+        List<SysMenuDO> menuDOList = sysMenuDAO.selectList(new QueryWrapper<SysMenuDO>().lambda()
+                .eq(SysMenuDO::getCommunityId, 2L).eq(SysMenuDO::getVisible, 0).orderByAsc(SysMenuDO::getOrderNum));
+        if (!menuDOList.isEmpty()) {
+            menuIds = menuDOList.stream().map(sysMenuDO -> sysMenuDO.getMenuId()).collect(Collectors.toList());
+
+            List<SysRoleMenuDO> sysRoleMenuDOList = sysRoleMenuDAO.selectList(new QueryWrapper<SysRoleMenuDO>().lambda().eq(SysRoleMenuDO::getRoleId, roleId).in(SysRoleMenuDO::getMenuId, menuIds));
+            if (!sysRoleMenuDOList.isEmpty()) {
+                menuIds = menuIds.stream().filter(menuId -> !sysRoleMenuDOList.stream()
+                        .anyMatch(sysRoleMenuDO -> sysRoleMenuDO.getMenuId().equals(menuId))).collect(Collectors.toList());
+            }
+            if (!menuIds.isEmpty()) {
+                if (menuRoleVO.getMenuIds() == null) {
+                    sysRoleMenuDAO.batchInsertWithRoleId(menuIds, roleId);
+                } else {
+                    sysRoleMenuDAO.batchInsertWithRoleId(menuRoleVO.getMenuIds(), roleId);
+                }
+            }
+//            for (int i = 0; i < menuIds.size(); i++) {
+//                SysRoleMenuDO sysRoleMenuDO = sysRoleMenuDAO.selectOne(new QueryWrapper<SysRoleMenuDO>().lambda()
+//                    .eq(SysRoleMenuDO::getMenuId, menuIds.get(i)).eq(SysRoleMenuDO::getRoleId, roleId));
+//                if (sysRoleMenuDO == null) {
+//                    sysRoleMenuDO = new SysRoleMenuDO();
+//                    sysRoleMenuDO.setMenuId(menuIds.get(i));
+//                    sysRoleMenuDO.setRoleId(roleId);
+//                    sysRoleMenuDAO.insert(sysRoleMenuDO);
+//                }
+//            }
+        }
+        return R.ok();
+    }
+
+    /**
+     * 编辑运营、社区后台账户
+     *
+     * @param administratorsUserVO 编辑账户内容
+     * @return 编辑结果
+     */
+    @Override
+    public R putUserBackstage(AdministratorsUserVO administratorsUserVO) {
+        SysUserDO sysUserDO = new SysUserDO();
+        Long roleId = administratorsUserVO.getRoleId();
+        SysRoleDO roleDO = null;
+        if (null != roleId && 0 != roleId) {
+            roleDO = roleDAO.selectById(roleId);
+            if (ObjectUtils.isEmpty(roleDO)) {
+                return R.fail("角色不存在");
+            }
+        }
+        String password = administratorsUserVO.getPassword();
+        if (!ObjectUtils.isEmpty(password)) {
+            String encode = new BCryptPasswordEncoder().encode(password);
+            administratorsUserVO.setPassword(encode);
+        }
+        BeanUtils.copyProperties(administratorsUserVO, sysUserDO);
+        int update = 0;
+        try {
+            update = userDao.updateById(sysUserDO);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("编辑后台用户出错【{}】", e.getMessage());
+            if (e.getMessage().contains("union_phone_type")) {
+                return R.fail("此手机号已被占用,请更换其他手机号码");
+            }
+        }
+        if (update > 0 && null != roleDO) {
+            SysUserRoleDO sysUserRoleDO = new SysUserRoleDO();
+            sysUserRoleDO.setRoleId(roleDO.getRoleId());
+            int update1 = sysUserRoleDAO.update(sysUserRoleDO, new UpdateWrapper<SysUserRoleDO>().lambda()
+                    .eq(SysUserRoleDO::getUserId, administratorsUserVO.getUserId()));
+            if (update1 > 0) {
+                return R.ok();
+            } else {
+                sysUserRoleDO.setUserId(administratorsUserVO.getUserId());
+                sysUserRoleDAO.insert(sysUserRoleDO);
+            }
+        }
+        return R.ok();
+    }
+
+    /**
+     * 删除后台用户
+     *
+     * @param administratorsUserVO 用户主键
+     * @return 删除结果
+     */
+    @Override
+    public R deleteUserBackstage(AdministratorsUserVO administratorsUserVO) {
+        Long userId = administratorsUserVO.getUserId();
+        SysUserDO sysUserDO = userDao.selectById(userId);
+        if (ObjectUtils.isEmpty(sysUserDO)) {
+            return R.fail("用户不存在");
+        }
+        Long communityId = sysUserDO.getCommunityId();
+        Long communityId1 = administratorsUserVO.getCommunityId();
+        if (communityId1 != null && communityId1.intValue() != communityId.intValue()) {
+            return R.fail("用户不属于当前平台");
+        }
+        // 删除用户
+        int delete = userDao.deleteById(userId);
+        // 删除用户角色关系
+        if (delete > 0) {
+            int delete1 =
+                    sysUserRoleDAO.delete(new QueryWrapper<SysUserRoleDO>().lambda().eq(SysUserRoleDO::getUserId, userId));
+            if (delete1 == 0) {
+                return R.fail("用户没有角色关系");
+            }
+        }
+        return R.ok();
+    }
+
+    /**
+     * 分页查询后台用户
+     *
+     * @param administratorsUserVO 查询参数
+     * @return 后台用户
+     */
+    @Override
+    public R pageUserBackstage(AdministratorsUserVO administratorsUserVO) {
+        Page page = new Page<>();
+        Long pageNum = administratorsUserVO.getPageNum();
+        Long pageSize = administratorsUserVO.getPageSize();
+        if (null == pageNum || pageNum == 0) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || pageSize == 0) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<AdministratorsUserVO> iPage = userDao.pageUserBackstage(page, administratorsUserVO);
+        return R.ok(iPage);
+    }
+
+    /**
+     * 保存操作日志
+     *
+     * @param operlog 日志内容
+     * @return 保存结果
+     */
+    @Override
+    public R addOperLog(SysOperLogVO operlog) {
+        //判断是否需要保存修改前的数据
+        final Boolean flag = (operlog.getTitle().equals(UPDATEACIDCHECKRECORD) || operlog.getTitle().equals(UPDATEACIDMEMBER)
+                || operlog.getTitle().equals(UPDATEACIDRECORD));
+        if (flag) {
+            //保存数据
+            try {
+                operlog.setBeforeUpdateData(saveBeforeUpdateData(operlog));
+            } catch (JsonProcessingException e) {
+                e.printStackTrace();
+            }
+        }
+        SysOperLogDO sysOperLogDO = new SysOperLogDO();
+        BeanUtils.copyProperties(operlog, sysOperLogDO);
+        int insert = sysOperLogDAO.insert(sysOperLogDO);
+        if (insert > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 分页展示操作日志
+     *
+     * @param sysOperLogVO 分页参数
+     * @return 分页集合
+     */
+    @Override
+    public R pageOperLog(SysOperLogVO sysOperLogVO) {
+        Page page = new Page<>();
+        Long pageNum = sysOperLogVO.getPageNum();
+        Long pageSize = sysOperLogVO.getPageSize();
+        if (null == pageNum || pageNum == 0) {
+            pageNum = 1l;
+        }
+        if (null == pageSize || pageSize == 0) {
+            pageSize = 10l;
+        }
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        //因操作日志数据量太大,如果没有时间查询条件,默认查询最近十五天的数据
+        if (StrUtil.isEmpty(sysOperLogVO.getStartTime()) && StrUtil.isEmpty(sysOperLogVO.getEndTime())){
+            sysOperLogVO.setStartTime(com.panzhihua.common.utlis.DateUtils.getBeforeDay(15));
+            sysOperLogVO.setEndTime(com.panzhihua.common.utlis.DateUtils.getCurrentDateymd());
+        }
+        IPage<SysOperLogVO> iPage = sysOperLogDAO.pageOperLog(page, sysOperLogVO);
+        return R.ok(iPage);
+    }
+
+    /**
+     * 用户协议
+     *
+     * @return 协议集合
+     */
+    @Override
+    public R listAgreement(Long communityId) {
+        List<SysUserAgreementDO> sysUserAgreementDOS = sysUserAgreementDAO.selectList(
+                new LambdaQueryWrapper<SysUserAgreementDO>().eq(SysUserAgreementDO::getCommunityId, communityId));
+        if (ObjectUtils.isEmpty(sysUserAgreementDOS)) {
+            return R.fail();
+        }
+        List<SysUserAgreementVO> sysUserAgreementVOS = new ArrayList<>();
+        sysUserAgreementDOS.forEach(sysUserAgreementDO -> {
+            SysUserAgreementVO sysUserAgreementVO = new SysUserAgreementVO();
+            BeanUtils.copyProperties(sysUserAgreementDO, sysUserAgreementVO);
+            sysUserAgreementVOS.add(sysUserAgreementVO);
+        });
+        return R.ok(sysUserAgreementVOS);
+    }
+
+    /**
+     * 编辑用户协议
+     *
+     * @param sysUserAgreementVO 编辑内容
+     * @return 编辑结果
+     */
+    @Override
+    public R putAgreement(SysUserAgreementVO sysUserAgreementVO) {
+        SysUserAgreementDO sysUserAgreementDO = new SysUserAgreementDO();
+        BeanUtils.copyProperties(sysUserAgreementVO, sysUserAgreementDO);
+        int update = sysUserAgreementDAO.updateById(sysUserAgreementDO);
+        if (update == 0) {
+            return R.fail("协议不存在");
+        }
+        return R.ok();
+    }
+
+    /**
+     * 用户标签
+     *
+     * @param communityId 社区id
+     * @return 标签集合
+     */
+    @Override
+    public R listComMngUserTag(Long communityId) {
+        List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO.selectList(new QueryWrapper<ComMngUserTagDO>().or()
+                .lambda().eq(ComMngUserTagDO::getSysFlag, 1).or().eq(ComMngUserTagDO::getCommunityId, communityId));
+        if (ObjectUtils.isEmpty(comMngUserTagDOS)) {
+            return R.fail();
+        }
+        List<ComMngUserTagVO> comMngUserTagVOList = new ArrayList<>();
+        comMngUserTagDOS.forEach(comMngUserTagDO -> {
+            ComMngUserTagVO comMngUserTagVO = new ComMngUserTagVO();
+            BeanUtils.copyProperties(comMngUserTagDO, comMngUserTagVO);
+            comMngUserTagVOList.add(comMngUserTagVO);
+        });
+        return R.ok(comMngUserTagVOList);
+    }
+
+    /**
+     * 新增删除用户标签
+     *
+     * @param systemmanagementConfigVO 操作内容
+     * @return 操作结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R putComMngUserTag(SystemmanagementConfigVO systemmanagementConfigVO) {
+        Long communityId = systemmanagementConfigVO.getCommunityId();
+        List<ComMngUserTagVO> comMngUserTagVOList = systemmanagementConfigVO.getComMngUserTagVOList();
+        if (!ObjectUtils.isEmpty(comMngUserTagVOList)) {
+            comMngUserTagDAO.delete(new QueryWrapper<ComMngUserTagDO>().lambda().eq(ComMngUserTagDO::getCommunityId, communityId));
+            comMngUserTagVOList.forEach(comMngUserTagVO -> {
+                ComMngUserTagDO comMngUserTagDO = new ComMngUserTagDO();
+                comMngUserTagDO.setCommunityId(communityId);
+                comMngUserTagDO.setTagName(comMngUserTagVO.getTagName());
+                comMngUserTagDAO.insert(comMngUserTagDO);
+            });
+            return R.ok();
+        } else {
+            return R.fail("用户标签不能为空");
+        }
+
+    }
+
+    /**
+     * 分页查询小程序用户
+     *
+     * @param pageUserAppletsBackstageDTO 查询参数
+     * @return 分页集合
+     */
+    @Override
+    public R pageUserAppletsBackstage(PageUserAppletsBackstageDTO pageUserAppletsBackstageDTO) {
+        Page page = new Page<>();
+        Long pageNum = pageUserAppletsBackstageDTO.getPageNum();
+        Long pageSize = pageUserAppletsBackstageDTO.getPageSize();
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<SysUserVO> iPage = userDao.pageUserAppletsBackstage(page, pageUserAppletsBackstageDTO);
+        return R.ok(iPage);
+    }
+
+    /**
+     * 编辑用户状态
+     *
+     * @param pageUserAppletsBackstageDTO 启用或者禁用 1 启用 2 禁用
+     * @return 编辑结果
+     */
+    @Override
+    public R putUserAppletsBackstage(PageUserAppletsBackstageDTO pageUserAppletsBackstageDTO) {
+        Long userId = pageUserAppletsBackstageDTO.getUserId();
+        Integer status = pageUserAppletsBackstageDTO.getStatus();
+        SysUserDO sysUserDO = new SysUserDO();
+        sysUserDO.setUserId(userId);
+        sysUserDO.setStatus(status);
+        int update = userDao.updateById(sysUserDO);
+        if (update > 0) {
+            return R.ok();
+        }
+        return R.fail("用户不存在");
+    }
+
+    /**
+     * 调试接口--清除昵称、社区、小区
+     *
+     * @param userId 登录用户id
+     * @return 清除结果
+     */
+    @Override
+    public R deleteUserTest(Long userId) {
+        int num = userDao.deleteUserTest(userId);
+        if (num > 0) {
+            return R.ok();
+        }
+        return R.fail("清除失败");
+    }
+
+    /**
+     * 用户协议和隐私政策
+     *
+     * @param type 所属app 1居民端app 2网格员端app 3商家端app
+     * @return 协议内容
+     */
+    @Override
+    public R userAgreement(int type, String appId) {
+        SysUserAgreementDO sysUserAgreementDO = sysUserAgreementDAO
+                .selectOne(new QueryWrapper<SysUserAgreementDO>().lambda().eq(SysUserAgreementDO::getType, type).eq(SysUserAgreementDO::getAppId, appId));
+        return R.ok(sysUserAgreementDO);
+    }
+
+    /**
+     * 意见反馈
+     *
+     * @param sysUserFeedbackDTO 反馈内容
+     * @return 反馈结果
+     */
+    @Override
+    public R addFeedback(SysUserFeedbackDTO sysUserFeedbackDTO) {
+        SysUserFeedbackDO sysUserFeedbackDO = new SysUserFeedbackDO();
+        BeanUtils.copyProperties(sysUserFeedbackDTO, sysUserFeedbackDO);
+        sysUserFeedbackDO.setPhotoPath(sysUserFeedbackDTO.getPhotoPah());
+        int insert = sysUserFeedbackDAO.insert(sysUserFeedbackDO);
+        if (insert > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 分页通知列表
+     *
+     * @param pageDTO 分页参数
+     * @return 分页结果
+     */
+    @Override
+    public R pageNotice(PageDTO pageDTO) {
+        Long userId = pageDTO.getUserId();
+        Integer type = pageDTO.getType();
+        int integer = 0;
+        if (null != type && type.intValue() > 0) {
+            integer = sysUserNoticeDAO
+                    .selectCount(new QueryWrapper<SysUserNoticeDO>().lambda().eq(SysUserNoticeDO::getUserId, userId)
+                            .eq(SysUserNoticeDO::getStatus, 0).eq(SysUserNoticeDO::getType, type));
+        } else {
+            integer = sysUserNoticeDAO.selectCount(new QueryWrapper<SysUserNoticeDO>().lambda()
+                    .eq(SysUserNoticeDO::getUserId, userId).eq(SysUserNoticeDO::getStatus, 0));
+        }
+        Page page = new Page<>();
+        Long pageNum = pageDTO.getPageNum();
+        Long pageSize = pageDTO.getPageSize();
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<SysUserNoticeVO> iPage = userDao.pageNotice(page, pageDTO);
+        Map<String, Object> map = new HashMap<>(2);
+        map.put("page", iPage);
+        map.put("unreadNum", integer);
+        return R.ok(map);
+    }
+
+    /**
+     * 通知已读
+     *
+     * @param noticeReadDTO 通知已读
+     * @return 修改状态
+     */
+    @Override
+    public R putNotice(NoticeReadDTO noticeReadDTO) {
+        Integer all = noticeReadDTO.getAll();
+        Long userId = noticeReadDTO.getUserId();
+        int num = 0;
+        SysUserNoticeDO sysUserNoticeDO = new SysUserNoticeDO();
+        if (null != all && 1 == all.intValue()) {
+            sysUserNoticeDO.setStatus(1);
+            num = sysUserNoticeDAO.update(sysUserNoticeDO, new UpdateWrapper<SysUserNoticeDO>().lambda()
+                    .eq(SysUserNoticeDO::getUserId, userId).eq(SysUserNoticeDO::getStatus, 0));
+        } else {
+            sysUserNoticeDO.setId(noticeReadDTO.getId());
+            sysUserNoticeDO.setStatus(1);
+            num = sysUserNoticeDAO.updateById(sysUserNoticeDO);
+        }
+        if (num > 0) {
+            return R.ok();
+        }
+        return R.fail("通知不存在");
+    }
+
+    /**
+     * 分页查询用户意见反馈
+     *
+     * @param pageFeedBackDTO 分页查询参数
+     * @return 意见集合
+     */
+    @Override
+    public R pageFeedback(PageFeedBackDTO pageFeedBackDTO) {
+        Page page = new Page<>();
+        Long pageNum = pageFeedBackDTO.getPageNum();
+        Long pageSize = pageFeedBackDTO.getPageSize();
+        page.setSize(pageSize);
+        page.setCurrent(pageNum);
+        IPage<SysUserFeedbackVO> iPage = sysUserFeedbackDAO.pageFeedback(page, pageFeedBackDTO);
+        return R.ok(iPage);
+    }
+
+    /**
+     * 未读消息汇总
+     *
+     * @param userId 登录用户信息
+     * @return 未读汇总
+     */
+    @Override
+    public R noticeUnreadNum(Long userId) {
+        NoticeUnReadVO noticeUnReadVO = sysUserNoticeDAO.noticeUnreadNum(userId);
+        List<SysUserNoticeVO> sysUserNoticeVOList = new ArrayList<>();
+        List<SysUserNoticeDO> sysUserNoticeDOS = sysUserNoticeDAO.selectList(new QueryWrapper<SysUserNoticeDO>()
+                .lambda().eq(SysUserNoticeDO::getUserId, userId).orderByDesc(SysUserNoticeDO::getCreateAt));
+        if (!ObjectUtils.isEmpty(sysUserNoticeDOS)) {
+            List<Integer> typeList = new ArrayList<>(4);
+            sysUserNoticeDOS.forEach(sysUserNoticeDO -> {
+                Integer type = sysUserNoticeDO.getType();
+                if (!typeList.contains(type)) {
+                    SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO();
+                    BeanUtils.copyProperties(sysUserNoticeDO, sysUserNoticeVO);
+                    sysUserNoticeVOList.add(sysUserNoticeVO);
+                    typeList.add(type);
+                }
+            });
+        }
+        noticeUnReadVO.setSysUserNoticeVOList(sysUserNoticeVOList);
+        return R.ok(noticeUnReadVO);
+    }
+
+    /**
+     * 反馈意见详情
+     *
+     * @param id 反馈主键
+     * @return 反馈详情
+     */
+    @Override
+    public R detailFeedback(Long id) {
+        SysUserFeedbackVO sysUserFeedbackVO = sysUserFeedbackDAO.detailFeedback(id);
+        return R.ok(sysUserFeedbackVO);
+    }
+
+    /**
+     * 运营小程序后台数据看板
+     *
+     * @return 展示数据
+     */
+    @Override
+    public R dataKanban(String areaCode) {
+        IndexDataKanbanVO indexDataKanbanVO = userDao.selectIndexDataKanban(areaCode);
+        List<DataKanbanDTO> dataKanbanDTOS = userDao.selectCommunityUserOrder(new Page(1L, 9999L), areaCode).getRecords();
+
+        List<String> communityUserX = new ArrayList<>();
+        List<Integer> communityUserY = new ArrayList<>();
+        List<String> communityActiveUserX = new ArrayList<>();
+        List<Integer> communityActiveUserY = new ArrayList<>();
+        if (!ObjectUtils.isEmpty(dataKanbanDTOS)) {
+            dataKanbanDTOS.forEach(dataKanbanDTO -> {
+                communityUserX.add(dataKanbanDTO.getName());
+                communityUserY.add(dataKanbanDTO.getNum());
+            });
+        }
+        // 获取最近七天数据
+        List<Date> serverndays = this.getServenDays();
+        serverndays.forEach(date -> {
+            // 查询社区活动数量
+            DataKanbanDTO dataKanbanDTO = userDao.selectCommunityActiveUserOrder(date);
+            communityActiveUserX.add(DateFormatUtils.format(date, "MM-dd"));
+            communityActiveUserY.add(dataKanbanDTO.getNum());
+        });
+        indexDataKanbanVO.setCommunityActiveUserX(communityActiveUserX);
+        indexDataKanbanVO.setCommunityActiveUserY(communityActiveUserY);
+        indexDataKanbanVO.setCommunityUserX(communityUserX);
+        indexDataKanbanVO.setCommunityUserY(communityUserY);
+        return R.ok(indexDataKanbanVO);
+    }
+
+    /**
+     * 获取最近七天数据
+     *
+     * @return
+     */
+    private List<Date> getServenDays() {
+        List<Date> dates = new ArrayList<>();
+        Date date = new Date();
+        for (int i = 6; i >= 0; i--) {
+            Date date1 = DateUtils.addDays(date, -i);
+            dates.add(date1);
+        }
+        return dates;
+    }
+
+    /**
+     * 社区管理后台数据看板
+     *
+     * @param communityId 社区id
+     * @return 看板用户数据
+     */
+    @Override
+    public R indexDataCommunityBackstage(Long communityId) {
+        IndexDataVO indexDataVO = userDao.indexDataCommunityBackstage(communityId);
+        // 查询后台党员数量
+        return R.ok(indexDataVO);
+    }
+
+    /**
+     * 定时任务维护用户持续登录时间
+     *
+     * @return 维护结果
+     */
+    @Override
+    public R timedTaskContinuousLandingDays() {
+        int num = userDao.timedTaskContinuousLandingDays();
+        if (num > 0) {
+            log.info("定时任务维护用户持续登录时间,维护用户数量【{}】", num);
+        }
+        return R.ok();
+    }
+
+    /**
+     * 新增用户通知
+     *
+     * @param sysUserNoticeVO 通知内容
+     * @return 新增结果
+     */
+    @Override
+    public R addNotice(SysUserNoticeVO sysUserNoticeVO) {
+        SysUserNoticeDO sysUserNoticeDO = new SysUserNoticeDO();
+        BeanUtils.copyProperties(sysUserNoticeVO, sysUserNoticeDO);
+        int insert = sysUserNoticeDAO.insert(sysUserNoticeDO);
+        if (insert > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 修改用户的党员状态
+     *
+     * @param idCard 身份证号
+     * @return 修改结果
+     */
+    @Override
+    public R updateUserIsPartymember(String idCard) {
+        SysUserDO sysUserDO = userDao.selectOne(
+                new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getIdCard, idCard).eq(SysUserDO::getType, 1));
+        if (sysUserDO != null) {
+            sysUserDO.setIsPartymember(1);
+            int updated = userDao.updateById(sysUserDO);
+            if (updated > 0) {
+                // 删除用户信息缓存
+                String userKey = UserConstants.LOGIN_USER_INFO + sysUserDO.getUserId();
+                stringRedisTemplate.delete(userKey);
+            }
+            log.info("新增党员修改用户党员状态成功 身份证号【{}】", idCard);
+        }
+        return R.ok();
+    }
+
+    /**
+     * 修改用户的党员状态
+     *
+     * @param phone 身份证号
+     * @return 修改结果
+     */
+    @Override
+    public R updateUserIsPartymemberByPhone(String phone) {
+        SysUserDO sysUserDO = userDao.selectOne(
+                new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getPhone, phone).eq(SysUserDO::getType, 1));
+        if (sysUserDO != null) {
+            sysUserDO.setIsPartymember(1);
+            int updated = userDao.updateById(sysUserDO);
+            if (updated > 0) {
+                // 删除用户信息缓存
+                String userKey = UserConstants.LOGIN_USER_INFO + sysUserDO.getUserId();
+                stringRedisTemplate.delete(userKey);
+            }
+            log.info("新增党员修改用户党员状态成功 手机号【{}】", phone);
+        }
+        return R.ok();
+    }
+
+    /**
+     * 修改用户的党员状态
+     *
+     * @param idCard 身份证号
+     * @return 修改结果
+     */
+    @Override
+    public R updateUserNotPartymember(String idCard) {
+        SysUserDO sysUserDO = userDao.selectOne(
+                new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getIdCard, idCard).eq(SysUserDO::getType, 1));
+        if (sysUserDO != null) {
+            sysUserDO.setIsPartymember(0);
+            int updated = userDao.updateById(sysUserDO);
+            if (updated > 0) {
+                // 删除用户信息缓存
+                String userKey = UserConstants.LOGIN_USER_INFO + sysUserDO.getUserId();
+                stringRedisTemplate.delete(userKey);
+            }
+            log.info("新增党员修改用户为非党员状态成功 身份证号【{}】", idCard);
+        }
+        return R.ok();
+    }
+
+    /**
+     * 获取各种协议
+     *
+     * @param type 1居民端app协议 2网格员端app协议 3商家端app协议 4隐私政策
+     * @return 协议内容
+     */
+    @Override
+    public R agreement(Integer type, String appId) {
+        SysUserAgreementDO sysUserAgreementDO = sysUserAgreementDAO
+                .selectOne(new QueryWrapper<SysUserAgreementDO>().lambda().eq(SysUserAgreementDO::getType, type).eq(SysUserAgreementDO::getAppId, appId));
+        if (ObjectUtils.isEmpty(sysUserAgreementDO)) {
+            return R.fail("协议不存在");
+        }
+        SysUserAgreementVO sysUserAgreementVO = new SysUserAgreementVO();
+        BeanUtils.copyProperties(sysUserAgreementDO, sysUserAgreementVO);
+        return R.ok(sysUserAgreementVO);
+    }
+
+    /**
+     * 维护用户最后登录时间
+     *
+     * @param userId 用户主键
+     * @return 维护结果
+     */
+    @Override
+    public R putUserLastLoginTime(Long userId) {
+        SysUserDO sysUserDO = new SysUserDO();
+        sysUserDO.setUserId(userId);
+        sysUserDO.setLastLoginTime(new Date());
+        int update = userDao.updateById(sysUserDO);
+        if (update > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 删除意见反馈
+     *
+     * @param id 主键
+     * @return 删除结果
+     */
+    @Override
+    public R deleteFeedback(Long id) {
+        int delete = sysUserFeedbackDAO.deleteById(id);
+        if (delete > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 校验小区是否存在
+     *
+     * @param areaName 小区名字
+     * @return 校验结果
+     */
+    @Override
+    public R checkAereaName(String areaName) {
+        Integer num = userDao.selectCountArea(areaName);
+        if (num > 0) {
+            Integer integer = userDao.selectCountHouse(areaName);
+            if (integer > 0) {
+                return R.ok();
+            } else {
+                return R.fail("小区房屋信息未创建,请先在社区平台添加房屋信息");
+            }
+        } else {
+            return R.fail("小区不存在,请先在社区平台添加小区");
+        }
+    }
+
+    /**
+     * 社区人员详情包括导入人员
+     *
+     * @param userId 人员id
+     * @return CommunityUserInfoVO
+     */
+    @Override
+    public CommunityUserInfoVO detailUserComunity(Long userId) {
+        CommunityUserInfoVO communityUserInfoVO = null;
+        SysUserDO sysUserDO = userDao.selectById(userId);
+        if (!ObjectUtils.isEmpty(sysUserDO)) {
+            communityUserInfoVO = new CommunityUserInfoVO();
+            String idCard = sysUserDO.getIdCard();
+            if (!ObjectUtils.isEmpty(idCard)) {
+                communityUserInfoVO.setAge(IdCard.IdNOToAge(idCard));
+                communityUserInfoVO.setBirthday(sysUserDO.getBirthday());
+                communityUserInfoVO.setIdCard(idCard);
+            }
+            communityUserInfoVO.setCreateAt(sysUserDO.getCreateAt());
+            communityUserInfoVO.setCardPhotoBack(sysUserDO.getCardPhotoBack());
+            communityUserInfoVO.setCardPhotoFront(sysUserDO.getCardPhotoFront());
+            communityUserInfoVO.setFamilyBook(sysUserDO.getFamilyBook());
+            communityUserInfoVO.setName(sysUserDO.getName());
+            String phone = sysUserDO.getPhone();
+            communityUserInfoVO.setPhone(phone);
+            communityUserInfoVO.setSex(sysUserDO.getSex());
+            communityUserInfoVO.setTags(sysUserDO.getTags());
+            communityUserInfoVO.setUserId(userId);
+            ComMngVolunteerMngVO comMngVolunteerMngVO = userDao.selectVolunteerMngByPhone(phone);
+            if (!ObjectUtils.isEmpty(comMngVolunteerMngVO)) {
+                communityUserInfoVO.setVolunteerCreateAt(comMngVolunteerMngVO.getCreateAt());
+            }
+            Integer isPartymember = sysUserDO.getIsPartymember();
+            if (isPartymember.intValue() == 1) {
+                communityUserInfoVO.setPoliticalOutlook(1);
+            } else {
+                communityUserInfoVO.setPoliticalOutlook(3);
+            }
+            communityUserInfoVO.setIsVolunteer(sysUserDO.getIsVolunteer());
+            List<ComMngFamilyInfoDO> comMngFamilyInfoDOS = comMngFamilyInfoDAO
+                    .selectList(new QueryWrapper<ComMngFamilyInfoDO>().lambda().eq(ComMngFamilyInfoDO::getUserId, userId));
+            if (!ObjectUtils.isEmpty(comMngFamilyInfoDOS)) {
+                List<ComMngFamilyInfoVO> comMngFamilyInfoVOS = new ArrayList<>();
+                comMngFamilyInfoDOS.forEach(comMngFamilyInfoDO -> {
+                    ComMngFamilyInfoVO comMngFamilyInfoVO = new ComMngFamilyInfoVO();
+                    BeanUtils.copyProperties(comMngFamilyInfoDO, comMngFamilyInfoVO);
+                    comMngFamilyInfoVOS.add(comMngFamilyInfoVO);
+                });
+                communityUserInfoVO.setComMngFamilyInfoVOS(comMngFamilyInfoVOS);
+            }
+        }
+        return communityUserInfoVO;
+    }
+
+    /**
+     * 用户搜索了就下载搜索的用户否则下载所有用户
+     *
+     * @param exportUserDTO 用户搜索内容
+     * @return List<EexcelUserDTO> excel内容
+     */
+    @Override
+    public R export(ExportUserDTO exportUserDTO) {
+        List<EexcelUserDTO> eexcelUserDTOS = userDao.selectExport(exportUserDTO);
+        return R.ok(eexcelUserDTOS);
+    }
+
+    @Override
+    public R getSysUserVOByPhone(String phone) {
+        SysUserDO sysUserDO = userDao
+                .selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getPhone, phone).eq(SysUserDO::getType, 1).orderByDesc(SysUserDO::getCreateAt).last("limit 1"));
+        if (ObjectUtils.isEmpty(sysUserDO)) {
+            return R.fail("账号或密码错误");
+        }
+        SysUserVO sysUserVO = new SysUserVO();
+        BeanUtils.copyProperties(sysUserDO, sysUserVO);
+        return R.ok(sysUserVO);
+    }
+
+    /**
+     * 查询当前社区所有标签以及预设标签
+     *
+     * @return 标签集合
+     */
+    @Override
+    public R listTags() {
+        List<String> list = new ArrayList<>();
+        List<ComMngUserTagDO> comMngUserTagDOS = comMngUserTagDAO
+                .selectList(null);
+        if (!ObjectUtils.isEmpty(comMngUserTagDOS)) {
+            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);
+    }
+
+    @Override
+    public R getSysUserVOByAccount(String account, Integer type) {
+        LambdaQueryWrapper<SysUserDO> query = new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getAccount, account);
+        query.eq(SysUserDO::getType, type);
+        SysUserDO sysUserDO = userDao.selectOne(query);
+        if (ObjectUtils.isEmpty(sysUserDO)) {
+            return R.fail("账号或密码错误");
+        }
+        SysUserVO sysUserVO = new SysUserVO();
+        BeanUtils.copyProperties(sysUserDO, sysUserVO);
+        return R.ok(sysUserVO);
+    }
+
+    /**
+     * 新增SysUser
+     *
+     * @param storeVO 请求参数
+     * @return 新增结果
+     */
+    @Override
+    public R addSysUser(ShopStoreVO storeVO) {
+
+        SysUserDO sysUserDO = new SysUserDO();
+        Long communityId = 0L;
+        // 新增社区高级管理员角色
+        SysRoleDO sysRoleDO = new SysRoleDO();
+        sysRoleDO.setCommunityId(0L);
+        sysRoleDO.setRoleName(storeVO.getName());
+        sysRoleDO.setRoleKey(Constants.SHOP_ROLE_KEY + storeVO.getStoreAccount());
+        sysRoleDO.setRoleSort(0);
+        sysRoleDO.setCreateBy(storeVO.getLoginUserId());
+        int insert = roleDAO.insert(sysRoleDO);
+        if (insert < 0) {
+            return R.fail();
+        }
+        // 新角色设置所有权限
+        MenuRoleVO menuRoleVO = new MenuRoleVO();
+        menuRoleVO.setIsAll(1);
+        menuRoleVO.setCommunityId(communityId);
+        menuRoleVO.setRoleId(sysRoleDO.getRoleId());
+        this.putMenuRole(menuRoleVO);
+
+        // sys_user 表
+        String encode = new BCryptPasswordEncoder().encode(storeVO.getStorePassword());
+        BeanUtils.copyProperties(storeVO, sysUserDO);
+        sysUserDO.setAccount(storeVO.getStoreAccount());
+        sysUserDO.setType(5);
+        sysUserDO.setAreaId(null);
+        sysUserDO.setStatus(1);
+        sysUserDO.setPhone(storeVO.getPhone());
+        sysUserDO.setName(storeVO.getContacts());
+        sysUserDO.setPassword(encode);
+        sysUserDO.setAppId("wx0cef797390444b75");
+        try {
+            insert = userDao.insert(sysUserDO);
+            SysUserRoleDO sysUserRoleDO = new SysUserRoleDO();
+            sysUserRoleDO.setUserId(sysUserDO.getUserId());
+            sysUserRoleDO.setRoleId(sysRoleDO.getRoleId());
+            sysUserRoleDAO.insert(sysUserRoleDO);
+            // 把SysUserId赋值给店铺
+            if (sysUserDO.getUserId() != null) {
+                userDao.updateStoreByPhone(storeVO.getPhone(), sysUserDO.getUserId());
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("新增后台用户报错【{}】", e.getMessage());
+            if (e.getMessage().contains("union_phone_type")) {
+                userDao.deleteStoreByPhoneAndStatus(storeVO.getPhone());
+                roleDAO.deleteByRoleKey(Constants.SHOP_ROLE_KEY + storeVO.getStoreAccount());
+                return R.fail("手机号已经存在");
+            } else if (e.getMessage().contains("union_account_type")) {
+                return R.fail("账户已经存在");
+            }
+        }
+        return R.ok();
+    }
+
+    /**
+     * 修改SysUser用户信息
+     *
+     * @param storeVO 请求参数
+     * @return 修改结果
+     */
+    @Override
+    public R editSysUser(ShopStoreVO storeVO) {
+        SysUserDO sysUserDO1 = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda()
+                .eq(SysUserDO::getPhone, storeVO.getStoreAccount()).eq(SysUserDO::getType, 5));
+        if (sysUserDO1 == null) {
+            return R.fail("未查询到后台管理用户!");
+        }
+        String encode = new BCryptPasswordEncoder().encode(storeVO.getStorePassword());
+        sysUserDO1.setPassword(encode);
+        if (userDao.updateById(sysUserDO1) > 0) {
+            return R.ok();
+        }
+        return R.fail("密码修改失败");
+    }
+
+    /**
+     * 修改用户小程序首页活动提示
+     *
+     * @param userEditTipsDTO 请求参数
+     * @return 修改结果
+     */
+    public R editUserTips(SysUserEditTipsDTO userEditTipsDTO) {
+        // 查询用户信息
+        SysUserDO userDO = userDao.selectById(userEditTipsDTO.getUserId());
+        if (userDO == null) {
+            return R.fail("未查询到用户信息");
+        }
+        // 修改用户信息
+        userDO.setIsTips(userEditTipsDTO.getIsTips());
+        userDao.updateById(userDO);
+        if (userDao.updateById(userDO) > 0) {
+            return R.ok();
+        } else {
+            return R.fail();
+        }
+    }
+
+    @Override
+    public R getUserArchives(Long userId) {
+        // 查询用户信息
+        SysUserDO userDO = userDao.selectById(userId);
+        if (userDO == null) {
+            return R.fail("未查询到用户信息");
+        }
+        UserArchivesVO userArchivesVO = new UserArchivesVO();
+        BeanUtils.copyProperties(userDO, userArchivesVO);
+        userArchivesVO.setUserId(userDO.getUserId());
+        return R.ok(userArchivesVO);
+    }
+
+    @Override
+    public R updateUserArchives(UpdateUserArchivesVO userArchivesVO) {
+        if (userArchivesVO.getUserId() == null) {
+            return R.fail("未查询到用户信息");
+        }
+        userDao.updateUserArchives(userArchivesVO);
+        return R.ok();
+    }
+
+    /**
+     * 修改app用户密码
+     *
+     * @param userInfoAppDTO 请求参数
+     * @return 修改结果
+     */
+    @Override
+    public R updateUserPassByApp(EditUserInfoPassAppDTO userInfoAppDTO) {
+        if (userInfoAppDTO.getOldPassword().equals(userInfoAppDTO.getNewPassword())) {
+            return R.fail("新密码不可与原密码相同");
+        }
+        // 查询用户信息
+        SysUserDO userDO = userDao.selectById(userInfoAppDTO.getUserId());
+        if (userDO == null) {
+            return R.fail("未查询到用户信息");
+        }
+        BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
+        if (!passwordEncoder.matches(userInfoAppDTO.getOldPassword(), userDO.getPassword())) {
+            return R.fail("原密码错误");
+        }
+        if (!userInfoAppDTO.getNewPassword().equals(userInfoAppDTO.getConfirmPassword())) {
+            return R.fail("两次输入的新密码不一致");
+        }
+        userDO.setPassword(passwordEncoder.encode(userInfoAppDTO.getNewPassword()));
+        if (userDao.updateById(userDO) > 0) {
+            return R.ok();
+        } else {
+            return R.fail();
+        }
+    }
+
+    /**
+     * 添加网格员
+     *
+     * @param eventGridMemberAddDTO 请求参数
+     * @return 结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R addGridUser(EventGridMemberAddDTO eventGridMemberAddDTO) {
+        SysRoleDO gridMemberDefaultRole = roleDAO.selectOne(
+                new QueryWrapper<SysRoleDO>().lambda().eq(SysRoleDO::getRoleKey, Constants.GRID_DEFAULT_ROLE_KEY));
+        if (gridMemberDefaultRole == null) {
+            // 添加默认网格员角色
+            gridMemberDefaultRole = new SysRoleDO();
+            gridMemberDefaultRole.setCommunityId(0L);
+            gridMemberDefaultRole.setRoleName("网格员默认角色");
+            gridMemberDefaultRole.setRoleKey(Constants.GRID_DEFAULT_ROLE_KEY);
+            gridMemberDefaultRole.setRoleSort(0);
+            gridMemberDefaultRole.setCreateBy(eventGridMemberAddDTO.getUserId());
+            int insert = roleDAO.insert(gridMemberDefaultRole);
+            if (insert != 1) {
+                throw new ServiceException("网格员默认角色添加失败");
+            }
+        }
+        Long roleId = gridMemberDefaultRole.getRoleId();
+        // 新角色设置所有权限
+        MenuRoleVO menuRoleVO = new MenuRoleVO();
+        menuRoleVO.setIsAll(1);
+        menuRoleVO.setCommunityId(eventGridMemberAddDTO.getCommunityId());
+        menuRoleVO.setRoleId(roleId);
+        this.putMenuRole(menuRoleVO);
+
+        // 参数校验
+        SysUserDO oldUserDO = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, 6)
+                .eq(SysUserDO::getNickName, eventGridMemberAddDTO.getNickName()));
+        if (oldUserDO != null) {
+            return R.fail("昵称已使用");
+        }
+
+        SysUserDO sysUserDO = new SysUserDO();
+        String encode = new BCryptPasswordEncoder().encode(eventGridMemberAddDTO.getPassword());
+        eventGridMemberAddDTO.setPassword(encode);
+        BeanUtils.copyProperties(eventGridMemberAddDTO, sysUserDO);
+        if (!StringUtils.isEmpty(sysUserDO.getNickName())) {
+            sysUserDO.setName(sysUserDO.getNickName());
+        }
+        sysUserDO.setType(6);
+        if (StringUtils.isEmpty(eventGridMemberAddDTO.getImageUrl())) {
+            sysUserDO.setImageUrl(Constants.ZONG_ZHI_GRID_MEMBER_IMAGE_URL);
+        }
+        int insert = 0;
+        try {
+            insert = userDao.insert(sysUserDO);
+            SysUserRoleDO sysUserRoleDO = new SysUserRoleDO();
+            sysUserRoleDO.setUserId(sysUserDO.getUserId());
+            sysUserRoleDO.setRoleId(roleId);
+            sysUserRoleDAO.insert(sysUserRoleDO);
+
+            // 关联市平台网格员
+            if (eventGridMemberAddDTO.getLcMemberId() != null) {
+                LcCompareCodeMemberDO compareCodeMemberDO =
+                        lcCompareMemberCodeMapper.selectOne(new QueryWrapper<LcCompareCodeMemberDO>().lambda()
+                                .eq(LcCompareCodeMemberDO::getLcGridMemberId, eventGridMemberAddDTO.getLcMemberId()));
+                if (compareCodeMemberDO != null) {
+                    compareCodeMemberDO.setLocalGridMemberId(sysUserDO.getUserId().toString());
+                    compareCodeMemberDO.setGridMemberName(sysUserDO.getNickName());
+                    compareCodeMemberDO.setUpdateAt(new Date());
+                    lcCompareMemberCodeMapper.updateById(compareCodeMemberDO);
+                } else {
+                    compareCodeMemberDO = new LcCompareCodeMemberDO();
+                    compareCodeMemberDO.setId(Snowflake.getId());
+                    compareCodeMemberDO.setLocalGridMemberId(sysUserDO.getUserId().toString());
+                    compareCodeMemberDO.setGridMemberName(sysUserDO.getNickName());
+                    compareCodeMemberDO.setLcGridMemberId(eventGridMemberAddDTO.getLcMemberId());
+                    compareCodeMemberDO.setLcBindUserId(eventGridMemberAddDTO.getLcBindUserId());
+                    compareCodeMemberDO.setLcGridMemberName(eventGridMemberAddDTO.getLcMemberName());
+                    compareCodeMemberDO.setCreateAt(new Date());
+                    lcCompareMemberCodeMapper.insert(compareCodeMemberDO);
+                }
+            }
+
+            // 网格员关联楼栋
+            if (eventGridMemberAddDTO.getBuildingIds() != null && !eventGridMemberAddDTO.getBuildingIds().isEmpty()) {
+                List<EventGridMemberBuildingRelationDO> buildingRelationList = new ArrayList<>();
+                eventGridMemberAddDTO.getBuildingIds().forEach(buildingId -> {
+                    Map<String, Long> resultMap = this.userDao.getBuilding(buildingId);
+                    if (resultMap != null) {
+                        EventGridMemberBuildingRelationDO buildingRelationDO = new EventGridMemberBuildingRelationDO();
+                        buildingRelationDO.setBuildingId(buildingId);
+                        buildingRelationDO.setGridMemberId(sysUserDO.getUserId());
+                        buildingRelationDO.setVillageId(Long.parseLong(resultMap.get("village_id").toString()));
+                        buildingRelationDO.setCommunityId(Long.parseLong(resultMap.get("act_id").toString()));
+                        buildingRelationDO.setCreateAt(new Date());
+                        buildingRelationList.add(buildingRelationDO);
+                    }
+                });
+                if (!buildingRelationList.isEmpty()) {
+                    buildingRelationService.saveBatch(buildingRelationList);
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("新增后台用户报错【{}】", e.getMessage());
+            if (e.getMessage().contains("union_phone_type")) {
+                return R.fail("手机号已经存在");
+            } else if (e.getMessage().contains("union_account_type")) {
+                return R.fail("账户已经存在");
+            }
+        }
+        if (insert > 0) {
+            return R.ok();
+        } else {
+            return R.fail("添加失败");
+        }
+    }
+
+    /**
+     * 网格员管理
+     *
+     * @param memberRelationDTO 请求参数
+     * @return 网格员列表
+     */
+    @Override
+    public R getGridMemberList(PageEventGridMemberRelationDTO memberRelationDTO) {
+        IPage<GridMemberVO> gridMemberPage = userDao.getGridMemberList(
+                new Page(memberRelationDTO.getPageNum(), memberRelationDTO.getPageSize()), memberRelationDTO);
+        if (!gridMemberPage.getRecords().isEmpty()) {
+            gridMemberPage.getRecords().forEach(gridMember -> {
+                // 查询网格员关联市平台网格员id
+                Map<String, String> lcMemberMap = this.userDao.getLcMemberId(gridMember.getUserId());
+                if (lcMemberMap != null) {
+                    gridMember.setLcMemberId(lcMemberMap.get("lc_grid_member_id"));
+                    gridMember.setLcMemberName(lcMemberMap.get("lc_grid_member_name"));
+                    gridMember.setLcBindUserId(lcMemberMap.get("lc_bind_user_id"));
+                }
+
+                // 查询网格员关联楼栋信息
+                List<GridMemberBuildingVO> memberBuildingList =
+                        eventGridMemberBuildingRelationMapper.getGridMemberBuildingRelation(gridMember.getUserId());
+                if (!memberBuildingList.isEmpty()) {
+                    memberBuildingList.forEach(memberBuilding -> {
+                        if (!memberBuilding.getBuildingName().contains("栋")) {
+                            memberBuilding.setBuildingName(memberBuilding.getBuildingName() + "栋");
+                        }
+                    });
+                    gridMember.setMemberBuildingList(memberBuildingList);
+                }
+            });
+        }
+        return R.ok(gridMemberPage);
+    }
+
+    /**
+     * 修改网格员信息
+     *
+     * @param gridMemberDTO 请求参数
+     * @return 修改结果
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R editGridUser(EventGridMemberEditAdminDTO gridMemberDTO) {
+
+        if (gridMemberDTO.getGridMemberId() == null) {
+            return R.fail("参数错误");
+        }
+        SysUserDO sysUserDO = userDao.selectById(gridMemberDTO.getGridMemberId());
+        if (sysUserDO == null) {
+            return R.fail("参数错误");
+        }
+        gridMemberDTO.setUserId(gridMemberDTO.getGridMemberId());
+
+        // 参数校验
+        SysUserDO oldUserDO = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, 6)
+                .eq(SysUserDO::getNickName, gridMemberDTO.getNickName()));
+        if (oldUserDO != null && !oldUserDO.getUserId().equals(gridMemberDTO.getGridMemberId())) {
+            return R.fail("昵称已使用");
+        }
+
+        BeanUtils.copyProperties(gridMemberDTO, sysUserDO);
+
+        int insert = 0;
+        try {
+            insert = userDao.updateById(sysUserDO);
+
+            // 清除原本关联网格员信息
+            this.userDao.delLcMember(sysUserDO.getUserId());
+            // 关联市平台网格员
+            if (gridMemberDTO.getLcMemberId() != null) {
+                // 关联现有的网格员信息
+                LcCompareCodeMemberDO compareCodeMemberDO =
+                        lcCompareMemberCodeMapper.selectOne(new QueryWrapper<LcCompareCodeMemberDO>().lambda()
+                                .eq(LcCompareCodeMemberDO::getLcGridMemberId, gridMemberDTO.getLcMemberId()));
+                if (compareCodeMemberDO != null) {
+                    compareCodeMemberDO.setLocalGridMemberId(sysUserDO.getUserId().toString());
+                    compareCodeMemberDO.setGridMemberName(sysUserDO.getNickName());
+                    compareCodeMemberDO.setUpdateAt(new Date());
+                    lcCompareMemberCodeMapper.updateById(compareCodeMemberDO);
+                } else {
+                    compareCodeMemberDO = new LcCompareCodeMemberDO();
+                    compareCodeMemberDO.setId(Snowflake.getId());
+                    compareCodeMemberDO.setLocalGridMemberId(sysUserDO.getUserId().toString());
+                    compareCodeMemberDO.setGridMemberName(sysUserDO.getNickName());
+                    compareCodeMemberDO.setLcGridMemberId(gridMemberDTO.getLcMemberId());
+                    compareCodeMemberDO.setLcBindUserId(gridMemberDTO.getLcBindUserId());
+                    compareCodeMemberDO.setLcGridMemberName(gridMemberDTO.getLcMemberName());
+                    compareCodeMemberDO.setCreateAt(new Date());
+                    lcCompareMemberCodeMapper.insert(compareCodeMemberDO);
+                }
+            }
+            // 清除原网格员与楼栋关联关系
+            this.userDao.delGridMemberRelation(sysUserDO.getUserId());
+
+            // 新增网格员关联楼栋
+            if (gridMemberDTO.getBuildingIds() != null && !gridMemberDTO.getBuildingIds().isEmpty()) {
+                List<EventGridMemberBuildingRelationDO> buildingRelationList = new ArrayList<>();
+                gridMemberDTO.getBuildingIds().forEach(buildingId -> {
+                    Map<String, Long> resultMap = this.userDao.getBuilding(buildingId);
+                    if (resultMap != null) {
+                        EventGridMemberBuildingRelationDO buildingRelationDO = new EventGridMemberBuildingRelationDO();
+                        buildingRelationDO.setBuildingId(buildingId);
+                        buildingRelationDO.setGridMemberId(sysUserDO.getUserId());
+                        buildingRelationDO.setVillageId(Long.parseLong(resultMap.get("village_id").toString()));
+                        buildingRelationDO.setCommunityId(Long.parseLong(resultMap.get("act_id").toString()));
+                        buildingRelationDO.setCreateAt(new Date());
+                        buildingRelationList.add(buildingRelationDO);
+                    }
+                });
+                if (!buildingRelationList.isEmpty()) {
+                    buildingRelationService.saveBatch(buildingRelationList);
+                }
+            }
+
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("修改网格员用户报错【{}】", e.getMessage());
+            if (e.getMessage().contains("union_phone_type")) {
+                return R.fail("手机号已经存在");
+            } else if (e.getMessage().contains("union_account_type")) {
+                return R.fail("账户已经存在");
+            }
+        }
+        if (insert > 0) {
+            return R.ok();
+        }
+        return R.fail("修改失败");
+    }
+
+    /**
+     * 重置网格员密码
+     *
+     * @param gridMemberDTO 请求参数
+     * @return 重置结果
+     */
+    @Override
+    public R passResetUser(EventGridMemberPassResetDTO gridMemberDTO) {
+        if (gridMemberDTO.getIds().isEmpty() || StringUtils.isEmpty(gridMemberDTO.getPassword())) {
+            return R.fail("参数错误");
+        }
+        String encode = new BCryptPasswordEncoder().encode(gridMemberDTO.getPassword());
+        gridMemberDTO.setPassword(encode);
+        userDao.passResetUser(gridMemberDTO);
+        return R.ok();
+    }
+
+    /**
+     * 批量删除网格员
+     *
+     * @param Ids 网格员id集合
+     * @return 删除结果
+     */
+    @Override
+    public R deleteMembers(List<Long> Ids) {
+        if (Ids.isEmpty()) {
+            return R.fail("参数有误");
+        }
+        if (userDao.deleteBatchIds(Ids) > 0) {
+            return R.ok();
+        }
+        return R.fail("删除失败");
+    }
+
+    @Override
+    public R gridMemberEditStatus(EventGridMemberEditStatusDTO gridMemberEditDTO) {
+        if (gridMemberEditDTO.getIds().isEmpty()) {
+            return R.fail("参数有误");
+        }
+        userDao.gridMemberEditStatus(gridMemberEditDTO);
+        return R.ok();
+    }
+
+    @Override
+    public R noTips(Long userId) {
+        SysUserDO userDO = this.userDao.selectById(userId);
+        if (userDO != null) {
+            userDO.setBigAgeTips(2);
+            if (this.userDao.updateById(userDO) > 0) {
+                return R.ok();
+            }
+        }
+        return R.fail();
+    }
+
+    /**
+     * 查询社区的收益说明
+     *
+     * @param communityId 社区id
+     * @return 收益说明
+     */
+    @Override
+    public R listAgreements(Long communityId) {
+
+        List<SysUserAgreementDO> sysUserAgreementDOS =
+                sysUserAgreementDAO.selectList(new LambdaQueryWrapper<SysUserAgreementDO>()
+                        .eq(SysUserAgreementDO::getCommunityId, communityId).eq(SysUserAgreementDO::getType, 5));
+        if (sysUserAgreementDOS.isEmpty()) {
+            SysUserAgreementDO agreementDO = new SysUserAgreementDO();
+            agreementDO.setCommunityId(communityId);
+            agreementDO.setName("收益说明");
+            agreementDO.setType(5);
+            agreementDO.setCreateAt(new Date());
+            agreementDO.setContent(Constants.PROFIT_EXPLAIN);
+            sysUserAgreementDAO.insert(agreementDO);
+            sysUserAgreementDOS.add(agreementDO);
+        }
+        List<SysUserAgreementVO> sysUserAgreementVOS = new ArrayList<>();
+        sysUserAgreementDOS.forEach(sysUserAgreementDO -> {
+            SysUserAgreementVO sysUserAgreementVO = new SysUserAgreementVO();
+            BeanUtils.copyProperties(sysUserAgreementDO, sysUserAgreementVO);
+            sysUserAgreementVOS.add(sysUserAgreementVO);
+        });
+        return R.ok(sysUserAgreementVOS);
+    }
+
+    @Override
+    public R getGridIsOk(Long userId) {
+        Integer count = this.userDao.getGridIsOk(userId);
+        if (count > 0) {
+            return R.ok(count);
+        } else {
+            return R.fail();
+        }
+    }
+
+    @Override
+    public R getGridsMemberList(Long communityId) {
+        return R.ok(this.userDao.getGridsMemberList(communityId));
+    }
+
+    /**
+     * 根据用户id查询用户openid
+     *
+     * @param userId 用户id
+     * @return openid
+     */
+    @Override
+    public R getUserOpenId(Long userId) {
+        SysUserDO userDO = this.userDao.selectById(userId);
+        if (userDO != null) {
+            return R.ok(userDO.getOpenid());
+        }
+        return R.fail();
+    }
+
+    /**
+     * 查询社区后台工作人员列表
+     *
+     * @param communityId 社区id
+     * @return 社区后台工作人员列表
+     */
+    @Override
+    public R getUserListByCommunityId(Long communityId) {
+        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();
+        sysUserDO.setUserId(userId);
+        String encode = new BCryptPasswordEncoder().encode("admin123456");
+        sysUserDO.setPassword(encode);
+        int update = userDao.updateById(sysUserDO);
+        if (update > 0) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    @Override
+    public R resetPasswordPatch(Long[] userId, String password) {
+        if (userId != null) {
+            for (Long user : userId) {
+                SysUserDO sysUserDO = new SysUserDO();
+                sysUserDO.setUserId(user);
+                String encode = new BCryptPasswordEncoder().encode(password);
+                sysUserDO.setPassword(encode);
+                userDao.updateById(sysUserDO);
+            }
+        }
+        return R.ok();
+    }
+
+    /**
+     * 便民服务新增商家账号
+     *
+     * @param convenientMerchantDTO
+     * @return 商家用户id
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R addConvenientMerchantUser(ConvenientMerchantDTO convenientMerchantDTO) {
+        SysUserDO sysUserDO;
+        sysUserDO = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getAccount, convenientMerchantDTO.getAccount())
+                .eq(SysUserDO::getPhone,convenientMerchantDTO.getMobilePhone()).eq(SysUserDO::getAppId,"wx118de8a734d269f0"));
+        if (nonNull(sysUserDO)) {
+            return R.fail("账户已经存在");
+        }
+        // sys_user 表
+        sysUserDO = new SysUserDO();
+        String encode = new BCryptPasswordEncoder().encode(convenientMerchantDTO.getPassword());
+        BeanUtils.copyProperties(convenientMerchantDTO, sysUserDO);
+        sysUserDO.setAccount(convenientMerchantDTO.getAccount());
+        sysUserDO.setType(5);
+        sysUserDO.setAreaId(null);
+        sysUserDO.setStatus(1);
+        sysUserDO.setPhone(convenientMerchantDTO.getMobilePhone());
+        sysUserDO.setName(convenientMerchantDTO.getContacts());
+        sysUserDO.setPassword(encode);
+        sysUserDO.setAppId("wx118de8a734d269f0");
+        try {
+            userDao.insert(sysUserDO);
+            return R.ok(sysUserDO.getUserId());
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("新增后台用户报错【{}】", e.getMessage());
+        }
+        return R.fail("新增商户发生错误");
+    }
+
+    /**
+     * 修改便民服务商家绑定账号
+     *
+     * @param userId  用户id
+     * @param account 修改账户
+     * @return 修改结果
+     */
+    @Override
+    public R putUserAccount(Long userId, String account) {
+        SysUserDO sysUserDO = userDao.selectById(userId);
+        if (isNull(sysUserDO)) {
+            return R.fail("用户不存在");
+        }
+        sysUserDO.setAccount(account);
+        userDao.updateById(sysUserDO);
+        return R.ok();
+    }
+
+    // /**
+    //  * 修改便民服务商家绑定账号
+    //  * @param userId 用户id
+    //  * @param account 修改账户
+    //  * @return 修改结果
+    //  */
+    // @Override
+    // public R putUserAccount(Long userId, String account) {
+    //     SysUserDO sysUserDO = userDao.selectById(userId);
+    //     if (isNull(sysUserDO)) {
+    //         return R.fail("用户不存在");
+    //     }
+    //     String oldAccount = sysUserDO.getAccount();
+    //     sysUserDO.setAccount(account);
+    //     int result = userDao.updateById(sysUserDO);
+    //     if (result > 0) {
+    //         SysRoleDO sysRoleDO = roleDAO.selectOne(new QueryWrapper<SysRoleDO>()
+    //                 .lambda().eq(SysRoleDO::getRoleKey, Constants.CONVENIENT_MERCHANT_ROLE_KEY + oldAccount));
+    //         if (nonNull(sysRoleDO)) {
+    //             sysRoleDO.setRoleKey(Constants.CONVENIENT_MERCHANT_ROLE_KEY + account);
+    //             roleDAO.updateById(sysRoleDO);
+    //         }
+    //     }
+    //     return R.ok();
+    // }
+
+    @Override
+    public R disableOrEnableMerchantUsers(DisableOrEnableConvenientMerchantDTO disableOrEnableConvenientMerchantDTO) {
+        userDao.disableOrEnableMerchantUsers(disableOrEnableConvenientMerchantDTO.getType(), disableOrEnableConvenientMerchantDTO.getUserIds());
+        return R.ok();
+    }
+
+    /**
+     * 根据openid维护社区团队里是否注册
+     *
+     * @param openid 用户微信唯一标识
+     */
+    @Override
+    public void judgeCommunityTeam(String openid) {
+        //查询用户信息
+        SysUserDO userDO = this.userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getOpenid, openid));
+        if (userDO != null && StringUtils.isNotEmpty(userDO.getPhone())) {
+            if (this.userDao.getCommunityTeamCount(userDO.getPhone()) > 0) {
+                this.userDao.judgeCommunityTeam(userDO.getPhone());
+            }
+        }
+    }
+
+    /**
+     * 数据看板升级版
+     *
+     * @return 运营后台数据看板升级版
+     */
+    @Override
+    public R dataKanBans(DataKanBansDto dataKanBansDto) {
+        IndexDataKanbanVO indexDataKanbanVO = userDao.selectIndexDataKanban(dataKanBansDto.getAppId());
+        List<String> communityUserX = new ArrayList<>();
+        List<Integer> communityUserY = new ArrayList<>();
+
+        List<String> communityActiveUserX = new ArrayList<>();
+        List<Integer> communityActiveUserY = new ArrayList<>();
+        List<Integer> communityActiveUserZ = new ArrayList<>();
+
+        List<DataKanbanDTO> dataKanbanDTOS = null;
+        Page page = new Page<>();
+        if (nonNull(dataKanBansDto.getPageNum()) && nonNull(dataKanBansDto.getPageSize())) {
+            page.setCurrent(dataKanBansDto.getPageNum());
+            page.setSize(dataKanBansDto.getPageSize());
+        } else {
+            page.setCurrent(1L);
+            page.setSize(20L);
+        }
+        if (dataKanBansDto.getType() != null && dataKanBansDto.getType().equals(DataKanBansDto.type.by)) {
+            dataKanbanDTOS = userDao.selectCommunityUserOrderMonth(page, dataKanBansDto.getAppId()).getRecords();
+        } else {
+            dataKanbanDTOS = userDao.selectCommunityUserOrder(page, dataKanBansDto.getAppId()).getRecords();
+        }
+        if (!ObjectUtils.isEmpty(dataKanbanDTOS)) {
+            dataKanbanDTOS.forEach(dataKanbanDTO -> {
+                communityUserX.add(dataKanbanDTO.getName());
+                communityUserY.add(dataKanbanDTO.getNum());
+            });
+        }
+
+        // 获取最近二十天数据
+        List<Date> activeDate = getTwentyDays();
+
+        String twentyDay = com.panzhihua.common.utlis.DateUtils.getTwentyDay();
+        //获取最近活跃人数
+        List<UsersStatisticsDTO> actives = userDao.selectActive(twentyDay, dataKanBansDto.getAppId());
+        //获取最近注册人数
+        List<UsersStatisticsDTO> dailyAdds = userDao.selectDailyAdd(twentyDay, dataKanBansDto.getAppId());
+
+        Map<String, String> activeMap = actives.stream().collect(Collectors.toMap(UsersStatisticsDTO::getSpecificDate, UsersStatisticsDTO::getTotal));
+        Map<String, String> dailyAddMap = dailyAdds.stream().collect(Collectors.toMap(UsersStatisticsDTO::getSpecificDate, UsersStatisticsDTO::getTotal));
+
+
+        for (Date date : activeDate) {
+            String dateStr = DateUtil.format(date, "yyyy-MM-dd");
+            communityActiveUserX.add(DateFormatUtils.format(date, "MM-dd"));
+            communityActiveUserY.add(dailyAddMap.containsKey(dateStr) ? Integer.parseInt(dailyAddMap.get(dateStr)) : 0);
+            communityActiveUserZ.add(activeMap.containsKey(dateStr) ? Integer.parseInt(activeMap.get(dateStr)) : 0);
+        }
+        indexDataKanbanVO.setCommunityActiveUserX(communityActiveUserX);
+        indexDataKanbanVO.setCommunityAddUserY(communityActiveUserY);
+        indexDataKanbanVO.setCommunityActiveUserY(communityActiveUserZ);
+        indexDataKanbanVO.setCommunityUserX(communityUserX);
+        indexDataKanbanVO.setCommunityUserY(communityUserY);
+        return R.ok(indexDataKanbanVO);
+    }
+
+    /**
+     * 运营后台-用户数据统计汇总
+     *
+     * @return 用户数据统计汇总
+     */
+    @Override
+    public R communityStatistics(String areaCode) {
+        //返回结果数据
+        IndexUserStatisticsVo userStatisticsVo = new IndexUserStatisticsVo();
+        //查询所有街道
+        List<IndexUserStreetVo> streetList = userDao.getUserStreetList(areaCode);
+        streetList.forEach(street -> {
+            List<IndexUserCommunityVo> communityList = userDao.getUserCommunityList(street.getStreetId());
+            street.setCommunityList(communityList);
+        });
+        userStatisticsVo.setStreetList(streetList);
+        return R.ok(userStatisticsVo);
+    }
+
+    @Override
+    public R communityStatisticsExport(String areaCode) {
+        return R.ok(userDao.getUserCommunityExcelExport(areaCode));
+    }
+
+    /**
+     * 通过UnionId获取用户信息
+     *
+     * @param unionId
+     * @return
+     */
+    @Override
+    public R getUserInfoByUnionId(String unionId) {
+        SysUserDO sysUserDO = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getUnionid, unionId));
+        if (isNull(sysUserDO)) {
+            return R.fail("账号或密码错误");
+        }
+        LoginUserInfoVO loginUserInfoVO = new LoginUserInfoVO();
+        BeanUtils.copyProperties(sysUserDO, loginUserInfoVO);
+        return R.ok(loginUserInfoVO);
+    }
+
+    @Override
+    public R updateStreetId(AdministratorsUserVO administratorsUserVO) {
+        SysUserDO sysUserDO = new SysUserDO();
+        BeanUtils.copyProperties(administratorsUserVO, sysUserDO);
+        userDao.updateById(sysUserDO);
+        return R.ok();
+    }
+
+    /**
+     * 删除用户信息缓存
+     *
+     * @param phone
+     */
+    @Override
+    public R deleteUserCashByPhone(String phone) {
+        SysUserDO sysUserDO = this.userDao.selectOne(new LambdaQueryWrapper<SysUserDO>().eq(SysUserDO::getPhone, phone).eq(SysUserDO::getType, 1));
+        if (nonNull(sysUserDO)) {
+            String userKey = UserConstants.LOGIN_USER_INFO + sysUserDO.getUserId();
+            stringRedisTemplate.delete(userKey);
+        }
+        return R.ok();
+    }
+
+    /**
+     * 微商业街新增商家账号
+     *
+     * @param mcsMerchantDTO
+     * @return 商家用户id
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public R addMcsMerchantUser(McsMerchantDTO mcsMerchantDTO) {
+        SysUserDO sysUserDO;
+        sysUserDO = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda()
+                .eq(SysUserDO::getPhone, mcsMerchantDTO.getPhone()).eq(SysUserDO::getType, 11));
+        String encode = new BCryptPasswordEncoder().encode(mcsMerchantDTO.getPassword());
+        if (nonNull(sysUserDO)) {
+            sysUserDO.setAccount(mcsMerchantDTO.getAccount());
+            sysUserDO.setStatus(mcsMerchantDTO.getAccountStatus());
+            sysUserDO.setPhone(mcsMerchantDTO.getPhone());
+            sysUserDO.setPassword(encode);
+            sysUserDO.setPlaintextPassword(mcsMerchantDTO.getPassword());
+            sysUserDO.setImageUrl(mcsMerchantDTO.getLogo());
+            sysUserDO.setName(mcsMerchantDTO.getName());
+            userDao.updateById(sysUserDO);
+            McsLoginUserInfoVO loginUserInfoVO = new McsLoginUserInfoVO();
+            BeanUtils.copyProperties(sysUserDO, loginUserInfoVO);
+            return R.ok(loginUserInfoVO);
+        }
+        // sys_user 表
+        sysUserDO = new SysUserDO();
+        BeanUtils.copyProperties(mcsMerchantDTO, sysUserDO);
+        sysUserDO.setAccount(mcsMerchantDTO.getAccount());
+        sysUserDO.setType(11);
+        sysUserDO.setAreaId(null);
+        sysUserDO.setStatus(mcsMerchantDTO.getAccountStatus());
+        sysUserDO.setPhone(mcsMerchantDTO.getPhone());
+        sysUserDO.setPassword(encode);
+        sysUserDO.setPlaintextPassword(mcsMerchantDTO.getPassword());
+        sysUserDO.setImageUrl(mcsMerchantDTO.getLogo());
+        try {
+            userDao.insert(sysUserDO);
+            McsLoginUserInfoVO loginUserInfoVO = new McsLoginUserInfoVO();
+            BeanUtils.copyProperties(sysUserDO, loginUserInfoVO);
+            return R.ok(loginUserInfoVO);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("修改数字商业街商家用户报错【{}】", e.getMessage());
+            if (e.getMessage().contains("union_account_type") || e.getMessage().contains("23000")) {
+                return R.fail("账户已经存在");
+            } else {
+                return R.fail("账户或手机号已存在,请重新填写尝试");
+            }
+        }
+    }
+
+    /**
+     * 微商业街修改商家账号
+     *
+     * @param mcsMerchantDTO
+     * @return
+     */
+    @Override
+    public R putMcsMerchantUser(McsMerchantDTO mcsMerchantDTO) {
+        SysUserDO sysUserDO = userDao.selectById(mcsMerchantDTO.getUserId());
+        if (isNull(sysUserDO)) {
+            return R.fail("用户不存在");
+        }
+        String account = mcsMerchantDTO.getAccount();
+        String phone = mcsMerchantDTO.getPhone();
+        Integer accountStatus = mcsMerchantDTO.getAccountStatus();
+        String name = mcsMerchantDTO.getName();
+        if (isNotBlank(account)) {
+            sysUserDO.setAccount(account);
+        }
+        if (isNotBlank(phone)) {
+            sysUserDO.setPhone(phone);
+        }
+        if (nonNull(accountStatus)) {
+            sysUserDO.setStatus(accountStatus);
+        }
+        if (isNotBlank(name)) {
+            sysUserDO.setName(name);
+        }
+        try {
+            userDao.updateById(sysUserDO);
+        } catch (Exception e) {
+            e.printStackTrace();
+            log.error("修改数字商业街商家用户报错【{}】", e.getMessage());
+            if (e.getMessage().contains("union_phone_type")) {
+                return R.fail("手机号已存在");
+            } else if (e.getMessage().contains("union_account_type")) {
+                return R.fail("账户已经存在");
+            } else if (e.getMessage().contains("23000")) {
+                return R.fail("手机号已存在");
+            } else {
+                return R.fail("账户或手机号已存在,请重新填写尝试");
+            }
+        }
+        return R.ok();
+    }
+
+    /**
+     * 检查用户是否有效
+     *
+     * @param userId
+     * @param type
+     * @return
+     */
+    @Override
+    public Boolean checkUserIsValid(Long userId, Integer type) {
+        SysUserDO sysUserDO = userDao.selectById(userId);
+        if (isNull(sysUserDO) || sysUserDO.getStatus() != 1 || !sysUserDO.getType().equals(type)) {
+            return false;
+        }
+        return true;
+    }
+
+    /**
+     * 根据手机号、用户类型查询用户
+     *
+     * @param phone
+     * @param type
+     * @return
+     */
+    @Override
+    public R getSysUserByPhone(String phone, Integer type) {
+        SysUserDO sysUserDO = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getPhone, phone).eq(SysUserDO::getType, type));
+        McsLoginUserInfoVO loginUserInfoVO = null;
+        if (nonNull(sysUserDO)) {
+            loginUserInfoVO = new McsLoginUserInfoVO();
+            BeanUtils.copyProperties(sysUserDO, loginUserInfoVO);
+        }
+        return R.ok(loginUserInfoVO);
+    }
+
+    /**
+     * 发送验证码
+     *
+     * @param phone     手机号
+     * @param clientIP  用户ip
+     * @param prefixKey redis Key 前缀
+     * @param limit     获取次数限制
+     * @param timeout   超次数获取时间等待
+     * @return
+     */
+    @Override
+    public R sendMessageCode(String phone, String clientIP, String prefixKey, Integer limit, Integer timeout) {
+        ValueOperations<String, String> opsForValue = stringRedisTemplate.opsForValue();
+        if (isNotBlank(clientIP)) {
+            String redisKey = String.join("::", prefixKey, clientIP);
+            Long increment = opsForValue.increment(redisKey, 1);
+            if (increment > limit) {
+                return R.fail(String.format("请求过于频繁,请%d分钟后再次尝试!", timeout / 60));
+            }
+            stringRedisTemplate.expire(redisKey, timeout, TimeUnit.SECONDS);
+        }
+        Random r = new Random();
+        StringBuilder rs = new StringBuilder();
+        for (int i = 0; i < 5; i++) {
+            rs.append(r.nextInt(10));
+        }
+        String code = rs.toString();
+        int result = SmsUtil.sendCode(phone, code);
+        if (result == 1) {
+            String codeKey = String.join("::", phone, code);
+            opsForValue.set(codeKey, code, timeout, TimeUnit.SECONDS);
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    /**
+     * 根据openId获取微商业街用户
+     *
+     * @param openid
+     * @return
+     */
+    @Override
+    public R getMcsUserByOpenId(String openid) {
+        SysUserDO sysUserDO = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getOpenid, openid).eq(SysUserDO::getType, 11));
+        McsLoginUserInfoVO loginUserInfoVO = null;
+        if (nonNull(sysUserDO) && isNotBlank(sysUserDO.getOpenid())) {
+            loginUserInfoVO = new McsLoginUserInfoVO();
+            BeanUtils.copyProperties(sysUserDO, loginUserInfoVO);
+        }
+        return R.ok(loginUserInfoVO);
+    }
+
+    /**
+     * 商业街用户微信授权-绑定手机号
+     *
+     * @param bindUserPhoneDTO
+     * @return
+     */
+    @Override
+    public R bindOrAddMcsUser(BindUserPhoneDTO bindUserPhoneDTO) {
+        String phone = bindUserPhoneDTO.getPhone();
+        String openId = bindUserPhoneDTO.getOpenId();
+        String redisKey = String.join("::", phone, bindUserPhoneDTO.getCode());
+        Boolean hasKey = stringRedisTemplate.hasKey(redisKey);
+        if (hasKey) {
+            //通过验证
+            SysUserDO sysUserDO = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getPhone, phone).eq(SysUserDO::getType, 11));
+            if (nonNull(sysUserDO)) {
+                //已有用户
+                sysUserDO.setOpenid(openId);
+                int result = userDao.updateById(sysUserDO);
+                if (result > 0) {
+                    McsLoginUserInfoVO loginUserInfoVO = new McsLoginUserInfoVO();
+                    BeanUtils.copyProperties(sysUserDO, loginUserInfoVO);
+                    stringRedisTemplate.delete(redisKey);
+                    return R.ok(loginUserInfoVO);
+                }
+                return R.fail("绑定失败,请重试");
+            } else {
+                //自动创建用户
+                McsMerchantDTO mcsMerchantDTO = new McsMerchantDTO();
+                mcsMerchantDTO.setAccount(phone);
+                mcsMerchantDTO.setPassword("88888888");
+                mcsMerchantDTO.setAccountStatus(1);
+                mcsMerchantDTO.setPhone(phone);
+                mcsMerchantDTO.setName("用户" + retrieveRandomCode(5));
+                mcsMerchantDTO.setImageUrl(DEFAULT_IMAGE_URL);
+                mcsMerchantDTO.setOpenId(openId);
+                R addUserResult = addMcsMerchantUser(mcsMerchantDTO);
+                if (R.isOk(addUserResult)) {
+                    McsLoginUserInfoVO loginUserInfoVO = JSONObject.parseObject(JSONObject.toJSONString(addUserResult.getData()), McsLoginUserInfoVO.class);
+                    loginUserInfoVO.setPlaintextPassword("88888888");
+                    stringRedisTemplate.delete(redisKey);
+                    return R.ok(loginUserInfoVO);
+                }
+                return addUserResult;
+            }
+        } else {
+            return R.fail("验证码错误");
+        }
+    }
+
+    private String retrieveRandomCode(int length) {
+        Random r = new Random();
+        StringBuilder rs = new StringBuilder();
+        for (int i = 0; i < length; i++) {
+            rs.append(r.nextInt(10));
+        }
+        return rs.toString();
+    }
+
+    @Override
+    public R updateUserPartyStatus(Long userId) {
+        List<SysUserDO> sysUserDOs = userDao.selectByUserId(userId);
+        for (SysUserDO sysUserDO : sysUserDOs) {
+            if (sysUserDO != null) {
+                sysUserDO.setIsPartymember(1);
+                int updated = userDao.updateById(sysUserDO);
+                if (updated > 0) {
+                    // 删除用户信息缓存
+                    String userKey = UserConstants.LOGIN_USER_INFO + sysUserDO.getUserId();
+                    stringRedisTemplate.delete(userKey);
+                }
+            }
+        }
+
+        return R.ok();
+    }
+
+    @Override
+    public R uuLogin(UuLoginVO uuLoginVO) {
+        String appId = "";
+        String secret = "";
+        if ("wx118de8a734d269f0".equals(uuLoginVO.getAppid())) {
+            appId = "10000";
+            secret = "e10adc3949ba59abbe56e057f20f883e";
+        } else if ("wx98d62711dfbd8425".equals(uuLoginVO.getAppid())) {
+            appId = "10001";
+            secret = "d89f3a35931c386956c1a402a8e09941";
+        } else {
+            return R.fail("appid未传");
+        }
+        uuLoginVO.setAppid(appId);
+        String timeStamp = PayUtil.create_timestamp();
+        uuLoginVO.setTimestamp(timeStamp);
+        try {
+            uuLoginVO.setSign(PayUtil.MD5(uuLoginVO.getAppid() + secret + timeStamp).toLowerCase(Locale.ROOT));
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        Map<String, String> headerMap = new HashMap<>();
+        headerMap.put("appid", appId);
+
+        String str="https://uu-api.imashuo.com/member/wx/get-access?"+ "appid=" + appId +
+                "&timestamp=" + uuLoginVO.getTimestamp() +
+                "&sign=" + uuLoginVO.getSign() +
+                "&mobile=" + uuLoginVO.getMobile();
+
+        if(!StringUtils.isEmpty(uuLoginVO.getProvince()))
+        {
+            str=str+"&province=" + uuLoginVO.getProvince();
+        }
+
+
+        if(!StringUtils.isEmpty(uuLoginVO.getCity()))
+        {
+            str=str+"&city=" + uuLoginVO.getCity();
+        }
+
+        if(!StringUtils.isEmpty(uuLoginVO.getArea()))
+        {
+            str=str+"&area=" + uuLoginVO.getArea();
+        }
+
+        if(!StringUtils.isEmpty(uuLoginVO.getCouponId()))
+        {
+            str=str+"&couponId=" + uuLoginVO.getCouponId();
+        }
+
+//        String resultJson = HttpClientUtil.get("https://uu-api.imashuo.com/member/wx/get-acces.s?province=" + uuLoginVO.getProvince() + "&city=" + uuLoginVO.getCity() + "&area=" + uuLoginVO.getArea() + "&appid=" + appId + "&timestamp=" + uuLoginVO.getTimestamp() + "&sign=" + uuLoginVO.getSign() + "&mobile=" + uuLoginVO.getMobile() + "&couponId=" + uuLoginVO.getCouponId(), headerMap, null);
+        String resultJson = null;
+        try {
+            resultJson = HttpClientUtil.getUU(str,headerMap,null);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        JSONObject result = JSON.parseObject(resultJson);
+        if (result.get("status").equals(1)) {
+            return R.ok(result.get("data"));
+        }
+        return R.fail(resultJson,"信息错误");
+    }
+
+    @Override
+    public R checkExport(String account, String password, String oldPassword) {
+        if (new BCryptPasswordEncoder().matches(password, oldPassword)) {
+            return R.ok();
+        }
+        return R.fail();
+    }
+
+    @Override
+    public R newIndexData(Integer type, Long streetId, Long areaCode, String appId) {
+        IndexDataKanbanVO indexDataKanbanVO = userDao.selectIndexDataKanban(appId);
+        IndexDataAnalysisVO vo = new IndexDataAnalysisVO();
+        if (ObjectUtils.isEmpty(type)) {
+            //不传默认为所有区县
+            type = ALLCOUNTY;
+        }
+        if (type.equals(ALLCOUNTY) || type.equals(ALLCOMMUNITY) || type.equals(ALLSTREET)) {
+            BeanUtils.copyProperties(indexDataKanbanVO, vo);
+        } else {
+            IndexDataKanbanVO indexDataVO = userDao.dataKanBanStreet(streetId, areaCode, null);
+            BeanUtils.copyProperties(indexDataVO, vo);
+        }
+//            List<UserProportion> userProportionsTotal = userDao.userAnalysis(type, null, streetId,areaCode);
+//            Integer streetUser = userDao.streetUserCount(streetId,areaCode);
+//            for (UserProportion userProportion : userProportionsTotal) {
+//                if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(userProportion)){
+//                    if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(userProportion.getUser())){
+//                        //计算占比
+//                        //userProportion.setAreaCode(null);
+//                        if (type.equals(BYSTREET)){
+//                            userProportion.setRate(getRate(streetUser,userProportion.getUser()));
+//                        }
+//                        userProportion.setRate(getRate(vo.getAllUser(),userProportion.getUser()));
+//                    }
+//                }
+//            }
+//            List<UserProportion> userProportionsMonth = userDao.userAnalysis(type, DateUtil.beginOfMonth(new Date()).toString(), streetId,areaCode);
+//            for (UserProportion userProportion : userProportionsMonth) {
+//                if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(userProportion)){
+//                    if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(userProportion.getUser())){
+//                        //计算占比
+//                        //userProportion.setAreaCode(null);
+//                        if (type.equals(BYSTREET)){
+//                            userProportion.setRate(getRate(streetUser,userProportion.getUser()));
+//                        }
+//                        userProportion.setRate(getRate(vo.getAllUser(),userProportion.getUser()));
+//                    }
+//                }
+//            }
+//            vo.setUserProportionTotal(userProportionsTotal);
+//            vo.setUserProportionMonth(userProportionsMonth);
+//            List<RealUser> realUsersTotal = userDao.realUserCount(type, null, streetId,areaCode);
+//            List<RealUser> realUsersMonth = userDao.realUserCount(type, DateUtil.beginOfMonth(new Date()).toString(), streetId,areaCode);
+//            vo.setRealUsersTotal(realUsersTotal);
+//            vo.setRealUsersMonth(realUsersMonth);
+//            vo.setRealUser(getStreetRealUser(realUsersTotal));
+//            vo.setRealUserRate(getRate(vo.getAllUser(),vo.getRealUser()));
+//            List<Date> twentyDays = getTwentyDays();
+//            List<Date> monthTwentyDays = getMonthTwentyDays();
+//            vo.setUserActivityXAll(getMAndD(getTwentyDays()));
+//            vo.setUserActivityXMonth(getMAndD(getMonthTwentyDays()));
+//            List<String> addUserYAll=new ArrayList<>();
+//            List<String> addUserYMonth=new ArrayList<>();
+//            List<String> activeUserYAll=new ArrayList<>();
+//            List<String> activeUserYMonth=new ArrayList<>();
+//            SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
+//            //获取用户行为Y轴
+//            for (Date date : twentyDays) {
+//                //查询当天的新增和日活
+//                Map<String, Long> map = userDao.getDailyAddAndActive(DateUtil.parse(sdf.format(date)), streetId,areaCode);
+//                addUserYAll.add(map.get("addUser").toString());
+//                activeUserYAll.add(map.get("activeUser").toString());
+//            }
+//            for (Date date : monthTwentyDays) {
+//                Map<String, Long> map = userDao.getDailyAddAndActive(DateUtil.parse(sdf.format(date)), streetId,areaCode);
+//                addUserYMonth.add(map.get("addUser").toString());
+//                activeUserYMonth.add(map.get("activeUser").toString());
+//            }
+//            vo.setAddUserYAll(addUserYAll);
+//            vo.setAddUserYWeek(addUserYMonth);
+//            vo.setActiveUserYAll(activeUserYAll);
+//            vo.setActiveUserYMonth(activeUserYMonth);
+//            if (type.equals(BYSTREET) || type.equals(ALLCOMMUNITY) || type.equals(ALLSTREET)){
+//                //获取其他用户
+//                vo.setOtherUser(indexDataKanbanVO.getAllUser()-countUser(vo.getUserProportionTotal()));
+//                vo.setOtherUserRate(getRate(indexDataKanbanVO.getAllUser(),vo.getOtherUser()));
+//            }
+        return R.ok(vo);
+    }
+
+    @Override
+    public R userRate(Integer type, Long streetId, Long areaCode, Integer range, String appId) {
+        IndexDataAnalysisVO analysisVO = new IndexDataAnalysisVO();
+        if (type.equals(BYSTREET) || type.equals(BYAREA)) {
+            //街道,区县筛选
+            IndexDataKanbanVO indexDataVO = userDao.dataKanBanStreet(streetId, areaCode, null);
+            BeanUtils.copyProperties(indexDataVO, analysisVO);
+        } else {
+            //总量数据
+            IndexDataKanbanVO indexDataKanbanVO = userDao.selectIndexDataKanban(appId);
+            BeanUtils.copyProperties(indexDataKanbanVO, analysisVO);
+        }
+        String date = "";
+        if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(range)) {
+            if (range.equals(1)) {
+                DateTime dateTime = DateUtil.beginOfMonth(new Date());
+                date = DateUtil.parse(dateTime.toString(), "yyyy-MM-dd HH:mm:ss").toString();
+            }
+        }
+        List<UserProportion> userProportions = userDao.userAnalysis(type, date, streetId, areaCode, appId);
+        List<UserRateAnalysisVO> userRateAnalysisVOList = new ArrayList<>();
+        Boolean monthRange = false;
+        if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(range)) {
+            if (range.equals(1)) {
+                monthRange = true;
+            }
+        }
+        if (userProportions.size() > 0) {
+            for (UserProportion userProportion : userProportions) {
+                if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(userProportion)) {
+                    UserRateAnalysisVO vo = new UserRateAnalysisVO();
+                    if (monthRange) {
+                        if (userProportion.getCommunityId().equals("11")) {
+                            continue;
+                        }
+                        //获取本月的用户总数作为计算占比的用户总数
+                        //IndexDataKanbanVO data = userDao.dataKanBanStreet(streetId, areaCode, date);
+                        Integer monthUsers = userDao.getMonthUsers(streetId, areaCode, date, appId);
+                        vo.setRate(getRate(monthUsers, userProportion.getUser()));
+                    } else {
+                        vo.setRate(getRate(analysisVO.getAllUser(), userProportion.getUser()));
+                    }
+                    vo.setName(typeToName(type, userProportion));
+                    vo.setCount(userProportion.getUser());
+                    userRateAnalysisVOList.add(vo);
+                }
+            }
+        }
+        if (ObjectUtils.isEmpty(range)) {
+            //查看累计数据时才计算其他用户的比例 || type.equals(BYSTREET) || type.equals(BYAREA))
+            final Boolean flag = (type.equals(ALLSTREET) || type.equals(ALLCOMMUNITY));
+            if (flag) {
+                UserRateAnalysisVO vo = new UserRateAnalysisVO();
+                vo.setName(OTHERUSER);
+                vo.setCount(analysisVO.getAllUser() - countUser(userRateAnalysisVOList));
+                vo.setRate(getRate(analysisVO.getAllUser(), vo.getCount()));
+                userRateAnalysisVOList.add(vo);
+            }
+        }
+        //计算其他用户占比
+        UserRateVO userRate = new UserRateVO();
+        userRate.setUserList(userRateAnalysisVOList);
+        return R.ok(userRate);
+    }
+
+    @Override
+    public R realUser(Integer type, Long streetId, Long areaCode, Integer range, String appId) {
+        IndexDataAnalysisVO analysisVO = new IndexDataAnalysisVO();
+        if (type.equals(BYSTREET) || type.equals(BYAREA)) {
+            //街道,区县筛选
+            IndexDataKanbanVO indexDataVO = userDao.dataKanBanStreet(streetId, areaCode, null);
+            BeanUtils.copyProperties(indexDataVO, analysisVO);
+        } else {
+            //总量数据
+            IndexDataKanbanVO indexDataKanbanVO = userDao.selectIndexDataKanban(appId);
+            BeanUtils.copyProperties(indexDataKanbanVO, analysisVO);
+        }
+        String date = "";
+        if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(range)) {
+            if (range.equals(1)) {
+                DateTime dateTime = DateUtil.beginOfMonth(new Date());
+                date = DateUtil.parse(dateTime.toString(), "yyyy-MM-dd HH:mm:ss").toString();
+            }
+        }
+        RealUserVO realUserVO = new RealUserVO();
+        List<RealUser> realUsers = userDao.realUserCount(type, date, streetId, areaCode, appId);
+        List<RealUserAnalysisVO> realUserList = new ArrayList<>();
+        realUserVO.setRealUserCount(getStreetRealUser(realUsers));
+        Integer rate = getRate(analysisVO.getAllUser(), realUserVO.getRealUserCount());
+        if (null == rate) {
+            realUserVO.setRealUserRate(0.0);
+        } else {
+            realUserVO.setRealUserRate(rate.doubleValue());
+        }
+        for (RealUser realUser : realUsers) {
+            if (!(type.equals(ALLCOUNTY))) {
+                if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(realUser)) {
+                    if (realUser.getCommunityId().equals("11")) {
+                        continue;
+                    }
+                }
+            }
+            RealUserAnalysisVO vo = new RealUserAnalysisVO();
+            vo.setCount(realUser.getCount());
+            vo.setName(typeToNameRealUser(type, realUser));
+            realUserList.add(vo);
+        }
+        realUserVO.setRealUserList(realUserList);
+        //使用索引迭代避免从列表移除数据后出现空指针异常
+        if (type.equals(BYSTREET) || type.equals(ALLCOMMUNITY)) {
+            for (int i = 0; i < realUserList.size(); i++) {
+                RealUserAnalysisVO realUserAnalysisVO = realUserList.get(i);
+                if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(realUserAnalysisVO)) {
+                    if (StringUtils.isNotEmpty(realUserAnalysisVO.getName())) {
+                        if (realUserAnalysisVO.getName().equals("请选择社区")) {
+                            realUserList.remove(i);
+                        }
+                    }
+                }
+            }
+        } else {
+            //只保留十条
+            if (realUserList.size() >= 11) {
+                realUserList.remove(10);
+            }
+        }
+        return R.ok(realUserVO);
+    }
+
+//    @Override
+//    public R userActivity(Integer type, Long streetId, Long areaCode, Integer range, String appId) {
+//        UserActivityAnalysisVO vo = new UserActivityAnalysisVO();
+//        List<Date> activeX = getTwentyDays();
+//        List<String> activeY = new ArrayList<>();
+//        List<String> adY = new ArrayList<>();
+//        if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(range)) {
+//            if (range.equals(1)) {
+//                //本月数据
+//                activeX = getMonthTwentyDays();
+//            }
+//        }
+//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+//        for (Date date : activeX) {
+//            Map<String, Long> map = userDao.getDailyAddAndActive(DateUtil.parse(sdf.format(date)), streetId, areaCode, appId);
+//            adY.add(map.get("addUser").toString());
+//            activeY.add(map.get("activeUser").toString());
+//        }
+//        vo.setUserX(getMAndD(activeX));
+//        vo.setAddUserY(adY);
+//        vo.setActiveUserY(activeY);
+//        return R.ok(vo);
+//    }
+
+    @Override
+    public R userActivity(Integer type, Long streetId, Long areaCode, Integer range, String appId) {
+        UserActivityAnalysisVO vo = new UserActivityAnalysisVO();
+        String activeX = com.panzhihua.common.utlis.DateUtils.getTwentyDay();
+        List<Date> activeDate = getTwentyDays();
+        List<String> activeY = new ArrayList<>();
+        List<String> adY = new ArrayList<>();
+        if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(range)) {
+            if (range.equals(1)) {
+                //本月数据
+                activeX = com.panzhihua.common.utlis.DateUtils.getMonthTwentyDay();
+                activeDate = getMonthTwentyDays();
+            }
+        }
+        //获取最近活跃人数
+        List<UsersStatisticsDTO> actives = userDao.getActive(activeX, streetId, areaCode, appId);
+        //获取最近注册人数
+        List<UsersStatisticsDTO> dailyAdds = userDao.getDailyAdd(activeX, streetId, areaCode, appId);
+        Map<String, String> activeMap = actives.stream().collect(Collectors.toMap(UsersStatisticsDTO::getSpecificDate, UsersStatisticsDTO::getTotal));
+        Map<String, String> dailyAddMap = dailyAdds.stream().collect(Collectors.toMap(UsersStatisticsDTO::getSpecificDate, UsersStatisticsDTO::getTotal));
+
+
+        for (Date date : activeDate) {
+            String dateStr = DateUtil.format(date, "yyyy-MM-dd");
+            activeY.add(activeMap.containsKey(dateStr) ? activeMap.get(dateStr) : "0");
+            adY.add(dailyAddMap.containsKey(dateStr) ? dailyAddMap.get(dateStr) : "0");
+
+        }
+        vo.setUserX(getMAndD(activeDate));
+        vo.setAddUserY(adY);
+        vo.setActiveUserY(activeY);
+        return R.ok(vo);
+    }
+
+    @Override
+    public R uuPush(String washPhone, String phone, String washName, Integer orderStatus) {
+        if (StringUtils.isNotEmpty(phone)) {
+            SysUserDO sysUserDO = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getPhone, phone).eq(SysUserDO::getAppId, "wx118de8a734d269f0").orderByDesc(SysUserDO::getCreateAt).last("limit 1"));
+            if (sysUserDO != null && StringUtils.isNotEmpty(sysUserDO.getOpenid())) {
+                String status = "";
+                String accessToken = "";
+                WxXCXTempSend util = new WxXCXTempSend();
+                try {
+                    accessToken = util.getAccessToken("wx118de8a734d269f0");
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                switch (orderStatus) {
+                    case 3:
+                        status = "已分配车美";
+                        WxUtil.sendUuWash3(sysUserDO.getOpenid(), accessToken, status, washName, washPhone, phone, "sU18zbyzxFldHAdOREaQCR5uq_uMvCKTmGtklO1xw-w");
+                        break;
+                    case 4:
+                        status = "开始服务";
+                        WxUtil.sendUuWash4(sysUserDO.getOpenid(), accessToken, status, washName, washPhone, phone, "Eft5ksvsnOQANy2uNOGY43CC3pb33eDGA_lgCEoxuiw");
+                        break;
+                    case 6:
+                        status = "订单完成";
+                        WxUtil.sendUuWash6(sysUserDO.getOpenid(), accessToken, status, washName, washPhone, phone, "k1aV97H3pDNNcNcDTeZBD9jQemNDADnRE801HhTXweI");
+                        break;
+                    case 9:
+                        status = "订单取消";
+                        WxUtil.sendUuWash(sysUserDO.getOpenid(), accessToken, status, washName, washPhone, phone, "9_2FhQPDxZoUqmAuIZ1L1zjjYXokdNvu7A0gzKfvruI");
+                        break;
+                }
+            }
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R wsPush(String washPhone, String phone, String washName, Integer orderStatus) {
+        if (StringUtils.isNotEmpty(phone)) {
+            SysUserDO sysUserDO = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getPhone, phone).eq(SysUserDO::getAppId, "wx98d62711dfbd8425").orderByDesc(SysUserDO::getCreateAt).last("limit 1"));
+            if (sysUserDO != null && StringUtils.isNotEmpty(sysUserDO.getOpenid())) {
+                String status = "";
+                String accessToken = "";
+                WxXCXTempSend util = new WxXCXTempSend();
+                try {
+                    accessToken = util.getWsAccessToken();
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+                switch (orderStatus) {
+                    case 3:
+                        status = "已分配车美";
+                        WxUtil.sendWsWash3(sysUserDO.getOpenid(), accessToken, status, washName, washPhone, phone, "sNj6m-JBvW6rOokKGDX9X3-XH1AD0GY5_X0jA9JSLwc");
+                        break;
+                    case 4:
+                        status = "开始服务";
+                        WxUtil.sendWsWash4(sysUserDO.getOpenid(), accessToken, status, washName, washPhone, phone, "Eft5ksvsnOQANy2uNOGY43CC3pb33eDGA_lgCEoxuiw");
+                        break;
+                    case 6:
+                        status = "订单完成";
+                        WxUtil.sendWsWash6(sysUserDO.getOpenid(), accessToken, status, washName, washPhone, phone, "iPS8yrsGDqy76hiP8bIbxkosveoX1xTFhdusSiGp-XM");
+                        break;
+                    case 9:
+                        status = "订单取消";
+                        WxUtil.sendWsWash(sysUserDO.getOpenid(), accessToken, status, washName, washPhone, phone, "z_ysGXz9JWBc2rXuYZzVCXKJTyLf0w0WerrohuNoEng");
+                        break;
+                }
+            }
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R getAllCommunityList() {
+        List<Integer> areaList = areaCodeList();
+        List<AreaVOStr> areaVOList = new ArrayList<>();
+        for (Integer code : areaList) {
+            AreaVOStr areaVO = new AreaVOStr();
+            areaVO.setId(code+"");
+            areaVO.setName(areaCodeToName(code.longValue()));
+            List<StreetVOStr> streetVOS = userDao.selectStreetByAreaCodeStr(code);
+            Iterator<StreetVOStr> iterator = streetVOS.listIterator();
+            while (iterator.hasNext()) {
+                StreetVOStr vo = iterator.next();
+                List<CommunityVO> communityVOS = userDao.selectCommunityByStreetId(Long.parseLong(vo.getId()), 3);
+                vo.setChildList(communityVOS);
+
+            }
+            areaVO.setChildList(streetVOS);
+            areaVOList.add(areaVO);
+        }
+        return R.ok(areaVOList);
+    }
+    @Override
+    public R getCommunityList(String name, Long id) {
+        //区级账号名
+        String[] streetList = {"bingcaogangjiedao", "donghuajiedao", "nongnongpingjiedao", "dadukoujiedaojiedao", "guazipingjiedao",
+                "yinjiangzhen", "qingxiangpingjiedao", "yuquanjiedao", "hemenkoujiedao", "dabaodingjiedao", "taojiadujiedao", "gelipinzhen", "dahezhonglujiedao",
+                "jingjiangzhen", "renhezhen", "pingdizhen", "datianzhen", "tongdezhen", "futianzhen", "qianjinzhen", "panlianzhen", "binguzhen", "baimazhen",
+                "salianzhen", "puweizhen", "deshizhen", "wanqiuyizuxiang", "caochangzhen", "xinshanlisuzuxiang", "tongzilinzhen", "yongxingzhen", "yumenzhen",
+                "honggezhen", "hongguoyizuxiang"};
+//        List<Integer> ids = userDao.selectIdsByAccount(streetList);
+        //村或社区账号
+        Integer type = isVilliage(name);
+        //是否为市级账号
+        Boolean cityAccount = isCityAccount(name);
+        if (cityAccount) {
+            List<Integer> areaList = areaCodeList();
+            List<AreaVOS> areaVOList = new ArrayList<>();
+            for (Integer code : areaList) {
+                AreaVOS areaVO = new AreaVOS();
+                areaVO.setId(code);
+                areaVO.setName(areaCodeToName(code.longValue()));
+                List<StreetVOS> streetVOS = userDao.selectStreetByAreaCode(code);
+                Iterator<StreetVOS> iterator = streetVOS.listIterator();
+                while (iterator.hasNext()) {
+                    StreetVOS vo = iterator.next();
+                    List<CommunityVO> communityVOS = userDao.selectCommunityByStreetId(vo.getId(), type);
+                    vo.setChildList(communityVOS);
+                    if (type != 3) {
+                        if (communityVOS == null || communityVOS.size() == 0) {
+                            iterator.remove();
+                        }
+                    }
+                }
+                areaVO.setChildList(streetVOS);
+                areaVOList.add(areaVO);
+            }
+            return R.ok(areaVOList);
+        } else {
+            Boolean areaAccount = isAreaAccount(name);
+            if (areaAccount) {
+                Integer areaCode = accountToCode(name);
+                List<Integer> areaList = new ArrayList<>();
+                areaList.add(areaCode);
+                List<AreaVOS> areaVOList = new ArrayList<>();
+                for (Integer code : areaList) {
+                    AreaVOS areaVO = new AreaVOS();
+                    areaVO.setId(code);
+                    areaVO.setName(areaCodeToName(code.longValue()));
+                    List<StreetVOS> streetVOS = userDao.selectStreetByAreaCode(code);
+                    Iterator<StreetVOS> iterator = streetVOS.listIterator();
+                    while (iterator.hasNext()) {
+                        StreetVOS vo = iterator.next();
+                        List<CommunityVO> communityVOS = userDao.selectCommunityByStreetId(vo.getId(), type);
+                        vo.setChildList(communityVOS);
+                    }
+                    areaVO.setChildList(streetVOS);
+                    areaVOList.add(areaVO);
+                }
+                return R.ok(areaVOList);
+            } else {
+                //非区县账号,只看街道下属社区
+                if (ArrayUtil.contains(streetList, name)) {
+                    List<StreetVOS> list = new ArrayList<>();
+                    //只看当前街道下属社区
+                    StreetVOS streetVOS = userDao.selectStreetByName(name);
+                    List<CommunityVO> communityVOS = userDao.selectCommunityByStreetName(name);
+                    if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(streetVOS)) {
+                        streetVOS.setChildList(communityVOS);
+                    }
+                    list.add(streetVOS);
+                    return R.ok(list);
+                }
+            }
+        }
+        return R.ok(null);
+    }
+
+    @Override
+    public R resetPassword(Integer type, String account, String appId) {
+        SysUserDO sysUserDO = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getAccount, account).eq(SysUserDO::getType, type).eq(SysUserDO::getAppId, appId));
+        if (sysUserDO != null) {
+            sysUserDO.setPassword("$2a$10$F/2lE2NMhKNHJfi5.FLmfu7jIr7ImRWgCTTeO6m3IRNR2V4sv8YR.");
+            userDao.updateById(sysUserDO);
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R tfLogin(UuLoginVO uuLoginVO) {
+        SysUserDO sysUserDO = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getPhone, uuLoginVO.getMobile()).eq(SysUserDO::getType, 16));
+        if (sysUserDO == null) {
+            sysUserDO = new SysUserDO();
+            sysUserDO.setPassword("$2a$10$F/2lE2NMhKNHJfi5.FLmfu7jIr7ImRWgCTTeO6m3IRNR2V4sv8YR.");
+            sysUserDO.setType(16);
+            sysUserDO.setStatus(1);
+            sysUserDO.setPhone(uuLoginVO.getMobile());
+            sysUserDO.setAccount(uuLoginVO.getMobile());
+            sysUserDO.setAppId("wx0cef797390444b75");
+            userDao.insert(sysUserDO);
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R accept(Long userId) {
+        SysUserDO sysUserDO = new SysUserDO();
+        sysUserDO.setUserId(userId);
+        sysUserDO.setIsAccept(1);
+        userDao.updateById(sysUserDO);
+        return R.ok();
+    }
+
+    @Override
+    @Transactional
+    public R addComPbCheckUser(ComPbCheckUserDTO comPbCheckUserDTO) {
+        SysUserDO sysUserDO = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getAccount, comPbCheckUserDTO.getAccount()).eq(SysUserDO::getType, 3).eq(SysUserDO::getAppId, "wx118de8a734d269f0"));
+        if (sysUserDO != null) {
+            return R.fail("账户名已存在");
+        }
+        SysUserDO sysUserDO1 = new SysUserDO();
+        sysUserDO1.setUserId(Snowflake.getId());
+        sysUserDO1.setAccount(comPbCheckUserDTO.getAccount());
+        sysUserDO1.setPassword(new BCryptPasswordEncoder().encode(comPbCheckUserDTO.getPassword()));
+        sysUserDO1.setType(3);
+        sysUserDO1.setAppId("wx118de8a734d269f0");
+        sysUserDO1.setCommunityId(0L);
+        sysUserDO1.setBindingCheckUnitId(comPbCheckUserDTO.getCheckUnitId());
+        int restlt = userDao.insert(sysUserDO1);
+        if (restlt > 0) {
+            SysUserRoleDO sysUserRoleDO = new SysUserRoleDO();
+            sysUserRoleDO.setRoleId(123321L);
+            sysUserRoleDO.setUserId(sysUserDO1.getUserId());
+            sysUserRoleDAO.insert(sysUserRoleDO);
+        }
+        return R.ok();
+    }
+
+    /**
+     * 三说会堂新增业务中心或专家账号
+     * */
+    @Override
+    public R addExpertOrIndustryCenter(AdministratorsUserVO administratorsUserVO) {
+        SysUserDO sysUserDO=new SysUserDO();
+        //是否存在相同账号
+        SysUserDO userDO = userDao.selectOne(new QueryWrapper<SysUserDO>().eq("account", administratorsUserVO.getAccount()));
+        if (isNull(userDO)){
+            sysUserDO.setAppId("wx0cef797390444b75");
+            sysUserDO.setCreateAt(new Date());
+            sysUserDO.setUserId(administratorsUserVO.getUserId());
+            sysUserDO.setAccount(administratorsUserVO.getAccount());
+            sysUserDO.setPassword(new BCryptPasswordEncoder().encode(administratorsUserVO.getPassword()));
+            sysUserDO.setName(administratorsUserVO.getName());
+            if (nonNull(administratorsUserVO.getImageUrl())){
+                sysUserDO.setImageUrl(administratorsUserVO.getImageUrl());
+            }
+            if (nonNull(administratorsUserVO.getType())){
+                sysUserDO.setType(administratorsUserVO.getType());
+            }
+            if (nonNull(administratorsUserVO.getPhone())){
+                sysUserDO.setPhone(administratorsUserVO.getPhone());
+            }
+            userDao.insert(sysUserDO);
+            //分配权限
+            SysUserRoleDO sysUserRole=new SysUserRoleDO();
+            sysUserRole.setUserId(sysUserDO.getUserId());
+            if (sysUserDO.getType().equals(11)){
+                sysUserRole.setRoleId(Long.parseLong(UserConstants.SANSHUO_EXPERT_ROLE));
+                //将专家小程序账号设置为专家权限
+                SysUserDO sysUserDO1 = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, 1).eq(SysUserDO::getPhone, administratorsUserVO.getPhone()));
+                if (nonNull(sysUserDO1)){
+                    sysUserDO1.setType(13);
+                    userDao.updateById(sysUserDO1);
+                    log.info("添加专家小程序账号权限");
+                }
+            }else{
+                sysUserRole.setRoleId(Long.parseLong(UserConstants.SANSHUO_INDUSTRY_CENTER_ROLE));
+            }
+            //配置权限
+            sysUserRoleDAO.insert(sysUserRole);
+            return R.ok();
+        }
+        return R.fail("账户名已存在");
+    }
+
+    /**
+     * 三说会堂后台重置密码
+     * */
+    @Override
+    public R resetPassExpertOrIndustryCenter(String account,String password) {
+        SysUserDO sysUserDO = userDao.selectOne(new QueryWrapper<SysUserDO>().eq("account", account));
+        if (nonNull(sysUserDO)){
+            sysUserDO.setPassword(new BCryptPasswordEncoder().encode(password));
+            userDao.updateById(sysUserDO);
+            return R.ok();
+        }
+        return R.fail("修改失败");
+    }
+
+    /**
+     * 移除专家权限
+     * */
+    @Override
+    public R removeExpertRole(String phone) {
+        if (nonNull(phone)){
+            //是否有权限为专家的账号
+            SysUserDO sysUserDO = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, 11).eq(SysUserDO::getPhone, phone));
+            if (nonNull(sysUserDO)){
+                //删除后台账号
+                sysUserDO.setStatus(2);
+                userDao.updateById(sysUserDO);
+                log.info("禁用专家后台账号成功");
+            }
+            //小程序账号移除专家权限
+            SysUserDO sysUserDO1 = userDao.selectOne(new QueryWrapper<SysUserDO>().lambda().eq(SysUserDO::getType, 13).eq(SysUserDO::getPhone, phone));
+            if (nonNull(sysUserDO1)){
+                sysUserDO1.setType(1);
+                userDao.updateById(sysUserDO1);
+                log.info("移除专家权限成功");
+            }
+        }
+        return R.ok();
+    }
+
+    @Override
+    public R feedBackReply(SysUserFeedbackVO sysUserFeedbackVO) {
+        if (isNull(sysUserFeedbackVO.getReply())){
+            return R.fail("回复内容不能为空");
+        }
+        SysUserFeedbackDO sysUserFeedbackDO1 = sysUserFeedbackDAO.selectById(sysUserFeedbackVO.getId());
+        sysUserFeedbackDO1.setReply(sysUserFeedbackVO.getReply());
+        return R.ok(sysUserFeedbackDAO.reply(sysUserFeedbackDO1));
+    }
+
+    @Override
+    public R myFeedBack(Long id,Integer type,Long propertyId) {
+        List<SysUserFeedbackDO> sysUserFeedbackDOS = sysUserFeedbackDAO.selectList(new QueryWrapper<SysUserFeedbackDO>().lambda().eq(SysUserFeedbackDO::getType, type).eq(SysUserFeedbackDO::getUserId, id).eq(SysUserFeedbackDO::getPropertyId,propertyId ));
+        return R.ok(sysUserFeedbackDOS);
+    }
+
+    @Override
+    public R propertyCheck(String phone) {
+        Long propertyAccount = userDao.isPropertyAccount(phone);
+        log.info("==============物业公司id"+propertyAccount);
+        if (isNull(propertyAccount)){
+            return R.fail();
+        }
+        return R.ok(propertyAccount);
+    }
+
+
+    @Override
+    public R getAreaAndStreet() {
+        List<Integer> areaCodeList = areaCodeList();
+        List<AreaVO> areaVOList = new ArrayList<>();
+        for (Integer code : areaCodeList) {
+            AreaVO vo = new AreaVO();
+            vo.setId(code);
+            vo.setName(areaCodeToName(code.longValue()));
+            vo.setStreetList(userDao.selectStreetsByAreaCode(code));
+            areaVOList.add(vo);
+        }
+        return R.ok(areaVOList);
+    }
+
+
+    /**
+     * 获取最近20天数据
+     *
+     * @return
+     */
+    private List<Date> getTwentyDays() {
+        List<Date> dates = new ArrayList<>();
+        Date date = new Date();
+        for (int i = 19; i >= 0; i--) {
+            Date date1 = DateUtils.addDays(date, -i);
+            dates.add(date1);
+        }
+        return dates;
+    }
+
+    /**
+     * 获取最近本月20天数据
+     *
+     * @return
+     */
+    private List<Date> getMonthTwentyDays() {
+        List<Date> dates = new ArrayList<>();
+        Date date = new Date();
+        Long offset = DateUtil.between(new Date(), DateUtil.beginOfMonth(date), DateUnit.DAY);
+        if (offset >= 20) {
+            for (int i = 19; i >= 0; i--) {
+                Date date1 = DateUtils.addDays(date, -i);
+                dates.add(date1);
+            }
+        } else {
+            //距离月初不足20天
+            for (int i = offset.intValue(); i >= 0; i--) {
+                Date date1 = DateUtils.addDays(date, -i);
+                dates.add(date1);
+            }
+        }
+        return dates;
+    }
+
+
+    /**
+     * 计算占比
+     */
+    private Integer getRate(Integer total, Integer count) {
+        if (0 != total && null != total) {
+            if (0 != count && null != count) {
+                BigDecimal div = NumberUtil.div(count.toString(), total.toString(), 2);
+                BigDecimal mul = NumberUtil.mul(div, 100);
+                return mul.intValue();
+            }
+        }
+        return null;
+    }
+
+    /**
+     * 计算街道实名用户总数
+     */
+    private Integer getStreetRealUser(List<RealUser> list) {
+        Integer count = 0;
+        if (list.size() > 0) {
+            for (RealUser realUser : list) {
+                if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(realUser)) {
+                    if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(realUser.getCount())) {
+                        count += realUser.getCount();
+                    }
+                }
+            }
+
+        }
+        return count;
+    }
+
+    /**
+     * 计算当前统计范围内的所有用户数
+     */
+    public Integer countUser(List<UserRateAnalysisVO> list) {
+        Integer count = 0;
+        if (list.size() > 0) {
+            for (UserRateAnalysisVO proportion : list) {
+                if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(proportion)) {
+                    if (org.apache.commons.lang3.ObjectUtils.isNotEmpty(proportion.getCount())) {
+                        count += proportion.getCount();
+                    }
+                }
+            }
+        }
+        return count;
+    }
+
+    /**
+     * 截取月,日
+     */
+    public List<String> getMAndD(List<Date> list) {
+        List<String> dateList = new ArrayList<>();
+        if (list.size() > 0) {
+            for (Date date : list) {
+                dateList.add(DateFormatUtils.format(date, "MM-dd"));
+            }
+        }
+        return dateList;
+    }
+
+
+    /**
+     * areaCode转区县名
+     */
+    private String areaCodeToName(Long areaCode) {
+        String code = areaCode.toString();
+        String name = "不正确的areaCode";
+        switch (code) {
+            case "510423":
+                name = "西区";
+                break;
+            case "510402":
+                name = "东区";
+                break;
+            case "510411":
+                name = "仁和区";
+                break;
+            case "510421":
+                name = "米易县";
+                break;
+            case "510422":
+                name = "盐边县";
+                break;
+            case "510424":
+                name = "钒钛新区";
+                break;
+        }
+        return name;
+    }
+
+    /**
+     * 根据type选择要设置的名称
+     */
+    private String typeToName(Integer type, UserProportion proportion) {
+        log.info("当前code" + proportion.getAreaCode());
+        String name = "";
+        if (type.equals(ALLCOUNTY)) {
+            name = areaCodeToName(proportion.getAreaCode());
+        } else if (type.equals(ALLSTREET) || type.equals(BYAREA)) {
+            name = proportion.getStreetName();
+        } else if (type.equals(ALLCOMMUNITY) || type.equals(BYSTREET)) {
+            name = proportion.getCommunityName();
+        }
+        return name;
+    }
+
+    /**
+     * 根据type选择要设置的名称
+     */
+    private String typeToNameRealUser(Integer type, RealUser proportion) {
+        String name = "";
+        if (type.equals(ALLCOUNTY)) {
+            name = areaCodeToName(Long.parseLong(proportion.getAreaCode()));
+        } else if (type.equals(ALLSTREET) || type.equals(BYAREA)) {
+            name = proportion.getStreetName();
+        } else if (type.equals(ALLCOMMUNITY) || type.equals(BYSTREET)) {
+            name = proportion.getCommunityName();
+        }
+        return name;
+    }
+
+    /**
+     * 生成区县code列表
+     */
+    private List<Integer> areaCodeList() {
+        List<Integer> list = new ArrayList<>();
+        list.add(510402);
+        list.add(510423);
+        list.add(510411);
+        list.add(510421);
+        list.add(510422);
+        list.add(510424);
+        return list;
+    }
+
+    /**
+     * 根据日志保存修改之前的信息
+     */
+    private String saveBeforeUpdateData(SysOperLogVO operlog) throws JsonProcessingException {
+        if (operlog.getTitle().equals(UPDATEACIDCHECKRECORD)) {
+            //
+            ComActAcidCheckRecordVO comActAcidCheckRecordVO = objectMapper.readValue(operlog.getOperParam(), ComActAcidCheckRecordVO.class);
+            ComActAcidCheckRecordVO comActAcidCheckRecordVO1 = userDao.selectComActAcidCheckRecordById(comActAcidCheckRecordVO.getId());
+            return JSONObject.toJSONString(comActAcidCheckRecordVO1);
+        } else if (operlog.getTitle().equals(UPDATEACIDRECORD)) {
+            ComActAcidRecordVO comActAcidRecordVO = objectMapper.readValue(operlog.getOperParam(), ComActAcidRecordVO.class);
+            return JSONObject.toJSONString(userDao.selectComActAcidRecord(comActAcidRecordVO.getId()));
+        } else if (operlog.getTitle().equals(UPDATEACIDMEMBER)) {
+            ComActAcidMemberVO comActAcidMemberVO = objectMapper.readValue(operlog.getOperParam(), ComActAcidMemberVO.class);
+            return JSONObject.toJSONString(userDao.selectComActAcidMember(comActAcidMemberVO.getId()));
+        }
+        return null;
+    }
+
+    /**
+     * 是否需要区分村落/社区
+     */
+    private Integer isVilliage(String name) {
+        if ("fangyipingtai".equals(name)) {
+            return 3;
+        } else if ("pandashujuzhongxin".equals(name)) {
+            return 1;
+        } else if ("pannongyenongcunju".equals(name)) {
+            return 2;
+        }
+        return 3;
+    }
+
+    /**
+     * 是否为市级账号
+     */
+    private Boolean isCityAccount(String name) {
+        if (("fangyipingtai").equals(name) || ("pandashujuzhongxin").equals(name) || ("pannongyenongcunju").equals(name)) {
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * 是否为区级账号
+     */
+    private Boolean isAreaAccount(String name) {
+        Boolean flag = false;
+        switch (name) {
+            case "dongqu":
+            case "xiqu":
+            case "renhequ":
+            case "miyixian":
+            case "yanbianxian":
+                flag = true;
+                break;
+        }
+        return flag;
+    }
+
+    /**
+     * account转区areaCode
+     */
+    private Integer accountToCode(String code) {
+        String name = "100000";
+        switch (code) {
+            case "xiqu":
+                name = "510423";
+                break;
+            case "dongqu":
+                name = "510402";
+                break;
+            case "renhequ":
+                name = "510411";
+                break;
+            case "miyixian":
+                name = "510421";
+                break;
+            case "yanbianxian":
+                name = "510422";
+                break;
+            case "fantaixinqu":
+                name = "510424";
+                break;
+        }
+        return Integer.parseInt(name);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/bootstrap.yml b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..a0128f1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/bootstrap.yml
@@ -0,0 +1,31 @@
+spring:
+  application:
+    name: huacheng-user
+  cloud:
+    config:
+      discovery:
+        enabled: true
+        service-id: huacheng-config  # 注册中心的服务名
+      profile: ${ENV:dev}  # 指定配置文件的环境
+      uri: http://${CONFIG_URL:localhost}:6193/
+  profiles:
+    active: ${ENV:dev}
+
+eureka:
+  client:
+    service-url:
+      defaultZone: http://${EUREKA_URL:localhost}:8192/eureka
+
+management:
+  endpoints:
+    web:
+      exposure:
+        include: '*'
+
+  endpoint:
+    health:
+      show-details: always
+
+  metrics:
+    tags:
+      application: huacheng-user
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/logback-spring.xml b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..ec9f113
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/logback-spring.xml
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration debug="false">
+    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
+    <springProfile name="dev">
+        <property name="LOG_HOME" value="F:/log" />
+    </springProfile>
+       <springProfile name="test">
+        <property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    </springProfile>
+<property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    <!-- 控制台输出 -->
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+    </appender>
+    <!-- 按照每天生成日志文件 -->
+    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!--日志文件输出的文件名-->
+            <FileNamePattern>${LOG_HOME}/huachengservice_user.log.%d{yyyy-MM-dd}.log</FileNamePattern>
+            <!--日志文件保留天数-->
+            <MaxHistory>30</MaxHistory>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+        <!--日志文件最大的大小-->
+        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <MaxFileSize>10MB</MaxFileSize>
+        </triggeringPolicy>
+    </appender>
+
+    <!--myibatis log configure-->
+    <logger name="com.apache.ibatis" level="TRACE"/>
+    <logger name="java.sql.Connection" level="DEBUG"/>
+    <logger name="java.sql.Statement" level="DEBUG"/>
+    <logger name="java.sql.PreparedStatement" level="DEBUG"/>
+    <logger name="com.panzhihua.service_user" level="DEBUG"/>
+
+    <!-- 日志输出级别 -->
+    <root level="DEBUG">
+        <appender-ref ref="STDOUT" />
+    </root>
+    <root level="INFO">
+        <appender-ref ref="STDOUT" />
+        <appender-ref ref="FILE" />
+    </root>
+
+    <!--慢接口和方法日志记录到不同的文件-->
+    <appender name="slowClassAndMethodAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <File>${LOG_HOME}/slow_service_user.log</File>
+        <append>true</append>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>INFO</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${LOG_HOME}/slow_service_user.%d.%i.log</fileNamePattern>
+            <maxHistory>10</maxHistory>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>10MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+        </rollingPolicy>
+        <encoder>
+            <pattern>%d{yyyy/MM/dd HH:mm:ss.SSS} %-5level [%thread] [%c{0}:%L] : %msg%n</pattern>
+            <charset>UTF-8</charset>
+        </encoder>
+    </appender>
+
+    <!--这是我们定义的慢接口和方法日志传入的名称-->
+    <logger name="slowClassAndMethodLog" additivity="false" level="INFO">
+        <appender-ref ref="slowClassAndMethodAppender"/>
+    </logger>
+</configuration>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/ComActFourMemberMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/ComActFourMemberMapper.xml
new file mode 100644
index 0000000..a1f3536
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/ComActFourMemberMapper.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.ComActFourMemberDao">
+
+    <resultMap type="com.panzhihua.service_user.model.dos.ComActFourMember" id="ComActFourMemberBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="userId" column="user_id"/>
+        <result property="position" column="position"/>
+        <result property="jurisdiction" column="jurisdiction"/>
+        <result property="communityId" column="community_id"/>
+        <result property="createTime" column="create_time"/>
+        <result property="jurisdictionContent" column="jurisdiction_content"/>
+    </resultMap>
+</mapper>
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/EventGridMemberBuildingRelationDOMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/EventGridMemberBuildingRelationDOMapper.xml
new file mode 100644
index 0000000..6e1fb02
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/EventGridMemberBuildingRelationDOMapper.xml
@@ -0,0 +1,37 @@
+<?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="BaseResultMap" type="com.panzhihua.service_user.model.dos.EventGridMemberBuildingRelationDO">
+        <id column="id" property="id" />
+        <result column="grid_member_id" property="gridMemberId" />
+        <result column="community_id" property="communityId" />
+        <result column="village_id" property="villageId" />
+        <result column="building_id" property="buildingId" />
+        <result column="create_at" property="createAt" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id, grid_member_id, community_id, village_id, building_id, create_at
+    </sql>
+
+    <select id="getGridMemberBuildingRelation" resultType="com.panzhihua.common.model.vos.grid.admin.GridMemberBuildingVO">
+        SELECT
+            egmbr.community_id,
+            ca.`name` as communityName,
+            egmbr.village_id,
+            cmv.`name` as villageName,
+            egmbr.building_id,
+            cmb.`name` as buildingName
+        FROM
+            event_grid_member_building_relation as egmbr
+            left join com_act as ca on ca.community_id = egmbr.community_id
+            left join com_mng_village as cmv on cmv.village_id = egmbr.village_id
+            left join com_mng_building as cmb on cmb.id = egmbr.building_id
+        WHERE
+            egmbr.grid_member_id = #{gridMemberId}
+    </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/SysAppConfigMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysAppConfigMapper.xml
new file mode 100644
index 0000000..85ac23f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysAppConfigMapper.xml
@@ -0,0 +1,12 @@
+<?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.SysAppConfigDao">
+
+    <resultMap type="com.panzhihua.service_user.entity.SysAppConfig" id="SysAppConfigBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="appId" column="app_id"/>
+        <result property="secret" column="secret"/>
+        <result property="name" column="name"/>
+    </resultMap>
+
+</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..4174203
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysOperLogDAO.xml
@@ -0,0 +1,41 @@
+<?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 1=1
+            <if test="sysOperLogVO.communityId != null">and community_id = #{sysOperLogVO.communityId}</if>
+            <if test="sysOperLogVO.areaCode !=null"> and area_code = #{sysOperLogVO.areaCode} </if>
+            <if test="sysOperLogVO.startTime !=null"> and oper_Time &gt;= #{sysOperLogVO.startTime} </if>
+            <if test="sysOperLogVO.endTime !=null"> and oper_Time &lt;= #{sysOperLogVO.endTime} </if>
+        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..f2e6028
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysRoleMenuDAO.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.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>
+    <insert id="batchInsertWithRoleId">
+        INSERT INTO `sys_role_menu`(role_id,menu_id)
+        VALUES
+        <foreach collection="menuIds" item="item" index="index" separator="," >
+            (#{roleId}, #{item})
+        </foreach>
+    </insert>
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysTemplateConfigMapper.xml b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysTemplateConfigMapper.xml
new file mode 100644
index 0000000..9616982
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysTemplateConfigMapper.xml
@@ -0,0 +1,12 @@
+<?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.SysTemplateConfigDao">
+
+    <resultMap type="com.panzhihua.service_user.entity.SysTemplateConfig" id="SysTemplateConfigBaseResultMap">
+        <result property="id" column="id"/>
+        <result property="templateId" column="template_id"/>
+        <result property="type" column="type"/>
+        <result property="areaCode" column="area_code"/>
+    </resultMap>
+
+</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
new file mode 100644
index 0000000..f92d9a9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysUserDOMapper.xml
@@ -0,0 +1,124 @@
+<?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="BaseResultMap" type="com.panzhihua.service_user.model.dos.SysUserDO">
+        <id column="user_id" property="userId" />
+        <result column="account" property="account" />
+        <result column="password" property="password" />
+        <result column="openid" property="openid" />
+        <result column="session_key" property="sessionKey" />
+        <result column="unionid" property="unionid" />
+        <result column="phone" property="phone" />
+        <result column="nick_name" property="nickName" />
+        <result column="name" property="name" />
+        <result column="community_id" property="communityId" />
+        <result column="sex" property="sex" />
+        <result column="id_card" property="idCard" />
+        <result column="birthday" property="birthday" />
+        <result column="image_url" property="imageUrl" />
+        <result column="type" property="type" />
+        <result column="job" property="job" />
+        <result column="is_volunteer" property="isVolunteer" />
+        <result column="is_partymember" property="isPartymember" />
+        <result column="status" property="status" />
+        <result column="create_at" property="createAt" />
+        <result column="last_login_time" property="lastLoginTime" />
+        <result column="tags" property="tags" />
+        <result column="family_id" property="familyId" />
+        <result column="face_url" property="faceUrl" />
+        <result column="face_state" property="faceState" />
+        <result column="reject_reson" property="rejectReson" />
+        <result column="area_id" property="areaId" />
+        <result column="card_photo_front" property="cardPhotoFront" />
+        <result column="card_photo_back" property="cardPhotoBack" />
+        <result column="family_book" property="familyBook" />
+        <result column="continuous_landing_days" property="continuousLandingDays" />
+        <result column="is_tips" property="isTips" />
+        <result column="work_status" property="workStatus" />
+        <result column="work_start_time" property="workStartTime" />
+        <result column="work_end_time" property="workEndTime" />
+        <result column="big_age_tips" property="bigAgeTips" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        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>
+    <update id="disableOrEnableMerchantUsers">
+        UPDATE sys_user SET status = #{status}
+        WHERE user_id IN
+        <foreach collection="userIds" item="item" index="index" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+    </update>
+
+    <select id="pageUser" parameterType="com.panzhihua.common.model.vos.AppletUserInfoVO"
+            resultType="com.panzhihua.common.model.vos.AppletUserInfoVO">
+        SELECT
+            u.user_id,
+            u.`name`,
+            u.`sex`,
+            u.nick_name,
+            u.phone,
+            u.is_volunteer,
+            u.is_partymember,
+            u.birthday,
+            YEAR (
+                now()) - YEAR (
+            substring( u.id_card, 7, 8 )) age,
+            1 isRegister,
+            v.political_face political_outlook,
+            u.id_card,
+            u.job,
+            c.`name` communityName,
+            u.tags,
+            cauw.id as walletId,
+            IFNULL(cauw.income_amount,0) as income_amount,
+            IFNULL(cauw.available_amount,0) as available_amount,
+            IFNULL(cauw.settlement_amount,0) as settlement_amount,
+            IFNULL(caiu.integral_sum,0) as integral_sum,
+            IFNULL(caiu.integral_available_sum,0) as integral_available_sum,
+            IFNULL(caiu.integral_frozen_sum,0) as integral_frozen_sum,
+            IF(u.id_card,1,2) as isRealNamed,
+            u.create_at
+        FROM
+            sys_user u
+            LEFT JOIN com_mng_volunteer_mng v ON u.phone = v.phone
+            LEFT JOIN com_act AS c ON c.community_id = u.community_id
+            LEFT JOIN com_act_user_wallet as cauw on u.user_id = cauw.user_id and u.community_id = cauw.community_id
+            LEFT JOIN com_act_integral_user as caiu on u.user_id = caiu.user_id and u.community_id = caiu.community_id
+        WHERE
+            u.community_id = #{loginUserInfoVO.communityId}
+            AND u.type = 1
+        <if test='loginUserInfoVO.keyWord != null and loginUserInfoVO.keyWord.trim() != &quot;&quot;'>
+            AND (u.phone like concat(#{loginUserInfoVO.keyWord},'%') or
+             u.`name` like concat(#{loginUserInfoVO.keyWord},'%') or c.`name` like concat(#{loginUserInfoVO.keyWord},'%'))
+        </if>
+        <if test='loginUserInfoVO.isRealNamed != null and loginUserInfoVO.isRealNamed == 1'>
+            AND u.id_card is not null
+        </if>
+        <if test='loginUserInfoVO.isRealNamed != null and loginUserInfoVO.isRealNamed == 2'>
+            AND u.id_card is null
+        </if>
+        ORDER BY
+            u.user_id DESC
+    </select>
+    <select id="selectByUserId" resultMap="BaseResultMap">
+        SELECT u1.* FROM sys_user u1 WHERE u1.phone = (SELECT phone FROM sys_user u2 WHERE u2.user_id=#{userId}) AND u1.app_id in ('wx118de8a734d269f0','wx0cef797390444b75')
+    </select>
+    <select id="checkPoint" resultType="int">
+        select count(1) from com_convenient_elevating_point where wechat_account = #{phone} and business_status = 1 and is_del = 0
+    </select>
+    <select id="selectDefaultAddressVO" resultType="com.panzhihua.common.model.vos.shop.ComShopUserAddressVO">
+        select * from com_shop_flower_user_address where user_id = #{userId} and is_default = 1 and delete_status = 2
+    </select>
+    <select id="selectStoreIdIdByUserId" resultType="java.lang.Long">
+        select id from com_convenient_merchants where user_id  = #{userId} and is_del = 0
+    </select>
+    <select id="selectStreetByAreaCodeStr" resultType="com.panzhihua.common.model.vos.user.StreetVOStr">
+        select street_id as id,name as name from com_street where area_code=#{code} and app_id ='wx118de8a734d269f0'
+    </select>
+
+</mapper>
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..596ae4d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/SysUserFeedbackDAO.xml
@@ -0,0 +1,76 @@
+<?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>
+    <update id="reply">
+        update sys_user_feedback set reply=#{dto.reply} where id=#{dto.id}
+    </update>
+
+
+    <select id="detailFeedback" resultType="com.panzhihua.common.model.vos.user.SysUserFeedbackVO">
+        select
+        u.name,
+        u.nick_name,
+        f.*,
+        u.phone,
+        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,
+        f.reply
+        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>
+            <if test='pageFeedBackDTO.areaCode != null and pageFeedBackDTO.areaCode.trim() != &quot;&quot;'>
+                and c.area_code = #{pageFeedBackDTO.areaCode}
+            </if>
+            <if test="pageFeedBackDTO.propertyId != null and pageFeedBackDTO.propertyId != ''">
+                and f.property_id = #{pageFeedBackDTO.propertyId}
+            </if>
+            <if test="pageFeedBackDTO.type != null and pageFeedBackDTO.type != ''">
+                and f.type = #{pageFeedBackDTO.type}
+            </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..bcd6399
--- /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="low_income_households"/>
+        <result property="lowIncomePeople" column="low_income_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`,`low_income_households`,`low_income_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.low_income_households=1,'是','否') lowIncomeHouseholds, if(u.low_income_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.low_income_households = 1, '低保户,', '' ), IF ( t.low_income_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.low_income_households=1,'是','否') lowIncomeHouseholds, if(u.low_income_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.low_income_households = 1, '低保户,', '' ), IF ( t.low_income_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.low_income_households = 1, '低保户,', '' ), IF ( t.low_income_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.low_income_households=1 OR t.low_income_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..982fe9f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/main/resources/mapper/UserDao.xml
@@ -0,0 +1,863 @@
+<?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"/>
+        <result property="plaintextPassword" column="plaintext_password"/>
+        <result property="relationName" column="relation_name"/>
+        <result property="loveIntegral" column="love_integral"/>
+        <result property="playPwd" column="play_pwd"/>
+
+    </resultMap>
+    <sql id="columns">
+		`user_id`,`account`,`password`,`openid`,`session_key`,`unionid`,`phone`,`nick_name`,`name`,play_pwd,
+        `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`,love_integral
+	</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,love_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.love_integral,
+        u.play_pwd,
+        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 and u.app_id =#{pageUserAppletsBackstageDTO.appId}
+        <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(t.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 t left join com_act t1 on t.community_id = t1.community_id WHERE t.type = 1 and t.app_id = #{areaCode}  AND last_login_time > date_sub(SYSDATE(), INTERVAL 7 DAY))activeWeekUser
+        FROM
+        sys_user t LEFT JOIN com_act t1 on t.community_id = t1.community_id
+        where t.type=1 and t.community_id is not null and t.app_id = #{areaCode}
+            </select>
+
+    <select id="selectCommunityUserOrder" resultType="com.panzhihua.service_user.model.dtos.DataKanbanDTO">
+        SELECT
+            a.`name`,
+            COUNT(u.user_id)num,
+            t1.dayNum
+        FROM
+            com_act a
+                LEFT JOIN sys_user u ON a.community_id = u.community_id and u.type=1 and a.state=0 and u.app_id=#{areaCode}
+                left join (SELECT count( user_id ) dayNum,community_id FROM sys_user WHERE type = 1 and app_id=#{areaCode}
+                                                                                       AND last_login_time > DATE_FORMAT( date_sub( SYSDATE(), INTERVAL 0 DAY ), '%Y-%m-%d 00:00:00') GROUP BY community_id) t1 on a.community_id = t1.community_id where a.app_id =#{areaCode} GROUP BY a.community_id
+    </select>
+
+    <select id="selectCommunityUserOrderMonth" resultType="com.panzhihua.service_user.model.dtos.DataKanbanDTO">
+        select t.* from (
+        SELECT
+        a.`name`,
+        COUNT(u.user_id)num,
+        (SELECT count( user_id ) FROM sys_user WHERE type = 1 and community_id = a.community_id and app_id=#{areaCode}
+        AND last_login_time > DATE_FORMAT( date_sub( SYSDATE(), INTERVAL 0 DAY ), '%Y-%m-%d 00:00:00')) as dayNum
+        FROM
+        com_act a
+        LEFT JOIN sys_user u ON a.community_id = u.community_id
+        and u.type=1 and a.state=0 and u.app_id=#{areaCode} and u.create_at >= DATE_ADD(curdate(),interval -day(curdate())+1 day)
+        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.love_integral,
+        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
+        left join com_act ca on u.community_id = ca.community_id
+        <if test='administratorsUserVO.roleId != null and administratorsUserVO.roleId!=0'>and
+            e.role_id=#{administratorsUserVO.roleId}
+        </if>
+        <where>
+            u.type=3
+            <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>
+        order by u.create_at desc
+    </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>
+
+    <select id="selectCommunityAddUserOrder" resultType="com.panzhihua.service_user.model.dtos.DataKanbanDTO">
+        select count(user_id) as num,
+        (SELECT count( user_id ) FROM sys_user t LEFT JOIN com_act t1 on t.community_id=t1.community_id WHERE t.type = 1 and t.app_id = #{areaCode}
+        AND last_login_time <![CDATA[ >= ]]> DATE_FORMAT( #{date1}, '%Y-%m-%d 00:00:00')
+        AND last_login_time <![CDATA[ <= ]]> DATE_FORMAT( #{date1}, '%Y-%m-%d 23:59:59')) as dayNum from sys_user as su LEFT JOIN com_act t1 on su.community_id = t1.community_id
+        where su.create_at <![CDATA[ >= ]]> DATE_SUB(DATE_FORMAT(#{date1},'%Y-%m-%d 00:00:00'),INTERVAL 0 DAY)
+        and su.create_at <![CDATA[ <= ]]> DATE_SUB(DATE_FORMAT(#{date1},'%Y-%m-%d 23:59:59'),INTERVAL 0 DAY)
+        and su.type = 1 and su.app_id = #{areaCode}
+    </select>
+
+    <select id="selectDailyAdd"  resultType="com.panzhihua.service_user.model.dtos.UsersStatisticsDTO">
+        SELECT DATE_FORMAT( u.create_at, '%Y-%m-%d' ) as specificDate,count( u.user_id )  total FROM sys_user u
+        LEFT JOIN com_act t1 ON u.community_id = t1.community_id  WHERE u.type = 1 AND u.app_id = #{appId}  AND u.create_at > #{createAt} GROUP BY specificDate;
+    </select>
+
+    <select id="selectActive"  resultType="com.panzhihua.service_user.model.dtos.UsersStatisticsDTO">
+        SELECT DATE_FORMAT( u.last_login_time, '%Y-%m-%d' ) as specificDate,count( u.user_id )  total FROM sys_user u
+        LEFT JOIN com_act t1 ON u.community_id = t1.community_id  WHERE u.type = 1 AND u.app_id = #{appId}  AND u.last_login_time > #{lastLoginTime} GROUP BY specificDate;
+    </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,
+        u.love_integral,
+        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,community_id,lng,lat,area_code,contacts_phone 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>
+
+    <update id="judgeCommunityTeam">
+        update com_pb_service_team set is_reg = 1 where phone = #{phone}
+    </update>
+
+    <select id="getCommunityTeamCount" resultType="integer">
+        select count(id) from com_pb_service_team where is_reg = 2 and phone = #{phone}
+    </select>
+
+    <select id="getUserStreetList" resultType="com.panzhihua.common.model.vos.community.IndexUserStreetVo">
+        SELECT
+            street_id,
+            `name`,(
+            SELECT
+                count( user_id )
+            FROM
+                sys_user AS su
+                LEFT JOIN com_act AS ca ON ca.community_id = su.community_id
+            WHERE
+                type = 1 and state = 0 and ca.app_id = #{areaCode}
+                AND ca.street_id = cs.street_id
+            ) AS userNum
+        FROM
+            `com_street` AS cs where cs.app_id = #{areaCode}
+            order by userNum desc
+    </select>
+
+    <select id="getUserCommunityList" resultType="com.panzhihua.common.model.vos.community.IndexUserCommunityVo">
+        SELECT
+            ca.community_id,
+            ca.`name`,
+            count( user_id ) as userNum
+        FROM
+            sys_user as su
+            left join com_act as ca on ca.community_id = su.community_id
+        WHERE
+            type = 1 and state = 0
+            AND ca.street_id = #{streetId}
+            group by ca.community_id
+            order by userNum desc
+    </select>
+
+    <select id="getUserCommunityExcelExport" resultType="com.panzhihua.common.model.vos.community.IndexUserStreetExcelExportVo">
+        SELECT
+            cs.`name` AS streetName,
+            ca.`name` AS communityName,
+            (
+            SELECT
+                count( user_id )
+            FROM
+                sys_user AS su1
+                LEFT JOIN com_act AS ca1 ON ca1.community_id = su1.community_id
+            WHERE
+                su1.type = 1
+                AND su1.community_id IS NOT NULL
+                AND ca1.street_id = ca.street_id
+            ) AS streetNum,
+            count( user_id ) AS userNum
+        FROM
+            sys_user AS su
+            LEFT JOIN com_act AS ca ON ca.community_id = su.community_id
+            LEFT JOIN com_street AS cs ON cs.street_id = ca.street_id
+        WHERE
+            su.type = 1
+            AND su.community_id IS NOT NULL
+        GROUP BY
+            ca.community_id
+        ORDER BY
+            ca.street_id DESC,
+            userNum DESC
+    </select>
+
+    <select id="countPropertyWorker" resultType="integer">
+        SELECT COUNT(id) FROM com_property
+        WHERE user_id = #{userId} AND community_id = #{communityId}
+    </select>
+
+    <select id="countSocialWorker" resultType="integer">
+        select count(id) from com_act_social_worker where telephone = #{phone} and community_id = #{communityId}
+    </select>
+
+    <select id="countSocialOrg" resultType="Integer">
+        select count(id) from com_act_social_org where user_id = #{userId}
+    </select>
+
+    <select id="countFmsMember" resultType="integer">
+        SELECT COUNT(id) FROM com_fms_team_member
+        WHERE phone = #{phone} AND community_id = #{communityId}
+    </select>
+
+    <select id="selectStreetById" resultType="com.panzhihua.common.model.vos.community.ComStreetVO">
+        SELECT street_id, area_code FROM com_street WHERE street_id = #{streetId}
+    </select>
+
+    <select id="countSocialOrgMember" resultType="integer">
+        SELECT COUNT(id) FROM com_act_social_member
+        WHERE user_id = #{userId}
+    </select>
+
+    <select id="countOrgNum" resultType="integer">
+        SELECT COUNT(id)
+        FROM com_act_social_org
+        WHERE contact_phone = #{phone} AND is_society = 1
+    </select>
+
+    <select id="selectCountDpc" resultType="integer">
+        SELECT COUNT(id)
+        FROM com_act_dpc
+        WHERE phone = #{phone} AND community_id = #{userCommunityId} AND is_del = 0
+    </select>
+
+    <select id="countEasyPhotoMember" resultType="Integer">
+        SELECT COUNT(id) FROM com_act_easy_photo_member
+        WHERE phone = #{phone} AND community_id = #{communityId}
+    </select>
+
+    <select id="selectAcidMemberByPhone" resultType="com.panzhihua.common.model.vos.community.acid.ComActAcidMemberVO">
+        SELECT id, relation_name FROM com_act_acid_member WHERE phone = #{phone}
+    </select>
+
+    <select id="selectAreaTownCommunity" resultType="com.panzhihua.common.model.vos.community.ComAreaTownCommunityVO">
+        SELECT * FROM com_area_town_community WHERE community = #{relationName}
+    </select>
+
+    <select id="selectAreaCodeByStreetId" resultType="String">
+        select t.district_name from com_mng_struct_area_district t left join com_street t1 on t.district_adcode  = t1.area_code where t1.street_id =#{streetId}
+    </select>
+
+    <select id="selectOrgAdmin" resultType="Integer">
+        select count(*) from com_pb_check_unit where admin_phone like concat('%',#{phone},'%')
+    </select>
+
+    <select id="selectOrgAdminId" resultType="Long">
+        select id from com_pb_check_unit where admin_phone like concat('%',#{phone},'%')
+    </select>
+
+    <select id="selectCheckUnitId" resultType="Long">
+        select check_unit_id from com_pb_member where phone = #{phone} limit 1
+    </select>
+    <select id="userAnalysis" resultType="com.panzhihua.common.model.vos.user.UserProportion">
+        select cs.area_code,cs.name as streetName,ac.name as communityName,count(su.user_id) as user,su.community_id as communityId from sys_user as su
+        left join com_act as ac on su.community_id=ac.community_id
+        left join com_street as cs on ac.street_id=cs.street_id
+        where su.community_id&lt;>''
+        and cs.area_code&lt;>''
+        <if test="range != null and range != ''">
+            and su.create_at >= #{range}
+        </if>
+        <if test="appId!=null and appId!=''">
+            and su.app_id = #{appId}
+        </if>
+        <if test="type == 5">
+            <if test="areaCode != null">
+                and ac.area_code=#{areaCode}
+                group by cs.street_id
+            </if>
+        </if>
+        <if test="type == 4">
+            <if test="streetId != null">
+                and cs.street_id=#{streetId}
+                and su.community_id&lt;>11
+                group by su.community_id
+            </if>
+        </if>
+        <if test="type == 1">
+            group by cs.area_code
+        </if>
+        <if test="type == 2">
+            group by cs.street_id
+        </if>
+        <if test="type == 3">
+            and su.community_id&lt;>11
+            group by su.community_id
+        </if>
+        order by user desc
+        limit 10
+    </select>
+    <select id="realUserCount" resultType="com.panzhihua.common.model.vos.user.RealUser">
+        select cs.area_code as areaCode,cs.street_id,ac.name as communityName,su.community_id as communityId,
+        cs.name as StreetName,count(su.user_id) as count from sys_user as su
+        left join com_act as ac on su.community_id=ac.community_id
+        left join com_street as cs on ac.street_id=cs.street_id
+        where su.community_id&lt;>''
+        and cs.area_code&lt;>''
+        and su.id_card&lt;>''
+        <if test="range != null and range != ''">
+            and su.create_at >= #{range}
+        </if>
+        <if test="appId!=null and appId!=''">
+            and su.app_id = #{appId}
+        </if>
+        <if test="type == 5">
+            <if test="areaCode != null">
+                and ac.area_code=#{areaCode}
+                group by cs.street_id
+            </if>
+        </if>
+        <if test="type == 4">
+            and cs.street_id=#{streetId}
+            group by su.community_id
+        </if>
+        <if test="type == 1">
+            group by cs.area_code
+        </if>
+        <if test="type == 2">
+            group by cs.street_id
+        </if>
+        <if test="type == 3">
+            group by su.community_id
+        </if>
+        order by count desc
+        limit 11
+    </select>
+    <select id="streetUserCount" resultType="Integer">
+        select count(user_id) from sys_user as su
+        left join com_act as ac on su.community_id=ac.community_id
+        left join com_street as cs on ac.street_id=cs.street_id
+        where su.community_id&lt;>''
+        and cs.area_code&lt;>''
+        and cs.street_id=#{id}
+        <if test="areaCode != null">
+            and ac.area_code=#{areaCode}
+        </if>
+    </select>
+    <select id="dataKanBanStreet" resultType="com.panzhihua.common.model.vos.IndexDataKanbanVO">
+         SELECT
+        COUNT(user_id)allUser,
+        COUNT(case WHEN DATE_FORMAT(t.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 t left join com_act t1 on t.community_id = t1.community_id WHERE t.type = 1  AND last_login_time > date_sub(SYSDATE(), INTERVAL 7 DAY))activeWeekUser
+        FROM
+        sys_user t LEFT JOIN com_act t1 on t.community_id = t1.community_id
+        where t.type=1 and t.community_id is not null
+        <if test="streetId != null">
+            and t1.street_id=#{streetId}
+        </if>
+        <if test="areaCode != null">
+            and t1.area_code=#{areaCode}
+        </if>
+        <if test="range != null and range != ''">
+            and t.create_at >= #{range}
+            and t.community_id&lt;>11
+        </if>
+    </select>
+    <select id="getDailyAddAndActive" resultType="java.util.Map">
+        select COUNT(case WHEN DATE_FORMAT(su.last_login_time,'%m-%d-%Y')=DATE_FORMAT(#{date},'%m-%d-%Y') then user_id else null end) as activeUser,
+        count(case WHEN DATE_FORMAT(su.create_at,'%m-%d-%Y')=DATE_FORMAT(#{date},'%m-%d-%Y') then user_id else null end ) as addUser
+        from sys_user as su
+        left join com_act as ac on su.community_id=ac.community_id
+        left join com_street as cs on ac.street_id=cs.street_id
+        where su.community_id&lt;>''
+        and cs.area_code&lt;>''
+        and su.type = 1
+        <if test="appId != null and appId != &quot;&quot;">
+            and su.app_id = #{appId}
+        </if>
+        <if test="id != null">
+            and cs.street_id=#{id}
+        </if>
+        <if test="areaCode != null">
+            and cs.area_code=#{areaCode}
+        </if>
+    </select>
+
+    <select id="getDailyAdd" resultType="com.panzhihua.service_user.model.dtos.UsersStatisticsDTO">
+        SELECT DATE_FORMAT( su.create_at, '%Y-%m-%d' ) as specificDate ,count(su.user_id) as total	  FROM
+        sys_user AS su
+        LEFT JOIN com_act AS ac ON su.community_id = ac.community_id
+        LEFT JOIN com_street AS cs ON ac.street_id = cs.street_id
+        where su.community_id&lt;>''
+        and cs.area_code&lt;>''
+        and su.type = 1
+        <if test="appId != null and appId != &quot;&quot;">
+            and su.app_id = #{appId}
+        </if>
+        <if test="id != null">
+            and cs.street_id=#{id}
+        </if>
+        <if test="areaCode != null">
+            and cs.area_code=#{areaCode}
+        </if>
+        AND su.create_at > #{createAt} GROUP BY specificDate
+    </select>
+    <select id="getActive" resultType="com.panzhihua.service_user.model.dtos.UsersStatisticsDTO">
+        SELECT DATE_FORMAT( su.last_login_time, '%Y-%m-%d' ) as specificDate ,count(su.user_id) as total	  FROM
+        sys_user AS su
+        LEFT JOIN com_act AS ac ON su.community_id = ac.community_id
+        LEFT JOIN com_street AS cs ON ac.street_id = cs.street_id
+        where su.community_id&lt;>''
+        and cs.area_code&lt;>''
+        and su.type = 1
+        <if test="appId != null and appId != &quot;&quot;">
+            and su.app_id = #{appId}
+        </if>
+        <if test="id != null">
+            and cs.street_id=#{id}
+        </if>
+        <if test="areaCode != null">
+            and cs.area_code=#{areaCode}
+        </if>
+        AND su.last_login_time > #{lastLoginTime} GROUP BY specificDate
+    </select>
+
+    <select id="selectStreetByAreaCode" resultType="com.panzhihua.common.model.vos.user.StreetVOS">
+        select street_id as id,name as name from com_street where area_code=#{code} and app_id ='wx118de8a734d269f0'
+    </select>
+    <select id="selectStreetsByAreaCode" resultType="com.panzhihua.common.model.vos.user.StreetVO">
+        select street_id as id,name as name from com_street where area_code=#{code}
+    </select>
+    <select id="selectComActAcidCheckRecordById"
+            resultType="com.panzhihua.common.model.vos.community.acid.ComActAcidCheckRecordVO">
+        select * from com_act_acid_check_record where id = #{id}
+    </select>
+    <select id="selectComActAcidRecord" resultType="com.panzhihua.common.model.vos.community.acid.ComActAcidRecordVO">
+        select * from com_act_acid_record where id = #{id}
+    </select>
+    <select id="selectComActAcidMember" resultType="com.panzhihua.common.model.vos.community.acid.ComActAcidMemberVO">
+        select * from com_act_acid_member where id = #{id}
+    </select>
+    <select id="getMonthUsers" resultType="java.lang.Integer">
+        SELECT count(user_id)
+        FROM
+        sys_user t LEFT JOIN com_act t1 on t.community_id = t1.community_id
+        where t.type=1 and t.community_id is not null
+        and t.community_id&lt;>11
+        <if test="streetId != null">
+            and t1.street_id=#{streetId}
+        </if>
+        <if test="areaCode != null">
+            and t1.area_code=#{areaCode}
+        </if>
+        <if test="range != null and range != ''">
+            and t.create_at >= #{range}
+        </if>
+        <if test="appId!=null and appId!=''">
+            and t.app_id = #{appId}
+        </if>
+    </select>
+    <select id="selectCommunityByStreetId" resultType="com.panzhihua.common.model.vos.user.CommunityVO">
+        select community_id as id,name from com_act where street_id =#{id} and app_id = 'wx118de8a734d269f0'
+        <if test="type == 1">
+            and name like concat('%','社区')
+        </if>
+        <if test="type == 2">
+            and name like concat('%','村')
+        </if>
+    </select>
+
+    <select id="selectIdsByAccount" resultType="java.lang.Integer">
+        select user_id from sys_user where account in
+        <foreach collection="array" item="name" separator="," open="(" close=")" >
+            #{name}
+        </foreach>
+    </select>
+    <select id="selectCommunityByStreetName" resultType="com.panzhihua.common.model.vos.user.CommunityVO">
+        select ca.community_id as id,ca.name as name
+        from sys_user as su
+        left join com_street as cs on cs.name=su.name
+        left join com_act as ca on ca.street_id=cs.street_id
+        where su.account=#{name}
+    </select>
+    <select id="selectStreetByName" resultType="com.panzhihua.common.model.vos.user.StreetVOS">
+        select cs.street_id as id,cs.name as name
+        from sys_user as su
+        left join com_street as cs on su.name=cs.name
+        where su.account=#{name}
+        limit 1
+    </select>
+    <select id="isExpert" resultType="com.panzhihua.common.model.vos.sanshuo.ComSanshuoExpertVO">
+        select * from com_sanshuo_expert where phone=#{phone}
+    </select>
+
+    <select id="isIndustryCenterAccount" resultType="Integer">
+        select count(id) from com_sanshuo_industry_center where account=#{account}
+    </select>
+
+    <select id="isExpertAccount" resultType="Integer">
+        select count(id) from com_sanshuo_expert where account=#{account}
+    </select>
+
+    <select id="isDpcMember" resultType="Integer">
+         select count(id) from com_act_dpc where name =#{name} and phone=#{phone}
+    </select>
+    <select id="isPropertyAccount" resultType="java.lang.Long">
+        select id from com_property where phone=#{phone}
+    </select>
+    <select id="getCommunityAppId" resultType="java.lang.String">
+        select app_id from com_act where community_id=#{communityId}
+    </select>
+</mapper>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_user/src/test/java/com/panzhihua/service_user/ServiceUserApplicationTests.java b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/test/java/com/panzhihua/service_user/ServiceUserApplicationTests.java
new file mode 100644
index 0000000..5ca4f42
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/service_user/src/test/java/com/panzhihua/service_user/ServiceUserApplicationTests.java
@@ -0,0 +1,12 @@
+package com.panzhihua.service_user;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.boot.test.context.SpringBootTest;
+
+@SpringBootTest
+class ServiceUserApplicationTests {
+
+    @Test
+    void contextLoads() {}
+
+}
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/shop_backstage/.gitignore b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/.gitignore
new file mode 100644
index 0000000..549e00a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/.gitignore
@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
diff --git a/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/mvnw b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/mvnw
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/mvnw
diff --git a/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/mvnw.cmd b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/mvnw.cmd
new file mode 100644
index 0000000..c8d4337
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/mvnw.cmd
@@ -0,0 +1,182 @@
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements.  See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership.  The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License.  You may obtain a copy of the License at
+@REM
+@REM    https://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied.  See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Maven Start Up Batch script
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM M2_HOME - location of maven2's installed home dir
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
+@REM     e.g. to debug Maven itself, use
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+@REM ----------------------------------------------------------------------------
+
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
+@echo off
+@REM set title of command window
+title %0
+@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
+@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
+
+@REM set %HOME% to equivalent of $HOME
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
+
+@REM Execute a user defined script before this one
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
+if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
+:skipRcPre
+
+@setlocal
+
+set ERROR_CODE=0
+
+@REM To isolate internal variables from possible post scripts, we use another setlocal
+@setlocal
+
+@REM ==== START VALIDATION ====
+if not "%JAVA_HOME%" == "" goto OkJHome
+
+echo.
+echo Error: JAVA_HOME not found in your environment. >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:OkJHome
+if exist "%JAVA_HOME%\bin\java.exe" goto init
+
+echo.
+echo Error: JAVA_HOME is set to an invalid directory. >&2
+echo JAVA_HOME = "%JAVA_HOME%" >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+@REM ==== END VALIDATION ====
+
+:init
+
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
+@REM Fallback to current working directory if not found.
+
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
+
+set EXEC_DIR=%CD%
+set WDIR=%EXEC_DIR%
+:findBaseDir
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
+cd ..
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
+set WDIR=%CD%
+goto findBaseDir
+
+:baseDirFound
+set MAVEN_PROJECTBASEDIR=%WDIR%
+cd "%EXEC_DIR%"
+goto endDetectBaseDir
+
+:baseDirNotFound
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
+cd "%EXEC_DIR%"
+
+:endDetectBaseDir
+
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
+
+@setlocal EnableExtensions EnableDelayedExpansion
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
+
+:endReadAdditionalConfig
+
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+
+FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
+    IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
+)
+
+@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
+if exist %WRAPPER_JAR% (
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Found %WRAPPER_JAR%
+    )
+) else (
+    if not "%MVNW_REPOURL%" == "" (
+        SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    )
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Couldn't find %WRAPPER_JAR%, downloading it ...
+        echo Downloading from: %DOWNLOAD_URL%
+    )
+
+    powershell -Command "&{"^
+		"$webclient = new-object System.Net.WebClient;"^
+		"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
+		"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
+		"}"^
+		"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
+		"}"
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Finished downloading %WRAPPER_JAR%
+    )
+)
+@REM End of extension
+
+@REM Provide a "standardized" way to retrieve the CLI args that will
+@REM work with both Windows and non-Windows executions.
+set MAVEN_CMD_LINE_ARGS=%*
+
+%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
+if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
+:skipRcPost
+
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
+if "%MAVEN_BATCH_PAUSE%" == "on" pause
+
+if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
+
+exit /B %ERROR_CODE%
diff --git a/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/pom.xml
new file mode 100644
index 0000000..ba6eb40
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/pom.xml
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.panzhihua</groupId>
+        <artifactId>zhihuishequ</artifactId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <groupId>com.panzhihua</groupId>
+    <artifactId>shop_backstage</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>shop_backstage</name>
+    <description>商家后台</description>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-config</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>com.panzhihua</groupId>
+            <artifactId>common</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.netflix.hystrix</groupId>
+            <artifactId>hystrix-javanica</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.github.xiaoymin</groupId>
+            <artifactId>swagger-bootstrap-ui</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.github.binarywang</groupId>
+            <artifactId>weixin-java-miniapp</artifactId>
+            <version>3.9.9.B</version>
+        </dependency>
+        <!--添加监控依赖包-->
+        <dependency>
+            <groupId>io.micrometer</groupId>
+            <artifactId>micrometer-registry-prometheus</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.github.penggle</groupId>
+            <artifactId>kaptcha</artifactId>
+            <version>2.3.2</version>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>2.5.0</version>
+                <configuration>
+                    <mainClass>com.panzhihua.shop_backstage.ShopBackstageApplication</mainClass>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>docker-maven-plugin</artifactId>
+                <version>1.2.0</version>
+                <configuration>
+                    <imageName>registry.cn-chengdu.aliyuncs.com/panzhihua/shop_backstage:v1</imageName>
+                    <serverId></serverId>
+                    <baseImage>java</baseImage>
+                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
+                    <resources>
+                        <resource>
+                            <targetPath>/</targetPath>
+                            <directory>${project.build.directory}</directory>
+                            <include>${project.build.finalName}.jar</include>
+                        </resource>
+                    </resources>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <repositories>
+        <repository>
+            <id>spring-snapshots</id>
+            <name>Spring Snapshots</name>
+            <url>https://repo.spring.io/snapshot</url>
+            <snapshots>
+                <enabled>true</enabled>
+            </snapshots>
+        </repository>
+        <repository>
+            <id>spring-milestones</id>
+            <name>Spring Milestones</name>
+            <url>https://repo.spring.io/milestone</url>
+        </repository>
+    </repositories>
+
+</project>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/ShopBackstageApplication.java b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/ShopBackstageApplication.java
new file mode 100644
index 0000000..50fb1da
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/ShopBackstageApplication.java
@@ -0,0 +1,24 @@
+package com.panzhihua.shop_backstage;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.cloud.client.SpringCloudApplication;
+import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.ComponentScan;
+
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+@EnableSwagger2
+@SpringCloudApplication
+@EnableCircuitBreaker
+@EnableEurekaClient
+@EnableFeignClients(basePackages = {"com.panzhihua.common.service"})
+@ComponentScan({"com.panzhihua.shop_backstage", "com.panzhihua.common"})
+public class ShopBackstageApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(ShopBackstageApplication.class, args);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/aop/CheckExpirationInterceptor.java b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/aop/CheckExpirationInterceptor.java
new file mode 100644
index 0000000..c58fb83
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/aop/CheckExpirationInterceptor.java
@@ -0,0 +1,76 @@
+package com.panzhihua.shop_backstage.aop;
+
+import static java.util.Objects.nonNull;
+
+import java.util.Date;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Before;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.springframework.stereotype.Component;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.context.request.RequestAttributes;
+import org.springframework.web.context.request.RequestContextHolder;
+
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.constants.TokenConstant;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsMerchantVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.AES;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @title: CheckExpirationInterceptor
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 过期检测拦截器
+ * @author: hans
+ * @date: 2022/01/11 10:36
+ */
+@Aspect
+@Component
+@Slf4j
+public class CheckExpirationInterceptor {
+
+    @Resource
+    private CommunityService communityService;
+
+    @Before("@annotation(com.panzhihua.shop_backstage.aop.CheckMcsMerchantExpiration)")
+    public void checkExpiration(JoinPoint joinPoint) {
+        MethodSignature signature = (MethodSignature) joinPoint.getSignature();
+        log.info("拦截方法:【{}】", signature.getMethod().getName());
+        // 获取RequestAttributes
+        RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
+        // 从获取RequestAttributes中获取HttpServletRequest的信息
+        HttpServletRequest request = (HttpServletRequest)requestAttributes.resolveReference(RequestAttributes.REFERENCE_REQUEST);
+        // 登录对象信息
+        String userInfo = request.getHeader(TokenConstant.TOKEN_USERINFO);
+        boolean empty = ObjectUtils.isEmpty(userInfo);
+        if (empty) {
+            log.error("获取登录用户信息失败【{}】", joinPoint);
+            throw new ServiceException("获取登录用户信息失败");
+        }
+        byte[] bytes = AES.parseHexStr2Byte(userInfo);
+        byte[] decrypt = AES.decrypt(bytes, Constants.AES_KEY);
+        userInfo = new String(decrypt);
+        LoginUserInfoVO loginUserInfoVO = JSONObject.parseObject(userInfo, LoginUserInfoVO.class);
+        R retrieveResult = communityService.retrieveMcsMerchantInfoByUserId(loginUserInfoVO.getUserId());
+        if (R.isOk(retrieveResult) && nonNull(retrieveResult.getData())) {
+            McsMerchantVO mcsMerchantVO = JSONObject.parseObject(JSONObject.toJSONString(retrieveResult.getData()), McsMerchantVO.class);
+            Date expireAt = mcsMerchantVO.getExpireAt();
+            if (expireAt.before(new Date())) {
+                throw new ServiceException("账户已过期,请及时续费");
+            }
+        } else {
+            throw new ServiceException("未查询到商户信息");
+        }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/aop/CheckMcsMerchantExpiration.java b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/aop/CheckMcsMerchantExpiration.java
new file mode 100644
index 0000000..cbd76ce
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/aop/CheckMcsMerchantExpiration.java
@@ -0,0 +1,21 @@
+package com.panzhihua.shop_backstage.aop;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * @title: CheckMcsMerchantExpiration
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 微商业街商家是否到期统一检测
+ * @author: hans
+ * @date: 2022/01/11 10:28
+ */
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface CheckMcsMerchantExpiration {
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/aop/OperLogAspect.java b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/aop/OperLogAspect.java
new file mode 100644
index 0000000..7cb66b8
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/aop/OperLogAspect.java
@@ -0,0 +1,329 @@
+package com.panzhihua.shop_backstage.aop;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.lang.reflect.Method;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.annotation.AfterReturning;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Pointcut;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.springframework.stereotype.Component;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.context.request.RequestAttributes;
+import org.springframework.web.context.request.RequestContextHolder;
+
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.constants.TokenConstant;
+import com.panzhihua.common.interfaces.ShopOperLog;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.shop.ShopOperLogVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.AES;
+import com.panzhihua.common.utlis.IPUtil;
+import com.panzhihua.shop_backstage.model.vos.LoginBody;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @ClasssName 商家后台日志
+ * @Description
+ * @Author cedoo
+ * @Date 2021/4/16
+ * @Version 1.0
+ **/
+@Slf4j
+@Aspect
+@Component
+public class OperLogAspect {
+
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private UserService userService;
+
+    /**
+     * 设置操作日志切入点 记录操作日志 在注解的位置切入代码
+     */
+    @Pointcut("@annotation(com.panzhihua.common.interfaces.ShopOperLog)")
+    public void operLogPoinCut() {}
+
+    // /**
+    // * 设置操作异常切入点记录异常日志 扫描所有controller包下操作
+    // */
+    // @Pointcut("execution(* com.hyd.zcar.cms.controller..*.*(..))")
+    // public void operExceptionLogPoinCut() {
+    // }
+
+    /**
+     * 正常返回通知,拦截用户操作日志,连接点正常执行完成后执行, 如果连接点抛出异常,则不会执行
+     *
+     * @param joinPoint
+     *            切入点
+     * @param keys
+     *            返回结果
+     */
+    @AfterReturning(value = "operLogPoinCut()", returning = "keys")
+    public void saveOperLog(JoinPoint joinPoint, Object keys) {
+        log.info("进入切面");
+        // 获取RequestAttributes
+        RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
+        // 从获取RequestAttributes中获取HttpServletRequest的信息
+        HttpServletRequest request =
+            (HttpServletRequest)requestAttributes.resolveReference(RequestAttributes.REFERENCE_REQUEST);
+        // 登录对象信息
+        String userInfo = request.getHeader(TokenConstant.TOKEN_USERINFO);
+        boolean empty = ObjectUtils.isEmpty(userInfo);
+        if (empty) {
+            log.error("操作日志获取登录用户信息失败【{}】", joinPoint);
+            return;
+        }
+        byte[] bytes = AES.parseHexStr2Byte(userInfo);
+        byte[] decrypt = AES.decrypt(bytes, Constants.AES_KEY);
+        userInfo = new String(decrypt);
+        LoginUserInfoVO loginUserInfoVO = JSONObject.parseObject(userInfo, LoginUserInfoVO.class);
+
+        ShopOperLogVO shopOperlog = new ShopOperLogVO();
+        try {
+
+            // 从切面织入点处通过反射机制获取织入点处的方法
+            MethodSignature signature = (MethodSignature)joinPoint.getSignature();
+            // 获取切入点所在的方法
+            Method method = signature.getMethod();
+            // 获取操作
+            ShopOperLog opLog = method.getAnnotation(ShopOperLog.class);
+            if (opLog != null) {
+                String operModul = opLog.operModul();
+                int operType = opLog.operType();
+                shopOperlog.setTitle(operModul); // 操作模块
+                shopOperlog.setBusinessType(operType); // 操作类型
+            }
+            // 获取请求的类名
+            String className = joinPoint.getTarget().getClass().getName();
+            // 获取请求的方法名
+            String methodName = method.getName();
+            methodName = className + "." + methodName;
+
+            shopOperlog.setMethod(methodName); // 请求方法
+
+            if (joinPoint.getArgs().length > 0) {
+                for (Object o : joinPoint.getArgs()) {
+                    if (o instanceof HttpServletRequest || o instanceof HttpServletResponse) {
+                        continue;
+                    }
+                    shopOperlog.setOperParam(JSONObject.toJSONString(o)); // 请求参数
+                }
+            }
+
+            shopOperlog.setJsonResult(JSONObject.toJSONString(keys)); // 返回结果
+            shopOperlog.setAccount(loginUserInfoVO.getAccount());
+            shopOperlog.setOperName(loginUserInfoVO.getName()); // 请求用户名称
+            shopOperlog.setOperIp(IPUtil.getIpAddress(request)); // 请求IP
+            shopOperlog.setOperUrl(request.getRequestURI()); // 请求URI
+            shopOperlog.setRequestMethod(request.getMethod());
+            shopOperlog.setOperLocation(IPUtil.getIpBelongAddress(request));
+            shopOperlog.setOperTime(new Date()); // 创建时间
+            shopOperlog.setAccount(loginUserInfoVO.getAccount());
+            Long communityId = loginUserInfoVO.getCommunityId();
+            shopOperlog.setCommunityId(null == communityId ? 0 : communityId);
+            shopOperlog.setUserId(loginUserInfoVO.getUserId());
+            communityService.addShopOperLog(shopOperlog);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    // /**
+    // * 异常返回通知,用于拦截异常日志信息 连接点抛出异常后执行
+    // *
+    // * @param joinPoint 切入点
+    // * @param e 异常信息
+    // */
+    // @AfterThrowing(pointcut = "operExceptionLogPoinCut()", throwing = "e")
+    // public void saveExceptionLog(JoinPoint joinPoint, Throwable e) {
+    // // 获取RequestAttributes
+    // RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
+    // // 从获取RequestAttributes中获取HttpServletRequest的信息
+    // HttpServletRequest request = (HttpServletRequest) requestAttributes
+    // .resolveReference(RequestAttributes.REFERENCE_REQUEST);
+    //
+    // ExceptionLog excepLog = new ExceptionLog();
+    // try {
+    // // 从切面织入点处通过反射机制获取织入点处的方法
+    // MethodSignature signature = (MethodSignature) joinPoint.getSignature();
+    // // 获取切入点所在的方法
+    // Method method = signature.getMethod();
+    // excepLog.setExcId(UuidUtil.get32UUID());
+    // // 获取请求的类名
+    // String className = joinPoint.getTarget().getClass().getName();
+    // // 获取请求的方法名
+    // String methodName = method.getName();
+    // methodName = className + "." + methodName;
+    // // 请求的参数
+    // Map<String, String> rtnMap = converMap(request.getParameterMap());
+    // // 将参数所在的数组转换成json
+    // String params = JSON.toJSONString(rtnMap);
+    // excepLog.setExcRequParam(params); // 请求参数
+    // excepLog.setOperMethod(methodName); // 请求方法名
+    // excepLog.setExcName(e.getClass().getName()); // 异常名称
+    // excepLog.setExcMessage(stackTraceToString(e.getClass().getName(), e.getMessage(), e.getStackTrace())); // 异常信息
+    // excepLog.setOperUserId(UserShiroUtil.getCurrentUserLoginName()); // 操作员ID
+    // excepLog.setOperUserName(UserShiroUtil.getCurrentUserName()); // 操作员名称
+    // excepLog.setOperUri(request.getRequestURI()); // 操作URI
+    // excepLog.setOperIp(IPUtil.getRemortIP(request)); // 操作员IP
+    // excepLog.setOperVer(operVer); // 操作版本号
+    // excepLog.setOperCreateTime(new Date()); // 发生异常时间
+    //
+    // exceptionLogService.insert(excepLog);
+    //
+    // } catch (Exception e2) {
+    // e2.printStackTrace();
+    // }
+    //
+    // }
+
+    /**
+     * 转换request 请求参数
+     *
+     * @param paramMap
+     *            request获取的参数数组
+     */
+    public Map<String, String> converMap(Map<String, String[]> paramMap) {
+        Map<String, String> rtnMap = new HashMap<String, String>();
+        for (String key : paramMap.keySet()) {
+            rtnMap.put(key, paramMap.get(key)[0]);
+        }
+        return rtnMap;
+    }
+
+    private String getPostData(HttpServletRequest request) {
+        StringBuffer data = new StringBuffer();
+        String line = null;
+        BufferedReader reader = null;
+        try {
+            reader = request.getReader();
+            while (null != (line = reader.readLine()))
+                data.append(line);
+        } catch (IOException e) {
+        } finally {
+        }
+        return data.toString();
+    }
+
+    /**
+     * 转换异常信息为字符串
+     *
+     * @param exceptionName
+     *            异常名称
+     * @param exceptionMessage
+     *            异常信息
+     * @param elements
+     *            堆栈信息
+     */
+    public String stackTraceToString(String exceptionName, String exceptionMessage, StackTraceElement[] elements) {
+        StringBuffer strbuff = new StringBuffer();
+        for (StackTraceElement stet : elements) {
+            strbuff.append(stet + "\n");
+        }
+        String message = exceptionName + ":" + exceptionMessage + "\n\t" + strbuff.toString();
+        return message;
+    }
+
+    /**
+     * 登录日志切入点
+     */
+    @Pointcut("execution(public * com.panzhihua.shop_backstage.api.LoginApi.login(..) )")
+    public void operLogLoginPoinCut() {}
+
+    /**
+     * 正常返回通知,拦截用户操作日志,连接点正常执行完成后执行, 如果连接点抛出异常,则不会执行
+     *
+     * @param joinPoint
+     *            切入点
+     * @param keys
+     *            返回结果
+     */
+    @AfterReturning(value = "operLogLoginPoinCut()", returning = "keys")
+    public void saveLoginOperLog(JoinPoint joinPoint, Object keys) {
+        log.info("进入商家后台登录日志切面");
+        // 获取RequestAttributes
+        RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes();
+        // 从获取RequestAttributes中获取HttpServletRequest的信息
+        HttpServletRequest request =
+            (HttpServletRequest)requestAttributes.resolveReference(RequestAttributes.REFERENCE_REQUEST);
+        if (keys instanceof R) {
+            R r = (R)keys;
+            if (r.getCode() == 200 && "success".equals(r.getMsg())) {
+
+                Object obj = joinPoint.getArgs();
+                Object[] obja = (Object[])obj;
+                LoginBody loginBody = (LoginBody)obja[0];
+                String userName = loginBody.getAccount();
+                R<LoginUserInfoVO> userR = userService.getUserInfo(userName + "_5");
+                LoginUserInfoVO loginUserInfoVO = userR.getData();
+
+                ShopOperLogVO shopOperlog = new ShopOperLogVO();
+                try {
+
+                    // 从切面织入点处通过反射机制获取织入点处的方法
+                    MethodSignature signature = (MethodSignature)joinPoint.getSignature();
+                    // 获取切入点所在的方法
+                    Method method = signature.getMethod();
+                    // 获取操作
+                    ShopOperLog opLog = method.getAnnotation(ShopOperLog.class);
+                    if (opLog != null) {
+                        String operModul = opLog.operModul();
+                        int operType = opLog.operType();
+                        shopOperlog.setTitle(operModul); // 操作模块
+                        shopOperlog.setBusinessType(operType); // 操作类型
+                    }
+                    // 获取请求的类名
+                    String className = joinPoint.getTarget().getClass().getName();
+                    // 获取请求的方法名
+                    String methodName = method.getName();
+                    methodName = className + "." + methodName;
+
+                    shopOperlog.setMethod(methodName); // 请求方法
+
+                    if (joinPoint.getArgs().length > 0) {
+                        for (Object o : joinPoint.getArgs()) {
+                            if (o instanceof HttpServletRequest || o instanceof HttpServletResponse) {
+                                continue;
+                            }
+                            shopOperlog.setOperParam(JSONObject.toJSONString(o)); // 请求参数
+                        }
+                    }
+
+                    shopOperlog.setJsonResult(JSONObject.toJSONString(keys)); // 返回结果
+                    shopOperlog.setAccount(loginUserInfoVO.getAccount());
+                    shopOperlog.setOperName(loginUserInfoVO.getName()); // 请求用户名称
+                    shopOperlog.setOperIp(IPUtil.getIpAddress(request)); // 请求IP
+                    shopOperlog.setOperUrl(request.getRequestURI()); // 请求URI
+                    shopOperlog.setRequestMethod(request.getMethod());
+                    shopOperlog.setOperLocation(IPUtil.getIpBelongAddress(request));
+                    shopOperlog.setOperTime(new Date()); // 创建时间
+                    shopOperlog.setAccount(loginUserInfoVO.getAccount());
+                    Long communityId = loginUserInfoVO.getCommunityId();
+                    shopOperlog.setCommunityId(null == communityId ? 0 : communityId);
+                    shopOperlog.setUserId(loginUserInfoVO.getUserId());
+                    communityService.addShopOperLog(shopOperlog);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+
+    }
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/api/ConvenientApi.java b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/api/ConvenientApi.java
new file mode 100644
index 0000000..188e83f
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/api/ConvenientApi.java
@@ -0,0 +1,392 @@
+package com.panzhihua.shop_backstage.api;
+
+import static com.panzhihua.common.utlis.FileTypeUploadUtils.assertAllowed;
+import static org.apache.commons.lang3.StringUtils.isBlank;
+
+import java.io.File;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Comparator;
+import java.util.List;
+import java.util.TreeSet;
+import java.util.UUID;
+import java.util.stream.Collectors;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.validation.Valid;
+
+import com.panzhihua.common.model.vos.UploadFilesVO;
+import com.panzhihua.common.utlis.MimeTypeUtils;
+import org.apache.commons.io.FilenameUtils;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+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 org.springframework.web.multipart.MultipartFile;
+
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.constants.FtpConstants;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.community.convenient.ConvenientMerchantDTO;
+import com.panzhihua.common.model.dtos.community.convenient.ConvenientProductCategoryDTO;
+import com.panzhihua.common.model.dtos.community.convenient.ConvenientProductDTO;
+import com.panzhihua.common.model.dtos.community.convenient.ConvenientProductSpecificationDTO;
+import com.panzhihua.common.model.dtos.community.convenient.DeleteConvenientProductDTO;
+import com.panzhihua.common.model.dtos.community.convenient.OnShelfOrOffShelfProductDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PageConvenientProductCategoryDTO;
+import com.panzhihua.common.model.dtos.community.convenient.PageConvenientProductDTO;
+import com.panzhihua.common.model.dtos.user.ConvenientResetPasswordDTO;
+import com.panzhihua.common.model.vos.LoginReturnVO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientProductCategoryVO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientProductShelfVO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientProductVO;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientServiceCategoryVO;
+import com.panzhihua.common.model.vos.shop.LoginMerchantUserInfoVO;
+import com.panzhihua.common.model.vos.user.ChangePasswordVO;
+import com.panzhihua.common.service.auth.TokenService;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.utlis.SFTPUtil;
+import com.panzhihua.common.validated.AddGroup;
+import com.panzhihua.common.validated.PutGroup;
+import com.panzhihua.shop_backstage.model.vos.LoginBody;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @title: ConvenientApi
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 便民服务商家后台相关
+ * @author: hans
+ * @date: 2021/09/17 16:22
+ */
+@Slf4j
+@RestController
+@RequestMapping("/convenient")
+@Api(tags = {"便民服务商家后台相关"})
+public class ConvenientApi extends BaseController {
+
+    @Resource
+    private TokenService tokenService;
+    @Resource
+    private UserService userService;
+    @Resource
+    private CommunityService communityService;
+
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+    @Value("${ftp.url}")
+    private String url;
+
+    @ApiOperation(value = "便民服务商家后台登录", response = LoginReturnVO.class)
+//    @ShopOperLog(operType = 1)
+    @PostMapping("/login")
+    public R login(@RequestBody @Valid LoginBody loginBody) {
+        String account = loginBody.getAccount();
+        log.info("登录用户信息【{}】", loginBody);
+        try {
+            R<ConvenientMerchantVO> merchant = communityService.getUserMerchantInfoByAccount(account);
+            if (R.isOk(merchant)) {
+                ConvenientMerchantVO merchantVO =
+                        JSONObject.parseObject(JSONObject.toJSONString(merchant.getData()), ConvenientMerchantVO.class);
+                Boolean accountValid = merchantVO.getAccountStatus() == 1;
+                if (accountValid) {
+                    R result = tokenService.loginMerchantBackStage(account, loginBody.getPassword(),this.getAppId());
+                    return result;
+                } else {
+                    return R.fail("账号被禁用");
+                }
+            }
+            return R.fail(merchant.getMsg());
+        } catch (Exception e) {
+            return R.fail("登陆失败了");
+        }
+    }
+
+    @ApiOperation(value = "修改密码")
+    @PutMapping("/reset-password")
+//    @ShopOperLog(operType = 2)
+    public R resetPassword(@RequestBody @Valid ConvenientResetPasswordDTO convenientResetPasswordDTO) {
+        String newPassword = convenientResetPasswordDTO.getNewPassword();
+        String oldPassword = convenientResetPasswordDTO.getOldPassword();
+        if (newPassword.equals(oldPassword)) {
+            return R.fail("修改失败,新密码和原密码一致");
+        }
+        ChangePasswordVO changePasswordVO = new ChangePasswordVO();
+        changePasswordVO.setOldPassword(oldPassword);
+        changePasswordVO.setNewPassword(newPassword);
+        changePasswordVO.setUserId(this.getUserId());
+        return userService.changePassword(changePasswordVO);
+    }
+
+    @ApiOperation(value = "当前登录用户信息", response = LoginMerchantUserInfoVO.class)
+    @GetMapping("/userInfo")
+    public R detailUser() {
+        Long userId = this.getUserId();
+        R<LoginUserInfoVO> loginUserInfoVOR = userService.detailUser(userId);
+        try {
+            LoginUserInfoVO loginUserInfoVO =
+                    JSONObject.parseObject(JSONObject.toJSONString(loginUserInfoVOR.getData()), LoginUserInfoVO.class);
+            loginUserInfoVO.setPassword("******");
+            R<ConvenientMerchantVO> merchantVO = communityService.getUserConvenientMerchantInfo(userId);
+            LoginMerchantUserInfoVO loginMerchantUserInfoVO = new LoginMerchantUserInfoVO();
+            BeanUtils.copyProperties(loginUserInfoVO, loginMerchantUserInfoVO);
+            if (R.isOk(merchantVO) && merchantVO.getData() != null) {
+                ConvenientMerchantVO convenientMerchantVO =
+                        JSONObject.parseObject(JSONObject.toJSONString(merchantVO.getData()), ConvenientMerchantVO.class);
+                convenientMerchantVO.setAccount(loginUserInfoVO.getAccount());
+                convenientMerchantVO.setAccountStatus(loginUserInfoVO.getStatus());
+                loginMerchantUserInfoVO.setMerchantInfo(convenientMerchantVO);
+            }
+            return R.ok(loginMerchantUserInfoVO);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.fail("获取登陆商家用户信息失败");
+        }
+    }
+
+    @ApiOperation(value = "所有服务分类", response = ConvenientServiceCategoryVO.class)
+    @GetMapping("/service-category/all")
+    public R getAllServiceCategories() {
+        return communityService.getAllServiceCategories(this.getAreaCode());
+    }
+
+    @ApiOperation(value = "编辑便民服务商家")
+    @PutMapping("/merchant/put")
+    public R putMerchant(@RequestBody @Validated(PutGroup.class) ConvenientMerchantDTO convenientMerchantDTO) {
+        convenientMerchantDTO.setUpdatedBy(this.getUserId());
+        convenientMerchantDTO.setCreatedBy(this.getUserId());
+        return communityService.putMerchant(convenientMerchantDTO);
+    }
+
+    @ApiOperation(value = "上传文件")
+    @PostMapping(value = "/upload/file", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R uploadImage(@RequestParam MultipartFile file, HttpServletRequest request) {
+        String extension = FilenameUtils.getExtension(file.getOriginalFilename());
+        String name = UUID.randomUUID().toString().replaceAll("-", "") + "." + extension;
+        try {
+            assertAllowed(file, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION);
+            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+            sftp.login();
+            InputStream is = file.getInputStream();
+            sftp.uploadMore(FtpConstants.FTPFILEPATH_IDCARD, name, is);
+            sftp.logout();
+            return R.ok(url + "/idcard/" + name);
+        } catch (Exception e) {
+            log.error("上传照片失败【{}】", e.getMessage());
+            return R.fail();
+        }
+    }
+
+    @ApiOperation(value = "上传文件-可批量")
+    @PostMapping(value = "/upload/files", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R uploadFiles(@RequestParam MultipartFile[] file, HttpServletRequest request) {
+        List<UploadFilesVO> urlList = new ArrayList<>();
+        SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+        sftp.login();
+        for (MultipartFile f : file) {
+            String fileExtension = FilenameUtils.getExtension(f.getOriginalFilename());
+            String name = UUID.randomUUID().toString().replaceAll("-", "") + "." + fileExtension;
+            try {
+                InputStream is = f.getInputStream();
+                String fileName =
+                        UUID.randomUUID().toString().replace("-", "") + "." + fileExtension;
+                File file1 = new File(fileName);
+                f.transferTo(file1);
+                boolean delete = file1.delete();
+                log.info("临时文件删除【{}】", delete);
+                sftp.uploadMore(FtpConstants.FTPFILEPATH_IDCARD, name, is);
+                UploadFilesVO fileVO = new UploadFilesVO();
+                fileVO.setUrl(url + "idcard/" + name);
+                urlList.add(fileVO);
+            } catch (Exception e) {
+                log.error("上传文件失败【{}】", e.getMessage());
+                return R.fail();
+            }
+        }
+        sftp.logout();
+        return R.ok(urlList);
+    }
+
+    @ApiOperation(value = "新增产品分类")
+    @PostMapping("/product-category/add")
+    public R addProductCategory(@RequestBody @Validated(AddGroup.class) ConvenientProductCategoryDTO convenientProductCategoryDTO) {
+        R<ConvenientMerchantVO> merchantInfo = communityService.getUserConvenientMerchantInfo(this.getUserId());
+        if (R.isOk(merchantInfo)) {
+            ConvenientMerchantVO merchantVO =
+                    JSONObject.parseObject(JSONObject.toJSONString(merchantInfo.getData()), ConvenientMerchantVO.class);
+            convenientProductCategoryDTO.setCreatedBy(this.getUserId());
+            convenientProductCategoryDTO.setMerchantId(merchantVO.getId());
+            return communityService.addProductCategory(convenientProductCategoryDTO);
+        }
+        return R.fail("获取登录信息失败,请重新尝试");
+    }
+
+    @ApiOperation(value = "编辑产品分类")
+    @PutMapping("/product-category/put")
+    public R putProductCategory(@RequestBody @Validated(PutGroup.class) ConvenientProductCategoryDTO convenientProductCategoryDTO) {
+        convenientProductCategoryDTO.setUpdatedBy(this.getUserId());
+        return communityService.putProductCategory(convenientProductCategoryDTO);
+    }
+
+    @ApiOperation(value = "删除产品分类")
+    @DeleteMapping("/product-category/delete")
+    public R deleteProductCategory(@RequestParam("categoryId")
+                                   @ApiParam(value = "产品分类id", required = true)
+                                           Long categoryId) {
+        return communityService.deleteProductCategory(categoryId, this.getUserId());
+    }
+
+    @ApiOperation(value = "查询产品分类详情", response = ConvenientProductCategoryVO.class)
+    @GetMapping("/product-category/get")
+    public R getProductCategory(@RequestParam("categoryId")
+                                @ApiParam(value = "产品分类id", required = true)
+                                        Long categoryId) {
+        return communityService.getProductCategory(categoryId);
+    }
+
+    @ApiOperation(value = "分页查询产品分类", response = ConvenientProductCategoryVO.class)
+    @PostMapping("/product-category/page")
+    public R pageProductCategory(@RequestBody PageConvenientProductCategoryDTO pageConvenientProductCategoryDTO) {
+        R<ConvenientMerchantVO> merchantInfo = communityService.getUserConvenientMerchantInfo(this.getUserId());
+        if (R.isOk(merchantInfo)) {
+            ConvenientMerchantVO merchantVO =
+                    JSONObject.parseObject(JSONObject.toJSONString(merchantInfo.getData()), ConvenientMerchantVO.class);
+            pageConvenientProductCategoryDTO.setMerchantId(merchantVO.getId());
+            return communityService.pageProductCategory(pageConvenientProductCategoryDTO);
+        }
+        return R.fail("获取登录信息失败,请重新尝试");
+    }
+
+    @ApiOperation(value = "获取所有产品分类", response = ConvenientProductCategoryVO.class)
+    @GetMapping("/product-category/all")
+    public R getAllProductCategory() {
+        R<ConvenientMerchantVO> merchantInfo = communityService.getUserConvenientMerchantInfo(this.getUserId());
+        if (R.isOk(merchantInfo)) {
+            ConvenientMerchantVO merchantVO =
+                    JSONObject.parseObject(JSONObject.toJSONString(merchantInfo.getData()), ConvenientMerchantVO.class);
+            return communityService.getAllProductCategory(merchantVO.getId());
+        }
+        return R.fail("获取登录信息失败,请重新尝试");
+    }
+
+    @ApiOperation(value = "便民服务商家后台新增产品")
+    @PostMapping("/product/add")
+    public R addProduct(@RequestBody @Validated(AddGroup.class) ConvenientProductDTO convenientProductDTO) {
+        List<ConvenientProductSpecificationDTO> specificationDTOList = convenientProductDTO.getProductSpecificationDTOList();
+        boolean isDirtyData = specificationDTOList.stream().filter(specificationDTO -> isBlank(specificationDTO.getName())).findFirst().isPresent();
+        if (isDirtyData) {
+            return R.fail("请不要传入空规格!");
+        }
+        ArrayList<ConvenientProductSpecificationDTO> filteredSpecificationList = specificationDTOList.stream()
+                .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(ConvenientProductSpecificationDTO::getName))), ArrayList::new));
+        if (specificationDTOList.size() != filteredSpecificationList.size()) {
+            return R.fail("规格名称重复!");
+        }
+        Long userId = this.getUserId();
+        convenientProductDTO.setCreatedBy(userId);
+        R<ConvenientMerchantVO> merchantInfo = communityService.getUserConvenientMerchantInfo(userId);
+        if (R.isOk(merchantInfo)) {
+            ConvenientMerchantVO merchantVO =
+                    JSONObject.parseObject(JSONObject.toJSONString(merchantInfo.getData()), ConvenientMerchantVO.class);
+            convenientProductDTO.setMerchantId(merchantVO.getId());
+            return communityService.addProduct(convenientProductDTO);
+        }
+        return R.fail("新增失败,请重试");
+    }
+
+    @ApiOperation(value = "便民服务商家后台编辑产品")
+    @PutMapping("/product/put")
+    public R putProduct(@RequestBody @Validated(PutGroup.class) ConvenientProductDTO convenientProductDTO) {
+        List<ConvenientProductSpecificationDTO> specificationDTOList = convenientProductDTO.getProductSpecificationDTOList();
+        boolean isDirtyData = specificationDTOList.stream().filter(specificationDTO -> isBlank(specificationDTO.getName())).findFirst().isPresent();
+        if (isDirtyData) {
+            return R.fail("请不要传入空规格!");
+        }
+        ArrayList<ConvenientProductSpecificationDTO> filteredSpecificationList = specificationDTOList.stream()
+                .collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(ConvenientProductSpecificationDTO::getName))), ArrayList::new));
+        if (specificationDTOList.size() != filteredSpecificationList.size()) {
+            return R.fail("规格名称重复!");
+        }
+        Long userId = this.getUserId();
+        convenientProductDTO.setUpdatedBy(userId);
+        R<ConvenientMerchantVO> merchantInfo = communityService.getUserConvenientMerchantInfo(userId);
+        if (R.isOk(merchantInfo)) {
+            ConvenientMerchantVO merchantVO =
+                    JSONObject.parseObject(JSONObject.toJSONString(merchantInfo.getData()), ConvenientMerchantVO.class);
+            convenientProductDTO.setMerchantId(merchantVO.getId());
+            return communityService.putProduct(convenientProductDTO);
+        }
+        return R.fail("保存失败,请重试");
+    }
+
+    @ApiOperation(value = "便民服务商家后台查询产品详情", response = ConvenientProductVO.class)
+    @GetMapping("/product/get")
+    public R getProduct(@RequestParam("productId") Long productId) {
+        return communityService.getProduct(productId);
+    }
+
+    @ApiOperation(value = "便民服务商家后台分页查询产品", response = ConvenientProductVO.class)
+    @PostMapping("/product/page")
+    public R pageProduct(@RequestBody PageConvenientProductDTO pageConvenientProductDTO) {
+        Long userId = this.getUserId();
+        R<ConvenientMerchantVO> merchantInfo = communityService.getUserConvenientMerchantInfo(userId);
+        if (R.isOk(merchantInfo)) {
+            ConvenientMerchantVO merchantVO =
+                    JSONObject.parseObject(JSONObject.toJSONString(merchantInfo.getData()), ConvenientMerchantVO.class);
+            pageConvenientProductDTO.setMerchantId(merchantVO.getId());
+            return communityService.pageProduct(pageConvenientProductDTO);
+        }
+        return R.fail("获取失败,请重新尝试");
+    }
+
+    @ApiOperation(value = "便民服务商家后台删除产品")
+    @DeleteMapping("/product/delete")
+    public R deleteProduct(@RequestBody @Valid DeleteConvenientProductDTO deleteConvenientProductDTO) {
+        deleteConvenientProductDTO.setUpdatedBy(this.getUserId());
+        return communityService.deleteProduct(deleteConvenientProductDTO);
+    }
+
+    @ApiOperation(value = "上架/下架产品")
+    @PutMapping("/product/onShelf-or-offShelf")
+    public R onShelfOrOffShelfProduct(@RequestBody @Valid OnShelfOrOffShelfProductDTO onShelfOrOffShelfProductDTO) {
+        onShelfOrOffShelfProductDTO.setUpdatedBy(this.getUserId());
+        return communityService.onShelfOrOffShelfProduct(onShelfOrOffShelfProductDTO);
+    }
+
+    @ApiOperation(value = "便民服务商家后台查询产品上下架数量", response = ConvenientProductShelfVO.class)
+    @GetMapping("/product/shelf-num")
+    public R getProductShelfNum() {
+        R<ConvenientMerchantVO> merchantInfo = communityService.getUserConvenientMerchantInfo(this.getUserId());
+        if (R.isOk(merchantInfo)) {
+            ConvenientMerchantVO merchantVO =
+                    JSONObject.parseObject(JSONObject.toJSONString(merchantInfo.getData()), ConvenientMerchantVO.class);
+            return communityService.getProductShelfNum(merchantVO.getId());
+        }
+        return R.fail("获取失败,请重试");
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/api/FundsApi.java b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/api/FundsApi.java
new file mode 100644
index 0000000..1aff077
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/api/FundsApi.java
@@ -0,0 +1,159 @@
+package com.panzhihua.shop_backstage.api;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.net.URLEncoder;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+import java.util.UUID;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.*;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.excel.CustomSheetWriteHandler;
+import com.panzhihua.common.interfaces.ShopOperLog;
+import com.panzhihua.common.model.dtos.shop.ComShopFundsExportDTO;
+import com.panzhihua.common.model.dtos.shop.ExcelShopFundsDTO;
+import com.panzhihua.common.model.dtos.shop.PageComShopFundsSearchDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.shop.ComShopFundsOrderVO;
+import com.panzhihua.common.model.vos.shop.ShopStoreVO;
+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;
+
+/**
+ * @ClasssName GoodsApi 商品API
+ * @Description
+ * @Author cedoo
+ * @Date 2021/4/16
+ * @Version 1.0
+ **/
+
+@Slf4j
+@RestController
+@RequestMapping("/funs")
+@Api(tags = {"资金管理"})
+public class FundsApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @Value("${excel.userurl}")
+    private String excelUrl;
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+
+    @ApiOperation(value = "订单分页", response = ComShopFundsOrderVO.class)
+    @PostMapping("/page")
+    public R page(@RequestBody PageComShopFundsSearchDTO pageComShopFundsSearchDTO) {
+        pageComShopFundsSearchDTO.setUserId(getUserId());
+        ClazzUtils.setIfStringIsEmpty(pageComShopFundsSearchDTO);
+        return communityService.pageShopFunds(pageComShopFundsSearchDTO);
+    }
+
+    @ApiOperation(value = "资金统计信息")
+    @GetMapping("/stat")
+    public R stat() {
+        return communityService.getFundsStat(getUserId());
+    }
+
+    @ApiOperation(value = "导出表格")
+    @PostMapping("/export")
+    @ShopOperLog(operType = 12)
+    public R export(@RequestBody ComShopFundsExportDTO comShopFundsExportDTO) {
+        ClazzUtils.setIfStringIsEmpty(comShopFundsExportDTO);
+        String url = excelUrl;
+        String uuid = UUID.randomUUID().toString().replace("-", "");
+        // String name=uuid+".xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+
+        R<ShopStoreVO> storeR = communityService.getUserStoreInfo(getUserId());
+
+        if (!R.isOk(storeR)) {
+            return R.fail("用户不是商家");
+        }
+
+        ShopStoreVO shopStoreVO = JSONObject.parseObject(JSONObject.toJSONString(storeR.getData()), ShopStoreVO.class);
+        Long userId = this.getUserId();
+        comShopFundsExportDTO.setUserId(userId);
+        R r = communityService.shopOrderFundsExportData(comShopFundsExportDTO);
+        if (R.isOk(r)) {
+            List<ExcelShopFundsDTO> excelShopFundsDTO =
+                JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ExcelShopFundsDTO.class);
+            if (excelShopFundsDTO == null || excelShopFundsDTO.size() == 0) {
+                return R.ok("未找到数据");
+            }
+            try {
+                SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+                sftp.login();
+                String name = shopStoreVO.getName() + "-商家资金流水-"
+                    + new SimpleDateFormat("yyyyMMddhhmmss").format(new Date()) + ".xlsx";
+                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, ExcelShopFundsDTO.class)
+                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                            .registerWriteHandler(new CustomSheetWriteHandler()).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet(shopStoreVO.getName() + "订单").build();
+                        excelWriter.write(excelShopFundsDTO, 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(url + URLEncoder.encode(name, "UTF-8"));
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error("文件传输失败【{}】", e.getMessage());
+                return R.fail();
+            }
+        }
+        return R.fail("导出数据失败");
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/api/GoodsApi.java b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/api/GoodsApi.java
new file mode 100644
index 0000000..2b4e3c1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/api/GoodsApi.java
@@ -0,0 +1,158 @@
+package com.panzhihua.shop_backstage.api;
+
+import java.io.InputStream;
+import java.util.Arrays;
+import java.util.List;
+import java.util.UUID;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.constants.FtpConstants;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.interfaces.ShopOperLog;
+import com.panzhihua.common.model.dtos.shop.PageComShopGoodsDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.shop.AddShopGoodsVO;
+import com.panzhihua.common.model.vos.shop.ComShopGoodsVO;
+import com.panzhihua.common.model.vos.shop.ShopStoreVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.ClazzUtils;
+import com.panzhihua.common.utlis.SFTPUtil;
+import com.panzhihua.common.validated.PageGroup;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @ClasssName GoodsApi 商品API
+ * @Description
+ * @Author cedoo
+ * @Date 2021/4/16
+ * @Version 1.0
+ **/
+
+@Slf4j
+@RestController
+@RequestMapping("/goods")
+@Api(tags = {"商品管理"})
+public class GoodsApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+    @Value("${ftp.url}")
+    private String url;
+
+    @ApiOperation(value = "商品分页搜索", response = ComShopGoodsVO.class)
+    @PostMapping("/page")
+    public R search(@RequestBody @Validated(PageGroup.class) PageComShopGoodsDTO comShopGoodsDTO) {
+        R<ShopStoreVO> storeInfoR = communityService.getUserStoreInfo(getUserId());
+        if (R.isOk(storeInfoR)) {
+            ShopStoreVO shopStoreVO =
+                JSONObject.parseObject(JSONObject.toJSONString(storeInfoR.getData()), ShopStoreVO.class);
+            if (shopStoreVO == null) {
+                return R.fail("用户无关联店铺");
+            }
+            comShopGoodsDTO.setStoreId(shopStoreVO.getId());
+            ClazzUtils.setIfStringIsEmpty(comShopGoodsDTO);
+            return communityService.pageGoodsList(comShopGoodsDTO);
+        } else {
+            return R.fail();
+        }
+    }
+
+    @ApiOperation(value = "添加商品")
+    @ShopOperLog(operType = 3)
+    @PostMapping("/add")
+    public R search(@RequestBody @Validated AddShopGoodsVO addShopGoodsVO) {
+        R<ShopStoreVO> storeInofR = communityService.getUserStoreInfo(getUserId());
+
+        if (R.isOk(storeInofR)) {
+            ShopStoreVO shopStoreVO =
+                JSONObject.parseObject(JSONObject.toJSONString(storeInofR.getData()), ShopStoreVO.class);
+            if (shopStoreVO == null) {
+                return R.fail("用户无关联店铺");
+            }
+            addShopGoodsVO.setStoreId(shopStoreVO.getId());
+            // addShopGoodsVO.setName(shopStoreVO.getName());
+            addShopGoodsVO.setDeliveryType(shopStoreVO.getDeliveryType());
+            return communityService.saveShopGoods(addShopGoodsVO);
+        } else {
+            return R.fail();
+        }
+    }
+
+    @ApiOperation(value = "编辑商品")
+    @ShopOperLog(operType = 4)
+    @PutMapping("/edit/{id}")
+    R editShopGoods(@PathVariable("id") Long id, @RequestBody @Validated AddShopGoodsVO addShopGoodsVO) {
+        return communityService.editShopGoods(id, addShopGoodsVO);
+    }
+
+    @ApiOperation(value = "下架商品")
+    @ShopOperLog(operType = 5)
+    @PutMapping("/toggleDown/{id}")
+    public R toggleDown(@PathVariable("id") Long id) {
+        return communityService.changeStatus(id, 2);
+    }
+
+    @ApiOperation(value = "上架商品")
+    @ShopOperLog(operType = 6)
+    @PutMapping("/toggleUp/{id}")
+    public R toggleUp(@PathVariable("id") Long id) {
+        return communityService.changeStatus(id, 1);
+    }
+
+    @ApiOperation(value = "删除商品")
+    @ShopOperLog(operType = 7)
+    @DeleteMapping("/delete")
+    R deleteShopGoods(@RequestBody Long[] id) {
+        return communityService.deleteShopGoods(id);
+    }
+
+    @ApiOperation(value = "上传图片")
+    @PostMapping(value = "/uploadimage", consumes = "multipart/*", headers = "content-type=multipart/form-date")
+    public R uploadImage(@RequestParam MultipartFile file, HttpServletRequest request) {
+        String name = file.getOriginalFilename();
+        List<String> formateList = Arrays.asList("avi", "flv", "mpg", "mpeg", "mpe", "m1v", "m2v", "mpv2", "mp2v",
+            "dat", "ts", "tp", "tpr", "pva", "pss", "mp4", "m4v", "m4p", "m4b", "3gp", "3gpp", "3g2", "3gp2", "ogg",
+            "mov", "qt", "amr", "rm", "ram", "rmvb", "rpm");
+        String nameStr = name.split("\\.")[1];
+        if (formateList.contains(nameStr)) {
+            name = UUID.randomUUID().toString().replaceAll("-", "") + ".mp4";
+        } else {
+            name = UUID.randomUUID().toString().replaceAll("-", "") + ".jpg";
+        }
+        try {
+            SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+            sftp.login();
+            InputStream is = file.getInputStream();
+            sftp.uploadMore(FtpConstants.FTPFILEPATH_IDCARD, name, is);
+            sftp.logout();
+            return R.ok(url + "/idcard/" + name);
+        } catch (Exception e) {
+            log.error("上传照片失败【{}】", e.getMessage());
+            return R.fail();
+        }
+
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/api/KaphtchaApi.java b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/api/KaphtchaApi.java
new file mode 100644
index 0000000..789223c
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/api/KaphtchaApi.java
@@ -0,0 +1,80 @@
+package com.panzhihua.shop_backstage.api;
+
+import com.google.code.kaptcha.impl.DefaultKaptcha;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.utlis.StringUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.data.redis.core.StringRedisTemplate;
+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;
+import javax.imageio.ImageIO;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.awt.image.BufferedImage;
+import java.io.ByteArrayOutputStream;
+import java.time.Duration;
+
+/**
+ * @author zzj
+ */
+@Api(tags = {"验证码接口"})
+@RestController
+@RequestMapping("/kaphtcha/")
+public class KaphtchaApi extends BaseController {
+    @Resource
+    private DefaultKaptcha defaultKaptcha;
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+
+    @ApiOperation("生成验证码")
+    @GetMapping("/verification")
+    public void defaultKaptcha(@RequestParam("uuid")String uuid,HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse)
+            throws Exception {
+        byte[] captchaChallengeAsJpeg = null;
+        ByteArrayOutputStream jpegOutputStream = new ByteArrayOutputStream();
+        try {
+            // 生产验证码字符串并保存到session中,分布式环境存redis中
+            String createText = defaultKaptcha.createText();
+            stringRedisTemplate.opsForValue().set("verifyCode_"+uuid,createText, Duration.ofMinutes(5));
+            // 使用生产的验证码字符串返回一个BufferedImage对象并转为byte写入到byte数组中
+            BufferedImage challenge = defaultKaptcha.createImage(createText);
+            ImageIO.write(challenge, "jpg", jpegOutputStream);
+
+        } catch (IllegalArgumentException e) {
+            httpServletResponse.sendError(HttpServletResponse.SC_NOT_FOUND);
+            return;
+        }
+
+        // 定义response输出类型为image/jpeg类型,使用response输出流输出图片的byte数组
+        captchaChallengeAsJpeg = jpegOutputStream.toByteArray();
+        httpServletResponse.setHeader("Cache-Control", "no-store");
+        httpServletResponse.setHeader("Pragma", "no-cache");
+        httpServletResponse.setDateHeader("Expires", 0);
+        httpServletResponse.setContentType("image/jpeg");
+        ServletOutputStream responseOutputStream = httpServletResponse.getOutputStream();
+        responseOutputStream.write(captchaChallengeAsJpeg);
+        responseOutputStream.flush();
+        responseOutputStream.close();
+    }
+    @ApiOperation("验证码核对")
+    @GetMapping("/checkVerifyCode")
+    public R checkVerifyCode(@RequestParam("verifyCode")String verifyCode,@RequestParam("uuid")String uuid){
+        String text=stringRedisTemplate.opsForValue().get("verifyCode_"+uuid);
+        if(StringUtils.isNotEmpty(text)){
+            if(verifyCode.equals(text)){
+                stringRedisTemplate.delete("verifyCode_"+uuid);
+                return R.ok();
+            }
+            return R.fail("验证码错误");
+        }
+        return R.fail("验证码失效");
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/api/LogApi.java b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/api/LogApi.java
new file mode 100644
index 0000000..af439d1
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/api/LogApi.java
@@ -0,0 +1,59 @@
+package com.panzhihua.shop_backstage.api;
+
+import javax.annotation.Resource;
+
+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 com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.PageDTO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.shop.ShopOperLogVO;
+import com.panzhihua.common.service.community.CommunityService;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @ClasssName GoodsApi 商品API
+ * @Description
+ * @Author cedoo
+ * @Date 2021/4/16
+ * @Version 1.0
+ **/
+
+@Slf4j
+@RestController
+@RequestMapping("/log")
+@Api(tags = {"操作日志"})
+public class LogApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "登陆用户操作日志", response = ShopOperLogVO.class)
+    @GetMapping("/page")
+    public R page(@RequestParam("pageNum") Long pageNum, @RequestParam("pageSize") Long pageSize) {
+        PageDTO pageDTO = new PageDTO();
+        pageDTO.setPageNum(pageNum);
+        pageDTO.setPageSize(pageSize);
+        if (pageNum == null || new Long(0).equals(pageNum.longValue())) {
+            pageDTO.setPageNum(1l);
+        }
+        if (pageSize == null || new Long(0).equals(pageSize.longValue())) {
+            pageDTO.setPageSize(10l);
+        }
+
+        LoginUserInfoVO loginUserInfoVO = this.getLoginUserInfo();
+        if (loginUserInfoVO == null) {
+            return R.fail("未登陆");
+        }
+        pageDTO.setUserId(loginUserInfoVO.getUserId());
+        return communityService.pageShopOperLog(pageDTO);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/api/LoginApi.java b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/api/LoginApi.java
new file mode 100644
index 0000000..f9c25b2
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/api/LoginApi.java
@@ -0,0 +1,117 @@
+package com.panzhihua.shop_backstage.api;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.util.ObjectUtils;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.interfaces.ShopOperLog;
+import com.panzhihua.common.model.vos.LoginReturnVO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.shop.LoginStoreUserInfoVO;
+import com.panzhihua.common.model.vos.shop.ShopStoreVO;
+import com.panzhihua.common.model.vos.user.ChangePasswordVO;
+import com.panzhihua.common.service.auth.TokenService;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.interfaces.ShopOperLog;
+import com.panzhihua.shop_backstage.model.vos.LoginBody;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.util.ObjectUtils;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+
+@Slf4j
+@RestController
+@RequestMapping("/")
+@Api(tags = {"登录"})
+public class LoginApi extends BaseController {
+    @Resource
+    private TokenService tokenService;
+    @Resource
+    private UserService userService;
+    @Resource
+    private CommunityService communityService;
+
+    @ApiOperation(value = "商家后台登录", response = LoginReturnVO.class)
+    @ShopOperLog(operType = 1)
+    @PostMapping("login")
+    public R login(@RequestBody LoginBody loginBody){
+        String account = loginBody.getAccount();
+        String password = loginBody.getPassword();
+        boolean empty = ObjectUtils.isEmpty(account);
+        boolean empty1 = ObjectUtils.isEmpty(password);
+        if (empty || empty1) {
+            return R.fail("账户密码不能为空");
+        }
+        log.info("登录用户信息【{}】", loginBody);
+
+        try {
+            R<ShopStoreVO> storeR = communityService.getUserStoreInfoByAccount(account);
+            if (R.isOk(storeR)) {
+                ShopStoreVO shopStoreVO =
+                    JSONObject.parseObject(JSONObject.toJSONString(storeR.getData()), ShopStoreVO.class);
+                Boolean accountValid = shopStoreVO.getStatus() == 1;
+                if (accountValid) {
+                    R r = tokenService.loginShopBackStage(account, password,this.getAppId());
+                    return r;
+                } else {
+                    return R.fail("账号被禁用");
+                }
+            }
+            return R.fail(storeR.getMsg());
+        } catch (Exception e) {
+            return R.fail("登陆失败了");
+        }
+    }
+
+    @ApiOperation(value = "修改密码")
+    @PutMapping("changepassword")
+    @ShopOperLog(operType = 2)
+    public R changePassword(@Validated @RequestBody ChangePasswordVO changePasswordVO) {
+        Long userId = this.getUserId();
+        String newPassword = changePasswordVO.getNewPassword();
+        String oldPassword = changePasswordVO.getOldPassword();
+        if (newPassword.equals(oldPassword)) {
+            return R.fail("修改失败,新密码和原密码一致");
+        }
+        changePasswordVO.setUserId(userId);
+        return userService.changePassword(changePasswordVO);
+    }
+
+    @ApiOperation(value = "当前登录用户信息", response = LoginStoreUserInfoVO.class)
+    @GetMapping("user")
+    public R detailUser() {
+        Long userId = this.getUserId();
+        R<LoginUserInfoVO> loginUserInfoVOR = userService.detailUser(userId);
+
+        try {
+            LoginUserInfoVO loginUserInfoVO =
+                JSONObject.parseObject(JSONObject.toJSONString(loginUserInfoVOR.getData()), LoginUserInfoVO.class);
+            loginUserInfoVO.setPassword("******");
+            R<ShopStoreVO> storeR = communityService.getUserStoreInfo(userId);
+            LoginStoreUserInfoVO loginStoreUserInfoVO = new LoginStoreUserInfoVO();
+            BeanUtils.copyProperties(loginUserInfoVO, loginStoreUserInfoVO);
+            if (R.isOk(storeR) && storeR.getData() != null) {
+                ShopStoreVO shopStoreVO =
+                    JSONObject.parseObject(JSONObject.toJSONString(storeR.getData()), ShopStoreVO.class);
+                loginStoreUserInfoVO.setStoreInfo(shopStoreVO);
+            }
+            return R.ok(loginStoreUserInfoVO);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.fail("获取登陆商家用户信息失败");
+        }
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/api/McsOrderApi.java b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/api/McsOrderApi.java
new file mode 100644
index 0000000..8792897
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/api/McsOrderApi.java
@@ -0,0 +1,191 @@
+package com.panzhihua.shop_backstage.api;
+
+
+import java.io.IOException;
+import java.io.PrintWriter;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.json.XML;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+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.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.model.dtos.property.CommonPage;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.McsOrderVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.DateUtils;
+import com.panzhihua.common.utlis.StringUtils;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+
+/**
+ * 商业街订单表(McsOrder)表控制层
+ *
+ * @author makejava
+ * @since 2022-01-04 16:10:07
+ */
+@Api(tags = {"商业街订单API"})
+@RestController
+@RequestMapping("mcsOrder")
+public class McsOrderApi extends BaseController {
+    /**
+     * 服务对象
+     */
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 分页查询所有数据
+     *
+     * @param commonPage 查询实体
+     * @return 所有数据
+     */
+    @ApiOperation(value = "分页查询订单",response = McsOrderVO.class)
+    @PostMapping("queryAll")
+    public R selectAll(@RequestBody CommonPage commonPage) {
+        commonPage.setUserId(this.getUserId());
+        return communityService.selectAllMscOrder(commonPage);
+    }
+
+    /**
+     * 通过主键查询单条数据
+     *
+     * @param id 主键
+     * @return 单条数据
+     */
+    @ApiOperation(value = "通过主键查询单条数据",response = McsOrderVO.class)
+    @GetMapping("{id}")
+    public R selectOne(@PathVariable("id") Long id) {
+        return communityService.selectOneMscOrder(id);
+    }
+
+    /**
+     * 新增数据
+     *
+     * @param mcsOrderVO 实体对象
+     * @return 新增结果
+     */
+    @ApiOperation("新增数据")
+    @PostMapping
+    public R insert(@RequestBody McsOrderVO mcsOrderVO) {
+        mcsOrderVO.setUserId(this.getUserId());
+        return communityService.insertMscOrder(mcsOrderVO);
+    }
+
+    /**
+     * 修改数据
+     *
+     * @param mcsOrderVO 实体对象
+     * @return 修改结果
+     */
+    @ApiOperation("修改订单")
+    @PostMapping("/update")
+    public R update(@RequestBody McsOrderVO mcsOrderVO) {
+        return communityService.updateMscOrder(mcsOrderVO);
+    }
+
+    /**
+     * 微信支付
+     * @param mcsOrderVO
+     * @return
+     */
+    @ApiOperation("微信支付")
+    @PostMapping("/wxPay")
+    public R wxPay(@RequestBody McsOrderVO mcsOrderVO){
+        String clientIp = this.getRequest().getHeader("X-Real-IP");
+        mcsOrderVO.setClientIp(clientIp);
+        return communityService.wxPayMscOrder(mcsOrderVO);
+    }
+
+    /**
+     * 发送提醒短信
+     * @param id
+     * @return
+     */
+    @ApiOperation("发送提醒短信")
+    @GetMapping("/sendContent")
+    public R sendContent(@RequestParam("id") Long id){
+        return communityService.sendContentMcsOrder(id);
+    }
+    /**
+     *微信支付回调
+     * @param
+     * @return
+     */
+    @ApiOperation("微信支付回调")
+    @PostMapping("wxNotify")
+    public void payCallback(HttpServletRequest request, HttpServletResponse response) {
+        String inputLine = "";
+        String notityXml = "";
+        try {
+            while ((inputLine = request.getReader().readLine()) != null) {
+                notityXml += inputLine;
+            }
+            // 关闭流
+            request.getReader().close();
+            // 解析成Json
+            org.json.JSONObject xmlJson = XML.toJSONObject(notityXml);
+            if (StringUtils.isNotEmpty(xmlJson.toString())) {
+                JSONObject resultData = JSON.parseObject(xmlJson.get("xml").toString());
+                // 成功支付订单
+                if (resultData.getString("result_code").equals("SUCCESS")
+                        && resultData.getString("return_code").equals("SUCCESS")) {
+                    McsOrderVO mcsOrderVO = new McsOrderVO();
+                    // 订单号
+                    String orderTradeNo = resultData.getString("out_trade_no");
+                    mcsOrderVO.setOrderNo(orderTradeNo);
+                    // 微信支付订单号
+                    String wxTradeNo = resultData.getString("transaction_id");
+                    mcsOrderVO.setPayNo(wxTradeNo);
+                    // 支付完成时间
+                    String payTime = resultData.getString("time_end");
+                    mcsOrderVO.setPayTime(DateUtils.stringToDate(payTime,DateUtils.format_yyyyMMddHHmmss));
+                    // 现金支付金额
+                    mcsOrderVO.setStatus(1);
+
+                    // 根据订单号修改订单信息
+                    communityService.notifyMcsOrder(mcsOrderVO);
+
+                    // 封装 返回值
+                    StringBuffer buffer = new StringBuffer();
+                    buffer.append("<xml>");
+                    buffer.append("<return_code>SUCCESS</return_code>");
+                    buffer.append("<return_msg>OK</return_msg>");
+                    buffer.append("</xml>");
+
+                    // 给微信服务器返回 成功标示 否则会一直询问 咱们服务器 是否回调成功
+                    PrintWriter writer = response.getWriter();
+                    // 返回
+                    writer.print(buffer.toString());
+                } else {// 未成功支付订单
+                    // 封装 返回值
+                    StringBuffer buffer = new StringBuffer();
+                    buffer.append("<xml>");
+                    buffer.append("<return_code>FAIL</return_code>");
+                    buffer.append("<return_msg>FAIL</return_msg>");
+                    buffer.append("</xml>");
+
+                    // 给微信服务器返回 成功标示 否则会一直询问 咱们服务器 是否回调成功
+                    PrintWriter writer = response.getWriter();
+                    // 返回
+                    writer.print(buffer.toString());
+                }
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/api/MicroCommercialStreetApi.java b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/api/MicroCommercialStreetApi.java
new file mode 100644
index 0000000..60f2a03
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/api/MicroCommercialStreetApi.java
@@ -0,0 +1,569 @@
+package com.panzhihua.shop_backstage.api;
+
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+
+import java.util.regex.Pattern;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.util.ObjectUtils;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.DeleteMapping;
+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.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.exceptions.ServiceException;
+import com.panzhihua.common.model.dtos.community.microCommercialStreet.*;
+import com.panzhihua.common.model.vos.LoginReturnVO;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.microCommercialStreet.*;
+import com.panzhihua.common.service.auth.TokenService;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.user.UserService;
+import com.panzhihua.common.validated.AddGroup;
+import com.panzhihua.common.validated.PutGroup;
+import com.panzhihua.shop_backstage.aop.CheckMcsMerchantExpiration;
+import com.panzhihua.shop_backstage.config.MyAESUtil;
+import com.panzhihua.shop_backstage.config.WxMaConfiguration;
+import com.panzhihua.shop_backstage.model.request.LoginRequest;
+import com.panzhihua.shop_backstage.model.vos.LoginBody;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.util.ObjectUtils;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import java.time.Duration;
+import java.util.regex.Pattern;
+
+import static java.util.Objects.isNull;
+import static java.util.Objects.nonNull;
+
+/**
+ * @title: MicroCommercialStreetApi
+ * @projectName: 成都呐喊信息技术有限公司-智慧社区项目
+ * @description: 微商业街相关接口
+ * @author: hans
+ * @date: 2021/12/28 14:18
+ */
+@Api(tags = {"微商业街"})
+@RestController
+@RequestMapping("/microcommercialstreet")
+@Slf4j
+public class MicroCommercialStreetApi extends BaseController {
+
+    private static String LOGIN_FAIL = "LOGIN_FAIL_";
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private TokenService tokenService;
+    @Resource
+    private UserService userService;
+    @Resource
+    private WxMaConfiguration wxMaConfiguration;
+    @Resource
+    private RedisTemplate redisTemplate;
+
+    @ApiOperation(value = "H5授权登录", response = LoginReturnVO.class)
+    @PostMapping("/auth/login")
+    public R mcsAuthLogin(@RequestBody LoginRequest loginRequest) {
+        String code = loginRequest.getCode();
+        if (ObjectUtils.isEmpty(code)) {
+            return R.fail("缺少登录参数");
+        }
+        log.info(code);
+        String openid = wxMaConfiguration.retrieveOpenId(code);
+        if (isNull(openid)) {
+            return R.fail("登录失败");
+        }
+        R r = userService.getMcsUserByOpenId(openid);
+        if (R.isOk(r) && nonNull(r.getData())) {
+            McsLoginUserInfoVO loginUserInfoVO = JSONObject.parseObject(JSONObject.toJSONString(r.getData()), McsLoginUserInfoVO.class);
+            return tokenService.loginMcsUser(loginUserInfoVO.getAccount(), loginUserInfoVO.getPlaintextPassword(),this.getAppId());
+        }
+        LoginReturnVO loginReturnVO = new LoginReturnVO();
+        loginReturnVO.setOpenId(openid);
+        return R.ok(loginReturnVO);
+    }
+
+    @ApiOperation(value = "获取绑定验证码")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "phone", value = "手机号", required = true)
+    })
+    @GetMapping("/bind/verifyCode")
+    public R getBindVerifyCode(@RequestParam("phone") String phone) {
+        if (!assertPhoneIsValid(phone)) {
+            return R.fail("手机号格式错误");
+        }
+        String clientIP = this.getRequest().getHeader("X-Real-IP");
+        log.info("获取验证码用户ip信息【{}】", clientIP);
+        try {
+            return userService.sendMessageCode(phone, clientIP, "MCS_BIND_WITH_PHONE", 5, 5 * 60);
+        } catch (Exception e) {
+            return R.fail("获取失败");
+        }
+    }
+
+    @ApiOperation(value = "微信授权-绑定手机号", response = LoginReturnVO.class)
+    @PostMapping("/bindPhone")
+    public R bindOrAddMcsUser(@RequestBody @Valid BindUserPhoneDTO bindUserPhoneDTO) {
+        R r = userService.bindOrAddMcsUser(bindUserPhoneDTO);
+        Boolean isValid = false;
+        if (R.isOk(r) && r.getData() != null) {
+            McsLoginUserInfoVO loginUserInfoVO = JSONObject.parseObject(JSONObject.toJSONString(r.getData()), McsLoginUserInfoVO.class);
+            isValid = loginUserInfoVO.getStatus() == 1;
+            if (isValid) {
+                R result = tokenService.loginMcsUser(loginUserInfoVO.getAccount(), loginUserInfoVO.getPlaintextPassword(), this.getAppId());
+                return result;
+            } else {
+                return R.fail("账号被禁用");
+            }
+        }
+        return R.fail(r.getMsg());
+    }
+
+    @ApiOperation(value = "微商业街商家后台登录", response = LoginReturnVO.class)
+    @PostMapping("/merchant/login")
+    public R merchantLogin(@RequestBody @Valid LoginBody loginBody) {
+        String account = loginBody.getAccount();
+        String password = loginBody.getPassword();
+        log.info("登录用户信息【{}】", loginBody);
+        try {
+            password = MyAESUtil.Decrypt(loginBody.getPassword(), "Ryo7M3n8loC5Abcd");
+        } catch (Exception e) {
+            return R.fail("账号或密码错误!");
+        }
+        boolean flag = redisTemplate.hasKey(LOGIN_FAIL + account);
+        try {
+            R r = communityService.getMcsMerchantByAccount(account);
+            Boolean isValid = false;
+            if (R.isOk(r) && r.getData() != null) {
+                McsMerchantVO merchantVO = JSONObject.parseObject(JSONObject.toJSONString(r.getData()), McsMerchantVO.class);
+                isValid = merchantVO.getAccountStatus() == 1;
+                if (isValid) {
+                    if (flag) {
+                        Integer time = (Integer) redisTemplate.opsForValue().get(LOGIN_FAIL + account);
+                        if (time >= 5) {
+                            redisTemplate.opsForValue().set(LOGIN_FAIL + account, 5, Duration.ofMinutes(5));
+                            throw new ServiceException("登录错误超过限制,请五分钟后重试");
+                        }
+                    }
+                    R result = tokenService.loginMcsUser(account, password,this.getAppId());
+                    return result;
+                } else {
+                    return R.fail("账号被禁用");
+                }
+            }
+            return R.fail(r.getMsg());
+        } catch (Exception e) {
+            lockLogin(flag, account);
+            return R.fail("登陆失败了");
+        }
+    }
+
+    private void lockLogin(Boolean flag, String userName) {
+        if (flag) {
+            Integer time = (Integer) redisTemplate.opsForValue().get(LOGIN_FAIL + userName);
+            redisTemplate.opsForValue().set(LOGIN_FAIL + userName, time + 1, Duration.ofMinutes(5));
+        } else {
+            redisTemplate.opsForValue().set(LOGIN_FAIL + userName, 1, Duration.ofMinutes(5));
+        }
+    }
+
+    @ApiOperation(value = "微商业街用户登录", response = LoginReturnVO.class)
+    @PostMapping("/loginWithPhone")
+    public R loginWithPhone(@RequestBody @Valid LoginWithPhoneDTO loginDTO) {
+        log.info("登录用户信息【{}】", loginDTO);
+        try {
+            R r = communityService.loginWithPhone(loginDTO);
+            Boolean isValid = false;
+            if (R.isOk(r) && r.getData() != null) {
+                McsLoginUserInfoVO loginUserInfoVO = JSONObject.parseObject(JSONObject.toJSONString(r.getData()), McsLoginUserInfoVO.class);
+                isValid = loginUserInfoVO.getStatus() == 1;
+                if (isValid) {
+                    R result = tokenService.loginMcsUser(loginUserInfoVO.getAccount(), loginUserInfoVO.getPlaintextPassword(),this.getAppId());
+                    return result;
+                } else {
+                    return R.fail("账号被禁用");
+                }
+            }
+            return R.fail(r.getMsg());
+        } catch (Exception e) {
+            return R.fail("登陆失败了");
+        }
+    }
+
+    @ApiOperation(value = "获取登录验证码")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "phone", value = "手机号", required = true)
+    })
+    @GetMapping("/verifyCode")
+    public R getLoginVerifyCode(@RequestParam("phone") String phone) {
+        if (!assertPhoneIsValid(phone)) {
+            return R.fail("手机号格式错误");
+        }
+        String clientIP = this.getRequest().getHeader("X-Real-IP");
+        log.info("获取验证码用户ip信息【{}】", clientIP);
+        try {
+            return userService.sendMessageCode(phone, clientIP, "MCS_LOGIN_WITH_PHONE", 5, 5 * 60);
+        } catch (Exception e) {
+            return R.fail("获取失败");
+        }
+    }
+
+    @ApiOperation(value = "当前登录用户信息", response = McsLoginUserInfoVO.class)
+    @GetMapping("/userInfo")
+    public R detailUser() {
+        Long userId = this.getUserId();
+        R<LoginUserInfoVO> loginUserInfoVOR = userService.detailUser(userId);
+        try {
+            LoginUserInfoVO loginUserInfoVO =
+                    JSONObject.parseObject(JSONObject.toJSONString(loginUserInfoVOR.getData()), LoginUserInfoVO.class);
+            loginUserInfoVO.setPassword("******");
+            R<McsMerchantVO> mcsMerchantVOR = communityService.getMcsMerchantByAccount(loginUserInfoVO.getAccount());
+            McsLoginUserInfoVO mcsLoginUserInfoVO = new McsLoginUserInfoVO();
+            BeanUtils.copyProperties(loginUserInfoVO, mcsLoginUserInfoVO);
+            if (R.isOk(mcsMerchantVOR) && mcsMerchantVOR.getData() != null) {
+                McsMerchantVO mcsMerchantVO =
+                        JSONObject.parseObject(JSONObject.toJSONString(mcsMerchantVOR.getData()), McsMerchantVO.class);
+                mcsLoginUserInfoVO.setMcsMerchantVO(mcsMerchantVO);
+            }
+            return R.ok(mcsLoginUserInfoVO);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return R.fail("获取用户信息失败");
+        }
+    }
+
+    @ApiOperation(value = "修改用戶信息")
+    @PutMapping("/putUserInfo")
+    public R putUserInfo(@RequestBody PutUserInfoDTO putUserInfoDTO) {
+        putUserInfoDTO.setUserId(this.getUserId());
+        return communityService.putUserInfo(putUserInfoDTO);
+    }
+
+    @ApiOperation(value = "新增戳戳游戏")
+    @PostMapping("/game/add")
+    public R addMcsGame(@RequestBody @Validated(AddGroup.class) McsGameDTO mcsGameDTO) {
+        Long userId = this.getUserId();
+        mcsGameDTO.setCreatedBy(userId);
+        mcsGameDTO.setUpdatedBy(userId);
+        return communityService.addMcsGame(mcsGameDTO);
+    }
+
+    @ApiOperation(value = "编辑戳戳游戏")
+    @PutMapping("/game/put")
+    public R putMcsGame(@RequestBody @Validated(PutGroup.class) McsGameDTO mcsGameDTO) {
+        mcsGameDTO.setUpdatedBy(this.getUserId());
+        return communityService.putMcsGame(mcsGameDTO);
+    }
+
+    @ApiOperation(value = "发布戳戳游戏")
+    @CheckMcsMerchantExpiration
+    @ApiImplicitParam(name = "gameId", value = "游戏id", required = true)
+    @GetMapping("/game/publish")
+    public R publishMcsGame(@RequestParam("gameId") Long gameId) {
+        return communityService.publishMcsGame(gameId, this.getUserId());
+    }
+
+    @ApiOperation(value = "结束戳戳游戏")
+    @ApiImplicitParam(name = "gameId", value = "游戏id", required = true)
+    @GetMapping("/game/finish")
+    public R finishMcsGame(@RequestParam("gameId") Long gameId) {
+        return communityService.finishMcsGame(gameId, this.getUserId());
+    }
+
+    @ApiOperation(value = "商家分页查询戳戳游戏", response = McsGameVO.class)
+    @PostMapping("/game/page")
+    public R pageMcsGame(@RequestBody @Valid PageMcsGameDTO pageMcsGameDTO) {
+        pageMcsGameDTO.setUserId(this.getUserId());
+        return communityService.pageMcsGame(pageMcsGameDTO);
+    }
+
+    @ApiOperation(value = "上架/下架戳戳游戏")
+    @CheckMcsMerchantExpiration
+    @PutMapping("/game/setShelf")
+    public R setShelfForGame(@RequestBody @Valid SetShelfForGameDTO setShelfForGameDTO) {
+        setShelfForGameDTO.setUpdatedBy(this.getUserId());
+        return communityService.setShelfForGame(setShelfForGameDTO);
+    }
+
+    @ApiOperation(value = "删除戳戳游戏")
+    @ApiImplicitParam(name = "gameId", value = "游戏id", required = true)
+    @DeleteMapping("/game/delete")
+    public R deleteMcsGame(@RequestParam("gameId") Long gameId) {
+        return communityService.deleteMcsGame(gameId, this.getUserId());
+    }
+
+    @ApiOperation(value = "戳戳游戏/资讯顶部统计数据", response = TopStatisticsVO.class)
+    @ApiImplicitParam(name = "type", value = "类型(1.戳戳游戏 2.戳戳资讯)", required = true)
+    @GetMapping("/statistics/top")
+    public R getTopStatistics(@RequestParam("type") Integer type) {
+        return communityService.getTopStatistics(type, this.getUserId());
+    }
+
+    @ApiOperation(value = "新增戳戳资讯")
+    @PostMapping("/information/add")
+    public R addMcsInfo(@RequestBody @Validated(AddGroup.class) McsInfoDTO mcsInfoDTO) {
+        Long userId = this.getUserId();
+        mcsInfoDTO.setCreatedBy(userId);
+        mcsInfoDTO.setUpdatedBy(userId);
+        return communityService.addMcsInfo(mcsInfoDTO);
+    }
+
+    @ApiOperation(value = "编辑戳戳资讯")
+    @PutMapping("/information/put")
+    public R putMcsInfo(@RequestBody @Validated(PutGroup.class) McsInfoDTO mcsInfoDTO) {
+        mcsInfoDTO.setUpdatedBy(this.getUserId());
+        return communityService.putMcsInfo(mcsInfoDTO);
+    }
+
+    @ApiOperation(value = "发布戳戳资讯")
+    @ApiImplicitParam(name = "infoId", value = "资讯id", required = true)
+    @CheckMcsMerchantExpiration
+    @GetMapping("/information/publish")
+    public R publishMcsInfo(@RequestParam("infoId") Long infoId) {
+        return communityService.publishMcsInfo(infoId, this.getUserId());
+    }
+
+    @ApiOperation(value = "商家分页查询戳戳资讯", response = McsInformationVO.class)
+    @PostMapping("/information/page")
+    public R pageMcsInfo(@RequestBody @Valid PageMcsInformationDTO pageMcsInformationDTO) {
+        pageMcsInformationDTO.setUserId(this.getUserId());
+        return communityService.pageMcsInfo(pageMcsInformationDTO);
+    }
+
+    @ApiOperation(value = "上架/下架戳戳资讯")
+    @CheckMcsMerchantExpiration
+    @PutMapping("/information/setShelf")
+    public R setShelfForMcsInfo(@RequestBody @Valid SetShelfForInfoDTO setShelfForInfoDTO) {
+        setShelfForInfoDTO.setUpdatedBy(this.getUserId());
+        return communityService.setShelfForMcsInfo(setShelfForInfoDTO);
+    }
+
+    @ApiOperation(value = "删除戳戳资讯")
+    @ApiImplicitParam(name = "infoId", value = "资讯id", required = true)
+    @DeleteMapping("/information/delete")
+    public R deleteMcsInfo(@RequestParam("infoId") Long infoId) {
+        return communityService.deleteMcsInfo(infoId, this.getUserId());
+    }
+
+    @ApiOperation(value = "编辑数字商业街商家")
+    @PutMapping("/merchant/put")
+    public R putMcsMerchant(@RequestBody @Validated(PutGroup.class) McsMerchantDTO mcsMerchantDTO) {
+        mcsMerchantDTO.setUpdatedBy(this.getUserId());
+        return communityService.putMcsMerchant(mcsMerchantDTO);
+    }
+
+    @ApiOperation(value = "查询数字商业街商家详情", response = McsMerchantVO.class)
+    @ApiImplicitParam(name = "merchantId", value = "商家id", required = true)
+    @GetMapping("/merchant/get")
+    public R getMcsMerchant(@RequestParam("merchantId") Long merchantId) {
+        return communityService.getMcsMerchant(merchantId);
+    }
+
+    @ApiOperation(value = "新增产品信息")
+    @PostMapping("/product/add")
+    public R addMcsProduct(@RequestBody @Validated(AddGroup.class) McsProductDTO mcsProductDTO) {
+        Long userId = this.getUserId();
+        mcsProductDTO.setCreatedBy(userId);
+        mcsProductDTO.setUpdatedBy(userId);
+        return communityService.addMcsProduct(mcsProductDTO);
+    }
+
+    @ApiOperation(value = "编辑产品信息")
+    @PutMapping("/product/put")
+    public R putMcsProduct(@RequestBody @Validated(PutGroup.class) McsProductDTO mcsProductDTO) {
+        mcsProductDTO.setUpdatedBy(this.getUserId());
+        return communityService.putMcsProduct(mcsProductDTO);
+    }
+
+    @ApiOperation(value = "删除产品信息")
+    @PostMapping("/product/delete")
+    public R deleteMcsProduct(@RequestBody @Valid DeleteProductDTO deleteProductDTO) {
+        deleteProductDTO.setUpdatedBy(this.getUserId());
+        return communityService.deleteMcsProduct(deleteProductDTO);
+    }
+
+    @ApiOperation(value = "获取产品信息详情")
+    @ApiImplicitParam(name = "productId", value = "产品id", required = true)
+    @GetMapping("/product/get")
+    public R getMcsProduct(@RequestParam("productId") Long productId) {
+        return communityService.getMcsProduct(productId);
+    }
+
+    @ApiOperation(value = "上架/下架产品信息")
+    @CheckMcsMerchantExpiration
+    @PutMapping("/product/setShelf")
+    public R setShelfForMcsProduct(@RequestBody @Valid SetShelfForProductDTO setShelfForProductDTO) {
+        setShelfForProductDTO.setUpdatedBy(this.getUserId());
+        return communityService.setShelfForMcsProduct(setShelfForProductDTO);
+    }
+
+    @ApiOperation(value = "分页查询产品信息", response = McsProductVO.class)
+    @PostMapping("/product/page")
+    public R pageMcsProduct(@RequestBody @Valid PageMcsProductDTO pageMcsProductDTO) {
+        pageMcsProductDTO.setUserId(this.getUserId());
+        return communityService.pageMcsProduct(pageMcsProductDTO);
+    }
+
+    @ApiOperation(value = "获取产品标签列表", response = McsLabelVO.class)
+    @GetMapping("/label/list")
+    public R getMcsLabelList() {
+        return communityService.getMcsLabelList(this.getUserId());
+    }
+
+    @ApiOperation(value = "首页顶部数据", response = IndexTopStatisticsVO.class)
+    @GetMapping("/index/topData")
+    public R getMcsIndexTopData() {
+        return communityService.getMcsIndexTopData();
+    }
+
+    @ApiOperation(value = "戳戳卷领取", response = McsCouponVO.class)
+    @ApiImplicitParam(name = "gameId", value = "戳戳游戏id", required = true)
+    @GetMapping("/coupon/apply")
+    public R applyMcsCoupon(@RequestParam("gameId") Long gameId) {
+        Long userId = this.getUserId();
+        R r = communityService.retrieveMcsMerchantInfoByUserId(userId);
+        if (R.isOk(r) && nonNull(r.getData())) {
+            return R.fail("商家不能参与活动");
+        }
+        return communityService.applyMcsCoupon(gameId, userId);
+    }
+
+    @ApiOperation(value = "h5分页查询戳戳资讯", response = McsInformationVO.class)
+    @PostMapping("/information/pageH5")
+    public R pageH5McsInfo(@RequestBody @Valid PageMcsInformationDTO pageMcsInformationDTO) {
+        return communityService.pageH5McsInfo(pageMcsInformationDTO);
+    }
+
+    @ApiOperation(value = "h5分页查询戳戳游戏", response = McsGameVO.class)
+    @PostMapping("/game/pageH5")
+    public R pageH5McsGame(@RequestBody @Valid PageMcsGameDTO pageMcsGameDTO) {
+        return communityService.pageH5McsGame(pageMcsGameDTO);
+    }
+
+    @ApiOperation(value = "游戏详情", response = McsGameVO.class)
+    @ApiImplicitParam(name = "gameId", value = "游戏id", required = true)
+    @GetMapping("/game/get")
+    public R getMcsGame(@RequestParam("gameId") Long gameId) {
+        return communityService.getMcsGame(gameId);
+    }
+
+    @ApiOperation(value = "资讯详情", response = McsInformationVO.class)
+    @ApiImplicitParam(name = "infoId", value = "资讯id", required = true)
+    @GetMapping("/info/get")
+    public R getMcsInfo(@RequestParam("infoId") Long infoId) {
+        return communityService.getMcsInfo(infoId);
+    }
+
+    @ApiOperation(value = "H5分页查询数字商业街商家", response = McsMerchantVO.class)
+    @PostMapping("/merchant/pageH5")
+    public R pageH5McsMerchant(@RequestBody @Valid PageMcsMerchantDTO pageMcsMerchantDTO) {
+        return communityService.pageH5McsMerchant(pageMcsMerchantDTO);
+    }
+
+    @ApiOperation(value = "我的戳戳卷", response = MyCouponVO.class)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "type", value = "类型(1.戳戳币 2.免费体验)")
+    })
+    @GetMapping("/myCoupon")
+    public R getMyCoupon(@RequestParam(value = "type", required = false) Integer type) {
+        return communityService.getMyCoupon(type, this.getUserId());
+    }
+
+    @ApiOperation(value = "我的评价-参与游戏列表", response = McsCouponVO.class)
+    @PostMapping("/joinGame/page")
+    public R getJoinGameList(@RequestBody @Valid PageJoinGameListDTO pageJoinGameListDTO) {
+        pageJoinGameListDTO.setUserId(this.getUserId());
+        return communityService.getJoinGameList(pageJoinGameListDTO);
+    }
+
+    @ApiOperation(value = "获取所有数字商业街配置", response = McsConfigVO.class)
+    @GetMapping("/config/all")
+    public R getAllMcsConfig() {
+        return communityService.getAllMcsConfig();
+    }
+
+    @ApiOperation(value = "新增评价记录")
+    @PostMapping("/evaluate/add")
+    public R addMcsEvaluate(@RequestBody @Validated(AddGroup.class) McsEvaluateDTO mcsEvaluateDTO) {
+        mcsEvaluateDTO.setUserId(this.getUserId());
+        return communityService.addMcsEvaluate(mcsEvaluateDTO);
+    }
+
+    @ApiOperation(value = "戳戳卷核销", response = VerifiedReturnVO.class)
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "couponId", value = "戳戳卷id", required = true)
+    })
+    @CheckMcsMerchantExpiration
+    @GetMapping("/coupon/verify")
+    public R verifyMcsCoupon(@RequestParam("couponId") Long couponId) {
+        return communityService.verifyMcsCoupon(couponId, this.getUserId());
+    }
+
+    @ApiOperation(value = "分页查询核销记录", response = McsVerifyRecordVO.class)
+    @PostMapping("/verifyRecord/page")
+    public R pageMcsVerifyRecord(@RequestBody @Valid PageVerifyRecordDTO pageVerifyRecordDTO) {
+        pageVerifyRecordDTO.setUserId(this.getUserId());
+        return communityService.pageMcsVerifyRecord(pageVerifyRecordDTO);
+    }
+
+    @ApiOperation(value = "游戏统计", response = GameStatisticsVO.class)
+    @GetMapping("/game/statistics")
+    public R getMcsGameStatistics() {
+        return communityService.getMcsGameStatistics(this.getUserId());
+    }
+
+
+    @ApiOperation(value = "分页查询评价记录", response = McsEvaluateVO.class)
+    @PostMapping("/evaluate/page")
+    public R pageMcsEvaluate(@RequestBody @Valid PageMcsEvaluateDTO pageMcsEvaluateDTO) {
+        pageMcsEvaluateDTO.setUserId(this.getUserId());
+        return communityService.pageMcsEvaluate(pageMcsEvaluateDTO);
+    }
+
+    @ApiOperation(value = "查询评价记录详情", response = McsEvaluateVO.class)
+    @ApiImplicitParam(name = "evaluateId", value = "评论id", required = true)
+    @GetMapping("/evaluate/get")
+    public R getMcsEvaluate(@RequestParam("evaluateId") Long evaluateId) {
+        return communityService.getMcsEvaluate(evaluateId);
+    }
+
+    @ApiOperation(value = "删除评价记录")
+    @ApiImplicitParam(name = "evaluateId", value = "评论id", required = true)
+    @DeleteMapping("/evaluate/delete")
+    public R deleteMcsEvaluate(@RequestParam("evaluateId") Long evaluateId) {
+        return communityService.deleteMcsEvaluate(evaluateId);
+    }
+
+    @ApiOperation(value = "testTimeJob")
+    @GetMapping("/testTimeJob")
+    public R testTimeJob() {
+        return communityService.offResourceForMcsMerchant();
+    }
+
+    private Boolean assertPhoneIsValid(String phone) {
+        String regexp = "^(13[0-9]|14[01456879]|15[0-3,5-9]|16[2567]|17[0-8]|18[0-9]|19[0-3,5-9])\\d{8}$";
+        return Pattern.matches(regexp, phone);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/api/OrderApi.java b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/api/OrderApi.java
new file mode 100644
index 0000000..8f63ec3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/api/OrderApi.java
@@ -0,0 +1,206 @@
+package com.panzhihua.shop_backstage.api;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
+import java.net.URLEncoder;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+import java.util.UUID;
+
+import javax.annotation.Resource;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.metadata.WriteSheet;
+import com.alibaba.excel.write.metadata.style.WriteCellStyle;
+import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
+import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.controller.BaseController;
+import com.panzhihua.common.interfaces.ShopOperLog;
+import com.panzhihua.common.model.dtos.shop.*;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.shop.ComShopOrderPageVO;
+import com.panzhihua.common.model.vos.shop.ComShopOrderSearchVO;
+import com.panzhihua.common.model.vos.shop.ShopStoreVO;
+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;
+
+/**
+ * @ClasssName GoodsApi 商品API
+ * @Description
+ * @Author cedoo
+ * @Date 2021/4/16
+ * @Version 1.0
+ **/
+
+@Slf4j
+@RestController
+@RequestMapping("/order")
+@Api(tags = {"订单管理"})
+public class OrderApi extends BaseController {
+
+    @Resource
+    private CommunityService communityService;
+
+    @Value("${excel.userurl}")
+    private String excelUrl;
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+
+    @ApiOperation(value = "订单分页", response = ComShopOrderSearchVO.class)
+    @PostMapping("")
+    public R page(@RequestBody @Validated PageComShopOrderSearchDTO pageComShopOrderSearchDTO) {
+        ClazzUtils.setIfStringIsEmpty(pageComShopOrderSearchDTO);
+        pageComShopOrderSearchDTO.setStoreUserId(this.getUserId());
+        return communityService.pageShopOrder(pageComShopOrderSearchDTO);
+    }
+
+    @ApiOperation(value = "取消订单")
+    @PutMapping("/cancel")
+    @ShopOperLog(operType = 8)
+    public R cancel(@RequestBody ComShopOrderQueryDTO comShopOrderQueryDTO) {
+        comShopOrderQueryDTO.setOperUserAccount(getLoginUserInfo().getAccount());
+        comShopOrderQueryDTO.setIsAdmin(true);
+        return communityService.orderCancel(comShopOrderQueryDTO);
+    }
+
+    @ApiOperation(value = "发货")
+    @PutMapping("/ship")
+    @ShopOperLog(operType = 9)
+    public R ship(@RequestBody ComShopOrderShipDTO orderShipDTO) {
+        orderShipDTO.setOperUserAccount(getLoginUserInfo().getAccount());
+        orderShipDTO.setIsAdmin(false);
+        return communityService.shipOrder(orderShipDTO);
+    }
+
+    @ApiOperation(value = "配送")
+    @PutMapping("/startDeliver")
+    @ShopOperLog(operType = 10)
+    public R deliver(@RequestBody ComShopOrderDeliverDTO deliverDTO) {
+        deliverDTO.setOperUserAccount(getLoginUserInfo().getAccount());
+        deliverDTO.setIsAdmin(false);
+        return communityService.deliverOrder(deliverDTO);
+    }
+
+    @ApiOperation(value = "配送完成")
+    @PutMapping("/finishDeliver")
+    public R finishDeliver(@RequestBody ComShopOrderDeliverDTO deliverDTO) {
+        deliverDTO.setOperUserAccount(getLoginUserInfo().getAccount());
+        deliverDTO.setIsAdmin(false);
+        return communityService.finishDeliverOrder(deliverDTO);
+    }
+
+    @ApiOperation(value = "订单详细", response = ComShopOrderPageVO.class)
+    @GetMapping("/detail")
+    @ShopOperLog(operType = 11)
+    public R detail(@RequestParam("orderId") Long orderId) {
+        return communityService.orderDetail(orderId);
+    }
+
+    @ApiOperation(value = "导出表格")
+    @PostMapping("/export")
+    @ShopOperLog(operType = 12)
+    public R export(@RequestBody ComShopOrderExportDTO comShopOrderExportDTO) {
+        ClazzUtils.setIfStringIsEmpty(comShopOrderExportDTO);
+        comShopOrderExportDTO.setStoreUserId(getUserId());
+        String url = excelUrl;
+        String uuid = UUID.randomUUID().toString().replace("-", "");
+        // String name=uuid+".xlsx";
+        String ftpUrl = "/mnt/data/web/excel/";
+
+        R<ShopStoreVO> storeR = communityService.getUserStoreInfo(getUserId());
+
+        if (!R.isOk(storeR)) {
+            return R.fail("用户不是商家");
+        }
+
+        ShopStoreVO shopStoreVO = JSONObject.parseObject(JSONObject.toJSONString(storeR.getData()), ShopStoreVO.class);
+        Long userId = this.getUserId();
+        comShopOrderExportDTO.setStoreUserId(userId);
+        R r = communityService.shopOrderExportData(comShopOrderExportDTO);
+        if (R.isOk(r)) {
+            List<ExcelShopOrderDTO> excelShopOrderDTO =
+                JSONArray.parseArray(JSONArray.toJSONString(r.getData()), ExcelShopOrderDTO.class);
+            if (excelShopOrderDTO == null || excelShopOrderDTO.size() == 0) {
+                return R.ok("未找到数据");
+            }
+            try {
+                SFTPUtil sftp = new SFTPUtil(userName, password, host, port);
+                sftp.login();
+                String name = shopStoreVO.getName() + "商城订单-"
+                    + new SimpleDateFormat("yyyyMMddhhmmss").format(new Date()) + ".xlsx";
+                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 {
+
+                        WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
+
+                        contentWriteCellStyle.setWrapped(true);
+                        WriteCellStyle headWriteCellStyle = new WriteCellStyle();
+
+                        HorizontalCellStyleStrategy horizontalCellStyleStrategy =
+                            new HorizontalCellStyleStrategy(headWriteCellStyle, contentWriteCellStyle);
+
+                        excelWriter = EasyExcel.write(fileName, ExcelShopOrderDTO.class)
+                            .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
+                            .registerWriteHandler(horizontalCellStyleStrategy).build();
+                        WriteSheet writeSheet = EasyExcel.writerSheet(shopStoreVO.getName() + "订单").build();
+                        excelWriter.write(excelShopOrderDTO, 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(url + URLEncoder.encode(name, "UTF-8"));
+            } catch (Exception e) {
+                e.printStackTrace();
+                log.error("文件传输失败【{}】", e.getMessage());
+                return R.fail();
+            }
+        }
+        return R.fail("导出数据失败");
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/config/AuthConfig.java b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/config/AuthConfig.java
new file mode 100644
index 0000000..a2e903e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/config/AuthConfig.java
@@ -0,0 +1,25 @@
+package com.panzhihua.shop_backstage.config;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+/**
+ * 读取项目相关配置
+ * 
+ * @author huanghongfa
+ */
+@Data
+@Component
+@ConfigurationProperties(prefix = "auth")
+public class AuthConfig {
+    /** 上传路径 */
+    public static String profile;
+    /** 获取地址开关 */
+    public static boolean addressEnabled;
+    /** 项目名称 */
+    public String name;
+    /** 版本 */
+    public String version;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/config/KaptchaConfig.java b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/config/KaptchaConfig.java
new file mode 100644
index 0000000..92e697a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/config/KaptchaConfig.java
@@ -0,0 +1,45 @@
+package com.panzhihua.shop_backstage.config;
+
+import com.google.code.kaptcha.Constants;
+import com.google.code.kaptcha.impl.DefaultKaptcha;
+import com.google.code.kaptcha.util.Config;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.Properties;
+
+/**
+ * @author zzj
+ */
+@Configuration
+public class KaptchaConfig {
+    /**
+     * 验证码配置
+     * @return
+     */
+    @Bean
+    public DefaultKaptcha getDefaultKaptcha(){
+        DefaultKaptcha defaultKaptcha=new DefaultKaptcha();
+        Properties properties=new Properties();
+        //是否有边框
+        properties.setProperty(Constants.KAPTCHA_BORDER,"yes");
+        //验证码文本颜色
+        properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_FONT_COLOR,"red");
+        //验证码图片宽度
+        properties.setProperty(Constants.KAPTCHA_IMAGE_WIDTH,"180");
+        //验证码图片高度
+        properties.setProperty(Constants.KAPTCHA_IMAGE_HEIGHT,"80");
+        //文本字符大小
+        properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_FONT_SIZE,"39");
+        //验证码session的值
+        properties.setProperty(Constants.KAPTCHA_SESSION_CONFIG_KEY,"kaptchaCode");
+        //验证码文本长度
+        properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_CHAR_LENGTH,"4");
+        //字体
+        properties.setProperty(Constants.KAPTCHA_TEXTPRODUCER_FONT_NAMES, "宋体,楷体,微软雅黑");
+
+        Config config=new Config(properties);
+        defaultKaptcha.setConfig(config);
+        return defaultKaptcha;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/config/MyAESUtil.java b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/config/MyAESUtil.java
new file mode 100644
index 0000000..3a9a359
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/config/MyAESUtil.java
@@ -0,0 +1,52 @@
+package com.panzhihua.shop_backstage.config;
+
+import sun.misc.BASE64Decoder;
+import sun.misc.BASE64Encoder;
+
+import javax.crypto.Cipher;
+import javax.crypto.spec.SecretKeySpec;
+
+public class MyAESUtil {
+
+    // 加密
+    public static String Encrypt(String sSrc, String sKey) throws Exception {
+        if (sKey == null) {
+            System.out.print("Key为空null");
+            return null;
+        }
+        // 判断Key是否为16位
+        if (sKey.length() != 16) {
+            System.out.print("Key长度不是16位");
+            return null;
+        }
+        byte[] raw = sKey.getBytes("utf-8");
+        SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
+        Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");//"算法/模式/补码方式"
+        cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
+        byte[] encrypted = cipher.doFinal(sSrc.getBytes("utf-8"));
+        return new BASE64Encoder().encode(encrypted);//此处使用BASE64做转码功能,同时能起到2次加密的作用。
+    }
+
+    // 解密
+    public static String Decrypt(String sSrc, String sKey) throws Exception {
+        try {
+
+            byte[] raw = sKey.getBytes("utf-8");
+            SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
+            Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");
+            cipher.init(Cipher.DECRYPT_MODE, skeySpec);
+            byte[] encrypted1 = new BASE64Decoder().decodeBuffer(sSrc);//先用base64解密
+            try {
+                byte[] original = cipher.doFinal(encrypted1);
+                String originalString = new String(original,"utf-8");
+                return originalString;
+            } catch (Exception e) {
+                System.out.println(e.toString());
+                return null;
+            }
+        } catch (Exception ex) {
+            System.out.println(ex.toString());
+            return null;
+        }
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/config/SFTPConfig.java b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/config/SFTPConfig.java
new file mode 100644
index 0000000..304ba65
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/config/SFTPConfig.java
@@ -0,0 +1,31 @@
+package com.panzhihua.shop_backstage.config;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Configuration;
+
+import lombok.Data;
+
+/**
+ * @Author: llming
+ * @Description:
+ */
+@Configuration
+@Data
+public class SFTPConfig {
+    // FTP 登录用户名
+    @Value("${ftp.username}")
+    private String userName;
+    // FTP 登录密码
+    @Value("${ftp.password}")
+    private String password;
+    // FTP 服务器地址IP地址
+    @Value("${ftp.host}")
+    private String host;
+    // FTP 端口
+    @Value("${ftp.port}")
+    private int port;
+    @Value("${ftp.url}")
+    private String url;
+    @Value("${excel.userurl}")
+    private String excelUrl;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/config/SwaggerConfig.java b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/config/SwaggerConfig.java
new file mode 100644
index 0000000..6a07c72
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/config/SwaggerConfig.java
@@ -0,0 +1,33 @@
+package com.panzhihua.shop_backstage.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.builders.RequestHandlerSelectors;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.service.Contact;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: swagger3
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-19 16:08
+ **/
+@Configuration
+public class SwaggerConfig {
+    @Bean
+    public Docket createRestApi() {
+        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()
+            .apis(RequestHandlerSelectors.basePackage("com.panzhihua.shop_backstage")).paths(PathSelectors.any())
+            .build();
+    }
+
+    private ApiInfo apiInfo() {
+        return new ApiInfoBuilder().title("商家后台管理接口").description("。")
+            .contact(new Contact("Ray。", "http://www.ruiyeclub.cn", "ruiyeclub@foxmail.com")).version("1.0").build();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/config/WxH5Properties.java b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/config/WxH5Properties.java
new file mode 100644
index 0000000..ad3e213
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/config/WxH5Properties.java
@@ -0,0 +1,58 @@
+package com.panzhihua.shop_backstage.config;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 微信配置
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-23 14:52
+ **/
+@Data
+@Component
+@ConfigurationProperties(prefix = "wx.h5")
+public class WxH5Properties {
+
+    /**
+     * 设置微信小程序的appid
+     */
+    private String appid;
+
+    /**
+     * 设置微信小程序的Secret
+     */
+    private String secret;
+
+    /**
+     * 设置微信小程序消息服务器配置的token
+     */
+    private String token;
+
+    /**
+     * 设置微信小程序消息服务器配置的EncodingAESKey
+     */
+    private String aesKey;
+
+    /**
+     * 消息格式,XML或者JSON
+     */
+    private String msgDataFormat;
+
+    /**
+     * 商户号
+     */
+    private String mchId;
+
+    /**
+     * 微信支付密钥
+     */
+    private String payKey;
+
+    /**
+     * 微信支付回调地址
+     */
+    private String notifyUrl;
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/config/WxMaConfiguration.java b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/config/WxMaConfiguration.java
new file mode 100644
index 0000000..3d35c18
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/config/WxMaConfiguration.java
@@ -0,0 +1,69 @@
+package com.panzhihua.shop_backstage.config;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Component;
+
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.utlis.HttpUtils;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: wexin
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-23 15:07
+ **/
+@Slf4j
+@Component
+public class WxMaConfiguration {
+
+    private static final String OAUTH2_URL = "https://api.weixin.qq.com/sns/oauth2/access_token";
+
+    @Resource
+    private WxH5Properties wxH5Properties;
+
+    public String retrieveOpenId(String code) {
+        HashMap<String, String> params = new HashMap<>();
+        params.put("appid", wxH5Properties.getAppid());
+        params.put("secret", wxH5Properties.getSecret());
+        params.put("code", code);
+        params.put("grant_type", "authorization_code");
+        String result = HttpUtils.sendGet(OAUTH2_URL, createLinkStringByGet(params));
+        try {
+            JSONObject parseObject = JSONObject.parseObject(result);
+            if (parseObject.containsKey("openid")) {
+                String openid = parseObject.get("openid").toString();
+                log.info("网页授权获取到openId:【{}】", openid);
+                return openid;
+            }
+        } catch (Exception e) {
+            log.error("网页授权失败");
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    private static String createLinkStringByGet(Map<String, String> params) {
+        List<String> keys = new ArrayList<>(params.keySet());
+        Collections.sort(keys);
+        StringBuilder stringBuilder = new StringBuilder();
+        for (int i = 0; i < keys.size(); i++) {
+            String key = keys.get(i);
+            String value = params.get(key);
+            if (i == keys.size() - 1) {
+                stringBuilder.append(key).append("=").append(value);
+            } else {
+                stringBuilder.append(key).append("=").append(value).append("&");
+            }
+        }
+        return stringBuilder.toString();
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/filter/StoreValidFilter.java b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/filter/StoreValidFilter.java
new file mode 100644
index 0000000..3a78d80
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/filter/StoreValidFilter.java
@@ -0,0 +1,103 @@
+package com.panzhihua.shop_backstage.filter;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.Resource;
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import com.panzhihua.common.constants.HttpStatus;
+import com.panzhihua.common.utlis.ResultUtil;
+import org.springframework.stereotype.Component;
+import org.springframework.util.ObjectUtils;
+
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.constants.Constants;
+import com.panzhihua.common.constants.TokenConstant;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.convenient.ConvenientMerchantVO;
+import com.panzhihua.common.model.vos.shop.ShopStoreVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.utlis.AES;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @ClasssName StoreValidFilter
+ * @Description 商铺有效性过滤
+ * @Author cedoo
+ * @Date 2021/5/7
+ * @Version 1.0
+ **/
+@Slf4j
+@Component
+public class StoreValidFilter implements Filter {
+
+    @Resource
+    private CommunityService communityService;
+
+    @Override
+    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
+        throws IOException, ServletException {
+        HttpServletRequest request = (HttpServletRequest)servletRequest;
+        HttpServletResponse response = (HttpServletResponse)servletResponse;
+
+        String uri = request.getRequestURI();
+        boolean isDoc = uri.contains("doc.html") || uri.contains("-docs");
+        boolean isLogin = uri.contains("login");
+        boolean mcsGetCode = uri.contains("/microcommercialstreet/verifyCode") || uri.contains("/microcommercialstreet/bind/verifyCode");
+        boolean mcsBindPhone = uri.contains("/microcommercialstreet/bindPhone");
+        boolean wxNotify = uri.contains("/wxNotify");
+        boolean getConfig = uri.contains("/config/all");
+        boolean isUpload = uri.contains("upload");
+
+        List<String> noLoginUrl = new ArrayList<>();
+
+        noLoginUrl.add("/microcommercialstreet/merchant/get");
+        noLoginUrl.add("/microcommercialstreet/index/topData");
+        noLoginUrl.add("/microcommercialstreet/information/pageH5");
+        noLoginUrl.add("/microcommercialstreet/game/pageH5");
+        noLoginUrl.add("/microcommercialstreet/game/get");
+        noLoginUrl.add("/microcommercialstreet/info/get");
+        noLoginUrl.add("/microcommercialstreet/merchant/pageH5");
+
+        if (isDoc || isUpload || isLogin || mcsGetCode || wxNotify || mcsBindPhone || getConfig || noLoginUrl.contains(uri)) {
+            //放过swagger请求
+        } else {
+            String userInfo = request.getHeader(TokenConstant.TOKEN_USERINFO);
+            boolean empty = ObjectUtils.isEmpty(userInfo);
+            if (empty) {
+                log.error("获取登录用户信息失败【{}】", request);
+                ResultUtil.responseJson(response, R.fail(HttpStatus.UNAUTHORIZED, "token过期"));
+                return;
+            }
+            byte[] bytes = AES.parseHexStr2Byte(userInfo);
+            byte[] decrypt = AES.decrypt(bytes, Constants.AES_KEY);
+            userInfo = new String(decrypt);
+            LoginUserInfoVO loginUserInfoVO = JSONObject.parseObject(userInfo, LoginUserInfoVO.class);
+
+            R r = communityService.checkStoreIsValid(loginUserInfoVO.getUserId());
+            Boolean isValid = false;
+            if (R.isOk(r) && r.getData() != null) {
+                isValid = JSONObject.parseObject(JSONObject.toJSONString(r.getData()), Boolean.class);
+            }
+            if (!isValid) {
+                // 返回请求被拒绝响应
+                response.setContentType("application/json");
+                response.setCharacterEncoding("UTF-8");
+                response.getWriter().write(JSONObject.toJSONString(R.fail(403)));
+                response.flushBuffer();
+                return;
+            }
+        }
+        filterChain.doFilter(servletRequest, servletResponse);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/model/request/LoginRequest.java b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/model/request/LoginRequest.java
new file mode 100644
index 0000000..880468a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/model/request/LoginRequest.java
@@ -0,0 +1,36 @@
+package com.panzhihua.shop_backstage.model.request;
+
+import cn.binarywang.wx.miniapp.bean.WxMaUserInfo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 微信登录
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-23 14:12
+ **/
+@Data
+@ApiModel(value = "小程序登录")
+public class LoginRequest {
+
+    @ApiModelProperty(name = "code", value = "登录时获取的 code")
+    String code;
+
+    @ApiModelProperty(name = "signature", value = "使用 sha1( rawData + sessionkey ) 得到字符串,用于校验用户信息")
+    String signature;
+
+    @ApiModelProperty(name = "rawData", value = "不包括敏感信息的原始数据字符串,用于计算签名")
+    String rawData;
+
+    @ApiModelProperty(name = "encryptedData", value = "包括敏感数据在内的完整用户信息的加密数据")
+    String encryptedData;
+
+    @ApiModelProperty(name = "iv", value = "加密算法的初始向量")
+    String iv;
+
+    @ApiModelProperty(name = "userInfo", value = "用户基本信息")
+    WxMaUserInfo userInfo;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/model/vos/LoginBody.java b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/model/vos/LoginBody.java
new file mode 100644
index 0000000..6ad03cb
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/java/com/panzhihua/shop_backstage/model/vos/LoginBody.java
@@ -0,0 +1,30 @@
+package com.panzhihua.shop_backstage.model.vos;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 登录
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-24 10:54
+ **/
+@Data
+@ApiModel(value = "小程序后台登录")
+@AllArgsConstructor
+@NoArgsConstructor
+public class LoginBody {
+
+    @ApiModelProperty(value = "登录账户")
+    @NotBlank(message = "登录账户不能为空")
+    private String account;
+    @ApiModelProperty(value = "登录密码")
+    @NotBlank(message = "登录密码不能为空")
+    private String password;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/resources/bootstrap.yml b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..c16eb3d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/resources/bootstrap.yml
@@ -0,0 +1,35 @@
+spring:
+  application:
+    name: shopbackstage
+  cloud:
+    config:
+      discovery:
+        enabled: true
+        service-id: config  # 注册中心的服务名
+      profile: ${ENV:dev}  # 指定配置文件的环境
+      uri: http://${CONFIG_URL:localhost}:6193/
+  profiles:
+    active: ${ENV:dev}
+  servlet:
+    multipart:
+      max-file-size: 10MB
+      max-request-size: 10MB
+
+eureka:
+  client:
+    service-url:
+      defaultZone: http://${EUREKA_URL:localhost}:8192/eureka
+
+management:
+  endpoints:
+    web:
+      exposure:
+        include: '*'
+
+  endpoint:
+    health:
+      show-details: always
+
+  metrics:
+    tags:
+      application: shopbackstage
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/resources/logback-spring.xml b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..85fe4a7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/shop_backstage/src/main/resources/logback-spring.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration debug="false">
+    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
+    <springProfile name="dev">
+        <property name="LOG_HOME" value="F:/log" />
+    </springProfile>
+       <springProfile name="test">
+        <property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    </springProfile>
+<property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    <!-- 控制台输出 -->
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+    </appender>
+    <!-- 按照每天生成日志文件 -->
+    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!--日志文件输出的文件名-->
+            <FileNamePattern>${LOG_HOME}/shop_backstage.log.%d{yyyy-MM-dd}.log</FileNamePattern>
+            <!--日志文件保留天数-->
+            <MaxHistory>30</MaxHistory>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+        <!--日志文件最大的大小-->
+        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <MaxFileSize>10MB</MaxFileSize>
+        </triggeringPolicy>
+    </appender>
+
+    <!--myibatis log configure-->
+    <logger name="com.apache.ibatis" level="TRACE"/>
+    <logger name="java.sql.Connection" level="DEBUG"/>
+    <logger name="java.sql.Statement" level="DEBUG"/>
+    <logger name="java.sql.PreparedStatement" level="DEBUG"/>
+    <logger name="com.panzhihua.shop_backstage" level="DEBUG"/>
+
+    <!-- 日志输出级别 -->
+    <root level="DEBUG">
+        <appender-ref ref="STDOUT" />
+    </root>
+    <root level="INFO">
+        <appender-ref ref="STDOUT" />
+        <appender-ref ref="FILE" />
+    </root>
+</configuration>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/timejob/.gitignore b/springcloud_k8s_panzhihuazhihuishequ/timejob/.gitignore
new file mode 100644
index 0000000..549e00a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/timejob/.gitignore
@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
diff --git a/springcloud_k8s_panzhihuazhihuishequ/timejob/.mvn/wrapper/MavenWrapperDownloader.java b/springcloud_k8s_panzhihuazhihuishequ/timejob/.mvn/wrapper/MavenWrapperDownloader.java
new file mode 100644
index 0000000..a45eb6b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/timejob/.mvn/wrapper/MavenWrapperDownloader.java
@@ -0,0 +1,118 @@
+/*
+ * Copyright 2007-present the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.net.*;
+import java.io.*;
+import java.nio.channels.*;
+import java.util.Properties;
+
+public class MavenWrapperDownloader {
+
+    private static final String WRAPPER_VERSION = "0.5.6";
+    /**
+     * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
+     */
+    private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
+            + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
+
+    /**
+     * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
+     * use instead of the default one.
+     */
+    private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
+            ".mvn/wrapper/maven-wrapper.properties";
+
+    /**
+     * Path where the maven-wrapper.jar will be saved to.
+     */
+    private static final String MAVEN_WRAPPER_JAR_PATH =
+            ".mvn/wrapper/maven-wrapper.jar";
+
+    /**
+     * Name of the property which should be used to override the default download url for the wrapper.
+     */
+    private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
+
+    public static void main(String args[]) {
+        System.out.println("- Downloader started");
+        File baseDirectory = new File(args[0]);
+        System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
+
+        // If the maven-wrapper.properties exists, read it and check if it contains a custom
+        // wrapperUrl parameter.
+        File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
+        String url = DEFAULT_DOWNLOAD_URL;
+        if (mavenWrapperPropertyFile.exists()) {
+            FileInputStream mavenWrapperPropertyFileInputStream = null;
+            try {
+                mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
+                Properties mavenWrapperProperties = new Properties();
+                mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
+                url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
+            } catch (IOException e) {
+                System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
+            } finally {
+                try {
+                    if (mavenWrapperPropertyFileInputStream != null) {
+                        mavenWrapperPropertyFileInputStream.close();
+                    }
+                } catch (IOException e) {
+                    // Ignore ...
+                }
+            }
+        }
+        System.out.println("- Downloading from: " + url);
+
+        File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
+        if (!outputFile.getParentFile().exists()) {
+            if (!outputFile.getParentFile().mkdirs()) {
+                System.out.println(
+                        "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
+            }
+        }
+        System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
+        try {
+            downloadFileFromURL(url, outputFile);
+            System.out.println("Done");
+            System.exit(0);
+        } catch (Throwable e) {
+            System.out.println("- Error downloading");
+            e.printStackTrace();
+            System.exit(1);
+        }
+    }
+
+    private static void downloadFileFromURL(String urlString, File destination) throws Exception {
+        if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
+            String username = System.getenv("MVNW_USERNAME");
+            char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
+            Authenticator.setDefault(new Authenticator() {
+                @Override
+                protected PasswordAuthentication getPasswordAuthentication() {
+                    return new PasswordAuthentication(username, password);
+                }
+            });
+        }
+        URL website = new URL(urlString);
+        ReadableByteChannel rbc;
+        rbc = Channels.newChannel(website.openStream());
+        FileOutputStream fos = new FileOutputStream(destination);
+        fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
+        fos.close();
+        rbc.close();
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/timejob/.mvn/wrapper/maven-wrapper.jar b/springcloud_k8s_panzhihuazhihuishequ/timejob/.mvn/wrapper/maven-wrapper.jar
new file mode 100644
index 0000000..2cc7d4a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/timejob/.mvn/wrapper/maven-wrapper.jar
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/timejob/.mvn/wrapper/maven-wrapper.properties b/springcloud_k8s_panzhihuazhihuishequ/timejob/.mvn/wrapper/maven-wrapper.properties
new file mode 100644
index 0000000..642d572
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/timejob/.mvn/wrapper/maven-wrapper.properties
@@ -0,0 +1,2 @@
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip
+wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar
diff --git a/springcloud_k8s_panzhihuazhihuishequ/timejob/mvnw b/springcloud_k8s_panzhihuazhihuishequ/timejob/mvnw
new file mode 100644
index 0000000..a16b543
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/timejob/mvnw
@@ -0,0 +1,310 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#    https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Maven Start Up Batch script
+#
+# Required ENV vars:
+# ------------------
+#   JAVA_HOME - location of a JDK home dir
+#
+# Optional ENV vars
+# -----------------
+#   M2_HOME - location of maven2's installed home dir
+#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
+#     e.g. to debug Maven itself, use
+#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+# ----------------------------------------------------------------------------
+
+if [ -z "$MAVEN_SKIP_RC" ] ; then
+
+  if [ -f /etc/mavenrc ] ; then
+    . /etc/mavenrc
+  fi
+
+  if [ -f "$HOME/.mavenrc" ] ; then
+    . "$HOME/.mavenrc"
+  fi
+
+fi
+
+# OS specific support.  $var _must_ be set to either true or false.
+cygwin=false;
+darwin=false;
+mingw=false
+case "`uname`" in
+  CYGWIN*) cygwin=true ;;
+  MINGW*) mingw=true;;
+  Darwin*) darwin=true
+    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
+    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
+    if [ -z "$JAVA_HOME" ]; then
+      if [ -x "/usr/libexec/java_home" ]; then
+        export JAVA_HOME="`/usr/libexec/java_home`"
+      else
+        export JAVA_HOME="/Library/Java/Home"
+      fi
+    fi
+    ;;
+esac
+
+if [ -z "$JAVA_HOME" ] ; then
+  if [ -r /etc/gentoo-release ] ; then
+    JAVA_HOME=`java-config --jre-home`
+  fi
+fi
+
+if [ -z "$M2_HOME" ] ; then
+  ## resolve links - $0 may be a link to maven's home
+  PRG="$0"
+
+  # need this for relative symlinks
+  while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+      PRG="$link"
+    else
+      PRG="`dirname "$PRG"`/$link"
+    fi
+  done
+
+  saveddir=`pwd`
+
+  M2_HOME=`dirname "$PRG"`/..
+
+  # make it fully qualified
+  M2_HOME=`cd "$M2_HOME" && pwd`
+
+  cd "$saveddir"
+  # echo Using m2 at $M2_HOME
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --unix "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+fi
+
+# For Mingw, ensure paths are in UNIX format before anything is touched
+if $mingw ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME="`(cd "$M2_HOME"; pwd)`"
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
+fi
+
+if [ -z "$JAVA_HOME" ]; then
+  javaExecutable="`which javac`"
+  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
+    # readlink(1) is not available as standard on Solaris 10.
+    readLink=`which readlink`
+    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
+      if $darwin ; then
+        javaHome="`dirname \"$javaExecutable\"`"
+        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
+      else
+        javaExecutable="`readlink -f \"$javaExecutable\"`"
+      fi
+      javaHome="`dirname \"$javaExecutable\"`"
+      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
+      JAVA_HOME="$javaHome"
+      export JAVA_HOME
+    fi
+  fi
+fi
+
+if [ -z "$JAVACMD" ] ; then
+  if [ -n "$JAVA_HOME"  ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+      # IBM's JDK on AIX uses strange locations for the executables
+      JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+      JAVACMD="$JAVA_HOME/bin/java"
+    fi
+  else
+    JAVACMD="`which java`"
+  fi
+fi
+
+if [ ! -x "$JAVACMD" ] ; then
+  echo "Error: JAVA_HOME is not defined correctly." >&2
+  echo "  We cannot execute $JAVACMD" >&2
+  exit 1
+fi
+
+if [ -z "$JAVA_HOME" ] ; then
+  echo "Warning: JAVA_HOME environment variable is not set."
+fi
+
+CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
+
+# traverses directory structure from process work directory to filesystem root
+# first directory with .mvn subdirectory is considered project base directory
+find_maven_basedir() {
+
+  if [ -z "$1" ]
+  then
+    echo "Path not specified to find_maven_basedir"
+    return 1
+  fi
+
+  basedir="$1"
+  wdir="$1"
+  while [ "$wdir" != '/' ] ; do
+    if [ -d "$wdir"/.mvn ] ; then
+      basedir=$wdir
+      break
+    fi
+    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
+    if [ -d "${wdir}" ]; then
+      wdir=`cd "$wdir/.."; pwd`
+    fi
+    # end of workaround
+  done
+  echo "${basedir}"
+}
+
+# concatenates all lines of a file
+concat_lines() {
+  if [ -f "$1" ]; then
+    echo "$(tr -s '\n' ' ' < "$1")"
+  fi
+}
+
+BASE_DIR=`find_maven_basedir "$(pwd)"`
+if [ -z "$BASE_DIR" ]; then
+  exit 1;
+fi
+
+##########################################################################################
+# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+# This allows using the maven wrapper in projects that prohibit checking in binary data.
+##########################################################################################
+if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Found .mvn/wrapper/maven-wrapper.jar"
+    fi
+else
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
+    fi
+    if [ -n "$MVNW_REPOURL" ]; then
+      jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    else
+      jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    fi
+    while IFS="=" read key value; do
+      case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
+      esac
+    done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Downloading from: $jarUrl"
+    fi
+    wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
+    if $cygwin; then
+      wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
+    fi
+
+    if command -v wget > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found wget ... using wget"
+        fi
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+            wget "$jarUrl" -O "$wrapperJarPath"
+        else
+            wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
+        fi
+    elif command -v curl > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found curl ... using curl"
+        fi
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+            curl -o "$wrapperJarPath" "$jarUrl" -f
+        else
+            curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
+        fi
+
+    else
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Falling back to using Java to download"
+        fi
+        javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
+        # For Cygwin, switch paths to Windows format before running javac
+        if $cygwin; then
+          javaClass=`cygpath --path --windows "$javaClass"`
+        fi
+        if [ -e "$javaClass" ]; then
+            if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Compiling MavenWrapperDownloader.java ..."
+                fi
+                # Compiling the Java class
+                ("$JAVA_HOME/bin/javac" "$javaClass")
+            fi
+            if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                # Running the downloader
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Running MavenWrapperDownloader.java ..."
+                fi
+                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
+            fi
+        fi
+    fi
+fi
+##########################################################################################
+# End of extension
+##########################################################################################
+
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
+if [ "$MVNW_VERBOSE" = true ]; then
+  echo $MAVEN_PROJECTBASEDIR
+fi
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --path --windows "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
+    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
+fi
+
+# Provide a "standardized" way to retrieve the CLI args that will
+# work with both Windows and non-Windows executions.
+MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
+export MAVEN_CMD_LINE_ARGS
+
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+exec "$JAVACMD" \
+  $MAVEN_OPTS \
+  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
+  "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
+  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/springcloud_k8s_panzhihuazhihuishequ/timejob/mvnw.cmd b/springcloud_k8s_panzhihuazhihuishequ/timejob/mvnw.cmd
new file mode 100644
index 0000000..c8d4337
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/timejob/mvnw.cmd
@@ -0,0 +1,182 @@
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements.  See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership.  The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License.  You may obtain a copy of the License at
+@REM
+@REM    https://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied.  See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Maven Start Up Batch script
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM M2_HOME - location of maven2's installed home dir
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
+@REM     e.g. to debug Maven itself, use
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+@REM ----------------------------------------------------------------------------
+
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
+@echo off
+@REM set title of command window
+title %0
+@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
+@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
+
+@REM set %HOME% to equivalent of $HOME
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
+
+@REM Execute a user defined script before this one
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
+if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
+:skipRcPre
+
+@setlocal
+
+set ERROR_CODE=0
+
+@REM To isolate internal variables from possible post scripts, we use another setlocal
+@setlocal
+
+@REM ==== START VALIDATION ====
+if not "%JAVA_HOME%" == "" goto OkJHome
+
+echo.
+echo Error: JAVA_HOME not found in your environment. >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:OkJHome
+if exist "%JAVA_HOME%\bin\java.exe" goto init
+
+echo.
+echo Error: JAVA_HOME is set to an invalid directory. >&2
+echo JAVA_HOME = "%JAVA_HOME%" >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+@REM ==== END VALIDATION ====
+
+:init
+
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
+@REM Fallback to current working directory if not found.
+
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
+
+set EXEC_DIR=%CD%
+set WDIR=%EXEC_DIR%
+:findBaseDir
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
+cd ..
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
+set WDIR=%CD%
+goto findBaseDir
+
+:baseDirFound
+set MAVEN_PROJECTBASEDIR=%WDIR%
+cd "%EXEC_DIR%"
+goto endDetectBaseDir
+
+:baseDirNotFound
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
+cd "%EXEC_DIR%"
+
+:endDetectBaseDir
+
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
+
+@setlocal EnableExtensions EnableDelayedExpansion
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
+
+:endReadAdditionalConfig
+
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+
+FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
+    IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
+)
+
+@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
+if exist %WRAPPER_JAR% (
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Found %WRAPPER_JAR%
+    )
+) else (
+    if not "%MVNW_REPOURL%" == "" (
+        SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    )
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Couldn't find %WRAPPER_JAR%, downloading it ...
+        echo Downloading from: %DOWNLOAD_URL%
+    )
+
+    powershell -Command "&{"^
+		"$webclient = new-object System.Net.WebClient;"^
+		"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
+		"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
+		"}"^
+		"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
+		"}"
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Finished downloading %WRAPPER_JAR%
+    )
+)
+@REM End of extension
+
+@REM Provide a "standardized" way to retrieve the CLI args that will
+@REM work with both Windows and non-Windows executions.
+set MAVEN_CMD_LINE_ARGS=%*
+
+%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
+if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
+:skipRcPost
+
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
+if "%MAVEN_BATCH_PAUSE%" == "on" pause
+
+if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
+
+exit /B %ERROR_CODE%
diff --git a/springcloud_k8s_panzhihuazhihuishequ/timejob/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/timejob/pom.xml
new file mode 100644
index 0000000..caf6dbe
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/timejob/pom.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.panzhihua</groupId>
+        <artifactId>zhihuishequ</artifactId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <groupId>com.panzhihua.timejob</groupId>
+    <artifactId>timejob</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>timejob</name>
+    <description>分布式任务调度</description>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-config</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+        <dependency>
+            <groupId>com.panzhihua</groupId>
+            <artifactId>common</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.netflix.hystrix</groupId>
+            <artifactId>hystrix-javanica</artifactId>
+        </dependency>
+        <!--xxjob-->
+        <!-- https://mvnrepository.com/artifact/com.githup.liuyanggithup/xxl-job-core -->
+        <!-- https://mvnrepository.com/artifact/com.xuxueli/xxl-job-core -->
+        <dependency>
+            <groupId>com.xuxueli</groupId>
+            <artifactId>xxl-job-core</artifactId>
+            <version>2.2.0</version>
+        </dependency>
+        <!--添加监控依赖包-->
+        <dependency>
+            <groupId>io.micrometer</groupId>
+            <artifactId>micrometer-registry-prometheus</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+    </dependencies>
+
+
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>2.5.0</version>
+                <configuration>
+                    <mainClass>com.panzhihua.timejob.TimejobApplication</mainClass>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>docker-maven-plugin</artifactId>
+                <version>1.2.0</version>
+                <configuration>
+                    <imageName>registry.cn-chengdu.aliyuncs.com/panzhihua/service-timejob:v1</imageName>
+                    <serverId></serverId>
+                    <baseImage>java</baseImage>
+                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
+                    <resources>
+                        <resource>
+                            <targetPath>/</targetPath>
+                            <directory>${project.build.directory}</directory>
+                            <include>${project.build.finalName}.jar</include>
+                        </resource>
+                    </resources>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+    <repositories>
+        <repository>
+            <id>spring-milestones</id>
+            <name>Spring Milestones</name>
+            <url>https://repo.spring.io/milestone</url>
+        </repository>
+    </repositories>
+
+</project>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/TimejobApplication.java b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/TimejobApplication.java
new file mode 100644
index 0000000..2aa1129
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/TimejobApplication.java
@@ -0,0 +1,21 @@
+package com.panzhihua.timejob;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.cloud.client.SpringCloudApplication;
+import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.ComponentScan;
+
+@SpringCloudApplication
+@EnableCircuitBreaker
+@EnableEurekaClient
+@EnableFeignClients(basePackages = {"com.panzhihua.common.service"})
+@ComponentScan({"com.panzhihua.timejob", "com.panzhihua.common"})
+public class TimejobApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(TimejobApplication.class, args);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/config/XxlJobConfig.java b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/config/XxlJobConfig.java
new file mode 100644
index 0000000..3d4fd9a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/config/XxlJobConfig.java
@@ -0,0 +1,71 @@
+package com.panzhihua.timejob.config;
+
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * xxl-job config
+ *
+ * @author xuxueli 2017-04-28
+ */
+@Slf4j
+@Configuration
+public class XxlJobConfig {
+
+    @Value("${xxl.job.admin.addresses}")
+    private String adminAddresses;
+
+    @Value("${xxl.job.accessToken}")
+    private String accessToken;
+
+    @Value("${xxl.job.executor.appname}")
+    private String appname;
+
+    @Value("${xxl.job.executor.address}")
+    private String address;
+
+    @Value("${xxl.job.executor.ip}")
+    private String ip;
+
+    @Value("${xxl.job.executor.port}")
+    private int port;
+
+    @Value("${xxl.job.executor.logpath}")
+    private String logPath;
+
+    @Value("${xxl.job.executor.logretentiondays}")
+    private int logRetentionDays;
+
+    @Bean
+    public XxlJobSpringExecutor xxlJobExecutor() {
+        log.info(">>>>>>>>>>> xxl-job config init.");
+        XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
+        xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
+        xxlJobSpringExecutor.setAppname(appname);
+        xxlJobSpringExecutor.setAddress(address);
+        xxlJobSpringExecutor.setIp(ip);
+        xxlJobSpringExecutor.setPort(port);
+        xxlJobSpringExecutor.setAccessToken(accessToken);
+        xxlJobSpringExecutor.setLogPath(logPath);
+        xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
+
+        return xxlJobSpringExecutor;
+    }
+
+    /**
+     * 针对多网卡、容器内部署等情况,可借助 "spring-cloud-commons" 提供的 "InetUtils" 组件灵活定制注册IP;
+     *
+     * 1、引入依赖: <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-commons</artifactId>
+     * <version>${version}</version> </dependency>
+     *
+     * 2、配置文件,或者容器启动变量 spring.cloud.inetutils.preferred-networks: 'xxx.xxx.xxx.'
+     *
+     * 3、获取IP String ip_ = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
+     */
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/BatteryJobHandler.java b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/BatteryJobHandler.java
new file mode 100644
index 0000000..da092ad
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/BatteryJobHandler.java
@@ -0,0 +1,30 @@
+package com.panzhihua.timejob.jobhandler;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.community.ComBatteryCommodityOrderFeign;
+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 BatteryJobHandler {
+
+    @Resource
+    private ComBatteryCommodityOrderFeign commodityOrderService;
+
+    @XxlJob("timedTaskSyncCloseOrderJobHandler")
+    public ReturnT<String> timedTaskSyncCloseOrderJobHandler(String param) throws Exception {
+        log.info("定时任务关闭5分钟未支付订单");
+        R r = commodityOrderService.syncCloseOrder();
+        log.info("执行结果【{}】", r.toString());
+        return ReturnT.SUCCESS;
+    }
+}
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
new file mode 100644
index 0000000..a6b44ac
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/CommunityJobHandler.java
@@ -0,0 +1,327 @@
+package com.panzhihua.timejob.jobhandler;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Component;
+import org.springframework.util.ObjectUtils;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.model.dtos.community.integral.admin.AddComActIntegralUserDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.ActivitySignVO;
+import com.panzhihua.common.model.vos.community.ComActActivityVO;
+import com.panzhihua.common.model.vos.community.integral.admin.ComActActivityPeopleVO;
+import com.panzhihua.common.model.vos.user.SysUserNoticeVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.user.UserService;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.handler.annotation.XxlJob;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 社区相关
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-14 16:09
+ **/
+@Slf4j
+@Component
+public class CommunityJobHandler {
+    @Resource
+    private CommunityService communityService;
+    @Resource
+    private UserService userService;
+
+    /**
+     * 定时任务刷新社区动态置顶状态
+     *
+     * @return 刷新个数
+     * @throws Exception
+     *             出现的异常
+     */
+    @XxlJob("test")
+    public ReturnT<String> test(String param) throws Exception {
+        log.info("定时测试");
+        log.info("执行结果1111【{}】", "sucess");
+        return ReturnT.SUCCESS;
+    }
+
+    /**
+     * 定时任务刷新社区动态置顶状态
+     * 
+     * @return 刷新个数
+     * @throws Exception
+     *             出现的异常
+     */
+    @XxlJob("timedTaskDynIstoppingJobHandler")
+    public ReturnT<String> timedTaskDynIstoppingJobHandler(String param) throws Exception {
+        log.info("定时任务刷新社区动态置顶状态");
+        R r = communityService.timedTaskDynIstopping();
+        log.info("执行结果【{}】", r.toString());
+        return ReturnT.SUCCESS;
+    }
+
+    /**
+     * 定时任务刷新社区动态发布状态
+     * 
+     * @return 刷新个数
+     * @throws Exception
+     *             出现的异常
+     */
+    @XxlJob("timedTaskDynStatusJobHandler")
+    public ReturnT<String> timedTaskDynStatusJobHandler(String param) throws Exception {
+        log.info("定时任务刷新社区动态发布状态");
+        R r = communityService.timedTaskDynStatus();
+        log.info("执行结果【{}】", r.toString());
+        return ReturnT.SUCCESS;
+    }
+
+    /**
+     * 定时任务取消社区活动
+     * 
+     * @return 刷新个数
+     * @throws Exception
+     *             出现的异常
+     */
+    @XxlJob("timedTaskActActivityJobHandler")
+    public ReturnT<String> timedTaskActActivityJobHandler(String param) throws Exception {
+        log.info("定时任务取消社区活动");
+        R r = communityService.timedTaskActActivity();
+        if (R.isOk(r)) {
+            Object data = r.getData();
+            if (!ObjectUtils.isEmpty(data)) {
+                List<ComActActivityVO> comActActivityVOS =
+                    JSONArray.parseArray(JSONArray.toJSONString(data), ComActActivityVO.class);
+                if (!ObjectUtils.isEmpty(comActActivityVOS)) {
+                    comActActivityVOS.forEach(comActActivityVO -> {
+                        List<ActivitySignVO> activitySignVOList = comActActivityVO.getActivitySignVOList();
+                        if (!ObjectUtils.isEmpty(activitySignVOList)) {
+                            activitySignVOList.forEach(activitySignVO -> {
+                                SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO();
+                                sysUserNoticeVO.setUserId(activitySignVO.getUserId());
+                                sysUserNoticeVO.setType(1);
+                                sysUserNoticeVO.setBusinessType(2);
+                                sysUserNoticeVO.setBusinessTitle(comActActivityVO.getActivityName());
+                                sysUserNoticeVO.setBusinessTime(new Date());
+                                sysUserNoticeVO.setBusinessId(comActActivityVO.getId());
+                                sysUserNoticeVO.setStatus(0);
+                                sysUserNoticeVO.setTitle("活动因故取消");
+                                sysUserNoticeVO.setBusinessContent("报名人数不足活动自动取消");
+                                sysUserNoticeVO.setBusinessStatus(1);
+                                sysUserNoticeVO
+                                    .setActivityType(activitySignVO.getSignIdentity().intValue() == 1 ? 1 : 2);
+                                R r2 = userService.addNotice(sysUserNoticeVO);
+                                if (R.isOk(r2)) {
+                                    log.info("新增社区活动取消通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+                                }
+                            });
+                        }
+                    });
+                }
+            }
+        }
+        log.info("执行结果【{}】", r.toString());
+        return ReturnT.SUCCESS;
+    }
+
+    /**
+     * 定时任务刷新社区活动的各个状态 除取消外
+     * 
+     * @return 刷新个数
+     * @throws Exception
+     *             出现的异常
+     */
+    @XxlJob("timedTaskActActivityAllJobHandler")
+    public ReturnT<String> timedTaskActActivityAllJobHandler(String param) throws Exception {
+        log.info("定时任务刷新社区活动的各个状态 除取消外");
+        R r = communityService.timedTaskActActivityAll();
+        if (R.isOk(r)) {
+            // 获取待结束的活动列表
+            List<Long> activityList = JSONArray.parseArray(JSONArray.toJSONString(r.getData()), Long.class);
+            if (!activityList.isEmpty()) {
+                log.info("社区活动结束时扣减未参与用户积分");
+                activityList.forEach(activityId -> {
+                    R r1 = communityService.getTaskActivityPeopleList(activityId);
+                    if (R.isOk(r1)) {
+                        List<ComActActivityPeopleVO> peopleList =
+                            JSONArray.parseArray(JSONArray.toJSONString(r1.getData()), ComActActivityPeopleVO.class);
+                        if (!peopleList.isEmpty()) {
+                            peopleList.forEach(people -> {
+                                AddComActIntegralUserDTO addComActIntegralUserDTO = new AddComActIntegralUserDTO();
+                                addComActIntegralUserDTO.setUserId(people.getUserId());
+                                addComActIntegralUserDTO.setIntegralType(AddComActIntegralUserDTO.integralType.qxhd);
+                                addComActIntegralUserDTO.setSignIdentity(people.getSignIdentity());
+                                addComActIntegralUserDTO.setCommunityId(people.getCommunityId());
+                                addComActIntegralUserDTO.setServiceId(activityId);
+                                communityService.addIntegralTradeAdmin(addComActIntegralUserDTO);
+                            });
+                        }
+                    }
+                });
+            }
+        }
+        log.info("执行结果【{}】", r.toString());
+        return ReturnT.SUCCESS;
+    }
+
+    /**
+     * 定时任务刷新社区活动的各个状态 除取消外
+     * 
+     * @return 刷新个数
+     * @throws Exception
+     *             出现的异常
+     */
+    @XxlJob("timedTaskActMicroWishAllJobHandler")
+    public ReturnT<String> timedTaskActMicroWishAllJobHandler(String param) throws Exception {
+        log.info("定时任务刷新微心愿 待自动确认的状态");
+        R r = communityService.timedTaskActMicroWishAll();
+        log.info("执行结果【{}】", r.toString());
+        return ReturnT.SUCCESS;
+    }
+
+    /**
+     * 定时任务检测即将开始的社区活动,并使用订阅消息通知用户
+     */
+    @XxlJob("timedTaskActivityNoticeJobHandler")
+    public ReturnT<String> timedTaskActivityNoticeJobHandler(String param) {
+        log.info("定时任务检测即将开始的社区活动,并使用订阅消息通知用户");
+        R r = communityService.timedTaskActivityNotice();
+        log.info("执行结果【{}】", r.toString());
+        return ReturnT.SUCCESS;
+    }
+
+    /**
+     * 定时任务检测待发布,调研中的问卷调查状态
+     */
+    @XxlJob("timedTaskQuestionnaireJobHandler")
+    public ReturnT<String> timedTaskQuestionnaireJobHandler(String param) {
+        log.info("定时任务检测待发布,调研中的问卷调查状态");
+        R r = communityService.timedTaskQuestionnaire();
+        log.info("执行结果【{}】", r.toString());
+        return ReturnT.SUCCESS;
+    }
+
+    /**
+     * 定时任务针对活动结束后7天还未评价的用户默认好评
+     */
+    @XxlJob("timedTaskActivityDefaultPraiseJobHandler")
+    public ReturnT<String> timedTaskActivityDefaultPraiseJobHandler(String param) throws Exception {
+        log.info("定时任务针对活动结束后7天还未评价的用户默认好评");
+        R r = communityService.timedTaskActivityDefaultPraise();
+        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.timedTaskElderAuthStatisticsJobHandler();
+        log.info("执行结果【{}】", r1.toString());
+        return ReturnT.SUCCESS;
+    }
+
+    @XxlJob("timedTaskEldersAuthJobMonthHandler")
+    public ReturnT<String> timedTaskEldersAuthJobMonthHandler(String param) throws Exception {
+        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;
+    }
+
+    /**
+     * 定时任务每隔半小时将商家浏览量和咨询量总值计入指定商家数据中
+     */
+    @XxlJob("timedTaskWriteDataToMerchantJobHandler")
+    public ReturnT<String> timedTaskWriteDataToMerchantJobHandler(String param) {
+        log.info("定时任务每隔半小时将商家浏览量和咨询量总值计入指定商家数据中");
+        R r = communityService.timedTaskWriteDataToMerchantJobHandler();
+        log.info("执行结果【{}】", r.toString());
+        return ReturnT.SUCCESS;
+    }
+
+    @XxlJob("timedTaskHouseJobHandler")
+    public ReturnT<String> timedTaskHouseJobHandler(String param) {
+        log.info("实有房屋定时任务修复数据");
+        R r = communityService.timedTaskHouseJobHandler();
+        log.info("执行结果【{}】", r.toString());
+        return ReturnT.SUCCESS;
+    }
+
+    /**
+     * 定时任务-每隔5分钟执行一次,将已到期的微商业街商家旗下所有的游戏/资讯全部下架
+     * @param param
+     * @return
+     */
+    @XxlJob("offResourceForMcsMerchantJobHandler")
+    public ReturnT<String> offResourceForMcsMerchantJobHandler(String param) {
+        log.info("定时任务将已到期的微商业街商家旗下所有的游戏/资讯全部下架");
+        R r = communityService.offResourceForMcsMerchant();
+        log.info("执行结果【{}】", r.toString());
+        return ReturnT.SUCCESS;
+    }
+
+    /**
+     * 定时任务-每隔5分钟执行一次,将已到期的微商业街游戏结束
+     * @param param
+     * @return
+     */
+    @XxlJob("endStatusForMcsGameJobHandler")
+    public ReturnT<String> endStatusForMcsGameJobHandler(String param) {
+        log.info("定时任务,将已到期的微商业街游戏结束");
+        R r = communityService.endStatusForMcsGame();
+        log.info("执行结果【{}】", r.toString());
+        return ReturnT.SUCCESS;
+    }
+
+    /**
+     * 定时任务针对服务结束后3天还未评价的用户默认好评
+     */
+    @XxlJob("timedTaskFmsServiceDefaultPraiseJobHandler")
+    public ReturnT<String> timedTaskFmsServiceDefaultPraiseJobHandler(String param) throws Exception {
+        log.info("定时任务针对服务结束后3天还未评价的用户默认好评");
+        R r = communityService.timedTaskFmsServiceDefaultPraise();
+        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/timejob/src/main/java/com/panzhihua/timejob/jobhandler/EasyPhotoActivityJobHandler.java b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/EasyPhotoActivityJobHandler.java
new file mode 100644
index 0000000..599621d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/EasyPhotoActivityJobHandler.java
@@ -0,0 +1,28 @@
+package com.panzhihua.timejob.jobhandler;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Component;
+
+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;
+
+@Slf4j
+@Component
+public class EasyPhotoActivityJobHandler {
+
+    @Resource
+    private CommunityService communityService;
+
+    @XxlJob("timedTaskEasyPhotoActivityJobHandler")
+    public ReturnT<String> timedTaskEasyPhotoActivityJobHandler(String param) throws Exception {
+        log.info("定时任务扫描随手拍活动是否开始,激活状态");
+        R r = communityService.timedTaskEasyPhotoActivity();
+        log.info("执行结果【{}】", r.toString());
+        return ReturnT.SUCCESS;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/GridMemberJobHandler.java b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/GridMemberJobHandler.java
new file mode 100644
index 0000000..85b9703
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/GridMemberJobHandler.java
@@ -0,0 +1,39 @@
+package com.panzhihua.timejob.jobhandler;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Component;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.grid.GridService;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.handler.annotation.XxlJob;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * 综治管理定时任务
+ */
+@Slf4j
+@Component
+public class GridMemberJobHandler {
+
+    @Resource
+    private GridService gridService;
+
+    @XxlJob("timedTaskGridMemberJobHandler")
+    public ReturnT<String> timedTaskGridMemberJobHandler(String param) throws Exception {
+        log.info("定时任务判断网格员是否在岗开始");
+        R r = gridService.timedTaskGridMember();
+        log.info("执行结果【{}】", r.toString());
+        return ReturnT.SUCCESS;
+    }
+
+    @XxlJob("timedTaskVisitingJobHandler")
+    public ReturnT<String> timedTaskVisitingJobHandler(String param) throws Exception {
+        log.info("定时任务给上月已走访人员创建走访任务");
+        R r = gridService.timedTaskVisitingJobHandler();
+        log.info("执行结果【{}】", r.toString());
+        return ReturnT.SUCCESS;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/JinhuiJobHandler.java b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/JinhuiJobHandler.java
new file mode 100644
index 0000000..46cbc8d
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/JinhuiJobHandler.java
@@ -0,0 +1,33 @@
+package com.panzhihua.timejob.jobhandler;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.jinhui.JinhuiCommunityService;
+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 JinhuiJobHandler {
+
+    @Resource
+    private JinhuiCommunityService communityService;
+
+
+    //定时任务  路北社区
+    @XxlJob("timedTaskJinhuiActivitiesJobHandler")
+    public ReturnT<String> timedTaskJinhuiActivitiesJobHandler(String param) throws Exception {
+        log.info("定时任务 每半小时检测一次路北社区 活动任务状态");
+        R r = communityService.timedTaskJinhuiActivitiesJobHandler();
+        log.info("执行结果【{}】", r.toString());
+        return ReturnT.SUCCESS;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/LBJobHandler.java b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/LBJobHandler.java
new file mode 100644
index 0000000..a86a938
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/LBJobHandler.java
@@ -0,0 +1,32 @@
+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 LBJobHandler {
+
+    @Resource
+    private CommunityService communityService;
+
+
+    //定时任务  路北社区
+    @XxlJob("timedTaskVolunteerActivitiesJobHandler")
+    public ReturnT<String> timedTaskVolunteerActivitiesJobHandler(String param) throws Exception {
+        log.info("定时任务 每半小时检测一次路北社区 活动任务状态");
+        R r = communityService.timedTaskVolunteerActivitiesJobHandler();
+        log.info("执行结果【{}】", r.toString());
+        return ReturnT.SUCCESS;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/LangChaoEventUploadJobHandler.java b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/LangChaoEventUploadJobHandler.java
new file mode 100644
index 0000000..5333453
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/LangChaoEventUploadJobHandler.java
@@ -0,0 +1,66 @@
+package com.panzhihua.timejob.jobhandler;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Component;
+
+import com.panzhihua.common.service.api.ApiServiceFeign;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.handler.annotation.XxlJob;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * program 攀枝花智慧社区项目 description 定时上报事件信息
+ *
+ * @author manailin Date 2021-06-17 15:30
+ **/
+@Slf4j
+@Component
+public class LangChaoEventUploadJobHandler {
+
+    @Resource
+    private ApiServiceFeign apiServiceFeign;
+
+    /**
+     * description 生成或更新redis里面的对接浪潮所需的token信息,token有效期12小时
+     *
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @XxlJob("langChaoGetToken")
+    public ReturnT<String> langChaoGetToken(String param) {
+        log.info("定时更新浪潮对接token。token有效期12小时");
+        apiServiceFeign.getToken("18080799023", "123456");
+        log.info("定时更新浪潮对接token完成");
+        return ReturnT.SUCCESS;
+    }
+
+    /**
+     * description 向浪潮服务器提交网格事件登记包括基础信息和文件(图片、mp3、mp4)信息
+     *
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @XxlJob("langChaoAutomationUpload")
+    public ReturnT<String> langChaoAutomationUpload(String param) {
+        log.info("向浪潮服务器提交网格事件登记开始");
+        apiServiceFeign.automationUploadEventAndFile();
+        log.info("向浪潮服务器提交网格事件登记完成");
+        return ReturnT.SUCCESS;
+    }
+
+    /**
+     * description 自动上传重点人员和流动人员走访记录
+     *
+     * @author manailin
+     * @date 2021/6/10 17:00
+     */
+    @XxlJob("automationUploadVisitRecord")
+    public ReturnT<String> automationUploadVisitRecord(String param) {
+        log.info("向浪潮服务器自动上传重点人员和流动人员走访记录开始");
+        apiServiceFeign.automationUploadVisitRecord();
+        log.info("向浪潮服务器自动上传重点人员和流动人员走访记录完成");
+        return ReturnT.SUCCESS;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/NeighborCircleJobHandler.java b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/NeighborCircleJobHandler.java
new file mode 100644
index 0000000..193d880
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/NeighborCircleJobHandler.java
@@ -0,0 +1,41 @@
+package com.panzhihua.timejob.jobhandler;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Component;
+
+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;
+
+/**
+ * @auther lyq
+ * @create 2021-04-28 09:21:45
+ * @describe 邻里圈相关
+ */
+@Slf4j
+@Component
+public class NeighborCircleJobHandler {
+
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 定时任务更新邻里圈近3天评论数/点赞数/浏览量
+     * 
+     * @return 刷新个数
+     * @throws Exception
+     *             出现的异常
+     */
+    @XxlJob("timedtaskNeighborCircleCommentJobHandler")
+    public ReturnT<String> timedtaskpartybuildingstatusJobHandler(String param) throws Exception {
+        log.info("定时任务更新邻里圈近3天评论数/点赞数/浏览量");
+        R r = communityService.timedTaskNeighborCircleRecord();
+        log.info("执行结果【{}】", r.toString());
+        return ReturnT.SUCCESS;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/NewFightHandler.java b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/NewFightHandler.java
new file mode 100644
index 0000000..287c55e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/NewFightHandler.java
@@ -0,0 +1,66 @@
+package com.panzhihua.timejob.jobhandler;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.partybuilding.NewStriveForFeign;
+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 NewFightHandler {
+
+    @Resource
+    private NewStriveForFeign communityService;
+
+
+    //定时任务  清空每日
+    @XxlJob("timedNewStriveIntegratingTaskHandler")
+    public ReturnT<String> timedNewStriveIntegratingTaskHandler(String param) throws Exception
+    {
+        log.info("定时任务 每天检测一次  清空每日签到  积分任务记录");
+        R r = communityService.truncateData();
+        log.info("执行结果【{}】", r.toString());
+        return ReturnT.SUCCESS;
+    }
+
+
+
+
+    //定时任务  新双争双评需求问题清单  任务认领  开始  结束  定时任务
+    @XxlJob("timedNewFightNeedProblemInventoryHandler")
+    public ReturnT<String> timedNewFightNeedProblemInventoryHandler(String param) throws Exception
+    {
+        log.info("定时任务 新双争双评需求问题清单  任务认领  开始  结束");
+        R r = communityService.timedNewFightNeedProblemInventoryHandler();
+        log.info("执行结果【{}】", r.toString());
+        ReturnT rt= new ReturnT<String>();
+        rt.setCode(ReturnT.SUCCESS_CODE);
+        rt.setContent("执行结果【{"+r.toString()+"}】");
+
+        return rt;
+    }
+
+
+
+    //定时任务  社区组织共建  定时更新项目进度
+    @XxlJob("taskTimedGetListTimeHandler")
+    public ReturnT<String> taskTimedGetListTimeHandler(String param) throws Exception
+    {
+        log.info("定时任务 社区组织共建 定时更新项目进度 ");
+        R r = communityService.taskTimedGetListTime();
+        log.info("执行结果【{}】", r.toString());
+        ReturnT rt= new ReturnT<String>();
+        rt.setCode(ReturnT.SUCCESS_CODE);
+        rt.setContent("执行结果【{"+r.toString()+"}】");
+
+        return rt;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/PartyBuildingJobHandler.java b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/PartyBuildingJobHandler.java
new file mode 100644
index 0000000..a7d0f94
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/PartyBuildingJobHandler.java
@@ -0,0 +1,140 @@
+package com.panzhihua.timejob.jobhandler;
+
+import java.util.Date;
+import java.util.List;
+
+import javax.annotation.Resource;
+
+import org.springframework.stereotype.Component;
+import org.springframework.util.ObjectUtils;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.model.dtos.community.integral.admin.AddComActIntegralUserDTO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.model.vos.community.integral.admin.ComActActivityPeopleVO;
+import com.panzhihua.common.model.vos.partybuilding.PartyBuildingActivityVO;
+import com.panzhihua.common.model.vos.user.SysUserNoticeVO;
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.partybuilding.PartyBuildingService;
+import com.panzhihua.common.service.user.UserService;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.handler.annotation.XxlJob;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 党建相关
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-14 16:09
+ **/
+@Slf4j
+@Component
+public class PartyBuildingJobHandler {
+
+    @Resource
+    private PartyBuildingService partyBuildingService;
+    @Resource
+    private UserService userService;
+    @Resource
+    private CommunityService communityService;
+
+    /**
+     * 定时任务刷新党建动态发布状态
+     * 
+     * @return 刷新个数
+     * @throws Exception
+     *             出现的异常
+     */
+    @XxlJob("timedtaskpartybuildingstatusJobHandler")
+    public ReturnT<String> timedtaskpartybuildingstatusJobHandler(String param) throws Exception {
+        log.info("定时任务刷新党建动态发布状态");
+        R r = partyBuildingService.timedTaskPartyBuildingStatus();
+        log.info("执行结果【{}】", r.toString());
+        return ReturnT.SUCCESS;
+    }
+
+    /**
+     * 定时任务取消党建活动
+     * 
+     * @return 取消个数
+     * @throws Exception
+     *             出现的异常
+     */
+    @XxlJob("timedTaskPartyBuildingActivityJobHandler")
+    public ReturnT<String> timedTaskPartyBuildingActivityJobHandler(String param) throws Exception {
+        log.info("定时任务取消党建活动");
+        R r = partyBuildingService.timedTaskPartyBuildingActivity();
+        if (R.isOk(r)) {
+            Object data = r.getData();
+            if (!ObjectUtils.isEmpty(data)) {
+                List<PartyBuildingActivityVO> partyBuildingActivityVOS =
+                    JSONArray.parseArray(JSONArray.toJSONString(data), PartyBuildingActivityVO.class);
+                if (!ObjectUtils.isEmpty(partyBuildingActivityVOS)) {
+                    partyBuildingActivityVOS.forEach(partyBuildingActivityVO -> {
+                        List<Long> userIds = partyBuildingActivityVO.getUserIds();
+                        if (!ObjectUtils.isEmpty(userIds)) {
+                            userIds.forEach(aLong -> {
+                                SysUserNoticeVO sysUserNoticeVO = new SysUserNoticeVO();
+                                sysUserNoticeVO.setUserId(aLong);
+                                sysUserNoticeVO.setType(1);
+                                sysUserNoticeVO.setBusinessType(2);
+                                sysUserNoticeVO.setBusinessTitle(partyBuildingActivityVO.getName());
+                                sysUserNoticeVO.setBusinessTime(new Date());
+                                sysUserNoticeVO.setBusinessId(partyBuildingActivityVO.getId());
+                                sysUserNoticeVO.setStatus(0);
+                                sysUserNoticeVO.setTitle("活动因故取消");
+                                sysUserNoticeVO.setBusinessContent("报名人数不足活动自动取消");
+                                sysUserNoticeVO.setBusinessStatus(1);
+                                R r2 = userService.addNotice(sysUserNoticeVO);
+                                if (R.isOk(r2)) {
+                                    log.info("新增党建活动取消通知成功【{}】", JSONObject.toJSONString(sysUserNoticeVO));
+                                }
+                            });
+                        }
+                    });
+                }
+            }
+        }
+
+        log.info("执行结果【{}】", r.toString());
+        return ReturnT.SUCCESS;
+    }
+
+    /**
+     * 定时任务刷新党建活动的各个状态 除取消外
+     * 
+     * @return 刷新个数
+     * @throws Exception
+     *             出现的异常
+     */
+    @XxlJob("timedTaskPartyBuildingActivityAllJobHandler")
+    public ReturnT<String> timedTaskPartyBuildingActivityAllJobHandler(String param) throws Exception {
+        log.info("定时任务刷新党建活动的各个状态 除取消外");
+        R r = partyBuildingService.timedTaskPartyBuildingActivityAll();
+        if (R.isOk(r)) {
+            // 获取待结束的活动列表
+            List<Long> activityList = JSONArray.parseArray(JSONArray.toJSONString(r.getData()), Long.class);
+            if (!activityList.isEmpty()) {
+                log.info("党员活动结束计算积分");
+                activityList.forEach(activityId -> {
+                    R r1 = partyBuildingService.getTaskPbActivityPeopleList(activityId);
+                    if (R.isOk(r1)) {
+                        List<ComActActivityPeopleVO> peopleList =
+                            JSONArray.parseArray(JSONArray.toJSONString(r1.getData()), ComActActivityPeopleVO.class);
+                        if (!peopleList.isEmpty()) {
+                            peopleList.forEach(people -> {
+                                communityService.addIntegralTradeAdmin(new AddComActIntegralUserDTO(
+                                    people.getActivityId(), AddComActIntegralUserDTO.integralType.cydyhd,
+                                    people.getCommunityId(), people.getUserId()));
+                            });
+                        }
+                    }
+                });
+            }
+        }
+        log.info("执行结果【{}】", r.toString());
+        return ReturnT.SUCCESS;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/UserJobHandler.java b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/UserJobHandler.java
new file mode 100644
index 0000000..a3250b7
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/java/com/panzhihua/timejob/jobhandler/UserJobHandler.java
@@ -0,0 +1,82 @@
+package com.panzhihua.timejob.jobhandler;
+
+import javax.annotation.Resource;
+
+import com.panzhihua.common.service.community.CommunityService;
+import com.panzhihua.common.service.partybuilding.NewStriveForFeign;
+import org.springframework.stereotype.Component;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.user.UserService;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.handler.annotation.XxlJob;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 用户相关
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2021-01-14 16:09
+ **/
+@Slf4j
+@Component
+public class UserJobHandler {
+
+    @Resource
+    private UserService userService;
+
+    @Resource
+    private CommunityService communityService;
+
+    @Resource
+    private NewStriveForFeign newStriveForFeign;
+
+    /**
+     * 维护用户持续登录天数
+     * 
+     * @return 维护个数
+     * @throws Exception
+     *             出现的异常
+     */
+    @XxlJob("timedTaskContinuousLandingDaysJobHandler")
+    public ReturnT<String> timedTaskContinuousLandingDaysJobHandler(String param) throws Exception {
+        log.info("维护用户持续登录天数");
+        R r = userService.timedTaskContinuousLandingDays();
+        log.info("执行结果【{}】", r.toString());
+        return ReturnT.SUCCESS;
+    }
+
+    /**
+     * 社区活动自动定时更新用户未签退时间
+     * @param param
+     * @return
+     * @throws Exception
+     */
+    @XxlJob("comActActRegistUpdateEndTime")
+    public ReturnT<String> comActActRegistUpdateEndTime(String param) throws Exception {
+        log.info("社区活动自动定时更新用户未签退时间");
+        R r = communityService.comActActRegistUpdateEndTime();
+        log.info("执行结果【{}】", r.toString());
+        return ReturnT.SUCCESS;
+    }
+
+    /**
+     * 自动更新新双争双评需求问题清单未签退时间
+     * @param param
+     * @return
+     * @throws Exception
+     */
+    @XxlJob("upNewFightNeedProblemClaimEndTime")
+    public ReturnT<String> upNewFightNeedProblemClaimEndTime(String param) throws Exception {
+        log.info("社区活动自动定时更新用户未签退时间");
+        R r = newStriveForFeign.upNewFightNeedProblemClaimEndTime();
+        log.info("执行结果【{}】", r.toString());
+        return ReturnT.SUCCESS;
+    }
+
+
+
+
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/resources/bootstrap.yml b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..ec4fb8b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/resources/bootstrap.yml
@@ -0,0 +1,33 @@
+spring:
+  application:
+    name: huacheng-timejob
+  cloud:
+    config:
+      discovery:
+        enabled: true
+        service-id: huacheng-config  # 注册中心的服务名
+      profile: ${ENV:dev}  # 指定配置文件的环境
+      uri: http://${CONFIG_URL:localhost}:6193/
+  profiles:
+    active: ${ENV:dev}
+
+eureka:
+  client:
+    service-url:
+      defaultZone: http://${EUREKA_URL:localhost}:8192/eureka
+
+
+management:
+  endpoints:
+    web:
+      exposure:
+        include: '*'
+
+  endpoint:
+    health:
+      show-details: always
+
+  metrics:
+    tags:
+      application: huacheng-timejob
+
diff --git a/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/resources/logback.xml b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/resources/logback.xml
new file mode 100644
index 0000000..f9fa5b3
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/timejob/src/main/resources/logback.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration debug="false" scan="true" scanPeriod="1 seconds">
+
+    <contextName>logback</contextName>
+    <property name="log.path" value="/mnt/data/gocd/log/xxl-job-executor-sample-springboot.log"/>
+
+    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder>
+            <pattern>%d{HH:mm:ss.SSS} %contextName [%thread] %-5level %logger{36} - %msg%n</pattern>
+        </encoder>
+    </appender>
+
+    <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <file>${log.path}</file>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${log.path}.%d{yyyy-MM-dd}.zip</fileNamePattern>
+        </rollingPolicy>
+        <encoder>
+            <pattern>%date %level [%thread] %logger{36} [%file : %line] %msg%n
+            </pattern>
+        </encoder>
+    </appender>
+
+    <root level="info">
+        <appender-ref ref="console"/>
+        <appender-ref ref="file"/>
+    </root>
+
+</configuration>
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/zuul/.gitignore b/springcloud_k8s_panzhihuazhihuishequ/zuul/.gitignore
new file mode 100644
index 0000000..549e00a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/zuul/.gitignore
@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
diff --git a/springcloud_k8s_panzhihuazhihuishequ/zuul/.mvn/wrapper/MavenWrapperDownloader.java b/springcloud_k8s_panzhihuazhihuishequ/zuul/.mvn/wrapper/MavenWrapperDownloader.java
new file mode 100644
index 0000000..a45eb6b
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/zuul/.mvn/wrapper/MavenWrapperDownloader.java
@@ -0,0 +1,118 @@
+/*
+ * Copyright 2007-present the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.net.*;
+import java.io.*;
+import java.nio.channels.*;
+import java.util.Properties;
+
+public class MavenWrapperDownloader {
+
+    private static final String WRAPPER_VERSION = "0.5.6";
+    /**
+     * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
+     */
+    private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
+            + WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
+
+    /**
+     * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
+     * use instead of the default one.
+     */
+    private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
+            ".mvn/wrapper/maven-wrapper.properties";
+
+    /**
+     * Path where the maven-wrapper.jar will be saved to.
+     */
+    private static final String MAVEN_WRAPPER_JAR_PATH =
+            ".mvn/wrapper/maven-wrapper.jar";
+
+    /**
+     * Name of the property which should be used to override the default download url for the wrapper.
+     */
+    private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
+
+    public static void main(String args[]) {
+        System.out.println("- Downloader started");
+        File baseDirectory = new File(args[0]);
+        System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
+
+        // If the maven-wrapper.properties exists, read it and check if it contains a custom
+        // wrapperUrl parameter.
+        File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
+        String url = DEFAULT_DOWNLOAD_URL;
+        if (mavenWrapperPropertyFile.exists()) {
+            FileInputStream mavenWrapperPropertyFileInputStream = null;
+            try {
+                mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
+                Properties mavenWrapperProperties = new Properties();
+                mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
+                url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
+            } catch (IOException e) {
+                System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
+            } finally {
+                try {
+                    if (mavenWrapperPropertyFileInputStream != null) {
+                        mavenWrapperPropertyFileInputStream.close();
+                    }
+                } catch (IOException e) {
+                    // Ignore ...
+                }
+            }
+        }
+        System.out.println("- Downloading from: " + url);
+
+        File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
+        if (!outputFile.getParentFile().exists()) {
+            if (!outputFile.getParentFile().mkdirs()) {
+                System.out.println(
+                        "- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
+            }
+        }
+        System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
+        try {
+            downloadFileFromURL(url, outputFile);
+            System.out.println("Done");
+            System.exit(0);
+        } catch (Throwable e) {
+            System.out.println("- Error downloading");
+            e.printStackTrace();
+            System.exit(1);
+        }
+    }
+
+    private static void downloadFileFromURL(String urlString, File destination) throws Exception {
+        if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
+            String username = System.getenv("MVNW_USERNAME");
+            char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
+            Authenticator.setDefault(new Authenticator() {
+                @Override
+                protected PasswordAuthentication getPasswordAuthentication() {
+                    return new PasswordAuthentication(username, password);
+                }
+            });
+        }
+        URL website = new URL(urlString);
+        ReadableByteChannel rbc;
+        rbc = Channels.newChannel(website.openStream());
+        FileOutputStream fos = new FileOutputStream(destination);
+        fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
+        fos.close();
+        rbc.close();
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/zuul/.mvn/wrapper/maven-wrapper.jar b/springcloud_k8s_panzhihuazhihuishequ/zuul/.mvn/wrapper/maven-wrapper.jar
new file mode 100644
index 0000000..2cc7d4a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/zuul/.mvn/wrapper/maven-wrapper.jar
Binary files differ
diff --git a/springcloud_k8s_panzhihuazhihuishequ/zuul/.mvn/wrapper/maven-wrapper.properties b/springcloud_k8s_panzhihuazhihuishequ/zuul/.mvn/wrapper/maven-wrapper.properties
new file mode 100644
index 0000000..642d572
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/zuul/.mvn/wrapper/maven-wrapper.properties
@@ -0,0 +1,2 @@
+distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip
+wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar
diff --git a/springcloud_k8s_panzhihuazhihuishequ/zuul/mvnw b/springcloud_k8s_panzhihuazhihuishequ/zuul/mvnw
new file mode 100644
index 0000000..a16b543
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/zuul/mvnw
@@ -0,0 +1,310 @@
+#!/bin/sh
+# ----------------------------------------------------------------------------
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#    https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+# ----------------------------------------------------------------------------
+
+# ----------------------------------------------------------------------------
+# Maven Start Up Batch script
+#
+# Required ENV vars:
+# ------------------
+#   JAVA_HOME - location of a JDK home dir
+#
+# Optional ENV vars
+# -----------------
+#   M2_HOME - location of maven2's installed home dir
+#   MAVEN_OPTS - parameters passed to the Java VM when running Maven
+#     e.g. to debug Maven itself, use
+#       set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+#   MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+# ----------------------------------------------------------------------------
+
+if [ -z "$MAVEN_SKIP_RC" ] ; then
+
+  if [ -f /etc/mavenrc ] ; then
+    . /etc/mavenrc
+  fi
+
+  if [ -f "$HOME/.mavenrc" ] ; then
+    . "$HOME/.mavenrc"
+  fi
+
+fi
+
+# OS specific support.  $var _must_ be set to either true or false.
+cygwin=false;
+darwin=false;
+mingw=false
+case "`uname`" in
+  CYGWIN*) cygwin=true ;;
+  MINGW*) mingw=true;;
+  Darwin*) darwin=true
+    # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
+    # See https://developer.apple.com/library/mac/qa/qa1170/_index.html
+    if [ -z "$JAVA_HOME" ]; then
+      if [ -x "/usr/libexec/java_home" ]; then
+        export JAVA_HOME="`/usr/libexec/java_home`"
+      else
+        export JAVA_HOME="/Library/Java/Home"
+      fi
+    fi
+    ;;
+esac
+
+if [ -z "$JAVA_HOME" ] ; then
+  if [ -r /etc/gentoo-release ] ; then
+    JAVA_HOME=`java-config --jre-home`
+  fi
+fi
+
+if [ -z "$M2_HOME" ] ; then
+  ## resolve links - $0 may be a link to maven's home
+  PRG="$0"
+
+  # need this for relative symlinks
+  while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+      PRG="$link"
+    else
+      PRG="`dirname "$PRG"`/$link"
+    fi
+  done
+
+  saveddir=`pwd`
+
+  M2_HOME=`dirname "$PRG"`/..
+
+  # make it fully qualified
+  M2_HOME=`cd "$M2_HOME" && pwd`
+
+  cd "$saveddir"
+  # echo Using m2 at $M2_HOME
+fi
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched
+if $cygwin ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --unix "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
+fi
+
+# For Mingw, ensure paths are in UNIX format before anything is touched
+if $mingw ; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME="`(cd "$M2_HOME"; pwd)`"
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
+fi
+
+if [ -z "$JAVA_HOME" ]; then
+  javaExecutable="`which javac`"
+  if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
+    # readlink(1) is not available as standard on Solaris 10.
+    readLink=`which readlink`
+    if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
+      if $darwin ; then
+        javaHome="`dirname \"$javaExecutable\"`"
+        javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
+      else
+        javaExecutable="`readlink -f \"$javaExecutable\"`"
+      fi
+      javaHome="`dirname \"$javaExecutable\"`"
+      javaHome=`expr "$javaHome" : '\(.*\)/bin'`
+      JAVA_HOME="$javaHome"
+      export JAVA_HOME
+    fi
+  fi
+fi
+
+if [ -z "$JAVACMD" ] ; then
+  if [ -n "$JAVA_HOME"  ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+      # IBM's JDK on AIX uses strange locations for the executables
+      JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+      JAVACMD="$JAVA_HOME/bin/java"
+    fi
+  else
+    JAVACMD="`which java`"
+  fi
+fi
+
+if [ ! -x "$JAVACMD" ] ; then
+  echo "Error: JAVA_HOME is not defined correctly." >&2
+  echo "  We cannot execute $JAVACMD" >&2
+  exit 1
+fi
+
+if [ -z "$JAVA_HOME" ] ; then
+  echo "Warning: JAVA_HOME environment variable is not set."
+fi
+
+CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
+
+# traverses directory structure from process work directory to filesystem root
+# first directory with .mvn subdirectory is considered project base directory
+find_maven_basedir() {
+
+  if [ -z "$1" ]
+  then
+    echo "Path not specified to find_maven_basedir"
+    return 1
+  fi
+
+  basedir="$1"
+  wdir="$1"
+  while [ "$wdir" != '/' ] ; do
+    if [ -d "$wdir"/.mvn ] ; then
+      basedir=$wdir
+      break
+    fi
+    # workaround for JBEAP-8937 (on Solaris 10/Sparc)
+    if [ -d "${wdir}" ]; then
+      wdir=`cd "$wdir/.."; pwd`
+    fi
+    # end of workaround
+  done
+  echo "${basedir}"
+}
+
+# concatenates all lines of a file
+concat_lines() {
+  if [ -f "$1" ]; then
+    echo "$(tr -s '\n' ' ' < "$1")"
+  fi
+}
+
+BASE_DIR=`find_maven_basedir "$(pwd)"`
+if [ -z "$BASE_DIR" ]; then
+  exit 1;
+fi
+
+##########################################################################################
+# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+# This allows using the maven wrapper in projects that prohibit checking in binary data.
+##########################################################################################
+if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Found .mvn/wrapper/maven-wrapper.jar"
+    fi
+else
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
+    fi
+    if [ -n "$MVNW_REPOURL" ]; then
+      jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    else
+      jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    fi
+    while IFS="=" read key value; do
+      case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
+      esac
+    done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
+    if [ "$MVNW_VERBOSE" = true ]; then
+      echo "Downloading from: $jarUrl"
+    fi
+    wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
+    if $cygwin; then
+      wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
+    fi
+
+    if command -v wget > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found wget ... using wget"
+        fi
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+            wget "$jarUrl" -O "$wrapperJarPath"
+        else
+            wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
+        fi
+    elif command -v curl > /dev/null; then
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Found curl ... using curl"
+        fi
+        if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
+            curl -o "$wrapperJarPath" "$jarUrl" -f
+        else
+            curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
+        fi
+
+    else
+        if [ "$MVNW_VERBOSE" = true ]; then
+          echo "Falling back to using Java to download"
+        fi
+        javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
+        # For Cygwin, switch paths to Windows format before running javac
+        if $cygwin; then
+          javaClass=`cygpath --path --windows "$javaClass"`
+        fi
+        if [ -e "$javaClass" ]; then
+            if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Compiling MavenWrapperDownloader.java ..."
+                fi
+                # Compiling the Java class
+                ("$JAVA_HOME/bin/javac" "$javaClass")
+            fi
+            if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
+                # Running the downloader
+                if [ "$MVNW_VERBOSE" = true ]; then
+                  echo " - Running MavenWrapperDownloader.java ..."
+                fi
+                ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
+            fi
+        fi
+    fi
+fi
+##########################################################################################
+# End of extension
+##########################################################################################
+
+export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
+if [ "$MVNW_VERBOSE" = true ]; then
+  echo $MAVEN_PROJECTBASEDIR
+fi
+MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin; then
+  [ -n "$M2_HOME" ] &&
+    M2_HOME=`cygpath --path --windows "$M2_HOME"`
+  [ -n "$JAVA_HOME" ] &&
+    JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
+  [ -n "$CLASSPATH" ] &&
+    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
+  [ -n "$MAVEN_PROJECTBASEDIR" ] &&
+    MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
+fi
+
+# Provide a "standardized" way to retrieve the CLI args that will
+# work with both Windows and non-Windows executions.
+MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
+export MAVEN_CMD_LINE_ARGS
+
+WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+exec "$JAVACMD" \
+  $MAVEN_OPTS \
+  -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
+  "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
+  ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
diff --git a/springcloud_k8s_panzhihuazhihuishequ/zuul/mvnw.cmd b/springcloud_k8s_panzhihuazhihuishequ/zuul/mvnw.cmd
new file mode 100644
index 0000000..c8d4337
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/zuul/mvnw.cmd
@@ -0,0 +1,182 @@
+@REM ----------------------------------------------------------------------------
+@REM Licensed to the Apache Software Foundation (ASF) under one
+@REM or more contributor license agreements.  See the NOTICE file
+@REM distributed with this work for additional information
+@REM regarding copyright ownership.  The ASF licenses this file
+@REM to you under the Apache License, Version 2.0 (the
+@REM "License"); you may not use this file except in compliance
+@REM with the License.  You may obtain a copy of the License at
+@REM
+@REM    https://www.apache.org/licenses/LICENSE-2.0
+@REM
+@REM Unless required by applicable law or agreed to in writing,
+@REM software distributed under the License is distributed on an
+@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+@REM KIND, either express or implied.  See the License for the
+@REM specific language governing permissions and limitations
+@REM under the License.
+@REM ----------------------------------------------------------------------------
+
+@REM ----------------------------------------------------------------------------
+@REM Maven Start Up Batch script
+@REM
+@REM Required ENV vars:
+@REM JAVA_HOME - location of a JDK home dir
+@REM
+@REM Optional ENV vars
+@REM M2_HOME - location of maven2's installed home dir
+@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
+@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending
+@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
+@REM     e.g. to debug Maven itself, use
+@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
+@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
+@REM ----------------------------------------------------------------------------
+
+@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
+@echo off
+@REM set title of command window
+title %0
+@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
+@if "%MAVEN_BATCH_ECHO%" == "on"  echo %MAVEN_BATCH_ECHO%
+
+@REM set %HOME% to equivalent of $HOME
+if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
+
+@REM Execute a user defined script before this one
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
+@REM check for pre script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
+if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
+:skipRcPre
+
+@setlocal
+
+set ERROR_CODE=0
+
+@REM To isolate internal variables from possible post scripts, we use another setlocal
+@setlocal
+
+@REM ==== START VALIDATION ====
+if not "%JAVA_HOME%" == "" goto OkJHome
+
+echo.
+echo Error: JAVA_HOME not found in your environment. >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+:OkJHome
+if exist "%JAVA_HOME%\bin\java.exe" goto init
+
+echo.
+echo Error: JAVA_HOME is set to an invalid directory. >&2
+echo JAVA_HOME = "%JAVA_HOME%" >&2
+echo Please set the JAVA_HOME variable in your environment to match the >&2
+echo location of your Java installation. >&2
+echo.
+goto error
+
+@REM ==== END VALIDATION ====
+
+:init
+
+@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
+@REM Fallback to current working directory if not found.
+
+set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
+IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
+
+set EXEC_DIR=%CD%
+set WDIR=%EXEC_DIR%
+:findBaseDir
+IF EXIST "%WDIR%"\.mvn goto baseDirFound
+cd ..
+IF "%WDIR%"=="%CD%" goto baseDirNotFound
+set WDIR=%CD%
+goto findBaseDir
+
+:baseDirFound
+set MAVEN_PROJECTBASEDIR=%WDIR%
+cd "%EXEC_DIR%"
+goto endDetectBaseDir
+
+:baseDirNotFound
+set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
+cd "%EXEC_DIR%"
+
+:endDetectBaseDir
+
+IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
+
+@setlocal EnableExtensions EnableDelayedExpansion
+for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
+@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
+
+:endReadAdditionalConfig
+
+SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
+set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
+set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
+
+set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+
+FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
+    IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
+)
+
+@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
+@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
+if exist %WRAPPER_JAR% (
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Found %WRAPPER_JAR%
+    )
+) else (
+    if not "%MVNW_REPOURL%" == "" (
+        SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar"
+    )
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Couldn't find %WRAPPER_JAR%, downloading it ...
+        echo Downloading from: %DOWNLOAD_URL%
+    )
+
+    powershell -Command "&{"^
+		"$webclient = new-object System.Net.WebClient;"^
+		"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
+		"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
+		"}"^
+		"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
+		"}"
+    if "%MVNW_VERBOSE%" == "true" (
+        echo Finished downloading %WRAPPER_JAR%
+    )
+)
+@REM End of extension
+
+@REM Provide a "standardized" way to retrieve the CLI args that will
+@REM work with both Windows and non-Windows executions.
+set MAVEN_CMD_LINE_ARGS=%*
+
+%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
+if ERRORLEVEL 1 goto error
+goto end
+
+:error
+set ERROR_CODE=1
+
+:end
+@endlocal & set ERROR_CODE=%ERROR_CODE%
+
+if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
+@REM check for post script, once with legacy .bat ending and once with .cmd ending
+if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
+if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
+:skipRcPost
+
+@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
+if "%MAVEN_BATCH_PAUSE%" == "on" pause
+
+if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
+
+exit /B %ERROR_CODE%
diff --git a/springcloud_k8s_panzhihuazhihuishequ/zuul/pom.xml b/springcloud_k8s_panzhihuazhihuishequ/zuul/pom.xml
new file mode 100644
index 0000000..fb0e082
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/zuul/pom.xml
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>com.panzhihua</groupId>
+        <artifactId>zhihuishequ</artifactId>
+        <version>1.0-SNAPSHOT</version>
+    </parent>
+    <groupId>com.panzhihua</groupId>
+    <artifactId>zuul</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>zuul</name>
+    <description>网关zuul</description>
+
+
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-config</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-zuul</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.panzhihua</groupId>
+            <artifactId>common</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-security</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.github.xiaoymin</groupId>
+            <artifactId>swagger-bootstrap-ui</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>io.springfox</groupId>
+            <artifactId>springfox-swagger-ui</artifactId>
+        </dependency>
+        <!--添加监控依赖包-->
+        <dependency>
+            <groupId>io.micrometer</groupId>
+            <artifactId>micrometer-registry-prometheus</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+    </dependencies>
+
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>2.5.0</version>
+                <configuration>
+                    <mainClass>com.panzhihua.zuul.ZuulApplication</mainClass>
+                </configuration>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>com.spotify</groupId>
+                <artifactId>docker-maven-plugin</artifactId>
+                <version>1.2.0</version>
+                <configuration>
+                    <imageName>registry.cn-chengdu.aliyuncs.com/panzhihua/service-zuul:v1</imageName>
+                    <serverId></serverId>
+                    <baseImage>java</baseImage>
+                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
+                    <resources>
+                        <resource>
+                            <targetPath>/</targetPath>
+                            <directory>${project.build.directory}</directory>
+                            <include>${project.build.finalName}.jar</include>
+                        </resource>
+                    </resources>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
diff --git a/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/ZuulApplication.java b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/ZuulApplication.java
new file mode 100644
index 0000000..4a4573e
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/ZuulApplication.java
@@ -0,0 +1,26 @@
+package com.panzhihua.zuul;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.cloud.client.SpringCloudApplication;
+import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+import org.springframework.cloud.netflix.zuul.EnableZuulProxy;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.ComponentScan;
+
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+@EnableSwagger2
+@SpringCloudApplication
+@EnableCircuitBreaker
+@EnableEurekaClient
+@EnableZuulProxy
+@EnableFeignClients(basePackages = {"com.panzhihua.common.service"})
+@ComponentScan({"com.panzhihua.zuul", "com.panzhihua.common"})
+public class ZuulApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(ZuulApplication.class, args);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/config/AppletWebSecurityConfigurationAdapter.java b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/config/AppletWebSecurityConfigurationAdapter.java
new file mode 100644
index 0000000..1372336
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/config/AppletWebSecurityConfigurationAdapter.java
@@ -0,0 +1,27 @@
+package com.panzhihua.zuul.config;
+
+import org.springframework.boot.autoconfigure.security.SecurityProperties;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.core.annotation.Order;
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
+import org.springframework.security.web.authentication.AnonymousAuthenticationFilter;
+
+import com.panzhihua.zuul.filters.AppletAuthenticationFilter;
+
+/**
+ * @ClasssName AppletWebSecurityConfigurationAdapter
+ * @Description 小程序
+ * @Author cedoo
+ * @Date 2021/4/30
+ * @Version 1.0
+ **/
+@Configuration
+@Order(SecurityProperties.BASIC_AUTH_ORDER - 2)
+public class AppletWebSecurityConfigurationAdapter extends WebSecurityConfigurerAdapter {
+    @Override
+    protected void configure(HttpSecurity http) throws Exception {
+        http.antMatcher("/api/huacheng-applets/**").authorizeRequests().anyRequest().authenticated().and()
+            .addFilterAfter(new AppletAuthenticationFilter(), AnonymousAuthenticationFilter.class);
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/config/CorsConfig.java b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/config/CorsConfig.java
new file mode 100644
index 0000000..062d164
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/config/CorsConfig.java
@@ -0,0 +1,22 @@
+package com.panzhihua.zuul.config;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.CorsRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
+
+@Configuration
+public class CorsConfig implements WebMvcConfigurer {
+
+  @Override
+  public void addCorsMappings(CorsRegistry registry) {
+    registry.addMapping("/**")
+        // 设置允许跨域请求的域名
+        .allowedOrigins("*")
+        // 是否允许证书(cookies)
+        .allowCredentials(true)
+        // 设置允许的方法
+        .allowedMethods("*")
+        // 跨域允许时间
+        .maxAge(3600);
+  }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/config/RealNamedConfig.java b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/config/RealNamedConfig.java
new file mode 100644
index 0000000..927d891
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/config/RealNamedConfig.java
@@ -0,0 +1,17 @@
+package com.panzhihua.zuul.config;
+
+import java.util.List;
+
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+import lombok.Data;
+
+@Component
+@ConfigurationProperties(prefix = "applet.realname")
+@Data
+public class RealNamedConfig {
+
+    private List<String> verify;
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/config/SpringSecurityConfig.java b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/config/SpringSecurityConfig.java
new file mode 100644
index 0000000..050de36
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/config/SpringSecurityConfig.java
@@ -0,0 +1,58 @@
+package com.panzhihua.zuul.config;
+
+import javax.annotation.Resource;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.security.config.annotation.ObjectPostProcessor;
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
+import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
+import org.springframework.security.config.http.SessionCreationPolicy;
+import org.springframework.security.web.access.intercept.FilterSecurityInterceptor;
+import org.springframework.security.web.authentication.AnonymousAuthenticationFilter;
+
+import com.panzhihua.zuul.filters.JWTAuthenticationTokenFilter;
+import com.panzhihua.zuul.filters.SercuritFilter;
+import com.panzhihua.zuul.handles.UserAuthAccessDeniedHandler;
+import com.panzhihua.zuul.manager.RoleAccessDecisionManager;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 安全
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-25 10:57
+ **/
+@Configuration
+@EnableWebSecurity
+public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
+
+    @Resource
+    private SercuritFilter filter;
+    @Resource
+    private RoleAccessDecisionManager roleAccessDecisionManager;
+    /**
+     * 自定义暂无权限处理器
+     */
+    @Resource
+    private UserAuthAccessDeniedHandler userAuthAccessDeniedHandler;
+
+    @Override
+    protected void configure(HttpSecurity http) throws Exception {
+        http.authorizeRequests().withObjectPostProcessor(new ObjectPostProcessor<FilterSecurityInterceptor>() {
+            @Override
+            public <O extends FilterSecurityInterceptor> O postProcess(O o) {
+                o.setAccessDecisionManager(roleAccessDecisionManager);
+                o.setSecurityMetadataSource(filter);
+                return o;
+            }
+        }).anyRequest().authenticated().and()
+            // 配置没有权限自定义处理类
+            .exceptionHandling().accessDeniedHandler(userAuthAccessDeniedHandler).and().csrf().disable().cors();
+        // 基于Token不需要session
+        http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
+        // 禁用缓存
+        http.headers().cacheControl();
+        http.addFilterBefore(new JWTAuthenticationTokenFilter(), AnonymousAuthenticationFilter.class);
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/config/SwaggerConfig.java b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/config/SwaggerConfig.java
new file mode 100644
index 0000000..c8e1434
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/config/SwaggerConfig.java
@@ -0,0 +1,60 @@
+package com.panzhihua.zuul.config;
+
+import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.springframework.cloud.netflix.zuul.filters.RouteLocator;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+
+import springfox.documentation.swagger.web.SwaggerResource;
+import springfox.documentation.swagger.web.SwaggerResourcesProvider;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: swagger
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-26 16:57
+ **/
+@Configuration
+@EnableSwagger2
+@Primary
+public class SwaggerConfig implements SwaggerResourcesProvider {
+
+    // RouteLocator可以根据zuul配置的路由列表获取服务
+    private final RouteLocator routeLocator;
+
+    private String[] ids =
+        new String[] {"huacheng-appletsbackstage", "huacheng-applets", "huacheng-communitybackstage", "huacheng-shopbackstage",
+                "huacheng-gridbackstage", "huacheng-gridapp","huacheng-union-applets"};
+
+    public SwaggerConfig(RouteLocator routeLocator) {
+        this.routeLocator = routeLocator;
+    }
+
+    /**
+     * Gets a result.
+     *
+     * @return a result
+     */
+    @Override
+    public List<SwaggerResource> get() {
+        List resources = new ArrayList();
+        Arrays.asList(ids).forEach(id -> {
+            resources.add(swaggerResource(id, MessageFormat.format("/api/{0}/v2/api-docs", id), "1.0"));
+        });
+        return resources;
+    }
+
+    private SwaggerResource swaggerResource(String name, String location, String version) {
+        SwaggerResource swaggerResource = new SwaggerResource();
+        swaggerResource.setName(name);
+        swaggerResource.setLocation(location);
+        swaggerResource.setSwaggerVersion(version);
+        return swaggerResource;
+    }
+
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/AppletAuthenticationFilter.java b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/AppletAuthenticationFilter.java
new file mode 100644
index 0000000..eb4b1be
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/AppletAuthenticationFilter.java
@@ -0,0 +1,147 @@
+package com.panzhihua.zuul.filters;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+import javax.servlet.*;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.ApplicationContext;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+import org.springframework.security.core.authority.SimpleGrantedAuthority;
+import org.springframework.stereotype.Component;
+import org.springframework.web.context.support.WebApplicationContextUtils;
+
+import com.alibaba.fastjson.JSONArray;
+import com.panzhihua.common.constants.HttpStatus;
+import com.panzhihua.common.constants.SecurityConstants;
+import com.panzhihua.common.constants.TokenConstant;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.utlis.JWTTokenUtil;
+import com.panzhihua.common.utlis.ResultUtil;
+import com.panzhihua.zuul.config.RealNamedConfig;
+
+import io.jsonwebtoken.Claims;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 小程序权限验证
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-25 16:35
+ **/
+@Component
+public class AppletAuthenticationFilter implements Filter {
+    private StringRedisTemplate stringRedisTemplate;
+
+    @Autowired
+    private RealNamedConfig realNamedConfig;
+
+    @Override
+    public void init(FilterConfig filterConfig) throws ServletException {
+
+    }
+
+    /**
+     * 用户是否登录校验
+     *
+     * @param servletRequest
+     *            请求
+     * @param servletResponse
+     *            返回
+     * @param filterChain
+     *            过滤器链条
+     * @throws IOException
+     *             io
+     * @throws ServletException
+     *             servlet
+     */
+    @Override
+    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
+        throws IOException, ServletException {
+        HttpServletRequest request = (HttpServletRequest)servletRequest;
+        SafeboxRequestWrapper safeboxRequestWrapper = new SafeboxRequestWrapper(request);
+        HttpServletResponse response = (HttpServletResponse)servletResponse;
+
+        // 获取请求头中JWT的Token
+        String tokenHeader = request.getHeader(TokenConstant.TOKEN_HEADER);
+        if (null != tokenHeader && tokenHeader.startsWith(TokenConstant.TOKEN_PRE) && realNamedConfig != null
+            && realNamedConfig.getVerify() != null && realNamedConfig.getVerify().size() > 0) {
+            String token = tokenHeader.replace(TokenConstant.TOKEN_PRE, "");
+
+            // token解析
+            Claims claims = JWTTokenUtil.getClaimsFromToken(token);
+            if (claims != null) {// 检查token有效
+                String username = claims.getSubject();
+                int type = (Integer)claims.get("type");
+                if (1 == type) {// 小程序用户统一角色
+                    String requestURI = request.getRequestURI();
+                    String requestMethod = request.getMethod().toLowerCase();
+
+                    ServletContext context = request.getServletContext();
+                    ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(context);
+                    stringRedisTemplate = ctx.getBean(StringRedisTemplate.class);
+                    ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
+                    String appletUserRoleKey = SecurityConstants.ROLE_APPLETS_USER + username;
+                    Boolean userHasRole = stringRedisTemplate.hasKey(appletUserRoleKey);
+
+                    boolean needCheck = false;
+                    List<String> checkedUrl = realNamedConfig.getVerify();
+                    checkedUrl = checkedUrl != null ? checkedUrl : new ArrayList<>();
+                    for (int i = 0; i < checkedUrl.size(); i++) {
+                        String url = checkedUrl.get(i);
+                        if (url.toLowerCase().startsWith(requestMethod) && url.endsWith(requestURI)) {
+                            needCheck = true;
+                        } else {
+                            continue;
+                        }
+                    }
+                    if (needCheck) {
+                        if (userHasRole) {
+                            boolean userHashRight = false;
+                            try {
+                                String roles = valueOperations.get(appletUserRoleKey);
+                                List<SimpleGrantedAuthority> authorities =
+                                    JSONArray.parseArray(roles, SimpleGrantedAuthority.class);
+                                if (authorities != null && authorities.size() > 0) {
+                                    AtomicBoolean userHasRightRole = new AtomicBoolean(false);
+                                    authorities.forEach(authority -> {
+                                        if (authority.getAuthority()
+                                            .equals(SecurityConstants.ROLE_APPLETS_REAL_NAMED)) {
+                                            userHasRightRole.set(true);
+                                        }
+                                    });
+                                    if (userHasRightRole.get()) {
+                                        // 用户包含“已实名”角色,则放行 什么也不做
+                                        userHashRight = true;
+                                    }
+                                }
+                            } catch (Exception e) {
+                                userHashRight = false;
+                            }
+
+                            if (!userHashRight) {
+                                ResultUtil.responseJson(response, R.fail(HttpStatus.FORBIDDEN, "用户未实名"));
+                                return;
+                            }
+                        } else {
+                            ResultUtil.responseJson(response, R.fail(HttpStatus.FORBIDDEN, "用户未实名"));
+                            return;
+                        }
+
+                    }
+                }
+            }
+        }
+        filterChain.doFilter(servletRequest, servletResponse);
+    }
+
+    @Override
+    public void destroy() {
+
+    }
+}
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
new file mode 100644
index 0000000..a0197ba
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/JWTAuthenticationTokenFilter.java
@@ -0,0 +1,381 @@
+package com.panzhihua.zuul.filters;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.TimeUnit;
+
+import javax.servlet.*;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import com.panzhihua.common.model.vos.user.SysAppConfigVO;
+import com.panzhihua.common.utlis.*;
+import org.springframework.context.ApplicationContext;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.security.core.authority.SimpleGrantedAuthority;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.stereotype.Component;
+import org.springframework.util.ObjectUtils;
+import org.springframework.web.context.support.WebApplicationContextUtils;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.panzhihua.common.constants.*;
+import com.panzhihua.common.model.vos.LoginUserInfoVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.user.UserService;
+
+import io.jsonwebtoken.Claims;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: token校验
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-25 16:35
+ **/
+@Component
+public class JWTAuthenticationTokenFilter implements Filter {
+    private StringRedisTemplate stringRedisTemplate;
+    private UserService userService;
+
+    @Override
+    public void init(FilterConfig filterConfig) throws ServletException {
+
+    }
+
+    /**
+     * 用户是否登录校验
+     *
+     * @param servletRequest  请求
+     * @param servletResponse 返回
+     * @param filterChain     过滤器链条
+     * @throws IOException      io
+     * @throws ServletException servlet
+     */
+    @Override
+    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
+            throws IOException, ServletException {
+        HttpServletRequest request = (HttpServletRequest) servletRequest;
+        HttpServletResponse response = (HttpServletResponse) servletResponse;
+        ServletContext context = request.getServletContext();
+        ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(context);
+        stringRedisTemplate = ctx.getBean(StringRedisTemplate.class);
+        ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
+        userService = ctx.getBean(UserService.class);
+        String requestURI = request.getRequestURI();
+        boolean login = requestURI.contains("login");
+        boolean union = requestURI.contains("huacheng-union-applets");
+        boolean doc = requestURI.contains("doc.html");
+        boolean css = requestURI.contains(".css");
+        boolean js = requestURI.contains(".js");
+        boolean ui = requestURI.contains("/ui");
+        boolean swagger = requestURI.contains("swagger");
+        boolean ico = requestURI.contains(".ico");
+        boolean docs = requestURI.contains("-docs");
+        boolean error = requestURI.contains("error");
+        boolean useragreement = requestURI.contains("useragreement");
+        boolean refreshToken = requestURI.contains("refreshToken");
+        boolean logout = requestURI.contains("logout");
+        boolean wxPay = requestURI.contains("wxNotify");
+        boolean kaphtcha = requestURI.contains("kaphtcha");
+        boolean uuRepay = requestURI.contains("uuRepay");
+        boolean uuPush = requestURI.contains("uuPush");
+        boolean wsPush = requestURI.contains("wsPush");
+        boolean wxCgi = requestURI.contains("cgi");
+        boolean isShop = requestURI.contains("isShop");
+        boolean batteryActivityPayNotify = requestURI.contains("batteryActivityPayNotify");
+        boolean batteryPayNotify = requestURI.contains("batteryPayNotify");
+        boolean tfLogin = requestURI.contains("tfLogin");
+        boolean noToken = requestURI.contains("noToken");
+        boolean listadvertisement = requestURI.contains("listadvertisement");
+        boolean basicScreen = requestURI.contains("basicScreen");
+        boolean pageEasyPhotoAdminLC = requestURI.contains("pageEasyPhotoAdminLC");
+        boolean putmessage = requestURI.contains("putmessage");
+        boolean unionDoor = requestURI.contains("unionDoor");
+        boolean getNewToken = requestURI.contains("getNewToken");
+        // boolean bigscreen = requestURI.contains("/bigscreen/party");
+        // boolean pageworkguide = !requestURI.contains("workguide/pageworkguide");
+        // boolean detailworkguide = !requestURI.contains("workguide/detailworkguide");
+        // boolean pagedynamic = !requestURI.contains("partybuilding/pagedynamic");
+        // boolean infodynamic = !requestURI.contains("partybuilding/infodynamic");
+
+        SafeboxRequestWrapper safeboxRequestWrapper = new SafeboxRequestWrapper(request);
+        safeboxRequestWrapper.addHeader("appid", request.getHeader("appid"));
+        if (login || doc || css || js || ui || swagger || ico || docs || error || refreshToken || useragreement || wxPay
+                // ||wxCgi||isShop||listadvertisement||noToken||bigscreen) {
+                || wxCgi || isShop || listadvertisement || noToken || uuRepay || kaphtcha || uuPush || tfLogin || batteryActivityPayNotify
+                || batteryPayNotify || wsPush || basicScreen || pageEasyPhotoAdminLC || union || putmessage || unionDoor  || getNewToken)
+        {
+            if (union && !login ) {
+                String token;
+                String header = request.getHeader(Constant.AUTHORIZATION);
+                String[] tokens = request.getHeader(Constant.AUTHORIZATION).split(" ");
+                if (tokens.length >= 2) {
+                    token = request.getHeader(Constant.AUTHORIZATION).split(" ")[1];
+                } else {
+                    token = request.getHeader(Constant.AUTHORIZATION);
+                }
+                safeboxRequestWrapper.addHeader(Constant.UNION_AUTHORIZATION, token);
+            }
+
+            // 什么也不做
+        } else {
+            // 获取请求头中JWT的Token
+            String tokenHeader = request.getHeader(TokenConstant.TOKEN_HEADER);
+            if (null != tokenHeader && tokenHeader.startsWith(TokenConstant.TOKEN_PRE)) {
+                // token过期
+                String token = tokenHeader.replace(TokenConstant.TOKEN_PRE, "");
+                Boolean hasKey = stringRedisTemplate.hasKey(UserConstants.LOGOUT_TOKEN + token);
+                if (hasKey) {
+                    ResultUtil.responseJson(response, R.fail(HttpStatus.UNAUTHORIZED, "用户已经登出"));
+                    return;
+                }
+                Boolean expired = JWTTokenUtil.isTokenExpired(token);
+                if (expired) {
+                    if (logout) {
+                        ResultUtil.responseJson(response, R.fail(HttpStatus.UNAUTHORIZED, "登出成功"));
+                    } else {
+                        ResultUtil.responseJson(response, R.fail(HttpStatus.UNAUTHORIZED, "token过期"));
+                    }
+                    return;
+                }
+                // token解析
+                Claims claims = JWTTokenUtil.getClaimsFromToken(token);
+                if (ObjectUtils.isEmpty(claims)) {
+                    ResultUtil.responseJson(response, R.fail(HttpStatus.UNAUTHORIZED, "token校验失败"));
+                    return;
+                }
+                String userId = claims.getSubject();
+                int type = (Integer) claims.get("type");
+                if (ObjectUtils.isEmpty(userId)) {
+                    ResultUtil.responseJson(response, R.fail(HttpStatus.UNAUTHORIZED, "token校验失败"));
+                    return;
+                }
+                List<SimpleGrantedAuthority> authorities = new ArrayList<>();
+                List<SimpleGrantedAuthority> authorities1 = new ArrayList<>();
+                if (1 == type) {// 小程序用户统一角色
+                    String roleAppletKey = SecurityConstants.ROLE_APPLETS_USER + userId;
+                    if (stringRedisTemplate.hasKey(roleAppletKey)) {
+                        String roles = valueOperations.get(roleAppletKey);
+                        authorities = JSONArray.parseArray(roles, SimpleGrantedAuthority.class);
+                    } else {
+                        authorities.add(new SimpleGrantedAuthority(SecurityConstants.ROLE_APPLETS));
+                        String userKey = UserConstants.LOGIN_USER_INFO + userId;
+                        Boolean hasKeyLoginUserInfo = stringRedisTemplate.hasKey(userKey);
+                        if (hasKeyLoginUserInfo) {
+                            String userInfo = valueOperations.get(userKey);
+                            LoginUserInfoVO loginUserInfoVO = JSONObject.parseObject(userInfo, LoginUserInfoVO.class);
+                            // 判断用户是否已实名制
+                            if (loginUserInfoVO.getIsRealNamed() != null && loginUserInfoVO.getIsRealNamed()) {
+                                authorities.add(new SimpleGrantedAuthority(SecurityConstants.ROLE_APPLETS_REAL_NAMED));
+                            }
+                        } else {
+                            // 查询登陆用户信息
+                            R<LoginUserInfoVO> r = userService.getUserInfoByUserId(userId);
+                            if (!R.isOk(r)) {
+                                ResultUtil.responseJson(response, R.fail(HttpStatus.ERROR, "登录用户信息查询失败"));
+                                return;
+                            }
+                            LoginUserInfoVO data = r.getData();
+                            // 判断用户是否已实名制
+                            if (data.getIsRealNamed() != null && data.getIsRealNamed()) {
+                                authorities.add(new SimpleGrantedAuthority(SecurityConstants.ROLE_APPLETS_REAL_NAMED));
+                            }
+                        }
+                        valueOperations.set(roleAppletKey, JSONArray.toJSONString(authorities), 24, TimeUnit.HOURS);
+                    }
+                } else {
+                    String key = SecurityConstants.ROLE_USER + userId;
+                    Boolean aBoolean = stringRedisTemplate.hasKey(key);
+                    if (aBoolean) {
+                        String roles = valueOperations.get(key);
+                        authorities = JSONArray.parseArray(roles, SimpleGrantedAuthority.class);
+                    } else {
+                        R<List<String>> r = userService.getUserRoles(userId);
+                        List<String> data = r.getData();
+                        if (!ObjectUtils.isEmpty(data)) {
+                            data.forEach(s -> {
+                                authorities1.add(new SimpleGrantedAuthority(s));
+                            });
+                            authorities = authorities1;
+                            valueOperations.set(key, JSONArray.toJSONString(authorities), 24, TimeUnit.HOURS);
+                        }
+                    }
+                }
+                UsernamePasswordAuthenticationToken authentication =
+                        new UsernamePasswordAuthenticationToken(userId, userId, authorities);// 主要使用权限 账户 密码 不重要
+                SecurityContextHolder.getContext().setAuthentication(authentication);
+                safeboxRequestWrapper.addHeader(TokenConstant.TOKEN_LOGOUT, tokenHeader);
+                // 登录用户的所有信息
+                String userKey = UserConstants.LOGIN_USER_INFO + userId;
+                Boolean hasKeyLoginUserInfo = stringRedisTemplate.hasKey(userKey);
+                if (hasKeyLoginUserInfo) {
+                    String userInfo = valueOperations.get(userKey);
+                    byte[] encrypt = AES.encrypt(userInfo, Constants.AES_KEY);
+                    String hexStr = AES.parseByte2HexStr(encrypt);
+                    safeboxRequestWrapper.addHeader(TokenConstant.TOKEN_USERINFO, hexStr);
+                } else {
+                    R<LoginUserInfoVO> r = userService.getUserInfoByUserId(userId);
+                    if (!R.isOk(r)) {
+                        ResultUtil.responseJson(response, R.fail(HttpStatus.ERROR, "登录用户信息查询失败"));
+                        return;
+                    }
+                    LoginUserInfoVO data = r.getData();
+                    String userInfo = JSONObject.toJSONString(data);
+                    valueOperations.set(userKey, userInfo, 24, TimeUnit.HOURS);
+                    byte[] encrypt = AES.encrypt(userInfo, Constants.AES_KEY);
+                    String hexStr = AES.parseByte2HexStr(encrypt);
+                    safeboxRequestWrapper.addHeader(TokenConstant.TOKEN_USERINFO, hexStr);
+                }
+            } else {
+                // 小程序无需登录也可访问地址列表
+                List<String> noLoginUrl = new ArrayList<>();
+                noLoginUrl.add("/api/applets/community/detaildynamic");
+                noLoginUrl.add("/api/applets/community/detailactivity");
+                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");
+                noLoginUrl.add("/api/applets/convenient/business/get");
+                noLoginUrl.add("/api/applets/pagehouse");
+                noLoginUrl.add("/api/applets/house");
+                noLoginUrl.add("/api/applets/index/agreement");
+                noLoginUrl.add("/api/applets/index/pageeasyphoto");
+                noLoginUrl.add("/api/applets/index/getEasyPhotoActivity");
+                noLoginUrl.add("/api/applets/index/detaileasyphoto");
+                noLoginUrl.add("/api/applets/index/pagecomacteasyphotocomment");
+                noLoginUrl.add("/api/applets/index/pagemicrowish");
+                noLoginUrl.add("/api/applets/index/microwish");
+                noLoginUrl.add("/api/applets/index/easyphoto/classify/list");
+                noLoginUrl.add("/api/applets/index/getUserReward");
+                noLoginUrl.add("/api/applets/pagediscuss");
+                noLoginUrl.add("/api/applets/discuss");
+                noLoginUrl.add("/api/applets/pagediscusscomment");
+                noLoginUrl.add("/api/applets/neighbor/pageApp");
+                noLoginUrl.add("/api/applets/neighbor/detail");
+                noLoginUrl.add("/api/applets/neighbor/forward");
+                noLoginUrl.add("/api/applets/partybuilding/pageserviceteam");
+                noLoginUrl.add("/api/applets/partybuilding/pagepartycommittee");
+                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");
+                noLoginUrl.add("/api/applets/convenient/service-category/suitable");
+                noLoginUrl.add("/api/applets/convenient/merchant/popular");
+                noLoginUrl.add("/api/applets/convenient/merchant/classify");
+                noLoginUrl.add("/api/applets/convenient/merchant/detail");
+                noLoginUrl.add("/api/applets/convenient/product/list");
+                noLoginUrl.add("/api/applets/convenient/product/detail");
+                noLoginUrl.add("/api/applets/convenient/merchant/search");
+                noLoginUrl.add("/api/applets/convenient/product/search");
+                noLoginUrl.add("/api/applets/convenient/merchant/incr-consult");
+                noLoginUrl.add("/api/applets/convenient/merchant/incr-view");
+                noLoginUrl.add("/api/applets/convenient/product/incr-view");
+                noLoginUrl.add("/api/shopbackstage/convenient/upload/file");
+                noLoginUrl.add("/api/shopbackstage/convenient/upload/files");
+                noLoginUrl.add("/api/applets/warehouse/donates/page");
+                noLoginUrl.add("/api/applets/warehouse/donates/get");
+                noLoginUrl.add("/api/applets/property/publicity/page");
+                noLoginUrl.add("/api/applets/property/publicity/get");
+                noLoginUrl.add("/api/applets/property/publicity/list/village");
+                noLoginUrl.add("/api/applets/property/publicity/incr-view");
+                noLoginUrl.add("/api/applets/renting/houses/get");
+                noLoginUrl.add("/api/applets/renting/houses/nearby");
+                noLoginUrl.add("/api/applets/renting/houses/houseList");
+                noLoginUrl.add("/api/applets/renting/houses/getConfig");
+                noLoginUrl.add("/api/applets/comActRaffle/queryAll");
+                noLoginUrl.add("/api/huacheng-communitybackstage/screen/comprehensive/street/list");
+                noLoginUrl.add("/api/huacheng-communitybackstage/screen/comprehensive/population");
+                noLoginUrl.add("/api/huacheng-communitybackstage/screen/getWestScreenStatics");
+                noLoginUrl.add("/api/huacheng-communitybackstage/screen/comprehensive/governance");
+                noLoginUrl.add("/api/huacheng-communitybackstage/screen/comprehensive/partydyn");
+                noLoginUrl.add("/api/huacheng-communitybackstage/screen/comprehensive/pagedynamic");
+                noLoginUrl.add("/api/huacheng-communitybackstage/screen/get/community/password");
+                noLoginUrl.add("/api/huacheng-communitybackstage/pudaScreen/autonomyDynamic");
+                noLoginUrl.add("/api/huacheng-communitybackstage/pudaScreen/propertyDynamic");
+                noLoginUrl.add("/api/huacheng-communitybackstage/pudaScreen/partyData");
+                noLoginUrl.add("/api/huacheng-communitybackstage/pudaScreen/peopleInfo");
+                noLoginUrl.add("/api/huacheng-communitybackstage/pudaScreen/countryard");
+                noLoginUrl.add("/api/huacheng-communitybackstage/pudaScreen/basicData");
+                noLoginUrl.add("/api/huacheng-communitybackstage/pudaScreen/specialPeople");
+                noLoginUrl.add("/api/huacheng-communitybackstage/pudaScreen/activity");
+                noLoginUrl.add("/api/shopbackstage/microcommercialstreet/verifyCode");
+                noLoginUrl.add("/api/shopbackstage/mcsOrder/wxNotify");
+                noLoginUrl.add("/api/shopbackstage/microcommercialstreet/bindPhone");
+                noLoginUrl.add("/api/shopbackstage/microcommercialstreet/bind/verifyCode");
+                noLoginUrl.add("/api/shopbackstage/microcommercialstreet/config/all");
+                noLoginUrl.add("/api/shopbackstage/microcommercialstreet/merchant/get");
+                noLoginUrl.add("/api/shopbackstage/microcommercialstreet/index/topData");
+                noLoginUrl.add("/api/shopbackstage/microcommercialstreet/information/pageH5");
+                noLoginUrl.add("/api/shopbackstage/microcommercialstreet/game/pageH5");
+                noLoginUrl.add("/api/shopbackstage/microcommercialstreet/game/get");
+                noLoginUrl.add("/api/shopbackstage/microcommercialstreet/info/get");
+                noLoginUrl.add("/api/shopbackstage/microcommercialstreet/merchant/pageH5");
+                noLoginUrl.add("/api/applets/fms/teamType/list");
+                noLoginUrl.add("/api/applets/fms/team/page");
+                noLoginUrl.add("/api/applets/fms/classroom/page");
+                noLoginUrl.add("/api/applets/fms/classroom/detail");
+                noLoginUrl.add("/api/applets/fms/event/page");
+                noLoginUrl.add("/api/applets/fms/event/detail");
+                noLoginUrl.add("/api/applets/fms/service/page");
+                noLoginUrl.add("/api/applets/fms/service/detail");
+                noLoginUrl.add("/api/applets/comActSocialOrgHatchAudit/process");
+                noLoginUrl.add("/api/applets/comActSocialProject/queryAll");
+                noLoginUrl.add("/api/applets/comActSocialProjectPublicity/queryAll");
+                noLoginUrl.add("/api/applets/comActSocialOrg/queryAll");
+                noLoginUrl.add("/api/applets/comactsocialworker");
+                noLoginUrl.add("/api/applets/enterprise/detail");
+                noLoginUrl.add("/api/applets/enterprise/page");
+                noLoginUrl.add("/api/applets/dpc/detail");
+                noLoginUrl.add("/api/applets/dpc/page");
+                noLoginUrl.add("/api/applets/wx/batteryPayNotify");
+                noLoginUrl.add("/api/applets/wx/batteryActivityPayNotify");
+                noLoginUrl.add("/api/communitybackstage/comBatteryCommodityOrder/syncCloseOrder");
+                noLoginUrl.add("/api/applets/uu/getQRCode");
+                noLoginUrl.add("/api/huacheng-applets/uu/getQRCode");
+                noLoginUrl.add("/api/applets/unionDoor/openDoorByPhone");
+                noLoginUrl.add("/api/huacheng-applets/unionDoor/openDoorByPhone");
+//                noLoginUrl.add("/api/huacheng-union-applets/unionInspection/query");
+//                noLoginUrl.add("/api/huacheng-union-applets/unionInspection/add");
+//                noLoginUrl.add("/api/huacheng-union-applets/unionOutdoorLaborDynamic/page");
+//                noLoginUrl.add("/api/huacheng-union-applets/unionOutdoorLaborDynamic/{id}");
+//                noLoginUrl.add("/api/huacheng-union-applets/unionOutdoorSite/page");
+//                noLoginUrl.add("/api/huacheng-union-applets/unionInspection/{id}");
+//                noLoginUrl.add("/api/huacheng-union-applets/unionReport/add");
+//                noLoginUrl.add("/api/huacheng-union-applets/unionReport/query");
+//                noLoginUrl.add("/api/huacheng-union-applets/unionUser/authentication");
+//                response.setHeader("Access-Control-Allow-Origin", "*");
+//                response.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
+//                response.setHeader("Access-Control-Allow-Headers", "Content-Type, Authorization");
+                if (noLoginUrl.contains(requestURI)) {
+                    List<SimpleGrantedAuthority> authorities = new ArrayList<>();
+                    authorities.add(new SimpleGrantedAuthority(SecurityConstants.ROLE_APPLETS));
+                    UsernamePasswordAuthenticationToken authentication =
+                            new UsernamePasswordAuthenticationToken(null, null, authorities);
+                    SecurityContextHolder.getContext().setAuthentication(authentication);
+                } else {
+                    ResultUtil.responseJson(response, R.fail(HttpStatus.UNAUTHORIZED, "token校验失败"));
+                    return;
+                }
+            }
+        }
+//        response.addHeader("Access-Control-Allow-Origin","*");
+        filterChain.doFilter(safeboxRequestWrapper, response);
+    }
+
+    @Override
+    public void destroy() {
+
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/SafeboxRequestWrapper.java b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/SafeboxRequestWrapper.java
new file mode 100644
index 0000000..c76f5db
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/SafeboxRequestWrapper.java
@@ -0,0 +1,76 @@
+package com.panzhihua.zuul.filters;
+
+import java.util.*;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletRequestWrapper;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 组装request参数
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-26 10:32
+ **/
+public class SafeboxRequestWrapper extends HttpServletRequestWrapper {
+    private Map<String, String> headerMap = new HashMap<String, String>();
+    private Map<String, String[]> params = new HashMap<String, String[]>();
+    public SafeboxRequestWrapper(HttpServletRequest request) {
+        super(request);
+        // 将参数表,赋予给当前的Map以便于持有request中的参数
+        this.params.putAll(request.getParameterMap());
+    }
+
+    public void addHeader(String name, String value) {
+        headerMap.put(name, value);
+    }
+
+    @Override
+    public String getHeader(String name) {
+        String headerValue = super.getHeader(name);
+        if (headerMap.containsKey(name)) {
+            headerValue = headerMap.get(name);
+        }
+        return headerValue;
+    }
+
+    @Override
+    public Enumeration<String> getHeaderNames() {
+        List<String> names = Collections.list(super.getHeaderNames());
+        for (String name : headerMap.keySet()) {
+            names.add(name);
+        }
+        return Collections.enumeration(names);
+    }
+
+    @Override
+    public Enumeration<String> getHeaders(String name) {
+        List<String> values = Collections.list(super.getHeaders(name));
+        if (headerMap.containsKey(name)) {
+            values.add(headerMap.get(name));
+        }
+        return Collections.enumeration(values);
+    }
+
+    @Override
+
+    public String getParameter(String name) {// 重写getParameter,代表参数从当前类中的map获取
+
+        String[] values = params.get(name);
+
+        if (values == null || values.length == 0) {
+
+            return null;
+
+        }
+
+        return values[0];
+
+    }
+
+    @Override
+    public String[] getParameterValues(String name) {// 同上
+
+        return params.get(name);
+
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/SercuritFilter.java b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/SercuritFilter.java
new file mode 100644
index 0000000..a6ffcae
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/SercuritFilter.java
@@ -0,0 +1,118 @@
+package com.panzhihua.zuul.filters;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
+
+import javax.annotation.Resource;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.data.redis.core.ValueOperations;
+import org.springframework.security.access.ConfigAttribute;
+import org.springframework.security.access.SecurityConfig;
+import org.springframework.security.web.FilterInvocation;
+import org.springframework.security.web.access.intercept.FilterInvocationSecurityMetadataSource;
+import org.springframework.stereotype.Component;
+import org.springframework.util.ObjectUtils;
+
+import com.alibaba.fastjson.JSONArray;
+import com.panzhihua.common.constants.SecurityConstants;
+import com.panzhihua.common.model.vos.MenuVO;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.service.user.UserService;
+
+import lombok.extern.slf4j.Slf4j;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 权限
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-25 15:08
+ **/
+@Slf4j
+@Component
+public class SercuritFilter implements FilterInvocationSecurityMetadataSource {
+    @Resource
+    private StringRedisTemplate stringRedisTemplate;
+    @Resource
+    private UserService userService;
+    // 记录特定日志的声明
+    private final Logger newLogger = LoggerFactory.getLogger("requestLog");
+    /**
+     * 获取当前url对应的角色
+     * 
+     * @param o
+     *            请求url
+     * @return 权限列表
+     * @throws IllegalArgumentException
+     *             异常
+     */
+    @Override
+    public Collection<ConfigAttribute> getAttributes(Object o) throws IllegalArgumentException {
+        List<ConfigAttribute> configAttributes = new ArrayList<>();
+        String requestUrl = ((FilterInvocation)o).getRequestUrl();
+        log.info("接口请求地址【{}】", requestUrl);
+        try {
+            String remoteHost = ((FilterInvocation)o).getRequest().getRemoteHost();
+            newLogger.info("IP:{},接口请求地址【{}】", remoteHost, requestUrl);
+        } catch (Exception e) {
+            log.info("zuul 访问信息解析错误:【{}】", e.getMessage());
+        }
+        Boolean aBoolean = stringRedisTemplate.hasKey(SecurityConstants.ROLE_ALL);
+        ValueOperations<String, String> valueOperations = stringRedisTemplate.opsForValue();
+        List<MenuVO> menuVOS = new ArrayList<>();
+        if (aBoolean) {
+            String roleAll = valueOperations.get(SecurityConstants.ROLE_ALL);
+            menuVOS = JSONArray.parseArray(roleAll, MenuVO.class);
+        } else {
+            R<List<MenuVO>> r = userService.getAllMenu();
+            List<MenuVO> data = r.getData();
+            if (!ObjectUtils.isEmpty(data)) {
+                menuVOS = data;
+                valueOperations.set(SecurityConstants.ROLE_ALL, JSONArray.toJSONString(data), 24, TimeUnit.HOURS);
+            }
+        }
+        if (!ObjectUtils.isEmpty(menuVOS)) {
+            List<MenuVO> collect =
+                menuVOS.stream().filter(menuVO -> menuVO.getUrl().equals(requestUrl)).collect(Collectors.toList());
+            if (!ObjectUtils.isEmpty(collect)) {
+                collect.forEach(menuVO -> {
+                    configAttributes.add(new SecurityConfig(menuVO.getRole()));
+                });
+            }
+        }
+        boolean contains = requestUrl.contains("/api/applets/");
+        boolean docs = !requestUrl.contains("docs");
+        boolean login = !requestUrl.contains("login");
+        boolean wxNotify = !requestUrl.contains("wxNotify");
+        boolean wxCgi = !requestUrl.contains("cgi");
+        boolean isShop = !requestUrl.contains("isShop");
+        boolean refreshToken = !requestUrl.contains("refreshToken");
+        boolean noToken = !requestUrl.contains("noToken");
+        boolean useragreement = !requestUrl.contains("useragreement");
+        boolean listadvertisement = !requestUrl.contains("listadvertisement");
+        // boolean pageworkguide = !requestUrl.contains("applets/workguide/pageworkguide");
+        // boolean detailworkguide = !requestUrl.contains("applets/workguide/detailworkguide");
+        // boolean pagedynamic = !requestUrl.contains("applets/partybuilding/pagedynamic");
+        // boolean infodynamic = !requestUrl.contains("applets/partybuilding/infodynamic");
+        if (contains && docs && login && refreshToken && useragreement && wxNotify && wxCgi && isShop
+            && listadvertisement && noToken) {
+            configAttributes.add(new SecurityConfig(SecurityConstants.ROLE_APPLETS));
+        }
+        return configAttributes;
+    }
+
+    @Override
+    public Collection<ConfigAttribute> getAllConfigAttributes() {
+        return null;
+    }
+
+    @Override
+    public boolean supports(Class<?> aClass) {
+        return false;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/handles/FileUploadExceptionAdvice.java b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/handles/FileUploadExceptionAdvice.java
new file mode 100644
index 0000000..ed11f48
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/handles/FileUploadExceptionAdvice.java
@@ -0,0 +1,37 @@
+package com.panzhihua.zuul.handles;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.tomcat.util.http.fileupload.impl.FileSizeLimitExceededException;
+import org.springframework.web.bind.annotation.ControllerAdvice;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.multipart.MaxUploadSizeExceededException;
+
+import com.panzhihua.common.constants.HttpStatus;
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.utlis.ResultUtil;
+
+@ControllerAdvice
+public class FileUploadExceptionAdvice {
+
+    @ExceptionHandler(MaxUploadSizeExceededException.class)
+    public void handleMaxSizeException(MaxUploadSizeExceededException exc, HttpServletRequest request,
+        HttpServletResponse response) {
+        // 请求超过大小限制
+        response.setContentType("application/json;charset=utf-8");
+        ResultUtil.responseJson(response, R.fail(HttpStatus.REQUEST_TOO_LARGE, "请求主体的大小超过限制"));
+        return;
+
+    }
+
+    @ExceptionHandler(FileSizeLimitExceededException.class)
+    public void handleFileSizeLimitException(FileSizeLimitExceededException exc, HttpServletRequest request,
+        HttpServletResponse response) {
+        // 请求超过大小限制
+        response.setContentType("application/json;charset=utf-8");
+        ResultUtil.responseJson(response, R.fail(HttpStatus.REQUEST_TOO_LARGE, "文件大小超过限制"));
+        return;
+    }
+
+}
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/handles/UserAuthAccessDeniedHandler.java b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/handles/UserAuthAccessDeniedHandler.java
new file mode 100644
index 0000000..0fde9b5
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/handles/UserAuthAccessDeniedHandler.java
@@ -0,0 +1,30 @@
+package com.panzhihua.zuul.handles;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.security.access.AccessDeniedException;
+import org.springframework.security.web.access.AccessDeniedHandler;
+import org.springframework.stereotype.Component;
+
+import com.panzhihua.common.model.vos.R;
+import com.panzhihua.common.utlis.ResultUtil;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 无权限
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-26 13:24
+ **/
+@Component
+public class UserAuthAccessDeniedHandler implements AccessDeniedHandler {
+    /**
+     * 暂无权限返回结果
+     * 
+     * @Author youcong
+     */
+    @Override
+    public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException exception) {
+        ResultUtil.responseJson(response, R.fail(403, "没有访问权限"));
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/manager/RoleAccessDecisionManager.java b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/manager/RoleAccessDecisionManager.java
new file mode 100644
index 0000000..cce33f9
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/manager/RoleAccessDecisionManager.java
@@ -0,0 +1,57 @@
+package com.panzhihua.zuul.manager;
+
+import java.util.Collection;
+
+import org.springframework.security.access.AccessDecisionManager;
+import org.springframework.security.access.AccessDeniedException;
+import org.springframework.security.access.ConfigAttribute;
+import org.springframework.security.authentication.InsufficientAuthenticationException;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.GrantedAuthority;
+import org.springframework.stereotype.Component;
+
+/**
+ * @program: springcloud_k8s_panzhihuazhihuishequ
+ * @description: 权限判断
+ * @author: huang.hongfa weixin hhf9596 qq 959656820
+ * @create: 2020-11-25 16:19
+ **/
+@Component
+public class RoleAccessDecisionManager implements AccessDecisionManager {
+    /**
+     * decide 方法是判定是否拥有权限的决策方法,
+     * 
+     * @param authentication
+     *            当前用户的信息
+     * @param o
+     *            包含客户端发起的请求的requset信息
+     * @param collection
+     *            当前路径对应的权限
+     * @throws AccessDeniedException
+     *             无权限
+     * @throws InsufficientAuthenticationException
+     */
+    @Override
+    public void decide(Authentication authentication, Object o, Collection<ConfigAttribute> collection)
+        throws AccessDeniedException, InsufficientAuthenticationException {
+        Collection<? extends GrantedAuthority> authorities = authentication.getAuthorities();
+        for (GrantedAuthority authority : authorities) {
+            for (ConfigAttribute c : collection) {
+                if (c.getAttribute().equals(authority.getAuthority())) {
+                    return;
+                }
+            }
+        }
+        throw new AccessDeniedException("当前访问没有权限");
+    }
+
+    @Override
+    public boolean supports(ConfigAttribute configAttribute) {
+        return false;
+    }
+
+    @Override
+    public boolean supports(Class<?> aClass) {
+        return false;
+    }
+}
diff --git a/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/resources/bootstrap.yml b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..016490a
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/resources/bootstrap.yml
@@ -0,0 +1,103 @@
+
+server:
+  port: 6194
+  servlet:
+    encoding:
+      force-response: true #中文乱码
+
+
+spring:
+  application:
+    name: huacheng-zuul
+  cloud:
+    config:
+      discovery:
+        enabled: true
+        service-id: huacheng-config  # 注册中心的服务名
+      profile: ${ENV:dev}  # 指定配置文件的环境
+      uri: http://${CONFIG_URL:localhost}:6193/
+  profiles:
+    active: ${ENV:dev}
+  servlet:
+    multipart:
+      max-file-size: 200MB
+      max-request-size: 220MB
+
+eureka:
+  client:
+    service-url:
+      defaultZone: http://${EUREKA_URL:localhost}:8192/eureka
+
+# applet 需实名认证的接口地址
+applet:
+  realname:
+    verify:
+      - POST:/api/applets/house
+      - POST:/api/applets/putHouse
+      - POST:/api/applets/undercarriageHouse
+      - GET:/api/applets/delHouse
+      - POST:/api/applets/questnaire/add
+      - GET:/api/applets/questnaire/delete
+      - POST:/api/applets/questnaire/edit
+      - GET:/api/applets/questnaire/stat/details
+      - POST:/api/applets/questnaire/toggle
+      - POST:/api/applets/questnaire/stat/answer
+      - POST:/api/applets/index/comacteasyphotocomment
+      - POST:/api/applets/index/commentsign
+      - POST:/api/applets/index/addmessageback
+      - POST:/api/applets/index/addmessage
+      - POST:/api/applets/index/easyphoto
+      - PUT:/api/applets/index/easyphoto
+      - POST:/api/applets/index/microwish
+      - PUT:/api/applets/index/microwish
+      - POST:/api/applets/discuss
+      - POST:/api/applets/discusscommentback
+      - POST:/api/applets/discusscomment
+      - PUT:/api/applets/discusscommentuser
+      - POST:/api/applets/discussuser
+      - PUT:/api/applets/discussuser
+      - POST:/api/applets/neighbor/addNeighborByApp
+      - POST:/api/applets/neighbor/cancel/fabulous
+      - POST:/api/applets/neighbor/comment
+      - POST:/api/applets/neighbor/fabulous
+      - POST:/api/applets/neighbor/reply
+      - PUT:/api/applets/community/signactivity
+      - POST:/api/applets/community/volunteer
+      - POST:/api/applets/user/houses
+      - POST:/api/appletsbackstage/common/data/car/save
+      - DELETE:/api/appletsbackstage/common/data/car/delete
+      - POST:/api/applets/community/car/register
+      - PUT:/api/applets/partybuilding/activitysignup
+      - GET:/api/applets/questnaire/stat
+      - GET:/api/applets/questnaire/view
+      - POST:/api/applets/user/addfamily
+      - PUT:/api/applets/user/putfamily
+      - POST:/api/applets/user/getUserArchives
+      - POST:/api/applets/user/updateUserArchives
+      - POST:/api/applets/user/partybuildingembercertification
+      - GET:/api/applets/user/partybuildingembercertification
+      - GET:/api/applets/index/pagemymessage
+      - POST:/api/applets/index/pagemymessage
+      - POST:/api/applets/user/listactivity
+      - POST:/api/applets/partybuilding/activityinfo
+      - PUT:/api/applets/user/microwishconfirm
+      - POST:/api/applets/user/pagemicrowish
+      - POST:/api/applets/user/pageeasyphoto
+      - POST:/api/applets/neighbor/user/page
+      - GET:/api/applets/user/listfamily
+      - POST:/api/applets/fms/service/apply
+
+
+management:
+  endpoints:
+    web:
+      exposure:
+        include: '*'
+
+  endpoint:
+    health:
+      show-details: always
+
+  metrics:
+    tags:
+      application: huacheng-zuul
\ No newline at end of file
diff --git a/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/resources/logback-spring.xml b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/resources/logback-spring.xml
new file mode 100644
index 0000000..b861d60
--- /dev/null
+++ b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/resources/logback-spring.xml
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration debug="false">
+    <!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径-->
+    <springProfile name="dev">
+        <property name="LOG_HOME" value="F:\log"/>
+    </springProfile>
+       <springProfile name="test">
+        <property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    </springProfile>
+<property name="LOG_HOME" value="/mnt/data/gocd/log" />
+    <!-- 控制台输出 -->
+    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+    </appender>
+    <!-- 按照每天生成日志文件 -->
+    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <!--日志文件输出的文件名-->
+            <FileNamePattern>${LOG_HOME}/huachengzuul.log.%d{yyyy-MM-dd}.log</FileNamePattern>
+            <!--日志文件保留天数-->
+            <MaxHistory>30</MaxHistory>
+        </rollingPolicy>
+        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
+            <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
+            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
+        </encoder>
+        <!--日志文件最大的大小-->
+        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
+            <MaxFileSize>10MB</MaxFileSize>
+        </triggeringPolicy>
+    </appender>
+
+    <!--myibatis log configure-->
+    <logger name="com.apache.ibatis" level="TRACE"/>
+    <logger name="java.sql.Connection" level="DEBUG"/>
+    <logger name="java.sql.Statement" level="DEBUG"/>
+    <logger name="java.sql.PreparedStatement" level="DEBUG"/>
+    <logger name="com.panzhihua.zuul" level="DEBUG"/>
+
+    <!-- 日志输出级别 -->
+    <root level="DEBUG">
+        <appender-ref ref="STDOUT" />
+    </root>
+    <root level="INFO">
+        <appender-ref ref="STDOUT" />
+        <appender-ref ref="FILE" />
+    </root>
+
+    <!--不同业务日志记录到不同的文件-->
+    <appender name="requestAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
+        <File>${LOG_HOME}/request.log</File>
+        <append>true</append>
+        <filter class="ch.qos.logback.classic.filter.LevelFilter">
+            <level>INFO</level>
+            <onMatch>ACCEPT</onMatch>
+            <onMismatch>DENY</onMismatch>
+        </filter>
+        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
+            <fileNamePattern>${LOG_HOME}/request.%d.%i.log</fileNamePattern>
+            <maxHistory>10</maxHistory>
+            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
+                <maxFileSize>10MB</maxFileSize>
+            </timeBasedFileNamingAndTriggeringPolicy>
+        </rollingPolicy>
+        <encoder>
+            <pattern>%d{yyyy/MM/dd HH:mm:ss.SSS} %-5level [%thread] [%c{0}:%L] : %msg%n</pattern>
+            <charset>UTF-8</charset>
+        </encoder>
+    </appender>
+
+    <!--这是我们定义的访问日志传入的名称-->
+    <logger name="requestLog" additivity="false" level="INFO">
+        <appender-ref ref="requestAppender"/>
+    </logger>
+</configuration>
\ No newline at end of file

--
Gitblit v1.7.1